summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo1.ipynb800
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo2.ipynb1248
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo3.ipynb992
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo4.ipynb928
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo6.ipynb76
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo7.ipynb154
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo8.ipynb576
-rwxr-xr-xAdvance_Semiconductor_Devices/ChapterNo9.ipynb1684
-rwxr-xr-xAdvance_Semiconductor_Devices/README.txt10
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter1.pngbin0 -> 216653 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter3.pngbin0 -> 190518 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter7.pngbin0 -> 205361 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_1.pngbin0 -> 150308 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_1_1.pngbin0 -> 140791 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_1_2.pngbin0 -> 140791 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_2.pngbin0 -> 146297 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_2_1.pngbin0 -> 136650 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_2_2.pngbin0 -> 136650 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_3.pngbin0 -> 143266 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_3_1.pngbin0 -> 136718 bytes
-rwxr-xr-xAdvance_Semiconductor_Devices/screenshots/Chapter_3_2.pngbin0 -> 136718 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter01.ipynb499
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter04.ipynb95
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter05.ipynb188
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter06.ipynb112
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter08.ipynb154
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter09.ipynb97
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter12.ipynb111
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter14.ipynb226
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter15.ipynb76
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter16.ipynb280
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter18.ipynb155
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter19.ipynb160
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter20.ipynb286
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter21.ipynb256
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter22.ipynb88
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter23.ipynb390
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter24.ipynb198
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter25.ipynb490
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter26.ipynb82
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/Chapter27.ipynb109
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/README.txt10
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/1.pngbin0 -> 36115 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/2.pngbin0 -> 55871 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/3.pngbin0 -> 33263 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/a.pngbin0 -> 212056 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/a_1.pngbin0 -> 212056 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/b.pngbin0 -> 221122 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/b_1.pngbin0 -> 221122 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/c.pngbin0 -> 227233 bytes
-rwxr-xr-xAircraft_Structures_for_Engineering_Students/screenshots/c_1.pngbin0 -> 227233 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter1_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter2_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter3_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter4_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter6_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter7_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/chapter9_2.ipynb1
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1.pngbin0 -> 161867 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_1.pngbin0 -> 161867 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_2.pngbin0 -> 161867 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4.pngbin0 -> 149474 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_1.pngbin0 -> 149474 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_2.pngbin0 -> 149474 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6.pngbin0 -> 151221 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_1.pngbin0 -> 151221 bytes
-rwxr-xr-xAntenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_2.pngbin0 -> 151221 bytes
-rwxr-xr-xBASIC_ELECTRICAL_ENGINEERING_/Chapter4.ipynb16
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch1.ipynb287
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch10.ipynb665
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch11.ipynb393
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch12.ipynb763
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch2.ipynb458
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch3.ipynb253
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch4.ipynb199
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch5.ipynb476
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch6.ipynb157
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch7.ipynb204
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch8.ipynb365
-rwxr-xr-xBasic_Engineering_Thermodynamics/ch9.ipynb867
-rwxr-xr-xBasic_Engineering_Thermodynamics/screenshots/3.pngbin0 -> 86118 bytes
-rwxr-xr-xBasic_Engineering_Thermodynamics/screenshots/6.pngbin0 -> 76856 bytes
-rwxr-xr-xBasic_Engineering_Thermodynamics/screenshots/PVDiagram9.pngbin0 -> 13597 bytes
-rwxr-xr-xC++_By_Example/Chapter1.ipynb773
-rwxr-xr-xC++_By_Example/Chapter2.ipynb806
-rwxr-xr-xC++_By_Example/Chapter3.ipynb2029
-rwxr-xr-xC++_By_Example/Chapter4.ipynb1123
-rwxr-xr-xC++_By_Example/Chapter5.ipynb192
-rwxr-xr-xC++_By_Example/Chapter6.ipynb1505
-rwxr-xr-xC++_By_Example/Chapter7.ipynb1111
-rwxr-xr-xC++_By_Example/screenshots/Chapter2.pngbin0 -> 120657 bytes
-rwxr-xr-xC++_By_Example/screenshots/Chapter3.pngbin0 -> 129133 bytes
-rwxr-xr-xC++_By_Example/screenshots/Chapter4.pngbin0 -> 129705 bytes
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter1.ipynb117
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter10.ipynb362
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter11.ipynb616
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter12.ipynb445
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter2.ipynb239
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter3.ipynb499
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter4.ipynb688
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter5.ipynb475
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter6.ipynb652
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter7.ipynb582
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter8.ipynb703
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/Chapter9.ipynb549
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/README.txt10
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/screenshots/1.pngbin0 -> 15413 bytes
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/screenshots/1_1.pngbin0 -> 15413 bytes
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/screenshots/2.pngbin0 -> 9440 bytes
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/screenshots/2_1.pngbin0 -> 9440 bytes
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/screenshots/3.pngbin0 -> 32643 bytes
-rwxr-xr-xC_Programming_for_the_Absolute_Beginner/screenshots/3_1.pngbin0 -> 32643 bytes
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter10.ipynb164
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter11.ipynb97
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter13.ipynb96
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter15.ipynb232
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter16.ipynb133
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter17.ipynb302
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter18.ipynb148
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter3.ipynb380
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter4.ipynb358
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter5.ipynb269
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter6.ipynb273
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter7.ipynb184
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter8.ipynb119
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter9.ipynb380
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/1.pngbin0 -> 200691 bytes
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/2.pngbin0 -> 237983 bytes
-rwxr-xr-xCallister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/3.pngbin0 -> 128179 bytes
-rwxr-xr-xChemistry/Chapter_1.ipynb310
-rwxr-xr-xChemistry/Chapter_11.ipynb226
-rwxr-xr-xChemistry/Chapter_12.ipynb446
-rwxr-xr-xChemistry/Chapter_13.ipynb441
-rwxr-xr-xChemistry/Chapter_14.ipynb359
-rwxr-xr-xChemistry/Chapter_15.ipynb472
-rwxr-xr-xChemistry/Chapter_16.ipynb584
-rwxr-xr-xChemistry/Chapter_17.ipynb92
-rwxr-xr-xChemistry/Chapter_18.ipynb284
-rwxr-xr-xChemistry/Chapter_19.ipynb267
-rwxr-xr-xChemistry/Chapter_23.ipynb66
-rwxr-xr-xChemistry/Chapter_3.ipynb676
-rwxr-xr-xChemistry/Chapter_4.ipynb290
-rwxr-xr-xChemistry/Chapter_5.ipynb768
-rwxr-xr-xChemistry/Chapter_6.ipynb422
-rwxr-xr-xChemistry/Chapter_7.ipynb312
-rwxr-xr-xChemistry/Chapter_9.ipynb130
-rwxr-xr-xChemistry/README.txt10
-rwxr-xr-xChemistry/screenshots/screen1.pngbin27793 -> 0 bytes
-rwxr-xr-xChemistry/screenshots/screen2.pngbin26067 -> 0 bytes
-rwxr-xr-xChemistry/screenshots/screen3.pngbin15079 -> 0 bytes
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter11.ipynb62
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter2.ipynb41
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter3.ipynb293
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter4.ipynb524
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter5.ipynb1103
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter6.ipynb794
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter7.ipynb557
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter8.ipynb1027
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/Chapter9.ipynb624
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/screenshots/chapter11.pngbin0 -> 169980 bytes
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/screenshots/chapter2.pngbin0 -> 147743 bytes
-rwxr-xr-xComputer_Programming,_Theory_and_Practice/screenshots/chapter3.pngbin0 -> 154011 bytes
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter11.ipynb62
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter2.ipynb41
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter3.ipynb293
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter4.ipynb524
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter5.ipynb1103
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter6.ipynb794
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter7.ipynb557
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter8.ipynb1027
-rwxr-xr-xComputer_Programming_Theory_and_Practice/Chapter9.ipynb624
-rwxr-xr-xComputer_Programming_Theory_and_Practice/screenshots/chapter11.pngbin0 -> 169980 bytes
-rwxr-xr-xComputer_Programming_Theory_and_Practice/screenshots/chapter2.pngbin0 -> 147743 bytes
-rwxr-xr-xComputer_Programming_Theory_and_Practice/screenshots/chapter3.pngbin0 -> 154011 bytes
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter11.ipynb62
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter2.ipynb41
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter3.ipynb293
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter4.ipynb524
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter5.ipynb1103
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter6.ipynb794
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter7.ipynb557
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter8.ipynb1027
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/Chapter9.ipynb624
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/screenshots/chapter11.pngbin0 -> 169980 bytes
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/screenshots/chapter2.pngbin0 -> 147743 bytes
-rwxr-xr-xComputer_Programming_Theory_and_Practice_/screenshots/chapter3.pngbin0 -> 154011 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/README.txt10
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch1.ipynb1633
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch2.ipynb2010
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch3.ipynb1912
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch4.ipynb1114
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch5.ipynb1612
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch6.ipynb2427
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/ch7.ipynb1711
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch1.pngbin0 -> 351995 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch1_1.pngbin0 -> 351995 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch1_2.pngbin0 -> 351995 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch4.pngbin0 -> 361595 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch4_1.pngbin0 -> 361595 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch4_2.pngbin0 -> 361595 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch7.pngbin0 -> 373164 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch7_1.pngbin0 -> 373164 bytes
-rwxr-xr-xDC_Machines_and_Synchronous_Machines/screenshots/ch7_2.pngbin0 -> 373164 bytes
-rwxr-xr-xDigital_Communications/Chapter2.ipynb290
-rwxr-xr-xDigital_Communications/Chapter3.ipynb2238
-rwxr-xr-xDigital_Communications/Chapter4.ipynb273
-rwxr-xr-xDigital_Communications/Chapter5.ipynb105
-rwxr-xr-xDigital_Communications/Chapter6.ipynb158
-rwxr-xr-xDigital_Communications/Chapter7.ipynb431
-rwxr-xr-xDigital_Communications/Chapter8.ipynb1439
-rwxr-xr-xDigital_Communications/Chapter9.ipynb166
-rwxr-xr-xDigital_Communications/ChapterNo2.ipynb290
-rwxr-xr-xDigital_Communications/ChapterNo3.ipynb2238
-rwxr-xr-xDigital_Communications/ChapterNo4.ipynb273
-rwxr-xr-xDigital_Communications/ChapterNo5.ipynb105
-rwxr-xr-xDigital_Communications/ChapterNo6.ipynb158
-rwxr-xr-xDigital_Communications/ChapterNo7.ipynb431
-rwxr-xr-xDigital_Communications/ChapterNo8.ipynb1439
-rwxr-xr-xDigital_Communications/ChapterNo9.ipynb182
-rwxr-xr-xDigital_Communications/README.txt10
-rwxr-xr-xDigital_Communications/screenshots/Chapter1.pngbin0 -> 209810 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter2.pngbin0 -> 205124 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter2_1.pngbin0 -> 122271 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter2_2.pngbin0 -> 209679 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter2_3.pngbin0 -> 209679 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter3.pngbin0 -> 229268 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter3_1.pngbin0 -> 193440 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter3_2.pngbin0 -> 208477 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter3_3.pngbin0 -> 208477 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter4.pngbin0 -> 228102 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter4_1.pngbin0 -> 210555 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter4_2.pngbin0 -> 206602 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter4_3.pngbin0 -> 206602 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter6.pngbin0 -> 159825 bytes
-rwxr-xr-xDigital_Communications/screenshots/chapter7.pngbin0 -> 146443 bytes
-rwxr-xr-xELECTRIC_MACHINERY/.ipynb_checkpoints/chapter7-checkpoint.ipynb473
-rwxr-xr-xELECTRIC_MACHINERY/chapter1.ipynb18
-rwxr-xr-xELECTRIC_MACHINERY/chapter10.ipynb67
-rwxr-xr-xELECTRIC_MACHINERY/chapter11.ipynb35
-rwxr-xr-xELECTRIC_MACHINERY/chapter3.ipynb56
-rwxr-xr-xELECTRIC_MACHINERY/chapter5.ipynb29
-rwxr-xr-xELECTRIC_MACHINERY/chapter6.ipynb24
-rwxr-xr-xELECTRIC_MACHINERY/chapter8.ipynb81
-rwxr-xr-xELECTRIC_MACHINERY/chapter9.ipynb28
-rwxr-xr-xElectric_Machinery_and_Transformers/APPENDIX_A-3.ipynb101
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_1.ipynb645
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_10.ipynb253
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_11.ipynb243
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_12.ipynb1570
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_13.ipynb563
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_14.ipynb2601
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_2.ipynb432
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_3.ipynb451
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_4.ipynb1131
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_5.ipynb113
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_6.ipynb505
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_7.ipynb738
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_8.ipynb1279
-rwxr-xr-xElectric_Machinery_and_Transformers/CHAP_9.ipynb1133
-rwxr-xr-xElectric_Machinery_and_Transformers/README.txt10
-rwxr-xr-xElectric_Machinery_and_Transformers/screenshots/1.pngbin0 -> 51858 bytes
-rwxr-xr-xElectric_Machinery_and_Transformers/screenshots/2.pngbin0 -> 39047 bytes
-rwxr-xr-xElectric_Machinery_and_Transformers/screenshots/3.pngbin0 -> 45153 bytes
-rwxr-xr-xElectrical_Machines_II/chapter_1.ipynb1297
-rwxr-xr-xElectrical_Machines_II/chapter_1_1.ipynb1297
-rwxr-xr-xElectrical_Machines_II/chapter_2.ipynb2810
-rwxr-xr-xElectrical_Machines_II/chapter_2_1.ipynb2810
-rwxr-xr-xElectrical_Machines_II/chapter_3.ipynb68
-rwxr-xr-xElectrical_Machines_II/chapter_3_1.ipynb68
-rwxr-xr-xElectrical_Machines_II/chapter_4.ipynb183
-rwxr-xr-xElectrical_Machines_II/chapter_4_1.ipynb183
-rwxr-xr-xElectrical_Machines_II/screenshots/capacitance_3.pngbin0 -> 53826 bytes
-rwxr-xr-xElectrical_Machines_II/screenshots/capacitance_3_1.pngbin0 -> 53826 bytes
-rwxr-xr-xElectrical_Machines_II/screenshots/flux_per_pole.pngbin0 -> 68471 bytes
-rwxr-xr-xElectrical_Machines_II/screenshots/flux_per_pole_1.pngbin0 -> 68471 bytes
-rwxr-xr-xElectrical_Machines_II/screenshots/rotor_current_2.pngbin0 -> 43696 bytes
-rwxr-xr-xElectrical_Machines_II/screenshots/rotor_current_2_1.pngbin0 -> 43696 bytes
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_1.ipynb773
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_11.ipynb64
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_11_1.ipynb64
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_1_1.ipynb773
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_2.ipynb904
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_2_1.ipynb904
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_3.ipynb727
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_3_1.ipynb727
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_4.ipynb100
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_4_1.ipynb100
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_5.ipynb696
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_5_1.ipynb696
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_6.ipynb458
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_6_1.ipynb458
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_7.ipynb287
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_7_1.ipynb287
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_8.ipynb677
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_8_1.ipynb677
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_9.ipynb155
-rwxr-xr-xElectronic_Devices_And_Circuits/EDC_ch_9_1.ipynb155
-rwxr-xr-xElectronic_Devices_And_Circuits/README.txt10
-rwxr-xr-xElectronic_Devices_And_Circuits/screenshots/2.pngbin0 -> 47514 bytes
-rwxr-xr-xElectronic_Devices_And_Circuits/screenshots/3.pngbin0 -> 46273 bytes
-rwxr-xr-xElectronic_Devices_And_Circuits/screenshots/6_6.pngbin0 -> 218197 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter1.ipynb307
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter10.ipynb587
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter10_1.ipynb587
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter10_2.ipynb587
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter11.ipynb305
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter11_1.ipynb305
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter11_2.ipynb305
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter12.ipynb1196
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter12_1.ipynb1196
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter12_2.ipynb1196
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter13.ipynb733
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter13_1.ipynb733
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter13_2.ipynb733
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter14.ipynb662
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter14_1.ipynb662
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter14_2.ipynb662
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter15.ipynb282
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter15_1.ipynb282
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter15_2.ipynb282
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter16.ipynb581
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter16_1.ipynb581
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter16_2.ipynb581
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter17.ipynb560
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter17_1.ipynb560
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter17_2.ipynb560
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter18.ipynb684
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter18_1.ipynb684
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter18_2.ipynb684
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter19.ipynb1316
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter19_1.ipynb1316
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter19_2.ipynb1316
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter1_1.ipynb307
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter1_2.ipynb307
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter2.ipynb571
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter20.ipynb434
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter20_1.ipynb434
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter20_2.ipynb434
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter21.ipynb241
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter21_1.ipynb241
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter21_2.ipynb241
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter2_1.ipynb571
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter2_2.ipynb571
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter3.ipynb1201
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter3_1.ipynb1201
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter3_2.ipynb1201
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter4.ipynb237
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter4_1.ipynb237
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter4_2.ipynb237
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter5.ipynb1022
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter5_1.ipynb1022
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter5_2.ipynb1022
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter6.ipynb656
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter6_1.ipynb656
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter6_2.ipynb656
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter8.ipynb499
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter8_1.ipynb499
-rwxr-xr-xElectronic_Devices_and_Circuits/Chapter8_2.ipynb499
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter3.pngbin0 -> 323407 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter3_1.pngbin0 -> 323407 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter3_2.pngbin0 -> 323407 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter4.pngbin0 -> 304018 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter4_1.pngbin0 -> 304018 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter4_2.pngbin0 -> 304018 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter5.pngbin0 -> 307846 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter5_1.pngbin0 -> 307846 bytes
-rwxr-xr-xElectronic_Devices_and_Circuits/screenshots/Chapter5_2.pngbin0 -> 307846 bytes
-rwxr-xr-xElements_of_Power_system/Chapter_10.ipynb732
-rwxr-xr-xElements_of_Power_system/Chapter_11.ipynb907
-rwxr-xr-xElements_of_Power_system/Chapter_12.ipynb101
-rwxr-xr-xElements_of_Power_system/Chapter_2.ipynb273
-rwxr-xr-xElements_of_Power_system/Chapter_3.ipynb368
-rwxr-xr-xElements_of_Power_system/Chapter_4.ipynb1168
-rwxr-xr-xElements_of_Power_system/Chapter_5.ipynb1386
-rwxr-xr-xElements_of_Power_system/Chapter_6.ipynb343
-rwxr-xr-xElements_of_Power_system/Chapter_7.ipynb454
-rwxr-xr-xElements_of_Power_system/Chapter_8.ipynb123
-rwxr-xr-xElements_of_Power_system/Chapter_9.ipynb569
-rwxr-xr-xElements_of_Power_system/chapter_1.ipynb200
-rwxr-xr-xElements_of_Power_system/screenshots/chap5.pngbin0 -> 85286 bytes
-rwxr-xr-xElements_of_Power_system/screenshots/chap6.pngbin0 -> 62526 bytes
-rwxr-xr-xElements_of_Power_system/screenshots/chap7.pngbin0 -> 66223 bytes
-rwxr-xr-xEngineering_Economics/Chapter1.ipynb83
-rwxr-xr-xEngineering_Economics/Chapter10.ipynb357
-rwxr-xr-xEngineering_Economics/Chapter11.ipynb306
-rwxr-xr-xEngineering_Economics/Chapter12.ipynb104
-rwxr-xr-xEngineering_Economics/Chapter13.ipynb104
-rwxr-xr-xEngineering_Economics/Chapter16.ipynb297
-rwxr-xr-xEngineering_Economics/Chapter2.ipynb372
-rwxr-xr-xEngineering_Economics/Chapter3.ipynb360
-rwxr-xr-xEngineering_Economics/Chapter4.ipynb388
-rwxr-xr-xEngineering_Economics/Chapter5.ipynb352
-rwxr-xr-xEngineering_Economics/Chapter6.ipynb230
-rwxr-xr-xEngineering_Economics/Chapter7.ipynb125
-rwxr-xr-xEngineering_Economics/Chapter8.ipynb619
-rwxr-xr-xEngineering_Economics/Chapter9.ipynb209
-rwxr-xr-xEngineering_Economics/README.txt10
-rwxr-xr-xEngineering_Economics/screenshots/Depriciation_and_Book_value.pngbin0 -> 62544 bytes
-rwxr-xr-xEngineering_Economics/screenshots/Economic_order_and_Time.pngbin0 -> 69387 bytes
-rwxr-xr-xEngineering_Economics/screenshots/Expected_Saving.pngbin0 -> 188820 bytes
-rwxr-xr-xEngineering_Economics/screenshots/Present_Worth.pngbin0 -> 82273 bytes
-rwxr-xr-xEngineering_Economics/screenshots/future_sum.pngbin0 -> 99835 bytes
-rwxr-xr-xEngineering_Economics/screenshots/maturity_value.pngbin0 -> 110032 bytes
-rwxr-xr-xEngineering_Physics/Chapter11_1.ipynb620
-rwxr-xr-xEngineering_Physics/Chapter13_1.ipynb386
-rwxr-xr-xEngineering_Physics/Chapter1_1.ipynb0
-rwxr-xr-xEngineering_Physics/Chapter2_1.ipynb431
-rwxr-xr-xEngineering_Physics/Chapter4_1.ipynb553
-rwxr-xr-xEngineering_Physics/Chapter5_1.ipynb469
-rwxr-xr-xEngineering_Physics/Chapter6_1.ipynb437
-rwxr-xr-xEngineering_Physics/Chapter7_1.ipynb582
-rwxr-xr-xEngineering_Physics/Chapter8_1.ipynb360
-rwxr-xr-xEngineering_Physics/Chapter9_1.ipynb576
-rwxr-xr-xEngineering_Physics/README.txt10
-rwxr-xr-xEngineering_Physics/screenshots/1.pngbin0 -> 25998 bytes
-rwxr-xr-xEngineering_Physics/screenshots/11.pngbin0 -> 18454 bytes
-rwxr-xr-xEngineering_Physics/screenshots/2.pngbin0 -> 24691 bytes
-rwxr-xr-xEngineering_Physics/screenshots/22.pngbin0 -> 30560 bytes
-rwxr-xr-xEngineering_Physics/screenshots/3.pngbin0 -> 34591 bytes
-rwxr-xr-xEngineering_Physics/screenshots/33.pngbin0 -> 23536 bytes
-rwxr-xr-xEngineering_Physics_-_I/README.txt10
-rwxr-xr-xEngineering_Physics_-_I/chapter1.ipynb188
-rwxr-xr-xEngineering_Physics_-_I/chapter2.ipynb293
-rwxr-xr-xEngineering_Physics_-_I/chapter3.ipynb209
-rwxr-xr-xEngineering_Physics_-_I/chapter4.ipynb532
-rwxr-xr-xEngineering_Physics_-_I/chapter5.ipynb700
-rwxr-xr-xEngineering_Physics_-_I/screenshots/Wavelength.PNGbin0 -> 36766 bytes
-rwxr-xr-xEngineering_Physics_-_I/screenshots/Young's_modulus.PNGbin0 -> 33987 bytes
-rwxr-xr-xEngineering_Physics_-_I/screenshots/numerical_aperture.PNGbin0 -> 29899 bytes
-rwxr-xr-xEngineering_Physics_/Chapter1.ipynb69
-rwxr-xr-xEngineering_Physics_/Chapter10.ipynb306
-rwxr-xr-xEngineering_Physics_/Chapter11.ipynb194
-rwxr-xr-xEngineering_Physics_/Chapter12.ipynb.bkup287
-rwxr-xr-xEngineering_Physics_/Chapter2.ipynb155
-rwxr-xr-xEngineering_Physics_/Chapter3.ipynb112
-rwxr-xr-xEngineering_Physics_/Chapter4.ipynb153
-rwxr-xr-xEngineering_Physics_/Chapter5.ipynb170
-rwxr-xr-xEngineering_Physics_/Chapter6.ipynb287
-rwxr-xr-xEngineering_Physics_/Chapter7.ipynb680
-rwxr-xr-xEngineering_Physics_/Chapter8.ipynb392
-rwxr-xr-xEngineering_Physics_/Chapter9.ipynb654
-rwxr-xr-xEngineering_Physics_/README.txt10
-rwxr-xr-xEngineering_Physics_/screenshots/11.pngbin0 -> 28339 bytes
-rwxr-xr-xEngineering_Physics_/screenshots/22.pngbin0 -> 24093 bytes
-rwxr-xr-xEngineering_Physics_/screenshots/33.pngbin0 -> 26393 bytes
-rwxr-xr-xEngineering_Thermodynamics/README.txt10
-rwxr-xr-xEngineering_Thermodynamics/ch1.ipynb249
-rwxr-xr-xEngineering_Thermodynamics/ch10.ipynb1017
-rwxr-xr-xEngineering_Thermodynamics/ch11.ipynb170
-rwxr-xr-xEngineering_Thermodynamics/ch12.ipynb805
-rwxr-xr-xEngineering_Thermodynamics/ch13.ipynb590
-rwxr-xr-xEngineering_Thermodynamics/ch14.ipynb502
-rwxr-xr-xEngineering_Thermodynamics/ch15.ipynb487
-rwxr-xr-xEngineering_Thermodynamics/ch16.ipynb554
-rwxr-xr-xEngineering_Thermodynamics/ch17.ipynb517
-rwxr-xr-xEngineering_Thermodynamics/ch18.ipynb554
-rwxr-xr-xEngineering_Thermodynamics/ch2.ipynb136
-rwxr-xr-xEngineering_Thermodynamics/ch3.ipynb498
-rwxr-xr-xEngineering_Thermodynamics/ch4.ipynb353
-rwxr-xr-xEngineering_Thermodynamics/ch5.ipynb423
-rwxr-xr-xEngineering_Thermodynamics/ch6.ipynb322
-rwxr-xr-xEngineering_Thermodynamics/ch7.ipynb576
-rwxr-xr-xEngineering_Thermodynamics/ch8.ipynb1018
-rwxr-xr-xEngineering_Thermodynamics/ch9.ipynb1016
-rwxr-xr-xEngineering_Thermodynamics/screenshots/ch1.pngbin0 -> 74665 bytes
-rwxr-xr-xEngineering_Thermodynamics/screenshots/ch16.pngbin0 -> 75493 bytes
-rwxr-xr-xEngineering_Thermodynamics/screenshots/ch9.pngbin0 -> 78654 bytes
-rwxr-xr-xFluid_Mechanics/Chapter1.ipynb562
-rwxr-xr-xFluid_Mechanics/Chapter10.ipynb426
-rwxr-xr-xFluid_Mechanics/Chapter11.ipynb312
-rwxr-xr-xFluid_Mechanics/Chapter12.ipynb342
-rwxr-xr-xFluid_Mechanics/Chapter2.ipynb920
-rwxr-xr-xFluid_Mechanics/Chapter3.ipynb503
-rwxr-xr-xFluid_Mechanics/Chapter4.ipynb529
-rwxr-xr-xFluid_Mechanics/Chapter5.ipynb545
-rwxr-xr-xFluid_Mechanics/Chapter6.ipynb128
-rwxr-xr-xFluid_Mechanics/Chapter7.ipynb367
-rwxr-xr-xFluid_Mechanics/Chapter8.ipynb358
-rwxr-xr-xFluid_Mechanics/Chapter9.ipynb799
-rwxr-xr-xFluid_Mechanics/Chapter_23.ipynb23
-rwxr-xr-xFluid_Mechanics/Chapter_4.ipynb23
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/README.txt10
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch1.ipynb1199
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch10.ipynb817
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch11.ipynb493
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch12.ipynb449
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch2.ipynb691
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch3.ipynb604
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch4.ipynb429
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch5.ipynb495
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch6.ipynb835
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch7.ipynb817
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch8.ipynb759
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/ch9.ipynb403
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/screenshots/ch1.pngbin0 -> 361290 bytes
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/screenshots/ch10.pngbin0 -> 350704 bytes
-rwxr-xr-xFluid_Mechanics_and_Hydraulic_Machines/screenshots/ch11.pngbin0 -> 342954 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter01.ipynb578
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter02.ipynb767
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter03.ipynb440
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter04.ipynb1337
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter05.ipynb987
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter06.ipynb1424
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter07.ipynb254
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter08.ipynb420
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter09.ipynb109
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter10.ipynb372
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter11.ipynb304
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter12.ipynb829
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter13.ipynb57
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter14.ipynb234
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter15.ipynb266
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter16.ipynb333
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter17.ipynb310
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter18.ipynb490
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter19.ipynb126
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter20.ipynb61
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter21.ipynb174
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/Chapter22.ipynb2300
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/README.txt10
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Calculation.pngbin0 -> 75696 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even.pngbin0 -> 64818 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_1.pngbin0 -> 64818 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_2.pngbin0 -> 64818 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_3.pngbin0 -> 64818 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line.pngbin0 -> 112481 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_1.pngbin0 -> 112481 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_2.pngbin0 -> 112481 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_3.pngbin0 -> 112481 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_4.pngbin0 -> 112481 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Standard_Deviation.pngbin0 -> 117100 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi.pngbin0 -> 77814 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi_1.pngbin0 -> 77814 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers.pngbin0 -> 57166 bytes
-rwxr-xr-xFundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers_with_A.pngbin0 -> 51307 bytes
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter10.ipynb164
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter11.ipynb424
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter11_6.ipynb529
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter12.ipynb486
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter12_6.ipynb478
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter13.ipynb262
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter13_6.ipynb385
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter14.ipynb295
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter14_6.ipynb325
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter15.ipynb248
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter15_6.ipynb921
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter16.ipynb128
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter16_6.ipynb377
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter17.ipynb434
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter17_6.ipynb462
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter2.ipynb314
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter2_6.ipynb379
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter3.ipynb403
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter3_6.ipynb571
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter4.ipynb198
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter4_6.ipynb198
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter5.ipynb469
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter5_6.ipynb635
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter6.ipynb566
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter6_6.ipynb652
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter7.ipynb188
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter7_6.ipynb217
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter8.ipynb452
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter8_6.ipynb444
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter9.ipynb519
-rwxr-xr-xFundamentals_Of_Thermodynamics/Chapter9_6.ipynb588
-rwxr-xr-xFundamentals_Of_Thermodynamics/README.txt10
-rwxr-xr-xFundamentals_Of_Thermodynamics/chapter10.ipynb474
-rwxr-xr-xFundamentals_Of_Thermodynamics/screenshots/heat_transfer_6.pngbin0 -> 334272 bytes
-rwxr-xr-xFundamentals_Of_Thermodynamics/screenshots/reversible_work_6.pngbin0 -> 86259 bytes
-rwxr-xr-xFundamentals_Of_Thermodynamics/screenshots/velocity_6.pngbin0 -> 84713 bytes
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter1.ipynb30
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter10.ipynb472
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter10_1.ipynb472
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter11.ipynb30
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter12.ipynb30
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter2.ipynb190
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter2_1.ipynb190
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter3.ipynb30
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter4.ipynb348
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter4_1.ipynb348
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter5.ipynb1915
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter5_1.ipynb1915
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter6.ipynb1817
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter6_1.ipynb1817
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter7.ipynb416
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter7_1.ipynb416
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter8.ipynb30
-rwxr-xr-xFundamentals_of_Electrical_Drives/Chapter9.ipynb30
-rwxr-xr-xFundamentals_of_Electrical_Drives/screenshots/Dc_Motor_Speed.pngbin0 -> 17263 bytes
-rwxr-xr-xFundamentals_of_Electrical_Drives/screenshots/braking_resistance.pngbin0 -> 16443 bytes
-rwxr-xr-xFundamentals_of_Electrical_Drives/screenshots/download.pngbin0 -> 17263 bytes
-rwxr-xr-xFundamentals_of_Electrical_Drives/screenshots/download_(1).pngbin0 -> 19443 bytes
-rwxr-xr-xFundamentals_of_Electrical_Drives/screenshots/download_(2).pngbin0 -> 16443 bytes
-rwxr-xr-xFundamentals_of_Electrical_Drives/screenshots/torque_vs_frequency.pngbin0 -> 15126 bytes
-rwxr-xr-xLinear_Integrated_Circuits/Chapter10.ipynb305
-rwxr-xr-xLinear_Integrated_Circuits/Chapter2.ipynb946
-rwxr-xr-xLinear_Integrated_Circuits/Chapter3.ipynb306
-rwxr-xr-xLinear_Integrated_Circuits/Chapter4.ipynb283
-rwxr-xr-xLinear_Integrated_Circuits/Chapter5.ipynb215
-rwxr-xr-xLinear_Integrated_Circuits/Chapter6.ipynb147
-rwxr-xr-xLinear_Integrated_Circuits/Chapter7.ipynb448
-rwxr-xr-xLinear_Integrated_Circuits/Chapter8.ipynb125
-rwxr-xr-xLinear_Integrated_Circuits/README.txt18
-rwxr-xr-xLinear_Integrated_Circuits/screenshots/design_of_voltage_regulator.pngbin0 -> 165551 bytes
-rwxr-xr-xLinear_Integrated_Circuits/screenshots/filter_design.pngbin0 -> 111612 bytes
-rwxr-xr-xLinear_Integrated_Circuits/screenshots/op-amp_differentator_design.pngbin0 -> 133374 bytes
-rwxr-xr-xMagnifying_C/Chapter_10.ipynb336
-rwxr-xr-xMagnifying_C/Chapter_11.ipynb1664
-rwxr-xr-xMagnifying_C/Chapter_12.ipynb2137
-rwxr-xr-xMagnifying_C/Chapter_2.ipynb203
-rwxr-xr-xMagnifying_C/Chapter_3.ipynb1060
-rwxr-xr-xMagnifying_C/Chapter_4.ipynb1070
-rwxr-xr-xMagnifying_C/Chapter_5.ipynb909
-rwxr-xr-xMagnifying_C/Chapter_6.ipynb951
-rwxr-xr-xMagnifying_C/Chapter_7.ipynb862
-rwxr-xr-xMagnifying_C/Chapter_8.ipynb2718
-rwxr-xr-xMagnifying_C/Chapter_9.ipynb1093
-rwxr-xr-xMagnifying_C/README.txt10
-rwxr-xr-xMagnifying_C/screenshots/chapter_10.pngbin0 -> 22773 bytes
-rwxr-xr-xMagnifying_C/screenshots/chapter_2.pngbin0 -> 19444 bytes
-rwxr-xr-xMagnifying_C/screenshots/chapter_6.pngbin0 -> 25491 bytes
-rwxr-xr-xMagnifying_C/screenshots/ss_1.pngbin0 -> 31802 bytes
-rwxr-xr-xMagnifying_C/screenshots/ss_2.pngbin0 -> 42634 bytes
-rwxr-xr-xMagnifying_C/screenshots/ss_3.pngbin0 -> 39397 bytes
-rwxr-xr-xMass_-_Transfer_Operations/Chapter1.ipynb76
-rwxr-xr-xMass_-_Transfer_Operations/Chapter10.ipynb1344
-rwxr-xr-xMass_-_Transfer_Operations/Chapter10_1.ipynb1366
-rwxr-xr-xMass_-_Transfer_Operations/Chapter10_2.ipynb1366
-rwxr-xr-xMass_-_Transfer_Operations/Chapter11.ipynb1207
-rwxr-xr-xMass_-_Transfer_Operations/Chapter11_1.ipynb1235
-rwxr-xr-xMass_-_Transfer_Operations/Chapter11_2.ipynb1235
-rwxr-xr-xMass_-_Transfer_Operations/Chapter12.ipynb922
-rwxr-xr-xMass_-_Transfer_Operations/Chapter12_1.ipynb932
-rwxr-xr-xMass_-_Transfer_Operations/Chapter12_2.ipynb932
-rwxr-xr-xMass_-_Transfer_Operations/Chapter13.ipynb443
-rwxr-xr-xMass_-_Transfer_Operations/Chapter13_1.ipynb438
-rwxr-xr-xMass_-_Transfer_Operations/Chapter13_2.ipynb438
-rwxr-xr-xMass_-_Transfer_Operations/Chapter1_1.ipynb76
-rwxr-xr-xMass_-_Transfer_Operations/Chapter1_2.ipynb76
-rwxr-xr-xMass_-_Transfer_Operations/Chapter2.ipynb333
-rwxr-xr-xMass_-_Transfer_Operations/Chapter2_1.ipynb333
-rwxr-xr-xMass_-_Transfer_Operations/Chapter2_2.ipynb333
-rwxr-xr-xMass_-_Transfer_Operations/Chapter3.ipynb628
-rwxr-xr-xMass_-_Transfer_Operations/Chapter3_1.ipynb628
-rwxr-xr-xMass_-_Transfer_Operations/Chapter3_2.ipynb628
-rwxr-xr-xMass_-_Transfer_Operations/Chapter4.ipynb471
-rwxr-xr-xMass_-_Transfer_Operations/Chapter4_1.ipynb471
-rwxr-xr-xMass_-_Transfer_Operations/Chapter4_2.ipynb471
-rwxr-xr-xMass_-_Transfer_Operations/Chapter5.ipynb384
-rwxr-xr-xMass_-_Transfer_Operations/Chapter5_1.ipynb385
-rwxr-xr-xMass_-_Transfer_Operations/Chapter5_2.ipynb385
-rwxr-xr-xMass_-_Transfer_Operations/Chapter6.ipynb1050
-rwxr-xr-xMass_-_Transfer_Operations/Chapter6_1.ipynb1059
-rwxr-xr-xMass_-_Transfer_Operations/Chapter6_2.ipynb1059
-rwxr-xr-xMass_-_Transfer_Operations/Chapter7.ipynb1071
-rwxr-xr-xMass_-_Transfer_Operations/Chapter7_1.ipynb1071
-rwxr-xr-xMass_-_Transfer_Operations/Chapter7_2.ipynb1092
-rwxr-xr-xMass_-_Transfer_Operations/Chapter8.ipynb1462
-rwxr-xr-xMass_-_Transfer_Operations/Chapter8_1.ipynb1312
-rwxr-xr-xMass_-_Transfer_Operations/Chapter8_2.ipynb1312
-rwxr-xr-xMass_-_Transfer_Operations/Chapter9.ipynb2153
-rwxr-xr-xMass_-_Transfer_Operations/Chapter9_1.ipynb2154
-rwxr-xr-xMass_-_Transfer_Operations/Chapter9_2.ipynb2154
-rwxr-xr-xMass_-_Transfer_Operations/README.txt10
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration13.3.pngbin0 -> 76410 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration13.3_1.pngbin0 -> 76410 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration13.3_2.pngbin0 -> 76410 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration3.1.pngbin0 -> 68914 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration3.1_1.pngbin0 -> 68914 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration3.1_2.pngbin0 -> 68914 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration5.1.pngbin0 -> 87422 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration5.1_1.pngbin0 -> 87422 bytes
-rwxr-xr-xMass_-_Transfer_Operations/screenshots/illustration5.1_2.pngbin0 -> 87422 bytes
-rwxr-xr-xMaterial_Science/README.txt10
-rwxr-xr-xMaterial_Science/material_science_ch_1.ipynb102
-rwxr-xr-xMaterial_Science/material_science_ch_10.ipynb1488
-rwxr-xr-xMaterial_Science/material_science_ch_11.ipynb194
-rwxr-xr-xMaterial_Science/material_science_ch_12.ipynb461
-rwxr-xr-xMaterial_Science/material_science_ch_14.ipynb103
-rwxr-xr-xMaterial_Science/material_science_ch_15.ipynb104
-rwxr-xr-xMaterial_Science/material_science_ch_16.ipynb108
-rwxr-xr-xMaterial_Science/material_science_ch_18.ipynb1115
-rwxr-xr-xMaterial_Science/material_science_ch_19.ipynb526
-rwxr-xr-xMaterial_Science/material_science_ch_2.ipynb1395
-rwxr-xr-xMaterial_Science/material_science_ch_20.ipynb141
-rwxr-xr-xMaterial_Science/material_science_ch_23.ipynb113
-rwxr-xr-xMaterial_Science/material_science_ch_3.ipynb361
-rwxr-xr-xMaterial_Science/material_science_ch_4.ipynb61
-rwxr-xr-xMaterial_Science/material_science_ch_5.ipynb106
-rwxr-xr-xMaterial_Science/material_science_ch_6.ipynb105
-rwxr-xr-xMaterial_Science/material_science_ch_7.ipynb573
-rwxr-xr-xMaterial_Science/material_science_ch_8.ipynb853
-rwxr-xr-xMaterial_Science/screenshots/pl.pngbin0 -> 60638 bytes
-rwxr-xr-xMaterial_Science/screenshots/plane.pngbin0 -> 78614 bytes
-rwxr-xr-xMaterial_Science/screenshots/pln.pngbin0 -> 64313 bytes
-rwxr-xr-xMechanics_of_Structures/Chapter1.ipynb745
-rwxr-xr-xMechanics_of_Structures/Chapter10.ipynb661
-rwxr-xr-xMechanics_of_Structures/Chapter11.ipynb527
-rwxr-xr-xMechanics_of_Structures/Chapter12.ipynb850
-rwxr-xr-xMechanics_of_Structures/Chapter13.ipynb366
-rwxr-xr-xMechanics_of_Structures/Chapter2.ipynb309
-rwxr-xr-xMechanics_of_Structures/Chapter3.ipynb283
-rwxr-xr-xMechanics_of_Structures/Chapter5.ipynb1225
-rwxr-xr-xMechanics_of_Structures/Chapter6.ipynb491
-rwxr-xr-xMechanics_of_Structures/Chapter8.ipynb489
-rwxr-xr-xMechanics_of_Structures/Chapter9.ipynb523
-rwxr-xr-xMechanics_of_Structures/README.txt10
-rwxr-xr-xMechanics_of_Structures/screenshots/Chapter12.pngbin0 -> 159535 bytes
-rwxr-xr-xMechanics_of_Structures/screenshots/Chapter13.pngbin0 -> 135903 bytes
-rwxr-xr-xMechanics_of_Structures/screenshots/chapter3.pngbin0 -> 158772 bytes
-rwxr-xr-xModern_Physics/Chapter1.ipynb329
-rwxr-xr-xModern_Physics/Chapter10.ipynb191
-rwxr-xr-xModern_Physics/Chapter10_1.ipynb114
-rwxr-xr-xModern_Physics/Chapter10_2.ipynb114
-rwxr-xr-xModern_Physics/Chapter11.ipynb136
-rwxr-xr-xModern_Physics/Chapter11_1.ipynb83
-rwxr-xr-xModern_Physics/Chapter11_2.ipynb83
-rwxr-xr-xModern_Physics/Chapter12.ipynb572
-rwxr-xr-xModern_Physics/Chapter12_1.ipynb322
-rwxr-xr-xModern_Physics/Chapter12_2.ipynb322
-rwxr-xr-xModern_Physics/Chapter13.ipynb430
-rwxr-xr-xModern_Physics/Chapter13_1.ipynb125
-rwxr-xr-xModern_Physics/Chapter13_2.ipynb125
-rwxr-xr-xModern_Physics/Chapter14.ipynb250
-rwxr-xr-xModern_Physics/Chapter14_1.ipynb146
-rwxr-xr-xModern_Physics/Chapter14_2.ipynb146
-rwxr-xr-xModern_Physics/Chapter15.ipynb74
-rwxr-xr-xModern_Physics/Chapter15_1.ipynb62
-rwxr-xr-xModern_Physics/Chapter15_2.ipynb62
-rwxr-xr-xModern_Physics/Chapter16.ipynb105
-rwxr-xr-xModern_Physics/Chapter16_1.ipynb83
-rwxr-xr-xModern_Physics/Chapter16_2.ipynb83
-rwxr-xr-xModern_Physics/Chapter1_1.ipynb83
-rwxr-xr-xModern_Physics/Chapter1_2.ipynb83
-rwxr-xr-xModern_Physics/Chapter2.ipynb593
-rwxr-xr-xModern_Physics/Chapter2_1.ipynb356
-rwxr-xr-xModern_Physics/Chapter2_2.ipynb356
-rwxr-xr-xModern_Physics/Chapter3.ipynb390
-rwxr-xr-xModern_Physics/Chapter3_1.ipynb146
-rwxr-xr-xModern_Physics/Chapter3_2.ipynb146
-rwxr-xr-xModern_Physics/Chapter4.ipynb361
-rwxr-xr-xModern_Physics/Chapter4_1.ipynb188
-rwxr-xr-xModern_Physics/Chapter4_2.ipynb188
-rwxr-xr-xModern_Physics/Chapter5.ipynb269
-rwxr-xr-xModern_Physics/Chapter5_1.ipynb49
-rwxr-xr-xModern_Physics/Chapter5_2.ipynb49
-rwxr-xr-xModern_Physics/Chapter6.ipynb262
-rwxr-xr-xModern_Physics/Chapter6_1.ipynb167
-rwxr-xr-xModern_Physics/Chapter6_2.ipynb167
-rwxr-xr-xModern_Physics/Chapter7.ipynb231
-rwxr-xr-xModern_Physics/Chapter7_1.ipynb146
-rwxr-xr-xModern_Physics/Chapter7_2.ipynb146
-rwxr-xr-xModern_Physics/Chapter8.ipynb151
-rwxr-xr-xModern_Physics/Chapter8_1.ipynb104
-rwxr-xr-xModern_Physics/Chapter8_2.ipynb104
-rwxr-xr-xModern_Physics/Chapter9.ipynb213
-rwxr-xr-xModern_Physics/Chapter9_1.ipynb146
-rwxr-xr-xModern_Physics/Chapter9_2.ipynb146
-rwxr-xr-xModern_Physics/README.txt18
-rwxr-xr-xModern_Physics/chapter1.ipynb383
-rwxr-xr-xModern_Physics/chapter11.ipynb336
-rwxr-xr-xModern_Physics/chapter11_1.ipynb336
-rwxr-xr-xModern_Physics/chapter12.ipynb63
-rwxr-xr-xModern_Physics/chapter12_1.ipynb63
-rwxr-xr-xModern_Physics/chapter13.ipynb248
-rwxr-xr-xModern_Physics/chapter13_1.ipynb248
-rwxr-xr-xModern_Physics/chapter14.ipynb201
-rwxr-xr-xModern_Physics/chapter14_1.ipynb201
-rwxr-xr-xModern_Physics/chapter15.ipynb397
-rwxr-xr-xModern_Physics/chapter15_1.ipynb397
-rwxr-xr-xModern_Physics/chapter16.ipynb433
-rwxr-xr-xModern_Physics/chapter16_1.ipynb433
-rwxr-xr-xModern_Physics/chapter1_1.ipynb383
-rwxr-xr-xModern_Physics/chapter2.ipynb215
-rwxr-xr-xModern_Physics/chapter2_1.ipynb215
-rwxr-xr-xModern_Physics/chapter3.ipynb351
-rwxr-xr-xModern_Physics/chapter3_1.ipynb351
-rwxr-xr-xModern_Physics/chapter4.ipynb320
-rwxr-xr-xModern_Physics/chapter4_1.ipynb320
-rwxr-xr-xModern_Physics/chapter5.ipynb832
-rwxr-xr-xModern_Physics/chapter5_1.ipynb832
-rwxr-xr-xModern_Physics/chapter7.ipynb186
-rwxr-xr-xModern_Physics/chapter7_1.ipynb186
-rwxr-xr-xModern_Physics/chapter8.ipynb739
-rwxr-xr-xModern_Physics/chapter8_1.ipynb739
-rwxr-xr-xModern_Physics/chapter9.ipynb397
-rwxr-xr-xModern_Physics/chapter9_1.ipynb397
-rwxr-xr-xModern_Physics/screenshots/1.pngbin0 -> 25998 bytes
-rwxr-xr-xModern_Physics/screenshots/2.pngbin0 -> 24691 bytes
-rwxr-xr-xModern_Physics/screenshots/3.pngbin0 -> 34591 bytes
-rwxr-xr-xModern_Physics/screenshots/Untitled.pngbin0 -> 19562 bytes
-rwxr-xr-xModern_Physics/screenshots/Untitled_1.pngbin0 -> 19562 bytes
-rwxr-xr-xModern_Physics/screenshots/Untitled_2.pngbin0 -> 19562 bytes
-rwxr-xr-xModern_Physics/screenshots/finding_average_deflection.pngbin0 -> 167640 bytes
-rwxr-xr-xModern_Physics/screenshots/finding_average_deflection_1.pngbin0 -> 167640 bytes
-rwxr-xr-xModern_Physics/screenshots/finding_energy_of_sodium.pngbin0 -> 180617 bytes
-rwxr-xr-xModern_Physics/screenshots/finding_time_interval.pngbin0 -> 154491 bytes
-rwxr-xr-xModern_Physics/screenshots/findning_uncertainity.pngbin0 -> 139833 bytes
-rwxr-xr-xModern_Physics/screenshots/findning_uncertainity_1.pngbin0 -> 139833 bytes
-rwxr-xr-xModern_Physics/screenshots/findning_uncertainity_2.pngbin0 -> 139833 bytes
-rwxr-xr-xModern_Physics/screenshots/mass_of_electron_and_proton.pngbin0 -> 101053 bytes
-rwxr-xr-xModern_Physics/screenshots/uncertainity.pngbin0 -> 284247 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter1.ipynb311
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter10.ipynb434
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter10_1.ipynb434
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter10_2.ipynb434
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter10_3.ipynb434
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter11.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter11_1.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter11_2.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter11_3.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter12.ipynb285
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter12_1.ipynb285
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter12_2.ipynb285
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter12_3.ipynb285
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter13.ipynb250
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter13_1.ipynb250
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter13_2.ipynb250
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter13_3.ipynb250
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter14.ipynb107
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter14_1.ipynb107
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter14_2.ipynb107
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter14_3.ipynb107
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter15.ipynb203
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter15_1.ipynb203
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter15_2.ipynb203
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter15_3.ipynb203
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter16.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter16_1.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter16_2.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter16_3.ipynb114
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter17.ipynb293
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter17_1.ipynb293
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter17_2.ipynb293
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter17_3.ipynb293
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter18.ipynb366
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter18_1.ipynb366
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter18_2.ipynb366
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter18_3.ipynb366
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter19.ipynb291
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter19_1.ipynb291
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter19_2.ipynb291
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter19_3.ipynb291
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter1_1.ipynb311
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter1_2.ipynb311
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter1_3.ipynb311
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter2.ipynb295
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter20.ipynb119
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter20_1.ipynb119
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter20_2.ipynb119
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter20_3.ipynb119
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter21.ipynb106
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter21_1.ipynb106
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter21_2.ipynb106
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter21_3.ipynb106
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter2_1.ipynb295
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter2_2.ipynb295
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter2_3.ipynb295
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter3.ipynb197
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter3_1.ipynb197
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter3_2.ipynb197
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter3_3.ipynb197
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter4.ipynb193
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter4_1.ipynb193
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter4_2.ipynb193
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter4_3.ipynb193
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter6.ipynb208
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter6_1.ipynb208
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter6_2.ipynb208
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter6_3.ipynb208
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter7.ipynb258
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter7_1.ipynb258
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter7_2.ipynb258
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter7_3.ipynb258
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter8.ipynb116
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter8_1.ipynb116
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter8_2.ipynb116
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter8_3.ipynb116
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter9.ipynb418
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter9_1.ipynb418
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter9_2.ipynb418
-rwxr-xr-xModern_Physics_By_G.Aruldas/Chapter9_3.ipynb418
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/1.pngbin0 -> 25998 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/1_1.pngbin0 -> 25998 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/1_2.pngbin0 -> 25998 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/1_3.pngbin0 -> 25998 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/2.pngbin0 -> 24691 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/2_1.pngbin0 -> 24691 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/2_2.pngbin0 -> 24691 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/2_3.pngbin0 -> 24691 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/3.pngbin0 -> 34591 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/3_1.pngbin0 -> 34591 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/3_2.pngbin0 -> 34591 bytes
-rwxr-xr-xModern_Physics_By_G.Aruldas/screenshots/3_3.pngbin0 -> 34591 bytes
-rwxr-xr-xOptical_Communication/Chapter_2.ipynb (renamed from Optical_Communication_/Chapter_2.ipynb)0
-rwxr-xr-xOptical_Communication/Chapter_4.ipynb (renamed from Optical_Communication_/Chapter_4.ipynb)0
-rwxr-xr-xOptical_Communication/Chapter_5.ipynb (renamed from Optical_Communication_/Chapter_5.ipynb)0
-rwxr-xr-xOptical_Communication/Chapter_6.ipynb (renamed from Optical_Communication_/Chapter_6.ipynb)0
-rwxr-xr-xOptical_Communication/screenshots/finding_angles.png (renamed from Optical_Communication_/screenshots/finding_angles.png)bin59376 -> 59376 bytes
-rwxr-xr-xOptical_Communication/screenshots/optical_power.png (renamed from Optical_Communication_/screenshots/optical_power.png)bin47182 -> 47182 bytes
-rwxr-xr-xOptical_Communication/screenshots/responsivity.png (renamed from Optical_Communication_/screenshots/responsivity.png)bin51139 -> 51139 bytes
-rwxr-xr-xOptical_Fiber_Communication/Chapter10.ipynb487
-rwxr-xr-xOptical_Fiber_Communication/Chapter10_1.ipynb487
-rwxr-xr-xOptical_Fiber_Communication/Chapter2.ipynb721
-rwxr-xr-xOptical_Fiber_Communication/Chapter2_1.ipynb721
-rwxr-xr-xOptical_Fiber_Communication/Chapter3.ipynb1352
-rwxr-xr-xOptical_Fiber_Communication/Chapter3_1.ipynb1352
-rwxr-xr-xOptical_Fiber_Communication/Chapter4.ipynb887
-rwxr-xr-xOptical_Fiber_Communication/Chapter4_1.ipynb887
-rwxr-xr-xOptical_Fiber_Communication/Chapter5.ipynb1476
-rwxr-xr-xOptical_Fiber_Communication/Chapter5_1.ipynb1476
-rwxr-xr-xOptical_Fiber_Communication/Chapter6.ipynb104
-rwxr-xr-xOptical_Fiber_Communication/Chapter6_1.ipynb104
-rwxr-xr-xOptical_Fiber_Communication/Chapter7.ipynb933
-rwxr-xr-xOptical_Fiber_Communication/Chapter7_1.ipynb933
-rwxr-xr-xOptical_Fiber_Communication/Chapter8.ipynb1192
-rwxr-xr-xOptical_Fiber_Communication/Chapter8_1.ipynb1192
-rwxr-xr-xOptical_Fiber_Communication/Chapter9.ipynb1146
-rwxr-xr-xOptical_Fiber_Communication/Chapter9_1.ipynb1146
-rwxr-xr-xOptical_Fiber_Communication/screenshots/ch3.pngbin0 -> 34616 bytes
-rwxr-xr-xOptical_Fiber_Communication/screenshots/ch3_1.pngbin0 -> 34616 bytes
-rwxr-xr-xOptical_Fiber_Communication/screenshots/ch5.pngbin0 -> 45025 bytes
-rwxr-xr-xOptical_Fiber_Communication/screenshots/ch5_1.pngbin0 -> 45025 bytes
-rwxr-xr-xOptical_Fiber_Communication/screenshots/ch7.pngbin0 -> 39064 bytes
-rwxr-xr-xOptical_Fiber_Communication/screenshots/ch7_1.pngbin0 -> 39064 bytes
-rwxr-xr-xPhysical_Chemsitry/Chapter1.ipynb208
-rwxr-xr-xPhysical_Chemsitry/Chapter10.ipynb202
-rwxr-xr-xPhysical_Chemsitry/Chapter11.ipynb95
-rwxr-xr-xPhysical_Chemsitry/Chapter12.ipynb348
-rwxr-xr-xPhysical_Chemsitry/Chapter13.ipynb401
-rwxr-xr-xPhysical_Chemsitry/Chapter14.ipynb603
-rwxr-xr-xPhysical_Chemsitry/Chapter15.ipynb322
-rwxr-xr-xPhysical_Chemsitry/Chapter16.ipynb129
-rwxr-xr-xPhysical_Chemsitry/Chapter17.ipynb183
-rwxr-xr-xPhysical_Chemsitry/Chapter18.ipynb102
-rwxr-xr-xPhysical_Chemsitry/Chapter19.ipynb356
-rwxr-xr-xPhysical_Chemsitry/Chapter2.ipynb172
-rwxr-xr-xPhysical_Chemsitry/Chapter3.ipynb57
-rwxr-xr-xPhysical_Chemsitry/Chapter4.ipynb171
-rwxr-xr-xPhysical_Chemsitry/Chapter6.ipynb232
-rwxr-xr-xPhysical_Chemsitry/Chapter7.ipynb301
-rwxr-xr-xPhysical_Chemsitry/Chapter8.ipynb218
-rwxr-xr-xPhysical_Chemsitry/Chapter9.ipynb103
-rwxr-xr-xPhysical_Chemsitry/Chapter_1.ipynb533
-rwxr-xr-xPhysical_Chemsitry/Chapter_10.ipynb635
-rwxr-xr-xPhysical_Chemsitry/Chapter_2.ipynb437
-rwxr-xr-xPhysical_Chemsitry/Chapter_3.ipynb878
-rwxr-xr-xPhysical_Chemsitry/Chapter_4.ipynb1022
-rwxr-xr-xPhysical_Chemsitry/Chapter_5.ipynb767
-rwxr-xr-xPhysical_Chemsitry/Chapter_6.ipynb711
-rwxr-xr-xPhysical_Chemsitry/Chapter_7.ipynb1029
-rwxr-xr-xPhysical_Chemsitry/Chapter_8.ipynb440
-rwxr-xr-xPhysical_Chemsitry/Chapter_9.ipynb101
-rwxr-xr-xPhysical_Chemsitry/screenshots/chap11.pngbin0 -> 57676 bytes
-rwxr-xr-xPhysical_Chemsitry/screenshots/chap12.pngbin0 -> 56243 bytes
-rwxr-xr-xPhysical_Chemsitry/screenshots/chap13.pngbin0 -> 65878 bytes
-rwxr-xr-xPhysical_Chemsitry/screenshots/chap3.pngbin0 -> 62750 bytes
-rwxr-xr-xPhysical_Chemsitry/screenshots/chap4.pngbin0 -> 67939 bytes
-rwxr-xr-xPhysical_Chemsitry/screenshots/chap5.pngbin0 -> 56537 bytes
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter1.ipynb201
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter10.ipynb514
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter11.ipynb1412
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter2.ipynb192
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter3.ipynb202
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter4.ipynb333
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter5.ipynb384
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter6.ipynb650
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter7.ipynb413
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter8.ipynb148
-rwxr-xr-xPhysics_for_BSc(Paper-3)/Chapter9.ipynb693
-rwxr-xr-xPhysics_for_BSc(Paper-3)/README.txt10
-rwxr-xr-xPhysics_for_BSc(Paper-3)/screenshots/1.pngbin0 -> 30975 bytes
-rwxr-xr-xPhysics_for_BSc(Paper-3)/screenshots/2.pngbin0 -> 39459 bytes
-rwxr-xr-xPhysics_for_BSc(Paper-3)/screenshots/3.pngbin0 -> 27633 bytes
-rwxr-xr-xPower_Electronics/Chapter10.ipynb228
-rwxr-xr-xPower_Electronics/Chapter10_1.ipynb228
-rwxr-xr-xPower_Electronics/Chapter10_2.ipynb228
-rwxr-xr-xPower_Electronics/Chapter10_3.ipynb228
-rwxr-xr-xPower_Electronics/Chapter11.ipynb299
-rwxr-xr-xPower_Electronics/Chapter11_1.ipynb299
-rwxr-xr-xPower_Electronics/Chapter11_2.ipynb299
-rwxr-xr-xPower_Electronics/Chapter11_3.ipynb299
-rwxr-xr-xPower_Electronics/Chapter12.ipynb1997
-rwxr-xr-xPower_Electronics/Chapter12_1.ipynb1997
-rwxr-xr-xPower_Electronics/Chapter12_2.ipynb1997
-rwxr-xr-xPower_Electronics/Chapter12_3.ipynb1997
-rwxr-xr-xPower_Electronics/Chapter13.ipynb342
-rwxr-xr-xPower_Electronics/Chapter13_1.ipynb342
-rwxr-xr-xPower_Electronics/Chapter13_2.ipynb342
-rwxr-xr-xPower_Electronics/Chapter13_3.ipynb342
-rwxr-xr-xPower_Electronics/Chapter14.ipynb93
-rwxr-xr-xPower_Electronics/Chapter14_1.ipynb93
-rwxr-xr-xPower_Electronics/Chapter14_2.ipynb93
-rwxr-xr-xPower_Electronics/Chapter14_3.ipynb93
-rwxr-xr-xPower_Electronics/Chapter2.ipynb233
-rwxr-xr-xPower_Electronics/Chapter2_1.ipynb233
-rwxr-xr-xPower_Electronics/Chapter2_2.ipynb233
-rwxr-xr-xPower_Electronics/Chapter2_3.ipynb233
-rwxr-xr-xPower_Electronics/Chapter3.ipynb1001
-rwxr-xr-xPower_Electronics/Chapter3_1.ipynb1001
-rwxr-xr-xPower_Electronics/Chapter3_2.ipynb1001
-rwxr-xr-xPower_Electronics/Chapter3_3.ipynb1001
-rwxr-xr-xPower_Electronics/Chapter4.ipynb946
-rwxr-xr-xPower_Electronics/Chapter4_1.ipynb946
-rwxr-xr-xPower_Electronics/Chapter4_2.ipynb946
-rwxr-xr-xPower_Electronics/Chapter4_3.ipynb946
-rwxr-xr-xPower_Electronics/Chapter5.ipynb511
-rwxr-xr-xPower_Electronics/Chapter5_1.ipynb511
-rwxr-xr-xPower_Electronics/Chapter5_2.ipynb511
-rwxr-xr-xPower_Electronics/Chapter5_3.ipynb511
-rwxr-xr-xPower_Electronics/Chapter6.ipynb1761
-rwxr-xr-xPower_Electronics/Chapter6_1.ipynb1761
-rwxr-xr-xPower_Electronics/Chapter6_2.ipynb1761
-rwxr-xr-xPower_Electronics/Chapter6_3.ipynb1761
-rwxr-xr-xPower_Electronics/Chapter7.ipynb1036
-rwxr-xr-xPower_Electronics/Chapter7_1.ipynb1036
-rwxr-xr-xPower_Electronics/Chapter7_2.ipynb1036
-rwxr-xr-xPower_Electronics/Chapter7_3.ipynb1036
-rwxr-xr-xPower_Electronics/Chapter8.ipynb984
-rwxr-xr-xPower_Electronics/Chapter8_1.ipynb984
-rwxr-xr-xPower_Electronics/Chapter8_2.ipynb984
-rwxr-xr-xPower_Electronics/Chapter8_3.ipynb984
-rwxr-xr-xPower_Electronics/Chapter9.ipynb388
-rwxr-xr-xPower_Electronics/Chapter9_1.ipynb388
-rwxr-xr-xPower_Electronics/Chapter9_2.ipynb388
-rwxr-xr-xPower_Electronics/Chapter9_3.ipynb388
-rwxr-xr-xPower_Electronics/Power_electronics_ch_1.ipynb449
-rwxr-xr-xPower_Electronics/Power_electronics_ch_10.ipynb283
-rwxr-xr-xPower_Electronics/Power_electronics_ch_12.ipynb1030
-rwxr-xr-xPower_Electronics/Power_electronics_ch_13.ipynb965
-rwxr-xr-xPower_Electronics/Power_electronics_ch_2.ipynb2357
-rwxr-xr-xPower_Electronics/Power_electronics_ch_3.ipynb2276
-rwxr-xr-xPower_Electronics/Power_electronics_ch_4.ipynb983
-rwxr-xr-xPower_Electronics/Power_electronics_ch_5.ipynb1095
-rwxr-xr-xPower_Electronics/Power_electronics_ch_6.ipynb852
-rwxr-xr-xPower_Electronics/Power_electronics_ch_7.ipynb204
-rwxr-xr-xPower_Electronics/Power_electronics_ch_8.ipynb576
-rwxr-xr-xPower_Electronics/Power_electronics_ch_9.ipynb1272
-rwxr-xr-xPower_Electronics/screenshots/Capture.pngbin0 -> 71211 bytes
-rwxr-xr-xPower_Electronics/screenshots/Capture1.pngbin0 -> 26614 bytes
-rwxr-xr-xPower_Electronics/screenshots/Capture2.pngbin0 -> 51127 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter2.pngbin0 -> 226408 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter2_1.pngbin0 -> 226408 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter2_2.pngbin0 -> 226408 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter2_3.pngbin0 -> 226408 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter3.pngbin0 -> 230367 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter3_1.pngbin0 -> 230367 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter3_2.pngbin0 -> 230367 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter3_3.pngbin0 -> 230367 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter4.pngbin0 -> 222170 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter4_1.pngbin0 -> 222170 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter4_2.pngbin0 -> 222170 bytes
-rwxr-xr-xPower_Electronics/screenshots/Chapter4_3.pngbin0 -> 222170 bytes
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter01.ipynb249
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter02.ipynb95
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter03.ipynb412
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter04.ipynb365
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter05.ipynb550
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter06.ipynb351
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter07.ipynb358
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter08.ipynb527
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter09.ipynb512
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter10.ipynb211
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter11.ipynb650
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter12.ipynb443
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter13.ipynb176
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/Chapter14.ipynb152
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/screenshots/ex1.2.pngbin0 -> 69150 bytes
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/screenshots/ex13.1.pngbin0 -> 52414 bytes
-rwxr-xr-xPrinciples_Of_Foundation_Engineering/screenshots/ex14.2.pngbin0 -> 57139 bytes
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter10.ipynb109
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter11.ipynb553
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter12.ipynb325
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter13.ipynb435
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter14.ipynb123
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter15.ipynb391
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter16.ipynb319
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter18.ipynb124
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter2.ipynb62
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter3.ipynb199
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter4.ipynb61
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter6.ipynb148
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter7.ipynb444
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter8.ipynb241
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/Chapter9.ipynb205
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/screenshots/Chapter10.pngbin0 -> 141935 bytes
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/screenshots/Chapter11.pngbin0 -> 137793 bytes
-rwxr-xr-xPrinciples_Of_Geotechnical_Engineering/screenshots/Chapter18.pngbin0 -> 138447 bytes
-rwxr-xr-xProgramming_in_C_using_ANSI_C/KamthaneChapter15.ipynb726
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/README.txt10
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter1.ipynb125
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter11.ipynb1402
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter2.ipynb209
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter3.ipynb230
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter4.ipynb62
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter5.ipynb104
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter6.ipynb238
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9.ipynb553
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9_1.ipynb553
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/Bandwidth.pngbin0 -> 41003 bytes
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/peakpower.pngbin0 -> 38842 bytes
-rwxr-xr-xRadar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/power.pngbin0 -> 36122 bytes
-rwxr-xr-xSatellite_Communications/Chapter_10.ipynb23
-rwxr-xr-xSatellite_Communications/Chapter_6.ipynb69
-rwxr-xr-xStatics_And_Strength_Of_Materials/README.txt10
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch1.ipynb256
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch10.ipynb500
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch12.ipynb493
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch13.ipynb359
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch14.ipynb645
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch15.ipynb361
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch16.ipynb387
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch2.ipynb358
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch3.ipynb255
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch4.ipynb257
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch5.ipynb148
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch6.ipynb354
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch7.ipynb335
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch8.ipynb401
-rwxr-xr-xStatics_And_Strength_Of_Materials/ch9.ipynb509
-rwxr-xr-xStatics_And_Strength_Of_Materials/screenshots/ch4.pngbin0 -> 357212 bytes
-rwxr-xr-xStatics_And_Strength_Of_Materials/screenshots/ch5.pngbin0 -> 378032 bytes
-rwxr-xr-xStatics_And_Strength_Of_Materials/screenshots/ch6.pngbin0 -> 352326 bytes
-rwxr-xr-xTest/README.txt10
-rwxr-xr-xTest/chapter1.ipynb423
-rwxr-xr-xTest/chapter1_1.ipynb423
-rwxr-xr-xTest/chapter1_2.ipynb423
-rwxr-xr-xTest/chapter2.ipynb501
-rwxr-xr-xTest/chapter2_1.ipynb501
-rwxr-xr-xTest/chapter2_2.ipynb501
-rwxr-xr-xTest/screenshots/screen1.pngbin0 -> 64967 bytes
-rwxr-xr-xTest/screenshots/screen1_1.pngbin0 -> 64967 bytes
-rwxr-xr-xTest/screenshots/screen2.pngbin0 -> 18650 bytes
-rwxr-xr-xTest/screenshots/screen2_1.pngbin0 -> 18650 bytes
-rwxr-xr-xTest/screenshots/screen2_2.pngbin0 -> 18650 bytes
-rwxr-xr-xTest/screenshots/screen2_3.pngbin0 -> 18650 bytes
-rwxr-xr-xTest/screenshots/screen3.pngbin0 -> 95229 bytes
-rwxr-xr-xTest/screenshots/screen3_1.pngbin0 -> 95229 bytes
-rwxr-xr-xTest/screenshots/screen3_2.pngbin0 -> 95229 bytes
-rwxr-xr-xTestContribution/Chapter2.ipynb322
-rwxr-xr-xTestContribution/README.txt10
-rwxr-xr-xTestContribution/abhisheksharma.ipynb946
-rwxr-xr-xTestContribution/abhisheksharma_1.ipynb946
-rwxr-xr-xTestContribution/abhisheksharma_2.ipynb946
-rwxr-xr-xTestContribution/bilal.ipynb406
-rwxr-xr-xTestContribution/bilal_1.ipynb406
-rwxr-xr-xTestContribution/bilal_2.ipynb406
-rwxr-xr-xTestContribution/bilal_3.ipynb406
-rwxr-xr-xTestContribution/ch3.ipynb941
-rwxr-xr-xTestContribution/ch3_1.ipynb941
-rwxr-xr-xTestContribution/ch3_2.ipynb941
-rwxr-xr-xTestContribution/chapterno1.ipynb126
-rwxr-xr-xTestContribution/exampleCount.py27
-rwxr-xr-xTestContribution/screenshots/State_Direction.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_1.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_10.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_11.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_12.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_13.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_14.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_15.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_16.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_17.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_18.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_19.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_2.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_20.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_3.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_4.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_5.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_6.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_7.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_8.pngbin0 -> 161458 bytes
-rwxr-xr-xTestContribution/screenshots/State_Direction_9.pngbin0 -> 161458 bytes
-rwxr-xr-xTesting_Textbook_Companion_Directory/chapter2.ipynb285
-rwxr-xr-xTesting_Textbook_Companion_Directory/chapter5.ipynb171
-rwxr-xr-xTesting_Textbook_Companion_Directory/screenshots/energy.pngbin0 -> 34458 bytes
-rwxr-xr-xTesting_Textbook_Companion_Directory/screenshots/internal-energy.pngbin0 -> 44302 bytes
-rwxr-xr-xTesting_Textbook_Companion_Directory/screenshots/temprature.pngbin0 -> 39632 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01.ipynb165
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_1.ipynb165
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_2.ipynb165
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02.ipynb420
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_1.ipynb420
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_2.ipynb422
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03.ipynb239
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_1.ipynb239
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_2.ipynb239
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04.ipynb204
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_1.ipynb204
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_2.ipynb206
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05.ipynb425
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_1.ipynb425
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_2.ipynb426
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06.ipynb709
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_1.ipynb709
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_2.ipynb713
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07.ipynb72
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_1.ipynb72
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_2.ipynb72
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08.ipynb157
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_1.ipynb157
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_2.ipynb167
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb545
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_1.ipynb537
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_2.ipynb540
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10.ipynb59
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_1.ipynb62
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_2.ipynb62
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11.ipynb308
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_1.ipynb307
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_2.ipynb310
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12.ipynb462
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_1.ipynb479
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_2.ipynb479
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13.ipynb223
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_1.ipynb280
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_2.ipynb280
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14.ipynb513
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_1.ipynb505
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_2.ipynb505
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15.ipynb214
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_1.ipynb216
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_2.ipynb216
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16.ipynb284
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_1.ipynb284
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_2.ipynb284
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17.ipynb509
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_1.ipynb504
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_2.ipynb506
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18.ipynb407
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_1.ipynb407
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_2.ipynb407
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19.ipynb340
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_1.ipynb332
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_2.ipynb342
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03.pngbin0 -> 152397 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_1.pngbin0 -> 152397 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_2.pngbin0 -> 152397 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09.pngbin0 -> 155898 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_1.pngbin0 -> 155898 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_2.pngbin0 -> 155898 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18.pngbin0 -> 140916 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_1.pngbin0 -> 140916 bytes
-rwxr-xr-xThermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_2.pngbin0 -> 140916 bytes
-rwxr-xr-xThermodynamics/Chapter10.ipynb763
-rwxr-xr-xThermodynamics/Chapter11.ipynb350
-rwxr-xr-xThermodynamics/Chapter12.ipynb504
-rwxr-xr-xThermodynamics/Chapter13.ipynb541
-rwxr-xr-xThermodynamics/Chapter14.ipynb630
-rwxr-xr-xThermodynamics/Chapter15.ipynb361
-rwxr-xr-xThermodynamics/Chapter2.ipynb112
-rwxr-xr-xThermodynamics/Chapter3.ipynb456
-rwxr-xr-xThermodynamics/Chapter4.ipynb605
-rwxr-xr-xThermodynamics/Chapter5.ipynb1018
-rwxr-xr-xThermodynamics/Chapter6.ipynb1076
-rwxr-xr-xThermodynamics/Chapter7.ipynb932
-rwxr-xr-xThermodynamics/Chapter8.ipynb589
-rwxr-xr-xThermodynamics/Chapter9.ipynb585
-rwxr-xr-xThermodynamics/README.txt18
-rwxr-xr-xThermodynamics/screenshots/figure_1.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_1.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_2.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_3.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_11_4.pngbin0 -> 79888 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_1.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_2.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_3.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_1_4.pngbin0 -> 58029 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_1.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_2.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_3.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics/screenshots/figure_22_4.pngbin0 -> 48166 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter10.ipynb173
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter10_1.ipynb173
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter10_2.ipynb173
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter10_3.ipynb268
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter10_Availbility,exergy_and_irreversibilitiy.ipynb173
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter11.ipynb468
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter11_.ipynb468
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter11__1.ipynb468
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter11__2.ipynb624
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter11_power_and_refrigeration_cycles.ipynb468
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter13-.ipynb217
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter13-_thermodynamic_relations.ipynb217
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter13.ipynb217
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter13_1.ipynb217
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter13_2.ipynb217
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter14.ipynb313
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter14_1.ipynb313
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter14_2.ipynb313
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter14_3.ipynb313
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter14_Equations_of_state_and_generlized_charts.ipynb313
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter15-.ipynb101
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter15-multicomponet_systems.ipynb101
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter15.ipynb101
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter15_1.ipynb101
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter15_2.ipynb101
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter16-.ipynb109
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter16-Equlibrium.ipynb109
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter16.ipynb109
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter16_1.ipynb109
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter16_2.ipynb109
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter17-.ipynb250
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter17-Ideal_solutions.ipynb250
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter17.ipynb250
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter17_1.ipynb250
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter17_2.ipynb312
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter18-.ipynb208
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter18-Non-ideal_solutions.ipynb208
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter18.ipynb208
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter18_1.ipynb208
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter18_2.ipynb208
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter19-Chemical_reactions.ipynb472
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter19.ipynb472
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter19_1.ipynb472
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter19_2.ipynb472
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter19_3.ipynb514
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter5-the_ideal_gas.ipynb166
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter5.ipynb166
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter5_1.ipynb166
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter5_2.ipynb166
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter5_3.ipynb302
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter6-Control_volume.ipynb308
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter6.ipynb308
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter6_1.ipynb308
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter6_2.ipynb308
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter6_3.ipynb308
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter7-Heat_engines_and_the_second_law_of_thermodynamics.ipynb123
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter7.ipynb123
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter7_1.ipynb123
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter7_2.ipynb123
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter7_3.ipynb123
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter8-Entropy.ipynb309
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter8.ipynb309
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter8_1.ipynb309
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter8_2.ipynb309
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter8_3.ipynb354
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter9-Applications_of_the_second_law_of_thermodynamics.ipynb473
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter9.ipynb473
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter9_1.ipynb473
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter9_2.ipynb473
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter9_3.ipynb475
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts_.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__1.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__2.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__3.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_1.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_2.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_2_3.ipynb69
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_1.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_2.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_3.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3_1.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3_2.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_3_3.ipynb220
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_4.ipynb466
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_4_-Simple_systems.ipynb466
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_4_.ipynb466
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_4__1.ipynb466
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/Chapter_4__2.ipynb591
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/README.txt10
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/chapter12.ipynb314
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/chapter12_1.ipynb314
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/chapter12_2.ipynb314
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/chapter12_3.ipynb314
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/chapter12_ideal_gas_mixtures_and_humid_air.ipynb314
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work.pngbin0 -> 135416 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_1.pngbin0 -> 135416 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_2.pngbin0 -> 135416 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_3.pngbin0 -> 135416 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems.pngbin0 -> 139575 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_1.pngbin0 -> 139575 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_2.pngbin0 -> 139575 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_3.pngbin0 -> 139575 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter5_ideal_gas.pngbin0 -> 139122 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems_.pngbin0 -> 139122 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__1.pngbin0 -> 139122 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__2.pngbin0 -> 139122 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/chap13.pngbin0 -> 60034 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/chapter12.pngbin0 -> 49655 bytes
-rwxr-xr-xThermodynamics:_From_concepts_to_applications/screenshots/chapter14.pngbin0 -> 49578 bytes
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter1.ipynb387
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter10.ipynb628
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter11.ipynb353
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter12.ipynb262
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter13.ipynb453
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter14.ipynb393
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter15.ipynb686
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter16.ipynb378
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter17.ipynb812
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter2.ipynb588
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter3.ipynb756
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter4.ipynb720
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter5.ipynb614
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter6.ipynb315
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter7.ipynb1049
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter8.ipynb764
-rwxr-xr-xThermodynamics_An_Engineering_Approach/Chapter9.ipynb540
-rwxr-xr-xThermodynamics_An_Engineering_Approach/README.txt10
-rwxr-xr-xThermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot.pngbin0 -> 45520 bytes
-rwxr-xr-xThermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot_1.pngbin0 -> 45520 bytes
-rwxr-xr-xThermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot.pngbin0 -> 44124 bytes
-rwxr-xr-xThermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot_1.pngbin0 -> 44124 bytes
-rwxr-xr-xThermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot.pngbin0 -> 48121 bytes
-rwxr-xr-xThermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot_1.pngbin0 -> 48121 bytes
-rwxr-xr-xThermodynamics_Demystified/Chapter1.ipynb209
-rwxr-xr-xThermodynamics_Demystified/Chapter2.ipynb322
-rwxr-xr-xThermodynamics_Demystified/Chapter3.ipynb330
-rwxr-xr-xThermodynamics_Demystified/Chapter4.ipynb729
-rwxr-xr-xThermodynamics_Demystified/Chapter5.ipynb594
-rwxr-xr-xThermodynamics_Demystified/Chapter6.ipynb704
-rwxr-xr-xThermodynamics_Demystified/Chapter7.ipynb624
-rwxr-xr-xThermodynamics_Demystified/Chapter8.ipynb530
-rwxr-xr-xThermodynamics_Demystified/Chapter9.ipynb630
-rwxr-xr-xThermodynamics_Demystified/README.txt10
-rwxr-xr-xThermodynamics_Demystified/screenshots/Carnotrefrigerator.pngbin0 -> 50808 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/carnotrefrigerator.pngbin0 -> 28318 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/carnotrefrigerator_1.pngbin0 -> 28318 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/carnotrefrigerator_2.pngbin0 -> 28318 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/internalenergy.pngbin0 -> 95606 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/internalenergy_1.pngbin0 -> 95606 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/internalenergy_2.pngbin0 -> 95606 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/internalenergy_3.pngbin0 -> 95606 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/quasiequilibrium.pngbin0 -> 50808 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/quasiequilibrium_1.pngbin0 -> 50808 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/quasiequilibrium_2.pngbin0 -> 50808 bytes
-rwxr-xr-xThermodynamics_Demystified/screenshots/quasiequilibrium_3.pngbin0 -> 41877 bytes
-rwxr-xr-xThermodynamics_for_Chemists/README.txt10
-rwxr-xr-xThermodynamics_for_Chemists/ch1.ipynb199
-rwxr-xr-xThermodynamics_for_Chemists/ch11.ipynb386
-rwxr-xr-xThermodynamics_for_Chemists/ch12.ipynb181
-rwxr-xr-xThermodynamics_for_Chemists/ch13.ipynb634
-rwxr-xr-xThermodynamics_for_Chemists/ch14.ipynb244
-rwxr-xr-xThermodynamics_for_Chemists/ch15.ipynb270
-rwxr-xr-xThermodynamics_for_Chemists/ch16.ipynb157
-rwxr-xr-xThermodynamics_for_Chemists/ch17.ipynb104
-rwxr-xr-xThermodynamics_for_Chemists/ch18.ipynb326
-rwxr-xr-xThermodynamics_for_Chemists/ch19.ipynb297
-rwxr-xr-xThermodynamics_for_Chemists/ch2.ipynb266
-rwxr-xr-xThermodynamics_for_Chemists/ch3.ipynb110
-rwxr-xr-xThermodynamics_for_Chemists/ch4.ipynb270
-rwxr-xr-xThermodynamics_for_Chemists/ch5.ipynb496
-rwxr-xr-xThermodynamics_for_Chemists/ch6.ipynb398
-rwxr-xr-xThermodynamics_for_Chemists/ch7.ipynb150
-rwxr-xr-xThermodynamics_for_Chemists/ch8.ipynb395
-rwxr-xr-xThermodynamics_for_Chemists/ch9.ipynb188
-rwxr-xr-xThermodynamics_for_Chemists/screenshots/ch19.pngbin0 -> 361953 bytes
-rwxr-xr-xThermodynamics_for_Chemists/screenshots/ch2.pngbin0 -> 350340 bytes
-rwxr-xr-xThermodynamics_for_Chemists/screenshots/ch7.pngbin0 -> 352802 bytes
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_10.ipynb579
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_10_1.ipynb579
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_10_2.ipynb579
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_10_3.ipynb579
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_10_4.ipynb579
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_11.ipynb656
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_11_1.ipynb656
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_11_2.ipynb656
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_11_3.ipynb649
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_11_4.ipynb633
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_12.ipynb585
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_12_1.ipynb585
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_12_2.ipynb585
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_12_3.ipynb585
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_12_4.ipynb585
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_13.ipynb667
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_13_1.ipynb667
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_13_2.ipynb667
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_13_3.ipynb667
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_13_4.ipynb667
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_14.ipynb394
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_14_1.ipynb394
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_14_2.ipynb394
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_14_3.ipynb394
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_14_4.ipynb394
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_15.ipynb158
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_15_1.ipynb158
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_15_2.ipynb158
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_15_3.ipynb158
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_15_4.ipynb158
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_16.ipynb253
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_16_1.ipynb253
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_16_2.ipynb253
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_16_3.ipynb253
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_16_4.ipynb253
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_17.ipynb132
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_17_1.ipynb132
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_17_2.ipynb132
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_17_3.ipynb132
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_17_4.ipynb132
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_18.ipynb343
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_18_1.ipynb343
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_18_2.ipynb343
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_18_3.ipynb343
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_18_4.ipynb343
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_19.ipynb625
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_19_1.ipynb625
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_19_2.ipynb625
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_19_3.ipynb625
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_19_4.ipynb625
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_20.ipynb323
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_20_1.ipynb323
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_20_2.ipynb323
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_20_3.ipynb323
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_20_4.ipynb323
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_21.ipynb438
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_21_1.ipynb438
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_21_2.ipynb438
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_21_3.ipynb438
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_21_4.ipynb438
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_22.ipynb333
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_22_1.ipynb333
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_22_2.ipynb333
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_22_3.ipynb333
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_22_4.ipynb333
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_23.ipynb372
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_23_1.ipynb372
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_23_2.ipynb372
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_23_3.ipynb372
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_23_4.ipynb372
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_5.ipynb199
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_5_1.ipynb199
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_5_2.ipynb199
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_5_3.ipynb199
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_5_4.ipynb199
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_7.ipynb67
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_7_1.ipynb67
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_7_2.ipynb67
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_7_3.ipynb67
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_7_4.ipynb67
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_8.ipynb126
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_8_1.ipynb126
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_8_2.ipynb126
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_8_3.ipynb126
-rwxr-xr-xThermodynamics_for_Engineers/Chapter_8_4.ipynb126
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap10.pngbin0 -> 61482 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap10_1.pngbin0 -> 61482 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap10_2.pngbin0 -> 61482 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap10_3.pngbin0 -> 61482 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap10_4.pngbin0 -> 61482 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap11.pngbin0 -> 52058 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap11_1.pngbin0 -> 52058 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap11_2.pngbin0 -> 52058 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap11_3.pngbin0 -> 52058 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap11_4.pngbin0 -> 52058 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap12.pngbin0 -> 53412 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap12_1.pngbin0 -> 53412 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap12_2.pngbin0 -> 53412 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap12_3.pngbin0 -> 53412 bytes
-rwxr-xr-xThermodynamics_for_Engineers/screenshots/chap12_4.pngbin0 -> 53412 bytes
-rwxr-xr-x_Power_Electronics/Chapter10.ipynb228
-rwxr-xr-x_Power_Electronics/Chapter10_1.ipynb228
-rwxr-xr-x_Power_Electronics/Chapter10_2.ipynb228
-rwxr-xr-x_Power_Electronics/Chapter10_3.ipynb228
-rwxr-xr-x_Power_Electronics/Chapter10_4.ipynb228
-rwxr-xr-x_Power_Electronics/Chapter11.ipynb299
-rwxr-xr-x_Power_Electronics/Chapter11_1.ipynb299
-rwxr-xr-x_Power_Electronics/Chapter11_2.ipynb299
-rwxr-xr-x_Power_Electronics/Chapter11_3.ipynb299
-rwxr-xr-x_Power_Electronics/Chapter11_4.ipynb299
-rwxr-xr-x_Power_Electronics/Chapter12.ipynb1997
-rwxr-xr-x_Power_Electronics/Chapter12_1.ipynb1997
-rwxr-xr-x_Power_Electronics/Chapter12_2.ipynb1997
-rwxr-xr-x_Power_Electronics/Chapter12_3.ipynb1997
-rwxr-xr-x_Power_Electronics/Chapter12_4.ipynb1997
-rwxr-xr-x_Power_Electronics/Chapter13.ipynb342
-rwxr-xr-x_Power_Electronics/Chapter13_1.ipynb342
-rwxr-xr-x_Power_Electronics/Chapter13_2.ipynb342
-rwxr-xr-x_Power_Electronics/Chapter13_3.ipynb342
-rwxr-xr-x_Power_Electronics/Chapter13_4.ipynb342
-rwxr-xr-x_Power_Electronics/Chapter14.ipynb93
-rwxr-xr-x_Power_Electronics/Chapter14_1.ipynb93
-rwxr-xr-x_Power_Electronics/Chapter14_2.ipynb93
-rwxr-xr-x_Power_Electronics/Chapter14_3.ipynb93
-rwxr-xr-x_Power_Electronics/Chapter14_4.ipynb93
-rwxr-xr-x_Power_Electronics/Chapter2.ipynb233
-rwxr-xr-x_Power_Electronics/Chapter2_1.ipynb233
-rwxr-xr-x_Power_Electronics/Chapter2_2.ipynb233
-rwxr-xr-x_Power_Electronics/Chapter2_3.ipynb233
-rwxr-xr-x_Power_Electronics/Chapter2_4.ipynb233
-rwxr-xr-x_Power_Electronics/Chapter3.ipynb1001
-rwxr-xr-x_Power_Electronics/Chapter3_1.ipynb1001
-rwxr-xr-x_Power_Electronics/Chapter3_2.ipynb1001
-rwxr-xr-x_Power_Electronics/Chapter3_3.ipynb1001
-rwxr-xr-x_Power_Electronics/Chapter3_4.ipynb1001
-rwxr-xr-x_Power_Electronics/Chapter4.ipynb946
-rwxr-xr-x_Power_Electronics/Chapter4_1.ipynb946
-rwxr-xr-x_Power_Electronics/Chapter4_2.ipynb946
-rwxr-xr-x_Power_Electronics/Chapter4_3.ipynb946
-rwxr-xr-x_Power_Electronics/Chapter4_4.ipynb946
-rwxr-xr-x_Power_Electronics/Chapter5.ipynb511
-rwxr-xr-x_Power_Electronics/Chapter5_1.ipynb511
-rwxr-xr-x_Power_Electronics/Chapter5_2.ipynb511
-rwxr-xr-x_Power_Electronics/Chapter5_3.ipynb511
-rwxr-xr-x_Power_Electronics/Chapter5_4.ipynb511
-rwxr-xr-x_Power_Electronics/Chapter6.ipynb1761
-rwxr-xr-x_Power_Electronics/Chapter6_1.ipynb1761
-rwxr-xr-x_Power_Electronics/Chapter6_2.ipynb1761
-rwxr-xr-x_Power_Electronics/Chapter6_3.ipynb1761
-rwxr-xr-x_Power_Electronics/Chapter6_4.ipynb1761
-rwxr-xr-x_Power_Electronics/Chapter7.ipynb1036
-rwxr-xr-x_Power_Electronics/Chapter7_1.ipynb1036
-rwxr-xr-x_Power_Electronics/Chapter7_2.ipynb1036
-rwxr-xr-x_Power_Electronics/Chapter7_3.ipynb1036
-rwxr-xr-x_Power_Electronics/Chapter7_4.ipynb1036
-rwxr-xr-x_Power_Electronics/Chapter8.ipynb984
-rwxr-xr-x_Power_Electronics/Chapter8_1.ipynb984
-rwxr-xr-x_Power_Electronics/Chapter8_2.ipynb984
-rwxr-xr-x_Power_Electronics/Chapter8_3.ipynb984
-rwxr-xr-x_Power_Electronics/Chapter8_4.ipynb984
-rwxr-xr-x_Power_Electronics/Chapter9.ipynb388
-rwxr-xr-x_Power_Electronics/Chapter9_1.ipynb388
-rwxr-xr-x_Power_Electronics/Chapter9_2.ipynb388
-rwxr-xr-x_Power_Electronics/Chapter9_3.ipynb388
-rwxr-xr-x_Power_Electronics/Chapter9_4.ipynb388
-rwxr-xr-x_Power_Electronics/screenshots/Chapter2.pngbin0 -> 226408 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter2_1.pngbin0 -> 226408 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter2_2.pngbin0 -> 226408 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter2_3.pngbin0 -> 226408 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter2_4.pngbin0 -> 226408 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter3.pngbin0 -> 230367 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter3_1.pngbin0 -> 230367 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter3_2.pngbin0 -> 230367 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter3_3.pngbin0 -> 230367 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter3_4.pngbin0 -> 230367 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter4.pngbin0 -> 222170 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter4_1.pngbin0 -> 222170 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter4_2.pngbin0 -> 222170 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter4_3.pngbin0 -> 222170 bytes
-rwxr-xr-x_Power_Electronics/screenshots/Chapter4_4.pngbin0 -> 222170 bytes
-rwxr-xr-xmechanics_of_fluid/Chapter1-.ipynb151
-rwxr-xr-xmechanics_of_fluid/Chapter1-_1.ipynb151
-rwxr-xr-xmechanics_of_fluid/Chapter10.ipynb355
-rwxr-xr-xmechanics_of_fluid/Chapter10_1.ipynb355
-rwxr-xr-xmechanics_of_fluid/Chapter11.ipynb433
-rwxr-xr-xmechanics_of_fluid/Chapter11_1.ipynb433
-rwxr-xr-xmechanics_of_fluid/Chapter12-.ipynb141
-rwxr-xr-xmechanics_of_fluid/Chapter12-_1.ipynb141
-rwxr-xr-xmechanics_of_fluid/Chapter13.ipynb166
-rwxr-xr-xmechanics_of_fluid/Chapter13_1.ipynb166
-rwxr-xr-xmechanics_of_fluid/Chapter2-.ipynb326
-rwxr-xr-xmechanics_of_fluid/Chapter2-_1.ipynb326
-rwxr-xr-xmechanics_of_fluid/Chapter3-.ipynb268
-rwxr-xr-xmechanics_of_fluid/Chapter3-_1.ipynb268
-rwxr-xr-xmechanics_of_fluid/Chapter4-.ipynb170
-rwxr-xr-xmechanics_of_fluid/Chapter4-_1.ipynb170
-rwxr-xr-xmechanics_of_fluid/Chapter5-.ipynb119
-rwxr-xr-xmechanics_of_fluid/Chapter5-_1.ipynb119
-rwxr-xr-xmechanics_of_fluid/Chapter6-.ipynb342
-rwxr-xr-xmechanics_of_fluid/Chapter6-_1.ipynb342
-rwxr-xr-xmechanics_of_fluid/Chapter7-.ipynb295
-rwxr-xr-xmechanics_of_fluid/Chapter7-_1.ipynb295
-rwxr-xr-xmechanics_of_fluid/Chapter8-.ipynb350
-rwxr-xr-xmechanics_of_fluid/Chapter8-_1.ipynb350
-rwxr-xr-xmechanics_of_fluid/Chapter9-.ipynb273
-rwxr-xr-xmechanics_of_fluid/Chapter9-_1.ipynb273
-rwxr-xr-xmechanics_of_fluid/README.txt10
-rwxr-xr-xmechanics_of_fluid/screenshots/Chapter3_fluid.pngbin0 -> 131119 bytes
-rwxr-xr-xmechanics_of_fluid/screenshots/Chapter3_fluid_1.pngbin0 -> 131119 bytes
-rwxr-xr-xmechanics_of_fluid/screenshots/Chapter4_fluid.pngbin0 -> 134925 bytes
-rwxr-xr-xmechanics_of_fluid/screenshots/Chapter4_fluid_1.pngbin0 -> 134925 bytes
-rwxr-xr-xmechanics_of_fluid/screenshots/Chapter5_fluid.pngbin0 -> 137139 bytes
-rwxr-xr-xmechanics_of_fluid/screenshots/Chapter5_fluid_1.pngbin0 -> 137139 bytes
-rwxr-xr-xsample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance.ipynb2636
-rwxr-xr-xsample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance_(1).ipynb2636
-rwxr-xr-xsample_notebooks/AbhishekGupta/Chapter02.ipynb328
-rwxr-xr-xsample_notebooks/AjayTheetla/Chapter_1.ipynb208
-rwxr-xr-xsample_notebooks/AjayTheetla/Chapter_1_1.ipynb208
-rwxr-xr-xsample_notebooks/AkshayPatil/chapter1.ipynb190
-rwxr-xr-xsample_notebooks/AkshayPatil/chapter1_1.ipynb190
-rwxr-xr-xsample_notebooks/Aman KumarJain/Chapter_6_Objects_and_Classes.ipynb934
-rwxr-xr-xsample_notebooks/ApurvaBhushan/Chapter_3.ipynb195
-rwxr-xr-xsample_notebooks/ArchanaDharmasagar Kalidas/chapter3.ipynb560
-rwxr-xr-xsample_notebooks/AvinashReddy/Chapter6.ipynb424
-rwxr-xr-xsample_notebooks/AvinashReddy/Chapter6_1.ipynb424
-rwxr-xr-xsample_notebooks/Ershad AhamedChemmalasseri/chapter1.ipynb556
-rwxr-xr-xsample_notebooks/Ershad AhamedChemmalasseri/chapter1_1.ipynb556
-rwxr-xr-xsample_notebooks/ManikandanD/Chapter1.ipynb248
-rwxr-xr-xsample_notebooks/ManikandanD/chapter_1_.ipynb256
-rwxr-xr-xsample_notebooks/MayankSahu/Chapter1_.ipynb1
-rwxr-xr-xsample_notebooks/MayankSahu/Chapter5_.ipynb1
-rwxr-xr-xsample_notebooks/MayankSahu/Chapter5__1.ipynb1
-rwxr-xr-xsample_notebooks/MohdAsif/Chapter2,_Measurement_Errors.ipynb257
-rwxr-xr-xsample_notebooks/MohdAsif/Chapter4.ipynb216
-rwxr-xr-xsample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI.ipynb462
-rwxr-xr-xsample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_1.ipynb462
-rwxr-xr-xsample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_2.ipynb462
-rwxr-xr-xsample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_3.ipynb462
-rwxr-xr-xsample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_4.ipynb462
-rwxr-xr-xsample_notebooks/NirenNegandhi/ch2.ipynb507
-rwxr-xr-xsample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types.ipynb809
-rwxr-xr-xsample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types_1.ipynb809
-rwxr-xr-xsample_notebooks/SINDHUARROJU/Chapter1.ipynb463
-rwxr-xr-xsample_notebooks/SantoshPawar/Chapter9.ipynb569
-rwxr-xr-xsample_notebooks/Sashankkonete/Chapter1.ipynb458
-rwxr-xr-xsample_notebooks/SauravSuman/Chapter_1.ipynb162
-rwxr-xr-xsample_notebooks/ShriniwasSabban/Chapter2.ipynb233
-rwxr-xr-xsample_notebooks/ShriniwasSabban/Chapter2_1.ipynb233
-rwxr-xr-xsample_notebooks/ShubhamRungta/Chapter2.ipynb228
-rwxr-xr-xsample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up.ipynb1779
-rwxr-xr-xsample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up_1.ipynb1779
-rwxr-xr-xsample_notebooks/Tarun KumarDas/Chapter9.ipynb227
-rwxr-xr-xsample_notebooks/VikasPrasad/chapter1.ipynb166
-rwxr-xr-xsample_notebooks/VikasPrasad/chapter1_1.ipynb166
-rwxr-xr-xsample_notebooks/YogeshPatil/Chapter_11.ipynb494
-rwxr-xr-xsample_notebooks/YogeshPatil/Chapter_2.ipynb229
-rwxr-xr-xsample_notebooks/YogeshPatil/Chapter_2_1.ipynb229
-rwxr-xr-xsample_notebooks/YogeshPatil/Chapter_2_2.ipynb229
-rwxr-xr-xsample_notebooks/YogeshPatil/Chapter_2_3.ipynb229
-rwxr-xr-xsample_notebooks/ajinkyakhair/Untitled3.ipynb105
-rwxr-xr-xsample_notebooks/ajinkyakhair/Untitled3_1.ipynb105
-rwxr-xr-xsample_notebooks/harishsahu/Chapter1.ipynb134
-rwxr-xr-xsample_notebooks/harishsahu/Chapter1_1.ipynb134
-rwxr-xr-xsample_notebooks/harishsahu/Chapter1_2.ipynb134
1720 files changed, 607999 insertions, 15193 deletions
diff --git a/Advance_Semiconductor_Devices/ChapterNo1.ipynb b/Advance_Semiconductor_Devices/ChapterNo1.ipynb
new file mode 100755
index 00000000..4d1dc38d
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo1.ipynb
@@ -0,0 +1,800 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chapter No 1 : Semiconductor Materials and\n",
+ "Their Properties<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Page No 37 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Finding Density of silicon crystal\n",
+ "\n",
+ "#initialisation of variables\n",
+ "a=5.3 #in \u00c5\n",
+ "a=a*10**-10 #in m\n",
+ "N_A=6.023*10**23 \n",
+ "At_Si=28 #atomic weight of Si\n",
+ "n = 4\n",
+ "m=At_Si/N_A #in gm\n",
+ "m= m*10**-3 #in kg\n",
+ "V=a**3 #in m^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Rho=((m*n)/V)/1000 #in kg/m^3\n",
+ "\n",
+ "# Note: There is calculation error to find the value of density. So the answer in the book is wrong.#RESULTS\n",
+ "#RESULTS\n",
+ "print('Density of silicon crystal in kg/m^3 is = %.2f kg/m^3' %Rho)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density of silicon crystal in kg/m^3 is = 1.25 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page No 37 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Finding Density of the crystal \n",
+ "\n",
+ "#initialisation of variables\n",
+ "n = 4\n",
+ "r = 1.278 #in \u00c5\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "a = (4*r)/(math.sqrt(2)) #in\u00c5\n",
+ "a = a * 10**-10 #in m\n",
+ "V = (a)**3 #in m^3\n",
+ "At_W = 63.5 #atomic weight\n",
+ "N_A = 6.023*10**23\n",
+ "m = At_W /N_A #in gm\n",
+ "m = m*10**-3 #in kg\n",
+ "Rho = ((m*n)/V)/1000 #in kg/m^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Density of the crystal in kg/m^3 is =%.2f kg/m^3' %Rho)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density of the crystal in kg/m^3 is =8.93 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 Page No 43 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Finding Wavaelength of X ray\n",
+ "\n",
+ "import math\n",
+ "from numpy import *\n",
+ "#initialisation of variables\n",
+ "d=2.82 #in \u00c5\n",
+ "d=d*10**-10 #in m\n",
+ "n=1\n",
+ "theta1=10 #n degree\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "lembda=2*d*math.sin(math.radians(theta1)) #in m\n",
+ "lembda=lembda*10**10 #in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Wavaelength of X ray is =%.2f \u00c5 degrees' %lembda)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavaelength of X ray is =0.98 \u00c5 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page No 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Finding The spacing of atomic layer\n",
+ "\n",
+ "import math\n",
+ "#initialisation of variables\n",
+ "lembda = 1.6 #in \u00c5\n",
+ "theta = 14.2 #in degree\n",
+ "n = 1\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d = (n*lembda)/(2*math.sin(math.radians(theta))) #in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The spacing of atomic layer in crystal is =%.2f in \u00c5 degrees' %d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The spacing of atomic layer in crystal is =3.26 in \u00c5 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 Page No 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding The interplanner spacing\n",
+ "\n",
+ "import math\n",
+ "#initialisation of variables\n",
+ "n = 1\n",
+ "theta1 = 30 #in degree\n",
+ "lembda = 1.78 #in \u00c5\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d = (n*lembda)/(2*math.sin(math.radians(theta1))) #in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The interplanner spacing is =%.2f in \u00c5 degrees' %d)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The interplanner spacing is =1.78 in \u00c5 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8 Page No 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding Interplaner spacing of the crystal\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "lembda = 0.58 #in \u00c5\n",
+ "n = 1;\n",
+ "theta1 = 6.45 # in degree\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d = (n*lembda)/(2*math.sin(math.radians(theta1))) #in \u00c5 \n",
+ "print('Part (i) : At angle of 6.45\u00b0, Interplaner spacing of the crystal is =%.2f \u00c5' %d)\n",
+ "theta2 = 9.15 #in degree\n",
+ "d1 = (n*lembda)/(2*math.sin(math.radians(theta2))) #in \u00c5 \n",
+ "print('Part (ii) : At angle of 9.15\u00b0, Interplaner spacing of the crystal is =%.2f \u00c5' %d1)\n",
+ "theta3 = 13 #in degree\n",
+ "n2 = 1\n",
+ "d2 = (n2*lembda)/(2*math.sin(math.radians(theta3))) #in \u00c5\n",
+ "print('Part (iii) : At angle of 13\u00b0, Interplaner spacing of the crystal is =%.2f \u00c5' %d2)\n",
+ "n=2\n",
+ "d2 = (n*lembda)/(2*math.sin(math.radians(theta3))) #in \u00c5 \n",
+ "\n",
+ "#RESULTS\n",
+ "print('Part (iv) : : The interplaner spacing is : =%.4f \u00c5' %d2)\n",
+ "print('The interplaner spacing for some other set of reflecting is : =%.2f \u00c5' %d1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i) : At angle of 6.45\u00b0, Interplaner spacing of the crystal is =2.58 \u00c5\n",
+ "Part (ii) : At angle of 9.15\u00b0, Interplaner spacing of the crystal is =1.82 \u00c5\n",
+ "Part (iii) : At angle of 13\u00b0, Interplaner spacing of the crystal is =1.29 \u00c5\n",
+ "Part (iv) : : The interplaner spacing is : =2.5783 \u00c5\n",
+ "The interplaner spacing for some other set of reflecting is : =1.82 \u00c5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9, Page No 44 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding The glancing angle for a cubic in degree\n",
+ "\n",
+ "import math\n",
+ "from sympy.mpmath import *\n",
+ "import cmath\n",
+ "\n",
+ "#initialisation of variables\n",
+ "a = 2.814 #in \u00c5\n",
+ "l = 0\n",
+ "h = l\n",
+ "k = 0\n",
+ "d=a #in \u00c5\n",
+ "n = 2\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "lembda=0.710 #in \u00c5\n",
+ "theta = math.degrees(math.asin(n*lembda/(2*d)))\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The glancing angle for a cubic in degree is : =%.2f \u00c5 degrees' %theta)\n",
+ "print('Anwser is in points i.e = 14 36\"40\"..')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The glancing angle for a cubic in degree is : =14.61 \u00c5 degrees\n",
+ "Anwser is in points i.e = 14 36\"40\"..\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10 Page No 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding Wavelength of X ray\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "a = 3.65 #in \u00c5\n",
+ "a = 3.65*10**-10 #in m\n",
+ "h = 1\n",
+ "k = 0\n",
+ "l = 0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d= a/(math.sqrt(h**2+k**2+l**2)) #in m\n",
+ "n = 1\n",
+ "theta=60 #in degree\n",
+ "lembda = 2*d*math.sin(math.radians(theta)) #in m\n",
+ "lembda = lembda * 10**10 #in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Wavelength of X ray is : =%.2f \u00c5' %lembda)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength of X ray is : =6.32 \u00c5\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.11 Page No 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding The glancing angle in degree\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "lembda = 1.54 #in \u00c5\n",
+ "density = 9.024 #in gm/cc\n",
+ "n = 1\n",
+ "MI = 100\n",
+ "At_W = 63.54 #atomic weight\n",
+ "N_A = 6.023*10**23 \n",
+ "m = At_W/N_A #in gm\n",
+ "a =(density*m)**(1.0/3) #in cm\n",
+ "h = 1\n",
+ "k = 0\n",
+ "l = 0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d= a/(math.sqrt(h**2+k**2+l**2))\n",
+ "theta =math.degrees((lembda*10**-8)/(2*d)) #in degree\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The glancing angle is = %.2f degrees' %theta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The glancing angle is = 4.48 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.12 Page No 45 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding To get the 2nd order spectrum the position of the detector in degree\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "a = 3.615 #in \u00c5\n",
+ "theta=22 #in degree\n",
+ "n=1\n",
+ "h=1\n",
+ "k=h\n",
+ "l=k\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d = a/(math.sqrt( ((h)**2) + ((k)**2) + ((l)**2) )) #in \u00c5\n",
+ "lembda = 2*d*math.sin(math.radians(theta)) #in \u00c5\n",
+ "print('The wavelength of X ray is = %.2f \u00c5 ' %lembda)\n",
+ "theta2 =math.degrees(math.asin(lembda/d)) #in degree\n",
+ " #in degree\n",
+ "\n",
+ "#RESULTS\n",
+ "print('To get the 2nd order spectrum the position of the detector is = %.2f degrees ' %theta2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of X ray is = 1.56 \u00c5 \n",
+ "To get the 2nd order spectrum the position of the detector is = 48.52 degrees \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.13, Page No 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "n = 1\n",
+ "lembda = 1.54 # in \u00c5\n",
+ "theta = 21.7 # in degree\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d = lembda/(2*math.sin(math.radians(theta))) # in \u00c5\n",
+ "h = 1\n",
+ "k = h\n",
+ "l = k\n",
+ "a = d*math.sqrt(h**2+k**2+l**2) # in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Lattice constant is = %.2f in \u00c5 ' %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Lattice constant is = 3.61 in \u00c5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.14, Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "h = 2\n",
+ "k = 1\n",
+ "l = 1\n",
+ "a = 4.8 # in \u00c5\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "d_211 = a/(math.sqrt(h**2+k**2+l**2)) #in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The distance between planes is =%.2f \u00c5 ' %d_211)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance between planes is =1.96 \u00c5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.15, Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "r = 1.28 # in \u00c5\n",
+ "n = 4\n",
+ "M = 63.5\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "a = (4*r)/(math.sqrt(2)) #in \u00c5\n",
+ "a = a * 10**-8 # in cm\n",
+ "N_A = 6.023*10**23 \n",
+ "Rho = (n*M)/( N_A*((a)**3) ) # in gm/cc\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Density is =%.2f gm/cc ' %Rho)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density is =8.89 gm/cc \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.16, Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "M = 55.85\n",
+ "a = 2.9 # in \u00c5\n",
+ "Rho = 7.87 #in gm/cc\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "a = a * 10**-8 # in cm\n",
+ "N_A = 6.023*10**23\n",
+ "n = (Rho*N_A*((a)**3))/M # atom per unit\n",
+ "\n",
+ "#RESULTS\n",
+ "print('A lattice having =%.2f atom per unit cell is a BCC structure ' %n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A lattice having =2.07 atom per unit cell is a BCC structure \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.17, Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "M = 60.0 # in gm/mole\n",
+ "Rho = 6.23 # in gm/cc\n",
+ "n = 4\n",
+ "N_A = 6.023*10**23 \n",
+ "\n",
+ "#CALCULATIONS\n",
+ "a = ((n*M)/(N_A * Rho))**(1.0/3) # in cm\n",
+ "r = (a*math.sqrt(2))/n #radius of atom in cm\n",
+ "r = r * 10**8 # in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Radius of atom is =%.2f \u00c5 ' %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of atom is =1.41 \u00c5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.18, Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rho = 5.96 # in gm/cc\n",
+ "M = 50.0\n",
+ "n = 2\n",
+ "N_A = 6.023*10**23 \n",
+ "\n",
+ "#CALCULATIONS\n",
+ "a =((n*M)/(Rho*N_A))**(1.0/3) # in cm\n",
+ "r = (a*math.sqrt(3))/4 # in cm\n",
+ "P_f = (2*(4.0/3)*math.pi*((r)**3))/((a)**3) # packing factor\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Packing factor is =%.2f ' %P_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Packing factor is =0.68 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.19, Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "M = 120.0\n",
+ "n = 2.0\n",
+ "N_A = 6.023*10**23\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "m1 = M/N_A #mass of 1 atom in gm\n",
+ "m2 = n*m1 #mass of unit cell in gm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Number of unit cell in 20 gms of element is : =%.2f X 10^22 unit cells ' %((20/m2)/(10**22)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of unit cell in 20 gms of element is : =5.02 X 10^22 unit cells \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.20, Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rho = 2.48 # in gm/c.c\n",
+ "n = 4.0 \n",
+ "M = 58\n",
+ "N_A = 6.023*10**23\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "a = ( (n*M)/(Rho*N_A) )**(1.0/3) # in cm\n",
+ "a = a * 10**8 # in \u00c5\n",
+ "r = (a*math.sqrt(2))/n # in \u00c5\n",
+ "r = 2*r # in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The center to center distance between ions is =%.2f \u00c5' %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The center to center distance between ions is =3.80 \u00c5\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo2.ipynb b/Advance_Semiconductor_Devices/ChapterNo2.ipynb
new file mode 100755
index 00000000..9bc8cffb
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo2.ipynb
@@ -0,0 +1,1248 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chapter No 2 : Semiconductor Materials and\n",
+ "Their Properties<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 65 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "lambda1 = 11000.0 #in \u00c5\n",
+ "lambda1 = lambda1 * 10**-10 \n",
+ "h = 6.625*10**-34 \n",
+ "c = 3*10**8\n",
+ "q = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "E_g = h*c/lambda1 #in J\n",
+ "E_g= E_g/q #in eV\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The energy gap in Si is = %.2f eV' %E_g)\n",
+ "\n",
+ "#Note: The answer in the book is not correct \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy gap in Si is = 1.13 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 65 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "E_g = 0.75 #in eV\n",
+ "q=1.6*10**-19 #in C\n",
+ "E_g = E_g*q #in J\n",
+ "h = 6.63*10**-34 #in J\n",
+ "c = 3*10**8 #in m/s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "lembda = (h*c)/E_g #in m\n",
+ "lembda = lembda * 10**10 #in \u00c5\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The wavelength is =%.f \u00c5 ' %lembda)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength is =16575 \u00c5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 81 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from numpy import *\n",
+ "\n",
+ "#initialisation of variables\n",
+ "del_E = 0.3 #value of E_C-E_F in eV\n",
+ "T1 = 330.0 #in K\n",
+ "T = 300 #in K\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "del_E1 = del_E*(T1/T) #value of E_C-E_F in eV\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The position of fermi level is =%.2f eV' %del_E1)\n",
+ "print('Hence the Fermi level will be %.2f eV below the conduction band' %del_E1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The position of fermi level is =0.33 eV\n",
+ "Hence the Fermi level will be 0.33 eV below the conduction band\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "K = 8.63*10**-5\n",
+ "T = 300.0 #in K\n",
+ "N_C = 2.8*10**19 #in cm^-3\n",
+ "del_E = 0.25\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "f_F = math.exp( (-del_E)/(K*T) )\n",
+ "n_o = N_C*math.exp( (-del_E)/(K*T) ) #in cm^-3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The probability is =%.6f ' %f_F)\n",
+ "print('The thermal equillibrium electron concentration is =%.2f X 10^15 cm^-3' %(n_o/(10**15)))\n",
+ "print('Approximation error ')\n",
+ "# The answer is same as in book only thy have rounded off to 1.8 * 10^15 which is same as above"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The probability is =0.000064 \n",
+ "The thermal equillibrium electron concentration is =1.79 X 10^15 cm^-3\n",
+ "Approximation error \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N_V = 1.04*10**19 #in cm^-3\n",
+ "T1 = 400.0 #in K\n",
+ "T2 = 300.0 #in K\n",
+ "del_E = 0.27 #value of E_F-E_V in eV\n",
+ "K = 0.0259\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N_V= N_V*(T1/T2)**(3/2) #in cm^-3\n",
+ "KT = K*(T1/T2) #in eV\n",
+ "p_o = N_V*math.exp( (-del_E)/(KT) ) #in /cm^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The hole concentration is =%.2f x 10^15 per cm^3' %(p_o/(10**15)))\n",
+ "print('Approximationa error ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hole concentration is =5.58 x 10^15 per cm^3\n",
+ "Approximationa error \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N = 6.02*10**23\n",
+ "A = 63.5 #atomic weight\n",
+ "Rho = 1.7*10**-6 #in ohm cm\n",
+ "d = 8.96 # in gm/cc\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = (N/A)*d #in /cc\n",
+ "e = 1.6*10**-19 #in C\n",
+ "Miu_e = 1/(Rho*n*e) #in cm^2/volt-sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The mobility of electron is =%.2f cm^2/volt.sec' %Miu_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of electron is =43.28 cm^2/volt.sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7, Page No 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from sympy.mpmath import *\n",
+ "import cmath\n",
+ "\n",
+ "\n",
+ "#initialisation of variables\n",
+ "d = 8.96 #in gm/cc\n",
+ "At = 63.5 #atomic weight\n",
+ "N_A = 6.02*10**23 #in /gm mole\n",
+ "l = 0.1 #in m\n",
+ "e = 1.6*10**-19 #in C\n",
+ "A = 1.7*10**-6 #in m^2\n",
+ "R = 0.1 #in ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = (N_A/At)*d #in /cc\n",
+ "n = n * 10**6 #in /m^3\n",
+ "Rho = (R*A)/l #in ohm.m\n",
+ "Sigma = 1/Rho #in mho/m\n",
+ "Miu_e = Sigma/(n*e) #in m^2/V-sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The electron mobility is =%.3f X 10^-3 m^2/V-sec ' %(Miu_e*(10**3)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electron mobility is =0.043 X 10^-3 m^2/V-sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "N_A = 6.025*10**23 #in /gm mole\n",
+ "d = 10.5 #in gm/cc\n",
+ "At = 108.0 #atomic weight of \n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = (N_A/At)*d #in /cm^3\n",
+ "n = n * 10**6 #in /m^3\n",
+ "r = 10**-3 #in m\n",
+ "A = math.pi * ((r)**2) #in m^2\n",
+ "q = 1.6*10**-19 \n",
+ "I = 2 #in A\n",
+ "V = I/(n*q*A) #in m/s\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The drift velocity of an electron is =%.f X 10^-4 m/s' %(V*(10**5)))\n",
+ "print('Approximationa error ')\n",
+ "# answer is same as in book only they have rounded of 0.000068 to 7 * 10^-4"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The drift velocity of an electron is =7 X 10^-4 m/s\n",
+ "Approximationa error \n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9 Page No 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "e= 1.6*10**-19 #in C\n",
+ "d= 1.03 #in mm\n",
+ "d= d*10**-3 #in m\n",
+ "R= 6.51 #in ohm\n",
+ "l= 300.0 #in m\n",
+ "n= 8.4*10**28 #per m^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r= d/2 #in m (radius)\n",
+ "A= math.pi*r**2 #in m^2\n",
+ "rho= R*A/l #in ohm meter\n",
+ "sigma= 1/rho #in mho/m\n",
+ "miu_e= sigma/(n*e) #m^2/V-sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The coductivity of copper is =%.2f mho/m' %sigma)\n",
+ "print('The mobility of charge carriers is : =%.6f m^2/V-sec' %miu_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The coductivity of copper is =55306469.41 mho/m\n",
+ "The mobility of charge carriers is : =0.004115 m^2/V-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9.ii Page No 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Miu_e = 1500.0 #in cm^2/volt.sec\n",
+ "Miu_h = 500.0 #in cm^2/volt.sec\n",
+ "n_i = 1.6*10**10 #in /cm^3\n",
+ "e = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma_i = n_i*(Miu_e+Miu_h)*e #in mho/cm\n",
+ "Sigma = Sigma_i #in mho/cm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The conductivity of pure silicon is =%.7f mho/cm' %Sigma)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of pure silicon is =0.0000051 mho/cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 2.10 Page No 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Miu_e = 1500.0 #in cm^2/volt.sec\n",
+ "Miu_h = 500.0 #in cm^2/volt.sec\n",
+ "n_i = 1.6*10**10 #in /cm^3\n",
+ "e = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma_i = n_i*(Miu_e+Miu_h)*e #in mho/cm\n",
+ "Sigma = Sigma_i #in mho/cm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The conductivity of pure silicon is =%.2f X 10^-6 mho/cm' %(Sigma*(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of pure silicon is =5.12 X 10^-6 mho/cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 2.11 Page No 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Miu_d = 500.0 #in cm^2/V.S\n",
+ "Rho = 10 #in ohm cm \n",
+ "\n",
+ "#CALCULATIONS\n",
+ "e = 1.6*10**-19 #in C\n",
+ "n_d = 1/(Rho*e*Miu_d) #in /cm^3... correction\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The number of donor is =%.2f X 10^15 atom per cm^3' %(n_d/(10**15)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of donor is =1.25 X 10^15 atom per cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 2.12 Page No 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "d = 5.32 #in gm/cc\n",
+ "N_A = 6.02*10**23 #in atoms/gm.mole\n",
+ "At = 72.6 #atomic weight\n",
+ "Miu = 3800 #in cm^2/v.s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n_d = (N_A/At) * d #in /cm^3\n",
+ "n_d = n_d * 10**-8 #in /cc\n",
+ "e = 1.6*10**-19 #in C\n",
+ "Sigma = n_d * Miu * e #in mho/cm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The conductivity of specimen is =%.2f mho/cm' %Sigma)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of specimen is =0.27 mho/cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 2.13 Page No 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Rho = 0.3623*10**-3 #in ohm m\n",
+ "d = 4.42*10**28 #Ge density in atoms/m^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma = 1/Rho #in mho/m\n",
+ "n_d = d*10**-6 #in atoms/m^3\n",
+ "e = 1.6*10**-19 #in C\n",
+ "Miu = Sigma/(n_d*e) #in m^2/V.sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The electron mobility is =%.2f m^2/V-sec' %Miu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electron mobility is =0.39 m^2/V-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 2.14 Page No 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "N_A = 6.025*10**26 #in /kg.Mole\n",
+ "At = 72.59 #atomic weight\n",
+ "d = 5.36*10**3 #in kg/m^3\n",
+ "R = 0.42 #in ohm m\n",
+ "B_i = 10**-6 #rate of boron impurity in %\n",
+ "e = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = (N_A/At)*d #number of Ge atoms\n",
+ "h = n/10**8 #holes per unit volume\n",
+ "Miu_h = 1/(R*h*e) #in m^2/V.sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The Mobility of holes is =%.2f m^2/V-sec' %Miu_h)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Mobility of holes is =0.03 m^2/V-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.15 Page No 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "n_i = 2*10**19 #in /m^3\n",
+ "Miu_e = 0.36 #in m^2/v.s\n",
+ "Miu_h = 0.17 #in m^2/v.s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "A = 1*10**-4 #in m^2\n",
+ "V = 2 #in Volts\n",
+ "l = 0.3 #in mm\n",
+ "l = l * 10**-3 #in m\n",
+ "e = 1.6*10**-19 #in C\n",
+ "Sigma_i = n_i * e * (Miu_e+Miu_h) #in mho/m\n",
+ "I = (Sigma_i * V*A)/l #in amp \n",
+ "\n",
+ "#RESULTS\n",
+ "print('The current in amp is =%.2f ' %I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current in amp is =1.13 \n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.16 Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "d = 4.2*10**28 #in atoms/m^3\n",
+ "n_d = d/10**6 #in atoms/m^3\n",
+ "e = 1.6*10**-19 #in C\n",
+ "Miu_e = 0.36 #in m^2/V-sec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma_n = n_d *e *Miu_e #in mho/m\n",
+ "Rho_n = 1/Sigma_n #ohm m\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The resistivity in \u03a9m is =%.2f X 10^-3' %(Rho_n*(10**3)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The resistivity in \u03a9m is =0.41 X 10^-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.17 Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "n_i = 1*10**19 #in /m^3\n",
+ "Miu_e = 0.36 #in m^2/volt.sec\n",
+ "Miu_h = 0.17 #in m^2/volt.sec\n",
+ "A = 2 #in cm^2\n",
+ "A = A * 10**-4 #in m^2\n",
+ "t = 0.1 #in mm\n",
+ "t = t*10**-3 #in m\n",
+ "V = 4 #in volts\n",
+ "e = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma_i = n_i * e * (Miu_e + Miu_h) #mho/m\n",
+ "J = Sigma_i * (V/t) #in Amp/m^2\n",
+ "I = J*A #in Amp\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The current in Amp is =%.2f ' %I)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current in Amp is =6.78 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 2.18 Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Miu_h = 500.0 #in cm^2/V.s\n",
+ "Miu_e = 1500.0 #in cm^2/V.s\n",
+ "n_i = 1.6*10**10 #in /cm^3\n",
+ "e = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma_i = n_i * e * (Miu_e+Miu_h) #in mho/cm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The conductivity of pure silicon in mho/cm is =%.2f X 10^-6 ' %(Sigma_i*(10**6)))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of pure silicon in mho/cm is =5.12 X 10^-6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.19 Page No 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Si_density = 10.5 #in gm/cc\n",
+ "N_A = 6.025*10**23 \n",
+ "At = 108.0 #atomic weight\n",
+ "B = 0.8 #in Tesla\n",
+ "w = 0.50 #in cm\n",
+ "w = w * 10**-2 #in m\n",
+ "t = 0.10 #in mm\n",
+ "t = t * 10**-3 #in m\n",
+ "A = w*t #in m^2\n",
+ "q = 1.6*10**-19 #in C\n",
+ "I = 2 #in ampere\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = (N_A/At) * Si_density #in /cc\n",
+ "n = n * 10**6 #in /m^3\n",
+ "V_H = (B*I*t)/(n*q*A) #in volts\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The hall voltage produced is =%.3f X 10^-7 volts' %(V_H*(10**7)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hall voltage produced is =0.341 X 10^-7 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.20 Page No 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Sigma = 5.8*10**7 #in mho/m\n",
+ "l = 1 #in m\n",
+ "d = 1 #in cm\n",
+ "d = d * 10**-2 #in m\n",
+ "W = 1 #in mm \n",
+ "W = W*10**-3 #in m\n",
+ "I = 1 #in Amp\n",
+ "B = 1 #in Tesla\n",
+ "V_H = 0.074*10**-6 #in Volts\n",
+ "A = 10**-2 * 10**-3 #in m^2\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "R_H = (V_H*A)/(B*I*d) #in m^3/c\n",
+ "Miu = Sigma * R_H #in m^2/volt.sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Hall coefficient is =%.1f X 10^-11 m^3/c' %(R_H*(10**11)))\n",
+ "print('The mobility of electron is = %.2f X 10^-3 m^2/volt.sec ' %(Miu*(10**3)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hall coefficient is =7.4 X 10^-11 m^3/c\n",
+ "The mobility of electron is = 4.29 X 10^-3 m^2/volt.sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.21 Page No 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "n_i = 1.4*10**18 #in /m^3\n",
+ "n_D = 1.4*10**24 #in /m^3\n",
+ "n = n_D #in /m^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "p = n_i**2/n #in /m^3\n",
+ "R_e = n/p #Ratio of electron\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Concentration of is =%.2f X 10^12 holes per m^3 ' %(p/(10**12)))\n",
+ "print('Ratio of electron to hole concentration is =%.f 10^12 ' %(R_e/(10**12)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentration of is =1.40 X 10^12 holes per m^3 \n",
+ "Ratio of electron to hole concentration is =1 10^12 \n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.22 Page No 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "B = 0.48 #in Wb/m^2\n",
+ "R_H = 3.6 * 10**-4 #in m^3/c\n",
+ "R = 9*10**-3 #in ohm-m\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma = 1/R #in (ohm-m)^-1\n",
+ "Rho = 1/R_H #in coulomb/m^3\n",
+ "e = 1.6*10**-19 #in C\n",
+ "n = Rho/e #in /m^3\n",
+ "Miu = Sigma * R_H #in m^2/volt-s\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The mobility of electron is =%.2f m^2/volt-s' %Miu)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of electron is =0.04 m^2/volt-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.23 Page No 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "e = 1.6*10**-19 #in C\n",
+ "R_H = 0.0145 #in m^3/coulomb\n",
+ "Miu_e = 0.36 #m^2/v-s\n",
+ "E = 100 #V/m\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = 1/(e*R_H) #in /m^3\n",
+ "J= n*e*Miu_e*E #in A/m^2\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The current density is =%.2f A/m^2 ' %J)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current density is =2482.76 A/m^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.24 Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "e = 1.6*10**-19 #in C\n",
+ "Miu_e = 7.04*10**-3 #in m^2/volt-sec\n",
+ "n = 5.8*10**28 #number of electron/m^3\n",
+ "m = 9.1*10**-31\n",
+ "E_F = 5.5 # in eV\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Torque = (Miu_e/e)*m # in sec \n",
+ "Rho = 1/(n*e*Miu_e) #in ohm cm\n",
+ "V_F = math.sqrt( (2*E_F*e)/m ) #in m/s\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Relaxtion time is =%.2f X 10^-15 sec ' %(Torque*(10**15)))\n",
+ "print('Resistivity of conductor is =%.2f X 10^-18 in \u03a9m' %(Rho*(10**8)))\n",
+ "print('Velocity of electron with the fermi energy is =%.2f X 10^-6 in m/s' %(V_F/(10**6)))\n",
+ "\n",
+ "# Note: The calculation of Part (ii) is wrong also the unit of resistivity of conductor is wrong\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relaxtion time is =40.04 X 10^-15 sec \n",
+ "Resistivity of conductor is =1.53 X 10^-18 in \u03a9m\n",
+ "Velocity of electron with the fermi energy is =1.39 X 10^-6 in m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.25 Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "E= 5.95 #in eV\n",
+ "EF= 6.25 #in eV\n",
+ "delE= 0.01\n",
+ "\n",
+ "#CALCULATIONS\n",
+ " #delE= 1-1/(1+exp((E-EF)/KT))\n",
+ "K=1.38*10**-23 #Boltzman Constant in J/K\n",
+ "T = ((E-EF)/math.log(1/(1-delE) -1)*1.6*10**-19)/K #in K\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The temperature is =%.2f K' %T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature is =756.95 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.26 Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T1 = 400.0 #in K\n",
+ "T2 = 300.0 #in K\n",
+ "N_V = 1.04*10**19 #in cm^-3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N1 = N_V*((T1/T2)**(3/2)) #in cm^-3\n",
+ "KT = 0.0259*(T1/T2) #in eV\n",
+ "FermiLevel= 0.27 #in eV\n",
+ "P_O = N1*math.exp( (-FermiLevel)/KT ) #in cm^-3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The thermal equillibrium hole concentration is =%.2f X 10^15 cm^-3' %(P_O/(10**15)))\n",
+ "print('Approximationa error ')\n",
+ "# Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thermal equillibrium hole concentration is =5.58 X 10^15 cm^-3\n",
+ "Approximationa error \n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.27 Page No 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T1 = 550.0 #in K\n",
+ "T2 = 300.0 #in K\n",
+ "N1 = 1.04*10**19 \n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N_V = N1*((T1/T2)**(3)) \n",
+ "N_C = 2.8*10**19\n",
+ "E_g = -1.12\n",
+ "KT = 0.0259*(T1/T2)\n",
+ "n_i = math.sqrt(N_C*N_V*math.exp(E_g/KT)) #in cm^-3\n",
+ "Nd= math.sqrt(n_i**2/((1.05-1/2.0)**2-(1/2.0)**2))\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of n_i is =%.2f X 10^14 cm^-3' %(n_i/(10**14)))\n",
+ "print('The value of N_d is =%.2f X 10^15 cm^-3' %(Nd/(10**15)))\n",
+ "#Formula n_o= Nd/2+sqrt((Nd/2)^2+n_i^2) and n_o = 1.05*N_d;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of n_i is =3.20 X 10^14 cm^-3\n",
+ "The value of N_d is =1.40 X 10^15 cm^-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 2.28 Page No 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "n_o = 10**15 #in cm^-3\n",
+ "n_i = 10**10 #in cm^-3\n",
+ "p_o = 10**5 #in cm^-3\n",
+ "del_p = 10**13 #in cm^-3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "del_n = del_p #in cm^-3\n",
+ "KT= 0.0259 #in eV\n",
+ "Fermi_level1= KT*math.log(n_o/n_i) #in eV\n",
+ "Fermi_level2= KT*math.log((n_o+del_n)/n_i) #in eV\n",
+ "Fermi_level3= KT*math.log((p_o+del_p)/n_i) #in eV\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Fermi level for thermal equillibrium is : =%.2f eV ' %Fermi_level1)\n",
+ "print('Quasi-Fermi level for electrons in non equillibrium is : =%.2f eV' %Fermi_level2)\n",
+ "print('Quasi-Fermi level for holes in non equillibrium is: =%.2f eV' %Fermi_level3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fermi level for thermal equillibrium is : =0.30 eV \n",
+ "Quasi-Fermi level for electrons in non equillibrium is : =0.30 eV\n",
+ "Quasi-Fermi level for holes in non equillibrium is: =0.18 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo3.ipynb b/Advance_Semiconductor_Devices/ChapterNo3.ipynb
new file mode 100755
index 00000000..bc717890
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo3.ipynb
@@ -0,0 +1,992 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chapter No 3 : Excess Carriers In Semiconductors<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No 145 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "n_o = 10**17 #in/cm^3\n",
+ "n_i = 1.5*10**10 #in /cm^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "p_o = ((n_i)**(2))/n_o #in holes/cm^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The hole concentration is =%.f in holes/cm^3' %p_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hole concentration is =2250 in holes/cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page No 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "n_i = 1.5 * 10**10 #in /cm^3 for silicon\n",
+ "N_d = 10**17 #in atoms/cm^3\n",
+ "n_o = 10**17 #electrons/cm^3\n",
+ "KT = 0.0259\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "# E_r - E_i = KT * log(n_o/n_i)\n",
+ "del_E = KT * math.log(n_o/n_i) #in eV\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The energy band for this type material is Ei =%.2f eV' %del_E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy band for this type material is Ei =0.41 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "K = 1.38*10**-23 #in J/K\n",
+ "T = 27 #in degree C\n",
+ "T = T + 273 #in K\n",
+ "e = 1.6*10**-19 \n",
+ "Miu = 0.17 #in m^2/v-s\n",
+ "Miu1 = 0.025 #in m^2/v-s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "D_n = ((K*T)/e)*Miu #in m^2/s\n",
+ "D_p = ((K*T)/e)*Miu1 #in m^2/s\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The diffusion coefficient of electrons is =%.2f X 10^-4 in m^2/s ' %(D_n*(10**4)))\n",
+ "print('The diffusion coefficient of holes is =%.2f X 10^-4 in m^2/s ' %(D_p*(10**4)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diffusion coefficient of electrons is =43.99 X 10^-4 in m^2/s \n",
+ "The diffusion coefficient of holes is =6.47 X 10^-4 in m^2/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page No 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Miu_n = 0.15 #in m^2/v-s\n",
+ "K = 1.38*10**-23 \n",
+ "T = 300 #in K\n",
+ "e = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "D_n = Miu_n*((K*T)/e) #in m^2/s\n",
+ "Torque_n = 10**-7 #in s\n",
+ "L_n = math.sqrt(D_n*Torque_n) #in m\n",
+ "del_n = 10**20 #electrons/m^3\n",
+ "J_n = (e*D_n*del_n)/L_n #in A/m^2\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The diffusion length is =%.2f X 10^-4 in m' %(L_n*(10**5)))\n",
+ "print('The diffusion current density is =%.2f X 10^3 in A/m^2 ' %(J_n/(10**3)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diffusion length is =1.97 X 10^-4 in m\n",
+ "The diffusion current density is =3.15 X 10^3 in A/m^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Sigma_n = 0.1 #in (ohm-cm)^-1\n",
+ "Miu_n = 1300\n",
+ "q = 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n_n = Sigma_n/(Miu_n*q) #in electrons/cm^3 \n",
+ "n_i = 1.5*10**10\n",
+ "p_n = ((n_i)**2)/n_n #in holes/cm^3\n",
+ "p_n = p_n * 10**6 #in holes/m^3\n",
+ "n_n=n_n*10**6\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Concentration of electrons is =%.2f X 10^20 per m^3 ' %(n_n/(10**20)))\n",
+ "print('Concentration of holes is =%.2f X 10^11 per m^3 ' %(p_n/(10**11)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentration of electrons is =4.81 X 10^20 per m^3 \n",
+ "Concentration of holes is =4.68 X 10^11 per m^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L = 100*10**-6 #in m\n",
+ "Miu_e = 0.13 #in m^2/V-s\n",
+ "Torque_h = 10**-6 #in s\n",
+ "Miu_h = 0.05 #in m^2/v-s\n",
+ "V = 12 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Torque_n = ((L)**2)/(Miu_e*V) #in s\n",
+ "P = (Torque_h/Torque_n)*(1+(Miu_h/Miu_e))\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Electron transit time is =%.2f X 10^-9 in sec' %(Torque_n*(10**9)))\n",
+ "print('Photoconductor gain is =%.2f ' %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Electron transit time is =6.41 X 10^-9 in sec\n",
+ "Photoconductor gain is =216.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "q = 1.6*10**-19 #in C\n",
+ "n_i = 2.5*10**13\n",
+ "Miu_n = 3800 #in cm^2/V-s\n",
+ "Miu_p = 1800 #in cm^2/V-s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Sigma = n_i*(Miu_n + Miu_p)*q #in (ohm-cm)^-1\n",
+ "Rho = 1/Sigma #in ohm-cm\n",
+ "N_D =4.4*10**22/10**8 #in atoms/cm^3\n",
+ "Sigma_n = N_D * Miu_n*q #in (ohm-cm)^-1 \n",
+ "Rho1 = 1/Sigma_n #in ohm cm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The resistivity is =%.2f in ohm-cm ' %Rho)\n",
+ "print('The resistivity drops is =%.2f in ohm cm ' %Rho1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The resistivity is =44.64 in ohm-cm \n",
+ "The resistivity drops is =3.74 in ohm cm \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "n_i = 10**16 #in /m^3\n",
+ "N_D = 10**22 #in /m^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "n = N_D #in /m^3\n",
+ "p = ((n_i)**2)/n #in /m^3\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The concentration of is =%.2f X 10^21 electrons per m^3' %(n/(10**21)))\n",
+ "print('The concentration of is =%.2f X 10^9 holes per m^3 ' %(p/(10**9)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The concentration of is =10.00 X 10^21 electrons per m^3\n",
+ "The concentration of is =10.00 X 10^9 holes per m^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rho = 9.6*10**-2 #ohm-m\n",
+ "Sigma_n = 1/Rho #in (ohm-m)^-1\n",
+ "Miu_n = 1300 #in cm^2/V-s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Miu_n = Miu_n * 10**-4 #in m^2/V-s\n",
+ "q = 1.6*10**-19 #in C\n",
+ "N_D = Sigma_n/(Miu_n*q) #in atoms/m^3\n",
+ "d = 5*10**22 #in atoms/cm^3\n",
+ "d = d * 10**6 #// in atoms/m^3\n",
+ "R_d = N_D/d #Ratio \n",
+ "\n",
+ "#RESULTS\n",
+ "print('Ratio of donor atom to silicon atoms per unit volume is =%.2f X 10^-8 ' %(R_d*(10**8)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of donor atom to silicon atoms per unit volume is =1.00 X 10^-8 \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 Page No 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "n_i = 1.5*10**10 #in /cm^3\n",
+ "n_n = 2.25*10**15 #in /cm^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "p_n = ((n_i)**2)/n_n #in /cm^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The concentration of is =%.2f X 10^5 holes per cm^3 ' %(p_n/(10**5)))\n",
+ "print('Donor impurity per cm^3 is =%.2f X 10^15 ' %(n_n/(10**15)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The concentration of is =1.00 X 10^5 holes per cm^3 \n",
+ "Donor impurity per cm^3 is =2.25 X 10^15 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.12 Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "N_A = 2*10**16 #in /cm^3\n",
+ "N_D = 10**16 #in /cm^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "C = N_A-N_D #in /cm^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Carrier concentration in holes/cm^3 is =%.2f X 10^16 ' %(C/(10**16)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Carrier concentration in holes/cm^3 is =1.00 X 10^16 \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.13 Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "del_n = 10**15 #in /cm^3\n",
+ "Torque_p = 10*10**-6 #in sec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "R_G = del_n/Torque_p #in electron hole pairs/sec/cm^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The rate of generation of minority carrier is : =%.2f X 10^20 electron hole pairs/sec/cm^3 ' %(R_G/(10**20)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of generation of minority carrier is : =1.00 X 10^20 electron hole pairs/sec/cm^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.14 Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V = 1/20.0 #in cm/\u00b5sec\n",
+ "V=V*10**6 #in cm/sec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "E = 10 #in V/cm\n",
+ "Miu = V/E #in cm^2/V-sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The mobility of minority charge carrier is =%.f cm^2/V-sec' %Miu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of minority charge carrier is =5000 cm^2/V-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.15 Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "q = 1.6 * 10**-19 #in C\n",
+ "N_D = 4.5 * 10**15 #in /cm^3\n",
+ "del_p = 10**21 \n",
+ "e=10 #in cm\n",
+ "A = 1 #in mm^2\n",
+ "A = A * 10**-14 #cm^2\n",
+ "l = 10 #in cm\n",
+ "Torque_p = 1 #in microsec\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Torque_p = Torque_p * 10**-6 #in sec\n",
+ "Torque_n = 1 #in microsec\n",
+ "Torque_n = Torque_n * 10**-6 #in sec\n",
+ "n_i = 1.5 * 10**10 #in /cm^3\n",
+ "D_n = 30 #cm^2/sec\n",
+ "D_p = 12 #in cm^2/sec\n",
+ "n_o = N_D #in /cm^3\n",
+ "p_o = ((n_i)**2)/n_o #in /cm^3\n",
+ "l_n = math.sqrt(D_n * Torque_n) #in cm\n",
+ "l_p = math.sqrt(D_p * Torque_p) #in cm\n",
+ "x=34.6*10*8-4 #in cm\n",
+ "e1 = 1.88 * 10**1 #in cm\n",
+ "dnBYdx = del_p * e1 #in cm^4\n",
+ "dpBYdx = del_p *e #in cm^4\n",
+ "\n",
+ "J_P = -(q) * D_p * dpBYdx #in A/cm^2\n",
+ "J_n = q * D_n * dnBYdx #in A/cm^2\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Hole concentration at thermal equilibrium per cm^3 is =%.1f X 10^5 ' %(p_o/(10**5)))\n",
+ "print('Diffusion length of holes in cm is =%.1f X 10^-3 ' %(l_p*(10**3)))\n",
+ "print('Concentration gradient of holes at distance in cm^4 is =%.f X 10^22 ' %(dpBYdx/(10**22)))\n",
+ "print('Concentration gradient of electrons in per cm^4 is =%.1f X 10^22 ' %(dnBYdx/(10**22)))\n",
+ "print('Current density of holes due to diffusion in A/cm^2 is =%.2f X 10^4 ' %(J_P/(10**4)))\n",
+ "print('Current density of electrons due to diffusion in A/cm^2 is =%.2f X 10^4 ' %(J_n/(10**4)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hole concentration at thermal equilibrium per cm^3 is =0.5 X 10^5 \n",
+ "Diffusion length of holes in cm is =3.5 X 10^-3 \n",
+ "Concentration gradient of holes at distance in cm^4 is =1 X 10^22 \n",
+ "Concentration gradient of electrons in per cm^4 is =1.9 X 10^22 \n",
+ "Current density of holes due to diffusion in A/cm^2 is =-1.92 X 10^4 \n",
+ "Current density of electrons due to diffusion in A/cm^2 is =9.02 X 10^4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.16 Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "h = 6.626 * 10**-34 #in J-s\n",
+ "q= 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "h= h/q #in eV\n",
+ "c = 3*10**8\n",
+ "lembda = 5490*10**-10 #in m\n",
+ "E = h*c/lembda #in eV\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The energy band gap is =%.2f eV ' %E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy band gap is =2.26 eV \n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.17 Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "D_n = 35 #in cm^2/sec\n",
+ "q = 1.6*10**-19 #in C\n",
+ "y2 = 6*10**16 #in /cm^3\n",
+ "y1 = 10**17 #in /cm^3\n",
+ "x2 = 2*10**-4\n",
+ "x1 = 0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "dnBYdx = (y2-y1)/(x2-x1)\n",
+ "J_n = q*D_n*dnBYdx #in A/cm^2\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The current density is =%.f in A/cm^2' %J_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current density is =-1120 in A/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.18 Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "q = 1.6*10**-19 #in C\n",
+ "n_n = 5*10**20 #in /m^3\n",
+ "n_n = n_n * 10**-6 #in /cm^3\n",
+ "Miu_n = 0.13 #in m^2/V-sec\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Miu_n = Miu_n * 10**4 #in cm^2/V-sec\n",
+ "Sigma_n = q*n_n*Miu_n #in ohm-cm^-1\n",
+ "Rho = 1/Sigma_n\n",
+ "A = 100 # in \u00b5m^2\n",
+ "A = A * 10**-8 #in cm^2\n",
+ "l = 0.1 #in cm\n",
+ "R = Rho * (l/A) #in ohm\n",
+ "R=R*10**-6\n",
+ "#RESULTS\n",
+ "print('The resistance of the bar is =%.2f in M ohm' %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The resistance of the bar is =0.96 in M ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.19 Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "w = 3.0 #in \u00b5m\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "D = w/9 #in \u00b5m\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Depletion width on P side is =%.2f in \u00b5m ' %D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Depletion width on P side is =0.33 in \u00b5m \n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.20 Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "n_i = 1.5*10**16 #in /m^3\n",
+ "n_n = 5*10**20 #in /m^3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "p_n = ((n_i)**2)/n_n #in /m^3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The minority carrier density per m^3 is =%.2f X 10^11' %(p_n/(10**11)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minority carrier density per m^3 is =4.50 X 10^11\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.21 Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "y2 = 10**14 #in /cm^3\n",
+ "y1 = 0\n",
+ "x1=-0.5 #in \u00b5m\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "x1= x1*10**-4 #in cm\n",
+ "x2=0\n",
+ "dnBYdx = (y2-y1)/(x2-x1) #in /cm^4\n",
+ "q = 1.6*10**-19 #in C\n",
+ "D_n = 25 #in cm^2/sec\n",
+ "J_n = q*D_n*dnBYdx #in A/cm^2\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The collector current density is =%.f in A/cm^2' %J_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The collector current density is =8 in A/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.22 Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "h = 6.64*10**-34 ##in J-s\n",
+ "q=1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "h= h/q #in eV\n",
+ "c = 3*10**8 #in m/s\n",
+ "lembda = 0.87*10**-6 #in m\n",
+ "E_g = (h*c)/lembda #in eV\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The band gap in eV is =%.2f ' %E_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The band gap in eV is =1.43 \n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.23 Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "alpha = 5*10**4 #in cm^-1\n",
+ "l = 0.46*10**-4 #in cm\n",
+ "hv = 2 #in eV\n",
+ "I_o = 10**-2 #in W\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_t = I_o*math.exp(-alpha*l) #in W\n",
+ "A_p = I_o-I_t #absorbed power in W or J/s\n",
+ "c = 1.43\n",
+ "A_E = (hv-c)/hv*A_p # in J/s\n",
+ "e = 1.6*10**-19 #in C\n",
+ "P = A_p/(e*hv) #Perfect quantum efficiency in photon/s\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Total energy absorbed is =%.f X 10^-3 in J/s' %(A_p*(10**3)))\n",
+ "print('Rate of excess thermal energy is =%.2f X 10^-3 in J/s' %(A_E*(10**3)))\n",
+ "print('Perfect quantum efficiency is =%.2f X 10^16 in photon/s' %(P/(10**16)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total energy absorbed is =9 X 10^-3 in J/s\n",
+ "Rate of excess thermal energy is =2.56 X 10^-3 in J/s\n",
+ "Perfect quantum efficiency is =2.81 X 10^16 in photon/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 3.24 Page No 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Mu_p = 500 #in cm^2/v-s\n",
+ "kT = 0.0259\n",
+ "Toh_p = 10**-10 #in sec\n",
+ "p_o = 10**17 #in cm^-3\n",
+ "q= 1.6*10**-19 # in C\n",
+ "A=0.5 #in square meter\n",
+ "del_p = 5 * 10**16 #in cm^-3\n",
+ "n_i= 1.5*10**10 #in cm^-3 \n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "D_p = kT * Mu_p #in cm/s\n",
+ "L_p = math.sqrt(D_p * Toh_p) # in cm\n",
+ "x = 10**-5 #in cm\n",
+ "p = p_o+del_p*e**(x/L_p) #in cm^-3\n",
+ "Eip= math.log(p/n_i)*kT #in eV\n",
+ "Ecp= 1.1/2-Eip #value of E_c-E_p in eV\n",
+ "Ip= q*A*D_p/L_p*del_p*e**(x/L_p) #in A\n",
+ "Qp= q*A*del_p*L_p #in C\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The hole current is : =%.2f X 10^3 in A ' %(Ip*(10**3)))\n",
+ "print('Approximation error')\n",
+ "print('The value of Qp is :=%.2f X 10^-7 in C' %(Qp*(10**7)))\n",
+ "\n",
+ "#Note: There is a calculation error to evalaute the value of hole current hence the value of hole current in the book is wrong\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hole current is : =8.61 X 10^3 in A \n",
+ "Approximation error\n",
+ "The value of Qp is :=1.44 X 10^-7 in C\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo4.ipynb b/Advance_Semiconductor_Devices/ChapterNo4.ipynb
new file mode 100755
index 00000000..e76421ad
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo4.ipynb
@@ -0,0 +1,928 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chapter No 4 : Junctions and Interfaces<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page No 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N_D = 10**17 * 10**6 #in atoms/m^3\n",
+ "N_A = 0.5*10**16*10**6 #in atoms/m^3\n",
+ "Epsilon_r = 10\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Epsilon_o = 8.85*10**-12\n",
+ "Epsilon = Epsilon_r*Epsilon_o #in F/m\n",
+ "e = 1.602*10**-19 #in C\n",
+ "V = 0\n",
+ "V_B = 0.7 #in V\n",
+ "W1 = math.sqrt( ((2*Epsilon*V_B)/e)*(1/N_A+1/N_D) ) #in m\n",
+ "V_o = V_B #in V\n",
+ "V1 = -10 #in V\n",
+ "V_B1 = V_o-V1 #in V\n",
+ "W = math.sqrt( ((2*Epsilon*V_B1)/e)*(1/N_A+1/N_D) ) #in m\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The junction width in meter when no external voltage is applied is =%.2f X 10^-6' %(W1*(10**6)))\n",
+ "print('Junction width in meter with an external voltage of -10V is =%.2f X 10^-6 m' %(W*(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The junction width in meter when no external voltage is applied is =0.39 X 10^-6\n",
+ "Junction width in meter with an external voltage of -10V is =1.54 X 10^-6 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V = 5 #in V\n",
+ "V_Gamma = 0.6 #in V\n",
+ "r_F = 12 #in ohm\n",
+ "R = 1 #in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "R = R * 10**3 #in ohm\n",
+ "I_F = (V-V_Gamma)/(R+r_F) #in A\n",
+ "V_F = V_Gamma + (I_F*r_F) #in V\n",
+ "I_F=I_F*10**3 \n",
+ "#RESULTS\n",
+ "print('The forward diode current is =%.2f mA ' %I_F)\n",
+ "print('The diode voltage is =%.2f V ' %V_F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The forward diode current is =4.35 mA \n",
+ "The diode voltage is =0.65 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "n = 4.4*10**22 #total number of Ge atoms/cm^3\n",
+ "n_a = 1*10**8 #number of impurity atoms\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N_A = n/n_a #in atoms/cm^3\n",
+ "N_A = N_A * 10**6 #in atoms/m^3\n",
+ "n_i = 2.5*10**13 #in atoms/cm^3\n",
+ "n_i = n_i * 10**6 #in atoms/m^3\n",
+ "N_D = 10**3 * N_A #in atoms/m^3\n",
+ "V_T = 26*10**-3 #in A\n",
+ "V_J = V_T*math.log( (N_A*N_D)/((n_i)**2) ) #in V\n",
+ "print('The contact difference of potential is =%.2f V For a silicon P-N junction ' %V_J)\n",
+ "n = 5*10**22\n",
+ "N_A = n/n_a #in atoms/cm^3\n",
+ "N_A = N_A * 10**6 #in atoms/m^3\n",
+ "N_D = 10**3 * N_A #in atoms/m^3\n",
+ "n_i = 1.5*10**10 #in /cm^3\n",
+ "V_J = V_T*math.log(N_A*N_D/n_i**2) #in V\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "\n",
+ "print('The contact difference of potential is =%.2f V' %V_J)\n",
+ "\n",
+ "#Note: There is a calculation error to find the value of V_J in the book, so the answer in the book is wrong.\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The contact difference of potential is =0.33 V For a silicon P-N junction \n",
+ "The contact difference of potential is =1.44 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rho_p = 2 #in ohm-cm\n",
+ "Rho_n = 1 #in ohm cm\n",
+ "q = 1.6*10**-19 #in C\n",
+ "n_i = 2.5*10**13 #atoms per cm^3\n",
+ "Miu_p = 1800\n",
+ "Miu_n = 3800\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N_A = 1/(Rho_p*q*Miu_p) #in /cm^3\n",
+ "N_D = 1/(Rho_n*q*Miu_n) #in /cm^3\n",
+ "V_T = 26 #in mV\n",
+ "V_T= V_T*10**-3 #in V\n",
+ "V_J = V_T*math.log((N_A*N_D)/((n_i)**2)) #in V\n",
+ "print('The height of the potential energy barrier is =%.2f in V ' %V_J)\n",
+ "Miu_p = 500\n",
+ "N_A = 1/(Rho_p*q*Miu_p) #in /cm^3\n",
+ "Miu_n = 1300\n",
+ "N_D = 1/(Rho_n*q*Miu_n) #in /cm^3\n",
+ "n_i = 1.5*10**10;\n",
+ "V_J = V_T*math.log((N_A*N_D)/((n_i)**2)) #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('For silicon P-N juction The height of the potential energy barrier is =%.2f V' %V_J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The height of the potential energy barrier is =0.22 in V \n",
+ "For silicon P-N juction The height of the potential energy barrier is =0.67 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 page No 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eta = 1\n",
+ "V_T = 26 #in mV\n",
+ "V_T= V_T*10**-3 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V= math.log(1-0.9)*V_T #in V\n",
+ "print(\"The voltage in volts is : %.2f \" %V)\n",
+ "V1=0.05 #in V\n",
+ "V2= -0.05 #in V\n",
+ "ratio= (math.e**(V1/(Eta*V_T))-1)/(math.e**(V2/(Eta*V_T))-1)\n",
+ "print(\"The ratio of the current for a forward bias to reverse bias is : %.2f \" %ratio)\n",
+ "\n",
+ "# Part (iii)\n",
+ "Io= 10 #in \u00b5A\n",
+ "Io=Io*10**-3 #in mA\n",
+ "#For \n",
+ "V=0.1 #in V\n",
+ "I = Io * (math.e**(V/(Eta*V_T)) - 1) #in mA\n",
+ "print(\"For v=0.1 V , the value of I is : %.2f mA \" %I)\n",
+ "\n",
+ "#For \n",
+ "V=0.2 #in V\n",
+ "I = Io * (math.e**(V/(Eta*V_T)) - 1) #in mA\n",
+ "print(\"For v=0.2 V , the value of I is : %.2f mA \" %I)\n",
+ "\n",
+ "#For \n",
+ "V=0.3 #in V\n",
+ "I = Io * (math.e**(V/(Eta*V_T)) - 1) #in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "\n",
+ "I=I*10**-3\n",
+ "print(\"For v=0.3 V , the value of I is : %.2f mA\" %I)\n",
+ "print(\"From three value of I, for small rise in forward voltage, the diode current increase rapidly \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage in volts is : -0.06 \n",
+ "The ratio of the current for a forward bias to reverse bias is : -6.84 \n",
+ "For v=0.1 V , the value of I is : 0.46 mA \n",
+ "For v=0.2 V , the value of I is : 21.90 mA \n",
+ "For v=0.3 V , the value of I is : 1.03 mA\n",
+ "From three value of I, for small rise in forward voltage, the diode current increase rapidly \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8 Page No 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "# Part (i)\n",
+ "T1= 25 #in \u00b0C\n",
+ "T2= 80.0 #in \u00b0C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "# Formula Io2= Io1*2**((T2-T1)/10)\n",
+ "AntiFactor= 2**((T2-T1)/10)\n",
+ "print('Anticipated factor for Ge is : =%.f ' %AntiFactor)\n",
+ "\n",
+ "# Part (ii)\n",
+ "T1= 25.0 #in \u00b0C\n",
+ "T2= 150.0 #in \u00b0C\n",
+ "AntiFactor= 2**((T2-T1)/10)\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Anticipated factor for Ge is : =%.f ' %AntiFactor)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Anticipated factor for Ge is : =45 \n",
+ "Anticipated factor for Ge is : =5793 \n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I=5.0 #in \u00b5A\n",
+ "V=10.0 #in V\n",
+ "T1= 0.11 #in \u00b0C^-1\n",
+ "T2= 0.07 #in \u00b0C^-1\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Io= T2*I/T1 #in \u00b5A\n",
+ "I_R= I-Io #in \u00b5A\n",
+ "R= V/I_R #in M\u03a9\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The leakage resistance is : =%.1f M\u03a9 ' %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The leakage resistance is : =5.5 M\u03a9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10 Page No 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eta = 1.0\n",
+ "T = 125.0 #in \u00b0C\n",
+ "T = T + 273 #in K\n",
+ "V_T = 8.62 * 10**-5 * 398 #in V\n",
+ "I_o = 30 #in \u00b5A\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_o= I_o*10**-6 #in A\n",
+ "v = 0.2 #in V\n",
+ "r_f = (Eta * V_T)/(I_o * math.e**(v/(Eta* V_T))) #in ohm\n",
+ "print('The dynamic resistance in the forward direction is =%.2f \u03a9 ' %r_f)\n",
+ "\n",
+ "r_r = (Eta * V_T)/(I_o * math.e**(-v/(Eta* V_T))) #in ohm\n",
+ "r_r=r_r*10**-3\n",
+ "print('The dynamic resistance in the forward direction is =%.2f K\u03a9 ' %r_r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The dynamic resistance in the forward direction is =3.36 \u03a9 \n",
+ "The dynamic resistance in the forward direction is =389.08 K\u03a9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "epsilon = 16/(36 * math.pi * 10**11) #in F/cm\n",
+ "A = 1 * 10**-2\n",
+ "W = 2 * 10**-4\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "C_T = (epsilon * A)/W #in F\n",
+ "C_T=C_T*10**12\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The barrier capacitance is =%.2f pF ' %C_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The barrier capacitance is =70.74 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A = 1.0 #in mm^2\n",
+ "A = A * 10**-6 #in m^2\n",
+ "N_A = 3 * 10**20 #in atoms/m^3\n",
+ "q = 1.6 *10**-19 #in C\n",
+ "V_o = 0.2 #in V\n",
+ "epsilon_r=16\n",
+ "epsilon_o= 8.854*10**-12 #in F/m\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "epsilon=epsilon_r*epsilon_o\n",
+ "# Part (a)\n",
+ "V=-10 #in V\n",
+ "W = math.sqrt(((V_o - V) * 2 * epsilon)/(q * N_A)) #m\n",
+ "C_T1 = (epsilon * A)/W #in F\n",
+ "W=W*10**6\n",
+ "print('The width of the depletion layer for an applied reverse voltage of 10V is =%.2f \u00b5m ' %W)\n",
+ "\n",
+ "# Part (b)\n",
+ "V=-0.1 #in V\n",
+ "W = math.sqrt(((V_o - V) * 2 * epsilon)/(q * N_A)) #m\n",
+ "C_T2 = (epsilon * A)/W #in F\n",
+ "W=W*10**6\n",
+ "print('The width of the depletion layer for an applied reverse voltage of 0.1V is =%.2f \u00b5m ' %W)\n",
+ "\n",
+ "# Part (c)\n",
+ "V=0.1 #in V\n",
+ "W = math.sqrt(((V_o - V) * 2 * epsilon)/(q * N_A)) # m\n",
+ "W=W*10**6\n",
+ "print('The width of the depletion layer for an applied reverse voltage of 0.1V is =%.2f \u00b5m ' %W)\n",
+ "\n",
+ "#Part (d)\n",
+ "C_T1=C_T1*10**12\n",
+ "C_T2=C_T2*10**12\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The space charge capacitance for an applied reverse voltage of 10V is =%.2f pF ' %C_T1)\n",
+ "print('The space charge capacitance for an applied reverse voltage of 0.1V is =%.2f pF' %C_T2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The width of the depletion layer for an applied reverse voltage of 10V is =7.76 \u00b5m \n",
+ "The width of the depletion layer for an applied reverse voltage of 0.1V is =1.33 \u00b5m \n",
+ "The width of the depletion layer for an applied reverse voltage of 0.1V is =0.77 \u00b5m \n",
+ "The space charge capacitance for an applied reverse voltage of 10V is =18.26 pF \n",
+ "The space charge capacitance for an applied reverse voltage of 0.1V is =106.46 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 4.13 Page No 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o = 1.8 * 10**-9 #A\n",
+ "v = 0.6 #in V\n",
+ "Eta = 2\n",
+ "V_T = 26 #in mV\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_T=V_T*10**-3 #in V\n",
+ "I = I_o *(math.e**(v/(Eta * V_T))) #in A\n",
+ "I=I*10**3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The current in the junction is =%.2f mA ' %I)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current in the junction is =0.18 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 4.14 Page No 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_o = 2.4 * 10**-14\n",
+ "I = 1.5 #in mA\n",
+ "I=I*10**-3 #in A\n",
+ "Eta = 1\n",
+ "V_T = 26 #in mV\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_T= V_T*10**-3 #in V\n",
+ "v =math.log((I + I_o)/I_o) * V_T #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The forward biasing voltage across the junction is =%.2f V' %v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The forward biasing voltage across the junction is =0.65 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 4.15 Page No 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "I_o = 10 #in nA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I = I_o * (-1) #in nA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The Diode current is = %.f nA ' %I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Diode current is = -10 nA \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 4.16 Page No 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R = 4.5 #in ohm\n",
+ "I = 44.4 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I=I*10**-3 #in A\n",
+ "V = R * I #in V\n",
+ "Eta = 1\n",
+ "V_T = 26 #in mV\n",
+ "V_T=V_T*10**-3 #in V\n",
+ "I_o = I/((math.e**(V/(Eta * V_T))) -1) #in A\n",
+ "V = 0.1 #in V\n",
+ "r_f = (Eta * V_T)/(I_o * ((math.e**(V/(Eta * V_T)))-1)) #in ohm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The diode dynamic resistance is =%.2f \u03a9' %r_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diode dynamic resistance is =27.78 \u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 4.18 Page No 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V = 0.25 #in V\n",
+ "I_o = 1.2 #in \u00b5A\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_o = I_o * 10**-6 #in A\n",
+ "V_T = 26 #in mV\n",
+ "V_T = V_T * 10**-3 #in V\n",
+ "Eta = 1\n",
+ "r = (Eta * V_T)/(I_o * (math.e**(V/(Eta * V_T)))) #in ohm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The ac resistance of the diode is =%.2f \u03a9' %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ac resistance of the diode is =1.45 \u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 4.19 Page No 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "q = 1.6 * 10**-19 #in C\n",
+ "N_A = 3 * 10**20 #in /m^3\n",
+ "A = 1 #in \u00b5m^2\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "A = A * 10**-6 #in m^2\n",
+ "V = -10 #in V\n",
+ "V_J = 0.25 #in V\n",
+ "V_B = V_J - V #in V\n",
+ "epsilon_o = 8.854 #in pF/m\n",
+ "epsilon_o = epsilon_o * 10**-12 #in F/m\n",
+ "epsilon_r = 16\n",
+ "epsilon = epsilon_o * epsilon_r\n",
+ "W = math.sqrt((V_B * 2 * epsilon)/(q * N_A)) #in m \n",
+ "\n",
+ "#RESULTS\n",
+ "C_T = (epsilon * A)/W #in pF\n",
+ "W=W*10**6\n",
+ "C_T=C_T*10**12\n",
+ "print('The width of depletion layer is =%.2f \u00b5m ' %W)\n",
+ "print('The space charge capacitance is =%.2f pF ' %C_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The width of depletion layer is =7.78 \u00b5m \n",
+ "The space charge capacitance is =18.21 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 4.20 Page No 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C_T = 100.0 #in pF\n",
+ "C_T=C_T*10**-12 #in F\n",
+ "epsilon_r = 12\n",
+ "epsilon_o = 8.854 * 10**-12 #in F/m\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "epsilon = epsilon_r * epsilon_o\n",
+ "Rho_p = 5 #in ohm-cm\n",
+ "Rho_p = Rho_p * 10**-2 #in ohm-m\n",
+ "V_j = 0.5 #in V\n",
+ "V = -4.5 #in V\n",
+ "Mu_p = 500 #in cm^2\n",
+ "Mu_p = Mu_p * 10**-4 #in m^2\n",
+ "Sigma_p = 1/Rho_p #in per ohm-m\n",
+ "qN_A = Sigma_p/ Mu_p\n",
+ "V_B = V_j - V\n",
+ "W = math.sqrt((V_B * 2 * epsilon)/qN_A)\n",
+ "A = (C_T * W)/ epsilon #in m\n",
+ "D = math.sqrt(A * (4/math.pi)) #in m\n",
+ "D = D * 10**3 #in mm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The diameter is =%.2f mm ' %D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diameter is =1.40 mm \n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 4.21 Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "q = 1.6 * 10**-19 #in C\n",
+ "Mu_p = 500 #in cm^2/V-sec\n",
+ "Rho_p = 3.5 #in ohm-cm\n",
+ "Mu_n = 1500 #in cm^2/V-sec\n",
+ "Rho_n = 10 #in ohm-cm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N_A = 1/(Rho_p * Mu_p * q) # in /cm^3\n",
+ "N_D = 1/(Rho_n * Mu_n * q) # in /cm^3\n",
+ "V_J = 0.56 # in V\n",
+ "n_i = 1.5 * 10**10 #in /cm^3\n",
+ "V_T = V_J/math.log((N_A * N_D)/(n_i)**2) #in V\n",
+ "T = V_T * 11600 #in K\n",
+ "T = T - 273 #in \u00b0C\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The Temperature of junction is =%.2f \u00b0C ' %T)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Temperature of junction is =14.28 \u00b0C \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example No 4.22 Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R = 5 #in ohm\n",
+ "I = 50 #in mA\n",
+ "I=I*10**-3 #in A\n",
+ "V = R * I #in V\n",
+ "Eta = 1\n",
+ "V_T = 26 #in mV\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_T=V_T*10**-3 #in V\n",
+ "I_o = I/((math.e**(V/(Eta * V_T))) - 1) #in A\n",
+ "v1 = 0.2 #in V\n",
+ "r = (Eta * V_T)/(I_o * (math.e**(v1/(Eta * V_T)))) #in ohm\n",
+ "\n",
+ "#RESULTS\n",
+ "I_o=I_o*10**6\n",
+ "print('Reverse saturation current is =%.2f \u00b5A ' %I_o)\n",
+ "print('Dynamic resistance of the diode is =%.2f \u03a9 ' %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reverse saturation current is =3.33 \u00b5A \n",
+ "Dynamic resistance of the diode is =3.56 \u03a9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo6.ipynb b/Advance_Semiconductor_Devices/ChapterNo6.ipynb
new file mode 100755
index 00000000..44239148
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo6.ipynb
@@ -0,0 +1,76 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 6: Microwave Diodes <h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C1_min= 5.0 #in pF\n",
+ "C1_max= 50.0 #in pF\n",
+ "C2_min= 5.0 #in pF\n",
+ "C2_max= 50.0 #in pF\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "C1_min=C1_min*10**-12 #in F\n",
+ "C2_min=C2_min*10**-12 #in F\n",
+ "C1_max=C1_max*10**-12 #in F\n",
+ "C2_max=C2_max*10**-12 #in F\n",
+ "L = 10.0 #in mH\n",
+ "L = L * 10**-3 #in H\n",
+ "C_T_min = (C1_min*C2_min)/(C2_min+C2_min) #in F\n",
+ "f_o_max = 1/( 2*math.pi*(math.sqrt(L*C_T_min)) ) #in Hz \n",
+ "f_o_max = f_o_max * 10**-6 #in MHz\n",
+ "C_T_max = (C1_max*C2_max)/(C2_max+C2_max) #in F\n",
+ "f_o_min = 1/( 2*math.pi*(math.sqrt(L*C_T_max)) ) #in Hz \n",
+ "f_o_min = f_o_min * 10**-3 #in kHz\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The tuning range for circuit will be =%.2f kHz' %f_o_min)\n",
+ "print(' To %.3f MHz' %f_o_max)\n",
+ "\n",
+ "\n",
+ "#print(\"The tuning range for circuit will be : \"+string(round(f_o_min))+\" kHz to \"+string(round(f_o_max))+\" MHz\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The tuning range for circuit will be =318.31 kHz\n",
+ " To 1.007 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo7.ipynb b/Advance_Semiconductor_Devices/ChapterNo7.ipynb
new file mode 100755
index 00000000..431c4340
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo7.ipynb
@@ -0,0 +1,154 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 7: Optoelectonic Devices <h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vout = 5.0 #in V\n",
+ "V = 1.5 #ON state voltage drop across LED in V\n",
+ "I = 5.0 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I = I*10**-3 #in A\n",
+ "R = (Vout-V)/I #in ohm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Resistance is =%.f \u03a9' %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance is =700 \u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N_A = 7.5*10**24 #in atoms/m^3\n",
+ "N_D = 1.5*10**22 #in atoms/m^3\n",
+ "D_e = 25*10**-4 #in m^2/s\n",
+ "D_n = 1*10**-3 #in m^2/s\n",
+ "V_T = 26*10**-3 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Torque_eo = 500*10**-9 #in sec\n",
+ "Torque_ho = 100*10**-9 #in sec\n",
+ "e = 1.6*10**-19 #in C\n",
+ "n_i = 1.5*10**16 #in /m^3\n",
+ "I_lambda = 12.5 #in mA/cm^2\n",
+ "I_lambda= I_lambda*10**-3 #in A/cm^2\n",
+ "L_e = math.sqrt(D_e*Torque_eo) #in m\n",
+ "L_n = math.sqrt(D_n*Torque_ho) #in m\n",
+ "J_s = e*((n_i)**2)*( ((D_e)/(L_e*N_A)) + ((D_n)/(L_n*N_D)) ) #in A/m^2\n",
+ "J_s= J_s*10**-4 #in A/cm^2\n",
+ "V_OC = V_T*(math.log(1+(I_lambda/J_s))) #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Open circuit voltage is =%.2f volts ' %V_OC)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Open circuit voltage is =0.52 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Phi_o = 1.0*10**21 #in m^-2s^-1\n",
+ "alpha =1.0*10**5 #in m^-1\n",
+ "e= 1.6*10**-19 #in C\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "G_L1 = alpha*Phi_o #in m^-3s^-1\n",
+ "W = 26.0 #in \u00b5m\n",
+ "W = W * 10**-6 #in m\n",
+ "G_L2 = alpha*Phi_o*(math.e)**((-alpha)*W) #in m^-3s^-1\n",
+ "#temp=(1-math.e)**(-(alpha)*W)\n",
+ "J_L = e*Phi_o*(1-math.e**(-(alpha)*W)) #in A/m^2\n",
+ "J_L = J_L * 10**3*10**-4 #in mA/cm^2\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Photo current density is =%.1f mA/cm^2' %J_L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Photo current density is =14.8 mA/cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo8.ipynb b/Advance_Semiconductor_Devices/ChapterNo8.ipynb
new file mode 100755
index 00000000..47137bb2
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo8.ipynb
@@ -0,0 +1,576 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chapter No 8 : Metal Semiconductor Field Effect Transistor <h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "I_DSS = 15.0 #in mA\n",
+ "V_GS_off = -5.0 #in V\n",
+ "V_GS = 0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_D = I_DSS*((1-(V_GS/V_GS_off))**2) #in mA\n",
+ "V_GS = -1 #in V\n",
+ "I_D1 = I_DSS*((1.0-(V_GS/V_GS_off))**2) #in mA\n",
+ "V_GS = -4 #in V\n",
+ "I_D2 = I_DSS*((1-(V_GS/V_GS_off))**2) #in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('When V_GS=0, the drain current is =%.f mA ' %I_D)\n",
+ "print('When V_GS=-1V, the drain current is =%.2f mA ' %I_D1)\n",
+ "print('The interplanner spacing is =%.2f \u00c5' %I_D2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When V_GS=0, the drain current is =15 mA \n",
+ "When V_GS=-1V, the drain current is =9.60 mA \n",
+ "The interplanner spacing is =0.60 \u00c5\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_DSS = 20.0 #in mA\n",
+ "V_P = -8 #in V\n",
+ "g_mo = 5000.0 #in \u00b5s\n",
+ "V_GS = -4.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "\n",
+ "I_D = I_DSS*((1-(V_GS/V_P))**2) #in mA\n",
+ "g_m = g_mo*(1-(V_GS/V_P)) #in \u00b5s\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of drain current is =%.f mA ' %I_D)\n",
+ "print('The transconductance is =%.f \u00b5s' %g_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of drain current is =5 mA \n",
+ "The transconductance is =2500 \u00b5s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page No 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_D1 = 10.0 #in mA\n",
+ "V_GS = -12.0 #in V\n",
+ "V_GSth = -3.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "K = I_D1/( (V_GS-V_GSth)**2 ) #in mA/V\n",
+ "V_GS= -6 #in V\n",
+ "I_D = K*((V_GS-V_GSth)**2) #in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D is =%.2f mA ' %I_D)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is =1.11 mA \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page No 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_GS = -2.0 #in V\n",
+ "V_P = -5.0 #in V\n",
+ "V_DS = V_GS-V_P #in V\n",
+ "I_DSS = 8.0 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_D = I_DSS*((1-(V_GS/V_P))**2) #in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The minimum value of V_DS is =%.f V ' %V_DS)\n",
+ "print('The drain current is =%.2f mA' %I_D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum value of V_DS is =3 V \n",
+ "The drain current is =2.88 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_P = -2 #in V\n",
+ "I_DSS = 1.65 #in mA\n",
+ "I_D = 0.8 #in mA\n",
+ "V_DD = 24.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS = V_P*(1- math.sqrt(I_D/I_DSS) ) #in V\n",
+ "g_mo = -(2*I_DSS)/V_P #in mS\n",
+ "g_m = g_mo*(1-(V_GS/V_P)) #in mS\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_GS is =%.2f V ' %V_GS)\n",
+ "print('The value of g_m is =%.2f mS' %g_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_GS is =-0.61 V \n",
+ "The value of g_m is =1.15 mS\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_P = 5.0 #in V\n",
+ "I_DSS = -40.0 #in mA\n",
+ "I_D = -15.0 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS = V_P*(math.sqrt(I_D/I_DSS)-1 ) #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The gate source voltage is =%.2f V' %(V_GS*-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The gate source voltage is =1.94 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10, Page No 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_D1 = 1.9 #in mA\n",
+ "I_D2 = 1.0 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "del_I_D = I_D1-I_D2 #in mA\n",
+ "V_GS2 = -3.3 #in V\n",
+ "V_GS1 = -3.0 #in V\n",
+ "del_V_GS = V_GS1-V_GS2 #in V\n",
+ "g_m = del_I_D/del_V_GS #in mA/V\n",
+ "g_m = g_m * 10**3 #in \u00b5 mhos\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of transconductance is =%.f \u00b5 mhos ' %g_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of transconductance is =3000 \u00b5 mhos \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_DS1 = 14.0 #in V\n",
+ "V_DS2 = 5.0 #in V\n",
+ "del_V_DS = V_DS1-V_DS2 # in V\n",
+ "I_D1 = 3.3 #in mA\n",
+ "I_D2 = 3 # in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "del_I_D = I_D1-I_D2 #in mA\n",
+ "r_d = del_V_DS/del_I_D #in k ohms\n",
+ "print('The drain resistance is =%.f k ohms' %r_d)\n",
+ "V_GS1 = 0.4 #in V\n",
+ "V_GS2 = 0.1 #in V\n",
+ "del_V_GS = V_GS1-V_GS2 #in V\n",
+ "I_D1 = 3.3 #in mA\n",
+ "I_D2 = 0.71 #in mA\n",
+ "del_I_D = I_D1-I_D2 # in mA\n",
+ "g_m = del_I_D/del_V_GS # in mA/V\n",
+ "g_m = g_m * 10**3 # in \u00b5mhos\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The transconductance is =%.f \u00b5mhos ' %g_m)\n",
+ "Miu =r_d*10**3*g_m*10**-6\n",
+ "print('Amplification factor is =%.f ' %Miu)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The drain resistance is =30 k ohms\n",
+ "The transconductance is =8633 \u00b5mhos \n",
+ "Amplification factor is =259 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "q = 1.6*10**-19 #in C\n",
+ "N_D = 10**15*10**6 #electrons/m^3\n",
+ "a = 3*10**-4 #in cm\n",
+ "a=a*10**-2 #in m\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Epsilon_o = (36 * math.pi * 10**9)**-1\n",
+ "Epsilon = 12*Epsilon_o\n",
+ "V_P = (q*N_D*((a)**2))/(2*Epsilon) #in V\n",
+ "print('Pinch off voltage is =%.2f V ' %V_P)\n",
+ "V_GS = 1.0 #in V\n",
+ "V_P = 2.0 #in V\n",
+ "b = a*( 1-math.sqrt(V_GS/V_P) ) #in m\n",
+ "b = b * 10**6 #in \u00b5m\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The channel half width is =%.2f \u00b5m' %b)\n",
+ "# Note: In the book, the unit of channel half width is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pinch off voltage is =6.79 V \n",
+ "The channel half width is =0.88 \u00b5m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13 Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_DSS = 8.0 #in mA\n",
+ "V_P = -4.0 #in V\n",
+ "a = 3*10**-4 #in cm\n",
+ "N_D = 10**15 #in electrons/cm^3\n",
+ "I_D = 3.0 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS = V_P*( 1-math.sqrt(I_D/I_DSS) ) #in V\n",
+ "V_DS_sat = V_GS-V_P #in V\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_GS is =%.2f V' %V_GS)\n",
+ "print('The value of V_DS_sat is =%.2f V ' %V_DS_sat)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_GS is =-1.55 V\n",
+ "The value of V_DS_sat is =2.45 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 8.14 Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_P = -4 #in V\n",
+ "I_DSS = 9.0 #in mA\n",
+ "V_GS = -2.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_D = I_DSS*(( 1-(V_GS/V_P) )**2) #in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The drain current is =%.2f mA ' %I_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The drain current is =2.25 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 8.15 Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "I_DSS = 12.0 #in mA\n",
+ "V_P = -6.0 #in V\n",
+ "V_GS = -1.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "g_mo = (-2*I_DSS)/V_P #in mA/V\n",
+ "g_m = g_mo*(1-(V_GS/V_P)) #in mS\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of transconductance is =%.2f mS' %g_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of transconductance is =3.33 mS\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 8.16 Page No 336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "I_DSS = 10.0 #in mA\n",
+ "V_P = -5.0 #in V\n",
+ "V_GS = -2.5 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "g_m = ((-2*I_DSS)/V_P)*(1-(V_GS/V_P)) #in mS .... correction\n",
+ "I_D = I_DSS * ((1-(V_GS/V_P))**2) #in mA\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The transconductance is =%.f mS ' %g_m)\n",
+ "print('The drain current is =%.2f mA ' %I_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The transconductance is =2 mS \n",
+ "The drain current is =2.50 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/ChapterNo9.ipynb b/Advance_Semiconductor_Devices/ChapterNo9.ipynb
new file mode 100755
index 00000000..d2b16e2d
--- /dev/null
+++ b/Advance_Semiconductor_Devices/ChapterNo9.ipynb
@@ -0,0 +1,1684 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chapter No 9 : MOS Transistors<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_TN = 0.7 #in V\n",
+ "W = 45*10**-4 #in cm\n",
+ "L = 4.0 #in \u00b5m\n",
+ "L = L * 10**-4 #in cm\n",
+ "t_ox = 450 #in \u00c5\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "t_ox = t_ox*10**-8 #in cm\n",
+ "V_GS = 1.4 #in V\n",
+ "Miu_n = 700 #in cm^2/V-s\n",
+ "Epsilon_ox = (8.85*10**-14)*(3.9) #in F/cm\n",
+ "k_n = (W*Miu_n*Epsilon_ox)/(2*L*t_ox) #A/V^2\n",
+ "I_D = k_n*((V_GS-V_TN)**2) #in A\n",
+ "k_n=k_n*10**3\n",
+ "I_D=I_D*10**3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of k_n is : =%.2f mA/V^2' %k_n)\n",
+ "print('The current is =%.2f mA' %I_D)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of k_n is : =0.30 mA/V^2\n",
+ "The current is =0.15 mA\n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I_Don = 6.0 #in mA\n",
+ "I_Don= I_Don*10**-3 #in A\n",
+ "V_GSon = 8 #in V\n",
+ "V_GSth = 3 #in V\n",
+ "V_DD = 12.0 #in V\n",
+ "R_D= 2*10**3 #in \u03a9\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "k= I_Don/(V_GSon-V_GSth)**2 #in A/V^2\n",
+ "A= R_D**2 #assumed\n",
+ "B= 2*R_D*V_GSth-2*R_D*V_DD-1/k #assumed\n",
+ "C= (V_DD-V_GSth)**2 #assumed\n",
+ "\n",
+ "I_DQ= 0.0027940 #in A\n",
+ "V_DSQ= V_DD-I_DQ*R_D #in V\n",
+ "I_DQ=I_DQ*10**3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DQ is : =%.2f mA' %I_DQ)\n",
+ "print('The value of V_DSQ is : =%.2f volts ' %V_DSQ)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is : =2.79 mA\n",
+ "The value of V_DSQ is : =6.41 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_GS = 6.0 #in V\n",
+ "I_D = 4.0 #in mA\n",
+ "V_GSth = 2.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_DS = V_GS #in V\n",
+ "V_DD = 2*V_DS #in V\n",
+ "R_D = (V_DD-V_DS)/I_D #in k ohm\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_DD is =%.2f V ' %V_DD)\n",
+ "print('The value of R_D is =%.2f k ohm' %R_D)\n",
+ "print('The very high value for the gate to drain resistance is : 10 M\u03a9 ' )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_DD is =12.00 V \n",
+ "The value of R_D is =1.50 k ohm\n",
+ "The very high value for the gate to drain resistance is : 10 M\u03a9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_Don = 3*10**-3 \n",
+ "V_GSon = 10.0 #in V\n",
+ "V_GSth= 5.0 #in V\n",
+ "R2= 18*10**6 #in \u03a9\n",
+ "R1= 22*10**6 #in \u03a9\n",
+ "R_S=820 #in \u03a9\n",
+ "R_D=3*10**3 #in \u03a9\n",
+ "V_DD= 40.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G= V_DD*R2/(R1+R2) #in V\n",
+ "k= I_Don/(V_GSon-V_GSth)**2 #in A/V**2\n",
+ "A= R_S**2 #assumed\n",
+ "B= 2*R_S*V_GSth-2*R_S*V_G-1/k #assumed\n",
+ "C= (V_G-V_GSth)**2 #assumed\n",
+ "I_D= 0.0067246 #in A\n",
+ "I_DQ= I_D #in A\n",
+ "V_GSQ= V_G-I_D*R_S #in V\n",
+ "V_DSQ= V_DD-I_DQ*(R_D+R_S) #in V\n",
+ "I_DQ=I_DQ*10**3\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DQ is =%.2f mA' %I_DQ)\n",
+ "print('The value of V_GSQ is =%.2f volts ' %V_GSQ)\n",
+ "print('The value of V_DSQ is =%.2f volts ' %V_DSQ)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is =6.72 mA\n",
+ "The value of V_GSQ is =12.49 volts \n",
+ "The value of V_DSQ is =14.31 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_D= '0.3*(V_GS-V_P)^2' #given expression\n",
+ "V_DD= 30.0 #in V\n",
+ "V_P= 4 #in V\n",
+ "R_GS = 1.2*10**6 #in \u03a9\n",
+ "R_G = 1.2*10**6 #in \u03a9\n",
+ "I_D= 1.2 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Req= R_GS/(R_GS+R_G) #in \u03a9\n",
+ "R_D= 15.0 #in \u03a9\n",
+ "A= (R_D*Req)**2 #assumed\n",
+ "B= -(2*R_D*Req*(V_DD*Req-V_P)+1/0.3) #assumed\n",
+ "C= (V_DD*Req-V_P)**2 #assumed\n",
+ "I_DSQ= I_D #in mA\n",
+ "V_GS= (V_DD-I_D*R_D) #in V\n",
+ "V_DS= Req*V_GS #in V\n",
+ "\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DSQ is : =%.2f mA' %I_DSQ)\n",
+ "print('The value of V_GS is : =%.2f volts ' %V_GS)\n",
+ "print('The value of V_DS is : =%.2f volts ' %V_DS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DSQ is : =1.20 mA\n",
+ "The value of V_GS is : =12.00 volts \n",
+ "The value of V_DS is : =6.00 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "k = 0.1 #in mA/V^2\n",
+ "V_T = 1.0 # in V\n",
+ "R1 = 33.0 #in k ohm\n",
+ "R2 = 21.0 #in k ohm\n",
+ "V_DD = 6.0 #in V\n",
+ "R_D = 18 #in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G = (R2/(R2+R1))*V_DD #in V\n",
+ "V_S = 0 #in V\n",
+ "V_GS = V_G-V_S #in V\n",
+ "I_D = k*((V_GS-V_T)**2) #in mA\n",
+ "V_DS = V_DD - (I_D*R_D) #in V\n",
+ "V_DSsat = V_GS-V_T #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D is =%.2f mA ' %I_D)\n",
+ "print('The value of V_DS(sat) is =%.2f V ' %V_DS)\n",
+ "print('The value of V_DS(sat) is =%.2f V ' %V_DSsat)\n",
+ "\n",
+ "if V_DS > V_DSsat :\n",
+ " print('MOSFET is in saturation region ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is =0.18 mA \n",
+ "The value of V_DS(sat) is =2.80 V \n",
+ "The value of V_DS(sat) is =1.33 V \n",
+ "MOSFET is in saturation region \n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R2 = 18.0 #in k ohm\n",
+ "R1 = 33.0 #in k ohm\n",
+ "V_DD = 6.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G = (R2/(R1+R2))*V_DD #in V\n",
+ "V_S = V_DD # in V\n",
+ "V_SG = V_S-V_G #in V\n",
+ "k = 0.1\n",
+ "V_T = -1 #in V\n",
+ "I_D = k*((V_SG+V_T)**2) #in mA\n",
+ "R_D = 3.0 # in k ohm\n",
+ "V_SD = V_DD - (I_D*R_D) #in V\n",
+ "V_SDsat = V_SG+V_T #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_SG is =%.2f V ' %V_SG)\n",
+ "print('The value of I_D is =%.2f mA ' %I_D)\n",
+ "print('The value of V_SD is =%.2f V ' %V_SD)\n",
+ "print('The value of V_SD(sat) is =%.2f V ' %V_SDsat)\n",
+ "\n",
+ "if V_SD > V_SDsat :\n",
+ " print('The p MOSFET is indeed biased in the saturation region')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_SG is =3.88 V \n",
+ "The value of I_D is =0.83 mA \n",
+ "The value of V_SD is =3.51 V \n",
+ "The value of V_SD(sat) is =2.88 V \n",
+ "The p MOSFET is indeed biased in the saturation region\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9 Page No 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_G= 1.5 # in V\n",
+ "V_P= -3.0 # in V\n",
+ "R_S= 750.0 # in \u03a9\n",
+ "R_D= 1800 #in \u03a9\n",
+ "I_DSS= 6*10**-3 # in A\n",
+ "V_DD= 18 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "A= R_S**2\n",
+ "B=(2*R_S*(V_P-V_G)-V_P**2/I_DSS)\n",
+ "C=(V_P-V_G)**2\n",
+ "I_D= 0.0031170 #in A\n",
+ "I_DQ= I_D #in A\n",
+ "V_DS= V_DD-I_D*(R_D+R_S) # in V\n",
+ "V_DSQ= V_DS # in V\n",
+ "I_DQ=I_DQ*10**3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DQ is : =%.2f mA ' %I_DQ)\n",
+ "print('The value of V_DSQ is : =%.2f volts ' %V_DSQ)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is : =3.12 mA \n",
+ "The value of V_DSQ is : =10.05 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 94
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10 Page No 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_GS = 4.0 #in V\n",
+ "V_P = 2.0 #in V\n",
+ "R2 = 10.0 #in k ohm\n",
+ "R1 = 30.0 #in k ohm\n",
+ "R_D= 2.5 #in kohm\n",
+ "I_D= 15 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_D= I_D*10**-3 #in A\n",
+ "V_DD = 25 #in V\n",
+ "V_G = (V_DD/R_D)*V_DD/(R1+R2) #in V\n",
+ "R_S = (V_G-V_GS)/I_D # in ohm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of R_S is =%.f ohm ' %R_S)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R_S is =150 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11 Page No 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "k= 0.1 #in mA/V^2\n",
+ "V_T= 1 # in V\n",
+ "R2= 87*10**3 #in \u03a9\n",
+ "R1= 110*10**3 # in \u03a9\n",
+ "R_S=2 #in k\u03a9\n",
+ "R_D=2 #in k\u03a9\n",
+ "V_DD= 6 #in V\n",
+ "V_SS= 6 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G= (V_DD+V_SS)*R2/(R1+R2) # in V\n",
+ "A= R_S**2 # assumed\n",
+ "B= -(2*R_S*(V_G+V_SS-V_T)+1/k) # assumed\n",
+ "C= (V_G+V_SS-V_T)**2 #assumed\n",
+ "I_D= 2.6001587 # in mA\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D is : =%.2f mA' %I_D)\n",
+ "V_DS=V_DD+V_SS-I_D*R_D-I_D*R_S #in V\n",
+ "print('The value of V_DS is : =%.2f volts' %V_DS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is : =2.60 mA\n",
+ "The value of V_DS is : =1.60 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.12 Page No 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "k = 0.16 #in mA/V^2\n",
+ "V_T = 2.0 #in V\n",
+ "I_D = 0.5 #in mA\n",
+ "V_DD = 6.0 #in V\n",
+ "V_SS = -6 #in V\n",
+ "R_D = 10.0 #in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS = V_T + (math.sqrt(I_D/k)) #in V\n",
+ "R_S = 2 #in k ohm\n",
+ "V_S = (I_D*R_S) - V_DD # in V\n",
+ "V_G = V_GS+V_S # in V\n",
+ "I = 0.1*I_D #in mA\n",
+ "R2 = (V_G+V_DD)/I #in k ohm\n",
+ "print('The value of R2 is =%.2f k ohm' %R2)\n",
+ "R1 = (V_DD - V_G)/I #in k ohm\n",
+ "print('The value of R1 is =%.2f k ohm' %R1)\n",
+ "V_DS = (V_DD-V_SS) - (I_D*(R_S+R_D)) #in V\n",
+ "print('The value of V_DS is =%.2f V' %V_DS)\n",
+ "V_DSsat = V_GS-V_T # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_DS(sat) is =%.2f V' %V_DSsat)\n",
+ "if V_DS > V_DSsat :\n",
+ " print('The MOSFET is in saturation region')\n",
+ "\n",
+ " # Note: The value of R1 is in k ohm but in the book it is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is =95.36 k ohm\n",
+ "The value of R1 is =144.64 k ohm\n",
+ "The value of V_DS is =6.00 V\n",
+ "The value of V_DS(sat) is =1.77 V\n",
+ "The MOSFET is in saturation region\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.13 Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_DD = 6.0 #in V\n",
+ "V_D = 3.0 #in V\n",
+ "R_D = 10.0 #in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_DQ = (V_DD-V_D)/R_D #in mA\n",
+ "print('The value of I_DQ is =%.2f mA ' %I_DQ)\n",
+ "V_T = 0.8 #in V\n",
+ "k = 0.12 #in mA/V^2\n",
+ "V_GS = math.sqrt(I_DQ/k) + V_T #in V\n",
+ "V_S = -V_GS #in V\n",
+ "V_DS = V_D-V_S #in V\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_DS is =%.2f V' %V_DS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is =0.30 mA \n",
+ "The value of V_DS is =5.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 98
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.14 Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_D = 0.3 # in mA\n",
+ "k = 0.12 #in mA/V^2\n",
+ "V_T = 1.0 #in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS = V_T + (math.sqrt(I_D/k)) #in V\n",
+ "V_S = -V_GS #in V\n",
+ "V_DD = 6.0 #in V\n",
+ "V_D = 3.0 # in V\n",
+ "I_DQ = 0.3 #in mA\n",
+ "R_D = (V_DD-V_D)/I_DQ #in k ohm\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of R_D is =%.2f k ohm' %R_D)\n",
+ "V_DS = V_D - V_S #in V\n",
+ "print('The value of V_DS is =%.2f V' %V_DS)\n",
+ "V_DSsat = V_GS - V_T #in V\n",
+ "print('The value of V_DS(sat) is =%.2f V' %V_DSsat)\n",
+ "if V_DS > V_DSsat :\n",
+ " print('The MOSFET is in saturation region')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R_D is =10.00 k ohm\n",
+ "The value of V_DS is =5.58 V\n",
+ "The value of V_DS(sat) is =1.58 V\n",
+ "The MOSFET is in saturation region\n"
+ ]
+ }
+ ],
+ "prompt_number": 99
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.15 Page No 389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "k= 0.05 #in mA/V^2\n",
+ "V_T= 1 #in V\n",
+ "V_DD= 6 # in V\n",
+ "R_S= 9.1 #in k\u03a9\n",
+ "I_D= 0.3631765 # in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "A= R_S**2 # assumed\n",
+ "B=-(2*V_DD*R_S+1/k) # assumed\n",
+ "C= V_DD**2 #assumed\n",
+ "V_GS= V_DD-I_D*R_S #in V\n",
+ "V_DS= V_GS # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D is : =%.2f mA' %I_D)\n",
+ "print('The value of V_GS is : =%.2f volts' %V_GS)\n",
+ "print('The value of V_DS is : =%.2f volts' %V_DS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is : =0.36 mA\n",
+ "The value of V_GS is : =2.70 volts\n",
+ "The value of V_DS is : =2.70 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 100
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.16 Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "k1= 0.01 #in mA/V^2\n",
+ "k2= 0.05 #in mA/V^2\n",
+ "V_DD= 5 # in V\n",
+ "V_T1=1 # in V\n",
+ "V_T2=1 # in V\n",
+ "Vi= 5 #in V\n",
+ "Vo= 0.3485163 # in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "A=(k1+k2)\n",
+ "B=-(2*k1*(V_DD-V_T1)+2*k2*(Vi-V_T2))\n",
+ "C=k1*(V_DD-V_T1)**2\n",
+ "V_GS2= Vi # in V\n",
+ "V_DS2= Vo # in V\n",
+ "V_GS1= V_DD-Vo # in V\n",
+ "I_D1= k1*(V_GS1-V_T1)**2 #in mA\n",
+ "I_D2= I_D1 # in mA\n",
+ "print('Part (i) For Vi = 5 V')\n",
+ "print('The output voltage is : =%.2f volts' %Vo)\n",
+ "print('The value of I_D1 is : =%.2f mA' %I_D1)\n",
+ "print('The value of I_D2 is : =%.2f mA' %I_D2)\n",
+ "# Analysis for Vi= 1.5V\n",
+ "Vi= 1.5 #in V\n",
+ "Vo= V_DD-V_T1-math.sqrt(k2/k1)*(Vi-V_T2) # in V\n",
+ "I_D2= k2*(Vi-V_T2)**2 #in mA\n",
+ "I_D1= I_D2 #in mA\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Part (ii) For Vi = 1.5 V')\n",
+ "print('The output voltage is : =%.2f volts' %Vo)\n",
+ "print('The value of I_D1 is : =%.2f mA' %I_D1)\n",
+ "print('The value of I_D2 is : =%.2f mA' %I_D2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i) For Vi = 5 V\n",
+ "The output voltage is : =0.35 volts\n",
+ "The value of I_D1 is : =0.13 mA\n",
+ "The value of I_D2 is : =0.13 mA\n",
+ "Part (ii) For Vi = 1.5 V\n",
+ "The output voltage is : =2.88 volts\n",
+ "The value of I_D1 is : =0.01 mA\n",
+ "The value of I_D2 is : =0.01 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 101
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.17 Page No 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "k = 0.12 #in mA/V^2\n",
+ "V_T = -2.5 #in V\n",
+ "V_GS = 0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_D = k*((V_GS-V_T)**2) #in mA\n",
+ "print('The value of I_D is =%.2f mA' %I_D)\n",
+ "V_DD = 6 #in V\n",
+ "R_S = 4.7 #in k ohm \n",
+ "V_DS = V_DD -(I_D*R_S) #in V\n",
+ "print('The value of V_DS is =%.2f V' %V_DS)\n",
+ "V_S = 0 # in V \n",
+ "V_DSsat = V_S - V_T # in V\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_DS(sat) is =%.2f V' %V_DSsat)\n",
+ "if V_DS < V_DSsat :\n",
+ " print('The device is in the non saturation region')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is =0.75 mA\n",
+ "The value of V_DS is =2.47 V\n",
+ "The value of V_DS(sat) is =2.50 V\n",
+ "The device is in the non saturation region\n"
+ ]
+ }
+ ],
+ "prompt_number": 102
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.18 Page No 394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "k4 = 0.125 #in mA/V^2\n",
+ "k3 = k4 #in mA/V^2\n",
+ "k2 = k4 #in mA/V^2\n",
+ "k1 = 0.25 #in mA/V^2\n",
+ "V_T1 = 0.8 # in V\n",
+ "V_T2 = V_T1 # in V\n",
+ "V_T3 = V_T1 #in V\n",
+ "V_T4 = V_T1 #in V\n",
+ "V_SS = -5 #in V\n",
+ "V_DD = 5 #in V\n",
+ "R_D = 10 #in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS3 = ((math.sqrt(k4/k3) * (-V_SS - V_T4))+V_T3)/(1+math.sqrt(k4/k3)) #in V\n",
+ "I_Q = k2*((V_GS3-V_T2)**2) #in mA\n",
+ "I_D1 = I_Q #in mA\n",
+ "V_GS1 = V_T1 + (math.sqrt(I_D1/k1)) #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_GS1 is =%.2f V ' %V_GS1)\n",
+ "V_DS2 = (-V_SS-V_GS1) #in V\n",
+ "print('The value of V_DS2 is =%.2f V ' %V_DS2)\n",
+ "V_DS1 = V_DD - (I_Q*R_D) - (V_SS + V_DS2) #in V\n",
+ "print('The value of V_DS1 is =%.2f V' %V_DS1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_GS1 is =2.00 V \n",
+ "The value of V_DS2 is =3.00 V \n",
+ "The value of V_DS1 is =3.39 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 103
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.19 Page No 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R2 = 20.0 # in k ohm\n",
+ "R1 = 30.0 #in k ohm\n",
+ "R_D = 20 # in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "R_D=R_D*10**3 #in ohm\n",
+ "V_DD = 5 #in V\n",
+ "V_G = (R2/(R1+R2))*V_DD #in V\n",
+ "V_S = 0 #in V\n",
+ "V_GS = V_G #in V\n",
+ "k = 100*10**-6 #in A/V^2\n",
+ "V_T = 1 #in V\n",
+ "I_DQ = k*((V_GS-V_T)**2) #in A\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "V_DSQ = V_DD - (I_DQ*R_D) #in V \n",
+ "print('The value of V_DSQ is =%.f V ' %V_DSQ)\n",
+ "I_DQ=I_DQ*10**6\n",
+ "print('The value of I_DQ is =%.f \u00b5A' %I_DQ)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_DSQ is =3 V \n",
+ "The value of I_DQ is =100 \u00b5A\n"
+ ]
+ }
+ ],
+ "prompt_number": 104
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.20 Page No 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_P= -8 # in V\n",
+ "R_S= 2.4 #in k\u03a9\n",
+ "I_DSS= 8 #in mA\n",
+ "V_DD= 20 #in V\n",
+ "R_D= 6.2 #in k\u03a9\n",
+ "I_D= 1.7668305 #in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "A= R_S**2\n",
+ "B=(2*R_S*(V_P)-V_P**2/I_DSS)\n",
+ "C=(V_P)**2\n",
+ "I_DQ= I_D #in mA\n",
+ "V_GSQ= -I_D*R_S;\n",
+ "V_D= V_DD-I_D*R_D #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DQ is : =%.2f mA' %I_DQ)\n",
+ "print('The value of V_GSQ : =%.2f volts' %V_GSQ)\n",
+ "print('The value of V_D is : =%.2f volts' %V_D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is : =1.77 mA\n",
+ "The value of V_GSQ : =-4.24 volts\n",
+ "The value of V_D is : =9.05 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 105
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.21 Page No 396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "k= 75*10**-3 #in mA/V^2\n",
+ "Vth= -0.8 #in V\n",
+ "R2 = 100 #in k ohm\n",
+ "R1 = 100 #in k ohm\n",
+ "R_S= 6 # in k\u03a9\n",
+ "R_D= 3 # in k\u03a9\n",
+ "V_SS = 10 # in V\n",
+ "V_S = 2.0602803\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G = (R2/(R1+R2))*V_SS #in V\n",
+ "V_GS= V_G-V_S #in V\n",
+ "I_D= k*(V_GS-Vth)**2 # in V\n",
+ "V_DS= -V_SS+I_D*(R_D+R_S) # in V\n",
+ "V_D= I_D*R_D #in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D is : =%.2f mA ' %I_D)\n",
+ "print('The value of V_DS is =%.2f volts ' %V_DS)\n",
+ "print('The value of V_D is : =%.2f volts' %V_D)\n",
+ "print('The value of V_S is : =%.2f volts' %V_S)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is : =0.12 mA \n",
+ "The value of V_DS is =-8.93 volts \n",
+ "The value of V_D is : =0.36 volts\n",
+ "The value of V_S is : =2.06 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 106
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.22 Page No 396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_T = 1.0 # in V\n",
+ "k = 160*10**-6 # in A/V^2\n",
+ "I_DQ = 160*10**-6 # in A\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS = V_T + math.sqrt(I_DQ/k) #in V\n",
+ "V_DD = 5 # in V\n",
+ "V_DSQ = 3 # in V\n",
+ "R_D = (V_DD - V_DSQ)/(I_DQ) # in ohm\n",
+ "R_D = R_D * 10**-3 # in k ohm\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of R_D is =%.2f k ohm' %R_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R_D is =12.50 k ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 107
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.23 Page No 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_DD= 12 # in V\n",
+ "V_T= 2 # in V\n",
+ "kn= 0.5 # in mA/V^2\n",
+ "R1 = 2.2 # in M ohm\n",
+ "R2 = 1.8 # in M ohm\n",
+ "R_S= 1.5 # in k\u03a9\n",
+ "R_D= 3.9 # in k\u03a9\n",
+ "I_D= 1.2237155 # in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G = (R2/(R1+R2))*V_DD # in V\n",
+ "V_GS= V_G-I_D*R_S # V\n",
+ "I_D= I_D-kn*(V_GS-V_T)**2 # in mA\n",
+ "I_DQ= I_D #in mA\n",
+ "V_DSQ= V_DD-I_D*(R_D+R_S) # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DQ is : =%.2f mA ' %I_DQ)\n",
+ "print('The value of V_DSQ is : =%.2f volts' %V_DSQ)\n",
+ "V_GS= V_G-I_D*R_S # V\n",
+ "V_DSsat= V_GS-V_T # in V\n",
+ "print('The value of V_DS %.2f is greater than the value of ' %V_DSQ)\n",
+ "print('V_DSsat %.2f So the MOSFET is in saturation region ' %V_DSsat)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is : =-0.00 mA \n",
+ "The value of V_DSQ is : =12.00 volts\n",
+ "The value of V_DS 12.00 is greater than the value of \n",
+ "V_DSsat 3.40 So the MOSFET is in saturation region \n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.24 Page No 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "kn= 0.5 # in mA/V^2\n",
+ "V_T= 1 # in V\n",
+ "R2 = 40 # in k ohm\n",
+ "R1 = 60 # in k ohm\n",
+ "R_S= 1 # in k ohm\n",
+ "R_D= 2 # in k ohm\n",
+ "V_DD = 5 # in V\n",
+ "V_SS = -5 # in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_R2 = (R2/(R2+R1))*(V_DD-V_SS) # in V\n",
+ "V_G = V_R2 - V_DD # in V\n",
+ "V_S= I_D*R_S+V_SS # in V\n",
+ "V_GS= V_G-V_S # in V\n",
+ "I_D= 1.3542487 # in mA\n",
+ "I_DQ= I_D #in mA\n",
+ "V_S= I_D*R_S+V_SS # in V\n",
+ "V_GS= V_G-V_S # in V\n",
+ "V_DSQ= V_DD-V_SS-I_D*(R_D+R_S) # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_DQ is :=%.2f mA ' %I_DQ)\n",
+ "print('The value of V_GS is : =%.2f volts ' %V_GS)\n",
+ "print('The value of V_DSQ is : =%.2f volts' %V_DSQ)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_DQ is :=1.35 mA \n",
+ "The value of V_GS is : =-1.35 volts \n",
+ "The value of V_DSQ is : =5.94 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 109
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.25 Page No 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "R_S1 = 100*10**-3 # in k ohm\n",
+ "R_S2 = 100*10**-3 # k ohm\n",
+ "R_S = R_S1+R_S2 #in k ohm\n",
+ "R_D= 1.8 # in k ohm\n",
+ "I_DSS= 12 # in mA\n",
+ "Vp= -3.5 # in V\n",
+ "V_DD= 22 # in V\n",
+ "rd= 25 # in k ohm\n",
+ "R_L= 47 # in k ohm\n",
+ "I_D= 5.573521 # in mA\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_GS= -I_D*R_S # in V\n",
+ "I_D= I_D-I_DSS*(1-V_GS/Vp)**2 # in mA\n",
+ "print('The value of I_D is : =%.2f mA' %I_D)\n",
+ "V_GS= -I_D*R_S # in V\n",
+ "print('The value of V_GS is : =%.2f volts ' %V_GS)\n",
+ "V_DS= V_DD-I_D*(R_D+R_S) # in V\n",
+ "print('The value of V_DS is : =%.2f volts ' %V_DS)\n",
+ "gmo= -2*I_DSS/Vp # in mS\n",
+ "gm= gmo*(1-V_GS/Vp) # in mS\n",
+ "miu= gm*rd\n",
+ "Av= -miu*R_D*R_L/(R_D+R_L)/(rd+R_D*R_L/(R_D+R_L)+(1+miu)*R_S1)\n",
+ "print('The value of Av is : =%.2f ' %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is : =-0.000000 mA\n",
+ "The value of V_GS is : =0.00 volts \n",
+ "The value of V_DS is : =22.00 volts \n",
+ "The value of Av is : =-6.76 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.26 Page No 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_T = 1 # in V\n",
+ "k = 0.5 # in mA/V^2\n",
+ "R2 = 40 # in k ohm\n",
+ "R1 = 60 # in k ohm\n",
+ "R_S= 1 # in k ohm\n",
+ "R_D= 2 # in k ohm\n",
+ "V_DD = 5 # in V\n",
+ "V_G = (R2/(R2+R1))*V_DD # in V\n",
+ "V_GS= V_G-I_D*R_S # in V\n",
+ "I_D= 0.2679492 # in mA\n",
+ "V_GS= V_G-I_D*R_S # in V\n",
+ "V_DS= V_DD-I_D*(R_D+R_S) # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D in mA is : =%.2f ' %I_D)\n",
+ "print('The value of V_GS in volts is :=%.2f ' %V_GS)\n",
+ "print('The value of V_DS in volts is : =%.2f ' %V_DS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D in mA is : =0.27 \n",
+ "The value of V_GS in volts is :=-0.27 \n",
+ "The value of V_DS in volts is : =4.20 \n"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.27 Page No 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "R_D = 7.5 # in k ohm\n",
+ "V_T = -0.8 # in V\n",
+ "k = 0.2 # in mA/V^2\n",
+ "R2 = 50 # in ohm\n",
+ "R1 = 50 # in ohm\n",
+ "V_DD = 5 # in V\n",
+ "V_S = 5 # in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_G = (R2/(R2+R1))*V_DD # in V\n",
+ "V_GS = V_G - V_S # in V\n",
+ "I_D = k*((V_GS-V_T)**2) # in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Drain current in is =%.2f mA' %I_D)\n",
+ "V_SD = V_DD - (I_D*R_D) # in V\n",
+ "print('Source to drain voltage is =%.2f V' %V_SD)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Drain current in is =3.53 mA\n",
+ "Source to drain voltage is =-21.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.28 Page No 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "I_Don = 5*10**-3 # in A\n",
+ "V_GSon = 6 # in V\n",
+ "V_GSth = 3 # in V\n",
+ "k = I_Don/(V_GSon-V_GSth)**2 # in A/V^2 \n",
+ "R2 = 6.8 #in M ohm\n",
+ "R1 = 10 #in M ohm\n",
+ "R_S= 750 # in ohm\n",
+ "R_D= 2.2*10**3 # in ohm\n",
+ "V_DD = 24 # in V\n",
+ "R_S = 750 # in ohm\n",
+ "V_G= R2*V_DD/(R1+R2) # in V\n",
+ "V_GS= V_G-I_D*R_S # in V\n",
+ "I_D= I_D-k*(V_GS-V_GSth)**2\n",
+ "I_D= 0.0049660 # in A\n",
+ "I_DQ= I_D # in A\n",
+ "V_GS= V_G-I_D*R_S # in V\n",
+ "V_GSQ= V_GS # in V\n",
+ "V_DSQ= V_DD-I_DQ*(R_D+R_S) # in V\n",
+ "I_D=I_D*10**3\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of I_D is : =%.2f mA ' %I_D)\n",
+ "print('The value of V_GSQ is : =%.2f volts ' %V_GSQ)\n",
+ "print('The value of V_DSQ is : =%.2f volts ' %V_DSQ)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I_D is : =4.97 mA \n",
+ "The value of V_GSQ is : =5.99 volts \n",
+ "The value of V_DSQ is : =9.35 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.29 Page No 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "I_Don = 4*10**-3 # in A\n",
+ "V_GSon = 6 # in V\n",
+ "V_GSth = 3 # in V\n",
+ "V_DS= 6 # in V\n",
+ "I_D= I_Don # in A\n",
+ "k = I_Don/((V_GSon-V_GSth)**2) # in A/V^2\n",
+ "V_GS= I_D-k*(V_GS-V_GSth)**2\n",
+ "V_GS= 6 # in V\n",
+ "V_DD= 2*V_DS # in V\n",
+ "R_D= (V_DD-V_GS)/I_D # in ohm\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_GS is : =%.f volts ' %V_GS)\n",
+ "print('The value of V_DD is : =%.f volts ' %V_DD)\n",
+ "print('The value of R_D is : =%.f k\u03a9' %R_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_GS is : =6 volts \n",
+ "The value of V_DD is : =12 volts \n",
+ "The value of R_D is : =1500 k\u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.31 Page No 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_DD = 5 # in V\n",
+ "V_T= 1 # in V\n",
+ "k= 1 # in mA/V^2\n",
+ "R1 = 1 # in M ohm\n",
+ "R2 = 1 # in M ohm\n",
+ "R_S= 2 # in k ohm\n",
+ "R_D= 2 # in k ohm\n",
+ "I1 = V_DD/(R1+R2) # in A\n",
+ "print('The value of I1 is : =%.2f \u00b5A' %I1)\n",
+ "V_A = (R2/(R2+R1))*V_DD # in V\n",
+ "print('The value of V_A and V_G is : =%.2f volts ' %V_A)\n",
+ "I_D= 0.4243061\n",
+ "V_C= I_D*R_S # in V\n",
+ "V_GS= V_A-V_C # in V\n",
+ "print('The value of I_D is : =%.2f mA' %I_D)\n",
+ "V_B= V_DD-I_D*R_D # in V\n",
+ "V_C= I_D*R_S # in V\n",
+ "V_DS= V_B-V_C # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_B is : =%.2f volts ' %V_B)\n",
+ "print('The value of V_C is : =%.2f volts ' %V_C)\n",
+ "print('The value of V_DS is : =%.2f volts' %V_DS)\n",
+ "# Note: In the book, the calculated values are wrong, this is why the answer in the book is wrong.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I1 is : =2.00 \u00b5A\n",
+ "The value of V_A and V_G is : =0.00 volts \n",
+ "The value of I_D is : =0.42 mA\n",
+ "The value of V_B is : =4.15 volts \n",
+ "The value of V_C is : =0.85 volts \n",
+ "The value of V_DS is : =3.30 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 115
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.32 Page No 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_DSS = 12 # in mA\n",
+ "I_DSS= I_DSS*10**-3 # in A\n",
+ "V_P = -3 # in V\n",
+ "r_d = 45 # in k ohm\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r_d= r_d*10**3 # in ohm\n",
+ "g_m = I_DSS/abs(V_P) # in S\n",
+ "#Part (i)\n",
+ "R1 = 91 # in M ohm\n",
+ "R1=R1*10**6 #in ohm\n",
+ "R2 = 10 # in M ohm\n",
+ "R2= R2*10**6 # in ohm\n",
+ "Ri= R1*R2/(R1+R2) # in ohm\n",
+ "Ri=Ri*10**6\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of Ri is : =%.f Mohm' %(Ri/(10**12)))\n",
+ "#Part (ii)\n",
+ "R_S = 1.1 #in k ohm\n",
+ "R_S = R_S * 10**3 # in ohm\n",
+ "R_o= (R_S*1/g_m)/(R_S+1/g_m) # in ohm\n",
+ "print('The value of R_C is : =%.2f ohm' %R_o)\n",
+ "\n",
+ "# Part (iii)\n",
+ "R_desh_o= R_o*r_d/(R_o+r_d) # in ohm\n",
+ "print('The value of R_desh_o is : =%.2f ohm ' %R_desh_o)\n",
+ "# Part (iv)\n",
+ "Av= g_m*(R_S*r_d/(R_S+r_d))/(1+g_m*(R_S*r_d/(R_S+r_d)))\n",
+ "print('The value of Av is : =%.2f ' %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ri is : =9 Mohm\n",
+ "The value of R_C is : =203.70 ohm\n",
+ "The value of R_desh_o is : =202.79 ohm \n",
+ "The value of Av is : =0.81 \n"
+ ]
+ }
+ ],
+ "prompt_number": 116
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.34 Page No 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_S2 = -2 # in V\n",
+ "V_GS2 = -V_S2 # in V\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "I_DS2 = (V_GS2-1)**2 # in mA\n",
+ "I = 2 # in mA\n",
+ "I_DS1 = I-I_DS2 # in mA\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The current flow through M1 MOSFET is =%.f mA' %I_DS1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current flow through M1 MOSFET is =1 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 117
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.35 Page No 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_DD= 10 # in V\n",
+ "I_D= 0.4*10**3 # in A\n",
+ "W= 100 # in \u00b5m\n",
+ "L= 10 # in \u00b5m\n",
+ "uACox= 20 # in A/V**2\n",
+ "Vt= 2 # in V\n",
+ "R= 0.015\n",
+ "V_GS= V_DD-I_D*R # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of R is : =%.f k\u03a9 ' %(R*10**3))\n",
+ "V_D= V_DD-I_D*R # in V\n",
+ "print('The value of V_D is : =%.f volts ' %V_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R is : =15 k\u03a9 \n",
+ "The value of V_D is : =4 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No 9.36 Page No 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "V_GSth= 2 # in V\n",
+ "k= 2*10**-4 # in A/V^2\n",
+ "V_DD= 12 # in V\n",
+ "R_D= 5*10**3 # in ohm\n",
+ "I_D= 0.0014597\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V_DS= V_DD-I_D*R_D # in V\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The value of V_DS is : =%.1f volts ' %V_DS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of V_DS is : =4.7 volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 119
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/README.txt b/Advance_Semiconductor_Devices/README.txt
new file mode 100755
index 00000000..eec99ae9
--- /dev/null
+++ b/Advance_Semiconductor_Devices/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Santosh Pawar
+Course: mca
+College/Institute/Organization: ASM institute of computer studies
+Department/Designation: MCA
+Book Title: Advance Semiconductor Devices
+Author: S. Sharma
+Publisher: S. K. Kataria & Sons, New Delhi
+Year of publication: 2012
+Isbn: 9789350142158
+Edition: 1 \ No newline at end of file
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter1.png b/Advance_Semiconductor_Devices/screenshots/Chapter1.png
new file mode 100755
index 00000000..510483a4
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter1.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter3.png b/Advance_Semiconductor_Devices/screenshots/Chapter3.png
new file mode 100755
index 00000000..2409666c
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter3.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter7.png b/Advance_Semiconductor_Devices/screenshots/Chapter7.png
new file mode 100755
index 00000000..1f5c8c08
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter7.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_1.png b/Advance_Semiconductor_Devices/screenshots/Chapter_1.png
new file mode 100755
index 00000000..63da4ae4
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_1.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_1_1.png b/Advance_Semiconductor_Devices/screenshots/Chapter_1_1.png
new file mode 100755
index 00000000..61672f6e
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_1_1.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_1_2.png b/Advance_Semiconductor_Devices/screenshots/Chapter_1_2.png
new file mode 100755
index 00000000..61672f6e
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_1_2.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_2.png b/Advance_Semiconductor_Devices/screenshots/Chapter_2.png
new file mode 100755
index 00000000..882e620f
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_2.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_2_1.png b/Advance_Semiconductor_Devices/screenshots/Chapter_2_1.png
new file mode 100755
index 00000000..61ce28c6
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_2_1.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_2_2.png b/Advance_Semiconductor_Devices/screenshots/Chapter_2_2.png
new file mode 100755
index 00000000..61ce28c6
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_2_2.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_3.png b/Advance_Semiconductor_Devices/screenshots/Chapter_3.png
new file mode 100755
index 00000000..c132e867
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_3.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_3_1.png b/Advance_Semiconductor_Devices/screenshots/Chapter_3_1.png
new file mode 100755
index 00000000..93ff3b44
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_3_1.png
Binary files differ
diff --git a/Advance_Semiconductor_Devices/screenshots/Chapter_3_2.png b/Advance_Semiconductor_Devices/screenshots/Chapter_3_2.png
new file mode 100755
index 00000000..93ff3b44
--- /dev/null
+++ b/Advance_Semiconductor_Devices/screenshots/Chapter_3_2.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter01.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter01.ipynb
new file mode 100755
index 00000000..7760d8e3
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter01.ipynb
@@ -0,0 +1,499 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0f8515032ad257111ffef42eb71b2510ec7d92768034e754ca14b473e010b968"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1. Basic Elasticity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Pg. No.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# variable declaration\n",
+ "p = 1.5; #pressure inside vessel (N/mm^2)\n",
+ "d = 2*10**3; #diameter of vessel (mm)\n",
+ "t = 20; #thickness of plate (mm)\n",
+ "theta = 60; #plane's inclination to axis of vessel (degree)\n",
+ "load = 2500*10**3; #axial tensile load (N)\n",
+ "\n",
+ "# Longitudinal stress\n",
+ "sigma_x=p*d/4/t;\n",
+ "print \"\\nLongitudinal stress due to internal pressure = %5.2f N/mm^2\" %(sigma_x)\n",
+ "\n",
+ "#circumferential stress\n",
+ "sigma_y=p*d/2/t;\n",
+ "print \"\\nCircumferential stress due to internal pressure = %5.2f N/mm^2\" %(sigma_y)\n",
+ "\n",
+ "#axial load\n",
+ "sigma_x_axial=load/(math.pi*d*t);\n",
+ "print \"\\ndirect stress due to axial load = %5.2f N/mm^2\"%(sigma_x_axial)\n",
+ "\n",
+ "sigma_x=sigma_x+sigma_x_axial; #total longitudinal stress\n",
+ "\n",
+ "#direct stress and shear stress on inclined plane AB\n",
+ "#reference Fig 1.9 pg no14, equation 1.8,1.9 pg no 13\n",
+ "\n",
+ "sigma_n=sigma_x*math.pow(math.cos(math.radians(90-theta)),2)+sigma_y*math.pow(math.sin(math.radians(90-theta)),2)\n",
+ "print \"\\ndirect stress on inclined plane AB = %5.2f N/mm^2\"%(sigma_n)\n",
+ "\n",
+ "tau=(sigma_x-sigma_y)/2*math.sin(math.radians(2*(90-theta)))\n",
+ "print \"\\nshear stress on plane AB = %5.2f N/mm^2\"%(tau)\n",
+ "\n",
+ "#maximumm shear stress (theta=45 degree)\n",
+ "theta=45\n",
+ "tau=(sigma_x-sigma_y)/2*math.sin(math.radians(2*(90-theta)))\n",
+ "print \"\\nmaximum shear stress on plane AB = %5.2f N/mm^2\"%(tau)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Longitudinal stress due to internal pressure = 37.50 N/mm^2\n",
+ "\n",
+ "Circumferential stress due to internal pressure = 75.00 N/mm^2\n",
+ "\n",
+ "direct stress due to axial load = 19.89 N/mm^2\n",
+ "\n",
+ "direct stress on inclined plane AB = 61.80 N/mm^2\n",
+ "\n",
+ "shear stress on plane AB = -7.62 N/mm^2\n",
+ "\n",
+ "maximum shear stress on plane AB = -8.80 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Pg. No.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "load=50*10**3 #axial load (N)\n",
+ "d=60 #diameter (mm)\n",
+ "t=1.5 #offset distance from center (mm)\n",
+ "T=1200*10**3 #torque applied on a point (N.mm)\n",
+ "theta=60 #angle made by plane wrt axis of cylinder(degree)\n",
+ "\n",
+ "#compressive stress due to axial load\n",
+ "area=math.pi*math.pow(d/2,2) #cross section area\n",
+ "sigma_x_a=load/area\n",
+ "print \"\\ncompressive stress due to axial load = %5.1f N/mm^2\"%sigma_x_a\n",
+ "\n",
+ "#compressive stress due to bending moment\n",
+ "#area moment of inertia\n",
+ "M=load*t\n",
+ "I=math.pi*d**4/64\n",
+ "\n",
+ "sigma_x_b=M*d/2*(1/I)\n",
+ "print \"\\ncompressive stress due to bending moment = %5.1f N/mm^2\" %sigma_x_b\n",
+ "\n",
+ "#total compressive stress\n",
+ "sigma_x=sigma_x_a+sigma_x_b\n",
+ "\n",
+ "#shear stress due to torque Ref example 3.1 equation (iv) pg no 73\n",
+ "# tau=Tr/J\n",
+ "J=math.pi*d**4/32 #torsion constant\n",
+ "tau_xy=T*d/2/J\n",
+ "print \"\\nshear stress due to torque = %5.1f N/mm^2\" %tau_xy\n",
+ "\n",
+ "#direct and shear on inclined plane, ref eq 1.8,1.9\n",
+ "sigma_y=0\n",
+ "sigma_n=-sigma_x*math.pow(math.cos(math.radians(90-theta)),2)-tau_xy*math.sin(math.radians(2*(90-theta)))\n",
+ "print \"\\ndirect stress on inclined plane = %3.1f N/mm^2\"%sigma_n\n",
+ "\n",
+ "tau=-sigma_x/2*math.sin(math.radians(2*(90-theta)))+tau_xy*math.cos(math.radians(2*(90-theta)))\n",
+ "print \"\\nshear stress on inclined plane = %3.1f N/mm^2\"%tau\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "compressive stress due to axial load = 17.7 N/mm^2\n",
+ "\n",
+ "compressive stress due to bending moment = 3.5 N/mm^2\n",
+ "\n",
+ "shear stress due to torque = 28.3 N/mm^2\n",
+ "\n",
+ "direct stress on inclined plane = -40.4 N/mm^2\n",
+ "\n",
+ "shear stress on inclined plane = 5.0 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Pg. No.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import numpy\n",
+ "import math\n",
+ "#import matplotlib\n",
+ "%pylab inline\n",
+ "#from pylab import * #change comment to above line to see undocked graph, all values will be visible as mouse-pointer moves\n",
+ "#variable declaration\n",
+ "sigma_x=160 #stress in x direction (N/mm^2)\n",
+ "sigma_y=-120 #stress in y direction (N/mm^2)\n",
+ "sigma=200 #stress on inclined plane (N/mm^2)\n",
+ "\n",
+ "tau_xy=((sigma-sigma_x)*(sigma-sigma_y))**0.5\n",
+ "print \"\\nallowable shear stress, tau_xy = %4.1f N/mm^2 \"%tau_xy\n",
+ "\n",
+ "coeff=[1,-(sigma_x+sigma_y),sigma_x*sigma_y-tau_xy**2]\n",
+ "sigma=numpy.roots(coeff)\n",
+ "print \"\\nprincipal stresses, sigma_I = %3.0f N/mm^2 sigma_II = %3.0f N/mm^2\"%(sigma[0],sigma[1])\n",
+ "\n",
+ "tau_max=(abs(sigma[0])+abs(sigma[1]))/2\n",
+ "print \"\\nmaximum shear stress, tau_max = %3.0f N/mm^2\"%tau_max\n",
+ "\n",
+ "#plotting Mohr circle\n",
+ "x_cent=(sigma_x+sigma_y)/2\n",
+ "y_cent=0\n",
+ "\n",
+ "X1=(sigma_x,tau_xy)\n",
+ "X2=(sigma_y,-tau_xy)\n",
+ "\n",
+ "radius=(math.hypot(X2[0]-X1[0], X2[1] - X1[1]))/2\n",
+ "\n",
+ "cir=linspace(0,2*pi,100)\n",
+ "plot(radius*cos(cir)+x_cent,radius*sin(cir)+y_cent,'r')\n",
+ "plot(sigma_x,tau_xy,'ro',sigma_y,-tau_xy,'ro',x_cent,y_cent,'b+',sigma[0],0,'bo',sigma[1],0,'bo',20,tau_max,'go')\n",
+ "text(sigma_x+10,tau_xy,'Q1')\n",
+ "text(sigma_y+10,-tau_xy,'Q2')\n",
+ "text(20,tau_max+10,r'$\\tau_{max}$')\n",
+ "text(-150,0,r'$\\sigma_2$')\n",
+ "text(200,10,r'$\\sigma_1$')\n",
+ "text(-20,+10,'O')\n",
+ "text(30,-20,'C')\n",
+ "#plot([sigma_y,tau_xy],[sigma_x,-tau_xy],'r-')\n",
+ "xlabel(r'$\\sigma$')\n",
+ "ylabel(r'$\\tau$')\n",
+ "title('Mohr Cirle')\n",
+ "axis('equal')\n",
+ "grid(True)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "\n",
+ "allowable shear stress, tau_xy = 113.1 N/mm^2 \n",
+ "\n",
+ "principal stresses, sigma_I = 200 N/mm^2 sigma_II = -160 N/mm^2\n",
+ "\n",
+ "maximum shear stress, tau_max = 180 N/mm^2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nd2oJCQmm/T///LN29913a97e3tpLL72kR9gV5uPjo3l6emrBwcFacHCwNnLkSNN9Rsjvm2++0Tw8\nPLQ6deporq6uWs+ePU33GSG/661Zs0bz8/PTvL29tWnTpukdTqU9+eSTWosWLTQXFxfNw8NDmz9/\nvnbmzBmtW7dumq+vr9ajRw8tNzfX9PjyjqGt2rx5s+bk5KQFBQWZ3nNr1641TI579uzRQkJCtKCg\nIC0wMFB75513NE3TLJafDEgUQghhFrtt2hJCCGEbpJAIIYQwixQSIYQQZpFCIoQQwixSSIQQQphF\nCokQQgizSCERQghhFikkQgghzCKFRAghhFmkkAhhZd9++y19+vTBzc2NBx98kI8//ljvkISwKJue\n/VcIe3f06FFWrVrFqlWrWLFiBZqm8eijj+odlhAWJWckQljRokWLTOvLnzlzhkaNGukckRCWJ4VE\nCCvKzc3F09MTgK1btxIWFqZzREJYnsz+K4QVHThwgB9//BFN07j33nsJDAzUOyQhLE4KiRBCCLNI\n05YQQgizSCERQghhFikkQgghzCKFRAghhFmkkAghhDCLFBIhhBBmkUIihBDCLFJIhBBCmOX/A2IJ\nxZVZr61+AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa137240>"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Pg. No.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#variable declaration\n",
+ "sigma_x=83 # stress in x direction (N/mm^2)\n",
+ "sigma_y=65 # stress in y direction (N/mm^2)\n",
+ "E=200000 # Young's Modulus (N/mm^2)\n",
+ "v=0.3 # poisson's ratio\n",
+ "\n",
+ "# strains in x,y and z directions\n",
+ "epsln_x=1.0/E*(sigma_x-v*sigma_y)\n",
+ "epsln_y=1.0/E*(sigma_y-v*sigma_x)\n",
+ "epsln_z=-v/E*(sigma_x+sigma_y)\n",
+ "print \"\\nstrain in x direction, epsln_x = %5.3e\"%epsln_x\n",
+ "print \"\\nstrain in y direction, epsln_y = %5.3e\"%epsln_y\n",
+ "print \"\\nstrain in z direction, epsln_z = %5.3e\"%epsln_z\n",
+ "\n",
+ "tau_max=(sigma_x-sigma_y)/2\n",
+ "print \"\\nmaximum shear stress, tau_max = %2.2f N/mm^2\"%tau_max\n",
+ "\n",
+ "gama_max=2*(1+v)*tau_max/E\n",
+ "print \"\\nmaximum shear strain, y_max = %2.2e \" %gama_max"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "strain in x direction, epsln_x = 3.175e-04\n",
+ "\n",
+ "strain in y direction, epsln_y = 2.005e-04\n",
+ "\n",
+ "strain in z direction, epsln_z = -2.220e-04\n",
+ "\n",
+ "maximum shear stress, tau_max = 9.00 N/mm^2\n",
+ "\n",
+ "maximum shear strain, y_max = 1.17e-04 \n"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Pg. No.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#import matplotlib.pyplot as plt\n",
+ "%pylab inline\n",
+ "#variable declaration\n",
+ "sigma_x=60 #stress in x direction (N/mm^2)\n",
+ "sigma_y=-40 #stress in y direction (N/mm^2)\n",
+ "tau_xy=50 #shear stress (N/mm^2)\n",
+ "E=2*10**5 #Young's Modulus (N/mm^2)\n",
+ "v=0.3 #poisson's ratio\n",
+ "\n",
+ "#strains in x and y direction\n",
+ "epsln_x=1.0/E*(sigma_x-v*sigma_y)\n",
+ "epsln_y=1.0/E*(sigma_y-v*sigma_x)\n",
+ "print \"\\nstrains in x and y directions, epsi_x =%4.1e epsi_y =%4.1e \"%(epsln_x,epsln_y) \n",
+ "\n",
+ "G=E/2/(1+v)\n",
+ "print \"\\nshear modulus, G = %6.1f\"%G\n",
+ "\n",
+ "gama_xy=tau_xy/G\n",
+ "print \"\\nshear strain, gama_xy = %4.1e\"%gama_xy\n",
+ "\n",
+ "#principal strains\n",
+ "epsln_I=(epsln_x+epsln_y)/2+1.0/2*((epsln_x-epsln_y)**2+gama_xy**2)**0.5\n",
+ "epsln_II=(epsln_x+epsln_y)/2-1.0/2*((epsln_x-epsln_y)**2+gama_xy**2)**0.5\n",
+ "print \"\\nprincipal strains, epsln_I = %4.2e epsln_II = %4.2e\"%(epsln_I,epsln_II)\n",
+ "\n",
+ "#inclination\n",
+ "theta=1.0/2*math.atan(gama_xy/(epsln_x-epsln_y))\n",
+ "print \"\\ninclination to the plane on which sigma_x acts, theta = %4.1f or %4.1f\"%(theta*180/math.pi,theta*180/math.pi+90)\n",
+ "\n",
+ "#plotting Mohr circle\n",
+ "x_cent=(epsln_x+epsln_y)/2\n",
+ "y_cent=0\n",
+ "\n",
+ "X1=(epsln_x,gama_xy/2)\n",
+ "X2=(epsln_y,-gama_xy/2)\n",
+ "\n",
+ "radius=(math.hypot(X2[0]-X1[0], X2[1] - X1[1]))/2\n",
+ "print radius\n",
+ "cir=linspace(0,2*pi,100)\n",
+ "plot(radius*cos(cir)+x_cent,radius*sin(cir),'r')\n",
+ "plot(epsln_x,gama_xy/2,'ro',epsln_y,-gama_xy/2,'ro',x_cent,y_cent,'b+',epsln_II,0,'go',epsln_I,0,'go')\n",
+ "text(epsln_x,gama_xy/2,'Q1')\n",
+ "text(epsln_y,-gama_xy/2,'Q2')\n",
+ "text(-0.00050,0,r'$\\epsilon_2$')\n",
+ "text(.00050,0,r'$\\epsilon_1$')\n",
+ "text(-.000060,0.00002,'O')\n",
+ "text(0,0,'C')\n",
+ "xlabel(r'$\\epsilon$')\n",
+ "ylabel(r'$\\gamma$')\n",
+ "title('Mohr Cirle')\n",
+ "axis('equal')\n",
+ "grid(True)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "\n",
+ "strains in x and y directions, epsi_x =3.6e-04 epsi_y =-2.9e-04 \n",
+ "\n",
+ "shear modulus, G = 76923.1\n",
+ "\n",
+ "shear strain, gama_xy = 6.5e-04\n",
+ "\n",
+ "principal strains, epsln_I = 4.95e-04 epsln_II = -4.25e-04\n",
+ "\n",
+ "inclination to the plane on which sigma_x acts, theta = 22.5 or 112.5\n",
+ "0.000459619407771\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xcc10a20>"
+ ]
+ }
+ ],
+ "prompt_number": 185
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Pg. No.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#variable declaration\n",
+ "epsln_a=1000*10**(-6) #readings of strain gauges \n",
+ "epsln_b=-200*10**(-6) #straing gauges 'a' and 'c' are\n",
+ "epsln_c=-300*10**(-6) #in line and perpendicular to axis of bar\n",
+ "d=50 #diameter of bar (mm)\n",
+ "E=70000 #Young's modulus (N/mm^2)\n",
+ "v=0.3 #poisson's ratio\n",
+ "\n",
+ "#principal strains\n",
+ "epsln_I=1.0/2*(epsln_a+epsln_c)+(1.0/2**0.5)*((epsln_a-epsln_b)**2+(epsln_c-epsln_b)**2)**0.5\n",
+ "epsln_II=1.0/2*(epsln_a+epsln_c)-(1.0/2**0.5)*((epsln_a-epsln_b)**2+(epsln_c-epsln_b)**2)**0.5\n",
+ "print \"\\nfirst principal strain, epsln_I = %4.3e\"%epsln_I\n",
+ "print \"\\nsecond principal strain, epsln_II = %4.3e\"%epsln_II\n",
+ "\n",
+ "#principal stresses\n",
+ "sigma_I=E/(1-v**2)*(epsln_I+v*epsln_II)\n",
+ "sigma_II=E/(1-v**2)*(v*epsln_I+epsln_II)\n",
+ "print \"\\nfirst principal stress, sigma_I= %4.1f N/mm^2\"%sigma_I #mistake in book\n",
+ "print \"\\nsecond principal stress, sigma_II= %4.1f N/mm^2\"%sigma_II\n",
+ "\n",
+ "sigma_x=sigma_I+sigma_II\n",
+ "print \"\\nstress in x direction,sigma_x = %4.1f N/mm^2\"%sigma_x\n",
+ "\n",
+ "#axial tensile load calculation\n",
+ "A=math.pi*d**2/4\n",
+ "P=sigma_x*A\n",
+ "print \"\\naxial load, P = %4.1f kN\"%(P/1000)\n",
+ "\n",
+ "tau_xy=1.0/2*((sigma_x/2-sigma_II)**2*4-sigma_x**2)**0.5\n",
+ "print \"\\nshear stress, tau_xy = %4.1f N/mm^2\"%tau_xy\n",
+ "\n",
+ "#torque calculation\n",
+ "J=math.pi*d**4/32\n",
+ "T=tau_xy*J/d*2\n",
+ "print \"\\ntorque applied on circular bar, T = %4.1f kNm\"%(T/10**6)\n",
+ "\n",
+ "sigma_x=E*epsln_a\n",
+ "print \"\\naxial stress from classical stress strain relationship, sigma_x =%4.0f N/mm^2\"%sigma_x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "first principal strain, epsln_I = 1.201e-03\n",
+ "\n",
+ "second principal strain, epsln_II = -5.015e-04\n",
+ "\n",
+ "first principal stress, sigma_I= 80.8 N/mm^2\n",
+ "\n",
+ "second principal stress, sigma_II= -10.8 N/mm^2\n",
+ "\n",
+ "stress in x direction,sigma_x = 70.0 N/mm^2\n",
+ "\n",
+ "axial load, P = 137.4 kN\n",
+ "\n",
+ "shear stress, tau_xy = 29.6 N/mm^2\n",
+ "\n",
+ "torque applied on circular bar, T = 0.7 kNm\n",
+ "\n",
+ "axial stress from classical stress strain relationship, sigma_x = 70 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter04.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter04.ipynb
new file mode 100755
index 00000000..365fa5fb
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter04.ipynb
@@ -0,0 +1,95 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6a67de7af4fe617483b9aefeefdb01f122e2016e5ab212db494104a83b9deeda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Pg.No.106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "sum_FAFlBL=1263.6*10**6 # (N.mm)\n",
+ "sum_FAFlDL=880*10**6 # (N.mm)\n",
+ "E=200000 # young's modulus (N/mm^2)\n",
+ "A=1800 # area of each member (mm^2)\n",
+ "\n",
+ "#eqn 4.23 We=Wi\n",
+ "del_B=sum_FAFlBL/A/E\n",
+ "print \"\\ndeflection at point B =%2.2f mm\\n\"%(del_B)\n",
+ "\n",
+ "del_D=sum_FAFlDL/A/E\n",
+ "print \"deflection at point D =%2.2f mm\\n\"%(del_D)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "deflection at point B =3.51 mm\n",
+ "\n",
+ "deflection at point D =2.44 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "ext_load=30 #external load(kN)\n",
+ "\n",
+ "#eqn 30*4*del_vB/3=F_BA*del_vB\n",
+ "F_BA=ext_load*4/3\n",
+ "print \"\\nforce in the struss AB is = %3.2f kN\\n\"%(F_BA)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "force in the struss AB is = 40.00 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter05.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter05.ipynb
new file mode 100755
index 00000000..80ef0fbb
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter05.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:63d249c5c7d8f61cc0f4f00c6cd8c5c2324721f135176069c7c632118f5681cc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05: Energy methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Pg.No.116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "A=1800 # cross sectional area (mm^2)\n",
+ "E=200000 #youngs modulus (N/mm^2)\n",
+ "sum_FLdFdP_B=1268*10**6 #(N.mm^2)\n",
+ "sum_FLdFdP_D=880*10**6 #(N.mm^2)\n",
+ "\n",
+ "del_Bv=sum_FLdFdP_B/A/E\n",
+ "del_Dh=sum_FLdFdP_D/A/E\n",
+ "\n",
+ "print \"\\ndeflection at point B =%2.2f mm\\n\"%(del_Bv)\n",
+ "print \"deflection at point D =%2.2f mm\\n\"%(del_Dh)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "deflection at point B =3.52 mm\n",
+ "\n",
+ "deflection at point D =2.44 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Pg.No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "a=np.array([[4.32,2.7],[2.7,11.62]])\n",
+ "b=np.array([27.1,48.11])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "print \"\\nX1 = %1.2f kN & R2 = %1.2f kN\\n\"%(x[0],x[1]) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X1 = 4.31 kN & R2 = 3.14 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Pg.No.144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "E=200000 #youngs modulus (N/mm^2)\n",
+ "A=200 #cross sectional area of each member (mm^2)\n",
+ "a=7*10**-6 #linear coefficient of heating (/C)\n",
+ "L=3*10**3 #length of BC (mm)\n",
+ "T=30 #temperature of truss (C)\n",
+ "sum_f2L=48000\n",
+ "\n",
+ "expansion=L*T*a\n",
+ "a11=sum_f2L/A/E\n",
+ "X1=-0.63/a11 #compatibility condition\n",
+ "print \"\\nX1 = %5.0f N\\n\"%(X1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X1 = -525 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12 Pg.No.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "def_C=-1.05-.6 #deflection at C (mm)\n",
+ "L=300 #length of cantilever (mm)\n",
+ "\n",
+ "theta_B=math.atan(def_C/L)\n",
+ "print \"\\ndeflection at C = %2.3f degree\\n\"%(theta_B*180/math.pi) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "deflection at C = -0.315 degree\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter06.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter06.ipynb
new file mode 100755
index 00000000..5195a30b
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter06.ipynb
@@ -0,0 +1,112 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:902d8cc266f9fb597a0d00273b10ab788d226cbd969bb1e960b465c84a750eef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06: Matrix methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Pg.No.205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import solve, symbols, pprint\n",
+ "from sympy import diff\n",
+ "x,y=symbols('x,y')\n",
+ "\n",
+ "E=200000 #youngs modulus (N/mm^2)\n",
+ "nu=0.3 #poissons ratio\n",
+ "u1=0.001\n",
+ "u2=0.003\n",
+ "u3=-0.003 #displacements of corners (m)\n",
+ "u4=0\n",
+ "v1=-0.004\n",
+ "v2=-0.002\n",
+ "v3=0.001\n",
+ "v4=0.001\n",
+ "\n",
+ "\n",
+ "a=np.array([[1,-2,-1,2],[1,2,-1,-2],[1,2,1,2],[1,-2,1,-2]])\n",
+ "b=np.array([u1,u2,u3,u4])\n",
+ "alpha=np.linalg.solve(a,b)\n",
+ "alpha1=alpha[0]\n",
+ "alpha2=alpha[1]\n",
+ "alpha3=alpha[2]\n",
+ "alpha4=alpha[3]\n",
+ "\n",
+ "a=np.array([[1,-2,-1,2],[1,2,-1,-2],[1,2,1,2],[1,-2,1,-2]])\n",
+ "b=np.array([v1,v2,v3,v4])\n",
+ "alpha=np.linalg.solve(a,b)\n",
+ "alpha5=alpha[0]\n",
+ "alpha6=alpha[1]\n",
+ "alpha7=alpha[2]\n",
+ "alpha8=alpha[3]\n",
+ "\n",
+ "u=alpha1+alpha2*x+alpha3*y+alpha4*x*y\n",
+ "v=alpha5+alpha6*x+alpha7*y+alpha8*x*y\n",
+ "\n",
+ "ex=diff(u,x)\n",
+ "ey=diff(v,y)\n",
+ "Yxy=diff(u,y)+diff(v,x)\n",
+ "\n",
+ "ex=-0.000125\n",
+ "ey=.002\n",
+ "Yxy=-0.0015\n",
+ "\n",
+ "sigma_x=E/(1-nu**2)*(ex+nu*ey)\n",
+ "sigma_y=E/(1-nu**2)*(ey+nu*ex)\n",
+ "print \"longitudinal stress in x direction = %3.1f N/mm^2\"%(sigma_x)\n",
+ "print \"longitudinal stress in y direction = %3.1f N/mm^2\"%(sigma_y)\n",
+ "\n",
+ "T_xy=E/2/(1+nu)*Yxy\n",
+ "print \"shear stress at the center of plate = %3.1f N/mm^2\"%(T_xy)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "longitudinal stress in x direction = 104.4 N/mm^2\n",
+ "longitudinal stress in y direction = 431.3 N/mm^2\n",
+ "shear stress at the center of plate = -115.4 N/mm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter08.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter08.ipynb
new file mode 100755
index 00000000..65ccbf76
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter08.ipynb
@@ -0,0 +1,154 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d4ab160ecba8745ef027bb167a7abbd97977707c483b1d0a639c7f068e2016a8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08: Columns"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Pg.No.280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "E=75000 #youngs modulus(N/mm^2)\n",
+ "G=21000 #shear modulus (N/mm^2)\n",
+ "L=2 #length of column (m)\n",
+ "l1=75 #flange length (mm)\n",
+ "l2=37.5 #total length(mm)\n",
+ "t=2.5 #thickness(mm)\n",
+ "\n",
+ "A=t*(2*l2+l1) #observed from Fig 8.17\n",
+ "\n",
+ "#chapter 16 Ixx=bd^3/12+Ab^2\n",
+ "Ixx=2*l2*t*l2**2+t*l1**3/12\n",
+ "Iyy=2*t*l2**3/12\n",
+ "\n",
+ "I0=Ixx+Iyy\n",
+ "\n",
+ "#eqn 18.11 J=SUM((s*t^3)/3)\n",
+ "J=2*l2*t**3/3+l1*t**3/3\n",
+ "\n",
+ "Gama=t*l2**3*l1**2/24\n",
+ "Iyy=0.22*10**5\n",
+ "L=2*10**3\n",
+ "P_CRxx=math.pi**2*E*Ixx/L**2\n",
+ "P_CRyy=math.pi**2*E*Iyy/L**2\n",
+ "P_CRo=A/I0*(G*J+math.pi**2*E*Gama/L**2)\n",
+ "\n",
+ "print \"P_CRxx = %3.2e N\\n\"%(P_CRxx)\n",
+ "print \"P_CRyy = %0.1e N\\n\"%(P_CRyy)\n",
+ "print \"P_CRO = %0.2e N\\n\"%(P_CRo)\n",
+ "\n",
+ "print \"therefore buckling in the column due to axial load=%0.1e N\\n\"%(P_CRyy)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P_CRxx = 6.51e+04 N\n",
+ "\n",
+ "P_CRyy = 4.1e+03 N\n",
+ "\n",
+ "P_CRO = 2.22e+04 N\n",
+ "\n",
+ "therefore buckling in the column due to axial load=4.1e+03 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Pg.No.282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import solve, symbols, pprint\n",
+ "from sympy import diff\n",
+ "P=symbols('P')\n",
+ "\n",
+ "E=70000 #youngs modulus (N/mm^2)\n",
+ "G=30000 #shear modulus (N/mm^2)\n",
+ "x_S=-76.2 #position of shear center(mm)\n",
+ "l1=l2=100 #lengths (mm)\n",
+ "t=2 #thickness(mm)\n",
+ "\n",
+ "x_bar=2*t*l1*50/(3*l1)/2\n",
+ "\n",
+ "A=600 #area (mm^2)\n",
+ "Ixx=1.17*10**6 #second moment of area (mm^4)\n",
+ "Iyy=0.67*10**6 #second moment of area (mm^4)\n",
+ "I0=5.32*10**6 # total second moment of area (mm^4)\n",
+ "J=800 #torsion constant (mm^4)\n",
+ "Gama=2488*10**6 #(mm^6)\n",
+ "L=10**3 #(mm)\n",
+ "\n",
+ "P_CRxx=math.pi**2*E*Ixx/L**2\n",
+ "P_CRyy=math.pi**2*E*Iyy/L**2\n",
+ "P_CRo=A/I0*(G*J+math.pi**2*E*Gama/L**2)\n",
+ "\n",
+ "fun=P**2*(1-A*x_S**2/I0)-P*(P_CRxx+P_CRo)+P_CRxx*P_CRo\n",
+ "solution = solve(fun, P)\n",
+ "print \"lowest value of critical load = %1.2e N\\n\"%(min(solution))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest value of critical load = 1.68e+05 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter09.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter09.ipynb
new file mode 100755
index 00000000..119bd5b2
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter09.ipynb
@@ -0,0 +1,97 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:47a0669d4632eab71f162a005cd6d69531f951e47ad9f34d928b679209ff2467"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09: Thin plates"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Pg.No.310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "h=400 #height of structure (mm)\n",
+ "l1=300 #length of small section (mm)\n",
+ "L=1200 #length of whole structure (mm)\n",
+ "E=70000 #youngs modulus (N/mm^2)\n",
+ "A_f=350 #area of flange (mm^2)\n",
+ "A_s=300 # area of stiffeners (mm^2)\n",
+ "t=2 #thickness (mm)\n",
+ "I=2000 #second moment of area (mm^4)\n",
+ "w=5\n",
+ "#eqn 9.29 tan(a)^4=(1+td/2A_F)/(1+td/2A_S)\n",
+ "alpha=math.atan(((1+t*h/2/A_f)/(1+t*l1/A_s))**0.25)\n",
+ "\n",
+ "#eqn 9.19\n",
+ "F_T=w*L/h+w/2/math.tan((alpha))\n",
+ "\n",
+ "#eqn 9.25 M_max=w*b^2*tan(a)/12/d\n",
+ "M_max=w*10**3*l1**2*math.tan(alpha)/12/h\n",
+ "print \"maximum value of bending moment = %1.1e N.mm \\n\"%(M_max)\n",
+ "\n",
+ "#eqn 9.23 P=w*b*tan(a)/d\n",
+ "P=w*l1*math.tan(alpha)/h\n",
+ "print \"compressive load in stiffener = %1.1f kN \\n\"%(P)\n",
+ "\n",
+ "#eqn 9.24 le=d/(4-2b/d)^0.5\n",
+ "le=h/(4-2*l1/h)**0.5\n",
+ "print \"equivalent length of stiffener = %3.1f mm\\n\"%(le)\n",
+ "\n",
+ "#eqn 8.7 Pcr=pi^2*E*I/le^2\n",
+ "P_CR=math.pi**2*E*I/le**2\n",
+ "print \"buckling load of a stiffener = %2.1f kN \\n\"%(P_CR) #approx. value in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of bending moment = 8.6e+04 N.mm \n",
+ "\n",
+ "compressive load in stiffener = 3.4 kN \n",
+ "\n",
+ "equivalent length of stiffener = 253.0 mm\n",
+ "\n",
+ "buckling load of a stiffener = 21589.8 kN \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter12.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter12.ipynb
new file mode 100755
index 00000000..63daef6d
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter12.ipynb
@@ -0,0 +1,111 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:217c546250d736c4a5ad9b469b73a9b7209b5ff1e5db79ce32388be8ee290870"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Structural components of aircraft"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Pg.No. 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "D=4 #diameter of rivet(mm)\n",
+ "t_skin=2.5 #thickness of fuselage skin(mm)\n",
+ "t_strap=1.2 #thickness of straps (mm)\n",
+ "T=120 #shear stress (N/mm^2)\n",
+ "A=math.pi*D**2/4 #rivet area\n",
+ "Pfb=2*A*T\n",
+ "\n",
+ "b=Pfb/t_skin/12.5/10+4\n",
+ "print \"allowable rivet spacing = %2.1f mm \\n\"%(b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "allowable rivet spacing = 13.7 mm \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Pg.No.392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "l1=20 #distace between A&D (mm)\n",
+ "l2=25 #distace between C&D (mm)\n",
+ "l3=75 #distace between C&force location (mm)\n",
+ "P=5 #external load(kN)\n",
+ "r=(l1**2+l2**2)**0.5\n",
+ "sum_r2=2*l1**2+4*r**2\n",
+ "\n",
+ "#eqn 12.6 S=Pe*r/Sum(r2)\n",
+ "Pe=P*l3\n",
+ "S=Pe/sum_r2*r\n",
+ "print \"Resultant shear force in the A and B = %2.2f kN\\n\"%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant shear force in the A and B = 2.45 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter14.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter14.ipynb
new file mode 100755
index 00000000..f9eb3f9d
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter14.ipynb
@@ -0,0 +1,226 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b89c31a3eb13c71dc64b90ec9c5fad56707d91451229ae687a102dc5e6c2ee23"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Airframe loads"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Pg.No.407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "W=45 #weight of aircraft (kN)\n",
+ "m=45/9.8 #mass of aircraft(k-kg)\n",
+ "a=3*9.8 #deceleration due to cable (ms^-2)\n",
+ "m1=4.5/9.8 #weight of aircraft after AA in Diagram (k-kg)\n",
+ "v0=25 #touch down speed (m/s)\n",
+ "alpha=10 #center line angle with ground (degree)\n",
+ "\n",
+ "T=m*a/math.cos(math.radians(alpha))\n",
+ "print \"tension in cable = %3.1f kN\\n\"%(T)\n",
+ "\n",
+ "R=W+T*math.sin(math.radians(alpha))\n",
+ "print \"load on each undercarriage strut = %2.1f kN\\n\"%(R/2/math.cos(math.radians(20)))\n",
+ "\n",
+ "N=T+m1*9.8*math.sin(math.radians(alpha))-m1*a*math.cos(math.radians(alpha))\n",
+ "S=m1*a*math.sin(math.radians(alpha))+m1*9.8*math.cos(math.radians(alpha))\n",
+ "print \"N and S forces are shown in Fig 14.4 N=%2.2f kN S=%2.2f kN\\n\"%(N,S)\n",
+ "\n",
+ "s=v0**2/2/a\n",
+ "print \"length of deck covered = %2.2f m\\n\"%(s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tension in cable = 137.1 kN\n",
+ "\n",
+ "load on each undercarriage strut = 36.6 kN\n",
+ "\n",
+ "N and S forces are shown in Fig 14.4 N=124.57 kN S=6.78 kN\n",
+ "\n",
+ "length of deck covered = 10.63 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Pg.No.409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "g=9.8\n",
+ "W=250 #weight of aircraft(kN)\n",
+ "m=250/g #mass of aircraft (K-kg)\n",
+ "I_CG=5.65*10**8 #inertia about center of mass(N.s^2.mm)\n",
+ "v0=3.7 #vertical velocity of undercarriage(m/s)\n",
+ "R_h=400 #horizontal reaction (kN)\n",
+ "R_v=1200 #vertical reaction (kN)\n",
+ "l=1 # nose wheel distance from ground (m)\n",
+ "d=2.5 # distance of CG from ground (m)\n",
+ "\n",
+ "#horizontal equilibrium\n",
+ "ax=R_h/m\n",
+ "\n",
+ "#vertical equilibrium\n",
+ "ay=(R_v-W)/m\n",
+ "\n",
+ "\n",
+ "alpha=(R_v*l+R_h*d)*10**6/I_CG\n",
+ "print \"angular acceleration of aircraft = %2.1f rad/s^2 \\n\"%(alpha)\n",
+ "\n",
+ "#v=v0+ay*t\n",
+ "t=v0/ay\n",
+ "print \"time taken for vertical velocity to become zero = %1.3f s\\n\"%(t)\n",
+ "\n",
+ "#w=w0+a*t\n",
+ "w=a*t\n",
+ "print \"angular velocity of aircraft = %1.2f rad/s \\n\"%(w)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular acceleration of aircraft = 3.9 rad/s^2 \n",
+ "\n",
+ "time taken for vertical velocity to become zero = 0.099 s\n",
+ "\n",
+ "angular velocity of aircraft = 0.39 rad/s \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Pg.No.414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "W=8000 #weight of aircraft (N)\n",
+ "n=4.5 # wing loading\n",
+ "S=14.5 #wing area (m^2)\n",
+ "V=60 #speed (m/s)\n",
+ "rho=1.223 #density (kg/m^3)\n",
+ "alpha=13.75 #from Fig 14.8 (a)\n",
+ "C_Mcg=0.075 #from Fig 14.8 (a)\n",
+ "c=1.35 #mean chord (m)\n",
+ "\n",
+ "\n",
+ "L=n*W\n",
+ "C_L=L/(0.5*rho*V**2*S)\n",
+ "print \"lift coefficient of aircraft = %1.3f \\n\"%(C_L)\n",
+ "\n",
+ "#from Fig 14.8 (b)\n",
+ "l=4.18*math.cos(math.radians(alpha-2))+0.31*math.sin(math.radians(alpha-2))\n",
+ "print \"length of tail arm = %1.3f m \\n\"%(l)\n",
+ "\n",
+ "\n",
+ "C_L=C_L-c/l*C_Mcg\n",
+ "print \"lift coefficient =%1.3f \\n\"%(C_L)\n",
+ "\n",
+ "alpha=13.3\n",
+ "l=4.18*math.cos(math.radians(alpha-2))+0.31*math.sin(math.radians(alpha-2))\n",
+ "print \"Now tail arm length = %2.3f m\\n\"%(l)\n",
+ "\n",
+ "L=0.5*rho*V**2*S*C_L\n",
+ "print \"Lift = %5.1f N\\n\"%(L)\n",
+ "\n",
+ "P=n*W-35000\n",
+ "print \"Tail Load = %5.1f N\\n\"%(P)\n",
+ "\n",
+ "D=0.5*rho*V**2*S*0.0875\n",
+ "print \"Drag = %5.1f N\\n\"%(D)\n",
+ "print \"Forward inertia force = %5.1f N\\n\"%(D) #eqn 14.13"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lift coefficient of aircraft = 1.128 \n",
+ "\n",
+ "length of tail arm = 4.156 m \n",
+ "\n",
+ "lift coefficient =1.103 \n",
+ "\n",
+ "Now tail arm length = 4.160 m\n",
+ "\n",
+ "Lift = 35222.3 N\n",
+ "\n",
+ "Tail Load = 1000.0 N\n",
+ "\n",
+ "Drag = 2793.0 N\n",
+ "\n",
+ "Forward inertia force = 2793.0 N\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter15.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter15.ipynb
new file mode 100755
index 00000000..a849c8c6
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter15.ipynb
@@ -0,0 +1,76 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1bd6512f5b9ca8155cc1e9c3b04ad8207681499e095afaf4830a217017e989ea"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Fatigue"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1 Pg.No.445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "from sympy import symbols\n",
+ "import math\n",
+ "\n",
+ "#eqn 15.30 K=S(pi*a)^1/2*alpha\n",
+ "S=175 #stress range (N/mm^2)\n",
+ "K=1708 #fracture toughness (n/mm^3/2)\n",
+ "alpha=1 #constant\n",
+ "n=4 #constant\n",
+ "C=40*10**-15 #rate of crack growth (mm/cycle)\n",
+ "ai=0.1 #initial crack length\n",
+ "\n",
+ "alpha_f=K**2/S**2/math.pi\n",
+ "\n",
+ "\n",
+ "Nf=2/C/(n-2)/(S*math.pi**0.5)**n*(1/ai**((n-2)/2)-1/alpha_f**((n-2)/2))\n",
+ "print \"Number of cycles to failure = %5.0f cycles\\n\"%(Nf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of cycles to failure = 26919 cycles\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter16.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter16.ipynb
new file mode 100755
index 00000000..72ff7ec3
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter16.ipynb
@@ -0,0 +1,280 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c3ab3016805321c8a28748b1937c77b2125357dfc661b20013df0624feaa950e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Bending of open and closed thin-walled beams \n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Pg. No.456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fig 16.6 Dimensions\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "l=300 #length of I section (mm)\n",
+ "b=200 #width of I section beam (mm)\n",
+ "w1=25 #width of center section of I beam (mm)\n",
+ "w2=20 #width of upper and lower section of I beam (mm)\n",
+ "M=100*10**6 #moment applied in vertical plane (N*mm)\n",
+ "\n",
+ "#second moment of area Ixx\n",
+ "# Ixx=b*l^3/12\n",
+ "Ixx=b*l**3/12-(b-w1)*(l-w2-w2)**3/12\n",
+ "print \"\\nSecond moment of area of I section beam = %5.3e mm^4\"%(Ixx)\n",
+ "\n",
+ "#sigma_z=My/I reference 16.9\n",
+ "# @ \n",
+ "y=150\n",
+ "sigma_z=M*y/Ixx\n",
+ "print \"\\ndirect stress at the top of the I section (y=150) = %3.2f N/mm^2 (compression)\"%(sigma_z)\n",
+ "\n",
+ "# @\n",
+ "y=-150\n",
+ "sigma_z=M*y/Ixx\n",
+ "print \"\\ndirect stress at the bottom of the I section (y=-150) = %3.2f N/mm^2 (tension)\"%(sigma_z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Second moment of area of I section beam = 1.937e+08 mm^4\n",
+ "\n",
+ "direct stress at the top of the I section (y=150) = 77.45 N/mm^2 (compression)\n",
+ "\n",
+ "direct stress at the bottom of the I section (y=-150) = -77.45 N/mm^2 (tension)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Pg. No.457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fig 16.6 reference\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "l=300 #length of I section (mm)\n",
+ "b=200 #width of I section beam (mm)\n",
+ "w1=25 #width of center section of I beam (mm)\n",
+ "w2=20 #width of upper and lower section of I beam (mm)\n",
+ "M=100*10**6 #moment applied in vertical plane (N*mm)\n",
+ "\n",
+ "# second moment of area\n",
+ "# Iyy=wb^3/12\n",
+ "Iyy=2*20*200**3/12+260*25**3/12\n",
+ "print \"\\nSecond moment of area of I section beam = %5.3e mm^4\"%(Iyy)\n",
+ "\n",
+ "#sigma_z=Mx/I \n",
+ "# @ \n",
+ "x=100\n",
+ "sigma_z=M*x/Iyy\n",
+ "print \"\\ndirect stress at the top of the I section (y=150) = %3.2f N/mm^2 (compression)\"%(sigma_z)\n",
+ "\n",
+ "# @\n",
+ "x=-100\n",
+ "sigma_z=M*x/Iyy\n",
+ "print \"\\ndirect stress at the bottom of the I section (y=-150) = %3.2f N/mm^2 (tension)\"%(sigma_z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Second moment of area of I section beam = 2.701e+07 mm^4\n",
+ "\n",
+ "direct stress at the top of the I section (y=150) = 370.30 N/mm^2 (compression)\n",
+ "\n",
+ "direct stress at the bottom of the I section (y=-150) = -370.30 N/mm^2 (tension)\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Pg.No.458 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "l=300 #length of I section (mm)\n",
+ "b=200 #width of I section beam (mm)\n",
+ "w1=25 #width of center section of I beam (mm)\n",
+ "w2=20 #width of upper and lower section of I beam (mm)\n",
+ "M=100*10**6 #moment applied in vertical plane (N*mm)\n",
+ "theta=30 #angle at which bending moment is applied(degree)\n",
+ "\n",
+ "Mx=M*math.cos(math.radians(30))\n",
+ "My=M*math.sin(math.radians(30))\n",
+ "\n",
+ "# sigma_z=Mx/Ixx*y+My/Iyy*x\n",
+ "# @top left hand corner\n",
+ "y=150\n",
+ "x=-100\n",
+ "sigma_z=Mx/Ixx*y-My/Iyy*x \n",
+ "print \"\\ndirect stress at the top left hand corner = %3.1f N/mm^2 (tension)\"%(sigma_z)\n",
+ "\n",
+ "# @ top right hand corner\n",
+ "x=100\n",
+ "y=150\n",
+ "sigma_z=Mx/Ixx*y-My/Iyy*x \n",
+ "print \"\\ndirect stress at the top right hand corner = %3.1f N/mm^2 (compression)\"%(sigma_z)\n",
+ "\n",
+ "alpha=math.atan(My*Ixx/Mx/Iyy)\n",
+ "print \"\\ninclination = %3.1f degree\\n\"%(alpha*180/math.pi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "direct stress at the top left hand corner = 252.2 N/mm^2 (tension)\n",
+ "\n",
+ "direct stress at the top right hand corner = -118.1 N/mm^2 (compression)\n",
+ "\n",
+ "inclination = 76.4 degree\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4 Pg.No.466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# reference Fig 16.13\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "#variable declaration\n",
+ "l=80 #length of one section (mm)\n",
+ "w=8 #thickness of each section (mm)\n",
+ "b1=40 #width of one section (mm)\n",
+ "b2=80 #width of other section (mm)\n",
+ "Mx=1500*10*3 #bending moment (N.mm)\n",
+ "My=0\n",
+ "\n",
+ "#centroid\n",
+ "# in this example C is taken at top surface x axis aligned to AB and y axis is \n",
+ "# aligned to E surface \n",
+ "y_bar=((b1+b2)*w*w/2+l*w*(w+l/2))/(l*w+(b1+b2)*w)\n",
+ "print \"\\ny coordinate of centroid = %3.1f mm\"%(y_bar)\n",
+ "\n",
+ "x_bar=((b1+b2)*w*((b1+b2)/2-b1+w/2)+l*w*(w/2))/(l*w+(b1+b2)*w)\n",
+ "print \"\\nx coordinate of centroid = %3.1f mm\"%(x_bar)\n",
+ "\n",
+ "#second area of moment\n",
+ "#IB=IC+Ab^2 IB=moment about any point,IC=moment about centroid, b=distace between both points\n",
+ "Ixx=(b1+b2)*w**3/12+(b1+b2)*w*(y_bar-w/2)**2+w*l**3/12+l*w*(w+l/2-y_bar)**2\n",
+ "print \"\\nsecond moment of area about x axis = %3.2e mm^4\"%(Ixx)\n",
+ "\n",
+ "Iyy=w*(b1+b2)**3/12+(b1+b2)*w*((b1+b2)/2-b1+w/2-x_bar)**2+l*w**3/12+l*w*(x_bar-w/2)**2\n",
+ "print \"\\nsecond moment of area about y axis = %3.2e mm^4\"%(Iyy)\n",
+ "\n",
+ "Ixy=(b1+b2)*w*(y_bar-w/2)*((b1+b2)/2-b1+w/2-x_bar)+l*w*(w+l/2-y_bar)*(x_bar-w/2)\n",
+ "print \"\\nsecond moment of area about x and y axis = %3.2e mm^4\"%(Ixy)\n",
+ "\n",
+ "Mx=15*10**5\n",
+ "def f(x,y):\n",
+ " return Mx*(Iyy*y-Ixy*x)/(Ixx*Iyy-Ixy**2)\n",
+ "sigma_z_max= f(-8,-66.4)\n",
+ "print \"\\nmaximum direct shear stress = %3.0f N/mm^2 (compressive)\\n\"%(sigma_z_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "y coordinate of centroid = 21.6 mm\n",
+ "\n",
+ "x coordinate of centroid = 16.0 mm\n",
+ "\n",
+ "second moment of area about x axis = 1.09e+06 mm^4\n",
+ "\n",
+ "second moment of area about y axis = 1.31e+06 mm^4\n",
+ "\n",
+ "second moment of area about x and y axis = 3.38e+05 mm^4\n",
+ "\n",
+ "maximum direct shear stress = -96 N/mm^2 (compressive)\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter18.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter18.ipynb
new file mode 100755
index 00000000..b0550214
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter18.ipynb
@@ -0,0 +1,155 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a16e0822e0e7167e54e1f4ffc425aa7247562532992f7dee46fc87221365735a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18: Torsion of Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1 Pg.No.527"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "r=100 #radius of cylinder (mm)\n",
+ "l=2*10**3 #length of cylinder (mm)\n",
+ "torque=30*10**6 #torque at mid point (N.mm)\n",
+ "Tmax=15*10**6 \n",
+ "Tau_max=200 #max shear stress (N/mm^2)\n",
+ "G=25000 #shear modulus (N/mm^2)\n",
+ "theta =2 # rotation at mid point (degree)\n",
+ "\n",
+ "#ref equation 18.1 T=2Aq\n",
+ "tmin1=Tmax/(2*math.pi*r**2*Tau_max)\n",
+ "print \"\\nminimum thickness of beam due to stress limited to 200N/mm^2 = %3.1f mm\"%(tmin1)\n",
+ "\n",
+ "z=1*10**3 # twist at mid point (mm)\n",
+ "#equation 18.4 after integration\n",
+ "tmin2=Tmax*200*math.pi*z/(4*(math.pi*r**2)**2*G*theta*math.pi/180)\n",
+ "print \"\\nminimum thickness due to constraint on maximum angle twist = %3.1f mm\"%(tmin2)\n",
+ "t=max(tmin1,tmin2)\n",
+ "print \"\\nthickness which satisfies both conditions = %3.1f mm\"%(t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "minimum thickness of beam due to stress limited to 200N/mm^2 = 1.2 mm\n",
+ "\n",
+ "minimum thickness due to constraint on maximum angle twist = 2.7 mm\n",
+ "\n",
+ "thickness which satisfies both conditions = 2.7 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Pg.No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#reference Fig 18.12\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "from sympy import symbols\n",
+ "from sympy import integrate\n",
+ "\n",
+ "S1,S2,S3=symbols('S1,S2,S3')\n",
+ "\n",
+ "#variable declaration\n",
+ "s1=50 #length of channel (mm)\n",
+ "s2=25 #width of channel (mm)\n",
+ "t1=2.5 #thickness of web(mm)\n",
+ "t2=1.5 #thickness of flange(mm)\n",
+ "T=10*10**3 #torque applied (N.mm)\n",
+ "zeta_s=8.04 \n",
+ "G=25000 #shear modulus (N/mm^2)\n",
+ "\n",
+ "#J=Sum(st^3/3)\n",
+ "J=1/3*(s1*t1**3+2*s2*t2**3)\n",
+ "tau_max=t1*T/J\n",
+ "print \"maximum shear stress = %3.1f N/mm^2\"%(tau_max)\n",
+ "\n",
+ "#in region O2\n",
+ "s1=25\n",
+ "ARf=1/2*zeta_s*s1\n",
+ "ws=-2*ARf*T/(G*J)\n",
+ "print \"warping in O2 region is linear = %3.2f mm\"%(ws)\n",
+ "\n",
+ "#in the wall 21\n",
+ "AR=1/2*zeta_s*s2-0.5*25*s2\n",
+ "w21=-0.03*(zeta_s-s2)\n",
+ "s1=50\n",
+ "tds=2*s2*t2+s1*t1\n",
+ "\n",
+ "A12=25/2*S1\n",
+ "A23=312.5-4.02*S2\n",
+ "A34=111.5+25/2*S3\n",
+ "AR1=1/2*(integrate(A12,(S1,0,25))+integrate(5*(A23),(S2,0,50))+integrate(3*A34,(S3,0,25)))/200\n",
+ "\n",
+ "#equation 18.20\n",
+ "ws=-2*ARf*T/G/J\n",
+ "print \"warping distribution in flange 34 = %1.2f \\n\"%(ws)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum shear stress = 78.9 N/mm^2\n",
+ "warping in O2 region is linear = -0.25 mm\n",
+ "warping distribution in flange 34 = -0.25 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter19.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter19.ipynb
new file mode 100755
index 00000000..c6a6c12b
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter19.ipynb
@@ -0,0 +1,160 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8abe3316b17e7378affc20eb461733ec12ced2dbb39d65e4c948dd2ef8dc33e9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19: Combined open and closed section beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1 Pg.No. 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "from sympy import *\n",
+ "import math\n",
+ "\n",
+ "l1=100 #lengths shown in Fig(mm)\n",
+ "l2=200\n",
+ "F=100*10**3 #force applied (N)\n",
+ "\n",
+ "y_bar=(2*l1*2*50+2*l2*2*l1+l2*2*l2)/(4*l1*2+4*l2*2)\n",
+ "Ixx=2*(2*l1**3/12+2*l1*25**2)+400*2*75**2+l2*2*125**2+2*(2*l2**3/12+2*l2*25**2)\n",
+ "\n",
+ "s1=Symbol('s1')\n",
+ "q12=-round(10**4*F/Ixx)/10**4*(integrate(-50+2*s1,s1))\n",
+ "print \"\\nq12 = %s\"%(q12)\n",
+ "\n",
+ "s2=Symbol('s2')\n",
+ "q23=-round(10**4*F/Ixx)/10**4*(integrate(2*75,s2))-34.5\n",
+ "print \"\\nq23 = %s\"%(q23)\n",
+ "\n",
+ "s3=Symbol('s3')\n",
+ "q03=-round(10**4*F/Ixx)/10**4*(integrate(2*75,s3))\n",
+ "print \"\\nq03 = %s\"%(q03)\n",
+ "\n",
+ "s4=Symbol('s4')\n",
+ "q34=-round(10**4*F/Ixx)/10**4*(integrate(2*(75-s4),s4))-242.5\n",
+ "print \"\\nq34 = %s\"%(q34)\n",
+ "\n",
+ "s5=Symbol('s5')\n",
+ "q94=-round(10**4*F/Ixx)/10**4*(integrate(-2*125,s5))\n",
+ "print \"\\nq94 = %s\\n\"%(q94)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "q12 = -0.0069*s1**2 + 0.345*s1\n",
+ "\n",
+ "q23 = -1.035*s2 - 34.5\n",
+ "\n",
+ "q03 = -1.035*s3\n",
+ "\n",
+ "q34 = 0.0069*s4**2 - 1.035*s4 - 242.5\n",
+ "\n",
+ "q94 = 1.725*s5\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2 Pg.No.555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "from sympy import symbols\n",
+ "import math\n",
+ "\n",
+ "A=20000 #nose cell area (mm^2)\n",
+ "L_w=900 #outer wall (mm)\n",
+ "L=300 #width of wall (mm)\n",
+ "length=600 #length of open section (mm)\n",
+ "G=25000 #shear modulus (N/mm^2)\n",
+ "T=10*10**6 #torque applied (kN.m)\n",
+ "t1=1.5 #thickness of closed section\n",
+ "t2=2 #thickness of open section\n",
+ "\n",
+ "GJ_cl=4*A**2*G/(L_w+L)*t1\n",
+ "\n",
+ "print \"torsoinal rigidity of closed section = %2.2e N.mm^2 \\n\"%(GJ_cl)\n",
+ "\n",
+ "GJ_op=G*(length+L)*t2**3/3\n",
+ "print \"torsional rigidity of open section = %2.1e N.mm^2 \\n\"%(GJ_op)\n",
+ "\n",
+ "GJ=GJ_cl+GJ_op\n",
+ "print \"total torsional rigidity = %5.3e N.mm^2\\n\"%(GJ)\n",
+ "\n",
+ "dO_by_dz=T/GJ\n",
+ "print \"angle of twist per unit length = %1.4f rad/mm\\n\"%(dO_by_dz)\n",
+ "\n",
+ "q_cl=GJ_cl/2/A*dO_by_dz\n",
+ "print \"maximum shear stress in the closed section = %3.1f N/mm^2\\n\"%(q_cl/1.5)\n",
+ "\n",
+ "#eqn 18.10 T_max=GtdO/dz\n",
+ "T_max=G*t2*dO_by_dz\n",
+ "print \"maximum shear stress in the open section = %2.0f N/mm^2\\n\"%(T_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "torsoinal rigidity of closed section = 5.00e+10 N.mm^2 \n",
+ "\n",
+ "torsional rigidity of open section = 6.0e+07 N.mm^2 \n",
+ "\n",
+ "total torsional rigidity = 5.006e+10 N.mm^2\n",
+ "\n",
+ "angle of twist per unit length = 0.0002 rad/mm\n",
+ "\n",
+ "maximum shear stress in the closed section = 166.5 N/mm^2\n",
+ "\n",
+ "maximum shear stress in the open section = 10 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter20.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter20.ipynb
new file mode 100755
index 00000000..4595d055
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter20.ipynb
@@ -0,0 +1,286 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bb71ed7156eb25f3e97cd3ba07ae31557b447cbcd71b351505ee32010461a02e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20: Structural idealization"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.1 Pg.No.560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "sigma6=200\n",
+ "sigma1=200\n",
+ "sigma2=sigma5=150 #these are not real shear stress but taken \n",
+ "sigma3=sigma4=100 #proportional to length because we need just ratio\n",
+ "l16=400 \n",
+ "t16=3\n",
+ "l12=l21=600\n",
+ "t12=t21=2 #thickness and lengths as shown in Fig 20.4\n",
+ "l23=600\n",
+ "t23=1.5\n",
+ "l25=300\n",
+ "t25=2.5\n",
+ "l34=200\n",
+ "t34=2\n",
+ "#eqn 20.1 B1=t_D*b/6*(2+sigma_2/sigma_1)\n",
+ "#eqn 20.2 B2=t_D*b/6*(2+sigma_1/sigma_2)\n",
+ "B1=B6=300+l16*t16/6*(2-sigma6/sigma1)+l12*t12/6*(2+sigma2/sigma1)\n",
+ "print \"B1=B6=%5.2f mm^2\\n\"%(B1)\n",
+ "\n",
+ "B2=B5=2*300+l12*t12/6*(2+sigma1/sigma2)+t25*l25/6*(2-sigma5/sigma2)+l23*t23/6*(2+sigma3/sigma2)\n",
+ "print \"B2=B5=%5.2f mm^2\\n\"%(B2)\n",
+ "\n",
+ "B3=300+l23*t23/6*(2+sigma2/sigma3)+l34*t34/6*(2-sigma4/sigma3)\n",
+ "print \"B3=B4=%5.2f mm^2\\n\"%(B3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B1=B6=1050.00 mm^2\n",
+ "\n",
+ "B2=B5=1791.67 mm^2\n",
+ "\n",
+ "B3=B4=891.67 mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.2 Pg.No.562"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "Mx=100*10**6 #bending moment(N.mm)\n",
+ "y=[660,600,420,228,25,-204,-396,-502,-540]\n",
+ "B=[640,600,600,600,620,640,640,850,640]\n",
+ "\n",
+ "print \"direct stress in each boom in last column\"\n",
+ "print \"Boom\\t y(mm)\\t B(mm^2)\\t delIxx=By^2\\t sigma_z\"\n",
+ "for i in range (0,9):\n",
+ " print \"%1.0f \\t %3.0f \\t %3.0f \\t \\t%2.1e \\t %2.1f\"%(i+1,y[i],B[i],B[i]*y[i]**2,Mx*y[i]/(1854*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct stress in each boom in last column\n",
+ "Boom\t y(mm)\t B(mm^2)\t delIxx=By^2\t sigma_z\n",
+ "1 \t 660 \t 640 \t \t2.8e+08 \t 35.6\n",
+ "2 \t 600 \t 600 \t \t2.2e+08 \t 32.4\n",
+ "3 \t 420 \t 600 \t \t1.1e+08 \t 22.7\n",
+ "4 \t 228 \t 600 \t \t3.1e+07 \t 12.3\n",
+ "5 \t 25 \t 620 \t \t3.9e+05 \t 1.3\n",
+ "6 \t -204 \t 640 \t \t2.7e+07 \t -11.0\n",
+ "7 \t -396 \t 640 \t \t1.0e+08 \t -21.4\n",
+ "8 \t -502 \t 850 \t \t2.1e+08 \t -27.1\n",
+ "9 \t -540 \t 640 \t \t1.9e+08 \t -29.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.3 Pg.No.566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "Ixx=48*10**6\n",
+ "Sy=4.8*10**3\n",
+ "B=300\n",
+ "\n",
+ "q12=-Sy/Ixx*B*200 #until point 2 \n",
+ "q23=q12-Sy/Ixx*B*200\n",
+ "q34=q23-Sy/Ixx*B*(-200)\n",
+ "print \"shear flow in flange 12 = %2.0f N/mm\\n\"%(q12)\n",
+ "print \"shear flow in web 23 = %2.0f N/mm\\n\"%(q23)\n",
+ "print \"shear flow in flange 34 = %2.0f N/mm\\n\"%(q34)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow in flange 12 = -6 N/mm\n",
+ "\n",
+ "shear flow in web 23 = -12 N/mm\n",
+ "\n",
+ "shear flow in flange 34 = -6 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.4 Pg.No.569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "B=[200,250,400,100,100,400,250,200]\n",
+ "Ixx=13.86*10**6\n",
+ "Sy=10*10**3\n",
+ "qb23=0\n",
+ "qb34=qb23-Sy/Ixx*B[2]*100\n",
+ "qb45=qb34-Sy/Ixx*B[3]*50\n",
+ "qb56=qb34\n",
+ "qb67=qb23\n",
+ "qb21=qb67-Sy/Ixx*(B[1]*100)\n",
+ "qb18=qb21-Sy/Ixx*B[7]*30\n",
+ "qb87=qb21\n",
+ "qs0=-5.4\n",
+ "print \"Distribution of shear flow :\"\n",
+ "print \"q23 = %2.1f N/mm\"%(qb23+qs0)\n",
+ "print \"q21 = %2.1f N/mm\"%(qb21-qs0)\n",
+ "print \"q34 = %2.1f N/mm\"%(qb34-qs0)\n",
+ "print \"q45 = %2.1f N/mm\"%(qb45-qs0)\n",
+ "print \"q56 = %2.1f N/mm\"%(qb56-qs0)\n",
+ "print \"q67 = %2.1f N/mm\"%(qb67+qs0)\n",
+ "print \"q18 = %2.1f N/mm\"%(qb18-qs0)\n",
+ "print \"q87 = %2.1f N/mm\\n\"%(qb87-qs0)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distribution of shear flow :\n",
+ "q23 = -5.4 N/mm\n",
+ "q21 = -12.6 N/mm\n",
+ "q34 = -23.5 N/mm\n",
+ "q45 = -27.1 N/mm\n",
+ "q56 = -23.5 N/mm\n",
+ "q67 = -5.4 N/mm\n",
+ "q18 = -17.0 N/mm\n",
+ "q87 = -12.6 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.5 Pg.No.575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "from sympy import symbols, integrate\n",
+ "z=symbols('z')\n",
+ "\n",
+ "E=70000 #youngs modulus (N/mm^2)\n",
+ "G=30000 #shear modulus (N/mm^2)\n",
+ "P=4.8*10**3 #applied force (N)\n",
+ "L=2000 #cantilever length(mm)\n",
+ "Sy=P\n",
+ "Ixx=48*10**6 #second moment of area \n",
+ "t=1 #actual thickness (mm)\n",
+ "\n",
+ "Mx0=-Sy*(L-z)\n",
+ "Mx1=-(L-z)\n",
+ "\n",
+ "del_M=integrate(Mx0*Mx1/E/Ixx,(z,0,L))\n",
+ "del_S=integrate((1/G/t/Sy*(6**2*200+12**2*400+6**2*200)),(z,0,L))\n",
+ "print \"total deflection in vertical direction = %1.2f mm\\n\"%(del_M+del_S)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total deflection in vertical direction = 4.81 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter21.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter21.ipynb
new file mode 100755
index 00000000..1195a6a9
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter21.ipynb
@@ -0,0 +1,256 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b8ffe836d5b15b63c70d69d0a02ef23ccdf3f03c0f15c98f0fa5e62d24f5d894"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21: Wing spars and box beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.1 Pg.No.585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "\n",
+ "Mx=20*10**6 #internal bending moment (N.mm)\n",
+ "Sy=-20*10**3 #force applied(N)\n",
+ "l1=400\n",
+ "l2=300 #lengths of webs respectively from left to right in Fig 21.2\n",
+ "l3=200\n",
+ "\n",
+ "#Ixx=I_C+Ab^2\n",
+ "Ixx=2*l1*150**2+2*l2**3/12\n",
+ "y=150\n",
+ "sigma_z1=Mx*y/Ixx\n",
+ "sigma_z2=-Mx*y/Ixx\n",
+ "\n",
+ "Pz1=sigma_z1*l1\n",
+ "Pz2=sigma_z2*l1\n",
+ "\n",
+ "#from fig 21.1 and 21.2\n",
+ "del_y1_by_del_z=-0.05\n",
+ "del_y2_by_del_z=0.05\n",
+ "Syw=Sy-Pz1*del_y1_by_del_z-Pz2*del_y2_by_del_z\n",
+ "\n",
+ "# equ 21.6 qs=-Syw/Ixx*integrate(t_D*y*ds+B1*Y1) from 0 to s\n",
+ "fn=lambda s:300-2*s\n",
+ "\n",
+ "def shear(s):\n",
+ " return -Syw/Ixx*(integrate.quad(fn, 0, s)[0]+400*150)\n",
+ "print \"maximum value of shear flow @s=150mm =%2.1f N/mm\\n\"%(shear(150.0))\n",
+ "print \"value of shear @s=0mm = %2.1f N/mm\\n\"%(shear(0))\n",
+ "print \"value of shear @s=300 mm = %2.1f N/mm\\n\"%(shear(300))\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of shear flow @s=150mm =53.8 N/mm\n",
+ "\n",
+ "value of shear @s=0mm = 39.1 N/mm\n",
+ "\n",
+ "value of shear @s=300 mm = 39.1 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.2 Pg.No.589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import symbols\n",
+ "import math\n",
+ "\n",
+ "Sy=100*10**6 #load applied in y direction (N)\n",
+ "Sx=0 #load in x direction (N)\n",
+ "y=[0.3,0.3,0.3,-0.3,-0.3,-0.3]\n",
+ "B=[900,1200,900,900,1200,900] #boom area\n",
+ "dx_dz=[0.1,0,-0.1,-0.1,0,0.1]\n",
+ "dy_dz=[-0.05,-0.05,-0.05,0.05,0.05,0.05]\n",
+ "Er=[0.6,0,0.6,0.6,0,0.6] \n",
+ "nr=[0.3,0.3,0.3,0.3,0.3,0.3]\n",
+ "Mx=-Sy*2\n",
+ "My=-Sx*2\n",
+ "Ixy=0\n",
+ "Ixx=4*900*300**2+2*1200*300**2\n",
+ "Pzr=[0]*6\n",
+ "Pxr=[0]*6 #array initialization\n",
+ "Pyr=[0]*6\n",
+ "Pr=[0]*6\n",
+ "print \"Boom \\t Pzr(kN) \\t dx_dz \\t dy_dz \\t Pxr(kN) \\t Pyr(kN) \\t Pr(kN)\"\n",
+ "for i in range (0,6):\n",
+ " Pzr[i]=Mx*y[i]/Ixx*B[i]\n",
+ " Pxr[i]=Pzr[i]*dx_dz[i] #Pr is not correct in (7) column in book\n",
+ " Pyr[i]=Pzr[i]*dy_dz[i]\n",
+ " Pr[i]=(Pzr[i]**2+Pxr[i]**2+Pyr[i]**2)**0.5\n",
+ " if Pzr[i]>0 :\n",
+ " print \"%1.0f \\t %3.0f \\t\\t %1.1f \\t %1.2f \\t %2.0f \\t\\t %1.1f \\t\\t %3.1f\"%(i+1,Pzr[i],dx_dz[i],dy_dz[i],Pxr[i],Pyr[i],Pr[i])\n",
+ " else:\n",
+ " print \"%1.0f \\t %3.0f \\t\\t %1.1f \\t %1.2f \\t %2.0f \\t\\t %1.1f \\t\\t %3.1f\"%(i+1,Pzr[i],dx_dz[i],dy_dz[i],Pxr[i],Pyr[i],-Pr[i])\n",
+ " \n",
+ "Sxw=0\n",
+ "Syw=66.6*10**3\n",
+ "qb16=0 #open section here\n",
+ "qb12=qb16-Syw/Ixx*B[0]*300\n",
+ "qb23=qb12-Syw/Ixx*B[1]*300\n",
+ "qb34=qb23-Syw/Ixx*B[2]*300\n",
+ "qb45=qb23\n",
+ "qb56=qb12\n",
+ "qs0=-97\n",
+ "\n",
+ "\n",
+ "print \"\\n\\nqb16 = %3.1f N/mm\"%(qb16)\n",
+ "print \"qb12 = %3.1f N/mm\"%(qb12)\n",
+ "print \"qb23 = %3.1f N/mm\"%(qb23)\n",
+ "print \"qb34 = %3.1f N/mm\"%(qb34)\n",
+ "print \"qb45 = %3.1f N/mm\"%(qb45)\n",
+ "print \"qb56 = %3.1f N/mm\"%(qb56)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Boom \t Pzr(kN) \t dx_dz \t dy_dz \t Pxr(kN) \t Pyr(kN) \t Pr(kN)\n",
+ "1 \t -100 \t\t 0.1 \t -0.05 \t -10 \t\t 5.0 \t\t -100.6\n",
+ "2 \t -133 \t\t 0.0 \t -0.05 \t -0 \t\t 6.7 \t\t -133.5\n",
+ "3 \t -100 \t\t -0.1 \t -0.05 \t 10 \t\t 5.0 \t\t -100.6\n",
+ "4 \t 100 \t\t -0.1 \t 0.05 \t -10 \t\t 5.0 \t\t 100.6\n",
+ "5 \t 133 \t\t 0.0 \t 0.05 \t 0 \t\t 6.7 \t\t 133.5\n",
+ "6 \t 100 \t\t 0.1 \t 0.05 \t 10 \t\t 5.0 \t\t 100.6\n",
+ "\n",
+ "\n",
+ "qb16 = 0.0 N/mm\n",
+ "qb12 = -33.3 N/mm\n",
+ "qb23 = -77.7 N/mm\n",
+ "qb34 = -111.0 N/mm\n",
+ "qb45 = -77.7 N/mm\n",
+ "qb56 = -33.3 N/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.3 Pg.No.593\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import symbols\n",
+ "import numpy as np\n",
+ "import math\n",
+ "yr=symbols('yr')\n",
+ "\n",
+ "Mx=-100*1.9*10**6 #bending moment(N.mm)\n",
+ "Ixx=4*900*295**2+2*1200*295**2 #second moment of area (mm^4)\n",
+ "sigma_zr=Mx/Ixx*yr\n",
+ "P1_1=P3_1=-0.364*295*900\n",
+ "P4_1=P6_1=0.364*295*900\n",
+ "P2_1=-0.364*295*1200\n",
+ "P5_1=0.364*295*1200\n",
+ "\n",
+ "Mx=-100*2.1\n",
+ "Ixx=4*900*305**2+2*1200*305**2\n",
+ "sigma_zr=Mx/Ixx*yr\n",
+ "P1_2=P3_2=-0.376*305*900\n",
+ "P4_2=P6_2=0.376*305*900\n",
+ "P2_2=-0.376*305*1200\n",
+ "P5_2=0.376*305*1200\n",
+ "\n",
+ "deltaP1=deltaP3=(P1_1-P1_2)/200\n",
+ "deltaP4=deltaP6=-(P4_1-P4_2)/200\n",
+ "deltaP2=(P2_1-P2_2)/200\n",
+ "deltaP5=(P5_1-P5_2)/200\n",
+ "\n",
+ "a=np.array([[1,-1,0,0,0,0],[0,1,-1,0,0,0],[0,0,1,-1,0,0],[0,0,0,1,-1,0],[0,0,0,0,1,-1],[600*300*2,2*600*300,600*600,0,0,600*600]])\n",
+ "\n",
+ "b=np.array([43.8,32.85,-32.85,-43.8,-32.85,600*10**5])\n",
+ "q=np.linalg.solve(a,b)\n",
+ "print \"shear flow distribution :\"\n",
+ "print \"q12 = %2.1f N/mm\"%(q[0])\n",
+ "print \"q23 = %2.1f N/mm\"%(q[1])\n",
+ "print \"q34 = %2.1f N/mm\"%(q[2])\n",
+ "print \"q45 = %2.1f N/mm\"%(q[3])\n",
+ "print \"q56 = %2.1f N/mm\"%(q[4])\n",
+ "print \"q61 = %2.1f N/mm\\n\"%(q[5])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow distribution :\n",
+ "q12 = 63.6 N/mm\n",
+ "q23 = 19.8 N/mm\n",
+ "q34 = -13.1 N/mm\n",
+ "q45 = 19.8 N/mm\n",
+ "q56 = 63.6 N/mm\n",
+ "q61 = 96.4 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter22.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter22.ipynb
new file mode 100755
index 00000000..15f86e3c
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter22.ipynb
@@ -0,0 +1,88 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7afcc7b44b13ea906e3e2317703c261e07426e5f23f7958a6b7966ba0274524d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22: Fuselages"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22.1 Pg.No.598"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "#B1=t_D*b/6(2+sigma_2/sigma_1)\n",
+ "Mx=200*10**6 # (N*mm)\n",
+ "y=[381,352,269.5,145.8,0,-145.8,-269.5,-352,-381,-352,-269.5,-145.8,0,145.8,269.5,352]\n",
+ "sigma_2=sigma_16=352\n",
+ "sigma_1=381\n",
+ "A=100\n",
+ "B1=A+0.8*149.6/6*(2+sigma_2/sigma_1)*2\n",
+ "Ixx=2.52*10**8\n",
+ "def sigma_z(y):\n",
+ " return Mx/Ixx*y\n",
+ "print \"Stringer/Boom \\t y(mm) \\t \\tsigma_z(N/mm^2)\"\n",
+ "for i in range (0,16):\n",
+ " print \"%2.0f \\t\\t %3.1f\\t\\t\\t%3.1f \"%(i+1,y[i],sigma_z(y[i]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stringer/Boom \t y(mm) \t \tsigma_z(N/mm^2)\n",
+ " 1 \t\t 381.0\t\t\t302.4 \n",
+ " 2 \t\t 352.0\t\t\t279.4 \n",
+ " 3 \t\t 269.5\t\t\t213.9 \n",
+ " 4 \t\t 145.8\t\t\t115.7 \n",
+ " 5 \t\t 0.0\t\t\t0.0 \n",
+ " 6 \t\t -145.8\t\t\t-115.7 \n",
+ " 7 \t\t -269.5\t\t\t-213.9 \n",
+ " 8 \t\t -352.0\t\t\t-279.4 \n",
+ " 9 \t\t -381.0\t\t\t-302.4 \n",
+ "10 \t\t -352.0\t\t\t-279.4 \n",
+ "11 \t\t -269.5\t\t\t-213.9 \n",
+ "12 \t\t -145.8\t\t\t-115.7 \n",
+ "13 \t\t 0.0\t\t\t0.0 \n",
+ "14 \t\t 145.8\t\t\t115.7 \n",
+ "15 \t\t 269.5\t\t\t213.9 \n",
+ "16 \t\t 352.0\t\t\t279.4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter23.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter23.ipynb
new file mode 100755
index 00000000..a5e90903
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter23.ipynb
@@ -0,0 +1,390 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:38d29ad436c9255138372fb573a0261c5aeb8d664f2491fbf03a71e42b1c4783"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23: Wings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.1 Pg.No.609"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "y=symbols('y')\n",
+ "\n",
+ "B1=B6=2580\n",
+ "B2=B5=3880 #Boom areas (mm^2)\n",
+ "B3=B4=3230\n",
+ "\n",
+ "l1=200\n",
+ "l2=230 #dimensions shown in Fig 23.3 (mm)\n",
+ "l3=165\n",
+ "\n",
+ "Mx=300*10**6 #bending moment (N.mm)\n",
+ "My=0\n",
+ "\n",
+ "Ixx=2*(B1*l3**2+B2*l2**2+B3*l1**2)\n",
+ "sigma_z=Mx/Ixx*y\n",
+ "\n",
+ "print \"direct stress in booms sigma_z = %s\" %(sigma_z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct stress in booms sigma_z = 0.370651791174781*y\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.2 Pg.No.612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "T=11.3*10**6 # torque applied (N.mm)\n",
+ "G_REF=27600 #(N/mm^2)\n",
+ "A1=258000\n",
+ "A2=355000 #areas in table\n",
+ "A3=161000\n",
+ "\n",
+ "#t*12=G/G_REF*t\n",
+ "t12=24200/G_REF*1.22\n",
+ "t12i=27600/G_REF*2.03\n",
+ "t13=t24=24200/G_REF*1.22 #G and thickness taken from table ex23.2 Pg.No.612\n",
+ "t35=t46=t56=20700/G_REF*0.92\n",
+ "t34=27600/G_REF*1.63\n",
+ "\n",
+ "# del12=ds/t*12\n",
+ "del12=1650/t12\n",
+ "del12i=508/t12i\n",
+ "del13=del24=775/t13\n",
+ "del34=380/t34 #lengths taken from table\n",
+ "del35=del46=508/t35\n",
+ "del56=254/t56\n",
+ "\n",
+ "\n",
+ "a=np.array([[del12+del12i,-del12i,0,-2*A1*G_REF],[-del12i,del12i+del13+del24+del34,-del34,-2*A2*G_REF],[0,-del34,del35+del46+del34+del56,-2*A3*G_REF],[A1,A2,A3,0]])\n",
+ "b=np.array([0,0,0,5.65*10**6])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "print \"shear stress distribution is as follows\"\n",
+ "print \"q1=%1.1f N/mm\"%(x[0])\n",
+ "print \"q2=%1.1f N/mm\"%(x[1])\n",
+ "print \"q3=%1.1f N/mm\\n\"%(x[2])\n",
+ "print \"dO_dz=%1.2e \"%(x[3])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear stress distribution is as follows\n",
+ "q1=7.1 N/mm\n",
+ "q2=8.9 N/mm\n",
+ "q3=4.2 N/mm\n",
+ "\n",
+ "dO_dz=7.36e-07 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.3 Pg.No.616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "A1=265000\n",
+ "A2=213000\n",
+ "A3=413000\n",
+ "\n",
+ "G_REF=27600\n",
+ "Sy=86.8*10**3\n",
+ "t78=3*27600/27600*1.22\n",
+ "del78=1270/t78\n",
+ "t12=t56=1.22\n",
+ "del12=del56=1023/t12\n",
+ "t23=1.63\n",
+ "del23=1274/t23\n",
+ "t34=2.03\n",
+ "del34=2200/t34\n",
+ "del38=57\n",
+ "del84=95\n",
+ "del87=347\n",
+ "del27=68\n",
+ "del75=106\n",
+ "del16=330/1.63\n",
+ "Ixx=809*10**6 #From example 23.1\n",
+ "\n",
+ "qb27=-99.4;qb16=-45.5;qb65=0;qb57=95.5;qb38=-69.8;qb48=69\n",
+ "\n",
+ "\n",
+ "a=np.array([ [del34+del84+del38,-del38,0,-2*A1*G_REF], [-del38,del23+del38+del87+del27,-del27,-2*A2*G_REF], [0,-del27,del56+del27+del75+del12+del16,-2*A3*G_REF], [2*A1,2*A2,2*A3,0] ])\n",
+ "b=np.array([-10488,-2561,7426,19736700])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "\n",
+ "qs01=5.5\n",
+ "qs02=10.2\n",
+ "qs03=16.5\n",
+ "\n",
+ "q34=qs01\n",
+ "q23=qs02\n",
+ "q12=qs03\n",
+ "q61=-qb16+qs03\n",
+ "q57=qb57-qs03\n",
+ "q72=-qb27-qs02\n",
+ "q48=qb48+qs01\n",
+ "q83=-qb38-qs01\n",
+ "\n",
+ "print \"shear flows distribution is as follows :\"\n",
+ "print \"q34=%1.2f N/mm\"%(q34)\n",
+ "print \"q23=q87=%1.2f N/mm\"%(q23)\n",
+ "print \"q12=q56=%1.2f N/mm\"%(q12)\n",
+ "print \"q61=%1.2f N/mm\"%(q61) \n",
+ "print \"q57=%1.2f N/mm\"%(q57)\n",
+ "print \"q72=%1.2f N/mm\"%(q72)\n",
+ "print \"q48=%1.2f N/mm\"%(q48)\n",
+ "print \"q83=%1.2f N/mm\\n\"%(q83)\n",
+ "\n",
+ "print \"rate of twist = %1.1e rad/mm\"%(x[3])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flows distribution is as follows :\n",
+ "q34=5.50 N/mm\n",
+ "q23=q87=10.20 N/mm\n",
+ "q12=q56=16.50 N/mm\n",
+ "q61=62.00 N/mm\n",
+ "q57=79.00 N/mm\n",
+ "q72=89.20 N/mm\n",
+ "q48=74.50 N/mm\n",
+ "q83=64.30 N/mm\n",
+ "\n",
+ "rate of twist = 1.1e-06 rad/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.4 Pg.No.618 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "#Boom areas\n",
+ "B=[600,900,600,600,900,600]\n",
+ "Pz=[0,0,0,0,0,0]\n",
+ "y=[54.56,54.56,54.56,-54.56,-54.56,-54.56]\n",
+ "Ixx=4*600*90**2+2*900*90**2\n",
+ "Ixy=0\n",
+ "Mx=1.65*10**6\n",
+ "My=0\n",
+ "\n",
+ "a=np.array([[1700,-1520],[72000,144000]])\n",
+ "b=np.array([3942,690726])\n",
+ "x=np.linalg.solve(a,b)\n",
+ "print \"\\nqs0I = %2.1f N/mm\\n\"%(x[0])\n",
+ "print \"\\nqs0II = %2.1f N/mm\\n\"%(x[1])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "qs0I = 4.6 N/mm\n",
+ "\n",
+ "\n",
+ "qs0II = 2.5 N/mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.5 Pg.No.622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import integrate\n",
+ "z=symbols('z')\n",
+ "\n",
+ "E=69000 #youngs modulus (N/mm^2)\n",
+ "G=25900 #shear modulus (N/mm^2)\n",
+ "t=2 #thickness (mm)\n",
+ "B=[650,1300,650,650,1300,650] #boom area\n",
+ "q0=[9.6,-5.8,50.3,-5.8,9.6,54.1,73.6]\n",
+ "Sy0=44.5*10**3\n",
+ "Sy1=1\n",
+ "Mx0=-44.5*10**3*(2000-z)\n",
+ "Mx1=-(2000-z)\n",
+ "Ixx=81.3*10**6\n",
+ "int_q0q1_Gt=1/G/t/Sy0*(q0[0]**2*250*t+q0[1]**2*500*t+q0[2]**2*250+q0[5]**2*250+q0[6]**2*250)\n",
+ "\n",
+ "delta=integrate(Mx0*Mx1/E/Ixx,(z,0,2000))+integrate(int_q0q1_Gt,(z,0,2000))\n",
+ "print \"deflection at free end of the two cell = %2.2f mm\"%(delta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "deflection at free end of the two cell = 23.58 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.6 Pg.No.624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import solve, symbols, pprint\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import integrate\n",
+ "\n",
+ "T=10*10**6 #torque subjected (N.mm)\n",
+ "l1=800 \n",
+ "l2=200 #lengths shown in Fig23.17 (mm)\n",
+ "l3=1500\n",
+ "A=l2*l1\n",
+ "\n",
+ "\n",
+ "q=T/2/A\n",
+ "S=T/l1\n",
+ "q1=S/l2\n",
+ "P=S*l3/2/l2\n",
+ "\n",
+ "a=np.array([[1,-1],[1,1]])\n",
+ "b=np.array([31.3,62.5])\n",
+ "q=np.linalg.solve(a,b)\n",
+ "\n",
+ "print \"shear flow :\"\n",
+ "print \"q1=%2.2f N/mm\"%(q1)\n",
+ "print \"q2=%2.2f N/mm\"%(q[0])\n",
+ "print \"q3=%2.2f N/mm\\n\"%(q[1])\n",
+ "\n",
+ "print \"flange loads :\"\n",
+ "print \"P(st.4500) = 0\"\n",
+ "print \"P(st.3000) = %2.2f N (compression)\"%(l3*q[0]-l3*q[1])\n",
+ "print \"P(st.2250) = %2.1f\"%(46875-l3/2*q1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow :\n",
+ "q1=62.50 N/mm\n",
+ "q2=46.90 N/mm\n",
+ "q3=15.60 N/mm\n",
+ "\n",
+ "flange loads :\n",
+ "P(st.4500) = 0\n",
+ "P(st.3000) = 46950.00 N (compression)\n",
+ "P(st.2250) = 0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter24.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter24.ipynb
new file mode 100755
index 00000000..b305a12a
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter24.ipynb
@@ -0,0 +1,198 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:217b3507f45091d99aa496d838ab43e552e1e20629747bd44a2cad35220ffe6a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 24: Fuselage frames and wing ribs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24.1 Pg.No.638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import numpy\n",
+ "import math\n",
+ "#reference Fig 42.2\n",
+ "l1=250 #length of each section(mm)\n",
+ "l2=200 #length of DK(mm)\n",
+ "l3=100 #length of KH(mm)\n",
+ "F1=4000\n",
+ "F2=5000 #forces as shown in Fig 24.1\n",
+ "theta=60 #force angle from DH (degree)\n",
+ "\n",
+ "#solve (i) and (ii) equation\n",
+ "a=numpy.array([[1,-1],[200,100]])\n",
+ "b=numpy.array([13.8564,2000])\n",
+ "q=numpy.linalg.solve(a,b)\n",
+ "q1=q[0]\n",
+ "q2=q[1]\n",
+ "q3=F1*math.cos(math.radians(theta))/(l2+l3)\n",
+ "q4=F1*math.cos(math.radians(theta))/(l2+l3)+F2/(l2+l3)\n",
+ "P_A=l1*q1+l1*q3+l1*q4\n",
+ "P_E=-l1*q2-l1*q3-l1*q4\n",
+ "P=3464.1\n",
+ "M_AE=F2*l1+F1/2*3*l1-P*50\n",
+ "\n",
+ "P_A=M_AE/(l2+l3)+P/2\n",
+ "P_E=-M_AE/(l2+l3)+P/2\n",
+ "\n",
+ "print \"shear flow as shown in Fig 24.1\\n\"\n",
+ "print \"q1=%2.2f N/mm\\n\"%(q1)\n",
+ "print \"q2=%2.2f N/mm\\n\"%(q2)\n",
+ "print \"q3=%2.2f N/mm\\n\"%(q3)\n",
+ "print \"q4=%2.2f N/mm\\n\"%(q4)\n",
+ "\n",
+ "print \"Stiffener load at point A = %2.2f N/mm(tension)\\n\"%(P_A)\n",
+ "print \"Stiffener load at point E = %2.2f N/mm(compression)\\n\"%(P_E) #in book another method is also explained"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow as shown in Fig 24.1\n",
+ "\n",
+ "q1=11.29 N/mm\n",
+ "\n",
+ "q2=-2.57 N/mm\n",
+ "\n",
+ "q3=6.67 N/mm\n",
+ "\n",
+ "q4=23.33 N/mm\n",
+ "\n",
+ "Stiffener load at point A = 10321.37 N/mm(tension)\n",
+ "\n",
+ "Stiffener load at point E = -6857.27 N/mm(compression)\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24.2 Pg.No.645"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import numpy as np\n",
+ "import math\n",
+ "\n",
+ "A1=50000\n",
+ "A2=95000 #area shown in Fig 24.13(mm^2)\n",
+ "A3=95000\n",
+ "\n",
+ "A4=46000\n",
+ "A5=49000 #area shown in Fig 24.11 (mm^2)\n",
+ "\n",
+ "F1=12000\n",
+ "F2=15000 #forces shown in Fig 24.9 (N)\n",
+ "\n",
+ "l1=l3=300\n",
+ "l2=320 #lengths and angle shown in Fig 24.9\n",
+ "alpha=15\n",
+ "\n",
+ "#solve equation (i)&(iii)\n",
+ "a=np.array([[600,-600],[190000,290000]])\n",
+ "b=np.array([12000,440000])\n",
+ "q=np.linalg.solve(a,b)\n",
+ "q12=q[0]\n",
+ "q23=q[1]\n",
+ "q31=(F2+l1*q23)/l1\n",
+ "print \"shear flows are shown in Fig 24.9 (flanges)\"\n",
+ "print \"q12=%2.2f N/mm\"%(q12)\n",
+ "print \"q23=%2.2f N/mm\"%(q23)\n",
+ "print \"q31=%2.2f N/mm\\n\"%(q31)\n",
+ "\n",
+ "Sy_1=7*l3\n",
+ "Px4=Px2=2*A1*7/l1\n",
+ "Py2=Py4=Px4*math.tan(math.radians(alpha))\n",
+ "q1=(2100-2*625.2)/l1\n",
+ "P2=P4=(Px4**2+Py4**2)**0.5\n",
+ "P5=P6=2*((A1+A4)*7-A5*13)/l2\n",
+ "q2=(7*l1+7*10-13*10)/l2\n",
+ "q3=(6.4*l2+F2)/l2\n",
+ "\n",
+ "M3=2*((A1+A2)*7-A2*13)+F2*l1\n",
+ "Px1=Px3=M3/l1\n",
+ "Py1=Py3=3626.2\n",
+ "P1=P3=(Px1**2+Py1**2)**.5\n",
+ "q3=(17100-2*Py1)/l1\n",
+ "\n",
+ "print \"Loads in webs \"\n",
+ "print \"P4=P2=%2.2f N\"%(P2)\n",
+ "print \"P6=P5=%2.2f N\"%(P6)\n",
+ "print \"P3=P1=%2.2f N\\n\"%(P1)\n",
+ "\n",
+ "print \"shear flow in webs\"\n",
+ "print \"q1=%2.2f N/mm\"%(q1)\n",
+ "print \"q2=%2.2f N/mm\"%(q2)\n",
+ "print \"q3=%2.2f N/mm (this value is given at the end of example)\"%(q3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flows are shown in Fig 24.9 (flanges)\n",
+ "q12=13.00 N/mm\n",
+ "q23=-7.00 N/mm\n",
+ "q31=43.00 N/mm\n",
+ "\n",
+ "Loads in webs \n",
+ "P4=P2=2415.64 N\n",
+ "P6=P5=218.75 N\n",
+ "P3=P1=14010.73 N\n",
+ "\n",
+ "shear flow in webs\n",
+ "q1=2.83 N/mm\n",
+ "q2=6.38 N/mm\n",
+ "q3=32.83 N/mm (this value is given at the end of example)\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter25.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter25.ipynb
new file mode 100755
index 00000000..369a648f
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter25.ipynb
@@ -0,0 +1,490 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:806c344ebbd66dd7398f87b7be85af8355708b04b28f0bd902647a641248feff"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25: Laminated Composite Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.1 Pg.No.653"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Ee=5000 #youngs modulus of epoxy (N/mm^2)\n",
+ "Ec=200000 #youngs modulus of carbon (N/mm^2)\n",
+ "\n",
+ "# E1=Ef*Af/A+Em+Am/A equation 25.4\n",
+ "A=50*80 #total area (mm^2)\n",
+ "Ae=40*80 #area of epoxy (mm^2)\n",
+ "Ac=10*80 #area of carbon(mm^2)\n",
+ "L=500 #length of bar(mm)\n",
+ "vc=0.3 #poisson ratio\n",
+ "ve=0.2\n",
+ "\n",
+ "#effective youngs modulus\n",
+ "E1=(Ee*Ae+Ec*Ac)/A\n",
+ "\n",
+ "load=100*10**3\n",
+ "sigma1=load/A\n",
+ "epsilon1=sigma1/E1\n",
+ "\n",
+ "delta1=epsilon1*L\n",
+ "v1t=(ve*Ae+vc*Ac)/A\n",
+ "epsilon_t=-v1t*epsilon1\n",
+ "\n",
+ "thickness=L\n",
+ "delta_t=-epsilon_t*(thickness)\n",
+ "\n",
+ "\n",
+ "sigma_m=Ee*epsilon1\n",
+ "sigma_f=Ec*epsilon1\n",
+ "print \"stresses in epoxy = %2.2f N/mm^2\\n\"%(sigma_m)\n",
+ "print \"stresses in carbon = %2.2f N/mm^2\\n\"%(sigma_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stresses in epoxy = 2.84 N/mm^2\n",
+ "\n",
+ "stresses in carbon = 113.64 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.2 Pg.No.657"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "\n",
+ "tau=40 #shear stress(N/mm^2)\n",
+ "G=5000 #shear modulus(N/mm^2)\n",
+ "v1t=0.3 #poisson ratio \n",
+ "Et=80000 #youngs modulus in transverse direction(N/mm^2)\n",
+ "E1=120000 #youngs modulus in longitudinal direction(N/mm^2)\n",
+ "sigma_x=50 #direction stress in x direciton\n",
+ "sigma_y=25 #in y direction\n",
+ "\n",
+ "\n",
+ "vt1=v1t*Et/E1 #minor poisson ratio\n",
+ "\n",
+ "epsilon1=sigma_x/E1-vt1*sigma_y/Et\n",
+ "epsilont=sigma_y/Et-v1t*sigma_x/E1\n",
+ "print \"direct strain in x direction = %2.2e \\n\"%(epsilon1)\n",
+ "print \"direct strain in y direction = %2.2e \\n\"%(epsilont)\n",
+ "\n",
+ "gama1t=tau/G\n",
+ "print \"shear strain in the ply = %2.2e \\n\"%(gama1t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct strain in x direction = 3.54e-04 \n",
+ "\n",
+ "direct strain in y direction = 1.88e-04 \n",
+ "\n",
+ "shear strain in the ply = 8.00e-03 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.3 Pg.No.661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "El=150000 #youngs modulus(N/mm^2)\n",
+ "Et=90000 #youngs modulus(N/mm^2)\n",
+ "Glt=5000 #shear modulus(N/mm^2)\n",
+ "vlt=0.3 #poisson ratio\n",
+ "theta=45 #longitudinal plane inclination\n",
+ "\n",
+ "s11=1/El\n",
+ "s22=1/Et\n",
+ "s12=-vlt/El\n",
+ "s33=1/Glt\n",
+ "\n",
+ "a=np.array([[53.45,-46.55,1],[-46.55,53.45,0],[-2.2,-2.2,0]])\n",
+ "b=np.array([60,40,0])\n",
+ "x=np.dot(a,b)\n",
+ "print \"strain in the x direction = %4.4e\\n\"%(x[0]*10**-6)\n",
+ "print \"strain in the y direction = %4.4e\\n\"%(x[1]*10**-6)\n",
+ "print \"shear strain in the xy plane = %4.4e\\n\"%(x[2]*10**-6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "strain in the x direction = 1.3450e-03\n",
+ "\n",
+ "strain in the y direction = -6.5500e-04\n",
+ "\n",
+ "shear strain in the xy plane = -2.2000e-04\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.4 Pg.No.664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "l1=150\n",
+ "t1=1\n",
+ "l2=100 #dimensions shown in Fig 25.10 (mm)\n",
+ "t2=2\n",
+ "Ef=60000 #youngs modulus of flanges(N/mm^2)\n",
+ "Ew=20000 #youngs modulus of web(N/mm^2)\n",
+ "P=40*10**3 #axial load(N)\n",
+ "\n",
+ "#sum of b*t*E \n",
+ "sum_btE=2*l2*t2*Ef+l1*t1*Ew\n",
+ "\n",
+ "epsilon_z=P/sum_btE #equ 25.37\n",
+ "P_flange=epsilon_z*l2*t2*Ef\n",
+ "P_web=epsilon_z*l1*t1*Ew\n",
+ "print \"axial load in flange = %2.2f kN\\n\"%(P_flange/1000)\n",
+ "print \"axial load in web = %2.2f kN\\n\"%(P_web/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "axial load in flange = 17.78 kN\n",
+ "\n",
+ "axial load in web = 4.44 kN\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.5 Pg.No.666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "\n",
+ "l1=100\n",
+ "l2=50\n",
+ "t1=1 #dimension shown in Fig 25.11 (mm)\n",
+ "t2=2\n",
+ "Ef=50000 #youngs modulus of flange(N/mm^2)\n",
+ "Ew=15000 #youngs modulus of web(N/mm^2)\n",
+ "Mx=10**6 #bending moment (N.mm)\n",
+ "My=0\n",
+ "\n",
+ "Ixx=2*Ef*l2*t2*l2**2+Ew*t1*l1**3/12\n",
+ "Iyy=Ef*t2*l1**3/12\n",
+ "Ixy=Ef*l2*t2*(50)*(50)+Ef*l2*t2*(-50)*(-50)\n",
+ "\n",
+ "x=50\n",
+ "y=50 #point 1\n",
+ "Ez=50000\n",
+ "\n",
+ "sigma_z=Ez*((My*Ixx-Mx*Ixy)/(Ixx*Iyy-Ixy**2)*x + (Mx*Iyy-My*Ixy)/(Ixx*Iyy-Ixy**2)*y)\n",
+ "print \"direct stress at point 1 = %3.1f N/mm^2\\n\"%(sigma_z)\n",
+ "x=0\n",
+ "y=50\n",
+ "sigma_z=Ez*((My*Ixx-Mx*Ixy)/(Ixx*Iyy-Ixy**2)*x + (Mx*Iyy-My*Ixy)/(Ixx*Iyy-Ixy**2)*y)\n",
+ "print \"direct stress at point 2 = %3.1f N/mm^2\\n\"%(sigma_z)\n",
+ "\n",
+ "x=0\n",
+ "y=50\n",
+ "Ez=15000\n",
+ "sigma_z=Ez*((My*Ixx-Mx*Ixy)/(Ixx*Iyy-Ixy**2)*x + (Mx*Iyy-My*Ixy)/(Ixx*Iyy-Ixy**2)*y)\n",
+ "print \"direct stress at point 2 in the web = %3.1f N/mm^2\\n\"%(sigma_z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direct stress at point 1 = 102.6 N/mm^2\n",
+ "\n",
+ "direct stress at point 2 = -51.3 N/mm^2\n",
+ "\n",
+ "direct stress at point 2 in the web = -15.4 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.6 Pg.No.668"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "s=symbols('s')\n",
+ "\n",
+ "l12=250\n",
+ "l23=300\n",
+ "t31=t12=2 #dimensions shown in Fig 25.12 (mm)\n",
+ "t23=1.5\n",
+ "\n",
+ "P=2*10**3 #shear load(N)\n",
+ "E12=E31=45000 #youngs modulus of sides given in name(N/mm^2)\n",
+ "E23=20000\n",
+ "\n",
+ "Ixx=2*E12*t12*l12**3*(l23/2/l12)**2/12+E23*t23*l23**3/12\n",
+ "alpha=math.asin(l23/2/l12)\n",
+ "\n",
+ "Sx=0\n",
+ "Sy=2*10**3\n",
+ "q12=-E12*Sy/Ixx*integrate(-2*s,(s,0,250))*math.sin(alpha)\n",
+ "print \"shear flow at point 2 in the flange 12 = %2.2f N/mm\\n\"%(q12)\n",
+ "\n",
+ "q23=-E23*Sy/Ixx*integrate(-225+1.5*s,(s,0,300))+22.2\n",
+ "print \"shear flow at point 3 in the flange 23 = %2.2f N/mm\\n\"%(q23)\n",
+ "q0=14.2\n",
+ "\n",
+ "q12=-E12*Sy/Ixx*integrate(-2*s,s)*math.sin(alpha)-q0\n",
+ "print \"shear flow in the flange 12 and 31 \"\n",
+ "print q12\n",
+ "\n",
+ "q23=-E23*Sy/Ixx*integrate(-225+1.5*s,s,)+22.2-q0\n",
+ "print \"\\nshear flow in the web 23\"\n",
+ "print q23"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shear flow at point 2 in the flange 12 = 22.22 N/mm\n",
+ "\n",
+ "shear flow at point 3 in the flange 23 = 22.20 N/mm\n",
+ "\n",
+ "shear flow in the flange 12 and 31 \n",
+ "0.000355555555555556*s**2 - 14.2\n",
+ "\n",
+ "shear flow in the web 23\n",
+ "-0.000197530864197531*s**2 + 0.0592592592592593*s + 8.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.7 Pg.No.671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "\n",
+ "l1=200\n",
+ "t1=2\n",
+ "l2=100 #dimensions shown in Fig 25.13 (mm)\n",
+ "t2=1\n",
+ "T=10*10**6 #torque applied (N.mm)\n",
+ "Gl=20000 #laminate shear modulus(N/mm^2)\n",
+ "Gw=35000 #web shear modulus(N/mm^2)\n",
+ "A=l1*l2\n",
+ "\n",
+ "q=T/2/A\n",
+ "\n",
+ "#from eqn 25.47\n",
+ "int_ds_by_Gt=2*l1/Gl/t1+2*l2/Gw/t2\n",
+ "\n",
+ "#Let's say we want to calculate warping at point 1\n",
+ "#warping at mid of web is zero (W0=0) integrate eqn 25.47 from\n",
+ "#mid of web to point 1\n",
+ "W0=0\n",
+ "A0s=50*100\n",
+ "W1=W0+q*(l2/2/Gw/t2-int_ds_by_Gt/A*A0s)\n",
+ "print \"warping at point 1 is = %2.2f mm\\n\"%(W1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "warping at point 1 is = -0.63 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.8 Pg.No.673"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import math\n",
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "l1=50\n",
+ "t1=2.5\n",
+ "l2=25 #dimension shown in Fig 18.12(mm)\n",
+ "t2=1.5\n",
+ "\n",
+ "Gl=20000\n",
+ "Gw=15000 #shear modulus (N/mm^2)\n",
+ "T=10*10**3 #torque applied (N.mm)\n",
+ "AR=25*25/2\n",
+ "GJ=2*Gl*l2*t2**3/3+Gw*l1*t1**3/3\n",
+ "#eqn 25.49\n",
+ "dO_dz=T/GJ\n",
+ "\n",
+ "t_max12=2*Gl*(t2/2)*dO_dz\n",
+ "t_max23=2*Gw*(t1/2)*dO_dz\n",
+ "print \"maximum shear stress in the web = %2.2f N/mm^2\\n\"%(t_max12)\n",
+ "print \"maximum shear stress in the laminate = %2.2f N/mm^2\\n\"%(t_max23)\n",
+ "\n",
+ "W1=-2*AR*dO_dz\n",
+ "print \"warping at point 1 = %2.2f mm\\n\"%(W1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum shear stress in the web = 59.63 N/mm^2\n",
+ "\n",
+ "maximum shear stress in the laminate = 74.53 N/mm^2\n",
+ "\n",
+ "warping at point 1 = -1.24 mm\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter26.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter26.ipynb
new file mode 100755
index 00000000..994182d0
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter26.ipynb
@@ -0,0 +1,82 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eb3a8ca85b2b3516ec190a12a8401ddf32d140498cd023be9bda6228b1754025"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 26: Closed Section Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26.3 Pg.No.693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from sympy import solve, symbols\n",
+ "import math\n",
+ "\n",
+ "\n",
+ "G=20000 #shear modulus (N/mm^2)\n",
+ "E=G/0.36 #young's modulus\n",
+ "tau=20 #torque (Nm/mm)\n",
+ "t=1\n",
+ "b=200\n",
+ "a=500\n",
+ "L=2500\n",
+ "A=800\n",
+ "\n",
+ "#torque at each support \n",
+ "T=20*5000/2\n",
+ "\n",
+ "mu=math.sqrt(8*G*t/(A*E*(b+a)))\n",
+ "\n",
+ "z=2500\n",
+ "F=-1.95/mu*math.cosh(mu*z)+1.75*z**2\n",
+ "\n",
+ "z=0 # at mid-span z=0\n",
+ "theta=10**(-8)*(1.95/mu*math.cosh(mu*z)-1.75*z**2+F)\n",
+ "print \"twist at mid-span = %1.3f rad = %1.2f degree\"%(theta,theta*180/math.pi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "twist at mid-span = 0.108 rad = 6.20 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/Chapter27.ipynb b/Aircraft_Structures_for_Engineering_Students/Chapter27.ipynb
new file mode 100755
index 00000000..bf9485c9
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/Chapter27.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bc596ba82da68e58c73271eb1045592b064349244b750ab69aa9f03ab4de2fbd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 27: Open Section Beams\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27.2 Pg.No. 735"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#reference Fig 27.20\n",
+ "\n",
+ "from __future__ import division\n",
+ "import math\n",
+ "from sympy import integrate\n",
+ "from sympy import solve, symbols\n",
+ "\n",
+ "# variable declaration\n",
+ "P=100 #vertical load (kN)\n",
+ "A_R=1.25*10**3 #from previous question\n",
+ "E=200000 #young's modulus (N/mm^2)\n",
+ "Gama_R=2.08*10**10 #torsion bending constant (mm^6)\n",
+ "mu=0.54*10**-3 #from previous question\n",
+ "A=400*5 #area of beam\n",
+ "\n",
+ "#moment couple\n",
+ "M_Tau=-P*2*A_R\n",
+ "print \"\\nValue of moment couple at the top of column = %2.2e kN.mm^2\"%(M_Tau) #calculation mistake in book\n",
+ "\n",
+ "d2tdz2 = M_Tau*10**3/E/Gama_R\n",
+ "# @z=3000 mm \n",
+ "D=0.04*10**-3\n",
+ "z=symbols('z')\n",
+ "F= -0.08*math.cosh(0)\n",
+ "\n",
+ "def theta(z):\n",
+ " return 0.08*(math.cosh(0.54*10**(-3)*z))\n",
+ "\n",
+ "print \"\\ntwist at the top of the column = %2.2f rad\\n\"%(theta(3000))\n",
+ "\n",
+ "M_Tau=-E*Gama_R*0.02*10**-6\n",
+ "print \"value of moment couple at bottom of column=%2.2e N.mm^2\\n\"%(M_Tau)\n",
+ "\n",
+ "P=-100*10**3 # stress(N)\n",
+ "def sigma_z(A_R2):\n",
+ " return P/A+M_Tau*A_R2/Gama_R\n",
+ "print \"sigma_z1=sigma_z4=%2.1f N/mm^2\\n\"%(sigma_z(-7.5*10**3))\n",
+ "print \"sigma_z2=sigma_z3=%2.1f N/mm^2\\n\"%(sigma_z(2.5*10**3))\n",
+ "\n",
+ "#please put the value of 2AR from Fig 27.21 in the equation of sigma_z\n",
+ "#these values in book need correction"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value of moment couple at the top of column = -2.50e+05 kN.mm^2\n",
+ "\n",
+ "twist at the top of the column = 0.21 rad\n",
+ "\n",
+ "value of moment couple at bottom of column=-8.32e+07 N.mm^2\n",
+ "\n",
+ "sigma_z1=sigma_z4=-20.0 N/mm^2\n",
+ "\n",
+ "sigma_z2=sigma_z3=-60.0 N/mm^2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 48
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/README.txt b/Aircraft_Structures_for_Engineering_Students/README.txt
new file mode 100755
index 00000000..230418be
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Prahlad Das
+Course: others
+College/Institute/Organization: Indian Institute of Technology Bombay
+Department/Designation: Aerospace
+Book Title: Aircraft Structures for Engineering Students
+Author: T. H. G. Megson
+Publisher: Linacre House, Jordan Hill, Oxford OX2 8DP, UK
+Year of publication: 2012
+Isbn: 978-0-75066-7395
+Edition: fourth edition \ No newline at end of file
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/1.png
new file mode 100755
index 00000000..5a7eb163
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/1.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/2.png b/Aircraft_Structures_for_Engineering_Students/screenshots/2.png
new file mode 100755
index 00000000..39f6cc69
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/2.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/3.png b/Aircraft_Structures_for_Engineering_Students/screenshots/3.png
new file mode 100755
index 00000000..ea04181a
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/3.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/a.png b/Aircraft_Structures_for_Engineering_Students/screenshots/a.png
new file mode 100755
index 00000000..7aa51791
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/a.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/a_1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/a_1.png
new file mode 100755
index 00000000..7aa51791
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/a_1.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/b.png b/Aircraft_Structures_for_Engineering_Students/screenshots/b.png
new file mode 100755
index 00000000..0f230abf
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/b.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/b_1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/b_1.png
new file mode 100755
index 00000000..0f230abf
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/b_1.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/c.png b/Aircraft_Structures_for_Engineering_Students/screenshots/c.png
new file mode 100755
index 00000000..ae3f4f00
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/c.png
Binary files differ
diff --git a/Aircraft_Structures_for_Engineering_Students/screenshots/c_1.png b/Aircraft_Structures_for_Engineering_Students/screenshots/c_1.png
new file mode 100755
index 00000000..ae3f4f00
--- /dev/null
+++ b/Aircraft_Structures_for_Engineering_Students/screenshots/c_1.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter1_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter1_2.ipynb
new file mode 100755
index 00000000..d9a04491
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter1_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 1 : Mathematical Preliminaries", "cell_type": "markdown", "metadata": {}}, {"source": "## Example 1.1,Page Number 45", "cell_type": "markdown", "metadata": {}}, {"execution_count": 26, "cell_type": "code", "source": "import numpy as np\n\n#variable Declaration\nA = np.array([1,2,3]) # A is a vector\n\n#calculations\nl=np.linalg.norm(A) # magnitude or length of vector A\na=A/l # direction of vector A\n\n#results\nprint \"magnitude of vector:\",round(l,2)\nprint \"direction of vector\",np.around(a,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "magnitude of vector: 3.74\ndirection of vector [ 0.267 0.535 0.802]\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.2,Page Number 45", "cell_type": "markdown", "metadata": {"collapsed": true}}, {"execution_count": 2, "cell_type": "code", "source": "import numpy as np\n\n#variable Declaration\nA=np.array([2,5,6]) # vector A\nB=np.array([1,-3,6]) # vector B\n\n#calculations\nSum = A+B # summation of two vectors\nSub = A-B # subtraction of two vectors\n\n#results\nprint \"summation of two vectors:\",Sum\nprint \"subtraction of two vectors:\",Sub\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "summation of two vectors: [ 3 2 12]\nsubtraction of two vectors: [1 8 0]\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.3,Page Number 45", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "import numpy as np\n\n#Variable Declaration\n\nA = np.array([1,1,2]) # vector A\nB = np.array([2,1,1]) # vector B\n\n#Calculations\nk = np.dot(A,B) # dot product of vector A and B\n\n#Results\n\nprint \"dot product of vector A and B:\",k\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "dot product of vector A and B: 5\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.4,Page Number 45", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "import numpy as np\n\n#Variable Declaration\n\nA = np.array([2,1,2]) # vector A\nB = np.array([1,2,1]) # vector B\n\n#Calculations\nCross = np.cross(A,B) # dot product of vector A and B\n\n#Results\n\nprint \"cross product of vector A and B:\",Cross\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "cross product of vector A and B: [-3 0 3]\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.5,Page Number 46", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "import numpy as np\n\n#Variable Declaration\n\nA = np.array([1,3,4]) # vector A\nB = np.array([1,0,2]) # vector B\n\n#Calculations\nk = np.dot(A,B) # dot product of vector A and B\n\n#Results\n\nprint \"dot product of vector A and B:\",k\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "dot product of vector A and B: 9\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.9,Page Number 46", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "from __future__ import division\nimport math\n\n#variable declaration\np = [1,2,3] # coordinates of point p\nx = 1 # x coordinate of P\ny = 2 # y coordinate of P\nz = 3 # z coordinate of P\n\n#Calculations\nrho = math.sqrt(x**2+y**2) #radius of cylinder in m\nphi = (math.atan(y/x))*(180/math.pi) # azimuthal angle in degrees\nz = 3 # in m\n\n\n#results\nprint \"radius of cylinder is:\",round(rho,2),\"m\"\nprint \"azimuthal angle is:\",round(phi,2),\"degrees\"\nprint \"z coordinate is:\",z,\"m\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radius of cylinder is: 2.24 m\nazimuthal angle is: 63.43 degrees\nz coordinate is: 3 m\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.10,Page Number 47", "cell_type": "markdown", "metadata": {}}, {"execution_count": 27, "cell_type": "code", "source": "from __future__ import division\nfrom math import cos,sin,pi,atan\nimport numpy as np\n\n#Variable Declaration\n\nA = np.array([4,2,1]) # vector A\nA_x = 4 # x coordinate of P\nA_y = 2 # y coordinate of P\nA_z = 1 # z coordinate of P\n\n\n#calculations\nphi = atan(A_y/A_x) # azimuthal in radians\nA_rho = (A_x*cos((phi)))+(A_y*sin((phi))) # x coordinate of cylinder\nA_phi = (-A_x*sin(phi))+(A_y*cos(phi)) # y coordinate of cylinder\nA_z = 1 # z coordinate of cylinder\nA = [A_rho,A_phi,A_z] # cylindrical coordinates if vector A\n\n#Result\nprint \"cylindrical coordinates of vector A:\",np.around(A,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "cylindrical coordinates of vector A: [ 4.472 0. 1. ]\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.12,Page Number 47", "cell_type": "markdown", "metadata": {}}, {"execution_count": 22, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,acos,atan\nimport numpy as np\n\n#Variable Declaration\nP = np.array([1,2,3]) # coordinates of point P in cartezian system\nx = 1 # x coordinate of point P in cartezian system\ny = 2 # y coordinate of point P in cartezian system\nz = 3 # z coordinate of point P in cartezian system\n\n#calculations\nr = sqrt(x**2+y**2+z**2) # radius of sphere in m\ntheta = acos(z/r) # angle of elevation in degrees\nphi = atan(x/y) # azimuthal angle in degrees\n\n#results\nprint \"radius of sphere is:\",round(r,3),\"m\"\nprint \"angle of elevation is:\",round(theta,3),\"radians\"\nprint \"azimuthal angle is:\",round(phi,3),\"radians\"\n\n\n# note : answer in the book is incomplete they find only one coordinate but there are three\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radius of sphere is: 3.742 m\nangle of elevation is: 0.641 radians\nazimuthal angle is: 0.464 radians\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.17,Page Number 48", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "import numpy as np\n\n#variable declaration\nA_p=22 # power gain\n\n#calulation\nA_p_dB=10*(np.log10(A_p)) # power gain in dB\n\n#result\nprint \"power gain is:\",round(A_p_dB,3),\"dB\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain is: 13.424 dB\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.18,Page Number 48", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "import numpy as np\n\n#variable declaration\nA_v=95 # voltage gain\n\n#calculation\nA_v_dB=20*(np.log10(A_v)) # voltage gain in dB\n\n#result\nprint \"voltage gain is:\",round(A_v_dB,3),\"dB\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "voltage gain is: 39.554 dB\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.19,Page Number 48", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "import numpy as np\nfrom math import sqrt\n\n#variable declaration\nA_p = 16 # power gain\n\n#calculations\nA_p_Np = np.log(sqrt(A_p)) # power gain in Np\n\n#results\nprint \"power gain is:\",round(A_p_Np,3),\"Np\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain is: 1.386 Np\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.20,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "import numpy as np\n\n#variable declaration\nA_i = 34 # current gain\n\n#calculations\nA_i_Np = np.log(A_i) # current gain in Nepers\n\n#result\nprint \"power gain is:\",round(A_i_Np,3),\"Np\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain is: 3.526 Np\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.21,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "from __future__ import division\nimport cmath \nfrom math import sqrt,pi\n\n\n#variable declaration\nA=2+4j # complex number A\n\n#calculations\nmagnitude = abs(A) # magnitude of complex number A\nphi = cmath.phase(A)*(180/pi) # phase of complex number A in degrees\n\n#results\nprint \"magnitude of complex number A is:\",round(magnitude,3)\nprint \"phase of complex number A is:\",round(phi,3),\"degrees\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "magnitude of complex number A is: 4.472\nphase of complex number A is: 63.435 degrees\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.22,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\nimport cmath\n\n#variable declaration\nA = 1+3j # complex no. A\n\n#calculations\nc = A.conjugate() # conjugate of complex no. A\nmagnitude = abs(A) # magnitude of complex number A\nphi = cmath.phase(A)*(180/pi) # phase of complex number A in degrees\n\n\n#results\nprint \"magnitude of complex number A is:\",round(magnitude,3)\nprint \"phase of complex number A in degrees:\",round(phi,3)\nprint \"conjugate of complex no. A:\",c\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "magnitude of complex number A is: 3.162\nphase of complex number A in degrees: 71.565\nconjugate of complex no. A: (1-3j)\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.23,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 24, "cell_type": "code", "source": "from __future__ import division\nfrom math import cos,sin,radians\nimport numpy as np\n\n#variable declaration\nrho = 5 # magnitude of the complex number A\nphi = 45 # phase of a complex number A in Degrees\n\n#calculations\nx = rho*cos(radians(phi)) # real part of complex number A\ny = rho*sin(radians(phi)) # imaginary part of complex number A\nA = complex(x,y) # complex number A\n\n#results\nprint \"real part of complex number A:\",round(x,3)\nprint \"imaginary part of complex number A:\",round(y,3)\nprint \"complex number A:\",np.around(A,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "real part of complex number A: 3.536\nimaginary part of complex number A: 3.536\ncomplex number A: (3.536+3.536j)\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.24,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 16, "cell_type": "code", "source": "#Variable Declaration\n\nA_1 = 2+3j # complex number A_1\nA_2 = 4+5j # complex number A_2\n\n\n#calculation\nA = A_1 + A_2\n\n#Result\nprint \"sum of complex numbers A_1 and A_2 is:\",A\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "sum of complex numbers A_1 and A_2 is: (6+8j)\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.25,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 17, "cell_type": "code", "source": "#Variable Declaration\n\nA_1 = 6j # complex number A_1\nA_2 = 1-2j # complex number A_2\n\n\n#calculation\nA = A_1 - A_2\n\n#Result\nprint \"Difference of complex numbers A_1 and A_2 is:\",A\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Difference of complex numbers A_1 and A_2 is: (-1+8j)\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.26,Page Number 49", "cell_type": "markdown", "metadata": {}}, {"execution_count": 18, "cell_type": "code", "source": "#Variable Declaration\n\nA = 0.4 + 5j # complex number A\nB = 2+3j # complex number B\n\n\n#calculation\nP = A*B\n\n#Result\nprint \"Product of complex numbers A and B is:\",P\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Product of complex numbers A and B is: (-14.2+11.2j)\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.27,Page Number 50", "cell_type": "markdown", "metadata": {}}, {"execution_count": 25, "cell_type": "code", "source": "import numpy as np\n\n#Variable Declaration\n\nA = 10+6j # complex number A\nB = 2-3j # complex number B \n\n#calculation\nD = A/B\n\n#Result\nprint \"Division of complex numbers A and B is:\",np.around(D,3)\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Division of complex numbers A and B is: (0.154+3.231j)\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.28,Page Number 50", "cell_type": "markdown", "metadata": {}}, {"execution_count": 20, "cell_type": "code", "source": "from sympy import *\n\n#variable Declaration\n\nx = Symbol('x')\np = (x)**2 + 2*x + 4\n\n#calculations\nRoots = solve(p,x)\n\n\n#result\nprint \"The roots of the given quadratic equation are:\",Roots\n\nfor i in range(len(Roots)):\n print \"Root %i = %s\" % (i + 1, str(Roots[i].n(5)))\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "The roots of the given quadratic equation are: [-1 - sqrt(3)*I, -1 + sqrt(3)*I]\nRoot 1 = -1.0 - 1.732*I\nRoot 2 = -1.0 + 1.732*I\n"}], "metadata": {"collapsed": false, "trusted": false}}, {"source": "## Example 1.31,Page Number 51", "cell_type": "markdown", "metadata": {}}, {"execution_count": 21, "cell_type": "code", "source": "from math import factorial\n\nf1 = factorial(4) # factorial of 4\nf2 = factorial(6) # factorial of 6\nprint \"factorial of 4 is:\",f1\nprint \"factorial of 6 is:\",f2\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "factorial of 4 is: 24\nfactorial of 6 is: 720\n"}], "metadata": {"collapsed": false, "trusted": false}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter2_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter2_2.ipynb
new file mode 100755
index 00000000..365781d8
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter2_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 2 : Maxwell's Equations and Electromagnetic Waves", "cell_type": "markdown", "metadata": {}}, {"source": "## Example 2.8,Page Number 112", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "from __future__ import division\nimport numpy as np\nfrom math import pi\n\n#variable delaration\nmu_0 = 4*pi*10**(-7) # permeability in free space\nmu_r1 = 3 # region 1 relative permeability\nmu_r2 = 5 # region 2 relative permeability\nmu_1 = mu_r1*mu_0 # region 1 permeability\nmu_2 = mu_r2*mu_0 # region 2 permeability\n\n#calculations\nH1 = np.array([4,1.5,-3]) # magnetic field in region 1 in A/m\nHt1 = np.array([0,1.5,-3]) # tangential component of magnetic field H1\nHn1 = np.array([4,0,0]) # normal component of magnetic field H1\nHt2 = np.array([0,1.5,-3]) # as tangential componenet of magnetic field H2 = tangential component of magnetic field H1\nHn2 = (mu_1/mu_2)*Hn1 # normal component of magnetic field H2\nH2 = Ht2+Hn2 # magnetic field in region 2 in A/m\nh2 = np.linalg.norm(H2) # magnitude of the magnetic field H2 in A/m\n\n#results\nprint \"magnetic field in region 2 in A/m:\",np.around(H2,2)\nprint \"magnitude of magnetic field in region 2 in A/m:\",round(h2,3) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "magnetic field in region 2 in A/m: [ 2.4 1.5 -3. ]\nmagnitude of magnetic field in region 2 in A/m: 4.124\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.9,Page Number 113", "cell_type": "markdown", "metadata": {}}, {"execution_count": 21, "cell_type": "code", "source": "from __future__ import division\nimport numpy as np\n\n#variable Declaration\nepsilon_0 = 8.854*10**(-12) # permittivity in free space\nsigma_1 = 0 #conductivity of medium 1\nsigma_2 = 0 #conductivity of medium 2\nepsilon_r1 = 1 # region 1 relative permittivity\nepsilon_r2 = 2 # region 2 relative permittivity\n\n#calculations\nepsilon_1 = epsilon_r1*epsilon_0 # region 1 permittivity\nepsilon_2 = epsilon_r2*epsilon_0 # region 2 permittivity\nE1 = np.array([1,2,3]) # Electric field in region 1 in V/m\nEt1 = np.array([0,2,3]) # tangential component of electric field E1\nEn1 = np.array([1,0,0]) # normal component of electric field E1\nEt2 = np.array([0,2,3]) # as tangential componenet of electric field E2 = tangential component of electric field E1\nEn2 = (epsilon_1/epsilon_2)*En1 # normal component of electric field E2\nE2 = Et2+En2 # electric field in region 2 in V/m\nDt1 = epsilon_0*Et1 # tangential component of electric flux density D1\nD2 = epsilon_2*E2 # electric flux density in region 2 in C/m**2\n\n\n#Results\nprint \"electric field in region 2 in V/m:\",np.around(E2,2)\nprint \"electric flux density in region 2 in C/m**2:\",D2 \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "electric field in region 2 in V/m: [ 0.5 2. 3. ]\nelectric flux density in region 2 in C/m**2: [ 8.85400000e-12 3.54160000e-11 5.31240000e-11]\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.12,Page Number 116", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "from __future__ import division\nimport numpy as np\nfrom math import pi\n\n#variable Declaration\n\n# H = cos(10**8*t-Beta*z)ay # magnetic field in A/m\n# E = 377*cos(10**8*t-Beta*z)ax # electric field in V/m\nomega = 10**8 # angular frequency in Hz\nv_0 = 3*10**8 # speed of light in m/s\n\n\n#calculations\nf = omega/(2*pi) # frequency in Hz\nlamda = v_0/f # wavelength in m\nBeta = (2*pi)/lamda # phase constant in rad/m\nprint \"eta_0 = E/H = 377*cos(10**8*t-Beta*z)/cos(10**8*t-Beta*z) = > E/H = 377\"\neta_0 = abs(377) # intrinsic impedence in ohm\n\n\n\n#Results\nprint \"intrinsic impedence in ohm:\",eta_0\nprint \"frequency in MHz:\",round(f/(10**6),3)\nprint \"phase constant in rad/m:\",round(Beta,3)\nprint \"wavelength in m:\",round(lamda,3)\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "eta_0 = E/H = 377*cos(10**8*t-Beta*z)/cos(10**8*t-Beta*z) = > E/H = 377\nintrinsic impedence in ohm: 377\nfrequency in MHz: 15.915\nphase constant in rad/m: 0.333\nwavelength in m: 18.85\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.14,Page Number 116", "cell_type": "markdown", "metadata": {}}, {"execution_count": 22, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\nimport numpy as np\n\n#Variable Declaration\nf = 100 # frequency in MHz\nf = 100*10**6 # frequency in Hz\nv_0=3*10**8 # speed of light in m/s\n\n\n# formula : Gamma = omega(j)*sqrt(mu_0*epsilon_0)=omega(j)/v_0 =(2j*pi*f)/v_0\nGamma =(2j*pi*f)/(v_0) # propagation constant\n\n\n#result\nprint \"propagation constant in m**-1:\",np.around(Gamma,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "propagation constant in m**-1: 2.094j\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.15,Page Number 116", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n#Variable Declaration\n\n# H(z,t) = 48*cos(10**8*t+40*z)ay # equation of magnetic field \nA = 48 # amplitude of the magnetic field in A/m\nomega = 10**8 # angular frequency in radians/sec\nBeta = 40 # phase constant in rad/m\n\n#Calculations\nf = omega/(2*pi) # frequency in Hz\nlamda = (2*pi)/Beta # wavelength in m\n\n\n#results\nprint \"amplitude of the magnetic field in A/m:\",A\nprint \"frequency in MHz:\",round(f/10**6,3)\nprint \"phase constant in rad/m:\",round(Beta,3)\nprint \"wavelength in m:\",round(lamda,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "amplitude of the magnetic field in A/m: 48\nfrequency in MHz: 15.915\nphase constant in rad/m: 40.0\nwavelength in m: 0.157\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.16,Page Number 117", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi,sqrt\n\n#Variable Declaration\n\nH = 2 # ampliutude of magnetic field in A/m\nsigma = 0 # conductivity\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\n\n#calculations\nmu = mu_0 # permeability in F/m\nepsilon = 4*epsilon_0 # permittivity in F/m\nEta_0 = 120*pi # intrinsic impedence in free space in ohm\nE_free = Eta_0*H # electric field in V/m\n\n\n#results\nprint \"magnitude of electric field in V/m in free space:\",round(E_free,3)\nEta = sqrt(mu/epsilon) # intrinsic impedence in ohm\nE = Eta*H # magnitude of electric field\nprint \"magnitude of electric field in V/m:\",round(E,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "magnitude of electric field in V/m in free space: 753.982\nmagnitude of electric field in V/m: 376.734\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.17,Page Number 117", "cell_type": "markdown", "metadata": {}}, {"execution_count": 23, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi,sqrt\nimport numpy as np\n\n\n#variable Declaration\n\nsigma = 0 # conductivity in mho/m\nf = 0.3 # frequency in GHz\nf = 0.3*10**9 # frequency in Hz\nomega = 2*pi*f # angular frequency in rad/sec\n # formula : Gamma = sqrt(1j*omega*mu*(sigma+1j*omega*epsilon)) = 1j*omega*sqrt(mu*epsilon)\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nepsilon = 9*epsilon_0 # permittivity in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nmu = mu_0 # permeability in H/m\nGamma = 1j*omega*sqrt(mu*epsilon) # propagation constant im m**-1\n\n\n#results\n\nprint \"propagation constant im m**-1:\",np.around(Gamma,3)\n # formula : eta = sqrt((1j*omega*mu)/(sigma+omega*epsilon)) = sqrt(mu/epsilon)\neta = sqrt(mu_0/(9*epsilon_0)) # intrinsic impedence in ohm\nprint \"intrinsic impedence in ohm:\",round(eta,3)\n\n\n\n# note : answer in the book is wrong.\n\n\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "propagation constant im m**-1: 18.862j\nintrinsic impedence in ohm: 125.578\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.18,Page Number 118", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable declaration\n\nlamda = 0.25 # wavelength in m\nv = 1.5*10**10 # velocity of propagation of wave in cm/sec\nv = 1.5*10**8 # velocity of propagation of wave in m/sec\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nmu = mu_0 # permeability in H/m\nv_0 = 3*10**8 # speed of light in m/s\nf = v/lamda # frequency in Hz\n # formula : v = 1/(mu*epsilon) = 1/(mu_0*epsilon_0*epsilon_r) = v_0/sqrt(epsilon_r)\nepsilon_r = (v_0/v)**2 # relative permittivity\n\n\n#results\nprint \"frequecy in MHz:\",round(f/10**6,3)\nprint \"relative permittivity:\",epsilon_r\n\n\n # note : answer in the book is wrong.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "frequecy in MHz: 600.0\nrelative permittivity: 4.0\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.19,Page Number 118", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable declaration and calculations\n\n#E = 5*sin(10**8*t+4*x)az # equation of electric field \n\nA = 5 # amplitude of the electric field\nomega = 10**8 # angular frequency in radians/sec\nf = omega/(2*pi) # frequency in Hz\nBeta = 4 # phase constant in rad/m\nv_0 = 3*10**8 # speed of light in m/s\nlamda = v_0/f # wavelength in m\n\n\n#results\nprint \"frequency in MHz:\",round(f/10**6,3)\nprint \"phase constant in rad/m:\",round(Beta,3)\nprint \"wavelength in m:\",round(lamda,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "frequency in MHz: 15.915\nphase constant in rad/m: 4.0\nwavelength in m: 18.85\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.20,Page Number 119", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\nsigma = 10**-2 # conductivity of earth in mho/m\nepsilon_r = 10 # relative permittivity\nmu_r = 2 # relative permeability\nepsilon_0 = (1/(36*pi))*10**-9 # permittivity in free space\nepsilon = epsilon_r*epsilon_0 # permittivity\nf1 = 50 # frequency in Hz\nomega1 = 2*pi*f1 # angular frequency in rad/sec\nprint \"When frequency = 50Hz:\"\nk1 = sigma/(omega1*epsilon)\nprint \"K1 is equal to\",k1\nprint \"since k1>>1 hence it behaves like a good conductor:\"\nf2 = 1 # frequency in kHz\nf2 = 1*10**3 # frequency in Hz\nomega2 = 2*pi*f2 # angular frequency in rad/sec\nprint \"When frequency = 1kHz:\"\nk2 = sigma/(omega2*epsilon)\nprint \"K2 is equal to\",k2\nprint \"since k2>>1 hence it behaves like a good conductor:\"\nf3 = 1 # frequency in MHz\nf3 = 1*10**6 # frequency in Hz\nomega3 = 2*pi*f3 # angular frequency in rad/sec\nprint \"When frequency = 1MHz:\"\nk3 = sigma/(omega3*epsilon)\nprint \"K3 is equal to\",k3\nprint \"since k3 = 18 hence it behaves like a moderate conductor:\"\nf4 = 100 # frequency in MHz\nf4 = 100*10**6 # frequency in Hz\nomega4 = 2*pi*f4 # angular frequency in rad/sec\nprint \"When frequency = 100MHz:\"\nk4 = sigma/(omega4*epsilon)\nprint \"K4 is equal to\",k4\nprint \"since k4 = 0.18 hence it behaves like a quasi-dielectric:\"\nf5 = 10 # frequency in GHz\nf5 = 10*10**9 # frequency in Hz\nomega5 = 2*pi*f5 # angular frequency in rad/sec\nprint \"When frequency = 10GHz:\"\nk5 = sigma/(omega5*epsilon)\nprint \"K5 is equal to\",k5\nprint \"since k5<<1 hence it behaves like a good dielectric:\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "When frequency = 50Hz:\nK1 is equal to 360000.0\nsince k1>>1 hence it behaves like a good conductor:\nWhen frequency = 1kHz:\nK2 is equal to 18000.0\nsince k2>>1 hence it behaves like a good conductor:\nWhen frequency = 1MHz:\nK3 is equal to 18.0\nsince k3 = 18 hence it behaves like a moderate conductor:\nWhen frequency = 100MHz:\nK4 is equal to 0.18\nsince k4 = 0.18 hence it behaves like a quasi-dielectric:\nWhen frequency = 10GHz:\nK5 is equal to 0.0018\nsince k5<<1 hence it behaves like a good dielectric:\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.21,Page Number 120", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\nimport cmath\nimport numpy as np\n\n#variable declaration\nf = 60 # frequency in Hz\nomega = 2*pi*f # angular frequency in rad/sec\nsigma = 5.8*10**7 # conductivity in mho/m\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nepsilon_r = 1 # relative permittivity\nmu_r = 1 # relative permeability\n\n\n#calculations\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu = mu_0*mu_r # permeability\nk = sigma/(omega*epsilon) # ratio\nprint \"ratio k is equal to\",k\nprint \"since k>>1 therefore it is very good conductor:\"\nalpha = sqrt(omega*mu*sigma/2) # attenuation constant in m**-1\nBeta = sqrt(omega*mu*sigma/2) # phase constant in m**-1\nGamma = alpha+(1j*Beta) # propagation constant in m**-1\nlamda = (2*pi)/Beta # wavelength\neta = cmath.sqrt(((1j*omega*mu)/sigma)) # intrinsic impedence in ohm\nv = lamda*f # phase velocity of wave in m/s\n\n\n#result\nprint \"attenuation constant in m**-1:\",round(alpha,2)\nprint \"phase constant in m**-1:\",round(Beta,2)\nprint \"propagation constant in m**-1:\",np.around(Gamma,2)\nprint \"intrinsic impedence in ohm:\",np.around(eta,10)\nprint \"wavelength in cm:\",round(lamda*100,2)\nprint \"phase velocity of wave in m/s:\",round(v,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "ratio k is equal to 1.73763020468e+16\nsince k>>1 therefore it is very good conductor:\nattenuation constant in m**-1: 117.21\nphase constant in m**-1: 117.21\npropagation constant in m**-1: (117.21+117.21j)\nintrinsic impedence in ohm: (2.0209e-06+2.0209e-06j)\nwavelength in cm: 5.36\nphase velocity of wave in m/s: 3.216\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.22,Page Number 120", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n\n#variable Declaration\n\nf1 = 60 # frequency in Hz\nomega1 = 2*pi*f1 # angular frequency in Hz\nf2 = 100 # frequency in MHz\nf2 = 100*10**6 # frequency in Hz\nomega2 = 2*pi*f2 # angular frequency in Hz\nsigma = 5.8*10**7 # conductivity in mho/m\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nepsilon_r = 1 # relative permittivity\nmu_r = 1 # relative permeability\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu = mu_0*mu_r # permeability\n\nprint \"At f = 60Hz\"\nk1 = (sigma)/(omega1*epsilon) # ratio\nprint \"ratio k is equal to\",k1\nprint \"since k>>1 therefore it is very good conductor at f = 60Hz:\"\ndelta1 = (sqrt(2/(omega1*mu*sigma))) # depth of penetration in m\nprint \"depth of penetration delta1 in m:\",delta1\n\nprint \"At f = 100Hz\"\nk2 = sigma/(omega2*epsilon) # ratio\nprint \"ratio k is equal to\",k2\nprint \"since k2>>1 therefore it is very good conductor at f = 100Hz:\"\ndelta2 = (sqrt(2/(omega2*mu*sigma))) # depth of penetration in m\nprint \"depth of penetration delta2 in m:\",delta2\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "At f = 60Hz\nratio k is equal to 1.73763020468e+16\nsince k>>1 therefore it is very good conductor at f = 60Hz:\ndepth of penetration delta1 in m: 0.00853160047351\nAt f = 100Hz\nratio k is equal to 10425781228.1\nsince k2>>1 therefore it is very good conductor at f = 100Hz:\ndepth of penetration delta2 in m: 6.60854931008e-06\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.23,Page Number 121", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n\n#variable Declaration\n\nIc = 10 # conduction current in ampere\nepsilon_r = 1 # relative permittivity\nepsilon_0 = 8.854*10**-12 # permittivity in free space\nepsilon = epsilon_r*epsilon_0 # permittivity\nsigma = 5.8*10**7 # conductivity in mho/m\n\nprint \"when f = 1MHz\"\nf = 1 # frequency in MHz\nf = 1*10**6 # frequency in Hz\nId = (2*pi*f*epsilon*Ic)/sigma # printlacement current\nprint \"displacement current when f = 1MHz in A:\",Id\nprint \"when f = 100MHz\"\nf = 100 # frequency in MHz\nf = 100*10**6 # frequency in Hz\nId = (2*pi*f*epsilon*Ic)/sigma # printlacement current\nprint \"displacement current when f = 100MHz in A:\",Id\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "when f = 1MHz\ndisplacement current when f = 1MHz in A: 9.59160736375e-12\nwhen f = 100MHz\ndisplacement current when f = 100MHz in A: 9.59160736375e-10\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.25,Page Number 122", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi,sin,cos,radians,log\n\n#variable declaration\nEm = 20 # minimum signal level required for vessel under sea water in microV/m\nEm = 20*10**-6 # minimum signal level required for vessel under sea water in V/m\nE = 100 # electric intensity of wave in V/m\nv = 3*10**8 # speed of light in m/s\nf = 4 # frequency in MHz\nf = 4*10**6 # frequency in Hz\nomega = 2*pi*f # angular frequency in Hz\nsigma = 4 # conductivity of sea water in mho/m\nepsilon_r = 81 # relative permittivity\nepsilon_0 = 8.854*10**-12 # permittivity in free space\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu_r = 1 # relative permeability\nmu_0 = 4*pi*10**(-7) # permeability in free space\nmu = mu_r*mu_0 # permeability\nk = (sigma)/(omega*epsilon) #ratio\nprint \"ratio k is equal to:\"\nprint \"ratio:\",round(k,3)\nprint \"K is >>1 so sea water is a good conductor\"\neta_1 = 377 # intrinsic impedance in free space in ohm\nalpha_1 = 0 # attenuation constant in free space in m**-1\n\n\n#calculations\nbeta_1 = omega/v # phase constant in m**-1\nmageta_2 = sqrt((omega*mu)/sigma) # magnitude of eta_2(intrinsic impedance of sea water in ohm) \nargeta_2 = 45 # argument of eta_2 in degrees\neta_2 = mageta_2*cos(radians(argeta_2))+(1j*mageta_2*sin(radians(argeta_2))) #intrinsic impedance in complex form (r*cos(theta)+1j*r*sin(theta))\nTC = 2*eta_2/(eta_1+eta_2) # transmission cofficient\nEt = abs(TC)*E # transmitted electric field in V/m\nalpha_2 = sqrt((omega*mu*sigma)/2) # attenuation constant for sea water in m**-1\n# formula: Et*exp(-alpha_2*d) = Em\nd = -(1/alpha_2)*(log(Em/Et)) # depth in the sea that can be reached by the aeroplane in m\n\n\n#result\nprint \"depth in the sea that can be reached by the aeroplane in m:\",round(d,5)\n\n\n# note 1: the value of alpha_2 in book is 7.905 but it is \"7.94\" exactly calculated by python.\n#note 2 : The correct answer of the Depth(d) is \"1.41095\" the answer in the book is wrong.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "ratio k is equal to:\nratio: 221.92\nK is >>1 so sea water is a good conductor\ndepth in the sea that can be reached by the aeroplane in m: 1.41095\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.27,Page Number 124", "cell_type": "markdown", "metadata": {}}, {"execution_count": 15, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable declaration\n\neta_0=377 # intrinsic impedance in free space in ohm\nprint \"E=sin(omega*t-beta*z)ax+2*sin(omega*t-beta*z+75)ay # electric field in V/m\"\nEx=1 # magnitude of Ex\nEy=2 # magnitude of Ey\n\n#calculations\nE=sqrt(Ex**2+Ey**2) # resultant magnitude\nPav=((1/2)*E**2)/(eta_0) # power per unit area conveyed by the wave in free space\n\n#results\nprint \"power per unit area conveyed by the wave in free space in mW/m**2:\",round(Pav*1000,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "E=sin(omega*t-beta*z)ax+2*sin(omega*t-beta*z+75)ay # electric field in V/m\npower per unit area conveyed by the wave in free space in mW/m**2: 6.631\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.28,Page Number 125", "cell_type": "markdown", "metadata": {}}, {"execution_count": 16, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable declaration\n\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nepsilon_r = 4 # relative permittivity\nmu_r = 1 # relative permeability\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu = mu_0*mu_r # permeability\nH = 5 # magnitude of magnetic field in mA/m\nH = 5*10**-3 # magnitude of magnetic field in A/m\n\n#calculations\neta = sqrt(mu/epsilon) # intrinsic impedence in ohm\nE = H*sqrt(mu/epsilon) # magnitude of electric field\nP_av = E**2/(2*eta) # average power\nW_E = epsilon*E**2 # maximum energy density of the wave\n\n\n#results\nprint \"Average power in micro*w/m**2:\",round(P_av*10**6,2)\nprint \"maximum energy density of the wave in PJ/m*3:\",round(W_E*10**12,3)\n\n\n#note: P_av is = 2353.75 in book but it is 2354.58 correctly calculated by python.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Average power in micro*w/m**2: 2354.59\nmaximum energy density of the wave in PJ/m*3: 31.416\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.29,Page Number 125", "cell_type": "markdown", "metadata": {}}, {"execution_count": 17, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable declaration\n\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nepsilon_r = 1 # relative permittivity\nmu_r = 1 # relative permeability\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu = mu_0*mu_r # permeability\nE = 100*sqrt(pi) # magnitude of electric field in V/m\n\n\n#calculations\nW_E = (1/2)*epsilon*E**2 # electric energy density of the wave\nW_H = W_E # as the energy density is equal to that of magnetic field for a pla`ne travelling wave\nW_T = W_E+W_H # total energy density\n\n#results\nprint \"electric energy density of the wave in nJ/m**3:\",round(W_E*10**9,3)\nprint \"magnetic energy density of wave in nJ/m**3:\",round(W_H*10**9,3)\nprint \"Total energy density in nJ/m**3:\",round(W_T*10**9,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "electric energy density of the wave in nJ/m**3: 139.078\nmagnetic energy density of wave in nJ/m**3: 139.078\nTotal energy density in nJ/m**3: 278.157\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.30,Page Number 126", "cell_type": "markdown", "metadata": {}}, {"execution_count": 18, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable Declaration\n\nsigma = 5 # conductivity of sea water in mho/m\nf1 = 25 # frequency in kHz\nf1 = 25*10**3 # frequency in Hz\nomega1 = 2*pi*f1 # angular frequency in Hz\nf2 = 25 # frequency in MHz\nf2 = 25*10**6 # frequency in Hz\nomega2 = 2*pi*f2 # angular frequency in Hz\nepsilon_r = 81 # relative permittivity\nepsilon_0 = 8.854*10**(-12) # permittivity in free space\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu_r = 1 # relative permeability\nmu_0 = 4*pi*10**(-7) # permeability in free space\nmu = mu_r*mu_0 # permeability\n\n#calculations and results\n\nprint \"when frequency = 25kHz\"\nalpha_1 = omega1*sqrt((mu*epsilon)/2*(sqrt(1+(sigma**2/(omega1**2*epsilon**2)))-1)) # attenuation constant when f = 25kHz\n# formula: exp(-alpha*x) = 0.1\nx1 = 2.3/alpha_1 # transmitted distance in m\nprint \"transmitted distance in m:\",round(x1,3)\nprint \"when frequency = 25MHz\"\nalpha_2 = omega2*sqrt((mu*epsilon)/2*(sqrt(1+(sigma**2/(omega2**2*epsilon**2)))-1)) # attenuation constant when f = 25MHz\nx2 = 2.3/alpha_2 # transmitted distance in m\nprint \"transmitted distance in m:\",round(x2,3)\n\n\n# note: the values of epsilon_r = 81 and of mu_r = 1 for sea water which are not given in the book.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "when frequency = 25kHz\ntransmitted distance in m: 3.274\nwhen frequency = 25MHz\ntransmitted distance in m: 0.105\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.31,Page Number 126", "cell_type": "markdown", "metadata": {}}, {"execution_count": 19, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi,radians,asin,cos,sin,degrees\n\n#variable Declaration\n\nE_i = 1 # magnitude of incident electric field in mV/m\nE_i = 1*10**-3 # magnitude of incident electric field in V/m\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\ntheta_i = 15 # incident angle in degrees\nepsilon_r1 = 8.5 # relative permittivity of medium 1\nmu_r1 = 1 # relative permeability of medium 1\nepsilon1 = epsilon_r1*epsilon_0 # permittivity\nmu1 = mu_0*mu_r1 # permeability\neta1 = sqrt(mu1/epsilon1) # intrinsic impedence of medium 1 in ohm\nepsilon2 = epsilon_0 # permittivity of medium 2\nmu2 = mu_0 # permeability of medium 2\neta2 = sqrt(mu2/epsilon2) # intrinsic impedence of medium 2 in ohm\n\n#calculations and result\n\n# formula : sin(theta_i)/sin(theta_t) = sqrt(epsilon2/epsilon1)\ntheta_t = asin(sin(radians(theta_i)))/(sqrt(epsilon2/epsilon1)) # transmitted angle in degrees\nE_r = (E_i*(((eta2*cos(radians(theta_i))))-(eta1*cos(radians((theta_i))))))/((eta2*cos(radians(theta_i)))+(eta1*cos(radians(theta_i)))) # reflection cofficient of electric field\nprint \"reflection cofficient of electric field in mV/m:\",round(E_r*1000,3)\nH_i = E_i/eta1 # incident cofficient of magnetic field\nprint \"incident cofficient of magnetic field in micro*A/m:\",round(H_i*10**6,3)\nH_r = E_r/eta1 # reflection cofficient of electric field\nprint \"reflection cofficient of magnetic field in micro*A/m:\",round(H_r*10**6,3)\n\n\n#note : minute difference in decimel in the value of H_i and H_r.\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "reflection cofficient of electric field in mV/m: 0.489\nincident cofficient of magnetic field in micro*A/m: 7.739\nreflection cofficient of magnetic field in micro*A/m: 3.786\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 2.32,Page Number 127", "cell_type": "markdown", "metadata": {}}, {"execution_count": 20, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi,sqrt\n\n#variable declaration\n\nsigma = 5.8*10**7 # conductivity in mho/m\nf = 2 # frequency in MHz\nf = 2*10**6 # frequency in Hz\nomega = 2*pi*f # angular frequency in rad/sec\nE = 2 # magnitude of electric field in mV/m\nE = 2*10**-3 # magnitude of electric field in V/m\nepsilon_0 = 8.854*10**-12 # permittivity in free space in F/m\nmu_0 = 4*pi*10**-7 # permeability in free space in H/m\nepsilon_r = 1 # relative permittivity\nmu_r = 1 # relative permeability\nepsilon = epsilon_r*epsilon_0 # permittivity\nmu = mu_0*mu_r # permeability\n\n# calculations\neta = sqrt(mu*omega/sigma) # intrinsic impedence in ohm\nP_av = (1/2)*E**2/eta # average power density anbsorbed by copper\n\n#result\nprint \"average power density anbsorbed by copper in mW/m**2:\",round(P_av*1000,2)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "average power density anbsorbed by copper in mW/m**2: 3.83\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter3_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter3_2.ipynb
new file mode 100755
index 00000000..c72b3bb7
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter3_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 3 : Radiation and Antennas", "cell_type": "markdown", "metadata": {}}, {"source": "## Example 3.1,Page Number 158", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "from __future__ import division\nfrom sympy import Symbol\nfrom math import pi\n\nLm = Symbol(\"Lm'\")# defining Lm as lambda\ndl = Lm/40 # dipole length\nRr = 80*(pi)**(2)*(dl/Lm)**2\nprint \"radiation resistance of dipole in ohm if dl = Lm/40 :\",round(Rr,3)\ndl = Lm/60 # dipole length\nRr = 80*(pi)**(2)*(dl/Lm)**2\nprint \"radiation resistance of dipole in ohm if dl = Lm/60 :\",round(Rr,3)\ndl = Lm/80 # dipole length\nRr = 80*(pi)**(2)*(dl/Lm)**2\nprint \"radiation resistance of dipole in ohm if dl = Lm/80 :\",round(Rr,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radiation resistance of dipole in ohm if dl = Lm/40 : 0.493\nradiation resistance of dipole in ohm if dl = Lm/60 : 0.219\nradiation resistance of dipole in ohm if dl = Lm/80 : 0.123\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 3.3,Page Number 160", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "from __future__ import division\nfrom sympy import Symbol\nfrom math import pi,sqrt\n\n#variable declaration\n\nPr = 1 #power in watt\nEta0 = 120*(pi) # constant\n\n#calculations\nI = sqrt(Pr/73) # current in A\nr = Symbol('r')\nE_max = 60*I/r\nRI = (r**2*E_max**2)/Eta0 # radiation intensity\nGd_max = (4*(pi)*(RI))/Pr\n\n\n#result\nprint \"Directivity of a half wave dipole is:\",round(Gd_max,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Directivity of a half wave dipole is: 1.644\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 3.4,Page Number 160", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "#variable declaration\n\nRr=300 # radiation resistance in ohm\nI=3 # in A\n\n#calculations\n#formula: Pr=I**2*R\nPr=I**2*Rr # power radiated in watt\n\n#result\nprint \"power radiated by antenna in watts:\",Pr\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power radiated by antenna in watts: 2700\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 3.5,Page Number 161", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n#variable delaration\n\nf = 500 #frequency in mega hertz\nf = 500*10**6 #frequency in hertz\nc = 3*10**8 #speed of light in m/s\nGdmax = 1.644 # directivity of a half wave dipole\n\n\n#calculations\nlamda = c/f #wavelength in meter\nAe = ((lamda)**2*Gdmax)/(4*(pi)) # Effective area in m**2\n\n#result\nprint \"effective area of half wave dipole in m**2:\",round(Ae,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "effective area of half wave dipole in m**2: 0.047\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 3.6,Page Number 161", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n#variable delaration\nf = 100 #frequency in Mhz\nf = 100*10**6 #frequency in hertz\nc = 3*10**8 #speed of light in m/s\nD = 1.5 # directivity \n\n#calculations\nlamda = c/f #wavelength in meter\nAe = (lamda**2*D)/(4*(pi)) # effective area in m**2\n\n\n#result\nprint \"Effective area of hertezian dipole in m**2:\",round(Ae,2)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Effective area of hertezian dipole in m**2: 1.07\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter4_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter4_2.ipynb
new file mode 100755
index 00000000..7166fa05
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter4_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 4 : Analysis of Linear Arrays", "cell_type": "markdown", "metadata": {}}, {"source": "## Example 4.1,Page Number 195", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "from __future__ import division\nfrom sympy import Symbol\n\nL = Symbol('L') #Defining L as lambda\nl = 10*L \nN = 20 # number of elements\nd = l/N \nBW1 = (2*(L/d)*1/N) #bandwidth\nprint \"Null-to-null BW of broadside array in radians when l = 10*L,N = 20:\",round(BW1,2)\nl = 50*L\nN = 100 # number of elements\nd = l/N\nBW2 = (2*(L/d)*1/N) #bandwidth\nprint \"Null-to-null BW of broadside array in radians when l = 50*L,N = 100:\",round(BW2,2)\nl = 20*L\nN = 50 # number of elements\nd = l/N\nBW3 = (2*(L/d)*1/N) #bandwidth\nprint \"Null-to-null BW of broadside array in radians when l = 20*L,N = 50:\",round(BW3,2)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Null-to-null BW of broadside array in radians when l = 10*L,N = 20: 0.2\nNull-to-null BW of broadside array in radians when l = 50*L,N = 100: 0.04\nNull-to-null BW of broadside array in radians when l = 20*L,N = 50: 0.1\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.2,Page Number 196", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "from __future__ import division\nfrom sympy import Symbol\nfrom math import sqrt\n\nL = Symbol('L') #Defining L as lambda\nl = 10*L \nN = 20 # number of elements\nd = l/N \nBW1 = 2*sqrt((2*(L/d)*1/N)) #bandwidth\nprint \"Null-to-null BW of end-fire array in radians when l = 10*L,N = 20:\",round(BW1,3)\nl = 50*L\nN = 100 # number of elements\nd = l/N\nBW2 = 2*sqrt((2*(L/d)*1/N)) #bandwidth\nprint \"Null-to-null BW of end-fire array in radians when l = 50*L,N = 100:\",round(BW2,3)\nl = 20*L\nN = 50 # number of elements\nd = l/N\nBW3 = 2*sqrt((2*(L/d)*1/N)) #bandwidth\nprint \"Null-to-null BW of end-fire array in radians when l = 20*L,N = 50:\",round(BW3,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Null-to-null BW of end-fire array in radians when l = 10*L,N = 20: 0.894\nNull-to-null BW of end-fire array in radians when l = 50*L,N = 100: 0.4\nNull-to-null BW of end-fire array in radians when l = 20*L,N = 50: 0.632\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.3,Page Number 196", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable declaration\n\nf = 6 #frequency in GHz\nf = 6*10**9 #frequency in Hz\nc = 3*10**8 #speed of light in m/s\nl = 10 # array length in meter\n\n#calculations\nlamda = c/f #wavelength in meter\n# formula : BWFN = 2*lambda/l\nBWFN = 2*(lamda/l) # band width in radians\nD = 2*(l/lamda) # directivity\n\n#result\nprint \"null-to-null Beamwidth of broad side array in radians:\",round(BWFN,2)\nprint \"Directivity:\",round(D,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "null-to-null Beamwidth of broad side array in radians: 0.01\nDirectivity: 400.0\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.4,Page Number 197", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n#variable declaration\nf = 10 #frequency in Ghz\nf = 10*10**9 #frequency in hertz\nc = 3*10**8 #speed of light in m/s\nlamda = c/f #wavelength in meter\nN = 50 # number of elements\n\n#calculations\nd = 0.5*lamda # element spacing in meter\nBeta = 2*(pi)/lamda # phase shift\nalpha = Beta*d # progressive phase shift in radians\nl = N*d # Array length in meter\n\n\n#result\nprint \"progressive phase shift in radians:\",round(alpha,3)\nprint \"Array length in meter\",round(l,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "progressive phase shift in radians: 3.142\nArray length in meter 0.75\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.5,Page Number 197", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\nfrom sympy import Symbol\n\n\n#variable declaration\nN = 100 # no. of elements\nLm = Symbol('Lm') # defining Lm as lambda\n\n#calculations\nd = 0.5*Lm\nl = N*d # array length\nBWFN = 114.6 /(l/Lm) # beam width in degrees \nHPBW = BWFN/2 # half power beam width in degrees\nD1 = 2*(l/Lm) # directivity of broad side array\nD2 = 4*(l/Lm) # directivity of end fire array\n\n#result\nprint \"half power beamwidth in degrees:\",round(HPBW,3)\nprint \"null-to-null beamwidth in degrees:\",round(BWFN,3)\nprint \"directivity of broad side array:\",round(D1,1)\nprint \"directivity of end fire array:\",round(D2,1)\n\n# note : answer in the book is mis-printed,the HPBW is not 11.46 it should be 1.146 degrees. \n\n# note: misprint in second step of part a in book correct is l = N*d = 100*0.5*lamda = 50*lamda \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "half power beamwidth in degrees: 1.146\nnull-to-null beamwidth in degrees: 2.292\ndirectivity of broad side array: 100.0\ndirectivity of end fire array: 200.0\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.9,Page Number 200", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "from __future__ import division\nimport numpy as np\nfrom math import factorial\n\n\n# formula :combination(n,r)=(factorial(n))/(factorial(r)*factorial(n-r))\nprint(\"when n=2\")\nn=2\na_0=factorial(1)/factorial(0)*factorial(1) #relative excitation level 1\na_1=factorial(1)/factorial(1)*factorial(0) #relative excitation level 2\nprint \"relative excitation levels of binomial array at n=2:\",np.array([a_0,a_1])\nprint(\"when n=3\")\nn=3\na_1=factorial(1)/factorial(1)*factorial(0) #relative excitation level 2\na_0=2*a_1 # relative excitation level 1\nprint \"relative excitation levels of binomial array at n=3:\",np.array([a_1,a_0,a_1])\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "when n=2\nrelative excitation levels of binomial array at n=2: [ 1. 1.]\nwhen n=3\nrelative excitation levels of binomial array at n=3: [ 1. 2. 1.]\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.10,Page Number 200", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10,pi\n\n\n#variable declaration\nd = 30 #separation distance in meter\nf = 10 #frequency in mega hertz\nf = 10*10**6 #frequency in hertz\nc = 3*10**8 #speed of light in m/s\nlamda = c/f #wavelength in meter\nGt = 1.65 #transmitting gain in dB\nGr = 1.65 #receiving gain in dB\n\n#calculations\n\n# basic transmission loss :\n# formula : Lb = 10*log(((4*(pi)*d)**2/(lamda)**2))\nLb = 10*log10((4*(pi)*d)**2/(lamda)**2) # basic transmmision loss in dB\n# actual transmission loss :\nLa = Lb-Gt-Gr # actual transmisson loss in dB\n\n#result\nprint \"basic transmmision loss in dB:\",round(Lb,3)\nprint \"actual transmisson loss in dB:\",round(La,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "basic transmmision loss in dB: 21.984\nactual transmisson loss in dB: 18.684\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.11,Page Number 201", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10,pi\n\n\nf = 0.3 #frequency in Ghz\nf = 0.3*10**9 #frequency in hertz\nc = 3*10**8 #speed of light in m/s\nlamda = c/f #wavelength in meter\nd1 = 1.6 # in Km\nd1 = 1.6*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb1 = 20*log10(4*pi*d1/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 1.6Km,f = 0.3GHz:\",round(Lb1,3)\nd2 = 16 # in Km\nd2 = 16*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb2 = 20*log10(4*pi*d2/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 16Km,f = 0.3GHz:\",round(Lb2,3)\nd3 = 160 # in Km\nd3 = 160*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb3 = 20*log10(4*pi*d3/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 160Km,f = 0.3GHz:\",round(Lb3,3)\nd4 = 320 # in Km\nd4 = 320*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb4 = 20*log10(4*pi*d4/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 320Km,f = 0.3GHz:\",round(Lb4,3)\n# when frequency is 3Ghz\n# given :\nf = 3 #frequency in Ghz\nf = 3*10**9 #frequency in hertz\nc = 3*10**8 #speed of light in m/s\nlamda = c/f #wavelength in meter\nd1 = 1.6 # in Km\nd1 = 1.6*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb1 = 20*log10(4*pi*d1/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 1.6Km,f = 3GHz:\",round(Lb1,3)\nd2 = 16 # in Km\nd2 = 16*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb2 = 20*log10(4*pi*d2/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 16Km,f = 3GHz:\",round(Lb2,3)\nd3 = 160 # in Km\nd3 = 160*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb3 = 20*log10(4*pi*d3/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 160Km,f = 3GHz:\",round(Lb3,3)\nd4 = 320 # in Km\nd4 = 320*10**3 # in meter\n# formula : Lb = 20*log10((4*(pi)*d)/(lamda))\nLb4 = 20*log10(4*pi*d4/lamda) # basic transmission loss in dB\nprint \"basic transmission loss in dB when d = 320Km,f = 3GHz:\",round(Lb4,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "basic transmission loss in dB when d = 1.6Km,f = 0.3GHz: 86.067\nbasic transmission loss in dB when d = 16Km,f = 0.3GHz: 106.067\nbasic transmission loss in dB when d = 160Km,f = 0.3GHz: 126.067\nbasic transmission loss in dB when d = 320Km,f = 0.3GHz: 132.087\nbasic transmission loss in dB when d = 1.6Km,f = 3GHz: 106.067\nbasic transmission loss in dB when d = 16Km,f = 3GHz: 126.067\nbasic transmission loss in dB when d = 160Km,f = 3GHz: 146.067\nbasic transmission loss in dB when d = 320Km,f = 3GHz: 152.087\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.12,Page Number 202", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10,pi\n\nGt=10 # transmission gain in dB\nGr=10 # receiving gain in dB\n#when frequency=0.3GHz\n# given :\nf=0.3 #frequency in Ghz\nf=0.3*10**9 #frequency in hertz\nc=3*10**8 #speed of light in m/s\nlamda=c/f #wavelength in meter\nd1=1.6 # in Km\nd1=1.6*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb1=20*log10(4*pi*d1/lamda) # basic transmission loss in dB\nLa1=Lb1-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=1.6Km,f=0.3GHz:\",round(La1,2)\nd2=16 # in Km\nd2=16*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb2=20*log10(4*pi*d2/lamda) # basic transmission loss in dB\nLa2=Lb2-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=16Km,f=0.3GHz:\",round(La2,2)\nd3=160 # in Km\nd3=160*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb3=20*log10(4*pi*d3/lamda) # basic transmission loss in dB\nLa3=Lb3-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=160Km,f=0.3GHz:\",round(La3,2)\nd4=320 # in Km\nd4=320*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb4=20*log10(4*pi*d4/lamda) # basic transmission loss in dB\nLa4=Lb4-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=320Km,f=0.3GHz:\",round(La4,2)\n# when frequency is 3Ghz\n# given :\nf=3 #frequency in Ghz\nf=3*10**9 #frequency in hertz\nc=3*10**8 #speed of light in m/s\nlamda=c/f #wavelength in meter\nd1=1.6 # in Km\nd1=1.6*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb1=20*log10(4*pi*d1/lamda) # basic transmission loss in dB\nLa1=Lb1-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=1.6Km,f=3GHz:\",round(La1,2)\nd2=16 # in Km\nd2=16*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb2=20*log10(4*pi*d2/lamda) # basic transmission loss in dB\nLa2=Lb2-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=16Km,f=3GHz:\",round(La2,2)\nd3=160 # in Km\nd3=160*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb3=20*log10(4*pi*d3/lamda) # basic transmission loss in dB\nLa3=Lb3-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=160Km,f=3GHz:\",round(La3,2)\nd4=320 # in Km\nd4=320*10**3 # in meter\n# formula : Lb=20*log10((4*(pi)*d)/(lamda))\nLb4=20*log10(4*pi*d4/lamda) # basic transmission loss in dB\nLa4=Lb4-Gt-Gr # Actual transmission loss in dB \nprint \"Actual transmission loss in dB when d=320Km,f=3GHz:\",round(La4,2)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Actual transmission loss in dB when d=1.6Km,f=0.3GHz: 66.07\nActual transmission loss in dB when d=16Km,f=0.3GHz: 86.07\nActual transmission loss in dB when d=160Km,f=0.3GHz: 106.07\nActual transmission loss in dB when d=320Km,f=0.3GHz: 112.09\nActual transmission loss in dB when d=1.6Km,f=3GHz: 86.07\nActual transmission loss in dB when d=16Km,f=3GHz: 106.07\nActual transmission loss in dB when d=160Km,f=3GHz: 126.07\nActual transmission loss in dB when d=320Km,f=3GHz: 132.09\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 4.13,Page Number 203", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n#variable declaration\n\nWt = 15 # radaited power in watt\nf = 60 # in MHz\nf = 60*10**6 # in Hz\nd = 10 # in m\nc = 3*10**8 # in m/s\nlamda = c/f # in meter\nGt = 1.64 # transmitting gain in dB\nGr = 1.64 # receiving gain in dB\n\n\n#calculations\nWr = (Wt*Gt*Gr*(lamda)**2/(4*(pi)*d)**2) # receiving power in watt\n\n#result\nprint \"receiving power in mW:\",round(Wr*1000,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "receiving power in mW: 63.87\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter6_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter6_2.ipynb
new file mode 100755
index 00000000..7051aef3
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter6_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 6 : HF,VHF AND UHF ANTENNAS", "cell_type": "markdown", "metadata": {}}, {"source": "## EXAMPLE 6.1,PAGE NUMBER 278 ", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "from math import pi,sin\n\n# Variable Declaration\n\nf = 30 # frequency in MHz\nf = 30*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in meter\nDelta = 30 # angle of elevation in Degrees\n\n#calculation\n\nH = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\nl = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\nphi = 90-Delta # tilt angle in Degrees\n\n#Results\n\nprint \"Rhombic height is:\",round(H,2),\"meter\"\nprint \"Tilt angle is:\",round(phi,2),\"degrees\"\nprint \"length of wire is:\",round(l,2),\"meter\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Rhombic height is: 5.0 meter\nTilt angle is: 60.0 degrees\nlength of wire is: 20.0 meter\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.2,PAGE NUMBER 278", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "from math import pi,sin\n\n\n# Variable Declaration\n\nf = 20 # frequency in MHz\nf = 20*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in meter\n\n#calculation\n\nDelta = 10 # angle of elevation in Degrees\nH = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\nl = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\nphi = 90-Delta # tilt angle in Degrees\n\n#Results\n\nprint \"Rhombic height is:\",round(H,3),\"meter\"\nprint \"Tilt angle is:\",round(phi,2),\"degrees\"\nprint \"length of wire is:\",round(l,3),\"meter\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Rhombic height is: 21.595 meter\nTilt angle is: 80.0 degrees\nlength of wire is: 248.726 meter\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.3,PAGE NUMBER 279-281", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "from math import pi,sin,cos\n\n\n\n# Variable Declaration\n\nf = 30 # frequency in MHz\nf = 30*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in meter\n\n#calculation and results:\n\n\n\nprint \"for Delta = 10 degrees\"\n\n\nDelta1 = 10 # angle of elevation in Degrees\nH1 = lamda/(4 * sin(Delta1*pi/180)) # Rhombic height in m\nl1 = lamda/(2 * sin(Delta1*pi/180) **2) # wire length in m\nphi1 = 90-Delta1 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H1,3),\"meter\"\nprint \"Tilt angle is:\",round(phi1,2),\"degrees\"\nprint \"length of wire is:\",round(l1,2),\"meter\"\n\n\n\n\nprint \"for Delta = 15 degrees\"\n\n\nDelta2 = 15 # angle of elevation in Degrees\nH2 = lamda/(4 * sin(Delta2*pi/180)) # Rhombic height in m\nl2 = lamda/(2 * sin(Delta2*pi/180) **2) # wire length in m\nphi2 = 90-Delta2 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H2,3),\"meter\"\nprint \"Tilt angle is:\",round(phi2,2),\"degrees\"\nprint \"length of wire is:\",round(l2,2),\"meter\"\n\n\n\nprint \"for Delta = 20 degrees\"\n\n\nDelta3 = 20 # angle of elevation in Degrees\nH3 = lamda/(4 * sin(Delta3*pi/180)) # Rhombic height in m\nl3 = lamda/(2 * sin(Delta3*pi/180) **2) # wire length in m\nphi3 = 90-Delta3 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H3,3),\"meter\"\nprint \"Tilt angle is:\",round(phi3,2),\"degrees\"\nprint \"length of wire is:\",round(l3,2),\"meter\"\n\n\n\n\nprint \"for Delta = 25 degrees\"\n\n\nDelta4 = 25 # angle of elevation in Degrees\nH4 = lamda/(4 * sin(Delta4*pi/180)) # Rhombic height in m\nl4 = lamda/(2 * sin(Delta4*pi/180) **2) # wire length in m\nphi4 = 90-Delta4 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H4,3),\"meter\"\nprint \"Tilt angle is:\",round(phi4,2),\"degrees\"\nprint \"length of wire is:\",round(l4,2),\"meter\"\n\n\n\n\nprint \"for Delta = 30 degrees\"\n\n\nDelta5 = 30 # angle of elevation in Degrees\nH5 = lamda/(4 * sin(Delta5*pi/180)) # Rhombic height in m\nl5 = lamda/(2 * sin(Delta5*pi/180) **2) # wire length in m\nphi5 = 90-Delta5 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H5,3),\"meter\"\nprint \"Tilt angle is:\",round(phi5,2),\"degrees\"\nprint \"length of wire is:\",round(l5,2),\"meter\"\n\n\n\n\nprint \"for Delta = 35 degrees\"\n\n\nDelta6 = 35 # angle of elevation in Degrees\nH6 = lamda/(4 * sin(Delta6*pi/180)) # Rhombic height in m\nl6 = lamda/(2 * sin(Delta6*pi/180) **2) # wire length in m\nphi6 = 90-Delta6 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H6,3),\"meter\"\nprint \"Tilt angle is:\",round(phi6,2),\"degrees\"\nprint \"length of wire is:\",round(l6,2),\"meter\"\n\n\n\n\nprint \"for Delta = 40 degrees\"\n\n\nDelta7 = 40 # angle of elevation in Degrees\nH7 = lamda/(4 * sin(Delta7*pi/180)) # Rhombic height in m\nl7 = lamda/(2 * sin(Delta7*pi/180) **2) # wire length in m\nphi7 = 90-Delta7 # tilt angle in Degrees\nprint \"Rhombic height is:\",round(H7,3),\"meter\"\nprint \"Tilt angle is:\",round(phi7,2),\"degrees\"\nprint \"length of wire is:\",round(l7,2),\"meter\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "for Delta = 10 degrees\nRhombic height is: 14.397 meter\nTilt angle is: 80.0 degrees\nlength of wire is: 165.82 meter\nfor Delta = 15 degrees\nRhombic height is: 9.659 meter\nTilt angle is: 75.0 degrees\nlength of wire is: 74.64 meter\nfor Delta = 20 degrees\nRhombic height is: 7.31 meter\nTilt angle is: 70.0 degrees\nlength of wire is: 42.74 meter\nfor Delta = 25 degrees\nRhombic height is: 5.916 meter\nTilt angle is: 65.0 degrees\nlength of wire is: 27.99 meter\nfor Delta = 30 degrees\nRhombic height is: 5.0 meter\nTilt angle is: 60.0 degrees\nlength of wire is: 20.0 meter\nfor Delta = 35 degrees\nRhombic height is: 4.359 meter\nTilt angle is: 55.0 degrees\nlength of wire is: 15.2 meter\nfor Delta = 40 degrees\nRhombic height is: 3.889 meter\nTilt angle is: 50.0 degrees\nlength of wire is: 12.1 meter\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.4,PAGE NUMBER 281", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "from math import pi,sin,cos\n\n\n\n# Variable Declaration\n\nf = 30 # frequency in MHz\nf = 30*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in meter\nDelta = 30 # angle of elevation in Degrees\n\n#calculation\n\nk = 0.74 # constant\nH = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\nl = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\nphi = 90-Delta # tilt angle in Degrees\n\n#Results\n\nprint \"Rhombic height is:\",round(H,2),\"meter\"\nprint \"Tilt angle is:\",round(phi,2),\"degrees\"\nprint \"length of wire is:\",round(l,2),\"meter\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Rhombic height is: 5.0 meter\nTilt angle is: 60.0 degrees\nlength of wire is: 14.8 meter\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.5,PAGE NUMBER 282", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "from math import pi,sin\n\n\n# Variable Declaration\n\nf = 20 # frequency in MHz\nf = 20*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in meter\nDelta = 20 # angle of elevation in Degrees\nk = 0.74 # constant\n\n#calculation\n\nH = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\nl = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\nphi = 90-Delta # tilt angle in Degrees\n\n\n#Results\n\n\nprint \"Rhombic height is:\",round(H,2),\"meter\"\nprint \"Tilt angle is:\",round(phi,2),\"degrees\"\nprint \"length of wire is:\",round(l,2),\"meter\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Rhombic height is: 10.96 meter\nTilt angle is: 70.0 degrees\nlength of wire is: 47.44 meter\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.6,PAGE NUMBER 282", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "from __future__ import division\n\n\n\n# Variable Declaration\n\n\nf_MHz = 172 # frequency in MHz\nc = 3*10**8 # speed of light in m/s\n\n#calculation\n\nlamda = c/f_MHz # wavelength in m\nLa = 478/f_MHz # length of driven element in feet\nLr = 492/f_MHz # length of reflector in feet\nLd = 461.5/f_MHz # length of director in feet\nS = 142/f_MHz # element spacing in feet\n\n\n#Results\n\n\nprint \"length of driven element is:\", round(La,2),\"feet\"\nprint \"length of reflector is:\", round(Lr,2),\"feet\"\nprint \"length of director is:\", round(Ld,3),\"feet\"\nprint \"element spacing is:\",round(S,3),\"feet\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "length of driven element is: 2.78 feet\nlength of reflector is: 2.86 feet\nlength of director is: 2.683 feet\nelement spacing is: 0.826 feet\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.7,PAGE NUMBER 283", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "from __future__ import division\n\n# Variable Declaration\n\n\nG = 12 # required gain in dB\nf = 200 # frequency in MHz \nf = 200*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\n\n#calculations\n\n\nlamda = c/f # wavelength in m\nLa = 0.46*lamda # length of driven element in m (note: in book La is given 0.416*lamda misprint)\nLr = 0.475*lamda # length of reflector in m\nLd1 = 0.44*lamda # length of director1 in m\nLd2 = 0.44*lamda # length of director2 in m\nLd3 = 0.43*lamda # length of director3 in m\nLd4 = 0.40*lamda # length of director4 in m\nSL = 0.25*lamda # spacing between reflector and driver in m\nSd = 0.31*lamda # spacing director and driving element in m\nd = 0.01*lamda # diameter of elements in m\nl = 1.5*lamda # length of array in m\n\n\n#Results\n\n\nprint \"length of driven element is:\" ,round(La,2),\"m\"\nprint \"length of reflector is:\",round(Lr,4),\"m\"\nprint \"length of director1 is:\",round(Ld1,2),\"m\"\nprint \"length of director2 is:\",round(Ld2,2),\"m\"\nprint \"length of director3 is:\",round(Ld3,3),\"m\"\nprint \"length of director4 is:\",round(Ld4,2),\"m\"\nprint \"spacing between reflector and driver is:\",round(SL,3),\"m\"\nprint \"spacing director and driving element is:\",round(Sd,3),\"m\"\nprint \"diameter of elements is:\",round(d,3),\"m\"\nprint \"length of array is:\",round(l,2),\"m\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "length of driven element is: 0.69 m\nlength of reflector is: 0.7125 m\nlength of director1 is: 0.66 m\nlength of director2 is: 0.66 m\nlength of director3 is: 0.645 m\nlength of director4 is: 0.6 m\nspacing between reflector and driver is: 0.375 m\nspacing director and driving element is: 0.465 m\ndiameter of elements is: 0.015 m\nlength of array is: 2.25 m\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.8,PAGE NUMBER 283", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "from __future__ import division\nfrom math import atan\n\n\n# Variable Declaration\n\n\nG = 9 # required gain in dB\nf_l = 125 # lowest frequency in MHz\nf_l = 125*10**6 # lowest frequency in Hz\nf_h = 500 # highest frequency in MHz\nf_h = 500*10**6 # lowest frequency in Hz\nc = 3*10**8 # speed of light in m/s\ntau = 0.861 # scaling factor\nsigma = 0.162 # spacing factor\n\n\n#calculation\n\n\nlamda_l = c/f_l # longest wavelength in m\nlamda_s = c/f_h # shortest wavelength in m\nalpha = 2*atan((1-tau)/(4*sigma)) # wedge angle in Degrees\nL1 = lamda_l/2 # in m\nL2 = tau*L1 # in m\nL3 = tau*L2 # in m\nL4 = tau*L3 # in m\nL5 = tau*L4 # in m\nL6 = tau*L5 # in m\nL7 = tau*L6 # in m\nL8 = tau*L7 # in m\nL9 = tau*L8 # in m\nL10 = tau*L9 # in m\nL11 = tau*L10 # in m\n\n# element spacing relation\n#formula : sn = 2*sigma*Ln\n\n\nS1 = 2*sigma*L1 # in m\nS2 = 2*sigma*L2 # in m\nS3 = 2*sigma*L3 # in m\nS4 = 2*sigma*L4 # in m\nS5 = 2*sigma*L5 # in m\nS6 = 2*sigma*L6 # in m\nS7 = 2*sigma*L7 # in m\nS8 = 2*sigma*L8 # in m\nS9 = 2*sigma*L9 # in m\nS10 = 2*sigma*L10 # in m\nS11 = 2*sigma*L11 # in m\n\n\n\n#results\n\n\nprint(\"designing of log-periodic antenna:\")\n\nprint \"L1 is:\",round(L1,4),\"m\"\nprint \"L2 is:\",round(L2,4),\"m\"\nprint \"L3 is:\",round(L3,4),\"m\"\nprint \"L4 is:\",round(L4,4),\"m\"\nprint \"L5 is:\",round(L5,4),\"m\"\nprint \"L6 is:\",round(L6,4),\"m\"\nprint \"L7 is:\",round(L7,4),\"m\"\nprint \"L8 is:\",round(L8,4),\"m\"\nprint \"L9 is:\",round(L9,4),\"m\"\nprint \"L10 is:\",round(L10,4),\"m\"\nprint \"L11 is:\",round(L11,4),\"m\"\n\nprint \"elements spacing relation:\"\n\nprint \"S1 is:\",round(S1,4),\"m\"\nprint \"S2 is:\",round(S2,4),\"m\"\nprint \"S3 is:\",round(S3,4),\"m\"\nprint \"S4 is:\",round(S4,4),\"m\"\nprint \"S5 is:\",round(S5,4),\"m\"\nprint \"S6 is:\",round(S6,4),\"m\"\nprint \"S7 is:\",round(S7,4),\"m\"\nprint \"S8 is:\",round(S8,4),\"m\"\nprint \"S9 is:\",round(S9,4),\"m\"\nprint \"S10 is:\",round(S10,4),\"m\"\nprint \"S11 is:\",round(S11,4),\"m\"\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "designing of log-periodic antenna:\nL1 is: 1.2 m\nL2 is: 1.0332 m\nL3 is: 0.8896 m\nL4 is: 0.7659 m\nL5 is: 0.6595 m\nL6 is: 0.5678 m\nL7 is: 0.4889 m\nL8 is: 0.4209 m\nL9 is: 0.3624 m\nL10 is: 0.312 m\nL11 is: 0.2687 m\nelements spacing relation:\nS1 is: 0.3888 m\nS2 is: 0.3348 m\nS3 is: 0.2882 m\nS4 is: 0.2482 m\nS5 is: 0.2137 m\nS6 is: 0.184 m\nS7 is: 0.1584 m\nS8 is: 0.1364 m\nS9 is: 0.1174 m\nS10 is: 0.1011 m\nS11 is: 0.087 m\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.9,PAGE NUMBER 285", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "from math import pi,cos,sqrt\n\n\n# Variable Declaration\n\nE_rms = 10 # electric field in mV/m\nE_rms = 10*10 **-3 # electric field in V/m\nf = 2 # frequency in MHz\nf = 2*10 **6 # frequency in Hz\nN = 10 # number of turns\nphi = 0 # angle between the plane of loop and direction of incident wave in Degrees\nS = 1.4 # area of loop antenna in m **2\nc = 3*10 **8 # speed of light in m/s\n\n#calculation\n\nlamda = c/f # wavelength in m\nE_max = sqrt(2)*E_rms # electric field in V/m\nV_rms = (2*pi*E_max*S*N/lamda)*cos(phi) # induced voltage\n\n#Result\n\nprint \"induced voltage is:\",round(V_rms*1000,2),\"mV\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "induced voltage is: 8.29 mV\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.10,PAGE NUMBER 285", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "\n# Variable Declaration\n\n\nD = 0.5 # diameter of loop antenna in m\na = D/2 # radius of loop antenna in m\nf = 1 # frequency in MHz\nf = 1*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\n\n#calculation\n\nlamda = c/f # wavelength in m\nRr = 3720*(a/lamda) # radiation resistance of loop antenna in ohm\n\n\n#Results\n\nprint \"radiation resistance of loop antenna is:\",Rr,\"ohm\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radiation resistance of loop antenna is: 3.1 ohm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.11,PAGE NUMBER 285-286", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n# Variable Declaration\n\na = 0.5 # radius of loop antenna in m\nf = 0.9 # frequency in MHz\nf = 0.9*10**6 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\n\n#calculation\n\nlamda = c/f # wavelength in m\nk = (2*pi*a)/lamda # constant\n\n#Results\n\nprint \"the value of k is:\",round(k,2)\nprint \"since,k<1/3\"\nprint \"So Directivity of loop antenna is D = 1.5\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "the value of k is: 0.01\nsince,k<1/3\nSo Directivity of loop antenna is D = 1.5\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.13,PAGE NUMBER 286", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "from sympy import Symbol\n\n#variable declaration and calculation\n\nLm = Symbol('Lm') # defining Lm as lambda\nd = 1.5*Lm # diameter of antenna in m\na = d/2 # radius of antenna in m\nRr = 3720*(a/Lm) # radiation resistance of loop antenna in ohm\nD = 4.25*(a/Lm) # Directivity of the loop antenna\n\n#results\n\nprint \"radiation resistance of the loop antenna is:\",round(Rr,0),\"ohm\"\nprint \"Directivity of the loop antenna is:\",round(D,4)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radiation resistance of the loop antenna is: 2790.0 ohm\nDirectivity of the loop antenna is: 3.1875\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.14,PAGE NUMBER 287", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "from math import sqrt,pi\nfrom sympy import Symbol\n\n#Variable declaration\n\nGp = 28 # power gain\n\n#calculations\n\nLm = Symbol('Lm') # defining Lm as lamda\nd = Lm/2 # length of dipole\n\n#formula : Gp = 4*(L/lamda)\n\nL = Gp*Lm/4 # array length\nN = 7*2 # Number of elements in the array when spaced at lamda/2\n\n# formula : B.W = 2*sqrt((2*/N)*(lamda/d))\n\nBW = 2*sqrt(2*Lm/(N*d)) # null-to-null beam width in radians\nBW_d = BW*180/pi # null-to-null beam width in degrees\n\n#Results\n\nprint \"Number of elements in the array when spaced at lamda/2 are:\",N\nprint \"array length(where Lm is wavelength in m) is:\",L,\"m\"\nprint \"null-to-null beam width is:\",round(BW_d,1),\"degrees\"\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Number of elements in the array when spaced at lamda/2 are: 14\narray length(where Lm is wavelength in m) is: 7*Lm m\nnull-to-null beam width is: 61.3 degrees\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## EXAMPLE 6.15,PAGE NUMBER 287", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi,sqrt\n\n\n# Variable Declaration\n\nS = 0.05 # spacing in m\nDh = 0.1 # diameter of helical antenna in m\nN = 20 # number of turns\nf = 1000 # frequency in MHz\nf = 1000*10**6 # frequency in MHz\nc = 3*10**8 # speed of light in m/s\n\n\n#calculation\n\n\nlamda = c/f # wavelength in m\nC = pi*Dh # circumfrence of helix in m\nLa = N*S # axial legth in m\nphi_not = (115*(lamda**(3/2))/(C*sqrt(La))) # B.W.F.N., null-to-null beamwidth of main beam in Degreess\nphi = (52*lamda**(3/2)/(C*sqrt(La))) # H.P.B.W, half power beamwidth in Degreess\nD = (15*N*C**2*S/(lamda)**3) # Directivity\n\n#Results\n\nprint \"B.W.F.N., null-to-null beamwidth of main beam is:\",round(phi_not,1),\"degrees\"\nprint \"H.P.B.W, half power beamwidth is:\",round(phi,1),\"degrees\"\nprint \"Directivity is:\",round(D,2)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "B.W.F.N., null-to-null beamwidth of main beam is: 60.1 degrees\nH.P.B.W, half power beamwidth is: 27.2 degrees\nDirectivity is: 54.83\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter7_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter7_2.ipynb
new file mode 100755
index 00000000..51c148f2
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter7_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 7 : Microwave Antennas", "cell_type": "markdown", "metadata": {}}, {"source": "## Example 7.1,Page Number 337", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "from __future__ import division\n\n\n#variable declaration\nD = 2 # Diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 5 # frequency in GHz\nf = 5*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nBWFN = 140*(lamda/D) # null-to-null beamwidth in degrees\nHPBW = 70*(lamda/D) # half power beamwidth in degrees\n\n#result\nprint \"null-to-null beamwidth in degrees:\",round(BWFN,3)\nprint \"half power beamwidth in degrees:\",round(HPBW,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "null-to-null beamwidth in degrees: 4.2\nhalf power beamwidth in degrees: 2.1\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.2,Page Number 337", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nD = 2 # mouth diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 5 # frequency in GHz\nf = 5*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nG = 6.4*(D/lamda)**2 # power gain of paraboloid\nG_p = 10*log10(G) #power gain in dB\n\n#result\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 38.519\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.3,Page Number 337", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\n\nD_a = 0.15 # mouth Diameter of paraboloid in m\nc = 3*10**8 # speed of light in m/s\nf = 10 # frequency in GHz\nf = 10*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nBWFN = 140*(lamda/D_a) # null-to-null beamwidth in degrees\nHPBW = 70*(lamda/D_a) # half power beamwidth in degrees\nG_p = 6.4*(D_a/lamda)**2 # power gain of paraboloid\nG_p = 10*log10(G_p) # power gain in dB\n\n#result\nprint \"null-to-null beamwidth in degrees:\",round(BWFN,3)\nprint \"half power beamwidth in degrees:\",round(HPBW,3)\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "null-to-null beamwidth in degrees: 28.0\nhalf power beamwidth in degrees: 14.0\npower gain in dB: 22.041\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.4,Page Number 338", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nD_a = 1.8 #mouth diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 2 # frequency in GHz\nf = 2*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nG_p = 6.4*(D_a/lamda)**2 # power gain of paraboloid\nG_p = 10*log10(G_p) # power gain in dB\n\n\n#result\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 29.645\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.5,Page Number 338", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nc = 3*10**8 # speed of light in m/s\nf = 5 # frequency in GHz\nf = 5*10**9 # frequency in Hz\nlamda = c/f # wavelength in m\nBWFN = 10 # null-to-null beamwidth in degrees\n\n#calculations\n# formula: BWFN = 140*(lamda/D_a)\nD_a = 140*lamda/BWFN # mouth Diameter of paraboloid reflector in m\nHPBW = 70*(lamda/D_a) # half power beamwidth in degrees\nG_p = 6.4*(D_a/lamda)**2 # power gain of paraboloid\n\n#result\nprint \"half power beamwidth in degrees:\",round(HPBW,3)\nprint \"mouth Diameter of paraboloid reflector in m:\",round(D_a,3)\nprint \"power gain of paraboloid:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "half power beamwidth in degrees: 5.0\nmouth Diameter of paraboloid reflector in m: 0.84\npower gain of paraboloid: 1254.4\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.6,Page Number 339", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10,pi\n\n#variable declaration\nb = 0.65 # illumination efficiency\nD_a = 6 # mouth diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 10 # frequency in GHz\nf = 10*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nA = pi*(D_a)**2/4 # Actual area in m**2\nA_c = 0.65*A # capture area in m**2\nD = 6.4*(D_a/lamda)**2 # directivity\nD = 10*log10(D) # directivity in dB\nphi = 70*(lamda/D_a) # half power beam width in degrees\nphi_not = 2*phi # null-to-null main beam width in degrees\n\n#result\nprint \"directivity in dB:\",round(D,3)\nprint \"half power beam width in degrees:\",round(phi,3)\nprint \"null-to-null main beam width in degrees:\",round(phi_not,3)\nprint \"capture area in m**2:\",round(A_c,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "directivity in dB: 54.082\nhalf power beam width in degrees: 0.35\nnull-to-null main beam width in degrees: 0.7\ncapture area in m**2: 18.378\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.7,Page Number 339", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "from __future__ import division\n\n#variable declaration\nD_a = 6 # Diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 4 # frequency in GHz\nf = 4*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nr = (2*D_a**2)/lamda # required minimum distance between two antennae in m\n\n\n#result\nprint \"required minimum distance between two antennae in m:\",round(r,3) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "required minimum distance between two antennae in m: 960.0\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.8,Page Number 340", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable declaration\nG_p = 1000 # gain\nc = 3*10**8 # speed of light in m/s\nf = 3 # frequency in GHz\nf = 3*10**9 # frequency in Hz\nlamda = c/f # wavelength in m\n\n#calculations\n# formula : G_p = 6.4*(D_a/lambda)**2 # power gain\nD_a = lamda*(sqrt(G_p/6.4)) # mouth Diameter of paraboloid in m\nBWFN = 140*(lamda/D_a) # null-to-null beamwidth in degrees\nHPBW = 70*(lamda/D_a) # half power beamwidth in degrees\n\n#result\nprint \"mouth Diameter of paraboloid in m\",round(D_a,3)\nprint \"null-to-null beamwidth in degrees:\",round(BWFN,3)\nprint \"half power beamwidth in degrees:\",round(HPBW,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "mouth Diameter of paraboloid in m 1.25\nnull-to-null beamwidth in degrees: 11.2\nhalf power beamwidth in degrees: 5.6\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.9,Page Number 340", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable declaration\nc = 3*10**8 # speed of light in m/s\nf = 10 # frequency in GHz\nf = 10*10**9 # frequency in Hz\nlamda = c/f # wavelength in m\nG_p = 75 # power gain in dB\n\n#calculations\n\n# formula : G_p = 10*log10(G_p) # power gain in dB\nG = 10**(G_p/10) # simple power gain\n# formula : G = 6.4*(D_a/lamda)**2 # power gain\nD_a = lamda*(sqrt(G/6.4)) # mouth Diameter of paraboloid in m\nA = pi*(D_a)**2/4 # Actual area in m**2\nA_c = 0.65*A # capture area in m**2\nBWFN = 140*(lamda/D_a) # null-to-null beamwidth in degrees\nHPBW = 70*(lamda/D_a) # half power beamwidth in degrees\n\n\n#result\nprint \"null-to-null beamwidth in degrees:\",round(BWFN,3)\nprint \"half power beamwidth in degrees:\",round(HPBW,3)\nprint \"capture area in m**2:\",round(A_c,3)\n\n#answer of capture area is slightly more as compare to the book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "null-to-null beamwidth in degrees: 0.063\nhalf power beamwidth in degrees: 0.031\ncapture area in m**2: 2270.209\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.10,Page Number 341", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10,pi\n\n#variable declaration\nD_a = 60 # mouth diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 2 # frequency in GHz\nf = 2*10**9 # frequency in Hz\n\n#calculations\nlamda = c/f # wavelength in m\nphi = 70*(lamda/D_a) # half power beam width in degrees\nphi_not = 140*(lamda/D_a) # null-to-null main beam width in degrees\nG_p = 6.4*(D_a/lamda)**2 # power gain of paraboloid\nG_p = 10*log10(G_p) #power gain in dB\n\n#result\nprint \"half power beam width in degrees:\",round(phi,3)\nprint \"null-to-null main beam width in degrees:\",round(phi_not,3)\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "half power beam width in degrees: 0.175\nnull-to-null main beam width in degrees: 0.35\npower gain in dB: 60.103\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.11,Page Number 342", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nD = 22 # mouth diameter of paraboloid reflector in m\nc = 3*10**8 # speed of light in m/s\nf = 5 # frequency in GHz\nf = 5*10**9 # frequency in Hz\nlamda = c/f # wavelength in m\nb = 0.6 # illumination efficiency\n\n\n#calculations\nG_p = b*(D/lamda)**2 # power gain of paraboloid\nG_p = 10*log10(G_p) #power gain in dB\n\n#result\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 49.067\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.12,Page Number 342", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "from __future__ import division\nfrom math import pi\n\n#variable declaration\nc = 3*10**8 # speed of light in m/s\nf = 2 # frequency in GHz\nf = 2*10**9 # frequency in Hz\nlamda = c/f # wavelength in m\nBWFN = 12 # null-to-null main beam width in degrees\n\n#calculalations\n# formula : BWFN = 140*(lamda/D_a)\nD_a = 140*lamda/BWFN # mouth diameter of paraboloid reflector in m\nA = pi*(D_a)**2/4 # Actual area in m**2\nA_c = 0.65*A # capture area in m**2\n\n#result\nprint \"mouth diameter of paraboloid reflector in m:\",round(D_a,3)\nprint \"capture area in m**2:\",round(A_c,4)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "mouth diameter of paraboloid reflector in m: 1.75\ncapture area in m**2: 1.5634\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.13,Page Number 343", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nc=3*10**8 # speed of light in m/s\nf=2.5 # frequency in GHz\nf=2.5*10**9 # frequency in Hz\nlamda=c/f # wavelength in m\nBWFN=3 # null-to-null main beam width in degrees\n\n#calculations\n# formula : BWFN=140*(lamda/D_a)\nD_a=140*lamda/BWFN # mouth diameter of paraboloid reflector in m\nG=6.4*(D_a/lamda)**2 # power gain of paraboloid\nG_p=10*log10(G) #power gain in dB\n\n#calculations\nprint \"power gain in dB:\",round(G_p,3)\nprint \"mouth diameter of paraboloid reflector in m:\",round(D_a,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 41.442\nmouth diameter of paraboloid reflector in m: 5.6\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.14,Page Number 343", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\nfrom sympy import Symbol\n\n#variable declaration\nphi = 5 # HPBW,half power beam width in Degrees\nphi_not = 2*phi # BWFN, null-to-null beam width in degrees\nLm = Symbol('Lm') # defining Lm as lambda\n\n#calculations\n# formula : phi = 70*(Lm/D_a) # where Lm is wavelength in m and D_a is mouth diameter in m\nD_a = (70*Lm)/phi\nG_p = 6.4*(D_a/Lm)**2\nG_p = 10*log10(G_p) # power gain in dB\n\n#result\nprint \"BWFN, null-to-null beam width in degrees:\",round(phi_not,3)\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "BWFN, null-to-null beam width in degrees: 10.0\npower gain in dB: 30.984\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.15,Page Number 344", "cell_type": "markdown", "metadata": {}}, {"execution_count": 15, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\nfrom sympy import Symbol\n\n#variable declaration\nLm = Symbol('Lm')# defining Lm as lambda\nD_a = 8*Lm # where D_a is mouth diameter in m and Lm is wavelength in m\n\n#calculations\n# formula : G_p = 6.4*(D/lambda)**2\nG_p = 6.4*(D_a/Lm)**2 #power gain\nG_p = 10*log10(G_p) # power gain in dB \n\n#result\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 26.124\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.16,Page Number 344", "cell_type": "markdown", "metadata": {}}, {"execution_count": 16, "cell_type": "code", "source": "from __future__ import division\nfrom sympy import Symbol\n\n#variable declaration\nLm = Symbol('Lm') # defining Lm as lamda\nD_a = 6*Lm # where D_a is mouth diameter in m and Lm is wavelength\n\n#calculations\n# formula : HPBW = phi = 70*(lamda/D_a)\nphi = 70*(Lm/D_a) # half power beam width in degrees\nphi_not = 2*phi # null-to-null beam width in degrees\n# formula : D = 6.4*(D_a/lambda)**2\nD = 6.4*(D_a/Lm)**2\n\n#result\nprint \"Directivity:\",round(D,3)\nprint \"half power beam width in degrees:\",round(phi,3)\nprint \"null-to-null beam width in degrees:\",round(phi_not,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Directivity: 230.4\nhalf power beam width in degrees: 11.667\nnull-to-null beam width in degrees: 23.333\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.17,Page Number 344", "cell_type": "markdown", "metadata": {}}, {"execution_count": 17, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nf = 6 # frequency in GHz\nf = 6*10**9 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in m\nd = 12 # aperture length in cm\nd = 12*10**-2 # aperture length in m\nw = 6 # aperture width in cm\nw = 6*10**-2 # aperture width in m\n\n#calculations\nphi_E = 56*(lamda/d) # half power beam width for aperture length d in Degrees\nphi_H = 67*(lamda/w) # half power beam width for aperture width w in Degrees\nG_p = (4.5*w*d)/(lamda)**2 # power gain\nG_p = 10*log10(G_p) # power gain in dB\nD =(7.5*w*d)/(lamda)**2 # Directivity\n\n#result\nprint \"half power beam width for aperture length d in Degrees:\",round(phi_E,3)\nprint \"half power beam width for aperture width w in Degrees:\",round(phi_H,3)\nprint \"power gain in dB:\",round(G_p,2)\nprint \"Directivity:\",round(D,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "half power beam width for aperture length d in Degrees: 23.333\nhalf power beam width for aperture width w in Degrees: 55.833\npower gain in dB: 11.13\nDirectivity: 21.6\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.18,Page Number 345", "cell_type": "markdown", "metadata": {}}, {"execution_count": 18, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\nfrom sympy import Symbol\n\n#variable declaration\nLm = Symbol('Lm') # defining Lm as lambda\nd = 8*Lm # where d is aperture length and Lm is wavelength\nw = 8*Lm # where w is aperture width\n\n#calculations\n#formula : G_p = (4.5*w*d)/lambda**2\nG_p = (4.5*w*d)/Lm**2 # power gain \nG_p = 10*log10(G_p) # power gain in dB\n\n#result\nprint \"power gain in dB:\",round(G_p,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 24.594\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.19,Page Number 345", "cell_type": "markdown", "metadata": {}}, {"execution_count": 19, "cell_type": "code", "source": "from __future__ import division\nfrom math import log10\n\n#variable declaration\nf = 6 # frequency in GHz\nf = 6*10**9 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in m\nd = 10 # aperture length in cm\nd = 10*10**-2 # aperture length in m\nw = 5 # aperture width in cm\nw = 5*10**-2 # aperture width in m\n\n#calculations\nG_p = (4.5*w*d)/(lamda)**2 # power gain\nG_p = 10*log10(G_p) # power gain in dB\nD = (7.5*w*d)/(lamda)**2 # Directivity\nD = 10*log10(D) # directivity in dB\n\n#result\nprint \"power gain in dB:\",round(G_p,3)\nprint \"Directivity in dB:\",round(D,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power gain in dB: 9.542\nDirectivity in dB: 11.761\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 7.20,Page Number 345", "cell_type": "markdown", "metadata": {}}, {"execution_count": 21, "cell_type": "code", "source": "from __future__ import division\nimport numpy as np\n\neta_0 = 377 #intrinsic impedance in ohm\nprint \"when Zd = 73+42.5j\" \nZd = 73+42.5j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n\nprint \"when Zd = 67+0j\"\nZd = 67+0j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n\nprint \"when Zd = 710+0j\"\nZd = 710+0j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n\n\nprint \"when Zd = 500+0j\"\nZd = 500+0j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n\n\nprint \"when Zd = 50+20j\"\nZd = 50+20j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n\n\nprint \"when Zd = 50-25j\"\nZd = 50-25j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n\n\nprint \"when Zd = 300+0j\"\nZd = 300+0j # dipole impedance\n# formula : zs*zd = (eta_0)**2/4\nZs = eta_0**2/(4*Zd) # slot impedance in ohm\nprint \"complementary slot impedance in ohm:\",np.around(Zs,2)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "when Zd = 73+42.5j\ncomplementary slot impedance in ohm: (363.53-211.64j)\nwhen Zd = 67+0j\ncomplementary slot impedance in ohm: (530.33+0j)\nwhen Zd = 710+0j\ncomplementary slot impedance in ohm: (50.05+0j)\nwhen Zd = 500+0j\ncomplementary slot impedance in ohm: (71.06+0j)\nwhen Zd = 50+20j\ncomplementary slot impedance in ohm: (612.62-245.05j)\nwhen Zd = 50-25j\ncomplementary slot impedance in ohm: (568.52+284.26j)\nwhen Zd = 300+0j\ncomplementary slot impedance in ohm: (118.44+0j)\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/chapter9_2.ipynb b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter9_2.ipynb
new file mode 100755
index 00000000..fe9a64b9
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/chapter9_2.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "# Chapter 9 : Wave Propagation", "cell_type": "markdown", "metadata": {}}, {"source": "## Example 9.1,Page Number 425", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "from __future__ import division\nfrom math import atan,degrees,sqrt,cos,pi,sin,exp,radians\n\n#variable Declaration\n\nf = 1.7 #frequency in MHz\nf = 1.7*10**6 #frequency in Hz\nE = 0.5 #electric field in mV/m\nE = 0.5*10**(-3) # electric field in V/m\nsigma = 5*10**-5 # conductivity in mho/cm\neta = 0.5 # efficiency\nepsilon_r = 10 # relative permittivity\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in m\nd = 10 # distance in km\nd = 10*10**3 # distance in m\n\n#calculations\nDf = 1.8*10**12*(sigma/f) # dissipation factor\nb = atan((epsilon_r+1)/Df)*180/pi # phase constant in degrees\np = (pi/Df)*(d/lamda)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-((sin(radians(b))*(sqrt(p/2)*(exp((-5*p)/8))))) # factor of the ground losses\n# formula: E = (A*E_not)/d\n#E_not = 300*sqrt(P_kW) # E_not is in mV/m\n#E_not = 300*sqrt(P_kW)*10**(-3) # E_not is in V/m\nP_kW = ((E*d*10**-3)/(A*300*10**-3))**2 # Power in kW and d is in km\n# formula : P = Ptx*eta\nPtx = P_kW/eta #transmitter power required in kW\n\n\n#result\nprint \"transmitter power required in W:\",round(Ptx*1000,2)\n\n#note: answer in the book is wrong.python gives Ptx = 11.49W whereas answer in the book is Ptx = 12.6W\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "transmitter power required in W: 11.49\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.2,Page Number 426", "cell_type": "markdown", "metadata": {}}, {"execution_count": 21, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi,radians,atan,cos,sin,exp\n\n#variable Declaration\n\nprint \"for frequency = 500kHz\"\nf1 = 500*10**3 # frequency in Hz\nc = 3*10**8 # speed of light in m/s\nlamda1 = c/f1 # wavelength in m\nd = 100 # distance in km\nd = 100*10**3 # distance in m\nPt = 100 # transmitter power in kW \neta = 50 # efficiency in percentage\neta = 0.5 # efficiency\nP_kW = Pt*eta # radiated power in kW\nE_not = 300*1.28*sqrt(P_kW) # field strength in mV/m without ground losses at 1km\n\n\n#calculations and result\n\n # for sea water earth\nepsilon_r = 81 # permittivity\nsigma = 45*10**-3 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f1) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda1)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2)*exp((-5*p)/8))) # factor of the ground losses\nE1 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for sea water earth in mV/m when f = 500kHz:\",round(E1*1000,3)\n\n# for good soil\nepsilon_r = 20 # permittivity\nsigma = 10**-4 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f1) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda1)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2)*exp((-5*p)/8))) # factor of the ground losses\nE2 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for good soil in mV/m when f = 500kHz:\",round(E2*1000,3)\n\n# for poor soil\nepsilon_r = 10 # permittivity\nsigma = 0.2*10**-4 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f1) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda1)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2)*exp((-5*p)/8))) # factor of the ground losses\nE3 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for poor soil in mV/m when f = 500kHz:\",round(E3*1000,3)\n\n# for cities,industrial areas\nepsilon_r = 5 # permittivity\nsigma = 10**-5 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f1) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda1)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2)*exp((-5*p)/8))) # factor of the ground losses\nE4 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for cities,industrial areas in mV/m when f = 500kHz:\",round(E4*1000,3)\n\n# for Rockey soil,flat sandy\nepsilon_r = 10 # permittivity\nsigma = 2*10**-3 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f1) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda1)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2)*exp((-5*p)/8))) # factor of the ground losses\nE5 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for Rockey soil,flat sandy in mV/m when f = 500kHz:\",round(E5*1000,3)\n\n# for medium hills,forestation\nepsilon_r = 13 # permittivity\nsigma = 5*10**-5 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f1) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda1)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2)*exp((-5*p)/8))) # factor of the ground losses\nE6 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for medium hills,forestation in mV/m when f = 500kHz:\",round(E6*1000,3)\n\n\n\nprint(\"for frequency = 1500kHz\")\n\nf2 = 1500 # in kHz\nf2 = 1500*10**(3) # in Hz\nlamda2 = c/f2 # in m\n # for sea water earth\nepsilon_r = 81 # permittivity\nsigma = 45*10**-3 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f2) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda2)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b)))*(sqrt(p/2)*exp((-5*p)/8)) # factor of the ground losses\nE1 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for sea water earth in mV/m when f = 1500kHz:\",round(E1*1000,3)\n\n# for good soil\nepsilon_r = 20 # permittivity\nsigma = 10**-4 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f2) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda2)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b)))*(sqrt(p/2)*exp((-5*p)/8)) # factor of the ground losses\nE2 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for good soil in mV/m when f = 1500kHz:\",round(E2*1000,3)\n\n# for poor soil\nepsilon_r = 10 # permittivity\nsigma = 0.2*10**-4 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f2) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda2)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b)))*(sqrt(p/2)*exp((-5*p)/8)) # factor of the ground losses\nE3 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for poor soil in mV/m when f = 1500kHz:\",round(E3*1000,3)\n\n# for cities,industrial areas\nepsilon_r = 5 # permittivity\nsigma = 10**-5 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f2) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda2)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b)))*(sqrt(p/2)*exp((-5*p)/8)) # factor of the ground losses\nE4 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for cities,industrial areas in mV/m when f = 1500kHz:\",round(E4*1000,3)\n\n# for Rockey soil,flat sandy\nepsilon_r = 10 # permittivity\nsigma = 2*10**-3 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f2) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda2)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b)))*(sqrt(p/2)*exp((-5*p)/8)) # factor of the ground losses\nE5 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for Rockey soil,flat sandy in mV/m when f = 1500kHz:\",round(E5*1000,3)\n\n# for medium hills,forestation\nepsilon_r = 13 # permittivity\nsigma = 5*10**-5 # conductivity in mho/cm\nDf = 1.8*10**12*(sigma/f2) # dissipation factor\nb = atan(radians(epsilon_r+1)/Df) # phase constant in degrees\np = (pi/Df)*(d/lamda2)*cos(radians(b)) # numerical distance\nA = ((2+0.3*p)/(2+p+0.6*p**2))-(sin(radians(b))*(sqrt(p/2))*exp((-5*p)/8)) # factor of the ground losses\nE6 = (A*E_not)/(d) # in V/m\nprint \"electric field strength for medium hills,forestation in mV/m when f = 1500kHz:\",round(E6*1000,3)\n\n\n\n\n# note 1 : misprint value of sigma in part (e) when f = 500khz correct is sigma = 2*10**-3 for rockey soil\n# note 2: The ans is rounded off at the F = 1500 kHz in poor soil and Cities, industrial area.\n# note 3 : most of the answers in the book are upto one places of decimal.python calculated them upto 3 places of decimal.\n# note 4 : Several answers in the book are not correctly calculated after decimal.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "for frequency = 500kHz\nelectric field strength for sea water earth in mV/m when f = 500kHz: 27.122\nelectric field strength for good soil in mV/m when f = 500kHz: 14.004\nelectric field strength for poor soil in mV/m when f = 500kHz: 2.769\nelectric field strength for cities,industrial areas in mV/m when f = 500kHz: 1.204\nelectric field strength for Rockey soil,flat sandy in mV/m when f = 500kHz: 26.446\nelectric field strength for medium hills,forestation in mV/m when f = 500kHz: 7.811\nfor frequency = 1500kHz\nelectric field strength for sea water earth in mV/m when f = 1500kHz: 26.874\nelectric field strength for good soil in mV/m when f = 1500kHz: 1.365\nelectric field strength for poor soil in mV/m when f = 1500kHz: 0.223\nelectric field strength for cities,industrial areas in mV/m when f = 1500kHz: 0.108\nelectric field strength for Rockey soil,flat sandy in mV/m when f = 1500kHz: 20.483\nelectric field strength for medium hills,forestation in mV/m when f = 1500kHz: 0.609\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.3,Page Number 432", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nHt=100 # height of transmittin antenna in feet\nHr=50 # height of receiving antenna in feet\n\n#calculation\nDmax = sqrt(2*Ht)+sqrt(2*Hr) # in miles\n\n#result\nprint \"maximum range of tropospheric transmission in miles:\",round(Dmax,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "maximum range of tropospheric transmission in miles: 24.142\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.4,Page Number 432", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nHt=80 # height of transmitting antenna in meter\n\n#calculation\nd=sqrt(17*Ht) # radio horizon distance of transmitting antenna\n\n#result\nprint \"radio horizon distance of transmitting antenna in Km\",round(d,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radio horizon distance of transmitting antenna in Km 36.878\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.5,Page Number 433", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nHt=80 # height of transmittin antenna in meter\nHr=50 # height of receiving antenna in meter\n\n#calculation\ndmax = sqrt(17*Ht)+sqrt(17*Hr) # in miles\n\n#result\nprint \"maximum range of tropospheric transmission in Km:\",round(dmax,3)\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "maximum range of tropospheric transmission in Km: 66.033\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.6,Page Number 433", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nDmax = 80 #distance in Km\nHt = 100 # height of transmitting antenna in meter\n\n#calculations\n# formula : Dmax = sqrt(17*Ht)+sqrt(17*Hr)\nHr = ((Dmax-(sqrt(17*Ht)))**2)/17 # height of receiving antenna in m\n\n#result\nprint \"height of receiving antenna in m\",round(Hr,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "height of receiving antenna in m 88.414\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.7,Page Number 433", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nHt=300 # height of antenna in feet\nHr=100 # height of receiving antenna in feet\n\n#calculations\ndt=sqrt(2*Ht) # radio horizon distance for a transmitting antenna in miles\ndr=sqrt(2*Hr) # radio horizon distance for a transmitting antenna in miles\ndmax=dt+dr # maximum range of space wave propagation in miles\n\n\n#result\nprint \"radio horizon distance for a transmitting antenna in miles:\",round(dt,3)\nprint \"radio horizon distance for a receiving antenna in miles:\",round(dr,3)\nprint \"maximum range of space wave propagation in miles:\",round(dmax,3) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "radio horizon distance for a transmitting antenna in miles: 24.495\nradio horizon distance for a receiving antenna in miles: 14.142\nmaximum range of space wave propagation in miles: 38.637\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.8,Page Number 433", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,pi\n\n#variable Declaration\nf = 60 # in MHz\nf = 60*10**6 # in Hertz\nc = 3*10**8 # speed of light in m/s\nlamda = c/f # wavelength in meter\nPtx = 1 # transmitting power in kilo watt\nht = 50 # height of transmiting antenna in meter\nhr = 5 # height of receiving antenna in meter\nE = 80 # electric field in micro V/m\nE = 80*10**(-6) # electric field in V/m\n\n\n#calculations\nE0 = 3*137.6*sqrt(Ptx)*(8/5)*10**3 # field in mV/m at 1 meter where Ptx is in kW\nE0 = 3*137.6*sqrt(Ptx)*(8/5)*10**3*10**(-3) # field in V/m at 1 meter where Ptx is in kW\n# formula : E = (4*(pi)*ht*hr*E0)/(lambda*d**2)\nd = sqrt((4*pi*ht*hr*E0)/(lamda*E)) # range of space wave in meter\n\n#result\nprint \"range of space wave in Km:\",round(d/1000,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "range of space wave in Km: 72.024\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.9,Page Number 434", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nhd = 30 # height of duct in m\ndelta_M = 30 # unitless\n\n#calculations\nlamda_max = 2.5*hd*sqrt(delta_M*10**-6) # maximum wavelength at which duct propagation is possible\n\n#result\nprint \"maximum wavelength at which duct propagation is possible in m:\",round(lamda_max,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "maximum wavelength at which duct propagation is possible in m: 0.411\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.10,Page Number 434", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "from __future__ import division\n\n#variable Declaration\nfc = 1.5 # critical frequency in MHz\nfc = 1.5*10**(6) # critical frequency in Hz\n\n#calculations\n# formula : fc = 9*sqrt(Nmax)\nNmax = (fc)**2/81 # electron density in electrons/m**3\n\n#result\nprint \"electron density in electrons/m**3:\",Nmax\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "electron density in electrons/m**3: 27777777777.8\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.11,Page Number 435", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nn = 0.92 # refrective index\nMUF = 10 # maximum usable frequency in MHz\nMUF = 10*10**6 # maximum usable frequency in Hz\nf = 10*10**6 # in Hz ordinary frequency and maximum usable frequency are same\nh = 400 # height of ray reflection point on the ionospheric layer in Km\nh = 400*10**3 # height of ray reflection point on the ionospheric layer in m\n\n#calcu;ations\n# formula :n = sqrt(1-(81*Nmax/f**2))\nNmax = (1-n**2)*f**2/81 # electron density in electrons/m**3\nfc = 9*sqrt(Nmax) # critical frequency in Hz\n# MUF = fc*sec(thetai)\n#sec(thetai) = MUF/fc\n# also, sec(thetai) = sqrt(h**2+(d**2/4))/h so on comparing,\nd = sqrt(((MUF*h/fc)**2-h**2)*4) # range in km\n\n#result\nprint \"Range in Km:\",round(d/1000,3)\n\n# note :answer in the book is 1876.59 where as in python is 1877.94 minute difference only\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Range in Km: 1877.942\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.12,Page Number 435", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nf=50 # in hz\nf=50*10**3 # in KHz\nN1=400 # electron density of D layer in electrons/cm**3 \nN2=5*10**5 # electron density of E layer in electrons/cm**3 \nN3=2*10**6 # electron density of F layer in electrons/cm**3 \n\n#calculations\n# formula :n=sqrt(epsilon_r)=sqrt(1-(81*N/f**2)) # WHERE f IS IN KhZ\n# for D layer\nepsilon_r1=1-(81*N1/f**2) # relative permittivity of D layer\n# for E layer\nepsilon_r2=1-(81*N2/f**2) # relative permittivity of E layer\n# for F layer\nepsilon_r3=1-(81*N3/f**2) # relative permittivity of F layer\n\n#result\nprint \"relative permittivity of D layer:\",round(epsilon_r1,3)\nprint \"relative permittivity of E layer:\",round(epsilon_r2,4)\nprint \"relative permittivity of F layer:\",round(epsilon_r3,4)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "relative permittivity of D layer: 1.0\nrelative permittivity of E layer: 0.9838\nrelative permittivity of F layer: 0.9352\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.13,Page Number 436", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,radians,asin,sin,pi,degrees\n\n#variable Declaration\nf = 50 # in hz\nf = 50*10**3 # in KHz\ntheta_i = 30 # in degrees\nN = 400 # electron density of D layer in electrons/cm**3 \n\n#calculations\n# formula :n = sqrt(epsilon_r) = sqrt(1-(81*N/f**2)) # WHERE f IS IN KhZ\n# for D layer\nepsilon_r = 1-(81*N/f**2) # relative permittivity of D layer\nn = sqrt(epsilon_r) # refrective index\n# formula : nsin(theta_r) = sin(theta_i) # snell's law\ntheta_r = asin(sin(radians(theta_i/n)))*180/pi # angle of refraction in degrees\n\n#result\nprint \"angle of refraction in degrees:\",round(theta_r,3) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "angle of refraction in degrees: 30.0\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.14,Page Number 437", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nN1 = 400 # electron density of D layer in electrons/cm**3 \nN2 = 5*10**5 # electron density of E layer in electrons/cm**3 \nN3 = 2*10**6 # electron density of F layer in electrons/cm**3\n\n#calculations\n# formula : fc = 9*sqrt(N) \nfc1 = 9*sqrt(N1) # critical frequency in Khz of EM wave for D layer\nfc2 = 9*sqrt(N2) # critical frequency in MHz of EM wave for E layer\nfc3 = 9*sqrt(N3) # critical frequency in MHz of EM wave for F layer\n\n\n#result\nprint \"critical frequency of EM wave for D layer in kHz:\",round(fc1,3)\nprint \"critical frequency of EM wave for E layer in Mhz:\",round(fc2/10**3,3)\nprint \"critical frequency of EM wave for F layer in Mhz:\",round(fc3/10**3,3)\n\n\n\n#note: the value of fc3 in book is equal to 12.8MHz but the correct is 12.72MHz.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "critical frequency of EM wave for D layer in kHz: 180.0\ncritical frequency of EM wave for E layer in Mhz: 6.364\ncritical frequency of EM wave for F layer in Mhz: 12.728\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.15,Page Number 437", "cell_type": "markdown", "metadata": {}}, {"execution_count": 15, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nNmax = 1.3*10**6 # maximum electron density in electrons/cm**3\n\n#calculations\n# formula : fc = 9*sqrt(Nmax)\nfc_khz = 9*sqrt(Nmax) # critical frequency in Khz\n\n#result\nprint \"critical frequency in Mhz:\",round(fc_khz/1000,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "critical frequency in Mhz: 10.262\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.16,Page Number 437", "cell_type": "markdown", "metadata": {}}, {"execution_count": 16, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nd = 2600 # distance between the points in Km\nd = 2600*10**3 # distance between the points in m\nfc = 4 # critical frequency in MHz\nfc = 4*10**6 # critical frequency in Hz\nh = 200 # height of ionospheric layer in km\nh = 200*10**3 # height of ionospheric layer in m\n\n\n#calculations\nMUF = fc*sqrt(1+(d/(2*h))**2) # maximum usable frequency (this step is Misprinted in the book)\n\n#result\nprint \"maximum usable frequency in MHz:\",round(MUF/10**6,3)\n\n\n\n#note: Answer in the book is wrong.\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "maximum usable frequency in MHz: 26.306\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.17,Page Number 438", "cell_type": "markdown", "metadata": {}}, {"execution_count": 17, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nN = 400 # electron density in electrons/cm**3\nn = 0.5 # refrective index\n\n#calculations\n# formula : n = sqrt(1-(81*N/f**2)) \nf = sqrt(81*N/(1-n**2)) # frequency in kHz\n\n#result\nprint \"frequency of propagating wave in kHz:\",round(f,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "frequency of propagating wave in kHz: 207.846\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.18,Page Number 438", "cell_type": "markdown", "metadata": {}}, {"execution_count": 18, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt\n\n#variable Declaration\nHt = 60 # height of transmitting antenna in meter\nHr = 6 # height of receiving antenna in meter\n\n#calculations\nd= sqrt(17*Ht)+sqrt(17*Hr) # in Km\n\n#result\nprint \"range of line of sight in Km:\",round(d,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "range of line of sight in Km: 42.037\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example 9.19,Page Number 438", "cell_type": "markdown", "metadata": {}}, {"execution_count": 19, "cell_type": "code", "source": "from __future__ import division\nfrom math import sqrt,asin,atan,pi\n\n#variable Declaration\nd=500 # distance between transmitter and receiver in km\nh=70 # height of D layer in km\n\n#calculations\ntheta_c = asin(h/(sqrt(h**2+(d**2/4))))*180/pi # critical angle in degrees\n\n#result\nprint \"critical angle of propagation in degrees:\",round(theta_c,3)\n\n\n\n#it can also be calculated from\ntheta_c = atan((2*h/d))*180/pi # critical angle in degrees\nprint \"critical angle of propagation in degrees by method 2:\",round(theta_c,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "critical angle of propagation in degrees: 15.642\ncritical angle of propagation in degrees by method 2: 15.642\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1.png
new file mode 100755
index 00000000..f45cc37d
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_1.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_1.png
new file mode 100755
index 00000000..f45cc37d
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_1.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_2.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_2.png
new file mode 100755
index 00000000..f45cc37d
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter1_2.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4.png
new file mode 100755
index 00000000..06af66db
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_1.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_1.png
new file mode 100755
index 00000000..06af66db
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_1.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_2.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_2.png
new file mode 100755
index 00000000..06af66db
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter4_2.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6.png
new file mode 100755
index 00000000..7df8bb6a
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_1.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_1.png
new file mode 100755
index 00000000..7df8bb6a
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_1.png
Binary files differ
diff --git a/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_2.png b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_2.png
new file mode 100755
index 00000000..7df8bb6a
--- /dev/null
+++ b/Antenna_and_Wave_propagation_By_GSN_Raju/screenshots/chapter6_2.png
Binary files differ
diff --git a/BASIC_ELECTRICAL_ENGINEERING_/Chapter4.ipynb b/BASIC_ELECTRICAL_ENGINEERING_/Chapter4.ipynb
index 6def9050..04c5c889 100755
--- a/BASIC_ELECTRICAL_ENGINEERING_/Chapter4.ipynb
+++ b/BASIC_ELECTRICAL_ENGINEERING_/Chapter4.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:3cfae8c34ec0891b928806727193cd8cb859809240d182673d6b8dcfad3eeded"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -488,7 +489,6 @@
" (vii) For R_L = 32 Ohms, Po = 16.00 W. \n",
" (viii) For R_L = infinity, Po = 0.00 W.\n",
"Note: Po is the power delivered to the speaker (in Watts) and R_L is the speaker resistance(in Ohms).\n",
- "Populating the interactive namespace from numpy and matplotlib\n",
"\n",
"\n",
"The required plot is shown below: "
@@ -502,19 +502,11 @@
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['streamplot', 'rc', 'tri', 'axes', 'legend', 'rc_context', 'figure', 'f', 'quiver', 'axis', 'linalg', 'draw_if_interactive', 'text', 'random', 'colors', 'stackplot', 'contour', 'colorbar', 'rcdefaults', 'table', 'power', 'info', 'fft', 'test']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\nNktHWACI0dbWLtu8efPWFStWHLp+/fr4+vp6ZT6fz50xY0aYubl5JtmtzdnZOfHq1ateAoFAJy8v\nz2j//v2BosshCIL1ww8/LMvOzjYtKSnR3bFjxxezZs06DwDg5OT097Nnz/r//fffTjU1NapbtmzZ\nIvpeDoeT/88///RqK+uePXvWlpaWsjMzM80PHjy4ktw5z549+9y+ffs+5fP53MrKSs2NGzfunDVr\n1nnyyMrDwyP28OHDy0eOHHkHoKmr4OHDh5ePGDHiLvlPu3jx4p9+/PHHpY8ePRpIEATr7du3Gleu\nXJlUWVmp2VIeLy+vq7GxsR7tWc+zZ88+9/XXX39ZVFSkX1RUpL9t27avRLsMxsbGenh6et5SVlau\nb+79ysrK9dOnT7+wdu3aPQKBQGfs2LE3AADq6+uVz549+1FZWZm2oqJio5aWVoWiomJjezKtX79+\n17Nnz/o3NDQoVVRUaB05cuSTPn36vNbR0RGQr/n666+/rK6uVnv27Fn/4OBgf3KdL1269MeNGzfu\nJAuIwsJCg0uXLk0BaDp4UFFRqdXV1S15+/atxsaNG3eKfi65Azx8+PByGxubV97e3hE1NTWqkyZN\nupKSktL3zJkzc+vr65Xr6+uV//rrL3eyC2Z7dpzi/Pz8QqqqqtQvXLgwffLkyZdbWn5712NKSkrf\n27dvj66trVVRUVGpVVVVrSFfZ2RklMfn87lkzrq6uh51dXU99PX1ixQUFISRkZETo6KixrUnt4KC\ngnDhwoUnVq9e/V1ubq5xY2Oj4oMHD4bU1dX1mDt37pmIiAjvqKiocY2NjYo1NTWqMTExvOzsbFOA\n9m2XGzZsCDp06NAK0QOzltTV1fWoqalRJafGxkZFgLa3WVqSdx0UXafjx48vtLe3T1ZTU6vicDh5\nS5cuPUI2RhFEU4PbzJkzz/fs2bPMyckpcd++fYHm5uYZ5PNcLjctKChovZ2d3TM2my3w9/c/SdZR\nEwQBO3bs2Kivr19oYWGRfubMmY8UFBQayTaA169f93Z2dk5gs9mCDz744Lfm8rFYLOGhQ4eW9+rV\n642enl7R2rVrd5N1p0KhkLVt27ZN5ubmGQYGBgXz5s07JZr95cuXNiwWS3jq1Kl5BNHUwKekpFT/\n7bfffib6GdeuXRvv7u7+iM1mC4yNjXNmzJjxS2VlpQb5/cTrQouKivTMzMwyye8ZHR3NE10nolNN\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x43b9d10>"
+ "<matplotlib.figure.Figure at 0x4950910>"
]
}
],
diff --git a/Basic_Engineering_Thermodynamics/ch1.ipynb b/Basic_Engineering_Thermodynamics/ch1.ipynb
new file mode 100755
index 00000000..db200142
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch1.ipynb
@@ -0,0 +1,287 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2e535cebdbf0df3d8142e86a92fc184d16f528ad1b16b72e6276221e73684820"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Fundamental Concepts and Definitions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 Page No : 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "distanceTravelled = 80. * 1000 \t\t\t#in meters\n",
+ "timeOfTravel = 2 * 3600. \t\t\t#in seconds\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Velocity = distanceTravelled / timeOfTravel \t\t\t#in meter/second\n",
+ "print \"Velocity = %.1f m/s \"%(Velocity);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity = 11.1 m/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2 Page No : 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "mass = 120 \t\t\t#in kg\n",
+ "acceleration = 10 \t\t\t#in m/s**2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "force = mass * acceleration * 0.001 \t\t\t#in kN\n",
+ "print \"Force = %.1f kN \"%(force);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force = 1.2 kN \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No : 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "mass = 60 \t\t\t#in kg\n",
+ "accelerationDueToGravity = 9.8 \t\t\t#in m/s**2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "weight = mass * accelerationDueToGravity \t\t\t#in N\n",
+ "print \"Weight = %.0f N \"%(weight);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight = 588 N \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 Page No : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Pg = 12E5 \t\t\t#in N/m**2 \t\t\t#inlet gauge pressure\n",
+ "Pvac = 75. / 1000 \t\t\t#in m Hg \t\t\t#exit gauge pressure\n",
+ "atmosphericPressure = 760. / 1000 \t\t\t#in m Hg \t\t\t#atmospheric pressure\n",
+ "density = 13.6 * 10**3 \t\t\t#kg/m**3 \t\t\t#density of mercury\n",
+ "g = 9.805 \t\t\t#in m/s**2 \t\t\t#acceleration due to gravity\n",
+ " \n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Pvac = density*g*Pvac \t\t\t#Pvac in N/m**2 \n",
+ "atmosphericPressure = density*g*atmosphericPressure \t\t\t#atmospheric pressure in N/m**2\n",
+ "PabsInlet = atmosphericPressure + Pg \t\t\t#in N/m**2 \t\t\t#absolute inlet pressure\n",
+ "PabsExit = atmosphericPressure - Pvac \t\t\t#in N/m**2 \t\t\t#absolute exit pressure\n",
+ "print \"At the inlet, absolute pressure = %.3f kPa \"%(PabsInlet*.001);\n",
+ "print \"At the exit, absolute pressure = %.3f kPa \"%(PabsExit*.001);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At the inlet, absolute pressure = 1301.344 kPa \n",
+ "At the exit, absolute pressure = 91.343 kPa \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 Page No : 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "mass = 50 * .001 \t\t\t#in kg\n",
+ "volume = 0.04 \t\t\t#in m**3\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "specificVolume = volume / mass \t\t\t#in m**3/kg\n",
+ "density = 1/specificVolume \t\t\t#in kg/m**3\n",
+ "print \"Specific density = %.2f m**3/kg \"%(specificVolume);\n",
+ "print \"Density = %.2f kg/m**3 \"%(density);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific density = 0.80 m**3/kg \n",
+ "Density = 1.25 kg/m**3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 Page No : 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "temp = 100; \t\t\t#in degree Celsius\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "TEMP = temp + 273.15;\n",
+ "print \"Temperature in Kelvin = %.2f K\"%(TEMP);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature in Kelvin = 373.15 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 Page No : 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "TEMP = 263.15; \t\t\t#in Kelvin\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "temp = TEMP - 273.15;\n",
+ "print \"Temperature in degree Celsius = %.2f degree C\"%(temp);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature in degree Celsius = -10.00 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch10.ipynb b/Basic_Engineering_Thermodynamics/ch10.ipynb
new file mode 100755
index 00000000..5d434dbb
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch10.ipynb
@@ -0,0 +1,665 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1a81913d8f306ac03dbac9653a74d59c865e73e675c11ff3c8d84de998d79d37"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Properties of Pure Substance - Water"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page No : 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "m = 1.5 \t\t\t#kg \t\t\t#mass of wet steam\n",
+ "mf = 0.08*m \t\t\t#kg \t\t\t#mass of liquid in wet steam\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "x = (m-mf)/m \t\t\t#dryness fraction of mixture\n",
+ "print \"Dryness fraction of mixture = %.2f\"%(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Dryness fraction of mixture = 0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page No : 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "x = 0.85 \t\t\t#quality of steam\n",
+ "print \"The ratio of mass of saturated liquid to saturated steam = %.5f\"%((1-x)/x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of mass of saturated liquid to saturated steam = 0.17647\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page No : 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "p1 = 200. \t\t\t#kPa \t\t\t#initial pressure\n",
+ "t1 = 100. \t\t\t#\u00b0C \t\t\t#initial temperature\n",
+ "ts = 120.23 \t\t\t#\u00b0C \t\t\t#saturated steam temperature\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From steam table\n",
+ "v1 = 0.001044 \t\t\t#m**3/kg \t\t\t#volume per kilogram of water \n",
+ "h1 = 419 \t\t\t#kJ/kg \t\t\t#enthalpy per kilogram of water\n",
+ "s1 = 1.3068 \t\t\t#kJ/kg \t\t\t#entropy per kilogram of water\n",
+ "u1 = h1-p1*v1 \t\t\t#kJ/kg \t\t\t#internal energy per kilogram of water\n",
+ "print \"Volume per kilogram of water = %.6f m**3/kg\"%(v1)\n",
+ "print \"Enthalpy per kilogram of water = %.1f kJ/kg\"%(h1)\n",
+ "print \"Entropy per kilogram of water = %.4f kJ/kgK\"%(s1)\n",
+ "print \"Internal energy per kilogram of water = %.1f kJ/kg\"%(u1)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume per kilogram of water = 0.001044 m**3/kg\n",
+ "Enthalpy per kilogram of water = 419.0 kJ/kg\n",
+ "Entropy per kilogram of water = 1.3068 kJ/kgK\n",
+ "Internal energy per kilogram of water = 418.8 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 Page No : 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 500. \t\t\t#kPa \t\t\t#initial pressure\n",
+ "s1 = 1.3625 \t\t\t#initial entropy\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Using Method 2:\n",
+ "Ts = 424.28 \t\t\t#K \t\t\t#temperature at 500kPa\n",
+ "sf = 1.8606 \t\t\t#kJ/kgK \t\t\t#entropy at 500kPa\n",
+ "Cwat = 4.189 \t\t\t#kJ/kgK \t\t\t#specific heat of water\n",
+ "T1 = round((math.exp((sf-s1)/Cwat)/Ts)**-1) \t\t\t#K\n",
+ "print \"Temperature = %.2f \u00b0C\"%(T1-273)\n",
+ "v1 = 0.001 \t\t\t#m**3/kg \t\t\t#volume per kg water\n",
+ "h1 = (640.21 - Cwat*(151.86-T1+273)) \t\t\t# kJ/kg \t\t\t#Enthalpy per kg water\n",
+ "u1 = h1 - p1*v1 \t\t\t#kJ/kg \t\t\t#internal energy per kg water\n",
+ "print \"Volume per kg water = %f m**3/kg\"%(v1)\n",
+ "print \"Enthalpy per kg water = %.1f kJ/kg\"%(h1)\n",
+ "print \"Internal energy per kg water = %.1f kJ/kg\"%(u1)\n",
+ "\n",
+ "# note : rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature = 104.00 \u00b0C\n",
+ "Volume per kg water = 0.001000 m**3/kg\n",
+ "Enthalpy per kg water = 439.7 kJ/kg\n",
+ "Internal energy per kg water = 439.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No : 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "t = 50. \t\t\t#\u00b0C \t\t\t#temperature of water\n",
+ "h = 209.31 \t\t\t#kJ/kg\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From saturated property table\n",
+ "p = 12.35 \t\t\t#kPa\n",
+ "v = 0.001012 \t\t\t#m**3/kg\n",
+ "u = h - p*v \t\t\t#kJ/kg\n",
+ "s = 0.7037 \t\t\t#kJ/kg\n",
+ "print \"Pressure = %.2f kPa\"%(p)\n",
+ "print \"Volume per kg water = %.6f m**3/kg\"%(v)\n",
+ "print \"Internal energy per kg water = %.1f kJ/kg\"%(u)\n",
+ "print \"Entropy per kg water = %.4f kJ/kgK\"%(s)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 12.35 kPa\n",
+ "Volume per kg water = 0.001012 m**3/kg\n",
+ "Internal energy per kg water = 209.3 kJ/kg\n",
+ "Entropy per kg water = 0.7037 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No : 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p = 12. \t\t\t#bar \t\t\t#pressure of steam leaving boiler\n",
+ "h = 2705. \t\t\t#kJ/kg \t\t\t#Enthalpy of steam\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From pressure based saturated property table, at p = 12bar\n",
+ "hf = 798.64 \t\t\t#kJ/kg\n",
+ "hg = 2784.8 \t\t\t#kJ/kg\n",
+ "x = (h-hf)/(hg-hf) \t\t\t#Dryness fraction\n",
+ "v = (1-x)*0.001139 + (x)*0.1633 \t\t\t#m**3/kg\n",
+ "s = (1-x)*2.2165 + (x)*6.5233 \t\t\t#m**3/kgK\n",
+ "u = h - p*v*100 \t\t\t#kJ/kg\n",
+ "print \"Volume per kg water = %.4f m**3/kg\"%(v)\n",
+ "print \"Internal energy per kg water = %.0f kJ/kg\"%(u)\n",
+ "print \"Entropy per kg water = %.3f kJ/kgK\"%(s)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume per kg water = 0.1568 m**3/kg\n",
+ "Internal energy per kg water = 2517 kJ/kg\n",
+ "Entropy per kg water = 6.350 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7 Page No : 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p = 15 \t\t\t#bar\n",
+ "u = 2594.5 \t\t\t#kJ/kg\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From saturated steam table based on pressure at p = 15 bar\n",
+ "hf = 844.87 \t\t\t#kJ/kg\n",
+ "hg = 2792.1 \t\t\t#kJ/kg\n",
+ "vf = 0.001154 \t\t\t#m**3/kg\n",
+ "vg = 0.13177 \t\t\t#m**3/kg\n",
+ "uf = hf-100*p*vf \t\t\t#kJ/kg\n",
+ "ug = hg-100*p*vg \t\t\t#kJ/kg\n",
+ "\n",
+ "if u-ug<0.1 :\n",
+ " print \"Temperature = %.2f \u00b0C\"%(198.32)\n",
+ " print \"Volume per kg water = %.5f m**3/kg\"%(vg)\n",
+ " print \"Enthalpy per kg water = %.1f kJ/kg\"%(hg)\n",
+ " print \"Internal energy per kg water = %.1f kJ/kg\"%(ug)\n",
+ " print \"Entropy per kg water = %.4f kJ/kgK\"%(6.4448)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature = 198.32 \u00b0C\n",
+ "Volume per kg water = 0.13177 m**3/kg\n",
+ "Enthalpy per kg water = 2792.1 kJ/kg\n",
+ "Internal energy per kg water = 2594.4 kJ/kg\n",
+ "Entropy per kg water = 6.4448 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No : 355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "p = 10e6 \t\t\t#Pa\n",
+ "t = 550. \t\t\t#\u00b0C\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From superheated property table\n",
+ "v_500 = 0.03279 \t\t\t#m**3/kg\n",
+ "v_600 = 0.03837 \t\t\t#m**3/kg\n",
+ "v_550 = v_500 + (v_500-v_600)/(500-600)*(550-500) \t\t\t#m**3/kg\n",
+ "h_500 = 3373.6 \t\t\t#kJ/kg\n",
+ "h_600 = 3625.3 \t\t\t#kJ/kg\n",
+ "h_550 = h_500 + (h_500-h_600)/(500-600)*(550-500) \t\t\t#kJ/kg\n",
+ "s_500 = 6.5965 \t\t\t#kJ/kgK\n",
+ "s_600 = 6.9028 \t\t\t#kJ/kgK\n",
+ "s_550 = s_500 + (s_500-s_600)/(500-600)*(550-500) \t\t\t#kJ/kgK\n",
+ "print \"Volume per kg water = %.6f m**3/kg\"%(v_550)\n",
+ "print \"Enthalpy per kg water = %.1f kJ/kg\"%(h_550)\n",
+ "print \"Entropy per kg water = %.4f kJ/kgK\"%(s_550)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume per kg water = 0.035580 m**3/kg\n",
+ "Enthalpy per kg water = 3499.4 kJ/kg\n",
+ "Entropy per kg water = 6.7496 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page No : 355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "t = 250. \t\t\t#\u00b0C \n",
+ "h = 2855.8 \t\t\t#kJ/kg\n",
+ "\n",
+ "#From superheated property table\n",
+ "p = 3e6 \t\t\t#Pa\n",
+ "v = 0.07058 \t\t\t#m**3/kg\n",
+ "s = 6.2871 \t\t\t#kJ/kgK\n",
+ "u = h - p*v*.001 \t\t\t#kJ/kg\n",
+ "print \"Pressure = %.1f MPa\"%(p*1e-6)\n",
+ "print \"Volume per kilogram of water = %.5f m**3/kg\"%(v)\n",
+ "print \"Enthalpy per kilogram of water = %.1f kJ/kg\"%(h)\n",
+ "print \"Entropy per kilogram of water = %.4f kJ/kgK\"%(s)\n",
+ "print \"Internal energy per kilogram of water = %.0f kJ/kg\"%(u)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 3.0 MPa\n",
+ "Volume per kilogram of water = 0.07058 m**3/kg\n",
+ "Enthalpy per kilogram of water = 2855.8 kJ/kg\n",
+ "Entropy per kilogram of water = 6.2871 kJ/kgK\n",
+ "Internal energy per kilogram of water = 2644 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10 Page No : 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "p = 2. \t\t\t#bar\n",
+ "m = 0.16 \t\t\t#kg\n",
+ "V = 0.1 \t\t\t#m**3\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#refereing to the saturation temperature corresponding to 2bar\n",
+ "v = V/m \t\t\t#m**3/kg\n",
+ "vf = 0.001061 \t\t\t#m**3/kg\n",
+ "vg = 0.8857 \t\t\t#m**3/kg\n",
+ "print 'Specific volume at saturated liquid phase vf) = %.6f m**3/kg '%(vf)\n",
+ "print 'Specific volume at saturated vapor phase vg) = %.6f m**3/kg '%(vg)\n",
+ " \n",
+ "if v<vg and v>vf :\n",
+ " print 'The temperature of the steam must be equal to saturation temperature corresponding to 2 bar'\n",
+ " print \"Temperature of steam = %.2f \u00b0C\"%(120.23)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific volume at saturated liquid phase vf) = 0.001061 m**3/kg \n",
+ "Specific volume at saturated vapor phase vg) = 0.885700 m**3/kg \n",
+ "The temperature of the steam must be equal to saturation temperature corresponding to 2 bar\n",
+ "Temperature of steam = 120.23 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11 Page No : 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 2. \t\t\t#bar\n",
+ "v1 = 0.624 \t\t\t#m**3/kg\n",
+ "t = 120.23 \t\t\t#\u00b0C\n",
+ "m = 0.16 \t\t\t#kg\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "vf = 0.001061 \t\t\t#m**3/kg\n",
+ "vg = 0.8857 \t\t\t#m**3/kg\n",
+ "x1 = (v1-vf)/(vg-vf) \t\t\t#Dryness fraction\n",
+ "hf = 504.68 \t\t\t#kJ/kg\n",
+ "hg = 2706.6 \t\t\t#kJ/kg\n",
+ "h1 = (1-x1)*hf + x1*hg \t\t\t#kJ/kg\n",
+ "u1 = h1 - p1*v1*100\t\t\t#kJ/kg\n",
+ "\n",
+ "v2 = v1 \t\t\t#m**3/kg\n",
+ "vf = 0.001044 \t\t\t#m**3/kg\n",
+ "vg = 1.673 \t\t\t#m**3/kg\n",
+ "x2 = (v1-vf)/(vg-vf) \t\t\t#Dryness fraction\n",
+ "hf = 419. \t\t\t#kJ/kg\n",
+ "hg = 2676. \t\t\t#kJ/kg\n",
+ "h2 = (1-x2)*hf + x2*hg \t\t\t#kJ/kg\n",
+ "p2 = 1.010325 \t\t\t#bar\n",
+ "u2 = h2 - (p2*100)*v2 \t\t\t#kJ/kg\n",
+ "print \"Heat rejected from steam = %.1f kJ\"%(m*(u2-u1))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat rejected from steam = -117.4 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12 Page No : 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "m =0.1 \t\t\t#kg\n",
+ "p1 = 10. \t\t\t#bar \n",
+ "p2 = 1. \t\t\t#bar\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From saturated steam table\n",
+ "v1 = 0.1944 \t\t\t#m**3/kg\n",
+ "v2 = (p1/p2)**(1/1.3)*v1 \t\t\t#m**3/kg\n",
+ "W = m*(p1*v1-p2*v2)*100/(1.3-1) \t\t\t#kJ\n",
+ "print \"Work during expansion process = %.2f kJ\"%(W)\n",
+ "h1 = 2778.1 \t\t\t#kJ/kg\n",
+ "u1 = (h1 - p1*v1*100) \t\t\t#kJ/kg\n",
+ "\n",
+ "vf = 0.001043 \t\t\t#m**3/kg\n",
+ "vg = 1.694 \t\t\t#m**3/kg\n",
+ "x2 = (v2-vf)/(vg-vf) \t\t\t#Dryness fraction\n",
+ "hf = 417.33 \t\t\t#kJ/kg\n",
+ "hg = 2675.5 \t\t\t#kJ/kg\n",
+ "h2 = (1-x2)*hf + x2*hg \t\t\t#kJ/kg\n",
+ "u2 = h2 - p2*v2*100 \t\t\t#kJ/kg\n",
+ "print \"Heat rejected from steam = %.2f kJ\"%(W+m*(u2-u1))\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work during expansion process = 26.71 kJ\n",
+ "Heat rejected from steam = -49.07 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 Page No : 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "p1 = 10. \t\t\t#bar\n",
+ "t1 = 300. \t\t\t#\u00b0C\n",
+ "V1 = 50. \t\t\t#m/s\n",
+ "p2 = 1. \t\t\t#bar\n",
+ "m = 1.2 \t\t\t#kg/s\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "\t\t\t#From superheated steam table\n",
+ "h1 = 3051.2 \t\t\t#kJ/kg\n",
+ "s1 = 7.1228 \t\t\t#kJ/kgK\n",
+ "p2 = 1 \t\t\t#bar\n",
+ "s2 = s1 \t\t\t#kJ/kgK\n",
+ "\n",
+ "sf = 1.3025 \t\t\t#kJ/kgK\n",
+ "sg = 7.3593 \t\t\t#kJ/kgK\n",
+ "x2 = (s2-sf)/(sg-sf) \t\t\t#Dryness fraction\n",
+ "hf = 417.44 \t\t\t#kJ/kg\n",
+ "hg = 2675.5 \t\t\t#kJ/kg\n",
+ "h2 = (1-x2)*hf + x2*hg \t\t\t#kJ/kg\n",
+ "vf = 0.001043 \t\t\t#m**3/kg\n",
+ "vg = 1.694 \t\t\t#m**3/kg\n",
+ "v2 = (1-x2)*vf + x2*vg \t\t\t#m**3/kg\n",
+ "V2 = (2*(1000*(h1-h2))+V1**2)**0.5 \t\t\t#m/s\n",
+ "A2 = m*v2/V2*10000\t\t\t#cm**3\n",
+ "print \"The exit area of the nozzle = %.1f cm**2\"%(A2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The exit area of the nozzle = 20.3 cm**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14 Page No : 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "m1 = 0.2 \t\t\t#kg/s\n",
+ "p = 4. \t\t\t#bar\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#From superheated steam table\n",
+ "h1 = 2752.8 \t\t\t#kJ/kg\n",
+ "h2 = 209.31 \t\t\t#kJ/kg\n",
+ "h3 = 604.73 \t\t\t#kJ/kg\n",
+ "\n",
+ "m2 = (m1*h1-m1*h3)/(h3-h2) \t\t\t#kg/s\n",
+ "print \"The flow rate of feed water into the heater = %.3f kg/s\"%(m2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The flow rate of feed water into the heater = 1.086 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch11.ipynb b/Basic_Engineering_Thermodynamics/ch11.ipynb
new file mode 100755
index 00000000..b9633767
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch11.ipynb
@@ -0,0 +1,393 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1a66a7b358047512cb72cb60b5347f9bd68c40105b1c8a4914776231ef293db4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Real Gas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1 Page No : 394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 70.e5 \t\t\t#Pa\n",
+ "T = 150. + 273 \t\t\t#K\n",
+ "Z = 0.55 \t\t\t#Compressibility factor\n",
+ "R = 8314.3/44 \t\t\t#J/kgK\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#For propane\n",
+ "v = Z*R*T/P \t\t\t#m**3/kg\n",
+ "print \"Specific volume for propane = %.2e m**3/kg\"%(v)\n",
+ "\t\t\t#ideal gas\n",
+ "v = R*T/P \t\t\t#m**3/kg\n",
+ "print \"Specific volume for ideal gas = %2.3e m**3/kg\"%(v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific volume for propane = 6.28e-03 m**3/kg\n",
+ "Specific volume for ideal gas = 1.142e-02 m**3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2 Page No : 396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Z = 1.04 \t\t\t#Compressiblity factor\n",
+ "pc = 3.77e6 \t\t\t#Pa \t\t\t#crticial pressure\n",
+ "Tc = 132.5 \t\t\t#K\n",
+ "vc = 0.0883 \t\t\t#m**3/kmol\n",
+ "p = 10.e5 \t\t\t#Pa\n",
+ "T = 300. \t\t\t#K\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "R = 287. \t\t\t#J/kgK\n",
+ "pR = p/pc \t\t\t#reduced pressure\n",
+ "TR = T/Tc \t\t\t#reduced temperature\n",
+ "v = Z*R*T/p \t\t\t#m**3/kg\n",
+ "vR = v/vc \t\t\t#reduced volume\n",
+ "\n",
+ "print \"Reduced pressure = %.5f \"%(pR)\n",
+ "print \"Reduced temperature = %.5f \"%(TR)\n",
+ "print \"Reduced volume = %.3f \"%(vR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reduced pressure = 0.26525 \n",
+ "Reduced temperature = 2.26415 \n",
+ "Reduced volume = 1.014 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No : 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "pR = 0.26525 \t\t\t#reduced pressure\n",
+ "TR = 2.26415 \t\t\t#reduced temperature\n",
+ "pc = 22.09 \t\t\t#bar \t\t\t#critical pressure of water\n",
+ "Tc = 647.3 \t\t\t#K \t\t\t#critical temperature of water\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "p = pR*pc \t\t\t#bar\n",
+ "T = TR*Tc \t\t\t#K\n",
+ "print \"Temperature at which steam would beahve similar to air at 10 bar and 27\u00b0C = %.1f K\"%(T)\n",
+ "\n",
+ "print \"Pressure at which steam would beahve similar to air at 10 bar and 27\u00b0C = %.2f bar\"%(p)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature at which steam would beahve similar to air at 10 bar and 27\u00b0C = 1465.6 K\n",
+ "Pressure at which steam would beahve similar to air at 10 bar and 27\u00b0C = 5.86 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No : 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "pc = 3.77e6 \t\t\t#Pa \t\t\t#critical pressure\n",
+ "p = 5.65e6 \t\t\t#Pa\n",
+ "Tc = 132.5 \t\t\t#K \t\t\t#critical temperature\n",
+ "T = 300 \t\t\t#K\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "pR = p/pc \t\t\t#reduced pressure\n",
+ "TR = T/Tc \t\t\t#reduced temperature\n",
+ "\t\t\t#from generalized compressibilty chart\n",
+ "Z =0.97\n",
+ "print \"From the generalized compressiblity chart,\\\n",
+ " at reduced pressure of %.1f and reduced temperature of %.2f, Z = %.2f\"%(pR,TR,Z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the generalized compressiblity chart, at reduced pressure of 1.5 and reduced temperature of 2.26, Z = 0.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No : 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T =150.+273 \t\t\t#K\n",
+ "p = 7e6 \t\t\t#Pa\n",
+ "\n",
+ "#Part (i)\n",
+ "print \"Parti\"\n",
+ "v = (8314.3/44)*T/p \t\t\t#m**3/kg\n",
+ "print \"Specific volume for gaseous propane using ideal gas equation = %.4f m**3/kg\"%(v)\n",
+ "\n",
+ "#Part(ii)\n",
+ "print \"Partii\"\n",
+ "pc = 4.26e6 \t\t\t#Pa \t\t\t#critical pressure\n",
+ "Tc = 370. \t\t\t#K \t\t\t#critical temperature\n",
+ "\n",
+ "pR = p/pc \t\t\t#reduced pressure\n",
+ "TR = T/Tc \t\t\t#reduced temperature\n",
+ "Z = 0.56 \t\t\t#compressibility factor\n",
+ "print \"From the generalized compressiblity chart,\\\n",
+ " at reduced pressure of %.1f and reduced temperature of %.2f, Z = %.2f\"%(pR,TR,Z)\n",
+ "v = Z*v\n",
+ "print \"Specific volume for gaseous propane using generalized compressiblity chart = %.5f m**3/kg\"%(v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parti\n",
+ "Specific volume for gaseous propane using ideal gas equation = 0.0114 m**3/kg\n",
+ "Partii\n",
+ "From the generalized compressiblity chart, at reduced pressure of 1.6 and reduced temperature of 1.14, Z = 0.56\n",
+ "Specific volume for gaseous propane using generalized compressiblity chart = 0.00639 m**3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No : 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "m = 5.\t\t\t#kg \t\t\t#mass of CO2\n",
+ "T = 300. \t\t\t#K\n",
+ "R = 8314.3/44 \t\t\t#J/kgK\n",
+ "V = 1.5 \t\t\t#m**3\n",
+ "\n",
+ "#Part(i)\n",
+ "print \"Parti\"\n",
+ "p = m*R*T/V\n",
+ "print \"Pressure exerted by CO2using ideal gas equation) = %.2f kPa\"%(p*.001)\n",
+ "\n",
+ "#Part(ii)\n",
+ "print \"Partii\"\n",
+ "R = 8.3143 \t\t\t#J/kmolK\n",
+ "a = 0.3658e3 \t\t\t#kPam**6/kmol**2\n",
+ "b = 0.0428 \t\t\t#m**3.kmol\n",
+ "v = 44*V/m \t\t\t#m**3/kmol\n",
+ "p = T*R/(v-b) - a/v**2\n",
+ "print \"Pressure exerted by CO2using van der Waals equation) = %.1f kPa\"%(p)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parti\n",
+ "Pressure exerted by CO2using ideal gas equation) = 188.96 kPa\n",
+ "Partii\n",
+ "Pressure exerted by CO2using van der Waals equation) = 187.5 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No : 406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "M = 28. \t\t\t#g/mol\n",
+ "m = 3.5\t\t\t#kg\n",
+ "V = 0.015 \t\t\t#m**3\n",
+ "v = V/m \t\t\t#m**3/kg\n",
+ "T = 473. \t\t\t#K\n",
+ "R = 8314.3/M \t\t\t#J/kgK\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "\n",
+ "#Part(i)\n",
+ "print \"Parti\"\n",
+ "p = m*R*T/V \t\t\t#Pa\n",
+ "print \"Pressure using ideal gas equation of state) = %.2f MPa\"%(p*1e-6)\n",
+ "\n",
+ "#Part(ii)\n",
+ "print \"Partii\"\n",
+ "pc = 3.39e6 \t\t\t#Pa \t\t\t#critical pressure\n",
+ "Tc = 126.2 \t\t\t#K \t\t\t#critical temperature\n",
+ "vc = 0.0899 \t\t\t#m**3/kmol \t\t\t#critical volume\n",
+ "\n",
+ "TR = T/Tc \t\t\t#reduced temperature\n",
+ "vR = v/(R*Tc/pc) \t\t\t#reduced volume\n",
+ "Z = 1.1 \t\t\t#Compressibility factor\n",
+ "print \"From the generalized compressiblity chart, \\\n",
+ " at reduced volume of %.4f and reduced temperature of %.2f, Z = %.2f\"%(vR,TR,Z)\n",
+ "p = Z*R*T/v \t\t\t#Pa\n",
+ "print \"Pressure using generalised compressibility chart) = %.3f MPa\"%(p*1e-6)\n",
+ "\n",
+ "#Part(iii)\n",
+ "print \"Partiii\"\n",
+ "a = 0.1366e6 \t\t\t#Pam**5/kmol**2\n",
+ "b = 0.0386 \t\t\t#m**3/kmol\n",
+ "p = (8314.3*T/(v*M - b)) - a/(v*M)**2\n",
+ "print \"Pressure using van der Waals equation) = %.2f MPa\"%(p*1e-6)\n",
+ "\n",
+ "#Part(iv)\n",
+ "print \"Partiv\"\n",
+ "a = (0.427*(R*M)**2*Tc**2.5/pc)\n",
+ "b = 0.0866*(R*M*Tc/pc)\n",
+ "\n",
+ "p = (R*M*T/(v*M-b))-(a/(((v*M)**2 + v*M*b)*(T**0.5)))\n",
+ "print \"Pressure using Redlich-Kwong equation of state) = %.2f MPa\"%(p*1e-6)\n",
+ "\n",
+ "\n",
+ "#Part(v)\n",
+ "print \"Partv\"\n",
+ "A0 = 136.2315\n",
+ "a = 0.02617\n",
+ "B0 = 0.05046\n",
+ "b = -0.00691\n",
+ "c = 42000\n",
+ "\n",
+ "A = A0*(1 - a/(v*M))\n",
+ "B = B0*(1 - b/(v*M))\n",
+ "eps = c/(T**3 * v*M)\n",
+ "p = ((8314.3)*T*(1-eps)*(v*M+B))/(v*M)**2 - 1e3*A/(v*M)**2\n",
+ "print \"Pressure using ideal gas equation of state) = %.2f MPa\"%(p*1e-6)\n",
+ "\n",
+ "\t\t\t#---Note--- \t\t\t\n",
+ "# Calculations and Results to Part(iv) in the textbook is 40.58 MPa which is wrong. \n",
+ "# The correct solution (38.13 MPa) is computed here.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parti\n",
+ "Pressure using ideal gas equation of state) = 32.77 MPa\n",
+ "Partii\n",
+ "From the generalized compressiblity chart, at reduced volume of 0.3877 and reduced temperature of 3.75, Z = 1.10\n",
+ "Pressure using generalised compressibility chart) = 36.049 MPa\n",
+ "Partiii\n",
+ "Pressure using van der Waals equation) = 38.83 MPa\n",
+ "Partiv\n",
+ "Pressure using Redlich-Kwong equation of state) = 38.13 MPa\n",
+ "Partv\n",
+ "Pressure using ideal gas equation of state) = 39.79 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch12.ipynb b/Basic_Engineering_Thermodynamics/ch12.ipynb
new file mode 100755
index 00000000..896ca7c0
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch12.ipynb
@@ -0,0 +1,763 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:53a735279bd0b4b47d350239e84293c3d52753ef579aa2d9f892dff4596cafc6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Fuels and Combustion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Page No : 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "xCO2 = 0.03 \t\t\t#mole fraction of CO2\n",
+ "xCO = 0.19 \t\t\t#mole fraction of CO\n",
+ "xH2 = 0.41 \t\t\t#mole fraction of H2\n",
+ "xCH4 = 0.25 \t\t\t#mole fraction of CH4\n",
+ "xC2H4 = 0.09 \t\t\t#mole fraction of C2H4\n",
+ "xN2 = 0.03 \t\t\t#mole fraction of N2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Parta\";\n",
+ "M = xCO2*44 + xCO*28 + xH2*2 + xC2H4*28 +xCH4*16 + xN2*28 \t\t\t#kg/mol \t\t\t#average molar mass\n",
+ "yCO2 = xCO2*(44/M)\n",
+ "yCO = xCO*(28/M)\n",
+ "yH2 = xH2*(2/M)\n",
+ "yCH4 = xCH4*(16/M)\n",
+ "yC2H4 = xC2H4*(28/M)\n",
+ "yN2 = xN2*(28/M)\n",
+ "print \"yCO2 = %.1f%%\"%(yCO2*100)\n",
+ "print \"yCO = %.1f%%\"%(yCO*100)\n",
+ "print \"yH2 = %.1f%%\"%(yH2*100)\n",
+ "print \"yCH4 = %.0f%%\"%(yCH4*100)\n",
+ "print \"yC2H4 = %.1f%%\"%(yC2H4*100)\n",
+ "print \"yN2 = %.1f%%\"%(yN2*100)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\";\n",
+ "nC = xCO2 + xCO + xCH4 + xC2H4*2 \t\t\t#number of moles of C\n",
+ "nH2 = xH2 + xCH4*2 + xC2H4*2 \t\t\t#number of moles of H2\n",
+ "nO2 = xCO2 + 0.5*xCO \t\t\t#number of moles of O2\n",
+ "nN2 = xN2 \t\t\t#number of moles of N2\n",
+ "\n",
+ "mC = nC*12/M\n",
+ "mH2 = nH2*2/M\n",
+ "mO2 = nO2*32/M\n",
+ "mN2 = nN2*28/M\n",
+ "print \"mC = %.1f%%\"%(mC*100)\n",
+ "print \"mH2 = %.1f%%\"%(mH2*100)\n",
+ "print \"mO2 = %.0f%%\"%(mO2*100)\n",
+ "print \"mN2 = %.1f%%\"%(mN2*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "yCO2 = 8.9%\n",
+ "yCO = 35.9%\n",
+ "yH2 = 5.5%\n",
+ "yCH4 = 27%\n",
+ "yC2H4 = 17.0%\n",
+ "yN2 = 5.7%\n",
+ "Partb\n",
+ "mC = 52.6%\n",
+ "mH2 = 14.7%\n",
+ "mO2 = 27%\n",
+ "mN2 = 5.7%\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Page No : 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "#Molar masses of O2,H2,N2,C and S respectively\n",
+ "MO2 = 32. \t\t\t#g/mol\n",
+ "MH2 = 2. \t\t\t#g/mol\n",
+ "MN2 = 28. \t\t\t#g/mol\n",
+ "MC = 12. \t\t\t#g/mol\n",
+ "MS = 32. \t\t\t#g/mol\n",
+ "#Part(a)\n",
+ "print \"Parta\"\n",
+ "print \"Stoichiometric airCarbon) = %.2f kg/kg carbon\"%((MO2 + 3.76*MN2)/MC)\n",
+ "#Part(b)\n",
+ "print \"Partb\"\n",
+ "print \"Stoichiometric airHydrogen) = %.1f kg/kg hydrogen\"%(0.5*(MO2 + 3.76*MN2)/MH2)\n",
+ "#Part(c)\n",
+ "print \"Partc\"\n",
+ "print \"Stoichiometric airSulphur) = %.1f kg/kg sulphur\"%((MO2 + 3.76*MN2)/MS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Stoichiometric airCarbon) = 11.44 kg/kg carbon\n",
+ "Partb\n",
+ "Stoichiometric airHydrogen) = 34.3 kg/kg hydrogen\n",
+ "Partc\n",
+ "Stoichiometric airSulphur) = 4.3 kg/kg sulphur\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No : 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "xC3H8 = 0.2 \t\t\t#mole fraction of propane\n",
+ "xC4H10 = 0.8 \t\t\t#mole fraction of bumath.tane\n",
+ "#Molar masses of O2,H2,N2 & C respectively\n",
+ "MO2 = 32. \t\t\t#g/mol\n",
+ "MH2 = 2. \t\t\t#g/mol\n",
+ "MN2 = 28. \t\t\t#g/mol\n",
+ "MC = 12. \t\t\t#g/mol\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#C balance\n",
+ "b = xC3H8*3+xC4H10*4\n",
+ "#H2 balance\n",
+ "d = xC3H8*4 + xC4H10*5\n",
+ "#O2 balance\n",
+ "a = b + d/2\n",
+ "#N2 balance\n",
+ "c = 3.76*a\n",
+ "\n",
+ "Stoichiometric_air = a*(MO2 + 3.76*MN2)/(xC3H8*(MC+MO2)+xC4H10*(MC*4+MH2*5))\n",
+ "print \"Stoichiometric air = %.2f kg/kg cooking gas\"%(Stoichiometric_air)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stoichiometric air = 15.42 kg/kg cooking gas\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4 Page No : 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "xC3H8 = 0.2 \t\t\t#mole fraction of propane\n",
+ "xC4H10 = 0.8 \t\t\t#mole fraction of bumath.tane\n",
+ "\n",
+ "xO2 = 0.21 \t\t\t#mole fraction of O2\n",
+ "xN2 = 0.79 \t\t\t#mole fraction of N2\n",
+ "#Molar masses of O2,H2,N2 & C respectively\n",
+ "MO2 = 32. \t\t\t#g/mol\n",
+ "MH2 = 2. \t\t\t#g/mol\n",
+ "MN2 = 28. \t\t\t#g/mol\n",
+ "MC = 12. \t\t\t#g/mol\n",
+ "Stoichiometric_air = 15.42 \t\t\t#kg/kg\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#C balance\n",
+ "b = xC3H8*3+xC4H10*4\n",
+ "#H2 balance\n",
+ "e = xC3H8*4 + xC4H10*5\n",
+ "#O2 balance\n",
+ "d = 40*xO2-b -0.5*e\n",
+ "#N2 balance\n",
+ "c = 40*xN2\n",
+ "\n",
+ "actual_air = 40*(xO2*MO2 + xN2*MN2)/(xC3H8*(MC*3+MH2*4)+xC4H10*(MC*4+MH2*5)) \t\t\t#kg/kg gas\n",
+ "\n",
+ "excess_air = (actual_air - Stoichiometric_air)/Stoichiometric_air*100\n",
+ "print \"Excess air = %.1f%%\"%(excess_air)\n",
+ "\n",
+ "theoritical_air = 100+excess_air\n",
+ "print \"Theoritical air = %.1f%%\"%(theoritical_air)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Excess air = 35.5%\n",
+ "Theoritical air = 135.5%\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No : 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "nCO2 = 3.8 \t\t\t#Number of moles of CO2\n",
+ "nN2 = 31.6 \t\t\t#Number of moles of N2\n",
+ "nO2 = 2.2 \t\t\t#Number of moles of O2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "n = nCO2 + nN2 + nO2\n",
+ "xCO2 = nCO2/n \t\t\t#mole fraction of CO2\n",
+ "xN2 = nN2/n \t\t\t#mole fraction of N2\n",
+ "xO2 = nO2/n \t\t\t#mole fraction of O2\n",
+ "\n",
+ "print \"xCO2 = %.1f %% \"%(xCO2*100)\n",
+ "print \"xN2 = %.1f %% \"%(xN2*100)\n",
+ "print \"xO2 = %.1f %% \"%(xO2*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "xCO2 = 10.1 % \n",
+ "xN2 = 84.0 % \n",
+ "xO2 = 5.9 % \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No : 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "nCO2 = 3.8 \t\t\t#Number of moles of CO2\n",
+ "nN2 = 31.6 \t\t\t#Number of moles of N2\n",
+ "nO2 = 2.2 \t\t\t#Number of moles of O2\n",
+ "nH2O = 4.8 \t\t\t#Number of moles of H2O\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "n = nCO2 + nN2 + nO2 + nH2O\n",
+ "xCO2 = nCO2/n \t\t\t#mole fraction of CO2\n",
+ "xN2 = nN2/n \t\t\t#mole fraction of N2\n",
+ "xO2 = nO2/n \t\t\t#mole fraction of O2\n",
+ "xH2O = nH2O/n \t\t\t#mole fraction of H2O\n",
+ "\n",
+ "print \"Volume fraction of CO2 = %.1f%%\"%(xCO2*100)\n",
+ "print \"Volume fraction of N2 = %.1f%%\"%(xN2*100)\n",
+ "print \"Volume fraction of O2 = %.1f%%\"%(xO2*100)\n",
+ "print \"Volume fraction of H2O = %.1f%%\"%(xH2O*100)\n",
+ "\n",
+ "M = xCO2*44 + xN2*28 + xO2*32 + xH2O*18 \t\t\t#Mass of combustion product\n",
+ "\n",
+ "yCO2 = xCO2*(44/M)\n",
+ "yH2O = xH2O*(18/M)\n",
+ "yN2 = xN2*(28/M)\n",
+ "yO2 = xO2*(32/M)\n",
+ "\n",
+ "print \"Mass fraction of CO2 = %.1f%%\"%(yCO2*100)\n",
+ "print \"Mass fraction of N2 = %.1f%%\"%(yN2*100)\n",
+ "print \"Mass fraction of O2 = %.1f%%\"%(yO2*100)\n",
+ "print \"Mass fraction of H2O = %.1f%%\"%(yH2O*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume fraction of CO2 = 9.0%\n",
+ "Volume fraction of N2 = 74.5%\n",
+ "Volume fraction of O2 = 5.2%\n",
+ "Volume fraction of H2O = 11.3%\n",
+ "Mass fraction of CO2 = 13.8%\n",
+ "Mass fraction of N2 = 73.2%\n",
+ "Mass fraction of O2 = 5.8%\n",
+ "Mass fraction of H2O = 7.1%\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No : 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Part(a)\n",
+ "print \"Parta\"\n",
+ "mC = 0.65 \t\t\t#kg \t\t\t#mass of C per kg coal\n",
+ "mA = 0.15 \t\t\t#kg \t\t\t#mass of Ash per kg coal\n",
+ "CR = 0.05 \t\t\t#kg \t\t\t#mass of carbon in solid refuse per kg coal\n",
+ "mR = 0.2 \t\t\t#kg \t\t\t#mass of refuse per kg coal\n",
+ "m = mC- CR \t\t\t#kg \t\t\t#mass of carbon burnt per kg coal\n",
+ "\n",
+ "#By C balance\n",
+ "x = (14 + 1)*(12/0.6) \t\t\t#kg \t\t\t#mass of burnt coal\n",
+ "#By H2 balance\n",
+ "b = x*(0.06/2)\n",
+ "#By O2 Balance\n",
+ "a = (14 + 0.5 + 3.5 + 4.5)-(x*0.1/32) \n",
+ "actual_air = a*(32+3.76*28)/x \t\t\t#kg/kg coal\n",
+ "print \"Actual air = %.3f kg/kg coal\"%(actual_air)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\"\n",
+ "Stoichiometric_air = (0.6*11.45+0.06*34.3)-(0.1/0.232) \t\t\t#kg\n",
+ "excess_air = (actual_air - Stoichiometric_air)/Stoichiometric_air*100 \n",
+ "print \"Excess air = %.1f%%\"%(excess_air)\n",
+ "\n",
+ "#Part(c)\n",
+ "print \"Partc\";\n",
+ "print \"Percentage theoritical air = %.1f%%\"%(100+excess_air)\n",
+ "\n",
+ "#Part(d)\n",
+ "print \"Partd\"\n",
+ "m = 14*44 + 1*28 +3.5*32 +81.5*28 +9*18 \t\t\t#kg \t\t\t#mass of combustion product\n",
+ "print \"Mass fraction of CO2 = %.2f%%\"%(14*44/m*100)\n",
+ "print \"Mass fraction of CO = %.3f%%\"%(1*28/m*100)\n",
+ "print \"Mass fraction of O2 = %.2f%%\"%(3.5*32/m*100)\n",
+ "print \"Mass fraction of N2 = %.2f%%\"%(81.5*28/m*100)\n",
+ "print \"Mass fraction of H2O = %.2f%%\"%(9*18/m*100)\n",
+ "\n",
+ "#Part(e)\n",
+ "print \"Parte\"\n",
+ "xH2O = 9/(14+1+3.5+81.5+9) \t\t\t#molfraction of H2O\n",
+ "pH2O = xH2O*1e5 \t\t\t#Pa \t\t\t#partial pressure\n",
+ "#From steam table\n",
+ "tdp = 42.5 \t\t\t#\u00b0C\n",
+ "print \"Dew point temperature = %.1f \u00b0C\"%(tdp)\n",
+ "\n",
+ "\n",
+ "# note : part b is calculated wrong in book. so answers might be different."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Actual air = 9.867 kg/kg coal\n",
+ "Partb\n",
+ "Excess air = 16.1%\n",
+ "Partc\n",
+ "Percentage theoritical air = 116.1%\n",
+ "Partd\n",
+ "Mass fraction of CO2 = 19.25%\n",
+ "Mass fraction of CO = 0.875%\n",
+ "Mass fraction of O2 = 3.50%\n",
+ "Mass fraction of N2 = 71.31%\n",
+ "Mass fraction of H2O = 5.06%\n",
+ "Parte\n",
+ "Dew point temperature = 42.5 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No : 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "xCO2 = 9.7 \t\t\t#mole percent CO2\n",
+ "xCO = 1.1 \t\t\t#mole percent CO\n",
+ "xO2 = 4 \t\t\t#mole percent O2\n",
+ "xN2 = 85.2 \t\t\t#mole percent N2\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#by C balance\n",
+ "b = 2\n",
+ "#by H2 balance\n",
+ "d = 2\n",
+ "#by O2 balance\n",
+ "a = b+d*.5\n",
+ "#by N2 balance\n",
+ "c = 3.76*a\n",
+ "\n",
+ "Stoichiometric_air = a*(32+3.76*28)/28 \t\t\t#kg/kg ethylene\n",
+ "\n",
+ "#by C balance\n",
+ "x = (xCO2+xCO)/2 \t\t\t#kmol of ehtylene be burnt\n",
+ "#by H2 balance\n",
+ "q = 2*x\n",
+ "#by O2 balance\n",
+ "p = xCO2 + xCO/2 + xO2 + q/2\n",
+ "\n",
+ "actual_air = p*(32+3.76*28)/(x*28) \t\t\t#kg/kg ethylene\n",
+ "excess_air = (actual_air - Stoichiometric_air)/Stoichiometric_air*100\n",
+ "print \"Actual air = %.1f kg/kg ethylene \"%(actual_air)\n",
+ "print \"Excess air = %.0f%%\"%(excess_air)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Actual air = 17.8 kg/kg ethylene \n",
+ "Excess air = 21%\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No : 433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "excess_air = 10. \t\t\t#%\n",
+ "tR = 30. \t\t\t#\u00b0C \t\t\t#temperature of reacmath.tant\n",
+ "tP = 120. \t\t\t#\u00b0C \t\t\t#temperature of product\n",
+ "delta_H = -802.3*1000 \t\t\t#kJ/kmol CH4\n",
+ "Cp_CH4 = 36. \t\t\t#kJ/lmolK\n",
+ "Cp_O2 = 29.5 \t\t\t#kJ/lmolK\n",
+ "Cp_N2 = 29.2 \t\t\t#kJ/lmolK\n",
+ "Cp_CO2 = 37. \t\t\t#kJ/lmolK\n",
+ "Cp_H2O = 33.7 \t\t\t#kJ/lmolK\n",
+ "tA = 30. \t\t\t#\u00b0C\n",
+ "tX = 25. \t\t\t#\u00b0C\n",
+ "tY = tX \t\t\t#\u00b0C\n",
+ "tB = 120. \t\t\t#\u00b0C\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Q_AB = (1*Cp_CO2 + 0.2*Cp_O2 + 8.272*Cp_N2 + 2*Cp_H2O)*(tB-tX)+ delta_H + (1*Cp_CH4 + 2.2*Cp_O2 +8.272*Cp_N2)*(tY-tA)\n",
+ "print \"The heat transfer from the combustor = %.1f kJ/kg CH4 \"%(Q_AB/16)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transfer from the combustor = -48161.7 kJ/kg CH4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No : 435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "deltaH_gasgas = -2651.4e3 \t\t\t#kJ/kmol bumath.tane\n",
+ "hfg_butane = 370 \t\t\t#kJ/kg \t\t\t#enthalpies of vaporisation of butance\n",
+ "hfg_water = 2442 \t\t\t#kJ/kg \t\t\t#enthalpies of vaporisation of water\n",
+ "M_butane = 58 \t\t\t#g/mol\n",
+ "M_water = 18 \t\t\t#g/mol\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "deltaH_liqliq = deltaH_gasgas + M_butane*hfg_butane - 5*M_water*hfg_water\n",
+ "print \"Enthalpy of reaction = %.1f kJ/kg\"%(deltaH_liqliq/M_butane)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy of reaction = -49133.1 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11 Page No : 437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "#Formation Enthalpies\n",
+ "hf_CO2 = -393510. \t\t\t#kJ/kmol\n",
+ "hf_H2O = -285838. \t\t\t#kJ/kmol\n",
+ "hf_C3H8 = -104680. \t\t\t#kJ/kmol\n",
+ "hf_O2 = 0. \t\t\t#kJ/kmol\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Hp = 3*hf_CO2 + 4*hf_H2O \n",
+ "Hr = hf_C3H8 + 5*hf_O2\n",
+ "deltaH_std = Hp-Hr\n",
+ "print \"Standard change in enthalpy for the reaction = %.0f kJ/kg\"%(deltaH_std/44)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard change in enthalpy for the reaction = -50436 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12 Page No : 438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Cp_C2H4 = 28*1.548 \t\t\t#kJ/lmolK\n",
+ "Cp_O2 = 32*0.922 \t\t\t#kJ/lmolK\n",
+ "Cp_N2 = 28*1.042 \t\t\t#kJ/lmolK\n",
+ "Cp_CO2 = 44*0.842 \t\t\t#kJ/lmolK\n",
+ "Cp_H2O = 18*1.86 \t\t\t#kJ/lmolK\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "deltaH_BX = (2*Cp_CO2 + 2*Cp_H2O + 0.3*Cp_O2 + 12.408*Cp_N2)*(120-25)\n",
+ "deltaH_YA = (Cp_C2H4 + 3.3*Cp_O2 + 12.408*Cp_N2)*(25-50)\n",
+ "hf_CO2 = -393510. \t\t\t#kJ/kmol\n",
+ "hf_H2O = -241820. \t\t\t#kJ/kmol\n",
+ "hf_C2H4 = 52283. \t\t\t#kJ/kmol\n",
+ "deltaH_XY = 2*hf_CO2 + 2*hf_H2O - hf_C2H4 \t\t\t#kJ/kmol\n",
+ "deltaH_BA = deltaH_BX + deltaH_YA + deltaH_XY \t\t\t#kJ/kmol\n",
+ "\n",
+ "print \"The heat transferred from the combustor per kg ethylene = %.0f kJ/kg ethane\"%(deltaH_BA/28)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transferred from the combustor per kg ethylene = -45960 kJ/kg ethane\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13 Page No : 441"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Part(a)\n",
+ "print \"Parta\"\n",
+ "#Picking up various Cp values from Table 12.1\n",
+ "tB = (16*50010)/(44*0.842+2*18*1.86+3*32*0.922+22.56*28*1.042)+25\n",
+ "print \"Adiabatic combustion temperature using average Cp values)= %.1f K\"%(tB+273)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\"\n",
+ "tb1 = 1000. \t\t\t#K \t\t\t#first guess temperature\n",
+ "tb2 = 1200. \t\t\t#K second guess temperature\n",
+ "tb = (tb1 - tb2)/(637617-836847)*(800160-836847) + tb2\n",
+ "print \"Adiabatic combustion temperature using ideal gas enthalpy = %.0f K\"%(tb)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Adiabatic combustion temperature using average Cp values)= 1238.6 K\n",
+ "Partb\n",
+ "Adiabatic combustion temperature using ideal gas enthalpy = 1163 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14 Page No : 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "delta_H_std = -45101. \t\t\t#kJ/kg\n",
+ "hfg = 2442. \t\t\t#kJ/kg \t\t\t#enthalpy of vaporisation\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "LCV = -1*delta_H_std \t\t\t# kJ/kg hexane\n",
+ "print \"LCV of gaseous hexane = %.1f kJ/kg hexane\"%(LCV)\n",
+ "\n",
+ "m = 7.*18./86 \t\t\t#mass of H2O per kg hexane\n",
+ "HCV = LCV+m*hfg \t\t\t#kJ/kg hexane\n",
+ "print \"HCV of gaseous hexane = %d kJ/kg hexane\"%(HCV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "LCV of gaseous hexane = 45101.0 kJ/kg hexane\n",
+ "HCV of gaseous hexane = 48678 kJ/kg hexane\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch2.ipynb b/Basic_Engineering_Thermodynamics/ch2.ipynb
new file mode 100755
index 00000000..e0d9b70e
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch2.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6899d33957757e53b75082591aa468f495e3dee26f9772aa86059a86f9321499"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Work"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page No : 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Force = 180 \t\t\t#in N \t\t\t#horizontal force\n",
+ "theta = 30 \t\t\t#in degrees \t\t\t#angle of inclination\n",
+ "distance = 12 \t\t\t#in m \t\t\t#distance moved by block along inclined plane.\n",
+ " \n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Work = Force * (distance * math.cos(math.radians(theta))) \t\t\t#in J \t\t\t# Work done\n",
+ "Work = 0.001 * Work \t\t\t# Work done in KJ\n",
+ "print \"Work done by block = %.4f KJ\"%(Work);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done by block = 1.8706 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 Page No : 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "mass_body = 2 \t\t\t#in kg \t\t\t#mass of body\n",
+ "L = 5 \t\t\t#in m \t\t\t#vertical distance\n",
+ "g = 9.8 \t\t\t#in m/s**2 \t\t\t#acceleration due to gravity\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Work_done_by_agent = mass_body * g * L \t\t\t#in Nm \t\t\t#work done by agent\n",
+ "Work_done_by_body = -1*Work_done_by_agent\n",
+ "print \"Work done by agent = %.0f Nm\"%(Work_done_by_agent);\n",
+ "print \"Work done by body = %.0f Nm\"%(Work_done_by_body);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done by agent = 98 Nm\n",
+ "Work done by body = -98 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 Page No : 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 1.5 * 10**(5) \t\t\t#N/m**2 \t\t\t#initial pressure in ballon\n",
+ "d1 = 0.25 \t\t\t#m \t\t\t#initial diameter of balloon\n",
+ "d2 = 0.3 \t\t\t#m \t\t\t#final diameter of balloon\n",
+ "p_atm = 10**(5) \t\t\t#N/m**2 \t\t\t#atmospheric pressure\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "\n",
+ "#Part (a)\n",
+ "print \"Part a\";\n",
+ "print \"As p is proportional to d, p = k*d, where k is proportionality constant\"\n",
+ "print \"Therefore,\";\n",
+ "\n",
+ "k = p1/d1;\n",
+ "print \"p1 = k*d1 => k = p1/d1 = %.2f/%.2f) = %.1e N/m**3\"%(p1,d1,k);\n",
+ "\n",
+ "p2 = k*d2; \t\t\t#N/m**2 \t\t\t#final pressure in balloon\n",
+ "print \"p2 = k*d2 = %.2f*%.2f) = %.1e N/m**2\"%(k,d2,p2);\n",
+ "\n",
+ "\n",
+ "def f0(d): \n",
+ "\t return k*(math.pi/2)*(d**3)\n",
+ "\n",
+ "W_air = quad(f0,d1,d2)[0]\n",
+ "\n",
+ "print \"Work done by balloon on air = %.0f Nm\"%(W_air);\n",
+ "\n",
+ "\t\t\t#Part (b)\n",
+ "print \"Part b\";\n",
+ "\n",
+ "def f1(d): \n",
+ "\t return p_atm*(0.5*math.pi*(d**2))\n",
+ "\n",
+ "W_atm = quad(f1,d2,d1)[0]\n",
+ "\n",
+ "print \"Work done by atmosphere on balloon = %.2f Nm\"%(W_atm);\n",
+ "W_balloon = -1*(W_air+W_atm);\n",
+ "print \"Work done by balloon = -Work done by air + Work done by atmosphere = -%.0f %.0f = %.0f Nm\"%(W_air,W_atm,W_balloon);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "As p is proportional to d, p = k*d, where k is proportionality constant\n",
+ "Therefore,\n",
+ "p1 = k*d1 => k = p1/d1 = 150000.00/0.25) = 6.0e+05 N/m**3\n",
+ "p2 = k*d2 = 600000.00*0.30) = 1.8e+05 N/m**2\n",
+ "Work done by balloon on air = 988 Nm\n",
+ "Part b\n",
+ "Work done by atmosphere on balloon = -595.59 Nm\n",
+ "Work done by balloon = -Work done by air + Work done by atmosphere = -988 -596 = -393 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5 Page No : 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "p1 = 10 \t\t\t#bar \t\t\t#initial pressure\n",
+ "V1 = 0.1 \t\t\t#m**3 \t\t\t#initial volume\n",
+ "p2 = 2 \t\t\t#bar \t\t\t#final pressure\n",
+ "V2 = 0.35 \t\t\t#m**3 \t\t\t#final volume\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "print \"Let the expansion process follow the path pV**n = constant\";\n",
+ "print \"Therefore \"\n",
+ "n = (math.log(p1/p2))/(math.log(V2/V1));\n",
+ "print \"n = lnp1/p2/lnV2/V1 = ln%.2f/%.2f/ln %.2f/%.2f = %.4f\"%(p1,p2,V2,V1,n);\n",
+ "W_d = (p1*V1 - p2*V2)*10**5/(n-1) \t\t\t#J \t\t\t#Work interaction for pure substance\n",
+ "print \"Work interaction for pure substance = p1V1 - p2V2)/n-1) = %.2f kJ\"%(W_d*.001)\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Let the expansion process follow the path pV**n = constant\n",
+ "Therefore \n",
+ "n = lnp1/p2/lnV2/V1 = ln10.00/2.00/ln 0.35/0.10 = 1.2847\n",
+ "Work interaction for pure substance = p1V1 - p2V2)/n-1) = 105.37 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No : 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 1.0 \t\t\t#bar \t\t\t#initial pressure\n",
+ "V1 = 0.1 \t\t\t#m**3 \t\t\t#initial volume\n",
+ "p2 = 6 \t\t\t#bar \t\t\t#final pressure\n",
+ " \t\t\t#and p1*(V1**1.4) = p2*(V2**1.4)\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part (a)\n",
+ "print \"Part a\";\n",
+ "V2 = V1*(p1/p2)**(1/1.4) \t\t\t#m**3 \t\t\t#final volume\n",
+ "print \"Final Volume = %.4f m**3\"%(V2);\n",
+ "\n",
+ "W_d = (10**5)*(p1*V1 - p2*V2)/(1.4-1); \t\t\t#J \t\t\t#Work of compression for air\n",
+ "print \"Work of compression for air = %.1f KJ\"%(W_d*.001);\n",
+ "\n",
+ "#Part (b)\n",
+ "print \"Part b\";\n",
+ "V2 = (p1/p2)*V1; \t\t\t#m**3 \t\t\t#final volume\n",
+ "print \"Final Volume = %.4f m**3\"%(V2);\n",
+ "\n",
+ "W_d = (10**5)*p1*V1*math.log(V2/V1); \t\t\t#J \t\t\t#Work done on air\n",
+ "print \"Work done on air = %.1f KJ\"%(W_d*.001);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Final Volume = 0.0278 m**3\n",
+ "Work of compression for air = -16.7 KJ\n",
+ "Part b\n",
+ "Final Volume = 0.0167 m**3\n",
+ "Work done on air = -17.9 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7 Page No : 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "#four-stroke engine\n",
+ "x = 3. \t\t\t#number of cylinders\n",
+ "y = 1. \t\t\t#engine is math.single-acting\n",
+ "n = 500. \t\t\t#rev/min \n",
+ "N = n/2 \t\t\t#cycles/min\n",
+ "D = 0.075 \t\t\t#m \t\t\t#bore length\n",
+ "L = 0.1 \t\t\t#m \t\t\t#stroke length\n",
+ "a = 6.*10**(-4) \t\t\t#m**2 \t\t\t#area\n",
+ "l = 0.05 \t\t\t#m \t\t\t#length\n",
+ "S = 2.*10**8 \t\t\t#N/m**3 \t\t\t#spring constant\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "p_m = (a/l)*S \t\t\t#Pa \t\t\t#mep\n",
+ "\n",
+ "print \"Mean effective pressure, mep{Pm} = %.2f kPa\"%(p_m*.001)\n",
+ "A = (math.pi/4)*D**2 \t\t\t#m**2\n",
+ "\n",
+ "print \"Indicated power{P_ind} = %.2f kW\"%(x*y*p_m*L*A*N/60000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean effective pressure, mep{Pm} = 2400.00 kPa\n",
+ "Indicated power{P_ind} = 13.25 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "N = poly1d([.5,0]) \t\t\t#n is engine speed\n",
+ "x = 6 \t\t\t#six cylinders\n",
+ "y = 1 \t\t\t#assumed\n",
+ "d = 0.1 \t\t\t#m \t\t\t#bore length\n",
+ "A = math.pi*(0.1)**2/4 \t\t\t#m**2 \t\t\t#Area\n",
+ "L = 0.15 \t\t\t#m \t\t\t#stroke length\n",
+ "P_shaft = 24.78 \t\t\t#KW \t\t\t#Power of shaft\n",
+ "T = 474.9 \t\t\t#Nm \t\t\t#Torque in the crank shaft\n",
+ "l = 0.05 \t\t\t#m \t\t\t#length of indicator diagram\n",
+ "a = 9.37*10**(-4) \t\t\t#cm**2 \t\t\t#area of indicator diagram\n",
+ "S = 0.5*(10**8) \t\t\t#N/m**3 \t\t\t#spring constant\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "p_m = a*S/l \t\t\t#mean pressure difference\n",
+ "print \"Mean pressure difference = %.2f N/m**2\"%(p_m);\n",
+ "\n",
+ "P_ind = (x*y)*p_m*(L*A*N/60000) \t\t\t#indicated power\n",
+ "#C = coeff(P_ind)\n",
+ "C = poly(P_ind)\n",
+ "print \"Indicated Power = %.6f n kW\"%(C[1])\n",
+ "\n",
+ "P_shaft = 2*math.pi*poly([1,0])*T/60000 \t\t\t#shaft power output\n",
+ "print \"Shaft power output in KW)= %.5f n kW\"%(P_shaft[0])\n",
+ "\n",
+ "#Mechanical_efficiency = poly(P_shaft,1)/coeff(P_ind,1)*100\n",
+ "Mechanical_efficiency = poly(P_shaft[1])/poly(P_ind[1])*100\n",
+ "print \"Mechanical Efficiency = %.0f %%\"%(-Mechanical_efficiency[1])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean pressure difference = 937000.00 N/m**2\n",
+ "Indicated Power = -0.055194 n kW\n",
+ "Shaft power output in KW)= 0.04973 n kW\n",
+ "Mechanical Efficiency = 90 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9 Page No : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 0.4 \t\t\t#m \t\t\t#cylinder diameter\n",
+ "t = 10. \t\t\t#min \t\t\t#Time taken for stirring\n",
+ "L = 0.49 \t\t\t#m \t\t\t#distance moved by the piston\n",
+ "p_atm = 1. \t\t\t#bar \t\t\t#atmospheric pressure\n",
+ "W_net = -1965. \t\t\t#Nm \t\t\t#net work done\n",
+ "n = 750. \t\t\t#rev/min \t\t\t#rotational velocity of electric motor\n",
+ "I = 0.9 \t\t\t#A \t\t\t#current\n",
+ "V = 24. \t\t\t#V \t\t\t#voltage\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Part a\";\n",
+ "W_d = 10**5*p_atm * (math.pi/4) * d**2 * L; \t\t\t#Nm \t\t\t#work done by fluid on piston\n",
+ "print \"Work done by fluid on the piston = %.1f Nm\"%(W_d);\n",
+ "W_str = W_net - W_d; \t\t\t#Nm \t\t\t#Work done by stirrer\n",
+ "print \"Work done by stirrer on the fluid = %.1f Nm\"%(W_str);\n",
+ "P_shaft = abs(W_str)/(t*60); \t\t\t#W \t\t\t#shaft power output\n",
+ "print \"Shaft power output = %.2f W\"%(P_shaft);\n",
+ "T = (P_shaft*60)/(2*math.pi*n); \t\t\t#Nm \t\t\t#Torque in the driving shaft\n",
+ "print \"Torque in the driving shaft = %.3f Nm\"%( T);\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\";\n",
+ "W_bat = I*V*t*60; \t\t\t#Nm \t\t\t#work done by battery\n",
+ "print \"Work done by battery = %.1f Nm\"%(W_bat);\n",
+ "W_motor = -1*(W_bat+W_str) \t\t\t#Nm \t\t\t#work done by motor\n",
+ "print \"Work done by motor = %.1f Nm\"%(W_motor);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Work done by fluid on the piston = 6157.5 Nm\n",
+ "Work done by stirrer on the fluid = -8122.5 Nm\n",
+ "Shaft power output = 13.54 W\n",
+ "Torque in the driving shaft = 0.172 Nm\n",
+ "Part b\n",
+ "Work done by battery = 12960.0 Nm\n",
+ "Work done by motor = -4837.5 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch3.ipynb b/Basic_Engineering_Thermodynamics/ch3.ipynb
new file mode 100755
index 00000000..8ff56196
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch3.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c25c8c800dd34f424a4f0cf9e435c0ab4dc67af9251d8f09c564bbab45696729"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Temperature and Heat"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "#Part(a)\n",
+ "print \"Part a\"\n",
+ "tf = 98.6 \t\t\t#\u00b0F \t\t\t#average temperature Human Body in \u00b0C\n",
+ "tc = (tf - 32)/1.8 \t\t\t#\u00b0C\n",
+ "print \"Average human temperature in \u00b0C = %.1f \u00b0C\"%(tc);\n",
+ "\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\"\n",
+ "tc = 27 \t\t\t#\u00b0C \t\t\t#Annual average temperature in peninsular India in \u00b0C\n",
+ "tf = 1.8*tc+32 \t\t\t#Annual average temperature in peninsular India in \u00b0F\n",
+ "print \"Annual average temperature in peninsular India in \u00b0F = %.1f \u00b0F\"%(tf);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Average human temperature in \u00b0C = 37.0 \u00b0C\n",
+ "Part b\n",
+ "Annual average temperature in peninsular India in \u00b0F = 80.6 \u00b0F\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "t = 27 \t\t\t#\u00b0C \n",
+ "\n",
+ "# Calculations\n",
+ "T = t + 273.15 \t\t\t#K\n",
+ "\n",
+ "# Result\n",
+ "print \"Temperature in Kelvin = %.2f K\"%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature in Kelvin = 300.15 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# variables\n",
+ "T = 250 \t\t\t#K \n",
+ "\n",
+ "# calculations\n",
+ "t = T - 273.15 \t\t\t#\u00b0C\n",
+ "\n",
+ "# result\n",
+ "print \"Temperature in \u00b0C = %.2f \u00b0C\"%(t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature in \u00b0C = -23.15 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy.linalg import solve\n",
+ "# Variables\n",
+ "X = solve([[1, 0, 0],[ 1, 100, 100**2],[ 1, 50, 50**2]],[[0], [100], [51]])\n",
+ "\n",
+ "p = X[0]\n",
+ "q = X[1];\n",
+ "r = X[2];\n",
+ "\n",
+ "def t_A(t_B): \n",
+ " return q*t_B + r*(t_B**2)\n",
+ "t_B = 30;\n",
+ "\n",
+ "print \"When thermometer B reads %0.1f C then thermometer A reads, t_B = %.02f degree C\"%(t_B,t_A(t_B))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When thermometer B reads 30.0 C then thermometer A reads, t_B = 30.84 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "\n",
+ "Rt = 80\n",
+ "t = 25\n",
+ "\n",
+ "# calculations and results\n",
+ "#Substituting Rt and t in Rt = Ro(1+0.00395t)\n",
+ "Ro = 80/(1+0.00395*25)\n",
+ "print \"Ro {Resistance at 0\u00b0C} = %.2f ohm\"%(Ro)\n",
+ "\n",
+ "#Full load condition\n",
+ "Rt = 95\n",
+ "#temperature at full load condition\n",
+ "print \"t {Temperature at full load condition} = %.2f \u00b0C\"%(((Rt/Ro)-1)/0.00395);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ro {Resistance at 0\u00b0C} = 72.81 ohm\n",
+ "t {Temperature at full load condition} = 77.16 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# calculations\n",
+ "def e(t): \n",
+ "\t return 0.0367*t + 1.33 * 10**(-4)*t**2\n",
+ "\n",
+ "# results\n",
+ "print \"Thermometer read in place where gas thermometer reads 50\u00b0C = %.2f \u00b0C\"%((e(50)/e(100)*100))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermometer read in place where gas thermometer reads 50\u00b0C = 43.35 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch4.ipynb b/Basic_Engineering_Thermodynamics/ch4.ipynb
new file mode 100755
index 00000000..9d364f3a
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch4.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:796b0d55d49c3a8708377f5eda9102cc03f40afdc4e2bd80f2e4fc59de97aea2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : The First Law of Thermodynamics for Systems-Pure Substances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 Page No : 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "#four heat transfer\n",
+ "Q_1 = 900 \t\t\t#J\n",
+ "Q_2 = 80 \t\t\t#J\n",
+ "Q_3 = -800 \t\t\t#J\n",
+ "Q_4 = 150 \t\t\t#J\n",
+ "#four work interactions\n",
+ "W_1 = 200 \t\t\t#J\n",
+ "W_2 = 150 \t\t\t#J\n",
+ "W_3 = 300 \t\t\t#J\n",
+ "\t\t\t#W_4\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "W_4 = Q_1 +Q_2 +Q_3 +Q_4 -W_1 -W_2 -W_3 \n",
+ "print \"Magnitude and Direction of the fourth work interaction, W4 = %.0f J\"%(W_4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude and Direction of the fourth work interaction, W4 = -320 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page No : 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q_a = -50 \t\t\t#KJ \t\t\t#heat transferred from the system along path A\n",
+ "W_a = -65 \t\t\t#KJ \t\t\t#work done along path A\n",
+ "Q_b = 0 \t\t\t#KJ \t\t\t#heat transferred from the system along path B\n",
+ "\t\t\t#W_b work done along path B\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "\n",
+ "#Part(a)\n",
+ "print \"Part a\";\n",
+ "delE_a = Q_a - W_a \t\t\t#KJ \t\t\t#Change in energy along path A\n",
+ "print \"Change in energy of the system = %.0f KJ\"%(delE_a);\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\";\n",
+ "delE_b = -1*delE_a \t\t\t#KJ \t\t\t#Change in energy along path B\n",
+ "W_b = delE_b - Q_b \t\t\t#KJ \t\t\t#work done along path B\n",
+ "print \"Magnitude and direction of work done during B, W_b = %.0f KJ\"%(W_b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Change in energy of the system = 15 KJ\n",
+ "Part b\n",
+ "Magnitude and direction of work done during B, W_b = -15 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No : 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "m = 2.3 \t\t\t#kg \t\t\t#mass of substance\n",
+ "u = 21 * 10**3 \t\t\t#J/kg \t\t\t#internal energy\n",
+ "V = 110. \t\t\t#m/s \t\t\t#velocity \n",
+ "z = 1500. \t\t\t#m \t\t\t#elevation above sea level\n",
+ "g = 9.81 \t\t\t#m/s**2 \t\t\t#acceleration due to gravity\n",
+ "\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "E = m*(g*z + V**2/2 + u) \t\t\t#J/kg \t\t\t#Total energy of the system\n",
+ "print \"The total energy of the system with respect to an observer at rest at sea level, E = %.4f KJ\"%(0.001*E);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total energy of the system with respect to an observer at rest at sea level, E = 96.0595 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No : 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "from sympy import Derivative\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "t = poly1d(0); \t\t\t#C \t\t\t#Temperature in C\n",
+ "u = 196. + .718*t; \t\t\t#KJ/kg \t\t\t#specific internal energy\n",
+ "pv = 287*(t+273.); \t\t\t#Nm/kg \t\t\t#p is pressure and v = specific volume\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Cv = poly(u);\n",
+ "print \"Specific heat at constant volume,Cv = %.3f kJ/kgK\"%(Cv[0])\n",
+ "\n",
+ "h = u + pv*.001 \t\t\t#KJ/kg \t\t\t#enthalpy\n",
+ "Cp = poly(h);\n",
+ "print \"Specific heat at constant pressure,Cp = %.3f kJ/kgK\"%(Cp[0])\n",
+ "\n",
+ "# Note: Poly function gives different result then book has."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific heat at constant volume,Cv = 1.000 kJ/kgK\n",
+ "Specific heat at constant pressure,Cp = 1.000 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch5.ipynb b/Basic_Engineering_Thermodynamics/ch5.ipynb
new file mode 100755
index 00000000..82c29562
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch5.ipynb
@@ -0,0 +1,476 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7f13a6535713e6dd307350b25e55b55427f77dbef3f6f6422a5890eea0412625"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : First Law of Thermodynamics for Control Volumes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page No : 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = -24.; \t\t\t#KJ/kg\n",
+ "\n",
+ "p1 = 5e5; \t\t\t#N/m**2\n",
+ "t1 = 227.; \t\t\t#\u00b0C\n",
+ "V1 = 50.; \t\t\t#m/s\n",
+ "v1 = 0.78; \t\t\t#m**3/kg\n",
+ "\n",
+ "p2 = 1e5; \t\t\t#N/m**2\n",
+ "t2 = 57.; \t\t\t#\u00b0C\n",
+ "V2 = 100.; \t\t\t#m/s\n",
+ "v2 = 0.97; \t\t\t#m**3/kg\n",
+ "\n",
+ "g = 9.81; \t\t\t#m/s**2 \t\t\t#acceleration due to gravity\n",
+ "\n",
+ "delta_z = -5; \t\t\t#m \n",
+ "Cv = 0.7; \t\t\t#KJ/kg \n",
+ "delta_u = Cv*(t2 - t1); \t\t\t#KJ/kg \t\t\t#change in internal energy \t\t\t#u2-u1\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "delta_h = delta_u + (p2*v2 - p1*v1)*.001; \t\t\t#KJ/kg \t\t\t#change in enthalpy \t\t\t#h2-h1\n",
+ "\n",
+ "W_x = Q - (delta_h + (V2**2 - V1**2)/2*.001 + g*delta_z*.001); \t\t\t#kJ/kg \t\t\t#Work Output\n",
+ "\n",
+ "print \"Work output = %.1f KJ/kg\"%(W_x);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work output = 384.3 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No : 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "m = 5000./3600 \t\t\t# kg/s \t\t\t# flow rate\n",
+ "W_x = 550. \t\t\t# KJ/s \t\t\t#power developed by turbine\n",
+ "Q = 0. \t \t\t#Heat loss is negligible\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part (a)\n",
+ "print \"Parta\"\n",
+ "V1 = 0. \t\t\t# m/s \t\t\t#inlet velocity\n",
+ "V2 = 360. \t\t\t# m/s \t\t\t#exit velocity\n",
+ "g = 9.81 \t\t\t# m/s**2\n",
+ "delta_z = 0. \t\t\t#m \t\t\t#z2-z1\n",
+ "\n",
+ "delta_h = ((Q-W_x)/m)-g*delta_z*.001-((V2**2-V1**2)/2000) \t\t\t#KJ/Kg \t\t\t#change in enthalpy\n",
+ "print \"Change in enthalpy = %.2f KJ/kg\"%(delta_h)\n",
+ "\n",
+ "#Part (a)\n",
+ "print \"Partb\"\n",
+ "V1 = 60. \t\t\t# m/s \t\t\t#inlet velocity\n",
+ "V2 = 360. \t\t\t# m/s \t\t\t#exit velocity\n",
+ "g = 9.81 \t\t\t# m/s**2\n",
+ "delta_z = 0. \t\t\t#m \t\t\t#z2-z1\n",
+ "\n",
+ "delta_h = ((Q-W_x)/m)-g*delta_z*.001-((V2**2-V1**2)/2000) \t\t\t#KJ/Kg \t\t\t#change in enthalpy\n",
+ "print \"Change in enthalpy = %.2f KJ/kg\"%(delta_h)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Change in enthalpy = -460.80 KJ/kg\n",
+ "Partb\n",
+ "Change in enthalpy = -459.00 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No : 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "mA = 0.8 \t\t\t# kg/s \t\t\t#flow rate of stream A\n",
+ "pA = 15e5 \t\t\t# N/m**2 \t\t\t#Pressure of stream A\n",
+ "tA = 250. \t\t\t#\u00b0C \t\t\t#temperature of stream A\n",
+ "\n",
+ "mB = 0.5 \t\t\t# kg/s \t\t\t#flow rate of stream B\n",
+ "pB = 15e5 \t\t\t# N/m**2 \t\t\t#Pressure of stream B\n",
+ "tB = 200. \t\t\t#\u00b0C \t\t\t#temperature of stream B\n",
+ "\n",
+ "Q = 0. \t\t\t#No heat loss\n",
+ "\n",
+ "p1 = 10e5 \t\t\t# N/m**2 \t\t\t#pressure supply of chamber\n",
+ "t2 = 30. \t\t\t#\u00b0C \t\t\t#exhaust air temperature from turbine\n",
+ "\n",
+ "Cv = 0.718 \t\t\t# KJ/kgK \t\t\t#heat capacity at constant volume\n",
+ "Cp = 1. \t\t\t# KJ/kgK \t\t\t#heat capacity at constant pressure\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Part a\"\n",
+ "t1 = ((mA*Cp*tA)+(mB*Cp*tB))/((mA*Cp)+(mB*Cp)) \t\t\t# \u00b0C \t\t\t#the temperature of air at inlet to the turbine\n",
+ "print \"The temperature of air at inlet to the turbine = %.2f \u00b0C\"%(t1);\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\"\n",
+ "WT = -1*(mA+mB)*Cp*(t2-t1) \t\t\t# \u00b0kW \t\t\t#power developed by turbine\n",
+ "print \"Power developed by turbine = %.0f kW\"%(WT);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "The temperature of air at inlet to the turbine = 230.77 \u00b0C\n",
+ "Part b\n",
+ "Power developed by turbine = 261 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page No : 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d1 = 0.15 \t\t\t#m \t\t\t#inlet diameter\n",
+ "m = 4000./3600 \t\t\t# kg/s \t\t\t#flow rate\n",
+ "v1 = 0.285 \t\t\t#m**3/kg \t\t\t#specific volume at entry\n",
+ "d2 = 0.25 \t\t\t#m \t\t\t#exit diameter\n",
+ "v2 = 15. \t\t\t# m**3/kg \t\t\t#specific volume at exit\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "\n",
+ "A1 = math.pi*d1**2/4 \t\t\t#m**2 \t\t\t#inlet cross sectional area\n",
+ "A2 = math.pi*d2**2/4 \t\t\t# m**2 \t\t\t# exit cross sectional area\n",
+ "print \"Inlet cross sectional area A1)= %.5f m**2\"%(A1);\n",
+ "print \"Exit cross sectional area A2)= %.4f m**2\"%(A2);\n",
+ "\n",
+ "V1 = m*v1/A1 \t\t\t#m/s \t\t\t#inlet velocity\n",
+ "V2 = m*v2/A2 \t\t\t#m/s \t\t\t#exit velocity\n",
+ "\n",
+ "print \"Inlet velocity = %.1f m/s\"%(V1);\n",
+ "print \"Exit velocity = %.1f m/s\"%(int(V2));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inlet cross sectional area A1)= 0.01767 m**2\n",
+ "Exit cross sectional area A2)= 0.0491 m**2\n",
+ "Inlet velocity = 17.9 m/s\n",
+ "Exit velocity = 339.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No : 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 10.\t\t\t#bar \t\t\t#inlet pressure\n",
+ "t1 = 300. \t\t\t#\u00b0C \t\t\t#inlet temperature\n",
+ "\n",
+ "p2 = 0.1 \t\t\t#bar \t\t\t#exit pressure\n",
+ "Cp = 1. \t\t\t#kJ/kgK \t\t\t# heat capacity at constant pressure\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Adiabatic process\n",
+ "delta_h = 0 \t\t\t#change in enthalpy\n",
+ "t2 = delta_h/Cp + t1\n",
+ "print \"Temperature of air after throttling = %.0f \u00b0C\"%(t1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of air after throttling = 300 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No : 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 1e5 \t\t\t# N/m**2 \t\t\t#inlet pressure\n",
+ "v1 = 0.08 \t\t\t#m**3/kg \t\t\t# specific volume at inlet\n",
+ "p2 = 7e5 \t\t\t# N/m**2 \t\t\t#exit pressure\n",
+ "v2 = 0.016 \t\t\t# m**3/kg \t\t\t#specific volume at exit\n",
+ "u1 = 48. \t\t\t# kJ/kg \t\t\t# internal energy at inlet\n",
+ "u2 = 200. \t\t\t# kJ/kg \t\t\t# internal energy at exit\n",
+ "Q = -120. \t\t\t# kJ/kg \t\t\t# heat loss\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Wc = ((u2 - u1) + (p2*v2 - p1*v1)*.001 - Q)*-1 \t\t\t# kJ/kg \t\t\t# work input to compressor\n",
+ "print \"Work input to compressor Wc) = %.1f kJ/kg\"%(Wc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work input to compressor Wc) = -275.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No : 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "mh = 9.45 \t\t\t# kg/s \t\t\t# flow rate of steam\n",
+ "h_h2 = 140. \t\t\t# kJ/kg \t\t\t# enthalpy of condensate\n",
+ "h_h1 = 2570. \t\t\t# kJ/kg \t\t\t# inlet enthalpy of steam\n",
+ "t1 = 25. \t\t\t# \u00b0C \t\t\t#inlet temperature of cooling water\n",
+ "t2 = 36. \t\t\t# \u00b0C \t\t\t#exit temperature of cooling water\n",
+ "c = 4.189 \t\t\t# kJ/kg deg \t\t\t# specific heat of water\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "mc = -1*(mh*(h_h2-h_h1))/(c*(t2-t1)) \t\t\t# kg/s \t\t\t#mass flow rate of cooling water\n",
+ "print \"Mass flow rate of cooling water = %.2f kg/s\"%(mc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate of cooling water = 498.35 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No : 129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "mh = 9.45 \t\t\t# kg/s \t\t\t# flow rate of steam\n",
+ "h_h2 = 140. \t\t\t# kJ/kg \t\t\t# enthalpy of condensate\n",
+ "h_h1 = 2570. \t\t\t# kJ/kg \t\t\t# inlet enthalpy of steam\n",
+ "t1 = 25. \t\t\t# \u00b0C \t\t\t#inlet temperature of cooling water\n",
+ "t2 = 36. \t\t\t# \u00b0C \t\t\t#exit temperature of cooling water\n",
+ "c = 4.189 \t\t\t# kJ/kg deg \t\t\t# specific heat of water\n",
+ "fractionalheatloss = 0.1 \t\t\t# fractional heat loss\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "mc = -1*((1-fractionalheatloss)*mh*(h_h2-h_h1))/(c*(t2-t1)) \t\t\t# kg/s \t\t\t#mass flow rate of cooling water\n",
+ "print \"Mass flow rate of cooling water = %.1f kg/s\"%(mc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate of cooling water = 448.5 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No : 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "V1 = 300 \t\t\t#m/s \t\t\t#inlet air velocity\n",
+ "t2 = 100 \t\t\t#\u00b0C \t\t\t#exit air temperature\n",
+ "V2 = 15 \t\t\t#m/s \t\t\t#exit air velocity\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "t1 = t2 + .001*(V2**2 - V1**2)/2 \t\t\t# \u00b0C \t\t\t#inlet air temperature\n",
+ "print \"Inlet air temperature = %.1f \u00b0C\"%(t1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inlet air temperature = 55.1 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No : 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "m1 = 0.8 \t\t\t#kg \t\t\t#initial mass of air\n",
+ "p1 = 150. \t\t\t#kPa \t\t\t#initial pressure of air\n",
+ "T1 = 300. \t\t\t#K \t\t\t#initial temperature of air\n",
+ "p_p = 600. \t\t\t#kPa \t\t\t#pressure of air in pipe\n",
+ "T_p = 330. \t\t\t#K \t\t\t# temperature of air in pipe\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "m2T2 = (p_p/p1)*T1*m1\n",
+ "m2 = ((0.718*(m2T2/m1-T1))/(331.65)*m1)+m1 \t\t\t#kg \t\t\t#final mass of air\n",
+ "print \"Mass of air entering in vessel = %.4f kg\"%(m2-m1)\n",
+ "T2 = m2T2/m2 \t\t\t#K \t\t\t#Temperature of air in vessel\n",
+ "print \"Temperature of air in vessel = %.0f K\"%(T2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of air entering in vessel = 1.5588 kg\n",
+ "Temperature of air in vessel = 407 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch6.ipynb b/Basic_Engineering_Thermodynamics/ch6.ipynb
new file mode 100755
index 00000000..43eef050
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch6.ipynb
@@ -0,0 +1,157 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eff853f228eb4757e442dc216472b407bdef65c4a94c6d1528a14e56ce286c8d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Head Engines - The Second Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page No : 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q1 = 300. \t\t\t#kJ \t\t\t#heat supplied at the boiler\n",
+ "Wt = 100. \t\t\t#kJ \t\t\t#work output of turbine\n",
+ "Wp = 0.5 \t\t\t#kJ \t\t\t#work input to pump\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Q2 = Q1 - (Wt - Wp) \t\t\t#kJ \t\t\t#heat rejected at the condensor\n",
+ "print \"Heat rejected at the condensor = %.1f kJ\"%(Q2);\n",
+ "efficiency = 1 - (Q2/Q1)\n",
+ "print \"The thermal efficiency of plant = %.2f \"%(efficiency)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat rejected at the condensor = 200.5 kJ\n",
+ "The thermal efficiency of plant = 0.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page No : 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "COP_ref = 4 \t\t\t#COP of refrigerator\n",
+ "Q1 = 0.5 \t\t\t#kJ/s \t\t\t#rate of heat transfer at the condensor\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Parta\";\n",
+ "Wc = Q1/(COP_ref+1) \t\t\t#kJ/s \t\t\t#Power input to compressor\n",
+ "Q2 = COP_ref*Wc \t\t\t#kJ/s \t\t\t#Rate of heat transfer in evaporator\n",
+ "print \"Rate of heat transfer in evaporator = %.1f kJ/s\"%(Q2)\n",
+ "print \"Power input to compressor = %.1f kJ/s\"%(Wc)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\";\n",
+ "COP_hp = 1 + COP_ref \t\t\t#COP of heat pump\n",
+ "print \"COP of heat pump = %.0f\"%(COP_hp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Rate of heat transfer in evaporator = 0.4 kJ/s\n",
+ "Power input to compressor = 0.1 kJ/s\n",
+ "Partb\n",
+ "COP of heat pump = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No : 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Part(a)\n",
+ "print \"Part a\";\n",
+ "I = 4.5 \t\t\t#Amp \t\t\t#Current drawn\n",
+ "V = 220 \t\t\t#V\n",
+ "Electricity_consumption = I*V \t\t\t#Watts\n",
+ "ElectricityUnitPerDay = Electricity_consumption/1000*8 \t\t\t#kWh\n",
+ "MonthlyBill_part_a = ElectricityUnitPerDay * 5 * 30\n",
+ "print \"The additional monthly electricity bill = Rs. %.2f\"%(MonthlyBill_part_a);\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\";\n",
+ "Q1 = Electricity_consumption*.001 \t\t\t#kW \t\t\t#Rate of heat transfer from heat pump\n",
+ "COP_hp = 4 \t\t\t#COP of heat pump\n",
+ "W = Q1/COP_hp \t\t\t#kW \t\t\t#rate at which energy is consumed\n",
+ "ElectricityUnitPerDay = W*8\n",
+ "MonthlyBill_part_b = ElectricityUnitPerDay * 5 * 30\n",
+ "print \"Saving in monthly electricity bill = Rs. %.2f\"%(MonthlyBill_part_a - MonthlyBill_part_b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "The additional monthly electricity bill = Rs. 1188.00\n",
+ "Part b\n",
+ "Saving in monthly electricity bill = Rs. 891.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch7.ipynb b/Basic_Engineering_Thermodynamics/ch7.ipynb
new file mode 100755
index 00000000..b6ea2d15
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch7.ipynb
@@ -0,0 +1,204 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c994036a387ecf3d6e1af15e46c49ba61b58c1363388a5e580f169263936cabd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Reversibility and The Thermodynamic Temperature Scale"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page No : 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "print \"Part a\";\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q1 = 500. \t\t\t#kJ \t\t\t#Heat transfer from reservoir at t1\n",
+ "Q2 = 187.5 \t\t\t#kJ \t\t\t#Heat transfer from reservoir at t2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "nr = 1-(Q2/Q1) \t\t\t#Efficiency\n",
+ "W = nr*Q1 \t\t\t#kJ \t\t\t#Work output of the engine\n",
+ "print \"Work output of the engine = %.1f kJ\"%(W);\n",
+ "\n",
+ "\t\t\t#Part(b)\n",
+ "print \"Part b\";\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q1 = 500. \t\t\t#kJ \t\t\t#Heat transfer from reservoir at t1\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "COP_hp = 1/nr\n",
+ "W = Q1/COP_hp \t\t\t#kJ \t\t\t#Work input to heat pump\n",
+ "Q2 = Q1-W \t\t\t#kJ \t\t\t#heat ineraction with reservoir at t2\n",
+ "print \"Heat ineraction with reservoir at t2 = %.1f kJ\"%(Q2);\n",
+ "print \"Work input to the heat pump = %.1f kJ\"%(W);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Work output of the engine = 312.5 kJ\n",
+ "Part b\n",
+ "Heat ineraction with reservoir at t2 = 187.5 kJ\n",
+ "Work input to the heat pump = 312.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page No : 178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "nr = 0.7 \t\t\t#maximum efficiency\n",
+ "W = 80. \t\t\t#kJ \t\t\t#Work\n",
+ "Q1 = 100. \t\t\t#kJ \t\t\t#heat transfered\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "nx = W/Q1 \t\t\t#claimed efficiency\n",
+ "if nx>nr :\n",
+ " print \"Engine X is not a viable proposition because the claimed efficiency %.2f is greater than maximum efficiency %.2f\"%(nx,nr)\n",
+ "else:\n",
+ " print \"Engine X is a viable proposition because the claimed efficiency %.2f is less than maximum efficiency %.2f\"%(nx,nr) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Engine X is not a viable proposition because the claimed efficiency 0.80 is greater than maximum efficiency 0.70\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No : 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "T1 = (527.+273) \t\t\t#K\n",
+ "T2 = (27.+273) \t\t\t#K\n",
+ "\n",
+ "# calculations and results\n",
+ "#Part (a)\n",
+ "print \"Part a\";\n",
+ "nr = 1 - (T2/T1) \t\t\t#reversible efficiency\n",
+ "print \"Reversible efficiency = %.3f \"%(nr);\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\";\n",
+ "print \"As the values of at least any two from among Q1,Q2 and W \\\n",
+ "are not given the efficiency of the engine cannot be evaluated.However\\\n",
+ "according to Carnots statement, the efficiency will be less than %.3f\"%(nr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Reversible efficiency = 0.625 \n",
+ "Part b\n",
+ "As the values of at least any two from among Q1,Q2 and W are not given the efficiency of the engine cannot be evaluated.Howeveraccording to Carnots statement, the efficiency will be less than 0.625\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5 Page No : 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "T1 = 273. + 37 \t\t\t#K \n",
+ "T2 = 273. - 13 \t\t\t#K\n",
+ "\n",
+ "\t\t\t#Part(a)\n",
+ "print \"Part a\";\n",
+ "COP_ref = T2/(T1-T2) \t\t\t#COP of reversible heat engine as refrigerator.\n",
+ "print \"COP of reversible heat engine as refrigerator = %.1f\"%(COP_ref)\n",
+ "\t\t\t#Part(b)\n",
+ "print \"Part b\";\n",
+ "COP_hp = T1/(T1-T2) \t\t\t#COP of reversible heat engine as heat pump.\n",
+ "print \"COP of reversible heat engine as heat pump = %.1f\"%(COP_hp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "COP of reversible heat engine as refrigerator = 5.2\n",
+ "Part b\n",
+ "COP of reversible heat engine as heat pump = 6.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch8.ipynb b/Basic_Engineering_Thermodynamics/ch8.ipynb
new file mode 100755
index 00000000..c856536e
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch8.ipynb
@@ -0,0 +1,365 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6ced269b2d83adfe9e452136249f918e5748b410340744d57a784dbf4aa451de"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Entropy - Available and Unavailable Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No : 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q = 10. \t\t\t#kJ \t\t\t#heat transfered from reservoir\n",
+ "T = 100.+273 \t\t\t#K \t\t\t#isothermal expansion temperature\n",
+ "T_res = 300.+273 \t\t\t#K \t\t\t#reservoir temperature\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "delta_S_sys = (Q/T) \t\t\t#kJ/K \t\t\t#delta S for the system\n",
+ "print \"Change in entropyDelta S) for the system = %.2e kJ/K\"%(delta_S_sys);\n",
+ "\n",
+ "delta_S_res = -1*(Q/T_res) \t\t\t#kJ/K \t\t\t#delta S for the reservoir\n",
+ "print \"Change in entropyDelta S) for the reservoir = %.4e kJ/K\"%(delta_S_res);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropyDelta S) for the system = 2.68e-02 kJ/K\n",
+ "Change in entropyDelta S) for the reservoir = -1.7452e-02 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Page No : 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q = 10. \t\t\t#kJ \t\t\t#heat transfered from reservoir\n",
+ "T = 100.+273 \t\t\t#K \t\t\t#isothermal expansion temperature\n",
+ "T_res = 100.+273 \t\t\t#K \t\t\t#reservoir temperature\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "delta_S_sys = (Q/T) \t\t\t#kJ/K \t\t\t#delta S for the system\n",
+ "print \"Change in entropyDelta S) for the system = %.2e kJ/K\"%(delta_S_sys)\n",
+ "\n",
+ "delta_S_res = -1*(Q/T_res) \t\t\t#kJ/K \t\t\t#delta S for the reservoir\n",
+ "print \"Change in entropyDelta S) for the reservoir = %.2e kJ/K\"%(delta_S_res);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropyDelta S) for the system = 2.68e-02 kJ/K\n",
+ "Change in entropyDelta S) for the reservoir = -2.68e-02 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No : 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q = 1.; \t\t\t#kJ \t\t\t#heat transfered from reservoir\n",
+ "T = 100.+273; \t\t\t#K \t\t\t#isothermal expansion temperature\n",
+ "T_res = 100.+273; \t\t\t#K \t\t\t#reservoir temperature\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "delta_S_res = -1*(Q/T_res); \t\t\t#kJ/K \t\t\t#delta S for the reservoir\n",
+ "print \"Change in entropyDelta S) for the reservoir = %.2e kJ/K\"%(delta_S_res);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropyDelta S) for the reservoir = -2.68e-03 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12 Page No : 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "pA = 120. \t\t\t#kPa \t\t\t#Pressure at location A\n",
+ "TA = 50.+273 \t\t\t#K \t\t\t#Temperature at location A\n",
+ "VA = 150. \t\t\t#m/s \t\t\t#Velocity at location A\n",
+ "\n",
+ "pB = 100. \t\t\t#kPa \t\t\t#Pressure at location B\n",
+ "TB = 30.+273 \t\t\t#K \t\t\t#Temperature at location B\n",
+ "VB = 250. \t\t\t#m/s \t\t\t#Velocity at location B\n",
+ "\n",
+ "Cp = 1.005 \t\t\t#kJ/kg\n",
+ "R = 0.287 \t\t\t#kJ/kgK\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "delta_S_sys = (Cp*math.log(TB/TA))-(R*math.log(pB/pA)) \t\t\t#kJ/kgK \t\t\t#Entropy of system\n",
+ "if delta_S_sys < 0 :\n",
+ " print \"Flow is from B to A.\";\n",
+ "else:\n",
+ " print \"Flow is from A to B.\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow is from B to A.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13 Page No : 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "mi = 5. \t\t\t#kg \t\t\t#mass of ice\n",
+ "Ti = 273. - 10 \t\t\t#K \t\t\t#Temperature of ice\n",
+ "ci = 2.1 \t\t\t#kJ/kgK \t\t\t#specific heat of ice\n",
+ "L = 330. \t\t\t#kJ/kg \t\t\t#Latent heat\n",
+ "mw = 20. \t\t\t#kg \t\t\t#mass of water\n",
+ "Tw = 273.+80 \t\t\t#K \t\t\t#Temperatur of water\n",
+ "cw = 4.2 \t\t\t#kJ/kgK \t\t\t#specific heat of water\n",
+ "\n",
+ "# calculatins and results\n",
+ "\n",
+ "#Part(a)\n",
+ "print \"Part a\";\n",
+ "Tmix = ((mi*ci*(Ti-273))-(L*mi)+(mw*cw*Tw)+(mi*cw*273))/(mw*cw+mi*cw)\n",
+ "print \"Temperature of the mixture when equilibrium is established between ice and water = %.f K\"%(Tmix)\n",
+ "#Part (b)\n",
+ "print \"Part b\";\n",
+ "delta_S_ice = mi*(ci*math.log(273/Ti)+L/273+cw*math.log(Tmix/273))\t\t\t#kJ/K \t\t\t#Entropy of ice\n",
+ "print \"Entropy of ice = %.2f kJ/K\"%(delta_S_ice)\n",
+ "#Part (c)\n",
+ "print \"Part c\";\n",
+ "delta_S_water = mw*(cw*math.log(Tmix/Tw))\t\t\t#kJ/K \t\t\t#Entropy of water\n",
+ "print \"Entropy of water = %.2f kJ/K\"%(delta_S_water)\n",
+ "#Part (d)\n",
+ "print \"Part d\";\n",
+ "delta_S_uni = delta_S_water+delta_S_ice\t\t\t#kJ/K \t\t\t#Entropy of universe\n",
+ "print \"Entropy of universe = %.2f kJ/K\"%(delta_S_uni)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Temperature of the mixture when equilibrium is established between ice and water = 320 K\n",
+ "Part b\n",
+ "Entropy of ice = 9.79 kJ/K\n",
+ "Part c\n",
+ "Entropy of water = -8.17 kJ/K\n",
+ "Part d\n",
+ "Entropy of universe = 1.62 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14 Page No : 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Q1 = 100. \t\t\t#kJ \t\t\t#Heat input\n",
+ "T0 = 300. \t\t\t#K \t\t\t#Surrounding temperature\n",
+ "\n",
+ "\t\t\t#Part(a)\n",
+ "print \"Part a\";\n",
+ "T1 = 1000. \t\t\t#K \t\t\t#reservoir temperature\n",
+ "print \"Avalable enery of 100 kJ of heat from a reservoir at 1000K = %.f kJ\"%(Q1*1-T0/T1)\n",
+ "print \"Unvalable enery of 100 kJ of heat from a reservoir at 1000K = %.1f kJ\"%(Q1*(1-(T0/T1)))\n",
+ "\t\t\t#Part(b)\n",
+ "print \"Part b\";\n",
+ "T1 = 600 \t\t\t#K \t\t\t#reservoir temperature\n",
+ "print \"Avalable enery of 100 kJ of heat from a reservoir at 1000K = %.f kJ\"%(Q1*1-T0/T1)\n",
+ "print \"Unvalable enery of 100 kJ of heat from a reservoir at 1000K = %.1f kJ\"%(Q1*(1-(T0/T1)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Avalable enery of 100 kJ of heat from a reservoir at 1000K = 100 kJ\n",
+ "Unvalable enery of 100 kJ of heat from a reservoir at 1000K = 70.0 kJ\n",
+ "Part b\n",
+ "Avalable enery of 100 kJ of heat from a reservoir at 1000K = 100 kJ\n",
+ "Unvalable enery of 100 kJ of heat from a reservoir at 1000K = 50.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15 Page No : 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "T0 = 300. \t\t\t#K \t\t\t#Surrounding temperature\n",
+ "T1 = 1000. \t\t\t#K \t\t\t#Temperature of final reservoir\n",
+ "T2 = 600. \t\t\t#K \t\t\t#Temperature of intermediate reservoir\n",
+ "Q1 = 100. \t\t\t#kJ \t\t\t#Heat input\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "print \"Increase in unavaliable energy due to irreversible heat transfer = %.1f kJ\"%(Q1*(1-T0/T1)-Q1*(1-T0/T2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in unavaliable energy due to irreversible heat transfer = 20.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16 Page No : 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "T1 = 500. \t\t\t#K\n",
+ "T0 = 300. \t\t\t#K\n",
+ "T2 = 350. \t\t\t#K\n",
+ "W = 250. \t\t\t#kJ\n",
+ "Q1 = 1000. \t\t\t#kJ\n",
+ "\n",
+ "# Results\n",
+ "print \"Available energy = %.1f kJ\"%(((1-T0/T1))*Q1);\n",
+ "print \"Unavailable energy = %.1f kJ\"%(Q1 - (((1-T0/T1))*Q1));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy = 400.0 kJ\n",
+ "Unavailable energy = 600.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/ch9.ipynb b/Basic_Engineering_Thermodynamics/ch9.ipynb
new file mode 100755
index 00000000..a3ffa471
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/ch9.ipynb
@@ -0,0 +1,867 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:db9190b16f5381a0273b385245ae5408db2539c1355e253496c8d01bc2f77490"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Ideal Gas and Ideal Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page No : 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "m = 6. \t\t\t#kg \t\t\t#mass of nitrogen\n",
+ "M = 28. \t\t\t#kg/kmol \t\t\t#molar mass of nitrogen\n",
+ "R = 8314.3 \t\t\t#kg/kmol\n",
+ "p = 1e5 \t\t\t#Pa \t\t\t#pressure\n",
+ "T = 27.+273 \t\t\t#K \t\t\t#temperature\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "V = m*R*T/(p*M)\n",
+ "print \"Volume occupied by nitrogen = %.3f m**3\"%(V)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume occupied by nitrogen = 5.345 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2 Page No : 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 10. \t\t\t#bar \t\t\t#inital pressure\n",
+ "T1 = 273.+227 \t\t\t#K \t\t\t#inital temperature\n",
+ "v1 = 0.01 \t\t\t#m**3 \t\t\t#initial volume\n",
+ "p2 = 1. \t\t\t#bar \t\t\t#final pressure\n",
+ "T2 = 273.+27 \t\t\t#K \t\t\t#final temperature\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "v2 = (p1/p2)*(T2/T1)*v1 \t\t\t#m**3 \t\t\t#final volume\n",
+ "print \"Final volume = %.2f m**3\"%(v2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final volume = 0.06 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No : 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "p = 1. \t\t\t#bar \t\t\t#pressure\n",
+ "T = 50.+273 \t\t\t#\u00b0C \t\t\t#temperature\n",
+ "h = 324.6 \t\t\t#kJ/kg \t\t\t#enthalpy\n",
+ "R = 8.3143 \t\t\t#kJ/kmolK\n",
+ "M = 28.97 \t\t\t#kg/kmol\n",
+ "\n",
+ "#Part (a)\n",
+ "print \"Part a\";\n",
+ "u = h - (R/M)*T \t\t\t#kJ/kg \t\t\t#internal energy\n",
+ "print \"Internal energy = %.1f kJ/kg\"%(u)\n",
+ "\n",
+ "#Part (b)\n",
+ "print \"Part b:i\";\n",
+ "u = h - (R/M)*T \t\t\t#kJ/kg \t\t\t#internal energy\n",
+ "print \"Enthalpy = %.1f kJ/kg\"%(h)\n",
+ "print \"Internal energy = %.1f kJ/kg\"%(u)\n",
+ "print \"Part b:ii\";\n",
+ "u = h - (R/M)*T \t\t\t#kJ/kg \t\t\t#internal energy\n",
+ "print \"Enthalpy = %.1f kJ/kg\"%(h)\n",
+ "print \"Internal energy = %.1f kJ/kg\"%(u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Internal energy = 231.9 kJ/kg\n",
+ "Part b:i\n",
+ "Enthalpy = 324.6 kJ/kg\n",
+ "Internal energy = 231.9 kJ/kg\n",
+ "Part b:ii\n",
+ "Enthalpy = 324.6 kJ/kg\n",
+ "Internal energy = 231.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page No : 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Cv = 718 \t\t\t#J/kgK \t\t\t#specific at constant volume\n",
+ "M = 28.97 \t\t\t#kg/kmol \t\t\t#molar mass of air\n",
+ "R = 8314.3 \t\t\t#J/kmolK\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Cp = (R/M)+Cv \t\t\t#J/kgK \t\t\t#specific heat at constant pressure\n",
+ "print \"Specific heat at constant pressure = %.0f J/kg K\"%(Cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific heat at constant pressure = 1005 J/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No : 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 1. \t\t\t#bar \t\t\t#initial pressure\n",
+ "T1 = 27.+273 \t\t\t#K \t\t\t#initial temperature\n",
+ "p2 = 10. \t\t\t#bar \t\t\t#final pressure\n",
+ "T2 = 327.+273 \t\t\t#K \t\t\t#final temperature\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Part a\";\n",
+ "\n",
+ "def f2(T): \n",
+ "\t return 1.4-18.3*(T/100)**(-1.5)+38.3*(T/100)**(-2)-29.3*(T/100)**(-3)\n",
+ "\n",
+ "delta_h = quad(f2,T1,T2)[0]\n",
+ "\n",
+ "print \"Increase in specific enthalpy = %.2f kJ/kg\"%(delta_h)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Part b\";\n",
+ "\n",
+ "def f3(T): \n",
+ "\t return 1.042\n",
+ "\n",
+ "delta_h = quad(f3,T1,T2)[0]\n",
+ "\n",
+ "print \"Increase in specific enthalpy at Cp = 1.042 kJ/kgK) = %.2f kJ/kg\"%(delta_h)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "Increase in specific enthalpy = 317.34 kJ/kg\n",
+ "Part b\n",
+ "Increase in specific enthalpy at Cp = 1.042 kJ/kgK) = 312.60 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No : 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "\n",
+ "from numpy import *\n",
+ "from matplotlib.pyplot import *\n",
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Cp = 1005. \t\t\t#J/kgK \t\t\t#specific heat at constant pressure\n",
+ "Cv = 718. \t\t\t#J/kgK \t\t\t#specific heat at constant volume\n",
+ "m = 1. \t\t\t#kg \t\t\t#mass of air\n",
+ "T1 = (27.+273) \t\t\t#K \t\t\t#initial temperature\n",
+ "p1 = 1e5 \t\t\t#Pa \t\t\t#initial pressure\n",
+ "p2 = p1/2. \t\t\t#Pa \t\t\t#final pressure\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Parta\";\n",
+ "R = Cp-Cv \t\t\t#J/kgK\n",
+ "V1_a = m*R*T1/p1 \t\t\t#m**3 \t\t\t#initial volume\n",
+ "V2_a = V1_a \t\t\t#m**3 \t\t\t#final volume\n",
+ "T2 = p2*V2_a/(m*R) \t\t\t#K \t\t\t#final temperature\n",
+ "print \"Final temperature,T2 = %.1f K\"%(T2)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\";\n",
+ "V1_b = m*R*T1/p1 \t\t\t#m**3 \t\t\t#initial volume\n",
+ "V2_b = V1_b*(p1/p2) \t\t\t#m**3 \t\t\t#final volume\n",
+ "#Isothermal process => T1 = T2\n",
+ "print \"Final temperature,T2 = %.1f K\"%(T1)\n",
+ "\n",
+ "#Part(c)\n",
+ "print \"Partc\";\n",
+ "R = Cp-Cv \t\t\t#J/kgK\n",
+ "y = Cp/Cv\n",
+ "V1_c = m*R*T1/p1 \t\t\t#m**3 \t\t\t#initial volume\n",
+ "V2_c = V1_c*(p1/p2)**(1/y) \t\t\t#m**3 \t\t\t#final volume\n",
+ "T2 = p2*V2_c/(m*R) \t\t\t#K \t\t\t#final temperature\n",
+ "print \"Final temperature,T2 = %.0f K\"%(T2)\n",
+ "\n",
+ "#P-V diagram\n",
+ "P = [p1*1e-5, p2*1e-5]\n",
+ "V = [V1_a ,V1_a]\n",
+ "plot(V,P,'b') \t\t\t#plot for part(a)\n",
+ "\n",
+ "V = linspace(V1_b,V2_b,100)\n",
+ "P = (p1*1e-5*V1_b)/V\n",
+ "plot(V,P,'g') \t\t\t#plot for part(b)\n",
+ "\n",
+ "V = linspace(V1_c,V2_c,100)\n",
+ "P = (p1*1e-5*V1_c**y)/V**y\n",
+ "plot(V,P,'r') \t\t\t#plot for part(c)\n",
+ "xlabel('Volume in m**3')\n",
+ "ylabel('Pressure in bar')\n",
+ "suptitle('p-V diagram sought in example 9.6')\n",
+ "#legends(['Part (a)';'Part (b)';'Part (c)'],[2 3 5],opt=1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Final temperature,T2 = 150.0 K\n",
+ "Partb\n",
+ "Final temperature,T2 = 300.0 K\n",
+ "Partc\n",
+ "Final temperature,T2 = 246 K\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 1,
+ "text": [
+ "<matplotlib.text.Text at 0x1100b2a90>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEhCAYAAAB7mQezAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4FNXbxvFvCr13qdIERERqpKkBRYoC0nsVBRUFUfQn\nFvBFbCBFEUV6R1CqKFWiNKmRKkiVKnZEFEnZ94+zMZuwSXaTnZ1Ncn+uK1dmZ2dnnkySeeacM+cc\nEBEREREREREREREREREREREREREREfGZEcDridbVAA6n8LlwYJVzuRXwvG/DShfKAgeSeK83UDyJ\n914F7rUiIIv1Ad7zYvuswExgP/AtcE8y2z4JfAccBN5KZXwi4iO3ACcSrXsTeCmFz4UTnxh8Jcj5\nlV6UJenEsAmo7b9Q/KI33iWGJ4DpzuUiwG7c/34bA+uBLC7bSgAJtjsA8amywBFgHqYEsATIkWib\nY8DvQJjLuo7AQjf7a465q9sDtHVZ34f4C0Yr4BtgL+afvahzfRHn64PAVOA0UNAZ41FgNuYiWxqY\nDOxybjvS5TinMaWbSMxFphawDjgODHATby5gNeZu9QDQybn+Xmd8+zEXrqwu+y/oXK6DubgnFztA\nCPCR8721QHagg/Pz853HyZ4orllAe5djjsSc0/1AZTc/RwgwBtgJ7AMeda5/mvgL7+3OnzE75ne5\nzXnsrUAl5zZ9gOWYc3YKGAQ869xuO1DAuV0EMAFzng8Add3EVAT4xBnTTqCBm21uJf4c/gz8gTkv\niT0GvAFEuWwrIhYpC8QC9Z2vpwPPuNnuGWCcc7ke5qKcWHbgDFDB+fpjYKVzuQ/xiSG/y2f6A2Od\ny5OIr25q5owrLjHEkDAxxV2gQjAXlmrO16eITwDjMBfSXEBh4Ec3MbfHXLTj5HX5OSo6180GBrvs\n311iSC72KKC6872Pge7O5U2YxOXOTKCdyzGfcC4/hkk8iT0KvOhczob5/dyMufv+CpOkdxH/e86D\nOXcA92Eu4GB+T8eIP2eXiU8y44g/D5uAKc7lu4gvFfUh/ve8AGjoXC6D+6rHR4DFzljKYW5A2rrZ\nLhKTHL/BJCV3yUNspBJDxnMWczcIpuTQyM02H2PucoOALph/+sSqYC5icdVO83BfLVAac0e6H3M3\nWtW5viGwyLm8FnORiPMD5q4zTmfMHfRe4DaXfUB8Mjrg/LmuAr8A/2Iu/K72A00xVWONgD8xd+Sn\nMKUMMInhbjc/h6vkYj/lPA7OmMu6vOdptdhS5/e9iT4f536gF+YC+g0mKd0CODAX67mYC2rc7zk/\nJhkcwFzwXc/fJuLP2R/EVwceSHTsuBLjZsx5zZcopvswCTMSWIFJRjkTbTMDOIcp3Y3HlGJi3Px8\noZibgXrAMEwykQASancA4nMOl+Ug5+sw4u8IXwY+w1zgwjF3svVS2E/cvtx5D1NK+AzT2DjSg89c\ndVkuhynB1MHc0c4kYVXMv87vscB1l/Wx3Pj3ewyoCTwAvAZsxFzEEv8ccT9bNPE3R4mrf5KK/V+X\n5ZhEn0t8zpISt48Ykv4fHISpzkqsEnAFKOmybhTmZ22LKVlEJBFvLAnPZ3L//7GJXgcBd5Lwd5BY\nDDDU5fVW4Hs3250jPjnuch6rEPBrMvsWP1KJIeMpQ/yFvhvmDnAn5oJZE3MBB3OHOB5TIrjgZj9H\nMXeU5Z2vuyZxvLwun+/jsn4r8XX89xNfXeTu81cxd/fFgBZJbOfJ3Xhx4Bqmrn8s5ueN+zniqsR6\nYqpjwNT3x1VjxLUBeBO7a1xXuLEEk1prgceJv3BXwtyd5wMmYqp7ChEfs+vvoK+HxwhKtNzZudwI\nU7K4kmj7dcBTLq9ruNlnDky1FZiSWxSmzSux5UAT53IlTJuPkkIAUWLIeI5i6rAPYy4kHySx3SeY\nKgd3jc5gLrCPYhpz9wCXiL8jdrgsj8Q0cu/GNCLGrX8Vc1E9gKm2+pH4i43rnfU+TPXEEcwFfUsS\n8bgeM/E+4twO7HDu7xVMqeFfzMVyCaYKKBr40CXGiZi71uhUxO76epZzv+4an5OS+GeKMw3z+9vr\njOEDTJIYh6nOOQ48jKkyKwy8jWnM3Yup33f3e0ocuyPRdtecn5/s3HfibZ7CJNF9wCHi2ypcFcP8\nrRzGVBH1dHlvKvFPbc3A3HAcwPz99XKzLxHxkbIk/Tilv2UlvkG0Puaik16k59hTI7mGc8mE1MaQ\n8Xhaz221MphGxWBMvfQj9objlfQcu4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIg4zcAMpZBUb9wq\nmBEir+F+eGgREfEzq8dKmomZ7CUpv2Km+BubzDYiIuJHVieGzSQcyz6xnzGDr0Uls42IiPiRRlcV\nEZEElBhERCSBdDG6aoUKFRwnTpxIeUMREXF1gvj5zj0WKCWGZGfnOnHiBA6HQ18OByNGjLA9hkD5\n0rnQudC5SP6L+JkLvWJ1iWEhZh7gwphJ6kcAWZzvTQFuwsyelRcz7+tgzKxif1kcl4iIJMHqxJDU\nPMFxfgRKWxyDiIh4IVCqksRD4eHhdocQMHQu4ulcxNO5SLtk6/YDiMNZXyYiIh4KCgqCVFznVWIQ\nEZEElBhERCQBJQYREUlAiUFERBJQYhARkQSUGEREJAElBhERSUCJQUREElBiEBGRBJQYREQkASUG\nERFJQIlBREQSUGIQEZEElBhERCQBJQYREUlAiUFERBJQYhARkQSUGEREJAElBhERSUCJQUREElBi\nEBGRBJQYREQkASUGERFJQIlBREQSUGIQEZEElBhERCQBqxPDDOAScCCZbd4FjgH7gJoWxyMiIimw\nOjHMBJon835LoCJwC/Ao8IHF8YiISAqsTgybgd+Teb81MNu5vAPIDxSzOCYREUmG3W0MJYGzLq/P\nAaVsikVERLA/MQAEJXrtsPJgF4/sZnOTCkRFX7fyMCIi6Vaozcc/D5R2eV3Kue4GI0eO/G85PDyc\n8PDwVB2w2C01uPjtLywY0Zbeo1enah8iIoEoIiKCiIiINO8n8d26FcoCq4Db3bzXEhjk/F4PmOD8\nnpjD4fBdQaJxthXMztOBHetm0rFWD5/tV0QkkAQFBUEqrvNWJ4aFwD1AYcxjqyOALM73pji/T8I8\nuXQV6AvsdbMfnyaGoCD4o+k9jMu6m04zdnJb0dt8tm8RkUARqInBV3yeGBzfHeFa/TDuGVaYdUMj\nyZc9n8/2LyISCFKbGAKh8dkeVaqQvWcfxmzLRY9lPYh1xNodkYhIQMi8iQFgxAju2nmJ/Ccu8GrE\nq3ZHIyISEDJ3YihUiKDhw5n2VT5mRE5n+ZHldkckImK7zJ0YAJ54gmxnL7Ch8FAeXfUoh346ZHdE\nIiK2UmLIkgXGjaPy6CmMa/wmbRa14bd/frM7KhER22Tep5IS765FC2jalGduO8/+n/bzRfcvCA22\nu/+fiEjq6XFVL7hNDEeOwF13Eb3/Wx7Y2I9bC9/KhOYTfHZMERF/0+OqaVWlCvTuTejLI1jUfhFf\nHP+CaXun2R2ViIjfqcTg6vJlkyBWruT78vloNKMRSzou4Z6y9/js2CIi/qISgy/kywdvvAFPPkml\nAhWZ324+nT/pzMnfT9odmYiI3ygxJNarlylSzJ5N0wpNeenul2i1sBWXr122OzIREb9QVZI7e/bA\nAw+YBun8+Rn0+SCO/XaM1d1W60klEUk39FSSF1JMDAADB5o+Du+9R3RsNK0WtqJc/nK83/L9uJMt\nIhLQlBi84FFi+PVXqFoV1qyBmjW5fO0yDWc0pH+t/gypN8RnsYiIWEWNz75WqBCMHg1PPAGxseTL\nno/V3VYzZtsYVhxZYXd0IiKWUWJITr9+EBsLM2cCcHP+m1neeTn9V/Vn94XdNgcnImINVSWlJDIS\nmjeHQ4egcGEAlh9ZzhOfP8G2ftu4Of/NPotLRMSX1MbgBa8SA8DgwXD1KkyL7wk94ZsJTN07lS19\nt1AgRwGfxSYi4itKDF7wOjFcvmwaohcvhoYN/1v99JqnifwxkrU91pItNJvP4hMR8QUlBi94nRjA\nJIVRo2DvXvMYKxDriKXzJ50JDQ5lfrv5BAepyUZEAoeeSrJax45QqhSMG/ffquCgYOa2ncu5P8/x\n3PrnbAxORMR3VGLwxsmTEBYGu3ZBuXL/rf7tn99oNKMR/Wv1Z2j9oT6LU0QkLVRi8Ify5WHYMHjs\nsQSZpWCOgqzpsYbx34xn4YGFNgYoIpJ2SgzeGjoULl6EhQkTQJl8Zfii+xcMXjOY9SfW2xSciEja\nqSopNXbsgIcegoMHTQ9pF5t/2Ez7xe1Z3W01dUvWTVugIiJpoKeSvJDmxACmb8PlyzBr1g1vrTy6\nkgGfDSCidwSVC1dO44FERFJHicELPkkMV65AtWowfTrcd98Nb8+MnMmrX73Kln5bKJW3VBoPJiLi\nPTU++1uePPDhh/Doo6ZXdCJ9a/blibpPcP/c+/nl719sCFBEJHVUYkirnj2hSJEE/RtcvbDhBTac\n2sDGXhvJmy2vjw4qIpKyQC0xNAeOAMeA5928XwBYBuwDdgC3WRyP740fb55Q+uYbt2+/fu/r1C5e\nmzaL2vBP1D9+Dk5ExHtWJoYQYBImOVQFugK3JtpmOLAXuAPoBUy0MB5rFC4MEyeaIbr//feGt4OC\ngni/5fsUz12cjks6EhUTZUOQIiKeszIxhAHHgdNAFLAIaJNom1uBTc7lo0BZoIiFMVmjY0eoUsWM\npeRGSHAIsx+aTXBQMD2X9SQmNsbPAYqIeM7KxFASOOvy+pxznat9QDvnchhwM5D+HuEJCoLJk2Hq\nVDPInhtZQrKwuONifvn7FwZ8NoBYR6yfgxQR8Uyohfv2pHn3TUz1USRwwPnd7e30yJEj/1sODw8n\nPDw8zQH61E03wTvvQJ8+sHs3ZM16wybZQ7OzvMtyms1rxlNfPMV7Ld6LaxwSEUmziIgIIiIi0ryf\nlK5KocBsoHsq9l0PGIlpYwB4AYgF3krmM6eA24G/Eq0P3KeSXDkc0KYN3HFHktVKAJevXea+ufcR\nfnM4bzd9W8lBRCxh1VNJ0ZjqndTMQrMbuAXTbpAV6AysTLRNPud7AI8AX3FjUkg/goJgyhT46CNT\nakhCvuz5WNtjLetPrueVTa/4MUARkZR5UpV0CtiCuaj/7VznANw/uB8vGhgErMU8oTQd+A4Y4Hx/\nCuZppVnO/R0EHvY89ABVvLh5hLV3b9izB7Jnd7tZwRwFWd9zPeGzw8kSkoVX7lGCEJHA4EkRY6Tz\ne1zlS5Bz+VUrAkpC+qhKiuNwQIcOULEivJVczRlc+usS4bPD6Vm9J8PvGm5hUCKS2WisJC9YnhgA\nfvrJtDV88kmCeaLduXjlIvfMuof+tfrzXEPNBCcivmFlYigKPIep9snhXOcAmnh7sDRIf4kBYNky\nM7HPt99C7tzJbnruz3M0nt2YR2s9yrCGw/wQnIhkdFYOiTEfM6xFeUy10mlMw7KkpG1bU1oYlvKF\nvlTeUmzqvYmP9n7EmK1j/BCciIh7nmSSvUAtYD9Q3bluN1DHqqDcSJ8lBjBzNlSvbkZibdEixc1V\nchARX7GyxHDd+f1H4EFMkijg7YEyrXz5YPZs6N8ffkl5+O1SeUsR0TuCaZHTeH3z634IUEQkIU8y\nSStgM1AaeA/Ii6lSStwnwUrpt8QQZ9gwOHnSNEZ70KHt4pWLNJnThK7VuupRVhFJFT2V5AVbEsO/\n/0JYGAwZAn37evSRS39dosmcJrSt0pZRjUeph7SIeMXKqqQKwCrgF+BnYAWmIVq8kS0bzJ8Pzz0H\nJ0549JFiuYsR0TuCz77/jGHrh+HL5CgikhRPEsMCYDFQHCgBLAEWWhlUhlWtGrz8MnTvDlGezctQ\nJFcRvuz9JV//8DWDPh+kUVlFxHKeFDFcn0aKsw8zuY6/pP+qpDgOB7RsCXXqJDvQXmKXr13mgQUP\nUKlQJaa2mkpIcIiFQYpIRmBFG0NB5/vPAX8QX0rojHkq6X/eHiwNMk5iALh0CWrUgEWL4J57PP7Y\n1etXabOoDQVzFGReu3lkDblxaG8RkThWJIbTuJ9TIW6spHLeHiwNMlZiAPj8cxg40PSKLljQ449d\ni75Gl0+6EBUbxScdPyFHlhwpf0hEMiU9leSFgEgMAEOHwunT8OmnHj3CGicqJoo+K/pw/s/zrOy6\nkrzZ8loXo4ikW1Y+lSRWeeMNkxg++MCrj2UJycLctnOpWqQqTWY34eerP1sTn4hkSiox2O377814\nShs2mNFYveBwOHjpy5dYemQp63qso3S+0hYFKSLpkUoM6VWlSjBuHHTuDH95N3ldUFAQo+8dTf+a\n/Wk0sxFHfjliUZAikpl4mklKYqboDCG+8flri2JyJ+OWGOL06WOCmj07VR+f9e0s/rfhf6zsupKw\nkmG+jU1E0iUrG5/fwjyiehiIcVnfytuDpUHGTwxXr0LduqZndJ8+qdrFqqOr6LeyH/Pbzef+Cvf7\nNj4RSXesTAzfA7cD/3q7cx/K+IkB4OBBaNwYIiLgtttStYstZ7bQfnF7xt0/ju7Vu/s2PhFJV6xs\nYzgBqCeVP1SrBm+/DR07et3eEKdRmUZ82etLXtj4Au9se8fHAYpIZuBJJlmKGf5iI/GlBgfwlFVB\nuZE5Sgxx+vaF6GiYM8er/g2uzl4+S/P5zbm//P280+wdgoP0nIFIZmNlVVIfN+scQOpaSVMncyWG\nv/+GO++EJ5+ERx9N9W5+/+d3Hvr4IYrlKsactnPIHprdh0GKSKBTz2cvBHxiANO/oVEj+OILqF07\n1bu5Fn2N3st7c/HKRZZ3WU7BHJ4PvyEi6ZsVbQxLnN8PuPna7+2BxEuVKsHkyaa94bffUr2b7KHZ\nWdh+IWElw2gwvQGnfj/lwyBFJCNKLpOUAC5g+i+4c9rXwSQj85UY4gwdCkeOwGefQXDa2gne3/k+\nozePZkWXFdQtWddHAYpIoFJVkhfSVWKIioImTeC++2DEiDTvLq6vw0cPfkTbW9v6IEARCVRKDF5I\nV4kB4OJF0/ltyhR44IE0727PhT20WdSGIfWG8Ez9ZzSXtEgGpcTghXSXGAC2boW2bWH7dqhQIc27\nO3P5DA8ueJAGpRvwXov3yBKSxQdBikggsXoQvZxAZW93DjQHjgDHgOfdvF8YWAN8CxzE/aOxAmYE\n1hEjTHK4ejXNuyuTrwxb+m3hzOUztJjfgt//+d0HQYpIRuBJYmgNRAJrna9rAis9+FwIMAmTHKoC\nXYFbE20zyLnvGkA48A4Q6sG+M6fHHzePrvbr55MiT95seVnZdSXVilaj/vT6HP/tuA+CFJH0zpPE\nMBK4E4i7pYwEynvwuTDgOObppShgEdAm0TYXgbjpx/ICvwLRHuw7cwoKMpP6nDxphs7wgdDgUCY0\nn8CQekNoOKMhm05t8sl+RST98iQxRAF/JFoX68HnSgJnXV6fc65zNRW4DfNY7D5gsAf7zdyyZ4el\nS2HiRNP5zUcG1hnIwvYL6fJpF6bsnuKz/YpI+uNJtc0hoLtz21swYyRt8+BzntR1DMe0L4QDFYD1\nmHGZriTecOTIkf8th4eHEx4e7sHuM6jSpWHxYmjXDrZsMZ3hfKBJuSZs6buF1otac+CnA4xvNl6N\n0iLpSEREBBEREWnejyet1TmBl4C4Af7XAqOAayl8rh6mGqq58/ULmJLGWy7bfA6MBrY6X2/ENFLv\nTrQvPZXkzrRpMHYs7NgB+fL5bLd/XPuDbp9241r0NZZ0XEKhnIV8tm8R8R+rnkoKBVZj7uzrOL9e\nJOWkAObifgum53RWzGQ/iRutjwD3OZeLYZ58OunBvgWgf3+4/37o0gViYlLe3kP5s+dnVddV1ClR\nh7pT63Lg0gGf7VtEAl9KiSEac5efPxX7jsY8dbQWM/vbx8B3wADnF8DrmGSzD9gAPAekfmCgzGjc\nONM7+nl3TwOnXkhwCG83fZtRjUfRZE4TPjn8iU/3LyKBy5MixkrMI6rrgbgH6DUfQyD57TczTPfw\n4WYuBx/be3EvbT9uS4/be/B/jf+PkOAQnx9DRHxP8zF4IcMlBjAD7d19N3zyifnuYz9f/ZlOn3Qi\nR2gO5rebT4EcBXx+DBHxLQ2J4YUMmRgA1q+Hnj3Nk0oVK/p891ExUTy/4XlWHF3B0k5LueOmO3x+\nDBHxHSsTg7sB/B141snNV5QYPDV5Mrz7rhlTqYA1d/ULDixg8JrBTGg2ge7Vu1tyDBFJOysTQ2GX\n5exAB6AQ8LK3B0sDJQZvDBkCBw6YDnBZs1pyiP2X9tPu43Y0r9iccc3GkTXEmuOISOr5uyppL1Ar\nlZ9NDSUGb8TEwEMPQdGipq+DRcNq/3HtD3ov781PV39iSccllMpbypLjiEjqWDm6am1MEqiFebR0\nIGaAPAlUISGwcCFERsKbb1p2mPzZ87Os8zLaVG5D3al1WX9ivWXHEhH/8SSTRBA/vEU0ZlC8scBR\na0JySyWG1LhwAerVMwPudeli6aE2ndpE96XdGVhnIC/d/RLBQWmbhlRE0k5PJXkh0yQGgP37zbSg\nn34Kd91l6aEuXLlAl0+6kD00O/PazaNorqKWHk9EkmdlVdJgzJDYQcB0TPtCM28PJDapXh3mz4cO\nHUxfBwuVyFOCL3t/SZ0Sdag1pRZf//C1pccTEWt4khgeBv7EDKJXEOgFWFdxLb7XtKmpTmrRwswf\nbaHQ4FBev/d1praaSqclnRj99WhiHZ6M0i4igcKTxBBXDHkAmIuZglPSm9694eGHoWVLuHLDqOY+\n1+KWFux+dDdrTqyh+bzmXPrrkuXHFBHf8CQx7AHWAS0xA+LlxbOJeiTQvPiiGVOpfXu4ft3yw5XK\nW4pNvTcRVjKMWh/VYuPJjZYfU0TSzpNGiWDMIHonMDO5FcLMxLbfwrgSU+Ozr0RHm/aGXLlg7lwI\n9s/TQxtPbqTX8l70vqM3r4a/qgmARPzAysbn+phHU/8AemIm7bns7YEkQISGmj4OP/wAw4b5LUPe\nW/5eIgdE8u2P33L3rLs59bu7kVZEJBB4khg+xAy3fQcwFDgOzLEyKLFYjhywahWsXQtjxvjtsEVz\nFeWzbp/RsWpHwqaFseDAAr8dW0Q850kRIxJTlTQCOA9MQ0NiZAznz0PDhvDKK9Cvn18PHXkxkq6f\nduXOUnfyXov3yJstr1+PL5IZWFmVdAUztWcP4DPMcBiqIM4ISpaEdetMo/Ty5X49dM3iNdnz6B6y\nhWSj5pSabD+73a/HF5GkeZJJigNdgV3AZqAMEI5/q5NUYrDS3r3QvDksWgRNmvj98MuPLGfgZwP/\nG04jNDjU7zGIZERWD4lRFqiImZc5JxCK6fTmL0oMVouIgE6d4LPPICzM74e/cOUC/Vb04/drvzOv\n7TxuKXSL32MQyWisrEp6FFgCTHG+LgUs8/ZAEuDCw2H6dGjdGg76vw9jiTwl+KL7F/Ss3pMGMxow\nZfcUfHkzICKe8yST7APCgG8wjdAAB4DbrQrKDZUY/GXBAvMY61dfWTI9qCcO/3yYXst6USx3Maa1\nmkbxPMVtiUMkvbOyxPCv8ytOKPHDcEtG060bjBhhxlc6c8aWEKoWqcr2h7dTu3htakypweJDi22J\nQySz8iSTjMF0busFDAIeBw4DL1oYV2IqMfjb+PHwwQem5FDcvjv2Hed20Ht5b2rcVIP3W75PoZyF\nbItFJL2xssTwPPAzpvpoAPA5pvezZGRPPw29epm5HH7+2bYw7ix1J5EDIimeuzi3f3A7q46usi0W\nkcwipUwSihlNtYofYkmOSgx2eeklWL0aNm6EggVtDeWr01/Rb2U/GpVpxIRmEyiQo4Ct8YgEOqtK\nDNGYcZJuTkVMkhGMGgX33gvNmsEff9gayj1l72HfwH3kyZqH2z+4ndXfr7Y1HpGMypNMshnzNNJO\nzJhJYBqfW1sVlBsqMdjJ4YAhQ2DHDtNTOq/9w1dsOrWJ/qv606B0AyY2n0jBHPaWZkQCkZUd3O5x\ns60D+Mrbg6WBEoPdHA544gnYtw/WrIE8eeyOiKvXrzJ843CWHF7CpJaTaHdrO7tDEgkoViSGHMBA\nTI/n/cAMIMrL/TcHJmDGV5oGvJXo/WeB7s7lUOBWoDDmKShXSgyBIDYWHnsMDh2CL74IiOQAsOXM\nFvqv7E+1otWY1HISN+W+ye6QRAKCFW0Ms4HamKTQEhjr5b5DgEmY5FAVM97SrYm2GYuppqoJvABE\ncGNSkEARHGweYa1a1cwf7YcpQj3RqEwjvh34LZUKVaL6B9WZ9e0s9ZoWSYPkMolr7+ZQzCB6NZPe\n/Ab1MUN1N3e+/p/z+5tJbL8A2AhMd/OeSgyBJK7kcPCgKTkEQJtDnMiLkfRf1Z+COQoy5cEplC9Q\n3u6QRGxjRYkhOollT5UEzrq8Pudc505OoBnwaSqOI/4WV3KoXt08rXQ5cCb0q1m8Jjv67+D+8vcT\nNjWMMVvHEB2bmj9fkcwrufGNq2PmYoiTw+W1A0jpNtGbe/JWwBaSqUYaOXLkf8vh4eGEh4d7sXvx\nueBgmDwZnnrKdIJbtw4KBEa/gtDgUIY1HEa7W9vx2OrHWHBwAR89+BF1S9a1OzQRS0VERBAREZHm\n/XhdxPBCPWAk8VVJLwCx3NgADWa01o+BRUnsS1VJgcrhgGefhS+/hPXroXBhuyNKwOFwMP/AfJ5d\n9yydbuvEa01e02xxkmlYOSRGau0GbsHM5ZAV6AysdLNdPuBuYIWFsYhVgoJg7FjTGB0eDj/+aHdE\nCQQFBdGjeg8OPX6Iq9evUvX9qnx6+FM1Toskw8oSA0AL4h9XnQ68gRlvCeLnd+iNaV/olsx+VGII\ndA4HvPYazJtnhs8oVcruiNz6+oevGfjZQMoVKMekFpMoV6Cc3SGJWMbqGdzspsSQXowda9oeNmyA\n8oH5RND1mOuM2z6OsdvGMrT+UJ6p/wzZQrPZHZaIzykxeEGJwWIffgijR8PatabPQ4A6/cdpnvri\nKb7/9XsmtZzEfeXvszskEZ9SYvCCEoMfzJtnZoJbtQrq1LE7mmStOrqKp9Y8RVjJMN65/x1K5Q3M\najARbwWes536AAAUs0lEQVRi47NkZj16mL4OLVuayX4CWKvKrTj0+CEqF6pMjQ9r8PbWt7kec93u\nsERsoxKDWOvLL6FLF5g+HVq1sjuaFB3/7ThD1gzh+G/Hmdh8Is0qNrM7JJFUU1WSF5QY/GzXLpMU\nxoyBnj3tjiZFDoeD1cdWM2TNEG4rehvjm43X0BqSLqkqSQJX3bqwaZOZDW78eLujSVFQUBAPVnqQ\ng48f5M6Sd1J3al2GbxzOX9f/sjs0Eb9QYhD/uPVW2LIFPvoI/ve/dFFkyx6aneF3DWf/wP2cuXyG\nKpOqMG//PGIdsXaHJmIpVSWJf/36Kzz4IFSuDFOnQpYsdkfksW1ntzF4zWBCgkKY2Hwid5a60+6Q\nRJKlNgYvKDHY7OpV6NwZYmJgyRLIndvuiDwW64hl7r65DP9yOI3LNuaNe9+gdL7Sdocl4pbaGCT9\nyJULli+HEiWgcWO4dMnuiDwWHBRM7xq9OTroKOXyl6PGlBq8sukVtT9IhqLEIPYIDYVp0+CBB6BB\nA/j+e7sj8krurLkZ1WQUkQMiOfH7CSpPqsz0vdOJiY2xOzSRNFNVkthv+nR48UVYutQkiXRo5/md\nDF07lCvXrzCm6Rjur3C/3SGJqI3BG0oMAWjNGujVywzA16GD3dGkisPhYNmRZTy/4XnKFyjPmKZj\nqF6sut1hSSamxOAFJYYAFRkJrVvD4MHwzDPmF5UORcVEMWXPFF77+jWaV2zOqMaj1EAttlDjs6R/\nNWvCtm0wZw489hhERdkdUapkCcnCoLBBHB10lJJ5SlJjSg2eW/8cv//zu92hiXhEiUECS+nSpiPc\nDz+Y/g6XL9sdUarly56P0feOZv/A/fz+z+9UmlSJt7e+zT9R/9gdmkiylBgk8OTNa4brrljRNEaf\nOmV3RGlSMm9Jpraeyua+m9lxfgeVJlVi2t5pRMdG2x2aiFvppRJXbQyZ1aRJ8PrrpiNcw4Z2R+MT\nO87t4IWNL3D+ynlea/wa7au2JzhI92jie2p89oISQzoT98TS2LHmewbgcDjYcHIDL2x8AQcORjcZ\nTbMKzeL+kUV8QonBC0oM6dDhw2bo7g4dTAkiJMTuiHzC4XCw9LulvLTpJQrnLMzoJqO5++a77Q5L\nMgglBi8oMaRTv/5qEkOuXLBggWmLyCBiYmOYf2A+IyNGUrFgRUY1HqVB+iTN9LiqZHyFCsG6dVCm\nDNSrB8eO2R2Rz4QEh9Drjl4cHXSUDlU70GFJB1otbMXei3vtDk0yIZUYJH2aMgVeecX0eWiW8abf\nvBZ9jWl7p/HGljcIKxnGyHtGcsdNd9gdlqQzqkryghJDBrF5sxm+e8gQGDYs3faUTs4/Uf8wZc8U\n3tr6Fg1KN2DEPSM0zIZ4TInBC0oMGcjZs9CuHVSoYAbjy5XL7ogs8XfU33y4+0PGbBtDg9INeOXu\nV1SCkBSpjUEyp9Kl4euvIUcOqF8fTpywOyJL5MySk6H1h3LiqRM0Kt2I5vOb0/bjtmqDEEsoMUj6\nlyMHzJgBAweantKrV9sdkWVyZsnJ0/Wf5sRTJ2hctjGtF7bmwQUPsuPcDrtDkwxEVUmSsWzbBp06\nQf/+pnE6OGPf+1yLvsaMyBm8tfUtKheqzEt3v6R+EPKfQG1jaA5MAEKAacBbbrYJB8YDWYBfnK8T\nU2IQz/34o2mUzpkT5s0zj7lmcNdjrjN331ze2PIGxfMU58W7XlRPagnIxBACHAXuA84Du4CuwHcu\n2+QHtgLNgHNAYUxySEyJQbwTFQXDh5sxlhYvhrAwuyPyi+jYaBYfWszrm18nW2g2Xmj0Am2rtCUk\nOGP0FBfvBGJiqA+MwJQaAP7n/P6myzaPAzcBr6SwLyUGSZ1ly2DAAFOt9MQTGfKRVndiHbGsOrqK\n17e8zuVrl3mu4XP0qN6DrCFZ7Q5N/CgQn0oqCZx1eX3Ouc7VLUBBYBOwG+hpYTySGbVta9odpk+H\nLl3gzz/tjsgvgoOCaVOlDd88/A2TH5jMwoMLqfBuBcZvH89f1/+yOzwJcFYmBk/uybMAtYCWmOqk\nlzHJQsR3KlaE7dshf36oXRu+/dbuiPwmKCiIJuWasL7nepZ3Xs72c9spN7EcL3/5Mj9d/cnu8CRA\nhVq47/OA60S3pTGlBldnMW0K/zi/vgbuAG4YBGfkyJH/LYeHhxMeHu7TYCWDy57dDKOxYAE0bQqj\nRpkqpkxStQRQu0RtFndczLFfjzFu+zgqT6pM59s680z9Z7ilkO7HMoKIiAgiIiLSvB8r/ytCMY3P\n9wIXgJ3c2PhcBZiEKS1kA3YAnYHDifalNgbxnaNHzVNLlSrB1KmQL5/dEdni0l+XmLRzEh/u+ZC7\nytzFsAbDqF+6vt1hiQ8FYhtDNDAIWIu50H+MSQoDnF8AR4A1wH5MUpjKjUlBxLcqV4ZvvoEiRaBm\nTdiROTuHFctdjFFNRnF68GmalGtC96XdaTijIUu/W0pMbIzd4YmN0ks5WiUGscbSpfDYY/DMM/Ds\nsxm+Q1xyomOjWfbdMsZuH8uvf//KkHpD6FOjD7mz5rY7NEmlQHxc1ZeUGMQ6Z85A9+6mHWLOHChe\n3O6IbOVwONh6divjvxnPV6e/4uGaD/PknU9SKm8pu0MTLwViVZJI+lCmDGzaBI0amaqlVavsjshW\nQUFBNCrTiE87fcrOR3byb8y/VP+gOl0/7crO8zvtDk/8QCUGEVdbt0KPHtCiBYwda4bVEC5fu8z0\nyOm8t/M9bsp9E4PvHEz7W9uTJSSL3aFJMlSV5AUlBknW5cuml/SePTB/PtSqZXdEASMmNoaVR1cy\nccdEjv92nMfrPs4jtR6hSK4idocmbigxeEGJQTyyYIGZHe7pp+G55yBE4w252vfjPt7d8S5Ljyzl\noSoP8WTYk9QqriQaSJQYvKDEIB47cwZ69zaD8s2ZA+XL2x1RwPnl71+Ytncak3dNpnS+0gyqO4j2\nVdtrXKYAoMTgBSUG8UpsLEyYAG+8Yb4efjhT9Zj2VHRsNCuPruT9Xe9z+OfDPFLrEQbUHkDJvImH\nSBN/UWLwghKDpMqhQ9CzJ5QoYXpMZ/LHWpNz+OfDTN41mQUHFtCkXBMer/s4jcs21vwQfqbE4AUl\nBkm169fhtdfMuEsTJ5qhNXSxS9KVf68wb/883t/1PtGx0QysM5Ded/SmQI4CdoeWKSgxeEGJQdJs\n1y7T9lC1KkyeDEWL2h1RQHM4HGw5s4UPdn/AF8e/oG2VtgysM5C6JeqqFGEhJQYvKDGIT1y7ZiYA\nmjMH3n3XzDUtKfrp6k/M+nYWU/ZMIV+2fAyoPYBut3cjT7Y8doeW4SgxeEGJQXzqm2+gb1+oVg3e\nf1+lBw/FOmJZf2I9U/ZMYdPpTXSq2olHaz9K7RK17Q4tw1Bi8IISg/jctWswciTMnAnjxkG3bmp7\n8MLFKxeZETmDaZHTKJC9AI/UeoRut3cjX/bMOSS6rygxeEGJQSyzaxf06wc33wwffAClS6f8GflP\nrCOWDSc3MHXvVDac3MBDVR6if83+NCjdQG0RqaDE4AUlBrHU9evw5pvw3nvwf/9nZorLxMN5p9ZP\nV39i7r65TN07FYCHaz5Mrzt6USx3MZsjSz+UGLygxCB+cegQPPKIGUpj6lSoUsXuiNIlh8PBtrPb\nmBY5jWXfLaNxucb0q9GPFre0IDTYytmJ0z8lBi8oMYjfxMSYx1lffRWeegqefx6yZbM7qnTryr9X\nWHxoMdMjp3Pqj1P0rN6TvjX6cmuRW+0OLSApMXhBiUH87uxZM2Lr8eOmc9xdd9kdUbp35JcjzIyc\nyZz9c7g53830rdGXztU6kz97frtDCxhKDF5QYhBbOBxmKtHBg6F5c3j7bShY0O6o0r3o2GjWHl/L\nrH2zWHdiHS0qtqBPjT40Ld+UkODMPSKuEoMXlBjEVpcvw0svwZIlJjn07KlHW33k179/5eNDHzPr\n21mc+/McPar3oNcdvahWtJrdodlCicELSgwSEHbtgsceg9y5TTtE1ap2R5ShfPfzd8zdP5e5++dS\nJGcRelbvSdfbu3JT7pvsDs1vlBi8oMQgASMmxvR3ePVVM5z3yy9Drlx2R5WhxMTGEHE6grn757Li\n6ArqlapHj9t78FCVh8iVNWOfayUGLygxSMD58Ud49ln4+msYPx7atVP1kgWuXr/KiqMrmLd/HtvO\nbqN15dZ0v70795a/N0M++qrE4AUlBglYX31lnl4qUcJ0kKtc2e6IMqxLf11i0cFFzD8wnzOXz9D5\nts50r949Q434qsTgBSUGCWhRUTBpEowebYbXePllyKORR6107NdjzD8wnwUHFhDriKXb7d3oWq1r\nuu8focTgBSUGSRd+/NF0iNuwAd56C7p3V/WSxRwOB3su7mHBgQV8fOhjiuQsQtdqXelSrQs357/Z\n7vC8psTgBSUGSVe2b4cnn4SsWc28D3Xq2B1RphATG8PmM5tZcGABS79bSqVClehSrQsdq3akeJ70\nMa2rEoMXlBgk3YmNhdmz4cUXoVkzeP11zTntR1ExUWw4uYFFhxax6ugq7rjpDjrf1pn2t7anSK4i\ndoeXpEBNDM2BCUAIMA14K9H74cAK4KTz9afAa272o8QgAvDnn6btYfp0eOYZePppyJ7d7qgylWvR\n11hzfA2LDy3m82OfU7dkXTrf1pm2VdpSKGchu8NLIBATQwhwFLgPOA/sAroC37lsEw4MBVqnsC8l\nBqeIiAjCw8PtDiMgZOpzceIEPPcc7NkDb71FRNGihDdubHdUAcGffxd/R/3N58c+Z8nhJaw5voZ6\nperRsWpHHqryEIVzFvZLDMlJbWKwcpD4MOA4cBqIAhYBbdxsl16qswJCRESE3SEEjEx9LipUgE8/\nhVmzTGLo1cu0RYhf/y5yZslJh6od+LjDx1wYeoH+Nfuz7sQ6KrxbgaZzmzJl9xR+uvqT3+LxFSsT\nQ0ngrMvrc851rhxAA2Af8DmgMQFEvBEebobWqF0bOnaEzp3h5MkUPya+lytrLjre1pHFHRdzYegF\nBtQeQMQPEVR6rxKNZzdm0s5JXLhywe4wPWJlYvCksmYvUBq4A3gPWG5hPCIZU0gI1KgBR49CtWoQ\nFgYTJtgdVaaWK2suOlTtwML2C7n4zEWG3DmEned3Um1yNRpMb8C5P8/ZHWKyrKzGqQeMxDRAA7wA\nxHJjA7SrU0Bt4LdE648DFXwcn4hIRncCqGh3EK5CMUGVBbIC3wKJuxEWIz45hWHaI0REJANrgXky\n6TimxAAwwPkF8ARwEJM0tmFKGSIiIiIiIu41B44Ax4Dn3bxfGFiDKWEcBPr4LTL/mgFcAg4ks827\nmPO0D6jpj6BsktK56I45B/uBrUB1P8VlB0/+LgDqAtFAO8sjso8n5yIciMRcKyKsD8k2KZ2LdH3d\nDMFUOZUFsuC+TWIk8IZzuTDwK6YtI6O5C3OxT+oX3RLzeC/AncA3/gjKJimdi/pAPudyczL3uQDz\nf/Ql8BnQ3h9B2SSlc5EfOASUcr62v7eZdVI6FyPx8rpp5eOq3vKkQ9xFIK9zOS/mB4z2U3z+tBn4\nPZn3WwOzncs7MP8ExawOyiYpnYvtwGXn8g7iLwQZUUrnAuBJ4BPgZ+vDsVVK56IbZoiduOdCf7E8\nIvukdC68vm4GUmLwpEPcVOA24AKm+mCwf0ILOO7OVUa+IHrqYeJLUplRSczN1AfO1+l04BefuAUo\nCGwCdgM97Q3HVl5fNwOpGsaTP+LhmCqmcEy/hvWYznFXrAsrYCXug5KZLwIAjYF+QEO7A7HRBOB/\nmL+FIDL3cDNZgFrAvUBOTMnyG0y7XGbj9XUzkEoM5zG9oOOUJr4YGKcBsMS5fALTIS4zzn2Y+FyV\ncq7LrKpj7opak3JVS0ZWG1MFewrTvjCZlAeozKjOAuuAfzBVJ19jLoaZkdfXzUBKDLsxxb+ymA5x\nnYGVibY5ghmtFUydemXih+zOTFYCvZzL9YA/ME8lZEZlgKVAD0wbVWZWHijn/PoEeIwb/4cyixVA\nI0xjfE7MQxqHbY3IPun+uplSh7jCwCpMPdkBTANTRrQQUx94HXPn04+E5wFgEuY87cMUmTOqlM7F\nNMwdYaTza6cNMfqLJ38XcWaSsR9X9eRcPIt5MukA8JS/A/SjlM5FZrluioiIiIiIiIiIiIiIiIiI\niIiIiIiIiPjKl8D9idYNwfTsTcppzFg5/jKVG0cD9pURzu9BbtbFmY4Z9mA/sIz4EWdFRDKkRzBj\nzrvajunZmpRT+DcxWKEGMNH51QYYncQ6gDwun3sHeMl/YYqI+F9BzJAfcYM+lgV+cC53xdwlHwDe\ndPlMXGIoS8Jx6p8l/m47AhgH7AK+w0xwswz4Hhjl8pkemCG9I4EPcT+UTATxPdD/Al7D3MFvB4q6\n2X4kZuj0rzGlm3bAWOfP8oXLz1oF+A143+Wz7tbFCcKUpAa6eU/EI4E0VpJIUn7DDHXR0vm6C/Ax\nUAKTDBpj7qTrcuMcHok5iB+J1gH86/zcB5jxdQYC1TCzXBXAVA91wgxEVhOIxcwa526/ceJG86yB\nufA/kkQs5ZyxtwbmYUa9rI4Z+O0BzKBvA4G5mAHhRiWxLs5MzNj71TFDhYikihKDpBcLMQkBzACL\nCzEX9AjMWEkxwHzgbg/25VpXHzfI3EHn1yXMmDMnMQP03YsZtXQ3psTQBHNBT851YLVzeQ+m1JKY\nA1MyiHEeNxhY63zvgPMz+zBtKb9hktbLSayL0xeTLPcDL6YQo0iSAmk+BpHkrATGY+7ac2Iu0qUT\nbRPEjfNSRJPwBihHom3+dX6PdVmOex33/zEbM6a9p6KS2E9i1122Se4zr7r5rLt1cZ9dBDyXcpgi\n7qnEIOnFX5jZuGYCC5zrdgH3AIUwwyt3Ab5K9LlLmDr+gkA24EEvjukANgIdgCLOdQUxJYlAU9H5\nPQhTNRVpYyySzqnEIOnJQszcC52cry9iZizbhLkgfoYZXhjiSwVRwP9h2ijOk/SY/K5tD66+wzzh\nsw5zIxUFPA6cSSZOR6LlpGbXS7xdUu+lJAiYRfy8vruBJ7z4vIiIiIiIiIiIiIiIiIiIiIiIiIiI\niIiIiIiIiIj9/h8kPPiCgRrEnAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x112341d50>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7 Page No : 270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy.linalg import solve\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "p1 = 10e6 \t\t\t#N/m**2 \t\t\t#initial pressure\n",
+ "T1 = 273.+27 \t\t\t#K \t\t\t#inital temperature\n",
+ "V1 = 50.e-3 \t\t\t#m**3 \t\t\t#inital volume\n",
+ "M = 28. \t\t\t#g/mol \t\t\t#molecular mass\n",
+ "R = 8314.3/M \t\t\t#J/kgK\n",
+ "y = 1.4 \t\t\t#gamma\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print 'Parta';\n",
+ "m = (p1*V1)/(R*T1)\n",
+ "print \"Mass of nitrogen stored in bottle = %.3f kg\"%(m)\n",
+ "\n",
+ "#Part(b):(i)\n",
+ "print 'Partb:i';\n",
+ "p2 = 15e6 \t\t\t#N/m**2 \t\t\t#final pressure\n",
+ "V2 = V1 \t\t\t#m**3 \t\t\t#final volume\n",
+ "T2 = (p2*V2)/(m*R)\n",
+ "print \"Temperature of nitrogen at maximum permitted temperature = %.1f K\"%(T2)\n",
+ "\n",
+ "#Part(b):(ii)\n",
+ "print 'Partb:ii';\n",
+ "C = solve([[1, -1.4],[1, -1]],[[0],[R]]) \t\t\t#J/kgK \t\t\t#C = [Cp;Cv]\n",
+ "delta_U = m*C[1]*(T2-T1)*.001 \t\t\t#kJ \t\t\t#Change in internal energy\n",
+ "print \"Change in internal energy = %.1f kJ\"%(delta_U)\n",
+ "\n",
+ "#Part(b):(iii)\n",
+ "print 'Partb:iii';\n",
+ "delta_H = m*C[0]*(T2-T1)*.001 \t\t\t#kJ \t\t\t#Change in enthalpy\n",
+ "print \"Change in enthalpy = %.1f kJ\"%(delta_H)\n",
+ "\n",
+ "#Part(b):(iv)\n",
+ "print 'Partb:iv';\n",
+ "delta_S = m*(C[1]*math.log(T2/T1)+R*math.log(V2/V1))*.001 \t\t\t#kJ/K \t\t\t#Change in entropy\n",
+ "print \"Change in entropy = %.4f kJ/K\"%(delta_S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Mass of nitrogen stored in bottle = 5.613 kg\n",
+ "Partb:i\n",
+ "Temperature of nitrogen at maximum permitted temperature = 450.0 K\n",
+ "Partb:ii\n",
+ "Change in internal energy = 625.0 kJ\n",
+ "Partb:iii\n",
+ "Change in enthalpy = 875.0 kJ\n",
+ "Partb:iv\n",
+ "Change in entropy = 1.6894 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8 Page No : 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "T1 = 800. \t\t\t#K \t\t\t#initial temperature\n",
+ "p1 = 1.5e6 \t\t\t#N/m**2 \t\t\t#initial pressure\n",
+ "T2 = 540. \t\t\t#K \t\t\t#final temperature\n",
+ "T2s = 485. \t\t\t#K \t\t\t#final temperature for reversible process\n",
+ "Q = 0. \t\t\t#adiabatic process\n",
+ "y = 1.4\n",
+ "Cv = 718. \t\t\t#J/kgK \t\t\t#specific heat at constant volume\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "delta_U = Cv*(T2-T1) \t\t\t#kJ/kg \t\t\t#change in internal energy\n",
+ "W = (Q-delta_U)*.001 \t\t\t#kJ/kg \t\t\t#work done per kilogram\n",
+ "print \"Work done per kilogram = %.1f kJ/kg\"%(W);\n",
+ "\n",
+ "p2 = p1*(T2s/T1)**(y/(y-1)) \t\t\t#N/m**2 \t\t\t#final pressure\n",
+ "delta_S = (y*Cv)*math.log(T2/T1)-(y*Cv-Cv)*math.log(p2/p1)\n",
+ "print \"Change in entropy = %.3f kJ/kgK\"%(delta_S*.001)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done per kilogram = 186.7 kJ/kg\n",
+ "Change in entropy = 0.108 kJ/kgK\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9 Page No : 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "xCO2 = 0.1 \t\t\t#mole fraction of CO2\n",
+ "xO2 = .09 \t\t\t#mole fraction of O2\n",
+ "xCO = 0.01 \t\t\t#mole fraction of CO\n",
+ "xN2 = 0.8 \t\t\t#mole fraction of N2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "M = xCO2*44 + xO2*32 + xCO*28 + xN2*28 \t\t\t#kg/kmol \t\t\t#avg. molar mass\n",
+ "R = 8314.3/M \t\t\t#J/kgK \t\t\t#gas constant\n",
+ "yCO2 = xCO2*(44/M) \t\t\t#mass fraction of CO2\n",
+ "yO2 = xO2*(32/M) \t\t\t#mass fraction of O2\n",
+ "yCO = xCO*(28/M) \t\t\t#mass fraction of CO\n",
+ "yN2 = xN2*(28/M) \t\t\t#mass fraction of N2\n",
+ "\n",
+ "print \"Molar Mass = %.2f kg/kmol\"%(M);\n",
+ "print \"Gas constant = %.1f J/kgK\"%(R);\n",
+ "print \"Mass fraction of CO2 = %.4f \"%(yCO2);\n",
+ "print \"Mass fraction of O2 = %.4f \"%(yO2);\n",
+ "print \"Mass fraction of CO = %.4f \"%(yCO);\n",
+ "print \"Mass fraction of N2 = %.4f \"%(yN2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar Mass = 29.96 kg/kmol\n",
+ "Gas constant = 277.5 J/kgK\n",
+ "Mass fraction of CO2 = 0.1469 \n",
+ "Mass fraction of O2 = 0.0961 \n",
+ "Mass fraction of CO = 0.0093 \n",
+ "Mass fraction of N2 = 0.7477 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10 Page No : 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# variables\n",
+ "m = 1.9 \t\t\t#kg\n",
+ "T = 273.+20 \t\t\t#K\n",
+ "p = 150.e3 \t\t\t#Pa\n",
+ "yO2 = 0.1 \t\t\t#mass fraction of O2\n",
+ "yN2 = 0.75 \t\t\t#mass fraction of N2\n",
+ "yCO2 = 0.12 \t\t\t#mass fraction of CO2\n",
+ "yCO = 0.03 \t\t\t#mass fraction of CO\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Parta\";\n",
+ "M = 1/((yO2/32)+(yN2/28)+(yCO/28)+(yCO2/44)) \t\t\t#kg/kmol \t\t\t#molar mass\n",
+ "print \"Molar mass = %.2f kg/kmol \"%(M)\n",
+ "R = 8314.3/M \t\t\t#J/kgK \t\t\t#Gas constant\n",
+ "print \"Gas constant = %.2f J/kgK \"%(R)\n",
+ "V = m*R*T/p \t\t\t#m**3 \t\t\t#Volume\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\"\n",
+ "xO2 = yO2*(M/32) \t\t\t#mole fraction O2\n",
+ "print \"Mole fraction of O2 = %.3f\"%(xO2)\n",
+ "pO2 = xO2*p \t\t\t#partial pressure O2\n",
+ "print \"Partial pressure of O2 = %.2f kPa\"%(pO2*.001)\n",
+ "VO2 = xO2*V \t\t\t#partial volume of O2\n",
+ "print \"Partial volume of O2 = %.4f m**3\"%(VO2)\n",
+ "\n",
+ "\n",
+ "xN2 = yN2*(M/28) \t\t\t#mole fraction N2\n",
+ "print \"Mole fraction of N2 = %.3f\"%(xN2)\n",
+ "pN2 = xN2*p \t\t\t#partial pressure N2\n",
+ "print \"Partial pressure of N2 = %.2f kPa\"%(pN2*.001)\n",
+ "VN2 = xN2*V \t\t\t#partial volume of N2\n",
+ "print \"Partial volume of N2 = %.4f m**3\"%(VN2)\n",
+ "\n",
+ "\n",
+ "xCO2 = yCO2*(M/44) \t\t\t#mole fraction CO2\n",
+ "print \"Mole fraction of CO2 = %.3f\"%(xCO2)\n",
+ "pCO2 = xCO2*p \t\t\t#partial pressure CO2\n",
+ "print \"Partial pressure of CO2 = %.2f kPa\"%(pCO2*.001)\n",
+ "VCO2 = xCO2*V \t\t\t#partial volume of CO2\n",
+ "print \"Partial volume of CO2 = %.4f m**3\"%(VCO2)\n",
+ "\n",
+ "\n",
+ "xCO = yCO*(M/28) \t\t\t#mole fraction CO\n",
+ "print \"Mole fraction of CO = %.3f\"%(xCO)\n",
+ "pCO = xCO*p \t\t\t#partial pressure CO\n",
+ "print \"Partial pressure of CO = %.2f kPa\"%(pCO*.001)\n",
+ "VCO = xCO*V \t\t\t#partial volume of CO\n",
+ "print \"Partial volume of CO = %.4f m**3\"%(VCO)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Molar mass = 29.67 kg/kmol \n",
+ "Gas constant = 280.27 J/kgK \n",
+ "Partb\n",
+ "Mole fraction of O2 = 0.093\n",
+ "Partial pressure of O2 = 13.91 kPa\n",
+ "Partial volume of O2 = 0.0964 m**3\n",
+ "Mole fraction of N2 = 0.795\n",
+ "Partial pressure of N2 = 119.19 kPa\n",
+ "Partial volume of N2 = 0.8265 m**3\n",
+ "Mole fraction of CO2 = 0.081\n",
+ "Partial pressure of CO2 = 12.14 kPa\n",
+ "Partial volume of CO2 = 0.0842 m**3\n",
+ "Mole fraction of CO = 0.032\n",
+ "Partial pressure of CO = 4.77 kPa\n",
+ "Partial volume of CO = 0.0331 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11 Page No : 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy.linalg import solve\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "R = 1841. \t\t\t#J/kgK \t\t\t#Gas constant\n",
+ "Cp = 6310. \t\t\t#J/kgK \t\t\t#specific heat at constant pressure\n",
+ "MN = 28. \t\t\t#kg/kmol \t\t\t#molar mass N2\n",
+ "MH = 2. \t\t\t#kg/kmol \t\t\t#molar mass H2\n",
+ "CpN = 1042. \t\t\t#J/kgK \t\t\t#specific heat of N2\n",
+ "CpH = 14210. \t\t\t#J/kgK \t\t\t#specific heat of H2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "Y = solve([[8314.3/MN, 8314.3/MH],[CpN, CpH]],[[R],[ Cp]])\n",
+ "YN = round(Y[0],1) \t\t\t#mass fraction of N2\n",
+ "YH = round(Y[1],1) \t\t\t#mass fraction of H2\n",
+ "XN = YN*(8314.3/(R*MN)) \t\t\t#volume fraction of N2\n",
+ "XH = YH*(8314.3/(R*MH)) \t\t\t#volume fraction of H2\n",
+ "print \"Mass fraction of N2 = %.1f \"%(YN)\n",
+ "print \"Mass fraction of H2 = %.1f \"%(YH)\n",
+ "print \"Volume fraction of N2 = %.4f \"%(XN)\n",
+ "print \"Volume fraction of H2 = %.4f \"%(XH)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass fraction of N2 = 0.6 \n",
+ "Mass fraction of H2 = 0.4 \n",
+ "Volume fraction of N2 = 0.0968 \n",
+ "Volume fraction of H2 = 0.9032 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.12 Page No : 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "m = 1.9 \t\t\t#kg\n",
+ "T = 273.+20 \t\t\t#K\n",
+ "p = 150. \t\t\t#kPa\n",
+ "pdat = 100. \t\t\t#kPa \t\t\t#datum pressure\n",
+ "Tdat = 273. \t\t\t#K \t\t\t#datum temperature\n",
+ "yO2 = 0.1 \t\t\t#mass fraction of O2\n",
+ "yN2 = 0.75 \t\t\t#mass fraction of N2\n",
+ "yCO2 = 0.12 \t\t\t#mass fraction of CO2\n",
+ "yCO = 0.03 \t\t\t#mass fraction of CO\n",
+ "xO2 = 0.093 \t\t\t#mole fraction of O2\n",
+ "xN2 = 0.795 \t\t\t#mole fraction of N2\n",
+ "xCO2 = 0.081 \t\t\t#mole fraction of CO2\n",
+ "xCO = 0.031 \t\t\t#mole fraction of CO\n",
+ "R = 280.22 \t\t\t#J/kgK\n",
+ "M = 29.67 \t\t\t#kg/kmol \t\t\t#mixture molar mass\n",
+ "CpO2=0.922 \t\t\t#kJ/kgK\n",
+ "CpN2=1.042 \t\t\t#kJ/kgK\n",
+ "CpCO2=0.842 \t\t\t#kJ/kgK\n",
+ "CpCO=1.041 \t\t\t#kJ/kgK\n",
+ "\n",
+ "#Part(a)\n",
+ "print \"Parta\";\n",
+ "Cp = yN2*CpN2 + yO2*CpO2 + yCO2*CpCO2 + yCO*CpCO \t\t\t#kJ/kgK \t\t\t# specific heat of mixture at constant pressure\n",
+ "Cv = Cp - R*.001 \t\t\t#specific heat of mixture at constant volume\n",
+ "print \"Cp = %.3f kJ/kgK\"%(Cp)\n",
+ "print \"Cv = %.4f kJ/kgK\"%(Cv) \n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\";\n",
+ "U = m*(Cv*(T-Tdat)) \t\t\t#kJ \t\t\t#internal energy\n",
+ "print \"Internal energy = %.2f kJ\"%(U)\n",
+ "\n",
+ "#Part(c)\n",
+ "print \"Partc\"\n",
+ "H = U + m*R*T*.001 \t\t\t#kJ \t\t\t#enthalpy\n",
+ "print \"Enthalpy = %.1f kJ\"%(H)\n",
+ "\n",
+ "#Part(d)\n",
+ "print \"Partd\"\n",
+ "SO2 = CpO2*math.log(T/Tdat)-(8.3143/32)*math.log(xO2*(p/pdat)) \t\t\t#kJ/kgK \t\t\t#entropy of O2\n",
+ "SN2 = CpN2*math.log(T/Tdat)-(8.3143/28)*math.log(xN2*(p/pdat)) \t\t\t#kJ/kgK \t\t\t#entropy of N2\n",
+ "SCO2 = CpCO2*math.log(T/Tdat)-(8.3143/44)*math.log(xCO2*(p/pdat)) \t\t\t#kJ/kgK \t\t\t#entropy of CO2\n",
+ "SCO = CpCO*math.log(T/Tdat)-(8.3143/28)*math.log(xCO*(p/pdat)) \t\t\t#kJ/kgK \t\t\t#entropy of CO\n",
+ "\n",
+ "S = m*(yO2*SO2+yN2*SN2+yCO2*SCO2+yCO*SCO) \t\t\t#kJ/K \t\t\t#entropy\n",
+ "print \"Entropy = %.4f kJ/K\"%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Cp = 1.006 kJ/kgK\n",
+ "Cv = 0.7258 kJ/kgK\n",
+ "Partb\n",
+ "Internal energy = 27.58 kJ\n",
+ "Partc\n",
+ "Enthalpy = 183.6 kJ\n",
+ "Partd\n",
+ "Entropy = 0.3006 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.13 Page No : 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "V_He = 0.3 \t\t\t#m**3 \t\t\t#volume of Helium\n",
+ "p_He = 20e5 \t\t\t#Pa \t\t\t#pressure of Helium\n",
+ "T_He = 273.+30 \t\t\t#K \t\t\t#Temperature of Helium\n",
+ "V_O2 = 0.7 \t\t\t#m**3 \t\t\t#volume of O2\n",
+ "p_O2 = 6e5 \t\t\t#Pa \t\t\t#pressure of O2\n",
+ "T_O2 = 273.+2 \t\t\t#K Temperature of O2\n",
+ "R_He = 2077. \t\t\t#J/kgK\n",
+ "R_O2 = 260. \t\t\t#J/kgK\n",
+ "Cv_He = 3116. \t\t\t#J/kgK\n",
+ "Cv_O2 = 662. \t\t\t#J/kgK\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "m_He = (p_He*V_He)/(R_He*T_He) \t\t\t#kg \t\t\t#mass of Helium\n",
+ "m_O2 = (p_O2*V_O2)/(R_O2*T_O2) \t\t\t#kg \t\t\t#mass of O2\n",
+ "T_ad = (m_He*Cv_He*T_He+m_O2*Cv_O2*T_O2)/(m_He*Cv_He+m_O2*Cv_O2) \t\t\t#K \t\t\t#Temperature after mixing\n",
+ "T_final = 300 \t\t\t#K \t\t\t#final temperature\n",
+ "Q = (Cv_He*m_He+Cv_O2*m_O2)*(T_final-T_ad) \t\t\t#J \t\t\t#Magnitude of heat transfer\n",
+ "print \"Magnitude of heat transfer = %.2f kJ\"%(Q*.001)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of heat transfer = 88.30 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.14 Page No : 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "T_E = (273.+20) \t\t\t#K \t\t\t#temperature of ethane\n",
+ "p_E = 200. \t\t\t#kPa \t\t\t#pressure of ethane\n",
+ "T_M = 273.+45 \t\t\t#K \t\t\t#temperature of methane\n",
+ "p_M = 200. \t\t\t#kPa \t\t\t#pressure of methane\n",
+ "m_E = 9. \t\t\t#kg/s \t\t\t#mass rate of ethane\n",
+ "m_M = 4.5 \t\t\t#kg/s \t\t\t#mass rate of methane\n",
+ "Cp_E = 1766. \t\t\t#J/kgK \t\t\t#specific heat of ethane\n",
+ "Cp_M = 2254. \t\t\t#J/kgK \t\t\t#specific heat of methane\n",
+ "\n",
+ "\t\t\t\n",
+ "# Calculations and Results\n",
+ "#Part(a)\n",
+ "print \"Parta\";\n",
+ "T = (m_E*Cp_E*T_E+m_M*Cp_M*T_M)/(m_E*Cp_E+m_M*Cp_M) \t\t\t#K \t\t\t#mixture temperature\n",
+ "print \"Mixture temperature = %.1f K\"%(T)\n",
+ "\n",
+ "#Part(b)\n",
+ "print \"Partb\";\n",
+ "R_E = 8314.3/30 \t\t\t#J/kgK \t\t\t#gas constant for ethane\n",
+ "R_M = 8314.3/16 \t\t\t#J/kgK \t\t\t#gas constant for methane\n",
+ "R = (m_E/(m_E+m_M))*R_E+(m_M/(m_E+m_M))*R_M \t\t\t#J/kgK \t\t\t#gas constant of mixture\n",
+ "M = 8314.3/R \t\t\t#kg/kmol \t\t\t#mixture molar mass\n",
+ "x_E = (m_E/(m_E+m_M))*(M/30) \t\t\t#mole fraction of ethane\n",
+ "x_M = (m_M/(m_E+m_M))*(M/16) \t\t\t#mole fraction of methane\n",
+ "\n",
+ "delta_S_E = Cp_E*math.log(T/T_E) - R_E*math.log(x_E) \t\t\t#J/kgK \t\t\t#change in entropy of ethane\n",
+ "delta_S_M = Cp_M*math.log(T/T_M) - R_M*math.log(x_M) \t\t\t#J/kgK \t\t\t#change in entropy of methane\n",
+ "\n",
+ "print \"Rate of entropy production = %.4f kJ/sK\"%((m_E*delta_S_E+m_M*delta_S_M)*.001)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta\n",
+ "Mixture temperature = 302.7 K\n",
+ "Partb\n",
+ "Rate of entropy production = 3.3681 kJ/sK\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Basic_Engineering_Thermodynamics/screenshots/3.png b/Basic_Engineering_Thermodynamics/screenshots/3.png
new file mode 100755
index 00000000..89b82c27
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/screenshots/3.png
Binary files differ
diff --git a/Basic_Engineering_Thermodynamics/screenshots/6.png b/Basic_Engineering_Thermodynamics/screenshots/6.png
new file mode 100755
index 00000000..b767f067
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/screenshots/6.png
Binary files differ
diff --git a/Basic_Engineering_Thermodynamics/screenshots/PVDiagram9.png b/Basic_Engineering_Thermodynamics/screenshots/PVDiagram9.png
new file mode 100755
index 00000000..cb4c5108
--- /dev/null
+++ b/Basic_Engineering_Thermodynamics/screenshots/PVDiagram9.png
Binary files differ
diff --git a/C++_By_Example/Chapter1.ipynb b/C++_By_Example/Chapter1.ipynb
new file mode 100755
index 00000000..80574ccb
--- /dev/null
+++ b/C++_By_Example/Chapter1.ipynb
@@ -0,0 +1,773 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b15773f7ac32790cdae17d01e20d25a0e5b7210bb725c38fabf3dd28109e9da"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Introduction to C++"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C3FIRST, Page number:52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "i=4\n",
+ "j=i+7\n",
+ "c='A'\n",
+ "x=9.087\n",
+ "x=x*4.5\n",
+ "\n",
+ "#Result\n",
+ "print i,c,j,x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4 A 11 40.8915\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C4ST1, Page number:85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Result\n",
+ "print \"C++ programming is fun!\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C++ programming is fun!\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C4ST2, Page number:86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declaration\n",
+ "tax_rate=0.08\n",
+ "sale=22.54\n",
+ "\n",
+ "#Calculation\n",
+ "tax=sale*tax_rate\n",
+ "\n",
+ "#Result\n",
+ "print \"The sales tax is :\" ,tax"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sales tax is : 1.8032\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C4AREAC,Page number:95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declaration\n",
+ "PI=3.14159\n",
+ "radius=5\n",
+ "\n",
+ "#Calculation\n",
+ "area=radius*radius*PI\n",
+ "#Result\n",
+ "print \"The area is \",area\n",
+ "\n",
+ "radius=20\n",
+ "#Calculation\n",
+ "area=radius*radius*PI\n",
+ "\n",
+ "#Result\n",
+ "print \"The area is \",area"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The area is 78.53975\n",
+ "The area is 1256.636\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C5INIT,Page number:108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "#first=raw_input(\"Enter your first name:\")\n",
+ "#last=raw_input(\"Enter your last name\")\n",
+ "\n",
+ "first=\"perry\"\n",
+ "last=\"greg\"\n",
+ "#Print the Initials\n",
+ "print \"Your initials are \",first[0],last[0] \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your initials are p g\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C6PRE,Page number:114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declaration\n",
+ "AGE=28\n",
+ "MESSAGE=\"Hello, world\"\n",
+ "\n",
+ "i=10\n",
+ "age=5\n",
+ "\n",
+ "# 'AGE' is different from 'age'\n",
+ "i=i*AGE \n",
+ "\n",
+ "#Result\n",
+ "print i,\" \",age,\" \",AGE,\"\\n\"\n",
+ "print MESSAGE "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "280 5 28 \n",
+ "\n",
+ "Hello, world\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C6INCL1,Page number:119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Result\n",
+ "print \"Kelly Jane Peterson\\n\"\n",
+ "print \"Apartment #217\\n\"\n",
+ "print \"4323 East Skelly Drive\\n\"\n",
+ "print \"New York, New York\\n\"\n",
+ "print \" 10012\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kelly Jane Peterson\n",
+ "\n",
+ "Apartment #217\n",
+ "\n",
+ "4323 East Skelly Drive\n",
+ "\n",
+ "New York, New York\n",
+ "\n",
+ " 10012\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C6INCL3,Page number:120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "source = \"This is fun!\"\n",
+ "\n",
+ "#source is copied to message\n",
+ "import copy\n",
+ "message=copy.copy(source)\n",
+ "\n",
+ "#Result\n",
+ "print message\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This is fun!\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C6DEF1,Page number:121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MYNAME=\"Phil Ward\"\n",
+ "name=MYNAME\n",
+ "\n",
+ "#Result\n",
+ "print \"My name is \",name,\"\\n\"\n",
+ "print \"My name is \",MYNAME,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "My name is Phil Ward \n",
+ "\n",
+ "My name is Phil Ward \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C6DEF2,Page number:122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#function definition\n",
+ "def X4(b,c,d):\n",
+ " return 2*b+c+3*b+c+b+c+4*b+c+b+c*c+b+c-d\n",
+ " \n",
+ "b=2\n",
+ "c=3\n",
+ "d=4\n",
+ "e= X4 (b,c,d)\n",
+ "\n",
+ "#Result\n",
+ "print e,\",\",b+c,\",\",b+c+b+c,\",\",b+c+b+c*c+b+c-d,\",\",X4(b,c,d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "44 , 5 , 10 , 17 , 44\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7PRNT1,Page number:136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declaration\n",
+ "first='E'\n",
+ "middle='W'\n",
+ "last='C'\n",
+ "age=32\n",
+ "dependents=2\n",
+ "salary=25000.00\n",
+ "bonus=575.25\n",
+ "\n",
+ "#Result\n",
+ "print \"Here are the initials: \"\n",
+ "print first,middle,last\n",
+ "print \"The age and number of dependents are \"\n",
+ "print age,\" \",dependents\n",
+ "print \"The salary and bonus are \"\n",
+ "print salary,\" \",bonus\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the initials: \n",
+ "E W C\n",
+ "The age and number of dependents are \n",
+ "32 2\n",
+ "The salary and bonus are \n",
+ "25000.0 575.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7TEAM, Page number:138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#table of team names and hits for three weeks\n",
+ "\n",
+ "print \"Parrots\\tRams\\tKings\\tTitans\\tChargers\"\n",
+ "print \"3\\t5\\t3\\t1\\t0\"\n",
+ "print \"2\\t5\\t1\\t0\\t1\"\n",
+ "print \"2\\t6\\t4\\t3\\t0\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parrots\tRams\tKings\tTitans\tChargers\n",
+ "3\t5\t3\t1\t0\n",
+ "2\t5\t1\t0\t1\n",
+ "2\t6\t4\t3\t0\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7PAY1,Page number:141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Computes and prints payroll data properly in dollars and cents.\n",
+ "\n",
+ "emp_name=\"Larry Payton\"\n",
+ "pay_date=\"03/09/92\"\n",
+ "hours_worked=43\n",
+ "rate=7.75 #pay per hour\n",
+ "tax_rate=.32 #Tax percentage rate\n",
+ "\n",
+ "\n",
+ "#Compute the pay amount\n",
+ "gross_pay=hours_worked*rate\n",
+ "taxes=tax_rate*gross_pay\n",
+ "net_pay=gross_pay-taxes\n",
+ "\n",
+ "#Results\n",
+ "print \"As of: \",pay_date\n",
+ "print emp_name,\" worked \",hours_worked,\"hours\"\n",
+ "print \"and got paid\",round(gross_pay,2)\n",
+ "print \"After taxes of: \",round(taxes,2)\n",
+ "print \"his take-home pay was $\",round(net_pay,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "As of: 03/09/92\n",
+ "Larry Payton worked 43 hours\n",
+ "and got paid 333.25\n",
+ "After taxes of: 106.64\n",
+ "his take-home pay was $ 226.61\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7SLTX1, Page number:146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#prompt for a sales amount and print sales tax\n",
+ "\n",
+ "#getting total sale as float number.\n",
+ "#print \"What is the total amount of the sale?\"\n",
+ "#total_sale=float(raw_input()) \n",
+ "\n",
+ "total_sale=50\n",
+ "\n",
+ "#Compute sales tax\n",
+ "stax=total_sale*0.07 \n",
+ "\n",
+ "#Results\n",
+ "print \"The sales tax for\",float(round(total_sale,2)),\"is\",round(stax,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sales tax for 50.0 is 3.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7PHON1, Page number:147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#request user's name and print it as it would appeat in a phone book\n",
+ "\n",
+ "#get name\n",
+ "#first=raw_input(\"What is your first name?\\n\")\n",
+ "#last=raw_input(\"What is your last name?\\n\")\n",
+ "\n",
+ "first=\"perry\"\n",
+ "last=\"greg\"\n",
+ "print \"\\n\\n\"\n",
+ "print \"In a phone book,your name would look like this :\\n\"\n",
+ "print last,\",\",first "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "\n",
+ "In a phone book,your name would look like this :\n",
+ "\n",
+ "greg , perry\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7MATH, Page number:148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Simple Addition\n",
+ "\n",
+ "print \"*** Math Practice ***\\n\\n\\n\"\n",
+ "#num1=input(\"What is the first number:\")\n",
+ "#num2=input(\"What is the second number:\")\n",
+ "\n",
+ "num1=10\n",
+ "num2=20\n",
+ "\n",
+ "ans=num1+num2\n",
+ "\n",
+ "#get user answer\n",
+ "#her_ans=input(\"\\nWhat do you think is the answer?\")\n",
+ "her_ans=30\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n\",num1,\"plus\",num2,\"is\",ans,\"\\n\\nHope you got it right!\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "*** Math Practice ***\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "10 plus 20 is 30 \n",
+ "\n",
+ "Hope you got it right!\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7PS2, Page number:150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "message=\"Please turn on your printer.\"\n",
+ "\n",
+ "#Result\n",
+ "print message"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please turn on your printer.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7PRNTF, Page number:153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declaration\n",
+ "first='E'\n",
+ "middle='W'\n",
+ "last='C'\n",
+ "age=32\n",
+ "dependents=2\n",
+ "salary=25000.00\n",
+ "bonus=575.25\n",
+ "\n",
+ "#Result\n",
+ "print \"Here are the initials: \"\n",
+ "print first,\" \",middle,\" \",last,\"\\n\"\n",
+ "print \"The age and number of dependents are: \"\n",
+ "print age,\" \",dependents,\"\\n\"\n",
+ "print \"The salary and bonus are: \"\n",
+ "print \"%.6f\" %salary,\" \",\"%.6f\" %bonus"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the initials: \n",
+ "E W C \n",
+ "\n",
+ "The age and number of dependents are: \n",
+ "32 2 \n",
+ "\n",
+ "The salary and bonus are: \n",
+ "25000.000000 575.250000\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C7SLTXS, Page number:156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#prompt for a sales amount and print sales tax\n",
+ "\n",
+ "#getting total sale as float number\n",
+ "#print \"What is the total amount of the sale?\"\n",
+ "#total_sale=float(raw_input()) \n",
+ "total_sale=10\n",
+ "\n",
+ "#compute sales tax\n",
+ "stax=total_sale*0.07 \n",
+ "\n",
+ "#Result\n",
+ "print \"The sales tax for\",float(round(total_sale,3)),\"is\",round(stax,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sales tax for 10.0 is 0.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/Chapter2.ipynb b/C++_By_Example/Chapter2.ipynb
new file mode 100755
index 00000000..9faa58a5
--- /dev/null
+++ b/C++_By_Example/Chapter2.ipynb
@@ -0,0 +1,806 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dc3f15d93cb383d5df54c3f7eecdad38d50217ab8d7454c3152fde2edbe2eca1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2, Using C++ Operators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C8NEG, Page number:166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "temp=-12\n",
+ "\n",
+ "#Result\n",
+ "print -temp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C8DIV, Page number:167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To compute weekly pay\n",
+ "#Get input\n",
+ "#yearly=input(\"What is your annual pay?\")\n",
+ "\n",
+ "yearly=38000.00\n",
+ "weekly=yearly/52\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n\\nYour weekly pay is \",float(weekly)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Your weekly pay is 730.769230769\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C8AVG1, Page number:172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compute the average of three grades\n",
+ "\n",
+ "grade1=87.5\n",
+ "grade2=92.4\n",
+ "grade3=79.6\n",
+ "\n",
+ "#Average calculation\n",
+ "avg=grade1+grade2+grade3/3.0\n",
+ "\n",
+ "#Result\n",
+ "print \"The average is: \",avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average is: 206.433333333\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C8DATA, Page number:179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declaration\n",
+ "bonus=50\n",
+ "salary=1400.50\n",
+ "\n",
+ "#Calculation\n",
+ "total=salary+bonus\n",
+ "\n",
+ "#Result\n",
+ "print \"The total is \",\"%.2f\" %total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total is 1450.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C8INT1, Page number:181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate interest\n",
+ "\n",
+ "days=45\n",
+ "principle=3500.00\n",
+ "interest_rate=0.155\n",
+ "\n",
+ "#daily interest rate\n",
+ "daily_interest=interest_rate/365 \n",
+ "daily_interest=principle*daily_interest*days\n",
+ "\n",
+ "#Update principle\n",
+ "principle+=daily_interest \n",
+ "\n",
+ "#Result\n",
+ "print \"The balance you owe is:\",\"%.2f\" %principle"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The balance you owe is: 3566.88\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9PAY1, Page number:193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate salesperson's pay based on his or her sales\n",
+ "\n",
+ "print \"\\n\\n\"\n",
+ "print \"Payroll Calculation\\n\"\n",
+ "print \"------------------------\\n\"\n",
+ "\n",
+ "#Get input\n",
+ "sal_name=raw_input(\"What is salesperson's last name? \")\n",
+ "hours=input(\"How many hours did the salesperson work? \")\n",
+ "total_sales=input(\"What were the total sales? \")\n",
+ "bonus=0\n",
+ "\n",
+ "#Compute base pay\n",
+ "pay=4.10*float(hours) \n",
+ "\n",
+ "if total_sales>8500.00:\n",
+ " bonus=500.00\n",
+ "\n",
+ "#Result\n",
+ "print sal_name,\"made $\",\"%.2f\" %pay, \"\\n and got a bonus of $\",\"%.2f\" %bonus"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "\n",
+ "Payroll Calculation\n",
+ "\n",
+ "------------------------\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is salesperson's last name? Harrison\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many hours did the salesperson work? 40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What were the total sales? 6050.64\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Harrison made $ 164.00 \n",
+ " and got a bonus of $ 0.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9AGE, Page number:195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "age=input(\"What is the student's age?\")\n",
+ "\n",
+ "if age<10:\n",
+ " print \"\\n*** The age cannot be less than 10 ***\\n\"\n",
+ " print \"Try again...\\n\"\n",
+ " age=input(\"What is the student's age?\")\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nThank you. You entered a valid age.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the student's age?3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "*** The age cannot be less than 10 ***\n",
+ "\n",
+ "Try again...\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the student's age?21\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Thank you. You entered a valid age.\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9SQR1, Page number:197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Print square of the input value if it is lessthan 180\n",
+ "\n",
+ "#Get input\n",
+ "num=input(\"What number do you want to see the square of?\")\n",
+ "\n",
+ "if num<=180:\n",
+ " square=num*num\n",
+ " print \"The square of \",num,\"is \",square,\"\\n\"\n",
+ " print \"\\nThank you for requesting square roots.\\n\"\n",
+ " \n",
+ "num=input(\"What number do you want to see the square of?\")\n",
+ "if num>180:\n",
+ " import os\n",
+ " os.system('\\a')\n",
+ " print \"\\n* Square is not allowed for numbers over 180 *\"\n",
+ " print \"\\nRun this program again trying a smaller value.\"\n",
+ "\n",
+ "print \"\\nThank you for requesting square roots.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What number do you want to see the square of?45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The square of 45 is 2025 \n",
+ "\n",
+ "\n",
+ "Thank you for requesting square roots.\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What number do you want to see the square of?212\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "* Square is not allowed for numbers over 180 *\n",
+ "\n",
+ "Run this program again trying a smaller value.\n",
+ "\n",
+ "Thank you for requesting square roots.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9IFEL1, Page number:200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "#num=input(\"What is your answer?\\n\")\n",
+ "num=1\n",
+ "if num>0:\n",
+ " print \"\\nMore than 0\\n\"\n",
+ "else:\n",
+ " print \"\\nLess or equal to 0\\n\"\n",
+ "\n",
+ "print \"\\nThanks for your time.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "More than 0\n",
+ "\n",
+ "\n",
+ "Thanks for your time.\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9IFEL2, Page number:200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Test user's first initial and prints a message.\n",
+ "\n",
+ "#Get input\n",
+ "#last=raw_input(\"\\nWhat is your last name?\\n\")\n",
+ "\n",
+ "last=\"Praveen\"\n",
+ "\n",
+ "#test the initial\n",
+ "if last[0] <= 'P':\n",
+ " print \"Your name is early in the alphabet.\\n\"\n",
+ "else:\n",
+ " print \"You have to wait a while for Your name to be called\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your name is early in the alphabet.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9PAY2, Page number:201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "#hours=input(\"\\nHow many hours were worked?\")\n",
+ "#rate=input(\"\\nWhat is the regular hourly pay?\")\n",
+ "\n",
+ "hours=44\n",
+ "rate=0.20\n",
+ "\n",
+ "#Compute pay\n",
+ "if hours>50:\n",
+ " dt=2.0*rate*float(hours-50)\n",
+ " ht=1.5*rate*10.0\n",
+ "else:\n",
+ " dt=0.0\n",
+ " \n",
+ "#Time and a half\n",
+ "if hours>40:\n",
+ " ht=1.5*rate*float(hours-40)\n",
+ "\n",
+ "#Regular pay\n",
+ "if hours>=40:\n",
+ " rp=40*rate\n",
+ "else:\n",
+ " rp=float(hours)*rate\n",
+ "\n",
+ "#Payroll\n",
+ "pay=dt+ht+rp \n",
+ "\n",
+ "#Result\n",
+ "print \"\\nThe pay is \",\"%.2f\" %pay\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The pay is 9.20\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C9SERV, Page number:202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#if...else...if\n",
+ "\n",
+ "#yrs=input(\"\\nHow many years of service?\")\n",
+ "yrs=25\n",
+ "\n",
+ "if yrs>20:\n",
+ " print \"\\nGive a gold watch\"\n",
+ "else:\n",
+ " if yrs>10:\n",
+ " print \"\\nGive a paper weight\"\n",
+ " else:\n",
+ " print \"\\nGive a pat on the back\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Give a gold watch\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C10YEAR, Page number:212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To determine if it is Summer Olympics year\n",
+ "\n",
+ "#year=input(\"\\nWhat is a year for the test?\")\n",
+ "\n",
+ "year=2004\n",
+ "\n",
+ "#Test the Year\n",
+ "if year%4==0 and year%10==0:\n",
+ " print \"\\nBoth Olympics and U.S. Census!\"\n",
+ " exit(0)\n",
+ " \n",
+ "if year%4==0:\n",
+ " print \"\\nSummer Olympics only\"\n",
+ "else:\n",
+ " if year%10==0:\n",
+ " print \"\\nU.S. Census only\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Summer Olympics only\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C10AGE, Page number:213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "#age=input(\"\\nWhat is your age?\\n\")\n",
+ "age=20\n",
+ "if age<10 or age>100:\n",
+ " print \"*** The age must be between 10 and 100 ***\\n\"\n",
+ "else:\n",
+ " print \"You entered a valid age.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered a valid age.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C10VIDEO, Page number:214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# -*- coding: cp1252 -*-\n",
+ "#Program that computes video rental amounts and gives\n",
+ "# appropriate discounts based on the day or customer status.\n",
+ "\n",
+ "print \"\\n *** Video Rental Computation ***\\n\"\n",
+ "print \"--------------------------------------\\n\"\n",
+ "\n",
+ "tape_charge=2.00 #Before-discount tape fee-per tape.\n",
+ "\n",
+ "first_name=raw_input(\"\\nWhat is customer's first name? \")\n",
+ "last_name=raw_input(\"\\nWhat is customer's last name? \")\n",
+ "num_tapes=input(\"\\nHow many tapes are being rented? \")\n",
+ "val_day=raw_input(\"Is this a Value day (Y/N)?\")\n",
+ "sp_stat=raw_input(\"Is this a Special Status customer (Y/N)?\")\n",
+ "\n",
+ "# Calculate rental amount.\n",
+ "\n",
+ "discount=0.0\n",
+ "if val_day=='Y' or sp_stat=='Y':\n",
+ " discount=0.5\n",
+ " x=num_tapes*tape_charge\n",
+ " y=discount*num_tapes\n",
+ " rental_amt=x-y\n",
+ "\n",
+ "\n",
+ "print \"\\n** Rental club **\\n\"\n",
+ "print first_name,last_name,\"rented \",num_tapes,\" tapes \"\n",
+ "print \"The total was \",\"%.2f\" %rental_amt\n",
+ "print \"The discount was \",\"%.2f\" %discount,\"per tape\\n\"\n",
+ "\n",
+ "if sp_stat=='Y':\n",
+ " print \"\\nThank them for being a special Status customer\\n\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " *** Video Rental Computation ***\n",
+ "\n",
+ "--------------------------------------\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "What is customer's first name? Jerry\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "What is customer's last name? Parker\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "How many tapes are being rented? 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Is this a Value day (Y/N)?Y\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Is this a Special Status customer (Y/N)?Y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "** Rental club **\n",
+ "\n",
+ "Jerry Parker rented 3 tapes \n",
+ "The total was 4.50\n",
+ "The discount was 0.50 per tape\n",
+ "\n",
+ "\n",
+ "Thank them for being a special Status customer\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/Chapter3.ipynb b/C++_By_Example/Chapter3.ipynb
new file mode 100755
index 00000000..b16d7174
--- /dev/null
+++ b/C++_By_Example/Chapter3.ipynb
@@ -0,0 +1,2029 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8646d541edd5eae08f7eb4ee8123b4c24dfa7a544da673c822f5f9c2cfa537ea"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3, C++ Constructs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C11SIZE1, Page number:232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Size of floating-point values\n",
+ "\n",
+ "import sys\n",
+ "x=0.0\n",
+ "\n",
+ "print \"The size of floating-point variables on this computer is \"\n",
+ "print sys.getsizeof(x) #depends on the compiler "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of floating-point variables on this computer is \n",
+ "24\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C11COM1, Page number:233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Illustrates the sequence point.\n",
+ "num=5\n",
+ "sq,cube=num*num,num*num*num\n",
+ "#Result\n",
+ "print \"The square of \",num,\"is\",sq\n",
+ "print \"and the cube is \",cube"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The square of 5 is 25\n",
+ "and the cube is 125\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C11ODEV, Page number:239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Uses a bitwise & to determine whether a number is odd or even.\n",
+ "\n",
+ "input1=input(\"What number do you want me to test?\")\n",
+ "if input1&1:\n",
+ " print \"The number \",input1,\"is odd\"\n",
+ "else:\n",
+ " print \"The number \",input1,\"is even\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What number do you want me to test?5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number 5 is odd\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12WHIL1, Page number:248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "ans=raw_input(\"Do you want to continue (Y/N)\")\n",
+ "\n",
+ "while ans!='Y' and ans!='N':\n",
+ " print \"\\nYou must type a Y or an N\\n\"\n",
+ " ans=raw_input( \"Do you want to continue(Y/N)?\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to continue (Y/N)k\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "You must type a Y or an N\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to continue(Y/N)?c\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "You must type a Y or an N\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to continue(Y/N)?s\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "You must type a Y or an N\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to continue(Y/N)?5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "You must type a Y or an N\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to continue(Y/N)?Y\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12WHIL3, Page number:251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Number of letters in the user's name\n",
+ "\n",
+ "name=raw_input(\"What is your first name?\")\n",
+ "count=len(name)\n",
+ "\n",
+ "print \"Your name has \",count,\"characters\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your first name?greg\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your name has 4 characters\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12INV1, Page number:253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"*** Inventory computation ***\\n\"\n",
+ "while True:\n",
+ " part_no=input(\"What is the next part number(-999 to end)?\\n\")\n",
+ " if part_no!=-999:\n",
+ " quantity=input(\"How many were bought?\\n\")\n",
+ " cost=input(\"What is the unit price of this item?\\n\")\n",
+ " ext_cost=cost*quantity\n",
+ " print \"\\n\",quantity,\"of #\",part_no,\"will cost\",\"%.2f\" %ext_cost,\"\\n\"\n",
+ " else:\n",
+ " break\n",
+ "print \"End of Inventory computation\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "*** Inventory computation ***\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next part number(-999 to end)?\n",
+ "213\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many were bought?\n",
+ "12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the unit price of this item?\n",
+ "5.66\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "12 of # 213 will cost 67.92 \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next part number(-999 to end)?\n",
+ "92\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many were bought?\n",
+ "53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the unit price of this item?\n",
+ ".23\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "53 of # 92 will cost 12.19 \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next part number(-999 to end)?\n",
+ "-999\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "End of Inventory computation\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12EXIT1, Page number:257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Quits early due to exit() function.\n",
+ "def main():\n",
+ " exit(0)\n",
+ " print \"C++ programming is fun\"\n",
+ " print \"I like learning C++ by example!\\n\"\n",
+ " print \"C++ is a powerful language that is not difficult to learn\"\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12BRK, Page number:257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Demonstrates the Break statement\n",
+ "while True:\n",
+ " print \"C++ is fun!\\n\"\n",
+ " break\n",
+ " user_ans=raw_input( \"Do you want to see the message again(Y/N)?\")\n",
+ "print \"That's all for now\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C++ is fun!\n",
+ "\n",
+ "That's all for now\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12CNT1, Page number:261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "ctr=0\n",
+ "\n",
+ "while ctr<10:\n",
+ " print \"Computers are fun!\\n\"\n",
+ " ctr+=1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n",
+ "Computers are fun!\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12PASS1, Page number:263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "stored_pass=11862\n",
+ "num_tries=0\n",
+ "\n",
+ "while num_tries<3:\n",
+ " user_pass=input(\"\\nWhat is the password? (you get 3 tries...)?\")\n",
+ " num_tries+=1\n",
+ " if user_pass==stored_pass:\n",
+ " print \"You entered the correct password.\\n\"\n",
+ " print \"The cash safe is behind the picture of the ship.\"\n",
+ " exit()\n",
+ " else:\n",
+ " print \"You entered the wrong password.\\n\"\n",
+ " if num_tries==3:\n",
+ " print \"Sorry, you get no more chances\"\n",
+ " else:\n",
+ " print \"you get \",3-num_tries,\"more tries...\\n\"\n",
+ "exit(0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "What is the password? (you get 3 tries...)?11202\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered the wrong password.\n",
+ "\n",
+ "you get 2 more tries...\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "What is the password? (you get 3 tries...)?23265\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered the wrong password.\n",
+ "\n",
+ "you get 1 more tries...\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "What is the password? (you get 3 tries...)?36963\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered the wrong password.\n",
+ "\n",
+ "Sorry, you get no more chances\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12GRAD1, Page number:266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Adds grades and determines whether you earned an A.\n",
+ "total_grade=0.0\n",
+ "while 1:\n",
+ " grade=input(\"What is your grade?(-1 to end)\")\n",
+ " if grade>=0.0:\n",
+ " total_grade+=grade\n",
+ " if grade==-1:\n",
+ " break\n",
+ "#Result\n",
+ "print \"\\n\\nYou made a total of \",\"%.1f\" %total_grade,\"points\\n\"\n",
+ "\n",
+ "if total_grade>=450.00:\n",
+ " print \"** You made an A !!\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)87.6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)92.4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)78.7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)-1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "You made a total of 258.7 points\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C12GRAD2, Page number:267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "total_grade=0.0\n",
+ "grade_avg=0.0\n",
+ "grade_ctr=0\n",
+ "while 1:\n",
+ " grade=input(\"What is your grade?(-1 to end)\")\n",
+ " if grade>=0.0:\n",
+ " total_grade+=grade\n",
+ " grade_ctr+=1\n",
+ " if grade==-1:\n",
+ " break\n",
+ "grade_avg=total_grade/grade_ctr\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n\\nYou made a total of \",'%.1f' %total_grade,\"points\\n\"\n",
+ "print \"Your average was \",'%.1f' %grade_avg,\"\\n\"\n",
+ "if total_grade>=450.00:\n",
+ " print \"** You made an A !!\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)67.8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)98.7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)67.8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)92.4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your grade?(-1 to end)-1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "You made a total of 326.7 points\n",
+ "\n",
+ "Your average was 81.7 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13FOR1, Page number:276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for ctr in range(1,11):\n",
+ " print ctr,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 \n",
+ "\n",
+ "2 \n",
+ "\n",
+ "3 \n",
+ "\n",
+ "4 \n",
+ "\n",
+ "5 \n",
+ "\n",
+ "6 \n",
+ "\n",
+ "7 \n",
+ "\n",
+ "8 \n",
+ "\n",
+ "9 \n",
+ "\n",
+ "10 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13FOR2, Page number:278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Demonstrates totaling using a for loop.\n",
+ "\n",
+ "total=0\n",
+ "\n",
+ "for ctr in range(100,201):\n",
+ " total+=ctr\n",
+ "#Result\n",
+ "print \"The total is \",total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total is 15150\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13EVOD, Page number:281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Even numbers below 21\"\n",
+ "#Result\n",
+ "for num in range(2,21,2):\n",
+ " print num,\" \",\n",
+ " \n",
+ " \n",
+ "print \"\\n\\nOdd numbers below 20\"\n",
+ "#Result\n",
+ "for num in range(1,21,2):\n",
+ " print num,\" \","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Even numbers below 21\n",
+ "2 4 6 8 10 12 14 16 18 20 \n",
+ "\n",
+ "Odd numbers below 20\n",
+ "1 3 5 7 9 11 13 15 17 19 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13CNTD1, Page number:282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for ctr in range(10,0,-1):\n",
+ " print ctr\n",
+ "print \"*** Blast off! ***\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n",
+ "9\n",
+ "8\n",
+ "7\n",
+ "6\n",
+ "5\n",
+ "4\n",
+ "3\n",
+ "2\n",
+ "1\n",
+ "*** Blast off! ***\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13FOR4, Page number:283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "total=0.0\n",
+ "print \"\\n*** Grade Calculation ***\\n\"\n",
+ "num=input(\"How many students are there?\\n\")\n",
+ "for loopvar in range(0,num,1):\n",
+ " grade=input(\"What is the next student's grade?\\n\")\n",
+ " total=total+grade\n",
+ "\n",
+ "avg=total/num\n",
+ "#Result\n",
+ "print \"\\n the average of this class is\",'%.1f' %avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "*** Grade Calculation ***\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students are there?\n",
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade?\n",
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade?\n",
+ "9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade?\n",
+ "7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " the average of this class is 8.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13FOR6, Page number:285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "num=5\n",
+ "print \"\\nCounting by 5s:\\n\"\n",
+ "for num in range(5,101,5):\n",
+ " print \"\\n\",num"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Counting by 5s:\n",
+ "\n",
+ "\n",
+ "5\n",
+ "\n",
+ "10\n",
+ "\n",
+ "15\n",
+ "\n",
+ "20\n",
+ "\n",
+ "25\n",
+ "\n",
+ "30\n",
+ "\n",
+ "35\n",
+ "\n",
+ "40\n",
+ "\n",
+ "45\n",
+ "\n",
+ "50\n",
+ "\n",
+ "55\n",
+ "\n",
+ "60\n",
+ "\n",
+ "65\n",
+ "\n",
+ "70\n",
+ "\n",
+ "75\n",
+ "\n",
+ "80\n",
+ "\n",
+ "85\n",
+ "\n",
+ "90\n",
+ "\n",
+ "95\n",
+ "\n",
+ "100\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13NEST1, Page number:288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for times in range(1,4,1):\n",
+ "\n",
+ " for num in range(1,6,1):\n",
+ " print num,\n",
+ "\n",
+ " print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3 4 5 \n",
+ "\n",
+ "1 2 3 4 5 \n",
+ "\n",
+ "1 2 3 4 5 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13NEST2, Page number:289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for outer in range(6,-1,-1):\n",
+ " for inner in range(1,outer,1):\n",
+ " print inner,\n",
+ " print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3 4 5 \n",
+ "\n",
+ "1 2 3 4 \n",
+ "\n",
+ "1 2 3 \n",
+ "\n",
+ "1 2 \n",
+ "\n",
+ "1 \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C13FACT, Page number:291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#factorial\n",
+ "num=input(\"What factorial do you want to see?\")\n",
+ "total=1\n",
+ "\n",
+ "for fact in range(1,num+1,1):\n",
+ " total=total*fact\n",
+ " \n",
+ "print \"The factorial for \",num,\"is\",total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What factorial do you want to see?7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The factorial for 7 is 5040\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14CNTD1, Page number:297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for cd in range(10,0,-1):\n",
+ " for delay in range(1,10,1): #for delay in range(1,30001,1):\n",
+ " print \" \"\n",
+ " print cd,\"\\n\"\n",
+ "print \"*** Blast off! ***\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "10 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "9 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "8 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "7 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "6 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "5 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "4 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "3 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "2 \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ "1 \n",
+ "\n",
+ "*** Blast off! ***\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14TIM, Page number:298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "age=input(\"What is your age?\\n\")\n",
+ "while age<=0:\n",
+ " print \"*** Your age cannot be that small ! ***\"\n",
+ " for outer in range(1,3,1):\n",
+ " for inner in range(1,50,1):\n",
+ " print \"\"\n",
+ " print \"\\r\\n\\n\"\n",
+ " age=input(\"What is your age?\\n\")\n",
+ "print \"Thanks, I did not think you would actually tell me your age!\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your age?\n",
+ "20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thanks, I did not think you would actually tell me your age!\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14BRAK1, Page number:299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Here are the numbers from 1 to 20\\n\"\n",
+ "for num in range(1,21,1):\n",
+ " print num,\"\\n\"\n",
+ " break\n",
+ "print \"That's all, folks!\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the numbers from 1 to 20\n",
+ "\n",
+ "1 \n",
+ "\n",
+ "That's all, folks!\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14BRAK2, Page number:300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#A for loop running at the user\u2019s request.\n",
+ "\n",
+ "print \"Here are the numbers from 1 to 20\\n\"\n",
+ "\n",
+ "for num in range(1,21,1):\n",
+ " print num\n",
+ " ans=raw_input(\"Do you want to see another (Y/N)?\")\n",
+ " if ans=='N' or ans=='n':\n",
+ " break\n",
+ "\n",
+ "print \"That's all, folks!\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the numbers from 1 to 20\n",
+ "\n",
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do you want to see another (Y/N)?N\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "That's all, folks!\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14BRAK3, Page number:302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "total=0.0\n",
+ "count=0\n",
+ "print \"\\n*** Grade Calculation ***\\n\"\n",
+ "num=input(\"How many students are there?\")\n",
+ "\n",
+ "for loopvar in range(1,num+1,1):\n",
+ " grade=input(\"What is the next student's grade? (-99 to quit)\")\n",
+ " if grade<0.0:\n",
+ " break\n",
+ " count+=1\n",
+ " total+=grade\n",
+ "\n",
+ "avg=total/count\n",
+ "#Result\n",
+ "print \"The average of this class is \",'%.1f' %avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "*** Grade Calculation ***\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students are there?10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade? (-99 to quit)87\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade? (-99 to quit)97\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade? (-99 to quit)67\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade? (-99 to quit)89\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade? (-99 to quit)94\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next student's grade? (-99 to quit)-99\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average of this class is 86.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14CON1, Page number:305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Demonstrates the use of the continue statement.\n",
+ "\n",
+ "for ctr in range(1,11,1):\n",
+ " print ctr,\n",
+ " continue\n",
+ " print \"C++ programming\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3 4 5 6 7 8 9 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C14CON3, Page number:306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Average salaries over $10,000\n",
+ "\n",
+ "avg=0.0\n",
+ "total=0.0\n",
+ "month=1.0\n",
+ "count=0\n",
+ "\n",
+ "while month>0.0:\n",
+ " month=input(\"What is the next monthly salary (-1) to quit\")\n",
+ " year=month*12.00\n",
+ " if year <= 10000.00: #Do not add low salaries\n",
+ " continue\n",
+ " if month<0.0:\n",
+ " break\n",
+ " count+=1\n",
+ " total+=year #Add yearly salary to total.\n",
+ "avg=total/float(count)\n",
+ "#Result\n",
+ "print \"\\nThe average of high salaries is $\",'%.2f' %avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit2000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit750\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit4000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit5000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit1200\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the next monthly salary (-1) to quit-1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The average of high salaries is $ 36600.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C15BEEP1, Page number:314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def beep():\n",
+ " import os\n",
+ " os.system('\\a')\n",
+ "\n",
+ "num=input(\"Please enter a number:\")\n",
+ "\n",
+ "#Use multiple if statements to beep.\n",
+ "\n",
+ "if num==1:\n",
+ " beep()\n",
+ "else:\n",
+ " if num==2:\n",
+ " beep()\n",
+ " beep()\n",
+ " else:\n",
+ " if num==3:\n",
+ " beep()\n",
+ " beep()\n",
+ " beep()\n",
+ " else:\n",
+ " if num==4:\n",
+ " beep()\n",
+ " beep()\n",
+ " beep()\n",
+ " beep()\n",
+ " else:\n",
+ " if num==5:\n",
+ " beep()\n",
+ " beep()\n",
+ " beep()\n",
+ " beep()\n",
+ " beep()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter a number:2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C15SALE, Page number:319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Prints daily, weekly, and monthly sales totals.\n",
+ "\n",
+ "daily=2343.34\n",
+ "weekly=13432.65\n",
+ "monthly=43468.97\n",
+ "\n",
+ "ans=raw_input(\"Is this the end of the month? (Y/N) :\")\n",
+ "\n",
+ "if ans=='Y' or ans=='y':\n",
+ " day=6\n",
+ "else:\n",
+ " day=input(\"What day number , 1 through 5( for mon-fri) :\")\n",
+ "if day==6:\n",
+ " print \"The monthly total is \",'%.2f' %monthly\n",
+ "else:\n",
+ " if day==5:\n",
+ " print \"The weekly total is \",'%.2f' %weekly\n",
+ " else:\n",
+ " print \"The daily total is \",'%.2f' %daily\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Is this the end of the month? (Y/N) :Y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The monthly total is 43468.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C15DEPT1, Page number:320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "choice=\"R\"\n",
+ "\n",
+ "while choice!='S' and choice!='A' and choice!='E' and choice!='P':\n",
+ " print \"\\n choose your department :\"\n",
+ " print \"S - Sales\"\n",
+ " print \"A - Accounting\"\n",
+ " print \"E - Engineering\"\n",
+ " print \"P - Payroll\"\n",
+ " choice=raw_input( \"What is your choice? (upper case)\")\n",
+ "\n",
+ "if choice=='E':\n",
+ " print \"Your meeting is at 2:30\"\n",
+ "else:\n",
+ " if choice=='S':\n",
+ " print \"Your meeting is at 8:30\"\n",
+ " else:\n",
+ " if choice=='A':\n",
+ " print \"Your meeting is at 10:00\"\n",
+ " else:\n",
+ " if choice=='P':\n",
+ " print \"your meeting has been cancelled\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " choose your department :\n",
+ "S - Sales\n",
+ "A - Accounting\n",
+ "E - Engineering\n",
+ "P - Payroll\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your choice? (upper case)E\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your meeting is at 2:30\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/Chapter4.ipynb b/C++_By_Example/Chapter4.ipynb
new file mode 100755
index 00000000..1c0cecfc
--- /dev/null
+++ b/C++_By_Example/Chapter4.ipynb
@@ -0,0 +1,1123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fc5913d17c154f422ddcc1d489a3c0e7639fda20decc6c699e5ba0954066b17c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter4, Variable Scope and Modular Programming"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C16FUN1, Page number:338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function Definition\n",
+ "def next_fun(): \n",
+ " print \"Inside next_fun()\"\n",
+ " \n",
+ "def third_fun(): \n",
+ " print \"Inside third_fun()\"\n",
+ "\n",
+ "def main(): \n",
+ " print \"First function called main()\"\n",
+ " #Function Call\n",
+ " next_fun() \n",
+ " third_fun() \n",
+ " print \"main() is completed\"\n",
+ "\n",
+ "#Function Call\n",
+ "main() "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First function called main()\n",
+ "Inside next_fun()\n",
+ "Inside third_fun()\n",
+ "main() is completed\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C16FUN2, Page number:347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function Calls\n",
+ "def name_print():\n",
+ " print \"C++ is Fun!\\tC++ is Fun!\\tC++ is Fun!\"\n",
+ " print \" C++ i s F u n ! \\t C++ i s F u n ! \\t C++ i s F u n ! \"\n",
+ " reverse_print() \n",
+ " \n",
+ "def reverse_print():\n",
+ " print \"!nuF si ++C\\t!nuF si ++C\\t!nuF si ++C\"\n",
+ "\n",
+ "def one_per_line():\n",
+ " print \"C++\\n i\\n s\\n F\\n u\\n n\\n !\"\n",
+ "\n",
+ "\n",
+ "def main():\n",
+ " for ctr in range(1,6,1):\n",
+ " name_print() #Calls function five times.\n",
+ " one_per_line() #Calls the program's last function once \n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C++ is Fun!\tC++ is Fun!\tC++ is Fun!\n",
+ " C++ i s F u n ! \t C++ i s F u n ! \t C++ i s F u n ! \n",
+ "!nuF si ++C\t!nuF si ++C\t!nuF si ++C\n",
+ "C++ is Fun!\tC++ is Fun!\tC++ is Fun!\n",
+ " C++ i s F u n ! \t C++ i s F u n ! \t C++ i s F u n ! \n",
+ "!nuF si ++C\t!nuF si ++C\t!nuF si ++C\n",
+ "C++ is Fun!\tC++ is Fun!\tC++ is Fun!\n",
+ " C++ i s F u n ! \t C++ i s F u n ! \t C++ i s F u n ! \n",
+ "!nuF si ++C\t!nuF si ++C\t!nuF si ++C\n",
+ "C++ is Fun!\tC++ is Fun!\tC++ is Fun!\n",
+ " C++ i s F u n ! \t C++ i s F u n ! \t C++ i s F u n ! \n",
+ "!nuF si ++C\t!nuF si ++C\t!nuF si ++C\n",
+ "C++ is Fun!\tC++ is Fun!\tC++ is Fun!\n",
+ " C++ i s F u n ! \t C++ i s F u n ! \t C++ i s F u n ! \n",
+ "!nuF si ++C\t!nuF si ++C\t!nuF si ++C\n",
+ "C++\n",
+ " i\n",
+ " s\n",
+ " F\n",
+ " u\n",
+ " n\n",
+ " !\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17GLO, Page number:356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def do_fun():\n",
+ " global sales #global variable\n",
+ " global profit #global variable \n",
+ " sales = 20000.00\n",
+ " profit=5000.00\n",
+ " print \"The sales in the second function are: \",sales\n",
+ " print \"The profit in the second function is: \",profit\n",
+ " third_fun() #Call third function to show that globals are visible\n",
+ "\n",
+ "def third_fun():\n",
+ " print \"\\nIn the third function:\"\n",
+ " print \"The sales in the third function are\",sales\n",
+ " print \"The profit in the third function is \",profit\n",
+ "\n",
+ "def main():\n",
+ " print \"No variable defined in main()\\n\"\n",
+ " do_fun()\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No variable defined in main()\n",
+ "\n",
+ "The sales in the second function are: 20000.0\n",
+ "The profit in the second function is: 5000.0\n",
+ "\n",
+ "In the third function:\n",
+ "The sales in the third function are 20000.0\n",
+ "The profit in the third function is 5000.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17GLLO, page number:358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def pr_again():\n",
+ " j=5 #Local to only pr_again().\n",
+ " print j,\",\",z,\",\",i\n",
+ "\n",
+ "global i\n",
+ "i=0\n",
+ "\n",
+ "def main():\n",
+ " p=9.0 #Local to main() only\n",
+ " print i,\",\",p\n",
+ " pr_again() #Calls next function.\n",
+ "\n",
+ "global z\n",
+ "z=9.0\n",
+ "main() \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0 , 9.0\n",
+ "5 , 9.0 , 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17LOC1, Page number:359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def main():\n",
+ " age=input(\"What is your age? \") #Variable age is local to main()\n",
+ " get_age()\n",
+ " print \"main()'s age is still\",age\n",
+ " \n",
+ "def get_age():\n",
+ " age=input(\"What is your age again? \") #A different age. This one is local to get_age().\n",
+ "\n",
+ "main() \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your age? 28\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your age again? 56\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "main()'s age is still 28\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17LOC2, Page number:360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def main():\n",
+ " for ctr in range(0,11,1): #Loop counter\n",
+ " print \"main()'s ctr is \",ctr,\"\\n\"\n",
+ " do_fun() #Call second function\n",
+ "\n",
+ "def do_fun():\n",
+ " for ctr in range(10,0,-1):\n",
+ " print \"do_fun()'s ctr is \",ctr,\"\\n\"\n",
+ "\n",
+ "main()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "main()'s ctr is 0 \n",
+ "\n",
+ "main()'s ctr is 1 \n",
+ "\n",
+ "main()'s ctr is 2 \n",
+ "\n",
+ "main()'s ctr is 3 \n",
+ "\n",
+ "main()'s ctr is 4 \n",
+ "\n",
+ "main()'s ctr is 5 \n",
+ "\n",
+ "main()'s ctr is 6 \n",
+ "\n",
+ "main()'s ctr is 7 \n",
+ "\n",
+ "main()'s ctr is 8 \n",
+ "\n",
+ "main()'s ctr is 9 \n",
+ "\n",
+ "main()'s ctr is 10 \n",
+ "\n",
+ "do_fun()'s ctr is 10 \n",
+ "\n",
+ "do_fun()'s ctr is 9 \n",
+ "\n",
+ "do_fun()'s ctr is 8 \n",
+ "\n",
+ "do_fun()'s ctr is 7 \n",
+ "\n",
+ "do_fun()'s ctr is 6 \n",
+ "\n",
+ "do_fun()'s ctr is 5 \n",
+ "\n",
+ "do_fun()'s ctr is 4 \n",
+ "\n",
+ "do_fun()'s ctr is 3 \n",
+ "\n",
+ "do_fun()'s ctr is 2 \n",
+ "\n",
+ "do_fun()'s ctr is 1 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17MULI, Page number:362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def main():\n",
+ " i=10\n",
+ "\n",
+ " i=20\n",
+ " print i,\" \",i,\"\\n\"\n",
+ "\n",
+ " i=30\n",
+ " print i,\" \",i,\" \",i,\"\\n\"\n",
+ " \n",
+ " i=10\n",
+ " print i,\" \",i,\" \",i \n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20 20 \n",
+ "\n",
+ "30 30 30 \n",
+ "\n",
+ "10 10 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17LOC3, Page number:367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def pr_init(initial):\n",
+ " print \"Your initial is \",initial\n",
+ "\n",
+ "def pr_other(age,salary):\n",
+ " print \"You look young for\",age,\"and \",'%.2f' %salary,\"is a lot of money\"\n",
+ "\n",
+ "initial=raw_input(\"What is your initial?\")\n",
+ "age=input(\"What is your age?\")\n",
+ "salary=input(\"What is your salary?\")\n",
+ "pr_init(initial) #call pr_init() and pass it initial\n",
+ "pr_other(age,salary) #call pr_other and pass age and salary\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your initial?Jerry\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your age?30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your salary?50000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your initial is Jerry\n",
+ "You look young for 30 and 50000.00 is a lot of money\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17LOC4, Page number:368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def compute_sale(gallons):\n",
+ " #local variable\n",
+ " price_per=12.45 \n",
+ " x=price_per*float(gallons) #type casting gallons because it was integer\n",
+ " print \"The total is \",'%.2f' %x\n",
+ "\n",
+ "def main():\n",
+ " print \"Richard's Paint Service\"\n",
+ " gallons=input(\"How many gallons of paint did you buy?\")\n",
+ " compute_sale(gallons) #Function Call\n",
+ " \n",
+ "main()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Richard's Paint Service\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many gallons of paint did you buy?20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total is 249.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C17STA2, Page number:372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def main():\n",
+ " for ctr in range(1,26,1):\n",
+ " triple_it(ctr)\n",
+ "\n",
+ "def triple_it(ctr):\n",
+ " total=0\n",
+ " ans=ctr*3\n",
+ " total+=ans\n",
+ " print \"The number \",ctr,\"multiplied by 3 is \",ans\n",
+ "\n",
+ " if total>300:\n",
+ " print \"The total of triple numbers is over 300\"\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number 1 multiplied by 3 is 3\n",
+ "The number 2 multiplied by 3 is 6\n",
+ "The number 3 multiplied by 3 is 9\n",
+ "The number 4 multiplied by 3 is 12\n",
+ "The number 5 multiplied by 3 is 15\n",
+ "The number 6 multiplied by 3 is 18\n",
+ "The number 7 multiplied by 3 is 21\n",
+ "The number 8 multiplied by 3 is 24\n",
+ "The number 9 multiplied by 3 is 27\n",
+ "The number 10 multiplied by 3 is 30\n",
+ "The number 11 multiplied by 3 is 33\n",
+ "The number 12 multiplied by 3 is 36\n",
+ "The number 13 multiplied by 3 is 39\n",
+ "The number 14 multiplied by 3 is 42\n",
+ "The number 15 multiplied by 3 is 45\n",
+ "The number 16 multiplied by 3 is 48\n",
+ "The number 17 multiplied by 3 is 51\n",
+ "The number 18 multiplied by 3 is 54\n",
+ "The number 19 multiplied by 3 is 57\n",
+ "The number 20 multiplied by 3 is 60\n",
+ "The number 21 multiplied by 3 is 63\n",
+ "The number 22 multiplied by 3 is 66\n",
+ "The number 23 multiplied by 3 is 69\n",
+ "The number 24 multiplied by 3 is 72\n",
+ "The number 25 multiplied by 3 is 75\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C18PASS1, Page number:381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def moon(weight): \n",
+ " weight/=6 \n",
+ " print \"You weigh only \",weight,\"pounds on the moon !\"\n",
+ "\n",
+ "def main(): \n",
+ " weight=input(\"How many pounds do you weigh? \")\n",
+ " moon(weight) #call the moon() function and pass weight\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many pounds do you weigh? 120\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You weigh only 20 pounds on the moon !\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C18PASS3, Page number:383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def main():\n",
+ " Igrade=raw_input(\"What letter grade do you want?\")\n",
+ " average=input(\"What is your current test average\")\n",
+ " tests=input(\"How many tests do you have left?\")\n",
+ " check_grade(Igrade,average,tests) #// Calls function and passes three variables by value\n",
+ "\n",
+ "def check_grade(Igrade,average,tests):\n",
+ " if tests==0:\n",
+ " print \"You will get your current grade of \",Igrade\n",
+ " else:\n",
+ " if tests==1:\n",
+ " print \"You still have time to bring up your average of\",'%.1f' %average,\"up . Study hard !\"\n",
+ " else :\n",
+ " print \"Relax. You still have plenty of time.\"\n",
+ "\n",
+ " \n",
+ "main()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What letter grade do you want?A\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your current test average1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many tests do you have left?3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relax. You still have plenty of time.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19AVG, Page number:398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def calc_av(num1,num2,num3):\n",
+ " local_avg=(num1+num2+num3) / 3 #Holds the average for these numbers\n",
+ " return local_avg\n",
+ "\n",
+ "print \"please type three numbers (such as 23 54 85) \"\n",
+ "num1=input()\n",
+ "num2=input()\n",
+ "num3=input()\n",
+ "\n",
+ "avg=calc_av(num1,num2,num3) #call function and pass the numbers\n",
+ "\n",
+ "print \"\\n\\nThe average is \",avg #Print the return value"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "please type three numbers (such as 23 54 85) \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "The average is 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19DOUB, Page number:401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def doub(number):\n",
+ " d_num=number*2 #Doubles the number.\n",
+ " return d_num #Returns the result.\n",
+ "\n",
+ "number=input(\"What number do you want doubled? \")\n",
+ "d_number= doub(number) #Assigns return value.\n",
+ "print number,\" doubled is \",d_number"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What number do you want doubled? 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5 doubled is 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19SUMD, Page number:403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def sums(num):\n",
+ " sumd=0\n",
+ " if num<=0:\n",
+ " sumd=num\n",
+ " else:\n",
+ " for ctr in range(1,num+1,1):\n",
+ " sumd=sumd+ctr\n",
+ " return sumd\n",
+ "\n",
+ "num=input(\"Please type a number: \")\n",
+ "sumd= sums(num)\n",
+ "print \"The sum of the digits is \" , sumd\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please type a number: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of the digits is 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19MINMX, Page number:404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def maximum(num1,num2): \n",
+ " if num1>num2:\n",
+ " maxi=num1\n",
+ " else:\n",
+ " maxi=num2\n",
+ " return maxi\n",
+ "\n",
+ "def minimum(num1,num2):\n",
+ " if num1>num2:\n",
+ " mini=num2\n",
+ " else:\n",
+ " mini=num1\n",
+ " return mini\n",
+ "\n",
+ "print \"Please type two numbers ( such as 46 75 ) \"\n",
+ "num1 = input()\n",
+ "num2 = input()\n",
+ "\n",
+ "maxi=maximum(num1,num2) #Assign the return value of each function to variables\n",
+ "mini=minimum(num1,num2) \n",
+ "\n",
+ "print \"The minimum number is \",mini\n",
+ "print \"The maximum number is \", maxi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please type two numbers ( such as 46 75 ) \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "72\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "55\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum number is 55\n",
+ "The maximum number is 72\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19PRO1, Page number:409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "tax_rate=0.07 #Assume seven percent tax rate\n",
+ "total_sale=input(\"What is the sale amount? \")\n",
+ "total_sale+=tax_rate*total_sale\n",
+ "print \"The total sale is \",'%.2f' %total_sale\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the sale amount? 4000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total sale is 4280.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19ASC, Page number:410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def ascii(num):\n",
+ " asc_char=chr(num) #Type cast to a character\n",
+ " return asc_char\n",
+ "\n",
+ "\n",
+ "num=input(\"Enter an ASCII number? \")\n",
+ "asc_char=ascii(num) #Number is passed to the function ascii()\n",
+ "print \"The ASCII character for \",num,\"is \",asc_char\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an ASCII number? 67\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ASCII character for 67 is C\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C19NPAY, Page number:411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def netpayfun(hours,rate,taxrate):\n",
+ " gross_pay=hours*rate\n",
+ " taxes=taxrate*gross_pay\n",
+ " net_pay=gross_pay-taxes\n",
+ " return net_pay\n",
+ "\n",
+ "net_pay=netpayfun(40.0,3.50,0.20)\n",
+ "print \"The pay for 40 hours at $3.50/hr., and a 20% tax rate is $ \",net_pay\n",
+ "\n",
+ "net_pay=netpayfun(50.0,10.00,0.30)\n",
+ "print \"The pay for 40 hours at $10.00/hr., and a 30% tax rate is $ \",net_pay\n",
+ "\n",
+ "net_pay=netpayfun(10.0,5.00,0.10)\n",
+ "print \"The pay for 40 hours at $5.00/hr., and a 10% tax rate is $ \",net_pay\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pay for 40 hours at $3.50/hr., and a 20% tax rate is $ 112.0\n",
+ "The pay for 40 hours at $10.00/hr., and a 30% tax rate is $ 350.0\n",
+ "The pay for 40 hours at $5.00/hr., and a 10% tax rate is $ 45.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C20OVF1, Page number:423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "i=-15\n",
+ "x=-64.53\n",
+ "\n",
+ "ians=abs(i) #abs() function is a built in function that returns a positive value \n",
+ "print \"Integer absolute value of -15 is \",ians\n",
+ "\n",
+ "fans=abs(x)\n",
+ "print \"Float absolute value of -64.53 is \",'%.2f' %fans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Integer absolute value of -15 is 15\n",
+ "Float absolute value of -64.53 is 64.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C20OVF2, Page number:424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#function definition\n",
+ "def output(x):\n",
+ " if isinstance(x,int):\n",
+ " print x\n",
+ " else:\n",
+ " if isinstance(x,float):\n",
+ " print '%.2f' %x\n",
+ " else:\n",
+ " print x\n",
+ " \n",
+ "#Variable Decleration\n",
+ "name=\"C++ By Example makes C++ easy!\"\n",
+ "Ivalue=2543\n",
+ "fvalue=39.4321\n",
+ "\n",
+ "#calling function\n",
+ "output(name)\n",
+ "output(Ivalue)\n",
+ "output(fvalue)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C++ By Example makes C++ easy!\n",
+ "2543\n",
+ "39.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/Chapter5.ipynb b/C++_By_Example/Chapter5.ipynb
new file mode 100755
index 00000000..44587653
--- /dev/null
+++ b/C++_By_Example/Chapter5.ipynb
@@ -0,0 +1,192 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a075bb47fc03df6e4814e3968f8a8dcc720530083267bfa7a0c1a0cea5145710"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5, Character Input/Output and String Functions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C22INI, Page number:452"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "print \"What is your first initial?\"\n",
+ "initial=raw_input()\n",
+ "\n",
+ "#Check if it is an alphabet\n",
+ "while not initial.isalpha():\n",
+ " print \"That was not a valid initial!\"\n",
+ " print \"What is your first initial?\"\n",
+ " initial=raw_input()\n",
+ "print \"Thanks\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is your first initial?\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thanks\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C22GB, Page number:454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "#ans=raw_input(\"Are you a girl or a boy (G/B)? \") \n",
+ "ans=\"b\"\n",
+ "\n",
+ "#convert answer to uppercase\n",
+ "ans=ans.upper() \n",
+ "\n",
+ "if ans=='G':\n",
+ " print \"You look pretty today!\\n\"\n",
+ "else:\n",
+ " if ans=='B':\n",
+ " print \"You look handsome today!\\n\"\n",
+ " else:\n",
+ " print \"Your answer makes no sense!\\n\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You look handsome today!\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C22GPS1, Page number:459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#get book title\n",
+ "#book=raw_input(\"What is the book title? \") \n",
+ "book=\"Mary and Her Lambs\"\n",
+ "\n",
+ "#print book title\n",
+ "print book \n",
+ "\n",
+ "print \"Thanks for the book!\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mary and Her Lambs\n",
+ "Thanks for the book!\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C22ABS, Page number:463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Get input\n",
+ "#age1=input(\"\\nWhat is the first child's age? \")\n",
+ "#age2=input(\"\\nWhat is the second child's age? \")\n",
+ "\n",
+ "age1=10\n",
+ "age2=12\n",
+ "\n",
+ "diff=age1-age2 \n",
+ "\n",
+ "# abs() function determines absolute value\n",
+ "diff=abs(diff) \n",
+ "\n",
+ "#Result\n",
+ "print \"\\nThey are \",diff,\" years apart.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "They are 2 years apart.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/Chapter6.ipynb b/C++_By_Example/Chapter6.ipynb
new file mode 100755
index 00000000..5ecafc20
--- /dev/null
+++ b/C++_By_Example/Chapter6.ipynb
@@ -0,0 +1,1505 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d5f3c8482f9d7c2571575eb27fc10c6b549235c3c17830e788a211d649641ac0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6, Arrays and pointers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C23ARA1, Page number:482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "s_name=\"Tri Star University\"\n",
+ "scores = [88.7,90.4,76.0,97.0,100.0,86.7] #integer array\n",
+ "average=0.0\n",
+ "\n",
+ "for ctr in range(0,6,1): #computes total of scores\n",
+ " average+=scores[ctr]\n",
+ "\n",
+ "average/=float(6) #computes the average\n",
+ "\n",
+ "print \"At \",s_name,\", your class average is \",'%.2f' %average,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At Tri Star University , your class average is 89.80 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C23ARA2, Page number:483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def pr_scores(scores):\n",
+ " print \"Here are your scores:\\n\"\n",
+ " for ctr in range(0,6,1):\n",
+ " print '%.2f' %scores[ctr],\"\\n\"\n",
+ " \n",
+ "s_name=\"Tri Star University\"\n",
+ "scores = [88.7,90.4,76.0,97.0,100.0,86.7] #integer array\n",
+ "average=0.0\n",
+ "\n",
+ "pr_scores(scores) #Function call to print scores\n",
+ "\n",
+ "for ctr in range(0,6,1): #computes total of scores\n",
+ " average+=scores[ctr]\n",
+ "\n",
+ "average/=float(6) #computes the average\n",
+ "\n",
+ "print \"At \",s_name,\", your class average is \",'%.2f' %average,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are your scores:\n",
+ "\n",
+ "88.70 \n",
+ "\n",
+ "90.40 \n",
+ "\n",
+ "76.00 \n",
+ "\n",
+ "97.00 \n",
+ "\n",
+ "100.00 \n",
+ "\n",
+ "86.70 \n",
+ "\n",
+ "At Tri Star University , your class average is 89.80 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C23ARA3, Page number:485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "CLASS_NUM=6\n",
+ "\n",
+ "def pr_scores(scores): #Function definition \n",
+ " print \"Here are your scores:\\n\"\n",
+ " for ctr in range(0,CLASS_NUM,1):\n",
+ " print '%.2f' %scores[ctr],\"\\n\"\n",
+ " \n",
+ "s_name=\"Tri Star University\"\n",
+ "scores = [88.7,90.4,76.0,97.0,100.0,86.7] #Integer array\n",
+ "average=0.0\n",
+ "\n",
+ "pr_scores(scores) #Function call to print scores\n",
+ "\n",
+ "for ctr in range(0,CLASS_NUM,1): #Computes total of scores\n",
+ " average+=scores[ctr]\n",
+ "\n",
+ "average/=float(6) #Computes the average\n",
+ "\n",
+ "print \"At \",s_name,\", your class average is \",'%.2f' %average,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are your scores:\n",
+ "\n",
+ "88.70 \n",
+ "\n",
+ "90.40 \n",
+ "\n",
+ "76.00 \n",
+ "\n",
+ "97.00 \n",
+ "\n",
+ "100.00 \n",
+ "\n",
+ "86.70 \n",
+ "\n",
+ "At Tri Star University , your class average is 89.80 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C23ARA4, Page number:487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "NUM_TEMPS=10\n",
+ "\n",
+ "temps=[]\n",
+ "\n",
+ "#Adding values into temps variable\n",
+ "\n",
+ "temps.append(78.6)\n",
+ "temps.append(82.1)\n",
+ "temps.append(79.5)\n",
+ "temps.append(75.0)\n",
+ "temps.append(75.4)\n",
+ "temps.append(71.8)\n",
+ "temps.append(73.3)\n",
+ "temps.append(69.5)\n",
+ "temps.append(74.1)\n",
+ "temps.append(75.7)\n",
+ "\n",
+ "#Print the temperatures\n",
+ "\n",
+ "print \"Daily temperatures for the last \",NUM_TEMPS,\"days:\\n\"\n",
+ "\n",
+ "for ctr in range(0,NUM_TEMPS,1):\n",
+ " print '%.2f' %temps[ctr],\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Daily temperatures for the last 10 days:\n",
+ "\n",
+ "78.60 \n",
+ "\n",
+ "82.10 \n",
+ "\n",
+ "79.50 \n",
+ "\n",
+ "75.00 \n",
+ "\n",
+ "75.40 \n",
+ "\n",
+ "71.80 \n",
+ "\n",
+ "73.30 \n",
+ "\n",
+ "69.50 \n",
+ "\n",
+ "74.10 \n",
+ "\n",
+ "75.70 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C23TOT, Page number:488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "NUM=8\n",
+ "nums=[]\n",
+ "total=0\n",
+ "\n",
+ "for ctr in range(0,NUM,1):\n",
+ " print \"Please enter the next number...\",\n",
+ " nums.append(input())\n",
+ " total+=nums[ctr]\n",
+ "\n",
+ "#Prints the sum of eight values \n",
+ "print \"The total of the numbers is \",total,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Please enter the next number..."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total of the numbers is 36 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C23SAL, Page number:489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "NUM=12\n",
+ "\n",
+ "sales=[] \n",
+ "\n",
+ "print \"Please enter the twelve monthly sales values\\n\"\n",
+ "\n",
+ "#Fill the array with input values entered by the user\n",
+ "for ctr in range(0,NUM,1):\n",
+ " print \"What are sales for month number \",ctr+1,\"?\\n\"\n",
+ " sales.append(input())\n",
+ "\n",
+ "for ctr in range(0,25,1):\n",
+ " print \"\\n\" #Clears the screen\n",
+ "\n",
+ "print \"*** Sales Printing Program ***\\n\"\n",
+ "print \"Prints any sales from the last \",NUM,\" months\\n\"\n",
+ "ans='Y'\n",
+ "\n",
+ "while ans=='Y':\n",
+ " print \"For what month (1-\",NUM,\") do you want to see a sales value? \" \n",
+ " req_month=input()\n",
+ " print \"\\nMonth \",req_month,\"'s sales are\",'%.2f' %sales[req_month-1]\n",
+ " print \"\\nDo you want to see another (Y/N)? \"\n",
+ " ans=raw_input().upper()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter the twelve monthly sales values\n",
+ "\n",
+ "What are sales for month number 1 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "450.33\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 2 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "433.22\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 3 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "500.11\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 4 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "465.33\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 5 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "123.45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 6 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "698.33\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 7 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "756.65\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 8 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "121.45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 9 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "147.36\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 10 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "789.36\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 11 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "986.25\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What are sales for month number 12 ?\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "108.36\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "*** Sales Printing Program ***\n",
+ "\n",
+ "Prints any sales from the last 12 months\n",
+ "\n",
+ "For what month (1- 12 ) do you want to see a sales value? \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Month 2 's sales are 433.22\n",
+ "\n",
+ "Do you want to see another (Y/N)? \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For what month (1- 12 ) do you want to see a sales value? \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Month 5 's sales are 123.45\n",
+ "\n",
+ "Do you want to see another (Y/N)? \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "n\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C24HIGH, Page number:496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "SIZE=15 #Maximum size of array\n",
+ "\n",
+ "ara=[None]*SIZE #Empty Array declaration with maximum size\n",
+ "ara=[5,2,7,8,36,4,2,86,11,43,22,12,45,6,85]\n",
+ "high_val=ara[0] #initialize wit first array element\n",
+ "\n",
+ "for ctr in range(1,SIZE,1):\n",
+ " if ara[ctr]>high_val: #Compares with rest of the elements in the array \n",
+ " high_val=ara[ctr] #Stores higher value in high_val\n",
+ "\n",
+ "print \"The highest number in the list is \",high_val,\".\\n\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The highest number in the list is 86 .\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C24HILO, Page number:498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum size of array\n",
+ "SIZE=15 \n",
+ "#Initialize empty array\n",
+ "ara=[None]*SIZE \n",
+ "\n",
+ "#Fill array with random numbers from 0 to 99\n",
+ "import random\n",
+ "for ctr in range(0,SIZE,1):\n",
+ " ara[ctr]=random.randint(0,99) %100 \n",
+ "\n",
+ "print \"Here are the \",SIZE,\"random numbers:\\n\" \n",
+ "for ctr in range(0,SIZE,1):\n",
+ " print ara[ctr],\"\\n\" #Prints the array\n",
+ " \n",
+ "print \"\\n\\n\"\n",
+ "\n",
+ "#Initialize first element to both high_val and low_val\n",
+ "high_val=ara[0] \n",
+ "low_val=ara[0]\n",
+ "\n",
+ "for ctr in range(1,SIZE,1):\n",
+ " if ara[ctr]>high_val: #Compares with rest of the elements in the array\n",
+ " high_val=ara[ctr] #Stores higher valure in high_val\n",
+ " if ara[ctr]<low_val:\n",
+ " low_val=ara[ctr] #Stores lower valure in low_val\n",
+ "\n",
+ "print \"The highest number in the list is \",high_val,\"\\n\"\n",
+ "print \"The lowest number in the list is \",low_val,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the 15 random numbers:\n",
+ "\n",
+ "81 \n",
+ "\n",
+ "96 \n",
+ "\n",
+ "31 \n",
+ "\n",
+ "1 \n",
+ "\n",
+ "34 \n",
+ "\n",
+ "53 \n",
+ "\n",
+ "70 \n",
+ "\n",
+ "9 \n",
+ "\n",
+ "23 \n",
+ "\n",
+ "89 \n",
+ "\n",
+ "51 \n",
+ "\n",
+ "73 \n",
+ "\n",
+ "53 \n",
+ "\n",
+ "85 \n",
+ "\n",
+ "79 \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "The highest number in the list is 96 \n",
+ "\n",
+ "The lowest number in the list is 1 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C24SERCH, Page number:499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX=100\n",
+ "\n",
+ "def fill_parts(parts): #Function assigns first five parts to array for testing\n",
+ " parts[0]=12345\n",
+ " parts[1]=24724\n",
+ " parts[2]=54154\n",
+ " parts[3]=73496\n",
+ " parts[4]=83925\n",
+ " return parts\n",
+ "\n",
+ "parts=[None]*MAX\n",
+ "num_parts=5 #Beginning inventory count\n",
+ "\n",
+ "fill_parts(parts) #Fills the first five elements\n",
+ "\n",
+ "search_part=0\n",
+ "while search_part != -9999:\n",
+ " print \"\\n\\nPlease type a part number...(-9999 ends program)\",\n",
+ " search_part=input()\n",
+ " if search_part==-9999:\n",
+ " break #Exits the loop if user wants\n",
+ " \n",
+ " for ctr in range(0,num_parts,1): #Scans array to see whether part is in inventory\n",
+ " if search_part==parts[ctr]:\n",
+ " print \"\\nPart \",search_part,\"is already in inventory\"\n",
+ " break\n",
+ " else:\n",
+ " if ctr==num_parts-1:\n",
+ " parts[num_parts]=search_part #If not then it is added to end of the array\n",
+ " num_parts+=1\n",
+ " print search_part,\"was added to inventory\\n\"\n",
+ " break\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C24SORT1, Page number:504"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX=10\n",
+ "\n",
+ "#Fill array with random numbers from 0 to 99\n",
+ "def fill_array(ara):\n",
+ " import random\n",
+ " for ctr in range(0,MAX,1):\n",
+ " ara[ctr]=random.randint(0,99) %100\n",
+ "\n",
+ "\n",
+ "#Prints the array ara[]\n",
+ "def print_array(ara):\n",
+ " for ctr in range(0,MAX,1):\n",
+ " print ara[ctr],\"\\n\"\n",
+ "\n",
+ "#Sorts the array\n",
+ "def sort_array(ara):\n",
+ " for ctr1 in range(0,MAX-1,1):\n",
+ " for ctr2 in range(ctr1+1,MAX,1):\n",
+ " if ara[ctr1]>ara[ctr2]: #Swap if this part is not in order\n",
+ " temp=ara[ctr1] #Temporary variable to swap\n",
+ " ara[ctr1]=ara[ctr2]\n",
+ " ara[ctr2]=temp\n",
+ "\n",
+ "\n",
+ "ara=[None]*MAX\n",
+ "fill_array(ara)\n",
+ "print \"Here are the unsorted numbers:\\n\"\n",
+ "print_array(ara) #Prints the unsorted array\n",
+ "sort_array(ara) #Sorts the array in ascending order\n",
+ "print \"\\n\\nHere are the sorted numbers:\\n\"\n",
+ "print_array(ara) #Prints the sorted array"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the unsorted numbers:\n",
+ "\n",
+ "68 \n",
+ "\n",
+ "41 \n",
+ "\n",
+ "53 \n",
+ "\n",
+ "40 \n",
+ "\n",
+ "69 \n",
+ "\n",
+ "65 \n",
+ "\n",
+ "64 \n",
+ "\n",
+ "48 \n",
+ "\n",
+ "87 \n",
+ "\n",
+ "18 \n",
+ "\n",
+ "\n",
+ "\n",
+ "Here are the sorted numbers:\n",
+ "\n",
+ "18 \n",
+ "\n",
+ "40 \n",
+ "\n",
+ "41 \n",
+ "\n",
+ "48 \n",
+ "\n",
+ "53 \n",
+ "\n",
+ "64 \n",
+ "\n",
+ "65 \n",
+ "\n",
+ "68 \n",
+ "\n",
+ "69 \n",
+ "\n",
+ "87 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C24SORT2, Page number:506"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX=10\n",
+ "\n",
+ "#Fill array with random numbers from 0 to 99\n",
+ "def fill_array(ara):\n",
+ " import random\n",
+ " for ctr in range(0,MAX,1):\n",
+ " ara[ctr]=random.randint(0,99) %100\n",
+ "\n",
+ "\n",
+ "#Prints the array ara[]\n",
+ "def print_array(ara):\n",
+ " for ctr in range(0,MAX,1):\n",
+ " print ara[ctr],\"\\n\"\n",
+ "\n",
+ "#Sorts the array\n",
+ "def sort_array(ara):\n",
+ " for ctr1 in range(0,MAX-1,1):\n",
+ " for ctr2 in range(ctr1+1,MAX,1):\n",
+ " if ara[ctr1]<ara[ctr2]: #Swap if this part is not in order\n",
+ " temp=ara[ctr1] #Temporary variable to swap\n",
+ " ara[ctr1]=ara[ctr2]\n",
+ " ara[ctr2]=temp\n",
+ "\n",
+ "\n",
+ "ara=[None]*MAX\n",
+ "fill_array(ara)\n",
+ "print \"Here are the unsorted numbers:\\n\"\n",
+ "print_array(ara) #Prints the unsorted array\n",
+ "sort_array(ara) #Sorts the array in descending order\n",
+ "print \"\\n\\nHere are the sorted numbers:\\n\"\n",
+ "print_array(ara) #Prints the newly sorted array"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here are the unsorted numbers:\n",
+ "\n",
+ "40 \n",
+ "\n",
+ "22 \n",
+ "\n",
+ "4 \n",
+ "\n",
+ "78 \n",
+ "\n",
+ "20 \n",
+ "\n",
+ "45 \n",
+ "\n",
+ "60 \n",
+ "\n",
+ "93 \n",
+ "\n",
+ "85 \n",
+ "\n",
+ "22 \n",
+ "\n",
+ "\n",
+ "\n",
+ "Here are the sorted numbers:\n",
+ "\n",
+ "93 \n",
+ "\n",
+ "85 \n",
+ "\n",
+ "78 \n",
+ "\n",
+ "60 \n",
+ "\n",
+ "45 \n",
+ "\n",
+ "40 \n",
+ "\n",
+ "22 \n",
+ "\n",
+ "22 \n",
+ "\n",
+ "20 \n",
+ "\n",
+ "4 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C25DISK1, Page number:533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Two dimensional array declaration\n",
+ "disks= [[[] for ni in range(4)] for mi in range(2)]\n",
+ "\n",
+ "#Assign values to the 2Darray\n",
+ "disks[0][0]=2.39\n",
+ "disks[0][1]=2.75\n",
+ "disks[0][2]=3.29\n",
+ "disks[0][3]=3.59\n",
+ "\n",
+ "disks[1][0]=1.75\n",
+ "disks[1][1]=2.19\n",
+ "disks[1][2]=2.69\n",
+ "disks[1][3]=2.95\n",
+ "\n",
+ "#Print the values in the array\n",
+ "for row in range(0,2,1):\n",
+ " for col in range(0,4,1):\n",
+ " print \"$\",'%.2f'%disks[row][col],\"\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "$ 2.39 \n",
+ "$ 2.75 \n",
+ "$ 3.29 \n",
+ "$ 3.59 \n",
+ "$ 1.75 \n",
+ "$ 2.19 \n",
+ "$ 2.69 \n",
+ "$ 2.95 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C25DISK2, Page number:534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Two dimensional array declaration\n",
+ "disks= [[[] for ni in range(4)] for mi in range(2)]\n",
+ "\n",
+ "#Assign values to the 2Darray\n",
+ "disks[0][0]=2.39\n",
+ "disks[0][1]=2.75\n",
+ "disks[0][2]=3.29\n",
+ "disks[0][3]=3.59\n",
+ "\n",
+ "disks[1][0]=1.75\n",
+ "disks[1][1]=2.19\n",
+ "disks[1][2]=2.69\n",
+ "disks[1][3]=2.95\n",
+ "\n",
+ "#Print the values in the array\n",
+ "for row in range(0,2,1):\n",
+ " for col in range(0,4,1):\n",
+ " print \"$\",'%.2f'%disks[row][col],\"\\t\",\n",
+ " print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "$ 2.39 \t$ 2.75 \t$ 3.29 \t$ 3.59 \t\n",
+ "\n",
+ "$ 1.75 \t$ 2.19 \t$ 2.69 \t$ 2.95 \t\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C25DISK3, Page number:535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Two dimensional array declaration\n",
+ "disks= [[[] for ni in range(4)] for mi in range(2)]\n",
+ "\n",
+ "#Assign values to the 2Darray\n",
+ "disks[0][0]=2.39\n",
+ "disks[0][1]=2.75\n",
+ "disks[0][2]=3.29\n",
+ "disks[0][3]=3.59\n",
+ "\n",
+ "disks[1][0]=1.75\n",
+ "disks[1][1]=2.19\n",
+ "disks[1][2]=2.69\n",
+ "disks[1][3]=2.95\n",
+ "\n",
+ "#Print the column titles.\n",
+ "print \"\\tSingle-sided\\tDouble-sided\\tSingle-sided\\tDouble-sided\"\n",
+ "print \"\\tDouble-density\\tDouble-density\\tHigh-density\\tHigh-density\"\n",
+ "\n",
+ "#Print the prices\n",
+ "for row in range(0,2,1):\n",
+ " if row==0:\n",
+ " print \"3-1/2\\\"\\t\",\n",
+ " else:\n",
+ " print \"5-1/2\\\"\\t\",\n",
+ " for col in range(0,4,1):\n",
+ " print \"$\",'%.2f'%disks[row][col],\"\\t\\t\",\n",
+ " print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tSingle-sided\tDouble-sided\tSingle-sided\tDouble-sided\n",
+ "\tDouble-density\tDouble-density\tHigh-density\tHigh-density\n",
+ "3-1/2\"\t$ 2.39 \t\t$ 2.75 \t\t$ 3.29 \t\t$ 3.59 \t\t\n",
+ "\n",
+ "5-1/2\"\t$ 1.75 \t\t$ 2.19 \t\t$ 2.69 \t\t$ 2.95 \t\t\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C26SWAP, Page number:551"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function definition\n",
+ "def swap_them(num1,num2):\n",
+ " num1,num2=num2,num1\n",
+ " return num1,num2\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=10\n",
+ "j=20\n",
+ "\n",
+ "print \"\\n\\nBefore swap, i is \",i,\"and j is \",j,\"\\n\\n\"\n",
+ "\n",
+ "i,j=swap_them(i,j) # Function call\n",
+ "\n",
+ "print \"\\n\\nAfter swap, i is \",i,\"and j is \",j,\"\\n\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Before swap, i is 10 and j is 20 \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "After swap, i is 20 and j is 10 \n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C27CP1, Page number:565"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "c=\"Bettye Lou Horn\"\n",
+ "\n",
+ "#Result\n",
+ "print \"My sister's name is \",c,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "My sister's name is Bettye Lou Horn \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C27CP2, Page number:566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "c=\"Bettye Lou Horn\"\n",
+ "\n",
+ "print \"My sister's maiden was \",c,\"\\n\"\n",
+ "\n",
+ "#Assigns new string to c\n",
+ "c=\"Bettye Lou Henderson\" \n",
+ "\n",
+ "#Result\n",
+ "print \"My sister's married name is \",c,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "My sister's maiden was Bettye Lou Horn \n",
+ "\n",
+ "My sister's married name is Bettye Lou Henderson \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C27CP3, Page number:566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "c=\"Bettye Lou Horn\"\n",
+ "\n",
+ "print \"My sister's maiden was \",c,\"\\n\"\n",
+ "c+=str(11) #makes c points to the last name\n",
+ "\n",
+ "c=\"Henderson\" #Assigns new string to c\n",
+ "\n",
+ "#Result\n",
+ "print \"My sister's married name is \",c,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "My sister's maiden was Bettye Lou Horn \n",
+ "\n",
+ "My sister's married name is Henderson \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C27PTST1, Page number:576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Array declaration\n",
+ "name=[\"George\",\"Michelle\",\"Joe\",\"Marcus\",\"Stephanie\"]\n",
+ "\n",
+ "#Result\n",
+ "for ctr in range(0,5,1):\n",
+ " print \"String #\",(ctr+1),\"is\",name[ctr],\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String # 1 is George \n",
+ "\n",
+ "String # 2 is Michelle \n",
+ "\n",
+ "String # 3 is Joe \n",
+ "\n",
+ "String # 4 is Marcus \n",
+ "\n",
+ "String # 5 is Stephanie \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/Chapter7.ipynb b/C++_By_Example/Chapter7.ipynb
new file mode 100755
index 00000000..803a02df
--- /dev/null
+++ b/C++_By_Example/Chapter7.ipynb
@@ -0,0 +1,1111 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:987b4dacc78713a17909fe49b56cfa38644dbc08cbbaecbb827fc7655cf390d8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7, Structures and File Input/Output"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C28ST1, Page number:592"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from collections import namedtuple\n",
+ "\n",
+ "#Structure declaration and definition\n",
+ "struct_cd_collection = namedtuple(\"struct_cd_collection\", \"title artist num_songs price date_purch\")\n",
+ "\n",
+ "#Structure for Cd Collection\n",
+ "cd1 = struct_cd_collection(\"Red Moon Men\", \"Sam and the Sneeds\", 12,11.95,\"02/13/92\")\n",
+ "\n",
+ "#Result\n",
+ "print \"Here is the CD information :\\n\\n\"\n",
+ "print \"Title:\",cd1.title,\"\\n\"\n",
+ "print \"Artist:\",cd1.artist,\"\\n\"\n",
+ "print \"Songs:\",cd1.num_songs,\"\\n\"\n",
+ "print \"Price:\",cd1.price,\"\\n\"\n",
+ "print \"Date purchased:\",cd1.date_purch,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here is the CD information :\n",
+ "\n",
+ "\n",
+ "Title: Red Moon Men \n",
+ "\n",
+ "Artist: Sam and the Sneeds \n",
+ "\n",
+ "Songs: 12 \n",
+ "\n",
+ "Price: 11.95 \n",
+ "\n",
+ "Date purchased: 02/13/92 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C28ST2, Page number:593"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from collections import namedtuple\n",
+ "\n",
+ "#Structure initial declaration\n",
+ "students = namedtuple(\"students\", \"name age average\")\n",
+ "\n",
+ "\n",
+ "#Get data\n",
+ "print \"What is first student's name? \",\n",
+ "x=raw_input()\n",
+ "print \"What is the first student's age? \",\n",
+ "y=input()\n",
+ "print \"What is the first student's average ? \",\n",
+ "z=input()\n",
+ "\n",
+ "#Assign data to the structure variable\n",
+ "student1=students(x,y,z)\n",
+ "\n",
+ "print \"\\n\"\n",
+ "\n",
+ "#Get data\n",
+ "print \"What is second student's name? \",\n",
+ "x=raw_input()\n",
+ "print \"What is the second student's age? \",\n",
+ "y=input()\n",
+ "print \"What is the second student's average ? \",\n",
+ "z=input()\n",
+ "\n",
+ "#Assign data to the structure variable\n",
+ "student2=students(x,y,z)\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n\\nHere is the student information you entered:\\n\\n\"\n",
+ "print \"Student #1:\\n\"\n",
+ "print \"Name: \",student1.name,\"\\n\"\n",
+ "print \"Age: \",student1.age,\"\\n\"\n",
+ "print \"Average: \",'%.2f'%student1.average,\"\\n\"\n",
+ "\n",
+ "print \"Student #2:\\n\"\n",
+ "print \"Name: \",student2.name,\"\\n\"\n",
+ "print \"Age: \",student2.age,\"\\n\"\n",
+ "print \"Average: \",'%.2f'%student2.average,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is first student's name? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Larry\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the first student's age? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "14\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the first student's average ? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "87.67\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ "What is second student's name? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Judy\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the second student's age? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the second student's average ? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "95.38\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ "Here is the student information you entered:\n",
+ "\n",
+ "\n",
+ "Student #1:\n",
+ "\n",
+ "Name: Larry \n",
+ "\n",
+ "Age: 14 \n",
+ "\n",
+ "Average: 87.67 \n",
+ "\n",
+ "Student #2:\n",
+ "\n",
+ "Name: Judy \n",
+ "\n",
+ "Age: 15 \n",
+ "\n",
+ "Average: 95.38 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C28ST3, Page number:596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function definitions\n",
+ "\n",
+ "def fill_structs(student_var):\n",
+ " #Get student data\n",
+ " print \"What is student's name? \",\n",
+ " x=raw_input()\n",
+ " print \"What is the student's age? \",\n",
+ " y=input()\n",
+ " print \"What is the student's average ? \",\n",
+ " z=input()\n",
+ " student_var=students(x,y,z)\n",
+ " return student_var\n",
+ "\n",
+ "\n",
+ "def pr_students(student_var):\n",
+ " print \"Name: \",student_var.name,\"\\n\",\n",
+ " print \"Age: \",student_var.age,\"\\n\",\n",
+ " print \"Average: \",student_var.average,\"\\n\",\n",
+ "\n",
+ "#Structure declaration\n",
+ "from collections import namedtuple\n",
+ "students=namedtuple(\"students\",\"name age average\")\n",
+ "\n",
+ "#Structure variable declaration\n",
+ "student1=students(\" \",0,0.0)\n",
+ "student2=students(\" \",0,0.0)\n",
+ "\n",
+ "#Stucture variable is passed as copy to the function\n",
+ "student1=fill_structs(student1)\n",
+ "student2=fill_structs(student2)\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n\\nHere is the student information you entered:\\n\\n\"\n",
+ "pr_students(student1)\n",
+ "pr_students(student2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is student's name? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Larry\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the student's age? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "14\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the student's average ? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "87.67\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is student's name? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Judy\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the student's age? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " What is the student's average ? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "97.38\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "\n",
+ "Here is the student information you entered:\n",
+ "\n",
+ "\n",
+ "Name: Larry \n",
+ "Age: 14 \n",
+ "Average: 87.67 \n",
+ "Name: Judy \n",
+ "Age: 15 \n",
+ "Average: 97.38 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C28CUST, Page number:598"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Structure definition\n",
+ "\n",
+ "from collections import namedtuple\n",
+ "customer_rec=namedtuple(\"customer_rec\",\"cust_name balance dist_rate\")\n",
+ "\n",
+ "customer=customer_rec(\"Steve Thompson\",431.23,.25)\n",
+ "print \"Before the update\",customer.cust_name,\" has a balance of $\",'%.2f' %customer.balance,\"\\n\",\n",
+ "\n",
+ "#Update the balance\n",
+ "customer_rec.balance=customer.balance*(1.0-customer.dist_rate)\n",
+ "\n",
+ "#Result\n",
+ "print \"After the update\",customer.cust_name,\" has a balance of $\",'%.2f' %customer.balance,\"\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before the update Steve Thompson has a balance of $ 431.23 \n",
+ "After the update Steve Thompson has a balance of $ 323.42 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C28STCPY, Page number:599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Structure declaration\n",
+ "from collections import namedtuple\n",
+ "students=namedtuple(\"students\",\"st_name grade age average\")\n",
+ "\n",
+ "#Structure variable declaration\n",
+ "std1=students(\"Joe Brown\",'A',13,91.4)\n",
+ "std2=students(\" \",\" \",0,0.0)\n",
+ "std3=students(\" \",\" \",0,0.0)\n",
+ "\n",
+ "#Assigning one structure variable to another.\n",
+ "std2=std1\n",
+ "std3=std1\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print \"The contents of std2:\\n\",\n",
+ "print std2.st_name,\", \",std2.grade,\", \",std2.age,\", \",'%.1f' %std2.average,\"\\n\\n\"\n",
+ "\n",
+ "print \"The contents of std3:\\n\",\n",
+ "print std3.st_name,\", \",std3.grade,\", \",std3.age,\", \",'%.1f' %std3.average,\"\\n\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The contents of std2:\n",
+ "Joe Brown , A , 13 , 91.4 \n",
+ "\n",
+ "\n",
+ "The contents of std3:\n",
+ "Joe Brown , A , 13 , 91.4 \n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C30WR1, Page number:635"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#open a new file in write mode\n",
+ "fp = open ( \"C:\\Users\\THEBEST\\Desktop\\NAMES.txt\", \"w\" ) \n",
+ "\n",
+ "fp.writelines(\"Michel Langston\\n\")\n",
+ "fp.writelines(\"Sally Redding\\n\")\n",
+ "fp.writelines(\"Jane Kirk\\n\")\n",
+ "fp.writelines(\"Stacy Wikert\\n\")\n",
+ "fp.writelines(\"Joe Hiquet\\n\")\n",
+ "\n",
+ "#Close file\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C30WR2, Page number:636"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Creates a file in write mode\n",
+ "fp = open ( \"C:\\Users\\THEBEST\\Desktop\\NUMS.1.txt\", \"w\" ) \n",
+ "\n",
+ "if not fp:\n",
+ " print \"Error opening file.\\n\"\n",
+ "else:\n",
+ " for ctr in range(1,101,1):\n",
+ " fp.write('%d' %ctr) #Writes number from 1-100 into the file\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C30AP1, Page number:638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#opens existing file\n",
+ "fp = open ( \"C:\\Users\\THEBEST\\Desktop\\NAMES.TXT\", \"a\" ) \n",
+ "\n",
+ "#Adds to file\n",
+ "fp.writelines(\"Johnny Smith\\n\")\n",
+ "fp.writelines(\"Laura Hull \\n\")\n",
+ "fp.writelines(\"Mark Brown\\n\")\n",
+ "\n",
+ "#Close file\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C30RE1, Page number:640"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print \"What is the name of the file you want to see? \"\n",
+ "#filename=raw_input()\n",
+ "filename = \"NAMES.txt\"\n",
+ "filename=\"C:/Users/THEBEST/Desktop/\"+ filename\n",
+ "\n",
+ "#Open file in read mode\n",
+ "fp = open (filename,\"rb\")\n",
+ "if not fp:\n",
+ " print \"\\n\\n*** That file does not exist ***\\n\"\n",
+ " exit(0)\n",
+ "else:\n",
+ " print in_char\n",
+ "\n",
+ "#Close file\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C30RE2, Page number:641"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#File1 to take backup\n",
+ "print \"What is the name of the file you want to back up? \"\n",
+ "in_filename=raw_input()\n",
+ "\n",
+ "#File2 to copy contents\n",
+ "print \"What is the name of the file you want to copy \",in_filename,\"to? \"\n",
+ "out_filename=raw_input()\n",
+ "\n",
+ "in_fp=open(in_filename,\"r\")\n",
+ "if not in_fp:\n",
+ " print \"\\n\\n*** \",in_filename,\"does not exist***\\n\"\n",
+ " exit(0)\n",
+ "else:\n",
+ " out_fp=open(out_filename,\"w\")\n",
+ " if not out_fp:\n",
+ " print \"\\n\\n*** Error opening \",out_filename,\"***\\n\"\n",
+ " exit(0)\n",
+ " else:\n",
+ " print \"\\nCopying...\\n\" #Reads from old file \n",
+ " for in_char in in_fp.readlines(): #and copies it to new file\n",
+ " out_fp.writelines(in_char)\n",
+ " print \"\\nThe file is copied.\\n\"\n",
+ "\n",
+ "#Close all files\n",
+ "in_fp.close()\n",
+ "out_fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32CON, Page number:664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "class Sphere: #Class declaration\n",
+ " def __init__(self, xcoord,ycoord,zcoord,radius):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ " \n",
+ " def volume(self):\n",
+ " return r*r*r*4*PI/3\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return r*r*4*PI\n",
+ "\n",
+ "def main():\n",
+ " s = Sphere(1.0,2.0,3.0,4.0) #Class object\n",
+ " \n",
+ " print \"X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r #Result\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 1.0 , Y= 2.0 , Z= 3.0 , R= 4.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32DES, Page number:665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "#Class declaration\n",
+ "class Sphere: \n",
+ " def __init__( self,xcoord,ycoord,zcoord,radius):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ "\n",
+ " def __del__(self):\n",
+ " print \"Sphere(\",self.x,\",\" ,self.y,\",\",self.z,\",\",self.r,\") destroyed\"\n",
+ "\n",
+ " \n",
+ " def volume(self):\n",
+ " return self.r*self.r*self.r*4*PI/3\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return self.r*self.r*4*PI\n",
+ "\n",
+ "def main():\n",
+ " #Class object\n",
+ " s = Sphere(1.0,2.0,3.0,4.0) \n",
+ " \n",
+ " #Result\n",
+ " print \"X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r \n",
+ "\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 1.0 , Y= 2.0 , Z= 3.0 , R= 4.0\n",
+ "Sphere( 1.0 , 2.0 , 3.0 , 4.0 ) destroyed\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32MEM, Page number:667"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "#Class declaration\n",
+ "class Sphere: \n",
+ " def __init__( self,xcoord,ycoord,zcoord,radius):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ "\n",
+ " def __del__(self):\n",
+ " print \"Sphere(\",self.x,\",\" ,self.y,\",\",self.z,\",\",self.r,\") destroyed\"\n",
+ "\n",
+ " \n",
+ " def volume(self):\n",
+ " return self.r*self.r*self.r*4*PI/3\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return self.r*self.r*4*PI\n",
+ "\n",
+ "def main():\n",
+ " #Class object\n",
+ " s = Sphere(1.0,2.0,3.0,4.0) \n",
+ " #Result\n",
+ " print \"X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r \n",
+ " print \"The volume is \",s.volume(),\"\\n\",\n",
+ " print \"The surface area is \",s.surface_area(),\"\\n\",\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 1.0 , Y= 2.0 , Z= 3.0 , R= 4.0\n",
+ "The volume is 268.082346667 \n",
+ "The surface area is 201.06176 \n",
+ "Sphere( 1.0 , 2.0 , 3.0 , 4.0 ) destroyed\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32MEM1, Page number:668"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "#Class declaration\n",
+ "class Sphere: \n",
+ " def __init__( self,xcoord,ycoord,zcoord,radius):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ "\n",
+ " def __del__(self):\n",
+ " print \"Sphere(\",self.x,\",\" ,self.y,\",\",self.z,\",\",self.r,\") destroyed\"\n",
+ "\n",
+ " def volume(self):\n",
+ " return self.r*self.r*self.r*4*PI/3\n",
+ "\n",
+ "\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return self.r*self.r*4*PI\n",
+ "\n",
+ "def main():\n",
+ " #Class object\n",
+ " s = Sphere(1.0,2.0,3.0,4.0) \n",
+ " #Result\n",
+ " print \"X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r \n",
+ " print \"The volume is \",s.volume(),\"\\n\", \n",
+ " print \"The surface area is \",s.surface_area(),\"\\n\",\n",
+ "\n",
+ "main()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 1.0 , Y= 2.0 , Z= 3.0 , R= 4.0\n",
+ "The volume is 268.082346667 \n",
+ "The surface area is 201.06176 \n",
+ "Sphere( 1.0 , 2.0 , 3.0 , 4.0 ) destroyed\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32MEM1A, Page number:669"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "#Class declaration\n",
+ "class Sphere: \n",
+ " def __init__( self,xcoord,ycoord,zcoord,radius):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ "\n",
+ " def __del__(self):\n",
+ " print \"Sphere(\",self.x,\",\" ,self.y,\",\",self.z,\",\",self.r,\") destroyed\"\n",
+ "\n",
+ " def volume(self):\n",
+ " return self.r*self.r*self.r*4*PI/3\n",
+ "\n",
+ "\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return self.r*self.r*4*PI\n",
+ "\n",
+ "def main():\n",
+ " #Class object\n",
+ " s = Sphere(1.0,2.0,3.0,4.0) \n",
+ " #Result\n",
+ " print \"X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r \n",
+ " print \"The volume is \",(s.r*s.r*s.r*4*PI/3),\"\\n\", #volume() function is expanded here\n",
+ " print \"The surface area is \",s.surface_area(),\"\\n\",\n",
+ "\n",
+ "main()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 1.0 , Y= 2.0 , Z= 3.0 , R= 4.0\n",
+ "The volume is 268.082346667 \n",
+ "The surface area is 201.06176 \n",
+ "Sphere( 1.0 , 2.0 , 3.0 , 4.0 ) destroyed\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32DEF, Page number:671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "#Class declaration\n",
+ "class Sphere: \n",
+ " def __init__( self,xcoord,ycoord=2.0,zcoord=2.5,radius=1.0):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ "\n",
+ " def __del__(self):\n",
+ " print \"Sphere(\",self.x,\",\" ,self.y,\",\",self.z,\",\",self.r,\") destroyed\"\n",
+ "\n",
+ " def volume(self):\n",
+ " return self.r*self.r*self.r*4*PI/3\n",
+ "\n",
+ "\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return self.r*self.r*4*PI\n",
+ "\n",
+ "def main():\n",
+ "\n",
+ " #Class objects\n",
+ " s = Sphere(1.0) \n",
+ " t = Sphere(1.0,1.1)\n",
+ " u = Sphere(1.0,1.1,1.2)\n",
+ " v = Sphere(1.0,1.1,1.2,1.3)\n",
+ "\n",
+ " #Result\n",
+ " print \"s: X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r \n",
+ " print \"The volume is \",s.volume(),\"\\n\", \n",
+ " print \"The surface area is \",s.surface_area(),\"\\n\",\n",
+ "\n",
+ " print \"t: X=\",t.x,\", Y=\",t.y,\", Z=\",t.z,\", R=\",t.r \n",
+ " print \"The volume is \",t.volume(),\"\\n\", \n",
+ " print \"The surface area is \",t.surface_area(),\"\\n\",\n",
+ "\n",
+ " print \"u: X=\",u.x,\", Y=\",u.y,\", Z=\",u.z,\", R=\",u.r \n",
+ " print \"The volume is \",u.volume(),\"\\n\", \n",
+ " print \"The surface area is \",u.surface_area(),\"\\n\",\n",
+ "\n",
+ " print \"v: X=\",v.x,\", Y=\",v.y,\", Z=\",v.z,\", R=\",v.r \n",
+ " print \"The volume is \",v.volume(),\"\\n\", \n",
+ " print \"The surface area is \",v.surface_area(),\"\\n\",\n",
+ "\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s: X= 1.0 , Y= 2.0 , Z= 2.5 , R= 1.0\n",
+ "The volume is 4.18878666667 \n",
+ "The surface area is 12.56636 \n",
+ "t: X= 1.0 , Y= 1.1 , Z= 2.5 , R= 1.0\n",
+ "The volume is 4.18878666667 \n",
+ "The surface area is 12.56636 \n",
+ "u: X= 1.0 , Y= 1.1 , Z= 1.2 , R= 1.0\n",
+ "The volume is 4.18878666667 \n",
+ "The surface area is 12.56636 \n",
+ "v: X= 1.0 , Y= 1.1 , Z= 1.2 , R= 1.3\n",
+ "The volume is 9.20276430667 \n",
+ "The surface area is 21.2371484 \n",
+ "Sphere( 1.0 , 2.0 , 2.5 , 1.0 ) destroyed\n",
+ "Sphere( 1.0 , 1.1 , 2.5 , 1.0 ) destroyed\n",
+ "Sphere( 1.0 , 1.1 , 1.2 , 1.0 ) destroyed\n",
+ "Sphere( 1.0 , 1.1 , 1.2 , 1.3 ) destroyed\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "C32OVCON, Page number:673"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "PI = 3.14159\n",
+ "\n",
+ "#Class declaration\n",
+ "class Sphere: \n",
+ " def __init__( self,xcoord,ycoord,zcoord,radius):\n",
+ " self.r = radius\n",
+ " self.x = xcoord\n",
+ " self.y = ycoord\n",
+ " self.z = zcoord\n",
+ "\n",
+ " def __del__(self):\n",
+ " print \"Sphere(\",self.x,\",\" ,self.y,\",\",self.z,\",\",self.r,\") destroyed\"\n",
+ "\n",
+ " def volume(self):\n",
+ " return self.r*self.r*self.r*4*PI/3\n",
+ "\n",
+ "\n",
+ "\n",
+ " def surface_area(self):\n",
+ " return self.r*self.r*4*PI\n",
+ "\n",
+ "def main():\n",
+ " #Class object\n",
+ " s = Sphere(1.0,2.0,3.0,4.0) \n",
+ " #Result\n",
+ " print \"X=\",s.x,\", Y=\",s.y,\", Z=\",s.z,\", R=\",s.r \n",
+ " print \"The volume is \",(s.r*s.r*s.r*4*PI/3),\"\\n\", #volume() function is expanded here\n",
+ " print \"The surface area is \",s.surface_area(),\"\\n\",\n",
+ "\n",
+ "main()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 1.0 , Y= 2.0 , Z= 3.0 , R= 4.0\n",
+ "The volume is 268.082346667 \n",
+ "The surface area is 201.06176 \n",
+ "Sphere( 1.0 , 2.0 , 3.0 , 4.0 ) destroyed\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C++_By_Example/screenshots/Chapter2.png b/C++_By_Example/screenshots/Chapter2.png
new file mode 100755
index 00000000..96ff6b82
--- /dev/null
+++ b/C++_By_Example/screenshots/Chapter2.png
Binary files differ
diff --git a/C++_By_Example/screenshots/Chapter3.png b/C++_By_Example/screenshots/Chapter3.png
new file mode 100755
index 00000000..0fdacca1
--- /dev/null
+++ b/C++_By_Example/screenshots/Chapter3.png
Binary files differ
diff --git a/C++_By_Example/screenshots/Chapter4.png b/C++_By_Example/screenshots/Chapter4.png
new file mode 100755
index 00000000..2ee1120a
--- /dev/null
+++ b/C++_By_Example/screenshots/Chapter4.png
Binary files differ
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter1.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter1.ipynb
new file mode 100755
index 00000000..5c25ef5d
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter1.ipynb
@@ -0,0 +1,117 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ed1073b28a905078eb23296522b8b59bf416e5275a011e43147248d1acd57f5a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 GETTING STARTED WITH C PROGRAMMING"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page No. 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"C you later\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C you later\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page No. 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Chapter 1. Getting Started with C programming\"\n",
+ "print \"This is an example of format bug.\"\n",
+ "print \"The format issue can be corrected by using\"\n",
+ "print \"the \\n and \\\\ escape sequnece\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Chapter 1. Getting Started with C programming\n",
+ "This is an example of format bug.\n",
+ "The format issue can be corrected by using\n",
+ "the \n",
+ " and \\ escape sequnece\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exmaple 1.3, Page No. 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Chapter 1. Getting Started with C programming\"\n",
+ "print \"This is an example of format bug.\"\n",
+ "print \"The format issue can be corrected by using\"\n",
+ "print \"the \\\\n and \\\\\\\\ escape sequnece\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Chapter 1. Getting Started with C programming\n",
+ "This is an example of format bug.\n",
+ "The format issue can be corrected by using\n",
+ "the \\n and \\\\ escape sequnece\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter10.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter10.ipynb
new file mode 100755
index 00000000..c2e52854
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter10.ipynb
@@ -0,0 +1,362 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:af2735a34ebb2cb3c8a379aacf70cb46d8ee4a8ed09afacd9b5d0d21e0a0dd5a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Dynamic Memory Allocation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "class employee:\n",
+ " def __init__(self,id1,name,salary):\n",
+ " self.id1 = id1\n",
+ " self.name = name\n",
+ " self.salary = salary\n",
+ "e = employee(10,\"abc\",12000.02)\n",
+ "x = 1\n",
+ "f = 1.1\n",
+ "d = 1111.11\n",
+ "c = 'C'\n",
+ "print \"Sizo of integer : \" + str(sys.getsizeof(x)) + \"bytes \\n\"\n",
+ "print \"Sizo of float : \" + str(sys.getsizeof(f)) + \"bytes \\n\"\n",
+ "print \"Sizo of double : \" + str(sys.getsizeof(d)) + \"bytes \\n\"\n",
+ "print \"Sizo of char : \" + str(sys.getsizeof(c)) + \"bytes \\n\"\n",
+ "print \"Sizo of employee structure : \" + str(sys.getsizeof(e)) + \"bytes \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sizo of integer : 24bytes \n",
+ "\n",
+ "Sizo of float : 24bytes \n",
+ "\n",
+ "Sizo of double : 24bytes \n",
+ "\n",
+ "Sizo of char : 34bytes \n",
+ "\n",
+ "Sizo of employee structure : 64bytes \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "array = []\n",
+ "\n",
+ "print \"\\nSize of array: \" + str(sys.getsizeof(array)) + \"bytes\\n\"\n",
+ "print \"Number of elements in array \"\n",
+ "print str(sys.getsizeof(array) / sys.getsizeof(int)) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Size of array: 64bytes\n",
+ "\n",
+ "Number of elements in array \n",
+ "0\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3, Page No 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5, Page No 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6, Page No 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function\n",
+ "#if name is None:\n",
+ "# print \"\\nOut of memory!\\n\"\n",
+ "#else:\n",
+ "# print \"\\nMemory allocated.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function\n",
+ "#if name is not None:\n",
+ "# name = raw_input(\"Enter your name: \")\n",
+ "# print \"\\nHi \" + name + \"\\n\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8, Page No 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function\n",
+ "#if name is not None:\n",
+ "# name = raw_input(\"Enter your name: \")\n",
+ "# print \"\\nHi \" + name + \"\\n\"\n",
+ "# del name"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9, Page No 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function\n",
+ "#if numbers is None:\n",
+ "# return\n",
+ "#numbers[0] = 100\n",
+ "#numbers[1] = 200\n",
+ "#numbers[2] = 300\n",
+ "#numbers[3] = 400\n",
+ "#numbers[4] = 500\n",
+ "#print \"\\nIndividual memory segments initialized to:\\n\"\n",
+ "#for x in range(5):\n",
+ "# print \"numbers[\" +x+\"] = \\n\" + numbers[x]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10, Page No 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no calloc function\n",
+ "#if numbers is None:\n",
+ "# return"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, Page No 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# there is no malloc function\n",
+ "#if numbers is None:\n",
+ "# print \"\\nOut of memory!\\n\"\n",
+ "# return\n",
+ "#else:\n",
+ "# number = newNumber\n",
+ "# for x in range(10):\n",
+ "# numbers[x] = x * 10\n",
+ "# print \"\\nExpanded memory:\\n\"\n",
+ "# for x in range(10):\n",
+ "# print \"numbers[\" +x+\"] = \\n\" + numbers[x]\n",
+ "# del number"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12, Page No 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import random\n",
+ "# there is no calloc function\n",
+ "#time\n",
+ "#print \"\\nMath Quiz\\n\\n\"\n",
+ "#response = raw_input(\"Enter # of problems: \")\n",
+ "#if op1 is None || op2 is None || answer is None ||result is None:\n",
+ "# print \"\\nOut of Memory!\\n\"\n",
+ "# return\n",
+ "#for x in range(response):\n",
+ "# op1[x] = random.randint(1,200) % 100\n",
+ "# op2[x] = random.randint(1,200) % 100\n",
+ "# print \"\\n\" + op1[x] + \"+\" + op2[x]\"\n",
+ "# answer[x] = raw_input(\"\")\n",
+ "# if answer[x] == op1[x] + op2[x]:\n",
+ "# result[x] = 'c'\n",
+ "# else:\n",
+ "# result[x] = 'i'\n",
+ "#print \"\\nQuiz Results\\n\"\n",
+ "#print \"\\nQuestion\\tYour Answer\\tCorrect\\n\"\n",
+ "#for x in range(response):\n",
+ "# if result[x] == 'c':\n",
+ "# print op1[x] + \"+\" + op2[x] + \"\\t\\t\" + answer[x] + \"\\t\\tYes\\n\"\n",
+ "# else:\n",
+ "# print op1[x] + \"+\" + op2[x] + \"\\t\\t\" + answer[x] + \"\\t\\tNo\\n\"\n",
+ "#del op1\n",
+ "#del op2\n",
+ "#del answer\n",
+ "#del result "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter11.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter11.ipynb
new file mode 100755
index 00000000..239b6ca4
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter11.ipynb
@@ -0,0 +1,616 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9d02541e3ea8d7af1efd977534b7150b993557acd6da8dc30b83dcacb798d681"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : File Input and Output"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "try:\n",
+ " pRead = open(\"file1.dat\",\"r\")\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ "\n",
+ "\"\"\"\n",
+ "Input file:- file1.dat\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "try:\n",
+ " pRead = open(\"file1.dat\",\"r\")\n",
+ " if(not isinstance(pRead,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " print \"\\nFile opened for reading\\n\"\n",
+ " pRead.close()\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ "\n",
+ "\"\"\"\n",
+ "Input file:- file1.dat\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "File opened for reading\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "try:\n",
+ " pRead = open(\"names.dat\",\"r\")\n",
+ " if(not isinstance(pRead,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " print \"\\nContents of names.dat\\n\"\n",
+ " while(1):\n",
+ " t = pRead.readline() \n",
+ " if(t != \"\"):\n",
+ " print t\n",
+ " else:\n",
+ " break\n",
+ " pRead.close()\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " \n",
+ "\"\"\" \n",
+ "Input File :- names.dat\n",
+ "\n",
+ "Michael\n",
+ "Sheila\n",
+ "Spencer\n",
+ "Olivia\n",
+ "\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents of names.dat\n",
+ "\n",
+ "Michael\n",
+ "\n",
+ "Sheila\n",
+ "\n",
+ "Spencer\n",
+ "\n",
+ "Olivia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "try:\n",
+ " pRead = open(\"hobbies.dat\",\"r\")\n",
+ " if(not isinstance(pRead,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " print \"\\nName\\tHobby\\n\\n\"\n",
+ " while(1):\n",
+ " name = pRead.readline()\n",
+ " hobby = pRead.readline()\n",
+ " if(name != \"\"):\n",
+ " print name + \"\\t\"\n",
+ " print hobby\n",
+ " else:\n",
+ " break\n",
+ " pRead.close()\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " \n",
+ "\"\"\"\n",
+ "Input file :- hobbies.dat\n",
+ "\n",
+ "Michael\tProgramming\n",
+ "Sheila\tShopping\n",
+ "Spencer\tFootball\n",
+ "Olivia\tDancing\n",
+ "Waytt\tEating\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name\tHobby\n",
+ "\n",
+ "\n",
+ "Michael\tProgramming\n",
+ "\t\n",
+ "Sheila\tShopping\n",
+ "\n",
+ "Spencer\tFootball\n",
+ "\t\n",
+ "Olivia\tDancing\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page No 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "try:\n",
+ " pWrite = open(\"students.dat\",\"w\")\n",
+ " if(not isinstance(pWrite,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " fname = raw_input(\"Enter first name: \")\n",
+ " lname = raw_input(\"Enter last name: \")\n",
+ " id1 = raw_input(\"Enter id: \")\n",
+ " gpa = float(raw_input(\"Enter GPA: \"))\n",
+ " pWrite.writelines(fname + \" \" + lname + \"\\t\" + id1 + \"\\t\" + str(gpa))\n",
+ " pWrite.close()\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ "\n",
+ "\"\"\"\n",
+ "Output file:- students.dat\n",
+ "Patric Star\t888-66-9999\t2.0\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first name: Patric\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter last name: Star\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter id: 888-66-9999\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter GPA: 2.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6, Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "try:\n",
+ " pRead = open(\"students.dat\",\"r\")\n",
+ " if(not isinstance(pRead,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " print \"\\nName\\t\\tID\\t\\tGPA\\n\\n\"\n",
+ " while(1):\n",
+ " fname = pRead.read()\n",
+ " lname = pRead.read()\n",
+ " id1 = pRead.read()\n",
+ " gpa = pRead.read()\n",
+ " \n",
+ " if(fname != \"\"):\n",
+ " print fname + lname + \"\\t\\t\" + id1 + \"\\t\" + str(gpa)\n",
+ " else:\n",
+ " break\n",
+ " pRead.close()\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ "\n",
+ "\"\"\"\n",
+ "Input file:- students.dat\n",
+ "Patric Star\t888-66-9999\t2.0\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name\t\tID\t\tGPA\n",
+ "\n",
+ "\n",
+ "Patric Star\t888-66-9999\t2.0\t\t\t\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7, Page No 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def readData():\n",
+ " try:\n",
+ " pRead = open(\"hobbies.dat\",\"r\")\n",
+ " if(not isinstance(pRead,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " print \"\\nName\\tHobby\\n\\n\"\n",
+ " while(1):\n",
+ " name = pRead.readline()\n",
+ " hobby = pRead.readline()\n",
+ " if(name != \"\"):\n",
+ " print name + \"\\t\"\n",
+ " print hobby\n",
+ " else:\n",
+ " break\n",
+ " pRead.close()\n",
+ " except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ "try:\n",
+ " print \"Current file contains\"\n",
+ " readData()\n",
+ " print \"\\n\"\n",
+ " name = raw_input(\"Enter a new name: \")\n",
+ " hobby = raw_input(\"Enter a new hobby: \")\n",
+ " pWrite = open(\"hobbies.dat\",\"a\")\n",
+ " if(not isinstance(pWrite,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " else:\n",
+ " pWrite.writelines(\"\\n\" + name + \"\\t\" + hobby)\n",
+ " pWrite.close()\n",
+ " readData()\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " \n",
+ "\"\"\"\n",
+ "Input file and Output file:- hobbies.dat\n",
+ "Michael\tProgramming\n",
+ "Sheila\tShopping\n",
+ "Spencer\tFootball\n",
+ "Olivia\tDancing\n",
+ "Waytt\tEating\n",
+ "\"\"\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current file contains\n",
+ "\n",
+ "Name\tHobby\n",
+ "\n",
+ "\n",
+ "Michael\tProgramming\n",
+ "\t\n",
+ "Sheila\tShopping\n",
+ "\n",
+ "Spencer\tFootball\n",
+ "\t\n",
+ "Olivia\tDancing\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a new name: Waytt\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a new hobby: Eating\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name\tHobby\n",
+ "\n",
+ "\n",
+ "Michael\tProgramming\n",
+ "\t\n",
+ "Sheila\tShopping\n",
+ "\n",
+ "Spencer\tFootball\n",
+ "\t\n",
+ "Olivia\tDancing\n",
+ "\n",
+ "Waytt\tEating\t\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8, Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "try:\n",
+ " pRead = open(\"hobbies.dat\",\"r\")\n",
+ " if(not isinstance(pRead,file)):\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ " print \"The following error occurred\" #goto label\n",
+ " sys.exit(\"Some Error Occures\")\n",
+ " else:\n",
+ " print \"\\nName\\tHobby\\n\\n\"\n",
+ " while(1):\n",
+ " name = pRead.readline()\n",
+ " hobby = pRead.readline()\n",
+ " if(name != \"\"):\n",
+ " print name + \"\\t\"\n",
+ " print hobby\n",
+ " else:\n",
+ " break\n",
+ " pRead.close()\n",
+ " #sys.exit(\"Exit\")\n",
+ "except IOError:\n",
+ " print \"\\nFile can not be opened\\n\"\n",
+ "\n",
+ "\"\"\"\n",
+ "Input file:- hobbies.dat\n",
+ "Michael\tProgramming\n",
+ "Sheila\tShopping\n",
+ "Spencer\tFootball\n",
+ "Olivia\tDancing\n",
+ "Waytt\tEating\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name\tHobby\n",
+ "\n",
+ "\n",
+ "Michael\tProgramming\n",
+ "\t\n",
+ "Sheila\tShopping\n",
+ "\n",
+ "Spencer\tFootball\n",
+ "\t\n",
+ "Olivia\tDancing\n",
+ "\n",
+ "Waytt\tEating\t\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9, Page No 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"\\n\\tPhone Book\\n\"\n",
+ "print \"\\n 1 \\t Add phone book entry \\n\"\n",
+ "print \"2 \\t Print phone book \\n\\n\"\n",
+ "print \"Select an option: \"\n",
+ "response = int(raw_input(\"Select an option: \"))\n",
+ "print response\n",
+ "if(response == 1):\n",
+ " fname = raw_input(\"Enter first name: \")\n",
+ " lname = raw_input(\"Enter last name: \")\n",
+ " number = raw_input(\"Enter phone number: \")\n",
+ " pWrite = open(\"phone_book.dat\",\"a\")\n",
+ " if(isinstance(pWrite,file)):\n",
+ " pWrite.writelines(fname + \" \" + lname + \" \" + number + \"\\n\")\n",
+ " pWrite.close()\n",
+ " else:\n",
+ " print \"The error occured\" #go to\n",
+ "elif(response == 2):\n",
+ " pRead = open(\"phone_book.dat\",\"r\")\n",
+ " if(isinstance(pRead,file)):\n",
+ " while(1):\n",
+ " fname = pRead.read()\n",
+ " if(fname == \"\"):\n",
+ " break\n",
+ " lname = pRead.read()\n",
+ " number = pRead.read()\n",
+ " print fname\n",
+ " print lname\n",
+ " print number\n",
+ " print \"\\n\"\n",
+ " else:\n",
+ " print \"The error occured\" #go to\n",
+ "else:\n",
+ " print \"Invalid Selection\"\n",
+ "\n",
+ "\"\"\"\n",
+ "Input file and Output file:- phone_book.dat\n",
+ "John Smith 538.676.1234\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\tPhone Book\n",
+ "\n",
+ "\n",
+ " 1 \t Add phone book entry \n",
+ "\n",
+ "2 \t Print phone book \n",
+ "\n",
+ "\n",
+ "Select an option: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Select an option: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n",
+ "John Smith 538.676.1234\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter12.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter12.ipynb
new file mode 100755
index 00000000..76d70f5c
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter12.ipynb
@@ -0,0 +1,445 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b5b5db464e530d21c4b695ff4bde6912d0e8c447d51f1ede515f161acac3856f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : The C PreProcessor"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"\\nHaving fun with preprocessor directives\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Having fun with preprocessor directives\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "NUMBER = 7\n",
+ "print \"\\nLucky Number \", NUMBER , \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Lucky Number 7 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3, Page No 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "NUMBER = 7\n",
+ "print \"\\nLucky Number \", NUMBER , \"\\n\"\n",
+ "NUMBER = 5"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Lucky Number 7 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def area(l,w):\n",
+ " return l * w\n",
+ "length = 0\n",
+ "width = 0\n",
+ "length = int(raw_input(\"\\nEnter length: \"))\n",
+ "width = int(raw_input(\"\\nEnter width: \"))\n",
+ "print \"\\nArea of rectangle = \" , area(length,width) , \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter length: 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter width: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Area of rectangle = 84 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page No 276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def RESULT(x,y):\n",
+ " print \"\\nResult is \\n\", x+y\n",
+ "num1 = 0\n",
+ "num2 = 0\n",
+ "num1 = int(raw_input(\"\\nEnter first number: \"))\n",
+ "num2 = int(raw_input(\"\\nEnter second number: \"))\n",
+ "RESULT(num1,num2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter first number: 27\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter second number: 44\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Result is \n",
+ "71\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def RESULT(x,y):\n",
+ " print \"\\nResult is \\n\", x+y\n",
+ "operand1 = 0\n",
+ "operand2 = 0\n",
+ "operand1 = int(raw_input(\"\\nEnter first operand: \"))\n",
+ "operand2 = int(raw_input(\"\\nEnter second operand: \"))\n",
+ "RESULT(operand1,operand2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter first operand: 27\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter second operand: 44\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Result is \n",
+ "71\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import profit\n",
+ "print \"\\nThe Profit Program\\n\"\n",
+ "price = float(raw_input(\"\\nEnter unit price: \"))\n",
+ "quantity = int(raw_input(\"Enter quantity sold: \"))\n",
+ "totalCost = float(raw_input(\"Enter total cost: \"))\n",
+ "profit1(price,quantity,totalCost)\n",
+ "\n",
+ "\"\"\"\n",
+ "Header file:- profit.py\n",
+ "def profit(p,q,tc):\n",
+ " print \"\\nYour profit is \",(p * q) - tc,\"\\n\"\n",
+ "\"\"\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Profit Program\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter unit price: 12.99\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter quantity sold: 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter total cost: 56\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Your profit is 34.93 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, Page No 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import calculate\n",
+ "selection = 0\n",
+ "print \"\\n The Function Wizard \\n\"\n",
+ "print \"\\n1\\tDetermine perimeter of ractangle\\n\"\n",
+ "print \"\\n2\\tDetermine area of rectangle\\n\"\n",
+ "print \"\\n3\\tDetermine volume of rectangle\\n\"\n",
+ "selection = int(raw_input(\"\\nEnter selection : \"))\n",
+ "if selection == 1:\n",
+ " l = float(raw_input(\"Enter length: \"))\n",
+ " w = float(raw_input(\"Enter width: \"))\n",
+ " perimeter(l,w)\n",
+ "elif selection == 2:\n",
+ " l = float(raw_input(\"Enter length: \"))\n",
+ " w = float(raw_input(\"Enter width: \"))\n",
+ " area(l,w)\n",
+ "elif selection == 3:\n",
+ " l = float(raw_input(\"Enter length: \"))\n",
+ " w = float(raw_input(\"Enter width: \"))\n",
+ " h = float(raw_input(\"Enter height: \"))\n",
+ " volume(l,w,h)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " The Function Wizard \n",
+ "\n",
+ "\n",
+ "1\tDetermine perimeter of ractangle\n",
+ "\n",
+ "\n",
+ "2\tDetermine area of rectangle\n",
+ "\n",
+ "\n",
+ "3\tDetermine volume of rectangle\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter selection : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter length: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter width: 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter height: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Perimeter is 6.0 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter2.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter2.ipynb
new file mode 100755
index 00000000..2f3c44af
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter2.ipynb
@@ -0,0 +1,239 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:622f2c579033e8c66b476e16d61ce8bfa6745f6b87c5905b2064108fa5218b3c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 PRIMARY DATA TYPES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No. 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=-4443\n",
+ "y=554.21\n",
+ "c='M'\n",
+ "\n",
+ "print \"The value of integer variable x is\" , x\n",
+ "print \"The value of float variable y is \" , y\n",
+ "print \"The value of character variable c is \" , c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of integer variable x is -4443\n",
+ "The value of float variable y is 554.21\n",
+ "The value of character variable c is M\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No. 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x = 20\n",
+ "PI = 3.14\n",
+ "print \"Constant values are \",x ,\" and \", round(PI,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant values are 20 and 3.14\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, Page No. 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"\\t Adder Program, by Michael Vine\"\n",
+ "iOperand1=int(raw_input(\"Enter First Operand: \"))\n",
+ "iOperand2=int(raw_input(\"Enter Second Operand: \"))\n",
+ "print \"The final result is \", iOperand1+iOperand2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t Adder Program, by Michael Vine\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter First Operand: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Second Operand: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final result is 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No. 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"\\t Adder Program, by Michael Vine\"\n",
+ "iOperand1=int(raw_input(\"Enter First Operand: \"))\n",
+ "iOperand2=int(raw_input(\"Enter Second Operand: \"))\n",
+ "iResult=iOperand1+iOperand2\n",
+ "print \"The result is \", iResult"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t Adder Program, by Michael Vine\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter First Operand: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Second Operand: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The result is 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page No. 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "fRevenue=float(raw_input(\"Enter total revenue: \"))\n",
+ "fCost=float(raw_input(\"Enter total cost: \"))\n",
+ "print \"Your total profit is \", round(fRevenue-fCost,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter total revenue: 4000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter total cost: 750\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your total profit is 3250.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter3.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter3.ipynb
new file mode 100755
index 00000000..a87e263b
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter3.ipynb
@@ -0,0 +1,499 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4698a1abef67d23e99c2eb6e9534a43d9d501d3ae6147f6ceb242f76f06f63a5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 CONDITIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No. 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"\\tAC Control Unit\"\n",
+ "print \"1\\tTurn the AC on\"\n",
+ "print \"2\\tTurn the AC off\"\n",
+ "iResponse=int(raw_input(\"Enter your selection::\"))\n",
+ "if iResponse==1:\n",
+ " print \"AC is now on\"\n",
+ "if iResponse==2:\n",
+ " print \"AC is now off\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tAC Control Unit\n",
+ "1\tTurn the AC on\n",
+ "2\tTurn the AC off\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your selection::1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "AC is now on\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"\\tAC Control Unit\"\n",
+ "print \"a\\tTurn the AC on\"\n",
+ "print \"b\\tTurn the AC off\"\n",
+ "cResponse=raw_input(\"Enter your selection::\")\n",
+ "if cResponse=='a':\n",
+ " print \"AC is now on\"\n",
+ "if cResponse=='b':\n",
+ " print \"AC is now off\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tAC Control Unit\n",
+ "a\tTurn the AC on\n",
+ "b\tTurn the AC off\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your selection::b\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "AC is now off\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page No. 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "fBalance = 100.25\n",
+ "print \"\\tATM\"\n",
+ "print \"1\\tDeposit Funds\"\n",
+ "print \"2\\tWithdraw Funds\"\n",
+ "iSelection=int(raw_input(\"Enter Your Selection: \"))\n",
+ "if iSelection==1:\n",
+ " fTransAmount=int(raw_input(\"Enter fund amount to deposit: \"))\n",
+ " print \"Your new Balance is: \", fBalance+fTransAmount\n",
+ "if iSelection==2:\n",
+ " fTransAmount=int(raw_input(\"Enter fund amount to withdraw: \"))\n",
+ " if fTransAmout>fBalance:\n",
+ " print \"Insufficient Funds\"\n",
+ " else:\n",
+ " print \"Your new balance is \", fBalance-fTransAmount"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tATM\n",
+ "1\tDeposit Funds\n",
+ "2\tWithdraw Funds\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Selection: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter fund amount to deposit: 200\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your new Balance is: 300.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No. 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "cResponse=raw_input(\"Enter a letter A: \")\n",
+ "if cResponse=='A':\n",
+ " print \"Correct response\"\n",
+ "else:\n",
+ " print \"Incorrect response\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a letter A: a\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Incorrect response\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page No.69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iResponse=int(raw_input(\"Enter a numeer from 1 to 10: \"))\n",
+ "if iResponse<1 or iResponse>10:\n",
+ " print \"Number not in Range\"\n",
+ "else:\n",
+ " print \"Thank You\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a numeer from 1 to 10: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thank You\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No. 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "cResponse=raw_input(\"Please Enter a letter: \")\n",
+ "if not cResponse.isdigit():\n",
+ " print \"Thank You\"\n",
+ "else:\n",
+ " print \"You did not enter a letter\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please Enter a letter: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You did not enter a letter\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No. 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "cResponse=raw_input(\"Please Enter a letter: \")\n",
+ "if cResponse.isdigit():\n",
+ " print \"Thank You\"\n",
+ "else:\n",
+ " print \"You did not enter a digit\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please Enter a letter: a\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You did not enter a digit\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No.72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"1\\tSports\"\n",
+ "print \"2\\tGeography\"\n",
+ "print \"3\\tMusic\"\n",
+ "print \"4\\tWorld Events\"\n",
+ "iResponse=int(raw_input(\"Please select a category (1-4): \"))\n",
+ "if iResponse==1:\n",
+ " print \"You selected sports questions\"\n",
+ "elif iResponse==2:\n",
+ " print \"You selected geography questions\"\n",
+ "elif iResponse==3:\n",
+ " print \"You selected Music questions\"\n",
+ "elif iResponse==4:\n",
+ " print \"You selected World event questions\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\tSports\n",
+ "2\tGeography\n",
+ "3\tMusic\n",
+ "4\tWorld Events\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please select a category (1-4): 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You selected World event questions\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9, Page No. 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import random\n",
+ "iRandomNum=(random.randint(0,100)%10)+1\n",
+ "iResponse=int(raw_input(\"Guess a number between 1 and 10: \"))\n",
+ "if iResponse==iRandomNum:\n",
+ " print \"You guessed right\"\n",
+ "else:\n",
+ " print \"Sorry, you guess wrong\"\n",
+ " print \"The correct guess was \",iRandomNum"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Guess a number between 1 and 10: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry, you guess wrong\n",
+ "The correct guess was 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10, Page No. 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import random\n",
+ "iRandomNum=(random.randint(0,100)%4)+1\n",
+ "print \"Fortune Cookie - Chapter 3\"\n",
+ "if iRandomNum==1:\n",
+ " print \"You will meet a new friend\"\n",
+ "elif iRandomNum==2:\n",
+ " print \"You will enjoy a long and happy life\"\n",
+ "elif iRandomNum==3:\n",
+ " print \"Opportunity knocks softly. Can you hear it?\"\n",
+ "elif iRandomNum==4:\n",
+ " print \"You'll be financially rewarded for your good deeds\"\n",
+ "\n",
+ "print \"Lucky lotto numbers\"\n",
+ "print (random.randint(0,100)%49+1)\n",
+ "print (random.randint(0,100)%49+1)\n",
+ "print (random.randint(0,100)%49+1)\n",
+ "print (random.randint(0,100)%49+1)\n",
+ "print (random.randint(0,100)%49+1)\n",
+ "print (random.randint(0,100)%49+1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fortune Cookie - Chapter 3\n",
+ "You will enjoy a long and happy life\n",
+ "Lucky lotto numbers\n",
+ "45\n",
+ "17\n",
+ "9\n",
+ "23\n",
+ "2\n",
+ "15\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter4.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter4.ipynb
new file mode 100755
index 00000000..218595de
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter4.ipynb
@@ -0,0 +1,688 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d985967b3e8d0e583d78d0a3306851320f330cc48579a1f62da314746570750f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 Looping Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 , Page No.88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=0\n",
+ "print \"The value of x is \",x\n",
+ "x+=1\n",
+ "print \"The value of x is \",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is 0\n",
+ "The value of x is 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page No.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=0\n",
+ "y=0\n",
+ "print \"The value of y is \", y+1\n",
+ "print \"The value of x is \", x+1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of y is 1\n",
+ "The value of x is 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=0\n",
+ "y=1\n",
+ "x=(y)*2\n",
+ "print \"The Value of x \",x\n",
+ "x=0\n",
+ "y=1\n",
+ "x=(y+1)*2\n",
+ "print \"The Value of x \",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of x 2\n",
+ "The Value of x 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No.90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=0\n",
+ "y=0\n",
+ "x=(y)*4\n",
+ "print \"The Value of x\", x\n",
+ "y=0\n",
+ "x=(y+1)*4\n",
+ "print \"The Value of x\", x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of x 0\n",
+ "The Value of x 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page No.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=1\n",
+ "y=1\n",
+ "x=(y)*4\n",
+ "print \"The value of x is \",x\n",
+ "y=1\n",
+ "x=(y-1)*4\n",
+ "print \"The value of x is \",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is 4\n",
+ "The value of x is 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No. 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=1\n",
+ "y=2\n",
+ "x=y*x+1\n",
+ "print \"The value of x is: \",x\n",
+ "x=1\n",
+ "y=2\n",
+ "x+=y*x+1\n",
+ "print \"The value of x is: \",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is: 3\n",
+ "The value of x is: 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page No.94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=1\n",
+ "y=2\n",
+ "x=y*x+1\n",
+ "print \"The value of x is: \",x\n",
+ "x=1\n",
+ "y=2\n",
+ "x-=y*x+1\n",
+ "print \"The value of x is: \",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is: 3\n",
+ "The value of x is: -2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8, Page No.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=0\n",
+ "while (x<10):\n",
+ " print \"The value of x is \",x\n",
+ " x=x+1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is 0\n",
+ "The value of x is 1\n",
+ "The value of x is 2\n",
+ "The value of x is 3\n",
+ "The value of x is 4\n",
+ "The value of x is 5\n",
+ "The value of x is 6\n",
+ "The value of x is 7\n",
+ "The value of x is 8\n",
+ "The value of x is 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page No.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iSelection=0\n",
+ "while (iSelection!=4):\n",
+ " print \"1\\tDeposit Funds\"\n",
+ " print \"2\\tWithdraw Funds\"\n",
+ " print \"3\\tPrint Balance\"\n",
+ " print \"4\\tQuit\"\n",
+ " iSelection=int(raw_input(\"Enter Your Selection(1-4): \"))\n",
+ "print \"Thank you\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\tDeposit Funds\n",
+ "2\tWithdraw Funds\n",
+ "3\tPrint Balance\n",
+ "4\tQuit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Selection(1-4): 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\tDeposit Funds\n",
+ "2\tWithdraw Funds\n",
+ "3\tPrint Balance\n",
+ "4\tQuit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Selection(1-4): 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thank you\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=9\n",
+ "while (x<10):\n",
+ " print \"This printf statement is executed at least once\"\n",
+ " x=x+1\n",
+ "while (x<10):\n",
+ " print \"This printf statement is never executed \"\n",
+ " x=x+1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This printf statement is executed at least once\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11, Page No.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for x in range(10,5,-1):\n",
+ " print \"The value of x is \",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is 10\n",
+ "The value of x is 9\n",
+ "The value of x is 8\n",
+ "The value of x is 7\n",
+ "The value of x is 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12, Page No.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import random\n",
+ "iNumQuestions=int(raw_input(\"Enter the number of questions to ask: \"))\n",
+ "for x in range(iNumQuestions):\n",
+ " iRndNum1=(random.randint(0,100)%10)+1\n",
+ " iRndNum2=(random.randint(0,100)%10)+1\n",
+ " iResponse=int(raw_input(\"what is \"+ str(iRndNum1)+\" * \"+str(iRndNum2)+\" : \"))\n",
+ " if(iResponse==(iRndNum1*iRndNum2)):\n",
+ " print \"Correct\"\n",
+ " else:\n",
+ " print \"The Corrent answer was \", iRndNum1*iRndNum2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of questions to ask: 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "what is 6 * 9 : 54\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Correct\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "what is 8 * 5 : 32\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Corrent answer was 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.13, Page No.102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for x in range(10,5,-1):\n",
+ " if x==7:\n",
+ " break\n",
+ "print x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.14, Page No.103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for x in range(10,5,-1):\n",
+ " if x==7:\n",
+ " continue\n",
+ " print x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n",
+ "9\n",
+ "8\n",
+ "6\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.15, Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "for x in range(25):\n",
+ " print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16, Page No. 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import time\n",
+ "import random\n",
+ "import os\n",
+ "cYesNo=raw_input(\"Play a game of Concentration?(y or n)\")\n",
+ "if(cYesNo=='y' or cYesNo=='Y'):\n",
+ " i1=random.randint(0,100) % 100\n",
+ " i2=random.randint(0,100) % 100\n",
+ " i3=random.randint(0,100) % 100\n",
+ " print \"Concentrate on the next three numbers\\n\",i1,i2,i3\n",
+ " iCurrentTime=int(round(time.time()*1000))\n",
+ " iElapsedTime=int(round(time.time()*1000))\n",
+ " while((iCurrentTime-iElapsedTime)<3):\n",
+ " iElapsedTime=int(round(time.time()*1000))\n",
+ " os.system('cls')\n",
+ " iResp1=int(raw_input(\"Enter a number:\"))\n",
+ " iResp2=int(raw_input(\"Enter a number:\"))\n",
+ " iResp3=int(raw_input(\"Enter a number:\"))\n",
+ " \n",
+ " if(i1==iResp1 and i2==iResp2 and i3==iResp3):\n",
+ " print \"Congratulations!\"\n",
+ " else:\n",
+ " print \"Sorry, Correct numbers were \",i1,i2,i3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Play a game of Concentration?(y or n)n\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter5.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter5.ipynb
new file mode 100755
index 00000000..ac86dba8
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter5.ipynb
@@ -0,0 +1,475 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:22dbf664bff583df60a7371a6f741be85c976f32fe9bef5f00f146ca5848d933"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Structured Programming"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def addTwoNumbers(operand1,operand2):\n",
+ " return operand1+operand2\n",
+ "\n",
+ "print \"Nothing happenning here\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Nothing happenning here\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def addTwoNumbers(num1,num2):\n",
+ " return num1+num2\n",
+ "\n",
+ "def subtractTwoNumber(num1,num2):\n",
+ " return num1-num2\n",
+ "\n",
+ "print \"Nothing happenning here\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Nothing happenning here\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3, Page No 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def addTwoNumbers(operand1,operand2):\n",
+ " return operand1+operand2\n",
+ "\n",
+ "\n",
+ "iResult= addTwoNumbers(5,5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def addTwoNumbers(operand1,operand2):\n",
+ " return operand1+operand2\n",
+ "\n",
+ "print \"The result is : \",addTwoNumbers(5,5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The result is : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5, Page No 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def addTwoNumbers(operand1,operand2):\n",
+ " return operand1+operand2\n",
+ "\n",
+ "num1=int(raw_input(\"Enter the first number: \"))\n",
+ "num2=int(raw_input(\"Enter the second number: \"))\n",
+ "print \"The result is: \",addTwoNumbers(num1,num2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first number: 57\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the second number: 43\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The result is: 100\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6, Page No 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def printReportHeader():\n",
+ " print \"\\n Column1 \\t Column2 \\t Column3 \\t Column4 \\n\"\n",
+ " \n",
+ "printReportHeader()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Column1 \t Column2 \t Column3 \t Column4 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "num1=int(raw_input(\"Enter a number: \"))\n",
+ "print \"You entered \",num1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page No 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def getSecondNumber():\n",
+ " num1=int(raw_input(\"Enter Second number: \"))\n",
+ " return num1\n",
+ "\n",
+ "num1=int(raw_input(\"Enter a number: \"))\n",
+ "num2=getSecondNumber()\n",
+ "print \"you entered \"+str(num1)+\" and \",str(num2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 28\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Second number: 35\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "you entered 28 and 35\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9, Page No 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iLuckyNumber=int()\n",
+ "def printLuckyNumber():\n",
+ " print \"Your lucky number is: \",iLuckyNumber\n",
+ "\n",
+ "\n",
+ "iLuckyNumber=int(raw_input(\"Enter your lucky number: \"))\n",
+ "printLuckyNumber()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your lucky number: 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your lucky number is: 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10, Page No 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import os\n",
+ "import time\n",
+ "def sportsQuestion():\n",
+ " print \"Sports Question\"\n",
+ " print \"What University did NFL star Deon Sanders attend?\"\n",
+ " print \"1 \\t University of Miami\"\n",
+ " print \"2 \\t California State University\"\n",
+ " print \"3 \\t Indiana University\"\n",
+ " print \"4 \\t Florida State University\"\n",
+ " iAnswer=int(raw_input(\"Enter your selection :\"))\n",
+ " return iAnswer\n",
+ "\n",
+ "def geographyQuestion():\n",
+ " print \"Geography Question\"\n",
+ " print \"What is the state capitol of Florida?\"\n",
+ " print \"1 \\t Pensecola\"\n",
+ " print \"2 \\t Tallahassee\"\n",
+ " print \"3 \\t Jacksonville\"\n",
+ " print \"4 \\t Miami\"\n",
+ " iAnswer=int(raw_input(\"Enter your selection :\"))\n",
+ " return iAnswer\n",
+ "def pause(inNum):\n",
+ " iCurrentTime=0\n",
+ " iElapsedTime=0\n",
+ " \n",
+ " iCurrentTime=int(round(time.time()*1000))\n",
+ " \n",
+ " while((iElapsedTime-iCurrentTime)<inNum):\n",
+ " iElapsedTime=int(round(time.time()*1000))\n",
+ "\n",
+ "giResponse=0\n",
+ "while(giResponse !=3):\n",
+ " os.system('cls')\n",
+ " print \"\\n\\tTHE TRIVIA GAME\\n\\n\"\n",
+ " print \"1\\tSports\\n\"\n",
+ " print \"2\\tGeography\\n\"\n",
+ " print \"3\\tQuit\\n\"\n",
+ " giResponse=int(raw_input(\"Enter your Selection: \"))\n",
+ " \n",
+ " if(giResponse==1):\n",
+ " if(sportsQuestion()==4):\n",
+ " print \"\\nCorrect\\n\"\n",
+ " else:\n",
+ " print \"\\nIncorrect\\n\"\n",
+ " \n",
+ " pause(2)\n",
+ " break\n",
+ " elif(giResponse==2):\n",
+ " if(geographyQuestion()==2):\n",
+ " print \"\\nCorrect\\n\"\n",
+ " else:\n",
+ " print \"\\nIncorrect\\n\"\n",
+ " \n",
+ " pause(2)\n",
+ " break\n",
+ " \n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\tTHE TRIVIA GAME\n",
+ "\n",
+ "\n",
+ "1\tSports\n",
+ "\n",
+ "2\tGeography\n",
+ "\n",
+ "3\tQuit\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your Selection: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sports Question\n",
+ "What University did NFL star Deon Sanders attend?\n",
+ "1 \t University of Miami\n",
+ "2 \t California State University\n",
+ "3 \t Indiana University\n",
+ "4 \t Florida State University\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your selection :4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Correct\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter6.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter6.ipynb
new file mode 100755
index 00000000..bfb0065f
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter6.ipynb
@@ -0,0 +1,652 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:74348a5183e19ad7ac30f2bcfa88ff539f69c16e0607950b89f2f1031fc1e024"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Arrays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iArray=range(5)\n",
+ "\n",
+ "for x in range(5):\n",
+ " iArray[x]=0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iArray=range(5)\n",
+ "\n",
+ "for x in range(5):\n",
+ " iArray[x]=x\n",
+ " \n",
+ "for x in range(5):\n",
+ " print \"The value of iArray index \"+str(x)+\"is \"+str(x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of iArray index 0is 0\n",
+ "The value of iArray index 1is 1\n",
+ "The value of iArray index 2is 2\n",
+ "The value of iArray index 3is 3\n",
+ "The value of iArray index 4is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page No 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iIndex = -1\n",
+ "iArray=range(5)\n",
+ "\n",
+ "for x in range(5):\n",
+ " iArray[x]=(x+5)\n",
+ "\n",
+ "while (iIndex < 0 or iIndex >4):\n",
+ " iIndex=int(raw_input(\"Enter a valid index (0-4): \"))\n",
+ " \n",
+ "print \"The value of index \"+str(iIndex)+\" is \"+str(iArray[iIndex])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a valid index (0-4): 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of index 4 is 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "cArray = range(5)\n",
+ "cName=\"Olivia\"\n",
+ "\n",
+ "print \"\\nCharacter array not initialized:\\n\"\n",
+ "\n",
+ "for x in range(5):\n",
+ " print \"Element \"+str(x)+\"'s Contents are \",cArray[x]\n",
+ "\n",
+ "print \"\\nInitialized character array: \"\n",
+ "for x in range(6):\n",
+ " print cName[x],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Character array not initialized:\n",
+ "\n",
+ "Element 0's Contents are 0\n",
+ "Element 1's Contents are 1\n",
+ "Element 2's Contents are 2\n",
+ "Element 3's Contents are 3\n",
+ "Element 4's Contents are 4\n",
+ "\n",
+ "Initialized character array: \n",
+ "O l i v i a\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page No 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iFound = -1\n",
+ "iArray=range(5)\n",
+ "\n",
+ "for x in range(5):\n",
+ " iArray[x]=(x+x)\n",
+ " \n",
+ "iValue=int(raw_input(\"Enter value to search for: \"))\n",
+ "\n",
+ "for x in range(5):\n",
+ " if (iArray[x]==iValue):\n",
+ " iFound=x\n",
+ " break\n",
+ "\n",
+ "if(iFound > -1):\n",
+ " print \"I found your search value in element \",iFound\n",
+ "else:\n",
+ " print \"Sorry, your search value was not found\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to search for: 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I found your search value in element 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page No 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iTwoD=[[0 for j in range(3)]for i in range(3)]\n",
+ "for x in range(3):\n",
+ " for y in range(3):\n",
+ " iTwoD[x][y]=(x+y)\n",
+ "for x in range(3):\n",
+ " for y in range(3):\n",
+ " print \"iTwoD[\"+str(x)+\"][\"+str(y)+\"]=\",iTwoD[x][y]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "iTwoD[0][0]= 0\n",
+ "iTwoD[0][1]= 1\n",
+ "iTwoD[0][2]= 2\n",
+ "iTwoD[1][0]= 1\n",
+ "iTwoD[1][1]= 2\n",
+ "iTwoD[1][2]= 3\n",
+ "iTwoD[2][0]= 2\n",
+ "iTwoD[2][1]= 3\n",
+ "iTwoD[2][2]= 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iTwoD=[[1,2,3],[4,5,6],[7,8,9]]\n",
+ "iFoundAt=[0,0]\n",
+ "\n",
+ "iValue=0\n",
+ "iFound=0\n",
+ "\n",
+ "iValue=int(raw_input(\"Enter your search value: \"))\n",
+ "\n",
+ "for x in range(3):\n",
+ " for y in range(3):\n",
+ " if(iTwoD[x][y]==iValue):\n",
+ " iFound=1\n",
+ " iFoundAt[0]=x\n",
+ " iFoundAt[1]=y\n",
+ " break\n",
+ " \n",
+ "if (iFound==1):\n",
+ " print \"Found value in iTwoD [\"+str(iFoundAt[0])+\"][\"+str(iFoundAt[1])+\"]\"\n",
+ "else:\n",
+ " print \"Value not found\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your search value: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Found value in iTwoD [2][0]\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page No 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "board=range(9)\n",
+ "cWhoWon=' '\n",
+ "iCurrentPlayer=0\n",
+ "\n",
+ "def displayBoard():\n",
+ " print \"\\n\\t|\\t|\\n\"\n",
+ " print \"\\t|\\t|\\n\"\n",
+ " print \"\"+str(board[0])+\"\\t|\"+str(board[1])+\"\\t|\"+str(board[2])+\"\\n\"\n",
+ " print \"--------|-------|--------\\n\"\n",
+ " print \"\"+str(board[3])+\"\\t|\"+str(board[4])+\"\\t|\"+str(board[5])+\"\\n\"\n",
+ " print \"--------|-------|--------\\n\"\n",
+ " print \"\\t|\\t|\\n\"\n",
+ " print \"\"+str(board[6])+\"\\t|\"+str(board[7])+\"\\t|\"+str(board[8])+\"\\n\"\n",
+ " print \"\\t|\\t|\\n\"\n",
+ "\n",
+ "def verifySelection(iSquare,iPlayer):\n",
+ " if(board[iSquare-1]==' ' and (iPlayer==1 or iPlayer==0)):\n",
+ " board[iSquare-1]='X'\n",
+ " return 0\n",
+ " elif(board[iSquare-1]==' ' and iPlayer==2):\n",
+ " board[iSquare-1]='0'\n",
+ " return 0\n",
+ " else:\n",
+ " return 1\n",
+ " \n",
+ "def checkForWin():\n",
+ " global cWhoWon\n",
+ " if(board[0]=='X' and board[1]=='X' and board[2]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[3]=='X' and board[4]=='X' and board[5]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[6]=='X' and board[7]=='X' and board[8]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[0]=='X' and board[3]=='X' and board[6]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[1]=='X' and board[4]=='X' and board[7]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[2]=='X' and board[5]=='X' and board[8]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[0]=='X' and board[5]=='X' and board[8]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[2]=='X' and board[5]=='X' and board[6]=='X'):\n",
+ " cWhoWon='X'\n",
+ " elif(board[0]=='0' and board[1]=='0' and board[2]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[3]=='0' and board[4]=='0' and board[5]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[6]=='0' and board[7]=='0' and board[8]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[0]=='0' and board[3]=='0' and board[6]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[1]=='0' and board[4]=='0' and board[7]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[2]=='0' and board[5]=='0' and board[8]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[0]=='0' and board[5]=='0' and board[8]=='0'):\n",
+ " cWhoWon='0'\n",
+ " elif(board[2]=='0' and board[5]=='0' and board[6]=='0'):\n",
+ " cWhoWon='0'\n",
+ " \n",
+ " if(cWhoWon!=' '):\n",
+ " if(cWhoWon=='X'):\n",
+ " print \"\\nX Wins!\\n\"\n",
+ " return\n",
+ " \n",
+ " if(cWhoWon=='0'):\n",
+ " print \"\\n0 Wins!\\n\"\n",
+ " return\n",
+ " else:\n",
+ " return\n",
+ " \n",
+ " for x in range(9):\n",
+ " if(board[x]!=' '):\n",
+ " catTotal=catTotal+1\n",
+ " \n",
+ " if(catTotal==9):\n",
+ " cWhoWon='C'\n",
+ " print \"\\nCAT Game!\\n\"\n",
+ " return\n",
+ "iSquareNum=0\n",
+ "\n",
+ "for x in range(8):\n",
+ " board[x]=' '\n",
+ " \n",
+ "displayBoard()\n",
+ "\n",
+ "while(cWhoWon==' '):\n",
+ " print \"\\n\"+cWhoWon+\"\\n\"\n",
+ " \n",
+ " if(iCurrentPlayer==1 or iCurrentPlayer==0):\n",
+ " print \"\\nPLAYER X\\n\"\n",
+ " iSquareNum=int(raw_input(\"Enter an available square number (1-9): \"))\n",
+ " \n",
+ " if(verifySelection(iSquareNum,iCurrentPlayer)==1):\n",
+ " iCurrentPlayer=1\n",
+ " else:\n",
+ " iCurrentPlayer=2\n",
+ " else:\n",
+ " print \"\\nPLAYER 0\\n\"\n",
+ " iSquareNum=int(raw_input(\"Enter an available square number (1-9): \"))\n",
+ " \n",
+ " if(verifySelection(iSquareNum,iCurrentPlayer)==1):\n",
+ " iCurrentPlayer=2\n",
+ " else:\n",
+ " iCurrentPlayer=1\n",
+ " displayBoard()\n",
+ " checkForWin()\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ " \t| \t| \n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ " \t| \t| \n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ " \t| \t|8\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "PLAYER X\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an available square number (1-9): 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "PLAYER 0\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an available square number (1-9): 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "X\t|0\t| \n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ " \t| \t| \n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ " \t| \t|8\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "PLAYER X\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an available square number (1-9): 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "PLAYER 0\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an available square number (1-9): 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "X\t|0\t|0\n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ "X\t| \t| \n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ " \t| \t|8\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "PLAYER X\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an available square number (1-9): 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "PLAYER 0\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an available square number (1-9): 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "X\t|0\t|0\n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ "X\t|0\t| \n",
+ "\n",
+ "--------|-------|--------\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "X\t| \t|8\n",
+ "\n",
+ "\t|\t|\n",
+ "\n",
+ "\n",
+ "X Wins!\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter7.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter7.ipynb
new file mode 100755
index 00000000..c1085a33
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter7.ipynb
@@ -0,0 +1,582 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:be75d77e91d7005f064cd2c560347aec768e900f2e81ef47804d4b096bc083a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Pointers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=5\n",
+ "iPtr=id(x)\n",
+ "iPtr=7"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=1\n",
+ "iPtr=id(x)\n",
+ "\n",
+ "iPtr=5\n",
+ "\n",
+ "print \"\\n*iPtr = \"+str(iPtr)+\"\\n &x = \"+str(id(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "*iPtr = 5\n",
+ " &x = 20176608\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x=5\n",
+ "y=10\n",
+ "iPtr=None\n",
+ "\n",
+ "print \"Pointer points to: \",iPtr\n",
+ "iPtr=id(y)\n",
+ "print \"Ptr now points to: \",iPtr\n",
+ "x=iPtr\n",
+ "print \"The value of x is now\",x\n",
+ "iPtr=15\n",
+ "print \"The value of y is now\",iPtr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pointer points to: None\n",
+ "Ptr now points to: 20373108\n",
+ "The value of x is now 20373108\n",
+ "The value of y is now 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def addTwoNumbers(x,y):\n",
+ " return x+y\n",
+ "\n",
+ "\n",
+ "x=0\n",
+ "y=0\n",
+ "\n",
+ "x=int(raw_input(\"Enter first number:\"))\n",
+ "y=int(raw_input(\"Enter second number:\"))\n",
+ "\n",
+ "print \"Result is: \",addTwoNumbers(x,y)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number:10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number:15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Result is: 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def demoPassByValue(x):\n",
+ " x+=5\n",
+ " print \"The value of x is:\",x\n",
+ "\n",
+ "x=0\n",
+ "x=int(raw_input(\"Enter a number:\"))\n",
+ "demoPassByValue(x)\n",
+ "print \"The original value of x did not change:\",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number:5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is: 10\n",
+ "The original value of x did not change: 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def demoPassByReference(x):\n",
+ " x+=5\n",
+ " print \"The value of x is now\",x\n",
+ "\n",
+ "x=0\n",
+ "x=int(raw_input(\"Enter a number:\"))\n",
+ "demoPassByReference(x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number:10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of x is now 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "iArray=[1,2,3,4,5]\n",
+ "iPtr=id(iArray)\n",
+ "print \"Address of pointer: \",iPtr\n",
+ "print \"First address of array: \",id(iArray[0])\n",
+ "print \"Pointer points to: \",iArray[0]\n",
+ "print \"First element of array contains\",iArray[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address of pointer: 28621960\n",
+ "First address of array: 19652320\n",
+ "Pointer points to: 1\n",
+ "First element of array contains 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8, Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def nameLength(name):\n",
+ " x=0\n",
+ " while(name[x] != '\\0'):\n",
+ " x+=1;\n",
+ " return x\n",
+ "aName='\\0'\n",
+ "aName=raw_input(\"Enter your first name: \")\n",
+ "aName=aName+'\\0'\n",
+ "print \"Your first name contains\"\n",
+ "print str(nameLength(aName))+\" characters\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your first name: mehta\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your first name contains\n",
+ "5 characters\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9, Page No 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def squareNumber(num):\n",
+ " for x in range(3):\n",
+ " num[x]=num[x]*num[x]\n",
+ "\n",
+ "iNumbers=[2,4,6]\n",
+ "print \"The current array value are:\"\n",
+ "\n",
+ "for x in range(3):\n",
+ " print iNumbers[x]\n",
+ "\n",
+ "print \"\\n\"\n",
+ "\n",
+ "squareNumber(iNumbers)\n",
+ "\n",
+ "print \"The modified array values are :\"\n",
+ "\n",
+ "for x in range(3):\n",
+ " print iNumbers[x]\n",
+ "\n",
+ "print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The current array value are:\n",
+ "2\n",
+ "4\n",
+ "6\n",
+ "\n",
+ "\n",
+ "The modified array values are :\n",
+ "4\n",
+ "16\n",
+ "36\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10, Page No 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def printArgument(num):\n",
+ " print \"Read only argument is: \",num\n",
+ " \n",
+ "iNumber=5\n",
+ "printArgument(iNumber)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read only argument is: 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11, Page No 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def printArray(num):\n",
+ " for x in range(3):\n",
+ " print num[x]\n",
+ "\n",
+ "iNumbers=[2,4,6]\n",
+ "printArray(iNumbers)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n",
+ "4\n",
+ "6\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12, Page No 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def modifyArray(num):\n",
+ " for x in range(3):\n",
+ " num[x]=num[x]*num[x]\n",
+ " \n",
+ "iNumbers=[2,4,6]\n",
+ "modifyArray(iNumbers)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import random\n",
+ "def encrypt(sMessage,random):\n",
+ " x=0\n",
+ " while(sMessage[x]):\n",
+ " sMessage+=str(random)\n",
+ " x+=1\n",
+ " x=0\n",
+ " print \"Encrypted message is: \"\n",
+ " \n",
+ " while(sMessage[x]):\n",
+ " print sMessage[x]\n",
+ " x+=1\n",
+ "\n",
+ "def decrypt(sMessage,random):\n",
+ " x=0\n",
+ " while(sMessage[x]):\n",
+ " sMessage[x]=sMessage[x]-str(random)\n",
+ " x+=1\n",
+ " x=0\n",
+ " while(sMessage[x]):\n",
+ " print sMessage[x]\n",
+ " x+=1\n",
+ " \n",
+ "myString=range(21)\n",
+ "iSelection=0\n",
+ "iRand= (random.randint(1,4)%4)+1\n",
+ "\n",
+ "while(iSelection != 4):\n",
+ " print \"\\n\\n1\\t Encrypt Clear Text\\n\"\n",
+ " print \"2\\tDecrypt Cipher Text\\n\"\n",
+ " print \"3\\tGenerate New Key\\n\"\n",
+ " print \"4\\tQuit\\n\"\n",
+ " iSelection=int(raw_input(\"\\nSelect a Cryptography Option: \"))\n",
+ " \n",
+ " if(iSelection ==1):\n",
+ " myString=raw_input(\"\\nEnter one word as clear text to encrypt: \")\n",
+ " encrypt(myString,iRand)\n",
+ " break\n",
+ " elif(iSelection==2):\n",
+ " myString=raw_input(\"\\nEnter cipher text to decrypt: \")\n",
+ " decrypt(myString,iRand)\n",
+ " break\n",
+ " elif(iSelection==3):\n",
+ " iRand= (random.randrange(1,4,1)%4)+1\n",
+ " print \"\\nNew Key Generated\\n\"\n",
+ " break\n",
+ " else:\n",
+ " exit(0)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "1\t Encrypt Clear Text\n",
+ "\n",
+ "2\tDecrypt Cipher Text\n",
+ "\n",
+ "3\tGenerate New Key\n",
+ "\n",
+ "4\tQuit\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Select a Cryptography Option: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter one word as clear text to encrypt: bhavin\n"
+ ]
+ }
+ ]
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter8.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter8.ipynb
new file mode 100755
index 00000000..bca914f3
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter8.ipynb
@@ -0,0 +1,703 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2192643aa60481aa37dedf877c77d457bede1bb6978dcdba9008684a80b17ad1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 Strings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No. 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "myString=\"MIKE\"\n",
+ "print \"The pointer variable's value is: \", id(myString)\n",
+ "print \"The pointer variable points to: \",myString\n",
+ "print \"The memory locations for each character are::\"\n",
+ "for x in range(0,4):\n",
+ " print id(myString[x]),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pointer variable's value is: 44562688\n",
+ "The pointer variable points to: MIKE\n",
+ "The memory locations for each character are::\n",
+ "19548160 20083536 20086752 20285008\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No.183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "color=raw_input(\"Enter your favorite color: \")\n",
+ "print \"You entered: \",color"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your favorite color: Blue\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered: Blue\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No.183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "color=raw_input(\"Enter your favorite color: \")\n",
+ "print \"You entered: \",color"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your favorite color: Black\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You entered: Black\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No. 185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "names = []\n",
+ "names.append(\"Michael\")\n",
+ "names.append(\"Sheila\")\n",
+ "names.append(\"Spencer\")\n",
+ "names.append(\"Hunter\")\n",
+ "names.append(\"Kenya\")\n",
+ "print \"\\nNames in pointer array of type char:\\n\"\n",
+ "for i in range(5):\n",
+ " print names[i]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Names in pointer array of type char:\n",
+ "\n",
+ "Michael\n",
+ "Sheila\n",
+ "Spencer\n",
+ "Hunter\n",
+ "Kenya\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No.186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "colors = []\n",
+ "print \"Enter 3 colors: \"\n",
+ "for i in range(3):\n",
+ " colors.append(raw_input())\n",
+ "print \"Your entered: \"\n",
+ "for i in range(3):\n",
+ " print colors[i]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 3 colors: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "blue\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "black\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "white\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your entered: \n",
+ "blue\n",
+ "black\n",
+ "white\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page No.187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"123.79\"\n",
+ "str2=\"55\"\n",
+ "\n",
+ "print \"String1 is:\\\"\",str1,\"\\\"\"\n",
+ "print \"String2 is:\\\"\",str2,\"\\\"\"\n",
+ "\n",
+ "x=float(str1)\n",
+ "y=int(str2)\n",
+ "\n",
+ "print \"String 1 converted to a float is \",round(x,2)\n",
+ "print \"String 2 converted to an integer is \",y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String1 is:\" 123.79 \"\n",
+ "String2 is:\" 55 \"\n",
+ "String 1 converted to a float is 123.79\n",
+ "String 2 converted to an integer is 55\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page No.188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"37\"\n",
+ "str2=\"20\"\n",
+ "\n",
+ "print \"String1 + String2 is \", str1+str2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String1 + String2 is 3720\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No. 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"37\"\n",
+ "str2=\"20\"\n",
+ "iResult=int(str1)+int(str2)\n",
+ "print \"String1 + String2 is \", iResult"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String1 + String2 is 57\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page No. 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"Michael\"\n",
+ "str2=\"Vine\"\n",
+ "print \"The length of string1 is \",len(str1)\n",
+ "print \"The length of string2 is \",len(str2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The length of string1 is 7\n",
+ "The length of string2 is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10, Page No.191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def convertL(char):\n",
+ " char=char.lower()\n",
+ " print \"The first name converted to lower case is: \",char\n",
+ "def convertU(char):\n",
+ " char=char.upper()\n",
+ " print \"The first name converted to Upper case is: \",char\n",
+ "name1=\"Michael\"\n",
+ "name2=\"Vine\"\n",
+ "\n",
+ "convertL(name1)\n",
+ "convertU(name2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The first name converted to lower case is: michael\n",
+ "The first name converted to Upper case is: VINE\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11, Page No.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str2=\"C Language\"\n",
+ "str1=str2\n",
+ "print \"String 1 now contains \", str1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 1 now contains C Language\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No.194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"Computer Science \"\n",
+ "str2=\"is applied mathematics\"\n",
+ "print str1+str2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Computer Science is applied mathematics\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exmaple 8.13, Page No.195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"A\"\n",
+ "str2=\"A\"\n",
+ "str3=\"!\"\n",
+ "print str1\n",
+ "print str2\n",
+ "print str3\n",
+ "if str1==str2:\n",
+ " print \"Letter A is equal to letter A\"\n",
+ "if str1>str3:\n",
+ " print \"Letter A is greater than character !\"\n",
+ "if str3<str1:\n",
+ " print \"Character ! is greater than letter A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\n",
+ "A\n",
+ "!\n",
+ "Letter A is equal to letter A\n",
+ "Letter A is greater than character !\n",
+ "Character ! is greater than letter A\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exmaple 8.14, Page No.197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "str1=\"Analyzing strings with with the strstr() function\"\n",
+ "str2=\"ing\"\n",
+ "str3=\"xyz\"\n",
+ "\n",
+ "print str1\n",
+ "print str2\n",
+ "print str3\n",
+ "\n",
+ "if((str1.find(str2))!=-1):\n",
+ " print \"Str2 was found in str1\"\n",
+ "else: \n",
+ " print \"Str2 was not found in str1\"\n",
+ "\n",
+ "if((str1.find(str3))!=-1):\n",
+ " print \"Str3 was found in str1\"\n",
+ "else: \n",
+ " print \"Str3 was not found in str1\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Analyzing strings with with the strstr() function\n",
+ "ing\n",
+ "xyz\n",
+ "Str2 was found in str1\n",
+ "Str3 was not found in str1\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exmaple 8.15, Page No.198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import time\n",
+ "import os\n",
+ "from array import array\n",
+ "\n",
+ "\n",
+ "def checkAnswer(string1,string2):\n",
+ " for x in range(len(string2)):\n",
+ " string2=string2.upper()\n",
+ " if(set(string2).intersection(string1.split())):\n",
+ " print \"Great job\"\n",
+ " else :\n",
+ " print \"Sorry no word found...\"\n",
+ " \n",
+ "starGame=[]\n",
+ "starGame.append(\"ADELANGUAGEFERVZOPIBMOU\")\n",
+ "starGame.append(\"ZBPOINTERSKLMLOOPMNOCOT\")\n",
+ "starGame.append(\"PODSTRINGGDIWHIEEICERLS\")\n",
+ "starGame.append(\"YVCPROGRAMMERWQKNULTHMD\")\n",
+ "starGame.append(\"UKUNIXFIMWXIZEQZINPUTEX\")\n",
+ "\n",
+ "displayed=0\n",
+ "startTime=0\n",
+ "os.system('cls')\n",
+ "print \"word find\"\n",
+ "startTime=int(round(time.time()*1000))\n",
+ "for x in range(0,5):\n",
+ " while ((startTime+3)>int(round(time.time()*1000))):\n",
+ " if displayed==0:\n",
+ " print \"find a word in:\"\n",
+ " print \"\",starGame[x]\n",
+ " displayed=1\n",
+ " os.system('cls')\n",
+ " answer=raw_input(\"Enter word found:\")\n",
+ " checkAnswer(starGame[x],answer)\n",
+ " displayed=0\n",
+ " startTime=int(round(time.time()*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "word find\n",
+ "find a word in:\n",
+ " ADELANGUAGEFERVZOPIBMOU\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter word found:U\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry no word found...\n",
+ "find a word in:\n",
+ " ZBPOINTERSKLMLOOPMNOCOT\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter word found:T\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry no word found...\n",
+ "find a word in:\n",
+ " PODSTRINGGDIWHIEEICERLS\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter word found:S\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry no word found...\n",
+ "find a word in:\n",
+ " YVCPROGRAMMERWQKNULTHMD\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter word found:YV\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry no word found...\n",
+ "find a word in:\n",
+ " UKUNIXFIMWXIZEQZINPUTEX\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter word found:UKU\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry no word found...\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/Chapter9.ipynb b/C_Programming_for_the_Absolute_Beginner/Chapter9.ipynb
new file mode 100755
index 00000000..583e1e8f
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/Chapter9.ipynb
@@ -0,0 +1,549 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c7a7a5fed3d237b23773c146200cb1c66c8b51b03326b1d931d288bf060c18a1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Introduction to Data Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class employee:\n",
+ " def __init__(self,fname,lname,id1,salary):\n",
+ " self.fname = fname\n",
+ " self.lname = lname\n",
+ " self.id1 = id1\n",
+ " self.salary = salary\n",
+ "if __name__ == '__main__':\n",
+ " emp1 = employee(\"Michael\",\"Vine\",123,50000.00)\n",
+ " print \"\\n First name: \" + emp1.fname + \"\\n\"\n",
+ " print \"Last name: \" + emp1.lname + \"\\n\"\n",
+ " print \"Employee ID: \" + str(emp1.id1) + \"\\n\"\n",
+ " print \"Salary: \" + str(emp1.salary) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " First name: Michael\n",
+ "\n",
+ "Last name: Vine\n",
+ "\n",
+ "Employee ID: 123\n",
+ "\n",
+ "Salary: 50000.0\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class employee:\n",
+ " def __init__(self,fname,lname,id1,salary):\n",
+ " self.fname = fname\n",
+ " self.lname = lname\n",
+ " self.id1 = id1\n",
+ " self.salary = salary\n",
+ "if __name__ == '__main__':\n",
+ " emp1 = employee(\"Michael\",\"Vine\",123,50000.00)\n",
+ " print \"\\n First name: \" + emp1.fname + \"\\n\"\n",
+ " print \"Last name: \" + emp1.lname + \"\\n\"\n",
+ " print \"Employee ID: \" + str(emp1.id1) + \"\\n\"\n",
+ " print \"Salary: \" + str(emp1.salary) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " First name: Michael\n",
+ "\n",
+ "Last name: Vine\n",
+ "\n",
+ "Employee ID: 123\n",
+ "\n",
+ "Salary: 50000.0\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3, Page No 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class scores:\n",
+ " def __init__(self,name,score):\n",
+ " self.name = name\n",
+ " self.score = score\n",
+ "if __name__ == '__main__':\n",
+ " highScores = []\n",
+ " highScores.append(scores(\"Hunter\",40768))\n",
+ " highScores.append(scores(\"Kenya\",38568))\n",
+ " highScores.append(scores(\"Apollo\",35985))\n",
+ " for x in range(3):\n",
+ " print \"\\n\" + highScores[x].name + \"\\t\" + str(highScores[x].score) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Hunter\t40768\n",
+ "\n",
+ "\n",
+ "Kenya\t38568\n",
+ "\n",
+ "\n",
+ "Apollo\t35985\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class employee:\n",
+ " def __init__(self,id1,name,salary):\n",
+ " self.id1 = id1\n",
+ " self.name = name\n",
+ " self.salary = salary\n",
+ "def processEmp(emp1):\n",
+ " emp1.id1 = 123\n",
+ " emp1.name = \"Sheila\"\n",
+ " emp1.salary = 65000.00\n",
+ "if __name__ == '__main__':\n",
+ " emp1 = employee(0,0,0)\n",
+ " processEmp(emp1)\n",
+ " print \"\\n Id : \" + str(emp1.id1) + \"\\n\"\n",
+ " print \"Name : \" + emp1.name + \"\\n\"\n",
+ " print \"Salary : \" + str(emp1.salary) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Id : 123\n",
+ "\n",
+ "Name : Sheila\n",
+ "\n",
+ "Salary : 65000.0\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5, Page No 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class player:\n",
+ " def __init__(self,name,score):\n",
+ " self.name = name\n",
+ " self.score = score\n",
+ "if __name__ == '__main__':\n",
+ " aPlayer = player(0,0)\n",
+ " ptrPlayer = id(aPlayer)\n",
+ " aPlayer.name = \"Pinball Wizard\"\n",
+ " aPlayer.score = 1000000.00\n",
+ " print \"\\nPlayer : \" + aPlayer.name + \"\\n\"\n",
+ " print \"Score : \" + str(aPlayer.score)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Player : Pinball Wizard\n",
+ "\n",
+ "Score : 1000000.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6, Page No 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class employee:\n",
+ " def __init__(self,id1,name,salary):\n",
+ " self.id1 = id1\n",
+ " self.name = name\n",
+ " self.salary = salary\n",
+ "def processEmp(emp1):\n",
+ " emp1.id1 = 123\n",
+ " emp1.name = \"Sheila\"\n",
+ " emp1.salary = 65000.00\n",
+ "if __name__ == '__main__':\n",
+ " emp1 = employee(0,0,0)\n",
+ " ptrEmp = id(emp1)\n",
+ " processEmp(emp1)\n",
+ " print \"\\nId : \" + str(emp1.id1) + \"\\n\"\n",
+ " print \"Name : \" + emp1.name + \"\\n\"\n",
+ " print \"Salary : \" + str(emp1.salary) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Id : 123\n",
+ "\n",
+ "Name : Sheila\n",
+ "\n",
+ "Salary : 65000.0\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7, Page No 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class employee:\n",
+ " def __init__(self,id1,name,salary):\n",
+ " self.id1 = id1\n",
+ " self.name = name\n",
+ " self.salary = salary\n",
+ "def processEmp(emp1 = []):\n",
+ " emp1.append(employee(123,\"Sheila\",65000.00))\n",
+ " emp1.append(employee(234,\"Hunter\",28000.00))\n",
+ " emp1.append(employee(456,\"Kenya\",48000.00))\n",
+ " return emp1\n",
+ "if __name__ == '__main__':\n",
+ " emp1 = []\n",
+ " emp1 = employee(0,0,0)\n",
+ " emp1 = processEmp(emp1 = [])\n",
+ " for x in range(3):\n",
+ " print \"\\nId : \" + str(emp1[x].id1) + \"\\n\" \n",
+ " print \"Name : \" + emp1[x].name + \"\\n\"\n",
+ " print \"Salary : \" + str(emp1[x].salary)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Id : 123\n",
+ "\n",
+ "Name : Sheila\n",
+ "\n",
+ "Salary : 65000.0\n",
+ "\n",
+ "Id : 234\n",
+ "\n",
+ "Name : Hunter\n",
+ "\n",
+ "Salary : 28000.0\n",
+ "\n",
+ "Id : 456\n",
+ "\n",
+ "Name : Kenya\n",
+ "\n",
+ "Salary : 48000.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class phonebook:\n",
+ " def __init__(self,name,number,address):\n",
+ " self.name = name\n",
+ " self.number = number\n",
+ " self.address = address\n",
+ "class magazine:\n",
+ " def __init__(self,name,author,isbn):\n",
+ " self.name = name\n",
+ " self.author = author\n",
+ " self.isbn = isbn\n",
+ "if __name__ == '__main__':\n",
+ " aBook = phonebook(\"John\",123,\"John Smith\")\n",
+ " aMagazine = magazine(\"C Programming\",\"Michael Vine\",1-59863-480-1)\n",
+ " print \"\\nUnion Details\\n\"\n",
+ " print \"Address for aBook.name: \" + str(id(aBook.name)) + \"\\n\"\n",
+ " print \"Address for aBook.number: \", str(id(aBook.number)) + \"\\n\"\n",
+ " print \"Address for aBook.address: \", str(id(aBook.address)) + \"\\n\"\n",
+ " print \"\\nStructure Details\\n\"\n",
+ " print \"Address for aMagazine.name: \", str(id(aMagazine.name)) + \"\\n\"\n",
+ " print \"Address for aMagazine.author: \", str(id(aMagazine.author)) + \"\\n\"\n",
+ " print \"Address for aMagazine.isbn: \", str(id(aMagazine.isbn)) + \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ "Union Details\n",
+ "\n",
+ "Address for aBook.name: 66178424\n",
+ "\n",
+ "Address for aBook.number: 30796656\n",
+ "\n",
+ "Address for aBook.address: 66151792\n",
+ "\n",
+ "\n",
+ "Structure Details\n",
+ "\n",
+ "Address for aMagazine.name: 66151744\n",
+ "\n",
+ "Address for aMagazine.author: 66150976\n",
+ "\n",
+ "Address for aMagazine.isbn: 64689272\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9, Page No 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "x = 12\n",
+ "y = 5\n",
+ "print \"\\nWithout Type-Casting\\n\"\n",
+ "print \"12 \\\\ 5 = \" + str(x/y) + \"\\n\"\n",
+ "print \"\\nWith Type-Casting\\n\"\n",
+ "print \"12 \\\\ 5 = \" + str(float(x)/float(y)) + \"\\n\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Without Type-Casting\n",
+ "\n",
+ "12 \\ 5 = 2\n",
+ "\n",
+ "\n",
+ "With Type-Casting\n",
+ "\n",
+ "12 \\ 5 = 2.4\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10, Page No 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "number = 86\n",
+ "letter = 'M'\n",
+ "print \"\\n86 type-casted to char is: \" + chr(number) + \"\\n\"\n",
+ "print \"\\n'M' type-casted to int is: \" + str(ord(letter)) + \"\\n \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "86 type-casted to char is: V\n",
+ "\n",
+ "\n",
+ "'M' type-casted to int is: 77\n",
+ " \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11, Page No 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import random\n",
+ "class dec:\n",
+ " def __init__(self,type1,used,value):\n",
+ " self.type1 = type1\n",
+ " self.used = used\n",
+ " self.value = value\n",
+ "def shuffel(thisDeck):\n",
+ " found = 0\n",
+ " print \"\\nYour five cards are: \\n\\n\"\n",
+ " while found < 5:\n",
+ " #iRnd = random.randint(1, 100) % 51 when we use this it gives error out of range\n",
+ " if thisDeck[iRnd].used == 'n':\n",
+ " if thisDeck[iRnd].value == 12:\n",
+ " print \"Ace of : \" + str(thisDeck[iRnd].type1) + \"\\n\"\n",
+ " elif thisDeck[iRnd].value == 11:\n",
+ " print \"King of : \" + str(thisDeck[iRnd].type1) + \"\\n\"\n",
+ " elif thisDeck[iRnd].value == 10:\n",
+ " print \"Queen of : \" + str(thisDeck[iRnd].type1) + \"\\n\"\n",
+ " elif thisDeck[iRnd].value == 9:\n",
+ " print \"Jack of : \" + str(thisDeck[iRnd].type1) + \"\\n\"\n",
+ " else:\n",
+ " print str(thisDeck[iRnd].value + 2) + \"of\"\n",
+ " print str(thisDeck[iRnd].type1) + \"\\n\" \n",
+ "if __name__ == '__main__':\n",
+ " myDeck = []\n",
+ " for x in range(3):\n",
+ " for y in range(13):\n",
+ " if x==0:\n",
+ " myDeck.append(dec(\"dimonds\",\"y\",\"n\"))\n",
+ " elif x==1:\n",
+ " myDeck.append(dec(\"clubs\",\"y\",\"n\"))\n",
+ " elif x==2:\n",
+ " myDeck.append(dec(\"hearts\",\"y\",\"n\"))\n",
+ " elif x==3:\n",
+ " myDeck.append(dec(\"spades\",\"y\",\"n\"))\n",
+ " shuffel(myDeck)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/README.txt b/C_Programming_for_the_Absolute_Beginner/README.txt
new file mode 100755
index 00000000..9bf2614f
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Bhavin Mehta
+Course: mca
+College/Institute/Organization: Shri Brahmanand Institute of Computer Science - Chaparda
+Department/Designation: Assistant Professor
+Book Title: C Programming for the Absolute Beginner
+Author: Michael Vine
+Publisher: Thomson Course Technology United States of America
+Year of publication: 2008
+Isbn: 1-59863-480-1
+Edition: 2nd edition \ No newline at end of file
diff --git a/C_Programming_for_the_Absolute_Beginner/screenshots/1.png b/C_Programming_for_the_Absolute_Beginner/screenshots/1.png
new file mode 100755
index 00000000..0fc6a70b
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/screenshots/1.png
Binary files differ
diff --git a/C_Programming_for_the_Absolute_Beginner/screenshots/1_1.png b/C_Programming_for_the_Absolute_Beginner/screenshots/1_1.png
new file mode 100755
index 00000000..0fc6a70b
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/screenshots/1_1.png
Binary files differ
diff --git a/C_Programming_for_the_Absolute_Beginner/screenshots/2.png b/C_Programming_for_the_Absolute_Beginner/screenshots/2.png
new file mode 100755
index 00000000..6ceba6dc
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/screenshots/2.png
Binary files differ
diff --git a/C_Programming_for_the_Absolute_Beginner/screenshots/2_1.png b/C_Programming_for_the_Absolute_Beginner/screenshots/2_1.png
new file mode 100755
index 00000000..6ceba6dc
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/screenshots/2_1.png
Binary files differ
diff --git a/C_Programming_for_the_Absolute_Beginner/screenshots/3.png b/C_Programming_for_the_Absolute_Beginner/screenshots/3.png
new file mode 100755
index 00000000..101cd93b
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/screenshots/3.png
Binary files differ
diff --git a/C_Programming_for_the_Absolute_Beginner/screenshots/3_1.png b/C_Programming_for_the_Absolute_Beginner/screenshots/3_1.png
new file mode 100755
index 00000000..101cd93b
--- /dev/null
+++ b/C_Programming_for_the_Absolute_Beginner/screenshots/3_1.png
Binary files differ
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter10.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter10.ipynb
new file mode 100755
index 00000000..a1bfb348
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter10.ipynb
@@ -0,0 +1,164 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa1a6347e016297d3077965d19e73328999eda27dc744ce705c6b4600bbf6157"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Dislocation and Strengthing Mechanism of Metals"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin\n",
+ "u1 = 0.0 # Bravais index\n",
+ "v1 = 1.0 # Bravais index\n",
+ "w1 = 0.0 # Bravais index\n",
+ "u2 = 1.0 # Bravais index\n",
+ "v2 = 1.0 # Bravais index\n",
+ "w2 = 0.0 # Bravais index\n",
+ "u3 = -1.0 # Bravais index\n",
+ "v3 = 1.0 # Bravais index\n",
+ "w3 = 1.0 # Bravais index\n",
+ "tau_r1 = 30.0 # Critical resolved shear stress\n",
+ "sigma = 52.0 # Tensile strength in MPa\n",
+ "\n",
+ "#Part A:\n",
+ "#calculation\n",
+ "phi = acos((u1*u2+v1*v2+w1*w2)/sqrt((u1**2+v1**2+w1**2)*(u2**2+v2**2+w2**2)))\n",
+ "Lambda = acos((u3*u1+v3*v1+w3*w1)/sqrt((u1**2+v1**2+w1**2)*(u3**2+v3**2+w3**2)))\n",
+ "tau_r = sigma*cos(phi)*cos(Lambda)\n",
+ "\n",
+ "#results\n",
+ "print\" Resolved shear stress is %.1f MPa\" %tau_r\n",
+ "print \"Answer in book is 21.3 MPa which is due to approximation\"\n",
+ "\n",
+ "\n",
+ "#Part B\n",
+ "sigma1 = tau_r1/(cos(phi)*cos(Lambda))\n",
+ "\n",
+ "#result\n",
+ "print\" Applied tensile force to initiate yielding is %.1f MPa\" %sigma1\n",
+ "print \"Answer in book is 73.4 MPa which is due to approximation\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Resolved shear stress is 21.2 MPa\n",
+ "Answer in book is 21.3 MPa which is due to approximation\n",
+ " Applied tensile force to initiate yielding is 73.5 MPa\n",
+ "Answer in book is 73.4 MPa which is due to approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page 366 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "d1 = 15.2 # Initial diameter in mm\n",
+ "d2 = 12.2 # Final diameter in mm\n",
+ "\n",
+ "#calculation\n",
+ "per_CW = (d1**2 - d2**2)*100/d1**2 \n",
+ "# Some values are deduced from figures\n",
+ "\n",
+ "#result\n",
+ "print\" The tensile strength is read directly from the curve for copper(figure 10.9b) as 340 MPa From figure 10.19c, the Ductility at %0.1f CW is about 7%% EL.\" %per_CW\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The tensile strength is read directly from the curve for copper(figure 10.9b) as 340 MPa From figure 10.19c, the Ductility at 35.6 CW is about 7% EL.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 (Design Problem 10.1) Page 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin\n",
+ "d1 = 6.4 # Initial diameter in mm for first drawing\n",
+ "sigma = 345.0 # tensile strength in MPa\n",
+ "el = 20.0 # ductility in percent\n",
+ "d2 = 5.1 # Final diameter in mm\n",
+ "per_cw = 21.5 # deformation\n",
+ "\n",
+ "#calculation\n",
+ "per_CW = (d1**2 - d2**2)*100/d1**2 \n",
+ "d0 = sqrt((d2**2*100)/(100.0-el))\n",
+ "\n",
+ "#result\n",
+ "print\" Theoretical %% Cold Work is %.1f\" %per_CW\n",
+ "print\" Original Diameter for second drawing is %.1f mm\" %d0\n",
+ "print \"Answer in book is 5.8 mm which is due to approximation at intermediate steps\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Theoretical % Cold Work is 36.5\n",
+ " Original Diameter for second drawing is 5.7 mm\n",
+ "Answer in book is 5.8 mm which is due to approximation at intermediate steps\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter11.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter11.ipynb
new file mode 100755
index 00000000..b6a88fc2
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter11.ipynb
@@ -0,0 +1,97 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:94d96ade5090af35a7be10a4e4f413cd23d066b461f5c60d5c410a06fb9b94fe"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Failure of Meatls"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1 Page 396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "sigma=40.0*10**6 # in Pa Tensile stress\n",
+ "E=69.0*10**9 #Modulus of elasticity in pa\n",
+ "Ys=0.3 #Specific surface energy in N/m^2\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "a=2*E*Ys/(pi*sigma**2) #Maximum length of surface flaw\n",
+ "\n",
+ "print\" Maximum length of surface flaw without fracture is %.1f micro meter \" %(a*1e6);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Maximum length of surface flaw without fracture is 8.2 micro meter \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 (Design Problem 11.2) Page 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "T=800+273.0; # Ambient temperature in K\n",
+ "#stress is 140 MPa\n",
+ "L_M=24.0*10**3 # Larson - miller parameter \n",
+ "#From Graph of Fig. 8.32 Larson-Miller Parameter is deduced\n",
+ "\n",
+ "#calculation\n",
+ "t=10**((L_M/T)-20)\n",
+ "print\" Time to rupture for a component is %d hours\" %t,\"(%.1f days)\" %(t/(24.0))\n",
+ "print \"Answer in book is 233 hours. it is because of approximation at intermediate stage\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Time to rupture for a component is 232 hours (9.7 days)\n",
+ "Answer in book is 233 hours. it is because of approximation at intermediate stage\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter13.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter13.ipynb
new file mode 100755
index 00000000..eed206dd
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter13.ipynb
@@ -0,0 +1,96 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0e1949e603f323a5873af8d2bd36a47d531c317962e82fce4bbb093095b5b471"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Structure of Polymer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exmple 13.1 Page 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "m1 = 7500.0 # Mean molecular weight in g/mol\n",
+ "m2 = 12500.0 # Mean molecular weight in g/mol\n",
+ "m3 = 17500.0 # Mean molecular weight in g/mol\n",
+ "m4 = 22500.0 # Mean molecular weight in g/mol\n",
+ "m5 = 27500.0 # Mean molecular weight in g/mol\n",
+ "m6 = 32500.0 # Mean molecular weight in g/mol\n",
+ "m7 = 37500.0 # Mean molecular weight in g/mol\n",
+ "x1 = 0.05 # Mole fraction\n",
+ "x2 = 0.16 # Mole fraction\n",
+ "x3 = 0.22 # Mole fraction\n",
+ "x4 = 0.27 # Mole fraction\n",
+ "x5 = 0.20 # Mole fraction\n",
+ "x6 = 0.08 # Mole fraction\n",
+ "x7 = 0.02 # Mole fraction\n",
+ "w1 = 0.02 # weight fraction\n",
+ "w2 = 0.10# weight fraction\n",
+ "w3 = 0.18# weight fraction\n",
+ "w4 = 0.29# weight fraction\n",
+ "w5 = 0.26# weight fraction\n",
+ "w6 = 0.13# weight fraction\n",
+ "w7 = 0.02# weight fraction\n",
+ "m_c = 12.01 # molar mass of carbon in gram/mole\n",
+ "m_h = 1.01 # molar mass of hydrogen in gram/mole\n",
+ "m_cl = 35.45 # molar mass of chlorine in gram/mole\n",
+ "\n",
+ "# Part A:\n",
+ "#calculation\n",
+ "M_n = m1*x1+m2*x2+m3*x3+m4*x4+m5*x5+m6*x6+m7*x7\n",
+ "\n",
+ "#result\n",
+ "print\" The number average molecular weight is %d gram/mol\" %M_n\n",
+ "\n",
+ "#Part B:\n",
+ "m = 2*m_c+3*m_h+1*m_cl # Mass of repeating unit\n",
+ "DP = M_n/m\n",
+ "\n",
+ "#result\n",
+ "print\" The degree of polimarization is %d \" %DP\n",
+ "\n",
+ "#Part C:\n",
+ "M_w = m1*w1+m2*w2+m3*w3+m4*w4+m5*w5+m6*w6+m7*w7\n",
+ "\n",
+ "#result\n",
+ "print\" The weight average molecular weight is %d gram/mol\" %M_w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number average molecular weight is 21150 gram/mol\n",
+ " The degree of polimarization is 338 \n",
+ " The weight average molecular weight is 23200 gram/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter15.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter15.ipynb
new file mode 100755
index 00000000..3efda5f3
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter15.ipynb
@@ -0,0 +1,232 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b9f105fd692b47d5d3095e1c67ce4130548921b299eabec87d1ef03b10f5602"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15:Composite Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1 Page 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "v_f = 40.0 # volume percent of fibre in composite\n",
+ "E_f= 69.0 # Modulus of elasticity of fibre in GPa\n",
+ "v_m = 60.0 # volume percent of matrix in composite\n",
+ "E_m = 3.4# Modulus of elasticity of matrix in GPa\n",
+ "a = 250.0 # cross sectional area in mm^2\n",
+ "sigma = 50.0 # Tensile stress in MPa\n",
+ "Fm = 1.0 # let\n",
+ "Ff = 13.5*Fm \n",
+ "\n",
+ "#calculation\n",
+ "#Part A\n",
+ "E_cl = (v_f*E_f+v_m*E_m)/100.0\n",
+ "\n",
+ "#result\n",
+ "print\"\\n Modulus of elasticity of composite is %0.0f GPa\" %E_cl\n",
+ "\n",
+ "# Part B\"\n",
+ "Fc = a*sigma\n",
+ "Fm = Fc/(Fm+Ff) \n",
+ "Ff = Fc - Fm\n",
+ "\n",
+ "#result\n",
+ "print\" Force supported by m is %d\" %Fm, \"N Force supported by fibre is %d N\" %Ff\n",
+ "print \"Answer in book is as Fm = 860 N and Ff = 11640. It is due to approximation\"\n",
+ "\n",
+ "# Part C\n",
+ "a_m = v_m*a/100\n",
+ "a_f = v_f*a/100\n",
+ "sigma_m = Fm/a_m\n",
+ "sigma_f = Ff/a_f\n",
+ "epsilon_m = sigma_m/(E_m*1000)\n",
+ "epsilon_f = sigma_f/(E_f*1000)\n",
+ "\n",
+ "#result\n",
+ "print \"Strain for matrix phase is %0.2e\" %epsilon_m\n",
+ "print \" Strain for fibre phase is %.2e. Both are identical\" %epsilon_f"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Modulus of elasticity of composite is 30 GPa\n",
+ " Force supported by m is 862 N Force supported by fibre is 11637 N\n",
+ "Answer in book is as Fm = 860 N and Ff = 11640. It is due to approximation\n",
+ "Strain for matrix phase is 1.69e-03\n",
+ " Strain for fibre phase is 1.69e-03. Both are identical\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2 Page 553"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "import math\n",
+ "E_gf=69 # Elasticity of glass fibre in GPa \n",
+ "mf_gf=0.4 #Volume percentage of glass fibre\n",
+ "E_pr=3.4 # Elasticity of polyester resin in GPa\n",
+ "mf_pr=0.6 #Vol percentage of polyester resin\n",
+ "\n",
+ "#calculation\n",
+ "E_ct=E_pr*E_gf/((E_pr*mf_gf)+(E_gf*mf_pr)) # Calculation of modulus of elasticity in GPa\n",
+ "\n",
+ "#result\n",
+ "print\"In transverse direction, modulus of elasticity is %.1f GPa.\" %E_ct"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In transverse direction, modulus of elasticity is 5.5 GPa.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Design Problem 15.1 Page 563"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "F = 1000.0 # Force in N\n",
+ "L = 1.0 # length in m\n",
+ "del_y = 0.35 # extension in mm\n",
+ "d_o = 70 # Outer diameter in mm\n",
+ "d_i = 50 # Innrer diameter in mm\n",
+ "V_f_max = 0.6 # Maximum allowable fiber Volume in cm fraction \n",
+ "Vf_glass = 0.945 # V_f for glass\n",
+ "Vf_C_standard = 0.293# V_f for carbon standard modulus\n",
+ "Vf_c_intermediate = 0.237# V_f for carbon intermediate modulus\n",
+ "Vf_c_high = 0.168 # V_f for carbon high modulus\n",
+ "d_epoxy = 1.14 # density of epoxy resin in g/cm^3\n",
+ "d_C_sm = 1.8 # density of carbon fiber (Standard modulus) in g/cm^3\n",
+ "d_C_im = 1.8 # density of carbon fiber (intermediate modulus) in g/cm^3\n",
+ "d_C_hm = 1.8 # density of carbon fiber (high modulus) in g/cm^3\n",
+ "C_im_cost = 70.00 # cost of carbon fiber (intermediate modulus) in USD/kg \n",
+ "C_sm_cost = 35.00 # cost of carbon fiber (Standard modulus) in USD/kg \n",
+ "C_hm_cost = 175.00 # cost of carbon fiber (high modulus) in USD/kg \n",
+ "d_epoxy = 1.14 # density of epoxy resin in g/cm^3\n",
+ "epoxy_cost = 9.00 # cost of epoxy resin in USD/kg \n",
+ "\n",
+ "#calculation\n",
+ "I = pi/64* (1e-12*(d_o*1e-3)**4-(d_i*1e-3)**4)\n",
+ "E = 4*F*L**3/(3*pi*del_y*1e-3*((d_o*1e-3)**4-(d_i*1e-3)**4)) # Required modulus of elasticity\n",
+ "#parta\n",
+ "\n",
+ "if Vf_glass < V_f_max :\n",
+ " print \"Glass, when embedded in epoxy matrix, meet the stipulated criteria. \"\n",
+ " \n",
+ " \n",
+ "if Vf_C_standard < V_f_max :\n",
+ " print \" Carbon (standard modulus), when embedded in epoxy matrix, meet the stipulated criteria. \"\n",
+ " \n",
+ "\n",
+ "if Vf_c_intermediate < V_f_max :\n",
+ " print\" Carbon (intermediate modulus), when embedded in epoxy matrix, meet the stipulated criteria. \"\n",
+ " \n",
+ "\n",
+ "if Vf_c_high < V_f_max :\n",
+ " print\" Carbon (high modulus), when embedded in epoxy matrix, meet the stipulated criteria.\"\n",
+ " \n",
+ "#partb\n",
+ "Vc = pi*L*1e-6*(d_o**2 - d_i**2)/4\n",
+ "F_v_C_sm = Vc*Vf_C_standard*1e6 # Fiber Volume in cm^3 for carbon (Standard modulus)\n",
+ "F_m_C_sm = F_v_C_sm * d_C_sm/1000 # Fiber mass for carbon (Standard modulus) in kg\n",
+ "F_c_C_sm = F_m_C_sm * C_sm_cost # Fiber cost for carbon (Standard modulus) in USD\n",
+ "m_v_C_sm = Vc*(1-Vf_C_standard)*1e6 # Matrix Volume in cm^3 for carbon (Standard modulus)\n",
+ "m_m_C_sm = m_v_C_sm * d_epoxy/1000 # Matrix mass for carbon (Standard modulus) in kg\n",
+ "m_c_C_sm = m_m_C_sm * epoxy_cost # Matrix cost for carbon (Standard modulus) in USD\n",
+ "Total_c_C_sm = m_c_C_sm + F_c_C_sm # Total cost for carbon (Standard modulus) in USD\n",
+ "F_v_C_im = Vc*Vf_c_intermediate*1e6 # Fiber Volume in cm^3 for carbon (intermediate modulus)\n",
+ "F_m_C_im = F_v_C_im * d_C_im/1000 # Fiber mass for carbon (intermediate modulus) in kg\n",
+ "F_c_C_im = F_m_C_im * C_im_cost# Fiber cost for carbon (intermediate modulus) in USD\n",
+ "m_v_C_im = Vc*(1-Vf_c_intermediate)*1e6 # Matrix Volume in cm^3 for carbon (intermediate modulus)\n",
+ "m_m_C_im = m_v_C_im * d_epoxy/1000 # Matrix mass for carbon (intermediate modulus) in kg\n",
+ "m_c_C_im = m_m_C_im * epoxy_cost # Matrix cost for carbon (intermediate modulus) in USD\n",
+ "Total_c_C_im = m_c_C_im + F_c_C_im # Total cost for carbon (intermediate modulus) in USD\n",
+ "F_v_C_hm = Vc*Vf_c_high*1e6 # Fiber Volume in cm^3 for carbon (high modulus)\n",
+ "F_m_C_hm = F_v_C_hm * d_C_hm/1000 # Fiber mass for carbon (high modulus) in kg\n",
+ "F_c_C_hm = F_m_C_hm * C_hm_cost # Fiber cost for carbon (high modulus) in USD\n",
+ "m_v_C_hm = Vc*(1-Vf_c_high)*1e6 # Matrix Volume in cm^3 for carbon (high modulus)\n",
+ "m_m_C_hm = m_v_C_hm * d_epoxy/1000 # Matrix mass for carbon (high modulus) in kg\n",
+ "m_c_C_hm = m_m_C_hm * epoxy_cost # Matrix cost for carbon (high modulus) in USD\n",
+ "Total_c_C_hm = m_c_C_hm + F_c_C_hm # Total cost for carbon (high modulus) in USD\n",
+ "\n",
+ "#result\n",
+ "print\" Cost of Carbon (standard modulus) composite is:%.2f \" %Total_c_C_sm # whereas Value in table is 48.50 USD\n",
+ "print\" Cost of Carbon (intermediate modulus) composite is:%.2f \" %Total_c_C_im# whereas Value in table is 71.10 USD\n",
+ "print\" Cost of Carbon (high modulus) composite is:%.2f \" %Total_c_C_hm # whereas Value in table is 115.00 USD\n",
+ "print\" The material of choice (i.e. least expensive) is standard modulus carbon fiber composite; the relatively low cost per unit mass of this fiber offsets its relatively low modulus of elasticity and required high Volume fraction.\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Carbon (standard modulus), when embedded in epoxy matrix, meet the stipulated criteria. \n",
+ " Carbon (intermediate modulus), when embedded in epoxy matrix, meet the stipulated criteria. \n",
+ " Carbon (high modulus), when embedded in epoxy matrix, meet the stipulated criteria.\n",
+ " Cost of Carbon (standard modulus) composite is:48.47 \n",
+ " Cost of Carbon (intermediate modulus) composite is:71.04 \n",
+ " Cost of Carbon (high modulus) composite is:115.84 \n",
+ " The material of choice (i.e. least expensive) is standard modulus carbon fiber composite; the relatively low cost per unit mass of this fiber offsets its relatively low modulus of elasticity and required high Volume fraction.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter16.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter16.ipynb
new file mode 100755
index 00000000..cc18eb02
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter16.ipynb
@@ -0,0 +1,133 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a72258313ad12ca8937189e7371e0a2ad935ce36c47c346af1a8810ae6385a42"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Corrosion and Degradation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Page 587"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import log ,log10\n",
+ "V_Cd=-0.403 #Half Cell Potential of Cd++|Cd in volt\n",
+ "V_Ni=-0.250 #Half Cell Potential of Ni++|Ni volt\n",
+ "C_Ni=10.0**-3\n",
+ "C_Cd=0.5\n",
+ "n=2 #Net electron exchange in Redox reaction\n",
+ "\n",
+ "#part A\n",
+ "#calcualation \n",
+ "\n",
+ "dV=V_Ni-V_Cd # Potential difference in volts\n",
+ "\n",
+ "#results\n",
+ "print \" Standard Cell potential is : %.3f V\" %dV\n",
+ "\n",
+ "#partB\n",
+ "\n",
+ "V=-dV-(0.0592*log10(C_Ni/C_Cd)/n)\n",
+ "\n",
+ "#results\n",
+ "print\" Net EMF is : %.3f V\" %V\n",
+ "print\" That is,\",\n",
+ "\n",
+ "if V<0 :\n",
+ " print\"\\t Cd is oxidised & Ni is reduced\"\n",
+ "else :\n",
+ " print\"\\t Cd is reduced & Ni is oxidised\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Standard Cell potential is : 0.153 V\n",
+ " Net EMF is : -0.073 V\n",
+ " That is, \t Cd is oxidised & Ni is reduced\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Page 595"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import log ,log10,floor\n",
+ "VH_H2=0.0 # half cell voltage \n",
+ "VZn_Zn2=-0.763 # half cell voltage \n",
+ "iZn=10.0**-7 # current density in A/cm^2\n",
+ "iH2=10.0**-10 # current density in A/cm^2\n",
+ "beta_Zn=0.09\n",
+ "beta_H2=-0.08\n",
+ "n=2.0 #Exchange of 2 electrons\n",
+ "F=96500.0#Faradays constant\n",
+ "\n",
+ "#partA\n",
+ "#calculation\n",
+ "i_c=10**((VH_H2-VZn_Zn2-(beta_H2*log10(iH2))+(beta_Zn*log10(iZn)))/(beta_Zn-beta_H2))\n",
+ "r=i_c/(n*F)\n",
+ "\n",
+ "#results\n",
+ "print\"Rate of oxidation with zinc is %.2e A/cm^2\" %i_c\n",
+ "print\" Rate of oxidation is %.2e mol/cm^2-s\" %(floor(r*1e12)/1e12)\n",
+ "\n",
+ "#Part B\n",
+ "Vc=VH_H2+(beta_H2*log10(i_c/iH2))\n",
+ "\n",
+ "#results\n",
+ "print\" Corrosion potential is %.3f V\" %Vc"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of oxidation with zinc is 1.19e-04 A/cm^2\n",
+ " Rate of oxidation is 6.17e-10 mol/cm^2-s\n",
+ " Corrosion potential is -0.486 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter17.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter17.ipynb
new file mode 100755
index 00000000..ee25f242
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter17.ipynb
@@ -0,0 +1,302 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4aecaca9039a74b586b1fe19a1dd2695468c1e0e81ca977190e432086f5c3347"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: Electrical Properties of Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.1 Page 640"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "sigma=10**-6 # ( Electrical Conductivity in Ohm-m)^-1 \n",
+ "e=1.6*10**-19 # Charge on electron in Coulomb \n",
+ "m_e=0.85 #Mobility of electron in m^2/V-s \n",
+ "m_h=0.04 # Mobility of holes in m^2/V-s \n",
+ " \n",
+ "#calculation\n",
+ "n_i=sigma/(e*(m_e+m_h))#n_i is Intrinsic carrier concentration\n",
+ "\n",
+ "#result\n",
+ "print\" Intrinsic Carrier Concentration is %.1e m^-3\" %n_i;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Intrinsic Carrier Concentration is 7.0e+12 m^-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.2 Page 647"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "e=1.6*10**-19 #Charge on electron in Coulomb \n",
+ "ni=4*10**19 # number of electron per unit volume for Si at 423 K (m^-3)\n",
+ "#Values of m_e and m_h are deduced from graphs at page No.689\n",
+ "m_e=0.06 #Mobility of electron in m^2/V-s \n",
+ "m_h=0.022 # Mobility of holes in m^2/V-s\n",
+ "\n",
+ "#calculation\n",
+ "sigma=ni*e*(m_e+m_h) # electrical conductivity\n",
+ "\n",
+ "#result\n",
+ "print\" Electrical Conductivity is %.2f (Ohm-m)^-1\\n\" %sigma"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Electrical Conductivity is 0.52 (Ohm-m)^-1\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.3 Page 648"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "n=10.0**23 # Carrier Concentration in m^-3\n",
+ "e=1.6*10**-19 #Charge on electron in Coulomb \n",
+ "#From graph 18.18 m_e is calculated corresponding to n=10^23\n",
+ "m_e=0.07 # Mobility of electron in m^2/V-s \n",
+ "m_e2=0.04 # Mobility of electron m^2/V-s\n",
+ "\n",
+ "#part A\n",
+ "#result\n",
+ "print\" Material is n-type \"\n",
+ "\n",
+ "# Part B\n",
+ "#calculation\n",
+ "sigma=n*e*m_e # electrical conductivity calculation for extrinsic n-type\n",
+ "\n",
+ "#result\n",
+ "print \"Conductivity is just %d (Ohm-m)^-1\" %sigma\n",
+ "\n",
+ "#partC\n",
+ "#From graph 18.19a m_e2 is calculated corresponding to 373 K\n",
+ "sigma2=n*e*m_e2\n",
+ "\n",
+ "#result\n",
+ "print\"Conductivity at T=373 K becomes %d (Ohm-m)^-1\\n\" %sigma2;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Material is n-type \n",
+ "Conductivity is just 1120 (Ohm-m)^-1\n",
+ "Conductivity at T=373 K becomes 640 (Ohm-m)^-1\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.4 Page 651"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#intiiation of variable\n",
+ "sigma=3.8*10**7 # Electrical Conductivity in (Ohm-m)^-1 \n",
+ "m_e=0.0012 # Mobility of electron in m^2/V-s \n",
+ "I_x=25.0 # Current in Ampere(A)\n",
+ "d=15.0*10**-3 #Thickness in m \n",
+ "B_z=0.6 # Magnetic field in Tesla \n",
+ "\n",
+ "#calculation\n",
+ "Rh=-m_e/sigma #Hall coefficient\n",
+ "Vh=Rh*I_x*B_z/d\n",
+ "\n",
+ "#result\n",
+ "print\" Hall coefficient is %.2e V-m/A-Tesla\" %Rh\n",
+ "print\"Hall Voltage is %.2e V\" %Vh"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Hall coefficient is -3.16e-11 V-m/A-Tesla\n",
+ "Hall Voltage is -3.16e-08 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.5 Page 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import ceil\n",
+ "A = 6.45e-4 # Area of plat in m^2\n",
+ "l = 2.0e-3 # separation between plates in m\n",
+ "epsilon_r = 6.0 #dielectric constant of material\n",
+ "epsilon_0 = 8.85e-12 # universal constant\n",
+ "V = 10.0 # Applied voltage in Volt\n",
+ "\n",
+ "# Part A\n",
+ "#calculation\n",
+ "C = epsilon_0*epsilon_r*A/l #Capacitance of a parallel plat capacitor\n",
+ "\n",
+ "#result\n",
+ "print\" Capacitance of capacitor is %.2e F\" %C\n",
+ "\n",
+ "#partB\n",
+ "Q = C*V # Stored charge calculation\n",
+ "\n",
+ "#result\n",
+ "print\" Stored charge in capacitor is %.2e C\" %Q\n",
+ "\n",
+ "#partC\n",
+ "D = epsilon_0*epsilon_r*V/l # Dielectric displacement\n",
+ "\n",
+ "#result\n",
+ "print\" Dielectric displacement in capacitor is %.2e C/m^2\" %(ceil(D*1e9)/1e9)\n",
+ "\n",
+ "#partD\n",
+ "P = D - epsilon_0*V/l # Polarisation \n",
+ "\n",
+ "#result\n",
+ "print\" Polarization is %.2e C/m^2\" %(ceil(P*1e9)/1e9)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Capacitance of capacitor is 1.71e-11 F\n",
+ " Stored charge in capacitor is 1.71e-10 C\n",
+ " Dielectric displacement in capacitor is 2.66e-07 C/m^2\n",
+ " Polarization is 2.22e-07 C/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.6 (Design Problem 17.1) Page 649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "p1 = 1.0e22 # Number of electrons per unit volume\n",
+ "e = 1.6e-19 # Charge on electron in coulomb\n",
+ "mu_h1 = 0.04 # concentration of holes mobility in m^/Vs\n",
+ "sigma_d = 50.0 # Desired conductivity in (ohm-m)^-1\n",
+ "p2 = 1.0e21# Number of electrons per unit volume\n",
+ "mu_h2 = 0.045#concentration of holes mobility in m^/Vs\n",
+ "p3 = 8.0e21# Number of electrons per unit volume\n",
+ "mu_h3 = mu_h1# concentration of holes mobility in m^/Vs\n",
+ "N_a = 6.023e23 # Avogadro\u2019s constant\n",
+ "rho_si = 2.33e6 # density of silicon in g/m^3\n",
+ "A_si = 28.09 # molecular weight in g/mol\n",
+ "\n",
+ "#calculation\n",
+ "sigma1 = p1*e*mu_h1\n",
+ "sigma2 = p2*e*mu_h2\n",
+ "sigma3 = p3*e*mu_h3\n",
+ "N_Si = N_a*rho_si/A_si\n",
+ "Ca = p3*100/(p3+N_Si)\n",
+ "\n",
+ "#result\n",
+ "print \" Silicon material of p-type of conductivity %d (ohm-m)^-1\" %sigma_d, \" must have %.2e doping material\" %Ca"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Silicon material of p-type of conductivity 50 (ohm-m)^-1 must have 1.60e-05 doping material\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter18.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter18.ipynb
new file mode 100755
index 00000000..d6f6f529
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter18.ipynb
@@ -0,0 +1,148 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0284fff4f47eb2639cc82048f0e13c7db511b027408d915d394758b69f4b0675"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18:Magnetic Properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1 Page 688"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "b_m=9.27*10**-24 # Bohr Magneton in ampere*m^2 \n",
+ "Na=6.023*10**23 #Avogadro's Number\n",
+ "d=8.9*10**6 # density in g/m^3 \n",
+ "uo=4*pi*10**-7 #Permittivity of free space\n",
+ "A=58.71 # Atomic weight of Nickel g/mol \n",
+ "\n",
+ "#calculation\n",
+ "N=d*Na/A #No. of atoms per cubic meter\n",
+ "M=0.6*b_m*N #0.6= Bohr Magneton/atom\n",
+ "#partA\n",
+ "#results\n",
+ "print\" Saturation Magnetization is %.1e Ampere\" %M\n",
+ "\n",
+ "# Part B\n",
+ "M=0.6*b_m*N #0.6= Bohr Magneton/atom\n",
+ "B=uo*M\n",
+ "\n",
+ "#results\n",
+ "print\" Saturation Flux Density is %.2f Tesla\" %B;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation Magnetization is 5.1e+05 Ampere\n",
+ " Saturation Flux Density is 0.64 Tesla\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2 Page 692"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "a=0.839*10**-9 #a is edge length in m\n",
+ "b_m=9.27*10**-24 # Bohr Magneton in ampere*m^2\n",
+ "n_b=8*4 #8 is no. of Fe++ ions per unit cell and 4 is Bohr magnetons per Fe++ ion\n",
+ "\n",
+ "#calculation\n",
+ "M=n_b*b_m/a**3 #M is Saturation magnetisation\n",
+ "\n",
+ "#result\n",
+ "print\" Saturation Magnetization is %.1e Ampere\" %M"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation Magnetization is 5.0e+05 Ampere\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 (Design Problem 18.1) Page 692"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from sympy import *\n",
+ "x = symbols('x')\n",
+ "from sympy import roots, solve_poly_system\n",
+ "Ms_Fe=5.25*10**5; #Required saturation Magnetisation in A/m\n",
+ "b_m=9.27*10**-24; #Bohr Magneton in ampere*m^2 \n",
+ "a=0.839*10**-9; #a is edge length in m\n",
+ "M=5.0*10**5; #From previous question result\n",
+ "\n",
+ "#result\n",
+ "nb=Ms_Fe*a**3/b_m;\n",
+ "# 'x' represent fraction of Mn++ that have substituted Fe++\n",
+ "n=solve(8*(5*x+4*(1-x))-nb,x); #5 is Bohr magnetons per Fe++ ion\n",
+ " #4 is Bohr magnetons per Mn++ ion\n",
+ "print\" Replacing \", round((n[0]),3),\"of Fe++ with Mn++ would produce the required saturation magnetisation of %.2e A\" %Ms_Fe;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Replacing 0.181 of Fe++ with Mn++ would produce the required saturation magnetisation of 5.25e+05 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter3.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter3.ipynb
new file mode 100755
index 00000000..5ede74b7
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter3.ipynb
@@ -0,0 +1,380 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:62f9e677d23fbb9801e0874d4ce7853165e00cdc22217903350463c83beff983"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Fundamentals of Structures of Crystalline Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variables\n",
+ "a= 0.48#let side of a unit cell\n",
+ "b = 0.46# let side of a unit cell\n",
+ "c = 0.40 # let side of a unit cell\n",
+ "p_x = 1.0/4\n",
+ "p_y = 1\n",
+ "p_z = 1.0/2\n",
+ "\n",
+ "#calculation\n",
+ "qa = a*p_x # distance of point along x axis from origin in nm\n",
+ "rb = b*p_y # distance of point along y axis from origin in nm\n",
+ "sc = c*p_z # distance of point along z axis from origin\n",
+ "\n",
+ "#result\n",
+ "print\" Point P (%.2f\" %p_x,\"%.2f\" %p_y,\"%.2f\" %p_z,\") corresponds to\",\n",
+ "print \" %.2fnm\" %qa,\"%.2fnm\" %rb,\"%.2fnm \" %sc"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Point P (0.25 1.00 0.50 ) corresponds to 0.12nm 0.46nm 0.20nm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "print\"\\n\\nPoint \\t Fractional Length\\t Point \\n\"\n",
+ "print\"Number \\t x axix\\t y axix\\ z axix \\t Coordinate\"\n",
+ "n = 1 # serial number\n",
+ "\n",
+ "for x in range (0,2) :\n",
+ " for y in range (0,2) :\n",
+ " for z in range (0,2) :\n",
+ " print \"%d\\t\" %n,\" %.1f\" %x,\" %0.1f\" %y,\" %.1f\" %y,\" %.1f\" %x,\" %.1f\"%y,\" %.1f \"%z\n",
+ " n = n+1\n",
+ " \n",
+ " \n",
+ "\n",
+ "x = 0.5# x coordinate for center point\n",
+ "y = 0.5# y coordinate for center point\n",
+ "z = 0.5# y coordinate for center point\n",
+ "print \"%d\\t\" %n,\" %.1f\" %x,\" %0.1f\" %y,\" %.1f\" %y,\" %.1f\" %x,\" %.1f\"%y,\" %.1f \"%z\n",
+ "print \"sequence of point number is changed to make problem programable \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Point \t Fractional Length\t Point \n",
+ "\n",
+ "Number \t x axix\t y axix\\ z axix \t Coordinate\n",
+ "1\t 0.0 0.0 0.0 0.0 0.0 0.0 \n",
+ "2\t 0.0 0.0 0.0 0.0 0.0 1.0 \n",
+ "3\t 0.0 1.0 1.0 0.0 1.0 0.0 \n",
+ "4\t 0.0 1.0 1.0 0.0 1.0 1.0 \n",
+ "5\t 1.0 0.0 0.0 1.0 0.0 0.0 \n",
+ "6\t 1.0 0.0 0.0 1.0 0.0 1.0 \n",
+ "7\t 1.0 1.0 1.0 1.0 1.0 0.0 \n",
+ "8\t 1.0 1.0 1.0 1.0 1.0 1.0 \n",
+ "9\t 0.5 0.5 0.5 0.5 0.5 0.5 \n",
+ "sequence of point number is changed to make problem programable \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "a = 1.0 # let side of a unit cell\n",
+ "b = 1.0 # let side of a unit cell\n",
+ "c = 1.0 # let side of a unit cell\n",
+ "x_proj = 0.5*a # x coordinate of point\n",
+ "y_proj = 1.0*b # y coordinate of point\n",
+ "z_proj = 0.0*c # z coordinate of point\n",
+ "\n",
+ "#calculation\n",
+ "k = 1.0/x_proj\n",
+ "x_reduction = x_proj*k # reduction in x direction\n",
+ "y_reduction = y_proj*k # reduction in x direction\n",
+ "z_reduction = z_proj*k # reduction in x direction\n",
+ "\n",
+ "print \" Indices of direction are as [%d\" %x_reduction,\" %d\" %y_reduction,\" %d\" %z_reduction,\"]\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Indices of direction are as [1 2 0 ]\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "import numpy as np\n",
+ "#solving for a point on the vector\n",
+ "a=5.0;\n",
+ "O=[0,0,0] #origin\n",
+ "a=[1,-1,0] # co-ordinate of the assumed point\n",
+ "A= [x * 5 for x in a] \n",
+ "\n",
+ "#calcualtion\n",
+ "OA=np.subtract(A,O); #vector\n",
+ "OA=[x * 1.0/5 for x in OA]\n",
+ "\n",
+ "#result\n",
+ "print \"the resultant vector in [x,y,z] respectively\",OA\n",
+ "print \"while in notation negative value is indicated by a bar over it\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the resultant vector in [x,y,z] respectively [1.0, -1.0, 0.0]\n",
+ "while in notation negative value is indicated by a bar over it\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "u1 = 1.0 # Unit cell parameter\n",
+ "v1 = 1.0 # Unit cell parameter\n",
+ "w1 = 1.0 # Unit cell parameter\n",
+ "\n",
+ "#calcualtion\n",
+ "u_1 = 1.0/3*(2*u1-v1)\n",
+ "v_1 = 1.0/3*(2*v1-u1)\n",
+ "t_1 = -(u_1+v_1)\n",
+ "w_1 = w1\n",
+ "k = 1.0/u_1\n",
+ "u = u_1*k\n",
+ "v = v_1*k\n",
+ "w = w_1*k\n",
+ "t = t_1*k\n",
+ "\n",
+ "#result\n",
+ "print\" Indices of direction are as [%d\" %u,\" %d\" %v,\" %d\" %t,\" %d\" %w,\"]\"\n",
+ "print \"while in notation negative value is indicated by a bar over it\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Indices of direction are as [1 1 -2 3 ]\n",
+ "while in notation negative value is indicated by a bar over it\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "a = 1.0# let side of a unit cell\n",
+ "b = 1.0 # let side of a unit cell\n",
+ "c = 1.0 # let side of a unit cell\n",
+ "\n",
+ "#calcualtion\n",
+ "x_proj = 0.0 # x coordinate of point\n",
+ "y_proj = -1.0*b # y coordinate of point\n",
+ "z_proj = 0.5*c # z coordinate of point\n",
+ "x_reduction = x_proj*a # reduction in x direction\n",
+ "y_reduction = 1.0/y_proj# reduction in x direction\n",
+ "z_reduction = 1.0/z_proj # reduction in x direction\n",
+ "\n",
+ "#result\n",
+ "print \" Indices of direction are as [%d\" %x_reduction,\" %d\" %y_reduction,\" %d\" %z_reduction,\"]\"\n",
+ "print \"while in notation negative value is indicated by a bar over it\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Indices of direction are as [0 -1 2 ]\n",
+ "while in notation negative value is indicated by a bar over it\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "print \"its a theoritical problem so only steps are shown how to solve the question\"\n",
+ "print \"In order to construct the figure we assume some lines that are normal to planes and from the intersection of lines we construct new planes\"\n",
+ "A=[0,-1,1] # normal to one place\n",
+ "B=[1,0,1] #assumed normal of top plane\n",
+ "C=[-1,0,-1] #normal of the bottom plane\n",
+ "\n",
+ "#result\n",
+ "print \"from the question line ef is the intersection of plane\",A, \"and top plane and line gh intersection of plane\",A,\"bottom plane similar intersection has to be taken with front and back cell to find out the line eg and fh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "its a theoritical problem so only steps are shown how to solve the question\n",
+ "In order to construct the figure we assume some lines that are normal to planes and from the intersection of lines we construct new planes\n",
+ "from the question line ef is the intersection of plane [0, -1, 1] and top plane and line gh intersection of plane [0, -1, 1] bottom plane similar intersection has to be taken with front and back cell to find out the line eg and fh\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "u1 = 1.0 # Unit cell parameter\n",
+ "v1 = -1.0 # Unit cell parameter\n",
+ "w1 = 1.0 # Unit cell parameter\n",
+ "\n",
+ "#calcualtion\n",
+ "u_1 = 1.0/3*(2*u1-v1)\n",
+ "v_1 = 1.0/3*(2*v1-u1)\n",
+ "t_1 = -(u_1+v_1)\n",
+ "w_1 = w1\n",
+ "k = 1.0/u_1\n",
+ "u = u_1*k\n",
+ "v = v_1*k\n",
+ "w = w_1*k\n",
+ "t = t_1*k\n",
+ "\n",
+ "#result\n",
+ "print\" Indices of direction are as [%d\" %u,\" %d\" %v,\" %d\" %t,\" %d\" %w,\"]\"\n",
+ "print \"while in notation negative value is indicated by a bar over it\"\n",
+ "print \" in book the notation used [h k i l] but in the solution [u v t w] is used to maintain uniformity]\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Indices of direction are as [1 -1 0 1 ]\n",
+ "while in notation negative value is indicated by a bar over it\n",
+ " in book the notation used [h k i l] but in the solution [u v t w] is used to maintain uniformity]\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter4.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter4.ipynb
new file mode 100755
index 00000000..d3b6369c
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter4.ipynb
@@ -0,0 +1,358 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a50e48329f4feedd564a46dbfb4f58edb20387a1355177032a107fb9e2c7a5ed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:Structure of Crystalline Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 Page 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "R = 1.0 # let radius of an atom is unity\n",
+ "\n",
+ "#calculation\n",
+ "#For FCC a=2*R*sqrt(2)\n",
+ "a=2.0*R*sqrt(2.0) #Edge Length\n",
+ "V=a**3 #Volume determination\n",
+ "\n",
+ "#result\n",
+ "print\" Volume of an FCC unit cell is %fR^3 \" %V"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Volume of an FCC unit cell is 22.627417R^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi\n",
+ "R = 1.0 # let radius of an atom to be unity \n",
+ "n=4.0 # no. of atoms for FCC are 4\n",
+ "\n",
+ "#calculation\n",
+ "a=2.0*R*sqrt(2.0) # edge length for FCC\n",
+ "Vc=a**3 #Volume of cube\n",
+ "Vs=n*4*pi*R**3/3 #Volume of sphere\n",
+ "APF=Vs/Vc #Atomic packing Fraction\n",
+ "\n",
+ "#result\n",
+ "print\" Atomic packing factor is %.2f\" %APF"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Atomic packing factor is 0.74\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi\n",
+ "R=1.28e-08#Atomic radius in cm\n",
+ "A_Cu=63.5 #Atomic wt of copper\n",
+ "n=4.0 #For FCC\n",
+ "Na=6.023e23 #Avogadro no.\n",
+ "\n",
+ "#calculation\n",
+ "a=2*R*sqrt(2.0)\n",
+ "Vc=a**3\n",
+ "rho=n*A_Cu/(Vc*Na)\n",
+ "\n",
+ "#result\n",
+ "print\" Density of copper is %.2f g/cm^3.\" %rho"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Density of copper is 8.89 g/cm^3.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi, cos\n",
+ "theta = 30.0 # angle between a line joining centres of anion with their median in degree\n",
+ "\n",
+ "#calculation\n",
+ "r_ratio = (1- cos(theta*pi/180))/ cos(theta*pi/180)\n",
+ "\n",
+ "#result\n",
+ "print\" Minimum cation to anion radius ratio is %.3f\" %r_ratio"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Minimum cation to anion radius ratio is 0.155\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi, cos\n",
+ "r_fe2 = 0.077 # radius of Iron ion in nm\n",
+ "r_o2 = 0.14 # radius of oxygen ion in nm\n",
+ "r_ratio = r_fe2 /r_o2 # cation - anion radius ratio for FeO\n",
+ "\n",
+ "#calculation\n",
+ "if r_ratio > 0.414 and r_ratio < 0.732 :\n",
+ " print\" As ratio lies between 0.414 and 0.732 and coordination number 6, so it is of AX crystal structure.\"\n",
+ "\n",
+ "\n",
+ "print \"coordination number 6 is taken from table\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " As ratio lies between 0.414 and 0.732 and coordination number 6, so it is of AX crystal structure.\n",
+ "coordination number 6 is taken from table\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi, cos\n",
+ "n = 4.0 # number of crystals per unit cell\n",
+ "A_c = 22.99 # molar mass of cation i.e. sodium\n",
+ "A_a = 35.45 # molar mass of cation i.e. chlorine\n",
+ "r_c = 1.02e-8 # radius of sodium atom in cm\n",
+ "r_a = 1.81e-8 # radius of sodium atom in cm\n",
+ "N_a = 6.023e23 # Avogadro constant\n",
+ "\n",
+ "#result\n",
+ "a = 2*(r_c+r_a)# edge length of Nacl molecule\n",
+ "V_c = a**3 # Volume of unit cell\n",
+ "rho = (n*(A_c+A_a))/(V_c*N_a)\n",
+ "\n",
+ "#result\n",
+ "print\" Theoretical density of crystal is %0.2f g/cm^3 .\" %rho\n",
+ "print\" This result compares very favourable with experimental value of 2.16 g/cm^3 .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Theoretical density of crystal is 2.14 g/cm^3 .\n",
+ " This result compares very favourable with experimental value of 2.16 g/cm^3 .\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 Page 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi, cos\n",
+ "n = 2 # number of repeated units within unit cell\n",
+ "A_c = 12.01 # molar mass of carbon\n",
+ "A_h = 1.008 # molar mass of hydrogen\n",
+ "a = 0.741 # edge length in x axis in nm\n",
+ "b = 0.494 # edge length in y axis in nm\n",
+ "c = 0.255 # edge length in z axis in nm\n",
+ "N_a = 6.023e23 # Avogadro constant\n",
+ "rho_s = 0.925 # density of branched polyethylene in g/cm^3\n",
+ "rho_a = 0.870 # density of totally amorphous polyethylene in g/cm^3\n",
+ "\n",
+ "# Part A\n",
+ "#calculation\n",
+ "A = 2*A_c+4*A_h # Molar mass of polyethylene\n",
+ "V_c = a*b*c*(1.0e-7)**3 # Volume of unit cell\n",
+ "rho_c = (n*A)/(V_c*N_a)\n",
+ "\n",
+ "print\" Density of totally crystalline polyethylene is %0.3f g/cm^3 .\" %rho_c\n",
+ "\n",
+ "#part B\n",
+ "per_cry = (rho_c*(rho_s-rho_a))*100/(rho_s*(rho_c-rho_a))\n",
+ "\n",
+ "#result\n",
+ "print\" Percentage crystallinity is %0.1f percent\" %per_cry"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Density of totally crystalline polyethylene is 0.998 g/cm^3 .\n",
+ " Percentage crystallinity is 46.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8 Page 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi, cos, asin\n",
+ "a = 0.2866 # lattice parameter in nm\n",
+ "h = 2.0 # component of set of plane\n",
+ "k = 2.0# component of set of plane\n",
+ "l = 0.0# component of set of plane\n",
+ "n = 1.0 # order of detraction\n",
+ "Lambda = 0.1790 # wavelength of light in nm\n",
+ "\n",
+ "#part A\n",
+ "#calculation\n",
+ "d_hkl=a/(sqrt(h**2+k**2+l**2))\n",
+ "theta=asin(n*Lambda/(2*d_hkl))\n",
+ "\n",
+ "#result\n",
+ "print\" Interplanar spacing is %.4f nm.\" %d_hkl\n",
+ "\n",
+ "\n",
+ "# Part B\n",
+ "print \" Diffraction angle is %0.2f degree.\" %(2*theta*180/pi)\n",
+ "print \"Answer in book is 124.26 degree. It is so because of consideration of different number of significant figures in calculation.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Interplanar spacing is 0.1013 nm.\n",
+ " Diffraction angle is 124.08 degree.\n",
+ "Answer in book is 124.26 degree. It is so because of consideration of different number of significant figures in calculation.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter5.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter5.ipynb
new file mode 100755
index 00000000..469640f0
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter5.ipynb
@@ -0,0 +1,269 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:20acc45e5b683c7de1952e9c7efd7aebcd1c855dc451b9afce999f4ba45c7ed6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Imperfection in Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "Na=6.023*10**23 #Avogadro No.\n",
+ "rho=8.4e6 #Density of Copper in g/m^3\n",
+ "A=63.5 #Atomic weight of Copper\n",
+ "Qv=0.9 #Activation energy in eV\n",
+ "k=8.62*10**-5 #Boltzmann Constant in eV/K\n",
+ "T=1000.0+273#Temperature in K\n",
+ "\n",
+ "#calculation\n",
+ "N=Na*rho/A #No. of atomic site per cubic meter\n",
+ "Nv=N*exp(-Qv/(k*T))\n",
+ "\n",
+ "#result\n",
+ "print\" Equilibrium number of vacancies/m^3 is %.1e for 1273K\" %Nv"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Equilibrium number of vacancies/m^3 is 2.2e+25 for 1273K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#proving equation to be correct for sample values\n",
+ "C1=5.0;\n",
+ "C2=3.0;\n",
+ "A1=9.0;\n",
+ "A2=15.0;\n",
+ "C1_dash=50.0;\n",
+ "\n",
+ "#calculation\n",
+ "C11=C1*A1/(C1*A1+C2*A2)*100;\n",
+ "if C11==C1_dash :\n",
+ " print \"The equation derived i.e C1_dash=C1*A1/(C1*A1+C2*A2)*100 is correct\"\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equation derived i.e C1_dash=C1*A1/(C1*A1+C2*A2)*100 is correct\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "C_Al=97.0 #Aluminium wt%\n",
+ "C_Cu=3.0 #Copper wt%\n",
+ "A_Al=26.98 #Atomic wt of Aluminium\n",
+ "A_Cu=63.55 #Atomic wt of Copper\n",
+ "\n",
+ "#calculation\n",
+ "CAl=C_Al*A_Cu*100/((C_Al*A_Cu)+(C_Cu*A_Al))\n",
+ "CCu=C_Cu*A_Al*100/((C_Cu*A_Al)+(C_Al*A_Cu))\n",
+ "\n",
+ "#result\n",
+ "print \" Atomic percent of Al is %.1f percent\" %CAl \n",
+ "print \" Atomic percent of Cu is %.1f percent\" %CCu "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Atomic percent of Al is 98.7 in percent\n",
+ " Atomic percent of Cu is 1.3 in percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "Na=6.023*10**23 #Avogadro No.\n",
+ "rho=1.955 #Density of KCl in g/cm^3\n",
+ "A_k= 39.10 #Atomic weight of potassium in g/mol\n",
+ "A_cl= 35.45 #Atomic weight of Chlorine in g/mol\n",
+ "Qs=2.6 #Activation energy in eV\n",
+ "k=8.62*10**-5 #Boltzmann Constant in eV/K\n",
+ "T=500+273.0 #Temperature in K\n",
+ "\n",
+ "#result\n",
+ "A = A_k+A_cl # Molar mass of KCl in gram\n",
+ "N=Na*rho*1.0e6/A #No. of atomic site per cubic meter\n",
+ "Ns=N*exp(-Qs/(2*k*T))\n",
+ "\n",
+ "#result\n",
+ "print\" Number of Schottky defects are %.2e defects/m^3.\" %Ns"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Number of Schottky defects are 5.31e+19 defects/m^3.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "print \"the are two possible scenarios\"\n",
+ "print \"scenario 1, removal of Na+ ion will intoduce vacancy in the NaCl crystal\"\n",
+ "print \"scenario 2, addition of Cl- ion wil fill up any additional void left\"\n",
+ "print \"since there is no way to predict which will happen at large thus can be assumed 50% each so, there is very less chances of creating a void\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the are two possible scenarios\n",
+ "scenario 1, removal of Na+ ion will intoduce vacancy in the NaCl crystal\n",
+ "scenario 2, addition of Cl- ion wil fill up any additional void left\n",
+ "since there is no way to predict which will happen at large thus can be assumed 50% each so, there is very less chances of creating a void\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import log\n",
+ "N=45.0 #Number of grains per square inch\n",
+ "M=85.0 # magnification\n",
+ "\n",
+ "#part A\n",
+ "#calculation\n",
+ "n=(log(N)/log(2.0))+1 #calculation for grain size no. N=2^(n-1)\n",
+ "\n",
+ "#result\n",
+ "print\" Grain size number is %.1f\" %n\n",
+ "\n",
+ "#part B\n",
+ "Nm=(100/M)**2*2**(n-1)\n",
+ "\n",
+ "#result\n",
+ "print\" At magnification of 85x\"\n",
+ "print\" Number of grains per inch square are %.2f\" %Nm\n",
+ "print \"answer in book is 62.6. It is because of rounding off at intermediate stages\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Grain size number is 6.5\n",
+ " At magnification of 85x\n",
+ " Number of grains per inch square are 62.28\n",
+ "answer in book is 62.6. It is because of rounding off at intermediate stages\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter6.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter6.ipynb
new file mode 100755
index 00000000..d4742e0d
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter6.ipynb
@@ -0,0 +1,273 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6f41d9a04613a061f355ba5794a8305d75a93992280462922fb2a17540ab6288"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6:Diffusion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "Ca=1.2 #Concentration at A in kg/m^3\n",
+ "Cb=0.8 #Concentration at B in kg/m^3\n",
+ "xa=5.0*10**-3#Position 1 in m\n",
+ "xb=10.0*10**-3#Position 2 in m\n",
+ "D=3.0*10**-11 #Diffusion coefficient in m^2/s\n",
+ "\n",
+ "#calcualtion\n",
+ "J=-D*(Ca-Cb)/(xa-xb)\n",
+ "\n",
+ "#result\n",
+ "print\" Diffusion flux is %.1e kg/m^2-s\" %J"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusion flux is 2.4e-09 kg/m^2-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "x=5*10**-4 #Position in m\n",
+ "D=1.6*10**-11 #Diffusion coefficient in m^2/s\n",
+ "Co=0.25#Initial Concentration in wt%\n",
+ "Cs=1.2 #Surface concentration in wt%\n",
+ "Cx=0.8 #Concentration at any x in wt%\n",
+ "z1 = 0.35 # tabular data\n",
+ "z2 = 0.4 # tabular data\n",
+ "erf_z1 = 0.3794 # tabular data\n",
+ "erf_z2 = 0.4284 # tabular data\n",
+ "\n",
+ "#calcualtion\n",
+ "C=1-((Cx-Co)/(Cs-Co))\n",
+ "z = (C-erf_z1)/(erf_z2-erf_z1) * (z2-z1) + z1 # Calculation by interpolation\n",
+ "t= ((x/(2*sqrt(D)))/z)**2 # calculation of time\n",
+ "\n",
+ "#result\n",
+ "print\" Time required is %d\" %t,\"s or %.2f h\" %(t/3600);\n",
+ "print \"Answer in book is 25400 sec or 7.1 h. It is because of considering different number of significant figure\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Time required is 25355 s or 7.04 h\n",
+ "Answer in book is 25400 sec or 7.1 h. It is because of considering different number of significant figure\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "D_500=4.8*10**-14 #Diffusion coefficient at 500 C\n",
+ "D_600=5.3*10**-13 #Diffusion coefficient at 600 C\n",
+ "t_600=10.0 #Time in hours to diffuse\n",
+ "\n",
+ "#calculation\n",
+ "t_500=D_600*t_600/D_500\n",
+ "\n",
+ "#result\n",
+ "print\" Time to diffuse at 500 degree Celsius is %.1f h\" %(t_500)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Time to diffuse at 500 degree Celsius is 110.4 h\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "T=550+273.0 # temperature of aluminium in K\n",
+ "D_0=1.2*10**-4 #Temperature independent preexponential in m^2/s\n",
+ "Q_d=131000.0 #Activation energy in J/mol-K\n",
+ "R=8.31 #Universal Gas constant\n",
+ "\n",
+ "#calculation\n",
+ "D=D_0*exp(-Q_d/(R*T));\n",
+ "\n",
+ "#result\n",
+ "print\" Diffusion coefficient is %.1e m^2/s\" %D;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusion coefficient is 5.8e-13 m^2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#From graph log D ad 1/T are deducted\n",
+ "inv_T1=0.8*10**-3 #Reciprocal of temp. in K^-1\n",
+ "inv_T2=1.1*10**-3 #Reciprocal of temp. in K^-1\n",
+ "logD1=-12.4\n",
+ "logD2=-15.45\n",
+ "R=8.31 #Gas law Constant in J/mol-K\n",
+ "\n",
+ "#calculation\n",
+ "Q_d=-2.3*R*(logD1-logD2)/(inv_T1-inv_T2)\n",
+ "D_0=10**(logD2+(Q_d*inv_T2/(2.3*R)))#For calculating Preexponential factor\n",
+ "\n",
+ "#result\n",
+ "print\" Activation energy is %d kJ/mol\" %(Q_d/1000)\n",
+ "print\" Preexponential factor D_0 is %.1e m^2/s\" %D_0\n",
+ "print \"Answer in book is 5.2e-5 m^2/s. It is because of consideration of different number of significant figures\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Activation energy is 194 kJ/mol\n",
+ " Preexponential factor D_0 is 5.4e-05 m^2/s\n",
+ "Answer in book is 5.2e-5 m^2/s. It is because of consideration of different number of significant figures\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 (Design Problem 6.1), Page 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "P_m = 2.3e-14 # permissibility coefficient of CO2 through PET\n",
+ "P_1 = 400.0 # Pressure inside bottle in KPa\n",
+ "P_2 = 0.4 # Pressure outside bottle in KPa\n",
+ "A = 500.0 # Surface area of bottle in cm^2\n",
+ "x = 0.05 # wall thickness of bottle in cm\n",
+ "V = 750.0 # volume in cm^3\n",
+ "\n",
+ "#part A\n",
+ "#calculation\n",
+ "J = -P_m*(P_2-P_1)*1e3/x # calculation of diffusion flux\n",
+ "\n",
+ "print\" Diffusion flux is %0.1e cm^3 STP/(cm^2-s)\" %J\n",
+ "\n",
+ "#partB\n",
+ "V_co2 = J*A \n",
+ "t = V/V_co2 # calculation of self life\n",
+ "print\" Self life for bottle of pop is %d\" %(t/(60.0*60*24)), \"days (or about %d months).\" %(t/(60*60*24*30))\n",
+ "print \"Answer in book is 97 days. It is because of considering different number of significant figure\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusion flux is 1.8e-07 cm^3 STP/(cm^2-s)\n",
+ " Self life for bottle of pop is 94 days (or about 3 months).\n",
+ "Answer in book is 97 days. It is because of considering different number of significant figure\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter7.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter7.ipynb
new file mode 100755
index 00000000..d2ec3573
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter7.ipynb
@@ -0,0 +1,184 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:941d1227ac7aa9effa28e8dff085c9a57de20e9b3739b331847ec9db08b77a32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Phase Diagram"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#alpha phase\n",
+ "#from diagram\n",
+ "Sn=10;\n",
+ "Pb=100-Sn;\n",
+ "\n",
+ "#result\n",
+ "print \"In alpha phase % of tin is\",Sn,\"and % of lead is\",Pb,\"in the alloy\"\n",
+ "\n",
+ "#beta phase\n",
+ "#from diagram\n",
+ "Sn=78\n",
+ "Pb=80-Sn;\n",
+ "\n",
+ "#result\n",
+ "print \"In alpha phase % of tin is\",Sn,\"and % of lead is\",Pb,\"in the alloy\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In alpha phase % of tin is 10 and % of lead is 90 in the alloy\n",
+ "In alpha phase % of tin is 78 and % of lead is 2 in the alloy\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "C1=40.0 # Overall alloy composition\n",
+ "Cb=98.0\n",
+ "Ca=10.0\n",
+ "rho_Sn=7.24 # density in g/cm^3 density of tin\n",
+ "rho_Pb=11.23 # density in g/cm^3 density of lead\n",
+ "Ca_Sn=10.0\n",
+ "Ca_Pb=90.0\n",
+ "Cb_Sn=98.0\n",
+ "Cb_Pb=2.0\n",
+ "\n",
+ "#part A\n",
+ "#calculation\n",
+ "Wa=(Cb-C1)/(Cb-Ca)\n",
+ "Wb=(C1-Ca)/(Cb-Ca)\n",
+ "\n",
+ "print\" Mass fraction for alpha and beta phases is %.2f\" %Wa,\"and %.2f respectively\" %Wb;\n",
+ "\n",
+ "#partB\n",
+ "rho_a=100.0/((Ca_Sn/rho_Sn)+(Ca_Pb/rho_Pb));\n",
+ "rho_b=100.0/((Cb_Sn/rho_Sn)+(Cb_Pb/rho_Pb));\n",
+ "Va=Wa/(rho_a*((Wa/rho_a)+(Wb/rho_b)));\n",
+ "Vb=Wb/(rho_b*((Wa/rho_a)+(Wb/rho_b)));\n",
+ "\n",
+ "#result\n",
+ "print\" Density of alpha phase is : %.2f g/cm^3\" %rho_a;\n",
+ "print\" Density of beta phase is : %.2f g/cm^3\" %rho_b;\n",
+ "print\" Volume fraction of alpha phase : %.2f\" %Va;\n",
+ "print\"Volume fraction of beta phase : %.2f\" %Vb;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass fraction for alpha and beta phases is 0.66 and 0.34 respectively\n",
+ " Density of alpha phase is : 10.64 g/cm^3\n",
+ " Density of beta phase is : 7.29 g/cm^3\n",
+ " Volume fraction of alpha phase : 0.57\n",
+ "Volume fraction of beta phase : 0.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "C0=0.35 # given composition\n",
+ "C_a=0.022 # given composition\n",
+ "C_Fe3C=6.7 # given composition\n",
+ "C_p=0.76 \n",
+ "\n",
+ "#partA\n",
+ "W_a=(C_Fe3C-C0)/(C_Fe3C-C_a)\n",
+ "W_Fe3C=(C0-C_a)/(C_Fe3C-C_a)\n",
+ "\n",
+ "#result\n",
+ "print\" Mass fraction of total ferrite phase is %.2f\" %W_a\n",
+ "print\" Mass fraction of cementide phase is %.2f\" %W_Fe3C\n",
+ "\n",
+ "#part B\n",
+ "Wp=(C0-C_a)/(C_p-C_a)\n",
+ "W_a1=(C_p-C0)/(C_p-C_a)\n",
+ "\n",
+ "#result\n",
+ "print\" Mass fraction of Pearlite is %.2f\" %Wp\n",
+ "print\" Mass fraction of proeutectoid ferrite is %.2f\" %W_a1\n",
+ "\n",
+ "#partC\n",
+ "Wae=W_a-W_a1\n",
+ "\n",
+ "#result\n",
+ "print\" Mass fraction of eutectoid ferrite : %.3f\" %Wae\n",
+ "print \"Answer in book is 0.39. It is due to considering different number of significant figure at intermediate steps\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass fraction of total ferrite phase is 0.95\n",
+ " Mass fraction of cementide phase is 0.05\n",
+ " Mass fraction of Pearlite is 0.44\n",
+ " Mass fraction of proeutectoid ferrite is 0.56\n",
+ " Mass fraction of eutectoid ferrite : 0.395\n",
+ "Answer in book is 0.39. It is due to considering different number of significant figure at intermediate steps\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter8.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter8.ipynb
new file mode 100755
index 00000000..3322fdff
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter8.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:783b082113265ae60cfb4489cd79045e3d5c6536cde6977fa8c47529de9b595d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Phase transformation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "Hf=-1.16*10**9 # Latent heat of fusion in J/m^3 \n",
+ "Y=0.132 # Surface energy in J/m^2\n",
+ "Tm=1064+273.0 # Melting point of gold in K \n",
+ "T=1064+273-230.0 # 230 is supercoiling value in K \n",
+ "a=0.413*10**-9 # Unit Cell edge length in m \n",
+ "n = 4.0 # Number of atoms in a FCC unit cell\n",
+ "\n",
+ "#part A\n",
+ "#calculation\n",
+ "r=-2*Y*Tm/(Hf*(Tm-T));\n",
+ "G=16*pi*Y**3*Tm**2/(3*Hf**2*(Tm-T)**2);\n",
+ "\n",
+ "#result\n",
+ "print\" Critical Radius is : %.2f nm\" %(r/10**-9);\n",
+ "print\" Activation free energy is : %.2e J\" %G \n",
+ "print \"Answer in book is 9.64e-19 J. It is due to approximation at intermediate stage\"\n",
+ "\n",
+ "#part B\n",
+ "u_c=4*pi*r**3/(3*a**3)\n",
+ "tot_uc = n*int(u_c) # Total no. of atoms per critical nucleus\n",
+ "\n",
+ "#result\n",
+ "print\" Unit cells per paricle are : %d\" %u_c;\n",
+ "print\" Total no. of atoms per critical nucleus are : %d\" %tot_uc;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Critical Radius is : 1.32 nm\n",
+ " Activation free energy is : 9.68e-19 J\n",
+ "Answer in book is 9.64e-19 J. It is due to approximation at intermediate stage\n",
+ " Unit cells per paricle are : 137\n",
+ " Total no. of atoms per critical nucleus are : 548\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#part A\n",
+ "t1=10\n",
+ "print \" At 350C the isothermic reaction begins time\",t1, \"s and reaches completion of about 500s completion time\"\n",
+ "\n",
+ "#partB\n",
+ "t2=150\n",
+ "print \" In this case it takes about time\",t2,\"s for the reaction to begin and so, at 100s the specimen is 100% austenite\"\n",
+ "\n",
+ "#partC\n",
+ "t3=7\n",
+ "print \"In this case reaction begins after time\",t3,\"s and at about 20s 50% of reaction is complete\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " At 350C the isothermic reaction begins time 10 s and reaches completion of about 500s completion time\n",
+ " In this case it takes about time 150 s for the reaction to begin and so, at 100s the specimen is 100% austenite\n",
+ "In this case reaction begins after time 7 s and at about 20s 50% of reaction is complete\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter9.ipynb b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter9.ipynb
new file mode 100755
index 00000000..15810b61
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/Chapter9.ipynb
@@ -0,0 +1,380 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bd57519428b9229220ba02c8db8befca7a7dcf4a4e7eb98b4822a1a5e1796522"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:Mechanical Properties of Metals"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin\n",
+ "E=110.0*10**3 #Young's modulus of Copper in MPa\n",
+ "sigma=276.0 #Applied stress in MPa\n",
+ "l_o=305.0 #Original length in mm\n",
+ "\n",
+ "#calculation\n",
+ "del_l=sigma*l_o/E #Deformation\n",
+ "\n",
+ "#result\n",
+ "print\" Elongation obtained is %.2f mm \\n\" %del_l\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Elongation obtained is 0.77 mm \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2 Page 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin, pi\n",
+ "del_d=-2.5*10**-3 #Deformation in diameter in mm\n",
+ "d_0=10.0 #Initial diameter in mm\n",
+ "v=0.34 #Poisson ratio for brass\n",
+ "E=97*10**3 #Modulus of elasticity in MPa\n",
+ "\n",
+ "#calculation\n",
+ "e_x=del_d/d_0 # Strain in x-direction\n",
+ "e_z=-e_x/v\n",
+ "sigma=e_z*E # Stress produced\n",
+ "F=sigma*pi*(d_0**2)/4\n",
+ "\n",
+ "#result\n",
+ "print\" Strain in x-direction is %.1e\" %e_x \n",
+ "print\" Strain in z-direction is %.2e\" %e_z\n",
+ "print\" Applied force is %d N\" %F\n",
+ "print \" Answer in book is 5600N. It is due to rounding off at intermediate steps\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Strain in x-direction is -2.5e-04\n",
+ " Strain in z-direction is 7.35e-04\n",
+ " Applied force is 5601 N\n",
+ " Answer in book is 5600N. It is due to rounding off at intermediate steps\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page 316"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin, pi, floor\n",
+ "sigma_2=150.0 # Stress at a point in MPa\n",
+ "sigma_1=0.0 # Stress at a point in MPa\n",
+ "epsilon_2=0.0016 # Strain at a point in MPa\n",
+ "epsilon_1=0.0 # Strain at a point in MPa\n",
+ "d_0=12.8*10**-3 #Initial Diameter in m\n",
+ "sigma=450.0*10**6 #tensile strength in MPa\n",
+ "l0=250.0; #Initial length in mm\n",
+ "e=0.06; #strain\n",
+ "\n",
+ "\n",
+ "# Part A\n",
+ "#calculation\n",
+ "E=(sigma_2-sigma_1)/(epsilon_2-epsilon_1) #Young's Modulus = stress/strain\n",
+ "\n",
+ "#result\n",
+ "print \" Modulus of elasticity is %.1f GPa which is very close to its true value 97 GPa\" %(E/10**3)\n",
+ "\n",
+ "# Part C\n",
+ "A_0=pi*d_0**2/4.0\n",
+ "F=sigma*A_0\n",
+ "dl=e*l0\n",
+ "\n",
+ "#result\n",
+ "print\" Maximum load sustained is %d N\" %(floor(F/10)*10)\n",
+ "\n",
+ "#part D\n",
+ "print\" Change in length is %d mm\" %dl;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Modulus of elasticity is 93.8 GPa which is very close to its true value 97 GPa\n",
+ " Maximum load sustained is 57900 N\n",
+ " Change in length is 15 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin, pi, floor\n",
+ "di=12.8 #Initial diameter in mm\n",
+ "df=10.7 #Final diameter in mm\n",
+ "sigma=460.0*10**6 #Tensile strength\n",
+ "\n",
+ "\n",
+ "# Part A\n",
+ "#calculation\n",
+ "RA = ((di**2-df**2)/di**2)*100 #Ductility in terms of Reduction Area \n",
+ "\n",
+ "#result\n",
+ "print\" Percent reduction in area is %d\" %RA\n",
+ "\n",
+ "# Part B\n",
+ "A_o=pi*di**2*10**-6/4.0\n",
+ "F=sigma*A_o \n",
+ "Af=pi*df**2/4 \n",
+ "sigma_t=F/Af \n",
+ "\n",
+ "#result\n",
+ "print\" True stress at failure is %d MPa\" %sigma_t \n",
+ "print \"Answer in book is 660. It is due to founding off at intermediate stage\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percent reduction in area is 30\n",
+ " True stress at failure is 658 MPa\n",
+ "Answer in book is 660. It is due to founding off at intermediate stage\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import acos, asin, sqrt, cos, sin, pi, floor, log\n",
+ "sigma_t=415.0 #True stress in MPa\n",
+ "et=0.1 #True strain\n",
+ "K=1035.0 # Bulk modulus in MPa\n",
+ "\n",
+ "#calculation\n",
+ "n=log(sigma_t/K)/log(et)\n",
+ "\n",
+ "#result\n",
+ "print\" Strain hardening coefficient is %.2f\" %n;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Strain hardening coefficient is 0.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "%pylab inline\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from math import acos, asin, sqrt, cos, sin, pi, floor, log\n",
+ "n=[0.0, 1.0, 2.0, 3.0, 4.0, 5.0]\n",
+ "T_S=[510.0, 520.0, 512.0, 515.0, 522.0, 530]\n",
+ "\n",
+ "#First and Last points are arbitrary to plot the required points\n",
+ "\n",
+ "#partA\n",
+ "plt.plot(n,T_S,'ro')\n",
+ "plt.xlabel('sample number')\n",
+ "plt.ylabel('Tensile Strength (Mpa)')\n",
+ "plt.title('Tensile Strength vs Sample Number')\n",
+ "plt.show()\n",
+ "\n",
+ "#Mean Tensile strength\n",
+ "i=2;\n",
+ "TS_mean=0;\n",
+ "\n",
+ "for i in range (1,5):\n",
+ " TS_mean=TS_mean+(T_S[i]/4);\n",
+ "\n",
+ "print \" Average tensile strength is %d MPa.\" %TS_mean;\n",
+ "#Standard Deviation\n",
+ "\n",
+ "#partB\n",
+ "j=0\n",
+ "std=0\n",
+ "\n",
+ "for i in range (1,5):\n",
+ " std=std+((T_S[i]-TS_mean)**2/(4.0-1))\n",
+ "\n",
+ "\n",
+ "print\" Standard deviation is %.1f MPa\" %(sqrt(std))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['sin', 'std', 'cos', 'sqrt', 'log', 'pi', 'floor']\n",
+ "`%matplotlib` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsyZtfQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa470a20>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Average tensile strength is 517 MPa.\n",
+ " Standard deviation is 4.6 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7 (Design Problem 9.1) Page 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "from math import acos, asin, sqrt, cos, sin, pi, floor, log\n",
+ "f = 220000.0 # Maximum load in N\n",
+ "sigma_y = 310.0 # Minimum field strength in MPa\n",
+ "sigma_t = 565.0 # Tensile strength strength in MPa\n",
+ "N= 5.0 # Factor of safety\n",
+ "\n",
+ "#calculation\n",
+ "sigma_w = sigma_y*1.0e6/N\n",
+ "d = 2*sqrt (f/(2*pi*sigma_w))# Calculation of diameter\n",
+ "\n",
+ "#result\n",
+ "print\" Diameter of each of two rods should be %.1f mm\" %(d*1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diameter of each of two rods should be 47.5 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/1.png b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/1.png
new file mode 100755
index 00000000..8ee1157b
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/1.png
Binary files differ
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/2.png b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/2.png
new file mode 100755
index 00000000..f1f2060c
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/2.png
Binary files differ
diff --git a/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/3.png b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/3.png
new file mode 100755
index 00000000..200b4e23
--- /dev/null
+++ b/Callister's_Material_Science_Adapted_by_R._Balasubramaniam/screenshots/3.png
Binary files differ
diff --git a/Chemistry/Chapter_1.ipynb b/Chemistry/Chapter_1.ipynb
deleted file mode 100755
index a288466b..00000000
--- a/Chemistry/Chapter_1.ipynb
+++ /dev/null
@@ -1,310 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chpater 1:Chemistry-The Study of Change"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.1,Page no:19"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "m=301;#mass of gold, g\n",
- "v=15.6;# volume of gold, cm**3\n",
- "\n",
- "#Calculation\n",
- "d=m/v;#density of gold, g/cm**3\n",
- "\n",
- "#Result\n",
- "print\"The density of gold is : \",round(d,1),\" g/cm**3\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The density of gold is : 19.3 g/cm**3\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 39
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.2,Page no:19"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "d=13.6;#density of mercury, g/ml\n",
- "v=5.50;# volume of mercury, ml\n",
- "\n",
- "#Calculation\n",
- "m=d*v;#mass of mercury, g\n",
- "\n",
- "#Result\n",
- "print\"The mass of mercury is : \",round(m,1),\" g\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of mercury is : 74.8 g\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 40
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.3,Page no:20"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "#Variable declaration\n",
- "C1=224.0#melting point of solder, C\n",
- "F=-452.0#boiling point of helium, F\n",
- "C3=-38.9#meltiing point of mercury, C\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "F1=(C1*(9.0/5.0)+32.0) #melting point of solder, F\n",
- "#(b)\n",
- "C2=(F-32.0)*5.0/9.0 #boiling point of helium, C\n",
- "#(c)\n",
- "K=C3+273.15#meltiing point of mercury, K\n",
- "\n",
- "#Result\n",
- "print\"(a) The melting point of solder is : \",round(F1),\" F\"\n",
- "print\"(b) The boiling point of helium is :\",round(C2),\"C\"\n",
- "print\"(c) The meltiing point of mercury is :\",round(K,1),\"K\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) The melting point of solder is : 435.0 F\n",
- "\n",
- "(b) The boiling point of helium is : -269.0 C\n",
- "\n",
- "(c) The meltiing point of mercury is : 234.2 K\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.5,Page no:25"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "A1=11254.1;#g\n",
- "B1=0.1983;#g\n",
- "A2=66.59;#L\n",
- "B2=3.113;#L\n",
- "A3=8.16;#m\n",
- "B3=5.1355;\n",
- "A4=0.0154;#kg\n",
- "B4=88.3;#mL\n",
- "A5=2.64*10**3;#cm\n",
- "B5=3.27*10**2;#cm\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "C1=A1+B1;#g\n",
- "#(b)\n",
- "C2=A2-B2;#L\n",
- "#(c)\n",
- "C3=A3*B3;#m\n",
- "#(d)\n",
- "C4=A4/B4;#kg/mL\n",
- "#(e)\n",
- "C5=A5+B5;#cm\n",
- "print\"(a) (\",round(A1,1),\"+\",round(B1,4),\")g=\",round(C1,1),\"g\\n\"\n",
- "print\"(b) (\",A2,\" -\",B2,\")L=\",round(C2,2),\"L\\n\"\n",
- "print\"(c) \",A3,\"m*\",B3,\"=\",C3,\"m =\",round(C3,1),\"m\\n\"\n",
- "print\"(d) \",A4,\" kg /\",B4,\" mL =\",C4,\"=\",round(C4,6),\"kg/mL=%.2e\"%round(C4,6),\"kg/mL\\n\"\n",
- "print\"(e) (\",(A5*10**-3),\"*10**3 + %.2f\"%(B5*10**-2),\"*10**2 )cm =\",(C5*10**-3),\"*10**3 cm\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) ( 11254.1 + 0.1983 )g= 11254.3 g\n",
- "\n",
- "(b) ( 66.59 - 3.113 )L= 63.48 L\n",
- "\n",
- "(c) 8.16 m* 5.1355 = 41.90568 m = 41.9 m\n",
- "\n",
- "(d) 0.0154 kg / 88.3 mL = 0.000174405436014 = 0.000174 kg/mL=1.74e-04 kg/mL\n",
- "\n",
- "(e) ( 2.64 *10**3 + 3.27 *10**2 )cm = 2.967 *10**3 cm\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 41
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.6,Page no:29"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "lb=0.0833;#pound mass, lb\n",
- "\n",
- "#Calculation\n",
- "g=lb*453.6;#pound mass to gram mass, 1lb=453.6g\n",
- "mg=1000*g;#gram to milligram\n",
- "\n",
- "#Result\n",
- "print\"The mass of glucose is :%.2e\"%mg,\"mg\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of glucose is :3.78e+04 mg\n"
- ]
- }
- ],
- "prompt_number": 51
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.7,Page no:30"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "L=5.2;#volume in litres\n",
- "\n",
- "#Calculation\n",
- "cc=1000*L;#litre to cm**3\n",
- "mc=cc/10**6;#cm**3 to m**3\n",
- "\n",
- "#Result\n",
- "print\"The volume of blood is %.1e\"%mc,\"m**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of blood is 5.2e-03 m**3\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:1.8,Page no:30"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "gpcc=0.808;#density in gram per cm**3\n",
- "\n",
- "#Calculation\n",
- "kgpmc=1000*gpcc;#g/cm**3 to kg/m**3, as 1000g=1kg and 1cm=10**-2 m\n",
- "\n",
- "#Result\n",
- "print\"The density of liquid nitrogen is :\",kgpmc,\"kg/m**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The density of liquid nitrogen is : 808.0 kg/m**3\n"
- ]
- }
- ],
- "prompt_number": 1
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_11.ipynb b/Chemistry/Chapter_11.ipynb
deleted file mode 100755
index 6d364ba0..00000000
--- a/Chemistry/Chapter_11.ipynb
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 11:Intermolecular Forces and Liquids and Solids"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:11.3,Page no:479"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "atoms=8*1.0/8.0+6*1.0/2.0 #atoms in a cell\n",
- "d=19.3 #density, g/cc\n",
- "Au=197.0 #mol mass of Au, g\n",
- "NA=6.022*10**23 #avogadro no.\n",
- "\n",
- "#Calculation\n",
- "m=atoms*Au/NA #mass of 1 cell, g\n",
- "V=m/d #volume, cc\n",
- "a=V**(1/3.0) #edge length, cm\n",
- "r=a/math.sqrt(8.0)/100.0 #radius in m\n",
- "\n",
- "#Result\n",
- "print\"The atomic radius of Au is :\",round(r*10**12),\"pm\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The atomic radius of Au is : 144.0 pm\n"
- ]
- }
- ],
- "prompt_number": 31
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:11.4,Page no:481"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "n=1.0 \n",
- "lamda=154 #wavelength, pm\n",
- "theta=19.3 #angle of reflection, degree\n",
- "\n",
- "#Calculation\n",
- "d=n*lamda/(2*math.sin(theta*math.pi/180.0)) #spacing between the planes\n",
- "\n",
- "#Result\n",
- "print\"The spacing between planes is :\",round(d),\"pm\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The spacing between planes is : 233.0 pm\n"
- ]
- }
- ],
- "prompt_number": 32
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:11.6,Page no:483"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Na=22.99 #mass of one atom of Na, amu\n",
- "Cl=35.45 #mass of one atom of Cl, amu\n",
- "NA=6.022*10**23 #avogadro no.\n",
- "\n",
- "#Calculation\n",
- "mass=4*(Na+Cl)/NA #mass in a unit cell in grams\n",
- "a=564*10**-10 #edge length, cm\n",
- "V=a**3 #volume of unit cell, cc\n",
- "d=mass/V #density in g/cc\n",
- "\n",
- "#Result\n",
- "print\"The density of NaCl is :\",round(d,2),\"g/cm**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The density of NaCl is : 2.16 g/cm**3\n"
- ]
- }
- ],
- "prompt_number": 33
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:11.7,Page no:492"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "P1=401.0 #vapor pressure at 18C, mm Hg\n",
- "T1=18.0+273.0 #temperature, K\n",
- "T2=32.0+273.0 #temperature, K\n",
- "deltaH=26000.0 #heat of vaporisation, J/mol\n",
- "R=8.314 #gas constant, J/K.mol\n",
- "\n",
- "#Calculation\n",
- "X=deltaH/R*(T1-T2)/(T1*T2) \n",
- "P2=401*math.exp(-X) #vapor pressure at 32C, mmHg(from ln(P1/P1)=deltaH/R*((T1-T2)/(T1*T2)))\n",
- "\n",
- "#Result\n",
- "print\"The pressure at 32 C is \",round(P2,1),\"mm Hg\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The pressure at 32 C is 656.7 mm Hg\n"
- ]
- }
- ],
- "prompt_number": 34
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:11.8,Page no:497"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "m=346 #mass of H2O in g\n",
- "s=4.184 #specific heat of H2O, J/g C\n",
- "deltaH=40.79 #heat of vaporisation in kJ\n",
- "H2O=18.02 #mol mass of H2O, g\n",
- "s2=1.99 #specific heat of steam, J/g C\n",
- "\n",
- "#Calculation\n",
- "#from 0 to 100 C\n",
- "deltaT=100.0-0.0 #change in Temp, C\n",
- "q1=round((m*s*deltaT)/1000.0) #heating H2O, kJ\n",
- "#for evaporation at 100 C\n",
- "deltaT2=182-100 #change in temp of steam, kJ\n",
- "q2=round(m*deltaH/H2O) #heat of vaporising water, kJ\n",
- "#for steam from 100 to 182 C\n",
- "q3=round(m*s2*deltaT2/1000.0,1) #heating steam, kJ\n",
- "q=round(q1)+round(q2)+round(q3,1) #overall energy required, kJ\n",
- "\n",
- "\n",
- "#Result\n",
- "print\"The overall energy required is :\",round(q),\"kJ\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The overall energy required is : 985.0 kJ\n"
- ]
- }
- ],
- "prompt_number": 15
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_12.ipynb b/Chemistry/Chapter_12.ipynb
deleted file mode 100755
index c565711d..00000000
--- a/Chemistry/Chapter_12.ipynb
+++ /dev/null
@@ -1,446 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 12:Physical Properties of Solutions"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.2,Page no:518"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "msolute=0.892 #mass of solute, g\n",
- "msolvent=54.6 #mass of solvent, g\n",
- "\n",
- "#Calculation\n",
- "percent=msolute/(msolute+msolvent)*100 #concentration, percent by mass\n",
- "\n",
- "#Result\n",
- "print\"The concentration of KCl solution by mass is :\",round(percent,2),\"%\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The concentration of KCl solution by mass is : 1.61 %\n"
- ]
- }
- ],
- "prompt_number": 39
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.3,Page no:518"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration \n",
- "mass=24.4 #mass of H2SO4, g\n",
- "M=98.09 #mol maass of H2SO4, g\n",
- "\n",
- "#Calculation\n",
- "n=mass/M #moles of H2SO4\n",
- "massH2O=0.198 #mass of H2O, kg\n",
- "m=n/massH2O #molality of H2SO4, molal\n",
- "\n",
- "#Result\n",
- "print\"The molality of sulfuric acid solution is :\",round(m,2),\"m\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molality of sulfuric acid solution is : 1.26 m\n"
- ]
- }
- ],
- "prompt_number": 40
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.4,Page no:520"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#considering 1L solution\n",
- "msolution=976 #mass of solution, g\n",
- "n=2.45 #moles\n",
- "CH3OH=32.04 #mol. mass of CH3OH, g\n",
- "\n",
- "#Calculation\n",
- "msolute=n*CH3OH #mass of solute, g\n",
- "msolvent=(msolution-msolute)/1000 #mass of solvent, kg\n",
- "m=n/msolvent #molality, molal\n",
- "\n",
- "#Result\n",
- "print\"The molality of CH3OH solution is :\",round(m,2),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molality of CH3OH solution is : 2.73 m\n"
- ]
- }
- ],
- "prompt_number": 41
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.5,Page no:520"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#considering 100g of solution\n",
- "percent=35.4 #mass percent of H3PO4\n",
- "H3PO4=97.99 #mol mass of H3PO4\n",
- "\n",
- "#Calculation\n",
- "n=percent/H3PO4 #moles of H3PO4\n",
- "mH2O=(100-percent)/1000 #mass of solvent\n",
- "m=n/mH2O #molality of H3PO4, molal\n",
- "\n",
- "#Result\n",
- "print\"the molality of H3PO4 solution is :\",round(m,2),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "the molality of H3PO4 solution is : 5.59 m\n"
- ]
- }
- ],
- "prompt_number": 32
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.6,Page no:525"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "c=6.8*10**-4 #solubility of N2 in water, M\n",
- "P=1 #pressure, atm\n",
- "\n",
- "#Calculation\n",
- "k=c/P #henry's constant\n",
- "#for partial pressure of N2=0.78atm\n",
- "P=0.78 #partial pressure of N2, atm\n",
- "c=k*P #solubility of N2, M\n",
- "\n",
- "#Result\n",
- "print\"The solubility of N2 gas in water is :%.1e\"%c,\"M\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The solubility of N2 gas in water is :5.3e-04 M\n"
- ]
- }
- ],
- "prompt_number": 42
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.7,Page no:527"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "H2O=18.02 #mol mass of H2O, g\n",
- "V=460 #volume of water, mL\n",
- "glucose=180.2 #mol. mass of glucose, g\n",
- "mass=218 #mass of gllucose, g\n",
- "\n",
- "#Calculation\n",
- "n1=V/H2O #moles of water\n",
- "n2=mass/glucose #moles of glucose\n",
- "x1=n1/(n1+n2) #mole fraction of water\n",
- "P=31.82 #vapor pressure of pure water, mmHg\n",
- "P1=x1*P #vapor pressure afteraddition of glucose, mmHg\n",
- "#Result\n",
- "print\"Vapor pressure is:\",round(P1,1),\"mm Hg\"\n",
- "print\"The vapor pressure lowering is :\",round(P-P1,1),\"mmHg\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Vapor pressure is: 30.4 mm Hg\n",
- "The vapor pressure lowering is : 1.4 mmHg\n"
- ]
- }
- ],
- "prompt_number": 43
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.8,Page no:532"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "mH2O=2.505 #mass of H2O, kg\n",
- "mEG=651 #mass of EG, g\n",
- "EG=62.07 #mol mass of EG, g\n",
- "\n",
- "#Calculation\n",
- "n=mEG/EG #moles of EG\n",
- "m=n/mH2O #molality of EG\n",
- "Kf=1.86 #molal freezing point depression constant, C/m\n",
- "deltaTf=Kf*m #depression in freezing point, C\n",
- "Kb=0.52 #molal boiling point elevation constant, C/m\n",
- "deltaTb=Kb*m #elevation in boiling point, C\n",
- "\n",
- "#Result\n",
- "print\"The depression in freezing point is\",round(deltaTf,2),\"C\"\n",
- "print\"Elevation in boiling point is :\",round(deltaTb,1),\"C\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The depression in freezing point is 7.79 C\n",
- "Elevation in boiling point is : 2.2 C\n"
- ]
- }
- ],
- "prompt_number": 44
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.9,Page no:536"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "pie=30 #osmotic pressure, atm\n",
- "R=0.0821 #gas constant, L atm/K mol\n",
- "T=298 #temp., K\n",
- "\n",
- "#Calculation\n",
- "M=pie/(R*T) #molar concentration, M\n",
- "\n",
- "#Result\n",
- "print\"The molar concentration is :\",round(M,2),\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molar concentration is : 1.23 M\n"
- ]
- }
- ],
- "prompt_number": 45
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.10,Page no:537"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "deltaTf=1.05 #depression in freezing point, C\n",
- "Kf=5.12 #molal freezing point depression constant\n",
- "\n",
- "#Calculation\n",
- "m=deltaTf/Kf #molality of solution, molal\n",
- "mbenzene=301/1000.0 #mass of benzene, kg\n",
- "n=m*mbenzene #moles of sapmle\n",
- "msample=7.85 #mass of sample, g\n",
- "molarmass=msample/n #molar mass of sample, g/mol\n",
- "\n",
- "#Result\n",
- "print\"The molar mass of the sample is :\",round(molarmass),\"g/mol \""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molar mass of the sample is : 127.0 g/mol \n"
- ]
- }
- ],
- "prompt_number": 46
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.11,Page no:538"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "R=0.0821 #gas constant, L atm/K mol\n",
- "T=298 #temp, K\n",
- "pie=10/760.0 #osmotic pressure, atm\n",
- "\n",
- "#Calculation\n",
- "M=pie/(R*T) #molarity of the solution, M\n",
- "#taking 1L of solution\n",
- "mass=35 #mass of Hg, g\n",
- "n=M #moles\n",
- "molarmass=mass/n #molar mass of hemoglobin, g/mol\n",
- "\n",
- "#Result\n",
- "print\"The molar mass of the hemoglobin is :%.2e\"%molarmass,\"g/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molar mass of the hemoglobin is :6.51e+04 g/mol\n"
- ]
- }
- ],
- "prompt_number": 47
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:12.12,Page no:540"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "R=0.0821 #gas constant, L atm/K mol\n",
- "T=298 #temp, K\n",
- "pie=0.465 #osmotic pressure, atm\n",
- "M=0.01 #molarity of the solution, M\n",
- "\n",
- "#Calculation\n",
- "i=pie/(M*R*T) #vant hoff factor of KI\n",
- "\n",
- "#Result\n",
- "print\"The vant hoff factor of KI at 25 C is :\",round(i,2)\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The vant hoff factor of KI at 25 C is : 1.9\n"
- ]
- }
- ],
- "prompt_number": 48
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_13.ipynb b/Chemistry/Chapter_13.ipynb
deleted file mode 100755
index a9fd074d..00000000
--- a/Chemistry/Chapter_13.ipynb
+++ /dev/null
@@ -1,441 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 13:Chemical Kinetics"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.2,Page no:564"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "dO2=-0.024 #rate of reaction of O2, M/s\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "dN2O5=-2*dO2 #rate of formation of N2O5, M/s\n",
- "#(b)\n",
- "dNO2=4*dO2 #rate of reaction of NO2, M/s\n",
- "\n",
- "#Result\n",
- "print\"(a).The rate of formation of N2O5 is :\",dN2O5,\"M/s\"\n",
- "print\"(b).The rate of reaction of NO2 is :\",dNO2,\"M/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a).The rate of formation of N2O5 is : 0.048 M/s\n",
- "(b).The rate of reaction of NO2 is : -0.096 M/s\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.3,Page no:568"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "NO1=5*10**-3 #conc of NO from 1st experiment, M\n",
- "H21=2*10**-3 #conc of H2 from 1st experiment, M\n",
- "r1=1.3*10**-5 #initial rate from 1st experiment, M/s\n",
- "NO2=10*10**-3 #conc of NO from 2nd experiment, M\n",
- "H22=2*10**-3 #conc of H2 from 2nd experiment, M\n",
- "r2=5*10**-5 #initial rate from 1st experiment, M/s\n",
- "NO3=10*10**-3 #conc of NO from 3rd experiment, M\n",
- "H23=4*10**-3 #conc of H2 from 3rd experiment, M\n",
- "r3=10*10**-5 #initial rate from 3rd experiment, M/s\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "#(a)\n",
- "#r=k*NO**x*H2**y, dividing r2/r1 and r3/r2\n",
- "x=math.log(r2/r1)/math.log(NO2/NO1) #since H21=H22\n",
- "y=math.log(r3/r2)/math.log(H23/H22) #since NO3=NO2\n",
- "x=round(x) \n",
- "y=round(y) \n",
- "#(b)\n",
- "k=r2/((NO2)**x*H22**y) #rate constant, /M**2 s\n",
- "#(c)\n",
- "NO=12*10**-3 #conc of NO, M\n",
- "H2=6*10**-3 #conc of H2, M\n",
- "rate=k*(NO**x)*H2**y #rate, M/s\n",
- "\n",
- "#Result\n",
- "print\"(a) the rate of reaction is : r=k[NO]**\",x,\"*[H2]**\",y\n",
- "print\"(b) the rate constant of the reaction is :%.1e\"%k,\" /M**2 s\" \n",
- "print\"(c) the rate of reaction at given concentration is :%.1e\"%rate,\" M/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the rate of reaction is : r=k[NO]** 2.0 *[H2]** 1.0\n",
- "(b) the rate constant of the reaction is :2.5e+02 /M**2 s\n",
- "(c) the rate of reaction at given concentration is :2.2e-04 M/s\n"
- ]
- }
- ],
- "prompt_number": 72
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.4,Page no:571"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "t=8.8*60 #time, s\n",
- "k=6.7*10**-4 #rate constant, s-1\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "#(a)\n",
- "Ao1=0.25 #initial conc, M\n",
- "A1=math.exp(-k*t+math.log(Ao1)) #final conc, M\n",
- "#(b)\n",
- "A2=0.15 #initial conc, M\n",
- "Ao2=0.25 #final conc, M\n",
- "t2=-math.log(A2/Ao2)/(60*k) #time, min\n",
- "#(c)\n",
- "percent=74.0 \n",
- "#let initial conc be 1\n",
- "Ao3=1.0 #initial conc, M\n",
- "A3=1.0-percent/100.0 #final conc, M\n",
- "t3=-math.log(A3/Ao3)/(k*60.0) #time, min\n",
- "print\"(a) the concentration of cyclopropane at given time is :\",round(A1,2),\"M\"\n",
- "print\"(b) the time required is :\",round(t2),\"min\"\n",
- "print\"(c) the time required for required conversion is :%.1f\"%t3,\"min(approx)\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the concentration of cyclopropane at given time is : 0.18 M\n",
- "(b) the time required is : 13.0 min\n",
- "(c) the time required for required conversion is :33.5 min(approx)\n"
- ]
- }
- ],
- "prompt_number": 75
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.5,Page no:573"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "t=[0,100,150,200,250,300] #time(data given), s\n",
- "P=[284.0,220.0,193.0,170.0,150.0,132.0] #pressure(data given) in mmHg corresponding to time values\n",
- "lnP=[0,0,0,0,0,0]\n",
- "\n",
- "#Calculation\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "from pylab import *\n",
- "%matplotlib inline\n",
- "lnP=numpy.log(P) #lnP values corresponding to P\n",
- "A=plot(t,lnP)\n",
- "plt.xlim(0,350)\n",
- "plt.ylim(4.8,5.8)\n",
- "plt.ylabel('$ln Pt$')\n",
- "plt.xlabel('$t(s)$')\n",
- "plt.title('Plot of ln Pt versus time for the decomposition of azomethane\\n')\n",
- "slope=np.polyfit(t,lnP,1)\n",
- "k=-slope[0]\n",
- "\n",
- "#Result\n",
- "show(A)\n",
- "print\"The rate constant for the decomposition is :%.2e\"%k,\"s**-1\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'linalg', 'info']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "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\nbACx9wAAAABJRU5ErkJggg==\n",
- "text": [
- "<matplotlib.figure.Figure at 0x856d978>"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The rate constant for the decomposition is :2.55e-03 s**-1\n"
- ]
- }
- ],
- "prompt_number": 76
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.6,Page no:576"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "k=5.36*10**-4 #rate constant, s-1\n",
- "\n",
- "#Calculation\n",
- "t_half=0.693/(60*k) #half life of the reaction, min\n",
- "\n",
- "#Result\n",
- "print\"The half life for the decomposition of ethane is :\",round(t_half,1),\"min\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The half life for the decomposition of ethane is : 21.5 min\n"
- ]
- }
- ],
- "prompt_number": 77
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.7,Page no:578"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "k=7*10**9 #rate constant, M s\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "t=2*60 #half life of the reaction, s\n",
- "Ao1=0.086 \n",
- "A1=(k*t+1/Ao1)**-1 \n",
- "#(b)\n",
- "Ao2=0.6 \n",
- "t_half2=1/(Ao2*k) #half life of the reaction, s\n",
- "Ao3=0.42 \n",
- "t_half3=1/(Ao3*k) #half life of the reaction, s\n",
- "\n",
- "#Result\n",
- "print\"(a.)The concentration of I is :%.1e\"%A1,\"M\"\n",
- "print\"(b.)The half life for Io=0.6 is :%.1e\"%t_half2,\"s\"\n",
- "print\" The half life for Io=0.42 is :%.1e\"%t_half3,\"s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a.)The concentration of I is :1.2e-12 M\n",
- "(b.)The half life for Io=0.6 is :2.4e-10 s\n",
- " The half life for Io=0.42 is :3.4e-10 s\n"
- ]
- }
- ],
- "prompt_number": 79
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.8,Page no:584"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "T=[700.0,730.0,760.0,790.0,810.0] #temperature(data given), K\n",
- "R=8.314 #gas constant, kJ/mol\n",
- "k=[0.011,0.035,0.105,0.343,0.789] #rate constant(data given) in 1/M**1/2 s corresponding to temperature values\n",
- "\n",
- "#Calculation\n",
- "x=numpy.reciprocal(T) #1/T values corresponding to Temp values above, K-1\n",
- "x=numpy.round(x,5)\n",
- "import math\n",
- "import numpy\n",
- "from pylab import *\n",
- "%matplotlib inline\n",
- "lnk=numpy.log(k) #lnk values corresponding to k\n",
- "lnk[0]=numpy.round(lnk[0],2)\n",
- "lnk[1]=numpy.round(lnk[1],2)\n",
- "lnk[2]=numpy.round(lnk[2],3)\n",
- "lnk[3]=numpy.round(lnk[3],3)\n",
- "lnk[4]=numpy.round(lnk[4],3)\n",
- "A=plot(x,lnk,marker='o', linestyle='-')\n",
- "plt.xlim(1.2*10**-3,1.45*10**-3)\n",
- "plt.ylim(-5.0,0.0)\n",
- "plt.ylabel('$ln k$')\n",
- "plt.xlabel('$1/T(K^-1)$')\n",
- "plt.title('Plot of ln k versus 1/T\\n')\n",
- "slope=np.polyfit(x,lnk,1)\n",
- "Ea=-slope[0]*R #activation energy, kJ/mol\n",
- "\n",
- "#Result\n",
- "show(A)\n",
- "print\"The activation energy for the decomposition is :%.3e\"%(Ea/1000),\"kJ/mol\"\n",
- "print\"NOTE:Slope is approximately calculated in book,that's why wrong answer\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'linalg', 'info']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "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\ngieeAAAAAElFTkSuQmCC\n",
- "text": [
- "<matplotlib.figure.Figure at 0x8535d30>"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The activation energy for the decomposition is :1.797e+02 kJ/mol\n",
- "NOTE:Slope is approximately calculated in book,that's why wrong answer\n"
- ]
- }
- ],
- "prompt_number": 80
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:13.9,Page no:586"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "k1=3.46*10**-2 #rate constant at T1\n",
- "T1=298 #temp K\n",
- "T2=350 #temp K\n",
- "R=8.314 #gas constant,J/K mol\n",
- "Ea=50.2*1000 #activation energy, J/mol\n",
- "\n",
- "#Calculation\n",
- "k2=k1/math.exp(Ea/R*(T1-T2)/(T1*T2)) #from equation ln(k1/k2)=Ea*(T1-T2)/(T1*T2*R), S-1\n",
- "\n",
- "#Result\n",
- "print\"The rate constant at temp 350 is :\",round(k2,3),\"s**-1\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The rate constant at temp 350 is : 0.702 s**-1\n"
- ]
- }
- ],
- "prompt_number": 81
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_14.ipynb b/Chemistry/Chapter_14.ipynb
deleted file mode 100755
index 29fa23a9..00000000
--- a/Chemistry/Chapter_14.ipynb
+++ /dev/null
@@ -1,359 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 14:Chemical Equilibrium"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.2,Page no:622"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "NO=0.0542 #equilibrium conc of NO, M\n",
- "O2=0.127 #equilibrium conc of O2, M\n",
- "NO2=15.5 #equilibrium conc of NO2, M\n",
- "\n",
- "#Calculation\n",
- "Kc=NO2**2/(O2*NO**2) #equilibrium constant for given reaction\n",
- "\n",
- "#Result\n",
- "print\"The value of the equilibrium constant of the reaction is %.2e\"%Kc\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The value of the equilibrium constant of the reaction is 6.44e+05\n"
- ]
- }
- ],
- "prompt_number": 20
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.3,Page no:623"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "PCl3=0.463 #equilibrium pressure of PCl3, atm\n",
- "PCl5=0.875 #equilibrium pressure of PCl5, atm\n",
- "Kp=1.05 #equilibrium constant of the reaction\n",
- "\n",
- "#Calculation\n",
- "Cl2=Kp*PCl5/PCl3 #equilibrium pressure of Cl2 in atm, formula from the definition of equilibrium constant\n",
- "\n",
- "#Result\n",
- "print\"The value of the equilibrium pressure of the Cl2 gas is :\",round(Cl2,2),\"atm\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The value of the equilibrium pressure of the Cl2 gas is : 1.98 atm\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.4,Page no:623"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Kc=10.5 \n",
- "delta_n=1-3 \n",
- "T=273+220 \n",
- "\n",
- "#Calculation\n",
- "Kp=Kc*(0.0821*T)**delta_n \n",
- "\n",
- "#Result\n",
- "print\"The value of the equilibrium constant of the reaction is :%.2e\"%Kp"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The value of the equilibrium constant of the reaction is :6.41e-03\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.6,Page no:626"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "CO2=0.236 #pressure of CO2 gas, atm\n",
- "T=273+800 \n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "Kp=CO2 \n",
- "#(b)\n",
- "delta_n=1 \n",
- "Kc=Kp*(0.0821*T)**-delta_n \n",
- "\n",
- "#Result\n",
- "print\"(a) the value of Kp of the reaction is :\",Kp\n",
- "print\"(b) the value of Kc of the reaction is %.2e\"%Kc"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the value of Kp of the reaction is : 0.236\n",
- "(b) the value of Kc of the reaction is 2.68e-03\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.8,Page no:633"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Kc=1.2 #equilibrium constant for the reaction\n",
- "N2=.249/3.5 #conc of N2, M\n",
- "H2=(3.21*10**-2)/3.5 #conc of H2, M\n",
- "NH3=(6.42*10**-4)/3.5 #conc of NH3, M\n",
- "\n",
- "#Calculation\n",
- "Qc=NH3**2/(N2*H2**3) #reaction quotient initial\n",
- "print\"Qc=\",round(Qc,3),\"(approx)\"\n",
- "\n",
- "#Result\n",
- "if(Qc==Kc):\n",
- " d=\"the system is in equilibrium\" \n",
- "elif(Qc<Kc):\n",
- " d=\"the system is not in equilibrium and the reaction will move from left to right\" \n",
- "else:\n",
- " d=\"the system is not in equilibrium and the reaction will move from right to left\" \n",
- "print d"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Qc= 0.613 (approx)\n",
- "the system is not in equilibrium and the reaction will move from left to right\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.9,Page no:635"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Kc=54.3 \n",
- "H2i=0.5 #initial moles of H2\n",
- "I2i=0.5 #initial moles of I2\n",
- "\n",
- "#Calculation\n",
- "#Let us assume that x moles have reacted, so, HI=2x, H2=0.5-x, I2=0.5-x, when we substitute in Kc=(HI)**2/(H2)*(I2) we get 54.3=(2x)**2/((0.5-x)*(0.5-x)) taking root we get 7.37=2*x/0.5-x\n",
- "x=0.393 #from the above equation\n",
- "H2=0.5-x \n",
- "I2=0.5-x \n",
- "HI=2*x \n",
- "\n",
- "#Result\n",
- "print\"The equilibrium concentration of H2 is :\",H2,\"M\" \n",
- "print\"The equilibrium concentration of I2 is :\",I2,\"M\"\n",
- "print\"The equilibrium concentration of HI is :\",HI,\"M\" "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The equilibrium concentration of H2 is : 0.107 M\n",
- "The equilibrium concentration of I2 is : 0.107 M\n",
- "The equilibrium concentration of HI is : 0.786 M\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.10,Page no:636"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "Kc=54.3 \n",
- "HIo=0.0224 \n",
- "H2o=0.00623 \n",
- "I2o=0.00414 \n",
- "#let us assume that x moles have reacted, so, HI=HIo+2x, H2=0.00623-x, I2=0.00414-x, when we substitute in Kc=(HI)**2/(H2)*(I2) we get 54.3=(2x+0.0224)**2/((0.00623-x)*(0.00414-x)) simplifying we get 50.3x**2-0.654x+8.98*10**-4=0\n",
- "a=50.3 \n",
- "b=-0.654 \n",
- "c=8.98*10**-4 \n",
- "\n",
- "#Calculation\n",
- "x1=(-b+math.sqrt(b**2-4*a*c))/(2*a) \n",
- "x2=(-b-math.sqrt(b**2-4*a*c))/(2*a) \n",
- "if(x1>I2o):\n",
- " x=x2 \n",
- "else:\n",
- " x=x1 \n",
- "H2=0.00623-x \n",
- "I2=0.00414-x \n",
- "HI=2*x+0.0224 \n",
- "\n",
- "#Result\n",
- "print\"The equilibrium concentration of H2 is :\",round(H2,5),\"M\"\n",
- "print\"The equilibrium concentration of I2 is :\",round(I2,5),\"M\"\n",
- "print\"The equilibrium concentration of HI is :\",round(HI,4),\"M\" "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The equilibrium concentration of H2 is : 0.00467 M\n",
- "The equilibrium concentration of I2 is : 0.00258 M\n",
- "The equilibrium concentration of HI is : 0.0255 M\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:14.11,Page no:639"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Kc=2.37*10**-3 #equilibrium constant for the reaction\n",
- "N2=0.683 #conc of N2, M\n",
- "H2=8.8 #conc of H2, M\n",
- "NH3=3.65 #conc of NH3, M\n",
- "\n",
- "#Calculation\n",
- "Qc=NH3**2/(N2*H2**3) #reaction quotient initial\n",
- "print\"Qc=%.2e\"%Qc\n",
- "\n",
- "#Result\n",
- "if(Qc==Kc):\n",
- " d=\"the system is in equilibrium\" \n",
- "elif(Qc<Kc):\n",
- " d=\"the system is not in equilibrium and the reaction will move from left to right\" \n",
- "else:\n",
- " d=\"the system is not in equilibrium and the reaction will move from right to left\" \n",
- "print d\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Qc=2.86e-02\n",
- "the system is not in equilibrium and the reaction will move from right to left\n"
- ]
- }
- ],
- "prompt_number": 3
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_15.ipynb b/Chemistry/Chapter_15.ipynb
deleted file mode 100755
index fe8c12e3..00000000
--- a/Chemistry/Chapter_15.ipynb
+++ /dev/null
@@ -1,472 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 15:Acids and Bases"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.2,Page no:662"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "OH=0.0025 # [OH-] ion concentration, M\n",
- "Kw=1*10**-14 # ionic product of water, M**2\n",
- "#Calculation\n",
- "H=Kw/OH # From the formula (ionic product)Kw=[H+]*[OH-]\n",
- "#Result\n",
- "print\"The [H+] ion concentration of the solution is :\",H,\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The [H+] ion concentration of the solution is : 4e-12 M\n"
- ]
- }
- ],
- "prompt_number": 42
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.3,Page no:665"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "H1=3.2*10**-4 #Concentration of [H+] ion on first occasion,\n",
- "H2=1*10**-3 #Concentration of [H+] ion on second occasion, M\n",
- "\n",
- "#Calculation\n",
- "pH1=-math.log10(H1) #from the definition of pH\n",
- "pH2=-math.log10(H2) #from the definition of pH\n",
- "\n",
- "#Result\n",
- "print\"pH of the solution on first occasion is:\",round(pH1,2)\n",
- "print\"pH of the solution on second occasion is :\",pH2\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "pH of the solution on first occasion is: 3.49\n",
- "pH of the solution on second occasion is : 3.0\n"
- ]
- }
- ],
- "prompt_number": 43
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.4,Page no:665"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "pH=4.82 #Given\n",
- "\n",
- "#Calculation\n",
- "H=10**(-pH) #Concentration of [H+] ion, M, formula from the definition of pH\n",
- "\n",
- "#Result\n",
- "print\"The [H+] ion concentration of the solution is :%.1e\"%H,\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The [H+] ion concentration of the solution is :1.5e-05 M\n"
- ]
- }
- ],
- "prompt_number": 23
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.5,Page no:666"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "OH=2.9*10**-4 #Concentration of [OH-] ion, M\n",
- "#Calculation\n",
- "pOH=-math.log10(OH) #by definition of p(OH)\n",
- "pH=14-pOH \n",
- "#Result\n",
- "print\"\\t the pH of the solution is :\",round(pH,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\t the pH of the solution is : 10.46\n"
- ]
- }
- ],
- "prompt_number": 44
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.6,Page no:669"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "ConcHCl=1*10**-3 #Concentration of HCl solution, M\n",
- "ConcBaOH2=0.02 #Concentration of Ba(OH)2 solution, M\n",
- "\n",
- "#Calculation\n",
- "#for HCL solution\n",
- "H=ConcHCl #Concentration of [H+] ion after ionisation of HCl\n",
- "pH=-math.log10(H) \n",
- "#for Ba(OH)2 solution\n",
- "OH=ConcBaOH2*2 #Concentration of [OH-] ion after ionisation of Ba(OH)2 as two ions are generated per one molecule of Ba(OH)2\n",
- "pOH=-math.log10(OH) \n",
- "pH2=14-pOH \n",
- "\n",
- "#Result\n",
- "print\"(a). The pH of the HCl solution is :\",pH\n",
- "print\"(b). The pH of the Ba(OH)2 solution is :\",round(pH2,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a). The pH of the HCl solution is : 3.0\n",
- "(b). The pH of the Ba(OH)2 solution is : 12.6\n"
- ]
- }
- ],
- "prompt_number": 45
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.8,Page no:675"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "#Variable declaration\n",
- "InitHNO2=0.036 #Initial concentration of HNO2 solution, M\n",
- "#Let 'x' be the equilibrium concentration of the [H+] and [NO2-] ions, M\n",
- "Ka=4.5*10**-4 #ionisation constant of HNO2, M\n",
- "\n",
- "#Calculation\n",
- "x=math.sqrt(Ka*InitHNO2) #from the definition of ionisation constant Ka=[H+]*[NO2-]/[HNO2]=x*x/(0.036-x), which reduces to x*x/0.036, as x<<InitHNO2 (approximation)\n",
- "approx=x/InitHNO2*100 #this is the percentage of approximation taken. if it is more than 5%, we will be having higher deviation from correct value\n",
- "if(approx>5):\n",
- " x1=(-Ka+math.sqrt((Ka**2)-(-4*1*Ka*InitHNO2)))/(2*1) \n",
- " x2=(-Ka-math.sqrt((Ka**2)-(-4*1*Ka*InitHNO2)))/(2*1) \n",
- " if(x1>0):\n",
- " x=x1 \n",
- " else :\n",
- " x=x2 \n",
- "pH=-math.log10(x) #since x is the conc. of [H+] ions\n",
- "\n",
- "#Result\n",
- "print\"The pH of the HNO2 solution is :\",round(pH,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The pH of the HNO2 solution is : 2.42\n"
- ]
- }
- ],
- "prompt_number": 47
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.9,Page no:676"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "pH=2.39 # pH of the HCOOH acid solution\n",
- "InitHCOOH=0.1 #initial concentration of the solution\n",
- "\n",
- "#Calculation\n",
- "H=10**(-pH) #[H+] ion concentration from the definition of pH, M\n",
- "HCOO_=H #[HCOO-] ion concentration,M\n",
- "HCOOH=InitHCOOH-H #HCOOH concentration in M\n",
- "Ka=(H*HCOO_)/(HCOOH) #ionisation constant of the acid, M, Ka=[H+]*[HCOO-]/[HCOOH]\n",
- "\n",
- "#Result\n",
- "print\"The ionisation constant of the given solution is :%.2e\"%Ka,\"M(approx)\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The ionisation constant of the given solution is :1.73e-04 M(approx)\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.10,Page no:678"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "InitNH3=0.4 #Initial concentration of NH3 solution, M\n",
- "#Let 'x' be the equilibrium concentration of the [OH-] and [NH4+] ions, M\n",
- "Kb=1.8*10**-5 #ionisation constant of NH3, M\n",
- "\n",
- "#Calculation\n",
- "x=math.sqrt(Kb*InitNH3) #from the definition of ionisation constant Kb=[OH-]*[NH4+]/[NH3]=x*x/(InitNH3-x), which reduces to x*x/InitNH3, as x<<InitNH3 (approximation)\n",
- "approx=x/InitNH3*100 #this is the percentage of approximation taken. if it is more than 5%, we will be having higher deviation from correct value\n",
- "if(approx>5):\n",
- " x1=(-Kb+math.sqrt((Kb**2)-(-4*1*Kb*InitNH3)))/(2*1) \n",
- " x2=(-Kb-math.sqrt((Kb**2)-(-4*1*Kb*InitNH3)))/(2*1) \n",
- " if(x1>0):#as only one root is positive\n",
- " x=x1 \n",
- " else:\n",
- " x=x2 \n",
- "pOH=-math.log10(x) #since x is the conc. of [H+] ions\n",
- "pH=14-pOH \n",
- "\n",
- "#Result\n",
- "print\"The pH of the NH3 solution is :\",round(pH,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The pH of the NH3 solution is : 11.43\n"
- ]
- }
- ],
- "prompt_number": 49
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.11,Page no:682"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "InitC2H2O4=0.1 #Initial concentration of C2H2O4 solution, M\n",
- "#Let 'x1' be the equilibrium concentration of the [H+] and [C2HO4-] ions, M\n",
- "#First stage of ionisation\n",
- "import math\n",
- "Kw=10**-14 #ionic product of water, M**2\n",
- "Ka1=6.5*10**-2 #ionisation constant of C2H2O4, M\n",
- "\n",
- "#Calculation\n",
- "x=math.sqrt(Ka1*InitC2H2O4) #from the definition of ionisation constant Ka1=[H+]*[C2HO4-]/[C2H2O4]=x*x/(InitC2H2O4-x), which reduces to x*x/InitC2H2O4, as x<<InitC2H2O4 (approximation)\n",
- "approx=x/InitC2H2O4*100 #this is the percentage of approximation taken. if it is more than 5%, we will be having higher deviation from correct value\n",
- "if(approx>5):\n",
- " x1=(-Ka1+math.sqrt((Ka1**2)-(-4*1*Ka1*InitC2H2O4)))/(2*1) \n",
- " x2=(-Ka1-math.sqrt((Ka1**2)-(-4*1*Ka1*InitC2H2O4)))/(2*1) \n",
- " if(x1>0):#as only one root is positive\n",
- " x=x1 \n",
- " else: \n",
- " x=x2 \n",
- "C2H2O4=InitC2H2O4-x #equilibrium value\n",
- "\n",
- "#Result\n",
- "print\"The concentration of the [H2C2O4] in the solution is :\",round(C2H2O4,3),\"M\"\n",
- "\n",
- "\n",
- "#Second stage of ionisation\n",
- "\n",
- "#Variable declaration\n",
- "InitC2HO4=x #concentration of C2HO4 from first stage of ionisation\n",
- "Ka2=6.1*10**-5 #ionisation constant of C2HO4-, M\n",
- "\n",
- "#Calculation\n",
- "#Let 'y' be the concentration of the [C2HO4-] dissociated to form [H+] and [C2HO4-] ions, M\n",
- "y=Ka2 #from the definition of ionisation constant Ka2=[H+]*[C2O4-2]/[C2HO4-]=(0.054+y)*y/(0.054-y), which reduces to y, as y<<InitC2HO4 (approximation)\n",
- "approx=y/InitC2HO4*100 #this is the percentage of approximation taken. if it is more than 5%, we will be having higher deviation from correct value\n",
- "if(approx>5):\n",
- " x1=(-Ka2+math.sqrt((Ka2**2)-(-4*1*Ka2*InitC2HO4)))/(2*1) \n",
- " x2=(-Ka2-math.sqrt((Ka2**2)-(-4*1*Ka2*InitC2HO4)))/(2*1) \n",
- " if(x1>0):#as only one root is positive\n",
- " y=x1 \n",
- " else: \n",
- " y=x2 \n",
- "C2HO4=InitC2HO4-y #from first and second stages of ionisation\n",
- "H=x+y #from first and second stages of ionisation\n",
- "C2O4=y #from the assumption\n",
- "OH=Kw/H # From the formula (ionic product)Kw=[H+]*[OH-]\n",
- "\n",
- "#Result\n",
- "print\"The concentration of the [HC2O4-] ion in the solution is :\",round(C2HO4,3),\"M\"\n",
- "print\"The concentration of the [H+] ion in the solution is :\",round(H,3),\"M\" \n",
- "print\"The concentration of the [C2O4^2-] ion in the solution is :\",C2O4,\"M\"\n",
- "print\"The concentration of the [OH-] ion in the solution is :%.1e\"%OH,\"M\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The concentration of the [H2C2O4] in the solution is : 0.046 M\n",
- "The concentration of the [HC2O4-] ion in the solution is : 0.054 M\n",
- "The concentration of the [H+] ion in the solution is : 0.054 M\n",
- "The concentration of the [C2O4^2-] ion in the solution is : 6.1e-05 M\n",
- "The concentration of the [OH-] ion in the solution is :1.8e-13 M\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:15.13,Page no:690"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "InitCH3COONa=0.15 #Initial concentration of CH3COONa solution, M\n",
- "InitCH3COO=InitCH3COONa #concentration of [CH3COO-] ion after dissociation of CH3COONa solution, M\n",
- "#Let 'x' be the equilibrium concentration of the [OH-] and [CH3COOH] ions after hydrolysis of [CH3COO-], M\n",
- "Kb=5.6*10**-10 #equilibrium constant of hydrolysis, M\n",
- "import math\n",
- "\n",
- "#Calculation\n",
- "x=math.sqrt(Kb*InitCH3COO) #from the definition of ionisation constant Kb=[OH-]*[CH3COOH]/[CH3COO-]=x*x/(0.15-x), which reduces to x*x/0.15, as x<<0.15 (approximation)\n",
- "approx=x/InitCH3COO*100 #this is the percentage of approximation taken. if it is more than 5%, we will be having higher deviation from correct value\n",
- "if(approx>5):\n",
- " x1=(-Kb+math.sqrt((Kb**2)-(-4*1*Kb*InitCH3COO)))/(2*1) \n",
- " x2=(-Kb-math.sqrt((Kb**2)-(-4*1*Kb*InitCH3COO)))/(2*1) \n",
- " if(x1>0):#as only one root is positive\n",
- " x=x1 \n",
- " else: \n",
- " x=x2 \n",
- "pOH=-math.log10(x) #since x is the conc. of [OH-] ions\n",
- "pH=14-pOH \n",
- "\n",
- "#Result\n",
- "print\"The pH of the salt solution is :\",round(pH,2)\n",
- "percenthydrolysis=x/InitCH3COO*100 \n",
- "print\"The percentage of hydrolysis of the salt solution is :\",round(percenthydrolysis,4),\"%\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The pH of the salt solution is : 8.96\n",
- "The percentage of hydrolysis of the salt solution is : 0.0061 %\n"
- ]
- }
- ],
- "prompt_number": 51
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_16.ipynb b/Chemistry/Chapter_16.ipynb
deleted file mode 100755
index 96bc5bbb..00000000
--- a/Chemistry/Chapter_16.ipynb
+++ /dev/null
@@ -1,584 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 16:Acid-Base Equilibria and Solubility Equilibria"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.1,Page no:715"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "InitCH3COOH1=0.2 #Initial concentration of CH3COOH solution, M\n",
- "#Let 'x' be the equilibrium concentration of the [H+] and [CH3COO-] ions after dissociation of [CH3COOH], M\n",
- "Ka=1.8*10**-5 #equilibrium constant of acid, M\n",
- "InitCH3COONa=0.3 #Initial concentration of CH3COONa solution and is equal to conc of Na+ and CH3COO- as it completely dissociates, M\n",
- "InitCH3COOH2=0.2 #Initial concentration of CH3COOH solution, M\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "import math\n",
- "x1=math.sqrt(Ka*InitCH3COOH1) #from the definition of ionisation constant Ka=[H+]*[CH3COO-]/[CH3COOH]=x*x/(0.2-x), which reduces to x*x/0.2, as x<<0.2 (approximation)\n",
- "pH1=-math.log10(x1) #since x is the conc. of [H+] ions\n",
- "\n",
- "#(b)\n",
- "#Let 'x' be the equilibrium concentration of the [H+] and hence conc of [CH3COO-] ions is '0.3 + x', M\n",
- "x2=Ka*InitCH3COOH2/InitCH3COONa #from the definition of ionisation constant Ka=[H+]*[CH3COO-]/[CH3COOH]=x*(0.3+x)/(0.2-x), which reduces to x*0.3/0.2(approximation)\n",
- "pH2=-math.log10(x2) #since x is the conc. of [H+] ions\n",
- "\n",
- "#Result\n",
- "print\"(a) the pH of CH3COOH solution is \",round(pH1,2)\n",
- "print\"(b) the pH of CH3COOH and CH3COONa solution is :\",round(pH2,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the pH of CH3COOH solution is 2.72\n",
- "(b) the pH of CH3COOH and CH3COONa solution is : 4.92\n"
- ]
- }
- ],
- "prompt_number": 92
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 16.3,Page no:719"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Ka=1.8*10**-5 #ionisation constant of acid\n",
- "InitCH3COONa=1 #Initial concentration of CH3COONa solution and is equal to conc of Na+ and CH3COO- as it completely dissociates, M\n",
- "InitCH3COOH=1 #Initial concentration of CH3COOH solution, M\n",
- "HCl=0.1 #moles of HCl added to 1L solution\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "#(a)\n",
- "x=Ka*InitCH3COOH/InitCH3COONa #from the definition of ionisation constant Ka=[H+]*[CH3COO-]/[CH3COOH]=x*(1+x)/(1-x), which reduces to x(approximation)\n",
- "pH=-math.log10(x) #since x is the conc. of [H+] ions\n",
- "#(b)\n",
- "CH3COO=InitCH3COONa-HCl #conc of CH3COO- ions, M\n",
- "CH3COOH=InitCH3COOH+HCl #conc of CH3COOH, M\n",
- "x2=Ka*CH3COOH/CH3COO #from the definition of ionisation constant Ka=[H+]*[CH3COO-]/[CH3COOH]=x*(0.9+x)/(1.1-x), which reduces to x*0.9/1.1(approximation)\n",
- "pH2=-math.log10(x2) #since x is the conc. of [H+] ions\n",
- "\n",
- "#Result\n",
- "print\"(a) the pH of CH3COOH and CH3COONa solution is :\",round(pH,2)\n",
- "print\"(b) the pH of solution after adding HCl is :\",round(pH2,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the pH of CH3COOH and CH3COONa solution is : 4.74\n",
- "(b) the pH of solution after adding HCl is : 4.66\n"
- ]
- }
- ],
- "prompt_number": 93
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.5,Page no:728"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "InitCH3COOH=0.1 #Initial concentration of CH3COOH solution, M\n",
- "VCH3COOH=25 #volumeof CH3COOH, mL\n",
- "nCH3COOH=InitCH3COOH*VCH3COOH/1000 \n",
- "Ka=1.8*10**-5 #equilibrium constant of acid, M\n",
- "Kb=5.6*10**-10 #equilibrium constant of base, M\n",
- "N=0.1 #Initial concentration of NaOH solution, M\n",
- "V=10 #Initial volume of NaOH solution, mL\n",
- "\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "n=N*V/1000 #Initial moles of NaOH solution\n",
- "import math\n",
- "nCH3COOH_tit=nCH3COOH-n #moles of CH3COOH after titration\n",
- "nCH3COO=n #moles of CH3COO after titration\n",
- "H=nCH3COOH_tit*Ka/nCH3COO #conc of H+ ions, M\n",
- "pH=-math.log10(H) #since H is the conc. of [H+] ions\n",
- "\n",
- "#Result\n",
- "print\"(a) the pH of the solution is :\",round(pH,2)\n",
- "\n",
- "\n",
- "#Calculation\n",
- "#(b)\n",
- "V2=25.0 #Initial volume of NaOH solution, mL\n",
- "n2=N*V2/1000.0 #Initial moles of NaOH solution\n",
- "nCH3COOH_tit2=nCH3COOH-n2 #moles of CH3COOH after titration\n",
- "nCH3COO2=n2 #moles of CH3COO- ions after titration\n",
- "V_total=V2+VCH3COOH #total volume after titration\n",
- "CH3COO=nCH3COO2/V_total*1000 #conc of CH3COO- ions, M\n",
- "x=math.sqrt(Kb*CH3COO) #from the definition of ionisation constant Kb=[OH-]*[CH3COOH]/[CH3COO-]=x*x/(0.05-x), which reduces to x*x/0.05, as x<<0.05 (approximation)\n",
- "pOH=-math.log10(x) #since x is the conc. of [OH-] ions\n",
- "pH2=14.0-pOH \n",
- "\n",
- "#Result\n",
- "print\"(b) the pH of the solution is :\",round(pH2,2)\n",
- "\n",
- "#Calculation\n",
- "#(c)\n",
- "N=0.1 #Initial concentration of NaOH solution, M\n",
- "V=35 #Initial volume of NaOH solution, mL\n",
- "n=N*V/1000 #Initial moles of NaOH solution\n",
- "n_tit=n-nCH3COOH #moles of NaOH after titration\n",
- "nCH3COO=nCH3COOH #moles of CH3COO- ions after titration\n",
- "V_total=V+VCH3COOH #total volume\n",
- "OH=n_tit/V_total*1000 #conc of OH- ions, M\n",
- "pOH=-math.log10(OH) #since OH is the conc. of [OH-] ions\n",
- "pH=14-pOH \n",
- "\n",
- "#Result\n",
- "print\"(c) the pH of the solution is :\",round(pH,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the pH of the solution is : 4.57\n",
- "(b) the pH of the solution is : 8.72\n",
- "(c) the pH of the solution is : 12.22\n"
- ]
- }
- ],
- "prompt_number": 94
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.6,Page no:730"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "InitNH3=0.1 #Initial concentration of NH3 solution, M\n",
- "VNH3=25 #volume of NH3, mL\n",
- "nNH3=InitNH3*VNH3/1000 \n",
- "Ka=5.6*10**-10 #equilibrium constant of acid, M\n",
- "N=0.1 #Initial concentration, M\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "V=VNH3/InitNH3*N #Initial volume, mL\n",
- "V_total=V+VNH3 #total volume of the mixture, mL\n",
- "n_NH4Cl=nNH3 #moles of NH4Cl\n",
- "NH4Cl=n_NH4Cl/V_total*1000 #conc of NH4+ ions formed, M\n",
- "x=math.sqrt(Ka*NH4Cl) #from the definition of ionisation constant Ka=[H+]*[NH3]/[NH4+]=x*x/(NH4+-x), which reduces to x*x/NH4+, as x<<NH4+ (approximation)\n",
- "pH=-math.log10(x) #since x is the conc. of [H+] ions\n",
- "\n",
- "#Result\n",
- "print\"The pH of the solution at equivalent point is :\",round(pH,2)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The pH of the solution at equivalent point is : 5.28\n"
- ]
- }
- ],
- "prompt_number": 95
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 16.8,Page no:738"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "solubility=0.67 #solubility of CaSO4, g/L\n",
- "\n",
- "#Calculation\n",
- "M=136.2 #mol mass of CaSO4, g\n",
- "s=solubility/M #concentration, M\n",
- "Ksp=s**2 #solubility product\n",
- "\n",
- "#Result\n",
- "print\"The Ksp of CaSO4 is :%.1e\"%Ksp"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The Ksp of CaSO4 is :2.4e-05\n"
- ]
- }
- ],
- "prompt_number": 96
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.9,Page no:739"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Ksp=2.2*10**-20 #solubility product\n",
- "M=97.57 #mol mass of Cu(OH)2, g\n",
- "\n",
- "#Calculation\n",
- "s=(Ksp/4.0)**(1.0/3.0) #concentration, M\n",
- "solubility=s*M #solubility of Cu(OH)2, g/L\n",
- "\n",
- "#Result\n",
- "print\"The solubility of Cu(OH)2 is :%.2e\"%solubility,\"g/L\"\n",
- "\n",
- "#ALTERNATIVE METHOD:\n",
- "\n",
- "#Variable declaration\n",
- "Kspt=2.2*10**-20 #Ksp value from table 16.2\n",
- "M=97.75 #Molar mass of Cu(OH)2\n",
- "\n",
- "#Calculation\n",
- "from scipy.optimize import fsolve\n",
- "def f(s):\n",
- " Cu2=s\n",
- " OH_=2*s\n",
- " return(Kspt-(Cu2*(OH_**2)))\n",
- "s=fsolve(f,1)\n",
- "solubility=round(s,8)*M\n",
- "\n",
- "#Result\n",
- "print \"Alternative method: Solubility of Cu(OH)2=%.1e\"%solubility,\"g/L\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The solubility of Cu(OH)2 is :1.72e-05 g/L\n",
- "Alternative method: Solubility of Cu(OH)2=1.8e-05"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " g/L\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.10,Page no:741"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Ksp=1.1*10**-10 #solubility product of BaSO4\n",
- "#for Ba2+ ion\n",
- "N=0.004 #normality, M\n",
- "V=200 #vol in mL\n",
- "n=N*V/1000 #moles\n",
- "#for K2SO4sol\n",
- "N1=0.008 #normality, M\n",
- "V1=600 #vol in mL\n",
- "\n",
- "#Calculation\n",
- "n1=N1*V1/1000 #moles\n",
- "Nnew=n*1000/(V+V1) #conc of Ba2+ ions in final sol\n",
- "N1new=n1*1000/(V+V1) #conc of SO4 2- ions in final sol\n",
- "Q=Nnew*N1new #as Q=[Ba2+][SO4 2-]\n",
- "\n",
- "#Result\n",
- "print\"Q=\",Q\n",
- "if(Q>Ksp): #determination of precipitation\n",
- " print\"Q>Ksp, The solution is supersaturated and hence a precipitate will form\"\n",
- "else: \n",
- " print\"Q<Ksp, The solution is not supersaturated and hence a precipitate will not form\" "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Q= 6e-06\n",
- "Q>Ksp, The solution is supersaturated and hence a precipitate will form\n"
- ]
- }
- ],
- "prompt_number": 99
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.11,Page no:743"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Br=0.02 #conc of Ag+ ions, M\n",
- "Ksp1=7.7*10**-13 #solubility product of AgBr\n",
- "Ksp2=1.6*10**-10 #solubility product of AgCl\n",
- "Cl=0.02 #conc of Cl- ions, M\n",
- "\n",
- "#Calculation\n",
- "#for Br\n",
- "Ag1=Ksp1/Br #conc of Ag+ ions at saturated state, M\n",
- "#for Cl\n",
- "Ag2=Ksp2/Cl #conc of Ag+ ions at saturated state, M\n",
- "\n",
- "#Result\n",
- "print \"[Ag+]=\",Ag2,\"M\"\n",
- "print\"To precipitate Br- without precipitating Cl- the concentration of Ag must be greater than %.1e\"%Ag1,\"M but less than\",Ag2,\"M\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "[Ag+]= 8e-09 M\n",
- "To precipitate Br- without precipitating Cl- the concentration of Ag must be greater than 3.9e-11 M but less than 8e-09 M\n"
- ]
- }
- ],
- "prompt_number": 100
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.12,Page no: 745"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "N_AgNO3=6.5*10**-3 #normality of AgNO3, M\n",
- "AgCl=143.4 #mol mass of AgCl, g\n",
- "Ksp=1.6*10**-10 #solubility product of AgCl\n",
- "\n",
- "#Calculation\n",
- "Ag=N_AgNO3 #conc of Ag+ ions as 's' is negligible, M\n",
- "s=Ksp/Ag #as Ksp=[Ag+][Cl-], molar solubility of AgCl, M\n",
- "solubility=s*AgCl #solubility of AgCl in AgBr solution, g/L\n",
- "\n",
- "#Result\n",
- "print\"The solubility of AgCl in AgBr solution is :%.2e\"%solubility,\"g/L\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The solubility of AgCl in AgBr solution is :3.53e-06 g/L\n"
- ]
- }
- ],
- "prompt_number": 101
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.14,Page no:748"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "FeCl2=0.003 #normality of FeCl2, M\n",
- "Fe=FeCl2 #as Fe2+ is strong electrolyte, conc of Fe2+=conc of FeCl2, M\n",
- "Ksp=1.6*10**-14 #solubility product of FeCl2\n",
- "Kb=1.8*10**-5 #ionisation constant of base\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "OH=math.sqrt(Ksp/Fe) #as Ksp=[Fe2+][OH-]**2, conc of OH- ions, M\n",
- "x=(OH**2)/Kb+OH #as Kb=[NH4+][OH-]/[NH3]\n",
- "\n",
- "#Result\n",
- "print\"To initiate precipitation the conc of NH3 must be slightly greater than :%.1e\"%x,\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "To initiate precipitation the conc of NH3 must be slightly greater than :2.6e-06 M\n"
- ]
- }
- ],
- "prompt_number": 102
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.15,Page no:750"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "CuSO4=0.2 #normality of CuSO4, M\n",
- "NH3=1.2 #initial conc of NH3, M\n",
- "VNH3=1 #volume of NH3, L\n",
- "Kf=5*10**13 #formation constant\n",
- "\n",
- "#Calculation\n",
- "CuNH34=CuSO4 #conc of Cu(NH3)4 2+, M\n",
- "NH3=NH3-4*CuNH34 #conc of NH3 after formation of complex, as 4 moles of NH3 react to form 1 mole complex, M\n",
- "x=CuNH34/(NH3**4*Kf) #as Kf=[Cu(SO4)3 2+]/[Cu2+][NH3]**4\n",
- "\n",
- "#Result\n",
- "print\"The conc of Cu2+ ions in equilibrium is :%.1e\"%x,\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The conc of Cu2+ ions in equilibrium is :1.6e-13 M\n"
- ]
- }
- ],
- "prompt_number": 103
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:16.16,Page no:751"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "InitNH3=1 #initial conc of NH3, M\n",
- "Ksp=1.6*10**-10 #solubility product of AgCl\n",
- "Kf=1.5*10**7 #formation constant of complex\n",
- "\n",
- "#Calculation\n",
- "K=Ksp*Kf #overall equilibrium constant\n",
- "import math\n",
- "s=math.sqrt(K)/(1+2*InitNH3*math.sqrt(K)) #molar solubility of AgCl, M\n",
- "\n",
- "#Result\n",
- "print\"Amount of AgCl which can be dissolved in 1 L of 1 M NH3 sol in equilibrium is :\",round(s,3),\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Amount of AgCl which can be dissolved in 1 L of 1 M NH3 sol in equilibrium is : 0.045 M\n"
- ]
- }
- ],
- "prompt_number": 91
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_17.ipynb b/Chemistry/Chapter_17.ipynb
deleted file mode 100755
index 8debeae7..00000000
--- a/Chemistry/Chapter_17.ipynb
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 17:Chemistry in the Atmosphere"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:17.1,Page no:774"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "E=498.7*10**3/(6.022*10**23) #energy in J/molecule\n",
- "h=6.63*10**-34 #plancks constant, J s\n",
- "\n",
- "#Calculation\n",
- "v=E/h #frequency of the photon, s**-1\n",
- "lamda=3*10**8/v #wavelength in m, since v*lambda=speed of light in vacuum\n",
- "\n",
- "#Variable declaration\n",
- "print\"The maximum wavelength of the photon which can dissociate an O2 molecule is :\",round(lamda*10**9),\"nm\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The maximum wavelength of the photon which can dissociate an O2 molecule is : 240.0 nm\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:17.3,Page no:792"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Rninitial=1 #initial mass of Rn, g\n",
- "\n",
- "#Calculation\n",
- "Rnfinal=Rninitial*0.5**10 #final mass of Rn, g\n",
- "\n",
- "#Result\n",
- "print\"The amount of Rn left after 10 half lives is :%.1e\"%Rnfinal,\"g\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The amount of Rn left after 10 half lives is :9.8e-04 g\n"
- ]
- }
- ],
- "prompt_number": 5
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_18.ipynb b/Chemistry/Chapter_18.ipynb
deleted file mode 100755
index aabe2f15..00000000
--- a/Chemistry/Chapter_18.ipynb
+++ /dev/null
@@ -1,284 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 18:Entropy, Free Energy,and Equilibrium"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:18.2,Page no:809"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#(a)\n",
- "SCaO=39.8 #standard entropy of CaO, J/K mol\n",
- "SCO2=213.6 #standard entropy of CO2, J/K mol\n",
- "SCaCO3=92.9 #standard entropy of CaCO3, J/K mol\n",
- "#(b)\n",
- "SNH3=193 #standard entropy of NH3, J/K mol\n",
- "SN2=192 #standard entropy of N2, J/K mol\n",
- "SH2=131 #standard entropy of H2, J/K mol\n",
- "#(c)\n",
- "SHCl=187 #standard entropy of HCl, J/K mol\n",
- "SH2=131 #standard entropy of H2, J/K mol\n",
- "SCl2=223 #standard entropy of Cl2, J/K mol\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "deltaSrxn1=SCaO+SCO2-SCaCO3 #standard entropy change of the reaction, J/K mol\n",
- "#(b)\n",
- "deltaSrxn2=2*SNH3-(SN2+3*SH2) #standard entropy change of the reaction, J/K mol\n",
- "#(c)\n",
- "deltaSrxn3=2*SHCl-SH2-SCl2 #standard entropy change of the reaction, J/K mol\n",
- "\n",
- "#Result\n",
- "print\"(a) the standard entropy of reaction is :\",deltaSrxn1,\"J/K mol\"\n",
- "print\"(b) the standard entropy of reaction is :\",deltaSrxn2,\"J/K mol\"\n",
- "print\"(c) the standard entropy of reaction is :\",deltaSrxn3,\"J/K mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the standard entropy of reaction is : 160.5 J/K mol\n",
- "(b) the standard entropy of reaction is : -199 J/K mol\n",
- "(c) the standard entropy of reaction is : 20 J/K mol\n"
- ]
- }
- ],
- "prompt_number": 22
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:18.4,Page no:817"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#(a)\n",
- "GCO2=-394.4 #free energy of formation of CO2, kJ/mol\n",
- "GH2O=-237.2 #free energy of formation of H2O, kJ/mol\n",
- "GCH4=-50.8 #free energy of formation of CH4, kJ/mol\n",
- "GO2=0 #free energy of formation of O2, kJ/mol\n",
- "#(b)\n",
- "GMg=0 #free energy of formation of Mg, kJ/mol\n",
- "GMgO=-569.6 #free energy of formation of MgO, kJ/mol\n",
- "GO2=0 #free energy of formation of O2, kJ/mol\n",
- "\n",
- "#Calculation\n",
- "deltaGrxn1=(GCO2+GH2O*2)-(GCH4+2*GO2) #standard free energy change of the reaction, kJ/mol\n",
- "deltaGrxn=(GO2+GMg*2)-(2*GMgO) #standard free energy change of the reaction, kJ/mol\n",
- "\n",
- "#Result\n",
- "print\"(a) The standard free energy change of reaction is :\",deltaGrxn1,\"kJ/mol\"\n",
- "print\"(b) The standard free energy change of reaction is :\",round(deltaGrxn),\"kJ/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) The standard free energy change of reaction is : -818.0 kJ/mol\n",
- "(b) The standard free energy change of reaction is : 1139.0 kJ/mol\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:18.5,Page no:820"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#for fusion\n",
- "T1=5.5+273 #temperature of fusion, K\n",
- "deltaH1=10.9*1000 #change in enthalpy, J/mol\n",
- "#for vaporisation\n",
- "T2=80.1+273 #temperature of vaporisation, K\n",
- "deltaH2=31*1000 #change in enthalpy, J/mol\n",
- "\n",
- "#Calculation\n",
- "deltaSf=deltaH1/T1 #since in fusion deltaG=0, J/ K mol\n",
- "deltaSv=deltaH2/T2 #since in vaporisation deltaG=0, J/ K mol\n",
- "\n",
- "#Result\n",
- "print\"The entropy change for fusion is\",round(deltaSf,1),\"J/K.mol\" \n",
- "print\"The entropy change for condensation is : \",round(deltaSv,1),\"J/K mol\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The entropy change for fusion is 39.1 J/K.mol\n",
- "The entropy change for condensation is : 87.8 J/K mol\n"
- ]
- }
- ],
- "prompt_number": 24
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:18.6,Page no:823"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "T=298 #temperature, K\n",
- "R=8.314 #gas constant, J/K mol\n",
- "GH2=0 #free energy of formation of H2, kJ/mol\n",
- "GH2O=-237.2 #free energy of formation of H2O, kJ/mol\n",
- "GO2=0 #free energy of formation of O2, kJ/mol\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "deltaG=1000*(2*GH2+GO2-2*GH2O) #free energy of rxn, J/mol\n",
- "Kp=math.exp(-deltaG/(R*T)) #equilibrium constant for rxn\n",
- "\n",
- "#Result\n",
- "print\"deltaG_rxn=\",deltaG/1000,\"kJ/mol\"\n",
- "print\"The equilibrium constant for the given reaction is :%.e\"%Kp"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "deltaG_rxn= 474.4 kJ/mol\n",
- "The equilibrium constant for the given reaction is :7e-84\n"
- ]
- }
- ],
- "prompt_number": 25
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:18.7,Page no:824"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "T=298 #temperature, K\n",
- "R=8.314 #gas constant, J/K mol\n",
- "Ksp=1.6*10**-10 #solubility constant\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "deltaG=-R*T*math.log(Ksp) #here solubility product is equal to equilibrium constant\n",
- "\n",
- "#Result\n",
- "print\"The free energy for the given reaction is :\",round(deltaG*10**-3),\"kJ/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The free energy for the given reaction is : 56.0 kJ/mol\n"
- ]
- }
- ],
- "prompt_number": 26
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:18.8,Page no:825"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "T=298 #temperature, K\n",
- "R=8.314 #gas constant, J/K mol\n",
- "deltaG0=5.4*10**3 #standard free energy, kJ/mol\n",
- "pNO2=0.122 #pressure of NO2, atm\n",
- "pN2O4=0.453 #pressure of N2O4, atm\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "deltaG=deltaG0+R*T*math.log(pNO2**2/pN2O4) #here solubility product is equal to equilibrium constant\n",
- "\n",
- "#Result\n",
- "if(deltaG<0):#equilibrium determination\n",
- " d=\"net reaction proceeds from left to right to reach equilibrium\" \n",
- "else:\n",
- " d=\"net reaction proceeds from right to left to reach equilibrium\" \n",
- "print\"The free energy for the given reaction is :\",round(deltaG*10**-3,2),\"kJ/mol and\",d\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The free energy for the given reaction is : -3.06 kJ/mol and net reaction proceeds from left to right to reach equilibrium\n"
- ]
- }
- ],
- "prompt_number": 27
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_19.ipynb b/Chemistry/Chapter_19.ipynb
deleted file mode 100755
index c904a842..00000000
--- a/Chemistry/Chapter_19.ipynb
+++ /dev/null
@@ -1,267 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 19:Electrochemistry"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:19.3,Page no:848"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "E0cathode=0.8 #standard electrode potential of cathode(Ag+/Ag), V\n",
- "E0anode=-2.37 #standard electrode potential of anode(Mg2+/Mg), V\n",
- "\n",
- "#Calculation\n",
- "E0cell=E0cathode-E0anode #standard emf of the cell, V\n",
- "\n",
- "#Result\n",
- "print\"The standard emf of the cell is :\",E0cell,\"V\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The standard emf of the cell is : 3.17 V\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:19.4,Page no:850"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "n=2.0 \n",
- "E0cathode=0.15 #standard electrode potential of cathode(Cu2+/Cu+), V\n",
- "E0anode=-0.14 #standard electrode potential of anode(Sn2+/Sn), V\n",
- "\n",
- "#Calculation\n",
- "E0cell=E0cathode-E0anode #standard emf of the cell, V\n",
- "import math\n",
- "K=math.exp(round(n*E0cell/0.0257,1)) #equilibrium constant, from the formula E0cell=0.0257*lnK/n\n",
- "\n",
- "#Result\n",
- "print\"The equilibrium constant for the given reaction is :%.e\"%K "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0.29\n",
- "The equilibrium constant for the given reaction is :7e+09\n"
- ]
- }
- ],
- "prompt_number": 18
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:19.5,Page no:851"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "n=6 \n",
- "F=96500 #faraday constant, J/V mol\n",
- "E0cathode=-2.87 #standard electrode potential of cathode(Ca2+/Ca), V\n",
- "E0anode=1.5 #standard electrode potential of anode(Au3+/Au), V\n",
- "\n",
- "#Calculation\n",
- "E0cell=E0cathode-E0anode #standard emf of the cell, V\n",
- "deltaG0=-n*F*E0cell #standard free energy change for the reaction, kJ/mol\n",
- "\n",
- "#Result\n",
- "print\"The standard free energy change for the reaction is :%.2e\"%(deltaG0/1000),\"kJ/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The standard free energy change for the reaction is :2.53e+03 kJ/mol\n"
- ]
- }
- ],
- "prompt_number": 21
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:19.6,Page no:853"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "n=2 \n",
- "F=96500 #faraday constant, J/V mol\n",
- "Co2=0.15 #conc of Co2+ ions, M\n",
- "Fe2=0.68 #conc of Fe2+ ions, M\n",
- "E0cathode=-0.44 #standard electrode potential of cathode(Fe2+/Fe), V\n",
- "E0anode=-0.28 #standard electrode potential of anode(Co2+/Co), V\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "E0cell=E0cathode-E0anode #standard emf of the cell, V\n",
- "Ecell=E0cell-0.0257/2*math.log(Co2/Fe2) #calculation of cell potential at non standard conditions, V\n",
- "\n",
- "#Result\n",
- "print \"E=\",round(Ecell,2),\"V\"\n",
- "if(Ecell>0):\n",
- " print\"The reaction would proceed spontaneously in the direction written\"\n",
- "else:\n",
- " print\"The reaction is not spontaneously in the direction written\"\n",
- " "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "E= -0.14 V\n",
- "The reaction is not spontaneously in the direction written\n"
- ]
- }
- ],
- "prompt_number": 23
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:19.7,Page no:855"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "n=2 \n",
- "Zn=1 #conc of Zn2+ ions, M\n",
- "pH2=1 #pressure of H2 gas, atm\n",
- "Ecell=0.54 #emf of the cell, V\n",
- "E0cell=0.76 #standard emf of the cell, V\n",
- "\n",
- "#Calculation\n",
- "import math\n",
- "Q=math.exp(-(Ecell-E0cell)*2/0.0257) #since Ecell=E0cell-0.0257/2*log(Q) where Q=(Zn2+)*pH2/(H+)**2\n",
- "H=math.sqrt(Zn*pH2/Q) #the conc of H+ ions, M\n",
- "\n",
- "#Result\n",
- "print\"The molar concentration of H+ ion is :%.e\"%H,\"M\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molar concentration of H+ ion is :2e-04 M\n"
- ]
- }
- ],
- "prompt_number": 24
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:19.9,Page no:870"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "t=7.44*3600 #time, sec\n",
- "A=1.26 #current in ampere\n",
- "F=96500.0 #faraday constant, J/V mol\n",
- "R=0.0821 #gas constant, L atm/K\n",
- "T=273.0 #temperature in Kelvin\n",
- "P=1.0 #pressure in atm\n",
- "\n",
- "#Calculation\n",
- "q=A*t #charge passed, coulomb\n",
- "ne=q/F #moles of electrons\n",
- "nO2=ne/4.0 #moles of oxygen\n",
- "nH2=ne/2.0 #moles of H2\n",
- "VO2=nO2*R*T/P #volume of oxygen gas generated\n",
- "VH2=nH2*R*T/P #volume of H2 gas generated\n",
- "\n",
- "#Result\n",
- "print\"The volume of O2 gas is:\",round(VO2,2),\"L\"\n",
- "print\"Volume of H2 gas generated is:\",round(VH2,2),\"L\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of O2 gas is: 1.96 L\n",
- "Volume of H2 gas generated is: 3.92 L\n"
- ]
- }
- ],
- "prompt_number": 26
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_23.ipynb b/Chemistry/Chapter_23.ipynb
deleted file mode 100755
index c36a0d3c..00000000
--- a/Chemistry/Chapter_23.ipynb
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 23:Nuclear Chemistry"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:23.2,Page no:994"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "NA=6.022*10**23 #avogadro number\n",
- "c=3*10**8 #speed of light, m/s\n",
- "p=1.007825 #mass of proton, amu\n",
- "n=1.008665 #mass of neutron, amu\n",
- "mI=126.9004 #atomic mass of I, amu\n",
- "\n",
- "#Calculation\n",
- "pI=53*p+74*n #estimated mass of I, amu\n",
- "deltam=mI-pI #mass defect, amu\n",
- "deltaE=-deltam*c**2 #energy released, amu m**2/s**2\n",
- "deltaE=deltaE/(NA*1000) #energy released in J\n",
- "print\"Nuclear binding energy is %.2e\"%deltaE,\"J\"\n",
- "deltaE=deltaE/127 #binding energy per nucleon, J\n",
- "\n",
- "#Result\n",
- "print\"The nuclear binding energy per nucleon is :%.2e\"%deltaE,\"J/nucleon\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Nuclear binding energy is 1.73e-10 J\n",
- "The nuclear binding energy per nucleon is :1.36e-12 J/nucleon\n"
- ]
- }
- ],
- "prompt_number": 5
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_3.ipynb b/Chemistry/Chapter_3.ipynb
deleted file mode 100755
index 96753167..00000000
--- a/Chemistry/Chapter_3.ipynb
+++ /dev/null
@@ -1,676 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 3:Mass Relationships in Chemical Reactions"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.1,Page no:81"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Cu63=69.09 #percent of Cu 62.93 amu\n",
- "Cu65=30.91 #percent of Cu 64.9278 amu\n",
- "\n",
- "#Calculation\n",
- "AverageAMU=62.93*Cu63/100+64.9278*Cu65/100 # average amu\n",
- "\n",
- "#Result\n",
- "print\"The average atomic mass of Copper is :\",round(AverageAMU,2),\"amu\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The average atomic mass of Copper is : 63.55 amu\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 33
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.2,Page no:84"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "mass=6.46 #mass of He, g\n",
- "\n",
- "#Calculation\n",
- "moles=mass/4.003 #no. of moles of He, as mol. mass of He is 4.003 amu\n",
- "\n",
- "#Result\n",
- "print\"The no. of moles of He is :\",round(moles,2),\"mol He\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The no. of moles of He is : 1.61 mol He\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 28
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.3,Page no:84"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "moles=0.356 #moles of Zn\n",
- "\n",
- "#Calculation\n",
- "mass=moles*65.39 #mass of Zn, g, 1 mole=65.39 g\n",
- "\n",
- "#Result\n",
- "print\"The mass of Zn is :\",round(mass,1),\"g Zn\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of Zn is : 23.3 g Zn\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 30
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.4,Page no:84"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Na=6.022*10**23 # Avogadro number, atoms/mol\n",
- "mass=16.3 #mass of sulfur, g\n",
- "\n",
- "\n",
- "#Calculation\n",
- "moles=mass/32.07 #moles of S\n",
- "atoms=moles*Na #number of atoms of S\n",
- "\n",
- "#Result\n",
- "print\"The no. of atoms of S is :%.2e\"%atoms,\"S atoms\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The no. of atoms of S is :3.06e+23 S atoms\n"
- ]
- }
- ],
- "prompt_number": 32
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.5,Page no:86"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "MassO=16.0 #mass of O, amu\n",
- "MassS=32.07 #mass of S, amu\n",
- "MassN=14.01 #mass of N, amu\n",
- "MassH=1.008 #mass of H, amu\n",
- "MassC=12.01 #mass of C, amu\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "MassSO2=MassS+MassO*2 #mass of SO2, amu\n",
- "#(b)\n",
- "MassC8H10N4O2=8*MassC+10*MassH+4*MassN+2*MassO \n",
- "\n",
- "#Result\n",
- "print\"(a).The molecular mass of SO2 is :\",MassSO2,\"amu\\n\"\n",
- "print\"(b).The molecular mass of C8H10N4O2 is :\",MassC8H10N4O2,\"amu\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a).The molecular mass of SO2 is : 64.07 amu\n",
- "\n",
- "(b).The molecular mass of C8H10N4O2 is : 194.2 amu\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 34
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.6,Page no:86"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Mass=6.07 #mass of CH4, g\n",
- "MassC=12.01 #mol. mass of C, amu\n",
- "MassH=1.008 #mol. mass of H, amu\n",
- "\n",
- "#Calculation\n",
- "MassCH4=MassC+4*MassH #mol. mass of CH4, amu\n",
- "Moles=Mass/MassCH4 #no. of moles of CH4\n",
- "\n",
- "#Result\n",
- "print\"The no. of moles of CH4 is :\",round(Moles,3),\"mol CH4\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The no. of moles of CH4 is : 0.378 mol CH4\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 35
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.7,Page no:87"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Na=6.07*10**23 # Avogadro number, atoms/mol\n",
- "Mass=25.6 #mass of Urea, g\n",
- "MolMass=60.06 #mol. mass of Urea, g\n",
- "\n",
- "#Calculation\n",
- "moles=Mass/MolMass #moles of Urea, mol\n",
- "Atoms=moles*Na*4 #No. of atoms of Hydrogen\n",
- "\n",
- "#Result\n",
- "print\"The no. of atoms of hydrogen are :%.2e\"%Atoms,\"H atoms\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The no. of atoms of hydrogen are :1.03e+24 H atoms\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 36
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.8,Page no:89"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "H=1.008 #molar mass of H, g\n",
- "P=30.97 #molar mass of P, g\n",
- "O=16 #molar mass of O, g\n",
- "MolMass=97.99 #mol. mass of H3PO4, g\n",
- "\n",
- "#Calculation\n",
- "percentH=3*H/MolMass*100 #percent of H\n",
- "percentP=P/MolMass*100 #percent of P\n",
- "percentO=4*O/MolMass*100 #percent of O\n",
- "\n",
- "#Result\n",
- "print\"The percent by mass of Hydrogen is :\",round(percentH,3),\"%\\n\"\n",
- "print\"The percent by mass of Phosphorus is :\",round(percentP,2),\"%\\n\"\n",
- "print\"The percent by mass of Oxygen is :\",round(percentO,2),\"%\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The percent by mass of Hydrogen is : 3.086 %\n",
- "\n",
- "The percent by mass of Phosphorus is : 31.61 %\n",
- "\n",
- "The percent by mass of Oxygen is : 65.31 %\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 37
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.9,Page no:90"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "H=1.008 #molar mass of H, g\n",
- "C=12.01 #molar mass of C, g\n",
- "O=16.0 #molar mass of O, g\n",
- "percentC=40.92 #percent of C\n",
- "\n",
- "#Calculation\n",
- "nC=percentC/C \n",
- "percentH=4.58 #percent of H\n",
- "nH=percentH/H \n",
- "percentO=54.5 #percent of O\n",
- "nO=percentO/O \n",
- "if(nC>nH):# determining the smallest subscript\n",
- " small=nH\n",
- "else:\n",
- " small=nC \n",
- " if(small>nO):\n",
- " small=nO \n",
- "\n",
- "nC=nC/small #dividing by the smallest subscript\n",
- "nH=nH/small \n",
- "nO=nO/small \n",
- "#the approximate values of these variables are to be multiplied by appropriate number to make it an integer by trial and error method\n",
- "#in this case we need to multiply with 3 to get integer values\n",
- "nC=nC*3 \n",
- "nH=nH*3 \n",
- "nO=nO*3 \n",
- "\n",
- "#Result\n",
- "print\"The empirical formula of ascorbic acid is : C%.f\"%nC,\"H%.f\"%nH,\"O%.f\"%nO"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The empirical formula of ascorbic acid is : C3 H4 O3\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.10,Page no:91"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "massCuFeS2=3.71*10**3 #given mass of CuFeS2, kg\n",
- "CuFeS2=183.5 #mol. mass of CuFeS2, g\n",
- "Cu=63.55 #mol. mass of Cu, g\n",
- "\n",
- "#Calculation\n",
- "percentCu=Cu/CuFeS2*100 #percent Cu in CuFeS2\n",
- "massCu=percentCu*massCuFeS2/100#mass of Cu in given CuFeS2, kg\n",
- "\n",
- "#Result\n",
- "print\"The mass of Cu in CuFeS2 is :%.2e\"%massCu,\"kg\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of Cu in CuFeS2 is :1.28e+03 kg\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.11,Page no:93"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "M_N=1.52 #Mass of nitrogen in g\n",
- "M_O=3.47 #Mass of oxygen in g\n",
- "N=14.01 #Atomic mass of N\n",
- "Molar1=95 #Molar mass in g \n",
- "O=16 #Atomic mass of O\n",
- "\n",
- "#Calculation\n",
- "n_N=M_N/N #No of moles of N\n",
- "n_O=M_O/O #No of moles of O\n",
- "emp=N+2*(O) #Empirical molar massof NO2\n",
- "ratio=Molar1/emp\n",
- "ratio=round(ratio)\n",
- "actual=ratio*emp\n",
- "\n",
- "#Result\n",
- "print\"Molecular formula is N%.3g\"%n_N,\"O%.3g\"%n_O\n",
- "print \"Actual molar mass is\",actual,\"g,which is between 90 g and 95 g\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Molecular formula is N0.108 O0.217\n",
- "Actual molar mass is 92.02 g,which is between 90 g and 95 g\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.13,Page no:101"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "CO2=44.01 #mol. mass of CO2, g\n",
- "Glucose=180.2 #mol. mass of Glucose, g\n",
- "massGlucose=856 #given mass of Glucose, g\n",
- "\n",
- "#Calculation\n",
- "moleGlucose=massGlucose/Glucose # moles of glucose\n",
- "moleCO2=moleGlucose*6 #1 mole glucose gives 6 moles of CO2\n",
- "massCO2=moleCO2*CO2 # mass of CO2, g\n",
- "\n",
- "#Result\n",
- "print\"The mass of CO2 is :%.2e\"%massCO2,\"g CO2\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of CO2 is :1.25e+03 g CO2\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.14,Page no:102"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "H2=2.016 #mol. mass of H2, g\n",
- "Li=6.941 #mol. mass of Li, g\n",
- "mH2=9.89 #mass of H2, g\n",
- "\n",
- "#Calculation\n",
- "nH2=mH2/H2 #moles of H2\n",
- "nLi=2*nH2 #moles of Li, 1mol H2 given by 2mol Li\n",
- "mLi=Li*nLi ##mass of Li, g\n",
- "\n",
- "#Result\n",
- "print\"The mass of Li is :\",round(mLi,1),\"g Li\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of Li is : 68.1 g Li\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.15,Page no:104"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Urea=60.06 #mol. mass of Urea, g\n",
- "NH3=17.03 #mol. mass of NH3, g\n",
- "CO2=44.01 #mol. mass of CO2, g\n",
- "\n",
- "#(a)\n",
- "#for NH3\n",
- "mNH3=637.2 #mass of NH3, g\n",
- "\n",
- "#Calculation\n",
- "nNH3=mNH3/NH3 #moles of NH3\n",
- "nUrea1=nNH3/2#moles of Urea\n",
- "#for CO2\n",
- "mCO2=1142#mol. mass of CO2, g\n",
- "nCO2=mCO2/CO2 #moles of CO2\n",
- "nUrea2=nCO2 #moles of Urea\n",
- "if(nUrea1>nUrea2): #finding limiting reagent\n",
- " nUrea=nUrea2 \n",
- " limiting=\"CO2\" \n",
- "else:\n",
- " limiting=\"NH3\" \n",
- " nUrea=nUrea1 \n",
- " \n",
- "#Result\n",
- "print\"(a).The limiting reagent is :\",limiting\n",
- "#(b)\n",
- "mUrea=nUrea*Urea #mass of urea produced\n",
- "print\"(b).The mass of the Urea produced is :\",round(mUrea),\"g (NH2)2CO\"\n",
- "\n",
- "#(c)\n",
- "if(limiting==\"NH3\") :#finding excess reagent\n",
- " nCO2excess=nCO2-nNH3/2 \n",
- " mCO2excess=nCO2excess*CO2 \n",
- " print\"(c).The mass of excess CO2 is :\",round(mCO2excess),\"g \\n\"\n",
- "else: \n",
- " nNH3excess=nNH3-2*nCO2 \n",
- " mNH3excess=nNH3excess*NH3 \n",
- " print\"The mass of excess NH3 is :\",mNH3excess,\"g\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a).The limiting reagent is : NH3\n",
- "(b).The mass of the Urea produced is : 1124.0 g (NH2)2CO\n",
- "(c).The mass of excess CO2 is : 319.0 g \n",
- "\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:3.16,Page no:106"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#(a)\n",
- "#for TiCl4\n",
- "\n",
- "#Variable declaration\n",
- "mTiCl4=3.54*10**7 #mass of TiCl4, g\n",
- "nTiCl4=mTiCl4/189.7 #moles of TiCl4\n",
- "nTi1=nTiCl4*1.0 #moles of Ti\n",
- "\n",
- "#for Mg\n",
- "mMg=1.13*10**7 #mass of Mg, g\n",
- "nMg=mMg/24.31 #moles of Mg\n",
- "nTi2=nMg/2.0 #moles of Ti\n",
- "\n",
- "\n",
- "#Calculation\n",
- "if(nTi1>nTi2): #finding imiting reagent\n",
- " nTi=nTi2 \n",
- "else:\n",
- " nTi=nTi1 \n",
- " mTi=nTi*47.88 \n",
- " print\"(a).The theoretical yield is :%.2e\"%mTi,\"g\\n\"\n",
- " print\"\\nNOTE:Variation from answer due to approx value of mTi taken in book\\n\"\n",
- "\n",
- "#(b)\n",
- "\n",
- "mTiactual=7.91*10**6 #given, actual Ti produced\n",
- "p_yield=mTiactual/mTi*100.0 \n",
- "print\"(b).The percent yield is :\",round(p_yield,1),\"%\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a).The theoretical yield is :8.93e+06 g\n",
- "\n",
- "\n",
- "NOTE:Variation from answer due to approx value of mTi taken in book\n",
- "\n",
- "(b).The percent yield is : 88.5 %\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 27
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_4.ipynb b/Chemistry/Chapter_4.ipynb
deleted file mode 100755
index 13f747e8..00000000
--- a/Chemistry/Chapter_4.ipynb
+++ /dev/null
@@ -1,290 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 4:Reactions in Aqueous Solutions"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.6,Page no:148"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "K2Cr2O7=294.2 #mol mass of K2Cr2O7, g\n",
- "M=2.16 #Concentration of K2Cr2O7, M\n",
- "V=0.250 #volume of K2Cr2O7, L\n",
- "\n",
- "#Calculation\n",
- "moles=M*V #moles of K2Cr2O7\n",
- "mass=moles*K2Cr2O7 \n",
- "\n",
- "#Result\n",
- "print\"The mass of the K2Cr2O7 needed is :\",round(mass),\"g K2Cr2O7\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of the K2Cr2O7 needed is : 159.0 g K2Cr2O7\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.7,Page no:149"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "mGlucose=3.81 #mass of Glucose, g\n",
- "Glucose=180.2 #mol mass of Glucose, g\n",
- "M=2.53 #Concentration of Glucose, M\n",
- "\n",
- "#Calculation\n",
- "moles=mGlucose/Glucose #moles of Glucose\n",
- "V=moles/M #volume of Glucose, L\n",
- "\n",
- "#Result\n",
- "print\"The volume of the Glucose needed is :\",round(V*1000,2),\"mL soln\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of the Glucose needed is : 8.36 mL soln\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.8,Page no:150"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "M2=1.75 #final Concentration of H2SO4, M\n",
- "V2=500 #final volume of H2SO4, mL\n",
- "M1=8.61 #initial Concentration of H2SO4, M\n",
- "\n",
- "#Calculation\n",
- "V1=M2*V2/M1 #initail volume of H2SO4, mL\n",
- "\n",
- "#Result\n",
- "print\"The volume of the H2SO4 needed to dilute the solution is :\",round(V1),\"mL\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of the H2SO4 needed to dilute the solution is : 102.0 mL\n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.9,Page no:152"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "mSample=0.5662 #mass of sample, g\n",
- "Cl=35.5 #mol mass of Cl, g\n",
- "AgCl=143.4 #mol mass of AgCl, g\n",
- "mAgCl=1.0882 #mass of AgCl formed, g\n",
- "\n",
- "#Calculation\n",
- "p_Cl_AgCl=Cl/AgCl*100.0 #percent Cl in AgCl\n",
- "mCl=p_Cl_AgCl*mAgCl/100.0 #mass of Cl in AgCl, g\n",
- "mCl=round(mCl,3)\n",
- "#the same amount of Cl is present in initial sample\n",
- "p_Cl=mCl/mSample*100.0 #percent Cl in initial sample\n",
- "\n",
- "#Result\n",
- "print\"The percentage of Cl in sample is :\",round(p_Cl,2),\"%\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The percentage of Cl in sample is : 47.51 %\n"
- ]
- }
- ],
- "prompt_number": 25
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.10,Page no:154"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "mKHP=0.5468 #mass of KHP, g\n",
- "KHP=204.2 #mol mass of KHP, g\n",
- "\n",
- "#Calculation\n",
- "nKHP=mKHP/KHP #moles of KHP\n",
- "VNaOH=23.48 #volume of NaOH, mL\n",
- "MNaOH=nKHP/VNaOH*1000 #molarity of NaOH sol, M\n",
- "\n",
- "#Result\n",
- "print\"The molarity of NaOH solution is :\",round(MNaOH,4),\"M\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molarity of NaOH solution is : 0.114 M\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 18
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.11,Page no:155"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "MNaOH=0.610 #molarity of NaOH, M\n",
- "VH2SO4=20 #volume of H2SO4, mL\n",
- "MH2SO4=0.245 #molarity of H2SO4, M\n",
- "\n",
- "#Calculation\n",
- "nH2SO4=MH2SO4*VH2SO4/1000 #moles of H2SO4\n",
- "VNaOH=2*nH2SO4/MNaOH #Volume of NaOH, L\n",
- "\n",
- "#Result\n",
- "print\"The volume of NaOH solution is :\",round(VNaOH*1000,1),\"mL\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of NaOH solution is : 16.1 mL\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 19
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:4.12,Page no:157"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "MKMnO4=0.1327 #molarity of KMnO4, M\n",
- "VKMnO4=16.42 #volume of KMnO4, mL\n",
- "\n",
- "#Calculation\n",
- "nKMnO4=MKMnO4*VKMnO4/1000 \n",
- "nFeSO4=5*nKMnO4 \n",
- "VFeSO4=25 #volume of FeSO4, mL\n",
- "MFeSO4=nFeSO4/VFeSO4*1000 \n",
- "\n",
- "#Result\n",
- "print\"The molarity of FeSO4 solution is :\",round(MFeSO4,3),\"M\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molarity of FeSO4 solution is : 0.436 M\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 20
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_5.ipynb b/Chemistry/Chapter_5.ipynb
deleted file mode 100755
index 9649fe13..00000000
--- a/Chemistry/Chapter_5.ipynb
+++ /dev/null
@@ -1,768 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 5:Gases"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.1,Page no:177"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Pbaro=688 #pressure in mm Hg\n",
- "\n",
- "#Calculation\n",
- "Patm=Pbaro/760.0 #pressure in atm\n",
- "\n",
- "#Result\n",
- "print\"The presuure in atmospheres is :\",round(Patm,3),\"atm\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The presuure in atmospheres is : 0.905 atm\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 40
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.2,Page no:178"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Pbaro=732 #pressure in mm Hg\n",
- "\n",
- "#Calculation\n",
- "Patm=Pbaro/760.0 #pressure in atm\n",
- "P=Patm*1.01325*10**2 #pressure in kilo Pascal\n",
- "\n",
- "#Result\n",
- "print\"The presuure in kilo pascals is :\",round(P,1),\"kPa\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The presuure in kilo pascals is : 97.6 kPa\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 41
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.3,Page no:186"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "V=5.43 #volume, L\n",
- "t=69.5 #temperature, C\n",
- "\n",
- "#Calculation\n",
- "T=t+273 #temperature, K\n",
- "n=1.82 #moles\n",
- "R=0.0821 #universal gas constant, L.atm/(K.mol)\n",
- "P=n*R*T/V #pressure, atm\n",
- "\n",
- "#Result\n",
- "print\"The presuure in atmospheres is :\",round(P,2),\"atm\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The presuure in atmospheres is : 9.42 atm\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 42
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.4,Page no:187"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "m=7.4 #mass of NH3, g\n",
- "#at STP for NH3 for 1mole of NH3\n",
- "V1=22.41 # volume, L\n",
- "NH3=17.03 #molar mass of NH3, g\n",
- "\n",
- "#Calculation\n",
- "n=m/NH3 #moles of NH3\n",
- "V=n*V1 #volume, L\n",
- "\n",
- "#Result\n",
- "print\"The volume of NH3 under given conditions is :\",round(V,2),\"L\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of NH3 under given conditions is : 9.74 L\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 43
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.5,Page no:188"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "V1=0.55 #volume, L\n",
- "P1=1 #pressure at sea level, atm\n",
- "P2=0.4 #pressurea at 6.5km height, atm\n",
- "\n",
- "#n1=n2 and T1=T2 given hence P1V1=P2V2\n",
- "#Calculation\n",
- "V2=P1*V1/P2 \n",
- "\n",
- "#Result\n",
- "print\"The volume of He balloon at height 6.5km above sea level is :\",round(V2,1),\"L\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of He balloon at height 6.5km above sea level is : 1.4 L\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 44
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.6,Page no:189"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "P1=1.2 # pressure initial, atm\n",
- "T1=18+273 #temperature initial, K\n",
- "T2=85+273 #temperature final, K\n",
- "#volume is constant\n",
- "\n",
- "#Calculation\n",
- "P2=P1*T2/T1 # pressure final,atm\n",
- "\n",
- "#Result\n",
- "print\"The final pressure is :\",round(P2,2),\"atm\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The final pressure is : 1.48 atm\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 45
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.7,Page no:189"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "P1=6.4 # pressure initial, atm\n",
- "P2=1.0 # pressure final, atm\n",
- "T1=8+273 #temperature initial, K\n",
- "T2=25+273 #temperature final, K\n",
- "V1=2.1 #volume initial, mL\n",
- "\n",
- "#Calculation\n",
- "V2=P1*V1*T2/(T1*P2) # volume final, mL\n",
- "\n",
- "#Result\n",
- "print\"The final volume is :\",round(V2),\"mL\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The final volume is : 14.0 mL\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 46
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.8,Page no:191"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "\n",
- "#taking 1 mole of CO2\n",
- "n=1 \n",
- "R=0.0821 #universal gas constant, L. atm/K.mol\n",
- "t=55 #temperature, C\n",
- "T=t+273 #temperature, K\n",
- "P=0.99 #.pressure, atm\n",
- "M=44.01 #molar mass of CO2, g\n",
- "\n",
- "#Calculation\n",
- "d1=P*M/(R*T) #density of CO2, g/L\n",
- "#altenate method\n",
- "#taking 1 mole of CO2\n",
- "mass=M #mass of CO2 in g =mol mass since we are considering 1 mole of CO2\n",
- "V=n*R*T/P #volume, L\n",
- "d2=mass/V #density=mass/volume, g/L\n",
- "\n",
- "#Result\n",
- "print\"The density of CO2 is :\",round(d1,2),\"g/L\\n\"\n",
- "print\"(Alternate Method)the density of CO2 is :\",round(d2,2),\"g/L\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The density of CO2 is : 1.62 g/L\n",
- "\n",
- "(Alternate Method)the density of CO2 is : 1.62 g/L\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 47
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.9,Page no:192"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "d=7.71 # density, g/mL(given)\n",
- "R=0.0821 #universal gas constant, L. atm/K.mol\n",
- "T=36+273 # temp, K\n",
- "P=2.88 #pressure, atm\n",
- "\n",
- "#Calculation\n",
- "M1=d*R*T/P # mol. mass, g/mol\n",
- "#alternate method\n",
- "#considering 1 L of compound\n",
- "V=1 #volume, L\n",
- "n=P*V/(R*T) #no of moles\n",
- "m=7.71 #mass per 1 L, g\n",
- "M2=m/n # mol. mass, g/mol\n",
- "\n",
- "#Result\n",
- "print\"The molecular mass of given compound is :\",round(M1,1),\"g/mol\\n\"\n",
- "print\"{alternate method} the molecular mass of given compound is :\",round(M2,1),\" g/mol\\n\" \n",
- "print\"The molecular formula can be only found by trial and error method as given in the book \\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molecular mass of given compound is : 67.9 g/mol\n",
- "\n",
- "{alternate method} the molecular mass of given compound is : 67.9 g/mol\n",
- "\n",
- "The molecular formula can be only found by trial and error method as given in the book \n",
- "\n"
- ]
- }
- ],
- "prompt_number": 49
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.10,Page no:193"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "percentSi=33 #percent of Si in compound\n",
- "percentF=67 #percent of F in compound\n",
- "P=1.7 #pressure, atm\n",
- "T=35+273 #temp. in K\n",
- "m=2.38 #mass, g\n",
- "V=0.21 #volume, L\n",
- "R=0.0821 #universal Gas constant, L.atm/K.mol\n",
- "m_sif3=85.09\n",
- "\n",
- "#Calculation\n",
- "nSi=percentSi/28.01 #moles of Si in 100g compound\n",
- "nF=percentF/19 #moles of F in 100g compound\n",
- "n=P*V/(R*T) #moles\n",
- "M=m/n #mol. mass=mass/moles, g/mol\n",
- "e=M/m_sif3\n",
- "\n",
- "#Result\n",
- "print\"The molecular mass of given compound is :\",round(M),\"g/mol\\n\"\n",
- "print\"Therefore,molecular formula is (SiF3)%.f\"%round(e),\"OR Si2F6\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molecular mass of given compound is : 169.0 g/mol\n",
- "\n",
- "Therefore,molecular formula is (SiF3)2 OR Si2F6\n"
- ]
- }
- ],
- "prompt_number": 57
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.11,Page no:194"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "VC2H2=7.64 #volume of acetylene, L\n",
- "\n",
- "#Calculation\n",
- "VO2=VC2H2*5/2.0 #volume of O2 required for complete combustion as 5mol O2 react with 2mol acetylene for complete combustion\n",
- "\n",
- "#Result\n",
- "print\"The volume of O2 required for complete combustion of acetylene is :\",VO2,\"L\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The volume of O2 required for complete combustion of acetylene is : 19.1 L\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 35
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.12,Page no:195"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "R=0.0821 #universal Gas constant, L.atm/K.mol\n",
- "T=80+273 #temp in K\n",
- "P=823/760.0 #pressure in atm\n",
- "m=60.0 #mass of NaN3, g\n",
- "NaN3=65.02 #mol. mass of NaN3, g\n",
- "\n",
- "#Calculation\n",
- "nN2=m*3.0/(2.0*NaN3) #moles of N2\n",
- "nN2=round(nN2,2)\n",
- "VN2=nN2*R*T/P #from ideal gas law\n",
- "#Result\n",
- "print\"\\t the volume of N2 generated is :\",round(VN2,1),\"L\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\t the volume of N2 generated is : 36.9 L\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 61
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.13,Page no:196"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "R=0.0821 #universal Gas constant, L.atm/K.mol\n",
- "T=312 #temp in K\n",
- "V=2.4*10**5 #volume, L\n",
- "P1=7.9*10**-3 #pressure initial in atm\n",
- "P2=1.2*10**-4 #pressure final in atm\n",
- "\n",
- "#Calculation\n",
- "Pdrop=P1-P2 #pressure drop, atm\n",
- "n=Pdrop*V/(R*T) #moles of Co2 reacted\n",
- "Li2CO3=73.89 #mol. mass of Li2CO3, g\n",
- "mLi2CO3=n*Li2CO3 #mass of Li2CO3, g\n",
- "\n",
- "\n",
- "#Result\n",
- "print\"The mass of Li2CO3 formed is :%.1e\"%mLi2CO3,\"g Li2CO3\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of Li2CO3 formed is :5.4e+03 g Li2CO3\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 64
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.14,Page no:199"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "nNe=4.46 #moles of Ne\n",
- "nXe=2.15 #moles of Xe\n",
- "nAr=0.74 #moles of Ar\n",
- "PT=2 #total pressure in atm\n",
- "\n",
- "#Calculation\n",
- "XNe=nNe/(nNe+nAr+nXe) #mole fraction of Ne\n",
- "XAr=nAr/(nNe+nAr+nXe) #mole fraction of Ar\n",
- "XXe=nXe/(nNe+nAr+nXe) #mole fraction of Xe\n",
- "PNe=XNe*PT #partial pressure of Ne\n",
- "PAr=XAr*PT #partial pressure of Ar\n",
- "PXe=XXe*PT #partial pressure of Xe\n",
- "\n",
- "#Result\n",
- "print\"The partial pressures of Ne, Ar and Xe are:\"\n",
- "print\"PNe=\",round(PNe,2),\"atm\\n\",\"PAr=\",round(PAr,2),\"atm\\nPXe=\",round(PXe,3),\"atm \"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The partial pressures of Ne, Ar and Xe are:\n",
- "PNe= 1.21 atm\n",
- "PAr= 0.2 atm\n",
- "PXe= 0.585 atm \n"
- ]
- }
- ],
- "prompt_number": 70
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.15,Page no:200"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "PT=762 #pressure total, mmHg\n",
- "PH2O=22.4 #pressure of water vapor, mmHg\n",
- "PO2=PT-PH2O #pressure of O2, frm Dalton's law, mmHg\n",
- "M=32 #mol mass of O2, g\n",
- "R=0.0821 #universal Gas constant, L.atm/K.mol\n",
- "T=24+273 #temp in K\n",
- "V=0.128 #volume in L\n",
- "\n",
- "#Calculation\n",
- "m=(PO2/760)*V*M/(R*T) #mass of mass of O2 collected, g\n",
- "\n",
- "#Result\n",
- "print\"The mass of O2 collected is :\",round(m,3),\"g\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The mass of O2 collected is : 0.163 g\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 71
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.16,Page no:207"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "R=8.314 #universal Gas constant, J/K mol\n",
- "T=25+273 #temp in K\n",
- "import math\n",
- "#Calculation\n",
- "#for O2\n",
- "M=4.003*10**-3 #mol mass in kg\n",
- "Urms=math.sqrt(3*R*T/M) #rms velocity, m/s\n",
- "print\"\\t the rms velocity of O2 collected is :%.2e\"%Urms,\"m/s\\n\"\n",
- "#for N2\n",
- "M=28.02*10**-3 #mol mass in kg\n",
- "Urms=math.sqrt(3*R*T/M) #rms velocity, m/s\n",
- "\n",
- "#Result\n",
- "print\"\\t the rms velocity of N2 collected is :\",round(Urms),\" m/s\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\t the rms velocity of O2 collected is :1.36e+03 m/s\n",
- "\n",
- "\t the rms velocity of N2 collected is : 515.0 m/s\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.17,Page no:209"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "t2=1.5 #diffusion time of compound, min\n",
- "t1=4.73 #diffusion time of Br, min\n",
- "M2=159.8 #mol mass of Br gas, g\n",
- "\n",
- "#Calculation\n",
- "M=(t2/t1)**2*M2 #molar gas of unknown gas, g(from Graham's Law of Diffusion)\n",
- "\n",
- "#Result\n",
- "print\"\\t the molar mass of unknown gas is :\",round(M,1),\"g/mol\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\t the molar mass of unknown gas is : 16.1 g/mol\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 76
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:5.18,Page no:213"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#(a)\n",
- "V=5.2 #volume, L\n",
- "T=47+273 \n",
- "n=3.5 \n",
- "R=0.0821 #universal Gas constant, L.atm/K.mol\n",
- "\n",
- "#Calculation\n",
- "P=n*R*T/V \n",
- "print\"The pressure of NH3 gas from ideal gas equation is :\",round(P,1),\"atm\\n\"\n",
- "#(b)\n",
- "a=4.17 #constant, atm.L2/mol2\n",
- "b=0.0371 #constant, L/mol\n",
- "Pc=a*n**2/V**2 #pressure correction term, atm\n",
- "Vc=n*b #volume correction term, L\n",
- "P=n*R*T/(V-Vc)-Pc #from van der waals equation, pressure, atm\n",
- "\n",
- "#Result\n",
- "print\"The pressure of NH3 gas from van der waals equation is :\",round(P,1),\"atm\\n\" "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The pressure of NH3 gas from ideal gas equation is : 17.7 atm\n",
- "\n",
- "The pressure of NH3 gas from van der waals equation is : 16.2 atm\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 80
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_6.ipynb b/Chemistry/Chapter_6.ipynb
deleted file mode 100755
index c09bdeb7..00000000
--- a/Chemistry/Chapter_6.ipynb
+++ /dev/null
@@ -1,422 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 6:Thermochemistry"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.1,Page no:237"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "P1=0 #external pressure, atm\n",
- "Vf1=6 #final volume, L\n",
- "Vi1=2 #initial volume, L\n",
- "P2=1.2 #external pressure, atm\n",
- "Vf2=6 #final volume, L\n",
- "Vi2=2 #initial volume, L\n",
- "\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "W1=-P1*(Vf1-Vi1) #work in atm.L\n",
- "#(b)\n",
- "W2=-P2*(Vf2-Vi2) #work in atm.L\n",
- "W2=W2*101.3 #work in J\n",
- "\n",
- "#Result\n",
- "print\"(a).The work done in expansion against vacuum is :\",W1,\"J\\n\"\n",
- "print\"(b).The work done in expansion against 1.2 atm pressure is :%.1e\"%W2,\"J\\n\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a).The work done in expansion against vacuum is : 0 J\n",
- "\n",
- "(b).The work done in expansion against 1.2 atm pressure is :-4.9e+02 J\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 44
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.2,Page no:238"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "q=-128 #heat transfer from the gas, J\n",
- "w=462 #work done in compressing the gas, J\n",
- "\n",
- "#Calculation\n",
- "deltaE=q+w #change in energy of the gas, J\n",
- "\n",
- "#Result\n",
- "print\"The change in energy for the process is :\",deltaE,\"J\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The change in energy for the process is : 334 J\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 45
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.3,Page no:243"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "mSO2=87.9 #mass in g\n",
- "SO2=64.07 #molar mass in g\n",
- "\n",
- "#Calculation\n",
- "nSO2=mSO2/SO2 #moles of SO2\n",
- "deltaH=-198.2 #heat produced for 2 mol, in kJ/mol\n",
- "deltaH=deltaH/2 #for one mole SO2,in kJ/mol\n",
- "Hprod=deltaH*nSO2 #heat produced in this case, in kJ/mol\n",
- "\n",
- "#Result\n",
- "print\"The heat produced in a reaction is :\",round(Hprod),\"kJ\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The heat produced in a reaction is : -136.0 kJ\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 46
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.4,Page no:245"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "R=8.314 #gas constant, J/K. mol\n",
- "T=298 #temp in K\n",
- "deltaH=-566 #enthalpy change, kJ/mol\n",
- "deltan=2-3 #change in gas moles\n",
- "\n",
- "#Calculation\n",
- "deltaE=deltaH-R*T*deltan/1000.0 #change in internal energy, kJ/mol\n",
- "\n",
- "#Result\n",
- "print\"The change in internal energy in the reaction is :\",round(deltaE,1),\"kJ/mol\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The change in internal energy in the reaction is : -563.5 kJ/mol\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 47
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.5,Page no:246"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "m=466 #mass in g\n",
- "s=4.184 #specific heat in J/g C\n",
- "\n",
- "#Calculation\n",
- "deltaT=74.6-8.5 #change in temp, C/K\n",
- "q=m*s*deltaT/1000 #amount of heat absorbed, kJ\n",
- "\n",
- "#Result\n",
- "print\"\\t the amount of heat absorbed is :\",round(q),\"kJ\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\t the amount of heat absorbed is : 129.0 kJ\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 48
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.6,Page no:248"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "Ccal=10.17 #heat capacity, kJ/C\n",
- "deltaT=25.95-20.28 #change in temp, C\n",
- "m=1.435 #mass of naphthalene, g\n",
- "molm=128.2 #mol mass of naphthalene, g\n",
- "\n",
- "#Calculation\n",
- "qcal=Ccal*deltaT \n",
- "q=-qcal*molm/m #molar heat of combustion of naphthalene, kJ\n",
- "\n",
- "#Result\n",
- "print\"The molar heat of combustion of naphthalene is :%.3g\"%q,\"kJ/mol\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The molar heat of combustion of naphthalene is :-5.15e+03 kJ/mol\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 49
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.7,Page no:249"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#for water\n",
- "m=100 #mass, g\n",
- "s=4.184 #specific heat, J/g C\n",
- "deltaT=23.17-22.5 #change in temp., C\n",
- "qH2O=m*s*deltaT #heat gained by water, J\n",
- "\n",
- "#for lead\n",
- "qPb=-qH2O #heat lost by lead, J\n",
- "m=26.47 #mass, g\n",
- "\n",
- "#Calculation\n",
- "deltaT=23.17-89.98 #change in temp., C\n",
- "s=qPb/(m*deltaT) #specific heat, J/g C\n",
- "\n",
- "#Result\n",
- "print\"The specific heat of lead is :\",round(s,3),\"J/g C\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The specific heat of lead is : 0.159 J/g C\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 50
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.8,Page no:249"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#for water\n",
- "m=100+100 #mass, g\n",
- "s=4.184 #specific heat, J/g C\n",
- "deltaT=25.86-22.5 #change in temp., C\n",
- "\n",
- "#Calculation\n",
- "qsoln=m*s*deltaT/1000 #heat gained by water, kJ\n",
- "qrxn=-qsoln \n",
- "Hneut=qrxn/(0.5*0.1) \n",
- "\n",
- "#Result\n",
- "print\"The heat of neutralization is :\",round(Hneut,1),\"kJ/mol\\n\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The heat of neutralization is : -56.2 kJ/mol\n",
- "\n"
- ]
- }
- ],
- "prompt_number": 52
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.9,Page no:256"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "deltaH1=-393.5 #kJ/mol\n",
- "deltaH2=-285.8 #kJ/mol\n",
- "deltaH3=-2598.8 #kJ/mol\n",
- "\n",
- "#Calculation\n",
- "deltaH4=2*(deltaH1)\n",
- "deltaH5=(-1.0/2.0)*deltaH3\n",
- "std_H=deltaH4+deltaH2+deltaH5\n",
- "#Result\n",
- "print\"Standard enthalpy of formation of acetylene is:\",std_H,\"kJ/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1299.4\n",
- "Standard enthalpy of formation of acetylene is: 226.6 kJ/mol\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:6.10,Page no:258"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "deltaH_Fel=12.4 #Heat of frmtn of Fe(l) in kJ/mol\n",
- "deltaH_Al2O3=-1669.8 #Heat of formation of Al2O3 in kJ/mol\n",
- "deltaH_Al=0 #Heat of formation of Al\n",
- "deltaH_Fe2O3=-822.2 #Heat of formtion of Fe2O3 kJ/mol\n",
- "M_Al=26.98 #Molar mass of Al\n",
- "\n",
- "#Calculation\n",
- "deltaH_rxn=(deltaH_Al2O3+2*deltaH_Fel)-(2*deltaH_Al+deltaH_Fe2O3)\n",
- "ratio=deltaH_rxn/2.0\n",
- "heat_released=ratio/M_Al\n",
- "\n",
- "#Result\n",
- "print\"Heat released per gram of Al is\",round(heat_released,2),\"kJ/g\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Heat released per gram of Al is -15.25 kJ/g\n"
- ]
- }
- ],
- "prompt_number": 7
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_7.ipynb b/Chemistry/Chapter_7.ipynb
deleted file mode 100755
index ebd9568b..00000000
--- a/Chemistry/Chapter_7.ipynb
+++ /dev/null
@@ -1,312 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 7:Quantum theorem and electronic structure of Atoms"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:7.1,Page no:27"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "lamda=522*10**-9 #wavelength, m\n",
- "c=3*10**8 #speed of light in vacuum, m/s\n",
- "\n",
- "#Calculation\n",
- "v=c/lamda #frequency, Hz\n",
- "\n",
- "#Result\n",
- "print\"The frequency of the wave is :%.2e\"%v,\"Hz\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The frequency of the wave is :5.75e+14 Hz\n"
- ]
- }
- ],
- "prompt_number": 58
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:7.2,Page no:280"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "c=3*10**8 #speed of light in vacuum, m/s\n",
- "h=6.63*10**-34 #planck's constant, J s\n",
- "lamda1=5*10**-5 #wavelength, m\n",
- "lamda2=5*10**-11 #wavelength, m\n",
- "\n",
- "#Calculation\n",
- "#(a)\n",
- "E1=h*c/lamda1 #energy, J\n",
- "#(b)\n",
- "E2=h*c/lamda2 #energy, J\n",
- "\n",
- "#Result\n",
- "print\"(a) the energy of the photon is :%.2e\"%E1,\"J\"\n",
- "print\"(b) the energy of the photon is :%.2e\"%E2,\"J\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) the energy of the photon is :3.98e-21 J\n",
- "(b) the energy of the photon is :3.98e-15 J\n"
- ]
- }
- ],
- "prompt_number": 59
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:7.3,Page no:281"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "W=3.42*10**-19 #Work function of cesium in J\n",
- "h=6.63*10**-34 #planck's constant in J.s\n",
- "v2=10**15 #Freq for irridation in s-1\n",
- "\n",
- "#Calculation\n",
- "#part a\n",
- "KE=0\n",
- "#hv=KE+w\n",
- "v=W/h\n",
- "#part b\n",
- "KE=h*v2-W\n",
- "\n",
- "#Result\n",
- "print\"(a)Minimum frequency of light is %.2e\"%v,\"s**-1\"\n",
- "print\"(b).Kinetic energy of ejected electron is\",KE,\"J\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a)Minimum frequency of light is 5.16e+14 s**-1\n",
- "(b).Kinetic energy of ejected electron is 3.21e-19 J\n"
- ]
- }
- ],
- "prompt_number": 60
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:7.4,Page no:287"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "c=3*10**8 #speed of light in vacuum, m/s\n",
- "h=6.63*10**-34 #planck's constant, J s\n",
- "Rh=2.18*10**-18 #rydberg's constant, J\n",
- "ni=5.0 #initial orbit\n",
- "nf=2.0 #final orbit\n",
- "\n",
- "#Calculation\n",
- "deltaE=Rh*(1/ni**2-1/nf**2) \n",
- "lamda=c*h/-deltaE \n",
- "\n",
- "#Result\n",
- "print\"The wavelength of the photon is :\",round(lamda*10**9),\"nm\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The wavelength of the photon is : 434.0 nm\n"
- ]
- }
- ],
- "prompt_number": 61
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:7.5,Page no:291"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "h=6.63*10**-34 #planck's constant, J s\n",
- "m1=0.06 #mass, kg\n",
- "u1=68.0 #speed, m/s\n",
- "m2=9.1094*10**-31 #mass, kg\n",
- "u2=68 #speed, m/s\n",
- "\n",
- "#Calculation\n",
- "# (a)\n",
- "lamda1=h/(m1*u1) #wavelength, m\n",
- "#(b)\n",
- "lamda2=h/(m2*u2) #wavelength, m\n",
- "\n",
- "#Result\n",
- "print\"The wavelength of the tennis ball is :\",lamda1,\"m\"\n",
- "print\"The wavelength of the electron is :%.1e\"%lamda2,\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The wavelength of the tennis ball is : 1.625e-34 m\n",
- "The wavelength of the electron is :1.1e-05 m\n"
- ]
- }
- ],
- "prompt_number": 62
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:,7.7,Page no:299"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "n=3 #Principal quantum no\n",
- "\n",
- "#Calculation\n",
- "#The possible values of l are 0,1,2\n",
- "s=1 #One 3s orbital,n=3,l=0,ml=0\n",
- "p=3 #Three p obitals\n",
- "d=5 #five 'd' orbital\n",
- "total=s+p+d\n",
- "\n",
- "#Result\n",
- "print\"The total no of orbitals is:\",total"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The total no of orbitals is: 9\n"
- ]
- }
- ],
- "prompt_number": 63
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:7.9,Page no:306"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "n=3 #Principal quantum number\n",
- "l=[0,1,2]\n",
- "n=[0,0,0]\n",
- "\n",
- "#Calculation\n",
- "print\"Value of l \\t\\t No of orbitals(2l+1)\"\n",
- "print\"--------------------------------------------\"\n",
- "total=0\n",
- "for i in range(0,3):\n",
- " n[i]=2*l[i]+1\n",
- " print l[i],\"\\t\\t\\t\\t\",n[i]\n",
- " total=n[i]+total\n",
- "max=2*total\n",
- "\n",
- "#Result\n",
- "print\"The maximum number of electrons that can reside is\",max\n",
- " \n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Value of l \t\t No of orbitals(2l+1)\n",
- "--------------------------------------------\n",
- "0 \t\t\t\t1\n",
- "1 \t\t\t\t3\n",
- "2 \t\t\t\t5\n",
- "The maximum number of electrons that can reside is 18\n"
- ]
- }
- ],
- "prompt_number": 64
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/Chapter_9.ipynb b/Chemistry/Chapter_9.ipynb
deleted file mode 100755
index a6cb1698..00000000
--- a/Chemistry/Chapter_9.ipynb
+++ /dev/null
@@ -1,130 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 9:Chemical Bonding I\n",
- "Basic Concepts"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:9.13,Page no:397"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#Type of bond broken:\n",
- "hh_no=1 #No.of bonds broken\n",
- "hh_be=436.4 #Bond enthalpy in kJ/mol\n",
- "hh_ec=436.4 #Energy Change in kJ/mol\n",
- "cl_no=1 #No.of bonds broken\n",
- "cl_be=242.7 #Bond enthalpy in kJ/mol\n",
- "cl_ec=242.7 #Energy Change in kJ/mol\n",
- "#Type of bonds formed\n",
- "hcl_no=2 #No.of bonds formed\n",
- "hcl_be=431.9 #Bond enthalpy in kJ/mol\n",
- "hcl_ec=863.8 #Energy Change in kJ/mol\n",
- "#data:\n",
- "Hf_hcl=-92.3 #Heat of formation of Hcl in kJ/mol\n",
- "Hf_H2=0 #Heat of formation of H2 in kJ/mol\n",
- "Hf_Cl2=0 #Heat of formation of Cl2 in kJ/mol \n",
- "\n",
- "#Calculation\n",
- "energy_in=hh_ec+cl_ec #Total energy input in kJ/mol\n",
- "energy_rlsd=hcl_ec #Total energy released\n",
- "delta_H=energy_in-energy_rlsd #enthalpy change in kJ/mol\n",
- "delta_Ho=2*(-92.3)-(Hf_H2+Hf_Cl2) #Ethalpy change from eq 6.18\n",
- "\n",
- "\n",
- "#Result\n",
- "print \"Using equation 9.3,delta_H=\",delta_H,\"kJ/mol\"\n",
- "print\"Alternatively:\"\n",
- "print\"Enthalpy change is:\",delta_Ho,\"kJ/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Using equation 9.3,delta_H= -184.7 kJ/mol\n",
- "Alternatively:\n",
- "Enthalpy change is: -184.6 kJ/mol\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example no:9.14,Page no:398"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Variable declaration\n",
- "#Type of bond broken:\n",
- "hh_no=2 #No.of bonds broken\n",
- "hh_be=436.4 #Bond enthalpy in kJ/mol\n",
- "hh_Ec=872.8 #Energy Change in kJ/mol\n",
- "oo_no=1 #No.of bonds broken\n",
- "oo_be=498.7 #Bond enthalpy in kJ/mol\n",
- "oo_Ec=498.7 #Energy Change in kJ/mol\n",
- "#Types of bond formed\n",
- "nn_oh=4 #No.of bonds formed\n",
- "nn_be=460 #Bond enthalpy in kJ/mol\n",
- "bb_Ec=1840 #Energy Change in kJ/mol\n",
- "#data:\n",
- "Hf_h2o=-241.8 #Heat of formation of H2O in kJ/mol\n",
- "Hf_h2=0 #Heat of formation of H2 in kJ/mol\n",
- "Hf_O2=0 #Heat of formation of O2 in kJ/mol\n",
- "\n",
- "#Calculation\n",
- "energy_in=hh_Ec+oo_Ec #Total energy input in kJ/mol\n",
- "energy_rlsd=bb_Ec #Total energy released\n",
- "delta_h=energy_in-energy_rlsd #enthalpy change in kJ/mol\n",
- "delta_Ho=2*(Hf_h2o)-(2*Hf_h2+Hf_O2) #Ethalpy change from eq 6.18\n",
- "\n",
- "#Result\n",
- "print\"Enthalpy change is\",delta_Ho,\"kJ/mol\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Enthalpy change is -483.6 kJ/mol\n"
- ]
- }
- ],
- "prompt_number": 5
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Chemistry/README.txt b/Chemistry/README.txt
deleted file mode 100755
index 28f143a5..00000000
--- a/Chemistry/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Contributed By: Kiran Bala
-Course: btech
-College/Institute/Organization: Ideal Institute of Technology,Ghaziabad
-Department/Designation: Electrical & Electronics Engg
-Book Title: Chemistry
-Author: Raymond Chang
-Publisher: McGraw Hill
-Year of publication: 2010
-Isbn: 9780073511092
-Edition: 10 \ No newline at end of file
diff --git a/Chemistry/screenshots/screen1.png b/Chemistry/screenshots/screen1.png
deleted file mode 100755
index 7bd5aa06..00000000
--- a/Chemistry/screenshots/screen1.png
+++ /dev/null
Binary files differ
diff --git a/Chemistry/screenshots/screen2.png b/Chemistry/screenshots/screen2.png
deleted file mode 100755
index 414d13ea..00000000
--- a/Chemistry/screenshots/screen2.png
+++ /dev/null
Binary files differ
diff --git a/Chemistry/screenshots/screen3.png b/Chemistry/screenshots/screen3.png
deleted file mode 100755
index 43e67e0d..00000000
--- a/Chemistry/screenshots/screen3.png
+++ /dev/null
Binary files differ
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter11.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter11.ipynb
new file mode 100755
index 00000000..c046ab93
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter11.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "Chapter11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 11, Files"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page Number:CP-277"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Program to create a text file\n\nfp = open(\"sample.txt\",\"w\") # open file in write mode\n\nprint \"Type the text and Press enter key at end.\"\nprint\nprint \"Computer Programming in C language is widely used for Science and Engineering applications\"\n# input data to file\nch = ['Computer ','Programming ','in ','C ','language ','is ','widely ','used ','for ','Science ','and ' ,'Engineering ','applications.']\nfor i in ch:\n fp.write(i)\nfp.close()\n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Type the text and Press enter key at end.\n\nComputer Programming in C language is widely used for Science and Engineering applications\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page Number:CP-278"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Program to read text file and count number of vowels\n\nfp = open(\"sample.txt\",\"r\") # open file in read mode\ncount = 0\nprint \"The Content of the file is:\"\n\nwhile (1): \n ch = fp.read(1)\n if not ch:\n break\n print ch\n # switch statements\n if ch == \"A\" or ch == \"a\": # case 'A' or 'a'\n count = count + 1\n elif ch == \"E\" or ch == \"e\": # case 'E' or 'e'\n count = count + 1\n elif ch == \"I\" or ch == \"i\": # case 'I' or 'i'\n count = count + 1\n elif ch == \"O\" or ch == \"o\": # case 'O' or 'o'\n count = count + 1\n elif ch == \"U\" or ch == \"u\": # case 'U' or 'u'\n count = count + 1\n\n\n\nfp.close() \nprint \"Number of vowels present =\",count \n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Content of the file is:\nC\no\nm\np\nu\nt\ne\nr\n \nP\nr\no\ng\nr\na\nm\nm\ni\nn\ng\n \ni\nn\n \nC\n \nl\na\nn\ng\nu\na\ng\ne\n \ni\ns\n \nw\ni\nd\ne\nl\ny\n \nu\ns\ne\nd\n \nf\no\nr\n \nS\nc\ni\ne\nn\nc\ne\n \na\nn\nd\n \nE\nn\ng\ni\nn\ne\ne\nr\ni\nn\ng\n \na\np\np\nl\ni\nc\na\nt\ni\no\nn\ns\n.\nNumber of vowels present = 31\n"
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter2.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter2.ipynb
new file mode 100755
index 00000000..c4bc71ff
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter2.ipynb
@@ -0,0 +1,41 @@
+{
+ "metadata": {
+ "name": "Chapter2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 2, Fundamentals of C language"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page Number: CP-22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# variable declaration\n\na = 5\nb = 7\nc = 2\n\n# calculation \n\ny = a + b / c - a % c + 2 * a\n\n# result \n\nprint \"The result is \",y\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The result is 17\n"
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter3.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter3.ipynb
new file mode 100755
index 00000000..04d24871
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter3.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0ff7bb47f00bae9dc5a49237df7011debd17443ba836341d55e8fe830338ade7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Input/Output Functions and Statements"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to add and find product of two numbers\n",
+ "\n",
+ "#variable declaration\n",
+ "a = 5\n",
+ "b = 3\n",
+ "\n",
+ "# calculation of sum and product \n",
+ "\n",
+ "summ = a + b\n",
+ "product = a * b\n",
+ "\n",
+ "print a,b\n",
+ "print summ,product"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5 3\n",
+ "8 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert degree fahrenheit to celcius \n",
+ "# variable declaration\n",
+ "\n",
+ "f = 105.00\n",
+ "print \"Degree fahrenheit ? %d\" % f\n",
+ "# calculation of degree in celcius \n",
+ "\n",
+ "c = 5.0/9.0 * (f-32)\n",
+ "\n",
+ "# result \n",
+ "print\n",
+ "print \"Degree centigrade =%6.2f\" % c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Degree fahrenheit ? 105\n",
+ "\n",
+ "Degree centigrade = 40.56\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To find area of a triangle\n",
+ "# variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 4\n",
+ "c = 6\n",
+ "\n",
+ "\n",
+ "# calculation of area\n",
+ "s = float((a+b+c))/2\n",
+ "area = (s*(s-a)*(s-b)*(s-c)) ** 0.5\n",
+ "\n",
+ "# result\n",
+ "print \"Enter three sides : %d\" % a,b,c\n",
+ "print \n",
+ "print \"Area of triangle = %0.2f Sq.units\" % area"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three sides : 5 4 6\n",
+ "\n",
+ "Area of triangle = 9.92 Sq.units\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To print ASCII value of a given character \n",
+ "# Variable declaration\n",
+ "\n",
+ "ch = \"A\"\n",
+ "print \"Enter a character : \" , ch\n",
+ "\n",
+ "# Calculation of ASCII value of a character\n",
+ "\n",
+ "print \n",
+ "print \"ASCII value of \" + ch + \" is\" ,ord(ch)\n",
+ "print \"Press any key to stop. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character : A\n",
+ "\n",
+ "ASCII value of A is 65\n",
+ "Press any key to stop. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To print electricity for consumers\n",
+ "# Variable declaration\n",
+ "\n",
+ "sno = \"TMR65358\"\n",
+ "pmr = 4305\n",
+ "cmr = 4410\n",
+ "\n",
+ "print \"Enter service number :\" ,sno\n",
+ "print \"Previous meter reading ?\",pmr\n",
+ "print \"Current meter reading ?\",cmr\n",
+ "\n",
+ "# Calculation of electricity charges\n",
+ "\n",
+ "units = cmr - pmr\n",
+ "amt = units * 1.50\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print\n",
+ "print \" Electricity Bill\"\n",
+ "print \" ----------------\"\n",
+ "print \"Service No :\",sno\n",
+ "print \"Unit Consumed :\",units\n",
+ "print \"Electricity Charges : Rs.%0.2f\" % amt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter service number : TMR65358\n",
+ "Previous meter reading ? 4305\n",
+ "Current meter reading ? 4410\n",
+ "\n",
+ " Electricity Bill\n",
+ " ----------------\n",
+ "Service No : TMR65358\n",
+ "Unit Consumed : 105\n",
+ "Electricity Charges : Rs.157.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to swap value of two variables\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 15\n",
+ "b = 250 \n",
+ "\n",
+ "print \"Enter value to A :\",a\n",
+ "print \"Enter value to B :\",b\n",
+ "\n",
+ "# Swapping\n",
+ "\n",
+ "temp = a\n",
+ "a = b\n",
+ "b = temp\n",
+ "\n",
+ "print \n",
+ "print \"Value of A =\",a\n",
+ "print \"Value of B =\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to A : 15\n",
+ "Enter value to B : 250\n",
+ "\n",
+ "Value of A = 250\n",
+ "Value of B = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter4.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter4.ipynb
new file mode 100755
index 00000000..368164f3
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter4.ipynb
@@ -0,0 +1,524 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c9e723d7feeae217ee8ddaf1b9cf8cfab2d696821fa911ff65107b9da6bec9f0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Control Statements in C "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of two numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 8\n",
+ "\n",
+ "print \"Enter two numbers : %d\" % a,b\n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "big = a\n",
+ "if (b>big):\n",
+ " big = b\n",
+ "\n",
+ "print \"Biggest number is \",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5 8\n",
+ "Biggest number is 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find biggest of three numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 13\n",
+ "c = 8\n",
+ "\n",
+ "print \"Enter three numbers : %d\" % a,b,c\n",
+ "\n",
+ "# Calculate\n",
+ "\n",
+ "big = a\n",
+ "if (b>big):\n",
+ " big = b\n",
+ "if (c>big):\n",
+ " big = c\n",
+ "\n",
+ "print \"Biggest number is\",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers : 5 13 8\n",
+ "Biggest number is 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find biggest of three numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 18\n",
+ "b = -5\n",
+ "c = 13\n",
+ " \n",
+ "print \"Enter three numbers : %d\" % a,b,c\n",
+ "\n",
+ "# Calculation to find biggest number\n",
+ "\n",
+ "if (a>b):\n",
+ " if(a>c):\n",
+ " big = a\n",
+ " else:\n",
+ " big = c\n",
+ "else:\n",
+ " if(b>c):\n",
+ " big = b\n",
+ " else:\n",
+ " big = c\n",
+ "\n",
+ "print \"Biggest number is\",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers : 18 -5 13\n",
+ "Biggest number is 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y \n",
+ "# Variable declration\n",
+ "\n",
+ "x = 0.42\n",
+ "n = 5\n",
+ "\n",
+ "print \"Enter value to x and n :\" , x,n \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "if (n==1):\n",
+ " y = 1 + x\n",
+ "elif (n==2):\n",
+ " y = 1 + x / n\n",
+ "elif (n==3):\n",
+ " y = 1 + (x ** n)\n",
+ "else:\n",
+ " y = 1 + n * x\n",
+ "\n",
+ "\n",
+ "print \"Value of y(x,n) = %0.2f\" % y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x and n : 0.42 5\n",
+ "Value of y(x,n) = 3.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.42\n",
+ "n = 5\n",
+ "\n",
+ "\n",
+ "print \"Enter value to x and n :\", x,n\n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# Switch case statements \n",
+ "if n == 1: # case 1\n",
+ " y = 1 + x\n",
+ "elif n == 2: # case 2\n",
+ " y = 1 + x / n\n",
+ "elif n == 3: # case 3\n",
+ " y = 1 + (x ** n)\n",
+ "else: # default\n",
+ " y = 1 + n * x\n",
+ "\n",
+ "print \"Value of y(x,n) = %0.2f\" % y "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x and n : 0.42 5\n",
+ "Value of y(x,n) = 3.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to caculate the commission for sales representatives\n",
+ "# Variable declaration\n",
+ "\n",
+ "sales = 4500\n",
+ "\n",
+ "print \"Sales amount ? :\" , sales\n",
+ "\n",
+ "# Calculation of commission\n",
+ "\n",
+ "if (sales <= 500):\n",
+ " comm = 0.05 * sales\n",
+ "elif (sales <= 2000):\n",
+ " comm = 35 + 0.10 * (sales - 500)\n",
+ "elif (sales <= 5000):\n",
+ " comm = 185 + 0.12 * (sales - 2000)\n",
+ "else:\n",
+ " comm = 0.125 * sales\n",
+ "\n",
+ "\n",
+ "print \"Commission Amount Rs.%0.2f\" % comm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sales amount ? : 4500\n",
+ "Commission Amount Rs.485.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find roots of a quadratic equation\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 1\n",
+ "b = 3\n",
+ "c = 2\n",
+ "\n",
+ "print \"Enter coefficients a, b, and c :\", a,b,c\n",
+ "\n",
+ "d = b * b - 4 * a * c\n",
+ "\n",
+ "# Calculation of roots\n",
+ "\n",
+ "if (d > 0):\n",
+ " x1 = (-b + (d ** 0.5)) / (2 * a)\n",
+ " x2 = (-b - (d ** 0.5)) / (2 * a)\n",
+ " print \"Roots are real and unequal \"\n",
+ " print x1,x2\n",
+ " \n",
+ "\n",
+ "elif(d == 0):\n",
+ " x = -b / (2 * a)\n",
+ " print \"Roots are real and equal\"\n",
+ " print \"%6.2f\" % x\n",
+ "\n",
+ "else:\n",
+ " print \"No Real roots, roots are complex\"\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter coefficients a, b, and c : 1 3 2\n",
+ "Roots are real and unequal \n",
+ "-1.0 -2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print grade\n",
+ "# Variable declaration\n",
+ "\n",
+ "avg_marks = 84\n",
+ "\n",
+ "print \"Average marks ?\",avg_marks\n",
+ "\n",
+ "# Calculation of grade\n",
+ "\n",
+ "if (avg_marks >= 80) and (avg_marks <= 100):\n",
+ " print \"Honours\"\n",
+ "elif (avg_marks >= 60) and (avg_marks <=79):\n",
+ " print \"First Division\"\n",
+ "elif (avg_marks >= 50) and (avg_marks <= 59):\n",
+ " print \"Second Division\"\n",
+ "else:\n",
+ " print \"Fail\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average marks ? 84\n",
+ "Honours\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate electirc charges for domestic consumers\n",
+ "# Variable declaration\n",
+ "\n",
+ "units = 348\n",
+ "\n",
+ "print \"Enter consumed units :\",units\n",
+ "\n",
+ "# Calculation of electric charges\n",
+ "\n",
+ "if (units <= 200):\n",
+ " amt = 0.5 * units\n",
+ "elif (units <= 400):\n",
+ " amt = 100 + 0.65 * (units - 200)\n",
+ "elif (units <= 600):\n",
+ " amt = 230 + 0.8 * (units - 400)\n",
+ "else:\n",
+ " amt = 425 + 1.25 * (units - 600)\n",
+ "print \n",
+ "print \"Amount to be paid Rs.%0.2f\" % amt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter consumed units : 348\n",
+ "\n",
+ "Amount to be paid Rs.196.20\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the grade of steel samples\n",
+ "# Variable declaration\n",
+ "\n",
+ "ts = 800\n",
+ "rh = 180\n",
+ "cc = 3\n",
+ "\n",
+ "print \"Enter tensile strength :\",ts\n",
+ "print \"Enter rockwell hardness :\",rh\n",
+ "print \"Enter carbon content :\",cc\n",
+ "\n",
+ "# Calculation of grade\n",
+ "\n",
+ "if (ts >= 700):\n",
+ " if (rh >= 200):\n",
+ " if (cc <= 6):\n",
+ " print \"Grade is A\"\n",
+ " else:\n",
+ " print \"Grade is B\" \n",
+ " elif (cc <= 6):\n",
+ " print \"Grade is C\"\n",
+ " else:\n",
+ " print \"Grade is E\" \n",
+ "elif (rh >= 200):\n",
+ " if (cc <= 6):\n",
+ " print \"Grade is D\"\n",
+ " else:\n",
+ " print \"Grade is E\"\n",
+ "elif (cc <= 6):\n",
+ " print \"Grade is E\"\n",
+ "else:\n",
+ " print \"Grade is F\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter tensile strength : 800\n",
+ "Enter rockwell hardness : 180\n",
+ "Enter carbon content : 3\n",
+ "Grade is C\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter5.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter5.ipynb
new file mode 100755
index 00000000..52adbd63
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter5.ipynb
@@ -0,0 +1,1103 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1c1423d8954dc10aa9bbb2818169dfeb793cb3bc9435852c4188cde598c54111"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Loop Control Structures in C"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print natural numbers from 1 to n\n",
+ "# Variable decalration\n",
+ "\n",
+ "n = 15\n",
+ "\n",
+ "print \"Enter value to n :\",n\n",
+ "\n",
+ "# Loop to print natural numbers\n",
+ "for r in range(15):\n",
+ " r = r + 1\n",
+ " print r,\n",
+ " \n",
+ " \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to n : 15\n",
+ "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y and print a table for values of x\n",
+ "# Variable declaration\n",
+ "import math\n",
+ "x = 1.0\n",
+ "print \"------------------------\"\n",
+ "print \" x y \"\n",
+ "print \"------------------------\"\n",
+ "while x <= 3.2:\n",
+ " y = 1.36 * ((1 + x + x * x * x) ** 0.5) + ((x) ** (1.0/4)) + math.exp(x)\n",
+ " print \" %0.2f \" %x + \" %0.2f\" % y\n",
+ " x = x + 0.2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "------------------------\n",
+ " x y \n",
+ "------------------------\n",
+ " 1.00 6.07\n",
+ " 1.20 7.06\n",
+ " 1.40 8.23\n",
+ " 1.60 9.60\n",
+ " 1.80 11.20\n",
+ " 2.00 13.09\n",
+ " 2.20 15.30\n",
+ " 2.40 17.91\n",
+ " 2.60 20.99\n",
+ " 2.80 24.64\n",
+ " 3.00 28.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find factorial of given number\n",
+ "# Variable declaration\n",
+ "\n",
+ "k = 4\n",
+ "kfact = 1\n",
+ "\n",
+ "print \"Enter an integer :\",k\n",
+ "\n",
+ "# Loop to generate numbers from 1 to n\n",
+ "\n",
+ "for i in range(1,k + 1):\n",
+ " kfact = kfact*i\n",
+ "\n",
+ " \n",
+ "print \"4 factorial is\",kfact "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer : 4\n",
+ "4 factorial is 24\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print sum of the following series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "s = 0\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "# Calculation of sum\n",
+ "i = 1\n",
+ "j = 1\n",
+ "\n",
+ "for i in range(1,n+1):\n",
+ " term = 0\n",
+ " for j in range(i+1):\n",
+ " term = term + j\n",
+ " s = s + term\n",
+ "\n",
+ "\n",
+ "print \"Sum of the series S =\",s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 4\n",
+ "Sum of the series S = 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compute the values of z based on x and y\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = -1.5\n",
+ "y = 0\n",
+ "\n",
+ "# Loops to generate values of x and y to find z\n",
+ "\n",
+ "while x <= 1.5:\n",
+ " while y <= 3.0:\n",
+ " z = 3 * x * x + 2 * y * y * y - 25.5\n",
+ " print \"Value of y(\",x,\n",
+ " print \",\",y,\n",
+ " print \") =\",z\n",
+ " y = y + 1.0\n",
+ " x = x + 0.5\n",
+ " y = 0\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of y( -1.5 , 0 ) = -18.75\n",
+ "Value of y( -1.5 , 1.0 ) = -16.75\n",
+ "Value of y( -1.5 , 2.0 ) = -2.75\n",
+ "Value of y( -1.5 , 3.0 ) = 35.25\n",
+ "Value of y( -1.0 , 0 ) = -22.5\n",
+ "Value of y( -1.0 , 1.0 ) = -20.5\n",
+ "Value of y( -1.0 , 2.0 ) = -6.5\n",
+ "Value of y( -1.0 , 3.0 ) = 31.5\n",
+ "Value of y( -0.5 , 0 ) = -24.75\n",
+ "Value of y( -0.5 , 1.0 ) = -22.75\n",
+ "Value of y( -0.5 , 2.0 ) = -8.75\n",
+ "Value of y( -0.5 , 3.0 ) = 29.25\n",
+ "Value of y( 0.0 , 0 ) = -25.5\n",
+ "Value of y( 0.0 , 1.0 ) = -23.5\n",
+ "Value of y( 0.0 , 2.0 ) = -9.5\n",
+ "Value of y( 0.0 , 3.0 ) = 28.5\n",
+ "Value of y( 0.5 , 0 ) = -24.75\n",
+ "Value of y( 0.5 , 1.0 ) = -22.75\n",
+ "Value of y( 0.5 , 2.0 ) = -8.75\n",
+ "Value of y( 0.5 , 3.0 ) = 29.25\n",
+ "Value of y( 1.0 , 0 ) = -22.5\n",
+ "Value of y( 1.0 , 1.0 ) = -20.5\n",
+ "Value of y( 1.0 , 2.0 ) = -6.5\n",
+ "Value of y( 1.0 , 3.0 ) = 31.5\n",
+ "Value of y( 1.5 , 0 ) = -18.75\n",
+ "Value of y( 1.5 , 1.0 ) = -16.75\n",
+ "Value of y( 1.5 , 2.0 ) = -2.75\n",
+ "Value of y( 1.5 , 3.0 ) = 35.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find sum of odd integers between 1 to n\n",
+ "# Variable declararion\n",
+ "\n",
+ "n = 10\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "\n",
+ "s = 0\n",
+ "i = 1\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + i\n",
+ " i = i + 2\n",
+ "\n",
+ "print \"Sum of odd integers =\",s"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 10\n",
+ "Sum of odd integers = 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to generate first 50 positive integers that are divisible by 7\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 7\n",
+ "print \"Integers divisible by 7\"\n",
+ "\n",
+ "#loop to print numbers divisible by 7\n",
+ "for n in range(7,353,7):\n",
+ " print n,\n",
+ " \n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Integers divisible by 7\n",
+ "7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217 224 231 238 245 252 259 266 273 280 287 294 301 308 315 322 329 336 343 350\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print integers from 1 to n that are not divisible by 7\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 20\n",
+ "print \"Enter the end value N :\",n\n",
+ "\n",
+ "# Loop to print numbers that are not divisible by 7\n",
+ "\n",
+ "print \"Integers not divisible by 7\"\n",
+ "for k in range(1,n + 1,1):\n",
+ " r = k % 7\n",
+ " if (r != 0):\n",
+ " print k,"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the end value N : 20\n",
+ "Integers not divisible by 7\n",
+ "1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-92 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print sum of digits of an integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 2466\n",
+ "\n",
+ "print \"Enter a positive integer :\",n\n",
+ "\n",
+ "q = n\n",
+ "s = 0\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "print \"Sum of digits =\",s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a positive integer : 2466\n",
+ "Sum of digits = 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to check whether a given number is an armstrong number or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 153\n",
+ "q = n\n",
+ "s = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "\n",
+ "# To check armstrong or not\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r * r * r\n",
+ " q = q / 10\n",
+ "\n",
+ "if (n == s):\n",
+ " print \"%d is an Armstrong number\" % n\n",
+ "else:\n",
+ " print \"%d is not an Armstrong number\" % n\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 153\n",
+ "153 is an Armstrong number\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse a given integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 18532\n",
+ "q = n\n",
+ "rn = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "# Reversing\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " rn = (rn * 10) + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "print \"18532 is reversed as\",rn "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 18532\n",
+ "18532 is reversed as 23581\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 , Page number: CP-95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to accept an integer and print digits using words\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4352\n",
+ "q = n\n",
+ "rn = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "# converting to digits\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " rn = rn * 10 + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "while (rn > 0):\n",
+ " r = rn % 10\n",
+ " if (r == 1):\n",
+ " s = \"One\"\n",
+ " print s,\n",
+ " elif (r == 2):\n",
+ " s = \"Two\"\n",
+ " print s,\n",
+ " elif (r == 3):\n",
+ " s = \"Three\"\n",
+ " print s,\n",
+ " elif (r == 4):\n",
+ " s = \"Four\"\n",
+ " print s,\n",
+ " elif (r == 5):\n",
+ " s = \"Five\"\n",
+ " print s,\n",
+ " elif (r == 6):\n",
+ " s = \"Six\"\n",
+ " print s,\n",
+ " elif (r == 7):\n",
+ " s = \"Seven\"\n",
+ " print s,\n",
+ " elif (r == 8):\n",
+ " s = \"Eight\"\n",
+ " print s,\n",
+ " elif (r == 9):\n",
+ " s = \"Nine\"\n",
+ " print s,\n",
+ " elif (r == 0):\n",
+ " s = \"Zero\"\n",
+ " print s,\n",
+ " rn = rn / 10\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 4352\n",
+ "Four Three Five Two\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find whether a number is prime or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 17\n",
+ "\n",
+ "print \"Enter a positive integer :\",n\n",
+ "\n",
+ "# prime numbers are greater than 1\n",
+ "if n > 1:\n",
+ " # check for factors\n",
+ " for i in range(2,n):\n",
+ " if (n % i) == 0:\n",
+ " print(n,\"is not a prime number\")\n",
+ " print(i,\"times\",n//i,\"is\",num)\n",
+ " break\n",
+ " else:\n",
+ " print \"%d is a prime number\" % n\n",
+ "\n",
+ "else:\n",
+ " print \"%d is not a prime number\" % n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a positive integer : 17\n",
+ "17 is a prime number\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 , Page number: CP-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to generate Fibonacci series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 25\n",
+ "n1 = 0\n",
+ "n2 = 1\n",
+ "\n",
+ "print \"Enter the final term of the series :\",n\n",
+ "\n",
+ "print n1,n2,\n",
+ "\n",
+ "\n",
+ "newterm = n1 + n2\n",
+ "\n",
+ "# Loop to print fibonacci series\n",
+ "while (newterm <= n):\n",
+ " print newterm,\n",
+ " n1 = n2\n",
+ " n2 = newterm\n",
+ " newterm = n1 + n2\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the final term of the series : 25\n",
+ "0 1 1 2 3 5 8 13 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 , Page number: CP-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to solve the sine series\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.52\n",
+ "n = 10\n",
+ "s = 0\n",
+ "term = x\n",
+ "i = 1\n",
+ "\n",
+ "print \"Enter x in radians :\",x\n",
+ "print \"Enter end term power (n):\",n\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + term\n",
+ " term = (term * x * x *(-1)) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ "\n",
+ "print \"Sum of the series = %0.6f\" % s\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x in radians : 0.52\n",
+ "Enter end term power (n): 10\n",
+ "Sum of the series = 0.496880\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 , Page number: CP-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to solve the cosine series\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.52\n",
+ "s = 0\n",
+ "term = 1\n",
+ "i = 0\n",
+ "n = 10\n",
+ "print \"Enter x in radians :\",x\n",
+ "\n",
+ "# Calculation of cosine series\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + term\n",
+ " term = (term * x * x * (-1)) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ "\n",
+ "\n",
+ "print \"Sum of the series = %0.6f\" % s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x in radians : 0.52\n",
+ "Sum of the series = 0.867819\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 , Page number: CP-102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Program to compute the value of pie\n",
+ "# Variable declaration\n",
+ "\n",
+ "s = 0.0\n",
+ "dr = 1\n",
+ "sign = 1\n",
+ "term = (1.0/dr) * sign\n",
+ "while (math.fabs(term) >= 1.0e-4):\n",
+ " s = s + term\n",
+ " dr = dr + 2\n",
+ " sign = sign * -1\n",
+ " term = (1.0 / dr) * sign\n",
+ "\n",
+ "pie = s * 4\n",
+ "\n",
+ "print \"Value of pie is %.6f\"%pie"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of pie is 3.141393\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 , Page number: CP-104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to evaluate the series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 15\n",
+ "s = 0.00\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "\n",
+ "# Evaluation of series\n",
+ "\n",
+ "for i in range(1,n + 1,1):\n",
+ " s = float(s) + float(1.0 / i)\n",
+ " \n",
+ "\n",
+ "print \"Sum of series = %0.4f\" % s \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 15\n",
+ "Sum of series = 3.3182\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21 , Page number: CP-108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print multiplication table\n",
+ "# Variable declaration\n",
+ "\n",
+ "i = 1\n",
+ "j = 1\n",
+ "\n",
+ "# nested loop to print multiplication tables\n",
+ "\n",
+ "for i in range(1,6):\n",
+ " print \"Multiplication table for\",i\n",
+ " for j in range(1,11):\n",
+ " print \" \",j,\"x\" , i ,\" =\" , j*i\n",
+ " print \"Press any key to continue. . .\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication table for 1\n",
+ " 1 x 1 = 1\n",
+ " 2 x 1 = 2\n",
+ " 3 x 1 = 3\n",
+ " 4 x 1 = 4\n",
+ " 5 x 1 = 5\n",
+ " 6 x 1 = 6\n",
+ " 7 x 1 = 7\n",
+ " 8 x 1 = 8\n",
+ " 9 x 1 = 9\n",
+ " 10 x 1 = 10\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 2\n",
+ " 1 x 2 = 2\n",
+ " 2 x 2 = 4\n",
+ " 3 x 2 = 6\n",
+ " 4 x 2 = 8\n",
+ " 5 x 2 = 10\n",
+ " 6 x 2 = 12\n",
+ " 7 x 2 = 14\n",
+ " 8 x 2 = 16\n",
+ " 9 x 2 = 18\n",
+ " 10 x 2 = 20\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 3\n",
+ " 1 x 3 = 3\n",
+ " 2 x 3 = 6\n",
+ " 3 x 3 = 9\n",
+ " 4 x 3 = 12\n",
+ " 5 x 3 = 15\n",
+ " 6 x 3 = 18\n",
+ " 7 x 3 = 21\n",
+ " 8 x 3 = 24\n",
+ " 9 x 3 = 27\n",
+ " 10 x 3 = 30\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 4\n",
+ " 1 x 4 = 4\n",
+ " 2 x 4 = 8\n",
+ " 3 x 4 = 12\n",
+ " 4 x 4 = 16\n",
+ " 5 x 4 = 20\n",
+ " 6 x 4 = 24\n",
+ " 7 x 4 = 28\n",
+ " 8 x 4 = 32\n",
+ " 9 x 4 = 36\n",
+ " 10 x 4 = 40\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 5\n",
+ " 1 x 5 = 5\n",
+ " 2 x 5 = 10\n",
+ " 3 x 5 = 15\n",
+ " 4 x 5 = 20\n",
+ " 5 x 5 = 25\n",
+ " 6 x 5 = 30\n",
+ " 7 x 5 = 35\n",
+ " 8 x 5 = 40\n",
+ " 9 x 5 = 45\n",
+ " 10 x 5 = 50\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 , Page number: CP-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Program to convert a binary number to a decimal number\n",
+ "# Variable declaration\n",
+ "\n",
+ "q = 1101\n",
+ "s = 0\n",
+ "k = 0\n",
+ "\n",
+ "print \"Enter the binary number :\",q\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r * pow(2,k)\n",
+ " q = q / 10\n",
+ " k = k + 1\n",
+ "\n",
+ "\n",
+ "print \"The decimal number is :\",s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the binary number : 1101\n",
+ "The decimal number is : 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23 , Page number: CP-110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert a decimal number to a binary number\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 28\n",
+ "q = n\n",
+ "rbi = 0\n",
+ "flag = 0\n",
+ "k = 0\n",
+ "\n",
+ "print \"Enter the decimal number :\",n\n",
+ "\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 2\n",
+ " if (r == 0) and (flag == 0):\n",
+ " k = k + 1\n",
+ " else:\n",
+ " flag = 1\n",
+ " rbi = rbi * 10 + r\n",
+ " q = q / 2\n",
+ " \n",
+ "q = rbi\n",
+ "bi = 0\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " bi = bi * 10 + r\n",
+ " q = q / 10\n",
+ " i = 1\n",
+ " if (q == 0):\n",
+ " while (i <= k):\n",
+ " bi = bi * 10\n",
+ " i = i + 1\n",
+ "\n",
+ "\n",
+ "print \"The binary number is \",bi "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the decimal number : 28\n",
+ "The binary number is 11100\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter6.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter6.ipynb
new file mode 100755
index 00000000..14969fc1
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter6.ipynb
@@ -0,0 +1,794 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aced1a8512bbd1c950b44a0ce98d7bb529f62e617c89b1c73eec08ce49b27311"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Arrays and Subscribed Variables"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the sum of n numbers using array\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [36,45,52,44,62]\n",
+ "\n",
+ "print \"How many integers ?\",n\n",
+ "print \"Enter the 1th value :\",x[0]\n",
+ "print \"Enter the 2th value :\",x[1]\n",
+ "print \"Enter the 3th value :\",x[2]\n",
+ "print \"Enter the 4th value :\",x[3]\n",
+ "print \"Enter the 5th value :\",x[4]\n",
+ "\n",
+ "summ = 0 \n",
+ "\n",
+ "# Calculation of sum of numbers\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ " \n",
+ "\n",
+ "print \"Sum of all integers =\",summ\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many integers ? 5\n",
+ "Enter the 1th value : 36\n",
+ "Enter the 2th value : 45\n",
+ "Enter the 3th value : 52\n",
+ "Enter the 4th value : 44\n",
+ "Enter the 5th value : 62\n",
+ "Sum of all integers = 239\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of n numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [25,-228,0,185,36]\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter all those numbers\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "big = x[0]\n",
+ "\n",
+ "\n",
+ "for i in x:\n",
+ " if (i > big):\n",
+ " big = i\n",
+ "\n",
+ "\n",
+ "print \"%d is the biggest number\" % big "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 5\n",
+ "Enter all those numbers\n",
+ "25 -228 0 185 36\n",
+ "185 is the biggest number\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: Cp-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the arithmetic mean, variance and standard deviation\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [3.1,3.8,3.6,4.0,3.4,3.8]\n",
+ "summ = 0\n",
+ "vsum = 0\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values in the list \"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "# Loop to find sum of all values\n",
+ "\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ "\n",
+ "xbar = summ / n\n",
+ "\n",
+ "# Loop to find the numerator vsum to find variance\n",
+ "\n",
+ "for i in x:\n",
+ " vsum = vsum + (i - xbar) * (i - xbar)\n",
+ "\n",
+ "\n",
+ "sigmax = vsum / n\n",
+ "sd = sigmax ** 0.5\n",
+ "\n",
+ "print \"Arithmetic mean = %0.3f\" % xbar\n",
+ "print \"Variance = %0.3f \" % sigmax\n",
+ "print \"Standard deviation = %0.3f\" % sd"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values in the list \n",
+ "3.1 3.8 3.6 4.0 3.4 3.8\n",
+ "Arithmetic mean = 3.617\n",
+ "Variance = 0.088 \n",
+ "Standard deviation = 0.297\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate mean of marks and print list of marks greater than mean\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [58,63,68,54,48]\n",
+ "summ = 0 # Used summ instead of sum since it was a inbuilt function\n",
+ "i = 0\n",
+ "\n",
+ "print \"How many students ?\",n\n",
+ "print \"Enter all the marks \"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ "\n",
+ "mean = float(summ) / n\n",
+ "\n",
+ "print \"Mean = %0.2f\" % mean\n",
+ "print \"Marks greater than mean :\",\n",
+ "\n",
+ "i = 0\n",
+ "for i in x:\n",
+ " if (i > mean):\n",
+ " print i,\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 5\n",
+ "Enter all the marks \n",
+ "58 63 68 54 48\n",
+ "Mean = 58.20\n",
+ "Marks greater than mean : 63 68\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find sum of all positive and negative numbers and to find out which is larger in magnitude\n",
+ "# Variable declaration\n",
+ "import math\n",
+ "\n",
+ "n = 6\n",
+ "x = [8,-12,-16,12,-9,5]\n",
+ "psum = 0\n",
+ "nsum = 0\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "\n",
+ "# Loop to calculate sum of positive and negative values\n",
+ "\n",
+ "for i in x:\n",
+ " if i > 0:\n",
+ " psum = psum + i\n",
+ " else:\n",
+ " nsum = nsum + i\n",
+ "\n",
+ "print \"Sum of positive values = %0.2f\" % psum\n",
+ "print \"Sum of negative values = %0.2f\" % nsum\n",
+ "\n",
+ "if (psum > abs(nsum)):\n",
+ " print \"Positive sum is greater in magnitude\"\n",
+ "else:\n",
+ " print \"Negative sum is greater in magnitude\"\n",
+ "\n",
+ "diff = abs(psum) - abs(nsum)\n",
+ "print \"Difference in magnitude = %0.2f\" % abs(diff)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values in the list\n",
+ "8 -12 -16 12 -9 5\n",
+ "Sum of positive values = 25.00\n",
+ "Sum of negative values = -37.00\n",
+ "Negative sum is greater in magnitude\n",
+ "Difference in magnitude = 12.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort n numbers in ascending order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [32,-10,20,5]\n",
+ "i = 0\n",
+ "\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter the list of 4 numbers\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print\n",
+ "\n",
+ "# Loop to arrange the numbers in ascending order\n",
+ "\n",
+ "while i < n-1:\n",
+ " j = i + 1\n",
+ " while j < n:\n",
+ " if x[i] > x[j]:\n",
+ " temp = x[i]\n",
+ " x[i] = x[j]\n",
+ " x[j] = temp\n",
+ " j = j + 1\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"Numbers in ascending order \"\n",
+ "\n",
+ "for a in x:\n",
+ " print a,\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 4\n",
+ "Enter the list of 4 numbers\n",
+ "32 -10 20 5\n",
+ "Numbers in ascending order \n",
+ "-10 5 20 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to search the key value and to print it if the search is successful\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [6,-2,8,3,13,10]\n",
+ "s = 3\n",
+ "\n",
+ "print \"How many values in the list ?\",n\n",
+ "print \"Enter all values in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "print \"Enter the key value to be searched :\",s\n",
+ "\n",
+ "# loop to search key value in the list\n",
+ "\n",
+ "for i in range(n):\n",
+ " if s == x[i]:\n",
+ " print s,\" is available in\",i+1,\"th location\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values in the list ? 6\n",
+ "Enter all values in the list\n",
+ "6 -2 8 3 13 10\n",
+ "Enter the key value to be searched : 3\n",
+ "3 is available in 4 th location\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort n numbers using bubble sort and find number of exchanges and passes\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [6,-2,8,3]\n",
+ "exchng = 0\n",
+ "\n",
+ "print \"How many numbers?\",n\n",
+ "print \"Enter all the numbers in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "\n",
+ "print\n",
+ "\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(0,n-i-1):\n",
+ " if x[j] > x[j+1]:\n",
+ " temp = x[j]\n",
+ " x[j] = x[j+1]\n",
+ " x[j+1] = temp\n",
+ " exchng = exchng + 1\n",
+ " \n",
+ "\n",
+ "print \"The sorted list is\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "\n",
+ "print \n",
+ "\n",
+ "print \"Sorted in\",n-1,\"passes and\",exchng,\"exchanges\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers? 4\n",
+ "Enter all the numbers in the list\n",
+ "6 -2 8 3\n",
+ "The sorted list is\n",
+ "-2 3 6 8\n",
+ "Sorted in 3 passes and 3 exchanges\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to add two matrices\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter A matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "print \"Enter B matrix\"\n",
+ "for j in b:\n",
+ " print j\n",
+ "\n",
+ "# Loop to add two matrices\n",
+ "\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " c[i][j] = a[i][j] + b[i][j]\n",
+ "\n",
+ "\n",
+ "print \"Resultant matrix is\"\n",
+ "for ci in c:\n",
+ " print ci"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 2\n",
+ "Enter A matrix\n",
+ "[2, -2]\n",
+ "[0, 4]\n",
+ "Enter B matrix\n",
+ "[6, 2]\n",
+ "[4, -5]\n",
+ "Resultant matrix is\n",
+ "[8, 0]\n",
+ "[4, -1]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to multiply two matrices\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "l = 2\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"Enter order of A matrix :\",m,n\n",
+ "print \"Enter A matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "print \"Enter order of B matrix :\",m,n\n",
+ "print \"Enter B matrix\"\n",
+ "for j in b:\n",
+ " print j\n",
+ "\n",
+ "# Loop to multiply two matrices\n",
+ "# iterate through rowa of A\n",
+ "for i in range(m):\n",
+ " # iterate through columns of B\n",
+ " for j in range(l):\n",
+ " c[i][j] = 0\n",
+ " # iterate through rows of B\n",
+ " for k in range(n):\n",
+ " c[i][j] = c[i][j] + a[i][k] * b[k][j]\n",
+ "\n",
+ "\n",
+ "print \"Resultant matrix is\"\n",
+ "\n",
+ "for i in c:\n",
+ " print i\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of A matrix : 2 2\n",
+ "Enter A matrix\n",
+ "[2, -2]\n",
+ "[0, 4]\n",
+ "Enter order of B matrix : 2 2\n",
+ "Enter B matrix\n",
+ "[6, 2]\n",
+ "[4, -5]\n",
+ "Resultant matrix is\n",
+ "[4, 14]\n",
+ "[16, -20]\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find and print the transpose of the matrix\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 3\n",
+ "a = [[-3,6,0],\n",
+ " [3,2,8]]\n",
+ "at = [[0,0],\n",
+ " [0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"Enter order of the matrix :\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in a :\n",
+ " print i\n",
+ "\n",
+ "# Loop to calculate transpose\n",
+ "\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " at[j][i] = a[i][j]\n",
+ "\n",
+ "print \"The transposed matrix is \"\n",
+ "for i in at:\n",
+ " print i\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of the matrix : 2 3\n",
+ "Enter the matrix values\n",
+ "[-3, 6, 0]\n",
+ "[3, 2, 8]\n",
+ "The transposed matrix is \n",
+ "[-3, 3]\n",
+ "[6, 2]\n",
+ "[0, 8]\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 ,Page number: CP-139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to check whether a given matrix is symmetric or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 3\n",
+ "a = [[5,3,8],\n",
+ " [3,1,-7],\n",
+ " [8,-7,4]]\n",
+ "\n",
+ "print \"Enter order of the square matrix :\",m\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "# Loop to check whether symmetric or not\n",
+ "\n",
+ "for i in range(m):\n",
+ " flag = 0\n",
+ " for j in range(m):\n",
+ " flag = 0\n",
+ " if a[i][j] == a[j][i]:\n",
+ " continue\n",
+ " else:\n",
+ " flag = 1\n",
+ "\n",
+ "if flag == 0:\n",
+ " print \"The given matrix is a symmetric matrix\"\n",
+ "else:\n",
+ " print \"The given matrix is not a symmetric matrix\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of the square matrix : 3\n",
+ "[5, 3, 8]\n",
+ "[3, 1, -7]\n",
+ "[8, -7, 4]\n",
+ "The given matrix is a symmetric matrix\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the trace of a given square matrix\n",
+ "# Variable dclaration\n",
+ "\n",
+ "m = 3\n",
+ "a = [[3,2,-1],\n",
+ " [4,1,8],\n",
+ " [6,4,2]]\n",
+ "summ = 0\n",
+ "\n",
+ "print \"Enter order of the square matrix :\",m\n",
+ "print \"Enter the matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "# Loop to find trace\n",
+ "for i in range(m):\n",
+ " summ = summ + a[i][i]\n",
+ "\n",
+ "print \"Trace of the matrix =\",summ "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter7.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter7.ipynb
new file mode 100755
index 00000000..0d79c17f
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter7.ipynb
@@ -0,0 +1,557 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:37ae6cc76fe6f4a8cc8dba62582a6a103f99da5c7579d1a782cb95241f542fd8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count the occurence of a particular in a string\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"MISSISSIPPI\"\n",
+ "ch = \"S\"\n",
+ "count = 0\n",
+ "\n",
+ "print \"Enter the string :\",st\n",
+ "print \"Which character to be counted ?\",ch\n",
+ "\n",
+ "# Loop to check occurrence of aa character\n",
+ "\n",
+ "l = len(st)\n",
+ "\n",
+ "for i in st:\n",
+ " if i == ch:\n",
+ " count = count + 1\n",
+ "\n",
+ "print \"The character \" + ch + \" occurs %d times\" % count "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string : MISSISSIPPI\n",
+ "Which character to be counted ? S\n",
+ "The character S occurs 4 times\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count the number of vowels in a sentence\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"This is a book\"\n",
+ "count = 0\n",
+ "\n",
+ "print \"Enter the sentence :\"\n",
+ "print st\n",
+ "\n",
+ "# Loop to count the vowels in the string\n",
+ "\n",
+ "for i in st:\n",
+ " if i == \"A\":\n",
+ " count = count + 1\n",
+ " elif i == \"E\":\n",
+ " count = count + 1\n",
+ " elif i == \"I\":\n",
+ " count = count + 1\n",
+ " elif i == \"O\":\n",
+ " count = count + 1\n",
+ " elif i == \"U\":\n",
+ " count = count + 1\n",
+ " elif i == \"a\":\n",
+ " count = count + 1\n",
+ " elif i == \"e\":\n",
+ " count = count + 1\n",
+ " elif i == \"i\":\n",
+ " count = count + 1\n",
+ " elif i == \"o\":\n",
+ " count = count + 1\n",
+ " elif i == \"u\":\n",
+ " count = count + 1\n",
+ "\n",
+ "print \"%d vowels are present in the sentence\" % count\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the sentence :\n",
+ "This is a book\n",
+ "5 vowels are present in the sentence\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to test whether a given string is a palindrome or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"HYDERABAD\"\n",
+ "rst = \"\"\n",
+ "i = 0\n",
+ "j = len(st) - 1\n",
+ "\n",
+ "print \"Enter the string :\",st\n",
+ "\n",
+ "# Palindrome or not \n",
+ "\n",
+ "rst = reversed(st)\n",
+ "\n",
+ "if list(st) == list(rst):\n",
+ " print \"%s is a palindrome string \" % st\n",
+ "else:\n",
+ " print \"%s is not a palindrome string \" % st"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string : HYDERABAD\n",
+ "HYDERABAD is not a palindrome string \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to conctenate two strings\n",
+ "# Variable declaration\n",
+ "\n",
+ "st1 = \"NEW \"\n",
+ "st2 = \"DELHI\"\n",
+ "\n",
+ "# input of two strings to be concatenated\n",
+ "\n",
+ "print \"Enter first string :\",st1\n",
+ "print \"Enter second string :\",st2\n",
+ "\n",
+ "# concatenation of two strings\n",
+ "st = st1 + st2\n",
+ "\n",
+ "print \"Resultant string is \",st "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first string : NEW \n",
+ "Enter second string : DELHI\n",
+ "Resultant string is NEW DELHI\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compare two strings\n",
+ "# Variable declaration\n",
+ "\n",
+ "st1 = \"ALPHA\"\n",
+ "st2 = \"BETA\"\n",
+ "\n",
+ "print \"Enter string 1:\",st1\n",
+ "print \"Enter string 2:\",st2\n",
+ "\n",
+ "# compare strings\n",
+ "\n",
+ "if (cmp(st1,st2)>0):\n",
+ " print \"%s \" + st1 + \"is alphabetically greater string\"\n",
+ "else:\n",
+ " print st2 + \" is alphabetically greater string\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string 1: ALPHA\n",
+ "Enter string 2: BETA\n",
+ "BETA is alphabetically greater string\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort an array of names in alphabetical order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "names = [\"DEEPAK\",\"SHERIN\",\"SONIKA\",\"ARUN\"]\n",
+ "\n",
+ "print \"How many names ?\",n\n",
+ "print \"Enter the 4 names one by one\"\n",
+ "for i in names:\n",
+ " print i\n",
+ "\n",
+ "# Loop to arrange names in alphabetical order\n",
+ "\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if cmp(names[i],names[j])>0:\n",
+ " \n",
+ " temp = names[i]\n",
+ " names[i] = names[j]\n",
+ " names[j] = temp\n",
+ "\n",
+ "print \"Names in alphabetical order\"\n",
+ "for i in names:\n",
+ " print i"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many names ? 4\n",
+ "Enter the 4 names one by one\n",
+ "DEEPAK\n",
+ "SHERIN\n",
+ "SONIKA\n",
+ "ARUN\n",
+ "Names in alphabetical order\n",
+ "ARUN\n",
+ "DEEPAK\n",
+ "SHERIN\n",
+ "SONIKA\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert a line from lower case to upper case\n",
+ "# Variable declaretion\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "st = ['l','o','g','i','c','a','l',' ','t','h','i','n','k','i','n','g',' ','i','s',' ','a',' ','m','u','s','t',' ','t','o',' ','l','e','a','r','n',' ','p','r','o','g','r','a','m','m','i','n','g']\n",
+ "\n",
+ "print \"Enter a sentence :\"\n",
+ "for i in st:\n",
+ " print i,\n",
+ "print \n",
+ "print \"The converted upper case string is\"\n",
+ "# loop to convert lower case alphabet to upper case text\n",
+ "for i in range(len(st)):\n",
+ " if st[i] >= 'a' and st[i] <= 'z':\n",
+ " st[i] = chr(ord(st[i])-32)\n",
+ "\n",
+ "\n",
+ " sys.stdout.write(st[i])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a sentence :\n",
+ "l o g i c a l t h i n k i n g i s a m u s t t o l e a r n p r o g r a m m i n g\n",
+ "The converted upper case string is\n",
+ "LOGICAL THINKING IS A MUST TO LEARN PROGRAMMING"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to read a text and to omit al occurrences of a particular word\n",
+ "# Variable declartion\n",
+ "\n",
+ "st = \"TO ACCESS THE NAME OF THE CITY IN THE LIST\"\n",
+ "i = 0\n",
+ "omit = \"THE\"\n",
+ "l = len(st)\n",
+ "j = 0\n",
+ "word = []\n",
+ "newst = \"\"\n",
+ "onesps = \"\"\n",
+ "print \"Enter a sentence :\"\n",
+ "print st\n",
+ "print \"Enter word to omit :\",omit\n",
+ "\n",
+ "# loop to omit the given word\n",
+ "\n",
+ "for i in range(l):\n",
+ " ch = i\n",
+ " if ch == ' ':\n",
+ " for j in word:\n",
+ " j = \" \" \n",
+ " if j == omit:\n",
+ " newst = j\n",
+ " newst = onesps\n",
+ " j = \" \"\n",
+ " j = 0\n",
+ " else:\n",
+ " j = ch\n",
+ " j = j + 1\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"After omiting the word \" + omit\n",
+ "print newst\n",
+ "print \"Press any key to continue\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a sentence :\n",
+ "TO ACCESS THE NAME OF THE CITY IN THE LIST\n",
+ "Enter word to omit : THE\n",
+ "After omiting the word THE\n",
+ "\n",
+ "Press any key to continue\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate the amount to be paid for the telegram\n",
+ "# Variable declaration\n",
+ "\n",
+ "count = 0\n",
+ "st = \"Congratulations on your success in Examinations.\"\n",
+ "l = len(st)\n",
+ "\n",
+ "print \"Type the sentence for Telegram\"\n",
+ "print st\n",
+ "\n",
+ "# loop to count number of words\n",
+ "\n",
+ "for i in range(l):\n",
+ " if st[i] == '?':\n",
+ " count = count + 1\n",
+ "\n",
+ "if count <= 10:\n",
+ " amt = 5\n",
+ "else:\n",
+ " amt = 5 + (count - 10) * 1.25\n",
+ "\n",
+ "print \"Amount to be paid for telegram = Rs.%0.2f\" % amt "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Type the sentence for Telegram\n",
+ "Congratulations on your success in Examinations.\n",
+ "Amount to be paid for telegram = Rs.5.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count number of lines,words and characters\n",
+ "# Variable declaration\n",
+ "\n",
+ "txt = \"What is a string? How do you initialize it? Explain with example.$\"\n",
+ "st = \"\"\n",
+ "i = 0\n",
+ "lns = 0\n",
+ "wds = 0\n",
+ "chs = 0\n",
+ "\n",
+ "print \"Enter the text, type $ at end.\"\n",
+ "print txt\n",
+ "\n",
+ "# loop to count lines,words and characters in text\n",
+ "\n",
+ "while txt[i] != '$':\n",
+ " # switch case statements\n",
+ " if txt[i] == ' ':\n",
+ " wds = wds + 1\n",
+ " chs = chs + 1\n",
+ " elif txt[i] == '.':\n",
+ " wds = wds + 1\n",
+ " lns = lns + 1\n",
+ " chs = chs + 1\n",
+ " elif txt[i] == '?':\n",
+ " lns = lns + 1\n",
+ " else: # default\n",
+ " chs = chs + 1\n",
+ "\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"Number of char (incl. blanks) =\",chs\n",
+ "print \"Number of words =\",wds\n",
+ "print \"Number of lines =\",lns\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the text, type $ at end.\n",
+ "What is a string? How do you initialize it? Explain with example.$\n",
+ "Number of char (incl. blanks) = 63\n",
+ "Number of words = 12\n",
+ "Number of lines = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter8.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter8.ipynb
new file mode 100755
index 00000000..49edb490
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter8.ipynb
@@ -0,0 +1,1027 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0c7b2e51d9ff140f666ba709dd09beff8baf4fe046109218b6f3ac69ed4bb2fe"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to write a function to find factorial and use it to find nCr\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "r = 3\n",
+ "\n",
+ "print \"Enter value to n and r :\",n,r\n",
+ "\n",
+ "# function subprogram to find factorial\n",
+ "\n",
+ "def fact(k):\n",
+ " p = 1\n",
+ " for i in range(1,k+1):\n",
+ " p = p * i\n",
+ " return p\n",
+ "\n",
+ "\n",
+ "ncr = fact(n) / (fact(r) * fact(n-r))\n",
+ "\n",
+ "\n",
+ "print \"Value of nCr =\",ncr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to n and r : 5 3\n",
+ "Value of nCr = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of given three values using function and use it to find total marks of the student\n",
+ "# Variable declaration\n",
+ "\n",
+ "t1 = 62\n",
+ "t2 = 70\n",
+ "t3 = 58\n",
+ "a1 = 17\n",
+ "a2 = 21\n",
+ "a3 = 23\n",
+ "\n",
+ "print \"Enter three test scores :\",t1,t2,t3\n",
+ "print \"Enter three assignment scores :\",a1,a2,a3\n",
+ "\n",
+ "# function to find biggest of three values\n",
+ "\n",
+ "def big(a,b,c):\n",
+ " if a > b:\n",
+ " if a > c:\n",
+ " return a\n",
+ " else:\n",
+ " return c\n",
+ " elif b > c:\n",
+ " return b\n",
+ " else:\n",
+ " return c\n",
+ "\n",
+ "total = big(t1,t2,t3) + big(a1,a2,a3)\n",
+ "\n",
+ "print \"Total marks =\",total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three test scores : 62 70 58\n",
+ "Enter three assignment scores : 17 21 23\n",
+ "Total marks = 93\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to create a function to compute the cos(x) series upto 15 terms\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0\n",
+ "\n",
+ "print \"----------------------------------\"\n",
+ "print \" x in degrees cos(x) \"\n",
+ "print \"----------------------------------\"\n",
+ "\n",
+ "# function for computing cosine function\n",
+ "\n",
+ "def cosine(x):\n",
+ " s = 0\n",
+ " i = 0\n",
+ " term = 1\n",
+ " x = x * (3.14) / 180\n",
+ " k = 1\n",
+ " # loop to find summation of 15 terms\n",
+ " while k <= 15:\n",
+ " s = s + term\n",
+ " term = term * x * x * (-1) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ " k = k + 1\n",
+ " return s\n",
+ "\n",
+ "\n",
+ "# calling function\n",
+ "\n",
+ "while x <= 180:\n",
+ " print \" %d \" % x,\" %0.2f \"%cosine(x)\n",
+ " x = x + 30\n",
+ "\n",
+ "print \"-----------------------------------\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "----------------------------------\n",
+ " x in degrees cos(x) \n",
+ "----------------------------------\n",
+ " 0 1.00 \n",
+ " 30 0.87 \n",
+ " 60 0.50 \n",
+ " 90 0.00 \n",
+ " 120 -0.50 \n",
+ " 150 -0.87 \n",
+ " 180 -1.00 \n",
+ "-----------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find GCD of two integers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 45\n",
+ "b = 27\n",
+ "c = 81\n",
+ "\n",
+ "print \"Enter three integers :\",a,b,c\n",
+ "\n",
+ "def gcd(x,y):\n",
+ " if x >= y:\n",
+ " nr = x\n",
+ " dr = y\n",
+ " else:\n",
+ " nr = y\n",
+ " dr = x\n",
+ " r = nr % dr\n",
+ " while r != 0:\n",
+ " nr = dr\n",
+ " dr = r\n",
+ " r = nr % dr\n",
+ "\n",
+ " return dr\n",
+ "\n",
+ "d1 = gcd(a,b)\n",
+ "d2 = gcd(a,c)\n",
+ "d3 = gcd(b,c)\n",
+ "\n",
+ "if d1 == d2:\n",
+ " if d1 == d3:\n",
+ " print \"Greatest common divisor is\",d1\n",
+ " else:\n",
+ " print \"Greatest common divisor is \",gcd(d1,d3)\n",
+ "else:\n",
+ " print \"Greatest common divisr is\",gcd(d1,d2)\n",
+ "\n",
+ "\n",
+ "print \"Press any key to continue. . .\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three integers : 45 27 81\n",
+ "Greatest common divisor is 9\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse the given integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 2846\n",
+ "\n",
+ "print \"Enter the integer :\",n\n",
+ "\n",
+ "# function to reverse an integer\n",
+ "\n",
+ "def reverse(n):\n",
+ " rn = 0\n",
+ " while n > 0:\n",
+ " r = n % 10\n",
+ " rn = rn * 10 + r\n",
+ " n = n /10\n",
+ " return rn\n",
+ "\n",
+ "\n",
+ "# call the function to print the reverse integer\n",
+ "\n",
+ "print n,\"is reversed as \",reverse(n)\n",
+ "print \"Press any key to continue. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the integer : 2846\n",
+ "2846 is reversed as 6482\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compare two strings S1 and S2 and return the result 0,1,-1\n",
+ "# Variable declaration\n",
+ "\n",
+ "s1 = \"MUMBAI\"\n",
+ "s2 = \"MYSORE\"\n",
+ "\n",
+ "print \"Enter the first string :\",s1\n",
+ "print \"Enter the second string :\",s2\n",
+ "\n",
+ "\n",
+ "# function to compare the strings\n",
+ "\n",
+ "def compare(s1,s2):\n",
+ " if cmp(s1,s2) == 0:\n",
+ " return 0\n",
+ " if cmp(s1,s2) > 0:\n",
+ " return 1\n",
+ " if cmp(s1,s2) < 0:\n",
+ " return -1\n",
+ "\n",
+ "# call the function to print the result\n",
+ "\n",
+ "print \"The result is \", compare(s1,s2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first string : MUMBAI\n",
+ "Enter the second string : MYSORE\n",
+ "The result is -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the arithmetic mean of n values using a function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [3.1,3.8,3.6,4.0,3.4,3.8]\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "# function to find arithmetic mean\n",
+ "\n",
+ "def amean(x,n):\n",
+ " s = 0\n",
+ " for i in range(n):\n",
+ " s = s + x[i]\n",
+ " return (s/n)\n",
+ "\n",
+ "# call function to print arithmetic mean\n",
+ "\n",
+ "print \"Arithmetic mean = %0.2f\" % amean(x,n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values\n",
+ "3.1 3.8 3.6 4.0 3.4 3.8\n",
+ "Arithmetic mean = 3.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to read a matrix of order m x n and print the sum of all elements using functions\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 3\n",
+ "n = 2\n",
+ "a = [[2,3,4],\n",
+ " [2,0,1]]\n",
+ "\n",
+ "\n",
+ "print \"How many rows and columns :\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " print a[i][j],\n",
+ " print \n",
+ "\n",
+ "# function to add all elements in the matrix\n",
+ "def elem_sum(a,m,n):\n",
+ " i = 0\n",
+ " j = 0\n",
+ " s = 0\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " s = s + a[i][j]\n",
+ " j = j + 1\n",
+ " i = i + 1 \n",
+ " return s\n",
+ "\n",
+ "# call function to print the result\n",
+ "\n",
+ "print \"Sum of all elements in the matrix =\",\n",
+ "print elem_sum(a,m,n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns : 3 2\n",
+ "Enter the matrix values\n",
+ "2 3 4\n",
+ "2 0 1\n",
+ "Sum of all elements in the matrix = 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse a string\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"NEW DELHI\"\n",
+ "print \"Enter a string :\",st\n",
+ "def reverse(st):\n",
+ " rst = \"\"\n",
+ " for i in range(0 ,len(st)):\n",
+ " rst += st[(len(st) -1) - i]\n",
+ " return rst\n",
+ "\n",
+ "print st,\"is reversed as \",\n",
+ "print reverse(st)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string : NEW DELHI\n",
+ "NEW DELHI is reversed as IHLED WEN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to apply binary search to set of N numbers using a function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 10\n",
+ "x = [-3,8,13,19,21,25,26,29,35,42]\n",
+ "s = 19\n",
+ "\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter all numbers in the list\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "print \"Enter the number to be searched :\",s\n",
+ "\n",
+ "# function to search the number\n",
+ "\n",
+ "def bi_search(x,n,s):\n",
+ " flag = 0\n",
+ " start = 0\n",
+ " end = n\n",
+ " while start < end and flag ==0:\n",
+ " mid = (start + end) / 2\n",
+ " if x[mid] > s:\n",
+ " end = mid\n",
+ " elif x[mid] < s:\n",
+ " start = mid + 1\n",
+ " else:\n",
+ " flag = 1\n",
+ " return flag\n",
+ "\n",
+ "# calling the function\n",
+ "\n",
+ "if bi_search(x,n,s):\n",
+ " print \"The number\",s,\"is present in the list\"\n",
+ "else:\n",
+ " print \"The number\",s,\"is not present in list\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 10\n",
+ "Enter all numbers in the list\n",
+ "-3 8 13 19 21 25 26 29 35 42\n",
+ "Enter the number to be searched : 19\n",
+ "The number 19 is present in the list\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find factorial of a given number using recursive function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "r = 3\n",
+ "\n",
+ "print \"Enter the values to n and r :\",n,r\n",
+ "\n",
+ "# recursive function to find factorial\n",
+ "\n",
+ "def fact(k):\n",
+ " if k ==1:\n",
+ " return 1\n",
+ " else:\n",
+ " return (k * fact(k-1))\n",
+ "\n",
+ "ncr = fact(n)/(fact(r) * fact(n-r))\n",
+ "print \"Value of nCr =\",ncr "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values to n and r : 5 3\n",
+ "Value of nCr = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 , Page number: CP-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compute the value of x power n using a recursive function\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 4.20\n",
+ "n = 3\n",
+ "\n",
+ "print \"Enter value to x :\",x\n",
+ "print \"Enter its power :\",n\n",
+ "\n",
+ "# recursive function to find x rise to n\n",
+ "\n",
+ "def power(x,n):\n",
+ " if n == 1:\n",
+ " return x\n",
+ " else:\n",
+ " return (x * power(x,n-1))\n",
+ "\n",
+ "\n",
+ "print \"%0.2f\" %x,\"raise to \",n,\"is %0.2f\" % power(x,n) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x : 4.2\n",
+ "Enter its power : 3\n",
+ "4.20 raise to 3 is 74.09\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to display first n terms of the fibonacci series using recursive function\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 10\n",
+ "t1 = 0\n",
+ "t2 = 1\n",
+ "i = 0\n",
+ "count = 2\n",
+ "\n",
+ "# recursive function to print the terms in series\n",
+ "def fibo(t1,t2):\n",
+ " global count\n",
+ " if (count >= n):\n",
+ " return\n",
+ " else:\n",
+ " t3 = t1 + t2\n",
+ " print t3,\n",
+ " count = count + 1\n",
+ " t1 = t2\n",
+ " t2 = t3\n",
+ " return fibo(t1,t2)\n",
+ " \n",
+ "\n",
+ "\n",
+ "print \"How many terms to be printed ?\",n\n",
+ "print \"The first\",n,\"terms in Fibonacci series are\"\n",
+ "print t1,\n",
+ "print t2,\n",
+ "\n",
+ "fibo(t1,t2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many terms to be printed ? 10\n",
+ "The first 10 terms in Fibonacci series are\n",
+ "0 1 1 2 3 5 8 13 21 34\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 , Page number: CP-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to add two matrices of order m x n and to print the resultant values\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter A matrix value\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print \n",
+ "print \"Enter B matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print b[i][j],\n",
+ " print \n",
+ "\n",
+ "# function to add matrices\n",
+ "def matadd():\n",
+ " for i in range(m):\n",
+ " for j in range(n):\n",
+ " c[i][j] = a[i][j] + b[i][j]\n",
+ "\n",
+ "\n",
+ "\n",
+ "# call function\n",
+ "matadd()\n",
+ "print \"Resultant matrix is\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print c[i][j],\n",
+ " print \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 2\n",
+ "Enter A matrix value\n",
+ "2 -2\n",
+ "0 4\n",
+ "Enter B matrix values\n",
+ "6 2\n",
+ "4 -5\n",
+ "Resultant matrix is\n",
+ "8 0\n",
+ "4 -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 , Page number: CP-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to multiply A matrix of order of m x n with B matrix of order n x l and print the resultant matrix\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2,],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "l = 2\n",
+ "\n",
+ "print \"Enter order of A matrix (m x n) :\",m,n\n",
+ "print \"Enter A matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print\n",
+ " \n",
+ "print \"Enter order of B matrix (n x l) :\",n,l\n",
+ "print \"Enter B matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print b[i][j],\n",
+ " print \n",
+ " \n",
+ "\n",
+ "# function to multiply matrices\n",
+ "\n",
+ "def matmul():\n",
+ " for i in range(m):\n",
+ " for j in range(l):\n",
+ " c[i][j] = 0\n",
+ " for k in range(n):\n",
+ " c[i][j] = c[i][j] + a[i][k] * b[k][j]\n",
+ " return c\n",
+ "\n",
+ "# call function\n",
+ "matmul()\n",
+ "print \"Resultant matix is\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print c[i][j],\n",
+ " print\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of A matrix (m x n) : 2 2\n",
+ "Enter A matrix values\n",
+ "2 -2\n",
+ "0 4\n",
+ "Enter order of B matrix (n x l) : 2 2\n",
+ "Enter B matrix values\n",
+ "6 2\n",
+ "4 -5\n",
+ "Resultant matix is\n",
+ "4 14\n",
+ "16 -20\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 , Page number: CP-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to transpose a matrix of order m x n\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[-3,6,0],\n",
+ " [3,2,8]]\n",
+ "at = [[0,0],\n",
+ " [0,0],\n",
+ " [0,0]]\n",
+ "m = 2\n",
+ "n = 3\n",
+ "ch = \"y\"\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print \n",
+ " \n",
+ "\n",
+ "# function to transpose a matrix\n",
+ "\n",
+ "def transpose(a,at,m,n):\n",
+ " for i in range(m):\n",
+ " for j in range(n):\n",
+ " at[j][i] = a[i][j]\n",
+ " return at\n",
+ "\n",
+ "while ch == 'y' or ch == 'Y' :\n",
+ " # call function to transpose the matrix\n",
+ " transpose(a,at,m,n)\n",
+ " print \"Transpose of the matrix is\"\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " print at[i][j],\n",
+ " print\n",
+ " ch = \"N\"\n",
+ " print \"Press y to continue\"\n",
+ " print \" any other key to stop.\",ch"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 3\n",
+ "Enter the matrix values\n",
+ "-3 6 0\n",
+ "3 2 8\n",
+ "Transpose of the matrix is\n",
+ "-3 3\n",
+ "6 2\n",
+ "0 8\n",
+ "Press y to continue\n",
+ " any other key to stop. N\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 , Page number: CP-200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to create a function to sort the elements of an array in ascending order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [32,-10,20,5]\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter the list of values\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "# function to sort the numbers\n",
+ "def sort(x,n):\n",
+ " for i in range(n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if x[i] > x[j]:\n",
+ " temp = x[i]\n",
+ " x[i] = x[j]\n",
+ " x[j] = temp\n",
+ " return x\n",
+ "\n",
+ "# call function to sort the numbers\n",
+ "sort(x,n)\n",
+ "print \"The sorted list is\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 4\n",
+ "Enter the list of values\n",
+ "32 -10 20 5\n",
+ "The sorted list is\n",
+ "-10 5 20 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/Chapter9.ipynb b/Computer_Programming,_Theory_and_Practice/Chapter9.ipynb
new file mode 100755
index 00000000..2113c5af
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/Chapter9.ipynb
@@ -0,0 +1,624 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:93c2825491a65ebd6dbc85e6208fc8a03cf21f92da06cf2457eda56a011645f1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to display student details\n",
+ "# class declaration instead of a structure\n",
+ "\n",
+ "class student:\n",
+ " rno = 0\n",
+ " sname = \"\"\n",
+ " tot = 0\n",
+ "\n",
+ "# class object variable\n",
+ "\n",
+ "x = student()\n",
+ "x.rno = 20147\n",
+ "x.sname = \"PRADEEP\"\n",
+ "x.tot = 64\n",
+ "\n",
+ "print \"Enter roll number, name and total marks\"\n",
+ "print x.rno,x.sname,x.tot\n",
+ "print \" Details entered are\"\n",
+ "print \"Roll No. :\",x.rno\n",
+ "print \"Student name :\",x.sname\n",
+ "print \"Total marks :\",x.tot\n",
+ "print \"Press any key to continue. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter roll number, name and total marks\n",
+ "20147 PRADEEP 64\n",
+ " Details entered are\n",
+ "Roll No. : 20147\n",
+ "Student name : PRADEEP\n",
+ "Total marks : 64\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to input student details and print the marks of a specified student as output\n",
+ "\n",
+ "# class declaration for structure\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,rno,sname,tot):\n",
+ " self.rno = rno\n",
+ " self.sname = sname\n",
+ " self.tot = tot\n",
+ " \n",
+ "# variable declaration\n",
+ "\n",
+ "ch = \"y\"\n",
+ "n = 3\n",
+ "\n",
+ "# details of n students\n",
+ "std = []\n",
+ "std.append(student(20201,\"ARUN\",78))\n",
+ "std.append(student(20208,\"DEEPAK\",69))\n",
+ "std.append(student(20223,\"SUSMITHA\",88))\n",
+ "\n",
+ "print \"How many students ?\",n\n",
+ "print \"Roll number ?\",std[0].rno\n",
+ "print \"Name ?\",std[0].sname\n",
+ "print \"Total marks ?\",std[0].tot\n",
+ "print \"Roll number ?\",std[1].rno\n",
+ "print \"Name ?\",std[1].sname\n",
+ "print \"Total marks ?\",std[1].tot\n",
+ "print \"Roll number ?\",std[2].rno\n",
+ "print \"Name ?\",std[2].sname\n",
+ "print \"Total marks ?\",std[2].tot\n",
+ "print \n",
+ "\n",
+ "\n",
+ "# To display marks of the student\n",
+ "while ch == \"y\" or ch == \"Y\":\n",
+ " temp = 20208\n",
+ " print \"Enter student roll number to display marks :\",temp\n",
+ " print \n",
+ " flag = 0\n",
+ " #loop to search and display details\n",
+ " for i in range(3):\n",
+ " if flag == 0:\n",
+ " if std[i].rno == temp:\n",
+ " print \"Marks obtained by \",std[i].rno,std[i].sname\n",
+ " print \"Total :\",std[i].tot\n",
+ " flag = 1\n",
+ " if flag == 0:\n",
+ " print temp,\" is not present in the list \"\n",
+ " \n",
+ " ch = \"n\" \n",
+ " print \"press y - to continue\"\n",
+ " print \" any other key to stop.\",ch\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 3\n",
+ "Roll number ? 20201\n",
+ "Name ? ARUN\n",
+ "Total marks ? 78\n",
+ "Roll number ? 20208\n",
+ "Name ? DEEPAK\n",
+ "Total marks ? 69\n",
+ "Roll number ? 20223\n",
+ "Name ? SUSMITHA\n",
+ "Total marks ? 88\n",
+ "\n",
+ "Enter student roll number to display marks : 20208\n",
+ "\n",
+ "Marks obtained by 20208 DEEPAK\n",
+ "Total : 69\n",
+ "press y - to continue\n",
+ " any other key to stop. n\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to declare a structure for student details and display list of students who obtained more than 75 marks\n",
+ "\n",
+ "# class for student structure\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,rno,sname,tot):\n",
+ " self.rno = rno\n",
+ " self.sname = sname\n",
+ " self.tot = tot\n",
+ "\n",
+ "std = []\n",
+ "std.append(student(30401,\"ANAND\",59))\n",
+ "std.append(student(30404,\"NIRMAL\",64))\n",
+ "std.append(student(30428,\"ISWARYA\",82))\n",
+ "std.append(student(30432,\"VIVEKA\",79))\n",
+ "\n",
+ "n = 4\n",
+ "print \"How many students ?\",n\n",
+ "print \"Roll Number ?\",std[0].rno\n",
+ "print \"Name ?\",std[0].sname\n",
+ "print \"Total marks ?\",std[0].tot\n",
+ "print \"Roll Number ?\",std[1].rno\n",
+ "print \"Name ?\",std[1].sname\n",
+ "print \"Total marks ?\",std[1].tot\n",
+ "print \"Roll Number ?\",std[2].rno\n",
+ "print \"Name ?\",std[2].sname\n",
+ "print \"Total marks ?\",std[2].tot\n",
+ "print \"Roll Number ?\",std[3].rno\n",
+ "print \"Name ?\",std[3].sname\n",
+ "print \"Total marks ?\",std[3].tot\n",
+ "print \n",
+ "\n",
+ "\n",
+ "print \"----------------------------------------------------\"\n",
+ "print \" Roll No. Name Total marks \"\n",
+ "print \"----------------------------------------------------\"\n",
+ "for i in range(n):\n",
+ " if std[i].tot >= 75:\n",
+ " print \" \",std[i].rno,\" \",std[i].sname,\" \",std[i].tot\n",
+ "\n",
+ "print \"----------------------------------------------------\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 4\n",
+ "Roll Number ? 30401\n",
+ "Name ? ANAND\n",
+ "Total marks ? 59\n",
+ "Roll Number ? 30404\n",
+ "Name ? NIRMAL\n",
+ "Total marks ? 64\n",
+ "Roll Number ? 30428\n",
+ "Name ? ISWARYA\n",
+ "Total marks ? 82\n",
+ "Roll Number ? 30432\n",
+ "Name ? VIVEKA\n",
+ "Total marks ? 79\n",
+ "\n",
+ "----------------------------------------------------\n",
+ " Roll No. Name Total marks \n",
+ "----------------------------------------------------\n",
+ " 30428 ISWARYA 82\n",
+ " 30432 VIVEKA 79\n",
+ "----------------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to store employee information and to compute employee's pay\n",
+ "\n",
+ "import math\n",
+ "# class declaration for employee\n",
+ "class employee:\n",
+ " def __init__(self,eno,ename,epay,jdate):\n",
+ " self.eno = eno\n",
+ " self.ename = ename\n",
+ " self.epay = epay\n",
+ " self.jdate = jdate\n",
+ "\n",
+ "employs = []\n",
+ "employs.append(employee(20101,\"ASHIKA\",1000,\"31/04/2001\"))\n",
+ "employs.append(employee(20182,\"ASHWIN\",6000,\"11/12/1995\"))\n",
+ "employs.append(employee(20204,\"PRAVEEN\",3000,\"18/06/1994\"))\n",
+ "\n",
+ "n = 3\n",
+ "\n",
+ "print \"Employee No. ?\",employs[0].eno\n",
+ "print \"Name ?\",employs[0].ename\n",
+ "print \"Existing date ?\",employs[0].epay\n",
+ "print \"Joinin date ?\",employs[0].jdate\n",
+ "print \n",
+ "print \"Press y- to continue any other key to stop. y\"\n",
+ "print \"Employee No. ?\",employs[1].eno\n",
+ "print \"Name ?\",employs[1].ename\n",
+ "print \"Existing date ?\",employs[1].epay\n",
+ "print \"Joinin date ?\",employs[1].jdate\n",
+ "print\n",
+ "print \"Press y- to continue any other key to stop. y\"\n",
+ "print \"Employee No. ?\",employs[2].eno\n",
+ "print \"Name ?\",employs[2].ename\n",
+ "print \"Existing date ?\",employs[2].epay\n",
+ "print \"Joinin date ?\",employs[2].jdate\n",
+ "print\n",
+ "print \"Press y- to continue any other key to stop. N\"\n",
+ "print\n",
+ "print n,\" records are entered\"\n",
+ "print \"Press any key to print the revised salary list\"\n",
+ "print \n",
+ "\n",
+ "\n",
+ "\n",
+ "def revise(temp):\n",
+ " if temp <= 2000:\n",
+ " temp = int(temp + math.ceil(temp * 0.15))\n",
+ " return temp\n",
+ " elif temp <= 5000:\n",
+ " temp = int(temp + temp * 0.10)\n",
+ " return temp\n",
+ " else:\n",
+ " return temp\n",
+ "\n",
+ " \n",
+ "# loop to increment salary\n",
+ "for i in range(n):\n",
+ " employs[i].epay = revise(employs[i].epay)\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "# loop to print revised salary list\n",
+ "print \" Employees Revised Pay List \"\n",
+ "print \"---------------------------------------------------------\"\n",
+ "print \" S.No. Number Name Joining date Pay \"\n",
+ "print \"---------------------------------------------------------\"\n",
+ "\n",
+ "for i in range(n):\n",
+ " print \" \",i+1,\" \",employs[i].eno,\" \",employs[i].ename,\" \",employs[i].jdate,\" \",employs[i].epay\n",
+ "\n",
+ "print \"---------------------------------------------------------\" \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Employee No. ? 20101\n",
+ "Name ? ASHIKA\n",
+ "Existing date ? 1000\n",
+ "Joinin date ? 31/04/2001\n",
+ "\n",
+ "Press y- to continue any other key to stop. y\n",
+ "Employee No. ? 20182\n",
+ "Name ? ASHWIN\n",
+ "Existing date ? 6000\n",
+ "Joinin date ? 11/12/1995\n",
+ "\n",
+ "Press y- to continue any other key to stop. y\n",
+ "Employee No. ? 20204\n",
+ "Name ? PRAVEEN\n",
+ "Existing date ? 3000\n",
+ "Joinin date ? 18/06/1994\n",
+ "\n",
+ "Press y- to continue any other key to stop. N\n",
+ "\n",
+ "3 records are entered\n",
+ "Press any key to print the revised salary list\n",
+ "\n",
+ " Employees Revised Pay List \n",
+ "---------------------------------------------------------\n",
+ " S.No. Number Name Joining date Pay \n",
+ "---------------------------------------------------------\n",
+ " 1 20101 ASHIKA 31/04/2001 1150\n",
+ " 2 20182 ASHWIN 11/12/1995 6000\n",
+ " 3 20204 PRAVEEN 18/06/1994 3300\n",
+ "---------------------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to store cricket details and to display a team-wise list with batting average\n",
+ "\n",
+ "# class for cricket structure\n",
+ "\n",
+ "class cricket:\n",
+ " def __init__(self,pname,tname,bavg):\n",
+ " self.pname = pname\n",
+ " self.tname = tname\n",
+ " self.bavg = bavg\n",
+ "\n",
+ "n = 6\n",
+ "probable = []\n",
+ "probable.append(cricket(\"KUMBLE\",\"KARNATAKA\",22))\n",
+ "probable.append(cricket(\"KAMBLI\",\"MUMBAI\",39))\n",
+ "probable.append(cricket(\"SRIKANTH\",\"TAMILNADU\",52))\n",
+ "probable.append(cricket(\"SACHIM\",\"MUMBAI\",69))\n",
+ "probable.append(cricket(\"RAHUL\",\"KARNATAKA\",57))\n",
+ "probable.append(cricket(\"RAMESH\",\"TAMILNADU\",48))\n",
+ "\n",
+ "print \"How many players ?\",n\n",
+ "print\n",
+ "print \"Player name ?\",probable[0].pname\n",
+ "print \"Which team ?\",probable[0].tname\n",
+ "print \"Batting average ?\",probable[0].bavg\n",
+ "print \"Player name ?\",probable[1].pname\n",
+ "print \"Which team ?\",probable[1].tname\n",
+ "print \"Batting average ?\",probable[1].bavg\n",
+ "print \"Player name ?\",probable[2].pname\n",
+ "print \"Which team ?\",probable[2].tname\n",
+ "print \"Batting average ?\",probable[2].bavg\n",
+ "print \"Player name ?\",probable[3].pname\n",
+ "print \"Which team ?\",probable[3].tname\n",
+ "print \"Batting average ?\",probable[3].bavg\n",
+ "print \"Player name ?\",probable[4].pname\n",
+ "print \"Which team ?\",probable[4].tname\n",
+ "print \"Batting average ?\",probable[4].bavg\n",
+ "print \"Player name ?\",probable[5].pname\n",
+ "print \"Which team ?\",probable[5].tname\n",
+ "print \"Batting average ?\",probable[5].bavg\n",
+ "print\n",
+ "print \n",
+ "j = 0\n",
+ "teams = []\n",
+ "teams.append(probable[0].tname)\n",
+ "j = j + 1\n",
+ "for i in range(n):\n",
+ " flag = 0\n",
+ " for k in range(j):\n",
+ " if flag == 0:\n",
+ " if probable[i].tname == teams[k]:\n",
+ " flag = 1\n",
+ " if flag == 0 :\n",
+ " teams.append(probable[i].tname)\n",
+ " j = j + 1\n",
+ "\n",
+ "# loop to print team-wise list\n",
+ "\n",
+ "for k in range(3):\n",
+ " print \" \",teams[k]\n",
+ " print \"---------------------------------------------\"\n",
+ " for i in range(n):\n",
+ " if probable[i].tname == teams[k]:\n",
+ " print \" \",probable[i].pname,\" \",probable[i].bavg\n",
+ " print \"---------------------------------------------\" \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many players ? 6\n",
+ "\n",
+ "Player name ? KUMBLE\n",
+ "Which team ? KARNATAKA\n",
+ "Batting average ? 22\n",
+ "Player name ? KAMBLI\n",
+ "Which team ? MUMBAI\n",
+ "Batting average ? 39\n",
+ "Player name ? SRIKANTH\n",
+ "Which team ? TAMILNADU\n",
+ "Batting average ? 52\n",
+ "Player name ? SACHIM\n",
+ "Which team ? MUMBAI\n",
+ "Batting average ? 69\n",
+ "Player name ? RAHUL\n",
+ "Which team ? KARNATAKA\n",
+ "Batting average ? 57\n",
+ "Player name ? RAMESH\n",
+ "Which team ? TAMILNADU\n",
+ "Batting average ? 48\n",
+ "\n",
+ "\n",
+ " KARNATAKA\n",
+ "---------------------------------------------\n",
+ " KUMBLE 22\n",
+ " RAHUL 57\n",
+ "---------------------------------------------\n",
+ " MUMBAI\n",
+ "---------------------------------------------\n",
+ " KAMBLI 39\n",
+ " SACHIM 69\n",
+ "---------------------------------------------\n",
+ " TAMILNADU\n",
+ "---------------------------------------------\n",
+ " SRIKANTH 52\n",
+ " RAMESH 48\n",
+ "---------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to illustrate the use of union using integer,string and float\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,roll_no,sname,marks):\n",
+ " self.roll_no = roll_no\n",
+ " self.sname = sname\n",
+ " self.marks = marks\n",
+ "\n",
+ "std = []\n",
+ "std.append(student(0,\"AJITH\",0))\n",
+ "std.append(student(0,\"RAJU\",0))\n",
+ "std.append(student(0,\"VIGNESH\",0))\n",
+ "std.append(student(0,\"DIVYA\",0))\n",
+ "\n",
+ "ch = 2\n",
+ "print \"-----------------------------\"\n",
+ "print \" Main menu \"\n",
+ "print \"-----------------------------\"\n",
+ "print \"Press 1 to enter roll numbers\"\n",
+ "print \" 2 to enter names \"\n",
+ "print \" 3 to enter marks \"\n",
+ "print \" 4 to stop \"\n",
+ "print \n",
+ "print \"Enter your choice :\",ch\n",
+ "\n",
+ "n = 4\n",
+ "print \"How many students?\",n\n",
+ "for i in range(n):\n",
+ " print \" Student name ? \",std[i].sname\n",
+ "\n",
+ "print\n",
+ "print \n",
+ "# display required list\n",
+ "# switch case\n",
+ "if ch == 1: #case 1\n",
+ " print \"------------------------------\"\n",
+ " print \" Students roll number list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print std[i].roll_no\n",
+ " print \"-------------------------------\"\n",
+ "elif ch == 2: # case 2\n",
+ " print \"------------------------------\"\n",
+ " print \" Students name list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print std[i].sname\n",
+ " print \"-------------------------------\"\n",
+ "elif ch == 3: # case 3\n",
+ " print \"------------------------------\"\n",
+ " print \" Students mark list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print \"Student marks\",std[i].roll_no\n",
+ " print \"-------------------------------\"\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-----------------------------\n",
+ " Main menu \n",
+ "-----------------------------\n",
+ "Press 1 to enter roll numbers\n",
+ " 2 to enter names \n",
+ " 3 to enter marks \n",
+ " 4 to stop \n",
+ "\n",
+ "Enter your choice : 2\n",
+ "How many students? 4\n",
+ " Student name ? AJITH\n",
+ " Student name ? RAJU\n",
+ " Student name ? VIGNESH\n",
+ " Student name ? DIVYA\n",
+ "\n",
+ "\n",
+ "------------------------------\n",
+ " Students name list \n",
+ "------------------------------\n",
+ "AJITH\n",
+ "RAJU\n",
+ "VIGNESH\n",
+ "DIVYA\n",
+ "-------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming,_Theory_and_Practice/screenshots/chapter11.png b/Computer_Programming,_Theory_and_Practice/screenshots/chapter11.png
new file mode 100755
index 00000000..c5895710
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/screenshots/chapter11.png
Binary files differ
diff --git a/Computer_Programming,_Theory_and_Practice/screenshots/chapter2.png b/Computer_Programming,_Theory_and_Practice/screenshots/chapter2.png
new file mode 100755
index 00000000..05fde2b5
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/screenshots/chapter2.png
Binary files differ
diff --git a/Computer_Programming,_Theory_and_Practice/screenshots/chapter3.png b/Computer_Programming,_Theory_and_Practice/screenshots/chapter3.png
new file mode 100755
index 00000000..685e290b
--- /dev/null
+++ b/Computer_Programming,_Theory_and_Practice/screenshots/chapter3.png
Binary files differ
diff --git a/Computer_Programming_Theory_and_Practice/Chapter11.ipynb b/Computer_Programming_Theory_and_Practice/Chapter11.ipynb
new file mode 100755
index 00000000..c046ab93
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter11.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "Chapter11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 11, Files"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page Number:CP-277"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Program to create a text file\n\nfp = open(\"sample.txt\",\"w\") # open file in write mode\n\nprint \"Type the text and Press enter key at end.\"\nprint\nprint \"Computer Programming in C language is widely used for Science and Engineering applications\"\n# input data to file\nch = ['Computer ','Programming ','in ','C ','language ','is ','widely ','used ','for ','Science ','and ' ,'Engineering ','applications.']\nfor i in ch:\n fp.write(i)\nfp.close()\n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Type the text and Press enter key at end.\n\nComputer Programming in C language is widely used for Science and Engineering applications\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page Number:CP-278"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Program to read text file and count number of vowels\n\nfp = open(\"sample.txt\",\"r\") # open file in read mode\ncount = 0\nprint \"The Content of the file is:\"\n\nwhile (1): \n ch = fp.read(1)\n if not ch:\n break\n print ch\n # switch statements\n if ch == \"A\" or ch == \"a\": # case 'A' or 'a'\n count = count + 1\n elif ch == \"E\" or ch == \"e\": # case 'E' or 'e'\n count = count + 1\n elif ch == \"I\" or ch == \"i\": # case 'I' or 'i'\n count = count + 1\n elif ch == \"O\" or ch == \"o\": # case 'O' or 'o'\n count = count + 1\n elif ch == \"U\" or ch == \"u\": # case 'U' or 'u'\n count = count + 1\n\n\n\nfp.close() \nprint \"Number of vowels present =\",count \n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Content of the file is:\nC\no\nm\np\nu\nt\ne\nr\n \nP\nr\no\ng\nr\na\nm\nm\ni\nn\ng\n \ni\nn\n \nC\n \nl\na\nn\ng\nu\na\ng\ne\n \ni\ns\n \nw\ni\nd\ne\nl\ny\n \nu\ns\ne\nd\n \nf\no\nr\n \nS\nc\ni\ne\nn\nc\ne\n \na\nn\nd\n \nE\nn\ng\ni\nn\ne\ne\nr\ni\nn\ng\n \na\np\np\nl\ni\nc\na\nt\ni\no\nn\ns\n.\nNumber of vowels present = 31\n"
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter2.ipynb b/Computer_Programming_Theory_and_Practice/Chapter2.ipynb
new file mode 100755
index 00000000..c4bc71ff
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter2.ipynb
@@ -0,0 +1,41 @@
+{
+ "metadata": {
+ "name": "Chapter2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 2, Fundamentals of C language"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page Number: CP-22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# variable declaration\n\na = 5\nb = 7\nc = 2\n\n# calculation \n\ny = a + b / c - a % c + 2 * a\n\n# result \n\nprint \"The result is \",y\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The result is 17\n"
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter3.ipynb b/Computer_Programming_Theory_and_Practice/Chapter3.ipynb
new file mode 100755
index 00000000..04d24871
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter3.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0ff7bb47f00bae9dc5a49237df7011debd17443ba836341d55e8fe830338ade7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Input/Output Functions and Statements"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to add and find product of two numbers\n",
+ "\n",
+ "#variable declaration\n",
+ "a = 5\n",
+ "b = 3\n",
+ "\n",
+ "# calculation of sum and product \n",
+ "\n",
+ "summ = a + b\n",
+ "product = a * b\n",
+ "\n",
+ "print a,b\n",
+ "print summ,product"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5 3\n",
+ "8 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert degree fahrenheit to celcius \n",
+ "# variable declaration\n",
+ "\n",
+ "f = 105.00\n",
+ "print \"Degree fahrenheit ? %d\" % f\n",
+ "# calculation of degree in celcius \n",
+ "\n",
+ "c = 5.0/9.0 * (f-32)\n",
+ "\n",
+ "# result \n",
+ "print\n",
+ "print \"Degree centigrade =%6.2f\" % c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Degree fahrenheit ? 105\n",
+ "\n",
+ "Degree centigrade = 40.56\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To find area of a triangle\n",
+ "# variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 4\n",
+ "c = 6\n",
+ "\n",
+ "\n",
+ "# calculation of area\n",
+ "s = float((a+b+c))/2\n",
+ "area = (s*(s-a)*(s-b)*(s-c)) ** 0.5\n",
+ "\n",
+ "# result\n",
+ "print \"Enter three sides : %d\" % a,b,c\n",
+ "print \n",
+ "print \"Area of triangle = %0.2f Sq.units\" % area"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three sides : 5 4 6\n",
+ "\n",
+ "Area of triangle = 9.92 Sq.units\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To print ASCII value of a given character \n",
+ "# Variable declaration\n",
+ "\n",
+ "ch = \"A\"\n",
+ "print \"Enter a character : \" , ch\n",
+ "\n",
+ "# Calculation of ASCII value of a character\n",
+ "\n",
+ "print \n",
+ "print \"ASCII value of \" + ch + \" is\" ,ord(ch)\n",
+ "print \"Press any key to stop. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character : A\n",
+ "\n",
+ "ASCII value of A is 65\n",
+ "Press any key to stop. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To print electricity for consumers\n",
+ "# Variable declaration\n",
+ "\n",
+ "sno = \"TMR65358\"\n",
+ "pmr = 4305\n",
+ "cmr = 4410\n",
+ "\n",
+ "print \"Enter service number :\" ,sno\n",
+ "print \"Previous meter reading ?\",pmr\n",
+ "print \"Current meter reading ?\",cmr\n",
+ "\n",
+ "# Calculation of electricity charges\n",
+ "\n",
+ "units = cmr - pmr\n",
+ "amt = units * 1.50\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print\n",
+ "print \" Electricity Bill\"\n",
+ "print \" ----------------\"\n",
+ "print \"Service No :\",sno\n",
+ "print \"Unit Consumed :\",units\n",
+ "print \"Electricity Charges : Rs.%0.2f\" % amt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter service number : TMR65358\n",
+ "Previous meter reading ? 4305\n",
+ "Current meter reading ? 4410\n",
+ "\n",
+ " Electricity Bill\n",
+ " ----------------\n",
+ "Service No : TMR65358\n",
+ "Unit Consumed : 105\n",
+ "Electricity Charges : Rs.157.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to swap value of two variables\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 15\n",
+ "b = 250 \n",
+ "\n",
+ "print \"Enter value to A :\",a\n",
+ "print \"Enter value to B :\",b\n",
+ "\n",
+ "# Swapping\n",
+ "\n",
+ "temp = a\n",
+ "a = b\n",
+ "b = temp\n",
+ "\n",
+ "print \n",
+ "print \"Value of A =\",a\n",
+ "print \"Value of B =\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to A : 15\n",
+ "Enter value to B : 250\n",
+ "\n",
+ "Value of A = 250\n",
+ "Value of B = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter4.ipynb b/Computer_Programming_Theory_and_Practice/Chapter4.ipynb
new file mode 100755
index 00000000..368164f3
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter4.ipynb
@@ -0,0 +1,524 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c9e723d7feeae217ee8ddaf1b9cf8cfab2d696821fa911ff65107b9da6bec9f0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Control Statements in C "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of two numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 8\n",
+ "\n",
+ "print \"Enter two numbers : %d\" % a,b\n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "big = a\n",
+ "if (b>big):\n",
+ " big = b\n",
+ "\n",
+ "print \"Biggest number is \",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5 8\n",
+ "Biggest number is 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find biggest of three numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 13\n",
+ "c = 8\n",
+ "\n",
+ "print \"Enter three numbers : %d\" % a,b,c\n",
+ "\n",
+ "# Calculate\n",
+ "\n",
+ "big = a\n",
+ "if (b>big):\n",
+ " big = b\n",
+ "if (c>big):\n",
+ " big = c\n",
+ "\n",
+ "print \"Biggest number is\",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers : 5 13 8\n",
+ "Biggest number is 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find biggest of three numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 18\n",
+ "b = -5\n",
+ "c = 13\n",
+ " \n",
+ "print \"Enter three numbers : %d\" % a,b,c\n",
+ "\n",
+ "# Calculation to find biggest number\n",
+ "\n",
+ "if (a>b):\n",
+ " if(a>c):\n",
+ " big = a\n",
+ " else:\n",
+ " big = c\n",
+ "else:\n",
+ " if(b>c):\n",
+ " big = b\n",
+ " else:\n",
+ " big = c\n",
+ "\n",
+ "print \"Biggest number is\",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers : 18 -5 13\n",
+ "Biggest number is 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y \n",
+ "# Variable declration\n",
+ "\n",
+ "x = 0.42\n",
+ "n = 5\n",
+ "\n",
+ "print \"Enter value to x and n :\" , x,n \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "if (n==1):\n",
+ " y = 1 + x\n",
+ "elif (n==2):\n",
+ " y = 1 + x / n\n",
+ "elif (n==3):\n",
+ " y = 1 + (x ** n)\n",
+ "else:\n",
+ " y = 1 + n * x\n",
+ "\n",
+ "\n",
+ "print \"Value of y(x,n) = %0.2f\" % y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x and n : 0.42 5\n",
+ "Value of y(x,n) = 3.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.42\n",
+ "n = 5\n",
+ "\n",
+ "\n",
+ "print \"Enter value to x and n :\", x,n\n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# Switch case statements \n",
+ "if n == 1: # case 1\n",
+ " y = 1 + x\n",
+ "elif n == 2: # case 2\n",
+ " y = 1 + x / n\n",
+ "elif n == 3: # case 3\n",
+ " y = 1 + (x ** n)\n",
+ "else: # default\n",
+ " y = 1 + n * x\n",
+ "\n",
+ "print \"Value of y(x,n) = %0.2f\" % y "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x and n : 0.42 5\n",
+ "Value of y(x,n) = 3.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to caculate the commission for sales representatives\n",
+ "# Variable declaration\n",
+ "\n",
+ "sales = 4500\n",
+ "\n",
+ "print \"Sales amount ? :\" , sales\n",
+ "\n",
+ "# Calculation of commission\n",
+ "\n",
+ "if (sales <= 500):\n",
+ " comm = 0.05 * sales\n",
+ "elif (sales <= 2000):\n",
+ " comm = 35 + 0.10 * (sales - 500)\n",
+ "elif (sales <= 5000):\n",
+ " comm = 185 + 0.12 * (sales - 2000)\n",
+ "else:\n",
+ " comm = 0.125 * sales\n",
+ "\n",
+ "\n",
+ "print \"Commission Amount Rs.%0.2f\" % comm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sales amount ? : 4500\n",
+ "Commission Amount Rs.485.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find roots of a quadratic equation\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 1\n",
+ "b = 3\n",
+ "c = 2\n",
+ "\n",
+ "print \"Enter coefficients a, b, and c :\", a,b,c\n",
+ "\n",
+ "d = b * b - 4 * a * c\n",
+ "\n",
+ "# Calculation of roots\n",
+ "\n",
+ "if (d > 0):\n",
+ " x1 = (-b + (d ** 0.5)) / (2 * a)\n",
+ " x2 = (-b - (d ** 0.5)) / (2 * a)\n",
+ " print \"Roots are real and unequal \"\n",
+ " print x1,x2\n",
+ " \n",
+ "\n",
+ "elif(d == 0):\n",
+ " x = -b / (2 * a)\n",
+ " print \"Roots are real and equal\"\n",
+ " print \"%6.2f\" % x\n",
+ "\n",
+ "else:\n",
+ " print \"No Real roots, roots are complex\"\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter coefficients a, b, and c : 1 3 2\n",
+ "Roots are real and unequal \n",
+ "-1.0 -2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print grade\n",
+ "# Variable declaration\n",
+ "\n",
+ "avg_marks = 84\n",
+ "\n",
+ "print \"Average marks ?\",avg_marks\n",
+ "\n",
+ "# Calculation of grade\n",
+ "\n",
+ "if (avg_marks >= 80) and (avg_marks <= 100):\n",
+ " print \"Honours\"\n",
+ "elif (avg_marks >= 60) and (avg_marks <=79):\n",
+ " print \"First Division\"\n",
+ "elif (avg_marks >= 50) and (avg_marks <= 59):\n",
+ " print \"Second Division\"\n",
+ "else:\n",
+ " print \"Fail\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average marks ? 84\n",
+ "Honours\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate electirc charges for domestic consumers\n",
+ "# Variable declaration\n",
+ "\n",
+ "units = 348\n",
+ "\n",
+ "print \"Enter consumed units :\",units\n",
+ "\n",
+ "# Calculation of electric charges\n",
+ "\n",
+ "if (units <= 200):\n",
+ " amt = 0.5 * units\n",
+ "elif (units <= 400):\n",
+ " amt = 100 + 0.65 * (units - 200)\n",
+ "elif (units <= 600):\n",
+ " amt = 230 + 0.8 * (units - 400)\n",
+ "else:\n",
+ " amt = 425 + 1.25 * (units - 600)\n",
+ "print \n",
+ "print \"Amount to be paid Rs.%0.2f\" % amt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter consumed units : 348\n",
+ "\n",
+ "Amount to be paid Rs.196.20\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the grade of steel samples\n",
+ "# Variable declaration\n",
+ "\n",
+ "ts = 800\n",
+ "rh = 180\n",
+ "cc = 3\n",
+ "\n",
+ "print \"Enter tensile strength :\",ts\n",
+ "print \"Enter rockwell hardness :\",rh\n",
+ "print \"Enter carbon content :\",cc\n",
+ "\n",
+ "# Calculation of grade\n",
+ "\n",
+ "if (ts >= 700):\n",
+ " if (rh >= 200):\n",
+ " if (cc <= 6):\n",
+ " print \"Grade is A\"\n",
+ " else:\n",
+ " print \"Grade is B\" \n",
+ " elif (cc <= 6):\n",
+ " print \"Grade is C\"\n",
+ " else:\n",
+ " print \"Grade is E\" \n",
+ "elif (rh >= 200):\n",
+ " if (cc <= 6):\n",
+ " print \"Grade is D\"\n",
+ " else:\n",
+ " print \"Grade is E\"\n",
+ "elif (cc <= 6):\n",
+ " print \"Grade is E\"\n",
+ "else:\n",
+ " print \"Grade is F\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter tensile strength : 800\n",
+ "Enter rockwell hardness : 180\n",
+ "Enter carbon content : 3\n",
+ "Grade is C\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter5.ipynb b/Computer_Programming_Theory_and_Practice/Chapter5.ipynb
new file mode 100755
index 00000000..52adbd63
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter5.ipynb
@@ -0,0 +1,1103 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1c1423d8954dc10aa9bbb2818169dfeb793cb3bc9435852c4188cde598c54111"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Loop Control Structures in C"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print natural numbers from 1 to n\n",
+ "# Variable decalration\n",
+ "\n",
+ "n = 15\n",
+ "\n",
+ "print \"Enter value to n :\",n\n",
+ "\n",
+ "# Loop to print natural numbers\n",
+ "for r in range(15):\n",
+ " r = r + 1\n",
+ " print r,\n",
+ " \n",
+ " \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to n : 15\n",
+ "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y and print a table for values of x\n",
+ "# Variable declaration\n",
+ "import math\n",
+ "x = 1.0\n",
+ "print \"------------------------\"\n",
+ "print \" x y \"\n",
+ "print \"------------------------\"\n",
+ "while x <= 3.2:\n",
+ " y = 1.36 * ((1 + x + x * x * x) ** 0.5) + ((x) ** (1.0/4)) + math.exp(x)\n",
+ " print \" %0.2f \" %x + \" %0.2f\" % y\n",
+ " x = x + 0.2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "------------------------\n",
+ " x y \n",
+ "------------------------\n",
+ " 1.00 6.07\n",
+ " 1.20 7.06\n",
+ " 1.40 8.23\n",
+ " 1.60 9.60\n",
+ " 1.80 11.20\n",
+ " 2.00 13.09\n",
+ " 2.20 15.30\n",
+ " 2.40 17.91\n",
+ " 2.60 20.99\n",
+ " 2.80 24.64\n",
+ " 3.00 28.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find factorial of given number\n",
+ "# Variable declaration\n",
+ "\n",
+ "k = 4\n",
+ "kfact = 1\n",
+ "\n",
+ "print \"Enter an integer :\",k\n",
+ "\n",
+ "# Loop to generate numbers from 1 to n\n",
+ "\n",
+ "for i in range(1,k + 1):\n",
+ " kfact = kfact*i\n",
+ "\n",
+ " \n",
+ "print \"4 factorial is\",kfact "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer : 4\n",
+ "4 factorial is 24\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print sum of the following series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "s = 0\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "# Calculation of sum\n",
+ "i = 1\n",
+ "j = 1\n",
+ "\n",
+ "for i in range(1,n+1):\n",
+ " term = 0\n",
+ " for j in range(i+1):\n",
+ " term = term + j\n",
+ " s = s + term\n",
+ "\n",
+ "\n",
+ "print \"Sum of the series S =\",s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 4\n",
+ "Sum of the series S = 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compute the values of z based on x and y\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = -1.5\n",
+ "y = 0\n",
+ "\n",
+ "# Loops to generate values of x and y to find z\n",
+ "\n",
+ "while x <= 1.5:\n",
+ " while y <= 3.0:\n",
+ " z = 3 * x * x + 2 * y * y * y - 25.5\n",
+ " print \"Value of y(\",x,\n",
+ " print \",\",y,\n",
+ " print \") =\",z\n",
+ " y = y + 1.0\n",
+ " x = x + 0.5\n",
+ " y = 0\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of y( -1.5 , 0 ) = -18.75\n",
+ "Value of y( -1.5 , 1.0 ) = -16.75\n",
+ "Value of y( -1.5 , 2.0 ) = -2.75\n",
+ "Value of y( -1.5 , 3.0 ) = 35.25\n",
+ "Value of y( -1.0 , 0 ) = -22.5\n",
+ "Value of y( -1.0 , 1.0 ) = -20.5\n",
+ "Value of y( -1.0 , 2.0 ) = -6.5\n",
+ "Value of y( -1.0 , 3.0 ) = 31.5\n",
+ "Value of y( -0.5 , 0 ) = -24.75\n",
+ "Value of y( -0.5 , 1.0 ) = -22.75\n",
+ "Value of y( -0.5 , 2.0 ) = -8.75\n",
+ "Value of y( -0.5 , 3.0 ) = 29.25\n",
+ "Value of y( 0.0 , 0 ) = -25.5\n",
+ "Value of y( 0.0 , 1.0 ) = -23.5\n",
+ "Value of y( 0.0 , 2.0 ) = -9.5\n",
+ "Value of y( 0.0 , 3.0 ) = 28.5\n",
+ "Value of y( 0.5 , 0 ) = -24.75\n",
+ "Value of y( 0.5 , 1.0 ) = -22.75\n",
+ "Value of y( 0.5 , 2.0 ) = -8.75\n",
+ "Value of y( 0.5 , 3.0 ) = 29.25\n",
+ "Value of y( 1.0 , 0 ) = -22.5\n",
+ "Value of y( 1.0 , 1.0 ) = -20.5\n",
+ "Value of y( 1.0 , 2.0 ) = -6.5\n",
+ "Value of y( 1.0 , 3.0 ) = 31.5\n",
+ "Value of y( 1.5 , 0 ) = -18.75\n",
+ "Value of y( 1.5 , 1.0 ) = -16.75\n",
+ "Value of y( 1.5 , 2.0 ) = -2.75\n",
+ "Value of y( 1.5 , 3.0 ) = 35.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find sum of odd integers between 1 to n\n",
+ "# Variable declararion\n",
+ "\n",
+ "n = 10\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "\n",
+ "s = 0\n",
+ "i = 1\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + i\n",
+ " i = i + 2\n",
+ "\n",
+ "print \"Sum of odd integers =\",s"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 10\n",
+ "Sum of odd integers = 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to generate first 50 positive integers that are divisible by 7\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 7\n",
+ "print \"Integers divisible by 7\"\n",
+ "\n",
+ "#loop to print numbers divisible by 7\n",
+ "for n in range(7,353,7):\n",
+ " print n,\n",
+ " \n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Integers divisible by 7\n",
+ "7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217 224 231 238 245 252 259 266 273 280 287 294 301 308 315 322 329 336 343 350\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print integers from 1 to n that are not divisible by 7\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 20\n",
+ "print \"Enter the end value N :\",n\n",
+ "\n",
+ "# Loop to print numbers that are not divisible by 7\n",
+ "\n",
+ "print \"Integers not divisible by 7\"\n",
+ "for k in range(1,n + 1,1):\n",
+ " r = k % 7\n",
+ " if (r != 0):\n",
+ " print k,"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the end value N : 20\n",
+ "Integers not divisible by 7\n",
+ "1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-92 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print sum of digits of an integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 2466\n",
+ "\n",
+ "print \"Enter a positive integer :\",n\n",
+ "\n",
+ "q = n\n",
+ "s = 0\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "print \"Sum of digits =\",s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a positive integer : 2466\n",
+ "Sum of digits = 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to check whether a given number is an armstrong number or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 153\n",
+ "q = n\n",
+ "s = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "\n",
+ "# To check armstrong or not\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r * r * r\n",
+ " q = q / 10\n",
+ "\n",
+ "if (n == s):\n",
+ " print \"%d is an Armstrong number\" % n\n",
+ "else:\n",
+ " print \"%d is not an Armstrong number\" % n\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 153\n",
+ "153 is an Armstrong number\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse a given integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 18532\n",
+ "q = n\n",
+ "rn = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "# Reversing\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " rn = (rn * 10) + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "print \"18532 is reversed as\",rn "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 18532\n",
+ "18532 is reversed as 23581\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 , Page number: CP-95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to accept an integer and print digits using words\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4352\n",
+ "q = n\n",
+ "rn = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "# converting to digits\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " rn = rn * 10 + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "while (rn > 0):\n",
+ " r = rn % 10\n",
+ " if (r == 1):\n",
+ " s = \"One\"\n",
+ " print s,\n",
+ " elif (r == 2):\n",
+ " s = \"Two\"\n",
+ " print s,\n",
+ " elif (r == 3):\n",
+ " s = \"Three\"\n",
+ " print s,\n",
+ " elif (r == 4):\n",
+ " s = \"Four\"\n",
+ " print s,\n",
+ " elif (r == 5):\n",
+ " s = \"Five\"\n",
+ " print s,\n",
+ " elif (r == 6):\n",
+ " s = \"Six\"\n",
+ " print s,\n",
+ " elif (r == 7):\n",
+ " s = \"Seven\"\n",
+ " print s,\n",
+ " elif (r == 8):\n",
+ " s = \"Eight\"\n",
+ " print s,\n",
+ " elif (r == 9):\n",
+ " s = \"Nine\"\n",
+ " print s,\n",
+ " elif (r == 0):\n",
+ " s = \"Zero\"\n",
+ " print s,\n",
+ " rn = rn / 10\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 4352\n",
+ "Four Three Five Two\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find whether a number is prime or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 17\n",
+ "\n",
+ "print \"Enter a positive integer :\",n\n",
+ "\n",
+ "# prime numbers are greater than 1\n",
+ "if n > 1:\n",
+ " # check for factors\n",
+ " for i in range(2,n):\n",
+ " if (n % i) == 0:\n",
+ " print(n,\"is not a prime number\")\n",
+ " print(i,\"times\",n//i,\"is\",num)\n",
+ " break\n",
+ " else:\n",
+ " print \"%d is a prime number\" % n\n",
+ "\n",
+ "else:\n",
+ " print \"%d is not a prime number\" % n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a positive integer : 17\n",
+ "17 is a prime number\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 , Page number: CP-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to generate Fibonacci series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 25\n",
+ "n1 = 0\n",
+ "n2 = 1\n",
+ "\n",
+ "print \"Enter the final term of the series :\",n\n",
+ "\n",
+ "print n1,n2,\n",
+ "\n",
+ "\n",
+ "newterm = n1 + n2\n",
+ "\n",
+ "# Loop to print fibonacci series\n",
+ "while (newterm <= n):\n",
+ " print newterm,\n",
+ " n1 = n2\n",
+ " n2 = newterm\n",
+ " newterm = n1 + n2\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the final term of the series : 25\n",
+ "0 1 1 2 3 5 8 13 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 , Page number: CP-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to solve the sine series\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.52\n",
+ "n = 10\n",
+ "s = 0\n",
+ "term = x\n",
+ "i = 1\n",
+ "\n",
+ "print \"Enter x in radians :\",x\n",
+ "print \"Enter end term power (n):\",n\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + term\n",
+ " term = (term * x * x *(-1)) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ "\n",
+ "print \"Sum of the series = %0.6f\" % s\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x in radians : 0.52\n",
+ "Enter end term power (n): 10\n",
+ "Sum of the series = 0.496880\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 , Page number: CP-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to solve the cosine series\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.52\n",
+ "s = 0\n",
+ "term = 1\n",
+ "i = 0\n",
+ "n = 10\n",
+ "print \"Enter x in radians :\",x\n",
+ "\n",
+ "# Calculation of cosine series\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + term\n",
+ " term = (term * x * x * (-1)) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ "\n",
+ "\n",
+ "print \"Sum of the series = %0.6f\" % s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x in radians : 0.52\n",
+ "Sum of the series = 0.867819\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 , Page number: CP-102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Program to compute the value of pie\n",
+ "# Variable declaration\n",
+ "\n",
+ "s = 0.0\n",
+ "dr = 1\n",
+ "sign = 1\n",
+ "term = (1.0/dr) * sign\n",
+ "while (math.fabs(term) >= 1.0e-4):\n",
+ " s = s + term\n",
+ " dr = dr + 2\n",
+ " sign = sign * -1\n",
+ " term = (1.0 / dr) * sign\n",
+ "\n",
+ "pie = s * 4\n",
+ "\n",
+ "print \"Value of pie is %.6f\"%pie"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of pie is 3.141393\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 , Page number: CP-104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to evaluate the series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 15\n",
+ "s = 0.00\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "\n",
+ "# Evaluation of series\n",
+ "\n",
+ "for i in range(1,n + 1,1):\n",
+ " s = float(s) + float(1.0 / i)\n",
+ " \n",
+ "\n",
+ "print \"Sum of series = %0.4f\" % s \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 15\n",
+ "Sum of series = 3.3182\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21 , Page number: CP-108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print multiplication table\n",
+ "# Variable declaration\n",
+ "\n",
+ "i = 1\n",
+ "j = 1\n",
+ "\n",
+ "# nested loop to print multiplication tables\n",
+ "\n",
+ "for i in range(1,6):\n",
+ " print \"Multiplication table for\",i\n",
+ " for j in range(1,11):\n",
+ " print \" \",j,\"x\" , i ,\" =\" , j*i\n",
+ " print \"Press any key to continue. . .\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication table for 1\n",
+ " 1 x 1 = 1\n",
+ " 2 x 1 = 2\n",
+ " 3 x 1 = 3\n",
+ " 4 x 1 = 4\n",
+ " 5 x 1 = 5\n",
+ " 6 x 1 = 6\n",
+ " 7 x 1 = 7\n",
+ " 8 x 1 = 8\n",
+ " 9 x 1 = 9\n",
+ " 10 x 1 = 10\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 2\n",
+ " 1 x 2 = 2\n",
+ " 2 x 2 = 4\n",
+ " 3 x 2 = 6\n",
+ " 4 x 2 = 8\n",
+ " 5 x 2 = 10\n",
+ " 6 x 2 = 12\n",
+ " 7 x 2 = 14\n",
+ " 8 x 2 = 16\n",
+ " 9 x 2 = 18\n",
+ " 10 x 2 = 20\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 3\n",
+ " 1 x 3 = 3\n",
+ " 2 x 3 = 6\n",
+ " 3 x 3 = 9\n",
+ " 4 x 3 = 12\n",
+ " 5 x 3 = 15\n",
+ " 6 x 3 = 18\n",
+ " 7 x 3 = 21\n",
+ " 8 x 3 = 24\n",
+ " 9 x 3 = 27\n",
+ " 10 x 3 = 30\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 4\n",
+ " 1 x 4 = 4\n",
+ " 2 x 4 = 8\n",
+ " 3 x 4 = 12\n",
+ " 4 x 4 = 16\n",
+ " 5 x 4 = 20\n",
+ " 6 x 4 = 24\n",
+ " 7 x 4 = 28\n",
+ " 8 x 4 = 32\n",
+ " 9 x 4 = 36\n",
+ " 10 x 4 = 40\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 5\n",
+ " 1 x 5 = 5\n",
+ " 2 x 5 = 10\n",
+ " 3 x 5 = 15\n",
+ " 4 x 5 = 20\n",
+ " 5 x 5 = 25\n",
+ " 6 x 5 = 30\n",
+ " 7 x 5 = 35\n",
+ " 8 x 5 = 40\n",
+ " 9 x 5 = 45\n",
+ " 10 x 5 = 50\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 , Page number: CP-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Program to convert a binary number to a decimal number\n",
+ "# Variable declaration\n",
+ "\n",
+ "q = 1101\n",
+ "s = 0\n",
+ "k = 0\n",
+ "\n",
+ "print \"Enter the binary number :\",q\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r * pow(2,k)\n",
+ " q = q / 10\n",
+ " k = k + 1\n",
+ "\n",
+ "\n",
+ "print \"The decimal number is :\",s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the binary number : 1101\n",
+ "The decimal number is : 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23 , Page number: CP-110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert a decimal number to a binary number\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 28\n",
+ "q = n\n",
+ "rbi = 0\n",
+ "flag = 0\n",
+ "k = 0\n",
+ "\n",
+ "print \"Enter the decimal number :\",n\n",
+ "\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 2\n",
+ " if (r == 0) and (flag == 0):\n",
+ " k = k + 1\n",
+ " else:\n",
+ " flag = 1\n",
+ " rbi = rbi * 10 + r\n",
+ " q = q / 2\n",
+ " \n",
+ "q = rbi\n",
+ "bi = 0\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " bi = bi * 10 + r\n",
+ " q = q / 10\n",
+ " i = 1\n",
+ " if (q == 0):\n",
+ " while (i <= k):\n",
+ " bi = bi * 10\n",
+ " i = i + 1\n",
+ "\n",
+ "\n",
+ "print \"The binary number is \",bi "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the decimal number : 28\n",
+ "The binary number is 11100\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter6.ipynb b/Computer_Programming_Theory_and_Practice/Chapter6.ipynb
new file mode 100755
index 00000000..14969fc1
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter6.ipynb
@@ -0,0 +1,794 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aced1a8512bbd1c950b44a0ce98d7bb529f62e617c89b1c73eec08ce49b27311"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Arrays and Subscribed Variables"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the sum of n numbers using array\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [36,45,52,44,62]\n",
+ "\n",
+ "print \"How many integers ?\",n\n",
+ "print \"Enter the 1th value :\",x[0]\n",
+ "print \"Enter the 2th value :\",x[1]\n",
+ "print \"Enter the 3th value :\",x[2]\n",
+ "print \"Enter the 4th value :\",x[3]\n",
+ "print \"Enter the 5th value :\",x[4]\n",
+ "\n",
+ "summ = 0 \n",
+ "\n",
+ "# Calculation of sum of numbers\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ " \n",
+ "\n",
+ "print \"Sum of all integers =\",summ\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many integers ? 5\n",
+ "Enter the 1th value : 36\n",
+ "Enter the 2th value : 45\n",
+ "Enter the 3th value : 52\n",
+ "Enter the 4th value : 44\n",
+ "Enter the 5th value : 62\n",
+ "Sum of all integers = 239\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of n numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [25,-228,0,185,36]\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter all those numbers\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "big = x[0]\n",
+ "\n",
+ "\n",
+ "for i in x:\n",
+ " if (i > big):\n",
+ " big = i\n",
+ "\n",
+ "\n",
+ "print \"%d is the biggest number\" % big "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 5\n",
+ "Enter all those numbers\n",
+ "25 -228 0 185 36\n",
+ "185 is the biggest number\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: Cp-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the arithmetic mean, variance and standard deviation\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [3.1,3.8,3.6,4.0,3.4,3.8]\n",
+ "summ = 0\n",
+ "vsum = 0\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values in the list \"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "# Loop to find sum of all values\n",
+ "\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ "\n",
+ "xbar = summ / n\n",
+ "\n",
+ "# Loop to find the numerator vsum to find variance\n",
+ "\n",
+ "for i in x:\n",
+ " vsum = vsum + (i - xbar) * (i - xbar)\n",
+ "\n",
+ "\n",
+ "sigmax = vsum / n\n",
+ "sd = sigmax ** 0.5\n",
+ "\n",
+ "print \"Arithmetic mean = %0.3f\" % xbar\n",
+ "print \"Variance = %0.3f \" % sigmax\n",
+ "print \"Standard deviation = %0.3f\" % sd"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values in the list \n",
+ "3.1 3.8 3.6 4.0 3.4 3.8\n",
+ "Arithmetic mean = 3.617\n",
+ "Variance = 0.088 \n",
+ "Standard deviation = 0.297\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate mean of marks and print list of marks greater than mean\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [58,63,68,54,48]\n",
+ "summ = 0 # Used summ instead of sum since it was a inbuilt function\n",
+ "i = 0\n",
+ "\n",
+ "print \"How many students ?\",n\n",
+ "print \"Enter all the marks \"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ "\n",
+ "mean = float(summ) / n\n",
+ "\n",
+ "print \"Mean = %0.2f\" % mean\n",
+ "print \"Marks greater than mean :\",\n",
+ "\n",
+ "i = 0\n",
+ "for i in x:\n",
+ " if (i > mean):\n",
+ " print i,\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 5\n",
+ "Enter all the marks \n",
+ "58 63 68 54 48\n",
+ "Mean = 58.20\n",
+ "Marks greater than mean : 63 68\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find sum of all positive and negative numbers and to find out which is larger in magnitude\n",
+ "# Variable declaration\n",
+ "import math\n",
+ "\n",
+ "n = 6\n",
+ "x = [8,-12,-16,12,-9,5]\n",
+ "psum = 0\n",
+ "nsum = 0\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "\n",
+ "# Loop to calculate sum of positive and negative values\n",
+ "\n",
+ "for i in x:\n",
+ " if i > 0:\n",
+ " psum = psum + i\n",
+ " else:\n",
+ " nsum = nsum + i\n",
+ "\n",
+ "print \"Sum of positive values = %0.2f\" % psum\n",
+ "print \"Sum of negative values = %0.2f\" % nsum\n",
+ "\n",
+ "if (psum > abs(nsum)):\n",
+ " print \"Positive sum is greater in magnitude\"\n",
+ "else:\n",
+ " print \"Negative sum is greater in magnitude\"\n",
+ "\n",
+ "diff = abs(psum) - abs(nsum)\n",
+ "print \"Difference in magnitude = %0.2f\" % abs(diff)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values in the list\n",
+ "8 -12 -16 12 -9 5\n",
+ "Sum of positive values = 25.00\n",
+ "Sum of negative values = -37.00\n",
+ "Negative sum is greater in magnitude\n",
+ "Difference in magnitude = 12.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort n numbers in ascending order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [32,-10,20,5]\n",
+ "i = 0\n",
+ "\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter the list of 4 numbers\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print\n",
+ "\n",
+ "# Loop to arrange the numbers in ascending order\n",
+ "\n",
+ "while i < n-1:\n",
+ " j = i + 1\n",
+ " while j < n:\n",
+ " if x[i] > x[j]:\n",
+ " temp = x[i]\n",
+ " x[i] = x[j]\n",
+ " x[j] = temp\n",
+ " j = j + 1\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"Numbers in ascending order \"\n",
+ "\n",
+ "for a in x:\n",
+ " print a,\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 4\n",
+ "Enter the list of 4 numbers\n",
+ "32 -10 20 5\n",
+ "Numbers in ascending order \n",
+ "-10 5 20 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to search the key value and to print it if the search is successful\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [6,-2,8,3,13,10]\n",
+ "s = 3\n",
+ "\n",
+ "print \"How many values in the list ?\",n\n",
+ "print \"Enter all values in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "print \"Enter the key value to be searched :\",s\n",
+ "\n",
+ "# loop to search key value in the list\n",
+ "\n",
+ "for i in range(n):\n",
+ " if s == x[i]:\n",
+ " print s,\" is available in\",i+1,\"th location\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values in the list ? 6\n",
+ "Enter all values in the list\n",
+ "6 -2 8 3 13 10\n",
+ "Enter the key value to be searched : 3\n",
+ "3 is available in 4 th location\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort n numbers using bubble sort and find number of exchanges and passes\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [6,-2,8,3]\n",
+ "exchng = 0\n",
+ "\n",
+ "print \"How many numbers?\",n\n",
+ "print \"Enter all the numbers in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "\n",
+ "print\n",
+ "\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(0,n-i-1):\n",
+ " if x[j] > x[j+1]:\n",
+ " temp = x[j]\n",
+ " x[j] = x[j+1]\n",
+ " x[j+1] = temp\n",
+ " exchng = exchng + 1\n",
+ " \n",
+ "\n",
+ "print \"The sorted list is\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "\n",
+ "print \n",
+ "\n",
+ "print \"Sorted in\",n-1,\"passes and\",exchng,\"exchanges\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers? 4\n",
+ "Enter all the numbers in the list\n",
+ "6 -2 8 3\n",
+ "The sorted list is\n",
+ "-2 3 6 8\n",
+ "Sorted in 3 passes and 3 exchanges\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to add two matrices\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter A matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "print \"Enter B matrix\"\n",
+ "for j in b:\n",
+ " print j\n",
+ "\n",
+ "# Loop to add two matrices\n",
+ "\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " c[i][j] = a[i][j] + b[i][j]\n",
+ "\n",
+ "\n",
+ "print \"Resultant matrix is\"\n",
+ "for ci in c:\n",
+ " print ci"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 2\n",
+ "Enter A matrix\n",
+ "[2, -2]\n",
+ "[0, 4]\n",
+ "Enter B matrix\n",
+ "[6, 2]\n",
+ "[4, -5]\n",
+ "Resultant matrix is\n",
+ "[8, 0]\n",
+ "[4, -1]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to multiply two matrices\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "l = 2\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"Enter order of A matrix :\",m,n\n",
+ "print \"Enter A matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "print \"Enter order of B matrix :\",m,n\n",
+ "print \"Enter B matrix\"\n",
+ "for j in b:\n",
+ " print j\n",
+ "\n",
+ "# Loop to multiply two matrices\n",
+ "# iterate through rowa of A\n",
+ "for i in range(m):\n",
+ " # iterate through columns of B\n",
+ " for j in range(l):\n",
+ " c[i][j] = 0\n",
+ " # iterate through rows of B\n",
+ " for k in range(n):\n",
+ " c[i][j] = c[i][j] + a[i][k] * b[k][j]\n",
+ "\n",
+ "\n",
+ "print \"Resultant matrix is\"\n",
+ "\n",
+ "for i in c:\n",
+ " print i\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of A matrix : 2 2\n",
+ "Enter A matrix\n",
+ "[2, -2]\n",
+ "[0, 4]\n",
+ "Enter order of B matrix : 2 2\n",
+ "Enter B matrix\n",
+ "[6, 2]\n",
+ "[4, -5]\n",
+ "Resultant matrix is\n",
+ "[4, 14]\n",
+ "[16, -20]\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find and print the transpose of the matrix\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 3\n",
+ "a = [[-3,6,0],\n",
+ " [3,2,8]]\n",
+ "at = [[0,0],\n",
+ " [0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"Enter order of the matrix :\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in a :\n",
+ " print i\n",
+ "\n",
+ "# Loop to calculate transpose\n",
+ "\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " at[j][i] = a[i][j]\n",
+ "\n",
+ "print \"The transposed matrix is \"\n",
+ "for i in at:\n",
+ " print i\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of the matrix : 2 3\n",
+ "Enter the matrix values\n",
+ "[-3, 6, 0]\n",
+ "[3, 2, 8]\n",
+ "The transposed matrix is \n",
+ "[-3, 3]\n",
+ "[6, 2]\n",
+ "[0, 8]\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 ,Page number: CP-139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to check whether a given matrix is symmetric or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 3\n",
+ "a = [[5,3,8],\n",
+ " [3,1,-7],\n",
+ " [8,-7,4]]\n",
+ "\n",
+ "print \"Enter order of the square matrix :\",m\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "# Loop to check whether symmetric or not\n",
+ "\n",
+ "for i in range(m):\n",
+ " flag = 0\n",
+ " for j in range(m):\n",
+ " flag = 0\n",
+ " if a[i][j] == a[j][i]:\n",
+ " continue\n",
+ " else:\n",
+ " flag = 1\n",
+ "\n",
+ "if flag == 0:\n",
+ " print \"The given matrix is a symmetric matrix\"\n",
+ "else:\n",
+ " print \"The given matrix is not a symmetric matrix\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of the square matrix : 3\n",
+ "[5, 3, 8]\n",
+ "[3, 1, -7]\n",
+ "[8, -7, 4]\n",
+ "The given matrix is a symmetric matrix\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the trace of a given square matrix\n",
+ "# Variable dclaration\n",
+ "\n",
+ "m = 3\n",
+ "a = [[3,2,-1],\n",
+ " [4,1,8],\n",
+ " [6,4,2]]\n",
+ "summ = 0\n",
+ "\n",
+ "print \"Enter order of the square matrix :\",m\n",
+ "print \"Enter the matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "# Loop to find trace\n",
+ "for i in range(m):\n",
+ " summ = summ + a[i][i]\n",
+ "\n",
+ "print \"Trace of the matrix =\",summ "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter7.ipynb b/Computer_Programming_Theory_and_Practice/Chapter7.ipynb
new file mode 100755
index 00000000..0d79c17f
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter7.ipynb
@@ -0,0 +1,557 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:37ae6cc76fe6f4a8cc8dba62582a6a103f99da5c7579d1a782cb95241f542fd8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count the occurence of a particular in a string\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"MISSISSIPPI\"\n",
+ "ch = \"S\"\n",
+ "count = 0\n",
+ "\n",
+ "print \"Enter the string :\",st\n",
+ "print \"Which character to be counted ?\",ch\n",
+ "\n",
+ "# Loop to check occurrence of aa character\n",
+ "\n",
+ "l = len(st)\n",
+ "\n",
+ "for i in st:\n",
+ " if i == ch:\n",
+ " count = count + 1\n",
+ "\n",
+ "print \"The character \" + ch + \" occurs %d times\" % count "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string : MISSISSIPPI\n",
+ "Which character to be counted ? S\n",
+ "The character S occurs 4 times\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count the number of vowels in a sentence\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"This is a book\"\n",
+ "count = 0\n",
+ "\n",
+ "print \"Enter the sentence :\"\n",
+ "print st\n",
+ "\n",
+ "# Loop to count the vowels in the string\n",
+ "\n",
+ "for i in st:\n",
+ " if i == \"A\":\n",
+ " count = count + 1\n",
+ " elif i == \"E\":\n",
+ " count = count + 1\n",
+ " elif i == \"I\":\n",
+ " count = count + 1\n",
+ " elif i == \"O\":\n",
+ " count = count + 1\n",
+ " elif i == \"U\":\n",
+ " count = count + 1\n",
+ " elif i == \"a\":\n",
+ " count = count + 1\n",
+ " elif i == \"e\":\n",
+ " count = count + 1\n",
+ " elif i == \"i\":\n",
+ " count = count + 1\n",
+ " elif i == \"o\":\n",
+ " count = count + 1\n",
+ " elif i == \"u\":\n",
+ " count = count + 1\n",
+ "\n",
+ "print \"%d vowels are present in the sentence\" % count\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the sentence :\n",
+ "This is a book\n",
+ "5 vowels are present in the sentence\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to test whether a given string is a palindrome or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"HYDERABAD\"\n",
+ "rst = \"\"\n",
+ "i = 0\n",
+ "j = len(st) - 1\n",
+ "\n",
+ "print \"Enter the string :\",st\n",
+ "\n",
+ "# Palindrome or not \n",
+ "\n",
+ "rst = reversed(st)\n",
+ "\n",
+ "if list(st) == list(rst):\n",
+ " print \"%s is a palindrome string \" % st\n",
+ "else:\n",
+ " print \"%s is not a palindrome string \" % st"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string : HYDERABAD\n",
+ "HYDERABAD is not a palindrome string \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to conctenate two strings\n",
+ "# Variable declaration\n",
+ "\n",
+ "st1 = \"NEW \"\n",
+ "st2 = \"DELHI\"\n",
+ "\n",
+ "# input of two strings to be concatenated\n",
+ "\n",
+ "print \"Enter first string :\",st1\n",
+ "print \"Enter second string :\",st2\n",
+ "\n",
+ "# concatenation of two strings\n",
+ "st = st1 + st2\n",
+ "\n",
+ "print \"Resultant string is \",st "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first string : NEW \n",
+ "Enter second string : DELHI\n",
+ "Resultant string is NEW DELHI\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compare two strings\n",
+ "# Variable declaration\n",
+ "\n",
+ "st1 = \"ALPHA\"\n",
+ "st2 = \"BETA\"\n",
+ "\n",
+ "print \"Enter string 1:\",st1\n",
+ "print \"Enter string 2:\",st2\n",
+ "\n",
+ "# compare strings\n",
+ "\n",
+ "if (cmp(st1,st2)>0):\n",
+ " print \"%s \" + st1 + \"is alphabetically greater string\"\n",
+ "else:\n",
+ " print st2 + \" is alphabetically greater string\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string 1: ALPHA\n",
+ "Enter string 2: BETA\n",
+ "BETA is alphabetically greater string\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort an array of names in alphabetical order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "names = [\"DEEPAK\",\"SHERIN\",\"SONIKA\",\"ARUN\"]\n",
+ "\n",
+ "print \"How many names ?\",n\n",
+ "print \"Enter the 4 names one by one\"\n",
+ "for i in names:\n",
+ " print i\n",
+ "\n",
+ "# Loop to arrange names in alphabetical order\n",
+ "\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if cmp(names[i],names[j])>0:\n",
+ " \n",
+ " temp = names[i]\n",
+ " names[i] = names[j]\n",
+ " names[j] = temp\n",
+ "\n",
+ "print \"Names in alphabetical order\"\n",
+ "for i in names:\n",
+ " print i"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many names ? 4\n",
+ "Enter the 4 names one by one\n",
+ "DEEPAK\n",
+ "SHERIN\n",
+ "SONIKA\n",
+ "ARUN\n",
+ "Names in alphabetical order\n",
+ "ARUN\n",
+ "DEEPAK\n",
+ "SHERIN\n",
+ "SONIKA\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert a line from lower case to upper case\n",
+ "# Variable declaretion\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "st = ['l','o','g','i','c','a','l',' ','t','h','i','n','k','i','n','g',' ','i','s',' ','a',' ','m','u','s','t',' ','t','o',' ','l','e','a','r','n',' ','p','r','o','g','r','a','m','m','i','n','g']\n",
+ "\n",
+ "print \"Enter a sentence :\"\n",
+ "for i in st:\n",
+ " print i,\n",
+ "print \n",
+ "print \"The converted upper case string is\"\n",
+ "# loop to convert lower case alphabet to upper case text\n",
+ "for i in range(len(st)):\n",
+ " if st[i] >= 'a' and st[i] <= 'z':\n",
+ " st[i] = chr(ord(st[i])-32)\n",
+ "\n",
+ "\n",
+ " sys.stdout.write(st[i])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a sentence :\n",
+ "l o g i c a l t h i n k i n g i s a m u s t t o l e a r n p r o g r a m m i n g\n",
+ "The converted upper case string is\n",
+ "LOGICAL THINKING IS A MUST TO LEARN PROGRAMMING"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to read a text and to omit al occurrences of a particular word\n",
+ "# Variable declartion\n",
+ "\n",
+ "st = \"TO ACCESS THE NAME OF THE CITY IN THE LIST\"\n",
+ "i = 0\n",
+ "omit = \"THE\"\n",
+ "l = len(st)\n",
+ "j = 0\n",
+ "word = []\n",
+ "newst = \"\"\n",
+ "onesps = \"\"\n",
+ "print \"Enter a sentence :\"\n",
+ "print st\n",
+ "print \"Enter word to omit :\",omit\n",
+ "\n",
+ "# loop to omit the given word\n",
+ "\n",
+ "for i in range(l):\n",
+ " ch = i\n",
+ " if ch == ' ':\n",
+ " for j in word:\n",
+ " j = \" \" \n",
+ " if j == omit:\n",
+ " newst = j\n",
+ " newst = onesps\n",
+ " j = \" \"\n",
+ " j = 0\n",
+ " else:\n",
+ " j = ch\n",
+ " j = j + 1\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"After omiting the word \" + omit\n",
+ "print newst\n",
+ "print \"Press any key to continue\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a sentence :\n",
+ "TO ACCESS THE NAME OF THE CITY IN THE LIST\n",
+ "Enter word to omit : THE\n",
+ "After omiting the word THE\n",
+ "\n",
+ "Press any key to continue\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate the amount to be paid for the telegram\n",
+ "# Variable declaration\n",
+ "\n",
+ "count = 0\n",
+ "st = \"Congratulations on your success in Examinations.\"\n",
+ "l = len(st)\n",
+ "\n",
+ "print \"Type the sentence for Telegram\"\n",
+ "print st\n",
+ "\n",
+ "# loop to count number of words\n",
+ "\n",
+ "for i in range(l):\n",
+ " if st[i] == '?':\n",
+ " count = count + 1\n",
+ "\n",
+ "if count <= 10:\n",
+ " amt = 5\n",
+ "else:\n",
+ " amt = 5 + (count - 10) * 1.25\n",
+ "\n",
+ "print \"Amount to be paid for telegram = Rs.%0.2f\" % amt "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Type the sentence for Telegram\n",
+ "Congratulations on your success in Examinations.\n",
+ "Amount to be paid for telegram = Rs.5.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count number of lines,words and characters\n",
+ "# Variable declaration\n",
+ "\n",
+ "txt = \"What is a string? How do you initialize it? Explain with example.$\"\n",
+ "st = \"\"\n",
+ "i = 0\n",
+ "lns = 0\n",
+ "wds = 0\n",
+ "chs = 0\n",
+ "\n",
+ "print \"Enter the text, type $ at end.\"\n",
+ "print txt\n",
+ "\n",
+ "# loop to count lines,words and characters in text\n",
+ "\n",
+ "while txt[i] != '$':\n",
+ " # switch case statements\n",
+ " if txt[i] == ' ':\n",
+ " wds = wds + 1\n",
+ " chs = chs + 1\n",
+ " elif txt[i] == '.':\n",
+ " wds = wds + 1\n",
+ " lns = lns + 1\n",
+ " chs = chs + 1\n",
+ " elif txt[i] == '?':\n",
+ " lns = lns + 1\n",
+ " else: # default\n",
+ " chs = chs + 1\n",
+ "\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"Number of char (incl. blanks) =\",chs\n",
+ "print \"Number of words =\",wds\n",
+ "print \"Number of lines =\",lns\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the text, type $ at end.\n",
+ "What is a string? How do you initialize it? Explain with example.$\n",
+ "Number of char (incl. blanks) = 63\n",
+ "Number of words = 12\n",
+ "Number of lines = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter8.ipynb b/Computer_Programming_Theory_and_Practice/Chapter8.ipynb
new file mode 100755
index 00000000..49edb490
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter8.ipynb
@@ -0,0 +1,1027 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0c7b2e51d9ff140f666ba709dd09beff8baf4fe046109218b6f3ac69ed4bb2fe"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to write a function to find factorial and use it to find nCr\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "r = 3\n",
+ "\n",
+ "print \"Enter value to n and r :\",n,r\n",
+ "\n",
+ "# function subprogram to find factorial\n",
+ "\n",
+ "def fact(k):\n",
+ " p = 1\n",
+ " for i in range(1,k+1):\n",
+ " p = p * i\n",
+ " return p\n",
+ "\n",
+ "\n",
+ "ncr = fact(n) / (fact(r) * fact(n-r))\n",
+ "\n",
+ "\n",
+ "print \"Value of nCr =\",ncr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to n and r : 5 3\n",
+ "Value of nCr = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of given three values using function and use it to find total marks of the student\n",
+ "# Variable declaration\n",
+ "\n",
+ "t1 = 62\n",
+ "t2 = 70\n",
+ "t3 = 58\n",
+ "a1 = 17\n",
+ "a2 = 21\n",
+ "a3 = 23\n",
+ "\n",
+ "print \"Enter three test scores :\",t1,t2,t3\n",
+ "print \"Enter three assignment scores :\",a1,a2,a3\n",
+ "\n",
+ "# function to find biggest of three values\n",
+ "\n",
+ "def big(a,b,c):\n",
+ " if a > b:\n",
+ " if a > c:\n",
+ " return a\n",
+ " else:\n",
+ " return c\n",
+ " elif b > c:\n",
+ " return b\n",
+ " else:\n",
+ " return c\n",
+ "\n",
+ "total = big(t1,t2,t3) + big(a1,a2,a3)\n",
+ "\n",
+ "print \"Total marks =\",total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three test scores : 62 70 58\n",
+ "Enter three assignment scores : 17 21 23\n",
+ "Total marks = 93\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to create a function to compute the cos(x) series upto 15 terms\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0\n",
+ "\n",
+ "print \"----------------------------------\"\n",
+ "print \" x in degrees cos(x) \"\n",
+ "print \"----------------------------------\"\n",
+ "\n",
+ "# function for computing cosine function\n",
+ "\n",
+ "def cosine(x):\n",
+ " s = 0\n",
+ " i = 0\n",
+ " term = 1\n",
+ " x = x * (3.14) / 180\n",
+ " k = 1\n",
+ " # loop to find summation of 15 terms\n",
+ " while k <= 15:\n",
+ " s = s + term\n",
+ " term = term * x * x * (-1) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ " k = k + 1\n",
+ " return s\n",
+ "\n",
+ "\n",
+ "# calling function\n",
+ "\n",
+ "while x <= 180:\n",
+ " print \" %d \" % x,\" %0.2f \"%cosine(x)\n",
+ " x = x + 30\n",
+ "\n",
+ "print \"-----------------------------------\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "----------------------------------\n",
+ " x in degrees cos(x) \n",
+ "----------------------------------\n",
+ " 0 1.00 \n",
+ " 30 0.87 \n",
+ " 60 0.50 \n",
+ " 90 0.00 \n",
+ " 120 -0.50 \n",
+ " 150 -0.87 \n",
+ " 180 -1.00 \n",
+ "-----------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find GCD of two integers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 45\n",
+ "b = 27\n",
+ "c = 81\n",
+ "\n",
+ "print \"Enter three integers :\",a,b,c\n",
+ "\n",
+ "def gcd(x,y):\n",
+ " if x >= y:\n",
+ " nr = x\n",
+ " dr = y\n",
+ " else:\n",
+ " nr = y\n",
+ " dr = x\n",
+ " r = nr % dr\n",
+ " while r != 0:\n",
+ " nr = dr\n",
+ " dr = r\n",
+ " r = nr % dr\n",
+ "\n",
+ " return dr\n",
+ "\n",
+ "d1 = gcd(a,b)\n",
+ "d2 = gcd(a,c)\n",
+ "d3 = gcd(b,c)\n",
+ "\n",
+ "if d1 == d2:\n",
+ " if d1 == d3:\n",
+ " print \"Greatest common divisor is\",d1\n",
+ " else:\n",
+ " print \"Greatest common divisor is \",gcd(d1,d3)\n",
+ "else:\n",
+ " print \"Greatest common divisr is\",gcd(d1,d2)\n",
+ "\n",
+ "\n",
+ "print \"Press any key to continue. . .\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three integers : 45 27 81\n",
+ "Greatest common divisor is 9\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse the given integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 2846\n",
+ "\n",
+ "print \"Enter the integer :\",n\n",
+ "\n",
+ "# function to reverse an integer\n",
+ "\n",
+ "def reverse(n):\n",
+ " rn = 0\n",
+ " while n > 0:\n",
+ " r = n % 10\n",
+ " rn = rn * 10 + r\n",
+ " n = n /10\n",
+ " return rn\n",
+ "\n",
+ "\n",
+ "# call the function to print the reverse integer\n",
+ "\n",
+ "print n,\"is reversed as \",reverse(n)\n",
+ "print \"Press any key to continue. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the integer : 2846\n",
+ "2846 is reversed as 6482\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compare two strings S1 and S2 and return the result 0,1,-1\n",
+ "# Variable declaration\n",
+ "\n",
+ "s1 = \"MUMBAI\"\n",
+ "s2 = \"MYSORE\"\n",
+ "\n",
+ "print \"Enter the first string :\",s1\n",
+ "print \"Enter the second string :\",s2\n",
+ "\n",
+ "\n",
+ "# function to compare the strings\n",
+ "\n",
+ "def compare(s1,s2):\n",
+ " if cmp(s1,s2) == 0:\n",
+ " return 0\n",
+ " if cmp(s1,s2) > 0:\n",
+ " return 1\n",
+ " if cmp(s1,s2) < 0:\n",
+ " return -1\n",
+ "\n",
+ "# call the function to print the result\n",
+ "\n",
+ "print \"The result is \", compare(s1,s2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first string : MUMBAI\n",
+ "Enter the second string : MYSORE\n",
+ "The result is -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the arithmetic mean of n values using a function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [3.1,3.8,3.6,4.0,3.4,3.8]\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "# function to find arithmetic mean\n",
+ "\n",
+ "def amean(x,n):\n",
+ " s = 0\n",
+ " for i in range(n):\n",
+ " s = s + x[i]\n",
+ " return (s/n)\n",
+ "\n",
+ "# call function to print arithmetic mean\n",
+ "\n",
+ "print \"Arithmetic mean = %0.2f\" % amean(x,n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values\n",
+ "3.1 3.8 3.6 4.0 3.4 3.8\n",
+ "Arithmetic mean = 3.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to read a matrix of order m x n and print the sum of all elements using functions\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 3\n",
+ "n = 2\n",
+ "a = [[2,3,4],\n",
+ " [2,0,1]]\n",
+ "\n",
+ "\n",
+ "print \"How many rows and columns :\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " print a[i][j],\n",
+ " print \n",
+ "\n",
+ "# function to add all elements in the matrix\n",
+ "def elem_sum(a,m,n):\n",
+ " i = 0\n",
+ " j = 0\n",
+ " s = 0\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " s = s + a[i][j]\n",
+ " j = j + 1\n",
+ " i = i + 1 \n",
+ " return s\n",
+ "\n",
+ "# call function to print the result\n",
+ "\n",
+ "print \"Sum of all elements in the matrix =\",\n",
+ "print elem_sum(a,m,n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns : 3 2\n",
+ "Enter the matrix values\n",
+ "2 3 4\n",
+ "2 0 1\n",
+ "Sum of all elements in the matrix = 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse a string\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"NEW DELHI\"\n",
+ "print \"Enter a string :\",st\n",
+ "def reverse(st):\n",
+ " rst = \"\"\n",
+ " for i in range(0 ,len(st)):\n",
+ " rst += st[(len(st) -1) - i]\n",
+ " return rst\n",
+ "\n",
+ "print st,\"is reversed as \",\n",
+ "print reverse(st)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string : NEW DELHI\n",
+ "NEW DELHI is reversed as IHLED WEN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to apply binary search to set of N numbers using a function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 10\n",
+ "x = [-3,8,13,19,21,25,26,29,35,42]\n",
+ "s = 19\n",
+ "\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter all numbers in the list\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "print \"Enter the number to be searched :\",s\n",
+ "\n",
+ "# function to search the number\n",
+ "\n",
+ "def bi_search(x,n,s):\n",
+ " flag = 0\n",
+ " start = 0\n",
+ " end = n\n",
+ " while start < end and flag ==0:\n",
+ " mid = (start + end) / 2\n",
+ " if x[mid] > s:\n",
+ " end = mid\n",
+ " elif x[mid] < s:\n",
+ " start = mid + 1\n",
+ " else:\n",
+ " flag = 1\n",
+ " return flag\n",
+ "\n",
+ "# calling the function\n",
+ "\n",
+ "if bi_search(x,n,s):\n",
+ " print \"The number\",s,\"is present in the list\"\n",
+ "else:\n",
+ " print \"The number\",s,\"is not present in list\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 10\n",
+ "Enter all numbers in the list\n",
+ "-3 8 13 19 21 25 26 29 35 42\n",
+ "Enter the number to be searched : 19\n",
+ "The number 19 is present in the list\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find factorial of a given number using recursive function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "r = 3\n",
+ "\n",
+ "print \"Enter the values to n and r :\",n,r\n",
+ "\n",
+ "# recursive function to find factorial\n",
+ "\n",
+ "def fact(k):\n",
+ " if k ==1:\n",
+ " return 1\n",
+ " else:\n",
+ " return (k * fact(k-1))\n",
+ "\n",
+ "ncr = fact(n)/(fact(r) * fact(n-r))\n",
+ "print \"Value of nCr =\",ncr "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values to n and r : 5 3\n",
+ "Value of nCr = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 , Page number: CP-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compute the value of x power n using a recursive function\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 4.20\n",
+ "n = 3\n",
+ "\n",
+ "print \"Enter value to x :\",x\n",
+ "print \"Enter its power :\",n\n",
+ "\n",
+ "# recursive function to find x rise to n\n",
+ "\n",
+ "def power(x,n):\n",
+ " if n == 1:\n",
+ " return x\n",
+ " else:\n",
+ " return (x * power(x,n-1))\n",
+ "\n",
+ "\n",
+ "print \"%0.2f\" %x,\"raise to \",n,\"is %0.2f\" % power(x,n) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x : 4.2\n",
+ "Enter its power : 3\n",
+ "4.20 raise to 3 is 74.09\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to display first n terms of the fibonacci series using recursive function\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 10\n",
+ "t1 = 0\n",
+ "t2 = 1\n",
+ "i = 0\n",
+ "count = 2\n",
+ "\n",
+ "# recursive function to print the terms in series\n",
+ "def fibo(t1,t2):\n",
+ " global count\n",
+ " if (count >= n):\n",
+ " return\n",
+ " else:\n",
+ " t3 = t1 + t2\n",
+ " print t3,\n",
+ " count = count + 1\n",
+ " t1 = t2\n",
+ " t2 = t3\n",
+ " return fibo(t1,t2)\n",
+ " \n",
+ "\n",
+ "\n",
+ "print \"How many terms to be printed ?\",n\n",
+ "print \"The first\",n,\"terms in Fibonacci series are\"\n",
+ "print t1,\n",
+ "print t2,\n",
+ "\n",
+ "fibo(t1,t2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many terms to be printed ? 10\n",
+ "The first 10 terms in Fibonacci series are\n",
+ "0 1 1 2 3 5 8 13 21 34\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 , Page number: CP-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to add two matrices of order m x n and to print the resultant values\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter A matrix value\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print \n",
+ "print \"Enter B matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print b[i][j],\n",
+ " print \n",
+ "\n",
+ "# function to add matrices\n",
+ "def matadd():\n",
+ " for i in range(m):\n",
+ " for j in range(n):\n",
+ " c[i][j] = a[i][j] + b[i][j]\n",
+ "\n",
+ "\n",
+ "\n",
+ "# call function\n",
+ "matadd()\n",
+ "print \"Resultant matrix is\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print c[i][j],\n",
+ " print \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 2\n",
+ "Enter A matrix value\n",
+ "2 -2\n",
+ "0 4\n",
+ "Enter B matrix values\n",
+ "6 2\n",
+ "4 -5\n",
+ "Resultant matrix is\n",
+ "8 0\n",
+ "4 -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 , Page number: CP-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to multiply A matrix of order of m x n with B matrix of order n x l and print the resultant matrix\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2,],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "l = 2\n",
+ "\n",
+ "print \"Enter order of A matrix (m x n) :\",m,n\n",
+ "print \"Enter A matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print\n",
+ " \n",
+ "print \"Enter order of B matrix (n x l) :\",n,l\n",
+ "print \"Enter B matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print b[i][j],\n",
+ " print \n",
+ " \n",
+ "\n",
+ "# function to multiply matrices\n",
+ "\n",
+ "def matmul():\n",
+ " for i in range(m):\n",
+ " for j in range(l):\n",
+ " c[i][j] = 0\n",
+ " for k in range(n):\n",
+ " c[i][j] = c[i][j] + a[i][k] * b[k][j]\n",
+ " return c\n",
+ "\n",
+ "# call function\n",
+ "matmul()\n",
+ "print \"Resultant matix is\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print c[i][j],\n",
+ " print\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of A matrix (m x n) : 2 2\n",
+ "Enter A matrix values\n",
+ "2 -2\n",
+ "0 4\n",
+ "Enter order of B matrix (n x l) : 2 2\n",
+ "Enter B matrix values\n",
+ "6 2\n",
+ "4 -5\n",
+ "Resultant matix is\n",
+ "4 14\n",
+ "16 -20\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 , Page number: CP-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to transpose a matrix of order m x n\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[-3,6,0],\n",
+ " [3,2,8]]\n",
+ "at = [[0,0],\n",
+ " [0,0],\n",
+ " [0,0]]\n",
+ "m = 2\n",
+ "n = 3\n",
+ "ch = \"y\"\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print \n",
+ " \n",
+ "\n",
+ "# function to transpose a matrix\n",
+ "\n",
+ "def transpose(a,at,m,n):\n",
+ " for i in range(m):\n",
+ " for j in range(n):\n",
+ " at[j][i] = a[i][j]\n",
+ " return at\n",
+ "\n",
+ "while ch == 'y' or ch == 'Y' :\n",
+ " # call function to transpose the matrix\n",
+ " transpose(a,at,m,n)\n",
+ " print \"Transpose of the matrix is\"\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " print at[i][j],\n",
+ " print\n",
+ " ch = \"N\"\n",
+ " print \"Press y to continue\"\n",
+ " print \" any other key to stop.\",ch"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 3\n",
+ "Enter the matrix values\n",
+ "-3 6 0\n",
+ "3 2 8\n",
+ "Transpose of the matrix is\n",
+ "-3 3\n",
+ "6 2\n",
+ "0 8\n",
+ "Press y to continue\n",
+ " any other key to stop. N\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 , Page number: CP-200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to create a function to sort the elements of an array in ascending order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [32,-10,20,5]\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter the list of values\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "# function to sort the numbers\n",
+ "def sort(x,n):\n",
+ " for i in range(n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if x[i] > x[j]:\n",
+ " temp = x[i]\n",
+ " x[i] = x[j]\n",
+ " x[j] = temp\n",
+ " return x\n",
+ "\n",
+ "# call function to sort the numbers\n",
+ "sort(x,n)\n",
+ "print \"The sorted list is\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 4\n",
+ "Enter the list of values\n",
+ "32 -10 20 5\n",
+ "The sorted list is\n",
+ "-10 5 20 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/Chapter9.ipynb b/Computer_Programming_Theory_and_Practice/Chapter9.ipynb
new file mode 100755
index 00000000..2113c5af
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/Chapter9.ipynb
@@ -0,0 +1,624 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:93c2825491a65ebd6dbc85e6208fc8a03cf21f92da06cf2457eda56a011645f1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to display student details\n",
+ "# class declaration instead of a structure\n",
+ "\n",
+ "class student:\n",
+ " rno = 0\n",
+ " sname = \"\"\n",
+ " tot = 0\n",
+ "\n",
+ "# class object variable\n",
+ "\n",
+ "x = student()\n",
+ "x.rno = 20147\n",
+ "x.sname = \"PRADEEP\"\n",
+ "x.tot = 64\n",
+ "\n",
+ "print \"Enter roll number, name and total marks\"\n",
+ "print x.rno,x.sname,x.tot\n",
+ "print \" Details entered are\"\n",
+ "print \"Roll No. :\",x.rno\n",
+ "print \"Student name :\",x.sname\n",
+ "print \"Total marks :\",x.tot\n",
+ "print \"Press any key to continue. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter roll number, name and total marks\n",
+ "20147 PRADEEP 64\n",
+ " Details entered are\n",
+ "Roll No. : 20147\n",
+ "Student name : PRADEEP\n",
+ "Total marks : 64\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to input student details and print the marks of a specified student as output\n",
+ "\n",
+ "# class declaration for structure\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,rno,sname,tot):\n",
+ " self.rno = rno\n",
+ " self.sname = sname\n",
+ " self.tot = tot\n",
+ " \n",
+ "# variable declaration\n",
+ "\n",
+ "ch = \"y\"\n",
+ "n = 3\n",
+ "\n",
+ "# details of n students\n",
+ "std = []\n",
+ "std.append(student(20201,\"ARUN\",78))\n",
+ "std.append(student(20208,\"DEEPAK\",69))\n",
+ "std.append(student(20223,\"SUSMITHA\",88))\n",
+ "\n",
+ "print \"How many students ?\",n\n",
+ "print \"Roll number ?\",std[0].rno\n",
+ "print \"Name ?\",std[0].sname\n",
+ "print \"Total marks ?\",std[0].tot\n",
+ "print \"Roll number ?\",std[1].rno\n",
+ "print \"Name ?\",std[1].sname\n",
+ "print \"Total marks ?\",std[1].tot\n",
+ "print \"Roll number ?\",std[2].rno\n",
+ "print \"Name ?\",std[2].sname\n",
+ "print \"Total marks ?\",std[2].tot\n",
+ "print \n",
+ "\n",
+ "\n",
+ "# To display marks of the student\n",
+ "while ch == \"y\" or ch == \"Y\":\n",
+ " temp = 20208\n",
+ " print \"Enter student roll number to display marks :\",temp\n",
+ " print \n",
+ " flag = 0\n",
+ " #loop to search and display details\n",
+ " for i in range(3):\n",
+ " if flag == 0:\n",
+ " if std[i].rno == temp:\n",
+ " print \"Marks obtained by \",std[i].rno,std[i].sname\n",
+ " print \"Total :\",std[i].tot\n",
+ " flag = 1\n",
+ " if flag == 0:\n",
+ " print temp,\" is not present in the list \"\n",
+ " \n",
+ " ch = \"n\" \n",
+ " print \"press y - to continue\"\n",
+ " print \" any other key to stop.\",ch\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 3\n",
+ "Roll number ? 20201\n",
+ "Name ? ARUN\n",
+ "Total marks ? 78\n",
+ "Roll number ? 20208\n",
+ "Name ? DEEPAK\n",
+ "Total marks ? 69\n",
+ "Roll number ? 20223\n",
+ "Name ? SUSMITHA\n",
+ "Total marks ? 88\n",
+ "\n",
+ "Enter student roll number to display marks : 20208\n",
+ "\n",
+ "Marks obtained by 20208 DEEPAK\n",
+ "Total : 69\n",
+ "press y - to continue\n",
+ " any other key to stop. n\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to declare a structure for student details and display list of students who obtained more than 75 marks\n",
+ "\n",
+ "# class for student structure\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,rno,sname,tot):\n",
+ " self.rno = rno\n",
+ " self.sname = sname\n",
+ " self.tot = tot\n",
+ "\n",
+ "std = []\n",
+ "std.append(student(30401,\"ANAND\",59))\n",
+ "std.append(student(30404,\"NIRMAL\",64))\n",
+ "std.append(student(30428,\"ISWARYA\",82))\n",
+ "std.append(student(30432,\"VIVEKA\",79))\n",
+ "\n",
+ "n = 4\n",
+ "print \"How many students ?\",n\n",
+ "print \"Roll Number ?\",std[0].rno\n",
+ "print \"Name ?\",std[0].sname\n",
+ "print \"Total marks ?\",std[0].tot\n",
+ "print \"Roll Number ?\",std[1].rno\n",
+ "print \"Name ?\",std[1].sname\n",
+ "print \"Total marks ?\",std[1].tot\n",
+ "print \"Roll Number ?\",std[2].rno\n",
+ "print \"Name ?\",std[2].sname\n",
+ "print \"Total marks ?\",std[2].tot\n",
+ "print \"Roll Number ?\",std[3].rno\n",
+ "print \"Name ?\",std[3].sname\n",
+ "print \"Total marks ?\",std[3].tot\n",
+ "print \n",
+ "\n",
+ "\n",
+ "print \"----------------------------------------------------\"\n",
+ "print \" Roll No. Name Total marks \"\n",
+ "print \"----------------------------------------------------\"\n",
+ "for i in range(n):\n",
+ " if std[i].tot >= 75:\n",
+ " print \" \",std[i].rno,\" \",std[i].sname,\" \",std[i].tot\n",
+ "\n",
+ "print \"----------------------------------------------------\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 4\n",
+ "Roll Number ? 30401\n",
+ "Name ? ANAND\n",
+ "Total marks ? 59\n",
+ "Roll Number ? 30404\n",
+ "Name ? NIRMAL\n",
+ "Total marks ? 64\n",
+ "Roll Number ? 30428\n",
+ "Name ? ISWARYA\n",
+ "Total marks ? 82\n",
+ "Roll Number ? 30432\n",
+ "Name ? VIVEKA\n",
+ "Total marks ? 79\n",
+ "\n",
+ "----------------------------------------------------\n",
+ " Roll No. Name Total marks \n",
+ "----------------------------------------------------\n",
+ " 30428 ISWARYA 82\n",
+ " 30432 VIVEKA 79\n",
+ "----------------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to store employee information and to compute employee's pay\n",
+ "\n",
+ "import math\n",
+ "# class declaration for employee\n",
+ "class employee:\n",
+ " def __init__(self,eno,ename,epay,jdate):\n",
+ " self.eno = eno\n",
+ " self.ename = ename\n",
+ " self.epay = epay\n",
+ " self.jdate = jdate\n",
+ "\n",
+ "employs = []\n",
+ "employs.append(employee(20101,\"ASHIKA\",1000,\"31/04/2001\"))\n",
+ "employs.append(employee(20182,\"ASHWIN\",6000,\"11/12/1995\"))\n",
+ "employs.append(employee(20204,\"PRAVEEN\",3000,\"18/06/1994\"))\n",
+ "\n",
+ "n = 3\n",
+ "\n",
+ "print \"Employee No. ?\",employs[0].eno\n",
+ "print \"Name ?\",employs[0].ename\n",
+ "print \"Existing date ?\",employs[0].epay\n",
+ "print \"Joinin date ?\",employs[0].jdate\n",
+ "print \n",
+ "print \"Press y- to continue any other key to stop. y\"\n",
+ "print \"Employee No. ?\",employs[1].eno\n",
+ "print \"Name ?\",employs[1].ename\n",
+ "print \"Existing date ?\",employs[1].epay\n",
+ "print \"Joinin date ?\",employs[1].jdate\n",
+ "print\n",
+ "print \"Press y- to continue any other key to stop. y\"\n",
+ "print \"Employee No. ?\",employs[2].eno\n",
+ "print \"Name ?\",employs[2].ename\n",
+ "print \"Existing date ?\",employs[2].epay\n",
+ "print \"Joinin date ?\",employs[2].jdate\n",
+ "print\n",
+ "print \"Press y- to continue any other key to stop. N\"\n",
+ "print\n",
+ "print n,\" records are entered\"\n",
+ "print \"Press any key to print the revised salary list\"\n",
+ "print \n",
+ "\n",
+ "\n",
+ "\n",
+ "def revise(temp):\n",
+ " if temp <= 2000:\n",
+ " temp = int(temp + math.ceil(temp * 0.15))\n",
+ " return temp\n",
+ " elif temp <= 5000:\n",
+ " temp = int(temp + temp * 0.10)\n",
+ " return temp\n",
+ " else:\n",
+ " return temp\n",
+ "\n",
+ " \n",
+ "# loop to increment salary\n",
+ "for i in range(n):\n",
+ " employs[i].epay = revise(employs[i].epay)\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "# loop to print revised salary list\n",
+ "print \" Employees Revised Pay List \"\n",
+ "print \"---------------------------------------------------------\"\n",
+ "print \" S.No. Number Name Joining date Pay \"\n",
+ "print \"---------------------------------------------------------\"\n",
+ "\n",
+ "for i in range(n):\n",
+ " print \" \",i+1,\" \",employs[i].eno,\" \",employs[i].ename,\" \",employs[i].jdate,\" \",employs[i].epay\n",
+ "\n",
+ "print \"---------------------------------------------------------\" \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Employee No. ? 20101\n",
+ "Name ? ASHIKA\n",
+ "Existing date ? 1000\n",
+ "Joinin date ? 31/04/2001\n",
+ "\n",
+ "Press y- to continue any other key to stop. y\n",
+ "Employee No. ? 20182\n",
+ "Name ? ASHWIN\n",
+ "Existing date ? 6000\n",
+ "Joinin date ? 11/12/1995\n",
+ "\n",
+ "Press y- to continue any other key to stop. y\n",
+ "Employee No. ? 20204\n",
+ "Name ? PRAVEEN\n",
+ "Existing date ? 3000\n",
+ "Joinin date ? 18/06/1994\n",
+ "\n",
+ "Press y- to continue any other key to stop. N\n",
+ "\n",
+ "3 records are entered\n",
+ "Press any key to print the revised salary list\n",
+ "\n",
+ " Employees Revised Pay List \n",
+ "---------------------------------------------------------\n",
+ " S.No. Number Name Joining date Pay \n",
+ "---------------------------------------------------------\n",
+ " 1 20101 ASHIKA 31/04/2001 1150\n",
+ " 2 20182 ASHWIN 11/12/1995 6000\n",
+ " 3 20204 PRAVEEN 18/06/1994 3300\n",
+ "---------------------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to store cricket details and to display a team-wise list with batting average\n",
+ "\n",
+ "# class for cricket structure\n",
+ "\n",
+ "class cricket:\n",
+ " def __init__(self,pname,tname,bavg):\n",
+ " self.pname = pname\n",
+ " self.tname = tname\n",
+ " self.bavg = bavg\n",
+ "\n",
+ "n = 6\n",
+ "probable = []\n",
+ "probable.append(cricket(\"KUMBLE\",\"KARNATAKA\",22))\n",
+ "probable.append(cricket(\"KAMBLI\",\"MUMBAI\",39))\n",
+ "probable.append(cricket(\"SRIKANTH\",\"TAMILNADU\",52))\n",
+ "probable.append(cricket(\"SACHIM\",\"MUMBAI\",69))\n",
+ "probable.append(cricket(\"RAHUL\",\"KARNATAKA\",57))\n",
+ "probable.append(cricket(\"RAMESH\",\"TAMILNADU\",48))\n",
+ "\n",
+ "print \"How many players ?\",n\n",
+ "print\n",
+ "print \"Player name ?\",probable[0].pname\n",
+ "print \"Which team ?\",probable[0].tname\n",
+ "print \"Batting average ?\",probable[0].bavg\n",
+ "print \"Player name ?\",probable[1].pname\n",
+ "print \"Which team ?\",probable[1].tname\n",
+ "print \"Batting average ?\",probable[1].bavg\n",
+ "print \"Player name ?\",probable[2].pname\n",
+ "print \"Which team ?\",probable[2].tname\n",
+ "print \"Batting average ?\",probable[2].bavg\n",
+ "print \"Player name ?\",probable[3].pname\n",
+ "print \"Which team ?\",probable[3].tname\n",
+ "print \"Batting average ?\",probable[3].bavg\n",
+ "print \"Player name ?\",probable[4].pname\n",
+ "print \"Which team ?\",probable[4].tname\n",
+ "print \"Batting average ?\",probable[4].bavg\n",
+ "print \"Player name ?\",probable[5].pname\n",
+ "print \"Which team ?\",probable[5].tname\n",
+ "print \"Batting average ?\",probable[5].bavg\n",
+ "print\n",
+ "print \n",
+ "j = 0\n",
+ "teams = []\n",
+ "teams.append(probable[0].tname)\n",
+ "j = j + 1\n",
+ "for i in range(n):\n",
+ " flag = 0\n",
+ " for k in range(j):\n",
+ " if flag == 0:\n",
+ " if probable[i].tname == teams[k]:\n",
+ " flag = 1\n",
+ " if flag == 0 :\n",
+ " teams.append(probable[i].tname)\n",
+ " j = j + 1\n",
+ "\n",
+ "# loop to print team-wise list\n",
+ "\n",
+ "for k in range(3):\n",
+ " print \" \",teams[k]\n",
+ " print \"---------------------------------------------\"\n",
+ " for i in range(n):\n",
+ " if probable[i].tname == teams[k]:\n",
+ " print \" \",probable[i].pname,\" \",probable[i].bavg\n",
+ " print \"---------------------------------------------\" \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many players ? 6\n",
+ "\n",
+ "Player name ? KUMBLE\n",
+ "Which team ? KARNATAKA\n",
+ "Batting average ? 22\n",
+ "Player name ? KAMBLI\n",
+ "Which team ? MUMBAI\n",
+ "Batting average ? 39\n",
+ "Player name ? SRIKANTH\n",
+ "Which team ? TAMILNADU\n",
+ "Batting average ? 52\n",
+ "Player name ? SACHIM\n",
+ "Which team ? MUMBAI\n",
+ "Batting average ? 69\n",
+ "Player name ? RAHUL\n",
+ "Which team ? KARNATAKA\n",
+ "Batting average ? 57\n",
+ "Player name ? RAMESH\n",
+ "Which team ? TAMILNADU\n",
+ "Batting average ? 48\n",
+ "\n",
+ "\n",
+ " KARNATAKA\n",
+ "---------------------------------------------\n",
+ " KUMBLE 22\n",
+ " RAHUL 57\n",
+ "---------------------------------------------\n",
+ " MUMBAI\n",
+ "---------------------------------------------\n",
+ " KAMBLI 39\n",
+ " SACHIM 69\n",
+ "---------------------------------------------\n",
+ " TAMILNADU\n",
+ "---------------------------------------------\n",
+ " SRIKANTH 52\n",
+ " RAMESH 48\n",
+ "---------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to illustrate the use of union using integer,string and float\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,roll_no,sname,marks):\n",
+ " self.roll_no = roll_no\n",
+ " self.sname = sname\n",
+ " self.marks = marks\n",
+ "\n",
+ "std = []\n",
+ "std.append(student(0,\"AJITH\",0))\n",
+ "std.append(student(0,\"RAJU\",0))\n",
+ "std.append(student(0,\"VIGNESH\",0))\n",
+ "std.append(student(0,\"DIVYA\",0))\n",
+ "\n",
+ "ch = 2\n",
+ "print \"-----------------------------\"\n",
+ "print \" Main menu \"\n",
+ "print \"-----------------------------\"\n",
+ "print \"Press 1 to enter roll numbers\"\n",
+ "print \" 2 to enter names \"\n",
+ "print \" 3 to enter marks \"\n",
+ "print \" 4 to stop \"\n",
+ "print \n",
+ "print \"Enter your choice :\",ch\n",
+ "\n",
+ "n = 4\n",
+ "print \"How many students?\",n\n",
+ "for i in range(n):\n",
+ " print \" Student name ? \",std[i].sname\n",
+ "\n",
+ "print\n",
+ "print \n",
+ "# display required list\n",
+ "# switch case\n",
+ "if ch == 1: #case 1\n",
+ " print \"------------------------------\"\n",
+ " print \" Students roll number list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print std[i].roll_no\n",
+ " print \"-------------------------------\"\n",
+ "elif ch == 2: # case 2\n",
+ " print \"------------------------------\"\n",
+ " print \" Students name list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print std[i].sname\n",
+ " print \"-------------------------------\"\n",
+ "elif ch == 3: # case 3\n",
+ " print \"------------------------------\"\n",
+ " print \" Students mark list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print \"Student marks\",std[i].roll_no\n",
+ " print \"-------------------------------\"\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-----------------------------\n",
+ " Main menu \n",
+ "-----------------------------\n",
+ "Press 1 to enter roll numbers\n",
+ " 2 to enter names \n",
+ " 3 to enter marks \n",
+ " 4 to stop \n",
+ "\n",
+ "Enter your choice : 2\n",
+ "How many students? 4\n",
+ " Student name ? AJITH\n",
+ " Student name ? RAJU\n",
+ " Student name ? VIGNESH\n",
+ " Student name ? DIVYA\n",
+ "\n",
+ "\n",
+ "------------------------------\n",
+ " Students name list \n",
+ "------------------------------\n",
+ "AJITH\n",
+ "RAJU\n",
+ "VIGNESH\n",
+ "DIVYA\n",
+ "-------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice/screenshots/chapter11.png b/Computer_Programming_Theory_and_Practice/screenshots/chapter11.png
new file mode 100755
index 00000000..c5895710
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/screenshots/chapter11.png
Binary files differ
diff --git a/Computer_Programming_Theory_and_Practice/screenshots/chapter2.png b/Computer_Programming_Theory_and_Practice/screenshots/chapter2.png
new file mode 100755
index 00000000..05fde2b5
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/screenshots/chapter2.png
Binary files differ
diff --git a/Computer_Programming_Theory_and_Practice/screenshots/chapter3.png b/Computer_Programming_Theory_and_Practice/screenshots/chapter3.png
new file mode 100755
index 00000000..685e290b
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice/screenshots/chapter3.png
Binary files differ
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter11.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter11.ipynb
new file mode 100755
index 00000000..c046ab93
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter11.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "Chapter11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 11, Files"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page Number:CP-277"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Program to create a text file\n\nfp = open(\"sample.txt\",\"w\") # open file in write mode\n\nprint \"Type the text and Press enter key at end.\"\nprint\nprint \"Computer Programming in C language is widely used for Science and Engineering applications\"\n# input data to file\nch = ['Computer ','Programming ','in ','C ','language ','is ','widely ','used ','for ','Science ','and ' ,'Engineering ','applications.']\nfor i in ch:\n fp.write(i)\nfp.close()\n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Type the text and Press enter key at end.\n\nComputer Programming in C language is widely used for Science and Engineering applications\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page Number:CP-278"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Program to read text file and count number of vowels\n\nfp = open(\"sample.txt\",\"r\") # open file in read mode\ncount = 0\nprint \"The Content of the file is:\"\n\nwhile (1): \n ch = fp.read(1)\n if not ch:\n break\n print ch\n # switch statements\n if ch == \"A\" or ch == \"a\": # case 'A' or 'a'\n count = count + 1\n elif ch == \"E\" or ch == \"e\": # case 'E' or 'e'\n count = count + 1\n elif ch == \"I\" or ch == \"i\": # case 'I' or 'i'\n count = count + 1\n elif ch == \"O\" or ch == \"o\": # case 'O' or 'o'\n count = count + 1\n elif ch == \"U\" or ch == \"u\": # case 'U' or 'u'\n count = count + 1\n\n\n\nfp.close() \nprint \"Number of vowels present =\",count \n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Content of the file is:\nC\no\nm\np\nu\nt\ne\nr\n \nP\nr\no\ng\nr\na\nm\nm\ni\nn\ng\n \ni\nn\n \nC\n \nl\na\nn\ng\nu\na\ng\ne\n \ni\ns\n \nw\ni\nd\ne\nl\ny\n \nu\ns\ne\nd\n \nf\no\nr\n \nS\nc\ni\ne\nn\nc\ne\n \na\nn\nd\n \nE\nn\ng\ni\nn\ne\ne\nr\ni\nn\ng\n \na\np\np\nl\ni\nc\na\nt\ni\no\nn\ns\n.\nNumber of vowels present = 31\n"
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter2.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter2.ipynb
new file mode 100755
index 00000000..c4bc71ff
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter2.ipynb
@@ -0,0 +1,41 @@
+{
+ "metadata": {
+ "name": "Chapter2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 2, Fundamentals of C language"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page Number: CP-22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# variable declaration\n\na = 5\nb = 7\nc = 2\n\n# calculation \n\ny = a + b / c - a % c + 2 * a\n\n# result \n\nprint \"The result is \",y\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The result is 17\n"
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter3.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter3.ipynb
new file mode 100755
index 00000000..04d24871
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter3.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0ff7bb47f00bae9dc5a49237df7011debd17443ba836341d55e8fe830338ade7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Input/Output Functions and Statements"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to add and find product of two numbers\n",
+ "\n",
+ "#variable declaration\n",
+ "a = 5\n",
+ "b = 3\n",
+ "\n",
+ "# calculation of sum and product \n",
+ "\n",
+ "summ = a + b\n",
+ "product = a * b\n",
+ "\n",
+ "print a,b\n",
+ "print summ,product"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5 3\n",
+ "8 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert degree fahrenheit to celcius \n",
+ "# variable declaration\n",
+ "\n",
+ "f = 105.00\n",
+ "print \"Degree fahrenheit ? %d\" % f\n",
+ "# calculation of degree in celcius \n",
+ "\n",
+ "c = 5.0/9.0 * (f-32)\n",
+ "\n",
+ "# result \n",
+ "print\n",
+ "print \"Degree centigrade =%6.2f\" % c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Degree fahrenheit ? 105\n",
+ "\n",
+ "Degree centigrade = 40.56\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To find area of a triangle\n",
+ "# variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 4\n",
+ "c = 6\n",
+ "\n",
+ "\n",
+ "# calculation of area\n",
+ "s = float((a+b+c))/2\n",
+ "area = (s*(s-a)*(s-b)*(s-c)) ** 0.5\n",
+ "\n",
+ "# result\n",
+ "print \"Enter three sides : %d\" % a,b,c\n",
+ "print \n",
+ "print \"Area of triangle = %0.2f Sq.units\" % area"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three sides : 5 4 6\n",
+ "\n",
+ "Area of triangle = 9.92 Sq.units\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To print ASCII value of a given character \n",
+ "# Variable declaration\n",
+ "\n",
+ "ch = \"A\"\n",
+ "print \"Enter a character : \" , ch\n",
+ "\n",
+ "# Calculation of ASCII value of a character\n",
+ "\n",
+ "print \n",
+ "print \"ASCII value of \" + ch + \" is\" ,ord(ch)\n",
+ "print \"Press any key to stop. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character : A\n",
+ "\n",
+ "ASCII value of A is 65\n",
+ "Press any key to stop. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# To print electricity for consumers\n",
+ "# Variable declaration\n",
+ "\n",
+ "sno = \"TMR65358\"\n",
+ "pmr = 4305\n",
+ "cmr = 4410\n",
+ "\n",
+ "print \"Enter service number :\" ,sno\n",
+ "print \"Previous meter reading ?\",pmr\n",
+ "print \"Current meter reading ?\",cmr\n",
+ "\n",
+ "# Calculation of electricity charges\n",
+ "\n",
+ "units = cmr - pmr\n",
+ "amt = units * 1.50\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print\n",
+ "print \" Electricity Bill\"\n",
+ "print \" ----------------\"\n",
+ "print \"Service No :\",sno\n",
+ "print \"Unit Consumed :\",units\n",
+ "print \"Electricity Charges : Rs.%0.2f\" % amt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter service number : TMR65358\n",
+ "Previous meter reading ? 4305\n",
+ "Current meter reading ? 4410\n",
+ "\n",
+ " Electricity Bill\n",
+ " ----------------\n",
+ "Service No : TMR65358\n",
+ "Unit Consumed : 105\n",
+ "Electricity Charges : Rs.157.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to swap value of two variables\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 15\n",
+ "b = 250 \n",
+ "\n",
+ "print \"Enter value to A :\",a\n",
+ "print \"Enter value to B :\",b\n",
+ "\n",
+ "# Swapping\n",
+ "\n",
+ "temp = a\n",
+ "a = b\n",
+ "b = temp\n",
+ "\n",
+ "print \n",
+ "print \"Value of A =\",a\n",
+ "print \"Value of B =\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to A : 15\n",
+ "Enter value to B : 250\n",
+ "\n",
+ "Value of A = 250\n",
+ "Value of B = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter4.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter4.ipynb
new file mode 100755
index 00000000..368164f3
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter4.ipynb
@@ -0,0 +1,524 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c9e723d7feeae217ee8ddaf1b9cf8cfab2d696821fa911ff65107b9da6bec9f0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Control Statements in C "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of two numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 8\n",
+ "\n",
+ "print \"Enter two numbers : %d\" % a,b\n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "big = a\n",
+ "if (b>big):\n",
+ " big = b\n",
+ "\n",
+ "print \"Biggest number is \",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5 8\n",
+ "Biggest number is 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find biggest of three numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 5\n",
+ "b = 13\n",
+ "c = 8\n",
+ "\n",
+ "print \"Enter three numbers : %d\" % a,b,c\n",
+ "\n",
+ "# Calculate\n",
+ "\n",
+ "big = a\n",
+ "if (b>big):\n",
+ " big = b\n",
+ "if (c>big):\n",
+ " big = c\n",
+ "\n",
+ "print \"Biggest number is\",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers : 5 13 8\n",
+ "Biggest number is 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find biggest of three numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 18\n",
+ "b = -5\n",
+ "c = 13\n",
+ " \n",
+ "print \"Enter three numbers : %d\" % a,b,c\n",
+ "\n",
+ "# Calculation to find biggest number\n",
+ "\n",
+ "if (a>b):\n",
+ " if(a>c):\n",
+ " big = a\n",
+ " else:\n",
+ " big = c\n",
+ "else:\n",
+ " if(b>c):\n",
+ " big = b\n",
+ " else:\n",
+ " big = c\n",
+ "\n",
+ "print \"Biggest number is\",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three numbers : 18 -5 13\n",
+ "Biggest number is 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y \n",
+ "# Variable declration\n",
+ "\n",
+ "x = 0.42\n",
+ "n = 5\n",
+ "\n",
+ "print \"Enter value to x and n :\" , x,n \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "if (n==1):\n",
+ " y = 1 + x\n",
+ "elif (n==2):\n",
+ " y = 1 + x / n\n",
+ "elif (n==3):\n",
+ " y = 1 + (x ** n)\n",
+ "else:\n",
+ " y = 1 + n * x\n",
+ "\n",
+ "\n",
+ "print \"Value of y(x,n) = %0.2f\" % y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x and n : 0.42 5\n",
+ "Value of y(x,n) = 3.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.42\n",
+ "n = 5\n",
+ "\n",
+ "\n",
+ "print \"Enter value to x and n :\", x,n\n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# Switch case statements \n",
+ "if n == 1: # case 1\n",
+ " y = 1 + x\n",
+ "elif n == 2: # case 2\n",
+ " y = 1 + x / n\n",
+ "elif n == 3: # case 3\n",
+ " y = 1 + (x ** n)\n",
+ "else: # default\n",
+ " y = 1 + n * x\n",
+ "\n",
+ "print \"Value of y(x,n) = %0.2f\" % y "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x and n : 0.42 5\n",
+ "Value of y(x,n) = 3.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to caculate the commission for sales representatives\n",
+ "# Variable declaration\n",
+ "\n",
+ "sales = 4500\n",
+ "\n",
+ "print \"Sales amount ? :\" , sales\n",
+ "\n",
+ "# Calculation of commission\n",
+ "\n",
+ "if (sales <= 500):\n",
+ " comm = 0.05 * sales\n",
+ "elif (sales <= 2000):\n",
+ " comm = 35 + 0.10 * (sales - 500)\n",
+ "elif (sales <= 5000):\n",
+ " comm = 185 + 0.12 * (sales - 2000)\n",
+ "else:\n",
+ " comm = 0.125 * sales\n",
+ "\n",
+ "\n",
+ "print \"Commission Amount Rs.%0.2f\" % comm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sales amount ? : 4500\n",
+ "Commission Amount Rs.485.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find roots of a quadratic equation\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 1\n",
+ "b = 3\n",
+ "c = 2\n",
+ "\n",
+ "print \"Enter coefficients a, b, and c :\", a,b,c\n",
+ "\n",
+ "d = b * b - 4 * a * c\n",
+ "\n",
+ "# Calculation of roots\n",
+ "\n",
+ "if (d > 0):\n",
+ " x1 = (-b + (d ** 0.5)) / (2 * a)\n",
+ " x2 = (-b - (d ** 0.5)) / (2 * a)\n",
+ " print \"Roots are real and unequal \"\n",
+ " print x1,x2\n",
+ " \n",
+ "\n",
+ "elif(d == 0):\n",
+ " x = -b / (2 * a)\n",
+ " print \"Roots are real and equal\"\n",
+ " print \"%6.2f\" % x\n",
+ "\n",
+ "else:\n",
+ " print \"No Real roots, roots are complex\"\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter coefficients a, b, and c : 1 3 2\n",
+ "Roots are real and unequal \n",
+ "-1.0 -2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print grade\n",
+ "# Variable declaration\n",
+ "\n",
+ "avg_marks = 84\n",
+ "\n",
+ "print \"Average marks ?\",avg_marks\n",
+ "\n",
+ "# Calculation of grade\n",
+ "\n",
+ "if (avg_marks >= 80) and (avg_marks <= 100):\n",
+ " print \"Honours\"\n",
+ "elif (avg_marks >= 60) and (avg_marks <=79):\n",
+ " print \"First Division\"\n",
+ "elif (avg_marks >= 50) and (avg_marks <= 59):\n",
+ " print \"Second Division\"\n",
+ "else:\n",
+ " print \"Fail\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average marks ? 84\n",
+ "Honours\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate electirc charges for domestic consumers\n",
+ "# Variable declaration\n",
+ "\n",
+ "units = 348\n",
+ "\n",
+ "print \"Enter consumed units :\",units\n",
+ "\n",
+ "# Calculation of electric charges\n",
+ "\n",
+ "if (units <= 200):\n",
+ " amt = 0.5 * units\n",
+ "elif (units <= 400):\n",
+ " amt = 100 + 0.65 * (units - 200)\n",
+ "elif (units <= 600):\n",
+ " amt = 230 + 0.8 * (units - 400)\n",
+ "else:\n",
+ " amt = 425 + 1.25 * (units - 600)\n",
+ "print \n",
+ "print \"Amount to be paid Rs.%0.2f\" % amt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter consumed units : 348\n",
+ "\n",
+ "Amount to be paid Rs.196.20\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the grade of steel samples\n",
+ "# Variable declaration\n",
+ "\n",
+ "ts = 800\n",
+ "rh = 180\n",
+ "cc = 3\n",
+ "\n",
+ "print \"Enter tensile strength :\",ts\n",
+ "print \"Enter rockwell hardness :\",rh\n",
+ "print \"Enter carbon content :\",cc\n",
+ "\n",
+ "# Calculation of grade\n",
+ "\n",
+ "if (ts >= 700):\n",
+ " if (rh >= 200):\n",
+ " if (cc <= 6):\n",
+ " print \"Grade is A\"\n",
+ " else:\n",
+ " print \"Grade is B\" \n",
+ " elif (cc <= 6):\n",
+ " print \"Grade is C\"\n",
+ " else:\n",
+ " print \"Grade is E\" \n",
+ "elif (rh >= 200):\n",
+ " if (cc <= 6):\n",
+ " print \"Grade is D\"\n",
+ " else:\n",
+ " print \"Grade is E\"\n",
+ "elif (cc <= 6):\n",
+ " print \"Grade is E\"\n",
+ "else:\n",
+ " print \"Grade is F\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter tensile strength : 800\n",
+ "Enter rockwell hardness : 180\n",
+ "Enter carbon content : 3\n",
+ "Grade is C\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter5.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter5.ipynb
new file mode 100755
index 00000000..52adbd63
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter5.ipynb
@@ -0,0 +1,1103 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1c1423d8954dc10aa9bbb2818169dfeb793cb3bc9435852c4188cde598c54111"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Loop Control Structures in C"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print natural numbers from 1 to n\n",
+ "# Variable decalration\n",
+ "\n",
+ "n = 15\n",
+ "\n",
+ "print \"Enter value to n :\",n\n",
+ "\n",
+ "# Loop to print natural numbers\n",
+ "for r in range(15):\n",
+ " r = r + 1\n",
+ " print r,\n",
+ " \n",
+ " \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to n : 15\n",
+ "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the value of y and print a table for values of x\n",
+ "# Variable declaration\n",
+ "import math\n",
+ "x = 1.0\n",
+ "print \"------------------------\"\n",
+ "print \" x y \"\n",
+ "print \"------------------------\"\n",
+ "while x <= 3.2:\n",
+ " y = 1.36 * ((1 + x + x * x * x) ** 0.5) + ((x) ** (1.0/4)) + math.exp(x)\n",
+ " print \" %0.2f \" %x + \" %0.2f\" % y\n",
+ " x = x + 0.2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "------------------------\n",
+ " x y \n",
+ "------------------------\n",
+ " 1.00 6.07\n",
+ " 1.20 7.06\n",
+ " 1.40 8.23\n",
+ " 1.60 9.60\n",
+ " 1.80 11.20\n",
+ " 2.00 13.09\n",
+ " 2.20 15.30\n",
+ " 2.40 17.91\n",
+ " 2.60 20.99\n",
+ " 2.80 24.64\n",
+ " 3.00 28.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find factorial of given number\n",
+ "# Variable declaration\n",
+ "\n",
+ "k = 4\n",
+ "kfact = 1\n",
+ "\n",
+ "print \"Enter an integer :\",k\n",
+ "\n",
+ "# Loop to generate numbers from 1 to n\n",
+ "\n",
+ "for i in range(1,k + 1):\n",
+ " kfact = kfact*i\n",
+ "\n",
+ " \n",
+ "print \"4 factorial is\",kfact "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer : 4\n",
+ "4 factorial is 24\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print sum of the following series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "s = 0\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "# Calculation of sum\n",
+ "i = 1\n",
+ "j = 1\n",
+ "\n",
+ "for i in range(1,n+1):\n",
+ " term = 0\n",
+ " for j in range(i+1):\n",
+ " term = term + j\n",
+ " s = s + term\n",
+ "\n",
+ "\n",
+ "print \"Sum of the series S =\",s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 4\n",
+ "Sum of the series S = 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compute the values of z based on x and y\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = -1.5\n",
+ "y = 0\n",
+ "\n",
+ "# Loops to generate values of x and y to find z\n",
+ "\n",
+ "while x <= 1.5:\n",
+ " while y <= 3.0:\n",
+ " z = 3 * x * x + 2 * y * y * y - 25.5\n",
+ " print \"Value of y(\",x,\n",
+ " print \",\",y,\n",
+ " print \") =\",z\n",
+ " y = y + 1.0\n",
+ " x = x + 0.5\n",
+ " y = 0\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of y( -1.5 , 0 ) = -18.75\n",
+ "Value of y( -1.5 , 1.0 ) = -16.75\n",
+ "Value of y( -1.5 , 2.0 ) = -2.75\n",
+ "Value of y( -1.5 , 3.0 ) = 35.25\n",
+ "Value of y( -1.0 , 0 ) = -22.5\n",
+ "Value of y( -1.0 , 1.0 ) = -20.5\n",
+ "Value of y( -1.0 , 2.0 ) = -6.5\n",
+ "Value of y( -1.0 , 3.0 ) = 31.5\n",
+ "Value of y( -0.5 , 0 ) = -24.75\n",
+ "Value of y( -0.5 , 1.0 ) = -22.75\n",
+ "Value of y( -0.5 , 2.0 ) = -8.75\n",
+ "Value of y( -0.5 , 3.0 ) = 29.25\n",
+ "Value of y( 0.0 , 0 ) = -25.5\n",
+ "Value of y( 0.0 , 1.0 ) = -23.5\n",
+ "Value of y( 0.0 , 2.0 ) = -9.5\n",
+ "Value of y( 0.0 , 3.0 ) = 28.5\n",
+ "Value of y( 0.5 , 0 ) = -24.75\n",
+ "Value of y( 0.5 , 1.0 ) = -22.75\n",
+ "Value of y( 0.5 , 2.0 ) = -8.75\n",
+ "Value of y( 0.5 , 3.0 ) = 29.25\n",
+ "Value of y( 1.0 , 0 ) = -22.5\n",
+ "Value of y( 1.0 , 1.0 ) = -20.5\n",
+ "Value of y( 1.0 , 2.0 ) = -6.5\n",
+ "Value of y( 1.0 , 3.0 ) = 31.5\n",
+ "Value of y( 1.5 , 0 ) = -18.75\n",
+ "Value of y( 1.5 , 1.0 ) = -16.75\n",
+ "Value of y( 1.5 , 2.0 ) = -2.75\n",
+ "Value of y( 1.5 , 3.0 ) = 35.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find sum of odd integers between 1 to n\n",
+ "# Variable declararion\n",
+ "\n",
+ "n = 10\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "\n",
+ "s = 0\n",
+ "i = 1\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + i\n",
+ " i = i + 2\n",
+ "\n",
+ "print \"Sum of odd integers =\",s"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 10\n",
+ "Sum of odd integers = 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to generate first 50 positive integers that are divisible by 7\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 7\n",
+ "print \"Integers divisible by 7\"\n",
+ "\n",
+ "#loop to print numbers divisible by 7\n",
+ "for n in range(7,353,7):\n",
+ " print n,\n",
+ " \n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Integers divisible by 7\n",
+ "7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217 224 231 238 245 252 259 266 273 280 287 294 301 308 315 322 329 336 343 350\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print integers from 1 to n that are not divisible by 7\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 20\n",
+ "print \"Enter the end value N :\",n\n",
+ "\n",
+ "# Loop to print numbers that are not divisible by 7\n",
+ "\n",
+ "print \"Integers not divisible by 7\"\n",
+ "for k in range(1,n + 1,1):\n",
+ " r = k % 7\n",
+ " if (r != 0):\n",
+ " print k,"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the end value N : 20\n",
+ "Integers not divisible by 7\n",
+ "1 2 3 4 5 6 8 9 10 11 12 13 15 16 17 18 19 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-92 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print sum of digits of an integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 2466\n",
+ "\n",
+ "print \"Enter a positive integer :\",n\n",
+ "\n",
+ "q = n\n",
+ "s = 0\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "print \"Sum of digits =\",s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a positive integer : 2466\n",
+ "Sum of digits = 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to check whether a given number is an armstrong number or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 153\n",
+ "q = n\n",
+ "s = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "\n",
+ "# To check armstrong or not\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r * r * r\n",
+ " q = q / 10\n",
+ "\n",
+ "if (n == s):\n",
+ " print \"%d is an Armstrong number\" % n\n",
+ "else:\n",
+ " print \"%d is not an Armstrong number\" % n\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 153\n",
+ "153 is an Armstrong number\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse a given integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 18532\n",
+ "q = n\n",
+ "rn = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "# Reversing\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " rn = (rn * 10) + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "print \"18532 is reversed as\",rn "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 18532\n",
+ "18532 is reversed as 23581\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 , Page number: CP-95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to accept an integer and print digits using words\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4352\n",
+ "q = n\n",
+ "rn = 0\n",
+ "\n",
+ "print \"Enter an integer number :\",n\n",
+ "# converting to digits\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " rn = rn * 10 + r\n",
+ " q = q / 10\n",
+ "\n",
+ "\n",
+ "while (rn > 0):\n",
+ " r = rn % 10\n",
+ " if (r == 1):\n",
+ " s = \"One\"\n",
+ " print s,\n",
+ " elif (r == 2):\n",
+ " s = \"Two\"\n",
+ " print s,\n",
+ " elif (r == 3):\n",
+ " s = \"Three\"\n",
+ " print s,\n",
+ " elif (r == 4):\n",
+ " s = \"Four\"\n",
+ " print s,\n",
+ " elif (r == 5):\n",
+ " s = \"Five\"\n",
+ " print s,\n",
+ " elif (r == 6):\n",
+ " s = \"Six\"\n",
+ " print s,\n",
+ " elif (r == 7):\n",
+ " s = \"Seven\"\n",
+ " print s,\n",
+ " elif (r == 8):\n",
+ " s = \"Eight\"\n",
+ " print s,\n",
+ " elif (r == 9):\n",
+ " s = \"Nine\"\n",
+ " print s,\n",
+ " elif (r == 0):\n",
+ " s = \"Zero\"\n",
+ " print s,\n",
+ " rn = rn / 10\n",
+ "\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter an integer number : 4352\n",
+ "Four Three Five Two\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find whether a number is prime or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 17\n",
+ "\n",
+ "print \"Enter a positive integer :\",n\n",
+ "\n",
+ "# prime numbers are greater than 1\n",
+ "if n > 1:\n",
+ " # check for factors\n",
+ " for i in range(2,n):\n",
+ " if (n % i) == 0:\n",
+ " print(n,\"is not a prime number\")\n",
+ " print(i,\"times\",n//i,\"is\",num)\n",
+ " break\n",
+ " else:\n",
+ " print \"%d is a prime number\" % n\n",
+ "\n",
+ "else:\n",
+ " print \"%d is not a prime number\" % n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a positive integer : 17\n",
+ "17 is a prime number\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 , Page number: CP-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to generate Fibonacci series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 25\n",
+ "n1 = 0\n",
+ "n2 = 1\n",
+ "\n",
+ "print \"Enter the final term of the series :\",n\n",
+ "\n",
+ "print n1,n2,\n",
+ "\n",
+ "\n",
+ "newterm = n1 + n2\n",
+ "\n",
+ "# Loop to print fibonacci series\n",
+ "while (newterm <= n):\n",
+ " print newterm,\n",
+ " n1 = n2\n",
+ " n2 = newterm\n",
+ " newterm = n1 + n2\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the final term of the series : 25\n",
+ "0 1 1 2 3 5 8 13 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 , Page number: CP-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to solve the sine series\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.52\n",
+ "n = 10\n",
+ "s = 0\n",
+ "term = x\n",
+ "i = 1\n",
+ "\n",
+ "print \"Enter x in radians :\",x\n",
+ "print \"Enter end term power (n):\",n\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + term\n",
+ " term = (term * x * x *(-1)) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ "\n",
+ "print \"Sum of the series = %0.6f\" % s\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x in radians : 0.52\n",
+ "Enter end term power (n): 10\n",
+ "Sum of the series = 0.496880\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 , Page number: CP-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to solve the cosine series\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0.52\n",
+ "s = 0\n",
+ "term = 1\n",
+ "i = 0\n",
+ "n = 10\n",
+ "print \"Enter x in radians :\",x\n",
+ "\n",
+ "# Calculation of cosine series\n",
+ "\n",
+ "while (i <= n):\n",
+ " s = s + term\n",
+ " term = (term * x * x * (-1)) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ "\n",
+ "\n",
+ "print \"Sum of the series = %0.6f\" % s "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x in radians : 0.52\n",
+ "Sum of the series = 0.867819\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 , Page number: CP-102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Program to compute the value of pie\n",
+ "# Variable declaration\n",
+ "\n",
+ "s = 0.0\n",
+ "dr = 1\n",
+ "sign = 1\n",
+ "term = (1.0/dr) * sign\n",
+ "while (math.fabs(term) >= 1.0e-4):\n",
+ " s = s + term\n",
+ " dr = dr + 2\n",
+ " sign = sign * -1\n",
+ " term = (1.0 / dr) * sign\n",
+ "\n",
+ "pie = s * 4\n",
+ "\n",
+ "print \"Value of pie is %.6f\"%pie"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of pie is 3.141393\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 , Page number: CP-104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to evaluate the series\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 15\n",
+ "s = 0.00\n",
+ "\n",
+ "print \"Enter value to N :\",n\n",
+ "\n",
+ "# Evaluation of series\n",
+ "\n",
+ "for i in range(1,n + 1,1):\n",
+ " s = float(s) + float(1.0 / i)\n",
+ " \n",
+ "\n",
+ "print \"Sum of series = %0.4f\" % s \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to N : 15\n",
+ "Sum of series = 3.3182\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21 , Page number: CP-108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print multiplication table\n",
+ "# Variable declaration\n",
+ "\n",
+ "i = 1\n",
+ "j = 1\n",
+ "\n",
+ "# nested loop to print multiplication tables\n",
+ "\n",
+ "for i in range(1,6):\n",
+ " print \"Multiplication table for\",i\n",
+ " for j in range(1,11):\n",
+ " print \" \",j,\"x\" , i ,\" =\" , j*i\n",
+ " print \"Press any key to continue. . .\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication table for 1\n",
+ " 1 x 1 = 1\n",
+ " 2 x 1 = 2\n",
+ " 3 x 1 = 3\n",
+ " 4 x 1 = 4\n",
+ " 5 x 1 = 5\n",
+ " 6 x 1 = 6\n",
+ " 7 x 1 = 7\n",
+ " 8 x 1 = 8\n",
+ " 9 x 1 = 9\n",
+ " 10 x 1 = 10\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 2\n",
+ " 1 x 2 = 2\n",
+ " 2 x 2 = 4\n",
+ " 3 x 2 = 6\n",
+ " 4 x 2 = 8\n",
+ " 5 x 2 = 10\n",
+ " 6 x 2 = 12\n",
+ " 7 x 2 = 14\n",
+ " 8 x 2 = 16\n",
+ " 9 x 2 = 18\n",
+ " 10 x 2 = 20\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 3\n",
+ " 1 x 3 = 3\n",
+ " 2 x 3 = 6\n",
+ " 3 x 3 = 9\n",
+ " 4 x 3 = 12\n",
+ " 5 x 3 = 15\n",
+ " 6 x 3 = 18\n",
+ " 7 x 3 = 21\n",
+ " 8 x 3 = 24\n",
+ " 9 x 3 = 27\n",
+ " 10 x 3 = 30\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 4\n",
+ " 1 x 4 = 4\n",
+ " 2 x 4 = 8\n",
+ " 3 x 4 = 12\n",
+ " 4 x 4 = 16\n",
+ " 5 x 4 = 20\n",
+ " 6 x 4 = 24\n",
+ " 7 x 4 = 28\n",
+ " 8 x 4 = 32\n",
+ " 9 x 4 = 36\n",
+ " 10 x 4 = 40\n",
+ "Press any key to continue. . .\n",
+ "Multiplication table for 5\n",
+ " 1 x 5 = 5\n",
+ " 2 x 5 = 10\n",
+ " 3 x 5 = 15\n",
+ " 4 x 5 = 20\n",
+ " 5 x 5 = 25\n",
+ " 6 x 5 = 30\n",
+ " 7 x 5 = 35\n",
+ " 8 x 5 = 40\n",
+ " 9 x 5 = 45\n",
+ " 10 x 5 = 50\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 , Page number: CP-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Program to convert a binary number to a decimal number\n",
+ "# Variable declaration\n",
+ "\n",
+ "q = 1101\n",
+ "s = 0\n",
+ "k = 0\n",
+ "\n",
+ "print \"Enter the binary number :\",q\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " s = s + r * pow(2,k)\n",
+ " q = q / 10\n",
+ " k = k + 1\n",
+ "\n",
+ "\n",
+ "print \"The decimal number is :\",s\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the binary number : 1101\n",
+ "The decimal number is : 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23 , Page number: CP-110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert a decimal number to a binary number\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 28\n",
+ "q = n\n",
+ "rbi = 0\n",
+ "flag = 0\n",
+ "k = 0\n",
+ "\n",
+ "print \"Enter the decimal number :\",n\n",
+ "\n",
+ "\n",
+ "while (q > 0):\n",
+ " r = q % 2\n",
+ " if (r == 0) and (flag == 0):\n",
+ " k = k + 1\n",
+ " else:\n",
+ " flag = 1\n",
+ " rbi = rbi * 10 + r\n",
+ " q = q / 2\n",
+ " \n",
+ "q = rbi\n",
+ "bi = 0\n",
+ "while (q > 0):\n",
+ " r = q % 10\n",
+ " bi = bi * 10 + r\n",
+ " q = q / 10\n",
+ " i = 1\n",
+ " if (q == 0):\n",
+ " while (i <= k):\n",
+ " bi = bi * 10\n",
+ " i = i + 1\n",
+ "\n",
+ "\n",
+ "print \"The binary number is \",bi "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the decimal number : 28\n",
+ "The binary number is 11100\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter6.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter6.ipynb
new file mode 100755
index 00000000..14969fc1
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter6.ipynb
@@ -0,0 +1,794 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aced1a8512bbd1c950b44a0ce98d7bb529f62e617c89b1c73eec08ce49b27311"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Arrays and Subscribed Variables"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the sum of n numbers using array\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [36,45,52,44,62]\n",
+ "\n",
+ "print \"How many integers ?\",n\n",
+ "print \"Enter the 1th value :\",x[0]\n",
+ "print \"Enter the 2th value :\",x[1]\n",
+ "print \"Enter the 3th value :\",x[2]\n",
+ "print \"Enter the 4th value :\",x[3]\n",
+ "print \"Enter the 5th value :\",x[4]\n",
+ "\n",
+ "summ = 0 \n",
+ "\n",
+ "# Calculation of sum of numbers\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ " \n",
+ "\n",
+ "print \"Sum of all integers =\",summ\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many integers ? 5\n",
+ "Enter the 1th value : 36\n",
+ "Enter the 2th value : 45\n",
+ "Enter the 3th value : 52\n",
+ "Enter the 4th value : 44\n",
+ "Enter the 5th value : 62\n",
+ "Sum of all integers = 239\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of n numbers\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [25,-228,0,185,36]\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter all those numbers\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "big = x[0]\n",
+ "\n",
+ "\n",
+ "for i in x:\n",
+ " if (i > big):\n",
+ " big = i\n",
+ "\n",
+ "\n",
+ "print \"%d is the biggest number\" % big "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 5\n",
+ "Enter all those numbers\n",
+ "25 -228 0 185 36\n",
+ "185 is the biggest number\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: Cp-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the arithmetic mean, variance and standard deviation\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [3.1,3.8,3.6,4.0,3.4,3.8]\n",
+ "summ = 0\n",
+ "vsum = 0\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values in the list \"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "# Loop to find sum of all values\n",
+ "\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ "\n",
+ "xbar = summ / n\n",
+ "\n",
+ "# Loop to find the numerator vsum to find variance\n",
+ "\n",
+ "for i in x:\n",
+ " vsum = vsum + (i - xbar) * (i - xbar)\n",
+ "\n",
+ "\n",
+ "sigmax = vsum / n\n",
+ "sd = sigmax ** 0.5\n",
+ "\n",
+ "print \"Arithmetic mean = %0.3f\" % xbar\n",
+ "print \"Variance = %0.3f \" % sigmax\n",
+ "print \"Standard deviation = %0.3f\" % sd"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values in the list \n",
+ "3.1 3.8 3.6 4.0 3.4 3.8\n",
+ "Arithmetic mean = 3.617\n",
+ "Variance = 0.088 \n",
+ "Standard deviation = 0.297\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate mean of marks and print list of marks greater than mean\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "x = [58,63,68,54,48]\n",
+ "summ = 0 # Used summ instead of sum since it was a inbuilt function\n",
+ "i = 0\n",
+ "\n",
+ "print \"How many students ?\",n\n",
+ "print \"Enter all the marks \"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "for i in x:\n",
+ " summ = summ + i\n",
+ "\n",
+ "mean = float(summ) / n\n",
+ "\n",
+ "print \"Mean = %0.2f\" % mean\n",
+ "print \"Marks greater than mean :\",\n",
+ "\n",
+ "i = 0\n",
+ "for i in x:\n",
+ " if (i > mean):\n",
+ " print i,\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 5\n",
+ "Enter all the marks \n",
+ "58 63 68 54 48\n",
+ "Mean = 58.20\n",
+ "Marks greater than mean : 63 68\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find sum of all positive and negative numbers and to find out which is larger in magnitude\n",
+ "# Variable declaration\n",
+ "import math\n",
+ "\n",
+ "n = 6\n",
+ "x = [8,-12,-16,12,-9,5]\n",
+ "psum = 0\n",
+ "nsum = 0\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "\n",
+ "# Loop to calculate sum of positive and negative values\n",
+ "\n",
+ "for i in x:\n",
+ " if i > 0:\n",
+ " psum = psum + i\n",
+ " else:\n",
+ " nsum = nsum + i\n",
+ "\n",
+ "print \"Sum of positive values = %0.2f\" % psum\n",
+ "print \"Sum of negative values = %0.2f\" % nsum\n",
+ "\n",
+ "if (psum > abs(nsum)):\n",
+ " print \"Positive sum is greater in magnitude\"\n",
+ "else:\n",
+ " print \"Negative sum is greater in magnitude\"\n",
+ "\n",
+ "diff = abs(psum) - abs(nsum)\n",
+ "print \"Difference in magnitude = %0.2f\" % abs(diff)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values in the list\n",
+ "8 -12 -16 12 -9 5\n",
+ "Sum of positive values = 25.00\n",
+ "Sum of negative values = -37.00\n",
+ "Negative sum is greater in magnitude\n",
+ "Difference in magnitude = 12.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort n numbers in ascending order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [32,-10,20,5]\n",
+ "i = 0\n",
+ "\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter the list of 4 numbers\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print\n",
+ "\n",
+ "# Loop to arrange the numbers in ascending order\n",
+ "\n",
+ "while i < n-1:\n",
+ " j = i + 1\n",
+ " while j < n:\n",
+ " if x[i] > x[j]:\n",
+ " temp = x[i]\n",
+ " x[i] = x[j]\n",
+ " x[j] = temp\n",
+ " j = j + 1\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"Numbers in ascending order \"\n",
+ "\n",
+ "for a in x:\n",
+ " print a,\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 4\n",
+ "Enter the list of 4 numbers\n",
+ "32 -10 20 5\n",
+ "Numbers in ascending order \n",
+ "-10 5 20 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to search the key value and to print it if the search is successful\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [6,-2,8,3,13,10]\n",
+ "s = 3\n",
+ "\n",
+ "print \"How many values in the list ?\",n\n",
+ "print \"Enter all values in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "print \"Enter the key value to be searched :\",s\n",
+ "\n",
+ "# loop to search key value in the list\n",
+ "\n",
+ "for i in range(n):\n",
+ " if s == x[i]:\n",
+ " print s,\" is available in\",i+1,\"th location\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values in the list ? 6\n",
+ "Enter all values in the list\n",
+ "6 -2 8 3 13 10\n",
+ "Enter the key value to be searched : 3\n",
+ "3 is available in 4 th location\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort n numbers using bubble sort and find number of exchanges and passes\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [6,-2,8,3]\n",
+ "exchng = 0\n",
+ "\n",
+ "print \"How many numbers?\",n\n",
+ "print \"Enter all the numbers in the list\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "\n",
+ "print\n",
+ "\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(0,n-i-1):\n",
+ " if x[j] > x[j+1]:\n",
+ " temp = x[j]\n",
+ " x[j] = x[j+1]\n",
+ " x[j+1] = temp\n",
+ " exchng = exchng + 1\n",
+ " \n",
+ "\n",
+ "print \"The sorted list is\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "\n",
+ "print \n",
+ "\n",
+ "print \"Sorted in\",n-1,\"passes and\",exchng,\"exchanges\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers? 4\n",
+ "Enter all the numbers in the list\n",
+ "6 -2 8 3\n",
+ "The sorted list is\n",
+ "-2 3 6 8\n",
+ "Sorted in 3 passes and 3 exchanges\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to add two matrices\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter A matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "print \"Enter B matrix\"\n",
+ "for j in b:\n",
+ " print j\n",
+ "\n",
+ "# Loop to add two matrices\n",
+ "\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " c[i][j] = a[i][j] + b[i][j]\n",
+ "\n",
+ "\n",
+ "print \"Resultant matrix is\"\n",
+ "for ci in c:\n",
+ " print ci"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 2\n",
+ "Enter A matrix\n",
+ "[2, -2]\n",
+ "[0, 4]\n",
+ "Enter B matrix\n",
+ "[6, 2]\n",
+ "[4, -5]\n",
+ "Resultant matrix is\n",
+ "[8, 0]\n",
+ "[4, -1]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to multiply two matrices\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "l = 2\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"Enter order of A matrix :\",m,n\n",
+ "print \"Enter A matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "print \"Enter order of B matrix :\",m,n\n",
+ "print \"Enter B matrix\"\n",
+ "for j in b:\n",
+ " print j\n",
+ "\n",
+ "# Loop to multiply two matrices\n",
+ "# iterate through rowa of A\n",
+ "for i in range(m):\n",
+ " # iterate through columns of B\n",
+ " for j in range(l):\n",
+ " c[i][j] = 0\n",
+ " # iterate through rows of B\n",
+ " for k in range(n):\n",
+ " c[i][j] = c[i][j] + a[i][k] * b[k][j]\n",
+ "\n",
+ "\n",
+ "print \"Resultant matrix is\"\n",
+ "\n",
+ "for i in c:\n",
+ " print i\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of A matrix : 2 2\n",
+ "Enter A matrix\n",
+ "[2, -2]\n",
+ "[0, 4]\n",
+ "Enter order of B matrix : 2 2\n",
+ "Enter B matrix\n",
+ "[6, 2]\n",
+ "[4, -5]\n",
+ "Resultant matrix is\n",
+ "[4, 14]\n",
+ "[16, -20]\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find and print the transpose of the matrix\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 3\n",
+ "a = [[-3,6,0],\n",
+ " [3,2,8]]\n",
+ "at = [[0,0],\n",
+ " [0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"Enter order of the matrix :\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in a :\n",
+ " print i\n",
+ "\n",
+ "# Loop to calculate transpose\n",
+ "\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " at[j][i] = a[i][j]\n",
+ "\n",
+ "print \"The transposed matrix is \"\n",
+ "for i in at:\n",
+ " print i\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of the matrix : 2 3\n",
+ "Enter the matrix values\n",
+ "[-3, 6, 0]\n",
+ "[3, 2, 8]\n",
+ "The transposed matrix is \n",
+ "[-3, 3]\n",
+ "[6, 2]\n",
+ "[0, 8]\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 ,Page number: CP-139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to check whether a given matrix is symmetric or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 3\n",
+ "a = [[5,3,8],\n",
+ " [3,1,-7],\n",
+ " [8,-7,4]]\n",
+ "\n",
+ "print \"Enter order of the square matrix :\",m\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "# Loop to check whether symmetric or not\n",
+ "\n",
+ "for i in range(m):\n",
+ " flag = 0\n",
+ " for j in range(m):\n",
+ " flag = 0\n",
+ " if a[i][j] == a[j][i]:\n",
+ " continue\n",
+ " else:\n",
+ " flag = 1\n",
+ "\n",
+ "if flag == 0:\n",
+ " print \"The given matrix is a symmetric matrix\"\n",
+ "else:\n",
+ " print \"The given matrix is not a symmetric matrix\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of the square matrix : 3\n",
+ "[5, 3, 8]\n",
+ "[3, 1, -7]\n",
+ "[8, -7, 4]\n",
+ "The given matrix is a symmetric matrix\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the trace of a given square matrix\n",
+ "# Variable dclaration\n",
+ "\n",
+ "m = 3\n",
+ "a = [[3,2,-1],\n",
+ " [4,1,8],\n",
+ " [6,4,2]]\n",
+ "summ = 0\n",
+ "\n",
+ "print \"Enter order of the square matrix :\",m\n",
+ "print \"Enter the matrix\"\n",
+ "for i in a:\n",
+ " print i\n",
+ "\n",
+ "# Loop to find trace\n",
+ "for i in range(m):\n",
+ " summ = summ + a[i][i]\n",
+ "\n",
+ "print \"Trace of the matrix =\",summ "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter7.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter7.ipynb
new file mode 100755
index 00000000..0d79c17f
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter7.ipynb
@@ -0,0 +1,557 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:37ae6cc76fe6f4a8cc8dba62582a6a103f99da5c7579d1a782cb95241f542fd8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count the occurence of a particular in a string\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"MISSISSIPPI\"\n",
+ "ch = \"S\"\n",
+ "count = 0\n",
+ "\n",
+ "print \"Enter the string :\",st\n",
+ "print \"Which character to be counted ?\",ch\n",
+ "\n",
+ "# Loop to check occurrence of aa character\n",
+ "\n",
+ "l = len(st)\n",
+ "\n",
+ "for i in st:\n",
+ " if i == ch:\n",
+ " count = count + 1\n",
+ "\n",
+ "print \"The character \" + ch + \" occurs %d times\" % count "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string : MISSISSIPPI\n",
+ "Which character to be counted ? S\n",
+ "The character S occurs 4 times\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count the number of vowels in a sentence\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"This is a book\"\n",
+ "count = 0\n",
+ "\n",
+ "print \"Enter the sentence :\"\n",
+ "print st\n",
+ "\n",
+ "# Loop to count the vowels in the string\n",
+ "\n",
+ "for i in st:\n",
+ " if i == \"A\":\n",
+ " count = count + 1\n",
+ " elif i == \"E\":\n",
+ " count = count + 1\n",
+ " elif i == \"I\":\n",
+ " count = count + 1\n",
+ " elif i == \"O\":\n",
+ " count = count + 1\n",
+ " elif i == \"U\":\n",
+ " count = count + 1\n",
+ " elif i == \"a\":\n",
+ " count = count + 1\n",
+ " elif i == \"e\":\n",
+ " count = count + 1\n",
+ " elif i == \"i\":\n",
+ " count = count + 1\n",
+ " elif i == \"o\":\n",
+ " count = count + 1\n",
+ " elif i == \"u\":\n",
+ " count = count + 1\n",
+ "\n",
+ "print \"%d vowels are present in the sentence\" % count\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the sentence :\n",
+ "This is a book\n",
+ "5 vowels are present in the sentence\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to test whether a given string is a palindrome or not\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"HYDERABAD\"\n",
+ "rst = \"\"\n",
+ "i = 0\n",
+ "j = len(st) - 1\n",
+ "\n",
+ "print \"Enter the string :\",st\n",
+ "\n",
+ "# Palindrome or not \n",
+ "\n",
+ "rst = reversed(st)\n",
+ "\n",
+ "if list(st) == list(rst):\n",
+ " print \"%s is a palindrome string \" % st\n",
+ "else:\n",
+ " print \"%s is not a palindrome string \" % st"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string : HYDERABAD\n",
+ "HYDERABAD is not a palindrome string \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to conctenate two strings\n",
+ "# Variable declaration\n",
+ "\n",
+ "st1 = \"NEW \"\n",
+ "st2 = \"DELHI\"\n",
+ "\n",
+ "# input of two strings to be concatenated\n",
+ "\n",
+ "print \"Enter first string :\",st1\n",
+ "print \"Enter second string :\",st2\n",
+ "\n",
+ "# concatenation of two strings\n",
+ "st = st1 + st2\n",
+ "\n",
+ "print \"Resultant string is \",st "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first string : NEW \n",
+ "Enter second string : DELHI\n",
+ "Resultant string is NEW DELHI\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compare two strings\n",
+ "# Variable declaration\n",
+ "\n",
+ "st1 = \"ALPHA\"\n",
+ "st2 = \"BETA\"\n",
+ "\n",
+ "print \"Enter string 1:\",st1\n",
+ "print \"Enter string 2:\",st2\n",
+ "\n",
+ "# compare strings\n",
+ "\n",
+ "if (cmp(st1,st2)>0):\n",
+ " print \"%s \" + st1 + \"is alphabetically greater string\"\n",
+ "else:\n",
+ " print st2 + \" is alphabetically greater string\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string 1: ALPHA\n",
+ "Enter string 2: BETA\n",
+ "BETA is alphabetically greater string\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to sort an array of names in alphabetical order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "names = [\"DEEPAK\",\"SHERIN\",\"SONIKA\",\"ARUN\"]\n",
+ "\n",
+ "print \"How many names ?\",n\n",
+ "print \"Enter the 4 names one by one\"\n",
+ "for i in names:\n",
+ " print i\n",
+ "\n",
+ "# Loop to arrange names in alphabetical order\n",
+ "\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if cmp(names[i],names[j])>0:\n",
+ " \n",
+ " temp = names[i]\n",
+ " names[i] = names[j]\n",
+ " names[j] = temp\n",
+ "\n",
+ "print \"Names in alphabetical order\"\n",
+ "for i in names:\n",
+ " print i"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many names ? 4\n",
+ "Enter the 4 names one by one\n",
+ "DEEPAK\n",
+ "SHERIN\n",
+ "SONIKA\n",
+ "ARUN\n",
+ "Names in alphabetical order\n",
+ "ARUN\n",
+ "DEEPAK\n",
+ "SHERIN\n",
+ "SONIKA\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to convert a line from lower case to upper case\n",
+ "# Variable declaretion\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "st = ['l','o','g','i','c','a','l',' ','t','h','i','n','k','i','n','g',' ','i','s',' ','a',' ','m','u','s','t',' ','t','o',' ','l','e','a','r','n',' ','p','r','o','g','r','a','m','m','i','n','g']\n",
+ "\n",
+ "print \"Enter a sentence :\"\n",
+ "for i in st:\n",
+ " print i,\n",
+ "print \n",
+ "print \"The converted upper case string is\"\n",
+ "# loop to convert lower case alphabet to upper case text\n",
+ "for i in range(len(st)):\n",
+ " if st[i] >= 'a' and st[i] <= 'z':\n",
+ " st[i] = chr(ord(st[i])-32)\n",
+ "\n",
+ "\n",
+ " sys.stdout.write(st[i])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a sentence :\n",
+ "l o g i c a l t h i n k i n g i s a m u s t t o l e a r n p r o g r a m m i n g\n",
+ "The converted upper case string is\n",
+ "LOGICAL THINKING IS A MUST TO LEARN PROGRAMMING"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to read a text and to omit al occurrences of a particular word\n",
+ "# Variable declartion\n",
+ "\n",
+ "st = \"TO ACCESS THE NAME OF THE CITY IN THE LIST\"\n",
+ "i = 0\n",
+ "omit = \"THE\"\n",
+ "l = len(st)\n",
+ "j = 0\n",
+ "word = []\n",
+ "newst = \"\"\n",
+ "onesps = \"\"\n",
+ "print \"Enter a sentence :\"\n",
+ "print st\n",
+ "print \"Enter word to omit :\",omit\n",
+ "\n",
+ "# loop to omit the given word\n",
+ "\n",
+ "for i in range(l):\n",
+ " ch = i\n",
+ " if ch == ' ':\n",
+ " for j in word:\n",
+ " j = \" \" \n",
+ " if j == omit:\n",
+ " newst = j\n",
+ " newst = onesps\n",
+ " j = \" \"\n",
+ " j = 0\n",
+ " else:\n",
+ " j = ch\n",
+ " j = j + 1\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"After omiting the word \" + omit\n",
+ "print newst\n",
+ "print \"Press any key to continue\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a sentence :\n",
+ "TO ACCESS THE NAME OF THE CITY IN THE LIST\n",
+ "Enter word to omit : THE\n",
+ "After omiting the word THE\n",
+ "\n",
+ "Press any key to continue\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to calculate the amount to be paid for the telegram\n",
+ "# Variable declaration\n",
+ "\n",
+ "count = 0\n",
+ "st = \"Congratulations on your success in Examinations.\"\n",
+ "l = len(st)\n",
+ "\n",
+ "print \"Type the sentence for Telegram\"\n",
+ "print st\n",
+ "\n",
+ "# loop to count number of words\n",
+ "\n",
+ "for i in range(l):\n",
+ " if st[i] == '?':\n",
+ " count = count + 1\n",
+ "\n",
+ "if count <= 10:\n",
+ " amt = 5\n",
+ "else:\n",
+ " amt = 5 + (count - 10) * 1.25\n",
+ "\n",
+ "print \"Amount to be paid for telegram = Rs.%0.2f\" % amt "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Type the sentence for Telegram\n",
+ "Congratulations on your success in Examinations.\n",
+ "Amount to be paid for telegram = Rs.5.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to count number of lines,words and characters\n",
+ "# Variable declaration\n",
+ "\n",
+ "txt = \"What is a string? How do you initialize it? Explain with example.$\"\n",
+ "st = \"\"\n",
+ "i = 0\n",
+ "lns = 0\n",
+ "wds = 0\n",
+ "chs = 0\n",
+ "\n",
+ "print \"Enter the text, type $ at end.\"\n",
+ "print txt\n",
+ "\n",
+ "# loop to count lines,words and characters in text\n",
+ "\n",
+ "while txt[i] != '$':\n",
+ " # switch case statements\n",
+ " if txt[i] == ' ':\n",
+ " wds = wds + 1\n",
+ " chs = chs + 1\n",
+ " elif txt[i] == '.':\n",
+ " wds = wds + 1\n",
+ " lns = lns + 1\n",
+ " chs = chs + 1\n",
+ " elif txt[i] == '?':\n",
+ " lns = lns + 1\n",
+ " else: # default\n",
+ " chs = chs + 1\n",
+ "\n",
+ " i = i + 1\n",
+ "\n",
+ "print \"Number of char (incl. blanks) =\",chs\n",
+ "print \"Number of words =\",wds\n",
+ "print \"Number of lines =\",lns\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the text, type $ at end.\n",
+ "What is a string? How do you initialize it? Explain with example.$\n",
+ "Number of char (incl. blanks) = 63\n",
+ "Number of words = 12\n",
+ "Number of lines = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter8.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter8.ipynb
new file mode 100755
index 00000000..49edb490
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter8.ipynb
@@ -0,0 +1,1027 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0c7b2e51d9ff140f666ba709dd09beff8baf4fe046109218b6f3ac69ed4bb2fe"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to write a function to find factorial and use it to find nCr\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "r = 3\n",
+ "\n",
+ "print \"Enter value to n and r :\",n,r\n",
+ "\n",
+ "# function subprogram to find factorial\n",
+ "\n",
+ "def fact(k):\n",
+ " p = 1\n",
+ " for i in range(1,k+1):\n",
+ " p = p * i\n",
+ " return p\n",
+ "\n",
+ "\n",
+ "ncr = fact(n) / (fact(r) * fact(n-r))\n",
+ "\n",
+ "\n",
+ "print \"Value of nCr =\",ncr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to n and r : 5 3\n",
+ "Value of nCr = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the biggest of given three values using function and use it to find total marks of the student\n",
+ "# Variable declaration\n",
+ "\n",
+ "t1 = 62\n",
+ "t2 = 70\n",
+ "t3 = 58\n",
+ "a1 = 17\n",
+ "a2 = 21\n",
+ "a3 = 23\n",
+ "\n",
+ "print \"Enter three test scores :\",t1,t2,t3\n",
+ "print \"Enter three assignment scores :\",a1,a2,a3\n",
+ "\n",
+ "# function to find biggest of three values\n",
+ "\n",
+ "def big(a,b,c):\n",
+ " if a > b:\n",
+ " if a > c:\n",
+ " return a\n",
+ " else:\n",
+ " return c\n",
+ " elif b > c:\n",
+ " return b\n",
+ " else:\n",
+ " return c\n",
+ "\n",
+ "total = big(t1,t2,t3) + big(a1,a2,a3)\n",
+ "\n",
+ "print \"Total marks =\",total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three test scores : 62 70 58\n",
+ "Enter three assignment scores : 17 21 23\n",
+ "Total marks = 93\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to create a function to compute the cos(x) series upto 15 terms\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 0\n",
+ "\n",
+ "print \"----------------------------------\"\n",
+ "print \" x in degrees cos(x) \"\n",
+ "print \"----------------------------------\"\n",
+ "\n",
+ "# function for computing cosine function\n",
+ "\n",
+ "def cosine(x):\n",
+ " s = 0\n",
+ " i = 0\n",
+ " term = 1\n",
+ " x = x * (3.14) / 180\n",
+ " k = 1\n",
+ " # loop to find summation of 15 terms\n",
+ " while k <= 15:\n",
+ " s = s + term\n",
+ " term = term * x * x * (-1) / ((i + 1) * (i + 2))\n",
+ " i = i + 2\n",
+ " k = k + 1\n",
+ " return s\n",
+ "\n",
+ "\n",
+ "# calling function\n",
+ "\n",
+ "while x <= 180:\n",
+ " print \" %d \" % x,\" %0.2f \"%cosine(x)\n",
+ " x = x + 30\n",
+ "\n",
+ "print \"-----------------------------------\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "----------------------------------\n",
+ " x in degrees cos(x) \n",
+ "----------------------------------\n",
+ " 0 1.00 \n",
+ " 30 0.87 \n",
+ " 60 0.50 \n",
+ " 90 0.00 \n",
+ " 120 -0.50 \n",
+ " 150 -0.87 \n",
+ " 180 -1.00 \n",
+ "-----------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find GCD of two integers\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = 45\n",
+ "b = 27\n",
+ "c = 81\n",
+ "\n",
+ "print \"Enter three integers :\",a,b,c\n",
+ "\n",
+ "def gcd(x,y):\n",
+ " if x >= y:\n",
+ " nr = x\n",
+ " dr = y\n",
+ " else:\n",
+ " nr = y\n",
+ " dr = x\n",
+ " r = nr % dr\n",
+ " while r != 0:\n",
+ " nr = dr\n",
+ " dr = r\n",
+ " r = nr % dr\n",
+ "\n",
+ " return dr\n",
+ "\n",
+ "d1 = gcd(a,b)\n",
+ "d2 = gcd(a,c)\n",
+ "d3 = gcd(b,c)\n",
+ "\n",
+ "if d1 == d2:\n",
+ " if d1 == d3:\n",
+ " print \"Greatest common divisor is\",d1\n",
+ " else:\n",
+ " print \"Greatest common divisor is \",gcd(d1,d3)\n",
+ "else:\n",
+ " print \"Greatest common divisr is\",gcd(d1,d2)\n",
+ "\n",
+ "\n",
+ "print \"Press any key to continue. . .\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three integers : 45 27 81\n",
+ "Greatest common divisor is 9\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse the given integer\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 2846\n",
+ "\n",
+ "print \"Enter the integer :\",n\n",
+ "\n",
+ "# function to reverse an integer\n",
+ "\n",
+ "def reverse(n):\n",
+ " rn = 0\n",
+ " while n > 0:\n",
+ " r = n % 10\n",
+ " rn = rn * 10 + r\n",
+ " n = n /10\n",
+ " return rn\n",
+ "\n",
+ "\n",
+ "# call the function to print the reverse integer\n",
+ "\n",
+ "print n,\"is reversed as \",reverse(n)\n",
+ "print \"Press any key to continue. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the integer : 2846\n",
+ "2846 is reversed as 6482\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compare two strings S1 and S2 and return the result 0,1,-1\n",
+ "# Variable declaration\n",
+ "\n",
+ "s1 = \"MUMBAI\"\n",
+ "s2 = \"MYSORE\"\n",
+ "\n",
+ "print \"Enter the first string :\",s1\n",
+ "print \"Enter the second string :\",s2\n",
+ "\n",
+ "\n",
+ "# function to compare the strings\n",
+ "\n",
+ "def compare(s1,s2):\n",
+ " if cmp(s1,s2) == 0:\n",
+ " return 0\n",
+ " if cmp(s1,s2) > 0:\n",
+ " return 1\n",
+ " if cmp(s1,s2) < 0:\n",
+ " return -1\n",
+ "\n",
+ "# call the function to print the result\n",
+ "\n",
+ "print \"The result is \", compare(s1,s2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first string : MUMBAI\n",
+ "Enter the second string : MYSORE\n",
+ "The result is -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 , Page number: CP-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find the arithmetic mean of n values using a function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 6\n",
+ "x = [3.1,3.8,3.6,4.0,3.4,3.8]\n",
+ "\n",
+ "print \"How many values ?\",n\n",
+ "print \"Enter all values\"\n",
+ "for i in x:\n",
+ " print i,\n",
+ "print \n",
+ "# function to find arithmetic mean\n",
+ "\n",
+ "def amean(x,n):\n",
+ " s = 0\n",
+ " for i in range(n):\n",
+ " s = s + x[i]\n",
+ " return (s/n)\n",
+ "\n",
+ "# call function to print arithmetic mean\n",
+ "\n",
+ "print \"Arithmetic mean = %0.2f\" % amean(x,n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many values ? 6\n",
+ "Enter all values\n",
+ "3.1 3.8 3.6 4.0 3.4 3.8\n",
+ "Arithmetic mean = 3.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 , Page number: CP-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to read a matrix of order m x n and print the sum of all elements using functions\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 3\n",
+ "n = 2\n",
+ "a = [[2,3,4],\n",
+ " [2,0,1]]\n",
+ "\n",
+ "\n",
+ "print \"How many rows and columns :\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " print a[i][j],\n",
+ " print \n",
+ "\n",
+ "# function to add all elements in the matrix\n",
+ "def elem_sum(a,m,n):\n",
+ " i = 0\n",
+ " j = 0\n",
+ " s = 0\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " s = s + a[i][j]\n",
+ " j = j + 1\n",
+ " i = i + 1 \n",
+ " return s\n",
+ "\n",
+ "# call function to print the result\n",
+ "\n",
+ "print \"Sum of all elements in the matrix =\",\n",
+ "print elem_sum(a,m,n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns : 3 2\n",
+ "Enter the matrix values\n",
+ "2 3 4\n",
+ "2 0 1\n",
+ "Sum of all elements in the matrix = 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 , Page number: CP-183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to reverse a string\n",
+ "# Variable declaration\n",
+ "\n",
+ "st = \"NEW DELHI\"\n",
+ "print \"Enter a string :\",st\n",
+ "def reverse(st):\n",
+ " rst = \"\"\n",
+ " for i in range(0 ,len(st)):\n",
+ " rst += st[(len(st) -1) - i]\n",
+ " return rst\n",
+ "\n",
+ "print st,\"is reversed as \",\n",
+ "print reverse(st)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string : NEW DELHI\n",
+ "NEW DELHI is reversed as IHLED WEN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 , Page number: CP-184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to apply binary search to set of N numbers using a function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 10\n",
+ "x = [-3,8,13,19,21,25,26,29,35,42]\n",
+ "s = 19\n",
+ "\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter all numbers in the list\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "print \"Enter the number to be searched :\",s\n",
+ "\n",
+ "# function to search the number\n",
+ "\n",
+ "def bi_search(x,n,s):\n",
+ " flag = 0\n",
+ " start = 0\n",
+ " end = n\n",
+ " while start < end and flag ==0:\n",
+ " mid = (start + end) / 2\n",
+ " if x[mid] > s:\n",
+ " end = mid\n",
+ " elif x[mid] < s:\n",
+ " start = mid + 1\n",
+ " else:\n",
+ " flag = 1\n",
+ " return flag\n",
+ "\n",
+ "# calling the function\n",
+ "\n",
+ "if bi_search(x,n,s):\n",
+ " print \"The number\",s,\"is present in the list\"\n",
+ "else:\n",
+ " print \"The number\",s,\"is not present in list\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 10\n",
+ "Enter all numbers in the list\n",
+ "-3 8 13 19 21 25 26 29 35 42\n",
+ "Enter the number to be searched : 19\n",
+ "The number 19 is present in the list\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 , Page number: CP-187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to find factorial of a given number using recursive function\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 5\n",
+ "r = 3\n",
+ "\n",
+ "print \"Enter the values to n and r :\",n,r\n",
+ "\n",
+ "# recursive function to find factorial\n",
+ "\n",
+ "def fact(k):\n",
+ " if k ==1:\n",
+ " return 1\n",
+ " else:\n",
+ " return (k * fact(k-1))\n",
+ "\n",
+ "ncr = fact(n)/(fact(r) * fact(n-r))\n",
+ "print \"Value of nCr =\",ncr "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values to n and r : 5 3\n",
+ "Value of nCr = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 , Page number: CP-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to compute the value of x power n using a recursive function\n",
+ "# Variable declaration\n",
+ "\n",
+ "x = 4.20\n",
+ "n = 3\n",
+ "\n",
+ "print \"Enter value to x :\",x\n",
+ "print \"Enter its power :\",n\n",
+ "\n",
+ "# recursive function to find x rise to n\n",
+ "\n",
+ "def power(x,n):\n",
+ " if n == 1:\n",
+ " return x\n",
+ " else:\n",
+ " return (x * power(x,n-1))\n",
+ "\n",
+ "\n",
+ "print \"%0.2f\" %x,\"raise to \",n,\"is %0.2f\" % power(x,n) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value to x : 4.2\n",
+ "Enter its power : 3\n",
+ "4.20 raise to 3 is 74.09\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 , Page number: CP-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to display first n terms of the fibonacci series using recursive function\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 10\n",
+ "t1 = 0\n",
+ "t2 = 1\n",
+ "i = 0\n",
+ "count = 2\n",
+ "\n",
+ "# recursive function to print the terms in series\n",
+ "def fibo(t1,t2):\n",
+ " global count\n",
+ " if (count >= n):\n",
+ " return\n",
+ " else:\n",
+ " t3 = t1 + t2\n",
+ " print t3,\n",
+ " count = count + 1\n",
+ " t1 = t2\n",
+ " t2 = t3\n",
+ " return fibo(t1,t2)\n",
+ " \n",
+ "\n",
+ "\n",
+ "print \"How many terms to be printed ?\",n\n",
+ "print \"The first\",n,\"terms in Fibonacci series are\"\n",
+ "print t1,\n",
+ "print t2,\n",
+ "\n",
+ "fibo(t1,t2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many terms to be printed ? 10\n",
+ "The first 10 terms in Fibonacci series are\n",
+ "0 1 1 2 3 5 8 13 21 34\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 , Page number: CP-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to add two matrices of order m x n and to print the resultant values\n",
+ "# Variable declaration\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter A matrix value\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print \n",
+ "print \"Enter B matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print b[i][j],\n",
+ " print \n",
+ "\n",
+ "# function to add matrices\n",
+ "def matadd():\n",
+ " for i in range(m):\n",
+ " for j in range(n):\n",
+ " c[i][j] = a[i][j] + b[i][j]\n",
+ "\n",
+ "\n",
+ "\n",
+ "# call function\n",
+ "matadd()\n",
+ "print \"Resultant matrix is\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print c[i][j],\n",
+ " print \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 2\n",
+ "Enter A matrix value\n",
+ "2 -2\n",
+ "0 4\n",
+ "Enter B matrix values\n",
+ "6 2\n",
+ "4 -5\n",
+ "Resultant matrix is\n",
+ "8 0\n",
+ "4 -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 , Page number: CP-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to multiply A matrix of order of m x n with B matrix of order n x l and print the resultant matrix\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[2,-2],\n",
+ " [0,4]]\n",
+ "b = [[6,2,],\n",
+ " [4,-5]]\n",
+ "c = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "m = 2\n",
+ "n = 2\n",
+ "l = 2\n",
+ "\n",
+ "print \"Enter order of A matrix (m x n) :\",m,n\n",
+ "print \"Enter A matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print\n",
+ " \n",
+ "print \"Enter order of B matrix (n x l) :\",n,l\n",
+ "print \"Enter B matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print b[i][j],\n",
+ " print \n",
+ " \n",
+ "\n",
+ "# function to multiply matrices\n",
+ "\n",
+ "def matmul():\n",
+ " for i in range(m):\n",
+ " for j in range(l):\n",
+ " c[i][j] = 0\n",
+ " for k in range(n):\n",
+ " c[i][j] = c[i][j] + a[i][k] * b[k][j]\n",
+ " return c\n",
+ "\n",
+ "# call function\n",
+ "matmul()\n",
+ "print \"Resultant matix is\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print c[i][j],\n",
+ " print\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of A matrix (m x n) : 2 2\n",
+ "Enter A matrix values\n",
+ "2 -2\n",
+ "0 4\n",
+ "Enter order of B matrix (n x l) : 2 2\n",
+ "Enter B matrix values\n",
+ "6 2\n",
+ "4 -5\n",
+ "Resultant matix is\n",
+ "4 14\n",
+ "16 -20\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 , Page number: CP-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to transpose a matrix of order m x n\n",
+ "# Variable declaration\n",
+ "\n",
+ "a = [[-3,6,0],\n",
+ " [3,2,8]]\n",
+ "at = [[0,0],\n",
+ " [0,0],\n",
+ " [0,0]]\n",
+ "m = 2\n",
+ "n = 3\n",
+ "ch = \"y\"\n",
+ "\n",
+ "print \"How many rows and columns ?\",m,n\n",
+ "print \"Enter the matrix values\"\n",
+ "for i in range(m):\n",
+ " for j in range(n):\n",
+ " print a[i][j],\n",
+ " print \n",
+ " \n",
+ "\n",
+ "# function to transpose a matrix\n",
+ "\n",
+ "def transpose(a,at,m,n):\n",
+ " for i in range(m):\n",
+ " for j in range(n):\n",
+ " at[j][i] = a[i][j]\n",
+ " return at\n",
+ "\n",
+ "while ch == 'y' or ch == 'Y' :\n",
+ " # call function to transpose the matrix\n",
+ " transpose(a,at,m,n)\n",
+ " print \"Transpose of the matrix is\"\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " print at[i][j],\n",
+ " print\n",
+ " ch = \"N\"\n",
+ " print \"Press y to continue\"\n",
+ " print \" any other key to stop.\",ch"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows and columns ? 2 3\n",
+ "Enter the matrix values\n",
+ "-3 6 0\n",
+ "3 2 8\n",
+ "Transpose of the matrix is\n",
+ "-3 3\n",
+ "6 2\n",
+ "0 8\n",
+ "Press y to continue\n",
+ " any other key to stop. N\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 , Page number: CP-200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to create a function to sort the elements of an array in ascending order\n",
+ "# Variable declaration\n",
+ "\n",
+ "n = 4\n",
+ "x = [32,-10,20,5]\n",
+ "\n",
+ "print \"How many numbers ?\",n\n",
+ "print \"Enter the list of values\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print \n",
+ "\n",
+ "# function to sort the numbers\n",
+ "def sort(x,n):\n",
+ " for i in range(n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if x[i] > x[j]:\n",
+ " temp = x[i]\n",
+ " x[i] = x[j]\n",
+ " x[j] = temp\n",
+ " return x\n",
+ "\n",
+ "# call function to sort the numbers\n",
+ "sort(x,n)\n",
+ "print \"The sorted list is\"\n",
+ "for a in x:\n",
+ " print a,\n",
+ "print\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many numbers ? 4\n",
+ "Enter the list of values\n",
+ "32 -10 20 5\n",
+ "The sorted list is\n",
+ "-10 5 20 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/Chapter9.ipynb b/Computer_Programming_Theory_and_Practice_/Chapter9.ipynb
new file mode 100755
index 00000000..2113c5af
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/Chapter9.ipynb
@@ -0,0 +1,624 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:93c2825491a65ebd6dbc85e6208fc8a03cf21f92da06cf2457eda56a011645f1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 , Page number: CP-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to display student details\n",
+ "# class declaration instead of a structure\n",
+ "\n",
+ "class student:\n",
+ " rno = 0\n",
+ " sname = \"\"\n",
+ " tot = 0\n",
+ "\n",
+ "# class object variable\n",
+ "\n",
+ "x = student()\n",
+ "x.rno = 20147\n",
+ "x.sname = \"PRADEEP\"\n",
+ "x.tot = 64\n",
+ "\n",
+ "print \"Enter roll number, name and total marks\"\n",
+ "print x.rno,x.sname,x.tot\n",
+ "print \" Details entered are\"\n",
+ "print \"Roll No. :\",x.rno\n",
+ "print \"Student name :\",x.sname\n",
+ "print \"Total marks :\",x.tot\n",
+ "print \"Press any key to continue. . .\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter roll number, name and total marks\n",
+ "20147 PRADEEP 64\n",
+ " Details entered are\n",
+ "Roll No. : 20147\n",
+ "Student name : PRADEEP\n",
+ "Total marks : 64\n",
+ "Press any key to continue. . .\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 , Page number: CP-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to input student details and print the marks of a specified student as output\n",
+ "\n",
+ "# class declaration for structure\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,rno,sname,tot):\n",
+ " self.rno = rno\n",
+ " self.sname = sname\n",
+ " self.tot = tot\n",
+ " \n",
+ "# variable declaration\n",
+ "\n",
+ "ch = \"y\"\n",
+ "n = 3\n",
+ "\n",
+ "# details of n students\n",
+ "std = []\n",
+ "std.append(student(20201,\"ARUN\",78))\n",
+ "std.append(student(20208,\"DEEPAK\",69))\n",
+ "std.append(student(20223,\"SUSMITHA\",88))\n",
+ "\n",
+ "print \"How many students ?\",n\n",
+ "print \"Roll number ?\",std[0].rno\n",
+ "print \"Name ?\",std[0].sname\n",
+ "print \"Total marks ?\",std[0].tot\n",
+ "print \"Roll number ?\",std[1].rno\n",
+ "print \"Name ?\",std[1].sname\n",
+ "print \"Total marks ?\",std[1].tot\n",
+ "print \"Roll number ?\",std[2].rno\n",
+ "print \"Name ?\",std[2].sname\n",
+ "print \"Total marks ?\",std[2].tot\n",
+ "print \n",
+ "\n",
+ "\n",
+ "# To display marks of the student\n",
+ "while ch == \"y\" or ch == \"Y\":\n",
+ " temp = 20208\n",
+ " print \"Enter student roll number to display marks :\",temp\n",
+ " print \n",
+ " flag = 0\n",
+ " #loop to search and display details\n",
+ " for i in range(3):\n",
+ " if flag == 0:\n",
+ " if std[i].rno == temp:\n",
+ " print \"Marks obtained by \",std[i].rno,std[i].sname\n",
+ " print \"Total :\",std[i].tot\n",
+ " flag = 1\n",
+ " if flag == 0:\n",
+ " print temp,\" is not present in the list \"\n",
+ " \n",
+ " ch = \"n\" \n",
+ " print \"press y - to continue\"\n",
+ " print \" any other key to stop.\",ch\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 3\n",
+ "Roll number ? 20201\n",
+ "Name ? ARUN\n",
+ "Total marks ? 78\n",
+ "Roll number ? 20208\n",
+ "Name ? DEEPAK\n",
+ "Total marks ? 69\n",
+ "Roll number ? 20223\n",
+ "Name ? SUSMITHA\n",
+ "Total marks ? 88\n",
+ "\n",
+ "Enter student roll number to display marks : 20208\n",
+ "\n",
+ "Marks obtained by 20208 DEEPAK\n",
+ "Total : 69\n",
+ "press y - to continue\n",
+ " any other key to stop. n\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 , Page number: CP-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to declare a structure for student details and display list of students who obtained more than 75 marks\n",
+ "\n",
+ "# class for student structure\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,rno,sname,tot):\n",
+ " self.rno = rno\n",
+ " self.sname = sname\n",
+ " self.tot = tot\n",
+ "\n",
+ "std = []\n",
+ "std.append(student(30401,\"ANAND\",59))\n",
+ "std.append(student(30404,\"NIRMAL\",64))\n",
+ "std.append(student(30428,\"ISWARYA\",82))\n",
+ "std.append(student(30432,\"VIVEKA\",79))\n",
+ "\n",
+ "n = 4\n",
+ "print \"How many students ?\",n\n",
+ "print \"Roll Number ?\",std[0].rno\n",
+ "print \"Name ?\",std[0].sname\n",
+ "print \"Total marks ?\",std[0].tot\n",
+ "print \"Roll Number ?\",std[1].rno\n",
+ "print \"Name ?\",std[1].sname\n",
+ "print \"Total marks ?\",std[1].tot\n",
+ "print \"Roll Number ?\",std[2].rno\n",
+ "print \"Name ?\",std[2].sname\n",
+ "print \"Total marks ?\",std[2].tot\n",
+ "print \"Roll Number ?\",std[3].rno\n",
+ "print \"Name ?\",std[3].sname\n",
+ "print \"Total marks ?\",std[3].tot\n",
+ "print \n",
+ "\n",
+ "\n",
+ "print \"----------------------------------------------------\"\n",
+ "print \" Roll No. Name Total marks \"\n",
+ "print \"----------------------------------------------------\"\n",
+ "for i in range(n):\n",
+ " if std[i].tot >= 75:\n",
+ " print \" \",std[i].rno,\" \",std[i].sname,\" \",std[i].tot\n",
+ "\n",
+ "print \"----------------------------------------------------\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students ? 4\n",
+ "Roll Number ? 30401\n",
+ "Name ? ANAND\n",
+ "Total marks ? 59\n",
+ "Roll Number ? 30404\n",
+ "Name ? NIRMAL\n",
+ "Total marks ? 64\n",
+ "Roll Number ? 30428\n",
+ "Name ? ISWARYA\n",
+ "Total marks ? 82\n",
+ "Roll Number ? 30432\n",
+ "Name ? VIVEKA\n",
+ "Total marks ? 79\n",
+ "\n",
+ "----------------------------------------------------\n",
+ " Roll No. Name Total marks \n",
+ "----------------------------------------------------\n",
+ " 30428 ISWARYA 82\n",
+ " 30432 VIVEKA 79\n",
+ "----------------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 , Page number: CP-216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to store employee information and to compute employee's pay\n",
+ "\n",
+ "import math\n",
+ "# class declaration for employee\n",
+ "class employee:\n",
+ " def __init__(self,eno,ename,epay,jdate):\n",
+ " self.eno = eno\n",
+ " self.ename = ename\n",
+ " self.epay = epay\n",
+ " self.jdate = jdate\n",
+ "\n",
+ "employs = []\n",
+ "employs.append(employee(20101,\"ASHIKA\",1000,\"31/04/2001\"))\n",
+ "employs.append(employee(20182,\"ASHWIN\",6000,\"11/12/1995\"))\n",
+ "employs.append(employee(20204,\"PRAVEEN\",3000,\"18/06/1994\"))\n",
+ "\n",
+ "n = 3\n",
+ "\n",
+ "print \"Employee No. ?\",employs[0].eno\n",
+ "print \"Name ?\",employs[0].ename\n",
+ "print \"Existing date ?\",employs[0].epay\n",
+ "print \"Joinin date ?\",employs[0].jdate\n",
+ "print \n",
+ "print \"Press y- to continue any other key to stop. y\"\n",
+ "print \"Employee No. ?\",employs[1].eno\n",
+ "print \"Name ?\",employs[1].ename\n",
+ "print \"Existing date ?\",employs[1].epay\n",
+ "print \"Joinin date ?\",employs[1].jdate\n",
+ "print\n",
+ "print \"Press y- to continue any other key to stop. y\"\n",
+ "print \"Employee No. ?\",employs[2].eno\n",
+ "print \"Name ?\",employs[2].ename\n",
+ "print \"Existing date ?\",employs[2].epay\n",
+ "print \"Joinin date ?\",employs[2].jdate\n",
+ "print\n",
+ "print \"Press y- to continue any other key to stop. N\"\n",
+ "print\n",
+ "print n,\" records are entered\"\n",
+ "print \"Press any key to print the revised salary list\"\n",
+ "print \n",
+ "\n",
+ "\n",
+ "\n",
+ "def revise(temp):\n",
+ " if temp <= 2000:\n",
+ " temp = int(temp + math.ceil(temp * 0.15))\n",
+ " return temp\n",
+ " elif temp <= 5000:\n",
+ " temp = int(temp + temp * 0.10)\n",
+ " return temp\n",
+ " else:\n",
+ " return temp\n",
+ "\n",
+ " \n",
+ "# loop to increment salary\n",
+ "for i in range(n):\n",
+ " employs[i].epay = revise(employs[i].epay)\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n",
+ "# loop to print revised salary list\n",
+ "print \" Employees Revised Pay List \"\n",
+ "print \"---------------------------------------------------------\"\n",
+ "print \" S.No. Number Name Joining date Pay \"\n",
+ "print \"---------------------------------------------------------\"\n",
+ "\n",
+ "for i in range(n):\n",
+ " print \" \",i+1,\" \",employs[i].eno,\" \",employs[i].ename,\" \",employs[i].jdate,\" \",employs[i].epay\n",
+ "\n",
+ "print \"---------------------------------------------------------\" \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Employee No. ? 20101\n",
+ "Name ? ASHIKA\n",
+ "Existing date ? 1000\n",
+ "Joinin date ? 31/04/2001\n",
+ "\n",
+ "Press y- to continue any other key to stop. y\n",
+ "Employee No. ? 20182\n",
+ "Name ? ASHWIN\n",
+ "Existing date ? 6000\n",
+ "Joinin date ? 11/12/1995\n",
+ "\n",
+ "Press y- to continue any other key to stop. y\n",
+ "Employee No. ? 20204\n",
+ "Name ? PRAVEEN\n",
+ "Existing date ? 3000\n",
+ "Joinin date ? 18/06/1994\n",
+ "\n",
+ "Press y- to continue any other key to stop. N\n",
+ "\n",
+ "3 records are entered\n",
+ "Press any key to print the revised salary list\n",
+ "\n",
+ " Employees Revised Pay List \n",
+ "---------------------------------------------------------\n",
+ " S.No. Number Name Joining date Pay \n",
+ "---------------------------------------------------------\n",
+ " 1 20101 ASHIKA 31/04/2001 1150\n",
+ " 2 20182 ASHWIN 11/12/1995 6000\n",
+ " 3 20204 PRAVEEN 18/06/1994 3300\n",
+ "---------------------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 , Page number: CP-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to store cricket details and to display a team-wise list with batting average\n",
+ "\n",
+ "# class for cricket structure\n",
+ "\n",
+ "class cricket:\n",
+ " def __init__(self,pname,tname,bavg):\n",
+ " self.pname = pname\n",
+ " self.tname = tname\n",
+ " self.bavg = bavg\n",
+ "\n",
+ "n = 6\n",
+ "probable = []\n",
+ "probable.append(cricket(\"KUMBLE\",\"KARNATAKA\",22))\n",
+ "probable.append(cricket(\"KAMBLI\",\"MUMBAI\",39))\n",
+ "probable.append(cricket(\"SRIKANTH\",\"TAMILNADU\",52))\n",
+ "probable.append(cricket(\"SACHIM\",\"MUMBAI\",69))\n",
+ "probable.append(cricket(\"RAHUL\",\"KARNATAKA\",57))\n",
+ "probable.append(cricket(\"RAMESH\",\"TAMILNADU\",48))\n",
+ "\n",
+ "print \"How many players ?\",n\n",
+ "print\n",
+ "print \"Player name ?\",probable[0].pname\n",
+ "print \"Which team ?\",probable[0].tname\n",
+ "print \"Batting average ?\",probable[0].bavg\n",
+ "print \"Player name ?\",probable[1].pname\n",
+ "print \"Which team ?\",probable[1].tname\n",
+ "print \"Batting average ?\",probable[1].bavg\n",
+ "print \"Player name ?\",probable[2].pname\n",
+ "print \"Which team ?\",probable[2].tname\n",
+ "print \"Batting average ?\",probable[2].bavg\n",
+ "print \"Player name ?\",probable[3].pname\n",
+ "print \"Which team ?\",probable[3].tname\n",
+ "print \"Batting average ?\",probable[3].bavg\n",
+ "print \"Player name ?\",probable[4].pname\n",
+ "print \"Which team ?\",probable[4].tname\n",
+ "print \"Batting average ?\",probable[4].bavg\n",
+ "print \"Player name ?\",probable[5].pname\n",
+ "print \"Which team ?\",probable[5].tname\n",
+ "print \"Batting average ?\",probable[5].bavg\n",
+ "print\n",
+ "print \n",
+ "j = 0\n",
+ "teams = []\n",
+ "teams.append(probable[0].tname)\n",
+ "j = j + 1\n",
+ "for i in range(n):\n",
+ " flag = 0\n",
+ " for k in range(j):\n",
+ " if flag == 0:\n",
+ " if probable[i].tname == teams[k]:\n",
+ " flag = 1\n",
+ " if flag == 0 :\n",
+ " teams.append(probable[i].tname)\n",
+ " j = j + 1\n",
+ "\n",
+ "# loop to print team-wise list\n",
+ "\n",
+ "for k in range(3):\n",
+ " print \" \",teams[k]\n",
+ " print \"---------------------------------------------\"\n",
+ " for i in range(n):\n",
+ " if probable[i].tname == teams[k]:\n",
+ " print \" \",probable[i].pname,\" \",probable[i].bavg\n",
+ " print \"---------------------------------------------\" \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many players ? 6\n",
+ "\n",
+ "Player name ? KUMBLE\n",
+ "Which team ? KARNATAKA\n",
+ "Batting average ? 22\n",
+ "Player name ? KAMBLI\n",
+ "Which team ? MUMBAI\n",
+ "Batting average ? 39\n",
+ "Player name ? SRIKANTH\n",
+ "Which team ? TAMILNADU\n",
+ "Batting average ? 52\n",
+ "Player name ? SACHIM\n",
+ "Which team ? MUMBAI\n",
+ "Batting average ? 69\n",
+ "Player name ? RAHUL\n",
+ "Which team ? KARNATAKA\n",
+ "Batting average ? 57\n",
+ "Player name ? RAMESH\n",
+ "Which team ? TAMILNADU\n",
+ "Batting average ? 48\n",
+ "\n",
+ "\n",
+ " KARNATAKA\n",
+ "---------------------------------------------\n",
+ " KUMBLE 22\n",
+ " RAHUL 57\n",
+ "---------------------------------------------\n",
+ " MUMBAI\n",
+ "---------------------------------------------\n",
+ " KAMBLI 39\n",
+ " SACHIM 69\n",
+ "---------------------------------------------\n",
+ " TAMILNADU\n",
+ "---------------------------------------------\n",
+ " SRIKANTH 52\n",
+ " RAMESH 48\n",
+ "---------------------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 , Page number: CP-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to illustrate the use of union using integer,string and float\n",
+ "\n",
+ "class student:\n",
+ " def __init__(self,roll_no,sname,marks):\n",
+ " self.roll_no = roll_no\n",
+ " self.sname = sname\n",
+ " self.marks = marks\n",
+ "\n",
+ "std = []\n",
+ "std.append(student(0,\"AJITH\",0))\n",
+ "std.append(student(0,\"RAJU\",0))\n",
+ "std.append(student(0,\"VIGNESH\",0))\n",
+ "std.append(student(0,\"DIVYA\",0))\n",
+ "\n",
+ "ch = 2\n",
+ "print \"-----------------------------\"\n",
+ "print \" Main menu \"\n",
+ "print \"-----------------------------\"\n",
+ "print \"Press 1 to enter roll numbers\"\n",
+ "print \" 2 to enter names \"\n",
+ "print \" 3 to enter marks \"\n",
+ "print \" 4 to stop \"\n",
+ "print \n",
+ "print \"Enter your choice :\",ch\n",
+ "\n",
+ "n = 4\n",
+ "print \"How many students?\",n\n",
+ "for i in range(n):\n",
+ " print \" Student name ? \",std[i].sname\n",
+ "\n",
+ "print\n",
+ "print \n",
+ "# display required list\n",
+ "# switch case\n",
+ "if ch == 1: #case 1\n",
+ " print \"------------------------------\"\n",
+ " print \" Students roll number list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print std[i].roll_no\n",
+ " print \"-------------------------------\"\n",
+ "elif ch == 2: # case 2\n",
+ " print \"------------------------------\"\n",
+ " print \" Students name list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print std[i].sname\n",
+ " print \"-------------------------------\"\n",
+ "elif ch == 3: # case 3\n",
+ " print \"------------------------------\"\n",
+ " print \" Students mark list \"\n",
+ " print \"------------------------------\"\n",
+ " for i in range(n):\n",
+ " print \"Student marks\",std[i].roll_no\n",
+ " print \"-------------------------------\"\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-----------------------------\n",
+ " Main menu \n",
+ "-----------------------------\n",
+ "Press 1 to enter roll numbers\n",
+ " 2 to enter names \n",
+ " 3 to enter marks \n",
+ " 4 to stop \n",
+ "\n",
+ "Enter your choice : 2\n",
+ "How many students? 4\n",
+ " Student name ? AJITH\n",
+ " Student name ? RAJU\n",
+ " Student name ? VIGNESH\n",
+ " Student name ? DIVYA\n",
+ "\n",
+ "\n",
+ "------------------------------\n",
+ " Students name list \n",
+ "------------------------------\n",
+ "AJITH\n",
+ "RAJU\n",
+ "VIGNESH\n",
+ "DIVYA\n",
+ "-------------------------------\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Computer_Programming_Theory_and_Practice_/screenshots/chapter11.png b/Computer_Programming_Theory_and_Practice_/screenshots/chapter11.png
new file mode 100755
index 00000000..c5895710
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/screenshots/chapter11.png
Binary files differ
diff --git a/Computer_Programming_Theory_and_Practice_/screenshots/chapter2.png b/Computer_Programming_Theory_and_Practice_/screenshots/chapter2.png
new file mode 100755
index 00000000..05fde2b5
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/screenshots/chapter2.png
Binary files differ
diff --git a/Computer_Programming_Theory_and_Practice_/screenshots/chapter3.png b/Computer_Programming_Theory_and_Practice_/screenshots/chapter3.png
new file mode 100755
index 00000000..685e290b
--- /dev/null
+++ b/Computer_Programming_Theory_and_Practice_/screenshots/chapter3.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/README.txt b/DC_Machines_and_Synchronous_Machines/README.txt
new file mode 100755
index 00000000..9c84b56e
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Hiren Shah
+Course: mca
+College/Institute/Organization: Financial Technology
+Department/Designation: Developer
+Book Title: DC Machines and Synchronous Machines
+Author: U. A. Bakshi and M. V. Bakshi
+Publisher: Technical Publications, Pune
+Year of publication: 2008
+Isbn: 9788184314830
+Edition: 1 \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch1.ipynb b/DC_Machines_and_Synchronous_Machines/ch1.ipynb
new file mode 100755
index 00000000..04ab6c30
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch1.ipynb
@@ -0,0 +1,1633 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:28530af987ec737018da049988fa2fb2a82d79acc8dd496873e17355c1e77828"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : D.C. Generators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 page no : 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "p = 4.\n",
+ "Z = 440.\n",
+ "theta = 0.07 # Wb\n",
+ "N = 900. # rpm\n",
+ "\n",
+ "# calculations and results\n",
+ "E = theta*N*Z/60.\n",
+ "print \"For lap wound : E = %.f V\"%E\n",
+ "\n",
+ "E = theta*N*Z*4/120.\n",
+ "print \"For wave wound : E = %.f V\"%E\n",
+ "\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For lap wound : E = 462 V\n",
+ "For wave wound : E = 924 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 1.2 page no : 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "phi = 21.*10**-3 \t\t\t#flux produced by each pole in webers\n",
+ "N = 1120. \t\t\t#Speed of armature in r.p.m\n",
+ "Coils = 42.\n",
+ "turns_per_coil = 8.\n",
+ "Turns = Coils * turns_per_coil\n",
+ "Z = 2*Turns \t\t\t#Number of armature conductors\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "A1 = Pole \t\t\t#no of parallel paths for lap winding\n",
+ "E1 = phi*N*Z*Pole/(60*A1)\n",
+ "print 'i) e.m.f generated is %.3f V'%(E1)\n",
+ "\n",
+ "#Part(ii)\n",
+ "A2 = 2 \t\t\t#wave winding\n",
+ "E2 = E1 \t\t\t#as mentioned in the question\n",
+ "N2 = E2/(phi*Z*Pole/(60*A2)) \t\t\t#E = phi*N*Z*Pole/(60*A)\n",
+ "print 'ii) For wave-wound armature,above calculated e.m.f is generated at %.0f r.p.m'%(N2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) e.m.f generated is 263.424 V\n",
+ "ii) For wave-wound armature,above calculated e.m.f is generated at 560 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 page no: 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "coils = 12.\n",
+ "commutator_segments = coils\n",
+ "coil_sides = coils*2\n",
+ "Z = coil_sides \t\t\t#No of conductors\n",
+ "pole_pitch = Z/Pole\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for Simplex lap winding\n",
+ "y_f = pole_pitch-1\n",
+ "y_b = pole_pitch+1\n",
+ "\n",
+ "y_c = 1 \t\t\t#Note that it's positive and it's progressive type of Simplex lap winding\n",
+ "\n",
+ "\n",
+ "print 'WINDING TABLE: 1<- 8-> 3<- 10-> 5<- 12-> 7<- 14-> 9<- 16-> 11<- 18->13<- 20-> 15<- 22-> 17<- 24->19<- 2-> 21<- 4-> 23<- 6-> 1 '\n",
+ "print 'Note that <- indicates back connection with y_back = %.0f and -> indicates front connection with y_front = %.0f'%(y_b,y_f)\n",
+ "print 'Another form of winding table:'\n",
+ "print ' BACK CONNECTIONS FRONT CONNECTIONS'\n",
+ "\n",
+ "print ' 1 to 1+7 = 8 -> 8 to 8-5 = 3'\n",
+ "print ' 3 to 3+7 = 10 -> 10 to 10-5 = 5'\n",
+ "print ' 5 to 5+7 = 12 -> 12 to 12-5 = 7'\n",
+ "print ' 7 to 7+7 = 14 -> 14 to 14-5 = 9'\n",
+ "print ' 9 to 9+7 = 16 -> 16 to 16-5 = 11'\n",
+ "print ' 11 to 11+7 = 18 -> 18 to 18-5 = 13'\n",
+ "print ' 13 to 13+7 = 20 -> 20 to 20-5 = 15'\n",
+ "print ' 15 to 15+7 = 22 -> 22 to 22-5 = 17'\n",
+ "print ' 17 to 17+7 = 24 -> 24 to 24-5 = 19'\n",
+ "print ' 19 to 19+7 = 26 = 26-24 = 2 -> 2 to 26-5 = 21'\n",
+ "print ' 21 to 21+7 = 28 = 28-24 = 4 -> 4 to 28-5 = 23'\n",
+ "print ' 23 to 23+7 = 30 = 30-24 = 6 -> 6 to 30-5 = 25 = 25-24 = 1'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "WINDING TABLE: 1<- 8-> 3<- 10-> 5<- 12-> 7<- 14-> 9<- 16-> 11<- 18->13<- 20-> 15<- 22-> 17<- 24->19<- 2-> 21<- 4-> 23<- 6-> 1 \n",
+ "Note that <- indicates back connection with y_back = 7 and -> indicates front connection with y_front = 5\n",
+ "Another form of winding table:\n",
+ " BACK CONNECTIONS FRONT CONNECTIONS\n",
+ " 1 to 1+7 = 8 -> 8 to 8-5 = 3\n",
+ " 3 to 3+7 = 10 -> 10 to 10-5 = 5\n",
+ " 5 to 5+7 = 12 -> 12 to 12-5 = 7\n",
+ " 7 to 7+7 = 14 -> 14 to 14-5 = 9\n",
+ " 9 to 9+7 = 16 -> 16 to 16-5 = 11\n",
+ " 11 to 11+7 = 18 -> 18 to 18-5 = 13\n",
+ " 13 to 13+7 = 20 -> 20 to 20-5 = 15\n",
+ " 15 to 15+7 = 22 -> 22 to 22-5 = 17\n",
+ " 17 to 17+7 = 24 -> 24 to 24-5 = 19\n",
+ " 19 to 19+7 = 26 = 26-24 = 2 -> 2 to 26-5 = 21\n",
+ " 21 to 21+7 = 28 = 28-24 = 4 -> 4 to 28-5 = 23\n",
+ " 23 to 23+7 = 30 = 30-24 = 6 -> 6 to 30-5 = 25 = 25-24 = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 page no : 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "Z = 18. \t\t\t#no of armature conductors\n",
+ "Y_A = (Z+2)/Pole \t\t\t#For progressive type wave winding,positive sign is used\n",
+ "Y_C = Y_A \t\t\t#For wave winding\n",
+ "\n",
+ "# Calculations\n",
+ "#Since Y_A = (y_b+y_f)/2, we let y_b = Y_f\n",
+ "y_b = Y_A/2 \t\t\t#say\n",
+ "y_f = y_b\n",
+ "\n",
+ "coils = Z/2\n",
+ "slots = coils\n",
+ "commutator_segments = coils\n",
+ "\n",
+ "print commutator_segments\n",
+ "print 'WINDING TABLE: 1<- 6-> 11<- 16-> 3<- 8->13<- 18-> 5<- 10-> 15<- 2-> 7<- 12-> 17<- 4-> 9<- 14->1 '\n",
+ "\n",
+ "print 'Another form of winding table:'\n",
+ "\n",
+ "print ' BACK CONNECTIONS FRONT CONNECTIONS'\n",
+ "\n",
+ "print ' 1 to 1+5 = 6 -> 6 to 6+5 = 11'\n",
+ "print ' 11 to 11+5 = 16 -> 16 to 16+5 = 21 -18 = 3'\n",
+ "print ' 3 to 3+5 = 8 -> 8 to 8+5 = 13'\n",
+ "print ' 13 to 13+5 = 18 -> 18 to 18+5 = 23 -18 = 5'\n",
+ "print ' 5 to 5+5 = 10 -> 10 to 10+5 = 15'\n",
+ "print ' 15 to 15+5 = 20 -18 = 2 -> 2 to 2+5 = 7'\n",
+ "print ' 7 to 7+5 = 12 -> 12 to 12+5 = 17'\n",
+ "print ' 17 to 17+5 = 22 -18 = 4 -> 4 to 4+5 = 9'\n",
+ "print ' 9 to 9+5 = 14 -> 14 to 14+5 = 19 -18 = 1'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9.0\n",
+ "WINDING TABLE: 1<- 6-> 11<- 16-> 3<- 8->13<- 18-> 5<- 10-> 15<- 2-> 7<- 12-> 17<- 4-> 9<- 14->1 \n",
+ "Another form of winding table:\n",
+ " BACK CONNECTIONS FRONT CONNECTIONS\n",
+ " 1 to 1+5 = 6 -> 6 to 6+5 = 11\n",
+ " 11 to 11+5 = 16 -> 16 to 16+5 = 21 -18 = 3\n",
+ " 3 to 3+5 = 8 -> 8 to 8+5 = 13\n",
+ " 13 to 13+5 = 18 -> 18 to 18+5 = 23 -18 = 5\n",
+ " 5 to 5+5 = 10 -> 10 to 10+5 = 15\n",
+ " 15 to 15+5 = 20 -18 = 2 -> 2 to 2+5 = 7\n",
+ " 7 to 7+5 = 12 -> 12 to 12+5 = 17\n",
+ " 17 to 17+5 = 22 -18 = 4 -> 4 to 4+5 = 9\n",
+ " 9 to 9+5 = 14 -> 14 to 14+5 = 19 -18 = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 page no : 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "Z = 480. \t\t\t#No of armature conductors\n",
+ "I_a = 144.\n",
+ "I = I_a/2 \t\t\t#For wave wound\n",
+ "theta_m = 10. \t\t\t#lead angle in DEGREES\n",
+ "\n",
+ "# Calculations\n",
+ "amp_turns_PP_d = Z*I*theta_m/360 \t\t\t#demagnetising Ampere-turns per pole\n",
+ "amp_turns_PP_c = Z*I*(1/(2*Pole)-theta_m/360) \t\t\t#cross-magnetising Ampere-turns per pole\n",
+ "\n",
+ "# Results\n",
+ "print 'De-magnetising ampere-turns per pole is %.0f'%(amp_turns_PP_d)\n",
+ "print 'Cross-magnetising ampere-turns per pole is %.0f'%(amp_turns_PP_c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "De-magnetising ampere-turns per pole is 960\n",
+ "Cross-magnetising ampere-turns per pole is 3360\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 page no : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 10.\n",
+ "Z = 800. \t\t\t#No of armature conductors\n",
+ "A = Pole \t\t\t#For lap wound\n",
+ "ratio = 0.7 \t\t\t#ratio of pole arc to pole pitch\n",
+ "\n",
+ "# Calculations\n",
+ "#amp_turns_PP = ratio*(I_a*Z)/(2*A*P)\n",
+ "turns_PP = ratio*(Z)/(2*A*Pole) \t\t\t#turns per pole\n",
+ "conductors_PP = turns_PP*2 \t\t\t#multiplied with 2 because 2 conductors form 1 turn\n",
+ "\n",
+ "# Results\n",
+ "print 'Compensating conductors per pole = %.f'%(conductors_PP)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compensating conductors per pole = 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 page no : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I_L = 150.\n",
+ "A = 4.\n",
+ "N = 1800. \t\t\t#in rpm\n",
+ "W_b = 1.2 \t\t\t#Brush width\n",
+ "W_m = 0 \t\t\t#width of mica insulation\n",
+ "L = 0.06*10**-3 \t\t\t#Inducmath.tance\n",
+ "segments = 64.\n",
+ "n_s = 1800./60 \t\t\t#in rps and not rpm\n",
+ "v = n_s*segments \t\t\t#peripheral speed in segments per second\n",
+ "\n",
+ "# Calculations and Results\n",
+ "T_c = (W_b-W_m)/v \t\t\t#Time of commutation\n",
+ "I = I_L/A \t\t\t#Current through a conductor\n",
+ "\n",
+ "#Part(i)\n",
+ "E_l = L*2*I/T_c\n",
+ "print 'i) Reactive voltage using Linear commutation is %.1f V'%(E_l)\n",
+ "\n",
+ "#Part(ii)\n",
+ "E_s = 1.11*L*2*I/T_c\n",
+ "print 'ii) Reactive voltage using Sinusoidal commutation is %.3f V'%(E_s)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Reactive voltage using Linear commutation is 7.2 V\n",
+ "ii) Reactive voltage using Sinusoidal commutation is 7.992 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8 page no : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V_t = 250. \t\t\t#Terminal voltage\n",
+ "R_sh = 100. \t\t\t#resistance of shunt field winding\n",
+ "I_sh = V_t/R_sh \t\t\t#shunt current\n",
+ "R_a = 0.22 \t\t\t#Armature resistance\n",
+ "\n",
+ "# Calculations\n",
+ "P = 5*10**3 \t\t\t#Load power\n",
+ "I_L = P/V_t \t\t\t#Load current\n",
+ "I_a = I_L+I_sh \t\t\t#armature current\n",
+ "\n",
+ "E = V_t + I_a*R_a \t\t\t#Induced emf\n",
+ "\n",
+ "# Results\n",
+ "print 'Induced e.m.f to supply the 5kW load is %.2f V'%(E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced e.m.f to supply the 5kW load is 254.95 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9 page no : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V_t = 250. \t\t\t#terminal voltage\n",
+ "P = 10.*10**3 \t\t\t#10kW power of generator\n",
+ "I_L = P/V_t \t\t\t#load current\n",
+ "I_a = I_L \t \t\t#As seperately excited\n",
+ "V_brush = 2.*2 \t\t\t# 2 * no of brushes\n",
+ "\n",
+ "E = 255. \t\t\t#on full load\n",
+ "\n",
+ "# Calculations\n",
+ "R_a = (E-V_t-V_brush)/I_a \t\t\t#Because E = V_t+ I_a*R_a + V_brush\n",
+ "\n",
+ "# Results\n",
+ "print 'Armature resistance of generator is %.3f ohm'%(R_a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature resistance of generator is 0.025 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10 page no : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R_a = 0.5\n",
+ "R_se = 0.03 \t\t\t#resimath.tance due to armature and series field winding\n",
+ "V_brush = 2. \t\t\t#brush drop\n",
+ "N = 1500. \t\t\t#generator speed in r.p.m\n",
+ "coils = 540.\n",
+ "turns_per_coil = 6.\n",
+ "\n",
+ "# Calculations\n",
+ "total_turns = coils*turns_per_coil\n",
+ "Z = 2*total_turns \t\t\t#Total conductors\n",
+ "I_a = 50 \t\t\t#armature current\n",
+ "\n",
+ "phi = 2*10**-3 \t\t\t#flux per pole in webers\n",
+ "E = phi*N*Z/(60) \t\t\t#A = P for lap-wound and they cancel out\n",
+ "V_t = E- (I_a*(R_a+R_se) + V_brush) \t\t\t#Because E = V_t+ I_a*R_a + V_brush\n",
+ "\n",
+ "# Results\n",
+ "print 'Terminal voltage is %.1f V'%(V_t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Terminal voltage is 295.5 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.11 page no : 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V_t = 225. \t\t\t#voltage across winding\n",
+ "R_a = 0.04 \t\t\t#armature resistance\n",
+ "R_sh = 90 \t\t\t#shunt resistance\n",
+ "R_se = 0.02\t\t\t#resistance of series field winding\n",
+ "I_L = 75. \t\t\t#load current\n",
+ "\n",
+ "# Calculations\n",
+ "#E -I_a*R_a = V_t+I_L*R_se \n",
+ "I_sh = (V_t+I_L*R_se)/R_sh \t\t\t#current through shunt field winding\n",
+ "\n",
+ "I_a = I_L + I_sh \t\t\t #armature current \n",
+ "E = V_t+ I_a*R_a+I_L*R_se \t\t\t#induced emf\n",
+ "\n",
+ "# Results\n",
+ "print 'Generated voltage is %.1f V'%(E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Generated voltage is 229.6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.12 page no : 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R_sh = 53. \t\t\t#resistance of field winding\n",
+ "V_t = 100. \t\t\t#terminal voltage \n",
+ "I_sh = V_t/R_sh \t\t\t#shunt current\n",
+ "I_f = I_sh\n",
+ "R_a = 0.1 \t\t\t#armature resistance\n",
+ "E_o = 143. \t\t\t# for I_sh = I_f = 1.8867 as obtained from graph\n",
+ "\n",
+ "# Calculations\n",
+ "I_a = (E_o-V_t)/R_a \t\t\t#Because E_o = V_t + I_a*R_a\n",
+ "I_L = I_a-I_sh \t\t\t#no load current\n",
+ "\n",
+ "# Results\n",
+ "print 'Note: Open circuit voltage was obtained as followsE_o = R_sh*I_f \t\t\t# y = mx+c form with c = 0 and R_sh = 53Hence%( a line with slope 53 through origin is made to intersect OCC at 150 V'\n",
+ "print 'Therefore, Open circuit voltage is 150 V'\n",
+ "print 'No load current is %.4f A '%(I_L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Note: Open circuit voltage was obtained as followsE_o = R_sh*I_f \t\t\t# y = mx+c form with c = 0 and R_sh = 53Hence%( a line with slope 53 through origin is made to intersect OCC at 150 V\n",
+ "Therefore, Open circuit voltage is 150 V\n",
+ "No load current is 428.1132 A \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.13 page no : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "#part(1)\n",
+ "E_o = 240. \t\t\t#on no-load\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Draw horizontal line from 240 V, to intersect OCC at A. corresponding I_f is 2.25 A\n",
+ "#The slope pf OA is corresponding R_sh\n",
+ "I_f = 2.25 \t\t\t#Corresponds to 240 V when intersected OCC\n",
+ "R_sh = E_o/I_f \t\t\t#shunt resistance\n",
+ "print 'i)Field resistance that gives 240 V on no-load is %.2f ohms '%(R_sh)\n",
+ "\n",
+ "#Part(ii)\n",
+ "N1 = 1000. \t\t\t#speed of shunt generator in rpm\n",
+ "I_f = 1.\n",
+ "\n",
+ "#Draw line OP math.tangential to OCC at N1 = 1000 r.p.m.\n",
+ "#Select I_f = 1A i.e. point R\n",
+ "#Draw vertical from R to intersect OP at S and OA at T....this gives RT = 105 and RS = 159\n",
+ "#At critcal speed generator just fails to build up\n",
+ "\n",
+ "RT = 105.\n",
+ "RS = 159.\n",
+ "N_C = N1*RT/RS \t\t\t#Critical speed\n",
+ "print 'ii)Critical speed is %.2f r.p.m '%(N_C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Field resistance that gives 240 V on no-load is 106.67 ohms \n",
+ "ii)Critical speed is 660.38 r.p.m \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.14 page no : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 4. \t\t\t#number of poles\n",
+ "A = 2. \t\t\t#because wave wound\n",
+ "Z = 792 \t\t\t#No of conductors\n",
+ "phi = 0.012 \t\t\t#flux per pole in weber\n",
+ "E_g = 240 \t\t\t#on no-load\n",
+ "\n",
+ "# Calculations\n",
+ "#running speed\n",
+ "N = E_g*60*A/(phi*P*Z) \t\t\t#becuase E_g = phi*P*N*Z/(60*A)\n",
+ "\n",
+ "# Results\n",
+ "print 'Required running speed is %.3f r.p.m'%(N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required running speed is 757.576 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.15 page no : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#open circuit condition\n",
+ "I_L = 0. \t\t\t#because of open circuit\n",
+ "V_t = 127. \t\t\t#terminal voltage\n",
+ "E_g = V_t \t\t\t#because I_L = 0\n",
+ "\n",
+ "# Calculations\n",
+ "#load condition\n",
+ "V_t = 120\n",
+ "R_sh = 15.\n",
+ "R_a = 0.02 \t\t\t#shunt and armature resistance\n",
+ "I_sh1 = V_t/R_sh \t\t\t#current through shunt winding in loaded condition\n",
+ "\n",
+ "I_L = (E_g-V_t)/R_a - I_sh1 \t\t\t#because I_a1 = I_L+I_sh1 and E_g = V_t + I_a1*R_a\n",
+ "\n",
+ "# Results\n",
+ "print 'Load current is %.0f A'%(I_L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load current is 342 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.16 page no : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V_t = 550. \t\t\t#Terminal voltage\n",
+ "R_lamp = 500. \t\t\t#Each lamp\n",
+ "I_lamp = V_t/R_lamp \t\t\t#each lamp ; V_t because all lamps are in parallel\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = 20*I_lamp \t\t\t#there exist 20 lamps\n",
+ "R_sh = 25.\n",
+ "R_a = 0.06\n",
+ "R_se = 0.04 \t\t\t#resistance of shunt winding,armature,series field\n",
+ "I_sh = V_t/R_sh \t\t\t#current throough shunt winding\n",
+ "I_a = I_L+I_sh\t\t\t#armature current\n",
+ "E = V_t + I_a*(R_a+R_se) \t\t\t#generated emf\n",
+ "\n",
+ "# Results\n",
+ "print 'Armature current and generated e.m.f is %.0f A and %.1f V respectively '%(I_a,E )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature current and generated e.m.f is 44 A and 554.4 V respectively \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.17 page no : 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 4. \t\t\t#number of poles\n",
+ "A = P \t\t\t# because of lap wound\n",
+ "N = 750. \t\t\t#speed in rpm\n",
+ "Z = 720. \t\t\t#number of armature conductors\n",
+ "phi = 30.*10**-3 \t\t\t#flux per pole in weber\n",
+ "R_sh = 200.\n",
+ "R_a = 0.4\n",
+ "R_L = 15. \t\t\t#resistance of shunt winding,armature,series field\n",
+ "E = phi*P*N*Z/(60*A) \t\t\t#generated emf\n",
+ "\n",
+ "# Calculations\n",
+ "#solving the following equations for V_t\n",
+ "#E = V_t + I_a*R_a\n",
+ "#E = V_t + (I_L + I_sh)*R_a\n",
+ "#E = V_t + ((V_t/R_L) + (V_t/R_sh))*R_a\n",
+ "V_t = E/(1+(R_a/R_L)+(R_a/R_sh))\n",
+ "\n",
+ "# Results\n",
+ "print 'Terminal voltage = %.4f V'%(V_t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Terminal voltage = 262.4757 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.18 page no : 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 6. \t\t\t#number of poles\n",
+ "A = 2. \t\t\t# because of wave wound\n",
+ "N_1 = 300. \t\t\t#speed of generator\n",
+ "Z = 600. \t\t\t#number of armature conductors\n",
+ "phi_1 = 0.06 \t\t\t#flux per pole in webers \n",
+ "\n",
+ "# Calculations and Results\n",
+ "E_g1 = phi_1*P*N_1*Z/(60*A) \t\t\t#generated emf\n",
+ "print 'Emf generated is %.0f V'%(E_g1)\n",
+ "\n",
+ "phi_2 = 0.055 \t\t\t#new flux per pole \n",
+ "E_g2 = 550.\t\t\t# new generated emf\n",
+ "N_2 = E_g2/(phi_2*P*Z/(60*A)) \t\t\t#new speed of generator\n",
+ "print 'Required speed is %.2f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Emf generated is 540 V\n",
+ "Required speed is 333.33 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.19 page no : 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "print 'Refer to code for explanation'\n",
+ "\n",
+ "# Variables\n",
+ "N_1 = 300.\n",
+ "N_2 = 375. \t\t\t#generator speeds\n",
+ "\n",
+ "#E_g2 = E_g1*(N_2/N_1)\n",
+ "#using this new table OCC at N_2 = 375 is made\n",
+ "#Draw a line with slope R_sh = 40 through origin which cuts this OCC at 248\n",
+ "#I_f_table = [0,2,3,4,5,6,7]\n",
+ "#Arm_vol_table = [9.375,115,165,202.5,228.75,237.5,265]\n",
+ "\n",
+ "#part(i)\n",
+ "#at V = 200 volts, I_f = 3.9 from the graph\n",
+ "V = 200.\n",
+ "I_f = 3.9\n",
+ "\n",
+ "# Calculations and Results\n",
+ "R_sh2 = V/I_f\n",
+ "R_sh = 40.\n",
+ "print 'Additional resistance required is %.3f ohms '%(R_sh2-R_sh)\n",
+ "\n",
+ "#part(ii)\n",
+ "V_t = 200.\n",
+ "I_f = V_t/R_sh\n",
+ "E_g = 228.75 \t\t\t#For this I_f from the table \n",
+ "R_a = 0.4\n",
+ "I_a = (E_g-V_t)/R_a \t\t\t#Because E_g = V_t + I_a*R_a\n",
+ "I_L = I_a-I_f\n",
+ "print 'Load current supplied by the generator is %.3f A'%(I_L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refer to code for explanation\n",
+ "Additional resistance required is 11.282 ohms \n",
+ "Load current supplied by the generator is 66.875 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.20 page no : 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I_a = 750. \t\t\t#full load current \n",
+ "Pole = 6. \n",
+ "A = Pole \t\t\t#lap winding\n",
+ "I = I_a/A \t\t\t#Full-load current per path\n",
+ "Z = 900. \t\t\t#no of conductors\n",
+ "lambda1 = 1.4 \t\t\t#leakage coefficient\n",
+ "theta_e = 21. \t\t\t#lead angle in degrees electrical\n",
+ "\n",
+ "# Calculations\n",
+ "theta_m = theta_e/(Pole/2) \t\t\t#lead angle in degrees mechanical\n",
+ "amp_turns_PP_d = Z*I*theta_m/360 \t\t\t#demagnetising ampere turns per pole\n",
+ "amp_turns_PP_c = Z*I*(1./(2*Pole)-theta_m/360) \t\t\t#cross-magnetising ampere turns per pole\n",
+ "balance_turns = amp_turns_PP_d*lambda1/I_a \t\t\t#series turns required to balance demagnetising component\n",
+ "\n",
+ "# Results\n",
+ "print 'i) De-magnetising ampere-turns per pole is %.1f'%(amp_turns_PP_d)\n",
+ "print 'ii) Cross-magnetising ampere-turns per pole is %.1f'%(amp_turns_PP_c)\n",
+ "print 'iii)Turns required to balance demagnetising component is %.0f'%(balance_turns)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) De-magnetising ampere-turns per pole is 2187.5\n",
+ "ii) Cross-magnetising ampere-turns per pole is 7187.5\n",
+ "iii)Turns required to balance demagnetising component is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.21 page no : 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pole = 4. \n",
+ "Z = 32. \t\t\t#no of conductors\n",
+ "coil_sides = Z \n",
+ "segments = 16.\n",
+ "pole_pitch = Z/Pole\n",
+ "slots = 16.\n",
+ "slots_per_pole = slots/Pole\n",
+ "\n",
+ "# Calculations\n",
+ "#for Simplex lap winding\n",
+ "y_b = pole_pitch+1 \t\t\t#back pitch\n",
+ "y_f = pole_pitch-1 \t\t\t#front pitch\n",
+ "\n",
+ "y_c = 1 \t\t\t#Commutator pitch; Note that it is positive and it is progressive type of Simplex lap winding\n",
+ "\n",
+ "# Results\n",
+ "print 'WINDING TABLE: 1<- 10-> 3<- 12-> 5<- 14-> 7<- 16-> 9<- 18-> 11<- 20->13<- 22-> 15<- 24-> 17<- 26->19<- 28-> 21<- 30-> 23<- 32->25<- 2-> 27<- 4-> 29<- 6->31<- 8->1 '\n",
+ "print 'Note that <- indicates back connection with y_back = %.0f and -> indicates front connection with y_front = %.0f'%(y_b,y_f)\n",
+ "\n",
+ "print 'Another form of winding table:'\n",
+ "\n",
+ "print ' BACK CONNECTIONS FRONT CONNECTIONS'\n",
+ "\n",
+ "print ' 1 to 1+9 = 10 -> 10 to 10-7 = 3'\n",
+ "print ' 3 to 3+9 = 12 -> 12 to 12-7 = 5'\n",
+ "print ' 5 to 5+9 = 14 -> 14 to 14-7 = 7'\n",
+ "print ' 7 to 7+9 = 16 -> 16 to 16-7 = 9'\n",
+ "print ' 9 to 9+9 = 18 -> 18 to 18-7 = 11'\n",
+ "print ' 11 to 11+9 = 20 -> 20 to 20-7 = 13'\n",
+ "print ' 13 to 13+9 = 22 -> 22 to 22-7 = 15'\n",
+ "print ' 15 to 15+9 = 24 -> 24 to 24-7 = 17'\n",
+ "print ' 17 to 17+9 = 26 -> 26 to 26-7 = 19'\n",
+ "print ' 19 to 19+9 = 28 -> 28 to 28-7 = 21'\n",
+ "print ' 21 to 21+9 = 30 -> 30 to 30-7 = 23'\n",
+ "print ' 23 to 23+9 = 32 -> 32 to 32-7 = 25'\n",
+ "print ' 25 to 25+9 = 34 = 34-32 = 2 -> 2 to 34-7 = 27'\n",
+ "print ' 27 to 27+9 = 36 = 36-32 = 4 -> 4 to 36-7 = 29'\n",
+ "print ' 29 to 29+9 = 38 = 38-32 = 6 -> 6 to 38-7 = 31'\n",
+ "print ' 31 to 31+9 = 40 = 40-32 = 4 -> 8 to 40-7 = 33 -32 = 1'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "WINDING TABLE: 1<- 10-> 3<- 12-> 5<- 14-> 7<- 16-> 9<- 18-> 11<- 20->13<- 22-> 15<- 24-> 17<- 26->19<- 28-> 21<- 30-> 23<- 32->25<- 2-> 27<- 4-> 29<- 6->31<- 8->1 \n",
+ "Note that <- indicates back connection with y_back = 9 and -> indicates front connection with y_front = 7\n",
+ "Another form of winding table:\n",
+ " BACK CONNECTIONS FRONT CONNECTIONS\n",
+ " 1 to 1+9 = 10 -> 10 to 10-7 = 3\n",
+ " 3 to 3+9 = 12 -> 12 to 12-7 = 5\n",
+ " 5 to 5+9 = 14 -> 14 to 14-7 = 7\n",
+ " 7 to 7+9 = 16 -> 16 to 16-7 = 9\n",
+ " 9 to 9+9 = 18 -> 18 to 18-7 = 11\n",
+ " 11 to 11+9 = 20 -> 20 to 20-7 = 13\n",
+ " 13 to 13+9 = 22 -> 22 to 22-7 = 15\n",
+ " 15 to 15+9 = 24 -> 24 to 24-7 = 17\n",
+ " 17 to 17+9 = 26 -> 26 to 26-7 = 19\n",
+ " 19 to 19+9 = 28 -> 28 to 28-7 = 21\n",
+ " 21 to 21+9 = 30 -> 30 to 30-7 = 23\n",
+ " 23 to 23+9 = 32 -> 32 to 32-7 = 25\n",
+ " 25 to 25+9 = 34 = 34-32 = 2 -> 2 to 34-7 = 27\n",
+ " 27 to 27+9 = 36 = 36-32 = 4 -> 4 to 36-7 = 29\n",
+ " 29 to 29+9 = 38 = 38-32 = 6 -> 6 to 38-7 = 31\n",
+ " 31 to 31+9 = 40 = 40-32 = 4 -> 8 to 40-7 = 33 -32 = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.22 page no : 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "Z = 496. \t\t\t#no of conductors\n",
+ "P = 4. \t\t\t#poles\n",
+ "slots = 31.\n",
+ "coilsides_per_slot = 4.\n",
+ "coilsides = slots*coilsides_per_slot\n",
+ "coils = coilsides/2\n",
+ "turns = Z/2\n",
+ "turns_per_coil = turns/coils\n",
+ "\n",
+ "# Calculations\n",
+ "y_c = array([(Z-2)/P, (Z+2)/P]) \t\t\t#commutator pitch\n",
+ "coils_active = (Z/(2*P))-1 \t\t\t# because y_c didnt turn out to be integer, 1 coil was made inactive/dummy\n",
+ "segments = coils_active \t\t\t#no of commutative segments\n",
+ "Y_A = [ (segments+1)/(P/2), (segments-1)/(P/2) ]\n",
+ "Y_A = Y_A[0] \t\t\t#Y_A(2) is discarded because of progressive wave winding\n",
+ "y_f = 29.\n",
+ "y_b = 33. \t\t\t#front and back pitch ; note that Y_A = (y_b+y_f)/2\n",
+ "resultant_pitch = 2*Y_A \t\t\t#because Y_A = (y_b+y_f)/2 and resultant pitch = y_b+ y_f\n",
+ "\n",
+ "# Results\n",
+ "print 'i) Total number of coils = %.0f'%(coils)\n",
+ "print 'ii) Turns per coils = %.0f'%(turns_per_coil)\n",
+ "print 'iii) Commutator pitch = %.0f'%((y_c[0]+y_c[1])/2)\n",
+ "print 'iv) Back pitch = %.0f front pitch = %.0f total pitch = %.0f'%(y_b,y_f,resultant_pitch)\n",
+ "print 'v) No of commutator segments = %.0f'%(segments)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Total number of coils = 62\n",
+ "ii) Turns per coils = 4\n",
+ "iii) Commutator pitch = 124\n",
+ "iv) Back pitch = 33 front pitch = 29 total pitch = 62\n",
+ "v) No of commutator segments = 61\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.23 page no : 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "slots = 13.\n",
+ "Pole = 4.\n",
+ "conductors_per_slot = 2.\n",
+ "Z = conductors_per_slot*slots\n",
+ "Y_A = (Z+2)/Pole \t\t\t#For progressive type wave winding\n",
+ "\n",
+ "# Calculations\n",
+ "#Since Y_A = (y_b+y_f)/2, we let y_b = y_f\n",
+ "y_b = Y_A\n",
+ "y_f = y_b \t\t \t#because y_b = Y_A/2\n",
+ "\n",
+ "segments = 13. \t\t\t#commutator segments\n",
+ "\n",
+ "# Results\n",
+ "print 'WINDING TABLE: 1<- 8-> 15<- 22-> 3<- 10->17<- 24-> 5<- 12-> 19<- 26-> 7<- 14-> 21<- 2-> 9<- 16->23<- 4-> 11<- 18-> 25<- 6->13<- 20-> 1 '\n",
+ "print 'Note that <- indicates back connection with y_back = %.0f and -> indicates front connection with y_front = %.0f'%(y_b,y_f)\n",
+ "\n",
+ "print 'Another form of winding table:'\n",
+ "\n",
+ "print ' BACK CONNECTIONS FRONT CONNECTIONS'\n",
+ "\n",
+ "print ' 1 to 1+7 = 8 -> 8 to 8+7 = 15'\n",
+ "print ' 15 to 15+7 = 22 -> 22 to 22+7 = 29 -26 = 3'\n",
+ "print ' 3 to 3+7 = 10 -> 10 to 10+7 = 17'\n",
+ "print ' 17 to 17+7 = 24 -> 24 to 24+7 = 31 -26 = 5'\n",
+ "print ' 5 to 5+7 = 14 -> 12 to 12+7 = 19'\n",
+ "print ' 19 to 19+7 = 26 -> 26 to 26+7 = 33 -26 = 7'\n",
+ "print ' 7 to 7+7 = 14 -> 14 to 14+7 = 21'\n",
+ "print ' 21 to 21+7 = 28 -26 = 2 -> 2 to 2+7 = 9'\n",
+ "print ' 9 to 9+7 = 16 -> 16 to 16+7 = 23 '\n",
+ "print ' 23 to 23+7 = 30 -26 = 4 -> 4 to 4+7 = 11'\n",
+ "print ' 11to 11+7 = 18 -> 18 to 18+7 = 25'\n",
+ "print ' 25 to 25+7 = 32 -26 = 6 -> 6 to 6+7 = 13'\n",
+ "print ' 13 to`13+7 = 20 -> 20 to 20+7 = 27 -26 = 1'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "WINDING TABLE: 1<- 8-> 15<- 22-> 3<- 10->17<- 24-> 5<- 12-> 19<- 26-> 7<- 14-> 21<- 2-> 9<- 16->23<- 4-> 11<- 18-> 25<- 6->13<- 20-> 1 \n",
+ "Note that <- indicates back connection with y_back = 7 and -> indicates front connection with y_front = 7\n",
+ "Another form of winding table:\n",
+ " BACK CONNECTIONS FRONT CONNECTIONS\n",
+ " 1 to 1+7 = 8 -> 8 to 8+7 = 15\n",
+ " 15 to 15+7 = 22 -> 22 to 22+7 = 29 -26 = 3\n",
+ " 3 to 3+7 = 10 -> 10 to 10+7 = 17\n",
+ " 17 to 17+7 = 24 -> 24 to 24+7 = 31 -26 = 5\n",
+ " 5 to 5+7 = 14 -> 12 to 12+7 = 19\n",
+ " 19 to 19+7 = 26 -> 26 to 26+7 = 33 -26 = 7\n",
+ " 7 to 7+7 = 14 -> 14 to 14+7 = 21\n",
+ " 21 to 21+7 = 28 -26 = 2 -> 2 to 2+7 = 9\n",
+ " 9 to 9+7 = 16 -> 16 to 16+7 = 23 \n",
+ " 23 to 23+7 = 30 -26 = 4 -> 4 to 4+7 = 11\n",
+ " 11to 11+7 = 18 -> 18 to 18+7 = 25\n",
+ " 25 to 25+7 = 32 -26 = 6 -> 6 to 6+7 = 13\n",
+ " 13 to`13+7 = 20 -> 20 to 20+7 = 27 -26 = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.24 page no : 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 4.\n",
+ "I_L = 150.\n",
+ "N = 1500. \t\t\t#commutator speed in rpm\n",
+ "n_s = N/60. \t\t\t#commutator speed in r.p.s\n",
+ "W_b = 1.2 \t\t\t#Brush pitch\n",
+ "W_m = 0\t\t\t#Pitch of mica insulation\n",
+ "L = 0.05*10**-3 \t\t\t#inducmath.tance of armature coils in henry\n",
+ "A = P \t\t\t#A = P for lap wound\n",
+ "segments = 64.\n",
+ "\n",
+ "# Calculations\n",
+ "v = n_s*segments \t\t\t#peripheral speed in segments per second\n",
+ "T_c = (W_b-W_m)/v \t\t\t#Time of commutation\n",
+ "I = I_L/A \t\t\t#current through each conductor\n",
+ "E = L*2*I/T_c \t\t\t#Linear commutation\n",
+ "E2 = 1.11*L*2*I/T_c \t\t\t#Sinusoidal commutation\n",
+ "\n",
+ "# Results\n",
+ "print 'Reactive voltage linear commutation) is %.0f V'%(E)\n",
+ "print 'Reactive voltage math.sinusoidal commutation) is %.2f V'%(E2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reactive voltage linear commutation) is 5 V\n",
+ "Reactive voltage math.sinusoidal commutation) is 5.55 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.25 page no : 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 4. \t\t\t#Pole\n",
+ "Z = 386. \t\t\t#no of wave connected conductors\n",
+ "A = 2. \t\t\t#Wave winding\n",
+ "R_a = 1.\n",
+ "R_sh = 100.\n",
+ "R_L = 40 \t\t\t#Armature ,shunt field and load resistance\n",
+ "phi = 25.*10**-3 \t\t\t#flux per pole in weber\n",
+ "N = 1000. \t\t\t#speed in rpm\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "E_g = (phi*P*N*Z)/(60*A) \t\t\t#generated emf\n",
+ "\n",
+ "#Solving following equations for V_t\n",
+ "#E_g = V_t+I_a*R_a\n",
+ "#I_a = (I_L+I_sh) I_L = V_t/R_L I_sh = V_t/R_sj\n",
+ "#E_g = V_t(1 + (R_a/R_L) + (R_a/R_sh)\n",
+ "V_t = E_g/(1 + (R_a/R_L) + (R_a/R_sh))\n",
+ "\n",
+ "I_L = V_t/R_L \t\t\t# load current\n",
+ "I_sh = V_t/R_sh \t\t\t# current through shunt field resistance\n",
+ "\n",
+ "# Results\n",
+ "I_a = I_L+I_sh \t\t\t#armature current \n",
+ "print 'armature current is is %.4f A'%(I_a)\n",
+ "\n",
+ "output_power = V_t*I_L\n",
+ "print 'output power is %.3f W'%(output_power)\n",
+ "\n",
+ "# Note :answer obtained will not match with textbook answer because I_L = V_t/R_L = 310.79/40 = 7.77 \n",
+ "#Awhile its taken as 8.045 A in textbook'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "armature current is is 10.8776 A\n",
+ "output power is 2414.746 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.26 page no : 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I = 40. \t\t \t#current PER conductor\n",
+ "W_b = 3.\n",
+ "W_m = 0.\t\t\t #brush width and width of mica insulation\n",
+ "N = 600. \t\t\t #commutator speed in rpm \n",
+ "n_s = N/60 \t\t\t #commutator speed in rps\n",
+ "L = 0.15*10**-3 \t\t\t#self inducmath.tance in Henry\n",
+ "segments = 50. \n",
+ "v = n_s*segments \t\t\t#peripheral speed in segments per second\n",
+ "T_c = (W_b-W_m)/v \t\t\t#time of commutation\n",
+ "\n",
+ "# Calculations\n",
+ "E = L*2*I/T_c \t\t\t#Linear commutation\n",
+ "E2 = 1.11*L*2*I/T_c \t\t\t#Sinusoidal commutation\n",
+ "\n",
+ "# Results\n",
+ "print 'Reactive voltage linear commutation) is %.0f volts'%(E)\n",
+ "print 'Reactive voltage math.sinusoidal commutation) is %.2f volts'%(E2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reactive voltage linear commutation) is 2 volts\n",
+ "Reactive voltage math.sinusoidal commutation) is 2.22 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.27 page no : 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 400.\n",
+ "P = 6. \t\t\t #Poles\n",
+ "A = P \t\t \t#For lap wound\n",
+ "output_power = 250.*10**3\n",
+ "R_sh = 200. \t\t\t#shunt field circuit resistance\n",
+ "Z = 720. \t\t\t#number of lap wound conductors\n",
+ "\n",
+ "theta_m = 2.5 \t\t\t#brush lead angle in degree mechanical\n",
+ "I_L = output_power/V\n",
+ "V_sh = V\n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V_sh/R_sh \t\t\t#Current through shunt field circuit resistance\n",
+ "I_a = I_L+I_sh \t\t\t#armature currrent\n",
+ "I = I_a/P\n",
+ "\n",
+ "#Part(i)\n",
+ "amp_turns_PP_d = Z*I*theta_m/360\t\t\t#demagnetising ampere turns per pole\n",
+ "#Part(ii)\n",
+ "amp_turns_PP_c = Z*I*(1/(2*P)-theta_m/360) \t\t\t#cross-magnetising ampere turns per pole\n",
+ "\n",
+ "# Results\n",
+ "print 'i) De-magnetising ampere-turns per pole is %.1f'%(amp_turns_PP_d)\n",
+ "print 'ii) Cross-magnetising ampere-turns per pole is %.1f'%(amp_turns_PP_c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) De-magnetising ampere-turns per pole is 522.5\n",
+ "ii) Cross-magnetising ampere-turns per pole is 5747.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.28 page no : 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I_L = 100.\n",
+ "P = 4. \t\t\t #Poles\n",
+ "A = P \t\t\t #for lap wound armature\n",
+ "W_b = 1.4\n",
+ "W_m = 0. \t\t\t#Brush width and width of mica insulation\n",
+ "N = 1400.\t\t\t#armature speed in r.p.m\n",
+ "segments = 64. \t\t\t#no of commutator segments\n",
+ "L = 0.05*10**-3 \t\t\t#inducmath.tance of armature coil in henry\n",
+ "\n",
+ "# Calculations\n",
+ "n_s = N/60 \t\t\t#speed in r.p.s\n",
+ "v = n_s*segments \t\t\t#Segments per second\n",
+ "T_c = (W_b-W_m)/v \t\t\t#time of commutation\n",
+ "I = I_L/A \t\t\t#Current through conductor\n",
+ "E = L*2*I/T_c \t\t\t#Linear commutation\n",
+ "\n",
+ "# Results\n",
+ "print 'Reactive voltage considering linear commutation is %.2f volts'%(E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reactive voltage considering linear commutation is 2.67 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.29 page no : 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 8. \t\t \t#Poles\n",
+ "A = 2. \t\t \t#Wave wound armature\n",
+ "Z = 480. \t\t\t#number of armature conductors\n",
+ "I_a = 200.\n",
+ "I = I_a/A\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "theta_m = 0. \t\t\t#Geometric nuetral axis\n",
+ "amp_turns_PP_d = Z*I*theta_m/360 \t\t\t#De-magnetising ampere-turns per pole\n",
+ "amp_turns_PP_c = Z*I*(1/(2*P)-theta_m/360) \t\t\t#Cross-magnetising ampere-turns per pole\n",
+ "print 'Parti)De-magnetising ampere-turns per pole is %.0f'%(amp_turns_PP_d)\n",
+ "print 'Cross-magnetising ampere-turns per pole is %.0f'%(amp_turns_PP_c)\n",
+ "\n",
+ "#Part(ii)\n",
+ "theta_e2 = 6. \t\t\t#angle shift of brushes in degrees electrical\n",
+ "theta_m2 = theta_e2/(P/2) \t\t\t#angle shift of brushes in degrees mechanical\n",
+ "amp_turns_PP_d2 = Z*I*theta_m2/360 \t\t\t#De-magnetising ampere-turns per pole\n",
+ "amp_turns_PP_c2 = Z*I*(1/(2*P)-theta_m2/360) \t\t\t#Cross-magnetising ampere-turns per pole\n",
+ "print 'Partii)De-magnetising ampere-turns per pole is %.0f'%(amp_turns_PP_d2)\n",
+ "print 'Cross-magnetising ampere-turns per pole is %.0f'%(amp_turns_PP_c2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parti)De-magnetising ampere-turns per pole is 0\n",
+ "Cross-magnetising ampere-turns per pole is 3000\n",
+ "Partii)De-magnetising ampere-turns per pole is 200\n",
+ "Cross-magnetising ampere-turns per pole is 2800\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.30 page no : 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P_input = 7.46*10**3\n",
+ "V = 230.\n",
+ "Pole = 8.\n",
+ "Z = 188. \t\t\t#number of armature consuctors\n",
+ "I_L = P_input/V\n",
+ "theta_m = 7.5 \t\t\t#brush lead angle in degree mechanical\n",
+ "\n",
+ "A = 2. \t\t\t# assumed wave wound because of low-current and high voltage\n",
+ "I = I_L/A\n",
+ "\n",
+ "#Part(i)\n",
+ "amp_turns_PP_d = Z*I*theta_m/360 \t\t\t#De-magnetising ampere-turns per pole\n",
+ "#Part(ii)\n",
+ "amp_turns_PP_c = Z*I*(1/(2*Pole)-theta_m/360) \t\t\t#Cross-magnetising ampere-turns per pole\n",
+ "\n",
+ "print 'De-magnetising ampere-turns per pole is %.2f'%(amp_turns_PP_d)\n",
+ "print 'Cross-magnetising ampere-turns per pole is %.2f'%(amp_turns_PP_c)\n",
+ "\n",
+ "# note : The difference in answer occured because I is approximated to 16 in last 2 steps in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "De-magnetising ampere-turns per pole is 63.52\n",
+ "Cross-magnetising ampere-turns per pole is 127.04\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.31 page no : 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "N_1 = 1200. \t\t\t#initial speed \n",
+ "I_L1 = 200. \t\t\t#initial load current\n",
+ "V_t1 = 125.\n",
+ "N_2 = 1000. \t\t\t#altered speed\n",
+ "R_a = 0.04 \t\t\t#armature resistance\n",
+ "V_brush = 2. \t\t\t#brush drop\n",
+ "\n",
+ "# Calculations\n",
+ "# Initial Load\n",
+ "I_a1 = I_L1\n",
+ "E_g1 = V_t1+I_a1*R_a+V_brush \t\t\t#induced emf\n",
+ "\n",
+ "E_g2 = E_g1*(N_2/N_1) \t\t\t#Because E_g proportional to N during constant flux\n",
+ "R_L = V_t1/I_L1 \t\t\t#Load resistance\n",
+ "\n",
+ "#Solving for I_L2 as follows\n",
+ "#V_t2 = R_L*I_L2 \t\t\t#I_a2 = I_L2\n",
+ "#V_t2 = E_g2-(I_L2*R_2 + V_brush)\n",
+ "I_L2 = (E_g2-V_brush)/(R_L+R_a) \t\t\t#new current\n",
+ "\n",
+ "# Results\n",
+ "print 'Load current at new speed is %.4f A'%(I_L2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load current at new speed is 166.1654 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch2.ipynb b/DC_Machines_and_Synchronous_Machines/ch2.ipynb
new file mode 100755
index 00000000..b87a9190
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch2.ipynb
@@ -0,0 +1,2010 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:78f41af8e7d3182972251bae0a04df7a30b3aeb555cc290301b49daf9f643c37"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : D.C. Motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 page no : 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "I_a = 30. \t\t\t#armature currnet\n",
+ "R_a = 0.75 \t\t\t#Armature resistance\n",
+ "\n",
+ "# Calculations\n",
+ "E_b = V - I_a*R_a \t\t\t# Since V = E_b+ I_a*R_a\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print 'Induced EMF or back EMF in the motor is %.1f V'%(E_b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced EMF or back EMF in the motor is 197.5 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 page no : 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "A = Pole \t\t\t#for lap winding\n",
+ "V = 230.\n",
+ "Z = 250. \t\t\t#number of armature conductors\n",
+ "phi = 30.*10**-3 \t\t\t#flux per pole in weber\n",
+ "I_a = 40.\n",
+ "R_a = 0.6 \t\t\t#Armature resistance\n",
+ "\n",
+ "# Calculations \n",
+ "E_b = V - I_a*R_a \t\t\t# Since V = E_b+ I_a*R_a\n",
+ "N = E_b * 60*A/(phi*Pole*Z) \t\t\t#because E_b = phi*P*N*Z/(60*A)\n",
+ "\n",
+ "# Results\n",
+ "print 'Back emf is %.0f V and running speed is %.0f rpm'%(E_b,N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Back emf is 206 V and running speed is 1648 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 page no : 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "A = Pole \t\t\t#for lap winding\n",
+ "Z = 480.\t\t\t#number of armature conductors\n",
+ "phi = 20.*10**-3 \t\t\t#flux per pole in weber\n",
+ "I_a = 50. \t\t\t#Armature current\n",
+ "\n",
+ "# Calculations\n",
+ "T_a = 0.159*phi*I_a*Pole*Z/A \t\t\t#Gross torque developed by armature\n",
+ "\n",
+ "# Results\n",
+ "print 'Gross torque developed by armature is %.3f N-m'%(T_a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gross torque developed by armature is 76.320 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 page no : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "A = Pole \t\t\t#for lap winding\n",
+ "V = 230.\n",
+ "R_a = 0.8 \t\t\t#Armature resistance\n",
+ "N_0 = 1000. \t\t\t#no load speed in rpm\n",
+ "Z = 540. \t\t\t#number of armature conductors\n",
+ "phi = 25.*10**-3 \t\t\t#flux per pole in weber\n",
+ "\n",
+ "# Calculations and Results\n",
+ "E_b0 = phi*Pole*N_0*Z/(60*A) \t\t\t#induced emf\n",
+ "\n",
+ "#part(i)\n",
+ "print 'i)Induced e.m.f = %.0f V'%(E_b0)\n",
+ "\n",
+ "#part(ii)\n",
+ "I_a0 = (V- E_b0)/R_a \t\t\t#because V = E_b0+ I_a0*R_a\n",
+ "print 'ii)Armature current = %.2f A'%(I_a0)\n",
+ "\n",
+ "#part(iii)\n",
+ "stray_losses = E_b0*I_a0 \t\t\t#on no load ,power developed is fully power required to overcome strya losses\n",
+ "print 'iii)Stray loss = %.2f W'%(stray_losses)\n",
+ "\n",
+ "#part(iv)\n",
+ "T_f = E_b0*I_a0/(2*math.pi*N_0/60) \t\t\t#lost torque\n",
+ "print 'iv)Lost torque = %.3f N-m'%(T_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Induced e.m.f = 225 V\n",
+ "ii)Armature current = 6.25 A\n",
+ "iii)Stray loss = 1406.25 W\n",
+ "iv)Lost torque = 13.429 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5 page no : 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "Z = 200. \t\t\t #No of armature conductors\n",
+ "A = 2. \t\t\t #wave connected armature\n",
+ "V = 250.\n",
+ "phi = 25.*10**-3 \t\t\t#flux per pole in weber\n",
+ "I_a = 60.\n",
+ "I_L = I_a \t \t\t#armature current\n",
+ "R_a = 0.15\n",
+ "R_se = 0.2 \t\t\t#resistances of armature and series field winding\n",
+ "\n",
+ "# Calculations\n",
+ "E_b = V - I_a*(R_a+R_se) \t\t\t#induced emf\n",
+ "N = E_b * 60*A/(phi*Pole*Z) \t\t\t#because E_b = phi*P*N*Z/(60*A)\n",
+ "\n",
+ "# Results\n",
+ "print 'Required speed is %.0f r.p.m'%(N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required speed is 1374 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 page no : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "I_L = 20. \t\t\t#load current\n",
+ "R_a = 0.3\n",
+ "R_sh = 200. \t\t\t#Armature and shunt field winding\n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V/R_sh \t\t\t#shunt current\n",
+ "I_a = I_L-I_sh \t\t\t#armature current\n",
+ "E_b = V - I_a*R_a \t\t\t#emf generated\n",
+ "\n",
+ "# Results\n",
+ "print 'Armature current is %.2f A'%(I_a)\n",
+ "print 'Back e.m.f is %.3f V'%(E_b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature current is 18.75 A\n",
+ "Back e.m.f is 244.375 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7 page no : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "R_a = 0.3\n",
+ "R_sh = 110. \t\t\t#resistance of armature and shunt field winding\n",
+ "\n",
+ "#no load\n",
+ "N_0 = 1000. \t\t\t#no load speed in r.p.m\n",
+ "I_L0 = 6. \t\t\t#line current on no load\n",
+ "I_sh = V/R_sh \t\t\t#no load shnt current\n",
+ "I_a0 = I_L0 - I_sh \t\t\t#no load armature current\n",
+ "E_b0 = V - I_a0*R_a \t\t\t#no load induced emf\n",
+ "\n",
+ "# Calculations\n",
+ "#full load\n",
+ "I_sh_FL = V/R_sh\n",
+ "I_L_FL = 50 \t\t\t#line current at full load\n",
+ "I_a_FL = I_L_FL - I_sh_FL\t\t\t#full load armature current\n",
+ "E_b_FL = V - I_a_FL * R_a \t\t\t#full load induced emf\n",
+ "\t\t\t#using speed equation as treating phi as constant\n",
+ "N_FL = N_0 * (E_b_FL/E_b0)\n",
+ "\n",
+ "# Results\n",
+ "print 'Speed on full load is %.2f r.p.m'%(N_FL)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed on full load is 939.67 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 page no : 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R_a = 0.2\n",
+ "R_se = 0.3 \t\t\t#resistance of armature and series field winding\n",
+ "#following variables correspond to load 1\n",
+ "V = 250.\n",
+ "N_1 = 800.\n",
+ "I_1 = 20.\n",
+ "I_a1 = I_1\n",
+ "I_se1 = I_a1\n",
+ "\n",
+ "# Calculations\n",
+ "E_b1 = V - I_a1*(R_a+R_se)\n",
+ "#following variables correspond to load 2\n",
+ "I_2 = 50.\n",
+ "I_a2 = I_2\n",
+ "E_b2 = V - I_a2*(R_a+R_se)\n",
+ "\n",
+ "#from speed equation it can be derived that\n",
+ "\n",
+ "N_2 = N_1 * (E_b2/E_b1) * (I_a1/I_a2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Speed on motor on no load is %.0f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed on motor on no load is 300 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9 page no : 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "R_a = 0.3\n",
+ "R_sh = 200. \t\t\t#resistance of armature and shunt field winding\n",
+ "R_x = 150. \t\t\t#additional resistance added in series to field winding\n",
+ "I_L1 = 22.\n",
+ "I_sh1 = V/R_sh \t\t\t#initial shunt current before adding 150 ohms resistance\n",
+ "I_a1 = I_L1 - I_sh1 \t\t\t#initial armature current before adding 150 ohms resistance\n",
+ "N_1 = 1500. \t\t\t#initial speed before adding 150 ohms resistance\n",
+ "\n",
+ "# Calculations\n",
+ "#T (prop.) phi*I_a (prop.) I_sh*I_a and T_1 = T_2 and simplifying further \n",
+ "I_sh2 = V/(R_sh + R_x) \t\t\t#new shunt current\n",
+ "I_a2 = I_sh1*I_a1/I_sh2 \t\t\t#New armature current\n",
+ "\n",
+ "E_b1 = V - I_a1*R_a \t\t\t#induced emf before adding 150 ohms resistance\n",
+ "E_b2 = V - I_a2*R_a \t\t\t#new emf\n",
+ "\n",
+ "N_2 = N_1 * (E_b2/E_b1) * (I_sh1/I_sh2) \t\t\t#new speed\n",
+ "\n",
+ "# Results\n",
+ "print 'New armature current and speed are %.4f A and %.f r.p.m respectively'%(I_a2,N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New armature current and speed are 36.3125 A and 2575 r.p.m respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10 page no : 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "R_a = 0.15\n",
+ "R_se = 0.1\n",
+ "R_x = 0.1 \t\t\t#Resimath.tance of armature , series field winding and extra resistance\n",
+ "N_1 = 800. \t\t\t#initial speed before load torque is increased\n",
+ "I_1 = 30.\n",
+ "I_a1 = I_1\n",
+ "I_se1 = I_1 \t\t\t#initial currents\n",
+ "\n",
+ "# Calculations\n",
+ "T_2_by_T_1 = 1 + (50./100) \t\t\t#50 percent increase as mentioned in question\n",
+ "I_se2_by_I_a2 = R_x/(R_x + R_se) \t\t\t#from the figure\n",
+ "\n",
+ "#T (prop.) phi*I_a (prop.) I_sh*I_a and T_1 = T_2 and simplifying ,solving further \n",
+ "I_a2 = math.sqrt(I_a1*I_se1*T_2_by_T_1/I_se2_by_I_a2) \t\t\t#new armature current\n",
+ "I_se2 = I_se2_by_I_a2 *I_a2 \t\t\t#new series field current\n",
+ "\n",
+ "E_b1 = V - I_a1*R_a - I_se1*R_se \t\t\t#indiced emf initially\n",
+ "E_b2 = V - I_a2*R_a - I_se2*R_se \t\t\t#new induced emf\n",
+ "N_2 = N_1 * (E_b2/E_b1) * (I_se1/I_se2) \t\t\t#required speed\n",
+ "\n",
+ "# Results\n",
+ "print 'The required running speed of motor is %.3f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required running speed of motor is 912.743 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 page no : 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "I_1 = 50.\n",
+ "I_a1 = I_1 \t\t\t#Currents before adding extra resistance\n",
+ "T_2_by_T_1 = 0.5\n",
+ "R_t = 0.15 \t\t\t#R_e + R_se = 0.15\n",
+ "\n",
+ "# Calculations\n",
+ "I_a2 = I_a1 * math.sqrt(T_2_by_T_1) \t\t\t#Because T (prop.) I_a**2\n",
+ "E_b1 = V-I_a1*(R_t) \t\t\t#induced emf before adding extra resistance\n",
+ "N_1 = 500.\n",
+ "N_2 = 300. \t\t\t#speeds before and adding extra resistance\n",
+ "\n",
+ "#N (prop.) E_b/phi (prop.) E_b/I_a\n",
+ "E_b2 = E_b1 *(I_a2/I_a1)*(N_2/N_1) \t\t\t#induced emf after adding resistance\n",
+ "R_x = (V-E_b2)/I_a2 -R_t \t\t\t#because E_b2 = V - I_a2*(R_a + R_se + R_x)\n",
+ "\n",
+ "# Results\n",
+ "print 'Desired extrea resistance = %.4f ohms '%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Desired extrea resistance = 3.5225 ohms \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12 page no : 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R_a = 1.\n",
+ "I_a = 1.2 \n",
+ "V = 50.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "E_b = V - I_a*R_a\n",
+ "rot_loss_NL = E_b*I_a \t\t\t#no load rotational loss \n",
+ "print 'i)No load rotational losses = %.2f W'%(rot_loss_NL)\n",
+ "\n",
+ "#part(ii)\n",
+ "omega_2000 = 2*math.pi*2000/60 \t\t\t#angular velocity when speed of motor = 2000 rpm\n",
+ "K_m = E_b/omega_2000 \t\t\t#to determine K_m\n",
+ "V = 48.\n",
+ "omega_1800 = 2*math.pi*1800/60 \t\t\t#angular velocity when speed of motor = 1800 rpm\n",
+ "E_b = K_m*omega_1800\n",
+ "I_a = (V-E_b)/R_a \t\t\t#armature current\n",
+ "P_dev = E_b*I_a\t\t\t#power developed\n",
+ "motor_output = P_dev - rot_loss_NL\n",
+ "print 'ii)Motor output = %.f W'%(motor_output)\n",
+ "\n",
+ "#part(iii)\n",
+ "E_b = 0. \t\t\t#when motor stalls\n",
+ "V_stall = 20. \t\t\t#voltage during stalling\n",
+ "I_a = V_stall/R_a \t\t\t#armature current during stalling\n",
+ "T_stall = K_m*I_a \t\t\t#stalling torque\n",
+ "print 'iii)Stalling torque = %.2f N-m'%(T_stall)\n",
+ "print 'partii answer is slightly different due to inaccurate calculation of Power developed'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)No load rotational losses = 58.56 W\n",
+ "ii)Motor output = 121 W\n",
+ "iii)Stalling torque = 4.66 N-m\n",
+ "partii answer is slightly different due to inaccurate calculation of Power developed\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13 page no : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 120.\n",
+ "R_a = 0.2 \n",
+ "R_sh = 60. \t\t\t#armature and field resistance\n",
+ "I_L1 = 40.\n",
+ "N_1 = 1800. \n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V/R_sh\n",
+ "\n",
+ "I_a1 = I_L1 - I_sh \n",
+ "E_b1 = V -I_a1*R_a \t\t\t#Induced emf at half load\n",
+ "T2_by_T1 = 1./2 \n",
+ "I_a2 = I_a1*(T2_by_T1) \t\t\t#T (prop.)I_a\n",
+ "E_b2 = V- I_a2*R_a\t\t\t#induced emf at half load\n",
+ "N_2 = N_1 *(E_b2/E_b1) \t\t\t#N (prop.) E_b as phi is constant\n",
+ "\n",
+ "# Results\n",
+ "print 'Speed on half load condition is %.2f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed on half load condition is 1860.85 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R_a = 0.08\n",
+ "E_b1 = 242. \n",
+ "V = 250.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "I_a1 = (V-E_b1)/R_a\n",
+ "print 'i)Armature current = %.0f A'%(I_a1)\n",
+ "\n",
+ "#part(ii)\n",
+ "N = 0.\n",
+ "E_b = 0. \t\t\t#because N = 0\n",
+ "I_a_start = V/R_a\n",
+ "print 'ii)Starting armature current = %.0f A'%(I_a_start)\n",
+ "\n",
+ "#part(iii)\n",
+ "I_a2 = 120.\n",
+ "E_b2 = V-I_a2*R_a\n",
+ "print 'iii)Back emf if armature current is changed to 120 A = %.1f V'%(E_b2)\n",
+ "\n",
+ "#part(iv)\n",
+ "I_a = 87.\n",
+ "N_m = 1500.\n",
+ "E_g = V + I_a*R_a \t\t\t#induced emf\n",
+ "N_g = N_m*(E_g/E_b1)\t\t\t#as E (prop.) N\n",
+ "print 'iv)Generator speed to deliver 87 A at 250 V = %.1f rpm'%(N_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Armature current = 100 A\n",
+ "ii)Starting armature current = 3125 A\n",
+ "iii)Back emf if armature current is changed to 120 A = 240.4 V\n",
+ "iv)Generator speed to deliver 87 A at 250 V = 1592.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15 page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "shaft_output = 80.*746 \t\t\t#coverted to watts\n",
+ "eta = 80./100 \t\t\t#efficiency\n",
+ "V = 250.\n",
+ "N_1 = 1200.\n",
+ "R_a = 0.04\n",
+ "R_sh = 250. \t\t\t #armature and shunt field resistance\n",
+ "\n",
+ "# Calculations and Results\n",
+ "power_input = shaft_output/eta\n",
+ "I_L = power_input /V\n",
+ "I_sh = V / R_sh\n",
+ "I_a = I_L - I_sh\n",
+ "E_b1 = V - I_a*R_a\n",
+ "\n",
+ "gross_mechanical_power = E_b1*I_a \t\t\t#electrical equivalent of mechanical power developed\n",
+ "stray_losses = gross_mechanical_power - shaft_output\n",
+ "print 'Mechanical power developed on full load = %.3f kW'%(gross_mechanical_power/1000)\n",
+ "\n",
+ "#on no load shaft_output = 0 and entire gross power is used to overcome stray losses\n",
+ "Eb0_Ia0 = stray_losses\n",
+ "#E_b0 = V - I_a0*R_a ... solving for I_0\n",
+ "p = [R_a, -V, Eb0_Ia0]\n",
+ "ans = roots(p)\n",
+ "I_a0 = ans[1] \t\t\t#first root is ignored math.since its too large\n",
+ "I_L0 = I_sh+I_a0 \t\t\t#current drawn from supply\n",
+ "E_b0 = V - I_a0*R_a \n",
+ "\n",
+ "#From speed equation N (prop.) E_b\n",
+ "N_0 = N_1*(E_b0/E_b1)\n",
+ "print 'No load speed and current are %.4f rpm and %.2f A respectively'%(N_0,I_L0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mechanical power developed on full load = 70.812 kW\n",
+ "No load speed and current are 1250.9121 rpm and 45.85 A respectively"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16 page no : 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "P = 4. \n",
+ "R_a = 0.1 \n",
+ "R_sh = 124. \t\t\t#armature and shunt field resistance \n",
+ "I_L0 = 4.\n",
+ "N_0 = 1200.\n",
+ "I_L_1 = 61.\n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V/R_sh\n",
+ "I_a0 = I_L0-I_sh\n",
+ "V_brush = 2 \t\t\t#voltage loss due to brush\n",
+ "E_b0 = V - I_a0*R_a- V_brush\n",
+ "\n",
+ "I_a1 = I_L_1 - I_sh\n",
+ "E_b1 = V - I_a1*R_a -V_brush\n",
+ "\n",
+ "phi1_by_phi0 = 1-(5./100) \t\t\t#weakened by 5 %\n",
+ "N_1 = N_0 *(E_b1/E_b0) /phi1_by_phi0\n",
+ "\n",
+ "# Results\n",
+ "print 'Full load speed is %.3f r.p.m'%(N_1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load speed is 1234.102 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.17 page no : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "R_a = 0.15 \n",
+ "R_sh = 167.67 \t\t\t#armature and shunt field resistance\n",
+ "N_0 = 1280. \t\t\t#speed at no load\n",
+ "\n",
+ "#full load\n",
+ "I_L1 = 67. \t\t\t#current drawn on full load\n",
+ "I_sh = V / R_sh \t\t\t#as shunt motor\n",
+ "I_a1 = I_L1- I_sh\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "#on no load\n",
+ "I_L0 = 6.5\n",
+ "I_a0 = I_L0 - I_sh\n",
+ "E_b0 = V - I_a0*R_a\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i) USING SPEED EQUATION\n",
+ "#N (prop.) E_b/phi (prop.)E_b \t\t\t#as phi is constant\n",
+ "N_1 = N_0 * (E_b1 / E_b0)\n",
+ "print 'i)Full load speed = %.3f r.p.m'%(N_1)\n",
+ "\n",
+ "#part(ii)\n",
+ "speed_regulation = 100* ((N_0-N_1)/N_1)\n",
+ "#N_1 is full load speed and N_0 = No load speed \n",
+ "print 'ii)Speed regulation = %.2f percent '%(speed_regulation )\n",
+ "\n",
+ "#part(iii)\n",
+ "shaft_output_FL = E_b1*I_a1 - E_b0*I_a0 \t\t\t#full load power developed - stray losses\n",
+ "hp_rating = shaft_output_FL /746\n",
+ "print 'iii)HP rating of machine = %.2f h.p'%(hp_rating)\n",
+ "\n",
+ "#part(iv)\n",
+ "power_input = V*I_L1\n",
+ "eta = 100*(shaft_output_FL/power_input) \t\t\t#full load efficiency\n",
+ "print 'iv)Full load efficiency = %.2f percent'%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Full load speed = 1233.396 r.p.m\n",
+ "ii)Speed regulation = 3.78 percent \n",
+ "iii)HP rating of machine = 19.42 h.p\n",
+ "iv)Full load efficiency = 86.48 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18 page no : 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 200.\n",
+ "R_a = 0.5\n",
+ "R_se = 0.2\n",
+ "R_x = 0.2 \t\t\t#armature and series field resistance; extra resistance\n",
+ "I_a1 = 20.\n",
+ "I_1 = I_a1 \n",
+ "I_se1 = I_a1\n",
+ "I_a2 = 20.\n",
+ "I_2 = I_a2\n",
+ "I_se2 = I_2 *(R_x/(R_se+R_x))\n",
+ "\n",
+ "# Calculations\n",
+ "E_b1 = V -I_a1*R_a - I_a1*R_se\n",
+ "E_b2 = V -I_a2*R_a - I_se2*R_se\n",
+ "\n",
+ "phi2_by_phi1 = 70./100\n",
+ "N_1 = 1000\n",
+ "N_2 = N_1*(E_b2/E_b1) /phi2_by_phi1 \t\t\t#N (prop.) E_b/phi\n",
+ "\n",
+ "# Results\n",
+ "print 'Required speed is %.2f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required speed is 1443.93 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.19 page no : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 110.\n",
+ "P = 4.\n",
+ "R_a = 0.1\n",
+ "R = 0.01 \t\t\t#A resistance of 0.01 ohms\n",
+ "R_se = R+R\n",
+ "\n",
+ "# Calculations\n",
+ "#case(i)\n",
+ "I_1 = 50.\n",
+ "I_a1 = I_1\n",
+ "N_1 = 700.\n",
+ "E_b1 = V -I_a1*(R_a + R_se)\n",
+ "\n",
+ "#T (prop) phi*I_a from torque equation (1)\n",
+ "\n",
+ "#phi_1 (prop.) I_a1 (2)\n",
+ "#case(ii) when I_a2 gets divided to half\n",
+ "#phi_2 (prop.) I_a2/2 (3)\n",
+ "\n",
+ "#combining (1)(2)(3) and T1 = T2\n",
+ "I_a2 = math.sqrt(2*I_a1**2)\n",
+ "R_se_eqvt = (R*R)/(R+R) \t\t\t#Equavalent of parallel combination\n",
+ "E_b2 = V - I_a2*R_a - I_a2* R_se_eqvt\n",
+ "\n",
+ "#using speed equation N (prop.) E_b / phi and using (2) and (3)\n",
+ "N_2 = N_1 *( E_b2/E_b1) *(I_a1/(I_a2/2))\n",
+ "\n",
+ "# Results\n",
+ "print 'Speed after reconnection = %.3f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed after reconnection = 976.389 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.20 page no : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 4.\n",
+ "I_a1 = 50.\n",
+ "N_1 = 2000.\n",
+ "V = 230.\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#phi_1 is proportioanl to total ampere-turns produced by field coils\n",
+ "#phi_1 (prop.) I_a1*P*n (prop.) 200*n (1)\n",
+ "\n",
+ "#After reconnection ,phi_2 proportional to ampere turns divided as follows\n",
+ "#phi_2 (prop.) [I_a2/2*2*n + I_a2/2*2*n] (prop.) 2*n*I_a2 (2)\n",
+ "\n",
+ "# Dividing (1) and (2) ,(phi_1/phi_2) = 100 / I_a2 (3)\n",
+ "\n",
+ "#T (prop.) phi*I_a AND T (prop.) N**2 (4)(5)\n",
+ "#therefore N**2 (prop.) phi*I_a (6)\n",
+ "\n",
+ "#N (prop.) E_b/phi (prop.) 1/phi ..\n",
+ "#Because drops across windings can be neglected , E_b1 = E_b2\n",
+ "#therefore N (prop.) 1/phi (7)\n",
+ "\n",
+ "#using (7) and (6) phi**3 (prop.) 1/I_a (8)\n",
+ "\n",
+ "#combining (3) and (8)\n",
+ "I_a2 = (50.*100**3)**(1./4) \t\t\t#new armature current\n",
+ "print 'New armature current = %.3f A'%(I_a2)\n",
+ "#combining (6) and (7) N**3 (prop.) I_a1\n",
+ "N_2 = N_1 *(I_a2/I_a1)**(1./3)\n",
+ "print 'New motor speed = %.3f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New armature current = 84.090 A\n",
+ "New motor speed = 2378.414 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 2.22 page no : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 200.\n",
+ "I_a1 = 30.\n",
+ "R_t = 1.5 \t\t\t#R_a + R_se\n",
+ "E_b1 = V - I_a1*R_t\n",
+ "N2_by_N1 = (60./100)\n",
+ "\n",
+ "# Calculations\n",
+ "#T (prop.) I_a**2 and T (prop.) N_3....therefore I_a**2 (prop.) N**3\n",
+ "I_a2 = I_a1*math.sqrt(N2_by_N1**3)\n",
+ "\n",
+ "#N (prop.) E_b/I_a\n",
+ "N2_by_N1\n",
+ "E_b2 = E_b1 *(I_a2/I_a1)*N2_by_N1\n",
+ "R_x = (V- E_b2)/I_a2 - R_t \t\t\t#because E_b2 = V - I_a2*(R_x+R_t)\n",
+ "\n",
+ "# Results\n",
+ "print 'Additional resistance to be added in series with motor circuit = %.3f ohms'%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Additional resistance to be added in series with motor circuit = 9.744 ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.23 page no : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "R_a = 0.4 \n",
+ "R_sh = 100. \t\t\t#armature and shunt field resistance\n",
+ "I_sh1 = V / R_sh\n",
+ "P_out_FL = 10 * 735.5\n",
+ "eta = 85./100 \t\t\t#efficiency\n",
+ "P_in = P_out_FL/eta\n",
+ "I_L1 = P_in /V\n",
+ "I_a1 = I_L1 - I_sh1\n",
+ "\n",
+ "# T (prop.) phi*I_a (prop.) I_sh*I_a because phi (prop.) I_sh\n",
+ "#Bu torque is constant.. \n",
+ "Ia2_Ish2 = I_a1*I_sh1\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "#N (prop.) E_b/I_sh\n",
+ "#put E_b2 = V - I_a2*R_a and solving further for I_sh2 we get ,I_sh2**2 - 1.8824 I_sh2 +0.2417 = 0\n",
+ "p = array([1, -1.8824, 0.2417])\n",
+ "ans = roots(p) \n",
+ "I_sh2 = ans[0]\n",
+ "#root 1 was considered because its always easier to attain root(1) because less resistacne is needeed\n",
+ "#R_x in series with field\n",
+ "R_x = (V/I_sh2) -R_sh \t\t\t#because I_sh2 = V/(R_sh + R_x)\n",
+ "print 'Extra resistance to be added = %.2f ohms'%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extra resistance to be added = 43.37 ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.24 page no : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R_t = 1. \t\t\t#R_t = R_se + R_a\n",
+ "V_1 = 230.\n",
+ "N_1 = 300.\n",
+ "N_2 = 375.\n",
+ "I_1 = 15.\n",
+ "I_a1 = I_1\n",
+ "\n",
+ "# Calculations\n",
+ "#T (prop.) I_a**2 and T (prop.) N_2....therefore I_a**2 (prop.) N**2\n",
+ "I_a2 = I_a1 *(N_2/N_1)\n",
+ "E_b1 = V_1 - I_a1*(R_t)\n",
+ "\n",
+ "#N (prop.) E_b/I_a\n",
+ "E_b2 = E_b1*(I_a2/I_a1)*(N_2/N_1)\n",
+ "V_2 = E_b2 + I_a2* (R_t) \t\t\t#because E_b2 = V_2 - I_a2*(R_a+R_se)\n",
+ "\n",
+ "# Results\n",
+ "print 'Voltage supply needed = %.4f V'%(V_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage supply needed = 354.6875 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.25 page no : 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I_L1 = 30.\n",
+ "V = 230.\n",
+ "R_sh = 230.\n",
+ "R_a = 1.\n",
+ "I_sh = V / R_sh\n",
+ "I_a1 = I_L1 - I_sh\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "# Calculations\n",
+ "#T (prop.) phi*I_a (prop.) I_a as phi is constant\n",
+ "#and torque is constant\n",
+ "I_a2 = I_a1\n",
+ "N2_by_N1 = 1./2\n",
+ "#N (prop.) E_b/phi (prop.) E_b\n",
+ "E_b2 = E_b1 *(N2_by_N1)\n",
+ "R_x = (V- E_b2)/I_a2 - R_a \t\t\t#Because E_b2 = V - I_a2*(R_a + R_x)\n",
+ "\n",
+ "# Results\n",
+ "print 'resistance to be inserted in series = %.4f ohms '%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance to be inserted in series = 3.4655 ohms \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.26 page no : 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T_1 = 40. \t\t\t#initial torque\n",
+ "#phi_1 is initial flux\n",
+ "#phi_2 is new flux\n",
+ "#T_2 is new torque\n",
+ "#I_a1 is initial current\n",
+ "#I_a2 is new current\n",
+ "phi2_by_phi1 = 1- (30./100) \t\t\t#decrease by 30 percent\n",
+ "Ia2_by_Ia1 = 1+(15./100) \t\t\t#increase by 15 percent\n",
+ "\n",
+ "# Calculations\n",
+ "#T (prop.)phi*I_a\n",
+ "T_2 = T_1*(phi2_by_phi1)*(Ia2_by_Ia1)\n",
+ "\n",
+ "# Results\n",
+ "print 'New torque is %.1f N-m'%(T_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New torque is 32.2 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.27 page no : 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "V = 230.\n",
+ "N_1 = 1000.\n",
+ "N_2 = 950.\n",
+ "R_a = 0.5\n",
+ "R_sh = 230. \t\t\t#armature and shunt field resistance\n",
+ "I_L1 = 10.\n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V/R_sh\n",
+ "I_a1 = I_L1 - I_sh\n",
+ "\n",
+ "#T (prop.) phi*I_a (prop.) I_a with phi constant and T is constant due to full-load\n",
+ "I_a2 = I_a1\n",
+ "\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "E_b2 = E_b1*(N_2/N_1) \t\t\t#N (prop.) E_b /phi (prop.) E_b as phi is constant\n",
+ "\n",
+ "R_x = (V-E_b2)/I_a2 -R_a \n",
+ "\n",
+ "# Results\n",
+ "print 'resistance to be inserted in series with armature = %.4f ohms'%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance to be inserted in series with armature = 1.2528 ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.28 page no : 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "N_0 = 1000.\n",
+ "I_0 = 5.\n",
+ "R_a = 0.2\n",
+ "R_sh = 250. \t\t\t#armature and shunt field resistance\n",
+ "I_L = 50. \t\t\t#on no load\n",
+ "I_sh = V / R_sh\n",
+ "I_a0 = I_0 - I_sh\n",
+ "I_a = I_L - I_sh\n",
+ "E_b0 = V- I_a0*R_a\n",
+ "E_b1 = V- I_a *R_a\n",
+ "\n",
+ "# Calculations\n",
+ "phi1_by_phi0 = 1-(3./100) \t\t\t#weakens by 3 percent\n",
+ "#N (prop.) E_b/phi\n",
+ "N_1 = N_0 *(E_b1/E_b0) /phi1_by_phi0\n",
+ "\n",
+ "# Results\n",
+ "print 'Speed when loaded and drawing 50A current is %.3f r.p.m'%(N_1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed when loaded and drawing 50A current is 993.695 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.29 page no : 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 230.\n",
+ "I_a0 = 3.3\n",
+ "R_a = 0.3\n",
+ "R_sh = 160. \t\t\t#armature and shunt field resistance \n",
+ "I_L1 = 40.\n",
+ "N_0 = 1000.\n",
+ "E_b0 = V - I_a0*R_a\n",
+ "I_sh = V/ R_sh\n",
+ "I_a1 = I_L1 - I_sh\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "phi1_by_phi0 = 1- (4./100) \t\t\t#weakening by 4 percent \n",
+ "\n",
+ "# Calculations and Results\n",
+ "N_1 = N_0 *(E_b1/E_b0)/(phi1_by_phi0) \t\t\t#because N (prop.) E_b/phi\n",
+ "print 'Full load speed is %.4f rpm'%(N_1)\n",
+ "T_0 = E_b0*I_a0/(2*math.pi*N_0/60)\n",
+ "T_1 = T_0*(I_a1/I_a0)*phi1_by_phi0 \t\t\t# because T (prop.) phi*I_a\n",
+ "print 'Full load developed torque is %.4f N-m'%(T_1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load speed is 993.5485 rpm\n",
+ "Full load developed torque is 80.9585 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.30 page no : 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "I_L = 52.\n",
+ "N_1 = 750.\n",
+ "N_2 = 600.\n",
+ "R_a = 0.2\n",
+ "R_sh = 110. \t\t\t#armature and shunt field resistance\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_sh = V/ R_sh\n",
+ "I_a1 = I_L - I_sh\n",
+ "I_a2 = I_a1\t\t\t#T (prop.) I_a and T is constant\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "#N (prop.) E_b/phi (prop.) E_b\n",
+ "E_b2 = E_b1*(N_2/N_1)\n",
+ "R_x = (V- E_b2)/I_a2 -R_a \t\t\t#Because E_b2 = V - I_a2*(R_a+R_x)\n",
+ "print 'resistance to be connected in series = %.2f ohms'%(R_x)\n",
+ "\n",
+ "#After R_x gets connected in series with armature and 110 ohms in series with field winding\n",
+ "N_1 = 600.\n",
+ "I_sh2 = V /(R_sh+110)\n",
+ "I_a1 = 50.\n",
+ "I_sh1 = 2.\n",
+ "I_sh2 = 1.\n",
+ "#T (prop.) I_a*I_sh and T doesn't vary\n",
+ "I_a2 = I_a1*(I_sh1/I_sh2)\n",
+ "E_b1 = V - I_a1*(R_a+R_x)\n",
+ "E_b2 = V - I_a2*(R_a+R_x)\n",
+ "N_2 = N_1*(E_b2/E_b1)*(I_sh1/I_sh2) \t\t\t#Because N (prop.) E_b/I_sh\n",
+ "print 'New speed = %.3f rpm'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance to be connected in series = 0.84 ohms\n",
+ "New speed = 828.571 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.31 page no : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 230.\n",
+ "R_a = 0.15\n",
+ "R_sh = 250. \t\t\t#armature and shunt field resistance\n",
+ "I_a1 = 50.\n",
+ "I_a2 = 80.\n",
+ "N_1 = 800.\n",
+ "N_2 = 1000.\n",
+ "I_sh1 = V / R_sh\n",
+ "\n",
+ "# Calculations\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "E_b2 = V - I_a2*R_a\n",
+ "\n",
+ "I_sh2 = I_sh1*(E_b2/E_b1)*(N_1/N_2) \t\t\t#Because N (prop.) E_b/ I_sh\n",
+ "R_x = (V/I_sh2 ) - R_sh \t\t\t#because I_sh2 = V /(R_x+ R_sh)\n",
+ "\n",
+ "# Results\n",
+ "print 'resistance to be added is R_x = %.0f ohms'%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance to be added is R_x = 69 ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.32 page no : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 230.\n",
+ "R_a = 0.5\n",
+ "N_1 = 800.\n",
+ "N_2 = 600.\n",
+ "I_a2 = 20. \n",
+ "I_a1 = I_a2\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "# Calculations\n",
+ "#N (prop.) E_b/phi (prop.) E_b as phi is constant\n",
+ "E_b2 = E_b1 *(N_2/N_1)\n",
+ "#additional resistance required\n",
+ "R_x = (V -E_b2)/I_a2 - R_a \t\t\t#because E_b2 = V - I_a2*(R_a+R_x)\n",
+ "\n",
+ "# Results\n",
+ "print 'Additional resistance required = %.2f ohms '%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Additional resistance required = 2.75 ohms \n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.33 page no : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "R_a = 0.5\n",
+ "R_x = 5. \t\t\t#armature resistacne and extra resistance\n",
+ "I_1 = 15.\n",
+ "I_se1 = I_1\n",
+ "I_se2 = I_se1 \n",
+ "I_2 = I_se2\n",
+ "N_1 = 800.\n",
+ "\n",
+ "# Calculations\n",
+ "E_b1 = V - I_1*R_a\n",
+ "E_b2 = V - I_2*(R_a+R_x)\n",
+ "\n",
+ "N_2 = N_1*(E_b2/E_b1)*(I_se1/I_se2) \t\t\t#because N (prop.) E_b/I_se\n",
+ "\n",
+ "# Results\n",
+ "print 'New speed of rotor = %.3f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New speed of rotor = 517.647 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.34 page no : 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "I_a1 = 20.\n",
+ "R_a = 0.5\n",
+ "N_1 = 1000.\n",
+ "N_2 = 500.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#T (prop.) I_a and T_1 = T_2\n",
+ "I_a2 = I_a1\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "#N (prop.) E_b\n",
+ "E_b2 = E_b1 *(N_2/N_1)\n",
+ "R_x = (V-E_b2)/I_a2 - R_a \t\t\t#because E_b2 = V - I_a2*(R_a+R_x)\n",
+ "print 'Additional resistance = %.0f ohms'%(R_x)\n",
+ "T3_by_T2 = 0.5 \t\t\t#torque is halved\n",
+ "I_a3 = I_a2 *(T3_by_T2) \t\t\t#new armature current\n",
+ "E_b3 = V - I_a3*(R_x + R_a)\n",
+ "N_3 = E_b3*N_2 / E_b2 \t\t\t#N (prop.) E_b\n",
+ "print 'New speed = %.3f rpm'%(N_3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Additional resistance = 6 ohms\n",
+ "New speed = 770.833 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.35 page no : 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P_out = 100*735.5\n",
+ "V = 500.\n",
+ "P = 4.\n",
+ "A = 2.\t\t\t# due to wave winding\n",
+ "Z = 492. \t\t\t#no of conductors\n",
+ "phi = 50.*10**-3 \t\t\t#flux per pole\n",
+ "eta = 92./100 \t\t\t#efficiency\n",
+ "P_in = P_out/eta\n",
+ "R_a = 0.1 \n",
+ "R_sh = 250. \t\t\t#amature and shunt field resistance\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = P_in/V\n",
+ "I_sh = V/ R_sh\n",
+ "I_a = I_L - I_sh\n",
+ "E_b = V - I_a*R_a\n",
+ "N = E_b*60*A/(phi*P*Z) \t\t\t#because E_b = phi*P*N*Z/(60*A)\n",
+ "\n",
+ "T_sh = P_out/(2*math.pi*N/60) \t\t\t#Useful torque\n",
+ "\n",
+ "# Results\n",
+ "print 'i)Speed at full load = %.4f rpm'%(N)\n",
+ "print 'ii)Useful torque = %.2f N-m'%(T_sh)\n",
+ "print 'Answer mismatches due to improper approximation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Speed at full load = 590.5011 rpm\n",
+ "ii)Useful torque = 1189.41 N-m\n",
+ "Answer mismatches due to improper approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.36 page no : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "N_1 = 1000.\n",
+ "I_1 = 50.\n",
+ "I_a1 = I_1\n",
+ "V = 250.\n",
+ "R_x = 4.4\n",
+ "R_t = 0.6 \t\t\t#R_t = R_a+R_se\n",
+ "E_b1 = V - I_a1*(R_t)\n",
+ "\n",
+ "# Calculations\n",
+ "#T (prop.)I_a**2 T (prop.) N**2 .... hence N (prop.) I_a\n",
+ "#N (prop.) E_b /I_a \n",
+ "#combining both E_b (prop.) I_a**2\n",
+ "#using E_b2 = V - I_a2*(R_a + R_se + R_x) and solving for I_a2 we get 0.088 I_a2**2 +5 I_a2 -250 = 0\n",
+ "p = [0.088 ,5, -250] \n",
+ "ans = roots(p)\n",
+ "I_a2 = ans[1] \t\t\t#root(1) is ignored as it is -ve\n",
+ "E_b2 = V - I_a2*(R_t + R_x) \n",
+ "N_2 = N_1*(E_b2/E_b1)*(I_a1/I_a2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Motor speed = %.2f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor speed = 639.79 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.37 page no : 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "I_a1 = 20.\n",
+ "R_sh = 250.\n",
+ "R_a = 0.5 \t\t\t#shunt field and armature resistance\n",
+ "I_sh1 = V / R_sh\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "\n",
+ "#T (prop.) phi*I_a (prop.) I_sh*I_a\n",
+ "#math.since T_1 = T_2\n",
+ "I_sh2_I_a2 = I_sh1*I_a1 \n",
+ "I_sh2_I_a2 = I_sh1*I_a1 \t\t\t# = 20\n",
+ "\n",
+ "# Calculations\n",
+ "#N (prop.) E_b/I_sh\n",
+ "#E_b1 = V - I_a1*R_a\n",
+ "#Solving further for I_a2 we get I_a2**2 -500 I_a2 + 12800\n",
+ "p = [1, -500, 12800]\n",
+ "ans = roots(p)\n",
+ "I_a2 = ans[1] \t\t\t#higher root is neglected\n",
+ "I_sh2 = I_sh2_I_a2 / I_a2\n",
+ "R_x = (V / I_sh2) - R_sh \t\t\t#resistance to be inserted in shunt field\n",
+ "\n",
+ "# Results\n",
+ "print 'resistance to be inserted = %.4f ohms '%(R_x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance to be inserted = 88.3129 ohms \n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.38 page no : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "N_1 = 1000.\n",
+ "I_L1 = 25.\n",
+ "R_a = 0.2\n",
+ "R_sh = 250. \t\t\t#armature and shunt field resistance\n",
+ "V_brush = 1. \t\t\t#voltage drop due to brushes\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_sh1 = V/R_sh\n",
+ "I_a1 = I_L1 - I_sh1\n",
+ "E_b1 = V- I_a1*R_a - 2 *V_brush\n",
+ "\n",
+ "#when loaded\n",
+ "I_L2 = 50.\n",
+ "I_sh2 = I_sh1 \t\t\t#as flux weakensby armature reaction shunt field current remains same \n",
+ "I_a2 = I_L2 - I_sh2\n",
+ "E_b2 = V- I_a2*R_a - 2 *V_brush\n",
+ "\n",
+ "phi2_by_phi1 = 1- (3./100) \t\t\t#weakens by 3 percent\n",
+ "N_2 = N_1*(E_b2/E_b1)/ phi2_by_phi1 \t\t\t#N (prop.) E_b/phi\n",
+ "print 'New speed = %.3f rpm'%(N_2)\n",
+ "T_1 = E_b1*I_a1/(2*math.pi*N_1/60)\n",
+ "T_2 = E_b2*I_a2/(2*math.pi*N_2/60)\n",
+ "print 'Torque before field weakening = %.4f N-m'%(T_1)\n",
+ "print 'Torque after field weakening = %.4f N-m'%(T_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New speed = 1009.733 rpm\n",
+ "Torque before field weakening = 55.7373 N-m\n",
+ "Torque after field weakening = 110.3831 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.39 page no : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "R_a = 0.5\n",
+ "R_x = 1. \t\t\t#armature resistance and extra resistance\n",
+ "N_FL = 500. \t\t\t#full load speed in r.p.m\n",
+ "I_a_FL = 30.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i) Full load \n",
+ "E_b_FL = V- I_a_FL * R_a\n",
+ "#T (prop.) I_a... T is constant\n",
+ "I_a_dash_FL = I_a_FL \n",
+ "E_b_dash_FL = V- I_a_dash_FL * (R_a+R_x)\n",
+ "#N (prop.) E_b/phi (prop.) E_b\n",
+ "N_dash_FL = N_FL*(E_b_dash_FL/E_b_FL)\n",
+ "print 'i)Speed at full load torque = %.4f r.p.m'%(N_dash_FL)\n",
+ "\n",
+ "#part(ii)\n",
+ "T2_by_T1 = 2\n",
+ "I_a_dash_FL = I_a_FL *(T2_by_T1)\n",
+ "E_b_dash_FL = V- I_a_dash_FL * (R_a+R_x)\n",
+ "N_dash_FL = N_FL*(E_b_dash_FL/E_b_FL)\n",
+ "print 'ii)Speed at double full load torque = %.3f r.p.m'%(N_dash_FL)\n",
+ "\n",
+ "#part(iii) ...stalling\n",
+ "E_b = 0 \t\t\t#as speed is zero in case of stalling torque\n",
+ "I_a_stall = (V-E_b)/(R_a+R_x)\n",
+ "T_FL = E_b_FL * I_a_FL/(2*math.pi*N_FL/60)\n",
+ "T_stall = T_FL *(I_a_stall/ I_a_FL)\n",
+ "print 'iii)Stalling torque = %.3f Nm'%(T_stall)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Speed at full load torque = 426.8293 r.p.m\n",
+ "ii)Speed at double full load torque = 317.073 r.p.m\n",
+ "iii)Stalling torque = 574.231 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.40 page no : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 230.\n",
+ "I_a1 = 30.\n",
+ "R_a = 0.4\n",
+ "R_x = 1.1\t\t\t#armature resistance and extra resistance\n",
+ "N_1 = 500.\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "E_b1 = V - I_a1*R_a\n",
+ "I_a2 = I_a1 \t\t\t#I_a is constant as T , phi are constant\n",
+ "E_b2 = V - I_a2*(R_a+R_x)\n",
+ "N_2 = N_1 *(E_b2/E_b1) \t\t\t#Because N (prop.) E_b/phi (prop.) E_b\n",
+ "print 'i)Speed at full load torque = %.3f r.p.m'%(N_2)\n",
+ "\n",
+ "#part(ii)\n",
+ "T2_by_T1 = 1.5\n",
+ "I_a2 = I_a1 * T2_by_T1\n",
+ "E_b2 = V - I_a2*(R_a+R_x)\n",
+ "N_2 = N_1 *(E_b2/E_b1) \t\t\t#Because N (prop.) E_b/phi (prop.) E_b\n",
+ "print 'ii)Speed at 1.5 times full load torque = %.3f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Speed at full load torque = 424.312 r.p.m\n",
+ "ii)Speed at 1.5 times full load torque = 372.706 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch3.ipynb b/DC_Machines_and_Synchronous_Machines/ch3.ipynb
new file mode 100755
index 00000000..6f59c07f
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch3.ipynb
@@ -0,0 +1,1912 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:851db29572c4b7f5287b09f53c6bb9c3406b6b6577d3bab318bf198d21eaaa81"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Testing of D C Machines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 page no : 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 6.\n",
+ "V = 500.\n",
+ "A = 2. \t\t\t#because of wave wound armature\n",
+ "Z = 1200. \t\t\t#number of armature conductors\n",
+ "phi = 20.*10**-3 \t\t\t#useful flux per pole\n",
+ "Ra = 0.5 \n",
+ "Rsh = 250. \t\t\t#armature and field resistance\n",
+ "Il = 20. \t\t\t#current drawn from supply\n",
+ "mechanical_losses = 900.\n",
+ "Ish = V/Rsh\n",
+ "Ia = Il-Ish\n",
+ "Eb = V-Ia*Ra \t\t\t#because V = Eb+Ia*Ra\n",
+ "N = Eb*60*A/(phi*Pole*Z) \t\t\t#Eb = phi*Pole*N*Z/(60*A)\n",
+ "\n",
+ "# Calculations\n",
+ "P_m = Eb*Ia \t\t\t#Electrical equivalent of mechanical power\n",
+ "omega = 2*math.pi*N/60\n",
+ "Tg = P_m/omega\n",
+ "\n",
+ "P_out = P_m-mechanical_losses\n",
+ "T_sh = P_out/omega \t\t\t#Useful torque\n",
+ "P_in = V*Il\n",
+ "percentage_efficiency = 100*P_out/P_in\n",
+ "\n",
+ "# Results\n",
+ "print 'Speed developed is %.3f r.p.m \\\n",
+ "\\nTorque developed is %.2f N-m \\\n",
+ "\\nUseful torque is %.2f N-m \\\n",
+ "\\nEfficiency is %.2f percent'%(N,Tg,T_sh,percentage_efficiency)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed developed is 409.167 r.p.m \n",
+ "Torque developed is 206.26 N-m \n",
+ "Useful torque is 185.26 N-m \n",
+ "Efficiency is 79.38 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 page no : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#no load\n",
+ "I_noload = 2.5 \t\t\t#No load current\n",
+ "V = 440.\n",
+ "R_a = 1.2\n",
+ "R_sh = 550.\t\t\t#resistance of armature and shunt field windings\n",
+ "no_load_input = V*I_noload\n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V/R_sh\n",
+ "I_a_noload = I_noload-I_sh\n",
+ "no_load_armature_copper = (I_a_noload**2)*R_a\n",
+ "constant_losses = no_load_input-no_load_armature_copper\n",
+ "\n",
+ "#full load\n",
+ "I_fullload = 32\n",
+ "I_a_fullload = I_fullload-I_sh\n",
+ "full_load_armature_coppe = (I_a_fullload**2)*R_a\n",
+ "total_losses = full_load_armature_coppe+constant_losses\n",
+ "full_load_motor_input = V*I_fullload\n",
+ "full_load_motor_output = full_load_motor_input-total_losses\n",
+ "efficiency_at_full_load = full_load_motor_output*100/full_load_motor_input\n",
+ "\n",
+ "# Results\n",
+ "print 'Full load motor output is %.2f W \\\n",
+ "\\nEfficiency of motor at full-load is %.2f percent'%(full_load_motor_output,efficiency_at_full_load)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load motor output is 11815.34 W \n",
+ "Efficiency of motor at full-load is 83.92 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 page no : 11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "#no load\n",
+ "I = 14. \t\t\t#input current\n",
+ "V = 230.\n",
+ "power_output_FL = 45.*10**3\n",
+ "power_input = V*I\n",
+ "I_sh = 2.55 \t\t\t#field current\n",
+ "R_a = 0.032 \t\t\t#armature resistance\n",
+ "I_a = I-I_sh\n",
+ "cu_loss_NL = I_a**2*R_a \t\t\t#no load copper loss\n",
+ "brush_loss = 2*I_a\n",
+ "constant_loss = power_input - cu_loss_NL - brush_loss\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#full load\n",
+ "#I = I_a+ 2.55\n",
+ "#Motor input = Motor output + constant loss + brush loss + cu loss\n",
+ "# solving for I_a I_a**2 - 7125 I_a + 1487700.3 = 0\n",
+ "p = [1, -7125, 1487700.3]\n",
+ "ans = roots(p)\n",
+ "I_a = ans[1] \t\t\t#ignoring second root as its too large\n",
+ "I = I_a+I_sh\n",
+ "print 'Full load current is %.2f A'%(I)\n",
+ "power_input = V*I\n",
+ "eta = 100*(power_output_FL/power_input)\n",
+ "print 'Efficiency at full load is %.2f percent'%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load current is 217.86 A\n",
+ "Efficiency at full load is 89.81 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 page no : 14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "W1 = 9.1 \t\t\t#Tension on tight side\n",
+ "W2 = 0.8 \t\t\t#Tension on slack side\n",
+ "I = 10. \t\t\t#Total_current\n",
+ "V = 110. \t\t\t#Supply voltage\n",
+ "R = 7.5/100 \t\t\t#Radius of p-ulley in metres\n",
+ "N = 1320. \t\t\t#speed in r.p.m\n",
+ "\n",
+ "# Calculations\n",
+ "T_sh = (W1-W2)*9.81*R \t\t\t#9.81 is the accelration due to gravity\n",
+ "omega = (2*math.pi*N/60)\n",
+ "P_out = T_sh*omega\n",
+ "P_in = V*I\n",
+ "\n",
+ "efficiency = 100*P_out/P_in\n",
+ "\n",
+ "# Results\n",
+ "print 'Full load Efficiency is %.2f percent'%(efficiency)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load Efficiency is 76.74 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 page no : 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "I_av = 10.\n",
+ "V_av = (240.+220)/2 \t\t\t#average voltage across load\n",
+ "W_dash = V_av*I_av \t\t\t#Power absorbed\n",
+ "t1 = 25.\n",
+ "t2 = 6.\n",
+ "R_sh = 200.\n",
+ "R_a = 0.3\t\t\t#resistance of field winding and armature \n",
+ "\n",
+ "# Calculations\n",
+ "W = W_dash*t2/(t1-t2) \t\t\t#Stray Losses\n",
+ "I_l = 25 \t\t\t#Input current\n",
+ "I_sh = V/R_sh \t\t\t#current through field winding\n",
+ "\n",
+ "I_a = I_l-I_sh \t\t\t#Armature current\n",
+ "arm_cu_loss = R_a*I_a**2 \t\t\t#Armature copper losses\n",
+ "sh_cu_loss = R_sh*I_sh**2 \t\t\t# Shunt copper loss\n",
+ "\n",
+ "Total_losses = arm_cu_loss + sh_cu_loss + W\n",
+ "Motor_input = V*I_l\n",
+ "Output = Motor_input- Total_losses\n",
+ "efficiency = Output*100/Motor_input\n",
+ "\n",
+ "# Results\n",
+ "print 'Efficiency as motor at 25 A and 250 V is %.2f percent'%(efficiency)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency as motor at 25 A and 250 V is 80.67 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 page no : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "I_a = 37.\n",
+ "I_sh = 0.85\t\t\t#armature and field current for motor\n",
+ "V = 230.\n",
+ "R_a = 0.33 \t\t\t#armature resistance\n",
+ "\n",
+ "I_a_g = 30.\n",
+ "I_sh_g = 0.8\t\t\t#armature and field current for generator\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for motor\n",
+ "arm_cu_loss = I_a**2* R_a \t\t\t#armature copper losses\n",
+ "field_cu_loss = V*I_sh \t\t\t#field copper loss\n",
+ "total_cu_loss = field_cu_loss + arm_cu_loss \t\t\t#total copper loss \n",
+ "\n",
+ "#for generator\n",
+ "arm_cu_loss_g = I_a_g**2* R_a \t\t\t#armature copper losses\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss\n",
+ "total_cu_loss_g = field_cu_loss_g + arm_cu_loss_g \t\t\t#total copper loss\n",
+ "\n",
+ "#for motor-generator set\n",
+ "total_cu_loss_set = total_cu_loss_g + total_cu_loss\n",
+ "P_supply = V*(I_a - I_a_g + I_sh+ I_sh_g ) \t\t\t#power taken from supply\n",
+ "stray_loss = P_supply - (total_cu_loss_g + total_cu_loss) \n",
+ "stray_loss_each = stray_loss/2 \t\t\t#stray loss for each machine\n",
+ "\n",
+ "#efficiency of motor\n",
+ "motor_input = V*(I_a+I_sh)\n",
+ "motor_output = motor_input - (stray_loss_each + total_cu_loss)\n",
+ "eta_m = 100* motor_output/motor_input \t\t\t#efficiency of motor\n",
+ "print 'Efficiency of motor is %.2f percent '%(eta_m)\n",
+ "#efficiency of generator\n",
+ "generator_input = motor_output \t\t\t#output of motor is input of generator\n",
+ "generator_output = generator_input - (stray_loss_each + total_cu_loss_g)\n",
+ "eta_g = 100* generator_output/generator_input \t\t\t#efficiency of generator\n",
+ "print 'Efficiency of generator is %.2f percent '%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 87.62 percent \n",
+ "Efficiency of generator is 88.05 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 page no : 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_1 = 400. \t\t\t#motor input current\n",
+ "V = 200. \t\t\t#voltage across armature\n",
+ "I_2 = 32. \t\t\t#load current\n",
+ "V_2 = 160. \t\t\t#voltage across generator\n",
+ "V_f = 15. \t\t\t#voltage drop across field windings\n",
+ "total_input = (V+V_f)*I_1 \n",
+ "Output = V_2*I_2\n",
+ "total_losses = total_input-Output \t\t\t#total losses in 2 machines\n",
+ "\n",
+ "# Calculations and Results\n",
+ "R_se = V_f/I_1 \t\t\t#series field resistance\n",
+ "R_a = 0.4 \t\t\t# armature field resistance\n",
+ "\n",
+ "total_cu_loss = (R_a + 2*R_se) * I_1**2 + I_2**2*R_a \t\t\t#total copper loss\n",
+ "stray_losses = total_losses - total_cu_loss\n",
+ "stray_losses_each = stray_losses /2 \t\t\t#stray losses for each machine\n",
+ "\n",
+ "#for motor\n",
+ "motor_input = V*I_1\n",
+ "arm_cu_loss = (R_a + R_se)*I_1*I_1 \t\t\t#armature copper loss\n",
+ "total_losses_motor = arm_cu_loss + stray_losses_each \n",
+ "motor_output = motor_input- total_losses_motor\n",
+ "eta_m = 100*motor_output/motor_input \t\t\t#efficiency of motor\n",
+ "print 'Efficiency of motor is %.2f percent '%(eta_m)\n",
+ "#for generator\n",
+ "arm_cu_loss_gen = R_a*I_2**2 \t\t\t#armature copper loss\n",
+ "series_field_cu_loss = V_f*I_1 \t\t\t#series field copper loss\n",
+ "total_losses_gen = arm_cu_loss_gen + series_field_cu_loss + stray_losses_each \n",
+ "generator_input = total_losses_gen+ Output\n",
+ "eta_gen = 100*Output/generator_input \t\t\t#efficiency of generator\n",
+ "print 'Efficiency of generator is %.2f percent'%(eta_gen)\n",
+ "\n",
+ "\n",
+ "#Note : 'Answer dont match because Output-of-generator is taken as 5220 for calculation while its should have been 5120'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 9.71 percent \n",
+ "Efficiency of generator is 37.20 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 page no : 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 500.\n",
+ "Io = 5. \t\t\t#no load current\n",
+ "R_a = 0.5\n",
+ "R_sh = 250.\t\t\t#resistance of armature and field circuits\n",
+ "I = 100. \t\t\t#current at unknown efficiency\n",
+ "\n",
+ "# Calculations\n",
+ "P_in_NL = V*Io \t\t\t#no load input\n",
+ "I_sh = V/R_sh\n",
+ "\n",
+ "Iao = Io-I_sh\n",
+ "arm_cu_loss_no_load = R_a*Iao**2 \t\t\t#No load armature copper loss\n",
+ "constant_losses = P_in_NL- arm_cu_loss_no_load\n",
+ "\n",
+ "I_a = I-I_sh\n",
+ "arm_cu_loss = R_a*I_a**2 \t\t\t#New armature copper loss\n",
+ "\n",
+ "Total_loss = arm_cu_loss + constant_losses\n",
+ "P_in = V*I\n",
+ "efficiency = (P_in-Total_loss)*100/P_in \t\t\t#required efficiency\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print 'Efficiency is %.3f percent when motor takes %.0f A current'%(efficiency,I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency is 85.405 percent when motor takes 100 A current\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 page no : 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 500. \n",
+ "I_NL = 5. \t\t\t#no load current \n",
+ "P_in_NL = V* I_NL \t\t\t#no load input\n",
+ "R_a = 0.22\n",
+ "R_sh = 250. \t\t\t#resistance of armature and shunt field winding\n",
+ "I_sh = V/R_sh\n",
+ "I_a_NL = I_NL-I_sh \t\t\t#armature current no load\n",
+ "arm_cu_loss_NL = R_a*I_a_NL**2 \t\t\t#No-load armature copper loss\n",
+ "constant_loss = P_in_NL - arm_cu_loss_NL\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#at 100 A current\n",
+ "I = 100.\n",
+ "I_a = I - I_sh\n",
+ "arm_cu_loss = R_a*I_a**2 \t\t\t#armature copper loss\n",
+ "total_loss = arm_cu_loss + constant_loss \n",
+ "motor_input = V*I\n",
+ "motor_output = motor_input- total_loss\n",
+ "eta_m = 100*motor_output/motor_input \t\t\t#motor efficiency\n",
+ "print 'Parta)Efficiency of motor when it takes 100 A current and loaded is %.2f percent'%(eta_m)\n",
+ "\n",
+ "#part(b)\n",
+ "E_b_NL = V - I_a_NL*R_a \t\t\t#back emf at no load\n",
+ "\n",
+ "E_b = V- I_a*R_a \t\t\t#back EMF at 100 A current\n",
+ "#Since E_b is proportional to N and using componendo dividendo\n",
+ "delta_speed = 100*((E_b_NL-E_b)/E_b)\n",
+ "print 'Partb)Percentage speed in speed is %.3f percent'%(delta_speed)\n",
+ "\n",
+ "print 'Note that the following were assumptions made'\n",
+ "print 'i) Due to heating %( resistance of shunt field winding will be increased which will reduce the shunt field current.This will decrease the flux which is neglected'\n",
+ "print 'ii) Though the motor speed is changing from no load to given load , the mechanical losses are assumed to be cosnstant'\n",
+ "print 'iiiThe effect of armature reaction aon main pole flux and its effect on iron loss is neglected'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parta)Efficiency of motor when it takes 100 A current and loaded is 90.78 percent\n",
+ "Partb)Percentage speed in speed is 4.368 percent\n",
+ "Note that the following were assumptions made\n",
+ "i) Due to heating %( resistance of shunt field winding will be increased which will reduce the shunt field current.This will decrease the flux which is neglected\n",
+ "ii) Though the motor speed is changing from no load to given load , the mechanical losses are assumed to be cosnstant\n",
+ "iiiThe effect of armature reaction aon main pole flux and its effect on iron loss is neglected\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 page no : 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "motor_output_FL = 15000. \t\t\t#full load motor output\n",
+ "V = 250.\n",
+ "R_sh = 100.\n",
+ "\n",
+ "# Calculations\n",
+ "#at 80 % of full load\n",
+ "motor_output_FL_dash = (80./100)*motor_output_FL \t\t\t#80 percent of full load output\n",
+ "eta = 90./100 \t\t\t#efficiency\n",
+ "motor_input = motor_output_FL_dash/eta\n",
+ "total_losses = motor_input - motor_output_FL_dash \t\t\t#at 80 % of full load\n",
+ "#at maximum efficiency variable losses = constant losses\n",
+ "constant_losses = total_losses/2\n",
+ "variable_losses = constant_losses\n",
+ "I = motor_input/V \t\t\t#line current at 80% load\n",
+ "I_sh = V/ R_sh\n",
+ "I_a = I- I_sh\n",
+ "#math.since armature copper loss = R_a*I_a**2 \n",
+ "R_a = variable_losses/I_a**2\n",
+ "E_b1 = V-I_a*R_a \t\t\t#motor back EMF at 80% of full load\n",
+ "N_1 = 750. \t\t\t# corresponding speed is given as 750 rpm\n",
+ "\n",
+ "#When motor current is 80 A\n",
+ "I = 80.\n",
+ "I_a = I-I_sh\n",
+ "arm_cu_losses = R_a*I_a**2 \t\t\t#armature copper loss\n",
+ "total_losses = arm_cu_losses + constant_losses\n",
+ "motor_input = V*I\n",
+ "motor_output = motor_input- total_losses\n",
+ "eta = 100*motor_output/motor_input \t\t\t#efficiency of motor\n",
+ "E_b2 = V-I_a*R_a \t\t\t#motor back EMF at 80% of full load\n",
+ "N_2 = N_1*(E_b2/E_b1) \t\t\t#because E_b is proportional to N\n",
+ "\n",
+ "# Results\n",
+ "print 'Efficiency of motor is %.2f percent when motor draws 80A current'%(eta)\n",
+ "print 'and Speed is %.2f r.p.m'%(N_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 88.92 percent when motor draws 80A current\n",
+ "and Speed is 728.22 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 page no : 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "R_sh = 166.67\n",
+ "R_a = 0.15 \t \t\t#resistance of shunt field winding and armature\n",
+ "N_0 = 1280. \t\t\t#in rpm\n",
+ "I_L1 = 67. \t\t\t#current drawn on full load\n",
+ "I_sh = V/ R_sh\n",
+ "I_a1 = I_L1 - I_sh\n",
+ "E_b1 = V-I_a1*R_a\n",
+ "\n",
+ "#on no load\n",
+ "I_L0 = 6.5\n",
+ "I_a0 = I_L0 - I_sh\n",
+ "E_b0 = V-I_a0*R_a\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part (i)\n",
+ "#using speed equation N is proportional to E_b\n",
+ "N_1 = N_0*(E_b1/E_b0)\n",
+ "print 'i)Full load speed is %.3f r.p.m'%(N_1)\n",
+ "\n",
+ "#part (ii)\n",
+ "speed_regulation = 100*((N_0-N_1)/N_1)\n",
+ "print 'ii)Speed regulation is %.2f percent '%(speed_regulation)\n",
+ "\n",
+ "#part (iii)\n",
+ "stray_losses = E_b0*I_a0 \t\t\t#mechanical power developed on no load\n",
+ "power_developed_FL = E_b1*I_a1 \n",
+ "shaft_output_FL = power_developed_FL - stray_losses \n",
+ "hp_rating = shaft_output_FL/746 \t\t\t#in horse power\n",
+ "print 'iii)H.P rating of the machine Is %.2f H.P'%(hp_rating)\n",
+ "\n",
+ "#part (iv)\n",
+ "power_input = V*I_L1\n",
+ "eta = 100*(shaft_output_FL/power_input) \t\t\t#efficiency at full load\n",
+ "print 'iv)Efficiency at full load is %.2f percent'%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Full load speed is 1233.396 r.p.m\n",
+ "ii)Speed regulation is 3.78 percent \n",
+ "iii)H.P rating of the machine Is 19.42 H.P\n",
+ "iv)Efficiency at full load is 86.48 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 page no : 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 200.\n",
+ "R_sh = 240.\n",
+ "R_a = 0.1 \t\t\t#resistance of shunt field winding and armature\n",
+ "rotational_loss = 236.\n",
+ "I_L_FL = 9.8 \t\t\t#full load line current\n",
+ "N = 1450.\n",
+ "I_sh = V/R_sh\n",
+ "I_a_FL = I_L_FL - I_sh\n",
+ "E_b = V- I_a_FL * R_a\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "gross_mech_P_dev = E_b*I_a_FL \t\t\t#gross mechanical power developed\n",
+ "mech_P_dev = gross_mech_P_dev - rotational_loss \t\t\t#mechanical power developed\n",
+ "print 'i)Gross mechanical power developed is %.2f W'%(gross_mech_P_dev )\n",
+ "print ' Mechanical power developed is %.2f W'%(mech_P_dev )\n",
+ "\n",
+ "#part(ii)\n",
+ "P_out = mech_P_dev \n",
+ "print 'ii)The power output is %.2f W'%(P_out)\n",
+ "\n",
+ "#part(iii)\n",
+ "T_sh = P_out*60/(2*math.pi*N)\n",
+ "T_L = T_sh\n",
+ "print 'iii)Load torque is %.2f N-m'%(T_L)\n",
+ "\n",
+ "#part(iv)\n",
+ "P_in = V*I_L_FL\n",
+ "eta = 100*P_out/P_in\n",
+ "print 'iv)Efficiency at full load is %.2f percent'%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Gross mechanical power developed is 1785.29 W\n",
+ " Mechanical power developed is 1549.29 W\n",
+ "ii)The power output is 1549.29 W\n",
+ "iii)Load torque is 10.20 N-m\n",
+ "iv)Efficiency at full load is 79.05 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 page no : 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 240.\n",
+ "P_out = 25*735.5 \t\t\t#output power in watts\n",
+ "R_a = 0.14\n",
+ "R_sh = 80. \t \t\t#resistance of armature and shunt field winding\n",
+ "brush_drop = 1. \t\t\t#voltage drop across brush\n",
+ "I_L_FL = 95. \t\t \t#input current at full load \n",
+ "I_sh = V/R_sh\n",
+ "I_a_FL = I_L_FL - I_sh \t\t\t#armature current at full load\n",
+ "\n",
+ "# Calculations and Results\n",
+ "arm_cu_loss_FL = R_a*I_a_FL**2 \t\t\t#full load armature copper loss\n",
+ "field_cu_loss = R_sh*I_sh**2 \t\t\t#field copper loss\n",
+ "print 'i)Armature and field copper losses are %.2f W and %.0f W respectively'%(arm_cu_loss_FL,field_cu_loss)\n",
+ "brush_cu_loss = 2*brush_drop*I_a_FL \t\t\t#brush contact copper loss\n",
+ "print 'ii)Brush contact copper loss is %.0f W'%(brush_cu_loss)\n",
+ "E_b = V-I_a_FL*R_a - 2*brush_drop \t\t\t#back emf\n",
+ "gross_mech_P_dev = E_b*I_a_FL \t\t\t#gross mechanical power developed\n",
+ "IFW_losses = gross_mech_P_dev - P_out \t\t\t#iron friction and windage losses\n",
+ "print 'iii)Core plus mechanical losses = %.1f W'%(IFW_losses+field_cu_loss+arm_cu_loss_FL)\n",
+ "eta = 100*(P_out/(P_out + IFW_losses+ brush_cu_loss+field_cu_loss+arm_cu_loss_FL ))\n",
+ "print 'iv)Efficiency is %.2f percent'%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Armature and field copper losses are 1184.96 W and 720 W respectively\n",
+ "ii)Brush contact copper loss is 184 W\n",
+ "iii)Core plus mechanical losses = 4228.5 W\n",
+ "iv)Efficiency is 80.65 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 page no : 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I = 5. \t\t\t#no load current\n",
+ "V = 500.\n",
+ "R_sh = 250.\n",
+ "R_a = 0.5 \t\t\t#resistance of shunt field winding and armature\n",
+ "motor_input_NL = V*I\n",
+ "I_sh = V/R_sh\n",
+ "I_a = I-I_sh\n",
+ "arm_cu_loss_NL = R_a*I_a**2 \t\t\t#no load armature copper loss\n",
+ "constant_loss = motor_input_NL - arm_cu_loss_NL\n",
+ "I_FL = 50.\n",
+ "I_a_FL = I_FL - I_sh \t\t\t#currents at full load\n",
+ "arm_cu_loss_FL = R_a*I_a_FL**2 \t\t\t#full load armature copper loss\n",
+ "\n",
+ "# Calculations and Results\n",
+ "total_loss = constant_loss + arm_cu_loss_FL \n",
+ "motor_input = V*I_FL\n",
+ "motor_output_FL = motor_input - total_loss\n",
+ "print 'Required output power is %.3f kW'%(motor_output_FL/1000)\n",
+ "eta = 100*(motor_output_FL/motor_input) \t\t\t#full load efficiency\n",
+ "print 'Full load efficiency of motor with 50A current is %.2f percent '%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required output power is 21.352 kW\n",
+ "Full load efficiency of motor with 50A current is 85.41 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15 page no : 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 250.\n",
+ "R_sh = 275.\n",
+ "R_a = 0.8 \t\t\t#resistance of shunt field and amature\n",
+ "I_L0 = 3.91 \t\t\t#load current\n",
+ "I_sh = V/R_sh\n",
+ "I_a0 = I_L0 - I_sh\n",
+ "constant_losses = V*I_L0 -R_a*(I_a0)**2\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#as a generator\n",
+ "P_out = 10*10**3\n",
+ "I_L = P_out/V\n",
+ "I_a = I_L + I_sh \n",
+ "field_cu_loss = R_sh*(I_sh)**2 \t\t\t#field copper loss\n",
+ "arm_cu_loss = R_a*(I_a)**2 \t\t\t#armature copper loss \n",
+ "eta_gen = 100 *(P_out/(P_out+constant_losses + field_cu_loss+ arm_cu_loss)) \t\t\t#efficiency as generator\n",
+ "print 'Efficiency as a generator = %.2f percent'%(eta_gen)\n",
+ "\n",
+ "#as a motor\n",
+ "P_in = 10*10**3 \t\t\t#at V = 250 \n",
+ "I_L = P_in/V\n",
+ "I_a = I_L - I_sh\n",
+ "field_cu_loss = R_sh*(I_sh)**2 \t\t\t#field copper loss\n",
+ "arm_cu_loss = R_a*(I_a)**2 \t\t\t#armature copper loss \n",
+ "eta_m = 100 *((P_in-(constant_losses + field_cu_loss+ arm_cu_loss))/(P_in)) \t\t\t#efficiency as motor\n",
+ "print 'Efficiency as a motor = %.2f percent'%(eta_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency as a generator = 79.77 percent\n",
+ "Efficiency as a motor = 75.80 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16 page no : 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I = 4. \t\t\t#no load current in amperes\n",
+ "V = 500.\n",
+ "motor_input_no_load = I*V \t\t\t#no load motor input\n",
+ "R_a = 0.5\n",
+ "R_sh = 250.\t\t\t#resistance of armature and shunt field resistnace\n",
+ "I_sh = V/R_sh\n",
+ "\n",
+ "I_a = I-I_sh\n",
+ "arm_cu_loss_noload = R_a*I_a**2 \t\t\t#No-load armature copper losses\n",
+ "constant_loss = motor_input_no_load - arm_cu_loss_noload\n",
+ "I_FL = 40.\n",
+ "I_aFL = I_FL- I_a \t\t\t#full load currents\n",
+ "arm_cu_loss_fulload = R_a*I_aFL**2 \t\t\t#Full-load armature copper losses\n",
+ "Total_loss = arm_cu_loss_fulload + constant_loss\n",
+ "\n",
+ "# Calculations and Results\n",
+ "motor_input = V*I_FL\n",
+ "motor_output_fullload = motor_input - Total_loss\n",
+ "print 'Output power at full-load is %.0f W'%(motor_output_fullload) \n",
+ "efficiency = motor_output_fullload*100/motor_input \t\t\t#motor efficiency\n",
+ "print 'Efficiency at full-load is %.1f percent'%(efficiency)\n",
+ "\n",
+ "E_bNL = V-I_a*R_a\n",
+ "E_bFL = V-I_FL*R_a\n",
+ "\n",
+ "#E_b = N*phi\n",
+ "#E_bNL/E_bFL = N_NL/N_FL\n",
+ "#applying rules of componendo and dividendo\n",
+ "#change_in _speed = (N_NL - N_FL)/N_FL = (E_bNL - E_bFL)/E_bFl\n",
+ "\n",
+ "change_in_speed = 100*(E_bNL - E_bFL)/E_bFL\n",
+ "print 'percentage change in speed from no load to full load is %.3f percent'%(change_in_speed)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output power at full-load is 17280 W\n",
+ "Efficiency at full-load is 86.4 percent\n",
+ "percentage change in speed from no load to full load is 3.958 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17 page no : 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 500.\n",
+ "R_a = 0.22\n",
+ "R_sh = 250.\t\t\t#armature resistance and shunt field resistance\n",
+ "I = 5. \t\t\t#no load current\n",
+ "motor_input_NL = V*I \t\t\t#no load motor input\n",
+ "I_sh = V/R_sh\n",
+ "I_a_NL = I- I_sh \t\t\t#no load armature current\n",
+ "arm_cu_loss_NL = R_a*I_a_NL**2 \t\t\t#no load armature copper loss\n",
+ "constant_loss = motor_input_NL - arm_cu_loss_NL \n",
+ "\n",
+ "# Calculations and Results\n",
+ "#When motor draws 100 A current \n",
+ "I = 100\n",
+ "I_a = I - I_sh\n",
+ "arm_cu_loss = R_a* I_a**2 \t\t\t#armature copper loss\n",
+ "total_losses = arm_cu_loss + constant_loss\n",
+ "motor_input = V*I\n",
+ "motor_output = motor_input -total_losses \n",
+ "eta_m = 100*(motor_output/motor_input) \t\t\t#motor efficiency\n",
+ "print 'i)Efficiency of motor at 100 A current is %.2f percent '%(eta_m)\n",
+ "\n",
+ "#part(b)\n",
+ "E_b_NL = V- I_a_NL*R_a \t\t\t#back emf at no load\n",
+ "E_b = V- I_a*R_a \t\t\t#back emf at 100 A \n",
+ "#E_b is proportional to N.. and using componendo dividendo\n",
+ "speed_change = 100*((E_b_NL - E_b)/E_b)\n",
+ "print 'ii)Percentage change in speed = %.3f percent'%(speed_change)\n",
+ "\n",
+ "\n",
+ "print 'Note that the following were assumptions made'\n",
+ "print 'i) Due to heating resistance of shunt field winding will be increased which will reduce the shunt field current.This will decrease the flux which is neglected'\n",
+ "print 'ii) Though the motor speed is changing from no load to given load %( the mechanical losses are assumed to be cosnstant'\n",
+ "print 'iiiThe effect of armature reaction aon main pole flux and its effect on iron loss is neglected'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Efficiency of motor at 100 A current is 90.78 percent \n",
+ "ii)Percentage change in speed = 4.368 percent\n",
+ "Note that the following were assumptions made\n",
+ "i) Due to heating resistance of shunt field winding will be increased which will reduce the shunt field current.This will decrease the flux which is neglected\n",
+ "ii) Though the motor speed is changing from no load to given load %( the mechanical losses are assumed to be cosnstant\n",
+ "iiiThe effect of armature reaction aon main pole flux and its effect on iron loss is neglected\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18 page no : 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 200.\n",
+ "I_L = 40.\n",
+ "\n",
+ "R_sh = 200.\n",
+ "R_a = 0.2 \t\t\t#shunt field winding and armature resistance\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#case(a) : As a generator\n",
+ "P_out_g = V*I_L \t\t\t#output poewr as generator\n",
+ "I_sh = V/R_sh\n",
+ "I_a = I_L + I_sh\n",
+ "E = V + I_a*R_a\n",
+ "P_a_g = E*I_a \t\t\t#power developed in armature\n",
+ "P_cu_g = R_a*I_a**2 + R_sh*I_sh**2 \t\t\t#copper loss as genrator\n",
+ "print 'i)Output as generator is %.f kW'%(P_out_g/1000)\n",
+ "\n",
+ "#case(b) : As a motor\n",
+ "P_in_m = V*I_L \t\t\t#input power as motor\n",
+ "I_sh = V/R_sh\n",
+ "I_a = I_L - I_sh\n",
+ "E_b = V - I_a*R_a\n",
+ "P_a_m = E_b*I_a \t\t\t#power developed in armature\n",
+ "P_cu_m = R_a*I_a**2 + R_sh*I_sh**2\t\t\t#copper loss as motor\n",
+ "print 'ii)Input as motor is %.0f kW'%( P_in_m/1000)\n",
+ "print 'iii)Power developed in Armature:%.4f kW for generator%.4f kW for motor'%(P_a_g/1000,P_a_m/1000)\n",
+ "print 'iv)Copper losses:%.1f W for generator%.1f W for motor'%(P_cu_g,P_cu_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Output as generator is 8 kW\n",
+ "ii)Input as motor is 8 kW\n",
+ "iii)Power developed in Armature:8.5362 kW for generator7.4958 kW for motor\n",
+ "iv)Copper losses:536.2 W for generator504.2 W for motor\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19 page no : 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 219.\n",
+ "I = 10.\n",
+ "dN = 1030. - 970 \t\t\t#given\n",
+ "t_1 = 36. \t\t\t#time with no excitation\n",
+ "t_2 = 9.\t\t\t# time with full excitation and armature supporting an extra load of 10 A at 219 V\n",
+ "t_3 = 15. \t\t\t#time with full exciation\n",
+ "W_dash = V*I \t\t\t#additioanl loss when armature is suddenly connected to loads\n",
+ "W_s = W_dash *(t_2/(t_3-t_2)) \t\t\t#total stray losses\n",
+ "N = 1000. \t\t\t#speed in rpm\n",
+ "\n",
+ "# Calculations\n",
+ "#using W_s = (2*pi/60)**2 * I *N *dN / t_3 where W_s is stray losses\n",
+ "I = W_s*(t_3/dN)*(30/math.pi)**2/N \t\t\t#moment of inertia\n",
+ "W_m = W_s*(t_3/t_1) \t\t\t#mechanical losses\n",
+ "iron_losses = W_s - W_m\n",
+ "\n",
+ "# Results\n",
+ "print 'i)The moment of inertia of armature is %.2f kg-m**2'%(I)\n",
+ "print 'ii)Iron loss = %.2f W'%(iron_losses)\n",
+ "print 'iii)Mechanical losses at 1000 rpm mean speed is %.2f W'%(W_m)\n",
+ "\n",
+ "print 'Noteworthy points:1)When armature is slowing down and there is no excitation,then kinetic energy is used to overcome mechanical losses only.Iron losses are absent as excitation is absent2)When excitation is given%( kinetic energy is used to overcome both mechanical as well as iron losses.Total called stray losses.3)If moment of inertia is in kg-m**2,then loss of energy is in watts'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)The moment of inertia of armature is 74.89 kg-m**2\n",
+ "ii)Iron loss = 1916.25 W\n",
+ "iii)Mechanical losses at 1000 rpm mean speed is 1368.75 W\n",
+ "Noteworthy points:1)When armature is slowing down and there is no excitation,then kinetic energy is used to overcome mechanical losses only.Iron losses are absent as excitation is absent2)When excitation is given%( kinetic energy is used to overcome both mechanical as well as iron losses.Total called stray losses.3)If moment of inertia is in kg-m**2,then loss of energy is in watts\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20 page no : 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 225.\n",
+ "I = 10.\n",
+ "dN = 1030. - 970 \t\t\t#given\n",
+ "t_1 = 40. \t\t\t#time with no excitation\n",
+ "t_2 = 9.\t\t\t# time with full excitation and armature supporting an extra load of 10 A at 219 V\n",
+ "t_3 = 20. \t\t\t#time with full exciation\n",
+ "\n",
+ "# Calculations\n",
+ "W_dash = V*I \t\t\t#additional loss\n",
+ "W_s = W_dash *(t_2/(t_3-t_2)) \t\t\t#total stray losses\n",
+ "N = 1000\t\t\t#Speed in rpm\n",
+ "\t\t\t#using W_s = (2*pi/60)**2 * I *N *dN / t_3 where W_s is stray losses\n",
+ "I = W_s*(t_3/dN)*(30/math.pi)**2/N \t\t\t#moment of inertia\n",
+ "W_m = W_s*(t_3/t_1) \t\t\t#mechanical losses\n",
+ "iron_losses = W_s - W_m\n",
+ "\n",
+ "# Results\n",
+ "print 'i)The moment of inertia of armature is %.2f kg-m**2'%(I)\n",
+ "print 'ii)Iron loss = %.2f W'%(iron_losses)\n",
+ "print 'iii)Mechanical losses at 1000 rpm mean speed is %.2f W'%(W_m)\n",
+ "\n",
+ "print 'Noteworthy points:1)When there is no excitation and armature is slowed down , its K.E. is used to overcome mechanical mechanical losses only math.since there will be no iron loss as there is no flux.2)When there is excitation provided then K.E. is used to supply mechanical as well as iron losses together called stray losses '\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)The moment of inertia of armature is 55.96 kg-m**2\n",
+ "ii)Iron loss = 920.45 W\n",
+ "iii)Mechanical losses at 1000 rpm mean speed is 920.45 W\n",
+ "Noteworthy points:1)When there is no excitation and armature is slowed down , its K.E. is used to overcome mechanical mechanical losses only math.since there will be no iron loss as there is no flux.2)When there is excitation provided then K.E. is used to supply mechanical as well as iron losses together called stray losses \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21 page no : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_avg = (220.+190)/2 \t\t\t#average voltage across load\n",
+ "I_avg = 12.\n",
+ "R_a = 0.5\n",
+ "R_sh = 250.\n",
+ "W_dash = V_avg*I_avg \t\t\t#power absorbed \n",
+ "t_1 = 30.\n",
+ "t_2 = 5.\n",
+ "W = W_dash*(t_2/(t_1-t_2))\n",
+ "V = 250.\n",
+ "I = 22. \t\t\t#input current\n",
+ "\n",
+ "# Calculations\n",
+ "I_sh = V/R_sh\n",
+ "I_a = I - I_sh\n",
+ "arm_cu_loss = R_a*I_a**2 \t\t\t#armature copper loss\n",
+ "shunt_field_cu_loss = V*I_sh \t\t\t#shunt field copper loss\n",
+ "total_losses = shunt_field_cu_loss + arm_cu_loss + W\n",
+ "\n",
+ "machine_input = V*I\n",
+ "machine_output = machine_input - total_losses \n",
+ "eta_m = 100*(machine_output /machine_input ) \t\t\t#efficiency when running as motor\n",
+ "\n",
+ "# Results\n",
+ "print 'Efficiency of machine when opeating as motor taking current of 22A on 250V supply is %.1f percent'%(eta_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of machine when opeating as motor taking current of 22A on 250V supply is 82.5 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22 page no : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_avg = 10.\n",
+ "V_avg = (220.+190)/2 \t\t\t#average voltage across load\n",
+ "W_dash = V_avg*I_avg \t\t\t#power absorbed\n",
+ "t_1 = 30.\n",
+ "t_2 = 20.\n",
+ "\n",
+ "# Calculations\n",
+ "W = W_dash * (t_2/(t_1-t_2)) \t\t\t#stray losses\n",
+ "\n",
+ "# Results\n",
+ "print 'Stray losses of motor is %.1f kW'%(W/1000)\n",
+ "print 'Answers mismatch because V_average is 205 volts but it is taken as 220 volts in Power absorbed calculation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stray losses of motor is 4.1 kW\n",
+ "Answers mismatch because V_average is 205 volts but it is taken as 220 volts in Power absorbed calculation\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23 page no : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_a_g = 330.\n",
+ "I_a_m = 380.\n",
+ "R_a = 0.02 \t\t\t#armature resistance\n",
+ "V = 250.\n",
+ "I = 50.\n",
+ "\n",
+ "\n",
+ "arm_cu_loss_g = R_a*I_a_g**2\t\t\t#armature copper loss for generator\n",
+ "arm_cu_loss_m = R_a*I_a_m**2\t\t\t#armature copper loss for motor\n",
+ "power_drawn = V*I\n",
+ "stray_losses = power_drawn - (arm_cu_loss_m + arm_cu_loss_g)\n",
+ "stray_losses_each = stray_losses/2 \t\t\t#stray losses for each machine\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for motor\n",
+ "I_sh_m = 4.2 \t\t\t#Shunt current in case of motor\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t#field copper loss in case of motor\n",
+ "total_loss = field_cu_loss_m + stray_losses_each + arm_cu_loss_m\n",
+ "motor_input = V*(I_a_m+I_sh_m) \n",
+ "motor_output = motor_input - total_loss\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n",
+ "\n",
+ "#for generator\n",
+ "I_sh_g = 5 \t\t\t#Shunt current in case of generator\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss in case of generator\n",
+ "total_loss = field_cu_loss_g + stray_losses_each + arm_cu_loss_g\n",
+ "generator_output = V*I_a_g\n",
+ "generator_input = generator_output + total_loss\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency \n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 92.0302 percent\n",
+ "Efficiency of generator is 92.0297 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R_a = 0.02 \t\t\t#armature resistance\n",
+ "V = 250. \t\t\t#line voltage\n",
+ "I = 50. \t\t\t#current taken from supply \n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for generator\n",
+ "I_a_g = 330.\n",
+ "I_sh_g = 5. \t\t\t#armature current and current through shunt field \n",
+ "arm_cu_loss_g = R_a*I_a_g**2\t\t\t#armature copper loss for generator\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss for generator\n",
+ "\n",
+ "#for motor\n",
+ "I_a_m = 380\n",
+ "I_sh_m = 4.2 \t\t\t#armature current and current through shunt field\n",
+ "arm_cu_loss_m = R_a*I_a_m**2\t\t\t#armature copper loss for motor\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t#field copper loss for motor\n",
+ "power_drawn = V*I\n",
+ "IFW_losses = power_drawn - (arm_cu_loss_g + arm_cu_loss_m) \t\t\t#Iron friction and windage losses\n",
+ "IFW_losses_each = IFW_losses /2 \t\t\t# Iron friction and windage losses for each machine\n",
+ "\n",
+ "#for generator\n",
+ "total_loss_g = field_cu_loss_g + arm_cu_loss_g + IFW_losses_each\n",
+ "generator_output = V*I_a_g\n",
+ "generator_input = generator_output + total_loss_g \n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency \n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n",
+ "\n",
+ "#for motor\n",
+ "total_loss_m = field_cu_loss_m + IFW_losses_each + arm_cu_loss_m\n",
+ "motor_input = V*(I_a_m+I_sh_m)\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of generator is 92.0297 percent\n",
+ "Efficiency of motor is 92.0302 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.25 page no : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "I = 40.\n",
+ "I_a_g = 160. \n",
+ "I_a_m = 200. \t\t\t#armature currents for generator and motor\n",
+ "I_sh_g = 7. \n",
+ "I_sh_m = 6. \t\t\t#current through shunt field for generator and motor\n",
+ "R_a = 0.015 \t\t\t#armature resistance\n",
+ "arm_cu_loss_g = R_a*I_a_g**2 \t\t\t#armature copper loss for motor\n",
+ "arm_cu_loss_m = R_a*I_a_m**2 \t\t\t#armature copper loss for motor\n",
+ "power_drawn = V*I\n",
+ "IFW_losses = power_drawn - (arm_cu_loss_g + arm_cu_loss_m) \t\t\t#Iron friction and windage losses\n",
+ "IFW_losses_each = IFW_losses /2 \t\t\t# Iron friction and windage losses for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for motor\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t#field copper loss for motor\n",
+ "total_loss_m = field_cu_loss_m + IFW_losses_each + arm_cu_loss_m \t\t\t#total losses in motor\n",
+ "motor_input = V * I_a_m\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input) \t\t\t#motor efficiency\n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n",
+ "\n",
+ "#for generator\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss for generator\n",
+ "total_loss_g = field_cu_loss_g + arm_cu_loss_g + IFW_losses_each \t\t\t#total losses in generator\n",
+ "generator_output = V*I_a_g\n",
+ "generator_input = generator_output + total_loss_g\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency\n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 86.7545 percent\n",
+ "Efficiency of generator is 85.7867 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.26 page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R_a = 0.2 \t\t\t#armature resistance \n",
+ "V = 240.\n",
+ "I = 16.\n",
+ "I_a_g = 60. \n",
+ "I_a_m = 71. \t\t\t#armature currents for generator and motor\n",
+ "I_sh_g = 3. \n",
+ "I_sh_m = 2. \t\t\t#field current for generator and motor \n",
+ "\n",
+ "\n",
+ "#for generator\n",
+ "arm_cu_loss_g = R_a*I_a_g**2\t\t\t#armature copper loss for generator\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss for generator\n",
+ "\n",
+ "#for motor\n",
+ "arm_cu_loss_m = R_a*I_a_m**2\t\t\t#armature copper loss for motor\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t#field copper loss for motor\n",
+ "power_drawn = V*I\n",
+ "field_loss_total_g_m = field_cu_loss_m + field_cu_loss_g\n",
+ "arm_cu_loss_total_g_m = arm_cu_loss_m + arm_cu_loss_g\n",
+ "IFW_losses = power_drawn - (arm_cu_loss_total_g_m + field_loss_total_g_m) \t\t\t#Iron friction and windage losses\n",
+ "IFW_losses_each = IFW_losses /2 \t\t\t# Iron friction and windage losses for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for generator\n",
+ "total_loss_g = field_cu_loss_g + arm_cu_loss_g + IFW_losses_each \t\t\t#total loss in generator\n",
+ "generator_output = V*I_a_g\n",
+ "generator_input = generator_output + total_loss_g\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency \n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n",
+ "\n",
+ "#for motor\n",
+ "total_loss_m = field_cu_loss_m + IFW_losses_each + arm_cu_loss_m \t\t\t#total loss in motor\n",
+ "motor_input = V*(I_a_m+I_sh_m)\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of generator is 88.3658 percent\n",
+ "Efficiency of motor is 88.9035 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.27 page no : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R_a = 0.015\n",
+ "V = 250. \t\t\t#line voltage\n",
+ "I = 45. \t\t\t#line current\n",
+ "I_a_m = 385.\n",
+ "I_sh_m = 4. \t\t\t#armature and field currents for motor\n",
+ "I_a_g = 340.\n",
+ "I_sh_g = 5. \t\t\t#armature and field currents for generator\n",
+ "arm_cu_loss_m = R_a*I_a_m**2 \t\t\t#armature copper loss for motor\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t#field copper loss for motor\n",
+ "\n",
+ "arm_cu_loss_g = R_a*I_a_g**2 \t\t\t#armature copper loss for generator\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss for motor\n",
+ "\n",
+ "total_cu_loss = field_cu_loss_g + arm_cu_loss_g + field_cu_loss_m + arm_cu_loss_m \t\t\t#total copper loss for both machines\n",
+ "P_aux = V*I \t\t\t#power taken from auxillary supply\n",
+ "stray_loss = P_aux - total_cu_loss\n",
+ "stray_loss_each = stray_loss/2 \t\t\t#stray loss for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "total_loss_g = stray_loss_each + arm_cu_loss_g + field_cu_loss_g \t\t\t#total losses in generator\n",
+ "generator_output = V* I_a_g\n",
+ "eta_g = 100*(generator_output/(generator_output + total_loss_g))\t\t\t#generator efficiency\n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n",
+ "\n",
+ "total_loss_m = stray_loss_each + arm_cu_loss_m + field_cu_loss_m\t\t\t#total losses in motor\n",
+ "motor_input = V*(I_a_m+I_sh_m)\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of generator is 93.9171 percent\n",
+ "Efficiency of motor is 94.0929 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.28 page no : 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 500.\n",
+ "P = 1000.*10**3\n",
+ "I = 30.\n",
+ "I_a_m = 200. + 30 \n",
+ "I_a_g = 200. \t\t\t#armature current for motor and generator\n",
+ "I_sh_m = 1.8\n",
+ "I_sh_g = 3.5 \t\t\t#field current for motor and generator\n",
+ "brush_drop = 230.\n",
+ "R_a = 0.075 \t\t\t#armature resimath.tance\n",
+ "\n",
+ "# Calculations\n",
+ "arm_cu_loss_m = R_a*I_a_m**2 + 2*brush_drop \t\t\t#motor armature copper loss\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t# motor field copper loss \n",
+ "\n",
+ "arm_cu_loss_g = R_a*I_a_g**2 + 2*brush_drop \t\t\t#generator armature copper loss\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss generator\n",
+ "\n",
+ "total_cu_loss = field_cu_loss_g + arm_cu_loss_g + field_cu_loss_m + arm_cu_loss_m \t\t\t#total copper loss for both machines\n",
+ "P_aux = V*I \t\t\t#power taken from auxillary supply\n",
+ "stray_loss = P_aux - total_cu_loss \n",
+ "stray_loss_each = stray_loss/2 \t\t\t#stray loss for each machine\n",
+ "\n",
+ "total_loss_g = stray_loss_each + arm_cu_loss_g + field_cu_loss_g \t\t\t#total loss in generator\n",
+ "generator_output = V* I_a_g\n",
+ "eta_g = 100*(generator_output/(generator_output + total_loss_g))\t\t\t#generator efficiency\n",
+ "\n",
+ "# Results\n",
+ "print 'Efficiency of generator is %.0f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of generator is 93 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.29 page no : 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 220.\n",
+ "I = 10.\n",
+ "R_a = 0.05 \t \t\t#artmature resistance\n",
+ "I_a_m = 73. \n",
+ "I_sh_m = 2. \t \t\t#armature and field current for motor\n",
+ "I_a_g = 67.5\n",
+ "I_sh_g = 2.5\t\t \t#armature and field current for generator\n",
+ "\n",
+ "arm_cu_loss_m = R_a*I_a_m**2 \t\t\t#motor armature copper loss\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t# motor field copper loss \n",
+ "\n",
+ "arm_cu_loss_g = R_a*I_a_g**2 \t\t\t#generator armature copper loss\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss generator\n",
+ "\n",
+ "total_cu_loss = field_cu_loss_g + arm_cu_loss_g + field_cu_loss_m + arm_cu_loss_m \t\t\t#total copper loss for both machines\n",
+ "power_input = V*I\n",
+ "stray_loss = power_input - total_cu_loss \n",
+ "stray_loss_each = stray_loss/2 \t\t\t#stray loss for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#motor efficiency\n",
+ "total_loss_m = field_cu_loss_m + stray_loss_each + arm_cu_loss_m \t\t\t#total motor losses\n",
+ "motor_input = V*(I_a_m + I_sh_m )\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n",
+ "\n",
+ "#generator efficiency\n",
+ "total_loss_g = field_cu_loss_g + stray_loss_each + arm_cu_loss_g \t\t\t#total generator losses\n",
+ "generator_output = V*I_a_g\n",
+ "generator_input = generator_output + total_loss_g\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 93.5496 percent\n",
+ "Efficiency of generator is 92.8956 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30 page no : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 400.\n",
+ "I = 50.\n",
+ "I_a_g = 250. \n",
+ "I_a_m = 300. \t\t\t#armature current for generator and motor\n",
+ "I_sh_g = 2.5 \n",
+ "I_sh_m = 2.4 \t\t\t#field current for generator and motor\n",
+ "R_a = 0.1 \t\t\t#armature resistance\n",
+ "\n",
+ "arm_cu_loss_g = R_a*I_a_g**2 \t\t\t#armature copper loss for generator\n",
+ "arm_cu_loss_m = R_a*I_a_m**2 \t\t\t#armature copper loss for motor\n",
+ "power_drawn = V*I\n",
+ "IFW_losses = power_drawn - (arm_cu_loss_g + arm_cu_loss_m) \t\t\t#Iron friction and windage losses\n",
+ "IFW_losses_each = IFW_losses /2 \t\t\t# Iron friction and windage losses for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#for motor\n",
+ "field_cu_loss_m = V*I_sh_m \t\t\t#field copper loss for motor\n",
+ "total_loss_m = field_cu_loss_m + IFW_losses_each + arm_cu_loss_m\n",
+ "motor_input = V * I_a_m\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input) \t\t\t#motor efficiency\n",
+ "print 'Efficiency of motor is %.2f percent'%(eta_m)\n",
+ "\n",
+ "#for generator\n",
+ "field_cu_loss_g = V*I_sh_g \t\t\t#field copper loss for generator\n",
+ "total_loss_g = field_cu_loss_g + arm_cu_loss_g + IFW_losses_each\n",
+ "generator_output = V*I_a_g\n",
+ "generator_input = generator_output + total_loss_g\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency\n",
+ "print 'Efficiency of generator is %.2f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 89.72 percent\n",
+ "Efficiency of generator is 91.22 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.31 page no : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_1 = 56. \t\t\t#motor input current\n",
+ "V = 590. \t\t\t#voltage across armature\n",
+ "I_2 = 44. \t\t\t# load current\n",
+ "V_2 = 400. \t\t\t# voltage across generator\n",
+ "V_field = 40. \t\t\t#voltage drop across field winding\n",
+ "R_a = 0.3\n",
+ "R_se = 0.7142 \t\t\t#armature and series field resistance for each machine\n",
+ "total_input = (V+V_field)*I_1\n",
+ "output = V_2*I_2\n",
+ "total_loss_g_m = total_input - output \t\t\t#total losses of 2 machines\n",
+ "R_se = V_field/I_1 \t\t\t#series field resistance for both windings\n",
+ "total_cu_loss = (R_a+ 2*R_se)*I_1**2 + R_a*I_2**2 \t\t\t#total copper loss\n",
+ "stray_loss = total_loss_g_m - total_cu_loss\n",
+ "stray_loss_each = stray_loss/2 \t\t\t#stray loss for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "# for motor\n",
+ "motor_input = V*I_1\n",
+ "arm_cu_loss_m = (R_a+ R_se)*I_1**2 \t\t\t#armature coper losses of motor\n",
+ "total_loss_m = arm_cu_loss_m + stray_loss_each\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n",
+ "\n",
+ "# for generator\n",
+ "arm_cu_loss_g = R_a*I_2**2 \t\t\t#armature coper losses of generator\n",
+ "series_field_cu_loss_g = V_field*I_1 \t\t\t#series field copper loss\n",
+ "total_loss_g = arm_cu_loss_g + series_field_cu_loss_g + stray_loss_each\n",
+ "generator_output = V_2*I_2\n",
+ "generator_input = generator_output + total_loss_g\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency \n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 72.6998 percent\n",
+ "Efficiency of generator is 67.0221 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.32 page no : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_1 = 56. \t\t\t#motor input current\n",
+ "V = 590. \t\t\t#voltage across armature\n",
+ "I_2 = 44. \t\t\t# load current\n",
+ "V_2 = 400. \t\t\t# voltage across generator\n",
+ "V_field = 40. \t\t\t#voltage drop across field winding\n",
+ "R_a = 0.3\n",
+ "R_se = 0.7142 \t\t\t#armature and series field resismath.tane for each machine\n",
+ "\n",
+ "total_input = (V+V_field)*I_1\n",
+ "output = V_2*I_2\n",
+ "total_loss_g_m = total_input - output \t\t\t#total losses of 2 machines\n",
+ "R_se = V_field/I_1 \t\t\t#series field resistance for both windings\n",
+ "total_cu_loss = (R_a+ 2*R_se)*I_1**2 + R_a*I_2**2 \t\t\t#total copper loss\n",
+ "stray_loss = total_loss_g_m - total_cu_loss\n",
+ "stray_loss_each = stray_loss/2 \t\t\t#stray loss for each machine\n",
+ "\n",
+ "# Calculations and Results\n",
+ "# for motor\n",
+ "motor_input = V*I_1\n",
+ "arm_cu_loss_m = (R_a+ R_se)*I_1**2 \t\t\t#armature coper losses of motor\n",
+ "total_loss_m = arm_cu_loss_m + stray_loss_each\n",
+ "motor_output = motor_input - total_loss_m\n",
+ "eta_m = 100*(motor_output/motor_input)\t\t\t#motor efficiency \n",
+ "print 'Efficiency of motor is %.4f percent'%(eta_m)\n",
+ "\n",
+ "# for generator\n",
+ "arm_cu_loss_g = R_a*I_2**2 \t\t\t#armature coper losses of generator\n",
+ "series_field_cu_loss_g = V_field*I_1 \t\t\t#series field copper loss\n",
+ "total_loss_g = arm_cu_loss_g + series_field_cu_loss_g + stray_loss_each\n",
+ "generator_output = V_2*I_2\n",
+ "generator_input = generator_output + total_loss_g\n",
+ "eta_g = 100*(generator_output/generator_input)\t\t\t#generator efficiency \n",
+ "print 'Efficiency of generator is %.4f percent'%(eta_g)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of motor is 72.6998 percent\n",
+ "Efficiency of generator is 67.0221 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch4.ipynb b/DC_Machines_and_Synchronous_Machines/ch4.ipynb
new file mode 100755
index 00000000..7e4b687b
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch4.ipynb
@@ -0,0 +1,1114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e5bf1101b5ca7d663f8c7db6ba5353cd5daf17690d3f4785e774f0306b01e83e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Synchronous Machines : Alternators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 page no : 16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "Slots = 24.\n",
+ "Phase = 3. \t\t\t#number of phases\n",
+ "\n",
+ "# Calculations\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = Slots/Pole/Phase \t\t\t#slots per pole per phase\n",
+ "beeta = 180/n \t\t\t#Slot angle\n",
+ "\n",
+ "# results\n",
+ "print \"Slot angle : %.f degrees\"%beeta"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slot angle : 30 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 page no : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Slots = 120.\n",
+ "Pole = 8.\n",
+ "Phase = 3. \t\t\t#number of phases\n",
+ "\n",
+ "# Calculations\n",
+ "n = Slots/Pole \t\t\t#Slots per Pole\n",
+ "m = Slots/Pole/Phase \t\t\t#Slots per Pole per Phase\n",
+ "beeta = 180/n \t\t\t#Slot angle in degree\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#Distribution Factor\n",
+ "\n",
+ "# Results\n",
+ "print 'Distribution Factor:K_d = %.3f'%(K_d)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distribution Factor:K_d = 0.957\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 page no : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Slots = 36.\n",
+ "Pole = 4.\n",
+ "Phase = 3. \t\t\t#number of phases\n",
+ "n = Slots/Pole \t\t\t#Slots per pole\n",
+ "beeta = 180/n \t\t\t#Slot angle in degrees\n",
+ "\n",
+ "# Calculations\n",
+ "#coil is shorted by 1 slot i.e. by beeta degrees to full pitch dismath.tance\n",
+ "alpha = beeta \t\t\t#angle of short pitch\n",
+ "K_c = math.cos(math.radians(alpha/2)) \t\t\t#Coil span Factor\n",
+ "\n",
+ "# Results\n",
+ "print 'Coil Span Factor:K_c = %.4f'%(K_c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coil Span Factor:K_c = 0.9848\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 page no : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "N_s = 250. \t\t\t#Synchronous speed in r.p.m\n",
+ "f = 50. \t\t\t#Frequency of generated e.m.f in hertz\n",
+ "Slots = 216.\n",
+ "phi = 30.*10**-3 \t\t\t#flux per pole in weber\n",
+ "\n",
+ "Pole = 120*f/N_s\n",
+ "n = Slots/Pole \t\t\t#Slots per Pole\n",
+ "m = n/3 \t\t\t#Slots per Pole per Phase\n",
+ "beeta = 180/n \t\t\t#Slot angle in degree\n",
+ "\n",
+ "# Calculations\n",
+ "K_d = math.sin(math.radians(m*beeta/2))/(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "K_c = 1 \t\t\t#Coil Span Factor for full pitch coils = 1\n",
+ "\n",
+ "Z = Slots*5 \t\t\t#Z is total no of conductors\n",
+ "Z_ph = Z/3 \t\t\t#Conductors Per Phase\n",
+ "T_ph = Z_ph/2 \t\t\t#Turns per phase\n",
+ "E_ph = 4.44*K_c*K_d*f*phi*T_ph \t\t\t#induced emf\n",
+ "E_line = E_ph*math.sqrt(3)\n",
+ "\n",
+ "# Results\n",
+ "print 'Induced e.m.f across the Terminals is %.2f V'%(E_line)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced e.m.f across the Terminals is 1992.90 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 page no : 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 16.\n",
+ "N_s = 375. \t\t\t#synchronous speed in rpm\n",
+ "Slots = 144.\n",
+ "E_line = 2.657*10**3 \t\t\t#line value of emf across terminals\n",
+ "f = Pole*N_s/120 \t\t\t#frequency\n",
+ "\n",
+ "# Calculations\n",
+ "K_c = 1 \t\t\t#assuming full pitch winding Coil span Factor = 1\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "\n",
+ "beeta = 180/n\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#Distribution Fcator\n",
+ "conductors_per_slot = 10\n",
+ "Z = Slots*conductors_per_slot \t\t\t#total conductors\n",
+ "\n",
+ "Z_ph = Z/3 \t\t\t#number of conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#no of turns per phase\n",
+ "E_ph = E_line/math.sqrt(3) \t\t\t#phase value of emf across terminals\n",
+ "\n",
+ "phi = E_ph/(4.44*K_c*K_d*f*T_ph) \t\t\t#E_ph = 4.44*K_c*K_d*f*phi*T_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Frequency of Induced e.m.f is %.0fHz \\nFlux per Pole is %.0f mWb'%(f,phi*1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of Induced e.m.f is 50Hz \n",
+ "Flux per Pole is 30 mWb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 page no : 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 0.25 \t\t\t#Diameter in metre\n",
+ "l = 0.3 \t\t\t#Length in metre\n",
+ "Pole = 4.\n",
+ "A1 = math.pi*d*l/Pole \t\t\t#Area of each fundamental pole\n",
+ "f = 50. \t\t\t#frequency in hertz\n",
+ "B_m1 = 0.15 \n",
+ "B_m3 = 0.03\n",
+ "B_m5 = 0.02 \t\t\t#Amplitude of 1st 3rd and 5th harmonics\n",
+ "phi_1 = (2/math.pi)*B_m1*A1 \t\t\t#average value of fundamental flux per pole in weber\n",
+ "\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#PART A\n",
+ "E_c1 = 1.11*2*f*phi_1 \t\t\t#R.M.S value of fundamental frequency e.m.f generated in math.single conductor\n",
+ "Coil_span = (13./15)*180 \t\t\t#math.since winding coil span is 13/15 of pole pitch\n",
+ "alpha = 180-Coil_span\n",
+ "\n",
+ "#Pitch factor for 1st 3rd and 5th harmonic\n",
+ "K_c1 = math.cos(math.radians(alpha/2))\n",
+ "K_c3 = math.cos(math.radians(3*alpha/2))\n",
+ "K_c5 = math.cos(math.radians(5*alpha/2))\n",
+ "\n",
+ "#using E_cx = E_c1 * (B_mx/B_m1)\n",
+ "E_c3 = E_c1 * (B_m3/B_m1)\n",
+ "E_c5 = E_c1 * (B_m5/B_m1)\n",
+ "\n",
+ "E_t1 = K_c1 * (2*E_c1) \t\t\t#R.M.S Vaue of fundamental frequency EMF generated in 1 turn (in volts)\n",
+ "E_t3 = K_c3 * 2*E_c3\n",
+ "E_t5 = K_c5 * 2*E_c5\n",
+ "E_t = math.sqrt(E_t1**2 +E_t3**2 +E_t5**2)\n",
+ "V = 10*E_t \t\t\t#(number of turns per coil )* (Total e.m.f per turn)\n",
+ "print 'Voltage generated per coil is %.1f V'%(V)\n",
+ "\n",
+ "# PART B\n",
+ "#E_1ph = 4.44*K_c1*K_d1*phi_1*f*T_ph\n",
+ "T_ph = 200. \t\t\t#T_ph = (60 coils * 10 turns per coil)/3\n",
+ "\n",
+ "Total_Conductors = 1200. \t\t\t# 60 coils * 10 turns per coil * 2\n",
+ "Conductors_per_Slot = 20. \t\t\t#2 conductors per turn * 10 turns per slot\n",
+ "Slots = Total_Conductors/Conductors_per_Slot\n",
+ "\n",
+ "n = Slots/Pole\n",
+ "m = n/3\n",
+ "beeta = 180/n \t\t\t#Slot angle in degree\n",
+ "K_d1 = math.sin(math.radians(m*1*beeta/2)) /(m*math.sin(math.radians(1*beeta/2)))\n",
+ "K_d3 = math.sin(math.radians(m*3*beeta/2)) /(m*math.sin(math.radians(3*beeta/2)))\n",
+ "K_d5 = math.sin(math.radians(m*5*beeta/2)) /(m*math.sin(math.radians(5*beeta/2)))\n",
+ "\n",
+ "E_1ph = 4.44 * K_c1 * K_d1*phi_1 * f * T_ph\n",
+ "# using E_xph = E_1ph* (B_mx*K_cx*K_dx)/(B_m1*K_c1*K_d1)\n",
+ "E_3ph = E_1ph* (B_m3*K_c3*K_d3)/(B_m1*K_c1*K_d1)\n",
+ "E_5ph = E_1ph* (B_m5*K_c5*K_d5)/(B_m1*K_c1*K_d1)\n",
+ "E_ph = math.sqrt( E_1ph**2 + E_3ph**2 + E_5ph**2 ) \t\t\t#voltage generated per phase\n",
+ "print 'Voltage generated per phase is %.f V'%(E_ph)\n",
+ "\n",
+ "#PART c\n",
+ "E_line = math.sqrt(3) * math.sqrt( E_1ph**2 + E_5ph**2 ) \t\t\t#terminal voltage\n",
+ "print 'Terminal Voltage is %.1f V '%(E_line)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage generated per coil is 12.4 V\n",
+ "Voltage generated per phase is 235 V\n",
+ "Terminal Voltage is 404.8 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 page no : 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ns = 250. \t\t\t#Synchronous speed in rpm\n",
+ "f = 50.\n",
+ "Slots = 288.\n",
+ "E_line = 6600.\n",
+ "Pole = 120*f/Ns \n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "conductors_per_slot = 32 \t\t\t#16 conductors per coil-side *2 coil-sides per slot\n",
+ "\n",
+ "# Calculations\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "alpha = 2*beeta\t\t\t# angle of short pitch\n",
+ "K_c = math.cos(math.radians(alpha/2)) \t\t\t#coil span factor\n",
+ "Z = Slots*conductors_per_slot \t\t\t#total conductors\n",
+ "Z_ph = Z/3 \t\t\t#Conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "\n",
+ "E_ph = E_line/math.sqrt(3)\n",
+ "phi = E_ph/(4.44*K_c*K_d*f*T_ph) \t\t\t#Because E_ph = 4.44 *K_c *K_d *phi *f *T_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Flux per pole is %.0f mWb '%(phi*1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flux per pole is 12 mWb \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8 page no : 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ns = 1500. \t\t\t#synchronous speed in rpm\n",
+ "Pole = 4.\n",
+ "Slots = 24.\n",
+ "conductor_per_slot = 8.\n",
+ "phi = 0.05 \t\t\t#flux per pole in weber\n",
+ "f = Pole*Ns/120 \t\t\t#frequenccy\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n \t\t\t# as number of phases is 1\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "\n",
+ "# Calculations\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "\n",
+ "#Full pitch = n = 6 slots\n",
+ "#(1/6)th of full pitch = 1slot\n",
+ "#angle of short pitch = 1 slot angle\n",
+ "alpha = beeta\n",
+ "K_c = math.cos(math.radians(alpha/2)) \t\t\t#coil span factor\n",
+ "\n",
+ "Z = conductor_per_slot*Slots \t\t\t#total conductors\n",
+ "Z_ph = Z \t\t\t# as number of phases is 1\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "E_ph = 4.44*K_c*K_d* phi *f *T_ph \t\t\t#induced emf\n",
+ "\n",
+ "# Results\n",
+ "print 'Induced e.m.f is %.1f V '%(E_ph)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced e.m.f is 662.8 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 page no : 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 48.\n",
+ "n = 9. \t\t\t#slots per pole\n",
+ "phi = 51.75*10**-3 \t\t\t#flux per pole in weber\n",
+ "Ns = 125.\n",
+ "f = Ns*Pole/120 \t\t\t#frequency\n",
+ "K_c = 1. \t\t\t#due to full pitch winding\n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "\n",
+ "# Calculations\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "conductor_per_slot = 4*2 \t\t\t#Each slot has 2 coil sides and each coil side has 4 conductors\n",
+ "Slots = n*Pole\n",
+ "Z = conductor_per_slot*Slots \t\t\t#total number of conductors\n",
+ "Z_ph = Z/3 \t\t\t#conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "E_ph = 4.44 *K_c *K_d *phi *f *T_ph \t\t\t#induced emf\n",
+ "\n",
+ "E_line = (math.sqrt(3))*E_ph \t\t\t#due to star connection\n",
+ "\n",
+ "# Results\n",
+ "print 'Induced e.m.f is %.0f kV '%(E_line/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced e.m.f is 11 kV \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10 page no : 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Slots = 180.\n",
+ "Pole = 12.\n",
+ "Ns = 600. \t\t\t#Synchronous speen in rpm\n",
+ "f = Pole*Ns/120 \t\t\t#frequency\n",
+ "phi = 0.05 \t\t\t#flux per pole in weber\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "#Average EMF in a conductor = 2*f*phi\n",
+ "rms_value_1 = 1.11*2*f*phi \t\t\t#rms value of emf in a conductor\n",
+ "print 'i)r.m.s value of e.m.f in a conductor is %.2f V '%(rms_value_1)\n",
+ "\n",
+ "#part(ii)\n",
+ "#Average EMF in a turn = 4*f*phi\n",
+ "rms_value_2 = 1.11*4*f*phi\t\t\t#r.m.s value of e.m.f in a turn\n",
+ "print 'ii)r.m.s value of e.m.f in a turn is %.2f V '%(rms_value_2)\n",
+ "\n",
+ "#part(iii)\n",
+ "conductors_per_coilside = 10/2 \n",
+ "rms_value_3 = rms_value_2*conductors_per_coilside \t\t\t#r.m.s value of e.m.f in a coil\n",
+ "print 'iii)r.m.s value of e.m.f in a coil is %.1f V '%(rms_value_3)\n",
+ "\n",
+ "#part(iv)\n",
+ "conductors_per_slot = 10\n",
+ "Z = conductors_per_slot * Slots \t\t\t#total number of conductors\n",
+ "Z_ph = Z/3 \t\t\t#conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n/3 \t\t\t#slots per pole per phase \n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2)))\n",
+ "K_c = 1 \t\t\t#distribution & coil-span factor\n",
+ "E_ph = rms_value_2*T_ph*K_d*K_c \t\t\t#induced emf\n",
+ "print 'iv)per phase induced e.m.f is %.1f V '%(E_ph)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)r.m.s value of e.m.f in a conductor is 6.66 V \n",
+ "ii)r.m.s value of e.m.f in a turn is 13.32 V \n",
+ "iii)r.m.s value of e.m.f in a coil is 66.6 V \n",
+ "iv)per phase induced e.m.f is 3822.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 page no : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 8.\n",
+ "f = 50. \t\t\t#frequency\n",
+ "phi = 60.*10**-3 \t\t\t#flux per pole in weber\n",
+ "Slots = 96. \n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "beeta = 180/n \t\t\t#slot angle \n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "\n",
+ "# Calculations and Results\n",
+ "coil_pitch = 10*beeta \t\t\t#10 slots\n",
+ "alpha = 180-coil_pitch\n",
+ "K_c = math.cos(math.radians(alpha/2)) \t\t\t#coi;-span factor\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "\n",
+ "conductors_per_slot = 4 \n",
+ "Z = Slots*conductors_per_slot \t\t\t#total conductors\n",
+ "Total_turns = Z/2 \n",
+ "T_ph = Total_turns/3 \t\t\t#turns per phase\n",
+ "\n",
+ "#part (i)\n",
+ "E_ph = 4.44 *K_c *K_d *phi *f *T_ph\n",
+ "print '\\The phase voltage is %.2f V '%(E_ph)\n",
+ "\n",
+ "#part(ii)\n",
+ "E_line = E_ph*math.sqrt(3)\n",
+ "print 'The Line Voltage is %.2f V '%(E_line)\n",
+ "\n",
+ "#part(iii)\n",
+ "I_ph = 650\n",
+ "I_l = I_ph \t\t\t# Star Connection\n",
+ "kVA_rating = math.sqrt(3)*E_line*I_l\n",
+ "print 'kVA rating is %.1f kVA '%(kVA_rating/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\\The phase voltage is 788.57 V \n",
+ "The Line Voltage is 1365.84 V \n",
+ "kVA rating is 1537.7 kVA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 page no : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ns = 600. \t\t\t#synchronous speed in rpm\n",
+ "Pole = 10.\n",
+ "l = 30./100 \t\t\t#divided by 100 for centimetre-metre conversion\n",
+ "Pole_pitch = 35./100 \t\t\t#numerically equal to pi*d/Pole\n",
+ "Phase = 3.\n",
+ "conductors_per_slot = 8.\n",
+ "A1 = Pole_pitch*l \t\t\t#Area of each fundamental pole\n",
+ "m = 3. \t\t\t#Slot per Pole per Phase\n",
+ "n = Phase*m \t\t\t#slots per pole\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "\n",
+ "B_m1 = 1.\n",
+ "B_m3 = 0.3\n",
+ "B_m5 = 0.2 \t\t\t#amplitude of 1st 3rd and 5th harmonic\n",
+ "phi_1 = (2/math.pi)*A1*B_m1 \t\t\t#average value of fundamental flux per pole \n",
+ "f = Ns*Pole/120 \t\t\t#frequency\n",
+ "\n",
+ "# Calculations\n",
+ "Coil_span = (8./9)*180\n",
+ "alpha = 180-Coil_span\n",
+ "#pitch factor for 1st 3rd and 5th harmonic\n",
+ "K_c1 = math.cos(math.radians(alpha/2)) \n",
+ "K_c3 = math.cos(math.radians(3*alpha/2))\n",
+ "K_c5 = math.cos(math.radians(5*alpha/2))\n",
+ "\n",
+ "# using K_dx = math.sin(m*x*beeta*(math.pi/180)/2) /(m*math.sin(x*beeta*(math.pi/180)/2))\n",
+ "#distribution factor for 1st 3rd and 5th harmonic\n",
+ "K_d1 = math.sin(math.radians(m*1*beeta/2)) /(m*math.sin(math.radians(1*beeta/2)))\n",
+ "K_d3 = math.sin(math.radians(m*3*beeta/2)) /(m*math.sin(math.radians(3*beeta/2)))\n",
+ "K_d5 = math.sin(math.radians(m*5*beeta/2)) /(m*math.sin(math.radians(5*beeta/2)))\n",
+ "\n",
+ "Slots = n*Pole\n",
+ "Total_conductors = conductors_per_slot * Slots\n",
+ "Total_turns = Total_conductors/2\n",
+ "T_ph = Total_turns/3 \t\t\t#turns per phase\n",
+ "\n",
+ "#EMF of 1st 3rd and 5th harmonic\n",
+ "E_1ph = 4.44 * K_c1 * K_d1*phi_1 * f * T_ph\n",
+ "E_3ph = E_1ph* (B_m3*K_c3*K_d3)/(B_m1*K_c1*K_d1)\n",
+ "E_5ph = E_1ph* (B_m5*K_c5*K_d5)/(B_m1*K_c1*K_d1)\n",
+ "\n",
+ "# Results\n",
+ "# using E_xph = E_1ph* (B_mx*K_cx*K_dx)/(B_m1*K_c1*K_d1)\n",
+ "E_ph = math.sqrt( E_1ph**2 + E_3ph**2 + E_5ph**2 )\n",
+ "print 'Phase value of induced e.m.f is %.2f V '%(E_ph)\n",
+ "E_line = math.sqrt(3) * math.sqrt( E_1ph**2 + E_5ph**2 )\t\t\t#no 3rd harmonic appears in line value\n",
+ "print 'line value of induced e.m.f is %.2f V '%(E_line)\n",
+ "\n",
+ "print 'Answer mismatches due to approximation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Phase value of induced e.m.f is 1711.94 V \n",
+ "line value of induced e.m.f is 2916.65 V \n",
+ "Answer mismatches due to approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.13 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 16.\n",
+ "phi = 0.03 \t\t\t#flux per pole\n",
+ "Ns = 375. \t\t\t#synchronous speed in rpm\n",
+ "\n",
+ "# Calculations and Results\n",
+ "f = Ns*Pole/120 \t\t\t#frequency\n",
+ "print 'frequency is %.0f Hz '%(f)\n",
+ "Slots = 144\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "K_c = 1 \t\t\t#assuming Full-Pitch coil\n",
+ "Conductors_per_slot = 10\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "\n",
+ "Total_conductors = Slots*Conductors_per_slot\n",
+ "Total_turns = Total_conductors/2\n",
+ "T_ph = Total_turns/3 \t\t\t#turns per phase\n",
+ "E_ph = 4.44* K_c* K_d*phi* f* T_ph\n",
+ "E_line = E_ph*math.sqrt(3)\n",
+ "print 'line voltage is %.2f V '%(E_line)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency is 50 Hz \n",
+ "line voltage is 2657.20 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.14 page no : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ns = 250. \t\t\t#Speed in rpm\n",
+ "f = 50. \t\t\t#frequency\n",
+ "I_l = 100.\n",
+ "Slots = 216.\n",
+ "Conductors_per_slot = 5\n",
+ "Pole = 120.*f/Ns\n",
+ "phi = 30.*10**-3\t\t\t#flux per pole in weber\n",
+ "Z = Slots*Conductors_per_slot \t\t\t#Total Conductors\n",
+ "Z_ph = Z/3 \t\t\t#conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "beeta = 180./n \t\t\t#Slot angle\n",
+ "\n",
+ "# Calculations\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "\n",
+ "e_av = 2*f*phi \t\t\t#Average Value of EMF in each conductor\n",
+ "E_c = 1.11*(2*f*phi) \t\t\t#RMS value of EMF in each conductor\n",
+ "E = 2*E_c*K_d \t\t\t#RMS value of EMF in each turn\n",
+ "E_ph = T_ph*E \t\t\t#RMS value of EMF in each phase\n",
+ "E_line = E_ph*math.sqrt(3) \t\t\t#As Star Connected Alternator\n",
+ "\n",
+ "# Results\n",
+ "print 'RMS value of EMF in each phase = %.3f V'%(E_ph)\n",
+ "print 'RMS value of EMF line value = %.3f V'%(E_line)\n",
+ "kVA_rating = math.sqrt(3)*E_line*I_l\n",
+ "print 'kVA rating is %.3f kVA '%(kVA_rating/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS value of EMF in each phase = 1150.602 V\n",
+ "RMS value of EMF line value = 1992.902 V\n",
+ "kVA rating is 345.181 kVA \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.15 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 10.\n",
+ "Slots = 90.\n",
+ "E_l = 11000.\n",
+ "f = 50.\n",
+ "phi = 0.15 \t\t\t#flux per pole in weber\n",
+ "n = Slots/Pole \t\t\t#slots per pole\n",
+ "m = n/3 \t\t\t#slots per pole per phase\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ " \n",
+ "# Calculations \n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t#distribution factor\n",
+ "K_c = 1 \t\t\t#coil span factor\n",
+ "\n",
+ "E_ph = E_l/math.sqrt(3)\n",
+ "T_ph = ( E_ph/(4.44*K_c*K_d*phi*f) )\n",
+ "#T_ph should necessarily be an integer\n",
+ "Z_ph = (T_ph)*2 \n",
+ "\n",
+ "# Results\n",
+ "print 'Required number of armature conductors is %d'%(Z_ph)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required number of armature conductors is 397\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 10.\n",
+ "Ns = 600. \t\t\t#speen in rpm\n",
+ "conductor_per_slot = 8.\n",
+ "n = 12. \t\t\t#slots per pole\n",
+ "Slots = Pole*n \n",
+ "m = n/3 \t\t\t#slots per pole per phase \n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "alpha = 2*beeta \t\t\t#short by 2 slots\n",
+ "\n",
+ "#flux per pole corresponding to 1st 3rd and 5th harmonic\n",
+ "phi_1 = 100*10**-3\n",
+ "phi_3 = (33./100)*phi_1\n",
+ "phi_5 = (20./100)*phi_1\n",
+ "\n",
+ "#coil span factor corresponding to 1st 3rd and 5th harmonic\n",
+ "K_c1 = math.cos(math.radians( alpha/2))\n",
+ "K_c3 = math.cos(math.radians( 3*alpha/2))\n",
+ "K_c5 = math.cos(math.radians( 5*alpha/2))\n",
+ "\n",
+ "# using K_dx = math.sin(m*x*beeta /2) /(m*math.sin(x*beeta /2))\n",
+ "#distribution factor corresponding to 1st 3rd and 5th harmonic\n",
+ "K_d1 = math.sin(math.radians(m*1*beeta/2)) /(m*math.sin(math.radians(1*beeta /2)))\n",
+ "K_d3 = math.sin(math.radians(m*3*beeta/2)) /(m*math.sin(math.radians(3*beeta /2)))\n",
+ "K_d5 = math.sin(math.radians(m*5*beeta/2)) /(m*math.sin(math.radians(5*beeta /2)))\n",
+ "\n",
+ "Z = conductor_per_slot*n*Pole \t\t\t#Total Conductors\n",
+ "Zph = Z/3 \t\t\t#conductors per phase\n",
+ "T_ph = Zph/2 \t\t\t#turns per phase\n",
+ "\n",
+ "f = Ns*Pole/120\n",
+ "E_1ph = 4.44*K_c1*K_d1*phi_1*f*T_ph\n",
+ "E_3ph = 4.44*K_c3*K_d3*phi_3*f*T_ph\n",
+ "E_5ph = 4.44*K_c5*K_d5*phi_5*f*T_ph\n",
+ "\n",
+ "E_ph = math.sqrt( E_1ph**2 + E_3ph**2 + E_5ph**2 )\n",
+ "\n",
+ "# Results\n",
+ "print 'Phase value of induced e.m.f is %.0f V '%(E_ph)\n",
+ "E_line = math.sqrt(3)*math.sqrt( E_1ph**2 + E_5ph**2 ) \t\t\t#In a line value 3rd harmonic doesnt appear\n",
+ "print 'line value of induced e.m.f is %d V '%(E_line)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Phase value of induced e.m.f is 3330 V \n",
+ "line value of induced e.m.f is 5691 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17 page no : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 6.\n",
+ "Ns = 1000. \t\t\t#speed in rpm\n",
+ "d = 28./100 \t\t\t#Divided by 100 to convert from centimeters to metres\n",
+ "l = 23./100 \t\t\t#Divided by 100 to convert from centimeters to metres\n",
+ "m = 4. \t \t\t#slots per pole per phase\n",
+ "B_m1 = 0.87 \t\t\t#amplitude of 1st harmonic component of flux density\n",
+ "B_m3 = 0.24 \t\t\t#amplitude of 3rd harmonic component of flux density\n",
+ "Conductors_per_slot = 8\n",
+ "f = Ns*Pole/120 \t\t\t#frequency\n",
+ "A1 = math.pi*d*l/Pole \t\t\t#area of each fundamental pole\n",
+ "phi_1 = (2/math.pi)*A1*B_m1 \t\t\t#flux per pole in weber\n",
+ "n = m*3 \t\t \t#slots per pole\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "alpha = beeta \t\t\t#because of 1 slot short\n",
+ "\n",
+ "# Calculations\n",
+ "K_c1 = math.cos(math.radians(alpha/2)) \t\t\t#coil span factor corresponding to 1st harmonic\n",
+ "K_c3 = math.cos(math.radians(3*alpha/2))\t\t\t#coil span factor corresponding to 3rd harmonic\n",
+ "# using K_dx = math.sin(m*x*beeta*(math.pi/180)/2) /(m*math.sin(x*beeta*(math.pi/180)/2))\n",
+ "K_d1 = math.sin(math.radians(m*1*beeta/2)) /(m*math.sin(math.radians(1*beeta/2))) \t\t\t#distribution factor corresponding to 1st harmonic\n",
+ "K_d3 = math.sin(math.radians(m*3*beeta/2)) /(m*math.sin(math.radians(3*beeta/2))) \t\t\t#distribution factor corresponding to 3rd harmonic\n",
+ "\n",
+ "Slots = n*Pole\n",
+ "Z = Slots*Conductors_per_slot \t\t\t#total number of conductors\n",
+ "Z_ph = Z/3 \t\t\t#conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "\n",
+ "E_1ph = 4.44*K_c1*K_d1*phi_1*f*T_ph\n",
+ "E_3ph = E_1ph* (B_m3*K_c3*K_d3)/(B_m1*K_c1*K_d1) \t\t\t#using E_xph = E_1ph* (B_mx*K_cx*K_dx)/(B_m1*K_c1*K_d1)\n",
+ "E_ph = math.sqrt( E_1ph**2 + E_3ph**2 )\n",
+ "print 'r.m.s value of resultant voltage is %.1f V'%(E_ph)\n",
+ "E_line = math.sqrt(3)*E_1ph \t\t\t#For line Value 3rd harmonic does not appear\n",
+ "print 'line voltage is %.3f V'%(E_line)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "r.m.s value of resultant voltage is 383.7 V\n",
+ "line voltage is 654.560 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.18 page no : 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 125.\n",
+ "V_ph = V_L\n",
+ "VA = 600.*10**3\n",
+ "I_L = VA/(math.sqrt(3)*V_L) \t\t\t# Because VA = math.sqrt(3)* V_L * I_L\n",
+ "I_ph = I_L/(math.sqrt(3))\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#After Reconnection\n",
+ "V_ph = 125\n",
+ "V_L = V_ph*math.sqrt(3)\n",
+ "print 'New rating in volts is %.3f V'%(V_L)\n",
+ "#Winding Impedances remain the same\n",
+ "I_ph = 1600\n",
+ "I_L = I_ph\n",
+ "\n",
+ "print 'New rating in amperes is %.0f A'%(I_L)\n",
+ "kVA = math.sqrt(3)*V_L*I_L*(10**-3)\n",
+ "print 'New rating in kVA is %.0f kVA'%(kVA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New rating in volts is 216.506 V\n",
+ "New rating in amperes is 1600 A\n",
+ "New rating in kVA is 600 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19 page no : 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Pole = 4.\n",
+ "f = 50. \t\t\t#frequency\n",
+ "phi = 0.12 \t\t\t#flux per pole in weber\n",
+ "m = 4. \t\t\t# slot per pole per phase\n",
+ "conductor_per_slot = 4.\n",
+ "coilspan = 150.\n",
+ "Ns = 120*f/Pole \t\t\t#synchronous speed in rpm\n",
+ "n = m*3 \t \t\t#Slots per pole\n",
+ "beeta = 180/n \t\t\t#slot angle\n",
+ "\n",
+ "# Calculations\n",
+ "K_d = math.sin(math.radians(m*beeta/2)) /(m*math.sin(math.radians(beeta/2))) \t\t\t# distribution factor\n",
+ "alpha = 180-coilspan \t\t\t#angle of short pitch\n",
+ "K_c = math.cos((math.pi/180)*alpha/2) \t\t\t#coil span factor\n",
+ "Z = m*(n*Pole) \t\t\t# Also equal to (conductors/slots)*slots\n",
+ "Z_ph = Z/3 \t\t\t#conductors per phase\n",
+ "T_ph = Z_ph/2 \t\t\t#turns per phase\n",
+ "E_ph = 4.44*K_c*K_d*phi*f*T_ph\n",
+ "E_line = math.sqrt(3)*E_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'e.m.f generated is %.2f Vphase, %.2f Vline)'%(E_ph,E_line)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e.m.f generated is 788.57 Vphase, 1365.84 Vline)\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch5.ipynb b/DC_Machines_and_Synchronous_Machines/ch5.ipynb
new file mode 100755
index 00000000..4aca598c
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch5.ipynb
@@ -0,0 +1,1612 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ae2b9384b1b13f79321d75082b020b6a54688771e761bc6446ad00de14bf068e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Methods for Calculating Regulation of Alternator"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 page no : 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 1000.*10**3 \t\t\t#load power\n",
+ "phi = math.acos(math.radians(0.8)) \t\t\t#power factor lagging angle\n",
+ "V_L = 11.*10**3 \t\t\t#rated terminal voltae\n",
+ "R_a = 0.4 \t\t\t#armature resistance per phase\n",
+ "X_s = 3.\t\t\t#synchronous reactance per phase\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = P/(math.sqrt(3)*V_L*math.cos(math.radians(phi)))\n",
+ "I_aph = I_L \t\t\t#for star connected load\n",
+ "I_a = I_L\t\t\t#current through armature\n",
+ "V_ph = V_L/math.sqrt(3) \t\t\t#rated terminal volatge phase value\n",
+ "\n",
+ "E_ph = math.sqrt( (V_ph*math.cos(math.radians(phi))+I_a*R_a)**2+(V_ph*math.sin(math.radians(phi))+I_a*X_s)**2 ) \t\t\t#emf generated phase value\n",
+ "E_line = E_ph*math.sqrt(3) \t\t\t#line value of emf generated\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph \t\t\t#pecentage regulation\n",
+ "\n",
+ "# Results\n",
+ "print 'Line value of e.m.f generated is %.2f kV \\nRegulation is %.3f percent'%(E_line*10**-3,regulation)\n",
+ "\n",
+ "# note : book answer is wrong.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line value of e.m.f generated is 11.05 kV \n",
+ "Regulation is 0.428 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page no : 14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "VA = 1200.*10**3\n",
+ "V_L = 6600.\n",
+ "R_a = 0.25 \t\t\t#armature resistance per phase\n",
+ "X_s = 5.\t\t\t#synchronous reactance per phase\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\n",
+ "I_aph = I_L \t\t\t#for star connected load\n",
+ "I_a = I_L\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "\n",
+ "#Part(i)\n",
+ "phi1 = math.acos(0.8)\t\t\t#and lagging\n",
+ "E_ph1 = math.sqrt( (V_ph*math.cos(phi1)+I_a*R_a)**2+(V_ph*math.sin(phi1)+I_a*X_s)**2 )\n",
+ "regulation = 100*(E_ph1-V_ph)/V_ph \t\t\t#percentage regulation\n",
+ "print 'i)Regulation at 0.8 lagging pf is %.2f percent'%(regulation)\n",
+ "#Part(ii)\n",
+ "phi2 = math.acos(0.8)\t\t\t#and leading\n",
+ "E_ph2 = math.sqrt( (V_ph*math.cos(phi2)+I_a*R_a)**2+(V_ph*math.sin(phi2)-I_a*X_s)**2 )\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph \t\t\t#percentage regulation\n",
+ "print 'ii)Regulation at 0.8 leading pf is %.f percent'%(regulation2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Regulation at 0.8 lagging pf is 9.33 percent\n",
+ "ii)Regulation at 0.8 leading pf is -7 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page no : 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#full load\n",
+ "V_L_FL = 1100.\n",
+ "V_ph_FL = V_L_FL/math.sqrt(3)\n",
+ "\n",
+ "# Calculations\n",
+ "#no load\n",
+ "V_L_NL = 1266\n",
+ "E_line = V_L_NL\n",
+ "E_ph = E_line/math.sqrt(3)\n",
+ "regulation = 100*(E_ph-V_ph_FL)/V_ph_FL\n",
+ "\n",
+ "# Results\n",
+ "print 'Regulation at full load is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at full load is 15.09 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page no : 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 866.\n",
+ "VA = 100.*10**3\n",
+ "I_L = VA/(math.sqrt(3)*V_L) \t\t\t#because VA = math.sqrt(3)*V_L*I_L\n",
+ "I_aph = I_L\t\t\t#full load and star connected alternator\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "\n",
+ "# Calculations\n",
+ "#Graph is plotted and V_oc_ph and I_asc_Ph is obtained for \n",
+ "#SCC for I_asc = 66.67 A\n",
+ "I_f = 2.4 # A\n",
+ "#OCC for I_f = 2.4 A\n",
+ "V_oc_ph = 240 # V\n",
+ "\n",
+ "#for measruemnt of impedance\n",
+ "V_oc_ph = 240 \t\t\t#for I_f = 2.4..From o.c.c graph\n",
+ "I_asc_ph = 66.67 \t\t\t#for I_f = 2.4...From s.c.c graph\n",
+ "Z_s = V_oc_ph/I_asc_ph\n",
+ "R_a = 0.15\n",
+ "X_s = math.sqrt( Z_s**2-R_a**2 )\n",
+ "\n",
+ "V_ph_FL = 500.\n",
+ "phi = math.acos(0.8) \t\t\t#lagging pf\n",
+ "E_ph = math.sqrt((V_ph_FL*math.cos(phi)+I_aph*R_a)**2+(V_ph_FL*math.sin(phi)+I_aph*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Full-load regulation at 0.8 lagging pf is %.2f percent '%(regulation )\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full-load regulation at 0.8 lagging pf is 35.57 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page no : 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_OC_line = 230.\n",
+ "I_asc = 12.5 \t\t\t# when I_f = 0.38\n",
+ "V_OC_ph = V_OC_line/math.sqrt(3)\n",
+ "Z_s = V_OC_ph/I_asc \n",
+ "\n",
+ "R_a = 1.8/2 \t\t\t#1.8 is between terminals..0.9 is per phase\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2)\n",
+ "\n",
+ "I_a = 10.\t\t\t# when regulation is needed\n",
+ "V_L = 230.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "phi1 = math.acos(0.8) \t\t\t#and lagging\n",
+ "E_ph1 = math.sqrt((V_ph*math.cos(phi1)+I_a*R_a)**2+(V_ph*math.sin(phi1)+I_a*X_s)**2)\n",
+ "regulation1 = 100*(E_ph1-V_ph)/V_ph\n",
+ "print 'Regulation for 10 A at 0.8 lagging pf is %.2f percent'%(regulation1)\n",
+ "#Part(ii)\n",
+ "phi2 = math.acos(0.8) \t\t\t#and leading\n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi2)+I_a*R_a)**2+(V_ph*math.sin(phi2)-I_a*X_s)**2)\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'Regulation for 10 A at 0.8 leading pf is %.2f percent'%(regulation2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation for 10 A at 0.8 lagging pf is 64.47 percent\n",
+ "Regulation for 10 A at 0.8 leading pf is -11.01 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page no : 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "phi = math.acos(0.8)\n",
+ "VA = 1000.*10**3\n",
+ "V_L = 1905.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "R_a = 0.2\t\t\t#Armature reactance per phase\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "#Ampere-turn method\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\n",
+ "I_aph = I_L\n",
+ "V_dash = V_ph+I_aph*R_a*math.cos(phi)\t\t\t#V_dash is a dummy quantity and has no significance..it's used only for mapping correcponding current\n",
+ "F_o = 32 \t\t\t#F_o corresponds to voltage V_dash = 1148.5 from O.C.C graph\n",
+ "F_AR = 27.5 \t\t\t#Field current required to circulate full-load short circuit current of 303.07A.From SCC F_AR = 27.5\n",
+ "F_R = math.sqrt( F_o**2 + F_AR**2-2*F_o*F_AR*math.cos(phi+math.pi/2) )\t\t\t#using Comath.sine rule\n",
+ "\n",
+ "# for F_R = 53.25 E_ph = 1490 V from O.C.C\n",
+ "E_ph = 1490.\n",
+ "regulation1 = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Regulation on full-load by ampere-turn method is %.2f percent'%(regulation1)\n",
+ "\n",
+ "#Part (ii)\n",
+ "#Synchronous Impedance method\n",
+ "\n",
+ "I_sc = I_L\n",
+ "I_aph2 = I_sc\n",
+ "I_f = 27.5\n",
+ "\n",
+ "V_OC_ph = 1060. \t\t\t#corresponding to I-f = 27.5 in the graph\n",
+ "Z_s = V_OC_ph/I_aph2\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2)\n",
+ "\n",
+ "E_ph2 = math.sqrt( (V_ph*math.cos(phi)+I_aph2*R_a)**2+(V_ph*math.sin(phi)+I_aph2*X_s)**2 ) \t\t\t#from phasor diagram\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'Regulation on full-load by synchronous impedance method is %.2f percent'%(regulation2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation on full-load by ampere-turn method is 35.47 percent\n",
+ "Regulation on full-load by synchronous impedance method is 78.09 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page no : 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#case(i)\n",
+ "V_L = 440.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "phi = math.acos(0.8)\n",
+ "\n",
+ "#armature resistance drop from the graph\n",
+ "#RS = 1.1 cm and scale = 50 V/cm\n",
+ "arm_leak_resis = 1.1*50 \t\t\t#armature leakage resistance\n",
+ "\n",
+ "OB = V_ph*math.cos(phi)\n",
+ "AB = V_ph*math.sin(phi) + arm_leak_resis\n",
+ "E_1ph = math.sqrt( OB**2+AB**2 )\n",
+ "\n",
+ "F_f1 = 6.1 \t\t\t#corresponding value from OCC\n",
+ "F_AR = 3.1*1\n",
+ "\n",
+ "# Calculations and Results\n",
+ "F_R = math.sqrt( F_f1**2 + F_AR**2 -2*F_f1*F_AR*math.cos(math.radians(90+math.acos(math.radians(0.8)))))\n",
+ "E_ph = 328. \t\t\t#voltage corresponding to F_R = 8.33 A from OCC graph\n",
+ "regulation1 = 100*(E_ph - V_ph)/V_ph\n",
+ "print 'i)Regulation for 0.8 pf lagging is %.2f percent '%(regulation1)\n",
+ "\n",
+ "#case(ii)\n",
+ "\n",
+ "OC = V_ph*math.cos(phi)\n",
+ "BC = V_ph*math.sin(phi) - arm_leak_resis\n",
+ "E_1ph = math.sqrt( OC**2+BC**2 )\n",
+ "\n",
+ "F_f1 = 6.1 \t\t\t#corresponding value from OCC\n",
+ "F_R = math.sqrt( F_f1**2 + F_AR**2 -2*F_f1*F_AR*math.cos(math.radians(90-math.acos(math.radians(0.8)))))\n",
+ "E_ph = 90 \t\t\t#volatge corresponding to F_R = 3.34 A from OCC graph\n",
+ "regulation2 = 100*(E_ph - V_ph)/V_ph\n",
+ "print 'ii)Regulation for 0.8 pf leading is %.2f percent '%(regulation2)\n",
+ "print 'The answer in part ii doesnt match with textbook because of calculation mistake done in last step in the textbook'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Regulation for 0.8 pf lagging is 29.12 percent \n",
+ "ii)Regulation for 0.8 pf leading is -64.57 percent \n",
+ "The answer in part ii doesnt match with textbook because of calculation mistake done in last step in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page no : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 1200.*10**3\n",
+ "V_line = 12000.\n",
+ "R_a = 2.\n",
+ "X_s = 35.\t\t\t#armature resistance and synchronous reactance\n",
+ "phi = math.acos(0.8)\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = P/(math.sqrt(3)*V_line*math.cos(phi))\n",
+ "I_a = I_L\n",
+ "V_ph = V_line/math.sqrt(3)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2+(V_ph*math.sin(phi)+I_a*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Regulation at 0.8 lag power factor is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at 0.8 lag power factor is 26.66 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page no : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 11000. \n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 1000.*1000\n",
+ "I_L = VA/(V_L*math.sqrt(3))\n",
+ "\n",
+ "V_OC_ph = 433/math.sqrt(3)\n",
+ "I_asc_ph = I_L\n",
+ "\n",
+ "Z_s = V_OC_ph /I_asc_ph \t\t\t#ohms per phase\n",
+ "R_a = 0.45 \t\t\t#ohms per phase\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "phi = math.acos(0.8) \t\t\t#lagging\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_L*R_a)**2 +(V_ph*math.sin(phi)+ I_L*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Voltage regulation at 0.8 pf lagging is %f percent'%(regulation)\n",
+ "\n",
+ "#part(ii)\n",
+ "phi = math.acos(0.8) \t\t\t#leading\n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi)+I_L*R_a)**2 +(V_ph*math.sin(phi)- I_L*X_s)**2)\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'Voltage regulation at 0.8 pf lagging is %f percent'%(regulation2)\n",
+ "print 'Answer mismatches due to improper approximation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage regulation at 0.8 pf lagging is 2.690067 percent\n",
+ "Voltage regulation at 0.8 pf lagging is -1.996182 percent\n",
+ "Answer mismatches due to improper approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page no : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "VA = 125.*10**3\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\n",
+ "I_aph = I_L\n",
+ "\n",
+ "# Calculations\n",
+ "I_f = 4.\n",
+ "I_asc = I_aph/2 \t\t\t#for half load.. refer to graph\n",
+ "V_OC_line = 140.\n",
+ "V_OC_ph = V_OC_line/math.sqrt(3)\n",
+ "I_asc_ph = I_asc\n",
+ "Z_s = V_OC_ph/I_asc_ph\n",
+ "R_a = 0.1\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2) \t\t\t#armature resistance and synchronous reactance\n",
+ "\n",
+ "phi = math.acos(0.8)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_asc*R_a)**2 +(V_ph*math.sin(phi)- I_asc*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Voltage regulation at 0.8 pf leading for half load is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage regulation at 0.8 pf leading for half load is -12.39 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page no : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "V_OC_line = 575.\n",
+ "V_OC_ph = V_OC_line/math.sqrt(3)\n",
+ "I_asc_line = 75.\n",
+ "I_asc_ph = I_asc_line \n",
+ "I_aph = I_asc_ph\n",
+ "I_L = I_aph\n",
+ "\n",
+ "Z_s = V_OC_ph/I_asc_ph\n",
+ "R_a = 2.16/2\n",
+ "X_s = math.sqrt(Z_s**2 - R_a**2)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#on full load\n",
+ "E_ph = 6100.\n",
+ "phi = math.acos(0.8) \t\t\t#leading\n",
+ "\n",
+ "#using E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2 +(V_ph*math.sin(phi)- I_a*X_s)**2)\n",
+ "p = [1, -256.68, -3.71*10**7]\n",
+ "ans = roots(p)\n",
+ "V_ph = ans[0] \t\t\t#second root is ignored as its -ve\n",
+ "V_L = V_ph*math.sqrt(3)\n",
+ "print 'Rated terminal voltage between the lines is %.3f V '%(V_L)\n",
+ "VA_rating = math.sqrt(3)*V_L*I_L\n",
+ "print 'kVA rating of the alternator is %.f kVA'%(VA_rating*10**-3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rated terminal voltage between the lines is 10774.515 V \n",
+ "kVA rating of the alternator is 1400 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12 Page no : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6600.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 1500.*10**3\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\n",
+ "I_aph = I_L\n",
+ "\n",
+ "# Calculations and Results\n",
+ "R_a = 0.5\n",
+ "X_s = 5\t\t\t#armature resistance and synchronous reactance\n",
+ "phi = math.acos(0.8)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_aph*R_a)**2 +(V_ph*math.sin(phi)+ I_aph*X_s)**2)\n",
+ "print 'Induced EMF per phase is %f V'%(E_ph)\n",
+ "\n",
+ "#full load \n",
+ "phi = math.acos(1)\n",
+ "#using E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2 +(V_ph*math.sin(phi)- I_a*X_s)**2)\n",
+ "p = [1, 131.215, -1.791*10**7]\n",
+ "ans = roots(p)\n",
+ "V_ph = ans[1] \t\t\t#first root is ignored as it is -ve\n",
+ "print 'Terminal voltage per phase is %f V'%(V_ph)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced EMF per phase is 4284.243828 V\n",
+ "Terminal voltage per phase is 4166.921808 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13 Page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_ph = 2000.\n",
+ "R_a = 0.8\n",
+ "I_sc = 100.\n",
+ "V_OC = 500.\n",
+ "I_f = 2.5\n",
+ "Z_s = V_OC/I_sc\n",
+ "X_s = math.sqrt(Z_s**2 - R_a**2 )\n",
+ "I_aFL = 100.\n",
+ "I_a = I_aFL\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "phi = math.acos(1)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2 +(V_ph*math.sin(phi)+ I_a*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'i)Voltage regulation is %.2f percent'%(regulation)\n",
+ "\n",
+ "#part(ii)\n",
+ "phi2 = math.acos(0.8)\n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi2)+I_a*R_a)**2 +(V_ph*math.sin(phi2)- I_a*X_s)**2)\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'ii)Voltage regulation is %.2f percent'%(regulation2)\n",
+ "\n",
+ "#part(iii)\n",
+ "phi3 = math.acos(0.71)\n",
+ "E_ph3 = math.sqrt((V_ph*math.cos(phi3)+I_a*R_a)**2 +(V_ph*math.sin(phi3)+ I_a*X_s)**2)\n",
+ "regulation3 = 100*(E_ph3-V_ph)/V_ph\n",
+ "print 'iii)Voltage regulation is %.2f percent'%(regulation3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Voltage regulation is 6.89 percent\n",
+ "ii)Voltage regulation is -8.88 percent\n",
+ "iii)Voltage regulation is 21.11 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14 Page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "VA = 1000.*1000\n",
+ "V_L = 4600. \n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\n",
+ "I_aph_FL = I_L\n",
+ "I_aph = I_aph_FL\n",
+ "I_sc = (150./100)* I_aph_FL\n",
+ "V_OC_line = 1744\n",
+ "V_OC_ph = V_OC_line/math.sqrt(3)\n",
+ "\n",
+ "# Calculations\n",
+ "Z_s = V_OC_ph / I_sc\n",
+ "R_a = 1\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2)\n",
+ "\n",
+ "phi = math.acos(0.8 ) \t\t\t#lagging\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_aph*R_a)**2 +(V_ph*math.sin(phi)+ I_aph*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Voltage regulation at full load 0.8 pf is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage regulation at full load 0.8 pf is 19.89 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15 Page no : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "#part(i) Ampere turn method\n",
+ "# Variables\n",
+ "F_O = 37.5\n",
+ "F_AR = 20.\n",
+ "V_L = 6600.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#lagging\n",
+ "phi = math.acos(0.8) \n",
+ "F_R = math.sqrt((F_O+F_AR*math.sin(phi) )**2 + (F_AR*math.cos(phi))**2 ) \n",
+ "#E_ph corresponding to F_R can be obtained by plotting open circuit characteristics\n",
+ "E_ph = 4350\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'i)By Ampere-turn method or MMF methodFull-load regulation at 0.8 lagging pf is %.2f percent'%(regulation)\n",
+ "#leading\n",
+ "phi = math.acos(0.8) \n",
+ "F_R = math.sqrt((F_O-F_AR*math.sin(phi) )**2 + (F_AR*math.cos(phi))**2 ) \n",
+ "#E_ph corresponding to F_R can be obtained by plotting open circuit characteristics\n",
+ "E_ph = 3000\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Full-load regulation at 0.8 leading pf is %.2f percent'%(regulation)\n",
+ "\n",
+ "#EMF method\n",
+ "V_OC_ph = 100\n",
+ "V_ph = 100\n",
+ "I_sc = 100*(F_O/F_AR) \t\t\t#times the rated value\n",
+ "Z_s = V_OC_ph/I_sc\n",
+ "F_O = 100\n",
+ "F_AR = Z_s*100\n",
+ "\n",
+ "#lagging\n",
+ "phi = math.acos(0.8)\n",
+ "F_R = math.sqrt((F_O+F_AR*math.sin(phi) )**2 + (F_AR*math.cos(phi))**2 ) \n",
+ "regulation = 100*(F_R-V_ph)/V_ph\n",
+ "print 'iiSynchronous impedance method or EMF method'\n",
+ "print 'Full-load regulation at 0.8 lagging pf is %.2f percent'%(regulation)\n",
+ "#leading\n",
+ "phi = math.acos(0.8)\n",
+ "F_R = math.sqrt((F_O-F_AR*math.sin(phi) )**2 + (F_AR*math.cos(phi))**2 ) \n",
+ "regulation = 100*(F_R-V_ph)/V_ph\n",
+ "print 'Full-load regulation at 0.8 leading pf is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)By Ampere-turn method or MMF methodFull-load regulation at 0.8 lagging pf is 14.16 percent\n",
+ "Full-load regulation at 0.8 leading pf is -21.27 percent\n",
+ "iiSynchronous impedance method or EMF method\n",
+ "Full-load regulation at 0.8 lagging pf is 38.72 percent\n",
+ "Full-load regulation at 0.8 leading pf is -19.72 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16 Page no : 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6000.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_ph_X_Lph = 0.9*500 \t\t\t#leakage reactance drop in volts = 0.9 cm * 500 V/cm\n",
+ "phi = math.acos(0.8) \t\t\t#lagging\n",
+ "\n",
+ "# Calculations\n",
+ "E_1ph = math.sqrt( (V_ph*math.cos(phi))**2 + (V_ph*math.sin(phi)+I_ph_X_Lph)**2 ) \t\t\t#From triangle OAB\n",
+ "F_f1 = 26 \t\t\t#from OCC\n",
+ "F_AR = 2.9*5 \t\t\t#2.9cm * 5 A/cm\n",
+ "\n",
+ "F_R = math.sqrt(F_f1**2 + F_AR**2 -2*F_AR*F_f1*math.cos(phi+ (math.pi/2)) )\n",
+ "\n",
+ "# Results\n",
+ "print 'Required field current is %.2f A'%(F_R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required field current is 36.59 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.17 Page no : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 40.*10**3\n",
+ "I_L = VA/(math.sqrt(3)*V_L) \n",
+ "I_aph = I_L\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_aph_X_Lph = 0.65*50 \t\t\t#leakage reactance drop in volts = 2.4 cm * 500 V/cm\n",
+ "X_Lph = I_aph_X_Lph/ I_aph\n",
+ "print 'Armature leakage reactance is %.3f ohms'%(X_Lph)\n",
+ "phi = math.acos(0.8) \t\t\t#lagging\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi))**2 +(V_ph*math.sin(phi)+ I_aph_X_Lph)**2)\n",
+ "F_f1 = 15.6 \t\t\t#as obtained from OCC corresponding to this E_ph\n",
+ "\n",
+ "F_AR = 2.3*3 \t\t\t#2.3cm * 3 A/cm\n",
+ "print 'Armature reaction is %.1f '%(F_AR)\n",
+ "F_R = math.sqrt(F_f1**2 + F_AR**2 -2*F_AR*F_f1*math.cos(phi+ (math.pi/2)) ) \t\t\t#math.comath.sine rule to Triangle OAB\n",
+ "E_ph = 267.5 \t\t\t#corresponding to F_R from open circiut characteristics\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Voltage regulation at 0.8 pf lagging is %.1f percent'%(regulation)\n",
+ "\n",
+ "\n",
+ "#Note:This answer doesnt match with textbook as it has been reciprocated in textbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature leakage reactance is 0.563 ohms\n",
+ "Armature reaction is 6.9 \n",
+ "Voltage regulation at 0.8 pf lagging is 15.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.18 Page no : 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "VA = 10.*10**3\n",
+ "V_L = 11.*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_ph_X_Lph = 2.4*500 \t\t\t#leakage reactance drop in volts = 2.4 cm * 500 V/cm\n",
+ "\n",
+ "# Calculations\n",
+ "I_ph_R_aph = VA/(math.sqrt(3)*V_L)\n",
+ "phi = math.acos(0.8)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_ph_R_aph)**2 +(V_ph*math.sin(phi)+ I_ph_X_Lph)**2)\n",
+ "F_f1 = 109 \t\t\t#obtained from open circuit characteristics corresponding to calculated E_ph\n",
+ "F_AR = 2.8*10 \t\t\t#2.8cm * 10 A/cm\n",
+ "F_R = math.sqrt(F_f1**2 + F_AR**2 -2*F_AR*F_f1*math.cos(phi+ (math.pi/2)) ) \t\t\t#math.comath.sine rule to Triangle OAB\n",
+ "E_ph = 7700. \t\t\t#corresponding to F_R from open circiut characteristics\n",
+ "\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Voltage regulation at full-load 0.8 pf lagging is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage regulation at full-load 0.8 pf lagging is 21.24 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.19 Page no : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "VA = 2000.*1000\n",
+ "V_L = 11000.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "R_a = 0.3\n",
+ "X_s = 5. \t\t\t#armature resistance and synchronous reactance\n",
+ "\n",
+ "# Calculations\n",
+ "#case (i)\n",
+ "phi = math.acos(0.8) \t\t\t#lagging\n",
+ "I_L = VA/(math.sqrt(3)*V_L) \n",
+ "I_a = I_L\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2 +(V_ph*math.sin(phi)+ I_a*X_s)**2)\n",
+ "\n",
+ "#using E_ph = math.sqrt((V_ph*math.cos(phi)+I_aph*R_a)**2 +(V_ph*math.sin(phi)+ I_aph*X_s)**2)\n",
+ "#we get V_ph**2 -579.4455 V_ph -44653301.91 = 0\n",
+ "p = [1, -579.4455, -44653301.91]\n",
+ "ans = roots(p)\n",
+ "V_ph = ans[0] \t\t#second root is ignored as its -ve\n",
+ "print 'Terminal voltage is %.4f V'%(V_ph)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Terminal voltage is 6978.3131 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.20 Page no : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "R_a = 0.6\n",
+ "X_s = 6. \t\t\t#armature resistance and synchronous reactance per phase\n",
+ "E_L = 6599.\n",
+ "E_ph = E_L/math.sqrt(3)\n",
+ "I_L = 180.\n",
+ "I_a = I_L\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "# using E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2 +(V_ph*math.sin(phi)+ I_a*X_s)**2) and solving for V_ph\n",
+ "p = [1 ,1135.83, -13338836.49]\n",
+ "ans = roots(p)\n",
+ "V_ph = ans[1]\n",
+ "V_L = V_ph*math.sqrt(3)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "phi = math.acos(0.9)\n",
+ "theta = math.atan((I_a*X_s+V_ph*math.sin(phi) )/(E_ph))\n",
+ "delta = theta-phi\n",
+ "print 'i)0.9 laggingTerminal voltage is %.2f VVoltage regulation is %.2f percentLoad angle is %.2f degrees'%(V_ph*math.sqrt(3),regulation,delta*180/math.pi)\n",
+ "\n",
+ "#part(ii)\n",
+ "phi_2 = math.acos(0.8)\n",
+ "p = [1, -941.53, -11399574.87]\n",
+ "ans = roots(p) \n",
+ "V_ph = ans[0] \t\t\t#second root is ignored as its -ve\n",
+ "V_L = V_ph*math.sqrt(3)\n",
+ "regulation2 = 100*(E_ph-V_ph)/V_ph\n",
+ "delta_2 = math.asin( (math.tan(phi)*(V_ph*math.cos(phi_2)+I_a*R_a) -I_a*X_s )/E_ph )\n",
+ "print 'ii)0.8 leadingTerminal voltage is %.2f VVoltage regulation is %.2f percentLoad angle is %.2f degrees'%(V_L,regulation2,delta_2*180/math.pi)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)0.9 laggingTerminal voltage is 5418.22 VVoltage regulation is 21.79 percentLoad angle is 6.83 degrees\n",
+ "ii)0.8 leadingTerminal voltage is 6719.93 VVoltage regulation is -1.80 percentLoad angle is 7.17 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.21 Page no : 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_ph = 2000.\n",
+ "R_a = 0.8\n",
+ "I_sc = 100.\n",
+ "I_a = I_sc\n",
+ "V_OC = 500.\n",
+ "I_f = 2.5\n",
+ "Z_s = V_OC/I_sc\n",
+ "\n",
+ "X_s = math.sqrt(Z_s**2- R_a**2)\n",
+ "I_a_FL = 100.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "phi1 = math.acos(1) \t\t\t#and lagging\n",
+ "E_ph1 = math.sqrt((V_ph*math.cos(phi1)+I_a*R_a)**2+(V_ph*math.sin(phi1)+I_a*X_s)**2)\n",
+ "regulation1 = 100*(E_ph1-V_ph)/V_ph\n",
+ "print 'Regulation at upf is %.2f percent'%(regulation1)\n",
+ "\n",
+ "#Part(ii)\n",
+ "phi2 = math.acos(0.8) \n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi2)+I_a*R_a)**2+(V_ph*math.sin(phi2)-I_a*X_s)**2)\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'Regulation at 0.8 leading pf is %.2f percent'%(regulation2)\n",
+ "\n",
+ "#Part(iii)\n",
+ "phi3 = math.acos(0.71) \n",
+ "E_ph3 = math.sqrt((V_ph*math.cos(phi3)+I_a*R_a)**2+(V_ph*math.sin(phi3)+I_a*X_s)**2)\n",
+ "regulation3 = 100*(E_ph3-V_ph)/V_ph\n",
+ "print 'Regulation at 0.71 lagging pf is %.2f percent'%(regulation3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at upf is 6.89 percent\n",
+ "Regulation at 0.8 leading pf is -8.88 percent\n",
+ "Regulation at 0.71 lagging pf is 21.11 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.22 Page no : 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 600.\n",
+ "VA = 60.*10**3\n",
+ "I_sc = 210.\n",
+ "V_oc = 480.\n",
+ "I_f = 10.\n",
+ "R_a = 0.2\n",
+ "\n",
+ "I = VA/V \t\t\t#VA = V*I and alternator is math.single phase\n",
+ "I_a = I\n",
+ "\n",
+ "# Calculations and Results\n",
+ "Z_s = V_oc/I_sc \t\t\t#Synchronous Impedance\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2) \t\t\t#SYnchronous reactance\n",
+ "print 'Synchronous impedances is %f ohms and synchronous reactance is %f ohms'%(Z_s,X_s)\n",
+ "\n",
+ "#PART (i)\n",
+ "phi1 = math.acos(0.8) \t\t\t#and lagging\n",
+ "E1 = math.sqrt((V*math.cos(phi1)+I_a*R_a)**2+(V*math.sin(phi1)+I_a*X_s)**2) \t\t\t#plus sign for lagging power factor\n",
+ "regulation1 = 100*(E1-V)/V\n",
+ "print 'Regulation at 0.8 lagging pf is %.2f percent '%(regulation1 )\n",
+ "\n",
+ "#PART (ii)\n",
+ "phi2 = math.acos(1) \n",
+ "E2 = math.sqrt((V*math.cos(phi2)+I_a*R_a)**2+(V*math.sin(phi2)+I_a*X_s)**2) \n",
+ "regulation2 = 100*(E2-V)/V\n",
+ "print 'Regulation at UNITY pf is %.2f percent '%(regulation2 )\n",
+ "\n",
+ "#PART (iii)\n",
+ "phi3 = math.acos(0.6) \t\t\t#and leading \n",
+ "E3 = math.sqrt((V*math.cos(phi3)+I_a*R_a)**2+(V*math.sin(phi3)-I_a*X_s)**2) \t\t\t#minus sign for leading power factor\n",
+ "regulation3 = 100*(E3-V)/V\n",
+ "print 'Regulation at 0.6 leading pf is %.2f percent '%(regulation3 )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous impedances is 2.285714 ohms and synchronous reactance is 2.276947 ohms\n",
+ "Regulation at 0.8 lagging pf is 28.60 percent \n",
+ "Regulation at UNITY pf is 10.08 percent \n",
+ "Regulation at 0.6 leading pf is -23.98 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.23 Page no : 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3300.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_a = 100.\n",
+ "I_f = 5.\n",
+ "V_OC_line = 900. \n",
+ "V_OC_ph = V_OC_line/math.sqrt(3) \n",
+ "R_a = 0.8 \t\t\t#armature resistance\n",
+ "I_aph = I_a\n",
+ "Z_s = V_OC_ph/I_aph\n",
+ "X_s = math.sqrt(Z_s**2-R_a**2) \t\t\t#synchronous reactance\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "phi1 = math.acos(0.8) \t\t\t#and lagging\n",
+ "E_ph1 = math.sqrt((V_ph*math.cos(phi1)+I_a*R_a)**2+(V_ph*math.sin(phi1)+I_a*X_s)**2)\n",
+ "regulation1 = 100*(E_ph1-V_ph)/V_ph\n",
+ "print 'Regulation at 0.8 lagging is %.2f percent'%(regulation1)\n",
+ "\n",
+ "#Part(ii)\n",
+ "phi2 = math.acos(0.8) \t\t\t#and leading\n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi2)+I_a*R_a)**2+(V_ph*math.sin(phi2)-I_a*X_s)**2)\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'Regulation at 0.8 leading pf is %.2f percent'%(regulation2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at 0.8 lagging is 21.03 percent\n",
+ "Regulation at 0.8 leading pf is -9.55 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.24 Page no : 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 13500.\n",
+ "R_a = 1.5 \n",
+ "X_s = 30. \t\t\t#armature resistance and synchronous reactance\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#CASE 1\n",
+ "phi1 = math.acos(0.8)\n",
+ "P_out = 1280*10**3\n",
+ "I_L = P_out/ (math.sqrt(3)*V_L*math.cos(phi1) ) \t\t\t#because P_out = math.sqrt(3)*V_L*I_L*math.cos(phi)\n",
+ "\n",
+ "I_a = I_L\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi1)+I_a*R_a)**2+(V_ph*math.sin(phi1)+I_a*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Regulation at 0.8 lagging power factor is %.2f percent'%(regulation)\n",
+ "\n",
+ "#Case 2\n",
+ "phi2 = math.acos(1)\n",
+ "I_L = P_out/ (math.sqrt(3)*V_L*math.cos(phi2) ) \t\t\t#because P_out = math.sqrt(3)*V_L*I_L*math.cos(phi)\n",
+ "\n",
+ "I_a = I_L\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi2)+I_a*R_a)**2+(V_ph*math.sin(phi2)+I_a*X_s)**2)\n",
+ "regulation2 = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Regulation at unity power factor is %.2f percent'%(regulation2)\n",
+ "\n",
+ "#case 3\n",
+ "phi3 = math.acos(0.8)\n",
+ "I_L = P_out/ (math.sqrt(3)*V_L*math.cos(phi3) ) \t\t\t#because P_out = math.sqrt(3)*V_L*I_L*math.cos(phi)\n",
+ "I_a = I_L\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi3)+I_a*R_a)**2+(V_ph*math.sin(phi3)-I_a*X_s)**2)\t\t\t# minus sign in the second bracket beacuse of leading pf\n",
+ "regulation3 = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Regulation at 0.8 leading power factor is %.2f percent'%(regulation3)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at 0.8 lagging power factor is 18.60 percent\n",
+ "Regulation at unity power factor is 3.23 percent\n",
+ "Regulation at 0.8 leading power factor is -11.99 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.26 Page no : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 11.*10**3\n",
+ "VA_rating = 10.**6\n",
+ "R_a = 2.2 \t\t\t#alternator resistance\n",
+ "phi = math.acos(0.8)\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = VA_rating/(math.sqrt(3)*V_L)\t\t\t#VA = math.sqrt(3)V_L*I_L\n",
+ "I_a = I_L\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "regulation = 24.\n",
+ "\n",
+ "E_ph = ((regulation/100)+1)*V_ph \t\t\t# because regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "#using E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2+(V_ph*math.sin(phi)+I_a*X_s)**2)\n",
+ "X_s = (math.sqrt(E_ph**2-((V_ph*math.cos(phi)+I_a*R_a)**2))-V_ph*math.sin(phi))*(1/I_a)\n",
+ "\n",
+ "phi1 = math.acos(0.8)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi1)+I_a*R_a)**2+(V_ph*math.sin(phi1)-I_a*X_s)**2)\n",
+ "regulation1 = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Regulation at 0.8 leading power factor is %.2f percent'%(regulation1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at 0.8 leading power factor is -13.90 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.27 Page no : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 220.\n",
+ "VA = 100.*10**3\n",
+ "R_a = 0.1 \t\t\t#effective resistacne of alternator\n",
+ "X_a = 0.5 \t\t\t#leakage reactance\n",
+ "X_ar = 2*X_a\n",
+ "\n",
+ "Z_s = complex(R_a,X_a+X_ar)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(1)\n",
+ "phi = math.acos(0.4)\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\t\t\t#VA = math.sqrt(3)*V_L*I_L\n",
+ "I_a = I_L\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2+(V_ph*math.sin(phi)+I_a*(X_a+X_ar))**2)\n",
+ "print 'i)Required noload voltage is %.3f V'%(E_ph)\n",
+ "\n",
+ "#Part(2)\n",
+ "V_ph2 = 0\n",
+ "E_ph2 = math.sqrt((V_ph2*math.cos(phi)+I_a*R_a)**2+(V_ph2*math.sin(phi)+I_a*(X_a+X_ar))**2)\n",
+ "print 'ii)Required noload voltage is %.3f V'%(E_ph2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Required noload voltage is 515.848 V\n",
+ "ii)Required noload voltage is 394.522 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.28 Page no : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 2000.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 1000.*10**3\n",
+ "I_L = VA/(math.sqrt(3)*V_L) \t\t\t#because VA = math.sqrt(3)*V_L*I_L\n",
+ "I_aph = I_L\n",
+ "\n",
+ "I_f = 28.5\t\t\t#for this I_aph = 288.67513 as obtained from SCC graph\n",
+ "V_oc_ph = 1060.\t\t\t#for I_f = 28.5 as obtained fromOCC graph\n",
+ "Z_s = V_oc_ph/I_aph\n",
+ "R_a = 0.2 \t\t\t#armature effective resistance\n",
+ "X_s = math.sqrt( Z_s**2-R_a**2 )\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Part(i)\n",
+ "phi1 = math.acos(0.8)\t\t\t#lagging\n",
+ "E_ph1 = math.sqrt((V_ph*math.cos(phi1)+I_aph*R_a)**2+(V_ph*math.sin(phi1)+I_aph*X_s)**2)\n",
+ "regulation1 = 100*(E_ph1-V_ph)/V_ph\n",
+ "print \"i)Full-load percentage regulation at 0.8 pf lagging is %.2f percent\"%(regulation1)\n",
+ "\n",
+ "#Part(ii)\n",
+ "phi2 = math.acos(0.8)\t\t\t#leading\n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi2)+I_aph*R_a)**2+(V_ph*math.sin(phi2)-I_aph*X_s)**2)\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print \"ii)Full-load percentage regulation at 0.8 pf leading is %.2f percent\"%(regulation2)\n",
+ "print 'Note that the answer mismatches because of calculation mistake done in the last step of part 1'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Full-load percentage regulation at 0.8 pf lagging is 73.86 percent\n",
+ "ii)Full-load percentage regulation at 0.8 pf leading is -9.29 percent\n",
+ "Note that the answer mismatches because of calculation mistake done in the last step of part 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.29 Page no : 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3300.\n",
+ "VA = 200.*10**3\n",
+ "R_a = 0.6\n",
+ "X_s = 6.\t\t\t#armature resistance and synchronous reactance\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\t\t\t#VA = math.sqrt(3)V_L*I_L\n",
+ "I_a = I_L\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "phi = math.acos(0.8)\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_a*R_a)**2+(V_ph*math.sin(phi)+I_a*X_s)**2)\n",
+ "\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Regulation at 0.8 lagging power factor is %.3f percent'%(regulation)\n",
+ "print ' Note : Regulation is positive for lagging power factor loads'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at 0.8 lagging power factor is 7.802 percent\n",
+ " Note : Regulation is positive for lagging power factor loads\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.30 Page no : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 2300. \n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "f = 50.\n",
+ "R_a = 0.2 \t\t\t#armature resistance\n",
+ "I_sc = 150.\n",
+ "V_OC_line = 780. \n",
+ "V_OC_ph = V_OC_line/math.sqrt(3)\n",
+ "\n",
+ "Z_s = V_OC_ph/I_sc\n",
+ "X_s = math.sqrt(Z_s**2 - R_a**2)\n",
+ "I_aph = 25 \n",
+ "I_aFL = I_aph\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "phi = math.acos(0.8) \t\t\t#lag\n",
+ "E_ph = math.sqrt((V_ph*math.cos(phi)+I_aph*R_a)**2 +(V_ph*math.sin(phi)+ I_aph*X_s)**2)\n",
+ "regulation = 100*(E_ph-V_ph)/V_ph\n",
+ "print 'Voltage regulation at 0.8 pf lagging is %.3f percent'%(regulation)\n",
+ "\n",
+ "#part(ii)\n",
+ "phi2 = math.acos(0.8) \t\t\t#lead\n",
+ "E_ph2 = math.sqrt((V_ph*math.cos(phi2)+I_aph*R_a)**2 +(V_ph*math.sin(phi2)- I_aph*X_s)**2 )\n",
+ "regulation2 = 100*(E_ph2-V_ph)/V_ph\n",
+ "print 'Voltage regulation at 0.8 pf leading is %.3f percent'%(regulation2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage regulation at 0.8 pf lagging is 3.774 percent\n",
+ "Voltage regulation at 0.8 pf leading is -2.967 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch6.ipynb b/DC_Machines_and_Synchronous_Machines/ch6.ipynb
new file mode 100755
index 00000000..b2228585
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch6.ipynb
@@ -0,0 +1,2427 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9f548e729a327e12aefb50cf84c5cae777df427713c1104c34d610a547e935f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Synchronization and Parallel Operation of Alternators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " \n",
+ "Example 6.2 Page no : 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "X_d = 0.7 \n",
+ "X_q = 0.4 \t\t\t#direct and quadrature axis synchronous reactance p.u.\n",
+ "R_a = 0\n",
+ "phi = math.acos(0.8) \t\t\t#Lag\n",
+ "\n",
+ "V_t = 1. \t\t\t#assumed rated terminal Voltage \n",
+ "I_a = 1. \t\t\t#Full-load armature current\n",
+ "\n",
+ "# Calculations\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_a*X_q)/(V_t*math.cos(phi)+I_a*R_a) )\n",
+ "delta = psi-phi\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "\n",
+ "# Results\n",
+ "print 'Total e.m.f induced on open circuit is %.4f p.u.'%(E_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total e.m.f induced on open circuit is 1.5149 p.u.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page no : 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp((math.pi*Theeeta/180.)*1j);\n",
+ "\n",
+ "# Variables\n",
+ "Z1 = complex(0,3) \t\t\t#impedance of alternator 1\n",
+ "Z2 = complex(0,4) \t\t\t#impedance of alternator 2\n",
+ "Z = 6. #load\n",
+ "\n",
+ "E1 = p2z(220,0) \t\t\t#induced emf vector on no load\n",
+ "E2 = p2z(220,10)\t\t\t#induced emf vector on no load\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I1 = ((E1-E2)*Z+E1*Z2)/(Z*(Z1+Z2)+Z1*Z2)\n",
+ "I2 = ((E2-E1)*Z+E2*Z1)/(Z*(Z1+Z2)+Z1*Z2)\n",
+ "\n",
+ "phi1 = math.degrees(math.atan(I1.imag/I1.real)) \t\t\t#Phasemag returns the angle of complex number in degrees\n",
+ "phi2 = math.degrees(math.atan(I2.imag/I2.real)) \t\t\t#Phasemag returns the angle of complex number in degrees\n",
+ "\n",
+ "I = I1+I2\n",
+ "V = I*Z \t\t\t#Terminal voltage\n",
+ "print 'i) Terminal voltage is %.1f volts at %.2f degrees'%(abs(V),math.degrees(math.atan(V.imag/V.real)))\n",
+ "print 'ii) Currents are %.2f A at %.2f degrees and %.2f A at %.2f degrees \\\n",
+ "\\nTotal current is %.2f A at %.2f degrees '%(abs(I1),math.degrees(math.atan(I1.imag/I1.real)),\\\n",
+ " abs(I2),math.degrees(math.atan(I2.imag/I2.real)),\\\n",
+ " abs(I),math.degrees(math.atan(I.imag/I.real)))\n",
+ "\n",
+ "P1 = abs(V)*abs(I1)*math.cos(math.radians(phi1))\n",
+ "P2 = abs(V)*abs(I2)*math.cos(math.radians(phi2))\n",
+ "print 'iii)Power delivered is %.2f watts and %.2f watts'%(P1,P2)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Terminal voltage is 210.7 volts at -11.66 degrees\n",
+ "ii) Currents are 14.91 A at -17.71 degrees and 20.36 A at -7.24 degrees \n",
+ "Total current is 35.12 A at -11.66 degrees \n",
+ "iii)Power delivered is 2992.46 watts and 4257.11 watts\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page no : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_l = 10000.\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "VA = 10.*10**6\n",
+ "I_FL = VA/(V_l*math.sqrt(3)) \t\t\t#Current at full laod\n",
+ "IX_s = (20./100)*V_ph \t\t\t#product of I and X_s\n",
+ "\n",
+ "# Calculations\n",
+ "X_s = IX_s/I_FL\n",
+ "N_s = 1500.\n",
+ "f = 50.\n",
+ "P = 120*f/N_s \t\t\t#poles\n",
+ "\n",
+ "delta_dash_mech = math.pi/180 \t\t\t#phase print lacement in degree mechanical\n",
+ "delta_dash_elec = delta_dash_mech*(P/2) \t\t\t#P/2 is pole pairs(and not poles)\n",
+ "E = V_ph \t\t\t#math.since alternator is on no-load\n",
+ "P_SY = delta_dash_elec*E**2/X_s \t\t\t#Synchronous Power\n",
+ "P_SY_3ph = P_SY*3 \t\t\t#For 3 phases\n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising Power of armature is %.3f kW.\\\n",
+ "\\nSynchronising Power for 3 phase is %.3f kW'%(P_SY*10**-3,P_SY_3ph*10**-3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising Power of armature is 581.776 kW.\n",
+ "Synchronising Power for 3 phase is 1745.329 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page no : 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6.6*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 3.*10**6\n",
+ "I_FL = VA/(V_L*math.sqrt(3)) \t\t\t#full load current \n",
+ "P = 8.\n",
+ "f = 50. \t\t\t#poles and frequency\n",
+ "\n",
+ "X_s = complex(0,2.9)\t\t\t#X_s = 2.9\n",
+ "delta_dash_mech = math.pi/180\n",
+ "delta_dash_elec = delta_dash_mech*(P/2) \t\t\t#P/2 is pole pairs(and not poles)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "E = V_ph\n",
+ "P_SY = delta_dash_elec*E**2/abs(X_s) \t\t\t#Synchronous Power per phase\n",
+ "P_SY_3ph = P_SY*3 \t\t\t#For 3 phases\n",
+ "print 'i) Synchronising power at no load is %.3f kW'%(P_SY*10**-3)\n",
+ "print ' Total Synchronising power at no load is %.2f kW'%(P_SY_3ph*10**-3)\n",
+ "\n",
+ "N_s = 120*f/P \t\t\t#in rpm\n",
+ "n_s = (N_s)/60 \t\t\t#in rps\n",
+ "T_SY = P_SY_3ph/(2*math.pi*n_s)\n",
+ "print 'Synchronous torque per mechanical degree of phase print lacement is %.2f * 10**3 N-m'%(T_SY*10**-3)\n",
+ "\n",
+ "#part(ii)\n",
+ "phi = math.acos(math.radians(0.85))\n",
+ "I = p2z(I_FL,0)\n",
+ "V = p2z(V_ph,phi)\n",
+ "\n",
+ "E = V+I*X_s\n",
+ "#E leads I by phasemag(E). V leads I by phasemag(V)\n",
+ "\n",
+ "delta = (math.pi/180)* (math.atan(E.imag/E.real)-math.atan(V.imag/V.real) ) \t\t\t#power angle in radians\n",
+ "P_SY2 = abs(E)*abs(V)*math.cos(delta)*math.sin(delta_dash_elec)/abs(X_s)\n",
+ "\n",
+ "P_SY_total_2 = 3*P_SY2\n",
+ "#n_s = T_SY/(P_SY/(2*math.pi) ) \t\t\t#because T_SY = P_SY/(2*math.pi*n_s)\n",
+ "print 'ii)Total Synchronising power is %.0f kW'%(P_SY_total_2*10**-3)\n",
+ "\n",
+ "T_SY2 = P_SY_total_2/(2*math.pi*n_s)\n",
+ "print 'Synchronising torque is %.2f * 10**3 N-m'%(T_SY2/1000)\n",
+ "\n",
+ "# note : book answer is wrong.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Synchronising power at no load is 349.547 kW\n",
+ " Total Synchronising power at no load is 1048.64 kW\n",
+ "Synchronous torque per mechanical degree of phase print lacement is 13.35 * 10**3 N-m\n",
+ "ii)Total Synchronising power is 1074 kW\n",
+ "Synchronising torque is 13.68 * 10**3 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page no : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp(1j*math.pi*Theeeta/180.)\n",
+ "\n",
+ "# Variables\n",
+ "V_l = 10.*10**3\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "R_a = 0.4\n",
+ "Z = complex(R_a,6)\n",
+ "I_a = p2z(300,-math.acos(math.radians(0.8)))\n",
+ "E = V_ph+I_a*Z\n",
+ "\n",
+ "# Calculations\n",
+ "phi = math.acos(0.8)\n",
+ "alternator_op_ph = V_ph*abs(I_a)*math.cos(phi) \t\t\t#Power delivered to infinite bus per phase\n",
+ "\n",
+ "#Power deliered to the altrernator = Power delivewred to bus bar + I**2*R losses in armature\n",
+ "alternator_power = alternator_op_ph+ abs(I_a)**2*R_a\n",
+ "\n",
+ "#this power developed remains constant.change pf to 1 and calculate corresponding armature current\n",
+ "#alternator_power = V_ph*I_a1*math.cos(phi1)+I_a1**2*0.4\n",
+ "#solve the quadratic equation 0.4 I_a1**2+5773.50 I_a1- 1421640 = 0\n",
+ "I_a1 = (-1*V_ph+math.sqrt(V_ph**2-4*R_a*-1*alternator_power))/(2*R_a)\n",
+ "\n",
+ "#also as follows \n",
+ "E1 = V_ph+I_a1*Z\n",
+ "decrease = 100*(abs(E)-abs(E1))/abs(E)\n",
+ "\n",
+ "# Results\n",
+ "print 'Percentage decrease in induced e.m.f is %.1f percent'%(decrease)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage decrease in induced e.m.f is 2.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7 Page no : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#Line PQ for Altermnator 1 and PR for alternaator 2.AB is at frequency x from P where total load is 3000 kW\n",
+ "\n",
+ "# Variables\n",
+ "QC = 2000.\n",
+ "PS = 2.5\n",
+ "#PC = x\n",
+ "TR = 2000.\n",
+ "PT = 2.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#using similarity of triangles PAC and PQS\n",
+ "AC_by_PC = (QC/PS)\t\t\t# because (AC/QC) = (PC/PS)\n",
+ "#using similarity of triangles PCB and PTR\n",
+ "CB_by_PC = (TR/PT) \t\t\t# because (CB/TR) = (PC/PT)\n",
+ "\n",
+ "AC_by_x = AC_by_PC \t\t\t#which implies AC = 12.5*x\n",
+ "CB_by_x = CB_by_PC \t\t\t#which implies CB = 16.67*x\n",
+ "\n",
+ "AC_plus_CB = 3000. \t\t\t#total load at the frequency at P is 30 kW\n",
+ "x = AC_plus_CB/(AC_by_x + CB_by_x)\n",
+ "AC = AC_by_x * x\n",
+ "CB = CB_by_x * x \n",
+ "frequency = 50-x\n",
+ "print 'Loads shared by alternator 1 and 2 are %.2f kW and %.2f kW respectively'%(AC,CB)\n",
+ "\n",
+ "#construction for max load: RT is extended to cut PQ at X.\n",
+ "QS = 2000.\n",
+ "RT = 2000. \t\t\t#see figure\n",
+ "XT = QS*(PT/PS)\n",
+ "RX = RT+XT \t\t\t#maximum load\n",
+ "\n",
+ "print 'Maximum load is %.0f kW'%(RX)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loads shared by alternator 1 and 2 are 1333.33 kW and 1666.67 kW respectively\n",
+ "Maximum load is 3600 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page no : 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P_out = 1500.*10**3\n",
+ "V_L = 11000.\n",
+ "phi = math.acos(0.8)\n",
+ "I_L = P_out/(math.sqrt(3)*V_L*math.cos(phi))\n",
+ "\n",
+ "I_L_actv = I_L*math.cos(phi) \t\t\t#wattful or active component of current\n",
+ "I_L_reactive = I_L*math.sin(phi) \t\t\t#wattless or reactive component of current\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_each = I_L/2 \t\t\t#in identical conditions\n",
+ "I_arm1 = 45. \t\t\t#given\n",
+ "I_1_reactive = math.sqrt(I_arm1**2-39.364**2 ) \t\t\t#from the power triangle \n",
+ "I_2_reactive = 59.046-21.80\n",
+ "I_a_2 = math.sqrt( 39.364**2 + I_2_reactive**2 ) \t\t\t#required armature current of 2nd alternator\n",
+ "print 'Required armature current of second alternator is %.4f A'%(I_a_2)\n",
+ "#power factors of 2 machines\n",
+ "cos_phi1 = 39.364/45 \n",
+ "cos_phi2 = 39.364/54.1921\n",
+ "\n",
+ "print 'Power factors are %.4f lagging and %.4f lagging'%(cos_phi1,cos_phi2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required armature current of second alternator is 54.1921 A\n",
+ "Power factors are 0.8748 lagging and 0.7264 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page no : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#Line AB for Altermnator 1 and AC for alternator 2.AF is at frequency x measured from A where total load is 3000 kW\n",
+ "# Variables\n",
+ "BO = 2000.\n",
+ "AO = 5.\t\t\t#AF = x\n",
+ "DC = 2000.\n",
+ "AD = 3.\n",
+ "#AF = x\n",
+ "\n",
+ "# Calculations\n",
+ "#using similarity of triangles AEF and ABO\n",
+ "EF_by_AF = (BO/AO)\t\t\t# because (EF/BO) = (AF/AO)\n",
+ "#using similarity of triangles AFG and ADC\n",
+ "FG_by_AF = (DC/AD) \t\t\t#because (FG/DC) = (AF/AD)\n",
+ "\n",
+ "EF_by_x = EF_by_AF \t\t\t#which implies EF = 400*x\n",
+ "FG_by_x = FG_by_AF \t\t\t#which implies FG = 666.67*x\n",
+ "\n",
+ "EF_plus_FG = 3000 \t\t\t#total load at the frequency at P is 3000 kW\n",
+ "x = EF_plus_FG/(EF_by_x + FG_by_x)\n",
+ "EF = (BO/AO)*x\n",
+ "FG = (DC/AD)*x \n",
+ "\n",
+ "# Results\n",
+ "print 'Loads shared by machine 1 and 2 are %.0f kW and %.0f kW respectively'%(EF,FG)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loads shared by machine 1 and 2 are 1125 kW and 1875 kW respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page no : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "# Variables\n",
+ "V_l = 6000.\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "VA = 2000.*10**3\n",
+ "I_FL = VA/(V_l*math.sqrt(3))\n",
+ "X_s = complex(0,6) \t\t\t#synchronous reactance\n",
+ "P = 8.\n",
+ "f = 50.\n",
+ "\n",
+ "delta_mech = math.pi/180 \t\t\t#phase print lacemant in degree mechanical \n",
+ "#phase print lacemant in degree electrical\n",
+ "delta_elec = delta_mech*(P/2) \t\t\t#P/2 is pole pairs(and not poles)\n",
+ "\n",
+ "phi = math.acos(math.radians(0.8))\n",
+ "V = p2z(V_ph,phi)\n",
+ "E = V+I_FL*X_s\n",
+ "#E leads I by phasemag(E). V leads I by phasemag(V)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "delta = (math.pi/180)* (math.atan(E.imag/E.real)-(math.atan(V.imag/V.real ) ) ) \t\t\t#power angle in radians\n",
+ "P_SY = abs(E)*abs(V)*math.cos(delta)*math.sin(delta_elec)/abs(X_s) \t\t\t#Synchronising power\n",
+ "P_SY_total = 3*P_SY \t\t\t#totla Synchronising power \n",
+ "print 'Total Synchronising power is %.3f kW'%(10**-3*P_SY_total)\n",
+ "\n",
+ "N_s = 120*f/P \t\t\t#in rpm\n",
+ "n_s = (N_s)/60 \t\t\t#in rps\n",
+ "T_SY = P_SY_total/(2*math.pi*n_s)\n",
+ "print 'Synchronising torque is %.0f N-m'%(T_SY)\n",
+ "\n",
+ "# note : book answer it seems wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Synchronising power is 444.753 kW\n",
+ "Synchronising torque is 5663 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page no : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "# Variables\n",
+ "V_l = 3300.\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "VA = 3*10.**6\n",
+ "I_FL = VA/(V_l*math.sqrt(3))\n",
+ "IX_s = (25./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = complex(0,IX_s/I_FL) \t\t\t#synchronous reactance\n",
+ "N_s = 1000. \t\t\t#in rpm\n",
+ "P = 6.\n",
+ "f = 50.\n",
+ "\n",
+ "# Calculations and Results\n",
+ "delta_dash_mech = math.pi/180\n",
+ "delta_dash_elec = delta_dash_mech*(P/2) \t\t\t#P/2 is pole pairs(and not poles)\n",
+ "\n",
+ "I = I_FL\n",
+ "phi = math.acos(math.radians(0.8))\n",
+ "V = p2z(V_ph,phi)\n",
+ "E = V+I*X_s\n",
+ "#E leads I by phasemag(E). V leads I by phasemag(V)\n",
+ "\n",
+ "delta = (math.pi/180)* (math.atan(E.imag/E.real)-math.atan(V.imag/V.real) ) \t\t\t#power angle in radians\n",
+ "P_SY = abs(E)*abs(V)*math.cos(delta)*math.sin(delta_dash_elec)/abs(X_s) \t\t\t#Synchronising power per phase\n",
+ "print 'Synchronising power is %.3f kW'%(10**-3*P_SY)\n",
+ "P_SY_total = 3*P_SY \t\t\t#Total Synchronising power\n",
+ "\n",
+ "N_s = 120*f/P \t\t\t#in rpm\n",
+ "n_s = (N_s)/60 \t\t\t#in rps\n",
+ "T_SY = P_SY_total/(2*math.pi*n_s)\n",
+ "print 'Synchronising torque is %.0f N-m'%(T_SY)\n",
+ "\n",
+ "print 'Answer mismatches due to approximation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power is 217.160 kW\n",
+ "Synchronising torque is 6221 N-m\n",
+ "Answer mismatches due to approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12 Page no : 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_l = 3300.\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "VA = 3*10.**6\n",
+ "I_FL = VA/(V_l*math.sqrt(3))\n",
+ "IX_s = (20./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = complex(0,IX_s/I_FL) \t\t\t#synchronous reactance\n",
+ "N_s = 1000.\n",
+ "P = 6.\n",
+ "f = 50.\n",
+ "\n",
+ "delta_dash_mech = math.pi/180 \t\t\t#phase print lacement in degree mechanical\n",
+ "#phase print lacement in degree electrical\n",
+ "delta_dash_elec = delta_dash_mech*(P/2) \t\t\t#P/2 is pole pairs(and not poles)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "E = V_ph\n",
+ "Z_s = X_s \t\t\t#math.since R = 0\n",
+ "P_SY = abs(E)*abs(V_ph)*delta_dash_elec/abs(Z_s) \t\t\t#Synchronising power per phase\n",
+ "print 'Synchronising power is %.3f kW'%(10**-3*P_SY)\n",
+ "P_SY_total = 3*P_SY \t\t\t#Total Synchronising power\n",
+ "print '3 phase Synchronising power is %.3f kW'%(10**-3*P_SY_total)\n",
+ "\n",
+ "N_s = 120*f/P \t\t\t#in rpm\n",
+ "n_s = (N_s)/60 \t\t\t#in rps\n",
+ "T_SY = P_SY_total/(2*math.pi*n_s)\n",
+ "print 'Synchronising torque is %.0f N-m'%(T_SY)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power is 261.799 kW\n",
+ "3 phase Synchronising power is 785.398 kW\n",
+ "Synchronising torque is 7500 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13 Page no : 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 11.*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 700.*10**3\n",
+ "I_FL = VA/(math.sqrt(3)*V_L) \t\t\t#full load current\n",
+ "IR_a = (1.5/100)*V_ph \t\t\t#product of I and R_a\n",
+ "R_a = IR_a/I_FL\n",
+ "IX_s = (14./100)*V_ph \t\t\t# product of I and X_s\n",
+ "X_s = IX_s/I_FL \t\t\t#synchronous reactance\n",
+ "\n",
+ "# Calculations\n",
+ "#at full load and 0.8 pf\n",
+ "I = I_FL\n",
+ "phi = math.acos(0.8)\n",
+ "V_ph = complex(V_ph*math.cos(phi),V_ph*math.sin(phi)) \t\t\t#just introduced the angle\n",
+ "E_ph = math.sqrt( (abs(V_ph)*math.cos(phi)+ IR_a)**2+ (abs(V_ph)*math.sin(phi)+ IX_s)**2 )\n",
+ "\n",
+ "Poles = 4.\n",
+ "f = 50. \t\t\t#poles and frequency\n",
+ "delta = math.asin( (abs(V_ph)*math.sin(phi)+IX_s)/E_ph) -phi\n",
+ "delta_dash_mech = (math.pi/180) \t\t\t#print lacement in degree mechanical\n",
+ "\t\t\t#print lacement in degree electrical\n",
+ "delta_dash_elec = delta_dash_mech*(Poles/2)\n",
+ "P_SY = abs(E_ph)*abs(V_ph)*math.cos(delta)*math.sin(delta_dash_elec)/X_s \t\t\t#Synchronising power per phase \n",
+ "P_SY_total = 3*P_SY \t\t\t#total Synchronising power\n",
+ "\n",
+ "ns = 120*f/(60*Poles) \t\t\t#in r.p.s\n",
+ "T_SY = P_SY_total/(2*math.pi*ns) \t\t\t#Synchronising torque \n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power is %.2fkW'%(P_SY_total/1000)\n",
+ "print 'Synchronising torque is %.2f N-m'%(T_SY)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power is 191.25kW\n",
+ "Synchronising torque is 1217.53 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.14 Page no : 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_l = 9.*10**3\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "VA = 5.5*10**6\n",
+ "I_FL = VA/(V_l*math.sqrt(3))\n",
+ "IX_s = (25./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = complex(0,IX_s/I_FL) \t\t\t#synchronous reactance\n",
+ "N_s = 1500. \t\t\t#in rpm\n",
+ "n_s = N_s/60 \t\t\t#in rps\n",
+ "f = 50.\n",
+ "P = 120.*f/N_s \t\t\t#frequency and pole\n",
+ "\n",
+ "# Calculations\n",
+ "delta_dash_mech = math.pi/180 \t\t\t#print lacemnt in degree mechanical \n",
+ "#print lacemnt in degree electrical\n",
+ "delta_dash_elec = delta_dash_mech*(P/2) \t\t\t#P/2 is pole pairs(and not poles)\n",
+ "\n",
+ "E = V_ph\n",
+ "P_SY = abs(E)*abs(V_ph)*delta_dash_elec/abs(X_s) \t\t\t#Synchronising power per phase\n",
+ "P_SY_total = 3*P_SY \t\t\t#Total Synchronising power\n",
+ "\n",
+ "T_SY = P_SY_total/(2*math.pi*n_s)\n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising torque is %.2f N-m'%(T_SY)\n",
+ "print 'Answer mismatches due to approximation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising torque is 4888.89 N-m\n",
+ "Answer mismatches due to approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15 Page no : 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6.*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 2000.*10**3\n",
+ "I_FL = VA/(math.sqrt(3)*V_L) \n",
+ "I = I_FL\n",
+ "\n",
+ "# Calculations\n",
+ "X_s = 1.2\n",
+ "R_a = 0.01 \t\t\t#both per unit\n",
+ "IR_a = (1/100)*V_ph \t\t\t#product of I and R_a\n",
+ "R_a = IR_a/I_FL\n",
+ "IX_s = (120/100)*V_ph \t\t\t#product of I and X_s\n",
+ "#IX_s = (12/100)*V_ph \t\t\t# this is the mistake made in the textbook\n",
+ "X_s = IX_s/I_FL\n",
+ "\n",
+ "#at full load and 0.8 pf\n",
+ "phi = math.acos(0.8)\n",
+ "#V_ph = complex(V_ph*math.cos(phi)V_ph*math.sin(phi)) \t\t\t#just introduced the angle\n",
+ "E_ph = math.sqrt( (abs(V_ph)*math.cos(phi)+ IR_a)**2+ (abs(V_ph)*math.sin(phi)+ IX_s)**2 )\n",
+ "Poles = 8\n",
+ "f = 50\n",
+ "\n",
+ "delta = math.asin( (abs(V_ph)*math.sin(phi)+IX_s)/E_ph) -phi\n",
+ "delta_dash_mech = (math.pi/180) \t\t\t#print lacemnt in degree mechanical \n",
+ "#print lacemnt in degree electrical\n",
+ "delta_dash_elec = delta_dash_mech*(Poles/2)\n",
+ "P_SY = abs(E_ph)*abs(V_ph)*math.cos(delta)*math.sin(delta_dash_elec)/X_s \t\t\t#Synchronising power per phase\n",
+ "P_SY_total = 3*P_SY \t\t\t#total Synchronising power\n",
+ "\n",
+ "ns = 120*f/(60*Poles) \t\t\t#in r.p.s\n",
+ "T_SY = P_SY_total/(2*math.pi*ns) \t\t\t#Synchronising torque \n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power is %.2f kW'%(P_SY_total/1000)\n",
+ "print 'Synchronising torque is %.2f N-m'%(T_SY)\n",
+ "\n",
+ "print 'Note that answer obtained doesnt match with textbook due to the following reasons: \\\n",
+ "\\niIX_s is considered wrong in textbook.It should have been 4156.92instead of 415.692 To verify this use commented statement of IX_s line 13and notice that it matches with textbook ans then' \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power is 223.22 kW\n",
+ "Synchronising torque is 2960.56 N-m\n",
+ "Note that answer obtained doesnt match with textbook due to the following reasons: \n",
+ "iIX_s is considered wrong in textbook.It should have been 4156.92instead of 415.692 To verify this use commented statement of IX_s line 13and notice that it matches with textbook ans then\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.16 Page no : 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "E = 11.*10**3/math.sqrt(3)\n",
+ "I_sc = 1000.\n",
+ "Pole = 2.\n",
+ "f = 50.\n",
+ "delta_dash_mech = 1*math.pi/180 \t\t\t#print lacemnt in degree mechanical \n",
+ "\n",
+ "# Calculations\n",
+ "#print lacemnt in degree electrical \n",
+ "delta_dash_elec = delta_dash_mech*(Pole/2)\n",
+ "P_SY = E*I_sc*delta_dash_mech \t\t\t#Synchronising power per phase\n",
+ "P_SY_total = P_SY*3 \t\t\t#total Synchronising power\n",
+ "\n",
+ "ns = 120*f/(60*Pole) \t\t\t#in r.p.s\n",
+ "T_SY = P_SY_total/(2*math.pi*ns) \t\t\t#Synchronising torque \n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power is %.2f kW'%(P_SY_total/1000)\n",
+ "print 'Synchronising torque is %.2f N-m'%(T_SY)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power is 332.53 kW\n",
+ "Synchronising torque is 1058.48 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17 Page no : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#Line PQ for Altermnator 1 and PR for alternaator 2.AB is at frequency x from P where total load is 30 MW\n",
+ "# Variables\n",
+ "QT = 25.\n",
+ "PT = 2.\n",
+ "#PC = x\n",
+ "SR = 25.\n",
+ "PS = 1.5\n",
+ "\n",
+ "# Calculations\n",
+ "#using similarity of triangles PAC and PQT\n",
+ "AC_by_PC = (QT/PT)\t\t\t# because (AC/QT) = (PC/PT)\n",
+ "#using similarity of triangles PCB and PSR\n",
+ "CB_by_PC = (SR/PS)\n",
+ "\n",
+ "AC_by_x = AC_by_PC \t\t\t#which implies AC = 12.5*x\n",
+ "CB_by_x = CB_by_PC \t\t\t#which implies CB = 16.67*x\n",
+ "\n",
+ "AC_plus_CB = 30 \t\t\t#total load at the frequency at P is 30 MW\n",
+ "x = AC_plus_CB/(AC_by_x + CB_by_x)\n",
+ "AC = 12.5*x\n",
+ "CB = 16.67*x \n",
+ "frequency = 50-x\n",
+ "\n",
+ "# Results\n",
+ "print 'Loads shared by alternator 1 and 2 are %.2f MW and %.2f MW respectively'%(AC,CB)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loads shared by alternator 1 and 2 are 12.86 MW and 17.15 MW respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18 Page no : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "# Variables\n",
+ "load_total = 1600.*10**3\n",
+ "pf = 1/math.sqrt(2) \t\t\t#lag\n",
+ "V_L = 6600.\n",
+ "\n",
+ "# Calculations\n",
+ "I_L = p2z(load_total/(math.sqrt(3)*V_L*pf),-1*math.acos(math.radians(pf)) )\n",
+ "I_1 = p2z(90,-1*math.acos(math.radians(0.8)))\n",
+ "I_2 = I_L-I_1\n",
+ "phi = abs(math.atan(I_2.imag/I_2.real))\n",
+ "I_a = abs(I_2)\n",
+ "R_a = 1.05\n",
+ "X_s = 5 \t\t\t#resistance and synchronous reactance per phase\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_ph = math.sqrt( (V_ph*math.cos(phi)+I_a*R_a )**2 + ( V_ph*math.sin(phi)+I_a*X_s )**2 )\n",
+ "E_line = math.sqrt(3)*E_ph\n",
+ "\n",
+ "# Results\n",
+ "print 'Excitation of second alternator is %.2f V '%(E_line)\n",
+ "print ' The corresponding field current from the graph is about 310 A'\n",
+ "print 'Note: The answer obtained will differ from textbook answer because of higher degree of accuracy while storing I_2 and the improper rounding off of I_2 in the textbook'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Excitation of second alternator is 6884.65 V \n",
+ " The corresponding field current from the graph is about 310 A\n",
+ "Note: The answer obtained will differ from textbook answer because of higher degree of accuracy while storing I_2 and the improper rounding off of I_2 in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19 Page no : 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 10.*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 5.*10**6\n",
+ "I_FL = VA/(math.sqrt(3)*V_L) \t\t\t#full-load current\n",
+ "IX_s = (20./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = IX_s/I_FL \t\t\t#synchronous reactance\n",
+ "P = 4.\n",
+ "\n",
+ "# Calculations\n",
+ "delta_dash_mech = 1*(math.pi/180) \t\t\t#print lacement in degree mechanical \n",
+ "#print lacement in degree electrical\n",
+ "delta_dash_elec = delta_dash_mech*(P/2)\n",
+ "E = V_ph \t\t\t#at no load\n",
+ "P_SY = delta_dash_elec*E**2/X_s \t\t\t#Synchronising power per phase\n",
+ "P_SY_total = P_SY*3 \t\t\t#Total Synchronising power\n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power per phase is %.2fkW \\\n",
+ "\\nTotal Synchronising power is %.2fkW '%(P_SY/1000,P_SY_total/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power per phase is 290.89kW \n",
+ "Total Synchronising power is 872.66kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20 Page no : 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Power_total = 1.414 \t\t\t#per unit\n",
+ "V_L = 1. \t\t\t#per unit\n",
+ "phi_t = math.acos(0.707)\n",
+ "I_L_T = Power_total/(math.sqrt(3)*V_L*math.cos(phi_t)) \t\t\t#Total current\n",
+ "\n",
+ "# Calculations\n",
+ "#Current supplied by each alternator\n",
+ "I_1 = I_L_T/2\n",
+ "I_2 = I_1\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "\n",
+ "phi = math.acos(0.707)\n",
+ "R_a = 0\n",
+ "X_s = 0.6 \t\t\t#resistacne and synchronous reactance\n",
+ "E_ph = math.sqrt( (V_ph*math.cos(phi)+ I_1*R_a)**2 + (V_ph*math.sin(phi)+I_1*X_s)**2 )\n",
+ "delta = math.atan((I_1*X_s+V_ph*math.sin(phi)) / (V_ph*math.cos(phi))) - phi \t\t\t#power angle\n",
+ "\n",
+ "# Results\n",
+ "print 'EMF is %.4f p.u. and power angle is %.2f degrees '%(E_ph,delta*180/math.pi)\n",
+ "print 'Following assumptions were made :'\n",
+ "print '1.Terminal or bus bar voltage at ppoint of connection is constant'\n",
+ "print '2.The alternators are identical and are initially equally excited'\n",
+ "print '3.The power supplied by prime movers is adjusted so that each machine carries half the load represented by external impedance Z = R+ j 2pifL %( where R and L are constant'\n",
+ "print '4.The stator resistance is negligible'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "EMF is 0.8580 p.u. and power angle is 16.58 degrees \n",
+ "Following assumptions were made :\n",
+ "1.Terminal or bus bar voltage at ppoint of connection is constant\n",
+ "2.The alternators are identical and are initially equally excited\n",
+ "3.The power supplied by prime movers is adjusted so that each machine carries half the load represented by external impedance Z = R+ j 2pifL %( where R and L are constant\n",
+ "4.The stator resistance is negligible\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21 Page no : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_l = 480.\n",
+ "X_d = 0.1\n",
+ "X_q = 0.075\n",
+ "R_a = 0. \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "I_l = 1200.\n",
+ "I_ph = I_l/math.sqrt(3)\n",
+ "V_ph = V_l\n",
+ "V_t = V_l\n",
+ "I_a = I_ph\n",
+ "\n",
+ "# Calculations\n",
+ "phi = math.acos(0.8)\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_a*X_q)/(V_t*math.cos(phi)+I_a*R_a) )\n",
+ "delta = psi-phi \n",
+ "\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "\n",
+ "# Results\n",
+ "print 'Excitation e.m.f is %.f V '%(E_f)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Excitation e.m.f is 524 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page no : 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "VA = 3.5*10**6\n",
+ "P = 32. \t\t\t#Poles\n",
+ "Power = 2.5*10**6 \t\t\t#In watts\n",
+ "V_l = 6.6*10**3\n",
+ "phi = math.acos(0.8)\n",
+ "I_l = Power/(V_l*math.cos(phi)*math.sqrt(3))\n",
+ "X_d = 9.6\n",
+ "X_q = 6.\n",
+ "R_a = 0. \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "\n",
+ "# Calculations\n",
+ "V_t = V_l/math.sqrt(3)\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_l*X_q)/(V_t*math.cos(phi)+I_l*R_a) )\n",
+ "delta = psi-phi\n",
+ "I_s = I_l\n",
+ "I_d = I_s*math.sin(psi)\n",
+ "I_q = I_s*math.cos(psi)\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "regulation = 100*(E_f-V_t)/V_t\n",
+ "\n",
+ "# Results\n",
+ "print 'percentage regulation is %.2f percent'%(regulation)\n",
+ "print 'Excitation emf = %.0f V'%(E_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage regulation is 50.85 percent\n",
+ "Excitation emf = 5748 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23 Page no : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "X_d = 7.6\n",
+ "X_q = 4.5\n",
+ "R_a = 0.15 \t\t\t#armature resistance and synchronous reactance of directquadrature \n",
+ "axisV_l = 13.8*10**3\n",
+ "V_l = 13.8*10**3\n",
+ "V_t = V_l/math.sqrt(3)\n",
+ "phi = math.acos(0.8)\n",
+ "VA = 25*10**6\n",
+ "I_a = VA/(math.sqrt(3)*V_l)\n",
+ "psi = math.atan( (V_t*math.cos(phi)+I_a*X_q)/(V_t*math.sin(phi)+I_a*R_a) )\n",
+ "\n",
+ "# Calculations\n",
+ "delta = psi-phi\n",
+ "I_s = I_a\n",
+ "I_d = I_s*math.sin(psi)\n",
+ "I_q = I_s*math.cos(psi)\n",
+ "\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "regulation = 100*(E_f-V_t)/V_t\n",
+ "\n",
+ "# Results\n",
+ "print 'percentage regulation is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage regulation is 79.30 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24 Page no : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "X_d = 1.\n",
+ "X_q = 0.6\n",
+ "R_a = 0. \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "phi = math.acos(0.8) \t\t\t#lag\n",
+ "V_t = 1.\n",
+ "I_a = 1. \t\t\t#full load\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_a*X_q)/(V_t*math.cos(phi)+I_a*R_a) )\n",
+ "\n",
+ "# Calculations\n",
+ "delta = psi-phi\n",
+ "I_s = I_a\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "regulation = 100*(E_f-V_t)/V_t\n",
+ "\n",
+ "# Results\n",
+ "print 'percentage regulation is %.2f percent'%(regulation)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage regulation is 77.50 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25 Page no : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_a = 10.\n",
+ "phi = 20. \t\t\t#lag and degrees\n",
+ "V_t = 400.\n",
+ "X_d = 10.\n",
+ "X_q = 6.5\n",
+ "R_a = 0. \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "\n",
+ "# Calculations\n",
+ "psi = math.atan((V_t*math.sin(math.radians(phi))+I_a*X_q)/(V_t*math.cos(math.radians(phi))+I_a*R_a))\n",
+ "delta = math.degrees(psi)-phi\n",
+ "I_d = math.degrees(I_a*math.sin(math.radians(psi)))\n",
+ "I_q = (I_a*math.cos(psi))\n",
+ "\n",
+ "# Results\n",
+ "print 'Load angle is %.2f degrees '%(delta)\n",
+ "print 'I_d and I_q are %.4f A and %.4f A respectively '%(I_d,I_q )\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load angle is 8.23 degrees \n",
+ "I_d and I_q are 4.9272 A and 8.8105 A respectively \n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26 Page no : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "X_d = 0.8\n",
+ "X_q = 0.5\n",
+ "R_a = 0.02 \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "\n",
+ "\t\t\t#case(i) lag\n",
+ "phi = math.acos(0.8)\n",
+ "V_t = 1\n",
+ "I_a = 1\t\t\t#full-load\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_a*X_q)/(V_t*math.cos(phi)+I_a*R_a) )\n",
+ "delta = psi-phi\n",
+ "\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "regulation = 100*(E_f-V_t)/V_t\n",
+ "print 'percentage regulation at 0.8 pf lag is %.2f percent'%(regulation)\n",
+ "\n",
+ "\t\t\t#case(ii) lead\n",
+ "phi2 = -1*math.acos(0.8) \t\t\t#minus sign because of leading pf\n",
+ "psi2 = math.atan( (V_t*math.sin(phi2)+I_a*X_q)/(V_t*math.cos(phi2)+I_a*R_a) )\n",
+ "delta2 = psi2-phi2\n",
+ "\n",
+ "I_d2 = I_a*math.sin(psi2)\n",
+ "I_q2 = I_a*math.cos(psi2)\n",
+ "\n",
+ "E_f2 = V_t*math.cos(delta2)+I_d2*X_d+I_q2*R_a\n",
+ "regulation2 = 100*(E_f2-V_t)/V_t\n",
+ "print 'percentage regulation at 0.8 pf lead is %.f percent'%(regulation2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage regulation at 0.8 pf lag is 61.25 percent\n",
+ "percentage regulation at 0.8 pf lead is -21 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.27 Page no : 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "kW = array([800,500,1000,600])\n",
+ "cosphi = array([1,0.9,0.8,0.9])\n",
+ "tanphi = tan(arccos(cosphi))\n",
+ "kVAR = kW*tanphi\n",
+ "\n",
+ "# Calculations\n",
+ "kW_total = kW[0]+kW[1]+kW[2]+kW[3]\n",
+ "kVAR_total = kVAR[0]+kVAR[1]+kVAR[2]+-1*kVAR[3] \t\t\t#4th case is leading \n",
+ "\n",
+ "phi_c = math.atan(kVAR_total/kW_total) \t\t\t#total power factor angle\n",
+ "phi_1 = math.acos(0.95)\t\t\t#pf of machine 1\n",
+ "kW_1 = 1000 \t\t\t#active component of machine 1\n",
+ "kVAR_1 = kW_1*math.tan(phi_1) \t\t\t#reactive component of machine 1\n",
+ "kW_2 = kW_total - kW_1 \t\t\t#active component of machine 1\n",
+ "kVAR_2 = kVAR_total-kVAR_1 \t\t\t#reactive component of machine 2\n",
+ "\n",
+ "phi_2 = math.atan(kVAR_2/kW_2) \n",
+ "pf_2 = math.cos(phi_2) \t\t\t#power factor of machine 2\n",
+ "\n",
+ "# Results\n",
+ "print 'Output of second alternator = %.0f kW'%(kW_2)\n",
+ "print 'power factor of machine 2 = %.2f and lagging'%(pf_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output of second alternator = 1900 kW\n",
+ "power factor of machine 2 = 0.98 and lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28 Page no : 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "kW = array([250,300,150])\n",
+ "cosphi = array([0.9,0.75,0.8]) \t\t\t#all lagging\n",
+ "tanphi = tan(arccos(cosphi))\n",
+ "kVAR = kW*tanphi\n",
+ "\n",
+ "# Calculations\n",
+ "kW_total = kW[0]+kW[1]+kW[2]\n",
+ "kVAR_total = kVAR[0]+kVAR[1]+kVAR[2] \n",
+ "\n",
+ "phi_1 = math.acos(0.8)\t\t\t#pf of machine 1\n",
+ "kW_1 = 100 \t\t\t#active component of machine 1\n",
+ "kVAR_1 = kW_1*math.tan(phi_1) \t\t\t#reactive component of machine 1\n",
+ "kW_2 = kW_total - kW_1 \t\t\t#active component of machine 1\n",
+ "kVAR_2 = kVAR_total-kVAR_1 \t\t\t#reactive component of machine 2\n",
+ "phi_2 = math.atan(kVAR_2/kW_2) \n",
+ "pf_2 = math.cos(phi_2) \t\t\t#power factor of machine 2\n",
+ "\n",
+ "# Results\n",
+ "print 'Output of second alternator = %.0f kW'%(kW_2)\n",
+ "print 'power factor of machine 2 = %.4f and lagging'%(pf_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output of second alternator = 600 kW\n",
+ "power factor of machine 2 = 0.8172 and lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29 Page no : 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6.6*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "V_t = V_ph\n",
+ "X_d = 9.6\n",
+ "X_q = 6.\n",
+ "R_a = 0. \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "VA = 3.5*10**6\n",
+ "I_L = VA/(math.sqrt(3)*V_L)\n",
+ "\n",
+ "# Calculations\n",
+ "P = 2.5*10**6\n",
+ "phi = math.acos(0.8)\n",
+ "I_a = P/(math.sqrt(3)*V_L*math.cos(phi))\n",
+ "psi = math.atan( (V_t*math.sin(phi)+ I_a*X_q)/(V_t*math.cos(phi)+ I_a*R_a) )\n",
+ "\n",
+ "delta = psi-phi\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(phi)\n",
+ "\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "regulation = 100*(E_f-V_t)/V_t\n",
+ "P_max = (V_ph**2/2)*((X_d-X_q)/(X_d*X_q))*(math.sin(2*delta))\n",
+ "\n",
+ "# Results\n",
+ "print 'percentage voltage regulation is %.2f percent'%(regulation)\n",
+ "print 'Power under open circuit is %.1f kW per phase'%(P_max/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage voltage regulation is 50.85 percent\n",
+ "Power under open circuit is 231.1 kW per phase\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.30 Page no : 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3.3*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 3.*10**6\n",
+ "I_FL = VA/(math.sqrt(3)*V_L)\n",
+ "IX_s = (25./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = complex(0,IX_s/I_FL)\n",
+ "N_s = 1000 \t\t\t#in r.p.m\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "Poles = 6.\n",
+ "f = 50.\n",
+ "delta_dash_mech = (math.pi/180) \t\t\t#print lacement in degree mechanical\n",
+ "#print lacement in degree electrical\n",
+ "delta_dash_elec = delta_dash_mech*(Poles/2)\n",
+ "\n",
+ "I = I_FL\n",
+ "phi = math.acos(0.8)\n",
+ "V = complex(V_ph*math.cos(phi),V_ph*math.sin(phi))\n",
+ "E = V+ I*X_s\n",
+ "\n",
+ "delta = (math.pi/180)*math.atan(E.imag/E.real)-phi \t\t\t#E leads I by (math.pi/180)*phasemag(E) and V leads I by phi radians \n",
+ "P_SY = abs(E)*abs(V_ph)*math.cos(delta)*math.sin(delta_dash_elec)/abs(X_s) \t\t\t#Synchronising power per phase \n",
+ "P_SY_total = 3*P_SY \t\t\t#total Synchronising power\n",
+ "\n",
+ "ns = 120*f/(60*Poles) \t\t\t#in r.p.m\n",
+ "T_SY = P_SY_total/(2*math.pi*ns) \t\t\t#Synchronising torque \n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power per phase is %.3f kW'%(P_SY/1000)\n",
+ "print 'Synchronising torque is %.0f N-m'%(T_SY)\n",
+ "print 'Answer mismatches due to improper approximation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power per phase is 197.555 kW\n",
+ "Synchronising torque is 5660 N-m\n",
+ "Answer mismatches due to improper approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31 Page no : 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3.3*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 3.*10**6\n",
+ "I_FL = VA/(math.sqrt(3)*V_L)\n",
+ "IX_s = (20./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = complex(0,IX_s/I_FL)\n",
+ "N_s = 1000. \t\t\t#in r.p.m\n",
+ "Poles = 6.\n",
+ "f = 50.\n",
+ "\n",
+ "# Calculations\n",
+ "delta_dash_mech = (math.pi/180) \t\t\t#print lacement in degree mechanical\n",
+ "#print lacement in degree electrical \n",
+ "delta_dash_elec = delta_dash_mech*(Poles/2)\n",
+ "\n",
+ "#E = V as the alternator is on no-load and X_s = Z_s\n",
+ "P_SY = abs(V_ph)**2*(delta_dash_elec)/abs(X_s) \t\t\t#Synchronising power per phase\n",
+ "P_SY_total = 3*P_SY \t\t\t#total Synchronising power\n",
+ "\n",
+ "ns = 120*f/(60*Poles) \t\t\t#in r.p.s\n",
+ "T_SY = P_SY_total/(2*math.pi*ns) \t\t\t#Synchronising torque \n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power per phase is %.3f kW'%(P_SY/1000)\n",
+ "print 'Total Synchronising power is %.3f kW'%(P_SY_total/1000)\n",
+ "print 'Synchronising torque is %.0f N-m'%(T_SY)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power per phase is 261.799 kW\n",
+ "Total Synchronising power is 785.398 kW\n",
+ "Synchronising torque is 7500 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32 Page no : 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 11.*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 700.*10**3\n",
+ "I_FL = VA/(math.sqrt(3)*V_L)\n",
+ "IX_s = (14./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = IX_s/I_FL\n",
+ "#X_s = complex(0,IX_s/I_FL)\n",
+ "IR_a = (1.5/100)*V_ph \t\t\t#product of I and R_a\n",
+ "R_a = IR_a/I_FL\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "I = I_FL\n",
+ "phi = math.acos(0.8)\n",
+ "V = complex(V_ph*math.cos(phi),V_ph*math.sin(phi))\n",
+ "E_ph = math.sqrt( (V_ph*math.cos(phi)+IR_a)**2 +(V_ph*math.sin(phi)+IX_s)**2 )\n",
+ "delta = math.asin((V_ph*math.sin(phi)+IX_s)/E_ph) -phi\n",
+ "\n",
+ "Poles = 4.\n",
+ "f = 50.\n",
+ "delta_dash_mech = (math.pi/180) \t\t\t#phase print lacemnt in degree mechanical\n",
+ "delta_dash_elec = delta_dash_mech*(Poles/2)\t\t\t#phase print lacemnt in degree electrical\n",
+ "\n",
+ "P_SY = abs(V_ph)*abs(E_ph)*math.cos(delta)*math.sin(delta_dash_elec)/abs(X_s) \t\t\t#Synchronising power per phase\n",
+ "P_SY_total = 3*P_SY \t\t\t#total Synchronising power\n",
+ "\n",
+ "ns = 120*f/(60*Poles) \t\t\t#in r.p.s\n",
+ "T_SY = P_SY_total/(2*math.pi*ns) \t\t\t#Synchronising torque \n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power per phase is %.3f kW'%(P_SY/1000)\n",
+ "print 'Synchronising power is %.3f kW ; '%(P_SY/1000)\n",
+ "print 'Total Synchronising power is %.3f kW'%(P_SY_total/1000)\n",
+ "print 'Synchronising torque is %.2f N-m'%(T_SY)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power per phase is 63.750 kW\n",
+ "Synchronising power is 63.750 kW ; \n",
+ "Total Synchronising power is 191.249 kW\n",
+ "Synchronising torque is 1217.53 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33 Page no : 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*cmath.exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "# Variables\n",
+ "Z1 = complex(0,2)\n",
+ "Z2 = complex(0,3)\n",
+ "Z = 6.\n",
+ "E1 = p2z(230,0)\n",
+ "E2 = p2z(230,10)\n",
+ "\n",
+ "# Calculations\n",
+ "I1 = ((E1-E2)*Z+E1*Z2)/(Z*(Z1+Z2)+Z1*Z2)\n",
+ "I2 = ((E2-E1)*Z+E2*Z1)/(Z*(Z1+Z2)+Z1*Z2)\n",
+ "\n",
+ "phi1 = math.atan(I1.imag/I1.real) \t\t\t#Phasemag returns the angle of complex number in degrees\n",
+ "phi2 = math.atan(I2.imag/I2.real) \t\t\t#Phasemag returns the angle of complex number in degrees\n",
+ "\n",
+ "I = I1+I2\n",
+ "V = I*Z \t\t\t#Terminal voltage\n",
+ "\n",
+ "# Results\n",
+ "print 'i) Terminal voltage is %.2f volts at %.1f degrees'%(abs(V),math.degrees(math.atan(V.imag/V.real)))\n",
+ "print 'ii) Currents are %.2f A at %.0f degrees and %.2f A at %.2f degrees \\\n",
+ "\\nTotal current is %.2f A at %.1f degrees '%(abs(I1),math.degrees(math.atan(I1.imag/I1.real)),abs(I2),\\\n",
+ " math.degrees(math.atan(I2.imag/I2.real)),abs(I) \\\n",
+ " ,math.degrees(math.atan(I.imag/I.real)))\n",
+ "\n",
+ "P1 = abs(V)*abs(I1)*math.cos(math.radians(phi1))\n",
+ "P2 = abs(V)*abs(I2)*math.cos(math.radians(phi2))\n",
+ "print 'iii)Power delivered %.2f watts and %.2f watts'%(P1,P2)\n",
+ "\n",
+ "# note : rounding off error. kindly check the calculations\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Terminal voltage is 224.71 volts at -7.3 degrees\n",
+ "ii) Currents are 14.74 A at -14 degrees and 22.88 A at -3.03 degrees \n",
+ "Total current is 37.45 A at -7.3 degrees \n",
+ "iii)Power delivered 3311.43 watts and 5141.03 watts\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34 Page no : 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "X_d = 0.8\n",
+ "X_q = 0.5 \t\t\t#both per unit\n",
+ "R_a = 0. \t\t\t#assumed\n",
+ "phi = math.acos(0.8)\n",
+ "V_t = 1.\t\t\t#pu\n",
+ "I_a = 1. \t\t\t#full-load\n",
+ "\n",
+ "# Calculations\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_a*X_q)/(V_t*math.cos(phi)+I_a*R_a) )\n",
+ "delta = psi-phi\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "\n",
+ "# Results\n",
+ "print 'Open circuit voltage is %.3f p.u.'%(E_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Open circuit voltage is 1.603 p.u.\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35 Page no : 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6600.\n",
+ "I_L = 110.\n",
+ "phi_1 = math.acos(0.9) \t\t\t#lagging\n",
+ "kW = array([400,1000,400,300])*10**3\n",
+ "cosphi = array([1,0.71,0.8,0.9])\n",
+ "tanphi = tan(arccos(cosphi))\n",
+ "kVAR = kW*tanphi\n",
+ "\n",
+ "# Calculations\n",
+ "kW_total = kW[0]+kW[1]+kW[2]+kW[3]\n",
+ "kVAR_total = kVAR[0]+kVAR[1]+kVAR[2]+kVAR[3]\n",
+ "\n",
+ "phi_c = math.atan(kVAR_total/kW_total) \t\t\t#total power factor angle\n",
+ "load_1 = math.sqrt(3)*V_L*I_L*math.cos(phi_1)\n",
+ "\n",
+ "kW_1 = load_1 \t\t\t#active component of machine 1\n",
+ "kVAR_1 = kW_1*math.tan(phi_1) \t\t\t#reactive component of machine 1\n",
+ "kW_2 = kW_total - kW_1 \t\t\t#active component of machine 1\n",
+ "kVAR_2 = kVAR_total-kVAR_1 \t\t\t#reactive component of machine 2\n",
+ "\n",
+ "phi_2 = math.atan(kVAR_2/kW_2) \n",
+ "pf_2 = math.cos(phi_2) \t\t\t#power factor of machine 2\n",
+ "\n",
+ "# Results\n",
+ "print 'Output of second alternator = %.2f kW'%(kW_2/1000)\n",
+ "print 'Power factor of machine 2 = %.4f and lagging'%(pf_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output of second alternator = 968.28 kW\n",
+ "Power factor of machine 2 = 0.7366 and lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36 Page no : 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 11000.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 2.*10**6\n",
+ "phi = math.acos(0.8)\n",
+ "I_FL = VA/(math.sqrt(3)*V_L)\n",
+ "phi_1 = math.acos(0.8)\n",
+ "IX_s = (20./100)*V_ph \t\t\t#product of I and X_s\n",
+ "\n",
+ "# Calculations\n",
+ "X_s = IX_s/I_FL\n",
+ "I_1 = I_FL\n",
+ "BC = I_1*math.cos(phi_1)*X_s\n",
+ "AB = I_1*math.sin(phi_1)*X_s \n",
+ "OA = V_ph\n",
+ "OC = math.sqrt( (OA+AB)**2+(BC)**2 ) \n",
+ "E_1 = OC\n",
+ "E_2 = 1.25*E_1\n",
+ "OE = E_2\n",
+ "DE = BC\n",
+ "AD = math.sqrt(OE**2-DE**2) -OA \t\t\t#because OE = math.sqrt( (OA+AD)**2 + (DE)**2 )\n",
+ "\n",
+ "I_2sinphi2 = AD/X_s\n",
+ "I_2cosphi2 = I_1*math.cos(phi)\n",
+ "I_2 = math.sqrt( (I_2cosphi2)**2 + (I_2sinphi2)**2 )\n",
+ "phi2 = math.atan( I_2sinphi2/ I_2cosphi2 )\n",
+ "new_pf = math.cos(phi2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Machine current is %.2f A '%(I_2)\n",
+ "print 'Power factor is %.4f lagging'%(new_pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Machine current is 228.62 A \n",
+ "Power factor is 0.3673 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37 Page no : 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ " return RRRR*exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "P_out = 3000.*10**3\n",
+ "V_L = 6.6*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "phi = math.acos(0.8)\n",
+ "I_L = p2z(P_out/(math.sqrt(3)*V_L*math.cos(phi)),-1*(180/math.pi)*phi)\n",
+ "\n",
+ "# Calculations\n",
+ "P_out1 = P_out/2\n",
+ "I_L1 = 150 \t\t\t#given\n",
+ "phi_L1 = math.acos( P_out1/(math.sqrt(3)*V_L*I_L1) )\n",
+ "I_L1 = p2z(I_L1,-1*(180/math.pi)*phi_L1)\n",
+ "\n",
+ "I_L2 = I_L-I_L1\n",
+ "pf_2 = math.cos(math.atan(I_L2.imag/I_L2.real))\n",
+ "Z_1 = complex(0.5,10)\n",
+ "I_1 = I_L1\n",
+ "E_1 = V_ph + I_1*Z_1\n",
+ "delta_1 = math.atan(E_1.imag/E_1.real) \t\t\t#load angle of alternator 1\n",
+ "E_1L = math.sqrt(3)*E_1\n",
+ "\n",
+ "Z_2 = complex(0.4,12)\n",
+ "I_2 = I_L2\n",
+ "E_2 = V_ph + I_2*Z_2\n",
+ "delta_2 = (math.pi/180)*math.atan(E_2.imag/E_2.real) \t\t\t#load angle of alternator 2\n",
+ "\n",
+ "# Results\n",
+ "print 'Part i) Currents are %.0f A at %.1f degrees and %.1f A at %.1f degrees\\nTotal current is %.0f at %.2f' %(abs(I_L1),\\\n",
+ " math.degrees(math.atan(I_L1.imag/I_L1.real)),abs(I_L2),\\\n",
+ " math.degrees(math.atan(I_L2.imag/I_L2.real)),abs(I_L),math.degrees(math.atan(I_L.imag/I_L.real)))\n",
+ "print 'Part ii)Power factor is %.4f and lagging'%(math.cos(phi_L1))\n",
+ "print 'Part iii)emf are %.2f V at %.2f degrees and %.4f V at %.0f degrees'%(abs(E_1),\\\n",
+ " math.degrees(math.atan(E_1.imag/E_1.real)),abs(E_2),math.degrees(math.atan(E_2.imag/E_2.real)))\n",
+ "print 'Part iv)Power angles are %.2f degrees and %.0f degrees '%(180/math.pi*delta_1,(180/math.pi)*delta_2)\n",
+ "\n",
+ "# note : rounding off error. kindly check the calculations\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part i) Currents are 150 A at -29.0 degrees and 180.6 A at -43.4 degrees\n",
+ "Total current is 328 at -36.87\n",
+ "Part ii)Power factor is 0.8748 and lagging\n",
+ "Part iii)emf are 4776.46 V at 15.49 degrees and 5565.7081 V at 16 degrees\n",
+ "Part iv)Power angles are 15.49 degrees and 0 degrees \n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38 Page no : 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Z1 = complex(0.2,2)\n",
+ "Z2 = Z1\n",
+ "ZL = complex(3,4)\n",
+ "Z = ZL\n",
+ "E1 = complex(2000,0)\n",
+ "E2 = complex(2200,100)\n",
+ "\n",
+ "# Calculations\n",
+ "I1 = ((E1-E2)*Z+E1*Z2)/(Z*(Z1+Z2)+Z1*Z2)\n",
+ "I2 = ((E2-E1)*Z+E2*Z1)/(Z*(Z1+Z2)+Z1*Z2)\n",
+ "\n",
+ "IL = I1+I2\n",
+ "V = IL*Z \t\t\t#Terminal voltage\n",
+ "\n",
+ "phi1 = math.atan(V.imag/V.real)-math.atan(I1.imag/I1.real) \t\t\t#Phasemag returns the angle of complex number in degrees\n",
+ "phi2 = math.atan(V.imag/V.real)-math.atan(I2.imag/I2.real) \t\t\t#Phasemag returns the angle of complex number in degrees\n",
+ "\n",
+ "Pout1 = math.sqrt(3)*math.sqrt(3)*abs(V)*abs(I1)*math.cos(math.radians(phi1))\n",
+ "Pout2 = math.sqrt(3)*math.sqrt(3)*abs(V)*abs(I2)*math.cos(math.radians(phi2))\n",
+ "\n",
+ "# Results\n",
+ "print 'Power delivered is %.2f kW and %.2f kW at power-factors %.4f lag and %.4f lag respectively'%(Pout1/1000,Pout2/1000,math.cos(math.radians(phi1)),math.cos(math.radians(phi2)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered is 658.24 kW and 1253.92 kW at power-factors 0.9999 lag and 0.9999 lag respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39 Page no : 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "f = 50.\n",
+ "P = 12.\n",
+ "V_L = 6600.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "VA = 2000.*10**3\n",
+ "I_FL = VA/(math.sqrt(3)*V_L)\n",
+ "\n",
+ "# Calculations\n",
+ "IX_s = (25./100)*V_ph \t\t\t#product of I and X_s\n",
+ "X_s = complex(0,IX_s/I_FL)\n",
+ "N_s = 12*f/P \t\t\t#in rpm\n",
+ "delta_dash_mech = (math.pi/180) \t\t\t#phase print lacemnt in degree mechanical\n",
+ "delta_dash_elec = delta_dash_mech*(P/2) \t\t\t#phase print lacemnt in degree electrical\n",
+ "\n",
+ "phi = math.acos(0.8) \t\t\t#lag\n",
+ "I = complex(I_FL*math.cos(-1*phi),I_FL*math.sin(-1*phi))\n",
+ "V = V_ph\n",
+ "E = V + I*X_s\n",
+ "delta = math.atan(E.imag/E.real)*(math.pi/180)\n",
+ "P_SY = abs(E)*abs(V)*math.cos(delta)*math.sin(delta_dash_elec)/abs(X_s)\n",
+ "P_SY_total = 3*P_SY\n",
+ "\n",
+ "# Results\n",
+ "print 'Synchronising power is %.2f kW'%(P_SY/1000)\n",
+ "print 'Total Synchronising power is %.2f kW'%(P_SY_total/1000)\n",
+ "\n",
+ "# note : rounding off error. kindly check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronising power is 325.36 kW\n",
+ "Total Synchronising power is 976.09 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.40 Page no : 101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 22000.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "power = 230.*10**6\n",
+ "phi = math.acos(1.)\n",
+ "I_FL = power/(math.sqrt(3)*V_L*math.cos(phi))\n",
+ "I_1 = I_FL\n",
+ "X_s = 1.2\n",
+ "\n",
+ "# Calculations\n",
+ "E_1 = math.sqrt( V_ph**2 + (I_1*X_s)**2 )\n",
+ "E_2 = 1.3*E_1\n",
+ "AC = math.sqrt( E_2**2-(I_1*X_s)**2 ) -V_ph \t\t\t# because E**2 = (V_ph+AC)**2+(I_1*X_s)**2\n",
+ "I2X_S = AC\n",
+ "\n",
+ "I_2cosphi2 = I_1 \t\t\t#because phi_2 = math.acos(I_1/I_2) \t\t\t#from ACD\n",
+ "I_2sinphi2 = AC/X_s\n",
+ "I_2 = math.sqrt( (I_2cosphi2)**2 + (I_2sinphi2)**2 )\n",
+ "phi2 = math.atan( I_2sinphi2/ I_2cosphi2 )\n",
+ "new_pf = math.cos(phi2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Machine current is %.2f A '%(I_2)\n",
+ "print 'Power factor is %.4f and lagging'%(new_pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Machine current is 7274.58 A \n",
+ "Power factor is 0.8297 and lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.41 Page no : 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import cmath\n",
+ "\n",
+ "#note that a new function p2z has been defined below for direct representation of complex numbers in polar form\n",
+ "def p2z(RRRR,Theeeta):\n",
+ "\treturn RRRR*cmath.exp(1j*math.pi*Theeeta/180.);\n",
+ "\n",
+ "# Variables\n",
+ "P_out = 1500.*10**3\n",
+ "V_L = 3.3*10**3\n",
+ "phi = math.acos(0.8)\n",
+ "I_L = p2z(P_out/(math.sqrt(3)*V_L*math.cos(phi)),-1*math.acos(math.radians(0.8)))\n",
+ "\n",
+ "I_L1_magnitude = 150. \t\t\t#given\n",
+ "P_out1 = (3.*10**6)/2 \t\t\t#because load is EQUALLY shared between 2 alternators\n",
+ "pf_L1 = P_out1/(math.sqrt(3)*2*V_L*I_L1_magnitude) \t\t\t#operating pf of alternator 1\n",
+ "phi1 = math.acos(math.radians(pf_L1))\n",
+ "I_L1 = p2z(I_L1_magnitude,-1*phi1)\n",
+ "I_L2 = I_L-I_L1 \t\t\t#because I_L = I_L1 + I_L2\n",
+ "pf_L2 = math.cos(math.atan(I_L2.imag/I_L2.real))\n",
+ "\n",
+ "# Calculations\n",
+ "V_ph = 6.6*10**3/math.sqrt(3)\n",
+ "Z_1 = complex(0.5,10)\n",
+ "I_1 = I_L1\n",
+ "E_1 = V_ph + I_1*Z_1\n",
+ "delta_1 = math.atan(E_1.imag/E_1.real) \t\t\t#load angle of alternator 1\n",
+ "I_2 = I_L2\n",
+ "\n",
+ "Z_2 = complex(0.4,12)\n",
+ "E_2 = V_ph + I_2*Z_2\n",
+ "delta_2 = math.atan(E_2.imag/E_2.real) \t\t\t#load angle of alternator 1\n",
+ "\n",
+ "# Results\n",
+ "print 'for machine 1current is %.0f A at %.2f degrees \\nPower factor of %.4f laginduced emf \\\n",
+ " of %.2f V \\nload angle of %.2f degrees'%(abs(I_L1),math.degrees(math.atan(I_L1.imag/I_L1.real)),pf_L1,abs(E_1),delta_1)\n",
+ "print 'for machine 2current is %.1f A at %.1f degrees\\nPower factor of %.4f laginduced emf \\\n",
+ " of %.2f V\\nload angle of %.0f degrees'%(abs(I_L2),math.degrees(math.atan(I_L2.imag/I_L2.real)),pf_L2,abs(E_2),math.degrees(delta_2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for machine 1current is 150 A at -1.56 degrees \n",
+ "Power factor of 0.8748 laginduced emf of 4202.06 V \n",
+ "load angle of 0.36 degrees\n",
+ "for machine 2current is 178.0 A at -1.6 degrees\n",
+ "Power factor of 0.9996 laginduced emf of 4480.49 V\n",
+ "load angle of 28 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.42 Page no : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_l = 230\n",
+ "VA = 5*10**3\n",
+ "X_d = 12\n",
+ "X_q = 7\n",
+ "R_a = 0 \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "phi = math.acos(1)\n",
+ "\n",
+ "# Calculations\n",
+ "I_l = VA/(V_l*math.sqrt(3))\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "V_t = V_ph\n",
+ "I_a = I_l\n",
+ "\n",
+ "psi = math.atan( (V_t*math.sin(phi)+I_a*X_q)/(V_t*math.cos(phi)+I_a*R_a) )\n",
+ "delta = psi-phi\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "E_f = V_t*math.cos(delta)+I_d*X_d+I_q*R_a\n",
+ "\n",
+ "# Results\n",
+ "print 'Excitation voltage is %.3f V '%(E_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Excitation voltage is 193.852 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.43 Page no : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_l = 6.6*10**3\n",
+ "V_t = V_l/math.sqrt(3)\n",
+ "X_d = 23.2\n",
+ "X_q = 14.5\n",
+ "R_a = 0. \t\t\t#armature resistance and synchronous reactance of direct quadrature axis\n",
+ "VA = 1800.*10**3\n",
+ "phi = math.acos(0.8) \t\t\t#lag\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_a = VA/(V_l*math.sqrt(3))\n",
+ "\n",
+ "psi = math.atan( (V_t*math.sin(phi)-I_a*X_q)/(V_t*math.cos(phi)-I_a*R_a) ) \t\t\t#minus sign in numerator and denomenator for motors\n",
+ "delta = psi+phi\n",
+ "I_d = I_a*math.sin(psi)\n",
+ "I_q = I_a*math.cos(psi)\n",
+ "E_f = V_t*math.cos(delta)-I_d*X_d-I_q*R_a\n",
+ "print 'Excitation emf = %.4f V'%(E_f)\n",
+ "#P_m = ( V_t*E_f*math.sin(delta)/X_d ) + ((1/X_q)-(1/X_d))*0.5*math.sin(2*delta)*V_t**2\n",
+ "#P_m = 0.4996*math.cos(delta)+0.1877*math.sin(2*delta)\n",
+ "#for maximum power output differenciate and equate to zero\n",
+ "\n",
+ "delta_max = 63.4 \t\t\t#degree\n",
+ "\n",
+ "P_m_max = ((1/X_q)-(1/X_d))*0.5*math.sin(math.radians(2*delta_max))*V_t**2 \t\t\t#Maximuum load supplied with E_f = 0\n",
+ "print 'Maximum load the motor can supply is %.4f MW per phase '%(P_m_max*10**-6 )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Excitation emf = 3042.2721 V\n",
+ "Maximum load the motor can supply is 0.1503 MW per phase \n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/ch7.ipynb b/DC_Machines_and_Synchronous_Machines/ch7.ipynb
new file mode 100755
index 00000000..a22a6459
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/ch7.ipynb
@@ -0,0 +1,1711 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:95ca4467d5385b9a67e6a4c31c682e32bf0713e6d2ff74a5a89a56c51df83062"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Synchronous Motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page no : 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import numpy as np\n",
+ "\n",
+ "# Variables\n",
+ "V_l = 400.\n",
+ "R_a = 0.2\n",
+ "X_s = 2. \t\t\t#armature resistance and synchronous reactance\n",
+ "I_L = 25.\n",
+ "I_aph = I_L\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "angle = math.atan(Z_s.imag/Z_s.real)\n",
+ "angle = math.degrees(angle)\n",
+ "E_Rph=I_aph*abs(Z_s)\n",
+ "theta = (math.pi/180.)*angle \n",
+ "\n",
+ "# Calculations and Results\n",
+ "#case 1\n",
+ "phi = math.acos(0.8) \t\t\t#lagging\n",
+ "E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta-phi) )\n",
+ "print 'i)Back EMF induced with 0.8 lagging pf is %.3f V'%(E_bph)\n",
+ "\n",
+ "#case 2\n",
+ "phi = math.acos(0.9) \t\t\t#leading\n",
+ "E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta+phi) )\n",
+ "print 'ii)Back EMF induced with 0.8 lagging pf is %.3f V'%(E_bph)\n",
+ "\n",
+ "#case 3\n",
+ "phi = math.acos(1)\n",
+ "E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta) )\n",
+ "print 'iii)Back EMF induced with 0.8 lagging pf is %.3f V'%(E_bph)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Back EMF induced with 0.8 lagging pf is 200.386 V\n",
+ "ii)Back EMF induced with 0.8 lagging pf is 252.678 V\n",
+ "iii)Back EMF induced with 0.8 lagging pf is 231.406 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page no : 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import *\n",
+ "\n",
+ "# Variables\n",
+ "V_l = 500.\n",
+ "R_a = 0.4\n",
+ "X_s = 4. \t\t\t#armature resistance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s)\t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "theta = (math.pi/180)*angle\t\t\t#phasemag returns angle in degrees,not radians\n",
+ "V_ph = V_l/math.sqrt(3)\n",
+ "I_l = 50.\n",
+ "I_aph = I_l\n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "\n",
+ "# Calculations and Results\t\t\n",
+ "#case 1\n",
+ "E_bline = 600\n",
+ "E_bph = E_bline/math.sqrt(3)\n",
+ "phi = math.acos( (-E_bph**2 + E_Rph**2 + V_ph**2 )/(2*E_Rph*V_ph) ) -theta \t\t\t#leading\n",
+ "#because E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta+phi) )\n",
+ "print 'i)power factor is %.4f leading'%(cos(phi))\n",
+ "\n",
+ "#case 2\n",
+ "E_bline = 380\n",
+ "E_bph = E_bline/math.sqrt(3)\n",
+ "phi = theta-math.acos( (-E_bph**2 + E_Rph**2 + V_ph**2 )/(2*E_Rph*V_ph) ) \t\t\t#leading\n",
+ "#because E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta-phi)\n",
+ "print 'ii)power factor is %.4f lagging'%(cos(phi))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)power factor is 0.9977 leading\n",
+ "ii)power factor is 0.8197 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page no : 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6600.\n",
+ "P_out = 500.*10**3\n",
+ "eta = 83./100 \t\t\t#efficiency\n",
+ "R_a = 0.3\n",
+ "X_s = 3.2 \t\t\t#armature resistance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "theta = (math.pi/180)* angle \t\t\t#phasemag returns the angle in degrees not radians\n",
+ "phi = math.acos(0.8) \t\t\t#leading\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "P_in = P_out/eta\n",
+ "\n",
+ "# Calculations and Results\n",
+ "I_L = P_in/ (math.sqrt(3) * V_L * math.cos(phi) )\n",
+ "\n",
+ "# because P_in = math.sqrt(3) * V_L * I_L * math.cos(phi)\n",
+ "I_aph = I_L\n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta+phi) )\n",
+ "print 'i) Generated EmF on full loaad is %.2f V'%(E_bph)\n",
+ "\n",
+ "delta = math.degrees(math.asin( (E_Rph/E_bph))*math.sin(theta+phi) )\n",
+ "#This is obtained after applying sune rule to triangle OAB from thre phasor diagram\n",
+ "print 'ii) load angle is %.2f degrees'%(delta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Generated EmF on full loaad is 3925.33 V\n",
+ "ii) load angle is 2.64 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page no : 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "V_L = 500.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "phi = math.acos(0.9) \t\t\t\t#lagging\n",
+ "output_power = 17.*10**3\n",
+ "R_a = 0.8 \t\t\t\t\t\t\t#armaature reactance\n",
+ "mechanical_losses = 1300. \t\t\t#mechanical losses is W\n",
+ "P_m = output_power+mechanical_losses \t\t\t#gross mechanical power developed\n",
+ "\n",
+ "# P_m = input_power - stator losses\n",
+ "# input_power = 3* V_ph * I_aph * math.cos(phi)\n",
+ "# Stator losses = 3*I_aph**2*R_a\n",
+ "# solving above equations we get 2.4 I_a**2 - 779/.4225*I_a + 18300 = 0\n",
+ "I_a_eqn = [2.4, -779.4225, 18300]\n",
+ "I_a_roots = roots(I_a_eqn)\n",
+ "I_a = I_a_roots[1] \t\t\t#neglecting higher value\n",
+ "I_aph = I_a\n",
+ "print 'Current drawn by the motor is %.3f A'%(I_a)\n",
+ "\n",
+ "input_power = 3* V_ph * I_aph * math.cos(phi)\n",
+ "eta = 100*output_power/input_power\n",
+ "print 'Full load efficiency is %.2f percent'%(eta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current drawn by the motor is 25.478 A\n",
+ "Full load efficiency is 85.61 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5 Page no : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#subscript 1 is for industrial load and 2 for synchronous motor\n",
+ "P_1 = 800. \t\t\t# Active power in KW\n",
+ "phi_1 = math.acos(0.6) \t\t\t#lagging\n",
+ "Q_1 = P_1*math.tan(phi_1) \t\t\t#reactive power by load 1\n",
+ "\n",
+ "# Calculations and Results\n",
+ "output_power = 200.\n",
+ "eta = 91./100 \t\t\t#efficiency of synchronous motor\n",
+ "input_power = output_power/eta\n",
+ "P_2 = input_power\t\t\t# active power drawn by synchronous motor\n",
+ "P_T = P_1 + P_2 \t\t\t#combined total load of industry and synchronous motor\n",
+ "phi_T = math.acos(0.92 )\t\t\t#lagging\n",
+ "Q_T = P_T* math.tan(phi_T) \t\t\t#from power triangle\n",
+ "Q_2 = Q_T - Q_1 \t\t\t#it turns out to be negative indicating its leading nature\n",
+ "S_2 = math.sqrt( P_2**2 + Q_2**2 )\n",
+ "print 'Desired kVA rating of Synchronous motor is %.3f kVA'%(S_2)\n",
+ "\n",
+ "phi_2 = math.atan (Q_2/P_2)\n",
+ "print 'Power factor of synchronous motor is %.4f LEADING'%(math.cos(phi_2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Desired kVA rating of Synchronous motor is 669.353 kVA\n",
+ "Power factor of synchronous motor is 0.3283 LEADING\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6 Page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "output_power = 37.3*1000 \t\t\t#Watts on full load\n",
+ "Z_s = complex(0.2,1.6) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "theta = (math.pi/180)*angle \t\t\t#phase mag returns the angle in degrees and not raidians\n",
+ "phi = math.acos(0.9) \t\t\t#leading\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "eta = 88. \t\t\t#efficiency in percentage\n",
+ "\n",
+ "# Calculations\n",
+ "input_power = 100*output_power/eta\n",
+ "I_L = input_power/(math.sqrt(3)*V_L*math.cos(phi))\n",
+ "I_aph = I_L\n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "\n",
+ "E_bph = math.sqrt( (E_Rph)**2 + (V_ph)**2 -2*E_Rph*V_ph*math.cos(theta+phi) )\n",
+ "E_line = math.sqrt(3)*E_bph\n",
+ "\n",
+ "# Results\n",
+ "print 'Induced EMF is %.2f V and its line value is %.2f V'%(E_bph,E_line)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced EMF is 285.65 V and its line value is 494.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7 Page no : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "input_power = 20.*1000 \n",
+ "R_a = 0.\n",
+ "X_s = 4. \t\t\t#armature reactance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag))\n",
+ "\n",
+ "theta = (math.pi/180)*angle \t\t\t#phase mag returns the angle in degrees and not raidians\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_bline = 550. \t\t\t#star connection\n",
+ "E_bph = E_bline/math.sqrt(3)\n",
+ "\n",
+ "# Calculations\n",
+ "I_a_cos_phi = input_power/(math.sqrt(3)*V_L) \t\t\t#product of I_a and math.cos(phi)\n",
+ "I_a_sin_phi = ( math.sqrt(E_bph**2- (abs(Z_s)*I_a_cos_phi)**2 ) -V_ph )/abs(Z_s)\t\t\t#from triangle DAB\n",
+ "phi = math.atan(I_a_sin_phi/I_a_cos_phi)\n",
+ "I_a = I_a_cos_phi/math.cos(phi) \n",
+ "\n",
+ "# Results\n",
+ "print 'Motor power fctor is %.3f Leading'%(cos(phi))\n",
+ "print 'Current drawn by the motor is %.2f A'%(I_a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor power fctor is 0.872 Leading\n",
+ "Current drawn by the motor is 33.11 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8 Page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3300.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "R_a = 2.\n",
+ "X_s = 18. \t\t\t#armature reactance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s)\t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180)*angle \t\t\t#phasemag returns angle in degrees not radians\n",
+ "E_bline = 3800.\n",
+ "E_bph = E_bline/math.sqrt(3)\n",
+ "\n",
+ "#part(i)\n",
+ "P_m_max = (E_bph*V_ph/abs(Z_s))- (E_bph**2/abs(Z_s))*math.cos(theta)\n",
+ "print 'i)Max total mechanical power developed that motor can develop is %.2f W per phase'%(P_m_max)\n",
+ "\n",
+ "#part(ii)\n",
+ "#from phasor diagram applying math.comath.sine rule to triangle OAB\n",
+ "E_Rph = math.sqrt( E_bph**2 + V_ph**2 -2*E_bph*V_ph*math.cos(theta) ) \n",
+ "I_aph = E_Rph/abs(Z_s)\n",
+ "print 'ii)Current at max power developed is %.1f A'%(I_aph)\n",
+ "\n",
+ "copper_loss = 3* I_aph**2 * R_a\n",
+ "P_in_max_total = 3 * P_m_max \t\t\t#input power at max power developed\n",
+ "total_P_in = P_in_max_total + copper_loss \t\t\t#total input power \n",
+ "pf = total_P_in/(math.sqrt(3)*I_aph*V_L)\n",
+ "print 'Power factor at max power developed is %.3f leading'%(pf)\n",
+ "\n",
+ "\n",
+ "# 'Answer in part1 mismatched because of improper approximation in book'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Max total mechanical power developed that motor can develop is 201452.30 W per phase\n",
+ "ii)Current at max power developed is 151.4 A\n",
+ "Power factor at max power developed is 0.857 leading\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9 Page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 500.\n",
+ "R_a = 0.03\n",
+ "X_s = 0.3 \t\t\t#armature reactance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s)\t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180)*angle \t\t\t#phasemag returns angle in degrees not radians\n",
+ "phi = math.acos(0.8)\n",
+ "eta = 93/100.\n",
+ "output_power = 100.*746\n",
+ "input_power = output_power/eta\n",
+ "I_L = input_power/(math.sqrt(3)*V_L*math.cos(phi))\n",
+ "I_aph = I_L\n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "\n",
+ "#from the phasor diagram\n",
+ "E_bph = math.sqrt( E_Rph**2 + (V_L/math.sqrt(3))**2 - 2*E_Rph*(V_L/math.sqrt(3))*math.cos(phi+theta) ) \n",
+ "\n",
+ "cu_losses = 3*(I_aph)**2*R_a \t\t\t#total copper losses\n",
+ "P_m = input_power - cu_losses \t\t\t#total mechanical power developed\n",
+ "\n",
+ "print 'EMF developed per phase is %.4f V \\nTotal mechanical power developed is %.1f watts'%(E_bph,P_m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "EMF developed per phase is 308.1880 V \n",
+ "Total mechanical power developed is 79008.6 watts\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10 Page no : 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 415.\n",
+ "V_ph = V_L \t\t\t#due to delta connection\n",
+ "E_bline = 520.\n",
+ "R_a = 0.5\n",
+ "X_s = 4. \t\t\t#armature reactance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180.)*angle \t\t\t#phasemag returns angle in degrees not radians\n",
+ "\n",
+ "delta = theta \t\t\t#for maximum power\n",
+ "P_m_max = (E_bline*V_ph/abs(Z_s))- (E_bline**2/abs(Z_s))*math.cos(theta)\n",
+ "P_m_max_total = 3* P_m_max\n",
+ "fi_loss = 1000. \t\t\t#frictional and iron losses\n",
+ "P_out_total = P_m_max_total-fi_loss \n",
+ "\n",
+ "HP_output = P_out_total/746 \t\t\t#converting watts to horse power\n",
+ "print 'HP output for maximum power output is %.2f HP'%(HP_output)\n",
+ "\n",
+ "#from the phasor diagram\n",
+ "E_Rph = math.sqrt( E_bline**2 + V_ph**2 -2*E_bline*V_ph*math.cos(delta) ) \n",
+ "I_aph = E_Rph/abs(Z_s)\n",
+ "I_L = I_aph*math.sqrt(3)\n",
+ "print 'Line current is %f A'%(I_L)\n",
+ "cu_loss_total = 3*(I_aph)**2*R_a \t\t\t#total copper losses\n",
+ "input_power = P_m_max_total+ cu_loss_total\n",
+ "pf = input_power/(math.sqrt(3)*I_L*V_L) \t\t\t#leading\n",
+ "print 'Power factor for maximum power output is %.2f leading '%(pf)\n",
+ "\n",
+ "eta = 100*P_out_total /input_power\n",
+ "print 'Efficiency for maximum power output is %.2f percent'%(eta)\n",
+ "\n",
+ "# 'Answer might mismatch because of improper approximation done in book'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HP output for maximum power output is 180.48 HP\n",
+ "Line current is 268.015479 A\n",
+ "Power factor for maximum power output is 0.89 leading \n",
+ "Efficiency for maximum power output is 78.48 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page no : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P = 8.\n",
+ "f = 50. \t\t\t#Pole and frequency\n",
+ "N_s = 120.*f/P \t\t\t#synchronous speed\n",
+ "V_L = 6.6*10**3 \n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "Z_s = complex(0.66,6.6) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180)*angle \t\t\t#phasemag returns angle in degree not radians\n",
+ "E_bph = 4500.\n",
+ "input_power = 2500.*10**3\n",
+ "I_a_cosphi = input_power/(math.sqrt(3)*V_L) \t\t\t#Its product of I_a and math.cos(phi);I_a = I_l for star conneted load\n",
+ "\n",
+ "# Calculations\n",
+ "#applying math.comath.sine rule to triangle ABC from phasor diagram and solve \n",
+ "#math.tan(phi)**2 + 5.2252 math.tan(phi)-2.2432 = 0\n",
+ "p = [1, 5.2252, -2.2432]\n",
+ "tan_phi = roots(p)\n",
+ "phi = math.atan(tan_phi[1])\n",
+ "pf = math.cos(phi)\n",
+ "I_a = I_a_cosphi/ math.cos(phi)\n",
+ "\n",
+ "#apply math.sine rule to triangle ABC\n",
+ "delta = math.asin(I_a*abs(Z_s)*math.sin(theta+phi)/E_bph)\n",
+ "P_m = 3*E_bph*I_a*math.cos(delta+phi)\n",
+ "T_g = P_m/(2*math.pi*N_s/60)\n",
+ "\n",
+ "# Results\n",
+ "print 'i)Torque developed is %f N-m'%(T_g)\n",
+ "print 'ii)Input current is %.4f A'%(I_a)\n",
+ "print 'iii)Power factor is %.4f leading'%(pf)\n",
+ "print 'iv)Power angle is %.2f degrees '%((180/math.pi)*delta)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Torque developed is 30437.047497 N-m\n",
+ "ii)Input current is 235.4472 A\n",
+ "iii)Power factor is 0.9288 leading\n",
+ "iv)Power angle is 19.48 degrees \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page no : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "input_power = 15.*10**3\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_b = 480.\n",
+ "E_bph = E_b/math.sqrt(3)\n",
+ "Z_s = complex(1,5) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180)*angle \t\t\t#phasemag returns angle in degree not radians\n",
+ "\n",
+ "# Calculations\n",
+ "I_a_cosphi = input_power/(math.sqrt(3)*V_L) \t\t\t#product of I_a & math.cos(phi)\n",
+ "#Applying math.comath.sine rule to triangle OAB and solving\n",
+ "#math.tan(phi)**2+ 4.101*math.tan(phi)-1.7499 = 0\n",
+ "p = [1,4.101,-1.7449]\n",
+ "tan_phi = roots(p)\n",
+ "phi = math.atan(tan_phi[1]) \t\t\t#ignoring negative vaule\n",
+ "I_a = I_a_cosphi/ math.cos(phi)\n",
+ "\n",
+ "#applying math.sine rule to Triangle OAB\n",
+ "delta = math.asin( I_a*abs(Z_s)* math.sin(theta+phi)/E_bph )\n",
+ "\n",
+ "# Results\n",
+ "print 'Load angle is %.1f degrees'%(delta*180/math.pi)\n",
+ "print 'Armature current is %.4f A'%(I_a)\n",
+ "print 'Power factor is %.3f leading'%(cos(phi))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load angle is 24.9 degrees\n",
+ "Armature current is 23.2283 A\n",
+ "Power factor is 0.932 leading\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13 Page no : 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import roots\n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_b = 460.\n",
+ "E_bph = E_b/math.sqrt(3)\n",
+ "input_power = 3.75*10**3\n",
+ "Z_s = complex(1,8) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = math.degrees(angle) \t\t\t#phasemag returns angle in degree ,not radians\n",
+ "I_L_cos_phi = input_power/(math.sqrt(3)*V_L)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#Applying math.comath.sine rule to triangle OAB and solving further\n",
+ "#math.tan(phi)**2 + 458.366*math.tan(phi) -450.65 = 0 \n",
+ "p = [1,458.366-450.65]\n",
+ "tan_phi = roots(p)\n",
+ "\n",
+ "phi = math.atan(tan_phi[0]) \t\t\t#ignoring negative value\n",
+ "print 'Required power factor is %.4f leading'%(cos(phi))\n",
+ "I_L = I_L_cos_phi /math.cos(phi)\n",
+ "print 'Required current is %.4f A'%(I_L)\n",
+ "\n",
+ "# roots() python gives some different answer. Kindly check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required power factor is 0.1285 leading\n",
+ "Required current is 42.1134 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page no : 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "#subscript 1 indicates induction motor 1\n",
+ "P_1 = 350.\n",
+ "phi_1 = math.acos(0.7071) \t\t\t#lagging\n",
+ "Q_1 = P_1*math.tan(phi_1)\t\t\t#from power triangle\n",
+ "\n",
+ "#subscript 2 indicates induction motor 2\n",
+ "P_2 = 190.\n",
+ "\n",
+ "# Calculations\n",
+ "#subscript T indicates total\n",
+ "P_T = P_1+P_2\n",
+ "phi_T = math.acos(0.9) \t\t\t#lagging\n",
+ "Q_T = P_T*math.tan(phi_T)\n",
+ "\n",
+ "Q_2 = Q_T-Q_1\n",
+ "kva_rating = math.sqrt(P_2**2+ Q_2**2)\n",
+ "\n",
+ "# Results\n",
+ "print 'kVA rating of synchronous motor is %.2f kVA'%(kva_rating)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of synchronous motor is 209.59 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page no : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "Pole = 6.\n",
+ "f = 50.\n",
+ "R_a = 0.2\n",
+ "X_s = 3. \t\t\t#armature reactance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s)\t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag/Z_s.real) # calculates angle in radians\n",
+ "\n",
+ "N_s = 120*f/Pole \t\t\t#synchronous speed\n",
+ "\n",
+ "# Calculations\n",
+ "#subscript 1` refers to load 1\n",
+ "I_a1 = 20.\n",
+ "phi_1 = math.acos(1)\n",
+ "E_R1 = I_a1* abs(Z_s)\n",
+ "E_bph = math.sqrt( E_R1**2 + V_ph**2 - 2*E_R1*V_ph*math.cos(phi_1+theta) )\n",
+ "\n",
+ "#subscript 2` refers to load 2\n",
+ "I_a2 = 60.\n",
+ "E_R2 = I_a2* abs(Z_s)\n",
+ "phi_2 = math.acos ((E_R2**2 + V_ph**2 -E_bph**2 )/(2*E_R2*V_ph)) -theta \t\t\t#new power factor\n",
+ "\n",
+ "input_power = math.sqrt(3)*V_L*I_a2*math.cos(phi_2)\n",
+ "cu_loss = 3*I_a2**2*R_a\n",
+ "P_m = input_power-cu_loss\n",
+ "T_g = P_m /(2*math.pi*N_s/60) \t\t\t#gross mechanical power developed\n",
+ "\n",
+ "# Results\n",
+ "print 'Gross torque developed is %.4f N-m and new power factor is %.4f lagging'%(T_g,cos(phi_2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gross torque developed is 357.1971 N-m and new power factor is 0.9518 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.16 Page no : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3300.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_bph = V_ph\n",
+ "Z_s = complex(0.5,5) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180)*angle \t\t\t#phasemag returns angle in degrees, not radians\n",
+ "P = 8.\n",
+ "f = 50. \t\t\t#pole and frequency\n",
+ "delta_mech = 3. \t\t\t#mechanical angle in degrees by which rotor is behind\n",
+ "delta_elec = (P/2)*delta_mech \t\t\t#delta mech converted to electrical degrees\n",
+ "E_Rph = math.sqrt( E_bph**2 + V_ph**2 -2*E_bph*V_ph*math.cos(math.radians(delta_elec) )) \n",
+ "I_aph = E_Rph/abs(Z_s)\n",
+ "\n",
+ "#from the phasor diagram \n",
+ "phi = theta- math.asin( math.sin(math.radians(delta_elec))*E_bph/E_Rph )\n",
+ "pf = math.cos(phi)\n",
+ "print 'power factor of the motor is %.5f lagging'%(pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power factor of the motor is 0.99999 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page no : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_bph = V_ph\n",
+ "P = 4.\n",
+ "f = 50.\t\t\t#Pole and frequency\n",
+ "delta_mech = 4*(math.pi/180) \t\t\t#mechanical angle in degrees by which rotor is behind\n",
+ "delta_elec = delta_mech *(P/2) \t\t\t#delta_mech convertd to electrical degrees\n",
+ "Z_s = complex(0,2) \t\t\t#synchronous impedance\n",
+ "\n",
+ "# Calculations\n",
+ "#referring to phasor diagram\n",
+ "BC = E_bph*math.sin(delta_elec)\n",
+ "AB = E_bph\n",
+ "OA = V_ph\n",
+ "\n",
+ "AC = math.sqrt(AB**2-BC**2)\n",
+ "OC = OA-AC\n",
+ "phi = math.atan(OC/BC)\n",
+ "OB = math.sqrt(OC**2 + BC**2)\n",
+ "I_a = OB/abs(Z_s)\n",
+ "\n",
+ "# Results\n",
+ "print 'Armature current drawn by the motor is %.4f A'%(I_a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature current drawn by the motor is 16.1096 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18 Page no : 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "input_power = 5472.\n",
+ "Z_s = complex(0,10) \t\t\t#synchronous impedance\n",
+ "I_L_cosphi = input_power/(math.sqrt(3)*V_L) \t\t\t#product of I_L & math.cos(phi)\n",
+ "BC = 10*I_L_cosphi\n",
+ "AB = V_ph\n",
+ "OA = V_ph\n",
+ "\n",
+ "# Calculations\n",
+ "#from Triangle ABC in phasor diagram\n",
+ "AC = math.sqrt(AB**2- BC**2)\n",
+ "OC = OA - AC\n",
+ "\n",
+ "\t\t\t#from Triangle OCB \n",
+ "OB = math.sqrt( OC**2+ BC**2 )\n",
+ "E_Rph = OB\n",
+ "I_L = E_Rph/abs(Z_s)\n",
+ "\n",
+ "phi = math.atan(OC/BC)\n",
+ "pf = math.cos(phi)\n",
+ "delta = math.atan(BC/AC) \t\t\t#load angle\n",
+ "\n",
+ "# Results\n",
+ "print 'Power factor is %.4f lagging'%(pf)\n",
+ "print 'Load angle is %.0f degrees'%(delta*180/math.pi)\n",
+ "print 'Armature current is %.3f A'%(I_L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power factor is 0.9848 lagging\n",
+ "Load angle is 20 degrees\n",
+ "Armature current is 8.020 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19 Page no : 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6600.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "Z_s = complex(2,20) \t\t\t#synchronous impedance\n",
+ "angle = math.degrees(math.atan(Z_s.imag/Z_s.real))\n",
+ "\n",
+ "theta = (math.pi/180) * angle \t\t\t#phasemag returns angle in degrees not radians\n",
+ "P_1 = 1000*10**3\n",
+ "P_2 = 1500*10**3\n",
+ "phi_1 = math.acos(0.8) \t\t\t#leading\n",
+ "\n",
+ "# Calculations\n",
+ "I_L1 = P_1/(math.sqrt(3)*V_L*math.cos(phi_1))\n",
+ "I_a1ph = I_L1\n",
+ "E_R1ph = I_a1ph*abs(Z_s)\n",
+ "E_bph = math.sqrt( V_ph**2 + E_R1ph** -2*V_ph*E_R1ph*math.cos(theta+phi_1) )\n",
+ "I_a2_cosphi_2 = P_2/(math.sqrt(3)*V_L)\n",
+ "\n",
+ "#Refer to the phasor diagram and solving for I_y\n",
+ "#404I_y**2 -152399.968 I_y -4543000 = 0\n",
+ "p = [404, -152399.968, -4543000]\n",
+ "ans = roots(p)\n",
+ "I_y = abs(ans[1]) \t\t\t#becuase root 1 is too high and root is -ve\n",
+ "\n",
+ "I_a2 = complex(I_a2_cosphi_2,I_y)\n",
+ "phi_2 = math.degrees(math.atan(I_a2.imag/I_a2.real))\n",
+ "\n",
+ "print 'Required power factor is %.3f leading'%(math.cos(math.radians(phi_2)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required power factor is 0.978 leading\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20 Page no : 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "V_L = 2300.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_L = 200.\n",
+ "I_a = I_L\n",
+ "Z_s = complex(0.2,2.2) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag/Z_s.real)\n",
+ "phi = math.acos(0.5)\n",
+ "\n",
+ "# Calculations\n",
+ "E_Rph = I_a*abs(Z_s)\n",
+ "E_bph = math.sqrt( E_Rph**2 + V_ph**2 - 2*E_Rph*V_ph*math.cos(phi+theta) ) \n",
+ "\n",
+ "# Results\n",
+ "print 'Generated EMF per phase is %.3f V'%(E_bph)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Generated EMF per phase is 1708.045 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21 Page no : 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3300.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "E_bline = 3800.\n",
+ "E_bph = E_bline/math.sqrt(3)\n",
+ "\n",
+ "R_a = 2.\n",
+ "X_s = 18. \t\t\t#armature resistance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag/Z_s.real)\n",
+ "\n",
+ "#part(i)\n",
+ "P_m_max = (E_bph*V_ph/abs(Z_s))- (E_bph**2/abs(Z_s))*math.cos(theta) \t\t\t#maximum total mechanical power\n",
+ "print 'i)Maximum total mechanical power that the motor can develop is %.2f W per phase'%(P_m_max )\n",
+ "#part(ii)\n",
+ "delta = theta \t\t\t#for max P_m\n",
+ "E_Rph = math.sqrt( E_bph**2 + V_ph**2 -2*E_bph*V_ph*math.cos(delta) ) \n",
+ "I_aph = E_Rph/abs(Z_s)\n",
+ "print 'ii)Current at maximum power developed is %.1f A'%(I_aph)\n",
+ "cu_loss_total = 3*I_aph**2*R_a \t\t\t#total copper loss\n",
+ "P_m_max_total = 3*P_m_max \t\t\t#total maximum total mechanical power\n",
+ "P_in_total = P_m_max_total+ cu_loss_total \t\t\t#total input power\n",
+ "\n",
+ "pf = P_in_total/(math.sqrt(3)*V_L*I_aph)\n",
+ "print ' Power factor at maximum power developed is %.3f leading'%(pf)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Maximum total mechanical power that the motor can develop is 201452.30 W per phase\n",
+ "ii)Current at maximum power developed is 151.4 A\n",
+ " Power factor at maximum power developed is 0.857 leading\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22 Page no : 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#subscript 1 refers to load 1\n",
+ "I_1 = 18.\n",
+ "phi_1 = math.acos(0.8)\n",
+ "V_L = 440.\n",
+ "S_1 = math.sqrt(3)*I_1*V_L /1000 \t\t\t#kVA for load 1\n",
+ "P_1 = S_1*math.cos(phi_1)\n",
+ "Q_1 = S_1*math.sin(phi_1)\n",
+ "\n",
+ "# Calculations\n",
+ "P_out = 6.\n",
+ "eta_motor = 88./100\n",
+ "P_2 = P_out/eta_motor\n",
+ "\n",
+ "P_T = P_1+P_2\n",
+ "phi_T = math.acos(1) \t\t\t#total power factor angle\n",
+ "Q_T = P_T*math.tan(phi_T)\n",
+ "\n",
+ "Q_2 = Q_T - Q_1 \t\t\t#kVAR supplied by motor\n",
+ "#this will have a negative sign just indicating its leading nature \n",
+ "phi_2 = math.atan(abs(Q_2)/P_2)\n",
+ "pf = math.cos(phi_2) \t\t\t#leading\n",
+ "S_2 = P_2/math.cos(phi_2) \t\t\t#kVA input to the motor\n",
+ "\n",
+ "# Results\n",
+ "print 'kVA input to the motor is %.3f kVA '%(S_2)\n",
+ "print 'Power factor when driving a 6kW mechanical load is %.4f leading'%(pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA input to the motor is 10.688 kVA \n",
+ "Power factor when driving a 6kW mechanical load is 0.6379 leading\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23 Page no : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "output_power = 8.*10**3\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "R_a = 0.\n",
+ "X_s = 8.\t\t\t#armature resistance and syncronous reactance\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag) \t\t\t# returns angle in radians \n",
+ "eta = 88./100\n",
+ "input_power = output_power/eta\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#minimum current occurs at max power factors\n",
+ "phi = math.acos(1)\n",
+ "I_a_min = input_power/(math.sqrt(3)*V_L*math.cos(phi)) \t\t\t#required minimum current \n",
+ "print 'Minimum current is %.3f A'%(I_a_min)\n",
+ "E_R = I_a_min * abs(Z_s)\n",
+ "E_bph = math.sqrt( E_R**2 + V_ph**2 - 2*E_R*V_ph*math.cos(phi+theta) ) \n",
+ "print 'Induced EMF at full-load is %.3f V'%(E_bph)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum current is 13.122 A\n",
+ "Induced EMF at full-load is 241.534 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24 Page no : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R_a = 0.8\n",
+ "X_s = 5.\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#armature resistance and syncronous reactance\n",
+ "theta = math.atan(Z_s.imag/Z_s.real) \t\t\t# returns angle in radians \n",
+ "alpha = (math.pi/2) - theta\n",
+ "V_t = 3300/math.sqrt(3)\n",
+ "P_e_in = 800./(3) \t\t\t#per phase\n",
+ "phi = math.acos(0.8) \t\t\t#leading\n",
+ "Q_e_in = -P_e_in*math.tan(phi)\n",
+ "\n",
+ "# Calculations\n",
+ "# using the following equation\n",
+ "# P_e_in = V_t**2*R_a/(abs(Z_s))**2 + V_t*E_b*math.sin(delta-alpha)/abs(Z_S)\n",
+ "# Q_e_in = V_t**2*X_s/(abs(Z_s))**2 - V_t*E_b*math.cos(delta-alpha)/abs(Z_S)\n",
+ "E_b_sin_delta_minus_9 = 407.2\n",
+ "E_b_cos_delta_minus_9 = 2413.6\n",
+ "#solving further\n",
+ "delta = math.atan(E_b_sin_delta_minus_9/E_b_cos_delta_minus_9 ) + 9\n",
+ "E_b = E_b_sin_delta_minus_9/math.sin(math.radians(delta-9))\n",
+ "\n",
+ "P_e_in_new = 1200*10**3/3\n",
+ "# using the following equation again\n",
+ "# P_e_in = V_t**2*R_a/(abs(Z_s))**2 + V_t*E_b*math.sin(delta-alpha)/abs(Z_S)\n",
+ "# Q_e_in = V_t**2*X_s/(abs(Z_s))**2 - V_t*E_b*math.cos(delta-alpha)/abs(Z_S)\n",
+ "\n",
+ "alpha = delta - math.asin(math.radians(P_e_in_new - V_t**2*R_a/(abs(Z_s))**2 ) / (V_t*E_b/abs(Z_s)))\n",
+ "Q_e_in_new = V_t**2*X_s/(abs(Z_s))**2 - V_t*E_b*math.cos(math.radians(delta - alpha))/abs(Z_s)\n",
+ "\n",
+ "pf = math.cos ( math.atan(abs(Q_e_in_new/P_e_in_new)))\n",
+ "\n",
+ "# Results\n",
+ "print 'New power factor is %.2f leading '%(pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New power factor is 0.01 leading \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.25 Page no : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6.6*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "P_in = 900.*10**3\n",
+ "R_a = 0.\n",
+ "X_s = 20. \t\t\t#armature resistance and synchronous reactance \n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag) \t\t\t# returns angle in radians \n",
+ "E_b_L = 8.6*10**3\n",
+ "E_bph = E_b_L/math.sqrt(3) \n",
+ "\n",
+ "# Calculations\n",
+ "#refer to phasor diagram\n",
+ "OA = V_ph\n",
+ "AB = E_bph \t\t\t#OB = E_Rph\n",
+ "\n",
+ "I_a_cosphi = P_in/(math.sqrt(3)*V_L) \t\t\t#I_a*math.cos(phi)\n",
+ "BC = I_a_cosphi*abs(Z_s) \t\t\t#BC is a vector in phasor diagram\n",
+ "\n",
+ "OC = math.sqrt(AB**2 -BC**2 )- OA \t\t\t#from phasor diagram\n",
+ "I_a_sinphi = OC/abs(Z_s) \t\t\t#product of I_a and math.sin(phi)\n",
+ "phi = math.atan (I_a_sinphi/I_a_cosphi)\n",
+ "I_a = I_a_cosphi/math.cos(phi) \t\t\t#product of I_a and math.cos(phi)\n",
+ "\n",
+ "# Results\n",
+ "print 'Motor current is %.3f A'%(I_a)\n",
+ "print 'Power factor of motor is %f leading'%(cos(phi))\n",
+ "print 'Note:There is slight mismatch in answer due to the approximation made during I_a* sinphi calculation'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor current is 90.643 A\n",
+ "Power factor of motor is 0.868564 leading\n",
+ "Note:There is slight mismatch in answer due to the approximation made during I_a* sinphi calculation\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.26 Page no : 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "#subscipt 1 refers to factory load\n",
+ "P_1 = 1800.\n",
+ "phi_1 = math.acos(0.6) \t\t\t#lagging\n",
+ "Q_1 = P_1*math.tan(phi_1)\n",
+ "\n",
+ "#Subscript 2 refers to synchronous condenser\n",
+ "P_2 = 0.\n",
+ "\n",
+ "# Calculations\n",
+ "#Subscript T refers to combination of condenser and factory load\n",
+ "P_T = P_1+P_2\n",
+ "phi_T = math.acos(0.95) \t\t\t#lagging\n",
+ "Q_T = P_T*math.tan(phi_T)\n",
+ "\n",
+ "kva_rating = math.sqrt(P_T**2+ Q_T**2)\n",
+ "\n",
+ "Q_2 = Q_T - Q_1\n",
+ "\n",
+ "# Results\n",
+ "print 'i)kVA rating of synchronous condender is %.3f kVA Minus sign indicates leading nature'%(Q_2)\n",
+ "print 'ii)kVA rating of total factory is %.4f kVA'%(kva_rating)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)kVA rating of synchronous condender is -1808.369 kVA Minus sign indicates leading nature\n",
+ "ii)kVA rating of total factory is 1894.7368 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27 Page no : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "I_1 = 35.\n",
+ "phi_1 = math.acos(0.8)\n",
+ "V_L = 440.\n",
+ "S_1 = math.sqrt(3)*I_1*V_L /1000 \t\t\t#in kVA\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "P_1 = S_1*math.cos(phi_1)\n",
+ "Q_1 = S_1*math.sin(phi_1)\n",
+ "\n",
+ "P_out = 12. \t\t\t#motor load\n",
+ "eta_motor = 85./100\n",
+ "P_2 = P_out/eta_motor\n",
+ "\n",
+ "P_T = P_1 + P_2\n",
+ "phi_T = math.acos(1)\n",
+ "Q_T = P_T * math.tan(phi_T)\n",
+ "\n",
+ "\n",
+ "Q_2 = Q_T - Q_1 \t\t\t#kVA supplied by motor\n",
+ "#negative sign of Q_2 indicates its leading nature\n",
+ "phi_2 = math.atan(abs(Q_2)/P_2)\n",
+ "S_2 = P_2/math.cos(phi_2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Power factor when motor supplies 12kW load is %.4f leading'%(math.cos(phi_2))\n",
+ "print 'kVA input to the motor is %.3f kVA'%(S_2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power factor when motor supplies 12kW load is 0.6615 leading\n",
+ "kVA input to the motor is 21.341 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28 Page no : 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "Z_s = complex(0.5,4) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag/Z_s.real) \t\t\t# returns angle in radians \n",
+ "\n",
+ "I_aph = 60.\n",
+ "phi = math.acos(0.866) \t\t\t#leading\n",
+ "power_losses = 2*10**3\n",
+ "\n",
+ "# Calculations\n",
+ "E_bph = math.sqrt( (I_aph*abs(Z_s))**2 + (V_ph)**2 - 2*(I_aph*abs(Z_s))*(V_ph)*math.cos(phi+theta) ) \n",
+ "delta = theta \t\t\t#for P_m_max\n",
+ "P_m_max = (E_bph*V_ph/abs(Z_s))- (E_bph**2/abs(Z_s))*math.cos(delta)\n",
+ "P_m_max_total = 3 * P_m_max\n",
+ "P_out_max = P_m_max_total- power_losses\n",
+ "\n",
+ "# Results\n",
+ "print 'Maximum power output is %.4f kW'%(P_out_max*10**-3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum power output is 51.3899 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29 Page no : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 6.6*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "I_L = 50.\n",
+ "I_aph = I_L\n",
+ "Z_s = complex(1.5,8) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag/Z_s.real) \t\t\t# returns angle in radians \n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "\n",
+ "# Calculations and Results\n",
+ "#part(i)\n",
+ "phi = math.acos(0.8)\n",
+ "P_in = math.sqrt(3)*V_L*I_L*math.cos(phi) \t\t\t#for both lag and lead supplied power will be the same\n",
+ "print 'i)Power supplied to the motor is %.3f kW'%(P_in*10**-3)\n",
+ "#part(ii)\n",
+ "E_bph_lag = math.sqrt( E_Rph**2 + V_ph**2 - 2*E_Rph*V_ph*math.cos(theta-phi) ) \t\t\t#for lagging power factor\n",
+ "#Note that E_bph_lag > V_ph\n",
+ "print 'ii)Induced EMF for 0.8 power factor lag is %.3f V'%(E_bph_lag)\n",
+ "E_bph_lead = math.sqrt( E_Rph**2 + V_ph**2 - 2*E_Rph*V_ph*math.cos(theta+phi) ) \t\t\t#for leading power factor\n",
+ "#Note that E_bph_lead < V_ph\n",
+ "print ' Induced EMF for 0.8 power factor lead is %.3f V'%(E_bph_lead)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Power supplied to the motor is 457.261 kW\n",
+ "ii)Induced EMF for 0.8 power factor lag is 3521.267 V\n",
+ " Induced EMF for 0.8 power factor lead is 4007.170 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.30 Page no : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 400.\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "P_out = 7.5*735.5\n",
+ "eta = 85./100 \t\t\t#efficiency\n",
+ "R_a = 0.\n",
+ "X_s = 10. \t\t\t#armature resistance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s)\t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag) \t\t\t# returns angle in radians \n",
+ "\n",
+ "# Calculations and Results\n",
+ "P_in = P_out/eta\n",
+ "phi = math.acos(1) \t\t\t#for mimimum current power factor is maximum\n",
+ "I_L = P_in/(math.sqrt(3)*V_L*math.cos(phi)) \n",
+ "I_aph = I_L\n",
+ "print 'Minimum current is %.3f A at full load condition '%(I_L)\n",
+ "\n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "E_bph = math.sqrt( E_Rph**2 + V_ph**2 - 2*E_Rph*V_ph*math.cos(phi+theta) ) \n",
+ "print 'and corresponding EMF is %.4f V'%(E_bph)\n",
+ "\n",
+ "# note : rounding off error.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum current is 9.367 A at full load condition \n",
+ "and corresponding EMF is 240.4216 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.31 Page no : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V_L = 3.3*10**3\n",
+ "V_ph = V_L/math.sqrt(3)\n",
+ "V_t = V_ph\n",
+ "Pole = 24.\n",
+ "f = 50. \t\t\t#Pole and frequency\n",
+ "P = 1000.*10**3\n",
+ "R_a = 0\n",
+ "X_s = 3.24 \t\t\t#armature resistance and synchronous reactance\n",
+ "Z_s = complex(R_a,X_s) \t\t\t#synchronous impedance\n",
+ "theta = math.atan(Z_s.imag) \t\t\t# returns angle in radians \n",
+ "phi = math.acos(1)\n",
+ "I_aph = P/(math.sqrt(3)*V_L*math.cos(phi))\n",
+ "\n",
+ "# Calculations\n",
+ "E_Rph = I_aph*abs(Z_s)\n",
+ "E_bph = math.sqrt( E_Rph**2 + V_ph**2 - 2*E_Rph*V_ph*math.cos(phi+theta) ) \n",
+ "\n",
+ "P_m_max = 3*(E_bph*V_ph/abs(Z_s)) \t\t\t#maximum power that can be delivered\n",
+ "N_s = 120*f/Pole \t\t\t#synchronous speed\n",
+ "T_max = P_m_max /(2*math.pi*N_s/60) \t\t\t#maximum torque that can be developed\n",
+ "\n",
+ "# Results\n",
+ "print 'Maximum power and torque the motor can deliver is %.3f kW and %.2f *10**3 Nm respectively'%(P_m_max*10**-3,T_max/1000)\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum power and torque the motor can deliver is 3211.633 kW and 122.68 *10**3 Nm respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch1.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch1.png
new file mode 100755
index 00000000..a18f9a05
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch1.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch1_1.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch1_1.png
new file mode 100755
index 00000000..a18f9a05
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch1_1.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch1_2.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch1_2.png
new file mode 100755
index 00000000..a18f9a05
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch1_2.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch4.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch4.png
new file mode 100755
index 00000000..4e0892cf
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch4.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch4_1.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch4_1.png
new file mode 100755
index 00000000..4e0892cf
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch4_1.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch4_2.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch4_2.png
new file mode 100755
index 00000000..4e0892cf
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch4_2.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch7.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch7.png
new file mode 100755
index 00000000..6244be52
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch7.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch7_1.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch7_1.png
new file mode 100755
index 00000000..6244be52
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch7_1.png
Binary files differ
diff --git a/DC_Machines_and_Synchronous_Machines/screenshots/ch7_2.png b/DC_Machines_and_Synchronous_Machines/screenshots/ch7_2.png
new file mode 100755
index 00000000..6244be52
--- /dev/null
+++ b/DC_Machines_and_Synchronous_Machines/screenshots/ch7_2.png
Binary files differ
diff --git a/Digital_Communications/Chapter2.ipynb b/Digital_Communications/Chapter2.ipynb
new file mode 100755
index 00000000..9cc6d1df
--- /dev/null
+++ b/Digital_Communications/Chapter2.ipynb
@@ -0,0 +1,290 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 2: SAMPLING THEORY AND PULSE MODULATION<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, page no 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find Nquist Rate\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given \n",
+ "pi=3.14\n",
+ "w1=50*pi\n",
+ "w2=300*pi\n",
+ "w3=100*pi\n",
+ "#w=2*%pi*f\n",
+ "\n",
+ "#Calculation\n",
+ "f1=w1/(2*pi)\n",
+ "f2=w2/(2*pi)\n",
+ "f3=w3/(2*pi)\n",
+ "fm=f2 #fm = maximum frquency is present at the signal\n",
+ "\n",
+ "#Result\n",
+ "print('maximum frquency of the signal is = %.2f Hz' %f2)\n",
+ "fs=2*fm #Nyquist rate\n",
+ "print('Nquist Rate of Signal is = %.2f Hz' %fs)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum frquency of the signal is = 150.00 Hz\n",
+ "Nquist Rate of Signal is = 300.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 , page no 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Nquist Rate and Nquist time interval\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "w1=5000*math.pi\n",
+ "w2=3000*math.pi;\n",
+ "f1=w1/(2*math.pi);\n",
+ "f2=w2/(2*math.pi);\n",
+ "\n",
+ "#Calculation\n",
+ "fm=f1 #fm = maximum frquency is present at the signal\n",
+ "fs=2*fm #Nyquist rate\n",
+ "Ts=1.0/(2.0*fm) #frequncy =1/time\n",
+ "Ts=Ts*(10**3)\n",
+ "\n",
+ "#Result\n",
+ "print('maximum frquency of the signal is = %.f Hz' %f1)\n",
+ "print('Nquist Rate of the given Signal is = %.f Hz' %fs)\n",
+ "print('Nquist Interval of the given signal is = %.1f m Sec' %Ts)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum frquency of the signal is = 2500 Hz\n",
+ "Nquist Rate of the given Signal is = 5000 Hz\n",
+ "Nquist Interval of the given signal is = 0.2 m Sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find Nquist Rate \n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "f=100.0 # Frequency component of continuous-time signal\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*f #Nyquist rate\n",
+ "\n",
+ "#Result\n",
+ "print('i) To avoid aliasing Nquist Rate is = %.f Hz' %fs)\n",
+ "print('ii) It is theoretical example ')\n",
+ "print('iii) It is theoretical example ')\n",
+ "print('iv) It is theoretical example ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) To avoid aliasing Nquist Rate is = 200 Hz\n",
+ "ii) It is theoretical example \n",
+ "iii) It is theoretical example \n",
+ "iv) It is theoretical example \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, page no 52 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Nquist Rate of Continous signal\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "w1=50*math.pi\n",
+ "w2=300*math.pi\n",
+ "w3=100*math.pi\n",
+ "\n",
+ "#Calculation\n",
+ "f1=w1/(2*math.pi)\n",
+ "f2=w2/(2*math.pi)\n",
+ "f3=w3/(2*math.pi)\n",
+ "fmax=f2 #fmax = Highest frquency component of the message signal\n",
+ "fs=2*fmax #Nyquist rate\n",
+ "\n",
+ "#Result\n",
+ "print('Highest frquency component of the message signal will be fmax = %.f Hz' %fmax)\n",
+ "print('Nquist Rate of the given Signal is = %.f Hz' %fs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Highest frquency component of the message signal will be fmax = 150 Hz\n",
+ "Nquist Rate of the given Signal is = 300 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.7, page no 67 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find amplitude distortion at highest frquency\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "fs=9.5 #samplig frequncy\n",
+ "fmax=1 #maximum frequncy\n",
+ "t=0.2 #pulse width\n",
+ "\n",
+ "#Calculation\n",
+ "c=3*10**8\n",
+ "f=fmax\n",
+ "H1=t*(0.9933) #aperture effect at highest frequency, sinc(f*t)=0.9933 (given)\n",
+ "H1=H1*100\n",
+ "\n",
+ "#Result\n",
+ "print('|H(1)|=%.2f' %H1)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "|H(1)|=19.87\n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, page no 74 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate Transmission Bandwidth\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "fm=3.0*(10^3)\n",
+ "fs=8.0*(10^3) # sampling frequncy\n",
+ "\n",
+ "#Calculation\n",
+ "Ts=1.0/fs\n",
+ "t=0.1*Ts\n",
+ "BW=1.0/(2*t) #Bandwidth\n",
+ "BW=BW/(10^3)\n",
+ "\n",
+ "#Result\n",
+ "print('Transmission Bandwidth of PAM signal is kHz = %.f Khz ' %BW)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmission Bandwidth of PAM signal is kHz = 40 Khz \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter3.ipynb b/Digital_Communications/Chapter3.ipynb
new file mode 100755
index 00000000..805bc62b
--- /dev/null
+++ b/Digital_Communications/Chapter3.ipynb
@@ -0,0 +1,2238 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 3: WAVEFORM CODING TECHNIQUES<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3,1 Page No 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print('This is a Theoretical example')\t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This is a theoretcal example\n"
+ ]
+ }
+ ],
+ "prompt_number": 104
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3,2,i, Page No 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#find code word length\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512 #Quantization levels\n",
+ "#q=2^v\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log10(512)/math.log10(2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The code word legth is = %.f bits\" %v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The code word legth is = 9 bits\n"
+ ]
+ }
+ ],
+ "prompt_number": 105
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2.ii, Page No 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#find The transmission Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512.0 #Quantization levels\n",
+ "v=9.0\n",
+ "\n",
+ "#Calculation\n",
+ "bw=v*fm*10**-6\n",
+ "\n",
+ "#Result\n",
+ "print(\"The transmission Bandwidth is = %.1f MHz\" %bw)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The transmission Bandwidth is = 37.8 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 106
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2.iii, Page No 111 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find Final Bit rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512.0 #Quantization levels\n",
+ "v=9.0\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm\n",
+ "r=v*fs #signaling rate\n",
+ "\n",
+ "#Result\n",
+ "print(\"Final Bit rate =%.1f x 10^6 bits/sec\" %(r/(10**6)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Bit rate =75.6 x 10^6 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 107
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2.iv, Page No 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find Output signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512 #Quantization levels\n",
+ "v=9.0\n",
+ "\n",
+ "#Calculation\n",
+ "sn=4.8+6*v #noise in dB\n",
+ "\n",
+ "\n",
+ "print(\"Output signal to noise ratio is = %.1f dB\" %sn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal to noise ratio is = 58.8 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.i, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find bits per sample\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fmax=4*10**3\n",
+ "xmax=3.8\n",
+ "snr=100\n",
+ "\n",
+ "#Calculation\n",
+ "P=30*10**-3\n",
+ "v=(math.log10(((snr*xmax**2)/(3*P)))/(2*math.log10(2)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Number of bits required per sample are = %.2f bits\" %v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of bits required per sample are = 6.98 bits\n"
+ ]
+ }
+ ],
+ "prompt_number": 109
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.ii, Page No 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find Transmission Bandwith\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=4*10**3 #Bandwidth of PCM\n",
+ "xmax=3.8\n",
+ "snr=100 #Signal to Noise Ratio\n",
+ "outputs=30.0\n",
+ "v=7.0\n",
+ "\n",
+ "#Calculation\n",
+ "bw=outputs*v*fm \n",
+ "r=bw*2\n",
+ "bw=bw/10**3\n",
+ "\n",
+ "#Result\n",
+ "print('Transmission Bandwith R = %.f kHz' %bw)\n",
+ "r=r/1000\n",
+ "print('Signaling rate R = %.f bits/sec' %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmission Bandwith R = 840 kHz\n",
+ "Signaling rate R = 1680 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#find sampling rate,number of bits,bit rate,bandwidht\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "emax=0.001\n",
+ "de=2*emax\n",
+ "fm=100.0\n",
+ "xmax=10.0\n",
+ "\n",
+ "#Calculation\n",
+ "q=(2*xmax)/de\n",
+ "fs=2*fm\n",
+ "v=(math.log10(q))/math.log10(2)\n",
+ "v=math.ceil(v)\n",
+ "r=v*fs\n",
+ "\n",
+ "#Result\n",
+ "print('1. sampling Frequncy = %.f Hz ' %fs) \n",
+ "print('2. No.of bits in PCM = %.f bits ' %v) \n",
+ "print('3. sampling rate = %.f bits per second ' %r)\n",
+ "r=r/2\n",
+ "print('4. Transmission Bandwidth = %.f Hz ' %r) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. sampling Frequncy = 200 Hz \n",
+ "2. No.of bits in PCM = 14 bits \n",
+ "3. sampling rate = 2800 bits per second \n",
+ "4. Transmission Bandwidth = 1400 Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page No 113 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Bandwidth,Sampling Rate\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=3.4*10**3\n",
+ "N=24\n",
+ "r=1.5*10**6\n",
+ "encoder=8\n",
+ "\n",
+ "#Calculation\n",
+ "BW=N*fm\n",
+ "BW=BW/10**3\n",
+ "r1=r/N\n",
+ "fs=r1/encoder\n",
+ "\n",
+ "#Result\n",
+ "print(\"i. Channel Bandwith is = %.2f kHz\" %BW)\n",
+ "print(\"ii. Sampling frequency is = %.2f Hz or samples per second.\" %fs)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i. Channel Bandwith is = 81.60 kHz\n",
+ "ii. Sampling frequency is = 7812.50 Hz or samples per second.\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 114 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find Signal Bandwidth,Noise Ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "v=7\n",
+ "r=50*10**6\n",
+ "\n",
+ "#Calculation\n",
+ "#fs=2*fm\n",
+ "fm=r/(2*v)\n",
+ "snr=1.8+(6*v);\n",
+ "fm=fm*10**-6\n",
+ "\n",
+ "#Result\n",
+ "print('i. Maximum message Bandwidth is = %.2f MHz ' %fm)\n",
+ "print('ii. signal to quantization niose ration = %.2f dB ' %snr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i. Maximum message Bandwidth is = 3.57 MHz \n",
+ "ii. signal to quantization niose ration = 43.80 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#find i)bits per sample,ii)transmission rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=3*10**3\n",
+ "q=16\n",
+ "\n",
+ "#Calculation\n",
+ "v=(math.log10(q))/math.log10(2)\n",
+ "\n",
+ "#Result\n",
+ "print('i) Bits in code word= %.f bits' %v)\n",
+ "fs=2*fm\n",
+ "r=v*fs\n",
+ "print('ii) it trasmission rate= %.f x 10^3 bits per second' %(r/(10**3)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Bits in code word= 4 bits\n",
+ "ii) it trasmission rate= 24 x 10^3 bits per second\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=3.5*10**3\n",
+ "r=50*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm\n",
+ "rms=0.2\n",
+ "xmax=2\n",
+ "v=r/fs #signaling rate r=v*fs\n",
+ "v=math.ceil(v)\n",
+ "P=(rms**2)/1\n",
+ "SNR=((3*P*2**(2*v))/(xmax**2))\n",
+ "SN=10*math.log10(SNR)\n",
+ "SN=math.ceil(SN)\n",
+ "\n",
+ "#Result\n",
+ "print(\"signal to niose ratio =%.f dB\" %SN)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "signal to niose ratio =33 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 115
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10, Page No 117 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find i)noise ratio ii)bits\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "Am=3.0\n",
+ "v=10.0\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=1.8+6*v #noise ratio \n",
+ "SN=40\n",
+ "v=(SN-1.8)/6\n",
+ "\n",
+ "#Result\n",
+ "print(\"i) Signal to Quantization noise ratio = %.1f dB\" %SNR)\n",
+ "print(\"ii) Bits required to get signal to niose ratio of 40dB = %.f \" %math.ceil(v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Signal to Quantization noise ratio = 61.8 dB\n",
+ "ii) Bits required to get signal to niose ratio of 40dB = 7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 116
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 117 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Maximum frequency\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "v=7\n",
+ "SNR=1.8+6*v\n",
+ "r=56*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "fs=r/v #r=v*fs signaling rate\n",
+ "fm=fs/2 #Nquset rate\n",
+ "\n",
+ "#Result\n",
+ "fm=fm/10**3\n",
+ "print(\"Maximum frequency is = %.f kHz\" %fm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum frequency is = 4 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 117
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14, Page No 129 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Maximum Amplitude\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3*10**3.0\n",
+ "\n",
+ "#Calculation\n",
+ "Nyquistrate=2*fm #Nyquistrate\n",
+ "fs=5*Nyquistrate #Samplingfrquency\n",
+ "Ts=1/fs #Sampling Interval\n",
+ "de=0.25 #step size\n",
+ "fm1=2*10**3.0\n",
+ "Am=de/(2*math.pi*fm1*Ts)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum Amplitude = %.4f Volts\" %Am)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Amplitude = 0.5968 Volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find signaling rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs1=8*10**3.0\n",
+ "de=31.25*10**-3\n",
+ "q=64.0\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log(q,2)\n",
+ "r=v*fs1 #signaling rate\n",
+ "fm=3*10**3.0\n",
+ "A=1\n",
+ "fs2=(2*math.pi*fm*A)/(de)\n",
+ "\n",
+ "#Result\n",
+ "r=r*10**-3\n",
+ "print(\"Signaling rate of PCM is = %.f kHz\" %r)\n",
+ "fs2=fs2*10**-3\n",
+ "print(\"The signaling rate of DM is = %.2f kHz\" %fs2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signaling rate of PCM is = 48 kHz\n",
+ "The signaling rate of DM is = 603.19 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 119
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64.0*10**3 #frequency\n",
+ "fm=2.0*10**3 #Sinosoidal input signal sample \n",
+ "fM=4.0*10**3 #bandwidth\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=(3*fs**3)/(8*math.pi**2*fm**2*fM) #Signal to noise ratio\n",
+ "SNRO=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Output signal to noise ratio = %.2f dB\" %SNRO)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal to noise ratio = 27.94 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 120
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find signal to Quatization noise ratio \n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=8.0*10**3 #Sampling frequency\n",
+ "r=64.0*10**3 #Data Rate\n",
+ "N=8 #number of bits\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=(1.8+6*N) #signal to Quatization noise ratio\n",
+ "\n",
+ "#Result\n",
+ "print(\"Signal to Quatization noise ratio of PCM system is = %.f dB\" %SNR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signal to Quatization noise ratio of PCM system is = 50 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 121
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find sampling rate,quantizing level\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r=36000\n",
+ "fm=3.2*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm #Nquest rate\n",
+ "v=r/fs #r=v*fs signaling rate\n",
+ "v=math.floor(v)\n",
+ "q=2**v\n",
+ "fs1=r/v\n",
+ "\n",
+ "#Result\n",
+ "print(\"Quantizing level q = %.f \" %q)\n",
+ "fs1=fs1/1000\n",
+ "print(\"sampling rate fs = %.1f kHz \" %fs1)\n",
+ "print(\"Number of binary digits = %.f \" %v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizing level q = 32 \n",
+ "sampling rate fs = 7.2 kHz \n",
+ "Number of binary digits = 5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find time duration of 1bit binary encoded signal\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=input(\"Enter the Nyquist rate of Signal fs(Hz)=\")\n",
+ "q=input(\"Enter the Quantization levels q =\")\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log(q,2) #binary pulses transmitted per second\n",
+ "t=1.0/(v*fs) #Nyquist interval\n",
+ "\n",
+ "#Result\n",
+ "print('Time duration of binary signal t = %.4f sec ' %t)\n",
+ "#output\n",
+ "#Enter the Nyquist rate fs(Hz)=3\n",
+ "#Enter the Quantization levels q =5\n",
+ "#time duration of 1bit binary signal \n",
+ "#t=0.1435589 sec"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Nyquist rate of Signal fs(Hz)=23\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Quantization levels q =34\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time duration of binary signal t = 0.0085 sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 123
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNR=40\n",
+ "SNRO=10**(SNR/10)\n",
+ "\n",
+ "#SNR=3(q**2)/2, Signal to Quantization noise ratio\n",
+ "\n",
+ "#Calculation\n",
+ "q=math.sqrt((2*SNRO)/3)\n",
+ "q=math.ceil(q)\n",
+ "v=math.log(q,2) #q=2**v Quantization levels\n",
+ "v=math.ceil(v)\n",
+ "snr=1.76+6.02*v #output Signal to Quantization noise ratio\n",
+ "\n",
+ "#Result\n",
+ "print(\"Output Signal to Quantization noise ratio = %.1f dB\" %snr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output Signal to Quantization noise ratio = 43.9 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 124
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24.i, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Quantizing levels,minimum number of bits per sample\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNRO=30.0\n",
+ "fmin=300.0\n",
+ "fmax=3300.0\n",
+ "fs=80000.0\n",
+ "\n",
+ "#Calculation\n",
+ "#SNRO=1.76+20log10(q)\n",
+ "q=10**((SNRO-1.76)/20)\n",
+ "q=math.ceil(q)\n",
+ "v=math.log(q,2)\n",
+ "\n",
+ "#Result\n",
+ "print('Quantizing levels required is =%.f' %q)\n",
+ "print('minimum number of bits per sample are=%.1f that is approximately 5' %v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizing levels required is =26\n",
+ "minimum number of bits per sample are=4.7 that is approximately 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 125
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24.ii, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find minimum required bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNRO=30.0 #Signal to quantisizing noise ratio\n",
+ "fmin=300.0 #min frequency band\n",
+ "fmax=3300.0 #max frequency band\n",
+ "fs=8000.0 #Sampling rate\n",
+ "v=5.0 #Minimum number of bits per sample\n",
+ "\n",
+ "#Calculation\n",
+ "fPCM=(v*fs)/2\n",
+ "fPCM=fPCM/1000\n",
+ "\n",
+ "#Result\n",
+ "print('minimum required bandwidth =%.f kHz' %fPCM)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum required bandwidth =20 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24.iii, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Quantizing levels,minimum number of bits per sample and bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNRO=30.0 #Signal to quantisizing noise ratio\n",
+ "fmin=300.0 #min frequency band\n",
+ "fmax=3300.0 #max frequency band\n",
+ "fs=8000.0 #Sampling rate\n",
+ "\n",
+ "#Calculation\n",
+ "q=10**((SNRO+10.1)/20)\n",
+ "q=math.ceil(q)\n",
+ "v=math.log(q,2)\n",
+ "v=math.ceil(v)\n",
+ "\n",
+ "#Result\n",
+ "print('Quantizing levels need is =%.f' %q)\n",
+ "print('minimum number of bits per sample is =%.f' %v)\n",
+ "fPCM=(v*fs)/2\n",
+ "fPCM=fPCM/1000\n",
+ "print('minimum required bandwidth =%.f Khz' %fPCM)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizing levels need is =102\n",
+ "minimum number of bits per sample is =7\n",
+ "minimum required bandwidth =28 Khz\n"
+ ]
+ }
+ ],
+ "prompt_number": 127
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.27, Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#determine the Maximum Amplitude,\n",
+ "\n",
+ "#Variable Declaration\n",
+ "de=250*10**-3\n",
+ "wm=2*math.pi*1000 \n",
+ "fs=3*10**3\n",
+ "Ts=1/fs\n",
+ "\n",
+ "#Calculation\n",
+ "Amax=(de*3*fs*2)/(wm) #Amplitude\n",
+ "SNR=(3.0*((3*6*(10**3))**3))/((8*(math.pi**2)*(10**3)**3))\n",
+ "\n",
+ "#Result\n",
+ "print('Maximum Amplitude= %.1f mV' %(Amax*(10**2)))\n",
+ "print('Signal to noise ratio = %.2f dB' %(10*math.log10(SNR)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Amplitude= 71.6 mV\n",
+ "Signal to noise ratio = 23.46 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 128
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.29, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of bits per sample\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNR=20\n",
+ "averagepower=30*10**-3\n",
+ "SNRO=10**(SNR/10)\n",
+ "A=3.8\n",
+ "\n",
+ "#SNRO=average signal power/Quatizing power\n",
+ "#de=(2*A)/L\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt((SNRO*A**2)/(3*averagepower))\n",
+ "n=math.log(L,2)\n",
+ "n=math.ceil(n)\n",
+ "\n",
+ "#Result\n",
+ "print('Bits required per sample =%.f' %n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bits required per sample =7\n"
+ ]
+ }
+ ],
+ "prompt_number": 129
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30.i, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Normalized power for quantization noise\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3.0*10.0**3\n",
+ "v=8.0\n",
+ "VH=5.0\n",
+ "VL=-5.0\n",
+ "q=2**v\n",
+ "\n",
+ "#Calculation\n",
+ "de=(VH-VL)/q\n",
+ "Nq=de**2/12.0 #quantization noise\n",
+ "\n",
+ "#Result\n",
+ "print('Normalized power for quantization noise =%.2f x 10^-6 W' %(Nq*(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normalized power for quantization noise =127.16 x 10^-6 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 130
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30.ii, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find bit transmission rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3*10.0**3\n",
+ "v=8.0\n",
+ "VH=5.0\n",
+ "VL=-5\n",
+ "q=2**v\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm #Nyquist rate\n",
+ "r=8*fs/1000\n",
+ "\n",
+ "#Result\n",
+ "print('bit transmission rate %.f K bits/s' %r)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bit transmission rate 48 K bits/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 131
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30.iii, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Signal to quantization noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Nq=127.15*10**-6\n",
+ "Meansignal=2\n",
+ "\n",
+ "#Calculation\n",
+ "P=Meansignal/1\n",
+ "SNR=P/Nq\n",
+ "SNRq=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print('Signal to quantization noise ratio %.2f dB ' %SNRq)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signal to quantization noise ratio 41.97 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 132
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.31, Page No 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find i)SNR ii)output bit rate iii)no.of bits recorded\n",
+ "\n",
+ "#Variable Declaration\n",
+ "N=16.0\n",
+ "v=16.0\n",
+ "fs=44.1*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=1.76+6*N\n",
+ "bitrate=2*v*fs\n",
+ "outputbitrate=2*bitrate*10**-6 #including addtional 100% over head\n",
+ "CD=outputbitrate*3600*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print('i)Out put signal noise ratio =%.2f dB' %SNR)\n",
+ "print('ii)output bit rate =%.3f Mbits/sec' %outputbitrate)\n",
+ "print('iii)no.of bits recorded in CD =%.2f gigabits' %CD)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Out put signal noise ratio =97.76 dB\n",
+ "ii)output bit rate =2.822 Mbits/sec\n",
+ "iii)no.of bits recorded in CD =10.16 gigabits\n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.32, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find output SNR\n",
+ "#Variable Declaration\n",
+ "fm=1*10.0**3\n",
+ "fs=32*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "FM=4*10**3 #Bandwidth\n",
+ "SNR=(3*fs**3)/(8*math.pi**2*fm**2*FM) #SNR\n",
+ "SNRO=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print('Output signal to noise ratio %.2f dB' %SNRO)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal to noise ratio 24.93 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.33.i, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step size\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64000.0 #samples/sec\n",
+ "Amax=1.0 #Maximum signal amplitude\n",
+ "fm=3500.0 #Sample Rate\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*Amax)/fs*1000\n",
+ "\n",
+ "#Result\n",
+ "print('Step Size %.2f mV ' %de)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step Size 343.61 mV \n"
+ ]
+ }
+ ],
+ "prompt_number": 135
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.33ii, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Quantizatio noise power \n",
+ "#Variable Declaration\n",
+ "fs=64000.0 #sample Rate\n",
+ "Amax=1.0 #Maximum signal Amplitude\n",
+ "fm=3500.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=343.6117*10**-3 #step size\n",
+ "Nq=de**2/3.0 #Quantizatio noise power\n",
+ "Nqd=Nq*(fm/fs)*1000\n",
+ "\n",
+ "#Result\n",
+ "print('Quantizatio noise power %.3f mW' %Nqd)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizatio noise power 2.152 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 136
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.33iii, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find SNR\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64000.0\n",
+ "Amax=1.0\n",
+ "fm=3500.0\n",
+ "Nqd=2.1522995*10**-3\n",
+ "\n",
+ "#Calculation\n",
+ "So=Amax**2/2\n",
+ "SNR=So/Nqd\n",
+ "SNRO=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print('Output signal noise ratio dB %.3f dB' %SNRO)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal noise ratio dB 23.661 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.34, Page No 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Assuming signal is sampled at the rate 20% above Nyquist rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=4.5*10**6\n",
+ "q=1024.0\n",
+ "\n",
+ "#Calculation\n",
+ "fs=1.2*2*fm #20% above Nyquist rate\n",
+ "v=math.log(q,2)\n",
+ "r=v*fs/10**6\n",
+ "\n",
+ "#Result\n",
+ "print('no.of bits/sec = %.f M bit/sec' %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "no.of bits/sec = 108 M bit/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.35, Page No 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume bandwidth of the singal is 4kHz\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=32000.0\n",
+ "A=2.0\n",
+ "fm=4000.0\n",
+ "BW=4000.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*A)/fs\n",
+ "Nq=de**2/3\n",
+ "SNR=(3*fs**3)/(8*math.pi**2*fm**2*BW)\n",
+ "\n",
+ "#Result\n",
+ "print('i)step size = %.3f M Volt' %de)\n",
+ "print('ii)noise power = %.3f W' %Nq)\n",
+ "print('iii)SNR= = %.3f ' %SNR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)step size = 1.571 M Volt\n",
+ "ii)noise power = 0.822 W\n",
+ "iii)SNR= = 19.454 \n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.36, Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assuming signal is sampled at the rate 20% above Nyquist rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=15*10**3\n",
+ "fs=1.2*2*fm\n",
+ "q=65536\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log(q,2)\n",
+ "r=v*fs/1000\n",
+ "BW=r/2\n",
+ "\n",
+ "#Result\n",
+ "print('i)signaling rate,= %.f K bits/sec ' %r)\n",
+ "print('ii)bandwidth BW min = %.f kHz ' %BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)signaling rate,= 576 K bits/sec \n",
+ "ii)bandwidth BW min = 288 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.37, Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step size,noise power\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64*10**3\n",
+ "fm=3500.0\n",
+ "A=1.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*A)/fs #step size\n",
+ "Nq=(de**2/3)*(fm/fs) #Granular noise power\n",
+ "\n",
+ "#Result\n",
+ "print('i)step size = %.3f Volts' %de)\n",
+ "print('ii)Nq= %.5f W' %Nq)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)step size = 0.344 Volts\n",
+ "ii)Nq= 0.00215 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.40, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step Nr,Transmission Bandwidth, SNR\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=4 #kHz\n",
+ "N=12\n",
+ "\n",
+ "#Calculation\n",
+ "Nr=2*fs #Nyquest rate\n",
+ "Bt=1.0/2*N*fs #Transmission Bandwidth\n",
+ "SNR=1.8+(6*N) \n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('i)Nyquest rate = %.1f kHz' %Nr)\n",
+ "print('ii)Transmission Bandwidth = %.1f kHz' %Bt)\n",
+ "print('iii)SNR = %.1f dB' %SNR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Nyquest rate = 8.0 kHz\n",
+ "ii)Transmission Bandwidth = 24.0 kHz\n",
+ "iii)SNR = 73.8 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.41, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step size,noise power\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3.5*10**3\n",
+ "fs=64*10**3\n",
+ "A=2.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*A)/fs #step size\n",
+ "Nq=(de**2/3)*(fm/fs) #Granular noise power\n",
+ "\n",
+ "#Result\n",
+ "print('i)step size = %.3f Volts' %de)\n",
+ "print('ii)Nq= %.1f X 10^-3 W' %(Nq*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)step size = 0.687 Volts\n",
+ "ii)Nq= 8.6 X 10^-3 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.42, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Bit rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=4.5 * 10**6 #khz\n",
+ "Nr = 2 * W #Nyquist Rate\n",
+ "Q = 1024\n",
+ "fs=10.8\n",
+ "\n",
+ "#Calculation\n",
+ "N = math.log(Q,2) #number of binay pulse per word\n",
+ "Br= N*fs #Bit rate\n",
+ "Bw= 1.0/2*Br #Bandwidth\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of binay pulse per word = %.1f k bits/sec' %N)\n",
+ "print('ii) Bit rate = %.1f k bits/sec' %Br)\n",
+ "print('iii)Bandwidth= %.1f X 10^-3 kHz' %Bw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of binay pulse per word = 10.0 k bits/sec\n",
+ "ii) Bit rate = 108.0 k bits/sec\n",
+ "iii)Bandwidth= 54.0 X 10^-3 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 144
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.43, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Bit rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=15 #khz\n",
+ "Nr = 2*W #Nyquist Rate\n",
+ "Q = 65.53\n",
+ "fs=44.1 # Sampling rate kHz\n",
+ "N=16\n",
+ "\n",
+ "#Calculation\n",
+ "Br= N*fs #Bit rate\n",
+ "Bw= 1.0/2*Br #Bandwidth\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of binay pulse per word = %.3f bits' %N)\n",
+ "print('ii) Bit rate = %.1f k bits/sec' %Br)\n",
+ "print('iii)Bandwidth= %.1f kHz' %Bw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of binay pulse per word = 16.000 bits\n",
+ "ii) Bit rate = 705.6 k bits/sec\n",
+ "iii)Bandwidth= 352.8 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 145
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.44, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Number of binay pulse per word\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=3.3 #khz\n",
+ "fm = 1*10**3 #kHz\n",
+ "de = 250 #mV\n",
+ "fs=19.8 # Sampling rate kHz\n",
+ "\n",
+ "#Calculation\n",
+ "A=(de*fs)/(2*math.pi*fm)\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of binay pulse per word = %.3f' %A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of binay pulse per word = 0.788\n"
+ ]
+ }
+ ],
+ "prompt_number": 146
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.45, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Signaling rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=3.3 #khz\n",
+ "fm = 3300 #Hz\n",
+ "Snq = 40 #dB\n",
+ "fs= 8000 # Samples/sec\n",
+ "\n",
+ "#Calculation \n",
+ "N=math.ceil((Snq-4.8)/6) # Number of bits per word\n",
+ "Q=2**N #\n",
+ "r=N*fs #Signaling rate k bits/sec\n",
+ "Bw=1.0/2*r\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of bits per word = %.1f' %N)\n",
+ "print('ii) Signaling rate rate = %.1f k bits/sec' %(r/10**3))\n",
+ "print('iii)Bandwidth= %.1f kHz' %(Bw/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of bits per word = 6.0\n",
+ "ii) Signaling rate rate = 48.0 k bits/sec\n",
+ "iii)Bandwidth= 24.0 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.46, Page No 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find the maximun frequency with 1 volt amplitude\n",
+ "\n",
+ "#Variable Declaration\n",
+ "de=256*10**-3 #V\n",
+ "Ts = 10*10**-6 #kHz\n",
+ "fm = 10 #kHz\n",
+ "fs= 100 # kHz\n",
+ "A=1 #V\n",
+ "\n",
+ "#Calculation \n",
+ "wm=(de/A*Ts)*10**7\n",
+ "\n",
+ "#Result\n",
+ "print('i) maximun frequency = %.1f X 10^3 rad/sec' %wm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) maximun frequency = 25.6 X 10^3 rad/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 148
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.47, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find the Signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Q=256 \n",
+ "m=255\n",
+ "\n",
+ "#Calculation \n",
+ "SNR=(3*Q**2)/(math.log((1+m),math.e))**2 #dB\n",
+ "Gc=m/(math.log(1+m)) #Companding gain\n",
+ "Gc=20*math.log(Gc,10)\n",
+ "\n",
+ "#Result\n",
+ "print('i) The Signal to noise ratio= %.1f dB' %SNR)\n",
+ "print('ii) The Companding gain = %.1f dB' %Gc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Signal to noise ratio= 6394.0 dB\n",
+ "ii) The Companding gain = 33.3 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.48, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Signaling rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=15*10**3 #kHz\n",
+ "Q=200\n",
+ "fs=2*fm\n",
+ "\n",
+ "#Calculation \n",
+ "N=math.ceil(math.log(Q,2))\n",
+ "tr=N*fs #Transmission rate kbps\n",
+ "Bw=1.0/2*tr\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of bits per Samples = %.1f' %N)\n",
+ "print('ii) Signaling rate = %.1f k bits/sec' %(tr/10**3))\n",
+ "print('iii)Bandwidth= %.1f kHz' %(Bw/10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of bits per Samples = 8.0\n",
+ "ii) Signaling rate = 240.0 k bits/sec\n",
+ "iii)Bandwidth= 120.0 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.49, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of quantization level\n",
+ "\n",
+ "#Variable Declaration\n",
+ "tr=36.0 #kbps\n",
+ "fm=3.4 #kHz\n",
+ "fs=8\n",
+ "\n",
+ "#Calculation \n",
+ "N=math.ceil(tr/fs)\n",
+ "Q=2**N\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('i) number of quantization level = %.1f' %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) number of quantization level = 32.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 151
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.50, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find delta modulation\n",
+ "\n",
+ "#Variable Declaration\n",
+ "A=1 #V\n",
+ "fm=3.4 #kHz\n",
+ "fs=20\n",
+ "\n",
+ "#Calculation \n",
+ "de=1*2*math.pi*(fm/fs)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('i) delta modulation = %.2f V' %de)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) delta modulation = 1.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 152
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.51, Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=3.5 #kHz\n",
+ "r=50.0 #kbps\n",
+ "Vpp=4 #V\n",
+ "fs=8\n",
+ "\n",
+ "#Calculation \n",
+ "N=r/fs\n",
+ "SNR=4.8+(6.8*N)\n",
+ "\n",
+ "#Result\n",
+ "print('i) Signal to noise ratio = %.2f V' %SNR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Signal to noise ratio = 47.30 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 153
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.52, Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=1 #MHz\n",
+ "fs1=3 #MHz\n",
+ "fs2=2.4 #MHz\n",
+ "Q=256\n",
+ "m=255\n",
+ "\n",
+ "#Calculation \n",
+ "SNR=((3*Q**2)/(math.log((1+m),math.e))**2)\n",
+ "SNR1=63095.73 #SNR=38+10\n",
+ "Q1=math.sqrt((SNR1*((math.log(256,math.e))**2))/3)\n",
+ "N1=math.ceil(math.log(Q1,2))\n",
+ "r=N1*fs2\n",
+ "Bw=1.0/2*r\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of bits/word = %.2f ' %N1)\n",
+ "print('ii) Bit rate = %.1f Mb/s' %r)\n",
+ "print('iii) Bandwidth = %.1f Mb/s' %Bw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of bits/word = 10.00 \n",
+ "ii) Bit rate = 24.0 Mb/s\n",
+ "iii) Bandwidth = 12.0 Mb/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 154
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter4.ipynb b/Digital_Communications/Chapter4.ipynb
new file mode 100755
index 00000000..e56598ee
--- /dev/null
+++ b/Digital_Communications/Chapter4.ipynb
@@ -0,0 +1,273 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 4: DIGITAL MULTIPLEXERS<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, page no 190 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Caption: Sampling Rate\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=4.0*10**3\n",
+ "f2=4.5*10**3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "fsmin=(2*f2)/1000\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\" Sampling rate =%.2f kHz\" %fsmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Sampling rate =9.00 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page No 190 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Caption: Nyquest rate,Signaling rate,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=3000.0\n",
+ "f4=1000.0\n",
+ "f2=1000.0\n",
+ "f3=1000.0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "#Nyquest rate\n",
+ "nq1=2*f1\n",
+ "nq2=2*f2\n",
+ "nq3=2*f3\n",
+ "nq4=2*f4\n",
+ "\n",
+ "#RESULTS\n",
+ "print('i. Nyquest rate of x1 =%.2fkHz' %nq1)\n",
+ "print('ii. Nyquest rate of x2 =%.2fkHz' %nq2)\n",
+ "print('iii. Nyquest rate of x3 =%.2fkHz' %nq3)\n",
+ "print('iv. Nyquest rate of x4 =%.2fkHz' %nq4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i. Nyquest rate of x1 =6000.00kHz\n",
+ "ii. Nyquest rate of x2 =2000.00kHz\n",
+ "iii. Nyquest rate of x3 =2000.00kHz\n",
+ "iv. Nyquest rate of x4 =2000.00kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 190 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find The spacing between two successive pules\n",
+ "\n",
+ "#initialisation of variables\n",
+ "samplingrate=8000.0\n",
+ "totalsignals=24+1\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "t=1/samplingrate\n",
+ "T=t/totalsignals\n",
+ "T=T*10**6 #time is now u sec\n",
+ "space=T-1\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The spacing between two successive pules %.f u sec' %space)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The spacing between two successive pules 4 u sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page No 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find signaling rate ,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N=6.0\n",
+ "fm=5000.0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r=2*fm #sampling rate\n",
+ "sr=N*r #signalingrate\n",
+ "BW=N*fm #Bandwith\n",
+ "sr=sr/1000\n",
+ "BW=BW/1000\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Signaling rate %.f K bits/sec' %sr)\n",
+ "print('Bandwith to avoid the cross talk in TDM is %.f kHz' %BW)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signaling rate 60 K bits/sec\n",
+ "Bandwith to avoid the cross talk in TDM is 30 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find signaling rate ,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N=4.0\n",
+ "x=24 #bits/frame\n",
+ "D=1152\n",
+ "s=1.0/3\n",
+ "r=1.544*10**6\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r0=N*r*((D+x)/(D-s*N))\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Output bit rate %.2f MB/sec' %(r0/(10**6)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output bit rate 6.31 MB/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find signaling rate ,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N=24.0\n",
+ "x=72.0 #bits\n",
+ "D=192 #message and stuff bits\n",
+ "s=1.0/3\n",
+ "r=64 #kb/sec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r0=N*r*((D+x)/(D-s*N))\n",
+ "r1=((N*r)/r0)*100\n",
+ "\n",
+ "#RESULTS\n",
+ "print('i) Output bit rate %.2f MB/sec' %(r0/(10**3)))\n",
+ "print('iI) Throughput efficiency is = %.2f percent' %r1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Output bit rate 2.20 MB/sec\n",
+ "iI) Throughput efficiency is = 69.70 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter5.ipynb b/Digital_Communications/Chapter5.ipynb
new file mode 100755
index 00000000..bf535beb
--- /dev/null
+++ b/Digital_Communications/Chapter5.ipynb
@@ -0,0 +1,105 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 5: DIGTIAL BASEBAND TRANSMISSION<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 249 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find The roll of factor alpha\n",
+ "\n",
+ "#initialisation of variables\n",
+ "datarate=0.1*10**6\n",
+ "fB=75000.0 #bandwidth\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Tb=1/datarate\n",
+ "alpha=2*fB*Tb-1\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The roll out factor alpha = = %.1f ' %alpha)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The roll out factor alpha = = 0.5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find The Transmission bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "q=128.0\n",
+ "alpha=0.2\n",
+ "n=math.log(q,2)\n",
+ "fm=2000.0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Nq=2*fm\n",
+ "fs=1.25*Nq\n",
+ "N=8.0\n",
+ "total=N*fs\n",
+ "bitrate=7*total\n",
+ "fB=((1+alpha)*bitrate)/2\n",
+ "fB=fB/1000\n",
+ "#RESULTS\n",
+ "print('The minimum transmission Bandwidth required = %.f kHz' %fB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum transmission Bandwidth required = 168 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter6.ipynb b/Digital_Communications/Chapter6.ipynb
new file mode 100755
index 00000000..fd5f6716
--- /dev/null
+++ b/Digital_Communications/Chapter6.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 6: DIGITAL MODULATION TECHNIQUES<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page No 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#Symbol rate of transmission and bandwidth \n",
+ "\n",
+ "#initialisation of variables\n",
+ "fb=1.0 #MHz\n",
+ "Tb=1/fb #bit period ms\n",
+ "N=4\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Ts1=Tb\n",
+ "Bw1=2*fb\n",
+ "Ts2=Tb*2\n",
+ "Tr2=(1.0/2)*1000 #Symbols/sec\n",
+ "Bw2=1/Tb\n",
+ "Ts3=N*Tb\n",
+ "Tr3=(1.0/4)*1000\n",
+ "Bw3=(2.0*fb)/N\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"In BPSK\")\n",
+ "print(\"The symbol rate of transmission is = %.f X 10^6 symbol/sec \" %Ts1)\n",
+ "print(\"The Bandwidth is = %.f MHz \" %Bw1)\n",
+ "print(\"In QPSK\")\n",
+ "print(\"The symbol rate of transmission is = %.f X 10^3 symbol/sec \" %Tr2)\n",
+ "print(\"The Bandwidth is = %.f MHz \" %Bw2)\n",
+ "print(\"In 16-ary PSK\")\n",
+ "print(\"The symbol rate of transmission is = %.f X 10^3 symbol/sec \" %Tr3)\n",
+ "print(\"The Bandwidth is = %.f kHz \" %(Bw3*1000))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In BPSK\n",
+ "The symbol rate of transmission is = 1 X 10^6 symbol/sec \n",
+ "The Bandwidth is = 2 MHz \n",
+ "In QPSK\n",
+ "The symbol rate of transmission is = 500 X 10^3 symbol/sec \n",
+ "The Bandwidth is = 1 MHz \n",
+ "In 16-ary PSK\n",
+ "The symbol rate of transmission is = 250 X 10^3 symbol/sec \n",
+ "The Bandwidth is = 500 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page No 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "fb=90 #MHz\n",
+ "Bw=20 #Mb/s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N=(2*fb)/Bw\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Number of bits required = %.f \" %N)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of bits required = 9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Tb=0.1 #msec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "fb=1/Tb\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Transmission bandwidth = %.f kHz\" %fb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmission bandwidth = 10 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter7.ipynb b/Digital_Communications/Chapter7.ipynb
new file mode 100755
index 00000000..7c33676a
--- /dev/null
+++ b/Digital_Communications/Chapter7.ipynb
@@ -0,0 +1,431 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 7: PERFORMANCE ANALYSIS OF DIGITAL COMMUNICATION SYSTEMS<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15, Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "T=1.0*10**-6 #ms\n",
+ "A=10.0*10**-3\n",
+ "N=1*10**-11\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Eb=((A**2)*T)/2.0\n",
+ "Epb=math.sqrt(Eb/N)\n",
+ "Pb=(1.0/2)*math.erfc(Epb)*(1.0/4)\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Bit error probability = %.2f X 10^-4 \" %(Pb*(10**4)))\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bit error probability = 1.96 X 10^-4 \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.16, Page No 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Br=25*10**6 #bits/sec\n",
+ "N=2*10**-20 #Power spectral density of noise\n",
+ "A=1.0*10**-6\n",
+ "Ps=1*10**-12 # Normalized power\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Tb=1.0/Br\n",
+ "Ps=(A**2)/2.0\n",
+ "Pe=1.0/2*(math.erfc((0.6*Ps*Tb)/N))\n",
+ "#RESULTS\n",
+ "print(\"Average probability of bit error is Pe= %.2f X 10^-4 \" %(Pe*10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average probability of bit error is Pe= 1.98 X 10^-4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17, Page No 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find probability of error\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=2.0\n",
+ "N0=2.0*10**-4 #power sepctral density\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Tmin=(6.76*N0)/4\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The min time for which the signal should be extended is Tmin= %.3f X 10^-3 msec \" %(Tmin*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The min time for which the signal should be extended is Tmin= 0.338 X 10^-3 msec \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The average carrier\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pe=10**-4\n",
+ "N0=2*10**10\n",
+ "T=1.0/10**6\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "E=6.76*N0\n",
+ "P=E/T\n",
+ "Eb=8.5171*N0\n",
+ "P2=Eb/T\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The average carrier = %.3f X 10^-3 mW \" %(P2/10**17))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average carrier = 1.703 X 10^-3 mW \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The average carrier\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=0.2*10**-3 #V\n",
+ "T=2*10**-6\n",
+ "N0=2*10**-15\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Pe=(math.sqrt((A**2*T)/4*N0))\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The average carrier = %.3f X 10^-4 mW \" %(Pe*10**15))\n",
+ "print(\"Approximation error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average carrier = 6.325 X 10^-4 mW \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=1.0\n",
+ "N0=2.0*10**-5 #power sepctral density\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "T=((3.71**2)*2*N0)/(A**2)\n",
+ "Br=1/T\n",
+ "#Results\n",
+ "print(\"Bit rate Br= %.2f k bits/sec\" %(Br/(10**3)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bit rate Br= 1.82 k bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.31, Page No 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pe=10.0**-4 #probability of error of PSK\n",
+ "N0=2.0*10**-10\n",
+ "Br=10**6 #Bit Rate\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "T=1.0/Br\n",
+ "E=N0*6.76\n",
+ "P=E/T\n",
+ "Eb=8.5171*N0\n",
+ "Pb=Eb/T\n",
+ "#Results\n",
+ "print(\"i) PSK system The required carrier power = %.2f mW\" %(P*10**3))\n",
+ "print(\"ii) DPSK system The required carrier power = %.2f mW\" %(Pb*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) PSK system The required carrier power = 1.35 mW\n",
+ "ii) DPSK system The required carrier power = 1.70 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.32, Page No 450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=0.2*10**-3 #V\n",
+ "T=2*10**-6 #Sec\n",
+ "N0=2*10**-15\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "x=math.sqrt((A**2*T)/(4*N0))\n",
+ "Pe=(1.0/2)*math.erfc(x/math.sqrt(2.0))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Probability of error = %.2f X 10^-4\" %(Pe*10**4))\n",
+ "#print(\"Channel Bandwidth = %.5f MHz\" %BW)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of error = 7.83 X 10^-4\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.36, Page No 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ap=1 #mV\n",
+ "En=192.3 #mV\n",
+ "Arms=707 #mV\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Z=Arms/En\n",
+ "Pe=1.0/2*(math.erfc(math.sqrt(2)*(Z/math.sqrt(2))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Probability of error is %.7f \" %Pe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of error is 0.0000001 \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.37, Page No 454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Br=2.08*10**-6 #Bit Rate\n",
+ "N0=2*10**-8\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Eb=(math.sqrt(3.3))/(5*10**7) #Eb=bit energy\n",
+ "Ps=Eb*Br\n",
+ "BW=2*Br #Bandwidth\n",
+ "Es=286.39*N0\n",
+ "Ps2=(Es*Br)/2\n",
+ "BW2=(2*Br)/4\n",
+ "\n",
+ "#Results\n",
+ "print(\"i) BPSK THe transmission bandwidth = %.2f MHz\" %(BW*10**6)) \n",
+ "print(\"ii) For 16 ary PSK THe transmission bandwidth = %.2f MHz\" %(BW2*10**6)) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) BPSK THe transmission bandwidth = 4.16 MHz\n",
+ "ii) For 16 ary PSK THe transmission bandwidth = 1.04 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter8.ipynb b/Digital_Communications/Chapter8.ipynb
new file mode 100755
index 00000000..52d8741e
--- /dev/null
+++ b/Digital_Communications/Chapter8.ipynb
@@ -0,0 +1,1439 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 8: INFORMATION THEORY<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#Find Information Content of Each Symbol\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/8.0\n",
+ "\n",
+ "#Calculation\n",
+ "#information content of each symbol\n",
+ "Ix1=math.log(1/px1,2)\n",
+ "Ix2=math.log(1/px2,2)\n",
+ "Ix3=math.log(1/px3,2)\n",
+ "Ix4=math.log(1/px4,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Information Content tI(x1)= %.2f bit\" %Ix1)\n",
+ "print(\" tI(x2)= %.f bits\" %Ix2)\n",
+ "print(\" tI(x3)= %.f bits\" %Ix3)\n",
+ "print(\" tI(x4)= %.f bits\" %Ix4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Information Content tI(x1)= 1.00 bit\n",
+ " tI(x2)= 2 bits\n",
+ " tI(x3)= 3 bits\n",
+ " tI(x4)= 3 bits\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find amount of Information\n",
+ "#Variable Declaration\n",
+ "#Calculation\n",
+ "pxi=1/4.0\n",
+ "Ixi=(math.log10(1/pxi))/math.log10(2)\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The amount of Information I(Xi)= %.f \" %Ixi)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of Information I(Xi)= 2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Amount of Information\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/2.0\n",
+ "\n",
+ "#Calculation\n",
+ "Ix1=math.log(1/px1,2) #entropy\n",
+ "Ix2=math.log(1/px2,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The amount of Information I(X1)= %.f bit\" %Ix1)\n",
+ "print(\"The amount of Information I(X2)= %.f bit\" %Ix2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of Information I(X1)= 1 bit\n",
+ "The amount of Information I(X2)= 1 bit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Amount of Information \n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/4.0\n",
+ "px2=3/4.0\n",
+ "\n",
+ "#Calculation\n",
+ "Ix1=math.log(1/px1,2)\n",
+ "Ix2=math.log(1/px2,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The amount of Information I(X1)= %.f bit\" %Ix1)\n",
+ "print(\"The amount of Information I(X2)= %.2f bit\" %Ix2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of Information I(X1)= 2 bit\n",
+ "The amount of Information I(X2)= 0.42 bit\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page No 468 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Entropy,Amount of information\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.4\n",
+ "px2=0.3\n",
+ "px3=0.2\n",
+ "px4=0.1\n",
+ "\n",
+ "#Calculation\n",
+ "HX=-px1*math.log(px1,2)-px2*math.log(px2,2)-px3*math.log(px3,2)-px4*math.log(px4,2)\n",
+ "Px1x2x1x3=px1*px2*px1*px3\n",
+ "Ix1x2x1x3=-math.log(Px1x2x1x3,2)\n",
+ "Px4x3x3x2=px4*px3*px3*px2\n",
+ "Ix4x3x3x2=-math.log(Px4x3x3x2,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\" \\n Entropy H(X) = %.2f bits/symbol \" %HX)\n",
+ "print(\"The amount of Information I(x1x2x1x3)= %.2f bits/symbol\" %Ix1x2x1x3)\n",
+ "print(\" I(x4x3x3x2) = %.2f bits/symbol \" %Ix4x3x3x2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " Entropy H(X) = 1.85 bits/symbol \n",
+ "The amount of Information I(x1x2x1x3)= 6.70 bits/symbol\n",
+ " I(x4x3x3x2) = 9.70 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13, Page No 471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find information rate the telegraphic source\n",
+ "\n",
+ "#Variable Declaration\n",
+ "pdash=1/3.0\n",
+ "pdot=2/3.0\n",
+ "tdot=0.2\n",
+ "tdash=0.6\n",
+ "tspace=0.2\n",
+ "\n",
+ "#Calculation\n",
+ "HX=-pdash*math.log(pdash,2)-pdot*math.log(pdot,2)\n",
+ "Ts=pdot*tdot+pdash*tdash+tspace\n",
+ "r=1/Ts\n",
+ "R=r*HX\n",
+ "\n",
+ "#Result\n",
+ "print('Average rate of information R = %.2f bits/s' %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average rate of information R = 1.72 bits/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find information rate of the source\n",
+ "\n",
+ "f=input('Enter the frequncy f=')\n",
+ "px1=1/8.0\n",
+ "px2=1/8.0\n",
+ "px3=3/8.0\n",
+ "px4=3/8.0\n",
+ "\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2) #entropy of the source\n",
+ "R=2*f*HX #r=2*f\n",
+ "print('information rate R= %.1f bits/sec ' %R) #f=signal bandwidth\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the frequncy f=34\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "information rate R= 123.2 bits/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find information rate of the source\n",
+ "#all symbols are equally likely\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/2.0\n",
+ "px3=1/2.0\n",
+ "px4=1/2.0\n",
+ "\n",
+ "#Calculation\n",
+ "f=input('Enter the frequncy of system fm(in Hz) =')\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\n Entropy H(X) =%.f bits/symbol ' %HX)\n",
+ "R=2*f*HX\n",
+ "print('information rate =%.f bits/sec' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the frequncy of system fm(in Hz) =45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Entropy H(X) =2 bits/symbol \n",
+ "information rate =180 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find source entropy ,information rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#probability symbols\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/16.0\n",
+ "px5=1/16.0\n",
+ "Tb=10.0**-3\n",
+ "\n",
+ "#Calculation\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4)+px5*math.log(1/px5)\n",
+ "\n",
+ "#Result\n",
+ "print('1. source entropy H(X) = %.2f bits/symbol ' %HX) #source entropy\n",
+ "r=1.0/Tb\n",
+ "R=r*HX #information rate\n",
+ "print(' 2. Information rate R = %.2f bits/sec ' %R)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. source entropy H(X) = 1.72 bits/symbol \n",
+ " 2. Information rate R = 1721.57 bits/sec \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume if there are 16 outcomes per second\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/16.0\n",
+ "px5=1/16.0\n",
+ "r=16.0\n",
+ "\n",
+ "#Calculation\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)+px5*math.log(1/px5,2)\n",
+ "\n",
+ "#Result\n",
+ "print('1. Entropy H(X) = %.2f bits/symbol ' %HX) #source entropy\n",
+ "\n",
+ "R=r*HX\n",
+ "print('2., Information rate R = %.f bits/sec' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Entropy H(X) = 1.88 bits/symbol \n",
+ "2., Information rate R = 30 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#determine entropy ,information rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/4.0\n",
+ "px2=1/5.0\n",
+ "px3=1/5.0\n",
+ "px4=1/10.0\n",
+ "px5=1/10.0\n",
+ "px6=1/20.0\n",
+ "px7=1/20.0\n",
+ "px8=1/20.0\n",
+ "f=10*10**3.0\n",
+ "fs=10*2*10**3.0\n",
+ "\n",
+ "#Calculation\n",
+ "#entropy\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)+px5*math.log(1/px5,2)+px6*math.log(1/px6,2)+px7*math.log(1/px7,2)+px8*math.log(1/px8,2) \n",
+ "\n",
+ "#Result\n",
+ "print('bits/message H(X) = %.2f ' %HX)\n",
+ "r=fs\n",
+ "R=r*HX #information rate\n",
+ "print('bits/sec R = %.2f' %R)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bits/message H(X) = 2.74 \n",
+ "bits/sec R = 54828.92\n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 476 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from array import *\n",
+ "#Find Channel Matrix,joint probability\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.5\n",
+ "px2=0.5\n",
+ "py1x1=0.9\n",
+ "py2x1=0.1\n",
+ "py1x2=0.2\n",
+ "py2x2=0.8\n",
+ "PYX=[[py1x1,py2x1],[py1x2,py2x2]]\n",
+ "PX=[[px1,px2]]\n",
+ "PY = [[0,0],\n",
+ " [0,0]]\n",
+ "PXY = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "for i in range(len(PYX)):\n",
+ " # iterate through columns of Y\n",
+ " for j in range(len(PX[0])):\n",
+ " # iterate through rows of Y\n",
+ " for k in range(len(PX)):\n",
+ " PY[i][j] += PYX[i][k] * PX[k][j]\n",
+ "print(' PY ARRAY = \\n')\n",
+ "for r in PY:\n",
+ " print(r)\n",
+ "PXd=[[px1,0],[0,px2]]\n",
+ "\n",
+ "\n",
+ "for i in range(len(PXd)):\n",
+ " # iterate through columns of Y\n",
+ " for j in range(len(PYX[0])):\n",
+ " # iterate through rows of Y\n",
+ " for k in range(len(PYX)):\n",
+ " PXY[i][j] += PXd[i][k] * PYX[k][j]\n",
+ "\n",
+ " \n",
+ "print(' \\n PXY ARRAY = \\n')\n",
+ "for r in PXY:\n",
+ " print(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " PY ARRAY = \n",
+ "\n",
+ "[0.45, 0.45]\n",
+ "[0.1, 0.1]\n",
+ " \n",
+ " PXY ARRAY = \n",
+ "\n",
+ "[0.45, 0.05]\n",
+ "[0.1, 0.4]\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.35, Page No 498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Channel is aproximated by the AWGN Channel\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=4000.0\n",
+ "S=0.1*10**-3\n",
+ "n=2*10**-12\n",
+ "\n",
+ "#Calculation\n",
+ "N=n*B\n",
+ "C=B*math.log(1+(S/N),2) #Capacity of Channel\n",
+ "C=C/1000.0\n",
+ "#Result\n",
+ "print(' Capacity of Channel C=%.3f(10^3) b/s ' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Capacity of Channel C=54.439(10^3) b/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36i, Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=4000.0\n",
+ "fs=2*fm\n",
+ "n=1.25\n",
+ "\n",
+ "#Calculation\n",
+ "r=fs*n\n",
+ "pxi=1/256.0\n",
+ "HX=-math.log(pxi,2)\n",
+ "R=r*HX\n",
+ "R=R/1000\n",
+ "print('Information Rate R= %.f kb/s' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Information Rate R= 80 kb/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36ii, Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=10*10**3.0\n",
+ "SN=20.0\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=10**(SN/10.0)\n",
+ "C=B*math.log(1+(SNR),2)\n",
+ "C=C/1000\n",
+ "\n",
+ "#Result\n",
+ "print('The channel capacity = %.2f 10^3 b/s' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The channel capacity = 66.58 10^3 b/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36iii, Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "C=8*10**4.0\n",
+ "B=10**4.0\n",
+ "\n",
+ "#Calculation\n",
+ "SN=2**(C/B)-1\n",
+ "SNR=10*math.log(SN,10) #SNR\n",
+ "\n",
+ "#Result\n",
+ "print(' The S/N ratio required for error-free transmission =%.2f dB ' %SNR) #required SNR is greater that 24.064\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The S/N ratio required for error-free transmission =24.07 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36iv, Page No 499 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SN=20.0\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=10**(SN/10.0)\n",
+ "C=8*10**4.0\n",
+ "B=C/(math.log(1+SNR,2)) #Bandwidth\n",
+ "B=B/1000\n",
+ "\n",
+ "#Result\n",
+ "print('Bandwidth required for AWGN channel B =%.2f kHz ' %B)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bandwidth required for AWGN channel B =12.02 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.37, Page No 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find code efficiency,redundancy\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.9\n",
+ "px2=0.1\n",
+ "n1=1.0\n",
+ "n2=1.0\n",
+ "\n",
+ "#Calculation\n",
+ "L=px1*n1+px2*n2 #code leght\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)\n",
+ "n=(HX/L) #code efficiency\n",
+ "n=n*100\n",
+ "\n",
+ "print('Code efficiency = %.1f percent' %n)\n",
+ "r=(100-n) #code reduncy\n",
+ "print('Code redundancy = %.1f percent' %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Code efficiency = 46.9 percent\n",
+ "Code redundancy = 53.1 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.38, Page No 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find code efficiency,redundancy\n",
+ "\n",
+ "#Variable Declaration\n",
+ "pa1=0.81\n",
+ "pa2=0.09 \n",
+ "pa3=0.09\n",
+ "pa4=0.01 \n",
+ "n1=1\n",
+ "n2=2 \n",
+ "n3=3\n",
+ "n4=3 \n",
+ "\n",
+ "#Calculation\n",
+ "L=pa1*n1+pa2*n2+pa3*n3+pa4*n4\n",
+ "HX2=pa1*math.log(1/pa1,2)+pa2*math.log(1/pa2,2)+pa3*math.log(1/pa3,2)+pa4*math.log(1/pa4,2)\n",
+ "n=HX2/L*100\n",
+ "\n",
+ "#Result\n",
+ "print(' code efficiency = %.2f percent' %n)\n",
+ "\n",
+ "r=(100-n) #code reduncy\n",
+ "print(' code redundancy = %.1f percent' %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " code efficiency = 72.71 percent\n",
+ " code redundancy = 27.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.44, Page No 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find efficiency of the code\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/8.0\n",
+ "n1=1.0\n",
+ "n2=2.0\n",
+ "n3=3.0\n",
+ "n4=3.0\n",
+ "\n",
+ "#Calculation\n",
+ "#information content of each symbol\n",
+ "Ix1=-math.log(px1,2)\n",
+ "Ix2=-math.log(px2,2)\n",
+ "Ix3=-math.log(px3,2)\n",
+ "Ix4=-math.log(px4,2)\n",
+ "\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)\n",
+ "L=px1*n1+px2*n2+px3*n3+px4*n4\n",
+ "\n",
+ "n=HX/L*100\n",
+ "\n",
+ "#Result\n",
+ "print('Ccode efficiency = %.f Percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ccode efficiency = 100 Percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.50, Page No 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy ,information rate\n",
+ "#If there are 16 outcomes per second\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P1=1/2.0\n",
+ "P2=1/4.0\n",
+ "P3=1/8.0\n",
+ "P4=1/16.0\n",
+ "P5=1/32.0\n",
+ "P6=1/32.0\n",
+ "r=16 #message rate\n",
+ "\n",
+ "#Calculation\n",
+ "H=P1*math.log(1/P1,2)+P2*math.log(1/P2,2)+P3*math.log(1/P3,2)+P4*math.log(1/P4,2)+P5*math.log(1/P5,2)+P6*math.log(1/P6,2)\n",
+ "#Entropy of system\n",
+ "\n",
+ "#Result\n",
+ "print('1. Entropy of system H = %.2f bits/message ' %H)\n",
+ "R=H*r #R=Entropy*message rate\n",
+ "print(' 2. Information rate R = %.f bits/sec ' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Entropy of system H = 1.94 bits/message \n",
+ " 2. Information rate R = 31 bits/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.51, Page No 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Calculate H(X) ,H(Y)\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.3\n",
+ "px2=0.4\n",
+ "px3=0.3\n",
+ "\n",
+ "#Calculation\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2) #Entropy of X\n",
+ "\n",
+ "\n",
+ "print(' 1.Entropy of X H(X)=%.3f bits/symbol ' %HX)\n",
+ "\n",
+ "PYX=[[0.8, 0.2, 0],[ 0, 1, 0],[ 0, 0.3, 0.7]]\n",
+ "PX=[[px1, px2, px3]]\n",
+ "PXY = [[0,0,0],\n",
+ " [0,0,0],\n",
+ " [0,0,0]]\n",
+ "\n",
+ "for i in range(len(PYX)):\n",
+ " # iterate through columns of PXd\n",
+ " for j in range(len(PX[0])):\n",
+ " # iterate through rows of PYX\n",
+ " for k in range(len(PX)):\n",
+ " PXY[i][j] += PYX[i][k] * PX[k][j]\n",
+ "\n",
+ "py1=PXY[0][0]\n",
+ "py2=PXY[0][1]\n",
+ "py3=PXY[0][2]\n",
+ "HY=py1*math.log(1/py1,2)+py2*math.log(1/py2,2)+py3*math.log(1/py3,2) #Entropy of Y\n",
+ "print(' 2. Entropy of Y H(Y)= %.2f bits/symbol ' %HY)\n",
+ "print('Approximation error')\t\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1.Entropy of X H(X)=1.571 bits/symbol \n",
+ " 2. Entropy of Y H(Y)= 1.51 bits/symbol \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.52, Page No 513"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source ,entropy of second order extension\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P1=0.7\n",
+ "P2=0.15\n",
+ "P3=0.15\n",
+ "\n",
+ "#Calculation\n",
+ "HX=P1*math.log(1/P1,2)+P2*math.log(1/P2,2)+P3*math.log(1/P3,2) #Entropy of source\n",
+ "print(' 1. Entropy of system H(X)=%.2f bits/symbol ' %HX)\n",
+ "#H(X^n)=n*H(X)\n",
+ "n=2 #for second order\n",
+ "HX2=n*HX\n",
+ "\n",
+ "#Result\n",
+ "print(' 2. Entropy of second order system extension of source can be H(X^2)=%.2f bits/symbol ' %(HX*2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1. Entropy of system H(X)=1.18 bits/symbol \n",
+ " 2. Entropy of second order system extension of source can be H(X^2)=2.36 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.54, Page No 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "S0=1/3.0\n",
+ "S1=1/6.0\n",
+ "S2=1/4.0\n",
+ "S3=1/4.0\n",
+ "\n",
+ "#Calculation\n",
+ "HX=S0*math.log(1/S0,2)+S1*math.log(1/S1,2)+S2*math.log(1/S2,2)+S3*math.log(1/S3,2) #EntroSy of source\n",
+ "\n",
+ "#Result\n",
+ "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy of system H(X)=1.96 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.56, Page No 515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Information capacity of telephone\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=3.4*10**3\n",
+ "SNR=30.0\n",
+ "\n",
+ "#Calculation\n",
+ "SN=10**(SNR/10)\n",
+ "C=B*math.log(1+SN,2) #Information capacity\n",
+ "C=C/1000\n",
+ "\n",
+ "#Result\n",
+ "print(' Information capacity of telephone is C = %.2f kbps ' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Information capacity of telephone is C = 33.89 kbps \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.59, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "S0=1/3.0\n",
+ "S1=1/6.0\n",
+ "S2=1/4.0\n",
+ "S3=1/4.0\n",
+ "\n",
+ "#Calculation\n",
+ "HX=S0*math.log(1/S0,2)+S1*math.log(1/S1,2)+S2*math.log(1/S2,2)+S3*math.log(1/S3,2) #EntroSy of source\n",
+ "\n",
+ "#Result\n",
+ "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy of system H(X)=1.96 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.60, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "m1=1/2.0\n",
+ "m2=1/4.0\n",
+ "m3=1/8.0\n",
+ "m4=1/16.0\n",
+ "m5=1/16.0\n",
+ "\n",
+ "#Calculation\n",
+ "L=(m1*1)+(m2*2)+(m3*3)+(2*(m4)*4)\n",
+ "\n",
+ "#Result\n",
+ "print(' Average number of bits per message =%.2f bits ' %L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Average number of bits per message =1.88 bits \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.61, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Information capacity of telephone\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=3.4*10**3\n",
+ "SNR=30.0\n",
+ "\n",
+ "#Calculation\n",
+ "SN=10**(SNR/10)\n",
+ "C=B*math.log(1+SN,2) #Information capacity\n",
+ "C=C/1000\n",
+ "\n",
+ "#Result\n",
+ "print(' Information capacity of telephone is C = %.2f kbps ' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Information capacity of telephone is C = 33.89 kbps \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.62, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "p1=4.0\n",
+ "m1=0.5\n",
+ "m2=0.5\n",
+ "m3=0.375\n",
+ "m4=0.375\n",
+ "m5=0.375\n",
+ "m6=0.375\n",
+ "\n",
+ "#Calculation\n",
+ "I1=p1*math.log(1/p1,2) \n",
+ "HX=m1*math.log(1/m1,2)+m2*math.log(1/m2,2)+m3*math.log(1/m3,2)+m4*math.log(1/m4,2)+m5*math.log(1/m5,2)+m6*math.log(1/m6,2) #EntroSy of source\n",
+ "\n",
+ "#Result\n",
+ "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n",
+ "print('Approximation error')\t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy of system H(X)=3.12 bits/symbol \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.65, Page No 519"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "S0=1/2.0\n",
+ "S1=1/4.0\n",
+ "S2=1/8.0\n",
+ "S3=1/8.0\n",
+ "n=1\n",
+ "\n",
+ "#Calculation\n",
+ "H=S0*math.log(1.0/S0,2)+S1*math.log(1.0/S1,2)+S2*math.log(1.0/S2,2)+S3*math.log(1.0/S3,2) #EntroSy of source\n",
+ "L=H*n\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(' Code length =%.2f bits/messages ' %L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Code length =1.75 bits/messages \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.67, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find channel capacity and new bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=8*10**3\n",
+ "SNR=31.0\n",
+ "SNR2=61\n",
+ "\n",
+ "#Calculation\n",
+ "C=B*math.log(1+SNR,2) #Information capacity\n",
+ "B2=C/math.log(1+SNR2,2)\n",
+ "#Result\n",
+ "print(' Channel capacity is C = %.2f x 10^3 bits/sec ' %(C/1000))\n",
+ "print(' New Bandwidth is C = %.2f x kHz ' %(B2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Channel capacity is C = 40.00 x 10^3 bits/sec \n",
+ " New Bandwidth is C = 6.72 x kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/Chapter9.ipynb b/Digital_Communications/Chapter9.ipynb
new file mode 100755
index 00000000..c91e1583
--- /dev/null
+++ b/Digital_Communications/Chapter9.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater 9: ERROR CONTROL CODING<h1>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find detected errors,corrected errors\n",
+ "\n",
+ "#initialisation of variables\n",
+ "dmin=5.0\n",
+ "#(s+1)<= dmin number errors can be detected(s)\n",
+ " \n",
+ "#CALCULATIONS\n",
+ "s=dmin-1\n",
+ "\n",
+ "#RESULTS\n",
+ "print(' i)Number of detected errors s <= %.f ' %s)\n",
+ "#(2t+1)<=dmin number errors can be corrected(t)\n",
+ "t=(dmin-1)/2.0\n",
+ "print('ii) Number of corrected errors t<= %.f ' %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " i)Number of detected errors s <= 4 \n",
+ "ii) Number of corrected errors t<= 2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.17, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine all possible code vectors \n",
+ "\n",
+ "m3=1\n",
+ "m2=0\n",
+ "m1=1\n",
+ "m0=0\n",
+ "#M=Message Matrix\n",
+ "#G=Generator Matrix\n",
+ "G=[[1, 0, 1, 1, 0, 0, 0],[0, 1, 0, 1, 1, 0, 0],[0, 0, 1, 0, 1, 1, 0],[0, 0, 0, 1, 0, 1, 1]]\n",
+ "M=[[m3,m2,m1,m0]]\n",
+ "X = [[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0]]\n",
+ "\n",
+ "for i in range(len(G)):\n",
+ " # iterate through columns of PXd\n",
+ " for j in range(len(M[0])):\n",
+ " # iterate through rows of PYX\n",
+ " for k in range(len(M)):\n",
+ " X[i][j] += G[i][k] * M[k][j]\n",
+ "print('The required code word')\n",
+ "for r in range(0,7):\n",
+ " print(X[0][r])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required code word\n",
+ "1\n",
+ "0\n",
+ "1\n",
+ "0\n",
+ "0\n",
+ "0\n",
+ "0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.19, Page No 572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine code word \n",
+ "m3=1\n",
+ "m2=0\n",
+ "m1=1\n",
+ "m0=0\n",
+ "#M=Message Matrix\n",
+ "#G=Generator Matrix\n",
+ "G=[[1, 0, 0, 0, 1, 0, 1],[0, 1, 0, 0, 1, 1, 1],[0, 0, 1, 0, 1, 1, 0],[0, 0, 0, 1, 0, 1, 1]]\n",
+ "M=[[m3,m2,m1,m0]]\n",
+ "X = [[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0]]\n",
+ "\n",
+ "\n",
+ "for i in range(len(G)):\n",
+ " # iterate through columns of PXd\n",
+ " for j in range(len(M[0])):\n",
+ " # iterate through rows of PYX\n",
+ " for k in range(len(M)):\n",
+ " X[i][j] += G[i][k] * M[k][j]\n",
+ "print('The required code word')\n",
+ "for r in range(0,7):\n",
+ " print(X[0][r] )\n",
+ " \n",
+ "\n",
+ "print('The code in the book is wrong')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required code word\n",
+ "1\n",
+ "0\n",
+ "1\n",
+ "0\n",
+ "0\n",
+ "0\n",
+ "0\n",
+ "The code in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo2.ipynb b/Digital_Communications/ChapterNo2.ipynb
new file mode 100755
index 00000000..f8cf6b90
--- /dev/null
+++ b/Digital_Communications/ChapterNo2.ipynb
@@ -0,0 +1,290 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter no 2: SAMPLING THEORY AND PULSE MODULATION<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, page no 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find Nquist Rate\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given \n",
+ "pi=3.14\n",
+ "w1=50*pi\n",
+ "w2=300*pi\n",
+ "w3=100*pi\n",
+ "#w=2*%pi*f\n",
+ "\n",
+ "#Calculation\n",
+ "f1=w1/(2*pi)\n",
+ "f2=w2/(2*pi)\n",
+ "f3=w3/(2*pi)\n",
+ "fm=f2 #fm = maximum frquency is present at the signal\n",
+ "\n",
+ "#Result\n",
+ "print('maximum frquency of the signal is = %.2f Hz' %f2)\n",
+ "fs=2*fm #Nyquist rate\n",
+ "print('Nquist Rate of Signal is = %.2f Hz' %fs)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum frquency of the signal is = 150.00 Hz\n",
+ "Nquist Rate of Signal is = 300.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 , page no 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Nquist Rate and Nquist time interval\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "w1=5000*math.pi\n",
+ "w2=3000*math.pi;\n",
+ "f1=w1/(2*math.pi);\n",
+ "f2=w2/(2*math.pi);\n",
+ "\n",
+ "#Calculation\n",
+ "fm=f1 #fm = maximum frquency is present at the signal\n",
+ "fs=2*fm #Nyquist rate\n",
+ "Ts=1.0/(2.0*fm) #frequncy =1/time\n",
+ "Ts=Ts*(10**3)\n",
+ "\n",
+ "#Result\n",
+ "print('maximum frquency of the signal is = %.f Hz' %f1)\n",
+ "print('Nquist Rate of the given Signal is = %.f Hz' %fs)\n",
+ "print('Nquist Interval of the given signal is = %.1f m Sec' %Ts)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum frquency of the signal is = 2500 Hz\n",
+ "Nquist Rate of the given Signal is = 5000 Hz\n",
+ "Nquist Interval of the given signal is = 0.2 m Sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find Nquist Rate \n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "f=100.0 # Frequency component of continuous-time signal\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*f #Nyquist rate\n",
+ "\n",
+ "#Result\n",
+ "print('i) To avoid aliasing Nquist Rate is = %.f Hz' %fs)\n",
+ "print('ii) It is theoretical example ')\n",
+ "print('iii) It is theoretical example ')\n",
+ "print('iv) It is theoretical example ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) To avoid aliasing Nquist Rate is = 200 Hz\n",
+ "ii) It is theoretical example \n",
+ "iii) It is theoretical example \n",
+ "iv) It is theoretical example \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, page no 52 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Nquist Rate of Continous signal\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "w1=50*math.pi\n",
+ "w2=300*math.pi\n",
+ "w3=100*math.pi\n",
+ "\n",
+ "#Calculation\n",
+ "f1=w1/(2*math.pi)\n",
+ "f2=w2/(2*math.pi)\n",
+ "f3=w3/(2*math.pi)\n",
+ "fmax=f2 #fmax = Highest frquency component of the message signal\n",
+ "fs=2*fmax #Nyquist rate\n",
+ "\n",
+ "#Result\n",
+ "print('Highest frquency component of the message signal will be fmax = %.f Hz' %fmax)\n",
+ "print('Nquist Rate of the given Signal is = %.f Hz' %fs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Highest frquency component of the message signal will be fmax = 150 Hz\n",
+ "Nquist Rate of the given Signal is = 300 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 2.7, page no 67 <h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#find amplitude distortion at highest frquency\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "fs=9.5 #samplig frequncy\n",
+ "fmax=1 #maximum frequncy\n",
+ "t=0.2 #pulse width\n",
+ "\n",
+ "#Calculation\n",
+ "c=3*10**8\n",
+ "f=fmax\n",
+ "H1=t*(0.9933) #aperture effect at highest frequency, sinc(f*t)=0.9933 (given)\n",
+ "H1=H1*100\n",
+ "\n",
+ "#Result\n",
+ "print('|H(1)|=%.2f' %H1)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "|H(1)|=19.87\n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, page no 74 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate Transmission Bandwidth\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given\n",
+ "fm=3.0*(10^3)\n",
+ "fs=8.0*(10^3) # sampling frequncy\n",
+ "\n",
+ "#Calculation\n",
+ "Ts=1.0/fs\n",
+ "t=0.1*Ts\n",
+ "BW=1.0/(2*t) #Bandwidth\n",
+ "BW=BW/(10^3)\n",
+ "\n",
+ "#Result\n",
+ "print('Transmission Bandwidth of PAM signal is kHz = %.f Khz ' %BW)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmission Bandwidth of PAM signal is kHz = 40 Khz \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo3.ipynb b/Digital_Communications/ChapterNo3.ipynb
new file mode 100755
index 00000000..5b9ea469
--- /dev/null
+++ b/Digital_Communications/ChapterNo3.ipynb
@@ -0,0 +1,2238 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 3: WAVEFORM CODING TECHNIQUES<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3,1 Page No 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print('This is a Theoretical example')\t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This is a theoretcal example\n"
+ ]
+ }
+ ],
+ "prompt_number": 104
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3,2,i, Page No 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#find code word length\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512 #Quantization levels\n",
+ "#q=2^v\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log10(512)/math.log10(2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The code word legth is = %.f bits\" %v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The code word legth is = 9 bits\n"
+ ]
+ }
+ ],
+ "prompt_number": 105
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2.ii, Page No 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#find The transmission Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512.0 #Quantization levels\n",
+ "v=9.0\n",
+ "\n",
+ "#Calculation\n",
+ "bw=v*fm*10**-6\n",
+ "\n",
+ "#Result\n",
+ "print(\"The transmission Bandwidth is = %.1f MHz\" %bw)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The transmission Bandwidth is = 37.8 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 106
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2.iii, Page No 111 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find Final Bit rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512.0 #Quantization levels\n",
+ "v=9.0\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm\n",
+ "r=v*fs #signaling rate\n",
+ "\n",
+ "#Result\n",
+ "print(\"Final Bit rate =%.1f x 10^6 bits/sec\" %(r/(10**6)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Bit rate =75.6 x 10^6 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 107
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2.iv, Page No 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find Output signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "bandwidth=4.2*10**6\n",
+ "fm=bandwidth\n",
+ "q=512 #Quantization levels\n",
+ "v=9.0\n",
+ "\n",
+ "#Calculation\n",
+ "sn=4.8+6*v #noise in dB\n",
+ "\n",
+ "\n",
+ "print(\"Output signal to noise ratio is = %.1f dB\" %sn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal to noise ratio is = 58.8 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.i, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find bits per sample\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fmax=4*10**3\n",
+ "xmax=3.8\n",
+ "snr=100\n",
+ "\n",
+ "#Calculation\n",
+ "P=30*10**-3\n",
+ "v=(math.log10(((snr*xmax**2)/(3*P)))/(2*math.log10(2)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Number of bits required per sample are = %.2f bits\" %v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of bits required per sample are = 6.98 bits\n"
+ ]
+ }
+ ],
+ "prompt_number": 109
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3.ii, Page No 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find Transmission Bandwith\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=4*10**3 #Bandwidth of PCM\n",
+ "xmax=3.8\n",
+ "snr=100 #Signal to Noise Ratio\n",
+ "outputs=30.0\n",
+ "v=7.0\n",
+ "\n",
+ "#Calculation\n",
+ "bw=outputs*v*fm \n",
+ "r=bw*2\n",
+ "bw=bw/10**3\n",
+ "\n",
+ "#Result\n",
+ "print('Transmission Bandwith R = %.f kHz' %bw)\n",
+ "r=r/1000\n",
+ "print('Signaling rate R = %.f bits/sec' %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmission Bandwith R = 840 kHz\n",
+ "Signaling rate R = 1680 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#find sampling rate,number of bits,bit rate,bandwidht\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "emax=0.001\n",
+ "de=2*emax\n",
+ "fm=100.0\n",
+ "xmax=10.0\n",
+ "\n",
+ "#Calculation\n",
+ "q=(2*xmax)/de\n",
+ "fs=2*fm\n",
+ "v=(math.log10(q))/math.log10(2)\n",
+ "v=math.ceil(v)\n",
+ "r=v*fs\n",
+ "\n",
+ "#Result\n",
+ "print('1. sampling Frequncy = %.f Hz ' %fs) \n",
+ "print('2. No.of bits in PCM = %.f bits ' %v) \n",
+ "print('3. sampling rate = %.f bits per second ' %r)\n",
+ "r=r/2\n",
+ "print('4. Transmission Bandwidth = %.f Hz ' %r) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. sampling Frequncy = 200 Hz \n",
+ "2. No.of bits in PCM = 14 bits \n",
+ "3. sampling rate = 2800 bits per second \n",
+ "4. Transmission Bandwidth = 1400 Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page No 113 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Bandwidth,Sampling Rate\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=3.4*10**3\n",
+ "N=24\n",
+ "r=1.5*10**6\n",
+ "encoder=8\n",
+ "\n",
+ "#Calculation\n",
+ "BW=N*fm\n",
+ "BW=BW/10**3\n",
+ "r1=r/N\n",
+ "fs=r1/encoder\n",
+ "\n",
+ "#Result\n",
+ "print(\"i. Channel Bandwith is = %.2f kHz\" %BW)\n",
+ "print(\"ii. Sampling frequency is = %.2f Hz or samples per second.\" %fs)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i. Channel Bandwith is = 81.60 kHz\n",
+ "ii. Sampling frequency is = 7812.50 Hz or samples per second.\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 114 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find Signal Bandwidth,Noise Ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "v=7\n",
+ "r=50*10**6\n",
+ "\n",
+ "#Calculation\n",
+ "#fs=2*fm\n",
+ "fm=r/(2*v)\n",
+ "snr=1.8+(6*v);\n",
+ "fm=fm*10**-6\n",
+ "\n",
+ "#Result\n",
+ "print('i. Maximum message Bandwidth is = %.2f MHz ' %fm)\n",
+ "print('ii. signal to quantization niose ration = %.2f dB ' %snr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i. Maximum message Bandwidth is = 3.57 MHz \n",
+ "ii. signal to quantization niose ration = 43.80 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#find i)bits per sample,ii)transmission rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=3*10**3\n",
+ "q=16\n",
+ "\n",
+ "#Calculation\n",
+ "v=(math.log10(q))/math.log10(2)\n",
+ "\n",
+ "#Result\n",
+ "print('i) Bits in code word= %.f bits' %v)\n",
+ "fs=2*fm\n",
+ "r=v*fs\n",
+ "print('ii) it trasmission rate= %.f x 10^3 bits per second' %(r/(10**3)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Bits in code word= 4 bits\n",
+ "ii) it trasmission rate= 24 x 10^3 bits per second\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "fm=3.5*10**3\n",
+ "r=50*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm\n",
+ "rms=0.2\n",
+ "xmax=2\n",
+ "v=r/fs #signaling rate r=v*fs\n",
+ "v=math.ceil(v)\n",
+ "P=(rms**2)/1\n",
+ "SNR=((3*P*2**(2*v))/(xmax**2))\n",
+ "SN=10*math.log10(SNR)\n",
+ "SN=math.ceil(SN)\n",
+ "\n",
+ "#Result\n",
+ "print(\"signal to niose ratio =%.f dB\" %SN)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "signal to niose ratio =33 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 115
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10, Page No 117 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find i)noise ratio ii)bits\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "Am=3.0\n",
+ "v=10.0\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=1.8+6*v #noise ratio \n",
+ "SN=40\n",
+ "v=(SN-1.8)/6\n",
+ "\n",
+ "#Result\n",
+ "print(\"i) Signal to Quantization noise ratio = %.1f dB\" %SNR)\n",
+ "print(\"ii) Bits required to get signal to niose ratio of 40dB = %.f \" %math.ceil(v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Signal to Quantization noise ratio = 61.8 dB\n",
+ "ii) Bits required to get signal to niose ratio of 40dB = 7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 116
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 117 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Maximum frequency\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#Given data\n",
+ "v=7\n",
+ "SNR=1.8+6*v\n",
+ "r=56*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "fs=r/v #r=v*fs signaling rate\n",
+ "fm=fs/2 #Nquset rate\n",
+ "\n",
+ "#Result\n",
+ "fm=fm/10**3\n",
+ "print(\"Maximum frequency is = %.f kHz\" %fm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum frequency is = 4 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 117
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14, Page No 129 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Maximum Amplitude\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3*10**3.0\n",
+ "\n",
+ "#Calculation\n",
+ "Nyquistrate=2*fm #Nyquistrate\n",
+ "fs=5*Nyquistrate #Samplingfrquency\n",
+ "Ts=1/fs #Sampling Interval\n",
+ "de=0.25 #step size\n",
+ "fm1=2*10**3.0\n",
+ "Am=de/(2*math.pi*fm1*Ts)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum Amplitude = %.4f Volts\" %Am)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Amplitude = 0.5968 Volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find signaling rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs1=8*10**3.0\n",
+ "de=31.25*10**-3\n",
+ "q=64.0\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log(q,2)\n",
+ "r=v*fs1 #signaling rate\n",
+ "fm=3*10**3.0\n",
+ "A=1\n",
+ "fs2=(2*math.pi*fm*A)/(de)\n",
+ "\n",
+ "#Result\n",
+ "r=r*10**-3\n",
+ "print(\"Signaling rate of PCM is = %.f kHz\" %r)\n",
+ "fs2=fs2*10**-3\n",
+ "print(\"The signaling rate of DM is = %.2f kHz\" %fs2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signaling rate of PCM is = 48 kHz\n",
+ "The signaling rate of DM is = 603.19 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 119
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64.0*10**3 #frequency\n",
+ "fm=2.0*10**3 #Sinosoidal input signal sample \n",
+ "fM=4.0*10**3 #bandwidth\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=(3*fs**3)/(8*math.pi**2*fm**2*fM) #Signal to noise ratio\n",
+ "SNRO=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Output signal to noise ratio = %.2f dB\" %SNRO)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal to noise ratio = 27.94 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 120
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find signal to Quatization noise ratio \n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=8.0*10**3 #Sampling frequency\n",
+ "r=64.0*10**3 #Data Rate\n",
+ "N=8 #number of bits\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=(1.8+6*N) #signal to Quatization noise ratio\n",
+ "\n",
+ "#Result\n",
+ "print(\"Signal to Quatization noise ratio of PCM system is = %.f dB\" %SNR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signal to Quatization noise ratio of PCM system is = 50 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 121
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find sampling rate,quantizing level\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r=36000\n",
+ "fm=3.2*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm #Nquest rate\n",
+ "v=r/fs #r=v*fs signaling rate\n",
+ "v=math.floor(v)\n",
+ "q=2**v\n",
+ "fs1=r/v\n",
+ "\n",
+ "#Result\n",
+ "print(\"Quantizing level q = %.f \" %q)\n",
+ "fs1=fs1/1000\n",
+ "print(\"sampling rate fs = %.1f kHz \" %fs1)\n",
+ "print(\"Number of binary digits = %.f \" %v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizing level q = 32 \n",
+ "sampling rate fs = 7.2 kHz \n",
+ "Number of binary digits = 5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find time duration of 1bit binary encoded signal\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=input(\"Enter the Nyquist rate of Signal fs(Hz)=\")\n",
+ "q=input(\"Enter the Quantization levels q =\")\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log(q,2) #binary pulses transmitted per second\n",
+ "t=1.0/(v*fs) #Nyquist interval\n",
+ "\n",
+ "#Result\n",
+ "print('Time duration of binary signal t = %.4f sec ' %t)\n",
+ "#output\n",
+ "#Enter the Nyquist rate fs(Hz)=3\n",
+ "#Enter the Quantization levels q =5\n",
+ "#time duration of 1bit binary signal \n",
+ "#t=0.1435589 sec"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Nyquist rate of Signal fs(Hz)=23\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Quantization levels q =34\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time duration of binary signal t = 0.0085 sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 123
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#find signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNR=40\n",
+ "SNRO=10**(SNR/10)\n",
+ "\n",
+ "#SNR=3(q**2)/2, Signal to Quantization noise ratio\n",
+ "\n",
+ "#Calculation\n",
+ "q=math.sqrt((2*SNRO)/3)\n",
+ "q=math.ceil(q)\n",
+ "v=math.log(q,2) #q=2**v Quantization levels\n",
+ "v=math.ceil(v)\n",
+ "snr=1.76+6.02*v #output Signal to Quantization noise ratio\n",
+ "\n",
+ "#Result\n",
+ "print(\"Output Signal to Quantization noise ratio = %.1f dB\" %snr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output Signal to Quantization noise ratio = 43.9 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 124
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24.i, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Quantizing levels,minimum number of bits per sample\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNRO=30.0\n",
+ "fmin=300.0\n",
+ "fmax=3300.0\n",
+ "fs=80000.0\n",
+ "\n",
+ "#Calculation\n",
+ "#SNRO=1.76+20log10(q)\n",
+ "q=10**((SNRO-1.76)/20)\n",
+ "q=math.ceil(q)\n",
+ "v=math.log(q,2)\n",
+ "\n",
+ "#Result\n",
+ "print('Quantizing levels required is =%.f' %q)\n",
+ "print('minimum number of bits per sample are=%.1f that is approximately 5' %v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizing levels required is =26\n",
+ "minimum number of bits per sample are=4.7 that is approximately 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 125
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24.ii, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find minimum required bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNRO=30.0 #Signal to quantisizing noise ratio\n",
+ "fmin=300.0 #min frequency band\n",
+ "fmax=3300.0 #max frequency band\n",
+ "fs=8000.0 #Sampling rate\n",
+ "v=5.0 #Minimum number of bits per sample\n",
+ "\n",
+ "#Calculation\n",
+ "fPCM=(v*fs)/2\n",
+ "fPCM=fPCM/1000\n",
+ "\n",
+ "#Result\n",
+ "print('minimum required bandwidth =%.f kHz' %fPCM)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum required bandwidth =20 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24.iii, Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Quantizing levels,minimum number of bits per sample and bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNRO=30.0 #Signal to quantisizing noise ratio\n",
+ "fmin=300.0 #min frequency band\n",
+ "fmax=3300.0 #max frequency band\n",
+ "fs=8000.0 #Sampling rate\n",
+ "\n",
+ "#Calculation\n",
+ "q=10**((SNRO+10.1)/20)\n",
+ "q=math.ceil(q)\n",
+ "v=math.log(q,2)\n",
+ "v=math.ceil(v)\n",
+ "\n",
+ "#Result\n",
+ "print('Quantizing levels need is =%.f' %q)\n",
+ "print('minimum number of bits per sample is =%.f' %v)\n",
+ "fPCM=(v*fs)/2\n",
+ "fPCM=fPCM/1000\n",
+ "print('minimum required bandwidth =%.f Khz' %fPCM)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizing levels need is =102\n",
+ "minimum number of bits per sample is =7\n",
+ "minimum required bandwidth =28 Khz\n"
+ ]
+ }
+ ],
+ "prompt_number": 127
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.27, Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#determine the Maximum Amplitude,\n",
+ "\n",
+ "#Variable Declaration\n",
+ "de=250*10**-3\n",
+ "wm=2*math.pi*1000 \n",
+ "fs=3*10**3\n",
+ "Ts=1/fs\n",
+ "\n",
+ "#Calculation\n",
+ "Amax=(de*3*fs*2)/(wm) #Amplitude\n",
+ "SNR=(3.0*((3*6*(10**3))**3))/((8*(math.pi**2)*(10**3)**3))\n",
+ "\n",
+ "#Result\n",
+ "print('Maximum Amplitude= %.1f mV' %(Amax*(10**2)))\n",
+ "print('Signal to noise ratio = %.2f dB' %(10*math.log10(SNR)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Amplitude= 71.6 mV\n",
+ "Signal to noise ratio = 23.46 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 128
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.29, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of bits per sample\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SNR=20\n",
+ "averagepower=30*10**-3\n",
+ "SNRO=10**(SNR/10)\n",
+ "A=3.8\n",
+ "\n",
+ "#SNRO=average signal power/Quatizing power\n",
+ "#de=(2*A)/L\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt((SNRO*A**2)/(3*averagepower))\n",
+ "n=math.log(L,2)\n",
+ "n=math.ceil(n)\n",
+ "\n",
+ "#Result\n",
+ "print('Bits required per sample =%.f' %n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bits required per sample =7\n"
+ ]
+ }
+ ],
+ "prompt_number": 129
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30.i, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Normalized power for quantization noise\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3.0*10.0**3\n",
+ "v=8.0\n",
+ "VH=5.0\n",
+ "VL=-5.0\n",
+ "q=2**v\n",
+ "\n",
+ "#Calculation\n",
+ "de=(VH-VL)/q\n",
+ "Nq=de**2/12.0 #quantization noise\n",
+ "\n",
+ "#Result\n",
+ "print('Normalized power for quantization noise =%.2f x 10^-6 W' %(Nq*(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normalized power for quantization noise =127.16 x 10^-6 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 130
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30.ii, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find bit transmission rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3*10.0**3\n",
+ "v=8.0\n",
+ "VH=5.0\n",
+ "VL=-5\n",
+ "q=2**v\n",
+ "\n",
+ "#Calculation\n",
+ "fs=2*fm #Nyquist rate\n",
+ "r=8*fs/1000\n",
+ "\n",
+ "#Result\n",
+ "print('bit transmission rate %.f K bits/s' %r)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bit transmission rate 48 K bits/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 131
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.30.iii, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Signal to quantization noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Nq=127.15*10**-6\n",
+ "Meansignal=2\n",
+ "\n",
+ "#Calculation\n",
+ "P=Meansignal/1\n",
+ "SNR=P/Nq\n",
+ "SNRq=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print('Signal to quantization noise ratio %.2f dB ' %SNRq)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signal to quantization noise ratio 41.97 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 132
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.31, Page No 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find i)SNR ii)output bit rate iii)no.of bits recorded\n",
+ "\n",
+ "#Variable Declaration\n",
+ "N=16.0\n",
+ "v=16.0\n",
+ "fs=44.1*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=1.76+6*N\n",
+ "bitrate=2*v*fs\n",
+ "outputbitrate=2*bitrate*10**-6 #including addtional 100% over head\n",
+ "CD=outputbitrate*3600*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print('i)Out put signal noise ratio =%.2f dB' %SNR)\n",
+ "print('ii)output bit rate =%.3f Mbits/sec' %outputbitrate)\n",
+ "print('iii)no.of bits recorded in CD =%.2f gigabits' %CD)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Out put signal noise ratio =97.76 dB\n",
+ "ii)output bit rate =2.822 Mbits/sec\n",
+ "iii)no.of bits recorded in CD =10.16 gigabits\n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.32, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find output SNR\n",
+ "#Variable Declaration\n",
+ "fm=1*10.0**3\n",
+ "fs=32*10**3\n",
+ "\n",
+ "#Calculation\n",
+ "FM=4*10**3 #Bandwidth\n",
+ "SNR=(3*fs**3)/(8*math.pi**2*fm**2*FM) #SNR\n",
+ "SNRO=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print('Output signal to noise ratio %.2f dB' %SNRO)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal to noise ratio 24.93 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.33.i, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step size\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64000.0 #samples/sec\n",
+ "Amax=1.0 #Maximum signal amplitude\n",
+ "fm=3500.0 #Sample Rate\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*Amax)/fs*1000\n",
+ "\n",
+ "#Result\n",
+ "print('Step Size %.2f mV ' %de)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Step Size 343.61 mV \n"
+ ]
+ }
+ ],
+ "prompt_number": 135
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.33ii, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Quantizatio noise power \n",
+ "#Variable Declaration\n",
+ "fs=64000.0 #sample Rate\n",
+ "Amax=1.0 #Maximum signal Amplitude\n",
+ "fm=3500.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=343.6117*10**-3 #step size\n",
+ "Nq=de**2/3.0 #Quantizatio noise power\n",
+ "Nqd=Nq*(fm/fs)*1000\n",
+ "\n",
+ "#Result\n",
+ "print('Quantizatio noise power %.3f mW' %Nqd)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantizatio noise power 2.152 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 136
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.33iii, Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find SNR\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64000.0\n",
+ "Amax=1.0\n",
+ "fm=3500.0\n",
+ "Nqd=2.1522995*10**-3\n",
+ "\n",
+ "#Calculation\n",
+ "So=Amax**2/2\n",
+ "SNR=So/Nqd\n",
+ "SNRO=10*math.log10(SNR)\n",
+ "\n",
+ "#Result\n",
+ "print('Output signal noise ratio dB %.3f dB' %SNRO)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output signal noise ratio dB 23.661 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.34, Page No 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Assuming signal is sampled at the rate 20% above Nyquist rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=4.5*10**6\n",
+ "q=1024.0\n",
+ "\n",
+ "#Calculation\n",
+ "fs=1.2*2*fm #20% above Nyquist rate\n",
+ "v=math.log(q,2)\n",
+ "r=v*fs/10**6\n",
+ "\n",
+ "#Result\n",
+ "print('no.of bits/sec = %.f M bit/sec' %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "no.of bits/sec = 108 M bit/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.35, Page No 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume bandwidth of the singal is 4kHz\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=32000.0\n",
+ "A=2.0\n",
+ "fm=4000.0\n",
+ "BW=4000.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*A)/fs\n",
+ "Nq=de**2/3\n",
+ "SNR=(3*fs**3)/(8*math.pi**2*fm**2*BW)\n",
+ "\n",
+ "#Result\n",
+ "print('i)step size = %.3f M Volt' %de)\n",
+ "print('ii)noise power = %.3f W' %Nq)\n",
+ "print('iii)SNR= = %.3f ' %SNR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)step size = 1.571 M Volt\n",
+ "ii)noise power = 0.822 W\n",
+ "iii)SNR= = 19.454 \n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.36, Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assuming signal is sampled at the rate 20% above Nyquist rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=15*10**3\n",
+ "fs=1.2*2*fm\n",
+ "q=65536\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.log(q,2)\n",
+ "r=v*fs/1000\n",
+ "BW=r/2\n",
+ "\n",
+ "#Result\n",
+ "print('i)signaling rate,= %.f K bits/sec ' %r)\n",
+ "print('ii)bandwidth BW min = %.f kHz ' %BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)signaling rate,= 576 K bits/sec \n",
+ "ii)bandwidth BW min = 288 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.37, Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step size,noise power\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=64*10**3\n",
+ "fm=3500.0\n",
+ "A=1.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*A)/fs #step size\n",
+ "Nq=(de**2/3)*(fm/fs) #Granular noise power\n",
+ "\n",
+ "#Result\n",
+ "print('i)step size = %.3f Volts' %de)\n",
+ "print('ii)Nq= %.5f W' %Nq)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)step size = 0.344 Volts\n",
+ "ii)Nq= 0.00215 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.40, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step Nr,Transmission Bandwidth, SNR\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fs=4 #kHz\n",
+ "N=12\n",
+ "\n",
+ "#Calculation\n",
+ "Nr=2*fs #Nyquest rate\n",
+ "Bt=1.0/2*N*fs #Transmission Bandwidth\n",
+ "SNR=1.8+(6*N) \n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('i)Nyquest rate = %.1f kHz' %Nr)\n",
+ "print('ii)Transmission Bandwidth = %.1f kHz' %Bt)\n",
+ "print('iii)SNR = %.1f dB' %SNR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)Nyquest rate = 8.0 kHz\n",
+ "ii)Transmission Bandwidth = 24.0 kHz\n",
+ "iii)SNR = 73.8 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.41, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find step size,noise power\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=3.5*10**3\n",
+ "fs=64*10**3\n",
+ "A=2.0\n",
+ "\n",
+ "#Calculation\n",
+ "de=(2*math.pi*fm*A)/fs #step size\n",
+ "Nq=(de**2/3)*(fm/fs) #Granular noise power\n",
+ "\n",
+ "#Result\n",
+ "print('i)step size = %.3f Volts' %de)\n",
+ "print('ii)Nq= %.1f X 10^-3 W' %(Nq*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)step size = 0.687 Volts\n",
+ "ii)Nq= 8.6 X 10^-3 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.42, Page No 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Bit rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=4.5 * 10**6 #khz\n",
+ "Nr = 2 * W #Nyquist Rate\n",
+ "Q = 1024\n",
+ "fs=10.8\n",
+ "\n",
+ "#Calculation\n",
+ "N = math.log(Q,2) #number of binay pulse per word\n",
+ "Br= N*fs #Bit rate\n",
+ "Bw= 1.0/2*Br #Bandwidth\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of binay pulse per word = %.1f k bits/sec' %N)\n",
+ "print('ii) Bit rate = %.1f k bits/sec' %Br)\n",
+ "print('iii)Bandwidth= %.1f X 10^-3 kHz' %Bw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of binay pulse per word = 10.0 k bits/sec\n",
+ "ii) Bit rate = 108.0 k bits/sec\n",
+ "iii)Bandwidth= 54.0 X 10^-3 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 144
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.43, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Bit rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=15 #khz\n",
+ "Nr = 2*W #Nyquist Rate\n",
+ "Q = 65.53\n",
+ "fs=44.1 # Sampling rate kHz\n",
+ "N=16\n",
+ "\n",
+ "#Calculation\n",
+ "Br= N*fs #Bit rate\n",
+ "Bw= 1.0/2*Br #Bandwidth\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of binay pulse per word = %.3f bits' %N)\n",
+ "print('ii) Bit rate = %.1f k bits/sec' %Br)\n",
+ "print('iii)Bandwidth= %.1f kHz' %Bw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of binay pulse per word = 16.000 bits\n",
+ "ii) Bit rate = 705.6 k bits/sec\n",
+ "iii)Bandwidth= 352.8 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 145
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.44, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Number of binay pulse per word\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=3.3 #khz\n",
+ "fm = 1*10**3 #kHz\n",
+ "de = 250 #mV\n",
+ "fs=19.8 # Sampling rate kHz\n",
+ "\n",
+ "#Calculation\n",
+ "A=(de*fs)/(2*math.pi*fm)\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of binay pulse per word = %.3f' %A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of binay pulse per word = 0.788\n"
+ ]
+ }
+ ],
+ "prompt_number": 146
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.45, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Signaling rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=3.3 #khz\n",
+ "fm = 3300 #Hz\n",
+ "Snq = 40 #dB\n",
+ "fs= 8000 # Samples/sec\n",
+ "\n",
+ "#Calculation \n",
+ "N=math.ceil((Snq-4.8)/6) # Number of bits per word\n",
+ "Q=2**N #\n",
+ "r=N*fs #Signaling rate k bits/sec\n",
+ "Bw=1.0/2*r\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of bits per word = %.1f' %N)\n",
+ "print('ii) Signaling rate rate = %.1f k bits/sec' %(r/10**3))\n",
+ "print('iii)Bandwidth= %.1f kHz' %(Bw/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of bits per word = 6.0\n",
+ "ii) Signaling rate rate = 48.0 k bits/sec\n",
+ "iii)Bandwidth= 24.0 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.46, Page No 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find the maximun frequency with 1 volt amplitude\n",
+ "\n",
+ "#Variable Declaration\n",
+ "de=256*10**-3 #V\n",
+ "Ts = 10*10**-6 #kHz\n",
+ "fm = 10 #kHz\n",
+ "fs= 100 # kHz\n",
+ "A=1 #V\n",
+ "\n",
+ "#Calculation \n",
+ "wm=(de/A*Ts)*10**7\n",
+ "\n",
+ "#Result\n",
+ "print('i) maximun frequency = %.1f X 10^3 rad/sec' %wm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) maximun frequency = 25.6 X 10^3 rad/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 148
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.47, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find the Signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Q=256 \n",
+ "m=255\n",
+ "\n",
+ "#Calculation \n",
+ "SNR=(3*Q**2)/(math.log((1+m),math.e))**2 #dB\n",
+ "Gc=m/(math.log(1+m)) #Companding gain\n",
+ "Gc=20*math.log(Gc,10)\n",
+ "\n",
+ "#Result\n",
+ "print('i) The Signal to noise ratio= %.1f dB' %SNR)\n",
+ "print('ii) The Companding gain = %.1f dB' %Gc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) The Signal to noise ratio= 6394.0 dB\n",
+ "ii) The Companding gain = 33.3 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.48, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of binay pulse per word, Signaling rate, Bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=15*10**3 #kHz\n",
+ "Q=200\n",
+ "fs=2*fm\n",
+ "\n",
+ "#Calculation \n",
+ "N=math.ceil(math.log(Q,2))\n",
+ "tr=N*fs #Transmission rate kbps\n",
+ "Bw=1.0/2*tr\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of bits per Samples = %.1f' %N)\n",
+ "print('ii) Signaling rate = %.1f k bits/sec' %(tr/10**3))\n",
+ "print('iii)Bandwidth= %.1f kHz' %(Bw/10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of bits per Samples = 8.0\n",
+ "ii) Signaling rate = 240.0 k bits/sec\n",
+ "iii)Bandwidth= 120.0 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.49, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find number of quantization level\n",
+ "\n",
+ "#Variable Declaration\n",
+ "tr=36.0 #kbps\n",
+ "fm=3.4 #kHz\n",
+ "fs=8\n",
+ "\n",
+ "#Calculation \n",
+ "N=math.ceil(tr/fs)\n",
+ "Q=2**N\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('i) number of quantization level = %.1f' %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) number of quantization level = 32.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 151
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.50, Page No 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find delta modulation\n",
+ "\n",
+ "#Variable Declaration\n",
+ "A=1 #V\n",
+ "fm=3.4 #kHz\n",
+ "fs=20\n",
+ "\n",
+ "#Calculation \n",
+ "de=1*2*math.pi*(fm/fs)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('i) delta modulation = %.2f V' %de)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) delta modulation = 1.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 152
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.51, Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=3.5 #kHz\n",
+ "r=50.0 #kbps\n",
+ "Vpp=4 #V\n",
+ "fs=8\n",
+ "\n",
+ "#Calculation \n",
+ "N=r/fs\n",
+ "SNR=4.8+(6.8*N)\n",
+ "\n",
+ "#Result\n",
+ "print('i) Signal to noise ratio = %.2f V' %SNR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Signal to noise ratio = 47.30 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 153
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.52, Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Signal to noise ratio\n",
+ "\n",
+ "#Variable Declaration\n",
+ "W=1 #MHz\n",
+ "fs1=3 #MHz\n",
+ "fs2=2.4 #MHz\n",
+ "Q=256\n",
+ "m=255\n",
+ "\n",
+ "#Calculation \n",
+ "SNR=((3*Q**2)/(math.log((1+m),math.e))**2)\n",
+ "SNR1=63095.73 #SNR=38+10\n",
+ "Q1=math.sqrt((SNR1*((math.log(256,math.e))**2))/3)\n",
+ "N1=math.ceil(math.log(Q1,2))\n",
+ "r=N1*fs2\n",
+ "Bw=1.0/2*r\n",
+ "\n",
+ "#Result\n",
+ "print('i) Number of bits/word = %.2f ' %N1)\n",
+ "print('ii) Bit rate = %.1f Mb/s' %r)\n",
+ "print('iii) Bandwidth = %.1f Mb/s' %Bw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Number of bits/word = 10.00 \n",
+ "ii) Bit rate = 24.0 Mb/s\n",
+ "iii) Bandwidth = 12.0 Mb/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 154
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo4.ipynb b/Digital_Communications/ChapterNo4.ipynb
new file mode 100755
index 00000000..547a969e
--- /dev/null
+++ b/Digital_Communications/ChapterNo4.ipynb
@@ -0,0 +1,273 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 4: DIGITAL MULTIPLEXERS<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, page no 190 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Caption: Sampling Rate\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=4.0*10**3\n",
+ "f2=4.5*10**3\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "fsmin=(2*f2)/1000\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\" Sampling rate =%.2f kHz\" %fsmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Sampling rate =9.00 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page No 190 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Caption: Nyquest rate,Signaling rate,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=3000.0\n",
+ "f4=1000.0\n",
+ "f2=1000.0\n",
+ "f3=1000.0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "#Nyquest rate\n",
+ "nq1=2*f1\n",
+ "nq2=2*f2\n",
+ "nq3=2*f3\n",
+ "nq4=2*f4\n",
+ "\n",
+ "#RESULTS\n",
+ "print('i. Nyquest rate of x1 =%.2fkHz' %nq1)\n",
+ "print('ii. Nyquest rate of x2 =%.2fkHz' %nq2)\n",
+ "print('iii. Nyquest rate of x3 =%.2fkHz' %nq3)\n",
+ "print('iv. Nyquest rate of x4 =%.2fkHz' %nq4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i. Nyquest rate of x1 =6000.00kHz\n",
+ "ii. Nyquest rate of x2 =2000.00kHz\n",
+ "iii. Nyquest rate of x3 =2000.00kHz\n",
+ "iv. Nyquest rate of x4 =2000.00kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 190 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find The spacing between two successive pules\n",
+ "\n",
+ "#initialisation of variables\n",
+ "samplingrate=8000.0\n",
+ "totalsignals=24+1\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "t=1/samplingrate\n",
+ "T=t/totalsignals\n",
+ "T=T*10**6 #time is now u sec\n",
+ "space=T-1\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The spacing between two successive pules %.f u sec' %space)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The spacing between two successive pules 4 u sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page No 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find signaling rate ,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N=6.0\n",
+ "fm=5000.0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r=2*fm #sampling rate\n",
+ "sr=N*r #signalingrate\n",
+ "BW=N*fm #Bandwith\n",
+ "sr=sr/1000\n",
+ "BW=BW/1000\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Signaling rate %.f K bits/sec' %sr)\n",
+ "print('Bandwith to avoid the cross talk in TDM is %.f kHz' %BW)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signaling rate 60 K bits/sec\n",
+ "Bandwith to avoid the cross talk in TDM is 30 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find signaling rate ,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N=4.0\n",
+ "x=24 #bits/frame\n",
+ "D=1152\n",
+ "s=1.0/3\n",
+ "r=1.544*10**6\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r0=N*r*((D+x)/(D-s*N))\n",
+ "\n",
+ "#RESULTS\n",
+ "print('Output bit rate %.2f MB/sec' %(r0/(10**6)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output bit rate 6.31 MB/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find signaling rate ,bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N=24.0\n",
+ "x=72.0 #bits\n",
+ "D=192 #message and stuff bits\n",
+ "s=1.0/3\n",
+ "r=64 #kb/sec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "r0=N*r*((D+x)/(D-s*N))\n",
+ "r1=((N*r)/r0)*100\n",
+ "\n",
+ "#RESULTS\n",
+ "print('i) Output bit rate %.2f MB/sec' %(r0/(10**3)))\n",
+ "print('iI) Throughput efficiency is = %.2f percent' %r1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) Output bit rate 2.20 MB/sec\n",
+ "iI) Throughput efficiency is = 69.70 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo5.ipynb b/Digital_Communications/ChapterNo5.ipynb
new file mode 100755
index 00000000..b36df857
--- /dev/null
+++ b/Digital_Communications/ChapterNo5.ipynb
@@ -0,0 +1,105 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 5: DIGTIAL BASEBAND TRANSMISSION<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 249 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find The roll of factor alpha\n",
+ "\n",
+ "#initialisation of variables\n",
+ "datarate=0.1*10**6\n",
+ "fB=75000.0 #bandwidth\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Tb=1/datarate\n",
+ "alpha=2*fB*Tb-1\n",
+ "\n",
+ "#RESULTS\n",
+ "print('The roll out factor alpha = = %.1f ' %alpha)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The roll out factor alpha = = 0.5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find The Transmission bandwidth\n",
+ "\n",
+ "#initialisation of variables\n",
+ "q=128.0\n",
+ "alpha=0.2\n",
+ "n=math.log(q,2)\n",
+ "fm=2000.0\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Nq=2*fm\n",
+ "fs=1.25*Nq\n",
+ "N=8.0\n",
+ "total=N*fs\n",
+ "bitrate=7*total\n",
+ "fB=((1+alpha)*bitrate)/2\n",
+ "fB=fB/1000\n",
+ "#RESULTS\n",
+ "print('The minimum transmission Bandwidth required = %.f kHz' %fB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum transmission Bandwidth required = 168 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo6.ipynb b/Digital_Communications/ChapterNo6.ipynb
new file mode 100755
index 00000000..83113b9c
--- /dev/null
+++ b/Digital_Communications/ChapterNo6.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 6: DIGITAL MODULATION TECHNIQUES<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page No 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#Symbol rate of transmission and bandwidth \n",
+ "\n",
+ "#initialisation of variables\n",
+ "fb=1.0 #MHz\n",
+ "Tb=1/fb #bit period ms\n",
+ "N=4\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Ts1=Tb\n",
+ "Bw1=2*fb\n",
+ "Ts2=Tb*2\n",
+ "Tr2=(1.0/2)*1000 #Symbols/sec\n",
+ "Bw2=1/Tb\n",
+ "Ts3=N*Tb\n",
+ "Tr3=(1.0/4)*1000\n",
+ "Bw3=(2.0*fb)/N\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"In BPSK\")\n",
+ "print(\"The symbol rate of transmission is = %.f X 10^6 symbol/sec \" %Ts1)\n",
+ "print(\"The Bandwidth is = %.f MHz \" %Bw1)\n",
+ "print(\"In QPSK\")\n",
+ "print(\"The symbol rate of transmission is = %.f X 10^3 symbol/sec \" %Tr2)\n",
+ "print(\"The Bandwidth is = %.f MHz \" %Bw2)\n",
+ "print(\"In 16-ary PSK\")\n",
+ "print(\"The symbol rate of transmission is = %.f X 10^3 symbol/sec \" %Tr3)\n",
+ "print(\"The Bandwidth is = %.f kHz \" %(Bw3*1000))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In BPSK\n",
+ "The symbol rate of transmission is = 1 X 10^6 symbol/sec \n",
+ "The Bandwidth is = 2 MHz \n",
+ "In QPSK\n",
+ "The symbol rate of transmission is = 500 X 10^3 symbol/sec \n",
+ "The Bandwidth is = 1 MHz \n",
+ "In 16-ary PSK\n",
+ "The symbol rate of transmission is = 250 X 10^3 symbol/sec \n",
+ "The Bandwidth is = 500 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page No 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "fb=90 #MHz\n",
+ "Bw=20 #Mb/s\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "N=(2*fb)/Bw\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Number of bits required = %.f \" %N)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of bits required = 9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Tb=0.1 #msec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "fb=1/Tb\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Transmission bandwidth = %.f kHz\" %fb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmission bandwidth = 10 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo7.ipynb b/Digital_Communications/ChapterNo7.ipynb
new file mode 100755
index 00000000..9d58a722
--- /dev/null
+++ b/Digital_Communications/ChapterNo7.ipynb
@@ -0,0 +1,431 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 7: PERFORMANCE ANALYSIS OF DIGITAL COMMUNICATION SYSTEMS<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15, Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "T=1.0*10**-6 #ms\n",
+ "A=10.0*10**-3\n",
+ "N=1*10**-11\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Eb=((A**2)*T)/2.0\n",
+ "Epb=math.sqrt(Eb/N)\n",
+ "Pb=(1.0/2)*math.erfc(Epb)*(1.0/4)\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Bit error probability = %.2f X 10^-4 \" %(Pb*(10**4)))\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bit error probability = 1.96 X 10^-4 \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.16, Page No 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Br=25*10**6 #bits/sec\n",
+ "N=2*10**-20 #Power spectral density of noise\n",
+ "A=1.0*10**-6\n",
+ "Ps=1*10**-12 # Normalized power\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Tb=1.0/Br\n",
+ "Ps=(A**2)/2.0\n",
+ "Pe=1.0/2*(math.erfc((0.6*Ps*Tb)/N))\n",
+ "#RESULTS\n",
+ "print(\"Average probability of bit error is Pe= %.2f X 10^-4 \" %(Pe*10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average probability of bit error is Pe= 1.98 X 10^-4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17, Page No 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find probability of error\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=2.0\n",
+ "N0=2.0*10**-4 #power sepctral density\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Tmin=(6.76*N0)/4\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The min time for which the signal should be extended is Tmin= %.3f X 10^-3 msec \" %(Tmin*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The min time for which the signal should be extended is Tmin= 0.338 X 10^-3 msec \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The average carrier\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pe=10**-4\n",
+ "N0=2*10**10\n",
+ "T=1.0/10**6\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "E=6.76*N0\n",
+ "P=E/T\n",
+ "Eb=8.5171*N0\n",
+ "P2=Eb/T\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The average carrier = %.3f X 10^-3 mW \" %(P2/10**17))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average carrier = 1.703 X 10^-3 mW \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The average carrier\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=0.2*10**-3 #V\n",
+ "T=2*10**-6\n",
+ "N0=2*10**-15\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Pe=(math.sqrt((A**2*T)/4*N0))\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The average carrier = %.3f X 10^-4 mW \" %(Pe*10**15))\n",
+ "print(\"Approximation error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average carrier = 6.325 X 10^-4 mW \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=1.0\n",
+ "N0=2.0*10**-5 #power sepctral density\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "T=((3.71**2)*2*N0)/(A**2)\n",
+ "Br=1/T\n",
+ "#Results\n",
+ "print(\"Bit rate Br= %.2f k bits/sec\" %(Br/(10**3)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bit rate Br= 1.82 k bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.31, Page No 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pe=10.0**-4 #probability of error of PSK\n",
+ "N0=2.0*10**-10\n",
+ "Br=10**6 #Bit Rate\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "T=1.0/Br\n",
+ "E=N0*6.76\n",
+ "P=E/T\n",
+ "Eb=8.5171*N0\n",
+ "Pb=Eb/T\n",
+ "#Results\n",
+ "print(\"i) PSK system The required carrier power = %.2f mW\" %(P*10**3))\n",
+ "print(\"ii) DPSK system The required carrier power = %.2f mW\" %(Pb*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) PSK system The required carrier power = 1.35 mW\n",
+ "ii) DPSK system The required carrier power = 1.70 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.32, Page No 450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "A=0.2*10**-3 #V\n",
+ "T=2*10**-6 #Sec\n",
+ "N0=2*10**-15\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "x=math.sqrt((A**2*T)/(4*N0))\n",
+ "Pe=(1.0/2)*math.erfc(x/math.sqrt(2.0))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Probability of error = %.2f X 10^-4\" %(Pe*10**4))\n",
+ "#print(\"Channel Bandwidth = %.5f MHz\" %BW)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of error = 7.83 X 10^-4\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.36, Page No 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ap=1 #mV\n",
+ "En=192.3 #mV\n",
+ "Arms=707 #mV\n",
+ "\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Z=Arms/En\n",
+ "Pe=1.0/2*(math.erfc(math.sqrt(2)*(Z/math.sqrt(2))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Probability of error is %.7f \" %Pe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of error is 0.0000001 \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.37, Page No 454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Br=2.08*10**-6 #Bit Rate\n",
+ "N0=2*10**-8\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "Eb=(math.sqrt(3.3))/(5*10**7) #Eb=bit energy\n",
+ "Ps=Eb*Br\n",
+ "BW=2*Br #Bandwidth\n",
+ "Es=286.39*N0\n",
+ "Ps2=(Es*Br)/2\n",
+ "BW2=(2*Br)/4\n",
+ "\n",
+ "#Results\n",
+ "print(\"i) BPSK THe transmission bandwidth = %.2f MHz\" %(BW*10**6)) \n",
+ "print(\"ii) For 16 ary PSK THe transmission bandwidth = %.2f MHz\" %(BW2*10**6)) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i) BPSK THe transmission bandwidth = 4.16 MHz\n",
+ "ii) For 16 ary PSK THe transmission bandwidth = 1.04 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo8.ipynb b/Digital_Communications/ChapterNo8.ipynb
new file mode 100755
index 00000000..d34d983c
--- /dev/null
+++ b/Digital_Communications/ChapterNo8.ipynb
@@ -0,0 +1,1439 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 8: INFORMATION THEORY<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#Find Information Content of Each Symbol\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/8.0\n",
+ "\n",
+ "#Calculation\n",
+ "#information content of each symbol\n",
+ "Ix1=math.log(1/px1,2)\n",
+ "Ix2=math.log(1/px2,2)\n",
+ "Ix3=math.log(1/px3,2)\n",
+ "Ix4=math.log(1/px4,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Information Content tI(x1)= %.2f bit\" %Ix1)\n",
+ "print(\" tI(x2)= %.f bits\" %Ix2)\n",
+ "print(\" tI(x3)= %.f bits\" %Ix3)\n",
+ "print(\" tI(x4)= %.f bits\" %Ix4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Information Content tI(x1)= 1.00 bit\n",
+ " tI(x2)= 2 bits\n",
+ " tI(x3)= 3 bits\n",
+ " tI(x4)= 3 bits\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find amount of Information\n",
+ "#Variable Declaration\n",
+ "#Calculation\n",
+ "pxi=1/4.0\n",
+ "Ixi=(math.log10(1/pxi))/math.log10(2)\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"The amount of Information I(Xi)= %.f \" %Ixi)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of Information I(Xi)= 2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Amount of Information\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/2.0\n",
+ "\n",
+ "#Calculation\n",
+ "Ix1=math.log(1/px1,2) #entropy\n",
+ "Ix2=math.log(1/px2,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The amount of Information I(X1)= %.f bit\" %Ix1)\n",
+ "print(\"The amount of Information I(X2)= %.f bit\" %Ix2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of Information I(X1)= 1 bit\n",
+ "The amount of Information I(X2)= 1 bit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Amount of Information \n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/4.0\n",
+ "px2=3/4.0\n",
+ "\n",
+ "#Calculation\n",
+ "Ix1=math.log(1/px1,2)\n",
+ "Ix2=math.log(1/px2,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The amount of Information I(X1)= %.f bit\" %Ix1)\n",
+ "print(\"The amount of Information I(X2)= %.2f bit\" %Ix2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of Information I(X1)= 2 bit\n",
+ "The amount of Information I(X2)= 0.42 bit\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page No 468 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Entropy,Amount of information\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.4\n",
+ "px2=0.3\n",
+ "px3=0.2\n",
+ "px4=0.1\n",
+ "\n",
+ "#Calculation\n",
+ "HX=-px1*math.log(px1,2)-px2*math.log(px2,2)-px3*math.log(px3,2)-px4*math.log(px4,2)\n",
+ "Px1x2x1x3=px1*px2*px1*px3\n",
+ "Ix1x2x1x3=-math.log(Px1x2x1x3,2)\n",
+ "Px4x3x3x2=px4*px3*px3*px2\n",
+ "Ix4x3x3x2=-math.log(Px4x3x3x2,2)\n",
+ "\n",
+ "#Result\n",
+ "print(\" \\n Entropy H(X) = %.2f bits/symbol \" %HX)\n",
+ "print(\"The amount of Information I(x1x2x1x3)= %.2f bits/symbol\" %Ix1x2x1x3)\n",
+ "print(\" I(x4x3x3x2) = %.2f bits/symbol \" %Ix4x3x3x2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " Entropy H(X) = 1.85 bits/symbol \n",
+ "The amount of Information I(x1x2x1x3)= 6.70 bits/symbol\n",
+ " I(x4x3x3x2) = 9.70 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13, Page No 471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Find information rate the telegraphic source\n",
+ "\n",
+ "#Variable Declaration\n",
+ "pdash=1/3.0\n",
+ "pdot=2/3.0\n",
+ "tdot=0.2\n",
+ "tdash=0.6\n",
+ "tspace=0.2\n",
+ "\n",
+ "#Calculation\n",
+ "HX=-pdash*math.log(pdash,2)-pdot*math.log(pdot,2)\n",
+ "Ts=pdot*tdot+pdash*tdash+tspace\n",
+ "r=1/Ts\n",
+ "R=r*HX\n",
+ "\n",
+ "#Result\n",
+ "print('Average rate of information R = %.2f bits/s' %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average rate of information R = 1.72 bits/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find information rate of the source\n",
+ "\n",
+ "f=input('Enter the frequncy f=')\n",
+ "px1=1/8.0\n",
+ "px2=1/8.0\n",
+ "px3=3/8.0\n",
+ "px4=3/8.0\n",
+ "\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2) #entropy of the source\n",
+ "R=2*f*HX #r=2*f\n",
+ "print('information rate R= %.1f bits/sec ' %R) #f=signal bandwidth\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the frequncy f=34\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "information rate R= 123.2 bits/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find information rate of the source\n",
+ "#all symbols are equally likely\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/2.0\n",
+ "px3=1/2.0\n",
+ "px4=1/2.0\n",
+ "\n",
+ "#Calculation\n",
+ "f=input('Enter the frequncy of system fm(in Hz) =')\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\n Entropy H(X) =%.f bits/symbol ' %HX)\n",
+ "R=2*f*HX\n",
+ "print('information rate =%.f bits/sec' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the frequncy of system fm(in Hz) =45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Entropy H(X) =2 bits/symbol \n",
+ "information rate =180 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find source entropy ,information rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "#probability symbols\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/16.0\n",
+ "px5=1/16.0\n",
+ "Tb=10.0**-3\n",
+ "\n",
+ "#Calculation\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4)+px5*math.log(1/px5)\n",
+ "\n",
+ "#Result\n",
+ "print('1. source entropy H(X) = %.2f bits/symbol ' %HX) #source entropy\n",
+ "r=1.0/Tb\n",
+ "R=r*HX #information rate\n",
+ "print(' 2. Information rate R = %.2f bits/sec ' %R)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. source entropy H(X) = 1.72 bits/symbol \n",
+ " 2. Information rate R = 1721.57 bits/sec \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume if there are 16 outcomes per second\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/16.0\n",
+ "px5=1/16.0\n",
+ "r=16.0\n",
+ "\n",
+ "#Calculation\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)+px5*math.log(1/px5,2)\n",
+ "\n",
+ "#Result\n",
+ "print('1. Entropy H(X) = %.2f bits/symbol ' %HX) #source entropy\n",
+ "\n",
+ "R=r*HX\n",
+ "print('2., Information rate R = %.f bits/sec' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Entropy H(X) = 1.88 bits/symbol \n",
+ "2., Information rate R = 30 bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#determine entropy ,information rate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/4.0\n",
+ "px2=1/5.0\n",
+ "px3=1/5.0\n",
+ "px4=1/10.0\n",
+ "px5=1/10.0\n",
+ "px6=1/20.0\n",
+ "px7=1/20.0\n",
+ "px8=1/20.0\n",
+ "f=10*10**3.0\n",
+ "fs=10*2*10**3.0\n",
+ "\n",
+ "#Calculation\n",
+ "#entropy\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)+px5*math.log(1/px5,2)+px6*math.log(1/px6,2)+px7*math.log(1/px7,2)+px8*math.log(1/px8,2) \n",
+ "\n",
+ "#Result\n",
+ "print('bits/message H(X) = %.2f ' %HX)\n",
+ "r=fs\n",
+ "R=r*HX #information rate\n",
+ "print('bits/sec R = %.2f' %R)\n",
+ "print('Approximation error')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bits/message H(X) = 2.74 \n",
+ "bits/sec R = 54828.92\n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 476 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from array import *\n",
+ "#Find Channel Matrix,joint probability\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.5\n",
+ "px2=0.5\n",
+ "py1x1=0.9\n",
+ "py2x1=0.1\n",
+ "py1x2=0.2\n",
+ "py2x2=0.8\n",
+ "PYX=[[py1x1,py2x1],[py1x2,py2x2]]\n",
+ "PX=[[px1,px2]]\n",
+ "PY = [[0,0],\n",
+ " [0,0]]\n",
+ "PXY = [[0,0],\n",
+ " [0,0]]\n",
+ "\n",
+ "for i in range(len(PYX)):\n",
+ " # iterate through columns of Y\n",
+ " for j in range(len(PX[0])):\n",
+ " # iterate through rows of Y\n",
+ " for k in range(len(PX)):\n",
+ " PY[i][j] += PYX[i][k] * PX[k][j]\n",
+ "print(' PY ARRAY = \\n')\n",
+ "for r in PY:\n",
+ " print(r)\n",
+ "PXd=[[px1,0],[0,px2]]\n",
+ "\n",
+ "\n",
+ "for i in range(len(PXd)):\n",
+ " # iterate through columns of Y\n",
+ " for j in range(len(PYX[0])):\n",
+ " # iterate through rows of Y\n",
+ " for k in range(len(PYX)):\n",
+ " PXY[i][j] += PXd[i][k] * PYX[k][j]\n",
+ "\n",
+ " \n",
+ "print(' \\n PXY ARRAY = \\n')\n",
+ "for r in PXY:\n",
+ " print(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " PY ARRAY = \n",
+ "\n",
+ "[0.45, 0.45]\n",
+ "[0.1, 0.1]\n",
+ " \n",
+ " PXY ARRAY = \n",
+ "\n",
+ "[0.45, 0.05]\n",
+ "[0.1, 0.4]\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.35, Page No 498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Channel is aproximated by the AWGN Channel\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=4000.0\n",
+ "S=0.1*10**-3\n",
+ "n=2*10**-12\n",
+ "\n",
+ "#Calculation\n",
+ "N=n*B\n",
+ "C=B*math.log(1+(S/N),2) #Capacity of Channel\n",
+ "C=C/1000.0\n",
+ "#Result\n",
+ "print(' Capacity of Channel C=%.3f(10^3) b/s ' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Capacity of Channel C=54.439(10^3) b/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36i, Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fm=4000.0\n",
+ "fs=2*fm\n",
+ "n=1.25\n",
+ "\n",
+ "#Calculation\n",
+ "r=fs*n\n",
+ "pxi=1/256.0\n",
+ "HX=-math.log(pxi,2)\n",
+ "R=r*HX\n",
+ "R=R/1000\n",
+ "print('Information Rate R= %.f kb/s' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Information Rate R= 80 kb/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36ii, Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=10*10**3.0\n",
+ "SN=20.0\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=10**(SN/10.0)\n",
+ "C=B*math.log(1+(SNR),2)\n",
+ "C=C/1000\n",
+ "\n",
+ "#Result\n",
+ "print('The channel capacity = %.2f 10^3 b/s' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The channel capacity = 66.58 10^3 b/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36iii, Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "C=8*10**4.0\n",
+ "B=10**4.0\n",
+ "\n",
+ "#Calculation\n",
+ "SN=2**(C/B)-1\n",
+ "SNR=10*math.log(SN,10) #SNR\n",
+ "\n",
+ "#Result\n",
+ "print(' The S/N ratio required for error-free transmission =%.2f dB ' %SNR) #required SNR is greater that 24.064\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The S/N ratio required for error-free transmission =24.07 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.36iv, Page No 499 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#assume that succeissive samples are statistically independent\n",
+ "\n",
+ "#Variable Declaration\n",
+ "SN=20.0\n",
+ "\n",
+ "#Calculation\n",
+ "SNR=10**(SN/10.0)\n",
+ "C=8*10**4.0\n",
+ "B=C/(math.log(1+SNR,2)) #Bandwidth\n",
+ "B=B/1000\n",
+ "\n",
+ "#Result\n",
+ "print('Bandwidth required for AWGN channel B =%.2f kHz ' %B)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bandwidth required for AWGN channel B =12.02 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.37, Page No 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find code efficiency,redundancy\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.9\n",
+ "px2=0.1\n",
+ "n1=1.0\n",
+ "n2=1.0\n",
+ "\n",
+ "#Calculation\n",
+ "L=px1*n1+px2*n2 #code leght\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)\n",
+ "n=(HX/L) #code efficiency\n",
+ "n=n*100\n",
+ "\n",
+ "print('Code efficiency = %.1f percent' %n)\n",
+ "r=(100-n) #code reduncy\n",
+ "print('Code redundancy = %.1f percent' %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Code efficiency = 46.9 percent\n",
+ "Code redundancy = 53.1 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.38, Page No 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find code efficiency,redundancy\n",
+ "\n",
+ "#Variable Declaration\n",
+ "pa1=0.81\n",
+ "pa2=0.09 \n",
+ "pa3=0.09\n",
+ "pa4=0.01 \n",
+ "n1=1\n",
+ "n2=2 \n",
+ "n3=3\n",
+ "n4=3 \n",
+ "\n",
+ "#Calculation\n",
+ "L=pa1*n1+pa2*n2+pa3*n3+pa4*n4\n",
+ "HX2=pa1*math.log(1/pa1,2)+pa2*math.log(1/pa2,2)+pa3*math.log(1/pa3,2)+pa4*math.log(1/pa4,2)\n",
+ "n=HX2/L*100\n",
+ "\n",
+ "#Result\n",
+ "print(' code efficiency = %.2f percent' %n)\n",
+ "\n",
+ "r=(100-n) #code reduncy\n",
+ "print(' code redundancy = %.1f percent' %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " code efficiency = 72.71 percent\n",
+ " code redundancy = 27.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.44, Page No 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find efficiency of the code\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=1/2.0\n",
+ "px2=1/4.0\n",
+ "px3=1/8.0\n",
+ "px4=1/8.0\n",
+ "n1=1.0\n",
+ "n2=2.0\n",
+ "n3=3.0\n",
+ "n4=3.0\n",
+ "\n",
+ "#Calculation\n",
+ "#information content of each symbol\n",
+ "Ix1=-math.log(px1,2)\n",
+ "Ix2=-math.log(px2,2)\n",
+ "Ix3=-math.log(px3,2)\n",
+ "Ix4=-math.log(px4,2)\n",
+ "\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2)+px4*math.log(1/px4,2)\n",
+ "L=px1*n1+px2*n2+px3*n3+px4*n4\n",
+ "\n",
+ "n=HX/L*100\n",
+ "\n",
+ "#Result\n",
+ "print('Ccode efficiency = %.f Percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ccode efficiency = 100 Percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.50, Page No 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy ,information rate\n",
+ "#If there are 16 outcomes per second\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P1=1/2.0\n",
+ "P2=1/4.0\n",
+ "P3=1/8.0\n",
+ "P4=1/16.0\n",
+ "P5=1/32.0\n",
+ "P6=1/32.0\n",
+ "r=16 #message rate\n",
+ "\n",
+ "#Calculation\n",
+ "H=P1*math.log(1/P1,2)+P2*math.log(1/P2,2)+P3*math.log(1/P3,2)+P4*math.log(1/P4,2)+P5*math.log(1/P5,2)+P6*math.log(1/P6,2)\n",
+ "#Entropy of system\n",
+ "\n",
+ "#Result\n",
+ "print('1. Entropy of system H = %.2f bits/message ' %H)\n",
+ "R=H*r #R=Entropy*message rate\n",
+ "print(' 2. Information rate R = %.f bits/sec ' %R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Entropy of system H = 1.94 bits/message \n",
+ " 2. Information rate R = 31 bits/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.51, Page No 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Calculate H(X) ,H(Y)\n",
+ "\n",
+ "#Variable Declaration\n",
+ "px1=0.3\n",
+ "px2=0.4\n",
+ "px3=0.3\n",
+ "\n",
+ "#Calculation\n",
+ "HX=px1*math.log(1/px1,2)+px2*math.log(1/px2,2)+px3*math.log(1/px3,2) #Entropy of X\n",
+ "\n",
+ "\n",
+ "print(' 1.Entropy of X H(X)=%.3f bits/symbol ' %HX)\n",
+ "\n",
+ "PYX=[[0.8, 0.2, 0],[ 0, 1, 0],[ 0, 0.3, 0.7]]\n",
+ "PX=[[px1, px2, px3]]\n",
+ "PXY = [[0,0,0],\n",
+ " [0,0,0],\n",
+ " [0,0,0]]\n",
+ "\n",
+ "for i in range(len(PYX)):\n",
+ " # iterate through columns of PXd\n",
+ " for j in range(len(PX[0])):\n",
+ " # iterate through rows of PYX\n",
+ " for k in range(len(PX)):\n",
+ " PXY[i][j] += PYX[i][k] * PX[k][j]\n",
+ "\n",
+ "py1=PXY[0][0]\n",
+ "py2=PXY[0][1]\n",
+ "py3=PXY[0][2]\n",
+ "HY=py1*math.log(1/py1,2)+py2*math.log(1/py2,2)+py3*math.log(1/py3,2) #Entropy of Y\n",
+ "print(' 2. Entropy of Y H(Y)= %.2f bits/symbol ' %HY)\n",
+ "print('Approximation error')\t\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1.Entropy of X H(X)=1.571 bits/symbol \n",
+ " 2. Entropy of Y H(Y)= 1.51 bits/symbol \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.52, Page No 513"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source ,entropy of second order extension\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P1=0.7\n",
+ "P2=0.15\n",
+ "P3=0.15\n",
+ "\n",
+ "#Calculation\n",
+ "HX=P1*math.log(1/P1,2)+P2*math.log(1/P2,2)+P3*math.log(1/P3,2) #Entropy of source\n",
+ "print(' 1. Entropy of system H(X)=%.2f bits/symbol ' %HX)\n",
+ "#H(X^n)=n*H(X)\n",
+ "n=2 #for second order\n",
+ "HX2=n*HX\n",
+ "\n",
+ "#Result\n",
+ "print(' 2. Entropy of second order system extension of source can be H(X^2)=%.2f bits/symbol ' %(HX*2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1. Entropy of system H(X)=1.18 bits/symbol \n",
+ " 2. Entropy of second order system extension of source can be H(X^2)=2.36 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.54, Page No 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "S0=1/3.0\n",
+ "S1=1/6.0\n",
+ "S2=1/4.0\n",
+ "S3=1/4.0\n",
+ "\n",
+ "#Calculation\n",
+ "HX=S0*math.log(1/S0,2)+S1*math.log(1/S1,2)+S2*math.log(1/S2,2)+S3*math.log(1/S3,2) #EntroSy of source\n",
+ "\n",
+ "#Result\n",
+ "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy of system H(X)=1.96 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.56, Page No 515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Information capacity of telephone\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=3.4*10**3\n",
+ "SNR=30.0\n",
+ "\n",
+ "#Calculation\n",
+ "SN=10**(SNR/10)\n",
+ "C=B*math.log(1+SN,2) #Information capacity\n",
+ "C=C/1000\n",
+ "\n",
+ "#Result\n",
+ "print(' Information capacity of telephone is C = %.2f kbps ' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Information capacity of telephone is C = 33.89 kbps \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.59, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "S0=1/3.0\n",
+ "S1=1/6.0\n",
+ "S2=1/4.0\n",
+ "S3=1/4.0\n",
+ "\n",
+ "#Calculation\n",
+ "HX=S0*math.log(1/S0,2)+S1*math.log(1/S1,2)+S2*math.log(1/S2,2)+S3*math.log(1/S3,2) #EntroSy of source\n",
+ "\n",
+ "#Result\n",
+ "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy of system H(X)=1.96 bits/symbol \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.60, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "m1=1/2.0\n",
+ "m2=1/4.0\n",
+ "m3=1/8.0\n",
+ "m4=1/16.0\n",
+ "m5=1/16.0\n",
+ "\n",
+ "#Calculation\n",
+ "L=(m1*1)+(m2*2)+(m3*3)+(2*(m4)*4)\n",
+ "\n",
+ "#Result\n",
+ "print(' Average number of bits per message =%.2f bits ' %L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Average number of bits per message =1.88 bits \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.61, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find Information capacity of telephone\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=3.4*10**3\n",
+ "SNR=30.0\n",
+ "\n",
+ "#Calculation\n",
+ "SN=10**(SNR/10)\n",
+ "C=B*math.log(1+SN,2) #Information capacity\n",
+ "C=C/1000\n",
+ "\n",
+ "#Result\n",
+ "print(' Information capacity of telephone is C = %.2f kbps ' %C)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Information capacity of telephone is C = 33.89 kbps \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.62, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "p1=4.0\n",
+ "m1=0.5\n",
+ "m2=0.5\n",
+ "m3=0.375\n",
+ "m4=0.375\n",
+ "m5=0.375\n",
+ "m6=0.375\n",
+ "\n",
+ "#Calculation\n",
+ "I1=p1*math.log(1/p1,2) \n",
+ "HX=m1*math.log(1/m1,2)+m2*math.log(1/m2,2)+m3*math.log(1/m3,2)+m4*math.log(1/m4,2)+m5*math.log(1/m5,2)+m6*math.log(1/m6,2) #EntroSy of source\n",
+ "\n",
+ "#Result\n",
+ "print(' Entropy of system H(X)=%.2f bits/symbol ' %HX)\n",
+ "print('Approximation error')\t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy of system H(X)=3.12 bits/symbol \n",
+ "Approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.65, Page No 519"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find entropy of source \n",
+ "\n",
+ "#Variable Declaration\n",
+ "S0=1/2.0\n",
+ "S1=1/4.0\n",
+ "S2=1/8.0\n",
+ "S3=1/8.0\n",
+ "n=1\n",
+ "\n",
+ "#Calculation\n",
+ "H=S0*math.log(1.0/S0,2)+S1*math.log(1.0/S1,2)+S2*math.log(1.0/S2,2)+S3*math.log(1.0/S3,2) #EntroSy of source\n",
+ "L=H*n\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(' Code length =%.2f bits/messages ' %L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Code length =1.75 bits/messages \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.67, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find channel capacity and new bandwidth\n",
+ "\n",
+ "#Variable Declaration\n",
+ "B=8*10**3\n",
+ "SNR=31.0\n",
+ "SNR2=61\n",
+ "\n",
+ "#Calculation\n",
+ "C=B*math.log(1+SNR,2) #Information capacity\n",
+ "B2=C/math.log(1+SNR2,2)\n",
+ "#Result\n",
+ "print(' Channel capacity is C = %.2f x 10^3 bits/sec ' %(C/1000))\n",
+ "print(' New Bandwidth is C = %.2f x kHz ' %(B2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Channel capacity is C = 40.00 x 10^3 bits/sec \n",
+ " New Bandwidth is C = 6.72 x kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/ChapterNo9.ipynb b/Digital_Communications/ChapterNo9.ipynb
new file mode 100755
index 00000000..8062105c
--- /dev/null
+++ b/Digital_Communications/ChapterNo9.ipynb
@@ -0,0 +1,182 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1> Chpater No 9: ERROR CONTROL CODING<h1>"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find detected errors,corrected errors\n",
+ "\n",
+ "#initialisation of variables\n",
+ "dmin=5.0\n",
+ "#(s+1)<= dmin number errors can be detected(s)\n",
+ " \n",
+ "#CALCULATIONS\n",
+ "s=dmin-1\n",
+ "\n",
+ "#RESULTS\n",
+ "print(' i)Number of detected errors s <= %.f ' %s)\n",
+ "#(2t+1)<=dmin number errors can be corrected(t)\n",
+ "t=(dmin-1)/2.0\n",
+ "print('ii) Number of corrected errors t<= %.f ' %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " i)Number of detected errors s <= 4 \n",
+ "ii) Number of corrected errors t<= 2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.17, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine all possible code vectors \n",
+ "\n",
+ "m3=1\n",
+ "m2=0\n",
+ "m1=1\n",
+ "m0=0\n",
+ "#M=Message Matrix\n",
+ "#G=Generator Matrix\n",
+ "G=[[1, 0, 1, 1, 0, 0, 0],[0, 1, 0, 1, 1, 0, 0],[0, 0, 1, 0, 1, 1, 0],[0, 0, 0, 1, 0, 1, 1]]\n",
+ "M=[[m3,m2,m1,m0]]\n",
+ "X = [[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0]]\n",
+ "\n",
+ "for i in range(len(G)):\n",
+ " # iterate through columns of PXd\n",
+ " for j in range(len(M[0])):\n",
+ " # iterate through rows of PYX\n",
+ " for k in range(len(M)):\n",
+ " X[i][j] += G[i][k] * M[k][j]\n",
+ "print('The required code word')\n",
+ "for r in range(0,7):\n",
+ " print(X[0][r])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required code word\n",
+ "1\n",
+ "0\n",
+ "1\n",
+ "0\n",
+ "0\n",
+ "0\n",
+ "0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.19, Page No 572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine code word \n",
+ "m3=1\n",
+ "m2=0\n",
+ "m1=1\n",
+ "m0=0\n",
+ "#M=Message Matrix\n",
+ "#G=Generator Matrix\n",
+ "G=[[1, 0, 0, 0, 1, 0, 1],[0, 1, 0, 0, 1, 1, 1],[0, 0, 1, 0, 1, 1, 0],[0, 0, 0, 1, 0, 1, 1]]\n",
+ "M=[[m3,m2,m1,m0]]\n",
+ "X = [[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0]]\n",
+ "\n",
+ "\n",
+ "for i in range(len(G)):\n",
+ " # iterate through columns of PXd\n",
+ " for j in range(len(M[0])):\n",
+ " # iterate through rows of PYX\n",
+ " for k in range(len(M)):\n",
+ " X[i][j] += G[i][k] * M[k][j]\n",
+ "print('The required code word')\n",
+ "for r in range(0,7):\n",
+ " print(X[0][r] )\n",
+ " \n",
+ "\n",
+ "print('The code in the book is wrong')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required code word\n",
+ "1\n",
+ "0\n",
+ "1\n",
+ "0\n",
+ "0\n",
+ "0\n",
+ "0\n",
+ "The code in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Digital_Communications/README.txt b/Digital_Communications/README.txt
new file mode 100755
index 00000000..cb9038a1
--- /dev/null
+++ b/Digital_Communications/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Mayur Sabban
+Course: be
+College/Institute/Organization: Vishwakarma Institute of Technology Pune
+Department/Designation: Computer Engg
+Book Title: Digital Communications
+Author: S. Sharma
+Publisher: S. K. Kataria & Sons, New Delhi
+Year of publication: 2013
+Isbn: 9789350142684
+Edition: 6 \ No newline at end of file
diff --git a/Digital_Communications/screenshots/Chapter1.png b/Digital_Communications/screenshots/Chapter1.png
new file mode 100755
index 00000000..ecbda1c6
--- /dev/null
+++ b/Digital_Communications/screenshots/Chapter1.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter2.png b/Digital_Communications/screenshots/chapter2.png
new file mode 100755
index 00000000..cfb39197
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter2.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter2_1.png b/Digital_Communications/screenshots/chapter2_1.png
new file mode 100755
index 00000000..4eac12f5
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter2_1.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter2_2.png b/Digital_Communications/screenshots/chapter2_2.png
new file mode 100755
index 00000000..2aa76318
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter2_2.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter2_3.png b/Digital_Communications/screenshots/chapter2_3.png
new file mode 100755
index 00000000..2aa76318
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter2_3.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter3.png b/Digital_Communications/screenshots/chapter3.png
new file mode 100755
index 00000000..bd8ace20
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter3.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter3_1.png b/Digital_Communications/screenshots/chapter3_1.png
new file mode 100755
index 00000000..b59f5a6f
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter3_1.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter3_2.png b/Digital_Communications/screenshots/chapter3_2.png
new file mode 100755
index 00000000..9e929daa
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter3_2.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter3_3.png b/Digital_Communications/screenshots/chapter3_3.png
new file mode 100755
index 00000000..9e929daa
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter3_3.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter4.png b/Digital_Communications/screenshots/chapter4.png
new file mode 100755
index 00000000..9160481e
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter4.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter4_1.png b/Digital_Communications/screenshots/chapter4_1.png
new file mode 100755
index 00000000..230f9193
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter4_1.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter4_2.png b/Digital_Communications/screenshots/chapter4_2.png
new file mode 100755
index 00000000..31a0c9c2
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter4_2.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter4_3.png b/Digital_Communications/screenshots/chapter4_3.png
new file mode 100755
index 00000000..31a0c9c2
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter4_3.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter6.png b/Digital_Communications/screenshots/chapter6.png
new file mode 100755
index 00000000..47807122
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter6.png
Binary files differ
diff --git a/Digital_Communications/screenshots/chapter7.png b/Digital_Communications/screenshots/chapter7.png
new file mode 100755
index 00000000..12c93548
--- /dev/null
+++ b/Digital_Communications/screenshots/chapter7.png
Binary files differ
diff --git a/ELECTRIC_MACHINERY/.ipynb_checkpoints/chapter7-checkpoint.ipynb b/ELECTRIC_MACHINERY/.ipynb_checkpoints/chapter7-checkpoint.ipynb
deleted file mode 100755
index c5e8eebf..00000000
--- a/ELECTRIC_MACHINERY/.ipynb_checkpoints/chapter7-checkpoint.ipynb
+++ /dev/null
@@ -1,473 +0,0 @@
-{
- "metadata": {
- "name": ""
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 7: DC Machines"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.1, Page number: 371"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "from math import *\n",
- "\n",
- "#Variable declaration:\n",
- "Vt=[128, 124] #Terminal voltage(V)\n",
- "Ea=125 #Generated emf(V)\n",
- "Ra=0.02 #Armature resistance(ohm)\n",
- "n=3000 #rpm\n",
- "\n",
- "\n",
- "#Calculations:\n",
- "#For 128 V\n",
- "Ia1=(Vt[0]-Ea)/Ra\n",
- "Pin1=Vt[0]*Ia1\n",
- "Pe1=Ea*Ia1\n",
- "wm=3000*2*pi/60\n",
- "Tmech1=Ea*Ia1/wm\n",
- "\n",
- "#for 124 V\n",
- "Ia2=(-Vt[1]+Ea)/Ra\n",
- "Pin2=Vt[1]*Ia2\n",
- "Pe2=Ea*Ia2\n",
- "Tmech2=Ea*Ia2/wm\n",
- "\n",
- "\n",
- "\n",
- "#Results:\n",
- "print \"(a) Armature current:\",Ia1,\"A\",\"\\n Terminal power:\",Pin1/10**3,\"kW\"\n",
- "print \" Electromagnetic power:\",round(Pe1/10**3,2),\"kW\"\n",
- "print \" Torque:\",round(Tmech1,1),\"Nm\"\n",
- "\n",
- "print \"(b) Armature current:\",Ia2,\"A\",\"\\n Terminal power:\",Pin2/10**3,\"kW\"\n",
- "print \" Electromagnetic power:\",round(Pe2/10**3,2),\"kW\",\n",
- "print \"\\n Torque:\",round(Tmech2,1),\"Nm\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Armature current: 150.0 A \n",
- " Terminal power: 19.2 kW\n",
- " Electromagnetic power: 18.75 kW\n",
- " Torque: 59.7 Nm\n",
- "(b) Armature current: 50.0 A \n",
- " Terminal power: 6.2 kW\n",
- " Electromagnetic power: 6.25 kW \n",
- " Torque: 19.9 Nm\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.2, Page number: 372"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "\n",
- "#Variable declaration:\n",
- "Vt=123 #terminal voltage(V)\n",
- "Pt=21.9 #Terminal power(kW)\n",
- "Ra=0.02 #ohm\n",
- "Eao=125 #generated voltage(V) at 3000rpm\n",
- "no=3000 #rpm\n",
- "\n",
- "\n",
- "#calculations:\n",
- "Ia=Pt*10**3/Vt\n",
- "Ea=Vt-Ia*Ra\n",
- "n=(Ea/Eao)*no\n",
- "\n",
- "#Results:\n",
- "print \"Speed of motor:\",round(n,0),\"rpm\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Speed of motor: 2867.0 rpm\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.3, Page number: 376"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "\n",
- "#Variable declaration:\n",
- "Il=400 #Armature current(A)\n",
- "If=4.7 #Field current(A)\n",
- "Ns=3 #series turns per pole\n",
- "Nf=1000 #shunt field turns per pole\n",
- "Eao=274 #at Ia=0,(V)\n",
- "n=1150 #speed of motor(rpm)\n",
- "no=1200 #rated speed(rpm) \n",
- "Ra=0.025 #armature resistance(ohm)\n",
- "Rs=0.005 #series field resistance(ohm)\n",
- "\n",
- "\n",
- "#Calculations:\n",
- "Is=Il+If\n",
- "GM=If+(Ns/Nf)*Is #for graphical analysis\n",
- "Ea=(n/no)*Eao\n",
- "Vt=Ea-Is*(Ra+Rs)\n",
- "\n",
- "#Results:\n",
- "print \"Terminal voltage at rated terminal current:\",round(Vt,0),\"V\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Terminal voltage at rated terminal current: 250.0 V\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.4, Page number: 377"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "\n",
- "#Variable declaration:\n",
- "Il=400 #Armature current(A)\n",
- "If=4.7 #Field current(A)\n",
- "Ns=3 #series turns per pole\n",
- "Nf=1000 #shunt field turns per pole\n",
- "Eao=261 #at Ia=400 A,(V)\n",
- "n=1150 #speed of motor(rpm)\n",
- "no=1200 #rated speed(rpm) \n",
- "Ra=0.025 #armature resistance(ohm)\n",
- "Rs=0.005 #series field resistance(ohm)\n",
- "\n",
- "\n",
- "#Calculations:\n",
- "Ea=(n/no)*Eao\n",
- "Vt=Ea-(Il+If)*(Ra+Rs)\n",
- "\n",
- "#Results:\n",
- "print \"Terminal voltage:\", round(Vt,0), \"V\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Terminal voltage: 238.0 V\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.5, Page number: 378"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "\n",
- "#Variable declaration:\n",
- "Il=400 #Armature current(A)\n",
- "If=4.7 #Field current(A)\n",
- "Ns=3 #series turns per pole\n",
- "Nf=1000 #shunt field turns per pole\n",
- "Eao=269 #at Ia=400 A,(V)\n",
- "n=1150 #speed of motor(rpm)\n",
- "no=1200 #rated speed(rpm) \n",
- "Ra=0.025 #armature resistance(ohm)\n",
- "Rs=0.007 #series field resistance(ohm)\n",
- "\n",
- "#Calculations:\n",
- "Is=Il+If\n",
- "GM=If+(Ns/Nf)*Is #for graphical analysis\n",
- "Ea=(n/no)*Eao\n",
- "Vt=Ea-Is*(Ra+Rs)\n",
- "\n",
- "#Results:\n",
- "print \"Terminal voltage at rated terminal current:\",round(Vt,0),\"V\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Terminal voltage at rated terminal current: 245.0 V\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.6, Page number: 381"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "from sympy import *\n",
- "\n",
- "\n",
- "#Variable declaration:\n",
- "Ns=4 #Series field turns\n",
- "Nf=1000 #Shunt field turns\n",
- "Vt=250 #Full load voltage(V)\n",
- "#for part (a):\n",
- "Ia=400 #Armature current(A)\n",
- "Ra=0.025 #Armature resistance(ohm)\n",
- "\n",
- "#for part (b):\n",
- "Rs=0.005 #Added sries resistance(ohm)\n",
- "Vo=250 #No load voltage(V)\n",
- "If=5 #field current at full load(A)\n",
- "\n",
- "\n",
- "#Calculations & Results:\n",
- "\n",
- "#for part (a)\n",
- "V1=Ia*Ra\n",
- "\n",
- "#for part (b):\n",
- "Ia1=Ia+If\n",
- "Rs,Rd=symbols('Rs Rd') #Rd= diverter resistance(ohm)\n",
- "Rp=Rs*Rd/(Rs+Rd) # -------(i)\n",
- "Is=Ia1*(Rd/(Rs+Rd))\n",
- "Inet=If+(Ns/Nf)*Is\n",
- "Ea=Vt+Ia*(Ra+Rp) # -------(ii)\n",
- "\n",
- "#from equation (ii)\n",
- "Rp=Rs(Inet-5.0)/1.62 \n",
- "R_d=0.0082 #R_d=Rd(say), using (i)\n",
- "print \"(a) The operating terminal voltage = 205 V\", Inet\n",
- "print \"(b) Rd =\", R_d,\"ohm\"\n",
- "print \"\\tHence, by this process, resistance across the series field\" \n",
- "print \"\\t(referred to as a series-field diverter) can be adjusted \"\n",
- "print \"\\tto produce the desired performance. \""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) The operating terminal voltage = 205 V 1.62*Rd/(Rd + Rs) + 5\n",
- "(b) Rd = 0.0082 ohm\n",
- "\tHence, by this process, resistance across the series field\n",
- "\t(referred to as a series-field diverter) can be adjusted \n",
- "\tto produce the desired performance. \n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.7, Page number: 383"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- " \n",
- "#Variable declaration:\n",
- "Ia=400 #Armature current(A)\n",
- "n1=1200 #rpm\n",
- "n2=1100 #rpm\n",
- "Ra=0.025 #armature resistance(ohm) \n",
- "Eo=250 #no load armature voltage(V)\n",
- "del_n=1.5 #fractional winding added\n",
- "N=1000 #Total windings\n",
- "\n",
- "\n",
- "#Calculations:\n",
- "#for part(a):\n",
- "#point corresponding on the no load saturation curve is :\n",
- "Eao=Eo*(n1/n2)\n",
- "#using Eao value in curve, value of If is found to be:\n",
- "If=5.90 #Field current(A)\n",
- "Ea=Eo-Ia*Ra\n",
- "#From Fig. 7.14\n",
- "Ea1=261\n",
- "n=n1*(Ea/Ea1)\n",
- "Pe=Ea*Ia\n",
- "Pl=2000 #No load Rotational loss(W)\n",
- "Po=(Pe-Pl)/(1+0.01)\n",
- "\n",
- "#for part (b):\n",
- "If1=If+del_n/N\n",
- "#From Fig. 7.14 the corresponding value of Ea at 1200 r/min would be 271 V.\n",
- "Ea2=271 #volts\n",
- "n22=n1*(Ea/Ea2)\n",
- "\n",
- "\n",
- "#Results:\n",
- "print \"Part(a):\"\n",
- "print \"Required speed =\",round(n),\"r/min\"\n",
- "print \"Output power =\", round((Po/746),1),\"hp\"\n",
- "print \"\\nPart (b):\"\n",
- "print \"Required speed =\",round(n22),\"r/min\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a):\n",
- "Required speed = 1103.0 r/min\n",
- "Output power = 124.8 hp\n",
- "\n",
- "Part (b):\n",
- "Required speed = 1063.0 r/min\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.9, Page number: 389"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "from math import *\n",
- "\n",
- "#Variable declaration:\n",
- "V1=50 #terminal voltage(V)\n",
- "Ia=1.25 #Armature current(A)\n",
- "Ra=1.03 #Armature resistance(ohm)\n",
- "n1=2100 #speed at 50V(rpm)\n",
- "V2=48 #terminal voltage at 1700 rpm (V)\n",
- "n2=1700 #speed at 48 V(rpm)\n",
- "\n",
- "\n",
- "\n",
- "#Calculations:\n",
- "#for (a):\n",
- "Ea1=V1-Ia*Ra\n",
- "wm1=n1*2*pi/60\n",
- "Km=round(Ea1/wm1,2)\n",
- "\n",
- "#for part(b):\n",
- "Prot=Ea1*Ia\n",
- "\n",
- "#for part(c:)\n",
- "wm2=n2*2*pi/60\n",
- "Ea2=Km*wm2\n",
- "Ia2=(V2-Ea2)/Ra\n",
- "Pmech=Ea2*Ia2\n",
- "Pshaft=Pmech-Prot\n",
- "\n",
- "#Results:\n",
- "print \"(a) Torque constant:\",round(Km,2),\"V/(rad/s)\"\n",
- "print \"(b) No-load rotational losses of the motor:\",round(Prot,0),\"W\"\n",
- "print \"(c) The power output of the motor:\",round(Pshaft,2),\"W\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Torque constant: 0.22 V/(rad/s)\n",
- "(b) No-load rotational losses of the motor: 61.0 W\n",
- "(c) The power output of the motor: 275.05 W\n"
- ]
- }
- ],
- "prompt_number": 3
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/ELECTRIC_MACHINERY/chapter1.ipynb b/ELECTRIC_MACHINERY/chapter1.ipynb
index 30ec42e7..3eaa70a1 100755
--- a/ELECTRIC_MACHINERY/chapter1.ipynb
+++ b/ELECTRIC_MACHINERY/chapter1.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:29b5ec9b20f222bcfeb31d6e80f55e5d32272a4cce1e9227a6328e93313e209d"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -210,28 +211,19 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
"The reqired plot is shown below:\n"
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['streamplot', 'rc', 'tri', 'axes', 'sinh', 'legend', 'trunc', 'rc_context', 'figure', 'f', 'quiver', 'tan', 'axis', 'cosh', 'degrees', 'radians', 'fmod', 'expm1', 'ldexp', 'linalg', 'exp', 'draw_if_interactive', 'text', 'random', 'colors', 'stackplot', 'frexp', 'ceil', 'contour', 'isnan', 'copysign', 'cos', 'fft', 'tanh', 'colorbar', 'fabs', 'sqrt', 'rcdefaults', 'hypot', 'table', 'power', 'gamma', 'log', 'log10', 'info', 'log1p', 'floor', 'modf', 'test', 'pi', 'isinf', 'e', 'sin']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEXCAYAAABRWhj0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XdcE/f/B/BPgKDsPRMgCMgQwcEQrZq6cIILGYo4QVvb\n2lqrVq046qjab221Fq1Wq7KcjMoo1ah1gAqtAwcowbAUGbKFJPf7w9+1+ebLCEgY8no+Hvcwl3zu\n7n0fuXvffT43GBRFEQAAAFkodHYAAADQfSBpAACAzJA0AABAZkgaAAAgMyQNAACQGZIGAADIrEsl\nDR6PxzUzMxN0xLKeP39uNGLEiMuampoVK1eu3Cn9+9KlS/dv2bJlXVvmfeTIkXnDhw+/8vZRQlMU\nFBTET58+7dOWaU+cODHb09Mzqb1j6q5a2u4ktwXpso6OjvcuX748oj3iaGmbfFdxOBz+H3/8Mbqz\n45CVUmcH0Fbz5s07YmZmJti8efP6tkx/4MCBYENDwxcVFRWajf2+f//+pW8X4dvjcDj8w4cPLxg1\natSFzo6lu+Lz+Zw+ffo8FQqFSgoKCmJCCJk9e/aJ2bNnn+js2LqL5raFe/fuOdKfQ0NDQ588eWJ1\n7NixwLYsp6VtsrWOHDkyb+HChYdUVVVr6O8YDAb1+PHjvsbGxkXtsYz2wGAwKAaD0eob5hoaGpj+\n/v4Rt2/fHpybm2tx8eLF90eOHHmpqfJcLpeXmprqrqSkJCSEEDabnffgwQP71i63S51pdKTc3FwL\ne3v7B50dR3MYDAZFURSjs+PoaEKhsN0PZrpbPYrF4h63bb7NNtnU38ywYcOuVlZWatBDRUWFZldK\nGG9rxIgRl48fPz7H2Ni4qKXEw2AwqH379n1I10VbEgYhhBCKojp0sLCw4G/btm21g4PDfR0dndL5\n8+cfrqur60VRFLl48SKXzWYL6LKZmZn2I0eO5Glra5f169fvXmxs7BSKokhYWFgwk8msV1ZWfq2u\nrl7p5eUV09iyrl69OtTFxeWmlpZWuaura9q1a9c8KIoiQUFBRySn/+OPP0ZJTxsUFHRk3bp1m+m4\nWCxW3u7duz8zNDR8bmJiUvDLL7/Mo8u+fPlSb8qUKbGampqv3NzcUtetW7f5vffeu0JRFMnJyeEw\nGAyxSCRSoMuPHDmS9/PPPy+kxw8cOLDY3t4+U0NDo8LBweF+enr6wDlz5hxTUFAQqaio1Kirq1fu\n3Lnzc4qiyMyZM08aGxsXamlplY8YMeLS/fv3HSRj/uCDD/ZNmjQpXkNDo8Ld3f3GkydP+tC/37t3\nr9+YMWN+19XVLTEyMiraunXrGoqiiEgkUti2bdtqKyurbD09vZezZs2KKi0t1WmsTu3s7B7Ex8dP\noscbGhqU9PX1izMyMgbU1tb2nj179nE9Pb2X2traZa6urmnPnz83bOlvgq6jQ4cOLTA3N88dOXIk\nj6IocujQoQX29vaZOjo6pZ6enom5ubnm9DQMBkNMr1t8fPykAQMGZGhqar4yMzN7FhoauoEuZ2Zm\n9ozBYIjV1dUrNTQ0Kq5fvz7kl19+mUf//yxZsmT/559/vlMyHi8vr5hvv/32U4qiSH5+vun06dNP\nGxgYvLC0tHz6/ffff9TUegQFBR0JCQn5aezYsckaGhoVI0eO5EnG/ODBAzu6/m1tbR9GR0f7SE67\nZMmS/RMmTDivpqZWlZKSMtrCwoK/c+fOz/v3739HXV29csGCBYeKioqMxo8fn6CpqflqzJgxv5eV\nlWnT87h+/foQDw+Pa9ra2mXOzs5/8Xi8kfRvhw8fnk//jfXp0+dJWFhYMP0bvd1t3bp1jb6+fjGH\nw8k5ceJEQFPbguQ2amFhwU9JSRmdkJAwXllZ+TWTyaxXV1evHDBgQMbJkydnDh48+JZkHe3evfsz\nb2/vc43VnfQ2+fr1a+VPPvnkO1NT03xTU9P85cuX/+f169fKktvkjh07vjA2Ni6cO3fuUel5Sv4/\nSw/Z2dlWurq6Jenp6QPp/2d9ff3iS5cujZClvlgsVt4333yz0sDA4IWJiUnB2bNnp/72228TbWxs\nHuvq6pZs27ZtNV1+w4YNoTNmzDjl6+sbqaGhUTFo0KDbf//9txP9O4fDyaH3QWKxmCHrtig5sNls\nAR17UwOXy70oud9p69ApSaN///538vLyWKWlpTrDhg37s7E/yPr6eqaVlVX2tm3bVjc0NChduHDh\nfQ0NjYpHjx71pSiKzJs375f169dvamo5JSUlutra2mXHjx+fLRKJFCIiIvx0dHRK6f+AlqaX/P3i\nxYtcJSWlhg0bNoQKhULF8+fPT1BVVa0uLy/XoiiK+Pr6Rvr6+kbW1NSo3Lt3rx+LxcobPnz4ZYpq\nPGlwudyLhw4dWkBRFImOjvZhsVh5t27dGkz/MdM7Gsk/JskNoaqqSq2+vp65fPny/wwYMCBDcsPT\n09N7efPmTRehUKg4e/bs435+fhEURZGKigoNY2Pjwm+//fbT169fK1dWVqqnpqa6URRFvvvuu088\nPDyu5efnm9bX1zNDQkJ+8vf3D2+sXjZt2rR+9uzZx+nx+Pj4SQ4ODvcpiiI//fRTyJQpU2Jra2t7\ni8ViRnp6+sCKigqNlv4m6DoKCgo6UlNTo1JbW9v73Llz3tbW1lkPHz60FYlEClu2bFk7dOjQq/Q0\nkkmDx+ONvHfvXj+KosidO3f6GxkZFZ07d86boijC5/MtpOtfcmdy+fLl4WZmZs/o30pLS3VUVFRq\nCgsLjUUikcKgQYNub968eV1DQ4PS06dPLfv06fMkKSlpXGPrERQUdERDQ6PiypUr79E7PHo5VVVV\namw2W3DkyJEgkUikkJGRMUBfX784MzPTnp5WS0urnD6wqaur68XhcHI8PDyuvXjxwiA/P9/U0NDw\n+cCBA9P/+usv57q6ul6jRo36Y+PGjV9RFEXy8vJYenp6LxMSEsZTFEV+//33MXp6ei9fvnypR1EU\n+e233yY+ffrUkqIocunSpRGqqqrV9A6T/vtesWLFrvr6eualS5dGqKmpVT1+/NimsW1BMmlI/o2G\nhoZuCAwM/JX+7fXr18q6urolDx48sKO/GzBgQMaZM2emtbTNURRF1q9fv8nDw+NacXGxfnFxsf7Q\noUOvSm+Tq1ev3lZfX8+sra3tLT2/5pIGRVHk4MGDixwcHO7X1NSojBs3LmnlypXf0L/JUl+bN29e\nJxQKFQ8ePLhIT0/vZUBAwImqqiq1+/fvO6ioqNTw+XwLinqTNJhMZv3p06enC4VCxV27dq2wtLR8\nKhQKFaXrsDXbouQga9IwMDB4oa+vXzxs2LA/JQ8qWjN0eNLgcDg5kln7/PnzE6ysrLKl/yAvX748\n3NjYuFByWn9//3D6KFLy6Kex4ddffw10d3e/Ifmdh4fHtSNHjgTRf6DNTS/5+8WLF7kqKio1kjse\nQ0PD56mpqW5CoVCRyWTW08mMoijy5Zdfft3cmYZk0hg3blxSU0evjSUNyaGsrEybwWCI6R3zvHnz\nflm8ePEBybq1s7N7QFEUCQ8P9x80aNDtxuZjb2+fKbmcgoICEyaTWS8ZMz1kZ2dbaWhoVNAbaUBA\nwInNmzevo6g3R2dDhw69eufOnf6t+Zug6ygnJ4dDfzd+/PgEuo4o6s3ZkKqqavWzZ8/MKOq/k4b0\n8Mknn3z36aeffttU/UvuTMRiMcPc3Dz38uXLwynqzVnf6NGjUyiKIjdu3HA3NzfPlZz31q1b18yf\nP/9wY8sNCgo6IrmBV1VVqSkqKgoFAgE7MjLSlz6QoIfg4OAweqcfFBR0JCgo6Ij0/394eLg/PT5j\nxoxTH3zwwT56/Icfflg2derUsxRFke3bt6+S3GFTFEU8PT0Tjx49OrexWKdOnXp2z549H9N/30pK\nSg01NTUq9O+zZs2Kov9fpbeFppLGhg0bQufMmXNMcjlLlizZv3bt2i0U9eZMV0dHp7S+vp7Z0jZH\nURSxsrLKppMgRVEkKSlpHIfDyaHjUFZWfk2feTQ2/PLLL/OUlJQatLW1y+jB2to6S7KMl5dXjKOj\n411nZ+e/moqrsfpSUVGpEYvFDIp6c0DGYDDEaWlprnT5wYMH34qJifGi68XDw+Ma/ZtYLGaYmJgU\n/Pnnn8Ok67A126LkIEvSSE1NdaMPOI8ePTpXQ0OjoqltqLmhU9pNJa++MDc3f1ZQUGAqXaagoMBU\n+ooOCwuLXLpsS+13BQUFpubm5s+amr619PT0SuiOVEIIUVVVramqqlIvLi42EAqFStLrJOt88/Ly\n2FZWVk9kKSsWixVWr1693draOltLS+uVpaVlDiGEvHz5Up8uY2Rk9Jz+rKKiUltVVaVOCCECgcCs\nT58+TxubL5/P50ybNu2sjo5OmY6OTpmDg0OmkpKS8Pnz50bSZa2srJ7Y29s/iI2N9aqpqVGNi4ub\nEhAQEE4IIYGBgcc8PT2T/Pz8IlksVv6qVat2tKZ/QrIOc3NzLT755JM9dEx6enolhBCSn5/Pkp4u\nNTXV/f33379oaGj4QltbuzwsLCykpKRET5ZlMhgMys/PLzIiIsKfEELCw8MD6E7y3Nxci4KCAlM6\nBh0dnbJt27atefHihWFT82Kz2Xn0uJqaWrWurm5pQUGBaW5urkVqaqq75LzCw8MD6DpmMBhUY1cw\nSf9/So737t27jv7/zc3NtTh58qSP5PyvXr06rKioyJgQQhISEiYMGTLkhp6eXomOjk7Z+fPnJ0rW\nkY6OTpmKikotPW5hYZFbWFhoIksdNicoKOhoeHh4ACGEHDt2LNDX1zeKyWQ2yDJtQUGBqYWFRS49\nLr2vMDAwKFZWVq5vbh5Dhgy5UVZWpkMPWVlZNpK/L1q06Of79+/3++ijj36QjKul+tLT0yuh90F0\nvTW17RHyptOZ/kz/nTS2L2rNtthabm5uaWpqatVMJrNh7ty5vw4bNuzq+fPnJ7Z2Pp2SNJ49e2Yu\n+dnU1LRAuoypqWmBQCAwoyQ6MHNzcy1YLFY+IS0nDRaLlZ+bm2sh+Z3k9LKQ5YoGAwODYiUlJaH0\nOtGf1dTUqgkhpKamRpX+jt6QCXmzo8zOzraWZfknTpyYHRsb6/XHH3+MfvXqlVZOTo4lIbJ18pqb\nmz9r6hJVc3PzZ4mJieMlN66amhpVExOTwsbK+/v7R0RERPjHxMR49+vX7z6djJSUlIRfffXVpvv3\n7/e7du3a0Pj4+Mm//vrr3JZia2x9zc3Nnx04cCBYMqbq6mq1IUOG3JCeLiAgIHzq1Knn8vLy2OXl\n5dpLliz5ie5IluX/0N/fP+LUqVMzc3NzLdLS0txmzJhxmo7B0tIyRzKGiooKzfj4+MmNzYeiKIZA\nIDCjx6uqqtRLS0t1WSxWvrm5+bORI0dekpxXZWWlxr59+z6UtX7oZTT2vbm5+bPAwMBj0vP/4osv\nvnn9+nWvGTNmnP7iiy++efHihWFZWZnOxIkTz0vOi/4/p8dzc3MtJLdLWeqxsTJDhgy5oaysXH/5\n8uURERER/oGBgcdkXVdTU9MCPp/Pocel9xVtueJIUlVVlfry5cu/W7Ro0c8bNmzYWFZWpkMIIbLU\nV2tJ/l2IxWKFvLw8dmP7vdZui52hw5MGRVGMH3/88YP8/HxWaWmp7tdff73Wz88vUrqcu7t7qqqq\nas0333zzRUNDA5PH43Hj4+Mn02WNjIyeN3ed/sSJE88/fvy4b0REhL9QKFSKioryffjwod3kyZPj\n6ThailOWPxJFRUXR9OnTz4SGhobW1taqZGZmOhw9ejSI/t3AwKCYxWLlHzt2LFAkEikePnx4wZMn\nT6zo3xctWvTzrl27Pk9PTx9EURQjOzvbmk46RkZGzyXLVlVVqffq1eu1rq5uaXV1tdqXX365VTrm\npuKcNGnSb4WFhSZ79uz55PXr170qKys10tLS3AghZMmSJT99+eWXW+nlFhcXG8TGxno1NS8/P7/I\npKQkz59++mkJfZZByJtr+O/evdtfJBIpamhoVDKZzAZFRUVRS3XYmCVLlvy0devWLzMzMx0IIeTV\nq1daJ0+e9GmsbFVVlbqOjk6ZsrJyfVpamlt4eHgAvUMxMDAoVlBQEEvWo7QBAwb8pa+v/3LRokU/\njx8/PlFTU7OCkDdHZhoaGpXffPPNF7W1tSoikUjx3r17jrdu3XJpal7nz5+fePXq1WH19fXK69ev\n3+zh4XGdxWLlT5o06bfHjx/3PX78+JyGhgZmQ0MD8+bNm64PHz60I+Ttr+6aM2fO8bi4uCnJycnj\nRCKRYl1dXW8ej8fNz89n1dfXK9fX1yvr6+u/VFBQECckJExITk4eJz2PDRs2bGxoaGBeuXJl+G+/\n/TbJx8fnJB2bLPEZGxsX8fl8jnTZwMDAY8uWLdurrKxcP3To0GtNTS89nb+/f8SWLVvWvXz5Uv/l\ny5f6mzZt+qo1Sacln3zyyR43N7e0AwcOBE+aNOm3JUuW/EQIIbLWV2vcvn178NmzZ6cJhUKl7777\nbnnv3r3rGjsAau22+Pr16151dXW9pT9Le/XqlVZSUpJnXV1db6FQqHTixInZV65cGT5+/PjE1q5L\nhycNBoNBBQQEhI8bNy7ZysrqiY2NTda6deu2SP5OCCHKysr1cXFxUxISEiYYGBgUL1u2bO+xY8cC\n+/bt+5gQQhYuXHgoMzPTQUdHp2z69OlnpJejq6tbGh8fP3n37t0r9PX1X+7atevz+Pj4ybq6uqX0\ncpo7UpH+vbmye/fuXVZVVaVubGxctGDBgsMLFiw4LFn+4MGDi3fu3LlSX1//ZWZmpsOwYcOu0r/N\nnDnz1Nq1a78OCAgI19TUrJg+ffoZ+ohnzZo127Zs2bJOR0en7Ntvv/1s7ty5v1pYWOSyWKx8R0fH\nex4eHtelY5SOkx7X0NCo/P3338fGxcVNMTExKezbt+9jHo/HJeTNxuPl5RU7bty4ZE1NzQoPD4/r\ndEJpjLGxcdHQoUOvXb9+3cPX1zeK/r6oqMjYx8fnpJaW1isHB4dMLpfLozfypUuX7l+6dOn+5upb\ncnzq1KnnVq1atcPPzy9SS0vrVf/+/e8mJSV5Nlb+xx9//OCrr77apKmpWbF58+b1kjGpqqrWrF27\n9uthw4Zd1dXVLU1NTXVvrJ4CAgLCL1y4MEoyCSooKIjj4+Mn//XXXwP69Onz1MDAoDg4OPhAU/cR\n0H/bGzdu3KCnp1eSkZEx8Pjx43Po+k9OTh4XGRnpx2Kx8k1MTArXrFmzrb6+XpmetrVH85LTsNns\nvJiYGO+tW7d+aWho+MLc3PzZ7t27V1AUxdDQ0Kj8/vvvP541a1a0rq5uaUREhL+3t3eM5HxNTEwK\n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\nbHYei8XKz8vLY0t+393ud7l27drQ2NhYL0tLyxx/f/+ICxcujAoMDDzWE+uCzWbnsdnsPFdX15uE\nEDJz5sxT6enpg4yNjYt6Wl3cunXLZejQodf09PRKlJSUhNOnTz9z/fp1j55YF7T22CbofSmLxcp/\n9uyZOSFvDlZevXqlpaurW9rc8rts0pDlPo/ujqIoxsKFCw85ODhkLl++/Dv6ey8vr9ijR48GEULI\n0aNHg+hk4uXlFRsZGelXX1+vnJOTY5mVlWXj5uaWZmxsXKSpqVmRmprqTlEU49ixY4H0NN3F1q1b\nvxQIBGY5OTmWkZGRfqNGjbpw7NixwJ5YF8bGxkVmZmaCx48f9yWEkJSUlDH9+vW7P2XKlLieVhd2\ndnYPb9y4MaS2tlaFoihGSkrKGAcHh8yeWBe09tgmvL29Y6TnderUqZmjR4/+o8UAOruTp7nh/Pnz\nE/r27fvIysoqe+vWrWs6O572Hq5cufIeg8EQOzs7/zVgwICMAQMGZCQkJIwvKSnRHT16dEpjl9R9\n/fXXX1pZWWXb2to+TExM9KS/py+ps7Kyyv7oo4++7+x1e5uBx+ONpK+e6ql18ddffzm7uLjcdHJy\n+nvatGlnysvLtXpqXezYseML+pLbuXPnHq2vr2f2lLrw8/OLMDExKWAymfVsNltw+PDh+e257nV1\ndb18fHyi6Utuc3JyOC3FxKCoHtkUCAAAbdBlm6cAAKDrQdIAAACZIWkAAIDMkDQAAEBmSBrQrKKi\nImM/P79Ia2vrbBcXl1uTJk36LSsry6az4lFXV69q7vdXr15p7d+/fyk9XlBQYOrj43NS/pF1nqbq\nZMOGDRsvXLgwihBCuFwuLz09fRAhhEyaNOm3iooKTem6ApBJZ19ShqHrDmKxmDFkyJDrYWFhwfR3\nf//9t9OVK1fek2X6hoYGpbYsk37IWmODurp6ZXPTSz+np6sMIpFIQV7zbqlOKIoiXC734u3btwd1\nRl0JhULFzq5/DO034EwDmnTx4sX3lZWV64ODgw/Q3zk5Od157733/iSEkJUrV+7s37//XScnpzvR\n0dGzCCGEx+Nxhw8ffsXb2zvG0dHxnlgsVli5cuVONze3NGdn578PHDgQLL0cPp/PsbW1fRQUFHS0\nf//+dwUCgdnOnTtX0tOEhoaGSk9TVVWlPmbMmJTBgwffdnJyuhMbG+tFCCGrV6/e/uTJE6uBAwdm\n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\nDQAAkNn/ASu6P4PfImgPAAAAAElFTkSuQmCC\n",
"text": [
- "<matplotlib.figure.Figure at 0x31b54d0>"
+ "<matplotlib.figure.Figure at 0x2a2ba10>"
]
}
],
- "prompt_number": 4
+ "prompt_number": 1
},
{
"cell_type": "heading",
diff --git a/ELECTRIC_MACHINERY/chapter10.ipynb b/ELECTRIC_MACHINERY/chapter10.ipynb
index 4bfe5a8d..2bcd2ccb 100755
--- a/ELECTRIC_MACHINERY/chapter10.ipynb
+++ b/ELECTRIC_MACHINERY/chapter10.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:603160d56b04457665b7cf5381387c06e4c52903d6f85f1c61a983bdc3c14ebc"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -104,31 +105,23 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "The required plots are shown below:"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
+ "The required plots are shown below:\n"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "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\nOE6H/T8o9Q6nwzgdWAAAAABJRU5ErkJggg==\n",
+ "png": "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\n",
"text": [
- "<matplotlib.figure.Figure at 0x7f054c060710>"
+ "<matplotlib.figure.Figure at 0x25c1f10>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "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\nEREB+P84YbaUtpWtuAAAAABJRU5ErkJggg==\n",
+ "png": "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\n",
"text": [
- "<matplotlib.figure.Figure at 0x2986d90>"
+ "<matplotlib.figure.Figure at 0x3529b90>"
]
}
],
@@ -180,34 +173,19 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['fmod', 'sinh', 'trunc', 'tan', 'gamma', 'cosh', 'radians', 'modf', 'expm1', 'ldexp', 'linalg', 'random', 'frexp', 'ceil', 'isnan', 'copysign', 'cos', 'degrees', 'tanh', 'fabs', 'sqrt', 'hypot', 'power', 'log', 'log10', 'info', 'log1p', 'floor', 'fft', 'pi', 'exp', 'isinf', 'e', 'sin']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\nYII=\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEXCAYAAACtTzM+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlUE1f7B/AbNgVZAgIJCBjEogRBNnEpShQRF7DggmKL\n4EbfWmtdfm6tllhbxVrrWvuqL1W0RaVuVRQFlYC7RUFUqhYlgJiwrwKyZH5/6LQxBUQlJJDv55w5\nJ5PM3HnmJpknc++dCYOiKAIAAKCm6AAAAEA5ICEAAAAhBAkBAABeQkIAAABCCBICAAC8hIQAAACE\nECQEueLz+fzg4OD9io6jve3duzd06NChFxUdhypat27dijlz5uyWR9l6enqVQqGQ8zbr8ng8QWRk\n5Kw2DgnamMomBA6HIzx//ryXPLfBYDA65EUeoaGhe1etWrWmudeFQiFHTU1NIpFIlPLzU1FRob9g\nwYLNPXv2zNbT06vs3bt35sKFCzcVFxd3V3RsLXnTHxACgYBnaWmZK/3cihUr1u3evXtO20dHSGVl\npR6HwxG+zboMBoN61+9DU/urDDpTslPKL3R7aIsPqDJoaGjQkH2usbFRXRGxKIO6ujotLy+v83/+\n+afd2bNnfSorK/WuXr062NjYuOjGjRvuio4POp/OciwhhBBCUZRKThwOJ+v8+fMjZJ+vra3t8vnn\nn282NzfPMzc3z1uwYMGm58+fa1EURUpLS5njxo2LNTExKTA0NCzx9fU9+eTJkx70uo8fP7YeNmxY\nkp6eXoW3t3f8vHnztn300Uf7m4vh+PHjH/Tv3z9NX1+/3MbGJvPs2bOjKIoiPXv2FJ47d86LXi48\nPJxPl5OVlcVhMBiSyMjImVZWVtnDhg1L2rt3b8iQIUMuL1y48Ifu3bsXrVq16uvnz59rLV68+Hsr\nK6tsFosl/s9//vNTTU1NV4qiSGJiIq9Hjx5PNm7cuMjU1DTfzMzs6Z49e0IpiiI7d+4M09TUrNPS\n0nquq6tbOX78+N9l46ZjaGxsVKMoihQVFXX38/M7oa+vX+7u7n595cqVazw8PC7Sy9+9e9d+5MiR\nCUZGRsUsFku8du3aFbJlXrt2bSCbzRZJJBIG/dzRo0cDHB0db1MURa5fv+7u6uqaoq+vX85iscSL\nFi3a2FSd7t69ezaLxRI/e/ZMp7l6z8jIsPP09BQwmcxSe3v7uydOnPCjXwsJCdn7ySef7BgzZsxp\nXV3dSg8Pj4sikYg9f/78LUwms7Rv375/pqamOtHL9+zZU7hhw4b/c3BwSNfV1a2cOXNmpFgsZo0e\nPTpOX1+/fOTIkQmlpaVMut4tLCxypWOh3+u4uLjRWlpazzU1Net0dXUrnZycUimKIj///PMMOzu7\nDD09vYpevXo92rlzZxhFUaSqqqpb165da9TU1Bp1dXUr9fT0Kp4+fWrW1GclKipqupWVVbaxsXHh\nt99++wW97erqau3p06dHGRoaltjZ2WWsX79+qWx80hODwZA8evSoF11Pc+fO/XHcuHGxenp6FQMH\nDrxGv0ZRFImPj/fu06fPfQMDg7J58+Zt8/T0FERGRs6U/Tw39XkqLi42Cg0N3WNubp5naGhYEhAQ\ncPTZs2c6svsrEonY169fdx80aNBVJpNZamZm9nTevHnb6urqNKVj/u9///vxe++995DJZJZ++umn\n26X3adeuXXPo+uVyufdu3brlTFEUycvLM58wYcIRExOTAmtr68dbt279rLl64fF4ifS+SU81NTVd\nP/zww1+6d+9exGQySwcMGHAjPz/fVNHHvpYmhQegqKm5hLBq1aqvBw8efKWwsNC4sLDQeMiQIZdX\nrVr1Nf1BPXr0aEBNTU3XyspK3cmTJ8f4+/sfo9cdNGjQ1cWLF39fV1enmZycPFRPT68iODh4X1Pb\nv379uruBgUEZfeDPy8szv3//fp+mYuPz+eGyX/KQkJC91dXV2jU1NV337NkTqqGhUb99+/ZPGxsb\n1WpqarouWLBg0wcffHC8tLSUWVlZqevn53dixYoVaynqxYFJQ0OjPjw8nN/Q0KB++vTpMTo6Os/K\nysoMKIoioaGhe+h9bmqS/QJPmTLl4JQpUw5WV1dr3717175Hjx5Phg4dmkxRFKmoqNBjs9miH374\nYeHz58+1Kisrda9fv+7eVLk2NjaZCQkJI+n5SZMm/bZ+/fqldN3+8ssvH1IURZ49e6Zz7dq1gU2V\nMWXKlIOhoaF7mou9rq5O08bGJnPdunXL6+vrNS5cuDBcT0+v4sGDB7YU9eJAZ2xsXHjr1i3n2tra\nLiNGjDjfs2dP4f79+z+SSCSMlStXrhk+fPgF6c/R4MGDrxQUFJjk5eWZm5qa5js7O99KS0vrT6+/\nevXqr+h6lz3gSr/XfD4/XPbzcurUqbGPHz+2piiKJCUlDdPR0XlGH7QEAoGnbHlNfVbCwsJ21tbW\ndrl9+7Zjly5daunP2bJlyyJ4PF5iWVmZwZMnT3o4ODikW1pa5jRXd7IJoXv37kV//PGHW0NDg/qH\nH374y9SpUw9QFEUKCwuN9fT0Ko4cOTKhoaFBfdOmTQs0NDTq6YOmdIxNfZ7Gjh17aurUqQfKysoM\n6uvrNZKTk4c2t783b950uX79untjY6OaUCjsaWdnl7F58+bPpWP28/M7UV5erp+Tk2NpYmJScObM\nGR+KokhMTMzkHj16PElJSXGlKIpkZmbaZGdnWzU2Nqq5uLjcXLNmzcr6+nqNx48fW/fq1esR/YNN\ndmouIfz3v//92M/P70RNTU1XiUTCuHXrlnNFRYWeoo99LU0KD0BRU3MJwcbGJjMuLm40PX/27NlR\nHA4nq6kyUlNTnQwNDUsoiiLZ2dlWGhoa9dXV1dr069OmTfu1uTOEsLCwnc39ypWNralffVlZWRz6\n9T179oRaWVll0/MSiYTRrVu3KulfbFeuXBlsbW39mKJeHJi0tbWr6S8gRVHE1NQ0nz5Qh4aG7lm5\ncuWa5upO+gvc0NCgrqmpWUcfUCmKIl988cW39BlCdHR0kIuLy83WvCcrV65cM3PmzEiKepFIunXr\nVpWTk2NJURQZNmxYUnh4OL+wsNC4pTK8vb3j6cTX1JScnDyUzWaLpJ8LCgqK5vP54RT14kAXFha2\nk35t27Zt87hc7j16Pj093YHJZJZKv1fR0dFB9PzEiRMPz50790fp9ekfDa9LCLK/nJua/P39j23Z\nsmV+c+U19VnJy8szp193d3e/fujQoUCKokivXr0excfHe9Ov/e9//5vV2jOE0NDQPXPmzNlFv3b6\n9Okxffv2/ZOiKBIVFTV98ODBV6TXtbCwyG3NGcLTp0/N1NTUGukfJ9JTU/srO23atGlBQEDAUemY\nL1++PISeDwwMPET/yBg1atTZpn75X7t2baD094miKLJ27doVM2bM+LmpbTaXEH7++ecZQ4YMuZye\nnu7Qms+/Mkwq24fQnKdPn5r37Nkzm563srLKefr0qTkhhFRXV+t8/PHHOzkcjtDAwKDc09Mzqby8\n3ICiKMbTp0/NDQ0NS7W1tWvodaXLkfXkyRMLGxubR28bp2znmvR8YWGhSXV1tY6rq+tNQ0PDUkND\nw9IxY8bEFRUVGdPLdO/evVhNTU1Cz+vo6FRXVVXpvmkchYWFJg0NDRrS27eyssqhH+fm5lr26tXr\ncWvKmjZtWvTRo0cn1NXVaR09enSCq6vrTbrcyMjIWQ8fPrS1s7P7093d/capU6fGNVVG9+7di+n3\nqylPnz41l627nj17ZtPrMBgMytTUtIB+rWvXrrXS89ra2jWy9cRisfKlX5ee79q1a+3b1CstLi5u\nzKBBg65179692NDQsPT06dNj37RznM1mi+nH0u+zbF1YWFg8eZNyZfdbulzZslrbGZybm2tpZGRU\nYmBgUN6a5R8+fGjr6+sba2ZmJjIwMCj/8ssvv5Wtn+b2v7nvYHZ2dk/6+0xP69atW1FQUGDampho\nwcHB+318fM5OnTr1YI8ePfKWLVu2vqk+P2WChCDD3Nz8qfTQupycHKsePXrkEULIxo0bFz98+ND2\nxo0b7uXl5QZJSUmeFEUxKIpimJmZiUpLSw2rq6t16HWzs7N7NtfZZGlpmZuZmdm7qde6dev27Nmz\nZ93oebFYzJZdRrZc6XljY+MibW3tmoyMDG5paalhaWmpYVlZGbOiokK/NXXwJh1kJiYmhRoaGg05\nOTlW9HPSj62srHIeP37cqzVl2dnZ/dmzZ8/suLi4MdHR0dOmTZsWTb/Wu3fvzOjo6GmFhYUmy5Yt\nWz9p0qTDNTU12rJljBw58tzZs2d9pN8Haebm5k9zc3MtKYpi0M9lZ2f3pN/jtiBdtrRu3bo9k46r\nsbFRvbCw0ISel63358+fd5k4ceKRpUuXfldQUGBaWlpqOHbs2NN0+U29T2/y3pmZmYlyc3Mt6Xnp\nx++CrmN6nqIohvS8rq5ulXQ9SH++LS0tc0tKSozKy8sNZMttat8++eSTn7hcbkZmZmbv8vJyg2+/\n/fbL1o5+a+47aGVllWNtbZ1Ff3dKS0sNKyoq9GNjY31bUy5NQ0Oj4auvvvr63r179leuXBkSGxvr\nu2/fvulvUkZ7U+mEUFdXp1VbW9uVnhoaGjSCgoIOfPPNNyuLioqMi4qKjL/++uuvPvroo18IIaSq\nqkpXW1u7xsDAoLykpMRo9erV4XRZPXv2zHZzc0sJDw9fXV9fr3np0iWPlj5As2bNityzZ8+MCxcu\njJBIJGp5eXk9Hjx40IcQQpycnNIOHjw4taGhQSMlJcXtyJEjE9/ki66mpiaZM2fO7gULFmymDzh5\neXk94uPjR7VmfRaLlS97EA8NDd07Y8aMPbLLqqurN06YMOEon8/n19TUaGdkZHCjoqJC6HjHjRt3\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x2c18b90>"
+ "<matplotlib.figure.Figure at 0x2ce0f10>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "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\nAElFTkSuQmCC\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEXCAYAAACqIS9uAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XdcU1f/B/ATAsoIIyAIyAiCgymIoDjjYFTFalF/OECx\nytM66qpVWy1YLWJdRfvYp/hYnGgddaCCiBInTkAUaxUkMgRlDxFZ9/eHz7UphRAgIYH7eb9e9/Xi\nJjfnnHsC3xy+99wTFkVRBAAAmENJ3g0AAID2hcAPAMAwCPwAAAyDwA8AwDAI/AAADIPADwDAMAj8\nIBWZmZlmmpqa5RRFseTdFlECgYBvamqaJe92MM21a9eG9e3b94m82wGNQ+CXssjIyOkDBgy4p6mp\nWW5sbPxy7Nix52/cuDFE3u0SRygU8pSUlOrr6+sl/n3g8XjCy5cvj6L3zczMMsvLyzVZLJbUbwyZ\nPXv23rVr166XdrktwefzBXv27PlUnm1oSJE+1JSUlOqfP3/ek94fNmzYtSdPnvSVR93QPAR+Kdq2\nbduypUuXbl+zZs2G169fG2RlZZkuWLDg32fOnJkg77ZJoiWjdRaLRbXX6J7FYlGy+EBpaRvkWX9H\nIM//9hTtP02FR1EUNilsJSUl2hwOp/z48eM+TR1TVVXVdfHixT8aGxvnGBsb5yxZsmT7u3fvulAU\nReLj4/k9evTI/uGHH1bo6+u/NjIyenny5MmJ586dG9urV6+nurq6hRs3blxFlxUUFBQ8efLkYzNn\nzjygqalZZm9vn/L06dNeISEhqw0MDF6ZmZm9iI2NdaePNzc3F8bFxY0Wff3MmTMPUBRFTE1NM1ks\nVj2HwynncDjlt27dGpiWlmY5cuTIy3p6egXdunXLnzFjxsGSkhJtiqLIzJkzDygpKdWpqalVcjic\n8s2bN3+ZkZHBY7FY9XV1dUoURZERI0YI1q5d+92QIUOua2pqlnl4eFwoKCjQo+vft2+fv5mZ2Qs9\nPb2C9evXr2nYPtFt9uzZEWvWrFlPURSh66Ff361bt/zvv//+a/rYyspKtVmzZu3lcrlFNjY2qT/8\n8MMKExOTLPp5FotVn56e3pPenzVr1l66bIqiyKlTpz7u169fspaWVqmlpWVaTEyM59dff/09m82u\nVVVVfcvhcMoXLVq0g6Io8sUXX4SZmppmamlplTo7O9+7du3aUNH+nTJlylF/f/99mpqaZba2to/u\n3bvnTD+fmZlpOmnSpN/19fVf6+npFSxcuHAn/dyePXvmWFtbP+ZyuUWenp4xL168MGusX+Lj4/mi\n5ya6nTt3bqyNjU2qpqZmWY8ePbK3bNmyvLHfR21t7ZJHjx7Z0o+9fv1aX01NrTI/P79bfn5+t3Hj\nxp3V0dEp1tXVLRw2bNjV+vp6VsNyhg0bdpXFYtVraGhUcDic8qNHj05p2DZzc3Ph5s2bv7S3t0/h\ncDjlc+bM2ZOXl9fdy8srWktLq3TMmDEXi4uLdejjExISBrm5ud3U0dEp7tevX7JAIBjR2Hk2VndT\n76O8Y4QibXJvQGfZoqOjvZSVlWvowNfYtnbt2u/c3Nxu0n9UgwcPvrF27drvKOr9H7GysnLN+vXr\n19TW1rJ37949V09Pr2D69OmHKioqNFJTU23U1NQqhUKhOUW9DyyqqqpvY2Nj3Wtra9n+/v77zM3N\nhSEhIavp11tYWDyn6+bxeBmXLl0aRe8HBwcH0YFfKBSaiwZtiqJIWlqaZVxc3Ojq6mqV/Pz8bsOH\nD7+yZMmS7U2V11jgt7Kyevbs2TOrt2/fqvL5/PhVq1ZtpCiKpKam2nA4nPIbN24Mrq6uVvnyyy83\nq6ioVIuWJ7o1FvgDAwN/qaqq6vrgwQOHrl27Vj158qQPRVFk5cqVocOHD79SXFysk5WVZWJra/vI\n1NQ0ky6rYeCfPXt2BP0e3L5921VbW7uE/gDKyckxpsvl8/nxe/bsmSParoMHD84oKiri1tXVKW3d\nunWZoaFhLv1BTr8/0dHRXvX19azVq1eHDBo0KIGiKFJbW8t2cHB4sGzZsq2VlZVqVVVVXa9fvz6E\not4HLCsrq2dPnjzpU1dXp7Rhw4ZvBg8efKOxfhEX+A0NDXPpMktKSrQTExOdGjtuzpw5e7755psN\n9P5PP/204KOPPjpPURRZtWrVxs8+++zn2tpadm1tLZsur7GtYb82bBuPx8twc3O7+fr1a/2cnBxj\nAwODV05OTonJycn9qqqquo4aNerSunXrvqUoimRnZ/fQ09MriI6O9qIoily8eHGMnp5eQX5+fjdJ\n6hb3PmJ7v8m9AZ1lO3jw4AxDQ8NcccdYWlqm0b/MFEWRCxcuePB4vAyKev+HoqamVkmPqMrKyjRZ\nLFb9nTt3XOjjnZ2d750+fXoCRb0PLB4eHhfo586cOePN4XDKG76+tLRUi6L+GahFR/wNg3Zj28mT\n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\njYyMXqqoqFSbmJhk/frrrwHizv3777//2tLSMq1Pnz5PYmJiPCWpg0VRjEyTAQAwFr6BCwCAYRD4\nAQAYBoEfAIBhEPgBABgGgb+TysvLM/T19T1iZWWVNmDAgHvjxo079+zZs17ybtfp06c/luS7lxse\nFxQUtO7SpUujpdGGcePGnSsrK9OS9HihUMizt7d/2Jq6rly5MiIhIcGtNa9tK4FAwPf29o4Sdwyf\nzxf07dv3ydmzZ8e3pGwOh1Mhur93797ZixYt2kkIIdu3b19qbm7+gt4HxSOzZZlBfiiKYk2aNOlk\nQEBAxJEjR3wJISQlJcXh1atX3Xv16vVMnm07efLkJG9v76jmluhueNy6deuCpNWGc+fOjZNWWc2J\nj48fqampWe7m5pbQXnW2BIvFoiIjI6f3798/saWva2p/6dKl23V1dYvu3bs3QFrtBOnCiL8Tio+P\nH9mlS5fqwMDAcPoxBweHlKFDh14nhJAVK1Zstre3f+jg4JBy9OjRqYS8Hx2OGDHiysSJE09ZWlqm\nr1q1KvTAgQN+rq6udxwcHFKeP3/ekxBCZs+evXf+/Pm73NzcEiwtLdMFAgF/1qxZ+2xsbB4HBARE\n0PWJjgiPHz8+OSAgICIhIcEtKirKe8WKFZv79++f+Pz58567d++e5+rqesfR0TF58uTJx9++fat2\n8+bNwQ2Pmz179t4TJ074EEIIj8cTBgcHBzs7O993cHBI+fPPP/sQQkh+fr6+u7v7RTs7u0fz5s3b\nzePxhEVFRboN+4d+XCgU8qytrf8IDAwMt7Oze+Tp6XmhqqpKlRBC7t+/79yvX78Hjo6Oybt27ZpP\nv1Z0ZEsIIePHjz975cqVEYQQEhMT4+Xs7Hzf0dEx2d3d/eKLFy/Mf/nll39t3759qZOTU9L169eH\nnj17dvygQYNu9e/fP9Hd3f3i69evDQghJDg4OHjOnDm/jhw5Mt7S0jJ9586di+g69u/f70+3xd/f\nfz99rpMnTz7u6up6x9XV9c7NmzcHt/b3hRJZLoPP5wuWLVu2zcXF5a61tfUfd+/edZk0adLJ3r17\nP127du16ScpobB8UjLxvVsAm/S0sLOyLpUuXbmvsuePHj/u4u7vH1tfXs169emVgZmb2Ijc31zA+\nPp6vo6NTnJeX1/3du3ddjI2Nc4KCgoLp8pYsWbKdoigya9asvdOmTYukKIqcPn16gqamZtmjR49s\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x2981fd0>"
+ "<matplotlib.figure.Figure at 0x33b4a90>"
]
}
],
@@ -315,26 +293,11 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['fmod', 'cosh', 'sinh', 'trunc', 'tan', 'gamma', 'degrees', 'radians', 'sin', 'expm1', 'ldexp', 'isnan', 'frexp', 'ceil', 'copysign', 'cos', 'tanh', 'fabs', 'sqrt', 'hypot', 'log', 'log10', 'pi', 'log1p', 'floor', 'modf', 'exp', 'isinf', 'e']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\nhNj0/wELMsFZawmOEgAAAABJRU5ErkJggg==\n",
+ "png": "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\naasJxC5MEkiw3nzzzbWXL18eGB4eXrhy5cp1V69e7a9dYZqenj5vypQph8aNG3c0MDCwPC0t7eUP\nPvjg9YiIiILHH3/8l5qaGlcAgMuXLw9MTEzMioyMPDty5MifLl68+LCh99Lo7KyZkpKSMnfu3F0j\nR478KSAgQHXw4MGnX3/99Q+GDh1anJiYmNXc3GyrjS8kJOR8aGjouRUrVrwPAFBVVdVv+vTpX0dF\nReVFRUXlnTp1ajhA2x48ycnJO4cOHVocGhp67uDBg08z3X4IAQBZK67xC7968qVSqfrrnrNQXl4e\noL3euXPnvKCgoLJ79+45VVVV9e3du/fdLVu2KDUaDSxduvTDDRs2LNFoNPDEE08cKysrC9JoNHD6\n9OnHnnjiiWP090lJSXnngw8+WK69fuedd1JiY2N/am5ulpw7d26og4PD/ezs7Cc1Gg1MnTr14KFD\nhybfvn3b/eGHH76g/Z27d+/21mg0MHv27D0nT54codFo4OrVqw8NGTKkVKPRwBtvvLFu6dKlH2qf\nr7tqOC4u7nh+fn4E1+2NX8L8suU6SSHEFI2JffNHjx593MnJqd7JyaleJpPVTpw4MRMAQKFQlBQX\nFw+tr693OnXq1HDdcYzGxkapqfelKEqTmJiYJZFIWh555JH/tra22jz55JP/1r62SqUKmDBhwnf2\n9vYP5s+fv33ChAnfTZgw4TsAgO+//37sr7/+OkT7WnV1dS719fVOx44dG7N3796/aB/HY30RWzBJ\nINHq1avXn9rvbWxsWrXXNjY2rc3Nzbatra02rq6uNYWFheE9fW2pVNqofS07O7sm3fdpbm62lUgk\nLXl5eVHHjh0b8/XXX09PS0t7+dixY2M0Gg115syZx7S/r8tU0kOICTgmgQTLxcWlTrtTbk9oP4xd\nXFzqAgMDy7/++uvp2seLi4uHWiO2+vp6p9raWlliYmLWhx9+uOzcuXOhAADjxo07+vHHH7+qfZ72\n8fj4+JxPPvnkJe3jYjxICHEDkwQSLHd39+oRI0b8rFAoSlauXLlO98AZ+uEz9O+117t3707avn37\n/LCwsKJHHnnkv99+++2k7ry3sdfWXtfV1blMnDgxMzQ09FxsbOyJjz76aCkAwMcff/zq2bNnI0ND\nQ8+FhISc37Jly0IAgLfeeuvdmpoaV4VCURIWFlaUm5sbZ0HTINRtuAssQhZKTU19x9nZ+R5XJ8CN\nHj36+Pr165dHREQUcPH+SNjwTgIhCzk7O9/75z//qeRqMV15eXmg7rgHQtaEdxIIIYSMwjsJhBBC\nRmGSQAghZBQmCYQQQkZhkkAIIWQUJgmEEEJG/X/qpZ9Op7tT3QAAAABJRU5ErkJggg==\n",
"text": [
- "<matplotlib.figure.Figure at 0x1e16bd0>"
+ "<matplotlib.figure.Figure at 0x2594cd0>"
]
},
{
@@ -361,9 +324,9 @@
{
"metadata": {},
"output_type": "display_data",
- "png": "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\nCCHEqf8PfsUAKezuFf4AAAAASUVORK5CYII=\n",
+ "png": "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\nYII=\n",
"text": [
- "<matplotlib.figure.Figure at 0x2983e10>"
+ "<matplotlib.figure.Figure at 0x37f8250>"
]
}
],
diff --git a/ELECTRIC_MACHINERY/chapter11.ipynb b/ELECTRIC_MACHINERY/chapter11.ipynb
index 9ebe0bd6..308afbf5 100755
--- a/ELECTRIC_MACHINERY/chapter11.ipynb
+++ b/ELECTRIC_MACHINERY/chapter11.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:4aa0be3787a5262658b58d5130a82adad92353bb1944b3902dc15e9d5045fa75"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -147,6 +148,7 @@
"from __future__ import division\n",
"%matplotlib inline\n",
"from math import *\n",
+ "from pylab import *\n",
"\n",
"#Variable declaration:\n",
"Rf=109 #Field resistance(ohm)\n",
@@ -197,28 +199,19 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
"The plot is as shown:\n"
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['Polygon', 'seterr', 'poly', 'cosh', 'ldexp', 'hypot', 'flatten', 'conjugate', 'diff', 'tan', 'Circle', 'roots', 'plot', 'isnan', 'eye', 'trace', 'fabs', 'floor', 'diag', 'invert', 'nan', 'modf', 'sqrt', 'frexp', 'source', 'add', 'degrees', 'take', 'var', 'zeros', 'prod', 'log10', 'plotting', 'product', 'exp', 'power', 'multinomial', 'copysign', 'transpose', 'expm1', 'ceil', 'test', 'beta', 'ones', 'isinf', 'sinh', 'vectorize', 'sign', 'trunc', 'cos', 'pi', 'e', 'f', 'tanh', 'det', 'radians', 'mod', 'binomial', 'solve', 'log', 'fmod', 'reshape', 'sin', 'log1p', 'gamma', 'interactive']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAEZCAYAAAC5AHPcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVOX+wPHPDO7ivmACSqmp4KDjmiU6ikpi5oIk4HLT\n/Gmbad66WfdW2CJloVfretMstYuau2WkaSqmlkuIC1ouBMpg7pbiBjjP74+J47DDwLB+368Xr2bO\nnDnnmePEl+d8n+f76JRSCiGEEKKA9CXdACGEEGWTBBAhhBB2kQAihBDCLhJAhBBC2EUCiBBCCLtI\nABFCCGEXCSCizDCZTHz22Wcl3QwBJCQkoNfrsVgsJd0UUYIkgIg8bdu2jc6dO1OzZk3q1q3LQw89\nxM8//1zs7dDpdOh0OoefJzk5GWdnZ/z9/R1+rsw8PDzYtm1bsZ+3sCS4V0wSQESurly5wuDBg5k2\nbRrJyclcvHiR9957j2rVqpV00xxmzZo1NGvWjKioKM6fP5/jfmlpaUV+bp1OR2Hm9t69e7cIW5N/\nxRHYRekjAUTk6tdff6VKlSoMHz4cnU5H5cqVMZlMtGvXDoDFixfzyCOPMGnSJOrXr4+HhweRkZHa\n+y9fvkxwcDD169enYcOG/P3vf89w2+Ojjz7Cw8OD2rVr06tXL+Li4rTXvv76a5o3b079+vWZNGkS\nSqlsf7mePXuWGjVqcPXqVW1bTEwMjRo14u7du/zyyy88/PDDODs706BBAwIDA3P9zEuWLGH8+PE8\n8sgjREREZHjNw8ODmTNn0r59e2rXrk1cXBx6vZ7FixfTvHlzGjRowCeffML+/ftp3749zs7O/N//\n/Z/2/ri4OHx8fKhfvz516tQhICBAa/fo0aM5c+YMgwYNolatWnz44YdERUXh7u6epQ3pvZTQ0FCG\nDx/O6NGjqVevHkuWLMnzmuf3ulksFl599VVcXFyoW7cugYGBGfYFUErxz3/+k507d/L8889Tq1Yt\nXnjhBQCee+45XF1dcXZ2xmAwsHXrVu19N27cIDAwkFq1auHl5cXMmTMzfM6EhAT8/f2pW7cu9913\nH++//36u/2aihCghcnH16lVVp04dNXbsWLVp0yZ16dKlDK8vWrRIVapUSf33v/9VSim1fv16VatW\nLXX+/HmllFL9+vVTzz33nLpz5466cuWK6tatm5o9e7ZSSqmlS5eqVq1aqd9++00ppVRYWJjq0KGD\nUkqppKQk5ezsrL755hullFLz5s1TlSpVUp999lm27ezTp4/69NNPtecvvfSSeuaZZ5RSSg0bNkzN\nmDFDKaVUamqq2rt3b46fNyEhQTk5OanExES1YMEC5e3tneF1Dw8P1bVrV3XhwgWVkpKi4uPjlU6n\nU5MmTVJpaWlq69atqkqVKmrYsGHq6tWrKikpSTVp0kRt3rxZKaVUXFyc+uGHH7Rr6+vrqyZOnJjh\n+Fu3btWeb9++Xbm5uWVpQ/o+b775pqpWrZrauHGjUkqp27dv53rNC3LdPvroI9WmTRuVlJSkbt26\npYKCglRAQIBSSmmf++7du0oppUwmU5Z/mxUrVqjr168rpZT6+OOPVb169dStW7eUUkq98MILqn//\n/io5OVlduHBBdezYUbm7uyullEpLS1Nt2rRRYWFh6u7duyoxMVE98MADat26dTn+u4mSIQFE5OnI\nkSNq1KhRytXVVen1ejVgwAD1+++/K6WsAaRZs2YZ9u/Ro4f69NNPVUJCgqpatar2S0MppZYtW6a6\nd++ulMr6S+fu3buqRo0a6vjx42r+/PmqZ8+eGY7r4eGRYwBZuHCh6tOnj1JKKYvFotzd3dXOnTuV\nUkqNGTNGTZw4USUlJeX5Wd9++22tfZcuXVKVKlVSMTExGdoQERGhPU//RXr27FltW6NGjdTKlSu1\n54GBgeqDDz7I9nwbNmxQbdu2zXD8ggaQvn37aq/ldc0zy+26Pfzww2rhwoXavr/99puqVKmSunnz\nZrYBxHbf7DRs2FDt27dPKaVU06ZN1fbt27XXlixZon3OqKioLN+pGTNmqODg4FyPL4qf3MISeWrX\nrh3/+9//MJvNHD9+nEuXLvHcc89pr7u6umbY383NjfPnz5OUlERqair33Xcf9erVo169ejz99NP8\n+eefAJjNZiZPnqy91qBBAwAuXrzIxYsXsz1uToYNG8ZPP/3EuXPn+OGHH9Dr9fTo0QOA9957j5SU\nFLp06ULbtm1ZsGBBjsf54osvtFtcDRo0wGQysWTJkgz73HfffVne5+Lioj2uWrVqlud37tzRPvOw\nYcO020LBwcHcuHEjx/bkR5MmTbTHZrM512ueWW7X7cKFCzRr1kzb193dnbt373Lp0qVsj5U5D/L2\n22/TqlUr6tSpQ7169bhy5QrJycnasW3/fW0fm81mzp49q7W/Xr16hIWF8ccffxTwyghHq1TSDRBl\nS8uWLRk7dixz5szRtiUlJWXYJzExkb59+9KkSROcnZ25cuVKtknW++67j7CwMIYPH57ltWPHjrF5\n8+YM28xmc47tqlevHv3792fFihUcO3aM4ODgDOf5/PPPAfjpp5/o3bs3JpOJBx98MMMxfvzxR06d\nOsU777zDzJkzAbh+/TqHDx8mPDwcvd7+v7fSP/+0adOoXbs2p06dolatWnzzzTc888wzWfZLV6VK\nFW7evKk9t1gsWfIQtvK65pnldt1cXFw4ffq09jwxMRG9Xk/Dhg2zDC7IfK7vv/+eefPmsWPHDu06\nN27cWMthNW7cmKSkJFq1agVk/Ldt0qQJDz74IEePHs2z/aJkSQ9E5OrEiRP85z//4cKFC4D1l8jy\n5cvp0qWLts/Zs2eZP38+YE18Hzp0iMcee4wHHniALl268Nprr2l/ZZ8+fZrdu3cDMGHCBGbMmMGp\nU6cA6/DZ9evXA+Dv7090dDTffvstAJ988kmuAQQgJCSEJUuWsGbNGkJCQrTt69ev59y5cwDUrl0b\nvV6f7S/XJUuW0L9/f3755RcOHTrEoUOHiI2N5datW1o77KFsEv83b96kSpUq1KxZk/Pnz/Phhx9m\n2Ld+/frEx8drz9u2bUtycjLffvstFouFmTNn5tpjadGiRa7XPDs5XbcRI0Ywa9Yszp49y+3bt/nX\nv/7F4MGDqV69epZjZG73jRs30Ov11KlTh7S0NGbOnMmVK1e014cPH857772njez7+OOPtX+TXr16\nYbFY+Pjjj0lJSUEpxfHjxzlw4ECOn0GUDAkgIlfOzs5s3boVb29vatasSadOnWjRogUfffSRtk+3\nbt2IjY2lQYMGvPDCCyxbtky7hbNq1SrOnj1L8+bNqV27NoMGDeLMmTMAjBo1igkTJjBgwABq165N\n69attQDi6upKREQEzzzzDPXr1+fo0aParZWcPP7445w6dYr77rsPg8Ggbd+1axdGo5GaNWvi7+/P\nzJkztb98092+fZtVq1YxadIkGjdurP14eHgwevRovvjiixzPm9df+ravh4aGsmfPHmrVqoW/vz+P\nP/54htdffvllXn/9derWrcusWbOoV68ec+bMYfTo0TRt2pTKlStnGK2U3dyY3K55Qa7b888/z+OP\nP06HDh1wcXHhzp07LFy4MNvPNWnSJCIiIqhTpw5Tpkxh4MCB9OnThwceeAAPDw90Ol2G22Hvvvsu\n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\n",
+ "png": "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\ndZw4ceLhixcvDs3OzjY8f/78CA0NDdnw4cP/BIB169Z9xTAMRyQSxVtaWt7cuXPn9KqOs2fPHl8P\nD4+DANClS5cnYrE4Zvfu3VNrqoeBgUEO+7pdu3aFFd8XFBToAEBOTo7B5MmT9/P5fEmnTp2e+/j4\n7H3y5EmXquqjDMXr9ODBA+PqrnlF1V23rKysHsbGxg/YbXv16vWwtLRUq6q8UMU8yIYNG74UCARJ\nenp6z/T19XOfP3/e6fHjx10BIDMzs6fidaz4GTIzM3uy9dfX189dvXr1kn/++ae7qteIqE+9JwJJ\ny9WvX7+7U6dO3b1t27bZbJlUKuUpbvPgwQNjV1fXCCMjo4w2bdoUPXnypIuGhoas4rF69er18Ntv\nv/3By8srpOK6lJQU84yMDCP2PcMwHMX3Fenr6+eOHTs2+sCBA5OSkpIEisc0MDDIYet74cKF98aM\nGXPK0dHxXJ8+fe4rHuOvv/4alpqaarZixYpv1q1b9xUA5Ofnd7x+/brVxo0bv2A/gyoJY3afpUuX\nrtLU1Cy7efOmpZ6e3rPw8HC3efPmbam4HatDhw4vXr582Z59X1ZWplkxGCjuU9M1r6i669azZ8/M\n9PR0E/b9w4cPe2lpaZUaGBjkPHz4sFdVdQCA2NhYh/Xr1/ufOXNm1IABA24BQOfOnZ8yrxsI9OjR\nIysjI8PIwsLiDgAo/r81MjLK6N27d1pycnLfmupPGh/dgZAq3b17t9+mTZsWskEiIyPDKCQkxGvo\n0KEX2W3++eef7oGBgfNLSkq4Bw8e9Lhz547F+PHjjxsaGmaPHTs2euHChZvy8/M7ymQyjXv37pme\nP39+BAB88skn/7dq1aqlSUlJAgB4/vx5p4MHD3oAwPjx44/funVrwJEjRz4sLS3VCgwMnJ+dnW1Y\nXV29vb2Dd+/ePTUsLMzd29s7mC0/ePCgh0Qi4QOAnp7eMw6Hw1T247p79+6pY8eOjb59+3b/a9eu\nWV+7ds365s2bloWFhe2OHz8+XtVryCi0qiooKNDp0KHDC11d3TypVMpbv369v+K2BgYGOffu3TNl\n3/ft2zf51atXbY8fPz6+pKSEu2LFim+KioraVHWuHj16ZFV3zStT1XXz8vIK+fHHHz9PT083KSgo\n0Fm6dOmqyZMn76/s2lWsd35+fkctLa3Srl27Pi4uLtb+/vvvv8vLy9Nl13t6eoauXr16ybNnz/Sk\n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\ngg==\n",
"text": [
- "<matplotlib.figure.Figure at 0x3b84990>"
+ "<matplotlib.figure.Figure at 0x2718810>"
]
}
],
- "prompt_number": 2
+ "prompt_number": 7
},
{
"cell_type": "heading",
@@ -891,6 +884,7 @@
"from __future__ import division\n",
"%matplotlib inline\n",
"from math import *\n",
+ "from pylab import *\n",
"\n",
"#Variable declaration:\n",
"P_rated = 12*10**3 #Watts\n",
@@ -960,28 +954,19 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
"The required plot is as shown:\n"
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['vectorize', 'prod', 'plotting', 'Circle', 'diag', 'sinh', 'trunc', 'plot', 'eye', 'f', 'det', 'tan', 'product', 'gamma', 'roots', 'radians', 'sin', 'fmod', 'expm1', 'ldexp', 'zeros', 'cosh', 'info', 'interactive', 'conjugate', 'linalg', 'take', 'trace', 'beta', 'exp', 'random', 'frexp', 'fft', 'ceil', 'ones', 'copysign', 'isnan', 'multinomial', 'cos', 'transpose', 'solve', 'diff', 'invert', 'degrees', 'pi', 'tanh', 'Polygon', 'fabs', 'reshape', 'sqrt', 'floor', 'source', 'add', 'poly', 'mod', 'sign', 'hypot', 'power', 'binomial', 'log', 'var', 'log10', 'e', 'seterr', 'log1p', 'flatten', 'nan', 'modf', 'isinf', 'test']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\nTkSuQmCC\n",
+ "png": "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\nD0IIIVr7PxA8wzUjE2EJAAAAAElFTkSuQmCC\n",
"text": [
- "<matplotlib.figure.Figure at 0x31d4f90>"
+ "<matplotlib.figure.Figure at 0x27d0450>"
]
}
],
- "prompt_number": 14
+ "prompt_number": 6
}
],
"metadata": {}
diff --git a/ELECTRIC_MACHINERY/chapter3.ipynb b/ELECTRIC_MACHINERY/chapter3.ipynb
index 22fca9a1..411be995 100755
--- a/ELECTRIC_MACHINERY/chapter3.ipynb
+++ b/ELECTRIC_MACHINERY/chapter3.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:3da4e1bbe19be5f3a05399c95840acc2f1758f76d57c3a0e757cbfa9a562b633"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -122,6 +123,7 @@
"from __future__ import division\n",
"%matplotlib inline\n",
"import numpy as np\n",
+ "from pylab import *\n",
"\n",
"#Variable declaration:\n",
"xdata=[0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0] #(cm)\n",
@@ -174,43 +176,27 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "The required plots are shown below:"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['Polygon', 'poly', 'sign', 'flatten', 'conjugate', 'diff', 'tan', 'Circle', 'roots', 'plot', 'eye', 'trace', 'floor', 'diag', 'invert', 'nan', 'sqrt', 'source', 'add', 'zeros', 'take', 'var', 'pi', 'plotting', 'product', 'seterr', 'power', 'multinomial', 'transpose', 'test', 'beta', 'ones', 'sinh', 'vectorize', 'cosh', 'trunc', 'cos', 'prod', 'tanh', 'mod', 'det', 'sin', 'binomial', 'solve', 'log', 'exp', 'reshape', 'gamma', 'interactive']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ "The required plots are shown below:\n"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "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\nYII=\n",
+ "png": "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\n",
"text": [
- "<matplotlib.figure.Figure at 0x3dc9590>"
+ "<matplotlib.figure.Figure at 0x2b71910>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEZCAYAAACw69OmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X9YVHW+B/D3CCoa2iiEGEOi3J6b/BJIumqa7BrRDNtq\nsS7pyoZ50Ut7+x2P6yMbuQutkJtpezO9t5UnUbsT3d1KZFrdmLAs7QpKVFfXX8WACIioFeAo3/sH\nOyPjDDIMZ+acGd6v5+GR75nvzHzn43nmw/l+zvcclRBCgIiIaJCGyT0AIiLyDUwoREQkCSYUIiKS\nBBMKERFJggmFiIgkwYRCRESSYEIh8hLDhg3DyZMnPf6+RqMR4eHhTvePiIjA3/72NzeOiJSKCYUU\nKyIiAqNHj8aYMWMwZswYjB07Fk1NTXIPy2rYsGEIDAy0jm/8+PFyD0kSg01cKpUKKpVKwhGRt/CX\newBEfVGpVNi1axd+/OMfu/waV65cgb+/+3bz2tpaTJkyxW2vLxeudyZX8AiFvE5nZyeys7Mxfvx4\nBAUFYcWKFejq6gLQMz2j0WhQXFyMsLAwLFu2DFevXsXq1asRFhaGMWPGICEhASaTCQBw+PBhzJkz\nB2PHjsWkSZPw5ptvSjrWrq4uqNVqfPnll9ZtLS0tGD16NFpbW3HmzBmkpqZizJgxGDduHO6++26n\nvsw7OjqQk5ODkJAQjBs3Do888gg6OjpsYvDyyy9j4sSJCA4Oxuuvv2597tmzZzFv3jyMGTMGd911\nF/Ly8jBnzhwAwD333AMAmDZtGsaMGYO3337b+ry+Xo/IggmFFM3Rl2teXh6OHTuGU6dO4eTJkzh2\n7BhWr15tffzs2bP44YcfUF9fjy1btuB3v/sdKioq8Nlnn+HSpUvYuXMnRo8ejfb2dqSmpuLf/u3f\ncPHiRVRUVOCZZ55BdXX1oMbX28iRI5Geno6dO3dat+n1eiQnJyM4OBjr1q1DZGQk2tvb0dbWhpdf\nftmp6aInn3wSzc3NOHHiBBobG3Hx4kWsWrXKLgaNjY3Ytm0bnnzySZw/fx4AsHz5ctx2221oa2vD\nW2+9he3bt1vfs6qqCkDPkdelS5ewcOFCAEBTU1Ofr0dkJYgUatKkSSIwMFCo1WqhVqvFgw8+KIQQ\nIiwsTOzdu9fa78MPPxShoaFCCCEqKyvFqFGjhNlstj5+2223CYPBYPf6JSUlYs6cOTbbli9fLlat\nWuXU+FQqlRg7dqx1fE8++aTDfnv37hWRkZHW9qxZs8S2bduEEEI8//zzYsGCBeLEiRNOvd+JEydE\nV1eXCAgIsHnO/v37xcSJE4UQ12Jw9epV6+MhISHi448/Fj/88IPw9/cXp06dsj62Zs0aMXv2bLv3\nsbjR6zkSEREh/va3v/X7ecj3sIZCiqVSqfDuu+/a1VDOnj2L2267zdoODw9Hc3OztR0UFGRTNzlz\n5ozDOofJZMKBAwcwbtw467YrV65gyZIlTo+xpqam3xpKcnIyfvjhBxw8eBAhISE4cuQIHnzwQQDA\nc889h7y8PNx7773o7u5Gdna2zdGWIy0tLejq6sKdd95p3SaEwJUrV6ztoKAgDBt2bQJi9OjR6Orq\nwrlz53D16lWEhYVZH+v9e1/6ej2i3phQyOtMmDAB33zzDW6//XYAQH19PUJCQvrsf+utt+LkyZPW\n/hYTJ07Evffei/LycreO18/PDz//+c+xc+dOhISE4IEHHsBNN90EABgzZgw2bNiADRs24Ouvv0Zy\ncjKmT5+O1NTUPl8vKCgIw4cPx9///ncEBwcPaCxBQUHw8/NDQ0MDIiIiAMBaTyIaLNZQyOtkZGSg\noKAA7e3tuHDhAn73u99h8eLFffZfunQpVq9ejfr6egDAV199hba2Njz44IM4fPgwysrKcPXqVXR3\nd6OmpgZHjx4FAJSUlGDy5MmSjHnx4sV46623sGPHDpuxfvDBBzh9+jQAIDAwEH5+fjZHAo4EBAQg\nMzMTzz77LNrb2wH01DicWfsxatQo6HQ6/Pa3v4XZbMbJkydRUlJiU7cZP348Tp065fRnkzJO5N2Y\nUMjrFBYW4p/+6Z8wZcoUTJ48GZGRkXjxxRetj19f1M7Ly0NKSgqSkpIwduxYZGZmorOzE+PGjYPB\nYMDrr79uPWPs6aefRmdnJ4CeI5/Zs2f3OY6BrLW46667EBgYiDNnzkCr1Vq3f/nll7jnnntw0003\nISkpCcuWLUNKSkq/7/fHP/4R48aNw9SpUzF27FjMnTsXdXV1To1t8+bN+OabbzB+/HgsWrQIixYt\nsklieXl5yMjIwLhx41BWVtbvupL+4kRDiJwFnIqKChETEyOmTp0q1q5d67DP448/LqKiokRCQoKo\nrq62bl+6dKkICQkRMTExnhouDTH33Xef+L//+z+5h+F2eXl54uGHH3b5+UMlTtQ/2RJKZ2eniIiI\nECaTSZjNZjF9+nSbhCGEEGVlZWL+/PlCCCGqq6vFtGnTrI9VVVWJ6upqJhSiATp69Kj4+uuvhRBC\nHD58WEyYMEHs2LFD5lGRL5BtyuvAgQOIjo5GWFgY/P39kZGRYVcc3b17NzIzMwEACQkJuHLlirWA\nOGfOHJuzc4jIORcuXIBOp0NgYCBSU1OxYsUKLFq0SO5hkQ+Q7Swvk8lkc8E5jUYDo9HYbx+TyQSN\nRuOpYRL5nKSkJFkuMkm+T7YjFGcLmuK6lci86BwRkTLJdoSi0Wisp3ECPWeKXH+JbEuff/mXfwGA\nAR+dhIWFobGxUZoBExENEZGRkTh+/PiAnyfbEUpSUhLq6urQ0NAAs9kMvV5vczolAOh0Omzfvh0A\nUF1dDT8/P6dW9Vo0NjZC9Jx4wB8JfvLz82Ufgy/9MJ6MpVJ/Tpw44dL3umwJJSAgAJs2bUJqaiqm\nTZuGhx56CImJidi8eTM2b94MAEhPT0dYWBiio6Pxr//6r9i6dav1+YsWLcKsWbNw7NgxhIeH2zxG\n7mFZgEfSYDylw1gqg6yXXtFqtXZHJStWrLBp//GPf3T43N5XbyUiIvlxpTw5LSsrS+4h+BTGUzqM\npTKohBA+e2s2lUoFH/54RERu4ep3J49QyGnXrxOiwWE8pcNYKgMTChERSYJTXkREZINTXkREJCsm\nFHIa56mlxXhKh7FUBiYUIiKSBGsoRERkgzUUIiKSFRMKOY3z1NJiPKXDWCoDEwoREUmCNRQiIrLB\nGgoREcmKCYWcxnlqaTGe0mEslYEJhYiIJCFrQjEYDIiNjUVUVBSKiooc9nniiScQHR2NxMRE1NTU\nDOi5JK3k5GS5h+BTGE/pMJbKIFtC6erqQk5ODgwGA2pra1FWVmaTMADgnXfewbfffosvv/wSb7zx\nBpYuXer0c4mIyLNkSygHDhxAdHQ0wsLC4O/vj4yMDJSXl9v02b17NzIzMwEACQkJuHLlCkwmk1PP\nJelxnlpajKd0GEtlkC2hmEwmhIeHW9sajQYmk8mpPg0NDf0+10KnA9rbJR48ERHZ8ZfrjVUqlVP9\nBruOpKIiC3ffHYGFCwG1Wo34+HjrfKvlrxq2nWtbtillPN7etmxTyni8uZ2cnKyo8Xhb22g0oqSk\nBAAQEREBV8m2sHHfvn0oKirCrl27AAAvvfQSLl++jNWrV1v7LFu2DFqtFj/72c8AADExMfjggw9w\n8uTJfp8L9CSt6dMF9uwB1GoPfTAiIi/ndQsbk5KSUFdXh4aGBpjNZuj1emi1Wps+Op0O27dvBwBU\nV1fDz88PYWFhTj3XgslEOpa/aEgajKd0GEtlkG3KKyAgAJs2bUJqaiq6u7uRmZmJxMREbN68GQCw\nYsUKpKeno7KyEtHR0Rg5ciS2bt16w+c6wmRCROQZvJYXERHZ8LopLyIi8i2yTXmR9+l9RhINHuMp\nnetjuXw5cOwYMHo0cMstwDffACdOAJMmAWPHXtvmycf76rtjh+9MzTOhEJHiDDQhHDkCnDt37fGL\nF4FPPul5reBgoLW153fLcrXe2zz5uKO+iYnAbbfZJx9vTDSsoRCRx/WXMPpKCBZ9fUlbhIYCTU3A\n9Ok9X8p791573d7bPPl4X31HjnT8WRcuBPR69/0f3IjL353Ch/n4xyNSrOxsIebOFUKrFeKXv+z5\nXaMR4u67e7bdfbcQQM9PcPC13y0/oaE9/06fLsS99/b8Pnas/ba+Hj99WoiFC4U4f77nZ+FCx9s8\n+XhffbVax5/r/Hn5/v9c/e706W9cJhRpVVZWyj0En+Ir8bQkDykTxkATwty5lTaPe5O+ko+cXP3u\n5JQXOY1FZGl5WzwdTVONHm07PWXR35RTWRmQmwts2XLttV966dq2gdYOvC2WSufqdycTChHZsSQP\nZ+oaluThzoRBnsWE4gATCpHzeh+BOHvU0Tt5MGH4DiYUB5hQpMVpBWnJGc/+jkCcPepQSvLgvikt\nV787uQ6FaIjo6wjEsh4iNLTn3xsddfQ+jVWuU1pJuXiEQuTD+koi/R2BKOGog+TDKS8HmFBoqLIk\nktpa4Pz5nm29ayCse9CN8OKQ5Ha854S0pI7n8uVAcnLPba+/+gr46KNryWT6dOCzz3pWX+/Z01M3\n0euv/evtyYT7pjKwhkLkxW40pQUA8fFARASwdat9DYRIapzyIvJCzk5pcSqLXOF1U15tbW1ISUlB\nXFwcUlNT0d7e7rCfwWBAbGwsoqKiUFRUZN3+9ttvIzo6Gn5+fqiurvbUsIlk48qUFpMJeZJsCSU/\nPx9paWmora2FVqtFfn6+XZ+uri7k5OTAYDCgtrYWZWVlqKmpAQDExsbiz3/+M+655x5PD33I4jy1\ntJyJp6MkUlHRs34E6JnSWrCASYT7pjLIVkPZvXs3Dh48CABYsmQJZsyYgQ0bNtj0OXDgAKKjoxEW\nFgYAyMjIQHl5ORISEnDHHXd4fMxEntLXlBbAKS1SLtkSSktLC4KCggAAwcHBaG5ututjMpkQHh5u\nbWs0Gv4lIiOuRJbW9fG80aVPHCURFtiv4b6pDG5NKCkpKWhqarLbXlhY6NTzVSrVoMeQlZWFiIgI\nAIBarUZ8fLx157MkJ7bZlqu9bh3w3XfJGD0aqK83oq4OAJL/cTRiRGQkEBubjK1bgcOHjXjsMUCt\nVs742faNttFoRElJCQBYvy9d4tJF7yUwZcoU0dLSIoQQorm5WURGRtr1qaqqEmlpadZ2cXGxKCgo\nsOmTnJwsDh065PA9ZPx4PslX7t+hBNnZQkybVinGjXN8jxBvvbeHXLhvSsvV707ZivI6nQ6lpaUA\ngNLSUuh0Ors+SUlJqKurQ0NDA8xmM/R6PbRarV0/wVODycscO9ZzH3SepUW+RLZ1KG1tbcjIyMDZ\ns2cRGhoKvV4PtVqNxsZGZGdno7y8HABQUVGB3NxcdHd3IzMzE6tWrQIA/PnPf8YTTzyB1tZW3Hzz\nzUhISEBFRYXNe3AdCilJ7xqJ2dxz+ffrFx4SKQGv5eUAEwrJra9C+/z5wIgRPEuLlImXrye3M/Ke\nE07r77TfkpKeIrulwE6Dw31TGXhxSCI3OHbsxivZeVRCvohTXkQSYY2EfAVrKA4woZC7sUZCvsjr\nLg5J3seyEIqusUxt9b6+lqVG0t9pv4yndBhLZWBCIXKB5aKNX37Z02aNhIhTXkRO62t6S6MBvviC\nSYR8B08bJnIzy/QWYHsKMI9IiHpwyoucNhTnqXvfj2T48J5tUk1vDcV4ugtjqQw8QiG6gd5HJfPn\n9yQRXj6eyDHWUIgcsNRLvvwSaG3l1BYNLayhEEmo95GJRsNkQuQM1lDIab4+T91XvcRdZ3D5ejw9\nibFUBiYUon/ovUjxppu4poRooFhDoSHN0fW3WC+hoY7X8nKACYUc4fW3iG7M667l1dbWhpSUFMTF\nxSE1NRXt7e0O+xkMBsTGxiIqKgpFRUXW7c888wyioqIQFRWFn/zkJzh37pynhj5k+co89WCuvyUl\nX4mnEjCWyiBbQsnPz0daWhpqa2uh1WqRn59v16erqws5OTkwGAyora1FWVkZampqAAAPPPAA6urq\n8NVXXyEmJgYFBQWe/gjkZXj9LSL3km3KKzIyEgcPHkRQUBBaW1sxY8YMHD9+3KZPVVUViouLsWvX\nLgDAunXr0NnZiby8PJt+77//PrZt2wb9dSvNOOVFvSUn254KzOtvETnmdVNeLS0tCAoKAgAEBwej\nubnZro/JZEJ4eLi1rdFoYDKZ7Ppt2bIF8+fPd99gyWt5+lRgoqHMrQsbU1JS0NTUZLe9sLDQqeer\nVKp++xQWFmLEiBH4xS9+4fDxrKwsREREAADUajXi4+Ot9562zLuy7Vz7lVde8br4HTwIHDnS0777\nbiPmzgX+8pdkqNXyj88b46nUdu8aihLG421to9GIkpISALB+X7pEyGTKlCmipaVFCCFEc3OziIyM\ntOtTVVUl0tLSrO3i4mJRUFBgbZeUlIiZM2eKjo4Oh+8h48fzSZWVlXIPYcC0WiEAIaZPF+L8eblH\nY8sb46lUjKW0XP3ulG3KS6fTobS0FABQWloKnU5n1ycpKQl1dXVoaGiA2WyGXq+HVqsF0HP2V3Fx\nMd577z0EBAR4dOxDleUvG6XrPc21aZNyi+7eEk9vwFgqg2xF+ba2NmRkZODs2bMIDQ2FXq+HWq1G\nY2MjsrOzUV5eDgCoqKhAbm4uuru7kZmZiVWrVgEAbr/9dly+fBnjx48HAMycOROvvfaazXuwKD80\n9S6+L1zIqwITDRQXNjrAhCIto9Go6L8Eve0KwUqPpzdhLKXFqw3TkMcrBBPJi0co5NV4LS4i6XHK\nywEmFN/Xu17Ca3ERScPrFjaS9+l9rr+c+lqs6OlrcQ2WUuLpCxhLZWBCIa/D+5YQKROnvMjr6HQ9\nyYS1EiL3YA3FASYU32IpwA8fDgQGAlu3MpkQuQNrKOR2cs9TW6a69u7tSSrenkzkjqcvYSyVgetQ\nSNF6nxbcuwC/ZYu84yIie5zyIkXjacFEnseV8uSTRo/u+ddyWjATCZFy3TChPP744/2+wM0338zb\n7w4RnrpeUu9prk2bgNxc3zwq4fWnpMNYKsMNE8p7772H3/72txBCOLzZlRACa9euZUIhSfW+Jldu\nLq8WTOQtbphQnnrqKTzyyCM3fIHz589LOiBSLnf/Bdj7asGA7xff+Re1dBhLZWBRnhSjdwFeo+F9\n34nk4pai/Jo1a274hs8///yA3xCwvbnWxIkT8d///d9QO/jmMBgMyM3NxdWrV/HII49g5cqVAIC8\nvDy8//77uHr1KsaPH4+SkhJMmTLFpbGQ89w9T927AD8UVsBz3l86jKUy3HBh40033YTAwECbH5VK\nhT/96U8oKipy+U3z8/ORlpaG2tpaaLVa5Ofn2/Xp6upCTk4ODAYDamtrUVZWhpqaGgDAr3/9axw5\ncgR1dXVYuHDhDRMfKZu33K6XiPrn9JTXxYsXsXHjRrzxxhv4+c9/jmeffRYhISEuvWlkZCQOHjyI\noKAgtLa2YsaMGTh+/LhNn6qqKhQXF2PXrl0AgHXr1qGzsxN5eXk2/X7/+9/jwoULWLt2rf2H45SX\n4vF2vUTK47Z1KOfOncP69euxfft2/PKXv0R1dTXGjRvn0iAtWlpaEBQUBAAIDg5Gc3OzXR+TyYTw\n8HBrW6PR2FxeYfXq1di2bRtGjx6Nzz77bFDjIfn0nuby5QI80VBwwymv5557DnfddRfGjBmD2tpa\nrFmzxulkkpKSgtjYWLuf9957z6nnOzpNubfCwkJ8++23yMrKwtNPP+3Ua9LgSHW9JE5z9eD1p6TD\nWCrDDY9QXn75ZYwYMQIFBQV2a01UKhUuXrzY53P37NnT52O33HILWltbERwcjJaWFodTZxqNBvX1\n9dZ2fX29zRGLxeLFi3Hffff1+V5ZWVmIiIgAAKjVasTHx1uLd5adkG3n2ocPH5bk9Y4dS/7HNJcR\njzwCGI3K+HzeGk+22R5s22g0oqSkBACs35eukOW04ccffxyRkZF46qmnsH79epw6dQobN2606dPZ\n2Yk77rgDn3zyCUJCQjBr1ixs3rwZiYmJOHXqFCZPngwAePXVV1FVVYW3337b7n1YQ1GW3utMWluH\nztlcRN7Gq+6H0vu04dDQUOj1eqjVajQ2NiI7Oxvl5eUAgIqKCuTm5qK7uxuZmZlYtWoVAOChhx7C\niRMnYDabMXnyZPzXf/0XJk6caPc+TCjKwnUmRN7BLQklMTER1dXVN3wBZ/rIhQlFWsZBnuvPOy3a\nGmw86RrGUlpuOcvr66+/Rmxs7A1f4MKFCwN+Uxo6hsqFHomonyOU06dP9/sC/v7+0Gg0Uo5JMjxC\nkR/XmRB5H7ccoQym2k8EcJ0J0VDCe8qT0yynGfaH60yc42w8qX+MpTLwjo0kOd7PhGhocvq04b//\n/e84efIkUlNT0dHRAbPZjLFjx7p7fIPCGoo8eDYXkXdz9bvTqSmvjRs34uGHH8Zjjz0GAGhqasJP\nf/rTAb8Z+TbLVJfZDCxYwGRCNNQ4lVA2bdqE/fv3W49IJk+ezDs1DkH9zVNbprr27gWGD2cy6Q/n\n/aXDWCqDUwllxIgRGDlypLXd3d2Ny5cvu21Q5J14RhfR0OZUDeXf//3fMXHiRLz55pt4/fXXsXnz\nZoSFheEPf/iDJ8boMtZQ3I8LF4l8j1uv5XXlyhW89tpr+Otf/woASE1Nxa9+9SsMG6bss46ZUNyP\nCxeJfI9bE8r333+PgIAA+Pn5AQCuXr2Krq4ujLbMcSgUE4q0HF0viWd0uY7Xn5IOYyktt57llZyc\nbFMz6ezsxI9//OMBvxn5nh07uHCRiHo4dYQSHx9vvRnQjbYpDY9Q3KN33WTHDiYSIl/j1iMUf39/\nHDlyxNo+fPiw4usn5D6W04MrKnqSCxER4GRC2bBhA9LS0jB79mzMnj0bP/nJT/Dqq6+6e2ykMJZz\n/Xl6sDS4dkI6jKUy9JtQuru78fnnn+PEiRNYv3491q9fjxMnTuDuu+92+U3b2tqQkpKCuLg4pKam\nor293WE/g8GA2NhYREVFoaioyO7xP/zhDxg2bBja2tpcHgs5b906roQnor45VUOZOXMmPv30U8ne\ntPc95V955RWcOnUKGzZssOnT1dWFO+64Ax9//DEmTJiAmTNnYsuWLUhISAAA1NfXIzs7G0ePHsWh\nQ4cwfvx4u/dhDUVaPEWYaGhwaw1lxowZePLJJ7Fv3z5UV1fj0KFDg7rt7+7du5GZmQkAWLJkifUe\n8r0dOHAA0dHRCAsLg7+/PzIyMmz6PfPMMyguLnZ5DDRwnOoiohtx6vL1NTU1UKlUqK2ttdleWVnp\n0pu2tLQgKCgIABAcHIzm5ma7PiaTCeHh4da2RqOxzpO+++670Gg0iIuLc+n9yXm9z+j65S+NCAxM\n5kp4iXDthHQYS2VwKqG4UvBKSUlBU1OT3fbCwkKnnq9SqWzalsOvjo4OvPjii9izZ4/dYyS93vc2\n+eEHgLVPIuqLUwmlra0Nq1evxr59+wAAc+fORUFBAcaNG9fnc3p/4V/vlltuQWtrK4KDg9HS0oKQ\nkBC7PhqNBvX19da25YjlxIkTOH36NKZNm2bdfuedd+LgwYMOXycrK8t6K2O1Wo34+HjrXzKWRMl2\n3+2ODgBIxvTpwHPP2f4lqITxeXPbsk0p4/HmdnJysqLG421to9GIkpISAIO79btTRXmtVouZM2di\nyZIlEEJgx44d2L9/PyoqKlx6095F+fXr1+PUqVPYuHGjTZ/Ozk7ccccd+OSTTxASEoJZs2Zh8+bN\nSExMtOk3efJkFuXdqL29Z9qL01xEQ4fL353CCTExMXbbYmNjnXmqQ+fOnRP33nuviI2NFSkpKeL8\n+fNCCCEaGhqETqez9tu9e7eIjo4WU6dOFS+++KLD15o8ebI4d+6cw8ec/Hh0nexsIebOFUKrFeIf\n/zVCCCEqKyvlGpJPYjylw1hKy9XvTqemvPz9/bF//37MmjULAPDpp5/C39/129GPHz/e4ZTYrbfe\nanMml1arhVarveFrnTx50uVxkGO96ybLl/P0YCJyjlNTXgcPHkRmZiY6OzsBAKNGjcK2bduQlJTk\n9gEOBqe8XMMrCBMNbW65fP23336L2267zdq2nN7rqPitREwoA2M5RXj4cCAwENi6lcmEaChyy8LG\n+fPnW39PT09HSEiI1yQTGrj+7glvOSuEpMF4SoexVAanLxnMWoXv40p4IhqMG055JSQkoKamxu53\nb8Epr4HhKcJEBLiphuLn52e9zW9HRwdGjRpl84YXL150Yaiew4TSP94si4iu55YaytWrV3Hp0iVc\nunQJV65csf5+6dIlxScTcs5AbpbFeWppMZ7SYSyVgbddHOJYNyEiqTi1DsVbccrLsd7TXJs2Abm5\nrJsQ0TWufne6vtydvFbvlfC5uVwJT0TS4JTXEOTqNBfnqaXFeEqHsVQGJpQhaMeOnlv48rIqRCQl\n1lCGEJ4iTETOcOs95ck3DOQUYSKigWJCGUIGe4ow56mlxXhKh7FUBiaUIYS1EyJyJ1kSSltbG1JS\nUhAXF4fU1FS0t7c77GcwGBAbG4uoqCgUFRVZt7/wwgvQaDRISEhAQkICDAaDp4budZYvB5KTe+5x\nAvScIuxqMul9L3QaPMZTOoylMsiSUPLz85GWloba2lpotVrk5+fb9enq6kJOTg4MBgNqa2tRVlZm\nvTilSqXCM888g5qaGtTU1OD+++/39EfwGqybEJGnyJJQdu/ejczMTADAkiVLbG77a3HgwAFER0cj\nLCwM/v7+yMjIsOnHs7ecI+WlVThPLS3GUzqMpTLIklBaWloQFBQEAAgODrbeCbI3k8mE8PBwa1uj\n0cBkMlnb//Ef/4GpU6diyZIlaGtrc/+gvRTrJkTkKW679EpKSgqamprsthcWFjr1fJVK1edjv/rV\nr/D8888D6KmnPPHEEygtLXXYNysrCxEREQAAtVqN+Ph463yr5a8aX2vv2JGMY8eAjg4jfvMbQK+X\n5vUt2+T+fL7StmxTyni8uZ2cnKyo8Xhb22g0oqSkBACs35eukGVhY2RkJA4cOIDg4GC0tLRg5syZ\nOH78uE0+olbsAAAPXUlEQVSfffv2oaioCLt27QIAvPTSS7h8+TJWr15t06+xsRE/+tGPcPToUbv3\nGaoLG5OTr12ra+FCXquLiAbGqxY26nQ66xFFaWkpdJZTkHpJSkpCXV0dGhoaYDabodfrodVqAcBm\niuydd95BdHS0ZwbuJdx1SXrLXzQkDcZTOoylMshyteE1a9YgIyMDf/rTnxAaGgr9P/6EbmxsRHZ2\nNsrLyxEQEIBNmzYhNTUV3d3dyMzMRGJiIgDg2WefRW1tLS5fvoxJkybhjTfekONjKNaOHbyVLxF5\nHq/l5SN4nS4ikopXTXmR9LjehIjkxoTiIzxxK1/OU0uL8ZQOY6kMTCg+gutNiEhurKF4OdZOiEhq\nrKEMUaydEJFSMKF4OU/UTiw4Ty0txlM6jKUyMKF4OdZOiEgpWEPxQqybEJE7sYYyhLBuQkRKxITi\nhTxZN+mN89TSYjylw1gqAxOKF2LdhIiUiDUUL8G6CRF5CmsoPo51EyJSOiYULyFX3aQ3zlNLi/GU\nDmOpDEwoXoJ1EyJSOtZQiIjIhlfVUNra2pCSkoK4uDikpqaivb3dYT+DwYDY2FhERUWhqKjI5rFX\nX30V06ZNQ2xsLHJzcz0xbFksX95zj3idDugjTEREiiBLQsnPz0daWhpqa2uh1WqRn59v16erqws5\nOTkwGAyora1FWVkZampqAADl5eX44IMPcOjQIXzxxRf49a9/7emP4DFKKsZznlpajKd0GEtlkCWh\n7N69G5mZmQCAJUuWoLy83K7PgQMHEB0djbCwMPj7+yMjI8Pa7z//8z+xcuVK+Pv7AwCCgoI8N3gP\nU0IxnojIGbIklJaWFmsSCA4ORnNzs10fk8mE8PBwa1uj0cBkMgEAjh49ig8++ADx8fGYOXMm9u/f\n75mBy0BJxfjk5GR5B+BjGE/pMJbK4O+uF05JSUFTU5Pd9sLCQqeer1KpbNq9C0Td3d24dOkSDh8+\njM8//xzp6en45ptv7J4DAFlZWYiIiAAAqNVqxMfHW3c+y2Gy0to7diTj2DGgo8OI3/wG0OuVNT62\n2Wbbt9pGoxElJSUAYP2+dImQwZQpU0RLS4sQQojm5mYRGRlp16eqqkqkpaVZ28XFxaKgoEAIIcS8\nefOE0Wi0PhYZGSnOnDlj9xoyfbxBmztXCKDnZ+FCuUdzTWVlpdxD8CmMp3QYS2m5+t0py5SXTqdD\naWkpAKC0tBQ6nc6uT1JSEurq6tDQ0ACz2Qy9Xg+tVgsASEtLw4cffggAOHbsGH744QeEhIR47gO4\nGesmROSNZFmH0tbWhoyMDJw9exahoaHQ6/VQq9VobGxEdna2tfheUVGB3NxcdHd3IzMzE6tWrQIA\nmM1mPProo9azvl5++WXcd999du/jretQ2tt7zujaskX+ugkRDT2ufndyYSMREdnwqoWNZM8bFjBa\ningkDcZTOoylMjChKISSFjASEbmCU14KodP1JJPp05Wx5oSIhi7WUBzwpoTCQjwRKQVrKF5OrQb0\nemUnE85TS4vxlA5jqQxMKDLzhmI8EZEzOOUls+TknmI80HPNLr1e1uEQEXHKy1txVTwR+QomFJkp\n6WrC/eE8tbQYT+kwlsrgtqsNU9+WL+9ZdzJ6dE9C4TQXEfkC1lBkwLoJESkZayhehHUTIvJFTCgy\n8Ka6SW+cp5YW4ykdxlIZWEORgWURIxGRL2ENxUOuL8R705EJEQ0trKEoHK8mTES+TpaE0tbWhpSU\nFMTFxSE1NRXtfVxzxGAwIDY2FlFRUSgqKrJuf/jhh5GQkICEhARMnjwZCQkJnhq6y3yhEM95amkx\nntJhLJVBloSSn5+PtLQ01NbWQqvVIj8/365PV1cXcnJyYDAYUFtbi7KyMustf9966y3U1NSgpqYG\n6enpSE9P9/RHGDBvLcQTETlLlhpKZGQkDh48iKCgILS2tmLGjBk4fvy4TZ+qqioUFxdj165dAIB1\n69ahs7MTeXl51j5CCEyaNAmVlZWIjIy0ex8l1VCIiLyFV9VQWlpaEBQUBAAIDg5Gc3OzXR+TyYTw\n8HBrW6PRwGQy2fTZt28fJkyY4DCZKAWvJkxEQ4XbThtOSUlBU1OT3fbCwkKnnq9Sqfrts3PnTixe\nvPiGfbKyshAREQEAUKvViI+PR3JyMoBr867ubB88CBw50tNesMCIF15w7/u5s/3KK694PH6+3GY8\npWv3rqEoYTze1jYajSgpKQEA6/elS4QMpkyZIlpaWoQQQjQ3N4vIyEi7PlVVVSItLc3aLi4uFgUF\nBda22WwWEyZMEA0NDX2+j0wfz4ZWKwQgxPTpQpw/L/doBqeyslLuIfgUxlM6jKW0XP3ulGXKS6fT\nobS0FABQWloKnU5n1ycpKQl1dXVoaGiA2WyGXq+HVqu1Pr53715MnToVt956q8fG7QpfKsZb/rIh\naTCe0mEslUGWonxbWxsyMjJw9uxZhIaGQq/XQ61Wo7GxEdnZ2SgvLwcAVFRUIDc3F93d3cjMzMSq\nVausr7F06VLMnDkTy2+wqINFeSKigXP1u5Mr5clpRqORfwlKiPGUDmMpLa86y4uIiHwPj1CIiMgG\nj1CIiEhWTCjktN7n+tPgMZ7SYSyVgQmFiIgkwRoKERHZYA2FiIhkxYRCTuM8tbQYT+kwlsrAhEJE\nRJJgDYWIiGywhkJERLJiQiGncZ5aWoyndBhLZWBCISIiSbCGQkRENlhDISIiWcmSUNra2pCSkoK4\nuDikpqaivb3dYT+DwYDY2FhERUWhqKjIuv2TTz5BfHw8YmJiMG3aNOzfv99TQx/SOE8tLcZTOoyl\nMsiSUPLz85GWloba2lpotVrk5+fb9enq6kJOTg4MBgNqa2tRVlaGmpoaAMDKlStRVFSEuro6rF27\nFitXrvT0RxiSDh8+LPcQfArjKR3GUhlkSSi7d+9GZmYmAGDJkiXWW/72duDAAURHRyMsLAz+/v7I\nyMiw9gsPD8eFCxcAAO3t7Zg0aZLnBj+E9XUkSa5hPKXDWCqDvxxv2tLSgqCgIABAcHAwmpub7fqY\nTCaEh4db2xqNxnpYu3btWsyePRvPPfccuru78emnn3pk3ERE1De3JZSUlBQ0NTXZbS8sLHTq+SqV\nyqbd+4yDZcuWYePGjXjwwQfx9ttv49FHH8WePXsGN2Dq1+nTp+Uegk9hPKXDWCqEkMGUKVNES0uL\nEEKI5uZmERkZadenqqpKpKWlWdvFxcWioKBACCHETTfdZN3e3d1t0+4tMjJSAOAPf/jDH/4M4MfR\nd7IzZJny0ul0KC0txVNPPYXS0lLodDq7PklJSairq0NDQwNCQkKg1+uxefNmAMCkSZPw0UcfYe7c\nufjwww8xefJkh+9z/Phxt34OIiK6RpaFjW1tbcjIyMDZs2cRGhoKvV4PtVqNxsZGZGdnW4vvFRUV\nyM3NRXd3NzIzM7Fq1SoAwP79+/HYY4/BbDZj5MiReP3113HXXXd5+mMQEVEvPr1SnoiIPMcnVsr3\ntQCytyeeeALR0dFITEy0rmchx/qLp9FoxM0334yEhAQkJCSgoKBAhlF6h0cffRQTJkxAbGxsn324\nbzqnv1hyvxyY+vp63HPPPYiNjcU///M/o7i42GG/Ae2fLlVeFKSzs1NEREQIk8kkzGazmD59uqiu\nrrbpU1ZWJubPny+EEKK6ulpMmzZNjqF6BWfiWVlZKR544AGZRuhdqqqqRHV1tYiJiXH4OPdN5/UX\nS+6XA9PU1CS++OILIYQQly5dErfffrs4fPiwTZ+B7p9ef4RyowWQFr0XUiYkJODKlSswmUxyDFfx\nnIknAF5000lz5szBuHHj+nyc+6bz+oslwP1yICZMmICYmBgAQGBgIOLi4tDY2GjTZ6D7p9cnFEcL\nIK//wM70oR7OxEqlUuHTTz9FbGws5s2bhyNHjnh6mD6D+6Z0uF+67vTp0/j8888xe/Zsm+0D3T9l\nOW1YStcvgOzL9X+5OPu8ocaZuNx5550wmUwICAjAX//6VyxYsACnTp3ywOh8E/dNaXC/dM13332H\nhQsXYsOGDRgzZozd4wPZP73+CEWj0aC+vt7arq+vt8mojvqYTCZoNBqPjdGbOBPPwMBABAQEAADu\nu+8+jBgxwuFVEah/3Delw/1y4MxmM9LT07F48WIsWLDA7vGB7p9en1B6L4A0m83Q6/XQarU2fXQ6\nHbZv3w4AqK6uhp+fH8LCwuQYruI5E8/W1lbr74cOHcL333+PkJAQTw/VJ3DflA73y4ERQmDZsmWI\niorC008/7bDPQPdPr5/yCggIwKZNm5CammpdAJmYmGhdVb9ixQqkp6ejsrIS0dHRGDlyJLZu3Srz\nqJXLmXju3LkTW7ZsAQCMGDECO3bswLBhXv+3iVssWrQIH330EVpbWxEeHo41a9bAbDYD4L45UP3F\nkvvlwHzyyScoLS1FXFwcEhISAAAvvvgivv32WwCu7Z9c2EhERJJg+iYiIkkwoRARkSSYUIiISBJM\nKEREJAkmFCIikgQTChERSYIJhYiIJMGEQuQBfn5+SExMxJkzZwb9Wr/4xS8QFBSEd955R4KREUnH\n61fKE3mD0aNHo7q6WpLX2r59O5YuXcqLSJLi8AiFaIA+//xzTJs2DV1dXfj+++8RExODr776akCv\n8Ze//MV6yYt58+YBAF544QU88sgj+NGPfoSIiAj8z//8D5577jnExcVh3rx56OrqsnkNXuSClIZH\nKEQDlJSUhJ/+9KfIy8tDR0cHMjMzERUV5fTzz5w5g5ycHPzv//4vwsLCcPHiRetjp0+fhtFoxBdf\nfIEZM2bg3Xffxbp16/DQQw/h/fffx89+9jN3fCQiSTChELng+eefx/Tp0zFq1Ci8+uqrA3ruxx9/\njHvvvdd61daxY8cC6LnPxP333w+VSoWYmBh0d3cjJSUFABAbG2tzGXEiJeKUF5ELWltb8f333+O7\n775DR0fHgJ6rUqn6nK4aMWIEAGDYsGEYPny4dfuwYcPQ3d3t+oCJPIAJhcgFK1asQEFBARYvXoyV\nK1cO6LmzZ8/Ghx9+aL2Vant7uzuGSORxnPIiGqA333wTI0eOxMMPP4zu7m7MmjULRqMRycnJTj0/\nNDQUr732Gu6//34MHz4cwcHB2LNnDwDb26tefxYXz+oipeP9UIg8YMyYMbh06ZJkr5eVlYUHHngA\n6enpkr0m0WBxyovIA8aOHSvpwsZ9+/Zh1KhREoyMSDo8QiEiIknwCIWIiCTBhEJERJJgQiEiIkkw\noRARkSSYUIiISBL/D5upbph/P2HSAAAAAElFTkSuQmCC\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEXCAYAAACK4bLWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlUU2f6B/AnbK0IGFEJStAoIYBVFgvSX6dWfqUBoTWi\n1ood2+i4nU5pp+2o0Kl1bOsSHDu/tjrtUacVqiPiUoUZEY1K1KkjaMGlBQtYU0MkUVlcqpXt/v5g\nrk1TlgA35CZ8P+fcU9+bN8mb56R5uO9z33sFDMMQAABATznZegAAAOAYkFAAAIATSCgAAMAJJBQA\nAOAEEgoAAHACCQUAADiBhAJgJ5ycnFq+//77Ub39vhqNJsbf319naX+JRKI9cuRIrDXHBPyEhAK8\nJZFItO7u7nc9PT1ve3p63vby8rplMBh8bT0ulpOTU4uHh8cddnze3t61th4TF3qauAQCASMQCLDA\nrQ9ysfUAANojEAiYf/3rX88+9dRTR7v7Gk1NTS4uLi5NXI7L1Pnz50NHjRr1vbVe31YYhhHYegxg\nf3CEAnbn/v37D73++usf+vn56f38/PRvvPHG/zU0NLgRtU7PiMXiqrVr1y4dOnRo9bx58z5raWlx\nWr169Z+kUmmll5fXrcjIyDNVVVViIqKLFy8Gy+Vy9aBBg2qCg4Mv7tq1awbXYxUKhfXffvvtI+y+\n69evD3F3d79748aNwTdu3Bj87LPP/mvgwIF1gwYNqnnyySePW/Jjfv/+/YcWL168bsSIET/4+voa\nXn755U9/+umnh01j8Ne//vVNkUhkHDZs2NWMjIw57HNramoGTZ48+Z8DBgy4OX78+KJly5atnDBh\nwgkioieffPI4EVFYWNg5T0/P26bxaO/1AFhIKMBrbf24rlq16u2ioqLx586dCzt37lxYUVHR+JUr\nVy5jHzcajaK6urqBV65cGb5x48ZFH3zwwR937NiRfODAgYRbt255bdmyZa67u/vdH3/8sb9cLlfP\nnj172/Xr14fs2LEj+fe///0nZWVlIT0Zn6mHHnro/vTp0/dkZWXNYvft3Lnz+ZiYGM3gwYNvfPDB\nB3/09/fX3bhxY/C1a9d81qxZ85Yl00VpaWmqyspK6blz58IqKyuler3e77333ltuGoNbt255Xb16\nddhnn30275VXXvnbzZs3BxARvfLKK3/z9PS8bTQaRZmZmcovvvjiJfY9jx8//iRR65HX7du3PWfM\nmLGLiMhgMPi293oADzAMgw0bL7cRI0ZoPTw8bguFwjqhUFg3derULxmGoVGjRl06cODAJLbfwYMH\n4yQSyWWGYaigoCDGzc3t/v37993Yx4OCgi7m5uZONn/9HTt2zJwwYcJx030LFy7c+O677y63ZHwC\ngaDFy8vrJju+P/zhDx+21e/w4cOxAQEBlWz78ccf/2rr1q2zGYah5cuXvztlypR9lZWVAZa836VL\nl0a1tLQI+vfvf+fSpUuj2MdOnjz5PyNHjvyejUG/fv3uNjc3O7GP+/j4GAsLC8c3NTU5u7q6NpSX\nlweyjy1btuz9J5544oT5+7Dtjl6vrXFKJJLLR44cecrW3x9svb+hhgK8JRAImJycnCnmNZTq6uqh\nI0aM+IFtDx8+/MrVq1eHse0hQ4Zcd3Nza2DbOp3OPyAg4JL56//www8jCgsLowcOHFjH7mtqanJ5\n6aWXvrB0jCUlJRGd1VBiYmI0d+/edS8qKhrv4+Nz7dy5c2FTp07dS0S0ZMmSv6xYsWJFXFzcISKi\nhQsXbkpNTU3v6PWuX78+5O7du+6PPvro1+w+hmEELS0tD2YcBg0aVOPk5NTCtt3d3e/euXPH4/r1\n60OamppcTM/aEovFVZ19zvZer7PnQd+ChAJ2Z9iwYVe1Wq0kJCSkjIjoypUrw4cNG3aVfdx8ysjf\n319XWVkpHT16dKnp/uHDh1+ZOHHisUOHDsVZc7zOzs7Nzz///M6srKxZPj4+1yZPnvzP/v37/0hE\n5OHhcWfdunWL161bt/jbb7995KmnnjoaFRV1uqMTEQYPHnyjX79+90pLS0cPHTq0uitjGTJkyHUX\nF5cmnU7nHxgYWEHUmnB79gkBWqGGAnZn1qxZWStXrlzGFrXfe++95S+++OLW9vrPnz//7++88877\nlZWVUoZhBOfPnw+tra31fvbZZ/9VXl4u27Zt2+zGxkbXxsZG19OnT0ddvHgxmIgoIyNjzsiRIy9z\nMeYXXnhh+44dO5K3b9/+wgsvvLCd3b9///5n2HF5eXndcnZ2bnZ2dm7u6LWcnJxaFixYsPn111//\n8Pr160OIiPR6vZ8lidHZ2bl52rRpX65YsWLFvXv3+l28eDF469atL5omYZFIZLx06VKApZ+NyziB\nfUNCAbuzbNmylZGRkWdCQ0PPh4aGno+MjDyzbNmylezj5kcob7755l+ff/75nXFxcYcGDBhwc8GC\nBZt/+umnhz08PO4cOnQobseOHcl+fn76oUOHVr/11ltr2DPGdDqd/xNPPPHv9sbRlbUW48ePL/Lw\n8LhTXV09NCEh4QC7v6KiIlAul6s9PT1vP/744ydfeeWVv02cOPFYZ++Xnp6eKpVKKx977LFTAwYM\nuCmXy9Xl5eUyS8a2YcOGlJs3bw7w9fU1KJXKzFmzZmWZThGuWLFihVKpzBw4cGDd7t27n+tsXUln\ncYK+Q8AwWH8E0Jb4+PiDH3/88WtBQUHf2Xos1pSampp+7do1ny1btsztzvP7SpzAArY8I+DAgQOT\ngoKCLkql0gqVSpXaVp9XX331Y6lUWhEaGnquuLg4gt0/d+7cz318fIxjxoy5YOszG7Bhs6ft4sWL\nQefOnQttaWkRFBYWjh88ePD1nJwcha3Hhc3+N5u9cVNTk3NAQEDl5cuXJQ0NDa5hYWFnS0tLQ0z7\n7N+/PzEhISGPYRg6depUdHR09Cn2sePHj08oLi6OQELBhq1r2+nTpyOlUmmFu7v7jyNHjvy+vT/m\nsGHr6mazs7yKiorGS6XSSolEoiUiSk5O3pGTkzOFPXOHiCg3N1ehVCoziYiio6ML6+vrhQaDwdfX\n19cwYcKEE1qtVmKb0QPYr8jIyDMVFRWBth4HOB6bJRS9Xu9nfi58YWFhdGd99Hq9n6+vr6Gz18fF\n6QAAuofp5rXcbHaWl6U/+OYfrCuJwtaHf460/fnPf7b5GBxpQzwRS75uPWGzhOLn56c3XVCl0+n8\nzVfsmvepqqoS+/n56XtznNBKq9XaeggOBfHkDmLJHzZLKOw8rlarlTQ0NLhlZ2fPVCgUuaZ9FApF\n7hdffPESEdGpU6ceEwqF9SKRyGibEQMAQEdsllBcXFyaNmzYkBIfH39w9OjRpTNnzswOCQkp27hx\n46KNGzcuIiJKTEzMGzVq1PdSqbRy0aJFGz/55JPfs8+fNWtW1uOPP36yvLxc5u/vr+vuOfRgmTlz\n5th6CA4F8eQOYskfDruwUSAQMI762QAArEUgEBBjb0V5sC8ajcbWQ3AoiCd3EEv+QEIBAABOYMoL\nAAAewJQXAADYHBIKWATz1NxCPLmDWPIHEgoAAHACNRQAAHgANRQAALA5JBSwCOapuYV4cgex5A8k\nFAAA4ARqKAAA8ABqKAAAYHNIKGARzFNzC/HkDmLJH0goAADACdRQAADgAdRQAADA5myaUPLz8ycF\nBwdfDAwMrEhPT09tq89rr732cWBgYEVYWNi5kpKSiK48F7iDeWpuIZ7cQSz5w2YJpbm52TklJWVD\nfn7+pNLS0tFZWVmzysrKQkz75OXlJVZWVkorKioCN23atPDll1/+1NLnEhElJhLV1/fWJwIA6Ntc\nbPXGRUVF46VSaaVEItESESUnJ+/IycmZEhISUsb2yc3NVSiVykwioujo6ML6+nqhwWDwvXz58sjO\nnktEdODAHPrNbyQ0YwaRUCik8PBwiomJIaKf/6pB27I2u48v47H3NruPL+Ox53ZMTAyvxmNvbY1G\nQxkZGUREJJFIqEcYhrHJtmvXrufmz5+/mW1v3bp1dkpKynrTPs8+++w/v/rqq8fZdmxs7OEzZ848\nunv37umdPZeImKgohqmrYwAAwEKtaaF7v+s2m/ISCAQWnYLFdPNsAyKiQ4eIhMLuPhtMsX/RADcQ\nT+4glvxhsykvPz8/vU6n82fbOp3OXywWV3XUp6qqSiwWi6saGxtdO3suEZIJAECv6u6hTU+3xsZG\nl1GjRl26fPmy5P79+25hYWFnS0tLQ0z77N+/PzEhISGPYRj6z3/+81h0dPQpS5/b+tEAAKArqAdT\nXjY7QnFxcWnasGFDSnx8/MHm5mbnefPmfRYSElK2cePGRUREixYt2piYmJiXl5eXKJVKK/v37//j\nli1b5nb0XFt9FgAAwEp5sJDpGUnQc4gnd8xjuXAhUXk5kbs7kY8PkVZLdOkS0YgRRF5eP++z1ePb\nt/N7Or4nK+VtdoQCANAZNjl09IN99ixRTc3Pj9+6RfTVV63PHzKE6Pr11n9XVf16ny0eHzeOaPhw\n+004HcERCgD0KkuSBPtv0+TAau8Hm+XrS2QwEEVFEQ0YQHT4cOt/b9785T5bPe7m1nbCY82YQbRz\npzUib5meHKHYrChv7Y1QlAewiQULGGbiRIYRixnmN79hmIQEhlEqW/clJLTuI/rlNmRI2//29W39\n74ABrf+NimKYp5/+9b9NH9dqGWbGjNY1aHV1rf9ua5+tHk9I6Hj8tl47Rz0oytv8h99aGxIKtwoK\nCmw9BIfiCPFkE0dXE4alScI0OXT0gz1xYsEvHue7zhKOrfUkoWDKCyyCIjK37C2ebRW6L1wgqq1t\nfdx06oadcmpvGmjXLqIlS4j+8pfW/27a9PN7mP/bklqCvcWS73oy5YWEAgC/0FaNo71CN1HXE4a9\nFpz7CiSUNiChAFjO9AikrUJ4W4XuiIjWhLNly8+vgYRh/5BQ2oCEwi1MK3CLD/FsL4m0NWXFHnXw\n8WiDD7F0JFiHAgAd6qwG4uvb+t/2pqyEwl+eymrL01qBv3CEAuCg2jsCaasGYnoEwoejDrAdTHm1\nAQkF+io2kZgfgXRUA0ESAVZPEopN7ykP9gP3nOAW1/FcuJAoJqb1ttelpUTHjv2cTKKiiE6dal2B\nfehQ69HIjBlER48S7d1r/8kE303+QA0FwE51VFQn+vURCGogYG2Y8gKwM51NaaEeAj2BGkobkFDA\nkXS0TgRJBLhkdzWU2tpab7lcrpbJZOVxcXGH6uvr2/xfID8/f1JwcPDFwMDAivT09FR2/65du2Y8\n8sgj3zo7OzcXFxeP672R912Yp+aWJfFsqy5y4EDrCnai1imtpKTWusiIEa3TWH0xmeC7yR82SSgq\nlSpNLpery8vLZbGxsUdUKlWaeZ/m5mbnlJSUDfn5+ZNKS0tHZ2VlzSorKwshIho7duyFvXv3Tn3y\nySeP9/7oAayLTSR79vw6iZgW2B2lqA4OpLtXlezJFhQUdNFgMIgYhqHq6mrfoKCgi+Z9Tp48+T/x\n8fH5bHvNmjVpa9asSTPtExMTU/D111+Pa+s9CFcbBjtieuVe86v1ml+SHcCayN7uKW80GkUikchI\nRCQSiYxGo1Fk3kev1/v5+/vr2LZYLK4qLCyM7sr7zJkzhyQSCRERCYVCCg8Pf3CJBvYwGW20bdVe\nt47ozp0Ycncn0uk09M03REQx/z1LS0NSKdGYMTG0ZQvR2bMa+v3viYRC/owfbcdoazQaysjIICJ6\n8HvZbd3NRJ1tTz/9tHrMmDEXzLecnByFUCisM+07cODAWvPn7969e/r8+fM3s+2tW7fOTklJWW/a\nJwZHKL3GEe7fwRcLFjBMWFgB4+3981EIe48QHI10Hb6b3CI+HqGo1Wp5e4+JRCKjwWDw9fX1NVRX\nVw/18fG5Zt7Hz89Pr9Pp/Nm2TqfzF4vFVdYaL0BvKS8nOnfu53ZbZ2lhnQjYI5sU5RUKRW5mZqaS\niCgzM1OZlJS0z7xPZGTkmYqKikCtVitpaGhwy87OnqlQKHLN+zHdvfcxdAl7qAzdY3rGlqsrEVEM\nztLiCL6bPNLdQ5uebDU1Nd6xsbGHAwMDy+Vy+aG6ujohwzCk1+uHJSYm7mf75eXlJchksu8CAgIq\nV69e/Ra7/8svv5wqFot1Dz/88D2RSGSYNGnSAfP3IEx5gY21V2ifMgVTWsBfhFsA/xoWNnJLg3tO\nWKSze4xERbUekZw9i3hyBd9NbtndwkYAR1Ve3vHakUOHMK0FjgtHKAAcYI9Mvv2W6MYNXA4F7Beu\n5dUGJBSwtvamt8Ti1gs3IomAPcKUF1gduxAKftbe9JYlyQTx5A5iyR9IKABd8OvTf1EjAWBhygug\nC2JiWo9KiIimTCFyc0ONBBxLT6a8cMdGAAuYFt2JWo9KMjKQSABMYcoLLNIX56nbuh/JjRutRfee\nTm31xXhaC2LJHzhCAWgHW3Qn+vk+7ezCRByZAPwaaigAJkxPBW5sJDp8GGtKoG/BOpQ2IKFAd6Do\nDn0d1qGA1Tn6PDVbLzEvulvrCsCOHs/ehFjyB2ooAPTLegkXRXeAvghTXtBntVcvQTKBvgw1lDYg\noUBnUC8B+DXUUMDqHGWeur1Lp1izXtIWR4knHyCW/GGThFJbW+stl8vVMpmsPC4u7lB9fX2b/xvn\n5+dPCg4OvhgYGFiRnp6eyu5fsmTJX0JCQsrCwsLOTZs27cubN28O6L3Rgz1iE8mePT9f0LF/f1x/\nC4BLNpnyWrp06drBgwffWLp06dr09PTUurq6gSqVKs20T3Nzs3NQUNB3hw8fftrPz08fFRV1Oisr\na1ZISEiZWq2Wx8bGHnFycmpJS0tTERGZPx9TXmDKdHqLCLUSgPbY3ZRXbm6uQqlUZhIRKZXKzH37\n9iWZ9ykqKhovlUorJRKJ1tXVtTE5OXlHTk7OFCIiuVyudnJyaiEiio6OLqyqqhL37icAe+Pu3vrf\niAiipCQkEwBrsMlpw0ajUSQSiYxERCKRyGg0GkXmffR6vZ+/v7+ObYvF4qrCwsJo836ff/7572bN\nmpXV1vvMmTOHJBIJEREJhUIKDw9/cO9pdt4VbcvaH374od3Fb906ojt3YsjdnUip1NDdu0T79sWQ\nUGj78dljPPnaNq2h8GE89tbWaDSUkZFBRPTg97K7rDblJZfL1QaDwdd8/6pVq95WKpWZdXV1A9l9\n3t7etbW1td6m/fbs2TM9Pz9/0ubNmxcQEW3btm12YWFh9Pr16181fa3i4uJxe/bsmW7+Ppjy4pZG\no3nwZbQXptNcM2a0Ft35wh7jyVeIJbd4efl6tVotb+8xkUhkNBgMvr6+vobq6uqhPj4+18z7+Pn5\n6XU6nT/b1ul0/mKxuIptZ2RkzMnLy0s8cuRILPejB3P28j+s6doS07O4Nm2y7bjM2Us87QFiyR82\nqaEoFIrczMxMJRFRZmamMikpaZ95n8jIyDMVFRWBWq1W0tDQ4JadnT1ToVDkErWe/fWXv/xlSU5O\nzpSHH374p94eP/CX6W15cRYXQC9jGKbXt5qaGu/Y2NjDgYGB5XK5/FBdXZ2QYRjS6/XDEhMT97P9\n8vLyEmQy2XcBAQGVq1evfovdL5VKK4YPH/5DeHh4SXh4eMnLL7/8ifl7tH404EpBQYGth9ChBQsY\nZuJEhhk8mGGIGCYqimHq6mw9qvbxPZ72BLHk1n9/O7v1246V8mARvs9Tm9ZLxGKiCxf4fVTC93ja\nE8SSW7j0ShuQUBwfrsUFwD0klDYgoTg+XIsLgHt2t7AR7I/puf62xJdrcfUUX+LpCBBL/kBCAbuC\ns7gA+AtTXmBXEhNbkwlqJQDWgRpKG5BQHAtbgHd1JfLwINqyBckEwBpQQwGrs/U8NTvVdfhwa1Kx\n92Ri63g6EsSSP3BPeeAte7mMCgC0wpQX8BZOCwbofby8OCRAT7H3MGFPC0YiAeA31FDAIr01T226\nzuTTTx33tGDM+3MHseSPDo9QXn311fWdvcCAAQNurly5chl3Q4K+jC2+ExEtWcKve5gAQMc6rKGM\nGDHih/fee285wzACgUDwq44MwwhUKlXaxYsXg606ym5ADcW+sAX4b78lunED60wAbMVqNZTXX3/9\nQ/be7+0xvfMiQHeZHpmIxUgmAPaowxrKG2+88X+dvYAlfcD+WXue2rQAz/dLz3MB8/7cQSz5o8Mj\nlHfffffP7T0mEAiY5cuXv8f9kKCvMF1n8umnrTUTnBYMYL86PELp37//jx4eHndMN4FAwHz++ee/\nS09PT+3um9bW1nrL5XK1TCYrj4uLO1RfX9/mT0h+fv6k4ODgi4GBgRWm7/fOO++8HxYWdi48PPxs\nbGzsEdN7z4N1WOMGRqYXemQL8H0lmeCGUNxBLHnE0ls73rx50+v9999fJpFILi9dujTdaDT6dPc2\nkUuWLFmbnp6+lGEYUqlUqampqSrzPk1NTc4BAQGVly9fljQ0NLiGhYWdLS0tDWEYhm7duuXJ9vv4\n449fnTdv3t/Nn0+4BTDvJSTYx+16AfoS6sEtgDtdh1JTUzNo2bJlK8PCws41Nja6FhcXj0tPT0/1\n8fG51t0klpubq2CL/UqlMnPfvn1J5n2KiorGS6XSSolEonV1dW1MTk7ekZOTM4WIyNPT8zbb786d\nOx6DBw++0d2xgGW4mqfuK+tMOoN5f+4glvzRYQ1l8eLF6/bu3Tt14cKFm86fPx9q+kPeE0ajUSQS\niYxERCKRyGg0GkXmffR6vZ+/v7+ObYvF4qrCwsJotv3222+v2rp164vu7u53T5069Vhb7zNnzhyS\nSCRERCQUCik8PPzB4TH7JUTbsvbZs2c5eb3y8pj/ns2lIaWSSKPhx+ez13iijXZP2xqNhjIyMoiI\nHvxedleH61CcnJxa3NzcGlxdXRt/9USBgLl165ZXe8+Vy+Vqg8Hga75/1apVbyuVykzT0429vb1r\na2trvU377dmzZ3p+fv6kzZs3LyAi2rZt2+zCwsLo9evXv2raT6VSpX333XdBW7ZsmWs+vo4+G/Qu\nrDMBsA9WW4fS0tLS7UuzqNVqeXuPiUQio8Fg8PX19TVUV1cPbWv6zM/PT29abNfpdP5isbjKvN8L\nL7ywPTExMa+744TegXUmAI7PJtfyUigUuZmZmUoioszMTGVSUtI+8z6RkZFnKioqArVaraShocEt\nOzt7pkKhyCUiqqioCGT75eTkTImIiCjpvdH3Tewhcnf1tXUmnelpPOFniCV/dJhQxo0bV9zZC1jS\nx1xaWppKrVbLZTJZ+dGjR59KS0tTERFdvXp12DPPPLOfiMjFxaVpw4YNKfHx8QdHjx5dOnPmzOyQ\nkJAyIqK33nprzdixYy+Eh4ef1Wg0MR988MEfuzoGsD4U4AH6lg5rKP369bsnlUorO3qBmzdvDrhy\n5cpwzkfWQ6ih2J7p/UxmzMCFHgHsgdVqKGVlZSGdvoCLS1N33hgcn+k0F+6yCOD4cMdGsIhGo3lw\nymFHcDkVy1gaT+gcYskt3LEReAP3MwHou3CEApxKTGy9NhfWmQDYp54coVh82rBWq5UcPnz4aSKi\nu3fvune0qBH6HvaMrsZGoqQkJBOAvsiihLJp06aFM2bM2LVo0aKNRERVVVXiqVOn7rXu0IBPOjvX\nn53qOnyYyNUVyaQzWDvBHcSSPyxKKH/7299e+fe///2El5fXLSIimUxWfu3aNR/rDg3sCc7oAgCL\nivIPPfTQ/Yceeug+225qanJp6x7z4LjaOosGZ3R1H85K4g5iyR8WJZSJEyceW7Vq1dt37951V6vV\n8k8++eT3kydP/qe1Bwf8hjO6AMCURVNeKpUqbciQIdfHjh17YePGjYsSExPzVq5cuczagwP+aGue\nGtNc3Yd5f+4glvxh0RHKTz/99PC8efM+W7hw4SYioubmZud79+71c3d3v2vd4QGfbd/eOu2FaS4A\nILJwHUp0dHThkSNHYj08PO4QEd2+fdszPj7+4MmTJx+3+gi7CetQrMO0brJ9OxIJgKOx+jqU+/fv\nP8QmE6LWW/DevXvXvTtvCPaNrZscONCaXAAAWBYlFHd397tff/31o2z7zJkzkf369btnvWEB37Dz\n1KibcAPz/txBLPnDohrKRx999Ifnn39+59ChQ6uJiKqrq4dmZ2fPtO7QgC8WLiQqKiIaNgynBwNA\n+zqtoTQ3Nzt//PHHr73yyit/++6774KIiIKCgr5zc3Nr6JURdhNqKNzBfU0A+g6r1lCcnZ2bt2/f\n/oKbm1vD2LFjL4wdO/ZCT5NJbW2tt1wuV8tksvK4uLhD9fX1bf6tm5+fPyk4OPhiYGBgRXp6eqr5\n4x988MEfnZycWmpra717Mh7oGKa5AMASFtVQnnjiiX+npKRsOHHixITi4uJxX3/99aPFxcXjuvum\nKpUqTS6Xq8vLy2WxsbFHVCpVmnmf5uZm55SUlA35+fmTSktLR2dlZc0yveGXTqfzV6vV8hEjRvzQ\n3XFAx0wv+PjEExpc8JFDmPfnDmLJHxbVUEpKSiIEAgGzfPny90z3FxQU/G933jQ3N1dx7NixiURE\nSqUyMyYmRmOeVIqKisZLpdJKiUSiJSJKTk7ekZOTM4W9r/ybb77517Vr1y6dMmVKTnfGAJ0zXQk/\ncSKSCQB0zKKEotFoYrh8U6PRKBKJREYiIpFIZDQajSLzPnq93s/f31/HtsVicVVhYWE0EVFOTs4U\nsVhcFRoaer6j95kzZw5JJBIiIhIKhRQeHv7guj/sXzVot9++d4+IKIaioogWL/7lnfH4MD57brP7\n+DIee27HxMTwajz21tZoNJSRkUFE9OD3srssWthYX18vfPfdd/98/PjxJ/87CM3y5cvfGzBgwM32\nniOXy9UGg8HXfP+qVaveViqVmXV1dQPZfd7e3rXmdZA9e/ZMz8/Pn7R58+YFRETbtm2bXVhYGL12\n7dqlMTExGrVaLffy8ro1cuTIy2fOnIkcNGhQzS8+GIryPVZfj5XwAH2N1W8B/Lvf/e7zsWPHXti1\na9cMhmEEW7dufXHu3Llbvvzyy2ntPUetVsvbe0wkEhkNBoOvr6+vobq6eqiPj8818z5+fn56nU7n\nz7Z1Op1ImJkOAAAVeElEQVS/WCyuunTpUoBWq5WEhYWdI2q9N8ujjz76dVFR0fi2Xge6xnwlPHtG\nl+lf09BziCd3EEseYRim0y00NPScJfss3ZYsWbJWpVKlMgxDa9asSUtNTVWZ92lsbHQZNWrUpcuX\nL0vu37/vFhYWdra0tDTEvJ9EIrlcU1Pjbb6/9aNBV02cyDBErduMGT/vLygosNWQHBLiyR3Eklv/\n/e3s1m+7RWd59evX796JEycmsO1///vfT/TkwpBpaWkqtVotl8lk5UePHn0qLS1NRUR09erVYc88\n88x+IiIXF5emDRs2pMTHxx8cPXp06cyZM7PZgrwp3JeFW+2dIoy/ALmFeHIHseQPi2ooZ8+eDX/p\npZe+uHnz5gAiooEDB9ZlZmYq2WknPkINxXK4URYAsHpSQ+kwoVy5cmX48OHDr7BtNqF0VIznCyQU\ny1myEh7z1NxCPLmDWHLLaivlTdd4TJ8+fc+AAQNu2kMyga7BSngA4IJFNRQiou+//36UNQcCtrN9\ne+uRSUcr4fEXILcQT+4glvxh0WnD4JhwsywA4FKHRyjnz58P9fT0vO3p6Xn7woULY9l/e3p63vby\n8rrVW4ME6+jKzbLYlbXADcSTO4glf3R4hNLc3OzcWwOB3ofaCQBwyaLThu0RzvJqG04RBoCOWP3S\nK+A4TK8gvGQJbpYFANyx+CwvcAzdnebCPDW3EE/uIJb8gYTSx1hyijAAQHeghtIH4PRgALCUVe8p\nD/avK6cHAwB0FxJKH8DF6cGYp+YW4skdxJI/kFD6ANRNAKA3oIbiwFA7AYCuQg0F2oTaCQD0Jpsk\nlNraWm+5XK6WyWTlcXFxh+rr69v82zk/P39ScHDwxcDAwIr09PRUdv+KFStWiMXiqoiIiJKIiIiS\n/Pz8Sb03evvB5aVVME/NLcSTO4glf9gkoahUqjS5XK4uLy+XxcbGHlGpVGnmfZqbm51TUlI25Ofn\nTyotLR2dlZU1q6ysLISodTrrzTff/GtJSUlESUlJxKRJk/J7/1PwH2onANCbbHLpldzcXMWxY8cm\nEhEplcrMmJgYjXlSKSoqGi+VSislEomWiCg5OXlHTk7OFPa+8pbM8c2ZM4ckEgkREQmFQgoPD39w\n7wT2rxpHa2/fHkPl5UT37mnonXeIdu7k5vXZfbb+fI7SZvfxZTz23I6JieHVeOytrdFoKCMjg4jo\nwe9ld9mkKD9w4MC6urq6gUSticHb27uWbbN279793MGDB+M3b968gIho27ZtswsLC6PXr1//6rvv\nvvvnLVu2zB0wYMDNyMjIMx988MEfhUJhvenz+2pR3pLb+QIAtIeXRXm5XK4eO3bsBfMtNzdXYdpP\nIBAwAoHgV7/8be1jvfzyy59evnx55NmzZ8OHDh1a/cc//vEDa3wGe2StS9Kzf9EANxBP7iCW/GG1\nKS+1Wi1v7zGRSGQ0GAy+vr6+hurq6qE+Pj7XzPv4+fnpdTqdP9vW6XT+YrG4iojItP/8+fP/Pnny\n5H9yPX57tX176xlduCQ9APQ2mxTlFQpFbmZmppKIKDMzU5mUlLTPvE9kZOSZioqKQK1WK2loaHDL\nzs6eqVAocomIqqurh7L99u7dO3Xs2LEXem/0/LNwYetUV2Jia3vnTu6TiencP/Qc4skdxJJHGIbp\n9a2mpsY7Njb2cGBgYLlcLj9UV1cnZBiG9Hr9sMTExP1sv7y8vASZTPZdQEBA5erVq99i97/44otf\njB079nxoaOi5KVOm7DMYDCLz92j9aH3DxIkMQ9S6zZhh69EAgD37729nt37bsVLeASQmti5ejIqy\n3inCpmckQc8hntxBLLnFy6I89B6sNwEAPsARih3DtboAgGs4QumjcK0uAOATJBQ7Zq01J23Buf7c\nQjy5g1jyBxKKHUPtBAD4BDUUO4O6CQBYE2oofQjqJgDAV0godqY36yamME/NLcSTO4glfyCh2BnU\nTQCAr1BDAQCAB1BDcXCmF3+sr++0OwCATSCh2AE+FOIxT80txJM7iCV/IKHYAVsV4gEAugI1FDtQ\nX4+bZgFA7+hJDcVqd2yEnsMiRgCwJzaZ8qqtrfWWy+VqmUxWHhcXd6i+vr7Nn8r8/PxJwcHBFwMD\nAyvS09NTTR9bv379qyEhIWVjxoz5JjU1Nb13Rt67+FA7YWGemluIJ3cQS/6wSUJRqVRpcrlcXV5e\nLouNjT2iUqnSzPs0Nzc7p6SkbMjPz59UWlo6Oisra1ZZWVkIEVFBQcH/5ubmKs6fPx/6zTffjFm8\nePG63v8U1ofaCQDYle7e6rEnW1BQ0EX2tr3V1dW+QUFBF837nDx58n/i4+Pz2faaNWvS1qxZk8Yw\nDM2YMWPnkSNHnuroPcgBbgFcV9d6S9+6OluPBAD6CurBLYBtUkMxGo0ikUhkJCISiURGo9EoMu+j\n1+v9/P39dWxbLBZXFRYWRhMRVVRUBB4/fvzJP/3pT6sffvjhn9atW7c4MjLyjPlrzJkzhyQSCRER\nCYVCCg8Pf3CrUPYwmW/t7dtjqLyc6N49Db3zDtHOnfwaH9poo+1YbY1GQxkZGURED34vu627maiz\n7emnn1aPGTPmgvmWk5OjEAqFdaZ9Bw4cWGv+/N27d0+fP3/+Zra9devW2SkpKesZhqExY8ZceO21\n1z5iGIaKioqiRo4c+b3588lOj1AmTmQYotZtxgxbj+ZnBQUFth6CQ0E8uYNYcov4eISiVqvl7T0m\nEomMBoPB19fX11BdXT3Ux8fnmnkfPz8/vU6n82fbOp3OXywWVxG1Hq1MmzbtSyKiqKio005OTi01\nNTWDBg0aVGONz9KbUDcBAHtlk6K8QqHIzczMVBIRZWZmKpOSkvaZ94mMjDxTUVERqNVqJQ0NDW7Z\n2dkzFQpFLhFRUlLSvqNHjz5FRFReXi5raGhwc4RkQsTfiz+yh8rADcSTO4glj3T30KYnW01NjXds\nbOzhwMDAcrlcfqiurk7IMAzp9fphiYmJ+9l+eXl5CTKZ7LuAgIDK1atXv8Xub2hocJ09e/bWMWPG\nXBg3btzXBQUFMebvQXY65QUAYEvUgykvrJTnAXtYwKjRaPCXIIcQT+4gltzC1YbtHJ8WMAIAdBeO\nUHggMbE1mURF8a92AgB9S0+OUJBQeAAXfwQAvsCUl50TCol27uR3MmEXQgE3EE/uIJb8gYRiQ7gT\nIwA4Ekx52VBMTGsxnqh17cnOnTYdDgAAprzsFVbFA4AjQUKxIb6uim8L5qm5hXhyB7HkD9yxsZeZ\nL2LENBcAOArUUHoZ6iYAwGeoodgR1E0AwFEhofQye6qbmMI8NbcQT+4glvyBGkovYxcxAgA4GtRQ\neoE9XE0YAIAINRTew9WEAaAvQELpBY5QiMc8NbcQT+4glvxhk4RSW1vrLZfL1TKZrDwuLu5QfX19\nm5NA+fn5k4KDgy8GBgZWpKenp7L7k5OTd0RERJRERESUjBw58nJERERJ742+6+y1EA8A0BU2qaEs\nXbp07eDBg28sXbp0bXp6empdXd1AlUqVZtqnubnZOSgo6LvDhw8/7efnp4+KijqdlZU1KyQkpMy0\n3+LFi9cJhcL6ZcuWrTTdz6caCgCAvbC7Gkpubq5CqVRmEhEplcrMffv2JZn3KSoqGi+VSislEonW\n1dW1MTk5eUdOTs4U0z4Mwwh27tz5/KxZs7J6a+xdgasJA0BfYpPTho1Go0gkEhmJiEQikdFoNIrM\n++j1ej9/f38d2xaLxVWFhYXRpn1OnDgxQSQSGQMCAi619T5z5swhiURCRERCoZDCw8Mf3HuanXe1\nZruoiOjcudZ2UpKGVqyw7vtZs/3hhx/2evwcuY14ctc2raHwYTz21tZoNJSRkUFE9OD3srusNuUl\nl8vVBoPB13z/qlWr3lYqlZl1dXUD2X3e3t61tbW13qb99uzZMz0/P3/S5s2bFxARbdu2bXZhYWH0\n+vXrX2X7vPzyy5/KZLLyN9544//M34cPU16OdGtfjUbz4MsIPYd4cgex5FZPprysdoSiVqvl7T0m\nEomMBoPB19fX11BdXT3Ux8fnmnkfPz8/vU6n82fbOp3OXywWV7HtpqYml717904tLi4ex/3oubF9\nu+Pc2hf/w3IL8eQOYskfNqmhKBSK3MzMTCURUWZmpjIpKWmfeZ/IyMgzFRUVgVqtVtLQ0OCWnZ09\nU6FQ5LKPHz58+OmQkJCyYcOGXe3NsXeFPdzaFwCAKzZJKGlpaSq1Wi2XyWTlR48efSotLU1FRHT1\n6tVhzzzzzH4iIhcXl6YNGzakxMfHHxw9enTpzJkzs03P8MrOzp7J12K8IzKdp4aeQzy5g1jyBy69\nAhbBPDW3EE/uIJbc6kkNBQkFAAAesLt1KAAA4HiQUMAimKfmFuLJHcSSP5BQAACAE6ihAADAA6ih\nAACAzSGhgEUwT80txJM7iCV/IKEAAAAnUEMBAIAHUEMBAACbQ0IBi2CemluIJ3cQS/5AQgEAAE6g\nhgIAAA+ghgIAADaHhAIWwTw1txBP7iCW/IGEAhY5e/asrYfgUBBP7iCW/GGThFJbW+stl8vVMpms\nPC4u7lB9fX2bN8nNz8+fFBwcfDEwMLAiPT09ld1fVFQ0fvz48UURERElUVFRp0+fPh3Ve6Pvm+rr\n6209BIeCeHIHseQPmyQUlUqVJpfL1eXl5bLY2NgjKpUqzbxPc3Ozc0pKyob8/PxJpaWlo7OysmaV\nlZWFEBEtXbp07fvvv/9OSUlJxHvvvbd86dKla3v/UwAAgCmbJJTc3FyFUqnMJCJSKpWZ+/btSzLv\nU1RUNF4qlVZKJBKtq6trY3Jy8o6cnJwpRERDhw6tvnnz5gAiovr6eqGfn5++dz9B36PVam09BIeC\neHIHseQRhmF6fRMKhXXsv1taWgSmbXbbtWvXc/Pnz9/Mtrdu3To7JSVlPcMwpNVqR4jFYp2/v/8V\nPz+/qitXrvibP5+IGGzYsGHD1vWtu7/tLmQlcrlcbTAYfM33r1q16m3TtkAgYAQCAWPer619rHnz\n5n328ccfvzZ16tS9u3btmvG73/3uc7VaLTft093zqAEAoHusllDMf+BNiUQio8Fg8PX19TVUV1cP\n9fHxuWbex8/PT6/T6fzZtk6n8xeLxVVErdNhhw8ffpqI6Lnnnts9f/78v1vjMwAAgOVsUkNRKBS5\nmZmZSiKizMxMZVJS0j7zPpGRkWcqKioCtVqtpKGhwS07O3umQqHIJSKSSqWVx44dm0hEdPTo0adk\nMll5734CAAD4FVvUUGpqarxjY2MPBwYGlsvl8kN1dXVChmFIr9cPS0xM3M/2y8vLS5DJZN8FBARU\nrl69+i12/+nTpyPHjx9fGBYWdvaxxx77T3FxcYQtPgc2bNiwYft5s/kAerodOHBgUlBQ0EWpVFqh\nUqlS2+rz6quvfiyVSitCQ0PPIfn0LJ4FBQUxXl5eN8PDw0vCw8NL3n///WW2HjNft7lz537u4+Nj\nHDNmzIX2+uC7yV088d20fLty5Yp/TExMwejRo7995JFHvvnoo49ea6tfV7+fNv9gPdmampqcAwIC\nKi9fvixpaGhwDQsLO1taWhpi2mf//v2JCQkJeQzD0KlTp6Kjo6NP2XrcfN0siWdBQUHM5MmTc209\nVnvYjh8/PqG4uDiivR9AfDe5jSe+m5Zv1dXVviUlJeEMw9Dt27c9ZDLZd1z8dtr1pVc6WqvCMl3z\nEh0dXVhfXy80Go0i24yY3yyJJxHOoLPUhAkTTgwcOLCuvcfx3eyazuJJhO+mpXx9fQ3h4eFniYg8\nPDzuhISElF29enWYaZ/ufD/tOqHo9Xo/f39/HdsWi8VVer3er7M+VVVV4t4cp72wJJ4CgYA5efLk\n42FhYecSExPzSktLR/f+SB0Dvpvcwneze7RaraSkpCQiOjq60HR/d76fVjttuDd0tFbFlPlfLZY+\nr6+xJC7jxo0r1ul0/u7u7ncPHDiQkJSUtK+8vFzWG+NzRPhucgffza67c+eOx3PPPbf7o48++oOH\nh8cd88e7+v206yOUjtaqtNenqqpKjEu1tM2SeHp6et52d3e/S0SUkJBwoLGx0bW2tta7t8fqCPDd\n5Ba+m13T2NjoOn369D2zZ8/e1tbSje58P+06oXS0VoWlUChyv/jii5eIiE6dOvWYUCisF4lERtuM\nmN8siafRaBSxf7UUFRWNZxhG4O3tXWubEds3fDe5he+m5RiGEcybN++z0aNHl77++usfttWnO99P\nu57ycnFxadqwYUNKfHz8webmZud58+Z9FhISUrZx48ZFRESLFi3amJiYmJeXl5colUor+/fv/+OW\nLVvm2nrcfGVJPHfv3v3cp59++rKLi0uTu7v73R07diTbetx8NWvWrKxjx45NvHHjxmB/f3/du+++\n++fGxkZXInw3u6OzeOK7abmvvvrqN9u2bZsdGhp6PiIiooSIaPXq1X+6cuXKcKLufz8d9p7yAADQ\nu+x6ygsAAPgDCQUAADiBhAIAAJxAQgEAAE4goQAAACeQUAB6gbOzc/O4ceOKq6urh/b0tX7729/+\nY9CgQTV79uyZzsXYALhi1+tQAOyFu7v73eLi4nFcvNY//vGP386dO3cLLtMCfIMjFIAuOn36dFRY\nWNi5+/fvP/Tjjz/2HzNmzDddvRBhfn7+pEcfffTr8PDws3K5XE1EtGLFihVKpTLzySefPC6RSLRf\nfvnltMWLF68LDQ09n5CQcKCpqekXfwDiyrrANzhCAeiiqKio0wqFInfZsmUr79271+/FF1/cOnr0\n6FJLn3/9+vUhCxcu3HTixIkJI0aM+KG+vl7IPnb58uWRBQUF//vtt98+8thjj53au3fv1HXr1i2e\nNm3al/v3739mypQpOdb5VAA9h4QC0A3Lly9/LzIy8ky/fv3urV+//tWuPPfUqVOPTZw48diIESN+\nICISCoX1RK1Xck1ISDjg7OzcPGbMmG9aWlqc4uPjDxIRjR079oJWq5Vw/kEAOIQpL4BuuHHjxuAf\nf/yx/507dzzu3bvXryvPFQgETHvTVW5ubg1ERE5OTi2urq6N7H4nJ6cW8ykvAL5BQgHohkWLFm1c\nuXLlshdeeGF7ampqeleeGx0dXXj8+PEn2SMOXGIdHAX+4gHooi+++OKlhx566H5ycvKOlpYWp8cf\nf/ykRqOJiYmJ0Vjy/CFDhlzftGnTwmnTpn3Z0tLiJBKJjAcPHown+uUNjMzP4sJZXcB3uNowQC/w\n9PS8ffv2bU+uXm/OnDkZkydP/uf06dP3cPWaAD2FKS+AXuDl5XWLy4WNJ06cmNCvX797XIwNgCs4\nQgEAAE7gCAUAADiBhAIAAJxAQgEAAE4goQAAACeQUAAAgBP/Dy3G3mtzwdUhAAAAAElFTkSuQmCC\n",
"text": [
- "<matplotlib.figure.Figure at 0x48a36d0>"
+ "<matplotlib.figure.Figure at 0x3d76250>"
]
}
],
- "prompt_number": 4
+ "prompt_number": 3
},
{
"cell_type": "heading",
@@ -368,35 +354,19 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "Tfld = -1.64*10**-3*sin(2*x)- 2.4*10**-3*sin(x)"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['vectorize', 'prod', 'plotting', 'Circle', 'diag', 'sinh', 'trunc', 'plot', 'eye', 'det', 'tan', 'product', 'gamma', 'roots', 'sin', 'zeros', 'cosh', 'interactive', 'conjugate', 'take', 'trace', 'beta', 'exp', 'ones', 'multinomial', 'cos', 'transpose', 'solve', 'diff', 'invert', 'pi', 'tanh', 'Polygon', 'reshape', 'sqrt', 'floor', 'source', 'add', 'poly', 'mod', 'sign', 'power', 'binomial', 'log', 'var', 'seterr', 'flatten', 'nan', 'test']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ "Tfld = -1.64*10**-3*sin(2*x)- 2.4*10**-3*sin(x)\n"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAcAAAAEPCAYAAADVmxQSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdYFOcTx7+AvUfBioolFo4udiVgxII9UbFG0diVqCnm\np0aNLRE1doMt2CMIKipIROUUGypFBWtEkQMLiJ12cPP745UL6B0ccHe7LPt5Hh7dvbfM3O7t7Ftm\nxoCICCIiIiIiIqUMQ64FEBERERER4QLRAIqIiIiIlEpEAygiIiIiUioRDaCIiIiISKlENIAiIiIi\nIqUS0QCKiIiIiJRKODWAQUFBsLS0hLm5OVasWKGyjLu7OyQSCezs7BAZGalx3dWrV8PQ0BApKSk6\nk19EREREpOTCmQHMyMjAlClTEBQUhBs3bsDX1zePgQMAPz8/PH78GDExMdixYwfc3Nw0qhsfH4/g\n4GA0btxYrzqJiIiIiJQcODOAYWFhkEgkaNCgAcqUKQNXV1cEBATkKRMYGIjRo0cDAGxtbZGVlQWZ\nTFZg3dmzZ8PDw0Ov+oiIiIiIlCw4M4AymQwNGzZUHpuamkImk2lUJiEhQW1df39/mJqawsrKSsca\niIiIiIiUZMpw1bGBgYFG5TSJ1JZTJi0tDcuXL0dwcHCh6ouIiIiIlD44M4CmpqaIj49XHsfHx+cZ\n1eUu0759ewD/jQjlcnmeujnnHzx4gEePHsHa2lp5vk2bNrhy5Qpq166dp+3mzZvjwYMHulJPRERE\nRHBYW1sjKiqKazG0B3FEWloaNW7cmGQyGWVmZpK9vT2Fh4fnKePr60sDBw4kIqLw8HCysrLSuC4R\nkZmZGb148UJl//mpvnDhwiJqxV+EqBORMPUSdSo5CFGv/HTi0GToBM5GgBUqVMCff/6Jnj17QqFQ\nYPTo0bCzs8OWLVsAAJMmTcLXX3+NkJAQSCQSlC9fHl5eXvnW/RhNp1k/5tGjR0XWi68IUSdAmHqJ\nOpUchKiXEHVSB2cGEAB69+6N3r175zk3adKkPMcbN27UuO7HxMbGFk9AERERERHBIkaCUcHYsWO5\nFkHrCFEnQJh6iTqVHISolxB1UocBUencJmlgYCDuEBUREREpBEJ7boojQBVIpVKuRdA6QtQJEKZe\nok4lByHqJUSd1CEaQBERERGRUok4BSoiIiIiohFCe26KI0ARERERkVKJaABVIMQ5cCHqBAhTL1Gn\nkoMQ9RKiTuoQDaCIiIiISKlEXAMUKXlkZgJxccDLl4CJCVCnDlCpEtdSiYgIHqE9NzmNBCMiojHP\nnwN79gD+/kB4ODN6NWsCycnA06dA+fKAmRng4gJMngyIyZBFREQKQJwCVYEQ58BLrE5xccC4cUDL\nlkB0NPDzz8CzZ0BsLHDtGqQ7dwJpaazcli2AXA7Y2QHTpgEJCVxLXyRK7LXKByHqBAhTLyHqpA7R\nAIrwE7kcWLKEGbMGDZjB8/JiI7wqVfKWNTAAatQAOnQAVq0C7txhU6JWVsDcuUBWFjc6iIiI8Bpx\nDVCEf9y5A4waBRgbA9u2AR/lidSYp08BNze2ZujjA9SqpV05RURKGUJ7boojQBF+cfw44OAATJgA\nnDhRdOMHAHXrsvbatAHatWNTqCIiIiIfEA2gCoQ4B857nYiAlSuBSZOAo0fZvxrkcyxQLyMjwMMD\nWLwYcHICjh3Tjrw6hPfXqggIUSdAmHoJUSd1iLtARbiHCJg3jxmnsDDA1FT7fYwcCbRoAfTtC+za\nBfTqpf0+REREShTiGqAI9yxaBPj5ASEhbN1Pl1y8CAwYABw+DHTponG1Fy9eoHv37gCAp0+fwsjI\nCCYmJjAwMMCVK1dQpsx/75Jr167FpEmTULFixXzbdHR0xOrVq9GmTZs85zWtLyKib4T23BSnQEW4\nZdkytkHl9GndGz8A6NQJ2L8f+Ppr4P59javVqlULkZGRiIyMxOTJkzF79mxERkYiIiIij/EDgHXr\n1iE1NbXANg0MDGCgYppX0/q5USgUhSovIiIiGkCVCHEOnJc6rV0L7N7NjF/t2kVqokh6OTuzUefQ\noUB6epH6JSIEBgbCwsICEokEI0eOREZGBtavX4/ExEQ4OTnhyy+/BABMmjQJbdu2RYsWLfDzzz/n\n2+769euRkJCQp76XlxfMzc1hbm6OmTNnKstWqVIFP/zwA+zt7XH58mVs2bIFzZo1Q6dOnTBhwgTM\nmDEDAMvw7efnl6deDosXL4aVlRVat26N//3vf0X6LjSBl/efFhCiXkLUSR2cGsCgoCBYWlrC3Nwc\nK1asUFnG3d0dEokEdnZ2iIyMLLDu/PnzYW1tDQsLCzg4OCA2NlbneogUgcOHmc9ecDBQr57++588\nGWjeHPjhhyJVT01Nxbhx43D8+HHExMSgfPnyWLt2Ldzd3VG/fn1IpVKcPn0aALBy5UpcvXoVt2/f\nRlhYGMLDw9W26+7ujlq1ainrP378GL/88gsuXryI6OhoxMTEwNvbWylD586dce3aNTRs2BBLlixB\nREQEQkNDcffuXeXo8uNRZs7x0aNHkZCQgBs3biAmJgbR0dE4depUkb4PEZGSCGcGMCMjA1OmTEFQ\nUBBu3LgBX1/fPAYOAPz8/PD48WPExMRgx44dcHNzK7Duzz//jOvXryM6OhpDhgzBr7/+WmjZHB0d\ni60f3+CVTpGRwMSJLKxZo0bFaqrIehkYANu3M1cLX99CV69QoQJatWoFMzMzAMCoUaMQGhqqsuyO\nHTtgbW2NNm3aICYmBnfv3i2w7RwuX76M7t27o0aNGjA0NMTw4cOV/RgZGWHgwIEAgEuXLqF79+6o\nXr06jIyMMGTIkALXak6ePImTJ0/C1tYWbdq0wd27d/Ho0SMNv4HCwav7T4sIUS8h6qQOznaBhoWF\nQSKRoEGDBgAAV1dXBAQEwNbWVlkmMDAQo0ePBgDY2toiKysLMpkMsbGxauvmnt559+4d6nExuhBR\nz6tXbP1t0ybmn8cl1asD3t4suoydHdC0aaGq5zYwRKRyPe/u3bvYtGkToqKiUKVKFbi5uSGrEJFp\nPt50kLufChUqKP9vaGj4SbkcDA0NlWuECoUCmZmZys9++eUXjBs3TmN5RESEBGcjQJlMhoa5nJxN\nTU0hk8k0KpOQkJBv3Xnz5qFRo0bYtWtXgWsuqhDiHDgvdCICxo9nBmfoUK00WWy97O2ZC8awYSxi\njIZkZGTg3r17yhHT33//DQcHBwBAxYoV8f79ewBAeno6qlSpgsqVKyM5ORknTpwosG0iUtbv0KED\nzpw5g1evXkGhUMDHx0fZT27at2+PM2fO4PXr18jOzoavr6/SOJqamiqnXQMCAiCXywEAPXv2hJeX\nF9I/rIM+e/YMycnJGn8HhYEX958OEKJeQtRJHZyNAFW9LauiKFtuly1bhmXLluH333/HrFmz4OXl\npbLc2LFjlVNYNWrUgI2NjXL4n3MTCOU4KiqKe3kOH4bjw4fAvn1aaz+HYrXn7g6pjw/wzTdwPHBA\no/qJiYn47rvv0K9fPygUCtSrVw+urq4AgPHjx6NDhw6oU6cOIiIiYGlpCVNTU9SvXx9dPrheSKVS\nvHr1SqX8Li4ueeovXrwY1tbWAIBBgwZhyJAhkEqleXZ+PnjwAEOGDIGdnR3q1q2LmjVrKl8KJ0+e\nDAcHB/j5+WHw4MGoUqUKpFIpqlatir59+8LOzg6ZmZkoW7YsAgMDYWxsLMz7TwfHOfBFHl3oJ5VK\ndTY1zjnEEefOnaM+ffoojz08PGjp0qV5yowbN44OHjyoPJZIJCSTyTSqS0QUFxdHLVu2VNk/h6qX\nTsLDiYyNie7f51oS1Tx/zuSLjuZaEq2wc+dOmj59OtdiiAgMoT03OZsCbdu2LaKjo5GQkAC5XA4f\nHx/07t07TxkXFxfs27cPABAREQEjIyM0aNAg37oPHz5U1vf394elpaX+lBJRzZs3bMpz0ya285KP\nmJgACxcCM2awqVoBoOksi4hIqYVL6xsYGEgSiYRat25Ny5cvJyIiT09P8vT0VJaZNm0amZubk62t\nLYWHh+dbl4ho0KBBZGVlRa1btyYXFxdKTExU2Xd+qoeEhBRTM/7BmU4KBZGrK9HkyTppXqt6yeVE\nVlZEPj7aa7MIiPdfyUGIeuWnE8cmQ+twGgu0d+/en4z6Jk2alOd448aNGtcFgEOHDmlPQJHis28f\ny8Jw7RrXkhRMmTLAxo0sbqiLC1C5MtcSiYiI6BAxFqiI7njyBLC2BoKCmJtBSWHUKKBxYxamTURE\nRInQnpuiARTRDUTAV18B5uYlz5AkJrJs8pcuAZ9/zrU0IiK8QWjPTTEWqAo+3uIsBPSuk7c3cO8e\nsGCBTrvRiV716wNz5gDffcfJhhjx/is5CFEvIeqkDtEAimifpCRg5kzAywsoX55raYrGd98BDx6w\nWKUiIiKCRJwCFdE+o0ez7A6rV3MtSfHw8WFZ6q9c0Sg7vYiI0BHac1McAYpol1OngNBQYPFiriUp\nPoMHA9nZwJEjXEsiIiKiA0QDqAIhzoHrRaf0dGDqVOZKoCcXAp3qZWjINvDMn88MoZ4Q77+SgxD1\nEqJO6hANoIj2WLkSkEiAvn25lkR79OrFskb4+HAtiYiIiJYR1wBFtMPDh0DbtkB4OPOhExL//APM\nmgXcvAkYGXEtjYgIZwjtuSmOAEW0w/ffMyMhNOMHAD16AFWrsiz2IiIigkE0gCoQ4hy4TnUKDgau\nX2dGUM/o5VoZGLCcgcuW6cUvULz/Sg5C1EuIOqlDNIAihUZBCiS8ScCVhCu4FHsOqVMn4vb/JiDy\n5W08fv0Y7zLfcS2i9unbF8jKYtOhIiIigkBcAxRRy6NXj3Dh8QU8ePkAca/i8Oj1I8S9ioPsjQw1\nKtSAaTVTjD6djPYxrzB7Zmu8z0pFSloKklOTUalsJbSo1QItarVAa+PW6GDaAW3rt0XlciU4wPS+\nfcD27UBICNeSiIhwgtCem6IBFFGSkpaCgHsBCI4Nxtm4s0jPSkfXRl3RyrgVGldvjMY1GqNx9cZo\nVL0RKpatCDx7BlhYML+/Vq2U7RARklKTcO/FPdx7cQ83n93E5YTLuPHsBiQmEvRr0Q/9W/aHVR2r\nkpWzTi5nsUG9vYH27bmWRkRE7wjtuSkaQBVIpVI4OjrqVyAdo06ntxlv4XvLF/uj9yNMFoZuTbqh\nd/Pe+MLsC7Ss1TJ/A/Xtt8xFQMOIL+lZ6bgUfwnH7h2D/11/ZCmyMKDlAIy2Gg37+vZFMoZ6v1Zr\n1wIXL+rULaI03X8lHSHqlZ9OQjOAnOYDFOGOqKdR+PPqn/C55YMvGn+BiXYT4T/MH5XKVtKwgSjg\n+HHgzh2N+6xQpgKcmjjBqYkTVvdYjdvJt+F3yw+uvq6oUaEGJttPxgjLEahSrkoRtdID48cDS5YA\njx4BZmZcSyMiIlIMxBFgKYKIEBwbjN/O/4Z/U/7FpDaTMN52POpVrVfYhoAvvwSGDAGmTCm2XApS\nIPhBMDzDPXEu7hzcbNzwfcfvCy+Xvpg9myXP9fDgWhIREb0itOemaABLCVcSruDnUz8j4W0CFjgs\nwFDJUJQ1Klu0xo4eBebOZaPAMtqdRIh7FYc1l9dg9/XdGGM9BnO6zEHdKnW12kexefAA6NABiIsD\nKmk4YhYREQBCe26KbhAqEJIfzN3kuxjsMxguy1wwzGIYoqdEY6TVyKIbP7kc+PFHYNUqrRs/AGhc\nozHW9lqLmKkxUJAC5pvMsSBkAd5nvldZnpNr1awZM4D79+ukeSHdfzkIUSdAmHoJUSd1cGoAg4KC\nYGlpCXNzc6xYsUJlGXd3d0gkEtjZ2SEyMrLAurNnz4a5uTnMzc3Rt29fvHjxQud68JGENwmYeGwi\nunh1gX19e+z9ai8mtplYdMOXw7ZtQKNGQM+e2hFUDfWq1sO63utwffJ13E+5j9abWuNA9AH+vH3O\nmAFs2MBJwlwREREtQRyRnp5OZmZmJJPJSC6Xk729PUVEROQp4+vrSwMGDCAiooiICLK2ti6w7pkz\nZyg7O5uIiObMmUMzZ85U2T+HqusUebacPM57UK0VtejHkz/Si9QX2mv89WuiOnWIIiO116aGnH10\nlqz/tKauf3WlyCf67/8TsrOJWrYkOnuWa0lERPSG0J6bnI0Aw8LCIJFI0KBBA5QpUwaurq4ICAjI\nUyYwMBCjR48GANja2iIrKwsymSzfuk5OTjA0ZGp17twZCQkJ+lWMQyKfRKLdtnYIjg3G5W8vw8PZ\nAzUr1tReBx4ebORnY6O9NjXEobEDwieGY6TlSPTc2xNzgucgTZ6mdzmUGBoC06ezUaCIiEiJhDMD\nKJPJ0LBhQ+WxqakpZDKZRmUSEhIKrAsAW7duxYABAwotW0mbA89WZOO30N/Qc29PzOwwE/+M+gfN\nazbPU6bYOiUkAH/+CSxdWrx2ioGRoREm2U/Cjck3EPsqFm23tcWuI7s4kwdjxgCnTwPx8VpttqTd\nf5ogRJ0AYeolRJ3UwZkfoKZOz1TENZZly5ahXLlyGDlypNoyY8eOhdkHX64aNWrAxsZG6QCacxPw\n/biZbTOMPjwar+68wsYuGzHUeqjK8lFRUcXr79tvgZ494fjhxYNL/etUqYOpxlMR+DIQ7kHuMGpq\nBNMUU27kGTUK8PSE1NmZs++jJBwX+/7j6XEOfJFHF/pJpVI8evQIgoSruddz585Rnz59lMceHh60\ndOnSPGXGjRtHBw8eVB5LJBKSyWQF1t25cyd17NiR0tLS1PbPoepawzvam0w8TOi30N8oKztLdx1d\nv05UuzbRq1e666OIXH96nVpsaEETjk6g1MxU/Qtw9y77bvK510REhIIQnpu54UybtLQ0aty4Mclk\nMsrMzCR7e3sKDw/PU8bX15cGDhxIRETh4eFkZWVVYN0TJ06Qubk5JSUl5dt/Sb6Q7zLekdsRN/p8\n/ed0RXZF9x326kW0bp3u+ykib9Lf0DDfYWT9pzXdS76nfwGcnYn27dN/vyIieqYkPzdVwak2gYGB\nJJFIqHXr1rR8+XIiIvL09CRPT09lmWnTppG5uTnZ2trmMZCq6hIRNW/enBo1akQ2NjZkY2NDU6ZM\nUdl3fhcyJCSkmJrpjvsv7pPlZksafWg0vc14q3G9IusUHEzUvDlRRkbR6uuYHL0UCgVtvrKZTDxM\nyDvaW79C+PoSde2qteb4fP8VFSHqRCRMvfLTSTSAAqEkGsAT909Q7ZW1afOVzaRQKApVt0g6ZWcT\n2dgQ5ZqG5hsf6xWeGE7N1jWjaQHTKF2erh8hMjOJ6tUjunVLK83x9f4rDkLUiUiYepUmAyiGQish\nrL28Fh4XPOAzxAddGnXRT6e7dwOensCFCywregnhdfprjDs6DnGv4uAzxAdNP2uq+07nzgXS04E/\n/tB9XyIiHFHSnpsFIRpAnkNEmHNqDo7fO46gUUFoVL2RfjpOSwNatgQOHAA6ddJPn1qEiLDhygYs\nD10OnyE+cGjsoNsOc+KDymRA+fK67UtEhCNKynNTU8RYoCr4eIszV8iz5XDzd0Po41CEuoUWy/gV\nWqd164C2bXlv/NTpZWBgAPf27tj71V4M9hmMPdf36FaQZs0AKyvgyJFiN8WX+0+bCFEnQJh6CVEn\ndYj5AHlKqjwVQw8OhYIUODX6FCqXq6y/zpOSWLDrixf116eO6N60O0LGhKDv330R9zoO87rO010W\n+vHjgR07AFdX3bQvIiKiVcQpUB6SkpaCfn/3Q9PPmuKv/n8VP4B1YXF3BxQKYONG/farI4iARy+e\nYIBPb3Rr6oQ1Pf/QjRFMSwNMTYGICKBxY+23LyJIFAogNZXNnJfV80+9sPD5uVkURAPIM2RvZOi5\ntyd6N+8ND2cPGBroeZb633/ZWtbt24CJiX771hIvXrBk9adPM1v04MGHpA0VXiJziAuqplmgh9wT\n7dsaoV8/ttSpNaZPB2rXBhYs0GKjIkIhK4vtKTt2DLh0CbhzB3j5EqhYEcjMBKpVAyQSoF07oH9/\noHNnwMiIa6n/g6/PzaIirgGqgKs58DvJd9D5r84Yaz0Wq3qs0qrx01in//2PZTwvIcYvt16hocCg\nQUDTpoC/P9ClC9vImpzMNmimv/oMSX8Eo3XnWMjajcL9WDmcnNjDZv9+9nAqNm5ugJcXe63Xgk5C\nQYg6AZrr9fQpMG8emyCYNQuoWpWF1b11i913798DGRnseNEi9vnMmUC9esCcOWxvlb4Q6rVShWgA\neUKYLAyOOx3xq+Ov+LHzj9wIcekScPky++WVICIjgW7dmO3p2ZPF7T50CJg4EbCzAyrnWj6tVbUK\npBMCYFz/HZ50/Rr3H6ZjwQJg82bA3JyNGouFnR17ep09W8yGRITA+/fM8JmbA69eASEhbFZi4ULA\nyQmoU4clFgHYv3XqsHt54UJW7uJFNjK0sgJ++gl4+5ZbfQSHvh0P+QKfVD9x/wQZexjTsbvHuBNC\noSDq1InIy4s7GQpJairRrFksFOeWLURyueZ1M7MyyfWgK32560t6m/GWFAqi48eJTE2Jpk4leqt5\nkJ1PWbWKaOzYYjQgIgQCAogaNSIaMYIoPr54bT15wm6p+vWJjnH4mODTc1MbCEubQsCXC+kd7U21\nV9amC48vcCuInx+RlRVRlg6DamuR69eJJBIiV1eiAsK+qiUrO4vGHRlHHbd3pJdpL4mI6OVL9qBp\n2pRIKi2icE+eENWoQfTuXREbECnJpKcTzZzJjN/p09ptOzSUvaQtWMACNekbvjw3tYWwtCkE+V1I\nfYU3OnDzANVZWYeinkTpvK98dcrMJPr8c6J//tG5HNpg/34iY2OinTuJzpwJKVZb2Yps+u7Ed2S3\nxY5SUlOU548dY2/bP/1UxHcCFxei3buLJFNpC69VkvlYr/h4Int7ooEDiV680E2fT54QOTiwWywl\npeDyhaU0hUIT1wA54mDMQXwX9B1Ojj4J67rW3AqzZQtgZgb06MGtHBqwdi3w889srW7MmOJHaDM0\nMMSanmvgZOaEHnt74FX6KwBA377AjRvAlSvAV18B794VsuExY4BdHCbrFdE7kZFAx47A4MFsDbpm\nTd30U7cucOoU0KIFYG8PXL+um35KBVxbYK7gUnX/O/5Ue2VtinwSyZkMSl69IqpThyhK96PQ4qBQ\nEM2fT9SyJVFcnC7aV9B3J76jdtva0ev018rzGRlEY8YQtW9fyDf6tDSimjWJHj/Wuqwi/EMqJTIx\n0X/c+JzZkBMn9NOf0EyGOALUM+fizuHbo9/i+PDjsKlrw7U4wG+/Ab17A9Ycj0LzQaFg7nWBgcC5\nc0AjHYRDNTAwwJqea2BX1w599vfB+8z3AIBy5ZhXQ5cubHfeixcaNlihAjBkCLBHxyHYRDjn5Ek2\n6jtwgP2rT4YPZy4/33zDfF9FCgnXFpgr8lNdV+sVUU+iyMTDhIIfBOuk/fxQqdODB2yUkpCgd3k0\nRaFguzIdHIhev/70c21fq2xFNo05PIacdztTmvy/LO8KBdGcOSw71MuXGjZ28SIbsuojdRXPEaJO\nRESrV4eQiQnR+fPcyhEWxnZDHz9e/LbENUARrRP7MhYu+12w0WUjujftzrU4jJ9+Yk7v9etzLYla\n1q9no75jx1iUDF1jaGCI7f23o3qF6hh9eDQUxBzaDQzYYNnBAejTh4WuKpAOHZiXc3i4boUW4YQr\nV4BffwUOHmQRW7ikXTs2Ehw7lv1eRDRDDIWmB569e4YuXl0wu8NsTGk7RS99FsjZs2yjxu3bLA4T\nDzl2DJg8mTkD6zu0ZnpWOnrt7QWbujZY03ONMnaoQsGmm969A/z8NAhTtWgRi3W1bp3OZRbRH/fv\ns5ehrVuBfv24luY/Tp0CRowAzpwBLCy0377QQqEJazxbCPSl+uv012TraUsLQxbqpT+NyMoisrUl\nOnCAa0nUEhnJNhWEhXEnw8u0lyTZJKFVF1blOZ+RQeTkRDRjhgaN3L/P5qYK46UvwmveviVq3ZrI\n05NrSVSzbx9R48bMXULbCM1kiFOgKtBWLLz0rHQMPDAQHUw7YOEXC7XSZlHJo9POnWzUN3QoV+Lk\nS2IiCwS8eTOb2skPXcYtrFGhBk6MPIF1Yevw982/lefLlWPb3E+dYjLmS/PmQJMmhYqxJsRYjELR\niYhlverUCZg0iZ96jRgBjBsHDBzIYuAWFj7qpCs4NYBBQUGwtLSEubk5VqxYobKMu7s7JBIJ7Ozs\nEBkZWWDdgwcPQiKRwMjICBERETrXQR3ZimyMPDQSxpWMsaH3Bt3loCssb98C8+czhzq+yJSL9+/Z\nlNLUqfrfUaeKhtUbImBEAL4L+g5nHp5Rnq9Rg03R/vqrBmE/R4xg0bZFSjzr17OEKXzPFPbLL2y3\n9JQpHzKhiKiGq6Fneno6mZmZkUwmI7lcTvb29hQREZGnjK+vLw0YMICIiCIiIsja2rrAurdv36a7\nd++So6MjhYeHq+1fl6orFAqadGwSfbnrS0qXp+usnyLxww9E33zDtRQqycoiGjCAyM2t0Bsndc6Z\n2DNk4mFC159ez3P+n3+I6tUjksnyqZwTGi01VbdCiuiU8+fZbHZsLNeSaMa7dyxcoDbD+3JoMnSC\n2ozw/TRY2a1ZsyZ2FTHaRVhYGCQSCRo0aAAAcHV1RUBAAGxtbZVlAgMDMXr0aACAra0tsrKyIJPJ\nEBsbq7Zuq1atiiSPNlkoXYhridcQMiYE5cuU51qc/7h9mzm1RUdzLYlK5s8HXr8GfHz4Nzh1auKE\n9b3Xo8/+Prgw7gIaVWfOiD16ANOmAcOGsY0HKhOa1q0LtG3LHLWGDNGv4CJa4elTwNWV/XyaNOFa\nGs2oXJn5Jjo5sSnbFi24loh/qDWAd+7cwfbt21Xu+MnZCTRt2rQidyyTydCwYUPlsamp6Sdzz6rK\nyGQyJCQkFFi3OEilUjg6Ohap7oawDfCO8cZ5t/OoWr6q1mQqLtKQEDguX86sTN26XIvzCSdOAHv3\nsnBS5cppXq8416qwDLMYhsS3iei1txcujLuAzyp+BoClULxwgU07/f67msrDh7NpUA0MoD510hcl\nWaesLPYCFvSBAAAgAElEQVSCM3484OKS9zO+62Vhwabphw9n2c40+W3xXSdtotYALl26FF988UW+\nlRcUI+u1pmtiqgywthg7dizMzMwAADVq1ICNjY3ywucY1MIcn449jZ2vdyLULRQxV2MKXV+Xx1G7\ndgH//gvH6dN5IU/u48REYORIKRYuBIyNC1c/B33JO9txNmRvZPhi0RdY1WMVenzZA4aGwMSJUkyY\nAHTr5ogePVTUNzEBTp6E48uXwGef8er718dxVFQUr+QpzPHcucD791I4OABA3s9z4JO8Hx9PmQLs\n3y/F6NGAt3fh6uf8/9GjRxAkXM29njt3jvr06aM89vDwoKVLl+YpM27cODqYK7ieRCIhmUymUV1H\nPa8Bno49TbVX1qYbT29otV2t8O4dy81S5Pw+uiM7m8jZmWjhQq4l0ZxsRTYNPTiUBvsMpmzFfzlp\nzpxhGSTUpmf66iui7dv1I6SIVvDzYy4FRU25xReSk1kapaCg4rXDocnQCQXuAr148SL69u0La2tr\nWFpawtLSElZWVsU2vG3btkV0dDQSEhIgl8vh4+OD3r175ynj4uKCffv2AQAiIiJgZGSEBg0aaFT3\ng3EvtpyacDvpNob7DYf3YG9Y1rHUS5+FYulSFqqigBE9F2zcCLx5w2ZmSwqGBobYNXAXkt4nYVbQ\nLOV95uTENnxOnKhm5524G7REER/PAjH4+ADGxlxLUzxq1QJ27wbc3IBnz7iWhkcUZCHNzMzI39+f\nHjx4QA8fPlT+aYPAwECSSCTUunVrWr58OREReXp6kmcuD9Np06aRubk52dra5hnRqapLRHTo0CEy\nNTWlChUqUJ06dahXr14q+85P9cLELXz27hk1WduEdkbu1LiOXomJITI2phA/P64l+YToaKJatZiv\neFHhMsZkjqP8ygsrlefS01le4b/+UlEhNZXtBi0g9qoQ42aWNJ2ys4m+/JLoo4mlTyhpes2dS9Sr\nV/7JdEtTLNACtenatas+5NA72jCAafI06ri9I807PU9LUmmZ7GyiLl2INm7k3Q81M5MFo9m6tXjt\ncK3X41ePyfQPU9p3Y5/y3I0bLEWNyvfEsWOJ/vgj3za51kkXlDSdNmwg6tCh4AA+JU2vzEymV363\n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\ns/T/jVWB3070t1UAAAAASUVORK5CYII=\n",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
"text": [
- "<matplotlib.figure.Figure at 0x3dbe950>"
+ "<matplotlib.figure.Figure at 0x3b09350>"
]
}
],
- "prompt_number": 6
+ "prompt_number": 4
},
{
"cell_type": "heading",
diff --git a/ELECTRIC_MACHINERY/chapter5.ipynb b/ELECTRIC_MACHINERY/chapter5.ipynb
index 3f99f735..e0897bf4 100755
--- a/ELECTRIC_MACHINERY/chapter5.ipynb
+++ b/ELECTRIC_MACHINERY/chapter5.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:fdfb62ac44329d8ca6f9c44e55b110ca6276a0bf982882f2c43000518ecc6bb3"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -282,6 +283,7 @@
"%matplotlib inline\n",
"import cmath\n",
"import math\n",
+ "from pylab import *\n",
"\n",
"\n",
"#Variable declaration:\n",
@@ -338,34 +340,19 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['prod', 'Circle', 'power', 'diag', 'sinh', 'trunc', 'binomial', 'plot', 'eye', 'det', 'tan', 'product', 'roots', 'vectorize', 'sin', 'plotting', 'zeros', 'cosh', 'conjugate', 'linalg', 'take', 'solve', 'trace', 'beta', 'draw_if_interactive', 'random', 'ones', 'transpose', 'cos', 'interactive', 'diff', 'invert', 'tanh', 'Polygon', 'reshape', 'sqrt', 'floor', 'source', 'add', 'multinomial', 'test', 'poly', 'mod', 'sign', 'fft', 'gamma', 'log', 'var', 'info', 'seterr', 'flatten', 'nan', 'pi', 'exp']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEZCAYAAACXRVJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4TPf+B/D3RGRBEtllIwQJkZUgBFE0qPCrhqC0pUpz\ndbnVS91eWy9arvZ2uW2JW8ttLa2lC0WqJLFEBRVVqrGGJASxJWSffH5/RE6NLJOJzEyk79fz5DFn\n5pwzn3NmnPec7/csKhEREBHRn56JsQsgIqL6gYFAREQAGAhERHQPA4GIiAAwEIiI6B4GAhERAWAg\n1HsxMTGYP3/+Q88nLS0NJiYmKC0trYOq/jB37lyMGzeuTudJ9cPDfGfUajXGjBkDKysrdO/eXQ/V\nGca1a9fQoUMHFBYWAgDCw8OxfPnySse9cuUKOnbsiKKiIkOWWKcYCDXUrFkzWFlZwcrKCiYmJmjS\npIkyvG7dOr2975IlSzBz5ky9zf9hqVQq5bG+QocePbt378bevXtx7do1HDhwwNjlVMrExATnzp2r\ndpyFCxdi/PjxMDc3B1D2fb//O38/Z2dn9O3bF8uWLavzWg2FgVBDd+7cQW5uLnJzc9GqVSt8//33\nyvDo0aNrNI+SkhI9V2l4lZ3XyHMd9UNEHpl1m5GRAU9PT1hYWOg8rb7/n6jVauVxdeuzsLAQn3/+\nOcaOHVvjeT/99NOIjY19qPqMiYHwkEpLSzFr1iy4ubnBxsYGQ4cORXZ2NoA/fjGvWLECrVu3Rv/+\n/fG///0PPXv2xNSpU2FnZ4e2bdti//79WLlyJTw9PWFra4v//ve/yvyfe+45zJo1CwCQmJgId3d3\n/Pvf/4aLiwscHBywdOlSZdwtW7bA398f1tbWcHZ2xowZM2q0DIsWLcKIESM0nnv11Vfx6quvKssx\nYMAAWFlZwd3dHR9++KHGuOW/mHr37g0AaN68OaysrJCcnIyzZ8+iV69esLOzg42NDZ566incvHlT\nmXb//v3w8fGBjY0NRo4ciejoaGV5AeCrr76Cj48PrK2tERwcjEOHDlW6DDExMZg2bZrGc8OGDcMH\nH3wAoKxpy9nZGVZWVmjXrh127dpVo3Xj6emJhQsXws/PD1ZWVhg1ahTy8/OV1z/44AO4u7vD2toa\njz/+OC5cuAAAmDNnDl555RUAQHFxMZo2bYrp06cDAPLz82FhYYFbt24BAOLj4xEUFARra2v4+Pgg\nLi5OmX94eDhmzpyJnj17wsrKCufPn69Q4/z589G6dWs0a9YMbdu21dhjXbVqFcLCwjBt2jTY29vD\nzc0N3333nfJ6amoqQkJCYG1tjQEDBmDKlClVNgFev34do0ePhp2dHRwcHPD6669Xuje4fPlyTJ48\nGT/99BOsrKzw1ltvVbuugLJf659++im8vb3h4+NTYZ7l/5f++9//wsPDA3Z2dhpNqcnJyQgJCYGN\njQ3s7OwwceJEpZnn/vn7+Pigffv26NOnDwAgICAAVlZW2LBhQ4X3TE5ORvPmzeHq6qrx/JkzZ9C9\ne3dYWVnh8ccfx7Vr15TXunbtinPnziE9Pb3SdVjvCenM09NTdu3aJSIiCxYskB49esjVq1elpKRE\n/vKXv8iwYcNEROT8+fOiUqlk0qRJUlhYKAUFBbJy5UoxNTWV1atXi4jI7Nmzxc3NTf76179KSUmJ\n7Nq1SywtLSU3N1dERJ577jmZNWuWiIgkJCSIqampzJs3T0pLS2Xbtm1iZmYmN27cEBGRPXv2SGpq\nqoiInDx5UlxdXWXdunUatajV6grLc+HCBWnSpInyniUlJeLi4iLJyckiItK5c2eZOnWqlJSUyO+/\n/y4tWrSQLVu2iIjInDlzZOzYsSIikpaWVuE9zp49K3v27BERkZs3b0q/fv1k8uTJIiKSn58vzs7O\nEhsbKyIiW7duFXNzc2V59+7dK46OjvLLL7+IiMiaNWvExcVF8vPzKyzDnj17xMPDQxm+ceOGWFpa\nyuXLl+XYsWPi4eEhly9fFhGRzMxMOX/+vJZPuUyrVq0kKChIrl69Kjk5OdK3b1+ZOnWqiIhs2bJF\nnJyc5OTJk1JSUiJ/+9vfpHPnziIiEh8fL35+fiIikpSUJF5eXtKtWzcREdm1a5cEBgaKiMiZM2ek\nefPmsnPnThERSUxMFBsbG7l06ZKIiPTp00fatGkjZ8+eldLSUikpKalQ47fffivZ2dnKY3Nzc8nI\nyBARkZUrV0rjxo1l1apVIiKyZMkScXR0VKYNCAiQmTNnSmlpqRw+fFhsbW1l3LhxIlLxOzNgwACZ\nMmWKFBYWyo0bN6Rbt27y/vvvV7reVq1aJWFhYcpwdetKRESlUklkZKTk5uZKYWFhhfmV1zJ+/Hgp\nKiqS06dPS4sWLWTz5s0iIpKSkiJHjhwRkbLP18/PT955551q569SqeTs2bOV1i8i8vHHH8sTTzyh\n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\na/B03gAAAABJRU5ErkJggg==\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEXCAYAAACtTzM+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XdUFNfbB/C7VAHpIgJLUYpUAaWIKMWCaBQrCsYCYk1s\nSV5jYjSSGI3GmBhDrEFQY0WNYiOIUhQVLKggFlCWDoL0zu7e9w+c/DaEtsiyaL6fc+awM3P3zjOz\nyz47996ZZVFKCQAAgIS4AwAAgJ4BCQEAAAghSAgAAPAGEgIAABBCkBAAAOANJAQAACCEICH0eEuX\nLt393XffrXvbejgcjoGEhASfz+d36WseGBgYOGfOnMNdWSf0DG/7nvH39w9RU1MrGTp06O2ujq27\nFBUVaZiZmT2pr6+XJYQQNze3mODg4ICWyhYWFmqam5unNjQ0yHRvlF0HCaGDevfuXaWoqFipqKhY\nKSEhwZeXl69h5o8dO+Yrqu3u3r176bp1674TVf1vi8Vi/X0hi6iSDrx7rl+/PiIqKmp0Xl6e9u3b\nt4eKO56WSEhI8F++fDmgrTJbtmz5wt/fP0RWVraekKb3u+B7XpCmpmahu7t79L59+xaJIt7ugH/c\nDqqqqupdWVmpWFlZqaivr5954cKFCcy8r6/vsY7UweVypUQdZ3ejlLI6sgzeHqWU9a4c28zMTH0D\nAwNOr1696oR9rqj/TwTrb+t41tfXyx46dGju7Nmz/+ho3R9++OGRvXv3Ln7bGMUFCeEt8fl8iS1b\ntnxhZGSU3qdPn+KZM2eeKC0tVSXkf9+YDxw4MF9fXz9z1KhRVw8ePDjP2dk5/tNPP/1JVVW11MjI\nKP3mzZvDQkJC/PX09LI0NTULDx06NJep38/PL3T9+vUbCSEkJibGjc1m5/z000+fampqFmpra+eF\nhob6MWUvXrz4ga2tbZKysnK5np5e1jfffLOhI/uwdevWNd7e3mGCy1auXPnLypUrfyGEkLy8PG0v\nL69wdXX118bGxmm///77AsGyzDcmFxeXOEIIUVFRKVNUVKxMSEhwfPHiheHIkSOv9enTp1hDQ6No\n9uzZf5SXlyszz71///5gW1vbJCUlpYoZM2acnDlz5glmfwkh5MKFCxNsbGweqKqqljo7O8cnJydb\ntbQPS5cu3b169eptgssmTZp0bseOHauYfWSz2TlKSkoVpqamT69duzayI8fGwMCAs2XLli8sLCwe\nq6mplcyfP/8A03xACCH79+9faGxsnKaurv560qRJ5/Lz87UIIWTDhg3frFixYichhDQ2NkorKChU\nf/755z8QQkhtba1cr1696srKylQIIeT27dtDhw0bdlNVVbXUxsbmQWxsrCtTv5ubW8y6deu+c3Z2\njldQUKjOyMjo3zxG5v2npKRUYWFh8fjs2bOTmXWhoaF+w4cPv7F69eptampqJQMGDHgZERHhyazP\nyMjo7+LiEqekpFQxZsyYKx9//PFvrTUBlpeXKwcEBARra2vnsdnsnPXr129s6WwwODg4YOHChftv\n3brlpKioWMm8D1s7VoQ0fVvftWvXR8bGxmkDBw581rxO5n9p//79C3V0dHK1tbXztm/f/hmzPjEx\n0cHJyemWqqpqqba2dt7y5ct/bWxslG5ev4mJyXMTE5Pnrq6usYQQYm1t/VBRUbEyLCzMu/k2ExIS\nHFVUVMq0tbXzBJenp6cbOTo6JigrK5dPnjz5LPP/TgghDg4OiS9fvhyQnZ2t29Ix7PEopZiEnAwM\nDDKuXr06klJKduzYsdLJyelmbm6udkNDg/TixYv3+Pr6HqWUkoyMDAMWi8WfN29eaE1NjVxtbW2v\nkJAQPykpqcbQ0NB5fD6ftW7duo06Ojo5y5Yt+7WhoUE6MjJyjKKiYkV1dbU8pZT4+fmFrF+//ltK\nKYmOjnaTkpJq3LBhQyCXy5W8dOnSOHl5+eqysjJlSimJiYlxTUlJsaCUkkePHllpamoWnD17dpJg\nLDweT6L5/mRmZurJy8tXV1ZW9qaUEi6XK6mlpZWXkJDgQCklI0aMiPv444+D6uvrZR48eGCtoaHx\n6tq1a+6UUrJhw4bA2bNnH6aUEg6Ho998G+np6YZRUVGjGhoapIuKivq4uLjErlq16mdKKamvr5fR\n09PL3Llz53Iulyt55syZKTIyMvXM/t6/f9+2b9++hYmJifZ8Pp918ODBuQYGBhn19fUyzfchLi5u\nhK6ubhYzX1JSoionJ1eTn5/f7+nTpwN1dXWz8vPz+zH7++LFiwEdea319fU5VlZWj3JycnRKSkpU\nnZ2db6xbt24jpZRcvXp1ZJ8+fYqSkpJs6uvrZZYvX77TxcUlllJKrl275m5lZfWIUkri4+OHGRoa\npjs6Ot5mnmdjY5NEKSU5OTk66urqxZcvX/aklJIrV66MVldXLy4uLlanlBJXV9cYfX19TmpqqhmP\n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\nlqSkJC8oKGgZl8uVOnfu3KQ7d+7YM+sXLly4f8+ePUsSExMdKKWs6upqhYsXL37Q2tmTjY3Ngz59\n+hQvWLDgd09PzwglJaUKQpq+PV67dm1kfX29rKysbH2vXr3qJCUleR05LpRS1q5duz7Kzc3VKSkp\nUdu0adNXTELy9fU9FhIS4v/w4UPr+vp62bVr124eOnTobT09vSxCmhLCoUOH5lpYWDyWlpZudHNz\ni/n9998XDBgw4KW6uvprQgiZPXv2H+fPn58YGRnpwePxJOvq6noxiVkwhtbiq66uVmCxWLRPnz7F\nfD5fIiQkxD8lJcWyI/umr6+faWdndzcwMDCwsbFR+tatW04XLlyY0NJ7RktLK9/DwyPy008//amy\nslKRz+dLvHjxwjAuLs6lI9tq71h11HfffbeutrZW7vHjxxahoaF+zGtRVVXVW1FRsVJeXr7m6dOn\nprt3717aXl2ampqFgu/V5uzt7e+UlZWpMGchhDS9Fn/88cfsJ0+emNXU1Mh//fXX33p7e4cxxywx\nMdHBwMCAI+zZSE+BhPCWVq5c+YuXl1e4h4dHpJKSUoWTk9OtxMREB2Z983+ulsYxt/Wh3bx8W2V3\n7dr10ddff/2tkpJSxcaNG9c3/ybdXnKYNWvW0atXr45izg4Yx44d8+VwOAba2tp5U6dOPfPtt99+\nPXLkyGvN45OXl6/56quvNjk7O8erqamVJCYmOmzYsOGb+/fvD1ZWVi6fOHHi+WnTpp1mysvIyDSc\nOXNmanBwcICqqmrpkSNHPpwwYcIFGRmZBkIIGTJkyL39+/cvXLZsWZCamlqJsbFxmuAIrNb24dq1\nayMF96G+vl72yy+//F5DQ6NIS0srv7i4uM/333//JSGEHDly5ENLS8uU1upjsVh01qxZRz08PCIN\nDQ1fGBsbpzHXhYwaNerqxo0b10+bNu20trZ2XkZGRv/jx4/7MM91cnK6VVdX14s5GzAzM3siJydX\ny8wTQgibzc45d+7cpM2bN6/t27fvKz09vazt27d/JpgE2nrdzM3NUz/77LPtTk5Ot/r161eQkpJi\nOXz48BuCz23r/XbkyJEPb9265aSurv56/fr1G2fOnHmCOf7Nyx46dGhuQ0ODjLm5eaqamlqJt7d3\nmGDTVvNtCD63vWPV0S8urq6usUZGRumjR4+OWr169bbRo0dHEULIjz/++H9Hjx6dpaSkVLFo0aJ9\n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\nhCxevHjv+PHjL126dGm8kZFRuoKCQnVISIi/qOIBAIB2iKpTuSumy5cvew4cOPCpkZFR2pYtW9aI\nIwZ/f/8Dffv2LbS0tExmlr1+/Vpt9OjRV4yNjZ+PGTMmsrS0VKU7Y8rKytJ1c3OLNjc3f2xhYZHy\nyy+/rBB3XLW1tb0cHBwSrK2tH5iZmaV+8cUX34s7JmbicrmSNjY2SRMmTDjfU2LS19fnWFlZPbKx\nsUmyt7dP7AlxlZaWqkybNu2UqanpEzMzs9Tbt287ijOmp0+fDrSxsUliJiUlpfJffvllhbiP0+bN\nm780Nzd/bGlpmezr63u0rq5OVtwxUUrJjh07VlpaWiZbWFik7NixY2Vn3lPdGrAwE5fLlTQ0NEzP\nyMgwaGhokLa2tn6Qmppq1t1xxMXFjbh//76tYEJYvXr1D1u3bv2cUkq2bNmyZs2aNVu6M6b8/Px+\nSUlJNpRSUllZ2dvExORZamqqmbjjqq6ulqeUksbGRilHR8fb169fHy7umCilZPv27Z/OmjXryMSJ\nE8N7wutHKSUGBgYZr1+/VhNcJu645s6dezA4OHg+8xqWlZUpizsmZuLxeBL9+vXLz8rK0hVnTBkZ\nGQb9+/d/WVdXJ0spJTNmzDgRGho6T9zHKTk52dLS0jK5tra2F5fLlRw9evSV9PR0Q2Hj6vYXtqPT\nzZs3ncaOHRvBzH///fdffP/991+II5aMjAwDwYQwcODApwUFBZqUNn04Dxw48Kk4j9WkSZPOXrly\nZXRPiau6ulrezs7uTkpKioW4Y8rOzmaPGjUq6tq1a+7MGYK4Y6K0KSEUFxerCy4TZ1xlZWXK/fv3\nf9l8eU84VpRS8tdff3kMHz78urhjev36tZqJicmzkpIS1cbGRqkJEyacj4yMHCPu4xQWFjY9ICDg\nd2Z+48aN67Zu3fq5sHH12HsZ5ebm6ujq6mYz82w2Oyc3N1dHnDExCgsLNZnOb01NzcIWL6brJhwO\nxyApKcnW0dExQdxx8fl8CRsbmweampqF7u7u0RYWFo/FHdMnn3zy87Zt21ZLSEjwmWXijomQpuHV\no0ePjrKzs7u7f//+heKOKyMjo7+GhkaRv79/yODBg+8vXLhwf3V1tUJPOFaEEHL8+HEfX1/fY4SI\n9zipqamVfPbZZ9v19PSytLW181RUVMrGjBlzRdzHydLSMuX69esjSkpK1GpqauQvXbo0Picnhy1s\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x3794dd0>"
+ "<matplotlib.figure.Figure at 0x34638d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\ncv4f7PGByn7cLZQAAAAASUVORK5CYII=\n",
"text": [
- "<matplotlib.figure.Figure at 0x3965f10>"
+ "<matplotlib.figure.Figure at 0x3463890>"
]
},
{
@@ -376,7 +363,7 @@
]
}
],
- "prompt_number": 2
+ "prompt_number": 1
},
{
"cell_type": "heading",
diff --git a/ELECTRIC_MACHINERY/chapter6.ipynb b/ELECTRIC_MACHINERY/chapter6.ipynb
index d7e74187..1e8c7e97 100755
--- a/ELECTRIC_MACHINERY/chapter6.ipynb
+++ b/ELECTRIC_MACHINERY/chapter6.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:543f6585f8a1e6c2c290bd192837a35d6ff750409ce379696635948315dd7dcf"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -238,6 +239,8 @@
"%matplotlib inline\n",
"import cmath\n",
"from math import *\n",
+ "from matplotlib import *\n",
+ "from pylab import *\n",
"\n",
"#Variable declaration:\n",
"V=230 #line to line voltage(V)\n",
@@ -296,36 +299,27 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
"Hence, the required plot is shown below:\n"
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['f']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\n44+/4865mZlZHhGR7PHexKvnVvZxixYtyp8/f67PxfH1119/KvtdzsjIsM3KyrJOT0+3a9OmTaqG\nhoa0pmPIfvYtW7YsIyLiPkMTE5OC4uJiw5peN3v27H1isVh49uzZYUT/rlcyMzPL4+owuOv21ffC\nxU7ENoQwMjIqquk4AoGAmThx4rGjR49OIiI6cuTI5ClTphwmInJyckratm3b4rVr164VCoXiSZMm\nHc3KyrKu7XzKfs7cvm1tbTO4x/r6+s9NTU3znz592ppbV9dnUNv1Xhe1Shb1ZW9vn+bj43NFNqmU\nlJQY7Ny5c76ZmVleixYtypOSkpxefV1tFVmy683NzXO1tbWrZJtNpqWl2ct+MPVlbm6eq6en9yIu\nLs6Ni7OwsNCYu4jt7OzSa4pTniNHjkwOCQkZ8eeffw4oKioySk5OdiRqeGWqubl5bm3n6vDhw1MU\ncYz6xNAcz9Gr12J9rjvZ11hYWORoaWlVy5ZTy/6ur6//nIiorKysJbcuOzvbivvd3t4+7aeffvpA\n9jv0/Plz/Z49e96QF/ubkn0f9vb2aatWrdogG0dpaWmrCRMmHLezs0tPS0uzf53K/M6dO99NTEx0\nrmmbjo5O5Zo1a9atXr16/Ztez/Hx8R08PDxu17Z90qRJR3/55Zf3UlNT20RHR3uPHTv2V9lt165d\n65eamtpGIBAwy5cv31Tf4zIMI0hPT7fjHpeWlrbKz883bd269dPXfzd1U7tkUZ8P79133/09MTHR\n+dChQ1Orqqq0q6qqtGNiYrwSEhJcNTQ0pLNmzdq/ZMmSb7KysqwlEolmZGRkr8rKSh0LC4scDQ0N\n6ePHj9vVtm9NTU3J+PHjT6xatWpDaWlpq9TU1DbffvvtJ1OnTj3U0PeioaEhnTNnzp7Fixdv45rX\nZWZm2nAVtLNnz9534MCBmWFhYf2lUqlGZmamzcOHD13knYvS0tJWurq6FaampvnPnz/XX7lyZYDs\n9vp+Aeo6V4o6Rn1iaI7nyMrKKjsjI8OWq2Rs6HWnqakpGTNmzG9r165d++LFC724uDi3n3/+eTr3\nh9jCwiLHxsYm8+DBg9MkEonm/v37Z8le93Pnzv0xICBgJVchX1RUZCTbSEQkEoW/bpPSmsieC0am\nYnzOnDl7fvzxx7nR0dHeDMMInj9/rv/777+/W1pa2qpHjx5R1tbWWf7+/oFlZWUty8vLW0RERPSu\n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\n0qktCAAAAABJRU5ErkJggg==\n",
"text": [
- "<matplotlib.figure.Figure at 0x1dff550>"
+ "<matplotlib.figure.Figure at 0x32859d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEVCAYAAAARjMm4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdYVEcXh39L771KR5ogiF2sxIodSyxYsH8ak2g0xhZj\niyXRaIrGFkHsEmPXoGLBLhYQkI4UQXpf2i678/0x2YQYlbYNnfd55tlyd2fO3nv3njtzGocQAgaD\nwWAw3oWCrAVgMBgMhvzDlAWDwWAw6oUpCwaDwWDUC1MWDAaDwagXpiwYDAaDUS9MWTAYDAajXlqM\nsjhw4MC0Xr163Za1HNLC29v75v79+2dKom9tbe3ytLQ02+b0MW3atAOrVq1aLyaRmgTbRx8uDbke\n7Nmz539ffPHFdknJsGPHjk+XLVu2WVL9yxtypSxsbW3TNDQ0KrW1tctF7fPPP/9ZXP2npaXZKigo\nCIVCoVz97jfB4XAIh8ORSBBMeXm5tq2tbVpz+pCkfPIgg6T3UUu9+dm4ceMK0X9TXV29SklJqVb0\n2t3dPVrW8ong8XgqGzZsWPnVV199D/zz3x86dOjFup+bPHny4bVr165uyhizZ8/ed+TIkUn5+fnG\n4pBZ3pGriyaHwyEXLlwYVl5eri1qP//88+fiHocQwnnbNoFAoCju8d5X3rUfGRRJ7SNZnacrVqzY\nKPpv7t69e2737t3viV5HR0e7y0KmN3H27NmRbdq0iTM3N8+u+354eHiX+/fve4leN+eGQ1VVtWbw\n4MF/Hjx4cGpz5W0MsrrZlStl0Rji4+NdBgwYcNXQ0LDQxcUl/vfff/9YtK2qqkp98eLFP9ja2qbp\n6emV9O7d+1Z1dbVa7969bwGAnp5eiY6OTtmDBw+6HThwYFqPHj3uLlq0aJuRkVHB2rVrV5eVlelM\nnTr1oImJSZ6trW3ahg0bVor+9HU/r6+vX+zg4JB879697oGBgdOtra0zTE1Nc+uePDU1Napffvnl\nVhsbm3QzM7OcefPm7aqurlYTbT979uxIT0/PSF1d3VIHB4fkK1euDBRtS0tLs+3Zs+cdHR2dskGD\nBl0uLCw0FG37+OOPfzc3N8/W09Mr6dOnT1hsbKyraNu0adMOzJ8/f+ewYcMu6OjolHXr1u3Bixcv\n7EXbFRQUhKLXr++rXr163a6pqVGtb4x3wfbRu4mLi2szb968Xffv3/fS1tYuNzAwKAKA0tJS3Yac\nd6LztKioyGDEiBHndHV1S7t27fpw1apV60WzlTfNol9ftgsICJjh6uoaa2BgUOTj4xOSkZFh3ZDj\nK4IQwnmTMlRQUBDu2rVrnqOjY5KOjk7ZN998sy4lJaW1l5fXfT09vZIJEyYc5/P5yqLPX7hwYZin\np2ekvr5+cY8ePe7WVTovX760Gj169CkTE5M8IyOjgs8+++yXumMtWbJki4GBQZG9vf2LkJAQH9H7\nf/755+A+ffqEvS7bV1999f3KlSs3vOn33Lx509vS0jJzy5YtS0xMTPJatWr16syZM76XLl0a4uTk\nlGhoaFi4efPmZXW/4+3tffPixYtD39TfvHnzdi1ZsmRL3fdGjhx59scff1wIAN99991SS0vLTB0d\nnTIXF5f469ev931TP9OmTTswb968XUOGDLmkpaXFvXHjxkfTpk07MHfu3N0DBw68oqOjU+bt7X2z\n7vFr7DFoEIQQuWm2trapoaGh/d60LTAwcFrPnj1vE0LA5XI1LS0tXx44cMBfIBAoREREeBoZGeXH\nxsa2IYTgk08+2fnRRx9df/XqlblAIFC4f/9+t5qaGpW0tDQbDocjFAgECnX7VVJS4u/YsWO+QCBQ\nqKqqUpsyZcpBX1/f01wuVzMtLc3GyckpYf/+/TPqfv7AgQP+QqGQ8/XXX6+3sLDI/PTTT3/h8XjK\nV65cGaCtrV1WUVGhQQjBwoULt48cOfJMcXGxXnl5udbw4cPPLV++fCMhBA8fPuyiq6tbIvrNWVlZ\nreLj450JIejTp8/N1q1bJyclJTlUVVWpeXt731i2bNmmunJzuVxNHo+nvHDhwu2enp4Rom3+/v4H\nDA0NCx49etSptrZWcdKkSYcnTJhwTLSdw+EIU1JS7N+1r+obY9q0aYFff/31+rcdK7aP3r2PDhw4\n4C86n0WtIedd3fN0/Pjxx8ePH3+8srJSPSYmxs3CwiKzV69etwghSE1NtX39XPf29r4h6u/MmTMj\nHRwckuLj450FAoHCt99+u7J79+53G/N/rfufrNs4HI7Q19f3dHl5udbz589dVVRUaj766KPrqamp\ntqWlpTqurq7Pg4KCphJC8PTp0/YmJia54eHhnYVCIScoKGiqra1tKo/HU66trVX08PB4tmjRoh8q\nKyvVq6urVe/evdtdNLaysjLvt99+mykUCjm7du2a26pVqyyRDJ07dw4/efLkGNFr0f4oLy/XsrCw\n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\npv5+gjdwVycnJ8fKxsYmS/nY2to6Oycnx0rbcWRkZIhjYmI8u3TpciE/P9/c3Nw8HwDMzc3z8/Pz\nzQHg5s2b7Sv34NJUrHPnzl311VdfBYlEIoVyn9Axpaen27Vr1+721KlT/9epU6fo//u///vx4cOH\nRkLG1aZNm8L58+d/bWtrm9m+ffubJiYmd/38/I4L/bsC6v73ena/lZVVjibfB5s2bXpj0KBBYY0h\npv379w+ztrbOlsvl8ZX3CxlXampqxzNnzvTs2rVrpK+vb8SlS5e8hI4pJCRkkfL1HhQU9NXy5csX\nayKmRpssaht/oQ3FxcUtRo0a9fuaNWvea9my5YPKz3Ecx9cUo7rjP3To0BAzM7Nbnp6eMXw1Y0+0\nHRMAlJeX60ZHR3eaOXPmt9HR0Z2MjIwehoSELBIyrmvXrklWr149JyMjQ3zz5s32xcXFLX755ZeJ\nQsZU3TUaw+tcadmyZR/q6+uXTpgwYZvQsZSUlDQPDg7+YMmSJZ8q91X3utem8vJy3aKiotaRkZFd\nv/rqq6CAgICdQsc0bdq0jWvXrp2dmZlpu2rVqrlvvPGG+ieGQiNOFkKPvygrK9MbNWrU74GBgVuH\nDx++D2DfBPPy8iwAIDc319LMzOxWVbFmZ2dbW1lZ5agznnPnznU/cOCAv52dXfr48eO3nzx58rXA\nwMCtQsYEsG8r1tbW2d7e3hcBYPTo0bujo6M7WVhY5AkV16VLl7y6d+9+rm3btgW6urrlI0eO3HP+\n/PluQsakVJe/l7W1dbaVlVVOdna2taZj27x585SwsLBBv/766+vKfULGdO3aNUlGRobY3d09zs7O\nLj07O9u6c+fOf+fn55sLGZe1tXX2yJEj9wCAt7f3RZFIpLhz546pkDFFRUX5jBgxYi/A3n9RUVE+\ngAb+fg2tZ9TUVlZWpmtvb38tPT1d/PjxY31tNnArFAouMDDw5zlz5qyqvD8oKOhLZR3g8uXLFz3b\nEPj48WP969ev29nb219TNiRpYouIiOilbLNoDDH16NHjzJUrV6Q8z+PTTz/9LCgo6Esh44qNjXV3\ndXVNLCkpaaZQKLhJkyZtWb9+/TtCxPRs/XJ9YvDx8bkQGRnZRaFQcOpoTH42piNHjgxwcXFJun37\ntmnl47QZU1VxVd6qauAW4ne1YcOGtz/55JMlPM/jypUrUhsbm0yhY/L09IyOiIjoxfM8Tpw40cfL\ny+uiJmJS+weHOrewsLCBUqn0ikQiSQsODl6srev++eefr3Icp3B3d4/18PCI8fDwiDly5MiAgoKC\nNn369DlRVbfHZcuWfSCRSNIcHR0vK3smaGqLiIjopewN1Rhiio2Ndffy8rpYueul0HGFhoYuUHad\nnTRp0pbS0lI9bcc0bty47ZaWljf19PRKra2tszZt2jS1PjEouzlKJJK0d999d606Y9q4ceMbDg4O\nqba2tjeUr/UZM2Z8q82YKselr6//WPm7qvy8nZ3d9cpdZ7X5u6ocU2lpqd7EiRO3ymSyhE6dOv19\n6tQpXyH/fps2bZp68eJFLx8fnwvu7u6xXbt2PR8dHe2piZg4nm80VaaEEEIaqUbbZkEIIaTxoGRB\nCCGkVpQsCCGE1IqSBSEq4HmeUygU9H4hLy168RNSjYyMDLGjo+OVyZMnb3Fzc0vQ1dUtnzdv3kqZ\nTJbYt2/fE3fu3DEFAF9f34h58+at9Pb2vujs7Jxy8eJF7xEjRuyVSqVXP/7448+F/n8Qog6ULAip\nQVpamsM777zzTWJiogxgA7ESExNlvXr1Oq0cXcxxHG9gYPD44sWL3jNmzPhu2LBh+zds2DA9MTFR\ntnnz5ilFRUWthf1fENJwlCwIqUGHDh1u+Pj4RAGASCRSjB07dgcATJw48ZezZ8++qjxOuWCXTCZL\nlMlkiebm5vn6+vql9vb21zMzM22FiZ4Q9aFkQUgNjIyMHla1n+d5rvK8TgYGBo8BllCU/1Y+rqio\n0NF8pIRoFiULQlSkUChEu3btGgMA27Ztm9CjR48/hY6JEG0RfFlVQhqzyncPRkZGD6Oiony++OKL\nj8zNzfN37NgxtqrjG9NMsoSoC033QYiKWrZs+eDBgwcthY6DECFQNRQhKqI7BvIyozsLQgghtaI7\nC0IIIbWiZEEIIaRWlCwIIYTUipIFIYSQWlGyIIQQUitKFoQQQmr1/0ZwGmquOtPsAAAAAElFTkSu\nQmCC\n",
"text": [
- "<matplotlib.figure.Figure at 0x2c9aad0>"
+ "<matplotlib.figure.Figure at 0x34979d0>"
]
}
],
- "prompt_number": 5
+ "prompt_number": 2
},
{
"cell_type": "heading",
diff --git a/ELECTRIC_MACHINERY/chapter8.ipynb b/ELECTRIC_MACHINERY/chapter8.ipynb
index 785bba7e..d938905f 100755
--- a/ELECTRIC_MACHINERY/chapter8.ipynb
+++ b/ELECTRIC_MACHINERY/chapter8.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:c0cec23fbe397fb7ebb6d2fd4aa3f54866d7506eaba8e21d17c10d01c93413cd"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -31,6 +32,8 @@
"%matplotlib inline\n",
"from numpy import *\n",
"from math import *\n",
+ "from matplotlib import *\n",
+ "from pylab import *\n",
"\n",
"#Variable declaration:\n",
"R=0.038 #m\n",
@@ -128,15 +131,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "Lm ="
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 0.127968099059 H\n",
+ "Lm = 0.127968099059 H\n",
"(c)The peak torque = 1.53 N.m\n",
"\t(i) The net torque, (at thetam=0) = 0 N.m\n",
"\t(ii) The net torque, (at thetam=45 deg.) = 0 N.m\n",
@@ -146,13 +141,13 @@
{
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\nT5aamuql2J+bmytu3LjxMw8Pj3QPD4/0cePGreGjJ9/KU3mbPXv2HEtLy3xFGcbHxwfV5czVlpCQ\nEGhvb3/N1tY2Z9GiRdO59lFs7du3l7q6ul728PBI79y5czIhBA8fPmzVp0+fo3Z2djcCAgKOFBcX\nm+jaa8yYMZtMTU3vubi4XFHsq82Lq+ddnScf38s7d+5Y+/v7n3Bycsp0dna+umrVqolslynnL7Mq\n25EjRwJkMpkeIQTTp09fNH369EWEEGRmZjq5u7tnlJeXG+bm5optbGxuyuVyESEEnTt3Tk5KSvIl\nhCAoKCg+ISEhUNue2dnZDtevX+/k7+9/omrFofyyKW988uRbeSpvc+bMmb18+fJvq+6vzlnxrnCx\nVVZW6tvY2NzMzc0Vl5eXG7q7u2dkZWU5cuWjvInF4tyHDx+2Ut43derUJYsXL55GCMGiRYumK362\ndLmdOnWqe1pamqfyz0hNXlw+7+o8+fheFhYWmqenp3sQQlBaWmrcqVOn61lZWY5slikv+ziqEhAQ\ncFRPT08OAH5+fkn5+flWANP/MWLEiJ2GhoYVYrFYamtrezMpKcmvsLDQorS0tJmvr28yAIwePXrL\n/v37B2nb08HB4VqnTp1uqHo+3zz5Vp5VIdUMIazOOTk52VfXbgqSk5N9bW1tb4rFYqmhoWHF8OHD\ndx04cGAgVz5VqVqGcXFxIaGhobEAEBoaGsvFc+3evfvpli1bFqvixeXzrs4T4N97aW5uXuTh4ZEB\nAMbGxmWOjo7ZBQUFlmyWqSAqDmU2bdr0eXBwcDwA3L17t62VlVW+4piVlVV+QUGBZdX9lpaWBQUF\nBZZc+CrIzc3t4Onpme7v7y85c+ZMNwAoKCiw5JMn38tz9erVE9zd3S+Fh4dvLCkpManNWdduCgoK\nCiytra3z+OKjjEgkIn369Dnm4+OTsmHDhi8A4N69e2ZmZmb3AMDMzOzevXv3zLi1ZKjJi2/PG+D3\neymVSsXp6emefn5+SWyWqYF2tVVHlXkdCxcunGVkZFT+6aef7tC9IYOq80+Uadu27d28vDzrli1b\nFqelpXkNGjRof2ZmpjPfPLmmJueFCxfOGjdu3Noff/xxHsDEMps8efLyjRs3hleXD5eTQ/k8MfXs\n2bPvW1hYFN6/f79NQEDAUQcHh2vKx0UiEeGjf11eXDrz+b0sKyszHjJkyN5Vq1Z9rRyNQ+GiSZny\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x1d13bd0>"
+ "<matplotlib.figure.Figure at 0x2cad490>"
]
}
],
- "prompt_number": 2
+ "prompt_number": 4
},
{
"cell_type": "heading",
@@ -170,6 +165,7 @@
"%matplotlib inline\n",
"from sympy import *\n",
"from math import *\n",
+ "from matplotlib.pyplot import *\n",
"\n",
"#Variable declaration:\n",
"n1=4000 #r/min\n",
@@ -215,9 +211,6 @@
"\n",
"#Calculations & Results:\n",
"#for part (c):\n",
- "from __future__ import division\n",
- "from pylab import *\n",
- "\n",
"Lleak=0.005\n",
"Posintegral=0\n",
"integral=0\n",
@@ -267,15 +260,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "i1 ="
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 100*t/(51.1872396234976*t + 0.005) \t, (where round(16.2934044186179*pi,2) = 51.1 )\n",
+ "i1 = 100*t/(51.1872396234976*t + 0.005) \t, (where round(16.2934044186179*pi,2) = 51.1 )\n",
"\n",
"i2 = (-200*t + 0.75)/(-51.1*t + 0.2605) \n",
"\n",
@@ -287,31 +272,23 @@
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['fmod', 'cosh', 'sinh', 'trunc', 'tan', 'gamma', 'degrees', 'radians', 'sin', 'expm1', 'ldexp', 'isnan', 'frexp', 'ceil', 'copysign', 'cos', 'tanh', 'fabs', 'sqrt', 'hypot', 'log', 'log10', 'pi', 'log1p', 'floor', 'modf', 'exp', 'isinf', 'e']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEZCAYAAACTsIJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVmX+//HXDSqYLKImGlgumQuCgKa2kJiailGOWpa5\n22hOo2U6NtlmX3VmyqVsbLHfmK3uVpqWmQpmWo6j4DblFqhgpogKIsh2/f44w523bDdwn/ucA5/n\n43E/5OY+nPPmUu/Pfa7rXNexKaUUQgghxP94GB1ACCGEuUhhEEII4UAKgxBCCAdSGIQQQjiQwiCE\nEMKBFAYhhBAOpDAIu+eee44FCxY4te3gwYPZuHFjpY81atQoXnzxxUr/vDBWXFwct9xyC35+fqxd\nu5aYmBg+/vhjAD744AOioqIMTiiqQgqDAODcuXN8/PHHPPHEE05t/+yzz/LCCy9U+ng2mw2bzVbp\nn3eFM2fO8MADDxAUFISHhwcnT540NE9lxcfH06xZM7ce8+WXX2bq1KlkZGTw4IMP8tVXXzF8+HC3\nZhD6kcIgAO1TXv/+/fHy8nJq+9tvv52MjAz27NmjczL9eHh4EBMTw5o1a9x2TKUU188pzc/Pd9vx\nneFMntTUVNq3b++GNMIIUhgEABs3bqR79+725xcvXqRPnz40atQIX19fevXqxYkTJxx+Jjo6mg0b\nNpS4v/j4eIKDg/n73/9OYGAgTZo0YfHixQ7bpKenExsbi6+vL+Hh4Rw5csT+2pNPPklQUBA+Pj6E\nhoayZcsW+2s7duwgLCyMevXq0bhxY55++mn7a1u3biUiIgI/Pz/atm1bZndX48aNeeKJJ+jcubNT\nbXT8+HFiYmLw9/enYcOG/OlPfwJgxowZDp+Wk5OT8fDwoLCw0N5OL7zwAnfddRd+fn788ssveHh4\n8Pbbb9OmTRvatm0LwIoVK2jbti1+fn5ERkaye/du+z6bN2/OvHnziIiIoF69egwYMIDs7GyysrLo\n168fp0+fxtfXFz8/P86cOVMs+6hRo3jiiSfo06cPfn5+dO3alWPHjtlfLynPG2+8QXBwMH5+ftx3\n3332v/9WrVqRnJxMbGwsfn5+5ObmEh0dXezvt0hiYiJRUVH4+flxyy238NFHHznV3sJASgil1I03\n3qj+85//2J+np6er9evXq/z8fHXlyhU1bNgw1adPH4efmT9/vho4cGCJ+4uLi1O1atVS06dPV4WF\nhWrXrl3Kx8dHJSYmKqWUGjlypGrYsKHat2+fys/PV4899pjDvlasWKEyMzOVUkotXLhQBQQEqOzs\nbKWUUpGRkeqTTz5RSimVk5Njz33s2DFVv359tXnzZqWUUvHx8crf31+lpqaW+bvn5eUpm82mTpw4\nUeo2ubm56tZbb1XTp09Xubm5Kjc3V+3atUsppdSMGTPUsGHD7NsmJSUpm82mCgoKlFJKde/eXbVs\n2VIdP35cFRYW2o8XGxurMjMz1dWrV9X27dvVjTfeqPbt26eUUurTTz9VTZs2VTk5OUoppZo3b666\ndeum0tLSVHp6umrXrp1688037b9ncHBwmb/jyJEjlb+/v9q9e7cqKChQ06ZNU506dbK/fn2eL7/8\nUjVu3Fj99NNPKj8/X02dOtVh++bNm6stW7bYn0dHR6vFixcrpZRasmSJuvvuu5VSSl24cEE1btzY\n/vd16NAh1bBhQ7Vnz54y8wpjyRmDALQzBF9fX/vzgIAA+vfvj6enJ3Xr1uXZZ5/lu+++c/gZHx8f\nLl68WOo+PT09eemll7DZbHTp0oUBAwawatUq++sDBw4kLCwMT09PHnvsMfbt22d/7eGHH8bHxwfQ\nzh48PT05cOCA/bjHjh3j/PnzeHl50alTJwA++eQTYmNj6dmzJwDdu3enW7durF+/voqtA9u3bycr\nK4vZs2dTu3ZtateuTZcuXQCKdQ1dz2azMWbMGFq2bInNZqNWrVqANk7j4+NDnTp1WLx4MU888QRh\nYWEADB06FD8/P4c2nzhxIg0bNiQgIIDY2Fh7e5V3/KIMDz74IJ07d8bDw4MZM2Zw4MABjh8/bt/m\n2jzLli1j3LhxtG3bFk9PT2bOnMmhQ4cczuqcsXbtWtq0acNjjz0GQPv27Rk0aBCrV6+u0H6Ee0lh\nEIBWCDIzM+3PL126xKhRowgKCqJ+/frcddddXL161eFNKDMzk/r165e6zwYNGjiMWQQHB3P27FlA\ne6MKDAy0v1a3bl2uXr1qfz5z5kxat26Nv78/AQEBpKenc/nyZQDee+89/vvf/9KuXTsiIyP54osv\nAEhJSWHVqlUEBATYHzt27CA9PZ3vv/8eX19ffH19CQ0NrXD7/PrrrzRv3rzCP1ekadOmZX4vJSWF\nefPmOWRPSUkhLS3Nvk2TJk3sX1/fXs4ICgpy+PkGDRrw22+/lZjn7Nmz3Hzzzfbn3t7eNGrUyGF7\nZ6SkpLBr1y6H32vp0qVcuHChQvsR7lXL6ADCHMLCwjh8+LD90/ecOXNITU1l3759NGrUiIMHDxIW\nFoZSyn410U8//UR4eHip+0xPTycnJwdvb28ATp06RYsWLcrNsnnzZt5++222bdvGbbfdBmjjAUVF\nqU2bNqxYsQKAzz//nCFDhpCWlkbTpk0ZM2YMb731Von7vbbwVVRQUFCxMZYiXl5eXLlyxf78/Pnz\nFd5/06ZNmTFjBn/5y18q/LPOXt2Vmppq/zo7O5v09HSH4nytwMBAh983JyeHtLS0UrcvTdOmTenV\nq1epY1HCnOSMQQAQExPDtm3b7M+vXLlC7dq18fX1JSMjg5kzZxb7me+++45+/fqVus+CggJmzZpF\nYWEhu3btYt26dQwePBgou/sjKysLDw8P/P39yc/P57XXXiM9Pd3++ooVK+yfOH19ffHw8MDDw4Ph\nw4fz+eefExcXh1KKvLw8duzYwenTp0s9Vk5ODjk5OcW+vl5UVBT16tXjxRdfJDc3l9zcXHbt2gVA\nx44d+e677zh16hRZWVn84x//KPbz5XX3PP7447zzzjskJCTYs2zatMl+llSWBg0acOHChTILn1KK\ndevWsWfPHgoKCnjllVfo0KEDrVq1KnH7IUOG8K9//Yuff/6Z/Px8XnrpJUJCQuyF2lkDBgwgMTGR\n1atXU1BQQGFhIQkJCRw+fLhC+xHuJYVBADBixAi++uor+xvj5MmTuXTpEgEBAXTr1o2ePXs6fDLd\nvXs3vr6+ZV7R06RJE2644QZuuukmHnjgAebPn0/Hjh2BkucxFD3v378/9957Ly1btqR58+bYbDaH\nbo21a9dy2223Ua9ePf785z/z0UcfUa9ePVq3bs2yZcuYPn06/v7+NGnShFmzZlFQUFBqxhtuuAE/\nPz9sNhtt27alXr16JW7n6enJ119/ze7du2nUqBFNmza1T+iKiYnhwQcfpG3btnTq1Ik+ffqU+ruV\n9vyee+5hzpw5jBw5El9fX2655RYWLVpU6tnAte0XGhrKAw88QHBwMA0aNCjxqiSbzcYjjzzCc889\nR0BAAFu3bmX58uWl5omNjWXatGn07NmTgIAAEhISnL6s99psDRo0YOPGjbz77rs0aNCAhg0bMnny\n5FILsDAHm3Jm5KoSTp06xWOPPcaFCxfIzc1l7NixTJs2rdh2kyZNYsuWLXh5ebF48WIiIiL0iCOc\n8Pzzz9O4cWOeeuqpcrcdPHgwjz/+OH379i3x9fj4eIYPH86pU6dcHVNUwujRowkODi7xzE+I6+k2\nxlCnTh3efvttOnTowOXLl4mMjKRPnz72T4wAa9as4eTJkxw6dIiEhARGjx5NYmKiXpFEOWbPnu30\ntnJVibXo9PlPVFO6dSUFBgbSoUMHQLu8MCwsrFhf77XT6CMiIsjPzyclJUWvSMLNjF7yQvzODEuQ\nCOtwy1VJycnJ7N69myVLljh8PyUlxWGNl+DgYFJSUggODnZHLKGj6Ohoy649VB1d/39PiLLoPvh8\n+fJlHnroIRYsWOAwgarI9ae48qlGCCGMpesZQ15eHoMGDWLo0KEMGDCg2OvBwcGcOnWKrl27ApR6\nthAUFFTmJYdCCCGKa9WqlcOaWM7S7YxBKcXYsWNp3749kydPLnGbmJgYPv30UwD27t2Lp6enw+zM\nIqdPn7avSmnmx8svv2x4huqS0woZJafkNPvj2iVPKkK3M4YdO3bwySefEBYWZr8E9W9/+5u933n8\n+PEMGjSIuLg4QkJC8PLysnw/aHJystERnGKFnFbICJLT1SSnOehWGO6++277ssNlWbhwoV4RhBBC\nVILMfHahUaNGGR3BKVbIaYWMIDldTXKag24zn13JZrNhgZhCCGEqlX3vlDMGF4qPjzc6glOskNMK\nGUFyuprkNAcpDEIIIRxIV5IQQlRT0pUkhBDCJaQwuJBV+h2tkNMKGUFyuprkNAcpDEIIIRzIGIMQ\nJqMUXLkCWVlVf1y5Ajk5MHAgzJoFHvJRsEap7HunFAYhXCA3FzIytEdmZvlfX/s8MxMuX/79zTw7\nG7y8oF69qj9uuAE8PeHPf4aOHeGf/wRZwLjmkMJgAvHx8URHRxsdo1xWyOnujDk5cPEiXLigPcr7\n+uJF7U09LS2enJxoCgvBz+/3h6+v81/7+pb8Zu5K69fH89JL0dx/P/zf/7l2365khX+bYJ2clX3v\ndMuNeoRwF6WK3rC1x7lzjn8WfX3+vOMbfUEBBARA/fran0WPoudNm0L79r8/r18f/P3hwAHo21f7\nhG/mT+I+PrBxI0RFaflLWfBYCEDOGIQF5OfD2bNw5oz2+PXX3/8s6Y3fywtuvBEaNdIeJX3dsKHj\nm/8NN5j7jd1VTp7UisOMGTB6tNFphN6kK0lYTmGh9oZ/8iScOgWpqY5v+kV/pqdrb+RNmmif3Iv+\nDAzUHte+6TdsCN7eRv9m5nb4MERHw1tvaYPSovqSwmACVul3dFfOy5chKen3N/6iP4u+Tk3VumOa\nNdMewcG/v/GfOxfPffdF07Sp9oZfy6Sdnlb9O9+7V+sCW7oUevUyLtf1rNqeZiVjDMLtlNI+0f/y\nCxw/XvzPzExo3hxuueX3N/9evRwLQd26Je87Ph4iI93529QskZGwejUMHgybNkF4uNGJhJnIGYMo\nV04OHDkCP/30++Pnn+HoUW1Qs1Ur7dGypeOfTZrIdfNmt3o1PP007NwJN99sdBrhatKVJKosL097\nw09MhP37fy8Cqanam327dtC2rfZnu3Zw223apZbC2t54A/7f/4Pvv9cG40X1IYXBBKzS7xgfH09E\nRDSJibBvn1YIEhO1onDLLdpEqLAw7fLMdu20olC7tvszWqUtq0POZ57Rxh2++Ua7qsso1aU9zULG\nGESpCgrg0CH48UfYtQu2bNEu6wwL0/qWu3aF8eOhQwdtgpWoeebOhSFDYNQo+PRT6QKs6eSMoRq6\ncgV++AHi4rS+4//8B266SSsA3bppjw4d3H8WIMwtJwd694Y77oDXXjM6jXAF6UqqwXJytEIQH68V\ng717te6gHj3g7ruhSxdo0MDolMIK0tPhrrtg0iSYMMHoNKKq5EY9JuDONdpPnIC334b+/bXr/J97\nTlvI7fnntYlhO3Zoq2n27Vu8KFhhLXkrZITql7NBA1i/XltPafNmfTOVpLq1p1XJGINFFBZq4wNr\n18KGDdqbf79+MGIEfPKJXE0iXKdVK1i+HB5+GLZv164+EzWLdCWZmFKwezesWAGrVmlzBgYOhPvv\nh9tvd/0KnEJca/FiePVV7QOJfPCwJhljqEaOHoUlS7TlCry8tKtFHn5YGzAWwp2mTNEuaf76a7lY\nwYpkjMEEqtLveOUKfPQRdO+uDf5dvap1G/38s9bf68qiYIX+UStkhOqf87XXtA8nkyZpZ7B6q+7t\naRVSGAx24gRMnaqtHbR8ufYfMCUF5s3TriyqCUtBC/Py9IRly7SxhoULjU4j3EW6kgyglHZ56euv\nw9at2qSiiRO1BeeEMKOkJG1+w7Jl2mXQwhpkjMEi4uK0m6ScOgVPPQVjxsh6Q8IaNm+G4cPh3//W\nznCF+ckYgwmU1e+4bZt2c5Rx42DsWG210qeeMqYoWKF/1AoZoWbl7NVLW1Np4EBtUqUealJ7mpkU\nBp0dOQIPPKDdRnHUKG210hEjzHvjGSHKMnUqtGgBTz7pnsFoYQzpStLJxYswcyZ8+CFMm6adHRi5\naqUQrnL5srbe1sSJ2uKLwrykK8kklIKVK7XlqjMytFVNp02ToiCqDx8f+PxzePFF7SIKUf1IYXCh\n1avjGThQG1z+7DPt5ieBgUanKs4K/aNWyAg1N2fr1vD++9rEy7NnXbffmtqeZiOFwUU++wwefxxC\nQiAhQbu0T4jq7P77tfGyYcO0tbxE9SFjDFWUk6MtG/D119oEtS5djE4khPvk50PPntp9HF54weg0\n4noyxmCAX37Rbn5z7px2liBFQdQ0tWppk97eekuboyOqBykMlbR9O9x5p9Z9tGIF+Ptbp9/RCjmt\nkBEkJ2h3B/zwQ61L6bffqrYvaU9zkMJQCR9+CIMGaYveTZwo6xkJcd992iz+xx7T7jEurE3GGCpA\nKZg9W1sSe/167ZJUIYQmP1+bHd2jB7z8stFpBMhaSbpTSrt95oYN8O230KSJoXGEMKVff4XISK17\n9Z57jE4jZPBZR0ppM5c3b4b4+NKLglX6Ha2Q0woZQXJer2lTbf7O8OHa7P+KkvY0BykMTnjhBdi5\nE7ZsgYYNjU4jhLndfz/ExsITT8h6SlYlXUnlmDtXu/ft9u3QqJEhEYSwnOxs7b7k06Zpk+CEMWSM\nQQeffgrPPw/ffw/BwW4/vBCWtn+/Nvntxx+hVSuj09RMMsbgYv/+N0yerF195GxRsEq/oxVyWiEj\nSM6yhIVpH6weewzy8pz7GWlPc9C1MIwZM4bAwEBCQ0NLfD0+Ph5/f38iIiKIiIhg1qxZesZx2unT\n2s1I/vUv6NDB6DRCWNekSVC/vrYEvbAOXbuStm/fjo+PDyNGjODAgQPFXo+Pj2f+/PmsW7eu7JBu\n7ErKy9Mus7v/fu3TjhCias6cgfBw+OIL7T4Own1M2ZUUFRVFQEBAmduYbYhjxgwICIDp041OIkT1\n0KQJLFwII0fClStGpxHOMHSMwWaz8cMPPxAaGkrPnj3Zt2+fkXHYtk2b1bxkSeWWubBKv6MVcloh\nI0hOZw0erE18K+8s3OiczrJKzsoy9M7DnTp1IiUlBW9vbzZt2sSAAQNISkoqcdtRo0bRvHlzAOrX\nr094eDjR0dHA739JVXmemQl//nM0ixfDTz/F89NPFd9fEVfk0fN5YmKiqfKU9DwxMdFUeaz+3Azt\nuXBhNGFh0Lx5PB07mqt9KvrcDO1Z0vP4+Hg++OADAPv7ZWXofrlqcnIysbGxJY4xXK9NmzZs27aN\nJtdNLXbHGMPYseDtrS0fLITQx5dfwtNPw7592i1Chb5MOcZQnrS0NPvXe/bsISsri8aNG7s9R3w8\nbNoEf/+72w8tRI0SGwtRUdrEN2FeuhaGRx99lDvvvJPDhw/TrFkz3n//fRYtWsSiRYsAWLZsGaGh\noYSGhjJu3DiWLl2Kh4d7a1VODowfrw2O+flVbV9Fp3RmZ4WcVsgIkrMy3nhDmx+0eXPx18yUsyxW\nyVlZuo4xLFu2rMzXJ06cyMSJE/WMUK4FC6BtW3jwQUNjCFFj1K+vLbQ3diwcOFD1D2TC9Wr0khhn\nz0L79vDDD9C6tct3L4Qow9ixULeudrYu9CFrJVXChAnagPPrr7t810KIcqSnaysLrF6t3SZXuJ4l\nB5+NdPiw9g/yxRddt0+r9DtaIacVMoLkrIoGDbTxhj/+Ea5e1b5nxpwlsUrOyqqxhWHWLO3mOw0a\nGJ1EiJrroYe0lVdffdXoJOJaNbIr6cgRuOsuOHYM/P1dtlshRCWkpEBEBHz3ndxH3dWkK6kCZs3S\nVn2UoiCE8YKDtTXK/vhHKCw0Oo2AGlgYTpyADRu0wuBqVul3tEJOK2QEyekqEyZoRWHKlHijozjF\n7O1ZVTWuMLz1lrbKo5wtCGEeHh7a/U/ef1+7H4owVo0aY7h8GZo3h927oUWLqucSQrjW889DUhIs\nXWp0kupBl3kMe/bswVbO+tO1a9cu9Q5truKqwvD229o0/M8+c0EoIYTLZWVBSIi29H2PHkansT5d\nCoOvry+dO3cucwdJSUkkJydX+MAV4YrCoJT2D+6dd6B7dxcFu058fLx9KVwzs0JOK2QEyelq8fHx\nXLwYzfTpkJgIdeoYnahkVmnPyr53lrlWUufOnYmLiytzBz0sUtZ//BEKCrTbdgohzOvBB+G997TJ\nb7IKqzFqzBjDH/+oTaT5619dFEoIoZvjx6FrV0hIgGbNjE5jXW6bx3Ds2DFmzpxJSEhIhQ9mlKws\nbfmLESOMTiKEcEarVvDkk/DMM0YnqZmcKgypqanMnz+f22+/nQ4dOlBQUMDy5cv1zuYyn32mLdJ1\n0036Hscq1zZbIacVMoLkdLVrc/71r7Bnj3YTLbOxSntWVpmFYdGiRURHR9O7d28uXrzI+++/T9Om\nTZkxY4buVyK50ocfwqhRRqcQQlRE3brw5pvw5z//vsiecI8yxxhq165N3759mTVrFh07dgSgRYsW\nJCUluS0gVG2M4dw5uPVWOHNG+4cmhLCW+++H6GiYOtXoJNajy1VJv/76K6tWrWLSpEmcPXuWwYMH\nk5eXV+mQRli7Fvr0kaIghFXNm6ctejliBBhwS/gaqcyupEaNGjFhwgS2bdvGpk2b8Pf3JzAwkLZt\n2zJ9+nR3ZayS1ath8GD3HMsq/Y5WyGmFjCA5Xa2knG3awPDh8NJL7s9TGqu0Z2U5fVVSs2bNmDp1\nKnv27GHdunV4e3vrmcslLlyAnTshJsboJEKIqnjpJfj8c9i/3+gkNUOZYwx79+4lMjKyzB04s01V\nVbaf7MMP4YsvtH9QQghre+st7f/yt99COSv1iP/RZUmMsLCwMk+ZlFL06tWLhISECh+4Iir7yw0c\nCAMGyPwFIaqD/Hzo2BH+/nd44AGj01iDLhPcMjIy6NSpU6mPzp07U7t27UqH1lNeHmzdCn37uu+Y\nVul3tEJOK2QEyelqZeWsVQvmz4cpUyA3132ZSmKV9qysMq9K0ntxPD39+CO0bClXMQhRnfTpA7fd\nBgsXyqxoPVXbtZJeeEG7I9Tf/qZTKCGEIQ4d0pbkPnIE6tc3Oo25yT2fr/PNN9qnCyFE9RISArGx\n8OqrRiepvqplYTh3Tvs0cccd7j2uVfodrZDTChlBcrqaszlfeUVbmjslRd88pbFKe1aWU4WhZ8+e\nTn3PLL79VptCb9abfAghqiY4WFtKf8YMo5NUT2WOMWRnZ3PlyhV69OjhUCGzsrLo0aMHx44dc0fG\nCveTjRsHHTrApEk6hhJCGOriRW0gOj4e2rc3Oo056bJW0qJFi1iwYAGnT5+mU6dO9u/XrVuXCRMm\nVDylm3z/PZg4nhDCBerX15bmfu45bU004ULKCQsWLHBmM904GVMppVRamlK+vkrl5ekYqBRxcXHu\nP2glWCGnFTIqJTldraI5s7OVuuUWpbZv1yVOqazSnhV577xWmWcMRSZOnMi2bds4deoUhYWF9u+P\nMOGU4p07oVs3bTKMEKJ68/aGmTO1e0Pv2CFLZbiKU/MYHnroIVJTUwkPD8fT09P+/X/+85+6hitS\nkX6yZ5+FevXMtRKjEEI/hYUQFgavvSYLZl5Pl7WSitx2220cPnwYm0HluCK/3N13a5eymfiiKSGE\ni61Zo62htHu3nDVcS9cJbpGRkZw9e7bCO3e3nBxITISuXY05vlWubbZCTitkBMnpapXN+Yc/QEGB\n+wahrdKeleVUT/yZM2do06YNXbp0wcvLC9Aq0bp163QNV1F79kC7duDjY3QSIYQ7eXhoYw3PPaet\nvOpRLafuuo9TXUlF1fHa0xKbzUb37t11DVfE2dOhuXPhxAlw09CHEMJElNJWO5g8GYYMMTqNOeg6\nxgBw9OhRfvnlF/r06UN2djZ5eXn4+flV+ICV4ewvN3Sotj7SyJFuCCWEMJ1Nm+Cpp+DgQbjmOpka\nS9cxhjfffJNHHnmEP/3pT4DWtfSACe+UsWcPXDMPz+2s0u9ohZxWyAiS09WqmrN3b2jUCJYudU2e\n0lilPSvLqcLwzjvvsHPnTvsZQosWLbhw4YKuwSoqIwNSU6FtW6OTCCGMYrNpYw2vvKLdrEtUjlNd\nSR07dmTfvn1ERESQkJBAYWEhISEh/PTTT+7I6NTp0LZt2sDTzp1uiSSEMLGePWHYMBg92ugkxtK1\nKykqKorZs2dz5coV4uLiGDp0KDEmm0lidDeSEMI8XnxRu0lXQYHRSazJqcKwYMECfH19ad26NfPm\nzeOuu+5izpw5emerkIQEiIw0NoNV+h2tkNMKGUFyupqrcnbvDk2awMqVLtldMVZpz8oqdx5DQUEB\nYWFhHDp0iEkmXsf6wAF4+mmjUwghzMBm027vO2WKdumqzGuoGKfGGP7whz+wcOFCgoKC3JGpmPL6\nyfLzwc8P0tLghhvcGEwIYVpKQZcu2tjjwIFGpzGGLvdjKJKWlmaf+VyvXj37Ac0y8/noUQgKkqIg\nhPhd0VnDK69oS2bIGkrOc+oEa9asWaxfv56XXnqJKVOm2B9mcfAghIYancI6/Y5WyGmFjCA5Xc3V\nOWNjtR6Fr7926W4t056V5dQYw4QJE/jvf/9b4Z2PGTOGDRs20LhxYw4cOFDiNpMmTWLLli14eXmx\nePFiIiIiKnycgwe1W3kKIcS1PDzg+ee1uQ39+slZg7N0HWPYvn07Pj4+jBgxosTCsGbNGj7++GO+\n+OILEhISGD16NImJicVDltNPNnAgPPIIPPxwheIJIWqAggLtntDvvAP33mt0Gvcy5RhDVFQUycnJ\npb7+1VdfMXz4cAAiIiLIz88nJSWF4OBgJ+Nr5IxBCFEaT0+YPh1mz655haGynBpjmDlzZrExhmee\neabKB09JSaFZs2b258HBwaSkpFRoH7m5cPIk3HprleNUmVX6Ha2Q0woZQXK6ml45H30UjhyBvXtd\nsz+rtGdd3/esAAAZ9UlEQVRlOXXGEB0drVuA609zSrtL3KhRo2jevDkA9evXJzw8nOjoaH75BRo2\njGfnzt9zFv2luft5EaOO7+zzou46s+Qp6XliYqKp8lj9ubQnPPVUNHPmwPjxVd+fWdszPj6eDz74\nAMD+flkZTo0x+Pj42N+wc3NzycvLw8fHh4yMjHIPkJycTGxsbIljDGPHjqVfv34MHjwYgA4dOvDN\nN98UG8soq59s3TpYtAg2bCg3ihCiBsvIgBYttOVzqvCeaSm6rpV0+fJlMjMzyczMJDs7m7Vr1/Lk\nk09W+GDXi4mJ4dNPPwVg7969eHp6VniA+8gRaNOmylGEENWcnx88/ji8/rrRScyvwhPFPTw8iI2N\nZePGjeVu++ijj3LnnXdy+PBhmjVrxvvvv8+iRYtYtGgRAIMGDSIoKIiQkBAef/xxlixZUuFf4MgR\nuO22Cv+YLopO6czOCjmtkBEkp6vpnfOpp+Djj+H8+artxyrtWVlOjTGsWbPG/nVhYSF79uxxaufL\nli0rd5uFCxc6ta/SHDmiXaoqhBDluekmePBB7dLVF14wOo15OTXGMGrUKPsYg4eHB8HBwTzxxBM0\nbdpU94BQdj9Z06awezdU8ApXIUQNdeiQdr+G5GTw9jY6jb50v+ezkUr75TIytE8AGRmyeqIQwnn9\n+2tnDuPGGZ1EX7oOPg8fPtzhCqRLly4xcuTICh/M1Y4fh5YtzVMUrNLvaIWcVsgIktPV3JXzL3+B\nefOgsLByP2+V9qwsp95SDx48aL/fM4C/vz/79+/XLZSzkpK0y8+EEKIiuncHX1/XL65XXTjVldS+\nfXt+/PFHe3G4dOkS3bp1M/yez/Pna7Oe33jDLTGEENXIRx/BJ5/Apk1GJ9GPrmslPfXUU3Tu3Jkh\nQ4aglGLlypWmWHY7KckcS2EIIaxnyBCYNg3++19tkT3xO6e6ksaPH8/y5cvx8/Ojfv36rFixgvHj\nx+udrVzJyeaawWiVfkcr5LRCRpCcrubOnF5eMH48VOaKeau0Z2U5dcYAEBkZSWRkpJ5ZKkzGGIQQ\nVfHEE9rZwuzZEBBgdBrzsOzlqkppg0enT2tT3YUQojKGDYOICDBB77jL6Xq5qhmlpWmnglIUhBBV\nMWmS1p1UUGB0EvNwujAcPXqUb775BoDs7GynVlbVU1KSucYXwDr9jlbIaYWMIDldzYicXbpAkybw\n5ZfO/4xV2rOynCoMb775Jo888gh/+tOfADhz5gwPPPCArsHKk5ws4wtCCNeYNAnefNPoFObh1BhD\nu3btSExMpFu3biQkJADQsWNH9u3bp3tAKLmfbO5cbXxh/ny3RBBCVGO5udoHzY0bITTU6DSuo+sY\nQ506dfDy8rI/LywsJDc3t8IHc6WUFFk4TwjhGnXqaFcovfWW0UnMwanCEBUVxezZs7ly5QpxcXEM\nHTqUmJgYvbOVKTUVKnhPH91Zpd/RCjmtkBEkp6sZmXPsWFi5EjIzy9/WKu1ZWU4VhjfeeANfX19a\nt27NvHnzuOuuu5gzZ47e2cpkxsIghLCum26CHj1g6VKjkxivwvMY0tPTSUpKolOnTnplKqakfrKb\nb4bvvjPflUlCCOv69ltt5dWEBPjfLWgsTdcxhqioKLKyskhLSyMiIoIJEyYwadKkCh/MVQoL4cwZ\nrcILIYSr9OwJly/Dv/9tdBJjOVUYLl++TL169fjss88YM2YM//73v4mLi9M7W6nOnoX69bUBIzOx\nSr+jFXJaISNITlczOqeHh3bznnffLXs7o3PqzanCkJ+fz7lz51izZg39+vXTftDAu+PIFUlCCL2M\nHg1ffAEXLhidxDhOvbtPnz6d6OhoWrZsSZcuXUhOTqZly5Z6ZyuVWQeeo6OjjY7gFCvktEJGkJyu\nZoacN94I/frBxx+Xvo0ZcurJkovovfUWHDhQ/umeEEJUxnffafMaDh2y9iC0roPPly9fZt68eYwb\nN47Ro0czevRoxowZU+GDuUpqqjm7kqzS72iFnFbICJLT1cySMypK+3P79pJfN0tOvThVGB599FEu\nXLjA5s2biY6OJjU1FR8fH72zlcqsXUlCiOrBZtNu4lNTeyWc6koKCQnh0KFD9vWRCgoKiIqKYufO\nne7IWOx0qE8fePpprR9QCCH0cOGCtn7SL79AgwZGp6kcXbuS6tWrB0DdunU5dOgQ6enppKSkVPhg\nrvLbbxAYaNjhhRA1QEAAxMTUzJnQThWGxx9/nIyMDGbOnEnv3r1p164dzz77rN7ZSnX2LDRubNjh\nS2WVfkcr5LRCRpCcrma2nGPGwPvvF/++2XK6mlP3fB43bhwAvXv35vTp07oGKk9hIZw7Z87CIISo\nXu69F86fh8RECA83Oo37ODXGkJWVxapVqzh16hRKKZRS2Gw2XnrpJXdkdOgnO38eWreG9HS3HFoI\nUcO9/DJcvAgLFhidpOJ0HWPo378/X3/9NV5eXtSrV8/+MMJvv8nZghDCfUaN0sYZrl41Oon7OFUY\n0tLSWLFiBdOmTWPKlClMnTqVKVOm6J2tRGfPmnfg2Sr9jlbIaYWMIDldzYw5W7SAsDBYt+7375kx\npys5VRjuvvtuDh48qHcWp8gZgxDC3UobhK6uyhxjCP3fzU8LCgo4evQoLVq0sN/i02azsX//fveE\nvKaf7M034cgRWLjQLYcWQgiys7VJtfv2QbNmRqdxXmXHGMq8KunLL7/E9r+FQsyypJKZu5KEENVT\n3bowZAh89BE8/7zRafRXZldSw4YNWbZsGbNnz2bt2rUEBQXRvHlz+8MIZu5Kskq/oxVyWiEjSE5X\nM3POkSO1wqCUuXO6QpmFYdiwYRw8eJDIyEi2bt3KxIkT3ZWrVHLGIIQwQteu2jyq3buNTqK/MscY\n2rZty88//wxoN+sJDw83ZBD62n6ybt1g/ny48063xxBC1HCvvKLNpXrzTaOTOEeXeQx169a1f12r\nVi1q165d8WQuJmcMQgijDBsGy5dDXp7RSfRVZmHYv38/vr6+9seBAwfsX/v5+bkro4Nz56BRI0MO\nXS6r9DtaIacVMoLkdDWz52zVSlt5Ye7ceKOj6KrMwlBQUEBmZqb9kZ+fb/86IyPDXRntcnMhJwcM\nqklCCMGwYfDtt0an0Jelbu35228QGqp1JwkhhBHOn4eWLeHkSfD3NzpN2XRdK8kszp+Hhg2NTiGE\nqMkaNoQePeCzz4xOoh9LFYb0dHPfScns/aNFrJDTChlBcrqaVXJGRMTz8cdGp9CPFAYhhKigO+7Q\nlsc4dcroJPqw1BjDkiWwbRt88IHRiYQQNd0f/6hdoTRtmtFJSlcjxhjkjEEIYRaPPAIrVhidQh9S\nGFzIKv2jVshphYwgOV3NSjmjoyE1FY4eNTqN6+laGDZu3EhoaCjt27fn1VdfLfZ6fHw8/v7+RERE\nEBERwaxZs8rc3/nz5i4MQoiaw9MTHnqoep416DbGcPXqVdq2bcv3339PYGAgd9xxB++99x4RERH2\nbeLj45k/fz7rrr01Ukkh/9dP9vDDMGiQtvytEEIY7fvvYcIEOHDA6CQlM90Yw65duwgJCSEoKIha\ntWoxZMgQNmzYUGy7ioQ2e1eSEKJmufNOuHgRDh0yOolr6VYYUlJSaHbNrY6Cg4NJSUlx2MZms/HD\nDz8QGhpKz5492bdvX5n7NHtXkpX6R83OChlBcrqa1XJ6eMDDD1e/7qQy7+BWFUV3fitLp06dSElJ\nwdvbm02bNjFgwACSkpJK3HbUqFH88ktzPv4Ytm+vT3h4ONHR0cDvf0lGPy9iljylPU9MTDRVnpKe\nJyYmmiqP1Z9Le+rXnq1bxzNrFrzySjQ2m7H54uPj+eB/1/NX5WZquo0xbN++nVdffZX169cDMGfO\nHHJzc3m+jPvitWnThm3bttGkSRPHkP/rJ/P11a4CkEX0hBBmoRTceiusXg3XDKGagunGGG6//XYO\nHjxIamoqeXl5rFy5kn79+jlsk5aWZv96z549ZGVl0biU+3YWrazq66tXYiGEqDibTbsgZvlyo5O4\njm6Fwdvbm3feeYc+ffrQsWNHBg4cSGRkJIsWLWLRokUALFu2jNDQUEJDQxk3bhxLly7Fw6PkSOnp\nEBCg/SWYVdEpndlZIacVMoLkdDWr5hwyBFau1M4eqgPdxhgA+vXrV+wsYfz48favJ06c6PR9pOWK\nJCGEWYWFgZeXdj/oLl2MTlN1llkraedOxeTJ8OOPRqcRQojinn8eCgrgH/8wOsnvTDfG4GoZGTLo\nLIQwr4EDYc2a6tGdZJnCcOmS+QuDVftHzcgKGUFyupqVc0ZGQl4eHDzo/jyuZpnCkJFh/tvoCSFq\nLpvt97MGq7PMGMPcuYqUFHj9daPTCCFEyXbs0NZO2r/f6CSaGjHGIGcMQggzu+MOOHfO+ktxW6Yw\nyBiD61ghpxUyguR0Navn9PCAAQPgs8/cm8fVLFMY5IxBCGEFgwZZvzBYZoxh0CDFkCHajTGEEMKs\n8vKgaVNISIBrFpg2RLUfY7h0Sc4YhBDmV7s2xMbC558bnaTyLFMYrDDBzer9o2ZihYwgOV2tuuS0\n+mWrlikMcsYghLCK3r0hMRGuWUDaUiwzxtC0qWL3bggKMjqNEEKUb+BA7QqlESOMyyBjDEIIYSKx\nsbBundEpKscyhSEnB+rVMzpF2apL/6gZWCEjSE5Xq045+/eHzZvh6lX987iaZQqDn5+5b9IjhBDX\natwY2rcHi9Q6B5YZY7j5ZsWJE0YnEUII5/3jH5CSAgsXGnP8aj/GIOMLQgireeABbZzB/B+/HVmm\nMJh9DgNUr/5Ro1khI0hOV6tuOdu10ya87dunbx5Xs0xhkDMGIYTV2GzaWcOXXxqdpGIsM8bwyCOK\nZcuMTiKEEBUTFwfTpsHu3e4/drUfY7BCV5IQQlzv7rvh+HE4fdroJM6TwuBC1a1/1EhWyAiS09Wq\nY87ataFvX1i/Xr88rmaZwuDjY3QCIYSonNhYa40zWGaMYe5cxZQpRicRQoiKO38eWrSAs2fB29t9\nx632YwxmXw5DCCFK07AhhITA9u1GJ3GOZQqDFbqSqmP/qFGskBEkp6tV55z9+sHXX7s+ix6kMAgh\nhBv06wcbNxqdwjmWGWP49ltFr15GJxFCiMopLIQmTbT5DLfc4p5jVvsxBjljEEJYmYcH9Oljje4k\nKQwuVJ37R93NChlBcrpadc9plXEGKQxCCOEm992n3Z/B7DfvscwYw7lzikaNjE4ihBBV060bzJ4N\nPXvqf6xqP8Yg8xiEENWBFa5OskxhcOdswcqq7v2j7mSFjCA5Xa0m5LTCOINlCoPc71kIUR107gy/\n/QanThmdpHSWGWOwQEwhhHDKsGFwzz0wbpy+x6n2YwxCCFFd3HcfbN5sdIrSSWFwoZrQP+ouVsgI\nktPVakrOnj1hyxYoKHBNHleTwiCEEG4WFASBgZCYaHSSkskYgxBCGOCpp+Cmm+DZZ/U7howxCCGE\nhfTqBd9+a3SKkklhcKGa0j/qDlbICJLT1WpSzu7dYdcuyM6ueh5Xk8IghBAG8PODjh1hxw6jkxQn\nYwxCCGGQGTO0M4ZXX9Vn/zLGIIQQFtOrlznnM+haGDZu3EhoaCjt27fn1VJK4qRJkwgJCSEyMpKE\nhAQ94+iuJvWP6s0KGUFyulpNy9m1Kxw7BmlpLtmdy+hWGK5evcqECRPYuHEj+/fvZ/Xq1cXe+Nes\nWcPJkyc5dOgQixcvZvTo0XrFcYtEs16UfB0r5LRCRpCcrlbTctaurS2NsXWrS3bnMroVhl27dhES\nEkJQUBC1atViyJAhbNiwwWGbr776iuHDhwMQERFBfn4+KSkpekXS3cWLF42O4BQr5LRCRpCcrlYT\nc5qxO0m3wpCSkkKzZs3sz4ODg4u96TuzjRBCVGe9e2vzGcx0fU0tvXZsc3Kd7OtHzEv7udjYKkfS\nXUJCMnv2GJ2ifFbIaYWMIDldrSbmVAqSkyElBa75nGwo3QpDcHAwp65ZcPzUqVMOZwfXbtO1a1dA\nO4MIDg4utq9WrVqxfr01bsiQmvqh0RGcYoWcVsgIktPVamrOm2926e4A7b2zMnQrDLfffjsHDx4k\nNTWVxo0bs3LlShYtWuSwTUxMDJ988gmDBw9m7969eHp6EhQUVGxfx44d0yumEEKI6+hWGLy9vXnn\nnXfo06cPhYWFDB8+nMjISHtxGD9+PIMGDSIuLo6QkBC8vLxYsmSJXnGEEEI4yRIzn4UQQriPqWY+\nW2FCXHkZ4+Pj8ff3JyIigoiICGbNmuX2jGPGjCEwMJDQ0NBStzG6HaH8nGZoS9DGx+655x5CQ0Np\n06YNr732WonbGd2mzuQ0Q5vm5ORw++23ExERwW233cbkyZNL3M7o9nQmpxnaE6CgoICIiAhiS7lK\np8JtqUwiJydHNW/eXKWkpKi8vDzVuXNntXfvXodtVq9erR588EGllFJ79+5VHTt2NF3GuLg4FRsb\n69Zc1/vuu+/U3r17VYcOHUp83eh2LFJeTjO0pVJKnTlzRh04cEAppVRmZqZq3bq1SkxMdNjGDG3q\nTE6ztOmVK1eUUkrl5eWprl27qq1btzq8bob2VKr8nGZpz3nz5qmhQ4eWmKUybWmaMwYrTIhzJiMU\nvwTX3aKioggICCj1daPbsUh5OcH4tgQIDAykQ4cOAPj4+BAWFsbp06cdtjFDmzqTE8zRpnXr1gUg\nNzeXgoICAgMDHV43Q3s6kxOMb8+UlBS++uorHn/88RKzVKYtTVMYrDAhzpnj22w2fvjhB0JDQ+nZ\nsyf79u1zWz5nGd2OzjJjWyYnJ7N7927uvvtuh++brU1Ly2mWNi0sLCQ8PJzAwEB69OhB+/btHV43\nS3uWl9MM7Tl58mTmzJmDh0fJb+eVaUvdrkqqKFdPiNODM8fq1KkTKSkpeHt7s2nTJgYMGEBSUpIb\n0lWMke3oLLO15eXLl3nooYdYsGABvr6+xV43S5uWldMsberh4UFiYiKXLl2iT58+xMfHEx0d7bCN\nGdqzvJxGt+f69etp3LgxERERZS7sV9G2NM0ZQ0UmxBUpbUKckRl9fHzw9vYG4L777qNOnTqcOXPG\nbRmdYXQ7OstMbZmXl8egQYMYOnQoAwYMKPa6Wdq0vJxmalMAf39/+vfvz48//ujwfbO0Z5HSchrd\nnjt37mTdunW0aNGCRx99lK1btzJixAiHbSrTlqYpDNdOiMvLy2PlypX069fPYZuYmBg+/fRTgDIn\nxBmZMe2a9XP37NlDVlYWjRs3dltGZxjdjs4yS1sqpRg7dizt27cv9QoaM7SpMznN0Kbnz58nMzMT\ngOzsbL799ttiV6aZoT2dyWl0e/7tb3/j1KlTJCUlsXz5cu69914++ugjh20q05am6UqywoQ4ZzIu\nW7aM9957D4A6deqwdOnSUvv+9PLoo4+ybds20tLSaNasGa+88gp5eXn2jEa3o7M5zdCWADt27OCT\nTz4hLCyMiIgIQPsPefLkSXtWM7SpMznN0KanT59mxIgRKKXIyclh6NCh9O/f31T/153NaYb2vFZR\nF1FV21ImuAkhhHBgmq4kIYQQ5iCFQQghhAMpDEIIIRxIYRBCCOFACoMQQggHUhiEEEI4kMIghBDC\ngRQGUW1cunSJd955x/789OnTPPTQQy4/zowZMwgODmbGjBku33d5evToga+vL3tcdSd6IUoghUFU\nGxcuXODtt9+2P7/ppptYtWqVy49js9l45plnDCkMcXFxdO7c2ZSLHorqQwqDqDb++te/cvz4cSIi\nInj22Wc5ceKEfW2bDz74gAEDBtCvXz9atGjBwoULmTt3Lp07dyYyMtK+5s3hw4fp0aMHHTt2pGvX\nrhw6dKjEY127YMCMGTMYOXIkPXr0oHnz5nz22WdMnTqVsLAwevbsydWrVwH4y1/+QkhICOHh4Tzz\nzDMAnDlzhvvvv5+OHTsSHh7Otm3bAMjMzOSRRx4hJCSEjh07snr1at3aTYhiqnrnICHMIjk52eFu\ncElJSfbnS5YsUbfeeqvKzs5W586dU35+fupf//qXUkqpyZMnqzlz5iillLrzzjvV0aNHlVJK/fjj\nj+quu+4qdpwZM2aouXPn2p+//PLL6p577lGFhYVq3759qm7dumrTpk1KKaX+8Ic/qFWrVqnffvtN\nhYSE2H/m8uXL9te///57pZRSJ06cUK1atVJKKTVp0iQ1depU+/aXLl2yfx0dHa327NlT2WYSolym\nWURPiKpS5Sz71aNHD7y9vfH29qZ+/frExMQAEBoaSmJiIufPn2fv3r0O4xLZ2dnlHtdms9G3b19s\nNhsdOnSgsLCQ3r172/d96tQpGjZsSO3atRk7diwxMTH2e/Nu3rzZYf3+q1evkpGRwZYtW1i7dq39\n+35+fs43hBBVJIVB1BheXl72rz08POzPPTw8KCwsRCnFjTfeWKkbz9epU8e+r9q1azscp7CwEE9P\nT3bt2sWWLVtYs2YNb731Flu3bsVms7F7925q1Sr+X7G8QieEXmSMQVQbdevW5cqVKxX+uaI34EaN\nGnHjjTeyfv16+/dLG2OoqKysLDIzM+nXrx/z5s1j7969APTq1Yt3333Xvl3R8Xr37m1fOhkgIyPD\nJTmEcIYUBlFtBAYGEh4eTvv27Xn22Wex2Wz2q3eu/bro+bVfFz1fsWIF8+bNIywsjA4dOjg96Fva\nvoueZ2Rk0LdvXyIiIoiKiuL1118H4N1337XfAKZDhw4sWLAAgJkzZ3Ly5Enat29PeHg4W7ZsqUSL\nCFE5cj8GISrolVdewcfHhylTphhy/B49ejBv3jwiIyMNOb6o/uSMQYgK8vHx4b333jNsgltSUpLD\nOIYQriZnDEIIIRzIGYMQQggHUhiEEEI4kMIghBDCgRQGIYQQDqQwCCGEcPD/ATnLc2SOfyyJAAAA\nAElFTkSuQmCC\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEXCAYAAACpuuMDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYFdX/B/D3ZRHZNwWVRSw0AdkU9wXMFQTErbRwyxTt\nq5hLaS6JuZSllmYZmrlRWi4lKuLKxRVRBMXcUEEBEUF2UNb5/TG/W2gsF5i5MwOf1/PMwx3u3Jk3\np5xz55wzZ2QMw4AQQghRUBM6ACGEEHGhioEQQsgrqGIghBDyCqoYCCGEvIIqBkIIIa+gioEQQsgr\nqGIg//jss8++3LBhw2xlth09evT+8PDwofU91qRJk3YsXbp0RX0/T4R14cKF3u3bt08wMDDIO3To\n0HAvL6+w3bt3jweAHTt2TOrbt+85oTOS+qOKgQAAMjIyWu7evXv89OnTf1Jm+wULFqxZsmTJyvoe\nTyaTMTKZTNCbaJ4+fdrK19c31MLCIlVNTa3i8ePH1kLmqS+5XO5hZWWVrMpjfv75518EBgZuzMvL\nMxg+fPihsLAwr/Hjx+9WZQbCH6oYCAD2W96wYcOOamlpFSuzfdeuXa/k5eUZxMTEdOE7G1/U1NQq\nvLy8wg4cODBKVcdkGEbGMIys8u/Kyso0VHV8ZSiT5/Hjx9b29va3VJGHqB5VDAQAEB4ePtTd3T1S\nsZ6Tk2Pk7e19xMzM7JmJiUmWj4/P4dTUVIvKn/Hw8JAfPXp0WFX7k8vlHpaWlilffvnlZy1btsxo\n165d4m+//fZe5W2ysrJMvL29jxgYGOT16NEj6uHDh28o3ps9e/YGa2vrx4aGhrlubm5Xz58/30fx\nXnR0dDc3N7erhoaGua1atXo6b968dYr3oqKievTq1euisbFxtouLS1xkZKR7dX+zmZnZs+nTp//k\n5uZ2VZkySk5Otho5cuRBMzOzZy1atMicNWvW9wAQFBQUVPnbclJSko2amlpFRUWFmqKclixZsrJ3\n794X9PT0Ch4+fPiGmppaxY8//vhR+/btE9566627AHDkyBFvFxeXOGNj4+zevXtfiI+Pd1Ts08bG\nJmndunXznJ2drxsZGeWMHTt2b3FxsVZhYaGup6fnsSdPnrTR19fPNzAwyHv69Gmr17NPmjRpx/Tp\n038aPHjwCQMDgzwPDw955SukqvJs3bp1avv27RNMTU2fDx8+/FBaWlprAHjzzTcfPHz48A0fH5/D\nBgYGeSUlJc08PDzk27Ztm1JVud25c6fjoEGDTpqamj7v2LHjnX379o1RpryJgBiGoYUWtGzZ8tnV\nq1e7KNafP39ucvDgwREvXrxonp+frzdmzJg//Pz8/qz8mfXr188ZOXLkgar2FxER4aGhoVE6b968\ntSUlJZqRkZH9dHV1C+7evduBYRhMnDhxh6mpaeaVK1fcysrK1N9///2QsWPH7lF8PiQk5P2srCzj\n8vJytXXr1s1t1apVWnFxcTOGYdCjR49LISEh7zMMg8LCQp2oqKjuDMMgJSXFwtTUNPPYsWNDGYbB\nyZMnB5qammZmZGS0qOlvLy0t1ZDJZBWPHj2yrm6bsrIydScnp+tz585dV1RUpP3y5UutCxcu9GIY\nBkFBQcv8/f13K7ZNTEy0kclkFeXl5WoMw8Dd3V3etm3bpFu3btmVl5erlZSUaMpksorBgwcfz87O\nNnr58qXWtWvXXM3MzNKjo6O7VlRUyHbu3DnBxsYmsaSkRJNhGNjY2CR27949Ki0trVVWVpaxnZ3d\nrZ9++imAYRjI5XJ3S0vL5Jr+xokTJ+7Q19fPO3fuXJ/i4uJms2fP/q5Pnz7nFO+/nuf06dNvt2jR\nIiM2NtaluLi42axZszb269cvUrG9jY1N4unTp99WrHt4eERs27btA4ZhsH379kmKfRcUFOhaWlom\n79ixY2J5eblabGysS4sWLTJu3bplJ/T/87RUv9AVAwHAXiHo6+vnK9ZNTEyyRowY8Wfz5s1f6unp\nFSxatGj169++9fT0CnJycoxq2u+KFSuWampqlvbr1+/ssGHDjv7xxx/vKN4bOXLkQTc3t6vq6url\n77///q9xcXEuivfef//9X42NjbPV1NQq5s6du764uFjr7t27bwFAs2bNShISEtpnZma20NHRKere\nvftlAAgJCfH38vIKGzp0aDgADBw48JSbm9vVsLAwr4aWT3R0dLe0tLTW33zzzSfa2tovtLS0inv1\n6nURYJuHavqsTCZjJk2atMPOzu62mppahaamZinAdvYbGRnlaGlpFW/ZsmVaQEBAcNeuXa/IZDJm\nwoQJu7S0tIqjoqJ6KPYTGBi4sVWrVk+NjY2zfXx8DivKq7bjK3h7ex/p06fP+WbNmpWsWrVq8aVL\nl3pWvgqsnOfXX399f8qUKdtcXFzimjVrVvLll19+dunSpZ517Yc5cuSId7t27RInTpy4U01NrcLF\nxSVu5MiRB+mqQdyoYiAAAGNj4+z8/Hx9xXpRUZFOQEBAsI2NTZKhoWGuu7t7ZG5urmHlk1B+fr6+\nkZFRTk371NbWfqFYb9u27SNFc4RMJmPMzc3TFe9pa2u/KCgo0FOsr127dr69vf0tIyOjHGNj4+zc\n3FzDzMzMFgCwbdu2Kffu3etgZ2d3u1u3btGK5qxHjx613bdv3xhjY+NsxXLhwoXeT58+bXX+/Pk+\n+vr6+fr6+vmOjo7xdS2f5ORkq7Zt2z5SU1OrqOtnAaCqzuHKv3v06FHbdevWzaucPSUlxfLJkydt\nFNu0atXqqeL16+VVG5lMxlhaWqYo1nV1dQtNTEyyKu+/cp60tLTWbdu2fVR5e1NT0+evNyfW5tGj\nR20vX77cvfLf9dtvv72Xnp5uXpf9ENUSVacXEY6Tk9ONu3fvvtWlS5cYAFi3bt28e/fudYiOju5m\nZmb2LC4uzqVz587XGIaRKUYT3b59287FxSWuun1mZ2cbFxUV6ejo6BQB7EnCycnpRm1Zzp071/eb\nb7755MyZM287ODj8DbBXMIpKydbW9r6iv+LAgQOjRo8evf/58+em1tbWj8ePH797y5Yt06rab+WK\nr66srKySHz9+bF1eXq6urq5eXvk9PT29gqKiIh3FelVt/FWNwKr8O2tr68eLFy9etWjRotV1zabM\n6C6GYWTJyclWivWCggK9rKwskzZt2jypaj9t2rR5kpSUZKNYLyws1H3+/LmphYVFal2yWVtbP3Z3\nd488ceLE4Lp8jgiLrhgIAMDLyyusclNRQUGBnra29gtDQ8PcrKwsk+XLly97/TNnz57t5+npeaym\n/S5btmx5aWmp5rlz5/oePXp02JgxY/YBNTd/5Ofn62toaJS1aNEis6SkpNkXX3zxeV5enoHi/ZCQ\nEP+MjIyWAGBoaJgrk8kYdXX1cn9//5DDhw/7nDhxYnB5ebn6y5cvm8vlco+avuW+fPmy+cuXL5u/\n/vp13bt3v9y6deu0hQsXflVUVKTz8uXL5hcvXuwFAC4uLnFnz57tl5ycbJWbm2v45Zdffvb652tr\n7pk6derWn376aXp0dHQ3hmFkhYWFukePHh2mzFWBubl5+vPnz00rl1FVwsLCvC5cuNC7pKSk2dKl\nS1f07NnzUnUn+nHjxu3Zvn375OvXrzsXFxdrLVq0aHWPHj2irK2tH9eWp7Jhw4YdvXfvXoeQkBD/\n0tJSzdLSUs0rV650vXPnTse67IeoFlUMBAAwYcKEXWFhYV6KE+PHH3/83YsXL7RbtGiR2atXr4ue\nnp7HKn+jvHLlSld9ff38mkb0KNrD27Rp82T8+PG7g4ODAzp06HAPqPo+BsX60KFDw4cOHRreoUOH\nezY2Nkna2tovKp+Qjh8/PqRTp0439fX18+fMmfPt3r17x2ppaRVbWlqmHDp0aPjq1asXmZmZPbO2\ntn68bt26eYrRQVXR0dEpMjAwyJPJZEzHjh3v6OrqFla1nZqaWsXhw4d97t+/b2ttbf3YysoqWdFf\nMnDgwFPvvvvu705OTje6du16xcfH53B1f1t16126dInZunXr1JkzZ24yMTHJat++fcKuXbsmVHc1\nULn8OnbseGfcuHF73njjjYcmJiZZ1V2xvPfee78tX758mamp6fPY2FjXkJAQ/+ryDBgw4PSKFSuW\njho16kCbNm2eJCYmttu7d+/Y6sqxumz6+vr5J06cGLx3796xFhYWqa1bt0777LPPviwpKWmmzL6I\nMGQMQw/qIazFixevMjMzezZ79uwNtW07evTo/R9++OHPio7e18nlco/x48fvrtx8QYQzefLk7ZaW\nlikrVqxYKnQWIn689TEkJydbTZgwYdezZ8/MZDIZM23atC2BgYEbX98uMDBw47Fjxzx1dHSKduzY\nMcnV1TWWr0ykZqtWrVqs7Lb79+8fzWcWwi1lRy4RAvBYMWhqapZ+++23c1xcXOIKCgr0unTpEjNo\n0KCTdnZ2txXbhIWFed2/f982ISGh/eXLl7vPmDFjc+XheUTahJ7ygvxLDFOQEOlQWVOSn5/fX7Nm\nzfp+wIABpxW/mz59+k/9+/ePePfdd38H2LbSyMhI98rDGAkhhKiWSoarJiUl2cTGxroqbkRSSE1N\ntag8dtrS0jIlJSXFsnLFQN9yCCGkfurbhMj7qKSCggK90aNH79+wYcNsPT29gtfffz14VRWB0LeH\nK7MsW7ZM8AyNISPlpJxiX6SSsyF4rRhKS0s1R40adcDf3z/Ez8/vr9fft7CwSK08aiUlJcWyrjfQ\niEVSUpLQEWolhYwA5eQa5eSWVHI2BG8VA8MwsilTpmyzt7e/9fHHH39X1Ta+vr6hu3btmgCws2Ia\nGRnlUP8CIYQIi7c+hgsXLvQOCQnxd3JyuqEYgrp69epFikm4AgICgr28vMLCwsK8bG1t7+vq6hZu\n3759Ml95+DZp0iShI9RKChkBysk1ysktqeRsCNHf4CaTyRixZySEELGRyWRgxNr53FTI5XKhI9RK\nChkBysk1ysktqeRsCKoYCCGEvIKakgghpBGipiRCCCGcoYqBI1Jod5RCRoByco1ycksqORuCKgZC\nCCGvoD4GQghphBrSx0DPfCZEpBgGePECKCys/1JUBBQXA1OmAOPHC/0XEamgioEjcrkcHh4eQseo\nkRQyAtLNyTDsiTgvD8jPZ38q8zo/HygoqPqk3qwZoKur/NKmzX9/Fxsrx7JlHigqAgIChCuv2kj1\nv3tjRBUDIf+vvBzIzQWys9klJ6f61zk5QHIyIJP9e3LPz2dP5AYG7KKvX/3r1q3/fa2vX/VJXkcH\n0ODgX2jz5sCYMYC7O2BkBLz7bsP3SRo36mMgjQ7DsN/AMzOBjAz25+uvnz//70m/oIA9WRsbs4uR\nUdWvjY0BQ0N2qXzS19fn5kTOlxs3gEGDgJ07gaFDhU5D+NaQPgaqGIgklJQAz54BaWnA06f//lSc\n7Cuf9DMz2RN0ixbs0rLlv68V6yYmr57ojY3Zk7taIx+nd+kSMHw4cPAg0KeP0GkIn6hiEAEptDuK\nMWNpKZCaCjx+zP58+hS4fFmOZs08/jn5P33Kfqs3MwNatWKX1q3Zn2ZmVVcA2tr8ZxdjeVbl9Zwn\nTgD+/uxPFxfhcr1OquUpVjQqiYgSwwDp6exJPzmZXV5/nZnJnuCtrAALi3/b3nv1+vfk37o1YGoK\nqKsL/Rc1DoMHAz/+CHh5AXI50KGD0ImI2NAVA2mQ4mIgMRF4+BB48ID9qXidmMh2oFpbs4uVFbtU\nft26tbjb5Ruzn38GVq9mm5fMzYVOQ7hGTUmEVwzDtunfvv3vcucOcO8e2+5vZQW8+SbwxhvsT8Xr\nN95gO2SJeAUFAUeOsFcOenpCpyFcoopBBKTQ7lhbRkUFcP06O4KlciWgpQXY2QEdO7I/7ezYJggr\nK+6/8UuhLIHGkZNh2Jvf0tOBQ4eEvXprDOUpJtTHQOqsrAy4exeIi2Mrgrg4dmEYtkPS0ZEdtTJ1\nKlsZmJoKnZjwQSYDgoMBHx/go4/Y17J6nUpIY0JXDE1EaioQFfXvEhvL3iXr4vLv4uzM/o5ODE1P\nfj57A9yoUcDixUKnIVygpiTyivJytilILgcuXmQrgpcvgR49gO7d2Z9du7I3aBGikJbGjgYLCgIm\nThQ6DWkoelCPCAg5R3tFBdsc9N13gJ8fO57/vffYzuERI9gK4tkzYN48OZYsAQYOFHelIJX57htb\nztatgbAwYMEC4MwZfjNVpbGVp5RRH4NEZWUBx48DR4+yP42Ngf79gbFjgc2b2X/khNSVnR2wdy87\nn9L580D79kInIkKgpiQJuX0bCA1lhxdev862CQ8bxt6oZG0tdDrSmGzdCqxbx97jYGwsdBpSH9TH\n0Ijduwf8/jvwxx/sRG9+fmxl4OGhmmkfSNM1Zw5w8ybbvKSpKXQaUlfUxyACXLY7pqUBa9awI4U8\nPNgJ4n76iZ1CYtMmwNOzfpWCVNpGKSe36pvzm2/YCmHOHG7zVKexl6eUUMUgEqWl7A1Gvr6AvT2Q\nkABs2MDOKbRxI9C7d+Of+ZOIi4YGsGcPEBEB/PCD0GmIKlFTksCePWM7i3/6iZ1KYsoU9qEqND0B\nEYuHD9kvJrt2sc9zINJATUkSFB/PVgJvvcXefHbqFDsKZPJkqhSIuLzxBtvP5e8P3L8vdBqiClQx\ncETZdsfoaLbzeMgQoF07tnN5yxbAwYHffIB02kYpJ7e4yNmvH/D558DIkezzqPnQlMpT7KhiUJGr\nVwFvb3bKgWHD2Cmplyxhb0YjRAo++gjo3Bn48EN2Ti3SeFEfA88ePWLvJD13DvjsM/YfVfPmQqci\npH5evGAnV/T3V91oJVI/1McgQgUFwNKl7Desjh3ZJqOZM6lSINKmrc0+L3rNGna0EmmcqGLgSOV2\nx8OH2akFHj5kp7IOCgJ0dQWL9g+ptI1STm5xnbNtWyAkhJ2PKzmZu/021fIUI5oriUMZGUBgIHDl\nCju0r39/oRMRwo+BA4G5c9k+s3Pn2Ac5kcaD+hg4cvgw+1Abf3/giy/YZx0T0pgxDFsxWFmxN2MS\ncaG5kgRUXAwsXMi2u/76K9sxR0hTkZPD9qN98w1bSRDxoM5ngSQlsXeEJiUB338vF32lIJW2UcrJ\nLT5zGhmxN7/NmAE8eNCwfVF5igdVDPV08SL7tKv33mOvFgwMhE5EiDC6dmXvyXnnHfYKmkgfNSXV\nw6+/smO4d+5kZzolpKljGGD0aPYBUZs2CZ2GANTHoFKrVwM//8w+MKdTJ6HTECIeOTlAly7Al1+y\nVw9EWNTHoAIMw965/NtvwIUL/60UpNDuKIWMAOXkmqpyGhmxD5T63//YKV/qispTPKhiUALDALNn\nAydOAHI5PU+ZkOp06cJOAePvD5SVCZ2G1Bc1JSnhs8/YabFPnQIMDQWNQojoVVSwswf36QMsWyZ0\nmqaL+hh49PXXwI4dwNmzQIsWgsUgRFKePAFcXYE//2RH7xHVoz4GnuzaxT5d7cSJ2isFKbQ7SiEj\nQDm5JkTONm2A4GC2SSkvT7nPUHmKB1UM1bh0CZg/HwgLAywthU5DiPT4+bGPAp05U+gkpK6oKakK\nKSlA9+7sk9WGDVPpoQlpVAoL2Q7pZcuAceOETtO0iLIp6YMPPvjF3Nw83dHRMb6q9+VyuYehoWGu\nq6trrKura+zKlSuX8JWlLoqLgREj2FFIVCkQ0jC6usCePey/Jy6n6Cb84q1imDx58vbw8PChNW3j\n7u4eGRsb6xobG+u6ZMmSlXxlqYslSwALC+CTT+r2OSm0O0ohI0A5uSZ0TldXdjr62h4JKnROZUkl\nZ0Pw9jyGvn37nktKSrKpaRtlL3MmTZoEGxt2V0ZGRnBxcYGHhweAf/8jcbF+8iSwY4ccP/8MyGR1\n+7wCl3ma6npcXJyo8kh9XQzluXChBw4dAubPl8PHR1zlU9d1MZRnVetyuRw7duwAgH/Ol/XFax9D\nUlKSjY+Pz+H4+HjH19+LjIx0Hzly5EFLS8sUCwuL1LVr1863t7e/9Z+AKupjyMwEXFzY+Y8GDOD9\ncIQ0ObduAe7uQHQ00K6d0Gkav4b0MQj2BLfOnTtfS05OttLR0Sk6duyYp5+f31/37t3rIFSewEDg\n3XepUiCEL/b2wKefApMnA2fOAGo0JlK0BPtPo6+vn6+jo1MEAJ6ensdKS0s1s7KyTITIEh4OREUB\nK1bUfx+KSzoxk0JGgHJyTUw5584FSkurnoFVTDlrIpWcDSFYxZCenm6uuMyJjo7uxjCMzMTEJEvV\nOQoL2YeMbN5Mj+MkhG/q6uxMAl98Ady7J3QaUh3e+hjGjRu3JzIy0j0zM7OFubl5+vLly5eVlpZq\nAkBAQEDwDz/88L/NmzfP0NDQKNPR0Slav3793B49ekT9JyDPfQzLlrH/g+7Zw9shCCGv2biRffLb\n2bNsZUG4R3Ml1VNKCuDsDMTGAtbWvByCEFKFigq2I/rdd+nOaL6I8gY3KVi0iG1G4qJSkEK7oxQy\nApSTa2LMqaYGbN0KBAX9e+ObGHNWRSo5G0KwUUlCi4sDTp6kdk5ChNKxI3tH9EcfsU9EJOLRZJuS\nRoxgL2U//pjzXRNClFRSAnTuDCxdyjYrEe5QH0MdxcUBXl7AgweAtjanuyaE1FFUFPtF7e+/ARNB\nBqw3TtTHUEdffMHOhcRlpSCFdkcpZAQoJ9fEnrNHD2DMGOD99+VCR1GK2MuTC02uYrh9G7h4EQgI\nEDoJIURh1Srg2jXg9GmhkxCgCTYlTZ8OtGrFjoYghIjH0aNsZ3R8PDXxcoG3PoaYmJguMpmsxrOy\npqZmaXXPXOAClxVDVhbw5pvsVUOrVpzskhDCodGjAUdH9sZT0jC8VQz6+vr5bm5uV2vaQWJiYrva\nptduCC4rhjVr2Bked+7kZHevkMvl/0yFK1ZSyAhQTq5JKeebb3rA1RW4fJn9EidGUilP3mZXdXNz\nuxoREdG/pm369+8fUZ8Dq1p5OfDDD8BffwmdhBBSHSsrdmBIYCBw5Aggq9dpjTRUk+ljCA8HPv+c\nnQueECJeJSXsVDVffQUMHy50GulS6XDV+/fv265YsWKpg4PD3/U5oFB++YWdB54QIm7NmrFX97Nn\nA0VFQqdpmpSqGFJTUy3Wr18/t2vXrlc6dep0s7y8XH3v3r1j+Q7Hlaws4MQJYCyPiaUwtlkKGQHK\nyTUp5nz7baBnT2D1auHyVEcq5dkQNVYMwcHBAR4eHvJBgwadzMnJMfrll18+aN26dVpQUFAQnyOR\nuPbbb4CnJ2BsLHQSQoiy1q4FfvqJ5jMTQo19DJqamqVDhw4NX7ly5RJnZ+frANCuXbvExMRElT2x\nlYs+Bjc39pvH4MEchSKEqMT69Wz/4PHj1BFdV7z1MaSlpbX28vIKCwwM3GhnZ3d76dKlKxQP25GK\nhw+Bx4/ZS1NCiLTMmgWkpgKHDwudpGmpsWJo0aJF5owZMzZHRka6nzhxYrChoWGuubl5eseOHe8s\nWrRIhK1//3XwIODnB2jwPMG4FNodpZARoJxck3JOTU32qmHePHa0khhIpTwbQulRSVZWVsnz589f\nGxMT0yU0NNS3efPmL/kMxpX9+9m7KQkh0jRkCNChA7Bpk9BJmo4a+xiuXbvWuXPnztdq2oEy2zRE\nQ/oYkpMBV1cgLY395kEIkaY7d4C+fdmZC1q2FDqNNPA2JYaTk9MNuVzuUd37DMPIBg4ceCo2Nta1\nPgdXRkMqhg0b2GcvbN/OcShCiMrNng2UlgI//ih0EmngrfM5Ly/PoEuXLjHVLW5ublc1NTVL6xeb\nf3/9BYwcqZpjSaHdUQoZAcrJtcaSc9kytmn45k3V5KmOVMqzIWrskuVzcjy+5ecDV6/SaCRCGgsT\nE/YRoHPmsDes0vBV/jTauZJCQ4GNG4FTp3gIRQgRRGkp4OQEfP014OMjdBpxo0d7VuH4cXY0AyGk\n8dDUZCuFhQuBsjKh0zReVDFwRArtjlLICFBOrjW2nN7egKkpsGsXv3mqI5XybAilKoYBAwb850ms\nVf1OLO7fZ2dldHQUOgkhhGsyGXvVsGwZzb7Klxr7GF68eKFdVFSk079//4jKw1bz8vIMhg4dGn7n\nzp2OvAesRx/DDz+wHc80TJWQxmvUKKBbN2DBAqGTiBNvT3ALDg4O2LBhw+wnT5606dKlS4zi9/r6\n+vkzZ84U7X2IZ86obpgqIUQYq1cDffoAH37INi0RDjEMU+uyYcOGQGW242NhIyqvooJhzM0ZJimp\nTh9rsIiICNUesB6kkJFhKCfXGnPO6dMZZt487rPURCrl+f/nznqdd5WaWi4wMHDjxYsXeyUlJdmU\nlZX985kJEyYI1P1TvQcP2JEL1tZCJyGE8O3zz4FOndhZWNu2FTpN46HUfQz+/v4hDx8+fMPFxSVO\nXV29XPH777//fhav6VD3PoYdO9gRSXv28JeJECIen38OPHoE7NwpdBJx4a2PQSEmJqbLrVu37GUy\nmbjvhgNw4QLQu7fQKQghqjJ/PmBrC9y+DdjZCZ2mcVBquGqnTp1upqWlteY7DBfOn2c7pFRNCmOb\npZARoJxca+w5DQzY5zUEBXEap1pSKc+GUOqKISMjo6W9vf2tbt26RWtpaRUDbBNPaGioL7/x6iYz\nE3jyhO5fIKSpmTmTvWq4cYOdMoM0jFJ9DIp7GP6/vV+meO3u7h7Jb7y69TGEhrL3MBw/znMoQojo\nfPstcPYs8OefQicRB96ex1BZUlKSzf37920HDhx4qqioSKesrEzDwMAgrz4HrYu6VAyffQZoaanu\nkpIQIh4vXgDt2wOHDgFdugidRni8T6K3ZcuWaWPGjNkXEBAQDAApKSmWI0aMEF29HBMDuLkJc2wp\ntDtKISNAObnWVHJqawOLFrFTc/NJKuXZEEpVDD/88MP/zp8/30dxhdChQ4d7z549M+M3Wt0wDFsx\n0DcFQpquKVOAv/8GLl0SOom0KdWU1K1bt+jo6Ohurq6usbGxsa5lZWUanTt3vnbjxg3eu3mUbUp6\n9Ajo2ZPtfCaENF0//wzs3UvPYuG9Kcnd3T1y1apVi4uKinROnjw5aMyYMft8fHwO1+eAfKGrBUII\nAEycCCSty84eAAAehUlEQVQmsh3RpH6UqhjWrFmzoGXLlhmOjo7xwcHBAV5eXmErV65cwne4uhC6\nYpBCu6MUMgKUk2tNLaemJtvXsGoVJ7v7D6mUZ0PUeh9DWVmZRqdOnW7euXOn47Rp07aoIlR9XLsG\nzJghdApCiBiMHw8sXw5ER7NTc5O6UaqPYfjw4Yc2btwY2LZt20cqyPQKZfsYLC3Z6TBoIi1CCPDv\nPU2hoUInEQbv9zH07dv3XGxsrGu3bt2idXV1C///oCq581mZiiE7m60QcnPZpzsRQsiLF8CbbwJh\nYYCLi9BpVI/3SfRWrly55PUDiGlCvZs3AQcHYSsFuVwODw8P4QIoQQoZAcrJtaaaU1ubnUNp9Wrg\njz84261kyrMhlOpjmDZt2pa7d+++pYpA9XHzJjsnOyGEVBYQwD4fmmZerZtaRyVpaGiUdezY8c6j\nR4/q1Hr/wQcf/GJubp7u6OgYX902gYGBG9u3b5/g7Ox8PTY21rUu+6/s5k3hJ86TwjcIKWQEKCfX\nmnJOPT1g9mzgyy+526dUyrMhlBqumpWVZeLg4PD322+/fcbHx+ewj4/PYV9f3xq7dCZPnrw9PDx8\naHXvh4WFed2/f982ISGh/ZYtW6bNmDFjc13DK8TH0xUDIaRq//sf28/w4IHQSaRDqT6GFStW1Hn2\nkb59+55LSkqyqe790NBQ34kTJ+4EgO7du1/OyckxSk9PNzc3N0+vy3EYRhxNSVJod5RCRoBycq2p\n5zQ0ZIeyr1kDbOFgwL1UyrMhlKoYPDw85FwfODU11cLKyipZsW5paZmSkpJiWVXFMGnSJNjY2AAA\njIyM4OLi8s9/mL/+kqOsDDAzY9cVN58o3lfVuoJQx29M63FxcaLKI/V1Kk8gMNADHToAnp5yGBs3\nzvKUy+XYsWMHAPxzvqw3hmFqXXR1dQv09PTy9fT08ps1a1Ysk8kq9PX182r7XGJiok2nTp3iq3rP\n29v78Pnz53sr1gcMGHAqJiam8+vbsRGrd+4cw/TsWeMmhBDCTJ/OMIsXC51Cdf7/3KnUOf71Rakr\nhoKCAj3F64qKCrXQ0FDfqKioHg2pkCwsLFKTk5OtFOspKSmWFhYWqXXdz717QIcODUlCCGkK5s1j\nJ9pcuJDtlCbVU6rz+ZUPqKlV+Pn5/VVTx7IyfH19Q3ft2jUBAKKionoYGRnl1LV/ARBPxaC4pBMz\nKWQEKCfXKCfL1hZwdwd++aVh+5FKeTaEUlcMBw4cGKV4XVFRoRYTE9NFW1v7RU2fGTdu3J7IyEj3\nzMzMFlZWVsnLly9fVlpaqgkAAQEBwV5eXmFhYWFetra293V1dQu3b98+uT5/wN27wPvv1+eThJCm\n5pNPgHffBT76CNBQ6uzXNCk1JcakSZN2KO501tDQKLOxsUmaOnXqVjMzs2e8B6xlSgwHB2DPHnoA\nOCFEOf36saOUxo0TOgm/VPLMZ6HUVDGUl7NthVlZ7O3vhBBSm8OHgWXL2Kn6G/Pcarw/qGfixIk7\nc3JyjBTr2dnZxh988EEDW+oa7vFjwMxMHJWCFNodpZARoJxco5yvGjaMnWDvzJn6fV4q5dkQSlUM\n169fdzYyMspRrBsbG2dfu3atM3+xlJOQwHYoEUKIstTU2L6Gb74ROol4KdWU5OzsfD0iIqK/iYlJ\nFsBOkeHu7h4ZHx/P+wxFNTUlBQcDV66wz3glhBBlFRcDNjbA6dOAvb3QafjB+7Tb8+bNW9ezZ89L\n77zzzh8Mw8j27ds3ZvHixTw9OE95SUlAu3ZCpyCESI2WFjvz6vffA5vrPUtb46VUU9KECRN2HTx4\ncKSZmdmzVq1aPf3zzz9HTJgwYRff4WqTmMjW+mIghXZHKWQEKCfXKGfVpk8H9u5lH/RVF1Ipz4ZQ\neiSvg4PD3w4ODn/zGaau6IqBEFJfrVoB3t7Atm3A/PlCpxEXSQ9XNTcH4uKA1q1VHIoQ0ihcuQKM\nGcNOya2uLnQabvE+XFWMioqAvDy2ciCEkPro2hVo0wYIrfHpMk2P0hVDUlKSzalTpwYCQFFRkU5e\nXp4Bf7GUyQO0bcsOPRMDKbQ7SiEjQDm5RjlrFhgIbNyo/PZSKc+GUOq0umXLlmljxozZFxAQEAyw\nM6GOGDHiT36j1UxMHc+EEOkaNYqdjPPGDaGTiIfS9zFER0d369GjR5Ti2cyOjo7xQt7H8MMP7JPb\naKgZIaShVq1iv2w2pnuieO9j0NLSKtbS0ipWrJeVlWkoJtUTyqNHgLW1kAkIIY3FtGnAgQNAZqbQ\nScRBqYrB3d09ctWqVYuLiop0Tp48OWjMmDH7fHx8DvMdriapqYClpZAJXiWFdkcpZAQoJ9coZ+1a\ntgT8/Nihq7WRSnk2hFIVw1dffbWwZcuWGY6OjvHBwcEBXl5eYStXrlzCd7iapKYCFhZCJiCENCbT\npwNbtgAVFUInEV6d72PIysoySU5OtnJ2dr7OU6ZXVNfHYGsLhIWJ4+lthBDpYxigc2dgzRpg8GCh\n0zQc730M7u7ukXl5eQZZWVkmXbp0iZk6derWOXPmfFufA3KBYeiKgRDCLZmMvWoIDhY6ifCUqhhy\nc3MNDQwM8g4ePDhywoQJu6Kjo7sp7mkQQlYWOwmWrq5QCf5LCu2OUsgIUE6uUU7lvfceEBEBPHlS\n/TZiyMk3pSqG8vJy9bS0tNZ//PHHO8OGDTsKsE08/Earntg6ngkhjYO+PvtMaGU6oRszpfoY9u3b\nN2bFihVLe/fufWHz5s0zHjx48Oann3769YEDB0bxHrCKPoZjx4DvvgOOH+f76ISQpiYuDvD1BR4+\nBDSUnmZUfJrcM5+3bgUuXQJ+EfzhooSQxqhHD2DxYsDHR+gk9cd75/OLFy+0N23aNPOjjz76cfLk\nydsnT568XchnPouxKUkK7Y5SyAhQTq5RzrqrqRNaTDn5olTFMH78+N3p6enm4eHhQz08POQpKSmW\nenp6BXyHqw6NSCKE8Omdd4CoKHaGhaZIqaYkFxeXuLi4OBcnJ6cbN27ccCotLdXs06fP+cuXL3fn\nPWAVTUmensD//sc+ZIMQQvjw8cfsyMdVgj/EuH54b0pq1qxZCQAYGhrmxsfHO+bk5BhlZGS0rM8B\nufD0KT2chxDCr2nTgB07gLIyoZOonlIVw9SpU7dmZWWZrFy5comvr2+ovb39rU8//fRrvsNVJz1d\nfA/okUK7oxQyApSTa5SzfuztASsr4MSJV38vtpx8UGow1tSpU7cC7B3QiYmJgj5luaICyMhgJ70i\nhBA+ffABO/rRy0voJKqlVB/Dy5cvmx84cGBUUlKSTXl5uTrDMDKZTMZ8/vnnX/Ae8LU+hufP2XmS\nsrP5PjIhpKnLzWWfFJmQIL0vo7z3MQwfPvxQaGior6amZqmurm6hYqnPARvq2TPxNSMRQhonQ0P2\nZrdffxU6iYoxDFPr4uDgcFOZ7fhY2Ij/iohgmL59GdGJiIgQOkKtpJCRYSgn1yhnw0REMIyjI8NU\nVCjWI4SMo7T/P3fW67yr1BVDr169Lt64ccOJ1xpKSXTFQAhRpX79gMJCICZG6CSqU2Mfg6OjYzzA\nTqKXkJDQvl27domKR3zKZDJGFZXF630M338P3LnDPvOZEEJUYeVKdsbVH38UOonyGtLHUOOopMOH\nD/soZlGt7wG4RlcMhBBVmzgRcHEB1q0DtLWFTsO/GpuSzM3N0w8ePDjy66+//vT48eNDLC0tU2xs\nbJIUi4oyvkKM9zAA0hjbLIWMAOXkGuVsOCsroGtX4OBBcefkSo0Vw8SJE3fGxMR0cXR0jA8LC/Oa\nN2/eOlUFq056OmBmJnQKQkhTM2kSsHu30ClUo9Y+hvj4eEcAKCsr0+jateuV2NhYV5Wlw3/7GHr2\nZC/nevVSZQpCSFNXVMRO3nnrljSm5OHtPgYNDY2yql4Lia4YCCFC0NEB/PyAPXuETsK/GiuGGzdu\nOOnr6+crlvj4eEfFawMDgzxVhaxMrJ3PUmh3lEJGgHJyjXJyx98f2LxZLnQM3tU4Kqm8vFxdVUGU\n8eIFUFoK6OkJnYQQ0hR5eAA5OcDffwMODkKn4Y+kHu2ZmsqODHjyROBQhJAm69NPATU14KuvhE5S\nM97nShKL588BU1OhUxBCmrLx49m5kyoqhE7CH0lVDFlZgImJ0CmqJoX2USlkBCgn1ygnt54/l8PU\nFIiMFDoJf6hiIISQOvL3B0JChE7BH0n1MWzdCly+DPz8s8ChCCFN2pMnbOfzkyfinSKjyfQx0BUD\nIUQM2rQB3NyAw4eFTsIPqhg4IoX2USlkBCgn1ygntxQ5x44Ffv9d2Cx8kVTF8Py5eCsGQkjTMmIE\ncOoUkCfIrb784rViCA8PH9qxY8c77du3T1izZs2C19+Xy+UehoaGua6urrGurq6xK1euXFLT/rKy\nxDtc1cPDQ+gItZJCRoByco1yckuR08QE6NsXCA0VNg8farzzuSHKy8vVZ86cuenUqVMDLSwsUrt2\n7XrF19c31M7O7nbl7dzd3SNDQ0N9ldmnmJuSCCFNj6I5yd9f6CTc4u2KITo6uputre19GxubJE1N\nzdKxY8fuPXTo0PDXt6tLr7mYm5Kk0D4qhYwA5eQa5eRW5Zy+vsDZs0B2tnB5+MDbFUNqaqqFlZVV\nsmLd0tIy5fLly90rbyOTyZiLFy/2cnZ2vm5hYZG6du3a+fb29rde39ekSZNgY2ODR4+AP/80Qna2\nyz+Xc4r/SEKvK4glj5TX4+LiRJVH6utUnvyV57Vrcjg7A3/+6YEPPhA2n1wux44dOwAANjY2aAje\n7mM4cODAqPDw8KFbt26dCgAhISH+ly9f7v7999/PUmyTn5+vr66uXq6jo1N07Ngxz9mzZ2+4d+9e\nh1cCVrqPQVubvWrQ0eElMiGE1NkffwDbtgHHjwud5FWivI/BwsIiNTk52UqxnpycbGVpaZlSeRt9\nff18HR2dIgDw9PQ8VlpaqpmVlVVlY1FREcAw4r2ZhBDSNA0bxt54m5EhdBLu8FYxuLm5XU1ISGif\nlJRkU1JS0uz3339/19fX95X++/T0dHNFjRYdHd2NYRiZiYlJVlX7U3Q8y+pV//FPcUknZlLICFBO\nrlFObr2eU1cX8PQEDhwQJg8feOtj0NDQKNu0adPMIUOGHC8vL1efMmXKNjs7u9vBwcEBABAQEBC8\nf//+0Zs3b56hoaFRpqOjU7R3796x1e1PzENVCSFN29ixwLffAtOnC52EG5KZK0kuBz7/nB0BQAgh\nYlJcDLRqJa7nQYuyj4FrOTmAkZHQKQgh5L+0tAAvL+Cvv4ROwg3JVAx5eYChodApqieF9lEpZAQo\nJ9coJ7eqyzlqFHDwoGqz8EVSFYOBgdApCCGkakOGANHRbH+o1Emmj2HVKqCwEFi9WuhEhBBStZEj\n2buhJ00SOkkT6WOgKwZCiNg1luYkyVQMubnUx9BQUsgIUE6uUU5u1ZRz2DBALgfy81UWhxeSqRjo\nioEQInZGRkCfPkBYmNBJGkYyfQzDhgEzZgDe3kInIoSQ6v38M3DiBDuHkpCoj4EQQkRi+HB2Qr0X\nL4ROUn+SqRioj6HhpJARoJxco5zcqi1ny5ZA587sVYNUSaZioCsGQohUjBwp7Un1JNPHYGIC3L8v\n3ie4EUKIQkoK4OwMpKcDGrxNVVqzRt/HwDDsFYO+vtBJCCGkdpaWQNu2wIULQiepH0lUDEVF7CRV\nmppCJ6meFNpHpZARoJxco5zcUjanry9w+DC/WfgiiYohN5f6Fwgh0uLjA4SG1r6dGEmij+H2bQZ+\nfsCdO0KnIYQQ5TAM26R05gzw1luqP36j72OgKwZCiNTIZGxzkhSvGiRRMYj9WQyANNpHpZARoJxc\no5zcqktOqTYnSaZioCsGQojUvP02cOMGkJkpdJK6kUQfw7ZtDM6fB375Reg0hBBSNyNHAn5+wIQJ\nqj1uo+9joCsGQohUSbE5SRIVgxQ6n6XQPiqFjADl5Brl5FZdcw4bBpw6BRQX85OHD5KoGAoKxF8x\nEEJIVczMAAcH9gE+UiGJPobp0xk4OwPTpwudhhBC6u6rr9j5kzZtUt0xG30fQ0EBoKsrdApCCKkf\nLy/g2DH2pjcpkEzFoKcndIqaSaF9VAoZAcrJNcrJrfrkdHRk+xgSErjPwweqGAghhGcyGTB0KHvV\nIAWS6GPo0YPB+vVAz55CpyGEkPo5cADYuhUID1fN8ZpEHwNdMRBCpGzAAPb5DFJ4FjRVDByRQvuo\nFDIClJNrlJNb9c1pZAS4ukpj2CpVDIQQoiKentLoZ5BEH0Pz5gyysgBtbaHTEEJI/cXFAWPGqGZ0\nUqPvYygpAZo3FzoFIYQ0jLMzUFgI3L8vdJKaSaJi0NVlh3uJmRTaR6WQEaCcXKOc3GpITqkMW5VE\nxUD9C4SQxsLTU3VDVutLEn0MtraMZO4YJISQmuTkANbWwLNn/DaRN/o+BponiRDSWBgZsX0NkZFC\nJ6meJCoGHR2hE9ROCu2jUsgIUE6uUU5ucZFz8GDg5MmGZ+GLJCoGumIghDQmgwaxD+8RK0n0Mfj6\nMjh0SOgkhBDCjbIyoGVL4M4dwNycn2M0+j4GKTQlEUKIsjQ0AHd34MwZoZNUTRIVgxSakqTQPiqF\njADl5Brl5BZXOcXcnCSJioGuGAghjc3AgWwHtBhb8yXRx7BgAYOvvhI6CSGEcIdh2PsZTp8GOnTg\nfv+Nvo9BCk1JhBBSFzIZ25wkxmGrkqgYpNCUJIX2USlkBCgn1ygnt7jMOXCgOPsZqGLgSFxcnNAR\naiWFjADl5Brl5BaXOQcMYB/cU1bG2S45wWvFEB4ePrRjx4532rdvn7BmzZoFVW0TGBi4sX379gnO\nzs7XY2NjXavaRgpNSTk5OUJHqJUUMgKUk2uUk1tc5jQ3Z/sZrl7lbJec4K1iKC8vV585c+am8PDw\nobdu3bLfs2fPuNu3b9tV3iYsLMzr/v37tgkJCe23bNkybcaMGZur2pcUrhgIIaQ+xNicxFvFEB0d\n3c3W1va+jY1NkqamZunYsWP3Hjp0aHjlbUJDQ30nTpy4EwC6d+9+OScnxyg9Pf0/9wFKoWJISkoS\nOkKtpJARoJxco5zc4jqnYtiqqDAMw8uyb9++0R9++OFWxfru3bv9Z86c+X3lbby9vQ9fuHChl2J9\nwIABp65evdql8jYAGFpooYUWWuq+1Pf8rQGeyGQyRpntXh9n+/rn6jsOlxBCSP3w1pRkYWGRmpyc\nbKVYT05OtrK0tEypaZuUlBRLCwuLVL4yEUIIqR1vFYObm9vVhISE9klJSTYlJSXNfv/993d9fX1D\nK2/j6+sbumvXrgkAEBUV1cPIyCjH3Nw8na9MhBBCasdbU5KGhkbZpk2bZg4ZMuR4eXm5+pQpU7bZ\n2dndDg4ODgCAgICAYC8vr7CwsDAvW1vb+7q6uoXbt2+fzFceQgghSuKr87muy7Fjx4a+9dZbd2xt\nbRO++uqrBVVtM2vWrI22trYJTk5O169du+YqxpwREREeBgYGuS4uLrEuLi6xK1asWKLqjJMnT/7F\nzMwsvVOnTvHVbSOGsqwtpxjK8vHjx1YeHh4R9vb2fzs4ONzcsGFDoBjLU5mcYijPFy9eNO/Wrdtl\nZ2fnODs7u1sLFy78UozlqUxOMZSnYikrK1N3cXGJ9fb2PsxFeQryR1T1R7355pv3ExMTbUpKSjSd\nnZ3jbt26ZVd5m6NHj3p5enqGMQyDqKio7t27d48SY86IiAgPHx+fUCHL8+zZs32vXbvmWt0JVwxl\nqUxOMZRlWlpaq9jYWBeGYZCfn6/XoUOHu2L8f1OZnGIoT4ZhUFhYqMMwDEpLSzW6d+8ede7cuT5i\nK09lcoqlPBmGwbp16+a+9957v1aVpz7lKYopMbi850HonIDwI6n69u17ztjYOLu698VQlkDtOQHh\ny7JVq1ZPXVxc4gBAT0+vwM7O7vaTJ0/aVN5GDOWpTE5A+PIEAB0dnSIAKCkpaVZeXq5uYmKSVfl9\nMZSnMjkBcZRnSkqKZVhYmNeHH374c1V56lOeoqgYUlNTLaysrJIV65aWlimpqakWtW2TkpJiKbac\nMpmMuXjxYi9nZ+frXl5eYbdu3bJXZUZliKEslSG2skxKSrKJjY117d69++XKvxdbeVaXUyzlWVFR\noebi4hJnbm6e3r9//wh7e/tbld8XS3nWllMs5Tlnzpxvv/nmm0/U1NQqqnq/PuUpioqBq3se+KbM\n8Tp37nwtOTnZ6vr1686zZs363s/P7y9VZKsroctSGWIqy4KCAr3Ro0fv37Bhw2w9Pb2C198XS3nW\nlFMs5ammplYRFxfnkpKSYnn27Nl+crnc4/VtxFCeteUUQ3keOXLE28zM7Jmrq2tsTVcvdS1PUVQM\nUrnnQZmc+vr6+YpLUE9Pz2OlpaWaWVlZJqrMWRsxlKUyxFKWpaWlmqNGjTrg7+8fUtU/frGUZ205\nxVKeCoaGhrnDhg07evXqVbfKvxdLeSpUl1MM5Xnx4sVeoaGhvu3atUscN27cnjNnzrw9YcKEXZW3\nqVd5Ct1poujceeONNx4kJibaFBcXN6ut8/nSpUs9hOiQUibn06dPzSsqKmQMw+Dy5cvd2rZtmyRE\nmSYmJtoo0/ksVFkqk1MMZVlRUSEbP378ro8//vjb6rYRQ3kqk1MM5ZmRkdEiOzvbiGEYFBUVafft\n2/fsqVOnBoitPJXJKYbyrLzI5XL3qkYl1ac8ebuPoS6kcs+DMjn3798/evPmzTM0NDTKdHR0ivbu\n3TtW1TnHjRu3JzIy0j0zM7OFlZVV8vLly5eVlpZqKjKKoSyVySmGsrxw4ULvkJAQfycnpxuurq6x\nALB69epFjx8/tlbkFEN5KpNTDOWZlpbWeuLEiTsrKirUKioq1MaPH797wIABp8X2b12ZnGIoz9cp\nmogaWp6if+YzIYQQ1RJFHwMhhBDxoIqBEELIK6hiIIQQ8gqqGAghhLyCKgZCCCGvoIqBNAq5ubmG\nmzdvnqFYf/LkSZsxY8bs4/o4QUFBQZaWlilBQUFBXO+7Nv3794/Q19fPj4mJ6aLqY5OmhSoG0ihk\nZ2cb//jjjx8p1tu0afNk3759Y7g+jkwmY+bOnbteiIohIiKiv5ub21UxTl9CGheqGEijsHDhwq8e\nPHjwpqura+yCBQvWPHr0qK2jo2M8AOzYsWOSn5/fX4MHDz7Rrl27xE2bNs1cu3bt/M6dO1/r2bPn\npezsbGMAePDgwZuenp7H3Nzcrvbr1+/s3bt336rqWEyleWeCgoKCJk6cuLNfv35nbWxskg4ePDhy\n/vz5a52cnG54enoeKysr01Dkc3Bw+NvZ2fn6J5988g0AZGRktBw9evT+bt26RXfr1i364sWLvQB2\nvqPJkydvd3JyuuHs7Hz94MGDI/kuP0JeIeQt3LTQwtWSlJTUtvLUGpWn2ti+ffskW1vbhIKCAt2M\njIwWBgYGucHBwdMYhsGcOXPWf/fdd7MZhsHbb799OiEhwZZh2Hnr33777dOvHycoKGjZ2rVr5ynW\nly1bFtS3b9+zZWVl6tevX3fS1tYuCg8PH8IwDEaMGHHwr7/+Gp6ZmWn61ltv3VF8Jjc314BhGIwb\nN+638+fP92YYBo8ePbK2s7O7xTAMPv300zVz5sxZr9heMTUDwzDw8PCIiImJ6Sx0edPSuBdRTIlB\nSEMxtcyL379//whdXd1CXV3dQiMjoxwfH5/DAODo6Bh/48YNp8LCQt2LFy/2qtwvUVJS0qy248pk\nMsbT0/OYurp6eadOnW5WVFSoDRky5Lhi30lJSTbe3t5Hmjdv/nLKlCnbvL29j3h7ex8BgFOnTg28\nffu2nWJf+fn5+oWFhbqnT58e8Pvvv7+r+L2RkVFO3UuEkPqjioE0CVpaWsWK12pqahWKdTU1tYqy\nsjKNiooKNWNj4+zY2FjXuu67WbNmJYp9aWpqllY+TllZmYa6unp5dHR0t9OnTw/Yv3//6E2bNs08\nffr0AIZhZJcvX+6u+HxltVV0hPCJ+hhIo6Cvr5+fn5+vX9fPKU7A+vr6+e3atUvcv3//aMXvb9y4\n4cRFtsLCQt2cnBwjT0/PY+vXr597/fp1ZwAYPHjwiY0bNwYqtlP8ftCgQSd/+OGH/yl+n5OTY8RF\nDkKURRUDaRRMTU2f9+7d+4Kjo2P8ggUL1shkMkYxeqfya8V65deK9V9//fX9bdu2TXFxcYnr1KnT\nzdDQUF9ljl3dvhXr+fn5+j4+PoednZ2v9+3b99y33347BwA2btwYePXqVTdnZ+frDg4OfytmxFyy\nZMnK7OxsY0dHx3gXF5e4qh5kQwifaHZVQupg+fLly/T09ArmzZu3Tojj9+/fP2LdunXzOnfufE2I\n45Omga4YCKkDPT29gi1btkwT6ga3xMTEdpX7MQjhA10xEEIIeQVdMRBCCHkFVQyEEEJeQRUDIYSQ\nV1DFQAgh5BVUMRBCCHnF/wGN24SgosJe8AAAAABJRU5ErkJggg==\n",
"text": [
- "<matplotlib.figure.Figure at 0x388b510>"
+ "<matplotlib.figure.Figure at 0x3e4b1d0>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEZCAYAAABrUHmEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X18T/X/x/HHmauJzVwOm29E5WvMtlAUDUmby0KLb0Mh\n1a0U6UcUEl24Kn2TiC4JQ0nmu69cfBRlKXPVBWJjszCGzdXs4vz+ON992myzz+fjfD7nnO11v90+\nt33O53N2znPv8Xnt/X6fC0VVVRUhhBDCAV5GBxBCCGEdUjSEEEI4TIqGEEIIh0nREEII4TApGkII\nIRwmRUMIIYTDpGgI03rppZeYO3cuADabjUaNGpW47tixY/nggw88Fc1y5syZQ61atfD19SU9PR0f\nHx+SkpIAGDp0KK+88oqxAYVlVDQ6gBDFSUtL4/PPP+fw4cMOrT927FjatWvHsGHDqFSpUpH3k5KS\nuOWWW8jJycHLq3z9rXT58mUmTJjAzz//TMuWLQHIzMy0v68oCoqiGBVPWEz5+t8jLOOTTz6hR48e\nVKlSxaH169evT/PmzVm7du1113P1XNacnByXvs8TSst26tQprl69yj//+c8S15FzfIWjpGgIU4qL\ni+Pee+8t8vobb7yBv78/9evXZ/HixYXeCw8PJzY2ttjtderUCQA/Pz98fHyIj49HVVVeeukl/P39\n8fPzY8CAAZw9exbQeiZeXl589NFHNGnShG7dupGXl8fTTz+Nr68vzZo1Y968eXh5eZGXlwdA48aN\n2bRpk32fU6ZMITo62r68efNmQkND8fX1pXnz5sTFxZX48zdu3Jg333yTVq1a4ePjwyOPPMLly5cB\nbaguMDCQGTNmEBAQwLBhw8jKymLEiBHUqlWL2rVrM3LkSLKysjh48CBBQUH2n/2+++4DwMvLiyNH\njhS77xUrVtC8eXN8fX0JCwtj586dJeYU5Y8UDWFK+/bt4/bbby/02okTJ7hw4QInTpxg7dq1PP/8\n8+zZs8f+fvPmzQstF/T9998DcP78eTIzM7nzzjuZN28ea9asISEhgRMnTlCxYkVGjBhR6Pvi4+M5\ncOAAcXFxzJ07l23btnH48GESEhJYu3ZtoWGda4d5Cj4/fPgw/fr1Y9asWWRkZLBgwQIeeeQRUlNT\nS2yDmJgYNm/eTGpqKqdOneLll1+2v3fy5EkuXbpEcnIyCxcuZOLEiRw8eJDExESOHDnCwYMHmThx\nIrfddhu//vqr/WffuHFjifsD2LZtG88++ywxMTFkZGQwduxY+vTpw5UrV677faL8kKIhTOncuXP4\n+PgUeq1ChQpMmjQJRVFo164dffv2ZeXKlfb3fXx8OHfuXLHbK274ZdmyZYwdO5aGDRvi7e3N66+/\nztdff23/ix5g0qRJVK5cmSpVqrBq1SpGjx5N3bp18fHxYcKECdcd1in43pIlS+jVqxddu3YF4N57\n7+Wuu+5i3bp1xX6voig8++yz9n1NnDiRFStW2N+vVKkSL7/8Ml5eXlSpUoXly5czadIkatSoQY0a\nNZg0aRJLly4t8Wcvbn8Aixcv5sknnyQ4OBiAQYMG4evry3fffVfqNkT5IEVDmFLNmjULTdYC1KpV\nq9AcR2BgICdPnrQvZ2Zm4ufn5/A+Tp06xT/+8Q/7cqNGjcjNzeX06dP21xo0aFBo/cDAQPtyQECA\nw/tKSUlh5cqV1KxZ0/7Yvn076enpJX7Ptfsq+LPWrl2bihX/Po7l5MmTRX6WU6dOOZyvYM7Zs2cX\nypmSksKZM2ec3pYom6RoCFMKDg7mwIEDhV5LT08vNEySnJxM/fr17cu///47ISEhxW6vuKOD/P39\nOXr0aKHteXl5UadOnWK3Ua9ePVJSUuzLBZ8DVK5cmYsXL9qXz5w5Y99vgwYNePzxxzl79qz9kZmZ\nyfjx44vd17XbT0lJwd/fv8R1i/tZ6tWrV+L6JWnQoAFTpkwplPPChQsMHDjQ6W2JskmKhjClyMhI\ntm7dWui13Nxcpk2bRl5eHvHx8axdu5b+/fvb39+6dSsRERHFbs/Pzw9FUUhMTLS/FhUVxZw5c0hN\nTeXKlSu8/PLL9OnTh6pVqxa7jf79+/POO++QlpZGZmYmb731VqFi1Lp1a5YvX05ubi579+5l1apV\n9veio6P56quv2LJlC6qqkp2dzfbt20uc01BVlXnz5tn39cYbbxAVFVVie0VFRTFt2jTOnTvH+fPn\nee211xg0aFCJ61+7r/whrOHDhzN//nwSEhIAuHLlChs2bODChQsObUuUfVI0hCkNHjyY9evX23sW\niqLQoEEDbrrpJho2bEjv3r2ZM2cOrVu3BuCvv/7i999/p2/fvsVur0aNGowZM4Y2bdpQs2ZNfvrp\nJ5555hl69+5NSEgI/v7+ZGVlsWjRIvv3XNs7GTVqFB06dKBp06aEhYXRq1evQvMF06dP59dff6VG\njRpMmDCh0If8rbfeyrJly5gwYQI1atSgfv36TJs2jdzc3GLzKorCgAED6NKlCw0bNqROnTpMmzat\nxGzTp0+nWbNm3HLLLTRp0oSmTZvy+uuvl7h+SRP4nTp1YubMmQwZMgQfHx9uvvlmFixYUGxGUT4p\nRt6EKS4ujhdffJHc3FyGDBnCuHHjCr3/9ddf88orr6AoCnl5ecycOZMHHnjAoLTC0yZOnEi9evV4\n7rnnSl137NixNGvWjCeffNIDyTTuPGGwSZMmLF68mC5duui6XSFulGFFIysri+bNm7Nt2zb8/f1p\n3749CxcuJDQ01L7OxYsXqVatGqAdgtmzZ89C47ZCGEmKhiiPDBueio+PJygoiICAACpWrEhUVFSR\nE7PyCwbAhQsXCh3JIoQZyOU3RHlj2LWnUlJSCl2ALjAwEJvNVmS9NWvW8NJLL/HXX3+xYcMGDyYU\n4voaN25c4pzEjSo4YS+EmRjW03D0L7S+ffvy+++/88033xS6JIMQQgjPM6ynERgYSHJysn05OTn5\nupe+7tixIzk5OZw8ebLI8eoBAQHXvRyDEEKIwpo2bcqff/7p9PcZ1tNo27Yt+/fv5/jx42RnZxMT\nE1PkGPv86/0D7Nq1i6tXrxZ7wlJqaqr9WHOzPiZPnmx4BskpOSWn5Mx/OHrbgWsZ1tPw9vZm/vz5\ndO/enby8PKKjowkLC7MfEz5y5EiWL19uv35O1apVWb58uWUnHgsWQDOTnPqSnPqSnMYz9CZMERER\nRXoXI0eOtD8fP378dS+zIIQQwrPkjHAPGTp0qNERHCI59SU59SU5jWfoGeF6URSFMvBjCCGEx7j6\nuSk9DQ8p7hwUM5Kc+pKc+pKcxpOiIYQQwmEyPCWEEOWQDE8JIYRwOykaHmKVMU7JqS/JqS/JaTwp\nGkIIIRwmcxpCCFEOyZyGEEIIt5Oi4SFWGeOUnPqSnPqSnMaToiGEEMJhMqchhBDlkMxpCCGEcDsp\nGh5ilTFOyakvyakvyWk8KRpCCCEcJnMaQghRDsmchhBCCLeTouEhVhnjlJz6kpz6kpzGk6IhhBDC\nYTKnIYQQ5ZDMaQghhHA7KRoeYpUxTsmpL8mpL8lpPCkaQgghHCZzGkIIUQ7JnIYQQgi3q2h0gPLC\nZrMRHh5udIxSSU596ZFTVeHqVbhyRXtcvvz382uXHXl+7TLA6NE2eva8sZyeUJ5+72YlRUOIG6Sq\nkJUFmZna49Il7XHxIuzYAadO/b1c8L3ivpb0mqJA1araw9tbezjyPH/Z17fk9R59FM6fN7oVhVUY\nOqcRFxfHiy++SG5uLkOGDGHcuHGF3v/888+ZOXMmqqpSpUoVFixYwB133FFkOzKnIVxx5QqcO6c9\nMjL+/tDPzCy6XNyj4DqKon0wV68O1appj5tu0h75z6/96uh7N90ElSq5rx1uuQU2bIBmzdy3D2E+\nrn5uGtbTyMrK4qmnnmLbtm34+/vTvn177r//fkJDQ+3r3H777Wzfvh0fHx/i4uIYPnw4CQkJRkUW\nJqOqcOECnD4N6enah//Zs38Xgvznxb127hzk5kLNmlCjhvaB7+sLPj5FH3Xral9Let/HB6pUMbo1\nXKcoWlsK4QjDikZ8fDxBQUEEBAQAEBUVRWxsbKGi0a5dO/vzu+++m+PHj3s8p16sMsZpZM6sLEhL\n0x6nT1//cfy4jczMcCpXhtq1oVYtrQD4+WmP/OcNGhT/up+fNjyjKO79mazwe1cU2LHDxq23hhsd\npVRWaE+wTk5XGFY0UlJSaNSokX05MDDwuifELFiwgD59+nggmdCTqmp/1Z84AX/99ffXgs/zv164\noP1VX7cu1KlT+PHPfxZePnQIevbUPvjFjZGehnCGYUVDceJPPJvNxkcffcT27dvdmMi9rPJXh7M5\nMzIgORmOHSv69dgxSE3Vhm7q19f+6i/4tXXrwsu1aoGXgweBh4Q4l9MoVvi9Kwq0axdudAyHWKE9\nwTo5XWFY0QgMDCQ5Odm+nJycXKjnkW/v3r0MHz6cuLg4atasWeL2hg4dSuPGjQHw8/MjJCTE/ovL\n78HIsvPL2dmwYoWN1FSoVi2cP/+E+Hgbf/0FZ8+Gk5MDtWrZ8PfXPsgbNYIGDWwEB0Pv3uEEBMBP\nP5W+v9OnzfHzlsfly5dtxMdD8+bmyCPL7lnOf56UlMSNMOzoqStXrtC8eXO2b99OvXr16NChAwsW\nLCAsLMy+zrFjx+jSpQtLlizhrrvuKnFbVjh6ymbiMU5V1XoEv/0GX39tIzdXKw6HD8Px4xAQAE2b\nao9mzbSvTZrAP/6hzRG4e16gOGZuz4KskLN5cxg/3sbQoeFGRymVFdoTrJHTckdPeXt7M3/+fLp3\n705eXh7R0dGEhYWxYMECAEaOHMnUqVM5e/YsTz31FACVKlXip59+Miqy5eUXh717tQJR8OHtDS1a\naEcSde0KffpoxeHmm6FyZaOTC3eSOQ3hDLn2VBmlqnDkCCQkwK5d2iMhAfLytLmEoCCtSLRo8fck\nsyifWrSAmBho2dLoJMKTLNfTEPrKyID4ePjhB9i+HX76STt/ICxMezz9tPY1IMCY4SRhXtLTEM6Q\nCxZ6SMHJKD2cOgXLl2vFoHVraNgQXntNO8v52Wfh4EHtKKavv4bJk6F3bwgMLL1g6J3TXSSnfhTl\n74MVzM4K7QnWyekK6WlYxMWL8P33sHGj9khKgvBwuPdeGDoUQkJk7kG4Rnoawhkyp2FiKSmwdq3W\nW/jhB7jjDrjvPu3Rpg1UlJIvdBAcDJ99pv3hIcoPmdMoIw4c0CYl16zRehM9esATT8CqVdochRB6\nk56GcIbMaXjI9cY4//oL3n5b6z2Eh2vXVpo9G06e1P4C7NfPcwXDKmOxklM/igI7d9qMjuEQK7Qn\nWCenK6SnYZDcXIiNhQ8+gB9/1M6LeOMN6NIFKlQwOp0oT6SnIZwhcxoeduIELFoECxdqh78+9RT0\n76/dM0EII4SFaf8e27QxOonwJLlHuMkdPAjDh2snUuUfCvvjjzB4sBQMYSzpaQhnSNFws4QEGDAA\n2rWz0aiRdknvBQugwG1DTMUqY7GSUz+KAj//bDM6hkOs0J5gnZyukKLhJomJMGgQREZChw6wbJl2\nkl3t2kYnE6Iw6WkIZ8ichs7OnIFp07Sjnp57DsaM0e4bLYRZtWsH774L17mQtCiDZE7DYKoKn3yi\nzVlcvapdOXbSJCkYwvykpyGcIUVDBwcOQOfO8N578J//wLx54O9feB2rjHFKTn1ZIaeiwC+/2IyO\n4RArtCdYJ6crpGjcAFWF+fPh7rvhwQe1q8wWuIeUEJYgPQ3hDJnTcFFaGgwbpt3ZbulS7e5nQlhR\nhw4wYwbcc4/RSYQnyZyGB+X3KFq00M61kIIhrEx6GsIZUjSc9PHH0KsXvP8+vPmm45cjt8oYp+TU\nlxVyKgrs2mUzOoZDrNCeYJ2crpBrTzlIVeGll+DLL2HrVu0WqUKUBdLTEM6QOQ0H5ORolyf/7Tft\nIoNygp4oSzp1gqlTtSssi/JD7qfhJlevwsMPQ1YWbNoE1aoZnUgIfUlPQzhD5jSuIydHuxQIaBcY\nvJGCYZUxTsmpLyvkVBRISLAZHcMhVmhPsE5OV0hPowS5uTBkCFy6BF99JfffFmWX9DSEM2ROowTP\nPQf79mlzGFWr6rppIUylSxeYMEG797woP2ROQ0fz5sG338IPP0jBEGWf9DSEM2RO4xpxcdpVatet\nAz8//bZrlTFOyakvK+RUFNi922Z0DIdYoT3BOjldIT2NApKStDvpffkl3HKL0WmE8AzpaQhnyJzG\n/2Rna8er9+8PL7ygUzAhLOD++7X7vjzwgNFJhCfJtadu0CuvQM2aMHq00UmE8CzpaQhnGFo04uLi\naNWqFS1atOCtt94q8v4ff/xB+/bt8fb2Zvbs2W7LsWkTLFkCn34KXm5qEauMcUpOfVkhp6LAnj02\no2M4xArtCdbJ6QrD5jSysrJ46qmn2LZtG/7+/rRv357777+f0NBQ+zq1a9fm3//+N2vWrHFbjosX\nYcQIWLgQ6tZ1226EMC3paQhnGNbTiI+PJygoiICAACpWrEhUVBSxsbGF1qlbty5t2rShUqVKbsvx\nyiva/QQiI922CwDCLXJhH8mpLyvkVBRo1Src6BgOsUJ7gnVyusKwnkZKSgqNGjWyLwcGBnq8S/fL\nL/DFF7B/v0d3K4SpSE9DOMOwoqEoiq7bGzp0KI0bNwbAz8+PkJAQe7XPL0YFl1UVXnklnOnTYf/+\nou/rvbx7926ef/55t21fr+WChdsMeUpalvbUbzk93caaNbvp1UvaU69lM/77zH+elJTEDVEN8t13\n36k9evSwL8+YMUOdNm1asetOmTJFnTVrVonbcuXHWLZMVUNDVTUnx+lvdcmWLVs8s6MbJDn1ZYWc\nPXuq6muvbTE6hkOs0J6qao2crn78Gzan0bZtW/bv38/x48fJzs4mJiaGiIiIYtdVde47X74M48bB\n3LlQoYKumy5RftU3O8mpLyvkVBRo2TLc6BgOsUJ7gnVyusKw4Slvb2/mz59P9+7dycvLIzo6mrCw\nMBYsWADAyJEjOXHiBG3btiUjIwMvLy/mzp3Lb7/9RvXq1W9o3x98AKGh0LGjHj+JENYmcxrCGeXu\njPCLF6FZM/jvfyE42M3BCrDZbJb460Ny6ssKOfv2hbAwG5MmhRsdpVRWaE+wRk45I9xB77+v9TA8\nWTCEMDPpaQhnlNjTSE9PL/Wbvby88NPzUrAucrRiXryoXYhw82YICvJAMCEs4KGHtDtU9u9vdBLh\nSbrfT6NBgwY0bNjwut+ck5NDcnKy0zs1yqefaifyScEQ4m/S0xDOKHF46p///CeJiYnXfdSuXduT\nWW9Ibi7MmQNjxxqz/4LHSpuZ5NSXFXIqyt/nKpmdFdoTrJPTFSUWjR07dpT6zY6sYxZr10KdOlpP\nQwjxN+lpCGc4dPRUWloaKSkpqKqKqqooikJYWJgn8jnEkbG5jh1h1CgYMMBDoYSwiIcf1uY1HnnE\n6CTCk9x2j/Bx48axZMkSmjVrhpfX3x2TLVu2OL0zo+zbB4mJ8OCDRicRwnykpyGcUeoht6tWrSIx\nMZGtW7eyZcsW+8NKPvwQhg2Digbe3NYqY5ySU19WyKko8OuvNqNjOMQK7QnWyemKUj9GQ0JCyMjI\noE6dOp7Io7tLl2DpUkhIMDqJEOYkPQ3hjFLnNHbu3EmfPn1o2bIlVapU0b5JUVi7dq1HAjriemNz\nn34KMTFwza06hBD/M2iQdj+ZRx81OonwJLfNaQwePJjx48fTsmVL+5yG3pc1d6fFi+W+30Jcj/Q0\nhDNKndOoUaMGo0aNokuXLoSHhxMeHs69997riWw37Phx7QZL7r4rnyOsMsYpOfVlhZyKAr/9ZjM6\nhkOs0J5gnZyuKLWn0aFDByZOnEjPnj3tw1OAqQ65Lcnq1dC7NxSILYS4hvQ0hDNKndMIDw8vdjjK\nTEdQlTQ2d889MGGCOXoaQpjV4MHQpQsMHWp0EuFJbpvTsGo3KyUFfv8d7rvP6CRCmJv0NIQznLo0\nes+ePd2VQ3erVmlDU5UrG51EY5XiKzn1ZYWcigK//24zOoZDrNCeYJ2crnCqaBw/ftxdOXS3cqV2\neQQhxPVJT0M4w6k79z322GN8/PHH7szjkmvH5pKTISQE/vrLPD0NIczq8ce1C3kOH250EuFJHrlz\nnxkLRnFWrdJuYSkFQ4jSSU9DOKPEotG5c+diH126dKFLly6ezOi0mBjzDU1ZZYxTcurLCjkVBf74\nw2Z0DIdYoT3BOjldUeLRUzNnzrQ/zz/kdseOHbz11lvUq1fP/clcdOwYHDqkHUIohCid9DSEMxya\n07DZbEybNo3Lly/z8ssvExER4YlsDis4NjdnDvz2GyxaZHAoISziiScgLAyefNLoJMKT3HKeRlxc\nHNOnT6dy5cq8/PLLdO7c2eWAnhITA1OnGp1CCOuQnoZwRolzGm3btuXJJ58kKiqKGTNm4Ovry65d\nu+wPMzp6FA4fBjPWNquMcUpOfVkhp6LAgQM2o2M4xArtCdbJ6YoSexrVqlWjWrVqrF69mtWrVxd5\n30yXEcm3apV2d75KlYxOIoR1SE9DOMOp8zTMKn9s7s47Ydo06NbN6ERCWMfTT0OLFvDMM0YnEZ6k\n+3kajgxBmWmYKikJjhwx59CUEGYmPQ3hjBKLxtChQ0lPTy/xcebMGYYNG+bJrNe1fDk89JCx9wG/\nHquMcUpOfVkhp6LAwYM2o2M4xArtCdbJ6YoSP2IzMjK44447rvvNdevWvaGdx8XF8eKLL5Kbm8uQ\nIUMYN25ckXVGjRrFpk2bqFKlCosXLyY0NLTYbX30EXz22Q3FEaJcstCNOIUJGDankZWVRfPmzdm2\nbRv+/v60b9+ehQsXFioKq1ev5vPPP2fNmjUkJCTw2GOPsXv37iLbUhSFFi1U9u+X/wBCOGvUKGja\nFJ57zugkwpM8cu0pPcXHxxMUFERAQAAVK1YkKiqK2NjYQuusX7+e6OhoAEJDQ8nJySElJaXY7Q0b\nJgVDCFfInIZwhmEzACkpKTRq1Mi+HBgYWGQcsLh1UlJSCAwMLLK9Bg3gm2/cFveG7dtno1WrcKNj\nlEpy6ssKOdetA19fG02bhhsdpVRWaE/QJ+eFC5CYCCdOwF13waBB+mS7UYYVjeJuIVuca7tPJX3f\niy8O5aabGgNQsaIfNWqEUKdOOACnT9sADF0+f363/T+lGfKUtHz6NHzzjXnylLQs7anf8pEjNmA3\nCxeaI4/V29PVf5/nz4fz++8A2jKE/++rjSVLYNAgbTn/j+vwcOeW858nJSVxI0qd08jJyeGTTz4h\nOTmZV199lZSUFFJTU2nXrt0N7fj777/nrbfeYt26dYB2gcSrV68yceJE+zrDhg0jIiKC/v37A9Cy\nZUv++9//EhAQUPiHcHFsTggBY8ZAQAC88ILRScqf9HT45BP44gvtYqu9ekF4ONxzDzRu7N4hd7fN\naTzxxBPs2rWLFStWAODr68uTOlzZrG3btuzfv5/jx4+TnZ1NTExMkQshRkZGsnTpUkA7J6RChQpF\nCoYQ4sbInIbn/fGHdtOrpk0hIQHefBNSU2HxYoiOhiZNzDtHW2rRiI+P5/3336dq1aqAVjTy8vJu\neMfe3t7Mnz+f7t2707p1ax566CHCwsJYsGABCxYsAKBfv34EBAQQFBTE8OHDLXMTqOJY5bhtyakv\nK+RUFPjzT5vRMRxihfaEknMeOqQVhY4d4R//gAMH4PPP4b77zHuO2bVKjVmxYkVyc3Pty2fPniUn\nJ0eXnUdERBTpXYwcObLQ8nvvvafLvoQQxZOehvudOQMTJ8Lq1dqhzfPmga+v0alcU+qcxocffsjX\nX39NQkICw4YNIyYmhpdeeokhQ4Z4KmOpZE5DCNf93/9B7dpQzLm14gbl5sLChTB5MgwcCFOmQM2a\nRqfSuOV+GgAjRoygXbt2fPvttwCsWLGC1q1bO59QCGFK0tNwj59/hhEjtB7Fxo0QHGx0In2UOqdx\n7NgxatasyYABAxgwYAA1a9bk2LFjnshWplh9LNZsJKd+FAUOH7YZHcMhVmjPrCyIjrbRo4d2RJrN\nVnYKBjjQ04iMjLSfG3HlyhUSExO5/fbb+fXXX90eTgjhftLT0M+uXTB0KPj4wJ49UL++0Yn05/S1\np3bv3s17773HIhPdhFvmNIRw3YQJUK2aNlErXJOXB3PmwIwZ2td//cu8h8zmc9ucxrVCQkLYsWOH\n0zsSQpiT9DRuzKlTMGQIZGTAzp1w881GJ3KvUuc0Zs+ebX/MnDmTgQMHUqdOHU9kK1OsMBYLklNv\nVsipKPmXEjE/s7Xn5s0QFgahodrcRX7BMFtOPZXa08jMzLTPaXh5eXH//ffz8MMPuz2YEMIzpKfh\nvLw8mD4d5s+HTz8tX7eYLlP3CBdCOG/SJKhQQTuXQJQuIwMGD4a0NFi1SrvCthW5bU6jV69ehTZ+\n7fO1a9c6vVMhhHlIT8NxBw5A377aRQVjYqByZaMTeV6pcxpNmjShevXqPPHEE4wYMQIfHx+aNm3K\n2LFjeUEui+kwq4xxSk59WSGnokBios3oGA4xsj3XrtWuGfXCC9qw1PUKhhV+764qtacRHx9PfHy8\nfbl3797ceeedvPPOO24NJoTwDOlpXF9eHrz2GixapN3o7c47jU5krFLnNG699Va+/fZbGjduDMDR\no0e57777OHTokCfyOUTmNIRw3dSpkJ2tfTCKwi5f1k7WS06GL78sWyfruW1OY9asWbRv357bbrsN\ngIMHD9ovXS6EsD7paRTv5Eno0wduuUU7tNbb2+hE5nDdOY28vDyysrI4cuQIM2fOZPbs2Rw5coTe\nvXt7Kl+ZYZUxTsmpLyvkVBRISrIZHcMhnmrPX3/V7svdvTssXep8wbDC791V1y0aXl5ezJ49m6pV\nq9KuXTvatGljvxmTEKJskJ5GYRs2QOfO2nDdq6+a/3IgnlbqnMb48ePx9/enf//+VKtWzf56rVq1\n3B7OUTKnIYTrXn8dMjPhjTeMTmK8Dz7Q7nmxcqV2pFRZ5rY5jeXLl6MoCu+++26hnR05csTpnQkh\nzEd6Gtq4fVWtAAAVbUlEQVQRUi++CLGxsG0bNGtmdCLzKvU8jaSkJBITEws9pGA4zypjnJJTX1bI\nqShw9KjN6BgOcUd7ZmXBoEHaTZN+/FGfgmGF37urSu1pZGVl8c477/D999+jKAqdOnXiueeeo3J5\nPBVSiDKoPPc0MjLgoYegRg3473/lCClHlDqn8a9//YsqVarw6KOPoqoqy5Yt4/LlyyxdutRTGUsl\ncxpCuG7GDO06SjNnGp3Es06ehIgI7WS9997Trr9Vnug+p5GTk0PFihXZvXt3obv0de3alaCgINdS\nCiFMpzz2NP78UzucdsgQeOUVOULKGSXOabRr1w7QqlFSUpL99aSkJLy8Sp0KEdewyhin5NSXFXIq\nChw7ZjM6hkP0aM9du6BTJ/i//9Ou8OuOgmGF37urSuxp5HdbZsyYwV133UXz5s1RVZWDBw+yePFi\njwUUQrhXeeppbNyoTXovXKhdrVY4r8Q5jcDAQMaMGYOqqly6dAnv/80QZWVlcdNNNzFmzBiPBr0e\nmdMQwnVz5mjXVnr7baOTuNfy5fDcc9o5GJ06GZ3GeLrPaeTm5pKZmWlfvnTpkv15wdeFENZWHnoa\nc+fCrFlaT6NVK6PTWFuJRaN+/fpMllt56cZmsxEeHm50jFJJTn1ZIaeiQHKyDQg3OEnpnG1PVYUJ\nE+Crr7ST9vLv4e1uVvi9u6rU8zSEEGVbWe1pZGfDiBHwxx9awahTx+hEZUOJcxpnzpyhdu3abtlp\neno6UVFRnDx5kgYNGrBixQr8/PyKrPf4448TGxtLvXr12LdvX4nbkzkNIVz37rtw6BD8+99GJ9HP\nxYvw8MPa85gYKHDZPPE/rn5ulnjsrLsKBsDkyZPp0aMHe/fuJSIiosRhsMcee4y4uDi35RBClL2e\nxpkz0LUr1K0La9ZIwdCbISdcrF+/nujoaAAeffRRYmNji12vY8eO1KxZ05PR3MYqx21LTn1ZIaei\nQEqKzegYDimtPY8dg3vugfBw+PhjqFTJI7GKsMLv3VWGFI20tDR7T6ZOnTqcOnXKiBhCCMpOT2Pf\nPrj7bhg5Et58U87ydhe3TYR369aNEydOFHl9+vTpbtnf0KFD7fcx9/PzIyQkxH70Qn7VN3o5n1ny\nFLccHh5uqjzXW85nljxWbc9Dh2yFiobReVxpz717Yfr0cN55Bxo0sGGzGZ83n1naL/95wSt8uKLU\nCxa6Q9OmTYmPj6dOnTqkpaXRvn17/vzzz2LXTUpKolevXjIRLoSbzJ8Pe/ZoNyCyojVrtKOkvvgC\nunUzOo116D4R7k6RkZEsWbIEgCVLlhAZGWlEDI+69q8Ps5Kc+rJCTkWB48dtRsdwyLXtuXAhPP00\nxMWZq2BY4ffuKkOKxquvvkpsbCzBwcH85z//YerUqQCkpqbSo0cP+3oDBw6kQ4cOHDx4kEaNGvHx\nxx8bEVeIMs2KcxqqClOnwltvwXffwR13GJ2o/DBkeEpvMjwlhOsWLoSdO+HDD41O4pjcXHjmGdix\nA/7zH6hf3+hE1uS2e4QLIco2K/U0rlyBf/0Lzp2DrVvB19foROWP3BjDQ6wyxik59WWFnIoCqak2\no2OU6tw5uOsuGxUrwvr15i4YVvi9u0qKhhDlnBV6GqmpcO+90KQJLFsGVaoYnaj8kjkNIcq5jz6C\n77/XzqA2oz/+gAce0E7aGz9eTtrTi8xpCCFcYuaexo4d2h323nwThg41Oo0AGZ7yGKuMcUpOfVkh\np6LAX3/ZjI5RRGws9Oql9YTyC4YV2hOsk9MVUjSEKOfM2NP46CMYNgzWrYNycO6vpcichhDl3Gef\nwbffwuefG51EK16vvw6LFmlned9+u9GJyi6Z0xBCuMQsPY3cXHjuOe0ue9u3Q8OGRicSxZHhKQ+x\nyhin5NSXFXIqCpw4YTM0w5Ur8Mgj8Ntv2kl7JRUMK7QnWCenK6RoCFHOGd3TOHdOO6TWy0u7LEiN\nGsZlEaWTOQ0hyrkvvoBvvtFOmvO01FStYISHwzvvaIVDeIalLo0uhDAPo3oaf/wBHTrAoEEwd64U\nDKuQX5OHWGWMU3Lqywo5FQVOnrR5dJ8//qj1LqZMce4sbyu0J1gnpyukaAhRznm6p7F6NfTpo122\nRM7yth6Z0xCinIuJgZUrtYe7vfMOzJoFa9dCWJj79ydKJudpCCFc4omeRm4ujBkDGzdq52DcfLN7\n9yfcR4anPMQqY5ySU19WyKkocOqUzW3bv3QJ+veHfftuvGBYoT3BOjldIUVDiHLOnT2NU6egSxeo\nXl27LIifn3v2IzxH5jSEKOe+/FK77tRXX+m73YMHtYsNDhwIU6fKfTDMRuY0hBAucUdPY/t26NcP\npk/XrlYryg4ZnvIQq4xxSk59WSGnokBamk237a1cCQ8+CJ9+qn/BsEJ7gnVyukJ6GkKUc3r1NFRV\nO5x27lzYsAFCQm58m8J8ZE5DiHJu7Vr48EPt+lOuunoVnn4afv5Z206jRvrlE+4hcxpCCJfcaE8j\nPV2bv/Dx0e6FUb26ftmE+cichodYZYxTcurLCjkVBU6ftrn0vYcOwV13wR13aEdfubtgWKE9wTo5\nXSFFQ4hyztWehs0G99wDL76ozWVUqKB7NGFCMqchRDm3fj38+9/aDZAc9dFH8NJL2r04unZ1Xzbh\nPpa6n0Z6ejrdunUjODiY7t27c+7cuSLrJCcn06lTJ1q1asXtt9/OjBkzDEgqRNnnTE8jLw/+7//g\n9de127JKwSh/DCkakydPpkePHuzdu5eIiAgmT55cZJ3KlSvz/vvvs2/fPn755RcWLVrEnj17DEir\nD6uMcUpOfVkhp6LAmTO2Ute7eFGb8I6P1x7Nm7s/27Ws0J5gnZyuMKRorF+/nujoaAAeffRRYmNj\ni6zj7+9Py5YtAahevTrBwcGkpqZ6NKcQ5YEjPY1jx6BjR+3+3Rs2QO3anskmzMeQOQ1fX18yMjJK\nXL5WUlIS9957L/v378fHx6fI+zKnIYTrNmyAmTPh22+Lf3/bNnj4YRg9GsaOlWtIlRWmO0+jW7du\nnDhxosjr06dPd2o7Fy5cYMCAAcydO7fYgiGEuDHX62l8+CG8/LJ2SZAHHvBsLmFObisa35b0ZwtQ\nt25dTp8+TZ06dUhLS6NevXrFrpednU2/fv0YNGgQffv2ve7+hg4dSuPGjQHw8/MjJCSE8PBw4O/x\nRSOXd+/ezfPPP2+aPCUtFxyLNUOekpalPfVb3rvXxtGju4G/2zMnB9asCWfjRpg1y4a3N4Dxea3Q\nnmb995n/PCkpiRuiGuCZZ55R3377bVVVVXXOnDnqs88+W2SdvLw8NTo6Wn3++edL3Z5BP4ZTtmzZ\nYnQEh0hOfVkh58aNqhoSssW+nJamquHhqhoZqarnzhmXqzhWaE9VtUZOVz83DZnTSE9PJyoqipMn\nT1K/fn1iYmLw8/MjNTWVESNGEBsby7Zt2+jUqRPBwcEo/xtEfeONN3igmD6yzGkI4brNm+G112DL\nFti7F/r2hagomDZNTtgry1z93JST+4Qo57ZsgVdfhVGjYORIePdd7cZJomyz1Ml95VHBcUUzk5z6\nskJORYH4eBvPP6/dktXMBcMK7QnWyekKKRpClHP/+Ae0bQs7d2oXHhTiemR4SgghyiEZnhJCCOF2\nUjQ8xCpjnJJTX5JTX5LTeFI0hBBCOEzmNIQQohySOQ0hhBBuJ0XDQ6wyxik59SU59SU5jSdFQwgh\nhMNkTkMIIcohmdMQQgjhdlI0PMQqY5ySU1+SU1+S03hSNIQQQjhM5jSEEKIckjkNIYQQbidFw0Os\nMsYpOfUlOfUlOY0nRUMIIYTDZE5DCCHKIZnTEEII4XZSNDzEKmOcklNfklNfktN4UjSEEEI4TOY0\nhBCiHJI5DSGEEG4nRcNDrDLGKTn1JTn1JTmNJ0VDCCGEw2ROQwghyiGZ0xBCCOF2hhSN9PR0unXr\nRnBwMN27d+fcuXNF1rly5Qpt27YlNDSU2267jdGjRxuQVD9WGeOUnPqSnPqSnMYzpGhMnjyZHj16\nsHfvXiIiIpg8eXKRdby9vfnuu+9ISEjgt99+48cff2TLli0GpNXH7t27jY7gEMmpL8mpL8lpPEOK\nxvr164mOjgbg0UcfJTY2ttj1qlatCsDVq1fJzc3F39/fYxn1Vlxvyowkp74kp74kp/EMKRppaWnU\nrl0bgDp16nDq1Kli18vLyyMkJAR/f386d+5MixYtPBlTCCHENSq6a8PdunXjxIkTRV6fPn26w9vw\n8vJi9+7dnD9/nu7du2Oz2QgPD9cxpeckJSUZHcEhklNfklNfktMEVAPccsstalpamqqqqnrq1Cm1\nadOmpX7P1KlT1TfeeKPY95o2baoC8pCHPOQhDwcfjnzuFsdtPY3riYyMZMmSJTz//PMsWbKEyMjI\nIuucOXOGypUr4+Pjw+XLl/n2228ZN25csdv7888/3R1ZCCEEBp3cl56eTlRUFCdPnqR+/frExMTg\n5+dHamoqI0aMIDY2lr179zJkyBBUVeXKlSsMGjSISZMmeTqqEEKIAsrEGeFCCCE8wzJnhMfFxdGq\nVStatGjBW2+9Vew6o0aNIigoiLCwMBISEjycUFNaTpvNRo0aNQgNDSU0NJRp06Z5POPjjz+Ov78/\nrVq1KnEdM7RlaTnN0JYAycnJdOrUiVatWnH77bczY8aMYtczuk0dyWl0mzp6Uq/RbelITqPbsqDc\n3FxCQ0Pp1atXse871Z4uzYR42JUrV9TGjRurKSkpanZ2ttqmTRt1165dhdZZtWqV2qdPH1VVVXXX\nrl1q69atTZlzy5Ytaq9evTyeraDvvvtO3bVrl9qyZcti3zdDW6pq6TnN0JaqqqonTpxQ9+3bp6qq\nqmZmZqq33nqrunv37kLrmKFNHclphja9dOmSqqqqmp2drd55553q5s2bC71vhrZU1dJzmqEt882e\nPVsdNGhQsXmcbU9L9DTi4+MJCgoiICCAihUrEhUVVeSEwIInDIaGhpKTk0NKSorpcgKGX1yxY8eO\n1KxZs8T3zdCWUHpOML4tAfz9/WnZsiUA1atXJzg4mNTU1ELrmKFNHckJxrdpaSf1mqEtHckJxrcl\nQEpKCuvXr2f48OHF5nG2PS1RNFJSUmjUqJF9OTAwsMgP5cg67uZIBkVR+PHHH2nVqhVdu3Zlz549\nHs3oCDO0pSPM2JZJSUns3LmTe+65p9DrZmvTknKaoU1LO6nXLG1ZWk4ztCXA6NGjmTlzJl5exX/c\nO9uehhxy6yxFURxa79oq6uj36cWR/d1xxx2kpKTg7e3Nhg0b6Nu3L4mJiR5I5xyj29IRZmvLCxcu\nMGDAAObOnYuPj0+R983SptfLaYY2deSkXjO0ZWk5zdCW69ato169eoSGhl73IorOtKclehqBgYEk\nJyfbl5OTkwtVxuLWSUlJITAw0GMZi8tQXM7q1avj7e0NwP3330/lypWLPXPeSGZoS0eYqS2zs7Pp\n168fgwYNom/fvkXeN0ublpbTTG1ao0YNevTowY4dOwq9bpa2zFdSTjO05Q8//MDatWtp0qQJAwcO\nZPPmzQwePLjQOs62pyWKRtu2bdm/fz/Hjx8nOzubmJgYIiIiCq0TGRnJ0qVLAdi1axcVKlQgICDA\ndDlPnz5tf/7LL79w8eJF6tWr59GcpTFDWzrCLG2pqirDhg2jRYsWJR7tY4Y2dSSn0W165swZMjMz\nAewn9V579JwZ2tKRnEa3JcDrr79OcnIyiYmJLF++nC5duvDZZ58VWsfZ9rTE8JS3tzfz58+ne/fu\n5OXlER0dTVhYGAsWLABg5MiR9OvXjy1bthAUFESVKlX4+OOPTZlz2bJlLFy4EIDKlSvzxRdflDjW\n6C4DBw5k69atnD59mkaNGvHqq6+SnZ1tz2iGtnQkpxnaEmD79u0sWbKE4OBgQkNDAe0/67Fjx+xZ\nzdCmjuQ0uk1TU1MZPHhwoZN6e/ToYbr/647kNLoti5M/7HQj7Skn9wkhhHCYJYanhBBCmIMUDSGE\nEA6ToiGEEMJhUjSEEEI4TIqGEEIIh0nREEII4TApGkIIIRwmRUOUC+fPn2f+/Pn25dTUVAYMGKD7\nfqZMmUJgYCBTpkzRfdul6dy5Mz4+Pvzyyy8e37coP6RoiHLh7NmzvP/++/blhg0bsnLlSt33oygK\nY8aMMaRobNmyhTZt2pjy4pKi7JCiIcqF8ePHc/jwYUJDQxk3bhxHjx61Xyvok08+oW/fvkRERNCk\nSRPee+89Zs2aRZs2bQgLC7NfQ+jAgQN07tyZ1q1bc+edd/Lrr78Wu6+CF1mYMmUKQ4YMoXPnzjRu\n3Jgvv/ySsWPHEhwcTNeuXcnKygLgxRdfJCgoiJCQEMaMGQPAiRMn6NmzJ61btyYkJIStW7cCkJmZ\nySOPPEJQUBCtW7dm1apVbms3IYrQ465QQphdUlJSoTsAJiYm2pc//vhjtVmzZurly5fVtLQ01dfX\nV120aJGqqqo6evRodebMmaqqqmqHDh3UQ4cOqaqqqjt27FDvvvvuIvuZMmWKOmvWLPvy5MmT1U6d\nOql5eXnqnj171KpVq6obNmxQVVVVH3zwQXXlypXqyZMn1aCgIPv3XLhwwf7+tm3bVFVV1aNHj6pN\nmzZVVVVVR40apY4dO9a+/vnz5+3Pw8PD1V9++cXVZhKiVJa4YKEQN0ot5RJrnTt3xtvbG29vb/z8\n/IiMjASgVatW7N69mzNnzrBr165C8yCXL18udb+KovDAAw+gKAotW7YkLy+Pbt262bednJxM7dq1\nqVSpEsOGDSMyMtJ+H+eNGzcWuv9CVlYWGRkZbNq0ia+//tr+uq+vr+MNIcQNkqIhBFClShX7cy8v\nL/uyl5cXeXl5qKpK3bp1SUhIcHrblStXtm+rUqVKhfaTl5dHhQoViI+PZ9OmTaxevZp58+axefNm\nFEVh586dVKxY9L9paUVQCHeROQ1RLlStWpVLly45/X35H8516tShbt26rFu3zv56SXMazrp48SKZ\nmZlEREQwe/Zsdu3aBcB9993HBx98YF8vf3/dunWzX9oaICMjQ5ccQjhCioYoF/z9/QkJCaFFixaM\nGzcORVHsRxkVfJ6/XPB5/vKKFSuYPXs2wcHBtGzZ0uEJ6JK2nb+ckZHBAw88QGhoKB07duTtt98G\n4IMPPrDf3Kdly5bMnTsXgNdee41jx47RokULQkJC2LRpkwstIoRr5H4aQujo1VdfpXr16rzwwguG\n7L9z587Mnj2bsLAwQ/Yvyj7paQiho+rVq7Nw4ULDTu5LTEwsNG8ihN6kpyGEEMJh0tMQQgjhMCka\nQgghHCZFQwghhMOkaAghhHCYFA0hhBAO+3+uUuMJ2ejlWAAAAABJRU5ErkJggg==\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEXCAYAAABRWhj0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcFPX/B/DXIiAKGKCICOiieODFigqZX3NREfEguzy+\nqWB4ZZaapliaVlpommmaV2ao5ZGm4kUqsmoe4IWa4oWs3IQCBigCu/P7Y9pvG79d2V1md2bg/Xw8\n5uHO7jDz4oPy8fN5zyFhGAaEEEKIIaz4DkAIIUQ8qNMghBBiMOo0CCGEGIw6DUIIIQajToMQQojB\nqNMghBBiMOo0iGDNnTv3y5UrV04DAIVCIffy8srQt+2sWbOWrVu3brLl0onL2rVr33Fzc8tr1KjR\nXwUFBS6Ojo7FSqVSCgARERE/zp8//3OeIxKRsOY7ACG65Ofnu27dunVMampqa0O2nzVr1rKAgICk\nyMjITTY2NhVVP1cqldJWrVrdr6ystLayslJzn1i4KioqbGbOnLk8KSkpoFOnTn8AQHFxsaPmc4lE\nwkgkErpgixiERhpEkH788ceIwYMHH6pfv/4zQ7Zv1qxZbvv27W/FxsaGPW87hmEkpuSprKwU7H+w\nqsuWm5vbrKyszM7X1zdF3zamtgupe6jTIIIUFxc3sE+fPiervv/ll1/OdXV1zff29k77+eef/6v9\nmVwuVxw6dGiwrv29/PLLpwDAycmpyNHRsTgxMTGQYRjJokWL5kmlUqWbm1teeHh4zF9//dUIYEcm\nVlZW6h9++OHtli1bPujfv/9xtVptNWvWrGWurq75rVu3Tl2zZs27VlZWarVabQUAUqlUGR8f309z\nzIULFy4cM2bMVs36+fPnX3zppZfOOjs7F8pksuSTJ0/20ff9S6VSZXR0dFTHjh1vuLi4FLz99ts/\nPHv2rD7ATtV5enpmLl26dLa7u3tOZGTkpvLyctvp06d/4+HhkeXh4ZE1Y8aMFeXl5bZ37txpq+ks\nnJycivr3738cAKysrNT3799vpevYBw8eHCKTyZKdnZ0Le/Xqdeb69eud9eUkdRDDMLTQIrjF1dX1\nz4sXL3bTrCckJMitra0rZs6cuay8vNzm5MmTL9vb25fcvn27rWabPXv2vObv739J1/6USmVLiUSi\nVqlUVpr3Nm3a9LaPj8/dtLQ0aUlJif1rr722Z8yYMVsYhkFaWppUIpGow8PDf3zy5EmDp0+f2q1d\nu3Zy+/btUzIzMz0KCgqc5XJ5gpWVlUqzT6lUmhYfH99Xs/+FCxcuGD169FaGYZCZmenRuHHjh0eO\nHBnIMAyOHTvWv3Hjxg/z8/Ob6MrbsmVLZefOna9pjtWrV6/f582b97l2W0RFRX1ZXl5u8/TpU7v5\n8+d/1rNnz7P5+flN8vPzm7z00ktn5s+f/5m+710ikahTU1NbMQyDiIiIzZp9X758uWvTpk3zkpKS\neqjVaklMTMxYqVSa9uzZM1u+/07QIoyF9wC00KJrsbGxKdfuEDS/KJ88edJA897w4cN3fv755/M0\n60ePHg1u1apVqq79aToB7V+cffv2jV+7du1kzfrt27fb2tjYlKtUKivN9mlpaVLN50FBQSfWr18/\nUft42vus2mksWLBgoabTiI6OnqPpkDRLSEhIXExMzFhdeaVSaZr2sQ4fPhzaunXre5q2sLW1fab9\ni7x169b3NB0SwzD47bffBkil0jR933vVTkPTwUyePHmt5rVmadeu3a2TJ0++zPffCVqEsdD0FBEk\nZ2fnQu1irea9Bg0aPNWst2zZ8kF2dnZzzXpxcbGjk5NTkaHHyMnJcW/ZsuUDzXqLFi3SKysrrfPy\n8tw072mfsZWTk+Ouvd6iRYt0Q4/14MGDlr/88subzs7OhZrlzJkzvXJzc5vp+5qqx9L+Xl1dXfNt\nbW3LNevZ2dnNq34v2tsbk3P58uUztXNmZmZ65uTkuBu7L1I7UadBBKlLly7Xbt++3U77vcLCQucn\nT5401Kw/ePCgpYeHR5ZmPSUlxVcmkyXr2p+us4OaN2+erTntFADS09NbWFtbV7q5ueXp+jp3d/ec\n9PT0Ftrba+/P3t6+tLS01F6znpub20zz9S1atEgfM2bM1sLCQmfNUlxc7Dh79uyl+tqg6rGaN2+e\nre/70fW9aG9vqBYtWqR//PHHi7VzlpSUOIwYMWKnsfsitRN1GkSQBg0adFhXoXjBggWfVlRU2Jw+\nfbr3oUOHBr/55pu/aD47efJkn9DQ0CO69ufq6ppvZWWl1j6Fd9SoUdtXrFgxQ6lUSktKShw++uij\nL0aOHLlD3ym5w4cP37Vq1ar3s7KyPAoLC52jo6OjtH95y2Sy5B07doysrKy0vnjxYvc9e/a8rvls\n9OjR2w4cODD06NGjA1QqVb2ysjI7hUIhz8rK8tB1LIZhJN99992UrKwsj4KCApfFixd/PHLkyB36\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x3a36f90>"
+ "<matplotlib.figure.Figure at 0x3a66fd0>"
]
}
],
- "prompt_number": 3
+ "prompt_number": 15
},
{
"cell_type": "heading",
@@ -327,6 +304,10 @@
"input": [
"from __future__ import division\n",
"%matplotlib inline\n",
+<<<<<<< HEAD
+ "from matplotlib.pyplot import *\n",
+=======
+>>>>>>> 0ee873700378b995b441b1be6652178f741aea5b
"\n",
"#Variavle declaration:\n",
"rpm=2500 #rpm of motor\n",
@@ -387,38 +368,22 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "part (b): Ratio ="
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " 1.55\n",
+ "part (b): Ratio = 1.55\n",
"part (c): AreaWnet = 9.91 Joules\n",
"Pphase = 825.0 W \tPtot = 1651.0 W\n",
"\n"
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['power', 'random', 'fft', 'linalg', 'info']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\nAAAAAElFTkSuQmCC\n",
+ "png": "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\nPKuqqspVrVZzt27d+p6Xl9fDhoaGLrr6QCc8TU1NdkOGDMl77733ttbX1zs+ffq064ULFyIwDIN1\n69at1Sc8/v7+soKCgiC1Ws2tqanpwePxam/duhWI7zN8+PBL+/fvn4ZhGCxbtmxbXFzcEblczq+r\nq3OOjY09tmbNms8xDIP3339/wz//+c/tTU1Ndk1NTXZ//vnnGKpzQtf3UaNGXUxOTp6FYRg8efLE\nKSsra6SuY0il0sjevXuXEv+3du3add26dVOmpaW91tzczFmzZs3no0aNuohhGKjVau7QoUOvrF+/\n/kOVSmV/586dPn379i0+derUK/h3hT9Q8NeJEydi7ty50wfDMDh37twLTk5OT65evfoc3X2FXxfr\n16//sKmpyW7nzp0L3d3dH8XHx+9VKBTdb9y4Eezo6FhP9WDt16/f7TNnzozD1//xj38c3LRp0yqm\n1+8rr7xySi6X858+fdqVfA8a6/yR7znydVReXt6Tz+fLk5OTZ6nVau6+fftmuLq6VlVVVbka8hwh\nvr788st3o6OjfyP+LzY29tjWrVvf07U98bmDYZofuf369bu9YcOG91Uqlf3vv//+Io/Hqy0sLBxA\n3re2tpbH4XCaKyoqBPj/Fi5cuPO55567akhb6J4JCoWie+/evUuTkpLmqtVq7rVr18I8PDwqCwoK\ngvB9Z86cKVEqld0KCgqCfH197xGfJ+Rzf/Xq1ec8PT3/zsnJCW9ububs2rUrISAg4G5jY6ODvnuB\n6T1IfDEWHn9/f5mzs3Mdn8+X8/l8+euvv36YvM21a9fCXF1dq/D1qKiojM8//3wNvr58+fItMTEx\nJ/D11NTUifivRfJFP2/evJ8//PDD9RimUVtnZ+e6uro6ZwzDYOrUqb988cUXK3S1c/78+T+uXr16\nI76uUCi6Ozg4NJaUlPjpugn03STE17Zt25YR+83hcJqJv8yGDRt2efPmzSuJ/V22bNk24gOmvr7e\nEX9/2rRp+/EHjoODQyPxYv73v//9GfEXCvnl6upaRfxFQnzRCU9mZuZogUBQoes9fRZPVFRUxtq1\na9cR95k9e/aeTz/99CMMw6CoqKg/j8erVSqV3Zqbmzndu3dX4OcT/+w+ffrcwTAMPv7440/i4uKO\n3L59ux/Ta1BX31944YVza9euXUf8lanrhVuc5P6OHz/+NL6OP+QxTGNN+Pn5lRC3//zzz9fgDzjy\n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\naWlp0XhfTU18fLzkq6++Wnb+/PmxIpHoIP5/Q65fHGOdPyqI331MTMxvRUVFA/bt2zezqanJfv/+\n/dNv3rw5cOLEicd1bd+e50hUVJTUzs5O/c0337zd0NDQ9Ztvvnmby+U2v/TSS7/r2r5nz55/37lz\npy++PmrUqCwnJ6f6zZs3r1KpVA5SqTTq+PHjE2fMmJGia/+bN28OrKur4zU2NnZJTk6efebMmfHv\nvffelwAAL774YgbTttjZ2anpngkTJkw4UVRUNCA5OXm2SqVyUKlUDpcuXQq/efPmQPK+N2/eHLhn\nz545dIK9aNGinf/5z3/+mZOTMwLDMM6TJ0+6nzhxYoJCoXDWdy8wvQeJdEh4li1b9pVSqXT08PB4\nFBERkRkdHZ1G7hxxXdcYGfL7VNt269bt6ZQpUw7LZLKAKVOmHKZq08svv3x2/fr1H02dOvWQt7f3\ng7t37/ZJSUmZYUj/tmzZskIikcT36NGjViwWJ86YMSOFqr1M+tCrV6+Hrq6ucm9v7wdz5szZs2PH\njsUDBgwoAgD47rvvlioUCmcvL6/y+fPn/zR//vyf8P1ee+21k6+99trJAQMGFAUEBMgcHR2V+oSU\n6iLjcrnNqampsbdv3w708/O75+vrW3rgwIFpABrrZfr06fuHDBlyPTw8/FJsbGwq3fnCiY+Pl5w9\ne/ZlXETx/2/atGl1YGDg7VGjRmW5uLjUjB8//kxRUdEAAIBbt271Hz9+/Bkej1cXERGR+a9//ev7\nyMjIc+Rj6+v7qVOnXh00aFA+j8ere/fdd7elpKTM6Nq1awP5OAMHDrw5c+bMfX379r3j5uZW9fDh\nw15016OdnZ36+PHjE3Nzc8P69u17RyAQVIrF4kRcuPAHvLu7++Phw4df5vF4dd98883b06ZNO+Dm\n5la1b9++mXFxcUfpzhHVd9pez8DMmTP3/fHHHy+8/PLLZ93c3Krw/3f0+jXG+WPSZzc3t6rjx49P\n3Lp163IPD49HW7ZsWXH8+PGJxL605zlCxMHBQXXkyJHJu3fvTnB1dZXv3r074ciRI5Pt7e2bdG2/\nYMGCHwsKCoJdXV3lU6ZMOezg4KBKTU2NTUtLixYIBJVLly79bs+ePXPw+5bMqVOnXu3Xr1+xm5tb\nVWJiovjUqVOvuru7PzakLXTPBB6PV3f69OlXUlJSZvj4+JT16tXr4Zo1azY0NjZ2wfetqalx8fLy\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x3a59f50>"
+ "<matplotlib.figure.Figure at 0x315dc10>"
]
}
],
- "prompt_number": 4
+ "prompt_number": 16
}
],
"metadata": {}
diff --git a/ELECTRIC_MACHINERY/chapter9.ipynb b/ELECTRIC_MACHINERY/chapter9.ipynb
index 80c49fca..3cdb1b6c 100755
--- a/ELECTRIC_MACHINERY/chapter9.ipynb
+++ b/ELECTRIC_MACHINERY/chapter9.ipynb
@@ -1,6 +1,7 @@
{
"metadata": {
- "name": ""
+ "name": "",
+ "signature": "sha256:934a14335227a49c83c2d399431a59d2d79025dde47942572f3e87ac684c8499"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -236,6 +237,7 @@
"%matplotlib inline\n",
"import cmath\n",
"from math import *\n",
+ "from matplotlib.pyplot import *\n",
"\n",
"#Variable declaration:\n",
"Lmain=0.0806 #main winding inductance(H)\n",
@@ -343,15 +345,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Populating the interactive namespace from numpy and matplotlib\n",
- "part (a):"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
+ "part (a):\n",
"\n",
"Imain= 15.9 A at an angle -37.6 degrees\n",
"\n",
@@ -379,23 +373,15 @@
]
},
{
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['Polygon', 'poly', 'sign', 'ldexp', 'hypot', 'flatten', 'conjugate', 'diff', 'tan', 'Circle', 'roots', 'plot', 'isnan', 'eye', 'trace', 'fabs', 'floor', 'diag', 'invert', 'nan', 'modf', 'sqrt', 'frexp', 'source', 'add', 'degrees', 'take', 'var', 'zeros', 'pi', 'log10', 'plotting', 'product', 'seterr', 'power', 'multinomial', 'copysign', 'transpose', 'expm1', 'ceil', 'test', 'beta', 'ones', 'isinf', 'sinh', 'vectorize', 'cosh', 'mod', 'cos', 'prod', 'e', 'f', 'tanh', 'det', 'radians', 'sin', 'binomial', 'solve', 'log', 'fmod', 'reshape', 'exp', 'trunc', 'log1p', 'gamma', 'interactive']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEZCAYAAAB8culNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtYlGX+P/D3ABIqZ5QRRcWQRI6SWH09Nba6yphZKSmK\na2qx62YHzdr8WYLuplm7lXnIzNO1i6ZkbbumspmG5pYoqHnIpRVFwUTBQ6Kc4fP7g4tZxoezc3iG\neb+ui0vmnmee+cyNzIf7/tz3MxoRERAREdXhYO0AiIhIfZgciIhIgcmBiIgUmByIiEiByYGIiBSY\nHIiISIHJoY3YuHEjhgwZYu0wbJper8ff/vY3a4dBzcD/7+bH5GBDAgIC0KFDB7i5uRm+XnjhBZOd\nPycnBw4ODqiurjbZOdUqKSkJU6ZMMWrbuXOnoq05HBwccPbsWVOFRqQKTtYOgJpPo9Hgyy+/xCOP\nPGLW52lsX2RVVRUcHR3N+vy2qLV7SSsrK+HkxF9DUh+OHNqoY8eOYciQIXB3d0fPnj3x17/+1XDf\n7du38bvf/Q6+vr5wd3fHoEGDUFpaiqFDhwIAPD094e7ujoMHD2Ljxo0YNGgQ5syZA19fXyxatAjX\nr1/H+PHj4eHhAa1Wi/nz5xveHOse7+3tjd69e+O7777Dhg0bEBAQAC8vL3z88ceGWLZv346IiAi4\nu7tDq9XitddeM3odH330Ebp06QKtVos//elPCAgIwN69ewHU/PX/1FNPYerUqfDw8EDv3r3x/fff\nGx6bk5MDvV4PT09P+Pn5YenSpQCA1NRULFmyBFu3boWbmxuioqIAADqdDuvWrTM8/r333kOvXr3g\n5uaG4OBgHDlyRNHPtX0WGRkJNzc3fPrppwCA999/H/7+/nB3d8evf/1rnD9/3vAYBwcHrFq1Cn36\n9EFwcDAAYOHChfD29kaPHj2wfv16o9HInXHdOaXS2M+6rq1bt2LAgAFGbe+99x7Gjh0LAPjiiy8Q\nFBQEV1dXdO3aFW+//Xa95zl9+jQGDhwIV1dX+Pj4IDY21ui1LV++HEFBQXB3d8esWbOMRqLLly9H\nQEAA3N3d8fDDDyM7O7tZr+Py5csYPnw43Nzc8NBDDxk9jsxEyGYEBATI119/Xe99GzZskMGDB4uI\nyPXr18XX11eSk5NFROTUqVPi4+MjmZmZIiIydepUGTVqlBQWFoqIyOHDh6WsrExycnJEo9FIVVWV\n0XmdnJxk7dq1IiJSWloq48aNkwkTJkhJSYn8/PPPEhISIsuXLzc6vva5FyxYIN26dZOXXnpJKisr\nZc+ePdK+fXspKioSEZH9+/dLVlaWiIicPn1aunbtKp988omIiGRmZoq7u7tkZGRIVVWVzJ8/X9q1\nayd79uwREZHExERxcXEx9Mm8efPk/vvvFxGRyspKCQ4OliVLlkhVVZXk5ubKvffeK3//+99FRCQp\nKUmmTJli1Ic6nU7WrVtneB09e/aUkydPiojI+fPn5cKFC/X2vUajkezsbMPt7du3i6+vr5w+fVoq\nKytl7ty50r9/f6Pjx4wZI0VFRVJWViaff/65dO3aVbKzs6WsrEymTp1qdM66cbX0Z11XcXGxuLm5\nyX//+19DW3R0tGzdulVERLy9veXAgQMiIlJUVCQ//PBDva/3ySeflMWLF4uISEVFhaSnpxu9tlGj\nRklRUZHk5+dLSEiIfPDBByIismnTJgkKCpKzZ8+KiMiSJUukX79+zXodjz32mEyZMkXKy8vlv//9\nr3Tv3l2GDBlSb3xkGkwONqRnz57i6uoqnp6ehq/aN+26bxgbN25U/OIkJCTIvHnzpKSkRJydneU/\n//mP4vznzp2rNzkEBgYabhcXF0u7du3kzJkzhrb169fLQw89ZDg+KCjIcN/JkydFo9HIlStXDG2d\nO3eWjIyMel/jyy+/LDNnzhSRmjf7qVOnGu4rKyuT9u3bGyWHESNGGO4/deqUODk5iYhIWlqa9OjR\nw+jcixcvlri4OMNj4+Pjje6v+yY8ZMgQWb16db0x3unO5DBp0iR5/fXXDbdLSkrExcXFkAQ1Go3h\nTVhEJC4uThYsWGC4XZukm5McGvtZ1yc+Pl4WLVokIiI//fSTuLm5SUlJiYiI9OjRQ9asWSM3b95s\n9PX+5je/kd/+9rdy8eLFevti7969httr166VQYMG1fs6qqqqpEOHDpKVldXo6yguLhYnJydDUhGp\nSe61fUDmwWklG6LRaPCPf/wD169fN3zNmDFDcVxeXh7S09Ph5eVl+Nq8eTOuX7+Oa9euoaKiAvfe\ne2+zn9fPz8/w/dWrV1FZWYkePXoY2rp3747Lly8bbmu1WsP399xzDwCgc+fORm1lZWUAgG+//RaD\nBg2Ct7c3vLy8sHLlSty+fRsAUFBQgK5duxoe5+zsjE6dOhnFVve5OnTogKqqKlRXVyMvLw8///yz\nUR8sWbIEN27caNZrzs/Pb1Ef1XXlyhWj/nFxcUGnTp2M+qhunxYUFMDf399wu1u3bs1+rsZ+1vWZ\nNGkSPvnkEwDA5s2b8cQTT8DFxQUAkJKSgn/+85/o2bMnBg8ejG+//bbec7z11lsoLy/HgAED0Ldv\nX6xZs8bo/jtfS+3rzsvLw4svvmiI08fHx/D6m/o/W1VV1eo+otZhJawN8vPzw/Dhw7Fjxw7FfaWl\npXB2dsbZs2fRp08fo/s0Gk2T5/bx8YGjoyPOnz+P3r17AwByc3PRpUuXVsUaFxeH+fPn49lnn4WT\nkxNeeeUVw5uJr68vLl68aDi2rKwMhYWFzTpvly5dcN999+HUqVP13t/Ua+3atWurVyBptVqjGkNp\naSkKCwuNElldvr6+yMvLM9yu+z1QkxRrEyZQk6BrNfazrs/w4cNRUFCAH374AVu2bMH7779vuO/B\nBx/E9u3bUV1djeXLl+Opp57CpUuXFOfw8/PD+vXrAQDff/89hg0bBp1Oh/vuu88Qf1BQkOH72v8b\nfn5+WLJkCcaPH684Z1ZWVoOvo6SkBI6OjsjLy0OvXr3q7SMyPY4cbIw0Y1XM448/jmPHjmHbtm2G\nv6SPHj2KrKwsuLi4IC4uDnPmzMHVq1chIjh8+DDKy8vh6ekJjUaDc+fONXju9u3b47HHHsMbb7yB\n0tJSXLp0Ce+++y7i4uJa9XqKi4vRsWNHODk54ejRo9i0aZPhvieffBJ///vfceTIEVRVVeHNN99E\nZWVls8778MMPo7q6GitWrEB5eTlEBFlZWYaiso+PD3Jzcxvsz2nTpmHp0qX48ccfAdQUt3Nzc+s9\n1tvb26jPJkyYgLVr1+I///kPKisrsWDBAoSGhhrePO80fvx4rFu3DmfPnkVZWRkWLVpkdH9kZCQ+\n//xzlJSU4Pz580YF/cZ+1vVp164dYmNjMXfuXFy/fh0jRowAAFRUVCAlJQW3b9+Gg4MDXF1d4eBQ\n/9vDF198gfz8fACAu7s7HBwcjJLtn//8Z9y6dQuXL1/GsmXL8NRTTwEAEhISsHjxYpw5cwYAcOvW\nLXzxxRcAgCeeeKLB19G+fXvo9XosXLgQ5eXlyM7OxoYNG5r1xwy1HpODjRkzZozRPodx48YBqPlL\nuPaXxdvbG6mpqVi9ejW8vb3h4+OD2bNno7S0FACwcuVK+Pv7o0+fPvD09MScOXMgIvDw8MCcOXMQ\nHR0Nb29vpKenG5231po1a1BeXg6tVovIyEg8+uijeP755xVx1Grsl3jFihWYN28ePDw8sGDBAqO/\nKvv374+lS5ciJiYGXbt2hbOzM/z8/AxLaRt7LicnJ/zrX//Cnj17oNVq4enpid/85jeG6ZbY2FiU\nlJTAw8MD0dHRirimTp2KWbNmISYmBm5ubtDr9UZ/sdf1+uuvY8KECfDy8sK2bdswZswYvPrqq/jV\nr34FLy8vHD16FJ999lmD/fHEE09gxowZ6N+/P4KCghSbu1555RVUVVWhU6dOiI+PR1xcXLN/1vWZ\nNGkS9uzZg9jYWKMEsHbtWvj7+6Njx45YsWKFUaKu68CBA4iKikLHjh2h1+vx9ttvG0YKABATE4N+\n/fohKCgIQ4cOxaxZswAA8fHxSEhIQExMDNzd3dGnTx9DcvDy8mr0dXz00UfIzc2Fj48PJk+ejKlT\npzb4+sg0NNKcP0VbITc3F5MnT8b169dRXl6OGTNm4NVXX8W1a9cwYcIEXL58GX5+fti6dSs8PT3N\nEQK1MSUlJfDy8sIPP/ygmBJraxwcHHDmzJlW1z2sxVbjJiWzjRycnZ2xatUqnDhxApmZmVi7di1+\n+OEHJCYmYvTo0Th+/DhiYmKQmJhorhCoDUhNTUVpaSnKysowb948BAQEtPnEQKQGZksOWq0WYWFh\nAABXV1dERETg4sWLRpcoiI+Pb3YhjexTSkoKunTpAm9vb2RmZmLbtm3WDskibHU+3VbjJiWzTSvV\nlZOTg4cffhgnTpyAv78/bt68abjP3d3d6DYREVmf2QvSt27dwvjx47Fs2TK4u7ub++mIiMgEzLrP\noaKiAuPGjcPkyZPx+OOPA6jZDFVYWIhOnTqhoKAAvr6+isf17t2b104hImqhwMBAw1Lhu2W2kYOI\nYMaMGQgJCcHs2bMN7Xq9HsnJyQCA5ORk6PV6xWOzs7MhNZf2UPVXYmKi1WNgnIyTcTLG2i9T/lFt\ntpHDv//9byQnJyMiIsJw1cslS5Zg4cKFmDBhAtavX48uXbogJSXFXCEQEVErmS05DB48uMEPjdm9\ne7e5npaIiEyAO6Tvgk6ns3YIzcI4TYtxmpYtxGkLMZqaRZaytpRGo4EKwyIiUjVTvndy5EBERApM\nDkREpMDkQERECkwORESkwORAREQKTA5ERKTA5EBERApMDkREpMDkQERECma9ZDcRkSUlbE/AT1d/\nQod2HbB53GZ4uvDz6VuLyYGIbE5DSeCnqz9h3/l9hmNSYnnV59bitBIR2ZzaJLDrzC4kbE8wtHdo\n1wEAEN01GmvGrLFWeG0CkwMR2ZyGksDmcZsRGxKL3VN2c0rpLvGqrERkc26U3kDC9gSsGbOGSaAO\nU753MjkQkWqxwNwyvGQ3EdmFhmoLZH5MDkSkWiwwWw+nlYhItUxVW7CX6SnWHIiIWkC3UWfY/xAb\nEttm9z+w5kBE1AKcnmo5jhyIqM2zl6WvnFYiIiIFU7538tpKRGRV9lIstjWsORCRVXEvgzoxORCR\nVbFYrE6sORCRVdlLsdgSWJAmIiIF7nMgIiKzYnIgIiIFJgciIlLgPgcisgjuZ7AtHDkQkUVwP4Nt\nYXIgIovgfgbbwqWsRGQR3M9gftznQERECtznQEREZsXVSkRkt7iCqmEcORCR3eIKqoYxORCR3eIK\nqoaxIE1EdqutraDiaiUiUi3O41sPVysRkWpxHr9tYHIgIpPiPH7bwGklIjKptjaPb0tYcyAiIgWb\nqTlMnz4dWq0W4eHhhrakpCT4+/sjKioKUVFRSE1NNWcIRETUCmZNDtOmTVO8+Ws0GsyZMwdHjx7F\n0aNHMWrUKHOGQERErWDW5DBkyBB4eXkp2jllRESkblZZrbRy5Ur07dsX8fHxuHbtmjVCICKiRlj8\nwnvPPfccFixYAKCm/vDCCy8gOTlZcVxSUpLhe51OB51OZ6EIiag5uNnN+tLS0pCWlmaWc5t9tVJO\nTg7GjBmDEydOKO77+eefMWzYMGRlZRkHxdVKRKqn26jDvvP7AACxIbFIiU2xckRkM6uV6nPlyhXD\n95999hlCQ0MtHQIRmQA3u7VtZh05xMXFYd++fSgsLIRWq8XChQvxzTff4Pjx4ygvL0fPnj2xbt06\ndOvWzTgojhyIVI+b3dSHm+CIiEjBpqeViIhI/ZgciIhIgcmBiIgUmByIiEjB4pvgiMi2cLObfeLI\ngYgaxU92s09MDkTUKG52s0/c50BEjeJmN9vBTXBERKTATXBERGRWTA5ERKTA5EBERApMDkREpMBN\ncEQEgJvdyBhHDkQEgJvdyBiTAxEB4GY3MsZ9DkQEgJvd2gJugiMiIgVugiMiIrPiaiUiojtw5RZH\nDkRECly5xZEDkd3hX8VN48qtJgrSV65cwaeffor9+/cjJycHGo0GPXv2xNChQxEbGwtfX1/zBMWC\nNJHZ6DbqsO/8PgBAbEgsUmJTrByR+tjqyi2LrFaaMWMGsrOzERMTgwceeAB+fn4QEVy6dAmHDh1C\namoqevfujbVr15okEKOgmByIzEa/SY9dZ3Yhums0dk/ZbVNvftQ4iySH48ePIyIiotEHN+eYVgXF\n5EBkNrb6VzE1jfsciIhIwaL7HD7//HOEhYXBw8MDbm5ucHNzg7u7u0menIiI1KnJkUOPHj3w5Zdf\nIiwsDA4Olln5ypEDEVHLmfK9s8mlrL1790Z4eDg0Go1JnpCIiNSvyZFDeno6FixYAJ1OB2dn55oH\naTSYM2eO+YLiyIHornE/g/2x6Mjh9ddfh5ubG0pLS1FeXm6SJyUi86vd5QvUJAruZ6CWaDI5XL58\nGbt377ZELERkQtzlS3ejyQpzTEwMkwORDdo8bjNiQ2K50Y1apcmag6urK4qLi+Hs7Ix27drVPEij\nwc2bN80XFGsOREQtxk1wRESkYJGC9IULFxp9YI8ePUwSABERqU+DI4ewsLB69zYUFBSgoKAAVVVV\n5guKIweiZuOSVaplkZHDyZMnjW7n5OTgrbfewtdff4358+eb5MmJ6O5xySqZQ5OrlX766Sc8/fTT\nGDVqFPr374/Tp0/j+eeft0RsRNQMXLJK5tDgtNKJEyfw5ptv4tSpU3j11VcxadIkODo6WiYoTisR\nNRsvwU21LLJaydHREf7+/nj00UcVF9zTaDT44IMPTBJAvUExORARtZhFag7r1q0zPFldIsKL8BER\ntXHc50BE1EZY5MN+pk+fjsOHDzf4wPT0dEybNs0kQRBR0xK2J0C3UQf9Jj1ulN6wdjjUxjU4rTR7\n9my88847OHjwIPr06QM/Pz+ICPLz85GVlYWBAwdi7ty5loyVyK5xySpZUpPTSmVlZTh69CjOnz8P\njUaDnj17IjIyEi4uLuYLitNKRAr6TXrsOrML0V2jeTE9qhevrURkh7hklZpikZqDKUyfPh1arRbh\n4eGGtmvXrmHEiBGIiIjAyJEjceMG506JmsPTxRMpsSlMDGQRZk0O06ZNQ2pqqlFbYmIiRo8ejePH\njyMmJgaJiYnmDIGIiFrB7NNKOTk5GDNmDE6cOAEACAwMxKFDh+Dj44PCwkI89NBDOHPmjHFQnFYi\nO8YL6VFrWfQzpE+ePIk///nPyM3NRXV1tSGAvXv3tuoJCwoK4OPjAwDo1KkTrly50qrzELVVXJVE\natBkchg3bhxeeuklzJw503BtJUvskE5KSjJ8r9PpoNPpzP6cRGrAC+lRc6WlpSEtLc0s525yWumB\nBx7AoUOHWv0E9U0rpaeno1OnTigoKMD//d//cVqJqA6uSqLWsshqpWvXruHq1avQ6/VYvXo1Ll26\nhGvXrhm+Wkuv1yM5ORkAkJycDL1e3+pzEbVFXJVEatDgyCEgIKDR6aNz5841efK4uDjs27cPhYWF\n0Gq1WLRoEcaOHYsJEybg8uXL6NKlC1JSUuDpafxLwJEDEVHLcRMcURvAVUlkahbdBPfBBx/gl19+\nMdz+5ZdfsGLFCpM8OZE9q12VtOvMLiRsT7B2OERGmkwO69atg4eHh+G2h4cH1q5da9agiOwBVyWR\nmjWZHMrLy41uiwhKS0vNFhCRvdg8bjNiQ2J5ET1SpSZrDs899xyuXr2KZ599FiKCjz/+GD4+Pli1\napX5gmLNgYioxSxakK6srMTy5cuxZ88eAMCIESMwa9Ysw4Y4c2ByICJqOYuvVioqKsKFCxcQGhpq\nkidtCpMDtSVclUSWYtHVSp9++imioqIwevRoADXXWqr9noiaxlVJZIuaTA5JSUnIyMiAl5cXACAs\nLAy5ublmD4yoreCqJLJFTSYHJycnxQ7myspKswVE1NZwVRLZoiavyhoSEoJNmzahsrIS586dw6pV\nqzBgwABLxEbUJtReK4nIljQ5cvj444+RmZkJEcGYMWNQXV2NDz/80BKxERGRlfDaSkQmwlVJZG0W\n/SS47777DosXL1Z8Etzx48dNEgBRW8FPcKO2pMnkMHnyZCxbtgxhYWFwcGhyForIbnFVErUlTU4r\nDR06FPv377dUPAA4rUS2iZ/gRtZm0R3Su3fvRkpKCh555BE4OzsbAnjyySdNEkC9QTE5EBG1mEVr\nDhs3bkRWVhbKy8uNppXMmRyI1IyFZ7IHTSaHzMxMnD59utGPDCWyJyw8kz1ossI8aNAgZGVlWSIW\nIpvAwjPZgwZrDpWVlXByckJwcDCys7PRq1cv3HPPPTUPMvNSVtYcSM1YeCa1skhB+v7778eRI0eQ\nk5NT7wMDAgJMEkC9QTE5kAqwtkC2xiIF6donMGcSIFIz1hbInjWYHAoKCvDuu+/Wm4U0Gg3mzJlj\n1sCIrI21BbqTPY0mG0wOVVVVKCoqsmQsRKqyedxm1hbIiD2NJhusOURFReHo0aOWjgcAaw5EpE76\nTXrsOrML0V2jVfn5HBb9mFCiti5hewJ0G3XQb9LjRukNa4dDKmZPH9zU4Mjh6tWr8PHxsXQ8ADhy\nIMvSbdQZpgpiQ2Lb9FQBtW0WGTlYKzEQWRoLz0RK/LAfsnvc1EZthUWvymoNTA5kDva0DJHsEwvS\nRK1Quwxx15ldSNieYO1wiFSNyYHsBmsLRM3HaSWyG6wtUFvHmgNRI1hbIHvFmgNRI1hbILp7TA7U\n5rC2QHT3OK1EbQ5rC2SvWHMgAmsLRHdizYEIrC0QmROTA9ks1haIzIfTSmSzWFsgMsaaA9kV1haI\nmoc1B7IrrC0QWR6TA6keawtElsdpJVI91haImoc1B2qTWFsgujusOVCbxNoCkXo4WeuJAwIC4O7u\nDkdHR7Rr1w6HDh2yViikEqwtEKmH1aaVevXqhczMTHh7eyvu47RS29bQ9BFrC0R3p81MKzEB2KeG\npo88XTyREpvCxECkAlZLDhqNBiNGjEBERARWrFhhrTDICjh9RKR+Vqs5HDx4EL6+vigoKMCoUaMQ\nHByM4cOHG+5PSkoyfK/T6aDT6SwfJN2VhqaPNo/bzOkjIhNIS0tDWlqaWc6tiqWsS5YsAQDMmzcP\nAGsObYVuow77zu8DAMSGxCIlNsXKERG1bTZfcyguLkZxcTEA4Pbt20hNTUVoaKg1QiEz4vQRke2y\nysjh3LlzePzxx6HRaFBcXIyJEydi0aJF/wuKI4c2gauPiCyLO6RJVbizmUgdbH5aidoW7mwmanuY\nHOiusbZA1PZwWomajTubidSNNQeyCi5NJVI31hzIKjh9RGQ/OHIgBU4fEdkmTiuRWXH6iMg2mfK9\n02rXViLra2iEwOkjImLNwY41tD9h87jNiA2Jxe4puzl9RGSnOHKwYw2NEGo/V4GI7BdrDnaABWYi\n+8CCNLUIC8xE9oH7HKhFWGAmopbiyKEN4fQRkX3jtBLVi9NHRPaN+xzsHPcnEJG5seZgg7g/gYjM\njSMHG8T9CURkbqw5qBgLzETUEixI2wkWmImoJViQbmNYYCYitWFBWgVYYCYiteHIQQVYYCYitWHN\nwYJYYCYic2JB2kaxwExE5sSCtMqxwExEto4FaTNggZmIbB1HDmbAAjMR2TrWHO4CC8xEpCYsSKsE\nC8xEpCYsSFsYC8xEZG9YkG4GFpiJyN5w5FBHS0cILDATUVvFkUMdHCEQEdWwy5EDRwhERI2zy5ED\nRwhERI2zy5EDRwhERI1r0/scuEmNiOwJN8E1EzepEZE94Sa4OhoaHQDcpEZE1Fo2X5BuqLgMsMBM\nRNRaNjNyaM0lLFhgJiJqHZsZOXD5KRGR5ag2Oeg36XGj9IbhdlPLT5kYiIhMR7XJgSMEIiLrUe1S\n1ug10UwEREQtYMqlrFYZOaSmpiI8PBwhISFYunRpvccwMRARWY/Fk0NZWRlmzpyJ1NRUHD9+HNu2\nbcPRo0cVx9lCYkhLS7N2CM3COE2LcZqWLcRpCzGamsWTQ3p6OkJDQ9GtWzc4OTlhwoQJ2LFjh6XD\nMAlb+Q/DOE2LcZqWLcRpCzGamsWTQ15eHrp372647e/vj7y8PEuHQURkMgnbE6DbqFOssrRlFi9I\nf/LJJ9i/fz8+/PBDAMCWLVuQlpaG1atX/y8ojQZIqvleEmvC0yzUGO53hCMqEysV7U5wQkVixf/O\nU+e+dmiH8sRyRbsznFGWWKZovwf3oDSxVNHuAheUJJbUtOs0wLCa9vZoj+LEYsXxHdABtxNvK9o7\najri1oJbinZXB1cUvVGkaHdzdMPN128q2t2d3PHL/F8U7R7tPHDj/91QxOnl7IVr864pjve5xweF\nrxUq2ju7dMaVP1xRtGvba5H/ar6i3a+DH35+5WdFe7eO3ZA3N0/R3t21Oy68fEERZ4BbAM7NOac4\nPtA9EGdmn1G03+dxH7JeylK09/Xqix9f+FHRHuYThhOzTijaIztH4tjvjyna+2v7I+N3GYo4H/R7\nEAcTDiqOH9RtEA48c0DRruuuwzfTv1G0jwgYga+mfqVo1wfqsSN+h6J97H1j8UXcF4r22L6xSHkq\nRRHn5LDJSB6XrDh+euR0rHt8naJ9Zv+ZWPXoKkX77Adn491R7yra5w2ah8XDFyvaFz28CG/o3lC0\nvzP8HcwdNFcR58qYlfj9A783HFf3MRse24Cno55WtKeMT0FsaCwAwGGhAwQ17xk7J+1ETFAMAMD5\nj86oqK6ABhrsn7Yfg3sMBgB4vuWJW+W34KBxQEZCBiK0EQCA4BXByL+Vj3aO7ZDxbAY2vL8BSUlJ\nDW7GVct13Gz6wnvffvstli5dii+//BIA8M4776C8vBzz58//X1DeGuC6JaMiIrJ9gYGBOHPmjEnO\nZfHkUFpaiuDgYPz73/+Gr68vBg4ciI8++gj333+/JcMgIqJGWPzaSi4uLvjwww8xcuRIVFdXY8qU\nKUwMREQqo8pNcEREZF2qu3xGczbIWVJAQAAiIiIQFRWFBx54AABw7do1jBgxAhERERg5ciRu3Pjf\n6oQlS5aWhx3EAAAJXklEQVQgJCQE4eHh+Oqrr8wS0/Tp06HVahEeHm5oa01MmZmZiIqKQmhoKF58\n8UWLxJmUlAR/f39ERUUhKioKu3btsnqcubm5GDp0KMLDw9GnTx+8/fbbANTXpw3FqbY+LS0txYAB\nAxAVFYX77rsPs2fPBqCu/mwoRrX1Za2qqipERUVhzJgxACzUl6IipaWlEhAQIHl5eVJRUSHR0dFy\n5MgRq8YUEBAgV69eNWqbNWuWvPfeeyIi8t5778kLL7wgIiIZGRkSHR0tlZWVkpeXJwEBAVJWVmby\nmPbv3y9HjhyRsLCwVsVUXl4uIiLh4eGG/h07dqx8/vnnZo8zKSlJ/vKXvyiOtWac+fn5cuLECRER\nKSoqkqCgIDl27Jjq+rShONXYp8XFxSIiUlFRIQ8++KDs3btXdf1ZX4xq7EsRkb/85S8yadIkGTNm\njIhY5vddVSMHtW6Qkztm3nbu3IkpU6YAAOLj4w0x7tixAxMnToSjoyO6deuG0NBQHDp0yOTxDBky\nBF5eXq2OKT09HRcuXEB1dTWioqIUjzFnnICyP60dp1arRVhYGADA1dUVERERuHjxour6tKE4AfX1\nafv27QEA5eXlqKqqgq+vr+r6884YtVotAPX1ZV5eHnbu3IlnnnnGEJsl+lJVyUGNG+Q0Go1h+LZi\nxQoAQEFBAXx8fAAAnTp1wpUrNfsALl68CH9/f8NjLRl/S2O6ePGiUV9369bNYrGuXLkSffv2RXx8\nPK5du6aqOHNycnD48GEMHjxY1X1aG+eQIUMAqK9Pq6ur0a9fP2i1WgwbNgyhoaGq6887YwwJCQGg\nvr6cPXs23nnnHTg4/O/t2hJ9qarkoNFomj7Iwg4ePIgjR45gz5492LBhA77++mtrh2TTnnvuOWRn\nZ+PHH39EYGAgXnjhBWuHZHDr1i2MHz8ey5Ytg7u7u7XDadCtW7cQGxuLZcuWwc3NTZV96uDggGPH\njiEvLw/79+/HN998Y+2QFO6MMS0tTXV9+eWXX8LX1xdRUVEm29zWXKpKDv7+/sjNzTXczs3NNcp2\n1uDr6wsA6Ny5M8aPH4/Dhw+jc+fOKCys2U1cUFBgOObO+O8cCZlTS2Oqr73uXxzm0qlTJ2g0Gmg0\nGvz2t7/F4cOHVRFnRUUFxo0bh8mTJ+Pxxx8HoM4+rY1z0qRJhjjV2qcA4OHhgdGjRyM9PV2V/Vk3\nxoMHD6quL7/77jv885//RK9evRAXF4e9e/diypQpFulLVSWHAQMG4OTJk7h48SIqKiqQkpKCmJgY\nq8VTXFyM4uKaS2Lcvn0bqampCA0NhV6vR3JyzaUIkpOTodfrAQB6vR5bt25FZWUl8vLycPLkScMK\nJ3NraUzdu3eHg4OD4Yq4mzZtMjzGnGqHvwDw2WefITQ01OpxighmzJiBkJAQw6qV2pjU1KcNxam2\nPr169SqKimouAVNSUoLdu3cjPDxcVf3ZUIwFBQWGY9TQl4sXL0Zubi7OnTuHLVu24JFHHsHf/vY3\ny/Slqavqd2vnzp0SGhoqffv2lcWLF1s1lrNnz0pERIRERkZKUFCQvPHGGyIicvXqVRk+fLiEh4fL\niBEj5Pr164bHvPnmm9K3b18JDQ2V1NRUs8Q1ceJE8fPzk3bt2om/v7+sX7++VTFlZGRIv379JCQk\nRJ5//nmzx7lu3TqJj4+XiIgICQ4OlpEjR0peXp7V4/z2229Fo9FIZGSk9OvXT/r16ye7du1SXZ/W\nF+fOnTtV16fHjx+Xfv36SWRkpPTp00cWLlwoIq37vTFXnA3FqLa+rCstLc2wWskSfclNcEREpKCq\naSUiIlIHJgciIlJgciAiIgUmByIiUmByICIiBSYHIiJSYHIgaiadTofMzMx675swYQKys7PN8ry/\n+tWvDBu2iCyFyYGomWovq3CnM2fO4Pbt2wgMDFTcV11dfdfPO3HiRHz88cd3fR6ilmByIJt18+ZN\n6PV6REZGIjw8HCkpKQBqPqDpD3/4A6KjoxEZGYmsrCwAQH5+Ph599FFERkaiX79+2LdvH4CaC9nF\nxcUhMjISoaGh+PTTTwHUXD5l7NixCA0Nxfjx41FSUlLvxc+2bNmCxx57zHDb1dUVc+fORXR0NA4e\nPNhgPE8//TR+//vfY/DgwQgMDERaWhqmTZuG4OBgTJo0yXC+xx57DFu2bDFPJxI1xMQ7vIksZuvW\nrTJz5kzD7aKiIhGp+YCmpUuXiojIpk2b5Ne//rWIiDzxxBNy4MABERE5f/68BAYGiojI7NmzJTk5\nWURErl+/LoGBgXLz5k1ZvHixJCQkiIjIqVOnxMnJSTIzMxVxjBo1yqhdo9EYfZBKQ/FMnTpVJk+e\nLCIi//jHP8TNzU1Onz4t1dXV0r9/fzl8+LDhHL169ZJbt261uq+IWoojB7JZUVFR+Ne//oXXXnsN\n+/fvh6urq+G+p556CgAQGxuL77//HgDw9ddfY9asWYiKisLYsWNRVlaGmzdv4quvvsJbb72FqKgo\nDBs2DJWVlbhw4QIOHDiAuLg4AEBISAgiIiLqjeP8+fPw8/Mz3HZ0dDRcMbWxeDQaDUaPHg0ACAsL\nQ5cuXRAcHAyNRoPQ0FCjq2hqtVqj20Tm5mTtAIhaKygoCJmZmdixYwcSExMxbNgwLFiwoMHjNRoN\nDh8+DCcn5X/72ssi33m8NPPSY3WPc3FxafZnkzg7OwOo+WyBe+65x9Du4OBgVK8QEVV+3gm1XRw5\nkM3Kz89Hhw4dMHnyZLz88svIyMgw3Ldt2zbDvwMHDgQADB8+HKtXrzYcc/LkSQDAyJEjsWrVKkX7\n4MGDsXXrVgDA6dOncfz48Xrj6NmzJy5dutRorPXF0xKXL1+2yOdtENXiyIFs1vHjxzF37lw4OTnB\nycnJ8DGuAFBYWIjo6GhUVlYaCtWrV6/GM888g48++ggigoEDB2LNmjX44x//iJkzZyIkJAROTk7o\n3r07duzYgRdffBETJ05EaGgoQkJCEB0dXW8cgwcPRkZGBvr37w+g/k80rC+eO4+983G1t/Pz8+Hj\n44OOHTu2sqeIWo6X7KY2p1evXsjMzIS3t7dFnu/s2bN4/vnnG/zA9ruNZ82aNbh9+7bRB/wQmRun\nlajNsfTc/L333gs3N7cGN8HdbTxbt27Fs88+e1fnIGopjhyIiEiBIwciIlJgciAiIgUmByIiUmBy\nICIiBSYHIiJSYHIgIiKF/w/ondA2j7ZbKwAAAABJRU5ErkJggg==\n",
+ "png": "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\naZps37599rBhw87RNE0CAgLiJN+HSCRiGRgYVOTl5dk09z7q6+t12Gx27b1795yZc5999tkapg9w\nyO/AtJKaoCiKPnny5LiSkhIT5ggPD9/T8H55eXm2iYmJfiYmJiXMERMTM7WwsJBbXFxsVl1dre/g\n4JDT2tft3r37Q+brZ8+edamrq2Pb2trmMW02Njb5jx49smJuc7ncQubrjh07VhFCiLm5eZFkW3l5\nuSEhhCQmJvoNHTr0goWFxVNjY+PSHTt2fFhcXGxGyKtpIWtr6wLJx5mZmRVLxib5WgYGBpXV1dX6\nYrGYlZeXZ/v48eNukn2wbt265U+fPrVozXsuKCiwbksfSRIKhZaS/dOpU6cKMzOzYsk+kuxToVBo\nKXnbxsYmv7Wv1dz3urH7T506NebQoUPBhBASExMzdcKECcf19fWrCSHk119/DTx9+vS7PB5PwOfz\nE65fv96vsedYv379pzRNU76+vknu7u7p+/btC5M83/C9PH78uBsT6yeffLKZiZP5Xj569Miquffx\n7NmzLvX19brt7SNoPxSkNYyNjU3+kCFDLp49e3ZEw3NisZilr69fnZ2d7ejp6ZkmeY6iqEYvzyvZ\n3qVLl2dsNrtOIBDwXFxc7hBCSH5+vo3kL/G2mDp1asy8efO2nDlz5h09Pb3aBQsWbGKSQ7du3R7f\nu3evB3Pfqqqqjsy5lnTv3v2hnZ1dblZWlnNj51kslrilx2dnZzu25b0wunXr9lggEPCY2xUVFZ2K\ni4vNrKysHjFtkn1qaWkplJx7l/yakFfJpaKiohNz+8mTJ12Zr5v7Xjdm+PDh54qKisxv3brldfjw\n4Snff//9fOZcnz59kk+cODFeJBLpbN26de6kSZOONoyFkFcJeefOnRGEEHLlypUBw4cPPzdkyJCL\n9vb2D5j4Jf9vMO/bxsYmf8WKFauDg4MPNXzOvLw826beh0gk0tHV1a3Pz8+3YWo0jcUFsoeRgxqh\nW7EqZtSoUX9kZWU5//TTT9Pq6urYdXV17H/++afv3bt3e7JYLPGMGTP2Lly48DuhUGgpEol0rl27\n9lZtba2eubl5EYvFEjdX7NPR0RFNmjTp6Oeff76mvLzcMC8vz3bTpk0Lpk2b9lN73k95ebmhiYlJ\niZ6eXm1SUpJvTEzMVOZcYGDgr6dOnRrDxBcZGRnZmvdPCCG+vr5JHA6nbP369Z9WVVV1FIlEOunp\n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\naWVlVeDt7Z3i7e2dcvr06ZHKjDM/P787n8+/4OrqmuHm5pa+efPmearYn03FqWr9WVVVpe/r65vo\n5eWV6uLikrls2bJ1qtifTcWpav3JHPX19Tre3t4po0ePPqWo/pT5m3iTN+/g4JCdm5vLq62tZXt5\neaVmZma6KDMmHo+XW1xcbCrZtmTJkvXffPPNpzRNk6ioqKVLly6NommaZGRkuHp5eaXW1tayc3Nz\neQ4ODtkikYglj7guXbo06ObNmz6Sv3TbEpdYLKZomiZ9+/ZNSkxM9KVpmowcOfJ0XFxcgLzjjIyM\nXLlx48aFDe+rrDiFQmHXlJQUb5qmSVlZmaGzs/O9zMxMF1Xrz6biVLX+pGmaVFRUGNA0Terq6nT9\n/PyuX758eaCq9WdTcapif9I0TTZu3Lhw6tSpP48ZMyaWphXz864yl89ISkrydXR0zObxeAI2m103\nZcqUwydPnhyn7LjoBqunYmNjx4aGhu4nhJDQ0ND9J06cGE8IISdPnhwXHBx8iM1m1/F4PIGjo2N2\nUlKSrzxiGjRo0GUTE5OS9saVmJjoJxQKLcvKyji+vr5JhBAyffr0A8xj5BknIY2vSFNWnF27dn3i\n7e2dSgghhoaG5S4uLncePXpkpWr92VSchKhWfxJCiIGBQSUhhNTW1uqJRCIdExOTElXrz6biJET1\n+rOgoMD69OnT786cOXM3E5si+lNlksOjR4+sunfv/pC5bW1tXcD851cWiqLo4cOHn+vTp0/yrl27\nZhFCSGFhIZfL5RYSQgiXyy0sLCzkEkLI48ePu0muulJ0/G2Nq2G7lZXVI0XFu3Xr1rleXl63wsPD\n95SWlhqrSpwCgYCXkpLi4+fnl6jK/cnE2a9fv+uEqF5/isVilre3dyqXyy0cOnToBTc3twxV7M/G\n4iRE9fpzwYIFm7799tslLBZLzLQpoj9VJjm0tP9BGa5cuTIgJSXFJy4ubuS2bds+vnz58iDJ8xRF\n0c3Fraz31FJcyjR79uz/5ubm2qWmpnpbWloKFy1atFHZMRFCSHl5uWFgYOCvmzdv/oTD4ZRJnlOl\n/iwvLzd87733ftm8efMnhoaG5arYnywWS5yamupdUFBgfenSpcEXLlwYKnleVfqzYZwJCQl8VevP\n33//fbSFhcVTHx+flMZGNITIrz9VJjmo4v4HS0tLISGEmJubF02YMOF4UlKSL5fLLXzy5ElXQggR\n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\n",
"text": [
- "<matplotlib.figure.Figure at 0x2ab5110>"
+ "<matplotlib.figure.Figure at 0x2854950>"
]
}
],
- "prompt_number": 5
+ "prompt_number": 4
}
],
"metadata": {}
diff --git a/Electric_Machinery_and_Transformers/APPENDIX_A-3.ipynb b/Electric_Machinery_and_Transformers/APPENDIX_A-3.ipynb
new file mode 100755
index 00000000..38a77ec0
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/APPENDIX_A-3.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "APPENDIX A-3: APPLICABLE SECTIONS OF THE NATIONAL ELECTRIC CODE(NEC)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1, Page number 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "hp = 5.0 #Power rating of motor(hp)\n",
+ "V = 220.0 #Voltage rating of motor(V)\n",
+ "Va_a = 180.0 #Armature voltage(V)\n",
+ "Va_b = 240.0 #Armature voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "I1 = 27.0 #Current(A). From Appendix A-3 table for 180V\n",
+ "I_L1 = I1*(Va_a/V) #Full load current(A)\n",
+ "I2 = 20.0 #Current(A). From Appendix A-3 table for 240V\n",
+ "I_L2 = I2*(Va_b/V) #Full load current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load current for armature voltage of 180 V , I_L1 = %.f A' %I_L1)\n",
+ "print('Case(b): Full-load current for armature voltage of 240 V , I_L2 = %.f A' %I_L2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load current for armature voltage of 180 V , I_L1 = 22 A\n",
+ "Case(b): Full-load current for armature voltage of 240 V , I_L2 = 22 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2, Page number 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "hp = 10.0 #Power rating of motor(hp)\n",
+ "V = 600.0 #Voltage rating of motor(V)\n",
+ "Va = 550.0 #Armature voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "I = 16.0 #Current(A). From Appendix A-3 table for 550 V\n",
+ "I_L = I*(Va/V) #Full load current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Line current at rated load , I_L = %.1f A' %I_L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line current at rated load , I_L = 14.7 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_1.ipynb b/Electric_Machinery_and_Transformers/CHAP_1.ipynb
new file mode 100755
index 00000000..dad6f062
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_1.ipynb
@@ -0,0 +1,645 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 1: ELECTROMECHANICAL FUNDAMENTALS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page number 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "t = 50.0*10**-3 #Time(second)\n",
+ "phi = 8.0*10**6 #Uniform magnetic field(maxwells)\n",
+ "\n",
+ "#Calculation\n",
+ "E_av = (phi/t)*10**-8 #Average voltage generated in the conductor(V) \n",
+ "\n",
+ "#Result\n",
+ "print('Average voltage generated in the conductor , E_av = %.1f V' %E_av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average voltage generated in the conductor , E_av = 1.6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page number 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "l = 18.0 #Length of the conductor(inches)\n",
+ "B = 50000.0 #Uniform magnetic field(lines/sq.inches)\n",
+ "d = 720.0 #Distance travelled by conductor(inches)\n",
+ "t = 1.0 #Time taken for the conductor to move(second)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "v = d/t #Velocity with which the conductor moves(inches/second)\n",
+ "e = B*l*v*10**-8 #Instantaneous induced EMF(V)\n",
+ "#Case(b)\n",
+ "A = d*l #Area swept by the conductor while moving(sq.inches)\n",
+ "phi = B*A #Uniform magnetic field(lines) \n",
+ "E = (phi/t)*10**-8 #Average induced EMF(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Instantaneous induced EMF , e = %.2f V' %e)\n",
+ "print('Case(b): Average induced EMF , E = %.2f V' %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Instantaneous induced EMF , e = 6.48 V\n",
+ "Case(b): Average induced EMF , E = 6.48 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Page number 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "l = 18.0 #Length of the conductor(inches)\n",
+ "B = 50000.0 #Uniform magnetic field(lines/sq.inches)\n",
+ "d = 720.0 #Distance travelled by conductor(inches)\n",
+ "t = 1.0 #Time taken for the conductor to move(second)\n",
+ "theta = 75.0 #Angle between the motion of the conductor and field(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "v = d/t #Velocity with which the conductor moves(inches/second)\n",
+ "E = B*l*v*math.sin(theta*math.pi/180)*10**-8 #Instantaneous induced voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Average induced voltage , E = %.2f V' %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average induced voltage , E = 6.26 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page number 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "v = 1.5 #Velocity of moving conductor(m/s)\n",
+ "l = 0.4 #Length of the conductor(m)\n",
+ "B = 1 #Uniform field(tesla)\n",
+ "theta_a = 90.0 #Angle between the motion of the conductor and field(Degree)\n",
+ "theta_b = 35.0 #Angle between the motion of the conductor and field(Degree)\n",
+ "theta_c = 120.0 #Angle between the motion of the conductor and field(Degree)\n",
+ "\n",
+ "#Calculation\n",
+ "E_a = B*l*v*math.sin(theta_a*math.pi/180) #Voltage induced in the conductor(V)\n",
+ "E_b = B*l*v*math.sin(theta_b*math.pi/180) #Voltage induced in the conductor(V)\n",
+ "E_c = B*l*v*math.sin(theta_c*math.pi/180) #Voltage induced in the conductor(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Voltage induced in the conductor , E = %.1f V' %E_a)\n",
+ "print('Case(b): Voltage induced in the conductor , E = %.3f V' %E_b)\n",
+ "print('Case(c): Voltage induced in the conductor , E = %.2f V' %E_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Voltage induced in the conductor , E = 0.6 V\n",
+ "Case(b): Voltage induced in the conductor , E = 0.344 V\n",
+ "Case(c): Voltage induced in the conductor , E = 0.52 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page number 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "no_of_conductors = 40.0 #Number of conductors\n",
+ "A = 2.0 #Number of parallel paths\n",
+ "path = A\n",
+ "flux_per_pole = 6.48*10**8 #Flux per pole(lines) \n",
+ "N = 30.0 #Speed of the prime mover(rpm)\n",
+ "R_per_path = 0.01 #Resistance per path\n",
+ "I = 10.0 #Current carrying capacity of each conductor(A)\n",
+ "P = 2.0 #Number of poles\n",
+ "\n",
+ "#Calculation\n",
+ "phi_T = P*flux_per_pole #Total flux linked in one revolution(lines)\n",
+ "t = (1/N)*(60) #Time for one revolution(s/rev)\n",
+ "#Case(a)\n",
+ "e_av_per_conductor = (phi_T/t)*10**-8 #Average voltage generated(V/conductor)\n",
+ "E_per_path = (e_av_per_conductor)*(no_of_conductors/path) #Average voltage generated(V/path)\n",
+ "#Case(b)\n",
+ "E_g = E_per_path #Generated armature voltage(V)\n",
+ "#Case(c)\n",
+ "I_a = (I/path)*(2*path) #Armature current delivered to an external load(A)\n",
+ "#Case(d)\n",
+ "R_a = (R_per_path)/path*(no_of_conductors/P) #Armature resistance(ohm)\n",
+ "#Case(e)\n",
+ "V_t = E_g-(I_a*R_a) #Terminal voltage of the generator(V)\n",
+ "#Case(f)\n",
+ "P = V_t*I_a #Generator power rating(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Average voltage generated per path , E/path = %.1f V/path' %E_per_path)\n",
+ "print('Case(b): Generated armature voltage , E_g = %.1f V' %E_g)\n",
+ "print('Case(c): Armature current delivered to an external load , I_a = %.f A' %I_a)\n",
+ "print('Case(d): Armature resistance , R_a = %.1f \u03a9' %R_a)\n",
+ "print('Case(e): Terminal voltage of the generator , V_t = %.1f V' %V_t)\n",
+ "print('Case(f): Generator power rating , P = %.f W' %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Average voltage generated per path , E/path = 129.6 V/path\n",
+ "Case(b): Generated armature voltage , E_g = 129.6 V\n",
+ "Case(c): Armature current delivered to an external load , I_a = 20 A\n",
+ "Case(d): Armature resistance , R_a = 0.1 \u03a9\n",
+ "Case(e): Terminal voltage of the generator , V_t = 127.6 V\n",
+ "Case(f): Generator power rating , P = 2552 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page number 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "no_of_conductors = 40.0 #Number of conductors\n",
+ "path = 4.0 #Number of parallel paths\n",
+ "flux_per_pole = 6.48*10**8 #Flux per pole(lines) \n",
+ "N = 30.0 #Speed of the prime mover(rpm)\n",
+ "R_per_path = 0.01 #Resistance per path\n",
+ "I = 10.0 #Current carrying capacity of each conductor(A)\n",
+ "P = 4.0 #Number of poles\n",
+ "\n",
+ "#Calculation\n",
+ "phi_T = 2*flux_per_pole #Total flux linked in one revolution(lines). From Example 1.5\n",
+ "t = (1/N)*(60) #Time for one revolution(s/rev)\n",
+ "#Case(a)\n",
+ "e_av_per_conductor = (phi_T/t)*10**-8 #Average voltage generated(V/conductor)\n",
+ "E_per_path = (e_av_per_conductor)*(no_of_conductors/path) #Average voltage generated(V/path)\n",
+ "#Case(b)\n",
+ "E_g = E_per_path #Generated armature voltage(V)\n",
+ "#Case(c)\n",
+ "I_a = (I/path)*(4*path) #Armature current delivered to an external load(A)\n",
+ "#Case(d)\n",
+ "R_a = (R_per_path)/path*(no_of_conductors/P) #Armature resistance(ohm)\n",
+ "#Case(e)\n",
+ "V_t = E_g-(I_a*R_a) #Terminal voltage of the generator(V)\n",
+ "#Case(f)\n",
+ "P = V_t*I_a #Generator power rating(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Average voltage generated per path , E/path = %.1f V/path' %E_per_path)\n",
+ "print('Case(b): Generated armature voltage , E_g = %.1f V' %E_g)\n",
+ "print('Case(c): Armature current delivered to an external load , I_a = %.f A' %I_a)\n",
+ "print('Case(d): Armature resistance , R_a = %.3f \u03a9' %R_a)\n",
+ "print('Case(e): Terminal voltage of the generator , V_t = %.1f V' %V_t)\n",
+ "print('Case(f): Generator power rating , P = %.f W' %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Average voltage generated per path , E/path = 64.8 V/path\n",
+ "Case(b): Generated armature voltage , E_g = 64.8 V\n",
+ "Case(c): Armature current delivered to an external load , I_a = 40 A\n",
+ "Case(d): Armature resistance , R_a = 0.025 \u03a9\n",
+ "Case(e): Terminal voltage of the generator , V_t = 63.8 V\n",
+ "Case(f): Generator power rating , P = 2552 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "N = 1.0 #Number of turns\n",
+ "phi = 6.48*10**8 #Magnetic flux(lines)\n",
+ "rpm = 30.0 #Number of revolution\n",
+ "s = rpm/60 #Number of revolution of the coil per second(rev/s)\n",
+ "\n",
+ "#Calculation\n",
+ "E_av_per_coil = 4*phi*N*s*10**-8 #Average voltage per coil(V/coil)\n",
+ "E_av_per_coil_side = E_av_per_coil*(1.0/2) #Average voltage per conductor(V/conductor)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Average voltage per coil , E_av/coil = %.2f V/coil' %E_av_per_coil)\n",
+ "print('Case(b): Average voltage per conductor , E_av/coil side = %.2f V/conductor' %E_av_per_coil_side)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Average voltage per coil , E_av/coil = 12.96 V/coil\n",
+ "Case(b): Average voltage per conductor , E_av/coil side = 6.48 V/conductor\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page number 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "N = 1.0 #Number of turns\n",
+ "phi_lines = 6.48*10**8 #Magnetic flux(lines/pole)\n",
+ "rpm = 30.0 #Number of revolution per second\n",
+ "s = rpm/60 #Number of revolution of the coil per second(rev/s)\n",
+ "\n",
+ "#Calculation\n",
+ "phi = phi_lines*10**-8 #Magnetic flux(Wb)\n",
+ "omega = rpm*2*math.pi*(1.0/60) #Angular velocity(rad/s)\n",
+ "E_av_per_coil = 0.63662*omega*phi*N #Average voltage per coil(V/coil)\n",
+ "\n",
+ "#Result\n",
+ "print('Average voltage per coil , E_av/coil = %.2f V/coil' %E_av_per_coil)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average voltage per coil , E_av/coil = 12.96 V/coil\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9, Page number 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 2.0 #Number of poles\n",
+ "Z = 40.0 #Number of conductors\n",
+ "a = 2.0 #Parallel paths\n",
+ "phi = 6.48*10**8 #Magnetic flux(lines/pole)\n",
+ "S = 30.0 #Speed of the prime mover\n",
+ "\n",
+ "#Calculation\n",
+ "E_g = (phi*Z*S*P)/(60*a)*10**-8 #Average voltage between the brushes(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Average voltage between the brushes , E_g = %.1f V' %E_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average voltage between the brushes , E_g = 129.6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10, Page number 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "no_of_coils = 40.0 #Number of coils\n",
+ "N = 20.0 #Number of turns in each coil\n",
+ "omega = 200.0 #Angular velocity of armature(rad/s)\n",
+ "phi = 5.0*10**-3 #Flux(Wb/pole)\n",
+ "a = 4.0 #Number of parallel paths\n",
+ "P = 4.0 #Number of poles\n",
+ "\n",
+ "#Calculation\n",
+ "Z = no_of_coils*2.0*N #Number of conductors\n",
+ "E_g = (phi*Z*omega*P)/(2*math.pi*a) #Voltage generated by the armature between brushes(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Number of conductors , Z = %.f conductors' %Z)\n",
+ "print('Case(b): Voltage between brushes generated by the armature , E_g = %.1f V' %E_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Number of conductors , Z = 1600 conductors\n",
+ "Case(b): Voltage between brushes generated by the armature , E_g = 254.6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.11, Page number 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "l = 0.5 #Length of the conductor(m)\n",
+ "A = 0.1*0.2 #Area of the pole face(sq.meter)\n",
+ "phi = 0.5*10**-3 #Magnetic flux(Wb)\n",
+ "I = 10.0 #Current in the conductor(A)\n",
+ "\n",
+ "#Calculation\n",
+ "B = phi/A #Flux density(Wb/m^2)\n",
+ "F = B*I*l*1000 #Magnitude of force(mN)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Magnitude of the force , F = %.f mN' %F)\n",
+ "print('Case(b): The direction of the force on the conductor is %.f mN in an upward direction' %F)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Magnitude of the force , F = 125 mN\n",
+ "Case(b): The direction of the force on the conductor is 125 mN in an upward direction\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.12, Page number 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "l = 0.5 #Length of the conductor(m)\n",
+ "A = 0.1*0.2 #Area of the pole face(sq.meter)\n",
+ "phi = 0.5*10**-3 #Magnetic flux(Wb)\n",
+ "I = 10.0 #Current in the conductor(A)\n",
+ "theta = 75.0 #Angle between the conductor and the flux density(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "B = phi/A #Flux density(Wb/m^2)\n",
+ "F = B*I*l*math.sin(theta*math.pi/180)*1000 #Magnitude of force(mN)\n",
+ "\n",
+ "#Result\n",
+ "print('Magnitude of the force , F = %.2f mN in an vertically upward direction' %F)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnitude of the force , F = 120.74 mN in an vertically upward direction\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.13, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R_a = 0.25 #Armature resistance(ohm)\n",
+ "V_a = 125.0 #DC bus voltage(V)\n",
+ "I_a = 60.0 #Armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "E_c = V_a-(I_a*R_a) #Counter EMF generated in the armature conductors of motor(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Counter EMF generated in the armature conductors of motor , E_c = %.f V' %E_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Counter EMF generated in the armature conductors of motor , E_c = 110 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.14, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_a = 110.0 #Voltage across armature(V)\n",
+ "I_a = 60.0 #Armature current(A)\n",
+ "R_a = 0.25 #Armature resistance(ohm)\n",
+ "P = 6.0 #Number of poles\n",
+ "a = 12.0 #Number of paths\n",
+ "Z = 720.0 #No. of armature conductors\n",
+ "S = 1800.0 #Speed(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "E_g = V_a+(I_a*R_a) #Generated EMF in the armature(V)\n",
+ "phi_lines = E_g*60*a/(Z*S*P*10**-8) #Flux per pole in lines(lines/pole)\n",
+ "phi_mWb = phi_lines*10**-8*1000 #Flux per pole milliwebers(mWb)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Generated EMF in the armature , E_g = %.f V' %E_g)\n",
+ "print('Case(b): Flux per pole in lines , \u03a6 = %.2e lines/pole' %phi_lines)\n",
+ "print('Case(c): Flux per pole milliwebers , \u03a6 = %.1f mWb' %phi_mWb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Generated EMF in the armature , E_g = 125 V\n",
+ "Case(b): Flux per pole in lines , \u03a6 = 1.16e+06 lines/pole\n",
+ "Case(c): Flux per pole milliwebers , \u03a6 = 11.6 mWb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_10.ipynb b/Electric_Machinery_and_Transformers/CHAP_10.ipynb
new file mode 100755
index 00000000..0689055e
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_10.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 10: SINGLE-PHASE MOTORS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "hp = 0.25 #Power rating of the single-phase motor(hp)\n",
+ "V = 110.0 #Voltage rating of the single-phase motor(V)\n",
+ "I_sw = 4.0 #Starting winding current(A)\n",
+ "phi_I_sw = 15.0 #Phase angle by which I_sw lags behind V(degree)\n",
+ "I_rw = 6.0 #Running winding current(A)\n",
+ "phi_I_rw = 40.0 #Phase angle by which I_rw lags behind V(degree) \n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_s = I_sw*cmath.exp(1j*-phi_I_sw*math.pi/180) #Starting current(A)\n",
+ "I_r = I_rw*cmath.exp(1j*-phi_I_rw*math.pi/180) #Running current(A)\n",
+ "I_t = I_s+I_r #Total starting current(A)\n",
+ "I_t_angle = cmath.phase(I_t)*180/math.pi #Angle of total starting current(degree)\n",
+ "Power_factor = math.cos(I_t_angle*math.pi/180) #Power factor\n",
+ "#Case(b)\n",
+ "Is_cos_theta = I_s.real #Component of starting winding current in phase with the supply voltage(A)\n",
+ "#Case(c)\n",
+ "Ir_sin_theta = I_r.imag #Component of running winding current that lags the supply voltage by 90\u00b0(A)\n",
+ "#Case(d)\n",
+ "phase = (phi_I_rw-phi_I_sw) #Phase angle between the starting and running currents(degree)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Total starting current , I_t = %.2f\u2220%.f\u00b0 A' %(abs(I_t),I_t_angle))\n",
+ "print(' Power factor = %.3f lagging' %Power_factor)\n",
+ "print('Case(b): Component of starting winding current in phase with the supply voltage , I_s*cos\u03b8 = %.2f A' %Is_cos_theta)\n",
+ "print('Case(c): Component of running winding current that lags the supply voltage by 90\u00b0 , I_r*sin\u03b8 = %.2fj A' %Ir_sin_theta)\n",
+ "print('Case(d): Phase angle between starting and running currents , (\u03b8_r-\u03b8_s) = %.f\u00b0 ' %phase)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Total starting current , I_t = 9.77\u2220-30\u00b0 A\n",
+ " Power factor = 0.866 lagging\n",
+ "Case(b): Component of starting winding current in phase with the supply voltage , I_s*cos\u03b8 = 3.86 A\n",
+ "Case(c): Component of running winding current that lags the supply voltage by 90\u00b0 , I_r*sin\u03b8 = -3.86j A\n",
+ "Case(d): Phase angle between starting and running currents , (\u03b8_r-\u03b8_s) = 25\u00b0 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "hp = 0.25 #Power rating of the single-phase motor(hp)\n",
+ "V = 110.0 #Voltage rating of the single-phase motor(V)\n",
+ "I_s = 4.0 #Starting winding current(A)\n",
+ "phi_I_s = 15.0 #Phase angle by which I_sw lags behind V(degree)\n",
+ "I_r = 6.0 #Running winding current(A)\n",
+ "phi_I_r = 40.0 #Phase angle by which I_rw lags behind V(degree) \n",
+ "\n",
+ "#Calculation\n",
+ "P_s = V*I_s*math.cos(phi_I_s*math.pi/180) #Power dissipated by starting winding(W)\n",
+ "P_r = V*I_r*math.cos(phi_I_r*math.pi/180) #Power dissipated in the running winding(W)\n",
+ "P_t = P_s+P_r #Total instantaneous power dissipated during starting(W)\n",
+ "P_r_d = P_r #Total steady-state power dissipated during running(W)\n",
+ "n = hp*746/P_r*100 #Efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Power dissipated by the starting winding , P_s = %.f W' %P_s)\n",
+ "print('Case(b): Power dissipated in the running winding , P_r = %.1f W' %P_r)\n",
+ "print('Case(c): Total instantaneous power dissipated during starting , P_t = %.1f W' %P_t)\n",
+ "print('Case(d): Total steady-state power dissipated during running , P_r = %.1f W' %P_r_d)\n",
+ "print('Case(e): Motor efficiency , \u03b7 = %.f percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Power dissipated by the starting winding , P_s = 425 W\n",
+ "Case(b): Power dissipated in the running winding , P_r = 505.6 W\n",
+ "Case(c): Total instantaneous power dissipated during starting , P_t = 930.6 W\n",
+ "Case(d): Total steady-state power dissipated during running , P_r = 505.6 W\n",
+ "Case(e): Motor efficiency , \u03b7 = 37 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3, Page number 345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "hp = 0.25 #Power rating of the single-phase motor(hp)\n",
+ "V = 110.0 #Voltage rating of the single-phase motor(V)\n",
+ "I_sw = 4.0 #Starting winding current(A)\n",
+ "phi_I_sw = 42.0 #Phase angle by which I_sw lead V(degree)\n",
+ "I_rw = 6.0 #Running winding current(A)\n",
+ "phi_I_rw = 40.0 #Phase angle by which I_rw lags behind V(degree) \n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_s = I_sw*cmath.exp(1j*phi_I_sw*math.pi/180) #Starting current(A)\n",
+ "I_r = I_rw*cmath.exp(1j*-phi_I_rw*math.pi/180) #Running current(A)\n",
+ "I_t = I_s+I_r #Total starting current(A)\n",
+ "I_t_angle = cmath.phase(I_t)*180/math.pi #Angle of total starting current(degree)\n",
+ "Power_factor = math.cos(I_t_angle*math.pi/180) #Power factor\n",
+ "#Case(b)\n",
+ "angle = (phi_I_rw-(-phi_I_sw)) #Angle between starting and running current(degree)\n",
+ "sin_angle = math.sin(angle*math.pi/180) #Sine of the angle between starting and running currents\n",
+ "#Case(c)\n",
+ "T_ratio = sin_angle/math.sin(25*math.pi/180) #Ratio of starting torque\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Total starting current , I_t = %.2f\u2220%.1f\u00b0 A' %(abs(I_t),I_t_angle))\n",
+ "print(' Power factor = %.3f ' %Power_factor)\n",
+ "print('Case(b): Sine of the angle between starting and running currents = %.4f ' %sin_angle)\n",
+ "print('Case(c): Steady state starting current has been reduced from 9.88\u2220-30\u00b0 A to %.2f\u2220%.1f\u00b0 A' %(abs(I_t),I_t_angle))\n",
+ "print(' The power factor has raised from 0.866 lagging to %.3f' %Power_factor)\n",
+ "print(' The ratio of starting torques , T_cs/T_rs = %.2f ' %T_ratio)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Total starting current , I_t = 7.66\u2220-8.9\u00b0 A\n",
+ " Power factor = 0.988 \n",
+ "Case(b): Sine of the angle between starting and running currents = 0.9903 \n",
+ "Case(c): Steady state starting current has been reduced from 9.88\u2220-30\u00b0 A to 7.66\u2220-8.9\u00b0 A\n",
+ " The power factor has raised from 0.866 lagging to 0.988\n",
+ " The ratio of starting torques , T_cs/T_rs = 2.34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page number 345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T_r = 1.0 #Rated torque(lb-ft)\n",
+ "P_in = 400.0 #Rated input power(W)\n",
+ "V = 115.0 #Rated input voltage(V)\n",
+ "I_t = 5.35 #Rated input current(A)\n",
+ "Speed = 1750.0 #Rated speed(rpm)\n",
+ "hp = 1.0/3 #Rated hp\n",
+ "T_s = 4.5 #Starting torque(lb-ft) From Locked-Rotor data\n",
+ "T_br = 2.5 #Breakdown torque(lb-ft) From Breakdown-Torque data\n",
+ "\n",
+ "#Calculation\n",
+ "T_s_r = T_s/T_r #Ratio of starting to rated torque\n",
+ "T_br_r = T_br/T_r #Ratio of breakdown to rated torque\n",
+ "P_o = hp*746 #Power output(W) \n",
+ "n = P_o/P_in*100 #Rated load efficiency(%)\n",
+ "S = V*I_t #VA rating of the motor\n",
+ "cos_theta = P_in/S #Rated load power factor\n",
+ "hp = T_r*Speed/5252 #Rated load horsepower\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Ratio of starting to rated torque , T_s/T_r = %.1f ' %T_s_r)\n",
+ "print('Case(b): Ratio of breakdown to rated torque , T_br/T_r = %.1f ' %T_br_r)\n",
+ "print('Case(c): Rated load efficiency , \u03b7 = %.1f percent' %n)\n",
+ "print('Case(d): Rated load power factor , cos\u03b8 = %.4f ' %cos_theta)\n",
+ "print('Case(e): Rated load horsepower , hp = %.4f hp' %hp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Ratio of starting to rated torque , T_s/T_r = 4.5 \n",
+ "Case(b): Ratio of breakdown to rated torque , T_br/T_r = 2.5 \n",
+ "Case(c): Rated load efficiency , \u03b7 = 62.2 percent\n",
+ "Case(d): Rated load power factor , cos\u03b8 = 0.6501 \n",
+ "Case(e): Rated load horsepower , hp = 0.3332 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_11.ipynb b/Electric_Machinery_and_Transformers/CHAP_11.ipynb
new file mode 100755
index 00000000..3bf24fda
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_11.ipynb
@@ -0,0 +1,243 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 11: SPECIALIZED DYNAMOS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page number 372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "#Given Torque-Speed relations shown in Fig.11-3b page no-371 for a dc servomotor\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "S = 800.0 #Motor speed at point x(rpm). Extrapolating to load line point x\n",
+ "V = 60.0 #Armature voltage at point x(V)\n",
+ "#Case(b)\n",
+ "T = 4.5 #At standstill, 60 V yields 4.5 lb-ft of starting torque\n",
+ "#Case(c)\n",
+ "P_c = T*S/5252 #Power delivered to the load(hp). From case(a)\n",
+ "P_c_watt = P_c*746 #Power delivered to the load(W)\n",
+ "#Case(d)\n",
+ "T_d = 1.1 #Torque for continuous duty without cooling fan(lb-ft). At point o\n",
+ "S_d = 410.0 #Maximum load speed(rpm)\n",
+ "#Case(e)\n",
+ "T_e = 2.4 #Torque for continuous duty with cooling fan(lb-ft). At point w\n",
+ "S_e = 900.0 #Maximum load speed(rpm)\n",
+ "#Case(f)\n",
+ "P_d = T_d*S_d/5252 #Power delivered to the load(hp). From case(d)\n",
+ "P_d_watt = P_d*746 #Power delivered to the load(W)\n",
+ "#Case(g)\n",
+ "P_e = T_e*S_e/5252 #Power delivered to the load(hp). From case(e)\n",
+ "P_e_watt = P_e*746 #Power delivered to the load(W)\n",
+ "#Case(h)\n",
+ "A = 65.0 #Upper limit of power range A(W)\n",
+ "B = 305.0 #Upper limit of power range B(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Motor speed when load torque is 2.1 lb-ft at point x , S = %.f rpm' %S)\n",
+ "print(' Armature voltage when load torque is 2.1 lb-ft at point x , V = %.f V' %V)\n",
+ "print('Case(b): Motor starting torque using the voltage found in part(a) , T_st = %.1f lb-ft' %T)\n",
+ "print('Case(c): Power delivered to the load under conditions given in part(a) , P = %.3f hp = %.f W' %(P_c,P_c_watt))\n",
+ "print('Case(d): Maximum load speed for continuous duty without cooling fan , S = %.f rpm' %S_d)\n",
+ "print(' Torque for continuous duty without cooling fan , T = %.1f lb-ft' %T_d)\n",
+ "print('Case(e): Maximum load speed for continuous duty with cooling fan , S = %.f rpm' %S_e)\n",
+ "print(' Torque for continuous duty with cooling fan , T = %.1f lb-ft' %T_e)\n",
+ "print('Case(f): Power delivered to load in part(d) , P = %.4f hp = %.1f W' %(P_d,P_d_watt))\n",
+ "print('Case(g): Power delivered to load in part(e) , P = %.3f hp = %.f W' %(P_e,P_e_watt))\n",
+ "print('Case(h): Upper limit of power range , A = %.f W' %A)\n",
+ "print(' Upper limit of power range , B = %.f W' %B)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Motor speed when load torque is 2.1 lb-ft at point x , S = 800 rpm\n",
+ " Armature voltage when load torque is 2.1 lb-ft at point x , V = 60 V\n",
+ "Case(b): Motor starting torque using the voltage found in part(a) , T_st = 4.5 lb-ft\n",
+ "Case(c): Power delivered to the load under conditions given in part(a) , P = 0.685 hp = 511 W\n",
+ "Case(d): Maximum load speed for continuous duty without cooling fan , S = 410 rpm\n",
+ " Torque for continuous duty without cooling fan , T = 1.1 lb-ft\n",
+ "Case(e): Maximum load speed for continuous duty with cooling fan , S = 900 rpm\n",
+ " Torque for continuous duty with cooling fan , T = 2.4 lb-ft\n",
+ "Case(f): Power delivered to load in part(d) , P = 0.0859 hp = 64.1 W\n",
+ "Case(g): Power delivered to load in part(e) , P = 0.411 hp = 307 W\n",
+ "Case(h): Upper limit of power range , A = 65 W\n",
+ " Upper limit of power range , B = 305 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page number 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "n = 3.0 #Number of stacks or phases\n",
+ "P_a = 16.0 #Number of rotor teeth\n",
+ "P_b = 24.0 #Number of rotor poles\n",
+ "\n",
+ "#Calculation\n",
+ "alpha_a = 360/(n*P_a) #Stepping angle(degree/step) \n",
+ "alpha_b = 360/(n*P_b) #Stepping angle(degree/step)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Stepping angle , \u03b1 = %.1f\u00b0/step' %alpha_a)\n",
+ "print('Case(b): Stepping angle , \u03b1 = %.1f\u00b0/step' %alpha_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Stepping angle , \u03b1 = 7.5\u00b0/step\n",
+ "Case(b): Stepping angle , \u03b1 = 5.0\u00b0/step\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page number 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 50.0 #Number of rotor teeth\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = 90/P #Stepping length(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print('\u03b1 = %.1f\u00b0 ' %alpha)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\u03b1 = 1.8\u00b0 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page number 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "tou = 0.1 #Pole pitch of a double-sided primary LIM(m)\n",
+ "f = 60.0 #Frequency applied to the primary LIM(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "v_s = 2*f*tou #Synchronous velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print('Synchronous velocity , v_s = %.f m/s' %v_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous velocity , v_s = 12 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page number 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "v_s = 12.0 #Synchronous velocity(m/s)\n",
+ "v = 10.0 #Linear velocity of secondary sheet(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "s = (v_s-v)/v_s #Slip of the DSLIM\n",
+ "\n",
+ "#Result\n",
+ "print('Slip of the DSLIM , s = %.3f' %s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip of the DSLIM , s = 0.167\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_12.ipynb b/Electric_Machinery_and_Transformers/CHAP_12.ipynb
new file mode 100755
index 00000000..429927d2
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_12.ipynb
@@ -0,0 +1,1570 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 12: POWER, ENERGY, AND EFFICIENCY RELATIONS OF DC AND AC DYNAMOS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page number 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 10000.0 #Power rating of the shunt generator(W)\n",
+ "V = 230.0 #Voltage rating of the shunt generator(V)\n",
+ "S = 1750.0 #Speed of the shunt generator(rpm)\n",
+ "V_a = 245.0 #Voltage across armature(V)\n",
+ "I_a = 2.0 #Armature current(A)\n",
+ "R_f = 230.0 #Field resistance(ohm)\n",
+ "R_a = 0.2 #Armature resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Rotational_loss = V_a*I_a-(I_a**2*R_a) #Rotational losses at full load(W) \n",
+ "#Case(b)\n",
+ "V_t = V\n",
+ "I_L = P/V_t #Line current(A)\n",
+ "I_f = V/R_f #Field current(A)\n",
+ "Ia = I_f+I_L #Armature current(A)\n",
+ "armature_loss = Ia**2*R_a #Full-load armature loss(W)\n",
+ "V_f = V\n",
+ "field_loss = V_f*I_f #Full-load field loss(W)\n",
+ "#Case(c)\n",
+ "n = P/(P+Rotational_loss+(armature_loss+field_loss))*100 #Efficiency of the generator at rated load(%) \n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotational losses at full load , Rotational losses = %.1f W' %Rotational_loss)\n",
+ "print('Case(b): Full-load armature circuit loss , I_a^2*R_a = %.f W' %armature_loss)\n",
+ "print(' Field loss , V_f*I_f = %.f W' %field_loss)\n",
+ "print('Case(c): Efficiency of the generator at rated load , \u03b7 = %.1f percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotational losses at full load , Rotational losses = 489.2 W\n",
+ "Case(b): Full-load armature circuit loss , I_a^2*R_a = 396 W\n",
+ " Field loss , V_f*I_f = 230 W\n",
+ "Case(c): Efficiency of the generator at rated load , \u03b7 = 90.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page number 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 10000.0 #Power rating of the shunt generator(W)\n",
+ "Rotational_loss = 489.2 #Rotational loss at full load(W)\n",
+ "armature_loss = 396.0 #Full-load armature loss(W)\n",
+ "field_loss = 230.0 #Full-load field loss(W)\n",
+ "x1 = 1.0/4 #Fraction of full-load\n",
+ "x2 = 1.0/2 #Fraction of full-load\n",
+ "x3 = 3.0/4 #Fraction of full-load\n",
+ "x4 = 5.0/4 #Fraction of full-load\n",
+ "\n",
+ "#Calculation\n",
+ "n_a = (P*x1)/((P*x1)+Rotational_loss+(armature_loss*(x1**2)+field_loss))*100 #Efficiency of generator(%)\n",
+ "n_b = (P*x2)/((P*x2)+Rotational_loss+(armature_loss*(x2**2)+field_loss))*100 #Efficiency of generator(%)\n",
+ "n_c = (P*x3)/((P*x3)+Rotational_loss+(armature_loss*(x3**2)+field_loss))*100 #Efficiency of generator(%)\n",
+ "n_d = (P*x4)/((P*x4)+Rotational_loss+(armature_loss*(x4**2)+field_loss))*100 #Efficiency of generator(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Efficiency of the generator at 1/4 load , \u03b7 = %.1f percent' %n_a)\n",
+ "print('Case(b): Efficiency of the generator at 1/2 load , \u03b7 = %.1f percent' %n_b)\n",
+ "print('Case(c): Efficiency of the generator at 3/4 load , \u03b7 = %.1f percent' %n_c)\n",
+ "print('Case(d): Efficiency of the generator at 5/4 load , \u03b7 = %.1f percent' %n_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Efficiency of the generator at 1/4 load , \u03b7 = 77.1 percent\n",
+ "Case(b): Efficiency of the generator at 1/2 load , \u03b7 = 85.9 percent\n",
+ "Case(c): Efficiency of the generator at 3/4 load , \u03b7 = 88.8 percent\n",
+ "Case(d): Efficiency of the generator at 5/4 load , \u03b7 = 90.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3, Page number 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 240.0 #Voltage rating of the dc shunt motor(V)\n",
+ "hp = 25.0 #Power rating of the dc shunt motor(hp)\n",
+ "S = 1800.0 #Speed of the shunt generator(rpm)\n",
+ "I_L = 89.0 #Full-load line current(A)\n",
+ "R_a = 0.05 #Armature resistance(ohm)\n",
+ "R_f = 120.0 #Field circuit resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_f = V #Field voltage(V)\n",
+ "I_f = V_f/R_f #Field current(A)\n",
+ "I_a = I_L-I_f #Armature current(A)\n",
+ "V_a = V\n",
+ "E_c = V_a-I_a*R_a #Armature voltage to be applied to the motor(V)\n",
+ "#Case(b)\n",
+ "Ia = 4.2 #Armature current produced by E_c(A)\n",
+ "Va = E_c #Armature voltage(V)\n",
+ "P_r = Va*Ia #Stray power(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Armature voltage to be applied to the motor when motor is run light at 1800 rpm during stray power test , E_c = %.2f V' %E_c)\n",
+ "print('Case(b): Stray power when voltage in part(a) produces an armature current of 4.2 A at 1800 rpm , P_r = %.1f W' %P_r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Armature voltage to be applied to the motor when motor is run light at 1800 rpm during stray power test , E_c = 235.65 V\n",
+ "Case(b): Stray power when voltage in part(a) produces an armature current of 4.2 A at 1800 rpm , P_r = 989.7 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page number 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 600.0 #Voltage rating of the compound motor(V)\n",
+ "hp = 150.0 #Power rating of the compound motor(hp)\n",
+ "I_L = 205.0 #Full-load rated line current(A)\n",
+ "S = 1500.0 #Full-load speed of the compound generator(rpm)\n",
+ "R_sh = 300.0 #Shunt field resistance(ohm)\n",
+ "R_a = 0.05 #Armature resistance(ohm)\n",
+ "R_s = 0.1 #Series field resistance(ohm)\n",
+ "V_a = 570.0 #Applied voltage(V)\n",
+ "I_a = 6.0 #Armature current(A)\n",
+ "S_o = 1800.0 #No-load speed of the compound generator(rpm)\n",
+ "x1 = 1.0/4 #Fraction of full-load\n",
+ "x2 = 1.0/2 #Fraction of full-load\n",
+ "x3 = 3.0/4 #Fraction of full-load\n",
+ "x4 = 5.0/4 #Fraction of full-load\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Rot_losses = V_a*I_a #Rotational loss(W)\n",
+ "S_1 = S_o-300*x1 #Speed at 1/4 load(rpm)\n",
+ "Rot_losses_S_1 = (S_1/S)*Rot_losses #Rotational loss at speed S_1(W)\n",
+ "S_2 = S_o-300*x2 #Speed at 1/2 load(rpm)\n",
+ "Rot_losses_S_2 = (S_2/S)*Rot_losses #Rotational loss at speed S_2(W)\n",
+ "S_3 = S_o-300*x3 #Speed at 3/4 load(rpm)\n",
+ "Rot_losses_S_3 = (S_3/S)*Rot_losses #Rotational loss at speed S_3(W)\n",
+ "S_4 = S_o-300*x4 #Speed at 5/4 load(rpm)\n",
+ "Rot_losses_S_4 = (S_4/S)*Rot_losses #Rotational loss at speed S_4(W)\n",
+ "#Case(b)\n",
+ "I_sh = V/R_sh #Full-load shunt field current(A)\n",
+ "Ia = I_L-I_sh #Full-load armature current(A)\n",
+ "FL_variable_loss = Ia**2*(R_a+R_s) #Full-load variable electric loss(W)\n",
+ "x1_variable_loss = FL_variable_loss*x1**2 #Variable losses at 1/4 load(W)\n",
+ "x2_variable_loss = FL_variable_loss*x2**2 #Variable losses at 1/2 load(W)\n",
+ "x3_variable_loss = FL_variable_loss*x3**2 #Variable losses at 3/4 load(W)\n",
+ "x4_variable_loss = FL_variable_loss*x4**2 #Variable losses at 5/4 load(W)\n",
+ "#Case(c)\n",
+ "Input_FL = V*I_L #Input at full load(W)\n",
+ "Input_x1 = V*I_L*x1 #Input at 1/4 load(W)\n",
+ "Input_x2 = V*I_L*x2 #Input at 1/2 load(W)\n",
+ "Input_x3 = V*I_L*x3 #Input at 3/4 load(W)\n",
+ "Input_x4 = V*I_L*x4 #Input at 5/4 load(W)\n",
+ "Field_loss = V*I_sh #Field loss for each of the conditions of load(W)\n",
+ "Losses_FL = Field_loss+Rot_losses+FL_variable_loss #Total losses for full load(W)\n",
+ "Losses_1 = Field_loss+Rot_losses_S_1+x1_variable_loss #Total losses for 1/4 load(W)\n",
+ "Losses_2 = Field_loss+Rot_losses_S_2+x2_variable_loss #Total losses for 1/2 load(W)\n",
+ "Losses_3 = Field_loss+Rot_losses_S_3+x3_variable_loss #Total losses for 3/4 load(W)\n",
+ "Losses_4 = Field_loss+Rot_losses_S_4+x4_variable_loss #Total losses for 5/4 load(W)\n",
+ "n_FL = (Input_FL-Losses_FL)/Input_FL*100 #Efficiency for full load(%)\n",
+ "n_1 = (Input_x1-Losses_1)/Input_x1*100 #Efficiency for 1/4 load(%)\n",
+ "n_2 = (Input_x2-Losses_2)/Input_x2*100 #Efficiency for 1/2 load(%)\n",
+ "n_3 = (Input_x3-Losses_3)/Input_x3*100 #Efficiency for 3/4 load(%)\n",
+ "n_4 = (Input_x4-Losses_4)/Input_x4*100 #Efficiency for 5/4 load(%) \n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotational loss at full load = %.f W' %Rot_losses)\n",
+ "print(' Rotational loss at 1/4 times rated load = %.f W' %Rot_losses_S_1)\n",
+ "print(' Rotational loss at 1/2 times rated load = %.f W' %Rot_losses_S_2)\n",
+ "print(' Rotational loss at 3/4 times rated load = %.f W' %Rot_losses_S_3)\n",
+ "print(' Rotational loss at 5/4 times rated load = %.f W' %Rot_losses_S_4)\n",
+ "print('Case(b): Full-load variable electric losses = %.f W' %FL_variable_loss)\n",
+ "print(' Variable electric losses at 1/4 load = %.f W' %x1_variable_loss)\n",
+ "print(' Variable electric losses at 1/2 load = %.f W' %x2_variable_loss)\n",
+ "print(' Variable electric losses at 3/4 load = %.f W' %x3_variable_loss)\n",
+ "print(' Variable electric losses at 5/4 load = %.f W' %x4_variable_loss)\n",
+ "print('Case(c): Efficiency of motor at full load = %.1f percent' %n_FL)\n",
+ "print(' Efficiency of motor at 1/4 load = %.1f percent' %n_1)\n",
+ "print(' Efficiency of motor at 1/2 load = %.1f percent' %n_2)\n",
+ "print(' Efficiency of motor at 3/4 load = %.1f percent' %n_3)\n",
+ "print(' Efficiency of motor at 5/4 load = %.1f percent' %n_4)\n",
+ "print('Case(d): Table 12-2 Losses and Efficiencies for Ex. 12-4')\n",
+ "print('______________________________________________________________________________________________________________')\n",
+ "print('\\t Item \\t\\t\\t At 1/4 load \\t At 1/2 load \\t At 3/4 load \\t At Full load \\t At 5/4 load')\n",
+ "print('______________________________________________________________________________________________________________')\n",
+ "print('Input(watts)\\t\\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d' %(Input_x1,Input_x2,Input_x3,Input_FL,Input_x4))\n",
+ "print('Field loss(watts)\\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d' %(Field_loss,Field_loss,Field_loss,Field_loss,Field_loss))\n",
+ "print('Rotational losses,')\n",
+ "print(' From part(a) (watts)\\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d' %(Rot_losses_S_1,Rot_losses_S_2,Rot_losses_S_3,Rot_losses,Rot_losses_S_4))\n",
+ "print('Variable electric losses,')\n",
+ "print(' From part(b) (watts)\\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d' %(x1_variable_loss,x2_variable_loss,x3_variable_loss,FL_variable_loss,x4_variable_loss))\n",
+ "print('Total of all losses(watts)\\t %d \\t\\t %d \\t\\t %d \\t\\t %d \\t\\t %d' %(Losses_1,Losses_2,Losses_3,Losses_FL,Losses_4))\n",
+ "print('______________________________________________________________________________________________________________')\n",
+ "print('Efficiency \u03b7(percent)\\t\\t %.1f \\t\\t %.1f \\t\\t %.1f \\t\\t %.1f \\t\\t %.1f' %(n_1,n_2,n_3,n_FL,n_4))\n",
+ "print('______________________________________________________________________________________________________________')\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotational loss at full load = 3420 W\n",
+ " Rotational loss at 1/4 times rated load = 3933 W\n",
+ " Rotational loss at 1/2 times rated load = 3762 W\n",
+ " Rotational loss at 3/4 times rated load = 3591 W\n",
+ " Rotational loss at 5/4 times rated load = 3249 W\n",
+ "Case(b): Full-load variable electric losses = 6181 W\n",
+ " Variable electric losses at 1/4 load = 386 W\n",
+ " Variable electric losses at 1/2 load = 1545 W\n",
+ " Variable electric losses at 3/4 load = 3477 W\n",
+ " Variable electric losses at 5/4 load = 9658 W\n",
+ "Case(c): Efficiency of motor at full load = 91.2 percent\n",
+ " Efficiency of motor at 1/4 load = 82.1 percent\n",
+ " Efficiency of motor at 1/2 load = 89.4 percent\n",
+ " Efficiency of motor at 3/4 load = 91.0 percent\n",
+ " Efficiency of motor at 5/4 load = 90.8 percent\n",
+ "Case(d): Table 12-2 Losses and Efficiencies for Ex. 12-4\n",
+ "______________________________________________________________________________________________________________\n",
+ "\t Item \t\t\t At 1/4 load \t At 1/2 load \t At 3/4 load \t At Full load \t At 5/4 load\n",
+ "______________________________________________________________________________________________________________\n",
+ "Input(watts)\t\t\t 30750 \t\t 61500 \t\t 92250 \t\t 123000 \t\t 153750\n",
+ "Field loss(watts)\t\t 1200 \t\t 1200 \t\t 1200 \t\t 1200 \t\t 1200\n",
+ "Rotational losses,\n",
+ " From part(a) (watts)\t\t 3932 \t\t 3762 \t\t 3591 \t\t 3420 \t\t 3249\n",
+ "Variable electric losses,\n",
+ " From part(b) (watts)\t\t 386 \t\t 1545 \t\t 3477 \t\t 6181 \t\t 9658\n",
+ "Total of all losses(watts)\t 5519 \t\t 6507 \t\t 8268 \t\t 10801 \t\t 14107\n",
+ "______________________________________________________________________________________________________________\n",
+ "Efficiency \u03b7(percent)\t\t 82.1 \t\t 89.4 \t\t 91.0 \t\t 91.2 \t\t 90.8\n",
+ "______________________________________________________________________________________________________________\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page number 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 10000.0 #Power rating of the shunt generator(W)\n",
+ "V = 230.0 #Voltage rating of the shunt generator(V)\n",
+ "S = 1750.0 #Speed of the shunt generator(rpm)\n",
+ "V_a = 245.0 #Voltage across armature(V)\n",
+ "I_a = 2.0 #Armature current(A)\n",
+ "R_a = 0.2 #Armature resistance(ohm)\n",
+ "P_r = 489.2 #Shunt generator rotational losses(W)\n",
+ "Vf_If = 230.0 #Shunt field circuit loss(W)\n",
+ "I_a_rated = 44.5 #Rated armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "I_a = ((Vf_If+P_r)/R_a)**0.5 #Armature current at which max efficiency occurs(A)\n",
+ "LF = I_a/I_a_rated #Load fraction\n",
+ "LF_percent = LF*100 #Load fraction(%)\n",
+ "P_k = Vf_If+P_r\n",
+ "n_max = P*LF/(P*LF+(Vf_If+P_r)+P_k)*100 #Maximum efficiency(%)\n",
+ "LF_d = (P_k/(I_a_rated**2*R_a))**0.5 #Load fraction from fixed losses and rated variable losses\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Armature current at which maximum efficiency occurs , I_a = %.f A' %I_a)\n",
+ "print('Case(b): Load fraction , L.F = %.1f percent = %.3f*rated' %(LF_percent,LF))\n",
+ "print('Case(c): Maximum efiiciency , \u03b7_max = %.2f percent' %n_max)\n",
+ "print('Case(d): Load fraction from fixed losses and rated variable losses , L.F = %.3f*rated' %LF_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Armature current at which maximum efficiency occurs , I_a = 60 A\n",
+ "Case(b): Load fraction , L.F = 134.8 percent = 1.348*rated\n",
+ "Case(c): Maximum efiiciency , \u03b7_max = 90.36 percent\n",
+ "Case(d): Load fraction from fixed losses and rated variable losses , L.F = 1.348*rated\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, Page number 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 240.0 #Voltage rating of dc shunt motor(V)\n",
+ "hp = 25.0 #Power rating of dc shunt motor(hp)\n",
+ "S = 1100.0 #Speed of the dc shunt motor(rpm)\n",
+ "R_a = 0.15 #Armture resistance(ohm)\n",
+ "R_f = 80.0 #Field resistance(ohm)\n",
+ "I_L = 89.0 #Rated line current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "V_f = V #Voltage across field winding(V)\n",
+ "I_f = V_f/R_f #Field current(A)\n",
+ "I_a = I_L-I_f #Armature current(A)\n",
+ "P_o = hp*746 #Power rating of dc shunt motor(W)\n",
+ "V_a = V #Voltage across armature(V)\n",
+ "E_c_fl = V_a-I_a*R_a #Back EMF(V)\n",
+ "E_c = E_c_fl\n",
+ "P_d = E_c*I_a #Power developed by the armature(W)\n",
+ "P_r = P_d-P_o #Full-load rotational losses(W)\n",
+ "P_in = V*I_L #Input power(W)\n",
+ "n = P_o/P_in*100 #Full-load efficiency(%) \n",
+ "P_k = V_f*I_f+P_r #Total constant losses(W)\n",
+ "Ia = (P_k/R_a)**0.5 #Armature current for maximum efficiency(A)\n",
+ "I_a_rated = I_a\n",
+ "LF = Ia/I_a_rated #Load fraction at which max efficiency is produced\n",
+ "rated_input = V*I_L \n",
+ "n_max = ((LF*rated_input)-2*P_k)/(LF*rated_input)*100 #Maximum efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Power developed by the armature , P_d = %.1f W' %P_d)\n",
+ "print('Case(b): Full-load rotational losses , P_r = %.1f W' %P_r)\n",
+ "print('Case(c): Full-laod efficiency , \u03b7 = %.1f percent' %n)\n",
+ "print('Case(d): Total constant losses , P_k = %.1f W' %P_k)\n",
+ "print('Case(e): Armature current from maximum efficiency , I_a = %.1f A' %Ia)\n",
+ "print('Case(f): Load fraction at which maximum efficiency is produced , L.F = %.1f ' %LF)\n",
+ "print('Case(g): Maximum efficiency , \u03b7_max = %.1f percent' %n_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Power developed by the armature , P_d = 19530.6 W\n",
+ "Case(b): Full-load rotational losses , P_r = 880.6 W\n",
+ "Case(c): Full-laod efficiency , \u03b7 = 87.3 percent\n",
+ "Case(d): Total constant losses , P_k = 1600.6 W\n",
+ "Case(e): Armature current from maximum efficiency , I_a = 103.3 A\n",
+ "Case(f): Load fraction at which maximum efficiency is produced , L.F = 1.2 \n",
+ "Case(g): Maximum efficiency , \u03b7_max = 87.5 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 240.0 #Voltage rating of dc shunt motor(V)\n",
+ "hp = 25.0 #Power rating of dc shunt motor(hp)\n",
+ "S = 1100.0 #Speed of the dc shunt motor(rpm)\n",
+ "R_a = 0.15 #Armture resistance(ohm)\n",
+ "R_f = 80.0 #Field resistance(ohm)\n",
+ "I_L = 89.0 #Rated line current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "V_f = V #Voltage across field winding(V)\n",
+ "I_f = V_f/R_f #Field current(A)\n",
+ "I_a = I_L-I_f #Armature current(A)\n",
+ "P_o = hp*746 #Power rating of dc shunt motor(W)\n",
+ "V_a = V #Voltage across armature(V)\n",
+ "E_c_fl = V_a-I_a*R_a #Back EMF(V)\n",
+ "E_c = E_c_fl\n",
+ "P_d = E_c*I_a #Power developed by the armature(W)\n",
+ "P_r = P_d-P_o #Full-load rotational losses(W)\n",
+ "P_in = V*I_L #Input power(W)\n",
+ "n = P_o/P_in*100 #Full-load efficiency(%) \n",
+ "P_k = V_f*I_f+P_r #Total constant losses(W)\n",
+ "Ia = (P_k/R_a)**0.5 #Armature current for maximum efficiency(A)\n",
+ "I_a_rated = I_a\n",
+ "LF = Ia/I_a_rated #Load fraction at which max efficiency is produced\n",
+ "rated_input = V*I_L \n",
+ "n_max = ((LF*rated_input)-2*P_k)/(LF*rated_input)*100 #Maximum efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Power developed by the armature , P_d = %.1f W' %P_d)\n",
+ "print('Case(b): Full-load rotational losses , P_r = %.1f W' %P_r)\n",
+ "print('Case(c): Full-laod efficiency , \u03b7 = %.1f percent' %n)\n",
+ "print('Case(d): Total constant losses , P_k = %.1f W' %P_k)\n",
+ "print('Case(e): Armature current from maximum efficiency , I_a = %.1f A' %Ia)\n",
+ "print('Case(f): Load fraction at which maximum efficiency is produced , L.F = %.1f ' %LF)\n",
+ "print('Case(g): Maximum efficiency , \u03b7_max = %.1f percent' %n_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Power developed by the armature , P_d = 19530.6 W\n",
+ "Case(b): Full-load rotational losses , P_r = 880.6 W\n",
+ "Case(c): Full-laod efficiency , \u03b7 = 87.3 percent\n",
+ "Case(d): Total constant losses , P_k = 1600.6 W\n",
+ "Case(e): Armature current from maximum efficiency , I_a = 103.3 A\n",
+ "Case(f): Load fraction at which maximum efficiency is produced , L.F = 1.2 \n",
+ "Case(g): Maximum efficiency , \u03b7_max = 87.5 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, Page number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 240.0 #Voltage rating of dc shunt motor(V)\n",
+ "hp = 5.0 #Power rating of dc shunt motor(hp)\n",
+ "S_fl = 1100.0 #Speed of the dc shunt motor(rpm)\n",
+ "R_a = 0.4 #Armture resistance(ohm)\n",
+ "R_f = 240.0 #Field resistance(ohm)\n",
+ "n = 0.75 #Full-load efficiency\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_L = V #Load voltage(V)\n",
+ "P_o = hp*746 #Power rating of dc shunt motor(W)\n",
+ "I_L = P_o/(n*V_L) #Rated input line current(A)\n",
+ "V_f = V #Voltage across field winding(V)\n",
+ "I_f = V_f/R_f #Field current(A)\n",
+ "I_a = I_L-I_f #Armature current(A)\n",
+ "#Case(b)\n",
+ "V_a = V #Voltage across armature(V)\n",
+ "E_c_fl = V_a-I_a*R_a #Back EMF(V)\n",
+ "E_c = E_c_fl\n",
+ "P_d = E_c*I_a #Power developed in the armature at rated load(W)\n",
+ "#Case(c)\n",
+ "P_r = P_d-P_o #Rotational losses at rated load(W)\n",
+ "#Case(d)\n",
+ "P_o_nl = 0 #At no-load\n",
+ "P_r_nl = P_r #Rotational losses at no load(W)\n",
+ "P_d_nl = P_r_nl\n",
+ "#Case(e)\n",
+ "I_a_nl = P_d_nl/V_a #No-load armature current(A)\n",
+ "#Case(f)\n",
+ "E_c_nl = V #No-load voltage(V)\n",
+ "E_c_fl = E_c #Full-load voltage(V)\n",
+ "S_nl = E_c_nl/E_c_fl*S_fl #No-load speed(rpm)\n",
+ "#Case(g)\n",
+ "SR = (S_nl-S_fl)/S_fl*100 #Speed regulation(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rated input line current , I_L = %.2f A' %I_L)\n",
+ "print(' Rated armature current , I_a = %.2f A' %I_a)\n",
+ "print('Case(b): Power developed in the armature at rated load , P_d = %d W' %P_d)\n",
+ "print('Case(c): Rotational losses at rated load , P_r = %d W' %P_r)\n",
+ "print('Case(d): Rotational losses at no load , P_r = %d W' %P_r_nl)\n",
+ "print('Case(e): No-load armature current , I_a(nl) = %.2f A' %I_a_nl)\n",
+ "print('Case(f): No-load speed , S_nl = %.f rpm' %S_nl)\n",
+ "print('Case(g): Speed regulation of the motor , SR = %.1f percent' %SR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rated input line current , I_L = 20.72 A\n",
+ " Rated armature current , I_a = 19.72 A\n",
+ "Case(b): Power developed in the armature at rated load , P_d = 4577 W\n",
+ "Case(c): Rotational losses at rated load , P_r = 847 W\n",
+ "Case(d): Rotational losses at no load , P_r = 847 W\n",
+ "Case(e): No-load armature current , I_a(nl) = 3.53 A\n",
+ "Case(f): No-load speed , S_nl = 1137 rpm\n",
+ "Case(g): Speed regulation of the motor , SR = 3.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, Page number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 240.0 #Voltage rating of dc shunt motor(V)\n",
+ "I_L = 55.0 #Rated line current(A) \n",
+ "S = 1200.0 #Speed of the dc shunt motor(rpm)\n",
+ "P_r = 406.4 #Rotational losses at rated load(W)\n",
+ "R_f = 120.0 #Field resistance(ohm)\n",
+ "R_a = 0.4 #Armture resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_f = V #Voltage across field winding(V)\n",
+ "I_f = V_f/R_f #Field current(A)\n",
+ "I_a = I_L-I_f #Armature current(A)\n",
+ "V_a = V #Voltage across armature(V)\n",
+ "E_c = V_a-I_a*R_a #Back EMF(V)\n",
+ "P_d = E_c*I_a #Power developed by the armature at rated load(W)\n",
+ "#Case(b)\n",
+ "P_o = P_d-P_r #Rated output power(W)\n",
+ "P_o_hp = P_o/746 #Rated output power(hp)\n",
+ "#Case(c)\n",
+ "T_o = P_o_hp*5252/S #Rated output torque(lb-ft)\n",
+ "T_o_Nm = T_o*1.356 #Rated output torque(N-m)\n",
+ "#Case(d)\n",
+ "P_in = V*I_L #Input power(W)\n",
+ "n = (P_o/P_in)*100 #Efficiency at rated load(%)\n",
+ "#Case(e)\n",
+ "P_o_nl = 0 #At no-load\n",
+ "P_r_nl = P_r #Rotational losses at no load(W)\n",
+ "P_d_nl = P_r_nl\n",
+ "I_a_nl = P_r_nl/V_a #No-load armature current(A)\n",
+ "E_c_nl = V #No-load voltage(V)\n",
+ "E_c_fl = E_c #Full-load voltage(V)\n",
+ "S_fl = S #Full-load speed(rpm)\n",
+ "S_nl = E_c_nl/E_c_fl*S_fl #No-load speed(rpm)\n",
+ "#Case(f)\n",
+ "SR = (S_nl-S_fl)/S_fl*100 #Speed regulation(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Counter EMF , E_c = %.1f V' %E_c)\n",
+ "print(' Power developed at rated load , P_d = %.1f W' %P_d)\n",
+ "print('Case(b): Rated output power , P_o = %d W' %P_o)\n",
+ "print(' Rated output power , P_o = %d hp' %P_o_hp)\n",
+ "print('Case(c): Rated output torque , T_o = %.2f lb-ft' %T_o)\n",
+ "print(' Rated output torque , T_o = %d N-m' %T_o_Nm)\n",
+ "print('Case(d): Efficiency at rated load , \u03b7 = %.1f percent' %n)\n",
+ "print('Case(e): No-load armature current , I_a(nl) = %.3f A' %I_a_nl)\n",
+ "print(' No-load speed , S_nl = %.f rpm' %S_nl)\n",
+ "print('Case(e): Speed regulation , SR = %.1f percent' %SR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Counter EMF , E_c = 218.8 V\n",
+ " Power developed at rated load , P_d = 11596.4 W\n",
+ "Case(b): Rated output power , P_o = 11190 W\n",
+ " Rated output power , P_o = 15 hp\n",
+ "Case(c): Rated output torque , T_o = 65.65 lb-ft\n",
+ " Rated output torque , T_o = 89 N-m\n",
+ "Case(d): Efficiency at rated load , \u03b7 = 84.8 percent\n",
+ "Case(e): No-load armature current , I_a(nl) = 1.693 A\n",
+ " No-load speed , S_nl = 1316 rpm\n",
+ "Case(e): Speed regulation , SR = 9.7 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10, Page number 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 125.0 #Voltage rating of generator(V)\n",
+ "P_o = 12500.0 #Power rating of generator(W)\n",
+ "P_hp = 20.0 #Power rating of motor(hp)\n",
+ "R_a = 0.1 #Armature resistance(ohm)\n",
+ "R_f = 62.5 #Field resistance(ohm)\n",
+ "P_var = 1040.0 #Rated variable electric loss(W)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "P_in = P_hp*746 #Power input to generator(W)\n",
+ "n = P_o/P_in*100 #Efficiency(%)\n",
+ "#Case(b)\n",
+ "V_f = V #Voltage across shunt field winding(V)\n",
+ "P_sh_loss = V_f**2/R_f #Shunt field loss(W)\n",
+ "#Case(c)\n",
+ "V_L = V\n",
+ "I_L = P_o/V_L #Line current(A)\n",
+ "I_f = V_f/R_f #Field current(A)\n",
+ "I_a = I_L+I_f #Armature current(A)\n",
+ "E_g = V_L+I_a*R_a #Generated EMF(V)\n",
+ "P_d1 = E_g*I_a #Generated electric power(W)\n",
+ "P_f = V_f*I_f\n",
+ "P_d2 = P_o+P_var+P_f #Generated electric power(W)\n",
+ "#Case(d)\n",
+ "P_d = P_d1\n",
+ "P_r = P_in-P_d #Rotational power loss(W)\n",
+ "#Case(e)\n",
+ "P_k = P_r+V_f*I_f #Constant losses(W)\n",
+ "Ia = (P_k/R_a)**0.5 #Armature current for max efficiency(A)\n",
+ "#Case(f)\n",
+ "I_a_rated = I_a #Rated armature current(A)\n",
+ "LF = Ia/I_a_rated #Load fraction\n",
+ "#Case(g)\n",
+ "rated_output = 12500 #Rated output(W)\n",
+ "n_max = (LF*rated_output)/((LF*rated_output)+(2*P_k))*100 #Maximum efficiency\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Efficiency , \u03b7 = %.f percent' %n)\n",
+ "print('Case(b): Shunt field loss = %d W' %P_sh_loss)\n",
+ "print('Case(c): Generated electric power , P_d = %d W (Method 1)' %P_d1)\n",
+ "print(' Generated electric power , P_d = %d W (Method 2)' %P_d2)\n",
+ "print('Case(d): Rotational power loss , P_r = %.f W' %P_r)\n",
+ "print('Case(e): Armature current for maximum efficiency , I_a = %.1f A' %Ia)\n",
+ "print('Case(f): Load fraction for maximum efficiency , L.F = %.2f ' %LF)\n",
+ "print('Case(g): Maximum efficiency , \u03b7 = %.2f percent' %n_max)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Efficiency , \u03b7 = 84 percent\n",
+ "Case(b): Shunt field loss = 250 W\n",
+ "Case(c): Generated electric power , P_d = 13790 W (Method 1)\n",
+ " Generated electric power , P_d = 13790 W (Method 2)\n",
+ "Case(d): Rotational power loss , P_r = 1130 W\n",
+ "Case(e): Armature current for maximum efficiency , I_a = 117.5 A\n",
+ "Case(f): Load fraction for maximum efficiency , L.F = 1.15 \n",
+ "Case(g): Maximum efficiency , \u03b7 = 83.91 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page number 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 125.0 #Voltage rating of generator(V)\n",
+ "P_o = 12500.0 #Power rating of generator(W)\n",
+ "P_hp = 20.0 #Power rating of motor(hp)\n",
+ "R_a = 0.1 #Armature resistance(ohm)\n",
+ "R_f = 62.5 #Field resistance(ohm)\n",
+ "P_var = 1040.0 #Rated variable electric loss(W)\n",
+ "P_k = 1380.0 #Constant losses(W)\n",
+ "LF_a = 25.0/100 #At rated output\n",
+ "LF_b = 50.0/100 #At rated output\n",
+ "LF_c = 75.0/100 #At rated output\n",
+ "LF_d = 125.0/100 #At rated output\n",
+ "\n",
+ "#Calculation\n",
+ "output = P_o\n",
+ "P_a_rated = P_var\n",
+ "n_a = output*LF_a/(output*LF_a+P_k+(LF_a**2)*P_a_rated)*100 #Efficiency of dc shunt generator(%)\n",
+ "n_b = output*LF_b/(output*LF_b+P_k+(LF_b**2)*P_a_rated)*100 #Efficiency of dc shunt generator(%)\n",
+ "n_c = output*LF_c/(output*LF_c+P_k+(LF_c**2)*P_a_rated)*100 #Efficiency of dc shunt generator(%)\n",
+ "n_d = output*LF_d/(output*LF_d+P_k+(LF_d**2)*P_a_rated)*100 #Efficiency of dc shunt generator(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Efficiency of dc generator at 25 percent rated output , \u03b7 = %.1f percent' %n_a)\n",
+ "print('Case(b): Efficiency of dc generator at 50 percent rated output , \u03b7 = %.1f percent' %n_b)\n",
+ "print('Case(c): Efficiency of dc generator at 75 percent rated output , \u03b7 = %.1f percent' %n_c)\n",
+ "print('Case(d): Efficiency of dc generator at 125 percent rated output , \u03b7 = %.2f percent' %n_d)\n",
+ "print('\\nNOTE: Calculation error in textbook for case(b)')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Efficiency of dc generator at 25 percent rated output , \u03b7 = 68.4 percent\n",
+ "Case(b): Efficiency of dc generator at 50 percent rated output , \u03b7 = 79.2 percent\n",
+ "Case(c): Efficiency of dc generator at 75 percent rated output , \u03b7 = 82.7 percent\n",
+ "Case(d): Efficiency of dc generator at 125 percent rated output , \u03b7 = 83.87 percent\n",
+ "\n",
+ "NOTE: Calculation error in textbook for case(b)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page number 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 100.0 #Rating of the alternator(kVA)\n",
+ "V = 1100.0 #Rated voltage of the alternator(V)\n",
+ "I_a_nl = 8.0 #No-load armature current(A)\n",
+ "P_in_nl = 6000.0 #No-load Power input to the armature(W)\n",
+ "V_oc = 1350.0 #Open-circuit line voltage(V)\n",
+ "I_f = 18.0 #Field current(A)\n",
+ "V_f = 125.0 #Voltage across field winding(V)\n",
+ "R_a = 0.45 #Armature resistance(ohm/phase)\n",
+ "I_a_rated = 52.5 #Rated armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "P_r = P_in_nl-3*(I_a_nl)**2*R_a #Rotational loss of synchronous dynamo(W)\n",
+ "#Case(b)\n",
+ "P_f = V_f*I_f #Field copper loss(W)\n",
+ "#Case(c)\n",
+ "P_k = P_r+P_f #Fixed losses at rated synchronous speed(W)\n",
+ "#Case(d)\n",
+ "P_cu = 3*(I_a_rated)**2*R_a #Electric armature copper loss at rated load(W)\n",
+ "LF1 = 1.0/4 #Load fraction\n",
+ "LF2 = 1.0/2 #Load fraction\n",
+ "LF3 = 3.0/4 #Load fraction\n",
+ "P_cu_LF1 = P_cu*(LF1)**2 #Electric armature copper loss at 1/4 load(W)\n",
+ "P_cu_LF2 = P_cu*(LF2)**2 #Electric armature copper loss at 1/2 load(W)\n",
+ "P_cu_LF3 = P_cu*(LF3)**2 #Electric armature copper loss at 3/4 load(W)\n",
+ "#Case(e)\n",
+ "PF = 0.9 #Power factor lagging\n",
+ "n_1 = (LF1*kVA*1000*PF)/((LF1*kVA*1000*PF)+P_k+P_cu_LF1)*100 #Efficiency at 1/4 load\n",
+ "n_2 = (LF2*kVA*1000*PF)/((LF2*kVA*1000*PF)+P_k+P_cu_LF2)*100 #Efficiency at 1/2 load\n",
+ "n_3 = (LF3*kVA*1000*PF)/((LF3*kVA*1000*PF)+P_k+P_cu_LF3)*100 #Efficiency at 3/4 load\n",
+ "n_fl = (kVA*1000*PF)/((kVA*1000*PF)+P_k+P_cu)*100 #Efficiency at rated load\n",
+ "#Case(f)\n",
+ "I_a_max = (P_k/(3*R_a))**0.5 #Armature current for max efficiency at 0.9 PF lagging(A)\n",
+ "LF = I_a_max/I_a_rated #Load fraction for max efficiency\n",
+ "n_max = (LF*kVA*1000*PF)/((LF*kVA*1000*PF)+2*P_k)*100 #Max Efficiency 0.9 PF lagging(%) \n",
+ "#Case(g)\n",
+ "P_o = kVA*PF #Output power at 0.9 PF lagging(kW)\n",
+ "I_a = I_a_rated\n",
+ "P_d = P_o+(3*(I_a)**2*R_a/1000)+(V_f*I_f/1000) #Armature power developed at 0.9 PF lagging at full-load(kW)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotational loss of the synchronous dynamo , P_r = %.f W' %P_r)\n",
+ "print('Case(b): Field copper loss , P_f = %.f W' %P_f)\n",
+ "print('Case(c): Fixed losses at rated synchronous speed , P_k = %.f W' %P_k)\n",
+ "print('Case(d): Electric armature copper loss at 1/4 rated load , P_cu = %.1f W' %P_cu_LF1)\n",
+ "print(' Electric armature copper loss at 1/2 rated load , P_cu = %.1f W' %P_cu_LF2)\n",
+ "print(' Electric armature copper loss at 3/4 rated load , P_cu = %.f W' %P_cu_LF3)\n",
+ "print(' Electric armature copper loss at rated load , P_cu = %.f W' %P_cu)\n",
+ "print('Case(e): Efficiency at 1/4 rated load , \u03b7 = %.1f percent' %n_1)\n",
+ "print(' Efficiency at 1/2 rated load , \u03b7 = %.1f percent' %n_2)\n",
+ "print(' Efficiency at 3/4 rated load , \u03b7 = %.1f percent' %n_3)\n",
+ "print(' Efficiency at rated load , \u03b7 = %.1f percent' %n_fl)\n",
+ "print('Case(f): Maximum efficiency at 0.9 PF lagging , \u03b7_max = %.1f percent' %n_max)\n",
+ "print('Case(g): Armature power developed at 0.9 PF lagging at full load , P_d = %.2f kW' %P_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotational loss of the synchronous dynamo , P_r = 5914 W\n",
+ "Case(b): Field copper loss , P_f = 2250 W\n",
+ "Case(c): Fixed losses at rated synchronous speed , P_k = 8164 W\n",
+ "Case(d): Electric armature copper loss at 1/4 rated load , P_cu = 232.6 W\n",
+ " Electric armature copper loss at 1/2 rated load , P_cu = 930.2 W\n",
+ " Electric armature copper loss at 3/4 rated load , P_cu = 2093 W\n",
+ " Electric armature copper loss at rated load , P_cu = 3721 W\n",
+ "Case(e): Efficiency at 1/4 rated load , \u03b7 = 72.8 percent\n",
+ " Efficiency at 1/2 rated load , \u03b7 = 83.2 percent\n",
+ " Efficiency at 3/4 rated load , \u03b7 = 86.8 percent\n",
+ " Efficiency at rated load , \u03b7 = 88.3 percent\n",
+ "Case(f): Maximum efficiency at 0.9 PF lagging , \u03b7_max = 89.1 percent\n",
+ "Case(g): Armature power developed at 0.9 PF lagging at full load , P_d = 95.97 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page number 430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 1000.0 #Rating of the alternator(kVA)\n",
+ "V = 2300.0 #Rated voltage of the alternator(V)\n",
+ "hp = 100.0 #Power rating of the dc motor(hp)\n",
+ "V_motor = 240.0 #Rated voltage of the motor(V)\n",
+ "P_1 = 7.5 #Motor output(kW). TEST 1\n",
+ "P_2 = 16.0 #Motor output(kW). TEST 2\n",
+ "VfIf = 14.0 #Field losses(kW)\n",
+ "P_f = VfIf #Field losses(kW)\n",
+ "P_3 = 64.2 #Motor output(kW). TEST 3\n",
+ "I_sc = 251.0 #Short circuit current(A)\n",
+ "V_L = 1443.0 #Line voltage(V). TEST 4\n",
+ "R_a = 0.3 #Armature resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "P_r = P_2 #Rotational losses(kW). From TEST 2\n",
+ "#Case(b)\n",
+ "P_cu = P_3-P_1 #Full-load armature copper loss(kW)\n",
+ "#Case(c)\n",
+ "E_gL = V_L #Generated line voltage(V)\n",
+ "Z_s = (E_gL/3**0.5)/I_sc #Synchronous impedance of the armature(ohm)\n",
+ "#Case(d)\n",
+ "X_s = (Z_s**2-R_a**2)**0.5 #Synchronous reactance of the armature(ohm)\n",
+ "#Case(e)\n",
+ "PF = 0.8 #Lagging power factor\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "V_p = V/3**0.5 #Phase voltage(V)\n",
+ "I_a = I_sc #Armature current(A)\n",
+ "E_gp = complex((V_p*PF+I_a*R_a),(V_p*sin_theta+I_a*X_s)) #Generated phase voltage(V)\n",
+ "V_nl = abs(E_gp) #No-load voltage(V)\n",
+ "V_fl = V_p #Full-load voltage(V)\n",
+ "VR = (V_nl-V_fl)/V_fl*100 #Alternator voltage regulation(%)\n",
+ "#Case(f)\n",
+ "LF = 1.0 #Load fraction\n",
+ "n_rated = (LF*kVA*PF)/((LF*kVA*PF)+(P_f+P_r)+P_cu)*100 #Efficiency at 0.8 lagging PF(%)\n",
+ "#Case(g)\n",
+ "P_k = (P_f+P_r) #Constant losses(kW)\n",
+ "L_F = (P_k/P_cu)**0.5 #Load fraction for max efficiency\n",
+ "n_max = (L_F*kVA*PF)/((L_F*kVA*PF)+2*P_k)*100 #Max Efficiency at 0.8 lagging PF(%)\n",
+ "#Case(h)\n",
+ "PF_h = 1.0 #Unity PF\n",
+ "P_o = kVA*PF_h #Output power(kW)\n",
+ "P_d = P_o+(3*(I_a)**2*R_a/1000)+(VfIf) #Armature power developed at rated-load unity PF(kW) \n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotational losses , P_r = %.1f kW' %P_r)\n",
+ "print('Case(b): Full-load armature copper loss , P_cu = %.1f kW' %P_cu)\n",
+ "print('Case(c): Synchronous impedance of the armature , Z_s = %.2f \u03a9' %Z_s)\n",
+ "print('Case(d): Synchronous reactance of the armature , jX_s = %.2f \u03a9' %X_s)\n",
+ "print('Case(e): Alternator voltage regulation at 0.8 PF lagging , VR = %.2f percent' %VR)\n",
+ "print('Case(f): Alternator efficiency at 0.8 PF lagging at rated load , \u03b7_rated = %.1f percent' %n_rated)\n",
+ "print('Case(g): Maximum efficiency at 0.8 PF lagging , \u03b7_max = %.2f percent' %n_max)\n",
+ "print('Case(h): Power developed by the alternator armature at rated load, unity PF , P_d = %.f kW' %P_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotational losses , P_r = 16.0 kW\n",
+ "Case(b): Full-load armature copper loss , P_cu = 56.7 kW\n",
+ "Case(c): Synchronous impedance of the armature , Z_s = 3.32 \u03a9\n",
+ "Case(d): Synchronous reactance of the armature , jX_s = 3.31 \u03a9\n",
+ "Case(e): Alternator voltage regulation at 0.8 PF lagging , VR = 49.47 percent\n",
+ "Case(f): Alternator efficiency at 0.8 PF lagging at rated load , \u03b7_rated = 90.2 percent\n",
+ "Case(g): Maximum efficiency at 0.8 PF lagging , \u03b7_max = 90.65 percent\n",
+ "Case(h): Power developed by the alternator armature at rated load, unity PF , P_d = 1071 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page number 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in Induction motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V = 220.0 #Rated voltage of IM(V)\n",
+ "hp_IM = 5.0 #Power rating of IM(hp)\n",
+ "PF = 0.9 #Power factor\n",
+ "I_L = 16.0 #Line current(A)\n",
+ "S = 1750.0 #Speed of IM(rpm)\n",
+ "I_nl = 6.5 #No-load line current(A)\n",
+ "V_nl = 220.0 #No-load line voltage(V)\n",
+ "P_nl = 300.0 #No-load power reading(W)\n",
+ "I_br = 16.0 #Blocked rotor line current(A)\n",
+ "V_br = 50.0 #Blocked rotor voltage(V)\n",
+ "P_br = 800.0 #Blocked rotor power reading(W)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "P_cu = P_br #Full-load equivalent copper loss(W)\n",
+ "I_1 = I_br #Primary current(A)\n",
+ "R_e1 = P_cu/(3.0/2*I_1**2) #Equivalent total resistance of IM(ohm) \n",
+ "#Case(b)\n",
+ "P_in = P_nl #Input power to IM(W)\n",
+ "I1 = I_nl #Input current(A)\n",
+ "P_r = P_in-(3.0/2*I1**2*R_e1) #Rotational losses(W)\n",
+ "#Case(c)\n",
+ "LF1 = 1.0/4 #Load fraction\n",
+ "LF2 = 1.0/2 #Load fraction\n",
+ "LF3 = 3.0/4 #Load fraction\n",
+ "LF4 = 5.0/4 #Load fraction\n",
+ "P_cu_LF1 = LF1**2*P_cu #Equivalent copper loss at 1/4 rated-load(W)\n",
+ "P_cu_LF2 = LF2**2*P_cu #Equivalent copper loss at 1/2 rated-load(W)\n",
+ "P_cu_LF3 = LF3**2*P_cu #Equivalent copper loss at 3/4 rated-load(W)\n",
+ "P_cu_LF4 = LF4**2*P_cu #Equivalent copper loss at 5/4 rated-load(W)\n",
+ "#Case(d)\n",
+ "Full_load_input = 3**0.5*V*I_L*PF #Full-load input(W)\n",
+ "n_rated = (Full_load_input-(P_r+P_cu))/(Full_load_input)*100 #Efficiency at rated load(%)\n",
+ "n_LF1 = (Full_load_input*LF1-(P_r+P_cu_LF1))/(Full_load_input*LF1)*100 #Efficiency at 1/4 rated load(%)\n",
+ "n_LF2 = (Full_load_input*LF2-(P_r+P_cu_LF2))/(Full_load_input*LF2)*100 #Efficiency at 1/2 rated load(%)\n",
+ "n_LF3 = (Full_load_input*LF3-(P_r+P_cu_LF3))/(Full_load_input*LF3)*100 #Efficiency at 3/4 rated load(%)\n",
+ "n_LF4 = (Full_load_input*LF4-(P_r+P_cu_LF4))/(Full_load_input*LF4)*100 #Efficiency at 5/4 rated load(%)\n",
+ "#Case(e)\n",
+ "P_o = (Full_load_input*n_rated/100)/746 #Output hp at 1/4 rated load\n",
+ "P_o_LF1 = (Full_load_input*LF1*n_LF1/100)/746 #Output hp at 1/4 rated load\n",
+ "P_o_LF2 = (Full_load_input*LF2*n_LF2/100)/746 #Output hp at 1/2 rated load\n",
+ "P_o_LF3 = (Full_load_input*LF3*n_LF3/100)/746 #Output hp at 3/4 rated load\n",
+ "P_o_LF4 = (Full_load_input*LF4*n_LF4/100)/746 #Output hp at 5/4 rated load\n",
+ "#Case(f)\n",
+ "hp = P_o #Rated output(hp)\n",
+ "T_o = P_o*5252/S #Output torque at full-load(lb-ft)\n",
+ "T_o_Nm = T_o*1.356 #Output torque at full-load(N-m)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Equivalent total resistance of IM between lines , R_e1 = %.3f \u03a9' %R_e1)\n",
+ "print('Case(b): Rotational losses , P_r = %.f W' %P_r)\n",
+ "print('Case(c): Equivalent copper loss at full-load , P_cu = %d W' %P_cu)\n",
+ "print(' Equivalent copper loss at 1/4 rated load , P_cu = %d W' %P_cu_LF1)\n",
+ "print(' Equivalent copper loss at 1/2 rated load , P_cu = %d W' %P_cu_LF2)\n",
+ "print(' Equivalent copper loss at 3/4 rated load , P_cu = %d W' %P_cu_LF3)\n",
+ "print(' Equivalent copper loss at 5/4 rated load , P_cu = %d W' %P_cu_LF4)\n",
+ "print('Case(d): Efficiency at rated load , \u03b7 = %.1f percent' %n_rated)\n",
+ "print(' Efficiency at 1/4 rated load , \u03b7 = %.1f percent' %n_LF1)\n",
+ "print(' Efficiency at 1/2 rated load , \u03b7 = %.1f percent' %n_LF2)\n",
+ "print(' Efficiency at 3/4 rated load , \u03b7 = %.1f percent' %n_LF3)\n",
+ "print(' Efficiency at 5/4 rated load , \u03b7 = %.1f percent' %n_LF4)\n",
+ "print('Case(e): Output horsepower at rated load , P_o = %.2f hp' %P_o)\n",
+ "print(' Output horsepower at 1/4 rated load , P_o = %.3f hp' %P_o_LF1)\n",
+ "print(' Output horsepower at 1/2 rated load , P_o = %.3f hp' %P_o_LF2)\n",
+ "print(' Output horsepower at 3/4 rated load , P_o = %.2f hp' %P_o_LF3)\n",
+ "print(' Output horsepower at 5/4 rated load , P_o = %.2f hp' %P_o_LF4)\n",
+ "print('Case(f): Output torque at full-load , T_o = %.1f lb-ft' %T_o)\n",
+ "print(' Output torque at full-load , T_o = %.2f N-m' %T_o_Nm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Equivalent total resistance of IM between lines , R_e1 = 2.083 \u03a9\n",
+ "Case(b): Rotational losses , P_r = 168 W\n",
+ "Case(c): Equivalent copper loss at full-load , P_cu = 800 W\n",
+ " Equivalent copper loss at 1/4 rated load , P_cu = 50 W\n",
+ " Equivalent copper loss at 1/2 rated load , P_cu = 200 W\n",
+ " Equivalent copper loss at 3/4 rated load , P_cu = 450 W\n",
+ " Equivalent copper loss at 5/4 rated load , P_cu = 1250 W\n",
+ "Case(d): Efficiency at rated load , \u03b7 = 82.4 percent\n",
+ " Efficiency at 1/4 rated load , \u03b7 = 84.1 percent\n",
+ " Efficiency at 1/2 rated load , \u03b7 = 86.6 percent\n",
+ " Efficiency at 3/4 rated load , \u03b7 = 85.0 percent\n",
+ " Efficiency at 5/4 rated load , \u03b7 = 79.3 percent\n",
+ "Case(e): Output horsepower at rated load , P_o = 6.06 hp\n",
+ " Output horsepower at 1/4 rated load , P_o = 1.547 hp\n",
+ " Output horsepower at 1/2 rated load , P_o = 3.184 hp\n",
+ " Output horsepower at 3/4 rated load , P_o = 4.69 hp\n",
+ " Output horsepower at 5/4 rated load , P_o = 7.29 hp\n",
+ "Case(f): Output torque at full-load , T_o = 18.2 lb-ft\n",
+ " Output torque at full-load , T_o = 24.65 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page number 438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "pole = 4.0 #Number of poles in Induction motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V = 220.0 #Rated voltage of IM(V)\n",
+ "hp_IM = 5.0 #Power rating of IM(hp)\n",
+ "PF = 0.9 #Power factor\n",
+ "I_L = 16.0 #Line current(A)\n",
+ "S_r = 1750.0 #Speed of IM(rpm)\n",
+ "I_nl = 6.5 #No-load line current(A)\n",
+ "V_nl = 220.0 #No-load line voltage(V)\n",
+ "P_nl = 300.0 #No-load power reading(W)\n",
+ "I_br = 16.0 #Blocked rotor line current(A)\n",
+ "V_br = 50.0 #Blocked rotor voltage(V)\n",
+ "P_br = 800.0 #Blocked rotor power reading(W)\n",
+ "R_dc = 1.0 #DC resistance between lines(ohm)\n",
+ "V = 220.0 #Voltage rating(V)\n",
+ "P_input = 5500.0 #Power drawn(W)\n",
+ "\n",
+ "#Calculation\n",
+ "R_e1 = 1.25*R_dc #Equivalent total resistance of IM(ohm)\n",
+ "P_in = P_nl #Input power to IM(W)\n",
+ "I1 = I_nl #Input current(A)\n",
+ "P_r = P_in-(3.0/2*(I1)**2*R_e1) #Rotational losses(W)\n",
+ "I_1 = I_L\n",
+ "SCL_fl = 3.0/2*(I_1)**2*R_e1 #Stator copper loss at full-load(W)\n",
+ "SPI = P_input #Stator power input(W)\n",
+ "RPI = SPI-SCL_fl #Rotor power input(W)\n",
+ "S = (120*f/pole) #Speed of synchronous magnetic field(rpm)\n",
+ "s = (S-S_r)/S #Slip\n",
+ "RPD_fl = RPI*(1-s) #Rotor power developed(W)\n",
+ "RPO_fl = RPD_fl-P_r #Rotor power output(W)\n",
+ "#Case(a)\n",
+ "P_o = RPO_fl\n",
+ "n_fl = (P_o/P_input)*100 #Full-load efficiency(%)\n",
+ "#Case(b)\n",
+ "hp = P_o/746 #Output horsepower at full load\n",
+ "T_o = hp*5252/S_r #Output torque(lb-ft)\n",
+ "T_o_Nm = T_o*1.356 #Output torque(N-m)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load efficiency , \u03b7_fl = %.1f percent' %n_fl)\n",
+ "print('Case(b): Output horsepower , hp = %.2f hp at full load' %hp)\n",
+ "print(' Output torque , T_o = %.1f lb-ft = %.1f N-m' %(T_o,T_o_Nm))\n",
+ "print('Case(c): Comparison of results')\n",
+ "print('\\t\\t\\t\\t Ex. 12-14 \\t\\t Ex. 12-15')\n",
+ "print('________________________________________________________________________')\n",
+ "print('\u03b7_fl(percent)\\t\\t\\t 82.4 \\t\\t\\t %.1f' %n_fl)\n",
+ "print('Rated output(hp)\\t\\t 6.06 \\t\\t\\t %.2f' %hp)\n",
+ "print('Rated output torque(lb-ft)\\t 18.2 \\t\\t\\t %.1f' %T_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load efficiency , \u03b7_fl = 84.7 percent\n",
+ "Case(b): Output horsepower , hp = 6.25 hp at full load\n",
+ " Output torque , T_o = 18.7 lb-ft = 25.4 N-m\n",
+ "Case(c): Comparison of results\n",
+ "\t\t\t\t Ex. 12-14 \t\t Ex. 12-15\n",
+ "________________________________________________________________________\n",
+ "\u03b7_fl(percent)\t\t\t 82.4 \t\t\t 84.7\n",
+ "Rated output(hp)\t\t 6.06 \t\t\t 6.25\n",
+ "Rated output torque(lb-ft)\t 18.2 \t\t\t 18.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page number 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "import numpy\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 6.0 #Number of poles in SCIM \n",
+ "S_r = 1176.0 #Rated rotor speed(rpm)\n",
+ "V = 220.0 #Voltage rating of SCIM(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P_hp = 7.5 #Power rating of SCIM(hp)\n",
+ "R_ap = 0.3 #Armature resistance(ohm)\n",
+ "R_r = 0.144 #Rotor resistance(ohm)\n",
+ "jXm = 13.5 #Reactance(ohm)\n",
+ "jXs = 0.5 #Synchronous reactance(ohm)\n",
+ "jXlr = 0.2 #Locked rotor reactance(ohm)\n",
+ "P_r = 300.0 #Total rotational losses(W)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "s = (S-S_r)/S #Slip\n",
+ "R_r_s = R_r/s\n",
+ "V_p = V/3**0.5 #Voltage per phase(V)\n",
+ "I1_1 = complex(R_ap,jXm+jXs)\n",
+ "I1_2 = complex(0,-jXm)\n",
+ "I2_1 = complex(0,-jXm)\n",
+ "I2_2 = complex(R_r/s,jXm+jXlr)\n",
+ "V_1 = V_p\n",
+ "V_2 = 0\n",
+ "A = [[I1_1,I2_1],[I1_2,I2_2]] #Matrix containing above mesh eqns array\n",
+ "delta = numpy.linalg.det(A) #Determinant of A\n",
+ "#Case(b)\n",
+ "I_p = numpy.linalg.det([[V_1,I2_1],[V_2,I2_2]])/delta #Stator armature current(A)\n",
+ "I_1 = I_p\n",
+ "#Case(c)\n",
+ "I_r = numpy.linalg.det([[I1_1,V_1],[I1_2,V_2]])/delta #Rotor armature current(A)\n",
+ "I_2 = I_r\n",
+ "#Case(d)\n",
+ "theta_1 = cmath.phase(I_p)*180/math.pi #Motor PF angle(degrees)\n",
+ "cos_theta1 = math.cos(theta_1*math.pi/180) #Motor PF\n",
+ "#Case(e)\n",
+ "SPI = V_p*abs(I_p)*cos_theta1 #Stator power input(W)\n",
+ "#Case(f)\n",
+ "SCL = abs(I_p)**2*R_ap #Stator Copper Loss(W)\n",
+ "#Case(g)\n",
+ "RPI = SPI-SCL #Rotor power input(W) Method 1\n",
+ "RPI_2 = abs(I_r)**2*(R_r/s) #Rotor power input(W) Method 2\n",
+ "#Case(h)\n",
+ "RCL = s*RPI #Rotor copper losses(W)\n",
+ "#Case(i)\n",
+ "RPD_1 = RPI-RCL #Rotor power developed(W) Method 1\n",
+ "RPD_2 = RPI*(1-s) #Rotor power developed(W) Method 2\n",
+ "#Case(j)\n",
+ "RPO = 3*RPD_1-P_r #Total three-phase rotor power output(W)\n",
+ "#Case(k)\n",
+ "P_to = RPO #Total rotor power at the motor pulley(W)\n",
+ "T_o = 7.04*(P_to/S_r) #Total 3-phase torque(lb-ft)\n",
+ "#Case(l)\n",
+ "hp = P_to/746.0 #Output horsepower(hp)\n",
+ "#Case(m)\n",
+ "P_in = 3*SPI #Input power to stator(W)\n",
+ "n = P_to/P_in*100 #Motor efficiency at rated load(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Slip , s = %.2f' %s)\n",
+ "print(' R_r/s = %.1f \u03a9' %R_r_s)\n",
+ "print('Case(b): Stator armature current per phase , I_p = %.2f\u2220%.2f\u00b0 A' %(abs(I_p),cmath.phase(I_p)*180/math.pi))\n",
+ "print('Case(c): Rotor current per phase , I_r = %.1f\u2220%.2f\u00b0 A' %(abs(I_r),cmath.phase(I_r)*180/math.pi))\n",
+ "print('Case(d): Motor power factor , cos\u04e8 = %.3f' %cos_theta1)\n",
+ "print('Case(e): Stator power input per phase , SPI = %d W' %SPI)\n",
+ "print('Case(f): Stator copper loss per phase , SCL = %.1f W' %SCL)\n",
+ "print('Case(g): Rotor power input per phase , RPI = %.2f W (Method 1)' %RPI)\n",
+ "print(' Rotor power input per phase , RPI = %.2f W (Method 2)' %RPI_2)\n",
+ "print('Case(h): Rotor copper loss per phase , RCL = %.1f W' %RCL)\n",
+ "print('Case(i): Rotor power developed per phase , RPD = %.1f W (Method 1)' %RPD_1)\n",
+ "print(' Rotor power developed per phase , RPD = %.1f W (Method 2)' %RPD_2)\n",
+ "print('Case(j): Total three-phase rotor power output at shaft , RPO = %.1f W' %RPO)\n",
+ "print('Case(k): Total torque developed at output , T_o = %.2f lb-ft' %T_o)\n",
+ "print('Case(l): Horsepower output , hp = %.2f hp' %hp)\n",
+ "print('Case(m): Efficiency at rated load , \u03b7 = %.2f percent' %n)\n",
+ "print('Case(n): Power flow diagram is shown in textbook Fig. 12-12 page no 441')\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Slip , s = 0.02\n",
+ " R_r/s = 7.2 \u03a9\n",
+ "Case(b): Stator armature current per phase , I_p = 18.69\u2220-31.75\u00b0 A\n",
+ "Case(c): Rotor current per phase , I_r = 16.3\u2220-4.03\u00b0 A\n",
+ "Case(d): Motor power factor , cos\u04e8 = 0.850\n",
+ "Case(e): Stator power input per phase , SPI = 2018 W\n",
+ "Case(f): Stator copper loss per phase , SCL = 104.8 W\n",
+ "Case(g): Rotor power input per phase , RPI = 1913.99 W (Method 1)\n",
+ " Rotor power input per phase , RPI = 1913.99 W (Method 2)\n",
+ "Case(h): Rotor copper loss per phase , RCL = 38.3 W\n",
+ "Case(i): Rotor power developed per phase , RPD = 1875.7 W (Method 1)\n",
+ " Rotor power developed per phase , RPD = 1875.7 W (Method 2)\n",
+ "Case(j): Total three-phase rotor power output at shaft , RPO = 5327.1 W\n",
+ "Case(k): Total torque developed at output , T_o = 31.89 lb-ft\n",
+ "Case(l): Horsepower output , hp = 7.14 hp\n",
+ "Case(m): Efficiency at rated load , \u03b7 = 87.96 percent\n",
+ "Case(n): Power flow diagram is shown in textbook Fig. 12-12 page no 441\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page number 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 220.0 #Voltage rating of SCIM(V)\n",
+ "P_hp = 7.5 #Power rating of SCIM(hp)\n",
+ "kVA_up_limit = 7.99 #Upper limit of starting kVA/hp\n",
+ "kVA_low_limit = 7.1 #Lower limit of starting kVA/hp\n",
+ "\n",
+ "#Calculation\n",
+ "I_s_u = kVA_up_limit*P_hp*1000/(3**0.5*V) #Upper limit of starting current(A)\n",
+ "I_s_l = kVA_low_limit*P_hp*1000/(3**0.5*V) #Lower limit of starting current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Upper limit of the starting current , I_s = %.1f A' %I_s_u)\n",
+ "print('Case(b): Lower limit of the starting current , I_s = %.1f A' %I_s_l)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Upper limit of the starting current , I_s = 157.3 A\n",
+ "Case(b): Lower limit of the starting current , I_s = 139.7 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page number 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "import numpy\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 6.0 #Number of poles in SCIM \n",
+ "S_r = 1176.0 #Rated rotor speed(rpm)\n",
+ "V = 220.0 #Voltage rating of SCIM(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P_hp = 7.5 #Power rating of SCIM(hp)\n",
+ "R_ap = 0.3 #Armature resistance(ohm)\n",
+ "R_r = 0.144 #Rotor resistance(ohm)\n",
+ "jXm = 13.5 #Reactance(ohm)\n",
+ "jXs = 0.5 #Synchronous reactance(ohm)\n",
+ "jXlr = 0.2 #Locked rotor reactance(ohm)\n",
+ "P_r = 300.0 #Total rotational losses(W)\n",
+ "s = 1.0 #Unity slip\n",
+ "\n",
+ "#Calculation\n",
+ "R_r_s = R_r/s\n",
+ "V_p = V/3**0.5 #Voltage per phase(V)\n",
+ "I1_1 = complex(R_ap,jXm+jXs)\n",
+ "I1_2 = complex(0,-jXm)\n",
+ "I2_1 = complex(0,-jXm)\n",
+ "I2_2 = complex(R_r/s,jXm+jXlr)\n",
+ "V_1 = V_p\n",
+ "V_2 = 0\n",
+ "A = [[I1_1,I2_1],[I1_2,I2_2]] #Matrix containing above mesh eqns array\n",
+ "delta = numpy.linalg.det(A) #Determinant of A\n",
+ "#Case(a)\n",
+ "I_s = numpy.linalg.det([[V_1,I2_1],[V_2,I2_2]])/delta #Stator armature current(A)\n",
+ "I_1 = I_s\n",
+ "#Case(b)\n",
+ "theta = cmath.phase(I_s)*180/math.pi #Phase angle of Stator armature current(degree)\n",
+ "cos_theta = math.cos(theta*math.pi/180) #PF of the motor at starting\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Starting stator current of the SCIM , I_s = I_1 = %.1f\u2220%.1f\u00b0 A' %(abs(I_s),theta))\n",
+ "print('Case(b): Power factor of the motor at starting , cos\u03b8 = %.3f ' %cos_theta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Starting stator current of the SCIM , I_s = I_1 = 153.9\u2220-57.8\u00b0 A\n",
+ "Case(b): Power factor of the motor at starting , cos\u03b8 = 0.533 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.19, Page number 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 220.0 #Rated voltage of SCIM(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P = 4.0 #Number of poles\n",
+ "PF = 0.85 #Power factor of capacitor-start IM\n",
+ "hp_IM = 5.0 #Power rating of IM(hp)\n",
+ "I_L = 28.0 #Rated line current(A)\n",
+ "S_r = 1620.0 #Rotor speed of IM(rpm)\n",
+ "I_nl = 6.4 #No-load line current(A)\n",
+ "V_nl = 220.0 #No-load line voltage(V)\n",
+ "P_nl = 239.0 #No-load power reading(W)\n",
+ "s_nl = 0.01 #No-load slip\n",
+ "I_br = 62.0 #Blocked rotor line current(A)\n",
+ "V_br = 64.0 #Blocked rotor voltage(V)\n",
+ "P_br = 1922.0 #Blocked rotor power reading(W)\n",
+ "s_br = 1.0 #Blocked rotor slip\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "R_els = P_br/I_br**2 #Equivalent total resistance of IM(ohm)\n",
+ "#Case(b)\n",
+ "P_in = P_nl #Input power to IM(W)\n",
+ "I_ls = I_nl #Input current(A)\n",
+ "P_ro = P_in-(I_ls**2*R_els) #Rotational losses(W)\n",
+ "#Case(c)\n",
+ "S = (120*f/P) #Speed of synchronous magnetic field(rpm)\n",
+ "S_fl = S_r #Full-load rotor speed of IM(rpm) \n",
+ "s_fl = (S-S_fl)/S #Full-load Slip \n",
+ "LF1 = 1.0/4 #Load fraction\n",
+ "LF2 = 1.0/2 #Load fraction\n",
+ "LF3 = 3.0/4 #Load fraction\n",
+ "LF4 = 5.0/4 #Load fraction\n",
+ "s_LF1 = s_fl*LF1 #slip at 1/4 rated load\n",
+ "s_LF2 = s_fl*LF2 #slip at 1/2 rated load\n",
+ "s_LF3 = s_fl*LF3 #slip at 3/4 rated load\n",
+ "s_LF4 = s_fl*LF4 #slip at 5/4 rated load\n",
+ "#Case(d)\n",
+ "s_o = s_nl #No-load slip\n",
+ "P_rs_fl = P_ro*(1-s_fl)/(1-s_o) #Rotational losses rated load(W)\n",
+ "P_rs_LF1 = P_ro*(1-s_LF1)/(1-s_o) #Rotational losses at 1/4 rated load(W)\n",
+ "P_rs_LF2 = P_ro*(1-s_LF2)/(1-s_o) #Rotational losses at 1/2 rated load(W)\n",
+ "P_rs_LF3 = P_ro*(1-s_LF3)/(1-s_o) #Rotational losses at 3/4 rated load(W)\n",
+ "P_rs_LF4 = P_ro*(1-s_LF4)/(1-s_o) #Rotational losses at 5/4 rated load(W)\n",
+ "#Case(e)\n",
+ "Ils = I_L #Line current(A)\n",
+ "P_cu_fl = Ils**2*R_els #Equivalent copper loss at full-load slip(W)\n",
+ "P_cu_LF1 = LF1**2*P_cu_fl #Equivalent copper loss at 1/4 rated load(W)\n",
+ "P_cu_LF2 = LF2**2*P_cu_fl #Equivalent copper loss at 1/2 rated load(W)\n",
+ "P_cu_LF3 = LF3**2*P_cu_fl #Equivalent copper loss at 3/4 rated load(W)\n",
+ "P_cu_LF4 = LF4**2*P_cu_fl #Equivalent copper loss at 5/4 rated load(W)\n",
+ "#Case(f)\n",
+ "Input = V*I_L*PF #Input to single phase capacitor start IM(W)\n",
+ "n_LF1 = (Input*LF1-(P_rs_LF1+P_cu_LF1))/(Input*LF1)*100 #Efficiency at 1/4 rated load(%)\n",
+ "n_LF2 = (Input*LF2-(P_rs_LF2+P_cu_LF2))/(Input*LF2)*100 #Efficiency at 1/2 rated load(%)\n",
+ "n_LF3 = (Input*LF3-(P_rs_LF3+P_cu_LF3))/(Input*LF3)*100 #Efficiency at 3/4 rated load(%)\n",
+ "n_LF4 = (Input*LF4-(P_rs_LF4+P_cu_LF4))/(Input*LF4)*100 #Efficiency at 5/4 rated load(%)\n",
+ "n_fl = (Input-(P_rs_fl+P_cu_fl))/(Input)*100 #Efficiency at full load(%)\n",
+ "#Case(g)\n",
+ "P_o_LF1 = (Input*LF1*n_LF1/100)/746 #Output hp at 1/4 rated load\n",
+ "P_o_LF2 = (Input*LF2*n_LF2/100)/746 #Output hp at 1/2 rated load\n",
+ "P_o_LF3 = (Input*LF3*n_LF3/100)/746 #Output hp at 3/4 rated load\n",
+ "P_o_LF4 = (Input*LF4*n_LF4/100)/746 #Output hp at 5/4 rated load\n",
+ "P_o = (Input*n_fl/100)/746 #Output hp at rated load\n",
+ "#Case(h)\n",
+ "hp = P_o #Rated output horsepower\n",
+ "S_fl = S_r #Full-load rotor speed(rpm)\n",
+ "T_o = P_o*5252/S_fl #Output torque at full-load(lb-ft)\n",
+ "T_o_ST = T_o*1.356 #Output torque at full-load(N-m)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Equivalent total resistance of motor between lines , R_els = %.1f \u03a9' %R_els)\n",
+ "print('Case(b): Rotational losses at no load , P_ro = %.1f W' %P_ro)\n",
+ "print('Case(c): Slip at rated load , s_fl = %.1f ' %s_fl)\n",
+ "print(' Slip at 1/4 rated load , s = %.3f ' %s_LF1)\n",
+ "print(' Slip at 1/2 rated load , s = %.2f ' %s_LF2)\n",
+ "print(' Slip at 3/4 rated load , s = %.3f ' %s_LF3)\n",
+ "print(' Slip at 5/4 rated load , s = %.3f ' %s_LF4)\n",
+ "print('Case(d): Rotational loss at rated load , P_r = %.1f W' %P_rs_fl)\n",
+ "print(' Rotational loss at 1/4 load , P_r = %.1f W' %P_rs_LF1)\n",
+ "print(' Rotational loss at 1/2 load , P_r = %.2f W' %P_rs_LF2)\n",
+ "print(' Rotational loss at 3/4 load , P_r = %.1f W' %P_rs_LF3)\n",
+ "print(' Rotational loss at 5/4 load , P_r = %.1f W' %P_rs_LF4)\n",
+ "print('Case(e): Equivalent copper loss at rated load , P_cu = %.f W' %P_cu_fl)\n",
+ "print(' Equivalent copper loss at 1/4 load , P_cu = %.1f W' %P_cu_LF1)\n",
+ "print(' Equivalent copper loss at 1/2 load , P_cu = %.f W' %P_cu_LF2)\n",
+ "print(' Equivalent copper loss at 3/4 load , P_cu = %.1f W' %P_cu_LF3)\n",
+ "print(' Equivalent copper loss at 5/4 load , P_cu = %.1f W' %P_cu_LF4)\n",
+ "print('Case(f): Efficiency at rated load , \u03b7 = %.1f W' %n_fl)\n",
+ "print(' Efficiency at 1/4 rated load , \u03b7 = %.1f W' %n_LF1)\n",
+ "print(' Efficiency at 1/2 rated load , \u03b7 = %.1f W' %n_LF2)\n",
+ "print(' Efficiency at 3/4 rated load , \u03b7 = %.1f W' %n_LF3)\n",
+ "print(' Efficiency at 5/4 rated load , \u03b7 = %.1f W' %n_LF4)\n",
+ "print('Case(g): Output horsepower at rated load , P_o = %.2f hp' %P_o)\n",
+ "print(' Output horsepower at 1/4 rated load , P_o = %.2f hp' %P_o_LF1)\n",
+ "print(' Output horsepower at 1/2 rated load , P_o = %.2f hp' %P_o_LF2)\n",
+ "print(' Output horsepower at 3/4 rated load , P_o = %.2f hp' %P_o_LF3)\n",
+ "print(' Output horsepower at 5/4 rated load , P_o = %.2f hp' %P_o_LF4)\n",
+ "print('Case(h): Output torque at full load , T_o = %.1f lb-ft' %T_o)\n",
+ "print(' Output torque at full load , T_oST = %.1f N-m' %T_o_ST)\n",
+ "print('\\nNOTE: ERROR: Calculation error for efficiency at 3/4 load in textbook')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Equivalent total resistance of motor between lines , R_els = 0.5 \u03a9\n",
+ "Case(b): Rotational losses at no load , P_ro = 218.5 W\n",
+ "Case(c): Slip at rated load , s_fl = 0.1 \n",
+ " Slip at 1/4 rated load , s = 0.025 \n",
+ " Slip at 1/2 rated load , s = 0.05 \n",
+ " Slip at 3/4 rated load , s = 0.075 \n",
+ " Slip at 5/4 rated load , s = 0.125 \n",
+ "Case(d): Rotational loss at rated load , P_r = 198.7 W\n",
+ " Rotational loss at 1/4 load , P_r = 215.2 W\n",
+ " Rotational loss at 1/2 load , P_r = 209.69 W\n",
+ " Rotational loss at 3/4 load , P_r = 204.2 W\n",
+ " Rotational loss at 5/4 load , P_r = 193.1 W\n",
+ "Case(e): Equivalent copper loss at rated load , P_cu = 392 W\n",
+ " Equivalent copper loss at 1/4 load , P_cu = 24.5 W\n",
+ " Equivalent copper loss at 1/2 load , P_cu = 98 W\n",
+ " Equivalent copper loss at 3/4 load , P_cu = 220.5 W\n",
+ " Equivalent copper loss at 5/4 load , P_cu = 612.5 W\n",
+ "Case(f): Efficiency at rated load , \u03b7 = 88.7 W\n",
+ " Efficiency at 1/4 rated load , \u03b7 = 81.7 W\n",
+ " Efficiency at 1/2 rated load , \u03b7 = 88.2 W\n",
+ " Efficiency at 3/4 rated load , \u03b7 = 89.2 W\n",
+ " Efficiency at 5/4 rated load , \u03b7 = 87.7 W\n",
+ "Case(g): Output horsepower at rated load , P_o = 6.23 hp\n",
+ " Output horsepower at 1/4 rated load , P_o = 1.43 hp\n",
+ " Output horsepower at 1/2 rated load , P_o = 3.10 hp\n",
+ " Output horsepower at 3/4 rated load , P_o = 4.69 hp\n",
+ " Output horsepower at 5/4 rated load , P_o = 7.69 hp\n",
+ "Case(h): Output torque at full load , T_o = 20.2 lb-ft\n",
+ " Output torque at full load , T_oST = 27.4 N-m\n",
+ "\n",
+ "NOTE: ERROR: Calculation error for efficiency at 3/4 load in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_13.ipynb b/Electric_Machinery_and_Transformers/CHAP_13.ipynb
new file mode 100755
index 00000000..094f4068
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_13.ipynb
@@ -0,0 +1,563 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 13: RATINGS, SELECTION, AND MAINTENANCE OF ELECTRIC MACHINERY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page number 460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T = 125.0 #Recorded temperature by the embedded detectors(\u00b0C)\n",
+ "life_orig = 10.0 #Standard life of the motor(years)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_T = T-105 #Positive temp diff b/w the given max hottest spot temp of its insulation and ambient temp recorded\n",
+ "R = 2**(delta_T/10.0) #Life reduction factor\n",
+ "Life_calc = life_orig/R #Reduced life expectancy of the motor(years)\n",
+ "\n",
+ "#Result\n",
+ "print('Life reduction factor , R = %.f ' %R)\n",
+ "print('Reduced life expectancy of the motor , Life_calc = %.1f years' %Life_calc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Life reduction factor , R = 4 \n",
+ "Reduced life expectancy of the motor , Life_calc = 2.5 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page number 460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T = 75.0 #Recorded temperature by the embedded detectors(\u00b0C)\n",
+ "life_orig = 10.0 #Standard life of the motor(years)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_T = 105-T #Positive temp diff b/w the given max hottest spot temp of its insulation and ambient temp recorded\n",
+ "E = 2**(delta_T/10.0) #Life extension factor\n",
+ "Life_calc = life_orig*E #Increased life expectancy of the motor(years)\n",
+ "\n",
+ "#Result\n",
+ "print('Life extension factor , E = %.f ' %E)\n",
+ "print('Increased life expectancy of the motor , Life_calc = %.f years' %Life_calc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Life extension factor , E = 8 \n",
+ "Increased life expectancy of the motor , Life_calc = 80 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3, Page number 461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T_A = 105.0 #Recorded temperature by the embedded detectors at hottest spot limiting temp by class A(\u00b0C)\n",
+ "T_B = 130.0 #Recorded temperature by the embedded detectors at hottest spot limiting temp by class B(\u00b0C)\n",
+ "life_orig = 5.0 #Standard life of the motor(years)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_T = T_B-T_A #Positive temp diff b/w the given max hottest spot temp of its insulation and ambient temp recorded\n",
+ "E = 2**(delta_T/10.0) #Life extension factor\n",
+ "Life_new = life_orig*E #Increased life expectancy of the motor(years)\n",
+ "\n",
+ "#Result\n",
+ "print('New life if wound with class B insulation , Life_new = %.1f years' %Life_new)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New life if wound with class B insulation , Life_new = 28.3 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page number 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P_o = 25.0 #Rated power of SCIM(hp)\n",
+ "T_ambient = 40.0 #Standard ambient temperature recorded by the embedded hot-spot detectors(\u00b0C)\n",
+ "T_hottest = 115.0 #Hottest-spot winding temperature recorded by the embedded hot-spot detectors(\u00b0C)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_Tf = 90.0 #Allowable temperature rise for the insulation type used(\u00b0C)\n",
+ "T_rise = T_hottest-T_ambient #Actual temperature rise of the SCIM(\u00b0C)\n",
+ "P_f = P_o*(delta_Tf/T_rise) #Approximate power the motor can deliver at temperature rise(hp)\n",
+ "power = 30.0 #Power rating that may be stamped on the name plate(hp)\n",
+ "delta_Tf_e = 90.0 #Temperature rise that must be stamped on the name plate(\u00b0C)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Allowable temperature rise for the insulation type used = %.f\u00b0C' %delta_Tf)\n",
+ "print('Case(b): Actual temperature rise of the SCIM = %.f\u00b0C' %T_rise)\n",
+ "print('Case(c): Approximate power the motor can deliver at the temperature rise , P_f = %.f hp' %P_f)\n",
+ "print('Case(d): Power rating that may be stamped on the name plate = %.f hp' %power)\n",
+ "print('Case(e): Temperature rise that must be stamped on the name plate = %.f\u00b0C' %delta_Tf_e)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Allowable temperature rise for the insulation type used = 90\u00b0C\n",
+ "Case(b): Actual temperature rise of the SCIM = 75\u00b0C\n",
+ "Case(c): Approximate power the motor can deliver at the temperature rise , P_f = 30 hp\n",
+ "Case(d): Power rating that may be stamped on the name plate = 30 hp\n",
+ "Case(e): Temperature rise that must be stamped on the name plate = 90\u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5, Page number 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P_o = 50.0 #Power rating of the WRIM(hp)\n",
+ "T_hottest = 160.0 #Hottest-spot winding temperature recorded by the embedded hot-spot detectors(\u00b0C)\n",
+ "T_ambient = 40.0 #Standard ambient temperature recorded by the embedded hot-spot detectors(\u00b0C)\n",
+ "P_f_a = 40.0 #Power rating of load(hp)\n",
+ "P_f_b = 55.0 #Power rating of load(hp)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "delta_T_o = T_hottest-T_ambient #Temperature rise for the insulation type used(\u00b0C)\n",
+ "delta_T_f_a = (P_f_a/P_o)*delta_T_o #Final temperature rise(\u00b0C)\n",
+ "T_f_a = delta_T_f_a+T_ambient #Approximate final hot-spot temperature(\u00b0C)\n",
+ "#Case(b)\n",
+ "delta_T_f_b = (P_f_b/P_o)*delta_T_o #Final temperature rise(\u00b0C)\n",
+ "T_f_b = delta_T_f_b+T_ambient #Approximate final hot-spot temperature(\u00b0C)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Approximate final hot-spot temperature at a continuous output load of 40 hp , T_f = %.f\u00b0C ' %T_f_a)\n",
+ "print('Case(b): Approximate final hot-spot temperature at a continuous output load of 55 hp , T_f = %.f\u00b0C ' %T_f_b)\n",
+ "print(' Yes, Motor life is reduced at 110 percent motor load because allowable maximum hot-spot motor temperature is 155\u00b0C')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Approximate final hot-spot temperature at a continuous output load of 40 hp , T_f = 136\u00b0C \n",
+ "Case(b): Approximate final hot-spot temperature at a continuous output load of 55 hp , T_f = 172\u00b0C \n",
+ " Yes, Motor life is reduced at 110 percent motor load because allowable maximum hot-spot motor temperature is 155\u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6, Page number 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P_o = 55.0 #Power rating of the WRIM(hp)\n",
+ "T_ambient = 40.0 #Standard ambient temperature recorded by the embedded hot-spot detectors(\u00b0C)\n",
+ "life_orig = 10.0 #Standard life of the motor(years)\n",
+ "T_f = 172.0 #Approximate final hot-spot temperature(\u00b0C)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_T = T_f-155.0 #Positive temp diff b/w the given max hottest spot temp of its insulation and ambient temp recorded\n",
+ "R = 2**(delta_T/10.0) #Life reduction factor\n",
+ "Life_calc = life_orig/R #Reduced life expectancy of the motor(years)\n",
+ "\n",
+ "#Result\n",
+ "print('Reduced life expectancy of the motor , Life_calc = %.2f years' %Life_calc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reduced life expectancy of the motor , Life_calc = 3.08 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7, Page number 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P_o = 200.0 #Power rating of the test motor(hp)\n",
+ "P1 = 200.0 #Operating power of test motor at t1 duration(hp)\n",
+ "t1 = 5.0 #Time duration for which test motor is operated(min) \n",
+ "P2 = 20.0 #Operating power of test motor at t2 duration(hp)\n",
+ "t2 = 5.0 #Time duration for which test motor is operated(min)\n",
+ "P3 = 0.0 #Operating power of test motor at t3 duration at rest(hp)\n",
+ "t3 = 10.0 #Time duration for which test motor is operated(min)\n",
+ "P4 = 100.0 #Operating power of test motor at t4 duration(hp)\n",
+ "t4 = 10.0 #Time duration for which test motor is operated(min) \n",
+ "\n",
+ "#Calculation\n",
+ "rms_hp = ((P1**2*t1+P2**2*t2+P3**2*t3+P4**2*t4)/(t1+t2+t3+t4/3))**0.5 #HP required for intermittent varying load\n",
+ "\n",
+ "#Result\n",
+ "print('Horsepower required for such an intermittent varying load , rms hp = %.f hp' %rms_hp)\n",
+ "print('125 hp motor would be selected because that is the nearest larger commercial standard rating')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Horsepower required for such an intermittent varying load , rms hp = 114 hp\n",
+ "125 hp motor would be selected because that is the nearest larger commercial standard rating\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8, Page number 472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 120.0 #Rated output voltage of separately excited dc generator(V)\n",
+ "I = 100.0 #Rated output current of separately excited dc generator(A)\n",
+ "R = 0.1 #Armature resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "V_b = V #Base voltage(V)\n",
+ "I_b = I #Base current(A)\n",
+ "R_b = V_b/I_b #Base resistance(ohm)\n",
+ "R_pu = R/R_b #Per-unit value of armature resistance\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Base voltage , V_b = %.f V' %V_b)\n",
+ "print('Case(b): Base current , I_b = %.f A' %I_b)\n",
+ "print('Case(b): Base resistance , R_b = %.1f \u03a9' %R_b)\n",
+ "print('Case(d): Per-unit value of armature resistance , R_p.u = %.3f p.u' %R_pu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Base voltage , V_b = 120 V\n",
+ "Case(b): Base current , I_b = 100 A\n",
+ "Case(b): Base resistance , R_b = 1.2 \u03a9\n",
+ "Case(d): Per-unit value of armature resistance , R_p.u = 0.083 p.u\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.9, Page number 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "V = 500.0 #Rated voltage of the alternator(V)\n",
+ "P = 20.0 #Rated power of the alternator(kVA)\n",
+ "I = 40.0 #Rated current of the alternator(A)\n",
+ "R = 2.0 #Armature resistance(ohm)\n",
+ "X = 15.0 #Armature reactance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "V_b = V #Base voltage(V)\n",
+ "I_b = I #Base current(A)\n",
+ "R_pu = R*I_b/V_b #Per-unit value of armature resistance\n",
+ "jX_pu = X*I_b/V_b #Per-unit value of armature reactance\n",
+ "Z_pu1 = complex(R_pu,jX_pu) #Per-unit value of armature impedance\n",
+ "Z_pu2 = complex(R,X)*(I/V) #Per-unit value of armature impedance\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Per unit value of armature resistance , R_p.u = %.2f p.u' %R_pu)\n",
+ "print('Case(b): Per unit value of armature reactance , jX_p.u = j%.1f p.u' %jX_pu)\n",
+ "print('Case(c): Per-unit value of armature impedance , Z_p.u = %.3f\u2220%.1f\u00b0 p.u (Method 1)' %(abs(Z_pu1),cmath.phase(Z_pu1)*180/math.pi))\n",
+ "print(' Per-unit value of armature impedance , Z_p.u = %.3f\u2220%.1f\u00b0 p.u (Method 2)' %(abs(Z_pu2),cmath.phase(Z_pu2)*180/math.pi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Per unit value of armature resistance , R_p.u = 0.16 p.u\n",
+ "Case(b): Per unit value of armature reactance , jX_p.u = j1.2 p.u\n",
+ "Case(c): Per-unit value of armature impedance , Z_p.u = 1.211\u222082.4\u00b0 p.u (Method 1)\n",
+ " Per-unit value of armature impedance , Z_p.u = 1.211\u222082.4\u00b0 p.u (Method 2)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.10, Page number 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_orig = 500.0 #Rated voltage of the alternator(V)\n",
+ "kVA_orig = 20.0 #Rated power of the alternator(kVA)\n",
+ "I = 40.0 #Rated current of the alternator(A)\n",
+ "R = 2.0 #Armature resistance(ohm)\n",
+ "X = 15.0 #Armature reactance(ohm)\n",
+ "V_new = 5000.0 #New voltage of the alternator(V)\n",
+ "kVA_new = 100.0 #New power of the alternator(kVA)\n",
+ "Z_pu_orig = 1.211 #Original per-unit value of armature impedance\n",
+ "\n",
+ "#Calculation\n",
+ "Z_pu_new = Z_pu_orig*(kVA_new/kVA_orig)*(V_orig/V_new)**2 #New per-unit impedance\n",
+ "\n",
+ "#Result\n",
+ "print('New per-unit impedance , Z_pu(new) = %.5f p.u' %Z_pu_new)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New per-unit impedance , Z_pu(new) = 0.06055 p.u\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.11, Page number 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 2300.0 #Line voltage of 3-phase distribution system(V)\n",
+ "V_p = 1328.0 #Phase voltage of 3-phase distribution system(V)\n",
+ "V_b = 69000.0 #Common base line voltage(V)\n",
+ "V_pb = 39840.0 #Common base phase voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "V_pu_line = V/V_b #Distribution system p.u line voltage\n",
+ "V_pu_phase = V_p/V_pb #Distribution system p.u phase voltage\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Distribution system p.u line voltage , V_pu = %.2f p.u' %V_pu_line)\n",
+ "print('Case(b): Distribution system p.u phase voltage , V_pu = %.2f p.u' %V_pu_phase)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Distribution system p.u line voltage , V_pu = 0.03 p.u\n",
+ "Case(b): Distribution system p.u phase voltage , V_pu = 0.03 p.u\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.12, Page number 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "VA_b = 50.0 #Base power rating of the 3-phase Y-connected alternator(MVA)\n",
+ "V_b = 25.0 #Base voltage of the 3-phase Y-connected alternator(kV)\n",
+ "X_pu = 1.3 #Per unit value of synchronous reactance\n",
+ "R_pu = 0.05 #Per unit value of resistance\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Z_b1 = V_b**2/VA_b #Base impedance(ohm)\n",
+ "S_b = VA_b #Base power rating of the 3-phase Y-connected alternator(MVA)\n",
+ "I_b = S_b/V_b #Base current(kA)\n",
+ "Z_b2 = V_b/I_b #Base impedance(ohm)\n",
+ "#Case(b)\n",
+ "Z_b = Z_b1 #Base impedance(ohm)\n",
+ "X_s = X_pu*Z_b #Actual value of synchronous reactance per phase(ohm)\n",
+ "#Case(c)\n",
+ "R_a = R_pu*Z_b #Actual value of armature stator resistance per phase(ohm)\n",
+ "#Case(d)\n",
+ "Z_s1 = complex(R_a,X_s) #Synchronous impedance per phase(ohm)\n",
+ "Z_pu = complex(R_pu,X_pu) #Per unit value of impedance\n",
+ "Z_s2 = Z_pu*Z_b #Synchronous impedance per phase(ohm)\n",
+ "#Case(d)\n",
+ "S = S_b #Base power rating of the 3-phase Y-connected alternator(MVA)\n",
+ "P = S*R_pu #Full-load copper losses for all three phases(MW)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Base impedance , Z_b = %.1f \u03a9' %Z_b1)\n",
+ "print(' Base impedance , Z_b = %.1f \u03a9' %Z_b2)\n",
+ "print('Case(b): Actual value of synchronous reactance per phase , X_s = j%.2f \u03a9' %X_s)\n",
+ "print('Case(c): Actual value of armature stator resistance per phase , R_a = %.3f \u03a9' %R_a)\n",
+ "print('Case(d): Synchronous impedance per phase , Z_s = %.2f\u2220%.1f\u00b0 \u03a9 (Method 1)' %(abs(Z_s1),cmath.phase(Z_s1)*180/math.pi))\n",
+ "print(' Synchronous impedance per phase , Z_s = %.2f\u2220%.1f\u00b0 \u03a9 (Method 2)' %(abs(Z_s2),cmath.phase(Z_s2)*180/math.pi))\n",
+ "print('Case(e): Full-load copper losses for all three phases , P = %.1f MW' %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Base impedance , Z_b = 12.5 \u03a9\n",
+ " Base impedance , Z_b = 12.5 \u03a9\n",
+ "Case(b): Actual value of synchronous reactance per phase , X_s = j16.25 \u03a9\n",
+ "Case(c): Actual value of armature stator resistance per phase , R_a = 0.625 \u03a9\n",
+ "Case(d): Synchronous impedance per phase , Z_s = 16.26\u222087.8\u00b0 \u03a9 (Method 1)\n",
+ " Synchronous impedance per phase , Z_s = 16.26\u222087.8\u00b0 \u03a9 (Method 2)\n",
+ "Case(e): Full-load copper losses for all three phases , P = 2.5 MW\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_14.ipynb b/Electric_Machinery_and_Transformers/CHAP_14.ipynb
new file mode 100755
index 00000000..2f2f7423
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_14.ipynb
@@ -0,0 +1,2601 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 14: TRANSFORMERS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page number 487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "N_1 = 500.0 #Number of turns in the hv side i.e primary\n",
+ "N_2 = 100.0 #Number of turns in the lv side i.e secondary\n",
+ "I_2 = 12.0 #Load current i.e secondary(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#For step-down transformer\n",
+ "alpha = N_1/N_2 #Transformation ratio\n",
+ "I_1 = I_2/alpha #Load component of primary current(A)\n",
+ "#For step-up transformer\n",
+ "N1 = 100.0 #Number of turns in the lv side i.e primary\n",
+ "N2 = 500.0 #Number of turns in the hv side i.e secondary\n",
+ "alpha_c = N1/N2 #Transformation ratio\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Transformation ratio , \u03b1 = %.f ' %alpha)\n",
+ "print('Case(b): Load component of primary current , I_1 = %.1f A' %I_1)\n",
+ "print('Case(c): Transformation ratio if transformer is used as step-up , \u03b1 = %.1f ' %alpha_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Transformation ratio , \u03b1 = 5 \n",
+ "Case(b): Load component of primary current , I_1 = 2.4 A\n",
+ "Case(c): Transformation ratio if transformer is used as step-up , \u03b1 = 0.2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page number 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_h = 2300.0 #Primary voltage i.e hv(V)\n",
+ "V_l = 115.0 #Secondary voltage i.e lv(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "S = 4.6 #Rating of the step-down transformer(kVA)\n",
+ "V_per_turn = 2.5 #Induced EMF per turn(V/turn)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "N_h = V_h/V_per_turn #Number of high-side turns\n",
+ "N_l = V_l/V_per_turn #Number of low-side turns\n",
+ "N_1 = N_h\n",
+ "N_2 = N_l\n",
+ "#Case(b)\n",
+ "V_1 = V_h\n",
+ "V_2 = V_l\n",
+ "S_1 = S\n",
+ "S_2 = S\n",
+ "I_1 = S_1*1000/V_1 #Rated primary current(A)\n",
+ "I_2 = S_2*1000/V_2 #Rated secondary current(A)\n",
+ "I_h = I_1\n",
+ "I_l = I_2\n",
+ "#Case(c)\n",
+ "alpha_stepdown_c = N_1/N_2 #Step-down transformation ratio\n",
+ "alpha_stepup_c = N_l/N_h #Step-up transformation ratio\n",
+ "#Case(d)\n",
+ "alpha_stepdown_d = I_2/I_1 #Step-down transformation ratio\n",
+ "alpha_stepup_d = I_h/I_l #Step-up transformation ratio\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Number of high-side turns , N_h = %.f t = N_1 ' %N_h)\n",
+ "print(' Number of low-side turns , N_l = %.f t = N_2 ' %N_l)\n",
+ "print('Case(b): Rated primary current , I_h = I_1 = %.f A' %I_h)\n",
+ "print(' Rated secondary current , I_l = I_2 = %.f A' %I_l)\n",
+ "print('Case(c): Step-down transformation ratio , \u03b1 = %.f ' %alpha_stepdown_c);\n",
+ "print(' Step-up transformation ratio , \u03b1 = %.2f ' %alpha_stepup_c);\n",
+ "print('Case(d): Step-down transformation ratio , \u03b1 = %.f ' %alpha_stepdown_d);\n",
+ "print(' Step-up transformation ratio , \u03b1 = %.2f ' %alpha_stepup_d);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Number of high-side turns , N_h = 920 t = N_1 \n",
+ " Number of low-side turns , N_l = 46 t = N_2 \n",
+ "Case(b): Rated primary current , I_h = I_1 = 2 A\n",
+ " Rated secondary current , I_l = I_2 = 40 A\n",
+ "Case(c): Step-down transformation ratio , \u03b1 = 20 \n",
+ " Step-up transformation ratio , \u03b1 = 0.05 \n",
+ "Case(d): Step-down transformation ratio , \u03b1 = 20 \n",
+ " Step-up transformation ratio , \u03b1 = 0.05 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3, Page number 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "N_1 = 500.0 #Number of primary turns\n",
+ "N_2 = 25.0 #Number of secondary turns\n",
+ "Z_L = 8.0 #Impedance(ohm)\n",
+ "V_1 = 10.0 #Output voltage of the amplifier(V)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = N_1/N_2 #Step-down transformation ratio\n",
+ "Z_1 = alpha**2*Z_L #Impedance reflected to the transformer primary at the output of the amplifier(ohm)\n",
+ "I_1 = V_1/Z_1*1000 #Matching transformer primary current(mA)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Impedance reflected to the transformer primary at the output of the amplifier , Z_1 = %.f \u03a9' %Z_1)\n",
+ "print('Case(b): Matching transformer primary current , I_1 = %.3f mA' %I_1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Impedance reflected to the transformer primary at the output of the amplifier , Z_1 = 3200 \u03a9\n",
+ "Case(b): Matching transformer primary current , I_1 = 3.125 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page number 490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "N_1 = 600.0 #Number of primary turns \n",
+ "N_2 = 150.0 #Some number of secondary turns \n",
+ "N_3 = 300.0 #Some number of secondary turns \n",
+ "Z_2 = 30.0 #Resistive load across N_2(ohm)\n",
+ "Z_3 = 15.0 #Resistive load across N_3(ohm)\n",
+ "V_p = 16.0 #Primary applied voltage(V)\n",
+ "cos_theta = 1.0 #Unity PF\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Z_2_prime = Z_2*(N_1/N_2)**2 #Impedance reflected to the primary by load Z_2(ohm)\n",
+ "#Case(b)\n",
+ "Z_3_prime = Z_3*(N_1/N_3)**2 #Impedance reflected to the primary by load Z_3(ohm)\n",
+ "#Case(c)\n",
+ "Z_1 = (Z_2_prime*Z_3_prime)/(Z_2_prime+Z_3_prime) #Total impedance reflected to primary(ohm)\n",
+ "#Case(d)\n",
+ "I_1 = V_p/Z_1 #Total current drawn from the supply(A)\n",
+ "#Case(e)\n",
+ "P_t = V_p*I_1*cos_theta #Total power drawn from the supply at unity PF(W)\n",
+ "#Case(f)\n",
+ "R_2 = Z_2\n",
+ "V_2 = V_p*(N_2/N_1) #Voltage across load Z_2(V)\n",
+ "P_2 = V_2**2/R_2 #Power dissipated in load Z_2(W)\n",
+ "#Case(g)\n",
+ "R_3 = Z_3\n",
+ "V_3 = V_p*(N_3/N_1) #Voltage across Z_3 in volt\n",
+ "P_3 = V_3**2 / R_3 #Power dissipated in load Z_3(W)\n",
+ "#Case(h)\n",
+ "P_total = P_2+P_3 #Total power dissipated in both loads(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Impedance reflected to the primary by load Z_2 = %.f \u03a9' %Z_2_prime)\n",
+ "print('Case(b): Impedance reflected to the primary by load Z_3 = %.f \u03a9' %Z_3_prime)\n",
+ "print('Case(c): Total impedance reflected to the primary , Z_1 = %.1f \u03a9' %Z_1)\n",
+ "print('Case(d): Total current drawn from the supply , I_1 = %.1f A' %I_1)\n",
+ "print('Case(e): Total power drawn from the supply at unity power factor , P_t = %.1f W' %P_t)\n",
+ "print('Case(f): Voltage across load Z_2 , V_2 = %.f V' %V_2)\n",
+ "print(' Power dissipated in load Z_2 , P_2 = %.2f W' %P_2)\n",
+ "print('Case(g): Voltage across load Z_3 , V_3 = %.f V' %V_3)\n",
+ "print(' Power dissipated in load Z_3 , P_3 = %.2f W' %P_3)\n",
+ "print('Case(h): Total power dissipated in both loads , P_t = %.1f W ' %P_total)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Impedance reflected to the primary by load Z_2 = 480 \u03a9\n",
+ "Case(b): Impedance reflected to the primary by load Z_3 = 60 \u03a9\n",
+ "Case(c): Total impedance reflected to the primary , Z_1 = 53.3 \u03a9\n",
+ "Case(d): Total current drawn from the supply , I_1 = 0.3 A\n",
+ "Case(e): Total power drawn from the supply at unity power factor , P_t = 4.8 W\n",
+ "Case(f): Voltage across load Z_2 , V_2 = 4 V\n",
+ " Power dissipated in load Z_2 , P_2 = 0.53 W\n",
+ "Case(g): Voltage across load Z_3 , V_3 = 8 V\n",
+ " Power dissipated in load Z_3 , P_3 = 4.27 W\n",
+ "Case(h): Total power dissipated in both loads , P_t = 4.8 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5, Page number 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 100.0 #Power rating of the single channel power amplifier(W)\n",
+ "Z_p = 3200.0 #Output impedance ohm of the single channel power amplifier(ohm)\n",
+ "N_p = 1500.0 #Number of primary turns in a tapped impedance-matching transformer\n",
+ "Z_L1 = 8.0 #Amplifier output using a tapped impedance-matching transformer(ohm)\n",
+ "Z_L2 = 4.0 #Amplifier output using a tapped impedance-matching transformer(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "alpha = (Z_p/Z_L1)**0.5 #Transformation ratio\n",
+ "N_2 = N_p/alpha #Total number of secondary turns to match 8 ohm speaker\n",
+ "#Case(b)\n",
+ "alpha_b = (Z_p/Z_L2)**0.5 #Transformation ratio\n",
+ "N_1 = N_p/alpha_b #Number of primary turns to match 4 ohm speaker\n",
+ "#Case(c)\n",
+ "turns_difference = N_2-N_1 #Difference in secondary and primary turns\n",
+ "alpha_c = (N_p/turns_difference) #Transformation ratio\n",
+ "Z_L = Z_p/alpha_c**2 #Impedance that must be connected(ohm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Total number of secondary turns to match 8 \u03a9 impedance speaker , N_2 = %.f t' %N_2)\n",
+ "print('Case(b): Number of turns to match 4 \u03a9 impedance speaker , N_1 = %.f t' %N_1)\n",
+ "print('Case(c): Impedance that must be connected , Z_L = %.2f \u03a9' %Z_L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Total number of secondary turns to match 8 \u03a9 impedance speaker , N_2 = 75 t\n",
+ "Case(b): Number of turns to match 4 \u03a9 impedance speaker , N_1 = 53 t\n",
+ "Case(c): Impedance that must be connected , Z_L = 0.69 \u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6, Page number 492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 100.0 #Power rating of the single channel power amplifier(W)\n",
+ "Z_L1 = 8.0 #Amplifier output using a tapped impedance-matching transformer(ohm)\n",
+ "Z_L2 = 4.0 #Amplifier output using a tapped impedance-matching transformer(ohm)\n",
+ "P_servo = 10.0 #Power rating of the servo motor(W)\n",
+ "Z_servo = 0.7 #Impedance of the servo motor(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "root_Z_AB = 8**0.5-4**0.5\n",
+ "Z_AB = (root_Z_AB)**2\n",
+ "\n",
+ "#Result\n",
+ "print('Impedance between terminals A and B , Z_AB = %.2f \u03a9' %Z_AB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Impedance between terminals A and B , Z_AB = 0.69 \u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7, Page number 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "V_s = 10.0*cmath.exp(1j*0*math.pi/180) #Supply voltage of the source(V)\n",
+ "R_s = 1000.0 #Resistance of the source(ohm)\n",
+ "R_L = 10.0 #Load resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "alpha = (R_s/R_L)**0.5 #Transformation ratio of the matching transformer for MPT\n",
+ "#Case(b)\n",
+ "V = abs(V_s) #Considering only absolute value of Supply voltage for easy simplification\n",
+ "V_1 = V/2 #Terminal voltage of the source at MPT(V)\n",
+ "#Case(c)\n",
+ "V_2 = V_1/alpha #Terminal voltage across the load at MPT(V)\n",
+ "#Case(d)\n",
+ "Z_L = R_L\n",
+ "I_2 = V_2/Z_L #Secondary load current(A). Method 1\n",
+ "I2 = V/(2*alpha*R_L) #Secondary load current(A). Method 2\n",
+ "#Case(e)\n",
+ "I_1 = I_2/alpha #Primary load current drawn from the source(A). Method 1\n",
+ "I1 = V/(2*R_s) #Primary load current drawn from the source(A). Method 2\n",
+ "#Case(f)\n",
+ "P_L = (I_2)**2*R_L #Maximum power dissipated in the load(W)\n",
+ "#Case(g)\n",
+ "P_s = (I_1)**2*R_s #Power dissipated internally within the source(W)\n",
+ "#Case(h)\n",
+ "theta = 0\n",
+ "P_T1 = abs(V)*I_1*math.cos(theta) #Total power supplied by the source(W). Method 1\n",
+ "P_T2 = P_L+P_s #Total power supplied by the source(W). Method 2\n",
+ "#Case(i)\n",
+ "P_T = P_T1\n",
+ "n = P_L/P_T*100 #Power transfer efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Transformation ratio of the matching transformer for MPT , \u03b1 = %.f ' %alpha)\n",
+ "print('Case(b): Terminal voltage of the source at MPT , V_1 = %.1f V' %V_1)\n",
+ "print('Case(c): Terminal voltage across the load at MPT , V_2 = %.1f V' %V_2)\n",
+ "print('Case(d): Secondary load current , I_2 = %.f mA (Method 1)' %(1000*I_2))\n",
+ "print(' Secondary load current , I_2 = %.f mA (Method 2)' %(1000*I2))\n",
+ "print('Case(e): Primary load current drawn from the source , I_1 = %.f mA (Method 1)' %(1000*I_1))\n",
+ "print(' Primary load current drawn from the source , I_1 = %.f mA (Method 2)' %(1000*I1))\n",
+ "print('Case(f): Maximum power dissipated in the load , P_L = %.f mW' %(1000*P_L))\n",
+ "print('Case(g): Power dissipated internally within the source , P_s = %.f mW' %(1000*P_s))\n",
+ "print('Case(h): Total power supplied by the source , P_T = %.f mW (Method 1)' %(1000*P_T1))\n",
+ "print(' Total power supplied by the source , P_T = %.f mW (Method 2)' %(1000*P_T2))\n",
+ "print('Case(i): Power transfer efficiency , \u03b7 = %.f percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Transformation ratio of the matching transformer for MPT , \u03b1 = 10 \n",
+ "Case(b): Terminal voltage of the source at MPT , V_1 = 5.0 V\n",
+ "Case(c): Terminal voltage across the load at MPT , V_2 = 0.5 V\n",
+ "Case(d): Secondary load current , I_2 = 50 mA (Method 1)\n",
+ " Secondary load current , I_2 = 50 mA (Method 2)\n",
+ "Case(e): Primary load current drawn from the source , I_1 = 5 mA (Method 1)\n",
+ " Primary load current drawn from the source , I_1 = 5 mA (Method 2)\n",
+ "Case(f): Maximum power dissipated in the load , P_L = 25 mW\n",
+ "Case(g): Power dissipated internally within the source , P_s = 25 mW\n",
+ "Case(h): Total power supplied by the source , P_T = 50 mW (Method 1)\n",
+ " Total power supplied by the source , P_T = 50 mW (Method 2)\n",
+ "Case(i): Power transfer efficiency , \u03b7 = 50 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8, Page number 495"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 20.0 #No-load voltage(V)\n",
+ "R_s = 18.0 #Internal resistance of the power amplifier(ohm)\n",
+ "R_L = 8.0 #Load resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "V_L = (R_L/(R_L+R_s))* V #Load voltage(V)\n",
+ "P_L = (V_L)**2/R_L #Power delivered to the speaker when connected directly to the amplifier(W)\n",
+ "alpha = (R_s/R_L)**0.5 #Turns ratio of the transformer to maximize speaker power\n",
+ "V_2 = V/(2*alpha) #Secondary voltage(V)\n",
+ "P_L2 = (V_2)**2/R_L #Maximum power delivered to the speaker(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Power delivered to the speaker when connected directly to the amplifier , P_L = %.2f W' %P_L)\n",
+ "print('Case(b): Turns ratio of the transformer to maximize speaker power , \u03b1 = %.1f ' %alpha)\n",
+ "print('Case(c): Maximum power delivered to the speaker using matching transformer of part(b) , P_L = %.1f W' %P_L2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Power delivered to the speaker when connected directly to the amplifier , P_L = 4.73 W\n",
+ "Case(b): Turns ratio of the transformer to maximize speaker power , \u03b1 = 1.5 \n",
+ "Case(c): Maximum power delivered to the speaker using matching transformer of part(b) , P_L = 5.6 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9, Page number 500"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 1.0 #Rating of the transformer(kVA)\n",
+ "V_1 = 220.0 #Primary voltage(V)\n",
+ "V_2 = 110.0 #Secondary voltage(V)\n",
+ "f_o = 400.0 #Original frequency(Hz)\n",
+ "f_f = 60.0 #Frequency for which the transformer is to be used(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "alpha = V_1/V_2 #Transformation ratio\n",
+ "E_h = V_1*(f_f/f_o) #Maximum rms voltage applied to HV side(V)\n",
+ "E_1 = E_h\n",
+ "E_l = E_1/alpha #Maximum voltage output of LV side(V)\n",
+ "#Case(b)\n",
+ "V_h = V_1 #High voltage(V)\n",
+ "I_h = kVA*1000/V_h #High current(A)\n",
+ "Vh = E_h\n",
+ "kVA_new = Vh*I_h/1000 #kVA rating of transformer under reduced frequency\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Maximum rms voltage that may be applied to high-voltage side , E_h = %.f V' %E_h)\n",
+ "print(' Maximum voltage output of the low-voltage side , E_l = %.1f V' %E_l)\n",
+ "print('Case(b): kVA rating of transformer under conditions of reduced frequency , V_h*I_h = %.2f kVA' %kVA_new)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Maximum rms voltage that may be applied to high-voltage side , E_h = 33 V\n",
+ " Maximum voltage output of the low-voltage side , E_l = 16.5 V\n",
+ "Case(b): kVA rating of transformer under conditions of reduced frequency , V_h*I_h = 0.15 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10, Page number 501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 1.0 #kVA rating of the transformer\n",
+ "V_1 = 220.0 #Primary voltage(V)\n",
+ "V_2 = 110.0 #Secondary voltage(V)\n",
+ "f_o = 400.0 #Frequency(Hz)\n",
+ "f_f = 60.0 #Frequency for which the transformer is to be used(Hz)\n",
+ "P_orig = 10.0 #Original iron losses of the transformer(W)\n",
+ "\n",
+ "#Calculation \n",
+ "B = f_o/f_f #Flux density\n",
+ "P_iron = P_orig*B**2 #Iron losses(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Iron losses if is operated at reduced frequency of 60 Hz , P_iron = %.f W' %P_iron)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Iron losses if is operated at reduced frequency of 60 Hz , P_iron = 444 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11, Page number 504"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 500.0 #Rating of the step-down transformer(kVA)\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "r_1 = 0.1 #Primary winding resistance(ohm)\n",
+ "x_1 = 0.3 #Primary winding reactance(ohm)\n",
+ "r_2 = 0.001 #Secondary winding resistance(ohm)\n",
+ "x_2 = 0.003 #Secondary winding reactance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = V_1/V_2 #Transformation ratio\n",
+ "#Case(a)\n",
+ "I_2 = kVA*1000/V_2 #Secondary current(A)\n",
+ "I_1 = I_2/alpha #Primary current(A)\n",
+ "#Case(b)\n",
+ "Z_2 = complex(r_2,x_2) #Secondary internal impedance(ohm)\n",
+ "Z_2_m = abs(Z_2) #Magnitude of Z_2(ohm)\n",
+ "Z_1 = complex(r_1,x_1) #Primary internal impedance(ohm)\n",
+ "Z_1_m = abs(Z_1) #Magnitude of Z_1(ohm)\n",
+ "#Case(c)\n",
+ "I_2_Z_2 = I_2*Z_2_m #Secondary internal voltage drop(V)\n",
+ "I_1_Z_1 = I_1*Z_1_m #Primary internal voltage drop(V)\n",
+ "#Case(d)\n",
+ "E_2 = V_2+I_2_Z_2 #Secondary induced voltage(V)\n",
+ "E_1 = V_1-I_1_Z_1 #Primary induced voltage(V)\n",
+ "#Case(e)\n",
+ "ratio_E = E_1/E_2 #Ratio of primary to secondary induced voltage\n",
+ "ratio_V = V_1/V_2 #Ratio of primary to secondary terminal voltage\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Secondary current , I_2 = %.f A' %I_2)\n",
+ "print(' Primary current , I_1 = %.1f A' %I_1)\n",
+ "print('Case(b): Secondary internal impedance , Z_2 = %.5f \u03a9' %Z_2_m)\n",
+ "print(' Primary internal impedance , Z_1 = %.3f \u03a9' %Z_1_m)\n",
+ "print('Case(c): Secondary internal voltage drop , I_2*Z_2 = %.2f V' %I_2_Z_2)\n",
+ "print(' Primary internal voltage drop , I_1*Z_1 = %.1f V' %I_1_Z_1)\n",
+ "print('Case(d): Secondary induced voltage , E_2 = %.2f V' %E_2)\n",
+ "print(' Primary induced voltage , E_1 = %.1f V' %E_1)\n",
+ "print('Case(e): Ratio of primary to secondary induced voltages , E_1/E_2 = %.2f ' %ratio_E)\n",
+ "print(' Ratio of primary to secondary iterminal voltages , V_1/V_2 = %.1f ' %ratio_V)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Secondary current , I_2 = 2174 A\n",
+ " Primary current , I_1 = 217.4 A\n",
+ "Case(b): Secondary internal impedance , Z_2 = 0.00316 \u03a9\n",
+ " Primary internal impedance , Z_1 = 0.316 \u03a9\n",
+ "Case(c): Secondary internal voltage drop , I_2*Z_2 = 6.87 V\n",
+ " Primary internal voltage drop , I_1*Z_1 = 68.7 V\n",
+ "Case(d): Secondary induced voltage , E_2 = 236.87 V\n",
+ " Primary induced voltage , E_1 = 2231.3 V\n",
+ "Case(e): Ratio of primary to secondary induced voltages , E_1/E_2 = 9.42 \n",
+ " Ratio of primary to secondary iterminal voltages , V_1/V_2 = 10.0 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12, Page number 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "I_2 = 2174.0 #Secondary current(A)\n",
+ "I_1 = 217.4 #Primary current(A)\n",
+ "Z_2 = 0.00316 #Secondary internal impedance(ohm)\n",
+ "Z_1 = 0.316 #Primary internal impedance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = V_1/V_2 #Transformation ratio\n",
+ "#Case(a)\n",
+ "Z_L = V_2/I_2 #Load impedance(ohm)\n",
+ "#Case(b)\n",
+ "Z_p = V_1/I_1 #Primary input impedance(ohm)\n",
+ "Zp = alpha**2*Z_L #Primary input impedance(ohm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Load impedance , Z_L = %.4f \u03a9' %Z_L)\n",
+ "print('Case(b): Primary input impedance , Z_p = %.2f \u03a9 (Method 1)' %Z_p)\n",
+ "print(' Primary input impedance , Z_p = %.2f \u03a9 (Method 2)' %Zp)\n",
+ "print('Case(c): Impedance of load Z_L = %.4f \u03a9, is much greater than internal secondary impedance Z_2 = %.5f \u03a9' %(Z_L,Z_2))\n",
+ "print(' Primary input impedance Z_p = %.2f \u03a9, is much greater than the internal primary impedance Z_1 = %.3f \u03a9' %(Z_p,Z_1))\n",
+ "print('Case(d): Z_L must be much greater than Z_2 so that major part of the voltage produced by E_2 is dropped across Z_L')\n",
+ "print(' As Z_L is reduced in proportion to Z_2, the load current increases and more voltage is dropped internally across Z_2')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Load impedance , Z_L = 0.1058 \u03a9\n",
+ "Case(b): Primary input impedance , Z_p = 10.58 \u03a9 (Method 1)\n",
+ " Primary input impedance , Z_p = 10.58 \u03a9 (Method 2)\n",
+ "Case(c): Impedance of load Z_L = 0.1058 \u03a9, is much greater than internal secondary impedance Z_2 = 0.00316 \u03a9\n",
+ " Primary input impedance Z_p = 10.58 \u03a9, is much greater than the internal primary impedance Z_1 = 0.316 \u03a9\n",
+ "Case(d): Z_L must be much greater than Z_2 so that major part of the voltage produced by E_2 is dropped across Z_L\n",
+ " As Z_L is reduced in proportion to Z_2, the load current increases and more voltage is dropped internally across Z_2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.13, Page number 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 500.0 #Rating of the step-down transformer(kVA)\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "r_1 = 0.1 #Primary winding resistance(ohm)\n",
+ "x_1 = 0.3 #Primary winding reactance(ohm)\n",
+ "r_2 = 0.001 #Secondary winding resistance(ohm)\n",
+ "x_2 = 0.003 #Secondary winding reactance(ohm)\n",
+ "Z_L = 0.1058 #Load impedance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = V_1/V_2 #Transformation ratio\n",
+ "R_c1 = r_1+alpha**2*r_2 #Equivalent internal resistance referred to the primary side(ohm)\n",
+ "X_c1 = x_1+alpha**2*x_2 #Equivalent internal reactance referred to the primary side(ohm)\n",
+ "Z_c1 = complex(R_c1,X_c1) #Equivalent internal impedance referred to the primary side(ohm)\n",
+ "Z_c1_m = abs(Z_c1) #Magnitude of Z_e1(ohm)\n",
+ "Z_L_prime = alpha**2*Z_L #Equivalent secondary load impedance referred to the primary side(ohm)\n",
+ "R_L = Z_L #Load resistance(ohm)\n",
+ "X_L = 0 #Load reactance(ohm)\n",
+ "I_1 = V_1/complex((R_c1+alpha**2*R_L),(X_c1+alpha**2*X_L)) #Primary load current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Equivalent internal resistance referred to the primary side , R_c1 = %.1f \u03a9' %R_c1)\n",
+ "print('Case(b): Equivalent internal reactance referred to the primary side , X_c1 = %.1f \u03a9' %X_c1)\n",
+ "print('Case(c): Equivalent internal impedance referred to the primary side , Z_c1 = %.3f \u03a9' %Z_c1_m)\n",
+ "print('Case(d): Equivalent secondary load impedance referred to the primary side , \u03b1^2*Z_L = %.2f \u03a9' %Z_L_prime)\n",
+ "print('Case(e): Primary load current , I_1 = %.f A' %abs(I_1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Equivalent internal resistance referred to the primary side , R_c1 = 0.2 \u03a9\n",
+ "Case(b): Equivalent internal reactance referred to the primary side , X_c1 = 0.6 \u03a9\n",
+ "Case(c): Equivalent internal impedance referred to the primary side , Z_c1 = 0.632 \u03a9\n",
+ "Case(d): Equivalent secondary load impedance referred to the primary side , \u03b1^2*Z_L = 10.58 \u03a9\n",
+ "Case(e): Primary load current , I_1 = 213 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.14, Page number 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 500.0 #Rating of the step-down transformer(kVA)\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "R_e2 = 2.0 #Equivalent resistance referred to the primary side(m\u03a9)\n",
+ "X_e2 = 6.0 #Equivalent reactance referred to the primary side(m\u03a9)\n",
+ "cos_theta2 = 1.0 #Unity PF\n",
+ "\n",
+ "#Calculation\n",
+ "I_2 = kVA/V_2 #Rated secondary current(kA)\n",
+ "R_e2_drop = I_2*R_e2 #Full-load equivalent resistance voltage drop(V)\n",
+ "X_e2_drop = I_2*X_e2 #Full-load equivalent reactance voltage drop(V) \n",
+ "sin_theta2 = (1-cos_theta2**2)**0.5\n",
+ "E_2 = complex((V_2*cos_theta2+I_2*R_e2),(V_2*sin_theta2+I_2*X_e2)) #Induced voltage(V)\n",
+ "E_2_m = abs(E_2) #Magnitude of E_2(V)\n",
+ "VR = (E_2_m-V_2)/V_2*100 #Percent voltage regulation at unity PF(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rated secondary current , I_2 = %.3f kA' %I_2)\n",
+ "print('Case(b): Full-load equivalent resistance voltage drop , I_2*R_e2 = %.2f V' %R_e2_drop)\n",
+ "print('Case(c): Full-load equivalent reactance voltage drop , I_2*X_e2 = %.2f V' %X_e2_drop)\n",
+ "print('Case(d): Induced voltage when the transformer is delivering rated current at unity PF , E_2 = %.2f V' %E_2_m)\n",
+ "print('Case(e): Voltage regulation at unity PF , VR = %.2f percent' %VR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rated secondary current , I_2 = 2.174 kA\n",
+ "Case(b): Full-load equivalent resistance voltage drop , I_2*R_e2 = 4.35 V\n",
+ "Case(c): Full-load equivalent reactance voltage drop , I_2*X_e2 = 13.04 V\n",
+ "Case(d): Induced voltage when the transformer is delivering rated current at unity PF , E_2 = 234.71 V\n",
+ "Case(e): Voltage regulation at unity PF , VR = 2.05 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.15, Page number 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 500.0 #Rating of the step-down transformer(kVA)\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "R_e2 = 2.0 #Equivalent resistance referred to the primary side(m\u03a9)\n",
+ "X_e2 = 6.0 #Equivalent reactance referred to the primary side(m\u03a9)\n",
+ "cos_theta2 = 0.8 #Lagging PF\n",
+ "\n",
+ "#Calculation\n",
+ "I_2 = kVA/V_2 #Rated secondary current(kA)\n",
+ "R_e2_drop = I_2*R_e2 #Full-load equivalent resistance voltage drop(V)\n",
+ "X_e2_drop = I_2*X_e2 #Full-load equivalent reactance voltage drop(V) \n",
+ "sin_theta2 = (1-cos_theta2**2)**0.5\n",
+ "E_2 = complex((V_2*cos_theta2+I_2*R_e2),(V_2*sin_theta2+I_2*X_e2)) #Induced voltage(V)\n",
+ "E_2_m = abs(E_2) #Magnitude of E_2(V)\n",
+ "VR = (E_2_m-V_2)/V_2*100 #Percent voltage regulation(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(d): Induced voltage when the transformer is delivering rated current at 0.8 PF lagging , E_2 = %.2f V' %E_2_m)\n",
+ "print('Case(e): Voltage regulation at 0.8 PF lagging , VR = %.2f percent' %VR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(d): Induced voltage when the transformer is delivering rated current at 0.8 PF lagging , E_2 = 241.43 V\n",
+ "Case(e): Voltage regulation at 0.8 PF lagging , VR = 4.97 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.16, Page number 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 500.0 #Rating of the step-down transformer(kVA)\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "R_e2 = 2.0 #Equivalent resistance referred to the primary side(m\u03a9)\n",
+ "X_e2 = 6.0 #Equivalent reactance referred to the primary side(m\u03a9)\n",
+ "cos_theta2 = 0.6 #Leading PF\n",
+ "\n",
+ "#Calculation\n",
+ "I_2 = kVA/V_2 #Rated secondary current(kA)\n",
+ "R_e2_drop = I_2*R_e2 #Full-load equivalent resistance voltage drop(V)\n",
+ "X_e2_drop = I_2*X_e2 #Full-load equivalent reactance voltage drop(V) \n",
+ "sin_theta2 = (1-cos_theta2**2)**0.5\n",
+ "E_2 = complex((V_2*cos_theta2+I_2*R_e2),(V_2*sin_theta2-I_2*X_e2)) #Induced voltage(V)\n",
+ "E_2_m = abs(E_2) #Magnitude of E_2(V)\n",
+ "VR = (E_2_m-V_2)/V_2*100 #Percent voltage regulation(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(d): Induced voltage when the transformer is delivering rated current at 0.6 PF leading , E_2 = %.1f V' %E_2_m)\n",
+ "print('Case(e): Voltage regulation at 0.6 PF leading , VR = %.2f percent' %VR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(d): Induced voltage when the transformer is delivering rated current at 0.6 PF leading , E_2 = 222.5 V\n",
+ "Case(e): Voltage regulation at 0.6 PF leading , VR = -3.28 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.17, Page number 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "kVA = 20.0 #kVA rating of the step-down transformer\n",
+ "S = 20000.0 #Power rating of the step-down transformer in VA\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "P1 = 250.0 #Wattmeter reading(W)\n",
+ "I1 = 8.7 #Input current(A)\n",
+ "V1 = 50.0 #Input voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = V_1/V_2 #Transformation ratio\n",
+ "#Case(a)\n",
+ "Z_e1 = V1/I1 #Equivalent impedance w.r.t HV side(ohm)\n",
+ "R_e1 = P1/I1**2 #Equivalent resistance w.r.t HV side(ohm)\n",
+ "theta = math.acos(R_e1/Z_e1) #PF angle(radians)\n",
+ "theta_a = theta*180/math.pi #PF angle(degree)\n",
+ "X_e1 = Z_e1*math.sin(theta) #Equivalent reactance w.r.t HV side(ohm)\n",
+ "#Case(b)\n",
+ "Z_e2 = Z_e1/alpha**2 #Equivalent impedance w.r.t LV side(ohm)\n",
+ "R_e2 = R_e1/alpha**2 #Equivalent resistance w.r.t LV side(ohm)\n",
+ "X_e2 = Z_e2*math.sin(theta) #Equivalent reactance w.r.t LV side(ohm)\n",
+ "#Case(c)\n",
+ "I_2 = S/V_2 #Rated secondary load current(A)\n",
+ "R_e2_drop = I_2*R_e2 #Full-load equivalent resistance voltage drop(V)\n",
+ "X_e2_drop = I_2*X_e2 #Full-load equivalent reactance voltage drop(V)\n",
+ "cos_theta2 = 1.0 #Unity PF\n",
+ "sin_theta2 = (1-cos_theta2**2)**0.5\n",
+ "E_2 = complex((V_2*cos_theta2+I_2*R_e2),(V_2*sin_theta2+I_2*X_e2)) #Induced voltage(V)\n",
+ "E_2_m = abs(E_2) #Magnitude of E_2(V)\n",
+ "VR_unity_PF = (E_2_m-V_2)/V_2*100 #Transformer voltage regulation(%)\n",
+ "#Case(d)\n",
+ "cos_theta_2 = 0.7 #Lagging PF\n",
+ "sin_theta_2 = (1-(cos_theta_2)**2)**0.5\n",
+ "E2 = complex((V_2*cos_theta_2+I_2*R_e2),(V_2*sin_theta_2+I_2*X_e2)) #Induced voltage(V)\n",
+ "E2_m = abs(E2) #Magnitude of E2(V)\n",
+ "VR_lag_PF = (E2_m-V_2)/V_2*100 #Transformer voltage regulation(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Equivalent impedance referred to HV side , Z_e1 = %.2f \u03a9' %Z_e1)\n",
+ "print(' Equivalent resistance referred to HV side , R_e1 = %.1f \u03a9' %R_e1)\n",
+ "print(' Equivalent reactance referred to HV side , X_e1 = %.2f \u03a9' %X_e1)\n",
+ "print('Case(b): Equivalent impedance referred to LV side , Z_e2 = %.1f m\u03a9' %(1000*Z_e2))\n",
+ "print(' Equivalent resistance referred to LV side , R_e2 = %.f m\u03a9' %(1000*R_e2))\n",
+ "print(' Equivalent reactance referred to LV side , X_e2 = %.1f m\u03a9' %(1000*X_e2))\n",
+ "print('Case(c): Transformer voltage regulation , VR = %.2f percent' %VR_unity_PF)\n",
+ "print('Case(c): Transformer voltage regulation , VR = %.2f percent' %VR_lag_PF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Equivalent impedance referred to HV side , Z_e1 = 5.75 \u03a9\n",
+ " Equivalent resistance referred to HV side , R_e1 = 3.3 \u03a9\n",
+ " Equivalent reactance referred to HV side , X_e1 = 4.70 \u03a9\n",
+ "Case(b): Equivalent impedance referred to LV side , Z_e2 = 57.5 m\u03a9\n",
+ " Equivalent resistance referred to LV side , R_e2 = 33 m\u03a9\n",
+ " Equivalent reactance referred to LV side , X_e2 = 47.0 m\u03a9\n",
+ "Case(c): Transformer voltage regulation , VR = 1.26 percent\n",
+ "Case(c): Transformer voltage regulation , VR = 2.14 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.18, Page number 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V1_rated = 2300.0 #Primary voltage(V)\n",
+ "V_sc = 50.0 #Short circuit test voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "Pc_sc_Pc = (V_sc/V1_rated)**2 #Fraction of rated core loss\n",
+ "\n",
+ "#Result\n",
+ "print('Fraction of P_c measured by wattmeter , P_c(sc) = %.6f*P_c ' %Pc_sc_Pc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fraction of P_c measured by wattmeter , P_c(sc) = 0.000473*P_c \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.19, Page number 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "kVA = 20.0 #kVA rating of the step-down transformer\n",
+ "S = 20000.0 #Power rating of the step-down transformer in VA\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "P1 = 250.0 #Wattmeter reading(W)\n",
+ "I1 = 8.7 #Input current(A)\n",
+ "V1 = 50.0 #Input voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I1_Ze1 = V1 #HV impedance drop(V)\n",
+ "#Case(b)\n",
+ "theta = math.acos(P1/(V1*I1)) #PF angle(radian)\n",
+ "theta_a = theta*180/math.pi #PF angle(degree)\n",
+ "I1_Re1 = I1_Ze1*math.cos(theta) #HV side resistance volt drop(V)\n",
+ "#Case(c)\n",
+ "I1_Xe1 = I1_Ze1*math.sin(theta) #HV side resistance volt drop(V)\n",
+ "#Case(d)\n",
+ "cos_theta1 = 1.0 #Unity PF\n",
+ "sin_theta1 = (1-cos_theta1**2)**0.5\n",
+ "E1 = complex((V_1*cos_theta1+I1_Re1),(V_1*sin_theta1+I1_Xe1)) #Induced voltage(V)\n",
+ "E1_m = abs(E1) #Magnitude of E1(V)\n",
+ "VR = (E1_m-V_1)/V_1*100 #Transformer voltage regulation at unity PF(%)\n",
+ "#Case(e)\n",
+ "cos_theta_1 = 0.7 #Lagging PF\n",
+ "sin_theta_1 = (1-cos_theta_1**2)**0.5\n",
+ "E_1 = complex((V_1*cos_theta_1+I1_Re1),(V_1*sin_theta_1+I1_Xe1)) #Induced voltage(V)\n",
+ "E_1_m = abs(E_1) #Magnitude of E_1(V)\n",
+ "VR_1 = (E_1_m-V_1)/V_1*100 #Transformer voltage regulation at 0.7 PF lagging(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): High voltage impedance drop , I_1*Z_e1 = %.f V' %I1_Ze1)\n",
+ "print('Case(b): HV side resistance volt drop , I_1*R_e1 = %.2f V' %I1_Re1)\n",
+ "print('Case(c): HV side reactance volt drop , I_1*X_e1 = %.2f V' %I1_Xe1)\n",
+ "print('Case(d): Transformer voltage regulation at unity PF , VR = %.2f percent' %VR)\n",
+ "print('Case(e): Transformer voltage regulation at 0.7 PF lagging , VR = %.2f percent' %VR_1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): High voltage impedance drop , I_1*Z_e1 = 50 V\n",
+ "Case(b): HV side resistance volt drop , I_1*R_e1 = 28.74 V\n",
+ "Case(c): HV side reactance volt drop , I_1*X_e1 = 40.92 V\n",
+ "Case(d): Transformer voltage regulation at unity PF , VR = 1.27 percent\n",
+ "Case(e): Transformer voltage regulation at 0.7 PF lagging , VR = 2.15 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.20, Page number 515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 500.0 #kVA rating of the step-down transformer\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 208.0 #Secondary voltage(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P_sc = 8200.0 #Wattmeter reading in SC test(W)\n",
+ "I_sc = 217.4 #Short circuit current(A)\n",
+ "V_sc = 95.0 #Short circuit voltage(V)\n",
+ "P_oc = 1800.0 #Wattmeter reading in OC test(W)\n",
+ "I_oc = 85.0 #Open circuit current(A)\n",
+ "V_oc = 208.0 #Open circuit voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = V_1/V_2 #Transformation ratio\n",
+ "#Case(a)\n",
+ "P = P_sc #Wattmeter reading(W)\n",
+ "I1 = I_sc #Short circuit current(A)\n",
+ "R_e1 = P/(I1)**2 #Equivalent resistance w.r.t HV side(ohm)\n",
+ "R_e2 = R_e1/alpha**2 #Equivalent resistance referred to LV side(ohm)\n",
+ "#Case(b)\n",
+ "r_2 = R_e2/2 #Resistance of low-voltage side(ohm)\n",
+ "#Case(c)\n",
+ "I_m = I_oc #Open circuit current(A)\n",
+ "P_cu = I_m**2*r_2 #Transformer copper loss of the LV side winding during OC-test(W)\n",
+ "#Case(d)\n",
+ "P_c = P_oc-P_cu #Transformer core loss(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Equivalent resistance to low voltage side , R_e2 = %.3f m\u03a9' %(1000*R_e2))\n",
+ "print('Case(b): Resistance of low voltage side , r_2 = %.2f m\u03a9' %(1000*r_2))\n",
+ "print('Case(c): Transformer copper loss of the LV side winding during OC-test , I_m^2*r_2 = %.2f W' %P_cu)\n",
+ "print('Case(d): Transformer core loss when rated voltage is applied , P_c = %.1f W' %P_c)\n",
+ "print('Case(e): Yes.The error is approximately 5/1800 = 0.278 percent, which is within error produced by the instruments used in test');\n",
+ "print(' We may assume that the core loss is %d W' %P_oc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Equivalent resistance to low voltage side , R_e2 = 1.419 m\u03a9\n",
+ "Case(b): Resistance of low voltage side , r_2 = 0.71 m\u03a9\n",
+ "Case(c): Transformer copper loss of the LV side winding during OC-test , I_m^2*r_2 = 5.13 W\n",
+ "Case(d): Transformer core loss when rated voltage is applied , P_c = 1794.9 W\n",
+ "Case(e): Yes.The error is approximately 5/1800 = 0.278 percent, which is within error produced by the instruments used in test\n",
+ " We may assume that the core loss is 1800 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.21, Page number 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_sc = 50.0 #Short circuit voltage(V)\n",
+ "V_1 = 2300.0 #Rated primary voltage(V)\n",
+ "P_c = 1.8 #Core losses(kW)\n",
+ "P_k = 1.8 #Fixed losses(kW)\n",
+ "P_cu_rated = 8.2 #Rated copper loss(kW)\n",
+ "kVA = 500.0 #Power rating(kVA)\n",
+ "PF = 1.0 #Power factor\n",
+ "P_o = kVA*PF #Full-load output at unity PF(kW)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "LF1 = 1.0/4 #Load fraction\n",
+ "LF2 = 1.0/2 #Load fraction\n",
+ "LF3 = 3.0/4 #Load fraction\n",
+ "LF4 = 5.0/4 #Load fraction\n",
+ "P_cu_fl = 8.2 #Equivalent copper loss at full-load slip(kW)\n",
+ "P_cu_LF1 = LF1**2*P_cu_fl #Equivalent copper loss at 1/4 rated load(kW)\n",
+ "P_cu_LF2 = LF2**2*P_cu_fl #Equivalent copper loss at 1/2 rated load(kW)\n",
+ "P_cu_LF3 = LF3**2*P_cu_fl #Equivalent copper loss at 3/4 rated load(kW)\n",
+ "P_cu_LF4 = LF4**2*P_cu_fl ; #Equivalent copper loss at 5/4 rated load(kW)\n",
+ "P_L_fl = P_c+P_cu_fl #Total losses at rated load(kW)\n",
+ "P_L_1 = P_c+P_cu_LF1 #Total losses at 1/4 rated load(kW)\n",
+ "P_L_2 = P_c+P_cu_LF2 #Total losses at 1/2 rated load(kW)\n",
+ "P_L_3 = P_c+P_cu_LF3 #Total losses at 3/4 rated load(kW)\n",
+ "P_L_4 = P_c+P_cu_LF4 #Total losses at 5/4 rated load(kW)\n",
+ "P_o_fl = P_o #Total output at rated load(kW)\n",
+ "P_o_1 = P_o*LF1 #Total output at 1/4 rated load(kW)\n",
+ "P_o_2 = P_o*LF2 #Total output at 1/2 rated load(kW)\n",
+ "P_o_3 = P_o*LF3 #Total output at 3/4 rated load(kW)\n",
+ "P_o_4 = P_o*LF4 #Total output at 5/4 rated load(kW)\n",
+ "P_in_fl = P_L_fl+P_o_fl #Total input at rated load(kW)\n",
+ "P_in_1 = P_L_1+P_o_1 #Total input at 1/4 rated load(kW)\n",
+ "P_in_2 = P_L_2+P_o_2 #Total input at 1/2 rated load(kW)\n",
+ "P_in_3 = P_L_3+P_o_3 #Total input at 3/4 rated load(kW)\n",
+ "P_in_4 = P_L_4+P_o_4 #Total input at 5/4 rated load(kW)\n",
+ "n_fl = (P_o_fl/P_in_fl)*100 #Efficiency at rated load(%)\n",
+ "n_1 = (P_o_1/P_in_1)*100 #Efficiency at 1/4 rated load(%)\n",
+ "n_2 = (P_o_2/P_in_2)*100 #Efficiency at 1/2 rated load(%)\n",
+ "n_3 = (P_o_3/P_in_3)*100 #Efficiency at 3/4 rated load(%)\n",
+ "n_4 = (P_o_4/P_in_4)*100 #Efficiency at 5/4 rated load(%)\n",
+ "#Case(b)\n",
+ "PF_b = 0.8 #PF lagging\n",
+ "Po_fl = P_o*PF_b #Total output at 1rated load(kW)\n",
+ "Po_1 = P_o*LF1*PF_b #Total output at 1/4 rated load(kW)\n",
+ "Po_2 = P_o*LF2*PF_b #Total output at 1/2 rated load(kW)\n",
+ "Po_3 = P_o*LF3*PF_b #Total output at 3/4 rated load(kW)\n",
+ "Po_4 = P_o*LF4*PF_b #Total output at 5/4 rated load(kW)\n",
+ "Pin_fl = P_L_fl+Po_fl #Total input at rated load(kW)\n",
+ "Pin_1 = P_L_1+Po_1 #Total input at 1/4 rated load(kW)\n",
+ "Pin_2 = P_L_2+Po_2 #Total input at 1/2 rated load(kW)\n",
+ "Pin_3 = P_L_3+Po_3 #Total input at 3/4 rated load(kW)\n",
+ "Pin_4 = P_L_4+Po_4 #Total input at 5/4 rated load(kW)\n",
+ "nfl = (Po_fl/Pin_fl)*100 #Efficiency at rated load(%)\n",
+ "n1 = (Po_1/Pin_1)*100 #Efficiency at 1/4 rated load(%)\n",
+ "n2 = (Po_2/Pin_2)*100 #Efficiency at 1/2 rated load(%)\n",
+ "n3 = (Po_3/Pin_3)*100 #Efficiency at 3/4 rated load(%)\n",
+ "n4 = (Po_4/Pin_4)*100 #Efficiency at 5/4 rated load(%)\n",
+ "#Case(c)\n",
+ "R_e2 = 1.417*10**-3 #Equivalent resistance referred to LV side(ohm)\n",
+ "Pc = 1800.0 #Core losses(W)\n",
+ "I_2 = (Pc/R_e2)**0.5 #Load current for maximum efficiency invariant of LF(A)\n",
+ "#Case(d)\n",
+ "V = 208.0 #Voltage rating(V)\n",
+ "I_2_rated = kVA*1000/V #Rated secondary current(A)\n",
+ "LF_max = I_2/I_2_rated #Load fraction for maximum efficiency\n",
+ "#Case(e)\n",
+ "cos_theta = 1.0 #Unity PF\n",
+ "V_2 = V #Secondary voltage(V)\n",
+ "n_max_e = (V_2*I_2*cos_theta)/((V_2*I_2*cos_theta)+(Pc+I_2**2*R_e2))*100 #Maximum efficiency(%)\n",
+ "#Case(f)\n",
+ "cos_theta2 = 0.8 #PF lagging\n",
+ "n_max_f = (V_2*I_2*cos_theta2)/((V_2*I_2*cos_theta2)+(Pc+I_2**2*R_e2))*100 #Maximum efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Tabulation at unity PF:')\n",
+ "print('__________________________________________________________________________________________________________')\n",
+ "print('L.F \\t Core loss \\t Copper loss \\tTotal loss \\t Total Output \\t Total Input \\t Efficiency')\n",
+ "print(' \\t (kW) \\t (kW) \\t P_L (kW) \\t P_o(kW) \\t P_L+P_o(kW) \\t P_o/P_in(percent)')\n",
+ "print('__________________________________________________________________________________________________________')\n",
+ "print('%.2f \\t %.1f \\t\\t %.3f \\t %.3f \\t\\t %.1f \\t %.2f \\t %.2f' %(LF1,P_c,P_cu_LF1,P_L_1,P_o_1,P_in_1,n_1))\n",
+ "print('%.2f \\t %.1f \\t\\t %.3f \\t %.2f \\t\\t %.1f \\t %.2f \\t %.2f' %(LF2,P_c,P_cu_LF2,P_L_2,P_o_2,P_in_2,n_2))\n",
+ "print('%.2f \\t %.1f \\t\\t %.3f \\t %.2f \\t\\t %.1f \\t %.2f \\t %.2f' %(LF3,P_c,P_cu_LF3,P_L_3,P_o_3,P_in_3,n_3))\n",
+ "print('1 \\t %.1f \\t\\t %.3f \\t %.2f \\t\\t %.1f \\t %.1f \\t %.2f' %(P_c,P_cu_fl,P_L_fl,P_o_fl,P_in_fl,n_fl))\n",
+ "print('%.2f \\t %.1f \\t\\t %.3f \\t %.1f \\t\\t %.1f \\t %.1f \\t %.2f' %(LF4,P_c,P_cu_LF4,P_L_4,P_o_4,P_in_4,n_4))\n",
+ "print('__________________________________________________________________________________________________________')\n",
+ "print('\\nCase(b): Tabulation at 0.8 PF lagging:')\n",
+ "print('__________________________________________________________________________________________________________')\n",
+ "print('L.F \\t Core loss \\t Copper loss \\tTotal loss \\t Total Output \\t Total Input \\t Efficiency')\n",
+ "print('\\t (kW) \\t (kW) \\t P_L (kW) \\t P_o(kW) \\t P_L+P_o(kW)\\t P_o/P_in(percent)')\n",
+ "print('__________________________________________________________________________________________________________')\n",
+ "print('%.2f \\t %.1f \\t\\t %.3f \\t %.3f \\t\\t %.1f \\t %.2f \\t %.2f' %(LF1,P_c,P_cu_LF1,P_L_1,Po_1,Pin_1,n1))\n",
+ "print('%.2f \\t %.1f \\t\\t %.2f \\t %.2f \\t\\t %.1f \\t %.2f \\t %.2f' %(LF2,P_c,P_cu_LF2,P_L_2,Po_2,Pin_2,n2))\n",
+ "print('%.2f \\t %.1f \\t\\t %.2f \\t %.2f \\t\\t %.1f \\t %.2f \\t %.2f' %(LF3,P_c,P_cu_LF3,P_L_3,Po_3,Pin_3,n3))\n",
+ "print('1 \\t %.1f \\t\\t %.1f \\t\\t %.2f \\t\\t %.1f \\t %.f \\t\\t %.2f' %(P_c,P_cu_fl,P_L_fl,Po_fl,Pin_fl,nfl))\n",
+ "print('%.2f \\t %.1f \\t\\t %.1f \\t %.1f \\t\\t %.1f \\t %.1f \\t %.2f' %(LF4,P_c,P_cu_LF4,P_L_4,Po_4,Pin_4,n4))\n",
+ "print('__________________________________________________________________________________________________________\\n')\n",
+ "print('Case(c): Load current at which maximum efficiency occurs regardless of load PF , I_2 = %.1f A' %I_2)\n",
+ "print('Case(d): Load fraction at which maximum efficiency occurs = %.3f (approximately half rated load)' %LF_max)\n",
+ "print('Case(e): Maximum efficiency at unity PF , \u03b7_max = %.2f percent' %n_max_e)\n",
+ "print('Case(f): Maximum efficiency at 0.8 PF lagging , \u03b7_max = %.2f percent' %n_max_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Tabulation at unity PF:\n",
+ "__________________________________________________________________________________________________________\n",
+ "L.F \t Core loss \t Copper loss \tTotal loss \t Total Output \t Total Input \t Efficiency\n",
+ " \t (kW) \t (kW) \t P_L (kW) \t P_o(kW) \t P_L+P_o(kW) \t P_o/P_in(percent)\n",
+ "__________________________________________________________________________________________________________\n",
+ "0.25 \t 1.8 \t\t 0.512 \t 2.312 \t\t 125.0 \t 127.31 \t 98.18\n",
+ "0.50 \t 1.8 \t\t 2.050 \t 3.85 \t\t 250.0 \t 253.85 \t 98.48\n",
+ "0.75 \t 1.8 \t\t 4.612 \t 6.41 \t\t 375.0 \t 381.41 \t 98.32\n",
+ "1 \t 1.8 \t\t 8.200 \t 10.00 \t\t 500.0 \t 510.0 \t 98.04\n",
+ "1.25 \t 1.8 \t\t 12.812 \t 14.6 \t\t 625.0 \t 639.6 \t 97.72\n",
+ "__________________________________________________________________________________________________________\n",
+ "\n",
+ "Case(b): Tabulation at 0.8 PF lagging:\n",
+ "__________________________________________________________________________________________________________\n",
+ "L.F \t Core loss \t Copper loss \tTotal loss \t Total Output \t Total Input \t Efficiency\n",
+ "\t (kW) \t (kW) \t P_L (kW) \t P_o(kW) \t P_L+P_o(kW)\t P_o/P_in(percent)\n",
+ "__________________________________________________________________________________________________________\n",
+ "0.25 \t 1.8 \t\t 0.512 \t 2.312 \t\t 100.0 \t 102.31 \t 97.74\n",
+ "0.50 \t 1.8 \t\t 2.05 \t 3.85 \t\t 200.0 \t 203.85 \t 98.11\n",
+ "0.75 \t 1.8 \t\t 4.61 \t 6.41 \t\t 300.0 \t 306.41 \t 97.91\n",
+ "1 \t 1.8 \t\t 8.2 \t\t 10.00 \t\t 400.0 \t 410 \t\t 97.56\n",
+ "1.25 \t 1.8 \t\t 12.8 \t 14.6 \t\t 500.0 \t 514.6 \t 97.16\n",
+ "__________________________________________________________________________________________________________\n",
+ "\n",
+ "Case(c): Load current at which maximum efficiency occurs regardless of load PF , I_2 = 1127.1 A\n",
+ "Case(d): Load fraction at which maximum efficiency occurs = 0.469 (approximately half rated load)\n",
+ "Case(e): Maximum efficiency at unity PF , \u03b7_max = 98.49 percent\n",
+ "Case(f): Maximum efficiency at 0.8 PF lagging , \u03b7_max = 98.12 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.22, Page number 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "P = 20.0 #Power rating of the transformer(kVA)\n",
+ "P_sc = 250.0 #Power measured(W)\n",
+ "V_sc = 50.0 #Short circuit voltage(V)\n",
+ "I_sc = 8.7 #Short circuit current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_1b = V_1 #Base voltage(V)\n",
+ "Z_eq_pu = V_sc/V_1\n",
+ "beta = math.acos(P_sc/(V_sc*I_sc)) #Angle(radian)\n",
+ "beta_a = beta*180/math.pi #Angle(degree)\n",
+ "Zeq_pu = Z_eq_pu*cmath.exp(1j*beta) #Equivalent pu impedance\n",
+ "#Case(b)\n",
+ "PF_b = 1.0 #Unity PF\n",
+ "theta_b = math.acos(PF_b)*180/math.pi #PF angle(degree)\n",
+ "V_1_pu = 1.0*cmath.exp(1j*0*math.pi/180)+1.0*cmath.exp(1j*theta_b*math.pi/180)*Zeq_pu #pu voltage\n",
+ "V_1_pu_m = abs(V_1_pu) #Magnitude of V_1_pu\n",
+ "#Case(c)\n",
+ "theta = math.acos(0.7)*180/math.pi #Power factor angle(degrees)\n",
+ "V1_pu = 1.0*cmath.exp(1j*0*math.pi/180)+1.0*cmath.exp(1j*(-theta)*math.pi/180)*Zeq_pu #pu voltage\n",
+ "V1_pu_m = abs(V1_pu) #Magnitude of V1_pu\n",
+ "#Case(d)\n",
+ "VR_unity_PF = (V_1_pu_m-1.0)*100 #Voltage regulation at unity PF(%)\n",
+ "#Case(e)\n",
+ "VR_lag_PF = (V1_pu_m-1.0)*100 #Voltage regulation at 0.7 lagging PF(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Z_eq(pu)\u2220\u03b2 = %.5f\u2220%.f\u00b0 p.u' %(abs(Z_eq_pu),beta_a))\n",
+ "print('Case(b): V_1(pu) at unity PF , |V_1(pu)| = %.4f ' %V_1_pu_m)\n",
+ "print('Case(c): V_1(pu) at 0.7 PF lagging , |V_1(pu)| = %.5f ' %V1_pu_m)\n",
+ "print('Case(d): Voltage regulation at unity PF , VR = %.2f percent' %VR_unity_PF)\n",
+ "print('Case(e): Voltage regulation at 0.7 PF lagging , VR = %.2f percent' %VR_lag_PF)\n",
+ "print('Case(f): VRs as found by p.u method are essentially the same as those found in Exs.14-17 and 14-19 using the same data, for the same transformer but with much less effort')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Z_eq(pu)\u2220\u03b2 = 0.02174\u222055\u00b0 p.u\n",
+ "Case(b): V_1(pu) at unity PF , |V_1(pu)| = 1.0127 \n",
+ "Case(c): V_1(pu) at 0.7 PF lagging , |V_1(pu)| = 1.02146 \n",
+ "Case(d): Voltage regulation at unity PF , VR = 1.27 percent\n",
+ "Case(e): Voltage regulation at 0.7 PF lagging , VR = 2.15 percent\n",
+ "Case(f): VRs as found by p.u method are essentially the same as those found in Exs.14-17 and 14-19 using the same data, for the same transformer but with much less effort\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.23, Page number 521"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "S = 500.0 #Power rating of the transformer(kVA)\n",
+ "f= 60.0 #Frequency(Hz)\n",
+ "V_oc = 208.0 #Open circuit voltage(V)\n",
+ "I_oc = 85.0 #Open circuit current(A)\n",
+ "P_oc = 1800.0 #Power measured(W)\n",
+ "V_sc = 95.0 #Short circuit voltage(V)\n",
+ "I_sc = 217.4 #Short circuit current(A)\n",
+ "P_sc = 8200.0 #Power measured(W)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "S_b = S ; #Base voltage(kVA)\n",
+ "Psc = 8.2 #Power measured in kW during SC-test\n",
+ "P_Cu_pu = Psc/S_b #Per unit value of P_Cu at rated load\n",
+ "#Case(b)\n",
+ "Poc = 1.8 #Power measured during OC-test(kW)\n",
+ "P_CL_pu = Poc/S_b #Per unit value of P_CL at rated load\n",
+ "#Case(c)\n",
+ "PF = 1.0 #Unity Power factor\n",
+ "n_pu = PF/(PF+P_CL_pu+P_Cu_pu)*100 #Efficiency at rated load,unity PF(%)\n",
+ "#Case(d)\n",
+ "PF_d = 0.8 #Lagging Power factor\n",
+ "n_pu_d = PF_d/(PF_d+P_CL_pu+P_Cu_pu)*100 #Efficiency at rated load,0.8 lagging PF\n",
+ "#Case(e)\n",
+ "LF = (P_CL_pu/P_Cu_pu)**0.5 #Load fraction producing maximum efficiency\n",
+ "#Case(f)\n",
+ "n_pu_max = (LF*PF)/((LF*PF)+2*(P_CL_pu))*100 #Maximum efficiency at unity PF load\n",
+ "#Case(f)\n",
+ "n_pu_max_g = (LF*PF_d)/((LF*PF_d)+2*(P_CL_pu))*100 #Maximum efficiency at 0.8 lagging PF load\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Per unit copper loss at rated load , P_Cu(pu) = %.4f p.u = R_eq(pu)' %P_Cu_pu)\n",
+ "print('Case(b): Per unit core loss at rated load , P_CL(pu) = %.4f p.u' %P_CL_pu)\n",
+ "print('Case(c): Efficiency at rated load, unity PF , \u03b7_pu = %.2f percent' %n_pu)\n",
+ "print('Case(d): Efficiency at rated load, 0.8 PF lagging , \u03b7_pu = %.2f percent' %n_pu_d)\n",
+ "print('Case(e): Load fraction producing maximum efficiency , L.F = %.3f ' %LF)\n",
+ "print('Case(f): Maximum efficiency at unity PF load , \u03b7_pu = %.2f percent' %n_pu_max)\n",
+ "print('Case(g): Maximum efficiency at 0.8 PF lagging , \u03b7_pu = %.2f percent' %n_pu_max_g)\n",
+ "print('Case(h): All efficiency values are identical to those computed in solution to Ex.14-21')\n",
+ "print('Case(i): Per-unit method is much simpler and less subject to error than conventional method')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Per unit copper loss at rated load , P_Cu(pu) = 0.0164 p.u = R_eq(pu)\n",
+ "Case(b): Per unit core loss at rated load , P_CL(pu) = 0.0036 p.u\n",
+ "Case(c): Efficiency at rated load, unity PF , \u03b7_pu = 98.04 percent\n",
+ "Case(d): Efficiency at rated load, 0.8 PF lagging , \u03b7_pu = 97.56 percent\n",
+ "Case(e): Load fraction producing maximum efficiency , L.F = 0.469 \n",
+ "Case(f): Maximum efficiency at unity PF load , \u03b7_pu = 98.49 percent\n",
+ "Case(g): Maximum efficiency at 0.8 PF lagging , \u03b7_pu = 98.12 percent\n",
+ "Case(h): All efficiency values are identical to those computed in solution to Ex.14-21\n",
+ "Case(i): Per-unit method is much simpler and less subject to error than conventional method\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.24, Page number 521"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "S = 500.0 #Power rating of the transformer(kVA)\n",
+ "f= 60.0 #Frequency(Hz)\n",
+ "V_oc = 208.0 #Open circuit voltage(V)\n",
+ "I_oc = 85.0 #Open circuit current(A)\n",
+ "P_oc = 1800.0 #Power measured(W)\n",
+ "V_sc = 95.0 #Short circuit voltage(V)\n",
+ "I_sc = 217.4 #Short circuit current(A)\n",
+ "P_sc = 8200.0 #Power measured(W)\n",
+ "\n",
+ "#Calculation\n",
+ "S_b = S ; #Base voltage(kVA)\n",
+ "Psc = 8.2 #Power measured in kW during SC-test\n",
+ "P_Cu_pu = Psc/S_b #Per unit value of P_Cu at rated load\n",
+ "Poc = 1.8 #Power measured during OC-test(kW)\n",
+ "P_CL_pu = Poc/S_b #Per unit value of P_CL at rated load\n",
+ "#Case(a)\n",
+ "LF1 = 3.0/4 #Load fraction of rated load \n",
+ "PF1 = 1.0 #Unity Power factor\n",
+ "n_pu_LF1 = (LF1*PF1)/((LF1*PF1)+P_CL_pu+(LF1)**2*P_Cu_pu)*100 #Efficiency at rated load,unity PF(%)\n",
+ "#Case(b)\n",
+ "LF2 = 1.0/4 #Load fraction of rated load\n",
+ "PF2 = 0.8 #Lagging PF\n",
+ "n_pu_LF2 = (LF2*PF2)/((LF2*PF2)+P_CL_pu+(LF2)**2*P_Cu_pu)*100 #Efficiency at 1/4 rated load,0.8 lagging PF(%)\n",
+ "#Case(c)\n",
+ "LF3 = 5.0/4 #Load fraction of rated load\n",
+ "PF3 = 0.8 #Leading PF\n",
+ "n_pu_LF3 = (LF3*PF3)/((LF3*PF3)+P_CL_pu+(LF3)**2*P_Cu_pu)*100 #Efficiency at r1/4 rated load,0.8 leading PF(%)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): p.u efficiency at 3/4 load unity PF , \u03b7_pu = %.2f percent' %n_pu_LF1)\n",
+ "print('Case(b): p.u efficiency at 1/4 load 0.8 PF lagging , \u03b7_pu = %.2f percent' %n_pu_LF2)\n",
+ "print('Case(c): p.u efficiency at 5/4 load 0.8 PF leading , \u03b7_pu = %.2f percent' %n_pu_LF3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): p.u efficiency at 3/4 load unity PF , \u03b7_pu = 98.32 percent\n",
+ "Case(b): p.u efficiency at 1/4 load 0.8 PF lagging , \u03b7_pu = 97.74 percent\n",
+ "Case(c): p.u efficiency at 5/4 load 0.8 PF leading , \u03b7_pu = 97.16 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.25, Page number 522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "kVA_1 = 500.0 #Power rating of the transformer 1(kVA)\n",
+ "R_1_pu = 0.01 #Per-unit value of resistance of the transformer 1\n",
+ "X_1_pu = 0.05 #Per-unit value of reactance of the transformer 1\n",
+ "Z_1_pu = complex(R_1_pu,X_1_pu) #Per-unit value of impedance of the transformer 1\n",
+ "PF = 0.8 #Lagging PF\n",
+ "V_2 = 400.0 #Secondary voltage(V)\n",
+ "S_load = 750.0 #Increased system load(kVA)\n",
+ "kVA_2 = 250.0 #Power rating of the transformer 2(kVA)\n",
+ "R_pu_2 = 0.015 #Per-unit value of resistance of the transformer 2\n",
+ "X_pu_2 = 0.04 #Per-unit value of reactance of the transformer 2\n",
+ "\n",
+ "#Calculation\n",
+ "Z_pu_1 = complex(R_pu_2,X_pu_2) #New transformer p.u. impedance\n",
+ "#Case(a)\n",
+ "V_b1 = 400.0 #Base voltage(V)\n",
+ "V_b2 = 400.0 #Base voltage(V)\n",
+ "Z_pu_2 = (kVA_1/kVA_2)*(V_b1/V_b2)**2*(Z_pu_1) #New transformer p.u impedance\n",
+ "Z_2_pu = Z_pu_2 #New transformer p.u impedance\n",
+ "#Case(b)\n",
+ "cos_theta = PF #Power factor\n",
+ "sin_theta = (1-(cos_theta)**2)**0.5\n",
+ "S_t_conjugate = (kVA_1+kVA_2)*complex(cos_theta,sin_theta) #kVA of total load\n",
+ "#Case(c)\n",
+ "S_2_conjugate = S_t_conjugate*(Z_1_pu/(Z_1_pu+Z_2_pu)) #Portion of load carried by the smaller transformer(kVA)\n",
+ "S_2_conjugate_m = abs(S_2_conjugate) #Magnitude of S_2_conjugate(kVA)\n",
+ "S_2_conjugate_a = cmath.phase(S_2_conjugate)*180/math.pi #Phase angle of S_2_conjugate(degree)\n",
+ "#Case(d)\n",
+ "S_1_conjugate = S_t_conjugate*(Z_2_pu/(Z_1_pu+Z_2_pu)) #Portion of load carried by the original transformer(kVA)\n",
+ "S_1_conjugate_m = abs(S_1_conjugate) #Magnitude of S_1_conjugate(kVA)\n",
+ "S_1_conjugate_a = cmath.phase(S_1_conjugate)*180/math.pi #Phase angle of S_1_conjugate(degree)\n",
+ "#Case(e)\n",
+ "S_1 = S_1_conjugate_m\n",
+ "S_b1 = kVA_1 #Base power of trancsformer 1(kVA)\n",
+ "LF1 = (S_1/S_b1)*100 #Load factor of the original transformer(%)\n",
+ "#Case(f)\n",
+ "S_2 = S_2_conjugate_m\n",
+ "S_b2 = kVA_2 #Base power of trancsformer 1(kVA)\n",
+ "LF2 = (S_2/S_b2)*100 #Load factor of the new transformer(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): New transformer p.u impedance , Z_p.u.2 = (%.2f+j%.2f) p.u' %(Z_pu_2.real,Z_pu_2.imag))\n",
+ "print('Case(b): kVA of total load , S*_t = (%.f+j%.f) kVA ' %(S_t_conjugate.real,S_t_conjugate.imag))\n",
+ "print('Case(c): Portion of load now carried by the smaller transformer , S*_2 = (%.2f+j%.2f) kVA = %.1f\u2220%.1f\u00b0 kVA' %(S_2_conjugate.real,S_2_conjugate.imag,S_2_conjugate_m,S_2_conjugate_a))\n",
+ "print('Case(d): Portion of load now carried by the original transformer , S*_1 = (%.2f+j%.1f) kVA = %.1f\u2220%.1f\u00b0 kVA' %(S_1_conjugate.real,S_1_conjugate.imag,S_1_conjugate_m,S_1_conjugate_a))\n",
+ "print('Case(e): Load factor of the original transformer , L.F_1 = %.1f percent' %LF1)\n",
+ "print('Case(f): Load factor of the new transformer , L.F_w = %.1f percent' %LF2)\n",
+ "print('Case(g): Yes. Reduce no-load voltage of the new transformer to some value below that of its present value so that its share of the load is reduced')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): New transformer p.u impedance , Z_p.u.2 = (0.03+j0.08) p.u\n",
+ "Case(b): kVA of total load , S*_t = (600+j450) kVA \n",
+ "Case(c): Portion of load now carried by the smaller transformer , S*_2 = (206.76+j190.54) kVA = 281.2\u222042.7\u00b0 kVA\n",
+ "Case(d): Portion of load now carried by the original transformer , S*_1 = (393.24+j259.5) kVA = 471.1\u222033.4\u00b0 kVA\n",
+ "Case(e): Load factor of the original transformer , L.F_1 = 94.2 percent\n",
+ "Case(f): Load factor of the new transformer , L.F_w = 112.5 percent\n",
+ "Case(g): Yes. Reduce no-load voltage of the new transformer to some value below that of its present value so that its share of the load is reduced\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.26, Page number 523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "kVA_1 = 500.0 #Power rating of the transformer 1(kVA)\n",
+ "R_1_pu = 0.01 #Per-unit value of resistance of the transformer 1\n",
+ "X_1_pu = 0.05 #Per-unit value of reactance of the transformer 1\n",
+ "Z_1_pu = complex(R_1_pu,X_1_pu) #Per-unit value of impedance of the transformer 1\n",
+ "PF = 0.8 #Lagging PF\n",
+ "V = 400.0 #Secondary voltage(V)\n",
+ "S_load = 750.0 #Increased system load(kVA)\n",
+ "kVA_2 = 250.0 #Power rating of the transformer 2(kVA)\n",
+ "R_pu_2 = 0.015 #Per-unit value of resistance of the transformer 2\n",
+ "X_pu_2 = 0.04 #Per-unit value of reactance of the transformer 2\n",
+ "\n",
+ "#Calculation\n",
+ "Z_pu_1 = complex(R_1_pu,X_1_pu) #New transformer p.u. impedance\n",
+ "Z_pu1 = complex(R_pu_2,X_pu_2) #New transformer p.u. impedance\n",
+ "#Case(a)\n",
+ "V_b = V #Base voltage(V)\n",
+ "#Case(b)\n",
+ "S_b = kVA_1 #Base power(kVA)\n",
+ "I_b = S_b/V_b*1000 #Base current(A)\n",
+ "#Case(c)\n",
+ "Zb = V_b/I_b #Base impedance(ohm). Method 1\n",
+ "Z_b = V**2/(S_b*1000) #Base impedance(ohm). Method 2\n",
+ "#Case(d)\n",
+ "Z_1 = Z_b*Z_pu_1*1000 #Actual impedance of larger transformer(m\u03a9)\n",
+ "Z_1_m = abs(Z_1) #Magnitude of Z_1(\u03a9)\n",
+ "Z_1_a = cmath.phase(Z_1)*180/math.pi #Phase angle of Z_1(degree)\n",
+ "#Case(e)\n",
+ "V_b1 = V_b #Base voltage(V)\n",
+ "V_b2 = V_b #Base voltage(V)\n",
+ "Z_pu_2 = (kVA_1/kVA_2)*(V_b1/V_b2)**2*(Z_pu1) #New transformer p.u impedance\n",
+ "Z_2_pu = Z_pu_2\n",
+ "Z_2 = Z_b*Z_2_pu*1000 #Actual impedance of smaller transformer(m\u03a9)\n",
+ "Z_2_m = abs(Z_2) #Magnitude of Z_2(\u03a9)\n",
+ "Z_2_a = cmath.phase(Z_2)*180/math.pi #Phase angle of Z_2(degree)\n",
+ "#Case(f)\n",
+ "cos_theta = 0.8 #Lagging power factor\n",
+ "sin_theta = (1-(cos_theta)**2)**0.5\n",
+ "S_T = (kVA_1+kVA_2)*complex(cos_theta,-sin_theta) #kVA of total load\n",
+ "I_T = S_T*1000/V_b #Total current(A)\n",
+ "I_1 = I_T*(Z_2/(Z_1+Z_2)) #Actual current delivered by larger transformer(A)\n",
+ "I_1_m = abs(I_1) #Magnitude of I_1(A)\n",
+ "I_1_a = cmath.phase(I_1)*180/math.pi #Phase angle of I_1(degree)\n",
+ "#Case(g)\n",
+ "I_2 = I_T*(Z_1/(Z_1+Z_2)) #Actual current delivered by smaller transformer(A)\n",
+ "I_2_m = abs(I_2) #Magnitude of I_2(A)\n",
+ "I_2_a = cmath.phase(I_2)*180/math.pi #Phase angle of I_2(degree)\n",
+ "#Case(h)\n",
+ "Z1 = Z_1/1000 #Actual impedance of larger transformer(\u03a9)\n",
+ "E_1 = I_1*Z1+V_b #No-load voltage of larger transformer(V)\n",
+ "E_1_m = abs(E_1) #Magnitude of E_1(V)\n",
+ "E_1_a = cmath.phase(E_1)*180/math.pi #Phase angle of E_1(degree)\n",
+ "#Case(i)\n",
+ "Z2 = Z_2/1000 #Actual impedance of smaller transformer(\u03a9)\n",
+ "E_2 = I_2*Z2+V_b #No-load voltage of smaller transformer(V)\n",
+ "E_2_m = abs(E_2) #Magnitude of E_2(V)\n",
+ "E_2_a = cmath.phase(E_2)*180/math.pi #Phase angle of E_2(degree)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Base voltage , V_b = %.f V' %V_b)\n",
+ "print('Case(b): Base current , I_b = %.2f kA' %(I_b/1000))\n",
+ "print('Case(c): Base impedance , Z_b = %.2f \u03a9 (Method 1)' %Zb)\n",
+ "print(' Base impedance , Z_b = %.2f \u03a9 (Method 2)' %Z_b)\n",
+ "print('Case(d): Actual impedance of larger transformer , Z_1 = %.2f\u2220%.1f\u00b0 m\u03a9' %(Z_1_m,Z_1_a))\n",
+ "print('Case(e): Actual impedance of smaller transformer , Z_2 = %.2f\u2220%.2f\u00b0 m\u03a9' %(Z_2_m,Z_2_a))\n",
+ "print('Case(f): Actual current delivered by larger transformer , I_1 = %.f\u2220%.2f\u00b0 A' %(I_1_m,I_1_a))\n",
+ "print('Case(g): Actual current delivered by smaller transformer , I_2 = %.1f\u2220%.1f\u00b0 A' %(I_2_m,I_2_a))\n",
+ "print('Case(h): No-load voltage of larger transformer , E_1 = %.2f\u2220%.2f\u00b0 V' %(E_1_m,E_1_a))\n",
+ "print('Case(i): No-load voltage of smaller transformer , E_2 = %.2f\u2220%.2f\u00b0 V' %(E_2_m,E_2_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Base voltage , V_b = 400 V\n",
+ "Case(b): Base current , I_b = 1.25 kA\n",
+ "Case(c): Base impedance , Z_b = 0.32 \u03a9 (Method 1)\n",
+ " Base impedance , Z_b = 0.32 \u03a9 (Method 2)\n",
+ "Case(d): Actual impedance of larger transformer , Z_1 = 16.32\u222078.7\u00b0 m\u03a9\n",
+ "Case(e): Actual impedance of smaller transformer , Z_2 = 27.34\u222069.44\u00b0 m\u03a9\n",
+ "Case(f): Actual current delivered by larger transformer , I_1 = 1178\u2220-40.32\u00b0 A\n",
+ "Case(g): Actual current delivered by smaller transformer , I_2 = 702.9\u2220-31.1\u00b0 A\n",
+ "Case(h): No-load voltage of larger transformer , E_1 = 415.24\u22201.65\u00b0 V\n",
+ "Case(i): No-load voltage of smaller transformer , E_2 = 415.24\u22201.65\u00b0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.27, Page number 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P_L = 14400.0 #Load output power(W)\n",
+ "V_L = 120.0 #Load voltage(V)\n",
+ "V_b1 = 120.0 #Base voltage at point 1(V)\n",
+ "V_b2 = 600.0 #Base voltage at point 2(V)\n",
+ "V_b3 = 120.0 #Base voltage at point 3(V)\n",
+ "S_b3 = 14.4 #Base power(kVA)\n",
+ "X_2 = 0.25 #Reactance(p.u)\n",
+ "X_1 = 0.2 #Reactance(p.u)\n",
+ "I_L = 120.0 #Load current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "R_L = P_L/(V_L**2) #Resistance of the load(ohm)\n",
+ "#Case(b)\n",
+ "Z_bL = (V_b3**2)/(S_b3*1000) #Base impedance(ohm)\n",
+ "#Case(c)\n",
+ "Z_L_pu = R_L/Z_bL #Per unit load impedance \n",
+ "#Case(d)\n",
+ "Z_2_pu = complex(0,X_2) #Per unit impedance of T2\n",
+ "#Case(e)\n",
+ "Z_1_pu = complex(0,X_1) #Per unit impedance of T1\n",
+ "#Case(g)\n",
+ "I_bL = (S_b3*1000)/V_b3 #Base current in load(A)\n",
+ "#Case(h)\n",
+ "I_L_pu = I_L/I_bL #Per unit load current\n",
+ "#Case(i)\n",
+ "V_R_pu = I_L_pu*Z_L_pu #Per unit voltage across load \n",
+ "#Case(j)\n",
+ "I_S_pu = I_L_pu #Per unit current of source\n",
+ "Z_T_pu = Z_L_pu+Z_1_pu+Z_2_pu #Total p.u impedance\n",
+ "V_S_pu = I_S_pu*Z_T_pu #Per unit voltage of source\n",
+ "V_S_pu_m = abs(V_S_pu) #Magnitude of V_S_pu\n",
+ "V_S_pu_a = cmath.phase(V_S_pu)*180/math.pi #Phase angle of V_S_pu(degrees)\n",
+ "#Case(k)\n",
+ "V_S = V_S_pu*V_b1 #Actual voltage across source(V)\n",
+ "V_S_m = abs(V_S) #Magnitude of V_S(V)\n",
+ "V_S_a = cmath.phase(V_S)*180/math.pi #Phase angle of V_S(degrees)\n",
+ "#Case(l)\n",
+ "I_x_pu = I_L_pu #p.u current at point x\n",
+ "Z_x_pu = Z_L_pu+Z_2_pu #p.u impedance at point x \n",
+ "V_x_pu = I_x_pu*Z_x_pu #p.u voltage at point x\n",
+ "#Case(m)\n",
+ "V_x = V_x_pu*V_b2 #Actual voltage at point x(V)\n",
+ "V_x_m = abs(V_x) #Magnitude of V_x(V)\n",
+ "V_x_a = cmath.phase(V_x)*180/math.pi #Phase angle of V_x(degrees)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Resistance of the load , R_L = %.f \u03a9' %R_L)\n",
+ "print('Case(b): Base impedance of the load , Z_bL = %.f \u03a9' %Z_bL)\n",
+ "print('Case(c): Per-unit load impedance , Z_L(pu) = (%.f+j%.f) p.u' %(Z_L_pu.real,Z_L_pu.imag))\n",
+ "print('Case(d): Per-unit impedance of transformer T2 , Z_2(pu) = j%.2f p.u' %Z_2_pu.imag)\n",
+ "print('Case(e): Per-unit impedance of transformer T1 , Z_1(pu) = j%.1f p.u' %Z_2_pu.imag)\n",
+ "print('Case(f): See Fig.14-23b in textbook page no-526')\n",
+ "print('Case(g): Base current in the load , I_bL = %.f A (resistive)' %I_bL)\n",
+ "print('Case(h): Per-unit load current , I_L_pu = (%.f+j%.f) p.u' %(I_L_pu.real,I_L_pu.imag))\n",
+ "print('Case(i): Per-unit voltage across load , V_R_pu = (%.f+j%.f) p.u' %(V_R_pu.real,V_R_pu.imag))\n",
+ "print('Case(j): Per-unit voltage of source , V_S_pu = %.3f\u2220%.2f\u00b0 pu' %(V_S_pu_m,V_S_pu_a))\n",
+ "print('Case(k): Actual voltage across source , V_S = %.1f\u2220%.2f\u00b0 pu' %(V_S_m,V_S_a))\n",
+ "print('Case(l): Per-unit voltage at point x in the second transmission loop , V_x(pu) = (%.f+j%.2f) p.u' %(V_x_pu.real,V_x_pu.imag))\n",
+ "print('Case(m): Voltage at point x , V_x = %.1f\u2220%.f\u00b0 V' %(V_x_m,V_x_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Resistance of the load , R_L = 1 \u03a9\n",
+ "Case(b): Base impedance of the load , Z_bL = 1 \u03a9\n",
+ "Case(c): Per-unit load impedance , Z_L(pu) = (1+j0) p.u\n",
+ "Case(d): Per-unit impedance of transformer T2 , Z_2(pu) = j0.25 p.u\n",
+ "Case(e): Per-unit impedance of transformer T1 , Z_1(pu) = j0.2 p.u\n",
+ "Case(f): See Fig.14-23b in textbook page no-526\n",
+ "Case(g): Base current in the load , I_bL = 120 A (resistive)\n",
+ "Case(h): Per-unit load current , I_L_pu = (1+j0) p.u\n",
+ "Case(i): Per-unit voltage across load , V_R_pu = (1+j0) p.u\n",
+ "Case(j): Per-unit voltage of source , V_S_pu = 1.097\u222024.23\u00b0 pu\n",
+ "Case(k): Actual voltage across source , V_S = 131.6\u222024.23\u00b0 pu\n",
+ "Case(l): Per-unit voltage at point x in the second transmission loop , V_x(pu) = (1+j0.25) p.u\n",
+ "Case(m): Voltage at point x , V_x = 618.5\u222014\u00b0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.28, Page number 526"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "V_1 = 11.0 #Tr.1 voltage(kV)\n",
+ "V_b1 = 11.0 #Base Tr.1 voltage(kV)\n",
+ "S_1 = 50.0 #KVA rating of power for Tr.1\n",
+ "S_2 = 100.0 #KVA rating of power for Tr.2\n",
+ "Z_1_pu = complex(0,0.1) #Per unit impedance of Tr.1\n",
+ "Z_2_pu = complex(0,0.1) #Per unit impedance of Tr.2\n",
+ "V_b2 = 55.0 #Base Tr.2 voltage(kV)\n",
+ "S_b = 100.0 #Base power(kVA)\n",
+ "PF = 0.8 #Power factor of the load\n",
+ "Z_line = complex(0,200) #Line impedance(ohm)\n",
+ "V_L = 10.0 #Load voltage(kV)\n",
+ "V_Lb3 = 11.0 #Base line voltage at point 3(V)\n",
+ "V_b3 = 11.0 #Line voltage at point 3(V)\n",
+ "P_L = 50.0 #Power rating of each transformer(kW)\n",
+ "cos_theta_L = 0.8 #Lagging PF of load\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Z_T1 = Z_1_pu*(V_1/V_b1)**2*(S_2/S_1) #p.u impedance of T1\n",
+ "#Case(b)\n",
+ "Z_T2 = Z_2_pu*(V_1/V_b3)**2*(S_2/S_1) #p.u impedance of T2\n",
+ "#Case(c)\n",
+ "V_b = V_b2 #Base voltage(V)\n",
+ "Z_b_line = (V_b**2)/S_b*1000 #Base line impedance(ohm)\n",
+ "Z_line_pu = Z_line/Z_b_line #p.u impedance of the transmission line\n",
+ "#Case(d)\n",
+ "V_L_pu = V_L/V_Lb3 #p.u voltage across load\n",
+ "#Case(f)\n",
+ "I_bL = S_b/V_b3 #Base current in load(A)\n",
+ "#Case(g)\n",
+ "VL = V_b3 #Load voltage(kV)\n",
+ "I_L = P_L/(VL*cos_theta_L) #Load current(A)\n",
+ "I_L_pu = I_L/I_bL #p.u load current\n",
+ "theta = math.acos(cos_theta_L) #PF angle(radian)\n",
+ "theta_a = theta*180/math.pi #PF angle(degree)\n",
+ "I_Lpu = I_L_pu*complex(math.cos(theta),-math.sin(theta)) #p.u current in complex form\n",
+ "#Case(h)\n",
+ "Z_series_pu = Z_T1+Z_line_pu+Z_T2 #p.u series impedance of the transmission line\n",
+ "V_S_pu = I_Lpu*Z_series_pu+V_L_pu #p.u source voltage\n",
+ "V_S_pu_m = abs(V_S_pu) #Magnitude of V_S_pu\n",
+ "V_S_pu_a = cmath.phase(V_S_pu)*180/math.pi #Phase angle of V_S_pu(degrees)\n",
+ "#Case(i)\n",
+ "V_S = V_S_pu*V_b1 #Actual value of source voltage(kV)\n",
+ "V_S_m = abs(V_S) #Magnitude of V_S_pu(kV)\n",
+ "V_S_a = cmath.phase(V_S)*180/math.pi #Phase angle of V_S(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Per-unit impedance of transformer T1 , Z_T1 = j%.1f p.u' %Z_T1.imag)\n",
+ "print('Case(b): Per-unit impedance of transformer T2 , Z_T2 = j%.1f p.u' %Z_T2.imag)\n",
+ "print('Case(c): Per-unit impedance of transmission line , Z(line)_pu = j%.4f p.u' %Z_line_pu.imag)\n",
+ "print('Case(d): Per-unit voltage across load , V_L_pu = (%.3f+j%.f) p.u' %(V_L_pu.real,V_L_pu.imag))\n",
+ "print('Case(e): See Fig.14-24b in textbook Page no-527')\n",
+ "print('Case(f): Base current in load , I_bL = %.3f A' %I_bL)\n",
+ "print('Case(g): Per-unit load current , I_L_pu = (%.1f%.3fj) p.u' %(I_Lpu.real,I_Lpu.imag))\n",
+ "print('Case(h): Per-unit source voltage , V_S_pu = %.3f\u2220%.2f\u00b0 pu' %(V_S_pu_m,V_S_pu_a))\n",
+ "print('Case(i): Actual value of source voltage , V_S = %.1f\u2220%.2f\u00b0 kV' %(V_S_m,V_S_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Per-unit impedance of transformer T1 , Z_T1 = j0.2 p.u\n",
+ "Case(b): Per-unit impedance of transformer T2 , Z_T2 = j0.2 p.u\n",
+ "Case(c): Per-unit impedance of transmission line , Z(line)_pu = j0.0066 p.u\n",
+ "Case(d): Per-unit voltage across load , V_L_pu = (0.909+j0) p.u\n",
+ "Case(e): See Fig.14-24b in textbook Page no-527\n",
+ "Case(f): Base current in load , I_bL = 9.091 A\n",
+ "Case(g): Per-unit load current , I_L_pu = (0.5-0.375j) p.u\n",
+ "Case(h): Per-unit source voltage , V_S_pu = 1.081\u222010.84\u00b0 pu\n",
+ "Case(i): Actual value of source voltage , V_S = 11.9\u222010.84\u00b0 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.29, Page number 528"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Z_pu_1 = 1j*0.1 #p.u impedance \n",
+ "MVA_2 = 80.0 #MVA rating os system 2\n",
+ "MVA_1 = 100.0 #MVA rating of T1 and T2\n",
+ "V_2 = 30.0 #Voltage(kV)\n",
+ "V_1 = 32.0 #Voltage(kV)\n",
+ "Z_pu_2 = 1j*0.15 #p.u impedance \n",
+ "V_b1 = 100.0 #Base voltage of T1(kV)\n",
+ "Z_line = 1j*60 #Line impedance(ohm)\n",
+ "MVA_M1 = 20.0 #MVA rating of motor load 1\n",
+ "Z_pu_M1 = 1j*0.15 #p.u impedance of motor load M1\n",
+ "MVA_M2 = 35.0 #MVA rating of motor load 2\n",
+ "Z_pu_M2 = 1j*0.25 #p.u impedance of motor load M2\n",
+ "MVA_M3 = 25.0 #MVA rating of motor load 3\n",
+ "Z_pu_M3 = 1j*0.2 #p.u impedance of motor load M3\n",
+ "V_M = 28.0 #Voltage across motor loads M1,M2,M3(kV)\n",
+ "\n",
+ "#Calculations\n",
+ "Z_1_pu = Z_pu_1*(MVA_2/MVA_1)*(V_2/V_1)**2 #p.u imepedance of T1\n",
+ "Z_2_pu = Z_pu_2*(MVA_2/MVA_1)*(V_2/V_1)**2 #p.u imepedance of T2\n",
+ "V_b_line = V_b1*(V_1/V_2) #ase voltage of the long-transmission line(kV)\n",
+ "MVA_b = 80.0 #Base MVA rating\n",
+ "V_b = V_b_line\n",
+ "Z_line_pu = Z_line*(MVA_b/(V_b_line)**2) #p.u impedance of the transmission line\n",
+ "Z_M1_pu = Z_pu_M1*(MVA_2/MVA_M1)*(V_M/V_1)**2 #p.u impedance of motor load M1\n",
+ "Z_M2_pu = Z_pu_M2*(MVA_2/MVA_M2)*(V_M/V_1)**2 #p.u impedance of motor load M2\n",
+ "Z_M3_pu = Z_pu_M3*(MVA_2/MVA_M3)*(V_M/V_1)**2 #p.u impedance of motor load M3\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Per-unit impedance of T1 , Z_1(pu) = j%.4f p.u' %Z_1_pu.imag)\n",
+ "print('Case(b): Per-unit impedance of T2 , Z_2(pu) = j%.4f p.u' %Z_2_pu.imag)\n",
+ "print('Case(c): Base voltage of the long-transmission line between T1 and T2 , V_b(line) = %.1f kV' %V_b_line)\n",
+ "print('Case(d): Per-unit impedance of the transmission line , Z(line)_pu = j%.4f p.u' %Z_line_pu.imag)\n",
+ "print('Case(e): Per-unit impedance of motor load M1 , Z_M1(pu) = j%.4f p.u' %Z_M1_pu.imag)\n",
+ "print('Case(f): Per-unit impedance of motor load M2 , Z_M2(pu) = j%.4f p.u' %Z_M2_pu.imag)\n",
+ "print('Case(g): Per-unit impedance of motor load M3 , Z_M3(pu) = j%.2f p.u' %Z_M3_pu.imag)\n",
+ "print('Case(h): See Fig.14-25b in textbook page no-529')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Per-unit impedance of T1 , Z_1(pu) = j0.0703 p.u\n",
+ "Case(b): Per-unit impedance of T2 , Z_2(pu) = j0.1055 p.u\n",
+ "Case(c): Base voltage of the long-transmission line between T1 and T2 , V_b(line) = 106.7 kV\n",
+ "Case(d): Per-unit impedance of the transmission line , Z(line)_pu = j0.4219 p.u\n",
+ "Case(e): Per-unit impedance of motor load M1 , Z_M1(pu) = j0.4594 p.u\n",
+ "Case(f): Per-unit impedance of motor load M2 , Z_M2(pu) = j0.4375 p.u\n",
+ "Case(g): Per-unit impedance of motor load M3 , Z_M3(pu) = j0.49 p.u\n",
+ "Case(h): See Fig.14-25b in textbook page no-529\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.30, Page number 533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_pa = 1000.0 #Phase voltage(V)\n",
+ "I_1a = 1.0 #Line current in primary(A)\n",
+ "V_2a = 100.0 #Voltage across secondary(V)\n",
+ "Ic_a = 10.0 #Current in lower half of auto-transformer(A)\n",
+ "V_s = 100.0 #Voltage in secondary winding(V)\n",
+ "I_2b = 10.0 #Current in secondary(A)\n",
+ "V_1b = 1000.0 #Voltage across primary(V)\n",
+ "Ic_b = 1.0 #Current in lower half of auto-transformer(A)\n",
+ "\n",
+ "#Calculation\n",
+ "S_T1 = (V_pa*I_1a+V_2a*I_1a)/1000 #Total kVA transfer in step-down mode\n",
+ "S_T2 = (V_s*I_2b+V_1b*I_2b)/1000 #Total kVA transfer in step-up mode\n",
+ "S_x_former_c = V_pa*I_1a/1000 #kVA rating of th autotransformer in Fig.14-27a\n",
+ "V_1 = V_pa\n",
+ "S_x_former_d = V_1*Ic_b/1000 #kVA rating of th autotransformer in Fig.14-26b\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Total kVA transfer in step-down mode , S_T = %.1f kVA transferred' %S_T1)\n",
+ "print('Case(b): Total kVA transfer in step-up mode , S_T = %.1f kVA transferred' %S_T2)\n",
+ "print('Case(c): kVA rating of the autotransformer in Fig.14-27a , S_x-former = %.f kVA' %S_x_former_c)\n",
+ "print('Case(d): kVA rating of the autotransformer in Fig.14-26b , S_x-former = %.f kVA' %S_x_former_d)\n",
+ "print('Case(e): Both transformers have the same kVA rating of 1 kVA since the same autotransformer is used in both parts.')\n",
+ "print(' Both transformers transform a total of 1 KVA. But the step-down transformer in part(a) conducts only 0.1 kVA')\n",
+ "print(' while the step-up transformer in the part(b) conducts 10 kVA from the primary to the secondary')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Total kVA transfer in step-down mode , S_T = 1.1 kVA transferred\n",
+ "Case(b): Total kVA transfer in step-up mode , S_T = 11.0 kVA transferred\n",
+ "Case(c): kVA rating of the autotransformer in Fig.14-27a , S_x-former = 1 kVA\n",
+ "Case(d): kVA rating of the autotransformer in Fig.14-26b , S_x-former = 1 kVA\n",
+ "Case(e): Both transformers have the same kVA rating of 1 kVA since the same autotransformer is used in both parts.\n",
+ " Both transformers transform a total of 1 KVA. But the step-down transformer in part(a) conducts only 0.1 kVA\n",
+ " while the step-up transformer in the part(b) conducts 10 kVA from the primary to the secondary\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.31, Page number 535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S = 500.0 #kVA rating of the distribution transformer\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 208.0 #Secondary voltage(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P_sc = 8200.0 #Wattmeter reading in SC test(W)\n",
+ "I_sc = 217.4 #Short circuit current(A)\n",
+ "V_sc = 95.0 #Short circuit voltage(V)\n",
+ "P_oc = 1800.0 #Wattmeter reading in OC test(W)\n",
+ "I_oc = 85.0 #Open circuit current(A)\n",
+ "V_oc = 208.0 #Open circuit voltage(V)\n",
+ "LF1 = 0.2 #Load fraction \n",
+ "LF2 = 0.4 #Load fraction \n",
+ "LF3 = 0.8 #Load fraction \n",
+ "LF4 = 1.25 #Load fraction \n",
+ "PF1 = 0.7 #Power factor\n",
+ "PF2 = 0.8 #Power factor\n",
+ "PF3 = 0.9 #Power factor\n",
+ "PF_fl = 1.0 #Power factor\n",
+ "PF4 = 0.85 #Power factor\n",
+ "t1 = 4.0 #Period of operation(hours)\n",
+ "t2 = 4.0 #Period of operation(hours)\n",
+ "t3 = 6.0 #Period of operation(hours)\n",
+ "t_fl = 6.0 #Period of operation(hours)\n",
+ "t4 = 2.0 #Period of operation(hours)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "t = 24.0 #Hours in a day\n",
+ "P_c = P_oc #Wattmeter reading(W). OC test\n",
+ "W_c = (P_c*t)/1000 #Core loss over 24 hour period(kWh)\n",
+ "#Case(b)\n",
+ "Psc = P_sc/1000 #Wattmeter reading(W). SC test\n",
+ "P_loss_1 = (LF1**2)*Psc #Power loss for 20% Load(kW)\n",
+ "P_loss_2 = (LF2**2)*Psc #Power loss for 40% Load(kW)\n",
+ "P_loss_3 = (LF3**2)*Psc #Power loss for 80% Load(kW)\n",
+ "P_loss_fl = Psc #Power loss for 100% Load(kW)\n",
+ "P_loss_4 = (LF4**2)*Psc #Power loss for 125% Load(kW)\n",
+ "energy_loss1 = P_loss_1*t1 #Enegry loss for 20% Load(kWh)\n",
+ "energy_loss2 = P_loss_2*t2 #Enegry loss for 40% Load(kWh)\n",
+ "energy_loss3 = P_loss_3*t3 #Enegry loss for 80% Load(kWh)\n",
+ "energy_loss_fl = P_loss_fl*t_fl #Enegry loss for 100% Load(kWh)\n",
+ "energy_loss4 = P_loss_4*t4 #Enegry loss for 125% Load(kWh)\n",
+ "W_loss_total = energy_loss1+energy_loss2+energy_loss3+energy_loss_fl+energy_loss4 #Total energy loss(kWh)\n",
+ "#Case(c)\n",
+ "P_1 = LF1*S*PF1 #Power output for 20% load(kW)\n",
+ "P_2 = LF2*S*PF2 #Power output for 40% load(kW)\n",
+ "P_3 = LF3*S*PF3 #Power output for 80% load(kW)\n",
+ "P_fl = S*PF_fl #Power output for 100% load(kW)\n",
+ "P_4 = LF4*S*PF4 #Power output for 125% load(kW)\n",
+ "Energy_1 = P_1*t1 #Energy delivered for 20% load(kWh)\n",
+ "Energy_2 = P_2*t2 #Energy delivered for 40% load(kWh)\n",
+ "Energy_3 = P_3*t3 #Energy delivered for 80% load(kWh)\n",
+ "Energy_fl = P_fl*t_fl #Energy delivered for 100% load(kWh)\n",
+ "Energy_4 = P_4*t4 #Energy delivered for 125% load(kWh)\n",
+ "W_out_total = Energy_1+Energy_2+Energy_3+Energy_fl+Energy_4 #Total energy delivered in 24hrs(kwh)\n",
+ "#Case(d)\n",
+ "n = W_out_total/(W_out_total+W_c+W_loss_total)*100 #All-day efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('case(a): Core loss over the 24 hour period , W_c = P_c*t = %.1f kWh' %W_c)\n",
+ "print('Case(b): Total energy loss over the 24 hour period = %.2f kWh' %W_loss_total)\n",
+ "print('Case(c): Total energy output over the 24 hour period = %.f kWh' %W_out_total)\n",
+ "print('Case(d): All-day efficiency = %.1f percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "case(a): Core loss over the 24 hour period , W_c = P_c*t = 43.2 kWh\n",
+ "Case(b): Total energy loss over the 24 hour period = 112.87 kWh\n",
+ "Case(c): Total energy output over the 24 hour period = 7142 kWh\n",
+ "Case(d): All-day efficiency = 97.9 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.32, Page number 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_1 = 10.0 #VA rating of small transformer\n",
+ "V = 115.0 #Voltage rating of transformer(V)\n",
+ "V_2_1 = 6.3 #Voltage rating of one part of secondary winding(V)\n",
+ "V_2_2 = 5.0 #Voltage rating of other part of secondary winding(V)\n",
+ "Z_2_1 = 0.2 #Impedance of one part of secondary winding(ohm)\n",
+ "Z_2_2 = 0.15 #Impedance of other part of secondary winding(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_2 = V_2_1+V_2_2 #Voltage across secondary winding(V)\n",
+ "I_2 = S_1/V_2 #Rated secondary current when the LV secondaries are connected in series-aiding(A)\n",
+ "#Case(b)\n",
+ "I_c = (V_2_1-V_2_2)/(Z_2_1+Z_2_2) #Circulating current when LV windings are paralled(A)\n",
+ "percent_overload = (I_c/I_2)*100 #Percent overload produced\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rated secondary current when the low-voltage secondaries are connected series-aiding , I_2 = %.3f A' %I_2)\n",
+ "print('Case(b): Circulating current when LV windings are paralled , I_c = %.2f A' %I_c)\n",
+ "print(' Percent overload produced = %.f percent' %percent_overload)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rated secondary current when the low-voltage secondaries are connected series-aiding , I_2 = 0.885 A\n",
+ "Case(b): Circulating current when LV windings are paralled , I_c = 3.71 A\n",
+ " Percent overload produced = 420 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.33, Page number 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S = 20.0 #kVA rating of transformer\n",
+ "N_1 = 230.0 #Number of primary turns\n",
+ "N_2 = 20.0 #Number of secondary turns\n",
+ "V_1 = 230.0 #Primary voltage(V)\n",
+ "V_2 = 20.0 #Secondary voltage(V)\n",
+ "V_sc = 4.5 #Short circuit voltage(V)\n",
+ "I_sc = 87.0 #Short circuit current(A)\n",
+ "P_sc = 250.0 #Power measured(W)\n",
+ "\n",
+ "#Calculation\n",
+ "V_h = V_sc #Short circuit voltage on HV side(V)\n",
+ "I_h = I_sc #Short circuit current on HV side(A)\n",
+ "Z_eh = V_h/I_h #Equivalent impedance reffered to the high side when coils are series connected(ohm)\n",
+ "Z_el = Z_eh*(N_2/N_1)**2 #Equivalent impedance reffered to the low side when coils are series connected(ohm)\n",
+ "I_2_rated = (S*1000)/V_2 #Rated secondary current when coils are series connected(A)\n",
+ "I_2_sc = S/Z_el #Secondary current when coils in Fig.14-31a are short-circuited with rated voltage applied to HV side(A)\n",
+ "percent_overload = (I_2_sc/I_2_rated)*100 #Percent overload\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Equivalent impedance reffered to the high side when coils are series-connected , Z_eh = %.4f ohm' %Z_eh)\n",
+ "print('Case(b): Equivalent impedance reffered to the low side when coils are series connected , Z_el = %.2e ohm' %Z_el)\n",
+ "print('Case(c): Rated secondary current when coils are series connected , I_2(rated) = %.e A' %I_2_rated)\n",
+ "print('Case(d): Secondary current when coils in Fig.14-31a are short-circuited with rated voltage applied to HV side , I_2(sc) = %.1e A' %I_2_sc)\n",
+ "print(' Percent overload produced = %.f percent' %percent_overload)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Equivalent impedance reffered to the high side when coils are series-connected , Z_eh = 0.0517 ohm\n",
+ "Case(b): Equivalent impedance reffered to the low side when coils are series connected , Z_el = 3.91e-04 ohm\n",
+ "Case(c): Rated secondary current when coils are series connected , I_2(rated) = 1e+03 A\n",
+ "Case(d): Secondary current when coils in Fig.14-31a are short-circuited with rated voltage applied to HV side , I_2(sc) = 5.1e+04 A\n",
+ " Percent overload produced = 5114 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.34, Page number 548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "I_L = 100.0 #Load current(A)\n",
+ "cos_theta = 0.7 #Power factor lagging\n",
+ "S = 60.0 #kVA rating of transformer\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_L = 230.0 #Voltage across load(V)\n",
+ "P_T = (3**0.5*V_L*I_L*cos_theta)/1000 #Power consumed by the plant(kW)\n",
+ "kVA_T = P_T/cos_theta #Apparent power(kVA)\n",
+ "#Case(b)\n",
+ "kVA = S #kVA rating of transformer\n",
+ "V_p = V_2 #Phase voltage(V). delta-connection on load side\n",
+ "I_P2_rated = (kVA*1000)/(3*V_p) #Rated secondary phase current(A)\n",
+ "I_L2_rated = 3**0.5*I_P2_rated #Rated secondary line current(A)\n",
+ "#Case(c)\n",
+ "percent_load = I_L/I_L2_rated*100 #Percent load on each transformer \n",
+ "#Case(d)\n",
+ "V_L_d = 2300.0\n",
+ "I_P1 = (kVA_T*1000)/(3**0.5*V_L_d) #Primary phase current(A)\n",
+ "I_L1 = I_P1 #Primary line current(A). Y-connection\n",
+ "#Case(e)\n",
+ "kVA_transformer = kVA/3 #kVA rating of each transformer\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Power consumed by the plant , P_T = %.1f kW' %P_T)\n",
+ "print(' Apparent power , kVA_T = %.1f kVA' %kVA_T)\n",
+ "print('Case(b): Rated secondary phase current of transformer bank , I_P2(rated) = %.f A' %I_P2_rated)\n",
+ "print(' Rated secondary line current of transformer bank , I_L2(rated) = %.1f A' %I_L2_rated)\n",
+ "print('Case(c): Percent load on each transformer = %.1f percent' %percent_load)\n",
+ "print('Case(d): Primary phase current drawn by each transformer , I_P1 = %.f A' %I_P1)\n",
+ "print(' Primary line current drawn by each transformer , I_L1 = %.f A' %I_L1)\n",
+ "print('Case(e): kVA rating of each transformer = %.f kVA' %kVA_transformer)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Power consumed by the plant , P_T = 27.9 kW\n",
+ " Apparent power , kVA_T = 39.8 kVA\n",
+ "Case(b): Rated secondary phase current of transformer bank , I_P2(rated) = 87 A\n",
+ " Rated secondary line current of transformer bank , I_L2(rated) = 150.6 A\n",
+ "Case(c): Percent load on each transformer = 66.4 percent\n",
+ "Case(d): Primary phase current drawn by each transformer , I_P1 = 10 A\n",
+ " Primary line current drawn by each transformer , I_L1 = 10 A\n",
+ "Case(e): kVA rating of each transformer = 20 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.35, Page number 548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "I_L = 100.0 #Load current(A)\n",
+ "cos_theta = 0.7 #Power factor lagging\n",
+ "S = 60.0 #kVA rating of transformer\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_L = 230.0 #Voltage across load(V)\n",
+ "P_T = (3**0.5*V_L*I_L*cos_theta)/1000 #Power consumed by the plant(kW)\n",
+ "kVA_T = P_T/cos_theta #Apparent power(kVA)\n",
+ "#Case(b)\n",
+ "kVA = S #kVA rating of transformer\n",
+ "V_p = V_2 #Phase voltage(V)\n",
+ "I_P2_rated = (kVA*1000)/(3*V_p) #Rated secondary phase current(A)\n",
+ "I_L2_rated = 3**0.5*I_P2_rated #Rated secondary line current(A)\n",
+ "#Case(c)\n",
+ "percent_load = I_L/I_L2_rated*100 #Percent load on each transformer \n",
+ "#Case(d)\n",
+ "V_L_d = 2300.0\n",
+ "I_P1 = (kVA_T*1000)/(3**0.5*V_L_d) #Primary phase current(A)\n",
+ "I_L1 = 3**0.5*I_P1 #Primary line current(A)\n",
+ "#Case(e)\n",
+ "kVA_transformer = kVA/3 #kVA rating of each transformer\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Power consumed by the plant , P_T = %.1f kW' %P_T)\n",
+ "print(' Apparent power , kVA_T = %.1f kVA' %kVA_T)\n",
+ "print('Case(b): Rated secondary phase current of transformer bank , I_P2(rated) = %.f A' %I_P2_rated)\n",
+ "print(' Rated secondary line current of transformer bank , I_L2(rated) = %.1f A' %I_L2_rated)\n",
+ "print('Case(c): Percent load on each transformer = %.1f percent' %percent_load)\n",
+ "print('Case(d): Primary phase current drawn by each transformer , I_P1 = %.f A' %I_P1)\n",
+ "print(' Primary line current drawn by each transformer , I_L1 = %.1f A' %I_L1)\n",
+ "print(' Primary line current drawn by a \u0394-\u0394 bank is \u221a3 times the line current drawn by a Y-\u0394 bank')\n",
+ "print('Case(e): kVA rating of each transformer = %.f kVA' %kVA_transformer)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Power consumed by the plant , P_T = 27.9 kW\n",
+ " Apparent power , kVA_T = 39.8 kVA\n",
+ "Case(b): Rated secondary phase current of transformer bank , I_P2(rated) = 87 A\n",
+ " Rated secondary line current of transformer bank , I_L2(rated) = 150.6 A\n",
+ "Case(c): Percent load on each transformer = 66.4 percent\n",
+ "Case(d): Primary phase current drawn by each transformer , I_P1 = 10 A\n",
+ " Primary line current drawn by each transformer , I_L1 = 17.3 A\n",
+ " Primary line current drawn by a \u0394-\u0394 bank is \u221a3 times the line current drawn by a Y-\u0394 bank\n",
+ "Case(e): kVA rating of each transformer = 20 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.36, Page number 554"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "V_L = 33.0 #Line voltage(kV)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "PF1 = 1.0 #Unity power factor for I_AB\n",
+ "PF2 = 0.7 #Lagging power factor for I_BC\n",
+ "PF3 = 0.9 #Leading power factor for I_CA\n",
+ "IAB = 10.0 #Magnitude of I_AB(kA)\n",
+ "IBC = 15.0 #Magnitude of I_BC(kA)\n",
+ "ICA = 12.0 #Magnitude of I_CA(kA)\n",
+ "\n",
+ "#Calculation\n",
+ "V_AB = V_L*cmath.exp(1j*0*math.pi/180) #Line voltage taken as reference voltage(kV)\n",
+ "V_AB_a = cmath.phase(V_AB)*180/math.pi #Voltage angle(degree)\n",
+ "V_BC = V_L*cmath.exp(1j*-120*math.pi/180) #Line voltage(kV)\n",
+ "V_BC_a = cmath.phase(V_BC)*180/math.pi #Voltage angle(degree)\n",
+ "V_CA = V_L*cmath.exp(1j*120*math.pi/180) #Line voltage(kV)\n",
+ "V_CA_a = cmath.phase(V_CA)*180/math.pi #Voltage angle(degree)\n",
+ "theta_1 = math.acos(PF1)*180/math.pi #PF1 angle(degree)\n",
+ "theta_2 = math.acos(PF2)*180/math.pi #PF2 angle(degree)\n",
+ "theta_3 = math.acos(PF3)*180/math.pi #PF3 angle(degree)\n",
+ "I_AB = IAB*cmath.exp(1j*(theta_1)*math.pi/180) #Current(kA)\n",
+ "I_BC = IBC*cmath.exp(1j*(V_BC_a-theta_2)*math.pi/180) #Current(kA)\n",
+ "I_CA = ICA*cmath.exp(1j*(V_CA_a+theta_3)*math.pi/180) #Current(kA)\n",
+ "#Case(a)\n",
+ "I_AC = -I_CA\n",
+ "I_A = I_AB+I_AC #Phase current(kA)\n",
+ "I_A_m = abs(I_A) #Magnitude of I_A(kA)\n",
+ "I_A_a = cmath.phase(I_A)*180/math.pi #Phase angle of I_A(degrees)\n",
+ "#Case(b)\n",
+ "I_BA = -I_AB\n",
+ "I_B = I_BC+I_BA #Phase current(kA)\n",
+ "I_B_m = abs(I_B) #Magnitude of I_B(kA)\n",
+ "I_B_a = cmath.phase(I_B)*180/math.pi #Phase angle of I_B(degrees)\n",
+ "#Case(c)\n",
+ "I_CB = -I_BC\n",
+ "I_C = I_CA+I_CB #Phase current(kA)\n",
+ "I_C_m = abs(I_C) #Magnitude of I_C(kA)\n",
+ "I_C_a = cmath.phase(I_C)*180/math.pi #Phase angle of I_C(degrees)\n",
+ "#Case(d)\n",
+ "phasor_sum = I_A+I_B+I_C #Phasor sum of line currents\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Current in line A , I_A = %.2f\u2220%.2f\u00b0 kA' %(I_A_m,I_A_a))\n",
+ "print('Case(b): Current in line B , I_B = %.2f\u2220%.2f\u00b0 kA' %(I_B_m,I_B_a))\n",
+ "print('Case(c): Current in line C , I_C = %.2f\u2220%.2f\u00b0 kA' %(I_C_m,I_C_a))\n",
+ "print('Case(d): Phasor sum of line currents , \u03a3I_L = (%.f+j%.f) ' %(phasor_sum.real,phasor_sum.imag))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Current in line A , I_A = 21.04\u2220-18.68\u00b0 kA\n",
+ "Case(b): Current in line B , I_B = 24.81\u2220-171.34\u00b0 kA\n",
+ "Case(c): Current in line C , I_C = 11.44\u222066.30\u00b0 kA\n",
+ "Case(d): Phasor sum of line currents , \u03a3I_L = (-0+j0) \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.37, Page number 556"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA_1 = 20.0 #kVA rating of transformer 1\n",
+ "kVA_2 = 20.0 #kVA rating of transformer 2\n",
+ "kVA_3 = 20.0 #kVA rating of transformer 3\n",
+ "V_1 = 2300.0 #Primary voltage(V)\n",
+ "V_2 = 230.0 #Secondary voltage(V)\n",
+ "kVA = 40.0 #kVA supplied by the bank\n",
+ "PF = 0.7 #Lagging power factor at which bank supplies kVA\n",
+ "\n",
+ "#Calculation\n",
+ "kVA_transformer = kVA/3**0.5 #kVA load carried by each transformer\n",
+ "percent_ratedload_Tr = kVA_transformer/kVA_1*100 #Percent load carried by each transformer\n",
+ "kVA_V_V = 3**0.5*kVA_1 #Total kVA rating of the transformer bank in V-V\n",
+ "ratio_banks = kVA_V_V/(kVA_1+kVA_2+kVA_3)*100 #Ratio of V-V bank to \u0394-\u0394 bank transformer ratings\n",
+ "kVA_Tr = kVA/3 \n",
+ "percent_increase_load = kVA_transformer/kVA_Tr*100 #Percent increase in load on each transformer when one transformer is removed\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): kVA load carried by each transformer = %.1f kVA/transformer' %kVA_transformer)\n",
+ "print('Case(b): Percent rated load carried by each transformer = %.1f percent' %percent_ratedload_Tr)\n",
+ "print('Case(c): Total kVA rating of the transformer bank in V-V = %.2f kVA' %kVA_V_V)\n",
+ "print('Case(d): Ratio of V-V bank to \u0394-\u0394 bank transformer ratings = %.1f percent' %ratio_banks)\n",
+ "print('Case(e): Percent increase in load on each transformer when one transformer is removed = %.1f percent' %percent_increase_load)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): kVA load carried by each transformer = 23.1 kVA/transformer\n",
+ "Case(b): Percent rated load carried by each transformer = 115.5 percent\n",
+ "Case(c): Total kVA rating of the transformer bank in V-V = 34.64 kVA\n",
+ "Case(d): Ratio of V-V bank to \u0394-\u0394 bank transformer ratings = 57.7 percent\n",
+ "Case(e): Percent increase in load on each transformer when one transformer is removed = 173.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.38, Page number 562"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 440.0 #Rated voltage of SCIM(V)\n",
+ "hp = 100.0 #Rated power of SCIM(hp)\n",
+ "PF = 0.8 #Power factor\n",
+ "V_1 = 155.0 #Primary voltage of transformer(V)\n",
+ "V_2 = 110.0 #Secondary voltage of transformer(V)\n",
+ "V_a = 110.0 #Armature voltage(V)\n",
+ "V_L = 440.0 #Load voltage(V)\n",
+ "n = 0.98 #Efficiency of the transformer\n",
+ "\n",
+ "#Calculation\n",
+ "I_L = 124*1.25 #Motor line current(A). Appendix A-3\n",
+ "alpha = V_a/V_L #Transformation ratio\n",
+ "I_a = (3**0.5/2)*(I_L/(alpha*n)) #Current in the primary of the scott transformers(A)\n",
+ "kVA = (V_a*I_a)/((3**0.5/2)*1000) #kVA rating of the main and teaser transformers\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Motor line current , I_L = %.f A' %I_L)\n",
+ "print('Case(b): Transformation ratio , \u03b1 = N_1/N_2 = V_a/V_L = %.2f ' %alpha)\n",
+ "print('Case(c): Current in the primary of the scott transformers , I_a = %.f A' %I_a)\n",
+ "print('Case(d): kVA rating of the main and teaser transformers , kVA = %.1f kVA' %kVA)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Motor line current , I_L = 155 A\n",
+ "Case(b): Transformation ratio , \u03b1 = N_1/N_2 = V_a/V_L = 0.25 \n",
+ "Case(c): Current in the primary of the scott transformers , I_a = 548 A\n",
+ "Case(d): kVA rating of the main and teaser transformers , kVA = 69.6 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.39, Page number 570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "I_L = 1.0 #Load current(kA)\n",
+ "V_m = 750.0 #Peak voltage(kV)\n",
+ "\n",
+ "#Calculation\n",
+ "V_L = (V_m)/2**0.5 #Maximum allowable rms voltagethat may be applied to the lines using ac(kV)\n",
+ "S_T_ac = 3**0.5*V_L*I_L #Total 3-phase apparent power(MVA)\n",
+ "I_rms = I_L #rms value of load current(kA)\n",
+ "I_dc =I_rms*2**0.5 #Maximum allowable current that can be delivered by dc transmission(kA)\n",
+ "V_dc = V_m #dc voltage(kV)\n",
+ "S_T_dc = V_dc*I_dc #Total dc apparent power delivered by two lines(MVA)\n",
+ "S_ac_line = S_T_ac/3 #Power per ac line\n",
+ "S_dc_line = S_T_dc/2 #Power per dc line\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Maximum allowable rms voltage that may be applied to the lines using ac , V_L = %.1f kV' %V_L)\n",
+ "print('Case(b): Total 3-phase ac apparent power delivered by three lines , S_T = %.1f MVA' %S_T_ac)\n",
+ "print('Case(c): Maximum allowable current that can be delivered by dc transmission , I_dc = %.3f kA' %I_dc)\n",
+ "print('Case(d): Total dc apparent power delivered by two lines , S_T = %.1f MVA' %S_T_dc)\n",
+ "print('Case(e): Power per ac line , S/ac line = %.1f MVA/line' %S_ac_line)\n",
+ "print('Case(f): Power per dc line , S/dc line = %.1f MVA/line' %S_dc_line)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Maximum allowable rms voltage that may be applied to the lines using ac , V_L = 530.3 kV\n",
+ "Case(b): Total 3-phase ac apparent power delivered by three lines , S_T = 918.6 MVA\n",
+ "Case(c): Maximum allowable current that can be delivered by dc transmission , I_dc = 1.414 kA\n",
+ "Case(d): Total dc apparent power delivered by two lines , S_T = 1060.7 MVA\n",
+ "Case(e): Power per ac line , S/ac line = 306.2 MVA/line\n",
+ "Case(f): Power per dc line , S/dc line = 530.3 MVA/line\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_2.ipynb b/Electric_Machinery_and_Transformers/CHAP_2.ipynb
new file mode 100755
index 00000000..1e18289c
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_2.ipynb
@@ -0,0 +1,432 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 2: DYNAMO CONSTRUCTION AND WINDINGS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page number 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m = 3.0 #Multipicity of the armature\n",
+ "P = 14.0 #Number of poles\n",
+ "\n",
+ "#Calculation\n",
+ "a_lap = m*P #Number of paths in the armature for lap winding\n",
+ "a_wave = 2*m #Number of paths in the armature for wave winding\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Number of paths in the armature for lap winding , a = %.f paths' %a_lap)\n",
+ "print('Case(b): Number of paths in the armature for wave winding , a = %.f paths' %a_wave)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Number of paths in the armature for lap winding , a = 42 paths\n",
+ "Case(b): Number of paths in the armature for wave winding , a = 6 paths\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page number 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 14.0 #Number of poles\n",
+ "phi = 4.2*10**6 #Flux per pole(lines)\n",
+ "S = 60.0 #Generator speed(rpm)\n",
+ "coils = 420.0 #Number of coils\n",
+ "turns_per_coil = 20.0 #Turns per coil\n",
+ "conductors_per_turn = 2.0 #Conductors per turn \n",
+ "a_lap = 42.0 #Number of parallel paths in the armature for a lap winding\n",
+ "a_wave = 6.0 #Number of parallel paths in the armature for a wave winding\n",
+ "\n",
+ "#Calculation\n",
+ "Z = coils*turns_per_coil*conductors_per_turn #Number of conductors\n",
+ "E_g_lap = phi*Z*S*P/(60*a_lap)*10**-8 #Generated EMF for lap winding(V)\n",
+ "E_g_wave = phi*Z*S*P/(60*a_wave)*10**-8 #Generated EMF for wave winding(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Generated EMF for lap winding , E_g = %.1f V' %E_g_lap)\n",
+ "print('Case(b): Generated EMF for wave winding , E_g = %.1f V' %E_g_wave)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Generated EMF for lap winding , E_g = 235.2 V\n",
+ "Case(b): Generated EMF for wave winding , E_g = 1646.4 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, Page number 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "slots = 72.0 #Number of slots\n",
+ "P = 4.0 #Number of poles\n",
+ "coils_spanned = 14.0 #14 slots are spanned while winding the coils\n",
+ "\n",
+ "#Calculation\n",
+ "coil_span = slots/P #Full-pitch coil span(slots/pole)\n",
+ "p_degree = coils_spanned/coil_span*180 #Span of the coil in electrical degrees\n",
+ "beta = (180-p_degree) #Beta(degree)\n",
+ "k_p1 = math.cos(beta/2*(math.pi/180)) #Pitch factor using eq(2-7)\n",
+ "k_p2 = math.sin(p_degree/2*(math.pi/180)) #Pitch factor using eq(2-8)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-pitch coil span = %.f slots/pole' %coil_span)\n",
+ "print('Case(b): Span of the coil in electrical degrees , p\u00b0 = %.f\u00b0' %p_degree)\n",
+ "print('Case(c): Pitch factor , k_p = %.2f ' %k_p1)\n",
+ "print('Case(d): Pitch factor , k_p = %.2f ' %k_p2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-pitch coil span = 18 slots/pole\n",
+ "Case(b): Span of the coil in electrical degrees , p\u00b0 = 140\u00b0\n",
+ "Case(c): Pitch factor , k_p = 0.94 \n",
+ "Case(d): Pitch factor , k_p = 0.94 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page number 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "fractional_pitch = 13.0/16 #Coils having fractional pitch\n",
+ "slot =96.0 #Number of slots\n",
+ "P = 6.0 #Number of poles\n",
+ "\n",
+ "#Calculation\n",
+ "p_degree = fractional_pitch*180 #Span of the coil in electrical degrees\n",
+ "k_p = math.sin(p_degree/2*(math.pi/180)) #Pitch factor\n",
+ "\n",
+ "#Result\n",
+ "print('Pitch factor , k_p = %.4f ' %k_p)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pitch factor , k_p = 0.9569 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page number 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 12.0 #Number of poles\n",
+ "theta = 360.0 #Number of mechanical degrees of rotation\n",
+ "alpha_b = 180.0 #Number of electrical degrees in case(b)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha = (P*theta)/2 #Number of electrical degrees in one revolution(degree)\n",
+ "n = alpha/360 #Number of ac cycles\n",
+ "theta_b = (2*alpha_b)/P #Number of mechanical degrees of rotation\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Number of electrical degrees in one revolution , \u03b1 = %.f\u00b0 ' %alpha)\n",
+ "print(' Number of ac cycles , n = %.f cycles' %n)\n",
+ "print('Case(b): Mechanical angle , \u03b8 = %.f mechanical degrees' %theta_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Number of electrical degrees in one revolution , \u03b1 = 2160\u00b0 \n",
+ " Number of ac cycles , n = 6 cycles\n",
+ "Case(b): Mechanical angle , \u03b8 = 30 mechanical degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, Page number 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles\n",
+ "phi = 3.0 #Number of phases\n",
+ "slot_1 = 12.0 #Number of slots for case 1\n",
+ "slot_2 = 24.0 #Number of slots for case 2\n",
+ "slot_3 = 48.0 #Number of slots for case 3\n",
+ "slot_4 = 84.0 #Number of slots for case 4\n",
+ "\n",
+ "#Calculation\n",
+ "electrical_degrees = 180.0*P #Electrical degrees\n",
+ "#Case(a)\n",
+ "alpha_1 = electrical_degrees/slot_1 #Number of electrical degrees(\u00b0/slot)\n",
+ "n_1 = slot_1/(P*phi) #Number of slots per pole per phase(slot/pole-phase)\n",
+ "k_d1 = math.sin(n_1*alpha_1/2*(math.pi/180))/(n_1*math.sin(alpha_1/2*(math.pi/180)))#Distribution factor\n",
+ "#Case(b)\n",
+ "alpha_2 = electrical_degrees/slot_2 #Number of electrical degrees(\u00b0/slot)\n",
+ "n_2 = slot_2/(P*phi) #Number of slots per pole per phase(slot/pole-phase)\n",
+ "k_d2 = math.sin(n_2*alpha_2/2*(math.pi/180))/(n_2*math.sin(alpha_2/2*(math.pi/180)))#Distribution factor\n",
+ "#Case(c)\n",
+ "alpha_3 = electrical_degrees/slot_3 #Number of electrical degrees(\u00b0/slot)\n",
+ "n_3 = slot_3/(P*phi) #Number of slots per pole per phase(slot/pole-phase)\n",
+ "k_d3 = math.sin(n_3*alpha_3/2*(math.pi/180))/(n_3*math.sin(alpha_3/2*(math.pi/180)))#Distribution factor\n",
+ "#Case(d)\n",
+ "alpha_4 = electrical_degrees/slot_4 #Number of electrical degrees(\u00b0/slot)\n",
+ "n_4 = slot_4/(P*phi) #Number of slots per pole per phase(slot/pole-phase)\n",
+ "k_d4 = math.sin(n_4*alpha_4/2*(math.pi/180))/(n_4*math.sin(alpha_4/2*(math.pi/180)))#Distribution factor\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Distribution factor , k_d')\n",
+ "print(' 1: k_d = %.1f ' %k_d1)\n",
+ "print(' 2: k_d = %.3f ' %k_d2)\n",
+ "print(' 3: k_d = %.3f ' %k_d3)\n",
+ "print(' 4: k_d = %.3f ' %k_d4)\n",
+ "print('\\nCase(b): Tabular column')\n",
+ "print(' ________________________')\n",
+ "print(' n \\t \u03b1 \\t k_d')\n",
+ "print(' ________________________')\n",
+ "print(' %d \\t %d\u00b0 \\t %.1f' %(n_1,alpha_1,k_d1))\n",
+ "print(' %d \\t %d\u00b0 \\t %.3f' %(n_2,alpha_2,k_d2))\n",
+ "print(' %d \\t %d\u00b0 \\t %.3f' %(n_3,alpha_3,k_d3))\n",
+ "print(' %d \\t %.2f\u00b0 \\t %.3f' %(n_4,alpha_4,k_d4))\n",
+ "print(' ________________________')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Distribution factor , k_d\n",
+ " 1: k_d = 1.0 \n",
+ " 2: k_d = 0.966 \n",
+ " 3: k_d = 0.958 \n",
+ " 4: k_d = 0.956 \n",
+ "\n",
+ "Case(b): Tabular column\n",
+ " ________________________\n",
+ " n \t \u03b1 \t k_d\n",
+ " ________________________\n",
+ " 1 \t 60\u00b0 \t 1.0\n",
+ " 2 \t 30\u00b0 \t 0.966\n",
+ " 4 \t 15\u00b0 \t 0.958\n",
+ " 7 \t 8.57\u00b0 \t 0.956\n",
+ " ________________________\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7, Page number 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "slots = 72.0 #Number of slots\n",
+ "P = 6.0 #Number of poles\n",
+ "phase = 3.0 #Three phase stator armature\n",
+ "N_c = 20.0 #Number of turns per coil\n",
+ "pitch = 5.0/6 #Pitch\n",
+ "phi = 4.8*10**6 #Flux per pole(lines)\n",
+ "S = 1200.0 #Rotor speed(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "f = (P*S)/120 #Frequency of rotor(Hz)\n",
+ "E_g_percoil = 4.44*phi*N_c*f*10**-8 #Generated effective voltage per coil of a full pitch coil(V/coil)\n",
+ "#Case(b)\n",
+ "N_p = (slots/phase)*N_c #Total number of turns per phase(turns/phase)\n",
+ "#Case(c)\n",
+ "n = slots/(phase*P) #Number of slots per pole per phase(slots/pole-phase)\n",
+ "alpha = (P*180)/slots #Number of electrical degrees between adjacent slots(degree)\n",
+ "k_d = math.sin(n*alpha/2*(math.pi/180))/(n*math.sin(alpha/2*(math.pi/180))) #Distribution factor\n",
+ "#Case(d)\n",
+ "span = pitch*180 #Span of the coil in electrical degrees\n",
+ "k_p = math.sin(span/2*(math.pi/180)) #Pitch factor\n",
+ "#Case(e)\n",
+ "E_gp = 4.44*phi*N_p*f*k_p*k_d*10**-8 #Total generated voltage(V/phase)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Generated effective voltage per coil of a full-pitch coil , E_g/coil = %.f V/coil' %E_g_percoil)\n",
+ "print('Case(b): Total number of turns per phase , N_p = %.f turns/phase' %N_p)\n",
+ "print('Case(c): Distribution factor , k_d = %.3f ' %k_d)\n",
+ "print('Case(d): Pitch factor , k_p = %.3f ' %k_p)\n",
+ "print('Case(e): Total generated voltage per phase , E_gp = %.f V/phase' %E_gp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Generated effective voltage per coil of a full-pitch coil , E_g/coil = 256 V/coil\n",
+ "Case(b): Total number of turns per phase , N_p = 480 turns/phase\n",
+ "Case(c): Distribution factor , k_d = 0.958 \n",
+ "Case(d): Pitch factor , k_p = 0.966 \n",
+ "Case(e): Total generated voltage per phase , E_gp = 5678 V/phase\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, Page number 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles\n",
+ "S = 900.0 #Speed(rev/min)\n",
+ "f_1 = 50.0 #Frequency(Hz)\n",
+ "f_2 = 25.0 #Frequency(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = (P*S)/120 #Frequency of the generated voltage(Hz)\n",
+ "S_1 = (120*f_1)/P #Speed of prime mover to generate 50 Hz(rpm)\n",
+ "S_2 = (120*f_2)/P #Speed of prime mover to generate 25 Hz(rpm)\n",
+ "omega_1 = (4*math.pi*f_1)/P #Speed of prime mover to generate 50 Hz(rad/s)\n",
+ "omega_2 = (4*math.pi*f_2)/P #Speed of prime mover to generate 25 Hz(rad/s)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Frequency of the generated voltage , f = %.f Hz' %f)\n",
+ "print('Case(b): Prime mover speed required to generate 50 Hz , S = %.f rpm' %S_1)\n",
+ "print(' Prime mover speed required to generate 25 Hz , S = %.f rpm' %S_2)\n",
+ "print('Case(c): Prime mover speed required to generate 50 Hz , S = %.f\u03c0 rad/s' %(omega_1/math.pi))\n",
+ "print(' Prime mover speed required to generate 25 Hz , S = %.1f\u03c0 rad/s' %(omega_2/math.pi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Frequency of the generated voltage , f = 60 Hz\n",
+ "Case(b): Prime mover speed required to generate 50 Hz , S = 750 rpm\n",
+ " Prime mover speed required to generate 25 Hz , S = 375 rpm\n",
+ "Case(c): Prime mover speed required to generate 50 Hz , S = 25\u03c0 rad/s\n",
+ " Prime mover speed required to generate 25 Hz , S = 12.5\u03c0 rad/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_3.ipynb b/Electric_Machinery_and_Transformers/CHAP_3.ipynb
new file mode 100755
index 00000000..b3e30a75
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_3.ipynb
@@ -0,0 +1,451 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 3: DC DYNAMO VOLTAGE RELATIONS-DC GENERATORS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page number 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kW = 150.0 #Power rating of Shunt generator(kW)\n",
+ "V_1 = 250.0 #Voltage rating of Shunt generator(V)\n",
+ "V_a = V_1 #Voltage rating of Shunt generator(V)\n",
+ "R_f = 50.0 #Field resistance(ohm)\n",
+ "R_a = 0.05 #Armature resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "I_1 = kW*1000/V_1 #Full-load line current flowing to the load(A)\n",
+ "I_f = V_1/R_f #Field current(A)\n",
+ "I_a = I_f+I_1 #Armature current(A)\n",
+ "E_g = V_a+(I_a*R_a) #Full load generated voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load line current flowing to the load , I_1 = %.f A' %I_1)\n",
+ "print('Case(b): Field current , I_f = %.f A' %I_f)\n",
+ "print('Case(c): Armature current , I_a = %.f A' %I_a)\n",
+ "print('Case(d): Full-load generated voltage , E_g = %.2f A' %E_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load line current flowing to the load , I_1 = 600 A\n",
+ "Case(b): Field current , I_f = 5 A\n",
+ "Case(c): Armature current , I_a = 605 A\n",
+ "Case(d): Full-load generated voltage , E_g = 280.25 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page number 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kW =100.0 #Power rating of the generator(kW)\n",
+ "V_1 = 500.0 #Voltage rating of hte generator(V)\n",
+ "R_a = 0.03 #Armature resistance(ohm)\n",
+ "R_f = 125.0 #Shunt field resistance(ohm)\n",
+ "R_s = 0.01 #Series field resistance(ohm)\n",
+ "I_d = 54.0 #Diverter current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_1 = kW*1000/V_1 #Full-load line current flowing to the load(A)\n",
+ "I_f = V_1/R_f #Shunt Field current(A)\n",
+ "I_a = I_f+I_1 #Armature current(A)\n",
+ "I_s = I_a-I_d #Series Field current(A)\n",
+ "R_d = I_s*R_s/I_d #Diverter resistance(ohm)\n",
+ "#Case(b)\n",
+ "E_g = V_1+I_a*R_a+I_s*R_s #Generated voltage at full load(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Diverter resistance at full load , R_d = %.4f \u03a9' %R_d)\n",
+ "print('Case(b): Generated voltage at full load , E_g = %.2f V' %E_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Diverter resistance at full load , R_d = 0.0278 \u03a9\n",
+ "Case(b): Generated voltage at full load , E_g = 507.62 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page number 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "E_orig = 150.0 #Armature voltage of the generator(V)\n",
+ "S_orig = 1800.0 #Speed of the generator(rpm)\n",
+ "S_final_a =2000.0 #Increased Speed of the generator(rpm)\n",
+ "S_final_b =1600.0 #Increased Speed of the generator(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "E_final_a = E_orig*(S_final_a/S_orig) #No-load voltage of the generator(V)\n",
+ "E_final_b = E_orig*(S_final_b/S_orig) #No-load voltage of the generator(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): No-load voltage of the separately excited generator , E_final = %.2f V' %E_final_a)\n",
+ "print('Case(b): No-load voltage of the separately excited generator , E_final = %.2f V' %E_final_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): No-load voltage of the separately excited generator , E_final = 166.67 V\n",
+ "Case(b): No-load voltage of the separately excited generator , E_final = 133.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page number 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_final = 1200.0 #Speed of the generator(rpm)\n",
+ "E_orig_a = 64.3 #Armature voltage of the generator(V) for case a\n",
+ "S_orig_a = 1205.0 #Varied Speed of the generator(rpm)\n",
+ "E_orig_b = 82.9 #Armature voltage of the generator(V) for case b\n",
+ "S_orig_b = 1194.0 #Varied Speed of the generator(rpm)\n",
+ "E_orig_c = 162.3 #Armature voltage of the generator(V) for case c\n",
+ "S_orig_c = 1202.0 #Varied Speed of the generator(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "E_1 = E_orig_a*(S_final/S_orig_a) #No-load voltage of the generator(V)\n",
+ "E_2 = E_orig_b*(S_final/S_orig_b) #No-load voltage of the generator(V)\n",
+ "E_3 = E_orig_c*(S_final/S_orig_c) #No-load voltage of the generator(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): No-load voltage of the generator , E_1 = %.1f V at %.f rpm' %(E_1,S_final))\n",
+ "print('Case(b): No-load voltage of the generator , E_2 = %.1f V at %.f rpm' %(E_2,S_final))\n",
+ "print('Case(c): No-load voltage of the generator , E_3 = %.1f V at %.f rpm' %(E_3,S_final))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): No-load voltage of the generator , E_1 = 64.0 V at 1200 rpm\n",
+ "Case(b): No-load voltage of the generator , E_2 = 83.3 V at 1200 rpm\n",
+ "Case(c): No-load voltage of the generator , E_3 = 162.0 V at 1200 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page number 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 125.0 #Rated voltage of the shunt generator(V)\n",
+ "R_a = 0.15 #Armature resistance(ohm)\n",
+ "V_a = 0 #Terminal voltage across the load(V)\n",
+ "I_l = 96.0 #Load current(A)\n",
+ "I_f = 4.0 #Field current in A\n",
+ "\n",
+ "#Calculation\n",
+ "I_a = I_f+I_l #Armature current(A)\n",
+ "E_g = V_a+I_a*R_a #Voltage generated in the armature(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Voltage generated in the armature , E_g = %.f V' %E_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage generated in the armature , E_g = 15 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_nl = 135.0 #No-load voltage of the shunt generator(V)\n",
+ "V_fl = 125.0 #Full-load voltage of the shunt generator(V)\n",
+ "\n",
+ "#Calculation\n",
+ "VR = (V_nl-V_fl)/V_fl*100 #Voltage regulation(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Voltage regulation , VR = %.f percent' %VR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage regulation , VR = 8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "VR = 0.105 #Voltage regulation\n",
+ "V_fl = 250.0 #Full-load voltage of the shunt generator(V)\n",
+ "\n",
+ "#Calculation\n",
+ "V_nl = V_fl+(V_fl*VR) #No-load voltage of the generator(V)\n",
+ "\n",
+ "#Result\n",
+ "print('No-load voltage of the generator , V_nl = %.1f V' %V_nl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No-load voltage of the generator , V_nl = 276.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page number 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "N_f = 1000.0 #Shunt field winding(turns/pole)\n",
+ "N_s = 4.0 #Series field winding(turns/pole)\n",
+ "I_f = 0.2 #Field current(A)\n",
+ "I_a = 80.0 #Full-load armature current(A)\n",
+ "R_s =0.05 #Series field resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "I_s_N_s = I_f*N_f #Series field ampere-turns\n",
+ "I_s =(I_s_N_s)/N_s #Desired current in the series field required to produce voltage rise(A)\n",
+ "I_d = I_a-I_s #Diverter current(A)\n",
+ "R_d = (I_s*R_s)/I_d #Diverter resistance(ohm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Number of series field ampere-turns required for flat-compound operation , I_sN_s = %.f At' %I_s_N_s)\n",
+ "print('Case(b): Diverter resistance required for flat-compound operation , R_d = %.4f \u03a9' %R_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Number of series field ampere-turns required for flat-compound operation , I_sN_s = 200 At\n",
+ "Case(b): Diverter resistance required for flat-compound operation , R_d = 0.0833 \u03a9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9, Page number 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kW = 60.0 #Power rating of the generator(kW)\n",
+ "V = 240.0 #Voltage rating of the generator(V)\n",
+ "I_f = 3.0 #Increase in the field current(A)\n",
+ "OC_V = 275.0 #Over-compounded Voltage(V)\n",
+ "I_l = 250.0 #Rated load current(A)\n",
+ "N_f = 200.0 #Number of turns per pole in the shunt field winding \n",
+ "N_s = 5.0 #Number of turns per pole in the series field winding \n",
+ "R_f = 240.0 #Shunt field resistance(ohm)\n",
+ "R_s = 0.005 #Series field resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_s_N_s = I_f * N_f #Series field ampere-turns\n",
+ "I_s = (I_s_N_s)/N_s #Desired current in the series field required to produce voltage rise(A)\n",
+ "I_d = I_l-I_s #Diverter current(A)\n",
+ "R_d = (I_s*R_s)/I_d #Diverter resistance(ohm)\n",
+ "#Case(b)\n",
+ "NL_MMF = (V/R_f)*N_f #No-load MMF(At/pole)\n",
+ "I_f_N_f = NL_MMF\n",
+ "FL_MMF = I_f_N_f+I_s_N_s #Full-load MMF(At/pole)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Required diverter resistance , R_d = %.5f \u03a9' %R_d)\n",
+ "print('Case(b): Total air-gap MMF per pole at no load , No-load MMF = %.f At/pole' %NL_MMF)\n",
+ "print(' Total air-gap MMF per pole at full load , Full-load MMF = %.f At/pole' %FL_MMF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Required diverter resistance , R_d = 0.00462 \u03a9\n",
+ "Case(b): Total air-gap MMF per pole at no load , No-load MMF = 200 At/pole\n",
+ " Total air-gap MMF per pole at full load , Full-load MMF = 800 At/pole\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10, Page number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kW= 50.0 #Power rating of the dynamo(kW)\n",
+ "V = 125.0 #Rated voltage(V)\n",
+ "S = 1800.0 #Speed of the dynamo(rpm)\n",
+ "I_f = 20.0 #Exciting field current(A)\n",
+ "Max_temp_rise = 25.0 #Maximum Temperature rise(degree celsius)\n",
+ "I_l = 400.0 #Load Current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Since the speed is reduced in half,we must reduce the kW rating in half.Consequently,the 25kW, 900rpm dynamo has the SAME size');\n",
+ "print('Case(b): Since we have cut the speed in half but maintained the same kW rating, the dynamo has TWICE the size as the original')\n",
+ "print('Case(c): HALF the size')\n",
+ "print('Case(d): SAME size')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Since the speed is reduced in half,we must reduce the kW rating in half.Consequently,the 25kW, 900rpm dynamo has the SAME size\n",
+ "Case(b): Since we have cut the speed in half but maintained the same kW rating, the dynamo has TWICE the size as the original\n",
+ "Case(c): HALF the size\n",
+ "Case(d): SAME size\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_4.ipynb b/Electric_Machinery_and_Transformers/CHAP_4.ipynb
new file mode 100755
index 00000000..5172c505
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_4.ipynb
@@ -0,0 +1,1131 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 4: DC DYNAMO TORQUE RELATIONS-DC MOTORS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page number 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "d = 0.5 #Diameter of the coil(m)\n",
+ "l = 0.6 #Axial length of the coil(m)\n",
+ "B = 0.4 #Flux density(T)\n",
+ "I = 25.0 #Current carried by the coil(A)\n",
+ "theta = 60.0 #Angle between the useful force & the interpolar reference axis(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "F = B*I*l #Force developed on each coil side(N)\n",
+ "f = F*math.sin(theta*math.pi/180) #Useful force at the instant the coil lies at an angle of 60\u00b0 w.r.t the interpolar ref axis(N)\n",
+ "r = d/2 #Radius of the coil(m)\n",
+ "T_c = f*r #Torque developed(N-m)\n",
+ "T_c1 = T_c*0.2248*3.281 #Torque developed in lb-ft by first method\n",
+ "T_c2 = T_c*0.737562 #Torque developed in lb-ft by second method\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Force developed on each coil side , F = %.f N' %F)\n",
+ "print('Case(b): Useful force at the instant the coil lies at an angle of 60\u00b0 w.r.t the interpolar ref axis , f = %.1f N' %f)\n",
+ "print('Case(c): Torque developed , T_c = %.1f N-m' %T_c)\n",
+ "print('Case(d): Torque developed by first method , 1.3 N.m * 0.2248 lb/N * 3.281 ft/m = %.2f lb-ft' %T_c1)\n",
+ "print(' Torque developed by second method , 1.3 N.m * 0.737562 lb.ft/N.m = %.2f lb-ft' %T_c2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Force developed on each coil side , F = 6 N\n",
+ "Case(b): Useful force at the instant the coil lies at an angle of 60\u00b0 w.r.t the interpolar ref axis , f = 5.2 N\n",
+ "Case(c): Torque developed , T_c = 1.3 N-m\n",
+ "Case(d): Torque developed by first method , 1.3 N.m * 0.2248 lb/N * 3.281 ft/m = 0.96 lb-ft\n",
+ " Torque developed by second method , 1.3 N.m * 0.737562 lb.ft/N.m = 0.96 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page number 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "d = 18.0 #Diameter of the coil(inches)\n",
+ "l = 24.0 #Axial length of the coil(inches)\n",
+ "B = 24000.0 #Flux density(lines/sq.inches)\n",
+ "I = 26.0 #Current carried by the coil(A)\n",
+ "theta = 60.0 #Angle between the useful force & the interpolar ref axis(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "F = (B*I*l*10**-7)/1.13 #Force developed on each conductor(lb)\n",
+ "f = F*math.sin(theta*math.pi/180) #Useful force at the instant the coil lies at an angle of 60\u00b0 w.r.t the interpolar ref axis(lb)\n",
+ "r = d/2 #Radius of the coil(inches)\n",
+ "T_c = f*(r*1.0/12) #Torque developed(lb.ft/conductor)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Force developed on each conductor , F = %.3f lb' %F)\n",
+ "print('Case(b): Useful force , f = %.2f lb' %f)\n",
+ "print('Case(c): Torque developed , T_c = %.3f lb-ft/conductor' %T_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Force developed on each conductor , F = 1.325 lb\n",
+ "Case(b): Useful force , f = 1.15 lb\n",
+ "Case(c): Torque developed , T_c = 0.861 lb-ft/conductor\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page number 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Z = 700.0 #Number of conductors\n",
+ "d = 24.0 #Diameter of the armature of the dc motor(inches)\n",
+ "l = 34.0 #Axial length of the coil(inches)\n",
+ "B = 50000.0 #Flux density(lines/sq.inches)\n",
+ "I = 25.0 #Current carried by the coil(A)\n",
+ "per = 0.7 #Conductors lying directly under poles\n",
+ "\n",
+ "#Calculation\n",
+ "F_av = (B*I*l*10**-7)/1.13*(Z*per) #Average total force tending to rotate the armature(lb) \n",
+ "r = d/2 #Radius of the coil(inches)\n",
+ "T_av = F_av*(r/12) #Armature torque(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Average total force tending to rotate the armature , F_av = %.f lb' %F_av)\n",
+ "print('Case(b): Armature torque , T_av = %.f lb-ft' %T_av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Average total force tending to rotate the armature , F_av = 1843 lb\n",
+ "Case(b): Armature torque , T_av = 1843 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page number 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "slots = 120.0 #Number of armature slots\n",
+ "conductors_per_slot = 6.0 #Number of conductors per slot\n",
+ "B = 60000.0 #Flux density(lines/sq.inches)\n",
+ "d = 28.0 #Diameter of the armature(inches)\n",
+ "l = 14.0 #Axial length of the coil(inches)\n",
+ "A = 4.0 #Number of parallel paths\n",
+ "span = 0.72 #Pole arcs span 72% of the armature surface\n",
+ "I = 133.5 #Armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "Z_Ta = slots*conductors_per_slot*span #Number of armature conductors\n",
+ "F_t = (B*I*l)/(1.13*10**7 *A)*Z_Ta #Force developed(lb)\n",
+ "r = (d/2)/12 #Radius of the armature(feet)\n",
+ "T = F_t*r #Total torque developed(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Total developed armature torque , T = %.f lb-ft' %T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total developed armature torque , T = 1500 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page number 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "slots = 120.0 #Number of armature slots\n",
+ "conductors_per_slot = 6.0 #Number of conductors per slot\n",
+ "B = 60000.0 #Flux density(lines/sq.inches)\n",
+ "d = 28.0 #Diameter of the armature(inches)\n",
+ "l = 14.0 #Axial length of the coil(inches)\n",
+ "A = 4.0 #Number of parallel paths\n",
+ "span = 0.72 #Pole arcs span 72% of the armature surface\n",
+ "T_a = 1500.0 #Total armature torque(lb-ft)\n",
+ "\n",
+ "#Calculation\n",
+ "Z = slots*conductors_per_slot #Number of armature conductors\n",
+ "r = (d/2)/12 #Radius of the armature(feet)\n",
+ "I_a = T_a*A*1.13*10**7/(B*l*Z*r*span) #Total external armature current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Total external armature current , I_a = %.1f A' %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total external armature current , I_a = 133.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page number 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "phi_orig = 1.0 #Original flux\n",
+ "Ia_orig = 1.0 #Original armature current\n",
+ "T_orig = 150.0 #Original torque(N-m)\n",
+ "phi_new = 0.9 #New flux\n",
+ "Ia_new = 1.5 #New armature current\n",
+ "\n",
+ "#Calculation\n",
+ "T_new = T_orig*(phi_new/phi_orig)*(Ia_new/Ia_orig) #New torque produced(N-m)\n",
+ "\n",
+ "#Result\n",
+ "print('New torque produced , T = %.1f N-m' %T_new)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New torque produced , T = 202.5 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R_a = 0.25 #Armature resistance(ohm)\n",
+ "BD = 3.0 #Brush contact drop(V)\n",
+ "V = 120.0 #Applied voltage(V)\n",
+ "E_ca = 110.0 #counter EMF at a given load(V)\n",
+ "E_cb = 105 #Counter EMF due to application of additional load(V)\n",
+ "\n",
+ "#Calculation\n",
+ "I_a_a = (V-(E_ca+BD))/R_a #Armature current(A)\n",
+ "I_a_b = (V-(E_cb+BD))/R_a #Armature current(A)\n",
+ "del_Ec = ((E_ca-E_cb)/E_ca)*100 #Change in counter EMF(percent)\n",
+ "del_Ia = ((I_a_b-I_a_a)/I_a_a)*100 #Change in armature current(percent)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Aramature current , I_a = %.f A' %I_a_a)\n",
+ "print('Case(b): Aramature current due to additional load , I_a = %.f A' %I_a_b)\n",
+ "print('Case(c): Change in counter EMF , \u03b4E_c = %.2f percent' %del_Ec)\n",
+ "print(' Change in armature current , \u03b4I_a = %.1f percent' %del_Ia)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Aramature current , I_a = 28 A\n",
+ "Case(b): Aramature current due to additional load , I_a = 48 A\n",
+ "Case(c): Change in counter EMF , \u03b4E_c = 4.55 percent\n",
+ " Change in armature current , \u03b4I_a = 71.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_a = 120.0 #Rated terminal voltage of the DC motor(V)\n",
+ "R_a = 0.2 #Armature circuit resistance(ohm)\n",
+ "R_sh = 60.0 #Shunt field resistance(ohm)\n",
+ "I_l = 40.0 #Line current at full-load(A)\n",
+ "BD = 3.0 #Brush voltage drop(V)\n",
+ "S_orig = 1800.0 #Rated full-load speed(rpm)\n",
+ "per = 125.0/100 #Overload speed\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_f = V_a/R_sh #Field current(A)\n",
+ "I_a_fl = I_l-I_f #Armature current at full-load(A)\n",
+ "E_c_orig = V_a-(I_a_fl*R_a+BD) #Back EMF at full-load(V)\n",
+ "I_a_nl = I_a_fl/2 #Armature current at half-load(A)\n",
+ "E_c_final = V_a-(I_a_nl*R_a+BD) #Back EMF at half load(V)\n",
+ "S_a = S_orig*(E_c_final/E_c_orig) #Speed at full load(rpm)\n",
+ "#Case(b)\n",
+ "I_a_b = I_a_fl*per #Armature current at 125% overload(A)\n",
+ "E_c_b = V_a-(I_a_b*R_a+BD) #Back EMF at 125% overload(V)\n",
+ "S_b = S_orig*(E_c_b/E_c_orig) #Speed at 125% overload(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Speed at half load , S = %.f rpm' %S_a)\n",
+ "print('Case(b): Speed at an overload of 125 perecent , S = %.f rpm' %S_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Speed at half load , S = 1863 rpm\n",
+ "Case(b): Speed at an overload of 125 perecent , S = 1769 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "I_l_orig = 40.0 #Original line current(A)\n",
+ "I_l_final = 66.0 #Final line current(A)\n",
+ "phi_orig = 1.0 #Original flux\n",
+ "phi_final = 112.0/100 #Final flux\n",
+ "V_a = 120.0 #Rated terminal voltage of the DC motor(V)\n",
+ "R_sh_orig = 60.0 #Original Field circuit resistance(ohm)\n",
+ "R_sh_final = 50.0 #Decreased final field circuit resistance(ohm)\n",
+ "R_a = 0.2 #Armature circuit resistance(ohm)\n",
+ "BD = 3.0 #Brush voltage drop(V)\n",
+ "S_orig = 1800.0 #Rated full-load speed(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "I_f_orig = V_a/R_sh_orig #Original Field current(A)\n",
+ "I_a_orig = I_l_orig-I_f_orig #Original Armature current at full-load(A)\n",
+ "E_c_orig = V_a-(I_a_orig*R_a+BD) #Back EMF at full load(V)\n",
+ "I_f_final = V_a/R_sh_final #Final field current(A)\n",
+ "I_a_final = I_l_final-I_f_final #Final Armature current(A)\n",
+ "E_c_final = V_a-(I_a_final*R_a+BD) #Final EMF induced(V)\n",
+ "S = S_orig*(E_c_final/E_c_orig)*(phi_orig/phi_final) #Final speed of the motor(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Speed of the motor , S = %.f rpm' %S)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of the motor , S = 1532 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "I_a_1 = 38.0 #Armature current at full-load(A) from example 4-8a\n",
+ "E_c_1 = 109.4 #Back EMF at full-load(V)\n",
+ "S_1 = 1800.0 #Speed at full-load(rpm)\n",
+ "I_a_2 = 19.0 #Armature current at half-load(A) from example 4-8a\n",
+ "E_c_2 = 113.2 #Back EMF at half-load(V)\n",
+ "S_2 = 1863.0 #Speed at half-load(rpm)\n",
+ "I_a_3 = 47.5 #Armature current at 125% overload(A) from example 4-8b\n",
+ "E_c_3 = 107.5 #Back EMF at 125% overload(V)\n",
+ "S_3 = 1769.0 #Speed at 125% overload(rpm)\n",
+ "I_a_4 = 63.6 #Armature current at overload(A) from example 4-9\n",
+ "E_c_4 = 104.3 #Back EMF at overload(V)\n",
+ "S_4 = 1532.0 #Speed at overload(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "P_d_1 = E_c_1*I_a_1 #Armature power developed at full-load(W)\n",
+ "P_d_2 = E_c_2*I_a_2 #Armature power developed at half-load(W)\n",
+ "P_d_3 = E_c_3*I_a_3 #Armature power developed at 125% overload(W)\n",
+ "P_d_4 = E_c_4*I_a_4 #Armature power developed at overload(W)\n",
+ "\n",
+ "#Result\n",
+ "print(' Example \\t I_a \\t E_c \\t Speed \\t P_d or (E_c*I_a)')\n",
+ "print(' _______________________________________________________________________')\n",
+ "print(' 4-8a \\t\\t %d \\t %.1f \\t %d \\t %d W at full-load' %(I_a_1,E_c_1,S_1,P_d_1))\n",
+ "print(' \\t\\t %d \\t %.1f \\t %d \\t %.f W at half-load' %(I_a_2,E_c_2,S_2,P_d_2))\n",
+ "print(' 4-8b \\t\\t %.1f \\t %.1f \\t %d \\t %d W at 125 percent overload' %(I_a_3,E_c_3,S_3,P_d_3))\n",
+ "print(' 4-9 \\t\\t %.1f \\t %.1f \\t %d \\t %d W at overload' %(I_a_4,E_c_4,S_4,P_d_4))\n",
+ "print(' _______________________________________________________________________')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Example \t I_a \t E_c \t Speed \t P_d or (E_c*I_a)\n",
+ " _______________________________________________________________________\n",
+ " 4-8a \t\t 38 \t 109.4 \t 1800 \t 4157 W at full-load\n",
+ " \t\t 19 \t 113.2 \t 1863 \t 2151 W at half-load\n",
+ " 4-8b \t\t 47.5 \t 107.5 \t 1769 \t 5106 W at 125 percent overload\n",
+ " 4-9 \t\t 63.6 \t 104.3 \t 1532 \t 6633 W at overload\n",
+ " _______________________________________________________________________\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11, Page number 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T_a = 6.5 #Torque(dyne-centimeters)\n",
+ "T_b = 10.6 #Torque in (gram-centimeters)\n",
+ "T_c = 12.2 #Torque in (ounce-inches)\n",
+ "\n",
+ "#Calculation\n",
+ "T_a_Nm = T_a*1.416*10**-5*7.0612*10**-3 #Torque(N-m)\n",
+ "T_a_lbft = T_a*1.416*10**-5*5.208*10**-3 #Torque(lb-ft)\n",
+ "T_b_Nm = T_b*(1/72.01)*7.0612*10**-3 #Torque(N-m)\n",
+ "T_b_lbft = T_b*(1/72.01)*5.208*10**-3 #Torque(lb-ft)\n",
+ "T_c_Nm = T_c*7.0612*10**-3 #Torque(N-m)\n",
+ "T_c_lbft = T_c*5.208*10**-3 #Torque(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Torque , T = %.1e N-m' %T_a_Nm)\n",
+ "print(' Torque , T = %.1e lb-ft' %T_a_lbft)\n",
+ "print('Case(b): Torque , T = %.2e N-m' %T_b_Nm)\n",
+ "print(' Torque , T = %.2e lb-ft' %T_b_lbft)\n",
+ "print('Case(c): Torque , T = %.3e N-m' %T_c_Nm)\n",
+ "print(' Torque , T = %.2e lb-ft' %T_c_lbft)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Torque , T = 6.5e-07 N-m\n",
+ " Torque , T = 4.8e-07 lb-ft\n",
+ "Case(b): Torque , T = 1.04e-03 N-m\n",
+ " Torque , T = 7.67e-04 lb-ft\n",
+ "Case(c): Torque , T = 8.615e-02 N-m\n",
+ " Torque , T = 6.35e-02 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12, Page number 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_a = 120.0 #Rated terminal voltage of dc shunt motor(V)\n",
+ "R_a = 0.2 #Armature resistance(ohm)\n",
+ "BD = 2.0 #Brush drop(V)\n",
+ "I_a = 75.0 #Full-load armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "I_st = (V_a-BD)/R_a #Current at the instant of starting(A)\n",
+ "percentage = I_st/I_a*100 #Percentage at full load\n",
+ "\n",
+ "#Result\n",
+ "print('Current at the instant of starting , I_st = %.f A (Counter EMF is zero)' %I_st)\n",
+ "print('Percentage at full load = %d percent' %percentage)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current at the instant of starting , I_st = 590 A (Counter EMF is zero)\n",
+ "Percentage at full load = 786 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.13, Page number 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_a = 120.0 #Rated terminal voltage of dc shunt motor(V)\n",
+ "R_a = 0.2 #Armature resistance(ohm)\n",
+ "BD = 2.0 #Brush drop(V)\n",
+ "I_a = 75.0 #Full-load armature current(A)\n",
+ "I_a_new = 1.5*I_a #Armature current at 150% rated load(A) \n",
+ "E_c_a = 0 #Back EMF at starting(V)\n",
+ "E_c_b = 0.25* V_a #Back EMF is 25% of Va at 150% rated load(V)\n",
+ "E_c_c = 0.5*V_a #Back EMF is 50% of Va at 150% rated load(V)\n",
+ "\n",
+ "#Calculation\n",
+ "R_s_a = (V_a-E_c_a-BD)/I_a_new-R_a #Starting resistance at starting(ohm)\n",
+ "R_s_b = (V_a-E_c_b-BD)/I_a_new-R_a #Starting resistance 25% of Va(ohm)\n",
+ "R_s_c = (V_a-E_c_c-BD)/I_a_new-R_a #Starting resistance 50% of Va(ohm)\n",
+ "E_c_d = V_a-(I_a*R_a+BD) #Counter EMF at full-load without starting resistance(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Starting resistance at the instant of starting , R_s = %.2f \u03a9' %R_s_a)\n",
+ "print('Case(b): Starting resistance at 25 percent of armature voltage , R_s = %.3f \u03a9' %R_s_b)\n",
+ "print('Case(c): Starting resistance at 50 percent of armature voltage , R_s = %.3f \u03a9' %R_s_c)\n",
+ "print('Case(d): Counter EMF at full-load without starting resistance , E_c = %.f V' %E_c_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Starting resistance at the instant of starting , R_s = 0.85 \u03a9\n",
+ "Case(b): Starting resistance at 25 percent of armature voltage , R_s = 0.582 \u03a9\n",
+ "Case(c): Starting resistance at 50 percent of armature voltage , R_s = 0.316 \u03a9\n",
+ "Case(d): Counter EMF at full-load without starting resistance , E_c = 103 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.14, Page number 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T_orig = 160.0 #Original torque developed(lb-ft)\n",
+ "I_a_orig = 140.0 #Original armature current(A)\n",
+ "phi_f_orig = 1.6*10**6 #Original field flux(lines)\n",
+ "T_final_a = 190.0 #Final torque developed when reconnected as a cumulative compound motor(lb-ft)\n",
+ "I_a_b = 154.0 #Final armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "phi_f = phi_f_orig*(T_final_a/T_orig) #Field flux(lines)\n",
+ "percentage = (phi_f/phi_f_orig)*100-100 #Percentage increase in flux\n",
+ "phi_f_final = 1.1*phi_f #Final field flux(lines)\n",
+ "T_f = T_final_a*(I_a_b/I_a_orig)*(phi_f_final/phi_f) #Final torque developed(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Flux increase due to series field , \u03a6_f = %.1f percent' %percentage)\n",
+ "print('Case(b): Final torque , T_f = %.f lb-ft' %T_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Flux increase due to series field , \u03a6_f = 18.8 percent\n",
+ "Case(b): Final torque , T_f = 230 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.15, Page number 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "I_a_orig = 25.0 #Original armature current(A)\n",
+ "I_a_final = 30.0 #Final armature current(A)\n",
+ "T_orig = 90.0 #Original torque developed(lb-ft)\n",
+ "phi_orig = 1.0 #Original flux\n",
+ "phi_final = 1.1 #Final flux\n",
+ "\n",
+ "#Calculation\n",
+ "T_a = T_orig*(I_a_final/I_a_orig)**2 #Final torque developed if field is unsaturated(lb-ft)\n",
+ "T_b = T_orig*(I_a_final/I_a_orig)*(phi_final/phi_orig) #Final torque developed when current rises to 30A and flux increases by 10%\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Torque when field is unsaturated , T = %.1f lb-ft' %T_a)\n",
+ "print('Case(b): Torque when current rises to 30 A and flux increases by 10 percent , T = %.1f lb-ft' %T_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Torque when field is unsaturated , T = 129.6 lb-ft\n",
+ "Case(b): Torque when current rises to 30 A and flux increases by 10 percent , T = 118.8 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16, Page number 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_a = 230.0 #Rated armature voltage(V)\n",
+ "P = 10.0 #Rated power(hp)\n",
+ "S = 1250.0 #Rated speed(rpm)\n",
+ "R_A = 0.25 #Armature resistance(ohm)\n",
+ "R_p = 0.25 #Interpole resistance(ohm)\n",
+ "BD = 5.0 #Brush voltage drop(V)\n",
+ "R_s = 0.15 #Series field resistance(ohm)\n",
+ "R_sh = 230.0 #Shunt field resistance(ohm)\n",
+ "I_fl = 55.0 #Line current at rated load(A)\n",
+ "I_ol = 4.0 #No-load line current(A)\n",
+ "S_o = 1810.0 #No-load speed(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "R_a = R_A+R_p #Effective armature resistance(ohm)\n",
+ "I_f = V_a/R_sh #Field current(A)\n",
+ "I_a = I_ol-I_f #Armature current at no-load(A)\n",
+ "E_c_o = V_a-(I_a*R_a+BD) #No-load back EMF(V)\n",
+ "I_a_fl = I_fl-I_f #Armature current at full-load(A)\n",
+ "E_c_full_load = V_a-(I_a_fl*R_a+BD) #Back EMF at full-load(V)\n",
+ "S_r = S_o*(E_c_full_load/E_c_o) #Speed at rated load(rpm)\n",
+ "#Case(b)\n",
+ "P_d = E_c_full_load*I_a_fl #Internal power(W)\n",
+ "hp = P_d/746.0 #Internal horse power(hp)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Speed at rated load , S_r = %.f rpm' %S_r)\n",
+ "print('Case(b): Internal power in watts , P_d = %.f W' %P_d)\n",
+ "print(' Internal horse-power developed , P_d = %.1f hp' %hp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Speed at rated load , S_r = 1603 rpm\n",
+ "Case(b): Internal power in watts , P_d = 10692 W\n",
+ " Internal horse-power developed , P_d = 14.3 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page number 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_a = 230.0 #Rated armature voltage(V)\n",
+ "P = 10.0 #Rated power(hp)\n",
+ "S = 1250.0 #Rated speed(rpm)\n",
+ "R_A = 0.25 #Armature resistance(ohm)\n",
+ "R_p = 0.25 #Interpole resistance(ohm)\n",
+ "BD = 5.0 #Brush voltage drop in volt\n",
+ "R_s = 0.15 #Series field resistance in ohm\n",
+ "R_sh = 230.0 #Shunt field resistance in ohm\n",
+ "phi_1 = 1.0 #Original flux per pole\n",
+ "I_fl = 55.0 #Line current at rated load(A)\n",
+ "phi_2 = 1.25 #Flux increased by 25% due to long-shunt cumulative connection\n",
+ "I_ol = 4.0 #No-load line current(A)\n",
+ "S_o = 1810.0 #No-load speed(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "R_a = R_A+R_p #Effective armature resistance(ohm)\n",
+ "I_f = V_a/R_sh #Field current(A)\n",
+ "I_a = I_ol-I_f #Armature current at no-load(A)\n",
+ "E_c_o = V_a-(I_a*R_a+BD) #No-load back EMF(V)\n",
+ "I_a_fl = I_fl-I_f #Armature current at full-load(A)\n",
+ "#Case(a)\n",
+ "E_c_o1 = V_a-(I_a*R_a+I_a*R_s+BD) #No-load back EMF for long shunt cumulative connection(V)\n",
+ "S_n1 = S_o*(E_c_o1/E_c_o) #Speed at no-load(rpm)\n",
+ "#Case(b)\n",
+ "E_c_full_load_lsh = V_a-(I_a_fl*R_a+I_a_fl*R_s+BD ) #Back EMF at full-load for long-shunt cumulative motor(V)\n",
+ "S_r_lsh = S_n1*(E_c_full_load_lsh/E_c_o1)*(phi_1/phi_2) #Speed at rated load for long shunt connection(rpm)\n",
+ "#Case(c)\n",
+ "E_c_full_load = V_a-(I_a_fl*R_a+BD) #Back EMF at full-load(V)\n",
+ "S_r = S_o*(E_c_full_load/E_c_o) #Speed at rated load for shunt connection(rpm)\n",
+ "P_d = E_c_full_load*I_a_fl #Internal power(W)\n",
+ "hp = P_d/746.0 #Internal horse power(hp)\n",
+ "T_shunt = hp*5252/S_r #Internal torque at full-load for shunt motor(lb-ft)\n",
+ "I_a1 = I_a_fl #Armature current for shunt motor(A)\n",
+ "I_a2 = I_a_fl #Armature current for long-shunt cumulative motor(A)\n",
+ "T_comp = T_shunt*(phi_2/phi_1)*(I_a2/I_a1) #Internal torque at full load for long-shunt cumulative motor(lb-ft)\n",
+ "#Case(d)\n",
+ "Horsepower = (E_c_full_load_lsh*I_a_fl)/746 #Internal horsepower of compound motor based on flux increase(hp)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Speed at no-load , S_n1 = %d rpm' %S_n1)\n",
+ "print('Case(b): Speed at rated-load , S_r = %d rpm' %S_r_lsh)\n",
+ "print('Case(c): Internal torque at full-load with series field , T_comp = %.2f lb-ft' %T_comp)\n",
+ "print(' Internal torque at full-load without series field , T_shunt = %.2f lb-ft' %T_shunt)\n",
+ "print('Case(d): Internal horsepower of the compound motor , Horsepower = %.1f hp' %Horsepower)\n",
+ "print('Case(e): The internal hp exceeds the rated hp because the power developed in the motor must also overcome the internal mechanical rotational losses')\n",
+ "print('\\nNOTE: The change in obtained answer from that of textbook is due to more precision i.e more number of decimal places in this case')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Speed at no-load , S_n1 = 1806 rpm\n",
+ "Case(b): Speed at rated-load , S_r = 1230 rpm\n",
+ "Case(c): Internal torque at full-load with series field , T_comp = 58.68 lb-ft\n",
+ " Internal torque at full-load without series field , T_shunt = 46.94 lb-ft\n",
+ "Case(d): Internal horsepower of the compound motor , Horsepower = 13.7 hp\n",
+ "Case(e): The internal hp exceeds the rated hp because the power developed in the motor must also overcome the internal mechanical rotational losses\n",
+ "\n",
+ "NOTE: The change in obtained answer from that of textbook is due to more precision i.e more number of decimal places in this case\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.18, Page number 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 25.0 #Power rating of a series motor(hp)\n",
+ "V_a = 250.0 #Rated voltage(V)\n",
+ "R_a = 0.1 #Armature circuit resistance(ohm)\n",
+ "BD = 3.0 #Brush voltage drop(V)\n",
+ "R_s = 0.05 #Series field resistance(ohm)\n",
+ "I_a = 85.0 #Armature current(A)\n",
+ "I_a1 = 100.0 #Armature current(A)(case a)\n",
+ "I_a2 = 40.0 #Armature current(A)(case b)\n",
+ "S_1 = 600.0 #Speed(rpm)\n",
+ "R_d = 0.05 #Diverter resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "E_c2 = V_a-I_a1*(R_a+R_s)-BD #Back EMF when Ia = 100 A(V)\n",
+ "E_c1 = V_a-I_a*(R_a+R_s)-BD #Back EMF when Ia = 85 A(V)\n",
+ "S_2 = S_1*(E_c2/E_c1)*(I_a/I_a1) #Speed(rpm)\n",
+ "#Case(b)\n",
+ "E_c3 = V_a-I_a2*(R_a+R_s)-BD #Back EMF when Ia = 40 A(V)\n",
+ "S_3 = S_1*(E_c3/E_c1)*(I_a/I_a2) #Speed(rpm)\n",
+ "#Case(c)\n",
+ "R_sd = (R_s*R_d)/(R_s+R_d ) #Effective series field resistance(ohm)\n",
+ "E_c2_new = V_a-I_a1*(R_a+R_sd)-BD #Back EMF when Ia = 100 A(V)\n",
+ "S_2_new = S_1*(E_c2_new/E_c1)*(I_a/(I_a1/2)) #Speed(rpm) \n",
+ "E_c3_new = V_a-I_a2*(R_a+R_sd)-BD #Back EMF when Ia = 40 A(V)\n",
+ "S_3_new = S_1*(E_c3_new/E_c1)*(I_a/(I_a2/2)) #Speed(rpm) \n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Speed when current is 100 A , S_2 = %.f rpm' %S_2)\n",
+ "print('Case(b): Speed when current is 40 A , S_3 = %d rpm' %S_3)\n",
+ "print('Case(c): Speed when current is 100 A and using a diverter , S_2 = %.f rpm' %S_2_new)\n",
+ "print(' Speed when current is 40 A and using a diverter , S_3 = %.f rpm' %S_3_new)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Speed when current is 100 A , S_2 = 505 rpm\n",
+ "Case(b): Speed when current is 40 A , S_3 = 1311 rpm\n",
+ "Case(c): Speed when current is 100 A and using a diverter , S_2 = 1021 rpm\n",
+ " Speed when current is 40 A and using a diverter , S_3 = 2634 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page number 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_n1 = 1810.0 #No-load speed(rpm) From Ex. 4-16\n",
+ "S_f1 = 1603.0 #Full-load speed(rpm)\n",
+ "S_n2 = 1806.0 #No-load speed(rpm) From Ex. 4-17\n",
+ "S_f2 = 1231.0 #Full-load speed(rpm)\n",
+ "S_n3 = 1311.0 #No-load speed(rpm) From Ex. 4-18\n",
+ "S_f3 = 505.0 #Full-load speed(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "SR_1 = (S_n1-S_f1)/S_f1*100 #Speed regulation for shunt motor(%)\n",
+ "SR_2 = (S_n2-S_f2)/S_f2*100 #Speed regulation for compound motor(%)\n",
+ "SR_3 = (S_n3-S_f3)/S_f3*100 #Speed regulation for series motor(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Speed regulation , SR(shunt) = %.1f percent' %SR_1)\n",
+ "print('Case(b): Speed regulation , SR(compound) = %.1f percent' %SR_2)\n",
+ "print('Case(c): Speed regulation , SR(series) = %.1f percent' %SR_3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Speed regulation , SR(shunt) = 12.9 percent\n",
+ "Case(b): Speed regulation , SR(compound) = 46.7 percent\n",
+ "Case(c): Speed regulation , SR(series) = 159.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page number 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "SR = 0.1 #Speed regulation of a shunt motor \n",
+ "omega_f1 = 60.0*math.pi #Full-load speed(rad/s)\n",
+ "\n",
+ "#Calculation\n",
+ "omega_n1 = omega_f1*(1+SR) #No-load speed(rad/s)\n",
+ "S = omega_n1*(1/(2*math.pi))*(60.0/1) #No-load speed(rpm) \n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): No-load speed , \u03c9_n1 = %.f\u03c0 rad/s' %(omega_n1/math.pi))\n",
+ "print('Case(b): No-load speed , S = %.f rpm' %S)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): No-load speed , \u03c9_n1 = 66\u03c0 rad/s\n",
+ "Case(b): No-load speed , S = 1980 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page number 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_int = 1603.0 #Internal rated speed(rpm)\n",
+ "S_ext = 1250.0 #External rated speed(rpm)\n",
+ "hp_int = 14.3 #Internal horsepower\n",
+ "hp_ext = 10.0 #External horsepower\n",
+ "\n",
+ "#Calculation\n",
+ "T_int = hp_int*5252/S_int #Internal torque(lb-ft)\n",
+ "T_ext = hp_ext*5252/S_ext #External torque(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Internal torque , T_int = %.2f lb-ft' %T_int)\n",
+ "print('Case(b): External torque , T_ext = %.1f lb-ft' %T_ext)\n",
+ "print('Case(c): Internal hp developed due electromagnetic torque is used internally to overcome mechanical losses of the motor reducing the torque available at its shaft to perform work')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Internal torque , T_int = 46.85 lb-ft\n",
+ "Case(b): External torque , T_ext = 42.0 lb-ft\n",
+ "Case(c): Internal hp developed due electromagnetic torque is used internally to overcome mechanical losses of the motor reducing the torque available at its shaft to perform work\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page number 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 50.0 #Power rating of the servo motor(W)\n",
+ "S = 3000.0 #Full-load speed of the servo motor(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "T_lbft = (7.04*P)/S #Output torque(lb-ft)\n",
+ "T_ounceinch = T_lbft*192 #Output torque(ounce-inches)\n",
+ "\n",
+ "#Result\n",
+ "print('Output torque available at the motor pulley , T = %.1f oz-in' %T_ounceinch)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output torque available at the motor pulley , T = 22.5 oz-in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page number 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 50.0 #Power rating of the servo motor(W)\n",
+ "S = 3000.0 #Full-load speed of the servo motor(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "S_rad_per_sec = S*2*math.pi/60 #Full-load speed of the servo motor(rad/s)\n",
+ "omega = 314.2 #Angular frequency(rad/s)\n",
+ "T_Nm = P/omega #Output torque(N-m)\n",
+ "T_ounceinch = T_Nm*1/(7.0612*10**-3) #Output torque(oz-in)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Motor speed in radians per second = %.1f rad/s' %S_rad_per_sec)\n",
+ "print('Case(b): Output torque in newton-meters , T = %.4f N-m' %T_Nm)\n",
+ "print('Case(c): Output torque in ounce-inches , T = %.1f oz-in' %T_ounceinch)\n",
+ "print('Case(d): Both answers are the same')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Motor speed in radians per second = 314.2 rad/s\n",
+ "Case(b): Output torque in newton-meters , T = 0.1591 N-m\n",
+ "Case(c): Output torque in ounce-inches , T = 22.5 oz-in\n",
+ "Case(d): Both answers are the same\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_5.ipynb b/Electric_Machinery_and_Transformers/CHAP_5.ipynb
new file mode 100755
index 00000000..b5f7d623
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_5.ipynb
@@ -0,0 +1,113 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 5: ARMATURE REACTION AND COMMUTATION IN DYNAMOS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page number 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "conductors = 800.0 #Number of conductors \n",
+ "I_a = 1000.0 #Rated armature current(A)\n",
+ "P = 10.0 #Number of poles\n",
+ "pitch = 0.7 #Pole-face covers 70% of the pitch \n",
+ "a = P #Number of parallel paths for Simplex lap-wound\n",
+ "\n",
+ "#Calculation\n",
+ "Z = conductors/P #Number of armature conductors/path under each pole\n",
+ "Z_a = Z*pitch #Active armature conductors/pole\n",
+ "Z_p = Z_a/a #Number of pole face conductors/pole \n",
+ "\n",
+ "#Result\n",
+ "print('Number of pole face conductors/pole , Z_p = %.1f or %.f conductors/pole' %(Z_p,Z_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of pole face conductors/pole , Z_p = 5.6 or 6 conductors/pole\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page number 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "conductors = 800.0 #Number of conductors \n",
+ "I_a = 1000.0 #Rated armature current(A)\n",
+ "I_l = I_a #Load or total current entering the armature(A)\n",
+ "P = 10.0 #Number of poles\n",
+ "pitch = 0.7 #Pole-face covers 70% of the pitch \n",
+ "a = P #Number of parallel paths for Simplex lap-wound\n",
+ "alpha = 5.0 #Number of electrical degress that the brushes are shifted \n",
+ "\n",
+ "#Calculation\n",
+ "Z = conductors/P #Number of armature conductors/path under each pole\n",
+ "A_Z_per_pole = (Z*I_l)/(P*a) #Cross magnetizing ampere-conductors/pole\n",
+ "At_per_pole = (1.0/2)*(8000/1) #Ampere-turns/pole\n",
+ "frac_demag_At_per_pole = (2*alpha)/180*(At_per_pole) #Fraction of demagnetizing ampere-turns/pole\n",
+ "beta = 180-2*alpha #Cross-magnetizing electrical degrees\n",
+ "cross_mag_At_per_pole = (beta/180)*(At_per_pole) #Cross-magnetizing ampere-turns/pole\n",
+ "\n",
+ "#Result\n",
+ "print('(a) The cross-magnetizing ampere-conductors/pole = %.1f ampere-conductors/pole' %A_Z_per_pole)\n",
+ "print(' The cross-magnetizing ampere-turns/pole = %.1f At/pole' %At_per_pole)\n",
+ "print('(b) The fraction of demagnetizing ampere-turns/pole = %.1f At/pole' %frac_demag_At_per_pole)\n",
+ "print('(c) The cross-magnetizing ampere-turns/pole = %.f At/pole' %cross_mag_At_per_pole)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) The cross-magnetizing ampere-conductors/pole = 800.0 ampere-conductors/pole\n",
+ " The cross-magnetizing ampere-turns/pole = 4000.0 At/pole\n",
+ "(b) The fraction of demagnetizing ampere-turns/pole = 222.2 At/pole\n",
+ "(c) The cross-magnetizing ampere-turns/pole = 3778 At/pole\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_6.ipynb b/Electric_Machinery_and_Transformers/CHAP_6.ipynb
new file mode 100755
index 00000000..8d4aa049
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_6.ipynb
@@ -0,0 +1,505 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 6: AC DYNAMO VOLTAGE RELATIONS-ALTERNATORS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page number 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 1000.0 #Rating of the 3-phase alternator(kVA) \n",
+ "V_L = 4600.0 #Rated line voltage(V)\n",
+ "R_a = 2.0 #Armature resistance per phase(ohm)\n",
+ "X_s = 20.0 #Synchronous armature reactance per phase(ohm)\n",
+ "pf_a = 1.0 #Unity power factor\n",
+ "pf_b = 0.75 #Lagging power factor\n",
+ "\n",
+ "#Calculation\n",
+ "V_P = V_L/3**0.5 #Phase voltage(V)\n",
+ "I_P = kVA*1000/(3*V_P) #Phase current(A)\n",
+ "I_a = I_P #Armature current(A)\n",
+ "#Case(a)\n",
+ "E_g_a = complex((V_P+I_a*R_a),(I_a*X_s)) #Full-load generated voltage per phase(V/phase)\n",
+ "#Case(b)\n",
+ "sin_theta_b = (1-pf_b**2)**0.5 #Sin of angle of theta_b\n",
+ "E_g_b = complex((V_P*pf_b+ I_a*R_a),(V_P*sin_theta_b+I_a*X_s)) #Full-load generated voltage per phase(V/phase)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load generated voltage per phase at unity PF , E_g = %d V/phase' %(abs(E_g_a)))\n",
+ "print('Case(b): Full-load generated voltage per phase at 0.75 PF lagging , E_g = %d V/phase' %(abs(E_g_b)))\n",
+ "print('\\nNOTE: \u221a3 value is taken as %f instead of 1.73 as in textbook so slight variations in the obtained answer' %(3**0.5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load generated voltage per phase at unity PF , E_g = 3840 V/phase\n",
+ "Case(b): Full-load generated voltage per phase at 0.75 PF lagging , E_g = 4820 V/phase\n",
+ "\n",
+ "NOTE: \u221a3 value is taken as 1.732051 instead of 1.73 as in textbook so slight variations in the obtained answer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page number 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 1000.0 #Rating of the 3-phase alternator(kVA) \n",
+ "V_L = 4600.0 #Rated line voltage(V)\n",
+ "R_a = 2.0 #Armature resistance per phase(ohm)\n",
+ "X_s = 20.0 #Synchronous armature reactance per phase(ohm)\n",
+ "pf_a = 0.75 #Leading power factor\n",
+ "pf_b = 0.40 #Leading power factor\n",
+ "\n",
+ "#Calculation\n",
+ "V_P = V_L/3**0.5 #Phase voltage(V)\n",
+ "I_P = kVA*1000/(3*V_P) #Phase current(A)\n",
+ "I_a = I_P #Armature current(A)\n",
+ "#Case(a)\n",
+ "sin_theta_a = (1-pf_a**2)**0.5 #Sin of angle of theta_a\n",
+ "E_g_a = complex((V_P*pf_a+I_a*R_a),(V_P*sin_theta_a-I_a*X_s)) #Full-load generated voltage per phase(V/phase)\n",
+ "#Case(b)\n",
+ "sin_theta_b = (1-pf_b**2)**0.5 #Sin of angle of theta_b\n",
+ "E_g_b = complex((V_P*pf_b+ I_a*R_a),(V_P*sin_theta_b+-I_a*X_s)) #Full-load generated voltage per phase(V/phase)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load generated voltage per phase at 0.75 PF leading , E_g = %d V/phase' %(abs(E_g_a)))\n",
+ "print('Case(b): Full-load generated voltage per phase at 0.40 PF leading , E_g = %d V/phase' %(abs(E_g_b)))\n",
+ "print('\\nNOTE: \u221a3 value is taken as %f instead of 1.73 as in textbook so slight variations in the obtained answer' %(3**0.5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load generated voltage per phase at 0.75 PF leading , E_g = 2366 V/phase\n",
+ "Case(b): Full-load generated voltage per phase at 0.40 PF leading , E_g = 1315 V/phase\n",
+ "\n",
+ "NOTE: \u221a3 value is taken as 1.732051 instead of 1.73 as in textbook so slight variations in the obtained answer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page number 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "V_P = 2655.0 #Phase voltage(V) \n",
+ "E_g_a1 = 4820.0 #Full-load generated voltage per phase at 0.75 PF lagging(V/phase)\n",
+ "E_g_b1 = 3840.0 #Full-load generated voltage per phase at unity PF(V/phase)\n",
+ "E_g_a2 = 2366.0 #Full-load generated voltage per phase at 0.75 PF leading(V/phase)\n",
+ "E_g_b2 = 1315.0 #Full-load generated voltage per phase at 0.40 PF leading(V/phase)\n",
+ "\n",
+ "#Calculation\n",
+ "VR_a = (E_g_a1-V_P)/V_P*100 #Voltage regulation at 0.75 PF lagging(percent)\n",
+ "VR_b = (E_g_b1-V_P)/V_P*100 #Voltage regulation at unity PF(percent)\n",
+ "VR_c = (E_g_a2-V_P)/V_P*100 #Voltage regulation at 0.75 PF leading(percent)\n",
+ "VR_d = (E_g_b2-V_P)/V_P*100 #Voltage regulation at 0.75 PF leading(percent)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Voltage regulation at 0.75 PF lagging , VR = %.1f percent' %VR_a)\n",
+ "print('Case(b): Voltage regulation at unity PF , VR = %.1f percent' %VR_b)\n",
+ "print('Case(c): Voltage regulation at 0.75 PF leading , VR = %.2f percent' %VR_c)\n",
+ "print('Case(d): Voltage regulation at 0.40 PF leading , VR = %.1f percent' %VR_d)\n",
+ "print('\\nNOTE: \u221a3 value is taken as %f instead of 1.73 as in textbook so slight variations in the obtained answer' %(3**0.5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Voltage regulation at 0.75 PF lagging , VR = 81.5 percent\n",
+ "Case(b): Voltage regulation at unity PF , VR = 44.6 percent\n",
+ "Case(c): Voltage regulation at 0.75 PF leading , VR = -10.89 percent\n",
+ "Case(d): Voltage regulation at 0.40 PF leading , VR = -50.5 percent\n",
+ "\n",
+ "NOTE: \u221a3 value is taken as 1.732051 instead of 1.73 as in textbook so slight variations in the obtained answer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 100.0 #Rating of the 3-phase alternator(kVA)\n",
+ "V_L = 1100.0 #Line voltage of the 3-phase alternator(V)\n",
+ "E_gp1 = 6.0 #DC voltage between lines in dc resistance test(V)\n",
+ "I_a1 = 10.0 #DC current in lines dc resistance test(A)\n",
+ "pf_1 = 0.8 #Lagging power factor\n",
+ "pf_2 = 0.8 #Leading power factor\n",
+ "E_gp2 = 420.0 #Voltage between lines in open-circuit test(V)\n",
+ "I_f2 = 12.5 #DC Field current in open-circuit test(A)\n",
+ "I_f3 = 12.5 #DC Field current in short-circuit test(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_a_rated = kVA*1000/(V_L*3**0.5) #Rated current per phase(A)\n",
+ "I_a = 3**0.5*I_a_rated #Rated Line current(A)\n",
+ "V_l = E_gp1\n",
+ "R_dc = V_l/(2*I_a1) #Effective dc armature resistance(ohm/winding)\n",
+ "R_ac = R_dc*1.5 #Effective ac armature resistance(ohm/phase)\n",
+ "R_a = R_ac #Effective ac armature resistance from dc resistance test(ohm/phase)\n",
+ "Z_p = E_gp2/I_a #Synchronous impedance per phase(ohm/phase)\n",
+ "X_s = (Z_p**2-R_a**2)**0.5 #Synchronous reactance per phase(ohm/phase)\n",
+ "#Case(b)\n",
+ "V_p = V_L/3**0.5 #Phase voltage(V/phase)\n",
+ "V_fl = V_p #Full-load voltage(V/phase)\n",
+ "sin_theta_1 = (1-pf_1**2)**0.5 #Sin value of theta 1\n",
+ "E_gp_lag = complex((V_p*pf_1+I_a_rated*R_a),(V_p*sin_theta_1+I_a_rated*X_s)) #Generated voltage per phase at 0.8 PF lagging(V/phase)\n",
+ "V_nl_lag = abs(E_gp_lag) #No-load voltage(V/phase)\n",
+ "VR1 = (V_nl_lag-V_fl)/V_fl*100 #Voltage regulation at 0.8 PF lagging(%)\n",
+ "sin_theta_2 = (1-pf_2**2)**0.5 #Sin value of theta 2\n",
+ "E_gp_lead = complex((V_p*pf_2+I_a_rated*R_a),(V_p*sin_theta_2-I_a_rated*X_s)) #Generated voltage per phase at 0.8 PF leading(V/phase)\n",
+ "V_nl_lead = abs(E_gp_lead) #No-load voltage(V/phase)\n",
+ "VR2 = (V_nl_lead-V_fl)/V_fl*100 #Voltage regulation at 0.8 PF leading(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Effective resistance per phase , R_ac = %.2f \u03a9/phase' %R_ac)\n",
+ "print(' Synchronous impedance per phase , Z_p = %.2f \u03a9/phase' %Z_p)\n",
+ "print(' Synchronous reactance per phase , X_s = %.1f \u03a9/phase' %X_s)\n",
+ "print('Case(b): Voltage regulation at 0.8 PF lagging = %.f percent' %VR1)\n",
+ "print(' Voltage regulation at 0.8 PF leading = %.1f percent' %VR2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Effective resistance per phase , R_ac = 0.45 \u03a9/phase\n",
+ " Synchronous impedance per phase , Z_p = 4.62 \u03a9/phase\n",
+ " Synchronous reactance per phase , X_s = 4.6 \u03a9/phase\n",
+ "Case(b): Voltage regulation at 0.8 PF lagging = 29 percent\n",
+ " Voltage regulation at 0.8 PF leading = -13.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page number 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 100.0 #Rating of the 3-phase alternator(kVA)\n",
+ "V_L = 1100.0 #Line voltage of the 3-phase alternator(V)\n",
+ "E_gp1 = 6.0 #DC voltage between lines in dc resistance test(V)\n",
+ "I_a1 = 10.0 #DC current in lines dc resistance test(A)\n",
+ "pf_1 = 0.8 #Lagging power factor\n",
+ "pf_2 = 0.8 #Leading power factor\n",
+ "E_gp2 = 420.0 #Voltage between lines in open-circuit test(V)\n",
+ "I_f2 = 12.5 #DC Field current in open-circuit test(A)\n",
+ "I_f3 = 12.5 #DC Field current in short-circuit test(A)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "I_a_rated = kVA*1000/(V_L*3**0.5) #Rated current per phase(A)\n",
+ "I_L = I_a_rated #Rated Line current(A)\n",
+ "I_p = I_L/3**0.5 #Phase current(A)\n",
+ "I_a = I_p #Rated Line current(A)\n",
+ "Z_s = E_gp2/I_p #Synchronous impedance per phase(ohm/phase)\n",
+ "V_l = E_gp1\n",
+ "R_dc = V_l/(2*I_a1) #Effective dc armature resistance(ohm/winding)\n",
+ "R_ac = R_dc*1.5 #Effective ac armature resistance(ohm/phase)\n",
+ "R_eff = 3*R_ac #Effective resistance(ohm/phase)\n",
+ "R_a = R_eff\n",
+ "X_s = (Z_s**2-R_eff**2)**0.5 #Synchronous reactance per phase(ohm/phase)\n",
+ "#Case(b)\n",
+ "V_p = V_L #Phase voltage(V/phase)\n",
+ "V_fl = V_p #Full-load voltage(V/phase)\n",
+ "sin_theta_1 = (1-pf_1**2)**0.5 #Sin value of theta 1\n",
+ "E_gp_lag = complex((V_p*pf_1+I_a*R_a),(V_p*sin_theta_1+I_a*X_s)) #Generated voltage per phase at 0.8 PF lagging(V/phase)\n",
+ "V_nl_lag = abs(E_gp_lag) #No-load voltage(V/phase)\n",
+ "VR1 = (V_nl_lag-V_fl)/V_fl*100 #Voltage regulation at 0.8 PF lagging(%)\n",
+ "sin_theta_2 = (1-pf_2**2)**0.5 #Sin value of theta 2\n",
+ "E_gp_lead = complex((V_p*pf_2+I_a*R_a),(V_p*sin_theta_2-I_a*X_s)) #Generated voltage per phase at 0.8 PF leading(V/phase)\n",
+ "V_nl_lead = abs(E_gp_lead) #No-load voltage(V/phase)\n",
+ "VR2 = (V_nl_lead-V_fl)/V_fl*100 #Voltage regulation at 0.8 PF leading(%)\n",
+ "\n",
+ "print('Case(a): Effective resistance per phase , R_eff = %.2f \u03a9/phase' %R_eff)\n",
+ "print(' Synchronous impedance per phase , Z_s = %.2f \u03a9/phase' %Z_s)\n",
+ "print(' Synchronous reactance per phase , X_s = %.1f \u03a9/phase' %X_s)\n",
+ "print('Case(b): Voltage regulation at 0.8 PF lagging = %.f percent' %VR1)\n",
+ "print(' Voltage regulation at 0.8 PF leading = %.1f percent' %VR2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Effective resistance per phase , R_eff = 1.35 \u03a9/phase\n",
+ " Synchronous impedance per phase , Z_s = 13.86 \u03a9/phase\n",
+ " Synchronous reactance per phase , X_s = 13.8 \u03a9/phase\n",
+ "Case(b): Voltage regulation at 0.8 PF lagging = 29 percent\n",
+ " Voltage regulation at 0.8 PF leading = -13.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "E_L = 11000.0 #Line voltage generated(V)\n",
+ "kVA = 165000.0 #Rating of the alternator(kVA)\n",
+ "Z_p = 1.0 #Synchronous reactance(ohm)\n",
+ "R_p = 0.1 #Armature resistance(ohm/phase)\n",
+ "Z_r = 0.8 #Reactor reactance(ohm/phase)\n",
+ "\n",
+ "#Calculation\n",
+ "E_p = E_L/3**0.5 #Rated phase voltage(V)\n",
+ "I_p = kVA*1000/(3*E_p) #Rated current per phase(A)\n",
+ "#Case(a)\n",
+ "I_max_a = E_p/R_p #Maximum short-circuit current(A)\n",
+ "overload_a = I_max_a/I_p #Overload\n",
+ "#Case(b)\n",
+ "I_steady = E_p/Z_p #Sustained short-circuit current(A)\n",
+ "overload_b = I_steady/I_p #Overload\n",
+ "#Case(c)\n",
+ "Z_t = complex(R_p,Z_r) #Total reactance per phase(ohm)\n",
+ "I_max_c = E_p/abs(Z_t) #Maximum short-circuit current(A)\n",
+ "overload_c = abs(I_max_c)/I_p #Overload\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Maximum short-circuit current at instant of short-circuit , I_max = %.f A' %I_max_a)\n",
+ "print(' Overload = %.1f * rated current' %overload_a)\n",
+ "print('Case(b): Sustained short-circuit current , I_steady = %.f A' %I_steady)\n",
+ "print(' Overload = %.2f * rated current' %overload_b)\n",
+ "print('Case(c): Maximum short-circuit current with reactors , I_max = %.f A' %I_max_c)\n",
+ "print(' Overload = %.3f * rated current' %overload_c)\n",
+ "print('\\nNOTE: \u221a3 value is taken as %f instead of 1.73 as in textbook so slight variations in the obtained answer' %(3**0.5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Maximum short-circuit current at instant of short-circuit , I_max = 63509 A\n",
+ " Overload = 7.3 * rated current\n",
+ "Case(b): Sustained short-circuit current , I_steady = 6351 A\n",
+ " Overload = 0.73 * rated current\n",
+ "Case(c): Maximum short-circuit current with reactors , I_max = 7877 A\n",
+ " Overload = 0.910 * rated current\n",
+ "\n",
+ "NOTE: \u221a3 value is taken as 1.732051 instead of 1.73 as in textbook so slight variations in the obtained answer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page number 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "kVA = 100.0 #Rating of the 3-phase alternator(kVA)\n",
+ "V_L = 1100.0 #Line voltage of the 3-phase alternator(V)\n",
+ "E_gp1 = 6.0 #DC voltage between lines in dc resistance test(V)\n",
+ "I_a1 = 10.0 #DC current in lines dc resistance test(A)\n",
+ "pf = 0.8 #Lagging power factor\n",
+ "E_gp2 = 420.0 #Voltage between lines in open-circuit test(V)\n",
+ "I_f2 = 12.5 #DC Field current in open-circuit test(A)\n",
+ "I_f3 = 12.5 #DC Field current in short-circuit test(A)\n",
+ "I_L = 52.5 #Rated line current(A)\n",
+ "I_a = I_L #Rated current per phase(A)\n",
+ "E_gp = complex(532,623) #Generated voltage at 0.8 PF lagging(V/phase)\n",
+ "X_s = 4.6 #Synchronous reactance per phase(ohm/phase)\n",
+ "V_p = 635.0 #Phase voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "P_T = 3**0.5*V_L*I_L*pf #Total output 3-phase power(W)\n",
+ "#Case(b)\n",
+ "P_p_b = P_T*10**-3/3.0 #Total output 3-phase power per phase(W)\n",
+ "#Case(d)\n",
+ "theta = math.acos(0.8)*180/math.pi #Phase angle of PF(degree)\n",
+ "theta_plus_deba = cmath.phase(E_gp)*180/math.pi #Phase angle of E_gp(degrees)\n",
+ "deba = theta_plus_deba-theta #Torque angle(degrees)\n",
+ "#Case(e)\n",
+ "P_p_e = abs(E_gp)*10**-3/X_s*V_p*math.sin(deba*math.pi/180) #Approximate output power per phase(W)\n",
+ "#Case(f)\n",
+ "P_p_f = abs(E_gp)*10**-3*I_a*math.cos(theta_plus_deba*math.pi/180) #Approximate output power per phase(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Total output 3-phase power , P_T = %.f W' %P_T)\n",
+ "print('Case(b): Output power per phase , P_p = %.2f kW' %P_p_b)\n",
+ "print('Case(c): Generated voltage , E_gp = %.1f\u2220%.1f\u00b0 V' %(abs(E_gp),cmath.phase(E_gp)*180/math.pi))\n",
+ "print('Case(d): Torque angle , \u03b4 = %.2f\u00b0 ' %deba)\n",
+ "print('Case(e): Approximate output power per phase , P_p = %.f W' %P_p_e)\n",
+ "print('Case(f): Approximate output power per phase , P_p = %.f W' %P_p_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Total output 3-phase power , P_T = 80021 W\n",
+ "Case(b): Output power per phase , P_p = 26.67 kW\n",
+ "Case(c): Generated voltage , E_gp = 819.2\u222049.5\u00b0 V\n",
+ "Case(d): Torque angle , \u03b4 = 12.64\u00b0 \n",
+ "Case(e): Approximate output power per phase , P_p = 25 W\n",
+ "Case(f): Approximate output power per phase , P_p = 28 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page number 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "E_g = 819.0 #Magnitude of generated voltage(V)\n",
+ "V_p = 635.0 #Phase voltage(V)\n",
+ "X_s = 4.6 #Synchronous reactance per phase(ohm/phase)\n",
+ "S = 1200.0 #Synchronous speed(rpm)\n",
+ "delta = 12.64 #Angle(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "T_p_a = 7.04*E_g*V_p*math.sin(delta*math.pi/180)/(S*X_s) #Output torque per phase(lb-ft)\n",
+ "T_3ph_a = 3*T_p_a #Total output torque(lb-ft)\n",
+ "#Case(b)\n",
+ "omega = S*2*math.pi/60 #Speed(rad/s)\n",
+ "T_p_b = E_g*V_p*math.sin(delta*math.pi/180)/(omega*X_s) #Output torque per phase(N-m)\n",
+ "T_3ph_b = 3*T_p_b #Total output torque(N-m)\n",
+ "#Case(c)\n",
+ "T_p_c = T_p_a*1.356 #Output torque per phase(N-m)\n",
+ "T_3ph_c = 3.0*T_p_c #Total output torque(N-m)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Output torque per phase , T_p = %.f lb-ft' %T_p_a)\n",
+ "print(' Total output torque , T_3\u03c6 = %.f lb-ft' %T_3ph_a)\n",
+ "print('Case(b): Output torque per phase , T_p = %.f N-m' %T_p_b)\n",
+ "print(' Total output torque , T_3\u03c6 = %.f N-m' %T_3ph_b)\n",
+ "print('Case(c): Output torque per phase , T_p = %.f N-m' %T_p_c)\n",
+ "print(' Total output torque , T_3\u03c6 = %.f N-m' %T_3ph_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Output torque per phase , T_p = 145 lb-ft\n",
+ " Total output torque , T_3\u03c6 = 435 lb-ft\n",
+ "Case(b): Output torque per phase , T_p = 197 N-m\n",
+ " Total output torque , T_3\u03c6 = 591 N-m\n",
+ "Case(c): Output torque per phase , T_p = 197 N-m\n",
+ " Total output torque , T_3\u03c6 = 590 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_7.ipynb b/Electric_Machinery_and_Transformers/CHAP_7.ipynb
new file mode 100755
index 00000000..3b6bfaa8
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_7.ipynb
@@ -0,0 +1,738 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 7: PARALLEL OPERATION"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page number 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R_sh = 120.0 #Shunt field resistance(ohm)\n",
+ "R_a = 0.1 #Armature resistance(ohm)\n",
+ "V_L = 120.0 #Line voltage(V)\n",
+ "E_g1 = 125.0 #Generated voltage by dynamo A(V)\n",
+ "E_g2 = 120.0 #Generated voltage by dynamo B(V)\n",
+ "E_g3 = 114.0 #Generated voltage by dynamo C(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a) #1\n",
+ "I_gA = (E_g1-V_L)/R_a #Current in the generating dynamo A(A)\n",
+ "I_f = V_L/R_sh #Shunt field current(A)\n",
+ "I_a1 = I_gA+I_f #Armature current for dynamo A(A)\n",
+ "I_L1 = I_gA #Current delivered by dynamo A to the bus(A)\n",
+ "#2\n",
+ "I_gB = (E_g2-V_L)/R_a #Current in the generating dynamo B(A)\n",
+ "I_a2 = I_gB+I_f #Armature current for dynamo B(A)\n",
+ "I_L2 = I_gB #Current delivered by dynamo B to the bus(A)\n",
+ "#3\n",
+ "I_gC = (V_L-E_g3)/R_a #Current in the generating dynamo C(A)\n",
+ "I_a3 = I_gC #Armature current for dynamo C(A)\n",
+ "I_L3 = I_gC+I_f #Current received by dynamo C from the bus(A)\n",
+ "#Case(b) #1\n",
+ "P_LA = V_L*I_L1 #Power delivered to the bus by dynamo A(W)\n",
+ "P_gA = E_g1*I_a1 #Power generated by dynamo A(W)\n",
+ "#2\n",
+ "P_LB = V_L*I_L2 #Power delivered to the bus by dynamo B(W)\n",
+ "P_gB = E_g2*I_a2 #Power generated by dynamo B(W)\n",
+ "#3\n",
+ "P_LC = V_L*I_L3 #Power delivered by the bus to dynamo C(W)\n",
+ "P_gC = E_g3*I_a3 #Power generated by dynamo C(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a) 1: Line current delivered by dynamo A to the bus , I_LA = %.f A' %I_L1)\n",
+ "print(' Armature current , I_a = %.f A' %I_a1)\n",
+ "print(' 2: Line current delivered by dynamo B to the bus , I_LB = %.f A. Thus dynamo B is floating' %I_L2)\n",
+ "print(' Armature current , I_a = %.f A' %I_a2)\n",
+ "print(' 3: Line current received by dynamo C from the bus , I_LC = %.f A' %I_L3)\n",
+ "print(' Armature current , I_a = %.f A' %I_a3)\n",
+ "print('\\nCase(b) 1: Power delivered to the bus by dynamo A , P_LA = %.f W' %P_LA)\n",
+ "print(' Power generated by dynamo A , P_gA = %.f W' %P_gA)\n",
+ "print(' 2: Dynamo B neither receives or delivers power , P_LB = %.f W' %P_LB)\n",
+ "print(' Power generated by dynamo B to excite its field , P_gB = %.f W' %P_gB)\n",
+ "print(' 3: Power delivered by the bus to dynamo C , P_LC = %.f W' %P_LC)\n",
+ "print(' Internal power delivered in the direction of rotation of its prime mover , P_gC = %.f W' %P_gC)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a) 1: Line current delivered by dynamo A to the bus , I_LA = 50 A\n",
+ " Armature current , I_a = 51 A\n",
+ " 2: Line current delivered by dynamo B to the bus , I_LB = 0 A. Thus dynamo B is floating\n",
+ " Armature current , I_a = 1 A\n",
+ " 3: Line current received by dynamo C from the bus , I_LC = 61 A\n",
+ " Armature current , I_a = 60 A\n",
+ "\n",
+ "Case(b) 1: Power delivered to the bus by dynamo A , P_LA = 6000 W\n",
+ " Power generated by dynamo A , P_gA = 6375 W\n",
+ " 2: Dynamo B neither receives or delivers power , P_LB = 0 W\n",
+ " Power generated by dynamo B to excite its field , P_gB = 120 W\n",
+ " 3: Power delivered by the bus to dynamo C , P_LC = 7320 W\n",
+ " Internal power delivered in the direction of rotation of its prime mover , P_gC = 6840 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page number 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R_a = 0.1 #Armature resistance(ohm)\n",
+ "R_f = 100.0 #Field circuit resistance(ohm)\n",
+ "V_L_b = 120.0 #Bus voltage(V)\n",
+ "V_L_a = 140.0 #Generated voltage of the generator(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_f = V_L_a #Voltage across the field(V)\n",
+ "I_f_a = V_f/R_f #Field current(A)\n",
+ "I_a_a = I_f_a #Armature current(A)\n",
+ "E_g_a = V_L_a+I_a_a*R_a #Generated EMF(V)\n",
+ "P_g_a = E_g_a*I_a_a #Generated power(W)\n",
+ "#Case(b)\n",
+ "I_a_b = (E_g_a-V_L_b)/R_a #Armature current(A)\n",
+ "I_f_b = V_L_b/R_f #Field current(A)\n",
+ "I_Lg = I_a_b-I_f_b #Generated line current(A)\n",
+ "P_L = V_L_b*I_Lg #Power generated across the lines(W)\n",
+ "E_g_b = V_L_a\n",
+ "P_g_b = E_g_b*I_a_b #Generated power(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Generated current before it is connected to the bus , I_a = %.1f A' %I_a_a)\n",
+ "print(' Generated power before it is connected to the bus , P_g = %.1f W' %P_g_a)\n",
+ "print('Case(b): Generated armature current after it is connected to the bus , I_a = %.1f A' %I_a_b)\n",
+ "print(' Generated line current after it is connected to the bus , I_Lg = %.1f A' %I_Lg)\n",
+ "print(' Generated power across the line after it is connected to the bus , P_g = %.f W' %P_L)\n",
+ "print(' Generated power after it is connected to the bus , P_g = %.f W' %P_g_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Generated current before it is connected to the bus , I_a = 1.4 A\n",
+ " Generated power before it is connected to the bus , P_g = 196.2 W\n",
+ "Case(b): Generated armature current after it is connected to the bus , I_a = 201.4 A\n",
+ " Generated line current after it is connected to the bus , I_Lg = 200.2 A\n",
+ " Generated power across the line after it is connected to the bus , P_g = 24024 W\n",
+ " Generated power after it is connected to the bus , P_g = 28196 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page number 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "R_a1 = 0.1 #Armature resistance of shunt generator 1(ohm)\n",
+ "R_a2 = 0.1 #Armature resistance of shunt generator 2(ohm)\n",
+ "R_a3 = 0.1 #Armature resistance of shunt generator 3(ohm)\n",
+ "R_L = 2.0 #Load resistance(ohm)\n",
+ "E_g1 = 127.0 #Voltage generated by shunt generator 1(V)\n",
+ "E_g2 = 120.0 #Voltage generated by shunt generator 2(V)\n",
+ "E_g3 = 119.0 #Voltage generated by shunt generator 3(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_L = ((E_g1/R_a1)+(E_g2/R_a2)+(E_g3/R_a3))/((1/R_a1)+(1/R_a2)+(1/R_a3)+(1/R_L))\n",
+ "#Case(b)\n",
+ "I_L1 = (E_g1-V_L)/R_a1 #Current delivered/received by generator 1(A)\n",
+ "I_L2 = (E_g2-V_L)/R_a2 #Current delivered/received by generator 2(A)\n",
+ "I_L3 = (E_g3-V_L)/R_a3 #Current delivered/received by generator 3(A)\n",
+ "I_L = -V_L/R_L #Current received by 2 ohm load(A)\n",
+ "#Case(c)\n",
+ "I_a1 = I_L1 #Armature current for generator 1(A)\n",
+ "I_a2 = I_L2 #Armature current for generator 2(A)\n",
+ "I_a3 = I_L3 #Armature current for generator 3(A)\n",
+ "P_g1 = E_g1*I_a1 #Power generated by generator 1(W)\n",
+ "P_g2 = E_g2*I_a2 #Power generated by generator 2(W)\n",
+ "P_g3 = E_g3*I_a3 #Power generated by generator 3(W)\n",
+ "#Case(d)\n",
+ "P_L1 = V_L*I_L1 #Power delivered/received from generator 1(W)\n",
+ "P_L2 = V_L*I_L2 #Power delivered/received from generator 2(W)\n",
+ "P_L3 = V_L*I_L3 #Power delivered/received from generator 3(W)\n",
+ "P_L = V_L*I_L #Power delivered/received from 2 ohm load(W)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Terminal bus voltage , V_L = %.f V' %V_L)\n",
+ "print('Case(b): Current delivered to the bus by generator 1 , I_L1 = %.f A (to bus)' %I_L1)\n",
+ "print(' Current delivered to the bus by generator 2 , I_L2 = %.f A' %I_L2)\n",
+ "print(' Current received by the generator 3 from the bus , I_L3 = %.f A (from bus)' %I_L3)\n",
+ "print(' Current received from the bus by load , I_L3 = %.f A (from bus)' %I_L)\n",
+ "print('Case(c): Power generated by generator 1 , P_g1 = %.f W' %P_g1)\n",
+ "print(' Power generated by generator 2 , P_g2 = %.f W (floating)' %P_g2)\n",
+ "print(' Power generated by generator 3 , P_g3 = %.f W' %P_g3)\n",
+ "print('Case(d): Power delivered to the bus from generator 1 , P_L1 = %.f W' %P_L1)\n",
+ "print(' Power delivered to the bus from generator 2 , P_L2 = %.f W' %P_L2)\n",
+ "print(' Power received from the bus by generator 3 , P_L2 = %.f W' %P_L3)\n",
+ "print(' Power received from the bus by load , P_L = %.f W' %P_L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Terminal bus voltage , V_L = 120 V\n",
+ "Case(b): Current delivered to the bus by generator 1 , I_L1 = 70 A (to bus)\n",
+ " Current delivered to the bus by generator 2 , I_L2 = 0 A\n",
+ " Current received by the generator 3 from the bus , I_L3 = -10 A (from bus)\n",
+ " Current received from the bus by load , I_L3 = -60 A (from bus)\n",
+ "Case(c): Power generated by generator 1 , P_g1 = 8890 W\n",
+ " Power generated by generator 2 , P_g2 = 0 W (floating)\n",
+ " Power generated by generator 3 , P_g3 = -1190 W\n",
+ "Case(d): Power delivered to the bus from generator 1 , P_L1 = 8400 W\n",
+ " Power delivered to the bus from generator 2 , P_L2 = 0 W\n",
+ " Power received from the bus by generator 3 , P_L2 = -1200 W\n",
+ " Power received from the bus by load , P_L = -7200 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4, Page number 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P1 = 300.0 #Power rating of generator 1(kW)\n",
+ "P2 = 600.0 #Power rating of generator 2(kW)\n",
+ "V = 220.0 #Voltage rating of generator 1 and 2(V)\n",
+ "V_o = 250.0 #No-load voltage applied to both the generators(V)\n",
+ "V_1 = 230.0 #Terminal voltage(V)\n",
+ "V_2 = 240.0 #Terminal voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "kW1_a = (V_o-V_1)/(V_o-V)*P1 #Load carried by generator 1(kW)\n",
+ "kW2_a = (V_o-V_1)/(V_o-V)*P2 #Load carried by generator 2(kW)\n",
+ "#Case(b)\n",
+ "kW1_b = (V_o-V_2)/(V_o-V)*P1 #Load carried by generator 1(kW)\n",
+ "kW2_b = (V_o-V_2)/(V_o-V)*P2 #Load carried by generator 2(kW)\n",
+ "#Case(c)\n",
+ "frac_a = (V_o-V_1)/(V_o-V) #Fraction of rated kW carried by each generator\n",
+ "frac_b = (V_o-V_2)/(V_o-V) #Fraction of rated kW carried by each generator\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): When the terminal voltage is 230 V Generator 1 carries = %.f kW' %kW1_a)\n",
+ "print(' When the terminal voltage is 230 V Generator 2 carries = %.f kW' %kW2_a)\n",
+ "print('Case(b): When the terminal voltage is 240 V Generator 1 carries = %.f kW' %kW1_b)\n",
+ "print(' When the terminal voltage is 240 V Generator 2 carries = %.f kW' %kW2_b)\n",
+ "print('Case(c): Both generators carry no-load at 250 V ; %.3f rated load at %d V ; %.3f rated load at %d V ; and rated load at %d V ;' %(frac_b,V_2,frac_a,V_1,V))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): When the terminal voltage is 230 V Generator 1 carries = 200 kW\n",
+ " When the terminal voltage is 230 V Generator 2 carries = 400 kW\n",
+ "Case(b): When the terminal voltage is 240 V Generator 1 carries = 100 kW\n",
+ " When the terminal voltage is 240 V Generator 2 carries = 200 kW\n",
+ "Case(c): Both generators carry no-load at 250 V ; 0.333 rated load at 240 V ; 0.667 rated load at 230 V ; and rated load at 220 V ;\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "E_1 = 220.0 #Terminal voltage of alternator 1(V)\n",
+ "E_2 = 222.0 #Terminal voltage of alternator 2(V)\n",
+ "f_1 = 60.0 #Frequency of alternator 1(Hz)\n",
+ "f_2 = 59.5 #Frequency of alternator 2(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "E_max = (E_1+E_2)/2 #Maximum effective voltage across each lamp(V) \n",
+ "E_min = (E_2-E_1)/2 #Minimum effective voltage across each lamp(V) \n",
+ "f = f_1-f_2 #Frequency of the voltage across the lamps(Hz)\n",
+ "E_peak = E_max/0.7071 #Peak value of the voltage across each lamp(V)\n",
+ "n = (1.0/2)*f_1 #Number of maximum light pulsations per minute\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Maximum effective voltage across each lamp , E_max/lamp = %.f V (rms)' %E_max)\n",
+ "print(' Minimum effective voltage across each lamp , E_min/lamp = %.f V' %E_min)\n",
+ "print('Case(b): Frequency of the voltage across the lamps , f = %.1f Hz' %f)\n",
+ "print('Case(c): Peak value of the voltage across each lamp , E_peak = %.f V' %E_peak)\n",
+ "print('Case(d): Number of maximum light pulsations per minute , n = %.f pulsations/min' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Maximum effective voltage across each lamp , E_max/lamp = 221 V (rms)\n",
+ " Minimum effective voltage across each lamp , E_min/lamp = 1 V\n",
+ "Case(b): Frequency of the voltage across the lamps , f = 0.5 Hz\n",
+ "Case(c): Peak value of the voltage across each lamp , E_peak = 313 V\n",
+ "Case(d): Number of maximum light pulsations per minute , n = 30 pulsations/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6, Page number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "E_1 = 220.0 #Voltage generated by alternator 1(V)\n",
+ "E_2 = 220.0 #Voltage generated by alternator 2(V)\n",
+ "f_1 = 60.0 #Frequency of alternator 1(Hz)\n",
+ "f_2 = 58.0 #Frequency of alternator 2(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "E_max = (E_1+E_2)/2 #Maximum effective voltage across each lamp(V)\n",
+ "f = f_1-f_2 #Frequency of the voltage across the lamp(Hz)\n",
+ "E_min = (E_2-E_1)/2 #Minimum effective voltage across each lamp(V) \n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Maximum effective voltage across each lamp , E_max/lamp = %.f V' %E_max)\n",
+ "print(' Frequency of the voltage across each lamp , f = %.f Hz' %f)\n",
+ "print('Case(b): The voltages are equal and opposite in the local circuit')\n",
+ "print('Case(c): Minimum effective voltage across each lamp , E_min/lamp = %.f V' %E_min)\n",
+ "print(' Frequency of the voltage across each lamp , f = 0 Hz')\n",
+ "print('Case(d): The voltages are in phase in the local circuit')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Maximum effective voltage across each lamp , E_max/lamp = 220 V\n",
+ " Frequency of the voltage across each lamp , f = 2 Hz\n",
+ "Case(b): The voltages are equal and opposite in the local circuit\n",
+ "Case(c): Minimum effective voltage across each lamp , E_min/lamp = 0 V\n",
+ " Frequency of the voltage across each lamp , f = 0 Hz\n",
+ "Case(d): The voltages are in phase in the local circuit\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7, Page number 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "E_1 = 220.0 #Terminal voltage of alternator 1(V) From Ex. 7-5\n",
+ "E_2 = 222.0 #Terminal voltage of alternator 2(V)\n",
+ "f_1 = 60.0 #Frequency of alternator 1(Hz)\n",
+ "f_2 = 59.5 #Frequency of alternator 2(Hz)\n",
+ "E1 = 220.0 #Voltage generated by alternator 1(V) From Ex. 7-6\n",
+ "E2 = 220.0 #Voltage generated by alternator 2(V)\n",
+ "f1 = 60.0 #Frequency of alternator 1(Hz)\n",
+ "f2 = 58.0 #Frequency of alternator 2(Hz)\n",
+ "R_a1 = 0.1 #Armature resistance of alternator 1(ohm)\n",
+ "R_a2 = 0.1 #Armature resistance of alternator 2(ohm)\n",
+ "X_a1 = 0.9 #Armature reactance of alternator 1(ohm)\n",
+ "X_a2 = 0.9 #Armature reactance of alternator 2(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "Z_1 = complex(R_a1,X_a1) #Effective impedance of alternator 1(ohm)\n",
+ "Z_2 = complex(R_a2,X_a2) #Effective impedance of alternator 2(ohm)\n",
+ "#In Ex.7-5\n",
+ "E_r = E_2-E_1 #Effective voltage generated(V) \n",
+ "I_s = E_r/(Z_1+Z_2) #Synchronizing current in the armature(A)\n",
+ "#In Ex.7-6\n",
+ "Er = E2 -E1 #Effective voltage generated(V)\n",
+ "Is = Er/(Z_1+Z_2) #Synchronizing current in the armature(A)\n",
+ "\n",
+ "#Result\n",
+ "print('In Ex.7-5 the synchronizing current in the armatures of both alternators , I_s = %.3f\u2220%.2f\u00b0 A' %(abs(I_s),cmath.phase(I_s)*180/math.pi))\n",
+ "print('In Ex.7-6 the synchronizing current in the armatures of both alternators , I_s = %.f\u2220%.f\u00b0 A' %(abs(Is),cmath.phase(Is)*180/math.pi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In Ex.7-5 the synchronizing current in the armatures of both alternators , I_s = 1.104\u2220-83.66\u00b0 A\n",
+ "In Ex.7-6 the synchronizing current in the armatures of both alternators , I_s = 0\u22200\u00b0 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8, Page number 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "E_gp1 = 200.0 #Terminal voltage of alternator 1(V)\n",
+ "E_gp2 = 220.0 #Terminal voltage of alternator 2(V)\n",
+ "R_a1 = 0.2 #Armature resistance of alternator 1(ohm)\n",
+ "R_a2 = 0.2 #Armature resistance of alternator 2(ohm)\n",
+ "X_a1 = 2.0 #Armature reactance of alternator 1(ohm)\n",
+ "X_a2 = 2.0 #Armature reactance of alternator 1(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Z_p1 = complex(R_a1,X_a1) #Effective impedance of alternator 1(ohm)\n",
+ "Z_p2 = complex(R_a2,X_a2) #Effective impedance of alternator 2(ohm)\n",
+ "E_r = (E_gp2-E_gp1) #Effective voltage generated(V)\n",
+ "I_s = E_r/(Z_p1+Z_p2) #Synchronizing current in the armature(A)\n",
+ "Is = abs(I_s) #Magnitude of Synchronizing current(A)\n",
+ "theta = cmath.phase(I_s)*180/math.pi #Angle of Synchronizing current(degree)\n",
+ "P_2 = E_gp2*Is*math.cos(theta*math.pi/180) #Generator action developed by alternator 2(W)\n",
+ "#Case(b)\n",
+ "P_1 = -E_gp1*Is*math.cos(theta*math.pi/180) #Synchronizing power received by alternator 1(W) \n",
+ "#Case(c)\n",
+ "P1 = abs(P_1) #Magnitude of P1(W)\n",
+ "losses = P_2-P1 #Power loss in both armatures(W)\n",
+ "check = E_r*Is*math.cos(theta*math.pi/180) #Verifying losses(W) by Eq.7-7\n",
+ "double_check = Is**2*(R_a1+R_a2) #Verifying losses(W) by Eq.7-7\n",
+ "#Case(d)\n",
+ "V_p2 = E_gp2-Is*abs(Z_p2) #Generator action(V)\n",
+ "V_p1 = E_gp1+Is*abs(Z_p1) #Motor action(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Generator action developed by alternator 2 , P_2 = %.1f W' %P_2)\n",
+ "print('Case(b): Synchronizing power received by alternator 1 , P_1 = %.1f W' %P_1)\n",
+ "print('Case(c): Power loss in both armature , Losses = %.f W' %losses)\n",
+ "print('Case(d): Terminal voltage of alternator 2 , V_p2 = %.f V (generator action)' %V_p2)\n",
+ "print(' Terminal voltage of alternator 1 , V_p2 = %.f V (motor action)' %V_p1)\n",
+ "print('Case(e): Phasor diagram is shown in Fig 7-14 in textbook page no 195')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Generator action developed by alternator 2 , P_2 = 108.9 W\n",
+ "Case(b): Synchronizing power received by alternator 1 , P_1 = -99.0 W\n",
+ "Case(c): Power loss in both armature , Losses = 10 W\n",
+ "Case(d): Terminal voltage of alternator 2 , V_p2 = 210 V (generator action)\n",
+ " Terminal voltage of alternator 1 , V_p2 = 210 V (motor action)\n",
+ "Case(e): Phasor diagram is shown in Fig 7-14 in textbook page no 195\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9, Page number 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "E_2 = 230.0*cmath.exp(1j*180.0*math.pi/180) #Voltage generated by alternator 2(V)\n",
+ "E_1 = 230.0*cmath.exp(1j*20.0*math.pi/180) #Voltage generated by alternator 1(V)\n",
+ "Z = 2.01*cmath.exp(1j*84.3*math.pi/180) #Impedance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "E_r = E_2+E_1 #Total voltage generated by Alternator 1 and 2(V)\n",
+ "Z_1 = Z\n",
+ "Z_2 = Z\n",
+ "#Case(a)\n",
+ "I_s = E_r/(Z_1+Z_2) #Synchronizing current(A)\n",
+ "Is = abs(I_s) #Magnitude of Synchronizing current(A)\n",
+ "I_s_a = cmath.phase(I_s)*180/math.pi #Phase angle of Synchronizing current(degrees)\n",
+ "#Case(b)\n",
+ "E_gp1 = abs(E_1)\n",
+ "E_gp1_Is = (cmath.phase(E_1)*180/math.pi)-I_s_a #Angle(degree)\n",
+ "P_1 = E_gp1*Is*math.cos(E_gp1_Is*math.pi/180) #Synchronizing power developed by alternator 1(W)\n",
+ "#Case(c)\n",
+ "E_gp2 = abs(E_2)\n",
+ "E_gp2_Is = (cmath.phase(E_2)*180/math.pi)-I_s_a #Angle(degree)\n",
+ "P_2 = E_gp2*Is*math.cos(E_gp2_Is*math.pi/180) #Synchronizing power developed by alternator 2(W)\n",
+ "#Case(d)\n",
+ "P2 = abs(P_2);\n",
+ "losses = P_1-P2 #Losses in the armature(W)\n",
+ "theta = cmath.phase(Z)*180/math.pi #Angle(degree)\n",
+ "check = abs(E_r)*Is*math.cos(theta*math.pi/180) #Verifying losses(W) by Eq.7-7\n",
+ "R_aT = 2*Z.real #Total armature resistance of alternator 1 and 2(ohm)\n",
+ "double_check = Is**2*R_aT #Verifying losses(W) by Eq.7-7\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Synchronizing current , I_s = %.2f\u2220%.1f\u00b0 A' %(Is,I_s_a))\n",
+ "print('Case(b): Synchronizing power developed by alternator 1 , P_1 = %.f W (power delivered to bus)' %P_1)\n",
+ "print('Case(c): Synchronizing power developed by alternator 2 , P_2 = %.f W (power received from bus)' %P_2)\n",
+ "print('Case(d): Losses in the armature , Losses = %.f W' %losses)\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Synchronizing current , I_s = 19.87\u222015.7\u00b0 A\n",
+ "Case(b): Synchronizing power developed by alternator 1 , P_1 = 4557 W (power delivered to bus)\n",
+ "Case(c): Synchronizing power developed by alternator 2 , P_2 = -4400 W (power received from bus)\n",
+ "Case(d): Losses in the armature , Losses = 158 W\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10, Page number 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "E_2 = 230.0*cmath.exp(1j*180.0*math.pi/180) #Voltage generated by alternator 2(V)\n",
+ "E_1 = 230.0*cmath.exp(1j*20.0*math.pi/180) #Voltage generated by alternator 1(V)\n",
+ "Z = 6.0*cmath.exp(1j*50.0*math.pi/180) #Impedance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "E_r = E_2+E_1 #Total voltage generated by Alternator 1 and 2(V)\n",
+ "Z_1 = Z\n",
+ "Z_2 = Z\n",
+ "#Case(a)\n",
+ "I_s = E_r/(Z_1+Z_2) #Synchronizing current(A)\n",
+ "Is = abs(I_s) #Magnitude of Synchronizing current(A)\n",
+ "I_s_a = cmath.phase(I_s)*180/math.pi #Phase angle of Synchronizing current(degrees)\n",
+ "#Case(b)\n",
+ "E_gp1 = abs(E_1)\n",
+ "E_gp1_Is = (cmath.phase(E_1)*180/math.pi)-I_s_a #Angle(degree)\n",
+ "P_1 = E_gp1*Is*math.cos(E_gp1_Is*math.pi/180) #Synchronizing power developed by alternator 1(W)\n",
+ "#Case(c)\n",
+ "E_gp2 = abs(E_2)\n",
+ "E_gp2_Is = (cmath.phase(E_2)*180/math.pi)-I_s_a #Angle(degree)\n",
+ "P_2 = E_gp2*Is*math.cos(E_gp2_Is*math.pi/180) #Synchronizing power developed by alternator 2(W)\n",
+ "#Case(d)\n",
+ "P2 = abs(P_2);\n",
+ "losses = P_1-P2 #Losses in the armature(W)\n",
+ "theta = cmath.phase(Z)*180/math.pi #Angle(degree)\n",
+ "check = abs(E_r)*Is*math.cos(theta*math.pi/180) #Verifying losses(W) by Eq.7-7\n",
+ "R_aT = 2*Z.real #Total armature resistance of alternator 1 and 2(ohm)\n",
+ "double_check = Is**2*R_aT #Verifying losses(W) by Eq.7-7\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Synchronizing current , I_s = %.2f\u2220%.1f\u00b0 A' %(Is,I_s_a))\n",
+ "print('Case(b): Synchronizing power developed by alternator 1 , P_1 = %.f W (power delivered to bus)' %P_1)\n",
+ "print('Case(c): Synchronizing power developed by alternator 2 , P_2 = %.f W (power received from bus)' %P_2)\n",
+ "print('Case(d): Losses in the armature , Losses = %.f W' %losses)\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Synchronizing current , I_s = 6.66\u222050.0\u00b0 A\n",
+ "Case(b): Synchronizing power developed by alternator 1 , P_1 = 1326 W (power delivered to bus)\n",
+ "Case(c): Synchronizing power developed by alternator 2 , P_2 = -984 W (power received from bus)\n",
+ "Case(d): Losses in the armature , Losses = 342 W\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11, Page number 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "import numpy\n",
+ "\n",
+ "#Variable declaration\n",
+ "V_AB = 100.0*cmath.exp(1j*0.0*math.pi/180) #Voltage supplied across A & B(V)\n",
+ "V_BC = 100.0*cmath.exp(1j*-120.0*math.pi/180) #Voltage supplied across B & C(V)\n",
+ "V_CA = 100.0*cmath.exp(1j*120.0*math.pi/180) #Voltage supplied across C & A(V)\n",
+ "I1_1 = complex(6,0)\n",
+ "I1_2 = complex(-3,0)\n",
+ "I2_1 = complex(-3,0)\n",
+ "I2_2 = complex(3,-4)\n",
+ "V_1 = complex(100,0)\n",
+ "V_2 = complex(-50,-86.6)\n",
+ "\n",
+ "#Calculation\n",
+ "A = [[I1_1,I2_1],[I1_2,I2_2]] #Matrix containing mesh equations array\n",
+ "delta = numpy.linalg.det(A) #Determinant of A\n",
+ "#Case(a)\n",
+ "I_1 = numpy.linalg.det([[V_1,I2_1],[V_2,I2_2]])/delta #Mesh current I_1(A) \n",
+ "I_2 = numpy.linalg.det([[I1_1,V_1],[I1_2,V_2]])/delta #Mesh current I_2(A) \n",
+ "#Case(b)\n",
+ "I_A = I_1 #Line current(A)\n",
+ "I_B = I_2-I_1 #Line current(A)\n",
+ "I_C = -I_2 #Line current(A)\n",
+ "#Case(c)\n",
+ "Z_A = complex(3,0) #Impedance(ohm)\n",
+ "Z_B = complex(3,0) #Impedance(ohm)\n",
+ "Z_C = complex(0,-4) #Impedance(ohm)\n",
+ "V_AO = I_A*Z_A #Phase voltage(V)\n",
+ "V_BO = I_B*Z_B #Phase voltage(V)\n",
+ "V_CO = I_C*Z_C #Phase voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Mesh current , I_1 = (%.3f%.4fj) A = %.1f\u2220%.2f\u00b0 A' %(I_1.real,I_1.imag,abs(I_1),cmath.phase(I_1)*180/math.pi))\n",
+ "print(' Mesh current , I_2 = (%.2f%.3fj) A = %.2f\u2220%.2f\u00b0 A' %(I_2.real,I_2.imag,abs(I_2),cmath.phase(I_2)*180/math.pi))\n",
+ "print('Case(a): Line current , I_A = (%.2f%.3fj) A = %.1f\u2220%.2f\u00b0 A' %(I_A.real,I_A.imag,abs(I_A),cmath.phase(I_A)*180/math.pi))\n",
+ "print(' Line current , I_B = (%.3f%.3fj) A = %.3f\u2220%.2f\u00b0 A' %(I_B.real,I_B.imag,abs(I_B),cmath.phase(I_B)*180/math.pi))\n",
+ "print(' Line current , I_C = (%.2f+%.3fj) A = %.2f\u2220%.2f\u00b0 A' %(I_C.real,I_C.imag,abs(I_C),cmath.phase(I_C)*180/math.pi))\n",
+ "print('Case(c): Phase voltage , V_AO = %.1f\u2220%.2f\u00b0 V' %(abs(V_AO),cmath.phase(V_AO)*180/math.pi))\n",
+ "print(' Phase voltage , V_BO = %.2f\u2220%.1f\u00b0 V' %(abs(V_BO),cmath.phase(V_BO)*180/math.pi))\n",
+ "print(' Phase voltage , V_CO = %.2f\u2220%.2f\u00b0 V' %(abs(V_CO),cmath.phase(V_CO)*180/math.pi))\n",
+ "print('Case(d): The phasor diagram is shown in fig 7-23b in textbook page no.208')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Mesh current , I_1 = (26.157-3.5589j) A = 26.4\u2220-7.75\u00b0 A\n",
+ " Mesh current , I_2 = (18.98-7.118j) A = 20.27\u2220-20.56\u00b0 A\n",
+ "Case(a): Line current , I_A = (26.16-3.559j) A = 26.4\u2220-7.75\u00b0 A\n",
+ " Line current , I_B = (-7.176-3.559j) A = 8.010\u2220-153.62\u00b0 A\n",
+ " Line current , I_C = (-18.98+7.118j) A = 20.27\u2220159.44\u00b0 A\n",
+ "Case(c): Phase voltage , V_AO = 79.2\u2220-7.75\u00b0 V\n",
+ " Phase voltage , V_BO = 24.03\u2220-153.6\u00b0 V\n",
+ " Phase voltage , V_CO = 81.09\u222069.44\u00b0 V\n",
+ "Case(d): The phasor diagram is shown in fig 7-23b in textbook page no.208\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_8.ipynb b/Electric_Machinery_and_Transformers/CHAP_8.ipynb
new file mode 100755
index 00000000..0d9acf34
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_8.ipynb
@@ -0,0 +1,1279 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 8: AC DYNAMO TORQUE RELATIONS-SYNCHRONOUS MOTORS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page number 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 20.0 #Number of poles\n",
+ "hp = 40.0 #Power rating of the synchronous motor(hp)\n",
+ "V_L = 660.0 #Line voltage(V)\n",
+ "beta = 0.5 #At no-load, the rotor is retarded 0.5 mechanical degree from its synchronous position\n",
+ "X_s = 10.0 #Synchronous reactance(ohm)\n",
+ "R_a = 1.0 #Effective armature resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "alpha = P*(beta/2) #Rotor shift from the synchronous position in electrical degrees\n",
+ "#Case(b)\n",
+ "V_p = V_L/3**0.5 #Phase voltage(V)\n",
+ "E_gp = V_p #Generated voltage/phase at no-load(V)\n",
+ "E_r = complex((V_p-E_gp*math.cos(alpha*math.pi/180)),(E_gp*math.sin(alpha*math.pi/180))) #Resultant emf across the armature per phase(V/phase)\n",
+ "#Case(c)\n",
+ "Z_s = complex(R_a,X_s) #Synchronous impedance(ohm/phase)\n",
+ "I_a = E_r/Z_s #Armature current/phase(A/phase)\n",
+ "#Case(d)\n",
+ "Ia = abs(I_a) #Magnitude of armature current/phase(A/phase)\n",
+ "theta = cmath.phase(I_a)*180/math.pi #Phase angle of armature current(degree)\n",
+ "P_p = V_p*Ia*math.cos(theta*math.pi/180) #Power per phase drawn by the motor from the bus(W/phase)\n",
+ "P_t = 3*P_p #Total power drawn by the motor from the bus(W)\n",
+ "#Case(e)\n",
+ "P_a = 3*Ia**2*R_a #Armature power loss at no-load(W)\n",
+ "P_d = (P_t-P_a)/746.0 #Internal developed horsepower at no-load\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotor shift from the synchronous position in electrical degrees , \u03b1 = %.f\u00b0 ' %alpha)\n",
+ "print('Case(b): Resultant EMF across the armature per phase , E_r = %.1f\u2220%.1f\u00b0 V/phase' %(abs(E_r),cmath.phase(E_r)*180/math.pi))\n",
+ "print('Case(c): Armature current per phase , I_a = %.2f\u2220%.1f\u00b0 A/phase' %(Ia,theta))\n",
+ "print('Case(d): Power per phase drawn by the motor from the bus , P_p = %.f W/phase' %P_p)\n",
+ "print(' Total power drawn by the motor from the bus , P_t = %.f W' %P_t)\n",
+ "print('Case(e): Armature power loss = %.f W' %P_a)\n",
+ "print(' Internal developed horsepower at no-load , P_d = %.f hp' %P_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotor shift from the synchronous position in electrical degrees , \u03b1 = 5\u00b0 \n",
+ "Case(b): Resultant EMF across the armature per phase , E_r = 33.2\u222087.5\u00b0 V/phase\n",
+ "Case(c): Armature current per phase , I_a = 3.31\u22203.2\u00b0 A/phase\n",
+ "Case(d): Power per phase drawn by the motor from the bus , P_p = 1258 W/phase\n",
+ " Total power drawn by the motor from the bus , P_t = 3775 W\n",
+ "Case(e): Armature power loss = 33 W\n",
+ " Internal developed horsepower at no-load , P_d = 5 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page number 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 20.0 #Number of poles\n",
+ "hp = 40.0 #Power rating of the synchronous motor(hp)\n",
+ "V_L = 660.0 #Line voltage(V)\n",
+ "beta = 5.0 #At no-load, the rotor is retarded 0.5 mechanical degree from its synchronous position\n",
+ "X_s = 10.0 #Synchronous reactance(ohm)\n",
+ "R_a = 1.0 #Effective armature resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "alpha = P*(beta/2) #Rotor shift from the synchronous position in electrical degrees\n",
+ "#Case(b)\n",
+ "V_p = V_L/3**0.5 #Phase voltage(V)\n",
+ "E_gp = V_p #Generated voltage/phase at no-load(V)\n",
+ "E_r = complex((V_p-E_gp*math.cos(alpha*math.pi/180)),(E_gp*math.sin(alpha*math.pi/180))) #Resultant emf across the armature per phase(V/phase)\n",
+ "#Case(c)\n",
+ "Z_s = complex(R_a,X_s) #Synchronous impedance(ohm/phase)\n",
+ "I_a = E_r/Z_s #Armature current/phase(A/phase)\n",
+ "#Case(d)\n",
+ "Ia = abs(I_a) #Magnitude of armature current/phase(A/phase)\n",
+ "theta = cmath.phase(I_a)*180/math.pi #Phase angle of armature current(degree)\n",
+ "P_p = V_p*Ia*math.cos(theta*math.pi/180) #Power per phase drawn by the motor from the bus(W/phase)\n",
+ "P_t = 3*P_p #Total power drawn by the motor from the bus(W)\n",
+ "#Case(e)\n",
+ "P_a = 3*Ia**2*R_a #Armature power loss at no-load(W)\n",
+ "P_d = (P_t-P_a)/746.0 #Internal developed horsepower at no-load\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotor shift from the synchronous position in electrical degrees , \u03b1 = %.f\u00b0 ' %alpha)\n",
+ "print('Case(b): Resultant EMF across the armature per phase , E_r = %.f\u2220%.f\u00b0 V/phase' %(abs(E_r),cmath.phase(E_r)*180/math.pi))\n",
+ "print('Case(c): Armature current per phase , I_a = %.1f\u2220%.1f\u00b0 A/phase' %(Ia,theta))\n",
+ "print('Case(d): Power per phase drawn by the motor from the bus , P_p = %.f W/phase' %P_p)\n",
+ "print(' Total power drawn by the motor from the bus , P_t = %.f W' %P_t)\n",
+ "print('Case(e): Armature power loss = %.f W' %P_a)\n",
+ "print(' Internal developed horsepower at no-load , P_d = %.1f hp' %P_d)\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotor shift from the synchronous position in electrical degrees , \u03b1 = 50\u00b0 \n",
+ "Case(b): Resultant EMF across the armature per phase , E_r = 322\u222065\u00b0 V/phase\n",
+ "Case(c): Armature current per phase , I_a = 32.0\u2220-19.3\u00b0 A/phase\n",
+ "Case(d): Power per phase drawn by the motor from the bus , P_p = 11526 W/phase\n",
+ " Total power drawn by the motor from the bus , P_t = 34579 W\n",
+ "Case(e): Armature power loss = 3081 W\n",
+ " Internal developed horsepower at no-load , P_d = 42.2 hp\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page number 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 6.0 #Number of poles\n",
+ "hp = 50.0 #Power rating of the synchronous motor(hp)\n",
+ "V_L = 440.0 #Line voltage(V)\n",
+ "alpha = 20.0 #At no-load, the rotor is retarded 0.5 mechanical degree from its synchronous position\n",
+ "X_s = 2.4 #Synchronous reactance(ohm)\n",
+ "R_a = 0.1 #Effective armature resistance(ohm)\n",
+ "E_gp_a = 240.0 #Generated phase voltage(V)\n",
+ "E_gp_b = 265.0 #Generated phase voltage(V)\n",
+ "E_gp_c = 290.0 #Generated phase voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_p = V_L /3**0.5 #Phase voltage(V)\n",
+ "E_ra = complex((V_p-E_gp_a*math.cos(alpha*math.pi/180)),(E_gp_a*math.sin(alpha*math.pi/180))) #Resultant emf\n",
+ "Z_s = complex(R_a,X_s) #Synchronous impedance(ohm)\n",
+ "I_ap1 = E_ra/Z_s #Armature current(A)\n",
+ "theta_1 = cmath.phase(I_ap1)*180/math.pi #Angle(degree)\n",
+ "pf_1 = math.cos(theta_1*math.pi/180) #Power factor\n",
+ "I_a1 = abs(I_ap1) #Magnitude of armature current(A)\n",
+ "P_d1 = 3*E_gp_a*I_a1*math.cos((160-theta_1)*math.pi/180) #Power drawn from the bus(W)\n",
+ "Horse_power1 = abs(P_d1)/746.0 #Horsepower developed by the armature(hp) \n",
+ "#Case(b)\n",
+ "E_rb = complex((V_p-E_gp_b*math.cos(alpha*math.pi/180)),(E_gp_b*math.sin(alpha*math.pi/180))) #Resultant emf\n",
+ "Z_s = complex(R_a,X_s) #Synchronous impedance(ohm)\n",
+ "I_ap2 = E_rb/Z_s #Armature current(A)\n",
+ "theta_2 = cmath.phase(I_ap2)*180/math.pi #Angle(degree)\n",
+ "pf_2 = math.cos(theta_2*math.pi/180) #Power factor\n",
+ "I_a2 = abs(I_ap2) #Magnitude of armature current(A)\n",
+ "P_d2 = 3*E_gp_b*I_a2*math.cos((160-theta_2)*math.pi/180) #Power drawn from the bus(W)\n",
+ "Horse_power2 = abs(P_d2)/746.0 #Horsepower developed by the armature(hp) \n",
+ "#Case(c)\n",
+ "E_rc = complex((V_p-E_gp_c*math.cos(alpha*math.pi/180)),(E_gp_c*math.sin(alpha*math.pi/180))) #Resultant emf\n",
+ "Z_s = complex(R_a,X_s) #Synchronous impedance(ohm)\n",
+ "I_ap3 = E_rc/Z_s #Armature current(A)\n",
+ "theta_3 = cmath.phase(I_ap3)*180/math.pi #Angle(degree)\n",
+ "pf_3 = math.cos(theta_3*math.pi/180) #Power factor\n",
+ "I_a3 = abs(I_ap3) #Magnitude of armature current(A)\n",
+ "P_d3 = 3*E_gp_c*I_a3*math.cos((160-theta_3)*math.pi/180) #Power drawn from the bus(W)\n",
+ "Horse_power3 = abs(P_d3)/746.0 #Horsepower developed by the armature(hp)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Armature current , I_ap = %.2f\u2220%.2f\u00b0 A' %(I_a1,theta_1))\n",
+ "print(' Power factor = %.4f lagging' %pf_1)\n",
+ "print(' Horsepower developed by the armature , Horsepower = %.1f hp' %Horse_power1)\n",
+ "print('Case(b): Armature current , I_ap = %.2f\u2220%.2f\u00b0 A' %(I_a2,theta_2))\n",
+ "print(' Power factor = %.f (Unity PF)' %pf_2)\n",
+ "print(' Horsepower developed by the armature , Horsepower = %.1f hp' %Horse_power2)\n",
+ "print('Case(c): Armature current , I_ap = %.f\u2220%.2f\u00b0 A' %(I_a3,theta_3))\n",
+ "print(' Power factor = %.4f leading' %pf_3)\n",
+ "print(' Horsepower developed by the armature , Horsepower = %.1f hp' %Horse_power3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Armature current , I_ap = 36.17\u2220-16.77\u00b0 A\n",
+ " Power factor = 0.9575 lagging\n",
+ " Horsepower developed by the armature , Horsepower = 34.9 hp\n",
+ "Case(b): Armature current , I_ap = 37.79\u2220-0.78\u00b0 A\n",
+ " Power factor = 1 (Unity PF)\n",
+ " Horsepower developed by the armature , Horsepower = 38.0 hp\n",
+ "Case(c): Armature current , I_ap = 42\u222012.94\u00b0 A\n",
+ " Power factor = 0.9746 leading\n",
+ " Horsepower developed by the armature , Horsepower = 41.1 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page number 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 2.0 #Number of poles\n",
+ "hp = 1000.0 #Power rating of the synchronous motor(hp)\n",
+ "V_L = 6000.0 #Line voltage(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "R_a = 0.52 #Effective armature resistance(ohm)\n",
+ "X_s = 4.2 #Synchronous reactance(ohm)\n",
+ "P_t = 811.0 #Input power(kW)\n",
+ "PF = 0.8 #Power factor leading\n",
+ "\n",
+ "#Calculation\n",
+ "V_p = V_L/3**0.5 #Phase voltage(V)\n",
+ "I_L = P_t*1000/(3**0.5*V_L*PF) #Line current(A)\n",
+ "I_ap = I_L #Phase armature current(A)\n",
+ "Z_p = complex(R_a,X_s) #Impedance per phase(ohm)\n",
+ "Zp = abs(Z_p) #Magnitude of impedance per phase(ohm)\n",
+ "beta = cmath.phase(Z_p)*180/math.pi #Phase angle of impedance per phase(degree)\n",
+ "E_r = I_ap*Zp #EMF(V)\n",
+ "theta = math.acos(PF)*180/math.pi#Power factor angle(degree)\n",
+ "delta = beta+theta #Difference angle(degree)\n",
+ "E_gp_f = (E_r**2+V_p**2-2*E_r*V_p*math.cos(delta*math.pi/180))**0.5 #Generated phase voltage(V)\n",
+ "E_gp_g = complex((V_p+E_r*math.cos((180-delta)*math.pi/180)),(E_r*math.sin((180-delta)*math.pi/180))) #Generated phase voltage(V)\n",
+ "E_gp_h = complex((V_p*PF-I_ap*R_a),(V_p*math.sin(theta*math.pi/180)+I_ap*X_s)) #Generated phase voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Line current , I_L = %.2f A' %I_L)\n",
+ "print(' Phase armature current , I_ap = %.2f A' %I_ap)\n",
+ "print('Case(b): Impedance per phase , Z_p\u2220\u03b2 = %.3f\u2220%.2f\u00b0 \u03a9' %(Zp,beta))\n",
+ "print('Case(c): Magnitude I_aZ_p = E_r = %.1f V' %E_r)\n",
+ "print('Case(d): Power factor angle , \u03b8 = %.2f\u00b0 leading' %theta)\n",
+ "print('Case(e): Difference angle at 0.8 PF , \u03b4 = %.2f\u00b0 ' %delta)\n",
+ "print('Case(f): Generated phase voltage , E_gp = %.f V' %E_gp_f)\n",
+ "print('Case(g): Generated phase voltage , E_gp = %.f\u2220%.2f\u00b0 V' %(abs(E_gp_g),cmath.phase(E_gp_g)*180/math.pi))\n",
+ "print('Case(h): Generated phase voltage , E_gp = %.f\u2220%.2f\u00b0 V' %(abs(E_gp_h),cmath.phase(E_gp_h)*180/math.pi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Line current , I_L = 97.55 A\n",
+ " Phase armature current , I_ap = 97.55 A\n",
+ "Case(b): Impedance per phase , Z_p\u2220\u03b2 = 4.232\u222082.94\u00b0 \u03a9\n",
+ "Case(c): Magnitude I_aZ_p = E_r = 412.8 V\n",
+ "Case(d): Power factor angle , \u03b8 = 36.87\u00b0 leading\n",
+ "Case(e): Difference angle at 0.8 PF , \u03b4 = 119.81\u00b0 \n",
+ "Case(f): Generated phase voltage , E_gp = 3687 V\n",
+ "Case(g): Generated phase voltage , E_gp = 3687\u22205.58\u00b0 V\n",
+ "Case(h): Generated phase voltage , E_gp = 3687\u222042.45\u00b0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "E_gp = 3687.0 #Generated phase voltage(V)\n",
+ "V_L = 6000.0 #Line voltage(V)\n",
+ "E_r = 412.8 #EMF(V)\n",
+ "V_p = V_L/3**0.5 #Phase voltage(V)\n",
+ "delta = 119.82 #Difference angle(degree)\n",
+ "theta = 36.87 #Power factor angle(degree)\n",
+ "R_a = 0.52 #Effective armature resistance(ohm)\n",
+ "X_s = 4.2 #Synchronous reactance(ohm)\n",
+ "I_a = 97.55 #Armature current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "alpha_1 = math.acos((E_gp**2+V_p**2-E_r**2)/(2*E_gp*V_p))*180/math.pi #Torque angle(degree)\n",
+ "alpha_2 = math.asin(E_r*math.sin(delta*math.pi/180)/E_gp)*180/math.pi #Torque angle(degree)\n",
+ "alpha_3 = theta-math.atan((V_p*math.sin(theta*math.pi/180)+I_a*X_s)/(V_p*math.cos(theta*math.pi/180)-I_a*R_a))*180/math.pi #Torque angle(degree)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Torque angle , \u03b1 = %.2f\u00b0 '%alpha_1)\n",
+ "print('Case(b): Torque angle , \u03b1 = %.2f\u00b0 '%alpha_2)\n",
+ "print('Case(c): Torque angle , \u03b1 = %.2f\u00b0 '%alpha_3)\n",
+ "print('\\nNOTE: ERROR : Negative sign is not mentioned in angle \u03b1 part(c) in textbook answer')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Torque angle , \u03b1 = 5.57\u00b0 \n",
+ "Case(b): Torque angle , \u03b1 = 5.57\u00b0 \n",
+ "Case(c): Torque angle , \u03b1 = -5.58\u00b0 \n",
+ "\n",
+ "NOTE: ERROR : Negative sign is not mentioned in angle \u03b1 part(c) in textbook answer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 2.0 #Number of poles\n",
+ "hp = 1000.0 #Power rating of the synchronous motor(hp)\n",
+ "V_L = 6000.0 #Line voltage(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P_t = 811.0 #Input power(kW)\n",
+ "PF = 0.8 #Power factor leading\n",
+ "E_gp = 3687.0 #Generated phase voltage(V)\n",
+ "I_a = 97.55 #Armature current(A)\n",
+ "E_gpI_a = 42.45 #Angle between Generated phase voltage and armature current(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "P_p = E_gp*I_a*math.cos(E_gpI_a*math.pi/180)/1000 #Mechanical power developed per phase(kW)\n",
+ "P_t_a = 3*P_p #Total mechanical power developed(kW)\n",
+ "P_t_b = P_t_a/0.746 #Internal power developed at rated load(hp)\n",
+ "S = 120*f/P #Speed of the motor(rpm)\n",
+ "T_int = P_t_b*5252/S #Internal torque developed(lb-ft)\n",
+ "T_ext = hp*5252/3600 #External torque developed(lb-ft)\n",
+ "n = T_ext/T_int*100 #Motor efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Mechanical power developed in the armature per phase , P_p = %.3f kW' %P_p)\n",
+ "print(' Total Mechanical power developed in the armature , P_t = %.1f kW' %P_t_a)\n",
+ "print('Case(b): Internal power developed at rated load , P_t = %.1f hp' %P_t_b)\n",
+ "print('Case(c): Internal torque developed , T_int = %.f lb-ft' %T_int)\n",
+ "print('Case(d): Motor efficiency , \u03b7 = %.1f percent' %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Mechanical power developed in the armature per phase , P_p = 265.386 kW\n",
+ " Total Mechanical power developed in the armature , P_t = 796.2 kW\n",
+ "Case(b): Internal power developed at rated load , P_t = 1067.2 hp\n",
+ "Case(c): Internal torque developed , T_int = 1557 lb-ft\n",
+ "Case(d): Motor efficiency , \u03b7 = 93.7 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P_o = 2000.0 #Total power consumed by a factory from the transformer(kW)\n",
+ "pf_tr = 0.6 #Lagging power factor at which power is consumed from the transformer\n",
+ "V_L = 6000.0 #Primary line voltage of a transformer(V)\n",
+ "P = 750.0 #Power expected to be delivered by the dc motor-generator(kW)\n",
+ "hp = 1000.0 #Rating of the motor(hp)\n",
+ "V_L_m = 6000.0 #Line voltage of a synchronous motor(V)\n",
+ "pf_sm = 0.8 #Leading power factor of the synchronous motor\n",
+ "pf_im = 0.8 #Lagging power factor of the induction motor\n",
+ "n = 0.92 #Efficiency of each motor\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "P_m_a = hp*746/n #Induction/synchronous motor load(kW)\n",
+ "I_1_a = P_m_a/(3**0.5*V_L*pf_im)*cmath.exp(1j*-math.acos(pf_im)) #Lagging current drawn by induction motor(A)\n",
+ "I_1_prime = P_o*1000/(3**0.5*V_L*pf_tr)*cmath.exp(1j*-math.acos(pf_tr)) #Original lagging factory load current(A)\n",
+ "I_TM = I_1_a+I_1_prime #Total load current(A)\n",
+ "angle_I_TM = cmath.phase(I_TM)*180/math.pi #Angle of total load current(degree)\n",
+ "PF_1 = math.cos(angle_I_TM*math.pi/180) #Overall sysytem PF\n",
+ "#Case(b)\n",
+ "I_s1 = P_m_a/(3**0.5*V_L*pf_sm)*cmath.exp(1j*math.acos(pf_sm)) #Leading current drawn by synchronous motor(A)\n",
+ "I_TSM = I_s1+I_1_prime #Total load current(A)\n",
+ "angle_I_TSM = cmath.phase(I_TSM)*180/math.pi #Angle of total load current(degree)\n",
+ "PF_2 = math.cos(angle_I_TSM*math.pi/180) #Overall sysytem PF\n",
+ "#Case(c)\n",
+ "percent_I_L = (abs(I_TM)-abs(I_TSM))/abs(I_TM)*100 #Percent reduction in total load current(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Total load current of the induction motor , I_TM = %.1f\u2220%.1f\u00b0 A' %(abs(I_TM),angle_I_TM))\n",
+ "print(' Power factor of the induction motor , Overall system PF = %.4f lagging' %PF_1)\n",
+ "print('Case(b): Total load current of the synchronous motor , I_TSM = %.1f\u2220%.1f\u00b0 A' %(abs(I_TSM),angle_I_TSM))\n",
+ "print(' Power factor of the synchronous motor , Overall system PF = %.1f lagging' %PF_2)\n",
+ "print('Case(c): Percent reduction in total load current = %.1f percent' %percent_I_L)\n",
+ "print('Case(d): PF improvement: Using the synchronous motor raises the total system PF from %.4f lagging to %.1f lagging' %(PF_1,PF_2))\n",
+ "print('\\nNOTE: Changes in obtained answer is due to precision and error in some data in the textbook solution')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Total load current of the induction motor , I_TM = 415.3\u2220-49.4\u00b0 A\n",
+ " Power factor of the induction motor , Overall system PF = 0.6513 lagging\n",
+ "Case(b): Total load current of the synchronous motor , I_TSM = 335.3\u2220-36.2\u00b0 A\n",
+ " Power factor of the synchronous motor , Overall system PF = 0.8 lagging\n",
+ "Case(c): Percent reduction in total load current = 19.3 percent\n",
+ "Case(d): PF improvement: Using the synchronous motor raises the total system PF from 0.6513 lagging to 0.8 lagging\n",
+ "\n",
+ "NOTE: Changes in obtained answer is due to precision and error in some data in the textbook solution\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 6.0 #Number of poles\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V_L = 440.0 #Line voltage(V)\n",
+ "alpha = 20.0 #At no-load, the rotor is retarded 0.5 mechanical degree from its synchronous position\n",
+ "X_s = 2.4 #Synchronous reactance(ohm)\n",
+ "R_a = 0.1 #Effective armature resistance(ohm)\n",
+ "E_gp = 240.0 #Generated phase voltage(V)\n",
+ "V_p = V_L/3**0.5 #Phase voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "S = 120*f/P #Speed(rpm)\n",
+ "T_p = 7.04*E_gp*V_p*math.sin(alpha*math.pi/180)/(S*X_s) #Torque developed per phase(lb-ft)\n",
+ "Horsepower = 3*T_p*S/5252 #Total horsepower developed(hp)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Torque developed per phase , T_p = %.2f lb-ft' %T_p)\n",
+ "print('Case(b): Total horsepower developed , Horsepower = %.1f hp' %Horsepower)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Torque developed per phase , T_p = 50.97 lb-ft\n",
+ "Case(b): Total horsepower developed , Horsepower = 34.9 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page number 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P_o = 2000.0 #Total power consumed by a factory(kW) \n",
+ "pf = 0.6 #Lagging power factor\n",
+ "V = 6000.0 #Line voltage(V)\n",
+ "loss = 275.0 #Synchronous capacitor losses(kW)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "S_o_conjugate = P_o/pf #Apparent complex power(kW)\n",
+ "sin_theta = (1-pf**2)**0.5 #Sin\u03b8\n",
+ "jQ_o = S_o_conjugate*sin_theta #Original kilovars of lagging load(kvar)\n",
+ "#Case(b)\n",
+ "jQ_c = -jQ_o #Kilovars of correction needed to bring the PF to unity(kvar)\n",
+ "#Case(c)\n",
+ "R = loss #Synchronous capacitor losses(kW)\n",
+ "S_c_conjugate = complex(R,jQ_c) #kVA rating of the synchronous capacitor(kVA)\n",
+ "angle_S_c_conjugate = cmath.phase(S_c_conjugate)*180/math.pi #Angle of #kVA rating of the synchronous capacitor(degree)\n",
+ "PF = math.cos(angle_S_c_conjugate*math.pi/180) #Power factor of the synchronous capacitor\n",
+ "#Case(d)\n",
+ "I_o = S_o_conjugate*1000/V #Original current drawn from the mains(A)\n",
+ "#Case(e)\n",
+ "P_f = P_o+loss #Total power(kW)\n",
+ "S_f = P_f #Total apparent power(kW)\n",
+ "I_f = S_f*1000/V #Final current drawn from the mains after correction(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Original kilovars of lagging load , jQ_o = j%.1f kvar' %jQ_o)\n",
+ "print('Case(b): Kilovars of correction needed to bring the PF to unity , -jQ_c = %.1fj kvar' %jQ_c)\n",
+ "print('Case(c): kVA rating of the synchronous capacitor , S_*c = %.f\u2220%.1f\u00b0 kVA' %(abs(S_c_conjugate),angle_S_c_conjugate))\n",
+ "print(' Power factor of the synchronous capacitor = %.3f leading' %PF)\n",
+ "print('Case(d): Original current drawn from the mains , I_o = %.1f A' %I_o)\n",
+ "print('Case(e): Final current drawn from the mains after correction , I_f = %.1f A' %I_f)\n",
+ "print('Case(f): See fig.8-25 in textbook page no.251')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Original kilovars of lagging load , jQ_o = j2666.7 kvar\n",
+ "Case(b): Kilovars of correction needed to bring the PF to unity , -jQ_c = -2666.7j kvar\n",
+ "Case(c): kVA rating of the synchronous capacitor , S_*c = 2681\u2220-84.1\u00b0 kVA\n",
+ " Power factor of the synchronous capacitor = 0.103 leading\n",
+ "Case(d): Original current drawn from the mains , I_o = 555.6 A\n",
+ "Case(e): Final current drawn from the mains after correction , I_f = 379.2 A\n",
+ "Case(f): See fig.8-25 in textbook page no.251\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10, Page number 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "kVA = 10000.0 #Rating of a system(kVA)\n",
+ "PF = 0.65 #Power factor of the system\n",
+ "PF_2 = 0.85 #Raised lagging PF\n",
+ "cost = 60.0 #Cost of the synchronous capacitor to improve the PF($/kVA)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "kW_a = kVA*PF #Power(kW)\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "kvar = kVA*sin_theta #Reactive power(kvar)\n",
+ "kVA_a = kvar\n",
+ "cost_cap_a = kVA_a*cost #Cost of raising the PF to unity PF($)\n",
+ "#Case(b)\n",
+ "kVA_b = kW_a/PF_2 #kVA of final system(kVA)\n",
+ "sin_theta_b = (1-PF_2**2)**0.5 #Sin\u03b8\n",
+ "kvar_b = kVA_b*sin_theta_b #kvar of final system(kvar)\n",
+ "kvar_add = kvar-kvar_b #kvar of correction added(kvar)\n",
+ "kVA_b = kvar_add\n",
+ "cost_cap_b = kVA_b*cost #Cost of raising the PF to 0.85 PF($)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Cost of raising the PF to Unity PF = $%.f ' %cost_cap_a)\n",
+ "print('Case(b): Cost of raising the PF to 0.85 PF lagging = $%.f ' %cost_cap_b)\n",
+ "print('\\nNOTE: Slight variations in the obtained answer is due to non-approximation of the values while calculating in python')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Cost of raising the PF to Unity PF = $455961 \n",
+ "Case(b): Cost of raising the PF to 0.85 PF lagging = $214260 \n",
+ "\n",
+ "NOTE: Slight variations in the obtained answer is due to non-approximation of the values while calculating in python\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11, Page number 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_conjugate = 1000.0 #Apparent complex power(kVA)\n",
+ "PF = 0.6 #Lagging PF\n",
+ "\n",
+ "#Calculation\n",
+ "P_o = S_conjugate*PF #Active power dissipated by the load(kW)\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "jQ_o = S_conjugate*sin_theta #Inductive reactive quadrature power drawn from and returned to the supply(kvar)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Active(true) power originally dissipated by load , P_o = %.f kW' %P_o)\n",
+ "print('Case(b): Inductive reactive quadrature power drawn from and returned to supply , +jQ_o = j%.f kvar' %jQ_o)\n",
+ "print('Case(c): The original power triangle is shown in Fig.8-26a in textbook page no.255')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Active(true) power originally dissipated by load , P_o = 600 kW\n",
+ "Case(b): Inductive reactive quadrature power drawn from and returned to supply , +jQ_o = j800 kvar\n",
+ "Case(c): The original power triangle is shown in Fig.8-26a in textbook page no.255\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page number 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_conjugate = 1000.0 #Apparent complex power(kVA)\n",
+ "PF = 0.8 #Lagging PF\n",
+ "jQ_o = 800.0 #Inductive reactive quadrature power drawn from and returned to the supply(kvar)\n",
+ "P_o = 600.0 #Active power dissipated by the load(kW)\n",
+ "PF1 = 0.6 #Lagging PF from ex 8.11\n",
+ "\n",
+ "#Calculation\n",
+ "P_f = S_conjugate*PF #Final active power supplied by the alternator(kW)\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "jQ_f = S_conjugate*sin_theta #Reactive power stored and returned to the supply(kvar)\n",
+ "P_a = P_f-P_o #Additional active power that may be supplied to new consumer(kW)\n",
+ "jQ_a = jQ_f-jQ_o #Correction kilovars required to raise PF from 0.6 to 0.8 lagging(kvar)\n",
+ "S_c = 0-jQ_a #Rating of correction capacitors needed(kVA)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Final active power supplied by the alternator , P_f = %.f kW' %P_f)\n",
+ "print('Case(b): Reactive power stored and returned to the supply , +jQ_f = j%.f kvar' %jQ_f)\n",
+ "print('Case(c): Additional active power that may be supplied to new consumer , P_a = %.f kW' %P_a)\n",
+ "print('Case(d): Correction kilovars required to raise PF from 0.6 to 0.8 lagging , -jQ_a = %.fj kvar' %jQ_a)\n",
+ "print('Case(e): Rating of correction capacitors needed to accomplish above correction , S_*c = %.f kVA' %S_c)\n",
+ "print('Case(f): The power tabulation grid is shown below:')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('\\t P(kW) \\t \u00b1jQ(kvar) \\t S*(kVA) \\t Lagging cos\u03b8')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('Original %.f \\t\\t j%.f \\t\\t %.f \\t\\t %.1f ' %(P_o,jQ_o,S_conjugate,PF1))\n",
+ "print('Added %.f \\t\\t %.fj \\t - \\t\\t - ' %(P_a,jQ_a))\n",
+ "print('Final %.f \\t\\t j%.f \\t\\t %.f \\t\\t %.1f ' %(P_f,jQ_f,S_conjugate,PF))\n",
+ "print('_____________________________________________________________________')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Final active power supplied by the alternator , P_f = 800 kW\n",
+ "Case(b): Reactive power stored and returned to the supply , +jQ_f = j600 kvar\n",
+ "Case(c): Additional active power that may be supplied to new consumer , P_a = 200 kW\n",
+ "Case(d): Correction kilovars required to raise PF from 0.6 to 0.8 lagging , -jQ_a = -200j kvar\n",
+ "Case(e): Rating of correction capacitors needed to accomplish above correction , S_*c = 200 kVA\n",
+ "Case(f): The power tabulation grid is shown below:\n",
+ "_____________________________________________________________________\n",
+ "\t P(kW) \t \u00b1jQ(kvar) \t S*(kVA) \t Lagging cos\u03b8\n",
+ "_____________________________________________________________________\n",
+ "Original 600 \t\t j800 \t\t 1000 \t\t 0.6 \n",
+ "Added 200 \t\t -200j \t - \t\t - \n",
+ "Final 800 \t\t j600 \t\t 1000 \t\t 0.8 \n",
+ "_____________________________________________________________________\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13, Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "S_conjugate = 1000.0 #Apparent complex power(kVA)\n",
+ "PF = 1.0 #Unity PF\n",
+ "jQ_o = 800.0 #Inductive reactive quadrature power drawn from and returned to the supply(kvar)\n",
+ "P_o = 600.0 #Active power dissipated by the load(kW)\n",
+ "PF1 = 0.6 #Lagging PF from ex 8.11\n",
+ "\n",
+ "#Calculation\n",
+ "P_f = S_conjugate*PF #Final active power supplied by the alternator(kW)\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "jQ_f = S_conjugate*sin_theta #Reactive power stored and returned to the supply(kvar)\n",
+ "P_a = P_f-P_o #Additional active power that may be supplied to new consumer(kW)\n",
+ "jQ_a = jQ_f-jQ_o #Correction kilovars required to raise PF from 0.6 to 0.8 lagging(kvar)\n",
+ "S_c = 0-jQ_a #Rating of correction capacitors needed(kVA)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Final active power supplied by the alternator , P_f = %.f kW' %P_f)\n",
+ "print('Case(b): Reactive power stored and returned to the supply , +jQ_f = j%.f kvar' %jQ_f)\n",
+ "print('Case(c): Additional active power that may be supplied to new consumer , P_a = %.f kW' %P_a)\n",
+ "print('Case(d): Correction kilovars required to raise PF from 0.6 to 0.8 lagging , -jQ_a = %.fj kvar' %jQ_a)\n",
+ "print('Case(e): Rating of correction capacitors needed to accomplish above correction , S_*c = %.f kVA' %S_c)\n",
+ "print('Case(f): The power tabulation grid is shown below:')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('\\t P(kW) \\t \u00b1jQ(kvar) \\t S*(kVA) \\t cos\u03b8')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('Original %.f \\t\\t j%.f \\t\\t %.f \\t\\t %.1f ' %(P_o,jQ_o,S_conjugate,PF1))\n",
+ "print('Added %.f \\t\\t %.fj \\t - \\t\\t - ' %(P_a,jQ_a))\n",
+ "print('Final %.f \\t\\t %.f \\t\\t %.f \\t\\t %.1f ' %(P_f,jQ_f,S_conjugate,PF))\n",
+ "print('_____________________________________________________________________')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Final active power supplied by the alternator , P_f = 1000 kW\n",
+ "Case(b): Reactive power stored and returned to the supply , +jQ_f = j0 kvar\n",
+ "Case(c): Additional active power that may be supplied to new consumer , P_a = 400 kW\n",
+ "Case(d): Correction kilovars required to raise PF from 0.6 to 0.8 lagging , -jQ_a = -800j kvar\n",
+ "Case(e): Rating of correction capacitors needed to accomplish above correction , S_*c = 800 kVA\n",
+ "Case(f): The power tabulation grid is shown below:\n",
+ "_____________________________________________________________________\n",
+ "\t P(kW) \t \u00b1jQ(kvar) \t S*(kVA) \t cos\u03b8\n",
+ "_____________________________________________________________________\n",
+ "Original 600 \t\t j800 \t\t 1000 \t\t 0.6 \n",
+ "Added 400 \t\t -800j \t - \t\t - \n",
+ "Final 1000 \t\t 0 \t\t 1000 \t\t 1.0 \n",
+ "_____________________________________________________________________\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P_o = 2000.0 #Load drawn by a factory(kW)\n",
+ "pf_o = 0.6 #Lagging PF\n",
+ "pf_f = 0.85 #lagging PF required\n",
+ "P_a = 275.0 #Losses in the synchronous capacitor(kW)\n",
+ "\n",
+ "#Calculation\n",
+ "S_o_conjugate = P_o/pf_o #Original kVA load drawn from the utility(kVA) \n",
+ "sin_theta_o = (1-pf_o**2)**0.5 #Sin\u03b8\n",
+ "jQ_o = S_o_conjugate*sin_theta_o #Original lagging kilovars(kvar)\n",
+ "P_f = P_o+P_a #Final system active power consumed from the utility(kW)\n",
+ "S_f_conjugate = (P_f/pf_f)*cmath.exp(1j*-math.acos(pf_f)) #Final kVA load drawn from the utility(kVA)\n",
+ "sin_theta_f = (1-pf_f**2)**0.5 #Sin\u03b8\n",
+ "jQ_f = abs(S_f_conjugate)*sin_theta_f #Final lagging kvar\n",
+ "jQ_a = jQ_f-jQ_o #Correction kvar produced by the synchronous capacitor(kvar)\n",
+ "S_a_conjugate = complex(P_a,jQ_a) #kVA rating of the synchronous capacitor(kVA)\n",
+ "angle_S_a_conjugate = cmath.phase(S_a_conjugate)*180/math.pi #Angle(degree)\n",
+ "pf_S_a_conjugate = math.cos(angle_S_a_conjugate*math.pi/180) #Leading PF\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Original kVA load drawn from the utility , S_*o = %.1f kVA' %S_o_conjugate)\n",
+ "print('Case(b): Original lagging kilovars , jQ_o = j%.f kvar' %jQ_o)\n",
+ "print('Case(c): Final system active power consumed from the utility , P_f = %.f kW' %P_f)\n",
+ "print('Case(d): Final kVA load drawn from the utility , S_*f = %.1f\u2220%.1f\u00b0 kVA' %(abs(S_f_conjugate),cmath.phase(S_f_conjugate)*180/math.pi))\n",
+ "print('Case(e): Correction kilovars produced by the synchronous capacitor , -jQ_a = %.fj kvar' %jQ_a)\n",
+ "print('Case(f): kVA rating of the synchronous capacitor , S_*a = %.f\u2220%.2f\u00b0 kVA' %(abs(S_a_conjugate),cmath.phase(S_a_conjugate)*180/math.pi))\n",
+ "print('Case(g): Power tabulation grid: ')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('\\t P(kW) \\t \u00b1jQ(kvar) \\t S*(kVA) \\t cos\u03b8')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('Original %.f \\t\\t j%.f \\t %.1f \\t\\t %.1f lag' %(P_o,jQ_o,S_o_conjugate,pf_o))\n",
+ "print('Added %.f \\t\\t %.fj \\t %.f \\t\\t %.3f lead' %(P_a,jQ_a,abs(S_a_conjugate),pf_S_a_conjugate))\n",
+ "print('Final %.f \\t\\t j%.f \\t %.1f \\t\\t %.2f lag' %(P_f,jQ_f,abs(S_f_conjugate),pf_f))\n",
+ "print('_____________________________________________________________________')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Original kVA load drawn from the utility , S_*o = 3333.3 kVA\n",
+ "Case(b): Original lagging kilovars , jQ_o = j2667 kvar\n",
+ "Case(c): Final system active power consumed from the utility , P_f = 2275 kW\n",
+ "Case(d): Final kVA load drawn from the utility , S_*f = 2676.5\u2220-31.8\u00b0 kVA\n",
+ "Case(e): Correction kilovars produced by the synchronous capacitor , -jQ_a = -1257j kvar\n",
+ "Case(f): kVA rating of the synchronous capacitor , S_*a = 1286\u2220-77.66\u00b0 kVA\n",
+ "Case(g): Power tabulation grid: \n",
+ "_____________________________________________________________________\n",
+ "\t P(kW) \t \u00b1jQ(kvar) \t S*(kVA) \t cos\u03b8\n",
+ "_____________________________________________________________________\n",
+ "Original 2000 \t\t j2667 \t 3333.3 \t\t 0.6 lag\n",
+ "Added 275 \t\t -1257j \t 1286 \t\t 0.214 lead\n",
+ "Final 2275 \t\t j1410 \t 2676.5 \t\t 0.85 lag\n",
+ "_____________________________________________________________________\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "S_f_conjugate = 3333.3 #Rating of alternator(kVA)\n",
+ "S_o_conjugate = complex(2275,1410) #Load(kVA)\n",
+ "PF = 0.8 #Lagging power factor\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "a = 1.0 #Co-efficient of x^2\n",
+ "b = 5332.0 #Co-efficient of x\n",
+ "c = -3947163.0 #Constant\n",
+ "sol_1 = (-b+(b**2-4*a*c)**0.5)/(2*a) #Solution 1\n",
+ "sol_2 = (-b-(b**2-4*a*c)**0.5)/(2*a) #Solution 1\n",
+ "x = sol_1\n",
+ "#Case(b)\n",
+ "P_a = PF*x #Added active power of the additional load(kW)\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "Q_a = sin_theta*x #Added reactive power of the additional load(kvar)\n",
+ "#Case(c)\n",
+ "P_o = S_o_conjugate.real #Real power(kW)\n",
+ "Q_o = S_o_conjugate.imag #Reactive power(kvar)\n",
+ "P_f = P_o+P_a #Final active power supplied by alternator(kW)\n",
+ "Q_f = Q_o+Q_a #Final reactive power supplied by alternator(kvar)\n",
+ "#Case(d)\n",
+ "PF_final = P_f/S_f_conjugate #Final PF of the alternator\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Additional kVA load that may be added without overloading the alternator , x = S_*a = %.2f kVA' %x)\n",
+ "print('Case(b): Added active power of the additional load , P_a = %.1f kW' %P_a)\n",
+ "print(' Added reactive power of the additional load , Q_a = j%.2f kvar' %Q_a)\n",
+ "print('Case(c): Final active power supplied by alternator , P_f = %.1f kW' %P_f)\n",
+ "print(' Final reactive power supplied by alternator , Q_f = j%.1f kvar' %Q_f)\n",
+ "print('Case(d): Final PF of the alternator , PF = %.3f lagging' %PF_final)\n",
+ "print('Power tabulation grid: ')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('\\t P(kW) \\t \u00b1jQ(kvar) \\t S*(kVA) \\t cos\u03b8')\n",
+ "print('_____________________________________________________________________')\n",
+ "print('Original %.f \\t\\t j%.f \\t %.1f \\t\\t %.2f lag' %(P_o,Q_o,abs(S_o_conjugate),math.cos(cmath.phase(S_o_conjugate))))\n",
+ "print('Added %.1fx \\t\\t j%.1fx \\t %.fx \\t\\t %.1f lag' %(PF,sin_theta,(PF**2+sin_theta**2),PF))\n",
+ "print('Final (%.f+%.1fx) \\t (%.f+%.1fx) \\t %.1f \\t\\t %.3f lag' %(P_o,PF,Q_o,sin_theta,S_f_conjugate,PF_final))\n",
+ "print('_____________________________________________________________________')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Additional kVA load that may be added without overloading the alternator , x = S_*a = 658.86 kVA\n",
+ "Case(b): Added active power of the additional load , P_a = 527.1 kW\n",
+ " Added reactive power of the additional load , Q_a = j395.32 kvar\n",
+ "Case(c): Final active power supplied by alternator , P_f = 2802.1 kW\n",
+ " Final reactive power supplied by alternator , Q_f = j1805.3 kvar\n",
+ "Case(d): Final PF of the alternator , PF = 0.841 lagging\n",
+ "Power tabulation grid: \n",
+ "_____________________________________________________________________\n",
+ "\t P(kW) \t \u00b1jQ(kvar) \t S*(kVA) \t cos\u03b8\n",
+ "_____________________________________________________________________\n",
+ "Original 2275 \t\t j1410 \t 2676.5 \t\t 0.85 lag\n",
+ "Added 0.8x \t\t j0.6x \t 1x \t\t 0.8 lag\n",
+ "Final (2275+0.8x) \t (1410+0.6x) \t 3333.3 \t\t 0.841 lag\n",
+ "_____________________________________________________________________\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "S_o_conjugate = complex(2275,1410) #Load(kVA)\n",
+ "theta_S_o_conjugate = cmath.phase(S_o_conjugate)*180/math.pi #Angle of load(degree)\n",
+ "S_a_conjugate = complex(527.1,395.32) #Additional load(kVA)\n",
+ "theta_S_a_conjugate = cmath.phase(S_a_conjugate)*180/math.pi #Angle of additional load(degree)\n",
+ "S_f_conjugate = complex(2802.1,1805.32) #Final load(kVA)\n",
+ "theta_S_f_conjugate = cmath.phase(S_f_conjugate)*180/math.pi #Angle of final load(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "x = S_o_conjugate+S_a_conjugate+(-S_f_conjugate) #Tellegens theorem\n",
+ "\n",
+ "#Result\n",
+ "if(x==0):\n",
+ " print('Validity is checked Tellegens theorem , S_*o + S_*a + (_S_*f) = %.f' %abs(x))\n",
+ "else:\n",
+ " print('Validity is not checked')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Validity is checked Tellegens theorem , S_*o + S_*a + (_S_*f) = 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "kW = 40000.0 #Load on a factory(kW)\n",
+ "PF = 0.8 #Lagging PF\n",
+ "hp = 7500.0 #Power rating of the induction motor(hp)\n",
+ "PF_IM = 0.75 #Lagging PF of the induction motor\n",
+ "n = 0.91 #Efficiency of induction motor\n",
+ "PF_SM = 1.0 #Power factor of the synchronous motor\n",
+ "\n",
+ "#Calculation\n",
+ "kVA_original = kW/PF #Original kVA\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "kvar_original = kVA_original*sin_theta #Original kvar\n",
+ "kW_IM = hp*746/(1000*n) #Induction motor(kW)\n",
+ "kVA_IM = kW_IM/PF_IM #Induction motor(kVA)\n",
+ "sin_theta_IM = (1-PF_IM**2)**0.5 #Sin\u03b8\n",
+ "kvar_IM = kVA_IM*sin_theta_IM #Induction motor(kvar)\n",
+ "kvar_final = kvar_original-kvar_IM #Final kvar\n",
+ "kVA_final = complex(kW,kvar_final) #Final kVA\n",
+ "angle_kVA_final = cmath.phase(kVA_final)*180/math.pi #Angle of Final kVA(degree)\n",
+ "PF_final = math.cos(angle_kVA_final*math.pi/180) #Final power factor\n",
+ "\n",
+ "#Result\n",
+ "print('Overall system PF using a unity PF synchronous motor , Final PF = %.3f lagging' %PF_final)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall system PF using a unity PF synchronous motor , Final PF = 0.852 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "kW = 40000.0 #Load on a factory(kW)\n",
+ "PF = 0.8 #Lagging PF\n",
+ "hp = 7500.0 #Power rating of the synchronous motor(hp)\n",
+ "PF_SM = 0.8 #Lagging PF of the synchronous motor\n",
+ "n = 0.91 #Efficiency of synchronous motor\n",
+ "hp_IM = 7500.0 #Power rating of the induction motor(hp)\n",
+ "PF_IM = 0.75 #Lagging PF of the induction motor\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "kVA_original = kW/PF #Original kVA\n",
+ "sin_theta = (1-PF**2)**0.5 #Sin\u03b8\n",
+ "kvar_original = kVA_original*sin_theta #Original kvar\n",
+ "kW_IM = hp_IM*746/(1000*n) #Induction motor(kW)\n",
+ "kVA_IM = kW_IM/PF_IM #Induction motor(kVA)\n",
+ "sin_theta_IM = (1-PF_IM**2)**0.5 #Sin\u03b8\n",
+ "kvar_IM = kVA_IM*sin_theta_IM #Induction motor(kvar)\n",
+ "kvar_final_IM = kvar_original-kvar_IM #Final kvar\n",
+ "kW_SM = hp*746/(1000*n) #synchronous motor(kW)\n",
+ "kVA_SM = kW_SM/PF_SM #synchronous motor(kVA)\n",
+ "sin_theta_SM = (1-PF_SM**2)**0.5 #Sin\u03b8\n",
+ "kvar_SM = kVA_SM*sin_theta_SM #synchronous(kvar)\n",
+ "kvar_final = kvar_original-kvar_SM-kvar_IM #Final kvar\n",
+ "kVA_final = complex(kW,kvar_final) #Final kVA\n",
+ "angle_kVA_final = cmath.phase(kVA_final)*180/math.pi #Angle of Final kVA(degree)\n",
+ "PF_final = math.cos(angle_kVA_final*math.pi/180) #Final power factor\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Overall system PF using a unity PF synchronous motor , Final PF = %.3f lagging' %PF_final)\n",
+ "print('Case(b): In Ex.8-17, a 6148 kVA, unity PF, 7500 hp synchronous motor is needed. In Ex.8-18, a 7685 kVA, 0.8 PF leading, 7500 hp synchronous motor is needed')\n",
+ "print(' Ex.8-18b shows that a 0.8 PF leading, 7500 hp synchronous motor must be physically larger than a unity PF, 7500 hp synchronous motor because of its higher kVA rating')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Overall system PF using a unity PF synchronous motor , Final PF = 0.895 lagging\n",
+ "Case(b): In Ex.8-17, a 6148 kVA, unity PF, 7500 hp synchronous motor is needed. In Ex.8-18, a 7685 kVA, 0.8 PF leading, 7500 hp synchronous motor is needed\n",
+ " Ex.8-18b shows that a 0.8 PF leading, 7500 hp synchronous motor must be physically larger than a unity PF, 7500 hp synchronous motor because of its higher kVA rating\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "kVA_load = 500.0 #Load(kVA)\n",
+ "PF_load = 0.65 #Lagging PF of load\n",
+ "hp = 200.0 #Power rating of the system(hp)\n",
+ "n = 0.88 #Efficiency of the system after adding the load\n",
+ "PF_final = 0.85 #Final lagging PF after adding the load\n",
+ "\n",
+ "#Calculation\n",
+ "kW_original = kVA_load*PF_load #Original kW\n",
+ "sin_theta_load = (1-PF_load**2)**0.5 #Sin\u03b8\n",
+ "kvar_original = kVA_load*sin_theta_load #Original kvar\n",
+ "kW_SM = hp*746/(1000*n) #Synchronous motor kW\n",
+ "#Case(a)\n",
+ "kW_final = kW_original+kW_SM #Final kW of the system with the motor added\n",
+ "kVA_final = kW_final/PF_final #Final kVA of the system with the motor added\n",
+ "PF_system = kW_final/kVA_final #Final PF of the system with the motor added\n",
+ "sin_theta_system = (1-PF_final**2)**0.5 #Sin\u03b8\n",
+ "kvar_final = kVA_final*sin_theta_system #Final kvar of the system with the motor added\n",
+ "#Case(b)\n",
+ "kvar_SM = kvar_final-kvar_original #kvar rating of the synchronous motor\n",
+ "kVA_SM = complex(kW_SM,kvar_SM) #kVA rating of the synchronous motor\n",
+ "kVA_SM_a = cmath.phase(kVA_SM)*180/math.pi #Angle of kVA rating of the synchronous motor(degree)\n",
+ "PF_SM = math.cos(kVA_SM_a*math.pi/180) #PF of the sychronous motor\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): kVA of the system with the motor added , Final kVA = %.f kVA' %kVA_final)\n",
+ "print(' PF of the system with the motor added , System PF = %.2f lagging' %PF_system)\n",
+ "print('Case(b): kVA of the synchronous motor , Synchronous motor kVa = %.f\u2220%.1f\u00b0 kVA' %(abs(kVA_SM),kVA_SM_a))\n",
+ "print(' PF of the synchronous motor at which it operates , Synchronous motor PF = %.3f leading' %PF_SM)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): kVA of the system with the motor added , Final kVA = 582 kVA\n",
+ " PF of the system with the motor added , System PF = 0.85 lagging\n",
+ "Case(b): kVA of the synchronous motor , Synchronous motor kVa = 185\u2220-23.4\u00b0 kVA\n",
+ " PF of the synchronous motor at which it operates , Synchronous motor PF = 0.918 leading\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page number 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "f_m = 60.0 #Frequency of motor(Hz)\n",
+ "f_a = 4000.0 #Frequency of alternator(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "Pole_ratio = f_a/f_m #Ratio of number of poles in alternator to that of motor\n",
+ "P_a = 20.0\n",
+ "P_m = 3.0\n",
+ "P_a1 = 2*P_a #First combination must have 40 poles on the alternator\n",
+ "P_m1 = 2*P_m #First combination must have 6 poles on the synchronous motor\n",
+ "S_1 = 120*f_m/P_m1 #Speed of motor and alternator(rpm)\n",
+ "P_a2 = 4*P_a #Second combination must have 40 poles on the alternator\n",
+ "P_m2 = 4*P_m #Second combination must have 6 poles on the synchronous motor\n",
+ "S_2 = 120*f_m/P_m2 #Speed of motor and alternator(rpm)\n",
+ "P_a3 = 6*P_a #Third combination must have 40 poles on the alternator\n",
+ "P_m3 = 6*P_m #Third combination must have 6 poles on the synchronous motor\n",
+ "S_3 = 120*f_m/P_m3 #Speed of motor and alternator(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('First combination have %.f poles on the alternator and %.f poles on the synchronous motor at a speed %.f rpm' %(P_a1,P_m1,S_1))\n",
+ "print('Second combination have %.f poles on the alternator and %.f poles on the synchronous motor at a speed %.f rpm' %(P_a2,P_m2,S_2))\n",
+ "print('Third combination have %.f poles on the alternator and %.f poles on the synchronous motor at a speed %.f rpm' %(P_a3,P_m3,S_3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First combination have 40 poles on the alternator and 6 poles on the synchronous motor at a speed 1200 rpm\n",
+ "Second combination have 80 poles on the alternator and 12 poles on the synchronous motor at a speed 600 rpm\n",
+ "Third combination have 120 poles on the alternator and 18 poles on the synchronous motor at a speed 400 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/CHAP_9.ipynb b/Electric_Machinery_and_Transformers/CHAP_9.ipynb
new file mode 100755
index 00000000..282faf96
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/CHAP_9.ipynb
@@ -0,0 +1,1133 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 9: POLYPHASE INDUCTION(ASYNCHRONOUS) DYNAMOS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page number 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "phase = 3.0 #Number of phases\n",
+ "n = 3.0 #Slots per pole per phase\n",
+ "f = 60.0 #Line frequency(Hz)\n",
+ "f_c = 50.0 #Changed line frequency(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "P = 2*n #Number of poles produced\n",
+ "Total_slots = n*P*phase #Total number of slots on the stator\n",
+ "S_b = 120*f/P #Speed of the rotating magnetic field or poles(rpm)\n",
+ "S_c = 120*f_c/P #Speed of the rotating magnetic field(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Number of poles produced , P = %.f poles' %P)\n",
+ "print(' Total number of slots on the stator , Total slots = %.f slots' %Total_slots)\n",
+ "print('Case(b): Speed of the rotating magnetic fields or poles , S = %.f rpm' %S_b)\n",
+ "print('Case(c): Speed of the rotating magnetic field , S = %.f rpm' %S_c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Number of poles produced , P = 6 poles\n",
+ " Total number of slots on the stator , Total slots = 54 slots\n",
+ "Case(b): Speed of the rotating magnetic fields or poles , S = 1200 rpm\n",
+ "Case(c): Speed of the rotating magnetic field , S = 1000 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page number 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "s_a = 0.05 #Slip\n",
+ "f_a = 60.0 #Line frequency(Hz)\n",
+ "S_a = 1200.0 #Speed of the rotating magnetic field(rpm)\n",
+ "s_b = 0.07 #Slip\n",
+ "f_b = 50.0 #Line frequency(Hz)\n",
+ "S_b = 1000.0 #Speed of the rotating magnetic field(rpm)\n",
+ "\n",
+ "#Calculation\n",
+ "S_r_a = S_a*(1-s_a) #Full-load rotor speed(rpm)\n",
+ "S_r_b = S_b*(1-s_b) #Full-load rotor speed(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load rotor speed if slip is 5 percent slip when the frequency is 60 Hz , S_r = %.f rpm' %S_r_a)\n",
+ "print('Case(b): Full-load rotor speed if slip is 7 percent slip when the frequency is 50 Hz , S_r = %.f rpm' %S_r_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load rotor speed if slip is 5 percent slip when the frequency is 60 Hz , S_r = 1140 rpm\n",
+ "Case(b): Full-load rotor speed if slip is 7 percent slip when the frequency is 50 Hz , S_r = 930 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3, Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in Induction motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "s_f = 0.05 #Full-load rotor slip\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "s = 1.0 #Slip = 1 at the instant of starting, since S_r = 0\n",
+ "f_r_a = s*f #Rotor frequency in Hz at the instant of starting\n",
+ "#Case(b)\n",
+ "f_r_b = s_f*f #Full-load rotor frequency in Hz\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotor frequency at the instant of starting , f_r = %.f Hz' %f_r_a)\n",
+ "print('Case(b): Rotor frequency at full load , f_r = %.f Hz' %f_r_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotor frequency at the instant of starting , f_r = 60 Hz\n",
+ "Case(b): Rotor frequency at full load , f_r = 3 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page number 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in the induction motor\n",
+ "hp = 50.0 #Rating of the induction motor(hp)\n",
+ "V_o = 208.0 #Voltage rating of the induction motor(V)\n",
+ "T_orig = 225.0 #Starting torque(lb-ft)\n",
+ "I_orig = 700.0 #Instantaneous starting current at rated voltage(A)\n",
+ "V_s = 120.0 #Reduced 3-phase voltage supplied(V)\n",
+ "\n",
+ "#Calculation\n",
+ "T_s = T_orig*(V_s/V_o)**2 #Starting torque(lb-ft)\n",
+ "I_s = I_orig*(V_s/V_o) #Starting current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Starting torque , T_s = %.f lb-ft' %T_s)\n",
+ "print('Case(b): Starting current , I_s = %d A' %I_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Starting torque , T_s = 75 lb-ft\n",
+ "Case(b): Starting current , I_s = 403 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5, Page number 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles in the motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "R_r = 0.3 #Rotor resistance per phase(ohm)\n",
+ "S_r = 650.0 #Speed at which motor stalls(rpm)\n",
+ "s = 0.05 #Rated slip\n",
+ "\n",
+ "#Calculation\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "s_b = (S-S_r)/S #Breakdown Slip\n",
+ "X_lr = R_r/s_b #Locked rotor reactance(ohm)\n",
+ "f_r = s_b*f #Rotor frequency at the maximum torque point(Hz)\n",
+ "S_r = S*(1-s) #Full-load speed at rated slip(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Breakdown slip , s_b = %.3f' %s_b)\n",
+ "print('Case(b): Locked-rotor reactance , X_lr = %.2f \u03a9' %X_lr)\n",
+ "print('Case(c): Rotor frequency at the maximum torque point , f_r = %.1f Hz' %f_r)\n",
+ "print('Case(d): Full-load speed if the rated slip is 5 percent , S_r = %.f rpm' %S_r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Breakdown slip , s_b = 0.278\n",
+ "Case(b): Locked-rotor reactance , X_lr = 1.08 \u03a9\n",
+ "Case(c): Rotor frequency at the maximum torque point , f_r = 16.7 Hz\n",
+ "Case(d): Full-load speed if the rated slip is 5 percent , S_r = 855 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6, Page number 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles in the motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "R_r = 0.3 #Rotor resistance per phase(ohm/phase)\n",
+ "R_x = 0.7 #Added resistance(ohm/phase)\n",
+ "S_r = 875.0 #Full-load Speed(rpm) \n",
+ "S = 900.0 #Speed of the rotating magnetic field(rpm)\n",
+ "X_lr = 1.08 #Locked rotor reactance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "s = (S-S_r)/S #Full-load slip,short circuited\n",
+ "R_r_total = R_r+R_x #Total resistance per phase(ohm)\n",
+ "s_r = R_r_total/R_r*s #New full-load slip with added resistance\n",
+ "S_r_new = S*(1-s_r) #New full-load speed(rpm) \n",
+ "#Case(b)\n",
+ "T_o = R_r/(R_r**2+X_lr**2) #Original torque\n",
+ "T_f = (R_r+R_x)/((R_r+R_x)**2+X_lr**2) #New torque\n",
+ "torque_ratio = T_f/T_o #Ratio of final torque to original torque\n",
+ "T_final = 2*torque_ratio\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): New full-load speed with added resistance , S(1-s) = %.f rpm' %S_r_new)\n",
+ "print('Case(b): Starting torque with added resistance , T_f = %.2f*T_fl' %T_final)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): New full-load speed with added resistance , S(1-s) = 817 rpm\n",
+ "Case(b): Starting torque with added resistance , T_f = 3.87*T_fl\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7, Page number 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles in the motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "R_r = 0.3 #Rotor resistance per phase(ohm/phase)\n",
+ "R_x = 0.7 #Added resistance(ohm/phase)\n",
+ "X_lr = 1.08 #Locked rotor reactance(ohm)\n",
+ "E_lr = 112.0 #Induced voltage per phase(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "Z_lr = complex(R_r,X_lr) #Locked rotor impedance per phase(ohm)\n",
+ "I_r = E_lr/abs(Z_lr) #Rotor current per phase(A)\n",
+ "angle_Z_lr = cmath.phase(Z_lr)*180/math.pi #Angle of locked rotor impedance per phase(degree)\n",
+ "PF = math.cos(angle_Z_lr*math.pi/180) #PF with rotor short circuited\n",
+ "PF_a = R_r/abs(Z_lr) #PF with rotor short circuited\n",
+ "#Case(b)\n",
+ "Z_lr_b = complex(R_r+R_x,X_lr) #Locked rotor impedance per phase with added resistance(ohm)\n",
+ "I_r_b = E_lr/abs(Z_lr_b) #Rotor current per phase with added resistance(A)\n",
+ "angle_Z_lr_b = cmath.phase(Z_lr_b)*180/math.pi #Angle of locked rotor impedance per phase with added resistance(degree)\n",
+ "PF_2 = math.cos(angle_Z_lr_b*math.pi/180) #PF with added resistance\n",
+ "PF_b = (R_r+R_x)/abs(Z_lr_b) #PF with added resistance\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Rotor current per phase with rotor short-circuited , I_r = %.fA' %I_r)\n",
+ "print(' Power factor with rotor short-circuited , cos\u03b8 = %.3f ' %PF)\n",
+ "print('Case(b): Rotor current per phase with added resistance , I_r = %.1f A' %I_r_b)\n",
+ "print(' Power factor with added resistance , cos\u03b8_r = %.2f ' %PF_2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Rotor current per phase with rotor short-circuited , I_r = 100A\n",
+ " Power factor with rotor short-circuited , cos\u03b8 = 0.268 \n",
+ "Case(b): Rotor current per phase with added resistance , I_r = 76.1 A\n",
+ " Power factor with added resistance , cos\u03b8_r = 0.68 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page number 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles in the motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "R_r = 0.3 #Rotor resistance per phase(ohm/phase)\n",
+ "R_x = 0.7 #Added resistance(ohm/phase)\n",
+ "X_lr = 1.08 #Locked rotor reactance(ohm)\n",
+ "E_lr = 112.0 #Induced voltage per phase(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "T_o = R_r/(R_r**2+X_lr**2) #Original torque\n",
+ "a = 0.24 #Co-efficient of x^2\n",
+ "b = -0.856 #Co-efficient of x\n",
+ "c = 0 #Constant\n",
+ "sol_1 = (-b+(b**2-4*a*c)**0.5)/(2*a) #Solution 1\n",
+ "sol_2 = (-b-(b**2-4*a*c)**0.5)/(2*a) #Solution 1\n",
+ "R_x = sol_1\n",
+ "R_x2 = sol_2\n",
+ "R_T = R_r+R_x #Added rotor resistance(ohm)\n",
+ "#Case(b)\n",
+ "Z_T = complex(R_T,X_lr) #Impedance(ohm)\n",
+ "angle_Z_T = cmath.phase(Z_T)*180/math.pi #Angle of impedance(degree)\n",
+ "PF = math.cos(angle_Z_T*math.pi/180) #Rotor PF\n",
+ "PF_b = R_T/abs(Z_T) #Rotor PF\n",
+ "#Case(c)\n",
+ "I_r = E_lr/abs(Z_T) #Starting current(A)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Added rotor resistance , R_T = %.2f \u03a9' %R_T)\n",
+ "print('Case(b): Rotor power factor that will produce same starting torque , cos\u03b8 = %.3f ' %PF)\n",
+ "print('Case(c): Starting current , I_r = %.f A' %I_r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Added rotor resistance , R_T = 3.87 \u03a9\n",
+ "Case(b): Rotor power factor that will produce same starting torque , cos\u03b8 = 0.963 \n",
+ "Case(c): Starting current , I_r = 28 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9, Page number 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles in the motor\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "R_r = 0.3 #Rotor resistance(ohm)\n",
+ "S_r = 875.0 #Full-load Speed(rpm)\n",
+ "R_x_a = 1.7 #Added rotor resistance(ohm)\n",
+ "R_x_b = 2.7 #Added rotor resistance(ohm)\n",
+ "R_x_c = 3.7 #Added rotor resistance(ohm)\n",
+ "R_x_d = 4.7 #Added rotor resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "S_o = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "s_o = (S_o-S_r)/S_o #Full-load slip\n",
+ "s_r_a = s_o*(R_r+R_x_a)/R_r #Slip\n",
+ "S_r_a = S_o*(1-s_r_a) #Rotor speed(rpm)\n",
+ "s_r_b = s_o*(R_r+R_x_b)/R_r #Slip\n",
+ "S_r_b = S_o*(1-s_r_b) #Rotor speed(rpm)\n",
+ "s_r_c = s_o*(R_r+R_x_c)/R_r #Slip\n",
+ "S_r_c = S_o*(1-s_r_c) #Rotor speed(rpm)\n",
+ "s_r_d = s_o*(R_r+R_x_d)/R_r #Slip\n",
+ "S_r_d = S_o*(1-s_r_d) #Rotor speed(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full load speed for added rotor resistance of 1.7 \u03a9 , S_r = %.1f rpm' %S_r_a)\n",
+ "print('Case(b): Full load speed for added rotor resistance of 2.7 \u03a9 , S_r = %.f rpm' %S_r_b)\n",
+ "print('Case(c): Full load speed for added rotor resistance of 3.7 \u03a9 , S_r = %d rpm' %S_r_c)\n",
+ "print('Case(d): Full load speed for added rotor resistance of 4.7 \u03a9 , S_r = %.f rpm' %S_r_d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full load speed for added rotor resistance of 1.7 \u03a9 , S_r = 733.3 rpm\n",
+ "Case(b): Full load speed for added rotor resistance of 2.7 \u03a9 , S_r = 650 rpm\n",
+ "Case(c): Full load speed for added rotor resistance of 3.7 \u03a9 , S_r = 566 rpm\n",
+ "Case(d): Full load speed for added rotor resistance of 4.7 \u03a9 , S_r = 483 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10, Page number 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in WRIM\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V = 220.0 #Line voltage(V)\n",
+ "hp = 1.0 #Power rating of WRIM(hp)\n",
+ "S_r = 1740.0 #Full-load rated speed(rpm)\n",
+ "R_r = 0.3 #Rotor resistance(ohm)\n",
+ "X_lr = 1.0 #Locked rotor reactance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_p = V #Phase voltage(V)\n",
+ "E_lr = V_p/4 #Locked-rotor voltage per phase(V)\n",
+ "#Case(b)\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "s = (S-S_r)/S #Slip\n",
+ "I_r = E_lr/((R_r/s)**2+X_lr**2)**0.5 #Rotor current per phase at rated speed(A/phase)\n",
+ "#Case(c)\n",
+ "P_in = I_r**2*R_r/s #Rated rotor power input per phase(W/phase)\n",
+ "#Case(d)\n",
+ "P_RL = I_r**2*R_r #Rated rotor copper loss per phase(W/phase)\n",
+ "#Case(e)\n",
+ "P_d = P_in-P_RL #Rotor power developed per phase(W)\n",
+ "P_d_hp = P_d/746 #Rotor power developed per phase(hp)\n",
+ "#Case(f)\n",
+ "T_d = P_d_hp*5252/S_r #Rotor torque developed per phase(lb-ft)\n",
+ "T_d2 = 7.04*P_in/S #Rotor torque developed per phase(lb-ft)\n",
+ "T_dm = 3*T_d #Total rotor torque(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Locked-rotor voltage per phase , E_lr = %.f V' %E_lr)\n",
+ "print('Case(b): Rotor current per phase at rated speed , I_r = %.3f A/phase' %I_r)\n",
+ "print('Case(c): Rated rotor power input per phase , P_in = %.f W/phase' %P_in)\n",
+ "print('Case(d): Rated rotor copper loss per phase , P_RL = %.2f W' %P_RL)\n",
+ "print('Case(e): Rotor power developed per phase , P_d = %.1f W/phase' %P_d)\n",
+ "print(' Rotor power developed per phase , P_d = %.2f hp/phase' %P_d_hp)\n",
+ "print('Case(f): Rotor torque developed per phase by method 1 , T_d = %.1f lb-ft' %T_d)\n",
+ "print(' Rotor torque developed per phase by method 2 , T_d = %.1f lb-ft' %T_d2)\n",
+ "print(' Total rotor torque , T_dm = %.1f lb-ft' %T_dm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Locked-rotor voltage per phase , E_lr = 55 V\n",
+ "Case(b): Rotor current per phase at rated speed , I_r = 6.074 A/phase\n",
+ "Case(c): Rated rotor power input per phase , P_in = 332 W/phase\n",
+ "Case(d): Rated rotor copper loss per phase , P_RL = 11.07 W\n",
+ "Case(e): Rotor power developed per phase , P_d = 320.9 W/phase\n",
+ " Rotor power developed per phase , P_d = 0.43 hp/phase\n",
+ "Case(f): Rotor torque developed per phase by method 1 , T_d = 1.3 lb-ft\n",
+ " Rotor torque developed per phase by method 2 , T_d = 1.3 lb-ft\n",
+ " Total rotor torque , T_dm = 3.9 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11, Page number 303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 6.0 #Number of poles in WRIM\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V = 208.0 #Line voltage(V)\n",
+ "hp = 7.5 #Power rating of WRIM(hp)\n",
+ "S_r = 1125.0 #Full-load rated speed(rpm)\n",
+ "R_r = 0.08 #Rotor resistance(ohm/phase)\n",
+ "X_lr = 0.4 #Locked rotor reactance(ohm/phase)\n",
+ "\n",
+ "#Calculation\n",
+ "#Case(a)\n",
+ "V_p = V/3**0.5 #Phase voltage(V)\n",
+ "E_lr = V_p/2 #Locked-rotor voltage per phase(V)\n",
+ "#Case(b)\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "s = (S-S_r)/S #Slip\n",
+ "I_r = E_lr/((R_r/s)**2+X_lr**2)**0.5 #Rotor current per phase at rated speed(A/phase)\n",
+ "#Case(c)\n",
+ "P_in = I_r**2*R_r/s #Rated rotor power input per phase(W/phase)\n",
+ "#Case(d)\n",
+ "P_RL = I_r**2*R_r #Rated rotor copper loss per phase(W/phase)\n",
+ "#Case(e)\n",
+ "P_d = P_in-P_RL #Rotor power developed per phase(W)\n",
+ "P_d_hp = P_d/746 #Rotor power developed per phase(hp)\n",
+ "#Case(f)\n",
+ "T_d = P_d_hp*5252/S_r #Rotor torque developed per phase(lb-ft)\n",
+ "T_d2 = 7.04*P_in/S #Rotor torque developed per phase(lb-ft)\n",
+ "#Case(g)\n",
+ "T_dm = 3*T_d #Total rotor torque(lb-ft)\n",
+ "#Case(h)\n",
+ "P_o = hp*746 #Output power(W)\n",
+ "T_o = 7.04*P_o/S_r #Total output rotor torque(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Locked-rotor voltage per phase , E_lr = %.f V' %E_lr)\n",
+ "print('Case(b): Rotor current per phase at rated speed , I_r = %.2f A/phase' %I_r)\n",
+ "print('Case(c): Rated rotor power input per phase , P_in = %.f W/phase' %P_in)\n",
+ "print('Case(d): Rated rotor copper loss per phase , P_RL = %.1f W/phase' %P_RL)\n",
+ "print('Case(e): Rotor power developed per phase , P_d = %.f W/phase' %P_d)\n",
+ "print(' Rotor power developed per phase , P_d = %.2f hp/phase' %P_d_hp)\n",
+ "print('Case(f): Rotor torque developed per phase by method 1 , T_d = %.1f lb-ft/phase' %T_d)\n",
+ "print(' Rotor torque developed per phase by method 2 , T_d = %.1f lb-ft/phase' %T_d2)\n",
+ "print('Case(g): Total rotor torque , T_dm = %.f lb-ft' %T_dm)\n",
+ "print('Case(h): Total output rotor torque , T_o = %.f lb-ft' %T_o)\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Locked-rotor voltage per phase , E_lr = 60 V\n",
+ "Case(b): Rotor current per phase at rated speed , I_r = 44.77 A/phase\n",
+ "Case(c): Rated rotor power input per phase , P_in = 2566 W/phase\n",
+ "Case(d): Rated rotor copper loss per phase , P_RL = 160.4 W/phase\n",
+ "Case(e): Rotor power developed per phase , P_d = 2406 W/phase\n",
+ " Rotor power developed per phase , P_d = 3.22 hp/phase\n",
+ "Case(f): Rotor torque developed per phase by method 1 , T_d = 15.1 lb-ft/phase\n",
+ " Rotor torque developed per phase by method 2 , T_d = 15.1 lb-ft/phase\n",
+ "Case(g): Total rotor torque , T_dm = 45 lb-ft\n",
+ "Case(h): Total output rotor torque , T_o = 35 lb-ft\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.12, Page number 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in WRIM\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V = 220.0 #Line voltage(V)\n",
+ "hp = 1.0 #Power rating of WRIM(hp)\n",
+ "R_r = 0.3 #Rotor resistance(ohm)\n",
+ "X_lr = 1.0 #Locked rotor reactance(ohm)\n",
+ "n = 3.0 #Number of phases\n",
+ "\n",
+ "#Calculation\n",
+ "V_p = V #Phase voltage(V)\n",
+ "E_lr = V_p/4 #Locked-rotor voltage per phase(V)\n",
+ "P_in = E_lr**2/(2*X_lr)*n #Total 3-phase rotor power input(W)\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "T_max = 7.04*P_in/S #Maximum torque developed(lb-ft)\n",
+ "s_b = R_r/X_lr #Slip\n",
+ "S_r = S*(1-s_b) #Speed at which maximum torque is developed(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Maximum torque developed , T_max = %.2f lb-ft' %T_max)\n",
+ "print('Percent slip , s_b = %.f percent' %(s_b*100))\n",
+ "print('Speed at which maximum torque is developed , S_r = %.f rpm' %S_r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum torque developed , T_max = 17.75 lb-ft\n",
+ "Percent slip , s_b = 30 percent\n",
+ "Speed at which maximum torque is developed , S_r = 1260 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.13, Page number 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in WRIM\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "V = 220.0 #Line voltage(V)\n",
+ "hp = 1.0 #Power rating of WRIM(hp)\n",
+ "R_r = 0.3 #Rotor resistance(ohm)\n",
+ "X_lr = 1.0 #Locked rotor reactance(ohm)\n",
+ "n = 3.0 #Number of phases\n",
+ "\n",
+ "#Calculation\n",
+ "V_p = V #Phase voltage(V)\n",
+ "E_lr = V_p/4 #Locked-rotor voltage per phase(V)\n",
+ "P_in = n*(E_lr**2/(R_r**2+X_lr**2))*R_r #Total 3-phase rotor power input(W)\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "T_s = 7.04*P_in/S #Starting torque developed(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Starting torque developed , T_s = %.2f lb-ft' %T_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Starting torque developed , T_s = 9.77 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.14, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T_max = 17.75 #Maximum torque developed(lb-ft)\n",
+ "s_max = 0.3 #Slip for which T_max occurs\n",
+ "s_a = 0.0333 #Slip\n",
+ "s_b = 1.0 #Slip \n",
+ "\n",
+ "#Calculation\n",
+ "T_a = T_max*(2/((s_max/s_a)+(s_a/s_max))) #Full-load torque(lb-ft)\n",
+ "T_b = T_max*(2/((s_max/s_b)+(s_b/s_max))); #Starting torque(lb-ft)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Full-load torque at a slip of 0.0333 , T = %.1f lb-ft' %T_a)\n",
+ "print('Case(b): Starting torque at a slip of 1.0 , T = %.2f lb-ft' %T_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Full-load torque at a slip of 0.0333 , T = 3.9 lb-ft\n",
+ "Case(b): Starting torque at a slip of 1.0 , T = 9.77 lb-ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.15, Page number 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "import numpy\n",
+ "\n",
+ "#Variable declaration\n",
+ "P = 4.0 #Number of poles in SCIM \n",
+ "S_r = 1746.0 #Rated rotor speed(rpm)\n",
+ "V = 220.0 #Voltage rating of SCIM(V)\n",
+ "f = 60.0 #Frequency(Hz)\n",
+ "P_hp = 10.0 #Power rating of SCIM(hp)\n",
+ "R_a = 0.4 #Armature resistance(ohm)\n",
+ "R_r = 0.14 #Rotor resistance(ohm)\n",
+ "jXm = 16.0 #Reactance(ohm)\n",
+ "jXs = 0.35 #Synchronous reactance(ohm)\n",
+ "jXlr = 0.35 #Locked rotor reactance(ohm)\n",
+ "P_r_total = 360.0 #Total rotational losses(W)\n",
+ "\n",
+ "#Calculation\n",
+ "V_p = V/3**0.5 #Voltage per phase(V)\n",
+ "S = 120*f/P #Speed of the rotating magnetic field(rpm)\n",
+ "s = (S-S_r)/S #Slip\n",
+ "I1_1 = complex(R_a,jXm+jXs)\n",
+ "I1_2 = complex(0,-jXm)\n",
+ "I2_1 = complex(0,-jXm)\n",
+ "I2_2 = complex(R_r/s,jXm+jXlr)\n",
+ "V_1 = V_p\n",
+ "V_2 = 0\n",
+ "A = [[I1_1,I2_1],[I1_2,I2_2]] #Matrix containing above mesh eqns array\n",
+ "delta = numpy.linalg.det(A) #Determinant of A\n",
+ "#Case(a)\n",
+ "I_p = numpy.linalg.det([[V_1,I2_1],[V_2,I2_2]])/delta #Stator armature current(A)\n",
+ "I_1 = I_p\n",
+ "#Case(b)\n",
+ "I_r = numpy.linalg.det([[I1_1,V_1],[I1_2,V_2]])/delta #Rotor armature current(A)\n",
+ "I_2 = I_r\n",
+ "#Case(c)\n",
+ "theta_1 = cmath.phase(I_p)*180/math.pi #Motor PF angle(degrees)\n",
+ "cos_theta1 = math.cos(theta_1*math.pi/180) #Motor PF\n",
+ "#Case(d)\n",
+ "SPI = V_p*abs(I_p)*cos_theta1 #Stator power input(W)\n",
+ "#Case(e)\n",
+ "SCL = abs(I_p)**2 *R_a #Stator Copper Loss(W)\n",
+ "#Case(f)\n",
+ "RPI = SPI-SCL #Rotor power input(W) Method 1\n",
+ "RPI_2 = abs(I_r)**2*(R_r/s) #Rotor power input(W) Method 2\n",
+ "#Case(g)\n",
+ "RPD = RPI*(1-s) #Rotor power developed(W) Method 1\n",
+ "RCL = s*RPI #Rotor copper losses(W)\n",
+ "RPD_2 = RPI-RCL #Rotor power developed(W) Method 2\n",
+ "RPD_3 = abs(I_r)**2*R_r*(1-s)/s #Rotor power developed(W) Method 3\n",
+ "#Case(h)\n",
+ "P_r = P_r_total/3 #Rotational losses per phase(W)\n",
+ "P_o = RPD-P_r #Rotor power per phase(W)\n",
+ "P_to = 3.0*P_o #Total rotor power at the motor pulley(W)\n",
+ "#Case(i)\n",
+ "T = 7.04*(P_to/S_r) #Total 3-phase torque(lb-ft)\n",
+ "#Case(j)\n",
+ "P_t = P_to \n",
+ "hp = P_t/746.0 #Output horsepower(hp)\n",
+ "#Case(k)\n",
+ "P_in = SPI #Input power to stator(W)\n",
+ "n = P_o/P_in*100 #Motor efficiency at rated load(%)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Stator armature current , I_p = %.2f\u2220%.2f\u00b0 A (lagging)' %(abs(I_p),cmath.phase(I_p)*180/math.pi))\n",
+ "print('Case(b): Rotor current per phase , I_r = %.3f\u2220%.2f\u00b0 A (lagging)' %(abs(I_r),cmath.phase(I_r)*180/math.pi))\n",
+ "print('Case(c): Motor power factor , cos \u04e8_1 = %.4f' %cos_theta1)\n",
+ "print('Case(d): Stator power input , SPI = %d W' %SPI)\n",
+ "print('Case(e): Stator copper loss , SCL = %d W' %SCL)\n",
+ "print('Case(f): Rotor power input , RPI = %d W (Method 1)' %RPI)\n",
+ "print(' Rotor power input , RPI = %d W (Method 2)' %RPI_2)\n",
+ "print('Case(g): Rotor power developed , RPD = %d W (Method 1)' %RPD)\n",
+ "print(' Rotor power developed , RPD = %d W (Method 2)' %RPD_2)\n",
+ "print(' Rotor power developed , RPD = %d W (Method 3)' %RPD_3)\n",
+ "print('Case(h): Total rotor power at the motor pulley , P_to = %d W' %P_to)\n",
+ "print('Case(i): Total three-phase output torque , T = %d lb-ft' %T)\n",
+ "print('Case(j): Output horsepower , hp = %.1f hp' %hp)\n",
+ "print('Case(k): Motor efficiency at rated load , \u03b7 = %.1f percent' %n)\n",
+ "print('\\nNOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Stator armature current , I_p = 25.90\u2220-22.44\u00b0 A (lagging)\n",
+ "Case(b): Rotor current per phase , I_r = 24.374\u2220-6.51\u00b0 A (lagging)\n",
+ "Case(c): Motor power factor , cos \u04e8_1 = 0.9243\n",
+ "Case(d): Stator power input , SPI = 3040 W\n",
+ "Case(e): Stator copper loss , SCL = 268 W\n",
+ "Case(f): Rotor power input , RPI = 2772 W (Method 1)\n",
+ " Rotor power input , RPI = 2772 W (Method 2)\n",
+ "Case(g): Rotor power developed , RPD = 2689 W (Method 1)\n",
+ " Rotor power developed , RPD = 2689 W (Method 2)\n",
+ " Rotor power developed , RPD = 2689 W (Method 3)\n",
+ "Case(h): Total rotor power at the motor pulley , P_to = 7707 W\n",
+ "Case(i): Total three-phase output torque , T = 31 lb-ft\n",
+ "Case(j): Output horsepower , hp = 10.3 hp\n",
+ "Case(k): Motor efficiency at rated load , \u03b7 = 84.5 percent\n",
+ "\n",
+ "NOTE: Changes in obtained answer from that of textbook is due to more precision i.e more number of decimal places\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.16, Page number 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V = 208.0 #Rated voltage(V)\n",
+ "P_o = 15.0 #Rated power(hp)\n",
+ "I = 42.0 #Rated current(A)\n",
+ "I_st = 252.0 #Starting current(A)\n",
+ "T_st = 120.0 #Full-voltage starting torque(lb-ft)\n",
+ "tap = 0.6 #Tapping employed by compensator\n",
+ "\n",
+ "#Calculation\n",
+ "I_sm = tap*I_st #Motor starting current at reduced voltage(A) \n",
+ "I_L = tap*I_sm #Motor line current(A)\n",
+ "T_s = tap**2*T_st #Motor starting torque at reduced voltage(lb-ft)\n",
+ "percent_I_L = I_L/I_st*100 #Percent line current at starting\n",
+ "percent_T_st = T_s/T_st*100 #Percent motor starting torque\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Motor starting current at reduced voltage , I_sm = %.1f A to the motor' %I_sm)\n",
+ "print('Case(b): Motor line current neglecting tarnsformer exciting current and losses , I_L = %.2f A drawn from the mains' %I_L)\n",
+ "print('Case(c): Motor starting torque at reduced voltage , T_s = %.1f lb-ft' %T_s)\n",
+ "print('Case(d): Percent line current at starting = %.f percent of line current at full voltage' %percent_I_L)\n",
+ "print('Case(e): Percent motor starting torque = %.f percent of starting torque at full voltage' %percent_T_st)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Motor starting current at reduced voltage , I_sm = 151.2 A to the motor\n",
+ "Case(b): Motor line current neglecting tarnsformer exciting current and losses , I_L = 90.72 A drawn from the mains\n",
+ "Case(c): Motor starting torque at reduced voltage , T_s = 43.2 lb-ft\n",
+ "Case(d): Percent line current at starting = 36 percent of line current at full voltage\n",
+ "Case(e): Percent motor starting torque = 36 percent of starting torque at full voltage\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.17, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_o = 220.0 #Rated voltage(V)\n",
+ "P = 4.0 #Number of poles in SCIM\n",
+ "P_o = 10.0 #Rated power(hp)\n",
+ "T_o = 30.0 #Rated torque(lb-ft)\n",
+ "S_r = 1710.0 #Rated rotor speed(rpm)\n",
+ "V_n1 = 242.0 #Impressed stator voltage(V) Case(a)\n",
+ "V_n2 = 198.0 #Impressed stator voltage(V) Case(b)\n",
+ "f = 60.0 #Frequency(Hz) assumption\n",
+ "\n",
+ "#Calculation\n",
+ "S = (120*f)/P #Speed of the rotating magnetic field(rpm)\n",
+ "s_o = (S-S_r)/S #Rated slip\n",
+ "#Case(a)\n",
+ "T_n1 = T_o*(V_n1/V_o)**2 #New torque(lb-ft)\n",
+ "s_n1 = s_o*(T_o/T_n1) #New slip\n",
+ "S_rn1 = S*(1-s_n1) #New speed(rpm)\n",
+ "#Case(b)\n",
+ "T_n2 = T_o*(V_n2/V_o)**2 #New torque(lb-ft)\n",
+ "s_n2 = s_o*(T_o/T_n2) #New slip\n",
+ "S_rn2 = S*(1-s_n2) #New speed(rpm)\n",
+ "#Case(c)\n",
+ "percent_slip_a = (s_o-s_n1)/s_o*100 #Percent change in slip in part(a)\n",
+ "percent_speed_a = (S_rn1-S_r)/S_r*100 #Percent change in speed in part(a)\n",
+ "#Case(d)\n",
+ "percent_slip_b = (s_n2-s_o)/s_o*100 #Percent change in slip in part(b)\n",
+ "percent_speed_b = (S_r-S_rn2)/S_r*100 #Percent change in speed in part(b)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): New torque at an impressed stator voltage of 242 V , T_n = %.1f lb-ft' %T_n1)\n",
+ "print(' New slip , s_n = %.4f ' %s_n1)\n",
+ "print(' New speed , S_rn = %.f rpm' %S_rn1)\n",
+ "print('Case(b): New torque at an impressed stator voltage of 198 V , T_n = %.1f lb-ft' %T_n2)\n",
+ "print(' New slip , s_n = %.4f ' %s_n2)\n",
+ "print(' New speed , S_rn = %.f rpm' %S_rn2)\n",
+ "print('Case(c): Percentage change in slip due to voltage change in part a = %.1f percent decrease' %percent_slip_a)\n",
+ "print(' Percentage change in speed = %.2f percent increase' %percent_speed_a)\n",
+ "print('Case(d): Percentage change in slip due to voltage change in part b = %.1f percent increase' %percent_slip_b)\n",
+ "print(' Percentage change in speed = %.2f percent decrease' %percent_speed_b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): New torque at an impressed stator voltage of 242 V , T_n = 36.3 lb-ft\n",
+ " New slip , s_n = 0.0413 \n",
+ " New speed , S_rn = 1726 rpm\n",
+ "Case(b): New torque at an impressed stator voltage of 198 V , T_n = 24.3 lb-ft\n",
+ " New slip , s_n = 0.0617 \n",
+ " New speed , S_rn = 1689 rpm\n",
+ "Case(c): Percentage change in slip due to voltage change in part a = 17.4 percent decrease\n",
+ " Percentage change in speed = 0.91 percent increase\n",
+ "Case(d): Percentage change in slip due to voltage change in part b = 23.5 percent increase\n",
+ " Percentage change in speed = 1.23 percent decrease\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.18, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V_o = 220.0 #Rated voltage(V)\n",
+ "P = 4.0 #Number of poles in SCIM\n",
+ "P_o = 10.0 #Rated power(hp)\n",
+ "R_ro = 0.3 #Rotor resistance(ohm)\n",
+ "R_re = 1.7 #External rotor resistance(ohm)\n",
+ "T_o = 30.0 #Rated torque(lb-ft)\n",
+ "S_r = 1750.0 #Rated rotor speed(rpm)\n",
+ "V_n1 = 240.0 #Impressed stator voltage(V) Case(a)\n",
+ "V_n2 = 208.0 #Impressed stator voltage(V) Case(b)\n",
+ "V_n3 = 110.0 #Impressed stator voltage(V) Case(c)\n",
+ "f = 60.0 #Frequency(Hz) assumption\n",
+ "\n",
+ "#Calculation\n",
+ "S = (120*f)/P #Speed of the rotating magnetic field(rpm)\n",
+ "s_o = (S-S_r)/S #Rated slip\n",
+ "R_rn = R_ro+R_re #Resistance(ohm)\n",
+ "#Case(a)\n",
+ "T_n1 = T_o*(V_n1/V_o)**2 #New torque(lb-ft)\n",
+ "s_n1 = s_o*(T_o/T_n1)*(R_rn/R_ro) #New slip\n",
+ "S_rn1 = S*(1-s_n1) #New speed(rpm)\n",
+ "#Case(b)\n",
+ "T_n2 = T_o*(V_n2/V_o)**2 #New torque(lb-ft)\n",
+ "s_n2 = s_o*(T_o/T_n2)*(R_rn/R_ro) #New slip\n",
+ "S_rn2 = S*(1-s_n2) #New speed(rpm)\n",
+ "#Case(c)\n",
+ "T_n3 = T_o*(V_n3/V_o)**2 #New torque(lb-ft)\n",
+ "s_n3 = s_o*(T_o/T_n3)*(R_rn/R_ro) #New slip\n",
+ "S_rn3 = S*(1-s_n3) #New speed(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): New torque at an impressed stator voltage of 240 V , T_n = %.1f lb-ft' %T_n1)\n",
+ "print(' New slip , s_n = %.4f ' %s_n1)\n",
+ "print(' New speed , S_rn = %.f rpm' %S_rn1)\n",
+ "print('Case(b): New torque at an impressed stator voltage of 208 V , T_n = %.2f lb-ft' %T_n2)\n",
+ "print(' New slip , s_n = %.3f ' %s_n2)\n",
+ "print(' New speed , S_rn = %.f rpm' %S_rn2)\n",
+ "print('Case(c): New torque at an impressed stator voltage of 110 V , T_n = %.1f lb-ft' %T_n3)\n",
+ "print(' New slip , s_n = %.3f ' %s_n3)\n",
+ "print(' New speed , S_rn = %.f rpm' %S_rn3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): New torque at an impressed stator voltage of 240 V , T_n = 35.7 lb-ft\n",
+ " New slip , s_n = 0.1556 \n",
+ " New speed , S_rn = 1520 rpm\n",
+ "Case(b): New torque at an impressed stator voltage of 208 V , T_n = 26.82 lb-ft\n",
+ " New slip , s_n = 0.207 \n",
+ " New speed , S_rn = 1427 rpm\n",
+ "Case(c): New torque at an impressed stator voltage of 110 V , T_n = 7.5 lb-ft\n",
+ " New slip , s_n = 0.741 \n",
+ " New speed , S_rn = 467 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.19, Page number 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "P = 8.0 #Number of poles in WRIM\n",
+ "f = 60.0 #Operating frequency of the WRIM(Hz)\n",
+ "S_con_a1 = 1800.0 #Speed of the convertor(rpm)\n",
+ "S_con_a2 = 450.0 #Speed of the convertor(rpm)\n",
+ "f_con_b1 = 25.0 #Frequency of an induction converter(Hz)\n",
+ "f_con_b2 = 400.0 #Frequency of an induction converter(Hz)\n",
+ "f_con_b3 = 120.0 #Frequency of an induction converter(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "S = (120*f)/P #Speed of the rotating magnetic field(rpm)\n",
+ "#Case(a)\n",
+ "f_con_a1 = f*(1+S_con_a1/S) #Frequency of an induction converter(Hz)\n",
+ "f_con_a2 = f*(1-S_con_a2/S) #Frequency of an induction converter(Hz)\n",
+ "#Case(b)\n",
+ "S_con_b1 = (-1+f_con_b1/f)*S #Speed of the converter(rpm)\n",
+ "S_con_b2 = (-1+f_con_b2/f)*S #Speed of the converter(rpm)\n",
+ "S_con_b3 = (-1+f_con_b3/f)*S #Speed of the converter(rpm)\n",
+ "\n",
+ "#Result\n",
+ "print('Case(a): Frequency , f_con = %.f Hz for %d rpm in opposite direction' %(f_con_a1,S_con_a1))\n",
+ "print(' Frequency , f_con = %.f Hz for %d rpm in same direction' %(f_con_a2,S_con_a2))\n",
+ "print('Case(b)1: Speed and direction to obtain 25 Hz , S_con = %.f rpm, or %.f rpm in same direction' %(S_con_b1,abs(S_con_b1)))\n",
+ "print(' 2: Speed and direction to obtain 400 Hz , S_con = %.f rpm in opposite direction' %S_con_b2)\n",
+ "print(' 3: Speed and direction to obtain 120 Hz , S_con = %.f rpm in opposite direction to rotating stator flux' %S_con_b3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case(a): Frequency , f_con = 180 Hz for 1800 rpm in opposite direction\n",
+ " Frequency , f_con = 30 Hz for 450 rpm in same direction\n",
+ "Case(b)1: Speed and direction to obtain 25 Hz , S_con = -525 rpm, or 525 rpm in same direction\n",
+ " 2: Speed and direction to obtain 400 Hz , S_con = 5100 rpm in opposite direction\n",
+ " 3: Speed and direction to obtain 120 Hz , S_con = 900 rpm in opposite direction to rotating stator flux\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/README.txt b/Electric_Machinery_and_Transformers/README.txt
new file mode 100755
index 00000000..149b291e
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/README.txt
@@ -0,0 +1,10 @@
+Contributed By: KAVAN A B
+Course: be
+College/Institute/Organization: SRI JAYACHAMARAJENDRA COLLEGE OF ENGINEERING
+Department/Designation: ELECTRICAL & ELECTRONICS
+Book Title: Electric Machinery and Transformers
+Author: Irving Kosow
+Publisher: Pearson Education, New Delhi
+Year of publication: 2007
+Isbn: 978-81-317-1127-9
+Edition: Second Edition \ No newline at end of file
diff --git a/Electric_Machinery_and_Transformers/screenshots/1.png b/Electric_Machinery_and_Transformers/screenshots/1.png
new file mode 100755
index 00000000..343f548e
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/screenshots/1.png
Binary files differ
diff --git a/Electric_Machinery_and_Transformers/screenshots/2.png b/Electric_Machinery_and_Transformers/screenshots/2.png
new file mode 100755
index 00000000..9819d01c
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/screenshots/2.png
Binary files differ
diff --git a/Electric_Machinery_and_Transformers/screenshots/3.png b/Electric_Machinery_and_Transformers/screenshots/3.png
new file mode 100755
index 00000000..1a8a0721
--- /dev/null
+++ b/Electric_Machinery_and_Transformers/screenshots/3.png
Binary files differ
diff --git a/Electrical_Machines_II/chapter_1.ipynb b/Electrical_Machines_II/chapter_1.ipynb
new file mode 100755
index 00000000..0ea2a442
--- /dev/null
+++ b/Electrical_Machines_II/chapter_1.ipynb
@@ -0,0 +1,1297 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e4feee2966703522c4e009f16556422b345ba2813bb92ad5cc7b8ab8058895bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Synchronous Machines\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "slots=24;#no. of slotes\n",
+ "NoOfPhase=3;#no of phase\n",
+ "MotorSpeed=1450;#in rpm\n",
+ "N=1500;#Synchonous Speed in rpm\n",
+ "f=50;#in Hz\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"As the winding is in single layer, each slot contains one coil slide only.\";\n",
+ "CoilSlidePerSlot=1;#coil slide per slot\n",
+ "CoilSlidePerCoil=2;#coil slide per Coil\n",
+ "TotalCoils=slots*CoilSlidePerSlot/CoilSlidePerCoil;#no. of coils\n",
+ "print \"Total no. of Coils : \",TotalCoils;\n",
+ "P=120*f/N;#no. of poles\n",
+ "print \"No. of poles : \",P;\n",
+ "PolesPitch=slots/P;#unitless\n",
+ "print \"Poles Pitch = \",PolesPitch;\n",
+ "print \"In case of single layer winding, the pole ppitch is generally taken in odd numbers only\"\n",
+ "print \"let pole pitch = 5(for short pitch winding)\";\n",
+ "PolesPitch=5;#for short pitch winding\n",
+ "print \"Coil Span or coil through = 1-6\";\n",
+ "CoilsPerPolePerPhase=TotalCoils/(P*NoOfPhase);#No. of Coils/Pole/Phase\n",
+ "print \"No. of Coils/Pole/Phase = \",CoilsPerPolePerPhase;\n",
+ "pair_of_poles=2;#no. of pair of poles\n",
+ "TotalElectricalDegree=360*pair_of_poles;#in degree \n",
+ "ElectricalDegreesPerSlot=TotalElectricalDegree/slots;#in degree electrical\n",
+ "print \"Electrical Degrees/Slot = \",ElectricalDegreesPerSlot;\n",
+ "Slots_required=120/ElectricalDegreesPerSlot;#No. of slotes required for proper phase displacement\n",
+ "print \"No. of slotes required for proper phase displacement = \",Slots_required;\n",
+ "print \"Winding Table is as follows :\";\n",
+ "print \"Coil No. Connection Lead from Coil Span Phase and Group No.\";\n",
+ "print \" 1 A1 1-6 A1\";\n",
+ "print \" 2 3-8 C4\";\n",
+ "print \" 3 B1 5-10 B1\";\n",
+ "print \" 4 7-12 A2\";\n",
+ "print \" 5 C1 9-14 C1\";\n",
+ "print \" 6 11-16 B2\";\n",
+ "print \" 7 13-18 A3\";\n",
+ "print \" 8 15-20 C2\";\n",
+ "print \" 9 17-22 B3\";\n",
+ "print \" 10 19-24 A4\";\n",
+ "print \" 11 21-2 C3\";\n",
+ "print \" 12 23-4 B4\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "As the winding is in single layer, each slot contains one coil slide only.\n",
+ "Total no. of Coils : 12\n",
+ "No. of poles : 4\n",
+ "Poles Pitch = 6\n",
+ "In case of single layer winding, the pole ppitch is generally taken in odd numbers only\n",
+ "let pole pitch = 5(for short pitch winding)\n",
+ "Coil Span or coil through = 1-6\n",
+ "No. of Coils/Pole/Phase = 1\n",
+ "Electrical Degrees/Slot = 30\n",
+ "No. of slotes required for proper phase displacement = 4\n",
+ "Winding Table is as follows :\n",
+ "Coil No. Connection Lead from Coil Span Phase and Group No.\n",
+ " 1 A1 1-6 A1\n",
+ " 2 3-8 C4\n",
+ " 3 B1 5-10 B1\n",
+ " 4 7-12 A2\n",
+ " 5 C1 9-14 C1\n",
+ " 6 11-16 B2\n",
+ " 7 13-18 A3\n",
+ " 8 15-20 C2\n",
+ " 9 17-22 B3\n",
+ " 10 19-24 A4\n",
+ " 11 21-2 C3\n",
+ " 12 23-4 B4\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "slots=24;#no. of slotes\n",
+ "P=4;#no. of poles\n",
+ "CoilPitch=5;#unitless\n",
+ "NoOfPhase=3;#no of phase\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"As the winding is in double layer, each slot contains 2 coils per slide.\";\n",
+ "CoilSlidePerSlot=2;#coil slide per slot\n",
+ "CoilSlidePerCoil=2;#coil slide per Coil\n",
+ "TotalCoils=slots*CoilSlidePerSlot/CoilSlidePerCoil;#no. of coils\n",
+ "print \"Total no. of Coils : \",TotalCoils;\n",
+ "PolesPitch=slots/P;#unitless\n",
+ "print \"Pole Pitch = \",PolesPitch;\n",
+ "CoilsPerPolePerPhase=TotalCoils/(P*NoOfPhase);#No. of Coils/Pole/Phase\n",
+ "print \"No. of Coils/Pole/Phase = \",CoilsPerPolePerPhase;\n",
+ "pair_of_poles=2;#no. of pair of poles\n",
+ "TotalElectricalDegree=360*pair_of_poles;#in degree \n",
+ "ElectricalDegreesPerSlot=TotalElectricalDegree/slots;#in degree electrical\n",
+ "print \"Electrical Degrees/Slot = \",ElectricalDegreesPerSlot;\n",
+ "Slots_required=120/ElectricalDegreesPerSlot;#No. of slotes required for proper phase displacement\n",
+ "print \"No. of slots required for proper phase displacement = \",Slots_required;\n",
+ "print \"ie. Phase A1 is brought out from slot no. = 1\";\n",
+ "print \"Phase B1 at slot no. = 1+4 = 5\";\n",
+ "print \"Phase C1 at slot no. = 5+4 = 9\";\n",
+ "print \"Col Connection - end to start to start\";\n",
+ "print \"Winding Table is as follows :\";\n",
+ "print \"Coil No. Connection Lead from Coil Span Phase and Group No.\";\n",
+ "print \" 1 A1 1-6 A1\";\n",
+ "print \" 2 2-7 \";\n",
+ "print \" 3 3-8 C4\";\n",
+ "print \" 4 4-9 \";\n",
+ "print \" 5 B1 5-10 B1\";\n",
+ "print \" 6 6-11 \";\n",
+ "print \" 7 7-12 A2\";\n",
+ "print \" 8 8-13 \";\n",
+ "print \" 9 C1 9-14 C1\";\n",
+ "print \" 10 10-15 \";\n",
+ "print \" 11 11-16 B2\";\n",
+ "print \" 12 12-17 \";\n",
+ "print \" 13 13-18 A3\";\n",
+ "print \" 14 14-19 \";\n",
+ "print \" 15 15-20 C2\";\n",
+ "print \" 16 16-21 \";\n",
+ "print \" 17 17-22 B3\";\n",
+ "print \" 18 18-23 \";\n",
+ "print \" 19 19-24 A4\";\n",
+ "print \" 20 20-1 \";\n",
+ "print \" 21 21-2 C3\";\n",
+ "print \" 22 22-3 \";\n",
+ "print \" 23 23-4 \";\n",
+ "print \" 24 24-5 B4\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "As the winding is in double layer, each slot contains 2 coils per slide.\n",
+ "Total no. of Coils : 24\n",
+ "Pole Pitch = 6\n",
+ "No. of Coils/Pole/Phase = 2\n",
+ "Electrical Degrees/Slot = 30\n",
+ "No. of slots required for proper phase displacement = 4\n",
+ "ie. Phase A1 is brought out from slot no. = 1\n",
+ "Phase B1 at slot no. = 1+4 = 5\n",
+ "Phase C1 at slot no. = 5+4 = 9\n",
+ "Col Connection - end to start to start\n",
+ "Winding Table is as follows :\n",
+ "Coil No. Connection Lead from Coil Span Phase and Group No.\n",
+ " 1 A1 1-6 A1\n",
+ " 2 2-7 \n",
+ " 3 3-8 C4\n",
+ " 4 4-9 \n",
+ " 5 B1 5-10 B1\n",
+ " 6 6-11 \n",
+ " 7 7-12 A2\n",
+ " 8 8-13 \n",
+ " 9 C1 9-14 C1\n",
+ " 10 10-15 \n",
+ " 11 11-16 B2\n",
+ " 12 12-17 \n",
+ " 13 13-18 A3\n",
+ " 14 14-19 \n",
+ " 15 15-20 C2\n",
+ " 16 16-21 \n",
+ " 17 17-22 B3\n",
+ " 18 18-23 \n",
+ " 19 19-24 A4\n",
+ " 20 20-1 \n",
+ " 21 21-2 C3\n",
+ " 22 22-3 \n",
+ " 23 23-4 \n",
+ " 24 24-5 B4\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Page 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#given data\n",
+ "StatorSlots=36;#No. of stator slots\n",
+ "Poles=4;#No. of poles\n",
+ "#coilSpan=1:8;#unitless\n",
+ "\n",
+ "#Calculations&Results\n",
+ "SlotsPerPole=StatorSlots/Poles;# no. of slots per pole\n",
+ "print \"Slots/Pole = \",SlotsPerPole;\n",
+ "print \"Here the coil span falls short by, \",((2./9)*180),\" Degree\";\n",
+ "alfa=40*pi/180;#short pitch angle in degree\n",
+ "Kp=cos(alfa/2);#Coil span Factor\n",
+ "print \"Pitch Factor or coil span factor : \",round(Kp,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slots/Pole = 9\n",
+ "Here the coil span falls short by, 40.0 Degree\n",
+ "Pitch Factor or coil span factor : 0.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#given data\n",
+ "NoOfPhase=3;#no of phase\n",
+ "P=16;#No. of pole alternator\n",
+ "Slots=144;#No. of slots\n",
+ "Conductors=10;#per slot\n",
+ "fi=0.03;#in Weber\n",
+ "N=375;#machine speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "f=P*N/120;#in Hz\n",
+ "SlotsPerPole=Slots/P;#unitless\n",
+ "m=Slots/(P*NoOfPhase);#unitless\n",
+ "Beta=180/(SlotsPerPole);#in Degree\n",
+ "Kd=sin(m*Beta/2*pi/180)/(m*sin(Beta/2*pi/180));#unitless\n",
+ "TotalConductors=Conductors*Slots;#no. of conductors\n",
+ "TotalConductorsPerPhase=Conductors*Slots/NoOfPhase;#no. of conductors/phase\n",
+ "TurnsPerPhase=TotalConductorsPerPhase/2;#No. of turns per phase\n",
+ "EMFPerPhase=4.44*Kd*fi*f*TurnsPerPhase;#in Volt\n",
+ "LineVoltage=sqrt(3)*EMFPerPhase;#in Volt\n",
+ "\n",
+ "#Results\n",
+ "print \"Frequency in Hz : \",f;\n",
+ "print \"Phase Electromotive force in Volt : \",round(EMFPerPhase,1);\n",
+ "print \"Line Electromotive force in Volt : \",round(LineVoltage,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency in Hz : 50\n",
+ "Phase Electromotive force in Volt : 1534.1\n",
+ "Line Electromotive force in Volt : 2657.202\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "NoOfPhase=3;#no of phase\n",
+ "SlotsPerPhase=3;#o. of slots\n",
+ "\n",
+ "#Calculations&Results\n",
+ "m=SlotsPerPhase;#no. of slots\n",
+ "SlotsPerPolePerPhase=SlotsPerPhase*NoOfPhase;#unitless\n",
+ "Beta=180./SlotsPerPolePerPhase;#in degree\n",
+ "print \"The phase difference between the induced emf in two coils lying in adjacent slots = \",(Beta),\" degree\";\n",
+ "Kb=sin((m*Beta*pi)/(2*180))/(m*sin((Beta*pi)/(2*180)));#unitless\n",
+ "print \"The breadth factor : \",round(Kb,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The phase difference between the induced emf in two coils lying in adjacent slots = 20.0 degree\n",
+ "The breadth factor : 0.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "StatorSlots=24#No. of stator slots\n",
+ "Poles=4;#No. of poles\n",
+ "SlotsPerPole=StatorSlots/Poles;# no. of slots per pole\n",
+ "#coilSpan=1:6;#unitless\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"If the sides of the coil are placed in slots 1 and 7, then it is full pitched, \\nIf the coil slides are placed\" \\\n",
+ " + \" in 1 and 6 then it is short pitched and the distance equal to 5/6th of pole-pitch.\";\n",
+ "print \"Since it falls short by 1/6th of the pole-pitch, hence it is short by :\"\n",
+ "theta=180/SlotsPerPole;#in Degree\n",
+ "print (theta),\" Degree.\"\n",
+ "Kp=cos(theta/2*pi/180);#unitless\n",
+ "print \"Pitch-factor Kp : \",round(Kp,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the sides of the coil are placed in slots 1 and 7, then it is full pitched, \n",
+ "If the coil slides are placed in 1 and 6 then it is short pitched and the distance equal to 5/6th of pole-pitch.\n",
+ "Since it falls short by 1/6th of the pole-pitch, hence it is short by :\n",
+ "30 Degree.\n",
+ "Pitch-factor Kp : 0.9659\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "NoOfPhase=3;#no of phase\n",
+ "Eph=3300/sqrt(3);#in Volts\n",
+ "f=50;#in Hz\n",
+ "Poles=12;#No. of poles\n",
+ "StatorSlots=144#No. of stator slots\n",
+ "\n",
+ "#Calculations\n",
+ "SlotsPerPhase=StatorSlots/NoOfPhase;#no. of slots/phase\n",
+ "Conductors=5;#per slot\n",
+ "ConductorsPerphase=SlotsPerPhase*Conductors;#Conductors/Phase\n",
+ "S=ConductorsPerphase;#Conductors/phase\n",
+ "SlotsPerPolePerPhase=SlotsPerPhase/Poles;#no. of slots/phase\n",
+ "Kf=1.11;#Form Factor\n",
+ "Kb=0.96;#Breadth Factor\n",
+ "Kp=1;#For concentric winding\n",
+ "fi=Eph/(2*Kf*Kb*Kp*S*f);#in weber\n",
+ "\n",
+ "#Result\n",
+ "print \"The Flux per pole in weber : \",round(fi,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Flux per pole in weber : 0.0745\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "Phase=3;#no. of phase\n",
+ "f=50;#in Hz\n",
+ "P=16;#No. of pole alternator\n",
+ "Slots=144.;#No. of slots\n",
+ "conductors=10;#conductors per slot\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fi=2.48*10**-2;#in weber\n",
+ "n=Slots/P;#No. of slots/pole\n",
+ "Zr=Slots*conductors/Phase;#No. of conductors/Phase\n",
+ "T=Zr/2;#N. of turns/phase\n",
+ "Beta=180/n;#Angular displacement between slots in degree\n",
+ "m=n/Phase;#No. of slots/pole/Phase\n",
+ "Kd=sin(m*Beta/2*pi/180)/(m*sin(Beta/2*pi/180));#Distribution factor :unitless \n",
+ "print \"The coil span falls short of 2 slots i.e. \",(2*180/9),\" degree.\";\n",
+ "alfa=40;#short pitch angle in degree\n",
+ "Kp=(cos(alfa/2*pi/180));#Unitless\n",
+ "#Formula : f=P*N/120;#in Hz\n",
+ "N=120*f/P;#in rpm\n",
+ "Ep=4.44*Kd*Kp*fi*f*T;#in Volts\n",
+ "LineVoltage=sqrt(3)*Ep;#in Volts\n",
+ "print \"The speed is \",(N),\" in rpm\";\n",
+ "print \"The line emf is \",round(LineVoltage,2),\" Volts\";\n",
+ "#Note : Answer in the book is not accurate for last part due to rounding off errors"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The coil span falls short of 2 slots i.e. 40 degree.\n",
+ "The speed is 375 in rpm\n",
+ "The line emf is 2064.15 Volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 109
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9, Page 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "RatedPower=100;#in KVA\n",
+ "RatedPower=100*1000;#in VA\n",
+ "VL=1040;#in Volt\n",
+ "Phase=3;#Machine phase\n",
+ "If=40;#in Ampere\n",
+ "Isc=200;#in Ampere\n",
+ "EL=1040;#in Volt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Eph=EL/sqrt(3);#in Volt\n",
+ "Zs=Eph/Isc;#in Ohm\n",
+ "Rs=0.2;#in Ohm\n",
+ "Xs=sqrt(Zs**2-Rs**2);#in Ohm\n",
+ "IL=19.25;#in Ampere\n",
+ "V=3000/sqrt(3);#in Volt\n",
+ "#At 0.8 power factor lagging\n",
+ "IRa=IL*0.2;#in Volt\n",
+ "IXs=IL*Xs;#in Volt\n",
+ "Vsin_fi=V*0.6;#in Volt\n",
+ "Vcos_fi=V*0.8;#in Volt\n",
+ "Eo=sqrt((Vcos_fi+IRa)**2+(Vsin_fi+IXs)**2);#in Volts\n",
+ "Regulation=((Eo-V)/V)*100;#in %\n",
+ "print \"Full load percentage regulation at a power factor of 0.8 lagging : \",round(Regulation,1);\n",
+ "\n",
+ "#At 0.8 power factor leading\n",
+ "Eo=sqrt((Vcos_fi+IRa)**2+(Vsin_fi-IXs)**2);#in Volts\n",
+ "Regulation=((Eo-V)/V)*100;#in %\n",
+ "print \"Full load percentage regulation at a power factor of 0.8 leading : \",round(Regulation,2);\n",
+ "print \"Negative regulation due to leading power factor.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load percentage regulation at a power factor of 0.8 lagging : 2.2\n",
+ "Full load percentage regulation at a power factor of 0.8 leading : -1.78\n",
+ "Negative regulation due to leading power factor.\n"
+ ]
+ }
+ ],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10, Page 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "RatedPower=50;#in KVA\n",
+ "RatedPower=50*1000;#in VA\n",
+ "VL=173;#in Volts\n",
+ "Ra=0.1;#in Ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "VP=VL/sqrt(3);#in Volts\n",
+ "print \"Some exciting curent on short circuit produces a current of 100 A.\";\n",
+ "OC_PhaseVoltage=100;#in Volt\n",
+ "SC_Current=100;#in Ampere\n",
+ "Zs=OC_PhaseVoltage/SC_Current;#n ohm\n",
+ "Xs=sqrt(Zs**2-Ra**2);#in Ohm\n",
+ "print \"Impedence of the alternator in Ohm : \",round(Xs,2);\n",
+ "V=400;#in Volts\n",
+ "I_FL=RatedPower/(sqrt(3)*V);#in Ampere\n",
+ "V=400/sqrt(3);#in Volts\n",
+ "Eo=sqrt((V+I_FL*Ra)**2+(I_FL*Xs)**2);#in Volts\n",
+ "Regulation=(Eo-V)*100/V;#in %\n",
+ "print \"Regulation at U.P.F. in % :\",round(Regulation,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Some exciting curent on short circuit produces a current of 100 A.\n",
+ "Impedence of the alternator in Ohm : 0.99\n",
+ "Regulation at U.P.F. in % : 7.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.11, Page 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=500;#in KVA\n",
+ "OutputPower=500*1000;#in VA\n",
+ "VL=3300;#in Volts\n",
+ "Ra=0.3;#in Ohm\n",
+ "Xs=4;#in Ohm\n",
+ "PF=0.8;#Lagging Power factor\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "IL=OutputPower/(sqrt(3)*VL);#in Ampere\n",
+ "print \"For a star connected alternator, line current is equal to phase current. Therefore Ia=IL\";\n",
+ "Ia=IL;#in Ampere\n",
+ "#PF=cosd(fi)=0.8 and sind(fi)=0.6\n",
+ "cos_fi=0.8;#Power factor\n",
+ "sin_fi=0.6;#Unitless\n",
+ "VPerPhase=VL/sqrt(3);#in Volts\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);#in Volts/Phase\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "print \"Voltage Regulation at Full Load in % :\",round(Regulation,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a star connected alternator, line current is equal to phase current. Therefore Ia=IL\n",
+ "Voltage Regulation at Full Load in % : 12.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.12, Page 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "V=2000;#in Volt\n",
+ "Ia=100;#in Ampere\n",
+ "OC_Voltage=500;#in Volt\n",
+ "SC_Current=100;#in Ampere\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Zs=OC_Voltage/SC_Current;#in ohm\n",
+ "Ra=0.8;#in Ohm\n",
+ "Xs=sqrt(Zs**2-Ra**2);#in Ohm\n",
+ "#formula : Induced EMF, E=sqrt((V*cos_fi+Ia*Ra)^2+(V*sin_fi+Ia*Xs)^2)\n",
+ "#Part (a) : at unity pf\n",
+ "cos_fi=1;#Unitless\n",
+ "sin_fi=0;#Unitless\n",
+ "E=sqrt((V*cos_fi+Ia*Ra)**2+(V*sin_fi+Ia*Xs)**2)\n",
+ "Regulation=(E-V)*100/V;#in %\n",
+ "print \"Regulation at U.P.F. in % :\",round(Regulation,2);\n",
+ "\n",
+ "#Part (b) : at 0.71 pf lagging\n",
+ "cos_fi=0.71;#Unitless\n",
+ "sin_fi=0.704;#Unitless\n",
+ "E=sqrt((V*cos_fi+Ia*Ra)**2+(V*sin_fi+Ia*Xs)**2)\n",
+ "Regulation=(E-V)*100/V;#in %\n",
+ "print \"Regulation at 0.71 pf lagging in % :\",round(Regulation,2);\n",
+ "\n",
+ "#Part (c) : at 0.8 pf leading\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((V*cos_fi+Ia*Ra)**2+(V*sin_fi-Ia*Xs)**2)\n",
+ "Regulation=(E-V)*100/V;#in %\n",
+ "print \"Regulation at 0.8 pf leading in % :\",round(Regulation,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at U.P.F. in % : 6.89\n",
+ "Regulation at 0.71 pf lagging in % : 21.1\n",
+ "Regulation at 0.8 pf leading in % : -8.88\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.13, Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "Ia=60;#in Ampere\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"The value of synchronous impedence at this excitation :\" ;\n",
+ "OC_Voltage=900;#in Volt\n",
+ "SC_Current=150;#in Ampere\n",
+ "Zs=OC_Voltage/SC_Current;#in ohm\n",
+ "print \"Zs equals to \",(Zs),\" Ohm\";\n",
+ "print \"Internal Voltage drop when tthe load current is 60A=Ia*Zs=\",(Ia*Zs),\" Volts\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of synchronous impedence at this excitation :\n",
+ "Zs equals to 6 Ohm\n",
+ "Internal Voltage drop when tthe load current is 60A=Ia*Zs= 360 Volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.14, Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "V=6600;#in Volts\n",
+ "OutputPower=2000;#in KVA\n",
+ "\n",
+ "#Calculations\n",
+ "OutputPower=2000*1000;#in VA\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "IL=OutputPower/(sqrt(3)*V);#in Ampere\n",
+ "Ia=IL;#in Ampere\n",
+ "Ra=0.4;#in Ohm\n",
+ "Xs=4.5;#in Ohm\n",
+ "#PF=cosd(fi)=0.8 and sind(fi)=0.6\n",
+ "cos_fi=0.8;#Power factor\n",
+ "sin_fi=0.6;#Unitless\n",
+ "VPerPhase=V/sqrt(3);#in Volts\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);#in Volts/Phase\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "\n",
+ "#Result\n",
+ "print \"Percentage Change in Terminal Voltage :\",round(Regulation,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Change in Terminal Voltage : 14.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 119
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.15, Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=1200;#in KVA\n",
+ "OutputPower=1200*1000;#in VA\n",
+ "V=3300;#in Volt\n",
+ "Ra=0.25;#in Ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "IL=OutputPower/(sqrt(3)*V);#in Ampere\n",
+ "Ia=IL;#in Ampere\n",
+ "VPerPhase=V/sqrt(3);#in Volts\n",
+ "OC_Voltage=1100;#in Volt\n",
+ "SC_Current=200;#in Ampere\n",
+ "Zs=OC_Voltage/(sqrt(3)*SC_Current);#in ohmRa\n",
+ "Xs=sqrt(Zs**2-Ra**2);#in Ohm\n",
+ "#formula : Induced EMF, E=sqrt((V*cos_fi+Ia*Ra)^2+(V*sin_fi+Ia*Xs)^2)\n",
+ "\n",
+ "#Part (a) : For lagging pf load\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "print \"Regulation at U.P.F. in % :\",round(Regulation,2);\n",
+ "\n",
+ "#Part (b) : For leading pf load\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi-Ia*Xs)**2)\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "print \"Regulation at 0.71 pf lagging in % :\",round(Regulation,2);\n",
+ "#Note: For leading power factor load, the regulation s negative. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at U.P.F. in % : 25.9\n",
+ "Regulation at 0.71 pf lagging in % : -13.52\n"
+ ]
+ }
+ ],
+ "prompt_number": 120
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.16, Page 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=1500;#in KVA\n",
+ "OutputPower=1500*1000;#in VA\n",
+ "V=6600;#in Volt\n",
+ "Ra=0.4;#in Ohm\n",
+ "Xs=6;#in Ohm per phase\n",
+ "pf=0.8;#lagging power factor\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "Ia=OutputPower/(sqrt(3)*V);#in Ampere\n",
+ "VPerPhase=V/sqrt(3);#in Volts\n",
+ "#formula : Induced EMF, E=sqrt((V*cos_fi+Ia*Ra)^2+(V*sin_fi+Ia*Xs)^2)\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);#in volt\n",
+ "print \"Induced emf in volt : \",round(E,2);\n",
+ "print \"As excitation remains constant, E at 4364 volt remains constant.\";\n",
+ "E=4364;#in Volt\n",
+ "V=4743;#in Volts\n",
+ "TerminalVoltage=sqrt(3)*V;#in Volts\n",
+ "print \"Terminal voltage line to line in Volts : \",round(TerminalVoltage);\n",
+ "#Note ans of 1st part is wrong in the books"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced emf in volt : 4366.07\n",
+ "As excitation remains constant, E at 4364 volt remains constant.\n",
+ "Terminal voltage line to line in Volts : 8215.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 123
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.17, Page 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=2500;#in KVA\n",
+ "OutputPower=2500*1000;#in VA\n",
+ "V=6600;#in Volt\n",
+ " \n",
+ "#Calculations\n",
+ "#For first load i.e. Lighting load : \n",
+ "KW1=2500;#in KWatts\n",
+ "KVAR1=0;#Kwatts\n",
+ "#For second load i.e. Motor load : \n",
+ "KW2=5000;#in KWatts\n",
+ "cos_fi=0.707;#unitless\n",
+ "sin_fi=0.707;#unitless\n",
+ "KVAR2=KW2*sin_fi/cos_fi;#Kwatts\n",
+ "#For total load\n",
+ "TotalKW=KW1+KW2;#in KWatts\n",
+ "TotalKVAR=KVAR1+KVAR2;#Kwatts \n",
+ "#For first Machine\n",
+ "KWm=4000;#in KWatts\n",
+ "cos_fi=0.8;#unitless\n",
+ "sin_fi=0.6;#unitless\n",
+ "KVARm=KWm*sin_fi/cos_fi;#Kwatts\n",
+ "#so, second machine will be supplying\n",
+ "KW=TotalKW-KWm;#in Kwatts\n",
+ "print \"KW output of second machine : \",KW;\n",
+ "KVAR=TotalKVAR-KVARm;#in KWatts\n",
+ "tan_fi=KVAR/KW;#unitless\n",
+ "fi=atan(tan_fi);#ib degree\n",
+ "#Power factor of other machine\n",
+ "pf=cos(fi);#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of other machine : \",round(pf,4),\" lagging\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KW output of second machine : 3500\n",
+ "Power factor of other machine : 0.8682 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.18, Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "\n",
+ "#Load1 : \n",
+ "KW1=500;#in KWatts\n",
+ "KVAR1=0;#Kwatts\n",
+ "\n",
+ "#Load2 : \n",
+ "KW2=1000;#in KWatts\n",
+ "pf=0.9;#lagging\n",
+ "cos_fi=0.9;#unitless\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR2=KW2*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "#Load3 : \n",
+ "KW3=800;#in KWatts\n",
+ "pf=0.8;#lagging\n",
+ "cos_fi=0.8;#unitless\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR3=KW3*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "#Load4 : \n",
+ "KW4=500;#in KWatts\n",
+ "pf=0.9;#lagging\n",
+ "cos_fi=0.9;#unitless\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR4=-KW4*sin_fi/cos_fi;#Kwatts\n",
+ "#TOtalKW and TotalKVAR\n",
+ "TotalKW=KW1+KW2+KW3+KW4;#in KWatts\n",
+ "TotalKVAR=KVAR1+KVAR2+KVAR3+KVAR4;#in KWAtts\n",
+ "#For the first Machine :\n",
+ "KW=1500;#n Kwatts\n",
+ "cos_fi=0.95;#unitless\n",
+ "sin_fi=0.3123;#unitless\n",
+ "KVAR=KW*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "KW1=TotalKW-KW;#in KWatts\n",
+ "KVAR1=TotalKVAR-KVAR;#in Volts\n",
+ "print \"KW supplied by other machine : \",(TotalKW-KW);\n",
+ "print \"KVAR supplied by other machine : \",round(TotalKVAR-KVAR); #answer differs due to rounding off the digits\n",
+ "tan_fi=KVAR1/KW1;#unitless\n",
+ "#fi=atand(tan_fi);#in degree\n",
+ "cos_fi=cos(atan(tan_fi));#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of the other machine : \",round(cos_fi,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KW supplied by other machine : 1300\n",
+ "KVAR supplied by other machine : 349.0\n",
+ "Power factor of the other machine : 0.966\n"
+ ]
+ }
+ ],
+ "prompt_number": 129
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.19, Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "\n",
+ "#Lighting Load : \n",
+ "MW1=20;#load in Mwatts\n",
+ "KW1=MW1*1000;#in KWatts\n",
+ "KVAR1=0;#Kwatts\n",
+ "\n",
+ "#Motor Load : \n",
+ "MW2=40;#load in Mwatts\n",
+ "KW2=MW2*1000;#in KWatts\n",
+ "pf=0.8;#unitless\n",
+ "cos_fi=0.8\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR2=KW2*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "#For Total Load : \n",
+ "TotalKW=KW1+KW2;#load in Mwatts\n",
+ "TotalKVAR=KVAR1+KVAR2;#in KWatts\n",
+ "#For first machine : \n",
+ "MWm=32;#load in Mwatts\n",
+ "KWm=MWm*1000;#in KWatts\n",
+ "cos_fi=0.866;#unitless\n",
+ "fi=acos(cos_fi);\n",
+ "tan_fi=tan(fi);#unitless\n",
+ "KVARm=KWm*tan_fi;#in KWatts\n",
+ "#so, load supplied by the second machine\n",
+ "KW2=TotalKW-KWm;#in Kwatts\n",
+ "print \"Load of other machine,KW : \",(KW2);\n",
+ "KVAR2=TotalKVAR-KVARm;#in Kwatts\n",
+ "tan_fi=KVAR2/KW2;#unitless\n",
+ "fi=atan(tan_fi);#in degree\n",
+ "cos_fi=cos(atan(tan_fi));#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of the other machine : \",round(cos_fi,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load of other machine,KW : 28000\n",
+ "Power factor of the other machine : 0.925\n"
+ ]
+ }
+ ],
+ "prompt_number": 131
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.20, Page 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "cos_fi=0.8;#unitless\n",
+ "fi=acos(cos_fi);\n",
+ "tan_fi=tan(fi);#unitless\n",
+ "\n",
+ "#For Alternator A : \n",
+ "cos_fi_A=0.9;#unitless\n",
+ "fi_A=acos(cos_fi_A);\n",
+ "tan_fi_A=tan(fi_A);#unitless\n",
+ "#Formula : Active load, KW=V*I*cos_fi\n",
+ "#Formula : Reactive load, KVAR=V*I*sin_fi\n",
+ "ActiveLoad=8000;#in KW\n",
+ "ReactiveLoad=ActiveLoad*tan_fi;#in KVAR\n",
+ "\n",
+ "#For A:\n",
+ "ActiveLoadA=5000;#in KW\n",
+ "ReactiveLoadA=ActiveLoadA*tan_fi_A;#in KVAR\n",
+ "\n",
+ "#For B :\n",
+ "ActiveLoadB=ActiveLoad-ActiveLoadA;#in KW\n",
+ "ReactiveLoadB=ReactiveLoad-ReactiveLoadA;#in KVAR\n",
+ "tan_fi_B=ReactiveLoadB/ActiveLoadB;#unitless\n",
+ "fi_B=atan(tan_fi_B);#in degree\n",
+ "cos_fi=cos(atan(tan_fi_B));#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of the other machine : \",round(cos_fi,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power factor of the other machine : 0.642\n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.21, Page 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "V=6600;#in Volts\n",
+ "KW=6000.;#in KWatts\n",
+ "pf=0.8;#unitless\n",
+ "cos_fi=pf;#unitless\n",
+ "Eff=90.;#in %\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Part (a) : \n",
+ "KVA=KW/cos_fi;#in KVAR\n",
+ "print \"KVA rating of the alternator : \",(KVA),\" KVA\";\n",
+ "#Part (b) : \n",
+ "TotalRating=KVA;#in KVA\n",
+ "VA=TotalRating*1000;#in VA\n",
+ "I=VA/(sqrt(3)*KW);#in Ampere\n",
+ "print \"Current Rating in Ampere : \",round(I,2);\n",
+ "#Part (c) :\n",
+ "Input=KW/(Eff/100);#in KW\n",
+ "print \"Power Input(in KW) :\",round(Input,2);\n",
+ "Input=Input*1000/735.5;#in hp\n",
+ "print \"Power Input(in hp) :\",round(Input,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KVA rating of the alternator : 7500.0 KVA\n",
+ "Current Rating in Ampere : 721.69\n",
+ "Power Input(in KW) : 6666.67\n",
+ "Power Input(in hp) : 9064.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.22, Page 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "Ecoil=8000;#in Volts\n",
+ "Icoil=418;#in Ampere\n",
+ "pf=80.;#in % lgging\n",
+ "\n",
+ "#Calculations&Results\n",
+ "pf=pf/100;#in fraction\n",
+ "cos_fi=pf;#unitless\n",
+ "#Part (i) : \n",
+ "EL=sqrt(3)*Ecoil;#in volt\n",
+ "print \"Line volts(in V): \",round(EL);\n",
+ "#Part (ii) : \n",
+ "IL=Icoil;#in Ampere\n",
+ "print \"Line Current in Ampere : \",IL;\n",
+ "#Part (iii) :\n",
+ "Rating=sqrt(3)*EL*IL/1000;#in KVA\n",
+ "print \"Rating (in KVA) :\",Rating;\n",
+ "#Part (iv) :\n",
+ "FullLoadPower=sqrt(3)*EL*IL*cos_fi/1000;#in KW\n",
+ "print \"Full Load Power in KW :\",FullLoadPower;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line volts(in V): 13856.0\n",
+ "Line Current in Ampere : 418\n",
+ "Rating (in KVA) : 10032.0\n",
+ "Full Load Power in KW : 8025.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_1_1.ipynb b/Electrical_Machines_II/chapter_1_1.ipynb
new file mode 100755
index 00000000..0ea2a442
--- /dev/null
+++ b/Electrical_Machines_II/chapter_1_1.ipynb
@@ -0,0 +1,1297 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e4feee2966703522c4e009f16556422b345ba2813bb92ad5cc7b8ab8058895bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Synchronous Machines\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "slots=24;#no. of slotes\n",
+ "NoOfPhase=3;#no of phase\n",
+ "MotorSpeed=1450;#in rpm\n",
+ "N=1500;#Synchonous Speed in rpm\n",
+ "f=50;#in Hz\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"As the winding is in single layer, each slot contains one coil slide only.\";\n",
+ "CoilSlidePerSlot=1;#coil slide per slot\n",
+ "CoilSlidePerCoil=2;#coil slide per Coil\n",
+ "TotalCoils=slots*CoilSlidePerSlot/CoilSlidePerCoil;#no. of coils\n",
+ "print \"Total no. of Coils : \",TotalCoils;\n",
+ "P=120*f/N;#no. of poles\n",
+ "print \"No. of poles : \",P;\n",
+ "PolesPitch=slots/P;#unitless\n",
+ "print \"Poles Pitch = \",PolesPitch;\n",
+ "print \"In case of single layer winding, the pole ppitch is generally taken in odd numbers only\"\n",
+ "print \"let pole pitch = 5(for short pitch winding)\";\n",
+ "PolesPitch=5;#for short pitch winding\n",
+ "print \"Coil Span or coil through = 1-6\";\n",
+ "CoilsPerPolePerPhase=TotalCoils/(P*NoOfPhase);#No. of Coils/Pole/Phase\n",
+ "print \"No. of Coils/Pole/Phase = \",CoilsPerPolePerPhase;\n",
+ "pair_of_poles=2;#no. of pair of poles\n",
+ "TotalElectricalDegree=360*pair_of_poles;#in degree \n",
+ "ElectricalDegreesPerSlot=TotalElectricalDegree/slots;#in degree electrical\n",
+ "print \"Electrical Degrees/Slot = \",ElectricalDegreesPerSlot;\n",
+ "Slots_required=120/ElectricalDegreesPerSlot;#No. of slotes required for proper phase displacement\n",
+ "print \"No. of slotes required for proper phase displacement = \",Slots_required;\n",
+ "print \"Winding Table is as follows :\";\n",
+ "print \"Coil No. Connection Lead from Coil Span Phase and Group No.\";\n",
+ "print \" 1 A1 1-6 A1\";\n",
+ "print \" 2 3-8 C4\";\n",
+ "print \" 3 B1 5-10 B1\";\n",
+ "print \" 4 7-12 A2\";\n",
+ "print \" 5 C1 9-14 C1\";\n",
+ "print \" 6 11-16 B2\";\n",
+ "print \" 7 13-18 A3\";\n",
+ "print \" 8 15-20 C2\";\n",
+ "print \" 9 17-22 B3\";\n",
+ "print \" 10 19-24 A4\";\n",
+ "print \" 11 21-2 C3\";\n",
+ "print \" 12 23-4 B4\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "As the winding is in single layer, each slot contains one coil slide only.\n",
+ "Total no. of Coils : 12\n",
+ "No. of poles : 4\n",
+ "Poles Pitch = 6\n",
+ "In case of single layer winding, the pole ppitch is generally taken in odd numbers only\n",
+ "let pole pitch = 5(for short pitch winding)\n",
+ "Coil Span or coil through = 1-6\n",
+ "No. of Coils/Pole/Phase = 1\n",
+ "Electrical Degrees/Slot = 30\n",
+ "No. of slotes required for proper phase displacement = 4\n",
+ "Winding Table is as follows :\n",
+ "Coil No. Connection Lead from Coil Span Phase and Group No.\n",
+ " 1 A1 1-6 A1\n",
+ " 2 3-8 C4\n",
+ " 3 B1 5-10 B1\n",
+ " 4 7-12 A2\n",
+ " 5 C1 9-14 C1\n",
+ " 6 11-16 B2\n",
+ " 7 13-18 A3\n",
+ " 8 15-20 C2\n",
+ " 9 17-22 B3\n",
+ " 10 19-24 A4\n",
+ " 11 21-2 C3\n",
+ " 12 23-4 B4\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "slots=24;#no. of slotes\n",
+ "P=4;#no. of poles\n",
+ "CoilPitch=5;#unitless\n",
+ "NoOfPhase=3;#no of phase\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"As the winding is in double layer, each slot contains 2 coils per slide.\";\n",
+ "CoilSlidePerSlot=2;#coil slide per slot\n",
+ "CoilSlidePerCoil=2;#coil slide per Coil\n",
+ "TotalCoils=slots*CoilSlidePerSlot/CoilSlidePerCoil;#no. of coils\n",
+ "print \"Total no. of Coils : \",TotalCoils;\n",
+ "PolesPitch=slots/P;#unitless\n",
+ "print \"Pole Pitch = \",PolesPitch;\n",
+ "CoilsPerPolePerPhase=TotalCoils/(P*NoOfPhase);#No. of Coils/Pole/Phase\n",
+ "print \"No. of Coils/Pole/Phase = \",CoilsPerPolePerPhase;\n",
+ "pair_of_poles=2;#no. of pair of poles\n",
+ "TotalElectricalDegree=360*pair_of_poles;#in degree \n",
+ "ElectricalDegreesPerSlot=TotalElectricalDegree/slots;#in degree electrical\n",
+ "print \"Electrical Degrees/Slot = \",ElectricalDegreesPerSlot;\n",
+ "Slots_required=120/ElectricalDegreesPerSlot;#No. of slotes required for proper phase displacement\n",
+ "print \"No. of slots required for proper phase displacement = \",Slots_required;\n",
+ "print \"ie. Phase A1 is brought out from slot no. = 1\";\n",
+ "print \"Phase B1 at slot no. = 1+4 = 5\";\n",
+ "print \"Phase C1 at slot no. = 5+4 = 9\";\n",
+ "print \"Col Connection - end to start to start\";\n",
+ "print \"Winding Table is as follows :\";\n",
+ "print \"Coil No. Connection Lead from Coil Span Phase and Group No.\";\n",
+ "print \" 1 A1 1-6 A1\";\n",
+ "print \" 2 2-7 \";\n",
+ "print \" 3 3-8 C4\";\n",
+ "print \" 4 4-9 \";\n",
+ "print \" 5 B1 5-10 B1\";\n",
+ "print \" 6 6-11 \";\n",
+ "print \" 7 7-12 A2\";\n",
+ "print \" 8 8-13 \";\n",
+ "print \" 9 C1 9-14 C1\";\n",
+ "print \" 10 10-15 \";\n",
+ "print \" 11 11-16 B2\";\n",
+ "print \" 12 12-17 \";\n",
+ "print \" 13 13-18 A3\";\n",
+ "print \" 14 14-19 \";\n",
+ "print \" 15 15-20 C2\";\n",
+ "print \" 16 16-21 \";\n",
+ "print \" 17 17-22 B3\";\n",
+ "print \" 18 18-23 \";\n",
+ "print \" 19 19-24 A4\";\n",
+ "print \" 20 20-1 \";\n",
+ "print \" 21 21-2 C3\";\n",
+ "print \" 22 22-3 \";\n",
+ "print \" 23 23-4 \";\n",
+ "print \" 24 24-5 B4\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "As the winding is in double layer, each slot contains 2 coils per slide.\n",
+ "Total no. of Coils : 24\n",
+ "Pole Pitch = 6\n",
+ "No. of Coils/Pole/Phase = 2\n",
+ "Electrical Degrees/Slot = 30\n",
+ "No. of slots required for proper phase displacement = 4\n",
+ "ie. Phase A1 is brought out from slot no. = 1\n",
+ "Phase B1 at slot no. = 1+4 = 5\n",
+ "Phase C1 at slot no. = 5+4 = 9\n",
+ "Col Connection - end to start to start\n",
+ "Winding Table is as follows :\n",
+ "Coil No. Connection Lead from Coil Span Phase and Group No.\n",
+ " 1 A1 1-6 A1\n",
+ " 2 2-7 \n",
+ " 3 3-8 C4\n",
+ " 4 4-9 \n",
+ " 5 B1 5-10 B1\n",
+ " 6 6-11 \n",
+ " 7 7-12 A2\n",
+ " 8 8-13 \n",
+ " 9 C1 9-14 C1\n",
+ " 10 10-15 \n",
+ " 11 11-16 B2\n",
+ " 12 12-17 \n",
+ " 13 13-18 A3\n",
+ " 14 14-19 \n",
+ " 15 15-20 C2\n",
+ " 16 16-21 \n",
+ " 17 17-22 B3\n",
+ " 18 18-23 \n",
+ " 19 19-24 A4\n",
+ " 20 20-1 \n",
+ " 21 21-2 C3\n",
+ " 22 22-3 \n",
+ " 23 23-4 \n",
+ " 24 24-5 B4\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Page 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#given data\n",
+ "StatorSlots=36;#No. of stator slots\n",
+ "Poles=4;#No. of poles\n",
+ "#coilSpan=1:8;#unitless\n",
+ "\n",
+ "#Calculations&Results\n",
+ "SlotsPerPole=StatorSlots/Poles;# no. of slots per pole\n",
+ "print \"Slots/Pole = \",SlotsPerPole;\n",
+ "print \"Here the coil span falls short by, \",((2./9)*180),\" Degree\";\n",
+ "alfa=40*pi/180;#short pitch angle in degree\n",
+ "Kp=cos(alfa/2);#Coil span Factor\n",
+ "print \"Pitch Factor or coil span factor : \",round(Kp,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slots/Pole = 9\n",
+ "Here the coil span falls short by, 40.0 Degree\n",
+ "Pitch Factor or coil span factor : 0.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#given data\n",
+ "NoOfPhase=3;#no of phase\n",
+ "P=16;#No. of pole alternator\n",
+ "Slots=144;#No. of slots\n",
+ "Conductors=10;#per slot\n",
+ "fi=0.03;#in Weber\n",
+ "N=375;#machine speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "f=P*N/120;#in Hz\n",
+ "SlotsPerPole=Slots/P;#unitless\n",
+ "m=Slots/(P*NoOfPhase);#unitless\n",
+ "Beta=180/(SlotsPerPole);#in Degree\n",
+ "Kd=sin(m*Beta/2*pi/180)/(m*sin(Beta/2*pi/180));#unitless\n",
+ "TotalConductors=Conductors*Slots;#no. of conductors\n",
+ "TotalConductorsPerPhase=Conductors*Slots/NoOfPhase;#no. of conductors/phase\n",
+ "TurnsPerPhase=TotalConductorsPerPhase/2;#No. of turns per phase\n",
+ "EMFPerPhase=4.44*Kd*fi*f*TurnsPerPhase;#in Volt\n",
+ "LineVoltage=sqrt(3)*EMFPerPhase;#in Volt\n",
+ "\n",
+ "#Results\n",
+ "print \"Frequency in Hz : \",f;\n",
+ "print \"Phase Electromotive force in Volt : \",round(EMFPerPhase,1);\n",
+ "print \"Line Electromotive force in Volt : \",round(LineVoltage,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency in Hz : 50\n",
+ "Phase Electromotive force in Volt : 1534.1\n",
+ "Line Electromotive force in Volt : 2657.202\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "NoOfPhase=3;#no of phase\n",
+ "SlotsPerPhase=3;#o. of slots\n",
+ "\n",
+ "#Calculations&Results\n",
+ "m=SlotsPerPhase;#no. of slots\n",
+ "SlotsPerPolePerPhase=SlotsPerPhase*NoOfPhase;#unitless\n",
+ "Beta=180./SlotsPerPolePerPhase;#in degree\n",
+ "print \"The phase difference between the induced emf in two coils lying in adjacent slots = \",(Beta),\" degree\";\n",
+ "Kb=sin((m*Beta*pi)/(2*180))/(m*sin((Beta*pi)/(2*180)));#unitless\n",
+ "print \"The breadth factor : \",round(Kb,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The phase difference between the induced emf in two coils lying in adjacent slots = 20.0 degree\n",
+ "The breadth factor : 0.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "StatorSlots=24#No. of stator slots\n",
+ "Poles=4;#No. of poles\n",
+ "SlotsPerPole=StatorSlots/Poles;# no. of slots per pole\n",
+ "#coilSpan=1:6;#unitless\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"If the sides of the coil are placed in slots 1 and 7, then it is full pitched, \\nIf the coil slides are placed\" \\\n",
+ " + \" in 1 and 6 then it is short pitched and the distance equal to 5/6th of pole-pitch.\";\n",
+ "print \"Since it falls short by 1/6th of the pole-pitch, hence it is short by :\"\n",
+ "theta=180/SlotsPerPole;#in Degree\n",
+ "print (theta),\" Degree.\"\n",
+ "Kp=cos(theta/2*pi/180);#unitless\n",
+ "print \"Pitch-factor Kp : \",round(Kp,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the sides of the coil are placed in slots 1 and 7, then it is full pitched, \n",
+ "If the coil slides are placed in 1 and 6 then it is short pitched and the distance equal to 5/6th of pole-pitch.\n",
+ "Since it falls short by 1/6th of the pole-pitch, hence it is short by :\n",
+ "30 Degree.\n",
+ "Pitch-factor Kp : 0.9659\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "NoOfPhase=3;#no of phase\n",
+ "Eph=3300/sqrt(3);#in Volts\n",
+ "f=50;#in Hz\n",
+ "Poles=12;#No. of poles\n",
+ "StatorSlots=144#No. of stator slots\n",
+ "\n",
+ "#Calculations\n",
+ "SlotsPerPhase=StatorSlots/NoOfPhase;#no. of slots/phase\n",
+ "Conductors=5;#per slot\n",
+ "ConductorsPerphase=SlotsPerPhase*Conductors;#Conductors/Phase\n",
+ "S=ConductorsPerphase;#Conductors/phase\n",
+ "SlotsPerPolePerPhase=SlotsPerPhase/Poles;#no. of slots/phase\n",
+ "Kf=1.11;#Form Factor\n",
+ "Kb=0.96;#Breadth Factor\n",
+ "Kp=1;#For concentric winding\n",
+ "fi=Eph/(2*Kf*Kb*Kp*S*f);#in weber\n",
+ "\n",
+ "#Result\n",
+ "print \"The Flux per pole in weber : \",round(fi,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Flux per pole in weber : 0.0745\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "Phase=3;#no. of phase\n",
+ "f=50;#in Hz\n",
+ "P=16;#No. of pole alternator\n",
+ "Slots=144.;#No. of slots\n",
+ "conductors=10;#conductors per slot\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fi=2.48*10**-2;#in weber\n",
+ "n=Slots/P;#No. of slots/pole\n",
+ "Zr=Slots*conductors/Phase;#No. of conductors/Phase\n",
+ "T=Zr/2;#N. of turns/phase\n",
+ "Beta=180/n;#Angular displacement between slots in degree\n",
+ "m=n/Phase;#No. of slots/pole/Phase\n",
+ "Kd=sin(m*Beta/2*pi/180)/(m*sin(Beta/2*pi/180));#Distribution factor :unitless \n",
+ "print \"The coil span falls short of 2 slots i.e. \",(2*180/9),\" degree.\";\n",
+ "alfa=40;#short pitch angle in degree\n",
+ "Kp=(cos(alfa/2*pi/180));#Unitless\n",
+ "#Formula : f=P*N/120;#in Hz\n",
+ "N=120*f/P;#in rpm\n",
+ "Ep=4.44*Kd*Kp*fi*f*T;#in Volts\n",
+ "LineVoltage=sqrt(3)*Ep;#in Volts\n",
+ "print \"The speed is \",(N),\" in rpm\";\n",
+ "print \"The line emf is \",round(LineVoltage,2),\" Volts\";\n",
+ "#Note : Answer in the book is not accurate for last part due to rounding off errors"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The coil span falls short of 2 slots i.e. 40 degree.\n",
+ "The speed is 375 in rpm\n",
+ "The line emf is 2064.15 Volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 109
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9, Page 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "RatedPower=100;#in KVA\n",
+ "RatedPower=100*1000;#in VA\n",
+ "VL=1040;#in Volt\n",
+ "Phase=3;#Machine phase\n",
+ "If=40;#in Ampere\n",
+ "Isc=200;#in Ampere\n",
+ "EL=1040;#in Volt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Eph=EL/sqrt(3);#in Volt\n",
+ "Zs=Eph/Isc;#in Ohm\n",
+ "Rs=0.2;#in Ohm\n",
+ "Xs=sqrt(Zs**2-Rs**2);#in Ohm\n",
+ "IL=19.25;#in Ampere\n",
+ "V=3000/sqrt(3);#in Volt\n",
+ "#At 0.8 power factor lagging\n",
+ "IRa=IL*0.2;#in Volt\n",
+ "IXs=IL*Xs;#in Volt\n",
+ "Vsin_fi=V*0.6;#in Volt\n",
+ "Vcos_fi=V*0.8;#in Volt\n",
+ "Eo=sqrt((Vcos_fi+IRa)**2+(Vsin_fi+IXs)**2);#in Volts\n",
+ "Regulation=((Eo-V)/V)*100;#in %\n",
+ "print \"Full load percentage regulation at a power factor of 0.8 lagging : \",round(Regulation,1);\n",
+ "\n",
+ "#At 0.8 power factor leading\n",
+ "Eo=sqrt((Vcos_fi+IRa)**2+(Vsin_fi-IXs)**2);#in Volts\n",
+ "Regulation=((Eo-V)/V)*100;#in %\n",
+ "print \"Full load percentage regulation at a power factor of 0.8 leading : \",round(Regulation,2);\n",
+ "print \"Negative regulation due to leading power factor.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load percentage regulation at a power factor of 0.8 lagging : 2.2\n",
+ "Full load percentage regulation at a power factor of 0.8 leading : -1.78\n",
+ "Negative regulation due to leading power factor.\n"
+ ]
+ }
+ ],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10, Page 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "RatedPower=50;#in KVA\n",
+ "RatedPower=50*1000;#in VA\n",
+ "VL=173;#in Volts\n",
+ "Ra=0.1;#in Ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "VP=VL/sqrt(3);#in Volts\n",
+ "print \"Some exciting curent on short circuit produces a current of 100 A.\";\n",
+ "OC_PhaseVoltage=100;#in Volt\n",
+ "SC_Current=100;#in Ampere\n",
+ "Zs=OC_PhaseVoltage/SC_Current;#n ohm\n",
+ "Xs=sqrt(Zs**2-Ra**2);#in Ohm\n",
+ "print \"Impedence of the alternator in Ohm : \",round(Xs,2);\n",
+ "V=400;#in Volts\n",
+ "I_FL=RatedPower/(sqrt(3)*V);#in Ampere\n",
+ "V=400/sqrt(3);#in Volts\n",
+ "Eo=sqrt((V+I_FL*Ra)**2+(I_FL*Xs)**2);#in Volts\n",
+ "Regulation=(Eo-V)*100/V;#in %\n",
+ "print \"Regulation at U.P.F. in % :\",round(Regulation,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Some exciting curent on short circuit produces a current of 100 A.\n",
+ "Impedence of the alternator in Ohm : 0.99\n",
+ "Regulation at U.P.F. in % : 7.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.11, Page 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=500;#in KVA\n",
+ "OutputPower=500*1000;#in VA\n",
+ "VL=3300;#in Volts\n",
+ "Ra=0.3;#in Ohm\n",
+ "Xs=4;#in Ohm\n",
+ "PF=0.8;#Lagging Power factor\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "IL=OutputPower/(sqrt(3)*VL);#in Ampere\n",
+ "print \"For a star connected alternator, line current is equal to phase current. Therefore Ia=IL\";\n",
+ "Ia=IL;#in Ampere\n",
+ "#PF=cosd(fi)=0.8 and sind(fi)=0.6\n",
+ "cos_fi=0.8;#Power factor\n",
+ "sin_fi=0.6;#Unitless\n",
+ "VPerPhase=VL/sqrt(3);#in Volts\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);#in Volts/Phase\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "print \"Voltage Regulation at Full Load in % :\",round(Regulation,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a star connected alternator, line current is equal to phase current. Therefore Ia=IL\n",
+ "Voltage Regulation at Full Load in % : 12.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.12, Page 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "V=2000;#in Volt\n",
+ "Ia=100;#in Ampere\n",
+ "OC_Voltage=500;#in Volt\n",
+ "SC_Current=100;#in Ampere\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Zs=OC_Voltage/SC_Current;#in ohm\n",
+ "Ra=0.8;#in Ohm\n",
+ "Xs=sqrt(Zs**2-Ra**2);#in Ohm\n",
+ "#formula : Induced EMF, E=sqrt((V*cos_fi+Ia*Ra)^2+(V*sin_fi+Ia*Xs)^2)\n",
+ "#Part (a) : at unity pf\n",
+ "cos_fi=1;#Unitless\n",
+ "sin_fi=0;#Unitless\n",
+ "E=sqrt((V*cos_fi+Ia*Ra)**2+(V*sin_fi+Ia*Xs)**2)\n",
+ "Regulation=(E-V)*100/V;#in %\n",
+ "print \"Regulation at U.P.F. in % :\",round(Regulation,2);\n",
+ "\n",
+ "#Part (b) : at 0.71 pf lagging\n",
+ "cos_fi=0.71;#Unitless\n",
+ "sin_fi=0.704;#Unitless\n",
+ "E=sqrt((V*cos_fi+Ia*Ra)**2+(V*sin_fi+Ia*Xs)**2)\n",
+ "Regulation=(E-V)*100/V;#in %\n",
+ "print \"Regulation at 0.71 pf lagging in % :\",round(Regulation,2);\n",
+ "\n",
+ "#Part (c) : at 0.8 pf leading\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((V*cos_fi+Ia*Ra)**2+(V*sin_fi-Ia*Xs)**2)\n",
+ "Regulation=(E-V)*100/V;#in %\n",
+ "print \"Regulation at 0.8 pf leading in % :\",round(Regulation,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at U.P.F. in % : 6.89\n",
+ "Regulation at 0.71 pf lagging in % : 21.1\n",
+ "Regulation at 0.8 pf leading in % : -8.88\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.13, Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#given data\n",
+ "Ia=60;#in Ampere\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"The value of synchronous impedence at this excitation :\" ;\n",
+ "OC_Voltage=900;#in Volt\n",
+ "SC_Current=150;#in Ampere\n",
+ "Zs=OC_Voltage/SC_Current;#in ohm\n",
+ "print \"Zs equals to \",(Zs),\" Ohm\";\n",
+ "print \"Internal Voltage drop when tthe load current is 60A=Ia*Zs=\",(Ia*Zs),\" Volts\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of synchronous impedence at this excitation :\n",
+ "Zs equals to 6 Ohm\n",
+ "Internal Voltage drop when tthe load current is 60A=Ia*Zs= 360 Volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.14, Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "V=6600;#in Volts\n",
+ "OutputPower=2000;#in KVA\n",
+ "\n",
+ "#Calculations\n",
+ "OutputPower=2000*1000;#in VA\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "IL=OutputPower/(sqrt(3)*V);#in Ampere\n",
+ "Ia=IL;#in Ampere\n",
+ "Ra=0.4;#in Ohm\n",
+ "Xs=4.5;#in Ohm\n",
+ "#PF=cosd(fi)=0.8 and sind(fi)=0.6\n",
+ "cos_fi=0.8;#Power factor\n",
+ "sin_fi=0.6;#Unitless\n",
+ "VPerPhase=V/sqrt(3);#in Volts\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);#in Volts/Phase\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "\n",
+ "#Result\n",
+ "print \"Percentage Change in Terminal Voltage :\",round(Regulation,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Change in Terminal Voltage : 14.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 119
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.15, Page 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=1200;#in KVA\n",
+ "OutputPower=1200*1000;#in VA\n",
+ "V=3300;#in Volt\n",
+ "Ra=0.25;#in Ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "IL=OutputPower/(sqrt(3)*V);#in Ampere\n",
+ "Ia=IL;#in Ampere\n",
+ "VPerPhase=V/sqrt(3);#in Volts\n",
+ "OC_Voltage=1100;#in Volt\n",
+ "SC_Current=200;#in Ampere\n",
+ "Zs=OC_Voltage/(sqrt(3)*SC_Current);#in ohmRa\n",
+ "Xs=sqrt(Zs**2-Ra**2);#in Ohm\n",
+ "#formula : Induced EMF, E=sqrt((V*cos_fi+Ia*Ra)^2+(V*sin_fi+Ia*Xs)^2)\n",
+ "\n",
+ "#Part (a) : For lagging pf load\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "print \"Regulation at U.P.F. in % :\",round(Regulation,2);\n",
+ "\n",
+ "#Part (b) : For leading pf load\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi-Ia*Xs)**2)\n",
+ "Regulation=(E-VPerPhase)*100/VPerPhase;#in %\n",
+ "print \"Regulation at 0.71 pf lagging in % :\",round(Regulation,2);\n",
+ "#Note: For leading power factor load, the regulation s negative. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Regulation at U.P.F. in % : 25.9\n",
+ "Regulation at 0.71 pf lagging in % : -13.52\n"
+ ]
+ }
+ ],
+ "prompt_number": 120
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.16, Page 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=1500;#in KVA\n",
+ "OutputPower=1500*1000;#in VA\n",
+ "V=6600;#in Volt\n",
+ "Ra=0.4;#in Ohm\n",
+ "Xs=6;#in Ohm per phase\n",
+ "pf=0.8;#lagging power factor\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : outputPower=sqrt(3)*VL*IL\n",
+ "Ia=OutputPower/(sqrt(3)*V);#in Ampere\n",
+ "VPerPhase=V/sqrt(3);#in Volts\n",
+ "#formula : Induced EMF, E=sqrt((V*cos_fi+Ia*Ra)^2+(V*sin_fi+Ia*Xs)^2)\n",
+ "cos_fi=0.8;#Unitless\n",
+ "sin_fi=0.6;#Unitless\n",
+ "E=sqrt((VPerPhase*cos_fi+Ia*Ra)**2+(VPerPhase*sin_fi+Ia*Xs)**2);#in volt\n",
+ "print \"Induced emf in volt : \",round(E,2);\n",
+ "print \"As excitation remains constant, E at 4364 volt remains constant.\";\n",
+ "E=4364;#in Volt\n",
+ "V=4743;#in Volts\n",
+ "TerminalVoltage=sqrt(3)*V;#in Volts\n",
+ "print \"Terminal voltage line to line in Volts : \",round(TerminalVoltage);\n",
+ "#Note ans of 1st part is wrong in the books"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced emf in volt : 4366.07\n",
+ "As excitation remains constant, E at 4364 volt remains constant.\n",
+ "Terminal voltage line to line in Volts : 8215.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 123
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.17, Page 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "OutputPower=2500;#in KVA\n",
+ "OutputPower=2500*1000;#in VA\n",
+ "V=6600;#in Volt\n",
+ " \n",
+ "#Calculations\n",
+ "#For first load i.e. Lighting load : \n",
+ "KW1=2500;#in KWatts\n",
+ "KVAR1=0;#Kwatts\n",
+ "#For second load i.e. Motor load : \n",
+ "KW2=5000;#in KWatts\n",
+ "cos_fi=0.707;#unitless\n",
+ "sin_fi=0.707;#unitless\n",
+ "KVAR2=KW2*sin_fi/cos_fi;#Kwatts\n",
+ "#For total load\n",
+ "TotalKW=KW1+KW2;#in KWatts\n",
+ "TotalKVAR=KVAR1+KVAR2;#Kwatts \n",
+ "#For first Machine\n",
+ "KWm=4000;#in KWatts\n",
+ "cos_fi=0.8;#unitless\n",
+ "sin_fi=0.6;#unitless\n",
+ "KVARm=KWm*sin_fi/cos_fi;#Kwatts\n",
+ "#so, second machine will be supplying\n",
+ "KW=TotalKW-KWm;#in Kwatts\n",
+ "print \"KW output of second machine : \",KW;\n",
+ "KVAR=TotalKVAR-KVARm;#in KWatts\n",
+ "tan_fi=KVAR/KW;#unitless\n",
+ "fi=atan(tan_fi);#ib degree\n",
+ "#Power factor of other machine\n",
+ "pf=cos(fi);#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of other machine : \",round(pf,4),\" lagging\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KW output of second machine : 3500\n",
+ "Power factor of other machine : 0.8682 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.18, Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "\n",
+ "#Load1 : \n",
+ "KW1=500;#in KWatts\n",
+ "KVAR1=0;#Kwatts\n",
+ "\n",
+ "#Load2 : \n",
+ "KW2=1000;#in KWatts\n",
+ "pf=0.9;#lagging\n",
+ "cos_fi=0.9;#unitless\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR2=KW2*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "#Load3 : \n",
+ "KW3=800;#in KWatts\n",
+ "pf=0.8;#lagging\n",
+ "cos_fi=0.8;#unitless\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR3=KW3*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "#Load4 : \n",
+ "KW4=500;#in KWatts\n",
+ "pf=0.9;#lagging\n",
+ "cos_fi=0.9;#unitless\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR4=-KW4*sin_fi/cos_fi;#Kwatts\n",
+ "#TOtalKW and TotalKVAR\n",
+ "TotalKW=KW1+KW2+KW3+KW4;#in KWatts\n",
+ "TotalKVAR=KVAR1+KVAR2+KVAR3+KVAR4;#in KWAtts\n",
+ "#For the first Machine :\n",
+ "KW=1500;#n Kwatts\n",
+ "cos_fi=0.95;#unitless\n",
+ "sin_fi=0.3123;#unitless\n",
+ "KVAR=KW*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "KW1=TotalKW-KW;#in KWatts\n",
+ "KVAR1=TotalKVAR-KVAR;#in Volts\n",
+ "print \"KW supplied by other machine : \",(TotalKW-KW);\n",
+ "print \"KVAR supplied by other machine : \",round(TotalKVAR-KVAR); #answer differs due to rounding off the digits\n",
+ "tan_fi=KVAR1/KW1;#unitless\n",
+ "#fi=atand(tan_fi);#in degree\n",
+ "cos_fi=cos(atan(tan_fi));#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of the other machine : \",round(cos_fi,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KW supplied by other machine : 1300\n",
+ "KVAR supplied by other machine : 349.0\n",
+ "Power factor of the other machine : 0.966\n"
+ ]
+ }
+ ],
+ "prompt_number": 129
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.19, Page 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "\n",
+ "#Lighting Load : \n",
+ "MW1=20;#load in Mwatts\n",
+ "KW1=MW1*1000;#in KWatts\n",
+ "KVAR1=0;#Kwatts\n",
+ "\n",
+ "#Motor Load : \n",
+ "MW2=40;#load in Mwatts\n",
+ "KW2=MW2*1000;#in KWatts\n",
+ "pf=0.8;#unitless\n",
+ "cos_fi=0.8\n",
+ "fi=acos(pf);\n",
+ "sin_fi=sin(fi);#unitless\n",
+ "KVAR2=KW2*sin_fi/cos_fi;#Kwatts\n",
+ "\n",
+ "#For Total Load : \n",
+ "TotalKW=KW1+KW2;#load in Mwatts\n",
+ "TotalKVAR=KVAR1+KVAR2;#in KWatts\n",
+ "#For first machine : \n",
+ "MWm=32;#load in Mwatts\n",
+ "KWm=MWm*1000;#in KWatts\n",
+ "cos_fi=0.866;#unitless\n",
+ "fi=acos(cos_fi);\n",
+ "tan_fi=tan(fi);#unitless\n",
+ "KVARm=KWm*tan_fi;#in KWatts\n",
+ "#so, load supplied by the second machine\n",
+ "KW2=TotalKW-KWm;#in Kwatts\n",
+ "print \"Load of other machine,KW : \",(KW2);\n",
+ "KVAR2=TotalKVAR-KVARm;#in Kwatts\n",
+ "tan_fi=KVAR2/KW2;#unitless\n",
+ "fi=atan(tan_fi);#in degree\n",
+ "cos_fi=cos(atan(tan_fi));#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of the other machine : \",round(cos_fi,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load of other machine,KW : 28000\n",
+ "Power factor of the other machine : 0.925\n"
+ ]
+ }
+ ],
+ "prompt_number": 131
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.20, Page 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "cos_fi=0.8;#unitless\n",
+ "fi=acos(cos_fi);\n",
+ "tan_fi=tan(fi);#unitless\n",
+ "\n",
+ "#For Alternator A : \n",
+ "cos_fi_A=0.9;#unitless\n",
+ "fi_A=acos(cos_fi_A);\n",
+ "tan_fi_A=tan(fi_A);#unitless\n",
+ "#Formula : Active load, KW=V*I*cos_fi\n",
+ "#Formula : Reactive load, KVAR=V*I*sin_fi\n",
+ "ActiveLoad=8000;#in KW\n",
+ "ReactiveLoad=ActiveLoad*tan_fi;#in KVAR\n",
+ "\n",
+ "#For A:\n",
+ "ActiveLoadA=5000;#in KW\n",
+ "ReactiveLoadA=ActiveLoadA*tan_fi_A;#in KVAR\n",
+ "\n",
+ "#For B :\n",
+ "ActiveLoadB=ActiveLoad-ActiveLoadA;#in KW\n",
+ "ReactiveLoadB=ReactiveLoad-ReactiveLoadA;#in KVAR\n",
+ "tan_fi_B=ReactiveLoadB/ActiveLoadB;#unitless\n",
+ "fi_B=atan(tan_fi_B);#in degree\n",
+ "cos_fi=cos(atan(tan_fi_B));#unitless\n",
+ "\n",
+ "#Result\n",
+ "print \"Power factor of the other machine : \",round(cos_fi,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power factor of the other machine : 0.642\n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.21, Page 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "V=6600;#in Volts\n",
+ "KW=6000.;#in KWatts\n",
+ "pf=0.8;#unitless\n",
+ "cos_fi=pf;#unitless\n",
+ "Eff=90.;#in %\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Part (a) : \n",
+ "KVA=KW/cos_fi;#in KVAR\n",
+ "print \"KVA rating of the alternator : \",(KVA),\" KVA\";\n",
+ "#Part (b) : \n",
+ "TotalRating=KVA;#in KVA\n",
+ "VA=TotalRating*1000;#in VA\n",
+ "I=VA/(sqrt(3)*KW);#in Ampere\n",
+ "print \"Current Rating in Ampere : \",round(I,2);\n",
+ "#Part (c) :\n",
+ "Input=KW/(Eff/100);#in KW\n",
+ "print \"Power Input(in KW) :\",round(Input,2);\n",
+ "Input=Input*1000/735.5;#in hp\n",
+ "print \"Power Input(in hp) :\",round(Input,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KVA rating of the alternator : 7500.0 KVA\n",
+ "Current Rating in Ampere : 721.69\n",
+ "Power Input(in KW) : 6666.67\n",
+ "Power Input(in hp) : 9064.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.22, Page 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#given data\n",
+ "Ecoil=8000;#in Volts\n",
+ "Icoil=418;#in Ampere\n",
+ "pf=80.;#in % lgging\n",
+ "\n",
+ "#Calculations&Results\n",
+ "pf=pf/100;#in fraction\n",
+ "cos_fi=pf;#unitless\n",
+ "#Part (i) : \n",
+ "EL=sqrt(3)*Ecoil;#in volt\n",
+ "print \"Line volts(in V): \",round(EL);\n",
+ "#Part (ii) : \n",
+ "IL=Icoil;#in Ampere\n",
+ "print \"Line Current in Ampere : \",IL;\n",
+ "#Part (iii) :\n",
+ "Rating=sqrt(3)*EL*IL/1000;#in KVA\n",
+ "print \"Rating (in KVA) :\",Rating;\n",
+ "#Part (iv) :\n",
+ "FullLoadPower=sqrt(3)*EL*IL*cos_fi/1000;#in KW\n",
+ "print \"Full Load Power in KW :\",FullLoadPower;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line volts(in V): 13856.0\n",
+ "Line Current in Ampere : 418\n",
+ "Rating (in KVA) : 10032.0\n",
+ "Full Load Power in KW : 8025.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_2.ipynb b/Electrical_Machines_II/chapter_2.ipynb
new file mode 100755
index 00000000..c18790d9
--- /dev/null
+++ b/Electrical_Machines_II/chapter_2.ipynb
@@ -0,0 +1,2810 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e3e9de8b11024daf372011e6906cf967e4f06ac156a70592b24845e8bc2b4696"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Induction Motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=2;#no. of poles\n",
+ "f=60;#in Hz\n",
+ "N=3460.;#in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Slip=Ns-N;#in rpm\n",
+ "PercentageSlip=((Ns-N)/Ns)*100;#in %\n",
+ "\n",
+ "#Results\n",
+ "print \"Synchronous speed in rpm : \",Ns;\n",
+ "print \"Percentage Slip : \",round(PercentageSlip,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous speed in rpm : 3600\n",
+ "Percentage Slip : 3.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 124
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=8.;#no. of poles\n",
+ "f=50.;#in Hz\n",
+ "N=700.;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Part (a) :\n",
+ "Ns=120*f/P;#in rpm\n",
+ "print \"Synchronous speed in rpm : \",Ns;\n",
+ "#Part (b) :\n",
+ "S=(Ns-N)*100/Ns;#in %\n",
+ "print \"Slip(in %) : \",round(S,2);\n",
+ "#Part (c) :\n",
+ "#At the time of stsrt S=1;\n",
+ "fdash=f;#in Hz\n",
+ "print \"Rotor frequeny at the time of starting(in Hz) : \",fdash;\n",
+ "#Part (d) :\n",
+ "fdash=(S/100)*f;#in Hz\n",
+ "print \"Rotor frequeny at the given speed(in Hz) : \",round(fdash,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous speed in rpm : 750.0\n",
+ "Slip(in %) : 6.67\n",
+ "Rotor frequeny at the time of starting(in Hz) : 50.0\n",
+ "Rotor frequeny at the given speed(in Hz) : 3.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 125
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, Page 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=10;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "N=600;#in rpm\n",
+ "Nr=1440;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "f=P*N/120;#in Hz\n",
+ "#When P=2\n",
+ "P=2;#no. of poles\n",
+ "Ns=120*f/P;#in rpm\n",
+ "#When P=4\n",
+ "P=4;#no. of poles\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-Nr)*100/Ns;#Slip in %\n",
+ "print \"Percentage Slip(in %) : \",(S);\n",
+ "print \"No. of poles : \",(S);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Slip(in %) : 4\n",
+ "No. of poles : 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=8;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "fr=1.5;#in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : fr=S*f\n",
+ "S=fr/f;#slip(unitless)\n",
+ "Ns=120*f/P;#in rpm\n",
+ "#Formula : S=(Ns-Nr)/Ns\n",
+ "Nr=Ns-S*Ns;#in rpm\n",
+ "\n",
+ "#Results\n",
+ "print \"Motor running speed in rpm : \",round(Nr);\n",
+ "print \"Slip(in %):\",(S*100);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor running speed in rpm : 728.0\n",
+ "Slip(in %): 3.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=2;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "S=4.;#in %\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Part (i) : \n",
+ "Ns=f/P;#in rps\n",
+ "Ns=Ns*60;#in rpm\n",
+ "print \"Synchronous speed in rpm : \",Ns;\n",
+ "#Part (ii) :\n",
+ "print \"Slip = \",(S),\"% or \",(S/100);\n",
+ "#Part (iii) :\n",
+ "N=Ns*(1-S/100);#in rpm\n",
+ "print \"Actual speed in rpm :\",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous speed in rpm : 1500\n",
+ "Slip = 4.0 % or 0.04\n",
+ "Actual speed in rpm : 1440.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, Page 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=4;#no. of poles\n",
+ "f1=50;#in Hz\n",
+ "fdash=1.5;#in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "S=fdash/f1;#unitless\n",
+ "print \"Slip : \",S;\n",
+ "Ns=120*f1/P;#in rpm\n",
+ "N=Ns*(1-S);#in rpm\n",
+ "\n",
+ "#Result\n",
+ "print \"Speed of motor in rpm :\",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.03\n",
+ "Speed of motor in rpm : 1455.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7, Page 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "N=1440;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "f=50;#in Hz\n",
+ "print \"For this speed of 1440 rpm the synchronous speed may be either 1500 rpm or 3000 rpm.\";\n",
+ "Ns=1500;#in rpm\n",
+ "P=4;#no. of poles\n",
+ "print \"No. of poles : \",P;\n",
+ "Slip=(Ns-N)*100/Ns;#in %\n",
+ "print Slip,\"Slip(in %) : \",Slip;\n",
+ "speed1=Ns-N;#Speed of rotor flux with respect to rotor\n",
+ "print \"Speed of rotor flux with respect to rotor in rpm : \",speed1;\n",
+ "speed2=(speed1)+N;#Speed of rotor flux with respect to stator\n",
+ "print \"Speed of rotor flux with respect to stator in rpm :\",speed2;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For this speed of 1440 rpm the synchronous speed may be either 1500 rpm or 3000 rpm.\n",
+ "No. of poles : 4\n",
+ "4 Slip(in %) : 4\n",
+ "Speed of rotor flux with respect to rotor in rpm : 60\n",
+ "Speed of rotor flux with respect to stator in rpm : 1500\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, Page 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "E2=100;#in volt\n",
+ "R2=0.05;#in ohm\n",
+ "X2=0.1;#im ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "E2perphase=E2/sqrt(3);#in volt\n",
+ "#part (a) : \n",
+ "S=0.04;#slip\n",
+ "I2=S*E2perphase/sqrt(R2**2+(S*X2)**2);#in Ampere\n",
+ "print \"At 4% slip, Rotor current in Ampere : \",round(I2,2);\n",
+ "fi2=degrees(acos(R2/sqrt(R2**2+(S*X2)**2)));#in degree\n",
+ "print \"At 4% slip, Phase angle between rotor voltage and rotor current in degree :\",round(fi2,2);\n",
+ "#part (b) : \n",
+ "S=1;#slip\n",
+ "I2=S*E2perphase/sqrt(R2**2+(S*X2)**2);#in Ampere\n",
+ "print \"At 100% slip, Rotor current in Ampere : \",round(I2,2);\n",
+ "fi2=degrees(acos(R2/sqrt(R2**2+(S*X2)**2)));#in degree\n",
+ "print \"At 100% slip, Phase angle between rotor voltage and rotor current in degree :\",round(fi2,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 4% slip, Rotor current in Ampere : 46.04\n",
+ "At 4% slip, Phase angle between rotor voltage and rotor current in degree : 4.57\n",
+ "At 100% slip, Rotor current in Ampere : 516.4\n",
+ "At 100% slip, Phase angle between rotor voltage and rotor current in degree : 63.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9, Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "E2=100.;#in volt\n",
+ "R2=0.4;#in ohm\n",
+ "X2=2.25;#im ohm\n",
+ "\n",
+ "#Calculations\n",
+ "E2perphase=E2/sqrt(3);#in volt\n",
+ "S=4.;#in %\n",
+ "E=(S/100)*E2perphase;#rotor induced emf at a slip=4% in volt\n",
+ "Z2=sqrt(R2**2+((S/100)*X2)**2);\n",
+ "I2=E/Z2;#in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print \"Rotor current in Ampere : \",round(I2,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor current in Ampere : 5.63\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "f=50;#in Hz\n",
+ "R2=0.2;#in ohm\n",
+ "X2=2;#im ohm\n",
+ "E2=60;#in volt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "E2perphase=E2/sqrt(3);#in volt\n",
+ "#case (i) : S=1 \n",
+ "S=1;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"At standstill : Rotor current in Ampere : \",round(I2,2);\n",
+ "#case (ii) : S=0.1 \n",
+ "S=0.1;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"for 10% slip : Rotor current in Ampere : \",round(I2,2);\n",
+ "#case (iii) : S=0.05 \n",
+ "S=0.05;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"for 5% slip : Rotor current in Ampere : \",round(I2,2);\n",
+ "#case (iv) : S=0.01 \n",
+ "S=0.01;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"for 1% slip : Rotor current in Ampere : \",round(I2,2);\n",
+ "#Note : Answer in the book is wrong for S=0.05 and S=0.01"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At standstill : Rotor current in Ampere : 17.23\n",
+ "for 10% slip : Rotor current in Ampere : 12.25\n",
+ "for 5% slip : Rotor current in Ampere : 7.75\n",
+ "for 1% slip : Rotor current in Ampere : 1.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, Page 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "R2=0.5;#in ohm\n",
+ "X=4.5;#im ohm\n",
+ "E=50;#line voltage in volt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Eperphase=E/sqrt(3);#in volt\n",
+ "#part (a) : Sliprings are short circuited\n",
+ "Z2=sqrt(R2**2+X**2);#in ohm\n",
+ "I2=Eperphase/Z2;#in Ampere\n",
+ "print \"Sliprings are short circuited, Rotor current in Ampere : \",round(I2,2);\n",
+ "cosfi2=R2/Z2;#unitless\n",
+ "print \"Power factor : \",round(cosfi2,2);\n",
+ "#part (b) : Sliprings are connected \n",
+ "R2=0.4;#in ohm\n",
+ "Z2=sqrt(R2**2+X**2);#in ohm\n",
+ "I2=Eperphase/Z2;#in Ampere\n",
+ "print \"Sliprings are short circuited, Rotor current in Ampere : \",round(I2,2);\n",
+ "cosfi2=R2/Z2;#unitless\n",
+ "print \"Power factor : \",round(cosfi2,2);\n",
+ "#Note : answer of part (a) I2 is not curate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sliprings are short circuited, Rotor current in Ampere : 6.38\n",
+ "Power factor : 0.11\n",
+ "Sliprings are short circuited, Rotor current in Ampere : 6.39\n",
+ "Power factor : 0.09\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12, Page 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "R2=0.02;#in ohm\n",
+ "X2=0.1;#im ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#let external resistance per phase = r then R2=R2+r ohm\n",
+ "S=1;#slip at starting\n",
+ "print \"Since at start speed is zero and slip is, therefore, unity or R2=X2\";\n",
+ "r=X2-R2;#in ohm\n",
+ "print \"External resistance per phase added to the rotor circuit in ohms : \",r;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since at start speed is zero and slip is, therefore, unity or R2=X2\n",
+ "External resistance per phase added to the rotor circuit in ohms : 0.08\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13, Page 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "P=4;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.03;#in ohm\n",
+ "X2=0.12;#im ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Smax=R2/X2;#unitless\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-Smax);#in rpm\n",
+ "print \"Speed corresponding to maximum torque(in rpm) :\",N;\n",
+ "#alfa=(R2+r)/X2\n",
+ "#Ratio of starting torque to max torque=75/100=2*alfa/(alfa^2+1)\n",
+ "#It gives : 3*alfa^2-8*alfa+3=0\n",
+ "#coefficients :\n",
+ "a=3;b=-8;c=3;\n",
+ "alfa1=(-b+sqrt(b**2-4*a*c))/(2*a);alfa2=(-b-sqrt(b**2-4*a*c))/(2*a);\n",
+ "print \"rejecting higher values, alfa = \",round(alfa2,4);\n",
+ "fdash=1.5;#in Hz\n",
+ "r=alfa2*X2-R2;#in ohm;\n",
+ "print \"External rotor resistance per phase(in ohm) : \",round(r,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed corresponding to maximum torque(in rpm) : 1125.0\n",
+ "rejecting higher values, alfa = 0.4514\n",
+ "External rotor resistance per phase(in ohm) : 0.0242\n"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14, Page 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=4;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.024;#in ohm\n",
+ "X2=0.6;#in ohm \n",
+ "\n",
+ "#Calculations&Results\n",
+ "Sm=R2/X2;#slip corresponding to max torque\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-Sm);#in rpm\n",
+ "print \"Speed corresponding to maximum torque in rpm : \",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed corresponding to maximum torque in rpm : 1440.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=6;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "Sf=4.;#in %\n",
+ "R2=0.01;#in ohm\n",
+ "X2=0.05;#im \n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ratio=((R2/X2)**2+(Sf/100)**2)/(2*R2*(Sf/100)/X2);#ratio of max torque to full load torque\n",
+ "print \"Maximum torque, Tmax=\",(Ratio),\"Tf\";\n",
+ "Sm=R2/X2;#slip corresponding to max torque\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-Sm);#in rpm\n",
+ "print \"Speed corresponding to maximum torque in rpm : \",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum torque, Tmax= 2.6 Tf\n",
+ "Speed corresponding to maximum torque in rpm : 800.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=12;#no. of poles\n",
+ "f=50.;#in Hz\n",
+ "R2=0.03;#in ohm\n",
+ "X2=0.5;#im \n",
+ "\n",
+ "#Calculations&Results\n",
+ "S=R2/X2;#unitless\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-S);#in rpm\n",
+ "print \"Speed at maximum torque in rpm : \",N;\n",
+ "S=(Ns-495)/Ns;#slip at 495 rpm speed\n",
+ "Ratio=(2*R2*S/X2)/((R2/X2)**2+S**2);#ratio of max torque to full load torque\n",
+ "print \"Ratio of full load torque to max torque(in %) :\",round((Ratio*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed at maximum torque in rpm : 470.0\n",
+ "Ratio of full load torque to max torque(in %) : 32.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.17, Page 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "P=12;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.5;#in ohm\n",
+ "N=475.;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "X2=R2/S;#in ohm\n",
+ "#\"At maximum torque, Tmax is proportional to 1/2*X2 or 1/20\";\n",
+ "# \"Ts is proportional to (R2+R)/((R2+R)^2+X2^2)\";\n",
+ "# \"Also, Ts is proportional to 1(20*3)\";\n",
+ "# \"Equating the two eqn we have : (0.5*R)/(R2+R)^2+X2^2\";\n",
+ "#R^2-59R+70.25=0 : \n",
+ "#coefficients :\n",
+ "a=1;b=-59;c=70.25;\n",
+ "R=(-b-sqrt(b**2-4*a*c))/(2*a);\n",
+ "print \"Resistance R to be inserted in series (in ohm) :\",round(R,1);\n",
+ "#Note : answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance R to be inserted in series (in ohm) : 1.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, Page 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=4;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.04;#in ohm\n",
+ "N=1200.;#in rpm(speed at max torque)\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm(synchronous speed)\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "X2=R2/S;#in ohm\n",
+ "#Starting torque is the torque devloped when S=1: Tst=K*R2/(R2^2+X2^2)\n",
+ "#Let say, m=R2/(R2^2+X2^2) then Tst=K*m\n",
+ "m=R2/(R2**2+X2**2);#assumed\n",
+ "\n",
+ "#Results\n",
+ "print \"Starting torque, Tst=\",round(m,2),\"k\";\n",
+ "print \"Maximum torque, Tm=K/\",(2*X2);\n",
+ "print \"Thus, Tst in terms of Tm can be expressed as : \";\n",
+ "print \"Tst/Tm=\",(0.96*0.4),\" or Tst=\",(0.96*0.4),\"Tm\";\n",
+ "print \"Therefore, staring torque is \",(0.96*0.4*100),\"% of maximum torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Starting torque, Tst= 0.96 k\n",
+ "Maximum torque, Tm=K/ 0.4\n",
+ "Thus, Tst in terms of Tm can be expressed as : \n",
+ "Tst/Tm= 0.384 or Tst= 0.384 Tm\n",
+ "Therefore, staring torque is 38.4 % of maximum torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 144
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.19, Page 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=6;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "fr=3.;#in Hz\n",
+ "R2=0.5;#in ohm\n",
+ "N=475;#in rpm\n",
+ "RotorInput=111.9;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=fr*100/f;#unitless\n",
+ "print \"% Slip : \",S;\n",
+ "N=Ns*(1-S/100);#in rpm\n",
+ "print \"Speed of motor in rpm : \",N;\n",
+ "RotorCopperLoss=RotorInput*S/100;#in KW\n",
+ "RotorCopperLoss=RotorCopperLoss/3;#in KW/Phase\n",
+ "print \"Rotor Copper Loss per phase(in KW) : \",RotorCopperLoss;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% Slip : 6.0\n",
+ "Speed of motor in rpm : 940.0\n",
+ "Rotor Copper Loss per phase(in KW) : 2.238\n"
+ ]
+ }
+ ],
+ "prompt_number": 146
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.20, Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3.;#no. of phase\n",
+ "Pin_stator=60.;#Power input of stator in KW\n",
+ "TotalStatorLosses=1.;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pin_rotor=Pin_stator-TotalStatorLosses;#Power input of rotor in KW\n",
+ "S=3.;#slip in %\n",
+ "RotorCopperLosses=(S/100)*Pin_rotor;#in KW\n",
+ "RotorCopperLosses=RotorCopperLosses/phase;#in KW per phase\n",
+ "print \"Rotor Copper Losses per phase(in watts) : \",(RotorCopperLosses*10**3);\n",
+ "TotalMechPowerDev=Pin_rotor*(1-S/100);#in KW\n",
+ "print \"Total mechanial power developed(in KW) : \",TotalMechPowerDev;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor Copper Losses per phase(in watts) : 590.0\n",
+ "Total mechanial power developed(in KW) : 57.23\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.21, Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=6;#no. of poles\n",
+ "S=4.;#slip in %\n",
+ "Output=20;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "FrictionalLoss=250;#in watts\n",
+ "f=50;#in Hz\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns-Ns*(S/100);#in rpm\n",
+ "print \"Speed of motor(in rpm) : \",N;\n",
+ "MechPowerDeveloped=Output*10**3+FrictionalLoss;#in Watts\n",
+ "S=S/100;#unitless\n",
+ "RotorCopperLoss=(S/(1-S))*MechPowerDeveloped;#in watts\n",
+ "print \"Rotor Copper Loss(in watts) : \",RotorCopperLoss;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of motor(in rpm) : 960.0\n",
+ "Rotor Copper Loss(in watts) : 843.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.22, Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "Pin_rotor=80;#Power input of rotor in KW\n",
+ "f=50;#in Hz\n",
+ "fdash=100;#alternations per minute\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fdash=100./60;#in Hz\n",
+ "S=fdash/f;#unitless\n",
+ "print \"Slip : \",round(S,4);\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "N=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor Speed(in rpm) : \",round(N);\n",
+ "MechPowerDev=Pin_rotor*(1-S)*10**3/735.5;#in H.P.\n",
+ "print \"Total mechanial power developed(in KW) : \",round(MechPowerDev,2);\n",
+ "RotorCopperLoss=S*Pin_rotor*10**3;#in watts\n",
+ "print \"Rotor Copper Loss(in watts) : \",RotorCopperLoss;\n",
+ "CopperLoss=RotorCopperLoss/phase;#in watts/phase\n",
+ "print \"Copper Loss per phase(in watts) : \",round(CopperLoss);\n",
+ "I2=60;#in Ampere\n",
+ "R2=CopperLoss/I2**2;#in ohm\n",
+ "print \"Rotor resistance per phase(in ohm) : \",round(R2,3);\n",
+ "#Note : Some answers are not accurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.0333\n",
+ "Rotor Speed(in rpm) : 967.0\n",
+ "Total mechanial power developed(in KW) : 105.14\n",
+ "Rotor Copper Loss(in watts) : 2666.66666667\n",
+ "Copper Loss per phase(in watts) : 889.0\n",
+ "Rotor resistance per phase(in ohm) : 0.247\n"
+ ]
+ }
+ ],
+ "prompt_number": 148
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.23, Page 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "UsefulOutput=55;#in H.P.\n",
+ "MechLosses=2;#in H.P.\n",
+ "Stator_Losses=13.5;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "MechPowerDev=UsefulOutput+MechLosses;#in H.P.\n",
+ "MechPowerDev=MechPowerDev*735.5/1000;#in KW\n",
+ "S=50.;#in %\n",
+ "Pin_Rotor=MechPowerDev/(1-S/100);#in KW\n",
+ "RotorCopperLoss=(S/100)*Pin_Rotor;#in KW\n",
+ "print \"Rotor Copper Loss(in KW) : \",round(RotorCopperLoss,2);\n",
+ "Pin_Motor=Pin_Rotor+Stator_Losses;#in KW\n",
+ "Efficiency=UsefulOutput*0.7355/Pin_Motor;#/unitless\n",
+ "print \"Effiiency(in %) :\",round((Efficiency*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor Copper Loss(in KW) : 41.92\n",
+ "Effiiency(in %) : 41.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.24, Page 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "Pin_rotor=80;#Power input of rotor in KW\n",
+ "f=50;#in Hz\n",
+ "fdash=100;#alternations per minute\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fdash=100./60;#in Hz\n",
+ "S=fdash/f;#unitless\n",
+ "print \"Slip : \",round(S,3);\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "N=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor Speed(in rpm) : \",round(N);\n",
+ "RotorCopperLoss=S*Pin_rotor*10**3;#in watts\n",
+ "#print \"Rotor Copper Loss(in watts) : \",RotorCopperLoss;\n",
+ "CopperLoss=RotorCopperLoss/phase;#in watts/phase\n",
+ "print \"Copper Loss per phase(in watts) : \",round(CopperLoss);\n",
+ "I2=60;#in Ampere\n",
+ "R2=CopperLoss/I2**2;#in ohm\n",
+ "print \"Rotorresistance per phase(in ohm) : \",round(R2,3);\n",
+ "MechPowerDev=Pin_rotor*(1-S)*10**3/735.5;#in H.P.\n",
+ "print \"Total mechanial power developed(in H.P.) : \",round(MechPowerDev,1);\n",
+ "#Note : Some answers are not accurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.033\n",
+ "Rotor Speed(in rpm) : 967.0\n",
+ "Copper Loss per phase(in watts) : 889.0\n",
+ "Rotorresistance per phase(in ohm) : 0.247\n",
+ "Total mechanial power developed(in H.P.) : 105.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.25, Page 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Efficiency=0.9;#unitless\n",
+ "Output=50;#in H.P.\n",
+ "\n",
+ "#Calculations\n",
+ "#formula : Efficiency=Output/(Output+Losses) \n",
+ "Losses=((1-Efficiency)/Efficiency)*Output*735.5;#in watts\n",
+ "Losses=round(Losses);#round\n",
+ "#Let, Ststor Cu loss = Rotor Cu los = Iron loss=K\n",
+ "#Mechanical Loss = Iron Loss/3 = K/3\n",
+ "#TotalLosses=k+K+K+K/3\n",
+ "K=Losses*3/10;#in watts\n",
+ "Pin_rotor=Output*735.5+Losses;#in watts\n",
+ "Slip=K/Pin_rotor;#unitless\n",
+ "\n",
+ "#Results\n",
+ "print \"Slip :\",round(Slip,3);\n",
+ "print \"or \",round((Slip*100)),\"%\"; #answer differes due to rouding"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.03\n",
+ "or 3.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 154
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.26, Page 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Pin_rotor=20;#Power input of rotor in KW\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "f=50.;#in Hz\n",
+ "N=960;#in rpm(Actual speed of motor)\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "RotorCuLoss=S*Pin_rotor*10**3;#in watts\n",
+ "RotorCuLoss=RotorCuLoss/phase;#in watts/phase\n",
+ "R2=1./3;#in ohm(Rotor resistance per phase)\n",
+ "I2=sqrt(RotorCuLoss/R2);#in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print \"Motor current per phase(in Ampere) :\",round(I2,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor current per phase(in Ampere) : 28.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 155
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.27, Page 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "V=500;#in volt\n",
+ "Pout_rotor=20;#Power output of rotor in H.P.\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "N=995.;#in rpm(Actual speed of motor)\n",
+ "cosfi=0.87;#powerfactor(unitless)\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "print \"Slip : \",S;\n",
+ "RotorCuLoss=(S/(1-S))*Pout_rotor*735.5;#in watts\n",
+ "print \"Rotor Cu Loss(in watts) : \",round(RotorCuLoss,2);\n",
+ "Pin_rotor=RotorCuLoss/S;#in watts\n",
+ "print \"Power input to rotor(in KW) :\",round((Pin_rotor/10**3),2);\n",
+ "LineCurrent=Pin_rotor/(sqrt(3)*V*cosfi);#in Ampere\n",
+ "print \"Line Current(in A) :\",round(LineCurrent,2);\n",
+ "RotorFreq=S*f;#in Hz\n",
+ "print \"Rotor Frequency(in Hz) :\",RotorFreq;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.005\n",
+ "Rotor Cu Loss(in watts) : 73.92\n",
+ "Power input to rotor(in KW) : 14.78\n",
+ "Line Current(in A) : 19.62\n",
+ "Rotor Frequency(in Hz) : 0.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 156
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.28, Page 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3;#no. of phase\n",
+ "Efficiency=90;#in %\n",
+ "Speed=480;#in rpm\n",
+ "VL=400;#in volt\n",
+ "IL=75;#in Ampere\n",
+ "cosfi=0.77;#powerfactor(unitless)\n",
+ "d=0.75;#diameter of pulley in meter\n",
+ "\n",
+ "#Calculations\n",
+ "Pin_motor=sqrt(3)*VL*IL*cosfi;#Power input of motor in watts\n",
+ "OutputPower=Pin_motor*Efficiency/100;#in watts\n",
+ "Omega=Speed*2*pi/60;#angular speed in radians/sec\n",
+ "Torque=OutputPower/Omega;#in N-meter\n",
+ "Torque=Torque/9.81;#in Kg-meter\n",
+ "PullOnBelt=Torque/(d/2);#in Kg\n",
+ "\n",
+ "#Result\n",
+ "print \"Pull On Belt(in Kg.) : \",round(PullOnBelt,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pull On Belt(in Kg.) : 194.74\n"
+ ]
+ }
+ ],
+ "prompt_number": 157
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.29, Page 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "#At 3% slip\n",
+ "OutputPower=24;#in KW(At 3% slip)\n",
+ "S=3.;#in %\n",
+ "\n",
+ "#Calculations\n",
+ "Efficiency=(1-S/100);#unitless\n",
+ "InputPower=OutputPower/Efficiency;#in KW\n",
+ "#At 5% slip\n",
+ "S=5;#in %\n",
+ "Efficiency=(1-S/100);#unitless\n",
+ "OutputPower=InputPower*Efficiency;#in KW\n",
+ "\n",
+ "#Result\n",
+ "print \"Mechanical power output at a slip of 5%(in KW) : \",round(OutputPower,1);\n",
+ "#answer differs due to rounding"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mechanical power output at a slip of 5%(in KW) : 24.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 158
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.30, Page 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "#At 50% speed of synchronous speed\n",
+ "S=50.;#in %\n",
+ "UsefulOutput=55;#in H.P.\n",
+ "MechLoss=2;#in H.P.\n",
+ "StatorLoss=13.5;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pout_rotor=UsefulOutput+MechLoss;#in H.P.\n",
+ "Pout_rotor=Pout_rotor*0.7355;#in KW\n",
+ "Efficiency=(1-S/100);#unitless\n",
+ "RotorInputPower=Pout_rotor/Efficiency;#in KW\n",
+ "RotorCuLoss=RotorInputPower-Pout_rotor;#in KW\n",
+ "print \"Cu Loss in the rotor circuit(in KW) :\",round(RotorCuLoss,2);\n",
+ "TotalLosses=StatorLoss+RotorCuLoss+MechLoss*0.7355;#in KW\n",
+ "MotorEfficiency=UsefulOutput*0.7355/(UsefulOutput*0.7355+TotalLosses);\n",
+ "print \"Motor Efficiency(in %) : \",round((MotorEfficiency*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cu Loss in the rotor circuit(in KW) : 41.92\n",
+ "Motor Efficiency(in %) : 41.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 159
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.31, Page 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "N=1440.;#in rpm(Actual speed of motor)\n",
+ "Power_dev=10;#Power developed in H.P.\n",
+ "VL=400;#in volt\n",
+ "cosfi=0.8;#powerfactor(unitless)\n",
+ "f=50;#in Hz\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#fractional slip(unitless)\n",
+ "print \"Slip :\",S;\n",
+ "Omega=N*2*pi/60;#angular speed in radians/sec\n",
+ "Torque=Power_dev*735.5/Omega;#in N-meter\n",
+ "Torque=Torque/9.81;#in Kg-meter\n",
+ "print \"Torque(in Kg-meter) :\",round(Torque,2);\n",
+ "RotorCuLoss=(S/(1-S))*Power_dev*735.5;#in watts\n",
+ "print \"Rotor Cu Loss per phase(in watts) : \",round((RotorCuLoss/3),1);\n",
+ "Pin_rotor=RotorCuLoss/S;#in watts\n",
+ "print \"Power input to rotor(in KW) :\",round((Pin_rotor/10**3),2);\n",
+ "LineCurrent=Pin_rotor/(sqrt(3)*VL*cosfi);#in Ampere\n",
+ "print \"Line Current(in A) :\",round(LineCurrent,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.04\n",
+ "Torque(in Kg-meter) : 4.97\n",
+ "Rotor Cu Loss per phase(in watts) : 102.2\n",
+ "Power input to rotor(in KW) : 7.66\n",
+ "Line Current(in A) : 13.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 160
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.32, Page 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=440;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin_rotor=80;#in KW\n",
+ "fr=100;#revolutions/min\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fr=100./60;#in Hz\n",
+ "S=fr/f;#slip(unitless)\n",
+ "print \"Slip : \",round(S,3);\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-S);#in rpm(Speed of Rotor)\n",
+ "print \"Rotor speed(in rpm) : \",round(N);\n",
+ "RotorCuLoss=S*Pin_rotor*10**3;#in watts\n",
+ "print \"Rotor Cu Loss per phase(in watts) : \",round(RotorCuLoss/phase);\n",
+ "I2=65;#in Ampere\n",
+ "R2=(RotorCuLoss/phase)/I2**2;#in ohm\n",
+ "print \"Rotor resistance per phase(in ohm) : \",round(R2,2);\n",
+ "Pout_rotor=Pin_rotor-RotorCuLoss/10**3;#in KW\n",
+ "print \"Output power of rotor(in H.P.) : \",round((Pout_rotor/0.735),1);\n",
+ "#Note : answers of few part are not accurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.033\n",
+ "Rotor speed(in rpm) : 967.0\n",
+ "Rotor Cu Loss per phase(in watts) : 889.0\n",
+ "Rotor resistance per phase(in ohm) : 0.21\n",
+ "Output power of rotor(in H.P.) : 105.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 161
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.33, Page 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=440;#in volt\n",
+ "f=50.;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin_rotor=20;#in KW\n",
+ "N=960.;#in rpm(Speed of Motor)\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#slip(unitless)\n",
+ "RotorCuLoss=S*Pin_rotor*10**3;#in watts\n",
+ "RotorCuLoss=RotorCuLoss/phase;#in watts/phase\n",
+ "R2=1./3;#Rotor Resistance in ohm per phase\n",
+ "I2=sqrt(RotorCuLoss/R2)\n",
+ "\n",
+ "#Result\n",
+ "print \"Motor current per phase(in Ampere) :\",round(I2,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor current per phase(in Ampere) : 28.28\n"
+ ]
+ }
+ ],
+ "prompt_number": 162
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.34, Page 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "VL=500;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pout_rotor=20;#in H.P.\n",
+ "cosfi=0.87;#power factor\n",
+ "N=995.;#in rpm(Speed of Motor)\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#slip(unitless)\n",
+ "print \"Slip : \",S;\n",
+ "RotorCuLoss=(S/(1-S))*Pout_rotor*735.5;#in watts\n",
+ "print \"Rotor Cu Loss(in watts) :\",round(RotorCuLoss,2);\n",
+ "Pin_rotor=RotorCuLoss/S;#in watts\n",
+ "print \"Power input to rotor(in KW) :\",round((Pin_rotor/10**3),3);\n",
+ "IL=Pin_rotor/(sqrt(3)*VL*cosfi);#in Ampere\n",
+ "print \"Line current (in Ampere) :\",round(IL,2);\n",
+ "Rotorfreq=S*f;#in Hz\n",
+ "print \"Rotor frequency(in Hz) :\",round(Rotorfreq,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.005\n",
+ "Rotor Cu Loss(in watts) : 73.92\n",
+ "Power input to rotor(in KW) : 14.784\n",
+ "Line current (in Ampere) : 19.62\n",
+ "Rotor frequency(in Hz) : 0.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 163
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.35, Page 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Efficiency=85.;#in %\n",
+ "OutputPower=17.;#in KW\n",
+ "OutputPower=17*10**3;#in watts\n",
+ "StatorLosses=900.;#in watt\n",
+ "MechLosses=1100;#in watt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pin=OutputPower/(Efficiency/100);#in watts\n",
+ "#Stator input or rotor input :\n",
+ "Pin_rotor=Pin-StatorLosses;#in watts\n",
+ "P_MechDev=OutputPower+MechLosses;#in watts\n",
+ "RotorCuLosses=Pin_rotor-P_MechDev;#in watts\n",
+ "S=RotorCuLosses/Pin_rotor;#slip(unitless)\n",
+ "print \"Slip :\",round(S,3);\n",
+ "Ns=120*f/P\n",
+ "N=Ns*(1-S);#in rpm(Speed of Motor)\n",
+ "Omega=2*pi*N/60;#angular speed in rad/sec\n",
+ "Torque=P_MechDev/Omega;#in Nm\n",
+ "print \"Torque developed(in Nm) :\",round(Torque,1);\n",
+ "Tm=OutputPower/Omega;#in Nm\n",
+ "Tm=Tm/9.81;#in Kg-meter\n",
+ "print \"Torque at the shaft(in Kg-meter) :\",round(Tm,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.052\n",
+ "Torque developed(in Nm) : 121.6\n",
+ "Torque at the shaft(in Kg-meter) : 11.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 164
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.36, Page 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=500;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin_stator=50;#in KW\n",
+ "Statorlosses=2;#in KW\n",
+ "MechLosses=1;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pin_rotor=Pin_stator-Statorlosses;#in KW\n",
+ "S=3.;#in %\n",
+ "RotorI2RLoss=(S/100)*Pin_rotor;#in KW\n",
+ "print \"Rotor I2R Loss(in KW) :\",RotorI2RLoss;\n",
+ "print \"Rotor core loss at 3% slip is very less and can be neglected.\";\n",
+ "Power_dev=Pin_rotor-RotorI2RLoss;#in KW\n",
+ "print \"Power developed by the rotor(in H.P.) : \",round((Power_dev/0.7355),1);\n",
+ "Outputpower=Power_dev-MechLosses;#in KW\n",
+ "Efficiency=Outputpower/Pin_stator;#unitless\n",
+ "print \"Efficiency of the motor(in %) :\",(Efficiency*100);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor I2R Loss(in KW) : 1.44\n",
+ "Rotor core loss at 3% slip is very less and can be neglected.\n",
+ "Power developed by the rotor(in H.P.) : 63.3\n",
+ "Efficiency of the motor(in %) : 91.12\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.37, Page 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "MotorOutput=20;#in H.P.\n",
+ "MotorOutput=20*735.5;#in watts\n",
+ "S=4.;#full load slip in %\n",
+ "MechLosses=500;#in watts\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pdev_rotor=MotorOutput+MechLosses;#in watts\n",
+ "S=S/100;#fractional slip\n",
+ "RotorI2RLoss=(S/(1-S))*Pdev_rotor;#in watts\n",
+ "print \"Rotor I2R Loss(in watts) :\",RotorI2RLoss;\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor speed(in rpm) :\",Nr;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor I2R Loss(in watts) : 633.75\n",
+ "Rotor speed(in rpm) : 1440.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.38, Page 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "R2=0.02;#in ohm\n",
+ "X2=0.1;#in ohm\n",
+ "\n",
+ "#Calculations\n",
+ "S=R2/X2;#slip(unitless)\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "#At starting S=1\n",
+ "S=1;#slip\n",
+ "#Formula : T=K*S*R2/(R2^2+X2^2)\n",
+ "#Starting torque, Tst=K*R2/(R2^2+S^2*X2^2)\n",
+ "#Maximum torque, Tm=K/(2*X2)\n",
+ "#Tst=(2/3)*Tm : gives a equation\n",
+ "#100*R2^2-30*R2+1=0\n",
+ "a=100;b=-30;c=1;\n",
+ "R21=(-b+sqrt(b**2-4*a*c))/(2*a);#in ohm\n",
+ "R22=(-b-sqrt(b**2-4*a*c))/(2*a);#in ohm\n",
+ "#This R2 is the value of rotor circuit resistance.\n",
+ "RotWinResistance=0.02;#in ohm per phase\n",
+ "Extra_R1=R21-RotWinResistance;#in ohm\n",
+ "Extra_R2=R22-RotWinResistance;#in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Extra Resistance(in ohm) : \",round(Extra_R1,3),\" ohm or \",round((Extra_R2),3),\" ohm.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extra Resistance(in ohm) : 0.242 ohm or 0.018 ohm.\n"
+ ]
+ }
+ ],
+ "prompt_number": 166
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.39, Page 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "MotorShaftOutput=20;#in H.P.\n",
+ "\n",
+ "#Calculations&Results\n",
+ "MotorShaftOutput=20*735.5;#in watts\n",
+ "MechLosses=MotorShaftOutput*2/100;#in watts(2% of the output)\n",
+ "Pdev_rotor=MotorShaftOutput+MechLosses;#in watts\n",
+ "S=3.;#slip in %\n",
+ "S=S/100;#fractional slip\n",
+ "RotorI2RLoss=(S/(1-S))*Pdev_rotor;#in watts\n",
+ "print \"Rotor I2R Loss(in watts) :\",round(RotorI2RLoss);\n",
+ "print \"Rotor iron loss at 3% slip is very small and can be neglected.\";\n",
+ "RotorInput=Pdev_rotor+RotorI2RLoss;#in watts\n",
+ "print \"Rotor Input(in Watts) :\",round(RotorInput,1);\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "Nr=Nr/60;#in rps\n",
+ "T=MotorShaftOutput/(2*pi*Nr);#in Nm\n",
+ "print \"Output torque(in Nm) : \",round(T,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor I2R Loss(in watts) : 464.0\n",
+ "Rotor iron loss at 3% slip is very small and can be neglected.\n",
+ "Rotor Input(in Watts) : 15468.2\n",
+ "Output torque(in Nm) : 96.54\n"
+ ]
+ }
+ ],
+ "prompt_number": 167
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.40, Page 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=500;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Nr=975.;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-Nr)/Ns;#slip\n",
+ "print \"Slip :\",S;\n",
+ "Pin_stator=40;#in KW\n",
+ "StatorLosses=1;#in KW\n",
+ "Pin_rotor=Pin_stator-StatorLosses;#in KW\n",
+ "RotorCuLosses=S*Pin_rotor;#in KW\n",
+ "print \"Rotor Cu Losses(in KW) :\",RotorCuLosses;\n",
+ "RotorOutput=Pin_rotor-RotorCuLosses;#in KW\n",
+ "OutputHP=RotorOutput/0.735;#in H.P.\n",
+ "print \"Output Horse Power : \",round(OutputHP,2);\n",
+ "Efficiency=RotorOutput/Pin_stator;#unitless\n",
+ "print \"Efficiency(in %) :\",round(Efficiency*100);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.025\n",
+ "Rotor Cu Losses(in KW) : 0.975\n",
+ "Output Horse Power : 51.73\n",
+ "Efficiency(in %) : 95.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 168
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.41, Page 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=440;#in volt\n",
+ "f=50.;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3.;#no. of phase\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "fr=120;#alternations per minute\n",
+ "fr=fr/60;#in Hz\n",
+ "S=fr/f;#slip\n",
+ "print \"Slip : \",S;\n",
+ "Nr=Ns-S*Ns;#in rpm\n",
+ "print \"Rotor speed(in rpm) :\",Nr;\n",
+ "Rotor_input=80;#in KW\n",
+ "RotorCuLoss=S*Rotor_input;#in KW\n",
+ "print \"Rotor Cu Loss per phase(in watts) :\",round((RotorCuLoss*10**3)/phase);\n",
+ "P_Mechdev=Rotor_input*10**3-RotorCuLoss*10**3;#in watts\n",
+ "P_Mechdev=P_Mechdev/735.5;#in H.P.\n",
+ "print \"Mechanical power devloped(in H.P.) :\",round(P_Mechdev,1);\n",
+ "Ir=60;#in Ampere\n",
+ "R2=(RotorCuLoss*10**3/phase)/Ir**2;#in ohm\n",
+ "print \"Rotor resistance per phase(in ohm) :\",round(R2,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.04\n",
+ "Rotor speed(in rpm) : 960.0\n",
+ "Rotor Cu Loss per phase(in watts) : 1067.0\n",
+ "Mechanical power devloped(in H.P.) : 104.4\n",
+ "Rotor resistance per phase(in ohm) : 0.296\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.43, Page 175 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50.;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "R2=0.2;#rotor resistance per phase in ohm\n",
+ "Nr=960;#in rpm\n",
+ "Nr_dash=600;#in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-Nr)/Ns;#slip(unitless)\n",
+ "Sdash=(Ns-Nr_dash)/Ns;#slip(unitless)\n",
+ "#Let the new value of resistance is R2dash=(R+0.2)\n",
+ "R=R2*(Sdash/S)-R2;#Resistance to be added in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Resistance to be added(in ohm) : \",R;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance to be added(in ohm) : 1.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.44, Page 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "RotorIntResistance=0.1;#in ohm per phase\n",
+ "X2=1;#in ohm/phase\n",
+ "\n",
+ "#Calculation\n",
+ "Rext=X2-RotorIntResistance;#in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"External resistance to be included(in ohm/phase) : \",Rext;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "External resistance to be included(in ohm/phase) : 0.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.45, Page 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50.;#in Hz\n",
+ "P=6.;#no. of poles\n",
+ "phase=3.;#no. of phase\n",
+ "R2=0.2;#rotor resistance per phase in ohm\n",
+ "N1=960.;#Full load speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S1=(Ns-N1)/Ns;#Full load slip(unitless)\n",
+ "N2=N1*(1-10./100);#New speed in rpm(reduced 10%)\n",
+ "S2=(Ns-N2)/Ns;#New slip(unitless)\n",
+ "#Formula : S=RotorCuLoss/Pin_rotor=3*I2^2*R2/Pin_rotor\n",
+ "#Let the additional resistance is R\n",
+ "R=R2*S2/S1-R2;#Resistance to be added in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Additional Rotor Resistance(in ohm) : \",R;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Additional Rotor Resistance(in ohm) : 0.48\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.46, Page 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "R2inner=0.4;#in ohm\n",
+ "X2inner=2;#in ohm \n",
+ "R2outer=2;#in ohm\n",
+ "X2outer=0.4;#in ohm \n",
+ "#At standstill :\n",
+ "S=1;#unitless\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ratio=(R2outer*S/(R2outer**2+S**2*X2outer**2))/(R2inner*S/(R2inner**2+S**2*X2inner**2));#unitless\n",
+ "print \"Ratio of torque produced by two cages at standstill : \",Ratio;\n",
+ "#At Full load :\n",
+ "S=5;#in %\n",
+ "S=5./100;#fractional\n",
+ "Ratio=(R2outer*S/(R2outer**2+S**2*X2outer**2))/(R2inner*S/(R2inner**2+S**2*X2inner**2));#unitless\n",
+ "print \"Ratio of torque produced by two cages at full load(slip=5%) : \",round(Ratio,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of torque produced by two cages at standstill : 5.0\n",
+ "Ratio of torque produced by two cages at full load(slip=5%) : 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 171
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.47, Page 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "Output=10;#in H.P.\n",
+ "Output=Output*735.5;#in watts\n",
+ "cosfi=0.8;#unitless\n",
+ "ETA=0.83;#unitless\n",
+ "ISCbyIFL=3.5;#ratio of SC current to full load current\n",
+ "VL=500;#in volt\n",
+ "\n",
+ "#Calculations\n",
+ "Input=Output/ETA;#in watts\n",
+ "IFL=Input/(sqrt(3)*VL*cosfi);#in Ampere\n",
+ "ISC=IFL*ISCbyIFL;#in Ampere\n",
+ "Is=ISC/3;#in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print \"Strting current(in Ampere) :\",round(Is,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Strting current(in Ampere) : 14.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 172
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.48, Page 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=5;#ratio of SC current to full load current\n",
+ "S=0.04;#Full load slip\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#(i) for star delta starter : \n",
+ "print \"for star delta starter : \";\n",
+ "Ratio=(1./3)*(ISCbyIFL)**2*S;#Ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",round((Ratio*100),2),\"% of full load torque.\";\n",
+ "#(i) for auto transformer starter :\n",
+ "print \"for auto transformer starter : \";\n",
+ "K=50./100;#tappings\n",
+ "Ratio=K**2*(ISCbyIFL)**2*S;#Ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",(Ratio*100),\"% of full load torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for star delta starter : \n",
+ "Starting torque is 33.33 % of full load torque.\n",
+ "for auto transformer starter : \n",
+ "Starting torque is 25.0 % of full load torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 173
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.49, Page 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=4;#ratio of SC current to full load current\n",
+ "TsBYTf=1./4;#ratio of atarting torque to full load torque\n",
+ "Slip=3;#in %\n",
+ "Slip=3./100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : TsBYTf=Percent_Tapping^2*ISCbyIFL^2*Slip\n",
+ "tapping=sqrt(TsBYTf/(Slip*ISCbyIFL**2));#in %\n",
+ "\n",
+ "#Result\n",
+ "print \"Tapping(in %) :\",round((tapping*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tapping(in %) : 72.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 174
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.50, Page 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=5.;#ratio of SC current to full load current\n",
+ "Slip=5;#in %\n",
+ "Slip=5./100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : 3*IFL=K^2*ISC\n",
+ "K=sqrt(1./(ISCbyIFL/3));#unitless\n",
+ "TsBYTfl=K**2*(ISCbyIFL)**2*Slip;#ratio of starting torque to full load torque\n",
+ "\n",
+ "#Result\n",
+ "print \"Starting torque is \",(TsBYTfl*100),\"% of full load torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Starting torque is 75.0 % of full load torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 175
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.51, Page 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "print \"Star delta starter :\";\n",
+ "ISCbyIFL=6;#ratio of SC current to full load current\n",
+ "Slip=4;#in %\n",
+ "Slip=4./100;#in fraction\n",
+ "\n",
+ "#Calculations&Results\n",
+ "TsBYTfl=(1./3)*(ISCbyIFL)**2*Slip;#ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",(TsBYTfl*100),\"% of full load value.\";\n",
+ "print \"For an auto transformer :\";\n",
+ "K=70.70;#in %\n",
+ "K=70.70/100;#in fraction\n",
+ "TsBYTfl=K**2*(ISCbyIFL)**2*Slip;#ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",round(TsBYTfl*100),\"% of full load torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Star delta starter :\n",
+ "Starting torque is 48.0 % of full load value.\n",
+ "For an auto transformer :\n",
+ "Starting torque is 72.0 % of full load torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 176
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.52, Page 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "V=400.;#in volt\n",
+ "S=3.5;#in %\n",
+ "S=3.5/100;#in fraction\n",
+ "VL=92;#in volts\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#ISC=(V/VL)*IFL;#in Ampere\n",
+ "ISCbyIFL=V/VL;#ratio of SC current to full load current\n",
+ "#2*IFL=K^2*ISC imples that 2*IFL=K^2*(V/VL)*IFL\n",
+ "K=sqrt(2./(V/VL));#in fraction\n",
+ "print \"Necessary tapping(in %) :\",round((K*100),1);\n",
+ "TsBYTfl=K**2*(ISCbyIFL)**2*S;#ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",round((TsBYTfl*100),1),\"% of full load value.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Necessary tapping(in %) : 67.8\n",
+ "Starting torque is 30.4 % of full load value.\n"
+ ]
+ }
+ ],
+ "prompt_number": 179
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.53, Page 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=4;#ratio of SC current to full load current\n",
+ "ISbyIFL=2;#ratio of Supply current to full load current\n",
+ "S=2.5;#in %\n",
+ "S=2.5/100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : ISbyIFL=(1/K^2)*ISCbyIFL\n",
+ "K=sqrt(ISCbyIFL/ISbyIFL);#in fraction\n",
+ "print \"Auto Transormation ratio :\",round(K,2);\n",
+ "TsBYTfl=(1./K**2)*(ISCbyIFL)**2*S;#ratio of starting torque to full load torque\n",
+ "\n",
+ "#Results\n",
+ "print \"Ratio of starting torque to full load torque :\",TsBYTfl;\n",
+ "print \"or Starting torque is \",(TsBYTfl*100),\"% of full load value.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Auto Transormation ratio : 1.41\n",
+ "Ratio of starting torque to full load torque : 0.2\n",
+ "or Starting torque is 20.0 % of full load value.\n"
+ ]
+ }
+ ],
+ "prompt_number": 180
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.54, Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=4;#ratio of SC current to full load current\n",
+ "S=3;#in %\n",
+ "S=3./100;#in fraction\n",
+ "TsBYTfl=1./4;#ratio of starting torque to full load torque\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : TsBYTfl=ISCbyIFL^2*K^2*S\n",
+ "K=sqrt(TsBYTfl/(ISCbyIFL**2*S));#in fraction\n",
+ "\n",
+ "#Result\n",
+ "print \"Auto Transormation ratio(in %) :\",round((K*100),2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Auto Transormation ratio(in %) : 72.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 181
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.55, Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "Output=3;#in H.P.\n",
+ "Output=3*735.5;#in watts\n",
+ "Efficiency=0.83;#unitless\n",
+ "cosfi=0.8;#power factor\n",
+ "\n",
+ "#Calculations\n",
+ "Vl=500;#in volt\n",
+ "Input=Output/Efficiency;#in watts\n",
+ "#Formula : Input=sqrt(3)*Vl*Il*cosfi\n",
+ "Il=Input/(sqrt(3)*Vl*cosfi);#in Ampere\n",
+ "ISCbyIFL=3.5;#ratio of SC current to full load current\n",
+ "ISC=ISCbyIFL*Il;#in Ampere\n",
+ "LineCurrent=ISC/3;#in Ampere(for star delta starter)\n",
+ "\n",
+ "#Result\n",
+ "print \"Line Current(in Ampere) :\",round(LineCurrent,2);\n",
+ "#Note : Ans in the book is not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line Current(in Ampere) : 4.48\n"
+ ]
+ }
+ ],
+ "prompt_number": 182
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.56, Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "Output=15;#in H.P.\n",
+ "Output=15*735.5;#in watts\n",
+ "Vl=400;#in volt\n",
+ "ISCat200=40;#in Ampere(at 200 volt)\n",
+ "Efficiency=0.88;#unitless\n",
+ "cosfi=0.85;#power factor\n",
+ "\n",
+ "#Calculations\n",
+ "ISCat400=ISCat200*(400./200);#in Ampere(at 400 volt)\n",
+ "Input=Output/Efficiency;#in watts\n",
+ "Ifl=Input/(sqrt(3)*Vl*cosfi);#in Ampere\n",
+ "#starting line current with star delta starter\n",
+ "Is=ISCat400/3;#in Ampere\n",
+ "Ratio=Is/Ifl;#ratio of starting current to full load current\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio of line current at starting to full load current :\",round(Ratio,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of line current at starting to full load current : 1.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 183
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.57, Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "#With star delta starter : \n",
+ "TstBYTfl=0.35;#ratio of starting torque to full load torque\n",
+ "IstBYIfl=1.75;#ratio of starting current to full load current\n",
+ "\n",
+ "#Calculations&Results\n",
+ "ISCBYIs=sqrt(3);#ratio of SC current to starting current\n",
+ "ISCBYIfl=sqrt(3)*IstBYIfl;#ratio of SC current to full load current\n",
+ "#Formula : TstBYTfl=(ISCBYIfl)^2*S\n",
+ "S=TstBYTfl/(ISCBYIfl)**2;#in fraction\n",
+ "print \"Full load Slip : \",round(S,3);\n",
+ "#With auto transformer with winding in delta : \n",
+ "Ip=sqrt(3)*1.750*0.8;#full voltage phase current in Ampere\n",
+ "IlBYIf=4.2;#ratio of Line current to full load current\n",
+ "Ratio=IlBYIf**2*S;#ratio of starting current to full load current\n",
+ "print \"Ratio of line current at starting to full load current :\",round(Ratio,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load Slip : 0.038\n",
+ "Ratio of line current at starting to full load current : 0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 188
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.58, Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "R2=0.25;#in ohm per phase\n",
+ "S=2;#in %\n",
+ "S=2./100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "#When speed reduced to 10%\n",
+ "NewSpeed=Nr*90/100;#in rpm\n",
+ "Sdash=(Ns-NewSpeed)/Ns;#in fraction\n",
+ "R2dash=(Sdash/S)*R2;#in ohm per phase\n",
+ "R=R2dash-R2;#in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of resistance to be added(in ohm) :\",R;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of resistance to be added(in ohm) : 1.225\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.59, Page 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "R2=0.25;#in ohm per phase\n",
+ "N=1440.;#in rpm at full load\n",
+ "NewSpeed=1200;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#in %\n",
+ "NewS=(Ns-NewSpeed)/Ns;#in fraction\n",
+ "S1=S;S2=NewS;#slip new and old\n",
+ "#Torque remaining same : S1/R2=S2/(R2+R)\n",
+ "R=S2*R2/S1-R2;#in ohm\n",
+ "print \"External resistance per phase(in ohm) :\",R; #incorrect answer in textbook\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "#If S1 is taken as 0.03 and S2 as 0.127\n",
+ "S1=0.03;#slip in fraction\n",
+ "S2=0.127;#slip in fraction\n",
+ "R=S2*R2/S1-R2;#in ohm\n",
+ "print \"External resistance per phase(in ohm) :\",round(R,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "External resistance per phase(in ohm) : -0.25\n",
+ "External resistance per phase(in ohm) : 0.808\n"
+ ]
+ }
+ ],
+ "prompt_number": 194
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.60, Page 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "S=4;#in %\n",
+ "S=4./100;#in fraction\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N1=Ns-Ns*S;#in rpm\n",
+ "#When speed reduced to 10%\n",
+ "N2=N1*85/100;#in rpm(NewSpeed)\n",
+ "print \"New speed(in rpm) :\",N2;\n",
+ "#New speed is reduced by 15 %\n",
+ "Sdash=(Ns-N2)/Ns;#in fraction\n",
+ "print \"New Slip : \",Sdash;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New speed(in rpm) : 1224.0\n",
+ "New Slip : 0.184\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.61, Page 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin=60;#in KW\n",
+ "StatorLoss=1.2;#in KW\n",
+ "WindingLoss=1.8;#in KW\n",
+ "S=4;#in %\n",
+ "S=4./100;#in fraction\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor speed(in rpm) :\",Nr;\n",
+ "Pin_rotor=Pin-StatorLoss;#in KW\n",
+ "RotorCuLoss=S*Pin_rotor;#in KW\n",
+ "print \"Rotor Cu Loss(in KW) : \",RotorCuLoss;\n",
+ "Pout_rotor=Pin_rotor-WindingLoss-RotorCuLoss;#in KW\n",
+ "Efficiency=(Pout_rotor/Pin)*100;#in %\n",
+ "print \"Efficiency(in %) :\",round(Efficiency);\n",
+ "HP=Pout_rotor*10**3/735.5;#in H.P.\n",
+ "print \"Horse Power(inH.P.) :\",round(HP,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor speed(in rpm) : 1440.0\n",
+ "Rotor Cu Loss(in KW) : 2.352\n",
+ "Efficiency(in %) : 91.0\n",
+ "Horse Power(inH.P.) : 74.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 195
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_2_1.ipynb b/Electrical_Machines_II/chapter_2_1.ipynb
new file mode 100755
index 00000000..c18790d9
--- /dev/null
+++ b/Electrical_Machines_II/chapter_2_1.ipynb
@@ -0,0 +1,2810 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e3e9de8b11024daf372011e6906cf967e4f06ac156a70592b24845e8bc2b4696"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Induction Motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=2;#no. of poles\n",
+ "f=60;#in Hz\n",
+ "N=3460.;#in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Slip=Ns-N;#in rpm\n",
+ "PercentageSlip=((Ns-N)/Ns)*100;#in %\n",
+ "\n",
+ "#Results\n",
+ "print \"Synchronous speed in rpm : \",Ns;\n",
+ "print \"Percentage Slip : \",round(PercentageSlip,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous speed in rpm : 3600\n",
+ "Percentage Slip : 3.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 124
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=8.;#no. of poles\n",
+ "f=50.;#in Hz\n",
+ "N=700.;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Part (a) :\n",
+ "Ns=120*f/P;#in rpm\n",
+ "print \"Synchronous speed in rpm : \",Ns;\n",
+ "#Part (b) :\n",
+ "S=(Ns-N)*100/Ns;#in %\n",
+ "print \"Slip(in %) : \",round(S,2);\n",
+ "#Part (c) :\n",
+ "#At the time of stsrt S=1;\n",
+ "fdash=f;#in Hz\n",
+ "print \"Rotor frequeny at the time of starting(in Hz) : \",fdash;\n",
+ "#Part (d) :\n",
+ "fdash=(S/100)*f;#in Hz\n",
+ "print \"Rotor frequeny at the given speed(in Hz) : \",round(fdash,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous speed in rpm : 750.0\n",
+ "Slip(in %) : 6.67\n",
+ "Rotor frequeny at the time of starting(in Hz) : 50.0\n",
+ "Rotor frequeny at the given speed(in Hz) : 3.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 125
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, Page 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=10;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "N=600;#in rpm\n",
+ "Nr=1440;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "f=P*N/120;#in Hz\n",
+ "#When P=2\n",
+ "P=2;#no. of poles\n",
+ "Ns=120*f/P;#in rpm\n",
+ "#When P=4\n",
+ "P=4;#no. of poles\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-Nr)*100/Ns;#Slip in %\n",
+ "print \"Percentage Slip(in %) : \",(S);\n",
+ "print \"No. of poles : \",(S);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage Slip(in %) : 4\n",
+ "No. of poles : 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=8;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "fr=1.5;#in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : fr=S*f\n",
+ "S=fr/f;#slip(unitless)\n",
+ "Ns=120*f/P;#in rpm\n",
+ "#Formula : S=(Ns-Nr)/Ns\n",
+ "Nr=Ns-S*Ns;#in rpm\n",
+ "\n",
+ "#Results\n",
+ "print \"Motor running speed in rpm : \",round(Nr);\n",
+ "print \"Slip(in %):\",(S*100);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor running speed in rpm : 728.0\n",
+ "Slip(in %): 3.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=2;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "S=4.;#in %\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Part (i) : \n",
+ "Ns=f/P;#in rps\n",
+ "Ns=Ns*60;#in rpm\n",
+ "print \"Synchronous speed in rpm : \",Ns;\n",
+ "#Part (ii) :\n",
+ "print \"Slip = \",(S),\"% or \",(S/100);\n",
+ "#Part (iii) :\n",
+ "N=Ns*(1-S/100);#in rpm\n",
+ "print \"Actual speed in rpm :\",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Synchronous speed in rpm : 1500\n",
+ "Slip = 4.0 % or 0.04\n",
+ "Actual speed in rpm : 1440.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, Page 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "P=4;#no. of poles\n",
+ "f1=50;#in Hz\n",
+ "fdash=1.5;#in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "S=fdash/f1;#unitless\n",
+ "print \"Slip : \",S;\n",
+ "Ns=120*f1/P;#in rpm\n",
+ "N=Ns*(1-S);#in rpm\n",
+ "\n",
+ "#Result\n",
+ "print \"Speed of motor in rpm :\",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.03\n",
+ "Speed of motor in rpm : 1455.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7, Page 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "N=1440;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "f=50;#in Hz\n",
+ "print \"For this speed of 1440 rpm the synchronous speed may be either 1500 rpm or 3000 rpm.\";\n",
+ "Ns=1500;#in rpm\n",
+ "P=4;#no. of poles\n",
+ "print \"No. of poles : \",P;\n",
+ "Slip=(Ns-N)*100/Ns;#in %\n",
+ "print Slip,\"Slip(in %) : \",Slip;\n",
+ "speed1=Ns-N;#Speed of rotor flux with respect to rotor\n",
+ "print \"Speed of rotor flux with respect to rotor in rpm : \",speed1;\n",
+ "speed2=(speed1)+N;#Speed of rotor flux with respect to stator\n",
+ "print \"Speed of rotor flux with respect to stator in rpm :\",speed2;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For this speed of 1440 rpm the synchronous speed may be either 1500 rpm or 3000 rpm.\n",
+ "No. of poles : 4\n",
+ "4 Slip(in %) : 4\n",
+ "Speed of rotor flux with respect to rotor in rpm : 60\n",
+ "Speed of rotor flux with respect to stator in rpm : 1500\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, Page 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "E2=100;#in volt\n",
+ "R2=0.05;#in ohm\n",
+ "X2=0.1;#im ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "E2perphase=E2/sqrt(3);#in volt\n",
+ "#part (a) : \n",
+ "S=0.04;#slip\n",
+ "I2=S*E2perphase/sqrt(R2**2+(S*X2)**2);#in Ampere\n",
+ "print \"At 4% slip, Rotor current in Ampere : \",round(I2,2);\n",
+ "fi2=degrees(acos(R2/sqrt(R2**2+(S*X2)**2)));#in degree\n",
+ "print \"At 4% slip, Phase angle between rotor voltage and rotor current in degree :\",round(fi2,2);\n",
+ "#part (b) : \n",
+ "S=1;#slip\n",
+ "I2=S*E2perphase/sqrt(R2**2+(S*X2)**2);#in Ampere\n",
+ "print \"At 100% slip, Rotor current in Ampere : \",round(I2,2);\n",
+ "fi2=degrees(acos(R2/sqrt(R2**2+(S*X2)**2)));#in degree\n",
+ "print \"At 100% slip, Phase angle between rotor voltage and rotor current in degree :\",round(fi2,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 4% slip, Rotor current in Ampere : 46.04\n",
+ "At 4% slip, Phase angle between rotor voltage and rotor current in degree : 4.57\n",
+ "At 100% slip, Rotor current in Ampere : 516.4\n",
+ "At 100% slip, Phase angle between rotor voltage and rotor current in degree : 63.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9, Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "E2=100.;#in volt\n",
+ "R2=0.4;#in ohm\n",
+ "X2=2.25;#im ohm\n",
+ "\n",
+ "#Calculations\n",
+ "E2perphase=E2/sqrt(3);#in volt\n",
+ "S=4.;#in %\n",
+ "E=(S/100)*E2perphase;#rotor induced emf at a slip=4% in volt\n",
+ "Z2=sqrt(R2**2+((S/100)*X2)**2);\n",
+ "I2=E/Z2;#in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print \"Rotor current in Ampere : \",round(I2,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor current in Ampere : 5.63\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "f=50;#in Hz\n",
+ "R2=0.2;#in ohm\n",
+ "X2=2;#im ohm\n",
+ "E2=60;#in volt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "E2perphase=E2/sqrt(3);#in volt\n",
+ "#case (i) : S=1 \n",
+ "S=1;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"At standstill : Rotor current in Ampere : \",round(I2,2);\n",
+ "#case (ii) : S=0.1 \n",
+ "S=0.1;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"for 10% slip : Rotor current in Ampere : \",round(I2,2);\n",
+ "#case (iii) : S=0.05 \n",
+ "S=0.05;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"for 5% slip : Rotor current in Ampere : \",round(I2,2);\n",
+ "#case (iv) : S=0.01 \n",
+ "S=0.01;#unitless\n",
+ "Z2=sqrt(R2**2+(S*X2)**2);\n",
+ "I2=E2perphase*S/Z2;#in Ampere\n",
+ "print \"for 1% slip : Rotor current in Ampere : \",round(I2,2);\n",
+ "#Note : Answer in the book is wrong for S=0.05 and S=0.01"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At standstill : Rotor current in Ampere : 17.23\n",
+ "for 10% slip : Rotor current in Ampere : 12.25\n",
+ "for 5% slip : Rotor current in Ampere : 7.75\n",
+ "for 1% slip : Rotor current in Ampere : 1.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, Page 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "R2=0.5;#in ohm\n",
+ "X=4.5;#im ohm\n",
+ "E=50;#line voltage in volt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Eperphase=E/sqrt(3);#in volt\n",
+ "#part (a) : Sliprings are short circuited\n",
+ "Z2=sqrt(R2**2+X**2);#in ohm\n",
+ "I2=Eperphase/Z2;#in Ampere\n",
+ "print \"Sliprings are short circuited, Rotor current in Ampere : \",round(I2,2);\n",
+ "cosfi2=R2/Z2;#unitless\n",
+ "print \"Power factor : \",round(cosfi2,2);\n",
+ "#part (b) : Sliprings are connected \n",
+ "R2=0.4;#in ohm\n",
+ "Z2=sqrt(R2**2+X**2);#in ohm\n",
+ "I2=Eperphase/Z2;#in Ampere\n",
+ "print \"Sliprings are short circuited, Rotor current in Ampere : \",round(I2,2);\n",
+ "cosfi2=R2/Z2;#unitless\n",
+ "print \"Power factor : \",round(cosfi2,2);\n",
+ "#Note : answer of part (a) I2 is not curate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sliprings are short circuited, Rotor current in Ampere : 6.38\n",
+ "Power factor : 0.11\n",
+ "Sliprings are short circuited, Rotor current in Ampere : 6.39\n",
+ "Power factor : 0.09\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12, Page 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data : \n",
+ "R2=0.02;#in ohm\n",
+ "X2=0.1;#im ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#let external resistance per phase = r then R2=R2+r ohm\n",
+ "S=1;#slip at starting\n",
+ "print \"Since at start speed is zero and slip is, therefore, unity or R2=X2\";\n",
+ "r=X2-R2;#in ohm\n",
+ "print \"External resistance per phase added to the rotor circuit in ohms : \",r;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since at start speed is zero and slip is, therefore, unity or R2=X2\n",
+ "External resistance per phase added to the rotor circuit in ohms : 0.08\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13, Page 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data : \n",
+ "P=4;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.03;#in ohm\n",
+ "X2=0.12;#im ohm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Smax=R2/X2;#unitless\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-Smax);#in rpm\n",
+ "print \"Speed corresponding to maximum torque(in rpm) :\",N;\n",
+ "#alfa=(R2+r)/X2\n",
+ "#Ratio of starting torque to max torque=75/100=2*alfa/(alfa^2+1)\n",
+ "#It gives : 3*alfa^2-8*alfa+3=0\n",
+ "#coefficients :\n",
+ "a=3;b=-8;c=3;\n",
+ "alfa1=(-b+sqrt(b**2-4*a*c))/(2*a);alfa2=(-b-sqrt(b**2-4*a*c))/(2*a);\n",
+ "print \"rejecting higher values, alfa = \",round(alfa2,4);\n",
+ "fdash=1.5;#in Hz\n",
+ "r=alfa2*X2-R2;#in ohm;\n",
+ "print \"External rotor resistance per phase(in ohm) : \",round(r,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed corresponding to maximum torque(in rpm) : 1125.0\n",
+ "rejecting higher values, alfa = 0.4514\n",
+ "External rotor resistance per phase(in ohm) : 0.0242\n"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14, Page 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=4;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.024;#in ohm\n",
+ "X2=0.6;#in ohm \n",
+ "\n",
+ "#Calculations&Results\n",
+ "Sm=R2/X2;#slip corresponding to max torque\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-Sm);#in rpm\n",
+ "print \"Speed corresponding to maximum torque in rpm : \",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed corresponding to maximum torque in rpm : 1440.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=6;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "Sf=4.;#in %\n",
+ "R2=0.01;#in ohm\n",
+ "X2=0.05;#im \n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ratio=((R2/X2)**2+(Sf/100)**2)/(2*R2*(Sf/100)/X2);#ratio of max torque to full load torque\n",
+ "print \"Maximum torque, Tmax=\",(Ratio),\"Tf\";\n",
+ "Sm=R2/X2;#slip corresponding to max torque\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-Sm);#in rpm\n",
+ "print \"Speed corresponding to maximum torque in rpm : \",N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum torque, Tmax= 2.6 Tf\n",
+ "Speed corresponding to maximum torque in rpm : 800.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=12;#no. of poles\n",
+ "f=50.;#in Hz\n",
+ "R2=0.03;#in ohm\n",
+ "X2=0.5;#im \n",
+ "\n",
+ "#Calculations&Results\n",
+ "S=R2/X2;#unitless\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-S);#in rpm\n",
+ "print \"Speed at maximum torque in rpm : \",N;\n",
+ "S=(Ns-495)/Ns;#slip at 495 rpm speed\n",
+ "Ratio=(2*R2*S/X2)/((R2/X2)**2+S**2);#ratio of max torque to full load torque\n",
+ "print \"Ratio of full load torque to max torque(in %) :\",round((Ratio*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed at maximum torque in rpm : 470.0\n",
+ "Ratio of full load torque to max torque(in %) : 32.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.17, Page 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "P=12;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.5;#in ohm\n",
+ "N=475.;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "X2=R2/S;#in ohm\n",
+ "#\"At maximum torque, Tmax is proportional to 1/2*X2 or 1/20\";\n",
+ "# \"Ts is proportional to (R2+R)/((R2+R)^2+X2^2)\";\n",
+ "# \"Also, Ts is proportional to 1(20*3)\";\n",
+ "# \"Equating the two eqn we have : (0.5*R)/(R2+R)^2+X2^2\";\n",
+ "#R^2-59R+70.25=0 : \n",
+ "#coefficients :\n",
+ "a=1;b=-59;c=70.25;\n",
+ "R=(-b-sqrt(b**2-4*a*c))/(2*a);\n",
+ "print \"Resistance R to be inserted in series (in ohm) :\",round(R,1);\n",
+ "#Note : answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance R to be inserted in series (in ohm) : 1.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, Page 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=4;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "R2=0.04;#in ohm\n",
+ "N=1200.;#in rpm(speed at max torque)\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm(synchronous speed)\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "X2=R2/S;#in ohm\n",
+ "#Starting torque is the torque devloped when S=1: Tst=K*R2/(R2^2+X2^2)\n",
+ "#Let say, m=R2/(R2^2+X2^2) then Tst=K*m\n",
+ "m=R2/(R2**2+X2**2);#assumed\n",
+ "\n",
+ "#Results\n",
+ "print \"Starting torque, Tst=\",round(m,2),\"k\";\n",
+ "print \"Maximum torque, Tm=K/\",(2*X2);\n",
+ "print \"Thus, Tst in terms of Tm can be expressed as : \";\n",
+ "print \"Tst/Tm=\",(0.96*0.4),\" or Tst=\",(0.96*0.4),\"Tm\";\n",
+ "print \"Therefore, staring torque is \",(0.96*0.4*100),\"% of maximum torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Starting torque, Tst= 0.96 k\n",
+ "Maximum torque, Tm=K/ 0.4\n",
+ "Thus, Tst in terms of Tm can be expressed as : \n",
+ "Tst/Tm= 0.384 or Tst= 0.384 Tm\n",
+ "Therefore, staring torque is 38.4 % of maximum torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 144
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.19, Page 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=6;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "fr=3.;#in Hz\n",
+ "R2=0.5;#in ohm\n",
+ "N=475;#in rpm\n",
+ "RotorInput=111.9;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=fr*100/f;#unitless\n",
+ "print \"% Slip : \",S;\n",
+ "N=Ns*(1-S/100);#in rpm\n",
+ "print \"Speed of motor in rpm : \",N;\n",
+ "RotorCopperLoss=RotorInput*S/100;#in KW\n",
+ "RotorCopperLoss=RotorCopperLoss/3;#in KW/Phase\n",
+ "print \"Rotor Copper Loss per phase(in KW) : \",RotorCopperLoss;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% Slip : 6.0\n",
+ "Speed of motor in rpm : 940.0\n",
+ "Rotor Copper Loss per phase(in KW) : 2.238\n"
+ ]
+ }
+ ],
+ "prompt_number": 146
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.20, Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3.;#no. of phase\n",
+ "Pin_stator=60.;#Power input of stator in KW\n",
+ "TotalStatorLosses=1.;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pin_rotor=Pin_stator-TotalStatorLosses;#Power input of rotor in KW\n",
+ "S=3.;#slip in %\n",
+ "RotorCopperLosses=(S/100)*Pin_rotor;#in KW\n",
+ "RotorCopperLosses=RotorCopperLosses/phase;#in KW per phase\n",
+ "print \"Rotor Copper Losses per phase(in watts) : \",(RotorCopperLosses*10**3);\n",
+ "TotalMechPowerDev=Pin_rotor*(1-S/100);#in KW\n",
+ "print \"Total mechanial power developed(in KW) : \",TotalMechPowerDev;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor Copper Losses per phase(in watts) : 590.0\n",
+ "Total mechanial power developed(in KW) : 57.23\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.21, Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=6;#no. of poles\n",
+ "S=4.;#slip in %\n",
+ "Output=20;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "FrictionalLoss=250;#in watts\n",
+ "f=50;#in Hz\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns-Ns*(S/100);#in rpm\n",
+ "print \"Speed of motor(in rpm) : \",N;\n",
+ "MechPowerDeveloped=Output*10**3+FrictionalLoss;#in Watts\n",
+ "S=S/100;#unitless\n",
+ "RotorCopperLoss=(S/(1-S))*MechPowerDeveloped;#in watts\n",
+ "print \"Rotor Copper Loss(in watts) : \",RotorCopperLoss;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of motor(in rpm) : 960.0\n",
+ "Rotor Copper Loss(in watts) : 843.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.22, Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "Pin_rotor=80;#Power input of rotor in KW\n",
+ "f=50;#in Hz\n",
+ "fdash=100;#alternations per minute\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fdash=100./60;#in Hz\n",
+ "S=fdash/f;#unitless\n",
+ "print \"Slip : \",round(S,4);\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "N=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor Speed(in rpm) : \",round(N);\n",
+ "MechPowerDev=Pin_rotor*(1-S)*10**3/735.5;#in H.P.\n",
+ "print \"Total mechanial power developed(in KW) : \",round(MechPowerDev,2);\n",
+ "RotorCopperLoss=S*Pin_rotor*10**3;#in watts\n",
+ "print \"Rotor Copper Loss(in watts) : \",RotorCopperLoss;\n",
+ "CopperLoss=RotorCopperLoss/phase;#in watts/phase\n",
+ "print \"Copper Loss per phase(in watts) : \",round(CopperLoss);\n",
+ "I2=60;#in Ampere\n",
+ "R2=CopperLoss/I2**2;#in ohm\n",
+ "print \"Rotor resistance per phase(in ohm) : \",round(R2,3);\n",
+ "#Note : Some answers are not accurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.0333\n",
+ "Rotor Speed(in rpm) : 967.0\n",
+ "Total mechanial power developed(in KW) : 105.14\n",
+ "Rotor Copper Loss(in watts) : 2666.66666667\n",
+ "Copper Loss per phase(in watts) : 889.0\n",
+ "Rotor resistance per phase(in ohm) : 0.247\n"
+ ]
+ }
+ ],
+ "prompt_number": 148
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.23, Page 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "UsefulOutput=55;#in H.P.\n",
+ "MechLosses=2;#in H.P.\n",
+ "Stator_Losses=13.5;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "MechPowerDev=UsefulOutput+MechLosses;#in H.P.\n",
+ "MechPowerDev=MechPowerDev*735.5/1000;#in KW\n",
+ "S=50.;#in %\n",
+ "Pin_Rotor=MechPowerDev/(1-S/100);#in KW\n",
+ "RotorCopperLoss=(S/100)*Pin_Rotor;#in KW\n",
+ "print \"Rotor Copper Loss(in KW) : \",round(RotorCopperLoss,2);\n",
+ "Pin_Motor=Pin_Rotor+Stator_Losses;#in KW\n",
+ "Efficiency=UsefulOutput*0.7355/Pin_Motor;#/unitless\n",
+ "print \"Effiiency(in %) :\",round((Efficiency*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor Copper Loss(in KW) : 41.92\n",
+ "Effiiency(in %) : 41.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.24, Page 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "Pin_rotor=80;#Power input of rotor in KW\n",
+ "f=50;#in Hz\n",
+ "fdash=100;#alternations per minute\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fdash=100./60;#in Hz\n",
+ "S=fdash/f;#unitless\n",
+ "print \"Slip : \",round(S,3);\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "N=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor Speed(in rpm) : \",round(N);\n",
+ "RotorCopperLoss=S*Pin_rotor*10**3;#in watts\n",
+ "#print \"Rotor Copper Loss(in watts) : \",RotorCopperLoss;\n",
+ "CopperLoss=RotorCopperLoss/phase;#in watts/phase\n",
+ "print \"Copper Loss per phase(in watts) : \",round(CopperLoss);\n",
+ "I2=60;#in Ampere\n",
+ "R2=CopperLoss/I2**2;#in ohm\n",
+ "print \"Rotorresistance per phase(in ohm) : \",round(R2,3);\n",
+ "MechPowerDev=Pin_rotor*(1-S)*10**3/735.5;#in H.P.\n",
+ "print \"Total mechanial power developed(in H.P.) : \",round(MechPowerDev,1);\n",
+ "#Note : Some answers are not accurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.033\n",
+ "Rotor Speed(in rpm) : 967.0\n",
+ "Copper Loss per phase(in watts) : 889.0\n",
+ "Rotorresistance per phase(in ohm) : 0.247\n",
+ "Total mechanial power developed(in H.P.) : 105.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.25, Page 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Efficiency=0.9;#unitless\n",
+ "Output=50;#in H.P.\n",
+ "\n",
+ "#Calculations\n",
+ "#formula : Efficiency=Output/(Output+Losses) \n",
+ "Losses=((1-Efficiency)/Efficiency)*Output*735.5;#in watts\n",
+ "Losses=round(Losses);#round\n",
+ "#Let, Ststor Cu loss = Rotor Cu los = Iron loss=K\n",
+ "#Mechanical Loss = Iron Loss/3 = K/3\n",
+ "#TotalLosses=k+K+K+K/3\n",
+ "K=Losses*3/10;#in watts\n",
+ "Pin_rotor=Output*735.5+Losses;#in watts\n",
+ "Slip=K/Pin_rotor;#unitless\n",
+ "\n",
+ "#Results\n",
+ "print \"Slip :\",round(Slip,3);\n",
+ "print \"or \",round((Slip*100)),\"%\"; #answer differes due to rouding"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.03\n",
+ "or 3.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 154
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.26, Page 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Pin_rotor=20;#Power input of rotor in KW\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "f=50.;#in Hz\n",
+ "N=960;#in rpm(Actual speed of motor)\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "RotorCuLoss=S*Pin_rotor*10**3;#in watts\n",
+ "RotorCuLoss=RotorCuLoss/phase;#in watts/phase\n",
+ "R2=1./3;#in ohm(Rotor resistance per phase)\n",
+ "I2=sqrt(RotorCuLoss/R2);#in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print \"Motor current per phase(in Ampere) :\",round(I2,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor current per phase(in Ampere) : 28.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 155
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.27, Page 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "V=500;#in volt\n",
+ "Pout_rotor=20;#Power output of rotor in H.P.\n",
+ "phase=3;#no. of phase\n",
+ "P=6;#no. of poles\n",
+ "f=50;#in Hz\n",
+ "N=995.;#in rpm(Actual speed of motor)\n",
+ "cosfi=0.87;#powerfactor(unitless)\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#synchronous speed in rpm\n",
+ "S=(Ns-N)/Ns;#unitless\n",
+ "print \"Slip : \",S;\n",
+ "RotorCuLoss=(S/(1-S))*Pout_rotor*735.5;#in watts\n",
+ "print \"Rotor Cu Loss(in watts) : \",round(RotorCuLoss,2);\n",
+ "Pin_rotor=RotorCuLoss/S;#in watts\n",
+ "print \"Power input to rotor(in KW) :\",round((Pin_rotor/10**3),2);\n",
+ "LineCurrent=Pin_rotor/(sqrt(3)*V*cosfi);#in Ampere\n",
+ "print \"Line Current(in A) :\",round(LineCurrent,2);\n",
+ "RotorFreq=S*f;#in Hz\n",
+ "print \"Rotor Frequency(in Hz) :\",RotorFreq;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.005\n",
+ "Rotor Cu Loss(in watts) : 73.92\n",
+ "Power input to rotor(in KW) : 14.78\n",
+ "Line Current(in A) : 19.62\n",
+ "Rotor Frequency(in Hz) : 0.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 156
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.28, Page 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "phase=3;#no. of phase\n",
+ "Efficiency=90;#in %\n",
+ "Speed=480;#in rpm\n",
+ "VL=400;#in volt\n",
+ "IL=75;#in Ampere\n",
+ "cosfi=0.77;#powerfactor(unitless)\n",
+ "d=0.75;#diameter of pulley in meter\n",
+ "\n",
+ "#Calculations\n",
+ "Pin_motor=sqrt(3)*VL*IL*cosfi;#Power input of motor in watts\n",
+ "OutputPower=Pin_motor*Efficiency/100;#in watts\n",
+ "Omega=Speed*2*pi/60;#angular speed in radians/sec\n",
+ "Torque=OutputPower/Omega;#in N-meter\n",
+ "Torque=Torque/9.81;#in Kg-meter\n",
+ "PullOnBelt=Torque/(d/2);#in Kg\n",
+ "\n",
+ "#Result\n",
+ "print \"Pull On Belt(in Kg.) : \",round(PullOnBelt,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pull On Belt(in Kg.) : 194.74\n"
+ ]
+ }
+ ],
+ "prompt_number": 157
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.29, Page 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "#At 3% slip\n",
+ "OutputPower=24;#in KW(At 3% slip)\n",
+ "S=3.;#in %\n",
+ "\n",
+ "#Calculations\n",
+ "Efficiency=(1-S/100);#unitless\n",
+ "InputPower=OutputPower/Efficiency;#in KW\n",
+ "#At 5% slip\n",
+ "S=5;#in %\n",
+ "Efficiency=(1-S/100);#unitless\n",
+ "OutputPower=InputPower*Efficiency;#in KW\n",
+ "\n",
+ "#Result\n",
+ "print \"Mechanical power output at a slip of 5%(in KW) : \",round(OutputPower,1);\n",
+ "#answer differs due to rounding"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mechanical power output at a slip of 5%(in KW) : 24.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 158
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.30, Page 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "#At 50% speed of synchronous speed\n",
+ "S=50.;#in %\n",
+ "UsefulOutput=55;#in H.P.\n",
+ "MechLoss=2;#in H.P.\n",
+ "StatorLoss=13.5;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pout_rotor=UsefulOutput+MechLoss;#in H.P.\n",
+ "Pout_rotor=Pout_rotor*0.7355;#in KW\n",
+ "Efficiency=(1-S/100);#unitless\n",
+ "RotorInputPower=Pout_rotor/Efficiency;#in KW\n",
+ "RotorCuLoss=RotorInputPower-Pout_rotor;#in KW\n",
+ "print \"Cu Loss in the rotor circuit(in KW) :\",round(RotorCuLoss,2);\n",
+ "TotalLosses=StatorLoss+RotorCuLoss+MechLoss*0.7355;#in KW\n",
+ "MotorEfficiency=UsefulOutput*0.7355/(UsefulOutput*0.7355+TotalLosses);\n",
+ "print \"Motor Efficiency(in %) : \",round((MotorEfficiency*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cu Loss in the rotor circuit(in KW) : 41.92\n",
+ "Motor Efficiency(in %) : 41.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 159
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.31, Page 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "N=1440.;#in rpm(Actual speed of motor)\n",
+ "Power_dev=10;#Power developed in H.P.\n",
+ "VL=400;#in volt\n",
+ "cosfi=0.8;#powerfactor(unitless)\n",
+ "f=50;#in Hz\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#fractional slip(unitless)\n",
+ "print \"Slip :\",S;\n",
+ "Omega=N*2*pi/60;#angular speed in radians/sec\n",
+ "Torque=Power_dev*735.5/Omega;#in N-meter\n",
+ "Torque=Torque/9.81;#in Kg-meter\n",
+ "print \"Torque(in Kg-meter) :\",round(Torque,2);\n",
+ "RotorCuLoss=(S/(1-S))*Power_dev*735.5;#in watts\n",
+ "print \"Rotor Cu Loss per phase(in watts) : \",round((RotorCuLoss/3),1);\n",
+ "Pin_rotor=RotorCuLoss/S;#in watts\n",
+ "print \"Power input to rotor(in KW) :\",round((Pin_rotor/10**3),2);\n",
+ "LineCurrent=Pin_rotor/(sqrt(3)*VL*cosfi);#in Ampere\n",
+ "print \"Line Current(in A) :\",round(LineCurrent,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.04\n",
+ "Torque(in Kg-meter) : 4.97\n",
+ "Rotor Cu Loss per phase(in watts) : 102.2\n",
+ "Power input to rotor(in KW) : 7.66\n",
+ "Line Current(in A) : 13.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 160
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.32, Page 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=440;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin_rotor=80;#in KW\n",
+ "fr=100;#revolutions/min\n",
+ "\n",
+ "#Calculations&Results\n",
+ "fr=100./60;#in Hz\n",
+ "S=fr/f;#slip(unitless)\n",
+ "print \"Slip : \",round(S,3);\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N=Ns*(1-S);#in rpm(Speed of Rotor)\n",
+ "print \"Rotor speed(in rpm) : \",round(N);\n",
+ "RotorCuLoss=S*Pin_rotor*10**3;#in watts\n",
+ "print \"Rotor Cu Loss per phase(in watts) : \",round(RotorCuLoss/phase);\n",
+ "I2=65;#in Ampere\n",
+ "R2=(RotorCuLoss/phase)/I2**2;#in ohm\n",
+ "print \"Rotor resistance per phase(in ohm) : \",round(R2,2);\n",
+ "Pout_rotor=Pin_rotor-RotorCuLoss/10**3;#in KW\n",
+ "print \"Output power of rotor(in H.P.) : \",round((Pout_rotor/0.735),1);\n",
+ "#Note : answers of few part are not accurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.033\n",
+ "Rotor speed(in rpm) : 967.0\n",
+ "Rotor Cu Loss per phase(in watts) : 889.0\n",
+ "Rotor resistance per phase(in ohm) : 0.21\n",
+ "Output power of rotor(in H.P.) : 105.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 161
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.33, Page 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=440;#in volt\n",
+ "f=50.;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin_rotor=20;#in KW\n",
+ "N=960.;#in rpm(Speed of Motor)\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#slip(unitless)\n",
+ "RotorCuLoss=S*Pin_rotor*10**3;#in watts\n",
+ "RotorCuLoss=RotorCuLoss/phase;#in watts/phase\n",
+ "R2=1./3;#Rotor Resistance in ohm per phase\n",
+ "I2=sqrt(RotorCuLoss/R2)\n",
+ "\n",
+ "#Result\n",
+ "print \"Motor current per phase(in Ampere) :\",round(I2,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor current per phase(in Ampere) : 28.28\n"
+ ]
+ }
+ ],
+ "prompt_number": 162
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.34, Page 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "VL=500;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pout_rotor=20;#in H.P.\n",
+ "cosfi=0.87;#power factor\n",
+ "N=995.;#in rpm(Speed of Motor)\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#slip(unitless)\n",
+ "print \"Slip : \",S;\n",
+ "RotorCuLoss=(S/(1-S))*Pout_rotor*735.5;#in watts\n",
+ "print \"Rotor Cu Loss(in watts) :\",round(RotorCuLoss,2);\n",
+ "Pin_rotor=RotorCuLoss/S;#in watts\n",
+ "print \"Power input to rotor(in KW) :\",round((Pin_rotor/10**3),3);\n",
+ "IL=Pin_rotor/(sqrt(3)*VL*cosfi);#in Ampere\n",
+ "print \"Line current (in Ampere) :\",round(IL,2);\n",
+ "Rotorfreq=S*f;#in Hz\n",
+ "print \"Rotor frequency(in Hz) :\",round(Rotorfreq,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.005\n",
+ "Rotor Cu Loss(in watts) : 73.92\n",
+ "Power input to rotor(in KW) : 14.784\n",
+ "Line current (in Ampere) : 19.62\n",
+ "Rotor frequency(in Hz) : 0.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 163
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.35, Page 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Efficiency=85.;#in %\n",
+ "OutputPower=17.;#in KW\n",
+ "OutputPower=17*10**3;#in watts\n",
+ "StatorLosses=900.;#in watt\n",
+ "MechLosses=1100;#in watt\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pin=OutputPower/(Efficiency/100);#in watts\n",
+ "#Stator input or rotor input :\n",
+ "Pin_rotor=Pin-StatorLosses;#in watts\n",
+ "P_MechDev=OutputPower+MechLosses;#in watts\n",
+ "RotorCuLosses=Pin_rotor-P_MechDev;#in watts\n",
+ "S=RotorCuLosses/Pin_rotor;#slip(unitless)\n",
+ "print \"Slip :\",round(S,3);\n",
+ "Ns=120*f/P\n",
+ "N=Ns*(1-S);#in rpm(Speed of Motor)\n",
+ "Omega=2*pi*N/60;#angular speed in rad/sec\n",
+ "Torque=P_MechDev/Omega;#in Nm\n",
+ "print \"Torque developed(in Nm) :\",round(Torque,1);\n",
+ "Tm=OutputPower/Omega;#in Nm\n",
+ "Tm=Tm/9.81;#in Kg-meter\n",
+ "print \"Torque at the shaft(in Kg-meter) :\",round(Tm,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.052\n",
+ "Torque developed(in Nm) : 121.6\n",
+ "Torque at the shaft(in Kg-meter) : 11.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 164
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.36, Page 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=500;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin_stator=50;#in KW\n",
+ "Statorlosses=2;#in KW\n",
+ "MechLosses=1;#in KW\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pin_rotor=Pin_stator-Statorlosses;#in KW\n",
+ "S=3.;#in %\n",
+ "RotorI2RLoss=(S/100)*Pin_rotor;#in KW\n",
+ "print \"Rotor I2R Loss(in KW) :\",RotorI2RLoss;\n",
+ "print \"Rotor core loss at 3% slip is very less and can be neglected.\";\n",
+ "Power_dev=Pin_rotor-RotorI2RLoss;#in KW\n",
+ "print \"Power developed by the rotor(in H.P.) : \",round((Power_dev/0.7355),1);\n",
+ "Outputpower=Power_dev-MechLosses;#in KW\n",
+ "Efficiency=Outputpower/Pin_stator;#unitless\n",
+ "print \"Efficiency of the motor(in %) :\",(Efficiency*100);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor I2R Loss(in KW) : 1.44\n",
+ "Rotor core loss at 3% slip is very less and can be neglected.\n",
+ "Power developed by the rotor(in H.P.) : 63.3\n",
+ "Efficiency of the motor(in %) : 91.12\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.37, Page 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "MotorOutput=20;#in H.P.\n",
+ "MotorOutput=20*735.5;#in watts\n",
+ "S=4.;#full load slip in %\n",
+ "MechLosses=500;#in watts\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Pdev_rotor=MotorOutput+MechLosses;#in watts\n",
+ "S=S/100;#fractional slip\n",
+ "RotorI2RLoss=(S/(1-S))*Pdev_rotor;#in watts\n",
+ "print \"Rotor I2R Loss(in watts) :\",RotorI2RLoss;\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor speed(in rpm) :\",Nr;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor I2R Loss(in watts) : 633.75\n",
+ "Rotor speed(in rpm) : 1440.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.38, Page 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "R2=0.02;#in ohm\n",
+ "X2=0.1;#in ohm\n",
+ "\n",
+ "#Calculations\n",
+ "S=R2/X2;#slip(unitless)\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "#At starting S=1\n",
+ "S=1;#slip\n",
+ "#Formula : T=K*S*R2/(R2^2+X2^2)\n",
+ "#Starting torque, Tst=K*R2/(R2^2+S^2*X2^2)\n",
+ "#Maximum torque, Tm=K/(2*X2)\n",
+ "#Tst=(2/3)*Tm : gives a equation\n",
+ "#100*R2^2-30*R2+1=0\n",
+ "a=100;b=-30;c=1;\n",
+ "R21=(-b+sqrt(b**2-4*a*c))/(2*a);#in ohm\n",
+ "R22=(-b-sqrt(b**2-4*a*c))/(2*a);#in ohm\n",
+ "#This R2 is the value of rotor circuit resistance.\n",
+ "RotWinResistance=0.02;#in ohm per phase\n",
+ "Extra_R1=R21-RotWinResistance;#in ohm\n",
+ "Extra_R2=R22-RotWinResistance;#in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Extra Resistance(in ohm) : \",round(Extra_R1,3),\" ohm or \",round((Extra_R2),3),\" ohm.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extra Resistance(in ohm) : 0.242 ohm or 0.018 ohm.\n"
+ ]
+ }
+ ],
+ "prompt_number": 166
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.39, Page 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "MotorShaftOutput=20;#in H.P.\n",
+ "\n",
+ "#Calculations&Results\n",
+ "MotorShaftOutput=20*735.5;#in watts\n",
+ "MechLosses=MotorShaftOutput*2/100;#in watts(2% of the output)\n",
+ "Pdev_rotor=MotorShaftOutput+MechLosses;#in watts\n",
+ "S=3.;#slip in %\n",
+ "S=S/100;#fractional slip\n",
+ "RotorI2RLoss=(S/(1-S))*Pdev_rotor;#in watts\n",
+ "print \"Rotor I2R Loss(in watts) :\",round(RotorI2RLoss);\n",
+ "print \"Rotor iron loss at 3% slip is very small and can be neglected.\";\n",
+ "RotorInput=Pdev_rotor+RotorI2RLoss;#in watts\n",
+ "print \"Rotor Input(in Watts) :\",round(RotorInput,1);\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "Nr=Nr/60;#in rps\n",
+ "T=MotorShaftOutput/(2*pi*Nr);#in Nm\n",
+ "print \"Output torque(in Nm) : \",round(T,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor I2R Loss(in watts) : 464.0\n",
+ "Rotor iron loss at 3% slip is very small and can be neglected.\n",
+ "Rotor Input(in Watts) : 15468.2\n",
+ "Output torque(in Nm) : 96.54\n"
+ ]
+ }
+ ],
+ "prompt_number": 167
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.40, Page 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=500;#in volt\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Nr=975.;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-Nr)/Ns;#slip\n",
+ "print \"Slip :\",S;\n",
+ "Pin_stator=40;#in KW\n",
+ "StatorLosses=1;#in KW\n",
+ "Pin_rotor=Pin_stator-StatorLosses;#in KW\n",
+ "RotorCuLosses=S*Pin_rotor;#in KW\n",
+ "print \"Rotor Cu Losses(in KW) :\",RotorCuLosses;\n",
+ "RotorOutput=Pin_rotor-RotorCuLosses;#in KW\n",
+ "OutputHP=RotorOutput/0.735;#in H.P.\n",
+ "print \"Output Horse Power : \",round(OutputHP,2);\n",
+ "Efficiency=RotorOutput/Pin_stator;#unitless\n",
+ "print \"Efficiency(in %) :\",round(Efficiency*100);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.025\n",
+ "Rotor Cu Losses(in KW) : 0.975\n",
+ "Output Horse Power : 51.73\n",
+ "Efficiency(in %) : 95.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 168
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.41, Page 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "VL=440;#in volt\n",
+ "f=50.;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3.;#no. of phase\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "fr=120;#alternations per minute\n",
+ "fr=fr/60;#in Hz\n",
+ "S=fr/f;#slip\n",
+ "print \"Slip : \",S;\n",
+ "Nr=Ns-S*Ns;#in rpm\n",
+ "print \"Rotor speed(in rpm) :\",Nr;\n",
+ "Rotor_input=80;#in KW\n",
+ "RotorCuLoss=S*Rotor_input;#in KW\n",
+ "print \"Rotor Cu Loss per phase(in watts) :\",round((RotorCuLoss*10**3)/phase);\n",
+ "P_Mechdev=Rotor_input*10**3-RotorCuLoss*10**3;#in watts\n",
+ "P_Mechdev=P_Mechdev/735.5;#in H.P.\n",
+ "print \"Mechanical power devloped(in H.P.) :\",round(P_Mechdev,1);\n",
+ "Ir=60;#in Ampere\n",
+ "R2=(RotorCuLoss*10**3/phase)/Ir**2;#in ohm\n",
+ "print \"Rotor resistance per phase(in ohm) :\",round(R2,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slip : 0.04\n",
+ "Rotor speed(in rpm) : 960.0\n",
+ "Rotor Cu Loss per phase(in watts) : 1067.0\n",
+ "Mechanical power devloped(in H.P.) : 104.4\n",
+ "Rotor resistance per phase(in ohm) : 0.296\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.43, Page 175 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50.;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "R2=0.2;#rotor resistance per phase in ohm\n",
+ "Nr=960;#in rpm\n",
+ "Nr_dash=600;#in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-Nr)/Ns;#slip(unitless)\n",
+ "Sdash=(Ns-Nr_dash)/Ns;#slip(unitless)\n",
+ "#Let the new value of resistance is R2dash=(R+0.2)\n",
+ "R=R2*(Sdash/S)-R2;#Resistance to be added in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Resistance to be added(in ohm) : \",R;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance to be added(in ohm) : 1.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.44, Page 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=6;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "RotorIntResistance=0.1;#in ohm per phase\n",
+ "X2=1;#in ohm/phase\n",
+ "\n",
+ "#Calculation\n",
+ "Rext=X2-RotorIntResistance;#in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"External resistance to be included(in ohm/phase) : \",Rext;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "External resistance to be included(in ohm/phase) : 0.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.45, Page 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50.;#in Hz\n",
+ "P=6.;#no. of poles\n",
+ "phase=3.;#no. of phase\n",
+ "R2=0.2;#rotor resistance per phase in ohm\n",
+ "N1=960.;#Full load speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S1=(Ns-N1)/Ns;#Full load slip(unitless)\n",
+ "N2=N1*(1-10./100);#New speed in rpm(reduced 10%)\n",
+ "S2=(Ns-N2)/Ns;#New slip(unitless)\n",
+ "#Formula : S=RotorCuLoss/Pin_rotor=3*I2^2*R2/Pin_rotor\n",
+ "#Let the additional resistance is R\n",
+ "R=R2*S2/S1-R2;#Resistance to be added in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Additional Rotor Resistance(in ohm) : \",R;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Additional Rotor Resistance(in ohm) : 0.48\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.46, Page 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "R2inner=0.4;#in ohm\n",
+ "X2inner=2;#in ohm \n",
+ "R2outer=2;#in ohm\n",
+ "X2outer=0.4;#in ohm \n",
+ "#At standstill :\n",
+ "S=1;#unitless\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ratio=(R2outer*S/(R2outer**2+S**2*X2outer**2))/(R2inner*S/(R2inner**2+S**2*X2inner**2));#unitless\n",
+ "print \"Ratio of torque produced by two cages at standstill : \",Ratio;\n",
+ "#At Full load :\n",
+ "S=5;#in %\n",
+ "S=5./100;#fractional\n",
+ "Ratio=(R2outer*S/(R2outer**2+S**2*X2outer**2))/(R2inner*S/(R2inner**2+S**2*X2inner**2));#unitless\n",
+ "print \"Ratio of torque produced by two cages at full load(slip=5%) : \",round(Ratio,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of torque produced by two cages at standstill : 5.0\n",
+ "Ratio of torque produced by two cages at full load(slip=5%) : 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 171
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.47, Page 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "Output=10;#in H.P.\n",
+ "Output=Output*735.5;#in watts\n",
+ "cosfi=0.8;#unitless\n",
+ "ETA=0.83;#unitless\n",
+ "ISCbyIFL=3.5;#ratio of SC current to full load current\n",
+ "VL=500;#in volt\n",
+ "\n",
+ "#Calculations\n",
+ "Input=Output/ETA;#in watts\n",
+ "IFL=Input/(sqrt(3)*VL*cosfi);#in Ampere\n",
+ "ISC=IFL*ISCbyIFL;#in Ampere\n",
+ "Is=ISC/3;#in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print \"Strting current(in Ampere) :\",round(Is,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Strting current(in Ampere) : 14.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 172
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.48, Page 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=5;#ratio of SC current to full load current\n",
+ "S=0.04;#Full load slip\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#(i) for star delta starter : \n",
+ "print \"for star delta starter : \";\n",
+ "Ratio=(1./3)*(ISCbyIFL)**2*S;#Ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",round((Ratio*100),2),\"% of full load torque.\";\n",
+ "#(i) for auto transformer starter :\n",
+ "print \"for auto transformer starter : \";\n",
+ "K=50./100;#tappings\n",
+ "Ratio=K**2*(ISCbyIFL)**2*S;#Ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",(Ratio*100),\"% of full load torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for star delta starter : \n",
+ "Starting torque is 33.33 % of full load torque.\n",
+ "for auto transformer starter : \n",
+ "Starting torque is 25.0 % of full load torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 173
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.49, Page 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=4;#ratio of SC current to full load current\n",
+ "TsBYTf=1./4;#ratio of atarting torque to full load torque\n",
+ "Slip=3;#in %\n",
+ "Slip=3./100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : TsBYTf=Percent_Tapping^2*ISCbyIFL^2*Slip\n",
+ "tapping=sqrt(TsBYTf/(Slip*ISCbyIFL**2));#in %\n",
+ "\n",
+ "#Result\n",
+ "print \"Tapping(in %) :\",round((tapping*100),1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tapping(in %) : 72.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 174
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.50, Page 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=5.;#ratio of SC current to full load current\n",
+ "Slip=5;#in %\n",
+ "Slip=5./100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : 3*IFL=K^2*ISC\n",
+ "K=sqrt(1./(ISCbyIFL/3));#unitless\n",
+ "TsBYTfl=K**2*(ISCbyIFL)**2*Slip;#ratio of starting torque to full load torque\n",
+ "\n",
+ "#Result\n",
+ "print \"Starting torque is \",(TsBYTfl*100),\"% of full load torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Starting torque is 75.0 % of full load torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 175
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.51, Page 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "print \"Star delta starter :\";\n",
+ "ISCbyIFL=6;#ratio of SC current to full load current\n",
+ "Slip=4;#in %\n",
+ "Slip=4./100;#in fraction\n",
+ "\n",
+ "#Calculations&Results\n",
+ "TsBYTfl=(1./3)*(ISCbyIFL)**2*Slip;#ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",(TsBYTfl*100),\"% of full load value.\";\n",
+ "print \"For an auto transformer :\";\n",
+ "K=70.70;#in %\n",
+ "K=70.70/100;#in fraction\n",
+ "TsBYTfl=K**2*(ISCbyIFL)**2*Slip;#ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",round(TsBYTfl*100),\"% of full load torque.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Star delta starter :\n",
+ "Starting torque is 48.0 % of full load value.\n",
+ "For an auto transformer :\n",
+ "Starting torque is 72.0 % of full load torque.\n"
+ ]
+ }
+ ],
+ "prompt_number": 176
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.52, Page 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "V=400.;#in volt\n",
+ "S=3.5;#in %\n",
+ "S=3.5/100;#in fraction\n",
+ "VL=92;#in volts\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#ISC=(V/VL)*IFL;#in Ampere\n",
+ "ISCbyIFL=V/VL;#ratio of SC current to full load current\n",
+ "#2*IFL=K^2*ISC imples that 2*IFL=K^2*(V/VL)*IFL\n",
+ "K=sqrt(2./(V/VL));#in fraction\n",
+ "print \"Necessary tapping(in %) :\",round((K*100),1);\n",
+ "TsBYTfl=K**2*(ISCbyIFL)**2*S;#ratio of starting torque to full load torque\n",
+ "print \"Starting torque is \",round((TsBYTfl*100),1),\"% of full load value.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Necessary tapping(in %) : 67.8\n",
+ "Starting torque is 30.4 % of full load value.\n"
+ ]
+ }
+ ],
+ "prompt_number": 179
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.53, Page 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=4;#ratio of SC current to full load current\n",
+ "ISbyIFL=2;#ratio of Supply current to full load current\n",
+ "S=2.5;#in %\n",
+ "S=2.5/100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : ISbyIFL=(1/K^2)*ISCbyIFL\n",
+ "K=sqrt(ISCbyIFL/ISbyIFL);#in fraction\n",
+ "print \"Auto Transormation ratio :\",round(K,2);\n",
+ "TsBYTfl=(1./K**2)*(ISCbyIFL)**2*S;#ratio of starting torque to full load torque\n",
+ "\n",
+ "#Results\n",
+ "print \"Ratio of starting torque to full load torque :\",TsBYTfl;\n",
+ "print \"or Starting torque is \",(TsBYTfl*100),\"% of full load value.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Auto Transormation ratio : 1.41\n",
+ "Ratio of starting torque to full load torque : 0.2\n",
+ "or Starting torque is 20.0 % of full load value.\n"
+ ]
+ }
+ ],
+ "prompt_number": 180
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.54, Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "ISCbyIFL=4;#ratio of SC current to full load current\n",
+ "S=3;#in %\n",
+ "S=3./100;#in fraction\n",
+ "TsBYTfl=1./4;#ratio of starting torque to full load torque\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : TsBYTfl=ISCbyIFL^2*K^2*S\n",
+ "K=sqrt(TsBYTfl/(ISCbyIFL**2*S));#in fraction\n",
+ "\n",
+ "#Result\n",
+ "print \"Auto Transormation ratio(in %) :\",round((K*100),2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Auto Transormation ratio(in %) : 72.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 181
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.55, Page 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "Output=3;#in H.P.\n",
+ "Output=3*735.5;#in watts\n",
+ "Efficiency=0.83;#unitless\n",
+ "cosfi=0.8;#power factor\n",
+ "\n",
+ "#Calculations\n",
+ "Vl=500;#in volt\n",
+ "Input=Output/Efficiency;#in watts\n",
+ "#Formula : Input=sqrt(3)*Vl*Il*cosfi\n",
+ "Il=Input/(sqrt(3)*Vl*cosfi);#in Ampere\n",
+ "ISCbyIFL=3.5;#ratio of SC current to full load current\n",
+ "ISC=ISCbyIFL*Il;#in Ampere\n",
+ "LineCurrent=ISC/3;#in Ampere(for star delta starter)\n",
+ "\n",
+ "#Result\n",
+ "print \"Line Current(in Ampere) :\",round(LineCurrent,2);\n",
+ "#Note : Ans in the book is not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line Current(in Ampere) : 4.48\n"
+ ]
+ }
+ ],
+ "prompt_number": 182
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.56, Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "Output=15;#in H.P.\n",
+ "Output=15*735.5;#in watts\n",
+ "Vl=400;#in volt\n",
+ "ISCat200=40;#in Ampere(at 200 volt)\n",
+ "Efficiency=0.88;#unitless\n",
+ "cosfi=0.85;#power factor\n",
+ "\n",
+ "#Calculations\n",
+ "ISCat400=ISCat200*(400./200);#in Ampere(at 400 volt)\n",
+ "Input=Output/Efficiency;#in watts\n",
+ "Ifl=Input/(sqrt(3)*Vl*cosfi);#in Ampere\n",
+ "#starting line current with star delta starter\n",
+ "Is=ISCat400/3;#in Ampere\n",
+ "Ratio=Is/Ifl;#ratio of starting current to full load current\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio of line current at starting to full load current :\",round(Ratio,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of line current at starting to full load current : 1.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 183
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.57, Page 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import * \n",
+ "\n",
+ "#Given data :\n",
+ "#With star delta starter : \n",
+ "TstBYTfl=0.35;#ratio of starting torque to full load torque\n",
+ "IstBYIfl=1.75;#ratio of starting current to full load current\n",
+ "\n",
+ "#Calculations&Results\n",
+ "ISCBYIs=sqrt(3);#ratio of SC current to starting current\n",
+ "ISCBYIfl=sqrt(3)*IstBYIfl;#ratio of SC current to full load current\n",
+ "#Formula : TstBYTfl=(ISCBYIfl)^2*S\n",
+ "S=TstBYTfl/(ISCBYIfl)**2;#in fraction\n",
+ "print \"Full load Slip : \",round(S,3);\n",
+ "#With auto transformer with winding in delta : \n",
+ "Ip=sqrt(3)*1.750*0.8;#full voltage phase current in Ampere\n",
+ "IlBYIf=4.2;#ratio of Line current to full load current\n",
+ "Ratio=IlBYIf**2*S;#ratio of starting current to full load current\n",
+ "print \"Ratio of line current at starting to full load current :\",round(Ratio,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load Slip : 0.038\n",
+ "Ratio of line current at starting to full load current : 0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 188
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.58, Page 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "R2=0.25;#in ohm per phase\n",
+ "S=2;#in %\n",
+ "S=2./100;#in fraction\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "#When speed reduced to 10%\n",
+ "NewSpeed=Nr*90/100;#in rpm\n",
+ "Sdash=(Ns-NewSpeed)/Ns;#in fraction\n",
+ "R2dash=(Sdash/S)*R2;#in ohm per phase\n",
+ "R=R2dash-R2;#in ohm\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of resistance to be added(in ohm) :\",R;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of resistance to be added(in ohm) : 1.225\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.59, Page 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "R2=0.25;#in ohm per phase\n",
+ "N=1440.;#in rpm at full load\n",
+ "NewSpeed=1200;#in rpm\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "S=(Ns-N)/Ns;#in %\n",
+ "NewS=(Ns-NewSpeed)/Ns;#in fraction\n",
+ "S1=S;S2=NewS;#slip new and old\n",
+ "#Torque remaining same : S1/R2=S2/(R2+R)\n",
+ "R=S2*R2/S1-R2;#in ohm\n",
+ "print \"External resistance per phase(in ohm) :\",R; #incorrect answer in textbook\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "#If S1 is taken as 0.03 and S2 as 0.127\n",
+ "S1=0.03;#slip in fraction\n",
+ "S2=0.127;#slip in fraction\n",
+ "R=S2*R2/S1-R2;#in ohm\n",
+ "print \"External resistance per phase(in ohm) :\",round(R,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "External resistance per phase(in ohm) : -0.25\n",
+ "External resistance per phase(in ohm) : 0.808\n"
+ ]
+ }
+ ],
+ "prompt_number": 194
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.60, Page 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "S=4;#in %\n",
+ "S=4./100;#in fraction\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "N1=Ns-Ns*S;#in rpm\n",
+ "#When speed reduced to 10%\n",
+ "N2=N1*85/100;#in rpm(NewSpeed)\n",
+ "print \"New speed(in rpm) :\",N2;\n",
+ "#New speed is reduced by 15 %\n",
+ "Sdash=(Ns-N2)/Ns;#in fraction\n",
+ "print \"New Slip : \",Sdash;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New speed(in rpm) : 1224.0\n",
+ "New Slip : 0.184\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.61, Page 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "f=50;#in Hz\n",
+ "P=4;#no. of poles\n",
+ "phase=3;#no. of phase\n",
+ "Pin=60;#in KW\n",
+ "StatorLoss=1.2;#in KW\n",
+ "WindingLoss=1.8;#in KW\n",
+ "S=4;#in %\n",
+ "S=4./100;#in fraction\n",
+ "\n",
+ "#Calculations&Results\n",
+ "Ns=120*f/P;#in rpm\n",
+ "Nr=Ns-Ns*S;#in rpm\n",
+ "print \"Rotor speed(in rpm) :\",Nr;\n",
+ "Pin_rotor=Pin-StatorLoss;#in KW\n",
+ "RotorCuLoss=S*Pin_rotor;#in KW\n",
+ "print \"Rotor Cu Loss(in KW) : \",RotorCuLoss;\n",
+ "Pout_rotor=Pin_rotor-WindingLoss-RotorCuLoss;#in KW\n",
+ "Efficiency=(Pout_rotor/Pin)*100;#in %\n",
+ "print \"Efficiency(in %) :\",round(Efficiency);\n",
+ "HP=Pout_rotor*10**3/735.5;#in H.P.\n",
+ "print \"Horse Power(inH.P.) :\",round(HP,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotor speed(in rpm) : 1440.0\n",
+ "Rotor Cu Loss(in KW) : 2.352\n",
+ "Efficiency(in %) : 91.0\n",
+ "Horse Power(inH.P.) : 74.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 195
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_3.ipynb b/Electrical_Machines_II/chapter_3.ipynb
new file mode 100755
index 00000000..2c125106
--- /dev/null
+++ b/Electrical_Machines_II/chapter_3.ipynb
@@ -0,0 +1,68 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d44762913f69b2b88f8f79d544b4c89ac298c3f68155a24b93b531ef54634cd3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Fractional K.W. \n",
+ "(FKW) Motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "from cmath import *\n",
+ "\n",
+ "#Given data :\n",
+ "Za=complex(3,3);#in ohm\n",
+ "Zm=complex(6,3);#in ohm\n",
+ "\n",
+ "#Calculations\n",
+ "#Phase difference 90 degree : so angle between Im and V is 90-45 degree\n",
+ "theta=90-45;#in degree\n",
+ "f=50;#in Hz\n",
+ "#Formula : tand(theta)=(Xc-Xl)/R\n",
+ "Xl=3;#in ohm and Xc=1/(2*%pi*C)\n",
+ "R=6;#in ohm\n",
+ "C=1./(2*pi*f*(tan(theta*pi/180)*R+Xl));\n",
+ "\n",
+ "#Result\n",
+ "print \"Capacitance(in micro Farad) :\",(C*10**6);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance(in micro Farad) : (353.677651315+0j)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_3_1.ipynb b/Electrical_Machines_II/chapter_3_1.ipynb
new file mode 100755
index 00000000..2c125106
--- /dev/null
+++ b/Electrical_Machines_II/chapter_3_1.ipynb
@@ -0,0 +1,68 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d44762913f69b2b88f8f79d544b4c89ac298c3f68155a24b93b531ef54634cd3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Fractional K.W. \n",
+ "(FKW) Motors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "from cmath import *\n",
+ "\n",
+ "#Given data :\n",
+ "Za=complex(3,3);#in ohm\n",
+ "Zm=complex(6,3);#in ohm\n",
+ "\n",
+ "#Calculations\n",
+ "#Phase difference 90 degree : so angle between Im and V is 90-45 degree\n",
+ "theta=90-45;#in degree\n",
+ "f=50;#in Hz\n",
+ "#Formula : tand(theta)=(Xc-Xl)/R\n",
+ "Xl=3;#in ohm and Xc=1/(2*%pi*C)\n",
+ "R=6;#in ohm\n",
+ "C=1./(2*pi*f*(tan(theta*pi/180)*R+Xl));\n",
+ "\n",
+ "#Result\n",
+ "print \"Capacitance(in micro Farad) :\",(C*10**6);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance(in micro Farad) : (353.677651315+0j)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_4.ipynb b/Electrical_Machines_II/chapter_4.ipynb
new file mode 100755
index 00000000..632c52df
--- /dev/null
+++ b/Electrical_Machines_II/chapter_4.ipynb
@@ -0,0 +1,183 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9e27d5dc9ee72aa8af2a87478e959a0f346f3cc04c2f1acb86835886294034d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Special Purpose Machines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=8;#no. of poles\n",
+ "T=5;#no. of teeteh in each pole\n",
+ "Nr=50.;#no. of teeth in rotor\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=P*T;#no. of teeth\n",
+ "Beta=(Nr-Ns)*360/(Nr*Ns);#in degree\n",
+ "\n",
+ "#Result\n",
+ "print \"Stepping Angle(in degree) : = \",Beta;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stepping Angle(in degree) : = 1.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Beta=2.5;#in degree\n",
+ "f=3600;#in PPs\n",
+ "Resolution=360;#in degree\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"Resolution : \",Resolution;\n",
+ "Beta1=Resolution/Beta;#steps/revolution\n",
+ "print \"Steps per revolution : \",Beta1;\n",
+ "n=Beta*f/360;#in rps\n",
+ "print \"Steps required for making 25 revolution(in rps) : \",n;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resolution : 360\n",
+ "Steps per revolution : 144.0\n",
+ "Steps required for making 25 revolution(in rps) : 25.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Beta=15;#in degree\n",
+ "Phase=3;#no. of phase\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : Beta*Nr=(360/phase)\n",
+ "Nr=(360./Phase)/Beta;#unitless\n",
+ "print \"No. of rotor :\",Nr;\n",
+ "#Case (i) : when Ns>Nr : Formula : Beta=(Ns-Nr)*360/(Ns*Nr)\n",
+ "Ns=Nr/(1-Beta*Nr/360);\n",
+ "print \"No. of stator poles if Ns>Nr :\",Ns;\n",
+ "#Case (ii) : when Nr>Ns : Formula : Beta=(Nr-Ns)*360/(Ns*Nr)\n",
+ "Ns=Nr/(1+Beta*Nr/360);\n",
+ "print \"No. of stator poles if Nr>Ns :\",Ns;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of rotor : 8.0\n",
+ "No. of stator poles if Ns>Nr : 12.0\n",
+ "No. of stator poles if Nr>Ns : 6.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Beta=1.8;#in degree\n",
+ "m=4;#no. of phases\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Beta*Nr=(360/m)\n",
+ "Nr=(360/m)/Beta;#unitless\n",
+ "\n",
+ "#Results\n",
+ "print \"No. of rotor teeth : = \",Nr;\n",
+ "print \"In multi stack motor rotor teeth equals to stator teeth equals to : \",Nr;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of rotor teeth : = 50.0\n",
+ "In multi stack motor rotor teeth equals to stator teeth equals to : 50.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/chapter_4_1.ipynb b/Electrical_Machines_II/chapter_4_1.ipynb
new file mode 100755
index 00000000..632c52df
--- /dev/null
+++ b/Electrical_Machines_II/chapter_4_1.ipynb
@@ -0,0 +1,183 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9e27d5dc9ee72aa8af2a87478e959a0f346f3cc04c2f1acb86835886294034d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Special Purpose Machines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "P=8;#no. of poles\n",
+ "T=5;#no. of teeteh in each pole\n",
+ "Nr=50.;#no. of teeth in rotor\n",
+ "\n",
+ "#Calculations\n",
+ "Ns=P*T;#no. of teeth\n",
+ "Beta=(Nr-Ns)*360/(Nr*Ns);#in degree\n",
+ "\n",
+ "#Result\n",
+ "print \"Stepping Angle(in degree) : = \",Beta;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stepping Angle(in degree) : = 1.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Beta=2.5;#in degree\n",
+ "f=3600;#in PPs\n",
+ "Resolution=360;#in degree\n",
+ "\n",
+ "#Calculations&Results\n",
+ "print \"Resolution : \",Resolution;\n",
+ "Beta1=Resolution/Beta;#steps/revolution\n",
+ "print \"Steps per revolution : \",Beta1;\n",
+ "n=Beta*f/360;#in rps\n",
+ "print \"Steps required for making 25 revolution(in rps) : \",n;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resolution : 360\n",
+ "Steps per revolution : 144.0\n",
+ "Steps required for making 25 revolution(in rps) : 25.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Beta=15;#in degree\n",
+ "Phase=3;#no. of phase\n",
+ "\n",
+ "#Calculations&Results\n",
+ "#Formula : Beta*Nr=(360/phase)\n",
+ "Nr=(360./Phase)/Beta;#unitless\n",
+ "print \"No. of rotor :\",Nr;\n",
+ "#Case (i) : when Ns>Nr : Formula : Beta=(Ns-Nr)*360/(Ns*Nr)\n",
+ "Ns=Nr/(1-Beta*Nr/360);\n",
+ "print \"No. of stator poles if Ns>Nr :\",Ns;\n",
+ "#Case (ii) : when Nr>Ns : Formula : Beta=(Nr-Ns)*360/(Ns*Nr)\n",
+ "Ns=Nr/(1+Beta*Nr/360);\n",
+ "print \"No. of stator poles if Nr>Ns :\",Ns;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of rotor : 8.0\n",
+ "No. of stator poles if Ns>Nr : 12.0\n",
+ "No. of stator poles if Nr>Ns : 6.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Given data :\n",
+ "Beta=1.8;#in degree\n",
+ "m=4;#no. of phases\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Beta*Nr=(360/m)\n",
+ "Nr=(360/m)/Beta;#unitless\n",
+ "\n",
+ "#Results\n",
+ "print \"No. of rotor teeth : = \",Nr;\n",
+ "print \"In multi stack motor rotor teeth equals to stator teeth equals to : \",Nr;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of rotor teeth : = 50.0\n",
+ "In multi stack motor rotor teeth equals to stator teeth equals to : 50.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electrical_Machines_II/screenshots/capacitance_3.png b/Electrical_Machines_II/screenshots/capacitance_3.png
new file mode 100755
index 00000000..4bf742ff
--- /dev/null
+++ b/Electrical_Machines_II/screenshots/capacitance_3.png
Binary files differ
diff --git a/Electrical_Machines_II/screenshots/capacitance_3_1.png b/Electrical_Machines_II/screenshots/capacitance_3_1.png
new file mode 100755
index 00000000..4bf742ff
--- /dev/null
+++ b/Electrical_Machines_II/screenshots/capacitance_3_1.png
Binary files differ
diff --git a/Electrical_Machines_II/screenshots/flux_per_pole.png b/Electrical_Machines_II/screenshots/flux_per_pole.png
new file mode 100755
index 00000000..53a57349
--- /dev/null
+++ b/Electrical_Machines_II/screenshots/flux_per_pole.png
Binary files differ
diff --git a/Electrical_Machines_II/screenshots/flux_per_pole_1.png b/Electrical_Machines_II/screenshots/flux_per_pole_1.png
new file mode 100755
index 00000000..53a57349
--- /dev/null
+++ b/Electrical_Machines_II/screenshots/flux_per_pole_1.png
Binary files differ
diff --git a/Electrical_Machines_II/screenshots/rotor_current_2.png b/Electrical_Machines_II/screenshots/rotor_current_2.png
new file mode 100755
index 00000000..4b8c4b2b
--- /dev/null
+++ b/Electrical_Machines_II/screenshots/rotor_current_2.png
Binary files differ
diff --git a/Electrical_Machines_II/screenshots/rotor_current_2_1.png b/Electrical_Machines_II/screenshots/rotor_current_2_1.png
new file mode 100755
index 00000000..4b8c4b2b
--- /dev/null
+++ b/Electrical_Machines_II/screenshots/rotor_current_2_1.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_1.ipynb
new file mode 100755
index 00000000..d1e6834d
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_1.ipynb
@@ -0,0 +1,773 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.1: Special Diodes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page No. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reverse Saturation current of diode\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "\n",
+ "I=40*10**-3 #forword bias current in A\n",
+ "V=0.25 #forword bias voltage in Volt\n",
+ "T=20 #junction temperature in degree C\n",
+ "T=T+273 #junction temperature in degree K\n",
+ "ETA=1 #For Ge\n",
+ "e=1.6*10**-19 #in Coulamb(electronic charge)\n",
+ "k=1.38*10**-23 #in J/K(Boltzman Constant)\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : I=Io*(exp(e*V/(ETA*k*T))-1)\n",
+ "x=math.ceil((e*V/(ETA*k*T)))\n",
+ "Io=I/(math.exp(x)-1)\n",
+ "Io=math.ceil(Io*10**8)/10**8\n",
+ "\n",
+ "#Result\n",
+ "print(\"Reverse saturation current in micro Ampere : %.2f \"%(Io*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reverse saturation current in micro Ampere : 1.82 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.2, Page No. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of forword voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Io=10*10**-6 # reverse saturation currrent in A\n",
+ "I=1 # forword current in Ampere\n",
+ "ETA=2 # For Si\n",
+ "T=27 # room temperature in degree C\n",
+ "T=T+273 # room temperature in degree K\n",
+ "e=1.6*10**-19 # in Coulamb(electronic charge)\n",
+ "k=1.38*10**-23 # in J/K(Boltzman Constant)\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : I=Io*(exp(%e*V/(ETA*k*T))-1)\n",
+ "V=(ETA*k*T/e)*math.log(I/(Io)+1)\n",
+ "V=math.floor(V*100)/100\n",
+ "#result\n",
+ "print(\"Forward Voltage across the diode in Volt :%.2f\"%V)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Voltage across the diode in Volt :0.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.3 , Page No. 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#DC Current, DC Voltage, Ripple Factor\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "RL=1 #load resistance in kOhm\n",
+ "#rf<<RL\n",
+ "Vrms=200 #in Volt\n",
+ "\n",
+ "#Part (i)\n",
+ "Vo=Vrms*math.sqrt(2) #in volt\n",
+ "Idc=Vo/(RL*10**3*math.pi) #in Ampere\n",
+ "print(\"(i)\\nDC current in load in mA :%.0f\"%(math.floor((Idc*10**3))))\n",
+ "\n",
+ "#Part (ii)\n",
+ "Vdc=RL*10**3*Idc #in Volt\n",
+ "print(\"\\n(ii)\\nDC voltage across load in volt :%.0f\"%(math.floor(Vdc)))\n",
+ "\n",
+ "#Part (iii)\n",
+ "#Gamma=sqrt((Irms/Idc)^2-1)=sqrt((Io/2)/(Io/%pi)-1)=sqrt((%pi/2)^2-1)\n",
+ "Gamma=math.sqrt((math.pi/2)**2-1) #unitless\n",
+ "print(\"\\n(iii)\\nRipple factor :%.2f \"%(math.floor(Gamma*100)/100))\n",
+ "\n",
+ "#Part (iv)\n",
+ "PIV=Vrms*math.sqrt(2) #in volt\n",
+ "print(\"\\n(iv)\\nPeak Inverse Voltage in volt :%.0f\"%(math.floor(PIV)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "DC current in load in mA :90\n",
+ "\n",
+ "(ii)\n",
+ "DC voltage across load in volt :90\n",
+ "\n",
+ "(iii)\n",
+ "Ripple factor :1.21 \n",
+ "\n",
+ "(iv)\n",
+ "Peak Inverse Voltage in volt :282\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.4 , Page No. 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Average dc current rms current rectifcation efcieny PIV\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rf=20.0 #in ohm\n",
+ "RL=980.0 #in Ohm\n",
+ "Vrms=50.0 #in Volt\n",
+ "Vo=Vrms*math.sqrt(2) #in Volt\n",
+ "Io=Vo/(RL+rf) #in Ampere\n",
+ "\n",
+ "#Part (i)\n",
+ "Idc=2*Io/math.pi #in Ampere\n",
+ "print(\"(i)\\nAverage DC current in mA :%.0f\"%(math.floor(Idc*10**3)))\n",
+ "\n",
+ "#Part (ii)\n",
+ "Irms=Io/math.sqrt(2) #in Ampere\n",
+ "print(\"\\n(ii)\\nrms value of load current in mA :%.0f\"%(math.ceil(Irms*1000)))\n",
+ "\n",
+ "#Part (iii)\n",
+ "Vdc=RL*Idc #in Volt\n",
+ "print(\"\\n(iii)\\nDC output voltage in volt :%.1f\"%(math.floor(Vdc*10)/10))\n",
+ "\n",
+ "#Part (iv)\n",
+ "ETA=(Idc**2*RL/(Irms**2*(RL+rf)))*100 #Rectification Efficiency in %\n",
+ "print(\"\\n(iv)\\nRectification Efficiency is %.1f%%\"%(math.ceil(ETA*10)/10))\n",
+ "\n",
+ "#Part (v)\n",
+ "PIV=2*Vo #in volt\n",
+ "print(\"\\n(v)\\nPeak Inverse Voltage in volt :%.1f\"%PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Average DC current in mA :45\n",
+ "\n",
+ "(ii)\n",
+ "rms value of load current in mA :50\n",
+ "\n",
+ "(iii)\n",
+ "DC output voltage in volt :44.1\n",
+ "\n",
+ "(iv)\n",
+ "Rectification Efficiency is 79.5%\n",
+ "\n",
+ "(v)\n",
+ "Peak Inverse Voltage in volt :141.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.5, Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Minimum value of resistance\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "\n",
+ "Vin=40 #in volt\n",
+ "VZ=10 #in volt\n",
+ "Vo=10 #in volt\n",
+ "IZmax=50 #in mA\n",
+ "IL=0 #in mA\n",
+ "\n",
+ "#calculation\n",
+ "#Formula : I=IZ+IL=IZmax+0\n",
+ "I=IZmax+0 #in mA\n",
+ "#Formula : VZ=Vin-R*I\n",
+ "Rmin=(Vin-VZ)/(I*10**-3) #in Ohm\n",
+ "#Result\n",
+ "print(\"Minimum value of resistance in Ohm :%.0f \"%Rmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum value of resistance in Ohm :600 \n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.6, Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of series resistor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vmin=15 #Minimum input voltage in volt\n",
+ "VZ=6.8 #Voltage across zener in volt\n",
+ "Vo=VZ #output voltage in volt\n",
+ "Vsr1=Vmin-Vo #Voltage aross series resistance in volt\n",
+ "print(\"If R is the series resistance, Total current in series resistance in Ampere : I=Vsr/R=8.2/R \")\n",
+ "ILmin=5 #in mA\n",
+ "print(\"current in zener diode in Ampere :IZ=I-IL=(8.2/R-IL*10-3).............eqn(1)\\n\");\n",
+ "Vmax=20 #mximum output voltage\n",
+ "Vo=VZ #output voltage in volt\n",
+ "Vsr2=Vmax-Vo #Voltage aross series resistance in volt\n",
+ "print(\"Current in series resistance circuit in Ampere : I=Vsr/R\\n\")\n",
+ "ILmax=15 #in mA\n",
+ "print(\"current in zener diode in Ampere :IZ=I-IL=(Rs/R-IL*10-3)..............eqn(2)\\n\")\n",
+ "print(\"For Zener diode to work as voltage regulator,(1) and (2) must be same.\");\n",
+ "print(\"(8.2/R-IL*10-3)=(13.2/R-IL*10-3)\")\n",
+ "R=(Vsr2-Vsr1)/(ILmax*10**-3-ILmin*10**-3) #in Ohm\n",
+ "print(\"\\nRequired value of Series Resistor in ohm : %.0f\"%R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If R is the series resistance, Total current in series resistance in Ampere : I=Vsr/R=8.2/R \n",
+ "current in zener diode in Ampere :IZ=I-IL=(8.2/R-IL*10-3).............eqn(1)\n",
+ "\n",
+ "Current in series resistance circuit in Ampere : I=Vsr/R\n",
+ "\n",
+ "current in zener diode in Ampere :IZ=I-IL=(Rs/R-IL*10-3)..............eqn(2)\n",
+ "\n",
+ "For Zener diode to work as voltage regulator,(1) and (2) must be same.\n",
+ "(8.2/R-IL*10-3)=(13.2/R-IL*10-3)\n",
+ "\n",
+ "Required value of Series Resistor in ohm : 500\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.7 Page No.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current limiting resistance and dissipated power\n",
+ "import math\n",
+ "#variable declaration\n",
+ "\n",
+ "Vin=18 #in volt\n",
+ "IZ=20 #in mA\n",
+ "ILav=(5+35)/2 #in mA\n",
+ "VZ=12 #in volt\n",
+ "Vo=12 #in volt\n",
+ "\n",
+ "#Calculation\n",
+ "I=IZ+ILav #in mA\n",
+ "R=(Vin-Vo)/(I*10**-3) #in Ohm\n",
+ "P=(I*10**-3)**2*R #in Watts\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current limiting resistance in Ohm : %.0f\"%R);\n",
+ "print(\"Power disspation in resistance in Watt :%.2f \"%P);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current limiting resistance in Ohm : 150\n",
+ "Power disspation in resistance in Watt :0.24 \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.8, Page No. 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum and minimum input supply voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R=1 #in kOhm\n",
+ "RL=5 #in kOhm\n",
+ "VZ=10 #in volt\n",
+ "Vo=10 #in volt\n",
+ "P=250 #in mW\n",
+ "\n",
+ "#Calculation\n",
+ "IL=Vo/RL #in mA\n",
+ "IZmin=0 #in mA\n",
+ "IZmax=P/VZ #in mA\n",
+ "Imin=IZmin+IL #in mA\n",
+ "Imax=IZmax+IL #in mA\n",
+ "Vin_min=VZ+Imin*10**-3*R*10**3 #in volt\n",
+ "Vin_max=VZ+Imax*10**-3*R*10**3 #in volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"The input voltage ranges from %.0fV to %.0fV\"%(Vin_min,Vin_max));"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The input voltage ranges from 12V to 37V\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.9, Page No.28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Output voltage voltage drop and current in zener diode\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "R=5 #in kOhm\n",
+ "R=R*1000 #in Ohm\n",
+ "RL=10.0 #in kOhm\n",
+ "RL=RL*1000 #in Ohm\n",
+ "Vin=120.0 #in Volt\n",
+ "VZ=50.0 #in Volt\n",
+ "\n",
+ "#Part (i)\n",
+ "\n",
+ "#calculation\n",
+ "Vo=VZ #in Volt\n",
+ "#Result\n",
+ "print(\"\\n(i)\\nOutput voltage in volt :%.0f\"%Vo)\n",
+ "\n",
+ "#Part (ii)\n",
+ "\n",
+ "#calculation\n",
+ "VR=Vin-VZ #in Volt\n",
+ "#Result\n",
+ "print(\"\\n(ii)\\nVoltage drop across series resistance in volt :%.0f\"%VR);\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Part (iii) \n",
+ "\n",
+ "#Calculation\n",
+ "IL=Vo/RL #in Ampere\n",
+ "I=VR/R #in Ampere\n",
+ "IZ=I-IL #in Ampere\n",
+ "#Result\n",
+ "print(\"\\n(iii)\\nLoad Current in mA :%.0f\"%(IL*1000))\n",
+ "print(\"Current through resistance R in mA :%.0f\"%(I*1000));\n",
+ "print(\"Load Current in mA :%.0f\"%(IZ*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "Output voltage in volt :50\n",
+ "\n",
+ "(ii)\n",
+ "Voltage drop across series resistance in volt :70\n",
+ "\n",
+ "(iii)\n",
+ "Load Current in mA :5\n",
+ "Current through resistance R in mA :14\n",
+ "Load Current in mA :9\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.10, Page No. 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum and Minimum LED current\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "VDmin=1.5 #in Volt\n",
+ "VDmax=2.3 #in Volt\n",
+ "VS=5.0 #in Volt\n",
+ "RS=270.0 #in Ohm\n",
+ "\n",
+ "#Calculation\n",
+ "Imin=(VS-VDmax)/RS #in Ampere\n",
+ "Imax=(VS-VDmin)/RS #in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print(\"Minimum value of LED current in mA : %.0f\"%(Imin*1000))\n",
+ "print(\"Maximum value of LED current in mA : %.0f\"%(math.ceil(Imax*1000)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum value of LED current in mA : 10\n",
+ "Maximum value of LED current in mA : 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.11, Page No. 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency range of tuning circuit\n",
+ "import math\n",
+ "\n",
+ "#VAriable declarion\n",
+ "C1min=10 #in pF\n",
+ "C2max=50 #in pF\n",
+ "L=5 #in mH\n",
+ "L=L*10**-3 #in H\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#Formula : CT=C1*C2/(C1+C2)\n",
+ "#Minimum\n",
+ "C1=10 #in pF\n",
+ "C2=10 #in pF\n",
+ "CTmin=C1*C2/(C1+C2) #in pF\n",
+ "CTmin=CTmin*10**-12 #in F\n",
+ "#Maximum\n",
+ "C1=50 #in pF\n",
+ "C2=50 #in pF\n",
+ "CTmax=C1*C2/(C1+C2) #in pF\n",
+ "CTmax=CTmax*10**-12 #in F\n",
+ "\n",
+ "#Formula : f=1/(2*%pi*sqrt(L*C))\n",
+ "#maximum :\n",
+ "fmax=1/(2*math.pi*math.sqrt(L*CTmin));\n",
+ "#minimum :\n",
+ "fmin=1/(2*math.pi*math.sqrt(L*CTmax));\n",
+ "\n",
+ "#Result\n",
+ "print(\"The frequency of tuning circuit ranges from %.3fMHz to %.3fMHz.\"%(fmin/10**6,fmax/10**6));\n",
+ "#Note : Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The frequency of tuning circuit ranges from 0.450MHz to 1.007MHz.\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.12, page No.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Diode Capacitance\n",
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "C1=21.0 # in pF\n",
+ "V1=4.0 # in volt\n",
+ "V2=9.0 # in volt\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"C is proportional to 1/sqrt(V)\")\n",
+ "print(\"So, C2/C1=sqrt(V1/V2)\")\n",
+ "C2=math.sqrt(V1/V2)*C1 #in pF\n",
+ "\n",
+ "#Result\n",
+ "print(\"At reverse bias 9V, Diode capacitance in pF : %.0f\"%math"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C is proportional to 1/sqrt(V)\n",
+ "So, C2/C1=sqrt(V1/V2)\n",
+ "At reverse bias 9V, Diode capacitance in pF : 14\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.13, Page No.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Photocurrent\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "R=0.90 #in A/W\n",
+ "Pop=1.0 #in mW\n",
+ "\n",
+ "#Part (i)\n",
+ "#calculation\n",
+ "IP=R*Pop #in mA\n",
+ "#Result\n",
+ "print(\"(i)\\nPower of incident light 1mW, Photocurrent in mA is :%.2f\"%IP);\n",
+ "\n",
+ "#Part (ii)\n",
+ "#Result\n",
+ "print(\"\\n(ii)\\nHere IP is not proportional to Pop(for Pop>1.5mW)\")\n",
+ "print(\"Hence Photourrent can not be calculated.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Power of incident light 1mW, Photocurrent in mA is :0.90\n",
+ "\n",
+ "(ii)\n",
+ "Here IP is not proportional to Pop(for Pop>1.5mW)\n",
+ "Hence Photourrent can not be calculated.\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.14, Page No. 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Responsivity of InGaAs photodiode\n",
+ "import math\n",
+ "#variable declaration\n",
+ "ETA=70.0 #in %\n",
+ "Eg=0.75 #in eV\n",
+ "Eg=Eg*1.6*10**-19 #in Joule\n",
+ "h=6.63*10**-34 #Planks constant in J-s\n",
+ "c=3*10**8 #speed of light in m/s\n",
+ "e=1.6*10**-19 #in coulamb\n",
+ "\n",
+ "#Calcualtions\n",
+ "lambda1=h*c/Eg #in meter\n",
+ "R=(ETA/100)*e*lambda1/(h*c) #in A/W\n",
+ "\n",
+ "#Result\n",
+ "print(\"Wavelength in nm :%.1f\"%(lambda1*10**9))\n",
+ "print(\"Responsivity of InGaAs photodiode in A/W :%.3f\"%R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength in nm :1657.5\n",
+ "Responsivity of InGaAs photodiode in A/W :0.933\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.15, Page No. 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Equilibrium contact potential\n",
+ "import math\n",
+ "#variable declaration\n",
+ "W1=2.5 #in eV\n",
+ "W2=1.9 #in eV\n",
+ "\n",
+ "#Calculation\n",
+ "ContactPotential=W1-W2 #in Volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Contact potential in Volts :%.1f \"%ContactPotential)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Contact potential in Volts :0.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_11.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_11.ipynb
new file mode 100755
index 00000000..68c49a6c
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_11.ipynb
@@ -0,0 +1,64 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.11: Multivibrators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No.323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency of Oscillators\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=15 #in kohm\n",
+ "R2=15 #in kohm\n",
+ "C1=0.005 #in uF\n",
+ "C2=0.005 #in uF\n",
+ "R=R1; #in Kohm\n",
+ "C=C1 #in uF\n",
+ "\n",
+ "#Calculations\n",
+ "T=0.69*(R*10**3*C*10**-6+R*10**3*C*10**-6) #in second\n",
+ "f=1/T #in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Frequency of oscillators in KHz : %.2f\"%(f*10**-3));"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillators in KHz : 9.66\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_11_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_11_1.ipynb
new file mode 100755
index 00000000..68c49a6c
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_11_1.ipynb
@@ -0,0 +1,64 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.11: Multivibrators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No.323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency of Oscillators\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=15 #in kohm\n",
+ "R2=15 #in kohm\n",
+ "C1=0.005 #in uF\n",
+ "C2=0.005 #in uF\n",
+ "R=R1; #in Kohm\n",
+ "C=C1 #in uF\n",
+ "\n",
+ "#Calculations\n",
+ "T=0.69*(R*10**3*C*10**-6+R*10**3*C*10**-6) #in second\n",
+ "f=1/T #in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Frequency of oscillators in KHz : %.2f\"%(f*10**-3));"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillators in KHz : 9.66\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_1_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_1_1.ipynb
new file mode 100755
index 00000000..d1e6834d
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_1_1.ipynb
@@ -0,0 +1,773 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.1: Special Diodes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page No. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reverse Saturation current of diode\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "\n",
+ "I=40*10**-3 #forword bias current in A\n",
+ "V=0.25 #forword bias voltage in Volt\n",
+ "T=20 #junction temperature in degree C\n",
+ "T=T+273 #junction temperature in degree K\n",
+ "ETA=1 #For Ge\n",
+ "e=1.6*10**-19 #in Coulamb(electronic charge)\n",
+ "k=1.38*10**-23 #in J/K(Boltzman Constant)\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : I=Io*(exp(e*V/(ETA*k*T))-1)\n",
+ "x=math.ceil((e*V/(ETA*k*T)))\n",
+ "Io=I/(math.exp(x)-1)\n",
+ "Io=math.ceil(Io*10**8)/10**8\n",
+ "\n",
+ "#Result\n",
+ "print(\"Reverse saturation current in micro Ampere : %.2f \"%(Io*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reverse saturation current in micro Ampere : 1.82 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.2, Page No. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of forword voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Io=10*10**-6 # reverse saturation currrent in A\n",
+ "I=1 # forword current in Ampere\n",
+ "ETA=2 # For Si\n",
+ "T=27 # room temperature in degree C\n",
+ "T=T+273 # room temperature in degree K\n",
+ "e=1.6*10**-19 # in Coulamb(electronic charge)\n",
+ "k=1.38*10**-23 # in J/K(Boltzman Constant)\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : I=Io*(exp(%e*V/(ETA*k*T))-1)\n",
+ "V=(ETA*k*T/e)*math.log(I/(Io)+1)\n",
+ "V=math.floor(V*100)/100\n",
+ "#result\n",
+ "print(\"Forward Voltage across the diode in Volt :%.2f\"%V)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Voltage across the diode in Volt :0.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.3 , Page No. 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#DC Current, DC Voltage, Ripple Factor\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "RL=1 #load resistance in kOhm\n",
+ "#rf<<RL\n",
+ "Vrms=200 #in Volt\n",
+ "\n",
+ "#Part (i)\n",
+ "Vo=Vrms*math.sqrt(2) #in volt\n",
+ "Idc=Vo/(RL*10**3*math.pi) #in Ampere\n",
+ "print(\"(i)\\nDC current in load in mA :%.0f\"%(math.floor((Idc*10**3))))\n",
+ "\n",
+ "#Part (ii)\n",
+ "Vdc=RL*10**3*Idc #in Volt\n",
+ "print(\"\\n(ii)\\nDC voltage across load in volt :%.0f\"%(math.floor(Vdc)))\n",
+ "\n",
+ "#Part (iii)\n",
+ "#Gamma=sqrt((Irms/Idc)^2-1)=sqrt((Io/2)/(Io/%pi)-1)=sqrt((%pi/2)^2-1)\n",
+ "Gamma=math.sqrt((math.pi/2)**2-1) #unitless\n",
+ "print(\"\\n(iii)\\nRipple factor :%.2f \"%(math.floor(Gamma*100)/100))\n",
+ "\n",
+ "#Part (iv)\n",
+ "PIV=Vrms*math.sqrt(2) #in volt\n",
+ "print(\"\\n(iv)\\nPeak Inverse Voltage in volt :%.0f\"%(math.floor(PIV)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "DC current in load in mA :90\n",
+ "\n",
+ "(ii)\n",
+ "DC voltage across load in volt :90\n",
+ "\n",
+ "(iii)\n",
+ "Ripple factor :1.21 \n",
+ "\n",
+ "(iv)\n",
+ "Peak Inverse Voltage in volt :282\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.4 , Page No. 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Average dc current rms current rectifcation efcieny PIV\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rf=20.0 #in ohm\n",
+ "RL=980.0 #in Ohm\n",
+ "Vrms=50.0 #in Volt\n",
+ "Vo=Vrms*math.sqrt(2) #in Volt\n",
+ "Io=Vo/(RL+rf) #in Ampere\n",
+ "\n",
+ "#Part (i)\n",
+ "Idc=2*Io/math.pi #in Ampere\n",
+ "print(\"(i)\\nAverage DC current in mA :%.0f\"%(math.floor(Idc*10**3)))\n",
+ "\n",
+ "#Part (ii)\n",
+ "Irms=Io/math.sqrt(2) #in Ampere\n",
+ "print(\"\\n(ii)\\nrms value of load current in mA :%.0f\"%(math.ceil(Irms*1000)))\n",
+ "\n",
+ "#Part (iii)\n",
+ "Vdc=RL*Idc #in Volt\n",
+ "print(\"\\n(iii)\\nDC output voltage in volt :%.1f\"%(math.floor(Vdc*10)/10))\n",
+ "\n",
+ "#Part (iv)\n",
+ "ETA=(Idc**2*RL/(Irms**2*(RL+rf)))*100 #Rectification Efficiency in %\n",
+ "print(\"\\n(iv)\\nRectification Efficiency is %.1f%%\"%(math.ceil(ETA*10)/10))\n",
+ "\n",
+ "#Part (v)\n",
+ "PIV=2*Vo #in volt\n",
+ "print(\"\\n(v)\\nPeak Inverse Voltage in volt :%.1f\"%PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Average DC current in mA :45\n",
+ "\n",
+ "(ii)\n",
+ "rms value of load current in mA :50\n",
+ "\n",
+ "(iii)\n",
+ "DC output voltage in volt :44.1\n",
+ "\n",
+ "(iv)\n",
+ "Rectification Efficiency is 79.5%\n",
+ "\n",
+ "(v)\n",
+ "Peak Inverse Voltage in volt :141.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.5, Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Minimum value of resistance\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "\n",
+ "Vin=40 #in volt\n",
+ "VZ=10 #in volt\n",
+ "Vo=10 #in volt\n",
+ "IZmax=50 #in mA\n",
+ "IL=0 #in mA\n",
+ "\n",
+ "#calculation\n",
+ "#Formula : I=IZ+IL=IZmax+0\n",
+ "I=IZmax+0 #in mA\n",
+ "#Formula : VZ=Vin-R*I\n",
+ "Rmin=(Vin-VZ)/(I*10**-3) #in Ohm\n",
+ "#Result\n",
+ "print(\"Minimum value of resistance in Ohm :%.0f \"%Rmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum value of resistance in Ohm :600 \n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.6, Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of series resistor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vmin=15 #Minimum input voltage in volt\n",
+ "VZ=6.8 #Voltage across zener in volt\n",
+ "Vo=VZ #output voltage in volt\n",
+ "Vsr1=Vmin-Vo #Voltage aross series resistance in volt\n",
+ "print(\"If R is the series resistance, Total current in series resistance in Ampere : I=Vsr/R=8.2/R \")\n",
+ "ILmin=5 #in mA\n",
+ "print(\"current in zener diode in Ampere :IZ=I-IL=(8.2/R-IL*10-3).............eqn(1)\\n\");\n",
+ "Vmax=20 #mximum output voltage\n",
+ "Vo=VZ #output voltage in volt\n",
+ "Vsr2=Vmax-Vo #Voltage aross series resistance in volt\n",
+ "print(\"Current in series resistance circuit in Ampere : I=Vsr/R\\n\")\n",
+ "ILmax=15 #in mA\n",
+ "print(\"current in zener diode in Ampere :IZ=I-IL=(Rs/R-IL*10-3)..............eqn(2)\\n\")\n",
+ "print(\"For Zener diode to work as voltage regulator,(1) and (2) must be same.\");\n",
+ "print(\"(8.2/R-IL*10-3)=(13.2/R-IL*10-3)\")\n",
+ "R=(Vsr2-Vsr1)/(ILmax*10**-3-ILmin*10**-3) #in Ohm\n",
+ "print(\"\\nRequired value of Series Resistor in ohm : %.0f\"%R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If R is the series resistance, Total current in series resistance in Ampere : I=Vsr/R=8.2/R \n",
+ "current in zener diode in Ampere :IZ=I-IL=(8.2/R-IL*10-3).............eqn(1)\n",
+ "\n",
+ "Current in series resistance circuit in Ampere : I=Vsr/R\n",
+ "\n",
+ "current in zener diode in Ampere :IZ=I-IL=(Rs/R-IL*10-3)..............eqn(2)\n",
+ "\n",
+ "For Zener diode to work as voltage regulator,(1) and (2) must be same.\n",
+ "(8.2/R-IL*10-3)=(13.2/R-IL*10-3)\n",
+ "\n",
+ "Required value of Series Resistor in ohm : 500\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.7 Page No.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current limiting resistance and dissipated power\n",
+ "import math\n",
+ "#variable declaration\n",
+ "\n",
+ "Vin=18 #in volt\n",
+ "IZ=20 #in mA\n",
+ "ILav=(5+35)/2 #in mA\n",
+ "VZ=12 #in volt\n",
+ "Vo=12 #in volt\n",
+ "\n",
+ "#Calculation\n",
+ "I=IZ+ILav #in mA\n",
+ "R=(Vin-Vo)/(I*10**-3) #in Ohm\n",
+ "P=(I*10**-3)**2*R #in Watts\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current limiting resistance in Ohm : %.0f\"%R);\n",
+ "print(\"Power disspation in resistance in Watt :%.2f \"%P);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current limiting resistance in Ohm : 150\n",
+ "Power disspation in resistance in Watt :0.24 \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.8, Page No. 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum and minimum input supply voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R=1 #in kOhm\n",
+ "RL=5 #in kOhm\n",
+ "VZ=10 #in volt\n",
+ "Vo=10 #in volt\n",
+ "P=250 #in mW\n",
+ "\n",
+ "#Calculation\n",
+ "IL=Vo/RL #in mA\n",
+ "IZmin=0 #in mA\n",
+ "IZmax=P/VZ #in mA\n",
+ "Imin=IZmin+IL #in mA\n",
+ "Imax=IZmax+IL #in mA\n",
+ "Vin_min=VZ+Imin*10**-3*R*10**3 #in volt\n",
+ "Vin_max=VZ+Imax*10**-3*R*10**3 #in volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"The input voltage ranges from %.0fV to %.0fV\"%(Vin_min,Vin_max));"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The input voltage ranges from 12V to 37V\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.9, Page No.28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Output voltage voltage drop and current in zener diode\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "R=5 #in kOhm\n",
+ "R=R*1000 #in Ohm\n",
+ "RL=10.0 #in kOhm\n",
+ "RL=RL*1000 #in Ohm\n",
+ "Vin=120.0 #in Volt\n",
+ "VZ=50.0 #in Volt\n",
+ "\n",
+ "#Part (i)\n",
+ "\n",
+ "#calculation\n",
+ "Vo=VZ #in Volt\n",
+ "#Result\n",
+ "print(\"\\n(i)\\nOutput voltage in volt :%.0f\"%Vo)\n",
+ "\n",
+ "#Part (ii)\n",
+ "\n",
+ "#calculation\n",
+ "VR=Vin-VZ #in Volt\n",
+ "#Result\n",
+ "print(\"\\n(ii)\\nVoltage drop across series resistance in volt :%.0f\"%VR);\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Part (iii) \n",
+ "\n",
+ "#Calculation\n",
+ "IL=Vo/RL #in Ampere\n",
+ "I=VR/R #in Ampere\n",
+ "IZ=I-IL #in Ampere\n",
+ "#Result\n",
+ "print(\"\\n(iii)\\nLoad Current in mA :%.0f\"%(IL*1000))\n",
+ "print(\"Current through resistance R in mA :%.0f\"%(I*1000));\n",
+ "print(\"Load Current in mA :%.0f\"%(IZ*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "Output voltage in volt :50\n",
+ "\n",
+ "(ii)\n",
+ "Voltage drop across series resistance in volt :70\n",
+ "\n",
+ "(iii)\n",
+ "Load Current in mA :5\n",
+ "Current through resistance R in mA :14\n",
+ "Load Current in mA :9\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.10, Page No. 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum and Minimum LED current\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "VDmin=1.5 #in Volt\n",
+ "VDmax=2.3 #in Volt\n",
+ "VS=5.0 #in Volt\n",
+ "RS=270.0 #in Ohm\n",
+ "\n",
+ "#Calculation\n",
+ "Imin=(VS-VDmax)/RS #in Ampere\n",
+ "Imax=(VS-VDmin)/RS #in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print(\"Minimum value of LED current in mA : %.0f\"%(Imin*1000))\n",
+ "print(\"Maximum value of LED current in mA : %.0f\"%(math.ceil(Imax*1000)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum value of LED current in mA : 10\n",
+ "Maximum value of LED current in mA : 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.11, Page No. 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency range of tuning circuit\n",
+ "import math\n",
+ "\n",
+ "#VAriable declarion\n",
+ "C1min=10 #in pF\n",
+ "C2max=50 #in pF\n",
+ "L=5 #in mH\n",
+ "L=L*10**-3 #in H\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#Formula : CT=C1*C2/(C1+C2)\n",
+ "#Minimum\n",
+ "C1=10 #in pF\n",
+ "C2=10 #in pF\n",
+ "CTmin=C1*C2/(C1+C2) #in pF\n",
+ "CTmin=CTmin*10**-12 #in F\n",
+ "#Maximum\n",
+ "C1=50 #in pF\n",
+ "C2=50 #in pF\n",
+ "CTmax=C1*C2/(C1+C2) #in pF\n",
+ "CTmax=CTmax*10**-12 #in F\n",
+ "\n",
+ "#Formula : f=1/(2*%pi*sqrt(L*C))\n",
+ "#maximum :\n",
+ "fmax=1/(2*math.pi*math.sqrt(L*CTmin));\n",
+ "#minimum :\n",
+ "fmin=1/(2*math.pi*math.sqrt(L*CTmax));\n",
+ "\n",
+ "#Result\n",
+ "print(\"The frequency of tuning circuit ranges from %.3fMHz to %.3fMHz.\"%(fmin/10**6,fmax/10**6));\n",
+ "#Note : Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The frequency of tuning circuit ranges from 0.450MHz to 1.007MHz.\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.12, page No.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Diode Capacitance\n",
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "C1=21.0 # in pF\n",
+ "V1=4.0 # in volt\n",
+ "V2=9.0 # in volt\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"C is proportional to 1/sqrt(V)\")\n",
+ "print(\"So, C2/C1=sqrt(V1/V2)\")\n",
+ "C2=math.sqrt(V1/V2)*C1 #in pF\n",
+ "\n",
+ "#Result\n",
+ "print(\"At reverse bias 9V, Diode capacitance in pF : %.0f\"%math"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C is proportional to 1/sqrt(V)\n",
+ "So, C2/C1=sqrt(V1/V2)\n",
+ "At reverse bias 9V, Diode capacitance in pF : 14\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.13, Page No.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Photocurrent\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "R=0.90 #in A/W\n",
+ "Pop=1.0 #in mW\n",
+ "\n",
+ "#Part (i)\n",
+ "#calculation\n",
+ "IP=R*Pop #in mA\n",
+ "#Result\n",
+ "print(\"(i)\\nPower of incident light 1mW, Photocurrent in mA is :%.2f\"%IP);\n",
+ "\n",
+ "#Part (ii)\n",
+ "#Result\n",
+ "print(\"\\n(ii)\\nHere IP is not proportional to Pop(for Pop>1.5mW)\")\n",
+ "print(\"Hence Photourrent can not be calculated.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Power of incident light 1mW, Photocurrent in mA is :0.90\n",
+ "\n",
+ "(ii)\n",
+ "Here IP is not proportional to Pop(for Pop>1.5mW)\n",
+ "Hence Photourrent can not be calculated.\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.14, Page No. 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Responsivity of InGaAs photodiode\n",
+ "import math\n",
+ "#variable declaration\n",
+ "ETA=70.0 #in %\n",
+ "Eg=0.75 #in eV\n",
+ "Eg=Eg*1.6*10**-19 #in Joule\n",
+ "h=6.63*10**-34 #Planks constant in J-s\n",
+ "c=3*10**8 #speed of light in m/s\n",
+ "e=1.6*10**-19 #in coulamb\n",
+ "\n",
+ "#Calcualtions\n",
+ "lambda1=h*c/Eg #in meter\n",
+ "R=(ETA/100)*e*lambda1/(h*c) #in A/W\n",
+ "\n",
+ "#Result\n",
+ "print(\"Wavelength in nm :%.1f\"%(lambda1*10**9))\n",
+ "print(\"Responsivity of InGaAs photodiode in A/W :%.3f\"%R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength in nm :1657.5\n",
+ "Responsivity of InGaAs photodiode in A/W :0.933\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.15, Page No. 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Equilibrium contact potential\n",
+ "import math\n",
+ "#variable declaration\n",
+ "W1=2.5 #in eV\n",
+ "W2=1.9 #in eV\n",
+ "\n",
+ "#Calculation\n",
+ "ContactPotential=W1-W2 #in Volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Contact potential in Volts :%.1f \"%ContactPotential)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Contact potential in Volts :0.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_2.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_2.ipynb
new file mode 100755
index 00000000..b6f3fd83
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_2.ipynb
@@ -0,0 +1,904 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.2: Bipolar junction Transistors(BJTs)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1 , Page No. 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current amplification factors\n",
+ "import math\n",
+ "#variable declaration\n",
+ "deltaIB=50.0 #in uA\n",
+ "deltaIC=1.0 #in mA\n",
+ "\n",
+ "#Calculations\n",
+ "deltaIC=deltaIC*10**3 #in uA\n",
+ "Beta=deltaIC/deltaIB #unitless\n",
+ "Alfa=Beta/(1+Beta) #unittless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current Amplification Factor,Beta :%.0f\"%Beta)\n",
+ "print(\"Current Amplification Factor,Alfa :%.3f or 20/21\"%(Alfa))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current Amplification Factor,Beta :20\n",
+ "Current Amplification Factor,Alfa :0.952 or 20/21\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No.63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of IE\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "IB=25.0 #in uA\n",
+ "Beta=40.0 #unitless\n",
+ "\n",
+ "#Calculations\n",
+ "IC=Beta*IB #in uA\n",
+ "IE=IB+IC #in uA\n",
+ "\n",
+ "#Result\n",
+ "print(\"The value of IE : %.0f micro Ampere\"%IE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of IE : 1025 micro Ampere\n"
+ ]
+ }
+ ],
+ "prompt_number": 127
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, page No.63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change in collector current\n",
+ "import math\n",
+ "#variable declaration\n",
+ "alfa=0.98 #unitless\n",
+ "deltaIB=0.2 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "Beta=alfa/(1-alfa) #unitless\n",
+ "deltaIC=Beta*deltaIB #in mA\n",
+ "\n",
+ "#result\n",
+ "print(\"Change in collector curent :%.0f mA \"% (deltaIC))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in collector curent :10 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 128
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#nput current in CE and CB configuration\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Beta=45 #unitless\n",
+ "RL=1.0 #in kOhm\n",
+ "deltaVCE=1 #in volt\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#(i)\n",
+ "IC=deltaVCE/(RL*1000) #in Ampere\n",
+ "#Formula : Beta=deltaIC/deltaIB\n",
+ "IB=IC/Beta #in Ampere\n",
+ "\n",
+ "#(ii)\n",
+ "IC=deltaVCE/(RL*1000) #in Ampere\n",
+ "#Formula : Beta=deltaIC/deltaIB\n",
+ "IE=IB+IC #in Ampere\n",
+ "\n",
+ "#result\n",
+ "print(\"Part (i) : CE coniguration\\n\")\n",
+ "print(\"Input Base Current, IB in mA :%.3f \"%(IB*10**3))\n",
+ "print(\"\\nPart (ii) : CB coniguration\\n\")\n",
+ "print(\"Input Emitter Current, IE in mA :%.3f \"%(IE*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i) : CE coniguration\n",
+ "\n",
+ "Input Base Current, IB in mA :0.022 \n",
+ "\n",
+ "Part (ii) : CB coniguration\n",
+ "\n",
+ "Input Emitter Current, IE in mA :1.022 \n"
+ ]
+ }
+ ],
+ "prompt_number": 129
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current gain and base current\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Ileakage=12.5 #in uA\n",
+ "ICBO=12.5 #in uA\n",
+ "IE=2 #in mA\n",
+ "IC=1.97 #in mA\n",
+ "\n",
+ "#calculation\n",
+ "#Formula : IC=alfa*IE+ICBO\n",
+ "alfa=(IC-ICBO/10**3)/IE #unitless\n",
+ "IB=IE-IC #in mA\n",
+ "\n",
+ "#result\n",
+ "print(\"Current Gain : %.3f\"%(math.floor(alfa*1000)/1000))\n",
+ "print(\"Base current in mA : %.2f\"%IB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current Gain : 0.978\n",
+ "Base current in mA : 0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 130
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.6, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input resistance of transistor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "deltaVBE=200.0 #in mVolt\n",
+ "deltaIB=100 #in uA\n",
+ "\n",
+ "#calculations\n",
+ "ri=deltaVBE*10**-3/(deltaIB*10**-6) #in Ohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"Input resistane of transistor in kohm :%.0f\"%(ri/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistane of transistor in kohm :2\n"
+ ]
+ }
+ ],
+ "prompt_number": 131
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.7, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Dynamic input resistance\n",
+ "import math\n",
+ "#variable declaration\n",
+ "deltaVEB=200.0 #in mVolt\n",
+ "deltaIE=5.0 #in mA\n",
+ "\n",
+ "#calculation\n",
+ "ri=deltaVEB*10**-3/(deltaIE*10**-3) #in Ohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"Input resistane of transistor in Ohm :%.0f\"%ri)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistane of transistor in Ohm :40\n"
+ ]
+ }
+ ],
+ "prompt_number": 132
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.9, Page No.72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current gain input resistance and voltage gain\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Ri=500.0 #in Ohm\n",
+ "RL=1.0 #in kOhm\n",
+ "hie=1.0 #in kOhm\n",
+ "hre=2.0*10**-4 #unitless\n",
+ "hfe=50.0 #unitless\n",
+ "hoe=25.0 #micro mho\n",
+ "\n",
+ "#Calculations\n",
+ "#Part (a) :\n",
+ "Ai=-hfe/(1+hoe*10**-6*RL*10**3) #unitless\n",
+ "#Part (b) :\n",
+ "Rin=(hie*10**3)-(hre*hfe/((hoe*10**-6)+1/(RL*10**3))) #in Ohm\n",
+ "#Part (c) :\n",
+ "Av=Ai*RL*10**3/Ri #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nCurrent Gain :%.1f \"%Ai)\n",
+ "print(\"(b)\\nInput Resistance in Ohm :%.2f\"%Rin)\n",
+ "print(\"(c)\\nVoltage Gain :%.1f \"%Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Current Gain :-48.8 \n",
+ "(b)\n",
+ "Input Resistance in Ohm :990.24\n",
+ "(c)\n",
+ "Voltage Gain :-97.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.10, Page No.78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Collector emitter saturation voltage\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "alfaF=0.99 #unitless\n",
+ "alfaR=0.20 #unitless\n",
+ "IC=1.0 #in mA\n",
+ "IB=50.0 #in micro Ampere\n",
+ "T=300 #in kelvin\n",
+ "k=1.38*10**-23 #Boltzman constant\n",
+ "e=1.6*10**-19 #in cooulamb\n",
+ "\n",
+ "#Calculation\n",
+ "Vth=k*T/e #in Volt\n",
+ "VCEsat=Vth*math.log(((IC*10**-3*(1-alfaR)+IB*10**-6)*alfaF)/((alfaF*IB*10**-6-(1-alfaF)*IC*10**-3)*alfaR))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Collector-Emitter saturation voltage in volt :%.3f\"%VCEsat)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector-Emitter saturation voltage in volt :0.121\n"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.11, Page No.78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Relative size of collector junction\n",
+ "import math\n",
+ "#variable declaration\n",
+ "IES=10**-14 #in A\n",
+ "alfaF=1 #unitless\n",
+ "alfaR=0.1 #unitless\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : alfaF*IES=alfaR*ICS\n",
+ "ICS=(alfaF/alfaR)*IES #in Ampere\n",
+ "RelativeSize=ICS/IES #unitless\n",
+ "BetaR=alfaR/(1-alfaR) #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Collector base junction saturation current in Ampere : %.1f * 10^-12\"%(ICS*10**12))\n",
+ "print(\"\\nCollector is %.0f times larger in size than emitter\"%RelativeSize)\n",
+ "print(\"\\nValue of BetaR :%.2f \"%BetaR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector base junction saturation current in Ampere : 0.1 * 10^-12\n",
+ "\n",
+ "Collector is 10 times larger in size than emitter\n",
+ "\n",
+ "Value of BetaR :0.11 \n"
+ ]
+ }
+ ],
+ "prompt_number": 135
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.12, Page No.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#DC load line and operating point\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Beta=100 #unitless\n",
+ "VCC=6 #in volt\n",
+ "RB=530 #in kOhm\n",
+ "RC=2 #in kOhm\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "\n",
+ "#Part (i)\n",
+ "IC1=0 #in A\n",
+ "VCE1=VCC-IC1*RC #in volt\n",
+ "#If VCE=0 #in volt\n",
+ "VCE2=0 #in volt\n",
+ "IC2=VCC/RC #in Ampere\n",
+ "################------------PLOT------------#############\n",
+ "t = arange(0.0001,6 , 0.0005)\n",
+ "t2 = arange(0.0001, 4, 0.0005)\n",
+ "a=arange(0.001,1,0.0005)\n",
+ "x=(4*a)/a\n",
+ "plot(t2,1*t2/t2,'--')\n",
+ "plot(x,a,'--')\n",
+ "plot(t,(3-0.5*t),'b')\n",
+ "text(4,1.1,'Q(4,1)')\n",
+ "text(0.1,3.05,'A')\n",
+ "text(6.05,0.1,'B')\n",
+ "xlabel('VCE(in volts)')\n",
+ "ylabel('IC(in mA)')\n",
+ "title('DC load line')\n",
+ "#########---------------------------------------##########\n",
+ "#Formula : VCC=VBE+IB*RB\n",
+ "IB=(VCC-VBE)/(RB*10**3) #in Ampere\n",
+ "IC=Beta*IB;#in Ampere\n",
+ "VCE=VCC-IC*RC*10**3 #in volt\n",
+ "print(\"Q point coordinates are :\");\n",
+ "print(\"IC=%.1f mA and VCE=%.1f Volt.\"%((IC*10**3),(VCE)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q point coordinates are :\n",
+ "IC=1.0 mA and VCE=4.0 Volt.\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa0c01d0>"
+ ]
+ }
+ ],
+ "prompt_number": 178
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.13, Page No. 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#RB and new value of IC\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Beta=100.0 #unitless\n",
+ "IC=1.0 #in mA\n",
+ "VCC=12.0 #in volt\n",
+ "VBE=0.3 #in volt(For Ge)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "IB=IC/Beta #in mA\n",
+ "#Formula : VCC=VBE+IB*RB\n",
+ "RB=(VCC-VBE)/(IB*10**-3) #in Ampere\n",
+ "\n",
+ "#part (ii)\n",
+ "Beta=50 #unitless\n",
+ "IB=(VCC-VBE)/RB #in Ampere\n",
+ "IC=Beta*IB #in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resistance RB in kOhm : %.0f\"%(RB/10**3))\n",
+ "print(\"Zero signal IC in mA:%.1f\"%(IC*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance RB in kOhm : 1170\n",
+ "Zero signal IC in mA:0.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.14, Page No.88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Set the operating point\n",
+ "import math\n",
+ "print(\"To set the required operating point, value of RB will be find out.\")\n",
+ "\n",
+ "#variable declaration\n",
+ "IC=1.0 #in mA\n",
+ "VCE=8.0 #in volt\n",
+ "Beta=100.0 #unitless\n",
+ "VCC=12.0 #in volt\n",
+ "VBE=0.3 #in volt(For Ge)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "RC=(VCC-VCE)/(IC*10**-3) #in ohm\n",
+ "IB=IC/Beta #in mA\n",
+ "RB=(VCC-VBE-Beta*(IB*10**-3)*RC)/(IB*10**-3) #in Ohm\n",
+ "\n",
+ "#Part (ii)\n",
+ "Beta=50 #unitless\n",
+ "IB=(VCC-VBE)/(RB+Beta*RC) #in mA\n",
+ "IC=Beta*IB #in Ampere\n",
+ "VCE=VCC-IC*RC #in volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of RB in kOhm : %.0f\"%(RB/1000))\n",
+ "print(\"New operating point is %.1f V,%.1f mA\"%(VCE,IC*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "To set the required operating point, value of RB will be find out.\n",
+ "Value of RB in kOhm : 770\n",
+ "New operating point is 9.6 V,0.6 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.15, Page No. 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of IC\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=50.0 #in kohm\n",
+ "R2=10.0 #in kohm\n",
+ "RE=1.0 #in kohm\n",
+ "VCC=12.0 #in volt\n",
+ "\n",
+ "#calaculation\n",
+ "\n",
+ "#Part (i)\n",
+ "VBE=0.1 #in volt\n",
+ "VBBdash=(R2/(R1+R2))*VCC #in volt\n",
+ "IC1=(VBBdash-VBE)/(RE*1000) #in mA\n",
+ "\n",
+ "#Part (ii)\n",
+ "VBE=0.3 #in volt\n",
+ "IC2=(VBBdash-VBE)/(RE*1000) #in mA\n",
+ "\n",
+ "#result\n",
+ "print(\"At VBE=0.1V, Value of IC in mA : %.1f\"%(IC1*1000))\n",
+ "print(\"At VBE=0.3V, Value of IC in mA : %.1f\"%(IC2*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At VBE=0.1V, Value of IC in mA : 1.9\n",
+ "At VBE=0.3V, Value of IC in mA : 1.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.16, Page No.94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Operating point and stability factor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=10.0 #in kohm\n",
+ "R2=5.0 #in kohm\n",
+ "RE=2.0 #in kohm\n",
+ "RC=1.0 #in kohm\n",
+ "VCC=12.0 #in volt\n",
+ "Beta=100.0 #unitless\n",
+ "VBE=0.7 #in volt\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "#Formula : VBE=VBBdash-IB*RBdash-IE*RE\n",
+ "VBBdash=(R2/(R1+R2))*VCC #in volt\n",
+ "IE=(VBBdash-VBE)/(RE*10**3) #in Ampere\n",
+ "IC=IE #in mA\n",
+ "#Formula : VCC=IC*RC+VCE+IE*RE\n",
+ "VCE=VCC-IC*RC*10**3-IE*RE*10**3 #in Volt\n",
+ "\n",
+ "#Part (ii)\n",
+ "RBdash=(R1*R2/(R1+R2)) #in kOhm\n",
+ "S=(Beta+1)/(1+Beta*(RE/(RBdash+RE)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"IB is ver small : VBE=VBBdash-IE*RE\")\n",
+ "print(\"As base current is very small IC=IE\\n\")\n",
+ "print(\"Operating point is %.3f V, %.3f mA\\n\"%(VCE,IC*10**3))\n",
+ "print(\"Staility factor S is : %.2f\"%(S))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "IB is ver small : VBE=VBBdash-IE*RE\n",
+ "As base current is very small IC=IE\n",
+ "\n",
+ "Operating point is 7.050 V, 1.650 mA\n",
+ "\n",
+ "Staility factor S is : 2.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.17, Page No. 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#IC and VCE\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=200.0 #in kohm\n",
+ "R2=100.0 #in kohm\n",
+ "RE=1.0 #in kohm\n",
+ "RC=1.0 #in kohm\n",
+ "VCC=9.0 #in volt\n",
+ "he=2.0 #in kohm\n",
+ "hfe=100.0 #unitless\n",
+ "hoe=0.0 #unitless\n",
+ "hre=0.0 #unitless\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "RB=R1*R2/(R1+R2) #in kohm\n",
+ "VBBdash=(R2/(R1+R2))*VCC #in volt\n",
+ "#Applying Kirchoff Law \n",
+ "IB=(VBBdash-VBE)/(RB*10**3+RE*10**3*(1+hfe)) #in Ampere\n",
+ "IC=hfe*IB #in Ampere\n",
+ "\n",
+ "#Part (ii)\n",
+ "#Applying Kirchoff Law \n",
+ "VCE=VCC-IC*RC*10**3-RE*1063*IB*(hfe+1) #in volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of IC in mA : %.2f\"%(IC*10**3))\n",
+ "print(\"VCE in volt :%.3f\"%VCE)\n",
+ "#Note : Ans of VCE is wrong in the book as VCC=10 V has been taken instead of 9 volt."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of IC in mA : 1.37\n",
+ "VCE in volt :6.155\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.18, Page No.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Region of Q point\n",
+ "import math\n",
+ "#variable declaration\n",
+ "RB=50.0 #in kohm\n",
+ "RC=3.0 #in kohm\n",
+ "VCC=10.0 #in volt\n",
+ "VEE=5.0 #in volt\n",
+ "hfe=100.0 #unitless\n",
+ "VCEsat=0.2 #in volt \n",
+ "VBEsat=0.8 #in volt\n",
+ "VBEactive=0.7 #in volt\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Applying : Kirchoff 2nd Law : VEE-RB*IB-VBE=0\n",
+ "IB=(VEE-VBE)/(RB*10**3) #in Ampere\n",
+ "IC=hfe*IB #in Ampere \n",
+ "#Applying Kirchoff 2nd Law to collector-emitter loop: VCC-IC*RC-VCB-VBEactive=0\n",
+ "VCB=VCC-IC*RC*10**3-VBEactive #in volt:\n",
+ "IB=(VEE-VBEsat)/(RB*10**3) #in Ampere\n",
+ "IC=(VCC-VCEsat)/(RC*10**3);\n",
+ "\n",
+ "#result\n",
+ "print(\"Collector to base voltage, VCB :%.1fV\"%VCB)\n",
+ "print(\"\\nThis shows that the base collector junction is forward biased. This implies that the transistor is in saturation region.\")\n",
+ "print(\"\\nValue of IB in mA :%.3f\"%(IB*10**3))\n",
+ "print(\"\\nValue of IC in mA :%.2f\"%(IC*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector to base voltage, VCB :-16.5V\n",
+ "\n",
+ "This shows that the base collector junction is forward biased. This implies that the transistor is in saturation region.\n",
+ "\n",
+ "Value of IB in mA :0.084\n",
+ "\n",
+ "Value of IC in mA :3.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.19, Page No.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage across RE\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VCC=20.0 #in volt\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "Beta=50.0 #unitless\n",
+ "RE=200.0 #in ohm\n",
+ "R1=60.0 #in kohm\n",
+ "R2=30.0 #in kohm\n",
+ "\n",
+ "#calculation\n",
+ "V2=VCC*R2/(R1+R2) #in volt\n",
+ "VEO=V2-VBE #in volt\n",
+ "\n",
+ "#result\n",
+ "print(\"Voltage across RE in volt : %.2f\"%VEO)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage across RE in volt : 5.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_2_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_2_1.ipynb
new file mode 100755
index 00000000..b6f3fd83
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_2_1.ipynb
@@ -0,0 +1,904 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.2: Bipolar junction Transistors(BJTs)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1 , Page No. 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current amplification factors\n",
+ "import math\n",
+ "#variable declaration\n",
+ "deltaIB=50.0 #in uA\n",
+ "deltaIC=1.0 #in mA\n",
+ "\n",
+ "#Calculations\n",
+ "deltaIC=deltaIC*10**3 #in uA\n",
+ "Beta=deltaIC/deltaIB #unitless\n",
+ "Alfa=Beta/(1+Beta) #unittless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current Amplification Factor,Beta :%.0f\"%Beta)\n",
+ "print(\"Current Amplification Factor,Alfa :%.3f or 20/21\"%(Alfa))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current Amplification Factor,Beta :20\n",
+ "Current Amplification Factor,Alfa :0.952 or 20/21\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No.63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of IE\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "IB=25.0 #in uA\n",
+ "Beta=40.0 #unitless\n",
+ "\n",
+ "#Calculations\n",
+ "IC=Beta*IB #in uA\n",
+ "IE=IB+IC #in uA\n",
+ "\n",
+ "#Result\n",
+ "print(\"The value of IE : %.0f micro Ampere\"%IE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of IE : 1025 micro Ampere\n"
+ ]
+ }
+ ],
+ "prompt_number": 127
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, page No.63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change in collector current\n",
+ "import math\n",
+ "#variable declaration\n",
+ "alfa=0.98 #unitless\n",
+ "deltaIB=0.2 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "Beta=alfa/(1-alfa) #unitless\n",
+ "deltaIC=Beta*deltaIB #in mA\n",
+ "\n",
+ "#result\n",
+ "print(\"Change in collector curent :%.0f mA \"% (deltaIC))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in collector curent :10 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 128
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#nput current in CE and CB configuration\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Beta=45 #unitless\n",
+ "RL=1.0 #in kOhm\n",
+ "deltaVCE=1 #in volt\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#(i)\n",
+ "IC=deltaVCE/(RL*1000) #in Ampere\n",
+ "#Formula : Beta=deltaIC/deltaIB\n",
+ "IB=IC/Beta #in Ampere\n",
+ "\n",
+ "#(ii)\n",
+ "IC=deltaVCE/(RL*1000) #in Ampere\n",
+ "#Formula : Beta=deltaIC/deltaIB\n",
+ "IE=IB+IC #in Ampere\n",
+ "\n",
+ "#result\n",
+ "print(\"Part (i) : CE coniguration\\n\")\n",
+ "print(\"Input Base Current, IB in mA :%.3f \"%(IB*10**3))\n",
+ "print(\"\\nPart (ii) : CB coniguration\\n\")\n",
+ "print(\"Input Emitter Current, IE in mA :%.3f \"%(IE*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (i) : CE coniguration\n",
+ "\n",
+ "Input Base Current, IB in mA :0.022 \n",
+ "\n",
+ "Part (ii) : CB coniguration\n",
+ "\n",
+ "Input Emitter Current, IE in mA :1.022 \n"
+ ]
+ }
+ ],
+ "prompt_number": 129
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current gain and base current\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Ileakage=12.5 #in uA\n",
+ "ICBO=12.5 #in uA\n",
+ "IE=2 #in mA\n",
+ "IC=1.97 #in mA\n",
+ "\n",
+ "#calculation\n",
+ "#Formula : IC=alfa*IE+ICBO\n",
+ "alfa=(IC-ICBO/10**3)/IE #unitless\n",
+ "IB=IE-IC #in mA\n",
+ "\n",
+ "#result\n",
+ "print(\"Current Gain : %.3f\"%(math.floor(alfa*1000)/1000))\n",
+ "print(\"Base current in mA : %.2f\"%IB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current Gain : 0.978\n",
+ "Base current in mA : 0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 130
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.6, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input resistance of transistor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "deltaVBE=200.0 #in mVolt\n",
+ "deltaIB=100 #in uA\n",
+ "\n",
+ "#calculations\n",
+ "ri=deltaVBE*10**-3/(deltaIB*10**-6) #in Ohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"Input resistane of transistor in kohm :%.0f\"%(ri/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistane of transistor in kohm :2\n"
+ ]
+ }
+ ],
+ "prompt_number": 131
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.7, Page No.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Dynamic input resistance\n",
+ "import math\n",
+ "#variable declaration\n",
+ "deltaVEB=200.0 #in mVolt\n",
+ "deltaIE=5.0 #in mA\n",
+ "\n",
+ "#calculation\n",
+ "ri=deltaVEB*10**-3/(deltaIE*10**-3) #in Ohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"Input resistane of transistor in Ohm :%.0f\"%ri)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistane of transistor in Ohm :40\n"
+ ]
+ }
+ ],
+ "prompt_number": 132
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.9, Page No.72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current gain input resistance and voltage gain\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Ri=500.0 #in Ohm\n",
+ "RL=1.0 #in kOhm\n",
+ "hie=1.0 #in kOhm\n",
+ "hre=2.0*10**-4 #unitless\n",
+ "hfe=50.0 #unitless\n",
+ "hoe=25.0 #micro mho\n",
+ "\n",
+ "#Calculations\n",
+ "#Part (a) :\n",
+ "Ai=-hfe/(1+hoe*10**-6*RL*10**3) #unitless\n",
+ "#Part (b) :\n",
+ "Rin=(hie*10**3)-(hre*hfe/((hoe*10**-6)+1/(RL*10**3))) #in Ohm\n",
+ "#Part (c) :\n",
+ "Av=Ai*RL*10**3/Ri #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nCurrent Gain :%.1f \"%Ai)\n",
+ "print(\"(b)\\nInput Resistance in Ohm :%.2f\"%Rin)\n",
+ "print(\"(c)\\nVoltage Gain :%.1f \"%Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Current Gain :-48.8 \n",
+ "(b)\n",
+ "Input Resistance in Ohm :990.24\n",
+ "(c)\n",
+ "Voltage Gain :-97.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.10, Page No.78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Collector emitter saturation voltage\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "alfaF=0.99 #unitless\n",
+ "alfaR=0.20 #unitless\n",
+ "IC=1.0 #in mA\n",
+ "IB=50.0 #in micro Ampere\n",
+ "T=300 #in kelvin\n",
+ "k=1.38*10**-23 #Boltzman constant\n",
+ "e=1.6*10**-19 #in cooulamb\n",
+ "\n",
+ "#Calculation\n",
+ "Vth=k*T/e #in Volt\n",
+ "VCEsat=Vth*math.log(((IC*10**-3*(1-alfaR)+IB*10**-6)*alfaF)/((alfaF*IB*10**-6-(1-alfaF)*IC*10**-3)*alfaR))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Collector-Emitter saturation voltage in volt :%.3f\"%VCEsat)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector-Emitter saturation voltage in volt :0.121\n"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.11, Page No.78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Relative size of collector junction\n",
+ "import math\n",
+ "#variable declaration\n",
+ "IES=10**-14 #in A\n",
+ "alfaF=1 #unitless\n",
+ "alfaR=0.1 #unitless\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : alfaF*IES=alfaR*ICS\n",
+ "ICS=(alfaF/alfaR)*IES #in Ampere\n",
+ "RelativeSize=ICS/IES #unitless\n",
+ "BetaR=alfaR/(1-alfaR) #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Collector base junction saturation current in Ampere : %.1f * 10^-12\"%(ICS*10**12))\n",
+ "print(\"\\nCollector is %.0f times larger in size than emitter\"%RelativeSize)\n",
+ "print(\"\\nValue of BetaR :%.2f \"%BetaR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector base junction saturation current in Ampere : 0.1 * 10^-12\n",
+ "\n",
+ "Collector is 10 times larger in size than emitter\n",
+ "\n",
+ "Value of BetaR :0.11 \n"
+ ]
+ }
+ ],
+ "prompt_number": 135
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.12, Page No.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#DC load line and operating point\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Beta=100 #unitless\n",
+ "VCC=6 #in volt\n",
+ "RB=530 #in kOhm\n",
+ "RC=2 #in kOhm\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "\n",
+ "#Part (i)\n",
+ "IC1=0 #in A\n",
+ "VCE1=VCC-IC1*RC #in volt\n",
+ "#If VCE=0 #in volt\n",
+ "VCE2=0 #in volt\n",
+ "IC2=VCC/RC #in Ampere\n",
+ "################------------PLOT------------#############\n",
+ "t = arange(0.0001,6 , 0.0005)\n",
+ "t2 = arange(0.0001, 4, 0.0005)\n",
+ "a=arange(0.001,1,0.0005)\n",
+ "x=(4*a)/a\n",
+ "plot(t2,1*t2/t2,'--')\n",
+ "plot(x,a,'--')\n",
+ "plot(t,(3-0.5*t),'b')\n",
+ "text(4,1.1,'Q(4,1)')\n",
+ "text(0.1,3.05,'A')\n",
+ "text(6.05,0.1,'B')\n",
+ "xlabel('VCE(in volts)')\n",
+ "ylabel('IC(in mA)')\n",
+ "title('DC load line')\n",
+ "#########---------------------------------------##########\n",
+ "#Formula : VCC=VBE+IB*RB\n",
+ "IB=(VCC-VBE)/(RB*10**3) #in Ampere\n",
+ "IC=Beta*IB;#in Ampere\n",
+ "VCE=VCC-IC*RC*10**3 #in volt\n",
+ "print(\"Q point coordinates are :\");\n",
+ "print(\"IC=%.1f mA and VCE=%.1f Volt.\"%((IC*10**3),(VCE)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q point coordinates are :\n",
+ "IC=1.0 mA and VCE=4.0 Volt.\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa0c01d0>"
+ ]
+ }
+ ],
+ "prompt_number": 178
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.13, Page No. 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#RB and new value of IC\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Beta=100.0 #unitless\n",
+ "IC=1.0 #in mA\n",
+ "VCC=12.0 #in volt\n",
+ "VBE=0.3 #in volt(For Ge)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "IB=IC/Beta #in mA\n",
+ "#Formula : VCC=VBE+IB*RB\n",
+ "RB=(VCC-VBE)/(IB*10**-3) #in Ampere\n",
+ "\n",
+ "#part (ii)\n",
+ "Beta=50 #unitless\n",
+ "IB=(VCC-VBE)/RB #in Ampere\n",
+ "IC=Beta*IB #in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resistance RB in kOhm : %.0f\"%(RB/10**3))\n",
+ "print(\"Zero signal IC in mA:%.1f\"%(IC*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance RB in kOhm : 1170\n",
+ "Zero signal IC in mA:0.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.14, Page No.88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Set the operating point\n",
+ "import math\n",
+ "print(\"To set the required operating point, value of RB will be find out.\")\n",
+ "\n",
+ "#variable declaration\n",
+ "IC=1.0 #in mA\n",
+ "VCE=8.0 #in volt\n",
+ "Beta=100.0 #unitless\n",
+ "VCC=12.0 #in volt\n",
+ "VBE=0.3 #in volt(For Ge)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "RC=(VCC-VCE)/(IC*10**-3) #in ohm\n",
+ "IB=IC/Beta #in mA\n",
+ "RB=(VCC-VBE-Beta*(IB*10**-3)*RC)/(IB*10**-3) #in Ohm\n",
+ "\n",
+ "#Part (ii)\n",
+ "Beta=50 #unitless\n",
+ "IB=(VCC-VBE)/(RB+Beta*RC) #in mA\n",
+ "IC=Beta*IB #in Ampere\n",
+ "VCE=VCC-IC*RC #in volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of RB in kOhm : %.0f\"%(RB/1000))\n",
+ "print(\"New operating point is %.1f V,%.1f mA\"%(VCE,IC*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "To set the required operating point, value of RB will be find out.\n",
+ "Value of RB in kOhm : 770\n",
+ "New operating point is 9.6 V,0.6 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.15, Page No. 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of IC\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=50.0 #in kohm\n",
+ "R2=10.0 #in kohm\n",
+ "RE=1.0 #in kohm\n",
+ "VCC=12.0 #in volt\n",
+ "\n",
+ "#calaculation\n",
+ "\n",
+ "#Part (i)\n",
+ "VBE=0.1 #in volt\n",
+ "VBBdash=(R2/(R1+R2))*VCC #in volt\n",
+ "IC1=(VBBdash-VBE)/(RE*1000) #in mA\n",
+ "\n",
+ "#Part (ii)\n",
+ "VBE=0.3 #in volt\n",
+ "IC2=(VBBdash-VBE)/(RE*1000) #in mA\n",
+ "\n",
+ "#result\n",
+ "print(\"At VBE=0.1V, Value of IC in mA : %.1f\"%(IC1*1000))\n",
+ "print(\"At VBE=0.3V, Value of IC in mA : %.1f\"%(IC2*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At VBE=0.1V, Value of IC in mA : 1.9\n",
+ "At VBE=0.3V, Value of IC in mA : 1.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.16, Page No.94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Operating point and stability factor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=10.0 #in kohm\n",
+ "R2=5.0 #in kohm\n",
+ "RE=2.0 #in kohm\n",
+ "RC=1.0 #in kohm\n",
+ "VCC=12.0 #in volt\n",
+ "Beta=100.0 #unitless\n",
+ "VBE=0.7 #in volt\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "#Formula : VBE=VBBdash-IB*RBdash-IE*RE\n",
+ "VBBdash=(R2/(R1+R2))*VCC #in volt\n",
+ "IE=(VBBdash-VBE)/(RE*10**3) #in Ampere\n",
+ "IC=IE #in mA\n",
+ "#Formula : VCC=IC*RC+VCE+IE*RE\n",
+ "VCE=VCC-IC*RC*10**3-IE*RE*10**3 #in Volt\n",
+ "\n",
+ "#Part (ii)\n",
+ "RBdash=(R1*R2/(R1+R2)) #in kOhm\n",
+ "S=(Beta+1)/(1+Beta*(RE/(RBdash+RE)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"IB is ver small : VBE=VBBdash-IE*RE\")\n",
+ "print(\"As base current is very small IC=IE\\n\")\n",
+ "print(\"Operating point is %.3f V, %.3f mA\\n\"%(VCE,IC*10**3))\n",
+ "print(\"Staility factor S is : %.2f\"%(S))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "IB is ver small : VBE=VBBdash-IE*RE\n",
+ "As base current is very small IC=IE\n",
+ "\n",
+ "Operating point is 7.050 V, 1.650 mA\n",
+ "\n",
+ "Staility factor S is : 2.62\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.17, Page No. 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#IC and VCE\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=200.0 #in kohm\n",
+ "R2=100.0 #in kohm\n",
+ "RE=1.0 #in kohm\n",
+ "RC=1.0 #in kohm\n",
+ "VCC=9.0 #in volt\n",
+ "he=2.0 #in kohm\n",
+ "hfe=100.0 #unitless\n",
+ "hoe=0.0 #unitless\n",
+ "hre=0.0 #unitless\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "RB=R1*R2/(R1+R2) #in kohm\n",
+ "VBBdash=(R2/(R1+R2))*VCC #in volt\n",
+ "#Applying Kirchoff Law \n",
+ "IB=(VBBdash-VBE)/(RB*10**3+RE*10**3*(1+hfe)) #in Ampere\n",
+ "IC=hfe*IB #in Ampere\n",
+ "\n",
+ "#Part (ii)\n",
+ "#Applying Kirchoff Law \n",
+ "VCE=VCC-IC*RC*10**3-RE*1063*IB*(hfe+1) #in volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of IC in mA : %.2f\"%(IC*10**3))\n",
+ "print(\"VCE in volt :%.3f\"%VCE)\n",
+ "#Note : Ans of VCE is wrong in the book as VCC=10 V has been taken instead of 9 volt."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of IC in mA : 1.37\n",
+ "VCE in volt :6.155\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.18, Page No.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Region of Q point\n",
+ "import math\n",
+ "#variable declaration\n",
+ "RB=50.0 #in kohm\n",
+ "RC=3.0 #in kohm\n",
+ "VCC=10.0 #in volt\n",
+ "VEE=5.0 #in volt\n",
+ "hfe=100.0 #unitless\n",
+ "VCEsat=0.2 #in volt \n",
+ "VBEsat=0.8 #in volt\n",
+ "VBEactive=0.7 #in volt\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Applying : Kirchoff 2nd Law : VEE-RB*IB-VBE=0\n",
+ "IB=(VEE-VBE)/(RB*10**3) #in Ampere\n",
+ "IC=hfe*IB #in Ampere \n",
+ "#Applying Kirchoff 2nd Law to collector-emitter loop: VCC-IC*RC-VCB-VBEactive=0\n",
+ "VCB=VCC-IC*RC*10**3-VBEactive #in volt:\n",
+ "IB=(VEE-VBEsat)/(RB*10**3) #in Ampere\n",
+ "IC=(VCC-VCEsat)/(RC*10**3);\n",
+ "\n",
+ "#result\n",
+ "print(\"Collector to base voltage, VCB :%.1fV\"%VCB)\n",
+ "print(\"\\nThis shows that the base collector junction is forward biased. This implies that the transistor is in saturation region.\")\n",
+ "print(\"\\nValue of IB in mA :%.3f\"%(IB*10**3))\n",
+ "print(\"\\nValue of IC in mA :%.2f\"%(IC*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector to base voltage, VCB :-16.5V\n",
+ "\n",
+ "This shows that the base collector junction is forward biased. This implies that the transistor is in saturation region.\n",
+ "\n",
+ "Value of IB in mA :0.084\n",
+ "\n",
+ "Value of IC in mA :3.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.19, Page No.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage across RE\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VCC=20.0 #in volt\n",
+ "VBE=0.7 #in volt(For Si)\n",
+ "Beta=50.0 #unitless\n",
+ "RE=200.0 #in ohm\n",
+ "R1=60.0 #in kohm\n",
+ "R2=30.0 #in kohm\n",
+ "\n",
+ "#calculation\n",
+ "V2=VCC*R2/(R1+R2) #in volt\n",
+ "VEO=V2-VBE #in volt\n",
+ "\n",
+ "#result\n",
+ "print(\"Voltage across RE in volt : %.2f\"%VEO)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage across RE in volt : 5.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_3.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_3.ipynb
new file mode 100755
index 00000000..d59f3fb2
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_3.ipynb
@@ -0,0 +1,727 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Transistor Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.1, page No.117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain Impedence and ac load\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "ib=10.0 #in uA\n",
+ "ic=1.0 #in mA\n",
+ "ic=ic*10**3 #in uA\n",
+ "vi=0.02 #in Volt\n",
+ "RC=5.0 #in kohm\n",
+ "RL=10.0 #in kohm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i)\n",
+ "Ai=-ic/ib #unitless\n",
+ "Beta=Ai #unitless\n",
+ "\n",
+ "#Part (ii)\n",
+ "Rie=vi/(ib*10**-6) #in Ohm\n",
+ "\n",
+ "#Part (iii)\n",
+ "Rac=RC*RL/(RC+RL) #in kohm\n",
+ "\n",
+ "#Part (iv)\n",
+ "Av=-Rac*10**3*Beta/Rie #unitless\n",
+ "\n",
+ "#Part (v)\n",
+ "PowerGain=Av*Ai #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\tCurrent gain : %.2f\"%Ai)\n",
+ "print(\"(ii)\\tInput impedence in kohm :%.0f\"%(Rie*10**-3))\n",
+ "print(\"(iii)\\tAC load in kohm : %.1f\"%Rac)\n",
+ "print(\"(iv)\\tVoltage gain :%.3f\"%Av)\n",
+ "print(\"(v)\\tPower Gain is : %.3f\"%PowerGain)\n",
+ "#Note : Ans of Av and Power gain is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\tCurrent gain : -100.00\n",
+ "(ii)\tInput impedence in kohm :2\n",
+ "(iii)\tAC load in kohm : 3.3\n",
+ "(iv)\tVoltage gain :166.667\n",
+ "(v)\tPower Gain is : -16666.667\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.2, page No.125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain input and output impedence\n",
+ "import math\n",
+ "\n",
+ "#Varible declaration\n",
+ "RL=10.0 #in kohm\n",
+ "RS=1.0 #in kohm\n",
+ "hie=1.1 #in kOhm\n",
+ "hre=2.5*10**-4 #unitless\n",
+ "hfe=50.0 #unitless\n",
+ "hoe=25.0 #in u mho\n",
+ "\n",
+ "#Calculations\n",
+ "Aie=-hfe/(1+hoe*10**-6*RL*10**3)#unitless\n",
+ "Zie=hie+hre*Aie*RL #in kOhm\n",
+ "Zie=math.ceil(Zie)\n",
+ "Ave=Aie*RL/Zie #unitless\n",
+ "Avs_e=Ave*Zie/(Zie+RS)\n",
+ "deltah=hoe*10**-6*hie*10**3-hfe*hre\n",
+ "Zoe=(hie*10**3+RS*10**3)/(hoe*10**-6*RS*10**3+deltah)\n",
+ "Ais_e=Aie*RS/(Zie+RS)\n",
+ "Ape=Ave*Aie\n",
+ "Aps_e=Avs_e*Ais_e\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current gain :%.0f \"%Aie)\n",
+ "print(\"\\nCurrent gain with source resistance : %.0f\"%Ais_e)\n",
+ "print(\"\\nVoltage gain : %.0f\"%Ave)\n",
+ "print(\"\\nVoltage gain with source resistance : %.0f\"%Avs_e)\n",
+ "print(\"\\nPower gain :%.0f \"%Ape)\n",
+ "print(\"\\nPower gain with source resistance :%.0f \"%Aps_e)\n",
+ "print(\"\\nInput impedence in kohm :%.1f\"%Zie)\n",
+ "print(\"\\nOutput impedence in kohm :%.1f\"%(Zoe/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current gain :-40 \n",
+ "\n",
+ "Current gain with source resistance : -20\n",
+ "\n",
+ "Voltage gain : -400\n",
+ "\n",
+ "Voltage gain with source resistance : -200\n",
+ "\n",
+ "Power gain :16000 \n",
+ "\n",
+ "Power gain with source resistance :4000 \n",
+ "\n",
+ "Input impedence in kohm :1.0\n",
+ "\n",
+ "Output impedence in kohm :52.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.3, Page No. 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input Output impedence and output voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "InputVoltage=1.0 #in mV\n",
+ "RL=5.6 #in kohm\n",
+ "RS=600.0 #in ohm\n",
+ "hre=6.5*10**-4 #unitless\n",
+ "hie=1.7 #in kOhm\n",
+ "hfe=125.0 #unitless\n",
+ "hoe=80.0 #in uA/V\n",
+ "\n",
+ "#Calculations\n",
+ "deltah=hoe*10**-6*hie*10**3-hfe*hre\n",
+ "Zie=(hie*10**3+RL*10**3*deltah)/(1+hoe*10**-6*RL*10**3)\n",
+ "Zoe=(hie*10**3+RS)/(hoe*10**-6*RS+deltah)\n",
+ "Ave=-(hfe*RL*10**3)/(hie*10**3+RL*10**3*deltah)\n",
+ "Avs_e=Ave*Zie/(Zie+RS)\n",
+ "OutputVoltage=Avs_e*InputVoltage\n",
+ "\n",
+ "#Result\n",
+ "print(\"Input impedence in kohm :%.3f\"%(Zie/1000))\n",
+ "print(\"Output impedence in kohm :%.3f\"%(Zoe/10**3))\n",
+ "print(\"Voltage gain : %.3f\"%Ave)\n",
+ "print(\"Voltage gain with source resistance : %.3f\"%Avs_e)\n",
+ "print(\"Output Voltage in mV :%.3f \"%OutputVoltage)\n",
+ "#Note : Answers are wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input impedence in kohm :1.386\n",
+ "Output impedence in kohm :22.384\n",
+ "Voltage gain : -348.849\n",
+ "Voltage gain with source resistance : -243.444\n",
+ "Output Voltage in mV :-243.444 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.4, Page no.129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Net voltage gain in dB\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A1=100.0 #unitless\n",
+ "A2=200.0 #unitless\n",
+ "A3=400.0 #unitless\n",
+ "\n",
+ "#calculations\n",
+ "A1=20*math.log10(A1) #in dB\n",
+ "A2=20*math.log10(A2) #in dB\n",
+ "A3=20*math.log10(A3) #in dB\n",
+ "NetVoltageGain=A1+A2+A3 #in dB\n",
+ "\n",
+ "#Result\n",
+ "print(\"Net Voltage Gain in decibels :%.3f\"%NetVoltageGain)\n",
+ "#Note : Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net Voltage Gain in decibels :138.062\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.5, Page No.129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bandwidth and cut off frequencies \n",
+ "import math\n",
+ "#Variable declaration\n",
+ "MaxGain=1000.0 #unitless(at 2kHz)\n",
+ "f1=50.0 #in Hz\n",
+ "f2=10.0 #in KHz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Bandwidth is from %.0f Hz to %.0f kHz\"%(f1,f2))\n",
+ "print(\"Lower cutoff frequency %.0f Hz\"%f1)\n",
+ "print(\"Upper cutoff frequency %.0f kHz\"%f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bandwidth is from 50 Hz to 10 kHz\n",
+ "Lower cutoff frequency 50 Hz\n",
+ "Upper cutoff frequency 10 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.6, Page No.137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Overall voltage gain\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "RC=10.0 #in kohm\n",
+ "hfe=330.0 #unitless\n",
+ "hie=4.5 #in kOhm\n",
+ "\n",
+ "#Calculation\n",
+ "#RS<<hie\n",
+ "AVM=hfe*RC*10**3/(hie*10**3+RC*10**3)\n",
+ "AVM1=AVM #Gain of 1st stage\n",
+ "AVM2=AVM #Gain of 2nd stage\n",
+ "AVM3=hfe*RC*10**3/(hie*10**3) #unitless(//Gain of 3rd stage)\n",
+ "OverallGain=AVM1*AVM2*AVM3 #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Gain in mid frequeny range : %.1f\"%AVM)\n",
+ "print(\"This is the gain of 1st and 2nd stage.\")\n",
+ "print(\"Overall Voltage gain for mid frequency range : %.1f * 10^7\"%(OverallGain/10**7))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gain in mid frequeny range : 227.6\n",
+ "This is the gain of 1st and 2nd stage.\n",
+ "Overall Voltage gain for mid frequency range : 3.8 * 10^7\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.7, Page No.138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Couopling capacitor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "RC=5.5 #in kohm\n",
+ "hfe=330.0 #unitless\n",
+ "hie=4.5 #in kohm\n",
+ "f1=30.0 #in Hz\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : f1=1/(2*%pi*C*(hie+RC))\n",
+ "C=1/(2*math.pi*f1*(hie*10**3+RC*10**3))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of coupling capacitor in micro farad : %.2f\"%(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of coupling capacitor in micro farad : 0.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.8, Page No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage gain\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "RC=10.0 #in kohm\n",
+ "Rin=1.0 #in kohm\n",
+ "Beta=100.0 #unitless\n",
+ "RL=100.0 #in ohm\n",
+ "\n",
+ "#Calculation\n",
+ "RCdash=RC*10**3*RL/(RC*10**3+RL)\n",
+ "VoltageGain=Beta*RCdash/(Rin*10**3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Voltage Gain :%.2f \"%VoltageGain)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage Gain :9.90 \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.9, Page No. 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Inductance of primary and secondary\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Rout=10.0 #in kohm\n",
+ "Rin=2.5 #in kohm\n",
+ "f=200.0 #in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Formula : Rout=omega*Lp=2*%pi*f*Lp\n",
+ "Lp=Rout*10**3/(2*math.pi*f) #in H\n",
+ "#Formula : Rin=omega*Ls=2*%pi*f*Ls\n",
+ "Ls=Rin*10**3/(2*math.pi*f) #in H\n",
+ "\n",
+ "#Result\n",
+ "print(\"Inductance of primary in Henry : %.0f\"%Lp)\n",
+ "print(\"Inductance of seondary in Henry : %.0f\"%Ls)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance of primary in Henry : 8\n",
+ "Inductance of seondary in Henry : 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.10, Page No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Turn ratio of transformer\n",
+ "import math\n",
+ "#variable declaration\n",
+ "ZL=10.0 #in ohm\n",
+ "ZP=1000.0 #in ohm\n",
+ "\n",
+ "#For max power : ZP=n^2*ZL\n",
+ "n=math.sqrt(ZP/ZL) #turn ratio\n",
+ "\n",
+ "#Result\n",
+ "print(\"Turn ratio : %.0f\"%n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turn ratio : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.11, Page No.149 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Collector eficieny and power rating\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Po_dc=10.0 #in watt\n",
+ "Po_ac=3.5 #in watt\n",
+ "\n",
+ "#calculation\n",
+ "ETAcollector=Po_ac/Po_dc #unitless\n",
+ "ETAcollector=ETAcollector*100 #collector efficiency in %\n",
+ "\n",
+ "#Result\n",
+ "print(\"Collector Efficiency : %.0f%%\"%ETAcollector)\n",
+ "print(\"\\nZero signal condition represents maximum power loss.\")\n",
+ "print(\"Therefore, all the 10 W power is dissipated by it. Hence Powe Rating of transistor in Watt : %.0f\"%Po_dc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector Efficiency : 35%\n",
+ "\n",
+ "Zero signal condition represents maximum power loss.\n",
+ "Therefore, all the 10 W power is dissipated by it. Hence Powe Rating of transistor in Watt : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.12, Page No.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Power and eficiency\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VCC=20.0 #in volt\n",
+ "RC=20.0 #in ohm\n",
+ "VCEQ=10.0 #in volt\n",
+ "ICQ=500.0 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "#part (i) :\n",
+ "Pin_dc=VCC*ICQ*10**-3 #in watt\n",
+ "\n",
+ "#part (ii) :\n",
+ "PRc_dc=ICQ**2*10**-6*RC #in watt\n",
+ "\n",
+ "#part (iii) :\n",
+ "Io=250 #in mA(maximum value of output ac current)\n",
+ "Irms=Io/math.sqrt(2) #in mA\n",
+ "Po_ac=Irms**2*10**-6*RC #in watt\n",
+ "\n",
+ "#part (iv) :\n",
+ "Ptr_dc=Pin_dc-PRc_dc #in watt\n",
+ "\n",
+ "#part (v) :\n",
+ "PC_dc=Pin_dc-PRc_dc-Po_ac #in watt\n",
+ "\n",
+ "#part (vi) :\n",
+ "ETAoverall=Po_ac*100/Pin_dc #Overall Efficiency (in %)\n",
+ "\n",
+ "#part (vii) :\n",
+ "ETAcollector=Po_ac*100/PRc_dc#Collector Efficiency (in %)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\nTotal dc power taken by the circuit in Watt : %.0f\"%Pin_dc)\n",
+ "print(\"\\n(ii)\\ndc power dissipated by the collector load in Watt : %.0f\"%PRc_dc)\n",
+ "print(\"\\n(iii)\\nPower developed across the load in Watt :%.3f \"%Po_ac)\n",
+ "print(\"\\n((iv)\\ndc power dissipated by the collector load in Watt :%.0f \"%Ptr_dc)\n",
+ "print(\"\\n(v)\\ndc power dissipated by the collector load in Watt : %.3f\"%PC_dc)\n",
+ "print(\"\\n(vi)\\nOverall Efficiency :%.3f%%\"%ETAoverall)\n",
+ "print(\"\\n(vii)\\nCollector Efficiency :%.2f%%\"%ETAcollector)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Total dc power taken by the circuit in Watt : 10\n",
+ "\n",
+ "(ii)\n",
+ "dc power dissipated by the collector load in Watt : 5\n",
+ "\n",
+ "(iii)\n",
+ "Power developed across the load in Watt :0.625 \n",
+ "\n",
+ "((iv)\n",
+ "dc power dissipated by the collector load in Watt :5 \n",
+ "\n",
+ "(v)\n",
+ "dc power dissipated by the collector load in Watt : 4.375\n",
+ "\n",
+ "(vi)\n",
+ "Overall Efficiency :6.250%\n",
+ "\n",
+ "(vii)\n",
+ "Collector Efficiency :12.50%\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.13, Page No.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum ac power output\n",
+ "import math\n",
+ "#variable declaration\n",
+ "n=10.0 #turn ratio\n",
+ "RL=100.0 #in ohm\n",
+ "ICQ=100.0 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "RLdash=n**2*RL \n",
+ "MaxPowerOut=(ICQ*10**-3)**2*RLdash/2\n",
+ "\n",
+ "#result\n",
+ "print(\"Maximum Power output in watt : %.0f\"%MaxPowerOut)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Power output in watt : 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.14, Page No.152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum permissible power dissipation\n",
+ "import math\n",
+ "#Part (i) : without heat sink\n",
+ "\n",
+ "#variable declaration\n",
+ "ThetaMax=90.0 #in degree C\n",
+ "Theta_o=30.0 #in degree C\n",
+ "R=300.0 #in degree C/W\n",
+ "\n",
+ "#calculation\n",
+ "Pr=(ThetaMax-Theta_o)/R #in watt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Without heat sink, Maximum permissible power dissipatio in watt :%.1f\"%Pr)\n",
+ "\n",
+ "#Part (ii) : with heat sink\n",
+ "\n",
+ "#variable declaration\n",
+ "ThetaMax=90.0 #in degree C\n",
+ "Theta_o=30.0 #in degree C\n",
+ "R=60.0 #in degree C/W\n",
+ "\n",
+ "#calculation\n",
+ "Pr=(ThetaMax-Theta_o)/R #in watt\n",
+ "\n",
+ "#Result\n",
+ "print(\"With heat sink, Maximum permissible power dissipatio in watt :%.0f\"%Pr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Without heat sink, Maximum permissible power dissipatio in watt :0.2\n",
+ "With heat sink, Maximum permissible power dissipatio in watt :1\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_3_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_3_1.ipynb
new file mode 100755
index 00000000..d59f3fb2
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_3_1.ipynb
@@ -0,0 +1,727 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Transistor Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.1, page No.117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain Impedence and ac load\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "ib=10.0 #in uA\n",
+ "ic=1.0 #in mA\n",
+ "ic=ic*10**3 #in uA\n",
+ "vi=0.02 #in Volt\n",
+ "RC=5.0 #in kohm\n",
+ "RL=10.0 #in kohm\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i)\n",
+ "Ai=-ic/ib #unitless\n",
+ "Beta=Ai #unitless\n",
+ "\n",
+ "#Part (ii)\n",
+ "Rie=vi/(ib*10**-6) #in Ohm\n",
+ "\n",
+ "#Part (iii)\n",
+ "Rac=RC*RL/(RC+RL) #in kohm\n",
+ "\n",
+ "#Part (iv)\n",
+ "Av=-Rac*10**3*Beta/Rie #unitless\n",
+ "\n",
+ "#Part (v)\n",
+ "PowerGain=Av*Ai #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\tCurrent gain : %.2f\"%Ai)\n",
+ "print(\"(ii)\\tInput impedence in kohm :%.0f\"%(Rie*10**-3))\n",
+ "print(\"(iii)\\tAC load in kohm : %.1f\"%Rac)\n",
+ "print(\"(iv)\\tVoltage gain :%.3f\"%Av)\n",
+ "print(\"(v)\\tPower Gain is : %.3f\"%PowerGain)\n",
+ "#Note : Ans of Av and Power gain is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\tCurrent gain : -100.00\n",
+ "(ii)\tInput impedence in kohm :2\n",
+ "(iii)\tAC load in kohm : 3.3\n",
+ "(iv)\tVoltage gain :166.667\n",
+ "(v)\tPower Gain is : -16666.667\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.2, page No.125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain input and output impedence\n",
+ "import math\n",
+ "\n",
+ "#Varible declaration\n",
+ "RL=10.0 #in kohm\n",
+ "RS=1.0 #in kohm\n",
+ "hie=1.1 #in kOhm\n",
+ "hre=2.5*10**-4 #unitless\n",
+ "hfe=50.0 #unitless\n",
+ "hoe=25.0 #in u mho\n",
+ "\n",
+ "#Calculations\n",
+ "Aie=-hfe/(1+hoe*10**-6*RL*10**3)#unitless\n",
+ "Zie=hie+hre*Aie*RL #in kOhm\n",
+ "Zie=math.ceil(Zie)\n",
+ "Ave=Aie*RL/Zie #unitless\n",
+ "Avs_e=Ave*Zie/(Zie+RS)\n",
+ "deltah=hoe*10**-6*hie*10**3-hfe*hre\n",
+ "Zoe=(hie*10**3+RS*10**3)/(hoe*10**-6*RS*10**3+deltah)\n",
+ "Ais_e=Aie*RS/(Zie+RS)\n",
+ "Ape=Ave*Aie\n",
+ "Aps_e=Avs_e*Ais_e\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current gain :%.0f \"%Aie)\n",
+ "print(\"\\nCurrent gain with source resistance : %.0f\"%Ais_e)\n",
+ "print(\"\\nVoltage gain : %.0f\"%Ave)\n",
+ "print(\"\\nVoltage gain with source resistance : %.0f\"%Avs_e)\n",
+ "print(\"\\nPower gain :%.0f \"%Ape)\n",
+ "print(\"\\nPower gain with source resistance :%.0f \"%Aps_e)\n",
+ "print(\"\\nInput impedence in kohm :%.1f\"%Zie)\n",
+ "print(\"\\nOutput impedence in kohm :%.1f\"%(Zoe/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current gain :-40 \n",
+ "\n",
+ "Current gain with source resistance : -20\n",
+ "\n",
+ "Voltage gain : -400\n",
+ "\n",
+ "Voltage gain with source resistance : -200\n",
+ "\n",
+ "Power gain :16000 \n",
+ "\n",
+ "Power gain with source resistance :4000 \n",
+ "\n",
+ "Input impedence in kohm :1.0\n",
+ "\n",
+ "Output impedence in kohm :52.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.3, Page No. 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input Output impedence and output voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "InputVoltage=1.0 #in mV\n",
+ "RL=5.6 #in kohm\n",
+ "RS=600.0 #in ohm\n",
+ "hre=6.5*10**-4 #unitless\n",
+ "hie=1.7 #in kOhm\n",
+ "hfe=125.0 #unitless\n",
+ "hoe=80.0 #in uA/V\n",
+ "\n",
+ "#Calculations\n",
+ "deltah=hoe*10**-6*hie*10**3-hfe*hre\n",
+ "Zie=(hie*10**3+RL*10**3*deltah)/(1+hoe*10**-6*RL*10**3)\n",
+ "Zoe=(hie*10**3+RS)/(hoe*10**-6*RS+deltah)\n",
+ "Ave=-(hfe*RL*10**3)/(hie*10**3+RL*10**3*deltah)\n",
+ "Avs_e=Ave*Zie/(Zie+RS)\n",
+ "OutputVoltage=Avs_e*InputVoltage\n",
+ "\n",
+ "#Result\n",
+ "print(\"Input impedence in kohm :%.3f\"%(Zie/1000))\n",
+ "print(\"Output impedence in kohm :%.3f\"%(Zoe/10**3))\n",
+ "print(\"Voltage gain : %.3f\"%Ave)\n",
+ "print(\"Voltage gain with source resistance : %.3f\"%Avs_e)\n",
+ "print(\"Output Voltage in mV :%.3f \"%OutputVoltage)\n",
+ "#Note : Answers are wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input impedence in kohm :1.386\n",
+ "Output impedence in kohm :22.384\n",
+ "Voltage gain : -348.849\n",
+ "Voltage gain with source resistance : -243.444\n",
+ "Output Voltage in mV :-243.444 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.4, Page no.129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Net voltage gain in dB\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A1=100.0 #unitless\n",
+ "A2=200.0 #unitless\n",
+ "A3=400.0 #unitless\n",
+ "\n",
+ "#calculations\n",
+ "A1=20*math.log10(A1) #in dB\n",
+ "A2=20*math.log10(A2) #in dB\n",
+ "A3=20*math.log10(A3) #in dB\n",
+ "NetVoltageGain=A1+A2+A3 #in dB\n",
+ "\n",
+ "#Result\n",
+ "print(\"Net Voltage Gain in decibels :%.3f\"%NetVoltageGain)\n",
+ "#Note : Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net Voltage Gain in decibels :138.062\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.5, Page No.129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bandwidth and cut off frequencies \n",
+ "import math\n",
+ "#Variable declaration\n",
+ "MaxGain=1000.0 #unitless(at 2kHz)\n",
+ "f1=50.0 #in Hz\n",
+ "f2=10.0 #in KHz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Bandwidth is from %.0f Hz to %.0f kHz\"%(f1,f2))\n",
+ "print(\"Lower cutoff frequency %.0f Hz\"%f1)\n",
+ "print(\"Upper cutoff frequency %.0f kHz\"%f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bandwidth is from 50 Hz to 10 kHz\n",
+ "Lower cutoff frequency 50 Hz\n",
+ "Upper cutoff frequency 10 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.6, Page No.137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Overall voltage gain\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "RC=10.0 #in kohm\n",
+ "hfe=330.0 #unitless\n",
+ "hie=4.5 #in kOhm\n",
+ "\n",
+ "#Calculation\n",
+ "#RS<<hie\n",
+ "AVM=hfe*RC*10**3/(hie*10**3+RC*10**3)\n",
+ "AVM1=AVM #Gain of 1st stage\n",
+ "AVM2=AVM #Gain of 2nd stage\n",
+ "AVM3=hfe*RC*10**3/(hie*10**3) #unitless(//Gain of 3rd stage)\n",
+ "OverallGain=AVM1*AVM2*AVM3 #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Gain in mid frequeny range : %.1f\"%AVM)\n",
+ "print(\"This is the gain of 1st and 2nd stage.\")\n",
+ "print(\"Overall Voltage gain for mid frequency range : %.1f * 10^7\"%(OverallGain/10**7))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gain in mid frequeny range : 227.6\n",
+ "This is the gain of 1st and 2nd stage.\n",
+ "Overall Voltage gain for mid frequency range : 3.8 * 10^7\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.7, Page No.138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Couopling capacitor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "RC=5.5 #in kohm\n",
+ "hfe=330.0 #unitless\n",
+ "hie=4.5 #in kohm\n",
+ "f1=30.0 #in Hz\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : f1=1/(2*%pi*C*(hie+RC))\n",
+ "C=1/(2*math.pi*f1*(hie*10**3+RC*10**3))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of coupling capacitor in micro farad : %.2f\"%(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of coupling capacitor in micro farad : 0.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.8, Page No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage gain\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "RC=10.0 #in kohm\n",
+ "Rin=1.0 #in kohm\n",
+ "Beta=100.0 #unitless\n",
+ "RL=100.0 #in ohm\n",
+ "\n",
+ "#Calculation\n",
+ "RCdash=RC*10**3*RL/(RC*10**3+RL)\n",
+ "VoltageGain=Beta*RCdash/(Rin*10**3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Voltage Gain :%.2f \"%VoltageGain)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage Gain :9.90 \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.9, Page No. 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Inductance of primary and secondary\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Rout=10.0 #in kohm\n",
+ "Rin=2.5 #in kohm\n",
+ "f=200.0 #in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Formula : Rout=omega*Lp=2*%pi*f*Lp\n",
+ "Lp=Rout*10**3/(2*math.pi*f) #in H\n",
+ "#Formula : Rin=omega*Ls=2*%pi*f*Ls\n",
+ "Ls=Rin*10**3/(2*math.pi*f) #in H\n",
+ "\n",
+ "#Result\n",
+ "print(\"Inductance of primary in Henry : %.0f\"%Lp)\n",
+ "print(\"Inductance of seondary in Henry : %.0f\"%Ls)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance of primary in Henry : 8\n",
+ "Inductance of seondary in Henry : 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.10, Page No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Turn ratio of transformer\n",
+ "import math\n",
+ "#variable declaration\n",
+ "ZL=10.0 #in ohm\n",
+ "ZP=1000.0 #in ohm\n",
+ "\n",
+ "#For max power : ZP=n^2*ZL\n",
+ "n=math.sqrt(ZP/ZL) #turn ratio\n",
+ "\n",
+ "#Result\n",
+ "print(\"Turn ratio : %.0f\"%n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turn ratio : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.11, Page No.149 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Collector eficieny and power rating\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Po_dc=10.0 #in watt\n",
+ "Po_ac=3.5 #in watt\n",
+ "\n",
+ "#calculation\n",
+ "ETAcollector=Po_ac/Po_dc #unitless\n",
+ "ETAcollector=ETAcollector*100 #collector efficiency in %\n",
+ "\n",
+ "#Result\n",
+ "print(\"Collector Efficiency : %.0f%%\"%ETAcollector)\n",
+ "print(\"\\nZero signal condition represents maximum power loss.\")\n",
+ "print(\"Therefore, all the 10 W power is dissipated by it. Hence Powe Rating of transistor in Watt : %.0f\"%Po_dc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collector Efficiency : 35%\n",
+ "\n",
+ "Zero signal condition represents maximum power loss.\n",
+ "Therefore, all the 10 W power is dissipated by it. Hence Powe Rating of transistor in Watt : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.12, Page No.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Power and eficiency\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VCC=20.0 #in volt\n",
+ "RC=20.0 #in ohm\n",
+ "VCEQ=10.0 #in volt\n",
+ "ICQ=500.0 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "#part (i) :\n",
+ "Pin_dc=VCC*ICQ*10**-3 #in watt\n",
+ "\n",
+ "#part (ii) :\n",
+ "PRc_dc=ICQ**2*10**-6*RC #in watt\n",
+ "\n",
+ "#part (iii) :\n",
+ "Io=250 #in mA(maximum value of output ac current)\n",
+ "Irms=Io/math.sqrt(2) #in mA\n",
+ "Po_ac=Irms**2*10**-6*RC #in watt\n",
+ "\n",
+ "#part (iv) :\n",
+ "Ptr_dc=Pin_dc-PRc_dc #in watt\n",
+ "\n",
+ "#part (v) :\n",
+ "PC_dc=Pin_dc-PRc_dc-Po_ac #in watt\n",
+ "\n",
+ "#part (vi) :\n",
+ "ETAoverall=Po_ac*100/Pin_dc #Overall Efficiency (in %)\n",
+ "\n",
+ "#part (vii) :\n",
+ "ETAcollector=Po_ac*100/PRc_dc#Collector Efficiency (in %)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\nTotal dc power taken by the circuit in Watt : %.0f\"%Pin_dc)\n",
+ "print(\"\\n(ii)\\ndc power dissipated by the collector load in Watt : %.0f\"%PRc_dc)\n",
+ "print(\"\\n(iii)\\nPower developed across the load in Watt :%.3f \"%Po_ac)\n",
+ "print(\"\\n((iv)\\ndc power dissipated by the collector load in Watt :%.0f \"%Ptr_dc)\n",
+ "print(\"\\n(v)\\ndc power dissipated by the collector load in Watt : %.3f\"%PC_dc)\n",
+ "print(\"\\n(vi)\\nOverall Efficiency :%.3f%%\"%ETAoverall)\n",
+ "print(\"\\n(vii)\\nCollector Efficiency :%.2f%%\"%ETAcollector)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Total dc power taken by the circuit in Watt : 10\n",
+ "\n",
+ "(ii)\n",
+ "dc power dissipated by the collector load in Watt : 5\n",
+ "\n",
+ "(iii)\n",
+ "Power developed across the load in Watt :0.625 \n",
+ "\n",
+ "((iv)\n",
+ "dc power dissipated by the collector load in Watt :5 \n",
+ "\n",
+ "(v)\n",
+ "dc power dissipated by the collector load in Watt : 4.375\n",
+ "\n",
+ "(vi)\n",
+ "Overall Efficiency :6.250%\n",
+ "\n",
+ "(vii)\n",
+ "Collector Efficiency :12.50%\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.13, Page No.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum ac power output\n",
+ "import math\n",
+ "#variable declaration\n",
+ "n=10.0 #turn ratio\n",
+ "RL=100.0 #in ohm\n",
+ "ICQ=100.0 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "RLdash=n**2*RL \n",
+ "MaxPowerOut=(ICQ*10**-3)**2*RLdash/2\n",
+ "\n",
+ "#result\n",
+ "print(\"Maximum Power output in watt : %.0f\"%MaxPowerOut)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Power output in watt : 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.14, Page No.152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum permissible power dissipation\n",
+ "import math\n",
+ "#Part (i) : without heat sink\n",
+ "\n",
+ "#variable declaration\n",
+ "ThetaMax=90.0 #in degree C\n",
+ "Theta_o=30.0 #in degree C\n",
+ "R=300.0 #in degree C/W\n",
+ "\n",
+ "#calculation\n",
+ "Pr=(ThetaMax-Theta_o)/R #in watt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Without heat sink, Maximum permissible power dissipatio in watt :%.1f\"%Pr)\n",
+ "\n",
+ "#Part (ii) : with heat sink\n",
+ "\n",
+ "#variable declaration\n",
+ "ThetaMax=90.0 #in degree C\n",
+ "Theta_o=30.0 #in degree C\n",
+ "R=60.0 #in degree C/W\n",
+ "\n",
+ "#calculation\n",
+ "Pr=(ThetaMax-Theta_o)/R #in watt\n",
+ "\n",
+ "#Result\n",
+ "print(\"With heat sink, Maximum permissible power dissipatio in watt :%.0f\"%Pr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Without heat sink, Maximum permissible power dissipatio in watt :0.2\n",
+ "With heat sink, Maximum permissible power dissipatio in watt :1\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_4.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_4.ipynb
new file mode 100755
index 00000000..b06db7ad
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_4.ipynb
@@ -0,0 +1,100 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.4: Frequency Response"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.1, Page No. 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#3dB Frequency\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Omega_Z1=0.0 #in Radian/sec\n",
+ "Omega_Z2=10.0 #in Radian/sec\n",
+ "Omega_P1=100.0 #in Radian/sec\n",
+ "Omega_P2=25.0 #in Radian/sec\n",
+ "\n",
+ "#calculations\n",
+ "WL=math.sqrt(Omega_P1**2+Omega_P2**2-2*Omega_Z1**2-2*Omega_Z2**2) #in radian/sec\n",
+ "\n",
+ "#Result\n",
+ "print(\"Approximate value of lower 3dB Frequency in radian/sec : %.1f\"%WL)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Approximate value of lower 3dB Frequency in radian/sec : 102.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.2, Page No. 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Upper 3dB Frequency\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Omega_P1=1.0*10**4 #in Radian/sec\n",
+ "Omega_P2=2.0*10**4 #in Radian/sec\n",
+ "Omega_Z1=1.0*10**5 #in Radian/sec\n",
+ "\n",
+ "#calculations\n",
+ "omegaH=1/math.sqrt(1/Omega_P1**2+1/Omega_P2**2-2/Omega_Z1**2) #in radian/sec\n",
+ "\n",
+ "#result\n",
+ "print(\"Approximate value of lower 3dB Frequency in radian/sec : %.0f \"%(math.ceil(omegaH)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Approximate value of lower 3dB Frequency in radian/sec : 9017 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_4_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_4_1.ipynb
new file mode 100755
index 00000000..b06db7ad
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_4_1.ipynb
@@ -0,0 +1,100 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.4: Frequency Response"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.1, Page No. 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#3dB Frequency\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Omega_Z1=0.0 #in Radian/sec\n",
+ "Omega_Z2=10.0 #in Radian/sec\n",
+ "Omega_P1=100.0 #in Radian/sec\n",
+ "Omega_P2=25.0 #in Radian/sec\n",
+ "\n",
+ "#calculations\n",
+ "WL=math.sqrt(Omega_P1**2+Omega_P2**2-2*Omega_Z1**2-2*Omega_Z2**2) #in radian/sec\n",
+ "\n",
+ "#Result\n",
+ "print(\"Approximate value of lower 3dB Frequency in radian/sec : %.1f\"%WL)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Approximate value of lower 3dB Frequency in radian/sec : 102.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.2, Page No. 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Upper 3dB Frequency\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Omega_P1=1.0*10**4 #in Radian/sec\n",
+ "Omega_P2=2.0*10**4 #in Radian/sec\n",
+ "Omega_Z1=1.0*10**5 #in Radian/sec\n",
+ "\n",
+ "#calculations\n",
+ "omegaH=1/math.sqrt(1/Omega_P1**2+1/Omega_P2**2-2/Omega_Z1**2) #in radian/sec\n",
+ "\n",
+ "#result\n",
+ "print(\"Approximate value of lower 3dB Frequency in radian/sec : %.0f \"%(math.ceil(omegaH)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Approximate value of lower 3dB Frequency in radian/sec : 9017 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_5.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_5.ipynb
new file mode 100755
index 00000000..6f5add30
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_5.ipynb
@@ -0,0 +1,696 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter 5: Feed Back"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.1, Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Percentage of output which is fed back\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=50.0 #gain(unitless)\n",
+ "Af=10.0 #gain(unitless)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Beta=(A/Af-1)/A #feedback ratio (unitless)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Percentage of output feed back : %.0f%%\"%(Beta*100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of output feed back : 8%\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.2, Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage gain and reduction in voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=1000.0 #gainWithoutFeedback(unitless)\n",
+ "Adash=800 #gainWithoutFeedback(unitless) \n",
+ "g_reduce=0.40 #factor by which gain reduced\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i) : \n",
+ "Af=A-A*g_reduce #gainWithFeedback(unitless)\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Beta=(A/Af-1)/A #feedback factor (unitless)\n",
+ "\n",
+ "Af_dash=Adash/(1+Adash*Beta)\n",
+ "\n",
+ "#Part (ii)\n",
+ "Reduction=((A-Adash)/A)*100 #% reduction without feedback\n",
+ "Reduction1=((Af-Af_dash)/Af)*100 #% reduction without feedback\n",
+ "\n",
+ "#Result\n",
+ "print(\"At normal collector supply :\")\n",
+ "print(\"with feedback gain reduces by a factor %.2f\"%g_reduce)\n",
+ "print(\"At normal collector supply, Gain with feedback :%.0f \"%Af)\n",
+ "print(\"\\nAt reduced power supply :\")\n",
+ "print(\"At Reduced collector supply, Gain with feedback : %.0f\"%(math.ceil(Af_dash)))\n",
+ "print(\"%% reduction in gain without feedback :%.0f%%\"%Reduction)\n",
+ "print(\"%% reduction in gain with feedback :%.0f%%\"%Reduction1)\n",
+ "#Note : answer of Af is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At normal collector supply :\n",
+ "with feedback gain reduces by a factor 0.40\n",
+ "At normal collector supply, Gain with feedback :600 \n",
+ "\n",
+ "At reduced power supply :\n",
+ "At Reduced collector supply, Gain with feedback : 522\n",
+ "% reduction in gain without feedback :20%\n",
+ "% reduction in gain with feedback :13%\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.3, Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain with feedback factor and feedback voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "\n",
+ "A=100.0 #gain without feedback(unitless)\n",
+ "Beta=1.0/25.0 #feedback ratio (unitless)\n",
+ "Vi=50.0 #in mV\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i) :\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "\n",
+ "\n",
+ "#Part (ii) :\n",
+ "FeedbackFactor=Beta*A #unitless\n",
+ "\n",
+ "\n",
+ "#Part (iii) :\n",
+ "Vo_dash=Af*Vi*10**-3 #in volt\n",
+ "\n",
+ "\n",
+ "#Part (iv) :\n",
+ "FeedbackVoltage=Beta*Vo_dash #in volt\n",
+ "\n",
+ "\n",
+ "#Part (v) :\n",
+ "Vi_dash=Vi*(1+Beta*A) #in mv\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\n Gain with feedback :%.0f\"%Af)\n",
+ "print(\"(ii)\\n Feedback Factor :%.0f\"%FeedbackFactor)\n",
+ "print(\"(iii)\\n Output Voltage in volts :%.0f\"%Vo_dash)\n",
+ "print(\"(iv)\\n Feedback Voltage in volts :%.2f\"%FeedbackVoltage)\n",
+ "print(\"(v)\\n New Increased Input Voltage in milli volts :%.0f\"%Vi_dash)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ " Gain with feedback :20\n",
+ "(ii)\n",
+ " Feedback Factor :4\n",
+ "(iii)\n",
+ " Output Voltage in volts :1\n",
+ "(iv)\n",
+ " Feedback Voltage in volts :0.04\n",
+ "(v)\n",
+ " New Increased Input Voltage in milli volts :250\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.4, Page no.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bandwidth with negative feedback\n",
+ "import math\n",
+ "#variable declaration\n",
+ "BW=200.0 #in kHz\n",
+ "A=40.0 #gain without feedback(in dB)\n",
+ "Beta=5.0 #negative feedback in %\n",
+ "Beta=Beta/100.0 #feedback factor\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(in dB)\n",
+ "BW_dash=A*BW/Af #in kHz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Since gain bandwidth product remains constant, A*BW=Af*BW_dash\")\n",
+ "print(\"New Bandwidth in kHz : %.0f\"%BW_dash)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since gain bandwidth product remains constant, A*BW=Af*BW_dash\n",
+ "New Bandwidth in kHz : 600\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.5, Page No.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Fraction of output fed back\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=140.0 #gain without feedback(unitless)\n",
+ "Af=17.5 #gain with feedback(unitless)\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Beta=(A/Af-1)/A #feedback ratio (unitless)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Fraction of output fed back to input : %.2f or 1/20\"%Beta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fraction of output fed back to input : 0.05 or 1/20\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.6, Page No.205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Small Change in gain\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=200.0 #gain without feedback(unitless)\n",
+ "Beta=0.25 #fraction ratio(unitless)\n",
+ "\n",
+ "#CAlculations\n",
+ "#Given : Normal gain changes by 10 %, it means dA/A=10/100\n",
+ "dABYA=10.0/100.0 #change in gain\n",
+ "dAfBYAf=(1/(1+Beta*A))*(dABYA) #change in gain\n",
+ "\n",
+ "#Result\n",
+ "print(\"We have, Af=A/(1+Beta*A).................eqn(1)\")\n",
+ "print(\"\\nDifferentiating it with respect to A, we get\")\n",
+ "print(\"\\ndAf/dA=((1+Beta*A)-Beta*A)/(1+Beta*A)^2=1/(1+Beta*A)^2\")\n",
+ "print(\"\\ndAf=dA/(1+Beta*A)^2.......................eqn(2)\")\n",
+ "print(\"\\nDividing eqn(2) by eqn(1),\")\n",
+ "print(\"\\ndAf/Af=(dA/((1+Beta*A)^2))*((1+Beta*A)/A)=(1/(1+Beta*A))*(dA/A)\")\n",
+ "print(\"\\n\\nChange in gain : %.4f\"%((math.floor(dAfBYAf*10**4))/10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "We have, Af=A/(1+Beta*A).................eqn(1)\n",
+ "\n",
+ "Differentiating it with respect to A, we get\n",
+ "\n",
+ "dAf/dA=((1+Beta*A)-Beta*A)/(1+Beta*A)^2=1/(1+Beta*A)^2\n",
+ "\n",
+ "dAf=dA/(1+Beta*A)^2.......................eqn(2)\n",
+ "\n",
+ "Dividing eqn(2) by eqn(1),\n",
+ "\n",
+ "dAf/Af=(dA/((1+Beta*A)^2))*((1+Beta*A)/A)=(1/(1+Beta*A))*(dA/A)\n",
+ "\n",
+ "\n",
+ "Change in gain : 0.0019\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.7, Page No.206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#New gain distortion and input voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A=200.0 #gain without feedback(unitless)\n",
+ "Dn=10.0 #Distortion in %\n",
+ "Vi=0.5 #Initial input voltage in volt\n",
+ "Beta=0.05 #feedback ratio (unitless)\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "Dn_dash=Dn/(1+A*Beta) #new distortion in %\n",
+ "InitialOutputVoltage=A*Vi #in Volt\n",
+ "NewInputVoltage=InitialOutputVoltage/Af\n",
+ "\n",
+ "print(\"New gain :%.3f\"%Af)\n",
+ "print(\"Distortion with negative feedback : %.3f%%\"%Dn_dash)\n",
+ "print(\"Initial Output Voltage in volt:%.0f\"%InitialOutputVoltage)\n",
+ "print(\"New Input Voltage in volts :%.2f\"%NewInputVoltage)\n",
+ "#Note :Ans of Af and NewInputVoltage is not acurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New gain :18.182\n",
+ "Distortion with negative feedback : 0.909%\n",
+ "Initial Output Voltage in volt:100\n",
+ "New Input Voltage in volts :5.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.8, Page No. 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Feedback rction voltage and impedence\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "A=10000.0 #gain without feedback(unitless)\n",
+ "Zi=10.0 #in kOhm\n",
+ "Zo=100.0 #in Ohm\n",
+ "R1=2.0 #in Ohm\n",
+ "R2=18.0 #in Ohm\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Part (i) :\n",
+ "Beta=R1/(R1+R2) #feedback fraction(unitless)\n",
+ "\n",
+ "#Part (ii) :\n",
+ "Af=A/(1+A*Beta) #Gain with negative feedback(unitless)\n",
+ "\n",
+ "#Part (iii) :\n",
+ "inputVoltge=0.5 #in mV\n",
+ "outputVoltge=Af*inputVoltge #in mV\n",
+ "\n",
+ "#Part (iv) :\n",
+ "Zif=Zi*(1+Beta*A) #in kOhm\n",
+ "\n",
+ "#Part (v) :\n",
+ "Zof=Zo/(1+Beta*A) #in kOhm\n",
+ "\n",
+ "print(\"(i)\\nFeedback Fraction :%.1f\"%Beta)\n",
+ "print(\"\\n(ii)\\nGain with negative feedback :%.0f\"%(math.ceil(Af)))\n",
+ "print(\"\\n(iii)\\nOutput Voltage in milli volts :%.0f\"%(math.ceil(outputVoltge)))\n",
+ "print(\"\\n(iv)\\nInput impedance of feedback amplifier in Mohm : %.2f\"%(Zif*10**-3))\n",
+ "print(\"\\n(v)\\nOutput impedance with feedback in Ohm : %.1f\"%Zof)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Feedback Fraction :0.1\n",
+ "\n",
+ "(ii)\n",
+ "Gain with negative feedback :10\n",
+ "\n",
+ "(iii)\n",
+ "Output Voltage in milli volts :5\n",
+ "\n",
+ "(iv)\n",
+ "Input impedance of feedback amplifier in Mohm : 10.01\n",
+ "\n",
+ "(v)\n",
+ "Output impedance with feedback in Ohm : 0.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.9, Page No.207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage gain input and output resistance\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=200 #gain without feedback(unitless)\n",
+ "Ri=2 #in kOhm\n",
+ "Ro=12 #in kOhm\n",
+ "Beta=0.02 #feedbak ratio(unitless)\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#Part (i) :\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "\n",
+ "#Part (ii) :\n",
+ "Rif=Ri*(1+A*Beta) #in kOhm\n",
+ "\n",
+ "#Part (ii) :\n",
+ "Rof=Ro/(1+A*Beta) #in kOhm\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\nGain with Negative Feedback :%.0f\"%Af)\n",
+ "print(\"\\n(ii)\\nInput resistance with feedback in kOhm :%.0f\"%Rif)\n",
+ "print(\"\\n(iii)\\nOutput resistance with feedback in kOhm :%.1f\"%Rof)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Gain with Negative Feedback :40\n",
+ "\n",
+ "(ii)\n",
+ "Input resistance with feedback in kOhm :10\n",
+ "\n",
+ "(iii)\n",
+ "Output resistance with feedback in kOhm :2.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.10, Page No.207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Gain wih feedbck in dB\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=1000.0 #gain(unitless)\n",
+ "Beta=1.0/20.0 #feedback ratio (unitless)\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "Af=20*math.log10(Af) #in dB\n",
+ "\n",
+ "#Result\n",
+ "print(\"Gain with feedback in dB : %.1f\"%Af)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gain with feedback in dB : 25.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " example 5.11, page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bandwidth after feedback\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "\n",
+ "A=800.0 #gain(unitless)\n",
+ "f1=40.0 #in Hz\n",
+ "f2=16.0 #in kHz\n",
+ "Beta=2.0/100.0 #feedback fator (unitless)\n",
+ "\n",
+ "#caalculations\n",
+ "\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "BW=f2*10**3-f1 #Bandwidth of amplifier in Hz\n",
+ "f1_f=f1/(1+A*Beta) #in Hz\n",
+ "f2_f=f2*(1+A*Beta) #in kHz\n",
+ "BW_f=f2_f*10**3-f1_f #Bandwith after feedback in Hz\n",
+ "\n",
+ "#result\n",
+ "print(\"Voltage gin with feedback : %.0f\"%Af)\n",
+ "print(\"Bandwidth of amplifier in kHz : %.2f\"%(BW*10**-3))\n",
+ "print(\"Bandwith after feedback in KHz : %.0f\"%(BW_f*10**-3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gin with feedback : 47\n",
+ "Bandwidth of amplifier in kHz : 15.96\n",
+ "Bandwith after feedback in KHz : 272\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " example 5.12, Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain and new bandwidth\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A=100.0 #gain(unitless)\n",
+ "BW=10.0 #in Hz\n",
+ "Beta=5.0 #in %\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i) :\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta/100.0) #gain with feedback(unitless)\n",
+ "\n",
+ "#Part (ii)\n",
+ "BW_f=BW*(1+A*Beta/100.0) #Bandwith after feedback in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Voltage gain with feedback :%.2f \"%Af)\n",
+ "print(\"Bandwith with negative feedback in KHz : %.0f\"%BW_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain with feedback :16.67 \n",
+ "Bandwith with negative feedback in KHz : 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.13, Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input resistance and voltage gain\n",
+ "import math\n",
+ "#variable decclaration\n",
+ "hfe=50.0 #unitless\n",
+ "hie=1.1 #in kOhm\n",
+ "hoe=0.0 #unitless\n",
+ "hre=0.0 #unitless\n",
+ "RL=4.0 #in kOhm\n",
+ "Rs=10.0 #in kOhm\n",
+ "RB=40.0 #in kOhm\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "RLdash=RB*RL/(RB+RL) #in Kohm\n",
+ "AV=-hfe*RLdash/hie #unitless\n",
+ "\n",
+ "#Part (i) ;\n",
+ "Rif=hie*(RB/(1-AV))/(hie+(RB/(1-AV))) #in kOhm\n",
+ "print(\"Input resistance with feedback in Ohm : %.0f\"%(Rif*1000))\n",
+ "#Part (ii) :\n",
+ "AVf=AV*(Rif/(Rs+Rif)) #unitless\n",
+ "print(\"Voltage gain with feedback : %.2f\"%((math.ceil(AVf*100))/100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistance with feedback in Ohm : 197\n",
+ "Voltage gain with feedback : -3.19\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_5_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_5_1.ipynb
new file mode 100755
index 00000000..6f5add30
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_5_1.ipynb
@@ -0,0 +1,696 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter 5: Feed Back"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.1, Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Percentage of output which is fed back\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=50.0 #gain(unitless)\n",
+ "Af=10.0 #gain(unitless)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Beta=(A/Af-1)/A #feedback ratio (unitless)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Percentage of output feed back : %.0f%%\"%(Beta*100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of output feed back : 8%\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.2, Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage gain and reduction in voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=1000.0 #gainWithoutFeedback(unitless)\n",
+ "Adash=800 #gainWithoutFeedback(unitless) \n",
+ "g_reduce=0.40 #factor by which gain reduced\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i) : \n",
+ "Af=A-A*g_reduce #gainWithFeedback(unitless)\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Beta=(A/Af-1)/A #feedback factor (unitless)\n",
+ "\n",
+ "Af_dash=Adash/(1+Adash*Beta)\n",
+ "\n",
+ "#Part (ii)\n",
+ "Reduction=((A-Adash)/A)*100 #% reduction without feedback\n",
+ "Reduction1=((Af-Af_dash)/Af)*100 #% reduction without feedback\n",
+ "\n",
+ "#Result\n",
+ "print(\"At normal collector supply :\")\n",
+ "print(\"with feedback gain reduces by a factor %.2f\"%g_reduce)\n",
+ "print(\"At normal collector supply, Gain with feedback :%.0f \"%Af)\n",
+ "print(\"\\nAt reduced power supply :\")\n",
+ "print(\"At Reduced collector supply, Gain with feedback : %.0f\"%(math.ceil(Af_dash)))\n",
+ "print(\"%% reduction in gain without feedback :%.0f%%\"%Reduction)\n",
+ "print(\"%% reduction in gain with feedback :%.0f%%\"%Reduction1)\n",
+ "#Note : answer of Af is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At normal collector supply :\n",
+ "with feedback gain reduces by a factor 0.40\n",
+ "At normal collector supply, Gain with feedback :600 \n",
+ "\n",
+ "At reduced power supply :\n",
+ "At Reduced collector supply, Gain with feedback : 522\n",
+ "% reduction in gain without feedback :20%\n",
+ "% reduction in gain with feedback :13%\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.3, Page No.192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain with feedback factor and feedback voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "\n",
+ "A=100.0 #gain without feedback(unitless)\n",
+ "Beta=1.0/25.0 #feedback ratio (unitless)\n",
+ "Vi=50.0 #in mV\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i) :\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "\n",
+ "\n",
+ "#Part (ii) :\n",
+ "FeedbackFactor=Beta*A #unitless\n",
+ "\n",
+ "\n",
+ "#Part (iii) :\n",
+ "Vo_dash=Af*Vi*10**-3 #in volt\n",
+ "\n",
+ "\n",
+ "#Part (iv) :\n",
+ "FeedbackVoltage=Beta*Vo_dash #in volt\n",
+ "\n",
+ "\n",
+ "#Part (v) :\n",
+ "Vi_dash=Vi*(1+Beta*A) #in mv\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\n Gain with feedback :%.0f\"%Af)\n",
+ "print(\"(ii)\\n Feedback Factor :%.0f\"%FeedbackFactor)\n",
+ "print(\"(iii)\\n Output Voltage in volts :%.0f\"%Vo_dash)\n",
+ "print(\"(iv)\\n Feedback Voltage in volts :%.2f\"%FeedbackVoltage)\n",
+ "print(\"(v)\\n New Increased Input Voltage in milli volts :%.0f\"%Vi_dash)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ " Gain with feedback :20\n",
+ "(ii)\n",
+ " Feedback Factor :4\n",
+ "(iii)\n",
+ " Output Voltage in volts :1\n",
+ "(iv)\n",
+ " Feedback Voltage in volts :0.04\n",
+ "(v)\n",
+ " New Increased Input Voltage in milli volts :250\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.4, Page no.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bandwidth with negative feedback\n",
+ "import math\n",
+ "#variable declaration\n",
+ "BW=200.0 #in kHz\n",
+ "A=40.0 #gain without feedback(in dB)\n",
+ "Beta=5.0 #negative feedback in %\n",
+ "Beta=Beta/100.0 #feedback factor\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(in dB)\n",
+ "BW_dash=A*BW/Af #in kHz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Since gain bandwidth product remains constant, A*BW=Af*BW_dash\")\n",
+ "print(\"New Bandwidth in kHz : %.0f\"%BW_dash)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since gain bandwidth product remains constant, A*BW=Af*BW_dash\n",
+ "New Bandwidth in kHz : 600\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.5, Page No.193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Fraction of output fed back\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=140.0 #gain without feedback(unitless)\n",
+ "Af=17.5 #gain with feedback(unitless)\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Beta=(A/Af-1)/A #feedback ratio (unitless)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Fraction of output fed back to input : %.2f or 1/20\"%Beta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fraction of output fed back to input : 0.05 or 1/20\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.6, Page No.205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Small Change in gain\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=200.0 #gain without feedback(unitless)\n",
+ "Beta=0.25 #fraction ratio(unitless)\n",
+ "\n",
+ "#CAlculations\n",
+ "#Given : Normal gain changes by 10 %, it means dA/A=10/100\n",
+ "dABYA=10.0/100.0 #change in gain\n",
+ "dAfBYAf=(1/(1+Beta*A))*(dABYA) #change in gain\n",
+ "\n",
+ "#Result\n",
+ "print(\"We have, Af=A/(1+Beta*A).................eqn(1)\")\n",
+ "print(\"\\nDifferentiating it with respect to A, we get\")\n",
+ "print(\"\\ndAf/dA=((1+Beta*A)-Beta*A)/(1+Beta*A)^2=1/(1+Beta*A)^2\")\n",
+ "print(\"\\ndAf=dA/(1+Beta*A)^2.......................eqn(2)\")\n",
+ "print(\"\\nDividing eqn(2) by eqn(1),\")\n",
+ "print(\"\\ndAf/Af=(dA/((1+Beta*A)^2))*((1+Beta*A)/A)=(1/(1+Beta*A))*(dA/A)\")\n",
+ "print(\"\\n\\nChange in gain : %.4f\"%((math.floor(dAfBYAf*10**4))/10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "We have, Af=A/(1+Beta*A).................eqn(1)\n",
+ "\n",
+ "Differentiating it with respect to A, we get\n",
+ "\n",
+ "dAf/dA=((1+Beta*A)-Beta*A)/(1+Beta*A)^2=1/(1+Beta*A)^2\n",
+ "\n",
+ "dAf=dA/(1+Beta*A)^2.......................eqn(2)\n",
+ "\n",
+ "Dividing eqn(2) by eqn(1),\n",
+ "\n",
+ "dAf/Af=(dA/((1+Beta*A)^2))*((1+Beta*A)/A)=(1/(1+Beta*A))*(dA/A)\n",
+ "\n",
+ "\n",
+ "Change in gain : 0.0019\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.7, Page No.206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#New gain distortion and input voltage\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A=200.0 #gain without feedback(unitless)\n",
+ "Dn=10.0 #Distortion in %\n",
+ "Vi=0.5 #Initial input voltage in volt\n",
+ "Beta=0.05 #feedback ratio (unitless)\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "Dn_dash=Dn/(1+A*Beta) #new distortion in %\n",
+ "InitialOutputVoltage=A*Vi #in Volt\n",
+ "NewInputVoltage=InitialOutputVoltage/Af\n",
+ "\n",
+ "print(\"New gain :%.3f\"%Af)\n",
+ "print(\"Distortion with negative feedback : %.3f%%\"%Dn_dash)\n",
+ "print(\"Initial Output Voltage in volt:%.0f\"%InitialOutputVoltage)\n",
+ "print(\"New Input Voltage in volts :%.2f\"%NewInputVoltage)\n",
+ "#Note :Ans of Af and NewInputVoltage is not acurate in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New gain :18.182\n",
+ "Distortion with negative feedback : 0.909%\n",
+ "Initial Output Voltage in volt:100\n",
+ "New Input Voltage in volts :5.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.8, Page No. 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Feedback rction voltage and impedence\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "A=10000.0 #gain without feedback(unitless)\n",
+ "Zi=10.0 #in kOhm\n",
+ "Zo=100.0 #in Ohm\n",
+ "R1=2.0 #in Ohm\n",
+ "R2=18.0 #in Ohm\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Part (i) :\n",
+ "Beta=R1/(R1+R2) #feedback fraction(unitless)\n",
+ "\n",
+ "#Part (ii) :\n",
+ "Af=A/(1+A*Beta) #Gain with negative feedback(unitless)\n",
+ "\n",
+ "#Part (iii) :\n",
+ "inputVoltge=0.5 #in mV\n",
+ "outputVoltge=Af*inputVoltge #in mV\n",
+ "\n",
+ "#Part (iv) :\n",
+ "Zif=Zi*(1+Beta*A) #in kOhm\n",
+ "\n",
+ "#Part (v) :\n",
+ "Zof=Zo/(1+Beta*A) #in kOhm\n",
+ "\n",
+ "print(\"(i)\\nFeedback Fraction :%.1f\"%Beta)\n",
+ "print(\"\\n(ii)\\nGain with negative feedback :%.0f\"%(math.ceil(Af)))\n",
+ "print(\"\\n(iii)\\nOutput Voltage in milli volts :%.0f\"%(math.ceil(outputVoltge)))\n",
+ "print(\"\\n(iv)\\nInput impedance of feedback amplifier in Mohm : %.2f\"%(Zif*10**-3))\n",
+ "print(\"\\n(v)\\nOutput impedance with feedback in Ohm : %.1f\"%Zof)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Feedback Fraction :0.1\n",
+ "\n",
+ "(ii)\n",
+ "Gain with negative feedback :10\n",
+ "\n",
+ "(iii)\n",
+ "Output Voltage in milli volts :5\n",
+ "\n",
+ "(iv)\n",
+ "Input impedance of feedback amplifier in Mohm : 10.01\n",
+ "\n",
+ "(v)\n",
+ "Output impedance with feedback in Ohm : 0.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.9, Page No.207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage gain input and output resistance\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=200 #gain without feedback(unitless)\n",
+ "Ri=2 #in kOhm\n",
+ "Ro=12 #in kOhm\n",
+ "Beta=0.02 #feedbak ratio(unitless)\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#Part (i) :\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "\n",
+ "#Part (ii) :\n",
+ "Rif=Ri*(1+A*Beta) #in kOhm\n",
+ "\n",
+ "#Part (ii) :\n",
+ "Rof=Ro/(1+A*Beta) #in kOhm\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i)\\nGain with Negative Feedback :%.0f\"%Af)\n",
+ "print(\"\\n(ii)\\nInput resistance with feedback in kOhm :%.0f\"%Rif)\n",
+ "print(\"\\n(iii)\\nOutput resistance with feedback in kOhm :%.1f\"%Rof)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)\n",
+ "Gain with Negative Feedback :40\n",
+ "\n",
+ "(ii)\n",
+ "Input resistance with feedback in kOhm :10\n",
+ "\n",
+ "(iii)\n",
+ "Output resistance with feedback in kOhm :2.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.10, Page No.207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Gain wih feedbck in dB\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=1000.0 #gain(unitless)\n",
+ "Beta=1.0/20.0 #feedback ratio (unitless)\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "Af=20*math.log10(Af) #in dB\n",
+ "\n",
+ "#Result\n",
+ "print(\"Gain with feedback in dB : %.1f\"%Af)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gain with feedback in dB : 25.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " example 5.11, page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bandwidth after feedback\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "\n",
+ "A=800.0 #gain(unitless)\n",
+ "f1=40.0 #in Hz\n",
+ "f2=16.0 #in kHz\n",
+ "Beta=2.0/100.0 #feedback fator (unitless)\n",
+ "\n",
+ "#caalculations\n",
+ "\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta) #gain with feedback(unitless)\n",
+ "BW=f2*10**3-f1 #Bandwidth of amplifier in Hz\n",
+ "f1_f=f1/(1+A*Beta) #in Hz\n",
+ "f2_f=f2*(1+A*Beta) #in kHz\n",
+ "BW_f=f2_f*10**3-f1_f #Bandwith after feedback in Hz\n",
+ "\n",
+ "#result\n",
+ "print(\"Voltage gin with feedback : %.0f\"%Af)\n",
+ "print(\"Bandwidth of amplifier in kHz : %.2f\"%(BW*10**-3))\n",
+ "print(\"Bandwith after feedback in KHz : %.0f\"%(BW_f*10**-3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gin with feedback : 47\n",
+ "Bandwidth of amplifier in kHz : 15.96\n",
+ "Bandwith after feedback in KHz : 272\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " example 5.12, Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Gain and new bandwidth\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A=100.0 #gain(unitless)\n",
+ "BW=10.0 #in Hz\n",
+ "Beta=5.0 #in %\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part (i) :\n",
+ "#Formula : Af=A/(1+A*Beta)\n",
+ "Af=A/(1+A*Beta/100.0) #gain with feedback(unitless)\n",
+ "\n",
+ "#Part (ii)\n",
+ "BW_f=BW*(1+A*Beta/100.0) #Bandwith after feedback in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Voltage gain with feedback :%.2f \"%Af)\n",
+ "print(\"Bandwith with negative feedback in KHz : %.0f\"%BW_f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage gain with feedback :16.67 \n",
+ "Bandwith with negative feedback in KHz : 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.13, Page No.208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input resistance and voltage gain\n",
+ "import math\n",
+ "#variable decclaration\n",
+ "hfe=50.0 #unitless\n",
+ "hie=1.1 #in kOhm\n",
+ "hoe=0.0 #unitless\n",
+ "hre=0.0 #unitless\n",
+ "RL=4.0 #in kOhm\n",
+ "Rs=10.0 #in kOhm\n",
+ "RB=40.0 #in kOhm\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "RLdash=RB*RL/(RB+RL) #in Kohm\n",
+ "AV=-hfe*RLdash/hie #unitless\n",
+ "\n",
+ "#Part (i) ;\n",
+ "Rif=hie*(RB/(1-AV))/(hie+(RB/(1-AV))) #in kOhm\n",
+ "print(\"Input resistance with feedback in Ohm : %.0f\"%(Rif*1000))\n",
+ "#Part (ii) :\n",
+ "AVf=AV*(Rif/(Rs+Rif)) #unitless\n",
+ "print(\"Voltage gain with feedback : %.2f\"%((math.ceil(AVf*100))/100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input resistance with feedback in Ohm : 197\n",
+ "Voltage gain with feedback : -3.19\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_6.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_6.ipynb
new file mode 100755
index 00000000..0b55fc7f
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_6.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Field Effect Transistors and MOSFETs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.1, Page No.219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of Transconductance\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VGS1=-3.1 #in Volt\n",
+ "VGS2=-3 #in Volt\n",
+ "ID1=1 #in mA\n",
+ "ID2=1.3 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "delVGS=VGS2-VGS1 #in Volts\n",
+ "delID=ID2-ID1 #in mA\n",
+ "gm=delID*10**-3/delVGS #in mhos\n",
+ "\n",
+ "#Result\n",
+ "print(\"Transconductance in mhos : %.3f\"%gm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transconductance in mhos : 0.003\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.2, Page No.219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#AC drain resistance transconductance and amplification factor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VGS1=0 #in Volt\n",
+ "VGS2=0 #in Volt\n",
+ "VGS3=-0.2 #in Volt\n",
+ "VDS1=7 #in Volt\n",
+ "VDS2=15 #in Volt\n",
+ "VDS3=15 #in Volt\n",
+ "ID1=10 #in mA\n",
+ "ID2=10.25 #in mA\n",
+ "ID3=9.65 #in mA\n",
+ "\n",
+ "#Calculations\n",
+ "delVDS=VDS2-VDS1 #in Volts\n",
+ "delID=ID2-ID1 #in mA\n",
+ "rd=delVDS/delID #in Kohm\n",
+ "delVGS=VGS3-VGS2 #in Volts\n",
+ "delID=ID3-ID2 #in mA\n",
+ "gm=delID*10**-3/delVGS #in mhos\n",
+ "mu=rd*10**3*gm #unitless\n",
+ "\n",
+ "\n",
+ "#Result \n",
+ "print(\"AC drain resistance in Kohm : %.0f\"%rd)\n",
+ "print(\"Transconductance in mhos : %.3f\"%gm)\n",
+ "print(\"Amplification factor : %.0f\"%mu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "AC drain resistance in Kohm : 32\n",
+ "Transconductance in mhos : 0.003\n",
+ "Amplification factor : 96\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.5, Pae No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage Amplification\n",
+ "import math\n",
+ "#variable declaration\n",
+ "gm=2 #in milli-mho\n",
+ "RL=10 #in Kohm\n",
+ "\n",
+ "#calculation\n",
+ "Av=gm*10**-3*RL*10**3 #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"assuming rd>>RL\")\n",
+ "print(\"Voltage amplification : %.0f\"%Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "assuming rd>>RL\n",
+ "Voltage amplification : 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.6, Page No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Output voltage of amplifier\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "RL=20.0 #in Kohm\n",
+ "RS=1.0 #in Kohm\n",
+ "RG=1.0 #in Mohm\n",
+ "Cs=25.0*10**-6 #in uF\n",
+ "mu=20.0 #unitless\n",
+ "rd=100.0 #in Kohm\n",
+ "Vs=2.0 #in Volt\n",
+ "f=1.0*10**3 #in KHz\n",
+ "\n",
+ "#Calculations\n",
+ "Xc=1/(2*math.pi*f*Cs) #in Ohm\n",
+ "Av=mu*RL/(rd+RL) #unitless\n",
+ "Vo=Av*Vs #in Volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Xc in Ohm : %.1f\"%(math.floor(Xc*10)/10))\n",
+ "print(\"As Xc<<Rs, therefore Cs bypasses all ac components. \")\n",
+ "print(\"Output voltage in volt : %.2f\"%Vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Xc in Ohm : 6.3\n",
+ "As Xc<<Rs, therefore Cs bypasses all ac components. \n",
+ "Output voltage in volt : 6.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.7, Page No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#IDQ VGSQ VD VS VDS VDG\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=2.1 #in Mohm\n",
+ "R2=270 #in Kohm\n",
+ "RD=4.7 #in Kohm\n",
+ "RS=1.5 #in Kohm\n",
+ "VDD=20 #in Volt\n",
+ "VP=-4 #in Volt\n",
+ "IDSS=8 #in mA\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#step 1 : Find VGS :\n",
+ "VG=R2*10**3*VDD/(R1*10**6+R2*10**3) \n",
+ "print(\"step 1\\nVS=ID*RS-VGS Volt\")\n",
+ "print(\"VGS=VG-VS=2.28-1.5*ID\")\n",
+ "\n",
+ "#step 2 : Find ID :\n",
+ "print(\"\\nstep 2\\nID=IDSS*[1-VGS/VP]^2 mA\")\n",
+ "print(\"ID=8*[1-(2.28-1.5*ID)/4]^2 mA\")\n",
+ "print(\"2*ID=39.44-18.84*ID+2.25*ID^2\")\n",
+ "print(\"2.25*ID^2-20.84*ID39.44=0\")\n",
+ "print(\"ID=6.6mA or 2.65mA\")\n",
+ "print(\"For ID =6.6mA VDS=-ve\")\n",
+ "print(\"So discard the value so IDQ = 2.65mA.\")\n",
+ "ID=2.65 #in mA\n",
+ "#step 3 : Find VGSQ :\n",
+ "IDQ=ID #in mA\n",
+ "VGS=2.28 #in Volt\n",
+ "VGSQ=VGS-1.5*IDQ #in Volt\n",
+ "\n",
+ "#step 4 : Find VDSQ :\n",
+ "VDSQ=VDD-IDQ*(RD+RS)#in Volt\n",
+ "\n",
+ "#step 5 : Find VD,VS and VDG :\n",
+ "VDS=VDSQ #in Volt\n",
+ "VG=VGS #in Volt\n",
+ "VS=ID*RS #in Volt\n",
+ "VD=VS+VDS #in Volt\n",
+ "VDG=VD-VG #in Volt\n",
+ "print(\"IDQ in mA : %.3f\"%IDQ)\n",
+ "print(\"\\nstep 3\\nVGSQ in Volt :%.3f\"%VGSQ)\n",
+ "print(\"VD in Volt :%.3f\"%VD)\n",
+ "print(\"VS in Volt :%.3f\"%VS)\n",
+ "print(\"\\nstep 4\\nVDS in Volt :%.2f\"%VDS)\n",
+ "print(\"\\nstep 5\\nVDG in Volt :%.3f\"%VDG)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "step 1\n",
+ "VS=ID*RS-VGS Volt\n",
+ "VGS=VG-VS=2.28-1.5*ID\n",
+ "\n",
+ "step 2\n",
+ "ID=IDSS*[1-VGS/VP]^2 mA\n",
+ "ID=8*[1-(2.28-1.5*ID)/4]^2 mA\n",
+ "2*ID=39.44-18.84*ID+2.25*ID^2\n",
+ "2.25*ID^2-20.84*ID39.44=0\n",
+ "ID=6.6mA or 2.65mA\n",
+ "For ID =6.6mA VDS=-ve\n",
+ "So discard the value so IDQ = 2.65mA.\n",
+ "IDQ in mA : 2.650\n",
+ "\n",
+ "step 3\n",
+ "VGSQ in Volt :-1.695\n",
+ "VD in Volt :7.545\n",
+ "VS in Volt :3.975\n",
+ "\n",
+ "step 4\n",
+ "VDS in Volt :3.57\n",
+ "\n",
+ "step 5\n",
+ "VDG in Volt :5.265\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.8, page no.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pinch off voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a=5.6*10**-6/2 #in meter\n",
+ "k=12 #unitless\n",
+ "epsilon_o=8.86*10**-12 #in F/m\n",
+ "epsilon=k*epsilon_o #in F/m\n",
+ "ND=10**15 #in cm^-3\n",
+ "ND=10**15*10**6 #in m^-3\n",
+ "e=1.6*10**-19 #in Coulamb\n",
+ "\n",
+ "#Calculationd\n",
+ "VP=e*ND*a**2/(2*epsilon) #in Volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Pinch off voltage in volts : %.2f\"%VP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pinch off voltage in volts : 5.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.10, Page No.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Plot gm VS IDSS\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "print(\"We have,\\nID=IDSS*[1-VGS/VP]^2\\n\")\n",
+ "print(\"Mutual conductance, gm = (delID/delVGS)\\n\\t\\t = IDSS*2*[1-VGS/VP]*(-1/VP)\\n\\t\\t = (-2*IDSS/VP)*[1-VGS/VP]\");\n",
+ "################------------PLOT------------#############\n",
+ "t = arange(0.0001,3 , 0.0005)\n",
+ "t2 = arange(0.0001,8.0/3.0 , 0.0005)\n",
+ "a=arange(0.001,8,0.0005)\n",
+ "x=(8.0*a/3.0)/a\n",
+ "plot(t2,8*t2/t2,'b')\n",
+ "plot(x,a,'b')\n",
+ "plot(t,(3*t),'--')\n",
+ "text(1.2,8.2,'gm')\n",
+ "text(8.0/3.1,8.2,'Vgs = 0')\n",
+ "text(8.0/4,4.1,'tan(theta) =1/3')\n",
+ "xlabel('gm(in mS)')\n",
+ "ylabel('IDSS(in mA)')\n",
+ "title('gm versus IDSS')\n",
+ "#########---------------------------------------##########\n",
+ "\n",
+ "print(\"\\nClearly the plot of gm vs IDSS for VD=-6V, IDSS=8mA is a straight line of slope=-2/VP=-(2/-6)=1/3\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "We have,\n",
+ "ID=IDSS*[1-VGS/VP]^2\n",
+ "\n",
+ "Mutual conductance, gm = (delID/delVGS)\n",
+ "\t\t = IDSS*2*[1-VGS/VP]*(-1/VP)\n",
+ "\t\t = (-2*IDSS/VP)*[1-VGS/VP]\n",
+ "\n",
+ "Clearly the plot of gm vs IDSS for VD=-6V, IDSS=8mA is a straight line of slope=-2/VP=-(2/-6)=1/3"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8656ba8>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.11, Page No.234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Channel width W\n",
+ "import math\n",
+ "#variable declaration\n",
+ "L=1.25 #in um\n",
+ "mu_n=0.065 #in m^2/V-s\n",
+ "Cox=6.9*10**-4 #in F/m^2\n",
+ "VT=0.65 #in Volt\n",
+ "ID_sat=4 #in mA\n",
+ "VGS=5 #in Volt\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Formula : ID_sat=W*mu_n*Cox*(VGS-VT)^2/(2*L)\n",
+ "W=ID_sat*10**-3*2*L*10**-6/(mu_n*Cox*(VGS-VT)**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Channel Width in micro meter :%.1f\"%(W*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Channel Width in micro meter :11.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_6_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_6_1.ipynb
new file mode 100755
index 00000000..0b55fc7f
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_6_1.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Field Effect Transistors and MOSFETs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.1, Page No.219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of Transconductance\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VGS1=-3.1 #in Volt\n",
+ "VGS2=-3 #in Volt\n",
+ "ID1=1 #in mA\n",
+ "ID2=1.3 #in mA\n",
+ "\n",
+ "#calculations\n",
+ "delVGS=VGS2-VGS1 #in Volts\n",
+ "delID=ID2-ID1 #in mA\n",
+ "gm=delID*10**-3/delVGS #in mhos\n",
+ "\n",
+ "#Result\n",
+ "print(\"Transconductance in mhos : %.3f\"%gm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transconductance in mhos : 0.003\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.2, Page No.219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#AC drain resistance transconductance and amplification factor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "VGS1=0 #in Volt\n",
+ "VGS2=0 #in Volt\n",
+ "VGS3=-0.2 #in Volt\n",
+ "VDS1=7 #in Volt\n",
+ "VDS2=15 #in Volt\n",
+ "VDS3=15 #in Volt\n",
+ "ID1=10 #in mA\n",
+ "ID2=10.25 #in mA\n",
+ "ID3=9.65 #in mA\n",
+ "\n",
+ "#Calculations\n",
+ "delVDS=VDS2-VDS1 #in Volts\n",
+ "delID=ID2-ID1 #in mA\n",
+ "rd=delVDS/delID #in Kohm\n",
+ "delVGS=VGS3-VGS2 #in Volts\n",
+ "delID=ID3-ID2 #in mA\n",
+ "gm=delID*10**-3/delVGS #in mhos\n",
+ "mu=rd*10**3*gm #unitless\n",
+ "\n",
+ "\n",
+ "#Result \n",
+ "print(\"AC drain resistance in Kohm : %.0f\"%rd)\n",
+ "print(\"Transconductance in mhos : %.3f\"%gm)\n",
+ "print(\"Amplification factor : %.0f\"%mu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "AC drain resistance in Kohm : 32\n",
+ "Transconductance in mhos : 0.003\n",
+ "Amplification factor : 96\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.5, Pae No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Voltage Amplification\n",
+ "import math\n",
+ "#variable declaration\n",
+ "gm=2 #in milli-mho\n",
+ "RL=10 #in Kohm\n",
+ "\n",
+ "#calculation\n",
+ "Av=gm*10**-3*RL*10**3 #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"assuming rd>>RL\")\n",
+ "print(\"Voltage amplification : %.0f\"%Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "assuming rd>>RL\n",
+ "Voltage amplification : 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.6, Page No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Output voltage of amplifier\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "RL=20.0 #in Kohm\n",
+ "RS=1.0 #in Kohm\n",
+ "RG=1.0 #in Mohm\n",
+ "Cs=25.0*10**-6 #in uF\n",
+ "mu=20.0 #unitless\n",
+ "rd=100.0 #in Kohm\n",
+ "Vs=2.0 #in Volt\n",
+ "f=1.0*10**3 #in KHz\n",
+ "\n",
+ "#Calculations\n",
+ "Xc=1/(2*math.pi*f*Cs) #in Ohm\n",
+ "Av=mu*RL/(rd+RL) #unitless\n",
+ "Vo=Av*Vs #in Volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Xc in Ohm : %.1f\"%(math.floor(Xc*10)/10))\n",
+ "print(\"As Xc<<Rs, therefore Cs bypasses all ac components. \")\n",
+ "print(\"Output voltage in volt : %.2f\"%Vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Xc in Ohm : 6.3\n",
+ "As Xc<<Rs, therefore Cs bypasses all ac components. \n",
+ "Output voltage in volt : 6.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.7, Page No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#IDQ VGSQ VD VS VDS VDG\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=2.1 #in Mohm\n",
+ "R2=270 #in Kohm\n",
+ "RD=4.7 #in Kohm\n",
+ "RS=1.5 #in Kohm\n",
+ "VDD=20 #in Volt\n",
+ "VP=-4 #in Volt\n",
+ "IDSS=8 #in mA\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#step 1 : Find VGS :\n",
+ "VG=R2*10**3*VDD/(R1*10**6+R2*10**3) \n",
+ "print(\"step 1\\nVS=ID*RS-VGS Volt\")\n",
+ "print(\"VGS=VG-VS=2.28-1.5*ID\")\n",
+ "\n",
+ "#step 2 : Find ID :\n",
+ "print(\"\\nstep 2\\nID=IDSS*[1-VGS/VP]^2 mA\")\n",
+ "print(\"ID=8*[1-(2.28-1.5*ID)/4]^2 mA\")\n",
+ "print(\"2*ID=39.44-18.84*ID+2.25*ID^2\")\n",
+ "print(\"2.25*ID^2-20.84*ID39.44=0\")\n",
+ "print(\"ID=6.6mA or 2.65mA\")\n",
+ "print(\"For ID =6.6mA VDS=-ve\")\n",
+ "print(\"So discard the value so IDQ = 2.65mA.\")\n",
+ "ID=2.65 #in mA\n",
+ "#step 3 : Find VGSQ :\n",
+ "IDQ=ID #in mA\n",
+ "VGS=2.28 #in Volt\n",
+ "VGSQ=VGS-1.5*IDQ #in Volt\n",
+ "\n",
+ "#step 4 : Find VDSQ :\n",
+ "VDSQ=VDD-IDQ*(RD+RS)#in Volt\n",
+ "\n",
+ "#step 5 : Find VD,VS and VDG :\n",
+ "VDS=VDSQ #in Volt\n",
+ "VG=VGS #in Volt\n",
+ "VS=ID*RS #in Volt\n",
+ "VD=VS+VDS #in Volt\n",
+ "VDG=VD-VG #in Volt\n",
+ "print(\"IDQ in mA : %.3f\"%IDQ)\n",
+ "print(\"\\nstep 3\\nVGSQ in Volt :%.3f\"%VGSQ)\n",
+ "print(\"VD in Volt :%.3f\"%VD)\n",
+ "print(\"VS in Volt :%.3f\"%VS)\n",
+ "print(\"\\nstep 4\\nVDS in Volt :%.2f\"%VDS)\n",
+ "print(\"\\nstep 5\\nVDG in Volt :%.3f\"%VDG)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "step 1\n",
+ "VS=ID*RS-VGS Volt\n",
+ "VGS=VG-VS=2.28-1.5*ID\n",
+ "\n",
+ "step 2\n",
+ "ID=IDSS*[1-VGS/VP]^2 mA\n",
+ "ID=8*[1-(2.28-1.5*ID)/4]^2 mA\n",
+ "2*ID=39.44-18.84*ID+2.25*ID^2\n",
+ "2.25*ID^2-20.84*ID39.44=0\n",
+ "ID=6.6mA or 2.65mA\n",
+ "For ID =6.6mA VDS=-ve\n",
+ "So discard the value so IDQ = 2.65mA.\n",
+ "IDQ in mA : 2.650\n",
+ "\n",
+ "step 3\n",
+ "VGSQ in Volt :-1.695\n",
+ "VD in Volt :7.545\n",
+ "VS in Volt :3.975\n",
+ "\n",
+ "step 4\n",
+ "VDS in Volt :3.57\n",
+ "\n",
+ "step 5\n",
+ "VDG in Volt :5.265\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.8, page no.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pinch off voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a=5.6*10**-6/2 #in meter\n",
+ "k=12 #unitless\n",
+ "epsilon_o=8.86*10**-12 #in F/m\n",
+ "epsilon=k*epsilon_o #in F/m\n",
+ "ND=10**15 #in cm^-3\n",
+ "ND=10**15*10**6 #in m^-3\n",
+ "e=1.6*10**-19 #in Coulamb\n",
+ "\n",
+ "#Calculationd\n",
+ "VP=e*ND*a**2/(2*epsilon) #in Volt\n",
+ "\n",
+ "#Result\n",
+ "print(\"Pinch off voltage in volts : %.2f\"%VP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pinch off voltage in volts : 5.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.10, Page No.226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Plot gm VS IDSS\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "print(\"We have,\\nID=IDSS*[1-VGS/VP]^2\\n\")\n",
+ "print(\"Mutual conductance, gm = (delID/delVGS)\\n\\t\\t = IDSS*2*[1-VGS/VP]*(-1/VP)\\n\\t\\t = (-2*IDSS/VP)*[1-VGS/VP]\");\n",
+ "################------------PLOT------------#############\n",
+ "t = arange(0.0001,3 , 0.0005)\n",
+ "t2 = arange(0.0001,8.0/3.0 , 0.0005)\n",
+ "a=arange(0.001,8,0.0005)\n",
+ "x=(8.0*a/3.0)/a\n",
+ "plot(t2,8*t2/t2,'b')\n",
+ "plot(x,a,'b')\n",
+ "plot(t,(3*t),'--')\n",
+ "text(1.2,8.2,'gm')\n",
+ "text(8.0/3.1,8.2,'Vgs = 0')\n",
+ "text(8.0/4,4.1,'tan(theta) =1/3')\n",
+ "xlabel('gm(in mS)')\n",
+ "ylabel('IDSS(in mA)')\n",
+ "title('gm versus IDSS')\n",
+ "#########---------------------------------------##########\n",
+ "\n",
+ "print(\"\\nClearly the plot of gm vs IDSS for VD=-6V, IDSS=8mA is a straight line of slope=-2/VP=-(2/-6)=1/3\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "We have,\n",
+ "ID=IDSS*[1-VGS/VP]^2\n",
+ "\n",
+ "Mutual conductance, gm = (delID/delVGS)\n",
+ "\t\t = IDSS*2*[1-VGS/VP]*(-1/VP)\n",
+ "\t\t = (-2*IDSS/VP)*[1-VGS/VP]\n",
+ "\n",
+ "Clearly the plot of gm vs IDSS for VD=-6V, IDSS=8mA is a straight line of slope=-2/VP=-(2/-6)=1/3"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEZCAYAAACU3p4jAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVGXbB/DfsCm7uCGiYuICCMKIgeY2qCluCCkamuaS\nVvZkpU9Z9pqULba4kY89pKWmpryPkgulmcqIuyijJi6ZrxAK4q5sigPn/WNiHkZZhuXMmeX3/Xz4\nxMycc+7reOji5j7XuW+ZIAgCiIjI7FlJHQARERkGEz4RkYVgwicishBM+EREFoIJn4jIQjDhExFZ\nCCZ8IiILwYRPZEBt27bF3r17AQCrV6+GtbU1nJ2d4ezsjHbt2mHy5Mm4ePGizj7fffcdfH194eLi\nghYtWmDo0KHIz88HAFy5cgUjR45Es2bN0KhRIwQEBGDNmjUGPy8yDUz4RADUarVB2pHJZDqve/bs\niby8PNy/fx+7d++Gvb09goODkZ6eDgDYt28f3n//fWzcuBH379/HuXPn8Pzzz2v3Hz9+PLy8vPDX\nX3/h9u3bWLt2Ldzd3Q1yLmR6mPBJdGlpaZDL5XBxccHo0aMxZswYzJ07FwCgVCrRqlUrfPnll2je\nvDlatmyJLVu24JdffkHHjh3RpEkTLFiwoMLjHj16FB4eHij/sPhPP/2EwMBAAEBpaSkWLFiA9u3b\no2nTphgzZgzu3LkDAMjIyICVlRW+//57eHl5YcCAAXj48CFeeOEFNG3aFG5ubggJCcGNGzcAaHrm\ne/bs0bYTGxuL8ePHAwAePHjwxH7Xr1/X69+mLHaZTIZ27drhX//6F/r27YvY2FgAQGpqKnr06KE9\nJzc3N4wfPx5OTk4AgOPHj2PixImwt7eHlZUVgoKCEB4erlfbZHmY8ElUxcXFiIqKwuTJk3Hnzh3E\nxMRgy5YtOj3d3NxcPHz4EDk5Ofjoo4/w0ksvYf369VCpVNi/fz8++ugjZGZmPnHs0NBQODo66iTi\nH3/8EePGjQMAfP3119i2bRtSUlKQk5MDNzc3vPbaazrHSElJwfnz57Fz506sXr0a9+/fx5UrV3D7\n9m3Ex8ejYcOGADQJuXzM5V+vWbPmif3s7e1r/W/23HPPYf/+/QCA7t2749dff0VsbCwOHjyIhw8f\n6mzbvXt3TJ8+HQkJCfjrr79q3SZZBiZ8EtWRI0dQUlKC119/HdbW1oiKikJISIjONra2tnj//fdh\nbW2NMWPG4Pbt23jzzTfh6OgIPz8/+Pn54eTJkxUePyYmBhs2bAAA5OXlYceOHYiJiQEAxMfH4+OP\nP0bLli1ha2uLefPmYdOmTSgtLdXuHxsbC3t7ezRs2BB2dna4desWLl68CJlMBrlcDmdn5wrbFQRB\n2zuvyX768PDwwO3btwEAvXr1QmJiItLS0jBs2DA0bdoUs2bN0p7Df/7zH/Tu3Rvz589Hu3btIJfL\ncfz48Vq3TeaNCZ9ElZ2dDU9PT533WrdurfO6SZMm2t5yWc+4/Di0vb09CgoKKjz+2LFjkZiYiOLi\nYiQmJiI4OFh7/IyMDERFRcHNzQ1ubm7w8/ODjY0NcnNzK4xl/PjxGDRoEJ5//nl4enpi9uzZlY7t\nl+/t12Q/fVy9ehWNGzfWvg4PD8e2bdtw584dbN26FatXr8bKlSsBAI0aNcJnn32GM2fOIDc3F0FB\nQYiMjKx122TemPBJVB4eHrh69arOe/U59ODr6wsvLy/s2LEDP/74I8aOHav9rE2bNti5cyfu3Lmj\n/SosLISHh4d2m/KJ28bGBh988AHS09Nx6NAhJCUl4YcffgAAODo66vzSycnJ0Wu/2vjpp5/Qp0+f\nCj/r168f+vXrp72pW16TJk0wa9YsZGdna+9VEJXHhE+ieuaZZ2BtbY1ly5ZBrVZj69atSE1Nrdc2\nxo4diyVLlmD//v2Ijo7Wvv/KK69gzpw52l8wN27cwLZt2yo9jlKpxO+//46SkhI4OzvD1tYW1tbW\nAICgoCBs3LgRarUax48fx+bNm7W/LKraT18lJSW4fPkyXn/9daSkpGDevHkAgG3btiEhIQF37tyB\nIAg4duwY9u3bh+7duwMAZs+ejfT0dKjVauTl5eGbb75Bhw4d4ObmVqP2yTIw4ZOobG1tkZiYiO++\n+w5ubm5Yv349hg0bBjs7O+02j5cqPv66OjExMUhJSUH//v11hkLeeOMNREREYODAgXBxcUGPHj1w\n7NixStu5du0aoqOj4erqCj8/PygUCm0lzvz583Hp0iW4ubkhNjZWe2O4uv2qIpPJcPjwYTg7O8PV\n1RVhYWHIz89HamoqOnfuDEBTlbNixQp07NgRrq6uGD9+PN555x3tfYqioiLtsJW3tzeysrKq/KVG\nlk0m5gIoS5cuxcqVKyEIAqZOnYo33nhDrKbIhISGhmL69Ol48cUXpQ6FyKKI1sM/c+YMVq5cidTU\nVJw6dQpJSUm4dOmSWM2REUtJScG1a9egVquxZs0anDlzhrXiRBIQLeGfP38eoaGhaNiwIaytrdG3\nb18kJiaK1RwZsQsXLiAoKAhubm5YvHgxNm3axKdBiSQg2pDO+fPnMWLECBw+fBgNGzZE//79ERIS\ngqVLl4rRHBERVcNGrAP7+Phg9uzZGDhwIBwdHSGXy2FlxXvERERSEfWmbXlz5sxBmzZt8Morr2jf\na9++Pcf1iYhqyNvbG3/++WfNdxRElJubKwiCIGRmZgo+Pj7CvXv3dD4XuXnJzZs3T+oQRMXzM23m\nfH7mdG6PHgnCp58KQtOmghAfLwilpbXPnaIN6QDAqFGjcOvWLdja2mL58uVwcXERszkiIrNy4wYw\nZAjQqBFw/Djg5VW344ma8FNSUsQ8PBGRWWvSBJgzB4iMBGr4PGKFRE34lk6hUEgdgqh4fqbNnM/P\nXM7NygqIiqq/4xnspm2FjctkkLB5IiKTVNvcyTpJIiKJpacDAwcCei6UVmtM+EREElGrgc8+AxQK\nYNQooFkzcdvjGD4RkQTS04GJE+uvAkcf7OETERnYrVvAgAHA1KnArl2GSfYAb9oSEUkiPx9wcqrd\nvrXNnUz4REQmhlU6REQ10K9fP+zatUvnvSVLlmD69On12k52dtWfnzhxAgEBAejQoYPoi0Qx4ROR\nRYqJicHGjRt13ktISMDYsWPr5fhlFTiBgVUn/VdffRXfffcdLl68iIsXL2Lnzp310n5FmPDJKM2f\nPx8+Pj7o3bs3xo4di4ULF0KhUGDmzJl4+umn4evri9TUVERFRaFjx46YO3eu1CGTiRk5ciR+/vln\nqNVqAEBGRgays7PRq1cvlJaWYvr06fD19cXAgQMxdOhQbN68GQDw7rvvonPnzggMDMTbb79d4bHT\n04EePYC9ezUVOC1bVhxDTk4O8vLyEBISAgCYMGECtmzZUv8n+zeWZZLRSU1NRWJiIk6fPo3i4mJ0\n7doVwcHBkMlkaNCgAVJTUxEXF4cRI0ZApVJpF/CeOXMm3NzcpA6fTETjxo0REhKCX375BREREdi4\ncSPGjBkDAEhMTERmZibOnTuH3Nxc+Pr6YsqUKbh16xa2bNmC8+fPAwDu37+vc0y1Gnj1VSVWrXoL\nLVtqXkdGaj5zdHTEgQMHdLa/evUqWrVqpX3t6emJq1evinbOTPhkdA4ePIjIyEjY2dnBzs4Ow4cP\n134WEREBAPD394e/v792qcR27drhr7/+YsKnGikb1omIiEBCQgK+//57AJqfwdGjRwMA3N3dERYW\nBgBo1KgRGjZsiClTpmDYsGEYNmyYzvEKC4HiYgUuXVIZrNSyJpjwyehUVYHQoEEDAICVlZX2+7LX\nJSUlBomPzEdERATeeustqFQqFBYWQi6Xaz+r6GfQ2toax44dw549e7Bp0yYsW7YMe/bs0X7u4gJM\nnJiMyMiZT+zr4OCAgwcP6rzn6emJK1euaF9fuXIFnp6e9XFqFeIYPhmdnj17Yvv27Xj48CHy8/OR\nlJSk/YxlvFSfnJycEBYWhkmTJuncrO3Zsyc2b94MQRCQm5sLpVIJACgoKMDdu3cxePBgLFq0CKdO\nnXrimGFhYVCpVE98PZ7sAcDDwwMuLi44evQoBEHA2rVrEVk2BiQC9vDJ6HTr1g0RERHo0qUL3N3d\nERAQAFdXV8hkMsj+nhS8/PdEdRETE4PnnnsO//u//6t9b+TIkdizZw/8/PzQunVrdO3aFa6ursjL\ny8OIESNQVPQAt24J+OKLxXVuf/ny5Zg4cSKKioowZMgQhIeH1/mYlRH1wavPPvsM69atg5WVFQIC\nArBq1SqdP8P54BVVpqCgAI6OjigsLETfvn2xYsUKBAUFSR0WWZCyn8Fbt24hNDQUhw4dQvPmzXXm\nwPnxR/EnPKuI0T14lZGRgRUrViAtLQ2///47SkpKnqh5JarMtGnTIJfLERwcjFGjRjHZk8ENGzYM\ncrkcffr0wQcffIDGjZtrZ7YsmwNHimRfF6IN6bi4uMDW1haFhYWwtrZGYWGhqDcjyLysX79e6hDI\nwiUnJ2u/v3dPU1dvyJktxSBawm/cuDFmzZqFNm3awN7eHoMGDcKAAQOe2K66x46JiKRSVATY2gKt\nWwMffQSEh9fP2rJSES3hX7p0CUuWLEFGRgZcXV0RHR2N9evXY9y4cTrbdeoUq/3ezk6BBg0UYoVE\nRFQjBQXAU08BJ08CgwdLF4dSqdRWCtWFaDdtExIS8Ntvv2HlypUAgLVr1+LIkSP417/+9d/GedOW\niIxYfDyQlqb5rzExupu2Pj4+OHLkCIqKiiAIAnbv3g0/Pz+xmiMiqrP0dKBvX+Cvv6SORByiJfzA\nwEBMmDAB3bp1Q5cuXQBoKi+IiIxN+bVlx43TjNmbIy6AQkQWrXxd/cqVuhU4HNIhIjITeXmam7GG\nXltWKpxagYgslrMzcOECYG8vdSSGwR4+EVk0S0n2ABM+EVmIzEzA0m8ZMuETkVkrq8Dp1g24fFnq\naKTFMXwiMlvlK3BMeQ6c+sIePhGZnfJ19ZZSgaMP9vCJyOyo1UBGBnv1j2PCJyKz07Ch8T0sZQw4\npENEZCGY8InIZKnVwNKlmidmqXpM+ERkktLTNatQJSVp5q2n6jHhE5FJqagCp0ULqaMyDbxpS0Qm\no7BQM1896+prhwmfiEyGgwPwxRea3r0pry0rFSZ8IjIpYWFSR2C6RB3Dv3DhAuRyufbL1dUVcXFx\nYjZJRGbC0ic6E4OoCb9Tp05QqVRQqVQ4ceIEHBwcEBUVJWaTRGQG0tOBnj2B8+eljsS8GKxKZ/fu\n3fD29kZrc10skojqrHwFzsSJQKdOUkdkXgw2hr9x40aMHTvWUM0RkYnhzJbiM0jCLy4uxvbt2/H5\n558/8VlsbKz2e4VCAYVCYYiQiMiIPHgAREYCb7+tqa1nBY4upVIJpVJZ5+PIhNosfV5DW7duxTff\nfIOdO3fqNl7LldeJyPwUFwN2dlJHoSs+HkhLM76J2GqbOw0yhr9hwwbExMQYoikiMlHGluzNkegJ\nv6CgALt378Zzzz0ndlNEZAL+/BMoLZU6CsskesJ3dHTEzZs34ezsLHZTRGTEyipwevRguaVU+KQt\nEYmOFTjGgbNlEpFouLascWEPn4hEdf06e/XGggmfiERjYwMsXix1FFSGQzpERBaCCZ+I6kytBr76\nCrh5U+pIqCpM+ERUJ2fOAN27a27IFhdLHQ1VhQmfiGpFrQY+/VSzIMnLLwO//gq0bCl1VFQV3rQl\nohorLgZ69wZcXYETJ4A2baSOiPTBhE9ENWZnByxZohnK4cyWpoMJn4hqpUcPqSOgmuIYPhFViTOY\nmw8mfCKq1JkzQGgooFJJHQnVByZ8InpC+QqcqVOBoCCpI6L6wDF8ItJx5oxmZsvGjVmBY27Ywyci\nrUePgJgYYNo0TV09k715ETXh3717F6NGjYKvry/8/Pxw5MgRMZsjojqytdWM10+bxnJLcyTqkM4b\nb7yBIUOGYNOmTVCr1SgoKBCzOSKqBzYc6DVbovXw7927h/3792Py5MkAABsbG7i6uorVHBHV0IUL\nmpuzZDlES/iXL19Gs2bNMGnSJHTt2hVTp05FYWGhWM0RkZ7KVqHq1Qv4/XepoyFDEu2PN7VajbS0\nNCxbtgxPP/003nzzTSxYsAAfffSRznaxsbHa7xUKBRQKhVghEVm89HRg0iTNHDhchcp0KJVKKJXK\nOh9HJgjiPEd37do19OjRA5cvXwYAHDhwAAsWLEBSUtJ/G5fJIFLzRFROSQnwxRfAokXAJ59oaut5\nU7Z68fFAWprmv8aktrlTtB5+ixYt0Lp1a/zxxx/o2LEjdu/ejc6dO4vVHBFVwcoKyM9nr97SiXo/\n/uuvv8a4ceNQXFwMb29vrFq1SszmiKgSMpmmZ0+WTdSEHxgYiNTUVDGbICIiPfFJWyIzolZrxuqz\nsqSOhIwREz6RmUhPB555BvjtN96QpYox4ROZuLK6eoUCeOklzWLirVpJHRUZIz5ETWTCSko0id7e\nnhU4VL0qE35aWho2bNiAlJQUZGRkQCaTwcvLC3369MHYsWMhl8sNFScRVcDaGoiLA+RyDuNQ9SpN\n+EOGDIGbmxsiIiIwffp0eHh4QBAE5OTk4NixY/jqq69w9+5d/Pzzz4aMl4ge07Wr1BGQqaj0Sdvc\n3Fy4u7tXufP169fRvHnz2jfOJ22J9FZaqnmAigzH3J60rfTHp7Jkv3//frz22msAUKdkT0T6S08H\nuncH9u+XOhIyZXr1F9LS0vD222/Dy8sLc+fOhY+Pj9hxERGerMDp1UvqiMiUVTqGf+HCBWzYsAEJ\nCQlo1qwZoqOjIQhCvczYRkTV48yWVN8qTfi+vr4YNmwYfv31V7T5e2HLRYsWGSwwIktWWgpMnqzp\n1XNmS6ovlSb8xMREbNiwAX369EF4eLi2h09E4rOyAg4f5k1aql+V/jhFRkYiISEBZ86cQe/evbF4\n8WLcuHEDr776Knbt2mXIGIksEpM91bdqf6ScnJwwbtw4JCUlISsrC3K5HAsWLDBEbEQW4dw5oKhI\n6ijIEug1tcKdO3eQlZUFtVqN4OBgBAcHix0XkdlTq4Evv9SsQrVtG9Cjh9QRkbmrNuHPnTsXq1ev\nRrt27WBV7m/M5ORkvRpo27YtXFxcYG1tDVtbWxw7dqz20RKZCVbgkBSqTfgJCQm4dOkS7OzsatWA\nTCaDUqlE48aNa7U/kTkpLQU+/5xry5I0qk34nTt3xp07d6qdZqEqrO4h0ij7I5m9epJCtQl/zpw5\nkMvl8Pf3R4MGDQBoeu3btm3TqwGZTIYBAwbA2toaL7/8MqZOnVq3iIlM3HvvSR0BWapqE/6ECRPw\n7rvvwt/fXzuGL6vB36AHDx6Eh4cHbty4gWeffRY+Pj7o3bt37SMmIqJaqTbhOzk5YcaMGbVuwMPD\nAwDQrFkzREVF4dixYzoJPzY2Vvu9QqGAQqGodVtExkKtBr76CoiMBDj1FNWVUqmsl2ltKp0euczM\nmTPRoEEDREREaId0AKCrHpNwFxYWoqSkBM7OzigoKMDAgQMxb948DBw4UNM4p0cmM1S+Aue774C/\nZyYhE2Ru0yNX28NPS0uDTCbDkSNHdN7XpywzNzcXUVFRAAC1Wo1x48Zpkz2RuSlfV88KHDJG1Sb8\nuvwZ8dRTT+HkyZO13p/IVAgC8OyzgI0NK3DIeHERc6J6IJMBy5YBfn7s1ZPxYsInqiedO0sdAVHV\nOB8fUQ2p1ZohHCJTo1cP/+DBg8jIyIBarQaguUM8YcIEUQMjMkZlFTgffggMHix1NEQ1U23Cf+GF\nF/B///d/CAoKgrW1tfZ9JnyyJI9X4ISHSx0RUc1Vm/BPnDiBs2fP1ujpWiJzwpktyVxUO4bv7++P\nnJwcQ8RCZHQEAZgxQ7O27K5dTPZk2qrt4d+4cQN+fn4ICQmp1eRpRKZMJgN272apJZmHahN++blu\niCwRkz2Zi2oTPiczI0uRng60aqUZqycyR5WO4ffs2ROAZrZMZ2dnnS8XFxeDBUgkNrUa+OwzQKEA\nVCqpoyEST6UJ/+DBgwCA/Px85OXl6Xzdv3/fYAESiSk9HXjmGWDvXk0FjiX9QXvv3j188803dT7O\nP//5T+zbtw8AsGTJEhQVFWk/c3JyqtGx9u3bh8OHD1e73bZt2zB//vyaBVrO5MmT4e7ujoCAgCc+\nO3LkCKZNm4bU1FR88okcmzfL0aVLFyQkJNS6PWNRacLPy8urdmd9tiEyRoIALFigSfCWWoFz584d\nLF++vE7HyMvLQ0pKCvr27QsAWLp0KQoLC7Wf17ScOzk5GYcOHap2u+HDh2Pz5s149OhRzQL+26RJ\nk7Bz584KP9uxYwcGDx4Mf39/vPfeCYwcqcKuXbvw2muvoaSkpFbtGYtKE35UVBRee+017Nq1C7dv\n39a+f+vWLfz666949dVXtVMfE5kamQxwctL06qdNs8wbs++++y4uXboEuVyO2bNno6CgAAMGDEBw\ncDC6dOmircTLyMiAr68vpk2bBn9/fwwaNAgPHjwAAGzduhUDBgwAAMTFxSE7OxthYWHo37+/tp3/\n+Z//QVBQEHr06IHr168D0FT/jRo1CiEhIQgJCcGhQ4eQmZmJ+Ph4LF68GHK5HAcOHEBSUhK6d++O\nrl274tlnn9XuL5PJ0KNHD+zatatW5967d2+4ublV+NnevXsxYMAA2Nvba1f5Kyoqgqurq87DpyZJ\nqMKePXuEKVOmCD4+PoKLi4vg4uIi+Pj4CC+99JKQnJxc1a56qaZ5IhJRRkaG4O/vr32tVquF+/fv\nC4IgCDdu3BDat28vCIIgXL58WbCxsRFOnTolCIIgjB49Wli3bp0gCILwyiuvCJs3b9Yeo23btsKt\nW7e0r2UymZCUlCQIgiC88847wscffywIgiDExMQIBw4cEARBEDIzMwVfX19BEAQhNjZWWLhwoXb/\nO3fuaL9fsWKFMGvWLO3r77//XnjnnXeeOK/k5GQhKCjoia+ePXvqbHf58mWd8y8777CwMO3r2bOP\nCm5ufoK9vb2wZcuWiv4ZJVHb3FlllU6/fv3Qr18/w/zmISKDEh6bAa60tBTvvfce9u/fDysrK2Rn\nZ2t71E899RS6dOkCAAgODkZGRgYAIDMzU7uMaUXs7OwwdOhQ7X6//fYbAGD37t04d+6cdru8vDwU\nFBQ8EVdWVhZGjx6Na9euobi4GE899ZT2s5YtW1Y4LKNQKKCq5d33Xbt2YdCgQdrXTz0VgujodLz1\n1nmEh4dDoVDA1YTLuCod0snIyMDdu3e1r/fu3YsZM2Zg0aJFKC4u1ruBkpISyOVyDB8+vG6REtVC\nWQVOaqrUkRi/9evX4+bNm0hLS4NKpULz5s21Qzfllze1trbWGcsuLS2t9Ji2trba762srLQTMAqC\ngKNHj0KlUkGlUiErKwuOjo5P7P/6669jxowZOH36NOLj47XxlLVb0T2C5ORkyOXyJ77KKg+rsnPn\nToRXMFGSj48PvL298eeff1Z7DGNWacIfPXq09ubLyZMnER0dDS8vL5w8eRLTp0/Xu4GlS5fCz8+P\nc/GQwZWvwGneXOpojI+zs7NO4cX9+/fRvHlzWFtbIzk5GZmZmZXuW9YL9/LywrVr13SOqU8V38CB\nAxEXF6d9XbYyXkUxtWzZEgCwevVqnWPk5OTAq4I77WFhYdpfJOW/yioPqzqn06dPIzAwEICm01tS\novkFlZmZiYsXL6JDhw7VnpsxqzThP3jwQPsPvW7dOkyZMgWzZs3C6tWrcfToUb0OfuXKFfzyyy94\n6aWXuFg5GUz5unpLrcDRR5MmTdCzZ08EBARg9uzZGDduHI4fP44uXbpg7dq18PX11W77eIet7HWv\nXr1w/Phx7fvTpk1DeHi49qZt+f1kMpn2dVxcHI4fP47AwEB07twZ3377LQBN9c1PP/2kvWkbGxuL\n6OhodOvWDc2aNdM53rFjx9CnT59anXtMTAyeeeYZXLhwAa1bt8aqVatw4sQJyOVy7TYHDhzAJ58E\nYfNmOaKjo/Htt9+a/jNIlQ3ul7+ZERQUJOzYsaPCz6oyatQoIS0tTVAqlcKwYcOe+LyK5olqbdAg\nQRgwQBAyMqSOxPzl5eUJ3bp1M3i7JSUlQmBgoPDo0aN6O+bHH38sJCQk6Lz3738LwrRp9dZEvalt\n7qz0pm1YWBiio6Ph4eGBu3fvam/eZmdn64znVSYpKQnNmzeHXC6v00LoRDW1bBng7W2ZpZaG5uTk\nhLCwMCQnJyMsLMxg7SYlJWHUqFGwsam/VVrff//9ejuWsZL9/dviCaWlpUhISMC1a9cwevRoeHp6\nAgBUKhWuX7+ucye7InPmzMHatWthY2ODBw8e4P79+xg5ciR++OGH/zYuk2HevHna1wqFgnP3EJHR\niI8H0tI0/5WSUqnU6Th/+OGHtRomrzThP+7mzZtISUmBl5cXgoODa9TIvn378NVXX2H79u26jctk\nHNunWlOrASsrzReRGIwl4T+utrmz0v9Vhg4dijNnzgDQ3A339/fHqlWrMH78eCxevLhWARLVl7IK\nnM2bpY6EyHRUWYfv7+8PAFi1ahUGDhyI7du34+jRo/j+++9r1Ejfvn25YArVi8crcEaNkjoiItNR\n6R2P8g9M7N69G1OnTgWgqZO14t/QJAGuLUtUN5Um/FatWuHrr7+Gp6cnVCqV9umzwsJC7dNyRIb0\n/vuaXv3UqazAIaqNShP+d999hw8++AC7d+9GQkKCdma5o0ePYtKkSQYLkKjMTz8x0RPVhd5VOqI0\nziodIjJiFlOlA2jmrujatSscHBzg4OCAbt26Yc2aNbUOkkgf6elAbq7UURCZn0oT/po1a7B06VIs\nXLgQ2dnZuHr1Kr744gvExcXpPDxFVF/KV+CcOiV1NETmp9Ix/OXLlyMxMVFn/ul+/fph8+bNGDNm\nDCZMmGCQAMkysAKHSHxVrmlbPtmXadu2LdeypXr1xRec2ZLIECrt4Tds2LDSnar6jKimmjVjr57I\nECpN+OfOnUNAQECFn126dEm0gMjysMqXyDCqTPhERGQ+Kk34bdu2NWAYZO7UauDLL4GQEODvxZCI\nyMAqTfjXbf2nAAAOyklEQVROTk6VznApk8n0WreSCNCtwBk7VupoiCxXpQk/Pz/fkHGQGSrr1S9a\nBHzyCefAIZJa/a0PRvSY6GggP58VOETGggmfRLN0KdC6NXv1RMZC1IntHzx4gNDQUAQFBcHPzw/v\nvfeemM2RkWnThsmeyJiI2sNv2LAhkpOT4eDgALVajV69euHAgQPo1auXmM2SganVgCAA5dbMISIj\nJPrSVQ4ODgCA4uJilJSUoHHjxmI3SQZUtrbsunVSR0JE1RE94ZeWliIoKAju7u4ICwuDn5+f2E2S\nATy+tuzEiVJHRETVEf2mrZWVFU6ePIl79+5h0KBBUCqVUCgU2s9jY2O13ysUCp3PyDhxZksiw1Iq\nlVAqlXU+jkFXvJo/fz7s7e3xz3/+U9M4V7wySS++CPTsybp6Mn8WteJVXd28eRN3794FABQVFeG3\n336DXC4Xs0kygDVrgGnTmOyJTI2oQzo5OTl48cUXUVpaitLSUowfPx79OZEKEZEkRE34AQEBSEtL\nE7MJElF6OuDoCHAePSLzIHqVDpme8hU4Z85IHQ0R1RdOrUA6WIFDZL7YwyethQu5tiyROWMPn7Ta\ntGGvnsicMeGTVnS01BEQkZg4pENEZCGY8C1MWQVOYqLUkRCRoTHhW5CymS337gWCg6WOhogMjQnf\nAjw+syUrcIgsE2/aWoAJE4AbN1iBQ2TpmPAtwMKFQIsWnOyMyNIx4VsADw+pIyAiY8AxfDOiVgMP\nHkgdBREZKyZ8M1FWgbNypdSREJGxYsI3cY9X4Lz2mtQREZGx4hi+CePMlkRUE6L28LOyshAWFobO\nnTvD398fcXFxYjZncf79b9bVE5H+RO3h29raYvHixQgKCkJ+fj6Cg4Px7LPPwtfXV8xmLcbXX0sd\nARGZElF7+C1atEBQUBAAwMnJCb6+vsjOzhazSSIiqoTBbtpmZGRApVIhNDTUUE2ajfR04Nw5qaMg\nIlNnkJu2+fn5GDVqFJYuXQonJyedz2JjY7XfKxQKKBQKQ4RkEtRq4MsvgUWLgBUrAI6EEVkmpVIJ\npVJZ5+PIBEEQ6h5O5R49eoRhw4Zh8ODBePPNN3Ubl8kgcvMmKz0dmDgRcHPT1Na3aSN1RESWJz4e\nSEvT/NeY1DZ3ijqkIwgCpkyZAj8/vyeSPVVuyRJNXf20acCvvzLZE1H9EDXhHzx4EOvWrUNycjLk\ncjnkcjl27twpZpNmoUMH4MQJYOpUTnhGRPVH1DH8Xr16obS0VMwmzNLQoVJHQETmiFMrEBFZCCZ8\niZTNgbNmjdSREJGlYMKXQHo60KMHkJwMhIVJHQ0RWQomfAMqP7MlK3CIyNA4W6YBTZsGXLmiqcBh\noiciQ2PCN6AvvgCaNGGpJRFJgwnfgJo2lToCIrJkHMMXgVoN5OdLHQURkS4m/HpWVoGzfLnUkRAR\n6WLCryePV+C8/bbUERER6eIYfj0oP7MlK3CIyFixh18PfvyRdfVEZPzYw68Hn3widQRERNVjD5+I\nyEIw4ddAerpm9RsiIlPEhK+H8hU4ly5JHQ0RUe2ImvAnT54Md3d3BAQEiNmMqMrPbHniBBAdLXVE\nRES1I2rCnzRpkkkvabhsGWe2JCLzIWqVTu/evZGRkSFmE6Ly92ddPRGZD5ZlVkGhkDoCIqL6I3nC\nj42N1X6vUCigYJYlItKhVCqhVCrrfByZIAhC3cOpXEZGBoYPH47ff//9ycZlMojcfLXUauDLLwFH\nR2DGDElDISIjEx+vKcWOj5c6El21zZ0WXZZZvgInMlLqaIiIxCVqwo+JicEzzzyDP/74A61bt8aq\nVavEbE5vXFuWiCyRqGP4GzZsEPPwtfbmm8Aff7ACh4gsi+Q3baXwySeAiwvXliUiy2KRCd/VVeoI\niIgMz6xv2qrVwN27UkdBRGQczDbhl1XgLFkidSRERMbB7BL+4xU48+ZJHRERkXEwqzF8ri1LRFQ5\ns+rhJyWxrp6IqDJm1cOfPVvqCIiIjJdZ9fCJiKhyJpnw09OB/fuljoKIyLSYVMIvX4Fz5YrU0RAR\nmRaTGcNnBQ4RUd2YRA8/Pp4zWxIR1ZVJ9PDlcvbqiYjqyiQSfkiI1BEQEZk+UYd0du7cCR8fH3To\n0AGff/65mE0REVE1REv4JSUl+Mc//oGdO3fi7Nmz2LBhA86dO1fp9mUVOB9/LFZEhlcfiw4bM56f\naTPn8zPnc6sL0RL+sWPH0L59e7Rt2xa2trZ4/vnnsXXr1gq3Lb+27IQJYkVkeOb+Q8fzM23mfH7m\nfG51IVrCv3r1Klq3bq193apVK1y9evWJ7bi2LBGRYYh201am5/qBe/eyAoeIyCAEkRw+fFgYNGiQ\n9vWnn34qLFiwQGcbb29vAQC/+MUvfvGrBl/e3t61yssyQRAEiECtVqNTp07Ys2cPWrZsiZCQEGzY\nsAG+vr5iNEdERNUQbUjHxsYGy5Ytw6BBg1BSUoIpU6Yw2RMRSUi0Hj4RERkXg8ylo88DWDNmzECH\nDh0QGBgIlUpliLDqTXXnp1Qq4erqCrlcDrlcjo9N6GGDyZMnw93dHQEBAZVuY8rXrrrzM+Vrl5WV\nhbCwMHTu3Bn+/v6Ii4urcDtTvX76nJ8pX78HDx4gNDQUQUFB8PPzw3vvvVfhdjW6frW+K6sntVot\neHt7C5cvXxaKi4uFwMBA4ezZszrb/Pzzz8LgwYMFQRCEI0eOCKGhoWKHVW/0Ob/k5GRh+PDhEkVY\nNykpKUJaWprg7+9f4eemfO0EofrzM+Vrl5OTI6hUKkEQBCEvL0/o2LGjWf2/p8/5mfL1EwRBKCgo\nEARBEB49eiSEhoYK+/fv1/m8ptdP9B6+Pg9gbdu2DS+++CIAIDQ0FHfv3kVubq7YodULfR8wE0x0\n5Kx3795wc3Or9HNTvnZA9ecHmO61a9GiBYKCggAATk5O8PX1RXZ2ts42pnz99Dk/wHSvHwA4ODgA\nAIqLi1FSUoLGjRvrfF7T6yd6wtfnAayKtrliIiuc6HN+MpkMhw4dQmBgIIYMGYKzZ88aOkzRmPK1\n04e5XLuMjAyoVCqEhobqvG8u16+y8zP161daWoqgoCC4u7sjLCwMfn5+Op/X9PqJPlumvg9gPf5b\nWN/9pKZPnF27dkVWVhYcHBywY8cOREZG4o8//jBAdIZhqtdOH+Zw7fLz8zFq1CgsXboUTk5OT3xu\n6tevqvMz9etnZWWFkydP4t69exg0aBCUSiUUCoXONjW5fqL38D09PZGVlaV9nZWVhVatWlW5zZUr\nV+Dp6Sl2aPVCn/NzdnbW/mk2ePBgPHr0CLdv3zZonGIx5WunD1O/do8ePcLIkSPxwgsvIDIy8onP\nTf36VXd+pn79yri6umLo0KE4fvy4zvs1vX6iJ/xu3brh4sWLyMjIQHFxMRISEhAREaGzTUREBH74\n4QcAwJEjR9CoUSO4u7uLHVq90Of8cnNztb+Fjx07BkEQnhiLM1WmfO30YcrXThAETJkyBX5+fnjz\nzTcr3MaUr58+52fK1+/mzZu4e/cuAKCoqAi//fYb5HK5zjY1vX6iD+lU9gBWfHw8AODll1/GkCFD\n8Msvv6B9+/ZwdHTEqlWrxA6r3uhzfps2bcI333wDGxsbODg4YOPGjRJHrb+YmBjs27cPN2/eROvW\nrfHhhx/i0aNHAEz/2gHVn58pX7uDBw9i3bp16NKlizZRfPrpp/jrr78AmP710+f8TPn65eTk4MUX\nX0RpaSlKS0sxfvx49O/fv065kw9eERFZCJNYxJyIiOqOCZ+IyEIw4RMRWQgmfCIiC8GET0RkIZjw\niYgsBBM+WaSHDx+ib9++EAQB2dnZiI6Orvc2SktLMWPGDAQEBKBLly4ICQlBZmYmAKB///7Iy8ur\n9zaJqsKETxZp/fr1GDZsGGQyGVq2bIn//Oc/9d5GQkICcnJy8Pvvv+P06dPYsmULXF1dAQDPP/88\nVqxYUe9tElWFCZ9M0vz58+Hj44PevXtj7NixWLhwIQBAoVBg5syZePrpp+Hr64vU1FRERUWhY8eO\nmDt3rnb/DRs2YMSIEQA0My2WLYCyevVqPPfccxg8eDA6duyI2bNnV9h+27ZtMWfOHMjlcnTr1g1p\naWkYOHAg2rdvr30S8tq1a/Dw8NDu07JlSzRq1AiA5pF4U3rqk8yD6FMrENW31NRUJCYm4vTp0ygu\nLkbXrl3RrVs3AJqZAhs0aIDU1FTExcVhxIgRUKlUcHNzg7e3N2bOnAkXFxecOXMGHTt2rPD4p06d\nwsmTJ2FnZ4dOnTphxowZT0xIJZPJ4OXlBZVKhZkzZ2LixIk4fPgwioqK4O/vj5dffhmjR49Gr169\nsH//fvTv3x8vvPCCdv52d3d33Lx5EwUFBXB0dBT3H4zob+zhk8k5ePAgIiMjYWdnBycnJwwfPlzn\n87LJ6/z9/eHv7w93d3fY2dmhXbt2yMrKws2bN+Hs7Fzp8fv37w9nZ2c0aNAAfn5+yMjIqHC7snYC\nAgLQo0cPODo6omnTpmjQoAHu378PT09PXLhwAZ999hmsrKzQv39/7N27V7u/u7u7zkyHRGJjD59M\njkwm05kD/PHpoBo0aABAM5d42fdlr9VqdYX7VLQ/AFhbW6OkpKTK7aysrGBnZ1dhO3Z2dggPD0d4\neDjc3d2xZcsW9OvXTxuDqc09T6aNPXwyOT179sT27dvx8OFD5Ofn4+eff67R/k2bNkV+fr7e21c3\nv2BFnwuCAJVKpV1yr7S0FKdOnULbtm212+Tm5j6xdgKRmNjDJ5PTrVs3REREoEuXLnB3d0dAQIC2\n+qU8mUxWYQ/a2toa/v7+uHDhAjp16qTdtrJ9KjpG+fce36fs9fXr1zF16lQ8fPgQgGbN0X/84x8A\nNDd0mzRpwvF7MihOj0wmqexmZ2FhIfr27YsVK1Zob4jqY/Xq1cjNza20Ckds3377LQoKCvDWW29J\n0j5ZJiZ8Mknjxo3D2bNn8eDBA0ycOLHGibu4uBgDBgzAvn37JBlH79+/P7Zu3VrhGrNEYmHCJyKy\nELxpS0RkIZjwiYgsBBM+EZGFYMInIrIQTPhERBaCCZ+IyEL8P5Zo/KVSTsZxAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8656ba8>"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.11, Page No.234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Channel width W\n",
+ "import math\n",
+ "#variable declaration\n",
+ "L=1.25 #in um\n",
+ "mu_n=0.065 #in m^2/V-s\n",
+ "Cox=6.9*10**-4 #in F/m^2\n",
+ "VT=0.65 #in Volt\n",
+ "ID_sat=4 #in mA\n",
+ "VGS=5 #in Volt\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Formula : ID_sat=W*mu_n*Cox*(VGS-VT)^2/(2*L)\n",
+ "W=ID_sat*10**-3*2*L*10**-6/(mu_n*Cox*(VGS-VT)**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Channel Width in micro meter :%.1f\"%(W*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Channel Width in micro meter :11.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_7.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_7.ipynb
new file mode 100755
index 00000000..141aa7dd
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_7.ipynb
@@ -0,0 +1,287 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Magnetic Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.1, Page No.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Horizontal component of magnetic Intensity\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Bo=1.7*10**-5 #in weber/m^2\n",
+ "meu_o=4*math.pi*10**-7 #permeability of free space in weber/amp-meter\n",
+ "\n",
+ "#Calculations\n",
+ "H=Bo/meu_o #in A/m\n",
+ "\n",
+ "#result\n",
+ "print(\"Horizontal component of magnetic filed intensity in A/m : %.1f\"%H);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Horizontal component of magnetic filed intensity in A/m : 13.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "exammple 7.2, Page No. 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current through solenoid\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "H=5*10**3 #in Ampere-turns/m\n",
+ "l=10 #in cm\n",
+ "l=l*10**-2 #in meter\n",
+ "N=50 #no. of turns\n",
+ "n=N/l #no. of turns per unit length\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : H=n*i\n",
+ "i=H/n #in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current should be sent through solenoid in Ampere : %.0f\"%i)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current should be sent through solenoid in Ampere : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.3, page no.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Magnetic moment of rod\n",
+ "import math\n",
+ "#variable declaration\n",
+ "meu_r=1000 #relative permeability\n",
+ "n=5 #turns/cm\n",
+ "n=n*10**2 #turns/meter\n",
+ "i=0.5 #in Ampere\n",
+ "Volume=10**-4 #in m^3\n",
+ "\n",
+ "#calculation\n",
+ "I=(meu_r-1)*n*i #in Ampere\n",
+ "MagneticMoment=I*Volume #in Ameter^2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Magnetic moment of the rod in Ampere-meter^2 : %.0f\"%(math.ceil(MagneticMoment)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetic moment of the rod in Ampere-meter^2 : 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.4, Page No.253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Flux density magnetic intensity and permeability\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "l=30 #in cm\n",
+ "l=l*10**-2 #in meter\n",
+ "A=1 #in cm^2\n",
+ "A=A*10**-4 #in meter^2\n",
+ "N=300 #turns of wire\n",
+ "i=0.032 #in Ampere\n",
+ "FI_B=2*10**-6 #in weber\n",
+ "meu_o=4*math.pi*10**-7 #permeability of free space in weber/amp-meter\n",
+ "\n",
+ "#Calculations\n",
+ "B=FI_B/A #in weber/meter^2\n",
+ "H=N*i/l #in amp-turn/meter\n",
+ "meu=B/H #in weber/Amp-meter\n",
+ "meu_r=meu/meu_o #Relative Permeability\n",
+ "\n",
+ "#Result\n",
+ "print(\"Flux Density in weber/meter^2 :%.2f \"%B)\n",
+ "print(\"\\nmagnetic Intensity in amp-turn/meter : %.0f\"%H)\n",
+ "print(\"\\nPermeability in weber/amp-meter :%.2f *10^-4\"%(meu*10**4))\n",
+ "print(\"\\nRelative Permeability :%.3f \"%meu_r)\n",
+ "#Answer of relative permeability is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flux Density in weber/meter^2 :0.02 \n",
+ "\n",
+ "magnetic Intensity in amp-turn/meter : 32\n",
+ "\n",
+ "Permeability in weber/amp-meter :6.25 *10^-4\n",
+ "\n",
+ "Relative Permeability :497.359 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.5, Page No.253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Relative Permeability\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Xci_m=9.48*10**-9 #usceptibility of medium(unitless)\n",
+ "\n",
+ "#calculation\n",
+ "meu_r=1+Xci_m #relative permeability(unitless)\n",
+ "\n",
+ "#result\n",
+ "print(\"Relative Permeability : %.2f * 10^-9\\n\"%(meu_r*10**9));\n",
+ "print(\"i.e, Relative Permeability is sligtly greater than 1.\");"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative Permeability : 1000000009.48 * 10^-9\n",
+ "\n",
+ "i.e, Relative Permeability is sligtly greater than 1.\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.6, page No.253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Magnetising Force and material magnetisation\n",
+ "import math\n",
+ "\n",
+ "#variable declarationm\n",
+ "n=10 #turns/cm\n",
+ "n=n*10**2 #turns/meter\n",
+ "i=2 #in Ampere\n",
+ "B=1 #in weber/meter^2\n",
+ "meu_o=4*math.pi*10**-7 #permeability of free space in weber/amp-meter\n",
+ "\n",
+ "#Calculations\n",
+ "H=n*i #in amp-turn/meter\n",
+ "#Formula : B=meu_o*(H+I)\n",
+ "I=B/meu_o-H #in amp-turn/meter\n",
+ "meu_r=B/(meu_o*H) #relative permeability(unitless)\n",
+ "\n",
+ "#result\n",
+ "print(\"Magnetising Force in amp-turn/meter :%.0f \"%H)\n",
+ "print(\"\\nMagn etisation of material in amp-turn/meter %.2f * 10^5:\"%(math.ceil(I/10**3)/100))\n",
+ "print(\"\\nRelative Permeability : %.0f\"%(math.floor(meu_r)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetising Force in amp-turn/meter :2000 \n",
+ "\n",
+ "Magn etisation of material in amp-turn/meter 7.94 * 10^5:\n",
+ "\n",
+ "Relative Permeability : 397\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_7_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_7_1.ipynb
new file mode 100755
index 00000000..141aa7dd
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_7_1.ipynb
@@ -0,0 +1,287 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Magnetic Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.1, Page No.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Horizontal component of magnetic Intensity\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Bo=1.7*10**-5 #in weber/m^2\n",
+ "meu_o=4*math.pi*10**-7 #permeability of free space in weber/amp-meter\n",
+ "\n",
+ "#Calculations\n",
+ "H=Bo/meu_o #in A/m\n",
+ "\n",
+ "#result\n",
+ "print(\"Horizontal component of magnetic filed intensity in A/m : %.1f\"%H);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Horizontal component of magnetic filed intensity in A/m : 13.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "exammple 7.2, Page No. 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Current through solenoid\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "H=5*10**3 #in Ampere-turns/m\n",
+ "l=10 #in cm\n",
+ "l=l*10**-2 #in meter\n",
+ "N=50 #no. of turns\n",
+ "n=N/l #no. of turns per unit length\n",
+ "\n",
+ "#Calculation\n",
+ "#Formula : H=n*i\n",
+ "i=H/n #in Ampere\n",
+ "\n",
+ "#Result\n",
+ "print(\"Current should be sent through solenoid in Ampere : %.0f\"%i)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current should be sent through solenoid in Ampere : 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.3, page no.252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Magnetic moment of rod\n",
+ "import math\n",
+ "#variable declaration\n",
+ "meu_r=1000 #relative permeability\n",
+ "n=5 #turns/cm\n",
+ "n=n*10**2 #turns/meter\n",
+ "i=0.5 #in Ampere\n",
+ "Volume=10**-4 #in m^3\n",
+ "\n",
+ "#calculation\n",
+ "I=(meu_r-1)*n*i #in Ampere\n",
+ "MagneticMoment=I*Volume #in Ameter^2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Magnetic moment of the rod in Ampere-meter^2 : %.0f\"%(math.ceil(MagneticMoment)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetic moment of the rod in Ampere-meter^2 : 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.4, Page No.253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Flux density magnetic intensity and permeability\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "l=30 #in cm\n",
+ "l=l*10**-2 #in meter\n",
+ "A=1 #in cm^2\n",
+ "A=A*10**-4 #in meter^2\n",
+ "N=300 #turns of wire\n",
+ "i=0.032 #in Ampere\n",
+ "FI_B=2*10**-6 #in weber\n",
+ "meu_o=4*math.pi*10**-7 #permeability of free space in weber/amp-meter\n",
+ "\n",
+ "#Calculations\n",
+ "B=FI_B/A #in weber/meter^2\n",
+ "H=N*i/l #in amp-turn/meter\n",
+ "meu=B/H #in weber/Amp-meter\n",
+ "meu_r=meu/meu_o #Relative Permeability\n",
+ "\n",
+ "#Result\n",
+ "print(\"Flux Density in weber/meter^2 :%.2f \"%B)\n",
+ "print(\"\\nmagnetic Intensity in amp-turn/meter : %.0f\"%H)\n",
+ "print(\"\\nPermeability in weber/amp-meter :%.2f *10^-4\"%(meu*10**4))\n",
+ "print(\"\\nRelative Permeability :%.3f \"%meu_r)\n",
+ "#Answer of relative permeability is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flux Density in weber/meter^2 :0.02 \n",
+ "\n",
+ "magnetic Intensity in amp-turn/meter : 32\n",
+ "\n",
+ "Permeability in weber/amp-meter :6.25 *10^-4\n",
+ "\n",
+ "Relative Permeability :497.359 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.5, Page No.253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Relative Permeability\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Xci_m=9.48*10**-9 #usceptibility of medium(unitless)\n",
+ "\n",
+ "#calculation\n",
+ "meu_r=1+Xci_m #relative permeability(unitless)\n",
+ "\n",
+ "#result\n",
+ "print(\"Relative Permeability : %.2f * 10^-9\\n\"%(meu_r*10**9));\n",
+ "print(\"i.e, Relative Permeability is sligtly greater than 1.\");"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative Permeability : 1000000009.48 * 10^-9\n",
+ "\n",
+ "i.e, Relative Permeability is sligtly greater than 1.\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.6, page No.253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Magnetising Force and material magnetisation\n",
+ "import math\n",
+ "\n",
+ "#variable declarationm\n",
+ "n=10 #turns/cm\n",
+ "n=n*10**2 #turns/meter\n",
+ "i=2 #in Ampere\n",
+ "B=1 #in weber/meter^2\n",
+ "meu_o=4*math.pi*10**-7 #permeability of free space in weber/amp-meter\n",
+ "\n",
+ "#Calculations\n",
+ "H=n*i #in amp-turn/meter\n",
+ "#Formula : B=meu_o*(H+I)\n",
+ "I=B/meu_o-H #in amp-turn/meter\n",
+ "meu_r=B/(meu_o*H) #relative permeability(unitless)\n",
+ "\n",
+ "#result\n",
+ "print(\"Magnetising Force in amp-turn/meter :%.0f \"%H)\n",
+ "print(\"\\nMagn etisation of material in amp-turn/meter %.2f * 10^5:\"%(math.ceil(I/10**3)/100))\n",
+ "print(\"\\nRelative Permeability : %.0f\"%(math.floor(meu_r)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetising Force in amp-turn/meter :2000 \n",
+ "\n",
+ "Magn etisation of material in amp-turn/meter 7.94 * 10^5:\n",
+ "\n",
+ "Relative Permeability : 397\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_8.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_8.ipynb
new file mode 100755
index 00000000..2f0f9ff5
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_8.ipynb
@@ -0,0 +1,677 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Oscillators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.1, Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#feed bck factor\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "A=50.0 #unitless\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=1/A #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Barkhausen criterion for oscillator : Beta*A=1\")\n",
+ "print(\"Feedback Factor to make oscillator : %.2f\"%Beta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Barkhausen criterion for oscillator : Beta*A=1\n",
+ "Feedback Factor to make oscillator : 0.02\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.2, Page No.277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Range of variable capacitor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "L=100 #in uH\n",
+ "L=L*10**-6 #in H\n",
+ "f1=500.0 #in kHz\n",
+ "f1=f1*10**3 #in Hz\n",
+ "f2=1500.0 #in kHz\n",
+ "f2=f2*10**3 #in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : f=1/(2*%pi*sqrt(L*C))\n",
+ "C1=1/(4*math.pi**2*f1**2*L)\n",
+ "C2=1/(4*math.pi**2*f2**2*L)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Range of capacitor : %.0f pF to %.0f pF\"%(C2*10**12,math.ceil(C1*10**12)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Range of capacitor : 113 pF to 1014 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.3, page No.283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#C2 of colpitt oscilator\n",
+ "import math\n",
+ "#variable declaration\n",
+ "L=100.0 #in mH\n",
+ "L=L*10**-3 #in H\n",
+ "C1=0.1 #in uF\n",
+ "C1=C1*10**-6 #in F\n",
+ "f=100.0*10**3 #in Hz\n",
+ "f=f*10**3 #in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : f=1/(2*pi*sqrt(L*C))\n",
+ "C=1.0/(4*math.pi**2*f**2*L)\n",
+ "#Formula : C=C1*C2/(C1+C2)\n",
+ "C2=C*C1/(C1-C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C2 in farad : %.3f * 10^15\"%(C2*10**15))\n",
+ "#Note : Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C2 in farad : 0.025 * 10^15\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.4, page No. 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency of oscillation\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "R=100 #in kOhm\n",
+ "R=R*10**3 #in Ohm\n",
+ "C=0.01 #in uF\n",
+ "C=C*10**-6 #in F\n",
+ "\n",
+ "#calculations\n",
+ "fo=math.sqrt(6)/(2*math.pi*R*C)\n",
+ "\n",
+ "#result\n",
+ "print(\"Frequency of oscillation in Hz : %.3f\"%fo)\n",
+ "#Note : Answer in the book is not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillation in Hz : 389.848\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.5, Page No.288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Amplifier voltage gain\n",
+ "import math\n",
+ "\n",
+ "print(\"Put alfa=sqrt(6) to find the gain\");\n",
+ "alfa=math.sqrt(6) #unitless\n",
+ "\n",
+ "#calculation\n",
+ "Beta=1/(1-5*alfa**2);\n",
+ "#Barkhausen critera : A*|Beta|>=1\n",
+ "Beta=-Beta\n",
+ "A=1/Beta\n",
+ "\n",
+ "#Result\n",
+ "print(\"Minimum Gain of Amplifier must be :%.0f \"%A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Put alfa=sqrt(6) to find the gain\n",
+ "Minimum Gain of Amplifier must be :29 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.6, Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency of oscillation and min current gain\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=50.0 #in kohm\n",
+ "R1=R1*10**3 #in ohm\n",
+ "C1=0.001 #in uF\n",
+ "C1=C1*10**-6 #in F\n",
+ "R2=1.0 #in kohm\n",
+ "R2=R2*10**3 #in ohm\n",
+ "C2=0.01 #in uF\n",
+ "C2=C2*10**-6 #in F\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "#Formula : f=1/(2*%pi*sqrt(C1*C2*R1*R2))\n",
+ "f=1/(2*math.pi*math.sqrt(C1*C2*R1*R2))\n",
+ "\n",
+ "#Part (ii)\n",
+ "CurrentGain=1+C2/C1+R1/R2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Frequency of oscillations in kHz :%.3f \"%(f/1000.0))\n",
+ "print(\"Current Gain :%.0f \"%CurrentGain)\n",
+ "#Note:Answer for Frequency of oscillations is incorrect in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillations in kHz :7.118 \n",
+ "Current Gain :61 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.7, Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resistnce to cover frequency range\n",
+ "import math\n",
+ "#variable declaration\n",
+ "fmin=20.0 #in Hz\n",
+ "fmax=20.0 #in kHz\n",
+ "Cmin=30.0 #in pF\n",
+ "Cmax=300.0 #in pF\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : fo=1/(2*%pi*R*C))\n",
+ "R=1/(2*math.pi*fmin*Cmax*10**-12)\n",
+ "\n",
+ "#To cover frequency range from 200Hz to 2kHz R should be decrease by factor of 10\n",
+ "R_dash = R/10.0 \n",
+ "#TO cover the frequency range from 2kHz to 20kHz, R should be decrease by factor of 100\n",
+ "R_dash_2= R/100.0\n",
+ "#Result\n",
+ "print(\"Minimum Fequeny correspond to maximum capacitance.\")\n",
+ "print(\"Required resistance in Mohm : %.1f\"%(R/10**6))\n",
+ "print(\"\\nR_dash in MOhm = %.2f (for frequency range 200Hz to 2kHz)\"%(R_dash/10**6))\n",
+ "print(\"\\nR_dash_2 in kOhm = %.0f(for frequency range 2kHz to 20kHz)\"%(R_dash_2*1000//10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum Fequeny correspond to maximum capacitance.\n",
+ "Required resistance in Mohm : 26.5\n",
+ "\n",
+ "R_dash in MOhm = 2.65 (for frequency range 200Hz to 2kHz)\n",
+ "\n",
+ "R_dash_2 in kOhm = 265(for frequency range 2kHz to 20kHz)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.8, Page No.296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resonant Frequency\n",
+ "import math\n",
+ "#variable declaration\n",
+ "f=500.0 #in kHz\n",
+ "T1=50.0 #in degree C\n",
+ "T2=60.0 #in degree C\n",
+ "TC=-20.0 #in ppm/degree C\n",
+ "\n",
+ "#Calculations\n",
+ "ChangeInFreq=TC*(f*10**-3)*(T1-T2) #in Hz\n",
+ "ResonantFreq=f*1000-ChangeInFreq #in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resonant frequency in kHz : %.1f\"%(ResonantFreq/1000))\n",
+ "#Note : answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency in kHz : 499.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.9, Page No.296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resonant Frequency\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "f=450.0 #in kHz\n",
+ "T1=30.0 #in degree C\n",
+ "T2=50.0 #in degree C\n",
+ "TC=-10.0 #in ppm/degree C\n",
+ "\n",
+ "#Calculations\n",
+ "PercentChange=-TC*100/10**6 #in %\n",
+ "TotalChangeInFreq=(PercentChange/100)*(f*10**3)*(T2-T1) #in Hz\n",
+ "ResonantFreq=f*1000-TotalChangeInFreq #in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resonant frequency in kHz :%.3f \"%(ResonantFreq/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency in kHz :449.910 \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.10, Page No.297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Parallel and series resonant frequencies\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L=0.5 #in H\n",
+ "C=0.05 #in pF\n",
+ "R=1 #in kohm\n",
+ "Cm=1 #in pF\n",
+ "\n",
+ "#Calculations\n",
+ "fs=1/(2*math.pi*math.sqrt(L*C*10**-12))\n",
+ "fp=1/(2*math.pi*math.sqrt((L*C*10**-12*Cm*10**-12)/(C*10**-12+Cm*10**-12)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Series resonant frequency in MHz :%.3f\"%(fs/10**6))\n",
+ "print(\"Parallel resonant frequency in MHz :%.3f\"%(fp/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Series resonant frequency in MHz :1.007\n",
+ "Parallel resonant frequency in MHz :1.031\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.1, Page No.302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of L\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L2=0.4 #in mH\n",
+ "C=0.004 #in \u00b5F\n",
+ "f=120 #in KHz\n",
+ "L1=1/(4*math.pi**2*(f*10**3)**2*C*10**-6)-L2*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of L1(in mH) :%.2f\"%(L1*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of L1(in mH) :0.04\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.2, page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of C and hfe\n",
+ "import math\n",
+ "#variable declaration\n",
+ "fo=10.0 #in KHz\n",
+ "R1=25.0 #in kohm\n",
+ "R2=60.0 #in kohm\n",
+ "Rc=40.0 #in kohm\n",
+ "R=7.1 #in kohm\n",
+ "hie=1.8 #in kohm\n",
+ "\n",
+ "#Calculations\n",
+ "C=1/(2*math.pi*fo*10**3*R*10**3*math.sqrt(6+4*Rc/R))\n",
+ "hfe=23+29*R/Rc+4*Rc/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of Capacitor(in nF) %.3f\"%(C*10**9))\n",
+ "print(\"Value of hfe is \u2265 %.3f\"%hfe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor(in nF) 0.420\n",
+ "Value of hfe is \u2265 50.683\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.3, Page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of Capacitor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R=100.0 #in kohm\n",
+ "fo=10.0 #in KHz\n",
+ "\n",
+ "#Calculations\n",
+ "C=1/(2*math.pi*fo*10**3*R*10**3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of Capacitor(in pF) :%.0f\"%(C*10**12))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor(in pF) :159\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.4, page No.304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Various parameter of colpitt oscillator\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "L=40.0 #in mH\n",
+ "C1=100.0 #in pF\n",
+ "C2=500.0 #in pF\n",
+ "Vout=10.0 #in volt\n",
+ "\n",
+ "#Calculations\n",
+ "fo=1/(2*math.pi*math.sqrt(L*10**-3*C1*10**-12*C2*10**-12/(C1*10**-12+C2*10**-12)))\n",
+ "print(\"Frequency of oscillation (in KHz) :%.1f\"%(fo*10**-3))\n",
+ "Vf=Vout*C1/C2\n",
+ "Gain=C2/C1\n",
+ "Gain=10 #given\n",
+ "C1=C2/Gain #in pF\n",
+ "fo=1/(2*math.pi*math.sqrt(L*10**-3*C1*10**-12*C2*10**-12/(C1*10**-12+C2*10**-12)))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print(\"Feedback voltage in volt :%.0f\"%Vf)\n",
+ "print(\"Minimum Gain is %.0f\"%Gain)\n",
+ "print(\"For a gain of 10 C1 in pF is :%.0f\"%C1)\n",
+ "print(\"New frequency of oscillation (in KHz) :%.3f\"%(fo*10**-3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillation (in KHz) :87.2\n",
+ "Feedback voltage in volt :2\n",
+ "Minimum Gain is 10\n",
+ "For a gain of 10 C1 in pF is :50\n",
+ "New frequency of oscillation (in KHz) :118.032\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.5, Page No.305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resonant frequencies and Q factor\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L=0.5 #in H\n",
+ "Cs=0.06 #in pF\n",
+ "Cp=1.0 #in pF\n",
+ "R=5.0 #in Kohm\n",
+ "\n",
+ "#calculations\n",
+ "fs=1/(2*math.pi*math.sqrt(L*Cs*10**-12))\n",
+ "Q=2*math.pi*fs*L/(R*10**3)\n",
+ "print(\"Seies resonance frequency(in KHz): %.1f\"%(fs/10**3))\n",
+ "print(\"Q-factor f the crystal at fs is %.0f\"%Q)\n",
+ "fp=(1/(2*math.pi))*math.sqrt((Cs*10**-12+Cp*10**-12)/(L*Cs*10**-12*Cp*10**-12))\n",
+ "Q=2*math.pi*fp*L/(R*10**3)\n",
+ "print(\"\\nSeies resonance frequency(in KHz) : %.0f\"%(fp/10**3))\n",
+ "print(\"Q-factor f the crystal at fs is %.0f\"%Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Seies resonance frequency(in KHz): 918.9\n",
+ "Q-factor f the crystal at fs is 577\n",
+ "\n",
+ "Seies resonance frequency(in KHz) : 946\n",
+ "Q-factor f the crystal at fs is 594\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_8_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_8_1.ipynb
new file mode 100755
index 00000000..2f0f9ff5
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_8_1.ipynb
@@ -0,0 +1,677 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Oscillators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.1, Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#feed bck factor\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "A=50.0 #unitless\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=1/A #unitless\n",
+ "\n",
+ "#Result\n",
+ "print(\"Barkhausen criterion for oscillator : Beta*A=1\")\n",
+ "print(\"Feedback Factor to make oscillator : %.2f\"%Beta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Barkhausen criterion for oscillator : Beta*A=1\n",
+ "Feedback Factor to make oscillator : 0.02\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.2, Page No.277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Range of variable capacitor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "L=100 #in uH\n",
+ "L=L*10**-6 #in H\n",
+ "f1=500.0 #in kHz\n",
+ "f1=f1*10**3 #in Hz\n",
+ "f2=1500.0 #in kHz\n",
+ "f2=f2*10**3 #in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : f=1/(2*%pi*sqrt(L*C))\n",
+ "C1=1/(4*math.pi**2*f1**2*L)\n",
+ "C2=1/(4*math.pi**2*f2**2*L)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Range of capacitor : %.0f pF to %.0f pF\"%(C2*10**12,math.ceil(C1*10**12)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Range of capacitor : 113 pF to 1014 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.3, page No.283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#C2 of colpitt oscilator\n",
+ "import math\n",
+ "#variable declaration\n",
+ "L=100.0 #in mH\n",
+ "L=L*10**-3 #in H\n",
+ "C1=0.1 #in uF\n",
+ "C1=C1*10**-6 #in F\n",
+ "f=100.0*10**3 #in Hz\n",
+ "f=f*10**3 #in Hz\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : f=1/(2*pi*sqrt(L*C))\n",
+ "C=1.0/(4*math.pi**2*f**2*L)\n",
+ "#Formula : C=C1*C2/(C1+C2)\n",
+ "C2=C*C1/(C1-C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C2 in farad : %.3f * 10^15\"%(C2*10**15))\n",
+ "#Note : Answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C2 in farad : 0.025 * 10^15\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.4, page No. 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency of oscillation\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "R=100 #in kOhm\n",
+ "R=R*10**3 #in Ohm\n",
+ "C=0.01 #in uF\n",
+ "C=C*10**-6 #in F\n",
+ "\n",
+ "#calculations\n",
+ "fo=math.sqrt(6)/(2*math.pi*R*C)\n",
+ "\n",
+ "#result\n",
+ "print(\"Frequency of oscillation in Hz : %.3f\"%fo)\n",
+ "#Note : Answer in the book is not accurate."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillation in Hz : 389.848\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.5, Page No.288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Amplifier voltage gain\n",
+ "import math\n",
+ "\n",
+ "print(\"Put alfa=sqrt(6) to find the gain\");\n",
+ "alfa=math.sqrt(6) #unitless\n",
+ "\n",
+ "#calculation\n",
+ "Beta=1/(1-5*alfa**2);\n",
+ "#Barkhausen critera : A*|Beta|>=1\n",
+ "Beta=-Beta\n",
+ "A=1/Beta\n",
+ "\n",
+ "#Result\n",
+ "print(\"Minimum Gain of Amplifier must be :%.0f \"%A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Put alfa=sqrt(6) to find the gain\n",
+ "Minimum Gain of Amplifier must be :29 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.6, Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Frequency of oscillation and min current gain\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R1=50.0 #in kohm\n",
+ "R1=R1*10**3 #in ohm\n",
+ "C1=0.001 #in uF\n",
+ "C1=C1*10**-6 #in F\n",
+ "R2=1.0 #in kohm\n",
+ "R2=R2*10**3 #in ohm\n",
+ "C2=0.01 #in uF\n",
+ "C2=C2*10**-6 #in F\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (i)\n",
+ "#Formula : f=1/(2*%pi*sqrt(C1*C2*R1*R2))\n",
+ "f=1/(2*math.pi*math.sqrt(C1*C2*R1*R2))\n",
+ "\n",
+ "#Part (ii)\n",
+ "CurrentGain=1+C2/C1+R1/R2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Frequency of oscillations in kHz :%.3f \"%(f/1000.0))\n",
+ "print(\"Current Gain :%.0f \"%CurrentGain)\n",
+ "#Note:Answer for Frequency of oscillations is incorrect in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillations in kHz :7.118 \n",
+ "Current Gain :61 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.7, Page No.292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resistnce to cover frequency range\n",
+ "import math\n",
+ "#variable declaration\n",
+ "fmin=20.0 #in Hz\n",
+ "fmax=20.0 #in kHz\n",
+ "Cmin=30.0 #in pF\n",
+ "Cmax=300.0 #in pF\n",
+ "\n",
+ "#Calculations\n",
+ "#Formula : fo=1/(2*%pi*R*C))\n",
+ "R=1/(2*math.pi*fmin*Cmax*10**-12)\n",
+ "\n",
+ "#To cover frequency range from 200Hz to 2kHz R should be decrease by factor of 10\n",
+ "R_dash = R/10.0 \n",
+ "#TO cover the frequency range from 2kHz to 20kHz, R should be decrease by factor of 100\n",
+ "R_dash_2= R/100.0\n",
+ "#Result\n",
+ "print(\"Minimum Fequeny correspond to maximum capacitance.\")\n",
+ "print(\"Required resistance in Mohm : %.1f\"%(R/10**6))\n",
+ "print(\"\\nR_dash in MOhm = %.2f (for frequency range 200Hz to 2kHz)\"%(R_dash/10**6))\n",
+ "print(\"\\nR_dash_2 in kOhm = %.0f(for frequency range 2kHz to 20kHz)\"%(R_dash_2*1000//10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum Fequeny correspond to maximum capacitance.\n",
+ "Required resistance in Mohm : 26.5\n",
+ "\n",
+ "R_dash in MOhm = 2.65 (for frequency range 200Hz to 2kHz)\n",
+ "\n",
+ "R_dash_2 in kOhm = 265(for frequency range 2kHz to 20kHz)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.8, Page No.296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resonant Frequency\n",
+ "import math\n",
+ "#variable declaration\n",
+ "f=500.0 #in kHz\n",
+ "T1=50.0 #in degree C\n",
+ "T2=60.0 #in degree C\n",
+ "TC=-20.0 #in ppm/degree C\n",
+ "\n",
+ "#Calculations\n",
+ "ChangeInFreq=TC*(f*10**-3)*(T1-T2) #in Hz\n",
+ "ResonantFreq=f*1000-ChangeInFreq #in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resonant frequency in kHz : %.1f\"%(ResonantFreq/1000))\n",
+ "#Note : answer in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency in kHz : 499.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.9, Page No.296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resonant Frequency\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "f=450.0 #in kHz\n",
+ "T1=30.0 #in degree C\n",
+ "T2=50.0 #in degree C\n",
+ "TC=-10.0 #in ppm/degree C\n",
+ "\n",
+ "#Calculations\n",
+ "PercentChange=-TC*100/10**6 #in %\n",
+ "TotalChangeInFreq=(PercentChange/100)*(f*10**3)*(T2-T1) #in Hz\n",
+ "ResonantFreq=f*1000-TotalChangeInFreq #in Hz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resonant frequency in kHz :%.3f \"%(ResonantFreq/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency in kHz :449.910 \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.10, Page No.297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Parallel and series resonant frequencies\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L=0.5 #in H\n",
+ "C=0.05 #in pF\n",
+ "R=1 #in kohm\n",
+ "Cm=1 #in pF\n",
+ "\n",
+ "#Calculations\n",
+ "fs=1/(2*math.pi*math.sqrt(L*C*10**-12))\n",
+ "fp=1/(2*math.pi*math.sqrt((L*C*10**-12*Cm*10**-12)/(C*10**-12+Cm*10**-12)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Series resonant frequency in MHz :%.3f\"%(fs/10**6))\n",
+ "print(\"Parallel resonant frequency in MHz :%.3f\"%(fp/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Series resonant frequency in MHz :1.007\n",
+ "Parallel resonant frequency in MHz :1.031\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.1, Page No.302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of L\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L2=0.4 #in mH\n",
+ "C=0.004 #in \u00b5F\n",
+ "f=120 #in KHz\n",
+ "L1=1/(4*math.pi**2*(f*10**3)**2*C*10**-6)-L2*10**-3\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of L1(in mH) :%.2f\"%(L1*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of L1(in mH) :0.04\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.2, page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of C and hfe\n",
+ "import math\n",
+ "#variable declaration\n",
+ "fo=10.0 #in KHz\n",
+ "R1=25.0 #in kohm\n",
+ "R2=60.0 #in kohm\n",
+ "Rc=40.0 #in kohm\n",
+ "R=7.1 #in kohm\n",
+ "hie=1.8 #in kohm\n",
+ "\n",
+ "#Calculations\n",
+ "C=1/(2*math.pi*fo*10**3*R*10**3*math.sqrt(6+4*Rc/R))\n",
+ "hfe=23+29*R/Rc+4*Rc/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of Capacitor(in nF) %.3f\"%(C*10**9))\n",
+ "print(\"Value of hfe is \u2265 %.3f\"%hfe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor(in nF) 0.420\n",
+ "Value of hfe is \u2265 50.683\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.3, Page No.303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of Capacitor\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R=100.0 #in kohm\n",
+ "fo=10.0 #in KHz\n",
+ "\n",
+ "#Calculations\n",
+ "C=1/(2*math.pi*fo*10**3*R*10**3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of Capacitor(in pF) :%.0f\"%(C*10**12))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor(in pF) :159\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.4, page No.304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Various parameter of colpitt oscillator\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "L=40.0 #in mH\n",
+ "C1=100.0 #in pF\n",
+ "C2=500.0 #in pF\n",
+ "Vout=10.0 #in volt\n",
+ "\n",
+ "#Calculations\n",
+ "fo=1/(2*math.pi*math.sqrt(L*10**-3*C1*10**-12*C2*10**-12/(C1*10**-12+C2*10**-12)))\n",
+ "print(\"Frequency of oscillation (in KHz) :%.1f\"%(fo*10**-3))\n",
+ "Vf=Vout*C1/C2\n",
+ "Gain=C2/C1\n",
+ "Gain=10 #given\n",
+ "C1=C2/Gain #in pF\n",
+ "fo=1/(2*math.pi*math.sqrt(L*10**-3*C1*10**-12*C2*10**-12/(C1*10**-12+C2*10**-12)))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print(\"Feedback voltage in volt :%.0f\"%Vf)\n",
+ "print(\"Minimum Gain is %.0f\"%Gain)\n",
+ "print(\"For a gain of 10 C1 in pF is :%.0f\"%C1)\n",
+ "print(\"New frequency of oscillation (in KHz) :%.3f\"%(fo*10**-3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency of oscillation (in KHz) :87.2\n",
+ "Feedback voltage in volt :2\n",
+ "Minimum Gain is 10\n",
+ "For a gain of 10 C1 in pF is :50\n",
+ "New frequency of oscillation (in KHz) :118.032\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Miscellaneous example 8.5, Page No.305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resonant frequencies and Q factor\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L=0.5 #in H\n",
+ "Cs=0.06 #in pF\n",
+ "Cp=1.0 #in pF\n",
+ "R=5.0 #in Kohm\n",
+ "\n",
+ "#calculations\n",
+ "fs=1/(2*math.pi*math.sqrt(L*Cs*10**-12))\n",
+ "Q=2*math.pi*fs*L/(R*10**3)\n",
+ "print(\"Seies resonance frequency(in KHz): %.1f\"%(fs/10**3))\n",
+ "print(\"Q-factor f the crystal at fs is %.0f\"%Q)\n",
+ "fp=(1/(2*math.pi))*math.sqrt((Cs*10**-12+Cp*10**-12)/(L*Cs*10**-12*Cp*10**-12))\n",
+ "Q=2*math.pi*fp*L/(R*10**3)\n",
+ "print(\"\\nSeies resonance frequency(in KHz) : %.0f\"%(fp/10**3))\n",
+ "print(\"Q-factor f the crystal at fs is %.0f\"%Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Seies resonance frequency(in KHz): 918.9\n",
+ "Q-factor f the crystal at fs is 577\n",
+ "\n",
+ "Seies resonance frequency(in KHz) : 946\n",
+ "Q-factor f the crystal at fs is 594\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_9.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_9.ipynb
new file mode 100755
index 00000000..d6016975
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_9.ipynb
@@ -0,0 +1,155 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Uninjunction Transistor"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.1, Page No.310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Stand of voltage and peak point Voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "\n",
+ "VBB=20 #in volt\n",
+ "VB=0.7 #in volt(For Si)\n",
+ "ETA=0.6 #intrinsic stand off ratio\n",
+ "\n",
+ "#Part (i)\n",
+ "#calculations\n",
+ "StandOffVoltage=ETA*VBB; #in volt\n",
+ "\n",
+ "#Resuly\n",
+ "print(\"\\n(i)\\nStand Off Voltage in volts :%.0f\"%StandOffVoltage)\n",
+ "\n",
+ "#Part (ii)\n",
+ "#calculations\n",
+ "VP=ETA*VBB+VB #in volts\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\n(ii)\\nPeak point Voltage in volts : %.1f\"%VP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "Stand Off Voltage in volts :12\n",
+ "\n",
+ "(ii)\n",
+ "Peak point Voltage in volts : 12.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.2, Page no. 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Time period of sawtooth waveform\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "VP=10.0 #in volt\n",
+ "R=100.0 #in Kohm\n",
+ "C=1000.0 #in pF\n",
+ "VBB=20.0 #in Volts\n",
+ "ETA=VP/VBB #intrinsic stand off ratio\n",
+ "\n",
+ "#calculations\n",
+ "T=R*10**3*C*10**-12*math.log(1/(1-ETA)) #in sec\n",
+ "\n",
+ "#Resullt\n",
+ "print(\"Time period of sawtooth wave in micro seconds : %.2f\"%(T*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time period of sawtooth wave in micro seconds : 69.31\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.3, Page No.311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resistances RB1 and RB2\n",
+ "import math\n",
+ "#variable declaration\n",
+ "RBB=10 #in Kohm\n",
+ "ETA=0.6 #intrinsic stand off ratio\n",
+ "\n",
+ "#calculation\n",
+ "RB1=ETA*RBB #in Kohm\n",
+ "RB2=RBB-RB1 #in Kohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resistance RB1 in Kohm :%.0f\"%RB1)\n",
+ "print(\"Resistance RB2 in Kohm :%.0f\"%RB2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance RB1 in Kohm :6\n",
+ "Resistance RB2 in Kohm :4\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/EDC_ch_9_1.ipynb b/Electronic_Devices_And_Circuits/EDC_ch_9_1.ipynb
new file mode 100755
index 00000000..d6016975
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/EDC_ch_9_1.ipynb
@@ -0,0 +1,155 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Uninjunction Transistor"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.1, Page No.310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Stand of voltage and peak point Voltage\n",
+ "import math\n",
+ "#variable declaration\n",
+ "\n",
+ "VBB=20 #in volt\n",
+ "VB=0.7 #in volt(For Si)\n",
+ "ETA=0.6 #intrinsic stand off ratio\n",
+ "\n",
+ "#Part (i)\n",
+ "#calculations\n",
+ "StandOffVoltage=ETA*VBB; #in volt\n",
+ "\n",
+ "#Resuly\n",
+ "print(\"\\n(i)\\nStand Off Voltage in volts :%.0f\"%StandOffVoltage)\n",
+ "\n",
+ "#Part (ii)\n",
+ "#calculations\n",
+ "VP=ETA*VBB+VB #in volts\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\n(ii)\\nPeak point Voltage in volts : %.1f\"%VP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "Stand Off Voltage in volts :12\n",
+ "\n",
+ "(ii)\n",
+ "Peak point Voltage in volts : 12.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.2, Page no. 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Time period of sawtooth waveform\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "VP=10.0 #in volt\n",
+ "R=100.0 #in Kohm\n",
+ "C=1000.0 #in pF\n",
+ "VBB=20.0 #in Volts\n",
+ "ETA=VP/VBB #intrinsic stand off ratio\n",
+ "\n",
+ "#calculations\n",
+ "T=R*10**3*C*10**-12*math.log(1/(1-ETA)) #in sec\n",
+ "\n",
+ "#Resullt\n",
+ "print(\"Time period of sawtooth wave in micro seconds : %.2f\"%(T*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time period of sawtooth wave in micro seconds : 69.31\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.3, Page No.311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resistances RB1 and RB2\n",
+ "import math\n",
+ "#variable declaration\n",
+ "RBB=10 #in Kohm\n",
+ "ETA=0.6 #intrinsic stand off ratio\n",
+ "\n",
+ "#calculation\n",
+ "RB1=ETA*RBB #in Kohm\n",
+ "RB2=RBB-RB1 #in Kohm\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resistance RB1 in Kohm :%.0f\"%RB1)\n",
+ "print(\"Resistance RB2 in Kohm :%.0f\"%RB2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance RB1 in Kohm :6\n",
+ "Resistance RB2 in Kohm :4\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/README.txt b/Electronic_Devices_And_Circuits/README.txt
new file mode 100755
index 00000000..c0612b7b
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Laxman Sole
+Course: btech
+College/Institute/Organization: Vishwakarma Institute of Technology, Pune
+Department/Designation: Electronics Engineering
+Book Title: Electronic Devices And Circuits
+Author: Satya Prakash, Saurabh Rawat
+Publisher: Anand Publications, New Delhi
+Year of publication: 2012
+Isbn: 978-93-80225-48-7
+Edition: 3 \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits/screenshots/2.png b/Electronic_Devices_And_Circuits/screenshots/2.png
new file mode 100755
index 00000000..9b1a88e3
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/screenshots/2.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits/screenshots/3.png b/Electronic_Devices_And_Circuits/screenshots/3.png
new file mode 100755
index 00000000..2c74c55e
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/screenshots/3.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits/screenshots/6_6.png b/Electronic_Devices_And_Circuits/screenshots/6_6.png
new file mode 100755
index 00000000..c49efd24
--- /dev/null
+++ b/Electronic_Devices_And_Circuits/screenshots/6_6.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/Chapter1.ipynb b/Electronic_Devices_and_Circuits/Chapter1.ipynb
new file mode 100755
index 00000000..47b8b5fc
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter1.ipynb
@@ -0,0 +1,307 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 01 : Basic semiconductor and pn junction theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page No 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Nd=3*10**14\n",
+ "Na=0.5*10**14 #all in atom/cm**3\n",
+ "ni=1.5*10**10\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"resultant densities of free electrons and hole\")\n",
+ "ne=(-(Na-Nd)+(math.sqrt(((Na-Nd)**2)+4*ni**2)))/2\n",
+ "print(\"Electron densities = %.1f x 10^14 electron/cm**3\" %(ne/(10**14))) #electron densities in electron/cm**3\n",
+ "Nd>Na\n",
+ "n=Nd-Na\n",
+ "print(n)\n",
+ "p=(ni**2)/n\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print(\"densities of hole is =%.1f X 10^6 dhole/cm3\" %(p/(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant densities of free electrons and hole\n",
+ "Electron densities = 2.5 x 10^14 electron/cm**3\n",
+ "2.5e+14\n",
+ "densities of hole is =0.9 X 10^6 dhole/cm3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page No 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "l=1*10**-3\n",
+ "E=10\n",
+ "\n",
+ "#Calculations\n",
+ "un=1500*10**-4\n",
+ "up=500*10-4\n",
+ "Vn=-(un*E)/l\n",
+ "\n",
+ "#Results\n",
+ "print(\"drift current is =%.2dm/s\\n\" %Vn)\n",
+ "print(\"drift current of hole\")\n",
+ "Vp=(up*E)/l\n",
+ "print(\"drift current is =%.f dm/s\\n\" %(Vp/10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drift current is =-1500m/s\n",
+ "\n",
+ "drift current of hole\n",
+ "drift current is =500 dm/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "l=1*10**-3\n",
+ "a=0.1*10**-4\n",
+ "ni=1.5*10**10\n",
+ "p=1.5*10**10\n",
+ "un=1500\n",
+ "up=500 #in cm3/V.s\n",
+ "q=1.6*10**-19\n",
+ "\n",
+ "#Calculations\n",
+ "m=q*((ni*un)+(p*up))*10**6\n",
+ "print( \"mobility is =%.1fmicro/ohmcm\" %m)\n",
+ "R=l/(m*a)\n",
+ "print(\" resistance is =%.1fMohm\" %R)\n",
+ "\n",
+ "#for doped material\n",
+ "n=8*10**13\n",
+ "p=(ni**2)/n\n",
+ "m=q*((n*un)+(p*up))\n",
+ "\n",
+ "#Results\n",
+ "print(\"mobility is =%3.4f/ohmcm\" %m)\n",
+ "R=l/(m*a)\n",
+ "print(\" resistance is %.2f Kohm\" %(R/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mobility is =4.8micro/ohmcm\n",
+ " resistance is =20.8Mohm\n",
+ "mobility is =0.0192/ohmcm\n",
+ " resistance is 5.21 Kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page No 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T1=25.0\n",
+ "T2=35.0\n",
+ "T3=45.0\n",
+ "I0=30.0 # nA\n",
+ "print(\"I0(35)=I0*2**(T2-T1)/10\")\n",
+ "#on solving\n",
+ "I035=I0*2**((T2-T1)/10)\n",
+ "print(\"Current at 35c is =%.2f nA\\n\" %I035)\n",
+ "print(\"I0(45)=I0*2**(T3-T1)/10\")\n",
+ "#on solving\n",
+ "I045=30*2**2\n",
+ "print(\"current at 45c is =%.2f nA\\n\" %I045)\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I0(35)=I0*2**(T2-T1)/10\n",
+ "Current at 35c is =60.00 nA\n",
+ "\n",
+ "I0(45)=I0*2**(T3-T1)/10\n",
+ "current at 45c is =120.00 nA\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I0=30\n",
+ "Vd=0.7\n",
+ "n=2\n",
+ "\n",
+ "#Calculations\n",
+ "Vt=26.0*10**-3\n",
+ "k=Vd/(n*Vt)\n",
+ "Id=I0*((2.7**k)-1)*10**-6 #Junction current\n",
+ "print(\" a) Forward bais current is =%.2f mA\\n\" %Id)\n",
+ "Vd=-10 #reverse bais\n",
+ "k=Vd/(n*Vt)\n",
+ "Id=I0*((2.7**k)-1)\n",
+ "\n",
+ "#Results\n",
+ "print(\" b) Forward bais current is =%.2f nA\" %Id)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " a) Forward bais current is =19.23 mA\n",
+ "\n",
+ " b) Forward bais current is =-30.00 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page No 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=.1*10**-3\n",
+ "n=2\n",
+ "vt=26*10**-3\n",
+ "I0=30*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=(n*Vt)*math.log(Id/I0)*10**3\n",
+ "print(\" a) Forward bais current is =%.2f mV\\n\" %Vd)\n",
+ "Id=10*10**-3\n",
+ "Vd=(n*Vt)*math.log(Id/I0)*10**3\n",
+ "\n",
+ "#Results\n",
+ "print(\"b) forward bais current is %dmV\\n\" %Vd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " a) Forward bais current is =421.81 mV\n",
+ "\n",
+ "b) forward bais current is 661mV\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter10.ipynb b/Electronic_Devices_and_Circuits/Chapter10.ipynb
new file mode 100755
index 00000000..b92c4b1d
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter10.ipynb
@@ -0,0 +1,587 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : FET biasing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page No 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=22.0\n",
+ "Rd=2.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Id=0\")\n",
+ "Id=0\n",
+ "Vds=Vdd-Id*Rd\n",
+ "print('at point A Vds = %.2f V' %Vds)\n",
+ "Vds=0\n",
+ "Id=Vdd/Rd\n",
+ "\n",
+ "#Results\n",
+ "print(\"when Vds=0\")\n",
+ "print('at point A Id = %.2f mA' %(Id*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0\n",
+ "at point A Vds = 22.00 V\n",
+ "when Vds=0\n",
+ "at point A Id = 11.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Idss=8.0*10**-3\n",
+ "Vpmax=6.0\n",
+ "Vgs=2.3\n",
+ "Vgsmax=6\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Idss*(1-(Vgs/Vgsmax))**2\n",
+ "Idss=4*10**-3\n",
+ "Vp=3\n",
+ "Idmin=Idss*(1-(Vgs/Vp))**2\n",
+ "\n",
+ "#Results\n",
+ "print('at point A Idmin = %.2f mA' %(Idmin*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at point A Idmin = 0.22 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vdd=25.0\n",
+ "R2=1.0*10**6\n",
+ "R1=3.8*10**6\n",
+ "Rs=2.5*10**3\n",
+ "Rd=2.5*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"when Id=0\")\n",
+ "Id=0\n",
+ "Vgs=Vg-Id*Rs\n",
+ "print(\" plot point A at Id=0\")\n",
+ "print('at point A Vds = %.2f A/s' %Vds)\n",
+ "Vgs=0\n",
+ "Id=Vg/Rs\n",
+ "print(\" plot point B Vgs=0\")\n",
+ "print('at point A Id = %.2f A/s' %Id)\n",
+ "Idmax=3*10**-3\n",
+ "Idmin=2.3*10**-3\n",
+ "Vdsmin=Vdd-Idmax*(Rd+Rs)\n",
+ "Vdsmax=Vdd-Idmin*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vdsmax = %.2f V' %(Vdsmax))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0\n",
+ " plot point A at Id=0\n",
+ "at point A Vds = 0.00 A/s\n",
+ " plot point B Vgs=0\n",
+ "at point A Id = 0.00 A/s\n",
+ "The value of Vdsmax = 13.50 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Id=3.0*10**-3\n",
+ "Vgs=-2.3\n",
+ "Vdsmin=10.0\n",
+ "Vdd=25.0\n",
+ "Vgsoff=-6\n",
+ "Idss=8.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Rd=(Vdd-Vdsmin)/Id\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Td = %.2f kohm' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Td = 5.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vgs=2.3\n",
+ "\n",
+ "#Calculations\n",
+ "Rs=Vgs/Id\n",
+ "Rd=((Vdd-Vds)/Id)-Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd = %.2f ohm' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd = 4.23 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page No 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vg=5.2\n",
+ "Vgsoff=-6\n",
+ "Idss=8.0*10**-3\n",
+ "R2=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "R=(Vdd-Vds)/Id#R=(Rs+Rd)/2\n",
+ "Rd=R/2\n",
+ "Rs=Rd\n",
+ "Vgs=Id*Rs\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vs=Id*Rs\n",
+ "Vg=Vs-(-Vgs)\n",
+ "R1=((Vdd-Vg)*R2)/Vg\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R = %.2f Mohm' %(R1/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R = 3.83 Mohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vee=20.0\n",
+ "Id=3.0*10**-3\n",
+ "Vds=9.0\n",
+ "Vbe=.7\n",
+ "Vb=0\n",
+ "Ve=Vee-Vbe\n",
+ "\n",
+ "#Calculations\n",
+ "Re=Ve/Id\n",
+ "Re=6.8*10**3#satnadard value\n",
+ "Id=Ve/Re\n",
+ "Idss=16*10**-3\n",
+ "Vgsoff=-8\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vs=Vb-Vgs\n",
+ "Vrd=Vee-Vds-Vs\n",
+ "Rd=Vrd/Id\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd = %.2f V' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd = 2.24 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12 Page No 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Idss=5.0*10**-3\n",
+ "Vgsoff=6.0\n",
+ "Rs=3.3*10**3\n",
+ "Vdd=20.0\n",
+ "Rd=Rs\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Id=0 % Vgs=Vs=0\")\n",
+ "Id=0\n",
+ "Vgs=0\n",
+ "Vs=0\n",
+ "print(\" at point A universal transfer characteristic Id/Idss and Vgs/Vgsoff=0\")\n",
+ "Id=1.5*10**-3\n",
+ "Vgs=Id*Rs\n",
+ "y=Id/Idss\n",
+ "x=Vgs/Vgsoff\n",
+ "print(\" point B the universal transfer charecteristic x=.825 and y=.3\")\n",
+ "Id=.2*Idss\n",
+ "Vds=Vdd-Id*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds = %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0 % Vgs=Vs=0\n",
+ " at point A universal transfer characteristic Id/Idss and Vgs/Vgsoff=0\n",
+ " point B the universal transfer charecteristic x=.825 and y=.3\n",
+ "The value of Vds = 13.40 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 Page No 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Idss=9.0*10**-3\n",
+ "Vgsoff=7.0\n",
+ "Vdd=22.0\n",
+ "R1=4.7*10**6\n",
+ "R2=1.0*10**6\n",
+ "Rs=2.7*10**3\n",
+ "Rd=Rs\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"when Vgs=0 % Vgs/Vgsoff=0\")\n",
+ "Id=Vg/Rs\n",
+ "print(\"when Vgs/Vgsoff=.5\")\n",
+ "Vgs=.5*(-Vgsoff)\n",
+ "Id=(Vg-Vgs)/Rs\n",
+ "x=Id/Idss\n",
+ "print(\" point Y on universal characteristic x=.3 and Vgs/Vgsoff=.5\")\n",
+ "print(\"draw voltage divider bias line through X nad Y where bisa line intersect transfer curve\")\n",
+ "Id=.29*Idss\n",
+ "Vds=Vdd-Id*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Vgs=0 % Vgs/Vgsoff=0\n",
+ "when Vgs/Vgsoff=.5\n",
+ " point Y on universal characteristic x=.3 and Vgs/Vgsoff=.5\n",
+ "draw voltage divider bias line through X nad Y where bisa line intersect transfer curve\n",
+ "The value of Vds= 7.91 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14 Page No 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=40.0\n",
+ "R2=1.0*10**6\n",
+ "R1=5.6*10**6\n",
+ "Rd=4.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"from the point where the bias line intersect the transfer curve\")\n",
+ "Id=6.2\n",
+ "Vds=Vdd-Id*Rd\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from the point where the bias line intersect the transfer curve\n",
+ "The value of Vds= 10.86 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16, Page No 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "rDS=25.0\n",
+ "Vgsoff=10.0\n",
+ "Vds=200.0*10**-3\n",
+ "Vdd=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Vds/rDS\n",
+ "Rd=Vdd/Id\n",
+ "Vi=-(Vgsoff+1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vi= %.2f V' %(Vi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vi= -11.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.17, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=50.0\n",
+ "Rd=10.0\n",
+ "R2=1.0*10**6\n",
+ "rDS=0.25\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Vdd/Rd\n",
+ "print(\" from transfer curve at Id=5 and Vgs=5.7\")\n",
+ "Vgs=5.7\n",
+ "R1=((Vdd-Vgs)*R2)/Vgs#use 6.8Mohm to make Vgs>5.7V to ensure that the FET is biased on\n",
+ "Vds=Id*rDS\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " from transfer curve at Id=5 and Vgs=5.7\n",
+ "The value of Vds= 1.25 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter10_1.ipynb b/Electronic_Devices_and_Circuits/Chapter10_1.ipynb
new file mode 100755
index 00000000..b92c4b1d
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter10_1.ipynb
@@ -0,0 +1,587 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : FET biasing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page No 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=22.0\n",
+ "Rd=2.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Id=0\")\n",
+ "Id=0\n",
+ "Vds=Vdd-Id*Rd\n",
+ "print('at point A Vds = %.2f V' %Vds)\n",
+ "Vds=0\n",
+ "Id=Vdd/Rd\n",
+ "\n",
+ "#Results\n",
+ "print(\"when Vds=0\")\n",
+ "print('at point A Id = %.2f mA' %(Id*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0\n",
+ "at point A Vds = 22.00 V\n",
+ "when Vds=0\n",
+ "at point A Id = 11.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Idss=8.0*10**-3\n",
+ "Vpmax=6.0\n",
+ "Vgs=2.3\n",
+ "Vgsmax=6\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Idss*(1-(Vgs/Vgsmax))**2\n",
+ "Idss=4*10**-3\n",
+ "Vp=3\n",
+ "Idmin=Idss*(1-(Vgs/Vp))**2\n",
+ "\n",
+ "#Results\n",
+ "print('at point A Idmin = %.2f mA' %(Idmin*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at point A Idmin = 0.22 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vdd=25.0\n",
+ "R2=1.0*10**6\n",
+ "R1=3.8*10**6\n",
+ "Rs=2.5*10**3\n",
+ "Rd=2.5*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"when Id=0\")\n",
+ "Id=0\n",
+ "Vgs=Vg-Id*Rs\n",
+ "print(\" plot point A at Id=0\")\n",
+ "print('at point A Vds = %.2f A/s' %Vds)\n",
+ "Vgs=0\n",
+ "Id=Vg/Rs\n",
+ "print(\" plot point B Vgs=0\")\n",
+ "print('at point A Id = %.2f A/s' %Id)\n",
+ "Idmax=3*10**-3\n",
+ "Idmin=2.3*10**-3\n",
+ "Vdsmin=Vdd-Idmax*(Rd+Rs)\n",
+ "Vdsmax=Vdd-Idmin*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vdsmax = %.2f V' %(Vdsmax))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0\n",
+ " plot point A at Id=0\n",
+ "at point A Vds = 0.00 A/s\n",
+ " plot point B Vgs=0\n",
+ "at point A Id = 0.00 A/s\n",
+ "The value of Vdsmax = 13.50 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Id=3.0*10**-3\n",
+ "Vgs=-2.3\n",
+ "Vdsmin=10.0\n",
+ "Vdd=25.0\n",
+ "Vgsoff=-6\n",
+ "Idss=8.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Rd=(Vdd-Vdsmin)/Id\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Td = %.2f kohm' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Td = 5.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vgs=2.3\n",
+ "\n",
+ "#Calculations\n",
+ "Rs=Vgs/Id\n",
+ "Rd=((Vdd-Vds)/Id)-Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd = %.2f ohm' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd = 4.23 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page No 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vg=5.2\n",
+ "Vgsoff=-6\n",
+ "Idss=8.0*10**-3\n",
+ "R2=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "R=(Vdd-Vds)/Id#R=(Rs+Rd)/2\n",
+ "Rd=R/2\n",
+ "Rs=Rd\n",
+ "Vgs=Id*Rs\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vs=Id*Rs\n",
+ "Vg=Vs-(-Vgs)\n",
+ "R1=((Vdd-Vg)*R2)/Vg\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R = %.2f Mohm' %(R1/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R = 3.83 Mohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vee=20.0\n",
+ "Id=3.0*10**-3\n",
+ "Vds=9.0\n",
+ "Vbe=.7\n",
+ "Vb=0\n",
+ "Ve=Vee-Vbe\n",
+ "\n",
+ "#Calculations\n",
+ "Re=Ve/Id\n",
+ "Re=6.8*10**3#satnadard value\n",
+ "Id=Ve/Re\n",
+ "Idss=16*10**-3\n",
+ "Vgsoff=-8\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vs=Vb-Vgs\n",
+ "Vrd=Vee-Vds-Vs\n",
+ "Rd=Vrd/Id\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd = %.2f V' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd = 2.24 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12 Page No 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Idss=5.0*10**-3\n",
+ "Vgsoff=6.0\n",
+ "Rs=3.3*10**3\n",
+ "Vdd=20.0\n",
+ "Rd=Rs\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Id=0 % Vgs=Vs=0\")\n",
+ "Id=0\n",
+ "Vgs=0\n",
+ "Vs=0\n",
+ "print(\" at point A universal transfer characteristic Id/Idss and Vgs/Vgsoff=0\")\n",
+ "Id=1.5*10**-3\n",
+ "Vgs=Id*Rs\n",
+ "y=Id/Idss\n",
+ "x=Vgs/Vgsoff\n",
+ "print(\" point B the universal transfer charecteristic x=.825 and y=.3\")\n",
+ "Id=.2*Idss\n",
+ "Vds=Vdd-Id*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds = %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0 % Vgs=Vs=0\n",
+ " at point A universal transfer characteristic Id/Idss and Vgs/Vgsoff=0\n",
+ " point B the universal transfer charecteristic x=.825 and y=.3\n",
+ "The value of Vds = 13.40 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 Page No 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Idss=9.0*10**-3\n",
+ "Vgsoff=7.0\n",
+ "Vdd=22.0\n",
+ "R1=4.7*10**6\n",
+ "R2=1.0*10**6\n",
+ "Rs=2.7*10**3\n",
+ "Rd=Rs\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"when Vgs=0 % Vgs/Vgsoff=0\")\n",
+ "Id=Vg/Rs\n",
+ "print(\"when Vgs/Vgsoff=.5\")\n",
+ "Vgs=.5*(-Vgsoff)\n",
+ "Id=(Vg-Vgs)/Rs\n",
+ "x=Id/Idss\n",
+ "print(\" point Y on universal characteristic x=.3 and Vgs/Vgsoff=.5\")\n",
+ "print(\"draw voltage divider bias line through X nad Y where bisa line intersect transfer curve\")\n",
+ "Id=.29*Idss\n",
+ "Vds=Vdd-Id*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Vgs=0 % Vgs/Vgsoff=0\n",
+ "when Vgs/Vgsoff=.5\n",
+ " point Y on universal characteristic x=.3 and Vgs/Vgsoff=.5\n",
+ "draw voltage divider bias line through X nad Y where bisa line intersect transfer curve\n",
+ "The value of Vds= 7.91 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14 Page No 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=40.0\n",
+ "R2=1.0*10**6\n",
+ "R1=5.6*10**6\n",
+ "Rd=4.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"from the point where the bias line intersect the transfer curve\")\n",
+ "Id=6.2\n",
+ "Vds=Vdd-Id*Rd\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from the point where the bias line intersect the transfer curve\n",
+ "The value of Vds= 10.86 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16, Page No 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "rDS=25.0\n",
+ "Vgsoff=10.0\n",
+ "Vds=200.0*10**-3\n",
+ "Vdd=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Vds/rDS\n",
+ "Rd=Vdd/Id\n",
+ "Vi=-(Vgsoff+1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vi= %.2f V' %(Vi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vi= -11.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.17, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=50.0\n",
+ "Rd=10.0\n",
+ "R2=1.0*10**6\n",
+ "rDS=0.25\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Vdd/Rd\n",
+ "print(\" from transfer curve at Id=5 and Vgs=5.7\")\n",
+ "Vgs=5.7\n",
+ "R1=((Vdd-Vgs)*R2)/Vgs#use 6.8Mohm to make Vgs>5.7V to ensure that the FET is biased on\n",
+ "Vds=Id*rDS\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " from transfer curve at Id=5 and Vgs=5.7\n",
+ "The value of Vds= 1.25 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter10_2.ipynb b/Electronic_Devices_and_Circuits/Chapter10_2.ipynb
new file mode 100755
index 00000000..b92c4b1d
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter10_2.ipynb
@@ -0,0 +1,587 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : FET biasing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page No 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=22.0\n",
+ "Rd=2.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Id=0\")\n",
+ "Id=0\n",
+ "Vds=Vdd-Id*Rd\n",
+ "print('at point A Vds = %.2f V' %Vds)\n",
+ "Vds=0\n",
+ "Id=Vdd/Rd\n",
+ "\n",
+ "#Results\n",
+ "print(\"when Vds=0\")\n",
+ "print('at point A Id = %.2f mA' %(Id*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0\n",
+ "at point A Vds = 22.00 V\n",
+ "when Vds=0\n",
+ "at point A Id = 11.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Idss=8.0*10**-3\n",
+ "Vpmax=6.0\n",
+ "Vgs=2.3\n",
+ "Vgsmax=6\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Idss*(1-(Vgs/Vgsmax))**2\n",
+ "Idss=4*10**-3\n",
+ "Vp=3\n",
+ "Idmin=Idss*(1-(Vgs/Vp))**2\n",
+ "\n",
+ "#Results\n",
+ "print('at point A Idmin = %.2f mA' %(Idmin*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at point A Idmin = 0.22 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vdd=25.0\n",
+ "R2=1.0*10**6\n",
+ "R1=3.8*10**6\n",
+ "Rs=2.5*10**3\n",
+ "Rd=2.5*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"when Id=0\")\n",
+ "Id=0\n",
+ "Vgs=Vg-Id*Rs\n",
+ "print(\" plot point A at Id=0\")\n",
+ "print('at point A Vds = %.2f A/s' %Vds)\n",
+ "Vgs=0\n",
+ "Id=Vg/Rs\n",
+ "print(\" plot point B Vgs=0\")\n",
+ "print('at point A Id = %.2f A/s' %Id)\n",
+ "Idmax=3*10**-3\n",
+ "Idmin=2.3*10**-3\n",
+ "Vdsmin=Vdd-Idmax*(Rd+Rs)\n",
+ "Vdsmax=Vdd-Idmin*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vdsmax = %.2f V' %(Vdsmax))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0\n",
+ " plot point A at Id=0\n",
+ "at point A Vds = 0.00 A/s\n",
+ " plot point B Vgs=0\n",
+ "at point A Id = 0.00 A/s\n",
+ "The value of Vdsmax = 13.50 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Id=3.0*10**-3\n",
+ "Vgs=-2.3\n",
+ "Vdsmin=10.0\n",
+ "Vdd=25.0\n",
+ "Vgsoff=-6\n",
+ "Idss=8.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Rd=(Vdd-Vdsmin)/Id\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Td = %.2f kohm' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Td = 5.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vgs=2.3\n",
+ "\n",
+ "#Calculations\n",
+ "Rs=Vgs/Id\n",
+ "Rd=((Vdd-Vds)/Id)-Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd = %.2f ohm' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd = 4.23 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page No 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vg=5.2\n",
+ "Vgsoff=-6\n",
+ "Idss=8.0*10**-3\n",
+ "R2=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "R=(Vdd-Vds)/Id#R=(Rs+Rd)/2\n",
+ "Rd=R/2\n",
+ "Rs=Rd\n",
+ "Vgs=Id*Rs\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vs=Id*Rs\n",
+ "Vg=Vs-(-Vgs)\n",
+ "R1=((Vdd-Vg)*R2)/Vg\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R = %.2f Mohm' %(R1/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R = 3.83 Mohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vee=20.0\n",
+ "Id=3.0*10**-3\n",
+ "Vds=9.0\n",
+ "Vbe=.7\n",
+ "Vb=0\n",
+ "Ve=Vee-Vbe\n",
+ "\n",
+ "#Calculations\n",
+ "Re=Ve/Id\n",
+ "Re=6.8*10**3#satnadard value\n",
+ "Id=Ve/Re\n",
+ "Idss=16*10**-3\n",
+ "Vgsoff=-8\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vs=Vb-Vgs\n",
+ "Vrd=Vee-Vds-Vs\n",
+ "Rd=Vrd/Id\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd = %.2f V' %(Rd/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd = 2.24 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12 Page No 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Idss=5.0*10**-3\n",
+ "Vgsoff=6.0\n",
+ "Rs=3.3*10**3\n",
+ "Vdd=20.0\n",
+ "Rd=Rs\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Id=0 % Vgs=Vs=0\")\n",
+ "Id=0\n",
+ "Vgs=0\n",
+ "Vs=0\n",
+ "print(\" at point A universal transfer characteristic Id/Idss and Vgs/Vgsoff=0\")\n",
+ "Id=1.5*10**-3\n",
+ "Vgs=Id*Rs\n",
+ "y=Id/Idss\n",
+ "x=Vgs/Vgsoff\n",
+ "print(\" point B the universal transfer charecteristic x=.825 and y=.3\")\n",
+ "Id=.2*Idss\n",
+ "Vds=Vdd-Id*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds = %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Id=0 % Vgs=Vs=0\n",
+ " at point A universal transfer characteristic Id/Idss and Vgs/Vgsoff=0\n",
+ " point B the universal transfer charecteristic x=.825 and y=.3\n",
+ "The value of Vds = 13.40 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 Page No 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Idss=9.0*10**-3\n",
+ "Vgsoff=7.0\n",
+ "Vdd=22.0\n",
+ "R1=4.7*10**6\n",
+ "R2=1.0*10**6\n",
+ "Rs=2.7*10**3\n",
+ "Rd=Rs\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"when Vgs=0 % Vgs/Vgsoff=0\")\n",
+ "Id=Vg/Rs\n",
+ "print(\"when Vgs/Vgsoff=.5\")\n",
+ "Vgs=.5*(-Vgsoff)\n",
+ "Id=(Vg-Vgs)/Rs\n",
+ "x=Id/Idss\n",
+ "print(\" point Y on universal characteristic x=.3 and Vgs/Vgsoff=.5\")\n",
+ "print(\"draw voltage divider bias line through X nad Y where bisa line intersect transfer curve\")\n",
+ "Id=.29*Idss\n",
+ "Vds=Vdd-Id*(Rd+Rs)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Vgs=0 % Vgs/Vgsoff=0\n",
+ "when Vgs/Vgsoff=.5\n",
+ " point Y on universal characteristic x=.3 and Vgs/Vgsoff=.5\n",
+ "draw voltage divider bias line through X nad Y where bisa line intersect transfer curve\n",
+ "The value of Vds= 7.91 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14 Page No 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=40.0\n",
+ "R2=1.0*10**6\n",
+ "R1=5.6*10**6\n",
+ "Rd=4.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vg=(Vdd*R2)/(R1+R2)\n",
+ "print(\"from the point where the bias line intersect the transfer curve\")\n",
+ "Id=6.2\n",
+ "Vds=Vdd-Id*Rd\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from the point where the bias line intersect the transfer curve\n",
+ "The value of Vds= 10.86 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16, Page No 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "rDS=25.0\n",
+ "Vgsoff=10.0\n",
+ "Vds=200.0*10**-3\n",
+ "Vdd=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Vds/rDS\n",
+ "Rd=Vdd/Id\n",
+ "Vi=-(Vgsoff+1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vi= %.2f V' %(Vi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vi= -11.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.17, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vdd=50.0\n",
+ "Rd=10.0\n",
+ "R2=1.0*10**6\n",
+ "rDS=0.25\n",
+ "\n",
+ "#Calculations\n",
+ "Id=Vdd/Rd\n",
+ "print(\" from transfer curve at Id=5 and Vgs=5.7\")\n",
+ "Vgs=5.7\n",
+ "R1=((Vdd-Vgs)*R2)/Vgs#use 6.8Mohm to make Vgs>5.7V to ensure that the FET is biased on\n",
+ "Vds=Id*rDS\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vds= %.2f V' %(Vds))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " from transfer curve at Id=5 and Vgs=5.7\n",
+ "The value of Vds= 1.25 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter11.ipynb b/Electronic_Devices_and_Circuits/Chapter11.ipynb
new file mode 100755
index 00000000..e211f994
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter11.ipynb
@@ -0,0 +1,305 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Ac analysis of FEt circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yos=10.0*10**-6\n",
+ "Yfs=3000.0*10**-6\n",
+ "R1=1.0*10**6\n",
+ "R2=5.6*10**6\n",
+ "Rd=2.7*10**3\n",
+ "Rl=Rd\n",
+ "\n",
+ "#Calculations\n",
+ "rd=1.0/Yos\n",
+ "Zi=((R1*R2)/(R1+R2))*10**-3\n",
+ "print(\"input impedance is %dKohm \" %Zi)\n",
+ "Zo=(Rd*rd)/(Rd+rd)\n",
+ "print(\" output inpedance is %dohm \" %Zo)\n",
+ "Av=-Yfs*((Rl*rd)/(Rl+rd))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance is 848Kohm \n",
+ " output inpedance is 2629ohm \n",
+ "The value of Av= -7.89 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.03, Page No 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yos=10.0*10**-6\n",
+ "Yfs=4000.0*10**-6\n",
+ "Ig=1.0*10**-9\n",
+ "Vgs=15.0\n",
+ "Rs=3.3*10**3\n",
+ "Rg=1.0*10**6\n",
+ "Rd=4.7*10**3\n",
+ "Rl=33*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "rd=1.0/Yos\n",
+ "Rgs=(Vgs/Ig)\n",
+ "Zg=(Rgs*(1+Yfs*Rs))\n",
+ "Zi=Rg\n",
+ "Zd=rd+Rs+(Yfs*Rs*rd)\n",
+ "Zo=(Rd*Zd)/(Rd+Zd)\n",
+ "Av=-(Yfs*((Rd*Rl)/(Rd+Rl)))/(1+Yfs*Rs)\n",
+ "Av=-((Rd*Rl)/(Rd+Rl))/Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= -1.25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yfs=3000.0*10**-6\n",
+ "Rgs=100.0*10**6\n",
+ "rd=50.0*10**3\n",
+ "Rs=5.6*10**3\n",
+ "Rl=12.0*10**3\n",
+ "R1=1.5*10**6\n",
+ "R2=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "Zg=Rgs*(1+Yfs*((Rs*Rl)/(Rs+Rl)))\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "Zs=((1/Yfs)*rd)/((1/Yfs)+rd)\n",
+ "Zo=(Rs*Rl*(1/Yfs))/(Rs*Rl+Rs*(1/Yfs)+Rl*(1/Yfs))\n",
+ "Av=-(Yfs*((Rs*Rl)/(Rs+Rl)))/(1+Yfs*((Rs*Rl)/(Rs+Rl)))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= -0.92 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page No 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yfs=3000.0*10**-6\n",
+ "rd=50.0*10**3\n",
+ "Rs=3.3*10**3\n",
+ "Rd=4.7*10**3\n",
+ "Rl=50.0*10**3\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zs=1/Yfs\n",
+ "Zi=((1/Yfs)*Rs)/((1/Yfs)+Rs)\n",
+ "Zd=rd\n",
+ "Zo=(Rd*rd)/(Rd+rd)\n",
+ "Av=Yfs*((Rd*Rl)/(Rd+Rl))\n",
+ "print(\"overall volateg gain\")\n",
+ "Av=(Yfs*((Rd*Rl)/(Rd+Rl))*Zi)/(rs+Zi)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall volateg gain\n",
+ "The value of Av= 4.32 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vgs=2.3\n",
+ "\n",
+ "#Calculations\n",
+ "Rs=Vgs/Id\n",
+ "Rd=((Vdd-Vds)/Id)-Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd= %.2f ' %(Rd))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd= 4233.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Crss=1.0*10**-12\n",
+ "Ciss=5.0*10**-12\n",
+ "Yfs=2500.0*10**-6\n",
+ "Yos=75.0*10**-6\n",
+ "Rd=5.6*10**3\n",
+ "Rl=100.0*10**3\n",
+ "R1=3.3*10**6\n",
+ "R2=1.0*10**6\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cgd=Crss\n",
+ "Cgs=Ciss-Crss\n",
+ "Av=Yfs*(((1/Yos)*Rd*Rl))/((Rd*Rl+(1/Yos)*Rd+(1/Yos)*Rl))\n",
+ "Cin=Cgs+(1+Av)*Cgd\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "f2=1/(2*3.14*Cin*((rs*Zi)/(rs+Zi)))\n",
+ "\n",
+ "#Results\n",
+ "print('The input capicitance limited = %.2f ' %(f2/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The input capicitance limited = 18.34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter11_1.ipynb b/Electronic_Devices_and_Circuits/Chapter11_1.ipynb
new file mode 100755
index 00000000..e211f994
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter11_1.ipynb
@@ -0,0 +1,305 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Ac analysis of FEt circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yos=10.0*10**-6\n",
+ "Yfs=3000.0*10**-6\n",
+ "R1=1.0*10**6\n",
+ "R2=5.6*10**6\n",
+ "Rd=2.7*10**3\n",
+ "Rl=Rd\n",
+ "\n",
+ "#Calculations\n",
+ "rd=1.0/Yos\n",
+ "Zi=((R1*R2)/(R1+R2))*10**-3\n",
+ "print(\"input impedance is %dKohm \" %Zi)\n",
+ "Zo=(Rd*rd)/(Rd+rd)\n",
+ "print(\" output inpedance is %dohm \" %Zo)\n",
+ "Av=-Yfs*((Rl*rd)/(Rl+rd))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance is 848Kohm \n",
+ " output inpedance is 2629ohm \n",
+ "The value of Av= -7.89 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.03, Page No 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yos=10.0*10**-6\n",
+ "Yfs=4000.0*10**-6\n",
+ "Ig=1.0*10**-9\n",
+ "Vgs=15.0\n",
+ "Rs=3.3*10**3\n",
+ "Rg=1.0*10**6\n",
+ "Rd=4.7*10**3\n",
+ "Rl=33*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "rd=1.0/Yos\n",
+ "Rgs=(Vgs/Ig)\n",
+ "Zg=(Rgs*(1+Yfs*Rs))\n",
+ "Zi=Rg\n",
+ "Zd=rd+Rs+(Yfs*Rs*rd)\n",
+ "Zo=(Rd*Zd)/(Rd+Zd)\n",
+ "Av=-(Yfs*((Rd*Rl)/(Rd+Rl)))/(1+Yfs*Rs)\n",
+ "Av=-((Rd*Rl)/(Rd+Rl))/Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= -1.25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yfs=3000.0*10**-6\n",
+ "Rgs=100.0*10**6\n",
+ "rd=50.0*10**3\n",
+ "Rs=5.6*10**3\n",
+ "Rl=12.0*10**3\n",
+ "R1=1.5*10**6\n",
+ "R2=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "Zg=Rgs*(1+Yfs*((Rs*Rl)/(Rs+Rl)))\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "Zs=((1/Yfs)*rd)/((1/Yfs)+rd)\n",
+ "Zo=(Rs*Rl*(1/Yfs))/(Rs*Rl+Rs*(1/Yfs)+Rl*(1/Yfs))\n",
+ "Av=-(Yfs*((Rs*Rl)/(Rs+Rl)))/(1+Yfs*((Rs*Rl)/(Rs+Rl)))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= -0.92 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page No 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yfs=3000.0*10**-6\n",
+ "rd=50.0*10**3\n",
+ "Rs=3.3*10**3\n",
+ "Rd=4.7*10**3\n",
+ "Rl=50.0*10**3\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zs=1/Yfs\n",
+ "Zi=((1/Yfs)*Rs)/((1/Yfs)+Rs)\n",
+ "Zd=rd\n",
+ "Zo=(Rd*rd)/(Rd+rd)\n",
+ "Av=Yfs*((Rd*Rl)/(Rd+Rl))\n",
+ "print(\"overall volateg gain\")\n",
+ "Av=(Yfs*((Rd*Rl)/(Rd+Rl))*Zi)/(rs+Zi)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall volateg gain\n",
+ "The value of Av= 4.32 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vgs=2.3\n",
+ "\n",
+ "#Calculations\n",
+ "Rs=Vgs/Id\n",
+ "Rd=((Vdd-Vds)/Id)-Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd= %.2f ' %(Rd))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd= 4233.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Crss=1.0*10**-12\n",
+ "Ciss=5.0*10**-12\n",
+ "Yfs=2500.0*10**-6\n",
+ "Yos=75.0*10**-6\n",
+ "Rd=5.6*10**3\n",
+ "Rl=100.0*10**3\n",
+ "R1=3.3*10**6\n",
+ "R2=1.0*10**6\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cgd=Crss\n",
+ "Cgs=Ciss-Crss\n",
+ "Av=Yfs*(((1/Yos)*Rd*Rl))/((Rd*Rl+(1/Yos)*Rd+(1/Yos)*Rl))\n",
+ "Cin=Cgs+(1+Av)*Cgd\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "f2=1/(2*3.14*Cin*((rs*Zi)/(rs+Zi)))\n",
+ "\n",
+ "#Results\n",
+ "print('The input capicitance limited = %.2f ' %(f2/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The input capicitance limited = 18.34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter11_2.ipynb b/Electronic_Devices_and_Circuits/Chapter11_2.ipynb
new file mode 100755
index 00000000..e211f994
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter11_2.ipynb
@@ -0,0 +1,305 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Ac analysis of FEt circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yos=10.0*10**-6\n",
+ "Yfs=3000.0*10**-6\n",
+ "R1=1.0*10**6\n",
+ "R2=5.6*10**6\n",
+ "Rd=2.7*10**3\n",
+ "Rl=Rd\n",
+ "\n",
+ "#Calculations\n",
+ "rd=1.0/Yos\n",
+ "Zi=((R1*R2)/(R1+R2))*10**-3\n",
+ "print(\"input impedance is %dKohm \" %Zi)\n",
+ "Zo=(Rd*rd)/(Rd+rd)\n",
+ "print(\" output inpedance is %dohm \" %Zo)\n",
+ "Av=-Yfs*((Rl*rd)/(Rl+rd))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance is 848Kohm \n",
+ " output inpedance is 2629ohm \n",
+ "The value of Av= -7.89 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.03, Page No 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yos=10.0*10**-6\n",
+ "Yfs=4000.0*10**-6\n",
+ "Ig=1.0*10**-9\n",
+ "Vgs=15.0\n",
+ "Rs=3.3*10**3\n",
+ "Rg=1.0*10**6\n",
+ "Rd=4.7*10**3\n",
+ "Rl=33*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "rd=1.0/Yos\n",
+ "Rgs=(Vgs/Ig)\n",
+ "Zg=(Rgs*(1+Yfs*Rs))\n",
+ "Zi=Rg\n",
+ "Zd=rd+Rs+(Yfs*Rs*rd)\n",
+ "Zo=(Rd*Zd)/(Rd+Zd)\n",
+ "Av=-(Yfs*((Rd*Rl)/(Rd+Rl)))/(1+Yfs*Rs)\n",
+ "Av=-((Rd*Rl)/(Rd+Rl))/Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= -1.25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yfs=3000.0*10**-6\n",
+ "Rgs=100.0*10**6\n",
+ "rd=50.0*10**3\n",
+ "Rs=5.6*10**3\n",
+ "Rl=12.0*10**3\n",
+ "R1=1.5*10**6\n",
+ "R2=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "Zg=Rgs*(1+Yfs*((Rs*Rl)/(Rs+Rl)))\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "Zs=((1/Yfs)*rd)/((1/Yfs)+rd)\n",
+ "Zo=(Rs*Rl*(1/Yfs))/(Rs*Rl+Rs*(1/Yfs)+Rl*(1/Yfs))\n",
+ "Av=-(Yfs*((Rs*Rl)/(Rs+Rl)))/(1+Yfs*((Rs*Rl)/(Rs+Rl)))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= -0.92 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page No 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Yfs=3000.0*10**-6\n",
+ "rd=50.0*10**3\n",
+ "Rs=3.3*10**3\n",
+ "Rd=4.7*10**3\n",
+ "Rl=50.0*10**3\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zs=1/Yfs\n",
+ "Zi=((1/Yfs)*Rs)/((1/Yfs)+Rs)\n",
+ "Zd=rd\n",
+ "Zo=(Rd*rd)/(Rd+rd)\n",
+ "Av=Yfs*((Rd*Rl)/(Rd+Rl))\n",
+ "print(\"overall volateg gain\")\n",
+ "Av=(Yfs*((Rd*Rl)/(Rd+Rl))*Zi)/(rs+Zi)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall volateg gain\n",
+ "The value of Av= 4.32 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=3.0*10**-3\n",
+ "Vds=10.0\n",
+ "Vdd=25.0\n",
+ "Vgs=2.3\n",
+ "\n",
+ "#Calculations\n",
+ "Rs=Vgs/Id\n",
+ "Rd=((Vdd-Vds)/Id)-Rs\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rd= %.2f ' %(Rd))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rd= 4233.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Crss=1.0*10**-12\n",
+ "Ciss=5.0*10**-12\n",
+ "Yfs=2500.0*10**-6\n",
+ "Yos=75.0*10**-6\n",
+ "Rd=5.6*10**3\n",
+ "Rl=100.0*10**3\n",
+ "R1=3.3*10**6\n",
+ "R2=1.0*10**6\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cgd=Crss\n",
+ "Cgs=Ciss-Crss\n",
+ "Av=Yfs*(((1/Yos)*Rd*Rl))/((Rd*Rl+(1/Yos)*Rd+(1/Yos)*Rl))\n",
+ "Cin=Cgs+(1+Av)*Cgd\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "f2=1/(2*3.14*Cin*((rs*Zi)/(rs+Zi)))\n",
+ "\n",
+ "#Results\n",
+ "print('The input capicitance limited = %.2f ' %(f2/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The input capicitance limited = 18.34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter12.ipynb b/Electronic_Devices_and_Circuits/Chapter12.ipynb
new file mode 100755
index 00000000..b0fb9991
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter12.ipynb
@@ -0,0 +1,1196 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Small signal Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "hie=1.0*10**3\n",
+ "hib=20.0\n",
+ "f1=100.0\n",
+ "Rc=3.3*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Re=Rc\n",
+ "print(\" required capacitance\")\n",
+ "Xc2=hib\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "print(\" voltage gain with emitter terminal completely bypassed to ground\")\n",
+ "Av=-(hfe*Rc)/hie\n",
+ "print(\"voltage gain when f=100\")\n",
+ "Av=-(hfe*Rc)/math.sqrt(((hie**2)+((1+hfe)*Xc2)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain when C2 is incorrectly selected as Xc2=Re/10\")\n",
+ "Avx=-(hfe*Rc)/math.sqrt(((hie**2)+((1+hfe)*(Re/10))**2))\n",
+ "print('The value of Avx= %.2f ' %(Avx))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " required capacitance\n",
+ " voltage gain with emitter terminal completely bypassed to ground\n",
+ "voltage gain when f=100\n",
+ " voltage gain when C2 is incorrectly selected as Xc2=Re/10\n",
+ "The value of Avx= -9.79 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=24.0\n",
+ "Ve=5.0\n",
+ "Vce=3.0\n",
+ "Rl=120.0*10**3\n",
+ "Vbe=0.7\n",
+ "Rc=Rl/10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vrc=Vcc-Vce-Ve\n",
+ "Ic=Vrc/Rc\n",
+ "Re=Ve/Ic#use 3.9Kohm standard value to make Ic littel less than design level\n",
+ "Re=3.9*10**3\n",
+ "R2=10*Re\n",
+ "I2=(Ve+Vbe)/R2\n",
+ "R1=(Vcc-Ve-Vbe)/I2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f ' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 125.21 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "Ie=1.3*10**-3\n",
+ "f1=100.0\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rl=R1\n",
+ "re=(26*10**-3)/Ie\n",
+ "Xc2=re\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "C1=1/((2*3.14*f1*((Zi+rs)/10)))\n",
+ "C3=1/(2*3.14*f1*((Rc+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf ' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 0.12 mf \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page No 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "rs=600.0\n",
+ "f1=100.0\n",
+ "Yfs=6000.0*10**-6\n",
+ "R1=4.7*10**6\n",
+ "R2=1.0*10**6\n",
+ "Rd=6.8*10**3\n",
+ "Rl=120*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Xc2=1/Yfs\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "C1=1/(2*3.14*f1*(Zi+rs)/10)\n",
+ "C3=1/(2*3.14*f1*(Rd+Rl)/10)\n",
+ "\n",
+ "#Calculations\n",
+ "print('The value of C3= %.2f mF' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 0.13 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "hie=2.0*10**3\n",
+ "R7=12.0*10**3\n",
+ "Zo=R7\n",
+ "R5=R1\n",
+ "R6=R2\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "R3=R7\n",
+ "Zl=R1\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Zi2=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Av1=-(hfe*((R3*Zi2)/(R3+Zi2)))/hie\n",
+ "Av2=-(hfe*((R7*Zl)/(R7+Zl)))/hie\n",
+ "Av=Av1*Av2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= 44180.12 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ve1=5.0\n",
+ "Vce1=3.0\n",
+ "Vce2=3.0\n",
+ "Vbe=0.7\n",
+ "Vcc=14.0\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vb2=Ve1+Vce1\n",
+ "Vc1=Vb2\n",
+ "Ve2=Vb2-Vbe\n",
+ "Vr5=Vcc-Ve2-Vce2\n",
+ "R5=Rl/10#use 3.9Kohm satandard value\n",
+ "R5=3.9*10**3\n",
+ "Ic2=Vr5/R5\n",
+ "R6=Ve2/Ic2#use 8.2Kohm as standard and recalculate\n",
+ "R6=8.2*10**3\n",
+ "Ic2=Ve2/R6\n",
+ "Vr3=Vcc-Vc1\n",
+ "print(\" Ic1>>Ib2 %select Ic1=1mA\")\n",
+ "Ic1=1*10**-3\n",
+ "R3=Vr3/Ic1#use standard value as 5.6Kohm and recalculate Ic1 in order ti keep Vb2=8V\n",
+ "R3=5.6*10**3\n",
+ "Ic1=Vr3/R3\n",
+ "R4=Ve1/Ic1\n",
+ "Vr2=Ve1+Vbe\n",
+ "Vr1=Vcc-Ve1-Vbe\n",
+ "R2=10*R4\n",
+ "I2=(Ve1+Vbe)/R2\n",
+ "R1=(Vr1*R2)/Vr2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ic1>>Ib2 %select Ic1=1mA\n",
+ "The value of R1= 67.95 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, Page No 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "re=26.0\n",
+ "R1=68.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "rs=600.0\n",
+ "f1=75.0\n",
+ "R5=3.9*10**3\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Xc1=(Zi+rs)/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=.65*re\n",
+ "Xc3=Xc2\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "C3=C2\n",
+ "Xc4=(R5+Rl)/10\n",
+ "C4=1/(2*3.14*f1*Xc4)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mf' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.48 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10, Page No 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "hie=1.3*10**3\n",
+ "R3=5.6*10**3\n",
+ "R5=3.9*10**3\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Av1=-(hfe*((R3*hie)/(R3+hie)))/hie\n",
+ "Av2=-(hfe*((R5*Rl)/(R5+Rl)))/hie\n",
+ "\n",
+ "#Results\n",
+ "print(\" overall voltage gain is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " overall voltage gain is Av=Av1*Av2\n",
+ "The value of Av= 5546.20 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vp=100.0*10**-3\n",
+ "Rl=100.0\n",
+ "Vbe=0.7\n",
+ "Vcc=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "ip=Vp/Rl\n",
+ "print(\"select Ie2>ip\")\n",
+ "Ie2=2.0*10**-3\n",
+ "Ve1=5.0\n",
+ "Vce1=3.0\n",
+ "Vb2=Ve1+Vce1\n",
+ "Vc1=Vb2\n",
+ "Ve2=Vb2-Vbe\n",
+ "R5=Ve2/Ie2#use 3.3Kohm standard value\n",
+ "R5=3.3*10**3\n",
+ "Ic1=1*10**-3\n",
+ "Vr3=Vcc-Vb2\n",
+ "R3=Vr3/Ic1\n",
+ "R4=Ve1/Ic1#use 4.7Kohm standard value\n",
+ "R4=4.7*10**3\n",
+ "Vb1=Ic1*R4+Vbe\n",
+ "R2=10*R4\n",
+ "R1=((Vcc-Vb1)*R2)/Vr2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select Ie2>ip\n",
+ "The value of R1= 120.39 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12 Page No 498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "Ie1=1.0*10**-3\n",
+ "hfe=50.0\n",
+ "R1=120.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "f1=150.0\n",
+ "Ie2=2.0*10**-3\n",
+ "R5=3.3*10**3\n",
+ "R3=12.0*10**3\n",
+ "Rl=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie1\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Xc1=(Zi+rs)/10\n",
+ "C1=1/(2*3.14*f1*Xc1)#use 6*10**-6 as standard value\n",
+ "Xc2=.65*re\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "re2=26*10**-3/Ie2\n",
+ "Zo=(R5*(re2+R3/hfe))/(R5+(re2+R3/hfe))\n",
+ "Xc3=.65*(Rl+Zo)\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 4.88 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13 Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ie2=2.0*10**-3\n",
+ "hfe=50.0\n",
+ "R5=3.3*10**3\n",
+ "Rl=100.0\n",
+ "hfc2=51.0\n",
+ "R3=12.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie2\n",
+ "hic=hfe*re\n",
+ "Zi2=hic+hfc2*((Rl*R5)/(Rl+R5))\n",
+ "Av1=-(hfe*((R3*Zi2)/(R3+Zi2)))/hie\n",
+ "Av2=1.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage gain is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage gain is Av=Av1*Av2\n",
+ "The value of Av= -143.97 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 503"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "vp=50.0*10**-3\n",
+ "Rl=50.0\n",
+ "Ve2=5.0\n",
+ "Vcc=12.0\n",
+ "Vbe=0.7\n",
+ "hFE=70.0\n",
+ "hfe=100.0\n",
+ "R2=120.0*10**3\n",
+ "f1=150.0\n",
+ "R3=150.0*10**3\n",
+ "R1=5.6*10**3\n",
+ "R4=2.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "ip=vp/Rl\n",
+ "print(\"select Ie2>ip\")\n",
+ "Ie2=2*10**-3\n",
+ "R4=Ve2/Ie2#use standard 2.2Kohm\n",
+ "R4=2.2*10**3\n",
+ "Ie2=Ve2/R4\n",
+ "Ic1=1*10**-3\n",
+ "Vr1=Vcc-(Vbe+Ve2)\n",
+ "R1=Vr1/Ic1#use 5.6kohm and recalculate\n",
+ "R1=5.6*10**3\n",
+ "Ic1=Vr1/R1\n",
+ "Ib1=Ic1/hFE\n",
+ "hie=hfe*(26*10**-3/Ic1)\n",
+ "hie2=hfe*((26*10**-3)/(2.27*10**-3))\n",
+ "Zi1=(R2*hie)/(R2+hie)\n",
+ "Xc1=Zi1/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=R3/100\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "Zo=(((hie2+R1)/hfe)*R4)/(((hie2+R1)/hfe)+R4)\n",
+ "Xc3=Rl+Zo\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select Ie2>ip\n",
+ "The value of C3= 9.20 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vgsoff=-6.0\n",
+ "Idss=20.0*10**-3\n",
+ "Yfs=4000.0*10**-6\n",
+ "Id=2.0*10**-3\n",
+ "Vcc=20.0\n",
+ "Zi=500.0*10**3\n",
+ "R2=560.0*10**3\n",
+ "Rl=80.0*10**3\n",
+ "Vbe=0.7\n",
+ "Vce=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vds=(-Vgsoff)+1-(-Vgs)\n",
+ "Vr3=(Vcc-Vds)/2\n",
+ "Vr4=Vr3\n",
+ "R3=Vr4/Id#use 3.9kohm as standard and recalculate Vr3 and Vr4\n",
+ "R4=R3\n",
+ "R4=3.9*10**3\n",
+ "Vr3=Id*R4\n",
+ "Vr4=Vr3\n",
+ "Vr2=Vr4-(-Vgs)\n",
+ "Vr1=Vcc-Vr2\n",
+ "R1=(Vr1*R2)/Vr2\n",
+ "R6=Rl/10\n",
+ "Vr5=Vr3-Vbe\n",
+ "Vr6=Vcc-Vr5-Vce\n",
+ "Ic2=Vr6/R6\n",
+ "R5=Vr5/Ic2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f kohm' %(R5/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R5= 5.74 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=2.7*10**6\n",
+ "R2=560.0*10**3\n",
+ "f1=150.0\n",
+ "Yfs=8000.0*10**-6\n",
+ "Ie=1.2*10**-3\n",
+ "Rl=80.0*10**3\n",
+ "R6=8.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "Xc1=Zi/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=.65/Yfs\n",
+ "C2=1/(2*3.14*f1*Xc2)#use 15pF as standard value\n",
+ "re=26*10**-3/Ie\n",
+ "Xc3=.65*re\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "Xc4=(R6+Rl)/10\n",
+ "C4=1/(2*3.14*f1*Xc4)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mf' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.12 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "re=22.0\n",
+ "hfe=100.0\n",
+ "R3=3.9*10**3\n",
+ "Yfs=4000*10**-6\n",
+ "R6=8.2*10**3\n",
+ "Rl=80.*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi2=hfe*re\n",
+ "Av1=-Yfs*((R3*Zi2)/(R3+Zi2))\n",
+ "Av2=-(hfe*((R6*Rl)/(R6+Rl)))/Zi2\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage is Av=Av1*Av2\n",
+ "The value of Av= 1902.09 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE=60.0\n",
+ "hfe=60.0\n",
+ "hie=1.4*10**3\n",
+ "Rl=70.0*10**3\n",
+ "Vce=3.0\n",
+ "Vbe=.7\n",
+ "Vcc=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rc2=Rl/10#use 6.8Kohm as standard value\n",
+ "Vrc2=Vcc+Vbe-Vce\n",
+ "Ic=Vrc2/Rc2\n",
+ "Ie=Ic\n",
+ "Re=(Vcc-Vbe)/(2*Ie)#use 4.7 as standard value\n",
+ "Re=4.7*10**3\n",
+ "Rb=Vbe/(10*(Ic/hFE))\n",
+ "Rb1=Rb\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rb= %.2f kohm ' %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb= 3.82 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.19, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=60.0\n",
+ "Ie=1.13*10**-3\n",
+ "hfe=60.0\n",
+ "Rb=3.9*10**3\n",
+ "Rl=70.0*10**3\n",
+ "Rc=6.8*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie#use 20 as standard value\n",
+ "re=20\n",
+ "hie=hfe*re\n",
+ "Zb=2*hie\n",
+ "Zi=(Rb*Zb)/(Rb+Zb)\n",
+ "C1=1/(2*3.14*f1*Zi)\n",
+ "C2=1/(2*3.14*f1*(Rl/10))\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/(2*hie)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= 154.95 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.20, Page No 521"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=20.0\n",
+ "Rl=90.0*10**3\n",
+ "hfe=50.0\n",
+ "hie=1.2*10**3\n",
+ "hib=24.0\n",
+ "Vce=3\n",
+ "Vce1=Vce\n",
+ "Ve=5.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Rl/10#use 8.2kohm as standard value\n",
+ "Rc=8.2*10**3\n",
+ "Vrc=Vcc-Vce-Vce1-Ve\n",
+ "Ic=Vrc/Rc\n",
+ "Re=Ve/Ic\n",
+ "Re=4.7*10**3#use 4.7 as standard value\n",
+ "R3=10*Re\n",
+ "Vb1=Ve+Vbe\n",
+ "I3=Vb1/R3\n",
+ "Vb2=Ve+Vce+Vbe\n",
+ "Vr2=Vb2-Vb1\n",
+ "R2=Vr2/I3\n",
+ "R1=(Vcc-Vb2)/I3\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 93.18 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=25.0\n",
+ "R2=24.7*10**3\n",
+ "R3=47.0*10**3\n",
+ "hie=1.2*10**3\n",
+ "hib=24.0\n",
+ "Rc=9.0*10**3\n",
+ "Rl=90*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(R2*R3*hie)/(R2*R3+R2*hie+R3*hie)\n",
+ "C1=1/(2*3.14*f1*(Zi/10))\n",
+ "C2=1/(2*3.14*f1*(hie/10))\n",
+ "C3=1/(2*3.14*f1*hib)\n",
+ "C4=1/(2*3.14*f1*((Rc+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mF' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.64 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hie=1.0\n",
+ "hfe=50.0\n",
+ "hoe=10.0*10**-6\n",
+ "Cc=5*10**-12\n",
+ "Cp=330*10**-12\n",
+ "Lp=75*10**-6\n",
+ "Rw=1.0\n",
+ "Rl=5.0\n",
+ "hfb=50.0\n",
+ "fo=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "fo=1.0/(2.0*3.14*math.sqrt(Lp*(Cp+Cc)))\n",
+ "print(\"resonance frequency is %3fHz \" %fo)\n",
+ "Zp=Lp/((Cp+Cc)*Rw)\n",
+ "Rc=(1.0/hoe)/1000\n",
+ "RL=(Zp*Rc*Rl)/(Rl*Rc+Rc*Zp+Rl*Zp)\n",
+ "RL1=4.7 #as standard value\n",
+ "Av=(hfb*RL1)/hie\n",
+ "print(\" voltage gain is %d \" %Av)\n",
+ "Qp=7.6\n",
+ "QL=(2*3.14*fo*Lp)/Rw\n",
+ "print(\"since QL>Qp\")\n",
+ "fo=1\n",
+ "B=fo/Qp\n",
+ "\n",
+ "#Results\n",
+ "print(\"bandwidth is %.2f kHz \" %(B*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonance frequency is 1004586.461587Hz \n",
+ " voltage gain is 235 \n",
+ "since QL>Qp\n",
+ "bandwidth is 131.58 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.23, Page No 528"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hie=1.0*10**3\n",
+ "hfe=50.0\n",
+ "hoe=10.0*10**-6\n",
+ "Cc=5.0*10**-12\n",
+ "Cp=330.0*10**-12\n",
+ "Lp=75.0*10**-6\n",
+ "Rw=1.0\n",
+ "Rl=5.0*10**3\n",
+ "fo=1.0*10**6\n",
+ "zP=224.0*10**3\n",
+ "rC=100.0*10**3\n",
+ "K=0.015\n",
+ "Ls=50.0*10**-6\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "RL=(Zp*Rc)/(Rc+Zp)\n",
+ "print(\"voltage gain from the input to the primary memory winding\")\n",
+ "Avp=(hfe*RL)/hie\n",
+ "Vsp=K*math.sqrt(Ls/Lp)\n",
+ "print(\"overall voltage gain from the input to teh secondary winding\")\n",
+ "Av=Avp*Vsp\n",
+ "Qp=Rc/(2*3.14*fo*Lp)\n",
+ "Ql=471\n",
+ "Q=(Ql*Qp)/(Ql+Qp)\n",
+ "B=fo/Q\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"bandwidth is %.2f kHz \" %(B/10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain from the input to the primary memory winding\n",
+ "overall voltage gain from the input to teh secondary winding\n",
+ "bandwidth is 47.12 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=1.0*10**6\n",
+ "L2=50.0*10**-6\n",
+ "K=0.015\n",
+ "L1=75*10**-6\n",
+ "rs=5.0\n",
+ "Rw=1.0\n",
+ "Lp=100.0*10**-6\n",
+ "Cp=330.0*10**-12\n",
+ "Cc=5.0*10**-12\n",
+ "Rc=100.0*10**3\n",
+ "hfe=50.0\n",
+ "hie=1.0*10**3\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "C2=1/(((2*3.14*f)**2)*L2)\n",
+ "M=K*math.sqrt(L1*L2)\n",
+ "Rs=(((2*3.14*f)**2)*(M)**2)/rs\n",
+ "Rp=Rs+Rw\n",
+ "Zp=Lp/((Cp+Cc)*Rp)\n",
+ "Rl=(Zp*Rc)/(Zp+Rc)\n",
+ "print(\"voltage gain from the input to primary winding\")\n",
+ "Avp=(hfe*Rl)/hie\n",
+ "Vsp=12.2*10**-3\n",
+ "Vos=((2*3.14*f)*L2)/rs\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage gain from the input to secondary winding \")\n",
+ "Av=Avp*Vos*Vsp\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain from the input to primary winding\n",
+ "overall voltage gain from the input to secondary winding \n",
+ "The value of Av= 1074.71 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter12_1.ipynb b/Electronic_Devices_and_Circuits/Chapter12_1.ipynb
new file mode 100755
index 00000000..b0fb9991
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter12_1.ipynb
@@ -0,0 +1,1196 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Small signal Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "hie=1.0*10**3\n",
+ "hib=20.0\n",
+ "f1=100.0\n",
+ "Rc=3.3*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Re=Rc\n",
+ "print(\" required capacitance\")\n",
+ "Xc2=hib\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "print(\" voltage gain with emitter terminal completely bypassed to ground\")\n",
+ "Av=-(hfe*Rc)/hie\n",
+ "print(\"voltage gain when f=100\")\n",
+ "Av=-(hfe*Rc)/math.sqrt(((hie**2)+((1+hfe)*Xc2)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain when C2 is incorrectly selected as Xc2=Re/10\")\n",
+ "Avx=-(hfe*Rc)/math.sqrt(((hie**2)+((1+hfe)*(Re/10))**2))\n",
+ "print('The value of Avx= %.2f ' %(Avx))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " required capacitance\n",
+ " voltage gain with emitter terminal completely bypassed to ground\n",
+ "voltage gain when f=100\n",
+ " voltage gain when C2 is incorrectly selected as Xc2=Re/10\n",
+ "The value of Avx= -9.79 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=24.0\n",
+ "Ve=5.0\n",
+ "Vce=3.0\n",
+ "Rl=120.0*10**3\n",
+ "Vbe=0.7\n",
+ "Rc=Rl/10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vrc=Vcc-Vce-Ve\n",
+ "Ic=Vrc/Rc\n",
+ "Re=Ve/Ic#use 3.9Kohm standard value to make Ic littel less than design level\n",
+ "Re=3.9*10**3\n",
+ "R2=10*Re\n",
+ "I2=(Ve+Vbe)/R2\n",
+ "R1=(Vcc-Ve-Vbe)/I2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f ' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 125.21 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "Ie=1.3*10**-3\n",
+ "f1=100.0\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rl=R1\n",
+ "re=(26*10**-3)/Ie\n",
+ "Xc2=re\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "C1=1/((2*3.14*f1*((Zi+rs)/10)))\n",
+ "C3=1/(2*3.14*f1*((Rc+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf ' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 0.12 mf \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page No 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "rs=600.0\n",
+ "f1=100.0\n",
+ "Yfs=6000.0*10**-6\n",
+ "R1=4.7*10**6\n",
+ "R2=1.0*10**6\n",
+ "Rd=6.8*10**3\n",
+ "Rl=120*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Xc2=1/Yfs\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "C1=1/(2*3.14*f1*(Zi+rs)/10)\n",
+ "C3=1/(2*3.14*f1*(Rd+Rl)/10)\n",
+ "\n",
+ "#Calculations\n",
+ "print('The value of C3= %.2f mF' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 0.13 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "hie=2.0*10**3\n",
+ "R7=12.0*10**3\n",
+ "Zo=R7\n",
+ "R5=R1\n",
+ "R6=R2\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "R3=R7\n",
+ "Zl=R1\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Zi2=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Av1=-(hfe*((R3*Zi2)/(R3+Zi2)))/hie\n",
+ "Av2=-(hfe*((R7*Zl)/(R7+Zl)))/hie\n",
+ "Av=Av1*Av2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= 44180.12 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ve1=5.0\n",
+ "Vce1=3.0\n",
+ "Vce2=3.0\n",
+ "Vbe=0.7\n",
+ "Vcc=14.0\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vb2=Ve1+Vce1\n",
+ "Vc1=Vb2\n",
+ "Ve2=Vb2-Vbe\n",
+ "Vr5=Vcc-Ve2-Vce2\n",
+ "R5=Rl/10#use 3.9Kohm satandard value\n",
+ "R5=3.9*10**3\n",
+ "Ic2=Vr5/R5\n",
+ "R6=Ve2/Ic2#use 8.2Kohm as standard and recalculate\n",
+ "R6=8.2*10**3\n",
+ "Ic2=Ve2/R6\n",
+ "Vr3=Vcc-Vc1\n",
+ "print(\" Ic1>>Ib2 %select Ic1=1mA\")\n",
+ "Ic1=1*10**-3\n",
+ "R3=Vr3/Ic1#use standard value as 5.6Kohm and recalculate Ic1 in order ti keep Vb2=8V\n",
+ "R3=5.6*10**3\n",
+ "Ic1=Vr3/R3\n",
+ "R4=Ve1/Ic1\n",
+ "Vr2=Ve1+Vbe\n",
+ "Vr1=Vcc-Ve1-Vbe\n",
+ "R2=10*R4\n",
+ "I2=(Ve1+Vbe)/R2\n",
+ "R1=(Vr1*R2)/Vr2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ic1>>Ib2 %select Ic1=1mA\n",
+ "The value of R1= 67.95 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, Page No 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "re=26.0\n",
+ "R1=68.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "rs=600.0\n",
+ "f1=75.0\n",
+ "R5=3.9*10**3\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Xc1=(Zi+rs)/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=.65*re\n",
+ "Xc3=Xc2\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "C3=C2\n",
+ "Xc4=(R5+Rl)/10\n",
+ "C4=1/(2*3.14*f1*Xc4)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mf' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.48 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10, Page No 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "hie=1.3*10**3\n",
+ "R3=5.6*10**3\n",
+ "R5=3.9*10**3\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Av1=-(hfe*((R3*hie)/(R3+hie)))/hie\n",
+ "Av2=-(hfe*((R5*Rl)/(R5+Rl)))/hie\n",
+ "\n",
+ "#Results\n",
+ "print(\" overall voltage gain is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " overall voltage gain is Av=Av1*Av2\n",
+ "The value of Av= 5546.20 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vp=100.0*10**-3\n",
+ "Rl=100.0\n",
+ "Vbe=0.7\n",
+ "Vcc=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "ip=Vp/Rl\n",
+ "print(\"select Ie2>ip\")\n",
+ "Ie2=2.0*10**-3\n",
+ "Ve1=5.0\n",
+ "Vce1=3.0\n",
+ "Vb2=Ve1+Vce1\n",
+ "Vc1=Vb2\n",
+ "Ve2=Vb2-Vbe\n",
+ "R5=Ve2/Ie2#use 3.3Kohm standard value\n",
+ "R5=3.3*10**3\n",
+ "Ic1=1*10**-3\n",
+ "Vr3=Vcc-Vb2\n",
+ "R3=Vr3/Ic1\n",
+ "R4=Ve1/Ic1#use 4.7Kohm standard value\n",
+ "R4=4.7*10**3\n",
+ "Vb1=Ic1*R4+Vbe\n",
+ "R2=10*R4\n",
+ "R1=((Vcc-Vb1)*R2)/Vr2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select Ie2>ip\n",
+ "The value of R1= 120.39 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12 Page No 498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "Ie1=1.0*10**-3\n",
+ "hfe=50.0\n",
+ "R1=120.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "f1=150.0\n",
+ "Ie2=2.0*10**-3\n",
+ "R5=3.3*10**3\n",
+ "R3=12.0*10**3\n",
+ "Rl=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie1\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Xc1=(Zi+rs)/10\n",
+ "C1=1/(2*3.14*f1*Xc1)#use 6*10**-6 as standard value\n",
+ "Xc2=.65*re\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "re2=26*10**-3/Ie2\n",
+ "Zo=(R5*(re2+R3/hfe))/(R5+(re2+R3/hfe))\n",
+ "Xc3=.65*(Rl+Zo)\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 4.88 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13 Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ie2=2.0*10**-3\n",
+ "hfe=50.0\n",
+ "R5=3.3*10**3\n",
+ "Rl=100.0\n",
+ "hfc2=51.0\n",
+ "R3=12.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie2\n",
+ "hic=hfe*re\n",
+ "Zi2=hic+hfc2*((Rl*R5)/(Rl+R5))\n",
+ "Av1=-(hfe*((R3*Zi2)/(R3+Zi2)))/hie\n",
+ "Av2=1.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage gain is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage gain is Av=Av1*Av2\n",
+ "The value of Av= -143.97 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 503"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "vp=50.0*10**-3\n",
+ "Rl=50.0\n",
+ "Ve2=5.0\n",
+ "Vcc=12.0\n",
+ "Vbe=0.7\n",
+ "hFE=70.0\n",
+ "hfe=100.0\n",
+ "R2=120.0*10**3\n",
+ "f1=150.0\n",
+ "R3=150.0*10**3\n",
+ "R1=5.6*10**3\n",
+ "R4=2.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "ip=vp/Rl\n",
+ "print(\"select Ie2>ip\")\n",
+ "Ie2=2*10**-3\n",
+ "R4=Ve2/Ie2#use standard 2.2Kohm\n",
+ "R4=2.2*10**3\n",
+ "Ie2=Ve2/R4\n",
+ "Ic1=1*10**-3\n",
+ "Vr1=Vcc-(Vbe+Ve2)\n",
+ "R1=Vr1/Ic1#use 5.6kohm and recalculate\n",
+ "R1=5.6*10**3\n",
+ "Ic1=Vr1/R1\n",
+ "Ib1=Ic1/hFE\n",
+ "hie=hfe*(26*10**-3/Ic1)\n",
+ "hie2=hfe*((26*10**-3)/(2.27*10**-3))\n",
+ "Zi1=(R2*hie)/(R2+hie)\n",
+ "Xc1=Zi1/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=R3/100\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "Zo=(((hie2+R1)/hfe)*R4)/(((hie2+R1)/hfe)+R4)\n",
+ "Xc3=Rl+Zo\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select Ie2>ip\n",
+ "The value of C3= 9.20 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vgsoff=-6.0\n",
+ "Idss=20.0*10**-3\n",
+ "Yfs=4000.0*10**-6\n",
+ "Id=2.0*10**-3\n",
+ "Vcc=20.0\n",
+ "Zi=500.0*10**3\n",
+ "R2=560.0*10**3\n",
+ "Rl=80.0*10**3\n",
+ "Vbe=0.7\n",
+ "Vce=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vds=(-Vgsoff)+1-(-Vgs)\n",
+ "Vr3=(Vcc-Vds)/2\n",
+ "Vr4=Vr3\n",
+ "R3=Vr4/Id#use 3.9kohm as standard and recalculate Vr3 and Vr4\n",
+ "R4=R3\n",
+ "R4=3.9*10**3\n",
+ "Vr3=Id*R4\n",
+ "Vr4=Vr3\n",
+ "Vr2=Vr4-(-Vgs)\n",
+ "Vr1=Vcc-Vr2\n",
+ "R1=(Vr1*R2)/Vr2\n",
+ "R6=Rl/10\n",
+ "Vr5=Vr3-Vbe\n",
+ "Vr6=Vcc-Vr5-Vce\n",
+ "Ic2=Vr6/R6\n",
+ "R5=Vr5/Ic2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f kohm' %(R5/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R5= 5.74 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=2.7*10**6\n",
+ "R2=560.0*10**3\n",
+ "f1=150.0\n",
+ "Yfs=8000.0*10**-6\n",
+ "Ie=1.2*10**-3\n",
+ "Rl=80.0*10**3\n",
+ "R6=8.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "Xc1=Zi/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=.65/Yfs\n",
+ "C2=1/(2*3.14*f1*Xc2)#use 15pF as standard value\n",
+ "re=26*10**-3/Ie\n",
+ "Xc3=.65*re\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "Xc4=(R6+Rl)/10\n",
+ "C4=1/(2*3.14*f1*Xc4)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mf' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.12 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "re=22.0\n",
+ "hfe=100.0\n",
+ "R3=3.9*10**3\n",
+ "Yfs=4000*10**-6\n",
+ "R6=8.2*10**3\n",
+ "Rl=80.*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi2=hfe*re\n",
+ "Av1=-Yfs*((R3*Zi2)/(R3+Zi2))\n",
+ "Av2=-(hfe*((R6*Rl)/(R6+Rl)))/Zi2\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage is Av=Av1*Av2\n",
+ "The value of Av= 1902.09 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE=60.0\n",
+ "hfe=60.0\n",
+ "hie=1.4*10**3\n",
+ "Rl=70.0*10**3\n",
+ "Vce=3.0\n",
+ "Vbe=.7\n",
+ "Vcc=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rc2=Rl/10#use 6.8Kohm as standard value\n",
+ "Vrc2=Vcc+Vbe-Vce\n",
+ "Ic=Vrc2/Rc2\n",
+ "Ie=Ic\n",
+ "Re=(Vcc-Vbe)/(2*Ie)#use 4.7 as standard value\n",
+ "Re=4.7*10**3\n",
+ "Rb=Vbe/(10*(Ic/hFE))\n",
+ "Rb1=Rb\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rb= %.2f kohm ' %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb= 3.82 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.19, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=60.0\n",
+ "Ie=1.13*10**-3\n",
+ "hfe=60.0\n",
+ "Rb=3.9*10**3\n",
+ "Rl=70.0*10**3\n",
+ "Rc=6.8*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie#use 20 as standard value\n",
+ "re=20\n",
+ "hie=hfe*re\n",
+ "Zb=2*hie\n",
+ "Zi=(Rb*Zb)/(Rb+Zb)\n",
+ "C1=1/(2*3.14*f1*Zi)\n",
+ "C2=1/(2*3.14*f1*(Rl/10))\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/(2*hie)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= 154.95 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.20, Page No 521"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=20.0\n",
+ "Rl=90.0*10**3\n",
+ "hfe=50.0\n",
+ "hie=1.2*10**3\n",
+ "hib=24.0\n",
+ "Vce=3\n",
+ "Vce1=Vce\n",
+ "Ve=5.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Rl/10#use 8.2kohm as standard value\n",
+ "Rc=8.2*10**3\n",
+ "Vrc=Vcc-Vce-Vce1-Ve\n",
+ "Ic=Vrc/Rc\n",
+ "Re=Ve/Ic\n",
+ "Re=4.7*10**3#use 4.7 as standard value\n",
+ "R3=10*Re\n",
+ "Vb1=Ve+Vbe\n",
+ "I3=Vb1/R3\n",
+ "Vb2=Ve+Vce+Vbe\n",
+ "Vr2=Vb2-Vb1\n",
+ "R2=Vr2/I3\n",
+ "R1=(Vcc-Vb2)/I3\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 93.18 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=25.0\n",
+ "R2=24.7*10**3\n",
+ "R3=47.0*10**3\n",
+ "hie=1.2*10**3\n",
+ "hib=24.0\n",
+ "Rc=9.0*10**3\n",
+ "Rl=90*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(R2*R3*hie)/(R2*R3+R2*hie+R3*hie)\n",
+ "C1=1/(2*3.14*f1*(Zi/10))\n",
+ "C2=1/(2*3.14*f1*(hie/10))\n",
+ "C3=1/(2*3.14*f1*hib)\n",
+ "C4=1/(2*3.14*f1*((Rc+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mF' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.64 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hie=1.0\n",
+ "hfe=50.0\n",
+ "hoe=10.0*10**-6\n",
+ "Cc=5*10**-12\n",
+ "Cp=330*10**-12\n",
+ "Lp=75*10**-6\n",
+ "Rw=1.0\n",
+ "Rl=5.0\n",
+ "hfb=50.0\n",
+ "fo=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "fo=1.0/(2.0*3.14*math.sqrt(Lp*(Cp+Cc)))\n",
+ "print(\"resonance frequency is %3fHz \" %fo)\n",
+ "Zp=Lp/((Cp+Cc)*Rw)\n",
+ "Rc=(1.0/hoe)/1000\n",
+ "RL=(Zp*Rc*Rl)/(Rl*Rc+Rc*Zp+Rl*Zp)\n",
+ "RL1=4.7 #as standard value\n",
+ "Av=(hfb*RL1)/hie\n",
+ "print(\" voltage gain is %d \" %Av)\n",
+ "Qp=7.6\n",
+ "QL=(2*3.14*fo*Lp)/Rw\n",
+ "print(\"since QL>Qp\")\n",
+ "fo=1\n",
+ "B=fo/Qp\n",
+ "\n",
+ "#Results\n",
+ "print(\"bandwidth is %.2f kHz \" %(B*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonance frequency is 1004586.461587Hz \n",
+ " voltage gain is 235 \n",
+ "since QL>Qp\n",
+ "bandwidth is 131.58 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.23, Page No 528"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hie=1.0*10**3\n",
+ "hfe=50.0\n",
+ "hoe=10.0*10**-6\n",
+ "Cc=5.0*10**-12\n",
+ "Cp=330.0*10**-12\n",
+ "Lp=75.0*10**-6\n",
+ "Rw=1.0\n",
+ "Rl=5.0*10**3\n",
+ "fo=1.0*10**6\n",
+ "zP=224.0*10**3\n",
+ "rC=100.0*10**3\n",
+ "K=0.015\n",
+ "Ls=50.0*10**-6\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "RL=(Zp*Rc)/(Rc+Zp)\n",
+ "print(\"voltage gain from the input to the primary memory winding\")\n",
+ "Avp=(hfe*RL)/hie\n",
+ "Vsp=K*math.sqrt(Ls/Lp)\n",
+ "print(\"overall voltage gain from the input to teh secondary winding\")\n",
+ "Av=Avp*Vsp\n",
+ "Qp=Rc/(2*3.14*fo*Lp)\n",
+ "Ql=471\n",
+ "Q=(Ql*Qp)/(Ql+Qp)\n",
+ "B=fo/Q\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"bandwidth is %.2f kHz \" %(B/10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain from the input to the primary memory winding\n",
+ "overall voltage gain from the input to teh secondary winding\n",
+ "bandwidth is 47.12 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=1.0*10**6\n",
+ "L2=50.0*10**-6\n",
+ "K=0.015\n",
+ "L1=75*10**-6\n",
+ "rs=5.0\n",
+ "Rw=1.0\n",
+ "Lp=100.0*10**-6\n",
+ "Cp=330.0*10**-12\n",
+ "Cc=5.0*10**-12\n",
+ "Rc=100.0*10**3\n",
+ "hfe=50.0\n",
+ "hie=1.0*10**3\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "C2=1/(((2*3.14*f)**2)*L2)\n",
+ "M=K*math.sqrt(L1*L2)\n",
+ "Rs=(((2*3.14*f)**2)*(M)**2)/rs\n",
+ "Rp=Rs+Rw\n",
+ "Zp=Lp/((Cp+Cc)*Rp)\n",
+ "Rl=(Zp*Rc)/(Zp+Rc)\n",
+ "print(\"voltage gain from the input to primary winding\")\n",
+ "Avp=(hfe*Rl)/hie\n",
+ "Vsp=12.2*10**-3\n",
+ "Vos=((2*3.14*f)*L2)/rs\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage gain from the input to secondary winding \")\n",
+ "Av=Avp*Vos*Vsp\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain from the input to primary winding\n",
+ "overall voltage gain from the input to secondary winding \n",
+ "The value of Av= 1074.71 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter12_2.ipynb b/Electronic_Devices_and_Circuits/Chapter12_2.ipynb
new file mode 100755
index 00000000..b0fb9991
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter12_2.ipynb
@@ -0,0 +1,1196 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Small signal Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "hie=1.0*10**3\n",
+ "hib=20.0\n",
+ "f1=100.0\n",
+ "Rc=3.3*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Re=Rc\n",
+ "print(\" required capacitance\")\n",
+ "Xc2=hib\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "print(\" voltage gain with emitter terminal completely bypassed to ground\")\n",
+ "Av=-(hfe*Rc)/hie\n",
+ "print(\"voltage gain when f=100\")\n",
+ "Av=-(hfe*Rc)/math.sqrt(((hie**2)+((1+hfe)*Xc2)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain when C2 is incorrectly selected as Xc2=Re/10\")\n",
+ "Avx=-(hfe*Rc)/math.sqrt(((hie**2)+((1+hfe)*(Re/10))**2))\n",
+ "print('The value of Avx= %.2f ' %(Avx))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " required capacitance\n",
+ " voltage gain with emitter terminal completely bypassed to ground\n",
+ "voltage gain when f=100\n",
+ " voltage gain when C2 is incorrectly selected as Xc2=Re/10\n",
+ "The value of Avx= -9.79 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=24.0\n",
+ "Ve=5.0\n",
+ "Vce=3.0\n",
+ "Rl=120.0*10**3\n",
+ "Vbe=0.7\n",
+ "Rc=Rl/10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vrc=Vcc-Vce-Ve\n",
+ "Ic=Vrc/Rc\n",
+ "Re=Ve/Ic#use 3.9Kohm standard value to make Ic littel less than design level\n",
+ "Re=3.9*10**3\n",
+ "R2=10*Re\n",
+ "I2=(Ve+Vbe)/R2\n",
+ "R1=(Vcc-Ve-Vbe)/I2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f ' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 125.21 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "Ie=1.3*10**-3\n",
+ "f1=100.0\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rl=R1\n",
+ "re=(26*10**-3)/Ie\n",
+ "Xc2=re\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "C1=1/((2*3.14*f1*((Zi+rs)/10)))\n",
+ "C3=1/(2*3.14*f1*((Rc+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf ' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 0.12 mf \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page No 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "rs=600.0\n",
+ "f1=100.0\n",
+ "Yfs=6000.0*10**-6\n",
+ "R1=4.7*10**6\n",
+ "R2=1.0*10**6\n",
+ "Rd=6.8*10**3\n",
+ "Rl=120*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Xc2=1/Yfs\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "C1=1/(2*3.14*f1*(Zi+rs)/10)\n",
+ "C3=1/(2*3.14*f1*(Rd+Rl)/10)\n",
+ "\n",
+ "#Calculations\n",
+ "print('The value of C3= %.2f mF' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 0.13 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "hie=2.0*10**3\n",
+ "R7=12.0*10**3\n",
+ "Zo=R7\n",
+ "R5=R1\n",
+ "R6=R2\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "R3=R7\n",
+ "Zl=R1\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Zi2=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Av1=-(hfe*((R3*Zi2)/(R3+Zi2)))/hie\n",
+ "Av2=-(hfe*((R7*Zl)/(R7+Zl)))/hie\n",
+ "Av=Av1*Av2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= 44180.12 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ve1=5.0\n",
+ "Vce1=3.0\n",
+ "Vce2=3.0\n",
+ "Vbe=0.7\n",
+ "Vcc=14.0\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vb2=Ve1+Vce1\n",
+ "Vc1=Vb2\n",
+ "Ve2=Vb2-Vbe\n",
+ "Vr5=Vcc-Ve2-Vce2\n",
+ "R5=Rl/10#use 3.9Kohm satandard value\n",
+ "R5=3.9*10**3\n",
+ "Ic2=Vr5/R5\n",
+ "R6=Ve2/Ic2#use 8.2Kohm as standard and recalculate\n",
+ "R6=8.2*10**3\n",
+ "Ic2=Ve2/R6\n",
+ "Vr3=Vcc-Vc1\n",
+ "print(\" Ic1>>Ib2 %select Ic1=1mA\")\n",
+ "Ic1=1*10**-3\n",
+ "R3=Vr3/Ic1#use standard value as 5.6Kohm and recalculate Ic1 in order ti keep Vb2=8V\n",
+ "R3=5.6*10**3\n",
+ "Ic1=Vr3/R3\n",
+ "R4=Ve1/Ic1\n",
+ "Vr2=Ve1+Vbe\n",
+ "Vr1=Vcc-Ve1-Vbe\n",
+ "R2=10*R4\n",
+ "I2=(Ve1+Vbe)/R2\n",
+ "R1=(Vr1*R2)/Vr2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ic1>>Ib2 %select Ic1=1mA\n",
+ "The value of R1= 67.95 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, Page No 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "re=26.0\n",
+ "R1=68.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "rs=600.0\n",
+ "f1=75.0\n",
+ "R5=3.9*10**3\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Xc1=(Zi+rs)/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=.65*re\n",
+ "Xc3=Xc2\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "C3=C2\n",
+ "Xc4=(R5+Rl)/10\n",
+ "C4=1/(2*3.14*f1*Xc4)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mf' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.48 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10, Page No 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=50.0\n",
+ "hie=1.3*10**3\n",
+ "R3=5.6*10**3\n",
+ "R5=3.9*10**3\n",
+ "Rl=40.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Av1=-(hfe*((R3*hie)/(R3+hie)))/hie\n",
+ "Av2=-(hfe*((R5*Rl)/(R5+Rl)))/hie\n",
+ "\n",
+ "#Results\n",
+ "print(\" overall voltage gain is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " overall voltage gain is Av=Av1*Av2\n",
+ "The value of Av= 5546.20 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vp=100.0*10**-3\n",
+ "Rl=100.0\n",
+ "Vbe=0.7\n",
+ "Vcc=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "ip=Vp/Rl\n",
+ "print(\"select Ie2>ip\")\n",
+ "Ie2=2.0*10**-3\n",
+ "Ve1=5.0\n",
+ "Vce1=3.0\n",
+ "Vb2=Ve1+Vce1\n",
+ "Vc1=Vb2\n",
+ "Ve2=Vb2-Vbe\n",
+ "R5=Ve2/Ie2#use 3.3Kohm standard value\n",
+ "R5=3.3*10**3\n",
+ "Ic1=1*10**-3\n",
+ "Vr3=Vcc-Vb2\n",
+ "R3=Vr3/Ic1\n",
+ "R4=Ve1/Ic1#use 4.7Kohm standard value\n",
+ "R4=4.7*10**3\n",
+ "Vb1=Ic1*R4+Vbe\n",
+ "R2=10*R4\n",
+ "R1=((Vcc-Vb1)*R2)/Vr2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select Ie2>ip\n",
+ "The value of R1= 120.39 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12 Page No 498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "Ie1=1.0*10**-3\n",
+ "hfe=50.0\n",
+ "R1=120.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "f1=150.0\n",
+ "Ie2=2.0*10**-3\n",
+ "R5=3.3*10**3\n",
+ "R3=12.0*10**3\n",
+ "Rl=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie1\n",
+ "hie=(1+hfe)*re\n",
+ "Zi=(R1*R2*hie)/(R1*R2+R1*hie+R2*hie)\n",
+ "Xc1=(Zi+rs)/10\n",
+ "C1=1/(2*3.14*f1*Xc1)#use 6*10**-6 as standard value\n",
+ "Xc2=.65*re\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "re2=26*10**-3/Ie2\n",
+ "Zo=(R5*(re2+R3/hfe))/(R5+(re2+R3/hfe))\n",
+ "Xc3=.65*(Rl+Zo)\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C3= 4.88 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13 Page No 499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ie2=2.0*10**-3\n",
+ "hfe=50.0\n",
+ "R5=3.3*10**3\n",
+ "Rl=100.0\n",
+ "hfc2=51.0\n",
+ "R3=12.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie2\n",
+ "hic=hfe*re\n",
+ "Zi2=hic+hfc2*((Rl*R5)/(Rl+R5))\n",
+ "Av1=-(hfe*((R3*Zi2)/(R3+Zi2)))/hie\n",
+ "Av2=1.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage gain is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage gain is Av=Av1*Av2\n",
+ "The value of Av= -143.97 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 503"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "vp=50.0*10**-3\n",
+ "Rl=50.0\n",
+ "Ve2=5.0\n",
+ "Vcc=12.0\n",
+ "Vbe=0.7\n",
+ "hFE=70.0\n",
+ "hfe=100.0\n",
+ "R2=120.0*10**3\n",
+ "f1=150.0\n",
+ "R3=150.0*10**3\n",
+ "R1=5.6*10**3\n",
+ "R4=2.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "ip=vp/Rl\n",
+ "print(\"select Ie2>ip\")\n",
+ "Ie2=2*10**-3\n",
+ "R4=Ve2/Ie2#use standard 2.2Kohm\n",
+ "R4=2.2*10**3\n",
+ "Ie2=Ve2/R4\n",
+ "Ic1=1*10**-3\n",
+ "Vr1=Vcc-(Vbe+Ve2)\n",
+ "R1=Vr1/Ic1#use 5.6kohm and recalculate\n",
+ "R1=5.6*10**3\n",
+ "Ic1=Vr1/R1\n",
+ "Ib1=Ic1/hFE\n",
+ "hie=hfe*(26*10**-3/Ic1)\n",
+ "hie2=hfe*((26*10**-3)/(2.27*10**-3))\n",
+ "Zi1=(R2*hie)/(R2+hie)\n",
+ "Xc1=Zi1/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=R3/100\n",
+ "C2=1/(2*3.14*f1*Xc2)\n",
+ "Zo=(((hie2+R1)/hfe)*R4)/(((hie2+R1)/hfe)+R4)\n",
+ "Xc3=Rl+Zo\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C3= %.2f mf' %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select Ie2>ip\n",
+ "The value of C3= 9.20 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vgsoff=-6.0\n",
+ "Idss=20.0*10**-3\n",
+ "Yfs=4000.0*10**-6\n",
+ "Id=2.0*10**-3\n",
+ "Vcc=20.0\n",
+ "Zi=500.0*10**3\n",
+ "R2=560.0*10**3\n",
+ "Rl=80.0*10**3\n",
+ "Vbe=0.7\n",
+ "Vce=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vgs=Vgsoff*(1-math.sqrt(Id/Idss))\n",
+ "Vds=(-Vgsoff)+1-(-Vgs)\n",
+ "Vr3=(Vcc-Vds)/2\n",
+ "Vr4=Vr3\n",
+ "R3=Vr4/Id#use 3.9kohm as standard and recalculate Vr3 and Vr4\n",
+ "R4=R3\n",
+ "R4=3.9*10**3\n",
+ "Vr3=Id*R4\n",
+ "Vr4=Vr3\n",
+ "Vr2=Vr4-(-Vgs)\n",
+ "Vr1=Vcc-Vr2\n",
+ "R1=(Vr1*R2)/Vr2\n",
+ "R6=Rl/10\n",
+ "Vr5=Vr3-Vbe\n",
+ "Vr6=Vcc-Vr5-Vce\n",
+ "Ic2=Vr6/R6\n",
+ "R5=Vr5/Ic2\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f kohm' %(R5/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R5= 5.74 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 508"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=2.7*10**6\n",
+ "R2=560.0*10**3\n",
+ "f1=150.0\n",
+ "Yfs=8000.0*10**-6\n",
+ "Ie=1.2*10**-3\n",
+ "Rl=80.0*10**3\n",
+ "R6=8.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(R1*R2)/(R1+R2)\n",
+ "Xc1=Zi/10\n",
+ "C1=1/(2*3.14*f1*Xc1)\n",
+ "Xc2=.65/Yfs\n",
+ "C2=1/(2*3.14*f1*Xc2)#use 15pF as standard value\n",
+ "re=26*10**-3/Ie\n",
+ "Xc3=.65*re\n",
+ "C3=1/(2*3.14*f1*Xc3)\n",
+ "Xc4=(R6+Rl)/10\n",
+ "C4=1/(2*3.14*f1*Xc4)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mf' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.12 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "re=22.0\n",
+ "hfe=100.0\n",
+ "R3=3.9*10**3\n",
+ "Yfs=4000*10**-6\n",
+ "R6=8.2*10**3\n",
+ "Rl=80.*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi2=hfe*re\n",
+ "Av1=-Yfs*((R3*Zi2)/(R3+Zi2))\n",
+ "Av2=-(hfe*((R6*Rl)/(R6+Rl)))/Zi2\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage is Av=Av1*Av2\")\n",
+ "Av=Av1*Av2\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall voltage is Av=Av1*Av2\n",
+ "The value of Av= 1902.09 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE=60.0\n",
+ "hfe=60.0\n",
+ "hie=1.4*10**3\n",
+ "Rl=70.0*10**3\n",
+ "Vce=3.0\n",
+ "Vbe=.7\n",
+ "Vcc=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rc2=Rl/10#use 6.8Kohm as standard value\n",
+ "Vrc2=Vcc+Vbe-Vce\n",
+ "Ic=Vrc2/Rc2\n",
+ "Ie=Ic\n",
+ "Re=(Vcc-Vbe)/(2*Ie)#use 4.7 as standard value\n",
+ "Re=4.7*10**3\n",
+ "Rb=Vbe/(10*(Ic/hFE))\n",
+ "Rb1=Rb\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Rb= %.2f kohm ' %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb= 3.82 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.19, Page No 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=60.0\n",
+ "Ie=1.13*10**-3\n",
+ "hfe=60.0\n",
+ "Rb=3.9*10**3\n",
+ "Rl=70.0*10**3\n",
+ "Rc=6.8*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "re=26*10**-3/Ie#use 20 as standard value\n",
+ "re=20\n",
+ "hie=hfe*re\n",
+ "Zb=2*hie\n",
+ "Zi=(Rb*Zb)/(Rb+Zb)\n",
+ "C1=1/(2*3.14*f1*Zi)\n",
+ "C2=1/(2*3.14*f1*(Rl/10))\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/(2*hie)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Av= 154.95 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.20, Page No 521"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=20.0\n",
+ "Rl=90.0*10**3\n",
+ "hfe=50.0\n",
+ "hie=1.2*10**3\n",
+ "hib=24.0\n",
+ "Vce=3\n",
+ "Vce1=Vce\n",
+ "Ve=5.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Rl/10#use 8.2kohm as standard value\n",
+ "Rc=8.2*10**3\n",
+ "Vrc=Vcc-Vce-Vce1-Ve\n",
+ "Ic=Vrc/Rc\n",
+ "Re=Ve/Ic\n",
+ "Re=4.7*10**3#use 4.7 as standard value\n",
+ "R3=10*Re\n",
+ "Vb1=Ve+Vbe\n",
+ "I3=Vb1/R3\n",
+ "Vb2=Ve+Vce+Vbe\n",
+ "Vr2=Vb2-Vb1\n",
+ "R2=Vr2/I3\n",
+ "R1=(Vcc-Vb2)/I3\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 93.18 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=25.0\n",
+ "R2=24.7*10**3\n",
+ "R3=47.0*10**3\n",
+ "hie=1.2*10**3\n",
+ "hib=24.0\n",
+ "Rc=9.0*10**3\n",
+ "Rl=90*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(R2*R3*hie)/(R2*R3+R2*hie+R3*hie)\n",
+ "C1=1/(2*3.14*f1*(Zi/10))\n",
+ "C2=1/(2*3.14*f1*(hie/10))\n",
+ "C3=1/(2*3.14*f1*hib)\n",
+ "C4=1/(2*3.14*f1*((Rc+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C4= %.2f mF' %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4= 0.64 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hie=1.0\n",
+ "hfe=50.0\n",
+ "hoe=10.0*10**-6\n",
+ "Cc=5*10**-12\n",
+ "Cp=330*10**-12\n",
+ "Lp=75*10**-6\n",
+ "Rw=1.0\n",
+ "Rl=5.0\n",
+ "hfb=50.0\n",
+ "fo=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "fo=1.0/(2.0*3.14*math.sqrt(Lp*(Cp+Cc)))\n",
+ "print(\"resonance frequency is %3fHz \" %fo)\n",
+ "Zp=Lp/((Cp+Cc)*Rw)\n",
+ "Rc=(1.0/hoe)/1000\n",
+ "RL=(Zp*Rc*Rl)/(Rl*Rc+Rc*Zp+Rl*Zp)\n",
+ "RL1=4.7 #as standard value\n",
+ "Av=(hfb*RL1)/hie\n",
+ "print(\" voltage gain is %d \" %Av)\n",
+ "Qp=7.6\n",
+ "QL=(2*3.14*fo*Lp)/Rw\n",
+ "print(\"since QL>Qp\")\n",
+ "fo=1\n",
+ "B=fo/Qp\n",
+ "\n",
+ "#Results\n",
+ "print(\"bandwidth is %.2f kHz \" %(B*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonance frequency is 1004586.461587Hz \n",
+ " voltage gain is 235 \n",
+ "since QL>Qp\n",
+ "bandwidth is 131.58 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.23, Page No 528"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hie=1.0*10**3\n",
+ "hfe=50.0\n",
+ "hoe=10.0*10**-6\n",
+ "Cc=5.0*10**-12\n",
+ "Cp=330.0*10**-12\n",
+ "Lp=75.0*10**-6\n",
+ "Rw=1.0\n",
+ "Rl=5.0*10**3\n",
+ "fo=1.0*10**6\n",
+ "zP=224.0*10**3\n",
+ "rC=100.0*10**3\n",
+ "K=0.015\n",
+ "Ls=50.0*10**-6\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "RL=(Zp*Rc)/(Rc+Zp)\n",
+ "print(\"voltage gain from the input to the primary memory winding\")\n",
+ "Avp=(hfe*RL)/hie\n",
+ "Vsp=K*math.sqrt(Ls/Lp)\n",
+ "print(\"overall voltage gain from the input to teh secondary winding\")\n",
+ "Av=Avp*Vsp\n",
+ "Qp=Rc/(2*3.14*fo*Lp)\n",
+ "Ql=471\n",
+ "Q=(Ql*Qp)/(Ql+Qp)\n",
+ "B=fo/Q\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"bandwidth is %.2f kHz \" %(B/10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain from the input to the primary memory winding\n",
+ "overall voltage gain from the input to teh secondary winding\n",
+ "bandwidth is 47.12 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=1.0*10**6\n",
+ "L2=50.0*10**-6\n",
+ "K=0.015\n",
+ "L1=75*10**-6\n",
+ "rs=5.0\n",
+ "Rw=1.0\n",
+ "Lp=100.0*10**-6\n",
+ "Cp=330.0*10**-12\n",
+ "Cc=5.0*10**-12\n",
+ "Rc=100.0*10**3\n",
+ "hfe=50.0\n",
+ "hie=1.0*10**3\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "C2=1/(((2*3.14*f)**2)*L2)\n",
+ "M=K*math.sqrt(L1*L2)\n",
+ "Rs=(((2*3.14*f)**2)*(M)**2)/rs\n",
+ "Rp=Rs+Rw\n",
+ "Zp=Lp/((Cp+Cc)*Rp)\n",
+ "Rl=(Zp*Rc)/(Zp+Rc)\n",
+ "print(\"voltage gain from the input to primary winding\")\n",
+ "Avp=(hfe*Rl)/hie\n",
+ "Vsp=12.2*10**-3\n",
+ "Vos=((2*3.14*f)*L2)/rs\n",
+ "\n",
+ "#Results\n",
+ "print(\"overall voltage gain from the input to secondary winding \")\n",
+ "Av=Avp*Vos*Vsp\n",
+ "print('The value of Av= %.2f ' %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain from the input to primary winding\n",
+ "overall voltage gain from the input to secondary winding \n",
+ "The value of Av= 1074.71 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter13.ipynb b/Electronic_Devices_and_Circuits/Chapter13.ipynb
new file mode 100755
index 00000000..0a7d7550
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter13.ipynb
@@ -0,0 +1,733 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Amplifier with negative feedback"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Av=100000.0\n",
+ "B=1.0/100\n",
+ "print(\"when Av=100000\")\n",
+ "\n",
+ "#Calculations\n",
+ "Acl=Av/(1+Av*B)\n",
+ "print(\"when Av is 150000\")\n",
+ "Av=150000\n",
+ "Acl=Av/(1+Av*B)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when Av is 50000\")\n",
+ "Av=50000\n",
+ "Acl=Av/(1+Av*B)\n",
+ "print('The value of Acl= %.2f ' %(Acl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Av=100000\n",
+ "when Av is 150000\n",
+ "when Av is 50000\n",
+ "The value of Acl= 99.80 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rf2=560.0\n",
+ "Rf1=56.0*10**3\n",
+ "Av=100000.0\n",
+ "Zb=1.0*10**3\n",
+ "R1=68.0*10**3\n",
+ "R2=33.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=Rf2/(Rf2+Rf1)\n",
+ "Zi=(1+Av*B)*Zb\n",
+ "Zin=(Zi*R1*R2)/(R1*R2+R1*Zi+R2*Zi)\n",
+ "\n",
+ "#Results\n",
+ "print(\"input impedance with negative feedback is %.2f ohm \" %(Zin/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance with negative feedback is 21.73 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Zb=1.0*10**3\n",
+ "B=1.0/100\n",
+ "Av=5562.0\n",
+ "R1=68.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "hoe=1.0/(50*10**3)\n",
+ "Rc=3.9*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(1+Av*B)*Zb\n",
+ "Zin=(R1*R2*Zi)/(R1*R2+R2*Zi+R1*Zi)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(Rc*Zo)/(Rc+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\" circuit output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " circuit output impedance is 720.04 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 554"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Zb=1.0*10**3\n",
+ "hoe=1.0/(85*10**3)\n",
+ "Av=58000.0\n",
+ "Rf2=220.0\n",
+ "Rf1=16.2*10**3\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "R7=12.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=Rf2/(Rf2+Rf1)\n",
+ "print(\"voltage gain\")\n",
+ "Acl=Av/(1+Av*B)\n",
+ "Zi=Zb*(1+Av*B)\n",
+ "Zin=(Zi*R1*R2)/(Zi*R1+R2*R1+R2*Zi)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(R7*Zo)/(R7+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain\n",
+ "output impedance is 108.25 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 558"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rf2=220.0\n",
+ "R4=3.9*10**3\n",
+ "Acl=75.0\n",
+ "f=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rf1=(Acl-1)*Rf2\n",
+ "Xc2=Rf2\n",
+ "C2=1/(2*3.14*f*Rf2)\n",
+ "Xcf1=Rf1/100\n",
+ "Cf1=1/(2*3.14*f*Xcf1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Cf1= %.2f mF' %(Cf1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Cf1= 9.78 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Acl=300.0\n",
+ "Rf2=220.0\n",
+ "R4=4.7*10**3\n",
+ "f=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rf1=(Acl-1)*Rf2\n",
+ "xc2=Rf2\n",
+ "C2=1.0/(2*3.14*f*Rf2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C2= %.2f mf' %(C2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C2= 7.24 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7, Page No 565"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "Vbe=0.7\n",
+ "Ic1=1.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2=Ic1\n",
+ "Ic3=Ic2\n",
+ "Ic4=Ic3\n",
+ "Vee=10.0\n",
+ "Vce=3.0\n",
+ "Acl=33.0\n",
+ "print(\"different resistor value of circuit\")\n",
+ "R1=Vbe/((10*Ic1)/hfe)\n",
+ "R3=(Vee-Vbe)/(Ic1+Ic2)\n",
+ "Vr2=Vee+Vbe-Vce\n",
+ "R4=Vr2/Ic1\n",
+ "R2=R4\n",
+ "R7=(Vr2-Vbe)/(Ic3+Ic4)\n",
+ "R8=Vee/Ic3\n",
+ "R6=6.8*10**3\n",
+ "R5=(Acl-1)*R6\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f kohm' %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "different resistor value of circuit\n",
+ "The value of R5= 217.60 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8 Page No 566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Av=25000.0\n",
+ "hie=2.0*10**3\n",
+ "hib=25.0\n",
+ "hoe=1.0/(100*10**3)\n",
+ "R6=6.8*10**3\n",
+ "R5=220.0*10**3\n",
+ "R1=R6\n",
+ "\n",
+ "#Calculations\n",
+ "R8=10*10**3\n",
+ "B=R6/(R5+R6)\n",
+ "Acl=Av/(1+Av*B)\n",
+ "Zi=2*hie*(1+Av*B)\n",
+ "Zin=(Zi*R1)/(Zi+R1)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(R8*Zo)/(R8+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output impedance is 131.48 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.9 Page No 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hic=2.0*10**3\n",
+ "hie=hic\n",
+ "hfe=100.0\n",
+ "hfc=100.0\n",
+ "Av=25000.0\n",
+ "B=1.0/33.4\n",
+ "\n",
+ "#Calculations\n",
+ "R8=10*10**3\n",
+ "R5=R8\n",
+ "Ze=(hic+R8)/hfc\n",
+ "Zo=Ze/(1+Av*B)\n",
+ "Zout=(R5*Zo)/(R5+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2fohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output impedance is 0.16ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.10 Page No 570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hfemin=100.0\n",
+ "hfemax=400.0\n",
+ "hiemin=2.0*10**3\n",
+ "hiemax=5.0*10**3\n",
+ "Rc=12.0*10**3\n",
+ "Rl=120.0*10**3\n",
+ "Re1=150.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" voltage gain at extreme value \")\n",
+ "Avmax=(hfemax*((Rc*Rl)/(Rc+Rl)))/(hiemax+Re1*(1+hfemax))\n",
+ "Avmin=(hfemin*((Rc*Rl)/(Rc+Rl)))/(hiemin+Re1*(1+hfemin))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"approximate voltage gain\")\n",
+ "Av=((Rc*Rl)/(Rc+Rl))/Re1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage gain at extreme value \n",
+ "approximate voltage gain\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.11, Page No 571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Av=70.0\n",
+ "f=100.0\n",
+ "rs=600.0\n",
+ "Rc=12.0*10**3\n",
+ "Rl=120*10**3\n",
+ "Re2=3.9*10**3\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R1=Rl\n",
+ "R2=39.0*10**3\n",
+ "Re1=150.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+Re1*(1+hfe)\n",
+ "Zin=(R1*R2*Zb)/(R1*R2+R1*Zb+R2*Zb)\n",
+ "C1=1/(2*3.14*f*((Zin+rs)/10))\n",
+ "C2=1/(2*3.14*f*Re1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C2= %.2f mF ' %(C2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C2= 10.62 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.12, Page No 573"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=1000.0\n",
+ "f=100.0\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R8=12.0*10**3\n",
+ "Rl=120*10**3\n",
+ "R10=3.9*10**3\n",
+ "R6=Rl\n",
+ "R7=39.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R3=R8\n",
+ "Av1=math.sqrt(Av)\n",
+ "Av2=Av1\n",
+ "R9=((R8*Rl)/(R8+Rl))/Av2\n",
+ "R9=330#use standard value\n",
+ "Av2=((R8*Rl)/(R8+Rl))/R9\n",
+ "Av1=Av/Av2\n",
+ "Zb=hie+R9*(1+hfe)\n",
+ "Zin=(R6*R7*Zb)/(R6*R7+R6*Zb+R7*Zb)\n",
+ "R4=((R3*Zin)/(R3+Zin))/Av1\n",
+ "R5=R10-R4\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f ' %(R5/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R5= 3.67 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.13, Page No 574"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R8=12.0*10**3\n",
+ "Rl=120.0*10**3\n",
+ "R10=3.9*10**3\n",
+ "R6=Rl\n",
+ "R7=39.0*10**3\n",
+ "R3=R8\n",
+ "R4=220.0\n",
+ "rs=600.0\n",
+ "Zin2=16.0*10**3\n",
+ "R9=330.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+R4*(1+hfe)\n",
+ "Zin=(R1*R2*Zb)/(R1*R2+R1*Zb+R2*Zb)\n",
+ "C1=1.0/(2*3.14*f*((Zin+rs)/10))\n",
+ "Xc2=0.65*R4\n",
+ "C2=1.0/(2*3.14*f*Xc2)\n",
+ "C3=1.0/(2*3.14*f*((Zin2+R3)/10))\n",
+ "C4=1.0/(2*3.14*f*.65*R9)\n",
+ "C5=1.0/(2*3.14*f*((R8+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C5= %.2f mF ' %(C5*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C5= 0.12 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.14, Page No 580"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "hie=2.0*10**3\n",
+ "R4=100.0\n",
+ "R1=5.6*10**3\n",
+ "R6=2.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=hie+(1+hfe)*R4\n",
+ "print(\"open loop current gain\")\n",
+ "Ai=(hfe*hfe*R1)/(R1+Zi)\n",
+ "B=R4/(R4+R6)\n",
+ "print(\"closed loop gain\")\n",
+ "Acl=Ai/(1+Ai*B)\n",
+ "Zi=hie/(1+Ai*B)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Zi= %.2f ohm ' %(Zi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "open loop current gain\n",
+ "closed loop gain\n",
+ "The value of Zi= 14.43 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.15, Page No 585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=60000.0\n",
+ "Acl=300.0\n",
+ "f1=15.0*10**3\n",
+ "B=1.0/300\n",
+ "\n",
+ "#Calculations\n",
+ "f2=(Av*f1)/Acl\n",
+ "print(\"% distortion with NFB\")\n",
+ "NFB=(.1/(1+Av*B))*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" percenatge distortion with NFB is %.3f percent \" %NFB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% distortion with NFB\n",
+ " percenatge distortion with NFB is 0.050 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter13_1.ipynb b/Electronic_Devices_and_Circuits/Chapter13_1.ipynb
new file mode 100755
index 00000000..0a7d7550
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter13_1.ipynb
@@ -0,0 +1,733 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Amplifier with negative feedback"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Av=100000.0\n",
+ "B=1.0/100\n",
+ "print(\"when Av=100000\")\n",
+ "\n",
+ "#Calculations\n",
+ "Acl=Av/(1+Av*B)\n",
+ "print(\"when Av is 150000\")\n",
+ "Av=150000\n",
+ "Acl=Av/(1+Av*B)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when Av is 50000\")\n",
+ "Av=50000\n",
+ "Acl=Av/(1+Av*B)\n",
+ "print('The value of Acl= %.2f ' %(Acl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Av=100000\n",
+ "when Av is 150000\n",
+ "when Av is 50000\n",
+ "The value of Acl= 99.80 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rf2=560.0\n",
+ "Rf1=56.0*10**3\n",
+ "Av=100000.0\n",
+ "Zb=1.0*10**3\n",
+ "R1=68.0*10**3\n",
+ "R2=33.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=Rf2/(Rf2+Rf1)\n",
+ "Zi=(1+Av*B)*Zb\n",
+ "Zin=(Zi*R1*R2)/(R1*R2+R1*Zi+R2*Zi)\n",
+ "\n",
+ "#Results\n",
+ "print(\"input impedance with negative feedback is %.2f ohm \" %(Zin/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance with negative feedback is 21.73 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Zb=1.0*10**3\n",
+ "B=1.0/100\n",
+ "Av=5562.0\n",
+ "R1=68.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "hoe=1.0/(50*10**3)\n",
+ "Rc=3.9*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(1+Av*B)*Zb\n",
+ "Zin=(R1*R2*Zi)/(R1*R2+R2*Zi+R1*Zi)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(Rc*Zo)/(Rc+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\" circuit output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " circuit output impedance is 720.04 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 554"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Zb=1.0*10**3\n",
+ "hoe=1.0/(85*10**3)\n",
+ "Av=58000.0\n",
+ "Rf2=220.0\n",
+ "Rf1=16.2*10**3\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "R7=12.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=Rf2/(Rf2+Rf1)\n",
+ "print(\"voltage gain\")\n",
+ "Acl=Av/(1+Av*B)\n",
+ "Zi=Zb*(1+Av*B)\n",
+ "Zin=(Zi*R1*R2)/(Zi*R1+R2*R1+R2*Zi)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(R7*Zo)/(R7+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain\n",
+ "output impedance is 108.25 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 558"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rf2=220.0\n",
+ "R4=3.9*10**3\n",
+ "Acl=75.0\n",
+ "f=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rf1=(Acl-1)*Rf2\n",
+ "Xc2=Rf2\n",
+ "C2=1/(2*3.14*f*Rf2)\n",
+ "Xcf1=Rf1/100\n",
+ "Cf1=1/(2*3.14*f*Xcf1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Cf1= %.2f mF' %(Cf1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Cf1= 9.78 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Acl=300.0\n",
+ "Rf2=220.0\n",
+ "R4=4.7*10**3\n",
+ "f=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rf1=(Acl-1)*Rf2\n",
+ "xc2=Rf2\n",
+ "C2=1.0/(2*3.14*f*Rf2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C2= %.2f mf' %(C2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C2= 7.24 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7, Page No 565"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "Vbe=0.7\n",
+ "Ic1=1.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2=Ic1\n",
+ "Ic3=Ic2\n",
+ "Ic4=Ic3\n",
+ "Vee=10.0\n",
+ "Vce=3.0\n",
+ "Acl=33.0\n",
+ "print(\"different resistor value of circuit\")\n",
+ "R1=Vbe/((10*Ic1)/hfe)\n",
+ "R3=(Vee-Vbe)/(Ic1+Ic2)\n",
+ "Vr2=Vee+Vbe-Vce\n",
+ "R4=Vr2/Ic1\n",
+ "R2=R4\n",
+ "R7=(Vr2-Vbe)/(Ic3+Ic4)\n",
+ "R8=Vee/Ic3\n",
+ "R6=6.8*10**3\n",
+ "R5=(Acl-1)*R6\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f kohm' %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "different resistor value of circuit\n",
+ "The value of R5= 217.60 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8 Page No 566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Av=25000.0\n",
+ "hie=2.0*10**3\n",
+ "hib=25.0\n",
+ "hoe=1.0/(100*10**3)\n",
+ "R6=6.8*10**3\n",
+ "R5=220.0*10**3\n",
+ "R1=R6\n",
+ "\n",
+ "#Calculations\n",
+ "R8=10*10**3\n",
+ "B=R6/(R5+R6)\n",
+ "Acl=Av/(1+Av*B)\n",
+ "Zi=2*hie*(1+Av*B)\n",
+ "Zin=(Zi*R1)/(Zi+R1)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(R8*Zo)/(R8+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output impedance is 131.48 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.9 Page No 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hic=2.0*10**3\n",
+ "hie=hic\n",
+ "hfe=100.0\n",
+ "hfc=100.0\n",
+ "Av=25000.0\n",
+ "B=1.0/33.4\n",
+ "\n",
+ "#Calculations\n",
+ "R8=10*10**3\n",
+ "R5=R8\n",
+ "Ze=(hic+R8)/hfc\n",
+ "Zo=Ze/(1+Av*B)\n",
+ "Zout=(R5*Zo)/(R5+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2fohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output impedance is 0.16ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.10 Page No 570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hfemin=100.0\n",
+ "hfemax=400.0\n",
+ "hiemin=2.0*10**3\n",
+ "hiemax=5.0*10**3\n",
+ "Rc=12.0*10**3\n",
+ "Rl=120.0*10**3\n",
+ "Re1=150.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" voltage gain at extreme value \")\n",
+ "Avmax=(hfemax*((Rc*Rl)/(Rc+Rl)))/(hiemax+Re1*(1+hfemax))\n",
+ "Avmin=(hfemin*((Rc*Rl)/(Rc+Rl)))/(hiemin+Re1*(1+hfemin))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"approximate voltage gain\")\n",
+ "Av=((Rc*Rl)/(Rc+Rl))/Re1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage gain at extreme value \n",
+ "approximate voltage gain\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.11, Page No 571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Av=70.0\n",
+ "f=100.0\n",
+ "rs=600.0\n",
+ "Rc=12.0*10**3\n",
+ "Rl=120*10**3\n",
+ "Re2=3.9*10**3\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R1=Rl\n",
+ "R2=39.0*10**3\n",
+ "Re1=150.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+Re1*(1+hfe)\n",
+ "Zin=(R1*R2*Zb)/(R1*R2+R1*Zb+R2*Zb)\n",
+ "C1=1/(2*3.14*f*((Zin+rs)/10))\n",
+ "C2=1/(2*3.14*f*Re1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C2= %.2f mF ' %(C2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C2= 10.62 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.12, Page No 573"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=1000.0\n",
+ "f=100.0\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R8=12.0*10**3\n",
+ "Rl=120*10**3\n",
+ "R10=3.9*10**3\n",
+ "R6=Rl\n",
+ "R7=39.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R3=R8\n",
+ "Av1=math.sqrt(Av)\n",
+ "Av2=Av1\n",
+ "R9=((R8*Rl)/(R8+Rl))/Av2\n",
+ "R9=330#use standard value\n",
+ "Av2=((R8*Rl)/(R8+Rl))/R9\n",
+ "Av1=Av/Av2\n",
+ "Zb=hie+R9*(1+hfe)\n",
+ "Zin=(R6*R7*Zb)/(R6*R7+R6*Zb+R7*Zb)\n",
+ "R4=((R3*Zin)/(R3+Zin))/Av1\n",
+ "R5=R10-R4\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f ' %(R5/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R5= 3.67 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.13, Page No 574"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R8=12.0*10**3\n",
+ "Rl=120.0*10**3\n",
+ "R10=3.9*10**3\n",
+ "R6=Rl\n",
+ "R7=39.0*10**3\n",
+ "R3=R8\n",
+ "R4=220.0\n",
+ "rs=600.0\n",
+ "Zin2=16.0*10**3\n",
+ "R9=330.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+R4*(1+hfe)\n",
+ "Zin=(R1*R2*Zb)/(R1*R2+R1*Zb+R2*Zb)\n",
+ "C1=1.0/(2*3.14*f*((Zin+rs)/10))\n",
+ "Xc2=0.65*R4\n",
+ "C2=1.0/(2*3.14*f*Xc2)\n",
+ "C3=1.0/(2*3.14*f*((Zin2+R3)/10))\n",
+ "C4=1.0/(2*3.14*f*.65*R9)\n",
+ "C5=1.0/(2*3.14*f*((R8+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C5= %.2f mF ' %(C5*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C5= 0.12 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.14, Page No 580"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "hie=2.0*10**3\n",
+ "R4=100.0\n",
+ "R1=5.6*10**3\n",
+ "R6=2.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=hie+(1+hfe)*R4\n",
+ "print(\"open loop current gain\")\n",
+ "Ai=(hfe*hfe*R1)/(R1+Zi)\n",
+ "B=R4/(R4+R6)\n",
+ "print(\"closed loop gain\")\n",
+ "Acl=Ai/(1+Ai*B)\n",
+ "Zi=hie/(1+Ai*B)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Zi= %.2f ohm ' %(Zi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "open loop current gain\n",
+ "closed loop gain\n",
+ "The value of Zi= 14.43 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.15, Page No 585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=60000.0\n",
+ "Acl=300.0\n",
+ "f1=15.0*10**3\n",
+ "B=1.0/300\n",
+ "\n",
+ "#Calculations\n",
+ "f2=(Av*f1)/Acl\n",
+ "print(\"% distortion with NFB\")\n",
+ "NFB=(.1/(1+Av*B))*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" percenatge distortion with NFB is %.3f percent \" %NFB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% distortion with NFB\n",
+ " percenatge distortion with NFB is 0.050 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter13_2.ipynb b/Electronic_Devices_and_Circuits/Chapter13_2.ipynb
new file mode 100755
index 00000000..0a7d7550
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter13_2.ipynb
@@ -0,0 +1,733 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Amplifier with negative feedback"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Av=100000.0\n",
+ "B=1.0/100\n",
+ "print(\"when Av=100000\")\n",
+ "\n",
+ "#Calculations\n",
+ "Acl=Av/(1+Av*B)\n",
+ "print(\"when Av is 150000\")\n",
+ "Av=150000\n",
+ "Acl=Av/(1+Av*B)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when Av is 50000\")\n",
+ "Av=50000\n",
+ "Acl=Av/(1+Av*B)\n",
+ "print('The value of Acl= %.2f ' %(Acl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Av=100000\n",
+ "when Av is 150000\n",
+ "when Av is 50000\n",
+ "The value of Acl= 99.80 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rf2=560.0\n",
+ "Rf1=56.0*10**3\n",
+ "Av=100000.0\n",
+ "Zb=1.0*10**3\n",
+ "R1=68.0*10**3\n",
+ "R2=33.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=Rf2/(Rf2+Rf1)\n",
+ "Zi=(1+Av*B)*Zb\n",
+ "Zin=(Zi*R1*R2)/(R1*R2+R1*Zi+R2*Zi)\n",
+ "\n",
+ "#Results\n",
+ "print(\"input impedance with negative feedback is %.2f ohm \" %(Zin/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance with negative feedback is 21.73 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Zb=1.0*10**3\n",
+ "B=1.0/100\n",
+ "Av=5562.0\n",
+ "R1=68.0*10**3\n",
+ "R2=47.0*10**3\n",
+ "hoe=1.0/(50*10**3)\n",
+ "Rc=3.9*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=(1+Av*B)*Zb\n",
+ "Zin=(R1*R2*Zi)/(R1*R2+R2*Zi+R1*Zi)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(Rc*Zo)/(Rc+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\" circuit output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " circuit output impedance is 720.04 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 554"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Zb=1.0*10**3\n",
+ "hoe=1.0/(85*10**3)\n",
+ "Av=58000.0\n",
+ "Rf2=220.0\n",
+ "Rf1=16.2*10**3\n",
+ "R1=120.0*10**3\n",
+ "R2=39.0*10**3\n",
+ "R7=12.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=Rf2/(Rf2+Rf1)\n",
+ "print(\"voltage gain\")\n",
+ "Acl=Av/(1+Av*B)\n",
+ "Zi=Zb*(1+Av*B)\n",
+ "Zin=(Zi*R1*R2)/(Zi*R1+R2*R1+R2*Zi)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(R7*Zo)/(R7+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain\n",
+ "output impedance is 108.25 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 558"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rf2=220.0\n",
+ "R4=3.9*10**3\n",
+ "Acl=75.0\n",
+ "f=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rf1=(Acl-1)*Rf2\n",
+ "Xc2=Rf2\n",
+ "C2=1/(2*3.14*f*Rf2)\n",
+ "Xcf1=Rf1/100\n",
+ "Cf1=1/(2*3.14*f*Xcf1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Cf1= %.2f mF' %(Cf1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Cf1= 9.78 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Acl=300.0\n",
+ "Rf2=220.0\n",
+ "R4=4.7*10**3\n",
+ "f=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rf1=(Acl-1)*Rf2\n",
+ "xc2=Rf2\n",
+ "C2=1.0/(2*3.14*f*Rf2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C2= %.2f mf' %(C2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C2= 7.24 mf\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7, Page No 565"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "Vbe=0.7\n",
+ "Ic1=1.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2=Ic1\n",
+ "Ic3=Ic2\n",
+ "Ic4=Ic3\n",
+ "Vee=10.0\n",
+ "Vce=3.0\n",
+ "Acl=33.0\n",
+ "print(\"different resistor value of circuit\")\n",
+ "R1=Vbe/((10*Ic1)/hfe)\n",
+ "R3=(Vee-Vbe)/(Ic1+Ic2)\n",
+ "Vr2=Vee+Vbe-Vce\n",
+ "R4=Vr2/Ic1\n",
+ "R2=R4\n",
+ "R7=(Vr2-Vbe)/(Ic3+Ic4)\n",
+ "R8=Vee/Ic3\n",
+ "R6=6.8*10**3\n",
+ "R5=(Acl-1)*R6\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f kohm' %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "different resistor value of circuit\n",
+ "The value of R5= 217.60 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8 Page No 566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Av=25000.0\n",
+ "hie=2.0*10**3\n",
+ "hib=25.0\n",
+ "hoe=1.0/(100*10**3)\n",
+ "R6=6.8*10**3\n",
+ "R5=220.0*10**3\n",
+ "R1=R6\n",
+ "\n",
+ "#Calculations\n",
+ "R8=10*10**3\n",
+ "B=R6/(R5+R6)\n",
+ "Acl=Av/(1+Av*B)\n",
+ "Zi=2*hie*(1+Av*B)\n",
+ "Zin=(Zi*R1)/(Zi+R1)\n",
+ "Zo=(1/hoe)/(1+Av*B)\n",
+ "Zout=(R8*Zo)/(R8+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2f ohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output impedance is 131.48 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.9 Page No 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hic=2.0*10**3\n",
+ "hie=hic\n",
+ "hfe=100.0\n",
+ "hfc=100.0\n",
+ "Av=25000.0\n",
+ "B=1.0/33.4\n",
+ "\n",
+ "#Calculations\n",
+ "R8=10*10**3\n",
+ "R5=R8\n",
+ "Ze=(hic+R8)/hfc\n",
+ "Zo=Ze/(1+Av*B)\n",
+ "Zout=(R5*Zo)/(R5+Zo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"output impedance is %.2fohm \" %Zout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output impedance is 0.16ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.10 Page No 570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hfemin=100.0\n",
+ "hfemax=400.0\n",
+ "hiemin=2.0*10**3\n",
+ "hiemax=5.0*10**3\n",
+ "Rc=12.0*10**3\n",
+ "Rl=120.0*10**3\n",
+ "Re1=150.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" voltage gain at extreme value \")\n",
+ "Avmax=(hfemax*((Rc*Rl)/(Rc+Rl)))/(hiemax+Re1*(1+hfemax))\n",
+ "Avmin=(hfemin*((Rc*Rl)/(Rc+Rl)))/(hiemin+Re1*(1+hfemin))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"approximate voltage gain\")\n",
+ "Av=((Rc*Rl)/(Rc+Rl))/Re1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage gain at extreme value \n",
+ "approximate voltage gain\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.11, Page No 571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Av=70.0\n",
+ "f=100.0\n",
+ "rs=600.0\n",
+ "Rc=12.0*10**3\n",
+ "Rl=120*10**3\n",
+ "Re2=3.9*10**3\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R1=Rl\n",
+ "R2=39.0*10**3\n",
+ "Re1=150.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+Re1*(1+hfe)\n",
+ "Zin=(R1*R2*Zb)/(R1*R2+R1*Zb+R2*Zb)\n",
+ "C1=1/(2*3.14*f*((Zin+rs)/10))\n",
+ "C2=1/(2*3.14*f*Re1)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C2= %.2f mF ' %(C2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C2= 10.62 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.12, Page No 573"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=1000.0\n",
+ "f=100.0\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R8=12.0*10**3\n",
+ "Rl=120*10**3\n",
+ "R10=3.9*10**3\n",
+ "R6=Rl\n",
+ "R7=39.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R3=R8\n",
+ "Av1=math.sqrt(Av)\n",
+ "Av2=Av1\n",
+ "R9=((R8*Rl)/(R8+Rl))/Av2\n",
+ "R9=330#use standard value\n",
+ "Av2=((R8*Rl)/(R8+Rl))/R9\n",
+ "Av1=Av/Av2\n",
+ "Zb=hie+R9*(1+hfe)\n",
+ "Zin=(R6*R7*Zb)/(R6*R7+R6*Zb+R7*Zb)\n",
+ "R4=((R3*Zin)/(R3+Zin))/Av1\n",
+ "R5=R10-R4\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R5= %.2f ' %(R5/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R5= 3.67 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.13, Page No 574"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0\n",
+ "hie=2.0*10**3\n",
+ "hfe=100.0\n",
+ "R8=12.0*10**3\n",
+ "Rl=120.0*10**3\n",
+ "R10=3.9*10**3\n",
+ "R6=Rl\n",
+ "R7=39.0*10**3\n",
+ "R3=R8\n",
+ "R4=220.0\n",
+ "rs=600.0\n",
+ "Zin2=16.0*10**3\n",
+ "R9=330.0\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+R4*(1+hfe)\n",
+ "Zin=(R1*R2*Zb)/(R1*R2+R1*Zb+R2*Zb)\n",
+ "C1=1.0/(2*3.14*f*((Zin+rs)/10))\n",
+ "Xc2=0.65*R4\n",
+ "C2=1.0/(2*3.14*f*Xc2)\n",
+ "C3=1.0/(2*3.14*f*((Zin2+R3)/10))\n",
+ "C4=1.0/(2*3.14*f*.65*R9)\n",
+ "C5=1.0/(2*3.14*f*((R8+Rl)/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C5= %.2f mF ' %(C5*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C5= 0.12 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.14, Page No 580"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hfe=100.0\n",
+ "hie=2.0*10**3\n",
+ "R4=100.0\n",
+ "R1=5.6*10**3\n",
+ "R6=2.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zi=hie+(1+hfe)*R4\n",
+ "print(\"open loop current gain\")\n",
+ "Ai=(hfe*hfe*R1)/(R1+Zi)\n",
+ "B=R4/(R4+R6)\n",
+ "print(\"closed loop gain\")\n",
+ "Acl=Ai/(1+Ai*B)\n",
+ "Zi=hie/(1+Ai*B)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Zi= %.2f ohm ' %(Zi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "open loop current gain\n",
+ "closed loop gain\n",
+ "The value of Zi= 14.43 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.15, Page No 585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=60000.0\n",
+ "Acl=300.0\n",
+ "f1=15.0*10**3\n",
+ "B=1.0/300\n",
+ "\n",
+ "#Calculations\n",
+ "f2=(Av*f1)/Acl\n",
+ "print(\"% distortion with NFB\")\n",
+ "NFB=(.1/(1+Av*B))*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" percenatge distortion with NFB is %.3f percent \" %NFB)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% distortion with NFB\n",
+ " percenatge distortion with NFB is 0.050 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter14.ipynb b/Electronic_Devices_and_Circuits/Chapter14.ipynb
new file mode 100755
index 00000000..90767c65
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter14.ipynb
@@ -0,0 +1,662 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Ic operational Amplifier and basic Op amp circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 597"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=0.7\n",
+ "Ib=500.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vbe/(10.0*Ib)\n",
+ "R1=120.0*10**3#use standard value\n",
+ "R2=R1\n",
+ "I2=100.0*Ib\n",
+ "Vr1=15.0\n",
+ "Vr2=Vr1\n",
+ "R1=Vr1/I2\n",
+ "R1=270.0*10**3#use satndard value\n",
+ "R2=R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 135.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page No 599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=1.0*10**6\n",
+ "Vb=3.0\n",
+ "Vo=3.0\n",
+ "Vee=9.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr2=Vb-(-Vee)\n",
+ "Vr1=Vee-Vb\n",
+ "I2=Vr2/R2\n",
+ "R1=Vr1/I2\n",
+ "R3=0\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 500.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No 601"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=200000.0\n",
+ "ri=2.0*10**6\n",
+ "ro=75.0\n",
+ "Vo=1.0\n",
+ "B=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=Vo/Av\n",
+ "Zi=(1+Av*B)*ri\n",
+ "Zo=ro/(1+Av*B)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Zo= %.2f X 10^-3 kohm ' %(Zo*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Zo= 0.37 X 10^-3 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page No 603"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=70.0\n",
+ "Rl=4.0*10**3\n",
+ "Ib=500.0*10**-9\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vbe/(10*Ib)\n",
+ "R1=120*10**3#use standard value\n",
+ "R2=R1\n",
+ "print(\" desire value of capacitor is C=1/2*3.14*f*R\")\n",
+ "C2=1/(2*3.14*f*Rl)\n",
+ "C1=1/(2*3.14*f*(R1/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C1= %.2f mF ' %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " desire value of capacitor is C=1/2*3.14*f*R\n",
+ "The value of C1= 0.19 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5 Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=500.0*10**-9\n",
+ "Vi=50.0*10**-3\n",
+ "Vo=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "I2=100.0*Ib\n",
+ "R3=Vi/I2\n",
+ "R2=(Vo/I2)-R3\n",
+ "R1=(R2*R3)/(R2+R3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 0.97 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6 Page No 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=200000.0\n",
+ "ri=2.0*10**6\n",
+ "ro=75.0\n",
+ "R3=1.0*10**3\n",
+ "R2=39*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=R3/(R2+R3)\n",
+ "Zi=(1+Av*B)*ri\n",
+ "\n",
+ "#Results\n",
+ "print(\" typical input impedance for non-inverting amplifier is %.2f ohm \" %Zi)\n",
+ "Zo=ro/(1+Av*B)\n",
+ "print('The value of Zo= %.2f kohm ' %(Zo*10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " typical input impedance for non-inverting amplifier is 10002000000.00 ohm \n",
+ "The value of Zo= 0.15 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7, Page No 607"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=50.0*10**3\n",
+ "R3=2.2*10**3\n",
+ "C2=8.2*10**-6\n",
+ "Rl=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"voltage gain \")\n",
+ "Acl=(R3+R2)/R3\n",
+ "\n",
+ "#Results\n",
+ "print(\"lower cuttoff frequency \")\n",
+ "f=1/(2*3.14*C2*Rl)\n",
+ "print('The value of f= %.2f kohm ' %(f))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain \n",
+ "lower cuttoff frequency \n",
+ "The value of f= 32.36 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8 Page No 610"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Acl=144.0\n",
+ "Vi=20.0*10**-3\n",
+ "Ib=500.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100.0*Ib\n",
+ "R1=Vi/I1\n",
+ "R1=390.0 #use standard value\n",
+ "R2=Acl*R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 387.31 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9 Page No 612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Acl=3.0\n",
+ "R4=1.0*10**6\n",
+ "Vi=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=R4/Acl\n",
+ "R1=330.0*10**3#use standard value \n",
+ "R2=R1\n",
+ "R3=R1\n",
+ "I1=Vi/R1\n",
+ "I2=I1\n",
+ "I3=I1\n",
+ "I4=I1+I2+I3\n",
+ "Vo=-I4*R4\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vo= %.2f v ' %(Vo))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vo= -9.09 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10 Page No 615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=500.0*10**-9\n",
+ "Vi=1.0\n",
+ "Acl=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100*Ib\n",
+ "R1=Vi/I1\n",
+ "R1=18*10**3#use standard value\n",
+ "R2=Acl*R1\n",
+ "R4=R1\n",
+ "R3=R1/Acl\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 1.80 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11, Page No 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vi=10*10**-3\n",
+ "Vn=1.0\n",
+ "R1=33.0*10**3\n",
+ "R2=300.0\n",
+ "R5=15.0*10**3\n",
+ "R4=15.0*10**3\n",
+ "Vi2=-10.0*10**-3\n",
+ "R3=R1\n",
+ "R6=15.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R7=R6\n",
+ "Acl=((2*R1+R2)/R2)*(R5/R4)\n",
+ "print(\"at junction of R1 and R2\")\n",
+ "Vb=Vi+Vn\n",
+ "print(\"at junction of R2 and R3\")\n",
+ "Vc=Vi2+Vn\n",
+ "print(\" current through R2\")\n",
+ "I2=(Vb-Vc)/R2\n",
+ "print(\"at the output of A1\")\n",
+ "Va=Vb+(I2*R1)\n",
+ "print(\"at output of A2\")\n",
+ "Vd=Vc-(I2*R3)\n",
+ "print(\"at junction of R6 and R7\")\n",
+ "Vf=Vd*(R7/(R6+R7))\n",
+ "print(\"at junction of R4 and R5\")\n",
+ "Ve=Vf\n",
+ "print(\"current through R4\")\n",
+ "I4=(Va-Ve)/R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"at output of A3\")\n",
+ "Vg=Ve-(I4*R5)\n",
+ "print('The value of Vg= %.2f kohm ' %(Vg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at junction of R1 and R2\n",
+ "at junction of R2 and R3\n",
+ " current through R2\n",
+ "at the output of A1\n",
+ "at output of A2\n",
+ "at junction of R6 and R7\n",
+ "at junction of R4 and R5\n",
+ "current through R4\n",
+ "at output of A3\n",
+ "The value of Vg= -4.42 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=15.0\n",
+ "Vee=-15.0\n",
+ "Av=200000.0\n",
+ "SR=0.5/10**-6\n",
+ "Vo=14.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=(Vcc-1)-(Vee+1)\n",
+ "Vi=Vo/Av\n",
+ "print(\"rise time of output is \")\n",
+ "t=(V/SR)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"rise time of output is %d ms \" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rise time of output is \n",
+ "rise time of output is 56 ms \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.13, Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Ib=500.0*10**-9\n",
+ "UTP=5.0\n",
+ "Vcc=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100.0*Ib\n",
+ "R2=UTP/I1\n",
+ "R1=((Vcc-1)-5)/I1\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 180.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.14, Page No 630"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=15.0\n",
+ "Vsat=Vcc\n",
+ "R2=150.0*10**3\n",
+ "Vf=0.7\n",
+ "R1=27.0*10**3\n",
+ "R3=120.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "I2=(Vsat-Vf)/R2\n",
+ "UTP=I2*R1\n",
+ "\n",
+ "#Results\n",
+ "print(\" LTP calculation including Vf\")\n",
+ "I3=(Vsat-Vf)/R3\n",
+ "LTP=-I3*R1\n",
+ "print('The value of LTP= %.2f kohm ' %(LTP))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " LTP calculation including Vf\n",
+ "The value of LTP= -3.22 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter14_1.ipynb b/Electronic_Devices_and_Circuits/Chapter14_1.ipynb
new file mode 100755
index 00000000..90767c65
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter14_1.ipynb
@@ -0,0 +1,662 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Ic operational Amplifier and basic Op amp circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 597"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=0.7\n",
+ "Ib=500.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vbe/(10.0*Ib)\n",
+ "R1=120.0*10**3#use standard value\n",
+ "R2=R1\n",
+ "I2=100.0*Ib\n",
+ "Vr1=15.0\n",
+ "Vr2=Vr1\n",
+ "R1=Vr1/I2\n",
+ "R1=270.0*10**3#use satndard value\n",
+ "R2=R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 135.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page No 599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=1.0*10**6\n",
+ "Vb=3.0\n",
+ "Vo=3.0\n",
+ "Vee=9.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr2=Vb-(-Vee)\n",
+ "Vr1=Vee-Vb\n",
+ "I2=Vr2/R2\n",
+ "R1=Vr1/I2\n",
+ "R3=0\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 500.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No 601"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=200000.0\n",
+ "ri=2.0*10**6\n",
+ "ro=75.0\n",
+ "Vo=1.0\n",
+ "B=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=Vo/Av\n",
+ "Zi=(1+Av*B)*ri\n",
+ "Zo=ro/(1+Av*B)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Zo= %.2f X 10^-3 kohm ' %(Zo*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Zo= 0.37 X 10^-3 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page No 603"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=70.0\n",
+ "Rl=4.0*10**3\n",
+ "Ib=500.0*10**-9\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vbe/(10*Ib)\n",
+ "R1=120*10**3#use standard value\n",
+ "R2=R1\n",
+ "print(\" desire value of capacitor is C=1/2*3.14*f*R\")\n",
+ "C2=1/(2*3.14*f*Rl)\n",
+ "C1=1/(2*3.14*f*(R1/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C1= %.2f mF ' %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " desire value of capacitor is C=1/2*3.14*f*R\n",
+ "The value of C1= 0.19 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5 Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=500.0*10**-9\n",
+ "Vi=50.0*10**-3\n",
+ "Vo=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "I2=100.0*Ib\n",
+ "R3=Vi/I2\n",
+ "R2=(Vo/I2)-R3\n",
+ "R1=(R2*R3)/(R2+R3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 0.97 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6 Page No 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=200000.0\n",
+ "ri=2.0*10**6\n",
+ "ro=75.0\n",
+ "R3=1.0*10**3\n",
+ "R2=39*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=R3/(R2+R3)\n",
+ "Zi=(1+Av*B)*ri\n",
+ "\n",
+ "#Results\n",
+ "print(\" typical input impedance for non-inverting amplifier is %.2f ohm \" %Zi)\n",
+ "Zo=ro/(1+Av*B)\n",
+ "print('The value of Zo= %.2f kohm ' %(Zo*10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " typical input impedance for non-inverting amplifier is 10002000000.00 ohm \n",
+ "The value of Zo= 0.15 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7, Page No 607"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=50.0*10**3\n",
+ "R3=2.2*10**3\n",
+ "C2=8.2*10**-6\n",
+ "Rl=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"voltage gain \")\n",
+ "Acl=(R3+R2)/R3\n",
+ "\n",
+ "#Results\n",
+ "print(\"lower cuttoff frequency \")\n",
+ "f=1/(2*3.14*C2*Rl)\n",
+ "print('The value of f= %.2f kohm ' %(f))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain \n",
+ "lower cuttoff frequency \n",
+ "The value of f= 32.36 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8 Page No 610"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Acl=144.0\n",
+ "Vi=20.0*10**-3\n",
+ "Ib=500.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100.0*Ib\n",
+ "R1=Vi/I1\n",
+ "R1=390.0 #use standard value\n",
+ "R2=Acl*R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 387.31 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9 Page No 612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Acl=3.0\n",
+ "R4=1.0*10**6\n",
+ "Vi=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=R4/Acl\n",
+ "R1=330.0*10**3#use standard value \n",
+ "R2=R1\n",
+ "R3=R1\n",
+ "I1=Vi/R1\n",
+ "I2=I1\n",
+ "I3=I1\n",
+ "I4=I1+I2+I3\n",
+ "Vo=-I4*R4\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vo= %.2f v ' %(Vo))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vo= -9.09 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10 Page No 615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=500.0*10**-9\n",
+ "Vi=1.0\n",
+ "Acl=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100*Ib\n",
+ "R1=Vi/I1\n",
+ "R1=18*10**3#use standard value\n",
+ "R2=Acl*R1\n",
+ "R4=R1\n",
+ "R3=R1/Acl\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 1.80 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11, Page No 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vi=10*10**-3\n",
+ "Vn=1.0\n",
+ "R1=33.0*10**3\n",
+ "R2=300.0\n",
+ "R5=15.0*10**3\n",
+ "R4=15.0*10**3\n",
+ "Vi2=-10.0*10**-3\n",
+ "R3=R1\n",
+ "R6=15.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R7=R6\n",
+ "Acl=((2*R1+R2)/R2)*(R5/R4)\n",
+ "print(\"at junction of R1 and R2\")\n",
+ "Vb=Vi+Vn\n",
+ "print(\"at junction of R2 and R3\")\n",
+ "Vc=Vi2+Vn\n",
+ "print(\" current through R2\")\n",
+ "I2=(Vb-Vc)/R2\n",
+ "print(\"at the output of A1\")\n",
+ "Va=Vb+(I2*R1)\n",
+ "print(\"at output of A2\")\n",
+ "Vd=Vc-(I2*R3)\n",
+ "print(\"at junction of R6 and R7\")\n",
+ "Vf=Vd*(R7/(R6+R7))\n",
+ "print(\"at junction of R4 and R5\")\n",
+ "Ve=Vf\n",
+ "print(\"current through R4\")\n",
+ "I4=(Va-Ve)/R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"at output of A3\")\n",
+ "Vg=Ve-(I4*R5)\n",
+ "print('The value of Vg= %.2f kohm ' %(Vg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at junction of R1 and R2\n",
+ "at junction of R2 and R3\n",
+ " current through R2\n",
+ "at the output of A1\n",
+ "at output of A2\n",
+ "at junction of R6 and R7\n",
+ "at junction of R4 and R5\n",
+ "current through R4\n",
+ "at output of A3\n",
+ "The value of Vg= -4.42 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=15.0\n",
+ "Vee=-15.0\n",
+ "Av=200000.0\n",
+ "SR=0.5/10**-6\n",
+ "Vo=14.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=(Vcc-1)-(Vee+1)\n",
+ "Vi=Vo/Av\n",
+ "print(\"rise time of output is \")\n",
+ "t=(V/SR)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"rise time of output is %d ms \" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rise time of output is \n",
+ "rise time of output is 56 ms \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.13, Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Ib=500.0*10**-9\n",
+ "UTP=5.0\n",
+ "Vcc=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100.0*Ib\n",
+ "R2=UTP/I1\n",
+ "R1=((Vcc-1)-5)/I1\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 180.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.14, Page No 630"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=15.0\n",
+ "Vsat=Vcc\n",
+ "R2=150.0*10**3\n",
+ "Vf=0.7\n",
+ "R1=27.0*10**3\n",
+ "R3=120.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "I2=(Vsat-Vf)/R2\n",
+ "UTP=I2*R1\n",
+ "\n",
+ "#Results\n",
+ "print(\" LTP calculation including Vf\")\n",
+ "I3=(Vsat-Vf)/R3\n",
+ "LTP=-I3*R1\n",
+ "print('The value of LTP= %.2f kohm ' %(LTP))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " LTP calculation including Vf\n",
+ "The value of LTP= -3.22 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter14_2.ipynb b/Electronic_Devices_and_Circuits/Chapter14_2.ipynb
new file mode 100755
index 00000000..90767c65
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter14_2.ipynb
@@ -0,0 +1,662 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Ic operational Amplifier and basic Op amp circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 597"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=0.7\n",
+ "Ib=500.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vbe/(10.0*Ib)\n",
+ "R1=120.0*10**3#use standard value\n",
+ "R2=R1\n",
+ "I2=100.0*Ib\n",
+ "Vr1=15.0\n",
+ "Vr2=Vr1\n",
+ "R1=Vr1/I2\n",
+ "R1=270.0*10**3#use satndard value\n",
+ "R2=R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 135.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page No 599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=1.0*10**6\n",
+ "Vb=3.0\n",
+ "Vo=3.0\n",
+ "Vee=9.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr2=Vb-(-Vee)\n",
+ "Vr1=Vee-Vb\n",
+ "I2=Vr2/R2\n",
+ "R1=Vr1/I2\n",
+ "R3=0\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 500.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No 601"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=200000.0\n",
+ "ri=2.0*10**6\n",
+ "ro=75.0\n",
+ "Vo=1.0\n",
+ "B=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=Vo/Av\n",
+ "Zi=(1+Av*B)*ri\n",
+ "Zo=ro/(1+Av*B)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Zo= %.2f X 10^-3 kohm ' %(Zo*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Zo= 0.37 X 10^-3 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page No 603"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=70.0\n",
+ "Rl=4.0*10**3\n",
+ "Ib=500.0*10**-9\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vbe/(10*Ib)\n",
+ "R1=120*10**3#use standard value\n",
+ "R2=R1\n",
+ "print(\" desire value of capacitor is C=1/2*3.14*f*R\")\n",
+ "C2=1/(2*3.14*f*Rl)\n",
+ "C1=1/(2*3.14*f*(R1/10))\n",
+ "\n",
+ "#Results\n",
+ "print('The value of C1= %.2f mF ' %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " desire value of capacitor is C=1/2*3.14*f*R\n",
+ "The value of C1= 0.19 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5 Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=500.0*10**-9\n",
+ "Vi=50.0*10**-3\n",
+ "Vo=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "I2=100.0*Ib\n",
+ "R3=Vi/I2\n",
+ "R2=(Vo/I2)-R3\n",
+ "R1=(R2*R3)/(R2+R3)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 0.97 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6 Page No 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Av=200000.0\n",
+ "ri=2.0*10**6\n",
+ "ro=75.0\n",
+ "R3=1.0*10**3\n",
+ "R2=39*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "B=R3/(R2+R3)\n",
+ "Zi=(1+Av*B)*ri\n",
+ "\n",
+ "#Results\n",
+ "print(\" typical input impedance for non-inverting amplifier is %.2f ohm \" %Zi)\n",
+ "Zo=ro/(1+Av*B)\n",
+ "print('The value of Zo= %.2f kohm ' %(Zo*10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " typical input impedance for non-inverting amplifier is 10002000000.00 ohm \n",
+ "The value of Zo= 0.15 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7, Page No 607"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=50.0*10**3\n",
+ "R3=2.2*10**3\n",
+ "C2=8.2*10**-6\n",
+ "Rl=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"voltage gain \")\n",
+ "Acl=(R3+R2)/R3\n",
+ "\n",
+ "#Results\n",
+ "print(\"lower cuttoff frequency \")\n",
+ "f=1/(2*3.14*C2*Rl)\n",
+ "print('The value of f= %.2f kohm ' %(f))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain \n",
+ "lower cuttoff frequency \n",
+ "The value of f= 32.36 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8 Page No 610"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Acl=144.0\n",
+ "Vi=20.0*10**-3\n",
+ "Ib=500.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100.0*Ib\n",
+ "R1=Vi/I1\n",
+ "R1=390.0 #use standard value\n",
+ "R2=Acl*R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 387.31 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9 Page No 612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Acl=3.0\n",
+ "R4=1.0*10**6\n",
+ "Vi=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=R4/Acl\n",
+ "R1=330.0*10**3#use standard value \n",
+ "R2=R1\n",
+ "R3=R1\n",
+ "I1=Vi/R1\n",
+ "I2=I1\n",
+ "I3=I1\n",
+ "I4=I1+I2+I3\n",
+ "Vo=-I4*R4\n",
+ "\n",
+ "#Results\n",
+ "print('The value of Vo= %.2f v ' %(Vo))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vo= -9.09 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10 Page No 615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=500.0*10**-9\n",
+ "Vi=1.0\n",
+ "Acl=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100*Ib\n",
+ "R1=Vi/I1\n",
+ "R1=18*10**3#use standard value\n",
+ "R2=Acl*R1\n",
+ "R4=R1\n",
+ "R3=R1/Acl\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R3= %.2f kohm ' %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3= 1.80 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11, Page No 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vi=10*10**-3\n",
+ "Vn=1.0\n",
+ "R1=33.0*10**3\n",
+ "R2=300.0\n",
+ "R5=15.0*10**3\n",
+ "R4=15.0*10**3\n",
+ "Vi2=-10.0*10**-3\n",
+ "R3=R1\n",
+ "R6=15.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R7=R6\n",
+ "Acl=((2*R1+R2)/R2)*(R5/R4)\n",
+ "print(\"at junction of R1 and R2\")\n",
+ "Vb=Vi+Vn\n",
+ "print(\"at junction of R2 and R3\")\n",
+ "Vc=Vi2+Vn\n",
+ "print(\" current through R2\")\n",
+ "I2=(Vb-Vc)/R2\n",
+ "print(\"at the output of A1\")\n",
+ "Va=Vb+(I2*R1)\n",
+ "print(\"at output of A2\")\n",
+ "Vd=Vc-(I2*R3)\n",
+ "print(\"at junction of R6 and R7\")\n",
+ "Vf=Vd*(R7/(R6+R7))\n",
+ "print(\"at junction of R4 and R5\")\n",
+ "Ve=Vf\n",
+ "print(\"current through R4\")\n",
+ "I4=(Va-Ve)/R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"at output of A3\")\n",
+ "Vg=Ve-(I4*R5)\n",
+ "print('The value of Vg= %.2f kohm ' %(Vg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at junction of R1 and R2\n",
+ "at junction of R2 and R3\n",
+ " current through R2\n",
+ "at the output of A1\n",
+ "at output of A2\n",
+ "at junction of R6 and R7\n",
+ "at junction of R4 and R5\n",
+ "current through R4\n",
+ "at output of A3\n",
+ "The value of Vg= -4.42 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=15.0\n",
+ "Vee=-15.0\n",
+ "Av=200000.0\n",
+ "SR=0.5/10**-6\n",
+ "Vo=14.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=(Vcc-1)-(Vee+1)\n",
+ "Vi=Vo/Av\n",
+ "print(\"rise time of output is \")\n",
+ "t=(V/SR)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"rise time of output is %d ms \" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rise time of output is \n",
+ "rise time of output is 56 ms \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.13, Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Ib=500.0*10**-9\n",
+ "UTP=5.0\n",
+ "Vcc=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "I1=100.0*Ib\n",
+ "R2=UTP/I1\n",
+ "R1=((Vcc-1)-5)/I1\n",
+ "\n",
+ "#Results\n",
+ "print('The value of R1= %.2f kohm ' %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1= 180.00 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.14, Page No 630"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=15.0\n",
+ "Vsat=Vcc\n",
+ "R2=150.0*10**3\n",
+ "Vf=0.7\n",
+ "R1=27.0*10**3\n",
+ "R3=120.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "I2=(Vsat-Vf)/R2\n",
+ "UTP=I2*R1\n",
+ "\n",
+ "#Results\n",
+ "print(\" LTP calculation including Vf\")\n",
+ "I3=(Vsat-Vf)/R3\n",
+ "LTP=-I3*R1\n",
+ "print('The value of LTP= %.2f kohm ' %(LTP))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " LTP calculation including Vf\n",
+ "The value of LTP= -3.22 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter15.ipynb b/Electronic_Devices_and_Circuits/Chapter15.ipynb
new file mode 100755
index 00000000..db5e05e2
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter15.ipynb
@@ -0,0 +1,282 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Operational amplifier frequency\n",
+ "Response and compensation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page No 648"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=1.0*10**6\n",
+ "Acl=4.5\n",
+ "\n",
+ "#Calculations\n",
+ "R1=R2/Acl\n",
+ "R1=220*10**3#use standard value\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "Cf=((R1*30*10**-12)/(R1+R2))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable value of capacitor is %.2fpF \" %Cf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable value of capacitor is 5.41pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page No 649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=35.0*10**3\n",
+ "Rf=68.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Cf=(1.0/(2*3.14*f*Rf))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable miller effect capacitor is %.2f pF \" %Cf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable miller effect capacitor is 66.91 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5 Page No 652"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Acl=100.0\n",
+ "Av=10.0\n",
+ "print(\" for Cf=30pF\")\n",
+ "GBW=800.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "F2=GBW/Acl\n",
+ "print(\" for Cf=3pF\")\n",
+ "GBW=(800*10**3)*Av\n",
+ "f2=GBW/Acl\n",
+ "\n",
+ "#Results\n",
+ "print(\" The value of f2 is %.2f pF \" %(f2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Cf=30pF\n",
+ " for Cf=3pF\n",
+ " The value of f2 is 80.00 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6, Page No 654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vip=1.0\n",
+ "R2=39.0*10**3\n",
+ "R3=4.7*10**3\n",
+ "SR=250.0/10**-6\n",
+ "f=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" for the AD843\")\n",
+ "Vop=((R2+R3)/R3)*Vip\n",
+ "fp=SR/(2*3.14*Vop)\n",
+ "print(\"full power bandwidth is %dHz \" %fp)\n",
+ "print(\" for a 741\")\n",
+ "SR=0.5/10**-6\n",
+ "Vp=SR/(2*3.14*f)\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum peak output voltage is %3.2fV \" %Vp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for the AD843\n",
+ "full power bandwidth is 4281508Hz \n",
+ " for a 741\n",
+ " maximum peak output voltage is 0.80V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7 Page No 656"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "R1=1.0*10**3\n",
+ "R2=10.0*10**3\n",
+ "f=800.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" stray capacitance\")\n",
+ "Cs=1/(2*3.14*f*10*(((rs+R1)*R2)/(rs+R1+R2)))\n",
+ "print(\"compensation capacitor\")\n",
+ "C2=((Cs*(rs+R1))/R2)*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\"compensation capacitor is %.2fpF \" %C2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " stray capacitance\n",
+ "compensation capacitor\n",
+ "compensation capacitor is 2.31pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8 Page No 659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "ro=25.0\n",
+ "f=2.0*10**6\n",
+ "R2=10.0*10**3\n",
+ "Rx=25.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cl=(1.0/(2.0*3.14*f*(10*ro)))*10**+12\n",
+ "print(\" load capacitance is %3.2fpF \" %Cl)\n",
+ "Cl=0.1*10**-6\n",
+ "C2=((Cl*(ro+Rx))/R2)*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" compensation capacitance is %.2f pF \" %C2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " load capacitance is 318.47pF \n",
+ " compensation capacitance is 500.00 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter15_1.ipynb b/Electronic_Devices_and_Circuits/Chapter15_1.ipynb
new file mode 100755
index 00000000..db5e05e2
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter15_1.ipynb
@@ -0,0 +1,282 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Operational amplifier frequency\n",
+ "Response and compensation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page No 648"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=1.0*10**6\n",
+ "Acl=4.5\n",
+ "\n",
+ "#Calculations\n",
+ "R1=R2/Acl\n",
+ "R1=220*10**3#use standard value\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "Cf=((R1*30*10**-12)/(R1+R2))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable value of capacitor is %.2fpF \" %Cf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable value of capacitor is 5.41pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page No 649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=35.0*10**3\n",
+ "Rf=68.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Cf=(1.0/(2*3.14*f*Rf))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable miller effect capacitor is %.2f pF \" %Cf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable miller effect capacitor is 66.91 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5 Page No 652"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Acl=100.0\n",
+ "Av=10.0\n",
+ "print(\" for Cf=30pF\")\n",
+ "GBW=800.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "F2=GBW/Acl\n",
+ "print(\" for Cf=3pF\")\n",
+ "GBW=(800*10**3)*Av\n",
+ "f2=GBW/Acl\n",
+ "\n",
+ "#Results\n",
+ "print(\" The value of f2 is %.2f pF \" %(f2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Cf=30pF\n",
+ " for Cf=3pF\n",
+ " The value of f2 is 80.00 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6, Page No 654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vip=1.0\n",
+ "R2=39.0*10**3\n",
+ "R3=4.7*10**3\n",
+ "SR=250.0/10**-6\n",
+ "f=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" for the AD843\")\n",
+ "Vop=((R2+R3)/R3)*Vip\n",
+ "fp=SR/(2*3.14*Vop)\n",
+ "print(\"full power bandwidth is %dHz \" %fp)\n",
+ "print(\" for a 741\")\n",
+ "SR=0.5/10**-6\n",
+ "Vp=SR/(2*3.14*f)\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum peak output voltage is %3.2fV \" %Vp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for the AD843\n",
+ "full power bandwidth is 4281508Hz \n",
+ " for a 741\n",
+ " maximum peak output voltage is 0.80V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7 Page No 656"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "R1=1.0*10**3\n",
+ "R2=10.0*10**3\n",
+ "f=800.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" stray capacitance\")\n",
+ "Cs=1/(2*3.14*f*10*(((rs+R1)*R2)/(rs+R1+R2)))\n",
+ "print(\"compensation capacitor\")\n",
+ "C2=((Cs*(rs+R1))/R2)*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\"compensation capacitor is %.2fpF \" %C2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " stray capacitance\n",
+ "compensation capacitor\n",
+ "compensation capacitor is 2.31pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8 Page No 659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "ro=25.0\n",
+ "f=2.0*10**6\n",
+ "R2=10.0*10**3\n",
+ "Rx=25.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cl=(1.0/(2.0*3.14*f*(10*ro)))*10**+12\n",
+ "print(\" load capacitance is %3.2fpF \" %Cl)\n",
+ "Cl=0.1*10**-6\n",
+ "C2=((Cl*(ro+Rx))/R2)*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" compensation capacitance is %.2f pF \" %C2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " load capacitance is 318.47pF \n",
+ " compensation capacitance is 500.00 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter15_2.ipynb b/Electronic_Devices_and_Circuits/Chapter15_2.ipynb
new file mode 100755
index 00000000..db5e05e2
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter15_2.ipynb
@@ -0,0 +1,282 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Operational amplifier frequency\n",
+ "Response and compensation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page No 648"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R2=1.0*10**6\n",
+ "Acl=4.5\n",
+ "\n",
+ "#Calculations\n",
+ "R1=R2/Acl\n",
+ "R1=220*10**3#use standard value\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "Cf=((R1*30*10**-12)/(R1+R2))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable value of capacitor is %.2fpF \" %Cf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable value of capacitor is 5.41pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page No 649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=35.0*10**3\n",
+ "Rf=68.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Cf=(1.0/(2*3.14*f*Rf))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable miller effect capacitor is %.2f pF \" %Cf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable miller effect capacitor is 66.91 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5 Page No 652"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Acl=100.0\n",
+ "Av=10.0\n",
+ "print(\" for Cf=30pF\")\n",
+ "GBW=800.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "F2=GBW/Acl\n",
+ "print(\" for Cf=3pF\")\n",
+ "GBW=(800*10**3)*Av\n",
+ "f2=GBW/Acl\n",
+ "\n",
+ "#Results\n",
+ "print(\" The value of f2 is %.2f pF \" %(f2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Cf=30pF\n",
+ " for Cf=3pF\n",
+ " The value of f2 is 80.00 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6, Page No 654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vip=1.0\n",
+ "R2=39.0*10**3\n",
+ "R3=4.7*10**3\n",
+ "SR=250.0/10**-6\n",
+ "f=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" for the AD843\")\n",
+ "Vop=((R2+R3)/R3)*Vip\n",
+ "fp=SR/(2*3.14*Vop)\n",
+ "print(\"full power bandwidth is %dHz \" %fp)\n",
+ "print(\" for a 741\")\n",
+ "SR=0.5/10**-6\n",
+ "Vp=SR/(2*3.14*f)\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum peak output voltage is %3.2fV \" %Vp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for the AD843\n",
+ "full power bandwidth is 4281508Hz \n",
+ " for a 741\n",
+ " maximum peak output voltage is 0.80V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7 Page No 656"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "R1=1.0*10**3\n",
+ "R2=10.0*10**3\n",
+ "f=800.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" stray capacitance\")\n",
+ "Cs=1/(2*3.14*f*10*(((rs+R1)*R2)/(rs+R1+R2)))\n",
+ "print(\"compensation capacitor\")\n",
+ "C2=((Cs*(rs+R1))/R2)*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\"compensation capacitor is %.2fpF \" %C2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " stray capacitance\n",
+ "compensation capacitor\n",
+ "compensation capacitor is 2.31pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8 Page No 659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "ro=25.0\n",
+ "f=2.0*10**6\n",
+ "R2=10.0*10**3\n",
+ "Rx=25.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cl=(1.0/(2.0*3.14*f*(10*ro)))*10**+12\n",
+ "print(\" load capacitance is %3.2fpF \" %Cl)\n",
+ "Cl=0.1*10**-6\n",
+ "C2=((Cl*(ro+Rx))/R2)*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" compensation capacitance is %.2f pF \" %C2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " load capacitance is 318.47pF \n",
+ " compensation capacitance is 500.00 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter16.ipynb b/Electronic_Devices_and_Circuits/Chapter16.ipynb
new file mode 100755
index 00000000..9d8b3b5f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter16.ipynb
@@ -0,0 +1,581 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Signal generators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1, Page No 668"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=10.0\n",
+ "Ib=500.0*10**-9\n",
+ "Acl=29.0\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" phase shift oscillator\")\n",
+ "I1=100*Ib\n",
+ "vo=Vcc-1\n",
+ "vi=vo/Acl\n",
+ "R1=vi/I1\n",
+ "R1=5.6*10**3#use standard value 5.6Kohm\n",
+ "R2=Acl*R1\n",
+ "R2=180*10**3#use satndard value 180Kohm to give Acl>180\n",
+ "R3=R2R=R1\n",
+ "C=1.0/(2*3.14*R3*f*math.sqrt(6))\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C = %.2f \" %(C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " phase shift oscillator\n",
+ "The value of C = 11.61 \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2, Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=40.0*10**3\n",
+ "L=100.0*10**-3\n",
+ "vp=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"colpitts oscillator\")\n",
+ "Ct=1/(4*3.14*3.14*(f**2)*L)\n",
+ "C1=10*Ct\n",
+ "C2=1/((1/Ct)-(1/C1))\n",
+ "C2=180*10**-12#use standard value\n",
+ "Xc2=1/(2*3.14*f*C2)\n",
+ "Xc1=1/(2*3.14*f*C1)\n",
+ "R1=10*Xc1\n",
+ "R1=27*10**3#use standard value\n",
+ "Acl=C1/C2\n",
+ "R2=Acl*R1\n",
+ "R2=270*10**3#use stabdard value\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*vp\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "colpitts oscillator\n",
+ "The value of SR is 2009.60 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "vo=8.0\n",
+ "f=100.0*10**3\n",
+ "print(\" hartley oscillator\")\n",
+ "Vcc=vo+1\n",
+ "Xl2=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "L2=Xl2/(2*3.14*f)\n",
+ "L2=1.5*10**-3#use standard value\n",
+ "L1=L2/10.0\n",
+ "Lt=L1+L2#(assuming M=0)\n",
+ "C1=1/(4*(3.14**2)*(f**2)*Lt)\n",
+ "C1=1500*10**-12#use 1500pF with aadditional parallel capacitance if necessary\n",
+ "#C1>>stray capacitance\n",
+ "Xl1=2*3.14*f*L1#R1>>Xl1\n",
+ "R1=1*10**3\n",
+ "Acl=L2/L1\n",
+ "R2=Acl*R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "print(\"full power bandwidth \")\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*vo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hartley oscillator\n",
+ "full power bandwidth \n",
+ "The value of SR is 5024.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0*10**3\n",
+ "Vo=9.0\n",
+ "Acl=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" design of wein bridge oscillator\")\n",
+ "Vcc=Vo+1\n",
+ "C1=1000.0*10**-12#standard value\n",
+ "C2=C1\n",
+ "R1=1.0/(2*3.14*f*C1)\n",
+ "R2=R1\n",
+ "R4=R2\n",
+ "R3=2*R4\n",
+ "R3=3.3*10**3#use standard value\n",
+ "print(\" minimum full power bandwidth\")\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*Vo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " design of wein bridge oscillator\n",
+ " minimum full power bandwidth\n",
+ "The value of SR is 5652.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.5 Page No 683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=5.0*10**3\n",
+ "vo=5.0\n",
+ "I1=1.0*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"phase shift oscillator\")\n",
+ "R1=(vo/29.0)/I1\n",
+ "R1=150#use standard value\n",
+ "R2=29*R1\n",
+ "R4=(2*Vf)/I1\n",
+ "R4=1.5*10**3#use 1.5kohm standard value\n",
+ "R5=R2-R4\n",
+ "R6=.4*R5\n",
+ "R7=.8*R5\n",
+ "R=R1\n",
+ "C=1.0/(2*3.14*R*f*math.sqrt(6))\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C is %.2f mF\" %(C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "phase shift oscillator\n",
+ "The value of C is 86.68 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.6 Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rds=600.0\n",
+ "Vgs=1.0\n",
+ "Vd1=0.7\n",
+ "f=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"wien bridge ocillator\")\n",
+ "R4=560.0\n",
+ "R3=2*((R4*rds)/(R4+rds))\n",
+ "I5=200.0*10**-6\n",
+ "Vo=6\n",
+ "R6=Vgs/I5\n",
+ "R5=(Vo-(Vgs+Vd1))/I5\n",
+ "print(\" C4 discharge voltage \")\n",
+ "Vc=.1*Vgs\n",
+ "print(\"C4 discharge time\")\n",
+ "T=1/f\n",
+ "Ic=I5\n",
+ "C4=(Ic*T)/Vc\n",
+ "Xc3=rds/10#at oscillating frequency\n",
+ "C3=1/(2*3.14*f*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C3 is %.2f mF\" %(C3*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wien bridge ocillator\n",
+ " C4 discharge voltage \n",
+ "C4 discharge time\n",
+ "The value of C3 is 26.54 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.7, Page No 689"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=14.0\n",
+ "Vr3=.5\n",
+ "Ib=500.0*10**-9\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"square wave generator\")\n",
+ "Vcc=Vo+1\n",
+ "UTP=Vr3\n",
+ "LTP=UTP\n",
+ "I2=100*Ib\n",
+ "R3=Vr3/I2\n",
+ "R2=(Vo-Vr3)/I2\n",
+ "t=1/(2*f)\n",
+ "V=UTP-(-LTP)\n",
+ "C1=.1*10**-6\n",
+ "I1=(C1*V)/t\n",
+ "R1=Vo/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %.2f kohm\" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "square wave generator\n",
+ "The value of R1 is 70.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.8 Page No 694"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=2.2*10**3\n",
+ "R2=2.7*10**3\n",
+ "C2=.5*10**-6\n",
+ "Vcc=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "t1=.693*C2*(R1+R2)\n",
+ "t2=.693*C2*R2\n",
+ "T=t1+t2\n",
+ "f=1/T\n",
+ "Ic1=(Vcc/3)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ic1 is %.2f mA\" %(Ic1*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ic1 is 1.02 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.10 Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=9.0\n",
+ "Vo=3\n",
+ "I1=1.0*10**-3\n",
+ "f=500.0\n",
+ "UTP=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"design the triangular wave\")\n",
+ "Vi=Vcc-1\n",
+ "V=Vo-(-Vo)\n",
+ "print(\" I1>>Ibmax for op-amp\")\n",
+ "R1=Vi/I1\n",
+ "t=1.0/(2*f)\n",
+ "C1=(I1*t)/V\n",
+ "print(\"schmitt design\")\n",
+ "I2=1.0*10**-3\n",
+ "R2=UTP/I2\n",
+ "R3=(Vcc-1)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "design the triangular wave\n",
+ " I1>>Ibmax for op-amp\n",
+ "schmitt design\n",
+ "The value of R3 is 8.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.11 Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0*10**3\n",
+ "Rs=1.5*10**3\n",
+ "R1=2.0*Rs\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "R1=2.7*10**3#use standard value\n",
+ "R2=R1+Rs\n",
+ "C1=1/(2*3.14*f*R2)\n",
+ "R4=R2\n",
+ "R3=2*R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3 is 8.40 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.12, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "fs=1.0*10**6\n",
+ "Rs=700.0\n",
+ "C1=1000.0*10**-12\n",
+ "C2=100.0*10**-12\n",
+ "R1=1.0*10**6\n",
+ "R2=10.0*10**3\n",
+ "Rs=700.0\n",
+ "Vdd=5\n",
+ "\n",
+ "#Calculations\n",
+ "Ct=(C1*C2)/(C1+C2)\n",
+ "print(\" at resonance Xl=Xct 2*pi*f*L=1/2*pi*f*Ct\")\n",
+ "L=1/(((2*3.14*f)**2)*Ct)\n",
+ "ip=Vdd/(R1+R2+Rs)\n",
+ "Pd=(((.707*ip)**2)*Rs)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak power dissipated is %.3fnW \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " at resonance Xl=Xct 2*pi*f*L=1/2*pi*f*Ct\n",
+ " peak power dissipated is 8.563nW \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter16_1.ipynb b/Electronic_Devices_and_Circuits/Chapter16_1.ipynb
new file mode 100755
index 00000000..9d8b3b5f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter16_1.ipynb
@@ -0,0 +1,581 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Signal generators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1, Page No 668"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=10.0\n",
+ "Ib=500.0*10**-9\n",
+ "Acl=29.0\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" phase shift oscillator\")\n",
+ "I1=100*Ib\n",
+ "vo=Vcc-1\n",
+ "vi=vo/Acl\n",
+ "R1=vi/I1\n",
+ "R1=5.6*10**3#use standard value 5.6Kohm\n",
+ "R2=Acl*R1\n",
+ "R2=180*10**3#use satndard value 180Kohm to give Acl>180\n",
+ "R3=R2R=R1\n",
+ "C=1.0/(2*3.14*R3*f*math.sqrt(6))\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C = %.2f \" %(C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " phase shift oscillator\n",
+ "The value of C = 11.61 \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2, Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=40.0*10**3\n",
+ "L=100.0*10**-3\n",
+ "vp=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"colpitts oscillator\")\n",
+ "Ct=1/(4*3.14*3.14*(f**2)*L)\n",
+ "C1=10*Ct\n",
+ "C2=1/((1/Ct)-(1/C1))\n",
+ "C2=180*10**-12#use standard value\n",
+ "Xc2=1/(2*3.14*f*C2)\n",
+ "Xc1=1/(2*3.14*f*C1)\n",
+ "R1=10*Xc1\n",
+ "R1=27*10**3#use standard value\n",
+ "Acl=C1/C2\n",
+ "R2=Acl*R1\n",
+ "R2=270*10**3#use stabdard value\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*vp\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "colpitts oscillator\n",
+ "The value of SR is 2009.60 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "vo=8.0\n",
+ "f=100.0*10**3\n",
+ "print(\" hartley oscillator\")\n",
+ "Vcc=vo+1\n",
+ "Xl2=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "L2=Xl2/(2*3.14*f)\n",
+ "L2=1.5*10**-3#use standard value\n",
+ "L1=L2/10.0\n",
+ "Lt=L1+L2#(assuming M=0)\n",
+ "C1=1/(4*(3.14**2)*(f**2)*Lt)\n",
+ "C1=1500*10**-12#use 1500pF with aadditional parallel capacitance if necessary\n",
+ "#C1>>stray capacitance\n",
+ "Xl1=2*3.14*f*L1#R1>>Xl1\n",
+ "R1=1*10**3\n",
+ "Acl=L2/L1\n",
+ "R2=Acl*R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "print(\"full power bandwidth \")\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*vo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hartley oscillator\n",
+ "full power bandwidth \n",
+ "The value of SR is 5024.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0*10**3\n",
+ "Vo=9.0\n",
+ "Acl=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" design of wein bridge oscillator\")\n",
+ "Vcc=Vo+1\n",
+ "C1=1000.0*10**-12#standard value\n",
+ "C2=C1\n",
+ "R1=1.0/(2*3.14*f*C1)\n",
+ "R2=R1\n",
+ "R4=R2\n",
+ "R3=2*R4\n",
+ "R3=3.3*10**3#use standard value\n",
+ "print(\" minimum full power bandwidth\")\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*Vo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " design of wein bridge oscillator\n",
+ " minimum full power bandwidth\n",
+ "The value of SR is 5652.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.5 Page No 683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=5.0*10**3\n",
+ "vo=5.0\n",
+ "I1=1.0*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"phase shift oscillator\")\n",
+ "R1=(vo/29.0)/I1\n",
+ "R1=150#use standard value\n",
+ "R2=29*R1\n",
+ "R4=(2*Vf)/I1\n",
+ "R4=1.5*10**3#use 1.5kohm standard value\n",
+ "R5=R2-R4\n",
+ "R6=.4*R5\n",
+ "R7=.8*R5\n",
+ "R=R1\n",
+ "C=1.0/(2*3.14*R*f*math.sqrt(6))\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C is %.2f mF\" %(C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "phase shift oscillator\n",
+ "The value of C is 86.68 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.6 Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rds=600.0\n",
+ "Vgs=1.0\n",
+ "Vd1=0.7\n",
+ "f=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"wien bridge ocillator\")\n",
+ "R4=560.0\n",
+ "R3=2*((R4*rds)/(R4+rds))\n",
+ "I5=200.0*10**-6\n",
+ "Vo=6\n",
+ "R6=Vgs/I5\n",
+ "R5=(Vo-(Vgs+Vd1))/I5\n",
+ "print(\" C4 discharge voltage \")\n",
+ "Vc=.1*Vgs\n",
+ "print(\"C4 discharge time\")\n",
+ "T=1/f\n",
+ "Ic=I5\n",
+ "C4=(Ic*T)/Vc\n",
+ "Xc3=rds/10#at oscillating frequency\n",
+ "C3=1/(2*3.14*f*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C3 is %.2f mF\" %(C3*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wien bridge ocillator\n",
+ " C4 discharge voltage \n",
+ "C4 discharge time\n",
+ "The value of C3 is 26.54 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.7, Page No 689"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=14.0\n",
+ "Vr3=.5\n",
+ "Ib=500.0*10**-9\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"square wave generator\")\n",
+ "Vcc=Vo+1\n",
+ "UTP=Vr3\n",
+ "LTP=UTP\n",
+ "I2=100*Ib\n",
+ "R3=Vr3/I2\n",
+ "R2=(Vo-Vr3)/I2\n",
+ "t=1/(2*f)\n",
+ "V=UTP-(-LTP)\n",
+ "C1=.1*10**-6\n",
+ "I1=(C1*V)/t\n",
+ "R1=Vo/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %.2f kohm\" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "square wave generator\n",
+ "The value of R1 is 70.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.8 Page No 694"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=2.2*10**3\n",
+ "R2=2.7*10**3\n",
+ "C2=.5*10**-6\n",
+ "Vcc=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "t1=.693*C2*(R1+R2)\n",
+ "t2=.693*C2*R2\n",
+ "T=t1+t2\n",
+ "f=1/T\n",
+ "Ic1=(Vcc/3)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ic1 is %.2f mA\" %(Ic1*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ic1 is 1.02 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.10 Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=9.0\n",
+ "Vo=3\n",
+ "I1=1.0*10**-3\n",
+ "f=500.0\n",
+ "UTP=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"design the triangular wave\")\n",
+ "Vi=Vcc-1\n",
+ "V=Vo-(-Vo)\n",
+ "print(\" I1>>Ibmax for op-amp\")\n",
+ "R1=Vi/I1\n",
+ "t=1.0/(2*f)\n",
+ "C1=(I1*t)/V\n",
+ "print(\"schmitt design\")\n",
+ "I2=1.0*10**-3\n",
+ "R2=UTP/I2\n",
+ "R3=(Vcc-1)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "design the triangular wave\n",
+ " I1>>Ibmax for op-amp\n",
+ "schmitt design\n",
+ "The value of R3 is 8.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.11 Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0*10**3\n",
+ "Rs=1.5*10**3\n",
+ "R1=2.0*Rs\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "R1=2.7*10**3#use standard value\n",
+ "R2=R1+Rs\n",
+ "C1=1/(2*3.14*f*R2)\n",
+ "R4=R2\n",
+ "R3=2*R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3 is 8.40 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.12, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "fs=1.0*10**6\n",
+ "Rs=700.0\n",
+ "C1=1000.0*10**-12\n",
+ "C2=100.0*10**-12\n",
+ "R1=1.0*10**6\n",
+ "R2=10.0*10**3\n",
+ "Rs=700.0\n",
+ "Vdd=5\n",
+ "\n",
+ "#Calculations\n",
+ "Ct=(C1*C2)/(C1+C2)\n",
+ "print(\" at resonance Xl=Xct 2*pi*f*L=1/2*pi*f*Ct\")\n",
+ "L=1/(((2*3.14*f)**2)*Ct)\n",
+ "ip=Vdd/(R1+R2+Rs)\n",
+ "Pd=(((.707*ip)**2)*Rs)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak power dissipated is %.3fnW \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " at resonance Xl=Xct 2*pi*f*L=1/2*pi*f*Ct\n",
+ " peak power dissipated is 8.563nW \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter16_2.ipynb b/Electronic_Devices_and_Circuits/Chapter16_2.ipynb
new file mode 100755
index 00000000..9d8b3b5f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter16_2.ipynb
@@ -0,0 +1,581 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Signal generators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1, Page No 668"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=10.0\n",
+ "Ib=500.0*10**-9\n",
+ "Acl=29.0\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" phase shift oscillator\")\n",
+ "I1=100*Ib\n",
+ "vo=Vcc-1\n",
+ "vi=vo/Acl\n",
+ "R1=vi/I1\n",
+ "R1=5.6*10**3#use standard value 5.6Kohm\n",
+ "R2=Acl*R1\n",
+ "R2=180*10**3#use satndard value 180Kohm to give Acl>180\n",
+ "R3=R2R=R1\n",
+ "C=1.0/(2*3.14*R3*f*math.sqrt(6))\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C = %.2f \" %(C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " phase shift oscillator\n",
+ "The value of C = 11.61 \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2, Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=40.0*10**3\n",
+ "L=100.0*10**-3\n",
+ "vp=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"colpitts oscillator\")\n",
+ "Ct=1/(4*3.14*3.14*(f**2)*L)\n",
+ "C1=10*Ct\n",
+ "C2=1/((1/Ct)-(1/C1))\n",
+ "C2=180*10**-12#use standard value\n",
+ "Xc2=1/(2*3.14*f*C2)\n",
+ "Xc1=1/(2*3.14*f*C1)\n",
+ "R1=10*Xc1\n",
+ "R1=27*10**3#use standard value\n",
+ "Acl=C1/C2\n",
+ "R2=Acl*R1\n",
+ "R2=270*10**3#use stabdard value\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*vp\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "colpitts oscillator\n",
+ "The value of SR is 2009.60 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "vo=8.0\n",
+ "f=100.0*10**3\n",
+ "print(\" hartley oscillator\")\n",
+ "Vcc=vo+1\n",
+ "Xl2=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "L2=Xl2/(2*3.14*f)\n",
+ "L2=1.5*10**-3#use standard value\n",
+ "L1=L2/10.0\n",
+ "Lt=L1+L2#(assuming M=0)\n",
+ "C1=1/(4*(3.14**2)*(f**2)*Lt)\n",
+ "C1=1500*10**-12#use 1500pF with aadditional parallel capacitance if necessary\n",
+ "#C1>>stray capacitance\n",
+ "Xl1=2*3.14*f*L1#R1>>Xl1\n",
+ "R1=1*10**3\n",
+ "Acl=L2/L1\n",
+ "R2=Acl*R1\n",
+ "R3=(R1*R2)/(R1+R2)\n",
+ "print(\"full power bandwidth \")\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*vo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hartley oscillator\n",
+ "full power bandwidth \n",
+ "The value of SR is 5024.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0*10**3\n",
+ "Vo=9.0\n",
+ "Acl=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" design of wein bridge oscillator\")\n",
+ "Vcc=Vo+1\n",
+ "C1=1000.0*10**-12#standard value\n",
+ "C2=C1\n",
+ "R1=1.0/(2*3.14*f*C1)\n",
+ "R2=R1\n",
+ "R4=R2\n",
+ "R3=2*R4\n",
+ "R3=3.3*10**3#use standard value\n",
+ "print(\" minimum full power bandwidth\")\n",
+ "f2=Acl*f\n",
+ "SR=2*3.14*f*Vo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of SR is %.2f \" %(SR/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " design of wein bridge oscillator\n",
+ " minimum full power bandwidth\n",
+ "The value of SR is 5652.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.5 Page No 683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=5.0*10**3\n",
+ "vo=5.0\n",
+ "I1=1.0*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"phase shift oscillator\")\n",
+ "R1=(vo/29.0)/I1\n",
+ "R1=150#use standard value\n",
+ "R2=29*R1\n",
+ "R4=(2*Vf)/I1\n",
+ "R4=1.5*10**3#use 1.5kohm standard value\n",
+ "R5=R2-R4\n",
+ "R6=.4*R5\n",
+ "R7=.8*R5\n",
+ "R=R1\n",
+ "C=1.0/(2*3.14*R*f*math.sqrt(6))\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C is %.2f mF\" %(C*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "phase shift oscillator\n",
+ "The value of C is 86.68 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.6 Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rds=600.0\n",
+ "Vgs=1.0\n",
+ "Vd1=0.7\n",
+ "f=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"wien bridge ocillator\")\n",
+ "R4=560.0\n",
+ "R3=2*((R4*rds)/(R4+rds))\n",
+ "I5=200.0*10**-6\n",
+ "Vo=6\n",
+ "R6=Vgs/I5\n",
+ "R5=(Vo-(Vgs+Vd1))/I5\n",
+ "print(\" C4 discharge voltage \")\n",
+ "Vc=.1*Vgs\n",
+ "print(\"C4 discharge time\")\n",
+ "T=1/f\n",
+ "Ic=I5\n",
+ "C4=(Ic*T)/Vc\n",
+ "Xc3=rds/10#at oscillating frequency\n",
+ "C3=1/(2*3.14*f*Xc3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C3 is %.2f mF\" %(C3*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wien bridge ocillator\n",
+ " C4 discharge voltage \n",
+ "C4 discharge time\n",
+ "The value of C3 is 26.54 mF\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.7, Page No 689"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=14.0\n",
+ "Vr3=.5\n",
+ "Ib=500.0*10**-9\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"square wave generator\")\n",
+ "Vcc=Vo+1\n",
+ "UTP=Vr3\n",
+ "LTP=UTP\n",
+ "I2=100*Ib\n",
+ "R3=Vr3/I2\n",
+ "R2=(Vo-Vr3)/I2\n",
+ "t=1/(2*f)\n",
+ "V=UTP-(-LTP)\n",
+ "C1=.1*10**-6\n",
+ "I1=(C1*V)/t\n",
+ "R1=Vo/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %.2f kohm\" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "square wave generator\n",
+ "The value of R1 is 70.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.8 Page No 694"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=2.2*10**3\n",
+ "R2=2.7*10**3\n",
+ "C2=.5*10**-6\n",
+ "Vcc=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "t1=.693*C2*(R1+R2)\n",
+ "t2=.693*C2*R2\n",
+ "T=t1+t2\n",
+ "f=1/T\n",
+ "Ic1=(Vcc/3)/(R1+R2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ic1 is %.2f mA\" %(Ic1*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ic1 is 1.02 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.10 Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=9.0\n",
+ "Vo=3\n",
+ "I1=1.0*10**-3\n",
+ "f=500.0\n",
+ "UTP=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"design the triangular wave\")\n",
+ "Vi=Vcc-1\n",
+ "V=Vo-(-Vo)\n",
+ "print(\" I1>>Ibmax for op-amp\")\n",
+ "R1=Vi/I1\n",
+ "t=1.0/(2*f)\n",
+ "C1=(I1*t)/V\n",
+ "print(\"schmitt design\")\n",
+ "I2=1.0*10**-3\n",
+ "R2=UTP/I2\n",
+ "R3=(Vcc-1)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "design the triangular wave\n",
+ " I1>>Ibmax for op-amp\n",
+ "schmitt design\n",
+ "The value of R3 is 8.00 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.11 Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=100.0*10**3\n",
+ "Rs=1.5*10**3\n",
+ "R1=2.0*Rs\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "R1=2.7*10**3#use standard value\n",
+ "R2=R1+Rs\n",
+ "C1=1/(2*3.14*f*R2)\n",
+ "R4=R2\n",
+ "R3=2*R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R3 is 8.40 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.12, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "fs=1.0*10**6\n",
+ "Rs=700.0\n",
+ "C1=1000.0*10**-12\n",
+ "C2=100.0*10**-12\n",
+ "R1=1.0*10**6\n",
+ "R2=10.0*10**3\n",
+ "Rs=700.0\n",
+ "Vdd=5\n",
+ "\n",
+ "#Calculations\n",
+ "Ct=(C1*C2)/(C1+C2)\n",
+ "print(\" at resonance Xl=Xct 2*pi*f*L=1/2*pi*f*Ct\")\n",
+ "L=1/(((2*3.14*f)**2)*Ct)\n",
+ "ip=Vdd/(R1+R2+Rs)\n",
+ "Pd=(((.707*ip)**2)*Rs)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak power dissipated is %.3fnW \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " at resonance Xl=Xct 2*pi*f*L=1/2*pi*f*Ct\n",
+ " peak power dissipated is 8.563nW \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter17.ipynb b/Electronic_Devices_and_Circuits/Chapter17.ipynb
new file mode 100755
index 00000000..0bf01537
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter17.ipynb
@@ -0,0 +1,560 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : Active filters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.1, Page No 716"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "R1=12.0*10**3\n",
+ "Rl=100.0*10**3\n",
+ "C1=0.013*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Rl is not connected\")\n",
+ "fc=1.0/(2*3.14*R1*C1)\n",
+ "print(\" when Rl is connected\")\n",
+ "fc=1.0/(2*3.14*((R1*Rl)/(R1+Rl))*C1)\n",
+ "Attn=3#at fc attenuation is =3dB\n",
+ "falloffrate=6\n",
+ "print(\"attenuation at 2fc\")\n",
+ "Attn=3+6\n",
+ "print(\"attenuation at 2fc is %ddB \" %Attn)\n",
+ "Attn=3+6+6\n",
+ "\n",
+ "#Results\n",
+ "print(\" attenuation at 4fc is %ddB \" %Attn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Rl is not connected\n",
+ " when Rl is connected\n",
+ "attenuation at 2fc\n",
+ "attenuation at 2fc is 9dB \n",
+ " attenuation at 4fc is 15dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.2, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ib=500.0*10**-9\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(70.0*10**-3)/Ib\n",
+ "R1=140*10**3#use standard value\n",
+ "R2=R1\n",
+ "C1=(1/(2*3.14*R1*f))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" capacitor used is of %.2f pF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " capacitor used is of 1137.40 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.3 Page No 719"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "print(\"first order high pass active filter\")\n",
+ "f=5.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "fu=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "R1=1.0/(2*3.14*f*C1)\n",
+ "BW=fu-f\n",
+ "print(\" bandwidth is %.2f kHz \" %(BW/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "first order high pass active filter\n",
+ " bandwidth is 995.00 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.4, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=1.0*10**3\n",
+ "Ib=500.0*10**-9\n",
+ "print(\"butterworth second order filter\")\n",
+ "\n",
+ "#Calculations\n",
+ "R=(70.0*10**-3)/Ib\n",
+ "R1=R/2.0\n",
+ "R1=68.1*10**3#use standard value\n",
+ "R2=R1 \n",
+ "R3=2.0*R1\n",
+ "Xc1=math.sqrt(2)*R2\n",
+ "C1=1/(2*3.14*f*math.sqrt(2)*R2)\n",
+ "C2=2*C1\n",
+ "fc=1/(2*3.14*(math.sqrt(R1*R2*C1*C2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"actual cutoff frequency is %d kHz \" %(fc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "butterworth second order filter\n",
+ "actual cutoff frequency is 1 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.5 Page No 725"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=12.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "print(\"butterworth second order filter\")\n",
+ "C2=C1\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(math.sqrt(2))/(2*3.14*f*C1)\n",
+ "R1=.5*R2\n",
+ "R3=R2\n",
+ "fc=1.0/(2*3.14*(math.sqrt(R1*R2*C1*C2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"actual cutoff frequency is %d KHz \" %(fc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "butterworth second order filter\n",
+ "actual cutoff frequency is 11 KHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.6 Page No 729"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=30.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "print(\" third order low pass filter\")\n",
+ "print(\"-20 dB per decade stage\")\n",
+ "\n",
+ "#Calculations\n",
+ "fc1=f/.65\n",
+ "R1=1.0/(2*3.14*fc1*C1)\n",
+ "R2=R1\n",
+ "print(\"-40dB per decade stage\")\n",
+ "C3=1000*10**-12\n",
+ "C2=2*C3\n",
+ "fc2=f/.8\n",
+ "R4=1/(2*3.14*fc2*C3*(math.sqrt(2)))\n",
+ "R3=R4\n",
+ "R5=R3+R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " third order low pass filter\n",
+ "-20 dB per decade stage\n",
+ "-40dB per decade stage\n",
+ "The value of R5 is 6.01 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.7, Page No 730"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=20.0*10**3\n",
+ "print(\"3rd order high pass filter\")\n",
+ "print(\"-20dB per decade stage\")\n",
+ "R1=121.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fc1=.65*f\n",
+ "C1=1/(2*3.14*fc1*R1)\n",
+ "#this is so small it might be effected by stray capacitor.redesign %first choosing a suitable capacitance C1\n",
+ "C1=100*10**-12\n",
+ "R1=1/(2*3.14*f*C1)\n",
+ "R2=R1\n",
+ "print(\"-40dB per decade stage\")\n",
+ "C3=1000*10**-12\n",
+ "R4=(math.sqrt(2))/(2*3.14*.8*f*C3)\n",
+ "C2=C3\n",
+ "R3=.5*R4\n",
+ "R5=R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3rd order high pass filter\n",
+ "-20dB per decade stage\n",
+ "-40dB per decade stage\n",
+ "The value of R5 is 14.07 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.8 Page No 734"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=300.0\n",
+ "f2=30.0*10**3\n",
+ "print(\" single stage band pass filter\")\n",
+ "\n",
+ "#Calculations\n",
+ "C2=1000*10**-12\n",
+ "R2=1/(2*3.14*f2*C2)\n",
+ "R1=R2\n",
+ "Xc1=R1#at voltage gain Av=1\n",
+ "C1=1/(2*3.14*f1*R1)\n",
+ "R3=R2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " single stage band pass filter\n",
+ "The value of R3 is 5.31 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.9 Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=300.0\n",
+ "f2=30.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fo=math.sqrt(f1*f2)\n",
+ "BW=f2-f1\n",
+ "Q=fo/BW\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Q is %.2f \" %(Q))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Q is 0.10 \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.10 Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=60.4*10**3\n",
+ "R4=1.21*10**3\n",
+ "C=.012*10**-6\n",
+ "R2=121.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Q=math.sqrt((R1+R4)/(2*R4))\n",
+ "fo=Q/(3.14*C*R2)\n",
+ "print(\" center frequency is %3.2fHz \" %fo)\n",
+ "BW=fo/Q\n",
+ "\n",
+ "#Results\n",
+ "print(\" bandwidth is %3.1fHz \" %BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " center frequency is 1106.68Hz \n",
+ " bandwidth is 219.3Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.12, Page No 744"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=10.3*10**3\n",
+ "f2=10.9*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "\n",
+ "#Calculations\n",
+ "C2=C1\n",
+ "fo=math.sqrt(f1*f2)\n",
+ "R5=1.0/(2*3.14*fo*C1)\n",
+ "R1=R5\n",
+ "Q=fo/(f2-f1)\n",
+ "R2=R1*(2*Q-1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R2 is %.2f kohm\" %(R2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is 515.76 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.13, Page No 750"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f1=10.3*10**3\n",
+ "f2=10.9*10**3\n",
+ "Hobp=34\n",
+ "\n",
+ "#Calculations\n",
+ "math.sqrt(f1*f2)\n",
+ "Q=fo/(f2-f1)\n",
+ "R3=120.0*10**3\n",
+ "R2=R3/Q\n",
+ "R1=R3/Hobp\n",
+ "k=50*fo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of k is %.2f \" %(k/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of k is 529.79 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter17_1.ipynb b/Electronic_Devices_and_Circuits/Chapter17_1.ipynb
new file mode 100755
index 00000000..0bf01537
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter17_1.ipynb
@@ -0,0 +1,560 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : Active filters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.1, Page No 716"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "R1=12.0*10**3\n",
+ "Rl=100.0*10**3\n",
+ "C1=0.013*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Rl is not connected\")\n",
+ "fc=1.0/(2*3.14*R1*C1)\n",
+ "print(\" when Rl is connected\")\n",
+ "fc=1.0/(2*3.14*((R1*Rl)/(R1+Rl))*C1)\n",
+ "Attn=3#at fc attenuation is =3dB\n",
+ "falloffrate=6\n",
+ "print(\"attenuation at 2fc\")\n",
+ "Attn=3+6\n",
+ "print(\"attenuation at 2fc is %ddB \" %Attn)\n",
+ "Attn=3+6+6\n",
+ "\n",
+ "#Results\n",
+ "print(\" attenuation at 4fc is %ddB \" %Attn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Rl is not connected\n",
+ " when Rl is connected\n",
+ "attenuation at 2fc\n",
+ "attenuation at 2fc is 9dB \n",
+ " attenuation at 4fc is 15dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.2, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ib=500.0*10**-9\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(70.0*10**-3)/Ib\n",
+ "R1=140*10**3#use standard value\n",
+ "R2=R1\n",
+ "C1=(1/(2*3.14*R1*f))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" capacitor used is of %.2f pF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " capacitor used is of 1137.40 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.3 Page No 719"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "print(\"first order high pass active filter\")\n",
+ "f=5.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "fu=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "R1=1.0/(2*3.14*f*C1)\n",
+ "BW=fu-f\n",
+ "print(\" bandwidth is %.2f kHz \" %(BW/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "first order high pass active filter\n",
+ " bandwidth is 995.00 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.4, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=1.0*10**3\n",
+ "Ib=500.0*10**-9\n",
+ "print(\"butterworth second order filter\")\n",
+ "\n",
+ "#Calculations\n",
+ "R=(70.0*10**-3)/Ib\n",
+ "R1=R/2.0\n",
+ "R1=68.1*10**3#use standard value\n",
+ "R2=R1 \n",
+ "R3=2.0*R1\n",
+ "Xc1=math.sqrt(2)*R2\n",
+ "C1=1/(2*3.14*f*math.sqrt(2)*R2)\n",
+ "C2=2*C1\n",
+ "fc=1/(2*3.14*(math.sqrt(R1*R2*C1*C2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"actual cutoff frequency is %d kHz \" %(fc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "butterworth second order filter\n",
+ "actual cutoff frequency is 1 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.5 Page No 725"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=12.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "print(\"butterworth second order filter\")\n",
+ "C2=C1\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(math.sqrt(2))/(2*3.14*f*C1)\n",
+ "R1=.5*R2\n",
+ "R3=R2\n",
+ "fc=1.0/(2*3.14*(math.sqrt(R1*R2*C1*C2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"actual cutoff frequency is %d KHz \" %(fc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "butterworth second order filter\n",
+ "actual cutoff frequency is 11 KHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.6 Page No 729"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=30.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "print(\" third order low pass filter\")\n",
+ "print(\"-20 dB per decade stage\")\n",
+ "\n",
+ "#Calculations\n",
+ "fc1=f/.65\n",
+ "R1=1.0/(2*3.14*fc1*C1)\n",
+ "R2=R1\n",
+ "print(\"-40dB per decade stage\")\n",
+ "C3=1000*10**-12\n",
+ "C2=2*C3\n",
+ "fc2=f/.8\n",
+ "R4=1/(2*3.14*fc2*C3*(math.sqrt(2)))\n",
+ "R3=R4\n",
+ "R5=R3+R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " third order low pass filter\n",
+ "-20 dB per decade stage\n",
+ "-40dB per decade stage\n",
+ "The value of R5 is 6.01 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.7, Page No 730"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=20.0*10**3\n",
+ "print(\"3rd order high pass filter\")\n",
+ "print(\"-20dB per decade stage\")\n",
+ "R1=121.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fc1=.65*f\n",
+ "C1=1/(2*3.14*fc1*R1)\n",
+ "#this is so small it might be effected by stray capacitor.redesign %first choosing a suitable capacitance C1\n",
+ "C1=100*10**-12\n",
+ "R1=1/(2*3.14*f*C1)\n",
+ "R2=R1\n",
+ "print(\"-40dB per decade stage\")\n",
+ "C3=1000*10**-12\n",
+ "R4=(math.sqrt(2))/(2*3.14*.8*f*C3)\n",
+ "C2=C3\n",
+ "R3=.5*R4\n",
+ "R5=R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3rd order high pass filter\n",
+ "-20dB per decade stage\n",
+ "-40dB per decade stage\n",
+ "The value of R5 is 14.07 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.8 Page No 734"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=300.0\n",
+ "f2=30.0*10**3\n",
+ "print(\" single stage band pass filter\")\n",
+ "\n",
+ "#Calculations\n",
+ "C2=1000*10**-12\n",
+ "R2=1/(2*3.14*f2*C2)\n",
+ "R1=R2\n",
+ "Xc1=R1#at voltage gain Av=1\n",
+ "C1=1/(2*3.14*f1*R1)\n",
+ "R3=R2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " single stage band pass filter\n",
+ "The value of R3 is 5.31 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.9 Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=300.0\n",
+ "f2=30.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fo=math.sqrt(f1*f2)\n",
+ "BW=f2-f1\n",
+ "Q=fo/BW\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Q is %.2f \" %(Q))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Q is 0.10 \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.10 Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=60.4*10**3\n",
+ "R4=1.21*10**3\n",
+ "C=.012*10**-6\n",
+ "R2=121.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Q=math.sqrt((R1+R4)/(2*R4))\n",
+ "fo=Q/(3.14*C*R2)\n",
+ "print(\" center frequency is %3.2fHz \" %fo)\n",
+ "BW=fo/Q\n",
+ "\n",
+ "#Results\n",
+ "print(\" bandwidth is %3.1fHz \" %BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " center frequency is 1106.68Hz \n",
+ " bandwidth is 219.3Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.12, Page No 744"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=10.3*10**3\n",
+ "f2=10.9*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "\n",
+ "#Calculations\n",
+ "C2=C1\n",
+ "fo=math.sqrt(f1*f2)\n",
+ "R5=1.0/(2*3.14*fo*C1)\n",
+ "R1=R5\n",
+ "Q=fo/(f2-f1)\n",
+ "R2=R1*(2*Q-1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R2 is %.2f kohm\" %(R2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is 515.76 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.13, Page No 750"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f1=10.3*10**3\n",
+ "f2=10.9*10**3\n",
+ "Hobp=34\n",
+ "\n",
+ "#Calculations\n",
+ "math.sqrt(f1*f2)\n",
+ "Q=fo/(f2-f1)\n",
+ "R3=120.0*10**3\n",
+ "R2=R3/Q\n",
+ "R1=R3/Hobp\n",
+ "k=50*fo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of k is %.2f \" %(k/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of k is 529.79 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter17_2.ipynb b/Electronic_Devices_and_Circuits/Chapter17_2.ipynb
new file mode 100755
index 00000000..0bf01537
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter17_2.ipynb
@@ -0,0 +1,560 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : Active filters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.1, Page No 716"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "rs=600.0\n",
+ "R1=12.0*10**3\n",
+ "Rl=100.0*10**3\n",
+ "C1=0.013*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Rl is not connected\")\n",
+ "fc=1.0/(2*3.14*R1*C1)\n",
+ "print(\" when Rl is connected\")\n",
+ "fc=1.0/(2*3.14*((R1*Rl)/(R1+Rl))*C1)\n",
+ "Attn=3#at fc attenuation is =3dB\n",
+ "falloffrate=6\n",
+ "print(\"attenuation at 2fc\")\n",
+ "Attn=3+6\n",
+ "print(\"attenuation at 2fc is %ddB \" %Attn)\n",
+ "Attn=3+6+6\n",
+ "\n",
+ "#Results\n",
+ "print(\" attenuation at 4fc is %ddB \" %Attn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Rl is not connected\n",
+ " when Rl is connected\n",
+ "attenuation at 2fc\n",
+ "attenuation at 2fc is 9dB \n",
+ " attenuation at 4fc is 15dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.2, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ib=500.0*10**-9\n",
+ "f=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(70.0*10**-3)/Ib\n",
+ "R1=140*10**3#use standard value\n",
+ "R2=R1\n",
+ "C1=(1/(2*3.14*R1*f))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\" capacitor used is of %.2f pF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " capacitor used is of 1137.40 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.3 Page No 719"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "print(\"first order high pass active filter\")\n",
+ "f=5.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "fu=1.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "R1=1.0/(2*3.14*f*C1)\n",
+ "BW=fu-f\n",
+ "print(\" bandwidth is %.2f kHz \" %(BW/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "first order high pass active filter\n",
+ " bandwidth is 995.00 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.4, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=1.0*10**3\n",
+ "Ib=500.0*10**-9\n",
+ "print(\"butterworth second order filter\")\n",
+ "\n",
+ "#Calculations\n",
+ "R=(70.0*10**-3)/Ib\n",
+ "R1=R/2.0\n",
+ "R1=68.1*10**3#use standard value\n",
+ "R2=R1 \n",
+ "R3=2.0*R1\n",
+ "Xc1=math.sqrt(2)*R2\n",
+ "C1=1/(2*3.14*f*math.sqrt(2)*R2)\n",
+ "C2=2*C1\n",
+ "fc=1/(2*3.14*(math.sqrt(R1*R2*C1*C2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"actual cutoff frequency is %d kHz \" %(fc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "butterworth second order filter\n",
+ "actual cutoff frequency is 1 kHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.5 Page No 725"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=12.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "print(\"butterworth second order filter\")\n",
+ "C2=C1\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(math.sqrt(2))/(2*3.14*f*C1)\n",
+ "R1=.5*R2\n",
+ "R3=R2\n",
+ "fc=1.0/(2*3.14*(math.sqrt(R1*R2*C1*C2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"actual cutoff frequency is %d KHz \" %(fc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "butterworth second order filter\n",
+ "actual cutoff frequency is 11 KHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.6 Page No 729"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=30.0*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "print(\" third order low pass filter\")\n",
+ "print(\"-20 dB per decade stage\")\n",
+ "\n",
+ "#Calculations\n",
+ "fc1=f/.65\n",
+ "R1=1.0/(2*3.14*fc1*C1)\n",
+ "R2=R1\n",
+ "print(\"-40dB per decade stage\")\n",
+ "C3=1000*10**-12\n",
+ "C2=2*C3\n",
+ "fc2=f/.8\n",
+ "R4=1/(2*3.14*fc2*C3*(math.sqrt(2)))\n",
+ "R3=R4\n",
+ "R5=R3+R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " third order low pass filter\n",
+ "-20 dB per decade stage\n",
+ "-40dB per decade stage\n",
+ "The value of R5 is 6.01 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.7, Page No 730"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=20.0*10**3\n",
+ "print(\"3rd order high pass filter\")\n",
+ "print(\"-20dB per decade stage\")\n",
+ "R1=121.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fc1=.65*f\n",
+ "C1=1/(2*3.14*fc1*R1)\n",
+ "#this is so small it might be effected by stray capacitor.redesign %first choosing a suitable capacitance C1\n",
+ "C1=100*10**-12\n",
+ "R1=1/(2*3.14*f*C1)\n",
+ "R2=R1\n",
+ "print(\"-40dB per decade stage\")\n",
+ "C3=1000*10**-12\n",
+ "R4=(math.sqrt(2))/(2*3.14*.8*f*C3)\n",
+ "C2=C3\n",
+ "R3=.5*R4\n",
+ "R5=R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3rd order high pass filter\n",
+ "-20dB per decade stage\n",
+ "-40dB per decade stage\n",
+ "The value of R5 is 14.07 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.8 Page No 734"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=300.0\n",
+ "f2=30.0*10**3\n",
+ "print(\" single stage band pass filter\")\n",
+ "\n",
+ "#Calculations\n",
+ "C2=1000*10**-12\n",
+ "R2=1/(2*3.14*f2*C2)\n",
+ "R1=R2\n",
+ "Xc1=R1#at voltage gain Av=1\n",
+ "C1=1/(2*3.14*f1*R1)\n",
+ "R3=R2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " single stage band pass filter\n",
+ "The value of R3 is 5.31 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.9 Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f1=300.0\n",
+ "f2=30.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fo=math.sqrt(f1*f2)\n",
+ "BW=f2-f1\n",
+ "Q=fo/BW\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Q is %.2f \" %(Q))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Q is 0.10 \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.10 Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R1=60.4*10**3\n",
+ "R4=1.21*10**3\n",
+ "C=.012*10**-6\n",
+ "R2=121.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Q=math.sqrt((R1+R4)/(2*R4))\n",
+ "fo=Q/(3.14*C*R2)\n",
+ "print(\" center frequency is %3.2fHz \" %fo)\n",
+ "BW=fo/Q\n",
+ "\n",
+ "#Results\n",
+ "print(\" bandwidth is %3.1fHz \" %BW)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " center frequency is 1106.68Hz \n",
+ " bandwidth is 219.3Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.12, Page No 744"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "f1=10.3*10**3\n",
+ "f2=10.9*10**3\n",
+ "C1=1000.0*10**-12\n",
+ "\n",
+ "#Calculations\n",
+ "C2=C1\n",
+ "fo=math.sqrt(f1*f2)\n",
+ "R5=1.0/(2*3.14*fo*C1)\n",
+ "R1=R5\n",
+ "Q=fo/(f2-f1)\n",
+ "R2=R1*(2*Q-1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R2 is %.2f kohm\" %(R2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is 515.76 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.13, Page No 750"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f1=10.3*10**3\n",
+ "f2=10.9*10**3\n",
+ "Hobp=34\n",
+ "\n",
+ "#Calculations\n",
+ "math.sqrt(f1*f2)\n",
+ "Q=fo/(f2-f1)\n",
+ "R3=120.0*10**3\n",
+ "R2=R3/Q\n",
+ "R1=R3/Hobp\n",
+ "k=50*fo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of k is %.2f \" %(k/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of k is 529.79 \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter18.ipynb b/Electronic_Devices_and_Circuits/Chapter18.ipynb
new file mode 100755
index 00000000..4cac5251
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter18.ipynb
@@ -0,0 +1,684 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Linear and switching voltage regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1, Page No 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vs=21.0\n",
+ "Vo=12.0\n",
+ "Av=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "vo=(Vs*0.1)/Av#source effect is 10% of the Vs\n",
+ "print(\" source effect is %3.3fV \" %vo)\n",
+ "vo=(21-20)/100.0\n",
+ "print(\" laod effect is %3.3fV \" %vo)\n",
+ "LR=(21*10**-3 *100)/12.0\n",
+ "print(\"line regulation is %3.3fpercentage \" %LR)\n",
+ "LR=(10*10**-3*100)/12.0\n",
+ "print(\" load effect is %3.3fpercentage \" %LR)\n",
+ "RJ=20*math.log((1.0/Av),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\"ripple rejection is %d dB \" %RJ)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " source effect is 0.021V \n",
+ " laod effect is 0.010V \n",
+ "line regulation is 0.175percentage \n",
+ " load effect is 0.083percentage \n",
+ "ripple rejection is -39 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2, Page No 762"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=12.0\n",
+ "Il=40.0*10**-3\n",
+ "Vs=20.0\n",
+ "Vbe=.7\n",
+ "Vz=0.75*Vo\n",
+ "print(\"for minimum D1 current select\")\n",
+ "Ir2=10.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(Vo-Vz)/Ir2\n",
+ "Ie1=Il+Ir2\n",
+ "print(\"specification for Q\")\n",
+ "Vce1=20 \n",
+ "Vs=Vce1\n",
+ "Ic1=50*10**-3\n",
+ "Pd=(Vs-Vo)*Ie1\n",
+ "hfe=50\n",
+ "Ib1=Ie1/hfe\n",
+ "Ic2=5*10**-3\n",
+ "R1=(Vs-(Vo+.7))/(Ic2+Ib1)\n",
+ "Iz=Ie1+Ir2\n",
+ "I4=1*10**-3\n",
+ "R4=(Vz+Vbe)/I4\n",
+ "R3=(Vo-(Vz+Vbe))/I4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for minimum D1 current select\n",
+ "specification for Q\n",
+ "The value of R3 is 2.30 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I4=1.0*10**-3\n",
+ "Vb2=9.8\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" for Vo=11V moving contact at top of R5\")\n",
+ "Vo=11\n",
+ "R3=(Vo-Vb2)/I4\n",
+ "R=Vb2/I4#R=R4+R5\n",
+ "print(\" for Vo=13V moving contact at bottom of R5\")\n",
+ "Vo=13\n",
+ "I4=Vo/(R3+R)\n",
+ "R4=Vb2/I4\n",
+ "R5=R-R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Vo=11V moving contact at top of R5\n",
+ " for Vo=13V moving contact at bottom of R5\n",
+ "The value of R5 is 1.51 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.4, Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE3=50.0\n",
+ "hFE1=20.0\n",
+ "Ie1=200.0*10**-3+10*10**-3\n",
+ "Ic2=1.0*1**-3\n",
+ "Vs=20.0\n",
+ "Vb3=13.4\n",
+ "Vo=12.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib1=Ie1/hFE1\n",
+ "Ib3=Ib1/hFE3\n",
+ "R1=(Vs-Vb3)/(Ic2+Ib3)\n",
+ "print(\"select I6=.5*10**-3\")\n",
+ "I6=.5*10**-3\n",
+ "R6=(Vo+Vbe)/I6\n",
+ "Pd=(Vs-Vo)*Ie1\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak power dissipated is %.3fnW \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select I6=.5*10**-3\n",
+ " peak power dissipated is 1.680nW \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.5 Page No 769"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vr1=3.0\n",
+ "Ic2=1.0*10**-3\n",
+ "Ib3=0.21*10**-3\n",
+ "Vbe1=0.7\n",
+ "Vbe3=Vbe1\n",
+ "Vs=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vr1/(Ic2+Ib3)\n",
+ "Vz2=Vo+Vbe1+Vbe3+Vr1\n",
+ "Ir7=5*10**-3\n",
+ "R2=(Vs-Vz2)/Ir7\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R2 is %.2f kohm\" %(R2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is 0.72 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.6 Page No 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vc5=9.8\n",
+ "Vb2=Vc5\n",
+ "Vce5=3.0\n",
+ "Vbe=0.7\n",
+ "Vo=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr9=Vc5-Vce5\n",
+ "Vz2=Vr9+Vbe\n",
+ "Ic5=1.0*10**-3\n",
+ "R8=(Vo-Vc5)/Ic5\n",
+ "Ir9=2*Ic5\n",
+ "R9=Vr9/Ir9\n",
+ "print(\" Iz2>>Ib5 and Iz2> Izk for the zener diode \")\n",
+ "Iz2=10*10**-3\n",
+ "R7=(Vo-Vz2)/Iz2\n",
+ "I4=1*10**-3\n",
+ "Vb6=7.5\n",
+ "Vz2=Vb6\n",
+ "print(\" when Vo=11V moving contact at top of R5 \")\n",
+ "Vo=11\n",
+ "R3=(Vo-Vb6)/I4\n",
+ "R3=3.3*10**3#use standard value\n",
+ "I4=(Vo-Vb6)/R3\n",
+ "R=Vb6/I4#R=R4+R5\n",
+ "print(\" when Vo=13V moving contact at bottom of R5\")\n",
+ "Vo=13.0\n",
+ "Vb6=7.5\n",
+ "I4=Vo/(R3+R)\n",
+ "R4=Vb6/I4\n",
+ "R5=R-R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Iz2>>Ib5 and Iz2> Izk for the zener diode \n",
+ " when Vo=11V moving contact at top of R5 \n",
+ " when Vo=13V moving contact at bottom of R5\n",
+ "The value of R5 is 1.09 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.7, Page No 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Isc=100.0*10**-3\n",
+ "Vr10=0.5\n",
+ "Vo=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "R10=Vr10/Isc\n",
+ "R10=4.7#use standard value\n",
+ "Il=200.0*10**-3\n",
+ "Vr10=Il*R10\n",
+ "Vr11=Vr10-.5\n",
+ "I11=1.0*10**-3\n",
+ "R11=Vr11/I11\n",
+ "R12=(Vo+Vr10-Vr11)/I11\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R12 is %.2f kohm\" %(R12/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R12 is 12.50 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.8 Page No 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=12.0\n",
+ "hFE1=20.0\n",
+ "hFE2=50.0\n",
+ "Il=250.0*10**-3\n",
+ "Vz=0.75*Vo\n",
+ "Vz=9.1#use standard value for 1N757 diode\n",
+ "Iz1=10.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(Vo-Vz)/Iz1\n",
+ "I3=1.0*10**-3\n",
+ "print(\" when V0=12V(moving contact at top of R5)\")\n",
+ "R3=(Vo-Vz)/I3\n",
+ "R=Vz/I3\n",
+ "print(\" when Vo=15V moving contact at bottom of R5\")\n",
+ "Vo=15\n",
+ "I3=Vo/(R+R3)\n",
+ "R4=Vz/I3\n",
+ "R5=R-R4\n",
+ "Ir6=.5*10**-3\n",
+ "R6=Vo/Ir6\n",
+ "print(\" op-amp output current\")\n",
+ "Ib2=Il/(hFE1*hFE2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ib2 is %.2f mA\" %(Ib2*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " when V0=12V(moving contact at top of R5)\n",
+ " when Vo=15V moving contact at bottom of R5\n",
+ " op-amp output current\n",
+ "The value of Ib2 is 0.25 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.9 Page No 782"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I2=1.0*10**-3\n",
+ "Vr2=7.15\n",
+ "Vref=Vr2\n",
+ "Vo=10.0\n",
+ "Pdmax=1000.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R2=Vref/I2\n",
+ "R2=6.8*10**3#use standard value and recalculate the I2\n",
+ "I2=Vref/R2\n",
+ "R1=(Vo-Vref)/I2\n",
+ "Vs=Vo+5#for satisfactory operation of series pass transistor\n",
+ "Iint=25*10**-3#internal circuit current\n",
+ "Pi=Vs*Iint\n",
+ "print(\"maximum power dissipated in series pass transistor\")\n",
+ "Pd=Pdmax-Pi\n",
+ "print(\"maximum load current is \")\n",
+ "Il=Pd/(Vs-Vo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Il is %.2f mA\" %(Il*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum power dissipated in series pass transistor\n",
+ "maximum load current is \n",
+ "The value of Il is 125.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.10 Page No 785"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I1=1.0*10**-3\n",
+ "Vref=1.25\n",
+ "Vo=6.0\n",
+ "Vs=15.0\n",
+ "Il=200.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vref/I1\n",
+ "R2=(Vo-Vref)/I1\n",
+ "Pd=(Vs-Vo)*Il\n",
+ "\n",
+ "#Results\n",
+ "print(\"regulated power dissipation is %.2f W \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "regulated power dissipation is 1.80 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.11, Page No 788"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=10.0\n",
+ "Io=1.0\n",
+ "Vce=7.0\n",
+ "Vf=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Po=Vo*Io\n",
+ "print(\" linear regulator\")\n",
+ "Pi=Po+(Vce*Io)\n",
+ "n=(Po*100.0)/Pi#efficiency\n",
+ "print(\" switching regulator\")\n",
+ "Vce=1\n",
+ "Pi=Po+Io*(Vce+Vf)\n",
+ "n=(Po*100.0)/Pi#efficiency\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of n is %.2f \" %(n))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " linear regulator\n",
+ " switching regulator\n",
+ "The value of n is 83.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.12, Page No 752"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=50.0*10**3\n",
+ "Vo=12.0\n",
+ "Vf=0.7\n",
+ "Vi=30.0\n",
+ "Vsat=1.0\n",
+ "Io=500.0*10**-3\n",
+ "Vr=100.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "T=1.0/f\n",
+ "t=(Vo+Vf)/(Vi-Vsat-Vo)\n",
+ "toff=T/1.75\n",
+ "ton=T-toff\n",
+ "Ip=2*Io\n",
+ "L1=((Vi-Vsat-Vo)*ton)/Ip\n",
+ "C1=Ip/(8.0*f*Vr)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C1 is %.2f pF\" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C1 is 25.00 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.13, Page No 799"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "print(\" an MC34063 controller is for step down transformer\")\n",
+ "Ib=-400.0*10**-3\n",
+ "I1=1.0*10**-3\n",
+ "Vref=1.25\n",
+ "V0=12.0\n",
+ "Ip=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "ton=8.6*10**-6\n",
+ "R1=Vref/I1\n",
+ "R1=1.2*10**3#use standard value\n",
+ "I1=Vref/R1\n",
+ "R2=(Vo-Vref)/I1\n",
+ "Rsc=.33/Ip\n",
+ "Ct=4.8*10**-5 *ton\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ct is %.2f pF\" %(Ct*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " an MC34063 controller is for step down transformer\n",
+ "The value of Ct is 0.00 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter18_1.ipynb b/Electronic_Devices_and_Circuits/Chapter18_1.ipynb
new file mode 100755
index 00000000..4cac5251
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter18_1.ipynb
@@ -0,0 +1,684 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Linear and switching voltage regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1, Page No 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vs=21.0\n",
+ "Vo=12.0\n",
+ "Av=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "vo=(Vs*0.1)/Av#source effect is 10% of the Vs\n",
+ "print(\" source effect is %3.3fV \" %vo)\n",
+ "vo=(21-20)/100.0\n",
+ "print(\" laod effect is %3.3fV \" %vo)\n",
+ "LR=(21*10**-3 *100)/12.0\n",
+ "print(\"line regulation is %3.3fpercentage \" %LR)\n",
+ "LR=(10*10**-3*100)/12.0\n",
+ "print(\" load effect is %3.3fpercentage \" %LR)\n",
+ "RJ=20*math.log((1.0/Av),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\"ripple rejection is %d dB \" %RJ)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " source effect is 0.021V \n",
+ " laod effect is 0.010V \n",
+ "line regulation is 0.175percentage \n",
+ " load effect is 0.083percentage \n",
+ "ripple rejection is -39 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2, Page No 762"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=12.0\n",
+ "Il=40.0*10**-3\n",
+ "Vs=20.0\n",
+ "Vbe=.7\n",
+ "Vz=0.75*Vo\n",
+ "print(\"for minimum D1 current select\")\n",
+ "Ir2=10.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(Vo-Vz)/Ir2\n",
+ "Ie1=Il+Ir2\n",
+ "print(\"specification for Q\")\n",
+ "Vce1=20 \n",
+ "Vs=Vce1\n",
+ "Ic1=50*10**-3\n",
+ "Pd=(Vs-Vo)*Ie1\n",
+ "hfe=50\n",
+ "Ib1=Ie1/hfe\n",
+ "Ic2=5*10**-3\n",
+ "R1=(Vs-(Vo+.7))/(Ic2+Ib1)\n",
+ "Iz=Ie1+Ir2\n",
+ "I4=1*10**-3\n",
+ "R4=(Vz+Vbe)/I4\n",
+ "R3=(Vo-(Vz+Vbe))/I4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for minimum D1 current select\n",
+ "specification for Q\n",
+ "The value of R3 is 2.30 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I4=1.0*10**-3\n",
+ "Vb2=9.8\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" for Vo=11V moving contact at top of R5\")\n",
+ "Vo=11\n",
+ "R3=(Vo-Vb2)/I4\n",
+ "R=Vb2/I4#R=R4+R5\n",
+ "print(\" for Vo=13V moving contact at bottom of R5\")\n",
+ "Vo=13\n",
+ "I4=Vo/(R3+R)\n",
+ "R4=Vb2/I4\n",
+ "R5=R-R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Vo=11V moving contact at top of R5\n",
+ " for Vo=13V moving contact at bottom of R5\n",
+ "The value of R5 is 1.51 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.4, Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE3=50.0\n",
+ "hFE1=20.0\n",
+ "Ie1=200.0*10**-3+10*10**-3\n",
+ "Ic2=1.0*1**-3\n",
+ "Vs=20.0\n",
+ "Vb3=13.4\n",
+ "Vo=12.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib1=Ie1/hFE1\n",
+ "Ib3=Ib1/hFE3\n",
+ "R1=(Vs-Vb3)/(Ic2+Ib3)\n",
+ "print(\"select I6=.5*10**-3\")\n",
+ "I6=.5*10**-3\n",
+ "R6=(Vo+Vbe)/I6\n",
+ "Pd=(Vs-Vo)*Ie1\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak power dissipated is %.3fnW \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select I6=.5*10**-3\n",
+ " peak power dissipated is 1.680nW \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.5 Page No 769"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vr1=3.0\n",
+ "Ic2=1.0*10**-3\n",
+ "Ib3=0.21*10**-3\n",
+ "Vbe1=0.7\n",
+ "Vbe3=Vbe1\n",
+ "Vs=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vr1/(Ic2+Ib3)\n",
+ "Vz2=Vo+Vbe1+Vbe3+Vr1\n",
+ "Ir7=5*10**-3\n",
+ "R2=(Vs-Vz2)/Ir7\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R2 is %.2f kohm\" %(R2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is 0.72 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.6 Page No 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vc5=9.8\n",
+ "Vb2=Vc5\n",
+ "Vce5=3.0\n",
+ "Vbe=0.7\n",
+ "Vo=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr9=Vc5-Vce5\n",
+ "Vz2=Vr9+Vbe\n",
+ "Ic5=1.0*10**-3\n",
+ "R8=(Vo-Vc5)/Ic5\n",
+ "Ir9=2*Ic5\n",
+ "R9=Vr9/Ir9\n",
+ "print(\" Iz2>>Ib5 and Iz2> Izk for the zener diode \")\n",
+ "Iz2=10*10**-3\n",
+ "R7=(Vo-Vz2)/Iz2\n",
+ "I4=1*10**-3\n",
+ "Vb6=7.5\n",
+ "Vz2=Vb6\n",
+ "print(\" when Vo=11V moving contact at top of R5 \")\n",
+ "Vo=11\n",
+ "R3=(Vo-Vb6)/I4\n",
+ "R3=3.3*10**3#use standard value\n",
+ "I4=(Vo-Vb6)/R3\n",
+ "R=Vb6/I4#R=R4+R5\n",
+ "print(\" when Vo=13V moving contact at bottom of R5\")\n",
+ "Vo=13.0\n",
+ "Vb6=7.5\n",
+ "I4=Vo/(R3+R)\n",
+ "R4=Vb6/I4\n",
+ "R5=R-R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Iz2>>Ib5 and Iz2> Izk for the zener diode \n",
+ " when Vo=11V moving contact at top of R5 \n",
+ " when Vo=13V moving contact at bottom of R5\n",
+ "The value of R5 is 1.09 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.7, Page No 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Isc=100.0*10**-3\n",
+ "Vr10=0.5\n",
+ "Vo=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "R10=Vr10/Isc\n",
+ "R10=4.7#use standard value\n",
+ "Il=200.0*10**-3\n",
+ "Vr10=Il*R10\n",
+ "Vr11=Vr10-.5\n",
+ "I11=1.0*10**-3\n",
+ "R11=Vr11/I11\n",
+ "R12=(Vo+Vr10-Vr11)/I11\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R12 is %.2f kohm\" %(R12/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R12 is 12.50 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.8 Page No 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=12.0\n",
+ "hFE1=20.0\n",
+ "hFE2=50.0\n",
+ "Il=250.0*10**-3\n",
+ "Vz=0.75*Vo\n",
+ "Vz=9.1#use standard value for 1N757 diode\n",
+ "Iz1=10.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(Vo-Vz)/Iz1\n",
+ "I3=1.0*10**-3\n",
+ "print(\" when V0=12V(moving contact at top of R5)\")\n",
+ "R3=(Vo-Vz)/I3\n",
+ "R=Vz/I3\n",
+ "print(\" when Vo=15V moving contact at bottom of R5\")\n",
+ "Vo=15\n",
+ "I3=Vo/(R+R3)\n",
+ "R4=Vz/I3\n",
+ "R5=R-R4\n",
+ "Ir6=.5*10**-3\n",
+ "R6=Vo/Ir6\n",
+ "print(\" op-amp output current\")\n",
+ "Ib2=Il/(hFE1*hFE2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ib2 is %.2f mA\" %(Ib2*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " when V0=12V(moving contact at top of R5)\n",
+ " when Vo=15V moving contact at bottom of R5\n",
+ " op-amp output current\n",
+ "The value of Ib2 is 0.25 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.9 Page No 782"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I2=1.0*10**-3\n",
+ "Vr2=7.15\n",
+ "Vref=Vr2\n",
+ "Vo=10.0\n",
+ "Pdmax=1000.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R2=Vref/I2\n",
+ "R2=6.8*10**3#use standard value and recalculate the I2\n",
+ "I2=Vref/R2\n",
+ "R1=(Vo-Vref)/I2\n",
+ "Vs=Vo+5#for satisfactory operation of series pass transistor\n",
+ "Iint=25*10**-3#internal circuit current\n",
+ "Pi=Vs*Iint\n",
+ "print(\"maximum power dissipated in series pass transistor\")\n",
+ "Pd=Pdmax-Pi\n",
+ "print(\"maximum load current is \")\n",
+ "Il=Pd/(Vs-Vo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Il is %.2f mA\" %(Il*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum power dissipated in series pass transistor\n",
+ "maximum load current is \n",
+ "The value of Il is 125.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.10 Page No 785"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I1=1.0*10**-3\n",
+ "Vref=1.25\n",
+ "Vo=6.0\n",
+ "Vs=15.0\n",
+ "Il=200.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vref/I1\n",
+ "R2=(Vo-Vref)/I1\n",
+ "Pd=(Vs-Vo)*Il\n",
+ "\n",
+ "#Results\n",
+ "print(\"regulated power dissipation is %.2f W \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "regulated power dissipation is 1.80 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.11, Page No 788"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=10.0\n",
+ "Io=1.0\n",
+ "Vce=7.0\n",
+ "Vf=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Po=Vo*Io\n",
+ "print(\" linear regulator\")\n",
+ "Pi=Po+(Vce*Io)\n",
+ "n=(Po*100.0)/Pi#efficiency\n",
+ "print(\" switching regulator\")\n",
+ "Vce=1\n",
+ "Pi=Po+Io*(Vce+Vf)\n",
+ "n=(Po*100.0)/Pi#efficiency\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of n is %.2f \" %(n))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " linear regulator\n",
+ " switching regulator\n",
+ "The value of n is 83.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.12, Page No 752"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=50.0*10**3\n",
+ "Vo=12.0\n",
+ "Vf=0.7\n",
+ "Vi=30.0\n",
+ "Vsat=1.0\n",
+ "Io=500.0*10**-3\n",
+ "Vr=100.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "T=1.0/f\n",
+ "t=(Vo+Vf)/(Vi-Vsat-Vo)\n",
+ "toff=T/1.75\n",
+ "ton=T-toff\n",
+ "Ip=2*Io\n",
+ "L1=((Vi-Vsat-Vo)*ton)/Ip\n",
+ "C1=Ip/(8.0*f*Vr)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C1 is %.2f pF\" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C1 is 25.00 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.13, Page No 799"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "print(\" an MC34063 controller is for step down transformer\")\n",
+ "Ib=-400.0*10**-3\n",
+ "I1=1.0*10**-3\n",
+ "Vref=1.25\n",
+ "V0=12.0\n",
+ "Ip=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "ton=8.6*10**-6\n",
+ "R1=Vref/I1\n",
+ "R1=1.2*10**3#use standard value\n",
+ "I1=Vref/R1\n",
+ "R2=(Vo-Vref)/I1\n",
+ "Rsc=.33/Ip\n",
+ "Ct=4.8*10**-5 *ton\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ct is %.2f pF\" %(Ct*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " an MC34063 controller is for step down transformer\n",
+ "The value of Ct is 0.00 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter18_2.ipynb b/Electronic_Devices_and_Circuits/Chapter18_2.ipynb
new file mode 100755
index 00000000..4cac5251
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter18_2.ipynb
@@ -0,0 +1,684 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Linear and switching voltage regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1, Page No 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vs=21.0\n",
+ "Vo=12.0\n",
+ "Av=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "vo=(Vs*0.1)/Av#source effect is 10% of the Vs\n",
+ "print(\" source effect is %3.3fV \" %vo)\n",
+ "vo=(21-20)/100.0\n",
+ "print(\" laod effect is %3.3fV \" %vo)\n",
+ "LR=(21*10**-3 *100)/12.0\n",
+ "print(\"line regulation is %3.3fpercentage \" %LR)\n",
+ "LR=(10*10**-3*100)/12.0\n",
+ "print(\" load effect is %3.3fpercentage \" %LR)\n",
+ "RJ=20*math.log((1.0/Av),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\"ripple rejection is %d dB \" %RJ)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " source effect is 0.021V \n",
+ " laod effect is 0.010V \n",
+ "line regulation is 0.175percentage \n",
+ " load effect is 0.083percentage \n",
+ "ripple rejection is -39 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2, Page No 762"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=12.0\n",
+ "Il=40.0*10**-3\n",
+ "Vs=20.0\n",
+ "Vbe=.7\n",
+ "Vz=0.75*Vo\n",
+ "print(\"for minimum D1 current select\")\n",
+ "Ir2=10.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(Vo-Vz)/Ir2\n",
+ "Ie1=Il+Ir2\n",
+ "print(\"specification for Q\")\n",
+ "Vce1=20 \n",
+ "Vs=Vce1\n",
+ "Ic1=50*10**-3\n",
+ "Pd=(Vs-Vo)*Ie1\n",
+ "hfe=50\n",
+ "Ib1=Ie1/hfe\n",
+ "Ic2=5*10**-3\n",
+ "R1=(Vs-(Vo+.7))/(Ic2+Ib1)\n",
+ "Iz=Ie1+Ir2\n",
+ "I4=1*10**-3\n",
+ "R4=(Vz+Vbe)/I4\n",
+ "R3=(Vo-(Vz+Vbe))/I4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 is %.2f kohm\" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for minimum D1 current select\n",
+ "specification for Q\n",
+ "The value of R3 is 2.30 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I4=1.0*10**-3\n",
+ "Vb2=9.8\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" for Vo=11V moving contact at top of R5\")\n",
+ "Vo=11\n",
+ "R3=(Vo-Vb2)/I4\n",
+ "R=Vb2/I4#R=R4+R5\n",
+ "print(\" for Vo=13V moving contact at bottom of R5\")\n",
+ "Vo=13\n",
+ "I4=Vo/(R3+R)\n",
+ "R4=Vb2/I4\n",
+ "R5=R-R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Vo=11V moving contact at top of R5\n",
+ " for Vo=13V moving contact at bottom of R5\n",
+ "The value of R5 is 1.51 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.4, Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE3=50.0\n",
+ "hFE1=20.0\n",
+ "Ie1=200.0*10**-3+10*10**-3\n",
+ "Ic2=1.0*1**-3\n",
+ "Vs=20.0\n",
+ "Vb3=13.4\n",
+ "Vo=12.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib1=Ie1/hFE1\n",
+ "Ib3=Ib1/hFE3\n",
+ "R1=(Vs-Vb3)/(Ic2+Ib3)\n",
+ "print(\"select I6=.5*10**-3\")\n",
+ "I6=.5*10**-3\n",
+ "R6=(Vo+Vbe)/I6\n",
+ "Pd=(Vs-Vo)*Ie1\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak power dissipated is %.3fnW \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "select I6=.5*10**-3\n",
+ " peak power dissipated is 1.680nW \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.5 Page No 769"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vr1=3.0\n",
+ "Ic2=1.0*10**-3\n",
+ "Ib3=0.21*10**-3\n",
+ "Vbe1=0.7\n",
+ "Vbe3=Vbe1\n",
+ "Vs=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vr1/(Ic2+Ib3)\n",
+ "Vz2=Vo+Vbe1+Vbe3+Vr1\n",
+ "Ir7=5*10**-3\n",
+ "R2=(Vs-Vz2)/Ir7\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R2 is %.2f kohm\" %(R2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R2 is 0.72 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.6 Page No 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vc5=9.8\n",
+ "Vb2=Vc5\n",
+ "Vce5=3.0\n",
+ "Vbe=0.7\n",
+ "Vo=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr9=Vc5-Vce5\n",
+ "Vz2=Vr9+Vbe\n",
+ "Ic5=1.0*10**-3\n",
+ "R8=(Vo-Vc5)/Ic5\n",
+ "Ir9=2*Ic5\n",
+ "R9=Vr9/Ir9\n",
+ "print(\" Iz2>>Ib5 and Iz2> Izk for the zener diode \")\n",
+ "Iz2=10*10**-3\n",
+ "R7=(Vo-Vz2)/Iz2\n",
+ "I4=1*10**-3\n",
+ "Vb6=7.5\n",
+ "Vz2=Vb6\n",
+ "print(\" when Vo=11V moving contact at top of R5 \")\n",
+ "Vo=11\n",
+ "R3=(Vo-Vb6)/I4\n",
+ "R3=3.3*10**3#use standard value\n",
+ "I4=(Vo-Vb6)/R3\n",
+ "R=Vb6/I4#R=R4+R5\n",
+ "print(\" when Vo=13V moving contact at bottom of R5\")\n",
+ "Vo=13.0\n",
+ "Vb6=7.5\n",
+ "I4=Vo/(R3+R)\n",
+ "R4=Vb6/I4\n",
+ "R5=R-R4\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R5 is %.2f kohm\" %(R5/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Iz2>>Ib5 and Iz2> Izk for the zener diode \n",
+ " when Vo=11V moving contact at top of R5 \n",
+ " when Vo=13V moving contact at bottom of R5\n",
+ "The value of R5 is 1.09 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.7, Page No 770"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Isc=100.0*10**-3\n",
+ "Vr10=0.5\n",
+ "Vo=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "R10=Vr10/Isc\n",
+ "R10=4.7#use standard value\n",
+ "Il=200.0*10**-3\n",
+ "Vr10=Il*R10\n",
+ "Vr11=Vr10-.5\n",
+ "I11=1.0*10**-3\n",
+ "R11=Vr11/I11\n",
+ "R12=(Vo+Vr10-Vr11)/I11\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R12 is %.2f kohm\" %(R12/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R12 is 12.50 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.8 Page No 778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=12.0\n",
+ "hFE1=20.0\n",
+ "hFE2=50.0\n",
+ "Il=250.0*10**-3\n",
+ "Vz=0.75*Vo\n",
+ "Vz=9.1#use standard value for 1N757 diode\n",
+ "Iz1=10.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(Vo-Vz)/Iz1\n",
+ "I3=1.0*10**-3\n",
+ "print(\" when V0=12V(moving contact at top of R5)\")\n",
+ "R3=(Vo-Vz)/I3\n",
+ "R=Vz/I3\n",
+ "print(\" when Vo=15V moving contact at bottom of R5\")\n",
+ "Vo=15\n",
+ "I3=Vo/(R+R3)\n",
+ "R4=Vz/I3\n",
+ "R5=R-R4\n",
+ "Ir6=.5*10**-3\n",
+ "R6=Vo/Ir6\n",
+ "print(\" op-amp output current\")\n",
+ "Ib2=Il/(hFE1*hFE2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ib2 is %.2f mA\" %(Ib2*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " when V0=12V(moving contact at top of R5)\n",
+ " when Vo=15V moving contact at bottom of R5\n",
+ " op-amp output current\n",
+ "The value of Ib2 is 0.25 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.9 Page No 782"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I2=1.0*10**-3\n",
+ "Vr2=7.15\n",
+ "Vref=Vr2\n",
+ "Vo=10.0\n",
+ "Pdmax=1000.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R2=Vref/I2\n",
+ "R2=6.8*10**3#use standard value and recalculate the I2\n",
+ "I2=Vref/R2\n",
+ "R1=(Vo-Vref)/I2\n",
+ "Vs=Vo+5#for satisfactory operation of series pass transistor\n",
+ "Iint=25*10**-3#internal circuit current\n",
+ "Pi=Vs*Iint\n",
+ "print(\"maximum power dissipated in series pass transistor\")\n",
+ "Pd=Pdmax-Pi\n",
+ "print(\"maximum load current is \")\n",
+ "Il=Pd/(Vs-Vo)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Il is %.2f mA\" %(Il*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum power dissipated in series pass transistor\n",
+ "maximum load current is \n",
+ "The value of Il is 125.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.10 Page No 785"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "I1=1.0*10**-3\n",
+ "Vref=1.25\n",
+ "Vo=6.0\n",
+ "Vs=15.0\n",
+ "Il=200.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=Vref/I1\n",
+ "R2=(Vo-Vref)/I1\n",
+ "Pd=(Vs-Vo)*Il\n",
+ "\n",
+ "#Results\n",
+ "print(\"regulated power dissipation is %.2f W \" %Pd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "regulated power dissipation is 1.80 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.11, Page No 788"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vo=10.0\n",
+ "Io=1.0\n",
+ "Vce=7.0\n",
+ "Vf=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Po=Vo*Io\n",
+ "print(\" linear regulator\")\n",
+ "Pi=Po+(Vce*Io)\n",
+ "n=(Po*100.0)/Pi#efficiency\n",
+ "print(\" switching regulator\")\n",
+ "Vce=1\n",
+ "Pi=Po+Io*(Vce+Vf)\n",
+ "n=(Po*100.0)/Pi#efficiency\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of n is %.2f \" %(n))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " linear regulator\n",
+ " switching regulator\n",
+ "The value of n is 83.33 \n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.12, Page No 752"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=50.0*10**3\n",
+ "Vo=12.0\n",
+ "Vf=0.7\n",
+ "Vi=30.0\n",
+ "Vsat=1.0\n",
+ "Io=500.0*10**-3\n",
+ "Vr=100.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "T=1.0/f\n",
+ "t=(Vo+Vf)/(Vi-Vsat-Vo)\n",
+ "toff=T/1.75\n",
+ "ton=T-toff\n",
+ "Ip=2*Io\n",
+ "L1=((Vi-Vsat-Vo)*ton)/Ip\n",
+ "C1=Ip/(8.0*f*Vr)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C1 is %.2f pF\" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C1 is 25.00 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.13, Page No 799"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "print(\" an MC34063 controller is for step down transformer\")\n",
+ "Ib=-400.0*10**-3\n",
+ "I1=1.0*10**-3\n",
+ "Vref=1.25\n",
+ "V0=12.0\n",
+ "Ip=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "ton=8.6*10**-6\n",
+ "R1=Vref/I1\n",
+ "R1=1.2*10**3#use standard value\n",
+ "I1=Vref/R1\n",
+ "R2=(Vo-Vref)/I1\n",
+ "Rsc=.33/Ip\n",
+ "Ct=4.8*10**-5 *ton\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ct is %.2f pF\" %(Ct*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " an MC34063 controller is for step down transformer\n",
+ "The value of Ct is 0.00 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter19.ipynb b/Electronic_Devices_and_Circuits/Chapter19.ipynb
new file mode 100755
index 00000000..f144d168
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter19.ipynb
@@ -0,0 +1,1316 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 : Power amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1, Page No 810"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "Rpy=40.0\n",
+ "N1=74.0\n",
+ "N2=14.0\n",
+ "R2=3.7*10**3\n",
+ "R1=4.7*10**3\n",
+ "Vbe=0.7\n",
+ "Re=1.0*10**3\n",
+ "Vcc=13.0\n",
+ "Rl=56.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"Q-point\")\n",
+ "Vb=Vcc*(R2/(R1+R2))\n",
+ "Ic=(Vb-Vbe)/Re\n",
+ "Ie=Ic\n",
+ "Vce=Vcc-Ic*(Rpy+Re)\n",
+ "rl=(N1/N2)**2 *Rl\n",
+ "rl=rl+Rpy\n",
+ "Ic=5*10**-3\n",
+ "Vce=Ic*rl\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vce is %.2f v \" %Vce)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-point\n",
+ "The value of Vce is 8.02 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2, Page No 814"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=13.0\n",
+ "Icq=5.0*10**-3\n",
+ "Vceq=8.0\n",
+ "Vp=Vceq\n",
+ "Ip=Icq\n",
+ "nt=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "Pi=Vcc*Icq\n",
+ "Po=.5*Vp*Ip\n",
+ "P0=nt*Po\n",
+ "n=(P0/Pi)*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency is 24.62 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.4 Page No 821"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N1=60.0\n",
+ "N2=10.0\n",
+ "Rl=16.0\n",
+ "Rpy=0\n",
+ "R6=56.0\n",
+ "Vcc=27.0\n",
+ "Vce=0.5\n",
+ "n=0.79\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" Referred laod\")\n",
+ "rl=(N1/N2)**2 *Rl\n",
+ "print(\" tatol ac load line in series with each of Q2 and Q3\")\n",
+ "Rl=rl+R6+Rpy\n",
+ "print(\" peak primary current\")\n",
+ "Ip=(Vcc-Vce)/Rl\n",
+ "print(\"peak primary voltage\")\n",
+ "Vp=Vcc-Vce-(Ip*R6)\n",
+ "print(\"power delivered to primary\")\n",
+ "Po=.5*Vp*Ip\n",
+ "\n",
+ "#Calculations\n",
+ "Po=Po*n#n is power efficiency\n",
+ "print(\"power delivered to the load %.2f W \" %Po)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Referred laod\n",
+ " tatol ac load line in series with each of Q2 and Q3\n",
+ " peak primary current\n",
+ "peak primary voltage\n",
+ "power delivered to primary\n",
+ "power delivered to the load 0.40 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.5, Page No 824"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Po=4.0\n",
+ "nt=0.8\n",
+ "Vcc=30.0\n",
+ "Vp=Vcc\n",
+ "Rl=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "P0=Po/nt\n",
+ "rl=(Vp)**2 /(2*P0)\n",
+ "rl=4*rl\n",
+ "print(\"transformer specification Po=4 %Rl=16 rl=360\")\n",
+ "Vce=2.0*Vcc\n",
+ "Ip=(2.0*P0)/Vp\n",
+ "Pi=Vcc*.636*Ip\n",
+ "Pt=0.5*(Pi-P0)\n",
+ "\n",
+ "#Results\n",
+ "print(\" transistor specification is Py=.68W Vce=60 Ip=333mA\")\n",
+ "print(\"power delivered to the load Pi = %.2f W \" %Pi)\n",
+ "print(\"power delivered to the load Pt = %.2f W \" %Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer specification Po=4 %Rl=16 rl=360\n",
+ " transistor specification is Py=.68W Vce=60 Ip=333mA\n",
+ "power delivered to the load Pi = 6.36 W \n",
+ "power delivered to the load Pt = 0.68 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.6 Page No 830"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rl=50.0\n",
+ "Po=1.0\n",
+ "hFE=50.0\n",
+ "Vbe=0.7\n",
+ "Vrc=4.0\n",
+ "Vre=1.0\n",
+ "Vd1=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vd2=Vd1\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "Re3=.1*Rl\n",
+ "Re2=4.7#use stabdard value\n",
+ "Re2=Re3\n",
+ "Icq=.1*Ip\n",
+ "Vb=Vbe+Icq*(Re2+Re3)+Vbe\n",
+ "Vc1=Vrc\n",
+ "Ib2=Ip/hFE\n",
+ "Irc=Ib2+1*10**-3\n",
+ "Rc=Vrc/Irc\n",
+ "Rc=680.0 #use standard value\n",
+ "Vcc=2.0*(Vp+Vre+Vbe+Vrc)\n",
+ "Vcc=32#use standard value\n",
+ "Vrcdc=.5*(Vcc-Vb)\n",
+ "Ic1=Vrcdc/Rc\n",
+ "Rb=(Vb-Vd1-Vd2)/Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kOhm \" %Rb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 8.95 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.7 Page No 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=32.0\n",
+ "Vce=32.0\n",
+ "Ip=200.0*10**-3\n",
+ "Po=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=1.1*Ip\n",
+ "Pi=0.35*Vcc*Ip\n",
+ "Pt=0.5*(Pi-Po)\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the load Pi = %.2f \" %Pi)\n",
+ "print(\"power delivered to the load Pt = %.2f \" %Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the load Pi = 2.24 \n",
+ "power delivered to the load Pt = 0.62 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.8, Page No 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "hib=2.0\n",
+ "Rl=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ce=1.0/(2*3.14*f*hib)\n",
+ "Co=1.0/(2*3.14*50*.1*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ce is %.2f pF \" %(Ce*10**3))\n",
+ "print(\"The value of Co is %.2f pF \" %(Co*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ce is 1.59 pF \n",
+ "The value of Co is 0.64 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.9 Page No 834"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hFE=2000.0\n",
+ "Vbe=1.4\n",
+ "Vp=10.0\n",
+ "Ip=200.0*10**-3\n",
+ "Icq2=20.0*10**-3\n",
+ "Re3=4.7\n",
+ "Re2=4.7\n",
+ "Vd=0.7\n",
+ "Ve1=3.0\n",
+ "Vc1=15.2\n",
+ "\n",
+ "#Calculations\n",
+ "Vrc=Vc1\n",
+ "Vb=Vbe+Icq*(Re2+Re3)+Vbe\n",
+ "Vcc=Vrc+Vc1+Vb\n",
+ "Ib2=Ip/hFE\n",
+ "Irc=1.0*10**-3\n",
+ "Vrcac=4.0\n",
+ "Rc=Vrcac/Irc\n",
+ "Ic1=Vrc/Rc\n",
+ "Rb=(Vb-(4*Vd))/Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kohm \" %Rb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 49.47 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.10 Page No 838"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vb=3.2\n",
+ "Ic1=5*10**-3\n",
+ "Vce=3.2\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vbmin=Vb-0.5\n",
+ "Vbmax=Vb+0.5\n",
+ "I10=.1*Ic1\n",
+ "R10=(Vce-Vbe)/I10\n",
+ "R10=4.7*10**3#use standard value\n",
+ "print(\" for Vce=3.7\")\n",
+ "Vce=3.7\n",
+ "I10max=(Vce-Vbe)/R10\n",
+ "print(\"Vce=2.7V\")\n",
+ "Vce=2.7\n",
+ "I10min=(Vce-Vbe)/R10\n",
+ "R=Vbe/I10min\n",
+ "R11=Vbe/I10max\n",
+ "R12=R-R11\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R12 is %.2f kohm \" %R12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Vce=3.7\n",
+ "Vce=2.7V\n",
+ "The value of R12 is 548.33 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.11 Page No 843"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=16.0\n",
+ "Po=6.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2.0*Rl*Po)\n",
+ "Vr14=0.1*Vp\n",
+ "Vr15=Vr14\n",
+ "R14=0.1*Rl\n",
+ "R15=R14\n",
+ "Vce3=1.0\n",
+ "Vce4=Vce3\n",
+ "Vr9=3.0\n",
+ "Vr11=Vr9\n",
+ "Vcc=(Vp+Vr14+Vbe+Vce3+Vr9)\n",
+ "Vee=-Vcc\n",
+ "Ip=Vp/Rl\n",
+ "print(\" DC power inpit from supply line\")\n",
+ "Pi=(Vcc-Vee)*.35*Ip\n",
+ "Pt=.5*(Pi-Po)\n",
+ "Vce=2*Vcc\n",
+ "Ic=1.1*Ip\n",
+ "\n",
+ "#Results\n",
+ "print(\" output transistor specification %.2f mA\" %Ic)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " DC power inpit from supply line\n",
+ " output transistor specification 0.95 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.12, Page No 844"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE7=20.0\n",
+ "Icbo=50.0*10**-6\n",
+ "hFE5=70.0\n",
+ "Vr9=3.0\n",
+ "Ip=869.0*10**-3\n",
+ "R15=1.5\n",
+ "R8=15.0*10**3\n",
+ "Vbe=0.7\n",
+ "Vr11=3.0\n",
+ "Vee=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "R12=0.01/Icbo\n",
+ "R12=220#use standard value\n",
+ "R13=R12\n",
+ "Ib5=Ip/(hFE7*hFE5)\n",
+ "Ic3=2.0*10**-3\n",
+ "R9=Vr9/Ic3\n",
+ "R11=R9\n",
+ "Iq78=0.1*Ip\n",
+ "Vr14=Iq78*R15\n",
+ "Vr15=Vr14\n",
+ "Vr10=(Vr14+Vr15)+(Vr14+Vr15)/2\n",
+ "R10=Vr10/Ic3\n",
+ "Ir8=(Vr11+Vbe)/R8\n",
+ "R7=(Vee-(Vr11+Vbe))/Ir8\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R7 is %.2f kohm \" %(R7/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R7 is 66.08 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.13, Page No 848"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=20.0\n",
+ "Po=2.5\n",
+ "Rd=4.0\n",
+ "Vr6=1.0\n",
+ "Vr9=Vr6\n",
+ "Vth=1.0\n",
+ "gFS=250.0*10**-3\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "Vcc=(Vp+Ip*Rd)\n",
+ "vr6=Ip/gFS\n",
+ "Vr2=vr6+1\n",
+ "Vce=Vr2\n",
+ "Vce3=1.0\n",
+ "Vr2=Vcc-Vce\n",
+ "Vee=Vcc\n",
+ "Vr3=Vee-Vbe\n",
+ "Vr7=Vr2-Vr6\n",
+ "Vr8=Vcc-(-Vee)-Vr6-Vr7-Vr9\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vr8 is %.2f V \" %Vr8)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vr8 is 14.00 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.14, Page No 849"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R6=100.0*10**3\n",
+ "R9=R6\n",
+ "Vth=1.0\n",
+ "Vr7=8.0\n",
+ "Vr8=14.0\n",
+ "Vr3=11.3\n",
+ "Vpout=10.0\n",
+ "Vpin=800.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "I6=Vth/R6\n",
+ "R7=Vr7/I6\n",
+ "R8=Vr8/I6\n",
+ "Ic1=1*10**-4\n",
+ "Ic2=Ic1\n",
+ "Vr2=9\n",
+ "R2=Vr2/Ic1\n",
+ "R3=Vr3/(Ic1+Ic2)\n",
+ "R5=4.7*10**3\n",
+ "Acl=Vpout/Vpin\n",
+ "R4=R5/(Acl-1.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R4 is %.2f kohm \" %(R4/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R4 is 0.41 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.15, Page No 854"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vce=1.5\n",
+ "Vcc=17.0\n",
+ "Vd1=0.7\n",
+ "R8=1.5*10**3\n",
+ "R9=R8\n",
+ "Rl=100.0\n",
+ "R6=8.2\n",
+ "\n",
+ "#Calculations\n",
+ "I4=(Vcc-Vd1)/(R8+R9)\n",
+ "Vc3=Vcc-(I4*R8)\n",
+ "print(\" bootstrap capacitance terminal voltage is %3.1fV \" %Vc3)\n",
+ "V=Vcc-Vce#V=Vp+Vr6\n",
+ "Ip=V/(Rl+R6)\n",
+ "Vp=Ip*Rl\n",
+ "print(\" peak output voltage is %3.1fV \" %Vp)\n",
+ "Po=(Vp)**2.0/(2.0*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak output power is %dW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " bootstrap capacitance terminal voltage is 8.8V \n",
+ " peak output voltage is 14.3V \n",
+ " peak output power is 1W \n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.16, Page No 856"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=8.0\n",
+ "Po=6.0\n",
+ "vs=0.1\n",
+ "hFE=1000.0\n",
+ "Vce=2.0\n",
+ "f=50.0*10**3\n",
+ "Vd1=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "R6=.1*Rl\n",
+ "R7=R6\n",
+ "Vcc=Vp+Ip*R6+Vce\n",
+ "Ib=Ip/hFE\n",
+ "I4=2*10**-3\n",
+ "R4=(Vcc-Vd1-Vd1)/I4\n",
+ "R8=.5*R4\n",
+ "Acl=Vp/vs\n",
+ "R3=100*10**3\n",
+ "R2=R3/(Acl-1)\n",
+ "SR=(2*3.14*f*Vp)*10**-6\n",
+ "\n",
+ "#Results\n",
+ "print(\" slew rate is %.2f V/us \" %SR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " slew rate is 3.08 V/us \n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.17, Page No 856"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=50.0\n",
+ "R1=100.0*10**3\n",
+ "R2=1.0*10**3\n",
+ "R8=2.7*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R9=R8\n",
+ "C1=1/(2*3.14*f*.1*R1)\n",
+ "C2=1/(2*3.14*f*R2)\n",
+ "Xc3=.1*((R8*R9)/(R8+R9))\n",
+ "C3=1/(2*3.14*f*Xc3)\n",
+ "C4=C3\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C4 is %.2f pF \" %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4 is 23.59 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.18, Page No 860"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ismin=1.8*10**-3\n",
+ "Ismax=3.4*10**-3\n",
+ "R7=820.0\n",
+ "R5=390.0\n",
+ "R6=18.0*10**3\n",
+ "Vi=100.0*10**-3\n",
+ "Rl=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vgsmin=Ismin*R7\n",
+ "Vgsmax=Ismax*R7\n",
+ "Acl=(R5+R6)/R5\n",
+ "Vp=Acl*Vi\n",
+ "Ip=Vp/Rl\n",
+ "print(\"peak output current is %3.3fA \" %Ip)\n",
+ "Po=(Vp*Ip)/2.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak output power is %3.2fW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak output current is 0.472A \n",
+ "peak output power is 1.11W \n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.19, Page No 862"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vbe=0.7\n",
+ "R2=560.0\n",
+ "R3min=0\n",
+ "R3max=1.0*10**3\n",
+ "Is=2.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2max=Vbe/(R2+R3min)\n",
+ "Ic2min=Vbe/(R2+R3max)\n",
+ "Vgsmin=(Is+Ic2min)*820.0\n",
+ "Vgsmax=(Is+Ic2max)*820.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vgsmax is %.2f v \" %Vgsmax)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vgsmax is 2.67 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.20, Page No 865"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=12.0\n",
+ "Rl=10.0\n",
+ "Rd=0.5\n",
+ "gfs=2.5\n",
+ "R7=820.0\n",
+ "V9=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R10=R9\n",
+ "Vp=(Vcc*Rl)/(Rd+Rl)\n",
+ "Ip=Vp/Rl\n",
+ "Vgs=Ip/gfs\n",
+ "Vr7=Is*R7\n",
+ "Vs=Vcc-Vr7-Vgs\n",
+ "Vr9=(Vp*R9)/(R9+R10)\n",
+ "\n",
+ "#Results\n",
+ "print(\"op-amp peak output voltage is %.2f v \" %Vr9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "op-amp peak output voltage is 5.71 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.21, Page No 867"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=0.7\n",
+ "R2=470.0\n",
+ "R3=1.0*10**3\n",
+ "Is=0.5*10**-3\n",
+ "R7=1.5*10**3\n",
+ "Vcc=15\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2max=Vbe/R2\n",
+ "Ic2min=Vbe/(R2+R3)\n",
+ "Vgs=(Is+Ic2max)*R7\n",
+ "print(\" MOSFET maximum gate source voltage is %.1fV \" %Vgs)\n",
+ "Vs=Vcc-Vgs\n",
+ "\n",
+ "#Results\n",
+ "print(\" op-amp minimum suppy is %.2fV \" %Vs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " MOSFET maximum gate source voltage is 3.0V \n",
+ " op-amp minimum suppy is 12.02V \n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.22, Page No 868"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=15.0\n",
+ "Rl=15.0\n",
+ "Rd=0.3\n",
+ "R5=2.2*10**3\n",
+ "R6=33.0*10**3\n",
+ "C2=3.9*10**-6\n",
+ "C4=100.0*10**-12\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" power output\")\n",
+ "Vp=(Vcc*Rl)/(Rd+Rl)\n",
+ "Ip=Vp/Rl\n",
+ "Po=(Vp*Ip)/2.0\n",
+ "print(\" voltage gain\")\n",
+ "Av=(R5+R6)/R5\n",
+ "print(\"cutoff frequency\")\n",
+ "f1=1.0/(2*3.14*C2*R5)\n",
+ "f2=1.0/(2*3.14*C4*R6)\n",
+ "\n",
+ "#Results\n",
+ "print(\" cutoff frequency f1 %.2f \" %f1)\n",
+ "print(\" cutoff frequency f2 %.2f \" %f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " power output\n",
+ " voltage gain\n",
+ "cutoff frequency\n",
+ " cutoff frequency f1 18.56 \n",
+ " cutoff frequency f2 48253.23 \n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.23, Page No 871"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=23.0\n",
+ "Rl=8.0\n",
+ "Rf2=100.0*10**3\n",
+ "Rf1=5.6*10**3\n",
+ "Cf=1.0*10**-6\n",
+ "Vp=Vcc-5\n",
+ "\n",
+ "#Calculations\n",
+ "Po=(Vp)**2/(2*Rl)\n",
+ "print(\"maximum output power is %3.2fW \" %Po)\n",
+ "Acl=(Rf1+Rf2)/Rf1\n",
+ "print(\" voltage gain %3.1f \" %Acl)\n",
+ "f=1/(2*3.14*Cf*Rf1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"lower cutoff frequency is %dHz \" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum output power is 20.25W \n",
+ " voltage gain 18.9 \n",
+ "lower cutoff frequency is 28Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.24, Page No 875"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rf=15.0*10**3\n",
+ "R1=5.6*10**3\n",
+ "vs=0.5\n",
+ "Vp=2.7\n",
+ "\n",
+ "#Calculations\n",
+ "Acl=(2.0*Rf)/R1\n",
+ "Vo=Acl*vs\n",
+ "Po=(Vp)**2.0/(2.0*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\"load power dissipation is %.2fW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load power dissipation is 0.46W \n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.24, Page No 875"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=10.0\n",
+ "Rl=1.0*10**3\n",
+ "f=3.0*10**6\n",
+ "Ip=25.0*10**-3\n",
+ "Vce=0.3\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=Vcc-Vce\n",
+ "Po=(Vp)**2 /(2*Rl)\n",
+ "T=1.0/f\n",
+ "t=(Po*T)/(Ip*Vp)\n",
+ "angle=(t/T)*360\n",
+ "print(\" conduction angle is %3.1fdegree \" %angle)\n",
+ "Idc=Po/Vp\n",
+ "Pi=Vcc*Idc\n",
+ "print( \"dc input power is %3.4fW \" %Pi)\n",
+ "n=(Po/Pi)*100#efficiency\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " conduction angle is 69.8degree \n",
+ "dc input power is 0.0485W \n",
+ " maximum efficiency is 97.00 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.26, Page No 882"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=1.0*10**6\n",
+ "Xc=120.0\n",
+ "Vce=0.5\n",
+ "Vcc=30.0\n",
+ "Rl=1.2*10**3\n",
+ "O=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cp=1.0/(2*3.14*f*Xc)\n",
+ "Cp=1300*10**-12#use standard value\n",
+ "Lp=1/(((2*3.14*f)**2)*Cp)\n",
+ "Vp=Vcc-Vce\n",
+ "Po=((Vp)**2) /(2*Rl)\n",
+ "Idc=Po/Vp\n",
+ "T=1.0/f\n",
+ "t=(O*T)/360.0\n",
+ "Ip=(Idc*T)/t\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ip is %.2f mA \" %(Ip*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ip is 44.25 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.27, Page No 883"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rw=0.1\n",
+ "f=1.0*10**6\n",
+ "Lp=19.5*10**-6\n",
+ "Rl=1.2*10**3\n",
+ "Vcc=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "Idc=12.3*10**-3\n",
+ "QL=(2*3.14*f*Lp)/Rw\n",
+ "Qp=Rl/(2*3.14*f*Lp)\n",
+ "B=f/Qp\n",
+ "Il=(.707*Vp)/(2*3.14*f*Lp)\n",
+ "Pl=(Il)**2 *Rw\n",
+ "Pi=(Vcc*Idc)+Pl\n",
+ "n=(Po/Pi)*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency is 97.50 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter19_1.ipynb b/Electronic_Devices_and_Circuits/Chapter19_1.ipynb
new file mode 100755
index 00000000..f144d168
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter19_1.ipynb
@@ -0,0 +1,1316 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 : Power amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1, Page No 810"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "Rpy=40.0\n",
+ "N1=74.0\n",
+ "N2=14.0\n",
+ "R2=3.7*10**3\n",
+ "R1=4.7*10**3\n",
+ "Vbe=0.7\n",
+ "Re=1.0*10**3\n",
+ "Vcc=13.0\n",
+ "Rl=56.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"Q-point\")\n",
+ "Vb=Vcc*(R2/(R1+R2))\n",
+ "Ic=(Vb-Vbe)/Re\n",
+ "Ie=Ic\n",
+ "Vce=Vcc-Ic*(Rpy+Re)\n",
+ "rl=(N1/N2)**2 *Rl\n",
+ "rl=rl+Rpy\n",
+ "Ic=5*10**-3\n",
+ "Vce=Ic*rl\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vce is %.2f v \" %Vce)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-point\n",
+ "The value of Vce is 8.02 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2, Page No 814"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=13.0\n",
+ "Icq=5.0*10**-3\n",
+ "Vceq=8.0\n",
+ "Vp=Vceq\n",
+ "Ip=Icq\n",
+ "nt=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "Pi=Vcc*Icq\n",
+ "Po=.5*Vp*Ip\n",
+ "P0=nt*Po\n",
+ "n=(P0/Pi)*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency is 24.62 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.4 Page No 821"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N1=60.0\n",
+ "N2=10.0\n",
+ "Rl=16.0\n",
+ "Rpy=0\n",
+ "R6=56.0\n",
+ "Vcc=27.0\n",
+ "Vce=0.5\n",
+ "n=0.79\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" Referred laod\")\n",
+ "rl=(N1/N2)**2 *Rl\n",
+ "print(\" tatol ac load line in series with each of Q2 and Q3\")\n",
+ "Rl=rl+R6+Rpy\n",
+ "print(\" peak primary current\")\n",
+ "Ip=(Vcc-Vce)/Rl\n",
+ "print(\"peak primary voltage\")\n",
+ "Vp=Vcc-Vce-(Ip*R6)\n",
+ "print(\"power delivered to primary\")\n",
+ "Po=.5*Vp*Ip\n",
+ "\n",
+ "#Calculations\n",
+ "Po=Po*n#n is power efficiency\n",
+ "print(\"power delivered to the load %.2f W \" %Po)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Referred laod\n",
+ " tatol ac load line in series with each of Q2 and Q3\n",
+ " peak primary current\n",
+ "peak primary voltage\n",
+ "power delivered to primary\n",
+ "power delivered to the load 0.40 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.5, Page No 824"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Po=4.0\n",
+ "nt=0.8\n",
+ "Vcc=30.0\n",
+ "Vp=Vcc\n",
+ "Rl=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "P0=Po/nt\n",
+ "rl=(Vp)**2 /(2*P0)\n",
+ "rl=4*rl\n",
+ "print(\"transformer specification Po=4 %Rl=16 rl=360\")\n",
+ "Vce=2.0*Vcc\n",
+ "Ip=(2.0*P0)/Vp\n",
+ "Pi=Vcc*.636*Ip\n",
+ "Pt=0.5*(Pi-P0)\n",
+ "\n",
+ "#Results\n",
+ "print(\" transistor specification is Py=.68W Vce=60 Ip=333mA\")\n",
+ "print(\"power delivered to the load Pi = %.2f W \" %Pi)\n",
+ "print(\"power delivered to the load Pt = %.2f W \" %Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer specification Po=4 %Rl=16 rl=360\n",
+ " transistor specification is Py=.68W Vce=60 Ip=333mA\n",
+ "power delivered to the load Pi = 6.36 W \n",
+ "power delivered to the load Pt = 0.68 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.6 Page No 830"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rl=50.0\n",
+ "Po=1.0\n",
+ "hFE=50.0\n",
+ "Vbe=0.7\n",
+ "Vrc=4.0\n",
+ "Vre=1.0\n",
+ "Vd1=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vd2=Vd1\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "Re3=.1*Rl\n",
+ "Re2=4.7#use stabdard value\n",
+ "Re2=Re3\n",
+ "Icq=.1*Ip\n",
+ "Vb=Vbe+Icq*(Re2+Re3)+Vbe\n",
+ "Vc1=Vrc\n",
+ "Ib2=Ip/hFE\n",
+ "Irc=Ib2+1*10**-3\n",
+ "Rc=Vrc/Irc\n",
+ "Rc=680.0 #use standard value\n",
+ "Vcc=2.0*(Vp+Vre+Vbe+Vrc)\n",
+ "Vcc=32#use standard value\n",
+ "Vrcdc=.5*(Vcc-Vb)\n",
+ "Ic1=Vrcdc/Rc\n",
+ "Rb=(Vb-Vd1-Vd2)/Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kOhm \" %Rb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 8.95 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.7 Page No 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=32.0\n",
+ "Vce=32.0\n",
+ "Ip=200.0*10**-3\n",
+ "Po=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=1.1*Ip\n",
+ "Pi=0.35*Vcc*Ip\n",
+ "Pt=0.5*(Pi-Po)\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the load Pi = %.2f \" %Pi)\n",
+ "print(\"power delivered to the load Pt = %.2f \" %Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the load Pi = 2.24 \n",
+ "power delivered to the load Pt = 0.62 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.8, Page No 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "hib=2.0\n",
+ "Rl=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ce=1.0/(2*3.14*f*hib)\n",
+ "Co=1.0/(2*3.14*50*.1*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ce is %.2f pF \" %(Ce*10**3))\n",
+ "print(\"The value of Co is %.2f pF \" %(Co*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ce is 1.59 pF \n",
+ "The value of Co is 0.64 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.9 Page No 834"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hFE=2000.0\n",
+ "Vbe=1.4\n",
+ "Vp=10.0\n",
+ "Ip=200.0*10**-3\n",
+ "Icq2=20.0*10**-3\n",
+ "Re3=4.7\n",
+ "Re2=4.7\n",
+ "Vd=0.7\n",
+ "Ve1=3.0\n",
+ "Vc1=15.2\n",
+ "\n",
+ "#Calculations\n",
+ "Vrc=Vc1\n",
+ "Vb=Vbe+Icq*(Re2+Re3)+Vbe\n",
+ "Vcc=Vrc+Vc1+Vb\n",
+ "Ib2=Ip/hFE\n",
+ "Irc=1.0*10**-3\n",
+ "Vrcac=4.0\n",
+ "Rc=Vrcac/Irc\n",
+ "Ic1=Vrc/Rc\n",
+ "Rb=(Vb-(4*Vd))/Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kohm \" %Rb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 49.47 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.10 Page No 838"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vb=3.2\n",
+ "Ic1=5*10**-3\n",
+ "Vce=3.2\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vbmin=Vb-0.5\n",
+ "Vbmax=Vb+0.5\n",
+ "I10=.1*Ic1\n",
+ "R10=(Vce-Vbe)/I10\n",
+ "R10=4.7*10**3#use standard value\n",
+ "print(\" for Vce=3.7\")\n",
+ "Vce=3.7\n",
+ "I10max=(Vce-Vbe)/R10\n",
+ "print(\"Vce=2.7V\")\n",
+ "Vce=2.7\n",
+ "I10min=(Vce-Vbe)/R10\n",
+ "R=Vbe/I10min\n",
+ "R11=Vbe/I10max\n",
+ "R12=R-R11\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R12 is %.2f kohm \" %R12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Vce=3.7\n",
+ "Vce=2.7V\n",
+ "The value of R12 is 548.33 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.11 Page No 843"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=16.0\n",
+ "Po=6.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2.0*Rl*Po)\n",
+ "Vr14=0.1*Vp\n",
+ "Vr15=Vr14\n",
+ "R14=0.1*Rl\n",
+ "R15=R14\n",
+ "Vce3=1.0\n",
+ "Vce4=Vce3\n",
+ "Vr9=3.0\n",
+ "Vr11=Vr9\n",
+ "Vcc=(Vp+Vr14+Vbe+Vce3+Vr9)\n",
+ "Vee=-Vcc\n",
+ "Ip=Vp/Rl\n",
+ "print(\" DC power inpit from supply line\")\n",
+ "Pi=(Vcc-Vee)*.35*Ip\n",
+ "Pt=.5*(Pi-Po)\n",
+ "Vce=2*Vcc\n",
+ "Ic=1.1*Ip\n",
+ "\n",
+ "#Results\n",
+ "print(\" output transistor specification %.2f mA\" %Ic)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " DC power inpit from supply line\n",
+ " output transistor specification 0.95 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.12, Page No 844"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE7=20.0\n",
+ "Icbo=50.0*10**-6\n",
+ "hFE5=70.0\n",
+ "Vr9=3.0\n",
+ "Ip=869.0*10**-3\n",
+ "R15=1.5\n",
+ "R8=15.0*10**3\n",
+ "Vbe=0.7\n",
+ "Vr11=3.0\n",
+ "Vee=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "R12=0.01/Icbo\n",
+ "R12=220#use standard value\n",
+ "R13=R12\n",
+ "Ib5=Ip/(hFE7*hFE5)\n",
+ "Ic3=2.0*10**-3\n",
+ "R9=Vr9/Ic3\n",
+ "R11=R9\n",
+ "Iq78=0.1*Ip\n",
+ "Vr14=Iq78*R15\n",
+ "Vr15=Vr14\n",
+ "Vr10=(Vr14+Vr15)+(Vr14+Vr15)/2\n",
+ "R10=Vr10/Ic3\n",
+ "Ir8=(Vr11+Vbe)/R8\n",
+ "R7=(Vee-(Vr11+Vbe))/Ir8\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R7 is %.2f kohm \" %(R7/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R7 is 66.08 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.13, Page No 848"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=20.0\n",
+ "Po=2.5\n",
+ "Rd=4.0\n",
+ "Vr6=1.0\n",
+ "Vr9=Vr6\n",
+ "Vth=1.0\n",
+ "gFS=250.0*10**-3\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "Vcc=(Vp+Ip*Rd)\n",
+ "vr6=Ip/gFS\n",
+ "Vr2=vr6+1\n",
+ "Vce=Vr2\n",
+ "Vce3=1.0\n",
+ "Vr2=Vcc-Vce\n",
+ "Vee=Vcc\n",
+ "Vr3=Vee-Vbe\n",
+ "Vr7=Vr2-Vr6\n",
+ "Vr8=Vcc-(-Vee)-Vr6-Vr7-Vr9\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vr8 is %.2f V \" %Vr8)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vr8 is 14.00 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.14, Page No 849"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R6=100.0*10**3\n",
+ "R9=R6\n",
+ "Vth=1.0\n",
+ "Vr7=8.0\n",
+ "Vr8=14.0\n",
+ "Vr3=11.3\n",
+ "Vpout=10.0\n",
+ "Vpin=800.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "I6=Vth/R6\n",
+ "R7=Vr7/I6\n",
+ "R8=Vr8/I6\n",
+ "Ic1=1*10**-4\n",
+ "Ic2=Ic1\n",
+ "Vr2=9\n",
+ "R2=Vr2/Ic1\n",
+ "R3=Vr3/(Ic1+Ic2)\n",
+ "R5=4.7*10**3\n",
+ "Acl=Vpout/Vpin\n",
+ "R4=R5/(Acl-1.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R4 is %.2f kohm \" %(R4/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R4 is 0.41 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.15, Page No 854"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vce=1.5\n",
+ "Vcc=17.0\n",
+ "Vd1=0.7\n",
+ "R8=1.5*10**3\n",
+ "R9=R8\n",
+ "Rl=100.0\n",
+ "R6=8.2\n",
+ "\n",
+ "#Calculations\n",
+ "I4=(Vcc-Vd1)/(R8+R9)\n",
+ "Vc3=Vcc-(I4*R8)\n",
+ "print(\" bootstrap capacitance terminal voltage is %3.1fV \" %Vc3)\n",
+ "V=Vcc-Vce#V=Vp+Vr6\n",
+ "Ip=V/(Rl+R6)\n",
+ "Vp=Ip*Rl\n",
+ "print(\" peak output voltage is %3.1fV \" %Vp)\n",
+ "Po=(Vp)**2.0/(2.0*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak output power is %dW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " bootstrap capacitance terminal voltage is 8.8V \n",
+ " peak output voltage is 14.3V \n",
+ " peak output power is 1W \n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.16, Page No 856"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=8.0\n",
+ "Po=6.0\n",
+ "vs=0.1\n",
+ "hFE=1000.0\n",
+ "Vce=2.0\n",
+ "f=50.0*10**3\n",
+ "Vd1=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "R6=.1*Rl\n",
+ "R7=R6\n",
+ "Vcc=Vp+Ip*R6+Vce\n",
+ "Ib=Ip/hFE\n",
+ "I4=2*10**-3\n",
+ "R4=(Vcc-Vd1-Vd1)/I4\n",
+ "R8=.5*R4\n",
+ "Acl=Vp/vs\n",
+ "R3=100*10**3\n",
+ "R2=R3/(Acl-1)\n",
+ "SR=(2*3.14*f*Vp)*10**-6\n",
+ "\n",
+ "#Results\n",
+ "print(\" slew rate is %.2f V/us \" %SR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " slew rate is 3.08 V/us \n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.17, Page No 856"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=50.0\n",
+ "R1=100.0*10**3\n",
+ "R2=1.0*10**3\n",
+ "R8=2.7*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R9=R8\n",
+ "C1=1/(2*3.14*f*.1*R1)\n",
+ "C2=1/(2*3.14*f*R2)\n",
+ "Xc3=.1*((R8*R9)/(R8+R9))\n",
+ "C3=1/(2*3.14*f*Xc3)\n",
+ "C4=C3\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C4 is %.2f pF \" %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4 is 23.59 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.18, Page No 860"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ismin=1.8*10**-3\n",
+ "Ismax=3.4*10**-3\n",
+ "R7=820.0\n",
+ "R5=390.0\n",
+ "R6=18.0*10**3\n",
+ "Vi=100.0*10**-3\n",
+ "Rl=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vgsmin=Ismin*R7\n",
+ "Vgsmax=Ismax*R7\n",
+ "Acl=(R5+R6)/R5\n",
+ "Vp=Acl*Vi\n",
+ "Ip=Vp/Rl\n",
+ "print(\"peak output current is %3.3fA \" %Ip)\n",
+ "Po=(Vp*Ip)/2.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak output power is %3.2fW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak output current is 0.472A \n",
+ "peak output power is 1.11W \n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.19, Page No 862"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vbe=0.7\n",
+ "R2=560.0\n",
+ "R3min=0\n",
+ "R3max=1.0*10**3\n",
+ "Is=2.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2max=Vbe/(R2+R3min)\n",
+ "Ic2min=Vbe/(R2+R3max)\n",
+ "Vgsmin=(Is+Ic2min)*820.0\n",
+ "Vgsmax=(Is+Ic2max)*820.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vgsmax is %.2f v \" %Vgsmax)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vgsmax is 2.67 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.20, Page No 865"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=12.0\n",
+ "Rl=10.0\n",
+ "Rd=0.5\n",
+ "gfs=2.5\n",
+ "R7=820.0\n",
+ "V9=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R10=R9\n",
+ "Vp=(Vcc*Rl)/(Rd+Rl)\n",
+ "Ip=Vp/Rl\n",
+ "Vgs=Ip/gfs\n",
+ "Vr7=Is*R7\n",
+ "Vs=Vcc-Vr7-Vgs\n",
+ "Vr9=(Vp*R9)/(R9+R10)\n",
+ "\n",
+ "#Results\n",
+ "print(\"op-amp peak output voltage is %.2f v \" %Vr9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "op-amp peak output voltage is 5.71 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.21, Page No 867"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=0.7\n",
+ "R2=470.0\n",
+ "R3=1.0*10**3\n",
+ "Is=0.5*10**-3\n",
+ "R7=1.5*10**3\n",
+ "Vcc=15\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2max=Vbe/R2\n",
+ "Ic2min=Vbe/(R2+R3)\n",
+ "Vgs=(Is+Ic2max)*R7\n",
+ "print(\" MOSFET maximum gate source voltage is %.1fV \" %Vgs)\n",
+ "Vs=Vcc-Vgs\n",
+ "\n",
+ "#Results\n",
+ "print(\" op-amp minimum suppy is %.2fV \" %Vs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " MOSFET maximum gate source voltage is 3.0V \n",
+ " op-amp minimum suppy is 12.02V \n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.22, Page No 868"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=15.0\n",
+ "Rl=15.0\n",
+ "Rd=0.3\n",
+ "R5=2.2*10**3\n",
+ "R6=33.0*10**3\n",
+ "C2=3.9*10**-6\n",
+ "C4=100.0*10**-12\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" power output\")\n",
+ "Vp=(Vcc*Rl)/(Rd+Rl)\n",
+ "Ip=Vp/Rl\n",
+ "Po=(Vp*Ip)/2.0\n",
+ "print(\" voltage gain\")\n",
+ "Av=(R5+R6)/R5\n",
+ "print(\"cutoff frequency\")\n",
+ "f1=1.0/(2*3.14*C2*R5)\n",
+ "f2=1.0/(2*3.14*C4*R6)\n",
+ "\n",
+ "#Results\n",
+ "print(\" cutoff frequency f1 %.2f \" %f1)\n",
+ "print(\" cutoff frequency f2 %.2f \" %f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " power output\n",
+ " voltage gain\n",
+ "cutoff frequency\n",
+ " cutoff frequency f1 18.56 \n",
+ " cutoff frequency f2 48253.23 \n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.23, Page No 871"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=23.0\n",
+ "Rl=8.0\n",
+ "Rf2=100.0*10**3\n",
+ "Rf1=5.6*10**3\n",
+ "Cf=1.0*10**-6\n",
+ "Vp=Vcc-5\n",
+ "\n",
+ "#Calculations\n",
+ "Po=(Vp)**2/(2*Rl)\n",
+ "print(\"maximum output power is %3.2fW \" %Po)\n",
+ "Acl=(Rf1+Rf2)/Rf1\n",
+ "print(\" voltage gain %3.1f \" %Acl)\n",
+ "f=1/(2*3.14*Cf*Rf1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"lower cutoff frequency is %dHz \" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum output power is 20.25W \n",
+ " voltage gain 18.9 \n",
+ "lower cutoff frequency is 28Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.24, Page No 875"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rf=15.0*10**3\n",
+ "R1=5.6*10**3\n",
+ "vs=0.5\n",
+ "Vp=2.7\n",
+ "\n",
+ "#Calculations\n",
+ "Acl=(2.0*Rf)/R1\n",
+ "Vo=Acl*vs\n",
+ "Po=(Vp)**2.0/(2.0*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\"load power dissipation is %.2fW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load power dissipation is 0.46W \n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.24, Page No 875"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=10.0\n",
+ "Rl=1.0*10**3\n",
+ "f=3.0*10**6\n",
+ "Ip=25.0*10**-3\n",
+ "Vce=0.3\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=Vcc-Vce\n",
+ "Po=(Vp)**2 /(2*Rl)\n",
+ "T=1.0/f\n",
+ "t=(Po*T)/(Ip*Vp)\n",
+ "angle=(t/T)*360\n",
+ "print(\" conduction angle is %3.1fdegree \" %angle)\n",
+ "Idc=Po/Vp\n",
+ "Pi=Vcc*Idc\n",
+ "print( \"dc input power is %3.4fW \" %Pi)\n",
+ "n=(Po/Pi)*100#efficiency\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " conduction angle is 69.8degree \n",
+ "dc input power is 0.0485W \n",
+ " maximum efficiency is 97.00 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.26, Page No 882"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=1.0*10**6\n",
+ "Xc=120.0\n",
+ "Vce=0.5\n",
+ "Vcc=30.0\n",
+ "Rl=1.2*10**3\n",
+ "O=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cp=1.0/(2*3.14*f*Xc)\n",
+ "Cp=1300*10**-12#use standard value\n",
+ "Lp=1/(((2*3.14*f)**2)*Cp)\n",
+ "Vp=Vcc-Vce\n",
+ "Po=((Vp)**2) /(2*Rl)\n",
+ "Idc=Po/Vp\n",
+ "T=1.0/f\n",
+ "t=(O*T)/360.0\n",
+ "Ip=(Idc*T)/t\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ip is %.2f mA \" %(Ip*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ip is 44.25 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.27, Page No 883"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rw=0.1\n",
+ "f=1.0*10**6\n",
+ "Lp=19.5*10**-6\n",
+ "Rl=1.2*10**3\n",
+ "Vcc=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "Idc=12.3*10**-3\n",
+ "QL=(2*3.14*f*Lp)/Rw\n",
+ "Qp=Rl/(2*3.14*f*Lp)\n",
+ "B=f/Qp\n",
+ "Il=(.707*Vp)/(2*3.14*f*Lp)\n",
+ "Pl=(Il)**2 *Rw\n",
+ "Pi=(Vcc*Idc)+Pl\n",
+ "n=(Po/Pi)*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency is 97.50 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter19_2.ipynb b/Electronic_Devices_and_Circuits/Chapter19_2.ipynb
new file mode 100755
index 00000000..f144d168
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter19_2.ipynb
@@ -0,0 +1,1316 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 : Power amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1, Page No 810"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "Rpy=40.0\n",
+ "N1=74.0\n",
+ "N2=14.0\n",
+ "R2=3.7*10**3\n",
+ "R1=4.7*10**3\n",
+ "Vbe=0.7\n",
+ "Re=1.0*10**3\n",
+ "Vcc=13.0\n",
+ "Rl=56.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"Q-point\")\n",
+ "Vb=Vcc*(R2/(R1+R2))\n",
+ "Ic=(Vb-Vbe)/Re\n",
+ "Ie=Ic\n",
+ "Vce=Vcc-Ic*(Rpy+Re)\n",
+ "rl=(N1/N2)**2 *Rl\n",
+ "rl=rl+Rpy\n",
+ "Ic=5*10**-3\n",
+ "Vce=Ic*rl\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vce is %.2f v \" %Vce)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-point\n",
+ "The value of Vce is 8.02 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2, Page No 814"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=13.0\n",
+ "Icq=5.0*10**-3\n",
+ "Vceq=8.0\n",
+ "Vp=Vceq\n",
+ "Ip=Icq\n",
+ "nt=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "Pi=Vcc*Icq\n",
+ "Po=.5*Vp*Ip\n",
+ "P0=nt*Po\n",
+ "n=(P0/Pi)*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency is 24.62 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.4 Page No 821"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "N1=60.0\n",
+ "N2=10.0\n",
+ "Rl=16.0\n",
+ "Rpy=0\n",
+ "R6=56.0\n",
+ "Vcc=27.0\n",
+ "Vce=0.5\n",
+ "n=0.79\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" Referred laod\")\n",
+ "rl=(N1/N2)**2 *Rl\n",
+ "print(\" tatol ac load line in series with each of Q2 and Q3\")\n",
+ "Rl=rl+R6+Rpy\n",
+ "print(\" peak primary current\")\n",
+ "Ip=(Vcc-Vce)/Rl\n",
+ "print(\"peak primary voltage\")\n",
+ "Vp=Vcc-Vce-(Ip*R6)\n",
+ "print(\"power delivered to primary\")\n",
+ "Po=.5*Vp*Ip\n",
+ "\n",
+ "#Calculations\n",
+ "Po=Po*n#n is power efficiency\n",
+ "print(\"power delivered to the load %.2f W \" %Po)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Referred laod\n",
+ " tatol ac load line in series with each of Q2 and Q3\n",
+ " peak primary current\n",
+ "peak primary voltage\n",
+ "power delivered to primary\n",
+ "power delivered to the load 0.40 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.5, Page No 824"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Po=4.0\n",
+ "nt=0.8\n",
+ "Vcc=30.0\n",
+ "Vp=Vcc\n",
+ "Rl=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "P0=Po/nt\n",
+ "rl=(Vp)**2 /(2*P0)\n",
+ "rl=4*rl\n",
+ "print(\"transformer specification Po=4 %Rl=16 rl=360\")\n",
+ "Vce=2.0*Vcc\n",
+ "Ip=(2.0*P0)/Vp\n",
+ "Pi=Vcc*.636*Ip\n",
+ "Pt=0.5*(Pi-P0)\n",
+ "\n",
+ "#Results\n",
+ "print(\" transistor specification is Py=.68W Vce=60 Ip=333mA\")\n",
+ "print(\"power delivered to the load Pi = %.2f W \" %Pi)\n",
+ "print(\"power delivered to the load Pt = %.2f W \" %Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer specification Po=4 %Rl=16 rl=360\n",
+ " transistor specification is Py=.68W Vce=60 Ip=333mA\n",
+ "power delivered to the load Pi = 6.36 W \n",
+ "power delivered to the load Pt = 0.68 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.6 Page No 830"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rl=50.0\n",
+ "Po=1.0\n",
+ "hFE=50.0\n",
+ "Vbe=0.7\n",
+ "Vrc=4.0\n",
+ "Vre=1.0\n",
+ "Vd1=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vd2=Vd1\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "Re3=.1*Rl\n",
+ "Re2=4.7#use stabdard value\n",
+ "Re2=Re3\n",
+ "Icq=.1*Ip\n",
+ "Vb=Vbe+Icq*(Re2+Re3)+Vbe\n",
+ "Vc1=Vrc\n",
+ "Ib2=Ip/hFE\n",
+ "Irc=Ib2+1*10**-3\n",
+ "Rc=Vrc/Irc\n",
+ "Rc=680.0 #use standard value\n",
+ "Vcc=2.0*(Vp+Vre+Vbe+Vrc)\n",
+ "Vcc=32#use standard value\n",
+ "Vrcdc=.5*(Vcc-Vb)\n",
+ "Ic1=Vrcdc/Rc\n",
+ "Rb=(Vb-Vd1-Vd2)/Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kOhm \" %Rb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 8.95 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.7 Page No 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=32.0\n",
+ "Vce=32.0\n",
+ "Ip=200.0*10**-3\n",
+ "Po=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=1.1*Ip\n",
+ "Pi=0.35*Vcc*Ip\n",
+ "Pt=0.5*(Pi-Po)\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the load Pi = %.2f \" %Pi)\n",
+ "print(\"power delivered to the load Pt = %.2f \" %Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the load Pi = 2.24 \n",
+ "power delivered to the load Pt = 0.62 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.8, Page No 832"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "hib=2.0\n",
+ "Rl=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ce=1.0/(2*3.14*f*hib)\n",
+ "Co=1.0/(2*3.14*50*.1*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ce is %.2f pF \" %(Ce*10**3))\n",
+ "print(\"The value of Co is %.2f pF \" %(Co*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ce is 1.59 pF \n",
+ "The value of Co is 0.64 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.9 Page No 834"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hFE=2000.0\n",
+ "Vbe=1.4\n",
+ "Vp=10.0\n",
+ "Ip=200.0*10**-3\n",
+ "Icq2=20.0*10**-3\n",
+ "Re3=4.7\n",
+ "Re2=4.7\n",
+ "Vd=0.7\n",
+ "Ve1=3.0\n",
+ "Vc1=15.2\n",
+ "\n",
+ "#Calculations\n",
+ "Vrc=Vc1\n",
+ "Vb=Vbe+Icq*(Re2+Re3)+Vbe\n",
+ "Vcc=Vrc+Vc1+Vb\n",
+ "Ib2=Ip/hFE\n",
+ "Irc=1.0*10**-3\n",
+ "Vrcac=4.0\n",
+ "Rc=Vrcac/Irc\n",
+ "Ic1=Vrc/Rc\n",
+ "Rb=(Vb-(4*Vd))/Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kohm \" %Rb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 49.47 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.10 Page No 838"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vb=3.2\n",
+ "Ic1=5*10**-3\n",
+ "Vce=3.2\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vbmin=Vb-0.5\n",
+ "Vbmax=Vb+0.5\n",
+ "I10=.1*Ic1\n",
+ "R10=(Vce-Vbe)/I10\n",
+ "R10=4.7*10**3#use standard value\n",
+ "print(\" for Vce=3.7\")\n",
+ "Vce=3.7\n",
+ "I10max=(Vce-Vbe)/R10\n",
+ "print(\"Vce=2.7V\")\n",
+ "Vce=2.7\n",
+ "I10min=(Vce-Vbe)/R10\n",
+ "R=Vbe/I10min\n",
+ "R11=Vbe/I10max\n",
+ "R12=R-R11\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R12 is %.2f kohm \" %R12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for Vce=3.7\n",
+ "Vce=2.7V\n",
+ "The value of R12 is 548.33 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.11 Page No 843"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=16.0\n",
+ "Po=6.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2.0*Rl*Po)\n",
+ "Vr14=0.1*Vp\n",
+ "Vr15=Vr14\n",
+ "R14=0.1*Rl\n",
+ "R15=R14\n",
+ "Vce3=1.0\n",
+ "Vce4=Vce3\n",
+ "Vr9=3.0\n",
+ "Vr11=Vr9\n",
+ "Vcc=(Vp+Vr14+Vbe+Vce3+Vr9)\n",
+ "Vee=-Vcc\n",
+ "Ip=Vp/Rl\n",
+ "print(\" DC power inpit from supply line\")\n",
+ "Pi=(Vcc-Vee)*.35*Ip\n",
+ "Pt=.5*(Pi-Po)\n",
+ "Vce=2*Vcc\n",
+ "Ic=1.1*Ip\n",
+ "\n",
+ "#Results\n",
+ "print(\" output transistor specification %.2f mA\" %Ic)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " DC power inpit from supply line\n",
+ " output transistor specification 0.95 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.12, Page No 844"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "hFE7=20.0\n",
+ "Icbo=50.0*10**-6\n",
+ "hFE5=70.0\n",
+ "Vr9=3.0\n",
+ "Ip=869.0*10**-3\n",
+ "R15=1.5\n",
+ "R8=15.0*10**3\n",
+ "Vbe=0.7\n",
+ "Vr11=3.0\n",
+ "Vee=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "R12=0.01/Icbo\n",
+ "R12=220#use standard value\n",
+ "R13=R12\n",
+ "Ib5=Ip/(hFE7*hFE5)\n",
+ "Ic3=2.0*10**-3\n",
+ "R9=Vr9/Ic3\n",
+ "R11=R9\n",
+ "Iq78=0.1*Ip\n",
+ "Vr14=Iq78*R15\n",
+ "Vr15=Vr14\n",
+ "Vr10=(Vr14+Vr15)+(Vr14+Vr15)/2\n",
+ "R10=Vr10/Ic3\n",
+ "Ir8=(Vr11+Vbe)/R8\n",
+ "R7=(Vee-(Vr11+Vbe))/Ir8\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R7 is %.2f kohm \" %(R7/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R7 is 66.08 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.13, Page No 848"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=20.0\n",
+ "Po=2.5\n",
+ "Rd=4.0\n",
+ "Vr6=1.0\n",
+ "Vr9=Vr6\n",
+ "Vth=1.0\n",
+ "gFS=250.0*10**-3\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "Vcc=(Vp+Ip*Rd)\n",
+ "vr6=Ip/gFS\n",
+ "Vr2=vr6+1\n",
+ "Vce=Vr2\n",
+ "Vce3=1.0\n",
+ "Vr2=Vcc-Vce\n",
+ "Vee=Vcc\n",
+ "Vr3=Vee-Vbe\n",
+ "Vr7=Vr2-Vr6\n",
+ "Vr8=Vcc-(-Vee)-Vr6-Vr7-Vr9\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vr8 is %.2f V \" %Vr8)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vr8 is 14.00 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.14, Page No 849"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R6=100.0*10**3\n",
+ "R9=R6\n",
+ "Vth=1.0\n",
+ "Vr7=8.0\n",
+ "Vr8=14.0\n",
+ "Vr3=11.3\n",
+ "Vpout=10.0\n",
+ "Vpin=800.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "I6=Vth/R6\n",
+ "R7=Vr7/I6\n",
+ "R8=Vr8/I6\n",
+ "Ic1=1*10**-4\n",
+ "Ic2=Ic1\n",
+ "Vr2=9\n",
+ "R2=Vr2/Ic1\n",
+ "R3=Vr3/(Ic1+Ic2)\n",
+ "R5=4.7*10**3\n",
+ "Acl=Vpout/Vpin\n",
+ "R4=R5/(Acl-1.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R4 is %.2f kohm \" %(R4/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R4 is 0.41 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.15, Page No 854"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vce=1.5\n",
+ "Vcc=17.0\n",
+ "Vd1=0.7\n",
+ "R8=1.5*10**3\n",
+ "R9=R8\n",
+ "Rl=100.0\n",
+ "R6=8.2\n",
+ "\n",
+ "#Calculations\n",
+ "I4=(Vcc-Vd1)/(R8+R9)\n",
+ "Vc3=Vcc-(I4*R8)\n",
+ "print(\" bootstrap capacitance terminal voltage is %3.1fV \" %Vc3)\n",
+ "V=Vcc-Vce#V=Vp+Vr6\n",
+ "Ip=V/(Rl+R6)\n",
+ "Vp=Ip*Rl\n",
+ "print(\" peak output voltage is %3.1fV \" %Vp)\n",
+ "Po=(Vp)**2.0/(2.0*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak output power is %dW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " bootstrap capacitance terminal voltage is 8.8V \n",
+ " peak output voltage is 14.3V \n",
+ " peak output power is 1W \n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.16, Page No 856"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rl=8.0\n",
+ "Po=6.0\n",
+ "vs=0.1\n",
+ "hFE=1000.0\n",
+ "Vce=2.0\n",
+ "f=50.0*10**3\n",
+ "Vd1=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=math.sqrt(2*Rl*Po)\n",
+ "Ip=Vp/Rl\n",
+ "R6=.1*Rl\n",
+ "R7=R6\n",
+ "Vcc=Vp+Ip*R6+Vce\n",
+ "Ib=Ip/hFE\n",
+ "I4=2*10**-3\n",
+ "R4=(Vcc-Vd1-Vd1)/I4\n",
+ "R8=.5*R4\n",
+ "Acl=Vp/vs\n",
+ "R3=100*10**3\n",
+ "R2=R3/(Acl-1)\n",
+ "SR=(2*3.14*f*Vp)*10**-6\n",
+ "\n",
+ "#Results\n",
+ "print(\" slew rate is %.2f V/us \" %SR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " slew rate is 3.08 V/us \n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.17, Page No 856"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "f=50.0\n",
+ "R1=100.0*10**3\n",
+ "R2=1.0*10**3\n",
+ "R8=2.7*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R9=R8\n",
+ "C1=1/(2*3.14*f*.1*R1)\n",
+ "C2=1/(2*3.14*f*R2)\n",
+ "Xc3=.1*((R8*R9)/(R8+R9))\n",
+ "C3=1/(2*3.14*f*Xc3)\n",
+ "C4=C3\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of C4 is %.2f pF \" %(C4*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C4 is 23.59 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.18, Page No 860"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ismin=1.8*10**-3\n",
+ "Ismax=3.4*10**-3\n",
+ "R7=820.0\n",
+ "R5=390.0\n",
+ "R6=18.0*10**3\n",
+ "Vi=100.0*10**-3\n",
+ "Rl=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vgsmin=Ismin*R7\n",
+ "Vgsmax=Ismax*R7\n",
+ "Acl=(R5+R6)/R5\n",
+ "Vp=Acl*Vi\n",
+ "Ip=Vp/Rl\n",
+ "print(\"peak output current is %3.3fA \" %Ip)\n",
+ "Po=(Vp*Ip)/2.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak output power is %3.2fW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak output current is 0.472A \n",
+ "peak output power is 1.11W \n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.19, Page No 862"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vbe=0.7\n",
+ "R2=560.0\n",
+ "R3min=0\n",
+ "R3max=1.0*10**3\n",
+ "Is=2.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2max=Vbe/(R2+R3min)\n",
+ "Ic2min=Vbe/(R2+R3max)\n",
+ "Vgsmin=(Is+Ic2min)*820.0\n",
+ "Vgsmax=(Is+Ic2max)*820.0\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Vgsmax is %.2f v \" %Vgsmax)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vgsmax is 2.67 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.20, Page No 865"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=12.0\n",
+ "Rl=10.0\n",
+ "Rd=0.5\n",
+ "gfs=2.5\n",
+ "R7=820.0\n",
+ "V9=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "R10=R9\n",
+ "Vp=(Vcc*Rl)/(Rd+Rl)\n",
+ "Ip=Vp/Rl\n",
+ "Vgs=Ip/gfs\n",
+ "Vr7=Is*R7\n",
+ "Vs=Vcc-Vr7-Vgs\n",
+ "Vr9=(Vp*R9)/(R9+R10)\n",
+ "\n",
+ "#Results\n",
+ "print(\"op-amp peak output voltage is %.2f v \" %Vr9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "op-amp peak output voltage is 5.71 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.21, Page No 867"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=0.7\n",
+ "R2=470.0\n",
+ "R3=1.0*10**3\n",
+ "Is=0.5*10**-3\n",
+ "R7=1.5*10**3\n",
+ "Vcc=15\n",
+ "\n",
+ "#Calculations\n",
+ "Ic2max=Vbe/R2\n",
+ "Ic2min=Vbe/(R2+R3)\n",
+ "Vgs=(Is+Ic2max)*R7\n",
+ "print(\" MOSFET maximum gate source voltage is %.1fV \" %Vgs)\n",
+ "Vs=Vcc-Vgs\n",
+ "\n",
+ "#Results\n",
+ "print(\" op-amp minimum suppy is %.2fV \" %Vs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " MOSFET maximum gate source voltage is 3.0V \n",
+ " op-amp minimum suppy is 12.02V \n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.22, Page No 868"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=15.0\n",
+ "Rl=15.0\n",
+ "Rd=0.3\n",
+ "R5=2.2*10**3\n",
+ "R6=33.0*10**3\n",
+ "C2=3.9*10**-6\n",
+ "C4=100.0*10**-12\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" power output\")\n",
+ "Vp=(Vcc*Rl)/(Rd+Rl)\n",
+ "Ip=Vp/Rl\n",
+ "Po=(Vp*Ip)/2.0\n",
+ "print(\" voltage gain\")\n",
+ "Av=(R5+R6)/R5\n",
+ "print(\"cutoff frequency\")\n",
+ "f1=1.0/(2*3.14*C2*R5)\n",
+ "f2=1.0/(2*3.14*C4*R6)\n",
+ "\n",
+ "#Results\n",
+ "print(\" cutoff frequency f1 %.2f \" %f1)\n",
+ "print(\" cutoff frequency f2 %.2f \" %f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " power output\n",
+ " voltage gain\n",
+ "cutoff frequency\n",
+ " cutoff frequency f1 18.56 \n",
+ " cutoff frequency f2 48253.23 \n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.23, Page No 871"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=23.0\n",
+ "Rl=8.0\n",
+ "Rf2=100.0*10**3\n",
+ "Rf1=5.6*10**3\n",
+ "Cf=1.0*10**-6\n",
+ "Vp=Vcc-5\n",
+ "\n",
+ "#Calculations\n",
+ "Po=(Vp)**2/(2*Rl)\n",
+ "print(\"maximum output power is %3.2fW \" %Po)\n",
+ "Acl=(Rf1+Rf2)/Rf1\n",
+ "print(\" voltage gain %3.1f \" %Acl)\n",
+ "f=1/(2*3.14*Cf*Rf1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"lower cutoff frequency is %dHz \" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum output power is 20.25W \n",
+ " voltage gain 18.9 \n",
+ "lower cutoff frequency is 28Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.24, Page No 875"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rf=15.0*10**3\n",
+ "R1=5.6*10**3\n",
+ "vs=0.5\n",
+ "Vp=2.7\n",
+ "\n",
+ "#Calculations\n",
+ "Acl=(2.0*Rf)/R1\n",
+ "Vo=Acl*vs\n",
+ "Po=(Vp)**2.0/(2.0*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\"load power dissipation is %.2fW \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load power dissipation is 0.46W \n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.24, Page No 875"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=10.0\n",
+ "Rl=1.0*10**3\n",
+ "f=3.0*10**6\n",
+ "Ip=25.0*10**-3\n",
+ "Vce=0.3\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=Vcc-Vce\n",
+ "Po=(Vp)**2 /(2*Rl)\n",
+ "T=1.0/f\n",
+ "t=(Po*T)/(Ip*Vp)\n",
+ "angle=(t/T)*360\n",
+ "print(\" conduction angle is %3.1fdegree \" %angle)\n",
+ "Idc=Po/Vp\n",
+ "Pi=Vcc*Idc\n",
+ "print( \"dc input power is %3.4fW \" %Pi)\n",
+ "n=(Po/Pi)*100#efficiency\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " conduction angle is 69.8degree \n",
+ "dc input power is 0.0485W \n",
+ " maximum efficiency is 97.00 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.26, Page No 882"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=1.0*10**6\n",
+ "Xc=120.0\n",
+ "Vce=0.5\n",
+ "Vcc=30.0\n",
+ "Rl=1.2*10**3\n",
+ "O=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Cp=1.0/(2*3.14*f*Xc)\n",
+ "Cp=1300*10**-12#use standard value\n",
+ "Lp=1/(((2*3.14*f)**2)*Cp)\n",
+ "Vp=Vcc-Vce\n",
+ "Po=((Vp)**2) /(2*Rl)\n",
+ "Idc=Po/Vp\n",
+ "T=1.0/f\n",
+ "t=(O*T)/360.0\n",
+ "Ip=(Idc*T)/t\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ip is %.2f mA \" %(Ip*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ip is 44.25 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.27, Page No 883"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rw=0.1\n",
+ "f=1.0*10**6\n",
+ "Lp=19.5*10**-6\n",
+ "Rl=1.2*10**3\n",
+ "Vcc=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "Idc=12.3*10**-3\n",
+ "QL=(2*3.14*f*Lp)/Rw\n",
+ "Qp=Rl/(2*3.14*f*Lp)\n",
+ "B=f/Qp\n",
+ "Il=(.707*Vp)/(2*3.14*f*Lp)\n",
+ "Pl=(Il)**2 *Rw\n",
+ "Pi=(Vcc*Idc)+Pl\n",
+ "n=(Po/Pi)*100.0\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum efficiency is %3.2f percentage \" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency is 97.50 percentage \n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter1_1.ipynb b/Electronic_Devices_and_Circuits/Chapter1_1.ipynb
new file mode 100755
index 00000000..47b8b5fc
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter1_1.ipynb
@@ -0,0 +1,307 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 01 : Basic semiconductor and pn junction theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page No 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Nd=3*10**14\n",
+ "Na=0.5*10**14 #all in atom/cm**3\n",
+ "ni=1.5*10**10\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"resultant densities of free electrons and hole\")\n",
+ "ne=(-(Na-Nd)+(math.sqrt(((Na-Nd)**2)+4*ni**2)))/2\n",
+ "print(\"Electron densities = %.1f x 10^14 electron/cm**3\" %(ne/(10**14))) #electron densities in electron/cm**3\n",
+ "Nd>Na\n",
+ "n=Nd-Na\n",
+ "print(n)\n",
+ "p=(ni**2)/n\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print(\"densities of hole is =%.1f X 10^6 dhole/cm3\" %(p/(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant densities of free electrons and hole\n",
+ "Electron densities = 2.5 x 10^14 electron/cm**3\n",
+ "2.5e+14\n",
+ "densities of hole is =0.9 X 10^6 dhole/cm3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page No 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "l=1*10**-3\n",
+ "E=10\n",
+ "\n",
+ "#Calculations\n",
+ "un=1500*10**-4\n",
+ "up=500*10-4\n",
+ "Vn=-(un*E)/l\n",
+ "\n",
+ "#Results\n",
+ "print(\"drift current is =%.2dm/s\\n\" %Vn)\n",
+ "print(\"drift current of hole\")\n",
+ "Vp=(up*E)/l\n",
+ "print(\"drift current is =%.f dm/s\\n\" %(Vp/10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drift current is =-1500m/s\n",
+ "\n",
+ "drift current of hole\n",
+ "drift current is =500 dm/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "l=1*10**-3\n",
+ "a=0.1*10**-4\n",
+ "ni=1.5*10**10\n",
+ "p=1.5*10**10\n",
+ "un=1500\n",
+ "up=500 #in cm3/V.s\n",
+ "q=1.6*10**-19\n",
+ "\n",
+ "#Calculations\n",
+ "m=q*((ni*un)+(p*up))*10**6\n",
+ "print( \"mobility is =%.1fmicro/ohmcm\" %m)\n",
+ "R=l/(m*a)\n",
+ "print(\" resistance is =%.1fMohm\" %R)\n",
+ "\n",
+ "#for doped material\n",
+ "n=8*10**13\n",
+ "p=(ni**2)/n\n",
+ "m=q*((n*un)+(p*up))\n",
+ "\n",
+ "#Results\n",
+ "print(\"mobility is =%3.4f/ohmcm\" %m)\n",
+ "R=l/(m*a)\n",
+ "print(\" resistance is %.2f Kohm\" %(R/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mobility is =4.8micro/ohmcm\n",
+ " resistance is =20.8Mohm\n",
+ "mobility is =0.0192/ohmcm\n",
+ " resistance is 5.21 Kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page No 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T1=25.0\n",
+ "T2=35.0\n",
+ "T3=45.0\n",
+ "I0=30.0 # nA\n",
+ "print(\"I0(35)=I0*2**(T2-T1)/10\")\n",
+ "#on solving\n",
+ "I035=I0*2**((T2-T1)/10)\n",
+ "print(\"Current at 35c is =%.2f nA\\n\" %I035)\n",
+ "print(\"I0(45)=I0*2**(T3-T1)/10\")\n",
+ "#on solving\n",
+ "I045=30*2**2\n",
+ "print(\"current at 45c is =%.2f nA\\n\" %I045)\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I0(35)=I0*2**(T2-T1)/10\n",
+ "Current at 35c is =60.00 nA\n",
+ "\n",
+ "I0(45)=I0*2**(T3-T1)/10\n",
+ "current at 45c is =120.00 nA\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I0=30\n",
+ "Vd=0.7\n",
+ "n=2\n",
+ "\n",
+ "#Calculations\n",
+ "Vt=26.0*10**-3\n",
+ "k=Vd/(n*Vt)\n",
+ "Id=I0*((2.7**k)-1)*10**-6 #Junction current\n",
+ "print(\" a) Forward bais current is =%.2f mA\\n\" %Id)\n",
+ "Vd=-10 #reverse bais\n",
+ "k=Vd/(n*Vt)\n",
+ "Id=I0*((2.7**k)-1)\n",
+ "\n",
+ "#Results\n",
+ "print(\" b) Forward bais current is =%.2f nA\" %Id)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " a) Forward bais current is =19.23 mA\n",
+ "\n",
+ " b) Forward bais current is =-30.00 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page No 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=.1*10**-3\n",
+ "n=2\n",
+ "vt=26*10**-3\n",
+ "I0=30*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=(n*Vt)*math.log(Id/I0)*10**3\n",
+ "print(\" a) Forward bais current is =%.2f mV\\n\" %Vd)\n",
+ "Id=10*10**-3\n",
+ "Vd=(n*Vt)*math.log(Id/I0)*10**3\n",
+ "\n",
+ "#Results\n",
+ "print(\"b) forward bais current is %dmV\\n\" %Vd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " a) Forward bais current is =421.81 mV\n",
+ "\n",
+ "b) forward bais current is 661mV\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter1_2.ipynb b/Electronic_Devices_and_Circuits/Chapter1_2.ipynb
new file mode 100755
index 00000000..47b8b5fc
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter1_2.ipynb
@@ -0,0 +1,307 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 01 : Basic semiconductor and pn junction theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, Page No 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Nd=3*10**14\n",
+ "Na=0.5*10**14 #all in atom/cm**3\n",
+ "ni=1.5*10**10\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"resultant densities of free electrons and hole\")\n",
+ "ne=(-(Na-Nd)+(math.sqrt(((Na-Nd)**2)+4*ni**2)))/2\n",
+ "print(\"Electron densities = %.1f x 10^14 electron/cm**3\" %(ne/(10**14))) #electron densities in electron/cm**3\n",
+ "Nd>Na\n",
+ "n=Nd-Na\n",
+ "print(n)\n",
+ "p=(ni**2)/n\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print(\"densities of hole is =%.1f X 10^6 dhole/cm3\" %(p/(10**6)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant densities of free electrons and hole\n",
+ "Electron densities = 2.5 x 10^14 electron/cm**3\n",
+ "2.5e+14\n",
+ "densities of hole is =0.9 X 10^6 dhole/cm3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page No 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "l=1*10**-3\n",
+ "E=10\n",
+ "\n",
+ "#Calculations\n",
+ "un=1500*10**-4\n",
+ "up=500*10-4\n",
+ "Vn=-(un*E)/l\n",
+ "\n",
+ "#Results\n",
+ "print(\"drift current is =%.2dm/s\\n\" %Vn)\n",
+ "print(\"drift current of hole\")\n",
+ "Vp=(up*E)/l\n",
+ "print(\"drift current is =%.f dm/s\\n\" %(Vp/10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drift current is =-1500m/s\n",
+ "\n",
+ "drift current of hole\n",
+ "drift current is =500 dm/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "l=1*10**-3\n",
+ "a=0.1*10**-4\n",
+ "ni=1.5*10**10\n",
+ "p=1.5*10**10\n",
+ "un=1500\n",
+ "up=500 #in cm3/V.s\n",
+ "q=1.6*10**-19\n",
+ "\n",
+ "#Calculations\n",
+ "m=q*((ni*un)+(p*up))*10**6\n",
+ "print( \"mobility is =%.1fmicro/ohmcm\" %m)\n",
+ "R=l/(m*a)\n",
+ "print(\" resistance is =%.1fMohm\" %R)\n",
+ "\n",
+ "#for doped material\n",
+ "n=8*10**13\n",
+ "p=(ni**2)/n\n",
+ "m=q*((n*un)+(p*up))\n",
+ "\n",
+ "#Results\n",
+ "print(\"mobility is =%3.4f/ohmcm\" %m)\n",
+ "R=l/(m*a)\n",
+ "print(\" resistance is %.2f Kohm\" %(R/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mobility is =4.8micro/ohmcm\n",
+ " resistance is =20.8Mohm\n",
+ "mobility is =0.0192/ohmcm\n",
+ " resistance is 5.21 Kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page No 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T1=25.0\n",
+ "T2=35.0\n",
+ "T3=45.0\n",
+ "I0=30.0 # nA\n",
+ "print(\"I0(35)=I0*2**(T2-T1)/10\")\n",
+ "#on solving\n",
+ "I035=I0*2**((T2-T1)/10)\n",
+ "print(\"Current at 35c is =%.2f nA\\n\" %I035)\n",
+ "print(\"I0(45)=I0*2**(T3-T1)/10\")\n",
+ "#on solving\n",
+ "I045=30*2**2\n",
+ "print(\"current at 45c is =%.2f nA\\n\" %I045)\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I0(35)=I0*2**(T2-T1)/10\n",
+ "Current at 35c is =60.00 nA\n",
+ "\n",
+ "I0(45)=I0*2**(T3-T1)/10\n",
+ "current at 45c is =120.00 nA\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I0=30\n",
+ "Vd=0.7\n",
+ "n=2\n",
+ "\n",
+ "#Calculations\n",
+ "Vt=26.0*10**-3\n",
+ "k=Vd/(n*Vt)\n",
+ "Id=I0*((2.7**k)-1)*10**-6 #Junction current\n",
+ "print(\" a) Forward bais current is =%.2f mA\\n\" %Id)\n",
+ "Vd=-10 #reverse bais\n",
+ "k=Vd/(n*Vt)\n",
+ "Id=I0*((2.7**k)-1)\n",
+ "\n",
+ "#Results\n",
+ "print(\" b) Forward bais current is =%.2f nA\" %Id)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " a) Forward bais current is =19.23 mA\n",
+ "\n",
+ " b) Forward bais current is =-30.00 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page No 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Id=.1*10**-3\n",
+ "n=2\n",
+ "vt=26*10**-3\n",
+ "I0=30*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "Vd=(n*Vt)*math.log(Id/I0)*10**3\n",
+ "print(\" a) Forward bais current is =%.2f mV\\n\" %Vd)\n",
+ "Id=10*10**-3\n",
+ "Vd=(n*Vt)*math.log(Id/I0)*10**3\n",
+ "\n",
+ "#Results\n",
+ "print(\"b) forward bais current is %dmV\\n\" %Vd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " a) Forward bais current is =421.81 mV\n",
+ "\n",
+ "b) forward bais current is 661mV\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter2.ipynb b/Electronic_Devices_and_Circuits/Chapter2.ipynb
new file mode 100755
index 00000000..1c97e28b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter2.ipynb
@@ -0,0 +1,571 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Semiconductor diodes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=100*10**-3\n",
+ "Vf=.75 #given\n",
+ "print(\"a)\")\n",
+ "print(\"forward resistance\")\n",
+ "\n",
+ "#Calculations\n",
+ "Rf=Vf/If\n",
+ "print(\"forward resistnace is %3.1fohm \" %Rf)\n",
+ "print(\"b)\")\n",
+ "Vr=50\n",
+ "Ir=100*10**-9\n",
+ "Rr=(Vr/Ir)\n",
+ "\n",
+ "#Results\n",
+ "print(\"reverse resistnace is %.1fohm \" %(Rr/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)\n",
+ "forward resistance\n",
+ "forward resistnace is 7.5ohm \n",
+ "b)\n",
+ "reverse resistnace is 500.0ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=70*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "rd=(26*10**-3)/If\n",
+ "print(\"dynamic resistance is %.2fohm \" %rd)\n",
+ "If=60*10**-3\n",
+ "Vf=.025\n",
+ "rd=Vf/If\n",
+ "\n",
+ "#Results\n",
+ "print(\"dynamic resistance is %.2fohm \" %rd)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dynamic resistance is 0.37ohm \n",
+ "dynamic resistance is 0.42ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=4.7*10**3\n",
+ "E=15.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"diode current is E=If*R1+Vf\")\n",
+ "If=((E-Vf)/R1)*10**3\n",
+ "\n",
+ "#Results\n",
+ "print(\" diode current is %.2fmA \" %If) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode current is E=If*R1+Vf\n",
+ " diode current is 3.04mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page No 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=1.5\n",
+ "Vf=0.7\n",
+ "R1=10\n",
+ "rd=.25\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"a)\")\n",
+ "If=(E-Vf)/R1\n",
+ "print(\" forward current is %0.1fmA \" %(If*1000))\n",
+ "print(\"b)\")\n",
+ "If=(E-Vf)/(R1+rd)\n",
+ "\n",
+ "#Results\n",
+ "print(\" forward current is %0.1fmA \" %(If*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)\n",
+ " forward current is 80.0mA \n",
+ "b)\n",
+ " forward current is 78.0mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=0\n",
+ "Vf=5.0\n",
+ "R1=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "E=(If*R1)+Vf\n",
+ "print(\"B)\")\n",
+ "Vf=0\n",
+ "E=5.0\n",
+ "R1=100.0\n",
+ "If=(E/R1)*1000\n",
+ "\n",
+ "#Results\n",
+ "print(\"resistance is %dmA \" %If) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B)\n",
+ "resistance is 50mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=50*10**-3\n",
+ "Vf=1.1\n",
+ "R1=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vf1=If*R1\n",
+ "E=Vf1+Vf\n",
+ "\n",
+ "#Results\n",
+ "print(\" new supply voltage is %.2fV \" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " new supply voltage is 6.10V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9, Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P1=700.0*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "If=P1/Vf\n",
+ "#at 65C\n",
+ "D=5*10**-3\n",
+ "T=65-25\n",
+ "P2=P1-D*T\n",
+ "If=P2/Vf\n",
+ "\n",
+ "#Results\n",
+ "print( \"maximum forward current at 65C is %.1fA \" %(If*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum forward current at 65C is 714.3A \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10 Page No 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vf1=0.7\n",
+ "Vf=-1.8*10**-3\n",
+ "If=26.0*10**-3\n",
+ "T=100-25\n",
+ "\n",
+ "#Calculations\n",
+ "Vf2=Vf1+(T*Vf)\n",
+ "print(\" voltage at 100C is %.3f V \" %Vf2)\n",
+ "print(\"At 25C\")\n",
+ "T1=25.0\n",
+ "rd=(26*10**-3/If)*((T1+273)/298)\n",
+ "print(\" resistance at 25 C is %.2f ohm \" %rd)\n",
+ "print(\" At 100C\")\n",
+ "T2=100.0\n",
+ "rd=(26*10**-3/If)*((T2+273)/298)\n",
+ "\n",
+ "#Results\n",
+ "print(\" resistance at 100 C is %.2fohm \" %rd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage at 100C is 0.565 V \n",
+ "At 25C\n",
+ " resistance at 25 C is 1.00 ohm \n",
+ " At 100C\n",
+ " resistance at 100 C is 1.25ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 Page No 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "If=10*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "t=70.0*10**-9\n",
+ "Cd=((t*If)/Vf)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" diffusion capacitance is %.2f nF \" %Cd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diffusion capacitance is 1.00 nF \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12 Page No 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"A\")\n",
+ "trr=10.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "tf=10.0*trr*10**9\n",
+ "print(\"minimum fall times is %d ns \" %tf)\n",
+ "print(\"B)\")\n",
+ "trr=3.0\n",
+ "tf=10*trr\n",
+ "\n",
+ "#Results\n",
+ "print(\"minimum fall times is %d ns \" %tf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\n",
+ "minimum fall times is 100 ns \n",
+ "B)\n",
+ "minimum fall times is 30 ns \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14, Page No 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Io=75.0*10**-3\n",
+ "#vertical scale of 5mA/cm \n",
+ "\n",
+ "#Calculations\n",
+ "If=Io/5*10**-3\n",
+ "R1=15/(75*10**-3)\n",
+ "P=((Io)**2)*R1\n",
+ "\n",
+ "#Results\n",
+ "print(\"Pr1 = %1.1f W \" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pr1 = 1.1 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page No 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=7.5\n",
+ "Pd=400.0*10**-3\n",
+ "D=3.2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Izm=Pd/Vz\n",
+ "print(\"current at 50C is %.1fA \" %(Izm*1000))\n",
+ "print(\"At 100C\")\n",
+ "P2=Pd-((100-50)*D)\n",
+ "print(\" power at 100C is %.3fW \" %P2)\n",
+ "Izm=P2/Vz\n",
+ "\n",
+ "#Results\n",
+ "print(\" current at 100C is %.1fA \" %(Izm*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current at 50C is 53.3A \n",
+ "At 100C\n",
+ " power at 100C is 0.240W \n",
+ " current at 100C is 32.0A \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page No 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=20.0\n",
+ "R1=620.0\n",
+ "Vz=7.5\n",
+ "\n",
+ "#Calculations\n",
+ "Vr1=E-Vz\n",
+ "Iz=Vr1/R1\n",
+ "print(\" diode current is %.1f mA \" %(Iz*1000))\n",
+ "Pd=Vz*Iz\n",
+ "\n",
+ "#Results\n",
+ "print( \"power dissipation is %.1f mW \" %(Pd*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diode current is 20.2 mA \n",
+ "power dissipation is 151.2 mW \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter20.ipynb b/Electronic_Devices_and_Circuits/Chapter20.ipynb
new file mode 100755
index 00000000..dcf6cb7f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter20.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 : Thyristors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.1, Page No 902"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vs=25.0\n",
+ "Vtm=1.7\n",
+ "Rl=25.0\n",
+ "Ih=5*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vspk=1.414*Vs\n",
+ "Ilpk=(Vs-Vtm)/Rl\n",
+ "print(\" for half wave rectifier sinusodial waveform\")\n",
+ "Ilrms=.5*Ilpk\n",
+ "es=Vtm+(Ih*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\" switch-off voltage =%.2f v\" %es)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for half wave rectifier sinusodial waveform\n",
+ " switch-off voltage =1.82 v\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.2, Page No 905"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vs=30.0\n",
+ "Vd1=.7\n",
+ "Vg=.8\n",
+ "Ig=200*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Vspk=1.414*Vs\n",
+ "print(\" at 5 degree\")\n",
+ "es=Vspk*.087 # sin5=.087\n",
+ "print(\" at 90 degree\")\n",
+ "es=Vspk\n",
+ "Vt=Vd1+Vg\n",
+ "print(\" to trigger at es=3.7V the R2 moving contact is at the top\")\n",
+ "es=3.7\n",
+ "Vr1=es-Vt\n",
+ "I1=1*10**-3\n",
+ "R1=Vr1/I1\n",
+ "R=Vt/I1 #R=R2+R3\n",
+ "es=42.4\n",
+ "Vr3=Vt\n",
+ "I1=es/(R+R1)\n",
+ "R3=Vt/I1\n",
+ "R2=R-R3\n",
+ "\n",
+ "#Results\n",
+ "print(\" To trigger at es =42.4 the R2 moving contact at the bottom =%.2f\" %R2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " at 5 degree\n",
+ " at 90 degree\n",
+ " to trigger at es=3.7V the R2 moving contact is at the top\n",
+ " To trigger at es =42.4 the R2 moving contact at the bottom =1369.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.3 Page No 906"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R1=2.2*10**3\n",
+ "R2=1.5*10**3\n",
+ "R3=120.0\n",
+ "Vt=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "Vak1=Vt*((R1+R2+R3)/(R3+.5*R2))\n",
+ "Vak2=Vt*((R1+R2+R3)/R3)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\" with R2 contact at center = %.2f\" %Vak1)\n",
+ "print(\" with R2 contact at zero = %.2f\" %Vak2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R2 contact at center = 6.59\n",
+ " with R2 contact at zero = 47.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.4, Page No 911"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vs=5.0\n",
+ "Ilmax=300*10**-3\n",
+ "Vl=7.0\n",
+ "Vg=0.8\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vz=Vl-Vg\n",
+ "print(\" for D1, select a 1N753 with Vz=6.2\")\n",
+ "Izmin=1*10**-3\n",
+ "R1=Vg/Izmin\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %d kohm \" %R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for D1, select a 1N753 with Vz=6.2\n",
+ "The value of R1 is 800 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.5 Page No 911"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=25*10**3\n",
+ "R2=2.7*10**3\n",
+ "C1=3*10**-6\n",
+ "Vg=0.8\n",
+ "Vd1=8.0\n",
+ "Vs=115.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vc1=Vd1+Vg\n",
+ "#assume the average charging voltage is\n",
+ "Vac=1.414*Vs\n",
+ "E=.636*Vac\n",
+ "#average charging\n",
+ "Ic=E/(R1+R2)\n",
+ "#charging time\n",
+ "t=(C1*Vc1)/Ic\n",
+ "T=1/f\n",
+ "q=(t*360)/T\n",
+ "a=180-q\n",
+ "\n",
+ "#Results\n",
+ "print(\"Conduction angle =%.2f degrees\" %a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction angle =27.27 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.6 Page No 925"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vs=10.0\n",
+ "Vf=1.7\n",
+ "Is=500*10**-6\n",
+ "Ih=1.5*10**-3\n",
+ "E=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R=27*10**3\n",
+ "C=0.5*10**-6\n",
+ "R1max=(E-Vs)/Is\n",
+ "R1min=(E-Vf)/Ih\n",
+ "t=C*R*math.log((E-Vf)/(E-Vs))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Capacitor charging time is %3.4f s\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitor charging time is 0.0047 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.7, Page No 931"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rbb=4.0*10**3\n",
+ "Pd25=360.0*10**-3\n",
+ "D=2.4*10**-3\n",
+ "T2=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Pd=Pd25-D*(T2-25)\n",
+ "Vb1b1=math.sqrt(Rbb*Pd)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Maximum Vb1b1 that should be used at a temp 100 is %3.1fV \" %Vb1b1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Vb1b1 that should be used at a temp 100 is 26.8V \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.8 Page No 931"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vb1b1=25\n",
+ "nmax=0.86\n",
+ "nmin=0.74\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vpmax=Vd+(nmax*Vb1b1)\n",
+ "Vpmin=Vd+(nmin*Vb1b1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Maximum Vpmax that should be is %3.1fV \" %Vpmax)\n",
+ "print(\"Minimum Vpmin that should be is %3.1fV \" %Vpmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Vpmax that should be is 22.2V \n",
+ "Minimum Vpmin that should be is 19.2V \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.9 Page No 933"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Ip=.6*10**-6\n",
+ "Iv=2*10**-3\n",
+ "Veb1=2.5\n",
+ "Vpmin=19.2\n",
+ "Vpmax=22.2\n",
+ "Vbb=25.0\n",
+ "C=1*10**-6\n",
+ "R=18*10**3\n",
+ "Vp=20.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vpmin=(Vbb-Vpmax)/Ip\n",
+ "Remax=(Vbb-Veb1)/Iv\n",
+ "t=C*R*math.log((Vbb-Veb1)/(Vbb-Vp))\n",
+ "f=1.0/t\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of f is %.2f \" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of f is 36.94 \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter20_1.ipynb b/Electronic_Devices_and_Circuits/Chapter20_1.ipynb
new file mode 100755
index 00000000..dcf6cb7f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter20_1.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 : Thyristors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.1, Page No 902"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vs=25.0\n",
+ "Vtm=1.7\n",
+ "Rl=25.0\n",
+ "Ih=5*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vspk=1.414*Vs\n",
+ "Ilpk=(Vs-Vtm)/Rl\n",
+ "print(\" for half wave rectifier sinusodial waveform\")\n",
+ "Ilrms=.5*Ilpk\n",
+ "es=Vtm+(Ih*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\" switch-off voltage =%.2f v\" %es)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for half wave rectifier sinusodial waveform\n",
+ " switch-off voltage =1.82 v\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.2, Page No 905"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vs=30.0\n",
+ "Vd1=.7\n",
+ "Vg=.8\n",
+ "Ig=200*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Vspk=1.414*Vs\n",
+ "print(\" at 5 degree\")\n",
+ "es=Vspk*.087 # sin5=.087\n",
+ "print(\" at 90 degree\")\n",
+ "es=Vspk\n",
+ "Vt=Vd1+Vg\n",
+ "print(\" to trigger at es=3.7V the R2 moving contact is at the top\")\n",
+ "es=3.7\n",
+ "Vr1=es-Vt\n",
+ "I1=1*10**-3\n",
+ "R1=Vr1/I1\n",
+ "R=Vt/I1 #R=R2+R3\n",
+ "es=42.4\n",
+ "Vr3=Vt\n",
+ "I1=es/(R+R1)\n",
+ "R3=Vt/I1\n",
+ "R2=R-R3\n",
+ "\n",
+ "#Results\n",
+ "print(\" To trigger at es =42.4 the R2 moving contact at the bottom =%.2f\" %R2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " at 5 degree\n",
+ " at 90 degree\n",
+ " to trigger at es=3.7V the R2 moving contact is at the top\n",
+ " To trigger at es =42.4 the R2 moving contact at the bottom =1369.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.3 Page No 906"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R1=2.2*10**3\n",
+ "R2=1.5*10**3\n",
+ "R3=120.0\n",
+ "Vt=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "Vak1=Vt*((R1+R2+R3)/(R3+.5*R2))\n",
+ "Vak2=Vt*((R1+R2+R3)/R3)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\" with R2 contact at center = %.2f\" %Vak1)\n",
+ "print(\" with R2 contact at zero = %.2f\" %Vak2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R2 contact at center = 6.59\n",
+ " with R2 contact at zero = 47.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.4, Page No 911"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vs=5.0\n",
+ "Ilmax=300*10**-3\n",
+ "Vl=7.0\n",
+ "Vg=0.8\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vz=Vl-Vg\n",
+ "print(\" for D1, select a 1N753 with Vz=6.2\")\n",
+ "Izmin=1*10**-3\n",
+ "R1=Vg/Izmin\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %d kohm \" %R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for D1, select a 1N753 with Vz=6.2\n",
+ "The value of R1 is 800 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.5 Page No 911"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=25*10**3\n",
+ "R2=2.7*10**3\n",
+ "C1=3*10**-6\n",
+ "Vg=0.8\n",
+ "Vd1=8.0\n",
+ "Vs=115.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vc1=Vd1+Vg\n",
+ "#assume the average charging voltage is\n",
+ "Vac=1.414*Vs\n",
+ "E=.636*Vac\n",
+ "#average charging\n",
+ "Ic=E/(R1+R2)\n",
+ "#charging time\n",
+ "t=(C1*Vc1)/Ic\n",
+ "T=1/f\n",
+ "q=(t*360)/T\n",
+ "a=180-q\n",
+ "\n",
+ "#Results\n",
+ "print(\"Conduction angle =%.2f degrees\" %a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction angle =27.27 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.6 Page No 925"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vs=10.0\n",
+ "Vf=1.7\n",
+ "Is=500*10**-6\n",
+ "Ih=1.5*10**-3\n",
+ "E=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R=27*10**3\n",
+ "C=0.5*10**-6\n",
+ "R1max=(E-Vs)/Is\n",
+ "R1min=(E-Vf)/Ih\n",
+ "t=C*R*math.log((E-Vf)/(E-Vs))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Capacitor charging time is %3.4f s\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitor charging time is 0.0047 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.7, Page No 931"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rbb=4.0*10**3\n",
+ "Pd25=360.0*10**-3\n",
+ "D=2.4*10**-3\n",
+ "T2=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Pd=Pd25-D*(T2-25)\n",
+ "Vb1b1=math.sqrt(Rbb*Pd)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Maximum Vb1b1 that should be used at a temp 100 is %3.1fV \" %Vb1b1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Vb1b1 that should be used at a temp 100 is 26.8V \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.8 Page No 931"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vb1b1=25\n",
+ "nmax=0.86\n",
+ "nmin=0.74\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vpmax=Vd+(nmax*Vb1b1)\n",
+ "Vpmin=Vd+(nmin*Vb1b1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Maximum Vpmax that should be is %3.1fV \" %Vpmax)\n",
+ "print(\"Minimum Vpmin that should be is %3.1fV \" %Vpmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Vpmax that should be is 22.2V \n",
+ "Minimum Vpmin that should be is 19.2V \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.9 Page No 933"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Ip=.6*10**-6\n",
+ "Iv=2*10**-3\n",
+ "Veb1=2.5\n",
+ "Vpmin=19.2\n",
+ "Vpmax=22.2\n",
+ "Vbb=25.0\n",
+ "C=1*10**-6\n",
+ "R=18*10**3\n",
+ "Vp=20.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vpmin=(Vbb-Vpmax)/Ip\n",
+ "Remax=(Vbb-Veb1)/Iv\n",
+ "t=C*R*math.log((Vbb-Veb1)/(Vbb-Vp))\n",
+ "f=1.0/t\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of f is %.2f \" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of f is 36.94 \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter20_2.ipynb b/Electronic_Devices_and_Circuits/Chapter20_2.ipynb
new file mode 100755
index 00000000..dcf6cb7f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter20_2.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 : Thyristors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.1, Page No 902"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vs=25.0\n",
+ "Vtm=1.7\n",
+ "Rl=25.0\n",
+ "Ih=5*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vspk=1.414*Vs\n",
+ "Ilpk=(Vs-Vtm)/Rl\n",
+ "print(\" for half wave rectifier sinusodial waveform\")\n",
+ "Ilrms=.5*Ilpk\n",
+ "es=Vtm+(Ih*Rl)\n",
+ "\n",
+ "#Results\n",
+ "print(\" switch-off voltage =%.2f v\" %es)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for half wave rectifier sinusodial waveform\n",
+ " switch-off voltage =1.82 v\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.2, Page No 905"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vs=30.0\n",
+ "Vd1=.7\n",
+ "Vg=.8\n",
+ "Ig=200*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Vspk=1.414*Vs\n",
+ "print(\" at 5 degree\")\n",
+ "es=Vspk*.087 # sin5=.087\n",
+ "print(\" at 90 degree\")\n",
+ "es=Vspk\n",
+ "Vt=Vd1+Vg\n",
+ "print(\" to trigger at es=3.7V the R2 moving contact is at the top\")\n",
+ "es=3.7\n",
+ "Vr1=es-Vt\n",
+ "I1=1*10**-3\n",
+ "R1=Vr1/I1\n",
+ "R=Vt/I1 #R=R2+R3\n",
+ "es=42.4\n",
+ "Vr3=Vt\n",
+ "I1=es/(R+R1)\n",
+ "R3=Vt/I1\n",
+ "R2=R-R3\n",
+ "\n",
+ "#Results\n",
+ "print(\" To trigger at es =42.4 the R2 moving contact at the bottom =%.2f\" %R2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " at 5 degree\n",
+ " at 90 degree\n",
+ " to trigger at es=3.7V the R2 moving contact is at the top\n",
+ " To trigger at es =42.4 the R2 moving contact at the bottom =1369.10\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.3 Page No 906"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R1=2.2*10**3\n",
+ "R2=1.5*10**3\n",
+ "R3=120.0\n",
+ "Vt=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "Vak1=Vt*((R1+R2+R3)/(R3+.5*R2))\n",
+ "Vak2=Vt*((R1+R2+R3)/R3)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\" with R2 contact at center = %.2f\" %Vak1)\n",
+ "print(\" with R2 contact at zero = %.2f\" %Vak2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R2 contact at center = 6.59\n",
+ " with R2 contact at zero = 47.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.4, Page No 911"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vs=5.0\n",
+ "Ilmax=300*10**-3\n",
+ "Vl=7.0\n",
+ "Vg=0.8\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vz=Vl-Vg\n",
+ "print(\" for D1, select a 1N753 with Vz=6.2\")\n",
+ "Izmin=1*10**-3\n",
+ "R1=Vg/Izmin\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %d kohm \" %R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " for D1, select a 1N753 with Vz=6.2\n",
+ "The value of R1 is 800 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.5 Page No 911"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=25*10**3\n",
+ "R2=2.7*10**3\n",
+ "C1=3*10**-6\n",
+ "Vg=0.8\n",
+ "Vd1=8.0\n",
+ "Vs=115.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vc1=Vd1+Vg\n",
+ "#assume the average charging voltage is\n",
+ "Vac=1.414*Vs\n",
+ "E=.636*Vac\n",
+ "#average charging\n",
+ "Ic=E/(R1+R2)\n",
+ "#charging time\n",
+ "t=(C1*Vc1)/Ic\n",
+ "T=1/f\n",
+ "q=(t*360)/T\n",
+ "a=180-q\n",
+ "\n",
+ "#Results\n",
+ "print(\"Conduction angle =%.2f degrees\" %a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction angle =27.27 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.6 Page No 925"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vs=10.0\n",
+ "Vf=1.7\n",
+ "Is=500*10**-6\n",
+ "Ih=1.5*10**-3\n",
+ "E=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R=27*10**3\n",
+ "C=0.5*10**-6\n",
+ "R1max=(E-Vs)/Is\n",
+ "R1min=(E-Vf)/Ih\n",
+ "t=C*R*math.log((E-Vf)/(E-Vs))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Capacitor charging time is %3.4f s\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitor charging time is 0.0047 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.7, Page No 931"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rbb=4.0*10**3\n",
+ "Pd25=360.0*10**-3\n",
+ "D=2.4*10**-3\n",
+ "T2=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Pd=Pd25-D*(T2-25)\n",
+ "Vb1b1=math.sqrt(Rbb*Pd)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Maximum Vb1b1 that should be used at a temp 100 is %3.1fV \" %Vb1b1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Vb1b1 that should be used at a temp 100 is 26.8V \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.8 Page No 931"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vb1b1=25\n",
+ "nmax=0.86\n",
+ "nmin=0.74\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vpmax=Vd+(nmax*Vb1b1)\n",
+ "Vpmin=Vd+(nmin*Vb1b1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Maximum Vpmax that should be is %3.1fV \" %Vpmax)\n",
+ "print(\"Minimum Vpmin that should be is %3.1fV \" %Vpmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Vpmax that should be is 22.2V \n",
+ "Minimum Vpmin that should be is 19.2V \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.9 Page No 933"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Ip=.6*10**-6\n",
+ "Iv=2*10**-3\n",
+ "Veb1=2.5\n",
+ "Vpmin=19.2\n",
+ "Vpmax=22.2\n",
+ "Vbb=25.0\n",
+ "C=1*10**-6\n",
+ "R=18*10**3\n",
+ "Vp=20.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Vpmin=(Vbb-Vpmax)/Ip\n",
+ "Remax=(Vbb-Veb1)/Iv\n",
+ "t=C*R*math.log((Vbb-Veb1)/(Vbb-Vp))\n",
+ "f=1.0/t\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of f is %.2f \" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of f is 36.94 \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter21.ipynb b/Electronic_Devices_and_Circuits/Chapter21.ipynb
new file mode 100755
index 00000000..adcb4972
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter21.ipynb
@@ -0,0 +1,241 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 : Optoelectronic Devices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.1, Page No 947"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "r=3.0\n",
+ "Os=25.0\n",
+ "area=0.25\n",
+ "\n",
+ "#Calculations\n",
+ "Ea=Os/(4.0*3.14*(r)**2)\n",
+ "Tf=Ea*area\n",
+ "\n",
+ "#Results\n",
+ "print(\" total flux is %3.3fW \" %Tf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " total flux is 0.055W \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.3, Page No 951"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=9.0\n",
+ "Vf=1.6\n",
+ "Vb=7.0\n",
+ "hFE=100.0\n",
+ "Vce=0.2\n",
+ "Ic=10.0*10**-3\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(Vcc-Vf-Vce)/Ic\n",
+ "R2=680#use standard value\n",
+ "Ic=(Vcc-Vf-Vce)/R2\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vb-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %d kohm\" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 59 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.4 Page No 952"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=5.0\n",
+ "N=(3*7.0)+(1.0*2)\n",
+ "\n",
+ "#Calculations\n",
+ "It=N*10.0*10**-3\n",
+ "P=It*Vcc\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of power is %.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of power is 1.15 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.5, Page No 957"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=1.0*10**3\n",
+ "I=10.0*10**-3\n",
+ "E=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=E/I -Rc\n",
+ "R1=1.8*10**3#use standard value\n",
+ "print(\" when dark Rc=100Kohm\")\n",
+ "Rc=100*10**3\n",
+ "I=E/(R1+Rc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of I is %.2f mA\" %(I*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " when dark Rc=100Kohm\n",
+ "The value of I is 0.29 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.6 Page No 958"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vee=6.0\n",
+ "Vbe=0.7\n",
+ "Ib=200.0*10**-6\n",
+ "Vb=0.7\n",
+ "Vcc=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when cell is dark Rc=100Kohm\")\n",
+ "Rc=100.0*10**3\n",
+ "Vrc=Vee+Vbe\n",
+ "Irc=Vrc/Rc\n",
+ "Ir1=Irc+Ib\n",
+ "Vr1=Vcc-Vb\n",
+ "R1=Vr1/Ir1\n",
+ "R1=18.0*10**3#use standard value\n",
+ "print(\" when Q1 is off\")\n",
+ "Vr1=6.0\n",
+ "Vrc=6.0\n",
+ "Ir1=Vr1/R1\n",
+ "Rc=Vrc/Ir1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rc is %d kohm\" %(Rc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when cell is dark Rc=100Kohm\n",
+ " when Q1 is off\n",
+ "The value of Rc is 18 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter21_1.ipynb b/Electronic_Devices_and_Circuits/Chapter21_1.ipynb
new file mode 100755
index 00000000..adcb4972
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter21_1.ipynb
@@ -0,0 +1,241 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 : Optoelectronic Devices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.1, Page No 947"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "r=3.0\n",
+ "Os=25.0\n",
+ "area=0.25\n",
+ "\n",
+ "#Calculations\n",
+ "Ea=Os/(4.0*3.14*(r)**2)\n",
+ "Tf=Ea*area\n",
+ "\n",
+ "#Results\n",
+ "print(\" total flux is %3.3fW \" %Tf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " total flux is 0.055W \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.3, Page No 951"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=9.0\n",
+ "Vf=1.6\n",
+ "Vb=7.0\n",
+ "hFE=100.0\n",
+ "Vce=0.2\n",
+ "Ic=10.0*10**-3\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(Vcc-Vf-Vce)/Ic\n",
+ "R2=680#use standard value\n",
+ "Ic=(Vcc-Vf-Vce)/R2\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vb-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %d kohm\" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 59 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.4 Page No 952"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=5.0\n",
+ "N=(3*7.0)+(1.0*2)\n",
+ "\n",
+ "#Calculations\n",
+ "It=N*10.0*10**-3\n",
+ "P=It*Vcc\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of power is %.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of power is 1.15 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.5, Page No 957"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=1.0*10**3\n",
+ "I=10.0*10**-3\n",
+ "E=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=E/I -Rc\n",
+ "R1=1.8*10**3#use standard value\n",
+ "print(\" when dark Rc=100Kohm\")\n",
+ "Rc=100*10**3\n",
+ "I=E/(R1+Rc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of I is %.2f mA\" %(I*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " when dark Rc=100Kohm\n",
+ "The value of I is 0.29 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.6 Page No 958"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vee=6.0\n",
+ "Vbe=0.7\n",
+ "Ib=200.0*10**-6\n",
+ "Vb=0.7\n",
+ "Vcc=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when cell is dark Rc=100Kohm\")\n",
+ "Rc=100.0*10**3\n",
+ "Vrc=Vee+Vbe\n",
+ "Irc=Vrc/Rc\n",
+ "Ir1=Irc+Ib\n",
+ "Vr1=Vcc-Vb\n",
+ "R1=Vr1/Ir1\n",
+ "R1=18.0*10**3#use standard value\n",
+ "print(\" when Q1 is off\")\n",
+ "Vr1=6.0\n",
+ "Vrc=6.0\n",
+ "Ir1=Vr1/R1\n",
+ "Rc=Vrc/Ir1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rc is %d kohm\" %(Rc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when cell is dark Rc=100Kohm\n",
+ " when Q1 is off\n",
+ "The value of Rc is 18 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter21_2.ipynb b/Electronic_Devices_and_Circuits/Chapter21_2.ipynb
new file mode 100755
index 00000000..adcb4972
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter21_2.ipynb
@@ -0,0 +1,241 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 : Optoelectronic Devices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.1, Page No 947"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "r=3.0\n",
+ "Os=25.0\n",
+ "area=0.25\n",
+ "\n",
+ "#Calculations\n",
+ "Ea=Os/(4.0*3.14*(r)**2)\n",
+ "Tf=Ea*area\n",
+ "\n",
+ "#Results\n",
+ "print(\" total flux is %3.3fW \" %Tf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " total flux is 0.055W \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.3, Page No 951"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=9.0\n",
+ "Vf=1.6\n",
+ "Vb=7.0\n",
+ "hFE=100.0\n",
+ "Vce=0.2\n",
+ "Ic=10.0*10**-3\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(Vcc-Vf-Vce)/Ic\n",
+ "R2=680#use standard value\n",
+ "Ic=(Vcc-Vf-Vce)/R2\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vb-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %d kohm\" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 59 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.4 Page No 952"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=5.0\n",
+ "N=(3*7.0)+(1.0*2)\n",
+ "\n",
+ "#Calculations\n",
+ "It=N*10.0*10**-3\n",
+ "P=It*Vcc\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of power is %.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of power is 1.15 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.5, Page No 957"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=1.0*10**3\n",
+ "I=10.0*10**-3\n",
+ "E=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=E/I -Rc\n",
+ "R1=1.8*10**3#use standard value\n",
+ "print(\" when dark Rc=100Kohm\")\n",
+ "Rc=100*10**3\n",
+ "I=E/(R1+Rc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of I is %.2f mA\" %(I*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " when dark Rc=100Kohm\n",
+ "The value of I is 0.29 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21.6 Page No 958"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vee=6.0\n",
+ "Vbe=0.7\n",
+ "Ib=200.0*10**-6\n",
+ "Vb=0.7\n",
+ "Vcc=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when cell is dark Rc=100Kohm\")\n",
+ "Rc=100.0*10**3\n",
+ "Vrc=Vee+Vbe\n",
+ "Irc=Vrc/Rc\n",
+ "Ir1=Irc+Ib\n",
+ "Vr1=Vcc-Vb\n",
+ "R1=Vr1/Ir1\n",
+ "R1=18.0*10**3#use standard value\n",
+ "print(\" when Q1 is off\")\n",
+ "Vr1=6.0\n",
+ "Vrc=6.0\n",
+ "Ir1=Vr1/R1\n",
+ "Rc=Vrc/Ir1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rc is %d kohm\" %(Rc/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when cell is dark Rc=100Kohm\n",
+ " when Q1 is off\n",
+ "The value of Rc is 18 kohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter2_1.ipynb b/Electronic_Devices_and_Circuits/Chapter2_1.ipynb
new file mode 100755
index 00000000..1c97e28b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter2_1.ipynb
@@ -0,0 +1,571 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Semiconductor diodes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=100*10**-3\n",
+ "Vf=.75 #given\n",
+ "print(\"a)\")\n",
+ "print(\"forward resistance\")\n",
+ "\n",
+ "#Calculations\n",
+ "Rf=Vf/If\n",
+ "print(\"forward resistnace is %3.1fohm \" %Rf)\n",
+ "print(\"b)\")\n",
+ "Vr=50\n",
+ "Ir=100*10**-9\n",
+ "Rr=(Vr/Ir)\n",
+ "\n",
+ "#Results\n",
+ "print(\"reverse resistnace is %.1fohm \" %(Rr/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)\n",
+ "forward resistance\n",
+ "forward resistnace is 7.5ohm \n",
+ "b)\n",
+ "reverse resistnace is 500.0ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=70*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "rd=(26*10**-3)/If\n",
+ "print(\"dynamic resistance is %.2fohm \" %rd)\n",
+ "If=60*10**-3\n",
+ "Vf=.025\n",
+ "rd=Vf/If\n",
+ "\n",
+ "#Results\n",
+ "print(\"dynamic resistance is %.2fohm \" %rd)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dynamic resistance is 0.37ohm \n",
+ "dynamic resistance is 0.42ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=4.7*10**3\n",
+ "E=15.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"diode current is E=If*R1+Vf\")\n",
+ "If=((E-Vf)/R1)*10**3\n",
+ "\n",
+ "#Results\n",
+ "print(\" diode current is %.2fmA \" %If) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode current is E=If*R1+Vf\n",
+ " diode current is 3.04mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page No 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=1.5\n",
+ "Vf=0.7\n",
+ "R1=10\n",
+ "rd=.25\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"a)\")\n",
+ "If=(E-Vf)/R1\n",
+ "print(\" forward current is %0.1fmA \" %(If*1000))\n",
+ "print(\"b)\")\n",
+ "If=(E-Vf)/(R1+rd)\n",
+ "\n",
+ "#Results\n",
+ "print(\" forward current is %0.1fmA \" %(If*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)\n",
+ " forward current is 80.0mA \n",
+ "b)\n",
+ " forward current is 78.0mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=0\n",
+ "Vf=5.0\n",
+ "R1=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "E=(If*R1)+Vf\n",
+ "print(\"B)\")\n",
+ "Vf=0\n",
+ "E=5.0\n",
+ "R1=100.0\n",
+ "If=(E/R1)*1000\n",
+ "\n",
+ "#Results\n",
+ "print(\"resistance is %dmA \" %If) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B)\n",
+ "resistance is 50mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=50*10**-3\n",
+ "Vf=1.1\n",
+ "R1=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vf1=If*R1\n",
+ "E=Vf1+Vf\n",
+ "\n",
+ "#Results\n",
+ "print(\" new supply voltage is %.2fV \" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " new supply voltage is 6.10V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9, Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P1=700.0*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "If=P1/Vf\n",
+ "#at 65C\n",
+ "D=5*10**-3\n",
+ "T=65-25\n",
+ "P2=P1-D*T\n",
+ "If=P2/Vf\n",
+ "\n",
+ "#Results\n",
+ "print( \"maximum forward current at 65C is %.1fA \" %(If*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum forward current at 65C is 714.3A \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10 Page No 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vf1=0.7\n",
+ "Vf=-1.8*10**-3\n",
+ "If=26.0*10**-3\n",
+ "T=100-25\n",
+ "\n",
+ "#Calculations\n",
+ "Vf2=Vf1+(T*Vf)\n",
+ "print(\" voltage at 100C is %.3f V \" %Vf2)\n",
+ "print(\"At 25C\")\n",
+ "T1=25.0\n",
+ "rd=(26*10**-3/If)*((T1+273)/298)\n",
+ "print(\" resistance at 25 C is %.2f ohm \" %rd)\n",
+ "print(\" At 100C\")\n",
+ "T2=100.0\n",
+ "rd=(26*10**-3/If)*((T2+273)/298)\n",
+ "\n",
+ "#Results\n",
+ "print(\" resistance at 100 C is %.2fohm \" %rd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage at 100C is 0.565 V \n",
+ "At 25C\n",
+ " resistance at 25 C is 1.00 ohm \n",
+ " At 100C\n",
+ " resistance at 100 C is 1.25ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 Page No 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "If=10*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "t=70.0*10**-9\n",
+ "Cd=((t*If)/Vf)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" diffusion capacitance is %.2f nF \" %Cd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diffusion capacitance is 1.00 nF \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12 Page No 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"A\")\n",
+ "trr=10.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "tf=10.0*trr*10**9\n",
+ "print(\"minimum fall times is %d ns \" %tf)\n",
+ "print(\"B)\")\n",
+ "trr=3.0\n",
+ "tf=10*trr\n",
+ "\n",
+ "#Results\n",
+ "print(\"minimum fall times is %d ns \" %tf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\n",
+ "minimum fall times is 100 ns \n",
+ "B)\n",
+ "minimum fall times is 30 ns \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14, Page No 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Io=75.0*10**-3\n",
+ "#vertical scale of 5mA/cm \n",
+ "\n",
+ "#Calculations\n",
+ "If=Io/5*10**-3\n",
+ "R1=15/(75*10**-3)\n",
+ "P=((Io)**2)*R1\n",
+ "\n",
+ "#Results\n",
+ "print(\"Pr1 = %1.1f W \" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pr1 = 1.1 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page No 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=7.5\n",
+ "Pd=400.0*10**-3\n",
+ "D=3.2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Izm=Pd/Vz\n",
+ "print(\"current at 50C is %.1fA \" %(Izm*1000))\n",
+ "print(\"At 100C\")\n",
+ "P2=Pd-((100-50)*D)\n",
+ "print(\" power at 100C is %.3fW \" %P2)\n",
+ "Izm=P2/Vz\n",
+ "\n",
+ "#Results\n",
+ "print(\" current at 100C is %.1fA \" %(Izm*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current at 50C is 53.3A \n",
+ "At 100C\n",
+ " power at 100C is 0.240W \n",
+ " current at 100C is 32.0A \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page No 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=20.0\n",
+ "R1=620.0\n",
+ "Vz=7.5\n",
+ "\n",
+ "#Calculations\n",
+ "Vr1=E-Vz\n",
+ "Iz=Vr1/R1\n",
+ "print(\" diode current is %.1f mA \" %(Iz*1000))\n",
+ "Pd=Vz*Iz\n",
+ "\n",
+ "#Results\n",
+ "print( \"power dissipation is %.1f mW \" %(Pd*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diode current is 20.2 mA \n",
+ "power dissipation is 151.2 mW \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter2_2.ipynb b/Electronic_Devices_and_Circuits/Chapter2_2.ipynb
new file mode 100755
index 00000000..1c97e28b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter2_2.ipynb
@@ -0,0 +1,571 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Semiconductor diodes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=100*10**-3\n",
+ "Vf=.75 #given\n",
+ "print(\"a)\")\n",
+ "print(\"forward resistance\")\n",
+ "\n",
+ "#Calculations\n",
+ "Rf=Vf/If\n",
+ "print(\"forward resistnace is %3.1fohm \" %Rf)\n",
+ "print(\"b)\")\n",
+ "Vr=50\n",
+ "Ir=100*10**-9\n",
+ "Rr=(Vr/Ir)\n",
+ "\n",
+ "#Results\n",
+ "print(\"reverse resistnace is %.1fohm \" %(Rr/10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)\n",
+ "forward resistance\n",
+ "forward resistnace is 7.5ohm \n",
+ "b)\n",
+ "reverse resistnace is 500.0ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=70*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "rd=(26*10**-3)/If\n",
+ "print(\"dynamic resistance is %.2fohm \" %rd)\n",
+ "If=60*10**-3\n",
+ "Vf=.025\n",
+ "rd=Vf/If\n",
+ "\n",
+ "#Results\n",
+ "print(\"dynamic resistance is %.2fohm \" %rd)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dynamic resistance is 0.37ohm \n",
+ "dynamic resistance is 0.42ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=4.7*10**3\n",
+ "E=15.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"diode current is E=If*R1+Vf\")\n",
+ "If=((E-Vf)/R1)*10**3\n",
+ "\n",
+ "#Results\n",
+ "print(\" diode current is %.2fmA \" %If) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode current is E=If*R1+Vf\n",
+ " diode current is 3.04mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page No 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=1.5\n",
+ "Vf=0.7\n",
+ "R1=10\n",
+ "rd=.25\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"a)\")\n",
+ "If=(E-Vf)/R1\n",
+ "print(\" forward current is %0.1fmA \" %(If*1000))\n",
+ "print(\"b)\")\n",
+ "If=(E-Vf)/(R1+rd)\n",
+ "\n",
+ "#Results\n",
+ "print(\" forward current is %0.1fmA \" %(If*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)\n",
+ " forward current is 80.0mA \n",
+ "b)\n",
+ " forward current is 78.0mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=0\n",
+ "Vf=5.0\n",
+ "R1=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "E=(If*R1)+Vf\n",
+ "print(\"B)\")\n",
+ "Vf=0\n",
+ "E=5.0\n",
+ "R1=100.0\n",
+ "If=(E/R1)*1000\n",
+ "\n",
+ "#Results\n",
+ "print(\"resistance is %dmA \" %If) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B)\n",
+ "resistance is 50mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "If=50*10**-3\n",
+ "Vf=1.1\n",
+ "R1=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vf1=If*R1\n",
+ "E=Vf1+Vf\n",
+ "\n",
+ "#Results\n",
+ "print(\" new supply voltage is %.2fV \" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " new supply voltage is 6.10V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9, Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P1=700.0*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "If=P1/Vf\n",
+ "#at 65C\n",
+ "D=5*10**-3\n",
+ "T=65-25\n",
+ "P2=P1-D*T\n",
+ "If=P2/Vf\n",
+ "\n",
+ "#Results\n",
+ "print( \"maximum forward current at 65C is %.1fA \" %(If*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum forward current at 65C is 714.3A \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10 Page No 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vf1=0.7\n",
+ "Vf=-1.8*10**-3\n",
+ "If=26.0*10**-3\n",
+ "T=100-25\n",
+ "\n",
+ "#Calculations\n",
+ "Vf2=Vf1+(T*Vf)\n",
+ "print(\" voltage at 100C is %.3f V \" %Vf2)\n",
+ "print(\"At 25C\")\n",
+ "T1=25.0\n",
+ "rd=(26*10**-3/If)*((T1+273)/298)\n",
+ "print(\" resistance at 25 C is %.2f ohm \" %rd)\n",
+ "print(\" At 100C\")\n",
+ "T2=100.0\n",
+ "rd=(26*10**-3/If)*((T2+273)/298)\n",
+ "\n",
+ "#Results\n",
+ "print(\" resistance at 100 C is %.2fohm \" %rd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage at 100C is 0.565 V \n",
+ "At 25C\n",
+ " resistance at 25 C is 1.00 ohm \n",
+ " At 100C\n",
+ " resistance at 100 C is 1.25ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 Page No 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "If=10*10**-3\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "t=70.0*10**-9\n",
+ "Cd=((t*If)/Vf)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" diffusion capacitance is %.2f nF \" %Cd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diffusion capacitance is 1.00 nF \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12 Page No 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"A\")\n",
+ "trr=10.0*10**-9\n",
+ "\n",
+ "#Calculations\n",
+ "tf=10.0*trr*10**9\n",
+ "print(\"minimum fall times is %d ns \" %tf)\n",
+ "print(\"B)\")\n",
+ "trr=3.0\n",
+ "tf=10*trr\n",
+ "\n",
+ "#Results\n",
+ "print(\"minimum fall times is %d ns \" %tf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\n",
+ "minimum fall times is 100 ns \n",
+ "B)\n",
+ "minimum fall times is 30 ns \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14, Page No 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Io=75.0*10**-3\n",
+ "#vertical scale of 5mA/cm \n",
+ "\n",
+ "#Calculations\n",
+ "If=Io/5*10**-3\n",
+ "R1=15/(75*10**-3)\n",
+ "P=((Io)**2)*R1\n",
+ "\n",
+ "#Results\n",
+ "print(\"Pr1 = %1.1f W \" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pr1 = 1.1 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page No 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=7.5\n",
+ "Pd=400.0*10**-3\n",
+ "D=3.2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Izm=Pd/Vz\n",
+ "print(\"current at 50C is %.1fA \" %(Izm*1000))\n",
+ "print(\"At 100C\")\n",
+ "P2=Pd-((100-50)*D)\n",
+ "print(\" power at 100C is %.3fW \" %P2)\n",
+ "Izm=P2/Vz\n",
+ "\n",
+ "#Results\n",
+ "print(\" current at 100C is %.1fA \" %(Izm*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current at 50C is 53.3A \n",
+ "At 100C\n",
+ " power at 100C is 0.240W \n",
+ " current at 100C is 32.0A \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page No 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=20.0\n",
+ "R1=620.0\n",
+ "Vz=7.5\n",
+ "\n",
+ "#Calculations\n",
+ "Vr1=E-Vz\n",
+ "Iz=Vr1/R1\n",
+ "print(\" diode current is %.1f mA \" %(Iz*1000))\n",
+ "Pd=Vz*Iz\n",
+ "\n",
+ "#Results\n",
+ "print( \"power dissipation is %.1f mW \" %(Pd*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diode current is 20.2 mA \n",
+ "power dissipation is 151.2 mW \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter3.ipynb b/Electronic_Devices_and_Circuits/Chapter3.ipynb
new file mode 100755
index 00000000..8f8a6a3b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter3.ipynb
@@ -0,0 +1,1201 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=.7\n",
+ "Rl=500.0\n",
+ "Vi=22.0\n",
+ "Vpi=1.414*Vi\n",
+ "\n",
+ "#Calculations\n",
+ "Vpo=Vpi-Vf\n",
+ "print(\" peak vouput voltage is %3.2fV \" %Vpo)\n",
+ "Ip=Vpo/Rl\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak load current is %3.4fA \" %Ip)\n",
+ "PIV=Vpi\n",
+ "print(\"diode paek reverse voltage %3.2fV \" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " peak vouput voltage is 30.41V \n",
+ "peak load current is 0.0608A \n",
+ "diode paek reverse voltage 31.11V \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vi=30.0\n",
+ "Rl=300.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vpi=1.414*Vi\n",
+ "Vpo=Vpi-2*Vf\n",
+ "print(\" peak output voltage %.3f V \" %Vpo)\n",
+ "Ip=Vpo/Rl\n",
+ "\n",
+ "#Results\n",
+ "print(\" current bridge is %.1f mA \" %(Ip*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " peak output voltage 41.020 V \n",
+ " current bridge is 136.7 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C1=680.0*10**-6\n",
+ "Eo=28.0\n",
+ "Rl=200.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Il=Eo/Rl\n",
+ "T=1/f\n",
+ "t1=T\n",
+ "Vr=(Il*t1)/C1\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak to peak ripple voltage is %.2f V \" %Vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak to peak ripple voltage is 3.43 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "Rl=500.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr=(10*Eo)/100#10% of Eo\n",
+ "Il=Eo/Rl\n",
+ "T=1/f\n",
+ "t1=T\n",
+ "C1=((Il*t1)/Vr)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reservior capacitance is %.2f uF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reservior capacitance is 333.33 uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "f=60.0\n",
+ "Rl=500.0\n",
+ "Il=Eo/Rl\n",
+ "\n",
+ "#Calculations\n",
+ "Vr=(10.0*Eo)/100\n",
+ "print(\"10percent of Eo is %.2f V \" %Vr)\n",
+ "Eomin=Eo-0.5*Vr\n",
+ "Eomax=Eo+0.5*Vr\n",
+ "Q1=math.asin(Eomin/Eomax)\n",
+ "Q1=65\n",
+ "Q2=90-Q1\n",
+ "T=1/f\n",
+ "t2=(Q2*T)/360\n",
+ "print(\" charging time is %.2fs \" %t2)\n",
+ "t1=T-t2\n",
+ "print(\"discharging time is %.2fs \" %t1)\n",
+ "C1=((Il*t1)/Vr)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"reservior capacitance is %.2f uF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10percent of Eo is 2.00 V \n",
+ " charging time is 0.00s \n",
+ "discharging time is 0.02s \n",
+ "reservior capacitance is 310.19 uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "t1=1.16*10**-3\n",
+ "t2=15.54*10**-3\n",
+ "Vp=Eo+Vf\n",
+ "Vr=2*Vp\n",
+ "Il=40*10**-4\n",
+ "Ifrm=(Il*(t1+t2))/t2\n",
+ "Ifsm=30.0\n",
+ "Rs=Vp/Ifsm\n",
+ "\n",
+ "#Results\n",
+ "print(\" surge limiting resistance is %3.2fohm \" %Rs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " surge limiting resistance is 0.72ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No 89 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=.7\n",
+ "Eo=21.0\n",
+ "\n",
+ "#Calculations\n",
+ "Il=40*10**-3\n",
+ "Vp=115.0\n",
+ "Vs=.707*(Vf+Eo)\n",
+ "print(\" Vrms voltage is %3.3fV \" %Vs)\n",
+ "Is=3.6*Il\n",
+ "print(\" rms current is %.2f mA \" %(Is*1000))\n",
+ "Ip=(Vs*Is)/Vp\n",
+ "\n",
+ "#Results\n",
+ "print(\"primary current is %.2f mA \" %(Ip*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Vrms voltage is 15.342V \n",
+ " rms current is 144.00 mA \n",
+ "primary current is 19.21 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vr=2.0\n",
+ "T=16.7*10**-3\n",
+ "t2=1.16*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Il=40.0*10**-3#from example 3.5\n",
+ "t1=(T/2.0)-t2\n",
+ "C1=(Il*t1)/Vr\n",
+ "\n",
+ "#Results\n",
+ "print(\" resrvior capacitor is %.2f mF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " resrvior capacitor is 143.80 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vr=2.0\n",
+ "T=16.7*10**-3\n",
+ "Il=40.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t1=T/2\n",
+ "C1=(Il*t1)/Vr\n",
+ "\n",
+ "#Results\n",
+ "print(\" reservior capacitance is %.1fF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " reservior capacitance is 167.0F \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "Il=40.0*10**-3\n",
+ "t1=7.19*10**-3\n",
+ "t2=1.16*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=Eo+(2*Vf)\n",
+ "Vr=Vp\n",
+ "If=Il/2\n",
+ "Ifrm=Il*(t1+t2)/t2\n",
+ "Ifsm=30\n",
+ "Rs=Vp/Ifsm\n",
+ "\n",
+ "#Results\n",
+ "print(\"surge limiting resistance is %.3fohm \" %Rs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge limiting resistance is 0.747ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "Il=40*10**-3\n",
+ "Vp=115.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vs=0.707*(Eo+2*Vf)\n",
+ "Is=1.6*Il\n",
+ "Ip=(Vs*Is)/Vp\n",
+ "\n",
+ "#Results\n",
+ "print(\" supply current is %.1f mA \" %(Ip*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " supply current is 8.8 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12, Page No 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "Il=40.0*10**-3\n",
+ "R1=22.0\n",
+ "Vr=2.0\n",
+ "C1=150*10**-6\n",
+ "C2=C1\n",
+ "fr=120\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=Eo-Il*R1\n",
+ "vi=Vr/3.14\n",
+ "Xc2=1/(2*3.14*fr*C2)\n",
+ "vo=(vi*Xc2)/math.sqrt((R1**2) + (Xc2**2))\n",
+ "print(\" dc output voltage is %.3fV \" %vo)\n",
+ "Vpp=2*vo\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak to peak voltage is %.1fV \" %(Vpp*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " dc output voltage is 0.238V \n",
+ " peak to peak voltage is 475.3V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13, Page No 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C1=150*10**-6\n",
+ "C2=C1\n",
+ "vi=4.0\n",
+ "vo=1.0\n",
+ "f=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "Xc2=8.84 #FROM EXAMPLE 3.12\n",
+ "Xl=Xc2*((vi/vo)+1)\n",
+ "L1=Xl/(2*3.14*f)\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable value of L1 is %.3fH \" %(L1*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable value of L1 is 58.652H \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14, Page No 101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Edc=20.0\n",
+ "vo=0.24\n",
+ "Vo=20.0\n",
+ "Il=40*10**-3\n",
+ "fr=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "Eomax=(3.14*Edc)/2\n",
+ "Epeak=(4*Eomax)/(3*3.14)\n",
+ "vi=Epeak\n",
+ "Rl=Vo/Il\n",
+ "Xlc=(2*Rl)/3\n",
+ "Lc=Xlc/(2*3.14*fr)\n",
+ "L=1.25*Lc\n",
+ "Xl=2*3.14*fr*L\n",
+ "Xc=Xl/((vi/vo)+1)\n",
+ "C1=1/(2*3.14*fr*Xc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of c1 = %.2f mF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of c1 = 180.11 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "E0=20-19.7 #load effect\n",
+ "\n",
+ "#Calculations\n",
+ "loadregulation =(E0*100)/Eo#percentage\n",
+ "sourceeffect=20.2-20\n",
+ "lineregulation =(sourceeffect*100)/Eo\n",
+ "\n",
+ "#Results\n",
+ "print(\"Line regulation = %.1f percent \" %lineregulation)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line regulation = 1.0 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=9.1\n",
+ "Izt=20*10**-3\n",
+ "Es=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(Es-Vz)/Izt\n",
+ "Pr1=(Izt**2)*R1\n",
+ "Es=27\n",
+ "Iz=(Es-Vz)/R1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The circuit current is %.2f mA \" %(Iz*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The circuit current is 17.13 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=6.2\n",
+ "Pd=400.0*10**-3\n",
+ "Es=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "Izm=Pd/Vz\n",
+ "R1=(Es-Vz)/Izm\n",
+ "Pr1=(Izm**2)*R1\n",
+ "Izmin=5.0*10**-3\n",
+ "Izmax=Izm-Izmin\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum current is %3.2f mA \" %(Izmax*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum current is 59.52 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Zz=7.0\n",
+ "Es=16.0\n",
+ "Vo=6.2\n",
+ "Il=59.5*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "es=(10*Es)/100.0 #10% os Es\n",
+ "Rl=Vo/Il\n",
+ "print(\"es*Zz||Rl/R1+Zz||Rl\")\n",
+ "V0=es*((Zz*Rl)/(Zz+Rl))/(R1+((Zz*Rl)/(Zz+Rl)))\n",
+ "lineregulation=(V0*100)/Vo\n",
+ "print(\"line regulation voltage is %3.3fpercentage \" %lineregulation)\n",
+ "V0=Il*((Zz*R1)/(Zz+R1))\n",
+ "loadregulation=(V0*100)/Vo\n",
+ "print(\"loadregulation voltage is %3.3fpercentage \" %loadregulation)\n",
+ "Rr=((Zz*Rl)/(Zz+Rl))/(R1+(Zz*Rl)/(Zz+Rl))\n",
+ "\n",
+ "#Results\n",
+ "print(\"ripple rejection is %3.2f X 10^-2 \" %(Rr*10**2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "es*Zz||Rl/R1+Zz||Rl\n",
+ "line regulation voltage is 1.068percentage \n",
+ "loadregulation voltage is 6.422percentage \n",
+ "ripple rejection is 4.14 X 10^-2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "E=9.0\n",
+ "Vf=.7\n",
+ "\n",
+ "#Calculations\n",
+ "If=1.0*10**-3\n",
+ "Vo=E-Vf\n",
+ "R1=Vo/If\n",
+ "Vr=E\n",
+ "\n",
+ "#Results\n",
+ "print(\"diode forward voltage is %3.2fohm \" %Vr)\n",
+ "print(\"diode forward current is %3.1fA \" %(If*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode forward voltage is 9.00ohm \n",
+ "diode forward current is 1.0A \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=5.0\n",
+ "Vo=4.5\n",
+ "Il=2.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(E-Vo)/Il\n",
+ "print(\" suitable resistance is %dohm \" %R1)\n",
+ "Vr=E\n",
+ "print(\"when diode is forward baised\")\n",
+ "If=(E-Vf)/R1\n",
+ "\n",
+ "#Results\n",
+ "print(\" diode forward current is %3.2fA \" %(If*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable resistance is 250ohm \n",
+ "when diode is forward baised\n",
+ " diode forward current is 17.20A \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vo=2.7\n",
+ "Vf=.7\n",
+ "E=9.0\n",
+ "If=1*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Il=If\n",
+ "Vb=Vo-Vf\n",
+ "R1=(E-Vo)/(Il+If)\n",
+ "\n",
+ "#Results\n",
+ "print(\"resistance is %.2f kOhm \" %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance is 3.15 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vo=5.0\n",
+ "Vf=0.7\n",
+ "Iz=5.0\n",
+ "Il=1.0\n",
+ "E=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vz=Vo-Vf\n",
+ "R1=(E-Vo)/(Il+Iz)\n",
+ "\n",
+ "#Results\n",
+ "print(\"zener diode resistance si %.2f ohm \" %R1)\n",
+ "#Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zener diode resistance si 2.50 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=10.0\n",
+ "R1=56.0*10**3\n",
+ "f=1000.0\n",
+ "C1=1.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=2*E\n",
+ "Ic=Vo/R1\n",
+ "t=1/(2*f)\n",
+ "Vc=(Ic*t)/C1\n",
+ "\n",
+ "#Results\n",
+ "print(\" tilt output voltage is %3.2fV \" %(Vc*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " tilt output voltage is 178.57V \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24, Page No 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=500.0\n",
+ "Rs=600.0\n",
+ "E=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "t=1.0/(2*f)\n",
+ "PW=t\n",
+ "C1=PW/Rs\n",
+ "Vo=2.0*E\n",
+ "Vc=(1*Vo)/100#1% of the Vo\n",
+ "Ic=(Vc*C1)/t\n",
+ "R1=(2*E)/(Ic*1000)\n",
+ "\n",
+ "#Results\n",
+ "print(\"suitable value of R1 is %.2f ohm \" %R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "suitable value of R1 is 60.00 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.25, Page No 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=0.7\n",
+ "E=6.0\n",
+ "Vb1=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vc=Vb1-Vf-(-E)\n",
+ "Vo=Vb1-Vf\n",
+ "print(\"when input is -E\")\n",
+ "Vo=E+Vc\n",
+ "Vo=Vb1+Vf\n",
+ "print(\"Capicitor voltage is %.2f ohm \" %Vc)\n",
+ "print(\"when input is +E\")\n",
+ "Vo=E+(Vc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Capicitor voltage is %.2f ohm \" %Vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when input is -E\n",
+ "Capicitor voltage is 8.30 ohm \n",
+ "when input is +E\n",
+ "Capicitor voltage is 14.30 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.26, Page No 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=12.0\n",
+ "Vf=0.7\n",
+ "Rl=47*10**3\n",
+ "f=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=2*(E-Vf)\n",
+ "Il=Vo/Rl\n",
+ "print(\" capacitor discharge time\")\n",
+ "t=1.0/(2*f)\n",
+ "print(\" for 1% ripple allow .5% due to discharge of C2 %.5%due to discharge of C1\")\n",
+ "Vc=(.5*Vo)/100\n",
+ "C2=((Il*t)/Vc)*10**6\n",
+ "print(\" value of capacitor C2 is %3.2fuF \" %C2)\n",
+ "C1=2*C2\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitor C1 is %3.2fuF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " capacitor discharge time\n",
+ " for 1% ripple allow .5% due to discharge of C2 %.5%due to discharge of C1\n",
+ " value of capacitor C2 is 0.43uF \n",
+ "value of capacitor C1 is 0.85uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.27, Page No 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=5.0\n",
+ "Vf=.7\n",
+ "R1=3.3*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"A)\")\n",
+ "Ir1=(Vcc-Vf)/R1\n",
+ "print(\"diode forward current when all input are low is %3.4fA \" %Ir1)\n",
+ "print(\"for each diode\")\n",
+ "If=Ir1/3\n",
+ "print(\"B)\")\n",
+ "If2=Ir1/2\n",
+ "If3=If2\n",
+ "print(\" forward current when input A is high is %3.5fA \" %If3)\n",
+ "print(\"C)\")\n",
+ "If3=Ir1\n",
+ "\n",
+ "#Results\n",
+ "print(\" forward current when input A and B are high and C is low %3.2fA \" %(If3*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A)\n",
+ "diode forward current when all input are low is 0.0013A \n",
+ "for each diode\n",
+ "B)\n",
+ " forward current when input A is high is 0.00065A \n",
+ "C)\n",
+ " forward current when input A and B are high and C is low 1.30A \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter3_1.ipynb b/Electronic_Devices_and_Circuits/Chapter3_1.ipynb
new file mode 100755
index 00000000..8f8a6a3b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter3_1.ipynb
@@ -0,0 +1,1201 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=.7\n",
+ "Rl=500.0\n",
+ "Vi=22.0\n",
+ "Vpi=1.414*Vi\n",
+ "\n",
+ "#Calculations\n",
+ "Vpo=Vpi-Vf\n",
+ "print(\" peak vouput voltage is %3.2fV \" %Vpo)\n",
+ "Ip=Vpo/Rl\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak load current is %3.4fA \" %Ip)\n",
+ "PIV=Vpi\n",
+ "print(\"diode paek reverse voltage %3.2fV \" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " peak vouput voltage is 30.41V \n",
+ "peak load current is 0.0608A \n",
+ "diode paek reverse voltage 31.11V \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vi=30.0\n",
+ "Rl=300.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vpi=1.414*Vi\n",
+ "Vpo=Vpi-2*Vf\n",
+ "print(\" peak output voltage %.3f V \" %Vpo)\n",
+ "Ip=Vpo/Rl\n",
+ "\n",
+ "#Results\n",
+ "print(\" current bridge is %.1f mA \" %(Ip*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " peak output voltage 41.020 V \n",
+ " current bridge is 136.7 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C1=680.0*10**-6\n",
+ "Eo=28.0\n",
+ "Rl=200.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Il=Eo/Rl\n",
+ "T=1/f\n",
+ "t1=T\n",
+ "Vr=(Il*t1)/C1\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak to peak ripple voltage is %.2f V \" %Vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak to peak ripple voltage is 3.43 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "Rl=500.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr=(10*Eo)/100#10% of Eo\n",
+ "Il=Eo/Rl\n",
+ "T=1/f\n",
+ "t1=T\n",
+ "C1=((Il*t1)/Vr)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reservior capacitance is %.2f uF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reservior capacitance is 333.33 uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "f=60.0\n",
+ "Rl=500.0\n",
+ "Il=Eo/Rl\n",
+ "\n",
+ "#Calculations\n",
+ "Vr=(10.0*Eo)/100\n",
+ "print(\"10percent of Eo is %.2f V \" %Vr)\n",
+ "Eomin=Eo-0.5*Vr\n",
+ "Eomax=Eo+0.5*Vr\n",
+ "Q1=math.asin(Eomin/Eomax)\n",
+ "Q1=65\n",
+ "Q2=90-Q1\n",
+ "T=1/f\n",
+ "t2=(Q2*T)/360\n",
+ "print(\" charging time is %.2fs \" %t2)\n",
+ "t1=T-t2\n",
+ "print(\"discharging time is %.2fs \" %t1)\n",
+ "C1=((Il*t1)/Vr)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"reservior capacitance is %.2f uF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10percent of Eo is 2.00 V \n",
+ " charging time is 0.00s \n",
+ "discharging time is 0.02s \n",
+ "reservior capacitance is 310.19 uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "t1=1.16*10**-3\n",
+ "t2=15.54*10**-3\n",
+ "Vp=Eo+Vf\n",
+ "Vr=2*Vp\n",
+ "Il=40*10**-4\n",
+ "Ifrm=(Il*(t1+t2))/t2\n",
+ "Ifsm=30.0\n",
+ "Rs=Vp/Ifsm\n",
+ "\n",
+ "#Results\n",
+ "print(\" surge limiting resistance is %3.2fohm \" %Rs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " surge limiting resistance is 0.72ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No 89 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=.7\n",
+ "Eo=21.0\n",
+ "\n",
+ "#Calculations\n",
+ "Il=40*10**-3\n",
+ "Vp=115.0\n",
+ "Vs=.707*(Vf+Eo)\n",
+ "print(\" Vrms voltage is %3.3fV \" %Vs)\n",
+ "Is=3.6*Il\n",
+ "print(\" rms current is %.2f mA \" %(Is*1000))\n",
+ "Ip=(Vs*Is)/Vp\n",
+ "\n",
+ "#Results\n",
+ "print(\"primary current is %.2f mA \" %(Ip*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Vrms voltage is 15.342V \n",
+ " rms current is 144.00 mA \n",
+ "primary current is 19.21 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vr=2.0\n",
+ "T=16.7*10**-3\n",
+ "t2=1.16*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Il=40.0*10**-3#from example 3.5\n",
+ "t1=(T/2.0)-t2\n",
+ "C1=(Il*t1)/Vr\n",
+ "\n",
+ "#Results\n",
+ "print(\" resrvior capacitor is %.2f mF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " resrvior capacitor is 143.80 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vr=2.0\n",
+ "T=16.7*10**-3\n",
+ "Il=40.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t1=T/2\n",
+ "C1=(Il*t1)/Vr\n",
+ "\n",
+ "#Results\n",
+ "print(\" reservior capacitance is %.1fF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " reservior capacitance is 167.0F \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "Il=40.0*10**-3\n",
+ "t1=7.19*10**-3\n",
+ "t2=1.16*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=Eo+(2*Vf)\n",
+ "Vr=Vp\n",
+ "If=Il/2\n",
+ "Ifrm=Il*(t1+t2)/t2\n",
+ "Ifsm=30\n",
+ "Rs=Vp/Ifsm\n",
+ "\n",
+ "#Results\n",
+ "print(\"surge limiting resistance is %.3fohm \" %Rs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge limiting resistance is 0.747ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "Il=40*10**-3\n",
+ "Vp=115.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vs=0.707*(Eo+2*Vf)\n",
+ "Is=1.6*Il\n",
+ "Ip=(Vs*Is)/Vp\n",
+ "\n",
+ "#Results\n",
+ "print(\" supply current is %.1f mA \" %(Ip*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " supply current is 8.8 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12, Page No 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "Il=40.0*10**-3\n",
+ "R1=22.0\n",
+ "Vr=2.0\n",
+ "C1=150*10**-6\n",
+ "C2=C1\n",
+ "fr=120\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=Eo-Il*R1\n",
+ "vi=Vr/3.14\n",
+ "Xc2=1/(2*3.14*fr*C2)\n",
+ "vo=(vi*Xc2)/math.sqrt((R1**2) + (Xc2**2))\n",
+ "print(\" dc output voltage is %.3fV \" %vo)\n",
+ "Vpp=2*vo\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak to peak voltage is %.1fV \" %(Vpp*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " dc output voltage is 0.238V \n",
+ " peak to peak voltage is 475.3V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13, Page No 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C1=150*10**-6\n",
+ "C2=C1\n",
+ "vi=4.0\n",
+ "vo=1.0\n",
+ "f=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "Xc2=8.84 #FROM EXAMPLE 3.12\n",
+ "Xl=Xc2*((vi/vo)+1)\n",
+ "L1=Xl/(2*3.14*f)\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable value of L1 is %.3fH \" %(L1*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable value of L1 is 58.652H \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14, Page No 101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Edc=20.0\n",
+ "vo=0.24\n",
+ "Vo=20.0\n",
+ "Il=40*10**-3\n",
+ "fr=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "Eomax=(3.14*Edc)/2\n",
+ "Epeak=(4*Eomax)/(3*3.14)\n",
+ "vi=Epeak\n",
+ "Rl=Vo/Il\n",
+ "Xlc=(2*Rl)/3\n",
+ "Lc=Xlc/(2*3.14*fr)\n",
+ "L=1.25*Lc\n",
+ "Xl=2*3.14*fr*L\n",
+ "Xc=Xl/((vi/vo)+1)\n",
+ "C1=1/(2*3.14*fr*Xc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of c1 = %.2f mF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of c1 = 180.11 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "E0=20-19.7 #load effect\n",
+ "\n",
+ "#Calculations\n",
+ "loadregulation =(E0*100)/Eo#percentage\n",
+ "sourceeffect=20.2-20\n",
+ "lineregulation =(sourceeffect*100)/Eo\n",
+ "\n",
+ "#Results\n",
+ "print(\"Line regulation = %.1f percent \" %lineregulation)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line regulation = 1.0 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=9.1\n",
+ "Izt=20*10**-3\n",
+ "Es=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(Es-Vz)/Izt\n",
+ "Pr1=(Izt**2)*R1\n",
+ "Es=27\n",
+ "Iz=(Es-Vz)/R1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The circuit current is %.2f mA \" %(Iz*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The circuit current is 17.13 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=6.2\n",
+ "Pd=400.0*10**-3\n",
+ "Es=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "Izm=Pd/Vz\n",
+ "R1=(Es-Vz)/Izm\n",
+ "Pr1=(Izm**2)*R1\n",
+ "Izmin=5.0*10**-3\n",
+ "Izmax=Izm-Izmin\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum current is %3.2f mA \" %(Izmax*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum current is 59.52 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Zz=7.0\n",
+ "Es=16.0\n",
+ "Vo=6.2\n",
+ "Il=59.5*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "es=(10*Es)/100.0 #10% os Es\n",
+ "Rl=Vo/Il\n",
+ "print(\"es*Zz||Rl/R1+Zz||Rl\")\n",
+ "V0=es*((Zz*Rl)/(Zz+Rl))/(R1+((Zz*Rl)/(Zz+Rl)))\n",
+ "lineregulation=(V0*100)/Vo\n",
+ "print(\"line regulation voltage is %3.3fpercentage \" %lineregulation)\n",
+ "V0=Il*((Zz*R1)/(Zz+R1))\n",
+ "loadregulation=(V0*100)/Vo\n",
+ "print(\"loadregulation voltage is %3.3fpercentage \" %loadregulation)\n",
+ "Rr=((Zz*Rl)/(Zz+Rl))/(R1+(Zz*Rl)/(Zz+Rl))\n",
+ "\n",
+ "#Results\n",
+ "print(\"ripple rejection is %3.2f X 10^-2 \" %(Rr*10**2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "es*Zz||Rl/R1+Zz||Rl\n",
+ "line regulation voltage is 1.068percentage \n",
+ "loadregulation voltage is 6.422percentage \n",
+ "ripple rejection is 4.14 X 10^-2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "E=9.0\n",
+ "Vf=.7\n",
+ "\n",
+ "#Calculations\n",
+ "If=1.0*10**-3\n",
+ "Vo=E-Vf\n",
+ "R1=Vo/If\n",
+ "Vr=E\n",
+ "\n",
+ "#Results\n",
+ "print(\"diode forward voltage is %3.2fohm \" %Vr)\n",
+ "print(\"diode forward current is %3.1fA \" %(If*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode forward voltage is 9.00ohm \n",
+ "diode forward current is 1.0A \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=5.0\n",
+ "Vo=4.5\n",
+ "Il=2.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(E-Vo)/Il\n",
+ "print(\" suitable resistance is %dohm \" %R1)\n",
+ "Vr=E\n",
+ "print(\"when diode is forward baised\")\n",
+ "If=(E-Vf)/R1\n",
+ "\n",
+ "#Results\n",
+ "print(\" diode forward current is %3.2fA \" %(If*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable resistance is 250ohm \n",
+ "when diode is forward baised\n",
+ " diode forward current is 17.20A \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vo=2.7\n",
+ "Vf=.7\n",
+ "E=9.0\n",
+ "If=1*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Il=If\n",
+ "Vb=Vo-Vf\n",
+ "R1=(E-Vo)/(Il+If)\n",
+ "\n",
+ "#Results\n",
+ "print(\"resistance is %.2f kOhm \" %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance is 3.15 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vo=5.0\n",
+ "Vf=0.7\n",
+ "Iz=5.0\n",
+ "Il=1.0\n",
+ "E=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vz=Vo-Vf\n",
+ "R1=(E-Vo)/(Il+Iz)\n",
+ "\n",
+ "#Results\n",
+ "print(\"zener diode resistance si %.2f ohm \" %R1)\n",
+ "#Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zener diode resistance si 2.50 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=10.0\n",
+ "R1=56.0*10**3\n",
+ "f=1000.0\n",
+ "C1=1.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=2*E\n",
+ "Ic=Vo/R1\n",
+ "t=1/(2*f)\n",
+ "Vc=(Ic*t)/C1\n",
+ "\n",
+ "#Results\n",
+ "print(\" tilt output voltage is %3.2fV \" %(Vc*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " tilt output voltage is 178.57V \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24, Page No 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=500.0\n",
+ "Rs=600.0\n",
+ "E=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "t=1.0/(2*f)\n",
+ "PW=t\n",
+ "C1=PW/Rs\n",
+ "Vo=2.0*E\n",
+ "Vc=(1*Vo)/100#1% of the Vo\n",
+ "Ic=(Vc*C1)/t\n",
+ "R1=(2*E)/(Ic*1000)\n",
+ "\n",
+ "#Results\n",
+ "print(\"suitable value of R1 is %.2f ohm \" %R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "suitable value of R1 is 60.00 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.25, Page No 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=0.7\n",
+ "E=6.0\n",
+ "Vb1=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vc=Vb1-Vf-(-E)\n",
+ "Vo=Vb1-Vf\n",
+ "print(\"when input is -E\")\n",
+ "Vo=E+Vc\n",
+ "Vo=Vb1+Vf\n",
+ "print(\"Capicitor voltage is %.2f ohm \" %Vc)\n",
+ "print(\"when input is +E\")\n",
+ "Vo=E+(Vc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Capicitor voltage is %.2f ohm \" %Vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when input is -E\n",
+ "Capicitor voltage is 8.30 ohm \n",
+ "when input is +E\n",
+ "Capicitor voltage is 14.30 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.26, Page No 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=12.0\n",
+ "Vf=0.7\n",
+ "Rl=47*10**3\n",
+ "f=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=2*(E-Vf)\n",
+ "Il=Vo/Rl\n",
+ "print(\" capacitor discharge time\")\n",
+ "t=1.0/(2*f)\n",
+ "print(\" for 1% ripple allow .5% due to discharge of C2 %.5%due to discharge of C1\")\n",
+ "Vc=(.5*Vo)/100\n",
+ "C2=((Il*t)/Vc)*10**6\n",
+ "print(\" value of capacitor C2 is %3.2fuF \" %C2)\n",
+ "C1=2*C2\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitor C1 is %3.2fuF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " capacitor discharge time\n",
+ " for 1% ripple allow .5% due to discharge of C2 %.5%due to discharge of C1\n",
+ " value of capacitor C2 is 0.43uF \n",
+ "value of capacitor C1 is 0.85uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.27, Page No 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=5.0\n",
+ "Vf=.7\n",
+ "R1=3.3*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"A)\")\n",
+ "Ir1=(Vcc-Vf)/R1\n",
+ "print(\"diode forward current when all input are low is %3.4fA \" %Ir1)\n",
+ "print(\"for each diode\")\n",
+ "If=Ir1/3\n",
+ "print(\"B)\")\n",
+ "If2=Ir1/2\n",
+ "If3=If2\n",
+ "print(\" forward current when input A is high is %3.5fA \" %If3)\n",
+ "print(\"C)\")\n",
+ "If3=Ir1\n",
+ "\n",
+ "#Results\n",
+ "print(\" forward current when input A and B are high and C is low %3.2fA \" %(If3*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A)\n",
+ "diode forward current when all input are low is 0.0013A \n",
+ "for each diode\n",
+ "B)\n",
+ " forward current when input A is high is 0.00065A \n",
+ "C)\n",
+ " forward current when input A and B are high and C is low 1.30A \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter3_2.ipynb b/Electronic_Devices_and_Circuits/Chapter3_2.ipynb
new file mode 100755
index 00000000..8f8a6a3b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter3_2.ipynb
@@ -0,0 +1,1201 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=.7\n",
+ "Rl=500.0\n",
+ "Vi=22.0\n",
+ "Vpi=1.414*Vi\n",
+ "\n",
+ "#Calculations\n",
+ "Vpo=Vpi-Vf\n",
+ "print(\" peak vouput voltage is %3.2fV \" %Vpo)\n",
+ "Ip=Vpo/Rl\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak load current is %3.4fA \" %Ip)\n",
+ "PIV=Vpi\n",
+ "print(\"diode paek reverse voltage %3.2fV \" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " peak vouput voltage is 30.41V \n",
+ "peak load current is 0.0608A \n",
+ "diode paek reverse voltage 31.11V \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vi=30.0\n",
+ "Rl=300.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vpi=1.414*Vi\n",
+ "Vpo=Vpi-2*Vf\n",
+ "print(\" peak output voltage %.3f V \" %Vpo)\n",
+ "Ip=Vpo/Rl\n",
+ "\n",
+ "#Results\n",
+ "print(\" current bridge is %.1f mA \" %(Ip*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " peak output voltage 41.020 V \n",
+ " current bridge is 136.7 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C1=680.0*10**-6\n",
+ "Eo=28.0\n",
+ "Rl=200.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Il=Eo/Rl\n",
+ "T=1/f\n",
+ "t1=T\n",
+ "Vr=(Il*t1)/C1\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak to peak ripple voltage is %.2f V \" %Vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak to peak ripple voltage is 3.43 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "Rl=500.0\n",
+ "f=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vr=(10*Eo)/100#10% of Eo\n",
+ "Il=Eo/Rl\n",
+ "T=1/f\n",
+ "t1=T\n",
+ "C1=((Il*t1)/Vr)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reservior capacitance is %.2f uF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reservior capacitance is 333.33 uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "f=60.0\n",
+ "Rl=500.0\n",
+ "Il=Eo/Rl\n",
+ "\n",
+ "#Calculations\n",
+ "Vr=(10.0*Eo)/100\n",
+ "print(\"10percent of Eo is %.2f V \" %Vr)\n",
+ "Eomin=Eo-0.5*Vr\n",
+ "Eomax=Eo+0.5*Vr\n",
+ "Q1=math.asin(Eomin/Eomax)\n",
+ "Q1=65\n",
+ "Q2=90-Q1\n",
+ "T=1/f\n",
+ "t2=(Q2*T)/360\n",
+ "print(\" charging time is %.2fs \" %t2)\n",
+ "t1=T-t2\n",
+ "print(\"discharging time is %.2fs \" %t1)\n",
+ "C1=((Il*t1)/Vr)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"reservior capacitance is %.2f uF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10percent of Eo is 2.00 V \n",
+ " charging time is 0.00s \n",
+ "discharging time is 0.02s \n",
+ "reservior capacitance is 310.19 uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "t1=1.16*10**-3\n",
+ "t2=15.54*10**-3\n",
+ "Vp=Eo+Vf\n",
+ "Vr=2*Vp\n",
+ "Il=40*10**-4\n",
+ "Ifrm=(Il*(t1+t2))/t2\n",
+ "Ifsm=30.0\n",
+ "Rs=Vp/Ifsm\n",
+ "\n",
+ "#Results\n",
+ "print(\" surge limiting resistance is %3.2fohm \" %Rs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " surge limiting resistance is 0.72ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No 89 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=.7\n",
+ "Eo=21.0\n",
+ "\n",
+ "#Calculations\n",
+ "Il=40*10**-3\n",
+ "Vp=115.0\n",
+ "Vs=.707*(Vf+Eo)\n",
+ "print(\" Vrms voltage is %3.3fV \" %Vs)\n",
+ "Is=3.6*Il\n",
+ "print(\" rms current is %.2f mA \" %(Is*1000))\n",
+ "Ip=(Vs*Is)/Vp\n",
+ "\n",
+ "#Results\n",
+ "print(\"primary current is %.2f mA \" %(Ip*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Vrms voltage is 15.342V \n",
+ " rms current is 144.00 mA \n",
+ "primary current is 19.21 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vr=2.0\n",
+ "T=16.7*10**-3\n",
+ "t2=1.16*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Il=40.0*10**-3#from example 3.5\n",
+ "t1=(T/2.0)-t2\n",
+ "C1=(Il*t1)/Vr\n",
+ "\n",
+ "#Results\n",
+ "print(\" resrvior capacitor is %.2f mF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " resrvior capacitor is 143.80 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vr=2.0\n",
+ "T=16.7*10**-3\n",
+ "Il=40.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t1=T/2\n",
+ "C1=(Il*t1)/Vr\n",
+ "\n",
+ "#Results\n",
+ "print(\" reservior capacitance is %.1fF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " reservior capacitance is 167.0F \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "Il=40.0*10**-3\n",
+ "t1=7.19*10**-3\n",
+ "t2=1.16*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Vp=Eo+(2*Vf)\n",
+ "Vr=Vp\n",
+ "If=Il/2\n",
+ "Ifrm=Il*(t1+t2)/t2\n",
+ "Ifsm=30\n",
+ "Rs=Vp/Ifsm\n",
+ "\n",
+ "#Results\n",
+ "print(\"surge limiting resistance is %.3fohm \" %Rs)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge limiting resistance is 0.747ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Eo=21.0\n",
+ "Vf=0.7\n",
+ "Il=40*10**-3\n",
+ "Vp=115.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vs=0.707*(Eo+2*Vf)\n",
+ "Is=1.6*Il\n",
+ "Ip=(Vs*Is)/Vp\n",
+ "\n",
+ "#Results\n",
+ "print(\" supply current is %.1f mA \" %(Ip*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " supply current is 8.8 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12, Page No 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "Il=40.0*10**-3\n",
+ "R1=22.0\n",
+ "Vr=2.0\n",
+ "C1=150*10**-6\n",
+ "C2=C1\n",
+ "fr=120\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=Eo-Il*R1\n",
+ "vi=Vr/3.14\n",
+ "Xc2=1/(2*3.14*fr*C2)\n",
+ "vo=(vi*Xc2)/math.sqrt((R1**2) + (Xc2**2))\n",
+ "print(\" dc output voltage is %.3fV \" %vo)\n",
+ "Vpp=2*vo\n",
+ "\n",
+ "#Results\n",
+ "print(\" peak to peak voltage is %.1fV \" %(Vpp*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " dc output voltage is 0.238V \n",
+ " peak to peak voltage is 475.3V \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13, Page No 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C1=150*10**-6\n",
+ "C2=C1\n",
+ "vi=4.0\n",
+ "vo=1.0\n",
+ "f=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "Xc2=8.84 #FROM EXAMPLE 3.12\n",
+ "Xl=Xc2*((vi/vo)+1)\n",
+ "L1=Xl/(2*3.14*f)\n",
+ "\n",
+ "#Results\n",
+ "print(\" suitable value of L1 is %.3fH \" %(L1*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable value of L1 is 58.652H \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14, Page No 101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Edc=20.0\n",
+ "vo=0.24\n",
+ "Vo=20.0\n",
+ "Il=40*10**-3\n",
+ "fr=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "Eomax=(3.14*Edc)/2\n",
+ "Epeak=(4*Eomax)/(3*3.14)\n",
+ "vi=Epeak\n",
+ "Rl=Vo/Il\n",
+ "Xlc=(2*Rl)/3\n",
+ "Lc=Xlc/(2*3.14*fr)\n",
+ "L=1.25*Lc\n",
+ "Xl=2*3.14*fr*L\n",
+ "Xc=Xl/((vi/vo)+1)\n",
+ "C1=1/(2*3.14*fr*Xc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of c1 = %.2f mF \" %(C1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of c1 = 180.11 mF \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Eo=20.0\n",
+ "E0=20-19.7 #load effect\n",
+ "\n",
+ "#Calculations\n",
+ "loadregulation =(E0*100)/Eo#percentage\n",
+ "sourceeffect=20.2-20\n",
+ "lineregulation =(sourceeffect*100)/Eo\n",
+ "\n",
+ "#Results\n",
+ "print(\"Line regulation = %.1f percent \" %lineregulation)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line regulation = 1.0 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=9.1\n",
+ "Izt=20*10**-3\n",
+ "Es=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(Es-Vz)/Izt\n",
+ "Pr1=(Izt**2)*R1\n",
+ "Es=27\n",
+ "Iz=(Es-Vz)/R1\n",
+ "\n",
+ "#Results\n",
+ "print(\"The circuit current is %.2f mA \" %(Iz*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The circuit current is 17.13 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vz=6.2\n",
+ "Pd=400.0*10**-3\n",
+ "Es=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "Izm=Pd/Vz\n",
+ "R1=(Es-Vz)/Izm\n",
+ "Pr1=(Izm**2)*R1\n",
+ "Izmin=5.0*10**-3\n",
+ "Izmax=Izm-Izmin\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum current is %3.2f mA \" %(Izmax*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum current is 59.52 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Zz=7.0\n",
+ "Es=16.0\n",
+ "Vo=6.2\n",
+ "Il=59.5*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "es=(10*Es)/100.0 #10% os Es\n",
+ "Rl=Vo/Il\n",
+ "print(\"es*Zz||Rl/R1+Zz||Rl\")\n",
+ "V0=es*((Zz*Rl)/(Zz+Rl))/(R1+((Zz*Rl)/(Zz+Rl)))\n",
+ "lineregulation=(V0*100)/Vo\n",
+ "print(\"line regulation voltage is %3.3fpercentage \" %lineregulation)\n",
+ "V0=Il*((Zz*R1)/(Zz+R1))\n",
+ "loadregulation=(V0*100)/Vo\n",
+ "print(\"loadregulation voltage is %3.3fpercentage \" %loadregulation)\n",
+ "Rr=((Zz*Rl)/(Zz+Rl))/(R1+(Zz*Rl)/(Zz+Rl))\n",
+ "\n",
+ "#Results\n",
+ "print(\"ripple rejection is %3.2f X 10^-2 \" %(Rr*10**2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "es*Zz||Rl/R1+Zz||Rl\n",
+ "line regulation voltage is 1.068percentage \n",
+ "loadregulation voltage is 6.422percentage \n",
+ "ripple rejection is 4.14 X 10^-2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "E=9.0\n",
+ "Vf=.7\n",
+ "\n",
+ "#Calculations\n",
+ "If=1.0*10**-3\n",
+ "Vo=E-Vf\n",
+ "R1=Vo/If\n",
+ "Vr=E\n",
+ "\n",
+ "#Results\n",
+ "print(\"diode forward voltage is %3.2fohm \" %Vr)\n",
+ "print(\"diode forward current is %3.1fA \" %(If*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diode forward voltage is 9.00ohm \n",
+ "diode forward current is 1.0A \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=5.0\n",
+ "Vo=4.5\n",
+ "Il=2.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "R1=(E-Vo)/Il\n",
+ "print(\" suitable resistance is %dohm \" %R1)\n",
+ "Vr=E\n",
+ "print(\"when diode is forward baised\")\n",
+ "If=(E-Vf)/R1\n",
+ "\n",
+ "#Results\n",
+ "print(\" diode forward current is %3.2fA \" %(If*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable resistance is 250ohm \n",
+ "when diode is forward baised\n",
+ " diode forward current is 17.20A \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vo=2.7\n",
+ "Vf=.7\n",
+ "E=9.0\n",
+ "If=1*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "Il=If\n",
+ "Vb=Vo-Vf\n",
+ "R1=(E-Vo)/(Il+If)\n",
+ "\n",
+ "#Results\n",
+ "print(\"resistance is %.2f kOhm \" %(R1/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance is 3.15 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vo=5.0\n",
+ "Vf=0.7\n",
+ "Iz=5.0\n",
+ "Il=1.0\n",
+ "E=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vz=Vo-Vf\n",
+ "R1=(E-Vo)/(Il+Iz)\n",
+ "\n",
+ "#Results\n",
+ "print(\"zener diode resistance si %.2f ohm \" %R1)\n",
+ "#Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zener diode resistance si 2.50 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=10.0\n",
+ "R1=56.0*10**3\n",
+ "f=1000.0\n",
+ "C1=1.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=2*E\n",
+ "Ic=Vo/R1\n",
+ "t=1/(2*f)\n",
+ "Vc=(Ic*t)/C1\n",
+ "\n",
+ "#Results\n",
+ "print(\" tilt output voltage is %3.2fV \" %(Vc*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " tilt output voltage is 178.57V \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.24, Page No 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=500.0\n",
+ "Rs=600.0\n",
+ "E=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "t=1.0/(2*f)\n",
+ "PW=t\n",
+ "C1=PW/Rs\n",
+ "Vo=2.0*E\n",
+ "Vc=(1*Vo)/100#1% of the Vo\n",
+ "Ic=(Vc*C1)/t\n",
+ "R1=(2*E)/(Ic*1000)\n",
+ "\n",
+ "#Results\n",
+ "print(\"suitable value of R1 is %.2f ohm \" %R1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "suitable value of R1 is 60.00 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.25, Page No 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vf=0.7\n",
+ "E=6.0\n",
+ "Vb1=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vc=Vb1-Vf-(-E)\n",
+ "Vo=Vb1-Vf\n",
+ "print(\"when input is -E\")\n",
+ "Vo=E+Vc\n",
+ "Vo=Vb1+Vf\n",
+ "print(\"Capicitor voltage is %.2f ohm \" %Vc)\n",
+ "print(\"when input is +E\")\n",
+ "Vo=E+(Vc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Capicitor voltage is %.2f ohm \" %Vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when input is -E\n",
+ "Capicitor voltage is 8.30 ohm \n",
+ "when input is +E\n",
+ "Capicitor voltage is 14.30 ohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.26, Page No 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=12.0\n",
+ "Vf=0.7\n",
+ "Rl=47*10**3\n",
+ "f=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "Vo=2*(E-Vf)\n",
+ "Il=Vo/Rl\n",
+ "print(\" capacitor discharge time\")\n",
+ "t=1.0/(2*f)\n",
+ "print(\" for 1% ripple allow .5% due to discharge of C2 %.5%due to discharge of C1\")\n",
+ "Vc=(.5*Vo)/100\n",
+ "C2=((Il*t)/Vc)*10**6\n",
+ "print(\" value of capacitor C2 is %3.2fuF \" %C2)\n",
+ "C1=2*C2\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitor C1 is %3.2fuF \" %C1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " capacitor discharge time\n",
+ " for 1% ripple allow .5% due to discharge of C2 %.5%due to discharge of C1\n",
+ " value of capacitor C2 is 0.43uF \n",
+ "value of capacitor C1 is 0.85uF \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.27, Page No 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=5.0\n",
+ "Vf=.7\n",
+ "R1=3.3*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"A)\")\n",
+ "Ir1=(Vcc-Vf)/R1\n",
+ "print(\"diode forward current when all input are low is %3.4fA \" %Ir1)\n",
+ "print(\"for each diode\")\n",
+ "If=Ir1/3\n",
+ "print(\"B)\")\n",
+ "If2=Ir1/2\n",
+ "If3=If2\n",
+ "print(\" forward current when input A is high is %3.5fA \" %If3)\n",
+ "print(\"C)\")\n",
+ "If3=Ir1\n",
+ "\n",
+ "#Results\n",
+ "print(\" forward current when input A and B are high and C is low %3.2fA \" %(If3*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A)\n",
+ "diode forward current when all input are low is 0.0013A \n",
+ "for each diode\n",
+ "B)\n",
+ " forward current when input A is high is 0.00065A \n",
+ "C)\n",
+ " forward current when input A and B are high and C is low 1.30A \n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter4.ipynb b/Electronic_Devices_and_Circuits/Chapter4.ipynb
new file mode 100755
index 00000000..eb199d80
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter4.ipynb
@@ -0,0 +1,237 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Bipolar junction transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Adc=.98\n",
+ "Ib=100*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=(Adc*Ib)/(1-Adc)\n",
+ "print(\"value of Ic is %3.3fA \" %Ic)\n",
+ "Ie=Ic/Adc\n",
+ "\n",
+ "#Results\n",
+ "print(\" value of Ie is %3.3fA \" %Ie)\n",
+ "Bdc=Adc/(1-Adc)\n",
+ "print(\"The value of Bdc = %.2f \" %Bdc) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of Ic is 0.005A \n",
+ " value of Ie is 0.005A \n",
+ "The value of Bdc = 49.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=1.0*10**-3\n",
+ "Ib=25.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Bdc=Ic/Ib\n",
+ "Ie=Ic+Ib\n",
+ "Adc=Ic/Ie\n",
+ "Ic=5\n",
+ "Ib=Ic/Bdc\n",
+ "\n",
+ "print(\"The new base current = %.2f mA\" %(Ib*10**3)) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The new base current = 125.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Bdc=80.0\n",
+ "Bac=Bdc\n",
+ "Vcc=18.0\n",
+ "R1=10.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=15.0*10**-6#for Vb=.7\n",
+ "Ic=Bdc*Ib\n",
+ "Vc=Vcc-(Ic*R1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"dc collector voltage is %dV \" %Vc)\n",
+ "print(\" when vi=50mV\")\n",
+ "Ib=3.0*10**-6\n",
+ "Vi=50.0*10**-3\n",
+ "Ic=Bdc*Ib\n",
+ "Vo=Ic*R1\n",
+ "Av=Vo/Vi\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dc collector voltage is 6V \n",
+ " when vi=50mV\n",
+ "Current voltage is 48.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=5.0\n",
+ "Vce=.2\n",
+ "R2=4.7*10**3\n",
+ "Vi=2\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "R1=12.0*10**3\n",
+ "Ic=(Vcc-Vce)/R2\n",
+ "Ib=(Vi-Vbe)/R1\n",
+ "hFE=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"Transistor current gain is %.2f V \" %(hFE))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transistor current gain is 9.43 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=.7\n",
+ "Vce=-6\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=20.0*10**-6\n",
+ "Ic=2.5*10**-3#from output characteristics\n",
+ "Bdc=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Bdc is %.1f V \" %Bdc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Bdc is 125.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter4_1.ipynb b/Electronic_Devices_and_Circuits/Chapter4_1.ipynb
new file mode 100755
index 00000000..eb199d80
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter4_1.ipynb
@@ -0,0 +1,237 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Bipolar junction transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Adc=.98\n",
+ "Ib=100*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=(Adc*Ib)/(1-Adc)\n",
+ "print(\"value of Ic is %3.3fA \" %Ic)\n",
+ "Ie=Ic/Adc\n",
+ "\n",
+ "#Results\n",
+ "print(\" value of Ie is %3.3fA \" %Ie)\n",
+ "Bdc=Adc/(1-Adc)\n",
+ "print(\"The value of Bdc = %.2f \" %Bdc) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of Ic is 0.005A \n",
+ " value of Ie is 0.005A \n",
+ "The value of Bdc = 49.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=1.0*10**-3\n",
+ "Ib=25.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Bdc=Ic/Ib\n",
+ "Ie=Ic+Ib\n",
+ "Adc=Ic/Ie\n",
+ "Ic=5\n",
+ "Ib=Ic/Bdc\n",
+ "\n",
+ "print(\"The new base current = %.2f mA\" %(Ib*10**3)) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The new base current = 125.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Bdc=80.0\n",
+ "Bac=Bdc\n",
+ "Vcc=18.0\n",
+ "R1=10.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=15.0*10**-6#for Vb=.7\n",
+ "Ic=Bdc*Ib\n",
+ "Vc=Vcc-(Ic*R1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"dc collector voltage is %dV \" %Vc)\n",
+ "print(\" when vi=50mV\")\n",
+ "Ib=3.0*10**-6\n",
+ "Vi=50.0*10**-3\n",
+ "Ic=Bdc*Ib\n",
+ "Vo=Ic*R1\n",
+ "Av=Vo/Vi\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dc collector voltage is 6V \n",
+ " when vi=50mV\n",
+ "Current voltage is 48.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=5.0\n",
+ "Vce=.2\n",
+ "R2=4.7*10**3\n",
+ "Vi=2\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "R1=12.0*10**3\n",
+ "Ic=(Vcc-Vce)/R2\n",
+ "Ib=(Vi-Vbe)/R1\n",
+ "hFE=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"Transistor current gain is %.2f V \" %(hFE))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transistor current gain is 9.43 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=.7\n",
+ "Vce=-6\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=20.0*10**-6\n",
+ "Ic=2.5*10**-3#from output characteristics\n",
+ "Bdc=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Bdc is %.1f V \" %Bdc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Bdc is 125.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter4_2.ipynb b/Electronic_Devices_and_Circuits/Chapter4_2.ipynb
new file mode 100755
index 00000000..eb199d80
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter4_2.ipynb
@@ -0,0 +1,237 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Bipolar junction transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Adc=.98\n",
+ "Ib=100*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=(Adc*Ib)/(1-Adc)\n",
+ "print(\"value of Ic is %3.3fA \" %Ic)\n",
+ "Ie=Ic/Adc\n",
+ "\n",
+ "#Results\n",
+ "print(\" value of Ie is %3.3fA \" %Ie)\n",
+ "Bdc=Adc/(1-Adc)\n",
+ "print(\"The value of Bdc = %.2f \" %Bdc) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of Ic is 0.005A \n",
+ " value of Ie is 0.005A \n",
+ "The value of Bdc = 49.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=1.0*10**-3\n",
+ "Ib=25.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "Bdc=Ic/Ib\n",
+ "Ie=Ic+Ib\n",
+ "Adc=Ic/Ie\n",
+ "Ic=5\n",
+ "Ib=Ic/Bdc\n",
+ "\n",
+ "print(\"The new base current = %.2f mA\" %(Ib*10**3)) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The new base current = 125.00 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Bdc=80.0\n",
+ "Bac=Bdc\n",
+ "Vcc=18.0\n",
+ "R1=10.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=15.0*10**-6#for Vb=.7\n",
+ "Ic=Bdc*Ib\n",
+ "Vc=Vcc-(Ic*R1)\n",
+ "\n",
+ "#Results\n",
+ "print(\"dc collector voltage is %dV \" %Vc)\n",
+ "print(\" when vi=50mV\")\n",
+ "Ib=3.0*10**-6\n",
+ "Vi=50.0*10**-3\n",
+ "Ic=Bdc*Ib\n",
+ "Vo=Ic*R1\n",
+ "Av=Vo/Vi\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Av))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dc collector voltage is 6V \n",
+ " when vi=50mV\n",
+ "Current voltage is 48.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=5.0\n",
+ "Vce=.2\n",
+ "R2=4.7*10**3\n",
+ "Vi=2\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "R1=12.0*10**3\n",
+ "Ic=(Vcc-Vce)/R2\n",
+ "Ib=(Vi-Vbe)/R1\n",
+ "hFE=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"Transistor current gain is %.2f V \" %(hFE))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transistor current gain is 9.43 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vbe=.7\n",
+ "Vce=-6\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=20.0*10**-6\n",
+ "Ic=2.5*10**-3#from output characteristics\n",
+ "Bdc=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Bdc is %.1f V \" %Bdc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Bdc is 125.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter5.ipynb b/Electronic_Devices_and_Circuits/Chapter5.ipynb
new file mode 100755
index 00000000..07d0da6b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter5.ipynb
@@ -0,0 +1,1022 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : BJT biasing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=12.0*10**3\n",
+ "Vcc=20.0\n",
+ "print(\" When Ic=0\")\n",
+ "Ic=0\n",
+ "\n",
+ "#Calculations\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "print(\" At point A Ic=0 nad Vce=20\")\n",
+ "print(\"When Vce=0\")\n",
+ "Vce=0\n",
+ "Ic=Vcc/Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\" At point B Ic=1.7mA and Vce=0\")\n",
+ "print(\"Ic is %.1f mA \" %(Ic*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " When Ic=0\n",
+ " At point A Ic=0 nad Vce=20\n",
+ "When Vce=0\n",
+ " At point B Ic=1.7mA and Vce=0\n",
+ "Ic is 1.7 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=18.0\n",
+ "Rc=2.2*10**3\n",
+ "Ib=40.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Ic=0\")\n",
+ "Ic=0\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "print(\"At point A Ic=0 and Vce=18\")\n",
+ "print(\"when Vce=0\")\n",
+ "Ic=Vcc/Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\" at point B Ic=8.2mA and Vce=0\")\n",
+ "print(\"Ic = %.1f mA \" %(Ic*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Ic=0\n",
+ "At point A Ic=0 and Vce=18\n",
+ "when Vce=0\n",
+ " at point B Ic=8.2mA and Vce=0\n",
+ "Ic = 8.2 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rb=470*10**3\n",
+ "Rc=2.2*10**3\n",
+ "Vcc=18.0\n",
+ "hfe=100\n",
+ "Vee=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vee)/Rb\n",
+ "Ic=hfe*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hFEmin=50.0\n",
+ "hFEmax=200.0\n",
+ "Vcc=18.0\n",
+ "Vbe=0.7\n",
+ "Rb=470.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vbe)/Rb\n",
+ "Ic=hFEmin*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "Ic=hFEmax*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 1.8 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rb=270*10**3\n",
+ "Rc=2.2*10**3\n",
+ "Vcc=18.0\n",
+ "hFE=100\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vbe)/(Rb+Rc*(hFE+1))\n",
+ "Ic=hFE*Ib\n",
+ "Vce=Vcc-Rc*(Ic+Ib)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 10.2 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R1=33.0*10**3\n",
+ "R2=12.0*10**3\n",
+ "Rc=1.2*10**3\n",
+ "Re=1*10**3\n",
+ "Vcc=18.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "Ve=Vb-Vbe\n",
+ "Ie=(Vb-Vbe)/Re\n",
+ "Ic=Ie\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page No 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=18.0\n",
+ "Vbe=.7\n",
+ "hfe=100.0\n",
+ "R1=33*10**3\n",
+ "R2=12.0*10**3\n",
+ "Re=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vt=(Vcc*R2)/(R1+R2)\n",
+ "Rt=(R1*R2)/(R1+R2)\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.7 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hfe=50.0\n",
+ "Vt=4.8\n",
+ "Rt=8.8*10**3#from example 5.7\n",
+ "Re=1.0*10**3\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 10.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vt=4.8\n",
+ "Rt=8.8*10**3#from example 5.8\n",
+ "Re=1*10**3\n",
+ "Vbe=.7\n",
+ "hfe=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ic=5*10**-3\n",
+ "Vcc=15.0\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=(Vcc-Vce)/Ic\n",
+ "Ib=Ic/hfe\n",
+ "Rb=(Vcc-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rv is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rv is 286.0 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ic=5*10**-3\n",
+ "Vcc=15.0\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=Ic/hfe\n",
+ "Rc=(Vcc-Vce)/(Ic+Ib)\n",
+ "Rb=(Vce-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 86.0 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ve=Vce\n",
+ "Ic=5.0*10**-3\n",
+ "hFE=100.0\n",
+ "Vcc=15.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "Re=Ve/Ie\n",
+ "Rc=(Vcc-Vce-Ve)/Ic\n",
+ "I2=Ic/10\n",
+ "Vb=Ve+Vbe\n",
+ "R2=Vb/I2\n",
+ "R1=(Vcc-Vb)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kOhm \" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 18.6 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14, Page No 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=3.0\n",
+ "Ve=5.0\n",
+ "Ic=1*10**-3\n",
+ "Vcc=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "R4=Ve/Ie\n",
+ "print(\" with Ic=1mA and R4=4.7Kohm\")\n",
+ "R4=4.7*10**3\n",
+ "Ve=Ic*R4\n",
+ "Vc=Ve+Vce\n",
+ "Vr3=Vcc-Vc\n",
+ "R3=Vr3/Ic\n",
+ "Vb=Ve+Vbe\n",
+ "I2=Ic/10\n",
+ "R2=Vb/I2\n",
+ "print(\" with R2=56Kohm and Vb=5.4V\")\n",
+ "R2=56*10**3\n",
+ "I2=Vb/R2\n",
+ "R1=(Vcc-Vb)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %.1f V \" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with Ic=1mA and R4=4.7Kohm\n",
+ " with R2=56Kohm and Vb=5.4V\n",
+ "The value of R1 is 68.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15, Page No 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=9.0\n",
+ "Ve=4.0\n",
+ "Ic=4*10**-3\n",
+ "Vcc=18.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "R4=Ve/Ie\n",
+ "Vb=Ve+Vbe\n",
+ "I2=Ic/10\n",
+ "R2=Vb/I2\n",
+ "print(\" with R2=12Kohm standard\")\n",
+ "R2=12*10**3\n",
+ "I2=Vb/R2\n",
+ "R1=(Vce+Ve-Vb)/I2\n",
+ "print(\" with R1=22kohm standard\")\n",
+ "R1=22*10**3\n",
+ "Vr3=Vcc-Vce-Ve\n",
+ "R3=Vr3/(Ic+I2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 %.2f V \" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R2=12Kohm standard\n",
+ " with R1=22kohm standard\n",
+ "The value of R3 1.14 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16, Page No 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vc=5.0\n",
+ "Ic=1.0*10**-3\n",
+ "hFE=70.0\n",
+ "Vbe=.7\n",
+ "Vee=9.0\n",
+ "Vcc=Vee\n",
+ "Re=8.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ve=Vee-Vbe\n",
+ "Ie=Ic\n",
+ "R3=Ve/Ie\n",
+ "print(\" with R3=8.2kohm standard value\")\n",
+ "R3=8.2*10**3\n",
+ "Ie=Ve/R3\n",
+ "Vr2=Vcc-Vc\n",
+ "R2=Vr2/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Vr1=Vbe/10\n",
+ "R1=Vr1/Ib\n",
+ "print(\" use 4.7Kohm as standard\")\n",
+ "#the transistor emitter terminal is .7 below ground and voltage across Re is\n",
+ "Ve=Vee-Vbe\n",
+ "Ie=Ve/Re\n",
+ "Vc=Vcc-(Ie*3.9*10**3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vc))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R3=8.2kohm standard value\n",
+ " use 4.7Kohm as standard\n",
+ "Current voltage is 5.1 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.17, Page No 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hFE=100.0\n",
+ "Rc=2.2*10**3\n",
+ "Rb=270.0*10**3\n",
+ "Re=1.0*10**3\n",
+ "R1=33.0*10**3\n",
+ "R2=12*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "S=1+hFE\n",
+ "print(\"for collector to base bias\")\n",
+ "S=(1+hFE)/(1+(hFE*Rc)/(Rc+Rb))\n",
+ "print(\" for voltage divider bias\")\n",
+ "print(\"S=(1+hFE)/(1+hFE*Re(Re+R1||R2))\")\n",
+ "S=(1+hFE)/(1+(hFE*Re)/(Re+(R1*R2)/(R1+R2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Voltage-divider bias is %.2f \" %(S))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for collector to base bias\n",
+ " for voltage divider bias\n",
+ "S=(1+hFE)/(1+hFE*Re(Re+R1||R2))\n",
+ "Voltage-divider bias is 9.01 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.18, Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Icbo1=15.0*10**-9# at 25C\n",
+ "S=101.0\n",
+ "print(\"chnage in temp\")\n",
+ "T=105-25\n",
+ "print(\" n=T in 10 step\")\n",
+ "n=T/10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Icbo2=Icbo1*2**n\n",
+ "Icbo=Icbo2-Icbo1\n",
+ "print(\" for base bais\")\n",
+ "Ic=S*Icbo\n",
+ "print(\" for collector to base bais\")\n",
+ "S=56\n",
+ "Ic=S*Icbo\n",
+ "print(\" for voltage divider bais\")\n",
+ "S=8.2\n",
+ "Ic=S*Icbo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ic is %.1f mA \" %(Ic*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chnage in temp\n",
+ " n=T in 10 step\n",
+ " for base bais\n",
+ " for collector to base bais\n",
+ " for voltage divider bais\n",
+ "The value of Ic is 31.4 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.19, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Re=4.7*10**3\n",
+ "T=125-25\n",
+ "\n",
+ "#Calculations\n",
+ "Vbe=T*(1.8*10**-3)\n",
+ "Ie=Vbe/Re\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ie is %.1f V \" %(Ie*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ie is 38.3 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.20, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=10.0\n",
+ "Rc=1.0*10**3\n",
+ "Rb=6.8*10**3\n",
+ "Vs=5.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" hFE calculation\")\n",
+ "Ic=Vcc/Rc\n",
+ "Ib=(Vs-Vbe)/Rb\n",
+ "hFE=Ic/Ib\n",
+ "print(\"when hFE=10\")\n",
+ "hFE=10\n",
+ "Ic=hFE*Ib\n",
+ "Vce=Vcc-(Ic*Rc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hFE calculation\n",
+ "when hFE=10\n",
+ "Current voltage is 2.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.21, Page No 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Vcc=15.0\n",
+ "Rc=3.3*10**3\n",
+ "Vbe=.7\n",
+ "Rb=56.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=Vcc/Rc\n",
+ "Ib=(Vcc-Vbe)/Rb\n",
+ "hFE=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\" minimum hFE is %3.2f \" %hFE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " minimum hFE is 17.80 \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.22, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Vcc=12.0\n",
+ "Ic=1.5*10**-3\n",
+ "Vs=5.0\n",
+ "hFE=10.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Vcc/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vs-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 28.7 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.23, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculations\n",
+ "Vcc=9.0\n",
+ "Ic=2*10**-3\n",
+ "hFE=10.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Vcc/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vcc-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 41.50 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter5_1.ipynb b/Electronic_Devices_and_Circuits/Chapter5_1.ipynb
new file mode 100755
index 00000000..07d0da6b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter5_1.ipynb
@@ -0,0 +1,1022 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : BJT biasing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=12.0*10**3\n",
+ "Vcc=20.0\n",
+ "print(\" When Ic=0\")\n",
+ "Ic=0\n",
+ "\n",
+ "#Calculations\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "print(\" At point A Ic=0 nad Vce=20\")\n",
+ "print(\"When Vce=0\")\n",
+ "Vce=0\n",
+ "Ic=Vcc/Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\" At point B Ic=1.7mA and Vce=0\")\n",
+ "print(\"Ic is %.1f mA \" %(Ic*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " When Ic=0\n",
+ " At point A Ic=0 nad Vce=20\n",
+ "When Vce=0\n",
+ " At point B Ic=1.7mA and Vce=0\n",
+ "Ic is 1.7 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=18.0\n",
+ "Rc=2.2*10**3\n",
+ "Ib=40.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Ic=0\")\n",
+ "Ic=0\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "print(\"At point A Ic=0 and Vce=18\")\n",
+ "print(\"when Vce=0\")\n",
+ "Ic=Vcc/Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\" at point B Ic=8.2mA and Vce=0\")\n",
+ "print(\"Ic = %.1f mA \" %(Ic*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Ic=0\n",
+ "At point A Ic=0 and Vce=18\n",
+ "when Vce=0\n",
+ " at point B Ic=8.2mA and Vce=0\n",
+ "Ic = 8.2 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rb=470*10**3\n",
+ "Rc=2.2*10**3\n",
+ "Vcc=18.0\n",
+ "hfe=100\n",
+ "Vee=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vee)/Rb\n",
+ "Ic=hfe*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hFEmin=50.0\n",
+ "hFEmax=200.0\n",
+ "Vcc=18.0\n",
+ "Vbe=0.7\n",
+ "Rb=470.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vbe)/Rb\n",
+ "Ic=hFEmin*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "Ic=hFEmax*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 1.8 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rb=270*10**3\n",
+ "Rc=2.2*10**3\n",
+ "Vcc=18.0\n",
+ "hFE=100\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vbe)/(Rb+Rc*(hFE+1))\n",
+ "Ic=hFE*Ib\n",
+ "Vce=Vcc-Rc*(Ic+Ib)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 10.2 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R1=33.0*10**3\n",
+ "R2=12.0*10**3\n",
+ "Rc=1.2*10**3\n",
+ "Re=1*10**3\n",
+ "Vcc=18.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "Ve=Vb-Vbe\n",
+ "Ie=(Vb-Vbe)/Re\n",
+ "Ic=Ie\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page No 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=18.0\n",
+ "Vbe=.7\n",
+ "hfe=100.0\n",
+ "R1=33*10**3\n",
+ "R2=12.0*10**3\n",
+ "Re=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vt=(Vcc*R2)/(R1+R2)\n",
+ "Rt=(R1*R2)/(R1+R2)\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.7 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hfe=50.0\n",
+ "Vt=4.8\n",
+ "Rt=8.8*10**3#from example 5.7\n",
+ "Re=1.0*10**3\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 10.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vt=4.8\n",
+ "Rt=8.8*10**3#from example 5.8\n",
+ "Re=1*10**3\n",
+ "Vbe=.7\n",
+ "hfe=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ic=5*10**-3\n",
+ "Vcc=15.0\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=(Vcc-Vce)/Ic\n",
+ "Ib=Ic/hfe\n",
+ "Rb=(Vcc-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rv is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rv is 286.0 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ic=5*10**-3\n",
+ "Vcc=15.0\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=Ic/hfe\n",
+ "Rc=(Vcc-Vce)/(Ic+Ib)\n",
+ "Rb=(Vce-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 86.0 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ve=Vce\n",
+ "Ic=5.0*10**-3\n",
+ "hFE=100.0\n",
+ "Vcc=15.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "Re=Ve/Ie\n",
+ "Rc=(Vcc-Vce-Ve)/Ic\n",
+ "I2=Ic/10\n",
+ "Vb=Ve+Vbe\n",
+ "R2=Vb/I2\n",
+ "R1=(Vcc-Vb)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kOhm \" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 18.6 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14, Page No 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=3.0\n",
+ "Ve=5.0\n",
+ "Ic=1*10**-3\n",
+ "Vcc=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "R4=Ve/Ie\n",
+ "print(\" with Ic=1mA and R4=4.7Kohm\")\n",
+ "R4=4.7*10**3\n",
+ "Ve=Ic*R4\n",
+ "Vc=Ve+Vce\n",
+ "Vr3=Vcc-Vc\n",
+ "R3=Vr3/Ic\n",
+ "Vb=Ve+Vbe\n",
+ "I2=Ic/10\n",
+ "R2=Vb/I2\n",
+ "print(\" with R2=56Kohm and Vb=5.4V\")\n",
+ "R2=56*10**3\n",
+ "I2=Vb/R2\n",
+ "R1=(Vcc-Vb)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %.1f V \" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with Ic=1mA and R4=4.7Kohm\n",
+ " with R2=56Kohm and Vb=5.4V\n",
+ "The value of R1 is 68.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15, Page No 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=9.0\n",
+ "Ve=4.0\n",
+ "Ic=4*10**-3\n",
+ "Vcc=18.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "R4=Ve/Ie\n",
+ "Vb=Ve+Vbe\n",
+ "I2=Ic/10\n",
+ "R2=Vb/I2\n",
+ "print(\" with R2=12Kohm standard\")\n",
+ "R2=12*10**3\n",
+ "I2=Vb/R2\n",
+ "R1=(Vce+Ve-Vb)/I2\n",
+ "print(\" with R1=22kohm standard\")\n",
+ "R1=22*10**3\n",
+ "Vr3=Vcc-Vce-Ve\n",
+ "R3=Vr3/(Ic+I2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 %.2f V \" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R2=12Kohm standard\n",
+ " with R1=22kohm standard\n",
+ "The value of R3 1.14 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16, Page No 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vc=5.0\n",
+ "Ic=1.0*10**-3\n",
+ "hFE=70.0\n",
+ "Vbe=.7\n",
+ "Vee=9.0\n",
+ "Vcc=Vee\n",
+ "Re=8.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ve=Vee-Vbe\n",
+ "Ie=Ic\n",
+ "R3=Ve/Ie\n",
+ "print(\" with R3=8.2kohm standard value\")\n",
+ "R3=8.2*10**3\n",
+ "Ie=Ve/R3\n",
+ "Vr2=Vcc-Vc\n",
+ "R2=Vr2/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Vr1=Vbe/10\n",
+ "R1=Vr1/Ib\n",
+ "print(\" use 4.7Kohm as standard\")\n",
+ "#the transistor emitter terminal is .7 below ground and voltage across Re is\n",
+ "Ve=Vee-Vbe\n",
+ "Ie=Ve/Re\n",
+ "Vc=Vcc-(Ie*3.9*10**3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vc))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R3=8.2kohm standard value\n",
+ " use 4.7Kohm as standard\n",
+ "Current voltage is 5.1 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.17, Page No 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hFE=100.0\n",
+ "Rc=2.2*10**3\n",
+ "Rb=270.0*10**3\n",
+ "Re=1.0*10**3\n",
+ "R1=33.0*10**3\n",
+ "R2=12*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "S=1+hFE\n",
+ "print(\"for collector to base bias\")\n",
+ "S=(1+hFE)/(1+(hFE*Rc)/(Rc+Rb))\n",
+ "print(\" for voltage divider bias\")\n",
+ "print(\"S=(1+hFE)/(1+hFE*Re(Re+R1||R2))\")\n",
+ "S=(1+hFE)/(1+(hFE*Re)/(Re+(R1*R2)/(R1+R2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Voltage-divider bias is %.2f \" %(S))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for collector to base bias\n",
+ " for voltage divider bias\n",
+ "S=(1+hFE)/(1+hFE*Re(Re+R1||R2))\n",
+ "Voltage-divider bias is 9.01 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.18, Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Icbo1=15.0*10**-9# at 25C\n",
+ "S=101.0\n",
+ "print(\"chnage in temp\")\n",
+ "T=105-25\n",
+ "print(\" n=T in 10 step\")\n",
+ "n=T/10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Icbo2=Icbo1*2**n\n",
+ "Icbo=Icbo2-Icbo1\n",
+ "print(\" for base bais\")\n",
+ "Ic=S*Icbo\n",
+ "print(\" for collector to base bais\")\n",
+ "S=56\n",
+ "Ic=S*Icbo\n",
+ "print(\" for voltage divider bais\")\n",
+ "S=8.2\n",
+ "Ic=S*Icbo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ic is %.1f mA \" %(Ic*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chnage in temp\n",
+ " n=T in 10 step\n",
+ " for base bais\n",
+ " for collector to base bais\n",
+ " for voltage divider bais\n",
+ "The value of Ic is 31.4 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.19, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Re=4.7*10**3\n",
+ "T=125-25\n",
+ "\n",
+ "#Calculations\n",
+ "Vbe=T*(1.8*10**-3)\n",
+ "Ie=Vbe/Re\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ie is %.1f V \" %(Ie*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ie is 38.3 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.20, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=10.0\n",
+ "Rc=1.0*10**3\n",
+ "Rb=6.8*10**3\n",
+ "Vs=5.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" hFE calculation\")\n",
+ "Ic=Vcc/Rc\n",
+ "Ib=(Vs-Vbe)/Rb\n",
+ "hFE=Ic/Ib\n",
+ "print(\"when hFE=10\")\n",
+ "hFE=10\n",
+ "Ic=hFE*Ib\n",
+ "Vce=Vcc-(Ic*Rc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hFE calculation\n",
+ "when hFE=10\n",
+ "Current voltage is 2.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.21, Page No 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Vcc=15.0\n",
+ "Rc=3.3*10**3\n",
+ "Vbe=.7\n",
+ "Rb=56.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=Vcc/Rc\n",
+ "Ib=(Vcc-Vbe)/Rb\n",
+ "hFE=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\" minimum hFE is %3.2f \" %hFE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " minimum hFE is 17.80 \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.22, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Vcc=12.0\n",
+ "Ic=1.5*10**-3\n",
+ "Vs=5.0\n",
+ "hFE=10.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Vcc/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vs-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 28.7 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.23, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculations\n",
+ "Vcc=9.0\n",
+ "Ic=2*10**-3\n",
+ "hFE=10.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Vcc/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vcc-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 41.50 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter5_2.ipynb b/Electronic_Devices_and_Circuits/Chapter5_2.ipynb
new file mode 100755
index 00000000..07d0da6b
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter5_2.ipynb
@@ -0,0 +1,1022 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : BJT biasing"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=12.0*10**3\n",
+ "Vcc=20.0\n",
+ "print(\" When Ic=0\")\n",
+ "Ic=0\n",
+ "\n",
+ "#Calculations\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "print(\" At point A Ic=0 nad Vce=20\")\n",
+ "print(\"When Vce=0\")\n",
+ "Vce=0\n",
+ "Ic=Vcc/Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\" At point B Ic=1.7mA and Vce=0\")\n",
+ "print(\"Ic is %.1f mA \" %(Ic*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " When Ic=0\n",
+ " At point A Ic=0 nad Vce=20\n",
+ "When Vce=0\n",
+ " At point B Ic=1.7mA and Vce=0\n",
+ "Ic is 1.7 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vcc=18.0\n",
+ "Rc=2.2*10**3\n",
+ "Ib=40.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when Ic=0\")\n",
+ "Ic=0\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "print(\"At point A Ic=0 and Vce=18\")\n",
+ "print(\"when Vce=0\")\n",
+ "Ic=Vcc/Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\" at point B Ic=8.2mA and Vce=0\")\n",
+ "print(\"Ic = %.1f mA \" %(Ic*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when Ic=0\n",
+ "At point A Ic=0 and Vce=18\n",
+ "when Vce=0\n",
+ " at point B Ic=8.2mA and Vce=0\n",
+ "Ic = 8.2 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rb=470*10**3\n",
+ "Rc=2.2*10**3\n",
+ "Vcc=18.0\n",
+ "hfe=100\n",
+ "Vee=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vee)/Rb\n",
+ "Ic=hfe*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hFEmin=50.0\n",
+ "hFEmax=200.0\n",
+ "Vcc=18.0\n",
+ "Vbe=0.7\n",
+ "Rb=470.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vbe)/Rb\n",
+ "Ic=hFEmin*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "Ic=hFEmax*Ib\n",
+ "Vce=Vcc-Ic*Rc\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 1.8 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rb=270*10**3\n",
+ "Rc=2.2*10**3\n",
+ "Vcc=18.0\n",
+ "hFE=100\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vcc-Vbe)/(Rb+Rc*(hFE+1))\n",
+ "Ic=hFE*Ib\n",
+ "Vce=Vcc-Rc*(Ic+Ib)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 10.2 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "R1=33.0*10**3\n",
+ "R2=12.0*10**3\n",
+ "Rc=1.2*10**3\n",
+ "Re=1*10**3\n",
+ "Vcc=18.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "Ve=Vb-Vbe\n",
+ "Ie=(Vb-Vbe)/Re\n",
+ "Ic=Ie\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.0 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page No 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=18.0\n",
+ "Vbe=.7\n",
+ "hfe=100.0\n",
+ "R1=33*10**3\n",
+ "R2=12.0*10**3\n",
+ "Re=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Vt=(Vcc*R2)/(R1+R2)\n",
+ "Rt=(R1*R2)/(R1+R2)\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.7 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hfe=50.0\n",
+ "Vt=4.8\n",
+ "Rt=8.8*10**3#from example 5.7\n",
+ "Re=1.0*10**3\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 10.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vt=4.8\n",
+ "Rt=8.8*10**3#from example 5.8\n",
+ "Re=1*10**3\n",
+ "Vbe=.7\n",
+ "hfe=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=(Vt-Vbe)/(Rt+Re*(1+hfe))\n",
+ "Ic=hfe*Ib\n",
+ "Ie=Ib+Ic\n",
+ "Ve=Ie*Re\n",
+ "Vc=Vcc-(Ic*Rc)\n",
+ "Vce=Vc-Ve\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Current voltage is 9.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ic=5*10**-3\n",
+ "Vcc=15.0\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=(Vcc-Vce)/Ic\n",
+ "Ib=Ic/hfe\n",
+ "Rb=(Vcc-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rv is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rv is 286.0 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ic=5*10**-3\n",
+ "Vcc=15.0\n",
+ "hfe=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ib=Ic/hfe\n",
+ "Rc=(Vcc-Vce)/(Ic+Ib)\n",
+ "Rb=(Vce-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 86.0 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=5.0\n",
+ "Ve=Vce\n",
+ "Ic=5.0*10**-3\n",
+ "hFE=100.0\n",
+ "Vcc=15.0\n",
+ "Vbe=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "Re=Ve/Ie\n",
+ "Rc=(Vcc-Vce-Ve)/Ic\n",
+ "I2=Ic/10\n",
+ "Vb=Ve+Vbe\n",
+ "R2=Vb/I2\n",
+ "R1=(Vcc-Vb)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kOhm \" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 18.6 kOhm \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14, Page No 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=3.0\n",
+ "Ve=5.0\n",
+ "Ic=1*10**-3\n",
+ "Vcc=12.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "R4=Ve/Ie\n",
+ "print(\" with Ic=1mA and R4=4.7Kohm\")\n",
+ "R4=4.7*10**3\n",
+ "Ve=Ic*R4\n",
+ "Vc=Ve+Vce\n",
+ "Vr3=Vcc-Vc\n",
+ "R3=Vr3/Ic\n",
+ "Vb=Ve+Vbe\n",
+ "I2=Ic/10\n",
+ "R2=Vb/I2\n",
+ "print(\" with R2=56Kohm and Vb=5.4V\")\n",
+ "R2=56*10**3\n",
+ "I2=Vb/R2\n",
+ "R1=(Vcc-Vb)/I2\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R1 is %.1f V \" %(R1/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with Ic=1mA and R4=4.7Kohm\n",
+ " with R2=56Kohm and Vb=5.4V\n",
+ "The value of R1 is 68.4 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15, Page No 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vce=9.0\n",
+ "Ve=4.0\n",
+ "Ic=4*10**-3\n",
+ "Vcc=18.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "R4=Ve/Ie\n",
+ "Vb=Ve+Vbe\n",
+ "I2=Ic/10\n",
+ "R2=Vb/I2\n",
+ "print(\" with R2=12Kohm standard\")\n",
+ "R2=12*10**3\n",
+ "I2=Vb/R2\n",
+ "R1=(Vce+Ve-Vb)/I2\n",
+ "print(\" with R1=22kohm standard\")\n",
+ "R1=22*10**3\n",
+ "Vr3=Vcc-Vce-Ve\n",
+ "R3=Vr3/(Ic+I2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of R3 %.2f V \" %(R3/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R2=12Kohm standard\n",
+ " with R1=22kohm standard\n",
+ "The value of R3 1.14 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16, Page No 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vc=5.0\n",
+ "Ic=1.0*10**-3\n",
+ "hFE=70.0\n",
+ "Vbe=.7\n",
+ "Vee=9.0\n",
+ "Vcc=Vee\n",
+ "Re=8.2*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ve=Vee-Vbe\n",
+ "Ie=Ic\n",
+ "R3=Ve/Ie\n",
+ "print(\" with R3=8.2kohm standard value\")\n",
+ "R3=8.2*10**3\n",
+ "Ie=Ve/R3\n",
+ "Vr2=Vcc-Vc\n",
+ "R2=Vr2/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Vr1=Vbe/10\n",
+ "R1=Vr1/Ib\n",
+ "print(\" use 4.7Kohm as standard\")\n",
+ "#the transistor emitter terminal is .7 below ground and voltage across Re is\n",
+ "Ve=Vee-Vbe\n",
+ "Ie=Ve/Re\n",
+ "Vc=Vcc-(Ie*3.9*10**3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vc))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " with R3=8.2kohm standard value\n",
+ " use 4.7Kohm as standard\n",
+ "Current voltage is 5.1 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.17, Page No 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hFE=100.0\n",
+ "Rc=2.2*10**3\n",
+ "Rb=270.0*10**3\n",
+ "Re=1.0*10**3\n",
+ "R1=33.0*10**3\n",
+ "R2=12*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "S=1+hFE\n",
+ "print(\"for collector to base bias\")\n",
+ "S=(1+hFE)/(1+(hFE*Rc)/(Rc+Rb))\n",
+ "print(\" for voltage divider bias\")\n",
+ "print(\"S=(1+hFE)/(1+hFE*Re(Re+R1||R2))\")\n",
+ "S=(1+hFE)/(1+(hFE*Re)/(Re+(R1*R2)/(R1+R2)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"Voltage-divider bias is %.2f \" %(S))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for collector to base bias\n",
+ " for voltage divider bias\n",
+ "S=(1+hFE)/(1+hFE*Re(Re+R1||R2))\n",
+ "Voltage-divider bias is 9.01 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.18, Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Icbo1=15.0*10**-9# at 25C\n",
+ "S=101.0\n",
+ "print(\"chnage in temp\")\n",
+ "T=105-25\n",
+ "print(\" n=T in 10 step\")\n",
+ "n=T/10.0\n",
+ "\n",
+ "#Calculations\n",
+ "Icbo2=Icbo1*2**n\n",
+ "Icbo=Icbo2-Icbo1\n",
+ "print(\" for base bais\")\n",
+ "Ic=S*Icbo\n",
+ "print(\" for collector to base bais\")\n",
+ "S=56\n",
+ "Ic=S*Icbo\n",
+ "print(\" for voltage divider bais\")\n",
+ "S=8.2\n",
+ "Ic=S*Icbo\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ic is %.1f mA \" %(Ic*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chnage in temp\n",
+ " n=T in 10 step\n",
+ " for base bais\n",
+ " for collector to base bais\n",
+ " for voltage divider bais\n",
+ "The value of Ic is 31.4 mA \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.19, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Re=4.7*10**3\n",
+ "T=125-25\n",
+ "\n",
+ "#Calculations\n",
+ "Vbe=T*(1.8*10**-3)\n",
+ "Ie=Vbe/Re\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Ie is %.1f V \" %(Ie*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Ie is 38.3 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.20, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=10.0\n",
+ "Rc=1.0*10**3\n",
+ "Rb=6.8*10**3\n",
+ "Vs=5.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" hFE calculation\")\n",
+ "Ic=Vcc/Rc\n",
+ "Ib=(Vs-Vbe)/Rb\n",
+ "hFE=Ic/Ib\n",
+ "print(\"when hFE=10\")\n",
+ "hFE=10\n",
+ "Ic=hFE*Ib\n",
+ "Vce=Vcc-(Ic*Rc)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Current voltage is %.1f V \" %(Vce))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hFE calculation\n",
+ "when hFE=10\n",
+ "Current voltage is 2.9 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.21, Page No 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Vcc=15.0\n",
+ "Rc=3.3*10**3\n",
+ "Vbe=.7\n",
+ "Rb=56.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=Vcc/Rc\n",
+ "Ib=(Vcc-Vbe)/Rb\n",
+ "hFE=Ic/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\" minimum hFE is %3.2f \" %hFE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " minimum hFE is 17.80 \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.22, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variables\n",
+ "Vcc=12.0\n",
+ "Ic=1.5*10**-3\n",
+ "Vs=5.0\n",
+ "hFE=10.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Vcc/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vs-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.1f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 28.7 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.23, Page No 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculations\n",
+ "Vcc=9.0\n",
+ "Ic=2*10**-3\n",
+ "hFE=10.0\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "Rc=Vcc/Ic\n",
+ "Ib=Ic/hFE\n",
+ "Rb=(Vcc-Vbe)/Ib\n",
+ "\n",
+ "#Results\n",
+ "print(\"The value of Rb is %.2f kohm \" %(Rb/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rb is 41.50 kohm \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter6.ipynb b/Electronic_Devices_and_Circuits/Chapter6.ipynb
new file mode 100755
index 00000000..85bada6c
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter6.ipynb
@@ -0,0 +1,656 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Ac analysis of BJT circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=12.0\n",
+ "R2=15.0*10**3\n",
+ "R1=33.0*10**3\n",
+ "rs=600\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"with no signal source\")\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "print(\" base bais voltage when no signal source is present %3.2fV \" %Vb)\n",
+ "print(\" signal source directly connected\")\n",
+ "Vb=(Vcc*((rs*R2)/(rs+R2))/(R1+((rs*R2)/(rs+R2))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"base bais voltage is %3.2fV \" %Vb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "with no signal source\n",
+ " base bais voltage when no signal source is present 3.75V \n",
+ " signal source directly connected\n",
+ "base bais voltage is 0.21V \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rc=2.2*10**3\n",
+ "Re=2.7*10**3\n",
+ "R1=18.0*10**3\n",
+ "R2=8.2*10**3\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"drawing dc load line\")\n",
+ "Rldc=Rc+Re\n",
+ "print(\" for Vce\")\n",
+ "Ic=0\n",
+ "Vcc=20\n",
+ "Vce=Vcc-Ic*(Rc+Re)\n",
+ "print(\"plot point A at\")\n",
+ "Ic=Vcc/(Rc+Re)\n",
+ "print(\"plot point B Ic=4.08mA and Vce=0\")\n",
+ "print(\" draw dc laod line through point A nad B\")\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "Ve=Vb-Vbe\n",
+ "Ic=Ve/Re\n",
+ "Ie=Ic\n",
+ "print(\"drawing the ac load line\")\n",
+ "Rlac=Rc#when there is no external Rl\n",
+ "Vce=Ic*Rc\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"The voltage is %.2f v \" %Vce)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drawing dc load line\n",
+ " for Vce\n",
+ "plot point A at\n",
+ "plot point B Ic=4.08mA and Vce=0\n",
+ " draw dc laod line through point A nad B\n",
+ "drawing the ac load line\n",
+ "The voltage is 4.53 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=4.5\n",
+ "Ib=40.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"from current characteristic at Vce=4.5V and Ib=40uA\")\n",
+ "Ic=4.0*10**-3\n",
+ "Ib=30.0*10**-6\n",
+ "hFE=Ic/Ib\n",
+ "print(\" the value of hFE is %d \" %hFE)\n",
+ "print(\"from output characteristic at Vce=4.5 and Ib=40uA\")\n",
+ "Ic=0.2\n",
+ "Vce=6\n",
+ "hoe=(Ic/Vce)\n",
+ "R=1/hoe\n",
+ "\n",
+ "#Results\n",
+ "print(\"the value of hoe is %3.1fuS \" %(hoe*10**3))\n",
+ "print(\"the value of 1/hoe is %3.1fuS \" %(1/hoe))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from current characteristic at Vce=4.5V and Ib=40uA\n",
+ " the value of hFE is 133 \n",
+ "from output characteristic at Vce=4.5 and Ib=40uA\n",
+ "the value of hoe is 33.3uS \n",
+ "the value of 1/hoe is 30.0uS \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hfe=133.0\n",
+ "hoe=33.3*10**-6\n",
+ "hfc=1+hfe\n",
+ "\n",
+ "#Calculations\n",
+ "hob=hoe/(1+hfe)\n",
+ "A=hfe/(1+hfe)\n",
+ "\n",
+ "#Results\n",
+ "print(\"tye value of a is %3.1fuS \" %(A))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tye value of a is 1.0uS \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=20.0*10**-6\n",
+ "Ic=1.0*10**-3\n",
+ "Ie=Ic\n",
+ "\n",
+ "#Calculations\n",
+ "re=(26*10**-3)/Ie\n",
+ "hfe=Ic/Ib\n",
+ "hie=(1+hfe)*re\n",
+ "r=hie\n",
+ "B=hfe\n",
+ "\n",
+ "#Results\n",
+ "print(\"the value of b is %3.1f \" %(B))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of b is 50.0 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "hoe=1*10**-6\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" input impedance Zi=R1||R2||hie\")\n",
+ "Zi=((R1*R2*hie)/(R1+R2+hie))*10**-3\n",
+ "print(\" input impedance is %3.2fKohm \" %Zi)\n",
+ "print(\"output impedance is Zo=Rc||(1/hoe)\")\n",
+ "Zo=((Rc*(1/hoe))/(Rc+(1/hoe)))*10**-3\n",
+ "print(\" output impadance is %f3.2fKohm \" %Zo)\n",
+ "Av=-(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %d \" %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input impedance Zi=R1||R2||hie\n",
+ " input impedance is 63416.34Kohm \n",
+ "output impedance is Zo=Rc||(1/hoe)\n",
+ " output impadance is 3.8848493.2fKohm \n",
+ " voltage gain is -132 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Ic=1.5*10**-3\n",
+ "Rc=4.7*10**3\n",
+ "Rl=56.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "re=(26*10**-3)/Ie\n",
+ "Av=-(((Rc*Rl)/(Rc+Rl))/re)\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %d \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage gain is -250 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "hoe=1.0*10**-6\n",
+ "Re=4.7*10**3\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+Re*(1+hfe)\n",
+ "print(\" input impedance is Zi=R1||R2||Zb\")\n",
+ "Zi=((R1*R2*Zb)/(R1+R2+Zb))\n",
+ "print(\" input circuit resistance is %3.3fKohm \" %Zi)\n",
+ "Zo=Rc\n",
+ "Av=-hfe*((Rc*Rl)/(Rc+Rl))/(hie+Re*(1+hfe))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input impedance is Zi=R1||R2||Zb\n",
+ " input circuit resistance is 2830983654.045Kohm \n",
+ "voltage gain is -0.777 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "R1=10.0*10**3\n",
+ "R2=10.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Rl=12.0*10**3\n",
+ "rs=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" Rl is not connected\")\n",
+ "hic=hie\n",
+ "hfc=1+hfe\n",
+ "Zb=hic+hfc*(Re)\n",
+ "Zi=(R1*R2*Zb)/(R1+R2+Zb)\n",
+ "Ze=(hic+(R1*R2*rs)/(R1+R2+rs))/hfc\n",
+ "Z0=(Ze*Re)/(Ze+Re)\n",
+ "print(\" when Rl is connected\")\n",
+ "Zb=hic+hfc*((Re*Rl)/(Re+Rl))\n",
+ "Zi=(R1*R2*Zb)/(R1+R2+Zb)\n",
+ "hib=hie/(1+hfe)\n",
+ "Av=((Re*Rl)/(Re+Rl))/(hib+((Re*Rl)/(Re+Rl)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rl is not connected\n",
+ " when Rl is connected\n",
+ "voltage gain is 0.992 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "Re=4.7*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "hib=hie/(1+hfe)\n",
+ "hfb=hfe/(1+hfe)\n",
+ "Zi=(hib*Re)/(Re+hib)\n",
+ "print(\"input impedance is %3.2fohm \" %Zi)\n",
+ "Zo=Rc\n",
+ "print(\" output impedance is %3.2fohm \" %Zo)\n",
+ "Av=(hfb*((Rc*Rl)/(Rc+Rl)))/hib\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %3.2f \" %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance is 27.47ohm \n",
+ " output impedance is 3900.00ohm \n",
+ " voltage gain is 132.96 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hib=27.6\n",
+ "hfb=.987\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Ze=hib+Rb*(1-hfb)\n",
+ "Zi=(Ze*Re)/(Ze+Re)\n",
+ "Av=(hfb*((Rc*Rl)/(Rc+Rl)))/(hib+Rb*(1-hfb))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain is 8.609 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=5.6*10**3\n",
+ "Rl=33.0*10**3\n",
+ "rs=600.0\n",
+ "hfe=100\n",
+ "hie=1.5*10**3\n",
+ "vs=50.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" CE circuit operation with vs at transistor base and Re bypassed\")\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Zb=hie\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Zi=(Rb*Zb)/(Rb+Zb)\n",
+ "vi=(vs*Zi)/(rs+Zi)\n",
+ "vo=Av*vi\n",
+ "print(\"Cb circuit operation with vs at emitter and the base resistor bypassed\")\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Ze=hie/(1+hfe)\n",
+ "Zi=(Ze*Re)/(Ze+Re)\n",
+ "vi=(vs*Zi)/(rs+Zi)\n",
+ "vo=Av*vi\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage vo is %3.2f \" %(vo*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CE circuit operation with vs at transistor base and Re bypassed\n",
+ "Cb circuit operation with vs at emitter and the base resistor bypassed\n",
+ "voltage vo is 384.29 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Io=50.0*10**-9\n",
+ "Vbe=.7\n",
+ "Vbc=-10\n",
+ "Af=.995\n",
+ "Ar=.5\n",
+ "Vt=26.0*10**-3\n",
+ "n=2.0\n",
+ "Vd=-10.0\n",
+ "\n",
+ "#Calculations\n",
+ "x=Vd/(n*Vt)\n",
+ "Idc=(Io*((2.73**-x)-1))*10**9\n",
+ "Idc=Io*(-1)\n",
+ "y=Vbe/(n*Vt)\n",
+ "Ide=Io*((2.73**y)-1)\n",
+ "I1=Af*Ide\n",
+ "I2=Ar*Idc\n",
+ "Ic=I1-Idc\n",
+ "Ie=Ide-I2\n",
+ "Ib=Ie-Ic\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %(Ib*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain is 185.909 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter6_1.ipynb b/Electronic_Devices_and_Circuits/Chapter6_1.ipynb
new file mode 100755
index 00000000..85bada6c
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter6_1.ipynb
@@ -0,0 +1,656 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Ac analysis of BJT circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=12.0\n",
+ "R2=15.0*10**3\n",
+ "R1=33.0*10**3\n",
+ "rs=600\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"with no signal source\")\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "print(\" base bais voltage when no signal source is present %3.2fV \" %Vb)\n",
+ "print(\" signal source directly connected\")\n",
+ "Vb=(Vcc*((rs*R2)/(rs+R2))/(R1+((rs*R2)/(rs+R2))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"base bais voltage is %3.2fV \" %Vb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "with no signal source\n",
+ " base bais voltage when no signal source is present 3.75V \n",
+ " signal source directly connected\n",
+ "base bais voltage is 0.21V \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rc=2.2*10**3\n",
+ "Re=2.7*10**3\n",
+ "R1=18.0*10**3\n",
+ "R2=8.2*10**3\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"drawing dc load line\")\n",
+ "Rldc=Rc+Re\n",
+ "print(\" for Vce\")\n",
+ "Ic=0\n",
+ "Vcc=20\n",
+ "Vce=Vcc-Ic*(Rc+Re)\n",
+ "print(\"plot point A at\")\n",
+ "Ic=Vcc/(Rc+Re)\n",
+ "print(\"plot point B Ic=4.08mA and Vce=0\")\n",
+ "print(\" draw dc laod line through point A nad B\")\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "Ve=Vb-Vbe\n",
+ "Ic=Ve/Re\n",
+ "Ie=Ic\n",
+ "print(\"drawing the ac load line\")\n",
+ "Rlac=Rc#when there is no external Rl\n",
+ "Vce=Ic*Rc\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"The voltage is %.2f v \" %Vce)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drawing dc load line\n",
+ " for Vce\n",
+ "plot point A at\n",
+ "plot point B Ic=4.08mA and Vce=0\n",
+ " draw dc laod line through point A nad B\n",
+ "drawing the ac load line\n",
+ "The voltage is 4.53 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=4.5\n",
+ "Ib=40.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"from current characteristic at Vce=4.5V and Ib=40uA\")\n",
+ "Ic=4.0*10**-3\n",
+ "Ib=30.0*10**-6\n",
+ "hFE=Ic/Ib\n",
+ "print(\" the value of hFE is %d \" %hFE)\n",
+ "print(\"from output characteristic at Vce=4.5 and Ib=40uA\")\n",
+ "Ic=0.2\n",
+ "Vce=6\n",
+ "hoe=(Ic/Vce)\n",
+ "R=1/hoe\n",
+ "\n",
+ "#Results\n",
+ "print(\"the value of hoe is %3.1fuS \" %(hoe*10**3))\n",
+ "print(\"the value of 1/hoe is %3.1fuS \" %(1/hoe))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from current characteristic at Vce=4.5V and Ib=40uA\n",
+ " the value of hFE is 133 \n",
+ "from output characteristic at Vce=4.5 and Ib=40uA\n",
+ "the value of hoe is 33.3uS \n",
+ "the value of 1/hoe is 30.0uS \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hfe=133.0\n",
+ "hoe=33.3*10**-6\n",
+ "hfc=1+hfe\n",
+ "\n",
+ "#Calculations\n",
+ "hob=hoe/(1+hfe)\n",
+ "A=hfe/(1+hfe)\n",
+ "\n",
+ "#Results\n",
+ "print(\"tye value of a is %3.1fuS \" %(A))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tye value of a is 1.0uS \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=20.0*10**-6\n",
+ "Ic=1.0*10**-3\n",
+ "Ie=Ic\n",
+ "\n",
+ "#Calculations\n",
+ "re=(26*10**-3)/Ie\n",
+ "hfe=Ic/Ib\n",
+ "hie=(1+hfe)*re\n",
+ "r=hie\n",
+ "B=hfe\n",
+ "\n",
+ "#Results\n",
+ "print(\"the value of b is %3.1f \" %(B))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of b is 50.0 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "hoe=1*10**-6\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" input impedance Zi=R1||R2||hie\")\n",
+ "Zi=((R1*R2*hie)/(R1+R2+hie))*10**-3\n",
+ "print(\" input impedance is %3.2fKohm \" %Zi)\n",
+ "print(\"output impedance is Zo=Rc||(1/hoe)\")\n",
+ "Zo=((Rc*(1/hoe))/(Rc+(1/hoe)))*10**-3\n",
+ "print(\" output impadance is %f3.2fKohm \" %Zo)\n",
+ "Av=-(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %d \" %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input impedance Zi=R1||R2||hie\n",
+ " input impedance is 63416.34Kohm \n",
+ "output impedance is Zo=Rc||(1/hoe)\n",
+ " output impadance is 3.8848493.2fKohm \n",
+ " voltage gain is -132 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Ic=1.5*10**-3\n",
+ "Rc=4.7*10**3\n",
+ "Rl=56.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "re=(26*10**-3)/Ie\n",
+ "Av=-(((Rc*Rl)/(Rc+Rl))/re)\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %d \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage gain is -250 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "hoe=1.0*10**-6\n",
+ "Re=4.7*10**3\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+Re*(1+hfe)\n",
+ "print(\" input impedance is Zi=R1||R2||Zb\")\n",
+ "Zi=((R1*R2*Zb)/(R1+R2+Zb))\n",
+ "print(\" input circuit resistance is %3.3fKohm \" %Zi)\n",
+ "Zo=Rc\n",
+ "Av=-hfe*((Rc*Rl)/(Rc+Rl))/(hie+Re*(1+hfe))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input impedance is Zi=R1||R2||Zb\n",
+ " input circuit resistance is 2830983654.045Kohm \n",
+ "voltage gain is -0.777 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "R1=10.0*10**3\n",
+ "R2=10.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Rl=12.0*10**3\n",
+ "rs=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" Rl is not connected\")\n",
+ "hic=hie\n",
+ "hfc=1+hfe\n",
+ "Zb=hic+hfc*(Re)\n",
+ "Zi=(R1*R2*Zb)/(R1+R2+Zb)\n",
+ "Ze=(hic+(R1*R2*rs)/(R1+R2+rs))/hfc\n",
+ "Z0=(Ze*Re)/(Ze+Re)\n",
+ "print(\" when Rl is connected\")\n",
+ "Zb=hic+hfc*((Re*Rl)/(Re+Rl))\n",
+ "Zi=(R1*R2*Zb)/(R1+R2+Zb)\n",
+ "hib=hie/(1+hfe)\n",
+ "Av=((Re*Rl)/(Re+Rl))/(hib+((Re*Rl)/(Re+Rl)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rl is not connected\n",
+ " when Rl is connected\n",
+ "voltage gain is 0.992 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "Re=4.7*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "hib=hie/(1+hfe)\n",
+ "hfb=hfe/(1+hfe)\n",
+ "Zi=(hib*Re)/(Re+hib)\n",
+ "print(\"input impedance is %3.2fohm \" %Zi)\n",
+ "Zo=Rc\n",
+ "print(\" output impedance is %3.2fohm \" %Zo)\n",
+ "Av=(hfb*((Rc*Rl)/(Rc+Rl)))/hib\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %3.2f \" %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance is 27.47ohm \n",
+ " output impedance is 3900.00ohm \n",
+ " voltage gain is 132.96 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hib=27.6\n",
+ "hfb=.987\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Ze=hib+Rb*(1-hfb)\n",
+ "Zi=(Ze*Re)/(Ze+Re)\n",
+ "Av=(hfb*((Rc*Rl)/(Rc+Rl)))/(hib+Rb*(1-hfb))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain is 8.609 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=5.6*10**3\n",
+ "Rl=33.0*10**3\n",
+ "rs=600.0\n",
+ "hfe=100\n",
+ "hie=1.5*10**3\n",
+ "vs=50.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" CE circuit operation with vs at transistor base and Re bypassed\")\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Zb=hie\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Zi=(Rb*Zb)/(Rb+Zb)\n",
+ "vi=(vs*Zi)/(rs+Zi)\n",
+ "vo=Av*vi\n",
+ "print(\"Cb circuit operation with vs at emitter and the base resistor bypassed\")\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Ze=hie/(1+hfe)\n",
+ "Zi=(Ze*Re)/(Ze+Re)\n",
+ "vi=(vs*Zi)/(rs+Zi)\n",
+ "vo=Av*vi\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage vo is %3.2f \" %(vo*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CE circuit operation with vs at transistor base and Re bypassed\n",
+ "Cb circuit operation with vs at emitter and the base resistor bypassed\n",
+ "voltage vo is 384.29 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Io=50.0*10**-9\n",
+ "Vbe=.7\n",
+ "Vbc=-10\n",
+ "Af=.995\n",
+ "Ar=.5\n",
+ "Vt=26.0*10**-3\n",
+ "n=2.0\n",
+ "Vd=-10.0\n",
+ "\n",
+ "#Calculations\n",
+ "x=Vd/(n*Vt)\n",
+ "Idc=(Io*((2.73**-x)-1))*10**9\n",
+ "Idc=Io*(-1)\n",
+ "y=Vbe/(n*Vt)\n",
+ "Ide=Io*((2.73**y)-1)\n",
+ "I1=Af*Ide\n",
+ "I2=Ar*Idc\n",
+ "Ic=I1-Idc\n",
+ "Ie=Ide-I2\n",
+ "Ib=Ie-Ic\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %(Ib*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain is 185.909 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter6_2.ipynb b/Electronic_Devices_and_Circuits/Chapter6_2.ipynb
new file mode 100755
index 00000000..85bada6c
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter6_2.ipynb
@@ -0,0 +1,656 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Ac analysis of BJT circuits"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=12.0\n",
+ "R2=15.0*10**3\n",
+ "R1=33.0*10**3\n",
+ "rs=600\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"with no signal source\")\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "print(\" base bais voltage when no signal source is present %3.2fV \" %Vb)\n",
+ "print(\" signal source directly connected\")\n",
+ "Vb=(Vcc*((rs*R2)/(rs+R2))/(R1+((rs*R2)/(rs+R2))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"base bais voltage is %3.2fV \" %Vb)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "with no signal source\n",
+ " base bais voltage when no signal source is present 3.75V \n",
+ " signal source directly connected\n",
+ "base bais voltage is 0.21V \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Rc=2.2*10**3\n",
+ "Re=2.7*10**3\n",
+ "R1=18.0*10**3\n",
+ "R2=8.2*10**3\n",
+ "Vbe=.7\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"drawing dc load line\")\n",
+ "Rldc=Rc+Re\n",
+ "print(\" for Vce\")\n",
+ "Ic=0\n",
+ "Vcc=20\n",
+ "Vce=Vcc-Ic*(Rc+Re)\n",
+ "print(\"plot point A at\")\n",
+ "Ic=Vcc/(Rc+Re)\n",
+ "print(\"plot point B Ic=4.08mA and Vce=0\")\n",
+ "print(\" draw dc laod line through point A nad B\")\n",
+ "Vb=(Vcc*R2)/(R1+R2)\n",
+ "Ve=Vb-Vbe\n",
+ "Ic=Ve/Re\n",
+ "Ie=Ic\n",
+ "print(\"drawing the ac load line\")\n",
+ "Rlac=Rc#when there is no external Rl\n",
+ "Vce=Ic*Rc\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"The voltage is %.2f v \" %Vce)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drawing dc load line\n",
+ " for Vce\n",
+ "plot point A at\n",
+ "plot point B Ic=4.08mA and Vce=0\n",
+ " draw dc laod line through point A nad B\n",
+ "drawing the ac load line\n",
+ "The voltage is 4.53 v \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=4.5\n",
+ "Ib=40.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"from current characteristic at Vce=4.5V and Ib=40uA\")\n",
+ "Ic=4.0*10**-3\n",
+ "Ib=30.0*10**-6\n",
+ "hFE=Ic/Ib\n",
+ "print(\" the value of hFE is %d \" %hFE)\n",
+ "print(\"from output characteristic at Vce=4.5 and Ib=40uA\")\n",
+ "Ic=0.2\n",
+ "Vce=6\n",
+ "hoe=(Ic/Vce)\n",
+ "R=1/hoe\n",
+ "\n",
+ "#Results\n",
+ "print(\"the value of hoe is %3.1fuS \" %(hoe*10**3))\n",
+ "print(\"the value of 1/hoe is %3.1fuS \" %(1/hoe))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from current characteristic at Vce=4.5V and Ib=40uA\n",
+ " the value of hFE is 133 \n",
+ "from output characteristic at Vce=4.5 and Ib=40uA\n",
+ "the value of hoe is 33.3uS \n",
+ "the value of 1/hoe is 30.0uS \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hfe=133.0\n",
+ "hoe=33.3*10**-6\n",
+ "hfc=1+hfe\n",
+ "\n",
+ "#Calculations\n",
+ "hob=hoe/(1+hfe)\n",
+ "A=hfe/(1+hfe)\n",
+ "\n",
+ "#Results\n",
+ "print(\"tye value of a is %3.1fuS \" %(A))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tye value of a is 1.0uS \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Ib=20.0*10**-6\n",
+ "Ic=1.0*10**-3\n",
+ "Ie=Ic\n",
+ "\n",
+ "#Calculations\n",
+ "re=(26*10**-3)/Ie\n",
+ "hfe=Ic/Ib\n",
+ "hie=(1+hfe)*re\n",
+ "r=hie\n",
+ "B=hfe\n",
+ "\n",
+ "#Results\n",
+ "print(\"the value of b is %3.1f \" %(B))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of b is 50.0 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "hoe=1*10**-6\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" input impedance Zi=R1||R2||hie\")\n",
+ "Zi=((R1*R2*hie)/(R1+R2+hie))*10**-3\n",
+ "print(\" input impedance is %3.2fKohm \" %Zi)\n",
+ "print(\"output impedance is Zo=Rc||(1/hoe)\")\n",
+ "Zo=((Rc*(1/hoe))/(Rc+(1/hoe)))*10**-3\n",
+ "print(\" output impadance is %f3.2fKohm \" %Zo)\n",
+ "Av=-(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %d \" %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input impedance Zi=R1||R2||hie\n",
+ " input impedance is 63416.34Kohm \n",
+ "output impedance is Zo=Rc||(1/hoe)\n",
+ " output impadance is 3.8848493.2fKohm \n",
+ " voltage gain is -132 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Ic=1.5*10**-3\n",
+ "Rc=4.7*10**3\n",
+ "Rl=56.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "re=(26*10**-3)/Ie\n",
+ "Av=-(((Rc*Rl)/(Rc+Rl))/re)\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %d \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " voltage gain is -250 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "hoe=1.0*10**-6\n",
+ "Re=4.7*10**3\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Zb=hie+Re*(1+hfe)\n",
+ "print(\" input impedance is Zi=R1||R2||Zb\")\n",
+ "Zi=((R1*R2*Zb)/(R1+R2+Zb))\n",
+ "print(\" input circuit resistance is %3.3fKohm \" %Zi)\n",
+ "Zo=Rc\n",
+ "Av=-hfe*((Rc*Rl)/(Rc+Rl))/(hie+Re*(1+hfe))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input impedance is Zi=R1||R2||Zb\n",
+ " input circuit resistance is 2830983654.045Kohm \n",
+ "voltage gain is -0.777 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "R1=10.0*10**3\n",
+ "R2=10.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Rl=12.0*10**3\n",
+ "rs=1.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" Rl is not connected\")\n",
+ "hic=hie\n",
+ "hfc=1+hfe\n",
+ "Zb=hic+hfc*(Re)\n",
+ "Zi=(R1*R2*Zb)/(R1+R2+Zb)\n",
+ "Ze=(hic+(R1*R2*rs)/(R1+R2+rs))/hfc\n",
+ "Z0=(Ze*Re)/(Ze+Re)\n",
+ "print(\" when Rl is connected\")\n",
+ "Zb=hic+hfc*((Re*Rl)/(Re+Rl))\n",
+ "Zi=(R1*R2*Zb)/(R1+R2+Zb)\n",
+ "hib=hie/(1+hfe)\n",
+ "Av=((Re*Rl)/(Re+Rl))/(hib+((Re*Rl)/(Re+Rl)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rl is not connected\n",
+ " when Rl is connected\n",
+ "voltage gain is 0.992 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hie=2.1*10**3\n",
+ "hfe=75.0\n",
+ "Re=4.7*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "hib=hie/(1+hfe)\n",
+ "hfb=hfe/(1+hfe)\n",
+ "Zi=(hib*Re)/(Re+hib)\n",
+ "print(\"input impedance is %3.2fohm \" %Zi)\n",
+ "Zo=Rc\n",
+ "print(\" output impedance is %3.2fohm \" %Zo)\n",
+ "Av=(hfb*((Rc*Rl)/(Rc+Rl)))/hib\n",
+ "\n",
+ "#Results\n",
+ "print(\" voltage gain is %3.2f \" %Av)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input impedance is 27.47ohm \n",
+ " output impedance is 3900.00ohm \n",
+ " voltage gain is 132.96 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page No 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "hib=27.6\n",
+ "hfb=.987\n",
+ "R1=68.0*10**3\n",
+ "R2=56.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Rc=3.9*10**3\n",
+ "Rl=82.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Ze=hib+Rb*(1-hfb)\n",
+ "Zi=(Ze*Re)/(Ze+Re)\n",
+ "Av=(hfb*((Rc*Rl)/(Rc+Rl)))/(hib+Rb*(1-hfb))\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %Av)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain is 8.609 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Rc=5.6*10**3\n",
+ "Rl=33.0*10**3\n",
+ "rs=600.0\n",
+ "hfe=100\n",
+ "hie=1.5*10**3\n",
+ "vs=50.0*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" CE circuit operation with vs at transistor base and Re bypassed\")\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Zb=hie\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Zi=(Rb*Zb)/(Rb+Zb)\n",
+ "vi=(vs*Zi)/(rs+Zi)\n",
+ "vo=Av*vi\n",
+ "print(\"Cb circuit operation with vs at emitter and the base resistor bypassed\")\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Ze=hie/(1+hfe)\n",
+ "Zi=(Ze*Re)/(Ze+Re)\n",
+ "vi=(vs*Zi)/(rs+Zi)\n",
+ "vo=Av*vi\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage vo is %3.2f \" %(vo*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CE circuit operation with vs at transistor base and Re bypassed\n",
+ "Cb circuit operation with vs at emitter and the base resistor bypassed\n",
+ "voltage vo is 384.29 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Io=50.0*10**-9\n",
+ "Vbe=.7\n",
+ "Vbc=-10\n",
+ "Af=.995\n",
+ "Ar=.5\n",
+ "Vt=26.0*10**-3\n",
+ "n=2.0\n",
+ "Vd=-10.0\n",
+ "\n",
+ "#Calculations\n",
+ "x=Vd/(n*Vt)\n",
+ "Idc=(Io*((2.73**-x)-1))*10**9\n",
+ "Idc=Io*(-1)\n",
+ "y=Vbe/(n*Vt)\n",
+ "Ide=Io*((2.73**y)-1)\n",
+ "I1=Af*Ide\n",
+ "I2=Ar*Idc\n",
+ "Ic=I1-Idc\n",
+ "Ie=Ide-I2\n",
+ "Ib=Ie-Ic\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage gain is %3.3f \" %(Ib*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage gain is 185.909 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter8.ipynb b/Electronic_Devices_and_Circuits/Chapter8.ipynb
new file mode 100755
index 00000000..d91fc639
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter8.ipynb
@@ -0,0 +1,499 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : BJT specifications and performance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P2=25.0*10**-3#when frequency increase to 20KHz\n",
+ "P1=50.0*10**-3#when signal frequency is 5KHz\n",
+ "\n",
+ "#Calculations\n",
+ "Po=10*math.log((P2/P1),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\" output power change in decibels is %.2f dB \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " output power change in decibels is -3.01 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "v1=1# output voltage measured at 5KHz\n",
+ "v2=.707# output voltage measure at 20kHz\n",
+ "\n",
+ "#Calculations\n",
+ "Po=20*math.log((v2/v1),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\" output power change is %.2f dB \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " output power change is -3.01 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=1.0*10**-3\n",
+ "hfe=50.0\n",
+ "hie=1.3*10**3\n",
+ "fT=250.0*10**6\n",
+ "Cbc=5.0*10**-12\n",
+ "Rc=8.2*10**3\n",
+ "Rl=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Cbe=(6.1*Ie)/fT\n",
+ "Cin=(Cbe+(1+Av)*Cbc)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" input capacitance when the circuit operated as CE is %.2fnF \"%Cin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input capacitance when the circuit operated as CE is 1.49nF \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=100*10**3\n",
+ "R2=47.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Cbc=5.0*10**-12\n",
+ "Cbe=24.4*10**-12\n",
+ "hfe=50\n",
+ "hie=1.3*10**3\n",
+ "hib=24.5\n",
+ "rs=hib\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" common emitter circuit\")\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Zi=(Rb*hie)/(Rb+hie)\n",
+ "Cin=1.48*10**-9\n",
+ "f2=1/(2*3.14*Cin*((rs*Zi)/(rs+Zi)))\n",
+ "print(\"input-capacitance upper cutoff frequency is %dHz \" %f2)\n",
+ "print(\"common base circuit\")\n",
+ "Zi=(Re*hib)/(Re+hib)\n",
+ "Cin=(Cbe+Cbc)\n",
+ "f2=(1/(2*3.14*Cin*((rs*Zi)/(rs+Zi))))*10**-6\n",
+ "\n",
+ "#Results\n",
+ "print(\" input capacitance upper cutoff when operating as CB circuit with base bypassed to ground is %.2f MHz \" %f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " common emitter circuit\n",
+ "input-capacitance upper cutoff frequency is 265447Hz \n",
+ "common base circuit\n",
+ " input capacitance upper cutoff when operating as CB circuit with base bypassed to ground is 231.25 MHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "fT=50.0*10**6\n",
+ "hfe=50.0\n",
+ "f2o=60.0*10**3\n",
+ "Rc=10.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fae=fT/hfe\n",
+ "C4=(1.0/(2*3.14*f2o*Rc))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitance required for C4 to give 60kHz upper cutoff frequency is %.2f pF \" %C4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitance required for C4 to give 60kHz upper cutoff frequency is 265.39 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "ton=100.0*10**-9\n",
+ "Rs=600.0\n",
+ "Rb=4.7*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "C1=(ton/Rs)*10**12\n",
+ "print(\" suitable speed up capacitor is %dpF \" %C1)\n",
+ "C1=160*10**-12#standard value\n",
+ "PWmin=(5*Rs*C1)\n",
+ "SWmin=5*Rb*C1\n",
+ "fmax=1/(PWmin+SWmin)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum signal frequency is %.2f Hz \" %(fmax/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable speed up capacitor is 166pF \n",
+ "maximum signal frequency is 235.85 Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page No 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=30.0*10**3\n",
+ "R2=30.0*10**3\n",
+ "rs=30.0*10**3\n",
+ "f2=40.0*10**3\n",
+ "f1=100.0\n",
+ "k=1.37*10**-23\n",
+ "R=10.0*10**3\n",
+ "Av=600.0\n",
+ "Ri=3.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Rg=(rs*Rb)/(rs+Rb)\n",
+ "T=(273+25)\n",
+ "B=f2-f1\n",
+ "en=math.sqrt(4*k*T*B*R)\n",
+ "eni=en*((Ri/(Ri+Rg)))\n",
+ "eno=(Av*eni)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"noise output voltage is %.2f uV \" %eno)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "noise output voltage is 353.44 uV \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=30.0*10**-6\n",
+ "Vce=5.0\n",
+ "eno=354.0*10**-6\n",
+ "NF=10.0\n",
+ "F=2.51#F=antilog(NF/10)\n",
+ "\n",
+ "#Calculations\n",
+ "Vn=((math.sqrt(F))*eno)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"total noise output volateg for amplifier is %.2f uV \" %Vn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total noise output volateg for amplifier is 560.84 uV \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Pd25=625.0*10**-3\n",
+ "D=5.0*10**-3\n",
+ "Vce=10.0\n",
+ "T2=55.0\n",
+ "\n",
+ "#Calculations\n",
+ "Pdt2=Pd25-D*(T2-25)\n",
+ "Pd=Pdt2\n",
+ "Ic=Pd/Vce\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum Ic level is %.2fA \" %(Ic*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum Ic level is 47.50A \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13 Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pd=80.0\n",
+ "Vce=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=Pd/Vce\n",
+ "print(\"point 1 Vce=60 and Ic= %.2f A\" %Ic)\n",
+ "Vce=40.0\n",
+ "Ic=Pd/Vce\n",
+ "print(\"point 2 Vce=40 and Ic= %.2f A\" %Ic)\n",
+ "Vce=20.0\n",
+ "Ic=Pd/Vce\n",
+ "print(\" point 3 Vce=20 and Ic= %.2f A\" %Ic)\n",
+ "Vce=10.0\n",
+ "Ic=Pd/Vce\n",
+ "\n",
+ "#Results\n",
+ "print(\" point 4 Vce=10 and Ic= %.2f A\" %Ic)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "point 1 Vce=60 and Ic= 1.33 A\n",
+ "point 2 Vce=40 and Ic= 2.00 A\n",
+ " point 3 Vce=20 and Ic= 4.00 A\n",
+ " point 4 Vce=10 and Ic= 8.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=20.0\n",
+ "Ic=1.0\n",
+ "T2=90.0\n",
+ "T1=25.0\n",
+ "\n",
+ "#Calculations\n",
+ "Q=Vce*Ic\n",
+ "Qcs=.4\n",
+ "Qjc=1#from table\n",
+ "Qsa=((T2-T1)/Q)-(Qjc+Qcs)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Qsa= %.2f \" %Qsa)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Qsa= 1.85 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter8_1.ipynb b/Electronic_Devices_and_Circuits/Chapter8_1.ipynb
new file mode 100755
index 00000000..d91fc639
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter8_1.ipynb
@@ -0,0 +1,499 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : BJT specifications and performance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P2=25.0*10**-3#when frequency increase to 20KHz\n",
+ "P1=50.0*10**-3#when signal frequency is 5KHz\n",
+ "\n",
+ "#Calculations\n",
+ "Po=10*math.log((P2/P1),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\" output power change in decibels is %.2f dB \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " output power change in decibels is -3.01 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "v1=1# output voltage measured at 5KHz\n",
+ "v2=.707# output voltage measure at 20kHz\n",
+ "\n",
+ "#Calculations\n",
+ "Po=20*math.log((v2/v1),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\" output power change is %.2f dB \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " output power change is -3.01 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=1.0*10**-3\n",
+ "hfe=50.0\n",
+ "hie=1.3*10**3\n",
+ "fT=250.0*10**6\n",
+ "Cbc=5.0*10**-12\n",
+ "Rc=8.2*10**3\n",
+ "Rl=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Cbe=(6.1*Ie)/fT\n",
+ "Cin=(Cbe+(1+Av)*Cbc)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" input capacitance when the circuit operated as CE is %.2fnF \"%Cin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input capacitance when the circuit operated as CE is 1.49nF \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=100*10**3\n",
+ "R2=47.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Cbc=5.0*10**-12\n",
+ "Cbe=24.4*10**-12\n",
+ "hfe=50\n",
+ "hie=1.3*10**3\n",
+ "hib=24.5\n",
+ "rs=hib\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" common emitter circuit\")\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Zi=(Rb*hie)/(Rb+hie)\n",
+ "Cin=1.48*10**-9\n",
+ "f2=1/(2*3.14*Cin*((rs*Zi)/(rs+Zi)))\n",
+ "print(\"input-capacitance upper cutoff frequency is %dHz \" %f2)\n",
+ "print(\"common base circuit\")\n",
+ "Zi=(Re*hib)/(Re+hib)\n",
+ "Cin=(Cbe+Cbc)\n",
+ "f2=(1/(2*3.14*Cin*((rs*Zi)/(rs+Zi))))*10**-6\n",
+ "\n",
+ "#Results\n",
+ "print(\" input capacitance upper cutoff when operating as CB circuit with base bypassed to ground is %.2f MHz \" %f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " common emitter circuit\n",
+ "input-capacitance upper cutoff frequency is 265447Hz \n",
+ "common base circuit\n",
+ " input capacitance upper cutoff when operating as CB circuit with base bypassed to ground is 231.25 MHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "fT=50.0*10**6\n",
+ "hfe=50.0\n",
+ "f2o=60.0*10**3\n",
+ "Rc=10.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fae=fT/hfe\n",
+ "C4=(1.0/(2*3.14*f2o*Rc))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitance required for C4 to give 60kHz upper cutoff frequency is %.2f pF \" %C4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitance required for C4 to give 60kHz upper cutoff frequency is 265.39 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "ton=100.0*10**-9\n",
+ "Rs=600.0\n",
+ "Rb=4.7*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "C1=(ton/Rs)*10**12\n",
+ "print(\" suitable speed up capacitor is %dpF \" %C1)\n",
+ "C1=160*10**-12#standard value\n",
+ "PWmin=(5*Rs*C1)\n",
+ "SWmin=5*Rb*C1\n",
+ "fmax=1/(PWmin+SWmin)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum signal frequency is %.2f Hz \" %(fmax/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable speed up capacitor is 166pF \n",
+ "maximum signal frequency is 235.85 Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page No 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=30.0*10**3\n",
+ "R2=30.0*10**3\n",
+ "rs=30.0*10**3\n",
+ "f2=40.0*10**3\n",
+ "f1=100.0\n",
+ "k=1.37*10**-23\n",
+ "R=10.0*10**3\n",
+ "Av=600.0\n",
+ "Ri=3.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Rg=(rs*Rb)/(rs+Rb)\n",
+ "T=(273+25)\n",
+ "B=f2-f1\n",
+ "en=math.sqrt(4*k*T*B*R)\n",
+ "eni=en*((Ri/(Ri+Rg)))\n",
+ "eno=(Av*eni)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"noise output voltage is %.2f uV \" %eno)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "noise output voltage is 353.44 uV \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=30.0*10**-6\n",
+ "Vce=5.0\n",
+ "eno=354.0*10**-6\n",
+ "NF=10.0\n",
+ "F=2.51#F=antilog(NF/10)\n",
+ "\n",
+ "#Calculations\n",
+ "Vn=((math.sqrt(F))*eno)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"total noise output volateg for amplifier is %.2f uV \" %Vn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total noise output volateg for amplifier is 560.84 uV \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Pd25=625.0*10**-3\n",
+ "D=5.0*10**-3\n",
+ "Vce=10.0\n",
+ "T2=55.0\n",
+ "\n",
+ "#Calculations\n",
+ "Pdt2=Pd25-D*(T2-25)\n",
+ "Pd=Pdt2\n",
+ "Ic=Pd/Vce\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum Ic level is %.2fA \" %(Ic*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum Ic level is 47.50A \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13 Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pd=80.0\n",
+ "Vce=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=Pd/Vce\n",
+ "print(\"point 1 Vce=60 and Ic= %.2f A\" %Ic)\n",
+ "Vce=40.0\n",
+ "Ic=Pd/Vce\n",
+ "print(\"point 2 Vce=40 and Ic= %.2f A\" %Ic)\n",
+ "Vce=20.0\n",
+ "Ic=Pd/Vce\n",
+ "print(\" point 3 Vce=20 and Ic= %.2f A\" %Ic)\n",
+ "Vce=10.0\n",
+ "Ic=Pd/Vce\n",
+ "\n",
+ "#Results\n",
+ "print(\" point 4 Vce=10 and Ic= %.2f A\" %Ic)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "point 1 Vce=60 and Ic= 1.33 A\n",
+ "point 2 Vce=40 and Ic= 2.00 A\n",
+ " point 3 Vce=20 and Ic= 4.00 A\n",
+ " point 4 Vce=10 and Ic= 8.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=20.0\n",
+ "Ic=1.0\n",
+ "T2=90.0\n",
+ "T1=25.0\n",
+ "\n",
+ "#Calculations\n",
+ "Q=Vce*Ic\n",
+ "Qcs=.4\n",
+ "Qjc=1#from table\n",
+ "Qsa=((T2-T1)/Q)-(Qjc+Qcs)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Qsa= %.2f \" %Qsa)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Qsa= 1.85 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/Chapter8_2.ipynb b/Electronic_Devices_and_Circuits/Chapter8_2.ipynb
new file mode 100755
index 00000000..d91fc639
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/Chapter8_2.ipynb
@@ -0,0 +1,499 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : BJT specifications and performance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P2=25.0*10**-3#when frequency increase to 20KHz\n",
+ "P1=50.0*10**-3#when signal frequency is 5KHz\n",
+ "\n",
+ "#Calculations\n",
+ "Po=10*math.log((P2/P1),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\" output power change in decibels is %.2f dB \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " output power change in decibels is -3.01 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "v1=1# output voltage measured at 5KHz\n",
+ "v2=.707# output voltage measure at 20kHz\n",
+ "\n",
+ "#Calculations\n",
+ "Po=20*math.log((v2/v1),10)\n",
+ "\n",
+ "#Results\n",
+ "print(\" output power change is %.2f dB \" %Po)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " output power change is -3.01 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=1.0*10**-3\n",
+ "hfe=50.0\n",
+ "hie=1.3*10**3\n",
+ "fT=250.0*10**6\n",
+ "Cbc=5.0*10**-12\n",
+ "Rc=8.2*10**3\n",
+ "Rl=100.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Ie=Ic\n",
+ "Av=(hfe*((Rc*Rl)/(Rc+Rl)))/hie\n",
+ "Cbe=(6.1*Ie)/fT\n",
+ "Cin=(Cbe+(1+Av)*Cbc)*10**9\n",
+ "\n",
+ "#Results\n",
+ "print(\" input capacitance when the circuit operated as CE is %.2fnF \"%Cin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " input capacitance when the circuit operated as CE is 1.49nF \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=100*10**3\n",
+ "R2=47.0*10**3\n",
+ "Re=4.7*10**3\n",
+ "Cbc=5.0*10**-12\n",
+ "Cbe=24.4*10**-12\n",
+ "hfe=50\n",
+ "hie=1.3*10**3\n",
+ "hib=24.5\n",
+ "rs=hib\n",
+ "rs=600.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\" common emitter circuit\")\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Zi=(Rb*hie)/(Rb+hie)\n",
+ "Cin=1.48*10**-9\n",
+ "f2=1/(2*3.14*Cin*((rs*Zi)/(rs+Zi)))\n",
+ "print(\"input-capacitance upper cutoff frequency is %dHz \" %f2)\n",
+ "print(\"common base circuit\")\n",
+ "Zi=(Re*hib)/(Re+hib)\n",
+ "Cin=(Cbe+Cbc)\n",
+ "f2=(1/(2*3.14*Cin*((rs*Zi)/(rs+Zi))))*10**-6\n",
+ "\n",
+ "#Results\n",
+ "print(\" input capacitance upper cutoff when operating as CB circuit with base bypassed to ground is %.2f MHz \" %f2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " common emitter circuit\n",
+ "input-capacitance upper cutoff frequency is 265447Hz \n",
+ "common base circuit\n",
+ " input capacitance upper cutoff when operating as CB circuit with base bypassed to ground is 231.25 MHz \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "fT=50.0*10**6\n",
+ "hfe=50.0\n",
+ "f2o=60.0*10**3\n",
+ "Rc=10.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "fae=fT/hfe\n",
+ "C4=(1.0/(2*3.14*f2o*Rc))*10**12\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitance required for C4 to give 60kHz upper cutoff frequency is %.2f pF \" %C4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitance required for C4 to give 60kHz upper cutoff frequency is 265.39 pF \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "ton=100.0*10**-9\n",
+ "Rs=600.0\n",
+ "Rb=4.7*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "C1=(ton/Rs)*10**12\n",
+ "print(\" suitable speed up capacitor is %dpF \" %C1)\n",
+ "C1=160*10**-12#standard value\n",
+ "PWmin=(5*Rs*C1)\n",
+ "SWmin=5*Rb*C1\n",
+ "fmax=1/(PWmin+SWmin)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum signal frequency is %.2f Hz \" %(fmax/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " suitable speed up capacitor is 166pF \n",
+ "maximum signal frequency is 235.85 Hz \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page No 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R1=30.0*10**3\n",
+ "R2=30.0*10**3\n",
+ "rs=30.0*10**3\n",
+ "f2=40.0*10**3\n",
+ "f1=100.0\n",
+ "k=1.37*10**-23\n",
+ "R=10.0*10**3\n",
+ "Av=600.0\n",
+ "Ri=3.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "Rb=(R1*R2)/(R1+R2)\n",
+ "Rg=(rs*Rb)/(rs+Rb)\n",
+ "T=(273+25)\n",
+ "B=f2-f1\n",
+ "en=math.sqrt(4*k*T*B*R)\n",
+ "eni=en*((Ri/(Ri+Rg)))\n",
+ "eno=(Av*eni)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"noise output voltage is %.2f uV \" %eno)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "noise output voltage is 353.44 uV \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "Ic=30.0*10**-6\n",
+ "Vce=5.0\n",
+ "eno=354.0*10**-6\n",
+ "NF=10.0\n",
+ "F=2.51#F=antilog(NF/10)\n",
+ "\n",
+ "#Calculations\n",
+ "Vn=((math.sqrt(F))*eno)*10**6\n",
+ "\n",
+ "#Results\n",
+ "print(\"total noise output volateg for amplifier is %.2f uV \" %Vn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total noise output volateg for amplifier is 560.84 uV \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Pd25=625.0*10**-3\n",
+ "D=5.0*10**-3\n",
+ "Vce=10.0\n",
+ "T2=55.0\n",
+ "\n",
+ "#Calculations\n",
+ "Pdt2=Pd25-D*(T2-25)\n",
+ "Pd=Pdt2\n",
+ "Ic=Pd/Vce\n",
+ "\n",
+ "#Results\n",
+ "print(\" maximum Ic level is %.2fA \" %(Ic*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum Ic level is 47.50A \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13 Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Pd=80.0\n",
+ "Vce=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "Ic=Pd/Vce\n",
+ "print(\"point 1 Vce=60 and Ic= %.2f A\" %Ic)\n",
+ "Vce=40.0\n",
+ "Ic=Pd/Vce\n",
+ "print(\"point 2 Vce=40 and Ic= %.2f A\" %Ic)\n",
+ "Vce=20.0\n",
+ "Ic=Pd/Vce\n",
+ "print(\" point 3 Vce=20 and Ic= %.2f A\" %Ic)\n",
+ "Vce=10.0\n",
+ "Ic=Pd/Vce\n",
+ "\n",
+ "#Results\n",
+ "print(\" point 4 Vce=10 and Ic= %.2f A\" %Ic)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "point 1 Vce=60 and Ic= 1.33 A\n",
+ "point 2 Vce=40 and Ic= 2.00 A\n",
+ " point 3 Vce=20 and Ic= 4.00 A\n",
+ " point 4 Vce=10 and Ic= 8.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Vce=20.0\n",
+ "Ic=1.0\n",
+ "T2=90.0\n",
+ "T1=25.0\n",
+ "\n",
+ "#Calculations\n",
+ "Q=Vce*Ic\n",
+ "Qcs=.4\n",
+ "Qjc=1#from table\n",
+ "Qsa=((T2-T1)/Q)-(Qjc+Qcs)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Qsa= %.2f \" %Qsa)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Qsa= 1.85 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter3.png b/Electronic_Devices_and_Circuits/screenshots/Chapter3.png
new file mode 100755
index 00000000..17bf554f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter3.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter3_1.png b/Electronic_Devices_and_Circuits/screenshots/Chapter3_1.png
new file mode 100755
index 00000000..17bf554f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter3_1.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter3_2.png b/Electronic_Devices_and_Circuits/screenshots/Chapter3_2.png
new file mode 100755
index 00000000..17bf554f
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter3_2.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter4.png b/Electronic_Devices_and_Circuits/screenshots/Chapter4.png
new file mode 100755
index 00000000..721d70c1
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter4.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter4_1.png b/Electronic_Devices_and_Circuits/screenshots/Chapter4_1.png
new file mode 100755
index 00000000..721d70c1
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter4_1.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter4_2.png b/Electronic_Devices_and_Circuits/screenshots/Chapter4_2.png
new file mode 100755
index 00000000..721d70c1
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter4_2.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter5.png b/Electronic_Devices_and_Circuits/screenshots/Chapter5.png
new file mode 100755
index 00000000..205ddb6d
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter5.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter5_1.png b/Electronic_Devices_and_Circuits/screenshots/Chapter5_1.png
new file mode 100755
index 00000000..205ddb6d
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter5_1.png
Binary files differ
diff --git a/Electronic_Devices_and_Circuits/screenshots/Chapter5_2.png b/Electronic_Devices_and_Circuits/screenshots/Chapter5_2.png
new file mode 100755
index 00000000..205ddb6d
--- /dev/null
+++ b/Electronic_Devices_and_Circuits/screenshots/Chapter5_2.png
Binary files differ
diff --git a/Elements_of_Power_system/Chapter_10.ipynb b/Elements_of_Power_system/Chapter_10.ipynb
new file mode 100755
index 00000000..b172aba8
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_10.ipynb
@@ -0,0 +1,732 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1ed2c66761e5c24becdae0bef9d3fd6079b2eecb8e7b4c62bdcfe4d4af9edc70"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - MECHANICAL DESIGN OF TRANSMISISON LINES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate maximum sag\n",
+ "import math\n",
+ "#Given data :\n",
+ "L=200.#**m\n",
+ "w=0.7#**kg\n",
+ "T=1400.#**kg\n",
+ "S=w*L**2./(8.*T)#**,m\n",
+ "print '%s %.2f' %(\"maximum sag(m) :\",S)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum sag(m) : 2.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Height above the ground\n",
+ "import math\n",
+ "#Given data :\n",
+ "W=680.##kg/km\n",
+ "L=260.##m\n",
+ "U_strength=3100.##kg\n",
+ "SF=2.##safety factor\n",
+ "Clearance=10.##m\n",
+ "T=U_strength/SF##kg\n",
+ "w=W/1000.##kg\n",
+ "S=w*L**2./(8.*T)##,m\n",
+ "h=Clearance+S##m\n",
+ "print '%s %.1f' %(\"Height above the ground(m) :\",h)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height above the ground(m) : 13.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Horizontal component of tension,Maximum sag,Sag will be half at the point where x coordinate(in m) will be\n",
+ "import math\n",
+ "import numpy \n",
+ "from numpy import roots\n",
+ "#Given data :\n",
+ "w=700./1000.##kg/m\n",
+ "L=300.##m\n",
+ "Tmax=3500.##kg\n",
+ "\n",
+ "S_T0=w*L**2./8.##,m\n",
+ "#Tmax=T0+w*S\n",
+ "#T0**2-T0*Tmax-w*S_T0=0\n",
+ "polynomial=([1, -Tmax, -w*S_T0])#\n",
+ "T0=numpy.roots(polynomial)##kg\n",
+ "T0=T0[0]##+ve sign taken\n",
+ "print '%s %.2f' %(\"Horizontal component of tension in kg is : \",T0)#\n",
+ "S=S_T0/T0##m\n",
+ "print '%s %.4f' %(\"Maximum sag in m : \",S)#\n",
+ "y=S/2.##m\n",
+ "x=math.sqrt(2.*y*T0/w)##m\n",
+ "print '%s %.f' %(\"Sag will be half at the point where x coordinate(in m) will be : \",x)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Horizontal component of tension in kg is : 3501.57\n",
+ "Maximum sag in m : 2.2490\n",
+ "Sag will be half at the point where x coordinate(in m) will be : 106\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum sag \n",
+ "import math\n",
+ "#Given data :\n",
+ "L=150.##m\n",
+ "wc=1.##kg\n",
+ "A=1.25##cm**2\n",
+ "U_stress=4200.##kg/cm**2\n",
+ "Pw=100.##kg/m**2(Wind pressure)\n",
+ "SF=4.##factor of safety\n",
+ "W_stress=U_stress/SF##kg/cm**2\n",
+ "T=W_stress*A##kg\n",
+ "d=math.sqrt(A/(math.pi/4.))##cm\n",
+ "w_w=Pw*d*10.**-2##kg\n",
+ "wr=math.sqrt(wc**2.+w_w**2.)##kg\n",
+ "S=wr*L**2./8./T##m\n",
+ "print '%s %.2f' %(\"Maximum sag(m)\",S)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum sag(m) 3.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sag(meter)\n",
+ "import math\n",
+ "#Given data :\n",
+ "L=160.##m\n",
+ "d=0.95##cm\n",
+ "wc=0.65##kg/m\n",
+ "U_stress=4250.##kg/cm**2\n",
+ "Pw=40.##kg/m**2(Wind pressure)\n",
+ "SF=5.##factor of safety\n",
+ "W_stress=U_stress/SF##kg/cm**2\n",
+ "T=W_stress*math.pi/4.*d**2.##kg\n",
+ "w_w=Pw*d*10.**-2##kg\n",
+ "wr=math.sqrt(wc**2.+w_w**2.)##kg\n",
+ "S=wr*L**2./8./T##m\n",
+ "print '%s %.2f' %(\"Sag(meter)\",round(S))#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sag(meter) 4.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sag in still air,Maximum Sag\n",
+ "import math\n",
+ "#Given data :\n",
+ "L=180.##m\n",
+ "D=1.27##cm\n",
+ "Pw=33.7##kg/m**2(Wind pressure)\n",
+ "r=1.25##cm\n",
+ "wc=1.13##kg/cm**2\n",
+ "U_stress=4220.##kg/cm**2\n",
+ "SF=5.##factor of safety\n",
+ "W_stress=U_stress/SF##kg/cm**2\n",
+ "T=W_stress*math.pi/4.*D**2.##kg\n",
+ "S=wc*L**2./8./T##msag in air\n",
+ "print '%s %.2f' %(\"Sag in still air(meter)\",S)#\n",
+ "w1=2890.3*r*10.**-2*(D+r)*10.**-2##kg/m\n",
+ "w_w=Pw*(D+2.*r)*10.**-2##kg\n",
+ "wr=math.sqrt((wc+w1)**2.+w_w**2.)##kg\n",
+ "Smax=wr*L**2./8./T##msag in air\n",
+ "print '%s %.3f' %(\"Maximum Sag(meter)\",Smax)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sag in still air(meter) 4.28\n",
+ "Maximum Sag(meter) 9.105\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E7 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum Sag \n",
+ "import math\n",
+ "#Given data :\n",
+ "D=19.5##mm\n",
+ "wc=0.85##kg/m\n",
+ "L=275.##m\n",
+ "Pw=39.##kg/m**2(Wind pressure)\n",
+ "r=13.##mm\n",
+ "U_stress=8000.##kg/cm**2\n",
+ "SF=2.##factor of safety\n",
+ "rho_i=910.##kg/m**3(density of ice)\n",
+ "T=U_stress/SF##kg\n",
+ "wi=rho_i*math.pi*r*10.**-3*(D+r)*10.**-3##kg\n",
+ "w_w=Pw*(D+2.*r)*10.**-3##kg\n",
+ "wr=math.sqrt((wc+wi)**2.+w_w**2)##kg\n",
+ "Smax=wr*L**2./8./T##msag in air\n",
+ "print '%s %.3f' %(\"Maximum Sag(meter)\",Smax)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Sag(meter) 6.422\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E8 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate \n",
+ "import math\n",
+ "#Given data :\n",
+ "wc=1.##kg/m\n",
+ "L=280.##m\n",
+ "D=20.##mm\n",
+ "r=10.##mm\n",
+ "Pw=40.##kg/m**2(Wind pressure)\n",
+ "rho_i=910.##kg/m**3(density of ice)\n",
+ "U_stress=10000.##kg/cm**2\n",
+ "SF=2.##factor of safety\n",
+ "wi=rho_i*math.pi*r*10.**-3*(D+r)*10.**-3##kg\n",
+ "w_w=Pw*(D+2.*r)*10.**-3##kg\n",
+ "wr=math.sqrt((wc+wi)**2.+w_w**2.)##kg(Resultant force per m length of conductor)\n",
+ "T=U_stress/SF##kg\n",
+ "Smax=wr*L**2./8./T##msag in air\n",
+ "print '%s %.1f' %(\"Maximum Sag(meter)\",Smax)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Sag(meter) 4.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E9 - Pg 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sag in inclined direction,Sag in vertical direction,Height of lowest cross arm\n",
+ "import math\n",
+ "#Given data :\n",
+ "L=250.##m\n",
+ "D=1.42##cm\n",
+ "wc=1.09##kg/m\n",
+ "Pw=37.8##kg/m**2(Wind pressure)\n",
+ "r=1.25##cm\n",
+ "Lis=1.43##m(insulator string length)\n",
+ "Clearance=7.62##m\n",
+ "rho_i=913.5##kg/m**3(density of ice)\n",
+ "stress=1050.##kg/cm**2\n",
+ "T=stress*math.pi/4.*D**2##kg\n",
+ "wi=rho_i*math.pi*r*10.**-2*(D+r)*10.**-2##kg\n",
+ "w_w=Pw*(D+2.*r)*10.**-2##kg\n",
+ "wr=math.sqrt((wc+wi)**2+w_w**2.)##kg(Resultant force per m length of conductor)\n",
+ "Smax=wr*L**2./8./T##max sag in air\n",
+ "print '%s %.4f' %(\"Sag in inclined direction(meter)\",Smax)#\n",
+ "Sdash=Smax*(wc+wi)/wr##max sag in air\n",
+ "print '%s %.2f' %(\"Sag in vertical direction(meter)\",Sdash)#\n",
+ "h=Clearance+Sdash+Lis##m\n",
+ "print '%s %.2f' %(\"Height of lowest cross arm(m)\",h)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sag in inclined direction(meter) 11.8756\n",
+ "Sag in vertical direction(meter) 9.62\n",
+ "Height of lowest cross arm(m) 18.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E10 - Pg 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Distance of lowest point,minimum point of catenary above the ground\n",
+ "import math\n",
+ "#Given data :\n",
+ "wc=0.35##kg/m\n",
+ "stress=800.##kg/cm**2\n",
+ "L=160.##m\n",
+ "SF=2.##safety factor\n",
+ "h=70.-65.##m\n",
+ "T=stress/SF##kg\n",
+ "x=L/2.+T*h/(wc*L)##m\n",
+ "print '%s %.2f' %(\"Distance of lowest point(m)\",x)#\n",
+ "S1=wc*x**2/SF/T##max sag in air\n",
+ "xmin=70.-S1##m\n",
+ "print '%s %.4f' %(\"minimum point of catenary above the ground(m)\",xmin)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Distance of lowest point(m) 115.71\n",
+ "minimum point of catenary above the ground(m) 64.1420\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E11 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Slant sag,Vertical Sag\n",
+ "import math\n",
+ "#Given data :\n",
+ "L=200.##m\n",
+ "h=10.##m\n",
+ "D=2.##cm\n",
+ "wc=2.3##kg/m\n",
+ "Pw=57.5##kg/m**2(wind pressure)\n",
+ "SF=4.##safety factor\n",
+ "stress=4220.##kg/cm**2\n",
+ "w_w=Pw*D*10.**-2##kg\n",
+ "wr=math.sqrt(wc**2.+w_w**2.)##kg\n",
+ "f=stress/SF##kg/cm**2\n",
+ "T=f*math.pi/4.*D**2.##kg\n",
+ "x=L/2.-T*h/(wr*L)##m\n",
+ "S1=wr*x**2./2./T##max sag in air\n",
+ "print '%s %.4f' %(\"Slant sag(m)\",S1)#\n",
+ "Sdash=wc*x**2./2./T##vertical sag\n",
+ "print '%s %.4f' %(\"Vertical Sag(meter)\",Sdash)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slant sag(m) 0.4904\n",
+ "Vertical Sag(meter) 0.4386\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E12 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Vertical Sag\n",
+ "import math\n",
+ "#Given data :\n",
+ "wc=1.925##kg/m\n",
+ "A=2.2##cm**2\n",
+ "f=8000.##kg/cm**2\n",
+ "L=600.##m\n",
+ "h=15.##m\n",
+ "D=2.##cm\n",
+ "SF=5.##safety factor\n",
+ "wi=1.##kg(load)\n",
+ "w=wi+wc##kg\n",
+ "T=f*A/SF##kg\n",
+ "x=L/2.-T*h/(w*L)##m\n",
+ "S2=w*(L-x)**2./2./T##m\n",
+ "print '%s %.2f' %(\"Vertical Sag(meter)\",S2)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vertical Sag(meter) 45.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E13 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Mid point P is \"+string(Point_P)+\" meter below point B or \"+string(80-Point_P)+\" meter above the water level\n",
+ "import math\n",
+ "#Given data :\n",
+ "h=80.-50.##m\n",
+ "L=300.##m\n",
+ "T=2000.##kg\n",
+ "w=0.844##kg/m\n",
+ "x=L/2.-T*h/(w*L)##m\n",
+ "d_PO=L/2.-x##m\n",
+ "d_BO=L-x##m\n",
+ "Smid=w*(L/2.-x)**2./2./T##m\n",
+ "S2=w*(L-x)**2./2./T##m\n",
+ "Point_P=S2-Smid##m\n",
+ "print '%s %.3f %s %.3f %s' %(\"Mid point P is \",Point_P,\" meter below point B or \",80-Point_P,\" meter above the water level.\")#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mid point P is 19.747 meter below point B or 60.253 meter above the water level.\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E14 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Stringing Tension\n",
+ "import math\n",
+ "#Given data :\n",
+ "S1=25.##m\n",
+ "S2=75.##m\n",
+ "Point_P=45.##m\n",
+ "L1=250.##m\n",
+ "L2=125.##m(mid point)\n",
+ "w=0.7##kg/m\n",
+ "h1=S2-S1##m(for points A & B)\n",
+ "h2=Point_P-S1##m(for points A & B)\n",
+ "#h1=w*L1/2/T*[L1-2*x]\n",
+ "#h2=w*L2/2/T*[L2-2*x]\n",
+ "x=(L1-h1/h2/L1*L2*L2)/(-h1/h2/L1*L2*2.+2.)##m\n",
+ "T=(L1-2.*x)/(h1/w/L1*2.)##kg\n",
+ "print '%s %.2f' %(\"Stringing Tension(kg)\",T)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stringing Tension(kg) 1093.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E15 - Pg 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Clearance of the lowest point from ground,Minimum clearance\n",
+ "import math\n",
+ "#Given data :\n",
+ "L=300.##m\n",
+ "slope=1./20.#\n",
+ "w=0.80##kg/m\n",
+ "hl=30.##m\n",
+ "T0=1500.##kg\n",
+ "CD=L##m\n",
+ "tan_alfa=slope#\n",
+ "ED=CD*tan_alfa##m\n",
+ "AC=hl##m\n",
+ "BE=hl##m\n",
+ "BD=BE+ED##m\n",
+ "#S1=w*x1**2/2/T0##m\n",
+ "#S2=w*(L-x1)**2/2/T0##m\n",
+ "h=15.##m\n",
+ "ED=h##m\n",
+ "x1=L/2.-T0*h/w/L##m\n",
+ "S1=w*x1**2./2./T0##m\n",
+ "S2=w*(L-x1)**2./2./T0##m\n",
+ "OG=AC-S1-x1*tan_alfa##m\n",
+ "Clearance=OG##m\n",
+ "print '%s %.5f' %(\"Clearance of the lowest point from ground(m)\",Clearance)#\n",
+ "#y=x*tan_alfa-OG##m\n",
+ "#C1=w*x**2/2/T0-(x/20-OG)\n",
+ "x=T0/20./w##m(Byy putting dC1/dx=0)\n",
+ "C1=w*x**2./2./T0-(x/20.-OG)##m\n",
+ "print '%s %.2f' %(\"Minimum clearance(m)\",C1)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Clearance of the lowest point from ground(m) 26.34375\n",
+ "Minimum clearance(m) 24.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E16 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sag at erection\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "#Given data :\n",
+ "L=250.##m\n",
+ "D=19.5##mm\n",
+ "A=2.25*10.**-4##m**2.\n",
+ "wc=0.85##kg/m\n",
+ "t1=35.##degree C\n",
+ "t2=5.##degree C\n",
+ "Pw=38.5##kg/m**2\n",
+ "alfa=18.44*10.**-6##per degree C\n",
+ "E=9320.##kg/mm**2\n",
+ "E=9320.*10.**6.##kg/m**2\n",
+ "Breaking_Load=8000.##kg\n",
+ "SF=2.##Safety factor\n",
+ "T1=Breaking_Load/SF##kg\n",
+ "f1=T1/A##kg/m**2\n",
+ "w_w=Pw*D*10.**-2##kg\n",
+ "w1=math.sqrt(wc**2.+w_w**2.)##kg\n",
+ "w2=wc#\n",
+ "#f2**2.*[(f2-f1)+w1*L**2.*E/24./f1**2./A**2.+(t2-t1)*E]=w2*L**2.*E/24./A**2.\n",
+ "#f2**3-f2**2.*f1-w2*L**2.*E/24./A**2.=0\n",
+ "P=([1, -1.0674*10.**7, 0, -3463.84*10.**17.])#\n",
+ "f2=numpy.roots(P)#\n",
+ "f2=numpy.real(f2[0])##kg/m**2\n",
+ "S=w2*L**2./8./f2/A##m\n",
+ "print '%s %.1f' %(\"Sag at erection(m)\",S)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sag at erection(m) 2.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_11.ipynb b/Elements_of_Power_system/Chapter_11.ipynb
new file mode 100755
index 00000000..6d51d69c
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_11.ipynb
@@ -0,0 +1,907 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b666e4f5f0e7854294a9805411c57beda0a7d1ca3061910d81bfa32dc9c6672"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - INSULATED CABLES "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Insulation resistance of cable\n",
+ "#Given data :\n",
+ "import math\n",
+ "rho=5.*10.**14.*10.**-2##ohm-m\n",
+ "l=5.*1000.##m\n",
+ "r1=1.25##m\n",
+ "r2=r1+1.##m\n",
+ "R_ins=rho/(2.*math.pi*l)*math.log(r2/r1)##ohm\n",
+ "print '%s %.2f' %(\"Insulation resistance of cable(Mohm) :\",R_ins/10.**6.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Insulation resistance of cable(Mohm) : 93.55\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Insulation resistance of cable\n",
+ "#Given data :\n",
+ "import math\n",
+ "rho=5.*10.**14.*10.**-2##ohm-m\n",
+ "l=5.*1000.##m\n",
+ "r1=2.5##m\n",
+ "r2=r1+1.##m\n",
+ "R_ins=rho/(2.*math.pi*l)*math.log(r2/r1)##ohm\n",
+ "print '%s %.2f' %(\"Insulation resistance of cable(Mohm) :\",R_ins/10.**6.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Insulation resistance of cable(Mohm) : 53.55\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Resistivity\n",
+ "#Given data :\n",
+ "import math\n",
+ "l=3000.##cm\n",
+ "d1=1.5##cm\n",
+ "r1=d1/2.##cm\n",
+ "d2=5.##cm\n",
+ "r2=d2/2.##cm\n",
+ "R_INS=1800.##Mohm\n",
+ "rho=R_INS*10**6*(2*math.pi*l)/math.log(r2/r1)##ohm-m\n",
+ "print '%s %.2e' %(\"Resistivity (ohm-m) :\",rho)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistivity (ohm-m) : 2.82e+13\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum electrostatic stress,Minimum electrostatic stress,Capacitance per km length,Charging Current per phase per km length\n",
+ "#Given data :\n",
+ "import math\n",
+ "V1=11000.##Volt\n",
+ "f=50.##Hz\n",
+ "a=0.645##cm**2\n",
+ "d=math.sqrt(4.*a/math.pi)##cm\n",
+ "d=d/100.##m\n",
+ "D=2.18/100.##m\n",
+ "epsilon_r=3.5##relative permitivity\n",
+ "V=V1*math.sqrt(2.)/math.sqrt(3.)##V(assuming 3 phase system)\n",
+ "gmax=2.*V/d/math.log(D/d)##V/m\n",
+ "gmax=gmax/10.**5.##KV/cm\n",
+ "print '%s %.2f' %(\"Maximum electrostatic stress(kV/cm)\",gmax)#\n",
+ "gmin=2.*V/D/math.log(D/d)##V/m\n",
+ "gmin=gmin/10.**5.##kV/cm\n",
+ "print '%s %.3f' %(\"Minimum electrostatic stress(kV/cm)\",gmin)#\n",
+ "C=0.024*epsilon_r/math.log10(D/d)##micro F\n",
+ "print '%s %.2e' %(\"Capacitance per km length(F)\",C*10.**-6)##\n",
+ "Vp=V1/math.sqrt(3.)##V\n",
+ "Ic=2.*math.pi*f*C*10.**-6*Vp##A\n",
+ "print '%s %.2f' %(\"Charging Current per phase per km length(A)\",Ic)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum electrostatic stress(kV/cm) 22.58\n",
+ "Minimum electrostatic stress(kV/cm) 9.387\n",
+ "Capacitance per km length(F) 2.20e-07\n",
+ "Charging Current per phase per km length(A) 0.44\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum electrostatic stress,Total charging\n",
+ "import math\n",
+ "#Given data :\n",
+ "VL=33.*1000.##Volt\n",
+ "f=50.##Hz\n",
+ "l=3.4##km\n",
+ "d=2.5##cm\n",
+ "radial_thick=0.6##cm\n",
+ "epsilon_r=3.1##relative permitivity\n",
+ "V=VL*math.sqrt(2.)/math.sqrt(3.)##V(assuming 3 phase system)\n",
+ "D=d+2.*radial_thick##cm\n",
+ "D=D/100.##cm\n",
+ "d=d/100.##m\n",
+ "gmax=2.*V/d/math.log(D/d)##V/m\n",
+ "print '%s %.2e' %(\"Maximum electrostatic stress(V/m)\",gmax)#\n",
+ "C=0.024*epsilon_r*l/math.log10(D/d)##micro F\n",
+ "Vp=VL/math.sqrt(3.)##V\n",
+ "Ic=2.*math.pi*f*C*10.**-6*Vp##A\n",
+ "kVA=math.sqrt(3.)*VL*Ic*10.**-3##kVAR\n",
+ "print '%s %.2f' %(\"Total charging kVA(kVAR)\",kVA)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum electrostatic stress(V/m) 5.50e+06\n",
+ "Total charging kVA(kVAR) 508.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Diameter of conductor,Internal diameter of sheath\n",
+ "import math\n",
+ "#Given data :\n",
+ "VL=10.*1000.##Volt\n",
+ "Emax=23.##kV/cm\n",
+ "gmax=Emax*10.**5.##V/m\n",
+ "d=2.*VL/gmax##m\n",
+ "print '%s %.1f' %(\"Diameter of conductor(mm)\",d*10.**3.)#\n",
+ "D=math.e*d##m\n",
+ "print '%s %.2f' %(\"Internal diameter of sheath(mm)\",D*10.**3.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of conductor(mm) 8.7\n",
+ "Internal diameter of sheath(mm) 23.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E7 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Diameter of conductor,Internal diameter of sheath\n",
+ "import math\n",
+ "#Given data :\n",
+ "VL=132.*1000.##Volt\n",
+ "gmax=60.##kV/cm(peak)\n",
+ "gmax=gmax/math.sqrt(2.)*10.**5.##V/m(rms)\n",
+ "V=VL/math.sqrt(3.)##Volt\n",
+ "d=2.*V/gmax##m\n",
+ "print '%s %.1f' %(\"Diameter of conductor(mm)\",d*10.**3.)#\n",
+ "D=math.e*d##m\n",
+ "print '%s %.2f' %(\"Internal diameter of sheath(mm)\",D*10.**3.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of conductor(mm) 35.9\n",
+ "Internal diameter of sheath(mm) 97.66\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E8 - Pg 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate RMS value of max safe working voltage\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=0.5##cm\n",
+ "R=3.5##cm\n",
+ "r1=1.##cm\n",
+ "g1max=34.##kV/cm(peak)\n",
+ "epsilon_r=5.##relative permitivity\n",
+ "g2max=g1max*r/r1/epsilon_r##kV/cm(peak)\n",
+ "Vpeak=r*g1max*math.log(r1/r)+r1*g2max*math.log(R/r1)##kV\n",
+ "Vrms=Vpeak/math.sqrt(2.)##kV\n",
+ "print '%s %.2f' %(\"RMS value of max safe working voltage(kV)\",Vrms)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS value of max safe working voltage(kV) 11.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E9 - Pg 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##calculate Radial thickness of inner dielectric,Radial thickness of outer dielectric,Maximum working voltage\n",
+ "import math\n",
+ "#Given data :\n",
+ "g1max=60.##kV/cm\n",
+ "g2max=50.##kV/cm\n",
+ "epsilon_r1=4.##relative permitivity\n",
+ "epsilon_r2=2.5##relative permitivity\n",
+ "D=5.##cm(sheat inside diameter)\n",
+ "d=1.##cm\n",
+ "#g1max/g2max=epsilon_r2*d1/(epsilon_r1*d)\n",
+ "d1=g1max/g2max/epsilon_r2*(epsilon_r1*d)##cm\n",
+ "t_inner=(d1-d)/2.##cm\n",
+ "print '%s %.1f' %(\"Radial thickness of inner dielectric(mm)\",t_inner*10.)#\n",
+ "t_outer=(D-d1)/2.##cm\n",
+ "print '%s %.1f' %(\"Radial thickness of outer dielectric(mm)\",t_outer*10.)#\n",
+ "Vpeak=g1max/2.*d*math.log(d1/d)+g2max/2*d1*math.log(D/d1)##kV\n",
+ "Vrms=Vpeak/math.sqrt(2.)##kV\n",
+ "print '%s %.2f' %(\"Maximum working voltage(rms in kV)\",Vrms)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radial thickness of inner dielectric(mm) 4.6\n",
+ "Radial thickness of outer dielectric(mm) 15.4\n",
+ "Maximum working voltage(rms in kV) 46.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E10 - Pg 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##calculate Working voltage(rms) for the cable\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=1.##cm\n",
+ "R=2.5##cm\n",
+ "d=2.*r##cm\n",
+ "D=2.*R##cm\n",
+ "epsilon_r1=5.##relative permitivity\n",
+ "epsilon_r2=4.##relative permitivity\n",
+ "epsilon_r3=3.##relative permitivity\n",
+ "gmax=40.##KV/cm\n",
+ "#epsilon_r1*d=epsilon_r2*d1=epsilon_r3*d2\n",
+ "d1=(epsilon_r1/epsilon_r2)*d##cm\n",
+ "d2=(epsilon_r1/epsilon_r3)*d##cm\n",
+ "Vpeak=gmax/2.*(d*math.log(d1/d)+d1*math.log(d2/d1)+d2*math.log(D/d2))##kV\n",
+ "Vrms=Vpeak/math.sqrt(2.)##kV\n",
+ "print '%s %.1f' %(\"Working voltage(rms) for the cable (kV)\",Vrms)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Working voltage(rms) for the cable (kV) 35.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E11 - Pg 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Potential gradient at the surface of conductor,Maximum stress in the outer dielectric,Stress at the surface of outer dielectric\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=66.##kV\n",
+ "d=1.##cm\n",
+ "d1=1.+2.*1.##cm\n",
+ "D=3.+2.*1.##cm\n",
+ "epsilon_r1=3.##relative permitivity\n",
+ "epsilon_r2=2.5##relative permitivity\n",
+ "g2maxBYg1max=d*epsilon_r1/(d1*epsilon_r2)#\n",
+ "Vmax=Vs*math.sqrt(2.)/math.sqrt(3.)##kV\n",
+ "#Vmax=g1max*d/2*log(d1/d)+g2max*d1/2*log(D/d1)##kV\n",
+ "g1max=Vmax/(d/2.*math.log(d1/d)+g2maxBYg1max*d1/2.*math.log(D/d1))##kV/cm\n",
+ "print '%s %.f' %(\"Potential gradient at the surface of conductor(kV/cm)\",g1max)#\n",
+ "g2max=g1max*g2maxBYg1max##kV/cm\n",
+ "print '%s %.1f' %(\"Maximum stress in the outer dielectric(kV/cm)\",g2max)#\n",
+ "Stress=g2max*d1/D##kV/cm\n",
+ "print '%s %.2f' %(\"Stress at the surface of outer dielectric(kV/cm)\",Stress)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Potential gradient at the surface of conductor(kV/cm) 63\n",
+ "Maximum stress in the outer dielectric(kV/cm) 25.2\n",
+ "Stress at the surface of outer dielectric(kV/cm) 15.11\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E12 - Pg 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Potential gradient at the surface of conductor,Maximum stress in the outer dielectric\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=66.##kV\n",
+ "d=2.##cm\n",
+ "d1=2.+2.*1.##cm\n",
+ "D=4.+2.*1.##cm\n",
+ "epsilon_r1=5.##relative permitivity\n",
+ "epsilon_r2=3.##relative permitivity\n",
+ "g2maxBYg1max=d*epsilon_r1/(d1*epsilon_r2)#\n",
+ "Vmax=Vs*math.sqrt(2.)/math.sqrt(3.)##kV\n",
+ "#Vmax=g1max*d/2*log(d1/d)+g2max*d1/2*log(D/d1)##kV\n",
+ "g1max=Vmax/(d/2.*math.log(d1/d)+g2maxBYg1max*d1/2.*math.log(D/d1))##kV/cm\n",
+ "print '%s %.2f' %(\"Potential gradient at the surface of conductor(kV/cm)\",g1max)#\n",
+ "g2max=g1max*g2maxBYg1max##kV/cm\n",
+ "print '%s %.1f' %(\"Maximum stress in the outer dielectric(kV/cm)\",g2max)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Potential gradient at the surface of conductor(kV/cm) 39.37\n",
+ "Maximum stress in the outer dielectric(kV/cm) 32.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E13 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inner diameter of lead sheath\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=66.##kV\n",
+ "r=0.5##cm\n",
+ "g1max=50.##kV/cm\n",
+ "g2max=40.##kV/cm\n",
+ "g3max=30.##kV/cm\n",
+ "epsilon_r1=4.##relative permitivity\n",
+ "epsilon_r2=4.##relative permitivity\n",
+ "epsilon_r3=2.5##relative permitivity\n",
+ "#Q=2*%pi*epsilon0*epsilon_r1*r*g1max=2*%pi*epsilon0*epsilon_r2*r*g2max=2*%pi*epsilon0*epsilon_r3*r*g3max\n",
+ "r1=epsilon_r1*r*g1max/(epsilon_r2*g2max)##cm\n",
+ "r2=epsilon_r2*r1*g2max/(epsilon_r3*g3max)##cm\n",
+ "Vmax=Vs*math.sqrt(2.)##kV\n",
+ "#Vmax=g1max*r*log(r1/r)+g2max*r1*log(r2/r1)+g3max*r2*log(R/r2)##kV\n",
+ "R=math.exp((Vmax-g1max*r*math.log(r1/r)-g2max*r1*math.log(r2/r1))/g3max/r2)*r2##cm\n",
+ "D=2.*R##cm\n",
+ "print '%s %.1f' %(\"Inner diameter of lead sheath(cm)\",D)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inner diameter of lead sheath(cm) 14.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E14 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage between sheath & intersheath\n",
+ "import math \n",
+ "#Given data :\n",
+ "Vrms=66.##kV\n",
+ "Vmax=Vrms*math.sqrt(2.)##kV\n",
+ "gmax=60.##kV/cm\n",
+ "d=2.*Vmax/math.e/gmax##cm\n",
+ "d1=math.e*d##cm\n",
+ "V1=Vrms/math.e##kV\n",
+ "dV=Vrms-V1##kV(Voltage between sheath & intersheath)\n",
+ "print '%s %.2f' %(\"Voltage between sheath & intersheath(kV)\",dV)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage between sheath & intersheath(kV) 41.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E15 - Pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum stress without intersheath,Peak voltage on 1st intersheath,Peak voltage on 2nd intersheath\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=66.##kV\n",
+ "Vmax=Vs*math.sqrt(2.)/math.sqrt(3.)##kV\n",
+ "D=6.##cm\n",
+ "d=2.5##cm\n",
+ "d1=math.e*d##cm\n",
+ "gmax=2.*Vmax/d/math.log(D/d)##kV/cm\n",
+ "print '%s %.2f' %(\"Maximum stress without intersheath(kV/cm)\",gmax)#\n",
+ "#d1/d=d2/d1=D/d2=alfa(say)\n",
+ "alfa=(D/d)**(1./3.)#\n",
+ "d1=alfa*d##cm\n",
+ "d2=alfa*d1##cm\n",
+ "gmax=Vmax/(d/2*math.log(d1/d)+d1/2.*math.log(d2/d1)+d2/2.*math.log(D/d2))##kV/cm\n",
+ "V1max=gmax*d/2.*math.log(d1/d)##kV\n",
+ "V2max=gmax*d1/2.*math.log(d2/d1)##kV\n",
+ "Vpeak1=Vmax-V1max##kV\n",
+ "print '%s %.4f' %(\"Peak voltage on 1st intersheath(kV)\",Vpeak1)#\n",
+ "Vpeak2=Vpeak1-V2max##kV\n",
+ "print '%s %.4f' %(\"Peak voltage on 2nd intersheath(kV)\",Vpeak2)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum stress without intersheath(kV/cm) 49.24\n",
+ "Peak voltage on 1st intersheath(kV) 40.8452\n",
+ "Peak voltage on 2nd intersheath(kV) 23.3815\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E16 - Pg 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance of core to neutral,Capacitance between any two core,Charging current per phase\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=11.##kV\n",
+ "f=50.##Hz\n",
+ "l=2.5*1000.##m\n",
+ "C_all3=1.8##micro F\n",
+ "Cdash=1.5##micro F(2*Cc+Cs)\n",
+ "Cs=C_all3/3.##micro F\n",
+ "Cc=(Cdash-Cs)/2.##micro F\n",
+ "C_N=3.*Cc+Cs##micro F\n",
+ "print '%s %.2f' %(\"Capacitance of core to neutral(micro F)\",C_N)#\n",
+ "C_2=C_N/2.##micro F\n",
+ "print '%s %.3f' %(\"Capacitance between any two core(micro F)\",C_2)#\n",
+ "Vp=Vs*1000./math.sqrt(3.)##Volt\n",
+ "Ic=2.*math.pi*f*Vp*C_N*10.**-6##A\n",
+ "print '%s %.2f' %(\"Charging current per phase(A)\",Ic)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of core to neutral(micro F) 1.95\n",
+ "Capacitance between any two core(micro F) 0.975\n",
+ "Charging current per phase(A) 3.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E17 - Pg 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate kVA taken by the cable\n",
+ "import math\n",
+ "#Given data :\n",
+ "l=10.##km\n",
+ "Vs=10.##kV\n",
+ "f=50.##Hz\n",
+ "C=0.3##micro F/km(between any two core)\n",
+ "C2=l*C##micro F(between any two core)\n",
+ "C_N=2.*C2##micro F\n",
+ "Vp=Vs*1000./math.sqrt(3.)##Volt\n",
+ "Ic=2.*math.pi*f*Vp*C_N*10.**-6##A\n",
+ "kVA=3.*Vp*Ic/1000.##kVAR\n",
+ "print '%s %.1f' %(\"kVA taken by the cable(kVAR)\",kVA)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA taken by the cable(kVAR) 188.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E18 - Pg 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance between any two cores,Capacitance between any two shorted conductors and third conductor\n",
+ "import math\n",
+ "#Given data :\n",
+ "Cs3=1.##micro F/km(between shorted conductor)\n",
+ "Cs=Cs3/3.##micro F\n",
+ "Cdash=0.6##micro F(Cdash=2*Cc+Cs : between two shorted conductor)\n",
+ "Cc=(Cdash-Cs)/2.##micro F\n",
+ "C2=1./2.*(3*Cc+Cs)##micro F\n",
+ "print '%s %.4f' %(\"Capacitance between any two cores(micro F)\",C2)#\n",
+ "C2dash=2.*Cc+2./3.*Cs##micro F\n",
+ "print '%s %.3f' %(\"Capacitance between any two shorted conductors and third conductor(micro F)\",C2dash)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance between any two cores(micro F) 0.3667\n",
+ "Capacitance between any two shorted conductors and third conductor(micro F) 0.489\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E19 - Pg 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Total charging kVAR,Maximum stress in the cable\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=33.##kV\n",
+ "f=50.##Hz\n",
+ "l=3.4##km\n",
+ "d=2.5##cm\n",
+ "D=d+2.*0.6##cm\n",
+ "epsilon_r=3.1##relative permitivity\n",
+ "C=0.024*epsilon_r/math.log10(D/d)*l*1000.*1000.*10.**-6## F/phase\n",
+ "Vp=Vs*1000./math.sqrt(3.)##Volt\n",
+ "Ic=2.*math.pi*f*C*10.**-6*Vp##A\n",
+ "kVAR=3.*Vp*Ic*10.**-3##kVAR\n",
+ "print '%s %.2f' %(\"Total charging kVAR : \",kVAR)#\n",
+ "Emax=Vp/(d/2.*math.log(D/d))*10.**-3##kV/cm\n",
+ "print '%s %.2f' %(\"Maximum stress in the cable(kV/cm) \",Emax)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total charging kVAR : 508.29\n",
+ "Maximum stress in the cable(kV/cm) 38.88\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E20 - Pg 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance of the cable,Charging current,Dielectric loss,Equivalent insulation resistance\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=11.##kV\n",
+ "f=50.##Hz\n",
+ "D=2.##cm\n",
+ "d=0.5##cm\n",
+ "epsilon_r=3.5##relative permitivity\n",
+ "pf=0.05##power factor\n",
+ "C=0.024*epsilon_r/math.log10(D/d)*10.**-6## F/km\n",
+ "print '%s %.4f' %(\"Capacitance of the cable(micro F)\",C*10.**6.)#\n",
+ "Vp=Vs*1000./math.sqrt(3.)##Volt\n",
+ "Ic=2.*math.pi*f*C*Vp##A\n",
+ "print '%s %.3f' %(\"Charging current(A)\",Ic)#\n",
+ "fi=math.acos(pf) *180./math.pi##degree\n",
+ "dela= 90.-fi##degree(Dielectric loss angle)\n",
+ "loss_dielectric=2*math.pi*f*C*Vp**2*math.tan(dela*math.pi/180.)##W\n",
+ "print '%s %.1f' %(\"Dielectric loss(W)\",loss_dielectric)#\n",
+ "R_INS=Vp**2./loss_dielectric##ohm\n",
+ "print '%s %.3f' %(\"Equivalent insulation resistance(Mohm)\",R_INS/10.**6.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of the cable(micro F) 0.1395\n",
+ "Charging current(A) 0.278\n",
+ "Dielectric loss(W) 88.5\n",
+ "Equivalent insulation resistance(Mohm) 0.456\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E21 - Pg 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Loss angle,No load current drawn by cable\n",
+ "import math \n",
+ "#Given data :\n",
+ "Vs=11.##kV\n",
+ "f=50.##Hz\n",
+ "C_N_by_2=2.5##micro F(between 2 core 1 core shorted)\n",
+ "C_N=C_N_by_2*2.##micro F\n",
+ "Vp=Vs*1000./math.sqrt(3.)##Volt\n",
+ "Ic=2.*math.pi*f*Vp*C_N*10.**-6##A\n",
+ "R_INS2=810.##kohm\n",
+ "R_INS=R_INS2/2.##kohm\n",
+ "dela=math.atan(1./(R_INS*10.**3.*2.*math.pi*f*C_N*10.**-6)) *180/math.pi##degree\n",
+ "print '%s %.2f' %(\"Loss angle(degree)\",dela)#\n",
+ "Ie=Vp/R_INS/1000.##A\n",
+ "I=math.sqrt(Ic**2.+Ie**2.)##A\n",
+ "print '%s %.3f' %(\"No load current drawn by cable(A)\",I)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss angle(degree) 0.09\n",
+ "No load current drawn by cable(A) 9.976\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_12.ipynb b/Elements_of_Power_system/Chapter_12.ipynb
new file mode 100755
index 00000000..a83c113d
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_12.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c04662c5bd4f38db1beb13d324aa5f4b0617ec914f453499de17aa02ac050633"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - NEUTRAL GROUNDING"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ecample E1 - Pg 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Reactance of coil\n",
+ "#Given data :\n",
+ "import math\n",
+ "f=50.##Supply frequency in Hz\n",
+ "C=4.5*10.**-6##in Farad\n",
+ "Omega_L=1./3./2./math.pi/f/C##in ohm\n",
+ "print '%s %.2f' %(\"Reactance of coil (ohm) :\",Omega_L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reactance of coil (ohm) : 235.79\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ecample E2 - Pg 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Necessary Inductance of peterson coil,Rating of supressor coil in MVA\n",
+ "#Given data :\n",
+ "import math\n",
+ "V=132.*1000.##V\n",
+ "f=50.##Hz\n",
+ "r=10./1000.##m\n",
+ "d1=4.##m\n",
+ "d2=4.##m\n",
+ "d3=d1+d2##m\n",
+ "epsilon_o=8.854*10.**-12##constant\n",
+ "l_tl=192.*1000.##length of transmission line in m\n",
+ "C=2.*math.pi*epsilon_o/math.log((d1*d2*d3)**(1./3.)/r)*l_tl##in Farad\n",
+ "L=1./3./(2.*math.pi*f)**2./C##H\n",
+ "print '%s %.3f' %(\"Necessary Inductance of peterson coil in H : \",L)#\n",
+ "VP=V/math.sqrt(3.)##V\n",
+ "IL=VP/(2.*math.pi*f)/L##A\n",
+ "Rating=VP*IL/1000.##kVA\n",
+ "print '%s %.2f' %(\"Rating of supressor coil in MVA :\",Rating/1000)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Necessary Inductance of peterson coil in H : 1.968\n",
+ "Rating of supressor coil in MVA : 9.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_2.ipynb b/Elements_of_Power_system/Chapter_2.ipynb
new file mode 100755
index 00000000..528910b1
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_2.ipynb
@@ -0,0 +1,273 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:58c36c7b9784275db9287ae8c79867925c020abc46926776ba50c0c166f1d15f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - SUPPLY SYSTEM"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate saving in copper\n",
+ "#Given data :\n",
+ "VL1=220.##Volts\n",
+ "VL2=400.##Volts\n",
+ "print '%s' %(\"We know, W=I**2*2*R=(P/VL)**2*2*rho*l/a\")#\n",
+ "print '%s ' %(\"a=(P/VL)**2*2*rho*l/(I**2*2*R)\")#\n",
+ "print '%s' %(\"v=2*(P/VL)**2*2*rho*l/(I1**2*2)*l\")#\n",
+ "saving=(2./(VL1)**2.-2./(VL2)**2.)/(2./(VL1)**2.)*100.##%\n",
+ "print '%s %.2f' %(\"% saving in copper : \",saving)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "We know, W=I**2*2*R=(P/VL)**2*2*rho*l/a\n",
+ "a=(P/VL)**2*2*rho*l/(I**2*2*R) \n",
+ "v=2*(P/VL)**2*2*rho*l/(I1**2*2)*l\n",
+ "% saving in copper : 69.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - pg 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate 3-phase four wire system material required\n",
+ "print '%s' %(\"Two wire dc system : \")#\n",
+ "print '%s' %(\"I1=P/V & W=2*I1**2*R1=2*P**2*rho*l/V**2/a1\")#\n",
+ "print '%s' %(\"Therefore, Volume required, v1 is 2*a1*l=4*P**2*rho*l**2/V**2/W\")#\n",
+ "print '%s ' %(\"Three phase four wire system : \")#\n",
+ "print '%s ' %(\"I2=P/3/Vas Power by each phase is P/3 & W=3*I1**2*R2=P**2*rho*l/3/V**2/a2\")#\n",
+ "print '%s ' %(\"Therefore, Volume required, v2 is 3.5*a2*l=3.5*P**2*rho*l**2/3/V**2/W\")#\n",
+ "v2BYv1=3.5/3./4.##\n",
+ "print '%s %.3f %s' %(\"For 3-phase four wire system material required is \",v2BYv1,\" times the material required in two wire system.\")#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Two wire dc system : \n",
+ "I1=P/V & W=2*I1**2*R1=2*P**2*rho*l/V**2/a1\n",
+ "Therefore, Volume required, v1 is 2*a1*l=4*P**2*rho*l**2/V**2/W\n",
+ "Three phase four wire system : \n",
+ "I2=P/3/Vas Power by each phase is P/3 & W=3*I1**2*R2=P**2*rho*l/3/V**2/a2 \n",
+ "Therefore, Volume required, v2 is 3.5*a2*l=3.5*P**2*rho*l**2/3/V**2/W \n",
+ "For 3-phase four wire system material required is 0.292 times the material required in two wire system.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Additional load that can be tranmitted by converting sigle to 3-phase line\n",
+ "import math\n",
+ "print '%s ' %(\"For single phase ac system, P1=V*I1*cosd(fi) watts & W1=2*I1**2*R watts\")#\n",
+ "print '%s ' %(\"Line losses=W1/P1*100=2*I1**2*R*100/V/I1/cosd(fi)\")#\n",
+ "print '%s ' %(\"For three phase ac system, P2=sqrt(3)*V*I2*cosd(fi) watts & W2=3*I2**2*R watts\")#\n",
+ "print '%s ' %(\"Line losses=W2/P2*100=3*I2**2*R*100/sqrt(3)/V/I2/cosd(fi)\")#\n",
+ "#on equating W1/P1*100.=W2/P2*100.\n",
+ "I2BYI1=2*math.sqrt(3.)/3.#\n",
+ "P1=100\n",
+ "P2=2*P1#\n",
+ "Add_load=P2-P1#\n",
+ "Percent_add_load=(P2-P1)/P1*100##%\n",
+ "print '%s %.2f' %(\"Additional load that can be tranmitted by converting sigle to 3-phase line in %\",Percent_add_load)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For single phase ac system, P1=V*I1*cosd(fi) watts & W1=2*I1**2*R watts \n",
+ "Line losses=W1/P1*100=2*I1**2*R*100/V/I1/cosd(fi) \n",
+ "For three phase ac system, P2=sqrt(3)*V*I2*cosd(fi) watts & W2=3*I2**2*R watts \n",
+ "Line losses=W2/P2*100=3*I2**2*R*100/sqrt(3)/V/I2/cosd(fi) \n",
+ "Additional load that can be tranmitted by converting sigle to 3-phase line in % 100.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 53 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Extra power that can be supplied\n",
+ "print '%s' %(\"For three wire dc system, line current I1=(VS-VL)/R & P1=2*VL*I1=2*VL*(VS-VL)/R\")#\n",
+ "print '%s' %(\"For four wire three phase ac system, line current I2=(VS-VL)/R & P2=3*VL*I2*pf=3*VL*(VS-VL)/R\")#\n",
+ "#P2=3/2*2*VL*(VS-VL)/R##It implies that P2=3/2*P1\n",
+ "P1=100#\n",
+ "P2=3./2.*P1#\n",
+ "Diff=P2-P1#\n",
+ "Percent_Diff=(Diff/P1*100)##%\n",
+ "print '%s %.2f' %(\"Extra power that can be supplied in %\",Percent_Diff)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For three wire dc system, line current I1=(VS-VL)/R & P1=2*VL*I1=2*VL*(VS-VL)/R\n",
+ "For four wire three phase ac system, line current I2=(VS-VL)/R & P2=3*VL*I2*pf=3*VL*(VS-VL)/R\n",
+ "Extra power that can be supplied in % 50.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Additional load\n",
+ "pf=0.9##power factor\n",
+ "print '%s' %(\"Three wire dc system : \")#\n",
+ "print '%s' %(\"P1=2*I1*V & %P1loss=2*I1**2*R/(2*I1*V)*100=100*I1*R/V\")#\n",
+ "print '%s' %(\"Three phase 4-wire ac system : \")#\n",
+ "print '%s' %(\"P2=3*I1**2*V*pf & %P2loss=3*I2**2*R/(3*I2*V*pf)*100=100*I12*R/pf/V\")#\n",
+ "#on equating P1loss=P2loss#\n",
+ "I2BYI1=100*pf/100##ratio\n",
+ "#P2=3*I2*V*pf\n",
+ "P2BYI1V=3.*pf*I2BYI1#\n",
+ "P2BYP1=P2BYI1V/2.#\n",
+ "#LoadIncrease=(P2-P1)*100/P1#\n",
+ "LoadIncrease=(P2BYP1-1.)*100.##%\n",
+ "print '%s %.2f' %(\"% Additional load : \",LoadIncrease)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Three wire dc system : \n",
+ "P1=2*I1*V & %P1loss=2*I1**2*R/(2*I1*V)*100=100*I1*R/V\n",
+ "Three phase 4-wire ac system : \n",
+ "P2=3*I1**2*V*pf & %P2loss=3*I2**2*R/(3*I2*V*pf)*100=100*I12*R/pf/V\n",
+ "% Additional load : 21.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Weight of copper required for 3 conductors of 100 km length\n",
+ "#Given data :\n",
+ "import math\n",
+ "Pin=100.##MW\n",
+ "VL=380.##kV\n",
+ "d=100.##km\n",
+ "R=0.045##ohm/cm**2/km\n",
+ "w=0.01##kg/cm**3\n",
+ "Eta=90.##efficiency %\n",
+ "cosfi=1.#\n",
+ "IL=Pin*10.**6./math.sqrt(3.)/VL/10.**3./cosfi##Ampere\n",
+ "W=Pin*(1-Eta/100)##MW\n",
+ "LineLoss=W*10**6/3##Watts/conductor\n",
+ "R1=LineLoss/IL**2##in ohm\n",
+ "R2=R1/d##resistance per conductor per km\n",
+ "a=R/R2##in cm**2\n",
+ "volume=a*d*1000##cm**3 per km run\n",
+ "weight=w*volume##kg per km run\n",
+ "w3=3.*d*weight##kg(weight of copper required for 3 conductors for 100 km)\n",
+ "print '%s %.2f' %(\"Weight of copper required for 3 conductors of 100 km length(in kg) : \",w3)#\n",
+ "#Answer in the book is not accurate.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of copper required for 3 conductors of 100 km length(in kg) : 9349.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_3.ipynb b/Elements_of_Power_system/Chapter_3.ipynb
new file mode 100755
index 00000000..81522bb9
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_3.ipynb
@@ -0,0 +1,368 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8ef5a6db25d3ca5636ebb9bdfef72dd38c306363688bdeed8ee7c50c70ef98c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 - TRANSMISSION LINES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Weight of copper required,Alluminium required\n",
+ "#Given data :\n",
+ "import math\n",
+ "P=30.*10.**6.##W\n",
+ "pf=0.8##lagging power factor\n",
+ "VL=132.*1000.##V\n",
+ "l=120.*1000.##m\n",
+ "Eta=90./100.##Efficiency\n",
+ "rho_Cu=1.78*10.**-8.##ohm-m\n",
+ "D_Cu=8.9*10.**3.##kg/m**3\n",
+ "rho_Al=2.6*10.**-8.##ohm-m\n",
+ "D_Al=2.*10.**3.##kg/m**3\n",
+ "IL=P/(math.sqrt(3.)*VL*pf)##A\n",
+ "#W=3.*IL**2.*rho*l/a=(1-Eta)*P\n",
+ "a_Cu=(3.*IL**2.*rho_Cu*l)/(1.-Eta)/P##m**2\n",
+ "V_Cu=3.*a_Cu*l##m**3\n",
+ "Wt_Cu=V_Cu*D_Cu##kg\n",
+ "print '%s %.2f' %(\"Weight of copper required(kg)\",Wt_Cu)#\n",
+ "a_Al=(3.*IL**2.*rho_Al*l)/(1.-Eta)/P##m**2\n",
+ "V_Al=3.*a_Al*l## m**3\n",
+ "Wt_Al=V_Al*D_Al##kg\n",
+ "print '%s %.2f' %(\"Weight of Alluminium required(kg)\",Wt_Al)#\n",
+ "#Answer in the textbook is not accurate.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of copper required(kg) 184114.15\n",
+ "Weight of Alluminium required(kg) 60433.88\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Most economical cross sectional area\n",
+ "#Given data :\n",
+ "import math\n",
+ "a=100.#\n",
+ "cost=90.*a+20.##Rs./m\n",
+ "i=10.##%(interest and depreciation)\n",
+ "l=2.##km\n",
+ "cost_E=4.##paise/unit\n",
+ "Im=250.##A\n",
+ "a=1.##cm**2\n",
+ "rho_c=0.173##ohm/km/cm**2\n",
+ "l2=1.*1000.##km\n",
+ "R=rho_c*l/a##ohm\n",
+ "W=2.*Im**2.*R##W\n",
+ "Eloss=W/1000.*365.*24./2.##per annum(kWh)\n",
+ "P3BYa=cost_E/100.*Eloss##Rs\n",
+ "Cc=90.*a*l*1000.##Rs(capital cost of feeder cable)\n",
+ "P2a=Cc*i/100.##Rs\n",
+ "#P2a=P3BYa##For most economical cross section\n",
+ "a=math.sqrt(P3BYa*a/(P2a/a))##cm**2\n",
+ "print '%s %.3f' %(\"Most economical cross sectional area in cm**2 : \",a)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most economical cross sectional area in cm**2 : 0.649\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Best current density\n",
+ "#Given data :\n",
+ "import math\n",
+ "t=2600.##hour\n",
+ "Con_Cost=3.##Rs/kg(conductor cost)\n",
+ "R=1.78*10.**-8.##ohm-m\n",
+ "D=6200.##kg/m**3\n",
+ "E_Cost=10./100.##Rs/unit(energy cost)\n",
+ "i=12.##%(interest and depreciation)\n",
+ "a=100.##mm**2 ##cross sectional area\n",
+ "W=a*1000.*D/1000./1000.##kg/km(Weight of conductor of 1km length)\n",
+ "cost=Con_Cost*W##Rs./km(cost of conductor of 1km length)\n",
+ "In_Dep=cost*i/100.##Rs(Annual interest and depreciation per conductor per km)\n",
+ "In_DepBYa=In_Dep/a#\n",
+ "I=100.##A\n",
+ "E_lost_aBY_Isqr=R*1000./10.**-6.*t/1000.##Energy lost/annum/km/conductor\n",
+ "E_lost_cost_aBY_Isqr=E_Cost*E_lost_aBY_Isqr##Rs/annum\n",
+ "#In_Dep=E_lost_cost##For most economical cross section\n",
+ "IBYa=math.sqrt((In_DepBYa))/(E_lost_cost_aBY_Isqr)##cm**2\n",
+ "print '%s %.2f' %(\"Best current density in A/mm**2 : \",IBYa)#\n",
+ "#Answer in the textbook is not accurate.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Best current density in A/mm**2 : 0.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Diameter of conductor,Most economical current density\n",
+ "#Given data :\n",
+ "import math\n",
+ "V=11.##kV\n",
+ "P=1500.##kW\n",
+ "pf=0.8##lagging power factor\n",
+ "t=300.*8.##hours\n",
+ "a=100.##cross section area\n",
+ "Cc=8000.+20000.*a#Rs/km\n",
+ "R=0.173/a##ohm/km\n",
+ "E_lost_cost=2./100.##Rs/unit\n",
+ "i=12.##%(interest and depreciation)\n",
+ "Cc_var=20000.*a#Rs/km(variable cost)\n",
+ "P2a=Cc_var*i/100.##Rs/km\n",
+ "P2=P2a/a#\n",
+ "I=P/math.sqrt(3.)/V/pf##A\n",
+ "W=3.*I**2.*R##W\n",
+ "E_loss=W/1000.*t##kWh\n",
+ "P3BYa=E_lost_cost*E_loss##Rs\n",
+ "#P2a=P3BYa##For most economical cross section\n",
+ "a=math.sqrt((P3BYa))/(P2)##cm**2\n",
+ "d=math.sqrt(4.*a/math.pi)##cm\n",
+ "dela=I/a;##A/cm**2\n",
+ "print '%s %.2f' %(\"Diameter of conductor in cm : \",d)#\n",
+ "print '%s %.2f' %(\"Most economical current density in A/cm**2 : \",dela)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diameter of conductor in cm : 0.03\n",
+ "Most economical current density in A/cm**2 : 152057.18\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Exa 3.5\n",
+ "#Given data :\n",
+ "import math\n",
+ "a=100.##cross section area\n",
+ "I=100.##Current\n",
+ "Cc=500.+2000.*a#Rs/km\n",
+ "i=12.##%(interest and depreciation)\n",
+ "E_lost_cost=5./100.##Rs/kWh\n",
+ "rho=1.78*10.**-8.##ohm-cm\n",
+ "load_factor=0.12#\n",
+ "Cc_var=2000.*a#Rs/km(variable cost)\n",
+ "P2a=Cc_var*i/100.##Rs/km\n",
+ "P2=P2a/a#\n",
+ "R_into_a=rho*1000./(10.**-4.)##ohm\n",
+ "W_into_a=I**2*R_into_a##W\n",
+ "E_loss_into_a=W_into_a*load_factor/1000.*8760.##kWh\n",
+ "P3BYIsqr=E_lost_cost*E_loss_into_a/I**2##Rs\n",
+ "#P2a=P3BYa##For most economical cross section\n",
+ "IBYa=math.sqrt((P2))/(P3BYIsqr)##cm**2\n",
+ "print '%s %.2f' %(\"Most economical current density in A/cm**2 : \",IBYa)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most economical current density in A/cm**2 : 1655.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Exa 3.6\n",
+ "#Given data :\n",
+ "import math\n",
+ "A=100.##cross section area\n",
+ "I=100.##Current\n",
+ "Cc=500.+2000.*A#Rs/km\n",
+ "load_factor=0.12#\n",
+ "i=12.##%(depreciation)\n",
+ "E_lost_cost=0.05##Rs/kWh\n",
+ "R=0.17/A##ohm/km\n",
+ "Cc_var=2000.*A#Rs/km(variable cost)\n",
+ "P2A=Cc_var*i/100.##Rs/km\n",
+ "P2=P2A/A#\n",
+ "R_into_A=R*A##ohm\n",
+ "W_into_A_BY_Isqr=R_into_A##W\n",
+ "E_loss_into_A_BY_Isqr=W_into_A_BY_Isqr*load_factor/1000.*8760.##kWh\n",
+ "P3BYIsqr=E_lost_cost*E_loss_into_A_BY_Isqr##Rs\n",
+ "#P2a=P3BYa##For most economical cross section\n",
+ "IBYa=math.sqrt((P2))/(P3BYIsqr)##cm**2\n",
+ "print '%s %.2f' %(\"Most economical current density in A/cm**2 : \",IBYa)#\n",
+ "#Answer in the textbook is wrong.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most economical current density in A/cm**2 : 1733.81\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E7 - Pg 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Most economical cross sectional area\n",
+ "#Given data :\n",
+ "import math\n",
+ "P1=1000.##kW\n",
+ "pf1=0.8##\n",
+ "t1=10.##hours\n",
+ "P2=500.##kW\n",
+ "pf2=0.9##\n",
+ "t2=8.##hours\n",
+ "P3=100.##kW\n",
+ "pf3=1.##\n",
+ "t3=6.##hours\n",
+ "a=100.##cross section area\n",
+ "I=100.##Current\n",
+ "L=100.##length in km\n",
+ "CcBYL=(8000.*a+1500.)#Rs/km(variable cost)\n",
+ "i=10.##%(depreciation)\n",
+ "E_lost_cost=80./100.##Rs/kWh\n",
+ "rho=1.72*10.**-6.##ohm-cm\n",
+ "Cc_varBYL=8000.*a*i/100.#Rs/km(variable cost)\n",
+ "I1=P1*1000./math.sqrt(3.)/10000./pf1##A\n",
+ "I2=P2*1000./math.sqrt(3.)/10000./pf2##A\n",
+ "I3=P3*1000./math.sqrt(3.)/10000./pf3##A\n",
+ "R_into_a_BY_L=rho*1000.*100.##ohm\n",
+ "W_into_A_BY_Isqr=R_into_a_BY_L##W\n",
+ "E_loss_into_A_BY_L=3*R_into_a_BY_L*(I1**2*t1+I2**2*t2+I3**2*t3)*365./1000.##kWh\n",
+ "E_loss_cost_into_A_BY_L=E_loss_into_A_BY_L*E_lost_cost##Rs\n",
+ "#Cc_var=E_loss_cost##For most economical cross section\n",
+ "a=math.sqrt((E_loss_cost_into_A_BY_L))/(Cc_varBYL/a)##cm**2\n",
+ "print '%s %.2f' %(\"Most economical cross sectional area in cm**2 : \",a)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most economical cross sectional area in cm**2 : 0.12\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_4.ipynb b/Elements_of_Power_system/Chapter_4.ipynb
new file mode 100755
index 00000000..db67cdfa
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_4.ipynb
@@ -0,0 +1,1168 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:818ef23f34385ee54f8d5672494c60336bc18fcc46f244fceb4d0fa90c810f66"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 - INDUCTANCE AND CAPACITANCE OF TRANSMISSION LINES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Loop inductance,Reactance of transmission line\n",
+ "#Given data :\n",
+ "import math\n",
+ "f=50.##Hz\n",
+ "d=1.*100.##cm\n",
+ "r=1.25/2.##cm\n",
+ "r_dash=r*0.7788##cm\n",
+ "L=0.4*math.log(d/r_dash)##mH\n",
+ "print '%s %.2f' %(\"Loop inductance per km(mH)\",L)#\n",
+ "XL=2.*math.pi*f*L*10.**-3.##ohm/Km\n",
+ "print '%s %.3f' %(\"Reactance of transmission line(ohm/km)\",XL)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loop inductance per km(mH) 2.13\n",
+ "Reactance of transmission line(ohm/km) 0.669\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Loop inductance\n",
+ "#Given data :\n",
+ "import math\n",
+ "f=50.##Hz\n",
+ "a=10.##cm**2\n",
+ "l=500./1000.##km\n",
+ "r=math.sqrt(a/math.pi)##cm\n",
+ "d=5.*100.##cm\n",
+ "r_dash=r*0.7788##cm\n",
+ "L=0.4*math.log(d/r_dash)*l##mH\n",
+ "print '%s %.3f' %(\"Loop inductance per km(mH)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loop inductance per km(mH) 1.177\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Loop inductance per km of copper conductor line,Loop inductance per km of steel conductor line\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=1./2.##cm\n",
+ "d=1.*100.##cm\n",
+ "mu=50.##relative permeability\n",
+ "r_dash=r*0.7788##cm\n",
+ "L_cu=.1+0.4*math.log(d/r)##mH\n",
+ "print '%s %.2f' %(\"Loop inductance per km of copper conductor line(mH)\",L_cu)#\n",
+ "L_steel=(mu+4.*math.log(d/r))*10.**-7.*10.**3.##mH\n",
+ "print '%s %.2f' %(\"Loop inductance per km of steel conductor line(mH)\",L_steel*10**3)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loop inductance per km of copper conductor line(mH) 2.22\n",
+ "Loop inductance per km of steel conductor line(mH) 7.12\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Geometric mean radius\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=3.##mm\n",
+ "d11=r##mm\n",
+ "d12=2.*r##mm\n",
+ "d34=2.*r##mm\n",
+ "d16=2.*r##mm\n",
+ "d17=2.*r##mm\n",
+ "d14=4.*r##mm\n",
+ "d13=math.sqrt(d14**2.-d34**2.)##mm\n",
+ "d15=d13##mm\n",
+ "Ds1=(0.7788*d11*d12*d13*d14*d15*d16*d17)**(1./7.)##mm\n",
+ "Ds2=Ds1##mm\n",
+ "Ds3=Ds1##mm\n",
+ "Ds4=Ds1##mm\n",
+ "Ds5=Ds1##mm\n",
+ "Ds6=Ds1##mm\n",
+ "Ds7=(2.*r*0.7788*d11*d12*d13*2.*r*2.*r)**(1./7.)##mm\n",
+ "Ds=(Ds1*Ds2*Ds3*Ds4*Ds5*Ds6*Ds7)**(1./7.)##mm\n",
+ "print '%s %.3f' %(\"Geometric mean radius(mm)\",Ds)#\n",
+ "#Answer in the book is wrong\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Geometric mean radius(mm) 6.367\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Loop inductance of line\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=1.2##cm\n",
+ "rdash=0.7788*r##cm\n",
+ "d12=0.12*100.##cm\n",
+ "d11dash=(0.2+1.2)*100.##cm\n",
+ "d22dash=(0.2+1.2)*100.##cm\n",
+ "d12dash=(0.2+1.2+0.2)*100.##cm\n",
+ "d21dash=(1.2)*100.##cm\n",
+ "Dm=(d11dash*d12dash*d21dash*d22dash)**(1./4.)##cm\n",
+ "d11=0.93456##cm\n",
+ "d22=0.93456##cm\n",
+ "d12=20.##cm\n",
+ "d21=20.##cm\n",
+ "Ds=(d11*d12*d21*d22)**(1./4.)##cm\n",
+ "L=0.4*math.log(Dm/Ds)##mH/km\n",
+ "print '%s %.3f' %(\"Loop inductance of line(mH/km)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loop inductance of line(mH/km) 1.389\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Loop inductance of line\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=2./2.##cm\n",
+ "rdash=0.7788*r##cm\n",
+ "d12=0.12*100##cm\n",
+ "d11dash=300.##cm\n",
+ "d12dash=math.sqrt(300.**2.+100.**2.)##cm\n",
+ "d21dash=d12dash##cm\n",
+ "d22dash=d11dash##cm\n",
+ "d11=rdash##cm\n",
+ "d22=rdash##cm\n",
+ "d12=100.##cm\n",
+ "d21=100.##cm\n",
+ "Dm=(d11dash*d12dash*d21dash*d22dash)**(1./4.)##cm\n",
+ "Ds=(d11*d12*d21*d22)**(1./4.)##cm\n",
+ "L=0.4*math.log(Dm/Ds)##mH/km\n",
+ "print '%s %.3f' %(\"Loop inductance of line(mH/km)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loop inductance of line(mH/km) 1.421\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example E7 - Pg 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inductance per phase \n",
+ "#Given data :\n",
+ "import math\n",
+ "r=1.24/2##cm\n",
+ "rdash=0.7788*r##cm\n",
+ "d=2.*100.##cm\n",
+ "L=0.2*math.log(d/rdash)##mH\n",
+ "print '%s %.3f' %(\"Inductance per phase per km(mH)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance per phase per km(mH) 1.205\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E8 - Pg 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inductance per phase\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=(20./2.)/10.##cm\n",
+ "d1=4.*100.##cm\n",
+ "d2=5.*100.##cm\n",
+ "d3=6.*100.##cm\n",
+ "rdash=0.7788*r##cm\n",
+ "L=0.2*math.log((d1*d2*d3)**(1./3.)/rdash)##mH\n",
+ "print '%s %.2f' %(\"Inductance per phase(mH)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance per phase(mH) 1.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E9 - Pg 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inductance per km of phase1,phase2,phase3\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=4./2.##cm\n",
+ "rdash=0.7788*r##cm\n",
+ "d=300.##cm\n",
+ "d3=6.*100.##cm\n",
+ "LAr=0.2*(math.log(d/rdash)+1./2.*math.log(2.))\n",
+ "LAi=0.866*math.log(2.)##mH\n",
+ "print '%s' %(\"Inductance per km of phase1(mH)\")#\n",
+ "print '%.4f %s %.2f' %(LAr,'-j',LAi)\n",
+ "LB=0.2*math.log(d/rdash)##mH\n",
+ "print '%s %.3f' %(\"Inductance per km of phase2(mH)\",LB)#\n",
+ "LCr=0.2*(math.log(d/rdash)+1./2.*math.log(2.))\n",
+ "LCi=0.866*math.log(2.)##mH\n",
+ "print '%s' %(\"Inductance per km of phase3(mH)\")#\n",
+ "print '%.4f %s %.2f' %(LCr,'+j',LCi)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance per km of phase1(mH)\n",
+ "1.1214 -j 0.60\n",
+ "Inductance per km of phase2(mH) 1.052\n",
+ "Inductance per km of phase3(mH)\n",
+ "1.1214 +j 0.60\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E10 - Pg 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Spacing between adjacent conductors\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=1.2/2.*10.##mm\n",
+ "rdash=0.7788*r##mm\n",
+ "d=3.5*1000.##mm\n",
+ "L=2.*10.**-7.*math.log(d/rdash)##H/m\n",
+ "Lav=1./3.*(L+L+L)##H/m\n",
+ "d=rdash*math.exp(Lav/(2.*10.**-7.)-1./3.*math.log(2.))##mm\n",
+ "print '%s %.4e' %(\"Spacing between adjacent conductors(m)\",d/1000.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Spacing between adjacent conductors(m) 2.7780e+00\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E11 - Pg 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Spacing between adjacent conductors\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=20.##mm\n",
+ "rdash=0.7788*r##mm\n",
+ "d=7.*1000.##mm\n",
+ "L=10**-7*math.log(math.sqrt(3.)/2.*d/rdash)##H/m\n",
+ "print '%s %.4f' %(\"Spacing between adjacent conductors(mH)\",L*10.**3./10.**-3.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Spacing between adjacent conductors(mH) 0.5964\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E12 - Pg 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inductance per phase\n",
+ "import math \n",
+ "#Given data :\n",
+ "r=0.9##cm\n",
+ "rdash=0.7788*r*10.**-2.##m\n",
+ "daa_dash=math.sqrt(6.**2.+6.**2.)##m\n",
+ "dbb_dash=7.##m\n",
+ "dcc_dash=daa_dash##m\n",
+ "daa=rdash##m\n",
+ "d_adash_adash=rdash##m\n",
+ "d_adash_a=daa_dash##m\n",
+ "Dsa=(daa*daa_dash*d_adash_adash*d_adash_a)**(1./4.)##m\n",
+ "Dsb=(daa*7.)**(1./2.)##m\n",
+ "Dsc=(daa*daa_dash)**(1./2.)##m\n",
+ "Ds=(Dsa*Dsb*Dsc)**(1./3.)##m\n",
+ "dab=math.sqrt(3.**2.+0.5**2.)##m\n",
+ "dab_dash=math.sqrt(3.**2.+6.5**2.)##m\n",
+ "d_adash_b=math.sqrt(3.**2.+6.5**2.)##m\n",
+ "d_adash_bdash=math.sqrt(3.**2.+0.5**2.)##m\n",
+ "Dab=(dab*dab_dash*d_adash_b*d_adash_bdash)**(1./4.)##m\n",
+ "Dbc=((dab*dab_dash)**2.)**(1./4.)##m\n",
+ "Dca=((6.*6.)**2.)**(1./4.)##m\n",
+ "Dm=(Dab*Dbc*Dca)**(1./3.)##m\n",
+ "L=0.2*math.log(Dm/Ds)##mH/km\n",
+ "print '%s %.4f' %(\"Inductance per phase(mH/km)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance per phase(mH/km) 0.6135\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E13 - Pg 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate GMD,Deq or Dm,Inductance of 100 km line,Using Alternate method, Inductance of 100 km line\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=5./2.##mm\n",
+ "rdash=2.176*r*10.**-3.##m\n",
+ "daa_dash=math.sqrt(6**2+16**2)##m\n",
+ "dbb_dash=6.##m\n",
+ "dcc_dash=daa_dash##m\n",
+ "dab=8.##m\n",
+ "dab_dash=math.sqrt(6.**2.+8.**2.)##m\n",
+ "dbc=8.##m\n",
+ "dbc_dash=math.sqrt(6.**2.+8.**2.)##m\n",
+ "dca=16.##m\n",
+ "dca_dash=6.##m\n",
+ "Dsa=math.sqrt(rdash*daa_dash)##m\n",
+ "Dsb=math.sqrt(rdash*dbb_dash)##m\n",
+ "Dsc=math.sqrt(rdash*dcc_dash)##m\n",
+ "Ds=(Dsa*Dsb*Dsc)**(1/3)##m\n",
+ "print '%s %.2f' %(\"GMD(m) : \",Ds)#\n",
+ "Dab=(dab*dab_dash)**(1./2.)##m\n",
+ "Dbc=(dbc*dbc_dash)**(1./2.)##m\n",
+ "Dca=(dca*dca_dash)**(1./2.)##m\n",
+ "Dm=(Dab*Dbc*Dca)**(1./3.)##m\n",
+ "print '%s %.2f' %(\"Deq or Dm(m) : \",Dm)#\n",
+ "L=0.2*math.log(Dm/Ds)##mH/km\n",
+ "L=L*10.**-3.*100.##H(for 100 km line)\n",
+ "print '%s %.4f' %(\"Inductance of 100 km line(H)\",L)#\n",
+ "#/Alternate method is given below\n",
+ "d1=dab##m\n",
+ "d2=dca_dash##m\n",
+ "L=0.2*math.log(2.**(1./6.))*math.sqrt(d1/rdash)*((d1**2.+d2**2.)/(4.*d1**2.+d2**2.))**(1./6.)##mH\n",
+ "L=L*10.**-3.*100.##H(for 100 km line)\n",
+ "print '%s %.4f' %(\"Using Alternate method, Inductance of 100 km line(H)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "GMD(m) : 1.00\n",
+ "Deq or Dm(m) : 9.22\n",
+ "Inductance of 100 km line(H) 0.0444\n",
+ "Using Alternate method, Inductance of 100 km line(H) 0.0741\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E14 - Pg 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inductance per phase\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=5./2.##cm\n",
+ "rdash=0.7788*r*10.**-2.##m\n",
+ "d=6.5##m\n",
+ "s=0.4##m\n",
+ "Ds=math.sqrt(rdash*s)##m\n",
+ "dab=6.5##m\n",
+ "dab_dash=6.9##m\n",
+ "d_adash_b=6.1##m\n",
+ "d_adash_bdash=6.5##m\n",
+ "Dab=(dab*dab_dash*d_adash_b*d_adash_bdash)**(1./4.)##m\n",
+ "Dbc=Dab##m\n",
+ "dca=13.##m\n",
+ "dca_dash=12.6##m\n",
+ "d_cdash_a=13.4##m\n",
+ "d_cdash_adash=13.##m\n",
+ "Dca=(dca*dca_dash*d_cdash_a*d_cdash_adash)**(1./4.)##m\n",
+ "Dm=(Dab*Dbc*Dca)**(1./3.)##m\n",
+ "L=0.2*math.log(Dm/Ds)##mH/km\n",
+ "print '%s %.3f' %(\"Inductance per phase(mH/km)\",L)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductance per phase(mH/km) 0.906\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E15 - Pg 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Inductive reactance of bundled conductor line,Inductive reactance with single conductor\n",
+ "import math\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "r=3.5/2.##cm\n",
+ "rdash=0.7788*r*10.**-2.##m\n",
+ "d=7.##m\n",
+ "s=40./100.##m\n",
+ "Ds=math.sqrt(rdash*s)##m\n",
+ "dab=7.##m\n",
+ "dab_dash=7.4##m\n",
+ "d_adash_b=6.6##m\n",
+ "d_adash_bdash=7.##m\n",
+ "Dab=(dab*dab_dash*d_adash_b*d_adash_bdash)**(1./4.)##m\n",
+ "Dbc=Dab##m\n",
+ "dca=14.##m\n",
+ "dca_dash=13.6##m\n",
+ "d_cdash_a=14.4##m\n",
+ "d_cdash_adash=14.##m\n",
+ "Dca=(dca*dca_dash*d_cdash_a*d_cdash_adash)**(1./4.)##m\n",
+ "Dm=(Dab*Dbc*Dca)**(1./3.)##m\n",
+ "L=0.2*math.log(Dm/Ds)##mH/km\n",
+ "XL=2*math.pi*f*L*10.**-3.##ohm/km\n",
+ "print '%s %.2f' %(\"Inductive reactance of bundled conductor line(ohm/km)\",XL)#\n",
+ "#Equivalent single conductor\n",
+ "n=2#\n",
+ "r1=math.sqrt(n*math.pi*r**2./math.pi)##m\n",
+ "r1dash=0.7788*r1*10.**-2.##m\n",
+ "Dm1=(Dab*Dbc*Dca)**(1./3.)##m\n",
+ "L1=0.2*math.log(Dm1/r1dash)##mH/km\n",
+ "XL1=2*math.pi*f*L1*10.**-3.##ohm/km\n",
+ "print '%s %.3f' %(\"Inductive reactance with single conductor(ohm/km)\",XL1)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inductive reactance of bundled conductor line(ohm/km) 0.30\n",
+ "Inductive reactance with single conductor(ohm/km) 0.385\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E16 - Pg 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance of line\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=15./2.##mm\n",
+ "d=1.5*1000.##mm\n",
+ "l=30.##km\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "C=math.pi*epsilon_o/math.log(d/r)*l*1000.##F\n",
+ "print '%s %.4f' %(\"Capacitance of line(micro F)\",C*10**6)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of line(micro F) 0.1575\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E17 - Pg 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance of line\n",
+ "#Given data :\n",
+ "import math\n",
+ "r=2./2.##cm\n",
+ "d=2.5*100.##cm\n",
+ "l=100.##km\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "C=2*math.pi*epsilon_o/math.log(d/r)*l*1000.##F\n",
+ "print '%s %.4f' %(\"Capacitance of line(micro F)\",C*10.**6.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of line(micro F) 1.0075\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E18 - Pg 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance of line\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=2./2./100.##m\n",
+ "d1=3.5##m\n",
+ "d2=5.##m\n",
+ "d3=8.##m\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "CN=2.*math.pi*epsilon_o*1000/math.log((d1*d2*d3)**(1./3.)/r)##F\n",
+ "print '%s %.4f' %(\"Capacitance of line(micro F)\",CN*10.**6.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of line(micro F) 0.0089\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E19 - Pg 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance per phase per meter line,Charging current per phase\n",
+ "import math\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "VL=220.##KV\n",
+ "r=20./2./1000.##m\n",
+ "d1=3.##m\n",
+ "d2=3.##m\n",
+ "d3=6.##m\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "CN=2.*math.pi*epsilon_o/math.log((d1*d2*d3)**(1./3.)/r)##F\n",
+ "print '%s %.4e' %(\"Capacitance per phase per meter line(F)\",CN)#\n",
+ "Vph=VL*1000./math.sqrt(3.)##V\n",
+ "Ic=2.*math.pi*f*CN*Vph##A\n",
+ "print '%s %.3f' %(\"Charging current per phase(mA) : \",Ic*1000.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance per phase per meter line(F) 9.3737e-12\n",
+ "Charging current per phase(mA) : 0.374\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E20 - Pg 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance per phase per meter line,Charging current per phase\n",
+ "import math\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "VL=110.##kV\n",
+ "r=1.05/2.##cm\n",
+ "d1=3.5##m\n",
+ "d2=3.5##m\n",
+ "d3=7.##m\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "CN=2.*math.pi*epsilon_o/math.log((d1*d2*d3)**(1./3.)*100./r)##F\n",
+ "print '%s %.2e' %(\"Capacitance per phase per meter line(F)\",CN)#\n",
+ "Vph=VL*1000./math.sqrt(3.)##V\n",
+ "Ic=2.*math.pi*f*CN*Vph##A/m\n",
+ "print '%s %.3f' %(\"Charging current per phase(A/km) : \",Ic/10**-3)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance per phase per meter line(F) 8.26e-12\n",
+ "Charging current per phase(A/km) : 0.165\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E21 - Pg 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitive reactance too neutral,Charging current\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=2.5/2.*10.**-2.##m\n",
+ "VL=132.##KV\n",
+ "epsilon_o=8.85*10.**-12.##permitivity\n",
+ "f=50.##Hz\n",
+ "dRRdash=math.sqrt(7.**2.+(4.+4.)**2.)##m\n",
+ "dBBdash=dRRdash##m\n",
+ "dYYdash=9.##m\n",
+ "DSR=math.sqrt(r*dRRdash)##m\n",
+ "DSY=math.sqrt(r*dYYdash)##m\n",
+ "DSB=math.sqrt(r*dBBdash)##m\n",
+ "Ds=(DSR*DSB*DSY)**(1./3.)##m\n",
+ "dRY=math.sqrt(4.**2.+(4.5-3.5)**2.)##m\n",
+ "dRYdash=math.sqrt((9.-1.)**2.+4.**2.)##m\n",
+ "dRdashY=math.sqrt((9.-1.)**2.+4.**2.)##m\n",
+ "dRdashYdash=math.sqrt(4.**2.+(4.5-3.5)**2.)##m\n",
+ "DRY=(dRY*dRYdash*dRdashY*dRdashYdash)**(1./4.)##m\n",
+ "DYB=((dRY*dRYdash)**2.)**(1./4.)##m\n",
+ "DBR=((8.*7.)**2.)**(1./4.)##m\n",
+ "Dm=(DRY*DYB*DBR)**(1./3.)##m\n",
+ "C=2*math.pi*epsilon_o/math.log(Dm/Ds)##F/m\n",
+ "C=C/10.**-3.##F/km\n",
+ "X=1./(2.*math.pi*f*C)##ohm\n",
+ "print '%s %.3f' %(\"Capacitive reactance too neutral(kohm) : \",X/1000.)#\n",
+ "Vph=VL*1000./math.sqrt(3.)##Volt\n",
+ "Ic=2.*math.pi*f*C*Vph##A\n",
+ "print '%s %.4f' %(\"Charging current(A/km)\",Ic)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitive reactance too neutral(kohm) : 166.599\n",
+ "Charging current(A/km) 0.4574\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E22 - Pg 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance of 100 km line\n",
+ "import math\n",
+ "#Given data :\n",
+ "d1=8.##m\n",
+ "d2=6.##m\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "r=3.*5./2.*10.**-3.##m\n",
+ "C=4*math.pi*epsilon_o/math.log(2.**(1./3.)*d1/r*((d1**2.+d2**2.)/(4.*d1**2.+d2**2.)**(1./3.)))##F/m\n",
+ "C100=C*100.*1000.*10.**6.##microF\n",
+ "print '%s %.3f' %(\"Capacitance of 100 km line(micro Farad) : \",C100)#\n",
+ "#answer in the textbook is wrong.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of 100 km line(micro Farad) : 1.122\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E23 - Pg 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance,Charging currentimport math\n",
+ "#Given data :\n",
+ "import math\n",
+ "VL=132.##kV\n",
+ "f=50.##Hz\n",
+ "r=5./2.##cm\n",
+ "rdash=0.7788*r*10.**-2.##m\n",
+ "d=6.5##m\n",
+ "s=0.4##m\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "Ds=math.sqrt(rdash*s)##m\n",
+ "dab=6.5##m\n",
+ "dab_dash=6.9##m\n",
+ "d_adash_b=6.1##m\n",
+ "d_adash_bdash=6.5##m\n",
+ "Dab=(dab*dab_dash*d_adash_b*d_adash_bdash)**(1./4.)##m\n",
+ "Dbc=Dab##m\n",
+ "dca=13.##m\n",
+ "dca_dash=12.6##m\n",
+ "d_cdash_a=13.4##m\n",
+ "d_cdash_adash=13.##m\n",
+ "Dca=(dca*dca_dash*d_cdash_a*d_cdash_adash)**(1./4.)##m\n",
+ "Dm=(Dab*Dbc*Dca)**(1./3.)##m\n",
+ "L=0.2*math.log(Dm/Ds)##mH/km\n",
+ "C=2*math.pi*epsilon_o/math.log(Dm/Ds)##F/m\n",
+ "C=C/10.**-3.##F/km\n",
+ "print '%s %.2e' %(\"Capacitance per km(F/km) : \",C)#\n",
+ "Vph=VL*1000./math.sqrt(3)##Volt\n",
+ "Ic=2*math.pi*f*C*Vph##A/km\n",
+ "print '%s %.1f' %(\"Charging current per km(A/km) : \",Ic)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance per km(F/km) : 1.23e-08\n",
+ "Charging current per km(A/km) : 0.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E24 - Pg 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate One conductor ACSR moose conductor line,Inductive reactance per Km per phase(ohm) :,Capacitivetive reactance per Km per phase(Mohm),Three conductor bundled line\n",
+ "#calculate Inductive reactance per km per phase(ohm)\n",
+ "#calculate Capacitivetive reactance per km per phase(Mohm)\n",
+ "import math\n",
+ "#Given data :\n",
+ "VL=132.##kV\n",
+ "f=50.##Hz\n",
+ "r=31.8/2##mm\n",
+ "rdash=0.7788*r##mm\n",
+ "d=10.*1000.##mm\n",
+ "epsilon_o=8.854*10**-12##permitivity\n",
+ "print '%s' %(\"One conductor ACSR moose conductor line : \")#\n",
+ "LAr=0.2*(math.log(d/rdash)+1./2.*math.log(2.))\n",
+ "LAi=0.866*math.log(2.)##mH/km\n",
+ "LB=0.2*math.log(d/rdash)##mH/km\n",
+ "LCr=0.2*(math.log(d/rdash)+1./2.*math.log(2.))\n",
+ "LCi=0.866*math.log(2.)##mH/km\n",
+ "Lav=(LAr+LAi+LB+LCr+LCi)/3.##mH/km\n",
+ "XL=2*math.pi*f*Lav*10.**-3.##ohm\n",
+ "print '%s %.3f' %(\"Inductive reactance per Km per phase(ohm) : \",XL)#\n",
+ "d1=10.##m\n",
+ "d2=10.##m\n",
+ "d3=20.##m\n",
+ "CN=2.*math.pi*epsilon_o/math.log((d1*d2*d3)**(1./3.)/(rdash*10.**-3.))/10.**3.##F/km\n",
+ "XC=1./(2.*math.pi*f*CN*10.**6.)##ohm\n",
+ "print '%s %.3f' %(\"Capacitivetive reactance per Km per phase(Mohm) : \",XC/10**6)#\n",
+ "print '%s' %(\"Three conductor bundled line : \")#\n",
+ "S=40./100.##m\n",
+ "Ds=(rdash*10.**-3.*S**2.)**(1./3.)##m\n",
+ "Deq=(d1*d2*d3)**(1./3.)##m\n",
+ "Ldash=0.2*math.log(Deq/Ds)##mH/km\n",
+ "XLdash=2*math.pi*f*Ldash*10.**-3.##ohm\n",
+ "print '%s %.3f' %(\"Inductive reactance per km per phase(ohm) : \",XLdash)#\n",
+ "Ds=(r*10.**-3.*S**2.)**(1./3.)##m\n",
+ "Cdash=2.*math.pi*epsilon_o*10.**3./math.log(Deq/Ds)##microF/km\n",
+ "XC=1./(2.*math.pi*f*Cdash)/10.**6.##Mohm\n",
+ "print '%s %.3f' %(\"Capacitivetive reactance per km per phase(Mohm) : \",XC)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "One conductor ACSR moose conductor line : \n",
+ "Inductive reactance per Km per phase(ohm) : 0.561\n",
+ "Capacitivetive reactance per Km per phase(Mohm) : 0.396\n",
+ "Three conductor bundled line : \n",
+ "Inductive reactance per km per phase(ohm) : 0.290\n",
+ "Capacitivetive reactance per km per phase(Mohm) : 0.259\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E25 - Pg 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Capacitance per km of line\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=1.5/2.##cm\n",
+ "d=3.*100.##cm\n",
+ "h=6.*100.##cm\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "C=math.pi*epsilon_o/math.log(d/(1.+d**2./4./h**2.)**r)*10.**3.##F\n",
+ "print '%s %.3e' %(\"Capacitance per km of line(F) : \",C)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance per km of line(F) : 4.916e-09\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E26 - Pg 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Part(i) Capacitance per phase per meter length,Part(ii) Capacitance per phase per meter length\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=2./100.##m\n",
+ "d1=4.##m\n",
+ "d2=4.##m\n",
+ "d3=8.##m\n",
+ "epsilon_o=8.854*10.**-12.##permitivity\n",
+ "CN=2.*math.pi*epsilon_o/math.log((d1*d2*d3)**(1./3.)/r)##F\n",
+ "print '%s %.3e' %(\"Part(i) Capacitance per phase per meter length(F) : \",CN)#\n",
+ "h1=20.##m\n",
+ "h2=20.##m\n",
+ "h3=20.##m\n",
+ "h12=math.sqrt(20.**2.+4.**2.)##m\n",
+ "h23=math.sqrt(20.**2.+4.**2.)##m\n",
+ "h31=math.sqrt(20.**2.+8.**2.)##m\n",
+ "Deq=(d1*d2*d3)**(1./3.)##m\n",
+ "CN=2.*math.pi*epsilon_o/(math.log(Deq/r)-math.log((h12*h23*h31/h1/h2/h3)**(1./3.)) )##F\n",
+ "print '%s %.3e' %(\"Part(ii) Capacitance per phase per meter length(F) : \",CN)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part(i) Capacitance per phase per meter length(F) : 1.006e-11\n",
+ "Part(ii) Capacitance per phase per meter length(F) : 1.013e-11\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_5.ipynb b/Elements_of_Power_system/Chapter_5.ipynb
new file mode 100755
index 00000000..49ce6211
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_5.ipynb
@@ -0,0 +1,1386 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ddc558b09e8a48f2e508ce080e711444f5dcc5027e225fbf933fb8580dbc869f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - REPRESENTATION AND PERFORMANCE OF SHORT AND MEDIUM TRANSMISSION LINES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage at sending end,Regulation,Transmission Efficiency\n",
+ "import math\n",
+ "#Given data :\n",
+ "P=1100.##kW\n",
+ "VR=11.*1000.##V\n",
+ "pf=0.8##power factor\n",
+ "R=2.##ohm\n",
+ "X=3.##ohm\n",
+ "I=P*1000./VR/pf##A\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1.-cos_fi_r**2)#\n",
+ "VS=math.sqrt((VR*cos_fi_r+I*R)**2.+(VR*sin_fi_r+I*X)**2.)##V\n",
+ "print '%s %.f' %(\"Voltage at sending end(V)\",VS)#\n",
+ "Reg=(VS-VR)/VR*100.##%\n",
+ "print '%s %.3f' %(\"Regulation\",Reg)#\n",
+ "LineLoss=I**2.*R/1000.##kW\n",
+ "Eta_T=P*100./(P+LineLoss)##%\n",
+ "print '%s %.2f' %(\"Transmission Efficiency(%)\",Eta_T)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage at sending end(V) 11426\n",
+ "Regulation 3.873\n",
+ "Transmission Efficiency(%) 97.24\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Transmission Efficiency(%)\n",
+ "import math \n",
+ "#Given data :\n",
+ "R=0.4##ohm\n",
+ "X=0.4##ohm \n",
+ "P=2000.##kVA\n",
+ "pf=0.8##power factor\n",
+ "VL=3000.##V\n",
+ "VR=VL/math.sqrt(3.)##V\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2.)#\n",
+ "I=P*1000./3./VR##A\n",
+ "VS=VR+I*(R*cos_fi_r+X*sin_fi_r)##V\n",
+ "Reg=(VS-VR)/VR*100.##%\n",
+ "print '%s %.2f' %(\"% Regulation\",Reg)#\n",
+ "LineLoss=3.*I**2.*R/1000.##kW\n",
+ "Pout=P*cos_fi_r##kW\n",
+ "Eta_T=Pout*100./(Pout+LineLoss)##%\n",
+ "print '%s %.f' %(\"Transmission Efficiency(%)\",Eta_T)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% Regulation 12.44\n",
+ "Transmission Efficiency(%) 90\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate \n",
+ "import math\n",
+ "#Given data :\n",
+ "l=15.##km\n",
+ "P=5.##MW\n",
+ "V=11.##kV\n",
+ "f=50.##Hz\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "L=1.1##mH/Km\n",
+ "VR=V*1000./math.sqrt(3.)##V\n",
+ "I=P*1000./math.sqrt(3.)/V/cos_fi_r##A\n",
+ "LineLoss=12./100.*P*10**6##W\n",
+ "R=LineLoss/3./I**2##ohm\n",
+ "X=2.*math.pi*f*L*10**-3*l##ohm/phase\n",
+ "VS=VR+I*(R*cos_fi_r+X*sin_fi_r)##V\n",
+ "VSL=math.sqrt(3.)*VS/1000.##KV\n",
+ "print '%s %.3f' %(\"Line voltage at sending end(kV)\",VSL)#\n",
+ "Reg=(VSL-V)/V*100.##%\n",
+ "print '%s %.3f' %(\"% Regulation\",Reg)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line voltage at sending end(kV) 13.612\n",
+ "% Regulation 23.745\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Line voltage at sending end(kV),Sending end pf(lagging),Transmission Efficiency(%),Regulation\n",
+ "import math \n",
+ "#Given data :\n",
+ "l=50.##km\n",
+ "S=10000.##kVA\n",
+ "pf=0.8##power factor\n",
+ "d=1.2*100.##cm\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "V=33000.##Volts\n",
+ "VR=V/math.sqrt(3.)##V\n",
+ "f=50.##Hz\n",
+ "I=S*1000./math.sqrt(3.)/V##A\n",
+ "LineLoss=10./100.*S*10.**3*pf##W\n",
+ "R=LineLoss/3./I**2##ohm\n",
+ "rho=1.73*10**-6##kg/m**3\n",
+ "a=rho*l*1000.*100./R##cm**2\n",
+ "r=math.sqrt(a/math.pi)##cm\n",
+ "L=0.2*math.log(d/r/0.7788)*l##mH\n",
+ "X=2*math.pi*f*L*10**-3##ohm\n",
+ "VS=VR+I*(R*cos_fi_r+X*sin_fi_r)##V\n",
+ "VSL=math.sqrt(3.)*VS/1000.##kV\n",
+ "print '%s %.2f' %(\"Line voltage at sending end(kV)\",VSL)#\n",
+ "pf_s=(VR*cos_fi_r+I*R)/VS##lagging(sendinf end pf)\n",
+ "print '%s %.4f' %(\"Sending end pf(lagging) \",pf_s)#\n",
+ "Eta_T=S*pf/(S*pf+LineLoss/1000.)*100.#\n",
+ "print '%s %.2f' %(\"Transmission Efficiency(%)\",Eta_T)#\n",
+ "Reg=(VSL-V/1000.)/(V/1000.)*100.##%\n",
+ "print '%s %.2f' %(\"% Regulation\",Reg)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line voltage at sending end(kV) 38.32\n",
+ "Sending end pf(lagging) 0.7579\n",
+ "Transmission Efficiency(%) 90.91\n",
+ "% Regulation 16.12\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Resistance per phase(ohm/phase),Inductance per phase(mH/phase)\n",
+ "import math \n",
+ "#Given data :\n",
+ "VRL=30000.##Volts\n",
+ "VSL=33000.##Volts\n",
+ "f=50.##Hz\n",
+ "P=10.*10.**6##W\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "VR=VRL/math.sqrt(3.)##V\n",
+ "I=P/math.sqrt(3.)/VRL/pf##A\n",
+ "Eta_T=0.96##Efficiency\n",
+ "LineLoss=P*(1/Eta_T-1)##W\n",
+ "R=LineLoss/3/I**2##ohm/phase\n",
+ "print '%s %.1f' %(\"Resistance per phase(ohm/phase)\",R)#\n",
+ "VS=VSL/math.sqrt(3.)##V\n",
+ "X=(VS-VR-I*R*cos_fi_r)/I/sin_fi_r##V\n",
+ "L=X/2./math.pi/f##H/phase\n",
+ "print '%s %.f' %(\"Inductance per phase(mH/phase)\",L*1000)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance per phase(ohm/phase) 2.4\n",
+ "Inductance per phase(mH/phase) 28\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Line voltage at load end(volt),Transmission Efficiency(%)\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "#Given data :\n",
+ "l=3.##km\n",
+ "P=3000.##KW\n",
+ "VSL=11.*10**3##volt\n",
+ "R=l*0.4##ohm\n",
+ "X=l*0.8##ohm\n",
+ "VS=VSL/math.sqrt(3.)##Volts\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "#VS=VR+I*(R*cos_fi_r+X*sin_fi_r)##V\n",
+ "I_into_VR=P*1000./3./cos_fi_r##VA\n",
+ "#VR**2-VS*VR+I_into_VR*(R*cos_fi_r+X*sin_fi_r)#\n",
+ "p=([1, -VS, I_into_VR*(R*cos_fi_r+X*sin_fi_r)])#\n",
+ "VR=numpy.roots(p)#\n",
+ "VR=VR[0]##taking greater value\n",
+ "I=I_into_VR/VR##A\n",
+ "VRL=math.sqrt(3.)*VR##volt\n",
+ "print '%s %.f' %(\"Line voltage at load end(volt) : \",VRL)#\n",
+ "Eta_T=P*1000/(P*1000+3*I**2*R)*100##%\n",
+ "print '%s %.1f' %(\"Transmission Efficiency(%) : \",Eta_T)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line voltage at load end(volt) : 10110\n",
+ "Transmission Efficiency(%) : 94.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E7 - Pg 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Power output(kW),Power factor at sending end(lagging)\n",
+ "import math\n",
+ "#Given data :\n",
+ "R=5.##ohm/phase\n",
+ "X=20.##ohm/phase\n",
+ "VSL=46.85##kV\n",
+ "VRL=33.##kV\n",
+ "VRL=VRL*1000.##v\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "VR=VRL/math.sqrt(3.)##V\n",
+ "I=(VSL*1000./math.sqrt(3.)-VR)/(R*cos_fi_r+X*sin_fi_r)##A\n",
+ "Pout=math.sqrt(3.)*VRL*I*pf/1000.##kW\n",
+ "print '%s %.f' %(\"Power output(kW)\",Pout)#\n",
+ "cosfi_s=(VR*pf+I*R)/(VSL*1000/math.sqrt(3.))##power factor\n",
+ "print '%s %.3f' %(\"Power factor at sending end(lagging)\",cosfi_s)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power output(kW) 22853\n",
+ "Power factor at sending end(lagging) 0.656\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E8 - Pg 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end power factor(lag),Regulation(%),Transmission Efficiency(%)\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "l=80.##km\n",
+ "P=15.##MW\n",
+ "VR=66.*10**3##Volt\n",
+ "R=l*0.3125##ohm\n",
+ "X=l*1.##ohm\n",
+ "Y=l*17.5*10**-6##S\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "IR=P*10**6/(VR*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "IC=1j*Y*VR##A\n",
+ "IS=IR+IC##A\n",
+ "print '%s %.1f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "VS=VR+IS*(R+1j*X)##volt\n",
+ "print '%s %.f %s %.2f' %(\"Sending end voltage(V), magnitude is \",abs(VS),\" and angle in degree is \",cmath.phase(VS)*180/math.pi)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fis=math.cos(fi_s)##sending end pf\n",
+ "print '%s %.2f' %(\"Sending end power factor(lag) : \",cos_fis)#\n",
+ "Reg=(abs(VS)-VR)/VR*100##%\n",
+ "print '%s %.1f' %(\"Regulation(%) : \",Reg)#\n",
+ "LineLoss=abs(IS)**2*R/1000.##kW\n",
+ "print '%s %.1f' %(\"Line Losses in kW : \",LineLoss)#\n",
+ "Eta_T=P*1000/(P*1000+LineLoss)*100##%\n",
+ "print '%s %.2f' %(\"Transmission Efficiency(%) : \",Eta_T)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end current(A), magnitude is 240.3 and angle in degree is -18.95\n",
+ "Sending end voltage(V), magnitude is 79598 and angle in degree is 11.77\n",
+ "Sending end power factor(lag) : 0.86\n",
+ "Regulation(%) : 20.6\n",
+ "Line Losses in kW : 1443.6\n",
+ "Transmission Efficiency(%) : 91.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E9 - Pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line voltage(Volt) ,Regulation(%),Transmission Efficiency(%)\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "l=100.##km\n",
+ "P=20.##MW\n",
+ "VRL=66.*10**3##volt\n",
+ "f=50.##Hz\n",
+ "R=10.##ohm\n",
+ "L=111.7*10**-3##H\n",
+ "C=0.9954*10**-6##F\n",
+ "pf=0.8##power factor\n",
+ "X=2.*math.pi*f*L##ohm\n",
+ "Y=2.*math.pi*f*C##S\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "VR=VRL/math.sqrt(3.)##volt\n",
+ "IR=P*10**6/(math.sqrt(3.)*VRL*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "Z=R+1j*X##ohm\n",
+ "Vdash=VR+1./2.*IR*Z##Volt\n",
+ "IC=Vdash*1j*Y##A\n",
+ "IS=IR+IC##A\n",
+ "VS=Vdash+1./2.*IS*Z##Volt\n",
+ "VSL=abs(VS)*math.sqrt(3.)##Volt\n",
+ "print '%s %.f' %(\"Sending end line voltage(Volt) :\",VSL)#\n",
+ "Reg=(VSL-VRL)/VRL*100.##%\n",
+ "print '%s %.2f' %(\"Regulation(%) : \",Reg)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fi_s=math.cos(fi_s)##sending end pf\n",
+ "Eta_T=math.sqrt(3.)*VRL*abs(IR)*cos_fi_r/(math.sqrt(3)*VSL*abs(IS)*cos_fi_s)*100##%\n",
+ "print '%s %.1f' %(\"Transmission Efficiency(%) : \",Eta_T)#\n",
+ "#Ans is not accurate in the book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end line voltage(Volt) : 77071\n",
+ "Regulation(%) : 16.77\n",
+ "Transmission Efficiency(%) : 93.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E10 - Pg 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line voltage(kV),Regulation(%),Transmission Efficiency(%) \n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "l=200.##km\n",
+ "P=50.##MVA\n",
+ "VRL=132.*10**3.##Volt\n",
+ "f=50.##Hz\n",
+ "R=l*0.15##ohm\n",
+ "X=l*0.50##ohm\n",
+ "Y=l*2.*10**-6##mho\n",
+ "pf=0.85##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "IR=P*10**6/(math.sqrt(3.)*VRL)##A\n",
+ "Z=R+1j*X##ohm\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "Vdash=VR+1/2*IR*Z##Volt\n",
+ "IC=Vdash*1j*Y##A\n",
+ "IS=IR+IC##A\n",
+ "print '%s %.2f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "VS=Vdash+1/2*IS*Z##Volt\n",
+ "VSL=abs(VS)*math.sqrt(3)##Volt\n",
+ "print '%s %.2f' %(\"Sending end line voltage(kV) :\",VSL/1000)#\n",
+ "Reg=(VSL-VRL)/VRL*100##%\n",
+ "print '%s %.2f' %(\"Regulation(%) : \",Reg)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fi_s=math.cos(fi_s)##sending end pf\n",
+ "Eta_T=math.sqrt(3.)*VRL*abs(IR)*cos_fi_r/(math.sqrt(3)*VSL*abs(IS)*cos_fi_s)*100##%\n",
+ "print '%s %.2f' %(\"Transmission Efficiency(%) : \",Eta_T)#\n",
+ "#Ans is wrong in the book.Angle of VS is calculated wrong leads to wrong answers.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end current(A), magnitude is 204.28 and angle in degree is -24.50\n",
+ "Sending end line voltage(kV) : 132.00\n",
+ "Regulation(%) : 0.00\n",
+ "Transmission Efficiency(%) : 100.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E11 - Pg 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end power factor(lag)\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "S=1.*10**3##kVA\n",
+ "pf=0.71##power factor\n",
+ "VRL=22.*10**3##Volt\n",
+ "f=50.##Hz\n",
+ "R=15.##ohm\n",
+ "L=0.2##H\n",
+ "C=0.5*10**-6##F\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "IR=S*10.**3/VRL##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "X=2.*math.pi*f*L##ohm\n",
+ "#Z=sqrt(R**2+X**2)##ohm\n",
+ "Z=R+1j*X##ohm\n",
+ "Y=2.*math.pi*f*C##S\n",
+ "ICR=1./2.*1j*Y*VRL##A\n",
+ "IL=IR+ICR##A\n",
+ "VS=VRL+IL*Z##Volt\n",
+ "print '%s %.f %s %.2f' %(\"Sending end voltage(Volt), magnitude is \",abs(VS),\" and angle in degree is \",cmath.phase(VS))#\n",
+ "ICS=1./2.*1j*Y*VS##A\n",
+ "IS=IL+ICS##A\n",
+ "print '%s %.3f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS))#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fi_s=math.cos(fi_s)##sending end pf\n",
+ "print '%s %.3f' %(\"Sending end power factor(lag) : \",cos_fi_s)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end voltage(Volt), magnitude is 24437 and angle in degree is 0.06\n",
+ "Sending end current(A), magnitude is 42.874 and angle in degree is -0.72\n",
+ "Sending end power factor(lag) : 0.706\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E12 - Pg 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line to line voltage(kV)\n",
+ "import math\n",
+ "#Given data :\n",
+ "P=50.*10**6##W\n",
+ "f=50.##Hz\n",
+ "l=150.##km\n",
+ "pf=0.8##power factor\n",
+ "VRL=110.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "R=0.1*l##ohm\n",
+ "XL=0.5*l##ohm\n",
+ "Z=R+1j*XL##ohm\n",
+ "IR=P/(math.sqrt(3)*VRL*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "Y=3.*10**-6*l##S\n",
+ "ICR=1./2.*1j*Y*VR##A\n",
+ "IL=IR+ICR##A\n",
+ "VS=VR+IL*Z##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.3f' %(\"Sending end line to line voltage(kV) :\",VSL/1000.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end line to line voltage(kV) : 143.562\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E13 - Pg 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line to line voltage(kV),Sending end power factor(lag)\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "l=30.##km\n",
+ "Z=40.+1j*125##ohm\n",
+ "Y=10**-3##mho\n",
+ "P=50.*10**6##W\n",
+ "VRL=220.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3)##Volt\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "IR=P/(math.sqrt(3.)*VRL*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "ICR=1./2.*1j*Y*VR##A\n",
+ "IL=IR+ICR##A\n",
+ "VS=VR+IL*Z##Volt\n",
+ "VSL=math.sqrt(3)*abs(VS)##Volt\n",
+ "print '%s %.2f ' %(\"Sending end line to line voltage(kV) :\",VSL/1000)#\n",
+ "IS=IL+1./2.*1j*Y*VS##A\n",
+ "print '%s %.2f %s %.1f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fis=math.cos(fi_s)##sending end pf\n",
+ "print '%s %.3f' %(\"Sending end power factor(lag) : \",cos_fis)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end line to line voltage(kV) : 238.07 \n",
+ "Sending end current(A), magnitude is 128.15 and angle in degree is 15.1\n",
+ "Sending end power factor(lag) : 0.988\n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E14 - Pg 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line to line voltage(kV)\n",
+ "import math \n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "l=30.##km\n",
+ "Z=40.+1j*125.##ohm\n",
+ "Y=10**-3##mho\n",
+ "P=50.*10**6##W\n",
+ "VRL=220.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "IR=P/(math.sqrt(3.)*VRL*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "ICR=1./2.*1j*Y*VR##A\n",
+ "IL=IR+ICR##A\n",
+ "VS=VR+IL*Z##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end line to line voltage(kV) :\",VSL/1000.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end line to line voltage(kV) : 238.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E15 - Pg 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line voltage(kV),Sending end power factor(lag),Transmission Efficiency(%)\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "l=100.##km\n",
+ "P=50.*10**6##W\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "VRL=132.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "R=0.1*l##ohm\n",
+ "XL=0.3*l##ohm\n",
+ "Z=R+1j*XL##ohm\n",
+ "Y=3.*10**-6*l##S\n",
+ "IR=P/(math.sqrt(3)*VRL*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "ICR=1/2*1j*Y*VR##A\n",
+ "IL=IR+ICR##A\n",
+ "VS=VR+IL*Z##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end line voltage(kV) :\",VSL/1000)#\n",
+ "ICS=1./2.*1j*Y*VS##A\n",
+ "IS=IL+ICS##A\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fi_s=math.cos(fi_s)##sending end pf\n",
+ "print '%s %.2f' %(\"Sending end power factor(lag) : \",cos_fi_s*180/math.pi)#\n",
+ "Eta_T=math.sqrt(3)*VRL*abs(IR)*cos_fi_r/(math.sqrt(3)*VSL*abs(IS)*cos_fi_s)*100##%\n",
+ "print '%s %.3f' %(\"Transmission Efficiency(%) : \",Eta_T)#\n",
+ "#answer in book is wrong\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end line voltage(kV) : 144.56\n",
+ "Sending end power factor(lag) : 45.03\n",
+ "Transmission Efficiency(%) : 95.709\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E16 - Pg 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Line voltage at mid point(kV),Sending end line voltage(kV)\n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "l=10.##km\n",
+ "S1=5000.*10**3##VA\n",
+ "S2=10000.*10**3##VA\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "pf2=0.7071##power factor\n",
+ "cos_fi_r2=pf2#\n",
+ "sin_fi_r2=math.sqrt(1-cos_fi_r2**2)#\n",
+ "R=0.6*l##ohm\n",
+ "XL=1.5*l##ohm\n",
+ "VRL=33*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "I1=S1/(math.sqrt(3.)*VRL)##A\n",
+ "I1=I1*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "Z1=R+1j*XL##ohm\n",
+ "VB=VR+I1*Z1##Volt\n",
+ "VBL=math.sqrt(3)*abs(VB)##Volt\n",
+ "print '%s %.3f' %(\"Line voltage at mid point(kV) : \",VBL/1000)#\n",
+ "I2=S2/(math.sqrt(3.)*VBL)##A\n",
+ "I2=I2*(cos_fi_r2-1j*sin_fi_r2)##A\n",
+ "I=I1+I2##A\n",
+ "print '%s %.2f %s %.2f' %(\"Total current(A), magnitude is \",abs(I),\" and angle in degree is \",cmath.phase(I))#\n",
+ "Z2=R+1j*XL##ohm\n",
+ "VS=VB+I*Z2##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end line voltage(kV) :\",VSL/1000)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line voltage at mid point(kV) : 35.114\n",
+ "Total current(A), magnitude is 251.32 and angle in degree is -0.74\n",
+ "Sending end line voltage(kV) : 41.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E17 - Pg 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Power supplied by line A(kW),B(kW)\n",
+ "import cmath\n",
+ "import math \n",
+ "#Given data :\n",
+ "P=10.##MWatt\n",
+ "pf=0.8##power factor\n",
+ "VRL=30.*10**3##Volt\n",
+ "R1=5.5##ohm\n",
+ "XL1=13.5##ohm\n",
+ "R2=6.##ohm\n",
+ "XL2=11.##ohm\n",
+ "ZA=R1+1j*XL1##ohm\n",
+ "ZB=R2+1j*XL2##ohm\n",
+ "S=P*10.**3./pf*(math.cos(-36.52*math.pi/180.) + 1j*math.sin(-36.52*math.pi/180.))##kVA\n",
+ "SA=S*ZB/(ZA+ZB)##kVA\n",
+ "print '%s %.f %s %.3f' %(\"Load supply by line A(kVA), magnitude is \",abs(SA),\" at pf \",cmath.phase(SA))#\n",
+ "SB=S*ZA/(ZA+ZB)##kVA\n",
+ "print '%s %.f %s %.2f' %(\"Load supply by line B(kVA), magnitude is \",abs(SB),\" and angle in degree is \",cmath.phase(SA))#\n",
+ "PA=abs(SA)*(math.cos(cmath.phase(SA)*180/math.pi))##kW\n",
+ "print '%s %.2f' %(\"Power supplied by line A(kW) : \",PA)#\n",
+ "PB=abs(SB)*(math.cos(cmath.phase(SB)*180/math.pi))##kW\n",
+ "print '%s %.2f' %(\"Power supplied by line B(kW) : \",PB)#\n",
+ "#Answer is not accurate in the book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load supply by line A(kVA), magnitude is 5787 at pf -0.698\n",
+ "Load supply by line B(kVA), magnitude is 6733 and angle in degree is -0.70\n",
+ "Power supplied by line A(kW) : -3797.43\n",
+ "Power supplied by line B(kW) : -3546.79\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E18 - Pg 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Percentage rise in voltage\n",
+ "import math \n",
+ "#Given data :\n",
+ "L=200.##km\n",
+ "f=50.##Hz\n",
+ "omega=2.*math.pi*f##rad/s\n",
+ "Rise=omega**2.*L**2.*10.**-8./18.##%\n",
+ "print '%s %.2f' %(\"Percentage rise in voltage : \",Rise)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage rise in voltage : 2.19\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E19 - Pg 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Parameter A,B,C,D\n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "L=80.##km\n",
+ "f=50.##Hz\n",
+ "Z=(0.15+1j*0.78)*L##ohm\n",
+ "Y=(1j*5.*10.**-6)*L##mho\n",
+ "A=1.+1./2.*Y*Z##parameter of 3-phase line\n",
+ "D=A##parameter of 3-phase line\n",
+ "B=Z*(1.+1./4.*Y*Z)##parameter of 3-phase line\n",
+ "C=Y##parameter of 3-phase line\n",
+ "print (\"Parameter A : \",A)#\n",
+ "print (\"Parameter B : \",B)#\n",
+ "print (\"Parameter C : \",C)#\n",
+ "print (\"Parameter D : \",D)#\n",
+ "#Answer of B is wrong in the book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('Parameter A : ', (0.98752+0.0024j))\n",
+ "('Parameter B : ', (11.85024+62.02502400000001j))\n",
+ "('Parameter C : ', 0.00039999999999999996j)\n",
+ "('Parameter D : ', (0.98752+0.0024j))\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E20 - Pg 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Power Input(MW),Transmission Efficiency(%),Sending end power factor(lag)\n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "Z=200*math.cos(80.*math.pi/180.) + 1j*math.sin(80.*math.pi/180.)##ohm\n",
+ "Y=0.0013*math.cos(90.*math.pi/180.) + 1j*math.sin(90.*math.pi/180.)##mho/phase\n",
+ "P=80*10**6##W\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "VRL=220.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3)##Volt\n",
+ "f=50##Hz\n",
+ "IR=P/(math.sqrt(3.)*VRL*pf)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "A=1.+1./2.*Y*Z##parameter of 3-phase line\n",
+ "D=A##parameter of 3-phase line\n",
+ "B=Z*(1.+1./4.*Y*Z)##parameter of 3-phase line\n",
+ "C=Y##parameter of 3-phase line\n",
+ "print '%s %.2f %s %.2f' %(\"Parameter A, magnitude is \",abs(A),\" and angle in degree is \",cmath.phase(A)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Parameter B, magnitude is \",abs(B),\" and angle in degree is \",cmath.phase(B)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Parameter C, magnitude is \",abs(C),\" and angle in degree is \",cmath.phase(C)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Parameter D, magnitude is \",abs(D),\" and angle in degree is \",cmath.phase(D)*180/math.pi)#\n",
+ "VS=A*VR+B*IR##Volt\n",
+ "VSL=math.sqrt(3)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end Line voltage(kV) : \",VSL/1000.)#\n",
+ "IS=C*VR+D*IR##A\n",
+ "print '%s %.2f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fis=math.cos(fi_s)##sending end pf\n",
+ "print '%s %.2f' %(\"Sending end power factor(lag) : \",cos_fis)#\n",
+ "Pin=math.sqrt(3.)*VSL*abs(IS)*cos_fis*10**-6##MW\n",
+ "print '%s %.2f' %(\"Power Input(MW) : \",Pin)#\n",
+ "Eta=P/(Pin*10**6)*100.##%\n",
+ "print '%s %.2f' %(\"Transmission Efficiency(%) : \",Eta)#\n",
+ "#Answer in book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parameter A, magnitude is 17.37 and angle in degree is 88.33\n",
+ "Parameter B, magnitude is 302.79 and angle in degree is 86.66\n",
+ "Parameter C, magnitude is 1.00 and angle in degree is 90.00\n",
+ "Parameter D, magnitude is 17.37 and angle in degree is 88.33\n",
+ "Sending end Line voltage(kV) : 3930.49\n",
+ "Sending end current(A), magnitude is 130613.70 and angle in degree is 88.75\n",
+ "Sending end power factor(lag) : 1.00\n",
+ "Power Input(MW) : 888811.72\n",
+ "Transmission Efficiency(%) : 0.01\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E21 - Pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end power factor(lag),Power Input(MW),Transmission Efficiency(%)\n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "P=50.*10**6##VA\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "A=0.98*math.cos(3.*math.pi/180.) + 1j*math.sin(3.*math.pi/180.)##parameter of 3-phase line\n",
+ "D=0.98*math.cos(3.*math.pi/180.) + 1j*math.sin(3.*math.pi/180.)##parameter of 3-phase line\n",
+ "B=110*math.cos(75.*math.pi/180.) + 1j*math.sin(75.*math.pi/180.)##parameter of 3-phase line\n",
+ "C=0.0005*math.cos(80.*math.pi/180.) + 1j*math.sin(80.*math.pi/180.)##parameter of 3-phase line\n",
+ "VRL=110.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "IR=P/(math.sqrt(3.)*VRL)##A\n",
+ "IR=IR*(cos_fi_r-1j*sin_fi_r)##A\n",
+ "VS=A*VR+B*IR##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end Line voltage(kV) : \",VSL/1000.)#\n",
+ "IS=C*VR+D*IR##A\n",
+ "print '%s %.2f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##\n",
+ "cos_fis=math.cos(fi_s)##sending end pf\n",
+ "print '%s %.2f' %(\"Sending end power factor(lag) : \",cos_fis)#\n",
+ "Pin=math.sqrt(3.)*VSL*abs(IS)*cos_fis*10**-6##MW\n",
+ "print '%s %.2f' %(\"Power Input(MW) : \",Pin)#\n",
+ "Eta=P*pf/(Pin*10**6)*100.##%\n",
+ "print '%s %.2f' %(\"Transmission Efficiency(%) : \",Eta)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end Line voltage(kV) : 118.28\n",
+ "Sending end current(A), magnitude is 62400.97 and angle in degree is 89.80\n",
+ "Sending end power factor(lag) : -0.01\n",
+ "Power Input(MW) : -134.12\n",
+ "Transmission Efficiency(%) : -29.82\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E22 - Pg 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate \n",
+ "import math\n",
+ "import cmath\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "#Given data :\n",
+ "f=50##Hz\n",
+ "L=300##km\n",
+ "r=0.15##ohm/km\n",
+ "x=0.5##ohm/km\n",
+ "y=3*10**-6##mho/km\n",
+ "VRL=220*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "P=200*10**6##W\n",
+ "pf=0.85##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "R=r*L##ohm\n",
+ "X=x*L##ohm\n",
+ "Y=y*L##mho\n",
+ "Z=R+1j*X##ohm\n",
+ "#part (i)\n",
+ "A=1+1/2.*1j*Y*Z##parameter of 3-phase line\n",
+ "D=A##parameter of 3-phase line\n",
+ "B=Z##parameter of 3-phase line\n",
+ "C=1j*Y*(1.+1./4.*1j*Y*Z)##parameter of 3-phase line\n",
+ "print '%s %.4f %s %.2f' %(\"Parameter A, magnitude is \",abs(A),\" and angle in degree is \",cmath.phase(A)*180/math.pi)#\n",
+ "print '%s %.1f %s %.1f' %(\"Parameter B, magnitude is \",abs(B),\" and angle in degree is \",cmath.phase(B)*180/math.pi)#\n",
+ "print '%s %.2e %s %.2f' %(\"Parameter C, magnitude is \",abs(C),\" and angle in degree is \",cmath.phase(C)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Parameter D, magnitude is \",abs(D),\" and angle in degree is \",cmath.phase(D)*180/math.pi)#\n",
+ "#part (ii)\n",
+ "p=([0.024525, 11.427, -2102])##from VS=A*VR+B*IR##Volt\n",
+ "IR=roots(p)#\n",
+ "IR=IR[1]##taking +ve value\n",
+ "P=math.sqrt(3.)*VRL*IR*10**-6##MW\n",
+ "print '%s %.1f' %(\"Power received in MW : \",P)#\n",
+ "#/part (iii)\n",
+ "P=200.*10.**6##W\n",
+ "IR=P/math.sqrt(3.)/VRL/pf##A\n",
+ "fi=math.acos(pf) *180./math.pi##degree\n",
+ "IR=IR*math.cos(-fi*math.pi/180.) + 1j*math.sin(-fi*math.pi/180.)#\n",
+ "VS=A*VR+B*IR##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end Line voltage(kV) : \",VSL/1000.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Parameter A, magnitude is 0.9327 and angle in degree is 1.24\n",
+ "Parameter B, magnitude is 156.6 and angle in degree is 73.3\n",
+ "Parameter C, magnitude is 8.70e-04 and angle in degree is 90.60\n",
+ "Parameter D, magnitude is 0.93 and angle in degree is 1.24\n",
+ "Power received in MW : 53.8\n",
+ "Sending end Line voltage(kV) : 283.60\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E23 - Pg 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Exa 5.23\n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "A=0.936+1j*0.016##parameter of 3-phase line\n",
+ "D=A##parameter of 3-phase line\n",
+ "B=33.5+1j*138##parameter of 3-phase line\n",
+ "C=(-0.9280+1j*901.223)*10**-6##parameter of 3-phase line\n",
+ "VRL=200.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "P=40*10**6##W\n",
+ "pf=0.86##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "IR=P/math.sqrt(3.)/VRL/pf##A\n",
+ "fi=math.acos(pf) *180/math.pi##degree\n",
+ "IR=IR*(math.cos(-fi*math.pi/180.) + 1j*math.sin(-fi*math.pi/180.))#\n",
+ "VS=A*VR+B*IR##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end Line voltage(kV) : \",VSL/1000.)#\n",
+ "IS=C*VR+D*IR##A\n",
+ "print '%s %.1f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)##degree\n",
+ "print '%s %.4f' %(\"Sending end phase angle(degree): \",math.cos(fi_s))#\n",
+ "Ps=math.sqrt(3.)*abs(VSL)*abs(IS)*math.cos(fi_s)*10**-6##MW\n",
+ "print '%s %.3f' %(\"Sending end power(MW) : \",Ps)#\n",
+ "Vreg=(VSL-VRL)*100./VRL##%\n",
+ "print '%s %.2f' %(\"Voltage regulation in % : \",Vreg)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end Line voltage(kV) : 211.98\n",
+ "Sending end current(A), magnitude is 116.8 and angle in degree is 20.96\n",
+ "Sending end phase angle(degree): 0.9716\n",
+ "Sending end power(MW) : 41.665\n",
+ "Voltage regulation in % : 5.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E24 - Pg 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end Line voltage(kV)\n",
+ "import cmath\n",
+ "import math\n",
+ "#Given data :\n",
+ "A1=0.98*(math.cos(2.*math.pi/180.) + 1j*math.sin(2.*math.pi/180.))##parameter of 3-phase line\n",
+ "D1=A1##parameter of 3-phase line\n",
+ "B1=28.*(math.cos(69.*math.pi/180.) + 1j*math.sin(69.*math.pi/180.))##parameter of 3-phase line\n",
+ "C1=0.0002*(math.cos(88.*math.pi/180.) + 1j*math.sin(88.*math.pi/180.))##parameter of 3-phase line\n",
+ "A2=0.95*(math.cos(3.*math.pi/180.) + 1j*math.sin(3.*math.pi/180.))##parameter of 3-phase line\n",
+ "D2=A2##parameter of 3-phase line\n",
+ "B2=40.*(math.cos(85.*math.pi/180.) + 1j*math.sin(85.*math.pi/180.))##parameter of 3-phase line\n",
+ "C2=0.0004*(math.cos(90.*math.pi/180.) + 1j*math.sin(90.*math.pi/180.))##parameter of 3-phase line\n",
+ "VRL=110.*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3.)##Volt\n",
+ "IR=200.##A\n",
+ "pf=0.95##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "fi=math.cos(pf)##degree\n",
+ "A=A1*A2+B1*C2##generalized parameter of 2 line\n",
+ "B=A1*B2+B1*D2##generalized parameter of 2 line\n",
+ "C=C1*A2+D1*C2##generalized parameter of 2 line\n",
+ "D=C1*B2+D1*D2##generalized parameter of 2 line\n",
+ "IR=IR*(math.cos(-fi*math.pi/180.) + 1j*math.sin(-fi*math.pi/180.))#\n",
+ "VS=A*VR+B*IR##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "print '%s %.2f' %(\"Sending end Line voltage(kV) : \",VSL/1000)#\n",
+ "IS=C*VR+D*IR##A\n",
+ "print '%s %.2f %s %.2f' %(\"Sending end current(A), magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n",
+ "#Answer for VSL is wrong in the book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end Line voltage(kV) : 109.34\n",
+ "Sending end current(A), magnitude is 190.09 and angle in degree is 15.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E25 - Pg 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end power factor(lagging)\n",
+ "import cmath\n",
+ "import math\n",
+ "#Given data :\n",
+ "A1=0.98*(math.cos(1.*math.pi/180.) + 1j*math.sin(1.*math.pi/180.))##parameter of 3-phase line\n",
+ "D1=A1##parameter of 3-phase line\n",
+ "B1=100*(math.cos(75.*math.pi/180.) + 1j*math.sin(75.*math.pi/180.))##parameter of 3-phase line\n",
+ "C1=0.0005*(math.cos(90.*math.pi/180.) + 1j*math.sin(90.*math.pi/180.))##parameter of 3-phase line\n",
+ "A2=0.98*(math.cos(1.*math.pi/180.) + 1j*math.sin(1.*math.pi/180.))##parameter of 3-phase line\n",
+ "D2=A2##parameter of 3-phase line\n",
+ "B2=100*(math.cos(75.*math.pi/180.) + 1j*math.sin(75.*math.pi/180.))##parameter of 3-phase line\n",
+ "C2=0.0005*(math.cos(90.*math.pi/180.) + 1j*math.sin(90.*math.pi/180.))##parameter of 3-phase line\n",
+ "P=100*10**6##W\n",
+ "VRL=132*10**3##Volt\n",
+ "VR=VRL/math.sqrt(3)##Volt\n",
+ "pf=0.8##power factor\n",
+ "cos_fi_r=pf#\n",
+ "sin_fi_r=math.sqrt(1-cos_fi_r**2)#\n",
+ "fi=math.acos(pf)##degree\n",
+ "A=(A1*B2+A2*B1)/(B1+B2)##generalized parameter of 2 line\n",
+ "B=B1*B2/(B1+B2)##generalized parameter of 2 line\n",
+ "C=C1+C2-(A1-A2)*(D1-D2)/(B1+B2)##generalized parameter of 2 line\n",
+ "D=(B1*D2+B2*D1)/(B1+B2)##generalized parameter of 2 line\n",
+ "print '%s' %(\"Generalised constants ot two lines combined are : \")#\n",
+ "print '%s %.2f %s %.f' %(\"Parameter A, magnitude is \",abs(A),\" and angle in degree is \",cmath.phase(A)*180/math.pi)#\n",
+ "print '%s %.f %s %.2f' %(\"Parameter B, magnitude is \",abs(B),\" and angle in degree is \",cmath.phase(B)*180/math.pi)#\n",
+ "print '%s %.3f %s %.2f' %(\"Parameter C, magnitude is \",abs(C),\" and angle in degree is \",cmath.phase(C)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Parameter D, magnitude is \",abs(D),\" and angle in degree is \",cmath.phase(D)*180/math.pi)#\n",
+ "IR=P/math.sqrt(3.)/VRL/pf##A\n",
+ "IR=IR*(math.cos(-fi*math.pi/180.) + 1j*math.sin(-fi*math.pi/180.))#\n",
+ "VS=A*VR+B*IR##Volt\n",
+ "VSL=math.sqrt(3.)*abs(VS)##Volt\n",
+ "IS=C*VR+D*IR##A\n",
+ "fi_s=cmath.phase(VS)-cmath.phase(IS)#\n",
+ "print '%s %.4f' %(\"Sending end power factor(lagging) : \",math.cos(fi_s))#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Generalised constants ot two lines combined are : \n",
+ "Parameter A, magnitude is 0.98 and angle in degree is 1\n",
+ "Parameter B, magnitude is 50 and angle in degree is 75.00\n",
+ "Parameter C, magnitude is 0.001 and angle in degree is 90.00\n",
+ "Parameter D, magnitude is 0.98 and angle in degree is 1.00\n",
+ "Sending end power factor(lagging) : 0.9843\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_6.ipynb b/Elements_of_Power_system/Chapter_6.ipynb
new file mode 100755
index 00000000..5edce177
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_6.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3e57a0086738fdcfc0c2ba196533f123679df702a6579b464c4a555347a158e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 - REPRESENTATION AND PERFORMANCE OF LONG TRANSMISSION LINES "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate A,B,C,D\n",
+ "import math \n",
+ "import cmath\n",
+ "import numpy\n",
+ "#Given data :\n",
+ "r=0.22##ohm\n",
+ "x=0.45##ohm\n",
+ "g=4.*10.**-9##S\n",
+ "b=2.53*10.**-6##S\n",
+ "f=50.##Hz\n",
+ "l=1000.##Km\n",
+ "#Using Convergent series of complex angles\n",
+ "z=r+1j*x##ohm\n",
+ "y=g+1j*b##ohm\n",
+ "Z=z*l##ohm\n",
+ "Y=y*l##ohm\n",
+ "YZ=Y*Z##ohm\n",
+ "Y2Z2=YZ**2.##ohm\n",
+ "Y3Z3=YZ**3.##ohm\n",
+ "A=1.+YZ/2.+Y2Z2/24.+Y3Z3/720.##ohm\n",
+ "D=A##oh,m\n",
+ "B=Z*(1.+YZ/6.+Y2Z2/120.+Y3Z3/5040.)##ohm\n",
+ "C=Y*(1.+YZ/6.+Y2Z2/120.+Y3Z3/5040.)##ohm\n",
+ "print '%s' %(\"Auxiliary Constants by using Convergent series of complex angles : \")#\n",
+ "print \"A = \",A#\n",
+ "print \"B = \",B#\n",
+ "print \"C = \",C#\n",
+ "#Using Convergent series of real angles\n",
+ "A=cmath.cosh(cmath.sqrt(YZ))##ohm\n",
+ "D=A##ohm\n",
+ "B=cmath.sqrt(Z/Y)*cmath.sinh(cmath.sqrt(YZ))##ohm\n",
+ "C=cmath.sqrt(Y/Z)*cmath.sinh(cmath.sqrt(YZ))##ohm\n",
+ "A=cmath.cosh(cmath.sqrt(YZ))##ohm\n",
+ "print '%s' %(\"Auxiliary Constants by using Convergent series of real angles : \")#\n",
+ "print '%s %.2f %s %.2f' %(\"A, magnitude is \",abs(A),\" and angle in degree is \",cmath.phase(A)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"B, magnitude is \",abs(B),\" and angle in degree is \",cmath.phase(B)*180/math.pi)#\n",
+ "print '%s %.4f %s %.2f' %(\"C, magnitude is \",abs(C),\" and angle in degree is \",cmath.phase(C)*180/math.pi)#\n",
+ "print '%s' %(\"We obtain same result by both of the methods.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Auxiliary Constants by using Convergent series of complex angles : \n",
+ "A = (0.471555198201+0.229032046676j)\n",
+ "B = (142.776787567+386.558406193j)\n",
+ "C = (-0.000206399312625+0.00207114180387j)\n",
+ "Auxiliary Constants by using Convergent series of real angles : \n",
+ "A, magnitude is 0.52 and angle in degree is 25.90\n",
+ "B, magnitude is 412.08 and angle in degree is 69.73\n",
+ "C, magnitude is 0.0021 and angle in degree is 95.69\n",
+ "We obtain same result by both of the methods.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Sending end line voltage in kV,Sending end current in A, magnitude is\n",
+ "import math\n",
+ "import cmath\n",
+ "\n",
+ "#Given data :\n",
+ "Z=200.*(math.cos(80.*math.pi/180.) + 1j*math.sin(80.*math.pi/180.))##ohm\n",
+ "Y=0.0013*(math.cos(90.*math.pi/180.) + 1j*math.sin(90.*math.pi/180.))#S/phase\n",
+ "P=80.*10.**6##W\n",
+ "pf=0.8##power factor\n",
+ "VRL=220.*1000.##V\n",
+ "VR=VRL/math.sqrt(3.)##V\n",
+ "IR=P/math.sqrt(3.)/VRL/pf##A\n",
+ "fi=math.acos(pf)*180/math.pi##degree\n",
+ "IR=IR*(math.cos(-fi*math.pi/180.) + 1j*math.sin(-fi*math.pi/180.))##A\n",
+ "YZ=Y*Z##ohm\n",
+ "Y2Z2=YZ**2##ohm\n",
+ "Y3Z3=YZ**3##ohm\n",
+ "A=1.+YZ/2.+Y2Z2/24+Y3Z3/720##ohm\n",
+ "D=A##oh,m\n",
+ "B=Z*(1.+YZ/6.+Y2Z2/120.+Y3Z3/5040.)##ohm\n",
+ "C=Y*(1.+YZ/6.+Y2Z2/120.+Y3Z3/5040.)##mho\n",
+ "VS=A*VR+B*IR##V\n",
+ "VSL=math.sqrt(3.)*abs(VS)##V\n",
+ "print '%s %.2f' %(\"Sending end line voltage in kV : \",VSL/1000.)#\n",
+ "IS=C*VR+D*IR##\n",
+ "print '%s %.2f %s %.2f' %(\"Sending end current in A, magnitude is \",abs(IS),\" and angle in degree is \",cmath.phase(IS)*180/math.pi)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending end line voltage in kV : 263.59\n",
+ "Sending end current in A, magnitude is 187.48 and angle in degree is 7.66\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Constant A0,Constant B0,Constant C0,Constant D0\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "VRL=220.##kV\n",
+ "VR=VRL/math.sqrt(3.)##V\n",
+ "P=10.*10**6##VA\n",
+ "Z=1.+1j*8.##ohm(in %)\n",
+ "Zse=Z/100.*VRL**2./100.##ohm/phase\n",
+ "A=0.9*(math.cos(0.6*math.pi/180.) + 1j*math.sin(0.6*math.pi/180.))##Auxiliary constant\n",
+ "D=A ##Auxiliary constant\n",
+ "\n",
+ "B=153.2*(math.cos(84.6*math.pi/180.) + 1j*math.sin(84.6*math.pi/180.))##Auxiliary constant\n",
+ "C=0.0012*(math.cos(90*math.pi/180.) + 1j*math.sin(90*math.pi/180.))##Auxiliary constant\n",
+ "A0=A+C*Zse##constant\n",
+ "B0=B+D*Zse##ohm#constant\n",
+ "C0=C##mho or S#constant\n",
+ "D0=A##constant\n",
+ "print '%s %.4f %s %.2f' %(\"Constant A0, magnitude is \",abs(A0),\" and angle in degree is \",cmath.phase(A0)*180/math.pi)#\n",
+ "print '%s %.f %s %.2f' %(\"Constant B0(ohm), magnitude is \",abs(B0),\" and angle in degree is \",cmath.phase(B0)*180/math.pi)#\n",
+ "print '%s %.4f %s %.2f' %(\"Constant C0(S), magnitude is \",abs(C0),\" and angle in degree is \",cmath.phase(C0)*180/math.pi)#\n",
+ "print '%s %.1f %s %.2f' %(\"Constant D0, magnitude is \",abs(D0),\" and angle in degree is \",cmath.phase(D0)*180/math.pi)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant A0, magnitude is 0.8536 and angle in degree is 1.02\n",
+ "Constant B0(ohm), magnitude is 188 and angle in degree is 84.39\n",
+ "Constant C0(S), magnitude is 0.0012 and angle in degree is 90.00\n",
+ "Constant D0, magnitude is 0.9 and angle in degree is 0.60\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Constant A0,Constant B0,Constant C0,Constant D0\n",
+ "import math\n",
+ "import cmath\n",
+ "#Given data :\n",
+ "A=0.98*(math.cos(2.*math.pi/180.) + 1j*math.sin(2.*math.pi/180.))##Auxiliary constant\n",
+ "D=A##Auxiliary constant\n",
+ "B=28.*(math.cos(69.*math.pi/180.) + 1j*math.sin(69.*math.pi/180.))##Auxiliary constant\n",
+ "Zse=12.*(math.cos(80.*math.pi/180.) + 1j*math.sin(80.*math.pi/180.))##ohm\n",
+ "C=(A*D-1)/B##Auxiliary constant\n",
+ "A0=A+C*Zse##constant\n",
+ "B0=B+2.*A*Zse+C*Zse**2.##ohm#constant\n",
+ "C0=C##mho or S#constant\n",
+ "D0=A0##constant\n",
+ "print '%s %.2f %s %.2f' %(\"Constant A0, magnitude is \",abs(A0),\" and angle in degree is \",cmath.phase(A0)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Constant B0(ohm), magnitude is \",abs(B0),\" and angle in degree is \",cmath.phase(B0)*180/math.pi)#\n",
+ "print '%s %.2f %s %.f' %(\"Constant C0(S), magnitude is \",abs(C0),\" and angle in degree is \",cmath.phase(C0)*180/math.pi)#\n",
+ "print '%s %.3f %s %.2f' %(\"Constant D0, magnitude is \",abs(D0),\" and angle in degree is \",cmath.phase(D0)*180/math.pi)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant A0, magnitude is 0.96 and angle in degree is 3.53\n",
+ "Constant B0(ohm), magnitude is 50.89 and angle in degree is 75.24\n",
+ "Constant C0(S), magnitude is 0.00 and angle in degree is 53\n",
+ "Constant D0, magnitude is 0.958 and angle in degree is 3.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate \n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "A=0.92*(math.cos(5.3*math.pi/180.) + 1j*math.sin(5.3*math.pi/180.))#Auxiliary constant\n",
+ "D=A##Auxiliary constant\n",
+ "B=65.3*(math.cos(81*math.pi/180.) + 1j*math.sin(81*math.pi/180.))##Auxiliary constant\n",
+ "ZT=100*(math.cos(70*math.pi/180.) + 1j*math.sin(70*math.pi/180.))##ohm\n",
+ "YT=0.0002*(math.cos(-75.*math.pi/180.) + 1j*math.sin(-75.*math.pi/180.))##S\n",
+ "C=(A*D-1)/B##Auxiliary constant\n",
+ "A0=A*(1+2*YT*ZT)+B*(YT)+C*ZT*(1+YT*ZT)##constant\n",
+ "B0=2.*A*ZT+B+C*ZT**2##ohm#constant\n",
+ "C0=2.*A*YT*(1.+YT*ZT)+B*YT**2.+C*(1.+YT*ZT)**2.##mho or S#constant\n",
+ "D0=A0##constant\n",
+ "print '%s %.5f %s %.2f' %(\"Constant A0, magnitude is \",abs(A0),\" and angle in degree is \",cmath.phase(A0)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Constant B0(ohm), magnitude is \",abs(B0),\" and angle in degree is \",cmath.phase(B0)*180/math.pi)#\n",
+ "print '%s %.6f %s %.1f' %(\"Constant C0(S), magnitude is \",abs(C0),\" and angle in degree is \",cmath.phase(C0)*180/math.pi)#\n",
+ "print '%s %.2f %s %.2f' %(\"Constant D0, magnitude is \",abs(D0),\" and angle in degree is \",cmath.phase(D0)*180/math.pi)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant A0, magnitude is 0.84340 and angle in degree is 26.45\n",
+ "Constant B0(ohm), magnitude is 233.85 and angle in degree is 84.30\n",
+ "Constant C0(S), magnitude is 0.003442 and angle in degree is 50.9\n",
+ "Constant D0, magnitude is 0.84 and angle in degree is 26.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate \n",
+ "import math \n",
+ "import cmath\n",
+ "#Given data :\n",
+ "A=0.945*math.cos(1.02*math.pi/180.) + 1j*math.sin(1.02*math.pi/180.)##Auxiliary constant\n",
+ "D=A##Auxiliary constant\n",
+ "B=82.3*math.cos(73.03*math.pi/180.) + 1j*math.sin(73.03*math.pi/180.)##ohm#Auxiliary constant\n",
+ "C=0.001376*math.cos(90.4*math.pi/180.) + 1j*math.sin(90.4*math.pi/180.)##S#Auxiliary constant\n",
+ "#part (i)\n",
+ "Y=C##S\n",
+ "Z=2.*(A-1)/C##ohm\n",
+ "print '%s' %(\"For equivalent T-network : \")#\n",
+ "print '%s %.6f %s %.1f' %(\"Shunt admittance in S, magnitude is \",abs(Y),\" and angle in degree is \",cmath.phase(Y)*180/math.pi)#\n",
+ "print '%s %.2f %s %.1f' %(\"Impedance in ohm, magnitude is \",abs(Z),\" and angle in degree is \",cmath.phase(Z)*180/math.pi)#\n",
+ "print '%s' %(\"For equivalent pi-network : \")#\n",
+ "Z=B##ohm\n",
+ "print '%s %.2f %s %.2f' %(\"Series Impedance in ohm, magnitude is \",abs(Z),\" and angle in degree is \",cmath.phase(Z)*180/math.pi)#\n",
+ "Y=2.*(A-1)/B##S\n",
+ "print '%s %.6f %s %.2f' %(\"Shunt admittance in S, magnitude is \",abs(Y),\" and angle in degree is \",cmath.phase(Y)*180/math.pi)#\n",
+ "#For T-Network Value of Z is wrog in the book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For equivalent T-network : \n",
+ "Shunt admittance in S, magnitude is 0.999976 and angle in degree is 90.0\n",
+ "Impedance in ohm, magnitude is 0.12 and angle in degree is 72.1\n",
+ "For equivalent pi-network : \n",
+ "Series Impedance in ohm, magnitude is 24.04 and angle in degree is 2.28\n",
+ "Shunt admittance in S, magnitude is 0.004821 and angle in degree is 159.83\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_7.ipynb b/Elements_of_Power_system/Chapter_7.ipynb
new file mode 100755
index 00000000..fba9cc63
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_7.ipynb
@@ -0,0 +1,454 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7a4739840eca82c1ce9eed121a54d5060bb7d710089eb77f452cc47ec3867eee"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - CORONA"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Line Voltage for comencing of corena(in kV)\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=1.##cm\n",
+ "d=4.##meter\n",
+ "g0=30./math.sqrt(2.)##kV/cm\n",
+ "LineVoltage=math.sqrt(3.)*g0*r*math.log(d*100./r)##kV\n",
+ "print '%s %.2f' %(\"Line Voltage for comencing of corena(in kV) :\",round(LineVoltage))#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line Voltage for comencing of corena(in kV) : 220.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Disruptive critical voltage from line to line(kV rms)\n",
+ "import math\n",
+ "#Given data :\n",
+ "Ph=3.##phase\n",
+ "V=220.##kV\n",
+ "f=50.##Hz\n",
+ "r=1.2##cm\n",
+ "d=2.##meter\n",
+ "mo=0.96##Irregularity factor\n",
+ "t=20.##degree C\n",
+ "T=t+273.##K\n",
+ "b=72.2##cm\n",
+ "go=21.1##kV rms/cm\n",
+ "dela=3.92*b/T##Air density factor\n",
+ "Vdo=go*dela*mo*r*math.log(d*100./r)##in kV\n",
+ "Vdo_line=math.sqrt(3.)*Vdo##in kV\n",
+ "print '%s %.2f' %(\"Disruptive critical voltage from line to line(kV rms) : \",round(Vdo_line))#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Disruptive critical voltage from line to line(kV rms) : 208.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Spacing between conductors in meter\n",
+ "import math\n",
+ "#Given data :\n",
+ "V=132.##kV\n",
+ "r=2./2.##cm\n",
+ "Vexceed=210.##kV(rms)\n",
+ "go=30000./math.sqrt(2.)##Volts/cm\n",
+ "go=go/1000.##kV/cm\n",
+ "Vdo=Vexceed/math.sqrt(3.)##Volt\n",
+ "mo=1.##assumed \n",
+ "dela=1.##assumed air density factor\n",
+ "#Formula : Vdo=go*del*mo*r*log(d*100/r)##in kV\n",
+ "d=math.exp(Vdo/go/dela/mo/r)*r##cm\n",
+ "print '%s %.2f' %(\"Spacing between conductors in meter : \",d*10**-2)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Spacing between conductors in meter : 3.04\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Minimum Diameter of conductor by Hit & Trial method(cm)\n",
+ "import math\n",
+ "import numpy\n",
+ "#Given data :\n",
+ "Ph=3.##phase\n",
+ "V=132.##kV\n",
+ "f=50.##Hz\n",
+ "d=3.##meter\n",
+ "d=d*100.##in cm\n",
+ "go=21.21##kV/cm : assumed\n",
+ "mo=0.85##assumed \n",
+ "dela=0.95##assumed air density factor\n",
+ "Vdo=V/math.sqrt(3.)##kV\n",
+ "#Formula : Vdo=go*del*mo*r*log(d*100/r)##in kV\n",
+ "#r*log(d/r)=Vdo/go/del/mo: solving\n",
+ "#Implementing Hit & Trial method\n",
+ "w=numpy.zeros(200)\n",
+ "\n",
+ "w[0]=.1\n",
+ "for i in range (1,200):\n",
+ "\tw[i]=.1+w[i-1];\n",
+ "\n",
+ "for r in w:\n",
+ " if round(r*math.log(d/r))==round(Vdo/go/dela/mo):\n",
+ " print '%s %.2f' %(\"Minimum Diameter of conductor by Hit & Trial method(cm) : \",2*r)#\n",
+ " break"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum Diameter of conductor by Hit & Trial method(cm) : 1.20\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate g1max(kV/cm)\n",
+ "import math\n",
+ "#Given data :\n",
+ "r=2.5/2.##cm\n",
+ "epsilon_r=4.##constant\n",
+ "r1=3./2.##cm\n",
+ "r2=9./2.##cm\n",
+ "V=20.##kV(rms)\n",
+ "#Formula : gmax=q/(2*epsilon*r)\n",
+ "g2maxBYg1max=r/epsilon_r/r1##unitless\n",
+ "#Formula : V=g1max*r*log(r1/r)+g2max*r1*log(r2/r1)\n",
+ "g1max=V/(r*math.log(r1/r)+g2maxBYg1max*r1*math.log(r2/r1))##in kV/cm\n",
+ "print '%s %.2f' %(\"g1max(kV/cm) = \",g1max)#\n",
+ "print '%s' %(\"Corona will be present.g1max > go\")#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "g1max(kV/cm) = 35.01\n",
+ "Corona will be present.g1max > go\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Line to line visual critical voltage for local corona(kV-rms),Line to line visual critical voltage for general corona(kV-rms)\n",
+ "import math\n",
+ "#Given data :\n",
+ "Ph=3.##phase\n",
+ "r=10.4/2##mm\n",
+ "r=r/10.##in cm\n",
+ "d=2.5##meter\n",
+ "d=d*100.##in cm\n",
+ "t=21.##degree C\n",
+ "T=t+273.##K\n",
+ "b=73.6##cm-Hg\n",
+ "mo=0.85# \n",
+ "mv_l=0.7#\n",
+ "mv_g=0.8#\n",
+ "go=21.21##kV/cm : assumed\n",
+ "dela=3.92*b/T##Air density factor\n",
+ "#Formula : Vdo=go*del*mo*r*log(d*100/r)##kV\n",
+ "Vdo=go*dela*mo*r*math.log(d/r)##kV\n",
+ "Vdo_line=math.sqrt(3.)*Vdo##kV\n",
+ "Vvo=go*dela*mv_l*r*(1+.3/math.sqrt(dela*r))*math.log(d/r)##kV\n",
+ "Vvo_line_local=Vvo*math.sqrt(3.)##kV(rms)\n",
+ "print '%s %.1f' %(\"Line to line visual critical voltage for local corona(kV-rms) : \",Vvo_line_local)\n",
+ "Vvo_line_general=Vvo_line_local*mv_g/mv_l##kV(rms)\n",
+ "print '%s %.f' %(\"Line to line visual critical voltage for general corona(kV-rms) : \",Vvo_line_general)\n",
+ "#Note : Answer in the book is not accurate.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Line to line visual critical voltage for local corona(kV-rms) : 115.1\n",
+ "Line to line visual critical voltage for general corona(kV-rms) : 132\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E7 - Pg 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Corona Loss at 113 kV in kW ,Disruptive critical voltage between lines(kV)\n",
+ "#Given data :\n",
+ "import math\n",
+ "Pc1=53.##in kW\n",
+ "V1=106.##in kV\n",
+ "Pc2=98.##in kW\n",
+ "V2=110.9##in kV\n",
+ "Vph1=V1/math.sqrt(3.)##in kV\n",
+ "Vph2=V2/math.sqrt(3.)##in kV\n",
+ "#Formula : Pc=3*244/del*(f+25)*sqrt(r/d)*(Vph-Vdo)**2*10**-5##kW/Km\n",
+ "print '%s' %(\"Using proportionality : Pc is proportional to (Vph-Vdo)**2\")#\n",
+ "print '%s' %(\"We have, Pc1/Pc2 = (Vph1-Vdo)**2/(Vph2-Vdo)**2\")#\n",
+ "Vdo=(Vph1-math.sqrt(Pc1/Pc2)*(Vph2))/(1-math.sqrt(Pc1/Pc2))#\n",
+ "V3=113.##in kV\n",
+ "Vph3=V3/math.sqrt(3.)##in kV\n",
+ "Pc3=Pc2*(Vph3-Vdo)**2./(Vph2-Vdo)**2##in kW\n",
+ "print '%s %.1f' %(\"Corona Loss at 113 kV in kW : \",Pc3)#\n",
+ "VLine=math.sqrt(3.)*Vdo##in kV\n",
+ "print '%s %.1f' %(\"Disruptive critical voltage between lines(kV): \",VLine)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Using proportionality : Pc is proportional to (Vph-Vdo)**2\n",
+ "We have, Pc1/Pc2 = (Vph1-Vdo)**2/(Vph2-Vdo)**2\n",
+ "Corona Loss at 113 kV in kW : 121.5\n",
+ "Disruptive critical voltage between lines(kV): 92.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E8 - Pg 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Total corona loss under foul weather condition using Peek formula in kW,Total corona loss under foul weather condition using Peterson formula in kW \n",
+ "import math\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "l=160.##km\n",
+ "r=1.036/2.##cm\n",
+ "d=2.44*100.##cm\n",
+ "g0=21.1##kV/cm(rms)\n",
+ "m0=0.85##irregularity factor\n",
+ "mv=0.72##roughness factor\n",
+ "b=73.15##cm\n",
+ "t=26.6##degree C\n",
+ "dela=3.92*b/(273.+t)##air density factor\n",
+ "Vd0=g0*dela*m0*r*math.log(d/r)##kV(rms)\n",
+ "print '%s %.2f' %(\"Critical disruptive voltage(rms) in kV : \",Vd0)#\n",
+ "Vv0=g0*dela*mv*r*(1+0.3/math.sqrt(dela*r))*math.log(d/r)##kV\n",
+ "print '%s %.1f' %(\"Visual Critical voltage(rms) in kV : \",Vv0)#\n",
+ "Vph=110./math.sqrt(3.)##in kV\n",
+ "Pc_dash=d/dela*(f+25)*math.sqrt(r/d)*(Vph-0.8*Vd0)**2*10**-5##kW/km/phase\n",
+ "T_Corona_loss=l*3*Pc_dash##kW\n",
+ "print '%s %.f' %(\"Total corona loss under foul weather condition using Peek formula in kW : \",T_Corona_loss)#\n",
+ "VphBYVd0=Vph/Vd0/0.8#\n",
+ "K=0.46##constant\n",
+ "Corona_loss=21*10**-5*f*Vph**2*K/(math.log10(d/r))**2##kW/km/phase\n",
+ "T_corona_loss=Corona_loss*3*l##kW\n",
+ "print '%s %.1f' %(\"Total corona loss under foul weather condition using Peterson formula in kW : \",T_corona_loss)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical disruptive voltage(rms) in kV : 54.73\n",
+ "Visual Critical voltage(rms) in kV : 66.1\n",
+ "Total corona loss under foul weather condition using Peek formula in kW : 1645\n",
+ "Total corona loss under foul weather condition using Peterson formula in kW : 1308.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E9 - Pg 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Power loss due to corona for fair weather condition,Total corona loss using Peek formula in kW,Total corona loss under foul weather condition using Peterson formula in kW \n",
+ "import math\n",
+ "#given data :\n",
+ "f=50.##Hz\n",
+ "l=175.##km\n",
+ "r=1./2.##cm\n",
+ "d=3.*100.##cm\n",
+ "g0=21.1##kV/cm(rms)\n",
+ "m0=0.85##irregularity factor\n",
+ "mv=0.72##roughness factor\n",
+ "mv_dash=0.82##roughness factor\n",
+ "b=74.##cm\n",
+ "t=26.##degree C\n",
+ "Vph=110./math.sqrt(3.)##kV\n",
+ "dela=3.92*b/(273.+t)##air density factor\n",
+ "Vd0=g0*dela*m0*r*math.log(d/r)##kV(rms)\n",
+ "Vvo=g0*dela*mv*r*(1.+0.3/math.sqrt(dela*r))*math.log(d/r)##kV rms\n",
+ "Vvo_dash=Vvo*mv_dash/mv##kV rms\n",
+ "Pc=244./dela*(f+25.)*math.sqrt(r/d)*(Vph-Vd0)**2.*10.**-5##kW/Km/phase\n",
+ "T_CoronaLoss=Pc*l*3.##kW\n",
+ "print '%s' %(\"Power loss due to corona for fair weather condition : \")#\n",
+ "print '%s %.f' %(\"Total corona loss using Peek formula in kW : \",T_CoronaLoss)#\n",
+ "K=0.0713##constant for Vph/Vdo=1.142\n",
+ "Pc=21.*10.**-5*f*Vph**2./(math.log10(d/r))**2.*K##kW/Km/phase\n",
+ "T_CoronaLoss=Pc*l*3##kW\n",
+ "print '%s %.1f' %(\"According Peterson formula, Total corona loss for 175 km 3-phase line(kW): \",T_CoronaLoss)#\n",
+ "print '%s' %(\"Power loss due to corona for stormy weather condition : \")#\n",
+ "Vd0=0.8*Vd0##kV\n",
+ "Pc_dash=l*3.*244./dela*(f+25.)*math.sqrt(r/d)*(Vph-Vd0)**2.*10.**-5##kW/Km/phase\n",
+ "print '%s %.f' %(\"Total corona loss using Peek formula in kW : \",Pc_dash)#\n",
+ "K=0.395##constant for Vph/Vdo=1.42\n",
+ "Pc=21.*10.**-5*f*Vph**2./(math.log10(d/r))**2.*K##kW/Km/phase\n",
+ "T_CoronaLoss=Pc*l*3.##kW\n",
+ "print '%s %.f' %(\"According Peterson formula, Total corona loss for 175 km 3-phase line(kW): \",T_CoronaLoss)#\n",
+ "#Answer is wrong in the book for corona loss fair weather condition using Peek formula.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power loss due to corona for fair weather condition : \n",
+ "Total corona loss using Peek formula in kW : 249\n",
+ "According Peterson formula, Total corona loss for 175 km 3-phase line(kW): 205.4\n",
+ "Power loss due to corona for stormy weather condition : \n",
+ "Total corona loss using Peek formula in kW : 1457\n",
+ "According Peterson formula, Total corona loss for 175 km 3-phase line(kW): 1138\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_8.ipynb b/Elements_of_Power_system/Chapter_8.ipynb
new file mode 100755
index 00000000..423bc6e5
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_8.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6d073c49f372dda47c7aa22d6e606de390e394a91f8374089b05d9ccb3405267"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - ELECTROSTATIC AND ELECTROMAGNETIC INTERFERENCE WITH COMMUNICATION LINES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage induced per Km in the line in Volt\n",
+ "import math\n",
+ "#Given data :\n",
+ "f=50.##Hz\n",
+ "hor_con=1.2##horizontal configuration spacing in m\n",
+ "x=0.85##telephone line location below power line in meter\n",
+ "I=120.##current in power line in A\n",
+ "d=0.4##spacing between conductors in meter\n",
+ "dAD=math.sqrt(x**2.+((hor_con+d)/2.)**2.)##m\n",
+ "dAC=math.sqrt(x**2.+((hor_con-d)/2.)**2.)##m\n",
+ "dBD=dAC##m\n",
+ "dBC=dAD##m\n",
+ "M=d*math.log(math.sqrt(dAD*dBC/dAC/dBD))##mh/km\n",
+ "Vm=2*math.pi*f*M*10.**-3*I##V\n",
+ "print '%s %.3f' %(\"Voltage induced per Km in the line in Volt :\",Vm)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage induced per Km in the line in Volt : 3.275\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate \n",
+ "import math\n",
+ "#Given data :\n",
+ "f=50.##HzdAP=AO+5##m\n",
+ "l=200.##km\n",
+ "V=132.*1000.##V\n",
+ "Load=28000.##kW\n",
+ "pf=0.85##lagging power factor\n",
+ "r=5./1000.##radius of conductor in m\n",
+ "#From the figure given in question\n",
+ "AO=math.sqrt(4.**2.-2.**2.)##m\n",
+ "dAP=AO+5.##m\n",
+ "dAQ=dAP+1.##m\n",
+ "dBP=math.sqrt(5.**2.+2.**2.)##m\n",
+ "dBQ=math.sqrt(6.**2.+2.**2.)##m\n",
+ "MA=0.2*math.log(dAQ/dAP)##mH/km\n",
+ "MB=0.2*math.log(dBQ/dBP)##mH/km\n",
+ "MC=MB##mH/km\n",
+ "M=MB-MA##mH/km(MA,MB and Mc are print '%s %.2f' %laced by 120 degree)\n",
+ "I=Load*1000./math.sqrt(3.)/V/pf##A\n",
+ "Vm=2.*math.pi*f*M*10.**-3.*I##V/km\n",
+ "Vm1=Vm*l##V(For whole route)\n",
+ "print '%s %.1f' %(\"Induced Voltage(For whole route) in Volts : \",Vm1)#\n",
+ "VA=V/math.sqrt(3.)##V\n",
+ "VB=V/math.sqrt(3.)##V\n",
+ "hA=20.+AO##m\n",
+ "VPA=VA*math.log((2.*hA-dAP)/dAP)/math.log((2.*hA-r)/r)##V\n",
+ "VPB=VB*math.log((2.*hA-dBP)/dBP)/math.log((2.*hA-r)/r)##V\n",
+ "VPC=VPB##V\n",
+ "VP=VPB-VPA##V\n",
+ "print '%s %.f' %(\"Potential of telephone conductor in Volts :\",VP)#\n",
+ "#Answer in the book is wrong due to little accuracy as compared to scilab.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Induced Voltage(For whole route) in Volts : 88.9\n",
+ "Potential of telephone conductor in Volts : 4409\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/Chapter_9.ipynb b/Elements_of_Power_system/Chapter_9.ipynb
new file mode 100755
index 00000000..4d406e3b
--- /dev/null
+++ b/Elements_of_Power_system/Chapter_9.ipynb
@@ -0,0 +1,569 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3ce27a1ffc85e51aa7fc37d88fef9ce130fae45889a6045109b8b780c88a7574"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 - OVERHEAD LINE INSULATORS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage across the first,second,third,fourth,fifth,sixth unit\n",
+ "import math\n",
+ "#Given data :\n",
+ "C1=1.##\n",
+ "C=6.#\n",
+ "K=C1/C#\n",
+ "V2byV1=(1.+K)#\n",
+ "V3byV1=(1.+3.*K+K**2.)#\n",
+ "V4byV1=(1.+6.*K+5.*K**2.+K**3.)#\n",
+ "#I5=I4+i4#\n",
+ "#omega*C*V5=omega*C*V4+omega*C1*(V1+V2+V3+V4)\n",
+ "V5byV1=1.+10.*K+15.*K**2.+7.*K**3.+K**4.\n",
+ "VbyV1=1+V2byV1+V3byV1+V4byV1+V5byV1#\n",
+ "V1byV=1/VbyV1#\n",
+ "print '%s %.3f %s' %(\"Voltage across the first unit is \",V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the seconf unit is \",V2byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the third unit is \",V3byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the fourth unit is \",V4byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the bottom most unit is \",V5byV1*V1byV*100,\" % of V\")#\n",
+ "n=5##no. of unit\n",
+ "Strinf_eff=1/n/(V5byV1*V1byV)##%\n",
+ "print '%s %.2f' %(\"String Efficiency(%)\",Strinf_eff*100.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage across the first unit is 11.168 % of V\n",
+ "Voltage across the seconf unit is 13.029 % of V\n",
+ "Voltage across the third unit is 17.062 % of V\n",
+ "Voltage across the fourth unit is 23.938 % of V\n",
+ "Voltage across the bottom most unit is 34.804 % of V\n",
+ "String Efficiency(%) 0.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage across the first,second,third,fourth,fifth,sixth unit\n",
+ "import math\n",
+ "#Given data :\n",
+ "C1=1.##\n",
+ "C=10.#\n",
+ "K=C1/C#\n",
+ "V2byV1=(1.+K)#\n",
+ "V3byV1=(1.+3.*K+K**2.)#\n",
+ "V4byV1=(1.+6.*K+5.*K**2.+K**3.)#\n",
+ "V5byV1=1.+10.*K+15.*K**2.+7.*K**3.+K**4.\n",
+ "#I6=I5+i5#\n",
+ "#omega*C*V6=omega*C*V5+omega*C1*(V1+V2+V3+V4+V5)\n",
+ "V6byV1=V5byV1+K*(1.+V2byV1+V3byV1+V4byV1+V5byV1)#\n",
+ "VbyV1=1.+V2byV1+V3byV1+V4byV1+V5byV1+V6byV1#\n",
+ "V1byV=1./VbyV1#\n",
+ "print '%s %.3f %s' %(\"Voltage across the first unit is \",V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the seconf unit is \",V2byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the third unit is \",V3byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the fourth unit is \",V4byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the fifth unit is \",V5byV1*V1byV*100,\" % of V\")#\n",
+ "print '%s %.3f %s' %(\"Voltage across the sixth unit is \",V6byV1*V1byV*100,\" % of V\")#\n",
+ "n=6##no. of unit\n",
+ "Strinf_eff=1/n/(V6byV1*V1byV)##%\n",
+ "print '%s %.2f' %(\"String Efficiency(%)\",Strinf_eff*100)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage across the first unit is 9.904 % of V\n",
+ "Voltage across the seconf unit is 10.894 % of V\n",
+ "Voltage across the third unit is 12.974 % of V\n",
+ "Voltage across the fourth unit is 16.351 % of V\n",
+ "Voltage across the fifth unit is 21.364 % of V\n",
+ "Voltage across the sixth unit is 28.513 % of V\n",
+ "String Efficiency(%) 0.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Part(i) Percentage String Efficiency,Part(ii) Percentage String Efficiency\n",
+ "import math\n",
+ "#Given data :\n",
+ "V=66.##kV\n",
+ "#Part(i)\n",
+ "n=5.##no. of uniits\n",
+ "K=1./5.##shunt to mutual capacitance ratio\n",
+ "V1=V/(5.+20.*K+21.*K**2.+8.*K**3.+K**4.)##kV\n",
+ "V5=V1*(1.+10.*K+15.*K**2.+7.*K**3.+K**4.)##kV\n",
+ "Strinf_eff=V/n/V5#\n",
+ "print '%s %.2f' %(\"Part(i) Percentage String Efficiency(%)\",Strinf_eff*100.)#\n",
+ "#Part(ii)\n",
+ "n=5.##no. of uniits\n",
+ "K=1./6.##shunt to mutual capacitance ratio\n",
+ "V1=V/(5.+20.*K+21.*K**2.+8.*K**3.+K**4.)##kV\n",
+ "V5=V1*(1.+10.*K+15.*K**2.+7.*K**3.+K**4.)##kV\n",
+ "Strinf_eff=V/n/V5#\n",
+ "print '%s %.2f' %(\"Part(ii) Percentage String Efficiency(%)\",Strinf_eff*100)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part(i) Percentage String Efficiency(%) 54.16\n",
+ "Part(ii) Percentage String Efficiency(%) 57.46\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage across top most unit(kV),Voltage across middle unit(kV),Percentage String Efficiency(%)\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=20.##kV\n",
+ "n=3.##no. of uniits\n",
+ "K=0.1##shunt to mutual capacitance ratio\n",
+ "V3=Vs##kV\n",
+ "V1=V3/(1.+3.*K+K**2.)##kV\n",
+ "print '%s %.3f' %(\"Voltage across top most unit(kV)\",V1)#\n",
+ "V2=V1*(1.+K)##kV\n",
+ "print '%s %.3f' %(\"Voltage across middle unit(kV)\",V2)#\n",
+ "V=V1+V2+V3##kV\n",
+ "Strinf_eff=V/n/V3#\n",
+ "print '%s %.3f' %(\"Percentage String Efficiency(%)\",Strinf_eff*100.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage across top most unit(kV) 15.267\n",
+ "Voltage across middle unit(kV) 16.794\n",
+ "Percentage String Efficiency(%) 86.768\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum safe working voltage(kV)\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=17.5##kV\n",
+ "n=3.##no. of uniits\n",
+ "K=1./8.##shunt to mutual capacitance ratio\n",
+ "V3=Vs##kV\n",
+ "V1=V3/(1.+3.*K+K**2.)##kV\n",
+ "V2=V1*(1.+K)##kV\n",
+ "V=V1+V2+V3##kV\n",
+ "#Strinf_eff=V/n/V3#\n",
+ "print '%s %.2f' %(\"Maximum safe working voltage(kV)\",V)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum safe working voltage(kV) 44.24\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E6 - Pg 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum safe working voltage,Percentage String Efficiency\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=12.##kV\n",
+ "n=4.##no. of uniits\n",
+ "K=0.1##shunt to mutual capacitance ratio\n",
+ "V4=Vs##kV\n",
+ "V1=V4/(1.+6.*K+5.*K**2.+K**3.)##kV\n",
+ "V2=V1*(1.+K)##kV\n",
+ "V3=V1*(1.+3.*K+K**2.)##kV\n",
+ "V=V1+V2+V3+V4##kV\n",
+ "print '%s %.2f' %(\"Maximum safe working voltage(kV)\",V)#\n",
+ "Strinf_eff=V/n/V4#\n",
+ "print '%s %.3f' %(\"Percentage String Efficiency(%)\",Strinf_eff*100)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum safe working voltage(kV) 36.78\n",
+ "Percentage String Efficiency(%) 76.635\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E7 - Pg 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Maximum safe working voltage\n",
+ "import math\n",
+ "#Given data :\n",
+ "Vs=11.##kV\n",
+ "n=5.##no. of uniits\n",
+ "K=0.1##shunt to mutual capacitance ratio\n",
+ "V5=Vs##kV\n",
+ "V1=V5/(1.+10.*K+15.*K**2.+7.*K**3.+K**4.)##kV\n",
+ "V2=V1*(1.+K)##kV\n",
+ "V3=V1*(1.+3.*K+K**2.)##kV\n",
+ "V4=V1*(1.+6.*K+5.*K**2.+K**3.)##kV\n",
+ "V=V1+V2+V3+V4+V5##kV\n",
+ "print '%s %.1f' %(\"Maximum safe working voltage(kV)\",V)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum safe working voltage(kV) 36.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E8 - Pg 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage between conductors(kV),Percentage String Efficiency(%)\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "#Given data :\n",
+ "V2=15.##kV\n",
+ "V3=21.##kV\n",
+ "n=4.##no. of uniits\n",
+ "#V3/V2=(1+3*K+K**2)/(1+K)\n",
+ "#K**2*V2+K*(V3+3*V2)-V2+V3=0#\n",
+ "p=([V2, -V3+3.*V2, V2-V3])#\n",
+ "K=numpy.roots(p)#\n",
+ "K=K[1]##Taking +ve value\n",
+ "V1=V2/(1.+K)##kV\n",
+ "V4=(1.+6.*K+5.*K**2.+K**3.)*V1##kV\n",
+ "V=V1+V2+V3+V4##kV\n",
+ "VL=math.sqrt(3.)*V##kV\n",
+ "print '%s %.1f' %(\"Voltage between conductors(kV)\",VL)#\n",
+ "Strinf_eff=V/n/V4#\n",
+ "print '%s %.2f' %(\"Percentage String Efficiency(%)\",Strinf_eff*100.)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage between conductors(kV) 138.4\n",
+ "Percentage String Efficiency(%) 63.19\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E9 - Pg 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate C2,C3,C4,C5,C6\n",
+ "import math\n",
+ "#Given data :\n",
+ "K=0.1##shunt to mutual capacitance ratio\n",
+ "CbyC1=10.#\n",
+ "C2byC1=(1.+K)*CbyC1#\n",
+ "C3byC1=(1.+3.*K)*CbyC1#\n",
+ "C4byC1=(1.+6.*K)*CbyC1#\n",
+ "print '%s %.2f %s' %(\"C2 is \",C2byC1,\" times of C1\")#\n",
+ "print '%s %.2f %s' %(\"C3 is \",C3byC1,\" times of C1\")#\n",
+ "print '%s %.2f %s' %(\"C4 is \",C4byC1,\" times of C1\")#\n",
+ "#I5=I4+i4\n",
+ "#omega*C5*v=omega*C4*v+omega*C1*4*v\n",
+ "C5byC1=(1.+10.*K)*CbyC1#\n",
+ "print '%s %.2f %s' %(\"C5 is \",C5byC1,\" times of C1\")#\n",
+ "#I6=I5+i5\n",
+ "#omega*C6*v=omega*C5*v+omega*C1*5*v\n",
+ "C6byC1=(1.+15.*K)*CbyC1#\n",
+ "print '%s %.2f %s' %(\"C6 is \",C6byC1,\" times of C1\")#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C2 is 11.00 times of C1\n",
+ "C3 is 13.00 times of C1\n",
+ "C4 is 16.00 times of C1\n",
+ "C5 is 20.00 times of C1\n",
+ "C6 is 25.00 times of C1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E10 - Pg 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate C1,C2,C3,C4,C5,C6,C7\n",
+ "import math\n",
+ "#Given data :\n",
+ "n=8.##no. of units\n",
+ "p=[1 ,2, 3, 4, 5, 6, 7, 8]#\n",
+ "#Cp=p*C/(n-p)\n",
+ "C1byC=1/(n-p[0])#\n",
+ "C2byC=2/(n-p[1])#\n",
+ "C3byC=3/(n-p[2])#\n",
+ "C4byC=4/(n-p[3])#\n",
+ "C5byC=5/(n-p[4])#\n",
+ "C6byC=6/(n-p[5])#\n",
+ "C7byC=7/(n-p[6])#\n",
+ "print '%s %.2f %s' %(\"C1 is \",C1byC,\" times of C\")#\n",
+ "print '%s %.2f %s' %(\"C2 is \",C2byC,\" times of C\")#\n",
+ "print '%s %.2f %s' %(\"C3 is \",C3byC,\" times of C\")#\n",
+ "print '%s %.2f %s' %(\"C4 is \",C4byC,\" times of C\")#\n",
+ "print '%s %.2f %s' %(\"C5 is \",C5byC,\" times of C\")#\n",
+ "print '%s %.2f %s' %(\"C6 is \",C6byC,\" times of C\")#\n",
+ "print '%s %.2f %s' %(\"C7 is \",C7byC,\" times of C\")#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C1 is 0.14 times of C\n",
+ "C2 is 0.33 times of C\n",
+ "C3 is 0.60 times of C\n",
+ "C4 is 1.00 times of C\n",
+ "C5 is 1.67 times of C\n",
+ "C6 is 3.00 times of C\n",
+ "C7 is 7.00 times of C\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E11 - Pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate String efficiency in % is\n",
+ "import math\n",
+ "#Given data :\n",
+ "v2byv1=25./23.25##ratio(By Kirchoff law)\n",
+ "v3byv1=1.65/1.1625##ratio(By Kirchoff law)\n",
+ "Vbyv1=1.+v2byv1+v3byv1##ratio(Final voltage between line conductor & earth)\n",
+ "v1byV=1./Vbyv1##ratio\n",
+ "v2byV=v2byv1*v1byV##ratio\n",
+ "v3byV=v3byv1*v1byV##ratio\n",
+ "eff=1./3./v3byV*100.##string efficiency in %(V/3/v3)\n",
+ "print '%s %.1f' %(\"String efficiency in % is \",eff)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String efficiency in % is 82.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E12 - Pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Voltage onn the line end unit in kV,Capacitance required\n",
+ "import math\n",
+ "#Given data :\n",
+ "V=20.##kV\n",
+ "\n",
+ "#Cmutual=C##F\n",
+ "CmutualBYC=1.#\n",
+ "#Cshunt=C/5##F\n",
+ "CshuntBYC=1./5.#\n",
+ "#I2=I1+i1#omega*C*V2=omega*C*V1+omega*Cshunt*V1\n",
+ "V2BYV1=1.+CshuntBYC#\n",
+ "V3BYV2=1.##a V2=V3\n",
+ "#V=V1+V2+V3\n",
+ "V1=V/(V3BYV2+V2BYV1+V2BYV1)##kV\n",
+ "V2=V2BYV1*V1##kV\n",
+ "V3=V2##kV\n",
+ "print '%s %.2f' %(\"Voltage onn the line end unit in kV : \",V3)#\n",
+ "#I3+ix=I2+i2\n",
+ "CxBYC=(V2+CshuntBYC*(V1+V2)-V3)/V3#\n",
+ "print '%s %.2f %s' %(\"Capacitance required is \",CxBYC,\"C(in F).\")#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage onn the line end unit in kV : 7.06\n",
+ "Capacitance required is 0.37 C(in F).\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/chapter_1.ipynb b/Elements_of_Power_system/chapter_1.ipynb
new file mode 100755
index 00000000..a56e6794
--- /dev/null
+++ b/Elements_of_Power_system/chapter_1.ipynb
@@ -0,0 +1,200 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:477bd6a59c5c41b919502c0727994ee33a0452f8b8b2d97d47ae8f442ad83a0e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 - POWER SYSTEM COMPONENTS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E1 - Pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate base impedence \n",
+ "#Given data :\n",
+ "BaseVoltage=1100.##in Volts\n",
+ "BasekVA=10**6##kVA\n",
+ "BasekV=BaseVoltage/1000.##kV\n",
+ "IB=BasekVA/BasekV##in Ampere\n",
+ "ZB=BasekV*1000./IB##in ohm\n",
+ "print '%s %.5f' %(\"Base Impedence (in ohm) :\",ZB)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Base Impedence (in ohm) : 0.00121\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E2 - Pg 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Per unit resistance \n",
+ "#Given data :\n",
+ "R=5.##in ohm\n",
+ "kVA_B=10.##kVA\n",
+ "kV_B=11.##kV\n",
+ "RB=kV_B**2*1000/kVA_B##in ohm\n",
+ "Rpu=R/RB##in ohm\n",
+ "print '%s %.6f' %(\"Per unit resistance (pu) :\",Rpu)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Per unit resistance (pu) : 0.000413\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E3 - Pg 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Leakage reactance Per unit\n",
+ "#Given data :\n",
+ "kVA_B=2.5##kVA\n",
+ "kV_B=0.4##kV\n",
+ "reactance=0.96##in ohm\n",
+ "Z_BLV=kV_B**2*1000./kVA_B##in ohm\n",
+ "Zpu=reactance/Z_BLV##in ohm\n",
+ "print '%s %.3f' %(\"Leakage reactance Per unit (pu) :\",Zpu)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Leakage reactance Per unit (pu) : 0.015\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E4 - Pg 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate Leakage reactance Per unit\n",
+ "import cmath\n",
+ "import math\n",
+ "#Given data :\n",
+ "Zr=30.\n",
+ "Zi=110.##in ohm\n",
+ "kVA_B=100.*1000.##kVA\n",
+ "kV_B=132.##kV\n",
+ "Z_BLV=kV_B**2*1000./kVA_B##in ohm\n",
+ "Zpur=Zr*kVA_B/kV_B**2/1000.##pu\n",
+ "Zpui=Zi*kVA_B/kV_B**2/1000.##pu\n",
+ "print '%s' %(\"Leakage reactance Per unit (pu) :\")#\n",
+ "print '%.3f %s %.3f' %(Zpur,'+j',Zpui)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Leakage reactance Per unit (pu) :\n",
+ "0.172 +j 0.631\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example E5 - Pg 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate New Per unit impedence\n",
+ "#Given data :\n",
+ "oldkVA_B=30000##kVA\n",
+ "oldkV_B=11##kV\n",
+ "oldZpu=0.2##pu\n",
+ "newkVA_B=50000.##kVA\n",
+ "newkV_B=33.##kV\n",
+ "newZpu=oldZpu*newkVA_B/oldkVA_B*(oldkV_B/newkV_B)**2##pu\n",
+ "print '%s %.3f' %(\"New Per unit impedence(pu) :\",newZpu)#\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "New Per unit impedence(pu) : 0.037\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Elements_of_Power_system/screenshots/chap5.png b/Elements_of_Power_system/screenshots/chap5.png
new file mode 100755
index 00000000..00919e4f
--- /dev/null
+++ b/Elements_of_Power_system/screenshots/chap5.png
Binary files differ
diff --git a/Elements_of_Power_system/screenshots/chap6.png b/Elements_of_Power_system/screenshots/chap6.png
new file mode 100755
index 00000000..a7a59e51
--- /dev/null
+++ b/Elements_of_Power_system/screenshots/chap6.png
Binary files differ
diff --git a/Elements_of_Power_system/screenshots/chap7.png b/Elements_of_Power_system/screenshots/chap7.png
new file mode 100755
index 00000000..9e8f6e21
--- /dev/null
+++ b/Elements_of_Power_system/screenshots/chap7.png
Binary files differ
diff --git a/Engineering_Economics/Chapter1.ipynb b/Engineering_Economics/Chapter1.ipynb
new file mode 100755
index 00000000..64198a89
--- /dev/null
+++ b/Engineering_Economics/Chapter1.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "EE-1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Introduction"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.1 Page 10"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initialisation of Variable\nFC=2000000.0;#in Rs\nv=100.0;#in Rs\ns=200.0;#in Rs\nQ=60000.0;#in units\n\n#Part a \n# calculation\nBEQ=FC/(s-v);#in units\n\n#result\nprint \"Break even quantity in units : \",round(BEQ,3)\n\n#Part b \n#calculation\nBES=FC*s/(s-v);#in Rs\n\nprint \"Break even sales in Rs. : \",round(BES,3)\n\n#Part c \n#calculation\nCon=s*Q-v*Q;#in Rs\nMos=Q*s-BES;#in Rs\n\n#result\nprint \"Contribution in units : \",round(Con,3)\nprint \"Margin of safety in Rs. : \",round(Mos,3)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Break even quantity in units : 20000.0\nBreak even sales in Rs. : 4000000.0\nContribution in units : 6000000.0\nMargin of safety in Rs. : 8000000.0\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.2,Page 12"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initialisation of variable\nFC=25000.0;#in Rs\nv=45000.0;#in Rs\ns=120000.0;#in Rs\n\n#Part a \n#calculation\nCon=s-v;#in Rs\n\n#result\nprint \"Contribution in Rs \",round(Con,3)\n\n#Part b \n#calculation\nProf=Con-FC;#in Rs\n\n#result\nprint \"Profit in Rs \",round(Prof,3);\n\n#Part c \n#calculation\nPVratio=Con*100.0/s;#in %\nBEP=FC*100.0/PVratio;#in Rs\n\n#result\nprint \"BEP in Rs \", round(BEP,3)\n\n#Part d \n#calculoation\nMS=Prof*100/PVratio;#in Rs\n\n#result\nprint\"M.S. in Rs \", round(MS,3)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Contribution in Rs 75000.0\nProfit in Rs 50000.0\nBEP in Rs 40000.0\nM.S. in Rs 80000.0\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.3 Page 13"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initialisation of variable\nFC=15000.0;#in Rs\nv=35000.0;#in Rs\ns=80000.0;#in Rs\n\n#Part a \n#calculation\nCon=s-v;#in Rs\n\n#result\nprint \"Contribution in Rs\", round(Con,3);\n\n#Part b \n#calcualtion\nProf=Con-FC;#in Rs\n\n#result\nprint \"Profit in Rs \", round(Prof,3)\n\n#Part c \n#calculation\nPVratio=Con*100/s;\nBEP=FC*100/PVratio;#in Rs\n\n#result\nprint \"BEP in Rs \",round(BEP,3)\n\n#Part d \n#calculation\nMS=Prof*100/PVratio;#in Rs\n\nprint \"M.S. in Rs\",round(MS,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Contribution in Rs 45000.0\nProfit in Rs 30000.0\nBEP in Rs 26666.667\nM.S. in Rs 53333.333\n"
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter10.ipynb b/Engineering_Economics/Chapter10.ipynb
new file mode 100755
index 00000000..bc34bb84
--- /dev/null
+++ b/Engineering_Economics/Chapter10.ipynb
@@ -0,0 +1,357 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:28b0077be1a0d41b0cc471c0e34331f1edde6c138991b53632e2c3b3cb0de57c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Evaluation of Public Alternatives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "Ii=4000000.0;#in Rs.\n",
+ "AM=150000.0;#in Rs.\n",
+ "AFS=600000.0;#in Rs.\n",
+ "Einc=50000.0;#in Rs.\n",
+ "i=12.0;#in % per annum\n",
+ "n=15.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "Cp=AM*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in Rs\n",
+ "TPW=Ii+Cp;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"Total present worth of costs in RS. : \",round(TPW,3);\n",
+ "\n",
+ "#Total present worth of fuel savings:\n",
+ "AI=600000.0;#in Rs.\n",
+ "G=50000.0;#in Rs.\n",
+ "i=12.0;#in % per annum\n",
+ "n=15.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "A=AI+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100);#in RS\n",
+ "Bp=A*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in Rs.\n",
+ "BCratio=Bp/(Ii+Cp);#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Present worth of fuel savings in Rs. : \",round(Bp,3);\n",
+ "print \"BCratio : \",round(BCratio,3);\n",
+ "print\"Since BC ratio is more than 1, the construction of the bridge across the river is justified.\";\n",
+ "print\"answers are slightly different from the book due to approximation\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total present worth of costs in RS. : 5021629.673\n",
+ "Present worth of fuel savings in Rs. : 5782527.265\n",
+ "BCratio : 1.152\n",
+ "Since BC ratio is more than 1, the construction of the bridge across the river is justified.\n",
+ "answers are slightly different from the book due to approximation\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "Ic=80000000.0;#in Rs.\n",
+ "Aps=6000000.0;#in Rs.\n",
+ "Afs=3000000.0;#in Rs.\n",
+ "Aib=5000000.0;#in Rs.\n",
+ "Arb=2000000.0;#in Rs.\n",
+ "Amc=3000000.0;#in Rs.\n",
+ "i=12.0;#in % per annum\n",
+ "n=50.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "TAB=Afs+Aib+Arb;#in Rs.\n",
+ "PW_B=TAB*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Total present worth of benefits in RS. : \",round(PW_B,3);\n",
+ "\n",
+ "#Present worth of costs:\n",
+ "PW_C=Ic+Amc*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n)-Aps*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "BCratio=PW_B/PW_C;#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Present worth of costs in Rs. : \",round(PW_C,3);\n",
+ "print \"BCratio : \",round(BCratio,3);\n",
+ "print \"Since BC ratio is more than 1, the state govt. can implement the hydroelectric project.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total present worth of benefits in RS. : 83044984.884\n",
+ "Present worth of costs in Rs. : 55086504.535\n",
+ "BCratio : 1.508\n",
+ "Since BC ratio is more than 1, the state govt. can implement the hydroelectric project.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#alternative 1\n",
+ "P=3000000.0;#in Rs.\n",
+ "B=900000.0;#in Rs.\n",
+ "i=10.0;#in % per annum\n",
+ "n=5.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "AE1=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);#in Rs\n",
+ "BCratio=B/AE1;#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Annual equivalent of initial cost in Rs. : \",round(AE1,3);\n",
+ "print \"BCratio : \",round(BCratio,3);\n",
+ "\n",
+ "#Alternative A2 : \n",
+ "P=6000000.0;#in Rs.\n",
+ "B=1500000.0;#in Rs.\n",
+ "i=10.0;#in % per annum\n",
+ "n=7.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "AE2=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);#in Rs\n",
+ "BCratio=B/AE2;#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Annual equivalent of initial cost in Rs. : \",round(AE2,3);\n",
+ "print \"BCratio : \",round(BCratio,3);\n",
+ "print \"The benefit cost ratio of alternative 2 is more than that of alternative A1. Hence, alternative A2 is to be selected. The comparisoon is made on a 35 years period which is the minimum common multiple of the lives of alternative 1 and 2\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Annual equivalent of initial cost in Rs. : 791392.442\n",
+ "BCratio : 1.137\n",
+ "Annual equivalent of initial cost in Rs. : 1232432.998\n",
+ "BCratio : 1.217\n",
+ "The benefit cost ratio of alternative 2 is more than that of alternative A1. Hence, alternative A2 is to be selected. The comparisoon is made on a 35 years period which is the minimum common multiple of the lives of alternative 1 and 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 Page 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#cost of the state\n",
+ "n=20.0;#in years\n",
+ "P=2500000000.0;#in Rs.\n",
+ "Agt=10000000.0;#in Rs.\n",
+ "Ai=1000000.0;#in Rs.\n",
+ "Com=48000.0;#in Rs./year/employee\n",
+ "C1=Com*300;#in Rs.\n",
+ "i=10.0;#in % per annum\n",
+ "\n",
+ "#calculation\n",
+ "C2=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);#in Rs\n",
+ "CA=C2+C1;#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Annual equivalent initial cost in Rs. : \",round(C2,3);\n",
+ "print \"Total Annual equivalent cost of the project in Rs. : \",round(CA,3);\n",
+ "\n",
+ "#Benefit to the state : \n",
+ "W=30000000.0;#in Rs.\n",
+ "A1=W*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);#in Rs.\n",
+ "Agpy=10000000.0;#in ton/year\n",
+ "A2=Agpy*(30-10);#in Rs.\n",
+ "AvgAI=1000000.0;#in tons Km.\n",
+ "G=20000000.0;#in Rs.\n",
+ "\n",
+ "#calculation\n",
+ "A3=A2+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100) ;#in Rs.\n",
+ "BA=A1+A3;#in Rs\n",
+ "BCratio=BA/CA;#unitless\n",
+ "print \"Annual equivalent average of transport cost saving in Rs. : \",round(A3,3);\n",
+ "print \"Total annual equivalent benefits to the state : \",round(BA,3);\n",
+ "print \"BCratio : \",round(BCratio,3);\n",
+ "print \"The benefit cost ratio is more than 1,the project is justified.\";\n",
+ "print \"the slight error in the answer of the book is due to approximation error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Annual equivalent initial cost in Rs. : 293649061.931\n",
+ "Total Annual equivalent cost of the project in Rs. : 308049061.931\n",
+ "Annual equivalent average of transport cost saving in Rs. : 330161500.91\n",
+ "Total annual equivalent benefits to the state : 333685289.653\n",
+ "BCratio : 1.083\n",
+ "The benefit cost ratio is more than 1,the project is justified.\n",
+ "the slight error in the answer of the book is due to approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#project A\n",
+ "i=9.0;#% per annum\n",
+ "n=50.0;#in years\n",
+ "P_A=150000000.0;#in RS.\n",
+ "Fcs_A=2500000;#in Rs.\n",
+ "Ib_A=3500000;#in Rs.\n",
+ "Rb_A=1000000;#in RS.\n",
+ "OMC_A=2000000.0;#in Rs.\n",
+ "Psy_A=10000000.0;#in Rs.\n",
+ "\n",
+ "#calculation\n",
+ "AE_A=P_A*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);\n",
+ "Cpy_A=AE_A+OMC_A-Psy_A;#in Rs.\n",
+ "Bpy_A=Fcs_A+Ib_A+Rb_A;#in Rs.\n",
+ "BCratio_A=Bpy_A/Cpy_A;#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Costs/year : \",round(Cpy_A,3);\n",
+ "print \"Benefits/year : \",round(Bpy_A,3);\n",
+ "print \"BC Ratio of project A : \",round(BCratio_A,3)\n",
+ "\n",
+ "\n",
+ "#Project B : \n",
+ "P_B=250000000.0;#in Rs.\n",
+ "\n",
+ "OMC_B=2500000.0;#in Rs.\n",
+ "Psy_B=12000000.0;#in Rs.\n",
+ "Fcs_B=3500000.0;#in Rs.\n",
+ "Ib_B=4500000.0;#in Rs.\n",
+ "Rb_B=2000000.0;#in RS.\n",
+ "AE_B=P_B*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);\n",
+ "Cpy_B=AE_B+OMC_B-Psy_B;#in Rs.\n",
+ "Bpy_B=Fcs_B+Ib_B+Rb_B;#in Rs.\n",
+ "BCratio_B=Bpy_B/Cpy_B;#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Costs/year : \",round(Cpy_B,3);\n",
+ "print \"Benefits/year : \",round(Bpy_B,3);\n",
+ "print \"BC Ratio of project B : \",round(BCratio_B,3)\n",
+ "\n",
+ "#Project C : \n",
+ "P_C=400000000.0;#in Rs.\n",
+ "OMC_C=3500000.0;#in Rs.\n",
+ "Psy_C=18000000.0;#in Rs.\n",
+ "Fcs_C=5000000.0;#in Rs.\n",
+ "Ib_C=6000000.0;#in Rs.\n",
+ "Rb_C=3500000.0;#in RS.\n",
+ "AE_C=P_C*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);\n",
+ "Bpy_C=Fcs_C+Ib_C+Rb_C;#in Rs.\n",
+ "Cpy_C=AE_C+OMC_C-Psy_C;#in Rs.\n",
+ "BCratio_C=Bpy_C/Cpy_C;#unitless\n",
+ "\n",
+ "#result\n",
+ "print \"Costs/year : \",round(Cpy_C,3);\n",
+ "print \"Benefits/year : \",round(Bpy_C,3);\n",
+ "print \"BC Ratio of project C : \",round(BCratio_C,3)\n",
+ "print\"From the computations it is clear that only alternative A is eligible because other two alternatives have BC ratio less than one.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Costs/year : 5684030.212\n",
+ "Benefits/year : 7000000.0\n",
+ "BC Ratio of project A : 1.232\n",
+ "Costs/year : 13306717.021\n",
+ "Benefits/year : 10000000.0\n",
+ "BC Ratio of project B : 0.752\n",
+ "Costs/year : 21990747.233\n",
+ "Benefits/year : 14500000.0\n",
+ "BC Ratio of project C : 0.659\n",
+ "From the computations it is clear that only alternative A is eligible because other two alternatives have BC ratio less than one.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter11.ipynb b/Engineering_Economics/Chapter11.ipynb
new file mode 100755
index 00000000..55cbf9b2
--- /dev/null
+++ b/Engineering_Economics/Chapter11.ipynb
@@ -0,0 +1,306 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:72b2e09b74af58b464a4895e1776dc966d9cb12318da78fc7aa16f78becf8696"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Inflation Adjusted Decisions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1 Page 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "print \"Few steps are as follows : \";\n",
+ "print \"Step 1 : The estimated future requirementt per year in terms of todays rupees from his age 61 through 70 is Rs. 24000.\";\n",
+ "print \"Step 2 : The formula which is given below is used to get future equivalent of Rs. 24000 with the inflation of 9% per year.\";\n",
+ "print \"Formula : P*(1+IR)^n\";\n",
+ "P=24000.0;#in Rs.\n",
+ "IR=9.0;#in % per year\n",
+ "Age=61.0;#in years\n",
+ "for n in range(21,31) :\n",
+ " IV=P*(1+IR/100)**n;#in Rs\n",
+ " print \"Age in years : \",Age,\". \"\"Inflated value of Rs. 24000 at end of year : \",n,\" in Rs. \",round(IV);\n",
+ " Age=Age+1;#in Years\n",
+ "\n",
+ "PW=0;#For initialising\n",
+ "n=21.0;#in years\n",
+ "for m in range(10) :\n",
+ " A=P*(1+IR/100)**n;#in Rs\n",
+ " n=n+1;\n",
+ " i=15.0;#in % per year\n",
+ " PW=PW+A/(1+i/100)**(m+1);\n",
+ "\n",
+ "#result\n",
+ "print \"Present equivalent of withdrawls in Rs. : \",round(PW,3);\n",
+ "\n",
+ "#The annual equivalent amount :\n",
+ "i=15.0;#in % per year\n",
+ "n=20.0;#in years\n",
+ "#Formula : (A/F,i,n) : (i/100)/(((1+i/100)^n)-1) \n",
+ "A=PW*(i/100)/(((1+i/100)**n)-1);#in Rs.\n",
+ "print \"The annual equivalent amount in Rs. : \",round(A,3);\n",
+ "print\"RECOMMENDATION : The person has to invest an amount of Rs. \",round(A,3),\" at the end of every year starting from his age 41 through 60 which will enable him to make a withdrawl at the end of every year starting from his age 61 through 70.\"; \n",
+ "print \"slight erorr in the answer is due to approximation error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Few steps are as follows : \n",
+ "Step 1 : The estimated future requirementt per year in terms of todays rupees from his age 61 through 70 is Rs. 24000.\n",
+ "Step 2 : The formula which is given below is used to get future equivalent of Rs. 24000 with the inflation of 9% per year.\n",
+ "Formula : P*(1+IR)^n\n",
+ "Age in years : 61.0 . Inflated value of Rs. 24000 at end of year : 21 in Rs. 146611.0\n",
+ "Age in years : 62.0 . Inflated value of Rs. 24000 at end of year : 22 in Rs. 159806.0\n",
+ "Age in years : 63.0 . Inflated value of Rs. 24000 at end of year : 23 in Rs. 174189.0\n",
+ "Age in years : 64.0 . Inflated value of Rs. 24000 at end of year : 24 in Rs. 189866.0\n",
+ "Age in years : 65.0 . Inflated value of Rs. 24000 at end of year : 25 in Rs. 206954.0\n",
+ "Age in years : 66.0 . Inflated value of Rs. 24000 at end of year : 26 in Rs. 225580.0\n",
+ "Age in years : 67.0 . Inflated value of Rs. 24000 at end of year : 27 in Rs. 245882.0\n",
+ "Age in years : 68.0 . Inflated value of Rs. 24000 at end of year : 28 in Rs. 268011.0\n",
+ "Age in years : 69.0 . Inflated value of Rs. 24000 at end of year : 29 in Rs. 292132.0\n",
+ "Age in years : 70.0 . Inflated value of Rs. 24000 at end of year : 30 in Rs. 318424.0\n",
+ "Present equivalent of withdrawls in Rs. : 1013631.794\n",
+ "The annual equivalent amount in Rs. : 9894.537\n",
+ "RECOMMENDATION : The person has to invest an amount of Rs. 9894.537 at the end of every year starting from his age 41 through 60 which will enable him to make a withdrawl at the end of every year starting from his age 61 through 70.\n",
+ "slight erorr in the answer is due to approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2 Page 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "print\"The method of finding the economic life of the machine witha discounting factor of 20% at zero inflation rate is summarized in table below. From the table it is clear that total annual cost is minimum if the machine is used for 14 years. Hence the economic life of the machine is 14 years.\";\n",
+ "print\"End of year Op_cost Main_cost Op+Main P/F,i,n PW Cummulative Salvage PW_S TPW A/P,i,n AEM\";\n",
+ "i=20.0;#in per year\n",
+ "Cum=0.0;#initialising\n",
+ "Op_cost=40000.0;#in RS.\n",
+ "Main_cost=60000.0;#in Rs.\n",
+ "OpMain=Op_cost+Main_cost;#in Rs.\n",
+ "S=400000.0;#in Rs.\n",
+ "for n in range (1,16) :\n",
+ " PF=1/((1+i/100)**n);\n",
+ " PW=OpMain*PF;#in Rs.\n",
+ " Cum=Cum+PW\n",
+ " PW_S=PF*S;#in RS.\n",
+ " TPW=500000.0+Cum-PW_S;#in Rs.\n",
+ " AP=((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);\n",
+ " AEM=TPW*AP;#in RS\n",
+ " print \" \",n,\" \",Op_cost,\" \",Main_cost,\" \",OpMain,\" \",PF,\" \",PW,\" \",Cum,\" \",S,\" \",PW_S,\" \",TPW,\" \",AP,\" \",AEM;\n",
+ " Op_cost=Op_cost+5000.0;#in Rs.\n",
+ " Main_cost=Main_cost+6000.0;#in Rs.\n",
+ " S=S-50000.0;#in Rs.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The method of finding the economic life of the machine witha discounting factor of 20% at zero inflation rate is summarized in table below. From the table it is clear that total annual cost is minimum if the machine is used for 14 years. Hence the economic life of the machine is 14 years.\n",
+ "End of year Op_cost Main_cost Op+Main P/F,i,n PW Cummulative Salvage PW_S TPW A/P,i,n AEM\n",
+ " 1 40000.0 60000.0 100000.0 0.833333333333 83333.3333333 83333.3333333 400000.0 333333.333333 250000.0 1.2 300000.0\n",
+ " 2 45000.0 66000.0 100000.0 0.694444444444 69444.4444444 152777.777778 350000.0 243055.555556 409722.222222 0.654545454545 268181.818182\n",
+ " 3 50000.0 72000.0 100000.0 0.578703703704 57870.3703704 210648.148148 300000.0 173611.111111 537037.037037 0.474725274725 254945.054945\n",
+ " 4 55000.0 78000.0 100000.0 0.48225308642 48225.308642 258873.45679 250000.0 120563.271605 638310.185185 0.386289120715 246572.280179\n",
+ " 5 60000.0 84000.0 100000.0 0.401877572016 40187.7572016 299061.213992 200000.0 80375.5144033 718685.699588 0.33437970329 240313.910987\n",
+ " 6 65000.0 90000.0 100000.0 0.33489797668 33489.797668 332551.01166 150000.0 50234.6965021 782316.315158 0.300705745867 235247.011053\n",
+ " 7 70000.0 96000.0 100000.0 0.279081647234 27908.1647234 360459.176383 100000.0 27908.1647234 832551.01166 0.277423926347 230969.570539\n",
+ " 8 75000.0 102000.0 100000.0 0.232568039361 23256.8039361 383715.980319 50000.0 11628.4019681 872087.578351 0.260609422409 227274.240084\n",
+ " 9 80000.0 108000.0 100000.0 0.193806699468 19380.6699468 403096.650266 0.0 0.0 903096.650266 0.248079461672 224039.730836\n",
+ " 10 85000.0 114000.0 100000.0 0.16150558289 16150.558289 419247.208555 -50000.0 -8075.27914449 927322.4877 0.238522756883 221187.516286\n",
+ " 11 90000.0 120000.0 100000.0 0.134587985742 13458.7985742 432706.007129 -100000.0 -13458.7985742 946164.805703 0.231103794152 218662.276491\n",
+ " 12 95000.0 126000.0 100000.0 0.112156654785 11215.6654785 443921.672608 -150000.0 -16823.4982177 960745.170825 0.225264964904 216422.227187\n",
+ " 13 100000.0 132000.0 100000.0 0.0934638789872 9346.38789872 453268.060506 -200000.0 -18692.7757974 971960.836304 0.220620001083 214434.000758\n",
+ " 14 105000.0 138000.0 100000.0 0.0778865658226 7788.65658226 461056.717089 -250000.0 -19471.6414557 980528.358544 0.216893055222 212669.791417\n",
+ " 15 110000.0 144000.0 100000.0 0.0649054715189 6490.54715189 467547.264241 -300000.0 -19471.6414557 987018.905696 0.213882119838 211105.69587\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "IR=5.0;#in % per year\n",
+ "i=15.0;#in % per year\n",
+ "#Machine X :\n",
+ "Ppx=1500000.0;#in Rs.\n",
+ "n=7.0;#in years\n",
+ "S=200000.0;#in Rs.\n",
+ "AMC=300000.0;#in Rs.\n",
+ "print \"End of year AMC InflationFactor InflatedAmount P/F PW\";\n",
+ "Pw=0;#For initialising\n",
+ "for n in range (1,8) :\n",
+ " FP=(1+IR/100)**n\n",
+ " IA=AMC*FP;#in Rs.\n",
+ " PF=1/((1+i/100)**n);\n",
+ " PW=IA*PF;#in Rs.\n",
+ " Pw=Pw+PW;#in Rs.\n",
+ " print\" \",n,\" \",AMC,\" \",FP,\" \",IA,\" \",PF,\" \",PW;\n",
+ "\n",
+ "print \"Present worth of inflated annual operating and maintenance cost in Rs. : \",round(Pw,3);\n",
+ "PWX=Ppx+Pw-S*1/((1+i/100)**n);\n",
+ "print \"Present worth of machine X in Rs. : \",round(PWX,3);\n",
+ "\n",
+ "#Machine Y\n",
+ "\n",
+ "Ppy=2000000.0;#in Rs.\n",
+ "n=7.0;#in years\n",
+ "S=300000.0;#in Rs.\n",
+ "AMC=250000.0;#in Rs.\n",
+ "print \"End of year AMC InflationFactor InflatedAmount P/F PW\";\n",
+ "Pw=0;#For initialising\n",
+ "for n in range (1,8) :\n",
+ " FP=(1+IR/100)**n\n",
+ " IA=AMC*FP;#in Rs.\n",
+ " PF=1/((1+i/100)**n);\n",
+ " PW=IA*PF;#in Rs.\n",
+ " Pw=Pw+PW;#in Rs.\n",
+ " print \" \",n,\" \",AMC,\" \",FP,\" \",IA,\" \",PF,\" \",PW;\n",
+ "\n",
+ "PWY=Ppy+Pw-S*1/((1+i/100)**n);\n",
+ "\n",
+ "#result\n",
+ "print \"Present worth of inflated annual operating and maintenance cost in Rs. : \",round(Pw,3);\n",
+ "print \"Present worth of machine Y in Rs. : \",round(PWY,3);\n",
+ "print \"Since the present worth of Machine X is less than Machine Y, select Machine X\"\n",
+ "print \" Calculations are not accurate in the book\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "End of year AMC InflationFactor InflatedAmount P/F PW\n",
+ " 1 300000.0 1.05 315000.0 0.869565217391 273913.043478\n",
+ " 2 300000.0 1.1025 330750.0 0.756143667297 250094.517958\n",
+ " 3 300000.0 1.157625 347287.5 0.657516232432 228347.168571\n",
+ " 4 300000.0 1.21550625 364651.875 0.571753245593 208490.893043\n",
+ " 5 300000.0 1.2762815625 382884.46875 0.497176735298 190361.25017\n",
+ " 6 300000.0 1.34009564063 402028.692188 0.432327595912 173808.097981\n",
+ " 7 300000.0 1.40710042266 422130.126797 0.375937039923 158694.35033\n",
+ "Present worth of inflated annual operating and maintenance cost in Rs. : 1483709.322\n",
+ "Present worth of machine X in Rs. : 2908521.914\n",
+ "End of year AMC InflationFactor InflatedAmount P/F PW\n",
+ " 1 250000.0 1.05 262500.0 0.869565217391 228260.869565\n",
+ " 2 250000.0 1.1025 275625.0 0.756143667297 208412.098299\n",
+ " 3 250000.0 1.157625 289406.25 0.657516232432 190289.307142\n",
+ " 4 250000.0 1.21550625 303876.5625 0.571753245593 173742.410869\n",
+ " 5 250000.0 1.2762815625 319070.390625 0.497176735298 158634.375141\n",
+ " 6 250000.0 1.34009564063 335023.910156 0.432327595912 144840.081651\n",
+ " 7 250000.0 1.40710042266 351775.105664 0.375937039923 132245.291942\n",
+ "Present worth of inflated annual operating and maintenance cost in Rs. : 1236424.435\n",
+ "Present worth of machine Y in Rs. : 3123643.323\n",
+ "Since the present worth of Machine X is less than Machine Y, select Machine X\n",
+ " Calculations are not accurate in the book\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "IR=6.0;#in % per year\n",
+ "i=18.0;#in % per year\n",
+ "AFR=5000000.0;#in Rs.\n",
+ "n=7.0;#in years\n",
+ "AI=500000.0;#in Rs.\n",
+ "print\"End of year AFR InflationFactor InflatedAmount P/F PW\";\n",
+ "TPW=0;#Initialising\n",
+ "\n",
+ "for n in range (1,6) :\n",
+ " IF=(1+IR/100)**n;\n",
+ " IA=IF*AFR;#in Rs.\n",
+ " PF=1/((1+i/100)**n);\n",
+ " PW=PF*IA;#in Rs.\n",
+ " TPW=PW+TPW;#in Rs.\n",
+ " print\" \",round(n),\" \",round(AFR,3),\" \",round(IF,3),\" \",round(IA,3),\" \",round(PF,3),\" \",round(PW,3);\n",
+ " AFR=AFR+AI;#in Rs.\n",
+ "\n",
+ " \n",
+ "#result\n",
+ "print \"The value of the single deposit to be made now to recieve the specified series for the next five years is Rs. : \",round(TPW,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "End of year AFR InflationFactor InflatedAmount P/F PW\n",
+ " 1.0 5000000.0 1.06 5300000.0 0.847 4491525.424\n",
+ " 2.0 5500000.0 1.124 6179800.0 0.718 4438236.139\n",
+ " 3.0 6000000.0 1.191 7146096.0 0.609 4349334.645\n",
+ " 4.0 6500000.0 1.262 8206100.24 0.516 4232615.212\n",
+ " 5.0 7000000.0 1.338 9367579.043 0.437 4094655.134\n",
+ "The value of the single deposit to be made now to recieve the specified series for the next five years is Rs. : 21606366.553\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter12.ipynb b/Engineering_Economics/Chapter12.ipynb
new file mode 100755
index 00000000..75f40350
--- /dev/null
+++ b/Engineering_Economics/Chapter12.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "EE-12"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Inventory Control"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.1 Page 160"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nD=24000.0;#in units/year\nCo=150.0;#in Rs./order\nPprice=75.0;#Rs./unit\nCpupy=18.0;#in % of Pprice/unit\n\n#calculation\nCc=Pprice*Cpupy/100;#in Rs.\nEOQ=sqrt((2*Co*D)/Cc);#in units\nn=D/round(EOQ);#no. of orders/year\nT=round(EOQ)/D;# time between successive orders in year\nT=T*12;#in months\nT=T*30;#in Days\n\n#result\nprint \"Economic order quantity in units : \",round(EOQ);\nprint \"No. of orders/year : \",round(n,2);\nprint \"Time between successive orders in days : \",round(T);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Economic order quantity in units : 730.0\nNo. of orders/year : 32.88\nTime between successive orders in days : 11.0\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.2 Page 162"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nr=12000.0;#in units/year\nk=24000.0;#in units/year\nCo=175.0;#in Rs./setup\nCc=15.0;#in Rs./unit/year\n\n#calclation\nEOQ=sqrt((2*Co*r)/(Cc*(1-r/k)));#in units\nQ=round(EOQ);#units\nt1=Q/k;#in year\nt1=t1*12*30;#in days\nt2=(Q/r)*(1-r/k);#in year\nt2=t2*12*30;#in days\n\n#result\nprint \"Economic order quantity in units : \",round(Q,3);\nprint \"Cycle time in days :\",round(t1+t2);\nprint \"No. of setups/year : \",round(r/Q,3)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Economic order quantity in units : 748.0\nCycle time in days : 22.0\nNo. of setups/year : 16.043\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.3 Page 164"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#iniatiation of variable\nfrom math import sqrt\nD=30000.0;#in units/year\nCc=2.0;#in Rs./unit/year\nCo=100.0;#in Rs./orde\nCs=12.0;#in units/year\n\n#calculation\nEOQ=sqrt(2*Co*D*(Cs+Cc)/(Cc*Cs));#in units\nQ=round(EOQ);#units\nQ1=sqrt(2*Co*D*Cs/(Cc*(Cs+Cc)));#in units\nt=Q/D;#in year\nt=t*365;#in days\nt1=Q1/D;#in year\nt1=t1*365;#in days\nt2=t-t1;#in days\n\n#result\nprint \"Ordering quantity in units : \",round(Q,3);\nprint \"Maximum Inventory in units : \",round(Q1);\nprint \"Maximum shortage quantity in units : \",round(Q-Q1);\nprint \"Cycle time in days: \",round(t);\nprint \"Inventory period(t1) in days : \",round(t1);\nprint \"Shortage period(t2) in days : \",round(t2);\nprint \"No. of Orders/year : \",round(D/Q,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Ordering quantity in units : 1871.0\nMaximum Inventory in units : 1604.0\nMaximum shortage quantity in units : 267.0\nCycle time in days: 23.0\nInventory period(t1) in days : 20.0\nShortage period(t2) in days : 3.0\nNo. of Orders/year : 16.034\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.4 Page 166"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nr=12000.0;#in units/year\nk=2000.0*12;#in units/year\nCo=400.0;#in Rs./setup\nCc=0.20*12;#in Rs./year\nCs=15.0;#in Rs./unit/year\n\n#calculation\nEOQ=sqrt((2*Co*k*r*(Cc+Cs)/(Cc*(k-r)*Cs)));#in units\nQ=round(EOQ);#units\nQ1=sqrt(2*Co*Cc*r*(k-r)/(Cs*(Cc+Cs)*k));#in units\nQ2=(Q*(k-r)/k)-Q1;#in Units\nt=Q/r;#in year\nt=t*365.0;#in days\nt1=(Q2/r)*365.0;#in days\nt2=(Q2/(k-r))*365.0;#in days\nt3=(Q1/(k-r))*365.0;#in days\nt4=(Q1/r)*365.0;#in days\n\n#result\nprint \"Ordering quantity in units : \",round(Q,3);\nprint \"Maximum Inventory in units : \",round(Q1);\nprint \"Maximum shortage quantity in units : \",round(Q2);\nprint \"Cycle time in days: \",round(t);\nprint \"Period of shortage in days : \",round(t1);\nprint \"Period of production satisfying back order in days : \",round(t2);\nprint \"Period of production satisfying period requirement in days : \",round(t3);\nprint \"Period of consumption only in days : \",round(t4);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Ordering quantity in units : 3046.0\nMaximum Inventory in units : 210.0\nMaximum shortage quantity in units : 1313.0\nCycle time in days: 93.0\nPeriod of shortage in days : 40.0\nPeriod of production satisfying back order in days : 40.0\nPeriod of production satisfying period requirement in days : 6.0\nPeriod of consumption only in days : 6.0\n"
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter13.ipynb b/Engineering_Economics/Chapter13.ipynb
new file mode 100755
index 00000000..af23fcbb
--- /dev/null
+++ b/Engineering_Economics/Chapter13.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "EE-13"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Make or Buy Decision"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.1 Page 168"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmaterial=300.0;#in Rs.\nlabour=250.0;#in Rs.\noverhead=100.0;#in Rs.\n\n#calculation\nVC=material+labour+overhead;#in Rs.\ndemand=5000.0;#in units\nTVC=demand*VC;#in Rs.\nFC=1000000;#in Rs.\nTC=FC+TVC;#in Rs.\n\n#result\nprint \"Total cost in Rs. : \",round(TC,3);\n\n#Cost to buy :\nPcost=900*demand;#in Rs.\nFC=1000000.0;#in Rs.\nTC=FC+Pcost;#in Rs.\n\n#result\nprint \"Total cost in Rs. : \",round(TC,3);\nprint \"The cost of making fixtures is less than the cost of buying fixtures from outside. Therefore, the organisation should make the fixtures.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Total cost in Rs. : 4250000.0\nTotal cost in Rs. : 5500000.0\nThe cost of making fixtures is less than the cost of buying fixtures from outside. Therefore, the organisation should make the fixtures.\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.2 Page 171"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nPbuy=8.0;#in Rs/unit\nD=2000.0;#in units/year\nCo=120.0;#in Rs./order\nCc=1.60;#in Rs./units/year\n\n#calculation\nQ1=sqrt(2*Co*D/Cc);#in units\nTC=D*Pbuy+D*Co/Q1+Q1*Cc/2;#in Rs.\nprint \"Total cost of buying in Rs. : \",round(TC,3)\n\n#Make Option :\nPmake=5.0;#in Rs/unit\nCo=60.0;#in Rs./setup\nCc=1.0;#in Re1/units/year\nr=2000.0;#in units/year\nk=8000.0;#in units/year\n\n#calculation\nQ2=sqrt(2*Co*r/(Cc*(1-r/k)));#in units\nTC=D*Pmake+D*Co/Q2+Q2*Cc*(k-r)/(2*k);#in Rs.\n\n#result\nprint \"Total cost of making in Rs. : \",round(TC,3)\nprint\"The cost of making is less than the cost of buying . Therefore, the firm should go in for making option.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Total cost of buying in Rs. : 16876.356\nTotal cost of making in Rs. : 10424.264\nThe cost of making is less than the cost of buying . Therefore, the firm should go in for making option.\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.3 Page 173"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nSP=500.0;#in Rs.\nVC=300.0;#in Rs.\nFC=400000.0;#in RS.\n\n#calculation\nBEP=FC/(SP-VC);#in units\n\n#results\nprint \"BEP in units : \",round(BEP,3);\nprint\"Since the demand(1500units) is less than the break even quantity, the company should buy the cabinets for its TV production.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "BEP in units : 2000.0\nSince the demand(1500units) is less than the break even quantity, the company should buy the cabinets for its TV production.\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.4 Page 173"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nvolume=8000;#in units\n#Process A :\nFC=500000.0;#in RS.\nVC=175.0;#in Rs.\n\n#calculation\nAC=FC+VC*volume;#in Rs.\n\n#result\nprint \"Annual Cost of Process A in Rs. :\",round(AC,3);\n\n#Process B :\nFC=600000.0;#in RS.\nVC=150;#in Rs.\n\n#calculation\nAC=FC+VC*volume;#in Rs.\n\n#result\nprint \"Annual Cost of Process A in Rs. :\",round(AC,3);\n\n#Buy option:\nPprice=125.0;#in RS./Unit\nVC=175.0;#in Rs.\nAC=Pprice*volume;#in Rs\n\n#result.\nprint \"Annual Cost of Buy in Rs. :\",round(AC,3);\nprint\"Since the annual cost of buy option is the minimum among all the alternatives, the company should buy the product.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Annual Cost of Process A in Rs. : 1900000.0\nAnnual Cost of Process A in Rs. : 1800000.0\nAnnual Cost of Buy in Rs. : 1000000.0\nSince the annual cost of buy option is the minimum among all the alternatives, the company should buy the product.\n"
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter16.ipynb b/Engineering_Economics/Chapter16.ipynb
new file mode 100755
index 00000000..25b11449
--- /dev/null
+++ b/Engineering_Economics/Chapter16.ipynb
@@ -0,0 +1,297 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2e3de312e11632c16b5c14fdb6f5e083c4b44aeeb327466acbfc97c2f088ee01"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Linear Progrmming"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Page 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#result\n",
+ "print\"The data of the problem are summarized below : \";\n",
+ "print\"Machine Products Limit on \";\n",
+ "print\" P1 P2 machine hours\";\n",
+ "print\"Lathe 5 10 60\";\n",
+ "print\"Milling 4 4 40\";\n",
+ "print\"Profit/unit 6 8\";\n",
+ "print\"Let X1 be the production volume of the product.P1, and\";\n",
+ "print\"X2 be the production volume of the product,P2.\";\n",
+ "print\"The corresponding linear programming model to determine the production volume of each product such that the total profit is maximized is as shown below : \";\n",
+ "print\"maximize Z = 6*X1 + 8*X2\";\n",
+ "print\"subject to\";\n",
+ "print\"5*X1+10*X2 <= 60\"\n",
+ "print\"4*X1+4*X2 <= 40\"\n",
+ "print\"X1,X2 >= 0\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The data of the problem are summarized below : \n",
+ "Machine Products Limit on \n",
+ " P1 P2 machine hours\n",
+ "Lathe 5 10 60\n",
+ "Milling 4 4 40\n",
+ "Profit/unit 6 8\n",
+ "Let X1 be the production volume of the product.P1, and\n",
+ "X2 be the production volume of the product,P2.\n",
+ "The corresponding linear programming model to determine the production volume of each product such that the total profit is maximized is as shown below : \n",
+ "maximize Z = 6*X1 + 8*X2\n",
+ "subject to\n",
+ "5*X1+10*X2 <= 60\n",
+ "4*X1+4*X2 <= 40\n",
+ "X1,X2 >= 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Page 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "print\"Let X1 be the No. of packets of food type1 suggested for babies, and\";\n",
+ "print\"X2 be the No. of packets of food type1 suggested for babies.\";\n",
+ "print\"The corresponding linear programming model to determine the No. of packets of each food type to be suggested for babies with the minimum cost such that the minimum daily required vitamin in each food type is satisfied is as shown below : \";\n",
+ "print\"maximize Z = 2*X1 + 3*X2\";\n",
+ "print\"subject to\";\n",
+ "print\"X1+X2 >= 6\"\n",
+ "print\"7*X1+X2 >= 14\";\n",
+ "print\"X1,X2 >= 0\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Let X1 be the No. of packets of food type1 suggested for babies, and\n",
+ "X2 be the No. of packets of food type1 suggested for babies.\n",
+ "The corresponding linear programming model to determine the No. of packets of each food type to be suggested for babies with the minimum cost such that the minimum daily required vitamin in each food type is satisfied is as shown below : \n",
+ "maximize Z = 2*X1 + 3*X2\n",
+ "subject to\n",
+ "X1+X2 >= 6\n",
+ "7*X1+X2 >= 14\n",
+ "X1,X2 >= 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "%pylab inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "print\"Given the following LP model :\"\n",
+ "print\"maximize Z = 6*X1 + 8*X2\";\n",
+ "print\"subject to\";\n",
+ "print\"5*X1+10*X2 <= 60\";\n",
+ "print\"4*X1+4*X2 <= 40\";\n",
+ "print\"X1,X2 >= 0\";\n",
+ "print\"The introduction of non-negative constraints X1>=0 and X2>=0 will eliminate the 2nd, 3rd and 4th quadrants of XY plane.\";\n",
+ "print\"Compute the cordinates to plot equations relting to the constraints on the XY plane as shown below : \";\n",
+ "print\"5*X1+10*X2 <= 60\";\n",
+ "print\"When X1=0 : X2=6\";\n",
+ "print\"When X2=0 : X1=12\";\n",
+ "plt.plot([0,12],[6,0],'r')\n",
+ "plt.plot([10,0],[0,10])\n",
+ "plt.title('Graphical Plot')\n",
+ "plt.show()\n",
+ "print \"Consider the 2nd constraint in the form : in blue \";\n",
+ "print \"4*X1+4*X2 <= 40\";\n",
+ "print \"When X1=0 : X2=10\";\n",
+ "print \"When X2=0 : X1=10\";\n",
+ "print \"The closed polygon is the feasible region at each of the corner points of the closed polygon is computed as follows by substituting its coordinates in the objective function :\";\n",
+ "ZA=6*0+8*0;\n",
+ "ZB=6*10+8*0;\n",
+ "ZC=6*8+8*2;\n",
+ "ZD=6*0+8*6;\n",
+ "print \"Since the type of the objective function is maximization, the solution corresponding to the maximum Z value should be selected as the optimum solution. The Z value is maximum for the corner point C. Hence, the corresponding solution is \";\n",
+ "print \"X1 = 8 X2 = 2 and Z(Optimum) is\",ZC;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Given the following LP model :\n",
+ "maximize Z = 6*X1 + 8*X2\n",
+ "subject to\n",
+ "5*X1+10*X2 <= 60\n",
+ "4*X1+4*X2 <= 40\n",
+ "X1,X2 >= 0\n",
+ "The introduction of non-negative constraints X1>=0 and X2>=0 will eliminate the 2nd, 3rd and 4th quadrants of XY plane.\n",
+ "Compute the cordinates to plot equations relting to the constraints on the XY plane as shown below : \n",
+ "5*X1+10*X2 <= 60\n",
+ "When X1=0 : X2=6\n",
+ "When X2=0 : X1=12\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAEKCAYAAADkYmWmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGzlJREFUeJzt3Xtw1PW5x/HPImCRSAgISXMbSiAl4ZbYCJUOkMq1TIlc\nFZBCCeBR9FTQ4TRlqglSIRGl2qnSc4jhIhboZQoUkKlg12IRQYNAUaRQUgKBdCgkIQYSCXv+SAkG\nNrfNb/d32fdrJjPmsrvfdfTh4Z29uDwej0cAAFtqZfYBAAC+Y4gDgI0xxAHAxhjiAGBjDHEAsDGG\nOADYGEMcjpCVlaUf/OAH9X6/T58++stf/uLX26hPQUGBWrVqpevXr7fo9gFvGOLwi40bN2rgwIEK\nCQlReHi4vv3tb2vlypV+uz2Xy9Xg9//2t79pyJAhfrsNt9utVq1a6e6771aHDh3Uq1cvrVmzptm3\n4esfFAheDHEY7uWXX9b8+fP14x//WMXFxSouLtavfvUr/fWvf1VVVZXXy7R0Sw3Ec9Yau42oqChd\nvnxZZWVlysnJ0dy5c3Xs2DG/nwvBjSEOQ5WWliozM1MrV67UhAkT1L59e0lSUlKS1q9fr7Zt20qS\nfvjDH+rxxx/XmDFjFBISIrfbre3btys5OVmhoaGKjY3V4sWLa6/3RpJYtWqVoqKiFBkZqZdffrn2\n+y6XS1VVVZo5c6Y6dOigPn366OOPP679frdu3bR7925JUnV1tZYuXaoePXqoQ4cOSklJ0dmzZyVJ\nTz31lGJjYxUaGqqUlBS9//77Pv17ePDBBxUWFqZPP/30tu8VFRUpLS1NnTt3Vs+ePZWbmytJ2rlz\np5YtW6ZNmzbp7rvvVnJysk+3jeDCEIehPvjgA1VWVurBBx9s9Gc3bNigZ599VuXl5frOd76jkJAQ\nrV+/XqWlpdq+fbtWrlypLVu21LmM2+3WiRMn9Kc//Uk5OTm1g9nj8Wjr1q2aOnWqSktLlZaWpief\nfLL2ci6XqzaHrFixQhs3btTbb7+tsrIyrV69Wu3atZMkDRgwQIcOHdKlS5c0bdo0TZ48ud6/PdTn\n+vXr+sMf/qCSkhL17dv3tu9PmTJFsbGxOnfunH73u99p0aJF+vOf/6zRo0dr0aJFmjJlii5fvqyD\nBw8263YRnBjiMNSFCxd0zz33qFWrm/9pDRo0SGFhYbrrrrvqbLbjxo3T/fffL0m68847NXToUPXu\n3VuS1LdvX02ZMkXvvfdenevPzMxUu3bt1KdPH82aNUsbNmyo/d7gwYM1evRouVwuTZ8+XYcOHfJ6\nxtzcXL3wwgvq2bNn7W116tRJkvTII48oLCxMrVq10tNPP63Kykp9/vnnTbrvRUVFCgsLU5cuXbRk\nyRKtX7++9jZuKCws1N69e5WTk6O2bduqf//+mjNnjtatWyep5g8jXs4IzdHa7APAWTp37qwLFy7o\n+vXrtYN87969kqSYmJja9u1yuRQdHV3nsh9++KEyMjJ09OhRVVVVqbKyUg899FCdn4mJian959jY\nWB05cqT28/Dw8Np/vuuuu3T16tU657jhzJkziouL83r+l156SXl5eSoqKpLL5VJZWZkuXLjQpPse\nGRmpwsLCBn+mqKhInTp1qs1MN+7HRx991KTbAG7FJg5D3X///brzzju1efPmZl922rRpGjdunM6c\nOaOSkhI99thjt/3C8/Tp03X+OSoqqtm3ExMToxMnTtz29T179mj58uX67W9/q5KSEl26dEmhoaGG\nbsaRkZG6ePGiysvLa792+vTp2j/QGnuUDXArhjgM1bFjR2VmZmrevHn6/e9/r8uXL+v69ev65JNP\n9MUXX9T+nLfBWF5errCwMLVt21b79+/Xr3/969uG2s9+9jNduXJFR48e1Zo1a/Twww83+4xz5szR\ns88+qxMnTsjj8ejw4cO1g7V169a65557VFVVpeeff15lZWXN/5fQgJiYGA0aNEg/+clPVFlZqcOH\nDysvL0/Tp0+XJEVERKigoICkgiZjiMNwCxcu1IoVK/Tiiy8qIiJCEREReuyxx/Tiiy/WNvCv/qLx\nhtdff13PPfecOnTooCVLlngd0EOHDlWPHj00fPhwLVy4UMOHD6/3+urbap9++mk99NBDGjlypEJD\nQzV37lxdvXpVo0aN0ujRoxUfH69u3bqpXbt2io2NrXN9DW3KTf3ehg0bVFBQoMjISE2YMEHPP/+8\nHnjgAUnS5MmTJdVkqZSUlHqvD7jB1dCbQqSnp2v79u3q2rVrbXu8ePGiHn74Yf3zn/9Ut27d9Jvf\n/EYdO3YM2IERnAoKCtS9e3ddu3bttsYNBLMG/2+YNWuWdu7cWedr2dnZGjFihI4fP65hw4YpOzvb\nrwcEANSvwSE+ePBghYWF1fna1q1bNXPmTEnSzJkzffoFFuALfukH3K7ZDzEsLi6ufShXeHi4iouL\n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\n8HAVFxebfCL/ycvL05gxYxr8GcP/T3XiX8G9KS8v16RJk/Tqq68qJCTE7OMYYtu2beratauSk5Md\nt4VLNQ+Nzc/P17x585Sfn6/27dvb+q/itzp58qReeeUVFRQUqKioSOXl5XrrrbfMPpZfuVwux86c\nF154QW3bttW0adMa/DnDh3hUVJQKCwtrPy8sLFR0dLTRN2OqL7/8UhMnTtT06dM1btw4s49jmL17\n92rr1q36xje+oalTp+rdd9/VjBkzzD6WYaKjoxUdHa377rtPkjRp0iTl5+ebfCrjfPTRRxo0aJA6\nd+6s1q1ba8KECdq7d6/ZxzJceHi4zp8/L0k6d+6cunbtavKJjLdmzRrt2LGjSX8IGz7EU1JS9Pe/\n/10FBQWqqqrSpk2blJaWZvTNmMbj8Wj27NlKTEzU/PnzzT6OoZYuXarCwkKdOnVKGzdu1AMPPKB1\n69aZfSzDREREKCYmRsePH5ck7dq1S7179zb5VMbp1auX9u3bpytXrsjj8WjXrl1KTEw0+1iGS0tL\n09q1ayVJa9euddQiJdU8um/58uXasmWLvva1rzV+AV+edt+YHTt2eOLj4z1xcXGepUuX+uMmTLNn\nzx6Py+Xy9O/f35OUlORJSkryvP3222Yfy3But9szduxYs49huE8++cSTkpLi6devn2f8+PGekpIS\ns49kqJycHE9iYqKnT58+nhkzZniqqqrMPlKLTJkyxfP1r3/d06ZNG090dLQnLy/P8+9//9szbNgw\nT8+ePT0jRozwXLp0yexj+uzW+/fGG294evTo4YmNja2dL48//niD18GTfQDAxpz3EAQACCIMcQCw\nMYY4ANgYQxwAbIwhDgA2xhAHABtjiAOAjTHEAcDG/h92IUTgGfYhtAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x51094e0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Consider the 2nd constraint in the form : in blue \n",
+ "4*X1+4*X2 <= 40\n",
+ "When X1=0 : X2=10\n",
+ "When X2=0 : X1=10\n",
+ "The closed polygon is the feasible region at each of the corner points of the closed polygon is computed as follows by substituting its coordinates in the objective function :\n",
+ "Since the type of the objective function is maximization, the solution corresponding to the maximum Z value should be selected as the optimum solution. The Z value is maximum for the corner point C. Hence, the corresponding solution is \n",
+ "X1 = 8 X2 = 2 and Z(Optimum) is 64\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4 Page 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "%pylab inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "print\"Given the following LP model :\"\n",
+ "print \"minimize Z = 2*X1 + 3*X2\";\n",
+ "print\"subject to\";\n",
+ "print\"X1+X2 >= 6\";\n",
+ "print\"7*X1+X2 >= 14\";\n",
+ "print\"X1,X2 >= 0\";\n",
+ "print\"The introduction of non-negative constraints X1>=0 and X2>=0 will eliminate the 2nd, 3rd and 4th quadrants of XY plane.\";\n",
+ "print\"Compute the cordinates to plot equations relting to the constraints on the XY plane as shown below : \";\n",
+ "print\"X1+X2 = 6\";\n",
+ "print\"When X1=0 : X2=6\";\n",
+ "print\"When X2=0 : X1=6\";\n",
+ "plt.plot([0,6],[6,0],'r')\n",
+ "plt.plot([2,0],[0,14])\n",
+ "plt.title('Graphical Plot')\n",
+ "plt.show()\n",
+ "print\"Consider the 2nd constraint in the form (in blue):\";\n",
+ "print\"7*X1+X2 = 14\";\n",
+ "print\"When X1=0 : X2=14\";\n",
+ "print\"When X2=0 : X1=2\";\n",
+ "print\"The Optimum solution will be in any one of the corners A, B and C\";\n",
+ "print\"The objective function value at each of these corner points of the feasible solution space is computed as fllows by substituting its coordinates in the objective function.\"\n",
+ "ZA=2*0+3*14;\n",
+ "ZB=2*(4.0/3)+3*(14.0/3);\n",
+ "ZC=2*6+3*0;\n",
+ "\n",
+ "#result\n",
+ "print\"Since the type of the objective function is minimization, the solution corresponding to the minimum Z value should be selected as the optimum solution. The Z value is minimum for the corner point C. Hence, the corresponding solution is \";\n",
+ "print \"X1 = 6 X2 = 0 and Z(Optimum) =\",ZC"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Given the following LP model :\n",
+ "minimize Z = 2*X1 + 3*X2\n",
+ "subject to\n",
+ "X1+X2 >= 6\n",
+ "7*X1+X2 >= 14\n",
+ "X1,X2 >= 0\n",
+ "The introduction of non-negative constraints X1>=0 and X2>=0 will eliminate the 2nd, 3rd and 4th quadrants of XY plane.\n",
+ "Compute the cordinates to plot equations relting to the constraints on the XY plane as shown below : \n",
+ "X1+X2 = 6\n",
+ "When X1=0 : X2=6\n",
+ "When X2=0 : X1=6\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAEKCAYAAAAyx7/DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGwVJREFUeJzt3Xlw1PX9x/HXpoiAkRAQNs3VtAHKHaJRig6yyBVtgcgl\nl9AgcayjLdJhRKeWwwoE1JZSpTNQUaQF2vKrUMCMgXYDipQhIFKoxYOMiRydoAlHhEiyvz8iKyHZ\nZHfz/e7u97vPx8zOJHt8v59VfPPsd7/frcPj8XgEALCMmHAvAAAQGAY3AFgMgxsALIbBDQAWw+AG\nAIthcAOAxTC4YQsLFizQgw8+6PPxPn36aPfu3abuw5eSkhLFxMSotra2RfsHrmJwwxQbN27UgAED\nFBsbK6fTqR/84AdatWqVaftzOBxNPv7vf/9bd999t2n7cLvdiomJ0c0336z27durR48eevXVVwPe\nR7B/OSC6MLhhuBdeeEGzZ8/Wk08+qTNnzujMmTP6/e9/r3feeUfV1dWNvqalNRqK68ia20dSUpLO\nnz+vc+fOKT8/X3l5efrggw9MXxeiD4MbhqqsrNT8+fO1atUqjR07VjfddJMkqX///lq/fr1at24t\nSfrxj3+sn/zkJ7rvvvsUGxsrt9ut7du3KzMzU3FxcUpNTdXChQu92716uGH16tVKSkpSYmKiXnjh\nBe/jDodD1dXVmjFjhtq3b68+ffqouLjY+3haWpp27dolSaqpqdHixYvVtWtXtW/fXllZWfrss88k\nST/72c+UmpqquLg4ZWVl6e233w7qn8OYMWMUHx+vY8eONXjs5MmTGj16tDp16qRu3bppzZo1kqSC\nggItWbJEmzZt0s0336zMzMyg9g37Y3DDUO+++64uX76sMWPGNPvcDRs26JlnntGFCxd01113KTY2\nVuvXr1dlZaW2b9+uVatWacuWLfVe43a79dFHH+mtt95Sfn6+dxh7PB5t3bpVkydPVmVlpUaPHq3H\nHnvM+zqHw+E91PHiiy9q48aNevPNN3Xu3DmtXbtWbdu2lSTdcccdOnz4sL744gtNmTJFEyZM8Pm/\nEnypra3V3/72N1VUVKhv374NHp80aZJSU1N16tQp/fWvf9XTTz+tf/7zn8rOztbTTz+tSZMm6fz5\n8zp06FBA+0X0YHDDUOXl5brlllsUE/PNH60777xT8fHxateuXb2CzcnJ0cCBAyVJN954owYPHqze\nvXtLkvr27atJkyapqKio3vbnz5+vtm3bqk+fPsrNzdWGDRu8jw0aNEjZ2dlyOByaNm2aDh8+3Oga\n16xZo+eee07dunXz7qtjx46SpKlTpyo+Pl4xMTGaM2eOLl++rP/+979+vfeTJ08qPj5enTt31rPP\nPqv169d793FVaWmp9u7dq/z8fLVu3VoZGRmaNWuW1q1bJ6nuLyC+PgjNaRXuBcBeOnXqpPLyctXW\n1nqH9969eyVJKSkp3mPZDodDycnJ9V77r3/9S/PmzdPRo0dVXV2ty5cva+LEifWek5KS4v05NTVV\nR44c8f7udDq9P7dr106XLl2qt46rysrKlJ6e3uj6n3/+eb3yyis6efKkHA6Hzp07p/Lycr/ee2Ji\nokpLS5t8zsmTJ9WxY0fvIaSr7+PAgQN+7QOQKG4YbODAgbrxxhv1xhtvBPzaKVOmKCcnR2VlZaqo\nqNAjjzzS4EPLTz/9tN7PSUlJAe8nJSVFH330UYP79+zZo+XLl+svf/mLKioq9MUXXyguLs7QAk5M\nTNTnn3+uCxcueO/79NNPvX+JNXd2DCAxuGGwDh06aP78+Xr00Ue1efNmnT9/XrW1tXrvvfd08eJF\n7/MaG4YXLlxQfHy8Wrdurf379+tPf/pTg0H2q1/9Sl9++aWOHj2qV199VQ888EDAa5w1a5aeeeYZ\nffTRR/J4PHr//fe9w7RVq1a65ZZbVF1drUWLFuncuXOB/0NoQkpKiu6880499dRTunz5st5//329\n8sormjZtmiQpISFBJSUlHC5BkxjcMNzcuXP14osvatmyZUpISFBCQoIeeeQRLVu2zHtM+9oPC696\n+eWX9ctf/lLt27fXs88+2+hQHjx4sLp27aphw4Zp7ty5GjZsmM/t+arXOXPmaOLEiRoxYoTi4uKU\nl5enS5cuaeTIkcrOzlb37t2Vlpamtm3bKjU1td72mipifx/bsGGDSkpKlJiYqLFjx2rRokW65557\nJEkTJkyQVHfIKSsry+f2EN0cTf0fKcycOVPbt29Xly5d6h1LlOrO1Z07d67Ky8u9H+wAZikpKdH3\nvvc9XblypcExayDaNPlfQG5urgoKChrcX1paqsLCQn3nO98xbWEAgMY1ObgHDRqk+Pj4BvfPmTNH\ny5YtM21RQGP44A6oE/DpgFu2bFFycrL69etnxnqARqWlpammpibcywAiQkCDu6qqSosXL1ZhYaH3\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x81f27b8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Consider the 2nd constraint in the form (in blue):\n",
+ "7*X1+X2 = 14\n",
+ "When X1=0 : X2=14\n",
+ "When X2=0 : X1=2\n",
+ "The Optimum solution will be in any one of the corners A, B and C\n",
+ "The objective function value at each of these corner points of the feasible solution space is computed as fllows by substituting its coordinates in the objective function.\n",
+ "Since the type of the objective function is minimization, the solution corresponding to the minimum Z value should be selected as the optimum solution. The Z value is minimum for the corner point C. Hence, the corresponding solution is \n",
+ "X1 = 6 X2 = 0 and Z(Optimum) = 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter2.ipynb b/Engineering_Economics/Chapter2.ipynb
new file mode 100755
index 00000000..e29c54c2
--- /dev/null
+++ b/Engineering_Economics/Chapter2.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:579288a5e0685252a970b36dc99c069cd7fb91e6e042c88d50d8eb0615ccf38d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Elementary Economic Analysis"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page 16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#Part a \n",
+ "w1=1.2;#in Kg\n",
+ "c1=80.0;#cost of making aluminium casting in Rs/Kg\n",
+ "c2=150.0;#ost of machining aluminium casting per unit in Rs\n",
+ "\n",
+ "#calculation\n",
+ "Tc1=c1*w1+c2;#Total cost of jet engine part made of aluminium per unit in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Total cost of jet engine part made of aluminium per unit in Rs \",round(Tc1,3)\n",
+ "\n",
+ "#Part b \n",
+ "w2=1.35;#in Kg\n",
+ "c1=35.0;#in Rs/Kg\n",
+ "c2=170.0;#in Rs\n",
+ "c3=1300.0;#in Rs/Kg\n",
+ "\n",
+ "#calculation\n",
+ "Tc2=c1*w2+c2+c3*(w2-w1);#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Total cost of jet engine part made of steel per unit in Rs : \",round(Tc2,3);\n",
+ "print \"DECISION : The total cost/unit of a jet engine part made of aluminium is less than that for an engine made of steel. Hence, aluminium is suggested for making jet engine part. The economic advantage of aluminium over steel per unit in Rs \",round(Tc2-Tc1,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total cost of jet engine part made of aluminium per unit in Rs 246.0\n",
+ "Total cost of jet engine part made of steel per unit in Rs : 412.25\n",
+ "DECISION : The total cost/unit of a jet engine part made of aluminium is less than that for an engine made of steel. Hence, aluminium is suggested for making jet engine part. The economic advantage of aluminium over steel per unit in Rs 166.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#Part a \n",
+ "wood=0.1;#in m^3\n",
+ "WoodCost=12000.0;#in Rs/m^3\n",
+ "Table=1;#in units\n",
+ "TableTopCost=3000.0;#in Rs/unit\n",
+ "LegBushes=4.0;#units\n",
+ "LegBushesCost=10.0;#Rs/units\n",
+ "Nails=100.0;#in grams\n",
+ "NailsCost=300.0;#in Rs/Kg\n",
+ "TotalLabour=15.0;#in Hours\n",
+ "TotalLabourCost=50.0;#in Rs/Hours\n",
+ "\n",
+ "#calcualtion\n",
+ "WoodCostframelegs=WoodCost*wood;#in Rs\n",
+ "WoodTopCost=3000.0;#in Rs\n",
+ "BushesCost=LegBushesCost*LegBushes;#in Rs\n",
+ "NailsCost=Nails*NailsCost/1000;#in Rs\n",
+ "LabourCost=TotalLabourCost*TotalLabour;#in Rs\n",
+ "TotalCost1=WoodCostframelegs+WoodTopCost+BushesCost+NailsCost+LabourCost;#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Cost of Table with wooden top in Rs \",round(TotalCost1,3)\n",
+ "\n",
+ "#given data for table with granite top\n",
+ "#Part b \n",
+ "wood=0.15;#in m^3\n",
+ "WoodCost=12000.0;#in Rs/m^3\n",
+ "Granite=1.62;#in m^2\n",
+ "GraniteCost=800.0;#in Rs/m^2\n",
+ "LegBushes=4.0;#units\n",
+ "LegBushesCost=25.0;#Rs/units\n",
+ "Nails=50.0;#in grams\n",
+ "NailsCost=300.0;#in Rs/Kg\n",
+ "TotalLabour=8.0;#in Hours\n",
+ "TotalLabourCost=50.0;#in Rs/Hours\n",
+ "\n",
+ "\n",
+ "WoodCostframelegs=WoodCost*wood;#in Rs\n",
+ "GraniteTopCost=Granite*GraniteCost;#in Rs\n",
+ "BushesCost=LegBushesCost*LegBushes;#in Rs\n",
+ "NailsCost=Nails*NailsCost/1000;#in Rs\n",
+ "LabourCost=TotalLabourCost*TotalLabour;#in Rs\n",
+ "TotalCost2=WoodCostframelegs+GraniteTopCost+BushesCost+NailsCost+LabourCost;#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Cost of Table with Granite top in Rs \",round(TotalCost2,3);\n",
+ "print \"Economic advantage of table with granite top in Rs \",round(TotalCost1-TotalCost2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cost of Table with wooden top in Rs 5020.0\n",
+ "Cost of Table with Granite top in Rs 3611.0\n",
+ "Economic advantage of table with granite top in Rs 1409.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#design A\n",
+ "LatheCost=200.0;#in Rs/hour\n",
+ "grinderCost=150.0;#in Rs/hour\n",
+ "HoursOfLathe=16.0;#in hours/1000Unit\n",
+ "HoursOfGrinder=4.5;#in hours/1000Unit\n",
+ "\n",
+ "#calcualtion\n",
+ "TotalCostA=LatheCost*HoursOfLathe+grinderCost*HoursOfGrinder;#in Rs/1000unit\n",
+ "\n",
+ "#result\n",
+ "print \"Total cost of design A per 100,000 units \",round(TotalCostA*100000.0/1000,3);\n",
+ "\n",
+ "# Design B\n",
+ "HoursOfLathe=7.0;#in hours/1000Unit\n",
+ "HoursOfGrinder=12.0;#in hours/1000Unit\n",
+ "TotalCostB=LatheCost*HoursOfLathe+grinderCost*HoursOfGrinder;#in Rs/1000unit\n",
+ "\n",
+ "#result\n",
+ "print \"Total cost of design A per 100,000 units\",round(TotalCostB*100000.0/1000,3);\n",
+ "print \"Economic advantage of design B over design A per 100,000 units in Rs \",round(TotalCostA-TotalCostB,3)*100;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total cost of design A per 100,000 units 387500.0\n",
+ "Total cost of design A per 100,000 units 320000.0\n",
+ "Economic advantage of design B over design A per 100,000 units in Rs 67500.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4,Page 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "from math import pi\n",
+ "Tanks=4.0;#units\n",
+ "TankDia=5.2;#in meter\n",
+ "\n",
+ "#calcualtion\n",
+ "TankRad=TankDia/2;#in meters\n",
+ "TankHeight=7;#in meters\n",
+ "HeightDiaRatio=TankHeight/TankDia;#unitless\n",
+ "VolPerTank=(22/7)*TankRad**2*TankHeight;#in m^3\n",
+ "h=VolPerTank/(pi)*64;#in meters\n",
+ "r=h/8;#in meters\n",
+ "d=2*r;#in meters\n",
+ "CostNewDesign=900000*(100.0/111);#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Expected savings by redesign in Rs \",round(900000-CostNewDesign,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Expected savings by redesign in Rs 89189.189\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5,Page 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#steel frame\n",
+ "distance=2500.0;#in Km\n",
+ "TransCost=1.0;#in Rs/Kg/100Km\n",
+ "SteelFramePrice=1000.0;#in Rs/Unit\n",
+ "SteelFrameWeight=75.0;#in Kg/Unit\n",
+ "\n",
+ "#calculation\n",
+ "TotalCost1=SteelFramePrice+TransCost*SteelFrameWeight*distance/100;#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Total cost of steel window frame per unit in Rs \",round(TotalCost1,3);\n",
+ "\n",
+ "# Aluminium window frame\n",
+ "AlumilniumFramePrice=1500.0;#in Rs/Unit\n",
+ "AlumilniumFrameWeight=28.0;#in Kg/Unit\n",
+ "\n",
+ "#calculation\n",
+ "TotalCost2=AlumilniumFramePrice+TransCost*AlumilniumFrameWeight*distance/100;#in Rs\n",
+ "\n",
+ "#result\n",
+ "print \"Total cost of Alumilnium window frame per unit in Rs \",round(TotalCost2,3);\n",
+ "print \"DECISION : The total cost per unit of the aluminium window frame is less than that of steel window frame. Hence, Alumilnium window frame is recommended. The Economic advantage per unit of the Alumilnium window frame over steel window frame in Rs \",round(TotalCost1-TotalCost2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total cost of steel window frame per unit in Rs 2875.0\n",
+ "Total cost of Alumilnium window frame per unit in Rs 2200.0\n",
+ "DECISION : The total cost per unit of the aluminium window frame is less than that of steel window frame. Hence, Alumilnium window frame is recommended. The Economic advantage per unit of the Alumilnium window frame over steel window frame in Rs 675.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6,Page 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#Cost of component using process sequence 1\n",
+ "print\"The process sequence 1 of the component is as follows : Turning - Milling - Shaping - Drilling\" ;\n",
+ "print \"Calculations are summarized in form of table below : \";\n",
+ "print \"Operation Operation Time Machine Hour rate Cost\";\n",
+ "print \" No. Min Hour Rs. Rs.\";\n",
+ "print \" 1 Turning 5 0.083 200 16.60\";\n",
+ "print \" 2 Milling 8 0.133 400 53.20\";\n",
+ "print \" 3 Shapiing 10 0.167 350 58.45\";\n",
+ "print \" 4 Drilling 3 0.050 300 15.00\";\n",
+ "print \" Total 143.25\";\n",
+ "\n",
+ "#Cost of component using process sequence 2\n",
+ "print \"The process sequence 2 of the component is as follows : Turning - Milling - Drilling\" ;\n",
+ "print \"Calculations are summarized in form of table below : \";\n",
+ "print \"Operation Operation Time Machine Hour rate Cost\";\n",
+ "print \" No. Min Hour Rs. Rs.\";\n",
+ "print \" 1 Turning 5 0.083 200 16.60\";\n",
+ "print \" 2 Milling 14 0.233 400 93.20\";\n",
+ "print \" 4 Drilling 3 0.050 300 15.00\";\n",
+ "print \" Total 124.80\";\n",
+ "\n",
+ "#Cost of component using process sequence 3\n",
+ "print \"The process sequence 3 of the component is as follows : Only CNC operations\" ;\n",
+ "print \"Calculations are summarized in form of table below : \";\n",
+ "print \"Operation Operation Time Machine Hour rate Cost\";\n",
+ "print \" No. Min Hour Rs. Rs.\";\n",
+ "print \" 1 CNC 8 0.133 1000 133\";\n",
+ "\n",
+ "print \"The process sequence 2 has the least cost. Therefore, it should be selected for manufacturing the component.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The process sequence 1 of the component is as follows : Turning - Milling - Shaping - Drilling\n",
+ "Calculations are summarized in form of table below : \n",
+ "Operation Operation Time Machine Hour rate Cost\n",
+ " No. Min Hour Rs. Rs.\n",
+ " 1 Turning 5 0.083 200 16.60\n",
+ " 2 Milling 8 0.133 400 53.20\n",
+ " 3 Shapiing 10 0.167 350 58.45\n",
+ " 4 Drilling 3 0.050 300 15.00\n",
+ " Total 143.25\n",
+ "The process sequence 2 of the component is as follows : Turning - Milling - Drilling\n",
+ "Calculations are summarized in form of table below : \n",
+ "Operation Operation Time Machine Hour rate Cost\n",
+ " No. Min Hour Rs. Rs.\n",
+ " 1 Turning 5 0.083 200 16.60\n",
+ " 2 Milling 14 0.233 400 93.20\n",
+ " 4 Drilling 3 0.050 300 15.00\n",
+ " Total 124.80\n",
+ "The process sequence 3 of the component is as follows : Only CNC operations\n",
+ "Calculations are summarized in form of table below : \n",
+ "Operation Operation Time Machine Hour rate Cost\n",
+ " No. Min Hour Rs. Rs.\n",
+ " 1 CNC 8 0.133 1000 133\n",
+ "The process sequence 2 has the least cost. Therefore, it should be selected for manufacturing the component.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter3.ipynb b/Engineering_Economics/Chapter3.ipynb
new file mode 100755
index 00000000..b94c5fa1
--- /dev/null
+++ b/Engineering_Economics/Chapter3.ipynb
@@ -0,0 +1,360 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5b530b225e354d5204b6b04a92931fcee5b92fa42094bc3f03e4022169e39d78"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Interest Formulas and their Application"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "P=20000.0;#in rupees\n",
+ "n=10.0;#in years\n",
+ "i=18.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "F=P*(1+i/100)**n;\n",
+ "\n",
+ "#result\n",
+ "print \"Maturity value after 18 years is \", round(F,3),\" Rupees.\";\n",
+ "print \" Ans in the book is not correct\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maturity value after 18 years is : 104676.711 Rupees.\n",
+ " Ans in the book is not correct\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "F=100000.0;#in rupees\n",
+ "n=10.0;#in years\n",
+ "i=15.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "P=F/((1.0+i/100.0)**n);\n",
+ "\n",
+ "#result\n",
+ "print \"The person has to invest \", round(P,3),\" Rupees.\";\n",
+ "print \" Ans in the book is not correct\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The person has to invest 24718.471 Rupees.\n",
+ " Ans in the book is not correct\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "A=10000.0;#in rupees\n",
+ "n=25.0;#in years\n",
+ "i=20.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "F=A*(((1+i/100)**n-1)/(i/100));\n",
+ "\n",
+ "#result\n",
+ "print \"The future sum of the annual equal payment after 25 years is \",round(F,3),\" Rupees.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The future sum of the annual equal payment after 25 years is 4719810.832 Rupees.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "F=500000.0;#in rupees\n",
+ "n=15.0;#in years\n",
+ "i=18.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "A=F*((i/100)/((1+i/100)**n-1));\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equal ammount which must be deposited for 15 years is \",round(A,3),\" Rupees.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equal ammount which must be deposited for 15 years is 8201.391 Rupees.\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiasation of variable\n",
+ "A=1000000.0;#in rupees\n",
+ "n=20.0;#in years\n",
+ "i=15.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "P=A*(((1+i/100)**n-1)/((i/100)*(1+i/100)**n));\n",
+ "\n",
+ "#result\n",
+ "print \"The amount of reserve which must be setup now is : \",round(P,3),\" Rupees\";\n",
+ "print \" Ans in the book is not correct\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of reserve which must be setup now is : 6259331.474 Rupees\n",
+ " Ans in the book is not correct\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "P=1000000.0;#in rupees\n",
+ "n=15.0;#in years\n",
+ "i=18.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "A=P*(((i/100)*(1+i/100)**n)/((1+i/100)**n-1));\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent installment to be paid by the company to the bank is \",round(A),\" Rupees.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equivalent installment to be paid by the company to the bank is : 196403.0 Rupees.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "A1=4000.0;#in rupees\n",
+ "G=500.0;#in rupees\n",
+ "n=10.0;#in years\n",
+ "i=15.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "A=A1+G*(((1+i/100)**n-(i/100)*n-1)/((i/100)*(1+i/100)**n-(i/100)));\n",
+ "F=A*(((1+i/100)**n-1)/(i/100));\n",
+ "\n",
+ "#result\n",
+ "print \"At the end of 10th year, the compound amountr of all his payments will be : \",round(F,3),\" Rupees.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At the end of 10th year, the compound amountr of all his payments will be : 115560.6 Rupees.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "A1=8500.0;#in rupees\n",
+ "G=-500.0;#in rupees\n",
+ "n=10.0;#in years\n",
+ "i=15.0;#% per annum\n",
+ "\n",
+ "#calculation\n",
+ "A=A1+G*(((1+i/100)**n-(i/100)*n-1)/((i/100)*(1+i/100)**n-(i/100)));\n",
+ "F=A*(((1+i/100)**n-1)/(i/100));\n",
+ "\n",
+ "#result\n",
+ "print \"At the end of 10th year, the compound amountr of all his payments will be : \",round(F,3),\" Rupees.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At the end of 10th year, the compound amountr of all his payments will be : 138235.878 Rupees.\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "P=5000.0;#in rupees\n",
+ "n=10.0;#in years\n",
+ "i=12.0;#% per annum\n",
+ "m=4.0;#no. of interest periods per year for quarterly\n",
+ "\n",
+ "#calculation\n",
+ "N=n*m;\n",
+ "r=i/m;\n",
+ "F=P*(1+r/100)**N;\n",
+ "\n",
+ "#result\n",
+ "print\"Maturity value after 10 years is \",round(F,3),\" Rupees.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maturity value after 10 years is : 16310.189 Rupees.\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter4.ipynb b/Engineering_Economics/Chapter4.ipynb
new file mode 100755
index 00000000..2b2d10b2
--- /dev/null
+++ b/Engineering_Economics/Chapter4.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aed8a204f6a6b9aa286380e07fd82210fb76cb7818bcaa10c4f627aee9d0c52a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Present Worth Method of Comparision"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 Page 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#technology 1\n",
+ "P=1200000.0;#in Rs\n",
+ "A=400000.0;#in Rs\n",
+ "i=20.0;#in % per annum\n",
+ "n=10.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW=-P+A*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth for this technology in RS. \",round(PW,3);\n",
+ "\n",
+ "#technology 2\n",
+ "P=2000000.0;#in Rs\n",
+ "A=600000.0;#in Rs\n",
+ "i=20.0;#in % per annum\n",
+ "n=10.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW=-P+A*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth for this technology in RS. \",round(PW,3);\n",
+ "\n",
+ "#technology 3\n",
+ "P=1800000.0;#in Rs\n",
+ "A=500000.0;#in Rs\n",
+ "i=20.0;#in % per annum\n",
+ "n=10.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW=-P+A*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth for this technology in RS. \",round(PW,3);\n",
+ "print \"It is clear from the calculations that the present worth of technology 2 is the highest among all technologies. Therefore technology 2 is suggested for implementation to expand the production.\";\n",
+ "print \"the answer is differnt due to approximation error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth for this technology in RS. 476988.834\n",
+ "The present worth for this technology in RS. 515483.251\n",
+ "The present worth for this technology in RS. 296236.043\n",
+ "It is clear from the calculations that the present worth of technology 2 is the highest among all technologies. Therefore technology 2 is suggested for implementation to expand the production.\n",
+ "the answer is differnt due to approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#bid 1\n",
+ "P=450000.0;#in Rs\n",
+ "A=27000.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=15.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW=P+A*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth for this bid in RS. \",round(PW,3)\n",
+ "\n",
+ "#bid 2\n",
+ "P=540000.0;#in Rs\n",
+ "A=28500.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=15.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW=P+A*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth for this bid in RS. \",round(PW,3)\n",
+ "print \"The total present worth cost of bid 1 is less than that of bid 2. Hence bid 1 is to be selected for implementation. That is, the Elevator from Alpha Elevator Inc. is to be purchased and installed in the new building.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth for this bid in RS. 607878.993\n",
+ "The present worth for this bid in RS. 706650.048\n",
+ "The total present worth cost of bid 1 is less than that of bid 2. Hence bid 1 is to be selected for implementation. That is, the Elevator from Alpha Elevator Inc. is to be purchased and installed in the new building.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#investment proposal A\n",
+ "P1=-10000.0;#in Rs\n",
+ "P2=3000.0;#in Rs\n",
+ "P3=3000.0;#in Rs\n",
+ "P4=7000.0;#in Rs\n",
+ "P5=6000.0;#in Rs\n",
+ "i=18.0;#in % per annum\n",
+ "\n",
+ "#calculation\n",
+ "PW_A=P1+P2*1/((1+i/100)**1)+P3*1/((1+i/100)**2)+P4*1/((1+i/100)**3)+P5*1/((1+i/100)**4);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of A in RS. \",round(PW_A,3);\n",
+ "\n",
+ "#investment proposal B\n",
+ "P1=-10000.0;#in Rs\n",
+ "P2=6000.0;#in Rs\n",
+ "P3=6000.0;#in Rs\n",
+ "P4=3000.0;#in Rs\n",
+ "P5=3000.0;#in Rs\n",
+ "i=18.0;#in % per annum\n",
+ "\n",
+ "#calculation\n",
+ "PW_B=P1+P2*1/((1+i/100)**1)+P3*1/((1+i/100)**2)+P4*1/((1+i/100)**3)+P5*1/((1+i/100)**4);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of B in RS. \",round(PW_B,3);\n",
+ "print\"At i=18%, the present worth of proposal B is higher than that of proposal A. Therefore, select proposal B.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth of A in RS. 2052.076\n",
+ "The present worth of B in RS. 2767.112\n",
+ "At i=18%, the present worth of proposal B is higher than that of proposal A. Therefore, select proposal B.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "P0=400000.0;#in Rs\n",
+ "P=200000.0;#in Rs\n",
+ "i=18.0;#in % per annum\n",
+ "n=10.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "PW=P0+P*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of alternative 2 in RS. \",round(PW,3);\n",
+ "print \"The present worth of 2nd alternative is less than that of first one i.e., complete downpayment of Rs. 1600000. Hence, select 2nd alternative.\";\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth of alternative 2 in RS. 1298817.259\n",
+ "The present worth of 2nd alternative is less than that of first one i.e., complete downpayment of Rs. 1600000. Hence, select 2nd alternative.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#plan 1\n",
+ "P0=-1000.0;#in Rs\n",
+ "P=12000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=15.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW1=P0+P*1/((1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of Plan-1 in RS. \",round(PW1,3);\n",
+ "\n",
+ "#plan 2\n",
+ "P0=-1000.0;#in Rs\n",
+ "P=4000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n1=10.0;#in years\n",
+ "n2=15.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW2=P0+P*1/((1+i/100)**n1)++P*1/((1+i/100)**n2);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of Plan-2 in RS.\",round(PW2,3);\n",
+ "print \"The present worth of Plan-1 is more than that of Plan-1. Therefore plan 1 is the best plan from the investors point of view.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth of Plan-1 in RS. 1192.355\n",
+ "The present worth of Plan-2 in RS. 1018.678\n",
+ "The present worth of Plan-1 is more than that of Plan-1. Therefore plan 1 is the best plan from the investors point of view.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6,Page 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#plan 1\n",
+ "P0=-10000.0;#in Rs\n",
+ "P=800000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=20.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "PW1=P0*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n)+P*1/((1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of Plan-1 in RS. \",round(PW1,3);\n",
+ "\n",
+ "#plan 2\n",
+ "P0=-10000.0;#in Rs\n",
+ "P=1500000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n1=20.0;#in years\n",
+ "n2=25.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "PW2=P0*(((1+i/100)**n1)-1)/((i/100)*(1+i/100)**n1)+P*1/((1+i/100)**n2);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of Plan-2 in RS. \",round(PW2,3);\n",
+ "print \"The present worth of Innovative Investment Ltd. Plan is more than that of Novel Investment Ltd. Plan. Therefore Innovative Investment Ltd. Plan is the best plan from the investors point of view.\";\n",
+ "print \"answer is bit different due to approximation error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth of Plan-1 in RS. 8238.976\n",
+ "The present worth of Plan-2 in RS. 13540.524\n",
+ "The present worth of Innovative Investment Ltd. Plan is more than that of Novel Investment Ltd. Plan. Therefore Innovative Investment Ltd. Plan is the best plan from the investors point of view.\n",
+ "answer is bit different due to approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 Page 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "P=12000.0;#in Rs\n",
+ "A1=10000.0;#in Rs\n",
+ "G=1000.0;#in Rs\n",
+ "i=18.0;#in % per annum\n",
+ "n=10.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "PW=-P+(A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100))*(((1+i/100)**n)-1)/((i/100)*(1+i/100)**n);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The present worth of the small business in RS. \",round(PW,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The present worth of the small business in RS. 47293.316\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter5.ipynb b/Engineering_Economics/Chapter5.ipynb
new file mode 100755
index 00000000..398e418d
--- /dev/null
+++ b/Engineering_Economics/Chapter5.ipynb
@@ -0,0 +1,352 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e388f34dd67bfe5948d20d52a601f7e8e53b92aa882e9a754ed91176569417c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Future Worth Method"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1,Page 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#alternate A\n",
+ "P=5000000.0;#in Rs\n",
+ "A=2000000.0;#in Rs\n",
+ "i=18.0;#in % per annum\n",
+ "n=4.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_A=(-P*(1+i/100)**n)+(A*(((1+i/100)**n)-1)/(i/100));#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative A in RS. \",round(FW_A,3);\n",
+ "\n",
+ "#alternate B\n",
+ "P=4500000.0;#in Rs\n",
+ "A=1800000.0;#in Rs\n",
+ "i=18.0;#in % per annum\n",
+ "n=4.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_B=(-P*(1+i/100)**n)+(A*(((1+i/100)**n)-1)/(i/100));#in RS\n",
+ "print \"The future worth amount of alternative B in RS. \", round(FW_B,3);\n",
+ "print \"The future worth of alternative A is greater than that of alternative B. Thus, alternative A should be selected.\";\n",
+ "print \" Calculation in the book is not accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The future worth amount of alternative A in RS. 736975.2\n",
+ "The future worth amount of alternative B in RS. 663277.68\n",
+ "The future worth of alternative A is greater than that of alternative B. Thus, alternative A should be selected.\n",
+ " Calculation in the book is not accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2,Page 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#alternate 1\n",
+ "FC=2000000.0;#in Rs\n",
+ "AI=800000.0;#in Rs\n",
+ "ATax=80000.0;#in Rs\n",
+ "NetAI=AI-ATax;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=20.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_1=(-FC*(1+i/100)**n)+(NetAI*(((1+i/100)**n)-1)/(i/100));#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative 1 in RS. : \", round(FW_1,3)\n",
+ "\n",
+ "#alternative2\n",
+ "FC=3600000.0;#in Rs\n",
+ "AI=980000.0;#in Rs\n",
+ "ATax=150000.0;#in Rs\n",
+ "NetAI=AI-ATax;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=20.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_2=(-FC*(1+i/100)**n)+(NetAI*(((1+i/100)**n)-1)/(i/100));#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative 2 in RS.\",round(FW_2,3)\n",
+ "print\"The future worth of alternative 1 is greater than that of alternative 2. Thus, building the gas station is the best alternative.\";\n",
+ "print \" Calculation in the book is not accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The future worth amount of alternative 1 in RS. : 32585172.373\n",
+ "The future worth amount of alternative 2 in RS. 25076872.093\n",
+ "The future worth of alternative 1 is greater than that of alternative 2. Thus, building the gas station is the best alternative.\n",
+ " Calculation in the book is not accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3,Page 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#part a\n",
+ "#alternative 1\n",
+ "P=500000.0;#in Rs\n",
+ "A1=50000.0;#in Rs\n",
+ "G=50000.0;#in Rs\n",
+ "i=8.0;#in % per annum\n",
+ "n=6.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_1=(-P*(1+i/100)**n)+(A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100))*(((1+i/100)**n)-1)/(i/100);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative 1 in RS. \", round(FW_1,3);\n",
+ "\n",
+ "#alternative 2\n",
+ "P=700000.0;#in Rs\n",
+ "A1=70000.0;#in Rs\n",
+ "G=70000.0;#in Rs\n",
+ "i=8.0;#in % per annum\n",
+ "n=6.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_2=(-P*(1+i/100)**n)+(A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100))*(((1+i/100)**n)-1)/(i/100);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative 2 in RS. \", round(FW_2,3);\n",
+ "print \"The future worth of alternative 2 is greater than that of alternative 1. Thus, alternative 2 must be selected.\";\n",
+ "\n",
+ "\n",
+ "#part b\n",
+ "#alternative a\n",
+ "P=500000.0;#in Rs\n",
+ "A1=50000.0;#in Rs\n",
+ "G=50000.0;#in Rs\n",
+ "i=9.0;#in % per annum\n",
+ "n=6.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_1=(-P*(1+i/100)**n)+(A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100))*(((1+i/100)**n)-1)/(i/100);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative 1 in RS. \", round(FW_1,3);\n",
+ "\n",
+ "#altenative 2\n",
+ "P=700000.0;#in Rs\n",
+ "A1=70000.0;#in Rs\n",
+ "G=70000.0;#in Rs\n",
+ "i=9.0;#in % per annum\n",
+ "n=6.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_1=(-P*(1+i/100)**n)+(A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100))*(((1+i/100)**n)-1)/(i/100);#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of alternative 2 in RS.\", round(FW_1,3);\n",
+ "print \"The negative sign of alternatives future worth indicates that alternative 2 incurs loss. Thus, none of the two alternatives should be selected. \";\n",
+ "print \" Calculation in the book is not accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The future worth amount of alternative 1 in RS. 408314.938\n",
+ "The future worth amount of alternative 2 in RS. 571640.914\n",
+ "The future worth of alternative 2 is greater than that of alternative 1. Thus, alternative 2 must be selected.\n",
+ "The future worth amount of alternative 1 in RS. 383913.653\n",
+ "The future worth amount of alternative 2 in RS. 537479.115\n",
+ "The negative sign of alternatives future worth indicates that alternative 2 incurs loss. Thus, none of the two alternatives should be selected. \n",
+ " Calculation in the book is not accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#alternative 1\n",
+ "P=8000000.0;#in Rs\n",
+ "A=800000.0;#in Rs\n",
+ "i=20.0;#in % per annum\n",
+ "n=12.0;#in years\n",
+ "Salvage=500000;#in Rs\n",
+ "\n",
+ "#calcualtion\n",
+ "FW1=P*(1+i/100)**n+A*(((1+i/100)**n)-1)/(i/100)-Salvage;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth for this alternative in RS.\",round(FW1,3)\n",
+ "\n",
+ "#alternative 2\n",
+ "P=7000000.0;#in Rs\n",
+ "A=900000.0;#in Rs\n",
+ "i=20.0;#in % per annum\n",
+ "n=12.0;#in years\n",
+ "Salvage=400000;#in Rs\n",
+ "\n",
+ "#calculation\n",
+ "FW2=P*(1+i/100)**n+A*(((1+i/100)**n)-1)/(i/100)-Salvage;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth for this alternative in RS.\",round(FW2,3);\n",
+ "\n",
+ "#alternative 3\n",
+ "P=9000000.0;#in Rs\n",
+ "A=850000.0;#in Rs\n",
+ "i=20.0;#in % per annum\n",
+ "n=12.0;#in years\n",
+ "Salvage=700000;#in Rs\n",
+ "\n",
+ "#calculation\n",
+ "FW3=P*(1+i/100)**n+A*(((1+i/100)**n)-1)/(i/100)-Salvage;#in RS\n",
+ "\n",
+ "print \"The future worth for this alternative in RS. \",round(FW3,3)\n",
+ "print \"The future worth of alternative 2 is less than that of other two alternatives. Thus, Ms. Krishna castings should buy the annealing furnace from manufacturer 2.\";\n",
+ "print \" Calculation in the book is not accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The future worth for this alternative in RS. 102493205.379\n",
+ "The future worth for this alternative in RS. 97635155.155\n",
+ "The future worth for this alternative in RS. 113188330.939\n",
+ "The future worth of alternative 2 is less than that of other two alternatives. Thus, Ms. Krishna castings should buy the annealing furnace from manufacturer 2.\n",
+ " Calculation in the book is not accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "#Machine A\n",
+ "P=400000.0;#in Rs\n",
+ "A=40000.0;#in Rs\n",
+ "S=200000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=4.0#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_A=(P*(1+i/100)**n)+(A*(((1+i/100)**n)-1)/(i/100))-S;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of Machine A in RS. \",round(FW_A,3);\n",
+ "\n",
+ "#Machine B\n",
+ "P=800000.0;#in Rs\n",
+ "A=0.0;#in Rs\n",
+ "S=550000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=4.0#in years\n",
+ "\n",
+ "#calculation\n",
+ "FW_B=(P*(1+i/100)**n)+(A*(((1+i/100)**n)-1)/(i/100))-S;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The future worth amount of Machine B in RS. \",round(FW_B,3);\n",
+ "print \"The future worth of Machine A is less than that of Machine B. Thus, Machine A should be selected.\";\n",
+ "print \" Calculation in the book is not accurate\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The future worth amount of Machine A in RS. 620580.864\n",
+ "The future worth amount of Machine B in RS. 708815.488\n",
+ "The future worth of Machine A is less than that of Machine B. Thus, Machine A should be selected.\n",
+ " Calculation in the book is not accurate\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter6.ipynb b/Engineering_Economics/Chapter6.ipynb
new file mode 100755
index 00000000..c0d35ab9
--- /dev/null
+++ b/Engineering_Economics/Chapter6.ipynb
@@ -0,0 +1,230 @@
+{
+ "metadata": {
+ "name": "EE-6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Annual Equivalent Method"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.1 Page 70"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nrun=20000.0; #km\nkmperlitre=9; #kmpl\ncost=21;\nG=2222.20;#in Rs.\ni=18.0;#in % per annum\nn=4.0;#in years\n\n#calculation\ncon=run/kmperlitre;#consumption\nA1=con*cost;\nA=A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100) ;\n\n#result\nprint \"Annual equal amount spending for petrol in Rs. : \",round(A,3);\nprint \"This amoount is less than the annual rental value of Rs. 60000. Therefore, the company should continue to provide its own car to its executive. \";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Annual equal amount spending for petrol in Rs. : 49543.741\nThis amoount is less than the annual rental value of Rs. 60000. Therefore, the company should continue to provide its own car to its executive. \n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.2 Page 71"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternative 1\nP=500000.0;#in Rs\nA=200000.0;#in Rs\ni=20.0;#in % per annum\nn=15.0;#in years\n\n#calcultion\nAE_1=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+A;#in RS\n\n#result\nprint \"The Annual equivalent cost of alternative 1 in RS. : \",round(AE_1,3);\n\n#alternative 2\nP=400000.0;#in Rs\nA=300000.0;#in Rs\ni=20.0;#in % per annum\nn=15.0;#in years\n\n#calculation\nAE_2=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+A;#in RS\n\n#result\nprint \"The Annual equivalent cost of alternative 2 in RS. : \",round(AE_2,3);\n\n#alternative 3\nP=600000.0;#in Rs\nA=150000.0;#in Rs\ni=20.0;#in % per annum\nn=15.0;#in years\n\n#calculation\nAE_3=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+A;#in RS\n\n#result\nprint \"The Annual equivalent cost of alternative 3 in RS. : \",round(AE_3,3);\nprint\"The annual equivalent cost of manufacturer 3 is less than that of other two. Therefore, company should buy advanced machine centre from manufacturer 3. \";\nprint \" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Annual equivalent cost of alternative 1 in RS. : 306941.06\nThe Annual equivalent cost of alternative 2 in RS. : 385552.848\nThe Annual equivalent cost of alternative 3 in RS. : 278329.272\nThe annual equivalent cost of manufacturer 3 is less than that of other two. Therefore, company should buy advanced machine centre from manufacturer 3. \n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.3 Page 73"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternative a\nP=150000.0;#in Rs\nA=60000.0;#in Rs\nS=15000.0;#in Rs\ni=25.0;#in % per annum\nn=5.0;#in years\n\n#calculation\nAE_A=-P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+A+S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent revenue of alternative A in RS. : \",round(AE_A,3)\n\n#alternative b\nP=175000.0;#in Rs\nA=70000.0;#in Rs\nS=35000.0;#in Rs\ni=25.0;#in % per annum\nn=5.0;#in years\n\n#calculation\nAE_B=-P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+A+S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent revenue of alternative B in RS. : \",round(AE_B,3)\nprint \"The annual equivalent net return of alternative B is more than that of alternative A. Thus the company should select alternative A\";\nprint \" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Annual equivalent revenue of alternative A in RS. : 6050.69\nThe Annual equivalent revenue of alternative B in RS. : 9191.456\nThe annual equivalent net return of alternative B is more than that of alternative A. Thus the company should select alternative A\n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.4 Page 75"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#machine X\nP=150000.0;#in Rs\nA=0.0;#in Rs\nS=0.0;#in Rs\ni=15.0;#in % per annum\nn=12.0;#in years\n\n#calcualtion\nAE_X=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost of machine X in RS. : \",round(AE_X,3);\n\n#machine Y\nP=240000.0;#in Rs\nA=4500.0;#in Rs\nS=60000.0;#in Rs\ni=15.0;#in % per annum\nn=12.0;#in years\n\n#calcualtion\nAE_Y=P*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost of machine Y in RS. : \",round(AE_Y,3);\nprint \"The annual equivalent cost of machine X is less than that of machine Y.So machine X is more cost effective machine. \";\nprint\" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Annual equivalent cost of machine X in RS. : 27672.116\nThe Annual equivalent cost of machine Y in RS. : 44275.386\nThe annual equivalent cost of machine X is less than that of machine Y.So machine X is more cost effective machine. \n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.5 Page 76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initialisation of variable\n#alternative 1\nFC=15*150000.0;#in Rs\nMC=15*6000.0;#in Rs\nPL=15*15000.0;#in Rs\n\n#calculation\nMCPL=MC+PL;#in Rs\nS=15*90000.0;#in Rs\ni=15.0;#in % per annum\nn=15.0;#in years\nAE1=FC*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+MCPL-S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost for this alternative in RS. \",round(AE1,3);\n\n#alternative 2\nFC=5*750000.0;#in Rs\nMC=5*12000.0;#in Rs\nPL=5*15000.0;#in Rs\nMCPL=MC+PL;#in Rs\nS=5*150000.0;#in Rs\ni=15.0;#in % per annum\nn=15.0;#in years\n\n#calcualtion\nAE2=FC*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+MCPL-S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost for this alternative in RS. \",round(AE2,3);\nprint \"The annual equivalent cost of alternative 1 is less than that of alternative 2. Therefore, select the route around the lake for laying the power line.\";\nprint \" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Annual equivalent cost for this alternative in RS. 671415.347\nThe Annual equivalent cost for this alternative in RS. 760551.158\nThe annual equivalent cost of alternative 1 is less than that of alternative 2. Therefore, select the route around the lake for laying the power line.\n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.6 Page 78"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternative 1\nVC=390000.0;#in Rs\nLpY=60000.0/30;#in litres\nFcY=2000.0*8;#in Rs\nAllExp=FcY+9000.0+15000.0;#in Rs\nS=60000.0;#in Rs\ni=20.0;#in % per annum\nn=4.0;#in years\n\n#calcualtion\nAE1=VC*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+AllExp-S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost for this alternative in RS. \",round(AE1,3);\n\n#alternative 2\nVC=360000.0;#in Rs\nLpY=60000.0/20;#in litres\nFcY=3000.0*20;#in Rs\nAllExp=FcY+6000.0+15000.0;#in Rs\nS=90000.0;#in Rs\ni=20.0;#in % per annum\nn=3.0;#in years\n\n#calculation\nAE2=VC*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+AllExp-S*(i/100)/(((1+i/100)**n)-1);# in RS\n\n#result\nprint \"The Annual equivalent cost for this alternative in RS. \",round(AE2,3);\nprint \"The annual equivalent cost of purchase and operation of cars with diesel engine is less than that of cars with petrol engine. Therefore, the taxy company should buy cars with diesel engine.\";\nprint \" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Annual equivalent cost for this alternative in RS. 179475.41\nThe Annual equivalent cost for this alternative in RS. 227175.824\nThe annual equivalent cost of purchase and operation of cars with diesel engine is less than that of cars with petrol engine. Therefore, the taxy company should buy cars with diesel engine.\n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.7 Page 79"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternative 1\nPprice=390000.0;#in Rs\nn=3.0;#in years\nn=n*12;#in months\nS=120000.0;#in Rs\ni=12.0;#in % nominal rate(Compounded anually)\ni=i/12.0;#in % compounded monthly\n\n#calculation\nME1=Pprice*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)-S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Monthly equivalent cost for this alternative in RS. \",round(ME1,3);\n\n#Alternative 2 \nLeaseAmount=10500.0;#in Rs\n\n#calcualtion\nMonthlyEquiCost=LeaseAmount;#in Rs.\n\n#result\nprint\"The Monthly equivalent cost for this alternative in RS. \",round(MonthlyEquiCost,3);\nprint\"The monthly equivalent cost of alternative 1 is less than that of alternative 2. hence the salesman should purchase the car for cash.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Monthly equivalent cost for this alternative in RS. 10167.864\nThe Monthly equivalent cost for this alternative in RS. 10500.0\nThe monthly equivalent cost of alternative 1 is less than that of alternative 2. hence the salesman should purchase the car for cash.\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.8 Page 81"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#machine A\nIC=300000.0;#in Rs\nn=4.0;#in years\nS=200000.0;#in Rs\nAM=30000.0;#in Rs\ni=15.0;#in % per annum\n\n#calcualtion\nAE_A=IC*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+AM-S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost of machine X in RS. \",round(AE_A,3);\n\n#Machine B :\nIC=600000.0;#in Rs\nn=4.0;#in years\nS=300000.0;#in Rs\nAM=0.0;#in Rs\ni=15.0;#in % per annum\n\n#calcualtion\nAE_B=IC*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+AM-S*(i/100)/(((1+i/100)**n)-1);#in RS\n\n#result\nprint \"The Annual equivalent cost of machine X in RS. \",round(AE_B,3);\nprint \"The annual equivalent cost of machine A is less than that of machine B.So machine A is more cost effective machine. It is advised to buy machine A \";\nprint \" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Annual equivalent cost of machine X in RS. 95026.535\nThe Annual equivalent cost of machine X in RS. 150079.605\nThe annual equivalent cost of machine A is less than that of machine B.So machine A is more cost effective machine. It is advised to buy machine A \n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.9 Page 83"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternative 1\nDP=60000.0;#in Rs\nP1=15000.0;#in Rs\nn=1.0;#in years\ni=12.0;#in % Compounded anually\n\n#calculation\nPW1=DP+P1*1/((1+i/100)**n);#in RS\nn=4.0;#in years\nAE1=PW1*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)\n\n#result\nprint \"The annual equivalent for this alternative in RS. \",round(PW1,3);\nprint \"The annual equivalent for this alternative in RS.\",round(AE1,3);\n\n#alternative 2\nP4y=90000.0;#in Rs\nAE2=P4y*(i/100)/(((1+i/100)**n)-1);#in Rs.\n\n#result\nprint \"The annual equivalent for this alternative in RS. \",round(AE2,3);\nprint \"The annual equivalent cost of alternative 2 is less than that of alternative 1. Hence, Joshi Lakshimi should select alternative 2 for purchasing the home equipment.\";\nprint \" Calculation in the book is not accurate.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The annual equivalent for this alternative in RS. 73392.857\nThe annual equivalent for this alternative in RS. 24163.456\nThe annual equivalent for this alternative in RS. 18831.099\nThe annual equivalent cost of alternative 2 is less than that of alternative 1. Hence, Joshi Lakshimi should select alternative 2 for purchasing the home equipment.\n Calculation in the book is not accurate.\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.10 Page 85"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initation of variable\n#Brand C : \nw=12.0;#in months\nP=1200.0;#in Rs/tyre\ni=12.0;#in % nominal rate(Compounded anually)\ni=i/12.0;#in % compounded monthly\n\n#calculation\nAE_C=P*((i/100)*(1+i/100)**w)/(((1+i/100)**w)-1);#in RS\n\n#result\nprint \"The annual equivalent for this brand in RS. \",round(AE_C,3);\n\n#Brand C : \nw=24.0;#in months\nP=1800.0;#in Rs/tyre\ni=12.0;#in % nominal rate(Compounded anually)\ni=i/12.0;#in % compounded monthly\n\n#calculation\nAE_C=P*((i/100)*(1+i/100)**w)/(((1+i/100)**w)-1);#in RS\n\n#result\nprint \"The annual equivalent for this brand in RS. \",round(AE_C,3);\n\n#Brand C : \nw=36.0;#in months\nP=2100.0;#in Rs/tyre\ni=12.0;#in % nominal rate(Compounded anually)\ni=i/12.0;#in % compounded monthly\n\n#calculation\nAE_C=P*((i/100)*(1+i/100)**w)/(((1+i/100)**w)-1);#in RS\n\n#result\nprint \"The annual equivalent for this brand in RS. \",round(AE_C,3);\n\n#Brand D : \nw=48.0;#in months\nP=2700.0;#in Rs/tyre\ni=12.0;#in % nominal rate(Compounded anually)\ni=i/12.0;#in % compounded monthly\n\n#calculation\nAE_D=P*((i/100)*(1+i/100)**w)/(((1+i/100)**w)-1);#in RS\n\n#result\nprint \"The annual equivalent for this brand in RS. \",round(AE_D,3);\nprint \"Here common multiple lives of tyres is considered. This is 144 months. Therefore, the comparison is nade on 144 months basis.\";\nprint \"The annual equivalent cost of Brand C is less than that of other brands. hence, it should be used in the vehicles of the trucking company. It should be replaced for times during the 144 months period.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The annual equivalent for this brand in RS. 106.619\nThe annual equivalent for this brand in RS. 84.732\nThe annual equivalent for this brand in RS. 69.75\nThe annual equivalent for this brand in RS. 71.101\nHere common multiple lives of tyres is considered. This is 144 months. Therefore, the comparison is nade on 144 months basis.\nThe annual equivalent cost of Brand C is less than that of other brands. hence, it should be used in the vehicles of the trucking company. It should be replaced for times during the 144 months period.\n"
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter7.ipynb b/Engineering_Economics/Chapter7.ipynb
new file mode 100755
index 00000000..827a806e
--- /dev/null
+++ b/Engineering_Economics/Chapter7.ipynb
@@ -0,0 +1,125 @@
+{
+ "metadata": {
+ "name": "EE-7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Rate of Return Method"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.1 Page 89"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of vriable\nIi=100000.0;#in Rs\nAr=30000.0;#in Rs\nn=5.0;#in years\ni1=10.0;#in % per annum\n\n#calcualton\nPW1=-Ii+Ar*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#in RS\n\n#result\nprint \"The present worth for i=10% in RS. \",round(PW1,3);\n\n#calcualtion\ni2=15.0;#in % per annum\nPW2=-Ii+Ar*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#in RS\n\n#result\nprint \"The present worth for i=15% in RS. \",round(PW2,3);\n\n#calculation\ni3=18.0;#in % per annum\nPW3=-Ii+Ar*(((1+i3/100)**n)-1)/((i3/100)*(1+i3/100)**n);#in RS\ni=15+(PW2-0)*(i3-i2)/(PW2-PW3);#in Rs\n\n#result\nprint \"The present worth for i=18% in RS. \",round(PW3,3)\nprint \"Present worth for i=15% is suitable.\";\nprint \"Therefore, the rate of return for the new business in % per annum \",round(i,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The present worth for i=10% in RS. 13723.603\nThe present worth for i=15% in RS. 564.653\nThe present worth for i=18% in RS. -6184.869\nPresent worth for i=15% is suitable.\nTherefore, the rate of return for the new business in % per annum 15.251\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.2 Page 90"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nIo=2000000.0;#in Rs\nANP=350000.0;#in Rs\nS=0.0;#in Rs\nn=10.0;#in years\ni1=10.0;#in % per annum\n\n#calcualtion\nPW1=-Io+ANP*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#in RS\n\n#result\nprint \"The present worth for i=10% in RS. \",round(PW1,3);\n\n#calculation\ni2=12.0;#in % per annum\nPW2=-Io+ANP*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#in RS\ni=10+(PW1-0)*(i2-i1)/(PW1-PW2);#in Rs.\n\n#result\nprint \"The present worth for i=15% in RS. \",round(PW2,3);\nprint \"Present worth for i=10% is suitable.\";\nprint \"Therefore, the rate of return for the new business in % per annum \",round(i,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The present worth for i=10% in RS. 150598.487\nThe present worth for i=15% in RS. -22421.94\nPresent worth for i=10% is suitable.\nTherefore, the rate of return for the new business in % per annum 11.741\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.3 Page 91"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternate 1\nIo=150000.0;#in Rs\nAp=45570.0;#in Rs\nn=5.0;#in years\n\n#calculation\ni1=10.0;#in % per annum\nPW1=-Io+Ap*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#in RS\ni2=12.0;#in % per annum\nPW2=-Io+Ap*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#in RS\ni3=15.0;#in % per annum\nPW3=-Io+Ap*(((1+i3/100)**n)-1)/((i3/100)*(1+i3/100)**n);#in RS\ni4=18.0;#in % per annum\nPW4=-Io+Ap*(((1+i4/100)**n)-1)/((i4/100)*(1+i4/100)**n);#in RS\ni=i3+(PW3-0)*(i4-i3)/(PW3-PW4);#in Rs.\n\n#result\nprint \"The present worth for i=10% in RS. \",round(PW1,3);\nprint \"The present worth for i=12% in RS. \",round(PW2,3);\nprint \"The present worth for i=15% in RS. \",round(PW3,3);\nprint \"The present worth for i=18% in RS. \",round(PW4,3);\nprint\"Present worth for i=15% is suitable.\";\nprint \"Therefore, the rate of return of alternative in % per annum :\",round(i,3);\n\n#alternative 2\nIo=210000.0;#in Rs\nAp=58260.0;#in Rs\nn=5.0;#in years\ni1=12.0;#in % per annum\n\n#calcualtion\nPW1=-Io+Ap*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#in RS\ni2=13.0;#in % per annum\nPW2=-Io+Ap*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#in RS\ni=i1+(PW1-0)*(i2-i1)/(PW1-PW2);#in Rs.\n\n#result\nprint \"The present worth for i=12% in RS. \",round(PW1,3);\nprint \"The present worth for i=13% in RS. \",round(PW2,3);\nprint\"Present worth for i=12% is suitable.\";\nprint \"Therefore, the rate of return of alternative in % per annum :\",round(i,3);\n\n#Alternative 3:\nIo=255000.0;#in Rs\nAp=69000.0;#in Rs\nn=5.0;#in years\ni1=11.0;#in % per annum\nPW1=-Io+Ap*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#in RS\ni2=12.0;#in % per annum\nPW2=-Io+Ap*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#in RS\ni=i1+(PW1-0)*(i2-i1)/(PW1-PW2);#in Rs.\n\n#result\nprint \"The present worth for i=11% in RS. \",round(PW1,3);\nprint \"The present worth for i=12% in RS. \",round(PW2,3);\nprint\"Present worth for i=12% is suitable.\";\nprint \"Therefore, the rate of return of alternative in % per annum :\",round(i,3);\nprint\"It is clear that rate of return for alternative 3v is less than the minimum attractive rate of return of 12 %. So it should not be considered for comparison. the remaining two alternatives are qualified for consideration. Among the alternatives 1 and 2, the rate of return of 1 is greater than that of 2. hence,alternative 1 should be selected. \";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The present worth for i=10% in RS. 22746.153\nThe present worth for i=12% in RS. 14269.652\nThe present worth for i=15% in RS. 2757.708\nThe present worth for i=18% in RS. -7494.817\nPresent worth for i=15% is suitable.\nTherefore, the rate of return of alternative in % per annum : 15.807\nThe present worth for i=12% in RS. 14.262\nThe present worth for i=13% in RS. -5086.107\nPresent worth for i=12% is suitable.\nTherefore, the rate of return of alternative in % per annum : 12.003\nThe present worth for i=11% in RS. 16.894\nThe present worth for i=12% in RS. -6270.442\nPresent worth for i=12% is suitable.\nTherefore, the rate of return of alternative in % per annum : 11.003\nIt is clear that rate of return for alternative 3v is less than the minimum attractive rate of return of 12 %. So it should not be considered for comparison. the remaining two alternatives are qualified for consideration. Among the alternatives 1 and 2, the rate of return of 1 is greater than that of 2. hence,alternative 1 should be selected. \n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.4 Page 94"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nA0=-1275.0;#in Rs\nA1=150.0;#in Rs\nG=150.0;#in Rs\ni=10.0;#in % per annum\nn=5.0;#in years\n\n#calcualtion\nA=A1+G*(((1+i/100)**n)-i*n/100-1)/(((i/100)*(1+i/100)**n)-i/100) ;#in RS\ni1=10.0;#in % per annum\nPW1=A0+(A1+G*(((1+i1/100)**n)-i1*n/100-1)/(((i1/100)*(1+i1/100)**n)-i1/100))*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#i1n Rs.\ni2=12.0;#i2n % per annum\nPW2=A0+(A1+G*(((1+i2/100)**n)-i2*n/100-1)/(((i2/100)*(1+i2/100)**n)-i2/100))*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#i2n Rs.\ni3=15.0;#i3n % per annum\nPW3=A0+(A1+G*(((1+i3/100)**n)-i3*n/100-1)/(((i3/100)*(1+i3/100)**n)-i3/100))*(((1+i3/100)**n)-1)/((i3/100)*(1+i3/100)**n);#i3n Rs.\ni4=18.0;#in % per annum\nPW4=A0+(A1+G*(((1+i4/100)**n)-i4*n/100-1)/(((i4/100)*(1+i4/100)**n)-i4/100))*(((1+i4/100)**n)-1)/((i4/100)*(1+i4/100)**n);#in Rs.\ni=i3+(PW3-0)*(i4-i3)/(PW3-PW4);#in Rs.\n\n#result\nprint \"The annual equivalent of the positive cash flows in RS. : \",round(A,3);\nprint \"PW(10)\",round(PW1,3);\nprint \"PW(12)\",round(PW2,3);\nprint \"PW(15)\",round(PW3,3);\nprint \"PW(18)\",round(PW1,4);\nprint\"Present worth for i=15% is suitable.\";\nprint \"Therefore, the rate of return for the given cash flow in % per annum :\",round(i,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The annual equivalent of the positive cash flows in RS. : 421.519\nPW(10) 322.888\nPW(12) 225.269\nPW(15) 94.095\nPW(18) 322.8882\nPresent worth for i=15% is suitable.\nTherefore, the rate of return for the given cash flow in % per annum : 17.448\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.5 Page 95"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#alternative 1\nIo=500000.0;#in Rs\nAr=170000.0;#in Rs\nn=5.0;#in years\ni1=15.0;#in % per annum\n\n#calculation\nPW1=-Io+Ar*(((1+i1/100)**n)-1)/((i1/100)*(1+i1/100)**n);#in RS\ni2=17.0;#in % per annum\nPW2=-Io+Ar*(((1+i2/100)**n)-1)/((i2/100)*(1+i2/100)**n);#in RS\ni3=20.0;#in % per annum\nPW3=-Io+Ar*(((1+i3/100)**n)-1)/((i3/100)*(1+i3/100)**n);#in RS\ni4=22.0;#in % per annum\nPW4=-Io+Ar*(((1+i4/100)**n)-1)/((i4/100)*(1+i4/100)**n);#in RS\ni=i3+(PW3-0)*(i4-i3)/(PW3-PW4);#in Rs.\n\n#result\nprint \"The present worth(PW(15%)) for i=10% in RS. \",round(PW1,3);\nprint \"The present worth(PW(17%)) for i=10% in RS. \",round(PW2,3);\nprint \"The present worth(PW(20%)) for i=10% in RS. \",round(PW3,3);\nprint \"The present worth(PW(22%)) for i=10% in RS. \",round(PW4,3);\nprint \"Present worth for i=15% is suitable.\";\nprint \"Therefore, the rate of return of alternative 1 in % per annum \",round(i,3);\n\n#altenative 2\nIo=800000.0;#in Rs\nAr=270000.0;#in Rs\nn=5.0;#in years\ni3=20.0;#in % per annum\n\n#calculation\nPW3=-Io+Ar*(((1+i3/100)**n)-1)/((i3/100)*(1+i3/100)**n);#in RS\ni4=22.0;#in % per annum\nPW4=-Io+Ar*(((1+i4/100)**n)-1)/((i4/100)*(1+i4/100)**n);#in RS\ni=i3+(PW3-0)*(i4-i3)/(PW3-PW4);#in Rs.\n\n#result\nprint \"The present worth(PW(20%)) for i=10% in RS. \",round(PW3,3);\nprint \"The present worth(PW(22%)) for i=10% in RS. \",round(PW4,3);\nprint \"Present worth for i=15% is suitable.\";\nprint \"Therefore, the rate of return of alternative 2 in % per annum \",round(i,3);\nprint \"Since the rate of return of alternative 1 is greater than that of the alternative 2, select alternative 1. \";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The present worth(PW(15%)) for i=10% in RS. 69866.367\nThe present worth(PW(17%)) for i=10% in RS. 43888.848\nThe present worth(PW(20%)) for i=10% in RS. 8404.064\nThe present worth(PW(22%)) for i=10% in RS. -13181.241\nPresent worth for i=15% is suitable.\nTherefore, the rate of return of alternative 1 in % per annum 20.779\nThe present worth(PW(20%)) for i=10% in RS. 7465.278\nThe present worth(PW(22%)) for i=10% in RS. -26817.264\nPresent worth for i=15% is suitable.\nTherefore, the rate of return of alternative 2 in % per annum 20.436\nSince the rate of return of alternative 1 is greater than that of the alternative 2, select alternative 1. \n"
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter8.ipynb b/Engineering_Economics/Chapter8.ipynb
new file mode 100755
index 00000000..de307e62
--- /dev/null
+++ b/Engineering_Economics/Chapter8.ipynb
@@ -0,0 +1,619 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:44663c03d7c23760034bea6db3765d8b79a48144d6b54769443d3f295fd0b9f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Replacement and Maintenance Analysis"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "FC=4000.0;#in Rs.\n",
+ "i=0.0;#in % per annum\n",
+ "MC1=0;#in Rs.\n",
+ "print \"Tabulation to determine economic life : \";\n",
+ "print\"End of Maintenance Summation of Avg cost of Avg FC if Avg total\";\n",
+ "print\" year cost at end maintenance maintenance replaced at cost through\";\n",
+ "print\" of year costs through year year given year given\";\n",
+ "print\" A B(Rs.) C(Rs.) D(Rs.) E(Rs.) F(Rs.)\";\n",
+ "print\" 1 0 0 0 4000 4000\";\n",
+ "print\" 2 200 200 100 2000 2100\";\n",
+ "print\" 3 400 600 200 1333.33 1533.33\";\n",
+ "print\" 4 600 1200 300 1000 1300\";\n",
+ "print\" 5 800 2000 400 800 1200\";\n",
+ "print\" 6 1000 3000 500 666.67 1166.67\";\n",
+ "print\" 7 1200 4200 600 571.43 1171.43\";\n",
+ "print\"Economic life of the machine : 6 years\";\n",
+ "print\"Column C summarizes the summation of maintenance costs for each replacement period. The value corresponding to any end of year in this column represents the total maintenance costs of using the equipment till the end of that year. It gives the Economic life of the machine : 6 years\";\n",
+ "\n",
+ "#When i=12%\n",
+ "i=12.0;#in % per annum\n",
+ "FC=4000.0;#in Rs.\n",
+ "print\"Tabulation to determine economic life : \";\n",
+ "print\"End of Maintenance P/F PW as of begin Summation of PW of A/P Annual equi\";\n",
+ "print\" year cost at end 12% of year of PW of cumulative 12% total cost\";\n",
+ "print\" of year n maintenance maintenance maintenance n of year\";\n",
+ "print\" A B(Rs.) C(Rs.) D(Rs.) E(Rs.) F(Rs.) G(rs.) H(rs.)\";\n",
+ "print\" 1 0 0.8929 0.00 0.00 4000.00 1.1200 4480.00\";\n",
+ "print\" 2 200 0.7972 159.44 159.44 4159.44 0.5917 2461.14\";\n",
+ "print\" 3 400 0.7118 284.72 444.16 4444.16 0.4163 1850.10\";\n",
+ "print\" 4 600 0.6355 381.30 825.46 4825.46 0.3292 1588.54\";\n",
+ "print\" 5 800 0.5674 453.92 1279.38 5279.38 0.2774 1464.50\";\n",
+ "print\" 6 1000 0.5066 506.60 1785.98 5785.98 0.2432 1407.15\";\n",
+ "print\" 7 1200 0.4524 542.88 2328.86 6328.86 0.2191 1386.65\";\n",
+ "print\" 8 1400 0.4039 565.46 2894.32 6894.32 0.2013 1387.83\";\n",
+ "print\" 9 1600 0.3606 576.96 3471.28 7471.28 0.1877 1402.36\";\n",
+ "print\" 10 1800 0.3220 579.60 4050.88 8050.88 0.1770 1425.00\";\n",
+ "print\"Economic life of the machine : 7 years\";\n",
+ "print\"For this problem, the annual equivalent total cost is minimum at the end of year 7. Therefore, the economic life of the equipment is 7 year.\";\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tabulation to determine economic life : \n",
+ "End of Maintenance Summation of Avg cost of Avg FC if Avg total\n",
+ " year cost at end maintenance maintenance replaced at cost through\n",
+ " of year costs through year year given year given\n",
+ " A B(Rs.) C(Rs.) D(Rs.) E(Rs.) F(Rs.)\n",
+ " 1 0 0 0 4000 4000\n",
+ " 2 200 200 100 2000 2100\n",
+ " 3 400 600 200 1333.33 1533.33\n",
+ " 4 600 1200 300 1000 1300\n",
+ " 5 800 2000 400 800 1200\n",
+ " 6 1000 3000 500 666.67 1166.67\n",
+ " 7 1200 4200 600 571.43 1171.43\n",
+ "Economic life of the machine : 6 years\n",
+ "Column C summarizes the summation of maintenance costs for each replacement period. The value corresponding to any end of year in this column represents the total maintenance costs of using the equipment till the end of that year. It gives the Economic life of the machine : 6 years\n",
+ "Tabulation to determine economic life : \n",
+ "End of Maintenance P/F PW as of begin Summation of PW of A/P Annual equi\n",
+ " year cost at end 12% of year of PW of cumulative 12% total cost\n",
+ " of year n maintenance maintenance maintenance n of year\n",
+ " A B(Rs.) C(Rs.) D(Rs.) E(Rs.) F(Rs.) G(rs.) H(rs.)\n",
+ " 1 0 0.8929 0.00 0.00 4000.00 1.1200 4480.00\n",
+ " 2 200 0.7972 159.44 159.44 4159.44 0.5917 2461.14\n",
+ " 3 400 0.7118 284.72 444.16 4444.16 0.4163 1850.10\n",
+ " 4 600 0.6355 381.30 825.46 4825.46 0.3292 1588.54\n",
+ " 5 800 0.5674 453.92 1279.38 5279.38 0.2774 1464.50\n",
+ " 6 1000 0.5066 506.60 1785.98 5785.98 0.2432 1407.15\n",
+ " 7 1200 0.4524 542.88 2328.86 6328.86 0.2191 1386.65\n",
+ " 8 1400 0.4039 565.46 2894.32 6894.32 0.2013 1387.83\n",
+ " 9 1600 0.3606 576.96 3471.28 7471.28 0.1877 1402.36\n",
+ " 10 1800 0.3220 579.60 4050.88 8050.88 0.1770 1425.00\n",
+ "Economic life of the machine : 7 years\n",
+ "For this problem, the annual equivalent total cost is minimum at the end of year 7. Therefore, the economic life of the equipment is 7 year.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "FC=20000.0;#in Rs.\n",
+ "i=15.0;#in % per annum\n",
+ "\n",
+ "#result\n",
+ "print \"The other details are summarized in Table 8.3. It can be seen from the book.\";\n",
+ "print \"Total annual equivalent cost = [cumulative sum of PW as of beginning of year 1 of operation & maintenance cost + FC - PW as of beginning of year 1 of salvage]*(A/P,15,n)\";\n",
+ "print \"In column L, the annual equivalent cost is minimum for n=5. Therefore, the economic life of the machine is 5 years. \";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The other details are summarized in Table 8.3. It can be seen from the book.\n",
+ "Total annual equivalent cost = [cumulative sum of PW as of beginning of year 1 of operation & maintenance cost + FC - PW as of beginning of year 1 of salvage]*(A/P,15,n)\n",
+ "In column L, the annual equivalent cost is minimum for n=5. Therefore, the economic life of the machine is 5 years. \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Page 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "FC=20000.0;#in Rs.\n",
+ "i=15.0;#in % per annum\n",
+ "\n",
+ "#result\n",
+ "print \"The details are summarized in Table 8.4. It can be seen from the book.\";\n",
+ "print\"Total annual equivalent cost = [summation of PW of maintenance cost + FC]]*(A/P,15,n)\";\n",
+ "print\"(column E + Rs. 6000)* Column G\";\n",
+ "print \"Column F * Column G\";\n",
+ "print \"In column H, the minimum annual equivalent cost occurs when n=8. Therefore, the economic life of the machine B is 8 years. \";\n",
+ "print \"RESULT : Min annual equivalent cost for machine A : Rs. 2780\";\n",
+ "print \"Min annual equivalent cost for machine B : Rs. 3672.30\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The details are summarized in Table 8.4. It can be seen from the book.\n",
+ "Total annual equivalent cost = [summation of PW of maintenance cost + FC]]*(A/P,15,n)\n",
+ "(column E + Rs. 6000)* Column G\n",
+ "Column F * Column G\n",
+ "In column H, the minimum annual equivalent cost occurs when n=8. Therefore, the economic life of the machine B is 8 years. \n",
+ "RESULT : Min annual equivalent cost for machine A : Rs. 2780\n",
+ "Min annual equivalent cost for machine B : Rs. 3672.30\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#alternative 1\n",
+ "Pprice=200000.0;#in Rs\n",
+ "P=120000.0;#in Rs\n",
+ "F=25000.0;#in Rs\n",
+ "A=25000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=6.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "AE1=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(12%)) of this alternative in RS. \",round(AE1,3);\n",
+ "\n",
+ "#Alternative 2\n",
+ "P=150000.0;#in Rs\n",
+ "F=20000.0;#in Rs\n",
+ "A=14000.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=6.0;#in years\n",
+ "\n",
+ "#calcualion\n",
+ "AE2=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(12%)) of this alternative in RS. \",round(AE2,3);\n",
+ "print \"Since, The equivalent cost of new machine is less than that of present machine, it is suggested that the present machine be replaced with the new machine.\";\n",
+ "print \"answer is bit different due to approximation error\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equivalent cost(AE(12%)) of this alternative in RS. 51106.443\n",
+ "The annual equivalent cost(AE(12%)) of this alternative in RS. 48019.343\n",
+ "Since, The equivalent cost of new machine is less than that of present machine, it is suggested that the present machine be replaced with the new machine.\n",
+ "answer is bit different due to approximation error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initation of variable\n",
+ "#alternative 1\n",
+ "Pprice=50000.0;#in Rs\n",
+ "P=15000.0;#in Rs\n",
+ "F=8000.0;#in Rs\n",
+ "A=14000.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=5.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "AE1=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(15%)) of this alternative in RS. \",round(AE1,3);\n",
+ "\n",
+ "#Alternative 2\n",
+ "P=65000.0;#in Rs\n",
+ "F=13000.0;#in Rs\n",
+ "A=9000.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=20.0;#in years\n",
+ "\n",
+ "#calculation\n",
+ "AE2=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(15%)) of this alternative in RS. : \",round(AE2,3);\n",
+ "print \"Since, The equivalent cost of Old deisel Engine is less than that of New deisel Engine, it is suggested to keep the Old deisel Engine.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equivalent cost(AE(15%)) of this alternative in RS. 17288.209\n",
+ "The annual equivalent cost(AE(15%)) of this alternative in RS. : 19257.596\n",
+ "Since, The equivalent cost of Old deisel Engine is less than that of New deisel Engine, it is suggested to keep the Old deisel Engine.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#intiation of variable\n",
+ "P=660000.0;#in Rs\n",
+ "F=400000.0;#in Rs\n",
+ "A=96000.0;#in Rs\n",
+ "i=10.0;#in % per annum\n",
+ "n=5.0;#in years\n",
+ "\n",
+ "#caculation\n",
+ "AE1=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(10%)) of this alternative in RS. : \",round(AE1,3);\n",
+ "\n",
+ "#Alternative 2\n",
+ "P=150000.0;#in Rs\n",
+ "X=420000.0;#in Rs\n",
+ "i=10.0;#in % per annum\n",
+ "n=40.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "AE2=(P-X)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(10%)) of this alternative in RS. : \",round(AE2,3);\n",
+ "print \"Since, The equivalent cost of alternative 2 is less than that of alternative 1, it is suggested that alternative 2 should be selected.\";\n",
+ "print \" calculations in the book is not accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equivalent cost(AE(10%)) of this alternative in RS. : 204587.345\n",
+ "The annual equivalent cost(AE(10%)) of this alternative in RS. : 108389.958\n",
+ "Since, The equivalent cost of alternative 2 is less than that of alternative 1, it is suggested that alternative 2 should be selected.\n",
+ " calculations in the book is not accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "#alternative 1\n",
+ "P=10000.0;#in Rs\n",
+ "F=1500.0;#in Rs\n",
+ "A=1600.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=7.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "AE1=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(10%)) of 10 hp motor in RS. : \",round(AE1,3);\n",
+ "\n",
+ "#alternative 1 part 2\n",
+ "P=10000;#in Rs\n",
+ "F=800.0;#in Rs\n",
+ "A=1000.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=7.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "AE2=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(10%)) of 10 hp motor in RS. \",round(AE2,3);\n",
+ "print \"Total annual equivalent cost of alternative in Rs. : \",round(AE1+AE2,3);\n",
+ "\n",
+ "\n",
+ "#Alternative 2\n",
+ "P=35000.0;#in Rs\n",
+ "F=4000.0;#in Rs\n",
+ "A=500.0;#in Rs\n",
+ "i=15.0;#in % per annum\n",
+ "n=7.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "AE=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "\n",
+ "print \"The annual equivalent cost of alternative 2 in RS.\",round(AE,3);\n",
+ "print\"Since, The equivalent cost of alternative 1 is less than that of alternative 2, it is suggested that the present 10 hp motor be augmented with an additional 5 hp motor.\";\n",
+ "print \" calculations in the book is not accurate\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equivalent cost(AE(10%)) of 10 hp motor in RS. : 3868.063\n",
+ "The annual equivalent cost(AE(10%)) of 10 hp motor in RS. 3331.315\n",
+ "Total annual equivalent cost of alternative in Rs. : 7199.378\n",
+ "The annual equivalent cost of alternative 2 in RS. 8551.171\n",
+ "Since, The equivalent cost of alternative 1 is less than that of alternative 2, it is suggested that the present 10 hp motor be augmented with an additional 5 hp motor.\n",
+ " calculations in the book is not accurate\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "P=10000.0;#in Rs\n",
+ "F=4000.0;#in Rs\n",
+ "A=500.0;#in Rs\n",
+ "i=12.0;#in % per annum\n",
+ "n=4.0;#in years\n",
+ "\n",
+ "#calcualtion\n",
+ "AE=(P-F)*((i/100)*(1+i/100)**n)/(((1+i/100)**n)-1)+F*i/100+A;#in RS\n",
+ "X= (AE-1000*i/100-750)/0.3292+1000;\n",
+ "#result\n",
+ "print \"The annual equivalent cost(AE(15%)) of n in RSew machine : \",round(AE,3);\n",
+ "print \"The comparative use value of old machine is Rs.\", round(X,3), \"which is less than the price(Rs. 8000) offered by the company which is supplying the new machine in the event of replacing the old machine by nw machine. \";\n",
+ "print\"Therefore, it is advisable to replace the old machine with the new one.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The annual equivalent cost(AE(15%)) of n in RSew machine : 2955.407\n",
+ "The comparative use value of old machine is Rs. 7334.771 which is less than the price(Rs. 8000) offered by the company which is supplying the new machine in the event of replacing the old machine by nw machine. \n",
+ "Therefore, it is advisable to replace the old machine with the new one.\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Intiation of Variable\n",
+ "p1=0.07;#unitless\n",
+ "p2=0.11;#unitless\n",
+ "p3=0.12;#unitless\n",
+ "p4=0.18;#unitless\n",
+ "p5=0.21;#unitless\n",
+ "p6=0.20;#unitless\n",
+ "p7=0.11;#unitless\n",
+ "N0=100.0;#no. of transistors\n",
+ "\n",
+ "#calcualtion\n",
+ "N1=N0*p1;#no. of transistors\n",
+ "N2=N0*p2;#no. of transistors\n",
+ "N3=N0*p3;#no. of transistors\n",
+ "N4=N0*p4;#no. of transistors\n",
+ "N5=N0*p5;#no. of transistors\n",
+ "N6=N0*p6;#no. of transistors\n",
+ "N7=N0*p7;#no. of transistors\n",
+ "Life=0;#in weeks\n",
+ "p=[p1, p2, p3, p4, p5, p6, p7];#Unitless\n",
+ "for i in range (7): \n",
+ " Life=Life+(i+1)*p[i];\n",
+ "\n",
+ "#result\n",
+ "print \"Expected life of each transistor in weeks : \",round(Life,3)\n",
+ "print \"Average No. of failures/week : \",round(100/Life);\n",
+ "\n",
+ "#result of group replacement cost \n",
+ "print \"Cost of transistor when replaced simultaneously = Rs. 3\";\n",
+ "print \"Cost of transistor when replaced individually = Rs. 9\";\n",
+ "print \"The cost of group replacement policy for seeral replacement periods are summarized in Table 8.6. This table can be seen from the book.\";\n",
+ "print \"From table it is clear that the avg cost/week is minimum for the 4th week. Hence, the group replacement period is 4 weeks.\";\n",
+ "print \"Individual replacement cost/week = Rs. 207\";\n",
+ "print \"Minimum group replacement ost/week = Rs. 196.50\";\n",
+ "print \"Since the min group replacement cost/week is less than the individual replacement cost/week, the group replacement policy is the best, and hence all the transistors should be replaced in 4 weeks.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Expected life of each transistor in weeks : 4.39\n",
+ "Average No. of failures/week : 23.0\n",
+ "Cost of transistor when replaced simultaneously = Rs. 3\n",
+ "Cost of transistor when replaced individually = Rs. 9\n",
+ "The cost of group replacement policy for seeral replacement periods are summarized in Table 8.6. This table can be seen from the book.\n",
+ "From table it is clear that the avg cost/week is minimum for the 4th week. Hence, the group replacement period is 4 weeks.\n",
+ "Individual replacement cost/week = Rs. 207\n",
+ "Minimum group replacement ost/week = Rs. 196.50\n",
+ "Since the min group replacement cost/week is less than the individual replacement cost/week, the group replacement policy is the best, and hence all the transistors should be replaced in 4 weeks.\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "p1=(100.0-96)/100;#unitless\n",
+ "p2=(96.0-89)/100;#unitless\n",
+ "p3=(89.0-68)/100;#unitless\n",
+ "p4=(68.0-37)/100;#unitless\n",
+ "p5=(37.0-13)/100;#unitless\n",
+ "p6=(13.0-0)/100;#unitless\n",
+ "N0=1000.0;#no. of resistors\n",
+ "\n",
+ "#calculation\n",
+ "N1=N0*p1;#no. of resistors\n",
+ "N2=N0*p2+N1*p1;#no. of resistors\n",
+ "N3=N0*p3+N1*p2+N2*p1;#no. of resistors\n",
+ "N4=N0*p4+N1*p3+N2*p2+N3*p1;#no. of resistors\n",
+ "N5=N0*p5+N1*p4+N2*p3+N3*p2+N4*p1;#no. of resistors\n",
+ "N6=N0*p6+N1*p5+N2*p4+N3*p3+N4*p2+N5*p1 ;#no. of resistors\n",
+ "\n",
+ "Life=0;#in months\n",
+ "p=[p1, p2, p3, p4, p5, p6];#Unitless\n",
+ "for i in range (6): \n",
+ " Life=Life+(i+1)*p[i];\n",
+ "\n",
+ "#result\n",
+ "print \"Expected life of each transistor in weeks : \",round(Life,3)\n",
+ "print \"Average No. of failures/week : \",round(1000/Life);\n",
+ "\n",
+ "#result of group replacement cost\n",
+ "print \"Cost/transistor when replaced simultaneously = Rs. 4\";\n",
+ "print \"Cost/transistor when replaced individually = Rs. 10\";\n",
+ "print \"The cost of group replacement policy for several replacement periods are summarized in Table 8.7. This table can be seen from the book.\";\n",
+ "print \"From table it is clear that the avg cost/month is minimum for the 3rd month. Hence, the group replacement period is 3 months.\";\n",
+ "print \"Individual replacement cost/month = Rs. 2480\";\n",
+ "print \"Minimum group replacement ost/month = Rs. 2426.67\";\n",
+ "print \"Since the min group replacement cost/month is less than the individual replacement cost/month, the group replacement policy is the best, and hence all the transistors should be replaced in 3 months.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Expected life of each transistor in weeks : 4.03\n",
+ "Average No. of failures/week : 248.0\n",
+ "Cost/transistor when replaced simultaneously = Rs. 4\n",
+ "Cost/transistor when replaced individually = Rs. 10\n",
+ "The cost of group replacement policy for several replacement periods are summarized in Table 8.7. This table can be seen from the book.\n",
+ "From table it is clear that the avg cost/month is minimum for the 3rd month. Hence, the group replacement period is 3 months.\n",
+ "Individual replacement cost/month = Rs. 2480\n",
+ "Minimum group replacement ost/month = Rs. 2426.67\n",
+ "Since the min group replacement cost/month is less than the individual replacement cost/month, the group replacement policy is the best, and hence all the transistors should be replaced in 3 months.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/Chapter9.ipynb b/Engineering_Economics/Chapter9.ipynb
new file mode 100755
index 00000000..6221daa0
--- /dev/null
+++ b/Engineering_Economics/Chapter9.ipynb
@@ -0,0 +1,209 @@
+{
+ "metadata": {
+ "name": "EE-9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Depreciation"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.1 Page 127"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\neoy=[0,1,2,3,4,5,6,7,8]#end of year\nBt=100000;#book vakue\n\n#calcualtion\nDt=(P-F)/n;#in Rs.\n\n#result\nprint \"End of year Depreciation Book value\";\nfor i in range (8):\n B=Bt-i*Dt;\n print eoy[i],\" \",Dt,\" \", B,\" \";\n \n \n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "End of year Depreciation Book value\n0 10000.0 100000.0 \n1 10000.0 90000.0 \n2 10000.0 80000.0 \n3 10000.0 70000.0 \n4 10000.0 60000.0 \n5 10000.0 50000.0 \n6 10000.0 40000.0 \n7 10000.0 30000.0 \n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.2 Page 127"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\n\n#calculation\nD5=(P-F)/n;#in Rs.\nt=5;#in years\nBt=P-t*(P-F)/n;#in Rs\n\n#result\nprint \"D5 in Rs. : \",round(D5,3);\nprint \"(This is independent of the time period)\";\nprint \"B5 in Rs. : \",round(Bt,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "D5 in Rs. : 10000.0\n(This is independent of the time period)\nB5 in Rs. : 50000.0\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.3 Page 129"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\nk=0.2\neoy=[0,1,2,3,4,5,6,7,8]#end of year\nBt=[100000.0,0,0,0,0,0,0,0,0];#book vakue\nDt=[0.0,0,0,0,0,0,0,0,0];\n\n#result\nprint \"End of year Depreciation Book value\";\nprint \"0 0 100000\"\nfor i in xrange (1,9):\n Dt[i]=k*Bt[i-1];\n Bt[i]=Bt[i-1]-Dt[i];\n print eoy[i],\" \",Dt[i],\" \", Bt[i],\" \";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "End of year Depreciation Book value\n0 0 100000\n1 20000.0 80000.0 \n2 16000.0 64000.0 \n3 12800.0 51200.0 \n4 10240.0 40960.0 \n5 8192.0 32768.0 \n6 6553.6 26214.4 \n7 5242.88 20971.52 \n8 4194.304 16777.216 \n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.4 Page 128"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\nk=0.2\nt=5.0;#in years\n\n#calculation\nDt=k*(1-k)**(t-1)*P;#in Rs.\nBt=((1-k)**t)*P;#in Rs.\n\n#result\nprint \"D5 in Rs. : \",round(Dt,3);\nprint \"B5 in Rs. : \",round(Bt,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "D5 in Rs. : 8192.0\nB5 in Rs. : 32768.0\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.5 Page 129"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\nSum=n*(n+1)/2;#sum of the years\neoy=[0,1,2,3,4,5,6,7,8]#end of year\nBt=[100000.0,0,0,0,0,0,0,0,0];#book vakue\nDt=[0.0,0,0,0,0,0,0,0,0];\nrate=[0.0,0,0,0,0,0,0,0,0];\n\n#result\nprint \"End of year Depreciation Book value\";\nprint \"0 0 100000\"\nfor i in xrange (1,9):\n rate[i]=(8-i+1)/36.0;\n Dt[i]=rate[i]*(P-F);\n Bt[i]=Bt[i-1]-Dt[i];\n print eoy[i],\" \",Dt[i],\" \", Bt[i],\" \";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "End of year Depreciation Book value\n0 0 100000\n1 17777.7777778 82222.2222222 \n2 15555.5555556 66666.6666667 \n3 13333.3333333 53333.3333333 \n4 11111.1111111 42222.2222222 \n5 8888.88888889 33333.3333333 \n6 6666.66666667 26666.6666667 \n7 4444.44444444 22222.2222222 \n8 2222.22222222 20000.0 \n"
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.6 Page 131"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\nt=5.0;#in years\n\n#cacualtion\nDt=(n-t+1)*(P-F)/(n*(n+1)/2);#in Rs.\nBt=(P-F)*((n-t)/n)*((n-t+1)/(n+1))+F;#in Rs.\n\n#result\nprint \"D5 in Rs. : \",round(Dt,3);\nprint \"B5 in Rs. : \",round(Bt,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "D5 in Rs. : 8888.889\nB5 in Rs. : 33333.333\n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.7 Page 132"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\nk=0.12;\ni=12.0;#in % per annum\neoy=[0,1,2,3,4,5,6,7,8]#end of year\nBt=[100000.0,0,0,0,0,0,0,0,0];#book vakue\nDt=[0.0,0,0,0,0,0,0,0,0];\nrate=[0.0,0,0,0,0,0,0,0,0];\nSUM=0;\n\n#calculation\nA=(P-F)*(i/100)/(((1+i/100)**n)-1);\n\n#result\nprint \"End of year Net Depreciation Book value\";\nprint \"0 0 100000\"\nfor i in xrange (1,9):\n Dt[i]=k*SUM+A;\n SUM=SUM+Dt[i]\n Bt[i]=Bt[i-1]-Dt[i];\n print eoy[i],\" \",round(Dt[i],3),\" \", round(Bt[i],3),\" \";\n \nprint \"fixed deprececiation which is constant in Rs\",round(A,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "End of year Net Depreciation Book value\n0 0 100000\n1 6504.227 93495.773 \n2 7284.735 86211.038 \n3 8158.903 78052.135 \n4 9137.971 68914.164 \n5 10234.528 58679.637 \n6 11462.671 47216.966 \n7 12838.191 34378.774 \n8 14378.774 20000.0 \nfixed deprececiation which is constant in Rs 6504.227\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.8 Page 133"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=100000.0;#in Rs\nF=20000.0;#in Rs\nn=8.0;#in years\ni=12.0;#in % per annum\nt=5.0;#in Years\n\n#calculation\nDt=(P-F)*(i/100)/(((1+i/100)**n)-1)*(1+i/100)**(t-1);#in Rs.\nt=7;#in Years\nBt=P-(P-F)*(i/100)/(((1+i/100)**n)-1)*(((1+i/100)**t)-1)/(i/100);#in Rs.\n\n#result\nprint \"D7 in Rs. : \",round(Dt,3);\nprint \"B7 in Rs. : \",round(Bt,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "D7 in Rs. : 10234.528\nB7 in Rs. : 34378.774\n"
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.9 Page 134"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nP=8000000.0;#in Rs\nF=50000.0;#in Rs\nX=75000.0;#in Km\nx=2000.0;#in Km\nn=8.0;#in years\ni=12.0;#in % per annum\n\n#calcualtion\nD=(P-F)*x/X;#in Rs.\n\n#result\nprint \"Depreciation for year 3 in Rs. : \",round(D,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Depreciation for year 3 in Rs. : 212000.0\n"
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Economics/README.txt b/Engineering_Economics/README.txt
new file mode 100755
index 00000000..27bb08be
--- /dev/null
+++ b/Engineering_Economics/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Tarun Kumar Das
+Course: btech
+College/Institute/Organization: College of Engineering
+Department/Designation: Industrial Engineering
+Book Title: Engineering Economics
+Author: R. Panneerselvam
+Publisher: Phi Learning, Delhi
+Year of publication: 2010
+Isbn: 978-81-203-1743-7
+Edition: 1 \ No newline at end of file
diff --git a/Engineering_Economics/screenshots/Depriciation_and_Book_value.png b/Engineering_Economics/screenshots/Depriciation_and_Book_value.png
new file mode 100755
index 00000000..3c2c419d
--- /dev/null
+++ b/Engineering_Economics/screenshots/Depriciation_and_Book_value.png
Binary files differ
diff --git a/Engineering_Economics/screenshots/Economic_order_and_Time.png b/Engineering_Economics/screenshots/Economic_order_and_Time.png
new file mode 100755
index 00000000..623d5718
--- /dev/null
+++ b/Engineering_Economics/screenshots/Economic_order_and_Time.png
Binary files differ
diff --git a/Engineering_Economics/screenshots/Expected_Saving.png b/Engineering_Economics/screenshots/Expected_Saving.png
new file mode 100755
index 00000000..6970da10
--- /dev/null
+++ b/Engineering_Economics/screenshots/Expected_Saving.png
Binary files differ
diff --git a/Engineering_Economics/screenshots/Present_Worth.png b/Engineering_Economics/screenshots/Present_Worth.png
new file mode 100755
index 00000000..c5295c6e
--- /dev/null
+++ b/Engineering_Economics/screenshots/Present_Worth.png
Binary files differ
diff --git a/Engineering_Economics/screenshots/future_sum.png b/Engineering_Economics/screenshots/future_sum.png
new file mode 100755
index 00000000..50e1aa00
--- /dev/null
+++ b/Engineering_Economics/screenshots/future_sum.png
Binary files differ
diff --git a/Engineering_Economics/screenshots/maturity_value.png b/Engineering_Economics/screenshots/maturity_value.png
new file mode 100755
index 00000000..72bd0ac4
--- /dev/null
+++ b/Engineering_Economics/screenshots/maturity_value.png
Binary files differ
diff --git a/Engineering_Physics/Chapter11_1.ipynb b/Engineering_Physics/Chapter11_1.ipynb
new file mode 100755
index 00000000..39762859
--- /dev/null
+++ b/Engineering_Physics/Chapter11_1.ipynb
@@ -0,0 +1,620 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d5f4970753c62d94a2bd202867cc0f79046f1baac4b1a42721a5ae6844ad5f4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Nuclear Radiations and Detectors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r0=1.2; #radius(fm)\n",
+ "A=7; #mass number \n",
+ "\n",
+ "#Calculation \n",
+ "r=r0*A**(1/3);\t #radius of Li(fm) \n",
+ "\n",
+ "#Result\n",
+ "print \"The radius of Li is\",round(r,4),\"fm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius of Li is 2.2955 fm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M=235.043945; #atomic mass of uranium(u)\n",
+ "Z=92; #atomic number of uranium\n",
+ "mp=1.007825; #mass of proton(kg)\n",
+ "N=143; #no.of neutrons\n",
+ "mn=1.008665; #mass of neutron(kg)\n",
+ "A=235; #number of nucleons\n",
+ "\n",
+ "#Calculation \n",
+ "B=(((Z*mp)+(N*mn)-(M))/A)*931.5; #Binding energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The binding energy per nucleon is\",round(B,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binding energy per nucleon is 7.591 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.3, Page number 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#After removing one neutron from Ca(A=43;Z=20) it becomes Ca(A=42;Z=20)\n",
+ "M=41.958622; #mass of Ca(A=42;Z=20)(kg)\n",
+ "mn=1.008665; #mass of neutron(kg)\n",
+ "E=42.95877; #mass of Ca(A=43;Z=20)(kg)\n",
+ "\n",
+ "#Calculation \n",
+ "C=M+mn;\n",
+ "D=C-E;\n",
+ "B=D*931.5; #Binding energy of neutron(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The binding energy of neutron is\",round(B,4),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binding energy of neutron is 7.9336 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.4, Page number 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mBe=9.012182; #Atomic mass of beryllium(u)\n",
+ "mHe=4.002603; #Atomic mass of helium\n",
+ "mn=1.008665; #mass of neutron(kg)\n",
+ "mC=12.000000; #Atomic mass of carbon\n",
+ "\n",
+ "#Calculation \n",
+ "Q=(mBe+mHe-mn-mC)*931.5 #energy balance of the reaction(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Q-value is\",round(Q,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Q-value is 5.7 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.5, Page number 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mLi=7.016004; #mass of Lithium(A=7)(u)\n",
+ "mH=1.007825; #mass of Hydrogen(A=1)(u)\n",
+ "mHe=4.002603; #mass of helium(A=4)(u)\n",
+ "p=0.5; #energy of proton(MeV)\n",
+ "\n",
+ "#Calculation \n",
+ "Q=(mLi+mH-2*(mHe))*931.5 #energy balance of the reaction(MeV)\n",
+ "#The energy of 2 alpha particles is equal to the Q-value + energy of proton.\n",
+ "Ealpha=(Q+p)/2; #energy of each alpha particle(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Q-value of the reaction is\",round(Q,2),\"MeV\"\n",
+ "print \"The energy of each alpha particle is\",round(Ealpha,3),\"MeV\"\n",
+ "print \"answer for energy in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Q-value of the reaction is 17.35 MeV\n",
+ "The energy of each alpha particle is 8.924 MeV\n",
+ "answer for energy in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.6, Page number 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "wt=1000; #weight(gm)\n",
+ "A=235; #mass number of uranium\n",
+ "N=(6.02*10**23/A)*wt; #no.of nuclei in 1kg of uranium\n",
+ "Q=208; #energy-balance of the reaction\n",
+ "\n",
+ "#Calculation \n",
+ "E=N*Q; #Energy released(MeV)\n",
+ "#1MeV=4.45*10^-20kWh\n",
+ "E=E*4.45*10**-20;\n",
+ "\n",
+ "#Result\n",
+ "print \"The energy released is\",round(E/10**7,3),\"*10**7 kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy released is 2.371 *10**7 kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.7, Page number 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "wt=5000; #weight(gm)\n",
+ "A=235; #mass number of uranium\n",
+ "Ef=208; #Energy released per fission(MeV)\n",
+ "\n",
+ "#Calculation \n",
+ "N=(6.02*10**23/A)*wt; #number of nuclei in 5 Kg\n",
+ "E=N*Ef; #Energy(MeV)\n",
+ "E=E*1.6*10**-13; #Energy(J)\n",
+ "T=24*60*60; #time\n",
+ "P=E/T; #power(MW)\n",
+ "\n",
+ "#Result\n",
+ "print \"The power output of a nuclear reactor is\",round(P/10**6),\"MW\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power output of a nuclear reactor is 4934.0 MW\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.8, Page number 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=235; #mass number of uranium\n",
+ "p=1000; #amount of electric power produced(MW)\n",
+ "e=0.32; #energy conversion efficiency of the plant\n",
+ "f=200; #fission energy per event(MeV)\n",
+ "\n",
+ "#Calculation \n",
+ "I=p/e; #Input nuclear energy(MW)\n",
+ "TE=I*(10**6)*3600*24*365; #total energy(J)\n",
+ "EF=f*(10**6)*1.6*10**-19; #Energy released per fission event(J)\n",
+ "N=TE/EF; #Number of nuclei required\n",
+ "M=N*A/(6.02*10**23); #corresponding mass(g)\n",
+ "\n",
+ "#Result\n",
+ "print \"The amount of uranium required is\",round(M*10**-3,1),\"kg\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of uranium required is 1202.2 kg\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.9, Page number 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #charge of the particle(c)\n",
+ "B=1; #magnetic field(T)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "r=0.5; #radius(m)\n",
+ "\n",
+ "#Calculation \n",
+ "omega=(q*B)/m; #angular frequency(radian/s)\n",
+ "v=(omega/(2*math.pi))*10**-8; #frequency(MHz)\n",
+ "s=omega*r; #speed of proton(m/s)\n",
+ "K=(m*(s**2))*(1/2)*6.27*10**12; #kinetic energy of protons emerging from cyclotron(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The frequency of oscillator to accelerate protons is\",round(omega/10**8,2),\"*10**8 radian/s\"\n",
+ "print \"The speed of proton is\",round(s/10**7,1),\"*10**7 m/s\"\n",
+ "print \"The kinetic energy of protons emerging from the cyclotron is\",int(K),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The frequency of oscillator to accelerate protons is 0.96 *10**8 radian/s\n",
+ "The speed of proton is 4.8 *10**7 m/s\n",
+ "The kinetic energy of protons emerging from the cyclotron is 12 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.10, Page number 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=1.83*10**17; #average density of carbon nucleus(kg/m^3)\n",
+ "m=12; #mass(u)\n",
+ "e=1.66*10**-27;\n",
+ "\n",
+ "#Calculation \n",
+ "r=(m*e/((4/3)*math.pi*rho))**(1/3)*10**15; #radius(fm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The radius is\",round(r,2),\"fm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius is 2.96 fm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.11, Page number 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #charge of the particle(c)\n",
+ "B=5; #magnetic field(T)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation \n",
+ "v=(q*B)/(2*math.pi*m); #cyclotron frequency(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"cyclotron frequency of electron is\",round(v/10**11,1),\"*10**11 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cyclotron frequency of electron is 1.4 *10**11 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.12, Page number 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.5; #maximum kinetic energy(MeV)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19; #charge of particle(c)\n",
+ "r=0.35; #radius(m)\n",
+ "\n",
+ "#Calculation \n",
+ "B=math.sqrt(k*10**6*q*2*m)/(q*r); #magnetic field(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"The mgnetic field is\",round(B,1),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mgnetic field is 0.5 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.13, Page number 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19; #charge of particle(q)\n",
+ "v=25; #cyclotron frequency(MHz)\n",
+ "\n",
+ "#Calculation \n",
+ "B=(v*10**6*2*math.pi*m)/q; #magnetic field(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"The required magnetic field is\",round(B,4),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required magnetic field is 1.6395 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.14, Page number 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=20; #cyclotron frequency(MHz)\n",
+ "B=1.3; #magnetic field(T)\n",
+ "\n",
+ "#Calculation \n",
+ "d=2*math.pi*v*10**6/B; #charge to mass ratio of proton(C/kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"charge to mass ratio of proton is\",round(d/10**6,2),\"*10**6 C/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "charge to mass ratio of proton is 96.66 *10**6 C/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter13_1.ipynb b/Engineering_Physics/Chapter13_1.ipynb
new file mode 100755
index 00000000..83323d13
--- /dev/null
+++ b/Engineering_Physics/Chapter13_1.ipynb
@@ -0,0 +1,386 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:46a82c7fe1b65af7ee26b9fa38521b26c61cee31bc75dd5001fe45442416739c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Optical Fibre"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.49; #refractive index of core\n",
+ "n2=1.46; #refractive index of cladding\n",
+ "\n",
+ "#Calculation \n",
+ "NA=math.sqrt((n1**2)-(n2**2)); #Numerical aperture\n",
+ "\n",
+ "#Result\n",
+ "print \"The numerical aperture is\",round(NA,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numerical aperture is 0.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA=0.5; #numerical aperture of fibre \n",
+ "n0=1; #refractive index of the medium(air)\n",
+ "\n",
+ "#Calculation \n",
+ "i=math.asin(NA/n0); #acceptance angle(radian)\n",
+ "i=i*180/math.pi; #angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"The acceptance angle is\",i,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The acceptance angle is 30.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA=0.25; #numerical apperture\n",
+ "lamda=0.75; #wavelength(micro m)\n",
+ "a=25; #core radius(micro m)\n",
+ "\n",
+ "#Calculation \n",
+ "f=(2*math.pi*a*NA)/lamda; #normalised frequency\n",
+ "Ng=(f**2)/2; #number of guided modes\n",
+ "\n",
+ "#Result\n",
+ "print \"The number of guided modes is\",int(Ng)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of guided modes is 1370\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "pi=100; #mean optical power launched(micro m)\n",
+ "po=5; #mean optical power at fibre output(micro W)\n",
+ "l=6; #length(km)\n",
+ "\n",
+ "#Calculation \n",
+ "S=10*math.log10(pi/po); #signal attenuation(dB)\n",
+ "Sk=S/l; #signal attenuation(dB/km)\n",
+ "\n",
+ "#Result\n",
+ "print \"The signal attenuation is\",round(Sk,3),\"dB/km\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The signal attenuation is 2.168 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.5, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ns=2.89; #sum of refractive indices of core & cladding\n",
+ "nd=0.03; #difference of refractive indices of core & cladding\n",
+ "\n",
+ "#Calculation \n",
+ "NA=math.sqrt(ns*nd); #numerical apperture\n",
+ "\n",
+ "#Result\n",
+ "print \"The numerical apperture for the optical fibre is\",round(NA,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numerical apperture for the optical fibre is 0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.6, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA=0.28; #numerical aperture\n",
+ "a=30; #core radius(micro m)\n",
+ "lamda=0.8; #wavelength(micro m)\n",
+ "\n",
+ "#Calculation \n",
+ "f=(2*math.pi*a*NA)/lamda; #normalised frequency\n",
+ "Ng=f**2/2; #number of guided modes\n",
+ "\n",
+ "#Result\n",
+ "print \"The number of guided modes is\",int(Ng)\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of guided modes is 2176\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.7, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=2; #signal attenuation(dB/km)\n",
+ "l=1; #length(km)\n",
+ "p0=20; #mean optical power at fibre output(micro W)\n",
+ "\n",
+ "#Calculation \n",
+ "pi=p0*10**(S/10); #mean optical power launched into fibre(micro W)\n",
+ "\n",
+ "#Result\n",
+ "print \"The mean optical power launched into a fibre is\",round(pi,1),\"micro W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mean optical power launched into a fibre is 31.7 micro W\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.8, Page number 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=2.3; #Signal attenuation(dB/km)\n",
+ "l=4; #length(km)\n",
+ "\n",
+ "#Calculation \n",
+ "S=S*l; #signal attenuation for 4km in dB\n",
+ "P=10**(S/10); #ratio of mean optical power\n",
+ "\n",
+ "#Result\n",
+ "print \"ratio of mean optical power is\",round(P,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ratio of mean optical power is 8.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.9, Page number 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "op=1/4; #ratio\n",
+ "\n",
+ "#Calculation \n",
+ "#S=10*log(pi/po)\n",
+ "S=10*math.log10(1/op); #signal attenuation(dB)\n",
+ "\n",
+ "#Result\n",
+ "print \"Signal attenuation is\",int(S),\"dB\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Signal attenuation is 6 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter1_1.ipynb b/Engineering_Physics/Chapter1_1.ipynb
new file mode 100755
index 00000000..e69de29b
--- /dev/null
+++ b/Engineering_Physics/Chapter1_1.ipynb
diff --git a/Engineering_Physics/Chapter2_1.ipynb b/Engineering_Physics/Chapter2_1.ipynb
new file mode 100755
index 00000000..b527497e
--- /dev/null
+++ b/Engineering_Physics/Chapter2_1.ipynb
@@ -0,0 +1,431 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ad2a8335720a8ceacd5db30334fb790c6a4c8fa5b69e23fcad6e232d80ed69c2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Crystal Structure"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=6.5*10**3; #density of silver bromide(Kg/m**3)\n",
+ "m=187.8; #molecular weight of silver bromide\n",
+ "\n",
+ "#Calculation\n",
+ "M=(4*m)/(6.022*10**26); #mass of ion in unit cell(kg)\n",
+ "#d=mass of ions in unit cell/volume of unit cell\n",
+ "a=((M/d)**(1/3))*10**10; #lattice parameter(Angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The lattice parameter is\",round(a,2),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice parameter is 5.77 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=2.3; #atomic radius(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "a=(4*r)/math.sqrt(3); \n",
+ "fv=((a)**3-(2*(4/3)*math.pi*r**3))*10**-30; #free volume(m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"The free volume per unit cell is\",round(fv*10**30,1),\"*10**-30 m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The free volume per unit cell is 47.9 *10**-30 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.625*10**-5; #Boltzmann constant(eV/K)\n",
+ "#n1000/n500=ln[n1000/n500]=Ev/1000k\n",
+ "Ev=1.08; #average energy required to create a vacancy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "N=math.exp(Ev/(1000*k)); #ratio of vacancies\n",
+ "\n",
+ "#Result\n",
+ "print \"The ratio of vacancies is\",round(N/10**5,1),\"*10**5\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of vacancies is 2.7 *10**5\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#n500=N*exp(-Ev/500k)\n",
+ "k=8.625*10**-5; #Boltzmann constant(eV/K)\n",
+ "Ev=0.95; #average energy required to create a vacancy\n",
+ "\n",
+ "#Calculation\n",
+ "n=math.exp(-Ev/(500*k)); #n500/N\n",
+ "\n",
+ "#Result\n",
+ "print \"The ratio of number of vacancies to the number of atoms is\",round(n*10**10,1),\"*10**-10\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of number of vacancies to the number of atoms is 2.7 *10**-10\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.5, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1;\n",
+ "#d(hkl)=a/sqrt(h^2+k^2+l^2) where \"a\" is the lattice parameter\n",
+ "r=0.18; #atomic radius(nm)\n",
+ "\n",
+ "#Calculation\n",
+ "d111=(2*math.sqrt(2)*r)/math.sqrt((h**2)+(k**2)+(l**2)); #spacing(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The spacing of (111) planes in a monoatomic structure is\",round(d111,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The spacing of (111) planes in a monoatomic structure is 0.29 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.6, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M=200; #atomic weight \n",
+ "a=5; #lattice parameter(angstrom)\n",
+ "Na=6.022*(10**26);\n",
+ "\n",
+ "#Calculation\n",
+ "rho=(2*M)/(Na*(a*10**-10)**3); #density of the structure(kg/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"The density of the bcc structure is\",round(rho/10**3,2),\"*10**3 kg/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of the bcc structure is 5.31 *10**3 kg/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.7, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#Free volume=a^3-[(4/3)*pi*r^3];for sc,a=2r\n",
+ "#Therefore free volume =(2r)^3-[(4/3)*pi*r^3]\n",
+ "fv=30.48*10**-30; #free volume per unit cell(m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "r=(fv/(8-(4/3)*math.pi))**(1/3)*(10**10); #atomic radius(angstrom) \n",
+ "\n",
+ "#Result\n",
+ "print \"The atomic radius is\",round(r),\"Angstrom\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The atomic radius is 2.0 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.8, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#free volume=a^3-[2*(4/3)*pi*r^3]\n",
+ "#for bcc a=4r/3^(1/3)\n",
+ "fv=61.72*(10**-30); #free volume(m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "a=-(fv/(1-math.pi*math.sqrt(3))/8)**1/3*10**31; #lattice parameter(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The lattice parameter is\",round(a,2),\"Angstrom\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice parameter is 5.79 Angstrom\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.9, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=9000; #density(kg/m**3)\n",
+ "w=65; #atomic weight\n",
+ "v=1; #volume(m**3)\n",
+ "a=1.4; #average number of free electrons per atom\n",
+ "\n",
+ "#Calculation\n",
+ "n=(rho*v)/(w/(6.022*10**26)); #number of atoms\n",
+ "rhoe=n*a; #density of free electrons per atom(electrons/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"The density of free electrons is\",round(rhoe/10**29,3),\"*10**29 electrons/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of free electrons is 1.167 *10**29 electrons/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.10, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=1;\n",
+ "k=0;\n",
+ "l=1;\n",
+ "d101=0.5; #spacing of (101) plane\n",
+ "\n",
+ "#Calculation\n",
+ "#d101=a/sqrt((h^2)+(k^2)+(l^2))\n",
+ "a=d101*math.sqrt(2) #lattice parameter(Angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The lattice parameter is\",round(a,1),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice parameter is 0.7 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter4_1.ipynb b/Engineering_Physics/Chapter4_1.ipynb
new file mode 100755
index 00000000..f4145c55
--- /dev/null
+++ b/Engineering_Physics/Chapter4_1.ipynb
@@ -0,0 +1,553 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e9b50f0b4ca0520935774156fedb1fdaaf2b2fd5241b8184a650d42b25d657cd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Interference"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=40; #angle of incidence(degrees)\n",
+ "mew=1.2; #refractive index\n",
+ "t=0.23; #thickness of the film(micro m)\n",
+ "\n",
+ "#Calculation\n",
+ "i=i*math.pi/180; #angle of incidence(radian)\n",
+ "r=math.asin(math.sin(i)/mew); #angle of refraction(radian)\n",
+ "lambda1=(2*mew*t*math.cos(r))*10**3; #wavelength absent(nm) \n",
+ "lambda2=lambda1/2;\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength absent is\",round(lambda1,1),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength absent is 466.1 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambda1=400*10**-9; #wavelength 1(m)\n",
+ "lambda2=600*10**-9; #wavelength 2(m)\n",
+ "#2*t=n*lambda\n",
+ "n=150; \n",
+ "\n",
+ "#Calculation \n",
+ "t=((n*lambda2)/2)*10**6; #thickness of the air film(micro meter)\n",
+ "\n",
+ "#Result\n",
+ "print \"The thickness of the air film is\",t,\"micro m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of the air film is 45.0 micro m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=600*10**-9; #wavelength(m)\n",
+ "mew=2;\n",
+ "theta=0.025; #wedge-angle(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #wedge-angle(radian)\n",
+ "x=(lamda/(2*mew*math.sin(theta)))*10**2; #bandwidth(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The bandwidth is\",round(x,3),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The bandwidth is 0.034 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "xair=0.15; #bandwidth of air(cm)\n",
+ "xliq=0.115; #bandwidth of liquid(cm)\n",
+ "mewair=1; #refractive index of air\n",
+ "\n",
+ "#Calculation \n",
+ "mewliq=(xair*mewair)/xliq; #refractive index of liquid\n",
+ "\n",
+ "#Result\n",
+ "print \"The refractive index of liquid is\",round(mewliq,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The refractive index of liquid is 1.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.5, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=9;\n",
+ "lamda=589*10**-9; #wavelength of light used(m)\n",
+ "R=0.95; #radius of curvature of lens(m)\n",
+ "mew=1;\n",
+ "\n",
+ "#Calculation \n",
+ "D=(math.sqrt((4*n*lamda*R)/mew))*10**2; #diameter of the ninth dark ring(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The diameter of the ninth dark ring is\",round(D,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diameter of the ninth dark ring is 0.45 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.6, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "x=0.055; #distance in fringe shift(mm)\n",
+ "n=200; #number of fringes\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=((2*x)/n)*10**6; #wavelength(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of light used is\",lamda,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of light used is 550.0 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.7, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=50; #number of fringes\n",
+ "lamda=500*10**-9; #wavelength of light used(m)\n",
+ "mew=1.5; #refractive index of the plate\n",
+ "\n",
+ "#Calculation \n",
+ "t=((n*lamda)/(2*(mew-1)))*10**6; #thickness of the plate(micro meter)\n",
+ "\n",
+ "#Result\n",
+ "print \"The thickness of the plate is\",t,\"micro m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of the plate is 25.0 micro m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.8, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=550*10**-9; #wavelength(m)\n",
+ "mew=1.38; #refractive index\n",
+ "\n",
+ "#Calculation \n",
+ "t=(lamda/(4*mew))*10**9; #thickness(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum thickness of the plate for normal incidence of light is\",round(t,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum thickness of the plate for normal incidence of light is 99.638 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.9, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=35; #angle of incidence(degrees)\n",
+ "mew=1.4; #refractive index\n",
+ "n=50; \n",
+ "lamda=459*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation \n",
+ "i=i*math.pi/180; #angle of incidence(radian)\n",
+ "r=math.asin(math.sin(i)/mew); #angle of refraction(radian)\n",
+ "#2*mew*cos(r)=n*lambda\n",
+ "#n(459)=(n+1)450\n",
+ "t=(n*lamda/(2*mew*math.cos(r)))*10**6; #thickness of the film(micro meter)\n",
+ "\n",
+ "#Result\n",
+ "print \"The thickness of the film is\",round(t,3),\"micro m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of the film is 8.985 micro m\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.10, Page number 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=500*10**-9; #wavelength(m)\n",
+ "x=0.07; #observed band width(cm)\n",
+ "mew=1; #refractive index\n",
+ "\n",
+ "#Calculation \n",
+ "theta=(math.asin(lamda/(2*mew*x)))*10**2; #wedge angle(radian)\n",
+ "theta=theta*180/math.pi; #wedge angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wedge angle is\",round(theta,2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wedge angle is 0.02 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.11, Page number 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "dair=0.42; #diameter of certain rings(cm)\n",
+ "dliq=0.38; #diameter of rings when liquid is introduced(cm)\n",
+ "\n",
+ "#Calculation \n",
+ "mew=dair**2/dliq**2; #refractive index of liquid\n",
+ "\n",
+ "#Result\n",
+ "print \"The refravtive index of liquid is\",round(mew,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The refravtive index of liquid is 1.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.12, Page number 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=8; #eigth ring\n",
+ "n=3; #third ring\n",
+ "dm=0.4; #diameter of the eigth ring(cm)\n",
+ "dn=0.2; #diameter of the third ring(cm)\n",
+ "R=101; #Radius of curvature(cm)\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=(((dm**2)-(dn**2))/(4*R*(m-n))); #wavelength of light(cm) \n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of light used is\",round(lamda*10**5,4),\"*10**-5 cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of light used is 5.9406 *10**-5 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.13, Page number 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew=1.38; #refractive index of magnesium floride\n",
+ "t=175; #thickness of coating of magnesium fluoride(nm)\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=4*t*mew; #wavelength(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength which has high transmission is\",lamda,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength which has high transmission is 966.0 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter5_1.ipynb b/Engineering_Physics/Chapter5_1.ipynb
new file mode 100755
index 00000000..d125b365
--- /dev/null
+++ b/Engineering_Physics/Chapter5_1.ipynb
@@ -0,0 +1,469 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f4c05fd79d4d56cbd4b08f847aeb0bba767b388c9bbe1bea8066d97e3ac78212"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "5: Diffraction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.1, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "lamda=600*10**-9; #wavelength(m)\n",
+ "theta=35; #angle at which first minimum falls(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle at which first minimum falls(radian)\n",
+ "d=((n*lamda)/math.sin(theta))*10**6; #width of the slit(micro m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The width of the slit is\",round(d,2),\"micro m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The width of the slit is 1.05 micro m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.2, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=0.95; #distance of the screen from the slit(m)\n",
+ "lamda=589*10**-9; #wavelength(m)\n",
+ "d=0.5*10**-3; #width of the slit(m)\n",
+ "\n",
+ "#Calculation \n",
+ "y=((2*D*lamda)/d)*10**3; #width of a central band(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The width of the central band is\",round(y,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The width of the central band is 2.24 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.3, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=1.1; #distance of the screen from the slit(m)\n",
+ "lamda=589*10**-9; #wavelength(m)\n",
+ "y=4.5*10**-3; #distance of first minimum on either side of central maximum(m)\n",
+ "\n",
+ "#Calculation \n",
+ "d=((D*lamda)/y)*10**3 #slit width(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The slit width is\",round(d,3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The slit width is 0.144 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.4, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=4;\n",
+ "lamda=589.6*10**-9; #wavelength(m)\n",
+ "D=0.95; #distance of the screen from the slit(m)\n",
+ "w=0.28*10**-3; #width of the slit(m)\n",
+ "\n",
+ "#Calculation \n",
+ "d=((n*lamda*D)/w)*10**3; #distance between centres(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The distance between centres of central maximum and the fourth dark fringe is\",int(d),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance between centres of central maximum and the fourth dark fringe is 8 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.5, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "s=5*math.pi/2; #secondary maximum\n",
+ "\n",
+ "#Calculation \n",
+ "I=(math.sin(s)/s)**2; #I2/I0\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio of intensities of central & second secondary maximum is\",round(I,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of intensities of central & second secondary maximum is 0.016\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.6, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=450*10**-9; #wavelength(m)\n",
+ "n=2;\n",
+ "dlambda=1*10**-9; #difference in wavelength(m)\n",
+ "\n",
+ "#Calculation \n",
+ "N=lamda/(n*dlambda); #minimum number of lines per cm \n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum number of lines per cm is\",N/2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum number of lines per cm is 112.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.7, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "lamda=650*10**-9; #wavelength(m)\n",
+ "d=2*10**-6; #width of the slit(m)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=math.asin((n*lamda)/d); #angle at which first minimum will be observed(radian)\n",
+ "theta=theta*180/math.pi; #angle at which first minimum will be observed(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"The angle at which first minimum will be observed is\",round(theta,3),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle at which first minimum will be observed is 18.966 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.8, Page number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=600*10**-9; #wavelength(m)\n",
+ "y=2*10**-3; #width of the central band(m)\n",
+ "D=1; #distance of the screen from the slit(m)\n",
+ "\n",
+ "#Calculation \n",
+ "d=((2*D*lamda)/y)*10**3; #slit width(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The slit width is\",d,\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The slit width is 0.6 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.9, Page number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "y=6*10**-3; #first minimum is observed(m)\n",
+ "d=90*10**-6; #slit width(m)\n",
+ "D=0.98; #distance of the screen from the slit(m)\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=((y*d)/D)*10**9; #wavelength(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of light used is\",int(lamda),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of light used is 551 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.10, Page number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "lambda1=450*10**-9; #wavelength of first spectral line(m)\n",
+ "d=1/5000; #number of lines\n",
+ "\n",
+ "#Calculation \n",
+ "theta1=math.asin((n*lambda1)/d); \n",
+ "theta1=round(theta1*10**2*180/math.pi);\n",
+ "theta2=theta1+2.97;\n",
+ "theta2=theta2*math.pi/180;\n",
+ "lambda2=d*math.sin(theta2)/n; #wavelength of second spectral line(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of second spectral line is\",int(lambda2*10**7),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of second spectral line is 550 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.11, Page number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=3;\n",
+ "lamda=700*10**-9; #wavelength(m)\n",
+ "theta=90; #angle(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=n*lamda/math.sin(theta); #grating element(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum grating element required to observe the entire third order spectrum is\",d*10**6,\"*10**-6 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum grating element required to observe the entire third order spectrum is 2.1 *10**-6 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter6_1.ipynb b/Engineering_Physics/Chapter6_1.ipynb
new file mode 100755
index 00000000..271f7718
--- /dev/null
+++ b/Engineering_Physics/Chapter6_1.ipynb
@@ -0,0 +1,437 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:015049a6d28a54143e382d872ce51260f52be159a8159c04fe93d876c0cea685"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Polarisation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew=1.63; #refractive index of the glass plate\n",
+ "\n",
+ "#Calculation \n",
+ "#tan ip=mew\n",
+ "ip=math.atan(mew); #ip=polarising angle(radian)\n",
+ "ip=ip*180/math.pi; #ip=polarising angle(degrees)\n",
+ "#ip+r=90\n",
+ "r=90-ip; #angle of refraction(degrees)\n",
+ "rd=int(r); #angle(degrees)\n",
+ "rm=round(60*(r-rd)); #angle(minutes)\n",
+ "\n",
+ "#Result\n",
+ "print \"The angle of refraction is\",rd,\"degrees\",rm,\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle of refraction is 31 degrees 32.0 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#I=I0(cos^2(teta))\n",
+ "theta=50; #angle made between two principle planes(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "I=(math.cos(theta))**2; #incident unpolarized light\n",
+ "#percentage of incident unpolarised light is (I/I0)*100 where I0 is incident polarised light\n",
+ "p=I*100; #percentage of incident unpolarized light(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"The percentage of incident unpolarized light is\",int(p),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The percentage of incident unpolarized light is 41 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.3, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#I=I0*cos^2(teta)\n",
+ "#cos^2(teta)=I/I0\n",
+ "a=0.08; #a=I/I0;where I=incident unpolarized light & I0=incident polarized light\n",
+ "\n",
+ "#Calculation \n",
+ "theta=math.acos(math.sqrt(a)); #angle between planes of transmission of analyser and polariser(radian)\n",
+ "theta=theta*180/math.pi; #angle(degrees)\n",
+ "thetad=int(theta); #angle(degrees)\n",
+ "thetam=round(60*(theta-thetad)); #angle(minutes)\n",
+ "\n",
+ "#Result\n",
+ "print \"The angle between the planes of transmission of analyser & polariser is +(or)- \",thetad,\"degrees\",thetam,\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle between the planes of transmission of analyser & polariser is +(or)- 73 degrees 34.0 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.4, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#IE=A^2(cos^2(teta));IO=A^2(sin^2(teta))\n",
+ "#I0/IE=tan^2(teta)\n",
+ "theta=40; #angle made between incident beam & optic axis(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "a=math.tan(theta)**2; #I0/IE\n",
+ "\n",
+ "#Result\n",
+ "print \"I0/IE=\",round(a,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I0/IE= 0.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.5, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=589; #wavelength of light(nm)\n",
+ "mew0=1.54; #refractive index for ordinary wave\n",
+ "mewE=1.55; #refractive index for extraordinary wave\n",
+ "\n",
+ "#Calculation \n",
+ "t=lamda/(4*(mewE-mew0))*10**-3; #thickness(micro m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The thickness of a quarter-wave plate is\",t,\"micro m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of a quarter-wave plate is 14.725 micro m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ip=52; #angle of polarization(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "ip=ip*math.pi/180; #angle(radian)\n",
+ "mew=math.tan(ip); #refractive index of the material surface\n",
+ "\n",
+ "#Result\n",
+ "print \"The refractive index of the material surface is\",round(mew,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The refractive index of the material surface is 1.28\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.7, Page number 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=33; #angle of refraction(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "ip=90-r; #polarising angle(degrees)\n",
+ "ip=ip*math.pi/180; #angle(radian)\n",
+ "mew=math.tan(ip); #refractive index of quartz\n",
+ "\n",
+ "#Result\n",
+ "print \"The refractive index of quartz is\",round(mew,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The refractive index of quartz is 1.54\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.8, Page number 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#IE=A^2*cos^2(teta);IO=A^2*sin^2(teta)\n",
+ "#I0/IE=tan^2(teta)=0.65\n",
+ "a=0.65; #ratio of intensities of ordinary & extraordinary light\n",
+ "\n",
+ "#Calculation \n",
+ "theta=math.atan(math.sqrt(a)); #angle made by plane of vibration of the incident light with optic axis(radian)\n",
+ "theta=theta*180/math.pi; #angle(degrees)\n",
+ "thetad=int(theta); #angle(degrees)\n",
+ "thetam=int(60*(theta-thetad));\n",
+ "\n",
+ "#Result\n",
+ "print \"The angle made by the plane of vibration of incident light with the optic axis is\",thetad,\"degrees\",thetam,\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle made by the plane of vibration of incident light with the optic axis is 38 degrees 52 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.9, Page number 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=1.544; #refractive index of ordinary waves\n",
+ "mewE=1.553; #refractive index of extraordinary waves\n",
+ "lamda=550; #wavelength(nm) \n",
+ "t=9;\n",
+ "\n",
+ "#Calculation \n",
+ "delta=((2*180)/(lamda*(10**-9)))*(mewE-mew0)*t*(10**-6); #phase difference(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"The phase difference between O and E rays is\",int(delta),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The phase difference between O and E rays is 53 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.10, Page number 109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta=50; #phase difference(degrees)\n",
+ "mewE=1.544; #refractive index of extraordinary waves\n",
+ "mew0=1.553; #refractive index of ordinary waves\n",
+ "t=8; #thickness(nm)\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=((2*180)/delta)*(mew0-mewE)*t*10**-6*10**9; #wavelength of light incident(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of light incident is\",lamda,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of light incident is 518.4 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter7_1.ipynb b/Engineering_Physics/Chapter7_1.ipynb
new file mode 100755
index 00000000..36caeba7
--- /dev/null
+++ b/Engineering_Physics/Chapter7_1.ipynb
@@ -0,0 +1,582 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:604dfd31225e3c2fe12afc104ed18461bd1bcabd558389f5cc69df386ba9091d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Motion of a charged particle"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #charge of the electron(c)\n",
+ "V=18; #potential difference(kV)\n",
+ "m=9.1*10**-31; #mass of the electron(kg)\n",
+ "\n",
+ "#Calculation \n",
+ "K=e*V*10**3; #Kinetic energy(J)\n",
+ "v=math.sqrt((2*e*V*10**3)/m); #speed of electron(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"The kinetic energy of electron is\",K*10**16,\"*10**-16 J\"\n",
+ "print \"Speed of the electron is\",round(v/10**7,3),\"*10**7 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The kinetic energy of electron is 28.8 *10**-16 J\n",
+ "Speed of the electron is 7.956 *10**7 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.2, Page number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "vx=4*10**6; #velocity along x-axis(m/s)\n",
+ "E=1500; #electric field strength(N/C)\n",
+ "l=0.07; #length in y-axis(m)\n",
+ "q=1.6*10**-19; #charge of electron(c)\n",
+ "\n",
+ "#Calculation \n",
+ "y=(-q*E*(l**2))/(2*m*(vx**2))*10**2; #vertical displacement of electron(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The vertical displacement of electron when it leaves the electric field is\",round(y,3),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The vertical displacement of electron when it leaves the electric field is -4.038 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "u=5*10**5; #velocity(m/s)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19;\n",
+ "E=500; #electric field(N/C)\n",
+ "theta=42; #angle(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "t=((u*m*math.sin(theta))/(q*E))*10**6; #time required for the proton(micro s)\n",
+ "\n",
+ "#Result\n",
+ "print \"The time required for the proton is\",round(t,2),\"micro s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The time required for the proton is 6.98 micro s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.4, Page number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19;\n",
+ "B=0.36; #magnetic field(T)\n",
+ "R=0.2; #radius(m)\n",
+ "\n",
+ "#Calculation \n",
+ "v=(q*B*R)/m; #orbital speed of proton(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"The orbital speed of proton is\",round(v/10**6,1),\"*10**6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The orbital speed of proton is 6.9 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.5, Page number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=2*10**6; #speed(m/s)\n",
+ "theta=30; #angle at which proton enters at the origin of coordinate system(degrees)\n",
+ "B=0.3; #magnetic field(T)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19;\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "vp=v*math.sin(theta); #v(perpendicular component)\n",
+ "vpa=v*math.cos(theta); #v(parallel component)\n",
+ "p=(vpa*2*math.pi*m)/(q*B); #pitch of the helix described by the proton\n",
+ "R=((m*vp)/(q*B))*10**2; #radius of the trajectory\n",
+ "\n",
+ "#Result\n",
+ "print \"the pitch of the helix is\",round(p,2),\"m\"\n",
+ "print \"the radius of trajectory is\",round(R,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the pitch of the helix is 0.38 m\n",
+ "the radius of trajectory is 3.48 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.6, Page number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=25; #deflecting voltage(V)\n",
+ "l=0.03; #length of deflecting planes(m)\n",
+ "d=0.75; #distance between 2 deflecting plates(cm)\n",
+ "Va=800; #final anode voltage(V)\n",
+ "D=0.2; #distance between the screen and the plates(m)\n",
+ "e=1.6*10**-19;\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation \n",
+ "y=(((V*l)/(2*d*Va))*(D+(l/2)))*10**4; #displacement produced(cm)\n",
+ "a=((V*l)/(2*d*Va))*10**2;\n",
+ "alpha=math.atan(a); #angle made by the beam with the axis(radian)\n",
+ "alpha1=alpha*180/math.pi; #angle(degrees)\n",
+ "v=((math.sqrt((2*e*Va)/m))/math.cos(alpha)); #velocity of electron(v)\n",
+ "\n",
+ "#Result\n",
+ "print \"the displacement produced is\",round(y,2),\"cm\"\n",
+ "print \"the angle made by the beam with the axis is\",round(alpha1,2),\"degrees\"\n",
+ "print \"velocity of electrons is\",round(v/10**7,2),\"*10**7 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the displacement produced is 1.34 cm\n",
+ "the angle made by the beam with the axis is 3.58 degrees\n",
+ "velocity of electrons is 1.68 *10**7 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.7, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19;\n",
+ "B=5*10**-5; #magnetic field(Wb/m**2)\n",
+ "l=0.04; #length of magnetic field along the axis(m)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "D=0.25; #distance of the screen from the field(m)\n",
+ "Va=600; #final anode voltage(V)\n",
+ "\n",
+ "#Calculation \n",
+ "y=(((e*B*l)/m)*math.sqrt(m/(2*e*Va))*(D+(l/2)))*10**2; #displacement of the electron(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"the displacement of the electron beam spot on the screen is\",round(y,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the displacement of the electron beam spot on the screen is 0.65 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.8, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2.5*10**4; #electric field(V/m)\n",
+ "B=0.18; #magnetic field(T)\n",
+ "B1=0.22; #magnetic field in the main chamber(T)\n",
+ "m2=13; #mass number of carbon(kg)\n",
+ "m1=12; #mass number of carbon(kg)\n",
+ "e=1.6*10**-9;\n",
+ "q=1.67*10**-27;\n",
+ "\n",
+ "#Calculation \n",
+ "v=E/B; #velocity of particles(m/s)\n",
+ "s=((2*v*(m2-m1)*q)/(e*B1))*10**12; #seperation on photographic plate(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"the seperation on photographic plate is\",round(s,3),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the seperation on photographic plate is 1.318 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.9, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=5.6*10**6; #speed of the electron(m/s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19;\n",
+ "s=0.03; #distance travelled(m)\n",
+ "\n",
+ "#Calculation \n",
+ "E=(m*(v)**2)/(2*e*s); #intensity of electric field(N/C)\n",
+ "\n",
+ "#Result\n",
+ "print \"The intensity of electric field is\",round(E),\"N/C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The intensity of electric field is 2973.0 N/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=5*10**7;\n",
+ "B=0.4; #magnetic field(T)\n",
+ "r=0.711*10**-3; #radius of the circle(m)\n",
+ "\n",
+ "#Calculation \n",
+ "Q=v/(B*r); #charge to mass ratio(C/kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"The charge to mass ratio is\",round(Q/10**10,2),\"*10**10 C/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The charge to mass ratio is 17.58 *10**10 C/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.11, Page number 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "v=3*10**7; #speed of electron(m/s)\n",
+ "R=0.05; #radius of the circle(m)\n",
+ "q=1.6*10**-31;\n",
+ "\n",
+ "#Calculation \n",
+ "B=((m*v)/(q*R))*10**-9; #magnetic field(mT)\n",
+ "\n",
+ "#Result\n",
+ "print \"The magnetic field to bend a beam is\",round(B,1),\"mT\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetic field to bend a beam is 3.4 mT\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.12, Page number 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "q=1.6*10**-19;\n",
+ "t=8*10**-9; #time(ns)\n",
+ "\n",
+ "#Calculation \n",
+ "B=(2*math.pi*m*500)/(q*t); #magnetic field(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"The magnetic field is\",round(B,2),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetic field is 2.23 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.13, Page number 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=9.15*10**7; #cyclotron frequency of proton(Hz)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19;\n",
+ "\n",
+ "#Calculation \n",
+ "B=(2*math.pi*v*m)/q; #magnetic field(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"The magnetic field is\",int(B),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetic field is 6 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter8_1.ipynb b/Engineering_Physics/Chapter8_1.ipynb
new file mode 100755
index 00000000..b3ec194e
--- /dev/null
+++ b/Engineering_Physics/Chapter8_1.ipynb
@@ -0,0 +1,360 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a95b407b682939fdad30498a4e63981a88538f3262f7c6d2067bc16aa9ba5b35"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: Magnetic materials and Spectroscopy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.1, Page number 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew=0.9*10**-23; #magnetic dipole moment(J/T)\n",
+ "B=0.72; #magnetic field applied(T)\n",
+ "k=1.38*10**-23; #boltzmann constant\n",
+ "\n",
+ "#Calculation \n",
+ "T=(2*mew*B)/(3*k); #temperature(K)\n",
+ "\n",
+ "#Result\n",
+ "print \"The temperature is\",round(T,2),\"K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature is 0.31 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#(C=mew0*M*T)/B.\n",
+ "#Therefore M=(C*B)/(mew0*T)\n",
+ "C=2*10**-3; #C is curies constant(K)\n",
+ "B=0.4; #applied magnetic field(T)\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "T=300; #temperature(K)\n",
+ "\n",
+ "#Calculation \n",
+ "M=(C*B)/(mew0*T); #magnetisation(A/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetisation is\",round(M,2),\"A/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetisation is 2.12 A/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19;\n",
+ "B=0.35; #magnetic field(T)\n",
+ "lamda=500*10**-9; #wavelength(m)\n",
+ "m=9.1*10**-31;\n",
+ "c=3*10**8; #speed of light \n",
+ "\n",
+ "#Calculation \n",
+ "deltalambda=(e*B*(lamda)**2)/(4*(math.pi)*m*c*10**-9); #Zeeman shift in wave length(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"Zeeman shift in wave length is\",round(deltalambda,5),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zeeman shift in wave length is 0.00408 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.4, Page number 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#T=(C*B)/(mew0*B)\n",
+ "C=2.1*10**-3; #C is curie's constant(K)\n",
+ "B=0.38; #magnetic field(T)\n",
+ "mew0=4*math.pi*10**-7; #molecular magnetic moment\n",
+ "M=2.15; #magnetisation(A/m)\n",
+ "\n",
+ "#Calculation \n",
+ "T=(C*B)/(mew0*M); #temperature(K)\n",
+ "\n",
+ "#Result\n",
+ "print \"Temperature is\",round(T,1),\"K\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature is 295.4 K\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.5, Page number 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#(M1*T1)=(M2*T2).Therefore M2=(M1*T1)/T2\n",
+ "M1=2; #Initial magnetisation(A/m)\n",
+ "T1=305; #Initial temperature(K)\n",
+ "T2=321;\t\t #final temperature(K)\t\n",
+ "\n",
+ "#Calculation \n",
+ "M2=(M1*T1)/T2; #magnetisation at 321K(A/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"Magnetisation at 321 K is\",round(M2,1),\"A/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetisation at 321 K is 1.9 A/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.6, Page number 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=4*math.pi*10**-7; #molecular magnetic moment\n",
+ "M=4; #magnetisation(A/m)\n",
+ "T=310; #temperature(K)\n",
+ "C=1.9*10**-3; #Curie's constant(K)\n",
+ "\n",
+ "#Calculation \n",
+ "B=(mew0*M*T)/C; #magnetic field(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"Magnetic field is\",round(B,2),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetic field is 0.82 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.7, Page number 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#e/m is gyromagnetic ratio.\n",
+ "deltalambda=0.01*10**-9; #Zeeman shift(m)\n",
+ "c=3*10**8; #speed of light in vacuum(m/s)\n",
+ "lamda=600*10**-9; #wavelength(m)\n",
+ "e=1.6*10**-19;\n",
+ "m=9.1*10**-31;\n",
+ "\n",
+ "#Calculation \n",
+ "B=(deltalambda*4*math.pi*m*c)/(e*(lamda)**2); #uniform magnetic field(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"Magnetic field is\",round(B,4),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Magnetic field is 0.5956 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.8, Page number 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "deltalambda=0.01*10**-9; #Zeeman shift(m)\n",
+ "c=3*10**8; #speed of light in vacuum(m/s)\n",
+ "B=0.78; #magnetic field(T)\n",
+ "lamda=550*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation \n",
+ "Y=(deltalambda*4*math.pi*3*10**8)/(B*(lamda)**2); #e/m ratio(C/kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"e/m ratio is\",round(Y/10**11,1),\"*10**11 C/kg\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e/m ratio is 1.6 *10**11 C/kg\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/Chapter9_1.ipynb b/Engineering_Physics/Chapter9_1.ipynb
new file mode 100755
index 00000000..29c8edee
--- /dev/null
+++ b/Engineering_Physics/Chapter9_1.ipynb
@@ -0,0 +1,576 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:495ac96015f20ad80c50d2c1722e924721169f0ca7b7ca56739c5ef92f3f2a43"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Quantum Theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.05; #radius of the wire(mm)\n",
+ "l=4; #length of the wire(cm)\n",
+ "e=1;\n",
+ "T=3000; #temperature(K)\n",
+ "s=5.6703*10**-8; #stefan's constant \n",
+ "\n",
+ "#Calculation \n",
+ "A=2*math.pi*r*l*10**-5; #area(m**2)\n",
+ "p=s*T**4*A*e; #power radiated by the filament(W)\n",
+ "\n",
+ "#Result\n",
+ "print \"The power radiated by the filament is\",round(p,2),\"W\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power radiated by the filament is 57.72 W\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=550; #wavelength(nm)\n",
+ "\n",
+ "#Calculation \n",
+ "E=(h*c)/(lamda*10**-9); #energy of photon(J)\n",
+ "Es=0.1/E; #number of photons(per square cm per second)\n",
+ "\n",
+ "#Result\n",
+ "print \"The number of photons are\",round(Es/10**17,2),\"*10**17 per square cm per second\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of photons are 2.77 *10**17 per square cm per second\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=300*10**-9; #wavelength(m)\n",
+ "e=1.6*10**-19;\n",
+ "phi=2.2; #work function(eV)\n",
+ "\n",
+ "#Calculation \n",
+ "E=(h*c)/lamda; #energy of photon(J)\n",
+ "Kmax=(E-(phi*e))/e; #maximum kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The maximum kinetic energy is\",round(Kmax,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum kinetic energy is 1.94 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=175*10**-9; #wavelength of light(m)\n",
+ "w=5; #work function of nickel(eV)\n",
+ "\n",
+ "#Calculation \n",
+ "E=(h*c)/(lamda*1.6*10**-19); #Energy of 200 nm photon(eV)\n",
+ "#From photoelectric equation E-w is the potential difference\n",
+ "p=E-w; #potential difference required to stop the fastest electron(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The potential difference that should be applied is\",round(p,1),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The potential difference that should be applied is 2.1 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19;\n",
+ "V=50; #accelerating voltage(kV)\n",
+ "\n",
+ "#Calculation \n",
+ "lambdamin=((h*c)/(e*V*10**3))*10**9; #shortest wavelength of X-rays(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The shortest wavelength of X-rays is\",round(lambdamin,4),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The shortest wavelength of X-rays is 0.0248 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambda1=0.708; #wavelength of a certain line in an X-ray spectrum(angstrom)\n",
+ "Z1=42; #atomic number\n",
+ "Z2=24;\n",
+ "a=1; #screening constant\n",
+ "\n",
+ "#Calculation \n",
+ "lambda2=(lambda1*(Z1-a)**2)/((Z2-a)**2); #wavelength of same line(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of same line is\",round(lambda2,2),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of same line is 2.25 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#From Bragg's law 2*d*sin(teta)=n*lambda\n",
+ "n=1;\n",
+ "lamda=0.32; #wavelength(nm)\n",
+ "theta=28; #angle at which first order Bragg's reflection is observed(degrees)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=lamda/(2*math.sin(theta)); #distance between atomic planes(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The distance between atomic planes is\",round(d,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance between atomic planes is 0.34 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "theta=50; #angle(degrees)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "deltalambda=(h/(m*c))*(1-math.cos(theta))*10**12; \n",
+ "lambdafin=2.5; #wavelength of scattered X-rays\n",
+ "lambdainit=lambdafin-deltalambda; #wavelength of X-rays in the incident beam(pm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength of X-rays in the incident beam is\",round(lambdainit,2),\"pm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of X-rays in the incident beam is 1.63 pm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.9, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=500*10**-9; #wavelength of laser(m)\n",
+ "t=20*10**-3; #time(s)\n",
+ "N=2.52*10**16; #number of photons in a 20ms pulse\n",
+ "\n",
+ "#Calculation \n",
+ "E=(h*c)/lamda; #Energy of 500 nm photon(J)\n",
+ "p=E*N/t; #power of the laser(W)\n",
+ "\n",
+ "#Result\n",
+ "print \"The power of the laser is\",round(p,1),\"W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power of the laser is 0.5 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=350*10**-9; #threshold wavelength(m)\n",
+ "e=1.6*10**-19;\n",
+ "\n",
+ "#Calculation \n",
+ "W=h*c/(lamda*e); #work function of the surface(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The work function of the surface is\",round(W,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The work function of the surface is 3.55 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.11, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19;\n",
+ "lambdamin=0.02*10**-9; #minimum wavelength(m)\n",
+ "\n",
+ "#Calculation \n",
+ "V=(h*c/(lambdamin*e))*10**-3; #accelerating voltage(kV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The accelerating voltage needed to produce minimum wavelength is\",round(V,4),\"kV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The accelerating voltage needed to produce minimum wavelength is 62.1187 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.12, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#According to Bragg's eq.2*d*sin(teta)=n*lambda\n",
+ "n=2; #since second order Bragg's eq.\n",
+ "d=5; #since d=5(lambda)\n",
+ "lamda=1;\n",
+ "\n",
+ "#Calculation \n",
+ "a=(n*lamda)/(2*5*lamda);\n",
+ "theta=math.asin(a); #angle of second order Braggs reflection(radian)\n",
+ "theta=theta*180/math.pi; #angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"The angle of second order Braggs reflection is\",round(theta,2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle of second order Braggs reflection is 11.54 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.13, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #plancks constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=0.03; #wavelength(nm)\n",
+ "p=80/100;\n",
+ "\n",
+ "#Calculation \n",
+ "E=(h*c)/(lamda*10**-9); #energy of photon(J) \n",
+ "TE=E/p; #Total energy.E=80% of TE(J)\n",
+ "TE=TE*(10**-3)/e; #Total energy(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The electron must have been accelerated through a potential difference of\",round(TE,3),\"kV\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electron must have been accelerated through a potential difference of 51.766 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics/README.txt b/Engineering_Physics/README.txt
new file mode 100755
index 00000000..d99f6a28
--- /dev/null
+++ b/Engineering_Physics/README.txt
@@ -0,0 +1,10 @@
+Contributed By: SINDHU ARROJU
+Course: btech
+College/Institute/Organization: JNTUH
+Department/Designation: Computer Science
+Book Title: Engineering Physics
+Author: V Rajendran
+Publisher: Tata McGraw-Hill Publishing Company Limited(New Delhi)
+Year of publication: 2008
+Isbn: 9780070261037
+Edition: 1 \ No newline at end of file
diff --git a/Engineering_Physics/screenshots/1.png b/Engineering_Physics/screenshots/1.png
new file mode 100755
index 00000000..4282275d
--- /dev/null
+++ b/Engineering_Physics/screenshots/1.png
Binary files differ
diff --git a/Engineering_Physics/screenshots/11.png b/Engineering_Physics/screenshots/11.png
new file mode 100755
index 00000000..0fc56fcd
--- /dev/null
+++ b/Engineering_Physics/screenshots/11.png
Binary files differ
diff --git a/Engineering_Physics/screenshots/2.png b/Engineering_Physics/screenshots/2.png
new file mode 100755
index 00000000..9e1e8cf6
--- /dev/null
+++ b/Engineering_Physics/screenshots/2.png
Binary files differ
diff --git a/Engineering_Physics/screenshots/22.png b/Engineering_Physics/screenshots/22.png
new file mode 100755
index 00000000..3a440c46
--- /dev/null
+++ b/Engineering_Physics/screenshots/22.png
Binary files differ
diff --git a/Engineering_Physics/screenshots/3.png b/Engineering_Physics/screenshots/3.png
new file mode 100755
index 00000000..662e6b45
--- /dev/null
+++ b/Engineering_Physics/screenshots/3.png
Binary files differ
diff --git a/Engineering_Physics/screenshots/33.png b/Engineering_Physics/screenshots/33.png
new file mode 100755
index 00000000..fc148b77
--- /dev/null
+++ b/Engineering_Physics/screenshots/33.png
Binary files differ
diff --git a/Engineering_Physics_-_I/README.txt b/Engineering_Physics_-_I/README.txt
new file mode 100755
index 00000000..9cb516db
--- /dev/null
+++ b/Engineering_Physics_-_I/README.txt
@@ -0,0 +1,10 @@
+Contributed By: saikomal chanagam
+Course: btech
+College/Institute/Organization: SASTRA University
+Department/Designation: ECE
+Book Title: Engineering Physics - I
+Author: G. SenthilKumar
+Publisher: VRB Publishers, Chennai
+Year of publication: 2011
+Isbn: 9789380241852
+Edition: 1 \ No newline at end of file
diff --git a/Engineering_Physics_-_I/chapter1.ipynb b/Engineering_Physics_-_I/chapter1.ipynb
new file mode 100755
index 00000000..4b792797
--- /dev/null
+++ b/Engineering_Physics_-_I/chapter1.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "Chapter1(s)"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 1: Ultrasonics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No:1.29"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\nP = 1; # for fundamental mode\nt = 0.1*10**-2; # thickness of piezo electric crystal\nE = 80*10**9 # young's modulus\np = 2654 # density in kg/m^3\n\n# Calculations\n\nf = (P/(2*t))*math.sqrt(E/p); # frequency of the oscillator circuit\n\n# Result\nprint 'The Frequency of the oscillator circuit %3.4g' %f,'Hz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Frequency of the oscillator circuit 2.745e+06 Hz\n"
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No:1.29"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n# variable declaration\nP = 1; # for fundamental mode\nt = 0.1*10**-2; # thickness of piezo electric crystal\nE = 7.9*10**10 # young's modulus\np = 2650 # density in kg/m^3\n\n# Calculations\n\nf = (P/(2*t))*math.sqrt(E/p); # frequency of the oscillator circuit\n\n#Result\nprint 'The Frequency of the vibrating crystal %0.2f'%(f/(10**6)),'MHz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Frequency of the vibrating crystal 2.73 MHz\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page No:1.30"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable Declaration\nf = 1.5*10**6; # frequency of ultrasonics in Hz\nd6 = 2.75*10**-3; # distance between 6 consecutive nodes\n\n# Calculations\nd = d6/5; # distance b/w two nodes\nlamda = 2*d; # wavelength in m\nv = f*lamda; # velocity of ultrasonics\n\n# Result\nprint 'Velocity of ultrasonics ' ,v,'m/sec';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Velocity of ultrasonics 1650.0 m/sec\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Add_example 1, Page No: 1.31"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\nP = 1; # for fundamental mode\nt = 1.5*10**-3; # thickness of quartz crystal\nE = 7.9*10**10 # young's modulus in N/m^2\np = 2650 # density in kg/m^3\n\n# Calculations\n\nf = (P/(2*t))*math.sqrt(E/p); # frequency of the oscillator circuit\n\n# Result\nprint 'The Fundamental Frequency of the Quartz crystal %3.2f'%(f/10**6), 'MHz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Fundamental Frequency of the Quartz crystal 1.82 MHz\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Add_example 2, Page No: 1.31"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\nv = 5000; # velocity of ultrasonics in m/s\ndf = 60*10**3; # difference b/w two adjacent harmonic freq. in Hz\n\n# Calculations\n\nd = (float(v)/(2*df)) ; # thickness of steel plate\n\n# Result\nprint 'The thickness of steel plate %3.4f'%(d),'m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The thickness of steel plate 0.0417 m\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Add_example 3, Page No: 1.32"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\nv = 1440; # velocity of ultrasonics in sea water in m/s\nt = 0.33 # time taken b/w tx and rx in sec\n\n# Calculations\n\nd = v*t; # distance travelled by ultrasonics\nD = d/2; # depth of submerged submarine in m\n\n# Result\nprint 'Depth of submerged submarine',D,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Depth of submerged submarine 237.6 m\n"
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Add_example 4, Page No: 1.33"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\nd = 0.55*10**-3; # distance b/w two antinodes\nf = 1.5*10**6; # freq of the crystal\n\n# Calculations\n\nlamda = 2*d; # wavelength\nv = f*lamda; # velocity of ultronics\n\n# Result\nprint 'Velocity of waves in sea water',v,'m/s';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Velocity of waves in sea water 1650.0 m/s\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Add_example 5, Page No: 1.33\n"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\nP = 1; # for fundamental mode\np = 2660 # density of quartz in kg/m^3\nf = 1300*10**3 # freq of quartz plate for sub division ii\nk = 2.87*10**3\n\n#f1 = (k)/t # freq for sub division i\n\n# Calculations\n\n#f = (P/(2*t))*sqrt(E/p); \nE = p*4*(k)**2; # Youngs modulus in N/m^2\nt = (float(P)/(2*f))*math.sqrt(E/p); \n\n\n# Result\nprint 'Youngs modulus of quartz plate %3.5g'%E,'Nm^-2'\nprint 'Thickness of the crystal %.4e'%t,'m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Youngs modulus of quartz plate 8.7641e+10 Nm^-2\nThickness of the crystal 2.2077e-03 m\n"
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_-_I/chapter2.ipynb b/Engineering_Physics_-_I/chapter2.ipynb
new file mode 100755
index 00000000..84198c1f
--- /dev/null
+++ b/Engineering_Physics_-_I/chapter2.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "Chapter 2(s)"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 2: Lasers"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No: 2.40"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Number of electron hole pairs\n\nimport math\n\n# Variable Declaration\nA = 4*10**-6; # Receiving area of photo detector\nI = 200; # Intensity in W/m^2\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 0.4*10**-6; # wavelength of light in m\n\n#Calculations\nv = c/lamda; # frequency\nNOP = I*A/(h*v) # number of photons\n\n#since each photon generates an electron hole pair, the number of photons is equal to number of electron hole pairs\n\n# Result\n\nprint 'Number of electron hole pairs = %3.2e '%NOP;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Number of electron hole pairs = 1.61e+15 \n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No:2.40"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Wavelength\n\nimport math\n\n# Variable Declaration\nEg = 2.8; # bandgap energy in eV\nh = 6.625*10**-34; # plank's constant\nc = 3*10**8; # vel. of light in m/s\nq = 1.602*10**-19; # charge of electron\n\n# Calculations\nE = Eg*q # eV to joules conversion\nlamda = h*c/E; # wavelength\n\n#Result\nprint 'wavelength = %3.1f' %(lamda*10**10), '\u00c5(Blue Colour)';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "wavelength = 4430.8 \u00c5(Blue Colour)\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page No:2.41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Energy bandgap\n\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34; # plank's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 1.55*10**-6; # wavelength of light in m\nq = 1.6*10**-19; # charge of electron\n\n#Calculations\nEg = (h*c)/lamda; # band gap energy in joules\nE = Eg/q # bang gap energy in eV\n\n# Result\nprint 'Energy bandgap Eg = %3.4f'%E, 'eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy bandgap Eg = 0.8014 eV\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4, Page No:2.41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Number of photons required to do one Joule of work\n\nimport math\n\n# Variable Declaration\nh = 6.625*10**-34; # plank's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 4961*10**-10; # wavelength of light in m\n\n# Calculations\nE = (h*c)/lamda; # energy in joules\nN = 1/E\n\n# Result\nprint 'Number of photons required to do one Joule of work = %3.4e'%N,'/m^3';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Number of photons required to do one Joule of work = 2.4961e+18 /m^3\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5, Page No:2.41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Wavelength Limit\n# import math\n\n# Variable Declaration\nE = 0.02; # ionisation energy in eV\nh = 6.625*10**-34; # plank's constant\nc = 3*10**8; # vel. of light in m/s\nq = 1.6*10**-19; # charge of electron\n\n# Calculations\n\nlamda = h*c/(E*q) # long wavelength limit in m\n\n# Result\n\nprint 'long wavelength limit = %3.3e' %lamda,' m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "long wavelength limit = 6.211e-05 m\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6, Page No:2.42"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Wavelength\n\nimport math;\n\n# Variable Declaration\nE = 1.44; # Bandgap energy in eV\nh = 6.625*10**-34; # plank's constant\nc = 3*10**8; # vel. of light in m/s\nq = 1.6*10**-19; # charge of electron\n\n# Calculations\n\nlamda = h*c/(E*q) # Wavelength of GaAs laser\n\n# Result\nprint 'Wavelength of GaAs laser = %3.1f'%(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of GaAs laser = 8626.3 \u00c5\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 1, Page No:2.42"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Energy of the first excited state\n\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 5890*10**-10; # wavelength of light in m\nq = 1.6*10**-19; # charge of electron\n\n\n# Calculations\nEg = (h*c)/lamda; # energy in joules\nE = Eg/q # energy in eV\n\n# Result\nprint 'Energy of the first excited state = %3.3f' %E,'eV';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy of the first excited state = 2.109 eV\n"
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 2, Page No:2.43"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding The ratio between the stimulated emission and apontaneous emission\n\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 5890*10**-10; # wavelength of light in m\nk = 1.38*10**-23; # Boltzmann constant\nTc = 280 # Temperature in centigrades\n\n# Calculations\nT = Tc+273; # temperature in kelvin\nR = 1/((math.exp((h*c)/(k*T*lamda))) - 1); # ratio of stimulated emission to spontaneous emission\n\n# Result\nprint 'The ratio between the stimulated emission and apontaneous emission = %3.3e' %R;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The ratio between the stimulated emission and apontaneous emission = 6.264e-20\n"
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 3, Page No:2.43"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding The No. of Photons emitted per minute\n\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 6328*10**-10; # wavelength of He-Ne laser source in m\nq = 1.6*10**-19; # charge of electron\nP = 3*10**-3 # output power of the He-Ne source in watts or J/sec\n\n\n# Calculations\nv = c/lamda # frequency of the photon emitted by the laser beam\nE = h*v; # energy of a photon in joules\nPo = P*60; # conversion from J/sec to J/min\nN = Po/E; # No of photons emitted per minute \n\n# Result\nprint 'The No. of Photons emitted per minute = %3.3e' %N, 'photons/minute';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The No. of Photons emitted per minute = 5.731e+17 photons/minute\n"
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 4, Page No:2.44"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding The No. of Photons emitted per hour\n\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 9.6*10**-6; # wavelength of CO2 laser source in m\nq = 1.6*10**-19; # charge of electron\nP = 10*10**3 # output power of the CO2 laser source in watts or J/sec\n\n\n# Calculations\nv = c/lamda # frequency of the photon emitted by the laser beam\nE = h*v; # energy of a photon in joules\nPo = P*60*60; # conversion fro J/sec to J/hour\nN = Po/E; # No of photons emitted per hour \n\n# Result\nprint 'The No. of Photons emitted per hour = %3.3e'%N,' photons/hour';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The No. of Photons emitted per hour = 1.739e+27 photons/hour\n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 5, Page No:2.45"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 10*10**-2; # wavelength for microwave region in m\nT = 300 # Temperature in Kelvin\nKb = 1.38*10**-23 # Boltzmann constant\n\n# Calculations\n# let R = Rsp/Rst \nR = math.exp((h*c)/(lamda*Kb*T)) - 1 ; # ratio of spontaneous to stimulated emission\nif R<1:\n print 'Since the spontaneous emission is lesser than stimulated emission \\n hence MASER action is possible at thermal equilibrium'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Since the spontaneous emission is lesser than stimulated emission \n hence MASER action is possible at thermal equilibrium\n"
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 6, Page No:2.45"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nh = 6.625*10**-34; # planck's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 5000*10*8-10; # wavelength for optical region in m\nT = 300 # Temperature in Kelvin\nKb = 1.38*10**-23 # Boltzmann constant\n\n# Calculations\n# let R = Rsp/Rst \nR = math.exp((h*c)/(lamda*Kb*T)) - 1; # ratio of spontaneous to stimulated emission\nif R<1:\n print 'Since the spontaneous emission is lesser than stimulated emission \\n hence LASER action is possible at thermal equilibrium'\nelse:\n print 'Since the spontaneous emission is more predominant than stimulated emission\\nhence LASER action is not possible at optical frequencies under thermal equilibrium';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Since the spontaneous emission is lesser than stimulated emission \n hence LASER action is possible at thermal equilibrium\n"
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 7, Page No:2.46"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\nh = 6.625*10**-34; # plank's constant\nc = 3*10**8; # vel. of light in m/s\nlamda = 5511.11*10**-10; # wavelength of green LED light in m\nq = 1.6*10**-19; # charge of electron\n\n# Calculations\nEg = (h*c)/lamda; # band gap energy in joules\nE = Eg/q # bang gap energy in eV\n\n# Result\nprint ' Eg = %3.2f' %E,'eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Eg = 2.25 eV\n"
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_-_I/chapter3.ipynb b/Engineering_Physics_-_I/chapter3.ipynb
new file mode 100755
index 00000000..068dcc95
--- /dev/null
+++ b/Engineering_Physics_-_I/chapter3.ipynb
@@ -0,0 +1,209 @@
+{
+ "metadata": {
+ "name": "chapter 3(s)"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 3: Fibre Optics And Applications"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No: 3.40"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Numerical aperture\n\nimport math;\n\n# Variable Declaration\nn1 = 1.6; # Refractive index of core\nn2 = 1.5; # Refractive index of cladding\n\n# Calculations\nNA = math.sqrt(n1**2 - n2**2); # Numerical Aperture of optical fiber\n\n# Result\nprint 'Numerical Aperture of the optical fiber = %3.4f' %NA;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Numerical Aperture of the optical fiber = 0.5568\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No: 3.40"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Numerical aperture and acceptance Angle\n\nimport math;\n\n# Variable declaration\nn1 = 1.55; # Refractive index of core\nn2 = 1.5; # Refractive index of cladding\n\n# Calculations\nNA = math.sqrt(n1**2 - n2**2); # Numerical Aperture of optical fiber\nim = math.asin(NA); # Acceptance angle\nim_d = im*180/math.pi # radian to degree conversion\n\n# Result\nprint 'Numerical Aperture of the optical fiber = %3.4f'%NA,' Acceptance angle = %3.2f' %im_d,'degrees ';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Numerical Aperture of the optical fiber = 0.3905 Acceptance angle = 22.99 degrees \n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": " Example 3, Page No: 3.41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Refractive index of cladding\n\nimport math;\n\n# Variable declaration\nNA = 0.26; # Numerical aperture \nn1 = 1.5 ; # Refractive index of core\nd = 100*10^-6; # diameter of the core in m\n\n# Calculations\nn2 = math.sqrt( n1**2 - NA**2); # Refractive index of cladding\n\n# Result\nprint 'Refractive index of cladding = %3.4f' %n2;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Refractive index of cladding = 1.4773\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4, Page No: 3.41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Numerical aperture\n\nimport math;\n\n# variable Declaration\nn1 = 1.54; # Refractive index of core\nn2 = 1.5; # Refractive index of cladding\n\n# Calculations\nNA = math.sqrt(n1**2 - n2**2); # Numerical Aperture of optical fiber\n\n# Result\nprint 'Numerical Aperture of the optical fiber = %3.4f' %NA",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Numerical Aperture of the optical fiber = 0.3487\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 1, Page No: 3.42"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Refractive index, Acceptance angle, Maximum number of modes that fibre allows\n\nimport math;\n\n# Variable Declaration\nn1 = 1.5; # Refractive index of core\nNA = float(0.26); # Numerical aperture \nd = 100*10**-6 # core diameter\nlamda = float(10**-6); # wavelength in m\n\n# Calculations\nn2 = math.sqrt( n1**2 - NA**2); # Refractive index of cladding\nim = math.asin(NA); # Acceptance angle\nim_d = im*180/math.pi # radian to degree conversion\nN = 4.9*(d*NA/lamda)**2; # maximum no of modes\n\n# Result\nprint ' Refractive index of cladding n2 = %3.4f' %n2,'\\n Acceptance angle = %3.2f' %im_d, 'degrees','\\n Maximum number of modes that fibre allows = %d '%N;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Refractive index of cladding n2 = 1.4773 \n Acceptance angle = 15.07 degrees \n Maximum number of modes that fibre allows = 3312 \n"
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 2, Page No: 3.43"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": " # Finding Numerical aperture and Critical angle\n\nimport math;\n\n# Varible Declaration\ndelta = 0.02; # relative refractive index\nn1 = 1.48; # refractive index of core\n\n# Calculations\nNA = n1*(2*delta)**0.5; # Numerical aperture\nn2 = math.sqrt( n1**2 - NA**2); # Refractive index of cladding\ncri_ang = math.asin(n2/n1); # critical angle\ncri_ang_d = cri_ang*180/math.pi; # critical angle in degrees\n\n# Result\nprint ' Numerical Aperture = %3.3f'%NA,'\\n The Critical angle = %3.2f' %cri_ang_d,' degrees';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Numerical Aperture = 0.296 \n The Critical angle = 78.46 degrees\n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 3, Page No: 3.43"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding Refractive Index\n\nimport math\n\n# Variable declaration\ndelta = 0.015; # relative refractive index\nNA = 0.27; # Numerical aperture\n\n# Calculations\n# we know that NA = n1*sqrt(2*\u0394)\nn1 = NA/math.sqrt(2*delta) # refractive index of core\nn2 = math.sqrt( n1**2 - NA**2); # Refractive index of cladding\n\n# Result\nprint ' Refractive index of the core = %3.3f' %n1,'\\n Refractive index of the cladding = %3.3f\\n' %n2;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Refractive index of the core = 1.559 \n Refractive index of the cladding = 1.535\n\n"
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 4, Page No: 3.44"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# No. of total modes propagating in a multimode step index fibre\n\nimport math;\n\n# variable Declaration\nNA = 0.25; # Numerical aperture \nd = 60*10**-6 # core diameter\nlamda = 2.7*10**-6; # wavelength in m\n\n# calculations\nN = 4.9*(d*NA/lamda)**2; # no of modes for step index fibre\n\n# Result\nprint 'No. of total modes propagating in a multimode step index fibre = %d' %N;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "No. of total modes propagating in a multimode step index fibre = 151\n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 5, Page No: 3.44"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# Finding No. of total modes propagating in the fibre\nimport math;\n\n# Variable Declaration\nNA = 0.25; # Numerical aperture \nd = 6*10**-6 # core diameter\nlamda = 1.5*10**-6; # wavelength of laser source\nn1 = 1.47; # refractive index of core\nn2 = 1.43 # refractive index of cladding\n\n# calculations\nNA = math.sqrt( n1**2 - n2**2); # Numerical Aperture\nN = 4.9*(d*NA/lamda)**2; # no of modes for step index fibre\n\n# Result\nprint 'No. of total modes propagating in the fibre = %d' %N;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "No. of total modes propagating in the fibre = 9\n"
+ }
+ ],
+ "prompt_number": 30
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_-_I/chapter4.ipynb b/Engineering_Physics_-_I/chapter4.ipynb
new file mode 100755
index 00000000..995bbd50
--- /dev/null
+++ b/Engineering_Physics_-_I/chapter4.ipynb
@@ -0,0 +1,532 @@
+{
+ "metadata": {
+ "name": "chapter4s"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 4: Quantum Physics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No: 4.52"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\nlamda = 3*10**-10; # wavelength of incident photons in m\ntheta = 60; # viewing angle in degrees\nh = 6.625*10**-34 # plancks constant\nmo = 9.11*10**-31 # mass in Kg\nc = 3*10**8; # vel. of light \n\n# Calculatioms\n# from Compton theory ,Compton shift is given by\n# lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\n\ntheta_r = theta*math.pi/180; # degree to radian conversion\nlamda1 = lamda+( (h/(mo*c))*(1-math.cos(theta_r))) # wavelength of scattered photons\n\n# Result\nprint 'Wavelength of Scattered photons = %3.4f'%(lamda1*10**10),'\u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of Scattered photons = 3.0121 \u00c5\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No:4.52"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable declaration\ntheta = 135; # angle in degrees\nh = 6.625*10**-34 # plancks constant\nmo = 9.1*10**-31 # mass in Kg\nc = 3*10**8; # vel. of light in m/s\n\n# Calculatioms\n# from Compton theory ,Compton shift is given by\n# lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\ntheta_r = theta*math.pi/180; # degree to radian conversion\nc_lamda = ( (h/(mo*c))*(1-math.cos(theta_r))) # Change in wavelength in m\n\n# Result\nprint 'Change in Wavelength = %3.5f' %(c_lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Change in Wavelength = 0.04143 \u00c5\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page No:4.53"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\nlamda = 0.1*10**-9; # wavelength of X-rays in m\ntheta = 90; # angle with incident beam in degrees\nh = 6.625*10**-34 # plancks constant\nmo = 9.11*10**-31 # mass in Kg\nc = 3*10**8; # vel. of light \n\n# Calculatioms\n# from Compton theory ,Compton shift is given by\n# lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\ntheta_r = theta*math.pi/180; # degree to radian conversion\nlamda1 = lamda+( (h/(mo*c))*(1-math.cos(theta_r))) #wavelength of scattered beam\n\n# Result\nprint 'Wavelength of Scattered beam = %3.4f' %(lamda1*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of Scattered beam = 1.0242 \u00c5\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4, Page No:4.53"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34 # plancks constant\nm = 9.11*10**-31 # mass of electron in Kg\ne = 1.6*10**-19 # charge of electron\nV = 150; # potential difference in volts\n\n# Calculations\n\nlamda = h/(math.sqrt(2*m*e*V)) # de Broglie wavelength\n\n#Result\nprint 'The de-Broglie wavelength = %d' %(lamda*10**10), '\u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The de-Broglie wavelength = 1 \u00c5\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5, Page No:4.54"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\nh = 6.625*10**-34 # plancks constant\nm = 9.11*10**-31 # mass of electron in Kg\ne = 1.6*10**-19 # charge of electron\nV = 5000; # potential in volts\n\n# Calculations\n\nlamda = h/(math.sqrt(2*m*e*V)) #de Broglie wavelength\n\n# Result\nprint 'The de-Broglie wavelength of electron = %3.5f' %(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The de-Broglie wavelength of electron = 0.17353 \u00c5\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6, Page No:4.55"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\nE = 100 # Energy of electron in eV\nh = 6.625*10**-34 # plancks constant\nm = 9.11*10**-31 # mass of electron in Kg\ne = 1.6*10**-19 # Charge of electron in Columbs\n\n# Calculations\n\nE1 = E*e # Energy conversion from eV to Joule\nlamda = h/(math.sqrt(2*m*E1)) # de Broglie wavelength\n\n# Result\nprint 'The de-Broglie wavelength = %3.3f' %(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The de-Broglie wavelength = 1.227 \u00c5\n"
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7, Page No:4.55"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\nm = 1.675*10**-27; # Mass of proton in kg\nc = 3*10**8; # velocity of light in m/s\nh = 6.625*10**-34 # plancks constant\n\n# Calculations\n\nvp = c/20; # velocity of proton in m/s\nlamda = h/(m*vp) # de-Broglie wavelength in m\n\n# Result\nprint 'de-Broglie wavelength = %e'%(lamda),'lamda';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "de-Broglie wavelength = 2.636816e-14 lamda\n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8, Page No:4.56"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable declaration\nE = 10000 # Energy of neutron in eV\nh = 6.625*10**-34 # plancks constant\nm = 1.675*10**-27 # mass of neutron in Kg\ne = 1.6*10**-19 \n\n# Calculations\n\nE1 = E*e # Energy conversion from eV to Joule\nlamda = h/(math.sqrt(2*m*E1)) # de Broglie wavelength\n\n# Result\nprint 'The de-Broglie wavelength of neutron = %3.3e' %lamda,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The de-Broglie wavelength of neutron = 2.862e-13 m\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10, Page No:4.58"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable decalaration\nl = 0.1*10**-9; # side of cubical box\nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nKb = 1.38*10**-23 # Boltzmann constant \n\n# Calculations\n# for cubical box the energy eigen value is Enx ny nz = (h^2/(8*m*l^2))*(nx^2 + ny^2 +nz^2)\n# For the next energy level to the lowest energy level nx = 1 , ny = 1 and nz = 2\nnx = 1\nny = 1\nnz = 2\nE112 = (h**2/(8*m*l**2))*( nx**2 + ny**2 + nz**2);\n\n# We know the average energy of molecules of aperfect gas = (3/2)*(Kb*T)\nT = (2*E112)/(3*Kb); # Temperature in kelvin\n\n# Result\nprint 'E112 = %3.4e' %E112,'Joules'',\\n','Temperature of the molecules T = %3.4e' %T, 'K';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "E112 = 3.6134e-17 Joules,\nTemperature of the molecules T = 1.7456e+06 K\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11, Page No:4.59"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\nl = 4*10**-9; # width of infinitely deep potential\nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nn = 1; # minimum energy\ne = 1.6*10**-19 # charge of electron in columbs\n\n# Calculations\nE = (h**2 * n**2)/(8*m*l**2) # Energy of electron in an infinitely deep potential well \nE1 = E/e #energy conversion from joules to eV\n\n# Result\nprint 'Minimum energy of an electron = %3.4f' %E1,' eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum energy of an electron = 0.0235 eV\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12, Page No:4.61"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nl = 0.1*10**-9; # length of one dimensional box \nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nn = 1; # for ground state\nn5 = 6; # n value for fifth excited state\ne = 1.6*10**-19 # charge of electron in columbs\n\n# Calculations\nEg = (h**2 * n**2)/(8*m*l**2 * e ) # Energy in ground state in eV \nEe = (h**2 * n5**2)/(8*m*l**2 * e) # Energy in excited state in eV\nE = Ee - Eg; # energy req to excite electrons from ground state to fifth excited state\n\n# Result\nprint 'Energy required to excite an electron from ground state to fifth excited state = %3.2f' %E, 'eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy required to excite an electron from ground state to fifth excited state = 1317.38 eV\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13, Page No:4.62"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable decalration\nl = 0.1*10**-9; # length of one dimensional box \nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nn = 1; # for ground state\ne = 1.6*10**-19 # charge of electron in columbs\n\n# Calculations\nE = (h**2 * n**2)/(8*m*l**2 *e ) # Energy of electron in eV \n\n# Result\nprint 'Energy of an electron = %3.3f' %E,' eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy of an electron = 37.639 eV\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14, Page No:4.63"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\nl = 0.5*10**-9; # width of one dimensional box in m \nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nn = 1; # for ground state\ne = 1.6*10**-19 # charge of electron in columbs\n\n# Calculations\nE = (h**2 * n**2)/(8*m*l**2 *e ) # Energy of electron in eV \n\n# Result\nprint 'Least Energy of an electron = %3.4f' %E,' eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Least Energy of an electron = 1.5056 eV\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 1, Page No:4.64"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable declaration\nh = 6.625*10**-34 # plancks constant\nc = 3*10**8; # vel. of light\nlamda = 5893*10**-10; # wavelength in m\nP = 100 # power of sodium vapour lamp\n\n# Calculations\nE = (h*c)/lamda; # Energy in joules\nN = P/E # Number of photons emitted\n\n# Result\nprint 'Number of Photons emitted = %3.4e' %N,' per second';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Number of Photons emitted = 2.9650e+20 per second\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 2, Page No:4.64"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\nlamda1 = 0.022*10**-10; # wavelength of scatterd X-rays in m\ntheta = 45; # scatterring angle in degrees\nh = 6.625*10**-34 # plancks constant\nmo = 9.11*10**-31 # mass in Kg\nc = 3*10**8; # vel. of light \n\n# Calculatioms\n# from Compton theory ,Compton shift is given by\n# lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\n\ntheta_r = theta*math.pi/180; # degree to radian conversion\nlamda = lamda1-( (h/(mo*c))*(1-math.cos(theta_r))) # incident Wavelength\n\n# Result\nprint 'Wavelength of incident beam = %3.4f' %(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of incident beam = 0.0149 \u00c5\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 3 , Page No:4.65"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nEi = 1.02*10**6 # photon energy in eV\ntheta = 90; # scattered angle in degrees\nh = 6.625*10**-34 # plancks constant\nmo = 9.1*10**-31 # mass of electron in Kg\ne = 1.6*10**-19 # charge of electron\nc = 3*10**8; # vel. of light in m/s\n\n# Calculations\n# from Compton theory ,Compton shift is given by\n# lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\ntheta_r = theta*math.pi/180; # degree to radian conversion\nc_lamda = ( (h/(mo*c))*(1-math.cos(theta_r))) #Change in wavelength in m\ndv = c/c_lamda; # change in frequency of the scattered photon\ndE = (h*dv)/e # change in energy of scattered photon in eV\n# This change in energy is transferred as the KE of the recoil electron\nEr = dE; # Energy of recoil electron\nEs = Ei - Er # Energy of scattered photon\n\n\n# Result\nprint 'Energy of the recoil electron = %3.4f' %(Er*10**-6),' MeV','\\n','Energy of the Scattered photon = %3.4f' %(Es*10**-6),'MeV';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy of the recoil electron = 0.5119 MeV \nEnergy of the Scattered photon = 0.5081 MeV\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 4, Page No:4.65"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nlamda = 0.124*10**-10; # wavelength of X-rays in m\ntheta = 180; # Scattering angle in degrees\nh = 6.625*10**-34 # plancks constant\nmo = 9.11*10**-31 # mass in Kg\nc = 3*10**8; # vel. of light \n\n# Calculatioms\n# from Compton theory ,Compton shift is given by\n# lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\n\ntheta_r = theta*math.pi/180; # degree to radian conversion\nlamda1 = lamda+( (h/(mo*c))*(1-math.cos(theta_r))) # wavelength of scattered X-rays\n\n# Result\nprint 'Wavelength of Scattered X-rays = %3.4f' %(lamda1*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of Scattered X-rays = 0.1725 \u00c5\n"
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 5, Page No:4.65"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nh = 6.625*10**-34 # plancks constant\nm = 9.11*10**-31 # mass of electron in Kg\ne = 1.6*10**-19 # charge of electron\nV = 2000; # potential in volts\n\n# Calculations\n\nlamda = h/(math.sqrt(2*m*e*V)) # de Broglie wavelength\n\n# Result\nprint 'The de-Broglie wavelength of electron = %3.4f' %(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The de-Broglie wavelength of electron = 0.2744 \u00c5\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 6, Page No:4.66"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable Declaration \nh = 6.625*10**-34 # plancks constant\nm = 1.678*10**-27 # mass of proton in Kg\ne = 1.6*10**-19 # charge of electron\nKb = 1.38*10**-23; # boltzmann constant\nT = 300 # Temperature in kelvin\n\n#Calculations\nlamda = h/(math.sqrt(3*m*Kb*T)) #de Broglie wavelength\n\n#Result\nprint 'The de-Broglie wavelength = %3.4f' %(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The de-Broglie wavelength = 1.4512 \u00c5\n"
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 7, Page No:4.66"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nh = 6.625*10**-34 # plancks constant\nm = 9.11*10**-31 # mass of electron in Kg\nlamda = 3*10**-2; # wavelength of electron wave\ne = 1.6*10**-19; # charge of electron\n\n# Calculations\nE = (h**2)/(2*m*lamda**2); # Energy in Joules\nE1 = E/e;\n\n# Result\nprint 'Energy of the electron E = %3.4e' %E1,'eV';\nprint 'Note: Calculation mistake in textbook'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy of the electron E = 1.6729e-15 eV\nNote: Calculation mistake in textbook\n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 8, Page No:4.67"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\nh = 6.625*10**-34 # plancks constant\nm = 9.11*10**-31 # mass of electron in Kg\nc = 3*10**8; # velocity of light in m/s\n\n# Calculations\nve = 0.7071*c # velocity of electron\nlamda = h/(m*ve*math.sqrt(1-(ve/c)**2)) #de Broglie wavelength\n\n# we know Compton wavelength ,lamda' - lamda = (h/(mo*c))*(1-cos\u03b8)\n# maximum shift \u03b8 = 180\ntheta = 180\ntheta1 = theta*math.pi/180;\nd_lamda = (h/(m*c))*(1-math.cos(theta1))\nprint 'de Broglie wavelength = %e' %lamda,' m';\nprint 'compton wavelength = %e' %d_lamda,'m';\nprint 'The de-Broglie wacelength is equal to the compton wavelength';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "de Broglie wavelength = 4.848152e-12 m\ncompton wavelength = 4.848152e-12 m\nThe de-Broglie wacelength is equal to the compton wavelength\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 9, Page no:4.68"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nl = 10**-10; # side of one dimensional box \nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nn1 = 1; # for 1st eigen value\nn2 = 2; # for 2nd eigen value\nn3 = 3; # for 3rd eigen value\nn4 = 4; # for 4th eigen value\ne = 1.6*10**-19 # charge of electron in columbs\n\n# Calculations\nE1 = (h**2 * n1**2)/(8*m*l**2 *e ) #first Eigen value\nE2 = (h**2 * n2**2)/(8*m*l**2 *e ) # second Eigen value\nE3 = (h**2 * n3**2)/(8*m*l**2 *e ) # third Eigen value\nE4 = (h**2 * n4**2)/(8*m*l**2 *e ) # fourth Eigen value\n \n# Result\nprint '1st Eigen value = %3.1f' %E1,'eV';\nprint '2nd Eigen value = %3.1f' %E2,'eV';\nprint '3rd Eigen value = %3.1f' %E3,'eV';\nprint '4th Eigen value = %3.1f' %E4,'eV';\n\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "1st Eigen value = 37.6 eV\n2nd Eigen value = 150.6 eV\n3rd Eigen value = 338.8 eV\n4th Eigen value = 602.2 eV\n"
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 10 , Page No:4.68"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nl = 10**-10 ; # length of one dimensional box in m \nh = 6.625*10**-34 # plancks constant in Jsec\nm = 9.11*10**-31 # mass of electron in Kg\nn = 1; # for ground state\ne = 1.6*10**-19 # charge of electron in columbs\n\n# Calculations\nE = 2*(h**2 * n**2)/(8*m*l**2 *e ) #Energy of system having two electrons\n\n# Result\nprint 'Energy of the system having two electrons = %3.4f' %E,' eV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Energy of the system having two electrons = 75.2789 eV\n"
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 11 , Page No:4.69"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nb = 40; # angle subtended by final images at eye in degrees\na = 10 # angle subtended by the object at the eye kept at near point in degrees\n\n# Calculations\nb_r = b*math.pi/180; # degree to radian conversion\na_r = a*math.pi/180; # degree to radian conversion\nM = math.tan(b_r)/math.tan(a_r); # magnifying power\n\n#Result\nprint 'Magnifying power = %3.3f' %M;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Magnifying power = 4.759\n"
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_-_I/chapter5.ipynb b/Engineering_Physics_-_I/chapter5.ipynb
new file mode 100755
index 00000000..78a1015e
--- /dev/null
+++ b/Engineering_Physics_-_I/chapter5.ipynb
@@ -0,0 +1,700 @@
+{
+ "metadata": {
+ "name": "Chapter5(s)"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 5: Crystal Physics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page no:5.72"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n\n#Copper has FCC structure\nr = 1.273; # Atomic radius in angstrom\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 63.5; # Atomic weight of copper in grams\nn = 4; # No. of atoms per unit cell for FCC\n\n# Calculations\nr1 = r*10**-10; # Radius conversion from angstrom to m\na = (4*r1)/math.sqrt(2); # lattice parameter for FCC\np = (n*A)/(N*a**3); # Density of copper\n\n# Result\nprint 'Lattice Constant a = %3.1e' %a,' m','\\n', 'Density of copper = %3.1f' %p,' kg/m^3';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lattice Constant a = 3.6e-10 m \nDensity of copper = 9034.4 kg/m^3\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page no:5.73"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# given intercepts 3,4 and \u221e, the recipocals of intercepts is\n# (1/3):(1/4):(1/\u221e)\n# LCM = 12\n# multiplying by LCM we get miller indices\n# miller indices of a plane are the smallest integers of the reciprocals of its intercerpts\n# therefore miller indices(h k l) is (4 3 0);\n\nh = 4; # miller indice\nk = 3; # miller indice\nl = 0; # miller indice\na = 2; # primitive vector of lattice in angstrom\n\n#Calculations\n\ndhkl = a/math.sqrt((h**2)+(k**2)+(l**2)); #interplanar distance\n\n# Result\nprint 'Miller indices = (4 3 0)';\nprint 'The interplanar distance d = %3.1f' %dhkl,' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Miller indices = (4 3 0)\nThe interplanar distance d = 0.4 \u00c5\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page no:5.74"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# \u03b1-Iron solidifies to BCC structure\n\nr = 1.273; # Atomic radius in angstrom\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 55.85; # Atomic weight of \u03b1-Iron in kilograms\nn = 2; # No. of atoms per unit cell for BCC\np = 7860; # density in kg/m^-3\n\n#Calculations\n\n# p = (n*A)/(N*a^3); density\n\na = ((n*A)/(N*p))**(0.333); # lattice constant\na1 = a*10**10; # m to angstrom conversion\nr = (a1*math.sqrt(3))/4 # atomic radius for BCC\n\n#Output\nprint 'The Radius of the atom = %3.5f' %r,' \u00c5'\nprint 'Note : atomic wt taken as 55.58*10^-3 instead of 55.85 in calculation'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Radius of the atom = 1.26955 \u00c5\nNote : atomic wt taken as 55.58*10^-3 instead of 55.85 in calculation\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4, Page no:5.75"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nlamda = 1.5418; # wavelength in \u00c5\nh = 1; # miller indice\nk = 1; # miller indice\nl = 1; # miller indice\nn = 1; # given first order\ntheta = 30; # diffraction angle in degrees\n\n# Calculations\ntheta1 = theta*math.pi/180; # degree to radian conversion\n# d = (n*lamda)/(2*sin\u03b8); by Braggs law ------------- 1\n# d = a/sqrt((h^2)+(k^2)+(l^2)); interplanar distance ------------ 2\n# equating 1 and 2\n\na = (n*lamda*math.sqrt((h**2)+(k**2)+(l**2))/(2*math.sin(theta1)))\n\n# Result\nprint 'Interatomic spacing a = %f \u00c5' %a;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Interatomic spacing a = 2.670476 \u00c5\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5, page no:5.76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable Declaration\nh1 = 1; # miller indice\nk1 = 1; # miller indice\nl1 = 1; # miller indice\nh0 = 0; # miller indice\nk0 = 0; # miller indice\nl0 = 0; # miller indice\n\n# Calculations\n# dhkl = a/sqrt((h^2)+(k^2)+(l^2)); // interplanar distance\n# assume a = 1(constant) for easier calculation in scilab\n\na = 1;\nd100 = a/math.sqrt((h1**2)+(k0**2)+(l0**2)); # interplanar distance\nd110 = a/math.sqrt((h1**2)+(k1**2)+(l0**2)); # interplanar distance\nd111 = a/math.sqrt((h1**2)+(k1**2)+(l1**2)); # interplanar distance\n\n# Result\nprint 'd100 : d110 : d111 = ','%d ' %d100,':','%3.2f' %d110,':', '%3.2f' %d111;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "d100 : d110 : d111 = 1 : 0.71 : 0.58\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6, page no:5.76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# Aluminium is FCC\n\na = 0.405*10**-9; # lattice constant of aluminium\nt = 0.005*10**-2; # thickness of aluminium foil in m\ns = 25*10**-2; # side of square in m\n\n# Calculations\nVUC = a**3; # volume of unit cell\nVal = (s**2)*t # volume of aluminium foil (area*thickness)\nN = Val/VUC # Number if unit cells\n\n# Result\nprint 'Number of unit cells = %3.3e' %N",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Number of unit cells = 4.704e+22\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7, page no:5.77"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable declaration\n# metallic iron changes from BCC to FCC form at 910 degress\nrb = 0.1258*10**-9; # atomic radius of BCC iron atom\nrf = 0.1292*10**-9; # atomic radius of FCC iron atom\n\n# Calculations\n\nab = (4*rb)/(math.sqrt(3)); # lattice constant for BCC\nVbcc = (ab**3)/2; # volume occupied by one BCC atom\naf = (4*rf)/(math.sqrt(2)) # lattice constant for FCC\nVfcc = (af**3)/4; # volume occupied by one FCC atom\ndv = ((Vbcc-Vfcc)/Vbcc)*100 # percentage change in volume\n\n# Result\nprint 'During the structural change the percentage change in volume = %3.4f' %dv;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "During the structural change the percentage change in volume = 0.4933\n"
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8, page no:5.78"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n#variable declaration\n#Copper Crystallines in FCC structure\n\np = 8960; # Density of copper in kg/m^3\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 63.5; # Atomic weight of copper in kg/mol\nn = 4; # No. of atoms per unit cell for FCC\n\n# Calculations\n\na = ((n*A)/(N*p))**(0.333);\n\n# Result\n\nprint 'Lattice Constant a = %3.4f' %(a*10**10),' \u00c5';\nprint 'atomic wt of copper is taken as 63.5*10^-3 instead of 63.5 in textbook';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lattice Constant a = 3.6899 \u00c5\natomic wt of copper is taken as 63.5*10^-3 instead of 63.5 in textbook\n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9, page no:5.79"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\n# (100) planes in rock crystal\nh = 1; # miller indice\nk = 0; # miller indice\nl = 0; # miller indice\na = 2.814 # lattice constant in \u00c5\n\n# Calculations\ndhkl = a/math.sqrt((h**2)+(k**2)+(l**2)); # interplanar distance\n\n#Result\nprint 'd-spacing for (100) plane in rock salt = %3.3f' %dhkl,' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "d-spacing for (100) plane in rock salt = 2.814 \u00c5\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10, page no:5.79"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# FCC structured crystal\n\np = 6250; # Density of crystal in kg/m^3\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 60.2; # molecular weight\nn = 4; # No. of atoms per unit cell for FCC\n\n# Calculations\n\na = ((n*A)/(N*p))**(0.333);\n\n# Result\n\nprint 'Lattice Constant a = %3.3e' %a, 'm';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lattice Constant a = 4.087e-10 m\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11, page no:5.80"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# (321) plane in simple cubic lattice\nh = 3; # miller indice\nk = 2; # miller indice\nl = 1; # miller indice\na = 4.12 # inter atomic space \u00c5\n\n# Calculations\ndhkl = a/math.sqrt((h**2)+(k**2)+(l**2)); #interplanar distance\n\n# Result\nprint 'd = %3.2f' %dhkl,' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "d = 1.10 \u00c5\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12, page no:5.81"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# BCC structured crystal\n\np = 7860; # Density of iron in kg/m^3\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 55.85; # Atomic weight\nn = 2; # No. of atoms per unit cell for BCC\n\n# Calculations\n\na = ((n*A)/(N*p))**(0.333); #lattice constant\n\n# Result\n\nprint 'Lattice Constant of Fe = %3.3f' %(a*10**10),' \u00c5 ';\nprint 'Note: density of iron is taken as 7.86 instead of 7860 in calculation'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lattice Constant of Fe = 2.932 \u00c5 \nNote: density of iron is taken as 7.86 instead of 7860 in calculation\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14, page no:5.82"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable Declaration\nr = 0.123*10**-10; # Radius of the atom\n\n# Calculations\na = (4*r)/math.sqrt(3); # Lattice constant in m For a BCC structure\nV = a*a*a; # Volume of BCC\n\n# Result\nprint 'Volume of the unit cell = %3.4e' %V,' m^3';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Volume of the unit cell = 2.2920e-32 m^3\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 15, page no:5.82"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\na = 0.05; # unit cell edge of an orthorhombic crystal in nm\nb = 0.05; # unit cell edge of an orthorhombic crystal in nm\nc = 0.03; # unit cell edge of an orthorhombic crystal in nm\nIa = 0.025 # intercept on 'a' in nm\nIb = 0.02 # intercept on 'b' in nm\nIc = 0.01 # intercept on 'c' in nm\n\n# Calculations\n\nh = a/Ia; # miller indice h\nk = b/Ib; # miller indice k\nl = c/Ic # miller indice l\n\n# Result\nprint 'Miller indices (h k l) =', '%d' %h,'%d' %k, '%d' %l; ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Miller indices (h k l) = 2 2 3\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16, page no:5.83"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Magnesium has HCP structure\n# for HCF(Hexagonal closed packed structure) consider the relation between 'c' and 'a';\n# c/a = sqrt(8/3) = 1.6329 \n\n# Variable Declaration\nr = 0.1605*10**-9; # radius of magnesium atom in m\n\n# Calculations\n\na = 2*r # lattice constant of HCP\nc = a*math.sqrt(float(8)/3); # relation b/w c and a in HCP\nV = (3*(3**0.5))*(a*a*c)/2; #Volume of unit cell in m^3\n\n# Result\nprint 'Volume of the unit cell of magnesium = %g' %V,' m^3';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Volume of the unit cell of magnesium = 1.4033e-28 m^3\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 17, page no:5.84"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\n# (101),(221) planes in simple cubic lattice\nh1 = 1; # miller indice\nk0 = 0; # miller indice\nl1 = 1; # miller indice\nh2 = 2; # miller indice\nk2 = 2; # miller indice\nl1 = 1; # miller indice\na = 4.2 # inter atomic space \u00c5\n\n# Calculations\n\nd101 = a/math.sqrt((h1**2)+(k0**2)+(l1**2)); # interplanar distance\nd221 = a/math.sqrt((h2**2)+(k2**2)+(l1**2)); # interplanar distance\n\n\n# Result\nprint 'd(101) = %3.4f' %d101,' \u00c5','\\n','d(221) = %3.1f' %d221,' \u00c5 ';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "d(101) = 2.9698 \u00c5 \nd(221) = 1.4 \u00c5 \n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 1, page no:5.85"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable declaration\n\n# Copper has FCC structure\na = 3.6; #lattice parameter of copper in \u00c5\n\n# Calculations\n\nr = a*math.sqrt(2)/4; # atomic radius of copper\n\n# Result\nprint 'Atomic Radius of copper = %3.3f' %r,'\u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Atomic Radius of copper = 1.273 \u00c5\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 2, page no:5.85"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable Declaration\n\n# Copper has FCC structure\n\nr = 1.278; # Atomic radius in angstrom\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 63.54; # Atomic weight of copper \nn = 4; # No. of atoms per unit cell for FCC\n\n# Calculations\nr1 = r*10**-10; # Radius conversion from angstrom to m\na = (4*r1)/math.sqrt(2); # lattice parameter for FCC\np = (n*A)/(N*a**3); # Density of copper\n\n# Result\n\nprint ' Density of copper = %3.2f' %p,' kg/m^3';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Density of copper = 8934.43 kg/m^3\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 3, page no:5.86"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nANa = 23; # atomic wt of sodiim\nACl = 35.45 # atomic wt of chlorine\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nn = 4 # No. of atoms per unit cell for FCC\np = 2180; # density in kg/m^-3\n\n# Calculations\n\n# p = (n*A)/(N*a^3); density\nA = ANa+ACl; # atomic wt of NaCl\na = ((n*A)/(N*p))**(0.33333); # lattice constant\nr = a/2 # Distance b/w two adjacent atoms\n\n# Result\nprint 'Distance between two adjacent atoms is r = %3.2e' %r,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Distance between two adjacent atoms is r = 2.81e-10 m\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 4, page no:5.87"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nr = 1.273; # Atomic radius in angstrom\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 55.85 ; # Atomic weight of Fe \nn = 2; # No. of atoms per unit cell for BCC\np = 7860; # density in kg/m^-3\n\n# Calculations\n\n# p = (n*A)/(N*a^3); density\n\na = ((n*A)/(N*p))**(0.33333); # lattice constant\na1 = a*10**10; # m to angstrom conversion\nr = (a1*math.sqrt(3))/4 # atomic radius for BCC\n\n# Result\nprint 'The Radius of the Fe = %3.3f' %r,' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Radius of the Fe = 1.242 \u00c5\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 5, page no:5.88"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nN = 6.023*10**26; # Avagadros number in atoms/kilomole\nA = 119; # Atomic weight of pottasium bromide\nn = 4; # No. of atoms per unit cell for FCC\np = 2700; # density in kg/m^-3\n\n# Calculations\n\n# p = (n*A)/(N*a^3); density\n\na = ((n*A)/(N*p))**(0.33333); # lattice constant\na1 = a*10**10; # m to angstrom conversion\n\n# Output\nprint 'Lattice constant = %3.1f' %a1,' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lattice constant = 6.6 \u00c5\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 6, page no:5.88"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\na = 4.3*10**-10; # Lattice constant in \u00c5\np = 960; # Density of crystal in kg/m^3\nA = 23; # Atomic wt\nN = 6.023*10**26; # avogadros no in atoms/kilomole\n\n# Calculations\n\nn = (p*N*(a**3))/A; # No. of atoms per unit cell\n\n# result\nprint 'No. of atoms per unit cell = %3.0f' %n,' (BCC)';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "No. of atoms per unit cell = 2 (BCC)\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 7, page no:5.89"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration \n\n# given crystal has BCC structure\nr = 1.2*10**-10; # atomic radius in m\n\n# Calculations\n\na = (4*r)/math.sqrt(3); # lattice constant\nV = a**3; # volume of cell\n\n# Result\nprint 'Volume of the cell = %3.3e' %V,' m^3';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Volume of the cell = 2.128e-29 m^3\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 8, page no:5.89"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\na = 4*10**-10; # lattice constant of the crystal\nh = 1 # miller indice\nk = 0 # miller indice\nl = 0 # miller indice\n\n# Calculations\n\n# in fig consider (100) plane. the no of atoms in plane ABCD\nN = 4*(float(1)/4); # Number of atoms\np = N/(a*a); # planar atomic density in atoms/m^2\np1 = p*10**-6 # planar atomic density in atoms/mm^2\n\n# Result\nprint 'planar atomic density = %3.2e' %p1,' atoms/mm^2';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "planar atomic density = 6.25e+12 atoms/mm^2\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 9, page no:5.90"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n# in fig 5(b) the given plane is parallel to X and Z axes.Thus,its numerical intercepts on these axes is infinity\n#The numerical intercept on y axis is 1/2. Thus the numerical intercepts of plane is (\u221e 1/2 \u221e)\nprint ' Miller indices of plane shown in fig 5.(b) = (0 2 0)';\n# in fig 5(c) the given plane is parallel to Z axis.Thus its numerical intercept on z axis is infinity\n# The numerical intercept on x axis is 1 and y axis is 1/2. this numerical intercepts on plane is (1 1/2 \u221e )\nprint ' Miller indices of plane shown in fig 5.(c) = (1 2 0)'\n# in fig 5(d) the given plane is parallel to Z axis.Thus its numerical intercept on z axis is infinity\n# The numerical intercept on x axis is 1/2 and y axis is 1/2. this numerical intercepts on plane is (1/2 1/2 \u221e )\nprint ' Miller indices of plane shown in fig 5.(d) = (2 2 0)'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Miller indices of plane shown in fig 5.(b) = (0 2 0)\n Miller indices of plane shown in fig 5.(c) = (1 2 0)\n Miller indices of plane shown in fig 5.(d) = (2 2 0)\n"
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 11, page no:5.91"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n\n# (311) plane in simple cubic lattice\nh = 3; # miller indice\nk = 1; # miller indice\nl = 1; # miller indice\na = 2.109*10**-10 # lattice constant in m\n\n# Calculations\ndhkl = a/math.sqrt((h**2)+(k**2)+(l**2)); # interplanar distance\n\n# Result\nprint 'd = %3.3e' %dhkl,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "d = 6.359e-11 m\n"
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 12, page no:5.92"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nh = 1; # miller indice\nk = 1; # miller indice\nl = 0; # miller indice\nd = 2.86*10**-10 # interplanar distance in m\n\n# Calculations\na = d*math.sqrt((h**2)+(k**2)+(l**2)); # interplanar distance\n\n# Result\nprint 'Lattice constant a = %3.3e' %a,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lattice constant a = 4.045e-10 m\n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 13, page no:5.93"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nh1 = 1;\nh0 = 0;\nk0 = 0;\nl0 = 0;\nl1 = 1;\n\n# Calculations\n\n# we know that dhkl = a/sqrt( h^2 + k^2 + l^2)\n# let sqrt( h^2 + k^2 + l^2) = p\np101 = math.sqrt( h1**2 + k0**2 + l1**2);\np100 = math.sqrt( h1**2 + k0**2 + l0**2);\np001 = math.sqrt( h0**2 + k0**2 + l1**2);\n\n# Result\nprint 'd101 : d100 : d001 :: a/%3.4f' %p101,' : ','a/%d' %p100,':',' a/%d ' %p001;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " d101 : d100 : d001 :: a/1.4142 : a/1 : a/1 \n"
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 14, page no:5.93"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# if a plane cut intercepts of lengths l1,l2,l3 the on three crystal axes ,then\n# l1 : l2 : l3 = pa : pq :rc\n# where a,b and c are primitive vectors of the unit cell and p,q and r are numbers related to miller indices (hkl) of plane by relation\n# 1/p : 1/q : 1/r = h : k : l\n# since, the crystal is simple cubic a = b = c and given that h = 1, k = 1 and l = 1\n# p : q : r = 1/h : 1/k : 1/l = 1/1 : 1/1 : 1/1 \n# p : q : r = 1 : 1 : 1\n# similarly l1 : l2 : l3 = 1a : 1a : 1a\nprint 'ratio of intercepts on the three axes by (111) plane is l1 : l2 : l3 = 1 : 1 : 1';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "ratio of intercepts on the three axes by (111) plane is l1 : l2 : l3 = 1 : 1 : 1\n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 15, page no:5.94"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\n\nr = 1.246*10**-10; # atomic radius in m\nh1 = 1 # miller indice\nh2 = 2 # miller indice\nk0 = 0 # miller indice\nk1 = 1 # miller indice\nk2 = 2 # miller indice\nl0 = 0 # miller indice\nl1 = 1 # miller indice\n\n# Calculations\na = (4*r)/math.sqrt(2); # lattice constant\nd111 = a/math.sqrt((h1**2)+(k1**2)+(l1**2)); # interplanar distance\nd200 = a/math.sqrt((h2**2)+(k0**2)+(l0**2)); # interplanar distance\nd220 = a/math.sqrt((h2**2)+(k2**2)+(l0**2)); # interplanar distance\n\n# Result\nprint 'd111 = %3.3e' %d111,' m','\\n' 'd200 = %3.4e' %d200,' m','\\n''d220 = %3.3e' %d220,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "d111 = 2.035e-10 m \nd200 = 1.7621e-10 m \nd220 = 1.246e-10 m\n"
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 16, page no:5.95"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable Declaration\n# the intercept along X-axis be c1 = a\n# the intercept along Y-axis be c2 = b/2 and\n# the intercept along Z-axis be c3 = 3c\n# Therefore, p = c1/a = a/a = 1\n# q = c2/b = (b/2)/b = 1/2\n# r = c3/c = (3c)/c = 3\n# therefore h = 1/p = 1\n# k = 1/q = 2\n# l = 1/r = 1/3\n# lcm of 1 1 and 3 = 3\nh = 1\nk = 2\nl = float(1)/3\ns = 3 ; # lcm\nh1= s*h\nk1= s*k\nl1= s*l;\n\n# Result\nprint '(h k l) =', '%d' %h1,' %d' %k1,'%3.0f' %l1;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "(h k l) = 3 6 1\n"
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Addl_Example 17, page no:5.96"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nd = 1.3*10**-10 # interplanar distance\nn = 1; # given first order\ntheta = 23; # Bragg reflection angle in degrees\n\n# Calculations\ntheta1 = theta*math.pi/180; # degree to radian conversion\n# d = (n*lamda)/(2*sin\u03b8); by Braggs law ------------- 1\nlamda = (2*d*math.sin(theta1)/n)\n\n# Result\nprint 'Wavelength of X-ray = %3.4f' %(lamda*10**10),' \u00c5';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of X-ray = 1.0159 \u00c5\n"
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_-_I/screenshots/Wavelength.PNG b/Engineering_Physics_-_I/screenshots/Wavelength.PNG
new file mode 100755
index 00000000..978ed632
--- /dev/null
+++ b/Engineering_Physics_-_I/screenshots/Wavelength.PNG
Binary files differ
diff --git a/Engineering_Physics_-_I/screenshots/Young's_modulus.PNG b/Engineering_Physics_-_I/screenshots/Young's_modulus.PNG
new file mode 100755
index 00000000..8cf37fdb
--- /dev/null
+++ b/Engineering_Physics_-_I/screenshots/Young's_modulus.PNG
Binary files differ
diff --git a/Engineering_Physics_-_I/screenshots/numerical_aperture.PNG b/Engineering_Physics_-_I/screenshots/numerical_aperture.PNG
new file mode 100755
index 00000000..5ebd4f18
--- /dev/null
+++ b/Engineering_Physics_-_I/screenshots/numerical_aperture.PNG
Binary files differ
diff --git a/Engineering_Physics_/Chapter1.ipynb b/Engineering_Physics_/Chapter1.ipynb
new file mode 100755
index 00000000..81c066a4
--- /dev/null
+++ b/Engineering_Physics_/Chapter1.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b22f521510881a8fff0ac38eb4b560555d5bde9f0fb22681533a13e45849f4b7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Crystallography and Crystal imperfection"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.1, Page number 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=4; #number of atoms per unit cell(FCC)\n",
+ "M=63.54; #atomic weight of Cu(gm)\n",
+ "N=6.023*10**23; #avagadro number(per g mole)\n",
+ "d111=2.08; #interplanar spacing(angstrom)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1;\n",
+ "\n",
+ "#Calculation\n",
+ "d111=d111*10**-8; #interplanar spacing(m) \n",
+ "a=d111*math.sqrt((h**2)+(k**2)+(l**2)); \n",
+ "D=(n*M)/(N*(a**3)); #density of Cu(g/cc)\n",
+ "\n",
+ "#Result\n",
+ "print \"density of Cu metal is\",round(D,3),\"g/cc\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "density of Cu metal is 9.024 g/cc\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter10.ipynb b/Engineering_Physics_/Chapter10.ipynb
new file mode 100755
index 00000000..f0870466
--- /dev/null
+++ b/Engineering_Physics_/Chapter10.ipynb
@@ -0,0 +1,306 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:38e4520c8655f11fdcb5696673580e95d36ab2ce43843aea287c93b1f1a0b257"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "10: Quantum Physics and Schrodinger wave equation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.1, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "me=9.1*10**-31; #mass of electron(kg)\n",
+ "h=6.625*10**-34; #planck's constant(Jsec)\n",
+ "deltax=10**-8; #uncertainity in position(m)\n",
+ "\n",
+ "#Calculation\n",
+ "deltap=(h/(2*math.pi*deltax)); #uncertainity principle(kgm/sec)\n",
+ "deltav=(deltap/me); #minimum uncertainity in velocity(m/sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"minimum uncertainity in velocity is\",round(deltav/10**5,3),\"*10**5 m/sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum uncertainity in velocity is 0.116 *10**5 m/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.2, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=0.2865*10**-10; #wavelength(m)\n",
+ "mp=1.67*10**-27; #mass of proton(kg)\n",
+ "h=6.625*10**-34; #planck's constant(Jsec)\n",
+ "q=1.6*10**-19; #charge of proton(C)\n",
+ "\n",
+ "#Calculation\n",
+ "v=(h/(mp*lamda)); #velocity(m/sec)\n",
+ "KE=0.5*mp*(v**2); #kinetic energy of proton(J)\n",
+ "KE=KE/q; #kinetic energy of proton(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy of proton is\",int(KE),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy of proton is 1 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.3, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "KE=0.025; #kinetic energy of neutron(eV)\n",
+ "q=1.6*10**-19; #charge of proton(C)\n",
+ "mn=1.676*10**-27; #mass of neutron(kg)\n",
+ "h=6.625*10**-34; #planck's constant(Jsec)\n",
+ "me=9.1*10**-31; #mass of electron(kg)\n",
+ "c=3*10**8; #velocity of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "KE=KE*q; #kinetic energy of neutron(J)\n",
+ "v=math.sqrt((2*KE)/mn); #velocity(m/s)\n",
+ "lamdan=h/(mn*v); #debroglie wavelength of neutron(m)\n",
+ "p=(h/lamdan); #momentum of electron and photon(kgm/s)\n",
+ "ve=(p/me); #velocity of electron(m/s)\n",
+ "Ee=0.5*p*ve; #energy of electron(J)\n",
+ "Ee=Ee/q; #energy of electron(eV)\n",
+ "Ep=h*c/lamdan; #energy of photon(J)\n",
+ "Ep=Ep/q; #energy of photon(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of beam of neutron is\",round(lamdan*10**10,3),\"angstrom\"\n",
+ "print \"momentum of electron and photon is\",p,\"kgm/s\"\n",
+ "print \"energy of electron is\",round(Ee,2),\"eV\"\n",
+ "print \"energy of photon is\",round(Ep/10**3,2),\"*10**3 eV\"\n",
+ "print \"answers in the book vary due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of beam of neutron is 1.809 angstrom\n",
+ "momentum of electron and photon is 3.66169359723e-24 kgm/s\n",
+ "energy of electron is 46.04 eV\n",
+ "energy of photon is 6.87 *10**3 eV\n",
+ "answers in the book vary due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #charge of electron(C)\n",
+ "V=200; #potential difference(V)\n",
+ "lamda=0.0202*10**-10; #debroglie wavelength(m)\n",
+ "h=6.625*10**-34; #planck's constant(Jsec)\n",
+ "\n",
+ "#Calculation\n",
+ "#eV=0.5*m*(v^2)\n",
+ "#mv=sqrt(2*m*eV)\n",
+ "m=((h**2)/(2*(lamda**2)*e*V)); #mass of particle(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of particle is\",m,\"kg\"\n",
+ "print \"hence it is a proton\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of particle is 1.68069555834e-27 kg\n",
+ "hence it is a proton\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.5, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration \n",
+ "mn=1.676*10**-27; #mass of neutron(kg)\n",
+ "e=1.6*10**-19; #charge of electron(C)\n",
+ "h=6.622*10**-34; #planck's constant(Jsec)\n",
+ "\n",
+ "#Calculation\n",
+ "E=e; #energy of neutron(J)\n",
+ "v=math.sqrt((2*E)/mn); #velocity of neutron(m/sec)\n",
+ "lamda=(h/(mn*v)); #de-broglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"de-broglie wavelength of neutron is\",round(lamda*10**10,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de-broglie wavelength of neutron is 0.286 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.6, Page number 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration \n",
+ "r=10**-14; #radius(m)\n",
+ "h=6.625*10**-34; #planck's constant(Jsec)\n",
+ "c=3*10**8; #velocity of light(m/s)\n",
+ "mo=9.1*10**-31; #rest mass of particle(kg)\n",
+ "q=1.6*10**-19; #charge of electron(C)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "#acc. to uncertainity principle delx*delp >= (h/2*%pi)\n",
+ "deltax=2*r; #uncertainity in position(m)\n",
+ "deltap=(h/(2*math.pi*deltax)); ##uncertainity in momentum\n",
+ "#from einstein's relavistic relation E=mc2=KE+rest mass energy=0.5mv2+moc2\n",
+ "#when velocity of particle is very high\n",
+ "#m=(mo/sqrt(1-((v/c)^2))) where m-mass of particle with velocity v,mo-rest mass of particle, c-velocity of particle\n",
+ "p=deltap #assume\n",
+ "E=math.sqrt(((p*c)**2)+((mo*(c**2))**2)); #energy(J)\n",
+ "E=E/q; #energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy is\",round(E/10**6),\"MeV\"\n",
+ "print \"this value is much higher than experimentally obtained values of energy of electron of a radioactive nuclei i.e 4 Mev this proves that electron cannot reside within nucleus\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy is 10.0 MeV\n",
+ "this value is much higher than experimentally obtained values of energy of electron of a radioactive nuclei i.e 4 Mev this proves that electron cannot reside within nucleus\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter11.ipynb b/Engineering_Physics_/Chapter11.ipynb
new file mode 100755
index 00000000..9aaaa633
--- /dev/null
+++ b/Engineering_Physics_/Chapter11.ipynb
@@ -0,0 +1,194 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6e57ef3dccc3c7eb94a4d9debf60856f056a841840d4cb2d77b1c0cffbc72c7b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Laser, holography and Fibre optics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.53; #refractive index of core\n",
+ "n2=1.5; #refractive index of cladding\n",
+ "lamda=1*10**-6; #wavelength(m)\n",
+ "a=50*10**-6; #core radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "NA=math.sqrt((n1**2)-(n2**2)); #numerical aperture(m)\n",
+ "V=((2*math.pi*a)*NA)/lamda; #normalised frequency\n",
+ "M=(V**2)/2; #number of guided mode\n",
+ "\n",
+ "#Result\n",
+ "print \"normalised frequency is\",round(V,2)\n",
+ "print \"number of guided mode is\",round(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "normalised frequency is 94.72\n",
+ "number of guided mode is 4486.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.53; #refractive index of core\n",
+ "n2=1.5; #refractive index of cladding\n",
+ "lamda=1*10**-6; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "NA=math.sqrt((n1**2)-(n2**2)); #numerical aperture(m)\n",
+ "a=(2.405*lamda)/(2*math.pi*NA); #core radius(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"core radius is less than\",round(a*10**6,2),\"micro m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "core radius is less than 1.27 micro m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.3, Page number 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA=0.5; #numerical aperture(m)\n",
+ "n1=1.54; #refractive index of core\n",
+ "\n",
+ "#Calculation\n",
+ "n2=math.sqrt((n1**2)-(NA**2)); #refractive index of cladding\n",
+ "n=(n1-n2)/n1; #change in core cladding refractive index\n",
+ "\n",
+ "#Result\n",
+ "print \"refractive index of cladding is\",round(n2,4)\n",
+ "print \"change in core cladding refractive index is\",round(n,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "refractive index of cladding is 1.4566\n",
+ "change in core cladding refractive index is 0.0542\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.4, Page number 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA=0.5; #numerical aperture(m)\n",
+ "n1=1.48; #refractive index of core\n",
+ "\n",
+ "#Calculation\n",
+ "n2=math.sqrt((n1**2)-(NA**2)); #refractive index of cladding\n",
+ "alpha=math.asin(NA); #acceptance angle(radian)\n",
+ "alpha=alpha*(180/math.pi); #acceptance angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"refractive index of cladding is\",round(n2,3)\n",
+ "print \"acceptance angle is\",alpha,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "refractive index of cladding is 1.393\n",
+ "acceptance angle is 30.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter12.ipynb.bkup b/Engineering_Physics_/Chapter12.ipynb.bkup
new file mode 100755
index 00000000..0efc0c8d
--- /dev/null
+++ b/Engineering_Physics_/Chapter12.ipynb.bkup
@@ -0,0 +1,287 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0e9faaea32136a2f476b53b6ab2d5d2eb5330fb68ebd80aaad9bbe7ed1328c93"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Radioactivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M7Li3=7.018232; #mass of 7li3(amu)\n",
+ "Malpha=4.003874; #mass of alpha particle(amu)\n",
+ "Mpr=1.008145; #mass of proton(amu)\n",
+ "Ey=9.15; #K.E energy of product nucleus\n",
+ "\n",
+ "#Calculation\n",
+ "#xMy -> x-mass no., M-element, y-atomic no.\n",
+ "#reaction:- 7li3 + 1H1-> 4He2 + 4He2\n",
+ "deltaM=M7Li3+Mpr-2*Malpha; #mass defect(amu)\n",
+ "Q=deltaM*931; #mass defect(MeV)\n",
+ "Ex=2*Ey-Q; #K.E of incident particle(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy of incident proton is\",round(Ex,4),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy of incident proton is 0.9564 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.2, Page number 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M235U=235; #atomic mass of 235U\n",
+ "m=10**-3; #mass of fissions(gm)\n",
+ "N=6.023*10**23; #avagadro number\n",
+ "Eperfi=200*10**6; #energy per fission(eV)\n",
+ "T=10**-6; #time(s)\n",
+ "\n",
+ "#Calculation\n",
+ "E=Eperfi*1.6*10**-19; #energy per fission(J)\n",
+ "A=M235U; \n",
+ "P=((m*N)/A)*(E/T); #power explosion(Watt)\n",
+ "\n",
+ "#Result\n",
+ "print \"power of explosion is\",P,\"Watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power of explosion is 8.20153191489e+13 Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.4, Page number 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=0.4; #efficiency\n",
+ "N=6.06*10**26; #avagadro number\n",
+ "Eperfi=200*10**6; #energy per fission(eV)\n",
+ "P=100*10**6; #electric power(W)\n",
+ "A=235;\n",
+ "\n",
+ "#Calculation\n",
+ "E=Eperfi*1.6*10**-19; #energy per fission(J)\n",
+ "T=24*60*60; #time(sec)\n",
+ "N235=P*T/(E*n); #number of atoms in 235 kg of U235\n",
+ "m=(A*N235)/N; #mass of 235U consumed/day(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 235U consumed/day is\",int(m*10**3),\"g\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 235U consumed/day is 261 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.5, Page number 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M2H1=2.01474; #mass of M2H1(amu)\n",
+ "M3H1=3.01700; #mass of M3H1(amu)\n",
+ "M1n0=1.008986; #mass of M1n0(amu)\n",
+ "M4He2=4.003880; #mass of M4He2(amu)\n",
+ "\n",
+ "#Calculation\n",
+ "#thermonuclear reaction in hydrogen bomb explosion \n",
+ "#2H1 + 3H1 -> 4He2 + 1n0\n",
+ "Mreac=M2H1+M3H1; #mass of reactants(amu)\n",
+ "Mprod=M4He2+M1n0; #mass of products(amu)\n",
+ "Q=Mreac-Mprod; #amount of energy released per reaction(J)\n",
+ "Q=Q*931; #amount of energy released per reaction(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"amount of energy released per reaction is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of energy released per reaction is 17.572 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.6, Page number 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M7Li3=7.01818; #mass of Li atom(amu)\n",
+ "M1H1=1.0081; #mass of H atom(amu)\n",
+ "M1n0=1.009; #mass of neutron(amu)\n",
+ "\n",
+ "#Calculation\n",
+ "BEpernu=(1/7)*((3*M1H1)+(4*M1n0)-M7Li3); #binding energy per nucleon(J)\n",
+ "BEpernu=BEpernu*931; #binding energy per nucleon(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy per nucleon is\",BEpernu,\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy per nucleon is 5.60196 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.7, Page number 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=10*10**3; #mass of U235(gm)\n",
+ "N=6.02*10**23; #avagadro number\n",
+ "Eperfi=200*10**6; #energy per fission(eV)\n",
+ "A=235;\n",
+ "\n",
+ "#Calculation\n",
+ "E=Eperfi*1.6*10**-19; #energy(J)\n",
+ "T=24*60*60; #time(s)\n",
+ "P=((m*N)/A)*(E/T); #power output(Watt)\n",
+ "\n",
+ "#Result\n",
+ "print \"power output is\",round(P/10**9,3),\"*10**9 Watt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power output is 9.488 *10**9 Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter2.ipynb b/Engineering_Physics_/Chapter2.ipynb
new file mode 100755
index 00000000..e5649f50
--- /dev/null
+++ b/Engineering_Physics_/Chapter2.ipynb
@@ -0,0 +1,155 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a390c22e8bbeba1dfd4031b28f9e625838df0d3c214c564a212b1961eafc18f9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Thermoelectricity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Tn=285; #neutral temperature(C)\n",
+ "Tc=-20; #temperature at junction(C)\n",
+ "\n",
+ "#Calculation\n",
+ "Ti=(2*Tn)-Tc; #temperature of inversion(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"temperature of inversion is\",Ti,\"C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature of inversion is 590 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "aFe=16.65; #value of a of Fe\n",
+ "bFe=-0.095; #value of b of Fe\n",
+ "aAg=2.86; #value of a of Ag\n",
+ "bAg=0.017; #value of b of Ag\n",
+ "t=100; #temperature(C)\n",
+ "\n",
+ "#Calculation\n",
+ "a=aFe-aAg; #value of aFe_Ag\n",
+ "b=bFe-bAg; #value of bFe_Ag\n",
+ "Tn=-a/b; #neutral temperature(C)\n",
+ "EFe_Ag=(a*t)+(0.5*b*t**2); #thermo emf of thermocouple\n",
+ "\n",
+ "#Result\n",
+ "print \"neutral temperature is\",Tn,\"C\"\n",
+ "print \"thermo emf of thermocouple is\",EFe_Ag"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "neutral temperature is 123.125 C\n",
+ "thermo emf of thermocouple is 819.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#PFe=1734-4.87t\n",
+ "#PCu=136+0.95t\n",
+ "aFe_Pb=1734;\n",
+ "bFe_Pb=-4.87;\n",
+ "aCu_Pb=136;\n",
+ "bCu_Pb=0.95\n",
+ "\n",
+ "#Calculation\n",
+ "a=aFe_Pb-aCu_Pb; #value of aFe_Cu\n",
+ "b=bFe_Pb-bCu_Pb; #value of bFe_Cu\n",
+ "EFe_Cu=(a*t)+(0.5*b*t**2); #thermo emf of thermocouple(microV)\n",
+ "EFe_Cu=EFe_Cu*10**-6; #thermo emf of thermocouple(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"thermo emf of thermocouple is\",EFe_Cu,\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "thermo emf of thermocouple is 0.1307 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter3.ipynb b/Engineering_Physics_/Chapter3.ipynb
new file mode 100755
index 00000000..e34bf801
--- /dev/null
+++ b/Engineering_Physics_/Chapter3.ipynb
@@ -0,0 +1,112 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5501457babf7cd881ef81ebc39845c677f30b7398a16e9160a7f32cf8c277a73"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: Thermionic Emission"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=2*10**-6; #tungsten filament(m**2)\n",
+ "T=2000; #temperature(K)\n",
+ "A=60.2*10**4; #value of A(amp/m**2 K) \n",
+ "b=52400; #value of b \n",
+ "e=1.6*10**-19; #electron charge(c)\n",
+ "\n",
+ "#Calculation\n",
+ "I=A*S*(T**2)*(math.exp(-(b/T))); #electronic emission current(amp)\n",
+ "J=A*(T**2)*(math.exp(-b/T)); #emission current density(A/m**2)\n",
+ "no=J/e; #no. of electrons emitted per unit area per sec(per m**2 sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum obtainable electronic emission current is\",round(I*10**6,3),\"micro amp\"\n",
+ "print \"emission current density is\",round(J,5),\"A/m**2\"\n",
+ "print \"no. of electrons emitted per unit area per sec is\",round(no/10**19,3),\"*10**19 per m**2 sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum obtainable electronic emission current is 20.145 micro amp\n",
+ "emission current density is 10.07259 A/m**2\n",
+ "no. of electrons emitted per unit area per sec is 6.295 *10**19 per m**2 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.2, Page number 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Ip1=20; #plate current(mA)\n",
+ "Ip2=30; #changed plate current(mA) \n",
+ "Vp1=80; #plate voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "#Ip=K*(Vp^(3/2))\n",
+ "Vp2=((((Vp1)**(3/2))*Ip2)/Ip1)**(2/3); #changed plate voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"plate voltage for 30mA current is\",round(Vp2,2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "plate voltage for 30mA current is 104.83 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter4.ipynb b/Engineering_Physics_/Chapter4.ipynb
new file mode 100755
index 00000000..ee675097
--- /dev/null
+++ b/Engineering_Physics_/Chapter4.ipynb
@@ -0,0 +1,153 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e2b842be083bc61cf1d1d9ada89de2502dedfb3d340e5f3b6d0b51d6c790688a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Ultrasonic"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V1=343; #velocity of air(m/s)\n",
+ "V2=1372; #velocity f water(m/s)\n",
+ "dt=3; #time difference(s)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "S=((V1*V2)*(dt))/(V2-V1); #distance between two ships(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"distance between two ships is\",S,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance between two ships is 1372.0 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=1700; #velocity of sound(m/s)\n",
+ "t=0.65; #time(s)\n",
+ "n=0.07*10**6; #frequency of source(Hz)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "d=(V*t)/2; #depth of sea(m)\n",
+ "lamda=V/n; #wavelength of pulse(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"depth of sea is\",d,\"m\"\n",
+ "print \"wavelength of pulse is\",round(lamda,4),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of sea is 552.5 m\n",
+ "wavelength of pulse is 0.0243 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "P=1; \n",
+ "l=40*10**-3; #length of pure rod(m)\n",
+ "E=115*10**9; #Young's modulus(N/m**2)\n",
+ "D=7.25*10**3; #density of pure iron(kg/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "n=(P/(2*l))*math.sqrt(E/D); #natural frequency of pure rod(Hz) \n",
+ "\n",
+ "#Result\n",
+ "print \"natural frequency of pure rod is\",round(n/10**3,1),\"kHz\"\n",
+ "print \"answer given in the book is wrong\"\n",
+ "print \"frequency of rod is more than audible range, rod can be used in magnetostriction oscillator\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "natural frequency of pure rod is 49.8 kHz\n",
+ "answer given in the book is wrong\n",
+ "frequency of rod is more than audible range, rod can be used in magnetostriction oscillator\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter5.ipynb b/Engineering_Physics_/Chapter5.ipynb
new file mode 100755
index 00000000..781fd57b
--- /dev/null
+++ b/Engineering_Physics_/Chapter5.ipynb
@@ -0,0 +1,170 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4126f9237f2a14d1c68d93136eb798698a28e20e098ed4ce42f02e377a8fbabb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "5: Acoustics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.1, Page number 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T1=1.5; #R time for empty hall(s)\n",
+ "T2=1; #R time with curtain cloth(s)\n",
+ "A=20; #area of absorber(sq.m)\n",
+ "V=10*8*6; #volume of hall(cu.m)\n",
+ "\n",
+ "#Calculation\n",
+ "a=((0.161*V)/(2*A))*((1/T2)-(1/T1)); #absorption coefficient\n",
+ "\n",
+ "#Result\n",
+ "print \"absorption coefficient is\",round(a,2),\"Sabines\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "absorption coefficient is 0.64 Sabines\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.2, Page number 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=20*15*10; #volume of hall(cu.m)\n",
+ "T1=3.5; #reverberation time(s)\n",
+ "l=20; \n",
+ "b=15;\n",
+ "h=10; #dimensions of hall\n",
+ "am=0.5; #absorption coefficient\n",
+ "T2=2.5; #reverberation time after cloth use(s)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "A=(0.161*V)/T1; \n",
+ "S=2*((l*b)+(b*h)+(h*l)); #surface area(sq.m)\n",
+ "sigma_a=A/S; #average absorption coefficient of hall(o.w.u)\n",
+ "S1=(((0.161*V)/(am-sigma_a))*((1/T2)-(1/T1))); #area of wall covered by curtain cloth(sq.m)\n",
+ "\n",
+ "#Result\n",
+ "print \"average absorption coefficient of hall is\",round(sigma_a,3),\"o.w.u\"\n",
+ "print \"area of wall covered by curtain cloth is\",round(S1,3),\"sq.m\"\n",
+ "print \"answer for area covered S1 varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average absorption coefficient of hall is 0.106 o.w.u\n",
+ "area of wall covered by curtain cloth is 140.156 sq.m\n",
+ "answer for area covered S1 varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.3, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=1450; #volume of hall(cu.m)\n",
+ "A1=112*0.03; #absorption due to plastered wall\n",
+ "A2=130*0.06; #absorption due to wooden floor\n",
+ "A3=170*0.04; #absorption due to plastered ceiling\n",
+ "A4=20*0.06; #absorption due to wooden door\n",
+ "A5=100*1; #absorption due to cushioned chairs\n",
+ "\n",
+ "#Calculation\n",
+ "sigma_as=A1+A2+A3+A4+A5; #total absorption in empty hall\n",
+ "T1=(0.161*V)/sigma_as; #reverberation time case-1(s)\n",
+ "T2=(0.161*V)/(sigma_as+(60*4.7)); #persons=60,A=4.7 case-2\n",
+ "T3=(0.161*V)/(sigma_as+(100*4.7)); #seat cushioned=100 case-3\n",
+ "\n",
+ "#Result\n",
+ "print \"reverberation time for case-1 is\",round(T1,3),\"sec\"\n",
+ "print \"reverberation time for case-2 is\",round(T2,3),\"sec\"\n",
+ "print \"reverberation time for case-3 is\",round(T3,3),\"sec\"\n",
+ "print \"answer for T3 given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reverberation time for case-1 is 1.959 sec\n",
+ "reverberation time for case-2 is 0.582 sec\n",
+ "reverberation time for case-3 is 0.396 sec\n",
+ "answer for T3 given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter6.ipynb b/Engineering_Physics_/Chapter6.ipynb
new file mode 100755
index 00000000..7cdceb44
--- /dev/null
+++ b/Engineering_Physics_/Chapter6.ipynb
@@ -0,0 +1,287 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c7dc6b3d9590410d93237c02edc71fc080a2b941482564691379213f8d71b12e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Semiconductors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V1=1.4; #voltage1(V)\n",
+ "V2=1.5; #voltage2(V)\n",
+ "I1=60; #forward current for 1.4V(mA)\n",
+ "I2=85; #forward current for 1.5V(mA)\n",
+ "\n",
+ "#Calculation\n",
+ "I1=I1*10**-3; #forward current for 1.4V(A)\n",
+ "I2=I2*10**-3; #forward current for 1.5V(A)\n",
+ "Rs1=V1/I1; #static resistance for 1.4V(ohm)\n",
+ "Rs2=V2/I2; #static resistance for 1.5V(ohm) \n",
+ "dV=V2-V1; #change in voltage(V)\n",
+ "dI=I2-I1; #change in current(A)\n",
+ "Rd=dV/dI; #dynamic resistance(ohm)\n",
+ "\n",
+ "#Result\n",
+ "print \"static resistance for 1.4V is\",round(Rs1,1),\"ohm\"\n",
+ "print \"static resistance for 1.5V is\",round(Rs2,1),\"ohm\"\n",
+ "print \"dynamic resistance is\",Rd,\"ohm\"\n",
+ "print \"answer for dynamic resistance given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "static resistance for 1.4V is 23.3 ohm\n",
+ "static resistance for 1.5V is 17.6 ohm\n",
+ "dynamic resistance is 4.0 ohm\n",
+ "answer for dynamic resistance given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "IE=1; #emitter current(mA)\n",
+ "IB=0.02; #base current(mA)\n",
+ "\n",
+ "#Calculation\n",
+ "IC=IE-IB; #collector current(mA)\n",
+ "beta=IC/IB; #value of beta\n",
+ "alpha=IC/IE; #value of alpha\n",
+ "\n",
+ "#Result\n",
+ "print \"value of beta is\",beta\n",
+ "print \"value of alpha is\",alpha"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of beta is 49.0\n",
+ "value of alpha is 0.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.3, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "alpha=0.99; #value of alpha\n",
+ "I_CBO=0.5; #value of ICBO(micro A)\n",
+ "\n",
+ "#Calculation\n",
+ "beta=alpha/(1-alpha); #value of beta\n",
+ "ICEO=1/(1-alpha)*I_CBO; #value of ICEO(micro A)\n",
+ "\n",
+ "#Result\n",
+ "print \"value of beta is\",beta\n",
+ "print \"value of ICEO is\",ICEO,\"micro A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of beta is 99.0\n",
+ "value of ICEO is 50.0 micro A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.4, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Ic=4.5-2; #change in collector current(mA)\n",
+ "delta_Ib=80-40; #change in base current(microA)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_Ic=delta_Ic*10**-3; #change in collector current(A)\n",
+ "delta_Ib=delta_Ib*10**-6; #change in base current(A)\n",
+ "beta_AC=delta_Ic/delta_Ib; #value of beta\n",
+ "alpha_AC=beta_AC/(1+beta_AC); #value of alpha\n",
+ "\n",
+ "#Result\n",
+ "print \"value of beta is\",beta_AC\n",
+ "print \"value of alpha is\",round(alpha_AC,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of beta is 62.5\n",
+ "value of alpha is 0.9843\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.5, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "IE=1; #emitter current(mA)\n",
+ "Oc=0.04; #output current(mA)\n",
+ "\n",
+ "#Calculation\n",
+ "IC=1-Oc; #collector current(mA)\n",
+ "alpha=IC/IE; #value of alpha\n",
+ "\n",
+ "#Result\n",
+ "print \"current gain is\",alpha"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current gain is 0.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "alpha=0.96; #current gain\n",
+ "R=1; #resistance(K ohm)\n",
+ "V=1.5; #voltage drop(V)\n",
+ "\n",
+ "#Calculation\n",
+ "IC=V/R; #collector current(mA)\n",
+ "IE=IC/alpha; #emitter current(mA)\n",
+ "IB=IE-IC; #base current(mA)\n",
+ "\n",
+ "#Result\n",
+ "print \"base current is\",IB,\"mA\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "base current is 0.0625 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter7.ipynb b/Engineering_Physics_/Chapter7.ipynb
new file mode 100755
index 00000000..d5043163
--- /dev/null
+++ b/Engineering_Physics_/Chapter7.ipynb
@@ -0,0 +1,680 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:faf80c20562ef1fa5d737b0d74b9cf873ec0d412505987698b0fa170ec356db4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Thin film interference and diffraction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "alpha=0.01; #angle(radian)\n",
+ "n=10; #number of fringe\n",
+ "lamda=6000*10**-8; #wavelength(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#for dark fringe 2*u*t*cos(alpha)=n*lam\n",
+ "#t=xtan(alpha)\n",
+ "x=(n*lamda)/(2*alpha); #distance of 10th fringe from edge of wedge(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"distance of 10th fringe from edge of wedge is\",x,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance of 10th fringe from edge of wedge is 0.03 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.2, Page number 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "t=5*10**-5; #thickness of soap film(cm)\n",
+ "u=1.33; \n",
+ "\n",
+ "#Calculation\n",
+ "#for constructive interference of reflected light\n",
+ "#2*u*t*cos(r)=(2*n+1)(lam/2), where n=0,1,2,3\n",
+ "#for normal incidence r=0, cos(r)=1\n",
+ "#for n=0 lamda=lamda1\n",
+ "lamda1=4*u*t; #wavelength for zero order(cm)\n",
+ "#for n=1 lamda=lamda2\n",
+ "lamda2=4*u*t*(1/3); #wavelength for first order(cm)\n",
+ "#for n=2 lamda=lamda3\n",
+ "lamda3=4*u*t*(1/5); #wavelength for second order(cm)\n",
+ "#for n=3 lamda=lamda4\n",
+ "lamda4=4*u*t*(1/7); #wavelength for third order(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength that is strongly reflected in visible spectrum is\",lamda3*10**8,\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength that is strongly reflected in visible spectrum is 5320.0 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=10; #10th dark ring\n",
+ "D10=0.5; #diameter of ring(cm)\n",
+ "lamda=5000*10**-8; #wavelength of light(cm) \n",
+ "\n",
+ "#Calculation\n",
+ "R=(D10**2)/(4*n*lamda); #radius of curvature of lens(cm)\n",
+ "D50=math.sqrt(4*50*R*lamda); #diameter of 50th dark ring(cm)\n",
+ "r50=D50/2; #radius of 50th dark ring(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of 50th dark ring is\",round(r50,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of 50th dark ring is 0.56 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.4, Page number 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=45; #angle of incidence(degrees)\n",
+ "mew=1.33; #refractive index\n",
+ "lamda=5000; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "i=i*(math.pi/180); #angle of incidence(radian)\n",
+ "sin_r=math.sin(i)/mew; #value of sin(r)\n",
+ "r=math.asin(sin_r); #angle of refraction(radian) \n",
+ "r1=r*(180/math.pi); #angle of refraction(degrees)\n",
+ "#for bright fringe 2*u*t*cos(r)=(2*n+1)(lamda/2)\n",
+ "#for minimum thickness n=0\n",
+ "t=lamda/(4*mew*math.cos(r)); #minimum thickness(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"minimum thickness of film is\",int(t),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum thickness of film is 1109 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.5, Page number 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5500*10**-8; #wavelength(cm)\n",
+ "V=0.2; #volume of oil drop(cc)\n",
+ "A=100*100; #surface area(sq.cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#since both reflections occur at surface of denser medium\n",
+ "#condition for brightness for min thickness, n=1\n",
+ "#for normal incidence r=0, cos(r)=1\n",
+ "t=V/A; #thickness of film(cm)\n",
+ "mew0=lamda/(2*t); #refractive index of oil\n",
+ "\n",
+ "#Result\n",
+ "print \"refractive index of oil is\",mew0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "refractive index of oil is 1.375\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.6, Page number 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=6300; #wavelength of light(angstrom)\n",
+ "mew=1.5; #refractive index\n",
+ "n=10;\n",
+ "\n",
+ "#Calculation\n",
+ "#condition for dark 2*u*t=n*lam\n",
+ "#condition for bright 2*u*t=(2*n-1)(lam/2)\n",
+ "#when t=0 n=0 order dark band will come and at edge 10th bright band will come \n",
+ "t=(((2*n)-1)*(lamda))/(4*mew); #thickness of air film(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"thickness of air film is\",t,\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "thickness of air film is 19950.0 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.7, Page number 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewg=1.5; #refractive index of glass\n",
+ "mewo=1.3; #refractive index of oil\n",
+ "lamda1=7000; #wavelength(angstrom)\n",
+ "lamda2=5000; #wavelength(angstrom)\n",
+ "r=0; #for nth minimum\n",
+ "\n",
+ "#Calculation\n",
+ "#here reflection occurs both time at surface of denser medium\n",
+ "#condition for distructive interference in reflected side\n",
+ "#2*u*t*cos(r)=(2*n-1)(lam1/2), for nth min.\n",
+ "#2*u*t=(2*n+1)(lam1/2), n=0,1,2,3\n",
+ "#for (n+1)th min.\n",
+ "#2*u*t=(2*(n+1)+1)(lam2/2), n=0,1,2,3\n",
+ "t=(2/(4*mewo))*((lamda1*lamda2)/(lamda1-lamda2)); #thickness of layer(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"thickness of layer is\",int(t),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "thickness of layer is 6730 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.8, Page number 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Dn=1.40; #diameter of 10th ring(cm)\n",
+ "D=1.27; #changed diameter(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#when mew=1\n",
+ "#(Dn^2)=4*n*lam*R=(1.40^2)\n",
+ "#when mew=mew1\n",
+ "#(D^2)=(4*n*lam*R)/u1=(1.27^2)\n",
+ "mewl=((Dn**2)/(D**2)); #refractive index of liquid \n",
+ "\n",
+ "#Result\n",
+ "print \"refractive index of liquid is\",round(mewl,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "refractive index of liquid is 1.2152\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.9, Page number 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.5; #fringe width(cm)\n",
+ "mew=1.4; #refractive index\n",
+ "\n",
+ "#Calculation\n",
+ "alpha=((math.pi*10)/(60*60*180)); #converting into radian\n",
+ "lamda=2*B*alpha*mew; #wavelength of light(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of light used is\",int(lamda*10**8),\"angstrom\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of light used is 6787 angstrom\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=6000*10**-8; #wavelengh of light(cm)\n",
+ "mew=1.5; #refractive index\n",
+ "\n",
+ "#Calculation\n",
+ "#condition for dark fringe is 2*t=n*lam\n",
+ "#but B=(lam/(2*alpha*u))\n",
+ "#delta_t=alpha*x\n",
+ "delta_t=(10*lamda)/(2*mew); #difference t2-t1(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"difference t2-t1 is\",delta_t,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference t2-t1 is 0.0002 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.11, Page number 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5890; #wavelength of light(angstrom)\n",
+ "mew=1.5; #refractive index\n",
+ "r=60; #angle of refraction(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "#condition for dark is 2*mew*t*cos(r)=n*lamda\n",
+ "r=60*(math.pi/180); #angle of refraction(radian)\n",
+ "#for n=1\n",
+ "t=(lamda)/(2*mew*math.cos(r)); #smallest thickness of glass plate(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"smallest thickness of glass plate is\",int(t),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "smallest thickness of glass plate is 3926 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.13, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "aplusb=1/1250; #transmission grating(lines/cm)\n",
+ "n=2; #order of spectral line\n",
+ "theta=30; #deviation angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*(math.pi/180); #deviation angle(radian)\n",
+ "#(a+b)sin(theta)=n*lamda\n",
+ "lamda=(aplusb*math.sin(theta))/n; #wavelength of spectral line(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of spectral line is\",lamda,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of spectral line is 0.0002 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.14, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5893*10**-8; #wavelength(cm)\n",
+ "aplusb=2.54/2540; #grating(lines/cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#n=nmax, if sin(theta)=1\n",
+ "nmax=(aplusb/lamda); #maximum order\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum order is\",int(nmax)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum order is 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.15, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=2; #second order\n",
+ "aplusb=1/5000; #transmission grating(lines/cm)\n",
+ "lamda=5893*10**-8; #wavelength(cm)\n",
+ "f=30; #focal length(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "dtheta=(2.5*3.14)/(180*60); #change in angular displacement(radian)\n",
+ "#dlamda=((a+b)cos(theta)/n)dtheta\n",
+ "costheta=math.sqrt(1-(((n*lamda)/aplusb)**2));\n",
+ "dlamda=(dtheta*aplusb*costheta)/n; #difference in wavelength(cm)\n",
+ "dl=f*dtheta; #linear separation(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"difference in wavelength of two yellow lines\",round(dlamda*10**8),\"angstrom\"\n",
+ "print \"linear separation is\",round(dl*10**2,2),\"*10**-2 cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in wavelength of two yellow lines 6.0 angstrom\n",
+ "linear separation is 2.18 *10**-2 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.16, Page number 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda1=5400*10**-8; #wavelength1(cm)\n",
+ "lamda2=4050*10**-8; #wavelength(cm)\n",
+ "theta=30; #angle of diffraction(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "#nth order of lamda1 is superimposed on (n+1)th order of lamda2 for theta=30\n",
+ "#(a+b)sin(30)=n*5400*10^-8=(n+1)*4050*10^-8\n",
+ "n=(lamda2/(lamda1-lamda2)); #nth order\n",
+ "theta=30*(math.pi/180); #angle of diffraction(radian)\n",
+ "N=math.sin(theta)/(n*lamda1); #lines/cm in grating\n",
+ "\n",
+ "#Result\n",
+ "print \"lines/cm in grating is\",int(N),\"lines/cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lines/cm in grating is 3086 lines/cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter8.ipynb b/Engineering_Physics_/Chapter8.ipynb
new file mode 100755
index 00000000..d9dc420b
--- /dev/null
+++ b/Engineering_Physics_/Chapter8.ipynb
@@ -0,0 +1,392 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e5ea4ff1709764161940877bdcbbb6d4676a6eced70f445ea6f3a31c76d16a31"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: X-rays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.1, Page number 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=4.255; #atomic spacing(angstrom)\n",
+ "lamda=1.549; #wavelength of K-copper line(angstrom) \n",
+ "n=1; #theta is smallest when n=1\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "theta=math.asin(lamda/(2*d)); #glancing angle(radian)\n",
+ "theta=theta*(180/math.pi); #glancing angle(degrees)\n",
+ "#max value of sin(theta)=1 for highest order\n",
+ "nmax=((2*d)/lamda); #highest bragg's order\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print \"smallest glancing angle is\",round(theta,4),\"degrees\"\n",
+ "print \"maximum order of reflection is\",round(nmax,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "smallest glancing angle is 10.4875 degrees\n",
+ "maximum order of reflection is 5.494\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=60*10**3; #potential difference(volts)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #electron charge(coulomb)\n",
+ "lamda=0.194*10**-10; #minimum wavelength of x-rays(m)\n",
+ "\n",
+ "#Calculation\n",
+ "h=(lamda*e*V)/c; #planck's constant(Jsec)\n",
+ "\n",
+ "#Result\n",
+ "print \"planck's constant is\",h,\"Jsec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "planck's constant is 6.208e-34 Jsec\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#for 110 plane\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=0;\n",
+ "a=3; #lattice parameter(angstrom)\n",
+ "n=1;\n",
+ "theta=12.5; #glancing angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta*(math.pi/180); #glancing angle(radian)\n",
+ "d110=(a/math.sqrt((h**2)+(k**2)+(l**2))); \n",
+ "lamda=2*d110*math.sin(theta1)/n; #wavelength of x-ray(angstrom)\n",
+ "nmax=((2*d110)/lamda); #highest order possible\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of x-ray beam is\",round(lamda,3),\"angstrom\"\n",
+ "print \"highest bragg's order possible is\",int(nmax)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of x-ray beam is 0.918 angstrom\n",
+ "highest bragg's order possible is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.4, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.81*10**-10; #interplanar spacing(m)\n",
+ "theta=14; #glancing angle(degrees) \n",
+ "e=1.6*10**-19; #electron charge(c)\n",
+ "V=9100; #voltage(V)\n",
+ "n=1;\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*(math.pi/180); #glancing angle(radian)\n",
+ "lamda=2*d*math.sin(theta)/n; #minimum wavelength\n",
+ "h=(lamda*e*V)/c; #planck's constant(Jsec)\n",
+ "\n",
+ "#Result\n",
+ "print \"planck's constant is\",round(h*10**34,4),\"*10**-34 Jsec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "planck's constant is 6.5986 *10**-34 Jsec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.5, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thetaA=30; #glancing angle for line A(degrees)\n",
+ "lamdaB=0.97; #wavelength of line B(angstrom)\n",
+ "thetaB=60; #glancing angle for line B(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "#for line A-> 2*d*sin(thetaA)=lamdaA(n=1)\n",
+ "thetaA=thetaA*(math.pi/180); #glancing angle for line A(radian)\n",
+ "#for line B-> 2*d*sin(thetaB)=3*lamdaB(n=3)\n",
+ "thetaB=thetaB*(math.pi/180); #glancing angle for line B(radian) \n",
+ "d=(3*lamdaB)/(2*math.sin(thetaB)); #interplanar spacing(angstrom)\n",
+ "lamdaA=2*d*math.sin(thetaA); #wavelength of line A(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of line A is\",round(lamdaA,2),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of line A is 1.68 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.6, Page number 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=3.615; #lattice constant(angstrom)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1;\n",
+ "theta=21.7; #glancing angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "d111=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(angstrom)\n",
+ "theta=theta*(math.pi/180); #glancing angle(radian)\n",
+ "lamda=2*d111*math.sin(theta); #wavelength of X-rays(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X-rays is\",round(lamda,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X-rays is 1.543 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.7, Page number 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=50*10**3; #voltage(V)\n",
+ "n=4; #FCC crystal\n",
+ "m=74.6; #molecular mass(kg)\n",
+ "N=6.02*10**26; #avagadro number(per kg mol)\n",
+ "rho=1.99*10**3; #density(kg/m**3) \n",
+ "\n",
+ "#Calculation\n",
+ "lamda=(12400/V); #short wavelength(angstrom)\n",
+ "a=(((n*m)/(N*rho))**(1/3)); #lattice constant(m)\n",
+ "#for kcl ionic crystal\n",
+ "d=a/2;\n",
+ "sintheta=lamda*10**-10/(2*d); #value of sintheta\n",
+ "theta=math.asin(sintheta); #glancing angle(radian)\n",
+ "theta=theta*(180/math.pi); #glancing angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"short wavelength of spectrum from tube is\",lamda,\"angstrom\"\n",
+ "print \"glancing angle for that wavelength is\",round(theta,4),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "short wavelength of spectrum from tube is 0.248 angstrom\n",
+ "glancing angle for that wavelength is 2.2589 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.8, Page number 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=5.4; #glancing angle(degrees)\n",
+ "theta2=7.6; #glancing angle(degrees)\n",
+ "theta3=9.4; #glancing angle(degrees) \n",
+ "\n",
+ "#Calculation\n",
+ "#from bragg's law 2*d*sin(theta)=n*lamda, n=1\n",
+ "theta1=theta1*(math.pi/180); #glancing angle(radian)\n",
+ "theta2=theta2*(math.pi/180); #glancing angle(radian)\n",
+ "theta3=theta3*(math.pi/180); #glancing angle(radian)\n",
+ "d100=lamda/2*math.sin(theta1); #interplanar spacing\n",
+ "d110=lamda/2*math.sin(theta2); #interplanar spacing\n",
+ "d111=lamda/2*math.sin(theta3); #interplanar spacing\n",
+ "\n",
+ "#Result\n",
+ "print \"ratio of interplanar spacing (1/d100):(1/d110):(1/d111)=\",round(math.sin(theta1),4),\":\",round(math.sin(theta2),4),\":\",round(math.sin(theta3),4)\n",
+ "print \"as ratio (1/d100):(1/d110):(1/d111)=1:sqrt(2):sqrt(3). this relation is valid for simple cubic systems. therefore, this is a simple cubic crystal\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ratio of interplanar spacing (1/d100):(1/d110):(1/d111)= 0.0941 : 0.1323 : 0.1633\n",
+ "as ratio (1/d100):(1/d110):(1/d111)=1:sqrt(2):sqrt(3). this relation is valid for simple cubic systems. therefore, this is a simple cubic crystal\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/Chapter9.ipynb b/Engineering_Physics_/Chapter9.ipynb
new file mode 100755
index 00000000..9aff9ae1
--- /dev/null
+++ b/Engineering_Physics_/Chapter9.ipynb
@@ -0,0 +1,654 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:12b212fa69742f446e6918a565a72f52e2d9500de27031b4c21c41162a940ee1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Motion of the charged particle in electric and magnetic field"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=1.33*10**-22; #angular momentum(kg m**2/sec)\n",
+ "B=0.025; #magnetic field(Wb/m**2)\n",
+ "m=6.68*10**-27; #mass of alpha particle(kg)\n",
+ "q=3.2*10**-19; #charge of alpha particle(c)\n",
+ "e=1.6*10**-19; #charge of electron(c)\n",
+ "\n",
+ "#Calculation\n",
+ "w=(B*q)/m; #angular velocity\n",
+ "E=0.5*L*w; #KE of particle(J)\n",
+ "E=E/e; #KE of particle(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"KE of particle is\",round(E,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KE of particle is 497.75 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=0.35; #radius of cyclotron(m)\n",
+ "n=1.38*10**7; #frequency(Hz)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19; #charge of proton(c)\n",
+ "\n",
+ "#Calculation\n",
+ "B=(2*math.pi*n*m)/q; #magnetic field induction(Wb/m**2)\n",
+ "E=((B**2)*(q**2)*(R**2))/(2*m); #maximum energy of proton(J)\n",
+ "E=E/q; #maximum energy of proton(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field induction is\",round(B,3),\"Wb/m**2\"\n",
+ "print \"maximum energy of proton is\",round(E/10**6,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field induction is 0.905 Wb/m**2\n",
+ "maximum energy of proton is 4.8 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #charge of electron(c)\n",
+ "V=1000; #potential difference(V)\n",
+ "B=1.19*10**-3; #magnetic field of induction(Wb/m**2)\n",
+ "\n",
+ "#Calculation\n",
+ "#due to potential difference V, electron is accelerated\n",
+ "#eV=0.5*m*(v^2)\n",
+ "#due to transverse magnetic field B electron moves in circular path of radius R\n",
+ "#(m*(v^2))/R=BeV\n",
+ "v=math.sqrt((2*e*V)/m); #velocity(m/sec)\n",
+ "R=(m*v)/(B*e); #radius of electron trajectory(m)\n",
+ "L=m*v*R; #angular momentum(kg m**2/sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of electron trajectory is\",round(R*100,3),\"cm\"\n",
+ "print \"angular momentum of electron is\",round(L/10**-28,2),\"*10**-28 kg m**2/sec\"\n",
+ "print \"answer for angular momentum varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of electron trajectory is 8.962 cm\n",
+ "angular momentum of electron is 15294.12 *10**-28 kg m**2/sec\n",
+ "answer for angular momentum varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "vx=1.7*10**7; #horizontal velociy(m/sec)\n",
+ "Ey=3.4*10**4; #electric field(V/m)\n",
+ "x=3*10**-2; #horizontal displacement(m)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #charge of electron(c)\n",
+ "\n",
+ "#Calculation\n",
+ "t=x/vx; #time(sec)\n",
+ "#y=0.5*ay*(t^2)\n",
+ "ay=(e*Ey)/m; #acceleration(m/sec**2)\n",
+ "y=0.5*ay*(t**2); #vertical displacement(m)\n",
+ "Bz=Ey/vx; #magnitude of magnetic field(Wb/m**2) \n",
+ "\n",
+ "#Result\n",
+ "print \"vertical displacement of electron is\",round(y*100,4),\"cm\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"magnitude of magnetic field is\",Bz,\"Wb/m**2\"\n",
+ "print \"direction of field is upward as Ey is downward\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vertical displacement of electron is 0.9308 cm\n",
+ "answer varies due to rounding off errors\n",
+ "magnitude of magnetic field is 0.002 Wb/m**2\n",
+ "direction of field is upward as Ey is downward\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19; #charge of proton(c)\n",
+ "B=0.5; #magnetic field(Wb/m**2)\n",
+ "R=1; #radius of cyclotron(m)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "n=((B*q)/(2*math.pi*m)); #frequency of oscillation voltage(Hz)\n",
+ "E=((B**2)*(q**2)*(R**2))/(2*m); #maximum energy of proton(J)\n",
+ "E=E/q; #maximum energy of proton(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequency of oscillation voltage is\",round(n/10**6,3),\"MHz\"\n",
+ "print \"maximum energy of proton is\",round(E/10**6,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of oscillation voltage is 7.624 MHz\n",
+ "maximum energy of proton is 11.976 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=3.2*10**-19 #charge of a9lpha particle(c)\n",
+ "m=6.68*10**-27; #mass(kg) \n",
+ "B=1.5; #magnetic field(Wb/m**2)\n",
+ "v=7.263*10**6; #velocity(m/s) \n",
+ "\n",
+ "#Calculation\n",
+ "F=B*q*v; #force on particle(N)\n",
+ "T=(2*math.pi*m)/(B*q); #periodic time(sec)\n",
+ "n=1/T; #resonance frequency(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"force on particle is\",round(F*10**13,2),\"*10**-13 N\"\n",
+ "print \"periodic time is\",round(T*10**8,3),\"*10**-8 sec\"\n",
+ "print \"answer for periodic time varies due to rounding off errors\"\n",
+ "print \"resonance frequency is\",round(n/10**6,2),\"MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force on particle is 34.86 *10**-13 N\n",
+ "periodic time is 8.744 *10**-8 sec\n",
+ "answer for periodic time varies due to rounding off errors\n",
+ "resonance frequency is 11.44 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1.2*10**7; #frequency(Hz)\n",
+ "mp=1.67*10**-27; #mass of proton(kg)\n",
+ "qp=1.6*10**-19; #charge of proton(c)\n",
+ "R=0.5; #radius(m)\n",
+ "malp=6.68*10**-27; #mass of alpha particle(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "Bp=(2*math.pi*mp*n)/qp; #flux density for proton(Wb/m**2)\n",
+ "Ep=((Bp**2)*(qp**2)*(R**2))/(2*mp); #energy of proton(J)\n",
+ "Ep=Ep/qp; #energy of proton(eV)\n",
+ "qalp=2*qp; #charge of alpha particle(c)\n",
+ "Balp=(2*math.pi*malp*n)/qalp; #flux density of alpha particle(Wb/m**2)\n",
+ "Ealp=((Balp**2)*(qalp**2)*(R**2))/(2*malp); #energy of alpha particle(J)\n",
+ "Ealp=Ealp/qp; #energy of alpha particle(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"flux density for proton is\",round(Bp,5),\"Wb/m**2\"\n",
+ "print \"flux density for alpha particle is\",round(Balp,4),\"Wb/m**2\"\n",
+ "print \"energy of proton is\",round(Ep/10**6,2),\"MeV\"\n",
+ "print \"energy of alpha particle is\",round(Ealp/10**6,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flux density for proton is 0.78697 Wb/m**2\n",
+ "flux density for alpha particle is 1.5739 Wb/m**2\n",
+ "energy of proton is 7.42 MeV\n",
+ "energy of alpha particle is 29.67 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #charge of electron(c) \n",
+ "me=9.1*10**-31; #mass of electron(kg)\n",
+ "malp=6.68*10**-27; #mass of alpha particle(kg)\n",
+ "B=0.05; #magnetic field(Wb/m**2)\n",
+ "V=20*10**3; #potential difference(V)\n",
+ "\n",
+ "#Calculation\n",
+ "q=2*e; #charge of alpha particle(c)\n",
+ "#v=sqrt((2*q*V)/m)\n",
+ "#R=(1/B)*sqrt((2*m*V)/q)\n",
+ "Re=(1/B)*math.sqrt((2*me*V)/e); #radius of electron(m)\n",
+ "Ralp=(1/B)*math.sqrt((2*malp*V)/q); #radius of alpha particle(m)\n",
+ "S=2*Ralp-2*Re; #linear separation between two particles(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"linear separation between two particles on common boundary wall is\",round(S*100,1),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "linear separation between two particles on common boundary wall is 113.7 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.9, Page number 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V1=200; #potential difference(V)\n",
+ "i=60; #angle(degrees)\n",
+ "r=45; #angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "#electrostatic focusing condition (sini/sinr)=(v2/v1)=sqrt(V2/V1)\n",
+ "#0.5mv2=eV\n",
+ "i=i*(math.pi/180); #angle(radian)\n",
+ "r=r*(math.pi/180); #angle(radian)\n",
+ "V2=V1*((math.sin(i)/math.sin(r))**2); #potential difference(V)\n",
+ "pd=V2-V1; #potential difference(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential difference between two regions is\",pd,\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential difference between two regions is 100.0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=250; #electric field(V/m)\n",
+ "R=10**-8; #radius of drop(m)\n",
+ "rho=10**3; #density of water(kg/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "#F=mg=qE\n",
+ "m=(4/3)*math.pi*(R**3)*rho; #mass of water drop(kg)\n",
+ "W=m*9.8; #weight of drop\n",
+ "q=W/E; #charge on water drop(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"charge on water drop is\",round(q*10**21,3),\"*10**-21 C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "charge on water drop is 0.164 *10**-21 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.11, Page number 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #charge of electron(c)\n",
+ "v=5*10**5; #velocity(m/s)\n",
+ "B=0.3; #flux density(Wb/m**2)\n",
+ "N=6.025*10**26; #avagadro number\n",
+ "M72=72/N; #mass(kg)\n",
+ "M74=74; #mass(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "R72=(M72*v)/(B*e); #radius(m)\n",
+ "R74=(R72/72)*M74; #radius(m)\n",
+ "S=2*(R74-R72); #linear separation of two lines(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"linear separation of two lines is\",round(S,3),\"m\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "linear separation of two lines is 0.069 m\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.12, Page number 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=5*10**-2; #length(m)\n",
+ "d=0.3; #distance of screen from end of magnetic field(m)\n",
+ "y=0.01; #deflection on screen(m)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #charge of electron(C)\n",
+ "Va=1000; #anode voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "D=d+(l/2); #distance(m)\n",
+ "B=(y/(D*l))*math.sqrt((2*m*Va)/e); #flux density(Wb/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"flux density is\",round(B*10**6,1),\"*10**-6 Wb/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flux density is 65.6 *10**-6 Wb/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.13, Page number 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #charge of electron(C)\n",
+ "Va=150; #potential difference(V)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "V=20; #potential(V)\n",
+ "D=1/2;\n",
+ "d=10**-2; #distance of seperation(m)\n",
+ "l=10*10**-2; #length(m)\n",
+ "\n",
+ "#Calculation\n",
+ "vx=math.sqrt((2*e*Va)/m); #velocity of electron reacting the field(m/s)\n",
+ "ay=(e/m)*(V/d); #acceleration due to deflecting field(m/s**2)\n",
+ "vy=ay*(l/vx); #final velocity attained by deflecting field(m/s)\n",
+ "theta=math.atan(vy/vx); #angle of deflection(radian)\n",
+ "thetaD=theta*(180/math.pi); #angle of deflection(degrees)\n",
+ "Y=D*math.tan(theta); #deflection on screen(m)\n",
+ "S=(Y/V); #deflection senstivity(m/V)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity of electron reacting the field is\",round(vx/10**6,2),\"*10**6 m/s\"\n",
+ "print \"acceleration due to deflecting field is\",round(ay*10**-14,3),\"*10**14 m/s**2\"\n",
+ "print \"final velocity attained by deflecting field is\",round(vy/10**6,1),\"*10**6 m/s\"\n",
+ "print \"angle of deflection is\",round(thetaD,2),\"degrees\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"deflection on screen is\",round(Y,2),\"m\"\n",
+ "print \"deflection senstivity is\",round(S,4),\"m/V\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity of electron reacting the field is 7.26 *10**6 m/s\n",
+ "acceleration due to deflecting field is 3.516 *10**14 m/s**2\n",
+ "final velocity attained by deflecting field is 4.8 *10**6 m/s\n",
+ "angle of deflection is 33.69 degrees\n",
+ "answer varies due to rounding off errors\n",
+ "deflection on screen is 0.33 m\n",
+ "deflection senstivity is 0.0167 m/V\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Physics_/README.txt b/Engineering_Physics_/README.txt
new file mode 100755
index 00000000..b121a766
--- /dev/null
+++ b/Engineering_Physics_/README.txt
@@ -0,0 +1,10 @@
+Contributed By: SPANDANA ARROJU
+Course: others
+College/Institute/Organization: JNAFAU
+Department/Designation: Applied Arts
+Book Title: Engineering Physics
+Author: Uma Mukherji
+Publisher: Narosa Publishing House, New Delhi
+Year of publication: 2003
+Isbn: 81-7319-240-5
+Edition: 1 \ No newline at end of file
diff --git a/Engineering_Physics_/screenshots/11.png b/Engineering_Physics_/screenshots/11.png
new file mode 100755
index 00000000..74759f5f
--- /dev/null
+++ b/Engineering_Physics_/screenshots/11.png
Binary files differ
diff --git a/Engineering_Physics_/screenshots/22.png b/Engineering_Physics_/screenshots/22.png
new file mode 100755
index 00000000..ec09c65c
--- /dev/null
+++ b/Engineering_Physics_/screenshots/22.png
Binary files differ
diff --git a/Engineering_Physics_/screenshots/33.png b/Engineering_Physics_/screenshots/33.png
new file mode 100755
index 00000000..a4da4f79
--- /dev/null
+++ b/Engineering_Physics_/screenshots/33.png
Binary files differ
diff --git a/Engineering_Thermodynamics/README.txt b/Engineering_Thermodynamics/README.txt
new file mode 100755
index 00000000..26581a43
--- /dev/null
+++ b/Engineering_Thermodynamics/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Raviraj Jadeja
+Course: mca
+College/Institute/Organization: Freelancing work
+Department/Designation: Freelancer
+Book Title: Engineering Thermodynamics
+Author: P. K. Nag
+Publisher: Tata McGraw - Hill Education Pvt. Ltd., New Delhi
+Year of publication: 2008
+Isbn: 0-07-026062-1
+Edition: 4 \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch1.ipynb b/Engineering_Thermodynamics/ch1.ipynb
new file mode 100755
index 00000000..fff2e7be
--- /dev/null
+++ b/Engineering_Thermodynamics/ch1.ipynb
@@ -0,0 +1,249 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0acf769d31306f5bc291e2574308a74de8651b4a4723b52ee59419306e6b7112"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Introduction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 Page No : 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d_r = 13640.; \t\t\t# Density of mercury in kg/m3\n",
+ "g = 9.79; \t\t\t # Acceleration due to gravity in m/s2\n",
+ "z = 562e-03; \t\t\t# Difference in height in m\n",
+ "z0 = 761e-03; \t\t\t# Reading of barometer in m\n",
+ "\n",
+ "# Calculation\n",
+ "P = (d_r*g*(z+z0))*(0.987/1e05); \t\t\t# Gas Pressure in bar\n",
+ "\n",
+ "# Results\n",
+ "print \"Gas Pressure is %.3f bar\"%P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gas Pressure is 1.744 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2 Page No : 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d_r = 13.6e03; \t\t\t# Density of mercury in kg/m3\n",
+ "g = 9.81; \t\t\t# Acceleration due to gravity in m/s2\n",
+ "z = 710e-03; \t\t\t# Stean flow pressure in m\n",
+ "z0 = 772e-03; \t\t\t# Reading of barometer in m\n",
+ "P = 1.4e06; \t\t\t# Gauge pressure of applied steam in Pa\n",
+ "\n",
+ "# Calculation\n",
+ "P0 = d_r*g*z0; \t\t\t# Atmospheric pressure in Pa\n",
+ "Pi = P+P0 ; \t\t\t# Inlet steam pressure in Pa\n",
+ "Pc = d_r*g*(z0-z); \t\t\t# Condenser pressure in Pa\n",
+ "\n",
+ "# Results\n",
+ "print \"Inlet steam pressure is %.3e Pa\"%Pi\n",
+ "print \"Condenser pressure is %.2e Pa\"%Pc\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inlet steam pressure is 1.503e+06 Pa\n",
+ "Condenser pressure is 8.27e+03 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No : 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "z = 0.760; \t\t\t# Barometer reading in m\n",
+ "# Part (a)\n",
+ "h1 = 40e-02; \t\t\t# Mercury height in vaccume in m\n",
+ "d_r = 13.6e03; \t\t\t# Density of mercury in kg/m3\n",
+ "g = 9.80; \t\t\t# Acceleration due to gravity in m/s2\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Patm = z*d_r*g; \t\t\t# Atmospheric pressure in Pas\n",
+ "Pv = h1*d_r*g; \t\t\t# Pressue in vaccume in Pa\n",
+ "Pabst = Patm-Pv; \t\t\t# Absolute pressure in Pa\n",
+ "Pabs = 101.325 - Pv/1000\n",
+ "\n",
+ "print \"Pvaccum = %.2f kPa\"%(Pv/1000)\n",
+ "print \"Pabsolute = %.f\"%(Pabst/1000),\"kPa\"\n",
+ "print \"40 cmHg vacuum : %.3f kPa\"%Pabs\n",
+ "\n",
+ "# Part (b)\n",
+ "h2 = 90e-02; \t\t\t# Mercury height in gauge in m\n",
+ "Pg = h2*d_r*g; \t\t\t# Gauge Pressure in Pa\n",
+ "Pabs1 = Patm + Pg ; \t\t\t# Absolute pressure in Pa\n",
+ "\n",
+ "print \"\\nPgauge = %.f kPa\"%(Pg/1000)\n",
+ "print \"90cmHg gauge is %.3f\"%(Pabs1/1000),\"kPa\"\n",
+ "\n",
+ "# Part(c)\n",
+ "d_w = 1e03 ; \t\t\t# Density of water in kg/m3\n",
+ "h3 = 1.2 ; \t\t\t# Gauge Pressure water height in m\n",
+ "Pga = d_w*h3*g; \t\t\t# Gauge Pressure in Pa\n",
+ "Pabs3 = Patm + Pga ; \t\t\t# Absolute pressure in Pa\n",
+ "print \"\\n1.2 m H2O gauge is %.3f\"%(Pabs3/1000),\"kPa\"\n",
+ "\n",
+ "# rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pvaccum = 53.31 kPa\n",
+ "Pabsolute = 48 kPa\n",
+ "40 cmHg vacuum : 48.013 kPa\n",
+ "\n",
+ "Pgauge = 120 kPa\n",
+ "90cmHg gauge is 221.245 kPa\n",
+ "\n",
+ "1.2 m H2O gauge is 113.053 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 Page No : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.integrate import quad\n",
+ "\n",
+ "# Variables\n",
+ "Pr = 1.033e05; \t\t\t# Required Pressure in bar\n",
+ "\n",
+ "# Calculation\n",
+ "def pressure(p):\n",
+ " return p**(-0.714);\n",
+ "g = 9.81; \t\t\t# Acceleration due to gravity in m/s2\n",
+ "H = ((2.5e05**0.714)/g)* quad(pressure,0,Pr)[0]; \t\t\t# Depth of atmosphere required in m\n",
+ "\n",
+ "# Results\n",
+ "print \"The depth of atmosphere required is %.3f Km\"%(H/1000)\n",
+ " \n",
+ "# note : there will be rounding off error because of quad function"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The depth of atmosphere required is 69.203 Km\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 Page No : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 68. ; \t\t\t# Astronaut mass in Kg\n",
+ "g = 9.806; \t\t\t# Acceleration due to gravity in m/s2\n",
+ "\n",
+ "# Calculation\n",
+ "a = 10*g ; \t\t\t# Lift off acceleration in m/s2\n",
+ "F = m*a; \t\t\t# Net vertical force in N\n",
+ "\n",
+ "# Results\n",
+ "print \"Net vertical force experienced by astronaut is %.0f N\"%F\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net vertical force experienced by astronaut is 6668 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch10.ipynb b/Engineering_Thermodynamics/ch10.ipynb
new file mode 100755
index 00000000..40b22144
--- /dev/null
+++ b/Engineering_Thermodynamics/ch10.ipynb
@@ -0,0 +1,1017 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:417bf1adea0580223c4d3786d62ed073e6155f8ed43cae453792997d33751fc8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Properties of Gases and Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page No : 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "# Part (a)\n",
+ "P1 = 100.\n",
+ "P2 = 50.;\n",
+ "T1 = 273.+300;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "T2 = (P2/P1)*T1;\n",
+ "R = 0.287\n",
+ "cv = 0.718;\n",
+ "V1 = 0.8;\n",
+ "m = (P1*V1)/(R*T1);\n",
+ "Q = m*cv*(T2-T1);\n",
+ "print \"If the fluid is in the air\"\n",
+ "print \"The final temperature is \",T2,\"K\"\n",
+ "print \"The heat transferred is %.2f kJ/Kg\"%Q\n",
+ "\n",
+ "# Part (b)\n",
+ "t2 = 273+81.33\n",
+ "vf = 0.00103\n",
+ "vg = 3.24;\n",
+ "v1 = 2.6388\n",
+ "u1 = 2810.4; \n",
+ "x2 = (v1-vf)/(vg-vf);\n",
+ "u2 = 340.42+(x2*2143.4);\n",
+ "m_ = V1/v1;\n",
+ "Q_ = m_*(u2-u1);\n",
+ "\n",
+ "print (\"\\nIf the fluid is in the steam\")\n",
+ "print \"The final temperature is \",t2,\"K\"\n",
+ "print \"The heat transferred is %.2f kJ/Kg\"%Q_\n",
+ "\n",
+ "# rounding off error. please check . value of m is wrong in book please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the fluid is in the air\n",
+ "The final temperature is 286.5 K\n",
+ "The heat transferred is -100.07 kJ/Kg\n",
+ "\n",
+ "If the fluid is in the steam\n",
+ "The final temperature is 354.33 K\n",
+ "The heat transferred is -219.62 kJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page No : 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# Part (a)\n",
+ "R = 0.287\n",
+ "T1 = 273.+150\n",
+ "v1 = 0.96\n",
+ "v2 = 1.55\n",
+ "Cp = 1.005;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "P = (R*T1)/v1;\n",
+ "W = P*(v2-v1);\n",
+ "T2 = (v2/v1)*T1;\n",
+ "Q = Cp*(T2-T1);\n",
+ "print (\"If the fluid is in the air\")\n",
+ "print \"The final temperature is %.2f K\"%T2\n",
+ "print \"The heat transferred is %.2f kJ\"%Q\n",
+ "print \"Work done is %.2f kJ\"%W\n",
+ "\n",
+ "# Part (b)\n",
+ "vg = 0.3928;\n",
+ "P1 = 200e03;\n",
+ "P2 = P1;\n",
+ "h1 = 2768.8;\n",
+ "t2 = 273+400; h2 = 3276.5;\n",
+ "Q_ = h2-h1;\n",
+ "W_ = P1*(v2-v1);\n",
+ "print (\"\\nIf the fluid is in the steam\")\n",
+ "print \"The final temperature is \",t2,\"K\"\n",
+ "print \"The heat transferred is\",Q_,\"kJ\"\n",
+ "print \"Work done is\",W_/1000,\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the fluid is in the air\n",
+ "The final temperature is 682.97 K\n",
+ "The heat transferred is 261.27 kJ\n",
+ "Work done is 74.61 kJ\n",
+ "\n",
+ "If the fluid is in the steam\n",
+ "The final temperature is 673 K\n",
+ "The heat transferred is 507.7 kJ\n",
+ "Work done is 118.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page No : 355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "v = 16. ; \t\t\t# v = v1./v2\n",
+ "P1 = 300e03;\n",
+ "P2 = P1*v;\n",
+ "R = 0.287\n",
+ "T1 = 300+223;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "W12 = R*T1*math.log(1./v);\n",
+ "\n",
+ "print (\"If the fluid is in the air\")\n",
+ "print \"The final pressure is \",P2/1000,\"kPa\"\n",
+ "print \"The change in internal energy is\",0,\"kJ\"\n",
+ "print \"Work done is %.2f kJ\"%W12\n",
+ "\n",
+ "# Part (b)\n",
+ "v1 = 0.7664; u1 = 2728.7;\n",
+ "v2 = v1/16;\n",
+ "x2 = (v2-0.00125)/(0.05013);\n",
+ "s2 = 2.7927+(x2*3.2802);\n",
+ "s1 = 7.5165\n",
+ "u2 = 1080.37+(x2*1522.0);\n",
+ "du = u2-u1;\n",
+ "T = 250+273;\n",
+ "Q12 = T*(s2-s1)\n",
+ "\n",
+ "print (\"\\nIf the fluid is in the steam\")\n",
+ "print \"The final temperature is \",T,\"K\"\n",
+ "print \"The heat transferred is\",Q12,\"kJ/kg\"\n",
+ "print \"The change in internal energy is\",du,\"kJ/kg \"\n",
+ "\n",
+ "# rounding off error. please check. value of x2 is wrong in book ."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the fluid is in the air\n",
+ "The final pressure is 4800.0 kPa\n",
+ "The change in internal energy is 0 kJ\n",
+ "Work done is -416.17 kJ\n",
+ "\n",
+ "If the fluid is in the steam\n",
+ "The final temperature is 523 K\n",
+ "The heat transferred is -874.095064273 kJ/kg\n",
+ "The change in internal energy is -231.986493118 kJ/kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 Page No : 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# Part (a)\n",
+ "P1 = 10.\n",
+ "P2 = 1.;\n",
+ "T1 = 273.+300;\n",
+ "g = 1.4;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "T2 = T1*((P2/P1)**((g-1)/g));\n",
+ "R = 0.287;\n",
+ "W12 = ((R*T1)/(1-g))*(T2/T1-1);\n",
+ "v2 = (R*T2)/(100*P2);\n",
+ "\n",
+ "print (\"If the fluid is in the air\")\n",
+ "print \"The specific volume is %.3f m3/Kg\"%v2\n",
+ "print \"The work done per kg of the fluid is %.2f kJ\"%W12\n",
+ "\n",
+ "# Part (b)\n",
+ "u1 = 2793.2\n",
+ "v1 = 0.2579\n",
+ "s1 = 7.1228;\n",
+ "x2 = (7.1228-1.3025)/6.0568;\n",
+ "u2 = 417.33+(x2*2088.7);\n",
+ "v2 = 0.001043+(0.96*1.693);\n",
+ "W12 = u1-u2;\n",
+ "print (\"\\nIf the fluid is in the steam\")\n",
+ "print \"The specific volume is %.3f m3/Kg\"%v2\n",
+ "print \"The work done per kg of the fluid is %.1f kJ\"%round(W12,-1)\n",
+ "\n",
+ "# note : rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the fluid is in the air\n",
+ "The specific volume is 0.852 m3/Kg\n",
+ "The work done per kg of the fluid is 198.19 kJ\n",
+ "\n",
+ "If the fluid is in the steam\n",
+ "The specific volume is 1.626 m3/Kg\n",
+ "The work done per kg of the fluid is 370.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No : 357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# Part (a)\n",
+ "P1 = 10.\n",
+ "P2 = 1.;\n",
+ "T1 = 273.+200\n",
+ "n = 1.15\n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "v2 = ((R*T1)/(P1*100))*((P1/P2)**(1./1.15));\n",
+ "v1 = ((R*T1)/(P1*100));\n",
+ "T2 = T1*(P2/P1)*(v2/v1);\n",
+ "cv = 0.716;\n",
+ "Q = (cv+(R/(1-n)))*(T2-T1);\n",
+ "\n",
+ "print (\"If the fluid is in the air\")\n",
+ "print \"The specific volume is %.4f m3/Kg\"%v2\n",
+ "print \"The final temperature is %.1f K\"%T2\n",
+ "print \"Heat transferred per kg is %.f kJ\"%Q\n",
+ "\n",
+ "# Part (b)\n",
+ "v1 = 0.20596\n",
+ "u1 = 2621.9;\n",
+ "v2 = v1*(P1/P2)**(1./n);\n",
+ "x2 = (v2-0.001043)/(1.694-0.001043);\n",
+ "t2 = 99.62;\n",
+ "W = ((P1*100*0.13575)-(P2*100*1.525))/(n-1);\n",
+ "Q = 2366.1-u1+W;\n",
+ "\n",
+ "print (\"\\nIf the fluid is in the steam\")\n",
+ "print \"The specific volume is %.3f m3/Kg\"%v2\n",
+ "print \"The final temperature is \",t2,\"C\"\n",
+ "print \"Heat transferred per kg is %.2f kJ\"%Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the fluid is in the air\n",
+ "The specific volume is 1.0053 m3/Kg\n",
+ "The final temperature is 350.3 K\n",
+ "Heat transferred per kg is 147 kJ\n",
+ "\n",
+ "If the fluid is in the steam\n",
+ "The specific volume is 1.525 m3/Kg\n",
+ "The final temperature is 99.62 C\n",
+ "Heat transferred per kg is -367.47 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No : 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P0 = 1000.;\n",
+ "T0 = 3.; \n",
+ "V0 = 0.001;\n",
+ "R = 287.;\n",
+ "\n",
+ "# Calculation\n",
+ "n = (P0*V0)/(R*T0); \t\t\t# Number of moles\n",
+ "\n",
+ "# Process ab\n",
+ "Wab = 0;\n",
+ "cv = (3/2.)*R;\n",
+ "Ta = T0; Tb = 300;\n",
+ "Qab = n*cv*(Tb-Ta);\n",
+ "Ua = 0; \t\t\t# Given internal energy\n",
+ "Ub = Qab+Ua;\n",
+ "Uab = Ub-Ua;\n",
+ "print Qab\n",
+ "# Process bc\n",
+ "Qbc = 0\n",
+ "Uc = 0\n",
+ "Ubc = Uc-Ub;\n",
+ "Wbc = -Ubc;\n",
+ "# Process ca\n",
+ "Tc = Ta;\n",
+ "g = 5./3; \t\t\t# gamma\n",
+ "Vcb = (Tb/Tc)**(3./2); \t\t\t# Vc/Vb\n",
+ "Wca = -n*R*Tc*math.log(Vcb);\n",
+ "Qca = Wca ;\n",
+ "Uca = 0;\n",
+ "\n",
+ "# Results\n",
+ "print \"Work done in the cycle is %.1f J\"%(Wbc)\n",
+ "print \"Internal energy change in the cycle is\",Ub,\"J\"\n",
+ "print \"Heat transfer in the cycle is %.2f\"%(Wca)\n",
+ "\n",
+ "# Part (b)\n",
+ "e = (Qab+Qca)/Qab;\n",
+ "print \"Thermal efficiency of the system is %.3f %%\"%(e)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "148.5\n",
+ "Work done in the cycle is 148.5 J\n",
+ "Internal energy change in the cycle is 148.5 J\n",
+ "Heat transfer in the cycle is -6.91\n",
+ "Thermal efficiency of the system is 0.953 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7 Page No : 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "Pa = 1.5; \n",
+ "Ta = 273.+50; \n",
+ "ca = 0.5;\n",
+ "Pb = 0.6; \n",
+ "Tb = 20.+273; \n",
+ "mb = 2.5;\n",
+ "R = 8.3143;\n",
+ "\n",
+ "# Calculation\n",
+ "Va = (ca*R*Ta)/(Pa*1e03);\n",
+ "ma = ca*28;\n",
+ "Rn = R/28.;\n",
+ "Vb = (mb*Rn*Tb)/(Pb*1e03);\n",
+ "V = Va + Vb ;\n",
+ "m = ma + mb ;\n",
+ "Tf = 27+273.;\n",
+ "P = (m*Rn*Tf)/V;\n",
+ "g = 1.4;\n",
+ "cv = Rn/(g-1);\n",
+ "U1 = cv*(ma*Ta+mb*Tb);\n",
+ "U2 = m*cv*Tf;\n",
+ "Q = U2-U1;\n",
+ "\n",
+ "# Results\n",
+ "print \"The final equillibrium pressure is %.3f MPa\"%(P/1000)\n",
+ "print \"The amount of heat transferred to the surrounding is %.1f kJ\"%Q\n",
+ "T_ = (ma*Ta+mb*Tb)/m ;\n",
+ "P_ = (m*Rn*T_)/V;\n",
+ "print \"If the vessel is perfectly inslulated\"\n",
+ "print \"The final temperature is %.1f k\"%T_\n",
+ "print \"The final pressure is %.2f MPa\"%(P_/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final equillibrium pressure is 1.169 MPa\n",
+ "The amount of heat transferred to the surrounding is -226.0 kJ\n",
+ "If the vessel is perfectly inslulated\n",
+ "The final temperature is 318.5 k\n",
+ "The final pressure is 1.24 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No : 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "cp = 1.968; \n",
+ "cv = 1.507;\n",
+ "R_ = 8.314;\n",
+ "V = 0.3; \n",
+ "m = 2.; \n",
+ "T1 = 5.+273; \n",
+ "T2 = 100.+273;\n",
+ "\n",
+ "# Calculation\n",
+ "R = cp-cv;\n",
+ "mu = R_/R;\n",
+ "Q12 = m*cv*(T2-T1);\n",
+ "W12 = 0 ;\n",
+ "U21 = Q12;\n",
+ "H21= m*cp*(T2-T1);\n",
+ "S21 = m*cv*math.log(T2/T1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Molecular weight and the gas constant of the gas are %.2f kJ/Kg mol and %.3f kJ/Kg K\"%(mu,R)\n",
+ "print \"Work done\",0,\"kJ\"\n",
+ "print \"The heat transferred %.2f kJ\"%Q12\n",
+ "print \"The change in internal energy \",U21,\"kJ\"\n",
+ "print \"Change in entropy %.1f kJ/K\"%S21\n",
+ "print \"Change in enthalpy\",H21,\"kJ\"\n",
+ "\n",
+ "# rounding off error would be there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molecular weight and the gas constant of the gas are 18.03 kJ/Kg mol and 0.461 kJ/Kg K\n",
+ "Work done 0 kJ\n",
+ "The heat transferred 286.33 kJ\n",
+ "The change in internal energy 286.33 kJ\n",
+ "Change in entropy 0.9 kJ/K\n",
+ "Change in enthalpy 373.92 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page No : 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "m = 1.5;\n",
+ "P1 = 5.6; \n",
+ "V1 = 0.06;\n",
+ "T2 = 273.+240;\n",
+ "a = 0.946; b = 0.662;\n",
+ "k = 0.0001;\n",
+ "\n",
+ "# Calculation\n",
+ "# Part (b)\n",
+ "R = a-b;\n",
+ "T1 = (P1*1e03*V1)/(m*R);\n",
+ "def f8(T): \n",
+ "\t return m*(b+k*T)\n",
+ "\n",
+ "W12 = - quad(f8,T1,T2)[0]\n",
+ "\n",
+ "# Results\n",
+ "print \"The work done in the expansion is %.0f kJ\"%W12\n",
+ "\n",
+ "# note : answer is different becaues of quad function."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The work done in the expansion is 301 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11 Page No : 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m = 0.5;\n",
+ "P1 = 80e03; \n",
+ "T1 = 273.+60;\n",
+ "P2 = 0.4e06;\n",
+ "R = 0.287;\n",
+ "V1 = (m*R*T1)/P1 ;\n",
+ "g = 1.4; \t\t\t# Gamma\n",
+ "\n",
+ "# Calculation\n",
+ "T2 = T1*(P2/P1)**((g-1)/g);\n",
+ "W12 = (m*R*(T1-T2))/(g-1);\n",
+ "V2 = V1*((P1/P2)**(1./g));\n",
+ "W23 = P2*(V1-V2);\n",
+ "W = W12+W23;\n",
+ "V3 = V1;\n",
+ "T3 = T2*(V3/V2);\n",
+ "cp = 1.005;\n",
+ "Q = m*cp*(T3-T2);\n",
+ "\n",
+ "# Results\n",
+ "print \"The work transfer for the whole path is %.1f kJ\"%W\n",
+ "print \"The heat transfer for the whole path %.2f kJ\"%Q\n",
+ "\n",
+ "# note : incorrect answer in the textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The work transfer for the whole path is 93.5 kJ\n",
+ "The heat transfer for the whole path 571.64 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12 Page No : 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 700e03\n",
+ "T1 = 273.+260; \n",
+ "T3 = T1;\n",
+ "V1 = 0.028; \n",
+ "V2 = 0.084;\n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "m = (P1*V1)/(R*T1);\n",
+ "P2 = P1;\n",
+ "T2 = T1*((P2*V2)/(P1*V1));\n",
+ "n = 1.5;\n",
+ "P3 = P2*((T3/T2)**(n/(n-1)));\n",
+ "cp = 1.005; cv = 0.718;\n",
+ "Q12 = m*cp*(T2-T1);\n",
+ "Q23 = m*cv*(T3-T2) + (m*R*(T2-T3))/(n-1);\n",
+ "Q31 = m*R*T1*math.log(P3/P1);\n",
+ "Q1 = Q12;\n",
+ "Q2 = -(Q23+Q31);\n",
+ "e = 1-(Q2/Q1);\n",
+ "\n",
+ "# Results\n",
+ "print \"The heat received in the cycle is\",round(Q1/1000,2),\"kJ\"\n",
+ "print \"The heat rejected in the cycle\",round(Q2/1000,2),\"J\"\n",
+ "print \"The efficiency of the cycle is %.2f\"%e\n",
+ "\n",
+ "# note : rounding error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat received in the cycle is 137.27 kJ\n",
+ "The heat rejected in the cycle 84.27 J\n",
+ "The efficiency of the cycle is 0.39\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 Page No : 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 300e03; \n",
+ "V1 = 0.07;\n",
+ "m = 0.25; \n",
+ "T1 = 80+273;\n",
+ "\n",
+ "# Calculation\n",
+ "R = (P1*V1)/(1000*m*T1);\n",
+ "P2 = P1;\n",
+ "V2 = 0.1;\n",
+ "T2 = (P2*V2)/(1000*m*R);\n",
+ "W = -25;\n",
+ "cv = -W/(m*(T2-T1));\n",
+ "cp = R+cv;\n",
+ "S21 = m*cp*math.log(V2/V1); \t\t\t# S21 = S2-S1\n",
+ "\n",
+ "# Results\n",
+ "print \"cv of the gas is %.3f kJ/Kg K\"%cv\n",
+ "print \"cp of the gas is %.3f kJ/Kg K\"%cp\n",
+ "print \"Increase in the entropy of the gas is %.2f kJ/Kg K\"%S21\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cv of the gas is 0.661 kJ/Kg K\n",
+ "cp of the gas is 0.899 kJ/Kg K\n",
+ "Increase in the entropy of the gas is 0.08 kJ/Kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14 Page No : 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 1.;\n",
+ "P2 = 15.;\n",
+ "V1 = 800e-06;\n",
+ "V2 = V1/8;\n",
+ "cv = 0.718; \n",
+ "g = 1.4;\n",
+ "\n",
+ "# Calculation\n",
+ "n = (math.log(P2/P1))/(math.log(V1/V2))\n",
+ "T1 = 348; R = 0.287;\n",
+ "m = (P1*100*V1)/(R*T1);\n",
+ "T2 = T1*((P2*V2)/(P1*V1));\n",
+ "P3 = 50;\n",
+ "T3 = T2*(P3/P2);\n",
+ "S21 = m*(cv*math.log(T2/T1)+R*math.log(V2/V1));\n",
+ "S32 = m*cv*math.log(T3/T2);\n",
+ "Q = (m*cv*(g-n)*(T2-T1))/(1-n);\n",
+ "\n",
+ "# Results\n",
+ "print \"The index of compression process is %.1f\"%n\n",
+ "print \"T2 = %.1f K\"%T2\n",
+ "print \"S2-S1 is %.6f kJ/K\"%S21\n",
+ "print \"S3-S2 is %.6f kJ/k\"%S32\n",
+ "print \"The heat exchange is %.3f kJ\"%Q\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The index of compression process is 1.3\n",
+ "T2 = 652.5 K\n",
+ "S2-S1 is -0.000117 kJ/K\n",
+ "S3-S2 is 0.000692 kJ/k\n",
+ "The heat exchange is -0.057 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.15 Page No : 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "mn = 3.; \t\t\t# Mass of nitrogen in kg\n",
+ "mc = 5.; \t\t\t# mass of CO2 in kg\n",
+ "an = 28.; \t\t\t# Atomic weight of nitrogen\n",
+ "ac = 44.; \t\t\t# Atomic weight of CO2\n",
+ "\n",
+ "# Calculation and Results\n",
+ "# Part (a)\n",
+ "xn = (mn/an)/((mn/an)+(mc/ac)); \n",
+ "xc = (mc/ac)/((mn/an)+(mc/ac)); \n",
+ "print \"Mole fraction of N2 is %.3f\"%xn\n",
+ "print \"Mole fraction of CO2 is %.3f\"%xc\n",
+ "\n",
+ "# Part (b)\n",
+ "M = xn*an+xc*ac;\n",
+ "print \"Equivalant molecular weight of mixture is %.2f Kg\"%M\n",
+ "\n",
+ "# Part (c)\n",
+ "R = 8.314;\n",
+ "Req = ((mn*R/an)+(mc*R/ac))/(mn+mc);\n",
+ "print \"The equivalent gas consmath.tant of the mixture is %.3f kJ/Kg K\"%Req\n",
+ "\n",
+ "# Part (d)\n",
+ "P = 300.; \t\t\t# Pressure in kPa\n",
+ "T = 20.+273;\n",
+ "Pn = xn*P; \t\t\t# Partial pressure of Nitrogen\n",
+ "Pc = xc*P; \t\t\t# Partial pressure of CO2 \n",
+ "Vn = (mn*R*T)/(P*an); \t\t\t# Volume of nitrogen\n",
+ "Vc = (mc*R*T)/(P*ac); \t\t\t# Volume of CO2\n",
+ "print \"Partial pressures of nitrogen and CO2 are %.1f and %.1f kPa respectively\"%(Pn,Pc)\n",
+ "print \"Partial volume of nitrogen and CO2 are %.2f and %.2f m3 respectively\"%(Vn,Vc)\n",
+ "\n",
+ "# Part (e)\n",
+ "V = (mn+mc)*Req*T/P; \t\t\t# Total volume\n",
+ "rho = (mn+mc)/V;\n",
+ "print \"Volume of mixture is %.2f m3\"%V\n",
+ "print \"Density of mixture is %.2f Kg/m3\"%rho\n",
+ "\n",
+ "# Part (f)\n",
+ "gn = 1.4; \t\t\t# Gamma\n",
+ "gc = 1.286;\n",
+ "cvn = R/((gn-1)*an); \t\t\t# cp and cv of N2\n",
+ "cpn = gn*cvn; \n",
+ "cvc = R/((gc-1)*ac); \t\t\t# cp and cv of CO2\n",
+ "cpc = gc*cvc;\n",
+ "cp = (mn*cpn+mc*cpc)/(mn+mc) ; \t\t\t# of mixture\n",
+ "cv = (mn*cvn+mc*cvc)/(mn+mc) ;\n",
+ "print \"cp and cv of mixture are %.2f and %.2f kJ/Kg K respectively\"%(cp,cv)\n",
+ "\n",
+ "T1 = T; \n",
+ "T2 = 40.+273;\n",
+ "U21 = (mn+mc)*cv*(T2-T1);\n",
+ "H21 = (mn+mc)*cp*(T2-T1);\n",
+ "S21v = (mn+mc)*cv*math.log(T2/T1); \t\t\t# If heated at constant volume\n",
+ "\n",
+ "print \"Change in internal energy of the system heated at constant volume is %.1f kJ\"%U21\n",
+ "print \"Change in enthalpy of the system heated at constant volume is %.1f kJ\"%H21\n",
+ "print \"Change in entropy of the system heated at constant volume is %.3f kJ/Kg K\"%S21v\n",
+ "S21p = (mn+mc)*cp*math.log(T2/T1); \t\t\t# If heated at constant Pressure\n",
+ "print \"Change in entropy of the system heated at constant Pressure is %.2f kJ\"%S21p\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mole fraction of N2 is 0.485\n",
+ "Mole fraction of CO2 is 0.515\n",
+ "Equivalant molecular weight of mixture is 36.24 Kg\n",
+ "The equivalent gas consmath.tant of the mixture is 0.229 kJ/Kg K\n",
+ "Partial pressures of nitrogen and CO2 are 145.6 and 154.4 kPa respectively\n",
+ "Partial volume of nitrogen and CO2 are 0.87 and 0.92 m3 respectively\n",
+ "Volume of mixture is 1.79 m3\n",
+ "Density of mixture is 4.46 Kg/m3\n",
+ "cp and cv of mixture are 0.92 and 0.69 kJ/Kg K respectively\n",
+ "Change in internal energy of the system heated at constant volume is 110.6 kJ\n",
+ "Change in enthalpy of the system heated at constant volume is 147.3 kJ\n",
+ "Change in entropy of the system heated at constant volume is 0.365 kJ/Kg K\n",
+ "Change in entropy of the system heated at constant Pressure is 0.49 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16 Page No : 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "mo = 2.;\n",
+ "mn = 6.;\n",
+ "muo = 32.; \n",
+ "mun = 28.;\n",
+ "\n",
+ "# Calculation\n",
+ "o = mo/muo;\n",
+ "n = mn/mun;\n",
+ "xo = o/(n+o);\n",
+ "xn = n/(n+o);\n",
+ "R = 8.314;\n",
+ "Ro = R/muo; Rn = R/mun;\n",
+ "dS = -mo*Ro*math.log(xo)-mn*Rn*math.log(xn);\n",
+ "\n",
+ "# Results\n",
+ "print \"Increase in entropy is %.4f kJ/Kg K\"%dS\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in entropy is 1.2292 kJ/Kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.17 Page No : 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "an = 20.183; \t\t\t# molecular weight of neon\n",
+ "Pc = 2.73; \t\t\t# Critical pressure\n",
+ "Tc = 44.5;\n",
+ "Vc = 0.0416;\n",
+ "Pr = 2; \t\t\t# Reduced Pressure\n",
+ "Tr = 1.3; \n",
+ "Z = 0.7;\n",
+ "\n",
+ "# Calculation\n",
+ "P = Pr*Pc; \n",
+ "T = Tr*Tc;\n",
+ "R = 8.314;\n",
+ "v = (Z*R*T)/(P*1000*an);\n",
+ "vr = (v*an)/Vc ;\n",
+ "\n",
+ "# Results\n",
+ "print \"Specific volume is %.3e m3/Kg\"%v\n",
+ "print \"Specific temperature is\",T,\"K\"\n",
+ "print \"Specific pressure is\",P,\"MPa\"\n",
+ "print \"Reduced volume is %.2f\"%vr\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific volume is 3.055e-03 m3/Kg\n",
+ "Specific temperature is 57.85 K\n",
+ "Specific pressure is 5.46 MPa\n",
+ "Reduced volume is 1.48\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch11.ipynb b/Engineering_Thermodynamics/ch11.ipynb
new file mode 100755
index 00000000..66454009
--- /dev/null
+++ b/Engineering_Thermodynamics/ch11.ipynb
@@ -0,0 +1,170 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b99b43ef9ee3f0e18b3e8ae0d1337578843f4e3386da957a44c33db0abf4a4dd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Thermodynamic Relations, Equilibrium and Stability"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No : 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Tb = 353.;\n",
+ "T = 303.;\n",
+ "R = 8.3143;\n",
+ "\n",
+ "# Calculation\n",
+ "P = 101.325*math.exp((88/R)*(1-(Tb/T)));\n",
+ "\n",
+ "# Results\n",
+ "print \"Vapour pressure of benzene is %.1f kPa\"%P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vapour pressure of benzene is 17.7 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No : 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T = (3754.-3063)/(23.03-19.49);\n",
+ "P = math.exp(23.03-(3754/195.2));\n",
+ "\n",
+ "# Calculation\n",
+ "R = 8.3143;\n",
+ "Lsub = R*3754;\n",
+ "Lvap = 3063*R;\n",
+ "Lfu = Lsub-Lvap;\n",
+ "\n",
+ "# Results\n",
+ "print \"Temperature of triple point is %.1f K\"%T\n",
+ "print \"Pressure of triple point is %.2f mm Hg\"%P\n",
+ "print \"Latent heat of sublimation is %.0f kJ/Kg mol\"%round(Lsub,-2)\n",
+ "print \"Latent heat of vapourization is %.0f kJ/kg mol\"%round(Lvap,-2)\n",
+ "print \"Latent heat of fusion is %.0f kJ/kg mol\"%round(Lfu,-2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of triple point is 195.2 K\n",
+ "Pressure of triple point is 44.63 mm Hg\n",
+ "Latent heat of sublimation is 31200 kJ/Kg mol\n",
+ "Latent heat of vapourization is 25500 kJ/kg mol\n",
+ "Latent heat of fusion is 5700 kJ/kg mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No : 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "R = 8.314;\n",
+ "N1 = 0.5e-03; \n",
+ "N2 = 0.75e-03; \t\t\t# Mole number of system 1 and 2 in kg/mol\n",
+ "T1 = 200.; \n",
+ "T2 = 300.; \n",
+ "V = 0.02;\n",
+ "\n",
+ "# Calculation\n",
+ "Tf = ((N1*T1)+(N2*T2))/(N1+N2); \t\t\t# Final temperature\n",
+ "Uf1 = (3./2)*R*N1*Tf;\n",
+ "Uf2 = (3./2)*R*N2*Tf;\n",
+ "Pf = (R*Tf*(N1+N2))/V;\n",
+ "Vf1 = (R*N1*Tf)/Pf;\n",
+ "Vf2 = V - Vf1;\n",
+ "\n",
+ "# Results\n",
+ "print (\"System 1\")\n",
+ "print \"Volume is\",Vf1,\"m3\"\n",
+ "print \"Energy is %.2f kJ\"%Uf1\n",
+ "print \"\\nSystem 2\"\n",
+ "print \"Volume is\",Vf2,\"m3\"\n",
+ "print \"Energy is\",round(Uf2*1000,-1),\"kJ\"\n",
+ "print \"Final temperature is\",Tf,\"K\"\n",
+ "print \"Final Pressure is\",round(Pf),\"kN/m**2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "System 1\n",
+ "Volume is 0.008 m3\n",
+ "Energy is 1.62 kJ\n",
+ "\n",
+ "System 2\n",
+ "Volume is 0.012 m3\n",
+ "Energy is 2430.0 kJ\n",
+ "Final temperature is 260.0 K\n",
+ "Final Pressure is 135.0 kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch12.ipynb b/Engineering_Thermodynamics/ch12.ipynb
new file mode 100755
index 00000000..9036d55c
--- /dev/null
+++ b/Engineering_Thermodynamics/ch12.ipynb
@@ -0,0 +1,805 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:abd75e2d0144cfdf6dd59935ddb4f9b5824ec80059ba3e73a72bf780292d0a06"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Vapour Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Page No : 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# Part (a)\n",
+ "P1 = 1e05;\n",
+ "P2 = 10e05;\n",
+ "vf = 0.001043;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Wrev = vf*(P1-P2);\n",
+ "print \"The work required in saturated liquid form is\",Wrev/1000,\"kJ/kg\"\n",
+ "\n",
+ "# Part (b)\n",
+ "h1 = 2675.5; \n",
+ "s1 = 7.3594;\n",
+ "s2 = s1;\n",
+ "h2 = 3195.5;\n",
+ "Wrev1 = h1-h2;\n",
+ "print \"The work required in saturated vapour form is\",Wrev1,\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The work required in saturated liquid form is -0.9387 kJ/kg\n",
+ "The work required in saturated vapour form is -520.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Page No : 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 3159.3;\n",
+ "s1 = 6.9917;\n",
+ "h3 = 173.88; \n",
+ "s3 = 0.5926; \n",
+ "sfp2 = s3; \n",
+ "hfp2 = h3;\n",
+ "hfgp2 = 2403.1; \n",
+ "sgp2 = 8.2287;\n",
+ "vfp2 = 0.001008; \n",
+ "sfgp2 = 7.6361;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "x2s = (s1-sfp2)/(sfgp2);\n",
+ "h2s = hfp2+(x2s*hfgp2);\n",
+ "\n",
+ "# Part (a)\n",
+ "P1 = 20e02; \n",
+ "P2 = 0.08e02;\n",
+ "h4s = vfp2*(P1-P2)+h3 ; \n",
+ "Wp = h4s-h3;\n",
+ "Wt = h1-h2s;\n",
+ "Wnet = Wt-Wp;\n",
+ "Q1 = h1-h4s;\n",
+ "n_cycle = Wnet/Q1;\n",
+ "print \"Net work per kg of steam is %.2f kJ/Kg\"%Wnet\n",
+ "print \"Cycle efficiency is %.3f\"%n_cycle\n",
+ "\n",
+ "# Part (b)\n",
+ "n_p = 0.8; \n",
+ "n_t = 0.8;\n",
+ "Wp_ = Wp/n_p;\n",
+ "Wt_ = Wt*n_t;\n",
+ "Wnet_ = Wt_-Wp_;\n",
+ "P = 100*((Wnet-Wnet_)/Wnet) ;\n",
+ "n_cycle_ = Wnet_/Q1;\n",
+ "P_ = 100*((n_cycle-n_cycle_)/n_cycle);\n",
+ "print \"Percentage reduction in net work per kg of steam is %.1f %%\"%P\n",
+ "print \"Percentage reduction in cycle efficiency is %.1f %%\"%P_\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net work per kg of steam is 969.60 kJ/Kg\n",
+ "Cycle efficiency is 0.325\n",
+ "Percentage reduction in net work per kg of steam is 20.1 %\n",
+ "Percentage reduction in cycle efficiency is 20.1 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No : 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P1 = 0.08; \t\t\t# in bar\n",
+ "sf = 0.5926; \n",
+ "x2s = 0.85; \n",
+ "sg = 8.2287; \n",
+ "\n",
+ "# Calculation\n",
+ "s2s = sf+(x2s*(sg-sf));\n",
+ "s1 = s2s;\n",
+ "P2 = 16.832; \t\t\t# by steam table opposite to s1 in bar\n",
+ "h1 = 3165.54;\n",
+ "h2s = 173.88 + (0.85*2403.1);\n",
+ "h3 = 173.88;\n",
+ "vfp2 = 0.001;\n",
+ "h4s = h3 + (vfp2*(P2-P1)*100);\n",
+ "Q1 = h1-h4s;\n",
+ "Wt = h1-h2s;\n",
+ "Wp = h4s-h3;\n",
+ "n_cycle = 100*((Wt-Wp)/Q1);\n",
+ "Tm = (h1-h4s)/(s2s-sf);\n",
+ "\n",
+ "# Results\n",
+ "print \"The greatest allowable steam pressure at the turbine inlet is\",P2,\"bar\"\n",
+ "print \"Rankine cycle efficiency is %.2f %%\"%n_cycle\n",
+ "print \"Mean temperature of heat addition is %.2f K\"%Tm\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greatest allowable steam pressure at the turbine inlet is 16.832 bar\n",
+ "Rankine cycle efficiency is 31.68 %\n",
+ "Mean temperature of heat addition is 460.66 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4 Page No : 478"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 3465.;\n",
+ "h2s = 3065.; \n",
+ "h3 = 3565.;\n",
+ "h4s = 2300.; \n",
+ "x4s = 0.88; \n",
+ "h5 = 191.83;\n",
+ "v = 0.001;\n",
+ "P = 150.; \t\t\t# in bar\n",
+ "\n",
+ "# Calculation\n",
+ "Wp = v*P*100;\n",
+ "h6s = 206.83;\n",
+ "Q1 = (h1-h6s)+(h3-h2s);\n",
+ "Wt = (h1-h2s)+(h3-h4s);\n",
+ "Wnet = Wt-Wp;\n",
+ "n_cycle = 100*Wnet/Q1;\n",
+ "sr = 3600/Wnet;\n",
+ "\n",
+ "# Results\n",
+ "print \"Quality at turbine exhaust is\",0.88\n",
+ "print \"Cycle efficiency is %.1f %%\"%n_cycle\n",
+ "print \"steam rate is %.2f Kg/kW h\"%sr\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quality at turbine exhaust is 0.88\n",
+ "Cycle efficiency is 43.9 %\n",
+ "steam rate is 2.18 Kg/kW h\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No : 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 3230.9; \n",
+ "s1 = 6.9212; \n",
+ "s2 = s1; \n",
+ "s3 = s1;\n",
+ "h2 = 2796; \n",
+ "sf = 0.6493; \n",
+ "sfg = 7.5009;\n",
+ "\n",
+ "# Calculation\n",
+ "x3 = (s3-sf)/sfg;\n",
+ "h3 = 191.83 + x3*2392.8;\n",
+ "h4 = 191.83; h5 = h4;\n",
+ "h6 = 640.23; h7 = h6;\n",
+ "m = (h6-h5)/(h2-h5);\n",
+ "Wt = (h1-h2)+(1-m)*(h2-h3);\n",
+ "Q1 = h1-h6;\n",
+ "n_cycle = 100*Wt/Q1;\n",
+ "sr = 3600/Wt;\n",
+ "s7 = 1.8607; s4 = 0.6493;\n",
+ "Tm = (h1-h7)/(s1-s7);\n",
+ "Tm1 = (h1-h4)/(s1-s4); \t\t\t# With out regeneration\n",
+ "dT = Tm-Tm1;\n",
+ "Wt_ = h1-h3;\n",
+ "sr_ = 3600/Wt_;\n",
+ "dsr = sr-sr_;\n",
+ "n_cycle_ = 100*(h1-h3)/(h1-h4);\n",
+ "dn = n_cycle-n_cycle_;\n",
+ "\n",
+ "# Results\n",
+ "print \"Efficiency of the cycle is %.2f %%\"%n_cycle\n",
+ "print \"Steam rate of the cycle is %.2f kg/kW h\"%sr\n",
+ "print \"Increase in temperature due to regeneration is %.1f degree centigrade\"%dT\n",
+ "print \"Increase in steam rate due to regeneration is %.1f kg/kW h\"%dsr\n",
+ "print \"Increase in Efficiency of the cycle due to regeneration is %.2f %%\"%dn\n",
+ "\n",
+ "# note: rounding error is there because of decimal points."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of the cycle is 36.07 %\n",
+ "Steam rate of the cycle is 3.85 kg/kW h\n",
+ "Increase in temperature due to regeneration is 27.4 degree centigrade\n",
+ "Increase in steam rate due to regeneration is 0.4 kg/kW h\n",
+ "Increase in Efficiency of the cycle due to regeneration is 1.90 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No : 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 3023.5; \n",
+ "s1 = 6.7664; \n",
+ "s2 = s1; \n",
+ "s3 = s1; \n",
+ "s4 = s1;\n",
+ "t_sat_20 = 212.;\n",
+ "t_sat_1 = 46.;\n",
+ "\n",
+ "# Calculation\n",
+ "dt = t_sat_20-t_sat_1;\n",
+ "n =3; \t\t\t# number of heaters\n",
+ "t = dt/n;\n",
+ "t1 = t_sat_20-t;\n",
+ "t2 = t1-t;\n",
+ "\n",
+ "# 0.1 bar\n",
+ "hf = 191.83; \n",
+ "hfg = 2392.8; \n",
+ "sf = 0.6493;\n",
+ "sg = 8.1502;\n",
+ "# At 100 degree\n",
+ "hf100 = 419.04; \n",
+ "hfg100 = 2257.0; \n",
+ "sf100 = 1.3069; \n",
+ "sg100 = 7.3549;\n",
+ "# At 150 degree\n",
+ "hf150 = 632.20; \n",
+ "hfg150 = 2114.3; \n",
+ "sf150 = 1.8418; \n",
+ "sg150 = 6.8379;\n",
+ "x2 = (s1-sf150)/4.9961;\n",
+ "h2 = hf150+(x2*hfg150);\n",
+ "x3 = (s1-sf100)/6.0480;\n",
+ "h3 = hf100+(x3*hfg100);\n",
+ "x4 = (s1-sf)/7.5010;\n",
+ "h4 = hf+(x4*hfg);\n",
+ "h5 = hf; h6 = h5;\n",
+ "h7 = hf100; h8 = h7;\n",
+ "h9 = 632.2; h10 = h9;\n",
+ "m1 = (h9-h7)/(h2-h7);\n",
+ "m2 = ((1-m1)*(h7-h6))/(h3-h6);\n",
+ "Wt = 1*(h1-h2)+(1-m1)*(h2-h3)+(1-m1-m2)*(h3-h4);\n",
+ "Q1 = h1-h9;\n",
+ "Wp = 0 ; \t\t\t# Pump work is neglected\n",
+ "n_cycle = 100*(Wt-Wp)/Q1;\n",
+ "sr = 3600/(Wt-Wp);\n",
+ "\n",
+ "# Results \n",
+ "print \"Net work per kg of stem is %.2f kJ/Kg\"%Wt\n",
+ "print \"Cycle efficiency is %.2f %%\"%n_cycle\n",
+ "print \"Stream rate is %.2f Kg/kW h\"%sr\n",
+ "\n",
+ "# rounding off error would be there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net work per kg of stem is 798.64 kJ/Kg\n",
+ "Cycle efficiency is 33.40 %\n",
+ "Stream rate is 4.51 Kg/kW h\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No : 483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ti = 2000.;\n",
+ "Te = 450.;\n",
+ "T0 = 300.;\n",
+ "Q1_dot = 100e03; \t\t\t# in kW\n",
+ "cpg = 1.1;\n",
+ "\n",
+ "# Calculation\n",
+ "wg = Q1_dot/(cpg*(Ti-Te));\n",
+ "af1 = wg*cpg*T0*((Ti/T0)-1-math.log(Ti/T0));\n",
+ "af2 = wg*cpg*T0*((Te/T0)-1-math.log(Te/T0));\n",
+ "afi = af1-af2;\n",
+ "h1 = 2801; h3 = 169; h4 = 172.8; h2 = 1890.2;\n",
+ "s1 = 6.068; s2 = s1; s3 = 0.576; s4 = s3;\n",
+ "Wt = h1-h2;\n",
+ "Wp = h4-h3;\n",
+ "Q1 = h1-h4;\n",
+ "Q2 = h2-h3;\n",
+ "Wnet = Wt-Wp;\n",
+ "ws = Q1_dot/2628;\n",
+ "afu = 38*(h1-h4-T0*(s1-s3));\n",
+ "I_dot = afi-afu;\n",
+ "Wnet_dot = ws*Wnet;\n",
+ "afc = ws*(h2-h3-T0*(s2-s3));\n",
+ "n2 = 100*Wnet_dot/af1;\n",
+ "\n",
+ "# Results\n",
+ "print \"The second law efficiency is %.1f %%\"%n2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The second law efficiency is 47.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No : 485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "h1 = 2758.; # kJ/kg\n",
+ "h2 = 1817.; \n",
+ "h3 = 192.\n",
+ "h4 = 200.;\n",
+ "cpg = 1.1\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Wt = h1-h2; \n",
+ "Wp = h4-h3;\n",
+ "Q1 = h1-h4; \n",
+ "Wnet = Wt-Wp;\n",
+ "n1 = Wnet/Q1;\n",
+ "WR = Wnet/Wt;\n",
+ "Q1_ = 100.;\n",
+ "PO = n1*Q1_;\n",
+ "cp = 1000.;\n",
+ "wg = (Q1_/(833.-450));\n",
+ "EIR = 59.3\n",
+ "n2 = PO/EIR ;\n",
+ "print (\"Part (a)\")\n",
+ "print \"n1 is %.1f %%\"%(n1*100)\n",
+ "print \"n2 is %.1f %%\"%(n2*100)\n",
+ "print \"Work ratio is %.3f\"%WR\n",
+ "\n",
+ "# Part (b)\n",
+ "h1b = 3398.; \n",
+ "h2b = 2130.\n",
+ "h3b = 192.; \n",
+ "h4b = 200.;\n",
+ "Wtb = 1268.; \n",
+ "Wpb = 8.; \n",
+ "Q1b = 3198.;\n",
+ "Wt = 1268.\n",
+ "Wp = 8.\n",
+ "n1b = (Wt-Wp)/Q1b;\n",
+ "WRb = (Wt-Wp)/Wtb;\n",
+ "EIRb = 59.3;\n",
+ "Wnetb = Q1b*n1b;\n",
+ "n2b = 36.5/EIRb;\n",
+ "print (\"\\nPart (b)\")\n",
+ "print \"n1 is %.1f %%\"%(n1b*100)\n",
+ "print \"n2 is %.1f %%\"%(n2b*100)\n",
+ "print \"Work ratio is %.3f\"%WRb\n",
+ "\n",
+ "# Part (c)\n",
+ "h1c = 3398.; \n",
+ "h2c = 2761.; \n",
+ "h3c = 3482.; \n",
+ "h4c = 2522.; \n",
+ "h5c = 192.; \n",
+ "h6c = 200.;\n",
+ "Wt1 = 637.; \n",
+ "Wt2 = 960.; \n",
+ "Wtc = Wt1+Wt2; Wpc = 8.;\n",
+ "Wnetc = 1589.; \n",
+ "Q1c = 3198+721.;\n",
+ "n1c = Wnetc/Q1c;\n",
+ "WRc = Wnetc/Wtc;\n",
+ "POc = Q1_*n1c;\n",
+ "EIRc = 59.3;\n",
+ "n2c = POc/EIRc;\n",
+ "print (\"\\nPart (c)\")\n",
+ "print \"n1 is %.1f %%\"%(n1c*100)\n",
+ "print \"n2 is %.1f %%\"%(n2c*100)\n",
+ "print \"Work ratio is %.3f\"%WRc\n",
+ "\n",
+ "# Part (d)\n",
+ "T3 = 318.8; T1 = 568.;\n",
+ "n1d = 1-(T3/T1);\n",
+ "Q1d = 2758-1316.;\n",
+ "Wnet = Q1d*n1d;\n",
+ "Wpd = 8.; \n",
+ "Wtd = 641.;\n",
+ "WRd = (Wtd-Wpd)/Wtd;\n",
+ "POd = Q1_*0.439;\n",
+ "EIRd = (Q1_/(833-593.))*cpg*((833.-300)-300*(math.log(833./300)));\n",
+ "n2d = POd/94.6;\n",
+ "print (\"\\nPart (d)\")\n",
+ "print \"n1 is %.1f %%\"%(n1d*100)\n",
+ "print \"n2 is %.1f %%\"%(n2d*100)\n",
+ "print \"Work ratio is %.3f\"%WRd\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part (a)\n",
+ "n1 is 36.5 %\n",
+ "n2 is 61.5 %\n",
+ "Work ratio is 0.991\n",
+ "\n",
+ "Part (b)\n",
+ "n1 is 39.4 %\n",
+ "n2 is 61.6 %\n",
+ "Work ratio is 0.994\n",
+ "\n",
+ "Part (c)\n",
+ "n1 is 40.5 %\n",
+ "n2 is 68.4 %\n",
+ "Work ratio is 0.995\n",
+ "\n",
+ "Part (d)\n",
+ "n1 is 43.9 %\n",
+ "n2 is 46.4 %\n",
+ "Work ratio is 0.988\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No : 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "hfg = 2202.6;\n",
+ "Qh = 5.83;\n",
+ "ws = Qh/hfg;\n",
+ "eg = 0.9; \t\t\t# efficiency of generator\n",
+ "P = 1000;\n",
+ "Wnet = 1000/0.9;\n",
+ "nbrake = 0.8;\n",
+ "\n",
+ "# Calculation\n",
+ "h1_2s = Wnet/(ws*nbrake); \t\t\t# h1-h2s\n",
+ "n_internal = 0.85;\n",
+ "h12 = n_internal*h1_2s;\n",
+ "hg = 2706.3; \n",
+ "h2 = hg;\n",
+ "h1 = h12+h2;\n",
+ "h2s = h1-h1_2s;\n",
+ "hf = 503.71;\n",
+ "x2s = (h2s-hf)/hfg;\n",
+ "sf = 1.5276; \n",
+ "sfg = 5.6020;\n",
+ "s2s = sf+(x2s*sfg);\n",
+ "s1 = s2s;\n",
+ "P1 = 22.5; \t\t\t# in bar from Moiller chart\n",
+ "t1 = 360;\n",
+ "\n",
+ "# Results\n",
+ "print \"Temperature of the steam is\",t1,\"degree\"\n",
+ "print \"Pressure of the steam is \",P1,\"bar\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of the steam is 360 degree\n",
+ "Pressure of the steam is 22.5 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No : 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 3037.3; h2 = 561+(0.96*2163.8);\n",
+ "s2 = 1.6718+(0.96*5.3201);\n",
+ "s3s = s2;\n",
+ "\n",
+ "# Calculation\n",
+ "x3s = (s3s-0.6493)/7.5009;\n",
+ "h3s = 191.83+(x3s*2392.8);\n",
+ "h23 = 0.8*(h2-h3s); \t\t\t# h2-h3\n",
+ "h3 = h2-h23;\n",
+ "h5 = 561.47; h4 = 191.83;\n",
+ "Qh = 3500.; \t\t\t# in kJ/s\n",
+ "w = Qh/(h2-h5);\n",
+ "Wt = 1500.;\n",
+ "ws = (Wt+w*(h2-h3))/(h1-h3); \n",
+ "ws_ = 3600.*ws ; \t\t\t# in kg/h\n",
+ "h6 = ((ws-w)*h4+w*h5)/ws;\n",
+ "h7 = h6;\n",
+ "n_boiler = 0.85;\n",
+ "CV = 44000.; \t\t\t# in kJ/kg\n",
+ "wf = (1.1*ws_*(h1-h7))/(n_boiler*CV);\n",
+ "\n",
+ "# Results\n",
+ "print \"Fuel buring rate is %.2f Kg/h\"%wf\n",
+ "print \"Wf = %.2f tonnes/day\"%(wf*24/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fuel buring rate is 756.64 Kg/h\n",
+ "Wf = 18.16 tonnes/day\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11 Page No : 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 3285.; \n",
+ "h2s = 3010.\n",
+ "h3 = 3280.; \n",
+ "h4s = 3030.;\n",
+ "\n",
+ "# Calculation\n",
+ "h4 = h3-0.83*(h3-h4s);\n",
+ "h5s = 2225;\n",
+ "h5 = h4-0.83*(h4-h5s);\n",
+ "h6 = 162.7; h7 = h6;\n",
+ "h8 = 762.81;\n",
+ "h2 = h1-0.785*(h1-h2s);\n",
+ "m = (h8-h7)/(h4-h7);\n",
+ "n_cycle = ((h1-h2)+(h3-h4)+(1-m)*(h4-h5))/((h1-h8)+(h3-h2))\n",
+ "\n",
+ "# Results\n",
+ "print \"Steam flow at turbine inlet is %.3f Kg/s\"%m\n",
+ "print \"cycle efficiency is %.2f %%\"%(n_cycle*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam flow at turbine inlet is 0.206 Kg/s\n",
+ "cycle efficiency is 35.92 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12 Page No : 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# From table and graph \n",
+ "\n",
+ "# Variables\n",
+ "h1 = 2792.2;\n",
+ "h4 = 122.96;\n",
+ "hb = 254.88;\n",
+ "hc = 29.98;\n",
+ "ha = 355.98;\n",
+ "hd = hc;\n",
+ "h2 = 1949.27;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "m = (h1-h4)/(hb-hc); \t\t\t# Amount of mercury circulating\n",
+ "Q1t = m*(ha-hd);\n",
+ "W1t = m*(ha-hb) + (h1-h2);\n",
+ "Nov = W1t/Q1t ;\n",
+ "print \"Overall efficiency of the cycle %.2f %%\"%(Nov*100)\n",
+ "\n",
+ "S = 50000.; \t\t\t# Stem flow rate through turbine in kg/h\n",
+ "wm = S*m;\n",
+ "print \"Flow through the mercury turbine is %.2e Kg/h\"%wm\n",
+ "\n",
+ "Wt = W1t*S/3600;\n",
+ "print \"Useful work done in binary vapour cycle is %.2e kW\"%Wt\n",
+ "\n",
+ "nm = 0.85; \t\t\t# Internal efficiency of mercury turbine\n",
+ "ns = 0.87; \t\t\t# Internal efficiency of steam turbine\n",
+ "WTm = nm*(ha-hb);\n",
+ "hb_ = ha-WTm; \t\t\t# hb'\n",
+ "m_ = (h1-h4)/(hb_-hc); \t\t\t# m'\n",
+ "h1_ = 3037.3; \t\t\t# h'\n",
+ "Q1t = m_*(ha-hd)+(h1_-h1);\n",
+ "x2_ = (6.9160-0.4226)/(8.47-0.4226);\n",
+ "h2_ = 121+(0.806*2432.9);\n",
+ "WTst = ns*(h1_-h2_);\n",
+ "WTt = m_*(ha-hb_)+WTst;\n",
+ "Nov = WTt/Q1t;\n",
+ "\n",
+ "print \"Overall efficiency is %.1f %%\"%(Nov*100)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall efficiency of the cycle 52.80 %\n",
+ "Flow through the mercury turbine is 5.93e+05 Kg/h\n",
+ "Useful work done in binary vapour cycle is 2.84e+04 kW\n",
+ "Overall efficiency is 46.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch13.ipynb b/Engineering_Thermodynamics/ch13.ipynb
new file mode 100755
index 00000000..4c7ec6db
--- /dev/null
+++ b/Engineering_Thermodynamics/ch13.ipynb
@@ -0,0 +1,590 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:20c7c69ec3c2fcafe0d93dd099c65cc40aeef92c301c25a624e4ebbb2e24b55e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Gas Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1 Page No : 543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 273.+35;\n",
+ "P1 = 100e03; \t\t\t# in kN/m2\n",
+ "Q1 = 2100.;\n",
+ "R = 0.287;\n",
+ "v1 = 0.884\n",
+ "v2 = 0.11\n",
+ "v3 = v2;\n",
+ "rk = 8.\n",
+ "g = 1.4; \t\t\t# gamma\n",
+ "\n",
+ "# Calculation\n",
+ "n_cycle = 1-(1./rk**(1.4-1));\n",
+ "v12 = 8; \t\t\t# v1./v2\n",
+ "v1 = (R*T1)/P1;\n",
+ "v2 = v1/8;\n",
+ "T2 = T1*(v1/v2)**(g-1);\n",
+ "cv = 0.718;\n",
+ "T3 = Q1/cv + T2\n",
+ "P21 = (v1/v2)**g;\n",
+ "P2 = P21*P1;\n",
+ "P3 = P2*(T3/T2);\n",
+ "Wnet = Q1*n_cycle;\n",
+ "Pm = Wnet/(v1-v2);\n",
+ "\n",
+ "# Results\n",
+ "print \"Maximum pressure is %.2f mPa\"%(P3/1e06)\n",
+ "print \"Temperature of the cycle is %.2f K\"%T3,\"K\"\n",
+ "print \"Cycle efficiency is %.2f %%\"%(n_cycle*100)\n",
+ "print \"Mean effective pressure is %.3f MPa\"%(Pm/1e06)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum pressure is 9.43 mPa\n",
+ "Temperature of the cycle is 3632.39 K K\n",
+ "Cycle efficiency is 56.47 %\n",
+ "Mean effective pressure is 1.533 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2 Page No : 544"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "rk = 14.;\n",
+ "k = 0.06\n",
+ "rc = k*(14-1)+1;\n",
+ "g = 1.4;\n",
+ "\n",
+ "# Calculation\n",
+ "n_diesel = 1-((1./g))*(1./rk**(g-1))*((rc**(g-1))/(rc-1));\n",
+ "\n",
+ "# Results\n",
+ "print \"Air standard efficiency is %.f %%\"%(n_diesel*100)\n",
+ "\n",
+ "# note : rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air standard efficiency is 60 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No : 544"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "rk = 16.;\n",
+ "T1 = 273.+15;\n",
+ "P1 = 100.; \t\t\t# in kN/m2\n",
+ "T3 = 1480.+273;\n",
+ "g = 1.4; \t\t\t# gamma \n",
+ "R = 0.287;\n",
+ "T2 = 288*(rk**(g-1));\n",
+ "\n",
+ "# Calculation\n",
+ "rc = T3/T2 ;\n",
+ "cp = 1.005; cv = 0.718;\n",
+ "Q1 = cp*(T3-T2);\n",
+ "T4 = T3*((rc/rk)**(g-1));\n",
+ "Q2 = cv*(T4-T1);\n",
+ "n = 1-(Q2/Q1); \t\t\t# cycle efficiency\n",
+ "n_ = 1-((1./g))*(1./rk**(g-1))*((rc**(g-1))/(rc-1)); \t\t\t# cycle efficiency from another formula\n",
+ "Wnet = Q1*n;\n",
+ "v1 = (R*T1)/P1 ;\n",
+ "v2 = v1/rk;\n",
+ "Pm = Wnet/(v1-v2);\n",
+ "\n",
+ "# Results\n",
+ "print \"cut-off ratio is %.2f\"%rc\n",
+ "print \"Heat supplied per kg of air is %.1f kJ/Kg\"%Q1\n",
+ "print \"Cycle efficiency is %.1f %%\"%(n*100)\n",
+ "print \"Mean effective pressure is %.2f Kpa\"%Pm\n",
+ "\n",
+ "# rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cut-off ratio is 2.01\n",
+ "Heat supplied per kg of air is 884.3 kJ/Kg\n",
+ "Cycle efficiency is 61.3 %\n",
+ "Mean effective pressure is 699.97 Kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4 Page No : 546"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 273.+50;\n",
+ "rk = 16.;\n",
+ "g = 1.4; \t\t\t# gamma\n",
+ "P3 = 70.; \n",
+ "cv = 0.718; \n",
+ "cp = 1.005; \n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "T2 = T1*((rk**(g-1)));\n",
+ "P1 = 1; \t\t\t# in bar\n",
+ "P2 = P1*(rk)**g;\n",
+ "T3 = T2*(P3/P2);\n",
+ "Q23 = cv*(T3-T2);\n",
+ "T4 = (Q23/cp)+T3;\n",
+ "v43 = T4/T3; \t\t\t# v4/v3\n",
+ "v54 = rk/v43; \t\t\t# v5/v4 = (v1./v2)*(v3/v4)\n",
+ "T5 = T4*(1./v54)**(g-1);\n",
+ "P5 = P1*(T5/T1);\n",
+ "Q1 = cv*(T3-T2)+cp*(T4-T3);\n",
+ "Q2 = cv*(T5-T1);\n",
+ "n_cycle = 1-(Q2/Q1);\n",
+ "v1 = (R*T1)/P1;\n",
+ "v12 = (15./16)*v1; \t\t\t# v1-v2\n",
+ "Wnet = Q1*n_cycle;\n",
+ "Pm = Wnet/(v12);\n",
+ "\n",
+ "# Results\n",
+ "print \"Efficiency of the cycle is %.2f %%\"%(n_cycle*100)\n",
+ "print \"Mean effective pressure is %.2f\"%Pm,\"bar\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of the cycle is 66.31 %\n",
+ "Mean effective pressure is 4.76 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No : 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P1 = 0.1e06;\n",
+ "T1 = 303.;\n",
+ "T3 = 1173.;\n",
+ "PR = 6.; \t\t\t# Pressure ratio\n",
+ "rp = 6.; \n",
+ "nt = 0.8; \n",
+ "nc = 0.8;\n",
+ "g = 1.4; \n",
+ "cv = 0.718; \n",
+ "cp = 1.005; \n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "j = (PR)**((g-1)/g);\n",
+ "T2s = j*T1;\n",
+ "T4s = T3/j;\n",
+ "T21 = (T2s-T1)/nc ; \t\t\t# T2-T1\n",
+ "T34 = nt*(T3-T4s); \t\t\t# T3-T4\n",
+ "Wt = cp*T34;\n",
+ "Wc = cp*T21;\n",
+ "T2 = T21+T1;\n",
+ "Q1 = cp*(T3-T2);\n",
+ "n = (Wt-Wc)/Q1;\n",
+ "T4 = T3-375;\n",
+ "T6 = 0.75*(T4-T2) + T2 ;\n",
+ "Q1_ = cp*(T3-T6);\n",
+ "n_ = (Wt-Wc)/Q1_;\n",
+ "I = (n_-n)/n ;\n",
+ "\n",
+ "# Results\n",
+ "print \"The percentage efficiency in cycle efficiency due to regeneration is %.f %%\"%(I*100)\n",
+ "\n",
+ "# note : rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The percentage efficiency in cycle efficiency due to regeneration is 42 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No : 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "cp = 1.005;\n",
+ "Tmax = 1073.\n",
+ "Tmin = 300.;\n",
+ "\n",
+ "# Calculation\n",
+ "Wnet_max = cp*(math.sqrt(Tmax)-math.sqrt(Tmin))**2;\n",
+ "n_cycle = 1-math.sqrt(Tmin/Tmax);\n",
+ "n_carnot = 1-(Tmin/Tmax);\n",
+ "r = n_cycle/n_carnot;\n",
+ "\n",
+ "# Results\n",
+ "print \"Maximum work done per kg of air is %.2f kJ/Kg\"%Wnet_max\n",
+ "print \"cycle efficiency is %.0f %%\"%(n_cycle*100)\n",
+ "print \"ratio of brayton and carnot efficiency is %.3f\"%r\n",
+ "\n",
+ "# note : rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum work done per kg of air is 239.47 kJ/Kg\n",
+ "cycle efficiency is 47 %\n",
+ "ratio of brayton and carnot efficiency is 0.654\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7 Page No : 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "rp = 6.;\n",
+ "g = 1.4; \n",
+ "cv = 0.718; \n",
+ "cp = 1.005; \n",
+ "R = 0.287;\n",
+ "T1 = 300.; \n",
+ "T3 = 1100.; \n",
+ "T0 = 300.;\n",
+ "\n",
+ "# Calculation\n",
+ "n_cycle = 1-(1./rp**((g-1)/g));\n",
+ "j = rp**((g-1)/g);\n",
+ "T2 = T1*j;\n",
+ "T4 = T3/j;\n",
+ "Wc = cp*(T2-T1);\n",
+ "Wt = cp*(T3-T4);\n",
+ "WR = (Wt-Wc)/Wt;\n",
+ "Q1 = 100; \t\t\t# in MW\n",
+ "PO = n_cycle*Q1;\n",
+ "m_dot = (Q1*1e06)/(cp*(T3-T2));\n",
+ "R = m_dot*cp*T0*((T4/T0)-1-math.log(T4/T0));\n",
+ "\n",
+ "# Results\n",
+ "print \"The thermal efficiency of the cycle is %.1f %%\"%(n_cycle*100)\n",
+ "print \"Work ratio is %.3f\"%WR\n",
+ "print \"Power output is %.1f MW\"%PO\n",
+ "print \"Energy flow rate of the exhaust gas stream is %.2f MW\"%(R/1e06)\n",
+ "\n",
+ "# rounding error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thermal efficiency of the cycle is 40.1 %\n",
+ "Work ratio is 0.545\n",
+ "Power output is 40.1 MW\n",
+ "Energy flow rate of the exhaust gas stream is 20.53 MW\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8 Page No : 550"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "nc = 0.87; \n",
+ "nt = 0.9; \n",
+ "T1 = 311.; \n",
+ "rp = 8.; \t\t\t# P2/P1\n",
+ "P1 = 1.; \n",
+ "P2 = 8.; \n",
+ "P3 = 0.95*P2; \n",
+ "P4 = 1;\n",
+ "T3 = 1100.; \n",
+ "g = 1.4; \n",
+ "cv = 0.718; \n",
+ "cp = 1.005; \n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "# With no cooling\n",
+ "T2s = T1*((P2/P1)**((g-1)/g));\n",
+ "T2 = T1 + (T2s-T1)/0.87;\n",
+ "T4s = T3*(P4/P3)**((g-1)/g);\n",
+ "n = (((T3-T4s)*nt)-((T2s-T1)/nc))/(T3-T2);\n",
+ "# With cooling\n",
+ "n_cycle = n-0.05;\n",
+ "x = 0.13;\n",
+ "r = 0.13/1.13;\n",
+ "\n",
+ "# Results\n",
+ "print \"Percentage of air that may be taken from the compressor is %.1f%%\"%(r*100)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of air that may be taken from the compressor is 11.5%\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.10 Page No : 555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 233.; \n",
+ "V1 = 300.; \n",
+ "cp = 1.005; \n",
+ "g = 1.4;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "T2 = T1+((V1**2)/(2*cp))*1e-03 ;\n",
+ "P1 = 35;\n",
+ "P2 = P1*(T2/T1)**(g/(g-1));\n",
+ "rp = 10; \t\t\t# Pressure ratio\n",
+ "P3 = rp*P2;\n",
+ "T3 = T2*(P3/P2)**((g-1)/g);\n",
+ "T4 = 1373;\n",
+ "T5 = T4-T3+T2;\n",
+ "P4 = P3;\n",
+ "P5 = P4*(T5/T4)**(g/(g-1));\n",
+ "print \"Temperature at the turbine exit is %.2f K\"%T5\n",
+ "print \"Pressure at the turbine exit is %.2f kPa\"%P5\n",
+ "P6 = P1;\n",
+ "T6 = T5*(P6/P5)**((g-1)/g);\n",
+ "V6 = (2*cp*1000*(T5-T6))**0.5 ;\n",
+ "\n",
+ "print \"Velocity of the gas at the nozzle exit is %.1f m/s\"%V6\n",
+ "w = 50.;\n",
+ "Ve = V6; Vi = 300.;\n",
+ "Wp_dot = w*Vi*(Ve-Vi);\n",
+ "h4 = 1373.; \n",
+ "h3 = 536.66;\n",
+ "Q1 = w*cp*(h4-h3); \t\t\t# in kJ/kg\n",
+ "np = Wp_dot/(Q1*1000);\n",
+ "print \"The propulsive efficiency of the cycle is %.1f %%\"%(np*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature at the turbine exit is 1114.47 K\n",
+ "Pressure at the turbine exit is 312.00 kPa\n",
+ "Velocity of the gas at the nozzle exit is 1020.3 m/s\n",
+ "The propulsive efficiency of the cycle is 25.7 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.11 Page No : 556"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Ta = 288.;\n",
+ "rp = 8.; \t\t\t# Pb/Pa\n",
+ "g = 1.33; \n",
+ "g1 = 1.44; \n",
+ "cv = 0.718; \n",
+ "cpa = 1.005; \n",
+ "cpg = 1.11; \n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "Tb = Ta*(rp)**((g1-1)/g1);\n",
+ "Tc = 1073.; \n",
+ "Tm = 800.+273; \n",
+ "Tmin = 100.+273;\n",
+ "Td = Tc/(rp**((g-1)/g));\n",
+ "Wgt = cpg*(Tc-Td)-cpa*(Tb-Ta);\n",
+ "Q1 = cpg*(Tc-Tb);\n",
+ "Q1_ = cpg*(Tc-Td);\n",
+ "h1 = 3775.; h2 = 2183.; h3 = 138.; h4 = h3;\n",
+ "Q1_st = h1-h3; \t\t\t# Q1'\n",
+ "Q_fe = cpg*(Tm-Tmin);\n",
+ "was = Q1_st/Q_fe; \t\t\t# wa/ws\n",
+ "Wst = h1-h2;\n",
+ "PO = 190e03; \t\t\t# in kW\n",
+ "ws = PO/(was*Wgt+Wst);\n",
+ "wa = 322.5;\n",
+ "CV = 43300.; \t\t\t# in kJ/kg\n",
+ "waf = round(CV/(1095.),1)\n",
+ "FEI = (wa/waf)*CV;\n",
+ "noA = PO/FEI;\n",
+ "\n",
+ "# Results\n",
+ "print \"Air fuel ratio is %.2f\"%waf\n",
+ "print \"Overall efficiency of combined plant is %.1f %%\"%(noA*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio is 39.50\n",
+ "Overall efficiency of combined plant is 53.7 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch14.ipynb b/Engineering_Thermodynamics/ch14.ipynb
new file mode 100755
index 00000000..4a601b5b
--- /dev/null
+++ b/Engineering_Thermodynamics/ch14.ipynb
@@ -0,0 +1,502 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:43030cb407ee8b4a262c4ba255fecb3e020be8690e26722c194a6ec2d965f42c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Refrigeration Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Page No : 587"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T2 = 268.; \n",
+ "T1 = 308.;\n",
+ "\n",
+ "# Calculation\n",
+ "COP = T2/(T1-T2);\n",
+ "ACOP = COP/3; \t\t\t# Actual COP\n",
+ "Q2 = 29.; \t\t\t# in kW\n",
+ "W = Q2/ACOP;\n",
+ "\n",
+ "# Results\n",
+ "print \"Power required to derive the plane is %.0f kW\"%W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power required to derive the plane is 13 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Page No : 589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 236.04; s1 = 0.9322; s2 = s1;\n",
+ "P2 = 0.8; \t\t\t# in MPa\n",
+ "h2 = 272.05; h3 = 93.42; h4 = h3;\n",
+ "m = 0.06; \t\t\t# mass flow rate\n",
+ "\n",
+ "# Calculation\n",
+ "Q2 = m*(h1-h4);\n",
+ "Wc = m*(h2-h1);\n",
+ "Q1 = m*(h2-h4);\n",
+ "COP = Q2/Wc;\n",
+ "\n",
+ "# Results\n",
+ "print \"The rate of heat removal is %.2f kW\"%Q2\n",
+ "print \"Power input to the compressor is %.2f kW\"%Wc\n",
+ "print \"The heat rejection rate in the condenser is %.2f kW\"%Q1\n",
+ "print \"COP is %.3f\"%COP\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of heat removal is 8.56 kW\n",
+ "Power input to the compressor is 2.16 kW\n",
+ "The heat rejection rate in the condenser is 10.72 kW\n",
+ "COP is 3.961\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No : 589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 183.19; \n",
+ "h2 = 209.41; \n",
+ "h3 = 74.59; \n",
+ "h4 = h3;\n",
+ "T1 = 313.; \n",
+ "T2 = 263.;\n",
+ "W = 70000./3600; \t\t\t# Plant capacity in kW\n",
+ "\n",
+ "# Calculation\n",
+ "w = W/(h1-h4); \t\t\t# Refrigerant flow rate\n",
+ "v1 = 0.077;\n",
+ "VFR = w*v1;\n",
+ "T = 48.; \t\t\t# in degree\n",
+ "P2 = 9.6066; P1 = 2.1912;\n",
+ "rp = P2/P1; \t\t\t# Pressure ratio\n",
+ "Q1 = w*(h2-h3);\n",
+ "hf = 26.87; hfg = 156.31;\n",
+ "x4 = (h4-hf)/hfg;\n",
+ "COP = (h1-h4)/(h2-h1);\n",
+ "PI = w*(h2-h1);\n",
+ "COP = T2/(T1-T2);\n",
+ "COP_v = 4.14;\n",
+ "r = COP_v/COP;\n",
+ "\n",
+ "# Results\n",
+ "print \"Refrigerant flow rate is %.2f Kg/s\"%w\n",
+ "print \"Volume flow rate is %.4f m3/s\"%VFR\n",
+ "print \"Compressor discharge temperature is\",T,\"degree\"\n",
+ "print \"Pressure ratio is %.2f\"%rp\n",
+ "print \"Heat rejected to the condenser is %.2f kW\"%Q1\n",
+ "print \"Flash gas percentage is %.1f %%\"%(x4*100)\n",
+ "print \"COP is\",COP\n",
+ "print \"Power required to drive the compressor is %.2f kW\"%PI\n",
+ "print \"Ratio of COP of carnot refrigerator is %.3f\"%r\n",
+ "\n",
+ "# note : rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigerant flow rate is 0.18 Kg/s\n",
+ "Volume flow rate is 0.0138 m3/s\n",
+ "Compressor discharge temperature is 48.0 degree\n",
+ "Pressure ratio is 4.38\n",
+ "Heat rejected to the condenser is 24.14 kW\n",
+ "Flash gas percentage is 30.5 %\n",
+ "COP is 5.26\n",
+ "Power required to drive the compressor is 4.69 kW\n",
+ "Ratio of COP of carnot refrigerator is 0.787\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4 Page No : 590"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "h3 = 882.\n",
+ "h2 = 1034.;\n",
+ "h6 = 998.\n",
+ "h1 = 1008.;\n",
+ "v1 = 0.084;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "h4 = h3-h1+h6; h5 = h4;\n",
+ "t4 = 25.+273;\n",
+ "print \"Refrigeration effect is\",h6-h5,\"kJ/kg\"\n",
+ "\n",
+ "m = 10.;\n",
+ "w = (m*14000)/((h6-h5)*3600); \t\t\t# in kg/s\n",
+ "print \"Refrigerant flow rate is %.2f kg/s\"%w\n",
+ "\n",
+ "v1 = 0.084;\n",
+ "VFR = w*3600*v1; \t\t\t# in kg/h\n",
+ "ve = 0.8; \t\t\t# volumetric efficiency\n",
+ "CD = VFR/(ve*60); \t\t\t# in m3/min\n",
+ "N = 900;\n",
+ "n = 2;\n",
+ "D = ((CD*4)/(math.pi*1.1*N*n))**(1./3); \t\t\t# L = 1.1D L = length D = diameter\n",
+ "L = 1.1*D;\n",
+ "print \"Diameter of cylinder is %.1f cm\"%(D*100)\n",
+ "print \"Length of cylinder is %.2f cm\"%(L*100)\n",
+ "COP = (h6-h5)/(h2-h1);\n",
+ "PI = w*(h2-h1);\n",
+ "print \"Power required to drive the compresor is %.2f kW\"%PI\n",
+ "print \"COP is %.2f\"%COP\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigeration effect is 126.0 kJ/kg\n",
+ "Refrigerant flow rate is 0.31 kg/s\n",
+ "Diameter of cylinder is 10.8 cm\n",
+ "Length of cylinder is 11.85 cm\n",
+ "Power required to drive the compresor is 8.02 kW\n",
+ "COP is 4.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5 Page No : 592"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P2 = 1554.3;\n",
+ "P1 = 119.5;\n",
+ "Pi = math.sqrt(P1*P2);\n",
+ "h1 = 1404.6; \n",
+ "h2 = 1574.3; \n",
+ "h3 = 1443.5; \n",
+ "h4 = 1628.1;\n",
+ "h5 = 371.7; h6 = h5; h7 = 181.5;\n",
+ "w = 30.; \t\t\t# capacity of plant\n",
+ "\n",
+ "# Calculation\n",
+ "m2_dot = (3.89*30)/(h1-h7);\n",
+ "m1_dot = m2_dot*((h2-h7)/(h3-h6));\n",
+ "Wc_dot = m2_dot*(h2-h1)+m1_dot*(h4-h3);\n",
+ "COP = w*3.89/Wc_dot;\n",
+ "\t\t\t# math.single stage\n",
+ "h1_ = 1404.6; h2_ = 1805.1;\n",
+ "h3_ = 371.1; h4_ = h3_;\n",
+ "m_dot = (3.89*30)/(h1_-h4_);\n",
+ "Wc = m_dot*(h2_-h1_);\n",
+ "COP_ = w*3.89/Wc;\n",
+ "IW = (Wc-Wc_dot)/Wc_dot;\n",
+ "ICOP = (COP-COP_)/COP_\n",
+ "\n",
+ "# Results\n",
+ "print \"Increase in work of compression is %.2f\"%(IW*100)\n",
+ "print \"Increase in COP for 2 stage compression is %.2f %%\"%(ICOP*100)\n",
+ "\n",
+ "# note : rounding error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in work of compression is 15.72\n",
+ "Increase in COP for 2 stage compression is 15.72 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6 Page No : 593"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "tsat = 120.2+273\n",
+ "hfg = 2201.9;\n",
+ "T1 = 120.2+273;\n",
+ "T2 = 30.+273;\n",
+ "Tr = -10.+273;\n",
+ "\n",
+ "# Calculation\n",
+ "COP_max = ((T1-T2)*Tr)/((T2-Tr)*T1);\n",
+ "ACOP = 0.4*COP_max;\n",
+ "Qe = (20.*14000)/3600; \t\t\t# in KW\n",
+ "Qg = Qe/ACOP;\n",
+ "x = 0.9; \n",
+ "H = x*hfg;\n",
+ "SFR = Qg/H;\n",
+ "\n",
+ "# Results\n",
+ "print \"Steam flow rate required is %.4f kg/s\"%SFR\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam flow rate required is 0.0651 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7 Page No : 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 277.; \n",
+ "T3 = 273.+55;\n",
+ "rp = 3.; \t\t\t# Pressure ratio\n",
+ "g = 1.4; \n",
+ "cp = 1.005;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "T2s = T1*(rp**((g-1)/g));\n",
+ "T2 = T1+(T2s-T1)/0.72\n",
+ "T4s = T3/(rp**((g-1)/g));\n",
+ "T34 = 0.78*(T3-T4s); \t\t\t# T3-T4\n",
+ "T4 = T3-T34;\n",
+ "COP = (T1-T4)/((T2-T1)-(T3-T4));\n",
+ "print \"COP of the refrigerator is %.2f\"%COP\n",
+ "P = (3.*14000)/(COP*3600)\n",
+ "print \"Driving power required is %.1f kW\"%P\n",
+ "m = (3.*14000)/(cp*(T1-T4));\n",
+ "print \"Mass flow rate is %.2f kg/s\"%(m/3600)\n",
+ "\n",
+ "# note: rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP of the refrigerator is 0.25\n",
+ "Driving power required is 47.5 kW\n",
+ "Mass flow rate is 0.65 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8 Page No : 596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P1 = 2.4; T1 = 0+273;\n",
+ "h1 = 188.9; s1 = 0.7177; v1 = 0.0703;\n",
+ "P2 = 9; T2 = 60+273;\n",
+ "h2 = 219.37;\n",
+ "h2s = 213.27;\n",
+ "h3 = 71.93; h4 = h3;\n",
+ "v1 = 0.0703;\n",
+ "A1V1 = 0.6/60;\n",
+ "\n",
+ "# Calculation\n",
+ "m_dot = A1V1/0.0703;\n",
+ "Wc_dot = m_dot*(h2-h1);\n",
+ "Q1_dot = m_dot*(h2-h3);\n",
+ "COP = Q1_dot/Wc_dot;\n",
+ "nis = (h2s-h1)/(h2-h1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Power input is %.2f kW\"%Wc_dot\n",
+ "print \"Heating capacity is %.2f kW\"%Q1_dot\n",
+ "print \"COP is %.3f\"%COP\n",
+ "print \"The isentropic compressor efficiency is %.2f %%\"%(nis*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power input is 4.33 kW\n",
+ "Heating capacity is 20.97 kW\n",
+ "COP is 4.839\n",
+ "The isentropic compressor efficiency is 79.98 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9 Page No : 597"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 275.; \n",
+ "T3 = 310.;\n",
+ "P1 = 1. ; P2 = 4.;\n",
+ "\n",
+ "# Calculation\n",
+ "T2s = T1*(P2/P1);\n",
+ "nc = 0.8;\n",
+ "T2 = T1 + (T2s-T1)*nc;\n",
+ "pr = 0.1;\n",
+ "P3 = P2-0.1;\n",
+ "P4 = P1+0.08;\n",
+ "PR = P3/P4;\n",
+ "\n",
+ "# Results\n",
+ "print \"Pressure ratio for the turbine is %.3f\"%PR\n",
+ "T4s = T3*(1./PR)**(0.286);\n",
+ "nt = 0.85;\n",
+ "T4 = T3-(T3-T4s)*nt;\n",
+ "COP = (T1-T4)/((442.26-T3)-(T1-T4));\n",
+ "print \"COP is %.3f\"%COP\n",
+ "\n",
+ "# note : rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure ratio for the turbine is 3.611\n",
+ "COP is 0.533\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch15.ipynb b/Engineering_Thermodynamics/ch15.ipynb
new file mode 100755
index 00000000..c18d2a4a
--- /dev/null
+++ b/Engineering_Thermodynamics/ch15.ipynb
@@ -0,0 +1,487 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:69db660ca30a9a3baf1684d4ef5be81cf91d6088bb69eac31dc95900ca98814a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Psychrometrics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1 Page No : 618"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ps = 0.033363; \n",
+ "P = 1.0132;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "W2 = (0.622*Ps)/(P-Ps);\n",
+ "hfg2 = 2439.9; hf2 = 109.1; cpa = 1.005;\n",
+ "hg = 2559.9; hw1 = hg;\n",
+ "T2 = 25+273; T1 = 32+273;\n",
+ "W1 = (cpa*(T2-T1)+(W2*hfg2))/(hw1-hf2);\n",
+ "Pw = ((W1/0.622)*P)/(1+(W1/0.622));\n",
+ "print \"Specific humidity is \",round(W1,4),\"kg vap./kg dry air\"\n",
+ "print \"Partial pressure of water vapour is\",round(Pw,2),\"bar\"\n",
+ "print \"Dew point temperature is\",24.1,\"degree\" \t\t\t# saturation temperature at 0.03 bar\n",
+ "\n",
+ "Psat = 0.048; \t\t\t# at 32 degree\n",
+ "fi = Pw/Psat;\n",
+ "print \"Relative humidity is\",round((fi*100),1),\"%\"\n",
+ "mu = (Pw/Ps)*((P-Ps)/(P-Pw));\n",
+ "print \"Degree of saturation is %.3f\"%mu\n",
+ "Pa = P-Pw;\n",
+ "Ra = 0.287; Tab = T1;\n",
+ "rho_a = (Pa*100)/(Ra*Tab);\n",
+ "print \"Density of dry air is\",round(rho_a,2),\"kg/m3\"\n",
+ "rho_w = W1*rho_a;\n",
+ "print \"Density of water vapour is\",round(rho_w,3),\"kg/m3\"\n",
+ "ta = 32.; \n",
+ "tdb = 32.; \n",
+ "tdp = 24.1;\n",
+ "h = cpa*ta + W1*(hg+1.88*(tdb-tdp));\n",
+ "print \"Enthalpy of the mixture is\",round(h,2),\"kJ/kg\"\n",
+ "\n",
+ "# note: rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific humidity is 0.0182 kg vap./kg dry air\n",
+ "Partial pressure of water vapour is 0.03 bar\n",
+ "Dew point temperature is 24.1 degree\n",
+ "Relative humidity is 60.1 %\n",
+ "Degree of saturation is 0.860\n",
+ "Density of dry air is 1.12 kg/m3\n",
+ "Density of water vapour is 0.02 kg/m3\n",
+ "Enthalpy of the mixture is 79.06 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2 Page No : 620"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Ps = 2.339; P = 100;\n",
+ "W2 = (0.622*Ps)/(P-Ps);\n",
+ "hfg2 = 2454.1; hf2 = 83.96; cpa = 1.005;\n",
+ "hw1 = 2556.3;\n",
+ "T2 = 20.; \n",
+ "T1 = 30.;\n",
+ "\n",
+ "# Calculation\n",
+ "W1 = (cpa*(T2-T1)+(W2*hfg2))/(hw1-hf2);\n",
+ "Pw1 = ((W1/0.622)*P)/(1+(W1/0.622));\n",
+ "Ps1 = 4.246;\n",
+ "fi = (Pw1/Ps1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Relative humidity is\",round((fi*100),1),\"%\"\n",
+ "print \"Humidity ratio of inlet mixture is\",round(W1,4),\"kg vap./kg dry air\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative humidity is 39.9 %\n",
+ "Humidity ratio of inlet mixture is 0.0107 kg vap./kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3 Page No : 621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Psat = 2.339;\n",
+ "fi3 = 0.50;\n",
+ "P = 101.3; \n",
+ "cp = 1.005;\n",
+ "\n",
+ "# Calculation\n",
+ "Pw3 = fi3*Psat;\n",
+ "Pa3 = P-Pw3;\n",
+ "W3 = 0.622*(Pw3/Pa3);\n",
+ "Psa1_1 = 0.7156;\n",
+ "Pw1 = 0.7156;\n",
+ "Pa1 = P-Pw1;\n",
+ "W1 = 0.622*(Pw1/Pa1); W2 = W1;\n",
+ "T3 = 293.; \n",
+ "Ra = 0.287; \n",
+ "Pa3 = 100.13;\n",
+ "va3 = (Ra*T3)/Pa3;\n",
+ "SW = (W3-W1)/va3;\n",
+ "t3 = 20.; \n",
+ "tsat = 9.65; \n",
+ "hg = 2518.; \n",
+ "h4 = 10.;\n",
+ "t2 = ( W3*(hg+1.884*(t3-tsat))-W2*(hg-1.884*tsat) + cp*t3 - (W3-W2)*h4 )/ (cp+W2*1.884)\n",
+ "\n",
+ "# Results\n",
+ "print \"Mass of spray water required is\",round(SW,5),\"kg moisture/m3\"\n",
+ "print \"Temperature to which air must be heated is\",round(t2,1),\"degree\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of spray water required is 0.00338 kg moisture/m3\n",
+ "Temperature to which air must be heated is 27.1 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.4 Page No : 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 82.; \n",
+ "h2 = 52.; \n",
+ "h3 = 47.; \n",
+ "h4 = 40.;\n",
+ "W1 = 0.020; \n",
+ "W2 = 0.0115; \n",
+ "W3 = W2;\n",
+ "v1 = 0.887;\n",
+ "v = 3.33; \t\t\t# amount of free sir circulated\n",
+ "\n",
+ "# Calculation\n",
+ "G = v/v1;\n",
+ "CC = (G*(h1-h3)*3600.)/14000; \t\t\t# in tonns\n",
+ "R = G*(W1-W3);\n",
+ "\n",
+ "# Results\n",
+ "print \"Capacity of the cooling coil in tonnes\",round(CC,2),\"tonnes\"\n",
+ "print \"Rate of water vapour removed is\",round(R,4),\"kg/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacity of the cooling coil in tonnes 33.79 tonnes\n",
+ "Rate of water vapour removed is 0.0319 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5 Page No : 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "W1 = 0.0058\n",
+ "W2 = 0.0187; \n",
+ "h1 = 35.\n",
+ "h2 = 90.\n",
+ "\n",
+ "# Calculation\n",
+ "G12 = 1./2; \t\t\t# G12 = G1./G2 \n",
+ "W3 = (W2+G12*W1)/(1+G12);\n",
+ "h3 = (2./3)*h2 + (1./3)*h1;\n",
+ "\n",
+ "# Results\n",
+ "print (\"Final condition of air is given by\")\n",
+ "print \"W3 = \",W3,\"kg vap./kg dry air\"\n",
+ "print \"h3 = \",round(h3,2),\"kJ/kg dry air\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final condition of air is given by\n",
+ "W3 = 0.0144 kg vap./kg dry air\n",
+ "h3 = 71.67 kJ/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6 Page no : 624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variables\n",
+ "T2 = 38.5 # c\n",
+ "o3 =11.2 # c\n",
+ "\n",
+ "# calculations\n",
+ "h1h3 = 60.5 - 42.\n",
+ "w1w2 = 0.0153 - 0.0083 \n",
+ "\n",
+ "# results\n",
+ "print \"T2 = %.1f C\"%T2\n",
+ "print \"h1 - h3 = %.1f kJ/kg dry air\"%h1h3\n",
+ "print \"W1 - W2 = %.4f kg vap/kg dry air\"%w1w2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T2 = 38.5 C\n",
+ "h1 - h3 = 18.5 kJ/kg dry air\n",
+ "W1 - W2 = 0.0070 kg vap/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7 Page No : 624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 57.\n",
+ "h2 = h1;\n",
+ "h3 = 42.;\n",
+ "W1 = 0.0065; \n",
+ "W2 = 0.0088; \n",
+ "W3 = W2;\n",
+ "t2 = 34.5; \n",
+ "v1 = 0.896;\n",
+ "n = 1500.; \t\t\t# seating capacity of hall\n",
+ "a = 0.3; \t\t\t# amount of out door air suplied\n",
+ "\n",
+ "# Calculation\n",
+ "G = (n*a)/0.896 ; \t\t\t# Amount of dry air suplied\n",
+ "CC = (G*(h2-h3)*60)/14000; \t\t\t# in tonns\n",
+ "R = G*(W2-W1)*60;\n",
+ "\n",
+ "# Results\n",
+ "print \"Capacity of the cooling coil in tonnes\",round(CC,2),\"tonnes\"\n",
+ "print \"Capacity of humidifier\",round(R,1),\"kg/h\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacity of the cooling coil in tonnes 32.29 tonnes\n",
+ "Capacity of humidifier 69.3 kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8 Page No : 626"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "twb1 = 15.2; \n",
+ "twb2 = 26.7; \n",
+ "tw3 = 30.;\n",
+ "h1 = 43.; \n",
+ "h2 = 83.5; \n",
+ "hw = 84.; \n",
+ "mw = 1.15;\n",
+ "W1 = 0.0088; \n",
+ "W2 = 0.0213;\n",
+ "hw3 = 125.8; \n",
+ "hm = 84;\n",
+ "G = 1.;\n",
+ "\n",
+ "# Calculation\n",
+ "hw34 = (G/mw)*((h2-h1)-(W2-W1)*hw); \t\t\t# hw3-hw4\n",
+ "tw4 = tw3-(hw34/4.19);\n",
+ "A = tw4-twb1;\n",
+ "R = tw3-tw4;\n",
+ "x = G*(W2-W1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Temperature of water leaving the tower is\",round(tw4,1),\"degree\"\n",
+ "print \"Fraction of water evoporated is\",x,\"kg/kg dry sir\"\n",
+ "print \"Range of cooling water is\",round(R,1),\"degree\"\n",
+ "print \"Approach of cooling water is\",round(A,1),\"degree\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of water leaving the tower is 21.8 degree\n",
+ "Fraction of water evoporated is 0.0125 kg/kg dry sir\n",
+ "Range of cooling water is 8.2 degree\n",
+ "Approach of cooling water is 6.6 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.9 Page No : 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Psat1 = 0.01705; \n",
+ "hg1 = 2528.9; \t\t\t# at 15 degree\n",
+ "Psat2 = 0.05628; \n",
+ "hg2 = 2565.3; \t\t\t# At 35 degree\n",
+ "fi1 = 0.55;\n",
+ "Pw1 = fi1*Psat1;\n",
+ "fi2 = 1;\n",
+ "Pw2 = fi2*Psat2;\n",
+ "P = 1.;\n",
+ "\n",
+ "# Calculation\n",
+ "W1 = (0.622*Pw1)/(P-Pw1);\n",
+ "W2 = (0.622*Pw2)/(P-Pw2);\n",
+ "MW = W2-W1;\n",
+ "t2 = 35; t1 = 15; \n",
+ "m_dot = 2.78;\n",
+ "cpa = 1.005;\n",
+ "h43 = 35*4.187; \t\t\t# h4-h3\n",
+ "h5 = 14*4.187;\n",
+ "m_dot_w = (-(W2-W1)*h5 - W1*hg1 + W2*hg2 + cpa*(t2-t1))/(h43) ;\n",
+ "R = m_dot/m_dot_w ;\n",
+ "MW = (W2-W1)*R;\n",
+ "RWA = R*(1+W1);\n",
+ "R = 0.287; T = 288; \n",
+ "V_dot = (RWA*R*T)/(P*1e02) ; \t\t\t# Pressure is in kilo Pascal\n",
+ "\n",
+ "# Results\n",
+ "print \"Make up water flow rate is\",round(MW,3),\"kg/s\"\n",
+ "print \"Volume flow rate of air is\",round(V_dot,3),\"m3/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Make up water flow rate is 0.129 kg/s\n",
+ "Volume flow rate of air is 3.437 m3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch16.ipynb b/Engineering_Thermodynamics/ch16.ipynb
new file mode 100755
index 00000000..10fb2321
--- /dev/null
+++ b/Engineering_Thermodynamics/ch16.ipynb
@@ -0,0 +1,554 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1aee5040b10cb0c8b88b1f2c29303ab365a0d0e9e802f10ac15f3026e0ae4c4a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Reactive Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Page No : 657"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "eps_e = 0.27; \n",
+ "P = 1. ;\n",
+ "\n",
+ "# Calculation\n",
+ "K = (4*eps_e**2*P)/(1-eps_e**2);\n",
+ "P1 = 100./760; \t\t\t# in Pa\n",
+ "eps_e_1 = math.sqrt((K/P1)/(4+(K/P1)));\n",
+ "T1 = 318.; T2 = 298.;\n",
+ "R = 8.3143; K1 = 0.664; K2 = 0.141;\n",
+ "dH = 2.30*R*((T1*T2)/(T1-T2))*(math.log(K1/K2));\n",
+ "\n",
+ "# Results\n",
+ "print \"K is\",round(K,4),\"atm\"\n",
+ "print \"epislon is \",round(eps_e_1,3)\n",
+ "print \"The heat of reaction is\",round(dH,0),\"kJ/kg mol\"\n",
+ "\n",
+ "# note : book answer is wrong. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K is 0.3145 atm\n",
+ "epislon is 0.612\n",
+ "The heat of reaction is 140399.0 kJ/kg mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page No : 659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "v1 = 1.\n",
+ "v2 = v1; \n",
+ "v3 = v2; \n",
+ "v4 = v2;\n",
+ "e = 0.56; \t\t\t# Degree of reaction\n",
+ "P = 1.; \t\t\t# Dummy\n",
+ "T = 1200.\n",
+ "R = 8.3143;\n",
+ "\n",
+ "# Calculation\n",
+ "x1 = (1-e)/2; x2 = (1-e)/2;\n",
+ "x3 = e/2; x4 = e/2;\n",
+ "K = (((x3**v3)*(x4**v4))/((x1**v1)*(x2**v2)))*P**(v3+v4-v1-v2); \t\t\t# Equillibrium consmath.tant\n",
+ "dG = -R*T*math.log(K);\n",
+ "\n",
+ "# Results\n",
+ "print \"Equillibrium constant is\",round(K,2)\n",
+ "print \"Gibbs function change is\",round(dG,1),\"J/gmol\"\n",
+ "\n",
+ "# note : rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equillibrium constant is 1.62\n",
+ "Gibbs function change is -4812.2 J/gmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.5 Page No : 662"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Veo = 1.777; \t\t\t# Ve/Vo\n",
+ "e = 1-Veo; \t\t\t# Degree of dissociation\n",
+ "P = 0.124; \t\t\t# in atm\n",
+ "\n",
+ "# Calculation\n",
+ "K = (4*e**2*P)/(1-e**2);\n",
+ "\n",
+ "# Results\n",
+ "print \"The value of equillibrium constant is\",round(K,3),\"atm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of equillibrium constant is 0.756 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.6 Page No : 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "v1 = 1.; \n",
+ "v2 = 0.; \n",
+ "v3 = 1.; v4 = 1./2;\n",
+ "dH = 250560.; e = 3.2e-03;\n",
+ "R = 8.3143; T = 1900.;\n",
+ "\n",
+ "# Calculation\n",
+ "Cp = ((dH**2)*(1+e/2)*e*(1+e))/(R*T**2*(v1+v2)*(v3+v4));\n",
+ "\n",
+ "# Results\n",
+ "print \"Cp is\",round(Cp,3),\"j/gmol K\"\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cp is 4.484 j/gmol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.7 Page No : 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = 21.89;\n",
+ "y = 18.5;\n",
+ "x = 8.9;\n",
+ "\n",
+ "# Calculation\n",
+ "PC = 100.*(x*12.)/((8.9*12)+(18.5*1));\n",
+ "PH = 100-PC;\n",
+ "AFR = ((32*a)+(3.76*a*28))/((12*x)+y);\n",
+ "EAU = (8.8*32)/((21.89*32)-(8.8*32));\n",
+ "\n",
+ "# Results\n",
+ "print \"carbon = \",round(PC,2),\"% and Hydrogen = \",round(PH,2),\"%\"\n",
+ "print \"Air fuel ratio is\",round(AFR,0)\n",
+ "print \"Percentage of excess air used is\",round((EAU*100),2),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "carbon = 85.24 % and Hydrogen = 14.76 %\n",
+ "Air fuel ratio is 24.0\n",
+ "Percentage of excess air used is 67.23 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.8 Page No : 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "hf_co2 = -393522;\n",
+ "hf_h20 = -285838;\n",
+ "hf_ch4 = -74874;\n",
+ "\n",
+ "# Calculation\n",
+ "D = hf_co2 + (2*hf_h20);\n",
+ "QCV = D - (hf_ch4+1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Heat transfer per kg mol of fuel is\",D,\"kJ\"\n",
+ "print \"Qcv = %.f kJ\"%QCV\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer per kg mol of fuel is -965198 kJ\n",
+ "Qcv = -890325 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.9 Page No : 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Below values are taken fron table 16.4\n",
+ "\n",
+ "# Variables\n",
+ "Hr = -249952.+(18.7*560)+(70*540);\n",
+ "Hp = 8.*(-393522.+20288)+9*(-241827+16087)+6.25*14171+70*13491;\n",
+ "Wcv = 150.; \t\t\t# Energy out put from engine in kW\n",
+ "Qcv = -205.; \t\t\t# Heat transfer from engine in kW\n",
+ "\n",
+ "# Calculation\n",
+ "n = (Wcv-Qcv)*3600/(Hr-Hp);\n",
+ "\n",
+ "# Results\n",
+ "print \"Fuel consumption rate is\",round((n*114),1),\"kg/h\"\n",
+ "\n",
+ "# rounding error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fuel consumption rate is 38.5 kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.10 Page No : 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import interp\n",
+ "\n",
+ "# Variables\n",
+ "Hr1 = -249952.; \t\t\t# For ocmath.tane\n",
+ "Hp1 = Hr1;\n",
+ "# Below values are calculated umath.sing value fron table 16.4\n",
+ "T2 = 1000.; \n",
+ "Hp2 = -1226577.\n",
+ "T3 = 1200.;\n",
+ "Hp3 = 46537.;\n",
+ "T4 = 1100.;\n",
+ "Hp4 = -595964.;\n",
+ "\n",
+ "# Calculation\n",
+ "Hp = [Hp2 ,Hp3, Hp4]\n",
+ "T = [T2 ,T3, T4]\n",
+ "T1 = interp(Hp1,Hp , T); \t\t\t# Interpolation to find temperature at Hp1\n",
+ "\n",
+ "# Results\n",
+ "print \"the adeabatic flame temperature is\",T1,\"K\"\n",
+ "\n",
+ "# note : answer varies because the method - interp gives some different answer. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the adeabatic flame temperature is 1100.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.11 Page No : 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T0 = 298.;\n",
+ "Wrev = -23316-3*(-394374)-4*(-228583);\n",
+ "Wrev_ = Wrev/44.; \t\t\t# in kJ/kg\n",
+ "Hr = -103847.;\n",
+ "T = 980.; \t\t\t# Through trial and error\n",
+ "\n",
+ "# Calculation\n",
+ "Sr = 270.019+20*205.142+75.2*191.611;\n",
+ "Sp = 3*268.194 + 4*231.849 + 15*242.855 + 75.2*227.485;\n",
+ "IE = Sp-Sr; \t\t\t# Increase in entropy\n",
+ "I = T0*3699.67/44;\n",
+ "Si = Wrev_ - I;\n",
+ "\n",
+ "# Results\n",
+ "print \"Reversible work is\",Wrev_,\"kJ/kg\"\n",
+ "print \"Increase in entropy during combustion is\",round(Sp-Sr,2),\"kj/kg mol K\"\n",
+ "print \"Irreversibility of the process\",round(I,0),\"kJ/kg\"\n",
+ "print \"Availability of products of combustion is\",round(Si,1),\"kJ/kg\"\n",
+ "\n",
+ "# note : there are rounding off errors. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reversible work is 47139.5 kJ/kg\n",
+ "Increase in entropy during combustion is 3699.67 kj/kg mol K\n",
+ "Irreversibility of the process 25057.0 kJ/kg\n",
+ "Availability of products of combustion is 22082.6 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.12 Page No : 667"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T0 = 298.15; P0 = 1; R = 8.3143;\n",
+ "xn2 = 0.7567\n",
+ "xo2 = 0.2035\n",
+ "xh2o = 0.0312\n",
+ "xco2 = 0.0003;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "# Part (a)\n",
+ "g_o2 = 0; g_c = 0; g_co2 = -394380; \n",
+ "A = -g_co2 + R*T0*math.log(xo2/xco2);\n",
+ "print \"The chemical energy of carbon is\",round(A,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (b)\n",
+ "g_h2 = 0; g_h2o_g = -228590;\n",
+ "B = g_h2 + g_o2/2 - g_h2o_g + R*T0*math.log(xo2**0.5/xh2o);\n",
+ "print \"The chemical energy of hydrogen is\",round(B,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (c)\n",
+ "g_ch4 = -50790;\n",
+ "C = g_ch4 + 2*g_o2 - g_co2 - 2*g_h2o_g + R*T0*math.log((xo2**2)/(xco2*xh2o));\n",
+ "print \"The chemical energy of methane is\",round(C,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (d)\n",
+ "g_co = -137150;\n",
+ "D = g_co + g_o2/2 - g_co2 + R*T0*math.log((xo2**0.5)/xco2);\n",
+ "print \"The chemical energy of Carbonmonoxide is\",round(D,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (e)\n",
+ "g_ch3oh = -166240;\n",
+ "E = g_ch3oh + 1.5*g_o2 - g_co2 - 2*g_h2o_g + R*T0*math.log((xo2**1.5)/(xco2*(xh2o**2)))\n",
+ "print \"The chemical energy of methanol is\",round(E,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (f)\n",
+ "F = R*T0*math.log(1./xn2);\n",
+ "print \"The chemical energy of nitrogen is\",round(F,1),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (g)\n",
+ "G = R*T0*math.log(1./xo2);\n",
+ "print \"The chemical energy of Oxygen is\",round(G,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (h)\n",
+ "H = R*T0*math.log(1./xco2);\n",
+ "print \"The chemical energy of carbondioxide is\",round(H,0),\"kJ/k mol\"\n",
+ "\n",
+ "# Part (i)\n",
+ "g_h2o_l = -237180;\n",
+ "I = g_h2o_l - g_h2o_g + R*T0*math.log(1./xh2o);\n",
+ "print \"The chemical energy of water is\",round(I,1),\"kJ/k mol\"\n",
+ "\n",
+ "\n",
+ "# note : rounding off error is there. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The chemical energy of carbon is 410542.0 kJ/k mol\n",
+ "The chemical energy of hydrogen is 235212.0 kJ/k mol\n",
+ "The chemical energy of methane is 821580.0 kJ/k mol\n",
+ "The chemical energy of Carbonmonoxide is 275365.0 kJ/k mol\n",
+ "The chemical energy of methanol is 716699.0 kJ/k mol\n",
+ "The chemical energy of nitrogen is 691.1 kJ/k mol\n",
+ "The chemical energy of Oxygen is 3947.0 kJ/k mol\n",
+ "The chemical energy of carbondioxide is 20108.0 kJ/k mol\n",
+ "The chemical energy of water is 5.2 kJ/k mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.13 Page No : 669"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 8./(0.114+0.029); \t\t\t# By carbon balance\n",
+ "C = 18./2 \t\t\t# By hydrogen balance\n",
+ "a = b*0.114 + (b/2)*0.029 + b*0.016 + C/2 ; \t\t\t# By oxygen balance\n",
+ "Wcv = 1. \t\t\t# Power developed by engine in kW \n",
+ "\n",
+ "# Calculation and Results\n",
+ "n_fuel = (0.57*1)/(3600*114.22);\n",
+ "Qcv = Wcv-n_fuel*3845872; \t\t\t# 5.33 \n",
+ "print \"The rate of heat transfer from the engine is\",round(Qcv,2),\"kW\"\n",
+ "# Part (b)\n",
+ "ach = 5407843.; \t\t\t# chemical energy of liquid ocmath.tane\n",
+ "n2 = Wcv/(n_fuel*ach);\n",
+ "print \"The second law efficiency is\",round((n2*100),1),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of heat transfer from the engine is -4.33 kW\n",
+ "The second law efficiency is 13.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch17.ipynb b/Engineering_Thermodynamics/ch17.ipynb
new file mode 100755
index 00000000..92aeb958
--- /dev/null
+++ b/Engineering_Thermodynamics/ch17.ipynb
@@ -0,0 +1,517 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:72e2616045657b51e34a7053265f42c549d2a5b15ca9a3b0a7fb70c4376d5ddc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : Compressible Fluid Flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.1 Page No : 694"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import sys\n",
+ "\n",
+ "# Variables\n",
+ "T0 = 37+273\n",
+ "P = 40.\n",
+ "g = 1.4;\n",
+ "\n",
+ "def speed(a,b,f):\n",
+ " N = 100.;\n",
+ " eps = 1e-5;\n",
+ " if((f(a)*f(b))>0):\n",
+ " print('no root possible f(a)*f(b)>0');\n",
+ " sys.exit(0)\n",
+ " if(abs(f(a))<eps):\n",
+ " print('solution at a');\n",
+ " sys.exit(0)\n",
+ " if(abs(f(b))<eps):\n",
+ " print('solution at b');\n",
+ " sys.exit(0)\n",
+ "\n",
+ " while(N>0):\n",
+ " c = (a+b)/2.\n",
+ " if(abs(f(c))<eps):\n",
+ " x = c ;\n",
+ " return x;\n",
+ " if((f(a)*f(c))<0 ):\n",
+ " b = c ;\n",
+ " else:\n",
+ " a = c ;\n",
+ " N = N-1;\n",
+ "\n",
+ " print('no convergence');\n",
+ " sys.exit(0)\n",
+ "\n",
+ "def p(x): \n",
+ "\t return x**4 + (5*(x**2)) - 3.225 \n",
+ "x = speed(0.5,1,p);\n",
+ "M = x; \t\t\t# Mach number\n",
+ "g = 1.4; \t\t\t# gamma\n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "T = T0/(1+((g-1)/2)*M**2);\n",
+ "c = math.sqrt(g*R*T*1000);\n",
+ "V = c*M;\n",
+ "P0 = P*((T0/T)**(g/(g-1)));\n",
+ "\n",
+ "# Results\n",
+ "print \"Mach number is\",round(M,2)\n",
+ "print \"Velocity is\",round(V,1),\"m/s\"\n",
+ "print \"Stagnation pressure is\",round(P0,2),\"kPa\"\n",
+ "\n",
+ "# note: rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mach number is 0.76\n",
+ "Velocity is 254.1 m/s\n",
+ "Stagnation pressure is 58.67 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.2 Page No : 695"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "P1 = 0.18e03; \t\t\t# in Kpa\n",
+ "R = 0.287\n",
+ "T1 = 310.; \n",
+ "P0 = 0.1e03;\n",
+ "A1 = 0.11; \n",
+ "V1 = 267.;\n",
+ "\n",
+ "# Calculation\n",
+ "w = (P1/(R*T1))*A1*V1;\n",
+ "g = 1.4;\n",
+ "c1 = math.sqrt(g*R*T1*1000);\n",
+ "M1 = V1/c1;\n",
+ "A1A_ = 1.0570; \t\t\t# A1./A* A* = A_\n",
+ "P1P01 = 0.68207;\n",
+ "T1T01 = 0.89644;\n",
+ "F1F_ = 1.0284;\n",
+ "A2A1 = 0.44/0.11 ; \t\t\t# A2A1 = A2/A1\n",
+ "A2A_ = A2A1*A1A_;\n",
+ "M2 = 0.135; \n",
+ "P2P02 = 0.987; \n",
+ "T2T02 = 0.996; \n",
+ "F2F_ = 3.46;\n",
+ "P2P1 = P2P02/P1P01;\n",
+ "T2T1 = T2T02/T1T01;\n",
+ "F2F1 = F2F_/F1F_;\n",
+ "P2 = P2P1*P1;\n",
+ "T2 = T2T1*T1;\n",
+ "A2 = A2A1*A1;\n",
+ "F1 = P1*A1*(1+g*M1**2);\n",
+ "F2 = F2F1*F1;\n",
+ "Tint = F2-F1;\n",
+ "Text = P0*(A2-A1);\n",
+ "NT = Tint - Text ;\n",
+ "\n",
+ "# Results\n",
+ "print \"Net thrust is\",round(NT,2),\"kN\"\n",
+ "\n",
+ "# rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net thrust is 51.33 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.3 Page No : 697"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "M2 = 2.197; \n",
+ "P2P0 = 0.0939; \n",
+ "T2T0 = 0.5089;\n",
+ "P0 = 1000.\n",
+ "T0 = 360.; \n",
+ "g = 1.4; \n",
+ "R = 0.287; \n",
+ "\n",
+ "# Calculation and Results\n",
+ "P2 = P2P0*P0;\n",
+ "T2 = T2T0*T0;\n",
+ "c2 = math.sqrt(g*R*T2*1000);\n",
+ "V2 = c2*M2;\n",
+ "# for air\n",
+ "P_P0 = 0.528; T_T0 = 0.833; \t\t\t# T_ == T*\n",
+ "P_ = P_P0*P0; T_ = T_T0*T0;\n",
+ "rho_ = P_/(R*T_);\n",
+ "V_ = math.sqrt(g*R*T_*1000);\n",
+ "At = 500e-06; \t\t\t# throat area\n",
+ "w = At*V_*rho_;\n",
+ "\n",
+ "print (\"When divergent section act as a nozzle\")\n",
+ "print \"Maximum flow rate of air is\",round(w,3),\"kg/s\"\n",
+ "print \"Static temperature is\",round(T2,1),\"K\"\n",
+ "print \"Static Pressure is\",P2,\"kPa\"\n",
+ "print \"Velocity at the exit from the nozzle is\",round(V2,0),\"m/s\"\n",
+ "\n",
+ "# Part (b)\n",
+ "Mb = 0.308; \n",
+ "P2P0b = 0.936;\n",
+ "T2T0b = 0.9812;\n",
+ "P2b = P2P0b*P0;\n",
+ "T2b = T2T0b*T0;\n",
+ "c2b = math.sqrt(g*R*T2b*1000);\n",
+ "V2b = c2b*Mb; \n",
+ "\n",
+ "print (\"\\nWhen divergent section act as a diffuser\")\n",
+ "print \"Maximum flow rate of air is\",round(w,3),\"kg/s\"\n",
+ "print \"Static temperature is\",round(T2b,1),\"K\"\n",
+ "print \"Static Pressure is\",P2b,\"kPa\"\n",
+ "print \"Velocity at the exit from the nozzle is\",round(V2b,0),\"m/s\"\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When divergent section act as a nozzle\n",
+ "Maximum flow rate of air is 1.065 kg/s\n",
+ "Static temperature is 183.2 K\n",
+ "Static Pressure is 93.9 kPa\n",
+ "Velocity at the exit from the nozzle is 596.0 m/s\n",
+ "\n",
+ "When divergent section act as a diffuser\n",
+ "Maximum flow rate of air is 1.065 kg/s\n",
+ "Static temperature is 353.2 K\n",
+ "Static Pressure is 936.0 kPa\n",
+ "Velocity at the exit from the nozzle is 116.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.4 Page No : 698"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Px = 16. #kPa; \n",
+ "Poy = 70. #kPa;\n",
+ "Mx = 1.735; \n",
+ "Pyx = 3.34; \t\t\t# Pyx = Py/Px\n",
+ "rho_yx = 2.25;\n",
+ "Tyx = 1.483; Poyox = 0.84; My = 0.631;\n",
+ "Tox = 573; Toy = Tox;\n",
+ "\n",
+ "# Calculation\n",
+ "Tx = Tox/(1+((g-1)/2.)*Mx**2);\n",
+ "Ty = Tyx*Tx;\n",
+ "Pox = Poy/Poyox ;\n",
+ "# From table\n",
+ "Mx = 1.735;\n",
+ "\n",
+ "# Results\n",
+ "print \"Mach number of the tunnel is\",Mx\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mach number of the tunnel is 1.735\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.5 Page No : 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Ax = 18.75; \n",
+ "A_ = 12.50; \t\t\t# A_= A*\n",
+ "AA_ = 1.5; \t\t\t# A/A*\n",
+ "Mx = 1.86; \n",
+ "Pxox = 0.159; \n",
+ "R = 0.287;\n",
+ "Pox = 0.21e03; \t\t\t# in kPa\n",
+ "\n",
+ "# Calculation\n",
+ "Px = Pxox*Pox;\n",
+ "# from the gas table on normal shock\n",
+ "Mx = 1.86; My = 0.604; Pyx = 3.87; Poyx = 4.95; Poyox = 0.786;\n",
+ "Py = Pyx*Px;\n",
+ "Poy = Poyx*Px;\n",
+ "My = 0.604;\n",
+ "Ay_ = 1.183;\n",
+ "A2 = 25.; Ay = 18.75;\n",
+ "A2_ = (A2/Ay)*Ay_;\n",
+ "# From isentropic table \n",
+ "M2 = 0.402;\n",
+ "P2oy = 0.895;\n",
+ "P2 = P2oy*Poy;\n",
+ "syx = -R*math.log(Poy/Pox); \t\t\t# sy-sx\n",
+ "\n",
+ "# Results\n",
+ "print \"Exit mach number is M2\",M2\n",
+ "print \"Exit pressure is\",round(P2,2),\"kPa\"\n",
+ "print \"Exit Stagnation pressure is\",round((Pox-Poy),1),\"kPa\"\n",
+ "print \"Entropy increase is\",round(syx,4),\"kJ/kg K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit mach number is M2 0.402\n",
+ "Exit pressure is 147.93 kPa\n",
+ "Exit Stagnation pressure is 44.7 kPa\n",
+ "Entropy increase is 0.0687 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.6 Page No : 700"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "g = 1.4\n",
+ "R = 0.287\n",
+ "d = 1.4; \t\t\t# del \n",
+ "P0 = 1.4; \t\t\t# in bar\n",
+ "T0 = 280.\n",
+ "T1 = T0;\n",
+ "cp = 1.005\n",
+ "A2 = 0.0013\n",
+ "\n",
+ "# Calculation\n",
+ "P_ = P0/((g+1)/2.)**(d/(d-1)) ; \t\t\t# P_ = P*\n",
+ "P1 = P0; Pb = 1.; P2 = Pb;\n",
+ "T2 = T1*(P2/P1)**((d-1)/d);\n",
+ "V2 = math.sqrt(2*cp*(T1-T2)*1000);\n",
+ "m_dot = (A2*V2*P2*100)/(R*T2);\n",
+ "\n",
+ "# Results\n",
+ "print \"Mass flow rate is\",round(m_dot,4),\"kg/s\"\n",
+ "print \"The mass flow rate can be increased by raising the supply pressure\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate is 0.4045 kg/s\n",
+ "The mass flow rate can be increased by raising the supply pressure\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.7 Page No : 701"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Mx = 1.8\n",
+ "Pyx = 3.6133;\n",
+ "Px = 0.5; Tx = 280.; Ty = 429.;\n",
+ "R = 0.287\n",
+ "\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Py = Pyx*Px; cp = 1.005;\n",
+ "print \"Pressure Py is\",round(Py,4),\"bar\"\n",
+ "\n",
+ "Pxox = 0.17404;\n",
+ "Pox = Px/Pxox;\n",
+ "print \"Stagnation pressure is\",round(Pox,2),\"bar\"\n",
+ "\n",
+ "Txox = 0.60680;\n",
+ "Tox = Tx/Txox; \n",
+ "print \"Stagnation temperature is\",round(Tox,1),\"K\"\n",
+ "\n",
+ "sysx = cp*math.log(Ty/Tx)-R*math.log(Py/Px);\n",
+ "print \"The change in specific entropy is\",round(sysx,5),\"kJ/kg K\"\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure Py is 1.8067 bar\n",
+ "Stagnation pressure is 2.87 bar\n",
+ "Stagnation temperature is 461.4 K\n",
+ "The change in specific entropy is 0.06011 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.8 Page no : 701"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# variables\n",
+ "M1 = 0.39\n",
+ "T1ox = 0.97032\n",
+ "Tox = 546.2\n",
+ "P1ox = 0.9\n",
+ "pox = 3.778 # bar\n",
+ "Mx = 2\n",
+ "Pxox = 0.1278\n",
+ "Px = 0.4828 # bar\n",
+ "My = 0.57735\n",
+ "Pyoy = 0.79737\n",
+ "Poy = 2.735 # bar\n",
+ "Toy = 546.2 # K\n",
+ "Tox = Toy\n",
+ "\n",
+ "# calculations and Results\n",
+ "A1 = 0.5*0.287*530/(180*3.4*100) # m**2\n",
+ "print \"A1 = %.4e m**2\"%A1\n",
+ "M1 = 0.39\n",
+ "A1 = 1.6346\n",
+ "Astar = 7.602*10**-4\n",
+ "print \"A* = %.3e m**2\"%(Astar)\n",
+ "M = 0.57735\n",
+ "A2 = 1.25*Astar\n",
+ "print \"A2 = Exit plane area = %.3e m**2\"%A2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A1 = 1.2427e-03 m**2\n",
+ "A* = 7.602e-04 m**2\n",
+ "A2 = Exit plane area = 9.503e-04 m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch18.ipynb b/Engineering_Thermodynamics/ch18.ipynb
new file mode 100755
index 00000000..808ecda7
--- /dev/null
+++ b/Engineering_Thermodynamics/ch18.ipynb
@@ -0,0 +1,554 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9e53418f9e4cdd211f20a8f37b3c55eb0a17f05c8100d8c18f420c262cc67c0c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Gas Compressors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1 Page No : 723"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T2 = 488.\n",
+ "T1 = 298.; n = 1.3; R =8314./44;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "rp = (T2/T1)**(n/(n-1));\n",
+ "print \"Pressure ratio is\",round(rp,2)\n",
+ "\n",
+ "b = 0.12; \t\t\t# Bore of compressor\n",
+ "L = 0.15; \t\t\t# Stroke of compressor\n",
+ "V1 = (math.pi/4)*(b)**2*L ; \n",
+ "P1 = 120e03; \t\t\t# in kPa\n",
+ "W = ((n*P1*V1)/(n-1))*(((rp)**((n-1)/n))-1);\n",
+ "P = (W*1200*0.001)/60 ; \n",
+ "print \"Indicated power is\",round(P,2),\"kW\"\n",
+ "print \"Shaft power is\",round((P/0.8),1),\"kW\"\n",
+ "\n",
+ "V1_dot = V1*(1200./60);\n",
+ "m_dot = (P1*V1_dot)/(R*T1);\n",
+ "print \"Mass flow rate is\",round(m_dot,4),\"kg/s\"\n",
+ "\n",
+ "rp_1 = rp**2;\n",
+ "print \"Pressure ratio when second stage is added is\",round(rp_1,1)\n",
+ "\n",
+ "V2 = (1./rp)**(1./n)*V1;\n",
+ "print \"Volume derived per cycle is V2\",round(V2,5),\"m3\"\n",
+ "\n",
+ "d = math.sqrt((V2*4)/(L*math.pi));\n",
+ "print \"Second stage bore would be\",round((d*1000),0),\"mm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure ratio is 8.48\n",
+ "Indicated power is 11.25 kW\n",
+ "Shaft power is 14.1 kW\n",
+ "Mass flow rate is 0.0723 kg/s\n",
+ "Pressure ratio when second stage is added is 71.9\n",
+ "Volume derived per cycle is V2 0.00033 m3\n",
+ "Second stage bore would be 53.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2 Page No : 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 101.3e03\n",
+ "P4 = P1; \t\t\t# in Pa\n",
+ "P2 = 8*P1\n",
+ "P3 = P2;\n",
+ "T1 = 288.\n",
+ "Vs = 2000.;\n",
+ "V3 = 100.\n",
+ "Vc = V3;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "V1 = Vs + Vc ;\n",
+ "n = 1.25\n",
+ "R = 287.;\n",
+ "V4 = ((P3/P4)**(1./n))*V3;\n",
+ "W = ((n*P1*(V1-V4)*1e-06)/(n-1))*(((P2/P1)**((n-1)/n))-1);\n",
+ "P = (W*800*0.001)/60 ; \n",
+ "print \"Indicated poer is\",round(P,2),\"kW\"\n",
+ "print \"Volumetric efficiency is\",round((100*(V1-V4)/Vs),1),\"%\"\n",
+ "\n",
+ "m = (P1*(V1-V4)*1e-06)/(R*T1);\n",
+ "m_dot = m*800;\n",
+ "print \"Mass flow rate is\",round(m_dot,2),\"kg/min\"\n",
+ "\n",
+ "FAD = (V1-V4)*1e-06*800;\n",
+ "print \"Free air delivery is\",round(FAD,2),\"m3/min\"\n",
+ "\n",
+ "Wt = P1*(V1-V4)*1e-06*math.log(P2/P1);\n",
+ "n_isothermal = (Wt*800*0.001)/(P*60);\n",
+ "print \"Isothermal efficiency is\",round(100*n_isothermal,1),\"%\"\n",
+ "\n",
+ "ip = P/0.85;\n",
+ "print \"Input power is\",round(ip,2),\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated poer is 5.48 kW\n",
+ "Volumetric efficiency is 78.6 %\n",
+ "Mass flow rate is 1.54 kg/min\n",
+ "Free air delivery is 1.26 m3/min\n",
+ "Isothermal efficiency is 80.6 %\n",
+ "Input power is 6.44 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Page No : 725"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 1.; \n",
+ "P3 = 9.;\n",
+ "\n",
+ "# Calculation\n",
+ "P2 = math.sqrt(P1*P3);\n",
+ "T1 = 300.; \n",
+ "cp = 1.005;\n",
+ "R = 0.287; n = 1.3;\n",
+ "W = ((2*n*R*T1)/(n-1))*((P2/P1)**((n-1)/n)-1);\n",
+ "T2 = T1*(P2/P1)**((n-1)/n);\n",
+ "H = cp*(T2-T1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Heat rejected to the intercooler is\",round(H,2),\"kJ/kg\"\n",
+ "\n",
+ "# rounding off error is there."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat rejected to the intercooler is 87.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.4 Page No : 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 1.013\n",
+ "P4 = 80.;\n",
+ "P2 = math.sqrt(P1*P4);\n",
+ "V_dot = 4./60; \t\t\t# in m3/s\n",
+ "n = 1.25;\n",
+ "n_mech = 0.75;\n",
+ "\n",
+ "# Calculation\n",
+ "W_dot = ((2*n)/(n-1))*((P1*100*V_dot)/n_mech)*((P2/P1)**((n-1)/n)-1);\n",
+ "N = 250.;\n",
+ "L = (3*60.)/(2*N); \t\t\t# Stroke length of piston in m\n",
+ "Vlp = 4/N;\n",
+ "n_vol = 0.8;\n",
+ "Dlp = math.sqrt((Vlp*4)/(n_vol*L*math.pi));\n",
+ "Dhp = Dlp*math.sqrt(P1/P2);\n",
+ "\n",
+ "# Results\n",
+ "print \"Minimum power required is\",round(W_dot,2),\"kW\"\n",
+ "print \"Stroke of the compressor is\",L*100,\"cm\"\n",
+ "print \"Bore of high pressure compressure is\",round((Dhp*100),2),\"cm\"\n",
+ "print \"Bore of lo pressure compressure is\",round((Dlp*100),1),\"cm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum power required is 49.34 kW\n",
+ "Stroke of the compressor is 36.0 cm\n",
+ "Bore of high pressure compressure is 8.92 cm\n",
+ "Bore of lo pressure compressure is 26.6 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.5 Page No : 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V12 = 0.4; \t\t\t# V12 = V1./V2\n",
+ "T1 = 38.+273; \n",
+ "n = 1.3; \n",
+ "P3 = 112.; \t\t\t# back pressure\n",
+ "m = 1.25; R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "T2 = ((V12)**(n-1))*T1;\n",
+ "P1 = 700.; \t\t\t# in kPa\n",
+ "P2 = P1*(V12)**n;\n",
+ "V2 = (m*R*T2)/P2;\n",
+ "v2 = V2/m ;\n",
+ "A = R*T1 + R*(T1-T2)/(n-1) - P3*v2; \t\t\t# Area of indicator diagram\n",
+ "IO = A*0.85*m;\n",
+ "\n",
+ "# Results\n",
+ "print \"Indicated output is\",round(IO,2),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated output is 132.88 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.6 Page No : 728"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 1.\n",
+ "P41 = 15.; \t\t\t# P41 = P4/P1\n",
+ "P21 = (P41)**(1./3);\n",
+ "P2 = P21*P1;\n",
+ "n = 1.3; \n",
+ "R = 0.287;\n",
+ "P3 = P21*P2;\n",
+ "P11 = P2; P12 = P1;\n",
+ "b = 0.45\n",
+ "s = 0.3; \t\t\t# Bore and stroke of cylinder\n",
+ "Vs = (math.pi/4)*b**2*s; \t\t\t# Swept volume of the cylinder\n",
+ "\n",
+ "# Calculation and Results\n",
+ "V11 = 0.05*Vs; \t\t\t# Clearance volume\n",
+ "V1 = V11+Vs;\n",
+ "V12 = V11*(P11/P12)**(1./n);\n",
+ "print \"Effective swept volume of the LP cylinder is\",round((V1-V12),5),\"m3\"\n",
+ "\n",
+ "T1 = 291.\n",
+ "T3 = T1; \n",
+ "T5 = T1;\n",
+ "P43 = P21; \t\t\t# P4/P3\n",
+ "T6 = T5*(P43)**((n-1)/n);\n",
+ "print \"Delivery temperature is\",round(T6,1),\"K\"\n",
+ "\n",
+ "P4 = 15; \t\t\t# Delivery pressure\n",
+ "V6_7 = (P1/P4)*(T6/T1)*(V1-V12); \t\t\t# V6-V7\n",
+ "print \"Volume of the air delivered\",round(V6_7,5),\"m3\"\n",
+ "\n",
+ "W = ((3*n*R*T1)/(n-1))*((P21)**((n-1)/n)-1);\n",
+ "print \"Work done per kg of the air is\",round(W,1),\"kJ\"\n",
+ "\n",
+ "# rounding off error is there. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Effective swept volume of the LP cylinder is 0.04532 m3\n",
+ "Delivery temperature is 358.4 K\n",
+ "Volume of the air delivered 0.00372 m3\n",
+ "Work done per kg of the air is 251.4 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.7 Page No : 729"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P1 = 1.013;\n",
+ "P2 = 1.5*P1;\n",
+ "Vs = 0.03\n",
+ "Va = Vs;\n",
+ "WD = (P2-P1)*Vs*100.;\n",
+ "Pi = (P1+P2)/2;\n",
+ "g = 1.4;\n",
+ "\n",
+ "# Calculation\n",
+ "Aa = ((g*P1*100*Vs)/(g-1))*((Pi/P1)**((g-1)/g)-1);\n",
+ "Vb = Va *(P1/Pi)**(1./g);\n",
+ "Ab = Vb*(P2-Pi)*100;\n",
+ "WR = Aa+Ab;\n",
+ "\n",
+ "# Results\n",
+ "print \"Work required is\",round(WR,2),\"kJ/rev\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work required is 1.35 kJ/rev\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.8 Page No : 730"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# For Blower\n",
+ "import math \n",
+ "m_dot = 1.; \n",
+ "R = 0.287; \n",
+ "T1 = 343.;\n",
+ "P1 = 100.; \n",
+ "P2 = 2*P1; \n",
+ "g = 1.4;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "V_dot = (m_dot*R*T1)/P1;\n",
+ "PRb = V_dot*(P2-P1);\n",
+ "print \"Power required by the blower is\",round(PRb,1),\"kW\"\n",
+ "\n",
+ "# For van compressor\n",
+ "P1v = 1.\n",
+ "V21 = 0.7 \t\t\t# V2/V1\n",
+ "P2v = P1v*(1./V12)**g;\n",
+ "V2_dot = 0.7;\n",
+ "V1_dot = 0.7*V_dot;\n",
+ "P3v = 2.;\n",
+ "PRv = (g/0.4)*P1*0.995*( (1.65/1)**(0.4/g) - 1) + 0.696*(2 - 1.65)*P1\n",
+ "print \"Power Required by van compressor is\",round(PRv),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power required by the blower is 98.4 kW\n",
+ "Power Required by van compressor is 78.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.9 Page No : 731"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 283.\n",
+ "P21 = 2.5; \t\t\t# P2/P1\n",
+ "P32 = 2.1; \t\t\t# P3/P2\n",
+ "ns = 0.85\n",
+ "ma = 5.; \n",
+ "cp = 1.005;\n",
+ "\n",
+ "# Calculation\n",
+ "T2s = round(T1*(P21)**((g-1)/g),1);\n",
+ "T2 = round(T1 + (T2s-T1)/ns,2);\n",
+ "T3 = T2-50;\n",
+ "T4s = round(T3*(P32)**((g-1)/g),2);\n",
+ "T4 = T3 + (T4s-T3)/ns;\n",
+ "P = ma*cp*((T2-T1)+(T4-T3));\n",
+ "\n",
+ "# Results\n",
+ "print \"Total compressor power is\",round(P,1),\"kW\"\n",
+ "\n",
+ "# note : T4 is calculted wrongly in book. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total compressor power is 965.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.10 Page No : 732"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 278.\n",
+ "P21 = 2.5; \t\t\t# P2/P1\n",
+ "cp = 1.005\n",
+ "ns = 0.84; V2 = 120.;\n",
+ "\n",
+ "# Calculation\n",
+ "T2s = T1*(P21)**((g-1)/g);\n",
+ "T2 = T1 + (T2s-T1)/ns;\n",
+ "mg = 0.04*(13+1);\n",
+ "P = mg*cp*(T2-T1);\n",
+ "T02 = T2 + V2**2/(2*cp*1000);\n",
+ "P1 = 0.6;\n",
+ "P2 = P21*0.6;\n",
+ "P02 = P2*(T02/T2)**(g/(g-1));\n",
+ "\n",
+ "# Results\n",
+ "print \"Power required to drive the compressor is\",round(P,1),\"kW\"\n",
+ "print \"Stagnation temperature is\",round(T02,2),\"K\"\n",
+ "print \"Stagnation pressure is\",round(P02,3),\"bar\"\n",
+ "\n",
+ "# note : rounding off error is there. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power required to drive the compressor is 55.7 kW\n",
+ "Stagnation temperature is 384.21 K\n",
+ "Stagnation pressure is 1.602 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch2.ipynb b/Engineering_Thermodynamics/ch2.ipynb
new file mode 100755
index 00000000..d11b05b0
--- /dev/null
+++ b/Engineering_Thermodynamics/ch2.ipynb
@@ -0,0 +1,136 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b3d39c917cf6a960ba7edac2c3153505a96c95d76c51386c4b445bdbf3a8a712"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Temperature"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page No : 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 1\n",
+ "l = 1; \t\t\t# Assuming\n",
+ "\n",
+ "# Calculation\n",
+ "A_ACDB = (math.pi/4)*(1./3)*((1.05*d)**2)*10.5*l - (math.pi/4)*(1./3)*d**2*10*l ; \t\t\t# Area of ABCD\n",
+ "A_AEFB = (math.pi/4)*(1./3)*((1.1*d)**2)*11*l - (math.pi/4)*(1./3)*d**2*10*l;\n",
+ "t = 100*(A_ACDB/A_AEFB);\n",
+ "\n",
+ "# Results\n",
+ "print \"The straight bore thermometer reading would e %.1f degree Celcius\"%t\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The straight bore thermometer reading would e 47.6 degree Celcius\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 Page No : 37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from hornerc import horner\n",
+ "\n",
+ "# Calculation\n",
+ "#e0 = horner(e, 0.); \t\t\t# e.m.f. at t = 0 degree\n",
+ "e100 = horner([0,0.2,-5e-04], 100.); \t\t\t# e.m.f. at t = 100 degree\n",
+ "e50 = horner([0,0.2,-5e-04],50); \t\t\t# e.m.f. at t = 50 degreer\n",
+ "r = (100./e100)*e50; \t\t\t# Reading of thermocouple at t = 50degree\n",
+ "\n",
+ "# Results\n",
+ "print \"Reading of thermocouple at t = 50 degree is %.2f degree Celcius \"%r\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reading of thermocouple at t = 50 degree is 58.33 degree Celcius \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No : 37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R0 = 2.8; \t\t\t# Resistence at t=0 degree in ohm\n",
+ "R100 = 3.8; \t\t\t# Resistence at t = 100 degree in ohm\n",
+ "\n",
+ "# Calculation\n",
+ "a = (R100/R0 - 1)*0.01; \t\t\t# alpha\n",
+ "R = 5.8; \t\t\t# Indicated ressistace in ohm\n",
+ "t = (R/R0 - 1)/a; \t\t\t# Temperature in degree\n",
+ "\n",
+ "# Results\n",
+ "print \"The temperature when indicated resismath.tance is 5.8 ohm is \",t,\"degree\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature when indicated resismath.tance is 5.8 ohm is 300.0 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch3.ipynb b/Engineering_Thermodynamics/ch3.ipynb
new file mode 100755
index 00000000..bf6e25d5
--- /dev/null
+++ b/Engineering_Thermodynamics/ch3.ipynb
@@ -0,0 +1,498 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:55c55de869585c95b66b35484f9ada77cb90e10b18096bd3c44fa78bdf53f425"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Work and Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V1 = 100.; \t\t\t# Initial velocity in m/s\n",
+ "g = 9.81; \t\t\t# Acceleration due to gravity in m/s2\n",
+ "z1 = 100.; \t\t\t# Initial elevation in m\n",
+ "\n",
+ "# Calculation\n",
+ "V = math.sqrt(((2*g*z1)+(V1)**2)); \t\t\t# Final velocity in m/s2\n",
+ "\n",
+ "# Results\n",
+ "print \"The velocity of the object just before ir hits the ground is %.1f m/s\"%V\n",
+ "\n",
+ "# note : incorrect answer in the textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The velocity of the object just before ir hits the ground is 109.4 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "dV = 0.5; \t\t\t# Change in volume in m3\n",
+ "P = 101.325e03; \t\t\t# Atmospheric pressure in N/m2\n",
+ "\n",
+ "# Calculation\n",
+ "Wd = P*dV; \t\t\t# Work done in J\n",
+ "\n",
+ "# Results\n",
+ "print \"The amount of work done upon the atmosphere by the ballon is %.2f kJ\"%(Wd/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of work done upon the atmosphere by the ballon is 50.66 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "dV = 0.6; \t\t\t# Change in volume in m3\n",
+ "P = 101.325e03; \t# Atmospheric pressure in N/m2\n",
+ "\n",
+ "# Calculation\n",
+ "Wd = P*dV; \t\t\t# Work done in J\n",
+ "\n",
+ "# Results\n",
+ "print \"The print lacement work done by the air is %.1f KJ\"%(Wd/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The print lacement work done by the air is 60.8 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No : 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T = 1.275e-03; \t\t\t# Torque acting against the fluid in N\n",
+ "N = 10000.; \t\t\t# Number of revolutions\n",
+ "W1 = 2*math.pi*T*N; \t\t\t# Work done by stirring device upon the system\n",
+ "P = 101.325e03; \t\t\t# Atmospheric pressure in N/m2\n",
+ "d = 0.6; \t\t\t# Piston diameter in m\n",
+ "\n",
+ "# Calculation\n",
+ "A = (math.pi/4.)*(d)**2; \t\t\t# Piston area in m\n",
+ "L = 0.80; \t\t\t # Displacement of diameter in m\n",
+ "W2 = (P*A*L)/1000.; \t\t\t# Work done by the system on the surroundings i KJ\n",
+ "W = -W1+W2; \t\t\t# Net work tranfer for the system\n",
+ "\n",
+ "# Results\n",
+ "print \"The Net work tranfer for the system is %.1f KJ\"%W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Net work tranfer for the system is -57.2 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No : 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "ad = 5.5e-04; \t\t\t# Area of indicator diagram\n",
+ "ld = 0.06; \t\t\t# Length of diagram\n",
+ "k = 147e06; \t\t\t# Spring consmath.tant in MPa/m\n",
+ "w = 150.; \t\t\t# Speed of engine\n",
+ "L = 1.2 ; \t\t\t# Stroke of piston\n",
+ "d = 0.8; \t\t\t# Diameter of the cylinder in m\n",
+ "\n",
+ "# Calculation\n",
+ "A = (math.pi/4)*(0.8**2); \t\t\t# Area of cylinder\n",
+ "Pm = (ad/ld)*k; \t\t\t# Effective pressure\n",
+ "W1 = Pm*L*A*w; \t\t\t# Work done in 1 minute\n",
+ "W = (12*W1)/60; \t\t\t# The rate of work transfer gas to the piston in MJ/s\n",
+ "\n",
+ "# Results\n",
+ "print \"The rate of work transfer gas to the piston is %.0f kw\"%(round(W/1000,-2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of work transfer gas to the piston is 24400 kw\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No : 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Tm = 1535.; \t\t\t# Melting point of iron on degree\n",
+ "Ti = 15.; \t\t\t# Initial temperature\n",
+ "Tf = 1650.; \t\t\t# Final temperature\n",
+ "Lh = 270.e03; \t\t\t# Latent heat of iron in J/Kg\n",
+ "ml = 29.93; \t\t\t# Atomic weight of iron in liquid state\n",
+ "m = 56.; \t\t\t# Atomoc weight of iron\n",
+ "sh = 0.502e03; \t\t\t# Specific heat of iron in J/Kg\n",
+ "d = 6900.; \t\t\t# Density of molten metal in kg/m3\n",
+ "\n",
+ "# Calculation and Results\n",
+ "H = (Tm-Ti)*sh + Lh + (ml/m)*(Tf-Tm)*1000; \t\t\t# Heat required\n",
+ "Mr = 5e03; \t \t\t# Melting rate in Kg/h\n",
+ "Hr = H*Mr ; \t \t \t# Rate of heat suppy\n",
+ "HrA = Hr/(0.7*3600) \t\t\t# Actual rate of heat supply\n",
+ "print \"Rating of furnace would be %.2e\"%HrA,\"W\"\n",
+ "\n",
+ "V = (3*Mr)/d; \t\t\t# Volume required in m3\n",
+ "d = ((V/2.)*(4/math.pi))**(1./3); \t\t\t# Diameter of cylinder of furnace in m\n",
+ "l = 2*d; \t\t\t # Length of cylinder of furnace in m\n",
+ "print \" Length of cylinder of furnace is %.2f m\"%l\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rating of furnace would be 2.17e+06 W\n",
+ " Length of cylinder of furnace is 2.23 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "SH = 0.9; \t\t\t# Specific heat of alluminium in solid state \n",
+ "L = 390.; \t \t\t# Latent heat\n",
+ "aw = 27.; \t\t \t# Atomic weight\n",
+ "D = 2400.; \t\t\t # Density in molten state\n",
+ "Tf = 700.+273; \t\t\t# Final temperature\n",
+ "Tm = 660.+273; \t\t\t# Melting point of aluminium\n",
+ "Ti = 15.+273; \t\t\t# Intial temperature\n",
+ "\n",
+ "# Calculation\n",
+ "HR = round(SH*(Tm-Ti)+L+(29.93/27)*(Tf-Tm),1); \t\t\t# Heat requires\n",
+ "HS = round(HR/0.7,1) ; \t\t\t# Heat supplied\n",
+ "RM = 217*1000*3600/HS ; \t\t\t# From the data of problem 3.7\n",
+ "V = 2.18; \t\t\t# Volume\n",
+ "M = V*D;\n",
+ "\n",
+ "# Results\n",
+ "print \"Mass of alluminium that can be melted is %.2f\"%(M/1000),\"tonnes\"\n",
+ "print \"Rate at which alluminium can be melted is %.2f\"%(RM/100000),\"tonnes/h\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of alluminium that can be melted is 5.23 tonnes\n",
+ "Rate at which alluminium can be melted is 5.39 tonnes/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page No : 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "dd = 60e-06;\n",
+ "mw = 1.;\n",
+ "st = 0.07;\n",
+ "dw = 1000.;\n",
+ "dp = 15e-03;\n",
+ "\n",
+ "# Calculation\n",
+ "N = (mw*6)/(math.pi*dd**3*dw);\n",
+ "Af = math.pi*dd**2*N;\n",
+ "S_L = 4/(dp*dw);\n",
+ "W = st*(100-S_L);\n",
+ "\n",
+ "# Results\n",
+ "print \"Work done during automization is %.2f J\"%W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done during automization is 6.98 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No : 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "dc = 40e-02;\n",
+ "L = 30e-02;\n",
+ "P = 1e05; \t\t\t# Pressure in Pascal\n",
+ "I = 0.5;\n",
+ "V = 24.;\n",
+ "t = 15.*60; \t\t\t# in seconds\n",
+ "\n",
+ "# Calculation\n",
+ "Wm = V*I*t;\n",
+ "Ws = 0.9*Wm;\n",
+ "W = P*(math.pi/4)*dc**2*L;\n",
+ "\n",
+ "# Results\n",
+ "print \"Work input to the motor is %.1f kJ\"%(Wm/1000)\n",
+ "print \"Work input to the stirrer is %.2f kJ\"%(Ws/1000)\n",
+ "print \"Work done by the fluid on the atmosphere is %.2f kJ\"%(W/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work input to the motor is 10.8 kJ\n",
+ "Work input to the stirrer is 9.72 kJ\n",
+ "Work done by the fluid on the atmosphere is 3.77 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 100.\n",
+ "P2 = 37.9\n",
+ "P3 = 14.4;\n",
+ "V1 = 0.1\n",
+ "V2 = 0.2\n",
+ "V3 = 0.4;\n",
+ "\n",
+ "# Calculation\n",
+ "n1 = (math.log(P1/P2))/(math.log(V2/V1));\n",
+ "n2 = (math.log(P2/P3))/(math.log(V3/V2));\n",
+ "# n1 = n2\n",
+ "W = ((P1*V1)-(P3*V3))/(n1-1);\n",
+ "\n",
+ "# Results\n",
+ "print \"Work done by the system is %.1f kJ\"%W\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done by the system is 10.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 Page No : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P1 = 20*1.01325e05;\n",
+ "V1 = 0.04\n",
+ "V2 = 2*V1;\n",
+ "n = 1.45;\n",
+ "\n",
+ "# Calculation\n",
+ "P2 = round((V1/V2)**n*P1,-2)\n",
+ "W12 = ((P1*V1)-(P2*V2))/(n-1);\n",
+ "W23 = P2*(V2-V1);\n",
+ "Wc = W12-W23;\n",
+ "\n",
+ "# Results\n",
+ "print \"Work done in the cycle is %.2f kJ\"%(Wc/1000)\n",
+ "\n",
+ "# rounding off error. please check using calculator."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done in the cycle is 18.61 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch4.ipynb b/Engineering_Thermodynamics/ch4.ipynb
new file mode 100755
index 00000000..d353eb40
--- /dev/null
+++ b/Engineering_Thermodynamics/ch4.ipynb
@@ -0,0 +1,353 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eafe81375ae6bd6abb8d4dff5b78c1d88df56b904362e7f55dc57c603062c8b9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : First Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 Page No : 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V1 = 0.3; \t\t\t# Initial volume in m3\n",
+ "V2 = 0.15; \t\t\t# Final volume in m3\n",
+ "P = 0.105e06; \t\t\t# Pressure in Pa\n",
+ "Q = -37.6e03; \t\t\t# Heat tranferred in J\n",
+ "\n",
+ "# Calculation\n",
+ "W = P*(V2-V1); \t\t\t# Work done\n",
+ "U = Q-W; \t\t\t# Internal energy change\n",
+ "\n",
+ "# Results\n",
+ "print \"Change in the internal energy of the system is %.2f kJ\"%(U/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in the internal energy of the system is -21.85 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page No : 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Qacb = 84e03;\n",
+ "Wacb = 32e03;\n",
+ "Uba = Qacb-Wacb; \t\t\t# Ub-Ua\n",
+ "\n",
+ "# Calculation and Results\n",
+ "# Part (a)\n",
+ "Wadb = 10.5e03; \n",
+ "Qadb = Uba+Wadb; \n",
+ "print \"The heat flow into the system along the path adb\",(Qadb/1000),\"kJ\"\n",
+ "\n",
+ "# Part (b)\n",
+ "Wb_a = -21e03;\n",
+ "Uab = - Uba;\n",
+ "Qb_a = Uab+Wb_a;\n",
+ "print \"The heat liberated along the path b-a is\",round(Qb_a/1000),\"kJ\"\n",
+ "\n",
+ "# Part (c)\n",
+ "Wdb = 0.; \t\t\t# Constant volume\n",
+ "Wad = 10.4e03; \n",
+ "Wadb = Wdb-Wad; \n",
+ "Ud = 42e03;\n",
+ "Ua = 0.;\n",
+ "Qad = Ud-Ua+Wad;\n",
+ "Qdb = Qadb-Qad; \n",
+ "print \"The heat absorbed in the path ad and db are\",round(Qdb/1000),\"kJ\",\"and\",round(Qad/1000),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat flow into the system along the path adb 62.5 kJ\n",
+ "The heat liberated along the path b-a is -73.0 kJ\n",
+ "The heat absorbed in the path ad and db are 10.0 kJ and 52.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# Process a-b\n",
+ "Qab = 0;\n",
+ "Wab = 2170; \t\t\t# in KJ/min\n",
+ "Eab = Qab-Wab; \n",
+ "\n",
+ "# Process b-c\n",
+ "Qbc = 21000;\n",
+ "Wbc = 0; \n",
+ "Ebc = Qbc-Wbc;\n",
+ "\n",
+ "# Process c-d\n",
+ "Qcd = -2100;\n",
+ "Ecd = -36600; \n",
+ "Wcd = Qcd-Ecd;\n",
+ "\n",
+ "# Calculation\n",
+ "# Process d-a\n",
+ "Q = -17000; \t\t\t# Total heat transfer\n",
+ "Qda = Q-Qab-Qbc-Qcd; \n",
+ "Eda = -Eab-Ebc-Ecd;\n",
+ "Wda = Qda-Eda;\n",
+ "M = [[Qab, Wab, Eab],[Qbc, Wbc ,Ebc],[Qcd, Wcd, Ecd],[Qda, Wda, Eda]];\n",
+ "process = [\"a-b\",\"b-c\",\"c-d\",\"d-a\"]\n",
+ "# Results\n",
+ "print \"The completed table is\"\n",
+ "print \" process Q W deltaE\"\n",
+ "for i in range(4):\n",
+ " print \"%10s\"%process[i],\n",
+ " for j in range(3):\n",
+ " print \"%10d\"%M[i][j],\n",
+ "\n",
+ " print \"\"\n",
+ "print \"\\nRate of work output : %.f kJ/min\"%(sum([M[0][0],M[1][0],M[2][0],M[3][0]]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The completed table is\n",
+ " process Q W deltaE\n",
+ " a-b 0 2170 -2170 \n",
+ " b-c 21000 0 21000 \n",
+ " c-d -2100 34500 -36600 \n",
+ " d-a -35900 -53670 17770 \n",
+ "\n",
+ "Rate of work output : -17000 kJ/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Part (a)\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m = 3.;\n",
+ "V1 = 0.22; #volume m^3\n",
+ "P1 = 500.e03; #initial pressure Pa\n",
+ "P2 = 100.e03; #final pressure Pa\n",
+ "\n",
+ "# Calculation\n",
+ "V2 = V1*(P1/P2)**(1./1.2);\n",
+ "dU = 3.56*(P2*V2-P1*V1);\n",
+ "gama = 1.2;\n",
+ "W = (P2*V2-P1*V1)/(1-gama);\n",
+ "Q = dU+W;\n",
+ "\n",
+ "# Results\n",
+ "print \"Q,W and dU of the quasi static process are\",int(dU/1000),round(W/1000),round(Q/1000),\"kJ respectively\"\n",
+ "\n",
+ "# Part (b)\n",
+ "Qb = 30e03;\n",
+ "Wb = Qb-dU; \n",
+ "print \"Work transfer for the process is\",round(Wb/1000),\"kJ\"\n",
+ "\n",
+ "# Part (c)\n",
+ "print \"Wb is not equal to integral(p*dv) .since the process is not quasi static\"\n",
+ "\n",
+ "# rounding off error. please check"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q,W and dU of the quasi static process are -92 129.0 37.0 kJ respectively\n",
+ "Work transfer for the process is 122.0 kJ\n",
+ "Wb is not equal to integral(p*dv) .since the process is not quasi static\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy.linalg import inv\n",
+ "from numpy import *\n",
+ "from scipy.integrate import *\n",
+ "\n",
+ "# Variables\n",
+ "V1 = 0.03; #initial volume m^3\n",
+ "P1 = 170e03; #initial pressure Pa\n",
+ "P2 = 400e03; #final pressure Pa\n",
+ "V2 = 0.06; #final volume m^3\n",
+ "U = 3.15*(P2*V2-P1*V1);\n",
+ "B = array([P1, P2]);\n",
+ "B= B.transpose()\n",
+ "\n",
+ "A = [[1, V1],[1, V2]];\n",
+ "A = array(A)\n",
+ "x = inv(A)*B;\n",
+ "\n",
+ "a = -60000\n",
+ "b = 7666666.7;\n",
+ "\n",
+ "# Calculation\n",
+ "def pressure(V):\n",
+ " return a+b*V;\n",
+ "\n",
+ "W = quad(pressure,V1,V2)[0]\n",
+ "Q = U+W;\n",
+ "\n",
+ "# Results\n",
+ "print \"The work done by the system is\",round(W/1000,2),\"kJ\"\n",
+ "print \"The internal energy change of the system is\",round(U/1000,1),\"J\"\n",
+ "print \"The heat flow into the system is\",round(Q/1000,2),\"kJ\"\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The work done by the system is 8.55 kJ\n",
+ "The internal energy change of the system is 59.5 J\n",
+ "The heat flow into the system is 68.09 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No : 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Process 1-2\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q12 = 235; \t\t\t# in KJ/Kg\n",
+ "W12 = 0 ;\n",
+ "\n",
+ "# Calculation\n",
+ "U12 = Q12-W12;\n",
+ "# Process 2-3\n",
+ "Q23 = 0; \n",
+ "U23 = -70 ;\n",
+ "W23 = Q23-U23;\n",
+ "\n",
+ "# Process 3-1\n",
+ "Q31 = - 200; \n",
+ "U31 = -U12-U23;\n",
+ "W31 = Q31-U31;\n",
+ "W = W12 + W23 + W31;\n",
+ "Q = Q12 + Q23 + Q31;\n",
+ "\n",
+ "# Results\n",
+ "print \"Heat trasfer in the cycle is\",Q,\"KJ/Kg\"\n",
+ "print \"Work done during the the cycle is\",W,\"KJ/Kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat trasfer in the cycle is 35 KJ/Kg\n",
+ "Work done during the the cycle is 35 KJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch5.ipynb b/Engineering_Thermodynamics/ch5.ipynb
new file mode 100755
index 00000000..2711babd
--- /dev/null
+++ b/Engineering_Thermodynamics/ch5.ipynb
@@ -0,0 +1,423 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:98381098beaf5d6805e531ad8738dca152c4ca499326121575e7f6afde31d8cf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : First Law Applied to Flow Processes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page No : 101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V1 = 0.95;\n",
+ "P1 = 100e03; #initial pressure Pa\n",
+ "v1 = 7.; #initial velocity m/s\n",
+ "V2 = 0.19; #final velocity m/s\n",
+ "P2 = 700e03; #final pressure Pa\n",
+ "v2 = 5.;\n",
+ "w = 0.5;\n",
+ "u21 = 90e03; \t\t\t# u21 = u2-u1\n",
+ "Q = -58e03; \t\t\t# As heat is added Q = dQ/dt\n",
+ "\n",
+ "# Calculation and Results\n",
+ "W = - w*( u21 + (P2*V2-P1*V1) + ((v2**2-v1**2)/2) ) + Q; \t\t\t# W = dW/dt \n",
+ "print \"The rate of work input is\",round(W/1000),\"kW\"\n",
+ "\n",
+ "# Part (b)\n",
+ "A = (v2/v1)*(V1/V2); \t\t\t# A = A1./A2\n",
+ "d = math.sqrt(A); \t\t\t# d = d1./d2\n",
+ "print \"The ratio of the inlet pipe diameter and outer pipe diameter is %.2f\"%d\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of work input is -122.0 kW\n",
+ "The ratio of the inlet pipe diameter and outer pipe diameter is 1.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No : 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V1 = 0.37; #specific volume m^3/kg\n",
+ "P1 = 600.e03;\n",
+ "v1 = 16.;\n",
+ "V2 = 0.62; \n",
+ "P2 = 100.e03;\n",
+ "v2 = 270.;\n",
+ "Z1 = 32.;\n",
+ "Z2 = 0;\n",
+ "g = 9.81; \n",
+ "Q = -9.e03; \t\t\t# heat loss Q = dQ/dt\n",
+ "W = 135.e03; \t\t\t# Work done W = dW/dt\n",
+ "\n",
+ "# Calculation\n",
+ "U12 = (P2*V2-P1*V1) + ((v2**2-v1**2)/2.) + (Z2-Z1)*g + W - Q; \t\t\t# U12 = U1-U2\n",
+ "\n",
+ "# Results\n",
+ "print \"The internal energy decreases by\",round(U12/1000,3),\"Joule\"\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The internal energy decreases by 20.008 Joule\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No : 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 4e06;\n",
+ "t1 = 400.;\n",
+ "h1 = 3213e03;\n",
+ "V1 = 0.073;\n",
+ "P2 = 3.5e06;\n",
+ "t2 = 392.;\n",
+ "h2 = 3202e03;\n",
+ "V2 = 0.084;\n",
+ "Q = -8.5e03;\n",
+ "\n",
+ "# Calculation\n",
+ "v1 = math.sqrt((2*(h1-h2+Q))/(1.15**2-1));\n",
+ "A1 = (math.pi/4)*0.2**2;\n",
+ "w = (A1*v1)/V1;\n",
+ "\n",
+ "# Results\n",
+ "print \"The stean flow rate is %.1f Kg/s\"%w\n",
+ "\n",
+ "# rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stean flow rate is 53.6 Kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page No : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import sys\n",
+ "from numpy import *\n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variables\n",
+ "h1 = 313.93;\n",
+ "h2 = 2676.;\n",
+ "h3 = 419.;\n",
+ "w1 = 4.2;\n",
+ "\n",
+ "# Calculation\n",
+ "w = Symbol('w') \t\t\t# w = w2\n",
+ "P = w1*h1 + w*h2 - h3*(4.2+w)\n",
+ "def stress(a,b,f):\n",
+ " N = 100;\n",
+ " eps = 1e-5;\n",
+ " if((f(a)*f(b))>0):\n",
+ " print ('no root possible f(a)*f(b)>0');\n",
+ " sys.exit(0)\n",
+ " if(abs(f(a))<eps):\n",
+ " print ('solution at a');\n",
+ " sys.exit(0)\n",
+ " if(abs(f(b))<eps):\n",
+ " print ('solution at b');\n",
+ " sys.exit(0)\n",
+ "\n",
+ " while(N>0):\n",
+ " c = (a+b)/2.\n",
+ " if(abs(f(c))<eps):\n",
+ " x = c ;\n",
+ " return x;\n",
+ " if((f(a)*f(c))<0 ):\n",
+ " b = c ;\n",
+ " else:\n",
+ " a = c ;\n",
+ " N = N-1;\n",
+ " print ('no convergence');\n",
+ " sys.exit(0)\n",
+ "\n",
+ "def p(w): \n",
+ "\t return - 441.294 + 2257*w \n",
+ "\n",
+ "w = stress(0.1,0.2,p);\n",
+ "\n",
+ "# Results\n",
+ "print \"The amount of heat that should be supplied is %.0fKg/h\"%(w*3600)\n",
+ "\n",
+ "# rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of heat that should be supplied is 704Kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "t1 = 15.\n",
+ "t2 = 800. \n",
+ "t3 = 650.\n",
+ "t4 = 500.;\n",
+ "v1 = 30.; \n",
+ "v2 = 30. \n",
+ "v3 = 60.; \n",
+ "w = 2.;\n",
+ "cp = 1005.;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Q1_2 = w*cp*(t2-t1);\n",
+ "print \"The rate of heat transfer to the air in the heat exchanger is %.0f KJ/s\"%(round(Q1_2/1000,-1)),\"KJ/s\"\n",
+ "W_T = w*( ((v2**2-v3**2)/2) + cp*(t2-t3));\n",
+ "print \"The power output from the turbine assuming no heat loss\",W_T/1000,\"KW\"\n",
+ "v4 = math.sqrt( (v3**2) + (2*cp*(t3-t4)) );\n",
+ "print \"The velocity at the exit of the nozzle is %.0f m/s\"%v4\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of heat transfer to the air in the heat exchanger is 1580 KJ/s KJ/s\n",
+ "The power output from the turbine assuming no heat loss 298.8 KW\n",
+ "The velocity at the exit of the nozzle is 552 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No : 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variables\n",
+ "w = 5.\n",
+ "h1 = 900\n",
+ "h2 = 400\n",
+ "v1 = 50. \n",
+ "v2 = 150.\n",
+ "Q = -25*5. \t\t\t# Q = dQ/dt for w = 5kg\n",
+ "\n",
+ "# Calculation and Results\n",
+ "W = (w*( (h1-h2) + ((v1**2-v2**2)/2)*10**-3 )) + Q; \t\t\t# W = dW/dt\n",
+ "print \"The power output of the turbine is %.0f kW\"%(W)\n",
+ "R = 285.\n",
+ "T1 = 300.\n",
+ "P1 = 100e03;\n",
+ "V = (w*R*T1)/P1; \t\t\t# V = dV/dt\n",
+ "A1 = V/v1; \n",
+ "D1 = math.sqrt((4*A1)/math.pi);\n",
+ "print \"The diameter of the inlet pipe is %.2f m\"%D1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power output of the turbine is 2325 kW\n",
+ "The diameter of the inlet pipe is 0.33 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No : 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "ha = 260.; \t\t\t # Enthalpy of air\n",
+ "hg = 912.; \t\t \t# Enthalpy of gas\n",
+ "Va = 270.; \t \t\t# Velocity of air\n",
+ "f = 0.0190; \t\t\t# Fuel to air ratio wf/wa\n",
+ "Ef = 44500.; \t\t\t# Chemical energy of fuel in kJ/kg\n",
+ "Q = 21.; \t\t\t# Heat loss from the engine\n",
+ "\n",
+ "# Calculation\n",
+ "Eg = 0.05*f*Ef/(1+f) \t# As 5% of chemical energy is not released in reaction\n",
+ "Vg = math.sqrt(2000*(((ha+(Va**2*0.001)/2+(f*Ef)-Q)/(1+f))-hg-Eg));\n",
+ "\n",
+ "# Results\n",
+ "print \"Velocity of exhaust gas is %.0f m/s\"%Vg\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of exhaust gas is 541 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No : 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from hornerc import horner\n",
+ "\n",
+ "# Variables\n",
+ "u0 = 0.718*273*1e03;\n",
+ "#t = poly(0,'t');\n",
+ "#u = u0+718*t; \t\t\t# in SI unit\n",
+ "#hp = u + 285*(t+273); \t\t\t# \"\"\n",
+ "hp = [273819, 1003]\n",
+ "\n",
+ "# Calculation\n",
+ "h = horner(hp,150); \t\t\t# h = hp(150)\n",
+ "W = 100.; \t\t\t# W = dW/dt\n",
+ "m = W/h;\n",
+ "\n",
+ "# Results\n",
+ "print \"The rate at which air flows out of the tank %.3f kg/h\"%(m*3600)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate at which air flows out of the tank 0.849 kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch6.ipynb b/Engineering_Thermodynamics/ch6.ipynb
new file mode 100755
index 00000000..61336d7b
--- /dev/null
+++ b/Engineering_Thermodynamics/ch6.ipynb
@@ -0,0 +1,322 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:284938688fc57eccf01fe20d1b336bc54ea30fa2a3b9197c8f73f3ff6a7b1e2c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Second Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page No : 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 800.;\n",
+ "T2 = 30.;\n",
+ "\n",
+ "# Calculation\n",
+ "e_max = 1.-((T2+273)/(T1+273));\n",
+ "Wnet = 1. \t\t\t# in kW\n",
+ "Q1 = Wnet/e_max;\n",
+ "Q2 = Q1-Wnet;\n",
+ "\n",
+ "# Results\n",
+ "print \"Least rate of heat rejection is %.3f KW\"%Q2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Least rate of heat rejection is 0.394 KW\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page No : 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = -15.+273;\n",
+ "T2 = 30.+273;\n",
+ "Q2 = 1.75; \t\t\t# in kJ/sec\n",
+ "\n",
+ "# Calculation\n",
+ "Q1 = Q2*T2/T1\n",
+ "W = Q1-Q2;\n",
+ "\n",
+ "# Results\n",
+ "print \"Least Power necessary to pump the heat out is\",round(W,2),\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Least Power necessary to pump the heat out is 0.31 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page No : 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q1 = 200.;\n",
+ "T1 = 373.15;\n",
+ "T2 = 273.16;\n",
+ "\n",
+ "# Calculation\n",
+ "Q2 = Q1*(T2/T1);\n",
+ "W = Q1-Q2;\n",
+ "e = W/Q1;\n",
+ "\n",
+ "# Results\n",
+ "print \"The heat rejected, the work done and the thermal effiency of the engine is %.3f J, %.1f J, %.1f respectively\"%(e,W,Q2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat rejected, the work done and the thermal effiency of the engine is 0.268 J, 53.6 J, 146.4 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No : 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 873.;\n",
+ "T2 = 313.;\n",
+ "T3 = 253.;\n",
+ "Q1 = 2000.; \t\t\t# In joule\n",
+ "W = 360.; \t\t\t# in joule\n",
+ "\n",
+ "# Calculation\n",
+ "# Part (a)\n",
+ "e_max = round(1-(T2/T1),3);\n",
+ "W1 = e_max*Q1;\n",
+ "COP = T3/(T2-T3);\n",
+ "W2 = W1-W;\n",
+ "Q4 = COP*W2;\n",
+ "Q3 = Q4+W2;\n",
+ "Q2 = Q1-W1;\n",
+ "\n",
+ "# Results\n",
+ "print \"The heat rejection to the 40 degree reservior is\",round((Q2+Q3)),\"kJ\"\n",
+ "\n",
+ "# Part (b)\n",
+ "e_max_ = 0.4*e_max;\n",
+ "W1_ = e_max_*Q1;\n",
+ "W2_ = W1_-W;\n",
+ "COP_ = 0.4*COP;\n",
+ "Q4_ = COP_*W2_;\n",
+ "Q3_ = Q4_+W2_;\n",
+ "Q2_ = Q1-W1_;\n",
+ "\n",
+ "print \"Q4 = %.1f kJ\"%round(Q4_,1)\n",
+ "print \"Q3 = %.1f kJ\"%round(Q3_,1)\n",
+ "print \"Q2 = %.1f kJ\"%round(Q2_,1)\n",
+ "print \"The heat rejection to the 40 degree reservior is\",round((Q2_+Q3_)),\"kJ\"\n",
+ "\n",
+ "# note: answers are slightly different because of rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat rejection to the 40 degree reservior is 5528.0 kJ\n",
+ "Q4 = 257.7 kJ\n",
+ "Q3 = 410.5 kJ\n",
+ "Q2 = 1487.2 kJ\n",
+ "The heat rejection to the 40 degree reservior is 1898.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7 Page No : 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 473.;\n",
+ "T2 = 293.;\n",
+ "T3 = 273.;\n",
+ "\n",
+ "# Calculation\n",
+ "MF = (T2*(T1-T3))/(T1*(T2-T3));\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor is %.1f\"%MF\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor is 6.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No : 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 363.;\n",
+ "T2 = 293.;\n",
+ "W = 1.; \t\t\t# Kj/s\n",
+ "\n",
+ "# Calculation\n",
+ "e_max = 1.-(T2/T1);\n",
+ "Qmin = W/e_max ;\n",
+ "Qmin_ = Qmin*3600.;\n",
+ "E = 1880.; \t\t\t# in kJ/m2 h\n",
+ "Amin = Qmin_/E ;\n",
+ "\n",
+ "# Results\n",
+ "print \"Minimum area required for the collector plate %.0f m2\"%Amin\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum area required for the collector plate 10 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No : 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 1000.;\n",
+ "W = 1000.; \t\t\t# in W\n",
+ "K = 5.67e-08;\n",
+ "\n",
+ "# Calculation\n",
+ "Amin = (256.*W)/(27.*K*T1**4);\n",
+ "\n",
+ "# Results\n",
+ "print \"Area of the panel %.4f m^2\"%Amin\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of the panel 0.1672 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch7.ipynb b/Engineering_Thermodynamics/ch7.ipynb
new file mode 100755
index 00000000..09b2856d
--- /dev/null
+++ b/Engineering_Thermodynamics/ch7.ipynb
@@ -0,0 +1,576 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f22779b8fff9ea06914fd530daf547f36c0e2d7163616b6b2b466ab75a676e0a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page No : 185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T1 = 37.+273;\n",
+ "T2 = 35.+273;\n",
+ "m = 1.;\n",
+ "cv = 4.187;\n",
+ "\n",
+ "# Calculation\n",
+ "S = m*cv*math.log(T1/T2); \t\t\t# S = S2-S1\n",
+ "\n",
+ "# Results\n",
+ "print \"Change in the entropy of the water is %.4f KJ/K\"%S\n",
+ "\n",
+ "# note : answer is accurate. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in the entropy of the water is 0.0271 KJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page No : 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Part (a)\n",
+ "T1 = 273.;\n",
+ "T2 = 373.;\n",
+ "m = 1. ;\n",
+ "cv = 4.187;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Ss = m*cv*math.log(T2/T1); \t\t\t# S = S2-S1\n",
+ "Q = m*cv*(T2-T1);\n",
+ "Sr = -(Q/T2);\n",
+ "S = Ss+Sr;\n",
+ "\n",
+ "print \"The entropy change of the universe is %.3f kJ/K\"%S\n",
+ "\n",
+ "# Part (b)\n",
+ "T3 = 323.;\n",
+ "Sw = m*cv*(math.log(T3/T1)+math.log(T2/T3));\n",
+ "Sr1 = -m*cv*(T3-T1)/T3;\n",
+ "Sr2 = -m*cv*(T2-T3)/T2;\n",
+ "Su = Sw+Sr1+Sr2;\n",
+ "print \"The entropy change of the universe is %.3f kJ/K\"%Su\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The entropy change of the universe is 0.184 kJ/K\n",
+ "The entropy change of the universe is 0.097 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page No : 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "# Part (a)\n",
+ "m = 1.;\n",
+ "T1 = -5.+273;\n",
+ "T2 = 20.+273;\n",
+ "T0 = 0.+273;\n",
+ "cp = 2.093;\n",
+ "cv = 4.187;\n",
+ "lf = 333.3;\n",
+ "\n",
+ "# Calculation\n",
+ "Q = m*cp*(T0-T1)+1*333.3+m*cv*(T2-T0);\n",
+ "Sa = -Q/T2;\n",
+ "Ss1 = m*cp*math.log(T0/T1);\n",
+ "Ss2 = lf/T0;\n",
+ "Ss3 = m*cv*math.log(T2/T0);\n",
+ "St = Ss1+Ss2+Ss3;\n",
+ "Su = St+Sa;\n",
+ "\n",
+ "# Results\n",
+ "print \"The entropy change of the universe is %.4f kJ/K\"%Su\n",
+ "\n",
+ "# Part (b)\n",
+ "S = 1.5549; \t\t\t# S = S4-S1\n",
+ "Wmin = T2*(S)-Q;\n",
+ "print \"The minimum risk required is %.1f kJ\"%Wmin\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The entropy change of the universe is 0.0965 kJ/K\n",
+ "The minimum risk required is 28.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5 Page No : 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "Vo = 8.4;\n",
+ "Vh = 14.;\n",
+ "n1 = Vo/22.4; \n",
+ "n2 = Vh/22.4;\n",
+ "R = 8.31;\n",
+ "\n",
+ "# Calculation\n",
+ "x1 = n1/(n1+n2);\n",
+ "x2 = n2/(n1+n2);\n",
+ "S = -R*(n1*math.log(x1)+n2*math.log(x2));\n",
+ "\n",
+ "# Results\n",
+ "print \"Entropy change for the process is %.2f J/K\"%S\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change for the process is 5.50 J/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8 Page No : 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from hornerc import horner\n",
+ "import sys\n",
+ "\n",
+ "# Variables\n",
+ "#T = poly(0,'T'); \t\t\t# T = Tf\n",
+ "Tf_ = [700,-2] #700-2*T; \t\t\t# Tf_ = Tf'\n",
+ "\n",
+ "# Calculation\n",
+ "# Bisection method to solve for the polynomial\n",
+ "def Temperature(a,b,f):\n",
+ " N = 100.;\n",
+ " eps = 1e-5;\n",
+ " if((f(a)*f(b))>0):\n",
+ " print ('no root possible f(a)*f(b)>0');\n",
+ " sys.exit(0);\n",
+ "\n",
+ " if(abs(f(a))<eps):\n",
+ " print ('solution at a');\n",
+ " sys.exit(0)\n",
+ "\n",
+ " if(abs(f(b))<eps):\n",
+ " print ('solution at b');\n",
+ " sys.exit(0)\n",
+ "\n",
+ " while(N>0):\n",
+ " c = (a+b)/2\n",
+ " if(abs(f(c))<eps):\n",
+ " x = c ;\n",
+ " return x;\n",
+ "\n",
+ " if((f(a)*f(c))<0 ):\n",
+ " b = c ;\n",
+ " else:\n",
+ " a = c ;\n",
+ " N = N-1;\n",
+ " print ('no convergence');\n",
+ " sys.exit(0);\n",
+ "\n",
+ "\n",
+ "def p(T): \n",
+ "\t return 2*T**3-700*T**2+9000000 \n",
+ "T = Temperature(100,200,p);\n",
+ "\n",
+ "Tf_ = horner(Tf_,T);\n",
+ "\n",
+ "print \"The final temperature of the body C is\",Tf_,\"K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final temperature of the body C is 400 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9 Page No : 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "import sys\n",
+ "from numpy import poly1d\n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variables\n",
+ "T1 = 200.;\n",
+ "T2 = 100.;\n",
+ "A = 0.042;\n",
+ "\n",
+ "# Calculation\n",
+ "def f10(T): \n",
+ "\t return A*T**2\n",
+ "\n",
+ "Q1 = quad(f10,T1,T2)[0]\n",
+ "\n",
+ "\n",
+ "def f11(T): \n",
+ "\t return A*T**2/T\n",
+ "\n",
+ "S = quad(f11,T1,T2)[0]\n",
+ "\n",
+ "W = Symbol('W');\n",
+ "Z = (-Q1-W)/T2 + S; \t\t\t# Polynomial to be solved for W\n",
+ "\n",
+ "# Bisection method to solve for the Work\n",
+ "def Work(a,b,f):\n",
+ " N = 100.;\n",
+ " eps = 1e-5;\n",
+ " if((f(a)*f(b))>0):\n",
+ " print ('no root possible f(a)*f(b)>0');\n",
+ " sys.exit(0);\n",
+ "\n",
+ " if(abs(f(a))<eps):\n",
+ " print ('solution at a');\n",
+ " sys.exit(0)\n",
+ "\n",
+ " if(abs(f(b))<eps):\n",
+ " print ('solution at b');\n",
+ " sys.exit(0)\n",
+ "\n",
+ " while(N>0):\n",
+ " c = (a+b)/2\n",
+ " if(abs(f(c))<eps):\n",
+ " x = c ;\n",
+ " return x;\n",
+ " if((f(a)*f(c))<0 ):\n",
+ " b = c ;\n",
+ " else:\n",
+ " a = c ;\n",
+ " N = N-1;\n",
+ " print ('no convergence');\n",
+ " sys.exit(0)\n",
+ "\n",
+ "def p(W): \n",
+ "\t return 350-0.01*W \n",
+ "\n",
+ "W = Work(34000,36000,p);\n",
+ "\n",
+ "print \"The maximum work that can be recovered is\",W/1000,\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum work that can be recovered is 35 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10 Page No : 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 0.5e06;\n",
+ "V1 = 0.2\n",
+ "V2 = 0.05;\n",
+ "n = 1.3\n",
+ "\n",
+ "# Calculation\n",
+ "P2 = P1*(V1/V2)**n;\n",
+ "def H(p):\n",
+ " return ((P1*V1**n)/p)**(1./n);\n",
+ "\n",
+ "def f0(p): \n",
+ "\t return H\n",
+ "\n",
+ "H = quad(H,P1,P2)[0]\n",
+ "\n",
+ "U = H-(P2*V2-P1*V1);\n",
+ "W12 = -U;\n",
+ "\n",
+ "# Results\n",
+ "print \"Change in enthalpy is %.1f kJ\"%(H/1000)\n",
+ "print \"Change in internal energy is %.2f kJ\"%(U/1000)\n",
+ "print \"The change in entropy and heat transfer are\",0,\"and\",0,\"kJ\"\n",
+ "print \"The work transfer during the process is %.2f kJ\"%(W12/1000)\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in enthalpy is 223.5 kJ\n",
+ "Change in internal energy is 171.91 kJ\n",
+ "The change in entropy and heat transfer are 0 and 0 kJ\n",
+ "The work transfer during the process is -171.91 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No : 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "Pa = 130e03; \n",
+ "Pb = 100e03;\n",
+ "Ta = 50+273; \n",
+ "Tb = 13+273;\n",
+ "cp = 1.005;\n",
+ "\n",
+ "# Calculation\n",
+ "def f1(T): \n",
+ "\t return cp/T\n",
+ "\n",
+ "def f2(p):\n",
+ " return .287/p\n",
+ "Ss = quad(f1,Ta,Tb)[0] - quad(f2,Pa,Pb)[0]\n",
+ "Ssy = 0;\n",
+ "Su = Ss+Ssy;\n",
+ "\n",
+ "# Results\n",
+ "print \"Change in the entropy of the universe is %.3f kJ/Kg k\"%Su\n",
+ "print \"As the change in entropy of the universe in the process A-B is negative so the flow must be from B-A\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in the entropy of the universe is -0.047 kJ/Kg k\n",
+ "As the change in entropy of the universe in the process A-B is negative so the flow must be from B-A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No : 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T1 = 300.\n",
+ "T2 = 330.\n",
+ "T3 = 270.\n",
+ "P1 = 4.\n",
+ "P2 =1.\n",
+ "P3 =1.\n",
+ "cp = 1.0005\n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation\n",
+ "S21 = cp*math.log(T2/T1)-R*math.log(P2/P1); \t\t\t# S21 = S2-S1\n",
+ "S31 = cp*math.log(T3/T1)-R*math.log(P3/P1); \t\t\t# S31 = S3-S1\n",
+ "Sgen = 1*S21 + 1*S31;\n",
+ "\n",
+ "# Results\n",
+ "print \"The entropy generated during the process is %.3f kW/K\"%Sgen\n",
+ "print \"As the entropy generated is positive so such device is possible\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The entropy generated during the process is 0.786 kW/K\n",
+ "As the entropy generated is positive so such device is possible\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13 Page No : 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "A = 5.*7;\n",
+ "k = 0.71;\n",
+ "L = 0.32;\n",
+ "Ti = 21.+273;\n",
+ "To = 6.+273;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "Q = k*A*(Ti-To)/L ;\n",
+ "print \"The rate of heat transfer through the wall is %.2f W\"%Q\n",
+ "\n",
+ "Sgen_wall = Q/To - Q/Ti;\n",
+ "print \"The rate of entropy through the wall is %.3f W/K\"%Sgen_wall\n",
+ "\n",
+ "Tr = 27+273.;\n",
+ "Ts = 2+273.;\n",
+ "Sgen_total = Q/Ts-Q/Tr;\n",
+ "print \"The rate of total entropy generation with this heat transfer process is %.3f W/K\"%Sgen_total\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of heat transfer through the wall is 1164.84 W\n",
+ "The rate of entropy through the wall is 0.213 W/K\n",
+ "The rate of total entropy generation with this heat transfer process is 0.353 W/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch8.ipynb b/Engineering_Thermodynamics/ch8.ipynb
new file mode 100755
index 00000000..d0460b5a
--- /dev/null
+++ b/Engineering_Thermodynamics/ch8.ipynb
@@ -0,0 +1,1018 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c3df87d51665052238119b4e7ee4111718a96b4fbb9e6d0115f49e4b893482d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Available Energy, Availability and Irreversibility"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page No : 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T0 = 308.;\n",
+ "T1 = 693.; \n",
+ "T1_ = 523.; \t\t\t# T1_ = T1'\n",
+ "T1_ = 523.; \t\t\t# \"\"\n",
+ "\n",
+ "# Calculation\n",
+ "f = (T0*(T1-T1_))/(T1_*(T1-T0));\n",
+ "\n",
+ "# Results\n",
+ "print \"The fraction of energy that becomes unavailable due to irreversible heat transfer is %.2f\"%f\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The fraction of energy that becomes unavailable due to irreversible heat transfer is 0.26\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No : 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "lhw = 1858.5; \t\t\t# Latent heat of water\n",
+ "Tew = 220+273.;\n",
+ "Sw = lhw/Tew; \n",
+ "Tig = 1100.; \t\t\t# Initial temperature of the gas\n",
+ "Tfg = 550.; \t\t\t# Final \"\"\n",
+ "\n",
+ "# Calculation\n",
+ "k = 1*lhw/(Tig-Tfg); \t\t\t# k = mg_dot*cpg\n",
+ "Tg2 = 823.\n",
+ "Tg1 = 1373.\n",
+ "T0 = 303.;\n",
+ "\n",
+ "def f2(T): \n",
+ "\t return k/T\n",
+ "\n",
+ "Sg = quad(f2,Tg1,Tg2)[0]\n",
+ "\n",
+ "St = Sg+Sw; \n",
+ "\n",
+ "print \"Total change in entropy is %.3f kJ/K\"%St\n",
+ "print \"Increase in unavailable energy is %.0f Kj\"%(round(T0*St,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total change in entropy is 2.040 kJ/K\n",
+ "Increase in unavailable energy is 620 Kj\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Page No : 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "Tw = 75. + 273;\n",
+ "Ts = 5. + 273; \t\t\t# Ts = T0\n",
+ "m = 40.;\n",
+ "cp = 4.2;\n",
+ "\n",
+ "# Calculation\n",
+ "def f9(T): \n",
+ "\t return m*cp*(1-(Tw/T))\n",
+ "\n",
+ "W = -quad(f9,Ts,Tw)[0]\n",
+ "Q1 = m*cp*(Tw-Ts);\n",
+ "UE = Q1-W;\n",
+ "\n",
+ "# Results\n",
+ "print \"Total work %.0f kJ\"%W\n",
+ "print \"Heat released\",Q1,\"kJ\"\n",
+ "print \"Internal energy change %.0f kJ\"%UE\n",
+ "\n",
+ "# quad gives slightly different answer than book has. pLease check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total work 1370 kJ\n",
+ "Heat released 11760.0 kJ\n",
+ "Internal energy change 10390 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No : 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "Ts = 273+15. #temperature \n",
+ "Tw1 = 95+273. #Water\n",
+ "Tw2 = 35+273. #water\n",
+ "m1 = 25. #energy\n",
+ "m2 = 35. \n",
+ "cp = 4.2 #Water\n",
+ "\n",
+ "# Calculation\n",
+ "def f3(T): \n",
+ "\t return m1*cp*(1-(Ts/T))\n",
+ "\n",
+ "AE25 = quad(f3,Ts,Tw1)[0]\n",
+ "\n",
+ "\n",
+ "def f4(T): \n",
+ "\t return m2*cp*(1-(Ts/T))\n",
+ "AE35 = quad(f4,Ts,Tw2)[0]\n",
+ "AEt = AE25 + AE35;\n",
+ "Tm = (m1*Tw1+m2*Tw2)/(m1+m2); \t\t\t# Temperature after mixing\n",
+ "\n",
+ "def f5(T): \n",
+ "\t return (m1+m2)*cp*(1-(Ts/T))\n",
+ "\n",
+ "AE60 = quad(f5,Ts,Tm)[0]\n",
+ "\n",
+ "AE = AEt - AE60;\n",
+ "print \"The decrease in the totla energy is %.2f kJ\"%AE\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The decrease in the totla energy is 281.82 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page No : 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "N1 = 3000.; #RPM\n",
+ "w1 = (2*math.pi*N1)/60.; \n",
+ "I = 0.54;\n",
+ "Ei = 0.5*I*w1**2;\n",
+ "ti = 15.+273; #temperature\n",
+ "m = 2.; #water equivalent\n",
+ "\n",
+ "# Calculation\n",
+ "dt = Ei/(1000*2*4.187);\n",
+ "tf = ti+dt;\n",
+ "\n",
+ "def f6(T): \n",
+ "\t return m*4.187*(1-(ti/T))\n",
+ "\n",
+ "AE = quad(f6,ti,tf)[0]\n",
+ "\n",
+ "UE = Ei/1000 - AE;\n",
+ "w2 = math.sqrt(AE*1000*2/I);\n",
+ "N2 = (w2*60)/(2*math.pi);\n",
+ "\n",
+ "# Results\n",
+ "print \"The final RPM of the flywheel would be %.0f\"%N2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final RPM of the flywheel would be 222\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No : 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from scipy.integrate import quad \n",
+ "\n",
+ "# Variables\n",
+ "T1 = 353.\n",
+ "T2 = 278.\n",
+ "V2 = 2.\n",
+ "V1 = 1.\n",
+ "P0 = 100. #tempareture\n",
+ "P1 = 500. #air\n",
+ "R = 0.287\n",
+ "cv = 0.718; #air \n",
+ "m = 2. \n",
+ "\n",
+ "# Calculation\n",
+ "def f7(T): \n",
+ "\t return (m*cv)/T\n",
+ "\n",
+ "def f8(V):\n",
+ " return m*R/V\n",
+ "\n",
+ "S = quad(f7,T1,T2)[0] + quad(f8,V1,V2)[0]\n",
+ "U = m*cv*(T1-T2);\n",
+ "Wmax = U-(T2*(-S));\n",
+ "V1_ = (m*R*T1)/P1;\n",
+ "CA = Wmax-P0*(V1_); \t\t\t# Change in availability\n",
+ "I = T2*S; \n",
+ "\n",
+ "# Results\n",
+ "print \"The maximum work is %.2f kJ\"%Wmax\n",
+ "print \"Change in availability is %.2f kJ\"%CA\n",
+ "print \"Irreversibility is %.1f kJ\"%I\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum work is 122.96 kJ\n",
+ "Change in availability is 82.43 kJ\n",
+ "Irreversibility is 15.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No : 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 500. # air\n",
+ "P2 = 100.; # kPa \n",
+ "T1 = 793.\n",
+ "T2 = 573.\n",
+ "cp = 1.005 # air\n",
+ "T0 = 293.\n",
+ "R = 0.287;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "S21 = (R*math.log(P2/P1))-(cp*math.log(T2/T1))\n",
+ "CA = cp*(T1-T2)-T0*S21; \t\t\t# Change in v=availability\n",
+ "print \"The decrease in availability is %.1f kJ/Kg\"%CA\n",
+ "\n",
+ "Wmax = CA;\n",
+ "print \"The maximum work is %.1f kJ/Kg\"%Wmax\n",
+ "\n",
+ "Q = -10.;\n",
+ "W = cp*(T1-T2)+Q ;\n",
+ "I = Wmax-W;\n",
+ "print \"The irreversibility is %.1f kJ/Kg\"%I\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The decrease in availability is 260.8 kJ/Kg\n",
+ "The maximum work is 260.8 kJ/Kg\n",
+ "The irreversibility is 49.7 kJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No : 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T0 = 300. # cooled\n",
+ "Tg1 = 573.\n",
+ "Tg2 = 473.;\n",
+ "Ta1 = 313.; \n",
+ "cpg = 1.09 # tempareture\n",
+ "cpa = 1.005; # air\n",
+ "mg = 12.5\n",
+ "ma = 11.15;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "f1 = cpg*(Tg1-T0)-T0*cpg*(math.log(Tg1/T0));\n",
+ "f2 = cpg*(Tg2-T0)-T0*cpg*(math.log(Tg2/T0));\n",
+ "print \"The initial and final availbility of the products are %.2f and %.2f kJ/Kg respectively\"%(f1,f2)\n",
+ "\n",
+ "# Part (b)\n",
+ "Dfg = f1-f2;\n",
+ "Ta2 = Ta1 + (mg/ma)*(cpg/cpa)*(Tg1-Tg2);\n",
+ "Ifa = cpa*(Ta2-Ta1)-T0*cpa*(math.log(Ta2/Ta1));\n",
+ "I = mg*Dfg-ma*Ifa;\n",
+ "print \"The irreversibility of the process is %.2f kW\"%I\n",
+ "\n",
+ "# Part (c)\n",
+ "Ta2_ = Ta1*(math.e**(-(mg/ma)*(cpg/cpa)*math.log(Tg2/Tg1)));\n",
+ "Q1 = mg*cpg*(Tg1-Tg2);\n",
+ "Q2 = ma*cpa*(Ta2_-Ta1);\n",
+ "W = Q1-Q2;\n",
+ "print \"Tota power generated by the heat engine %.2f kW\"%W\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The initial and final availbility of the products are 85.97 and 39.68 kJ/Kg respectively\n",
+ "The irreversibility of the process is 319.37 kW\n",
+ "Tota power generated by the heat engine 441.35 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No : 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "T2 = 1063.;\n",
+ "T1 = 1073.;\n",
+ "m = 2.; # pipe\n",
+ "cp = 1.1;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "I = m*cp*((T1-T2)-T0*(math.log(T1/T2)));\n",
+ "print \"The irrevesibility rate is %.3f kW\"%I\n",
+ "\n",
+ "# At lower temperature\n",
+ "T1_ = 353.\n",
+ "T2_ = 343.\n",
+ "I_ = m*cp*((T1_-T2_)-T0*(math.log(T1_/T2_)));\n",
+ "print \"The irrevesibility rate at lower temperature is %.3f kW\"%I_\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The irrevesibility rate is 15.820 kW\n",
+ "The irrevesibility rate at lower temperature is 3.033 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No : 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 3.; # insulated pipe\n",
+ "R = 0.287; \n",
+ "T0 = 300.\n",
+ "k = 0.10; \t\t\t# k = dP/P1\n",
+ "\n",
+ "# Calculation\n",
+ "Sgen = m*R*k;\n",
+ "I = Sgen*T0;\n",
+ "\n",
+ "# Results\n",
+ "print \"The rate of energy loss because of the pressure drop due to friction\",I,\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of energy loss because of the pressure drop due to friction 25.83 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No : 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m1 = 2.; \t\t\t# m1_dot\n",
+ "m2 = 1.;\n",
+ "T1 = 90.+273; \n",
+ "T2 = 30.+273;\n",
+ "T0 =300.;\n",
+ "\n",
+ "# Calculation\n",
+ "m = m1+m2;\n",
+ "x = m1/m;\n",
+ "t = T2/T1; \t\t\t# Tau\n",
+ "cp = 4.187;\n",
+ "Sgen = m*cp*math.log((x+t*(1-x))/(t**(1-x)));\n",
+ "I = T0*Sgen;\n",
+ "\n",
+ "\n",
+ "print \"The rate of entropy generation is %.4f kW/K\"%Sgen\n",
+ "print \"The rate of energy loss due to mixing is %.1f kW\"%I\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of entropy generation is 0.0446 kW/K\n",
+ "The rate of energy loss due to mixing is 13.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12 Page No : 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Qr = 500.; \t\t\t# Heat release in kW\n",
+ "Tr = 2000.;\n",
+ "T0 = 300.; # chemical process \n",
+ "\n",
+ "# Calculation and Results\n",
+ "# Part (a)\n",
+ "Qa = 480.\n",
+ "Ta = 1000.;\n",
+ "n1a = (Qa/Qr);\n",
+ "n2a = n1a*(1-(T0/Ta))/(1-(T0/Tr));\n",
+ "print (\"PART (A)\")\n",
+ "print \"The first law efficiency is\",n1a*100,\"%\"\n",
+ "print \"The Second law efficiency is %.0f %%\"%(n2a*100)\n",
+ "\n",
+ "# Part (b)\n",
+ "Qb = 450.\n",
+ "Tb = 500.\n",
+ "n1b = (Qb/Qr);\n",
+ "n2b = n1b*(1-(T0/Tb))/(1-(T0/Tr));\n",
+ "print (\"PART (B)\")\n",
+ "print \"The first law efficiency is\",n1b*100,\"%\"\n",
+ "print \"The Second law efficiency is %.1f %%\"%(n2b*100)\n",
+ "\n",
+ "# Part (c)\n",
+ "Qc = 300.\n",
+ "Tc = 320.\n",
+ "n1c = (Qc/Qr);\n",
+ "n2c = n1c*(1-(T0/Tc))/(1-(T0/Tr));\n",
+ "print (\"PART (C)\")\n",
+ "print \"The first law efficiency is\",n1c*100,\"%\"\n",
+ "print \"The Second law efficiency is %.2f %%\"%(n2c*100)\n",
+ "\n",
+ "# Part (d)\n",
+ "Qd = 450.; \n",
+ "n1d = (Qd/Qr);\n",
+ "n2a_= n1d*(1-(T0/Ta))/(1-(T0/Tr));\n",
+ "n2b_= n1d*(1-(T0/Tb))/(1-(T0/Tr));\n",
+ "n2c_= n1d*(1-(T0/Tc))/(1-(T0/Tr));\n",
+ "print (\"Part (D)\")\n",
+ "print \"The first law efficiency is\",n1d\n",
+ "print \"The Second law efficiency of part (a) is %.2f %%\"%(n2a_*100)\n",
+ "print \"The Second law efficiency of part (b) is %.1f %%\"%(n2b_*100)\n",
+ "print \"The Second law efficiency of part (c) is %.2f %%\"%(n2c_*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "PART (A)\n",
+ "The first law efficiency is 96.0 %\n",
+ "The Second law efficiency is 79 %\n",
+ "PART (B)\n",
+ "The first law efficiency is 90.0 %\n",
+ "The Second law efficiency is 42.4 %\n",
+ "PART (C)\n",
+ "The first law efficiency is 60.0 %\n",
+ "The Second law efficiency is 4.41 %\n",
+ "Part (D)\n",
+ "The first law efficiency is 0.9\n",
+ "The Second law efficiency of part (a) is 74.12 %\n",
+ "The Second law efficiency of part (b) is 42.4 %\n",
+ "The Second law efficiency of part (c) is 6.62 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14 Page No : 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "cp = 1.005\n",
+ "T2 = 433.\n",
+ "T1 = 298.;\n",
+ "T0 = 298.\n",
+ "R = 0.287\n",
+ "P2 = 8.\n",
+ "P1 = 1.\n",
+ "Q = -100.\n",
+ "m = 1.\n",
+ "\n",
+ "# Calculation\n",
+ "W = Q + m*cp*(T1-T2);\n",
+ "AF = cp*(T2-T1)-T0*((cp*math.log(T2/T1))-(R*math.log(P2/P1))) ; \t\t\t# AF = af2-af1\n",
+ "e = AF/-W \t\t\t# efficiency \n",
+ "\n",
+ "# Results\n",
+ "print \"The power input is %.1f kW\"%W\n",
+ "print \"The second law efficiency of the compressor is %.3f\"%e\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power input is -235.7 kW\n",
+ "The second law efficiency of the compressor is 0.855\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15 Page No : 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "U = 0\n",
+ "H0 = 0\n",
+ "S = 0;\n",
+ "# If the vaccume ha reduced to dead state\n",
+ "U0 = 0\n",
+ "H0 = 0\n",
+ "S0 = H0\n",
+ "V0 = 0;\n",
+ "P0 = 100\n",
+ "V = 1;\n",
+ "\n",
+ "# Calculation\n",
+ "fi = P0*V;\n",
+ "\n",
+ "# Results\n",
+ "print \"The energy of the complete vaccume is\",fi,\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy of the complete vaccume is 100 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16 Page No : 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m = 1000. # mass in kg\n",
+ "T0 = 300.\n",
+ "P0 = 1. \n",
+ "T1 = 300.;\n",
+ "T2 = 273-20.\n",
+ "Tf = 273-2.2; # freezing point in C\n",
+ "Cb = 1.7 \n",
+ "Ca = 3.2;\n",
+ "Lh = 235. # latent heat\n",
+ "\n",
+ "# Calculation\n",
+ "H12 = m*((Cb*(Tf-T2))+Lh+(Ca*(T1-Tf)));\n",
+ "H21 = -H12;\n",
+ "S12 = m*((Cb*math.log(Tf/T2))+(Lh/Tf)+(Ca*math.log(T1/Tf)));\n",
+ "S21 = -S12;\n",
+ "E = H21-T0*S21;\n",
+ "\n",
+ "# Results\n",
+ "print \"Energy produced is %.1f MJ\"%(E/1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy produced is 34.6 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17 Page No : 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "cv = 0.718\n",
+ "T2 = 500. # tempareture\n",
+ "T1 = 300.\n",
+ "m = 1.\n",
+ "T0 = 300.\n",
+ "\n",
+ "# Case (a)\n",
+ "Sua = cv*math.log(T2/T1);\n",
+ "Ia = T0*Sua;\n",
+ "print \"The irreversibility in case a is %.1f kJ/Kg\"%Ia\n",
+ "\n",
+ "# Case (b)\n",
+ "Q = m*cv*(T2-T1);\n",
+ "T = 600.\n",
+ "Sub = Sua-(Q/T);\n",
+ "Ib = T0*Sub;\n",
+ "print \"The irreversibility in case b is %.2f kJ/Kg\"%Ib\n",
+ " \n",
+ "# rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The irreversibility in case a is 110.0 kJ/Kg\n",
+ "The irreversibility in case b is 38.23 kJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18 Page No : 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "h1 = 3230.9\n",
+ "s1 = 6.69212\n",
+ "V1 = 160. # velocity\n",
+ "T1 = 273.+400; # Steam\n",
+ "h2 = 2676.1\n",
+ "s2 = 7.3549\n",
+ "V2 = 100.\n",
+ "T2 = 273. + 100;\n",
+ "T0 = 298.\n",
+ "W = 540. # water\n",
+ "Tb = 500. # tempareture\n",
+ "\n",
+ "# Calculation\n",
+ "Q = (h1-h2)+((V1**2-V2**2)/2)*1e-03-W;\n",
+ "I = 151.84-Q*(0.404);\n",
+ "AF = W + Q*(1-(T0/Tb)) + I; \t\t\t# AF = af1-af2\n",
+ "n2 = W/AF;\n",
+ "\n",
+ "# Results\n",
+ "print \"Irreversibility per unit mass is %.2f kJ/Kg\"%I\n",
+ "print \"The second law effiency of the turbine is %.2f\"%n2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Irreversibility per unit mass is 142.71 kJ/Kg\n",
+ "The second law effiency of the turbine is 0.78\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19 Page No : 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T0 = 300.\n",
+ "T = 1500. # resistor\n",
+ "Q = -8.5\n",
+ "W = 8.5;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "# Case (a)\n",
+ "I = Q*(1-T0/T) + W;\n",
+ "R = Q*(1-T0/T);\n",
+ "print \"Rate of availability transfer with heat and the irreversibility rate are\",R,\"and\",I,\"kW\"\n",
+ "\n",
+ "# Case (b)\n",
+ "T1 = 500.;\n",
+ "Ib = - Q*(1-T0/T) + Q*(1-T0/T1);\n",
+ "print \"Rate of availability in case b is\",Ib,\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of availability transfer with heat and the irreversibility rate are -6.8 and 1.7 kW\n",
+ "Rate of availability in case b is 3.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20 Page No : 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P1 = 1.\n",
+ "T1 = 273.+30; \n",
+ "P2 = 3.5\n",
+ "T2 = 141.+273 ; \n",
+ "V = 90.;\n",
+ "T0 = 303.;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "# Part (a)\n",
+ "g = 1.4;\n",
+ "T2s = T1*((P2/P1)**((g-1)/g));\n",
+ "print \"As T2s> T2 so the process must be polytropic\"\n",
+ "\n",
+ "# Part (b)\n",
+ "p = math.log(P2/P1); q = math.log(T2/T1);\n",
+ "n = p/(p-q);\n",
+ "print \"The polytropic index is %.2f\"%n\n",
+ "\n",
+ "# Part (c)\n",
+ "cp = 1.0035; R = 0.287;\n",
+ "Wa = cp*(T1-T2)-(V2**2/2)*1e-03 ;\n",
+ "Wt = -R*T0*math.log(P2/P1)-(V2**2/2)*1e-03;\n",
+ "Nt = Wt/Wa;\n",
+ "print \"The isothermal effiency is %.3f\"%Nt\n",
+ "\n",
+ "# Part (d)\n",
+ "f12 = cp*(T1-T2) + T0*((R*math.log(P2/P1))-(cp*math.log(T2/T1))) - (V2**2/2)*1e-03 ;\n",
+ "I = f12-Wa ; \n",
+ "print \"The minimum work input and irreversibility are %.1f and %.1f kJ/Kg \"%(f12,I)\n",
+ "\n",
+ "# Part (e)\n",
+ "n2 = (f12/Wa);\n",
+ "print \"Second law efficiency is %.2f\"%n2\n",
+ "\n",
+ "# note : answer are slightly different because of rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "As T2s> T2 so the process must be polytropic\n",
+ "The polytropic index is 1.33\n",
+ "The isothermal effiency is 0.978\n",
+ "The minimum work input and irreversibility are -97.4 and 14.0 kJ/Kg \n",
+ "Second law efficiency is 0.87\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/ch9.ipynb b/Engineering_Thermodynamics/ch9.ipynb
new file mode 100755
index 00000000..0c0c9e93
--- /dev/null
+++ b/Engineering_Thermodynamics/ch9.ipynb
@@ -0,0 +1,1016 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7f2ac1f73c638662f50d765235be56ca14cf295f3e77d6b32e206a78e4a459fc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Properties of Pure Substances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page No : 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "tsat = 179.91; # celsius\n",
+ "vf = 0.001127; # m**3/kg\n",
+ "vg = 0.19444; #m**3/kg\n",
+ "\n",
+ "# Calculation\n",
+ "vfg = vg-vf;\n",
+ "sf = 2.1387;\n",
+ "sg = 6.5865;\n",
+ "sfg = sg-sf;\n",
+ "\n",
+ "# Results\n",
+ "print \"At 1 Mpa saturation temperature is\",tsat,\"degree\"\n",
+ "print \"Changes in specific volume is\",vfg,\"m3/kg\"\n",
+ "print \"Change in entropy during evaporation is\",sfg,\"kJ/kg K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 1 Mpa saturation temperature is 179.91 degree\n",
+ "Changes in specific volume is 0.193313 m3/kg\n",
+ "Change in entropy during evaporation is 4.4478 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No : 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "v = 0.09\n",
+ "vf = 0.001177\n",
+ "vg = 0.09963;\n",
+ "\n",
+ "# Calculation\n",
+ "x = (v-vf)/(vg-vf);\n",
+ "hf = 908.79; hfg = 1890.7;\n",
+ "sf = 2.4474; sfg = 3.8935;\n",
+ "h = hf+(x*hfg);\n",
+ "s = sf+(x*sfg);\n",
+ "\n",
+ "# Results\n",
+ "print \"The enthalpy and entropy of the system are %.4f and %.2f kJ/kg and kJ/kg K respectively\"%(s,h)\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The enthalpy and entropy of the system are 5.9601 and 2614.55 kJ/kg and kJ/kg K respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page No : 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import interp\n",
+ "\n",
+ "# Variables\n",
+ "# for T = 350 degree\n",
+ "T1 = 350; \n",
+ "v1 = 0.2003; \n",
+ "h1 = 3149.5; \n",
+ "s1 = 7.1369;\n",
+ "# for T = 400 degree\n",
+ "T2 = 400; \n",
+ "v2 = 0.2178; \n",
+ "h2 = 3257.5; \n",
+ "s2 = 7.3026;\n",
+ "\n",
+ "# Calculation\n",
+ "# Interpolation for T = 380;\n",
+ "T = [T1 ,T2];\n",
+ "v = [v1 ,v2];\n",
+ "h = [h1 ,h2];\n",
+ "s = [s1 ,s2];\n",
+ "v3 = interp(380,T,v);\n",
+ "h3 = interp(380,T,h);\n",
+ "s3 = interp(380,T,s);\n",
+ "\n",
+ "# Results\n",
+ "print \"The entropy, enthalpy and volume of stem at 1.4MPa and 380 degree is %.4f kJ/Kg, %.1f kJ/Kg, %.4f kJ/Kg respectively\"%(s3,h3,v3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The entropy, enthalpy and volume of stem at 1.4MPa and 380 degree is 7.2363 kJ/Kg, 3214.3 kJ/Kg, 0.2108 kJ/Kg respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No : 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Psat = 3.973e06;\n",
+ "vf = 0.0012512\n",
+ "vg = 0.05013;\n",
+ "hf = 1085.36\n",
+ "hfg = 1716.2;\n",
+ "sf = 2.7927\n",
+ "sfg = 3.2802;\n",
+ "mf = 9 # liquid in kg\n",
+ "V = 0.04; # volume\n",
+ "\n",
+ "# Calculation\n",
+ "Vf = mf*vf;\n",
+ "Vg = V-Vf;\n",
+ "mg = Vg/vg;\n",
+ "m = mf+mg;\n",
+ "x = mg/m;\n",
+ "v = vf+x*(vg-vf);\n",
+ "h = hf+x*hfg;\n",
+ "s = sf+(x*sfg);\n",
+ "u = h-Psat*v*1e-03;\n",
+ "\n",
+ "# at T = 250\n",
+ "uf = 1080.39\n",
+ "ufg = 1522;\n",
+ "u_ = uf+x*ufg;\n",
+ "\n",
+ "# Results\n",
+ "print \"The pressure is %.3f Mpa\"%(Psat/1000000)\n",
+ "print \"The mass is %.3f Kg\"%m\n",
+ "print \"Specific volume is %.5f m3/Kg\"%v\n",
+ "print \"Enthalpy is %.2f kJ/Kg\"%h\n",
+ "print \"The entropy is %.4f kJ/Kg K\"%s\n",
+ "print \"The interal energy is %.2f kJ/Kg\"%u\n",
+ "print \"u = %.2f kJ/kg\"%u_ #incorrect answer in the textbook\n",
+ "\n",
+ "# rounding off error. please check. book answers may wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pressure is 3.973 Mpa\n",
+ "The mass is 9.573 Kg\n",
+ "Specific volume is 0.00418 m3/Kg\n",
+ "Enthalpy is 1188.13 kJ/Kg\n",
+ "The entropy is 2.9891 kJ/Kg K\n",
+ "The interal energy is 1171.53 kJ/Kg\n",
+ "u = 1171.53 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No : 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import interp\n",
+ "\n",
+ "# Part (a)\n",
+ "vg1_ = 0.8919\n",
+ "T1_ = 120;\n",
+ "vg2_ = 0.77076\n",
+ "T2_ = 125;\n",
+ "vg_ = [vg1_, vg2_]\n",
+ "T_ = [T1_, T2_];\n",
+ "v1 = 0.7964;\n",
+ "h1 = 2967.6;\n",
+ "P1 = 0.3e03; \t\t\t# in Kpa\n",
+ "\n",
+ "# Calculation and Results\n",
+ "T1 = interp(v1,vg_,T_);\n",
+ "print \"The steam become saturated at \",T1,\"degree\"\n",
+ "\n",
+ "# Part (b)\n",
+ "vf = 0.001029\n",
+ "vg = 3.407;\n",
+ "hf = 334.91\n",
+ "hfg = 2308.8;\n",
+ "Psat = 47.39; \t\t\t# In kPa\n",
+ "v2 = v1;\n",
+ "x2 = (v1-vf)/(vg-vf);\n",
+ "h2 = hf+x2*hfg;\n",
+ "P2 = Psat;\n",
+ "Q12 = (h2-h1)+v1*(P1-P2);\n",
+ "\n",
+ "print \"The quality factor at t=80 degree is %.4f\"%x2\n",
+ "print \"The heat transfered per kg of steam in cooling from 250 degree to 80 degree %.2f kJ/Kg\"%Q12\n",
+ "\n",
+ "# rounding off error. interp function gives slightly different answer."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The steam become saturated at 125.0 degree\n",
+ "The quality factor at t=80 degree is 0.2335\n",
+ "The heat transfered per kg of steam in cooling from 250 degree to 80 degree -1892.35 kJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7 Page No : 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variables\n",
+ "# At T = 40 degree\n",
+ "Psat = 7.384e06;\n",
+ "sf = 0.5725\n",
+ "sfg = 7.6845;\n",
+ "hf = 167.57\n",
+ "hfg = 2406.7;\n",
+ "s1 = 6.9189\n",
+ "h1 = 3037.6;\n",
+ "\n",
+ "# Calculation\n",
+ "x2 = round((s1-sf)/sfg,3) ;\n",
+ "h2 = hf+(x2*hfg);\n",
+ "W = h1-h2;\n",
+ "\n",
+ "\n",
+ "# Results\n",
+ "print \"The ideal work output of the turbine is %.2f kJ/Kg\"%W\n",
+ "\n",
+ "# rounding off error. please check using calculator."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ideal work output of the turbine is 882.10 kJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8 Page No : 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import interp\n",
+ "\n",
+ "# Variables\n",
+ "w3 = 2.3 #adiabatic mixing\n",
+ "w1 = 1.0;\n",
+ "w2 = w3-w1;\n",
+ "h1 = 2950.0;\n",
+ "\n",
+ "# At 0.8MPa, 0.95 dry\n",
+ "x = 0.95;\n",
+ "hf = 721.11\n",
+ "hfg = 2048;\n",
+ "\n",
+ "# Calculation\n",
+ "h2 = hf + (x*hfg);\n",
+ "h3 = ((w1*h1)+(w2*h2))/w3;\n",
+ "# Interpolation\n",
+ "H = [2769.1, 2839.3];\n",
+ "T = [170.43, 200];\n",
+ "t3 = interp(2790,H,T);\n",
+ "s3 = 6.7087; \n",
+ "s4 = s3;\n",
+ "x4 = (s3-1.7766)/5.1193;\n",
+ "h4 = 604.74+(x4*2133.8);\n",
+ "V4 = math.sqrt(2000*(h3-h4));\n",
+ "\n",
+ "# Results\n",
+ "print \"The condition of superheat after mixing %.2f degree\"%(t3-T[0])\n",
+ "print \"The velocity of steam leaving the nozzle is %.1f m/sec\"%V4\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The condition of superheat after mixing 8.80 degree\n",
+ "The velocity of steam leaving the nozzle is 508.7 m/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9 Page No : 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h2 = 2716.2\n",
+ "hf = 844.89\n",
+ "hfg = 1947.3;\n",
+ "\n",
+ "# Calculation\n",
+ "x1 = (h2-hf)/hfg;\n",
+ "h3 = 2685.5;\n",
+ "x4 = (h3-hf)/hfg;\n",
+ "\n",
+ "# Results\n",
+ "print \"The quality of steam in pipe line is %.3f\"%x1\n",
+ "print \"Maximum moisture is %.2f %%\"%(100-(x4*100))\n",
+ "\n",
+ "# rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The quality of steam in pipe line is 0.961\n",
+ "Maximum moisture is 5.48 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10 Page No : 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# At 0.1Mpa, 110 degree\n",
+ "h2 = 2696.2\n",
+ "hf = 844.89\n",
+ "hfg = 1947.3;\n",
+ "\n",
+ "# Calculation\n",
+ "x2 = (h2-hf)/hfg;\n",
+ "vf = 0.001023; \t\t\t# at T = 70 degree\n",
+ "V = 0.000150; \t\t\t# In m3\n",
+ "m1 = V/vf;\n",
+ "m2 = 3.24;\n",
+ "x1 = (x2*m2)/(m1+m2);\n",
+ "\n",
+ "# Results\n",
+ "print \"The quality of the steam in the pipe line is %.3f\"%x1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The quality of the steam in the pipe line is 0.910\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11 Page No : 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# P = 1MPa\n",
+ "vf = 0.001127\n",
+ "vg = 0.1944;\n",
+ "hg = 2778.1\n",
+ "uf = 761.68;\n",
+ "ug = 2583.6\n",
+ "ufg = 1822;\n",
+ "# Initial anf final mass\n",
+ "Vis = 5.\n",
+ "Viw = 5.;\n",
+ "Vfs = 6.\n",
+ "Vfw = 4.\n",
+ "\n",
+ "# Calculation\n",
+ "ms = ((Viw/vf)+(Vis/vg)) - ((Vfw/vf)+(Vfs/vg)) ;\n",
+ "U1 = ((Viw*uf/vf)+(Vis*ug/vg));\n",
+ "Uf = ((Vfw*uf/vf)+(Vfs*ug/vg));\n",
+ "Q = Uf-U1+(ms*hg)\n",
+ "\n",
+ "# Results\n",
+ "print \"The heat transfer during the process is\",round(Q/1000,3),\"kJ\"\n",
+ "\n",
+ "# It seems book answer is wrong. please check using calculator."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transfer during the process is 1788.192 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.12 Page No : 303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "m = 0.02\n",
+ "d = 0.28\n",
+ "l = 0.305;\n",
+ "P1 = 0.6e06\n",
+ "P2 = 0.12e06;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "# At 0.6MPa, t = 200 degree\n",
+ "v1 = 0.352\n",
+ "h1 = 2850.1;\n",
+ "V1 = m*v1;\n",
+ "Vd = (math.pi/4)*d**2*l;\n",
+ "V2 = V1+Vd ; \n",
+ "n = math.log(P1/P2)/math.log(V2/V1);\n",
+ "W12 = ((P1*V1)-(P2*V2))/(n-1);\n",
+ "\n",
+ "print \"The value of n is %.2f\"%n\n",
+ "print \"The work done by the steam is %.1f kJ\"%(W12/1000)\n",
+ "\n",
+ "v2 = V2/m;\n",
+ "vf = 0.0010476\n",
+ "vfg = 1.4271;\n",
+ "x2 = (v2-vf)/vfg ;\n",
+ "# At 0.12MPa\n",
+ "uf = 439.3\n",
+ "ug = 2512.0;\n",
+ "u2 = uf + (x2*(ug-uf));\n",
+ "u1 = h1-(P1*v1*1e-03);\n",
+ "Q12 = m*(u2-u1)+ (W12/1000);\n",
+ "\n",
+ "print \"The heat transfer is %.3f kJ\"%Q12\n",
+ "\n",
+ "# rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of n is 1.24\n",
+ "The work done by the steam is 4.7 kJ\n",
+ "The heat transfer is -1.801 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.13 Page No : 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "x1 = 1.\n",
+ "x2 = 0.8;\n",
+ "# at 0.2MPa\n",
+ "vg = 0.8857\n",
+ "v1 = vg\n",
+ "hg = 2706.7\n",
+ "h1 = hg; \n",
+ "m1 = 5.\n",
+ "V1 = m1*v1;\n",
+ "\n",
+ "# Calculation\n",
+ "# at 0.5MPa\n",
+ "m2 = 10; \n",
+ "hf = 640.23\n",
+ "hfg = 2108.5\n",
+ "vf = 0.001093\n",
+ "vfg = 0.3749;\n",
+ "v2 = vf+(x2*vfg);\n",
+ "V2 = m2*v2;\n",
+ "\n",
+ "Vm = V1+V2;\n",
+ "m = m1+m2;\n",
+ "vm = Vm/m;\n",
+ "u1 = h1;\n",
+ "h2 = hf+(x2*hfg);\n",
+ "u2 = h2;\n",
+ "m3 = m;\n",
+ "h3 = ((m1*u1)+(m2*u2))/m3;\n",
+ "u3 = h3; \n",
+ "v3 = vm;\n",
+ "# From mollier diagram\n",
+ "x3 = 0.870\n",
+ "p3 = 3.5\n",
+ "s3 = 6.29;\n",
+ "s1 = 7.1271;\n",
+ "sf = 1.8607\n",
+ "sfg = 4.9606;\n",
+ "s2 = sf+(x2*sfg);\n",
+ "E = m3*s3-((m1*s1)+(m2*s2));\n",
+ "\n",
+ "# Results\n",
+ "print \"Final pressure is \",p3,\"bar\"\n",
+ "print \"Steam quality is\",x3\n",
+ "print \"Entropy change during the process is %.2f kJ/K\"%E\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure is 3.5 bar\n",
+ "Steam quality is 0.87\n",
+ "Entropy change during the process is 0.42 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.14 Page No : 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# At 6 MPa, 400 degree\n",
+ "h1 = 3177.2\n",
+ "s1 = 6.5408;\n",
+ "\n",
+ "# At 20 degree\n",
+ "h0= 83.96\n",
+ "s0 = 0.2966;\n",
+ "T0 = 293.\n",
+ "\n",
+ "# Calculation\n",
+ "f1 = (h1-h0)-T0*(s1-s0);\n",
+ "# By interpolation \n",
+ "t2 = 273. + 393;\n",
+ "s2 = 6.63;\n",
+ "h2 = h1;\n",
+ "f2 = (h2-h0)-T0*(s2-s0);\n",
+ "df = f1-f2;\n",
+ "x3s = (s2-1.5301)/(7.1271-1.5301);\n",
+ "h3s = 504.7+(x3s*2201.9);\n",
+ "eis = 0.82;\n",
+ "h3 = h2-eis*(h1-h3s);\n",
+ "x3 = (h3-504.7)/2201.7;\n",
+ "s3 = 1.5301+(x3*5.597);\n",
+ "f3 = (h3-h0)-T0*(s3-s0);\n",
+ "\n",
+ "# Results\n",
+ "print \"The availability of the steam before the throttle valve %.1f kJ/Kg\"%f1\n",
+ "print \"The availability of the steam after the throttle valve %.2f Kj/Kg\"%f2\n",
+ "print \"The availability of the steam at the turbine exhaust %.2f kJ/Kg\"%f3\n",
+ "print \"The specific work output from the turbine is %.1f kJ/Kg\"%(h2-h3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The availability of the steam before the throttle valve 1263.7 kJ/Kg\n",
+ "The availability of the steam after the throttle valve 1237.55 Kj/Kg\n",
+ "The availability of the steam at the turbine exhaust 601.85 kJ/Kg\n",
+ "The specific work output from the turbine is 546.3 kJ/Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.15 Page No : 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# At 25 bar, 350 degree\n",
+ "h1 = 3125.87\n",
+ "s1 = 6.8481;\n",
+ "# 30 degree\n",
+ "h0 = 125.79\n",
+ "s0 = 0.4369;\n",
+ "h2 = 2865.5\n",
+ "s2 = 7.3115;\n",
+ "# At 0.2 bar 0.95 dry\n",
+ "hf = 251.4\n",
+ "hfg = 2358.3;\n",
+ "sf = 0.8320\n",
+ "sg = 7.0765;\n",
+ "\n",
+ "# Calculation\n",
+ "h3 = hf+0.92*hfg;\n",
+ "s3 = sf+(0.92*sg);\n",
+ "# Part (a)\n",
+ "T0 = 303;\n",
+ "f1 = (h1-h0)-(T0*(s1-s0));\n",
+ "f2 = (h2-h0)-(T0*(s2-s0));\n",
+ "f3 = (h3-h0)-(T0*(s3-s0));\n",
+ "\n",
+ "# Results\n",
+ "print \"Availability of steam entering at state 1 is %.2f kJ/Kg\"%f1\n",
+ "print \"Availability of steam leaving at state 2 is %.2f kJ/Kg\"%f2\n",
+ "print \"Availability of steam leaving at state 3 is %.2f kJ/Kg\"%f3\n",
+ "\n",
+ "# Part (b)\n",
+ "m2m1 = 0.25\n",
+ "m3m1 = 0.75;\n",
+ "Wrev = f1-(m2m1*f2)-(m3m1*f3);\n",
+ "print \"Maximum work is %.2f kJ/Kg\"%Wrev\n",
+ "\n",
+ "# Part (c)\n",
+ "w1 = 600.\n",
+ "w2 = 150.\n",
+ "w3 = 450.;\n",
+ "Q = -10.*3600; \t\t\t# For 1 hour\n",
+ "I = T0*(w2*s2+w3*s3-w1*s1)-Q;\n",
+ "print \"Irreversibility is %.2f MJ/h\"%(I/1000)\n",
+ "\n",
+ "# rounding off error. please check using calcultor."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Availability of steam entering at state 1 is 1057.49 kJ/Kg\n",
+ "Availability of steam leaving at state 2 is 656.71 kJ/Kg\n",
+ "Availability of steam leaving at state 3 is 202.89 kJ/Kg\n",
+ "Maximum work is 741.15 kJ/Kg\n",
+ "Irreversibility is 124.46 MJ/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.16 Page No : 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# At dead state of 1 bar, 300K\n",
+ "u0 = 113.1\n",
+ "h0 = 113.2;\n",
+ "v0 = 0.001005\n",
+ "s0 = 0.0395;\n",
+ "T0 = 300.\n",
+ "P0 = 100.;\n",
+ "\n",
+ "# Calculation and Results\n",
+ "K = h0-(T0*s0);\n",
+ "# Part (a)\n",
+ "u = 376.9\n",
+ "h = 377; \n",
+ "v = 0.001035\n",
+ "s = 1.193;\n",
+ "m = 3 \n",
+ "a = h - 300 * s\n",
+ "fi = m*(a - (-5.3)) \t\t\t# As P = P0 = 1 bar\n",
+ "print \"Energy of system in Part (a) is\",fi,\"kJ\"\n",
+ "\n",
+ "# Part (b)\n",
+ "u = 3099.8\n",
+ "h = 3446.3\n",
+ "v = 0.08637\n",
+ "s = 7.090; \t\t\t# At P = 4 Mpa, t = 500 degree\n",
+ "m = 0.2;\n",
+ "b = u +100* v - 300 * s\n",
+ "fib = m*(b-(-5.3));\n",
+ "print \"Energy of system in Part (b) is\",fib,\"kJ\"\n",
+ "\n",
+ "# Part (c)\n",
+ "m = 0.4;\n",
+ "x = 0.85; \t\t\t# Quality\n",
+ "u = 192+x*2245;\n",
+ "h = 192+x*2392;\n",
+ "s = 0.649+x*7.499;\n",
+ "v = 0.001010+x*14.67;\n",
+ "c = round(u + 100*v - 300*s,1)\n",
+ "fic = m*(c - (-5.3));\n",
+ "print \"Energy of system in Part (c) is\",round(fic,1),\"kJ\"\n",
+ "\n",
+ "# Part (d)\n",
+ "m = 3;\n",
+ "h = -354.1; s = -1.298; \t\t\t# at 1000kPa, -10 degree\n",
+ "fid = m*(h-h0-T0*(s-s0))# ((h-h0)-T0*(s-s0));\n",
+ "print \"Energy of system in Part (d) is\",fid,\"kJ\"\n",
+ "\n",
+ "# book answer is wrong. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy of system in Part (a) is 73.2 kJ\n",
+ "Energy of system in Part (b) is 197.3474 kJ\n",
+ "Energy of system in Part (c) is 498.3 kJ\n",
+ "Energy of system in Part (d) is -198.15 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.17 Page No : 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "# Given\n",
+ "th1 = 90.+273;\n",
+ "tc1 = 25.+273;\n",
+ "tc2 = 50.+273;\n",
+ "mc = 1.\n",
+ "T0 = 300.;\n",
+ "th2p = 60.+273; \t\t\t# Parallel\n",
+ "th2c = 35.+273; \t\t\t# Counter\n",
+ "\n",
+ "# Calculation\n",
+ "mhp = (tc2-tc1)/(th1-th2p); \t\t\t# Parallel\n",
+ "mhc = (tc2-tc1)/(th1-th2c); \t\t\t# Counter\n",
+ "h0 = 113.2\n",
+ "s0 = 0.395\n",
+ "T0 = 300; \t\t\t# At 300 K\n",
+ "h1 = 376.92\n",
+ "s1 = 1.1925; \t\t\t# At 90 degree\n",
+ "af1 = mhp*((h1-h0)-T0*(s1-s0));\n",
+ "\n",
+ "# Parallel Flow\n",
+ "h2 = 251.13; s2 =0.8312; \t\t\t# At 60 degree\n",
+ "h3 = 104.89; s3 = 0.3674; \t\t\t# At 25 degree\n",
+ "h4 = 209.33; s4 = 0.7038; \t\t\t# At 50 degree\n",
+ "REG = mc*((h4-h3)-T0*(s4-s3)); \t\t\t# Rate of energy gain\n",
+ "REL = mhp*((h1-h2)-T0*(s1-s2)); \t\t\t# Rate of energy loss\n",
+ "Ia = REL-REG; \t\t\t# Energy destruction\n",
+ "n2a = REG/REL; \t\t\t# Second law efficiency\n",
+ "\n",
+ "# Results\n",
+ "print (\"In parallel flow\")\n",
+ "print \"The rate of irreversibility is\",Ia,\"kW\"\n",
+ "print \"The Second law efficiency is %.2f %%\"%(n2a*100)\n",
+ "\n",
+ "# Counter flow\n",
+ "h2 = 146.68\n",
+ "s2 = 0.5053; \t\t\t# At 35 degree\n",
+ "REG_b = REG; \t\t\t# Rate of energy gain by hot water is same in both flows\n",
+ "REL_b = mhc*((h1-h2)-T0*(s1-s2));\n",
+ "Ib = REL_b-REG_b; \t\t\t# Energy destruction\n",
+ "n2b = REG_b/REL_b; \t\t\t# Second law efficiency\n",
+ "\n",
+ "print (\"In Counter flow\")\n",
+ "print \"The rate of irreversibility is %.2f kW\"%Ib\n",
+ "print \"The Second law efficiency is %.2f %%\"%(n2b*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In parallel flow\n",
+ "The rate of irreversibility is 10.98 kW\n",
+ "The Second law efficiency is 24.28 %\n",
+ "In Counter flow\n",
+ "The rate of irreversibility is 7.43 kW\n",
+ "The Second law efficiency is 32.16 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.18 Page No : 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 50 ; \t\t\t# in kg/h\n",
+ "Th = 23.+273; \t\t\t# Home temperature\n",
+ "\n",
+ "# State 1\n",
+ "T1 = 150.+273;\n",
+ "h1 = 2746.4;\n",
+ "s1 = 6.8387;\n",
+ "\n",
+ "# State 2\n",
+ "h2 = 419.0;\n",
+ "s2 = 1.3071;\n",
+ "T0 = 318;\n",
+ "\n",
+ "# Calculation\n",
+ "b1 = h1-(T0*s1);\n",
+ "b2 = h2-(T0*s2);\n",
+ "Q_max = m*(b1-b2)/(T0/Th-1);\n",
+ "\n",
+ "# Results\n",
+ "print \"The maximum cooling rate is %.0f kW\"%(Q_max/3600)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum cooling rate is 106 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Thermodynamics/screenshots/ch1.png b/Engineering_Thermodynamics/screenshots/ch1.png
new file mode 100755
index 00000000..d65e8e21
--- /dev/null
+++ b/Engineering_Thermodynamics/screenshots/ch1.png
Binary files differ
diff --git a/Engineering_Thermodynamics/screenshots/ch16.png b/Engineering_Thermodynamics/screenshots/ch16.png
new file mode 100755
index 00000000..bff877c7
--- /dev/null
+++ b/Engineering_Thermodynamics/screenshots/ch16.png
Binary files differ
diff --git a/Engineering_Thermodynamics/screenshots/ch9.png b/Engineering_Thermodynamics/screenshots/ch9.png
new file mode 100755
index 00000000..33917721
--- /dev/null
+++ b/Engineering_Thermodynamics/screenshots/ch9.png
Binary files differ
diff --git a/Fluid_Mechanics/Chapter1.ipynb b/Fluid_Mechanics/Chapter1.ipynb
deleted file mode 100755
index 2869f384..00000000
--- a/Fluid_Mechanics/Chapter1.ipynb
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:5a200234453d213b93dc5d138f72ecdaaca8b6177244c9440288df8fe014829f"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 1 : Fluid Properties"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.1 Page no 8"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "Mw = 29.0 # Molecular weight of air\n",
- "\n",
- "R = 8323/Mw # Universal gas constant\n",
- "\n",
- "T = 273 + 20 # temperature in K\n",
- "\n",
- "p = 50*144*47.88 # Pressure in N/m**2\n",
- "\n",
- "\n",
- "rho = p/(R*T) # from the state law\n",
- "\n",
- "print \"Desnity of air at 20 deg C and 50 psia = \",round(rho,2),\"kg/m**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Desnity of air at 20 deg C and 50 psia = 4.1 kg/m**3"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.2 Page no 12"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "dP = 10**6 # Pressure drop in N/m**2\n",
- "\n",
- "V = 1 # Volume in m**3\n",
- "\n",
- "bta = 2.2*10**9 # Bulk modulus of elasticity in N/m**2\n",
- "\n",
- "\n",
- "dV = -dP*V/bta # Change in volume in m**3\n",
- "\n",
- "v = -dV*100\n",
- "\n",
- "print \"Reduction in volume = \",round(v,3),\"%\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Reduction in volume = 0.045 %\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.3 Page no 13"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "bta1 = 2.28*10**9 # Bulk modulus of elasticity at 20 deg C and 103.4 N/m**2\n",
- "\n",
- "bta2 = 2.94*10**9 # Bulk modulus of elasticity at 20 deg C and 1034 N/m**2\n",
- "\n",
- "p1 = 103.4 # Pressure in N/m**2\n",
- "\n",
- "p2 = 1034 # Pressure in N/m**2\n",
- "\n",
- "\n",
- "bavg = (bta1+bta2)/2 # bulk modulus average in N/m**2\n",
- "\n",
- "dP = p2-p1 # pressure drop in N/m**2\n",
- "\n",
- "V = 10 # Volume in m**3\n",
- "\n",
- "dV = dP*V/bavg # Change in volume in m**3\n",
- "\n",
- "v = -dV\n",
- "\n",
- "print \"Volume reduction = \",round(v,8),\"m**3\"\n",
- "\n",
- "print \"Negative sign indicates the volume has reduced\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Volume reduction = -3.57e-06 m**3\n",
- "Negative sign indicates the volume has reduced"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.4 Page no 14"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "patm = 14.6 # Atmospheric pressure in psia\n",
- "\n",
- "p1 = 100 # gauge pressure at point 1 in psia\n",
- "\n",
- "p2 = 102 # gauge pressure at point 2 in psia\n",
- "\n",
- "V = 1 # volume in m**3\n",
- "\n",
- "p = p1+patm # absolute pressure in psia\n",
- "\n",
- "b = p # for isothermal air\n",
- "\n",
- "p1 = p2+patm # absolute pressure in psia\n",
- "\n",
- "b1 = p1 # for isothermal air\n",
- "\n",
- "dP = p1 - p # change in pressure\n",
- "\n",
- "bavg = (b1+b)/2 # average bulk modulus of elasticity in N/m**2\n",
- "\n",
- "dV = dP*V/bavg\n",
- "\n",
- "v = -dV\n",
- "\n",
- "print \"An increase in pressure by 2 psia will result in a volume reduction of\",round(v,4),\"ft**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "An increase in pressure by 2 psia will result in a volume reduction of -0.0173 ft**3\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.5 Page no 14"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "k = 1.4 # gas constant\n",
- "\n",
- "R = 1716 # Universal gas constant in ft.lb/slug^oR\n",
- "\n",
- "T = 68+460 # temperature in *oR\n",
- "\n",
- "\n",
- "c = sqrt(k*R*T)\n",
- "\n",
- "print \"Sonic velocity in air at 68 deg F = \",round(c,0),\"ft/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Sonic velocity in air at 68 deg F = 1126.0 ft/s\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.6 Page no 19"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "d = 0.05 # diameter of cylinder 1 in m\n",
- "\n",
- "l = 0.2 # length of the cylinder in meters\n",
- "\n",
- "d1 = 0.052 # diameter of cylinder in m\n",
- "\n",
- "mu = 0.09 # Viscosity of oil in Ns/m**2\n",
- "\n",
- "U = 1 # velocity in m/s\n",
- "\n",
- "Y = (d1-d)/2 # clearance between the two cylinders in m\n",
- "\n",
- "A = pi*l*d # area in m**2\n",
- "\n",
- "\n",
- "tau = mu*U/Y # Shear stress in N/m**2\n",
- "\n",
- "F = tau*A # Shear foce in N\n",
- "\n",
- "print \"Force required to move the piston by 1 m/s = \",round(F,2),\"N\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Force required to move the piston by 1 m/s = 2.83 N\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.7 Page no 20"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from sympy import *\n",
- "\n",
- "\n",
- "mu = 1.005*10**-3 # Viscosity of water in Ns/m**2\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "Y = 0.01 # Distance between the walls\n",
- "\n",
- "Y1 = Y*100\n",
- "\n",
- "print \" (a) Distance between the walls = \",round(Y1,1),\"cm\"\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "y = Symbol('y')\n",
- "\n",
- "u = 10*(0.01*y-y**2)\n",
- "\n",
- "uprime = u.diff(y)\n",
- "\n",
- "y = 0\n",
- "\n",
- "U = uprime\n",
- "\n",
- "\n",
- "U1 = 0.01 # from U\n",
- "\n",
- "tau = mu*10*U1 # shear stress in N/m**2\n",
- "\n",
- "print \" (b) Shear stress = \",round(tau,9),\"N/m**2\"\n",
- "\n",
- "\n",
- "\n",
- "tau1 = mu*10*(0.01-2*20*10**-6) # using the equation of U and y = 20*10**-6 calc shear stress in N/m**2\n",
- "\n",
- "print \" (c) Shear Stress at 20 um from the plate = \",round(tau1,9),\"N/m**2\"\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "y1 = 0.01/2 # shear stress location\n",
- "\n",
- "print \" (d) Location of maximum velocity = \",round(y1,3),\"m\"\n",
- "\n",
- "print \"Above calculation indicates that the zero shear stress and the maximum velocity occurs at the same location which is half way between the plate\",\"\\n\",\"This also is in conformity with the fact that , in a flowing fluid, the velocity is maximum where shear stress is zero\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " (a) Distance between the walls = 1.0 cm\n",
- " (b) Shear stress = 0.0001005 N/m**2\n",
- " (c) Shear Stress at 20 um from the plate = 0.000100098 N/m**2\n",
- " (d) Location of maximum velocity = 0.005 m\n",
- "Above calculation indicates that the zero shear stress and the maximum velocity occurs at the same location which is half way between the plate \n",
- "This also is in conformity with the fact that , in a flowing fluid, the velocity is maximum where shear stress is zero\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.8 Page 24"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import *\n",
- "\n",
- "d = 0.1 # diameter of shaft in m\n",
- "\n",
- "l = 0.2 # length of the shaft in m\n",
- "\n",
- "t = 0.00002 # thickness in m\n",
- "\n",
- "N = 30 # RPM of shaft\n",
- "\n",
- "U = pi*d*30/60 # velocity in m/s\n",
- "\n",
- "r1 = d/2\n",
- "\n",
- "r2 = r1 + t # radius of bearing in m\n",
- "\n",
- "mu = 0.44 # Viscosity of SAE-30 oil in Ns/m**2\n",
- "\n",
- "\n",
- "\n",
- "F = 2*pi*r1*l*mu*U/t\n",
- "\n",
- "T =F*r1\n",
- "\n",
- "print \" (a) For linear distribution of velocity , shaft torque = \",round(T,2),\"m.N\"\n",
- "\n",
- "\n",
- "F1 = 2*pi*l*mu*U/log(r2/r1)\n",
- "\n",
- "\n",
- "T1 =F1*r1\n",
- "\n",
- "print \" (b) For non-linear distribution of velocity , shaft torque = \",round(T1,2),\"m.N\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " (a) For linear distribution of velocity , shaft torque = 10.86 m.N\n",
- " (b) For non-linear distribution of velocity , shaft torque = 10.86 m.N\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.9 Page 26"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import *\n",
- "\n",
- "mu = 0.44 # viscosity of the oil in Ns/m**2\n",
- "\n",
- "N = 300 # RPM of the shaft\n",
- "\n",
- "t = 0.00025 # thickness of the film oil in m\n",
- "\n",
- "r1 = 0.15 # radius in m\n",
- "\n",
- "r2 = 0.1 # radius in m\n",
- "\n",
- "T = pi**2*mu*N*(r1**4-r2**4)/(60*t)\n",
- "\n",
- "P = T*2*pi*N/60\n",
- "\n",
- "print \"Watts of energy lost in overcoming friction at 300 RPM = \",round(P,0),\"Watts\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Watts of energy lost in overcoming friction at 300 RPM = 1108.0 Watts\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.10 Page no 28"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "d = 0.01 # diameter in m\n",
- "\n",
- "sigma = 0.073 # surface tension in N/m\n",
- "\n",
- "\n",
- "dP = 4*sigma/d # pressure excessive\n",
- "\n",
- "print \"Excessive pressure inside the droplet = \",round(dP,2),\"N\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Excessive pressure inside the droplet = 29.2 N"
- ]
- }
- ],
- "prompt_number": 42
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 1.11 Page no 31"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "sigma = 0.022 # surface tension in N/m\n",
- "\n",
- "gma = 9789 # specific weight\n",
- "\n",
- "S = 0.79 # specific gravity\n",
- "\n",
- "d = 0.002 # diameter in m\n",
- "\n",
- "\n",
- "\n",
- "h =4*sigma*1000/(gma*S*d) # capillary height in m\n",
- "\n",
- "print \"The alcohol will rise to a height of\",round(h,1),\"mm in the glass tube\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The alcohol will rise to a height of 5.7 mm in the glass tube"
- ]
- }
- ],
- "prompt_number": 50
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter10.ipynb b/Fluid_Mechanics/Chapter10.ipynb
deleted file mode 100755
index 679a7dd2..00000000
--- a/Fluid_Mechanics/Chapter10.ipynb
+++ /dev/null
@@ -1,426 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:3b6a6304ae5564c5b042191e18c023d5d141ad8d64a979c29e54da09ebc8a32e"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 10 : Open Channel Flow\n",
- " "
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 10.1 Page no 363"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "b = 3 # base of the channel\n",
- "\n",
- "z = 0.5 # slope of the channel\n",
- "\n",
- "y = 2 # depth of the channel\n",
- "\n",
- "\n",
- "T = b + 2*z*y\n",
- "\n",
- "print \"Top width =\",round(T,0),\"m\"\n",
- "\n",
- "A = (b+z*y)*y\n",
- "\n",
- "print \"Area of flow =\",round(A,0),\"m**2\"\n",
- "\n",
- "P = b + 2*y*sqrt(1+z**2)\n",
- "\n",
- "print \"Wetted perimeter =\",round(P,3),\"m\"\n",
- "\n",
- "R = A/P\n",
- "\n",
- "print \"Hydraulic radius =\",round(R,2),\"m\"\n",
- "\n",
- "D = A/T\n",
- "\n",
- "print \"Hydraulic depth =\",round(D,2),\"m\"\n",
- "\n",
- "Z = A*sqrt(D)\n",
- "\n",
- "print \"Secton Factor =\",round(Z,2),\"m**2\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Top width = 5.0 m\n",
- "Area of flow = 8.0 m**2\n",
- "Wetted perimeter = 7.472 m\n",
- "Hydraulic radius = 1.07 m\n",
- "Hydraulic depth = 1.6 m\n",
- "Secton Factor = 10.12 m**2\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 10.2 Page no 366"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "z = 1.0 # slide slope\n",
- "\n",
- "b = 3.0 # base width\n",
- "\n",
- "y = 1.5 # depth\n",
- "\n",
- "S = 0.0009\n",
- "\n",
- "n = 0.012 # for concrete\n",
- "\n",
- "\n",
- "A = (b+z*y)*y\n",
- "\n",
- "P = P = b + 2*y*sqrt(1+z**2)\n",
- "\n",
- "R = A/P\n",
- "\n",
- "\n",
- "Q = A*(1/n)*(R**(2/3)*S**(1/2))\n",
- "\n",
- "print \"Discharge for the channel =\",round(Q,2),\"m**3/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge for the channel = 16.1 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 10.4 Page no 373"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from __future__ import division\n",
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "z = 1\n",
- "\n",
- "Q = 10000/60 # discharge of water in ft**#/s\n",
- "\n",
- "\n",
- "y = (Q/(1.828*2.25*sqrt(0.5)))**(2/5)\n",
- "\n",
- "print \"depth(y) =\",round(y,2),\"ft\"\n",
- "\n",
- "b = 0.828*y\n",
- "\n",
- "print \"base width(b) =\",round(b,2),\"ft\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "depth(y) = 5.05 ft\n",
- "base width(b) = 4.18 ft\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 10.5 Page no 378"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "y = 2.5 # depth\n",
- "\n",
- "V = 8 # velocity in m/s\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "Yc = (20**2/g)**(1/3)\n",
- "\n",
- "print \"Critical depth =\",round(Yc,2),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Critical depth = 3.44 m\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 10.6 Page no 380"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "Q = 15 # flow rate in m**3/s\n",
- "\n",
- "w = 4.0 # bottom width\n",
- "\n",
- "S = 0.0008 # bed slope\n",
- "\n",
- "n = 0.025 # manning constant\n",
- "\n",
- "z = 0.5 # slope\n",
- "\n",
- "\n",
- "\n",
- "y = 2.22 # we take the value of y as 2.2 m\n",
- "\n",
- "Q = ((4+0.5*y)*(y/(n))*(((4+0.5*y)*y)/(4+2.236*y))**(0.667)*(S)**(0.5))\n",
- "\n",
- "print \"a )Normal Depth =\",round(y,2),\"m\"\n",
- "\n",
- "A = (4+0.5*y)*y\n",
- "\n",
- "T = (w+2*z*y)\n",
- "\n",
- "D = A/T\n",
- "\n",
- "V = (Q/A)\n",
- "\n",
- "F =V/(sqrt(9.81*D)) \n",
- "\n",
- "print \"b )F = \",round(F,2),\" Since the Froude number is less than 1, the flow is subcritical\"\n",
- "\n",
- "\n",
- "yc = 1.08\n",
- "\n",
- "Q1 = (4+z*yc)*yc*sqrt((9.81*(4+0.5*yc)*yc)/(4+2*z*yc)) \n",
- "\n",
- "print \"c )Critical depth is = \",round(yc,2),\"m\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "a )Normal Depth = 2.22 m\n",
- "b )F = 0.31 Since the Froude number is less than 1, the flow is subcritical\n",
- "c )Critical depth is = 1.08 m\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "\n",
- "Example 10.8 Page no 390"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "b = 60 # base width in ft\n",
- "\n",
- "y1 = 2.5 # base depth in ft\n",
- "\n",
- "Q = 2500 # discharge in ft**3/s\n",
- "\n",
- "g = 32.2\n",
- "\n",
- "\n",
- "V1 = Q/(b*y1)\n",
- "\n",
- "F1 = V1/sqrt(g*y1)\n",
- "\n",
- "y2 = y1*0.5*(sqrt(1+8*F1**2)-1)\n",
- "\n",
- "V2 = Q/(b*y2)\n",
- "\n",
- "print \"Since F1 =\",round(F1,2),\" It is a weak jump\"\n",
- "\n",
- "L = y2*4.25\n",
- "\n",
- "print \"Length of the jump =\",round(L,0),\"ft\"\n",
- "\n",
- "E1 = y1+(V1**2/(2*g))\n",
- "\n",
- "E2 = y2+(V2**2/(2*g))\n",
- "\n",
- "El = E1-E2\n",
- "\n",
- "Te = El*62.4*Q/543\n",
- "\n",
- "print \"Total energy loss =\",round(Te,2),\"HP\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Since F1 = 1.86 It is a weak jump\n",
- "Length of the jump = 23.0 ft\n",
- "Total energy loss = 133.7 HP\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 10.12 Page no 409"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 6 # depth of the channel\n",
- "\n",
- "w= 12 # width of the channel\n",
- "\n",
- "h = 1.0 # height of the channel\n",
- "\n",
- "p = 9 # pressure drop in m\n",
- "\n",
- "g = 32.2\n",
- "\n",
- "\n",
- "y2 = y1 - h - 0.75\n",
- "\n",
- "V1 = sqrt(2*g*0.75/((1.41)**2-1))\n",
- "\n",
- "Q = w*b*V1/10\n",
- "\n",
- "print \"Discharge =\",round(Q,0),\"cfs\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge = 503.0 cfs\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter11.ipynb b/Fluid_Mechanics/Chapter11.ipynb
deleted file mode 100755
index 618f66c5..00000000
--- a/Fluid_Mechanics/Chapter11.ipynb
+++ /dev/null
@@ -1,312 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:2f6bc3a0f00ca48f89200f1a14edc0c65849595040c83c5100245e53f0cc525b"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter : Compressible Flow"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 11.1 Page no 420"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "T1 = 273 + 15 # temperature in K\n",
- "\n",
- "T2 = 273 + 90 # temperature in K\n",
- "\n",
- "Cp = 0.24 # cp for air in kcal/kgK\n",
- "\n",
- "\n",
- "dh = Cp*(T2-T1) # enthalpy per kg of air\n",
- "\n",
- "H = 10*dh # total enthallpy of 10 kg air\n",
- "\n",
- "print \"Total change in enthalpy for 10 kg air = \",round(H,0),\"kcal\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total change in enthalpy for 10 kg air = 180.0 kcal\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 11.2 Page no 420"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "T1 = 273 + 15 # temperature in K\n",
- "\n",
- "T2 = 273 + 90 # temperature in K\n",
- "\n",
- "P1 = 40 + 101.3 # pressure in abs\n",
- "\n",
- "P2 = 360 + 101.3 # presure in abs\n",
- "\n",
- "Cv = 0.171 # Specific volume Coefficient of air\n",
- "\n",
- "k = 1.4 # gas constant\n",
- "\n",
- "\n",
- "dS = Cv*log((T2/T1)**k*(P2/P1)**(1-k))\n",
- "\n",
- "S = 10*dS\n",
- "\n",
- "print \"Total change in enthalpy of 10 Kg of air =\",round(S,3),\"kcal/K\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total change in enthalpy of 10 Kg of air = -0.255 kcal/K\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 11.3 Page no 421"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "P1 = 10 # pressure in psia\n",
- "\n",
- "P2 = 30 # pressure in psia\n",
- "\n",
- "T1 = 460+110 # temperature in R\n",
- "\n",
- "k =1.4 # gas constant\n",
- "\n",
- "T2 = T1*(P2/P1)**((k-1)/k)\n",
- "\n",
- "t2 = T2-460 # final temperature of air\n",
- "\n",
- "print \"Final temperature if air = \",round(t2,1),\"F\"\n",
- "\n",
- "Cv = 0.157 # coefficient of air \n",
- "\n",
- "W = Cv*(T2-T1) # work done per unit mass of oxygen\n",
- "\n",
- "Tw = 10*W # total work done on 10 slugs\n",
- "\n",
- "print \"Total work done on 10 slugs = \",round(Tw,0),\"Btu\" \n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Final temperature if air = 320.2 F\n",
- "Total work done on 10 slugs = 330.0 Btu\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 11.4 Page no 426"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "\n",
- "S =1 # specific gravity\n",
- "\n",
- "rho = S*1000 # density in kg/m**3\n",
- "\n",
- "bta = 2.2*10**9 # Bulk modulus of elasticity\n",
- "\n",
- "\n",
- "S1 =0.79 # specific gravity\n",
- "\n",
- "rho2 = S1*1000 # density in kg/m**3\n",
- "\n",
- "bta2 = 1.21*10**9 # Bulk modulus of elasticity\n",
- "\n",
- "\n",
- "k = 1.4 # gas constant for air\n",
- "\n",
- "R = 287 # universal gas constant\n",
- "\n",
- "T = 273+20 # temperature in K\n",
- "\n",
- "\n",
- "C1 = sqrt(bta/rho)\n",
- "\n",
- "C2 = sqrt(bta2/rho2)\n",
- "\n",
- "print \"Speed of sound in water =\",round(C1,0),\"m/s\"\n",
- "\n",
- "print \"Speed of sound in ethly alcohol =\",round(C2,0),\"m/s\"\n",
- "\n",
- "C3 = sqrt(k*R*T)\n",
- "\n",
- "print \"Speed of sound in Air =\",round(C3,0),\"m/s\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Speed of sound in water = 1483.0 m/s\n",
- "Speed of sound in ethly alcohol = 1238.0 m/s\n",
- "Speed of sound in Air = 343.0 m/s\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 11.5 Page no 431"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "P1 = 1.5 # pressure in psia\n",
- "\n",
- "T1 = 40 + 460 # temperature in R\n",
- "\n",
- "k = 1.4 # gas constant\n",
- "\n",
- "R = 1716 # universal gas constant in ft.lb/slug R\n",
- "\n",
- "V1 = 1500 # velocity in ft/s\n",
- "\n",
- "\n",
- "c1 = sqrt(k*R*T1)\n",
- "\n",
- "M1 = V1/c1\n",
- "\n",
- "M2 = sqrt((2+(k-1)*M1**2)/(2*k*M1**2-(k-1)))\n",
- "print M2\n",
- "\n",
- "P2 = P1*((1+k*M1**2)/(1+k*M2**2))\n",
- "\n",
- "print \"Pressure at downstream = \",round(P2,2),\"psia\"\n",
- "\n",
- "T2 = T1*((1+0.5*(k-1)*M1**2)/(1+0.5*(k-1)*M2**2))\n",
- "\n",
- "t2 = T2-460\n",
- "\n",
- "print \"Temperature at downstream = \",round(t2,1),\"F\"\n",
- "V2 = M2*sqrt(k*R*t2)\n",
- "\n",
- "print \"Velocity downstream = \",round(V2,2),\"ft/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0.753305702898\n",
- "Pressure at downstream = 3.03 psia\n",
- "Temperature at downstream = 157.3 F\n",
- "Velocity downstream = 463.02 ft/s\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter12.ipynb b/Fluid_Mechanics/Chapter12.ipynb
deleted file mode 100755
index 29dbb6ff..00000000
--- a/Fluid_Mechanics/Chapter12.ipynb
+++ /dev/null
@@ -1,342 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:b809e6889d9fdf33446744d4f1caf3aac2e77607182761aeef234f4a6cc34adc"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter : Turbomachines"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 12.1 Page no 443"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "Q = 0.25 # discharge from the pump in m**3/s\n",
- "\n",
- "gma= 0.8*9810 # specific weight in kg/m**3\n",
- "\n",
- "H=25 # elevation head in m\n",
- "\n",
- "T = 350 # Torque to drive the shaft in Nm\n",
- "\n",
- "N = 1800 # Speed in RPM\n",
- "\n",
- "w = 2*pi*N/60 # angular velocity\n",
- "\n",
- "\n",
- "Eff = gma*Q*H*100/(T*w) # efficiency\n",
- "\n",
- "print \"Efficiency of th pump =\",round(Eff,0),\"%\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Efficiency of th pump = 74.0 %\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 12.2 Page no 447"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 0.4 # diameter of the pump in m\n",
- "\n",
- "b = 0.03 # width in m\n",
- "\n",
- "theta = pi/3 # blade angle\n",
- "\n",
- "N = 1500 # speed in RPM\n",
- "\n",
- "Q = 0.4 # flow rate in m**3/s\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "w = 2*pi*N/60 # anggular velocity in rad/s\n",
- "\n",
- "u2 = (d/2)*w # blade velocity in m/s\n",
- "\n",
- "V2r = Q/(2*pi*(d/2)*b) # relative velocity in m/s\n",
- "\n",
- "print \"(a)\"\n",
- "\n",
- "print \"Radial velocity at exit =\",round(V2r,1),\"m/s\"\n",
- "\n",
- "V2t = u2 - V2r*(cos(theta)/sin(theta))\n",
- "\n",
- "print \"Whirl velocity = \",round(V2t,1),\"m/s\"\n",
- "\n",
- "v2 = V2r/sin(theta)\n",
- "\n",
- "print \"Relative velocity = \",round(v2,2),\"m/s\"\n",
- "\n",
- "V2 = sqrt(V2t**2+V2r**2)\n",
- "\n",
- "print \"Actual velocity =\",round(V2,2),\"m/s\"\n",
- "\n",
- "print \"(b)\"\n",
- "\n",
- "H = u2*V2t/g\n",
- "\n",
- "print\"Head added for no inlet whirl =\",round(H,0),\"m\"\n",
- "\n",
- "print \"(c)\"\n",
- "\n",
- "P = g*Q*H\n",
- "\n",
- "print \"Power required =\",round(P,1),\"kW\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- " (a)\n",
- "Radial velocity at exit = 10.6 m/s\n",
- "Whirl velocity = 25.3 m/s\n",
- "Relative velocity = 12.25 m/s\n",
- "Actual velocity = 27.43 m/s\n",
- "(b)\n",
- "Head added for no inlet whirl = 81.0 m\n",
- "(c)\n",
- "Power required = 317.8 kW\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 12.3 Page no 450"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 0.36 # diameter of the impeller of pump\n",
- "\n",
- "N = 1500 # Speed of impeller in RPM\n",
- "\n",
- "\n",
- "\n",
- "Q1 = 82 # discharge in l/s\n",
- "\n",
- "H1 = 17.5 # Head in m\n",
- "\n",
- "Eta = 0.8 # efficiency \n",
- "\n",
- "Q2 = 100 # discharge in l/s\n",
- "\n",
- "H2 = 20 # head in m\n",
- "\n",
- "\n",
- "D2 = 38.45\n",
- "\n",
- "print \"Impeller size =\",round(D2,2),\"cm\"\n",
- "\n",
- "N2 = 1500 \n",
- "\n",
- "print \"Speed of the pump =\",round(N2,0),\"RPM\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Impeller size = 38.45 cm\n",
- "Speed of the pump = 1500.0 RPM\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 12.4 Page no 454 "
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "q = 500 # discharge in cgm\n",
- "\n",
- "Q = 500/449 # discharge in ft**3/s\n",
- "\n",
- "D = 0.667 # diameter in ft\n",
- "\n",
- "A = pi*D**2/4\n",
- "\n",
- "V = Q/A # velocity in ft/s\n",
- "\n",
- "g = 32.2 # acceleration due to gravity in ft/s**2\n",
- "\n",
- "N = 1800 # speed in RPM\n",
- "\n",
- "\n",
- "\n",
- "nu = 1.134*10**-5 # viscosity in ft**2/s\n",
- "\n",
- "e = 0.00085 # epssilon in ft\n",
- "\n",
- "r = 0.001275 \n",
- "\n",
- "R = V*D/nu # reynolds no\n",
- "\n",
- "f = 0.022 # from moody's diagram\n",
- "\n",
- "Hl = V**2*(12.1+(f*224.9))/64.4\n",
- "\n",
- "hs = 119.4 + Hl\n",
- "\n",
- "print \"Discharge, Q = \",round(Q,2),\"ft**3/s\"\n",
- "print \"Dynamic head of the pump, H =\",round(hs,1),\"m\"\n",
- "\n",
- "Ns = N*sqrt(q)/(hs)**(3/4)\n",
- "\n",
- "print \"Specific speed of the pump, Ns =\",round(Ns,0),\"RPM\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge, Q = 1.11 ft**3/s\n",
- "Dynamic head of the pump, H = 122.1 m\n",
- "Specific speed of the pump, Ns = 1096.0 RPM\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 12.5 Page no 457"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "H = 60 # height in m\n",
- "\n",
- "Pb = 98*10**3 # barometric pressure in N/m**2\n",
- "\n",
- "Hl = 1 # head in m\n",
- "\n",
- "Pv = 1707 # vapour pressure \n",
- "\n",
- "sigma = 0.08\n",
- "\n",
- "w = 9810 # specific weight\n",
- "\n",
- "\n",
- "Npsh_m = sigma*60 # minimum NPSH\n",
- "\n",
- "Hsm = (Pb/w)-(Pv/w)-Npsh_m-Hl\n",
- "\n",
- "print \"Minimum value of static suction lift = \",round(Hsm,2),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Minimum value of static suction lift = 4.02 m\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter2.ipynb b/Fluid_Mechanics/Chapter2.ipynb
deleted file mode 100755
index ffb67770..00000000
--- a/Fluid_Mechanics/Chapter2.ipynb
+++ /dev/null
@@ -1,920 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:db7a54602402420ebc03881b70578491b776f0322d83cb209fd1e5faed86cdad"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Chapter 2 : Fluid Statics"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 2.1 Page no 44"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "d = 10 # diameter of hydraulic press in meters\n",
- "\n",
- "d1 = 1 # diameter of piston in meters\n",
- "\n",
- "W = 1000 # weight in Newtons\n",
- "\n",
- "Ap = math.pi*d1**2/4 # Area of piston in m**2\n",
- "\n",
- "Ar = math.pi*d**2/4 # Area of rram in m**2\n",
- "\n",
- "\n",
- "p = W/Ar # pressure to be supplied by the oil in N/cm**2\n",
- "\n",
- "F = p*Ap # Force applied on the piston\n",
- "\n",
- "print \"Using the pascal's law a weight of 1000N can be lifted by applying a force only of \",round(F,1),\"N\"\n",
- " "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Using the pascal's law a weight of 1000N can be lifted by applying a force only of 10.0 N\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.2 Page no 53"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "h = 1 # ocean depth below the surface in km\n",
- "\n",
- "gma = 10070 # Specific weight of sea water\n",
- "\n",
- "\n",
- "P =gma*h # Pressure in kN/m**2\n",
- "\n",
- "print \"Pressure = \",round(P),\"kN/m**2\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Pressure = 10070.0 kN/m**2\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.3 Page no 53"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "p1 = 150*10**3 # Pressure at point 1 in kN/m**2\n",
- "\n",
- "Sg = 0.85 # Specific gravity of oil\n",
- "\n",
- "h = 0.8 # height of oil 2 i tank in meters \n",
- "\n",
- "g = 9810 # specific gravity \n",
- "\n",
- "h1 = 2.0 # height of oil 3 in tank\n",
- "\n",
- "\n",
- "p2 = (p1 + Sg*h*g)\n",
- "\n",
- "p3 = (p2 + g*h1)/1000\n",
- "\n",
- "print \"Pressure at the bottom of the tank is\",round(p3,1),\"kN/m**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Pressure at the bottom of the tank is 176.3 kN/m**3"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.4 Page no 54"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "Po = 570 # mercury barometer reading in mm\n",
- "\n",
- "T = 273 -5 # temperature in K\n",
- "\n",
- "p = 750 # mercury barometer reading in mm\n",
- "\n",
- "n = 1.2345 # for polytropic atmosphere\n",
- "\n",
- "R =287 # univerasl gas constant in J/Kg-K\n",
- "\n",
- "g = 9.81 \n",
- "\n",
- "r = p/Po\n",
- "\n",
- "\n",
- "y = -(R*T/(g*0.19))*(1 - (r)**((n-1)/n))\n",
- "\n",
- "print \"Height of the mountain is\",round(y,0),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Height of the mountain is 2208.0 m\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.5 Page no 57"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "h1 = 500 # height in mm\n",
- "\n",
- "h2 = 950 # height in mm\n",
- "\n",
- "S1 = 1 # specific gravity fo water\n",
- "\n",
- "S2 = 1.5 # specific gravity of liquid 2\n",
- "\n",
- "w = 9810 # specific weight of water\n",
- "\n",
- "\n",
- "ha = ((h2*S2)-(h1*S1))/1000\n",
- "\n",
- "Pa = w*ha/1000 # Pressure in kPa\n",
- "\n",
- "print \"Pressure in the pipe = \",round(Pa,3),\"kPa\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Pressure in the pipe = 9.074 kPa\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.6 Page no 66"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from math import *\n",
- "\n",
- "d = 1 # diameter of the gate in m\n",
- "\n",
- "w = 9810 # specific weight in N/m**3\n",
- "\n",
- "A = pi*d**2/4 # area of the gate\n",
- "\n",
- "Ig = pi*d**4/64 # mamm moment of inertia\n",
- "\n",
- "theta = pi/2\n",
- "\n",
- "y1= 5+0.5\n",
- "\n",
- "\n",
- "F = w*round(A,3)*(y1) # the answer will come out to be different as they have used the value of Area as 0.78 \n",
- "\n",
- "\n",
- "h1 = y1 + (Ig*math.sin(theta)*math.sin(theta)/(A*y1))\n",
- "\n",
- "\n",
- "F1 = (F*(h1 - 5))/d\n",
- "\n",
- "print \"Magnitude of the force required to open the gate = \",round(F1,0),\"N\" \n",
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Magnitude of the force required to open the gate = 21659.0 N\n"
- ]
- }
- ],
- "prompt_number": 18
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.7 Page no 67"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "l =2 # length of the plate in m\n",
- "\n",
- "b =1 # width of the plate\n",
- "\n",
- "theta = pi/3\n",
- "\n",
- "h = 0.75 # depth of the plate\n",
- "\n",
- "w = 9810 # specific weight of water\n",
- "\n",
- "\n",
- "A = 1*2\n",
- "\n",
- "y1 = h + 1*sin(theta)\n",
- "\n",
- "F = w*A*y1/1000\n",
- "\n",
- "print \"(a) Total force = \",round(F,2),\"kN\"\n",
- "\n",
- "Ig = (b*l**3)/12\n",
- "\n",
- "h1 = y1 + (Ig*sin(theta)*sin(theta)/(2*y1))\n",
- "\n",
- "print \"(b) Position of center of pressure = \",round(h1,3),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Total force = 31.71 kN\n",
- "(b) Position of center of pressure = 1.616 m\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.8 Page no 68"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "d = 6 # diameter of the gate in ft\n",
- "\n",
- "A =pi*d**2/4 # area of the gate\n",
- "\n",
- "p1 = 600 # pressure on top in psia\n",
- "\n",
- "y1 = 10 +2 + 3*sin(pi/6)\n",
- "\n",
- "F = 62.4*A*y1\n",
- "\n",
- "F1 = p1*A\n",
- "\n",
- "\n",
- "Tf = F+F1\n",
- "\n",
- "print \"Total hydrostatic force =\",round(Tf,0),\"lbs\"\n",
- "\n",
- "Ig = pi*d**4/64\n",
- "\n",
- "h1 = y1 + ((Ig*sin(pi/6)*sin(pi/6))/(A*y1))\n",
- "\n",
- "H = ((F*h1)+(F1*y1))/Tf\n",
- "\n",
- "print \"point of location on the center plate = \",round(H,2),\"ft\"\n",
- "\n",
- "\n",
- "Hf = p1/62.4 # equivalent fluid height\n",
- "\n",
- "y2 = Hf+y1\n",
- "\n",
- "Tf1 = 62.4*A*y2\n",
- "\n",
- "h2 = y2 + ((Ig*sin(pi/6)*sin(pi/6))/(A*y2))\n",
- "\n",
- "H1 = y2-Hf\n",
- "\n",
- "print \" OR point of location on the center plate from method 2 = \",round(H1,2),\"ft\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total hydrostatic force = 40783.0 lbs\n",
- "point of location on the center plate = 13.52 ft\n",
- " OR point of location on the center plate from method 2 = 13.5 ft\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.10 Page no 74"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
- "\n",
- "\n",
- "R = 4 # radius of the gate in ft\n",
- "\n",
- "w = 1 # width of the gate in ft\n",
- "\n",
- "gma =62.4 # specific weight of water\n",
- "\n",
- "y1 = 4 # distance of center of the gate\n",
- "\n",
- "xv1 = 2 # distance in ft\n",
- "\n",
- "xv2 = 1.7 # distance in ft\n",
- "\n",
- "\n",
- "Fh = R*y1*gma\n",
- "\n",
- "Ig = w*R**3/12\n",
- "\n",
- "yh = y1 + (Ig/(R*y1))\n",
- "\n",
- "Fv1 = R*2*gma\n",
- "\n",
- "Fv2 = pi*R**2*gma/4\n",
- "\n",
- "Fv = Fv1 + Fv2\n",
- "\n",
- "Xv = (Fv1*xv1+Fv2*xv2)/(Fv)\n",
- "\n",
- "print \"Horizontal component acting on the plate = \",round(Fh,2),\"lbs\"\n",
- "\n",
- "print \"Vertical component acting on the plate = \",round(Fv,2),\"lbs\"\n",
- "\n",
- "print \"location of Xv =\",round(Xv,2),\"ft\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Horizontal component acting on the plate = 998.4 lbs\n",
- "Vertical component acting on the plate = 1283.34 lbs\n",
- "location of Xv = 1.82 ft\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.11 Page no 77"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "p = 50 # pressure in psia\n",
- "\n",
- "gma = 62.4 # specific weight in ft\n",
- "\n",
- "h1 = p*144/gma # equivalent height of water surface in ft\n",
- "\n",
- "R = 4 # radius of gate in ft\n",
- "\n",
- "w = 1 # width of the gate in ft\n",
- "\n",
- "A = R*w\n",
- "\n",
- "y1 = h1 + 2.5 + 2 # center of pressure\n",
- "\n",
- "xv1 = 2 # center of pressure1 for x direction force\n",
- "\n",
- "xv2 = 1.7 # center of pressure2 for x direction force\n",
- "\n",
- "\n",
- "Fh = gma*A*y1 # hiorizontal force\n",
- "\n",
- "Ig = 5.33 # moment of inertia\n",
- "\n",
- "yh = y1 + (Ig/(A*y1)) # location of horizontal component\n",
- "\n",
- "y2 = h1+2.5\n",
- "\n",
- "Fv1 = gma*(R*y2) # vertical force component 1\n",
- "\n",
- "Fv2 = gma*(pi*R**2/4) # vrtical force component 2\n",
- "\n",
- "Fv = Fv1 + Fv2 # vertical force component\n",
- "\n",
- "Xv = (Fv1*xv1+Fv2*xv2)/(Fv)\n",
- "\n",
- "print \"(a) Horizontal component acting on the plate = \",round(Fh,0),\"lbs\" # The answer for horizontal force in the book is wrong\n",
- "\n",
- "print \"(b) Vertical component acting on the plate = \",round(Fv,2),\"lbs\"\n",
- "\n",
- "print \"location of vertical component Xv =\",round(Xv,2),\"ft from the left wall\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Horizontal component acting on the plate = 29923.0 lbs\n",
- "(b) Vertical component acting on the plate = 30208.14 lbs\n",
- "location of vertical component Xv = 1.99 ft from the left wall\n"
- ]
- }
- ],
- "prompt_number": 19
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.13 Page no 84"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "l = 3 # length in m\n",
- "\n",
- "b = 4 # breadth in m\n",
- "\n",
- "h = 15 # height in m\n",
- "\n",
- "S = 0.9 # specific gravity of barge\n",
- "\n",
- "Sw = 1.09 # specific gravity of water\n",
- "\n",
- "Wd = 150*10**3 # addditional weight in kN\n",
- "\n",
- "V = l*b*h # volume in m**3\n",
- "\n",
- "Wb = gma*S*V # weight of barge\n",
- "\n",
- "Tw = Wb + Wd # total weight in kN\n",
- "\n",
- "gma = 9810 # specific density \n",
- "\n",
- "\n",
- "Fb = Tw # since barge is floating\n",
- "\n",
- "V1 = Fb/((gma/1000)*Sw) # volume in m**3\n",
- "\n",
- "\n",
- "d = (V1/(h*b))/1000\n",
- "\n",
- "print \"Depth to which water would rise = \",round(d,2),\"m\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Depth to which water would rise = 0.25 m\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.14 Page no 85 "
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "\n",
- "W = 0.4 * 9.81 # weight of the solid cylinder in N\n",
- "\n",
- "\n",
- "A = np.array([(1,-0.96),(1,1)])\n",
- "\n",
- "b = np.array([0,6.37])\n",
- "\n",
- "x = np.linalg.solve(A,b)\n",
- "\n",
- "X = x[0]\n",
- "\n",
- "Y = x[1]\n",
- "\n",
- "print \"X = \",round(X,2),\"cm\"\n",
- "\n",
- "print \"Y = \",round(Y,2),\"cm\"\n",
- "\n",
- "b = 8 -x[0]\n",
- "\n",
- "print \"The bottom of the solid cylinder will be \",round(b,2),\"cm above the bottom\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "X = 3.12 cm\n",
- "Y = 3.25 cm\n",
- "The bottom of the solid cylinder will be 4.88 cm above the bottom\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.15 Page no 86"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "l =100 # length of the pan in cm\n",
- "\n",
- "w = 20 # width of the pan in cm\n",
- "\n",
- "d = 4 # depth of the pan in cm\n",
- "\n",
- "L = 1.5 # load in N/m\n",
- "\n",
- "gma = 9810 # sepcific weight\n",
- "\n",
- "\n",
- "Fb = gma*(d*w*l/(2*l**3)) # weight on the pan\n",
- "\n",
- "W = Fb-L # weight of the pan\n",
- "\n",
- "X1 = w/3\n",
- "\n",
- "X2 = w/2\n",
- "\n",
- "theta = math.atan(d/w)*180/pi\n",
- "\n",
- "x = ((X2-X1)*cos(theta*pi/180))\n",
- "\n",
- "\n",
- "M = W*x\n",
- "\n",
- "print \"Weight of the pan =\",round(W,1),\"N\"\n",
- "print \"Magnitude of right momentum = \",round(M,1),\"N.cm\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Weight of the pan = 37.7 N\n",
- "Magnitude of right momentum = 123.4 N.cm\n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example no 2.16 Page no 90"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "\n",
- "Io = 15*4**3/12 # moment of inertia in m**4\n",
- "\n",
- "V = 15*4*2.71 # Volume in m**3\n",
- "\n",
- "Gb = ((3/2)-(2.71/2)) \n",
- "\n",
- "W = 1739.2 # weight of the barge from the previous example in kN\n",
- "\n",
- "Mg = (Io/V)-Gb # metacentric height in m\n",
- "\n",
- "print \"(a) Metacentric height = \", round(Mg,3),\"m\"\n",
- "\n",
- "M = W*Mg*sin(pi*6/180)\n",
- "\n",
- "print \"(b) Righting moment =\",round(M,1),\"kN.m\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Metacentric height = 0.347 m\n",
- "(b) Righting moment = 63.1 kN.m\n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example no 2.17 Page no 92"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "l=6 # length of the tank\n",
- "\n",
- "w =2 # width of the tank\n",
- "\n",
- "d = 3 # depth of the tank\n",
- "\n",
- "a = 3 # acceleration in m/s**2\n",
- "\n",
- "theta = pi/6\n",
- "\n",
- "W = 9810 # specific weight\n",
- "\n",
- "X = 0\n",
- "\n",
- "po=0 # pressure at the origin\n",
- "\n",
- "\n",
- "A = np.array([(1,-1),(1,1)])\n",
- "\n",
- "b = np.array([-1.38,3.0])\n",
- "\n",
- "x = np.linalg.solve(A,b)\n",
- "\n",
- "Y1 = x[0]\n",
- "\n",
- "Y2 = x[1]\n",
- "\n",
- "\n",
- "P = po - W*(2.61*X/9.81) - W*(1+(1.5/9.81))*(-Y2)\n",
- "\n",
- "print\"Amximum pressure occurs at the bottom of the tank =\",round(P,3),\"N\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Amximum pressure occurs at the bottom of the tank = 24768.9 N\n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 2.18 Page no 98"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 1 # diamter of the jar in ft\n",
- "\n",
- "h =2 # height of the jar in ft\n",
- "\n",
- "H = 1 # height of water in the jar in ft\n",
- "\n",
- "N = 150 # RPM\n",
- "\n",
- "g = 32.2 # acceleration due to gravity in ft/s**2\n",
- "\n",
- "\n",
- "w = 2*pi*N/60\n",
- "\n",
- "ho = H+((w**2*(d/2)**2)/(4*g))\n",
- "print \"(a) Height of paraboliod revolution of base = \", round(ho,2),\"ft\"\n",
- "\n",
- "Pmax = 62.4*ho\n",
- "\n",
- "print \"(b) Maximum pressure corresponding to maximum height = \",round(Pmax,1),\"lbs/ft**2\"\n",
- "\n",
- "z = H - ((w**2*(d/2)**2)/(4*g))\n",
- "\n",
- "r = 0.2 # distance from center\n",
- "\n",
- "y = -(0.52-0.25)\n",
- "\n",
- "P = po + (62.4*w**2*r**2/(2*g))-(62.4*y)\n",
- "\n",
- "print \"(c) Pressure =\",round(P,1),\"lbs/ft**2\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Height of paraboliod revolution of base = 1.48 ft\n",
- "(b) Maximum pressure corresponding to maximum height = 92.3 lbs/ft**2\n",
- "(c) Pressure = 26.4 lbs/ft**2\n"
- ]
- }
- ],
- "prompt_number": 17
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter3.ipynb b/Fluid_Mechanics/Chapter3.ipynb
deleted file mode 100755
index 845caa9a..00000000
--- a/Fluid_Mechanics/Chapter3.ipynb
+++ /dev/null
@@ -1,503 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:f598cdc0d1e1209f88ec87b2a9e5b6a08368d8e1e45eff28590bd3252c8de961"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter : Fluid Kinematics"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.1 Page no 117"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "\n",
- "x=1 # x co-ordinate\n",
- "\n",
- "y=2 # y co-ordinate\n",
- "\n",
- "\n",
- "print \"(a) u = 4*X; v = -4*Y \"\n",
- "\n",
- "u = 4*x\n",
- "\n",
- "v=- 4*y\n",
- "\n",
- "print \"(b) u=\",round(u,0),\"m/s and v=\",round(v,0),\"m/s\"\n",
- "\n",
- "R =sqrt(u**2+v**2)\n",
- "\n",
- "ang = atan(v/u)*180/pi\n",
- "\n",
- "print \"(c) Magnitude of velocity =\",round(R,2),\"m/s and angle of resultant velocity = \",round(ang,1),\"deg\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) u = 4*X; v = -4*Y \n",
- "(b) u= 4.0 m/s and v= -8.0 m/s\n",
- "(c) Magnitude of velocity = 8.94 m/s and angle of resultant velocity = -63.4 deg\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.2 Page no 119"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 0.3 # diameter of pipe in m\n",
- "\n",
- "v = 15 # velocity in m/s\n",
- "\n",
- "rho = 997.1 # density in kg/m**3\n",
- "\n",
- "A = pi*d**2/4\n",
- "\n",
- "\n",
- "Q=A*v\n",
- "\n",
- "print \"(a) Discharge =\",round(Q,2),\"m**3/s\"\n",
- "\n",
- "mdot = rho*Q\n",
- "\n",
- "print \"(b) Mass flow rate = \",round(mdot,2),\"kg/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Discharge = 1.06 m**3/s\n",
- "(b) Mass flow rate = 1057.21 kg/s\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.3 Page no 120 "
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from scipy import integrate\n",
- "\n",
- "\n",
- "Vo = 10 # velocity in m/s\n",
- "\n",
- "r1 = 0\n",
- "\n",
- "ro = 0.1 # radius in m\n",
- "\n",
- "N = 1\n",
- "\n",
- "\n",
- "R = lambda r: (10*r-1000*r**3)\n",
- "\n",
- "R1,err=integrate.quad(R,r1,ro)\n",
- "\n",
- "Q = R1*2*pi\n",
- "\n",
- "A = pi*(0.1)**2\n",
- "\n",
- "V = Q/A\n",
- "\n",
- "print \"Mean velocity of the flow =\",round(V,0),\"m/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Mean velocity of the flow = 5.0 m/s\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.4 Page no 126"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "from math import *\n",
- "\n",
- "from scipy import integrate\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "from sympy import *\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "x = Symbol('x')\n",
- "U = integrate(2,x)\n",
- "\n",
- "\n",
- "y = Symbol('y')\n",
- "\n",
- "V = integrate(-4*y,y)\n",
- "\n",
- "\n",
- "Zhi = U + V\n",
- "\n",
- "print Zhi # for x and y =0 we get C = 0\n",
- "\n",
- "X = [5,6,7,8,9,10,11,12,13,14,15,16,17]\n",
- "Y = [0,1.414,2,2.449,2.828,3.16,3.46,3.741,4,4.242,4.472,4.69,4.898]\n",
- "\n",
- "b1=plt.plot(X,Y)\n",
- "\n",
- "\n",
- "X1 = [2.5,3,4,5,6,7,8,9,10,11,12,13,14,15]\n",
- "Y1 = [0,1,1.732,2.23,2.645,3,3.31,3.60,3.87,4.123,4.35889,4.5825,4.795,5]\n",
- "\n",
- "b2=plt.plot(X1,Y1)\n",
- "\n",
- "\n",
- "X2 = [0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,15.5]\n",
- "Y2 = [0,1.414,2,2.449,2.828,3.162,3.462,3.741,4,4.242,4.472,4.69,4.898,5.099,5.29,5.4772]\n",
- "\n",
- "b3=plt.plot(X2,Y2)\n",
- "\n",
- "plt.xlabel(\"x\")\n",
- "\n",
- "plt.ylabel(\"y\")\n",
- "\n",
- "plt.title(\"Streamline plot\")\n",
- "\n",
- "plt.legend([\"zhi=10\",\"zhi=5\",\"zhi=1\"])\n",
- "plt.show()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "2*x - 2*y**2\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.5 PAge no 127"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from sympy import *\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "\n",
- "x = 2 # X co-ordinate\n",
- "\n",
- "Y = 4 # Y co-ordiante\n",
- "\n",
- "y = Symbol('y')\n",
- "\n",
- "zhi = 4*x*y\n",
- "\n",
- "zhiprime = zhi.diff(y)\n",
- "\n",
- "u = zhiprime\n",
- "\n",
- "x = Symbol('x')\n",
- "\n",
- "zhi = 4*x*Y\n",
- "\n",
- "zhiprime = zhi.diff(x)\n",
- "\n",
- "v = zhiprime\n",
- "\n",
- "R=sqrt(u**2+v**2)\n",
- "\n",
- "theta = atan(v/u)*180/pi\n",
- "\n",
- "print \"Resutant velocity magnitude = \",round(R,2),\"m/s\"\n",
- "\n",
- "print \"Angle =\",round(theta,1),\"deg with the X-axis in the 4th quadrant\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Resutant velocity magnitude = "
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "17.89 m/s\n",
- "Angle = 63.4 deg with the X-axis in the 4th quadrant\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.6 Page no 130"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from sympy import *\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "from scipy import integrate\n",
- "\n",
- "\n",
- "d1 = 0.09 # diameter in cm\n",
- "\n",
- "d2 = 0.025 # diameter in cm\n",
- "\n",
- "rho = 1000 # density in kg/m**3\n",
- "\n",
- "mdot = 25 # mass flow rate in kg/s\n",
- "\n",
- "\n",
- "x = Symbol('x')\n",
- "\n",
- "A1 = pi*d1**2/4\n",
- "\n",
- "A2 = pi*d2**2/4\n",
- "\n",
- "AA = A1 - ((A1-A2)/40)*10 # from figure\n",
- "\n",
- "V = mdot/(rho*AA)\n",
- "\n",
- "print \"(a) Velocity =\",round(V,1),\"m/s\"\n",
- "\n",
- "AX = (A1 - ((A1-AA)/40)*x)\n",
- "\n",
- "v = 25*10**4/(rho*AX)\n",
- "\n",
- "vprime = v.diff(x)\n",
- "\n",
- "V1 = vprime\n",
- "\n",
- "\n",
- "VPrime = 0.09\n",
- "\n",
- "Acx = V*VPrime\n",
- "\n",
- "print \"(b) Convective acceleration =\",round(Acx,3),\"m**2/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Velocity = 5.1 m/s\n",
- "(b) Convective acceleration = 0.46 m**2/s\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.8 Page no 143 "
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "y = Symbol('y')\n",
- "\n",
- "U = 16*y-12*x\n",
- "\n",
- "zhiprime = U.diff(y)\n",
- "\n",
- "u = zhiprime\n",
- "\n",
- "\n",
- "x = Symbol('x')\n",
- "\n",
- "V = 12*y-9*x\n",
- "\n",
- "zhiprime1 = V.diff(x)\n",
- "\n",
- "v = zhiprime1\n",
- "\n",
- "\n",
- "\n",
- "z = v-u\n",
- "\n",
- "print \"z = \",round(z,0)\n",
- "\n",
- "print \"Hence the flow is rotational\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "z = -25.0\n",
- "Hence the flow is rotational\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 3.10 Page no 148"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "d1 = 0.1 # diameter in m\n",
- "\n",
- "d2 = 0.3 # diameter in m\n",
- "\n",
- "V1 = 30 # velocity in m/s\n",
- "\n",
- "\n",
- "V2 = (d1**2/d2**2)*V1\n",
- "\n",
- "print \"Velocity at the larger cross section = \",round(V2,2),\"m/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Velocity at the larger cross section = 3.33 m/s\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter4.ipynb b/Fluid_Mechanics/Chapter4.ipynb
deleted file mode 100755
index ea310eb2..00000000
--- a/Fluid_Mechanics/Chapter4.ipynb
+++ /dev/null
@@ -1,529 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:1587038d9ed42ba6cd2ab38d651a00ef2c4ed8f4723b6c6b72bdf9880d8ef943"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 4 : Fluid Dynamics"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.1 Page no 159"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d1 = 0.1 # diameter in m\n",
- "\n",
- "d2 = 0.05 # diameter in m\n",
- "\n",
- "Q = 0.1 # discharge in m**3/s\n",
- "\n",
- "A1 = pi*d1**2/4\n",
- "\n",
- "A2 = pi*d2**2/4\n",
- "\n",
- "gma =9810 # specific weight\n",
- "\n",
- "z= 6 # difference in the height\n",
- "\n",
- "g = 9.81\n",
- "\n",
- "\n",
- "V1 = Q/A1 # velocity at section 1\n",
- "\n",
- "V2 = Q/A2 # velocity at section 2\n",
- "\n",
- "dP = gma*((V2**2/(2*g))-(V1**2/(2*g))-z)/1000\n",
- "\n",
- "print \"Difference in pressure in section 1 and 2 = \",round(dP,1),\"kN/m**2\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Difference in pressure in section 1 and 2 = 1157.0 kN/m**2\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.2 Page no 160"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 2.5 # diameter in cm\n",
- "\n",
- "h =200 # head in cm\n",
- "\n",
- "Cd = 0.65 # coefficient of discharge\n",
- "\n",
- "A =pi*d**2/4\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2 \n",
- "\n",
- "\n",
- "Q = Cd*A*sqrt(2*g*h)/100\n",
- "\n",
- "print \"Actual discharge =\",round(Q,2),\"l/s\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Actual discharge = 2.0 l/s\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.3 Page no 162"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from __future__ import division\n",
- "\n",
- "from math import *\n",
- "\n",
- "from scipy import integrate\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "\n",
- "H1 = 3 # height in m\n",
- "\n",
- "H2 = 4 # height in m\n",
- "\n",
- "b = 0.5 # width in m\n",
- "\n",
- "Cd = 0.65 # co-efficient of discharge \n",
- "\n",
- "g = 9.81 # acceleration due to grvity in m/s**2\n",
- "\n",
- "\n",
- "q = lambda h: h**(1/2)\n",
- " \n",
- "Q,err = integrate.quad(q, H1, H2)\n",
- "\n",
- "Qt = Cd*b*sqrt(2*g)*Q\n",
- "\n",
- "print \"Discharge through the orifice =\",round(Qt,2),\"m**3/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge through the orifice = 2.69 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.4 Page no 163"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- " \n",
- "from math import *\n",
- "\n",
- "from scipy import integrate\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "\n",
- "b = 1 # bredth of the tank\n",
- "\n",
- "d = 0.5 # depth of the tank\n",
- "\n",
- "h1 = 0.2 # height of the orifice in m\n",
- "\n",
- "Cd = 0.6 # coefficient of discharge\n",
- "\n",
- "H1 = 2 # height in m\n",
- "\n",
- "H2 = 2+h1 # height in m\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "A = 1*0.3 # area of submerged section in m**2\n",
- "\n",
- "\n",
- "q = lambda h: h**(1/2)\n",
- " \n",
- "Q,err = integrate.quad(q, H1, H2)\n",
- "\n",
- "Q1 = Cd*b*sqrt(2*g)*(Q) # Flow through area 1\n",
- "\n",
- "Q2 = Cd*sqrt(2*g*H2)*A\n",
- "\n",
- "Td = Q1+Q2\n",
- "\n",
- "print \"Total Discharge =\",round(Td,2),\"m**3/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total Discharge = 1.95 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.5 Page no 165"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d1 = 2 # radius of pipe\n",
- "\n",
- "d2 = 1 # radius of throat\n",
- "\n",
- "D1 = 40\n",
- "\n",
- "D2 = 20\n",
- "\n",
- "A1 = pi*D1**2/4\n",
- "\n",
- "A2 = pi*D2**2/4\n",
- "\n",
- "Cd = 0.95\n",
- "\n",
- "\n",
- "V2 = sqrt(21582/0.9375)\n",
- "\n",
- "Q = 1.52*pi*(d1/100)**2/4\n",
- "\n",
- "Qa = Q*Cd\n",
- "\n",
- "print \"Actual discharge =\",round(Qa,6),\"m**3/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Actual discharge = 0.000454 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.6 Page no 166"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "dx = 0.5 # in ft\n",
- "\n",
- "K = 1 # constant\n",
- "\n",
- "g = 32.2 # acceleration due to gravity in ft/s**2\n",
- "\n",
- "\n",
- "V = sqrt(2*g*dx)\n",
- "\n",
- "print \"velocity at the dept of 1 ft =\",round(V,2),\"ft/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "velocity at the dept of 1 ft = 5.67 ft/s\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example no 4.7 Page no 172"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "gma= 0.8 # specific weight\n",
- "\n",
- "V2 = 40 # velocity in m/s\n",
- "\n",
- "z1 =25 # height at point 1\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "d = 15 # diameter of the nozzle in cm\n",
- "\n",
- "\n",
- "V2 = sqrt(2*g*z1/4.25)\n",
- "\n",
- "A = pi*(d/100)**2/4\n",
- "\n",
- "Q = A*V2*1000\n",
- "\n",
- "print \"Discharge throught the system =\",round(Q,0),\"l/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge throught the system = 190.0 l/s\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.8 Page no 174"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "\n",
- "Eff = 0.8 # pump efficiency\n",
- "\n",
- "Hl = 30 # head loss in m\n",
- "\n",
- "D1 =6 # diameter in cm\n",
- "\n",
- "D2 = 2 # diameter in cm\n",
- "\n",
- "gma = 9810 # specific weight in N/m**3\n",
- "\n",
- "V2 = 40 # velocity in m/s\n",
- "\n",
- "P1 = -50 # pressure at point 1 in N/m**2\n",
- "\n",
- "z2 = 100 # height at point 2\n",
- "\n",
- "g = 9.8 # acceleration due to gravity in m/s**2\n",
- "\n",
- "z1 = 30 # height in m\n",
- "\n",
- "\n",
- "V1=(2/6)**2*V2\n",
- "\n",
- "Q = (pi*6**2/4)*V1*10**-4\n",
- "\n",
- "Hs = z2 + (V2**2/(2*g)) + z1 + (50/gma) -(V1**2/(2*g))\n",
- "\n",
- "P = gma*Q*Hs\n",
- "\n",
- "Pi = (P/Eff)/1000\n",
- "\n",
- "print \"Power input = \",round(Pi,1),\"kW\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Power input = 32.5 kW\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 4.9 Page no 176"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "Q = 0.2 # discharge in m**3/s\n",
- "\n",
- "d1 = 0.25 # diameter of the pipe in m\n",
- "\n",
- "A = pi*d1**2/4 # area of the pipe\n",
- "\n",
- "za = 480 # height in m\n",
- "\n",
- "z1 = 500 # height in m\n",
- "\n",
- "z3 = 550 # elevation in m\n",
- "\n",
- "gma =9810 # specific weight in N/m**2\n",
- "\n",
- "g =9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "V=Q/A # Velocity of in m/s\n",
- "\n",
- "Hl1 = (0.02*100*V**2/(0.25*2*9.81))\n",
- "\n",
- "\n",
- "Pa =(z1-za-(V**2/(2*g))-Hl1)\n",
- "\n",
- "El = za+Pa\n",
- "\n",
- "print \"Elevation at height A =\",round(El,2),\"m\"\n",
- "\n",
- "\n",
- "hs = z3 - z1 + (0.02*(500/0.25)*(V**2/(2*g))) \n",
- "\n",
- "El2 = El+hs\n",
- "\n",
- "print \"Elevation at height B =\",round(El2,2),\"m\"\n",
- "\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Elevation at height A = 492.39 m\n",
- "Elevation at height B = 576.23 m\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter5.ipynb b/Fluid_Mechanics/Chapter5.ipynb
deleted file mode 100755
index 73c391ca..00000000
--- a/Fluid_Mechanics/Chapter5.ipynb
+++ /dev/null
@@ -1,545 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:cd2be77f3b9478c6cae134ea907a28e897f525fa56fe0f236e6cf640bce7cb59"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 5 : Fluid Momentum"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.1 Page no 192"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "Q = 0.3 # Water flow rate in m**3/s\n",
- "\n",
- "d1 = 0.3 # diameter at inlet in meters\n",
- "\n",
- "A1 = pi*d1**2/4 # inlet area in m**2\n",
- "\n",
- "d2 = 0.15 # diameter at outlet in m\n",
- "\n",
- "A2 = pi*d2**2/4 # area at outlet in m**2\n",
- "\n",
- "P1 = 175*10**3 # inlet pressure in kN/m**2\n",
- "\n",
- "P2 = 160*10**3 # Pressure at outlet in kN/m**2\n",
- "\n",
- "F1 = P1*A1 # Force at inlet\n",
- "\n",
- "F2 = P2*A2 # Force at outlet\n",
- "\n",
- "rho = 1000 # density of water in kg/m**3\n",
- "\n",
- "V1 = Q/A1 # inlet velocity in m/s\n",
- "\n",
- "V2 = Q/A2 # Velocity at outlet in m/s\n",
- "\n",
- "theta = 45*pi/180 # angle in deg\n",
- "\n",
- "\n",
- "\n",
- "Rx = F1 - F2*cos(theta)-rho*Q*(V2*cos(theta)-V1)\n",
- "\n",
- "\n",
- "Ry = F2*sin(theta)+rho*Q*(V2*sin(theta)-0)\n",
- "\n",
- "R = sqrt(Rx**2+Ry**2)\n",
- "\n",
- "print \"Resultant force on the elbow = \",round(R,2),\"N\"\n",
- "\n",
- "a = atan(Ry/Rx)*180/pi\n",
- "\n",
- "print \"Angle of resultant force = \",round(a,4),\"deg\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Resultant force on the elbow = 9800.58 N\n",
- "Angle of resultant force = 34.8516 deg\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.2 Page no 194"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "V1 = 80 # Velocity in ft/s\n",
- "\n",
- "A1 = 0.1 # area in ft**2\n",
- "\n",
- "g = 32.2 # Acceleration due to gravity in ft/s**2\n",
- "\n",
- "rho = 1.94 # density in lb/ft**3\n",
- "\n",
- "a = pi/3 # angle of pipe bend\n",
- "\n",
- "\n",
- "Q = A1*V1 # Total discharge in m**3\n",
- "\n",
- "\n",
- "V2 = sqrt((2*g*V1**2/(2*32.2))-3*2*g)\n",
- "\n",
- "\n",
- "\n",
- "Rx = -(rho*Q*(V2*cos(a)-80))\n",
- "\n",
- "\n",
- "Ry = (rho*Q*(V2*sin(a)-0))\n",
- "\n",
- "R = sqrt(Rx**2+Ry**2)\n",
- "\n",
- "print \"Resultant force = \",round(R,0),\"lbs\"\n",
- "\n",
- "ang = atan(Ry/Rx)*180/pi\n",
- "\n",
- "print \"Angle of resultant force = \",round(ang,4),\"deg\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Resultant force = 1232.0 lbs\n",
- "Angle of resultant force = 59.2396 deg\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example no 5.3 Page no 195 "
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from math import *\n",
- "\n",
- "Q1 = 0.5 # discharge from pipe 1 in m**3/s\n",
- "\n",
- "Q2 = 0.3 # discharge from pipe 2 in m**3/s\n",
- "\n",
- "Q3 = 0.2 # discharge from pipe 3 in m**3/s\n",
- "\n",
- "d1 = 0.45 # diameter of pipe 1 in m\n",
- "\n",
- "d2 = 0.3 # diameter of pipe 2 in m\n",
- "\n",
- "d3 = 0.15 # diameter of pipe 3 in m\n",
- "\n",
- "A1 = pi*d1**2/4 # area in m**2\n",
- "\n",
- "A2 = pi*d2**2/4 # area in m**2\n",
- "\n",
- "A3 = pi*d3**2/4 # area in m**2\n",
- "\n",
- "P1 = 60*10**3 # Pressure at point 1 in kPa\n",
- "\n",
- "gma = 9810\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "rho = 1000 # density in kg/m**3\n",
- "\n",
- "\n",
- "V1 = Q1/A1\n",
- "\n",
- "V2 = Q2/A2\n",
- "\n",
- "V3 = Q3/A3\n",
- "\n",
- "P2 = gma*((P1/gma) + V1**2/(2*g) - V2**2/(2*g))\n",
- "\n",
- "P3 = gma*((P1/gma) + V1**2/(2*g) - V3**2/(2*g))\n",
- "\n",
- "F1 = P1*A1\n",
- "\n",
- "F2 = P2*A2\n",
- "\n",
- "F3 = P3*A3\n",
- "\n",
- "Rx = rho*(Q2*V2*cos(pi/6)-Q3*V3*cos(pi/9)-0)+F3*cos(pi/9)-F2*cos(pi/6)\n",
- "\n",
- "Ry = rho*((Q2*V2*sin(pi/6)+Q3*V3*sin(pi/9)-Q1*V1))+F3*sin(pi/9)-F2*sin(pi/6)-F1\n",
- "\n",
- "R = sqrt(Rx**2+Ry**2)\n",
- "\n",
- "a = atan(Ry/Rx)*180/pi\n",
- "\n",
- "print \"Resultant Force = \",round(R,0),\"N\"\n",
- "\n",
- "print \"Angle with horizontal = \",round(a,1),\"deg with horizontal\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Resultant Force = 12489.0 N\n",
- "Angle with horizontal = 69.2 deg with horizontal\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.4 Page no 199"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "d = 2 # diameter in inches\n",
- "\n",
- "A = pi*d**2/(4*144) # Area of jet\n",
- "\n",
- "V = 100 # velocity of jet in ft/s\n",
- "\n",
- "Q = A*V # dischargge in ft**3/s\n",
- "\n",
- "gma = 62.4 # mass\n",
- "\n",
- "g = 32.2 # acceleration due to gravity in ft/s**2\n",
- "\n",
- "\n",
- "Rx = (gma*Q*V)/g # horizontal force required to keep plate in position\n",
- "\n",
- "print \"Normal force on the plate = \",round(Rx,0),\"lbs\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Normal force on the plate = 423.0 lbs\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.5 Page no 202"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "D = 0.075 # diameter in m\n",
- "\n",
- "A =pi*D**2/4 # area of jet\n",
- "\n",
- "V =15 # velocity of jet in m/s\n",
- "\n",
- "w = 9810 # specific weight\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s^2\n",
- "\n",
- "\n",
- "Q =A*V # Discharge in m**3/s\n",
- "\n",
- "Vp = 10 # velocity of plate in m/s\n",
- "\n",
- "Rx = w*Q*(V-Vp)/g # force in X direction\n",
- "\n",
- "print \"Force on the plate = \",round(Rx,2),\"N\"\n",
- "\n",
- "W = Rx*Vp\n",
- "\n",
- "print \"Work done per second = \",round(W,1),\"N.m/s\"\n",
- "\n",
- "Eff = 2*(V-Vp)*Vp/V**2\n",
- "\n",
- "E = 100*Eff\n",
- "\n",
- "print \"Efficiency = \",round(E,1),\"%\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Force on the plate = 331.34 N\n",
- "Work done per second = 3313.4 N.m/s\n",
- "Efficiency = 44.4 %\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.6 Page no 204"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "d = 3 # diameter in inches\n",
- "\n",
- "A = pi*d**2/(4*144) # Area of jet\n",
- "\n",
- "Q = 2 # discharge in ft**3/s\n",
- "\n",
- "rho = 1.94 # density in lbs/ft**3\n",
- "\n",
- "\n",
- "V = Q/A # velocity in ft/s\n",
- "\n",
- "alpha = pi/6 # inlet vane angle\n",
- "\n",
- "bta = pi/6 # outlet vane angle\n",
- "\n",
- "Rx = rho*Q*(V*cos(bta)+V*cos(alpha)) # force in X direction\n",
- "\n",
- "Ry = rho*Q*(V*sin(bta)-V*sin(alpha)) # force in Y direction\n",
- "\n",
- "print \"Force exerted in X direction = \",round(Rx,1),\"lbs\"\n",
- "\n",
- "print \"Force exerted in Y direction = \",round(Ry,1),\"lbs\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Force exerted in X direction = 273.8 lbs\n",
- "Force exerted in Y direction = 0.0 lbs\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.7 Page no 207"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "V1 =40 # velocity in m/s\n",
- "\n",
- "Vp = 20 # velocity of the plate in m/s\n",
- "\n",
- "alpha = pi/6 # inlet vane angle\n",
- "\n",
- "bta = pi/9 # outlet vane angle\n",
- "\n",
- "g = 9.81\n",
- "\n",
- "\n",
- "V1x = V1*cos(alpha)\n",
- "\n",
- "Vw1 = V1x;\n",
- "\n",
- "V1y = V1*sin(alpha)\n",
- "\n",
- "dV = V1x - Vp\n",
- "\n",
- "theta = atan(V1y/dV)*180/pi\n",
- "\n",
- "Vr1 = V1y/sin(theta*pi/180)\n",
- "\n",
- "Vr2 = Vr1\n",
- "\n",
- "\n",
- "print \"a ) Angle of blade top at inlet and Outlet, Phi = 4 deg\"\n",
- "\n",
- "phi = 4*pi/180 \n",
- "\n",
- "V2 = Vr2*sin(phi)/sin(bta)\n",
- "\n",
- "V2w = V2*cos(bta)\n",
- "\n",
- "W = (V2w+V1x)*Vp/g\n",
- "\n",
- "print \"b ) Work done per N of fluid per second = \",round(W,2),\"N.m\"\n",
- "\n",
- "Eff = (1 - (V2/V1)**2)*100\n",
- "\n",
- "print \"c ) Efficiency = \",round(Eff,2),\"%\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "a ) Angle of blade top at inlet and Outlet, Phi = 4 deg\n",
- "b ) Work done per N of fluid per second = 80.31 N.m\n",
- "c ) Efficiency = 98.4 %\n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 5.8 Page no 211"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "v = 220 # velocity in ft/s\n",
- "\n",
- "d = 6 # diameter of the propeller\n",
- "\n",
- "Q = 12000 # discharge in ft**3/s\n",
- "\n",
- "mf = 0.0022 # mass flow rate in slugs/ft**3\n",
- "\n",
- "\n",
- "V1 = v*5280/3600 # velocity in ft/s\n",
- "\n",
- "V = Q/(pi*d**2/4) # velocity in ft/s\n",
- "\n",
- "V4 = 2*V-V1\n",
- "\n",
- "F = mf*Q*(V4-V1) # thrust on the plane\n",
- "\n",
- "print \"a - Thrust on the plane = \",round(F,1),\"lbs\"\n",
- "\n",
- "Eff = V1/V # efficiency \n",
- "\n",
- "E = Eff*100\n",
- "\n",
- "print \"b - Theoretical efficiency = \",round(E,0),\"%\"\n",
- "\n",
- "Thp = F*V1/(500*Eff)\n",
- "\n",
- "print \"c - Theoretical horsepower required = \",round(Thp,0),\"hp\"\n",
- "\n",
- "dP = mf*(V4**2-V1**2)/2\n",
- "\n",
- "print \"d - Pressure difference across blades = \",round(dP,2),\"lbs/ft**3\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "a - Thrust on the plane = 5372.2 lbs\n",
- "b - Theoretical efficiency = 76.0 %\n",
- "c - Theoretical horsepower required = 4560.0 hp\n",
- "d - Pressure difference across blades = 190.0 lbs/ft**3\n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter6.ipynb b/Fluid_Mechanics/Chapter6.ipynb
deleted file mode 100755
index 0eb8031a..00000000
--- a/Fluid_Mechanics/Chapter6.ipynb
+++ /dev/null
@@ -1,128 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:779dd4cf4a63ec7ae3b3ee56b532415f0e7430caa393646786820e5bcc3483bb"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 6 : Dimensional Analysis and Dynamic Similitude"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 6.2 Page no 233"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "L = 10 # length scale lp/l\n",
- "\n",
- "\n",
- "rhop = 0.86*998.2 # density inn kg/m**3\n",
- "\n",
- "mup = 8*10**-3 # viscosity in Ns/m**2\n",
- "\n",
- "Vp = 2.5 # Velocity in m/s\n",
- "\n",
- "\n",
- "rhom = 998.2 # density in kg/m**3\n",
- "\n",
- "mum = 1.005*10**-3 # viscosity in Ns/m**2\n",
- "\n",
- "\n",
- "Vm = Vp*L*(rhop/rhom)*(mum/mup) # velocity in m/s\n",
- "\n",
- "print \"Hence the model should be tested at a velocity of \",round(Vm,2),\"m/s. This velocity in the model is called corresponding velocity\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Hence the model should be tested at a velocity of 2.7 m/s. This velocity in the model is called corresponding velocity\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 6.3 Page no 233"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from math import *\n",
- "\n",
- "l = 300 # length in ft\n",
- "\n",
- "Q = 100000 # discharge in cfs\n",
- "\n",
- "Cd = 3.8 # coefficient of discharge\n",
- "\n",
- "L = (1/50) # length scale\n",
- "\n",
- "\n",
- "Qm = 100000*(L)**(5/2) # model discharge in cfs\n",
- "\n",
- "print \"Maximum discharge, Qm = \",round(Qm,8),\"cfs\"\n",
- "\n",
- "H = (Q/(Cd*l))**(2/3) # height over spill way\n",
- "\n",
- "h = H*L*12 # head over spill model\n",
- "\n",
- "print \"Maximum head over crest = \",round(h,2),\"ft\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Maximum discharge, Qm = 5.65685425 cfs\n",
- "Maximum head over crest = 4.74 ft\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter7.ipynb b/Fluid_Mechanics/Chapter7.ipynb
deleted file mode 100755
index baafd643..00000000
--- a/Fluid_Mechanics/Chapter7.ipynb
+++ /dev/null
@@ -1,367 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:efc6f8f4cd32e5126c4de163e157356596c0806f949ff4295acc9cf31cf6d207"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 7 : Fluid Resistance"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.1 Page no 245"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "nu1 = 0.804*10**-6 # viscosity in m**2/s\n",
- "\n",
- "V = 0.3 # velocity in m/s\n",
- "\n",
- "D = 0.02 # diameter in m/s\n",
- "\n",
- "\n",
- "rho = 995.7 # density in kg/m**3\n",
- "\n",
- "\n",
- "mu = 8620*10**-4 # viscosity in Ns/m**2\n",
- "\n",
- "S = 1.26 # specific gravity\n",
- "\n",
- "nu2 = mu/(S*rho) # viscosity of glycerine in Ns/m**2\n",
- "\n",
- "\n",
- "R1 = V*D/nu1\n",
- "\n",
- "print \"Reynolds number for water =\",round(R1,0)\n",
- "\n",
- "print \"R > 2000 the flow is turbulent for water\"\n",
- "\n",
- "print \"\\n\"\n",
- "R2 = V*D/nu2\n",
- "\n",
- "print \"Reynolds number for glycerine =\",round(R2,1)\n",
- "\n",
- "print \"R < 2000 the flow is laminar for glycerine\"\n",
- "\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Reynolds number for water = 7463.0\n",
- "R > 2000 the flow is turbulent for water\n",
- "\n",
- "\n",
- "Reynolds number for glycerine = 8.7\n",
- "R < 2000 the flow is laminar for glycerine\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.2 Page no 248"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from scipy import *\n",
- "\n",
- "import numpy as np\n",
- "\n",
- "from sympy import *\n",
- "\n",
- "y = Symbol('y')\n",
- "\n",
- "d = 0.0175 # diameter in m\n",
- "\n",
- "s = 0.3 # shear stress at a distance in m\n",
- "\n",
- "tau = 103 # shear stress in Pa\n",
- "\n",
- "rho = 1000 # density in kg/m**3\n",
- "\n",
- "\n",
- "\n",
- "Up = diff(8.5+0.7*log(y),y)\n",
- "\n",
- "print Up\n",
- "\n",
- "Up = (0.7/0.3) # for y = 0.3\n",
- "\n",
- "k = sqrt(tau/(rho*s**2*Up**2))\n",
- "\n",
- "print \"Turbulence constant = \",round(k,2)\n",
- "\n",
- "Ml = k*s*100 # mixing length\n",
- "\n",
- "print \"Mixing length = \",round(Ml,1),\"cm\"\n",
- "\n",
- "Eta = rho*(Ml/100)**2*Up\n",
- "\n",
- "print \"Eddy viscosity =\",round(Eta,1),\"Nm/s**2\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "0.7/y\n",
- "Turbulence constant = 0.46\n",
- "Mixing length = 13.8 cm\n",
- "Eddy viscosity = 44.1 Nm/s**2\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.3 Page no 256"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "from pylab import plt\n",
- "\n",
- "from numpy import *\n",
- "\n",
- "from scipy import *\n",
- "\n",
- "from sympy import *\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "\n",
- "\n",
- "S = 1.26 # specific gravity \n",
- "\n",
- "mu = 0.862 # dynamic viscosity in Ns/m**2\n",
- "\n",
- "rho = S *1000 # density in kg/m**3\n",
- "\n",
- "K2 = 0.332\n",
- "\n",
- "V=1 # velocity in m/s\n",
- "\n",
- "\n",
- "\n",
- "x = [0,0.1,0.5,1.0,2.0];\n",
- "\n",
- "d = 0.1307*np.sqrt(x)*100\n",
- "\n",
- "tauo = K2*rho*V**2/(sqrt(1462)*np.sqrt(x))\n",
- "\n",
- "plt.plot(x, d, 'r')\n",
- "plt.xlabel('x(m)')\n",
- "plt.ylabel('delta(cm),tauo(N/m**2)')\n",
- "\n",
- "plt.plot(x, tauo, 'b')\n",
- "plt.xlabel('x')\n",
- "plt.legend('d''t')\n",
- "plt.show()\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.4 page no 260"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import numpy as np\n",
- "\n",
- "from math import *\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "from numpy import sqrt\n",
- "\n",
- "\n",
- "rho = 1.197 # air density in kg/m**3\n",
- "\n",
- "mu = 18.22*10**-6 # viscosity in Ns/m**2\n",
- "\n",
- "l = 5 # length of the plate\n",
- "\n",
- "V = 8 # velocity in m/s\n",
- "\n",
- "Rec = 5*10**5 # crictical reynolds number\n",
- "\n",
- "l1 = 0.951 # length from 0 to 0.951\n",
- "\n",
- "l2 = 5.0 # length from 0 to 5\n",
- "\n",
- "l3 = 0.951 # length from 0 to 0.951\n",
- "\n",
- "\n",
- "X = Rec/525576\n",
- "\n",
- "x = [0,0.1,0.3,0.6,0.951];\n",
- "\n",
- "d = 0.0069*np.sqrt(x)*100\n",
- "\n",
- "plt.figure()\n",
- "plt.plot(x, d, 'r')\n",
- "plt.xlabel('x(m)')\n",
- "plt.ylabel('delta(cm)')\n",
- "plt.title('delta v/s x')\n",
- "plt.legend('L')\n",
- "plt.show()\n",
- "\n",
- "X1 = [0.951,1.5,2.0,2.5,3.0,4.0,5.0]\n",
- "\n",
- "Dt = 0.0265*np.power(X1,(4/5))*100\n",
- "\n",
- "plt.figure()\n",
- "plt.plot(X1, Dt, 'g')\n",
- "plt.xlabel('x(m)')\n",
- "plt.ylabel('delta(cm)')\n",
- "plt.title('delta v/s x')\n",
- "plt.legend('T')\n",
- "plt.show()\n",
- "\n",
- "Td = 0.664*sqrt(mu*rho*V**3*l1)+0.036*rho*V**2*l2*(mu/(rho*V*l2))**0.2-0.036*rho*V**2*l3*(mu/(rho*V*l3))**0.2\n",
- "\n",
- "print \"Total Drag = \",round(Td,3),\"N\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total Drag = 0.595 N\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 7.5 Page no 270"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "from pylab import plt\n",
- "\n",
- "from __future__ import division\n",
- "\n",
- "\n",
- "d = 0.01 # doameter of sphere in m\n",
- "\n",
- "v = 0.05 # velocity in m/s\n",
- "\n",
- "S = 1.26 # specific gravity\n",
- "\n",
- "mu = 0.826 # kinematic viscosity in Ns/m**2\n",
- "\n",
- "rho = S*1000 # density\n",
- "\n",
- "\n",
- "R = rho*v*d/mu\n",
- "\n",
- "\n",
- "Cd = 35\n",
- "\n",
- "Fd = 0.5*Cd*rho*v**2*pi*d**2/4\n",
- "\n",
- "print \"Drag on the sphere = \",round(Fd,4),\"N\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Drag on the sphere = 0.0043 N\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter8.ipynb b/Fluid_Mechanics/Chapter8.ipynb
deleted file mode 100755
index 6972a7f7..00000000
--- a/Fluid_Mechanics/Chapter8.ipynb
+++ /dev/null
@@ -1,358 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:74db613da6801f860dadcdbf59265a8239e5864c8922257a769d0c0fa0f7c4e0"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 8 : Laminar Flow"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 8.1 Page no 286"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "P1 = 200 # Pressure at inlet in kPa\n",
- "\n",
- "P2 = 260 # Pressure at outlet in kPa\n",
- "\n",
- "d = 0.004 # diameter in m\n",
- "\n",
- "L = 8 # length of pipe in meters\n",
- "\n",
- "z = 6 # height of the pipe from the ground\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "mu = 19.1*10**-4 # viscosity of kerosene at 20 deg C\n",
- "\n",
- "S = 0.81 # specific gravity of kerosene\n",
- "\n",
- "rho = 1000 # density in kg/m**3\n",
- "\n",
- "\n",
- "\n",
- "p1 = (P1+g*z*S)*1000 # point 1\n",
- "\n",
- "p2 = (P2)*1000 # point 2\n",
- "\n",
- "\n",
- "\n",
- "Sp = -((p1-p2)/sqrt(L**2+z**2))\n",
- "\n",
- "r = d/2\n",
- "\n",
- "Tau_max = r*Sp/2\n",
- "\n",
- "print \"(a) Maximum shear stress =\",round(Tau_max,3),\"N/m**2\"\n",
- "\n",
- "\n",
- "Vmax = r**2*Sp/(4*mu)\n",
- "\n",
- "print \"(b) Maximum velocity =\",round(Vmax,3),\"m/s\"\n",
- "\n",
- "\n",
- "Q = pi*r**4*Sp/(8*mu)\n",
- "\n",
- "print \"(c) Discharge = \",round(Q,7),\"m**3/s\"\n",
- "\n",
- "\n",
- "V = Vmax/2\n",
- "\n",
- "R = rho*V*d*S/mu\n",
- "\n",
- "print \"Reynolds number =\",round(R,0),\"is less than 2000, the flow is laminar and the calculations are valid\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Maximum shear stress = 1.232 N/m**2\n",
- "(b) Maximum velocity = 0.645 m/s\n",
- "(c) Discharge = 4.1e-06 m**3/s\n",
- "Reynolds number = 547.0 is less than 2000, the flow is laminar and the calculations are valid\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example no 8.2 Page no 289"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "d = 0.02 # diameter of the pipe in m\n",
- "\n",
- "l = 30 # length of the pipe in m\n",
- "\n",
- "v = 0.1 # velocity in m/s\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "nu = 1.54*10**-6 # kinematic viscosity of water in m**2/s\n",
- "\n",
- "\n",
- "R = v*d/nu\n",
- "\n",
- "print \"R = \",round(R,0),\"is lesss than 2000 , the flow is laminar\"\n",
- "\n",
- "f = 64/R # friction factor\n",
- "\n",
- "Hf = f*l*v**2/(2*g*d) # head loss due to friction\n",
- "\n",
- "H=Hf*100\n",
- "\n",
- "print \"Head loss = \",round(H,2),\"cm of water\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "R = 1299.0 is lesss than 2000 , the flow is laminar\n",
- "Head loss = 3.77 cm of water\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 8.3 Page no 290"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "S = 0.92 # specific gravity\n",
- "\n",
- "gma = S*62.4 # density in lbs/ft**3\n",
- "\n",
- "nu=0.0205 # viscosity in ft**2/s\n",
- "\n",
- "W = 50 # weight of oil\n",
- "\n",
- "d = 9 # diameter of the pipe in inches\n",
- "\n",
- "g = 32.2 # acceleration due to gravity in ft/s**2\n",
- "\n",
- "\n",
- "Q = W*2000/(gma*3600) # discharge in ft**3/s\n",
- "\n",
- "A = pi*d**2/(4*144) # area of pipe\n",
- "\n",
- "V = Q*1000/(A) # velocity in ft/s\n",
- "\n",
- "R = V*0.75/(nu*1000) # Reynolds number\n",
- "\n",
- "print \"R =\",round(R,2),\"is less than 2000 and hence flow is laminar\"\n",
- "\n",
- "f = 64/R # friction factor\n",
- "\n",
- "Hf = (f*5280*(V/1000)**2)/(2*g*0.75)\n",
- "\n",
- "Hp = gma*Q*Hf/(550)\n",
- "\n",
- "print \"Horse power required to pump the oil = \",round(Hp,1)"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "R = 40.07 is less than 2000 and hence flow is laminar\n",
- "Horse power required to pump the oil = 10.6\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 8.4 Page no 291"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "V = 50 # Volume in m**3\n",
- "\n",
- "d = 5 # diameter in m\n",
- "\n",
- "d1 = 0.1 # diameter of bore\n",
- "\n",
- "l = 10 # length of the tube\n",
- "\n",
- "t = 20*60 # time in seconds\n",
- "\n",
- "rho = 0.88 # density in g/cm**3\n",
- "\n",
- "H1 = 5 # height from the base in m\n",
- "\n",
- "A = pi*d**2/4\n",
- "\n",
- "a = pi*d1**2/4\n",
- "\n",
- "\n",
- "\n",
- "H2 = H1-(V/A)\n",
- "\n",
- "mu = t*rho*a*(0.1)*98.1/(32*A*10*log(H1/H2))\n",
- "\n",
- "print \"Viscosity of the liquid =\",round(mu,4),\"poise\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Viscosity of the liquid = 0.0182 poise\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 8.5 Page no 297"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "S = 0.81 # specific gravity of oil\n",
- "\n",
- "mu = 4*10**-5 # viscosity of oil in lb.s/ft**2\n",
- "\n",
- "gma = 62.4*S # density in lbs/ft**3\n",
- "\n",
- "p1 = 6.51 # pressure at point 1 in psia\n",
- "\n",
- "p2 = 8 # pressure at point 2 in psia\n",
- "\n",
- "h = 0.006 # distance between the plate in ft\n",
- "\n",
- "l = 4 # length of the plate in ft\n",
- "\n",
- "theta = pi/6 # angle of inclination\n",
- "\n",
- "\n",
- "\n",
- "P1 = p1*144 + gma*l*sin(theta)\n",
- "\n",
- "\n",
- "P2 = p2*144\n",
- "\n",
- "\n",
- "Sp = (P2-P1)/4\n",
- "\n",
- "\n",
- "y = h\n",
- "\n",
- "\n",
- "q = (2154.75*y**2/2) - (359125*y**3/3)\n",
- "\n",
- "print \"Discharge q = \",round(q,3),\"per unit ft of the plate\"\n",
- "\n",
- "\n",
- "dV = 2154.75 - 718250*h\n",
- "\n",
- "\n",
- "T = -mu*dV\n",
- "\n",
- "print \"Shear stress on the plate = \",round(T,3),\"lbs/ft**2 and resisting the motion of the plate\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge q = 0.013 per unit ft of the plate\n",
- "Shear stress on the plate = 0.086 lbs/ft**2 and resisting the motion of the plate\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter9.ipynb b/Fluid_Mechanics/Chapter9.ipynb
deleted file mode 100755
index 503ee70d..00000000
--- a/Fluid_Mechanics/Chapter9.ipynb
+++ /dev/null
@@ -1,799 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:81c0a87082bc2a398c522de3be6bcb735589adaa60c31ff7051c7c79b83652d0"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Chapter 9 : Turbulent flow in Pipes"
- ]
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.1 Page no 308"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "S = 1.26 # specific gravity\n",
- "\n",
- "mu = 0.826 # kinematic viscosity in Ns/m**2\n",
- "\n",
- "\n",
- "rho = 998 # density of water in kg/m**3\n",
- "\n",
- "mu1 = 1.005*10**-3 # viscosity in Ns/m**2\n",
- "\n",
- "\n",
- "rho1 = S*rho # density of glycerine in kg/m**3\n",
- "\n",
- "Q = 0.1 # discharge in m**3/s\n",
- "\n",
- "d1 = 0.2 # diameter in m\n",
- "\n",
- "A = pi*d1**2/4 # area in m**2\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "l =100 # length of the pipe\n",
- "\n",
- "\n",
- "V = Q/A\n",
- "\n",
- "R = rho1*V*d1/mu\n",
- "\n",
- "print \"It is a laminar flow\"\n",
- "\n",
- "f = 64/R # friction factor\n",
- "\n",
- "Hf = f*l*V**2/(2*g*d1) # head loss due to friction\n",
- "\n",
- "print \"(a) Head loss due to flow for glycerine =\",round(Hf,1),\"m \"\n",
- "\n",
- "R1 = rho*V*d1/mu1\n",
- "\n",
- "print \"The flow is turbulent\"\n",
- "\n",
- "e = 0.025\n",
- "\n",
- "r = e/(d1*100)\n",
- "\n",
- "f = 0.021\n",
- "\n",
- "hf = f*l*V**2/(2*g*d1)\n",
- "\n",
- "print \"(a) Head loss due to flow for water =\",round(hf,2),\"m \"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "It is a laminar flow\n",
- "(a) Head loss due to flow for glycerine = 17.1 m \n",
- "The flow is turbulent\n",
- "(a) Head loss due to flow for water = 5.42 m \n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.2 Page no 311"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "\n",
- "nu = 1.007*10**-6 # viscosity in m**2/s\n",
- "\n",
- "e = 0.025 # for cast iron in cm\n",
- "\n",
- "L = 100 # length of the pipe in m\n",
- "\n",
- "D = 0.2 # diameter in m\n",
- "\n",
- "hf = 5.43 # head loss due to friction\n",
- "\n",
- "r = e/(D*100)\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "A = sqrt(2*g*D*hf/L)\n",
- "\n",
- "B = D/nu\n",
- "\n",
- "f = 0.021 # from moodys diagram\n",
- "\n",
- "V = A/sqrt(f)\n",
- "\n",
- "print V\n",
- "\n",
- "R = B*f\n",
- "\n",
- "A = pi*D**2/4\n",
- "\n",
- "Q = A*V\n",
- "\n",
- "print \"Discharge =\",round(Q,2),\"m**3/s\"\n",
- "\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "3.1853324563\n",
- "Discharge = 0.1 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.3 Page no 314"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "Q =0.1 # discharge in m**3/s\n",
- "\n",
- "hf = 5.43 # friction loss head in m\n",
- "\n",
- "L = 100 # length of pipe\n",
- "\n",
- "nu = 1.00*10**-6 # viscosity in m**2/s\n",
- "\n",
- "e = 0.025 # for cast iron in cm\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "A = 8*L*Q**2/(hf*g*pi**2)\n",
- "\n",
- "B = 4*Q/(pi*nu)\n",
- "\n",
- "D = 0.172\n",
- "\n",
- "r = e/D\n",
- "\n",
- "Re = B/D\n",
- "\n",
- "f = 0.022 # for Re and r\n",
- "\n",
- "\n",
- "D1 = 0.199\n",
- "\n",
- "r1 = e/D1\n",
- "\n",
- "R = B/D1\n",
- "\n",
- "f = 0.021 # for R and r\n",
- "\n",
- "print \"Hence the convergence is attained, D=\",round(D1,1),\"m\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Hence the convergence is attained, D= 0.2 m\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.4 Page no 318"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "L = 500 # length of the pipe in ft\n",
- "\n",
- "D= 9*2.54/100 # diameter in cm\n",
- "\n",
- "C = 100 # constant\n",
- "\n",
- "S = 0.004\n",
- "\n",
- "\n",
- "Hf = S*L\n",
- "\n",
- "print \"Head loss =\",round(Hf,0),\"ft\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Head loss = 2.0 ft\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.5 Page no 319"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "Q = 0.1 # water flow rate in m**3/s\n",
- "\n",
- "d = 30 # diameter in m\n",
- "\n",
- "l = 500 # length in m\n",
- "\n",
- "e = 0.025 # for cast iron\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "r = log(d/e,10)\n",
- "\n",
- "K = (pi/4)*sqrt(2*g)*(2*r+1.14)*(0.3)**(2.5)\n",
- " \n",
- "S = (Q/K)**2\n",
- "\n",
- "hf = S*l\n",
- "\n",
- "print \"Head loss of water =\",round(hf,1),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Head loss of water = 3.2 m\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.6 Page no 319"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "Q = 0.1 # water flow rate in m**3/s\n",
- "\n",
- "d = 20 # diameter in cm\n",
- "\n",
- "l = 500 # length in m\n",
- "\n",
- "e = 0.025 # for cast iron\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "S = 5.43 \n",
- "\n",
- "\n",
- "r = log(d/e,10)\n",
- "\n",
- "K = (pi/4)*sqrt(2*g)*(2*r+1.14)*(0.2)**2.5\n",
- "\n",
- "Q=K*sqrt(S/100)\n",
- "\n",
- "print \"Head loss of water =\",round(Q,2),\"m**3/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Head loss of water = 0.1 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.7 Page no 320"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "eps = 0.025*10**-2 # for cast iron epsilon = 0.0025 cm\n",
- "\n",
- "\n",
- "\n",
- "D = 0.2 # value in m\n",
- "\n",
- "g = 9.81\n",
- "\n",
- "\n",
- "K = (pi/4)*sqrt(2*g)*(2*log10(D/(eps))+1.14)*D**(2.5)\n",
- "\n",
- "print \"K = \",round(K,3),\" from trial and error\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "K = 0.432 from trial and error\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.8 Page no 326"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "d = 0.1 # diameter of the pipe\n",
- "\n",
- "Q= 0.075 # discharge in m**3/s\n",
- "\n",
- "L = 30 # length in m\n",
- "\n",
- "A = pi*d**2/4\n",
- "\n",
- "g = 9.81 # acceleration due to gravity in m/s**2\n",
- "\n",
- "\n",
- "nu = 1.007*10**-6 # viscosity in m**2/s\n",
- "\n",
- "e = 0.025\n",
- "\n",
- "r = e/(10*d)\n",
- "\n",
- "\n",
- "V = Q/A\n",
- "\n",
- "Re = V*d/nu\n",
- "\n",
- "f = 0.025 # firction factor from moodys diagram\n",
- "\n",
- "hf = f*L*V**2/(2*g*d) \n",
- "\n",
- "K= 0.5 # contraction constant\n",
- "\n",
- "hc = K*V**2/(2*g) \n",
- "\n",
- "K1 =10 # loss of the globe valve\n",
- "\n",
- "hg = K1*V**2/(2*g)\n",
- "\n",
- "Th = hf+hc+hg\n",
- "\n",
- "print \"Total head loss =\",round(Th,1),\"m\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total head loss = 83.7 m\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.9 Page no 328"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "\n",
- "nu = 1.007*10**-6 # viscosity in m**2/s\n",
- "\n",
- "d1 = 0.3 # diameter of pipe 1 in m\n",
- "\n",
- "d2 = 0.15 # diameter of pipe 2 in m\n",
- "\n",
- "d3 = 0.08 # diameter of pipe 3 in m\n",
- "\n",
- "g = 9.81 # acclelration due to gravity in m/s**2\n",
- "\n",
- "e = 0.025 # for cast iron\n",
- "\n",
- "f1 = 0.019 # foe e/d1\n",
- "\n",
- "f2 = 0.022 # foe e/d2\n",
- "\n",
- "\n",
- "V3 = sqrt(2*g*100/((8.4*(f1)+268.85*(f2)+4.85)))\n",
- "\n",
- "V1 = (d3/d1)**2*V3\n",
- "\n",
- "V2 = (d3/d2)**2*V3\n",
- "\n",
- "\n",
- "R1 = V1*d1/nu\n",
- "\n",
- "R2 = V2*d2/nu\n",
- "\n",
- "Q = V3*pi*d3**2/4\n",
- "\n",
- "print \"Discharge through the pipe =\",round(Q,3),\"m**3/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge through the pipe = 0.067 m**3/s\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.10 Page no 332"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "D = 0.2 # diameter of pipe 1\n",
- "\n",
- "D1 = 0.15 # diameter of pipe 2\n",
- "\n",
- "Q = 0.1 # discharge in m**3/s\n",
- "\n",
- "nu = 1.007*10**-6 # viscosity in m**2/s\n",
- "\n",
- "e = 0.025 # e for cast iron\n",
- "\n",
- "r = e/(100*D) \n",
- "\n",
- "\n",
- "V = Q/(pi*(0.2)**2/4)\n",
- "\n",
- "R = V*D/nu\n",
- "\n",
- "f = 0.021 # from moodys law\n",
- "\n",
- "r2 = e/D1\n",
- "\n",
- "V1 = Q/(pi*D1**2/4)\n",
- "\n",
- "R1 = V*D1/nu\n",
- "\n",
- "f2 = 0.023 # from moodys law\n",
- "\n",
- "L2 = 28562*D1**5/f2\n",
- "\n",
- "print \"Replacement of the flow system =\",round(L2,2),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Replacement of the flow system = 94.3 m\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.11 Page no 335"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "e = 0.025 # in cm\n",
- "\n",
- "nu = 1.007*10**-6 # viscosity in m**2/s\n",
- "\n",
- "Q1 = 0.5 # discharge in m**3/s\n",
- "\n",
- "D1 = 50\n",
- "\n",
- "L1 = 500 # length in m\n",
- "\n",
- "g = 9.81\n",
- "\n",
- "\n",
- "r1 = e/D # r1 for pipe 1\n",
- "\n",
- "V1 = Q1/(pi*(0.5)**2/4)\n",
- "\n",
- "R = V*(0.5)/nu\n",
- "\n",
- "f1 = 0.018 # for the reynolds no\n",
- "\n",
- "hf1 = f*L1*V1**2/(2*g*D1)\n",
- "\n",
- "\n",
- "hf2 = hf1\n",
- "\n",
- "L2 =200 # length in m\n",
- "\n",
- "D2 = 0.3 # diameter in m\n",
- "\n",
- "r2 = e/D2\n",
- "\n",
- "f2 = 0.02 \n",
- "\n",
- "V2 = 0.419/sqrt(f2) \n",
- "\n",
- "R2 = V2*D2/nu\n",
- "\n",
- "Q2 = V2*(pi*D2**2/4)\n",
- "\n",
- "\n",
- "hf3=hf1\n",
- "\n",
- "L3 = 300 # length of pipe 3 in m\n",
- "\n",
- "D3 =0.15 # diameter of pipe 3 in m\n",
- "\n",
- "r3 = e/D3 \n",
- "\n",
- "f = 0.022 # from moody's law\n",
- "\n",
- "V3 = 0.242/sqrt(f2)\n",
- "\n",
- "R3 = V3*D3/nu\n",
- "\n",
- "Q3 = V3*(pi*D3**2/4)\n",
- "\n",
- "Td = Q1+Q2+Q3\n",
- "\n",
- "q1 = Q1*(2.0/Td)\n",
- "\n",
- "q2 = Q2*(2.0/Td)\n",
- "\n",
- "q3 = Q3*(2.0/Td)\n",
- "\n",
- "print \"Discharge through branch 1 =\",round(q1,2),\"m**3/s\"\n",
- "\n",
- "print \"Discharge through branch 2 =\",round(q2,3),\"m**3/s\"\n",
- "\n",
- "print \"Discharge through branch 3 =\",round(q3,3),\"m**3/s\"\n",
- "\n",
- "\n",
- "d = 0.5\n",
- "\n",
- "v1 = q1/(pi*(d)**2/4)\n",
- "\n",
- "R4 = v1*d/nu\n",
- "\n",
- "r4 = 0.0005 # ratio of e/D\n",
- "\n",
- "f = 0.018\n",
- "\n",
- "Hf1 = f*L1*v1**2/(2*g*d)\n",
- "\n",
- "print \"It is found that hf1=hf2=hf3 =\",round(Hf1,1),\"The distribution od discharge is correct\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Discharge through branch 1 = 1.35 m**3/s\n",
- "Discharge through branch 2 = 0.566 m**3/s\n",
- "Discharge through branch 3 = 0.082 m**3/s\n",
- "It is found that hf1=hf2=hf3 = 43.5 The distribution od discharge is correct\n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 3,
- "metadata": {},
- "source": [
- "Example 9.14 Page no 349"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "from math import *\n",
- "\n",
- "\n",
- "e = 0.00015 # from moody's chart\n",
- "\n",
- "D = 2 # depth in ft\n",
- "\n",
- "r = e/D\n",
- "\n",
- "z1 = 100 # elevation in ft\n",
- "\n",
- "mu = 1.084*10**-5 # viscosity in Ns/ft**2\n",
- "\n",
- "p1 = 34 # pressure head in ft\n",
- "\n",
- "p2 = 10 # pressure head in ft\n",
- "\n",
- "g = 32.2 # acclelration due to gravity in ft/s**2\n",
- "\n",
- "L = 1000 # length in ft\n",
- "\n",
- "\n",
- "f = 0.011 # assume\n",
- "\n",
- "V = sqrt(100/(10000/(2*2*g)))/sqrt(f)\n",
- "\n",
- "R = V*D/mu\n",
- "\n",
- "V1 = 10.15\n",
- "\n",
- "f1 = 0.0125\n",
- "\n",
- "Q = V1*pi*D**2/4\n",
- "\n",
- "x = p1-p2-(V1**2/(2*g))-(f1*L*V1**2/(2*g*D))\n",
- "\n",
- "Dp = 30 - x\n",
- "\n",
- "print \"Minimum depth =\",round(Dp,2),\"ft\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Minimum depth = 17.6 ft\n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [],
- "language": "python",
- "metadata": {},
- "outputs": []
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Fluid_Mechanics/Chapter_23.ipynb b/Fluid_Mechanics/Chapter_23.ipynb
index fa71e92d..8cb510fa 100755
--- a/Fluid_Mechanics/Chapter_23.ipynb
+++ b/Fluid_Mechanics/Chapter_23.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
- "signature": "sha256:109f899855f47f57b7b8d73d8df4dd5290683ba03d6e02690f896cfaa5c8d9e2"
+ "signature": "sha256:ef9e21b794b8d045cd677d625f05028772e4370ff57190a11a0021b5fe3769e2"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -65,30 +65,15 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['linalg', 'draw_if_interactive', 'random', 'power', 'info', 'fft']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\nRHiWAAAAAElFTkSuQmCC\n",
+ "png": "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\nIK1PDnOiPzgAAAAASUVORK5CYII=\n",
"text": [
- "<matplotlib.figure.Figure at 0x2dc9f90>"
+ "<matplotlib.figure.Figure at 0x322b110>"
]
}
],
- "prompt_number": 2
+ "prompt_number": 1
},
{
"cell_type": "heading",
diff --git a/Fluid_Mechanics/Chapter_4.ipynb b/Fluid_Mechanics/Chapter_4.ipynb
index c5c1c254..9429e481 100755
--- a/Fluid_Mechanics/Chapter_4.ipynb
+++ b/Fluid_Mechanics/Chapter_4.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
- "signature": "sha256:27e5ceeda6b81a3ecd6f6bb5786adb4aab2ca8fa416667ba9a518e71b4bbf42b"
+ "signature": "sha256:029b6e47f117cbc4316b9317b5e197658ff26f93dc8874c76dd6b6c464f4fec0"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -53,26 +53,11 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['linalg', 'draw_if_interactive', 'random', 'power', 'info', 'fft']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\nYII=\n",
"text": [
- "<matplotlib.figure.Figure at 0x3032e50>"
+ "<matplotlib.figure.Figure at 0x31fdd50>"
]
},
{
@@ -83,7 +68,7 @@
]
}
],
- "prompt_number": 2
+ "prompt_number": 1
},
{
"cell_type": "heading",
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/README.txt b/Fluid_Mechanics_and_Hydraulic_Machines/README.txt
new file mode 100755
index 00000000..b7a8048f
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/README.txt
@@ -0,0 +1,10 @@
+Contributed By: parag vasant
+Course: mca
+College/Institute/Organization: Eclinicalworks India PVT Ltd
+Department/Designation: Developer
+Book Title: Fluid Mechanics and Hydraulic Machines
+Author: B. K. Sarkar
+Publisher: Allied Publishers Limited
+Year of publication: 1999
+Isbn: 81-7023-977-X
+Edition: 1 \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch1.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch1.ipynb
new file mode 100755
index 00000000..fb931903
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch1.ipynb
@@ -0,0 +1,1199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d25e06b98904a679939aa950e605d9ba5c3f70e4cec7b065f7a8a4ce885f3659"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Fluid pressure and Its Measurement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 Page No : 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p = 343350. \t\t\t#pressure at any point in pa\n",
+ "w = 9810. \t\t\t #gravitational consmath.tant\n",
+ "s1 = 1.\n",
+ "s2 = 13.6\n",
+ "\n",
+ "# Calculations \n",
+ "h1 = (p/w)\n",
+ "h2 = h1*s1/s2\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure in term of height of water(m)\",h1\n",
+ "print \"pressure in term of height of mercury(m)\",round(h2,7)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure in term of height of water(m) 35.0\n",
+ "pressure in term of height of mercury(m) 2.5735294\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2 Page No : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 0.75 \t\t\t#atm pressure in term of mercury\n",
+ "w = 9810.\n",
+ "w1 = 13.6*w \t\t\t#specific weight of mercury\n",
+ "w2 = 15000.\n",
+ "h2 = 3. \t\t\n",
+ "\n",
+ "# Calculations \n",
+ "Patm = w1*h1\n",
+ "p = w2*h2 \t\t\t# gauge pressure\n",
+ "Pabs = Patm+p\n",
+ "\n",
+ "# Results \n",
+ "print \"gauge pressure(N/m2)\",p\n",
+ "print \"absolute pressure(N/m2)\",Pabs\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gauge pressure(N/m2) 45000.0\n",
+ "absolute pressure(N/m2) 145062.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 2.5\n",
+ "h2 = 1.5\n",
+ "s1 = 1\n",
+ "s2 = 0.8\n",
+ "w = 9810\n",
+ "\n",
+ "# Calculations \n",
+ "p2 = s2*w*h2 \t\t\t#Pressure intensity at interface\n",
+ "p1 = s1*w*h1\n",
+ "p = p1+p2\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure intensity at interface(N/m2)\",p2\n",
+ "print \"pressure intensity at bottom(N/m2)\",p\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure intensity at interface(N/m2) 11772.0\n",
+ "pressure intensity at bottom(N/m2) 36297.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 Page No : 11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p = 71613. \t\t\t#gauge pressure\n",
+ "w = 9810\n",
+ "\n",
+ "# Calculations \n",
+ "phead = p/w\n",
+ "patm = 10.33\n",
+ "pabs = patm+phead\n",
+ "\n",
+ "# Results \n",
+ "print \"absolute pressure in term of water height in meters\",pabs\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "absolute pressure in term of water height in meters 17.63\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 Page No : 11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 0.05\n",
+ "h2 = 0.1\n",
+ "s1 = 0.8\n",
+ "s2 = 13.6\n",
+ "w = 9810\n",
+ "\n",
+ "# Calculations \n",
+ "p = s2*h2*w \t\t\t#pressure at balance line \n",
+ "p1 = s1*h1*w \n",
+ "pf = p-p1\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure in pipe(N/m2)\",pf\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure in pipe(N/m2) 12949.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 Page No : 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 0.2\n",
+ "h2 = 0.5\n",
+ "s1 = 0.9\n",
+ "s2 = 13.6\n",
+ "\n",
+ "# Calculations \n",
+ "h = -(h1*s1+h2*s2)\n",
+ "w = 9810\n",
+ "p = h*w\n",
+ "\n",
+ "# Results \n",
+ "print \"vacuum pressure (N/m2)\",p\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vacuum pressure (N/m2) -68473.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 Page No : 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 0.8\n",
+ "s2 = 13.6\n",
+ "dh = 0.4\n",
+ "\n",
+ "# Calculations \n",
+ "h = dh*13.6-dh*0.8\n",
+ "w = 9810\n",
+ "pd = w*h\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure difference in height of water()\",h\n",
+ "print \"presuure difference in N/m2\",pd\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure difference in height of water() 5.12\n",
+ "presuure difference in N/m2 50227.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8 Page No : 14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 0.8\n",
+ "s2 = 0.7\n",
+ "h1 = 1.5\n",
+ "h2 = 0.3\n",
+ "h3 = 0.7\n",
+ "s3 = 13.6\n",
+ "\n",
+ "# Calculations \n",
+ "hd = h2*s2+h3*s3-h1*s1\n",
+ "w = 9810\n",
+ "pd = hd*w\n",
+ "\n",
+ "# Results \n",
+ "print \"diffrence in pressure in term of height of water(m)\",hd\n",
+ "print \"difference in pressure (N/m2)\",pd\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diffrence in pressure in term of height of water(m) 8.53\n",
+ "difference in pressure (N/m2) 83679.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9 Page No : 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 1.6\n",
+ "s2 = 0.8\n",
+ "s3 = 13.6\n",
+ "p1 = 98100.\n",
+ "p2 = 176580.\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "h1 = p1/w\n",
+ "h2 = p2/w\n",
+ "h = (h2-h1+1.6*s2-4.1*s1)/(s3-s2)\n",
+ "\n",
+ "# Results \n",
+ "print \"difference in mercury level(cm)\",h*100\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in mercury level(cm) 21.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10 Page No : 16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 1.2\n",
+ "s2 = 1\n",
+ "s3 = 0.7\n",
+ "\n",
+ "# Calculations \n",
+ "h = (s1-s2)*0.3/(s2-s3)\n",
+ "\n",
+ "# Results \n",
+ "print \"difference in height(cm)\",h*100\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in height(cm) 20.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.11 Page No : 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 0.8\n",
+ "s2 = 13.6\n",
+ "z = 0.02\n",
+ "w = 9810\n",
+ "h2 = 0.2\n",
+ "h1 = 0.1\n",
+ "\n",
+ "# Calculations \n",
+ "h = h2*s2-h1*s1+(z*h2*(s2-s1))\n",
+ "p = h*w\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure of the oil in N/m2\",p\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure of the oil in N/m2 26400.672\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.12 Page No : 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 4\n",
+ "b = 2\n",
+ "h = 3\n",
+ "w = 9810\n",
+ "s = 0.8\n",
+ "\n",
+ "# Calculations \n",
+ "p1 = w*l*b*h*s\n",
+ "p2 = w*s*l*h*1.5\n",
+ "p3 = w*s*b*h*1.5\n",
+ "\n",
+ "# Results \n",
+ "print \"total pressure on horizontal base\",p1\n",
+ "print \"total pressure on larger vertical base\",p2\n",
+ "print \"total pressure on smaller vertical walls\",p3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure on horizontal base 188352.0\n",
+ "total pressure on larger vertical base 141264.0\n",
+ "total pressure on smaller vertical walls 70632.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.13 Page No : 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "p = 490500.\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "h = p/w\n",
+ "D = 0.15\n",
+ "A = math.pi*D*D*0.25\n",
+ "pt = w*A*h\n",
+ "h1 = (D*D)/(16*h)\n",
+ "\n",
+ "# Results \n",
+ "print \"total hydrostatic pressure in N\",round(pt,2)\n",
+ "print \"position of centre of pressure below the centre of pipe : %f\"%h1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total hydrostatic pressure in N 8667.85\n",
+ "position of centre of pressure below the centre of pipe : 0.000028\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.14 Page No : 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "w = 9810.\n",
+ "h = 4.\n",
+ "d = 2.\n",
+ "\n",
+ "# Calculations \n",
+ "a = d*d*0.25*math.pi\n",
+ "p = w*a*h\n",
+ "h1 = d*d/64\n",
+ "T = p*(h1) \n",
+ "\n",
+ "# Results \n",
+ "print \"torque required to keep the disc in vertical position in N.m %.4f\"%T\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "torque required to keep the disc in vertical position in N.m 7704.7560\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.15 Page No : 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "w = 9810.\n",
+ "h = 2.\n",
+ "l = 2.\n",
+ "b = 1.\n",
+ "\n",
+ "# Calculations \n",
+ "a = l*b\n",
+ "p = w*a*h\n",
+ "h1 = h+(b*l*l*l/(12*b*l*l))\n",
+ "\n",
+ "# Results \n",
+ "print \"total pressure\",p\n",
+ "print \"location of its centre of pressure\",round(h1,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure 39240.0\n",
+ "location of its centre of pressure 2.1667\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.16 Page No : 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 8\n",
+ "w = 9810\n",
+ "wd = 6\n",
+ "\n",
+ "# Calculations \n",
+ "p1 = 0.5*w*h1*h1*wd\n",
+ "h2 = 4\n",
+ "p2 = 0.5*h2*w*h2*wd\n",
+ "h11 = 0.66666*h1\n",
+ "h22 = 0.6666*h2\n",
+ "p = p1-p2\n",
+ "hf = (p1*(h1-h11)-p2*(h2-h22))/p\n",
+ "\n",
+ "# Results \n",
+ "print \"resultant force\",p\n",
+ "print \"position of its line of action\",round(hf,5)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant force 1412640.0\n",
+ "position of its line of action 3.11109\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.17 Page No : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "z = 9810\n",
+ "w = 10\n",
+ "h = 2\n",
+ "\n",
+ "# Calculations \n",
+ "p = 0.5*h*h*w*z\n",
+ "h1 = h*0.6666\n",
+ "\n",
+ "# Results \n",
+ "print \"total hydrostatic thrust\",p\n",
+ "print \"its point of application\",h1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total hydrostatic thrust 196200.0\n",
+ "its point of application 1.3332\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.18 Page No : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a1 = 1.4*2.2*1.4\n",
+ "x1 = 1.6+0.7\n",
+ "x11 = (1.4*1.4/(12*2.3))+x1\n",
+ "x2 = 0.7\n",
+ "x22 = (1.4*1.4/(12*0.7))+x2\n",
+ "z = 9810\n",
+ "\n",
+ "# Calculations \n",
+ "p1 = z*a1*x1\n",
+ "p2 = z*a1*x2/1.4\n",
+ "p = p1-p2\n",
+ "h = (p1*(3-x11)+p2*(1.4-x22))/p\n",
+ "f = (p1*(3-x11)-p2*(1.4-x22))/1.4\n",
+ "\n",
+ "# Results \n",
+ "print \"resultant force\",p\n",
+ "print \"force acting horizontally on the top of the gate\",f\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant force 76141.296\n",
+ "force acting horizontally on the top of the gate 36660.624\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.19 Page No : 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s = 1.5\n",
+ "s1 = 0.9\n",
+ "w = 9810\n",
+ "h1 = 0.9\n",
+ "h2 = 0.6\n",
+ "\n",
+ "# Calculations \n",
+ "p1 = 0.5*w*s*s1*h1*h1 \t\t\t#total pressure due to oil\n",
+ "p2 = w*h1*h2*s*s1 \t\t\t# total pressure due to oil above water\n",
+ "p3 = w*h2*h2*0.5*s \t\t\t#total pressure due to water\n",
+ "p = p1+p2+p3\n",
+ "h = ((p1*0.6666*h1)+(p2*(h1+0.5*h2))+(p3*(0.6666*h2+h1)))/p\n",
+ "\n",
+ "# Results \n",
+ "print \"resultant pressure on the wall in N/m2\",p\n",
+ "print \"position of centre of pressure from free surface\",round(h,5)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant pressure on the wall in N/m2 15163.8075\n",
+ "position of centre of pressure from free surface 1.00521\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.20 Page No : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d = 2.4\n",
+ "h = 1.6\n",
+ "s = 1.2\n",
+ "\n",
+ "# Calculations \n",
+ "a = d*s\n",
+ "w = 9810\n",
+ "p = w*a*h*s\n",
+ "h1 = ((2*s*s*s*d)/(12*a*h))+h\n",
+ "\n",
+ "# Results \n",
+ "print \"total pressure in N\",p\n",
+ "print \"its point of application\",h1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure in N 54245.376\n",
+ "its point of application 1.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.21 Page No : 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "x = 30.\n",
+ "d = 1.2\n",
+ "h = 1.5\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "z = math.sin(x*math.pi/180)\n",
+ "h1 = (z*d*0.5)+h\n",
+ "a = 0.25*math.pi*d*d\n",
+ "p = a*w*h1\n",
+ "h11 = (d*d*z*z)/(16*h1)+h1\n",
+ "\n",
+ "# Results \n",
+ "print \"total pressure\",round(p,3)\n",
+ "print \"position of centre of pressure\",round(h11,4)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure 19970.728\n",
+ "position of centre of pressure 1.8125\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.22 Page No : 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 2\n",
+ "z = 0.5\n",
+ "\n",
+ "# Calculations \n",
+ "h = z+0.5*d\n",
+ "w = 9810\n",
+ "a = math.pi*d*d*0.25\n",
+ "p = a*w*h\n",
+ "h11 = (1/(16*1.5))+1.5\n",
+ "\n",
+ "# Results \n",
+ "print \"total pressure on the plate %.3f N\"%p\n",
+ "print \"position of centre of pressure\",round(h11,5)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure on the plate 46228.536 N\n",
+ "position of centre of pressure 1.54167\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.23 Page No : 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "x = 30.\n",
+ "z = math.sin(x*math.pi/180)\n",
+ "h = 6-(z*0.5)\n",
+ "l = 1.\n",
+ "b = 4.\n",
+ "a = l*b\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "p = w*a*h\n",
+ "h11 = (z*z)/(12*h)+h\n",
+ "f = p*0.5072\n",
+ "\n",
+ "# Results \n",
+ "print \"force normal to the gate at point B\",round(f,2),\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force normal to the gate at point B 114439.54 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.24 Page No : 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "x = 30.\n",
+ "z = math.sin(math.pi*x/180)\n",
+ "d = 1.4\n",
+ "h = 3.\n",
+ "b = 1.5\n",
+ "\n",
+ "# Calculations \n",
+ "h1 = z+d\n",
+ "a = 0.5*h*b\n",
+ "w = 9810\n",
+ "p = w*a*h1\n",
+ "h11 = ((z*z*h*h*h*b)/(36*a*h1))+h1\n",
+ "\n",
+ "# Results \n",
+ "print \"total pressure on the plate\",round(p,2),\"N\"\n",
+ "print \"position of centre of pressure\",round(h11,4),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure on the plate 41937.75 N\n",
+ "position of centre of pressure 1.9658 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.25 Page No : 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 1.8\n",
+ "h = 2.4\n",
+ "w = 9810\n",
+ "s = 0.8\n",
+ "\n",
+ "# Calculations \n",
+ "p1 = w*d*d*h*0.25*math.pi\n",
+ "h1 = ((d*d)/(16*h))+h\n",
+ "p = w*(s*1.5+2.4)\n",
+ "p2 = p*math.pi*d*d*0.25\n",
+ "p = p2-p1\n",
+ "ab = w*(s*1.5+1.5)\n",
+ "de = w*(s*1.5+3.3)\n",
+ "ce = de-ab\n",
+ "x = ((0.5*ce*d*0.3)/(0.5*(ab+de)*d))\n",
+ "h2 = x+h\n",
+ "h12 = h1-h2\n",
+ "\n",
+ "# Results \n",
+ "print \"change in total pressure\",round(p,3)\n",
+ "print \"position of centre of pressure\",h2\n",
+ "print \"change in position of centre of pressure\",round(h12,6),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in total pressure 29956.091\n",
+ "position of centre of pressure 2.475\n",
+ "change in position of centre of pressure 0.009375 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.26 Page No : 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "l = 5.\n",
+ "r = 3.\n",
+ "a = l*r\n",
+ "h = r*0.5\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "ph = w*a*h\n",
+ "pv = w*0.25*math.pi*r*r*l\n",
+ "p = math.sqrt((ph*ph)+(pv*pv))\n",
+ "z = ph/pv\n",
+ "theta = math.degrees(math.atan(z))\n",
+ "\n",
+ "# Results \n",
+ "print \"resultant pressure on the gate\",round(p,2),\"N\"\n",
+ "print \"angle of resultant force with vertical\",round(theta,7)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant pressure on the gate 411011.12 N\n",
+ "angle of resultant force with vertical 32.4816366\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.27 Page No : 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "s = 5.\n",
+ "z = math.sin(math.radians(45.))\n",
+ "a = 2*s*z\n",
+ "h = s*z\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "ph = w*a*h\n",
+ "pv = w*((0.25*s*s*math.pi)-(0.5*a*h))\n",
+ "\n",
+ "# Results \n",
+ "print \"horizontal pressure\",ph,\"N\"\n",
+ "print \"vertical pressure\",round(pv,1),\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "horizontal pressure 245250.0 N\n",
+ "vertical pressure 69993.9 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch10.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch10.ipynb
new file mode 100755
index 00000000..3f713b01
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch10.ipynb
@@ -0,0 +1,817 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e622aaab4152afb43a745018655d3a8638f8ca2d38533a29b1d9f716597d102a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Centrifugal Pump"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page No : 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "N = 900./60\n",
+ "x1 = 90.\n",
+ "D1 = 0.2\n",
+ "D2 = 0.4\n",
+ "n = 0.7\n",
+ "g = 9.81\n",
+ "u1 = math.pi*D1*N\n",
+ "u2 = 2*u1 \t\t\t# as D2 = 2D1\n",
+ "y1 = 20.\n",
+ "\n",
+ "# Calculations \n",
+ "Vf1 = u1*math.tan(math.radians(y1))\n",
+ "Vr1 = Vf1/math.sin(math.radians(y1))\n",
+ "Vf2 = Vf1\n",
+ "Vr2 = Vr1\n",
+ "x = (Vr2*Vr2-Vf1*Vf1)**0.5\n",
+ "Vw2 = u2-x\n",
+ "B1 = 0.02\n",
+ "Q = math.pi*D1*B1*Vf1\n",
+ "H = Vw2*u2/g\n",
+ "w = 9810\n",
+ "P = (w*Q*Vw2*u2)/(g*1000)\n",
+ "inputpower = (w*Q*H)/(1000*n)\n",
+ "print \"discharge through the pump %.4f litre/s \\\n",
+ "\\nheat developed %f m \\\n",
+ "\\npower in Kw at outlet %.3f \\\n",
+ "\\ninput power if overall efficiency is 70%% : %.4f kW\" \\\n",
+ "%(Q*1000,H,P,inputpower)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge through the pump 43.1069 litre/s \n",
+ "heat developed 18.109366 m \n",
+ "power in Kw at outlet 7.658 \n",
+ "input power if overall efficiency is 70% : 10.9401 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page No : 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Hs = 2.\n",
+ "Hd = 20.\n",
+ "Hfs = 1.\n",
+ "Hfd = 5.\n",
+ "Q = 1./60\n",
+ "N = 1450./60\n",
+ "ds = 0.1\n",
+ "dd = ds\n",
+ "n = 0.75\n",
+ "g = 9.81\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "a = 3.142*ds*ds/4\n",
+ "Vs = Q/a\n",
+ "Vd = Vs\n",
+ "Ht = Hs+Hd+Hfs+Hfd+(Vs*Vs/(2*g))+(Vd*Vd/(2*g))\n",
+ "Pi = (w*Q*Ht)/(n*1000)\n",
+ "Ns = ((N*(Q**0.5))/(Ht**0.75))*60\n",
+ "\n",
+ "# Results \n",
+ "print \"total head developed by the pump,power input to the pump,specific speed of pump in r.p.m\",round(Ht,4),round(Pi,5),round(Ns,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total head developed by the pump,power input to the pump,specific speed of pump in r.p.m 28.4589 6.20404 15.192\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page No : 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d2 = 0.6\n",
+ "Q = 20./60\n",
+ "N = 1400./60\n",
+ "V1 = 2.8\n",
+ "g = 9.81\n",
+ "y2 = 30.\n",
+ "w = 9810.\n",
+ "Vf1 = V1\n",
+ "Vf2 = V1\n",
+ "\n",
+ "# Calculations \n",
+ "u2 = 3.142*d2*N\n",
+ "x = Vf2/math.radians(math.tan(y2))\n",
+ "Vw2 = u2-x\n",
+ "Hm = Vw2*u2/g\n",
+ "P = (w*Q*Hm)/1000\n",
+ "\n",
+ "# Results \n",
+ "print \"head developed, pump power\",round(Hm,4),round(P,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "head developed, pump power 309.5484 1012.2231\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 Page No : 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "N = 1450./60\n",
+ "N1 = 1650./60\n",
+ "H = 12.\n",
+ "P = 6.\n",
+ "\n",
+ "# Calculations \n",
+ "H1 = H*((N1/N)**2)\n",
+ "P1 = P*((N1/N)**3)\n",
+ "\n",
+ "# Results \n",
+ "print \"head developed and power required if pump runs at 1650 r.p.m\",round(H1,4),round(P1,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "head developed and power required if pump runs at 1650 r.p.m 15.5386 8.841\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No : 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = 0.03\n",
+ "Hs = 18.\n",
+ "d = 0.1\n",
+ "l = 90.\n",
+ "n = 0.8\n",
+ "w = 9810.\n",
+ "a = 3.142*d*d/4\n",
+ "f = 0.04\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Vd = Q/a\n",
+ "H1 = (4*f*l*Vd*Vd)/(d*2*g)+(Vd*Vd/(2*g))\n",
+ "Hm = Hs+H1\n",
+ "P = (w*Q*Hm)/(n*1000)\n",
+ "\n",
+ "# Results \n",
+ "print \"power required to drive the pump\",round(P,3),\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power required to drive the pump 46.279 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No : 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = 0.04\n",
+ "Hm = 30.\n",
+ "n = 0.75\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "p = w*Q*Hm/1000\n",
+ "P = p/n\n",
+ "\n",
+ "# Results \n",
+ "print \"output power of the pump,power required to drive the motor\",p,P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output power of the pump,power required to drive the motor 11.772 15.696\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7 Page No : 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = 1.8/60\n",
+ "d = 0.1\n",
+ "n = 0.72\n",
+ "Hs = 20.\n",
+ "w = 9810.\n",
+ "Hl = 8.\n",
+ "\n",
+ "# Calculations \n",
+ "Hm = Hs+Hl\n",
+ "p = (w*Hm*Q)/1000\n",
+ "P = p/n\n",
+ "print \"water power required to the pump,power required to run the pump\",p,P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "water power required to the pump,power required to run the pump 8.2404 11.445\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No : 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d2 = 0.6\n",
+ "Q = 15./60\n",
+ "N = 1450./60\n",
+ "V1 = 2.6\n",
+ "g = 9.81\n",
+ "y2 = 30.\n",
+ "w = 9810.\n",
+ "Vf1 = V1\n",
+ "Vf2 = V1\n",
+ "\n",
+ "# Calculations \n",
+ "u2 = math.pi*d2*N\n",
+ "x = Vf2/math.tan(math.radians(y2))\n",
+ "Vw2 = u2-x\n",
+ "Hm = Vw2*u2/g\n",
+ "P = (w*Q*Hm)/1000\n",
+ "\n",
+ "# Results \n",
+ "print \"head developed, pump power\",round(Hm,4),round(P,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "head developed, pump power 190.6161 467.4859\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page No : 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = 0.05\n",
+ "p = 392.4*1000\n",
+ "n = 0.65\n",
+ "s = 0.8\n",
+ "w1 = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "Hw = p/w1\n",
+ "Hoil = p/(w1*s)\n",
+ "Pw = (w1*Q*Hw)/(n*1000)\n",
+ "Poil = (w1*s*Q*Hoil)/(n*1000)\n",
+ "\n",
+ "# Results \n",
+ "print \"power in Kw to drive the pump with water and oil of s,p = 0.8\",round(Poil,6),round(Pw,6)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power in Kw to drive the pump with water and oil of s,p = 0.8 30.184615 30.184615\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10 Page No : 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 0.118\n",
+ "N = 1450./60\n",
+ "Hm = 25.\n",
+ "d2 = 0.25\n",
+ "B2 = 0.05\n",
+ "n = 0.75\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "u2 = math.pi*d2*N\n",
+ "Vf2 = Q/(math.pi*d2*B2)\n",
+ "Vw2 = g*Hm/(n*u2)\n",
+ "y2 = math.degrees(math.atan(Vf2/(u2-Vw2)))\n",
+ "\n",
+ "# Results \n",
+ "print \"vane angle in degree at the outer nperiphery of the impeller\",round(y2,2)\n",
+ "\n",
+ "# note : rounding off error\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vane angle in degree at the outer nperiphery of the impeller 59.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11 Page No : 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Hm = 14.5\n",
+ "N = 1000./60\n",
+ "y2 = 30.\n",
+ "d2 = 0.3\n",
+ "B2 = 0.05\n",
+ "g = 9.81\n",
+ "n = 0.95\n",
+ "\n",
+ "# Calculations \n",
+ "u2 = math.pi*d2*N\n",
+ "Vw2 = g*Hm/(n*u2)\n",
+ "Vf2 = (u2-Vw2)*math.tan(math.radians(y2))\n",
+ "Q = math.pi*d2*B2*Vf2\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge of pump in m3/sec if manometric efficiency if 95%% : %.3f litre/s\"%(Q*1000)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge of pump in m3/sec if manometric efficiency if 95% : 168.024 litre/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12 Page No : 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d2 = 1.2\n",
+ "N = 200./60\n",
+ "Q = 1.88\n",
+ "Hm = 6.\n",
+ "y2 = 26.\n",
+ "g = 9.81\n",
+ "Vf2 = 2.5\n",
+ "d1 = 0.6\n",
+ "u2 = math.pi*d2*N\n",
+ "\n",
+ "# Calculations \n",
+ "Vw2 = u2-(Vf2/math.tan(math.radians(y2)))\n",
+ "n = g*Hm/(Vw2*u2)\n",
+ "z1 = (math.pi*d2/60)**2\n",
+ "z2 = (math.pi*d1/60)**2\n",
+ "N1 = (Hm*2*g/(z1-z2))**0.5\n",
+ "\n",
+ "# Results \n",
+ "print \"least speed to start pump : %.3f r.p.m \\\n",
+ "\\nmanometric efficiency : %.2f %%\"%(N1,(n*100))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "least speed to start pump : 199.395 r.p.m \n",
+ "manometric efficiency : 62.95 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 Page No : 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 0.125\n",
+ "Hm = 25.\n",
+ "N = 660./60\n",
+ "d2 = 0.6\n",
+ "d1 = d2*0.5\n",
+ "a = 0.06\n",
+ "y2 = 45.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "u2 = math.pi*d2*N\n",
+ "u1 = u2*0.5\n",
+ "Vf2 = Q/a\n",
+ "Vw2 = u2-(Vf2/math.tan(math.radians(y2)))\n",
+ "n = g*Hm/(Vw2*u2)\n",
+ "Vf1 = Q/(a)\n",
+ "y1 = math.degrees(math.atan(Vf1/u1))\n",
+ "\n",
+ "# Results \n",
+ "print \"manometric efficiency %.2f %% \\\n",
+ "\\nvane angle at inlet : %.2f degrees\"%((n*100),y1)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "manometric efficiency 63.42 % \n",
+ "vane angle at inlet : 11.36 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14 Page No : 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "n = 3.\n",
+ "d2 = 0.4\n",
+ "B2 = 0.02\n",
+ "y2 = 45.\n",
+ "da = 0.1\n",
+ "nm = 0.9\n",
+ "w = 9810.\n",
+ "no = 0.8\n",
+ "g = 9.81\n",
+ "N = 1000./60\n",
+ "Q = 0.05\n",
+ "\n",
+ "# Calculations \n",
+ "Vf2 = Q/(math.pi*d2*nm*B2)\n",
+ "u2 = math.pi*d2*N\n",
+ "Vw2 = u2-(Vf2/math.tan(math.radians(y2)))\n",
+ "Hm = nm*Vw2*u2/g\n",
+ "Ht = n*Hm\n",
+ "P = w*Q*Ht/1000\n",
+ "Ps = P/no\n",
+ "\n",
+ "# Results \n",
+ "print \"shaft power in Kw %.2f\"%Ps\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shaft power in Kw 66.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.15 Page No : 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 6.\n",
+ "Q = 0.12\n",
+ "p = 5003.1*1000\n",
+ "N = 1450./60\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "Ht = p/w\n",
+ "h = Ht/n\n",
+ "Ns = (N*(Q**0.5)/(h**0.75))*60\n",
+ "\n",
+ "# Results \n",
+ "print \"radial impeller would be selected\",round(Ns,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radial impeller would be selected 17.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16 Page No : 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "sg = 1.08\n",
+ "w = 9810.*sg\n",
+ "Q = 0.3\n",
+ "H = 12.\n",
+ "no = 0.75\n",
+ "\n",
+ "# Calculations \n",
+ "P = w*Q*H/(no*1000)\n",
+ "p = w*H\n",
+ "\n",
+ "# Results \n",
+ "print \"power in Kw required by the pump,pressure developed by the pump in N/m2\",round(P,3),p\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power in Kw required by the pump,pressure developed by the pump in N/m2 50.855 127137.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.17 Page No : 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d1 = 0.3\n",
+ "N1 = 2000./60\n",
+ "Q1 = 3.\n",
+ "Hm1 = 30.\n",
+ "Q2 = 5.\n",
+ "N2 = 1500./60\n",
+ "Ht = 200.\n",
+ "\n",
+ "# Calculations \n",
+ "Hm2 = ((N2/N1)*((Q2/Q1)**0.5)*(Hm1**0.75))**1.3333\n",
+ "n = Ht/Hm2\n",
+ "d2 = ((Hm2/Hm1)**0.5)*(N1/N2)*d1\n",
+ "\n",
+ "# Results \n",
+ "print \"number of stages and diameter of each impeller in cm\",round(n,3),round((d2*100),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of stages and diameter of each impeller in cm 6.96 39.15\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch11.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch11.ipynb
new file mode 100755
index 00000000..8285c578
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch11.ipynb
@@ -0,0 +1,493 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ef8a83f912d8b81107a82e5afb87ec1b0700272a7362a57c794757b82a1ddfa1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Impulse Turbine"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1 Page No : 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 8820.*1000\n",
+ "N = 600./60\n",
+ "H = 500.\n",
+ "Cv = 0.97\n",
+ "Cu = 0.46\n",
+ "no = 0.85\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Q = P/(no*w*H)\n",
+ "V1 = Cv*((2*g*H)**0.5)\n",
+ "u = Cu*V1\n",
+ "D = u/(3.142*N)\n",
+ "d = D/15\n",
+ "a = 3.142*d*d/4\n",
+ "n = Q/(a*V1)\n",
+ "n1 = round(n+1)\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge in m3/sec,wheel diameter in m, jet diameter in cm, number os jets \",round(Q,6),round(D,4),round(d*100,2),n1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge in m3/sec,wheel diameter in m, jet diameter in cm, number os jets 2.115488 1.4066 9.38 4.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2 Page No : 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "H = 46.\n",
+ "Q = 1.\n",
+ "u1 = 15.\n",
+ "y = 165.\n",
+ "y2 = 180-y\n",
+ "Cv = 0.975\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "V1 = ((2*g*H)**0.5)\n",
+ "Vw1 = V1\n",
+ "Vr1 = V1-u1\n",
+ "Vr2 = Vr1\n",
+ "Vw2 = (Vr2*(math.cos(math.radians(y2))))-u1\n",
+ "w = 9810.\n",
+ "P = (w*Q*(Vw1+Vw2)*u1)/(g*1000)\n",
+ "n = P*1000/(w*Q*H)\n",
+ "\n",
+ "# Results \n",
+ "print \"power developed in Kw and efficiency of the wheel\",round(P,3),round((n*100),3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power developed in Kw and efficiency of the wheel 443.571 98.296\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No : 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "H = 340.\n",
+ "P = 4410.*1000\n",
+ "N = 500./60\n",
+ "Cv = 0.97\n",
+ "no = 0.86\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Q = P/(w*H*no)\n",
+ "V1 = Cv*(math.sqrt(2*g*H))\n",
+ "u = 0.45*V1\n",
+ "D = u/(3.142*N)\n",
+ "a = Q/V1\n",
+ "\n",
+ "# Results \n",
+ "print \"mean diameter in m,jet area in m2\",round(D,4),round(a,7)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean diameter in m,jet area in m2 1.3616 0.0194058\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No : 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "H = 45.\n",
+ "Q = 50./60\n",
+ "u1 = 12.5\n",
+ "y = 160.\n",
+ "y2 = 180.-y\n",
+ "Cv = 0.97\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations and Results\n",
+ "V1 = Cv*((2*g*H)**0.5)\n",
+ "Vw1 = V1\n",
+ "Vr1 = V1-u1\n",
+ "Vr2 = Vr1\n",
+ "Vw2 = Vr2*(math.cos(math.radians(y2)))-u1\n",
+ "w = 9810\n",
+ "P = (w*Q*(Vw1+Vw2)*u1)/(g*1000)\n",
+ "nh = (2*u1*(Vw1+Vw2))/(V1*V1)\n",
+ "print \"power developed in Kw and hydraulic efficiency\",P,nh*100\n",
+ "\n",
+ "H1 = 50\n",
+ "V11 = Cv*((2*g*H1)**0.5)\n",
+ "Vw11 = V11\n",
+ "Vr11 = V11-u1\n",
+ "Vr21 = Vr11\n",
+ "Vw21 = Vr21*(math.cos(math.radians(y2)))-u1\n",
+ "w = 9810\n",
+ "P = (w*Q*(Vw11+Vw21)*u1)/(g*1000)\n",
+ "print \"Power developed in Kw if head is increased to 50\",P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power developed in Kw and hydraulic efficiency 329.792686546 95.2790189845\n",
+ "Power developed in Kw if head is increased to 50 361.293854458\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No : 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "H = 50.\n",
+ "Q = 1.2\n",
+ "u1 = 18.\n",
+ "y = 160.\n",
+ "y2 = 180-y\n",
+ "Cv = 0.94\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "V1 = Cv*((2*g*H)**0.5)\n",
+ "Vw1 = V1\n",
+ "Vr1 = V1-u1\n",
+ "Vr2 = Vr1\n",
+ "Vw2 = Vr2*(math.cos(math.radians(y2)))-u1\n",
+ "w = 9810\n",
+ "P = (w*Q*(Vw1+Vw2)*u1)/(g*1000)\n",
+ "n = P*1000/(w*Q*H)\n",
+ "\n",
+ "# Results \n",
+ "print \"power developed in Kw and efficiency of the wheel\",P,n*100\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power developed in Kw and efficiency of the wheel 479.375537454 81.4433464923\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No : 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D = 1.\n",
+ "N = 1000./60\n",
+ "H = 700.\n",
+ "y = 165.\n",
+ "y2 = 180-y\n",
+ "Q = 0.1\n",
+ "Cv = 0.97\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "u = D*math.pi*N\n",
+ "V1 = Cv*(math.sqrt(2*g*H))\n",
+ "nh = (2*u*(V1-u)*(1+(math.cos(math.radians(y2)))))/(V1*V1)\n",
+ "\n",
+ "# Results \n",
+ "print \"hydraulic efficiency of the wheel\",round((nh*100),2),\"%\"\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic efficiency of the wheel 97.69 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No : 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Hg = 500.\n",
+ "hf = Hg/3\n",
+ "H = Hg-hf\n",
+ "Q = 2.\n",
+ "y = 165.\n",
+ "y2 = 180.-y\n",
+ "g = 9.81\n",
+ "w = 9810.\n",
+ "Cv = 1.\n",
+ "\n",
+ "# Calculations \n",
+ "V1 = Cv*(math.sqrt(2*g*H))\n",
+ "u = 0.45*V1\n",
+ "Vr1 = V1-u\n",
+ "Vw1 = V1\n",
+ "Vr2 = Vr1\n",
+ "Vw2 = (Vr2*(math.cos(math.radians(y2))))-u\n",
+ "W = w*Q*(Vw1+Vw2)*u/g\n",
+ "P = W/1000\n",
+ "nh = 2*u*(Vw1+Vw2)/(V1*V1)\n",
+ "\n",
+ "# Results \n",
+ "print \"power given by the water to the runner in Kw : %.3f \\\n",
+ "\\nHydraulic efficiency %.2f\"%(P,(nh*100)),\"%\"\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power given by the water to the runner in Kw : 6364.292 \n",
+ "Hydraulic efficiency 97.31 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8 Page No : 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "L = 1600.\n",
+ "H = 550.\n",
+ "Dp = 1.2\n",
+ "d = 0.18\n",
+ "f = 0.006\n",
+ "Cv = 0.97\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "V1 = Cv*(math.sqrt(2*g*H))\n",
+ "a = math.pi*d*d/4\n",
+ "Q = a*V1\n",
+ "w = 9810\n",
+ "P = (w*Q*V1*V1)/(2*g*1000)\n",
+ "ap = math.pi*Dp*Dp/4\n",
+ "Vp = Q/ap\n",
+ "Hf = (4*f*L*Vp*Vp)/(Dp*2*g)\n",
+ "Tp = 4*w*Q*(H+Hf)/1000\n",
+ "\n",
+ "# Results \n",
+ "print \"power to each jet in Kw : %.1f \\\n",
+ "\\ntotal power at reserviour i Kw : %.2f\"%(P,Tp)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power to each jet in Kw : 13017.1 \n",
+ "total power at reserviour i Kw : 56182.23\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9 Page No : 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 4.\n",
+ "H = 250.\n",
+ "L = 3000.\n",
+ "n1 = 4.\n",
+ "n = 0.91\n",
+ "nh = 0.9\n",
+ "Cv = 0.975\n",
+ "f4 = 0.0045\n",
+ "\n",
+ "# Calculations \n",
+ "hf = H-H*n\n",
+ "Hn = H-hf\n",
+ "g = 9.81\n",
+ "w = 9810\n",
+ "V1 = Cv*(math.sqrt(2*g*Hn))\n",
+ "Pw = w*Q*V1*V1/(2*g*1000)\n",
+ "Pt = nh*Pw\n",
+ "q = Q/n1\n",
+ "d = math.sqrt(4*q/(3.142*V1))\n",
+ "D = ((f4*L*16*16)/(2*g*3.142*3.142*hf))**0.2\n",
+ "\n",
+ "# Results \n",
+ "print \"power developed by turbine in Kw : %.1f \\\n",
+ "\\ndiameter jet and diameter of pipeline\"%(Pt),round(d,4),round(D,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power developed by turbine in Kw : 7637.7 \n",
+ "diameter jet and diameter of pipeline 0.1398 0.9547\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch12.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch12.ipynb
new file mode 100755
index 00000000..4cc892b3
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch12.ipynb
@@ -0,0 +1,449 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0b5d1bccf0455332d8d5a07c9417496fa58f8299e63a3ce7cb14b721d96c210d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Reaction Turbine"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Page No : 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D1 = 0.6\n",
+ "D2 = 0.3\n",
+ "x2 = 90.\n",
+ "B1 = 0.15\n",
+ "N = 300./60\n",
+ "x1 = 15.\n",
+ "Vf1 = 3.\n",
+ "\n",
+ "# Calculations \n",
+ "Vf2 = Vf1\n",
+ "u1 = math.pi*D1*N\n",
+ "u2 = math.pi*D2*N\n",
+ "Vw1 = Vf1/math.tan(math.radians(x1))\n",
+ "y1 = math.tan(math.radians(Vf1/(Vw1-u1)))\n",
+ "Q = math.pi*D1*B1*Vf1\n",
+ "w = 9810\n",
+ "g = 9.81\n",
+ "P = w*Q*Vw1*u1/(g*1000)\n",
+ "\n",
+ "# Results \n",
+ "print \"blade angles, Power developed in Kw\",round(y1,4),round(P,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "blade angles, Power developed in Kw 0.0296 89.5063\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Page No : 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "D1 = 1.\n",
+ "N = 200./60\n",
+ "B1 = 0.15\n",
+ "Vf1 = 3.\n",
+ "Vf2 = Vf1\n",
+ "x2 = 90.\n",
+ "\n",
+ "# Calculations \n",
+ "Q = 3.142*D1*B1*Vf1\n",
+ "u1 = 3.142*D1*N\n",
+ "Vw1 = u1\n",
+ "w = 9810\n",
+ "g = 9.81\n",
+ "P = (w*Q*Vw1*u1)/(g*1000)\n",
+ "H = (Vw1*u1/g)+(Vf2*Vf2/(2*g))\n",
+ "nh = Vw1*u1/(g*H)\n",
+ "\n",
+ "\n",
+ "# Results \n",
+ "print \"power developed in Kw,hydraulic efficiency\",round(P,3),round((nh*100),0),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power developed in Kw,hydraulic efficiency 155.092 96.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No : 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D1 = 0.75\n",
+ "D2 = 0.5\n",
+ "x1 = 20.\n",
+ "Vf1 = 3.\n",
+ "Vf2 = 3.\n",
+ "B1 = 0.15\n",
+ "N = 250./60\n",
+ "\n",
+ "# Calculations \n",
+ "u1 = math.pi*D1*N\n",
+ "u2 = math.pi*D2*N\n",
+ "Vw1 = Vf1/math.tan(math.radians(x1))\n",
+ "y1 = math.degrees(math.atan(Vf1/(u1-Vw1)))\n",
+ "y2 = math.degrees(math.atan(Vf2/u2))\n",
+ "Q = 3.142*D1*B1*Vf1\n",
+ "w = 9810\n",
+ "g = 9.81\n",
+ "P = w*Q*Vw1*u1/(g*1000)\n",
+ "H = (Vw1*u1/g)+(Vf2*Vf2/(2*g))\n",
+ "nh = Vw1*u1/(g*H)\n",
+ "\n",
+ "# Results \n",
+ "print \"hydraulic efficiency : %.2f %% \\\n",
+ "\\npower developed in Kw : %.2f \\\n",
+ "\\nblade angle at inlet and outlet : %.3f and %.3f\"%(nh*100,P,y1,y2)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic efficiency : 94.73 % \n",
+ "power developed in Kw : 85.81 \n",
+ "blade angle at inlet and outlet : 62.300 and 24.625\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4 Page No : 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "H = 150.\n",
+ "Q = 6.\n",
+ "N = 400./60\n",
+ "D1 = 1.2\n",
+ "x1 = 20.\n",
+ "x2 = 90.\n",
+ "B1 = 0.1\n",
+ "\n",
+ "# Calculations \n",
+ "u1 = math.pi*D1*N\n",
+ "Vf1 = Q/(math.pi*D1*B1)\n",
+ "Vw1 = Vf1/math.tan(math.radians(x1))\n",
+ "Vw2 = 0\n",
+ "w = 9810\n",
+ "g = 9.81\n",
+ "P = w*Q*Vw1*u1/(g*1000)\n",
+ "\n",
+ "# Results \n",
+ "print \"whirl component at inlet and outlet m/s : %.5f and %d \\\n",
+ "\\npower developed in Kw : %.4f\"%(round(Vw1,5),Vw2,round(P,4))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "whirl component at inlet and outlet m/s : 43.72746 and 0 \n",
+ "power developed in Kw : 6593.9458\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No : 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D1 = 0.76\n",
+ "D2 = 0.5\n",
+ "x1 = 20.\n",
+ "Vf1 = 4.\n",
+ "Vf2 = Vf1\n",
+ "B1 = 0.15\n",
+ "N = 300./60\n",
+ "\n",
+ "# Calculations \n",
+ "u1 = math.pi*D1*N\n",
+ "u2 = math.pi*D2*N\n",
+ "Vw1 = Vf1/math.tan(math.radians(x1))\n",
+ "y1 = math.degrees(math.atan(Vf1/(u1-Vw1)))\n",
+ "y2 = math.degrees(math.atan(Vf2/u2))\n",
+ "Q = 3.142*D1*B1*Vf1\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "P = w*Q*Vw1*u1/(g*1000)\n",
+ "\n",
+ "# Results \n",
+ "print \"blade angle at inlet and outlet : %.2f and %.2f \\\n",
+ "\\npower developed in Kw : %.2f\"%(y1,y2,P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "blade angle at inlet and outlet : 76.66 and 26.99 \n",
+ "power developed in Kw : 187.97\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No : 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "no = 0.8\n",
+ "P = 147.*1000\n",
+ "H = 10.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "u1 = 0.95*(math.sqrt(2*g*H))\n",
+ "Vf1 = 0.3*(math.sqrt(2*g*H))\n",
+ "N = 160./60\n",
+ "Vw2 = 0\n",
+ "nh = (H-(0.2*H))/H\n",
+ "Vw1 = nh*g*H/u1\n",
+ "x1 = math.degrees(math.atan(Vf1/Vw1))\n",
+ "y1 = math.degrees(math.atan(Vf1/(u1-Vw1)))\n",
+ "D1 = u1/(math.pi*N)\n",
+ "w = 9810.\n",
+ "p = 147.*1000\n",
+ "Q = p/(w*H*no)\n",
+ "B1 = Q/(math.pi*D1*Vf1)\n",
+ "\n",
+ "# Results \n",
+ "print \"guide blade angle : %.4f degrees \\\n",
+ "\\nwheel vane angle : %.4f degrees \\\n",
+ "\\ndiameter of wheel : %.7f m**3/s \\\n",
+ "\\nwidth of wheel at inlet in cm : %.2f\"%(x1,y1,D1,B1*100)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "guide blade angle : 35.4699 degrees \n",
+ "wheel vane angle : 29.5604 degrees \n",
+ "diameter of wheel : 1.5883803 m**3/s \n",
+ "width of wheel at inlet in cm : 8.93\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No : 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "sp = 25.*(10**6)\n",
+ "H = 40.\n",
+ "no = 0.9\n",
+ "P = 25.*1000\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "u1 = 2*(math.sqrt(2*g*H))\n",
+ "Vf1 = 0.6*(math.sqrt(2*g*H))\n",
+ "w = 9810\n",
+ "Q = sp/(w*no*H)\n",
+ "De = (Q*4/(math.pi*Vf1*(1-(0.35**2))))**0.5\n",
+ "Db = 0.35*De\n",
+ "N = u1*60/(math.pi*De)\n",
+ "Ns = N*(P**0.5)/(H**1.25)\n",
+ "\n",
+ "# Results \n",
+ "print \"diameter of runner and boss : %.4f and %.4f m \\\n",
+ "\\nspeed and specific speed of runner in r.p.m : %.2f and %.2f \"%(De,Db,N,Ns)\n",
+ "\n",
+ "# note: rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter of runner and boss : 2.4720 and 0.8652 m \n",
+ "speed and specific speed of runner in r.p.m : 432.87 and 680.39 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No : 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D = 4.5\n",
+ "d = 2.\n",
+ "P = 20608.\n",
+ "N = 140./60\n",
+ "H = 22.\n",
+ "nh = 0.94\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "no = 0.85\n",
+ "\n",
+ "# Calculations \n",
+ "Q = P*1000/(w*no*H)\n",
+ "Vf1 = Q*4/(math.pi*((D**2)-(d**2)))\n",
+ "u1 = math.pi*D*N\n",
+ "Vw1 = nh*g*H/u1\n",
+ "x1 = math.degrees(math.atan(Vf1/Vw1))\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge through the turbine : %.4f m**3/s \\\n",
+ "\\nguide blade angle at inlet : %d degrees\"%(Q,x1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge through the turbine : 112.3376 m**3/s \n",
+ "guide blade angle at inlet : 55 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch2.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch2.ipynb
new file mode 100755
index 00000000..7308e485
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch2.ipynb
@@ -0,0 +1,691 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b1d2399b6b4acd9a65f6af74a5e09d523ac3468105509cc56b7fc106dd581d3b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Equilibrium of Floating Bodies"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page No : 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 4.\n",
+ "w = 2.\n",
+ "sg = 0.75\n",
+ "z = 9810.\n",
+ "d = 0.5\n",
+ "\n",
+ "# Calculations \n",
+ "v = l*w*d\n",
+ "wg = v*z*sg\n",
+ "s = 24000.\n",
+ "V = ((z*v)-wg)/s\n",
+ "V1 = (v*z-wg)/(s-z)\n",
+ "\n",
+ "# Results \n",
+ "print \"volume in m3 when block is completely in water\",V,\"m**3\"\n",
+ "print \"volume in m3 when block and concrete completely under water\",round(V1,5),\"m**3\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume in m3 when block is completely in water 0.40875 m**3\n",
+ "volume in m3 when block and concrete completely under water 0.69133 m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 Page No : 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 1\n",
+ "s = 0.75\n",
+ "w = 9810\n",
+ "\n",
+ "# Calculations \n",
+ "a = math.pi*d*d/4\n",
+ "h = d*0.5\n",
+ "p = w*h*s \t\t\t# intensity of pressure on at horizontal interface\n",
+ "v = p*a \t\t\t#vertical upward force\n",
+ "w1 = w*s*a*d/3 \t\t\t# weight of oil in upper hemisphere\n",
+ "vf = v-w1 \t\t\t# net vertical upward force\n",
+ "\n",
+ "# Results \n",
+ "print \"minimum weight of upper hemisphere in N\",round(vf,4),\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum weight of upper hemisphere in N 963.0945 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No : 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "w = 90.\n",
+ "\n",
+ "# Calculations \n",
+ "# By archemde's principle\n",
+ "# weight of water print alced = weight of sphere\n",
+ "z = 9810\n",
+ "v = w/z\n",
+ "d = (v*12/3.142)**0.33333\n",
+ "\n",
+ "# Results \n",
+ "print \"external diameter of hollow of sphere in m\",round(d,4),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external diameter of hollow of sphere in m 0.3272 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 Page No : 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 13.6\n",
+ "s2 = 7.8\n",
+ "s3 = 1.\n",
+ "\n",
+ "# Calculations \n",
+ "# by archimede principle\n",
+ "# weight of body = weight of liquid print laced\n",
+ "# s2 = s1*x+s3*(1-x) \n",
+ "x = (s2-s3)/(s1-s3)\n",
+ "\n",
+ "# Results \n",
+ "print \"fraction of steel below surface of mercury\",round(x,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of steel below surface of mercury 0.54\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5 Page No : 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "w = 9810.\n",
+ "do = 1.25\n",
+ "a = math.pi*do*do*0.25\n",
+ "\n",
+ "# Calculations \n",
+ "f1 = w*a*1\n",
+ "f2 = w*a*3 \t\t\t# buoyancy force of 3m lenght of pipe\n",
+ "di = 1.2\n",
+ "s = 9.8\n",
+ "wg = w*s*3*((1.25**2)-(1.2**2))*0.25*math.pi\n",
+ "fa = f2-wg\n",
+ "\n",
+ "# Results \n",
+ "print \"buoyancy force in N/m\",round(f1,3),\"N/m\"\n",
+ "print \"upward force on anchor\",fa,\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "buoyancy force in N/m 12038.681 N/m\n",
+ "upward force on anchor 8367.36499746 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = 0.25\n",
+ "s1 = 11.5\n",
+ "s2 = 1.\n",
+ "z = 9810.\n",
+ "v1 = a*a*a*0.5\n",
+ "wc = v1*z\n",
+ "h = 0.016\n",
+ "\n",
+ "# Calculations \n",
+ "# by archimede's principle\n",
+ "v2 = (a*0.5+h)*a*a \t\t\t# volume of cube submergerd\n",
+ "v = (v2-v1)/(s1-s2)\n",
+ "wl = v*s1*z\n",
+ "\n",
+ "# Results \n",
+ "print \"weight of lead attached\",round(wl,3),\"N\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight of lead attached 10.744 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7 Page No : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 19.3\n",
+ "s2 = 9.\n",
+ "x = 14./24\n",
+ "\n",
+ "# Calculations \n",
+ "wg = x*10\n",
+ "wc = (1-x)*10\n",
+ "vg = wg/s1\n",
+ "vc = wc/s2\n",
+ "vt = vg+vc\n",
+ "\n",
+ "# Results \n",
+ "print \"volume of 10gm,14 carat gold in cm3\",round(vt,3),\"cc\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of 10gm,14 carat gold in cm3 0.765 cc\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h1 = 0.05\n",
+ "h2 = 0.015\n",
+ "s = 41./40\n",
+ "l = h1/(s-1)\n",
+ "w1 = 25\n",
+ "\n",
+ "# Calculations \n",
+ "# applying bakance in vertical direction\n",
+ "w = w1*(l+h1)/(h2)\n",
+ "\n",
+ "# Results \n",
+ "print \"weight of ship in in N\",round(w,3),\"kN\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight of ship in in N 3416.667 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9 Page No : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "w = 700.\n",
+ "w1 = 20000.\n",
+ "d = 0.5\n",
+ "h = 1.\n",
+ "wd = 250.\n",
+ "z = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "f = z*3.142*d*d*2*0.25/3\n",
+ "n = (w*4+w1)/(f-250)\n",
+ "n1 = round(n)\n",
+ "\n",
+ "# Results \n",
+ "print \"number of drums\",n1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of drums 22.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10 Page No : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = 0.12\n",
+ "l = 1.8\n",
+ "s = 0.7\n",
+ "z = 9810.\n",
+ "wp = s*a*a*l*z\n",
+ "v = a*a*(l-0.2)\n",
+ "w = v*z\n",
+ "t = w-wp\n",
+ "sp = 110000.\n",
+ "\n",
+ "# Calculations \n",
+ "# applying equilibrium balance\n",
+ "w = t/(1-(9810/sp)) \n",
+ "\n",
+ "# Results \n",
+ "print \"weight of lead in N\",round(w,3),\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight of lead in N 52.733 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 Page No : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d = 4.\n",
+ "h = 4.\n",
+ "s = 0.6\n",
+ "s1 = 1.\n",
+ "\n",
+ "# Calculations \n",
+ "h1 = s*h/s1\n",
+ "v = 3.142*d*d*0.25*h1\n",
+ "x = h1/2\n",
+ "cog = h/2\n",
+ "h2 = cog-x\n",
+ "a = 3.142*d*d*d*d/64\n",
+ "bm = a/v\n",
+ "mh = bm-h2\n",
+ "\n",
+ "# Results \n",
+ "print \"metacentric height in m,negative sign indicte that cylinder is in unstable equilibrium\",round(mh,4),\"m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "metacentric height in m,negative sign indicte that cylinder is in unstable equilibrium -0.3833 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12 Page No : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d = 4.\n",
+ "s1 = 0.6\n",
+ "s2 = 0.9\n",
+ "l = 1.\n",
+ "\n",
+ "# Calculations \n",
+ "h = s1*l/s2\n",
+ "cob = h/2\n",
+ "cog = l/2\n",
+ "dcog = cog-cob\n",
+ "i = 3.142*d*d*d*d/64\n",
+ "v = 3.142*0.25*d*d*h\n",
+ "bm = i/v\n",
+ "bm = dcog\n",
+ "l = (6*1.5)**0.5\n",
+ "\n",
+ "# Results \n",
+ "print \"maximium lenght of cylinder in m\",l,\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximium lenght of cylinder in m 3.0 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13 Page No : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "s = 2.\n",
+ "w = 340.\n",
+ "v = 0.5*s*s*s\n",
+ "z = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "w1 = z*4\n",
+ "gb = s/4-s/8\n",
+ "i = s*s*s*s/(12)\n",
+ "v = 4\n",
+ "bm = i/v\n",
+ "gm = bm+gb\n",
+ "p = w/(w1*gm)\n",
+ "theta = math.degrees(math.atan(p))\n",
+ "\n",
+ "# Results \n",
+ "print \"angle through which cube will tilt in minutes\",round((theta*60),3)\n",
+ "\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle through which cube will tilt in minutes 51.059\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14 Page No : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "l = 60.\n",
+ "b = 9.\n",
+ "w = 16.*1000000\n",
+ "w1 = 160.*1000\n",
+ "y = 6.\n",
+ "q = 3.\n",
+ "sp = 10104.\n",
+ "\n",
+ "# Calculations \n",
+ "i = 0.75*l*b*b*b/12\n",
+ "v = w/sp\n",
+ "bm = i/v\n",
+ "gm = (w1*y)/(w*(math.tan(math.radians(q))))\n",
+ "mcd = 2-bm\n",
+ "cogd = gm+mcd\n",
+ "\n",
+ "# Results \n",
+ "print \"metacentric height %.3f m \"%gm\n",
+ "print \"position of centre of gravity below the water line %.3f m\"%cogd\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "metacentric height 1.145 m \n",
+ "position of centre of gravity below the water line 1.419 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15 Page No : 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "w = 450000.\n",
+ "y = 5.5\n",
+ "w1 = 80.*1000000\n",
+ "q = 3.\n",
+ "\n",
+ "# Calculations \n",
+ "gm = (w*y)/(w1*math.tan(math.radians(q)))\n",
+ "p = 12.5*1000\n",
+ "n = 120.\n",
+ "T = (p*60000)/(2*math.pi*n)\n",
+ "z = T/(w1*gm)\n",
+ "theta = math.degrees(math.atan(z))\n",
+ "\n",
+ "# Results \n",
+ "print \"angle of heel in degree %.4f\"%theta\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle of heel in degree 1.2066\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch3.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch3.ipynb
new file mode 100755
index 00000000..e5e9a49f
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch3.ipynb
@@ -0,0 +1,604 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0458e76e5cbaddd943b9a671e1b1b350576726b8ff19fee2507d932165451e88"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Flow of Fluids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No : 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d1 = 0.3\n",
+ "d2 = 0.1\n",
+ "z1 = 6.\n",
+ "z2 = 3.\n",
+ "p1 = 200.*1000\n",
+ "q1 = 0.07\n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "v1 = q1/a1\n",
+ "v2 = q1/a2\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "#applying bernoulli equation\n",
+ "p2 = ((z1-z2)+(((v1**2)-(v2**2))/(2*g))+(p1/w))*w\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure at point B in N/m2\",round(p2,2),\"N/m**2\"\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure at point B in N/m2 190202.44 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No : 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d1 = 1.\n",
+ "d2 = 0.5\n",
+ "q = 0.1\n",
+ "p1 = 70.*1000\n",
+ "l = 60.\n",
+ "z2 = 0.\n",
+ "z1 = l/20\n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "v1 = q/a1\n",
+ "v2 = q/a2\n",
+ "w = 9810.\n",
+ "g = 9.91\n",
+ "\n",
+ "# Calculations \n",
+ "# applying bernoulli equation\n",
+ "p2 = ((z1-z2)+(((v1**2)-(v2**2))/(2*g))+(p1/w))*w\n",
+ "\n",
+ "# Results \n",
+ "print \"presssure at lower end in N/m2 %d\"%round(p2,3),\"N/m**2\"\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "presssure at lower end in N/m2 99309 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "d1 = 0.2\n",
+ "d2 = 0.1\n",
+ "l = 4.\n",
+ "x = 30.\n",
+ "p1 = 392.4*1000\n",
+ "q = 0.035\n",
+ "z1 = 0\n",
+ "\n",
+ "# Calculations \n",
+ "z2 = l*math.sin(math.radians(x))\n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "v1 = q/a1\n",
+ "v2 = q/a2\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "p2 = ((z1-z2)+(((v1**2)-(v2**2))/(2*g))+(p1/w))*w\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure intensity at outlet in N/m2\",round(p2,2),\"N/m**2\"\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure intensity at outlet in N/m2 363471.12 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No : 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d1 = 0.2\n",
+ "d2 = 0.1\n",
+ "d3 = 0.15\n",
+ "v1 = 4\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "vh1 = (v1**2)/(2*g)\n",
+ "a1 = 3.142*d1*d1/4\n",
+ "a2 = 3.142*d2*d2/4\n",
+ "a3 = 3.142*d3*d3/4\n",
+ "v2 = (a1*v1)/a2\n",
+ "vh2 = (v2**2)/(2*g)\n",
+ "v3 = (a1*v1)/a3\n",
+ "vh3 = (v3**2)/(2*g)\n",
+ "q = a1*v1\n",
+ "mf = q*1000\n",
+ "\n",
+ "# Results \n",
+ "print \"velocity head at point 1\",round(vh1,3),\"m\"\n",
+ "print \"velocity head at point 2\",round(vh2,3),\"m\"\n",
+ "print \"velocity head at point 3\",round(vh3,3),\"m\"\n",
+ "print \"mass flow rate in kg/sec\",mf\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity head at point 1 0.815 m\n",
+ "velocity head at point 2 13.048 m\n",
+ "velocity head at point 3 2.577 m\n",
+ "mass flow rate in kg/sec 125.68\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No : 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d1 = 0.2\n",
+ "d2 = 0.5\n",
+ "p1 = 98.1*1000\n",
+ "p2 = 58.86*1000\n",
+ "q = 0.2\n",
+ "z1 = 0\n",
+ "z2 = 4.\n",
+ "g = 9.81\n",
+ "s = 0.87\n",
+ "\n",
+ "# Calculations \n",
+ "a1 = 3.142*d1*d1/4\n",
+ "a2 = 3.142*d2*d2/4\n",
+ "v1 = q/a1\n",
+ "v2 = q/a2\n",
+ "w = 9810\n",
+ "ph1 = p1/(w*s)\n",
+ "ph2 = p2/(w*s)\n",
+ "vh1 = (v1**2)/(2*g)\n",
+ "vh2 = (v2**2)/(2*g)\n",
+ "th1 = vh1+ph1+z1\n",
+ "th2 = vh2+ph2+z2\n",
+ "tl = th1-th2\n",
+ "\n",
+ "# Results \n",
+ "print \"loss of head in m,flow from 1 to 2\",round(tl,3),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "loss of head in m,flow from 1 to 2 2.61 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No : 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d1 = 0.3\n",
+ "d2 = 0.15\n",
+ "a1 = 3.142*d1*d1/4\n",
+ "a2 = 3.142*d2*d2/4\n",
+ "H = 0.18\n",
+ "Cd = 0.85\n",
+ "s2 = 13.6\n",
+ "s1 = 1.\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "h = H*((s2/s1)-1)\n",
+ "g = 9.81\n",
+ "q = (Cd*a1*a2*((2*g*h)**0.5))/(((a1**2)-(a2**2))**0.5)\n",
+ "q1 = q*1000\n",
+ "\n",
+ "# Results \n",
+ "print \"rate of flow in litres/sec\",round(q1,2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of flow in litres/sec 103.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No : 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "q = 0.1\n",
+ "d1 = 0.2\n",
+ "Cd = 0.9\n",
+ "H = 0.4\n",
+ "s1 = 1.\n",
+ "s2 = 13.6\n",
+ "g = 9.8\n",
+ "\n",
+ "# Calculations \n",
+ "h = H*((s2/s1)-1)\n",
+ "a1 = math.pi*d1*d1/4\n",
+ "z = 1+(((Cd*a1*((2*g*h)**0.5))/q)**2)\n",
+ "a2 = ((a1**2)/z)**0.5\n",
+ "d2 = (4*a2/3.1)**0.5\n",
+ "\n",
+ "# Results \n",
+ "print \"diameter of throat in m\",round(d2,3)\n",
+ " \n",
+ "# note : rounding off error. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter of throat in m 0.117\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 Page No : 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "q = 0.08\n",
+ "d1 = 0.3\n",
+ "d2 = 0.15\n",
+ "a1 = 3.142*d1*d1/4\n",
+ "a2 = 3.142*d2*d2/4\n",
+ "h = 1.5\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "z = (a1*a2*((2*g*h)**0.5))/(((a1**2)-(a2**2))**0.5)\n",
+ "Cd = q/z\n",
+ "\n",
+ "# Results \n",
+ "print \"co-efficient of meter\",round(Cd,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "co-efficient of meter 0.808\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No : 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s2 = 13.6\n",
+ "s1 = 0.9\n",
+ "H = 0.25\n",
+ "h = H*((s2/s1)-1)\n",
+ "Cd = 0.98\n",
+ "w = 9810*s1\n",
+ "d1 = 0.3\n",
+ "d2 = 0.15\n",
+ "\n",
+ "# Calculations \n",
+ "a1 = 3.142*d1*d1/4\n",
+ "a2 = 3.142*d2*d2/4\n",
+ "dz = 0.3\n",
+ "g = 9.81\n",
+ "q = (Cd*a1*a2*((2*g*h)**0.5))/(((a1**2)-(a2**2))**0.5)\n",
+ "dp = (h+dz)*w\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge of the oil in m3/sec\",round(q,4)\n",
+ "print \"pressure diffrence in entrance and throat section \",dp,\"N/m**2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge of the oil in m3/sec 0.1488\n",
+ "pressure diffrence in entrance and throat section 33795.45 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No : 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "H = 0.1\n",
+ "w = 9810.\n",
+ "sw = 12.\n",
+ "\n",
+ "# Calculations \n",
+ "h = H*(w/sw)\n",
+ "Cv = 0.96\n",
+ "g = 9.81\n",
+ "v = Cv*((2*g*h)**0.5)\n",
+ "v1 = v*18/5\n",
+ "\n",
+ "# Results \n",
+ "print \"speed of the plane\",round(v1,2),\"Km/hr\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of the plane 138.41 Km/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 Page No : 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d1 = 0.05\n",
+ "d2 = 0.025\n",
+ "\n",
+ "# Calculations \n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "Cd = 0.94\n",
+ "g = 9.81\n",
+ "k = ((((a1**2)/(a2**2))-1)*(1-(Cd**2)))/(2*g*(a1**2)*(Cd**2))\n",
+ "\n",
+ "# Results \n",
+ "print \"venturimeter constant m-5/s2\",round(k,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "venturimeter constant m-5/s2 26123.403\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No : 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d0 = 0.05\n",
+ "d1 = 0.1\n",
+ "H = 0.09\n",
+ "s2 = 13.6\n",
+ "s1 = 1\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "h = H*((s2/s1)-1)\n",
+ "Cd = 0.65\n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a0 = math.pi*d0*d0/4\n",
+ "q = (Cd*a1*a0*((2*g*h)**0.5))/(((a1**2)-(a0**2))**0.5)\n",
+ "q1 = q*(10**6)\n",
+ "\n",
+ "# Results \n",
+ "print \"actual flow rate in cm3/sec\",round(q1,3),\"cm**3/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "actual flow rate in cm3/sec 6217.469 cm**3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch4.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch4.ipynb
new file mode 100755
index 00000000..09171b1c
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch4.ipynb
@@ -0,0 +1,429 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:33c973de032c4928bee62a1f4d5e7589d324d9f00e5e077d3c7727973049f86e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Flow Through Orifices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page No : 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "q = 0.0982\n",
+ "d = 0.12\n",
+ "H = 10.\n",
+ "x = 4.5\n",
+ "y = 0.54\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Vth = (2*g*H)**0.5\n",
+ "a = 3.142*d*d/4\n",
+ "Qth = Vth*a\n",
+ "Cd = q/Qth\n",
+ "Cv = ((x*x)/(4*y*H))**0.5\n",
+ "Cc = Cd/Cv\n",
+ "\n",
+ "# Results \n",
+ "print \"Cd ,Cv, Cc of the orifice\",round(Cd,4),round(Cv,3),round(Cc,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cd ,Cv, Cc of the orifice 0.6198 0.968 0.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No : 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "D = 0.1\n",
+ "d = 0.05\n",
+ "q = 0.02\n",
+ "A = 3.142*D*D/4\n",
+ "g = 9.81\n",
+ "w = 9810.\n",
+ "p = 58.86*1000\n",
+ "\n",
+ "# Calculations \n",
+ "v = q/A\n",
+ "Vh = (v*v)/(2*g)\n",
+ "Ph = p/w\n",
+ "Th = Ph+Vh\n",
+ "a = 3.142*d*d/4\n",
+ "Cd = q/(a*((2*g*Th)**0.5))\n",
+ "\n",
+ "# Results \n",
+ "print \"co-efficient of discharge\",round(Cd,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "co-efficient of discharge 0.914\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No : 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Cd = 0.6\n",
+ "H1 = 3.\n",
+ "H2 = 4.\n",
+ "b = 2.\n",
+ "\n",
+ "# Calculations \n",
+ "g = 9.81\n",
+ "Q = (2*Cd*b*((2*g)**0.5)*((H2*H2*H2)**0.5-(H1*H1*H1)**0.5))/3\n",
+ "q1 = Q*1000\n",
+ "\n",
+ "# Results \n",
+ "print \"dischsrge flow rate in litres/sec\",round(q1,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dischsrge flow rate in litres/sec 9935.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No : 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 0.75\n",
+ "H1 = 2.25\n",
+ "H2 = 2.5\n",
+ "H = 0.5\n",
+ "g = 9.81\n",
+ "Cd = 0.62\n",
+ "\n",
+ "# Calculations \n",
+ "Q = Cd*b*(H2-H1)*((2*g*H)**0.5)\n",
+ "Q1 = Q*1000\n",
+ "\n",
+ "# Results \n",
+ "print \"discherge through the orifice in litres/sec\",round(Q1,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discherge through the orifice in litres/sec 364.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No : 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 2.\n",
+ "d = 3.\n",
+ "H1 = 4.\n",
+ "H2 = 7.\n",
+ "\n",
+ "# Calculations \n",
+ "H = 0.8+H1\n",
+ "Cd = 0.62\n",
+ "g = 9.81\n",
+ "Q1 = (2*Cd*b*((2*g)**0.5)*((H*H*H)**0.5-(H1*H1*H1)**0.5))/3\n",
+ "Q2 = Cd*b*(H2-H)*((2*g*H)**0.5)\n",
+ "Q = Q1+Q2\n",
+ "q = Q*1000\n",
+ "\n",
+ "# Results \n",
+ "print \"Discharge in litres/sec\",round(q,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Discharge in litres/sec 35687.468\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 Page No : 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 20.\n",
+ "b = 10.\n",
+ "a = l*b\n",
+ "H1 = 1.5\n",
+ "Cd = 0.62\n",
+ "H2 = 0\n",
+ "T = 5.*60\n",
+ "n = 4.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "a1 = (2*a*((H1**0.5)-(H2**0.5)))/(Cd*T*((2*g)**0.5))\n",
+ "d = ((4*a1)/(3.142*n))**0.5\n",
+ "d1 = d*100\n",
+ "\n",
+ "# Results \n",
+ "print \"diameter of the orifice in cm\",round(d1,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter of the orifice in cm 43.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8 Page No : 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l1 = 10.\n",
+ "b1 = 5.\n",
+ "l2 = 5.\n",
+ "b2 = 2.5\n",
+ "a1 = l1*b1\n",
+ "a2 = l2*b2\n",
+ "d = 0.2\n",
+ "a = 3.142*d*d/4\n",
+ "H1 = 4.\n",
+ "g = 9.81\n",
+ "q = 25.\n",
+ "Cd = 0.62\n",
+ "\n",
+ "# Calculations \n",
+ "h1 = q/a1\n",
+ "h2 = q/a2\n",
+ "H2 = H1-h1-h2\n",
+ "T = (2*a1*a2*((H1)**0.5-(H2)**0.5))/(a*Cd*(a1+a2)*((2*g)**0.5))\n",
+ "\n",
+ "# Results \n",
+ "print \"time taken to flow 25 m3 in sec\",round(T,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time taken to flow 25 m3 in sec 179.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No : 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "Cd = 0.8\n",
+ "D = 2.\n",
+ "r = 1.\n",
+ "H1 = 2.\n",
+ "d = 0.1\n",
+ "a = math.pi*d*d/4\n",
+ "l = 8.\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "T = (4*l*((2*r)**1.5-(2*r-H1)**1.5))/(3*Cd*a*((2*g)**0.5))\n",
+ "\n",
+ "# Results \n",
+ "print \"time taken for emptying the boiler in min\",round((T/60),1)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time taken for emptying the boiler in min 18.1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10 Page No : 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "r = 5.\n",
+ "h1 = 5.\n",
+ "d = 0.08\n",
+ "a = 0.005\n",
+ "h2 = h1-2\n",
+ "\n",
+ "# Calculations \n",
+ "Cd = 0.6\n",
+ "g = 9.81\n",
+ "z = ((2*r*((h1**1.5)-(h2**1.5)))/3)-((((h1**2.5)-(h2**2.5)))/5)\n",
+ "T = (z*2*3.142)/(Cd*a*((2*g)**0.5))\n",
+ "\n",
+ "# Results \n",
+ "print \"time in seconds to lower the level by 2m\",round(T,0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time in seconds to lower the level by 2m 5620.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch5.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch5.ipynb
new file mode 100755
index 00000000..e7f23c60
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch5.ipynb
@@ -0,0 +1,495 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3ba83c4a558b39f0e29ab129afe92e29743f0b738fbd3a8e9c39956304967803"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Notches and weirs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page No : 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "q = 0.2\n",
+ "Cd = 0.62\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "# using the relation\n",
+ "z = (3*q*(2**1.5))/(2*Cd*((2*g)**0.5))\n",
+ "b = z**0.4\n",
+ "\n",
+ "# Results \n",
+ "print \"the lenght of the notch in cm \",round((b*100),1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the lenght of the notch in cm 62.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No : 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "b = 1.\n",
+ "H = 0.15\n",
+ "Cd1 = 0.62\n",
+ "x = 90.\n",
+ "g = 9.81\n",
+ "Cd2 = 0.58\n",
+ "\n",
+ "# Calculations \n",
+ "Q1 = 2*Cd1*b*((2*g*H*H*H)**0.5)/3\n",
+ "z = (15*Q1)/(8*Cd2*((2*g)**0.5)*(math.tan(math.radians(x/2))))\n",
+ "H1 = z**0.4\n",
+ "\n",
+ "# Results \n",
+ "print \"the depth over the traingular veir in cm\",round((H1*100),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the depth over the traingular veir in cm 35.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No : 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "x = 90.\n",
+ "Cd = 0.62 # co-efficient\n",
+ "H = 0.36\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Q = (8*Cd*math.tan(math.radians(x/2))*((2*g)**0.5)*(H**2.5))/15\n",
+ "q = Q*1000\n",
+ "\n",
+ "# Results \n",
+ "print \"the actual discharge in litres/sec\",round(q,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the actual discharge in litres/sec 113.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page No : 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "x = 90.\n",
+ "H = 0.2\n",
+ "b = 0.3\n",
+ "Cd = 0.62\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "q1 = (8*Cd*math.tan(math.radians(x/2))*((2*g)**0.5)*(H**2.5))/15\n",
+ "q2 = 2*Cd*b*((2*g*H*H*H)**0.5)/3\n",
+ "q = q1+q2\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge over the trapezoidal notch in m3/sec\",round(q,6)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge over the trapezoidal notch in m3/sec 0.075327\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No : 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = 20*(10**6)\n",
+ "x = 0.03\n",
+ "q = a*x\n",
+ "qf = q*0.4/3600\n",
+ "n = 2.\n",
+ "H = 0.6\n",
+ "\n",
+ "# Calculations \n",
+ "# using Francis formula \n",
+ "L = (qf/(1.84*(H**1.5)))+(0.1*n*H)\n",
+ "\n",
+ "# Results \n",
+ "print \"the lenght of the weir in m\",round(L,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the lenght of the weir in m 78.0786\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No : 101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "L = 36\n",
+ "v1 = 2\n",
+ "g = 9.81\n",
+ "H = 1.2\n",
+ "H1 = (v1*v1)/(2*g)\n",
+ "n = 2*12\n",
+ "w = 0.6\n",
+ "Nv = 11\n",
+ "\n",
+ "# Calculations \n",
+ "Lf = L-(Nv*w)\n",
+ "Q = 1.84*(Lf-(0.1*n*(H+H1)))*((H+H1)**1.5-(H1**1.5))\n",
+ "\n",
+ "# Results \n",
+ "print \"dischsrge over the weir in m3/sec\",round(Q,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dischsrge over the weir in m3/sec 75.261\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No : 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 0.77\n",
+ "H = 0.39\n",
+ "H1 = 0.6\n",
+ "Dp = H+H1\n",
+ "Cd = 0.623\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Q = (2*Cd*l*((2*g*H*H*H)**0.5))/3\n",
+ "v = Q/(l*Dp)\n",
+ "Ha = (v*v)/(2*g)\n",
+ "q = (2*Cd*l*((2*g)**0.5)*(((H+Ha)**1.5)-(Ha**1.5)))/3\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge in m3/sec\",round(q,6)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge in m3/sec 0.357447\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No : 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q1 = 0.005\n",
+ "Cd = 0.62\n",
+ "g = 9.81\n",
+ "Q2 = 0.75\n",
+ "h = 0.07\n",
+ "\n",
+ "# Calculations \n",
+ "z = (Q1*15)/(8*Cd*((2*g)**0.5)*(h**2.5))\n",
+ "H = h*((Q2/Q1)**0.4)\n",
+ "W = 2*H*z\n",
+ "\n",
+ "\n",
+ "print \"width of the water surface in m\",round(W,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "width of the water surface in m 2.736\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 4.\n",
+ "H = 0.2\n",
+ "Cd = 0.62\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Q1 = 2*Cd*b*((2*g*H*H*H)**0.5)/3\n",
+ "Q2 = (2*Cd*((2*g)**0.5)*(H**1.5)*(b-(0.2*H)))/3\n",
+ "m = 0.405+(0.003/H)\n",
+ "Q3 = m*b*((2*g)**0.5)*(H**1.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge when end contraction are supressed in m3/sec\",round(Q1,3)\n",
+ "print \"discharge when end contraction are taken into account by francis formula in m3/sec\",round(Q2,4)\n",
+ "print \"discharge when end contraction are taken into account by bazin formula in m3/sec\",round(Q3,5)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge when end contraction are supressed in m3/sec 0.655\n",
+ "discharge when end contraction are taken into account by francis formula in m3/sec 0.6485\n",
+ "discharge when end contraction are taken into account by bazin formula in m3/sec 0.66559\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No : 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Cd = 0.6\n",
+ "x = 45.\n",
+ "H = 0.5\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations and Results\n",
+ "q1 = (8*Cd*math.tan(math.radians(x/2))*((2*g)**0.5)*(H**2.5))/15\n",
+ "\n",
+ "print \"rate of flow over the rectangular notch in m3/sec\",round(q1,5)\n",
+ "\n",
+ "dq1 = 0.025\n",
+ "dh = dq1*H/2.5\n",
+ "h1 = H+dh\n",
+ "h2 = H-dh\n",
+ "print \"limiting values of head in centimeters\",h2*100,h1*100\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of flow over the rectangular notch in m3/sec 0.10379\n",
+ "limiting values of head in centimeters 49.5 50.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No : 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Cd = 0.6\n",
+ "x = 90.\n",
+ "q = 0.05\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "dh = 0.00025\n",
+ "z = (15*q)/(8*Cd*((2*g)**0.5)*(math.tan(math.radians(x/2))))\n",
+ "H = z**0.4\n",
+ "error = 2.5*(dh/H)\n",
+ "\n",
+ "# Results \n",
+ "print \"the percentage error in the discharge\",round((error),5)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the percentage error in the discharge 0.00238\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch6.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch6.ipynb
new file mode 100755
index 00000000..97c10a73
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch6.ipynb
@@ -0,0 +1,835 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e6fd288db6f632d2f9db4681e283b542c5b7c72c7f4eb7e9aa016cd430f69af5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Fluid Mechanics and Hydraulic Machines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page No : 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Rn = 1700.\n",
+ "v = 0.744*(10**-4)\n",
+ "d = 0.05\n",
+ "\n",
+ "# Calculations \n",
+ "V = (Rn*v)/d\n",
+ "Vmax = 2*V\n",
+ "x = 0.00625\n",
+ "r = (d/2)-x\n",
+ "V1 = Vmax*(1-(2*r/d)**2)\n",
+ "\n",
+ "# Results \n",
+ "print \"velocity at the point 6.25 mm from the wall in m/sec\",V1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity at the point 6.25 mm from the wall in m/sec 2.2134\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page No : 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 0.3\n",
+ "p = 787.\n",
+ "v = 1.6*(10**-6)\n",
+ "Rn = 2000.\n",
+ "\n",
+ "# Calculations \n",
+ "V = Rn*v/d\n",
+ "a = math.pi*d*d/4\n",
+ "Q = a*V\n",
+ "\n",
+ "# Results \n",
+ "print \"maximum flow rate for which the flow is maximium %.3e\"%Q,\"m**3/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum flow rate for which the flow is maximium 7.540e-04 m**3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No : 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "vd = 8*(10**-3)*0.1\n",
+ "p = 996.\n",
+ "\n",
+ "# Calculations \n",
+ "vk = vd/p\n",
+ "\n",
+ "# Results \n",
+ "print \"kinematic vismath.cosity in m2/sec %.3e\"%vk\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinematic vismath.cosity in m2/sec 8.032e-07\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page No : 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "u = 1.5/98.1\n",
+ "s = 0.81\n",
+ "d = 0.14\n",
+ "Q = 0.03\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "p = s*1000/g\n",
+ "a = math.pi*d*d/4\n",
+ "V = Q/a\n",
+ "Rn = V*p*d/u\n",
+ "\n",
+ "# Results \n",
+ "print \"Rn less than 2000, flow is laminar\",round(Rn,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rn less than 2000, flow is laminar 1473.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No : 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d = 0.2\n",
+ "Q = 0.088\n",
+ "l = 5.\n",
+ "vd = 0.01\n",
+ "p = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "v = vd/(p*10)\n",
+ "a = 3.142*d*d/4\n",
+ "g = 9.81\n",
+ "V = Q/a\n",
+ "Re = V*d/v\n",
+ "f = 0.0018+(0.092/(3*(Re**0.5)))\n",
+ "Hf = (4*f*l*V*V)/(d*2*g)\n",
+ "\n",
+ "# Results \n",
+ "print \"head lost due to friction in m\",round(Hf,5)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "head lost due to friction in m 0.0736\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No : 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "s = 0.75\n",
+ "d = 0.2\n",
+ "l = 1000.\n",
+ "Q = 3/60.\n",
+ "f = 0.01\n",
+ "a = math.pi*d*d/4\n",
+ "V = Q/a\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Hf = (4*f*l*V*V)/(d*2*g)\n",
+ "w = g*s*1000\n",
+ "dp = w*Hf\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure drop along its entire lenght in N/m2 %.2f\"%dp\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure drop along its entire lenght in N/m2 189977.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7 Page No : 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d = 0.3\n",
+ "g = 9.81\n",
+ "l = 400\n",
+ "Q = 0.3\n",
+ "f = 0.032\n",
+ "\n",
+ "# Calculations \n",
+ "a = 3.142*d*d/4\n",
+ "V = Q/a\n",
+ "Lentrance = (0.5*V*V)/(2*g)\n",
+ "Hf = (4*f*l*V*V)/(d*2*g)\n",
+ "Lexit = (V*V)/(2*g)\n",
+ "Totalloss = Lentrance+Hf+Lexit\n",
+ "\n",
+ "# Results \n",
+ "print \"diffrenc in elevation in m\",round(Totalloss,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " diffrenc in elevation in m 158.02\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No : 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 40.\n",
+ "l1 = 20.\n",
+ "l2 = 20.\n",
+ "d1 = 0.15\n",
+ "d2 = 0.3\n",
+ "H = 8.\n",
+ "f = 0.01\n",
+ "\n",
+ "# Calculations \n",
+ "h1 = (2*d2*d2)/(d1*d1)\n",
+ "h2 = 4*f*l1*16/d1\n",
+ "h3 = 9\n",
+ "h4 = 4*f*l2/d2\n",
+ "g = 9.81\n",
+ "ht = h1+h2+h3+h4+1\n",
+ "V2 = (H*2*g/ht)**0.5\n",
+ "a2 = 3.142*d2*d2/4\n",
+ "Q = V2*a2\n",
+ "\n",
+ "# Results \n",
+ "print \"rate of low in litres/sec\",round((Q*1000),0)\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of low in litres/sec 86.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No : 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 2000.\n",
+ "d = 0.2\n",
+ "V = 0.8\n",
+ "f = 0.01\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "hf = (4*f*l*V*V)/(d*2*g)\n",
+ "\n",
+ "# Results \n",
+ "print \"Head loss due to friction in pipeline\",round(hf,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Head loss due to friction in pipeline 13.0479\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No : 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d1 = 0.15\n",
+ "d2 = 0.1\n",
+ "Q = 0.03\n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "V1 = Q/a1\n",
+ "V2 = Q/a2\n",
+ "c = 0.6\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "dz = (V2*V2/(2*g))-(V1*V1/(2*g))+(V2*V2/(2*g))*((1/c-1)**2)\n",
+ "w = 9810\n",
+ "dp = dz*w\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure loss across the contraction in N/m2\",round(dp,1)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure loss across the contraction in N/m2 9096.4\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No : 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d1 = 0.5\n",
+ "d2 = 0.25\n",
+ "p1 = 103005.\n",
+ "p2 = 67689.\n",
+ "p3 = p2\n",
+ "w = 9810.\n",
+ "g = 9.81\n",
+ "c = 0.65\n",
+ "\n",
+ "# Calculations and Results\n",
+ "z = 1-(1./16)+((1/c-1)**2)\n",
+ "dp = p1-p2\n",
+ "v2 = ((dp*2*g)/(w*z))**0.5\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "Q = v2*a2\n",
+ "print \"rate of flow in m3/sec\",round((Q*1000),2)\n",
+ "\n",
+ "v3 = v2\n",
+ "v1 = v3/4\n",
+ "v4 = v1\n",
+ "he = (v3-v4)**2/(2*g)\n",
+ "p4 = w*((p3/w)+((v3*v3-v4*v4)/(2*g))-he)\n",
+ "print \"pressure at the 50 cm enlarge section in N/m2\",round(p4,3)\n",
+ "\n",
+ "# note : rouding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of flow in m3/sec 372.37\n",
+ "pressure at the 50 cm enlarge section in N/m2 78478.522\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12 Page No : 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "d = 0.04\n",
+ "v = 2.\n",
+ "dp = 20000.\n",
+ "l = 8.\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "u = (dp*d*d)/(32*l*v)\n",
+ "\n",
+ "# Results \n",
+ "print \"viscosity of the flowing oil\",u,\"N/m**2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "viscosity of the flowing oil 0.0625 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13 Page No : 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 0.25\n",
+ "l = 12.*1000\n",
+ "w = 9320.\n",
+ "i = 1./300\n",
+ "v = 20.*(10**-4)\n",
+ "a = math.pi*d*d/4\n",
+ "q = 0.015\n",
+ "\n",
+ "# Calculations \n",
+ "V = q/a\n",
+ "g = 9.81\n",
+ "Rn = V*d/v\n",
+ "f = 16/Rn\n",
+ "hf = (4*f*l*V*V)/(2*d*g)\n",
+ "H = hf+(i*l)\n",
+ "p = (w*q*H)/1000\n",
+ "\n",
+ "# Results \n",
+ "print \"power required to pump the oil\",round(p,4),\"kW\"\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power required to pump the oil 59.1027 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.14 Page No : 129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "l = 600.\n",
+ "H = 160.\n",
+ "p = 1200.*1000\n",
+ "n = 0.85\n",
+ "f = 0.005\n",
+ "\n",
+ "# Calculations \n",
+ "hf = H/3\n",
+ "w = 9810\n",
+ "H1 = H-hf\n",
+ "q = p/(w*H1*n)\n",
+ "d = ((f*l*q*q)/(3*hf))**0.2\n",
+ "\n",
+ "\n",
+ "# Results \n",
+ "print \"minimium diameter of the pipe in cm\",round((d*100),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimium diameter of the pipe in cm 50.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15 Page No : 129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 0.25\n",
+ "l = 500.\n",
+ "a = math.pi*d*d/4\n",
+ "f = 0.006\n",
+ "q = 0.04\n",
+ "g = 9.81\n",
+ "p2 = 250.*1000\n",
+ "\n",
+ "# Calculations \n",
+ "V = q/a\n",
+ "hf = (4*f*l*V*V)/(d*2*g)\n",
+ "z1 = 0\n",
+ "z2 = 25\n",
+ "w = 9810\n",
+ "p1 = ((p2/w)+z2+hf)*w\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure at point A is N/m2\",round(p1,2),\"N/m**2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure at point A is N/m2 511186.44 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.16 Page No : 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "q = 0.15/(2.5*60)\n",
+ "d = 0.03\n",
+ "p1 = 9810.\n",
+ "p2 = 6867.\n",
+ "l = 2.\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "hf = (p1-p2)/w\n",
+ "a = 3.142*d*d/4\n",
+ "V = q/a\n",
+ "g = 9.81\n",
+ "f = (hf*2*g*d)/(4*l*V*V)\n",
+ "C = V*((4*l)/(d*hf))**0.5\n",
+ "\n",
+ "# Results \n",
+ "print \"darcy co-efficient\",round(f,3)\n",
+ "print \"Chezy formula\",round(C,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "darcy co-efficient 0.011\n",
+ "Chezy formula 42.173\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17 Page No : 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = 90.\n",
+ "H1 = 10.\n",
+ "d = 0.15\n",
+ "l = 400.\n",
+ "H2 = 7.\n",
+ "g = 9.81\n",
+ "f = 0.008\n",
+ "\n",
+ "# Calculations \n",
+ "z = 3.142*d*d*((2*g)**0.5)\n",
+ "z1 = (1.5+(4*f*l/d))**0.5\n",
+ "T = (8*a*z1*(H1**0.5-H2**0.5))/z\n",
+ "\n",
+ "# Results \n",
+ "print \"time to lower the level from 10m to 7m in hr\",round((T/3600),4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time to lower the level from 10m to 7m in hr 3.0742\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18 Page No : 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "q = 0.08\n",
+ "d1 = 0.25\n",
+ "d2 = 1.\n",
+ "l1 = 1500.\n",
+ "l2 = 1500.\n",
+ "\n",
+ "# Calculations \n",
+ "a1 = math.pi*d1*d1/4\n",
+ "a2 = math.pi*d2*d2/4\n",
+ "v2 = q*4/(math.pi*((1./32)+1))\n",
+ "v1 = v2*0.5\n",
+ "q1 = v1*a1\n",
+ "q2 = v2*a2\n",
+ "\n",
+ "# Results \n",
+ "print \"disharge through pipe in m3/sec\",round((q2*1000),2),round((q1*1000),4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "disharge through pipe in m3/sec 77.58 2.4242\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch7.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch7.ipynb
new file mode 100755
index 00000000..029af32e
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch7.ipynb
@@ -0,0 +1,817 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0b768eee327c152542090a0f937dd89a2c22ad814a4f647a6c9e07a61c4c86d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Flow Through Open Channels"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page No : 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 6. # m width\n",
+ "i = 1./1000 # slope\n",
+ "d = 2. # m, depth of water\n",
+ "C = 50 # Constant \n",
+ "\n",
+ "# Calculations \n",
+ "A = b*d\n",
+ "m = A/(b+2*d)\n",
+ "Q = A*C*((i*m)**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"flow rate assuming chezys consmath.tant eqaul to 50 in m3/sec\",round(Q,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flow rate assuming chezys consmath.tant eqaul to 50 in m3/sec 20.7846\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page No : 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 5. #m wide\n",
+ "d = 3. #m deep\n",
+ "i = 1./1000 #slope \n",
+ "C = 55. #constant\n",
+ "\n",
+ "# Calculations \n",
+ "A = b*d\n",
+ "m = A/(b+2*d)\n",
+ "Q = A*C*((i*m)**0.5)\n",
+ "v = Q/A\n",
+ "\n",
+ "# Results \n",
+ "print \"flow rate assuming chezys constant eqaul to 55 in m3/sec & velocity of flow in m/sec : \",v,Q\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flow rate assuming chezys constant eqaul to 55 in m3/sec & velocity of flow in m/sec : 2.03100960116 30.4651440174\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page No : 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 2.5 #m wide\n",
+ "d = 2.5 #m depth\n",
+ "C = 56. #constant\n",
+ "A = b*(7.5+d)*0.5\n",
+ "\n",
+ "# Calculations \n",
+ "P = 2.5+((b*b+d*d)**0.5)*2\n",
+ "m = A/P\n",
+ "i = 1./1200\n",
+ "Q = A*C*((m*i)**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"the diacharge through the channel in litres/sec\",round((Q*1000),4)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the diacharge through the channel in litres/sec 23093.0995\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No : 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "b = 3.5 #m, width\n",
+ "i = 1./1000 # slope\n",
+ "d = 1.5 #m, depth of flow\n",
+ "C = 60. # degree C\n",
+ "y = 60. #Constant\n",
+ "\n",
+ "# Calculations \n",
+ "x = 1.5/math.tan(math.radians(y))\n",
+ "w = b+x*2\n",
+ "A = (w+b)*0.5*d\n",
+ "P = b+2*((x*x+d*d)**0.5)\n",
+ "m = A/P\n",
+ "Q = A*C*((m*i)**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge carried by the canal in litres/sec : %.2f\"%(Q*1000)\n",
+ "\n",
+ "# note : rounding off error.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge carried by the canal in litres/sec : 12049.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5 Page No : 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 9. #m, width\n",
+ "i = 1./3000 #slope \n",
+ "d = 1.2 #m, water depth\n",
+ "\n",
+ "# Calculations \n",
+ "w = b+d\n",
+ "A = (w+b)*0.5*d\n",
+ "P = b+2*((d*d+d*d*0.25)**0.5)\n",
+ "m = A/P\n",
+ "C = 50.\n",
+ "V = C*((m*i)**0.5)\n",
+ "Q = V*A\n",
+ "\n",
+ "# Results \n",
+ "print \"average velocity of flow, rate of flow\",round(V,7),round((Q*1000),3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average velocity of flow, rate of flow 0.9064695 10442.529\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6 Page No : 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = 0.1 \n",
+ "b = 0.6 #m, width\n",
+ "C = 56 # constant\n",
+ "d = 0.3 #m, depth of flow\n",
+ "\n",
+ "# Calculations \n",
+ "a = b*d\n",
+ "v = Q/a\n",
+ "p = b+2*d\n",
+ "m = a/p\n",
+ "i = (v*v)/(C*C*m)\n",
+ "k = a*C*(m**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"bottom slope neccessary for uniform flow,conveyance of the channel section\",round(i,7),round(k,7)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bottom slope neccessary for uniform flow,conveyance of the channel section 0.0006561 3.9039672\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7 Page No : 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "i = 1./1000 #slope\n",
+ "d = 1.5 #m, depth of water\n",
+ "Cd = 0.55 #co-effient\n",
+ "a = d*d\n",
+ "C = 40. # constant\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "m = d\n",
+ "Q = a*C*((d*i)**0.5)\n",
+ "H = (3*Q/(Cd*2*((2*g)**0.5)))**0.4\n",
+ "height = d+3-H\n",
+ "\n",
+ "# Results \n",
+ "print \"height of the dam in m\",round(height,3)\n",
+ "\n",
+ "# note : book answer is wrong. kindly check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "height of the dam in m 3.143\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8 Page No : 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 1.4 #m, width\n",
+ "d = 1.4 #m, depth\n",
+ "n = 1./4 # side slope \n",
+ "i = 1./700 #bad slope\n",
+ "\n",
+ "# Calculations \n",
+ "N = 0.025\n",
+ "a = d*(b+(n*d))\n",
+ "p = b+(2*d*((n*n+1)**0.5))\n",
+ "m = a/p\n",
+ "q = (a*(m**0.6666)*(i**0.5))/N\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge from the trapezoidal channel in litres/sec\",round((q*1000),3)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge from the trapezoidal channel in litres/sec 2551.276\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9 Page No : 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q = 0.3 #m**3/s rate\n",
+ "D = 1.5 #m diameter\n",
+ "N = 0.02 #N \n",
+ "A = 3.142*D*D/(4*2)\n",
+ "p = 3.142*D/2\n",
+ "\n",
+ "# Calculations \n",
+ "m = A/p\n",
+ "i = ((Q*N)/(A*(m**0.6666)))**2\n",
+ "\n",
+ "# Results \n",
+ "print \"the slope of the sewer\",round(i,7)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the slope of the sewer 0.0001705\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10 Page No : 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D = 2.4 #m diameter\n",
+ "d = 1.5 #m, depth of water \n",
+ "i = 1./1500 #gradient \n",
+ "N = 0.02 # N Manning formula\n",
+ "\n",
+ "# Calculations \n",
+ "a = (d-(D/2))/(D/2)\n",
+ "z = math.degrees(math.acos(a))\n",
+ "z1 = math.radians(180 - z)\n",
+ "P = D*z1\n",
+ "A = D*D*0.25*(z1-(math.sin(2*z1)/2))\n",
+ "m = A/P\n",
+ "Q = (A*(m**0.6666)*(i**0.5))/N\n",
+ "\n",
+ "# Results \n",
+ "print \"the discharge through the sewer in m**3/s : %.5f\"%Q\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the discharge through the sewer in m**3/s : 2.96839\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No : 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 1.5 #m, wide\n",
+ "d = 0.8 #m, depth\n",
+ "Q = 0.75 #m**3/s\n",
+ "i = 1./2500 #slope \n",
+ "\n",
+ "# Calculations \n",
+ "A = b*d\n",
+ "P = b+(2*d)\n",
+ "m = A/P\n",
+ "C = Q/(((m*i)**0.5)*A)\n",
+ "z = (157.6/C)-1.81\n",
+ "K = z*(m**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"Chezys constant and coefficient of roughness\",round(C,2),round(K,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Chezys constant and coefficient of roughness 50.23 0.826\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No : 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 10. #m wide\n",
+ "d = 4. #m, depth of water\n",
+ "i = 1./1000 #slope\n",
+ "N = 0.03 #N Kutter's fprmula\n",
+ "\n",
+ "# Calculations \n",
+ "A = b*d\n",
+ "P = b+(2*d)\n",
+ "m = A/P\n",
+ "z1 = 23+(0.00155/i)+(1/N)\n",
+ "z2 = 1+((23+(0.00155/i))*(N/(m**0.5)))\n",
+ "C = z1/z2\n",
+ "Q = A*C*((m*i)**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"discharge through the recmath.tangular channel in litres/sec\",round((Q*1000),3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "discharge through the recmath.tangular channel in litres/sec 73053.236\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13 Page No : 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "b = 4. #m wide\n",
+ "d = 1.5 #m, depth of water\n",
+ "i = 1./1000 #slope\n",
+ "C = 55. # constant\n",
+ "\n",
+ "# Calculations and Results\n",
+ "A = b*d\n",
+ "P = b+(2*d)\n",
+ "m = A/P\n",
+ "Q = A*C*((m*i)**0.5)\n",
+ "d1 = (A/2)**0.5\n",
+ "b1 = d1*2\n",
+ "print \"the new dimension of the channel\",round(b1,3),round(d1,3)\n",
+ "\n",
+ "P1 = b1+(2*d1)\n",
+ "m1 = A/P1\n",
+ "Q1 = A*C*((m1*i)**0.5)\n",
+ "Qf = Q1-Q\n",
+ "print \"increase in discharge in m3/sec\",round(Qf,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the new dimension of the channel 3.464 1.732\n",
+ "increase in discharge in m3/sec 0.05\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No : 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "i = 1./2500 #slope\n",
+ "N = 0.02 # N, Manning's formula \n",
+ "Q = 14. #m**3/s\n",
+ "\n",
+ "# Calculations \n",
+ "n = 1./(math.radians(math.tan(60)))\n",
+ "a = (3**0.5)\n",
+ "d = ((Q*N*(2**0.6666))/((i**0.5)*a))**(3./8)\n",
+ "b = d*2/(3**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"dimension of the channel\",round(b,4),round(d,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dimension of the channel 3.0065 2.6037\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No : 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 20.2 #m**3/s\n",
+ "i = 1./2500 #slope\n",
+ "C = 60. #Constant \n",
+ "\n",
+ "# Calculations \n",
+ "n = 1./(math.radians(math.tan(60)))\n",
+ "a = (3**0.5)\n",
+ "d = ((Q*(2**0.5))/(C*a*(i**0.5)))**0.4\n",
+ "b = 2*d/(a)\n",
+ "\n",
+ "# Results \n",
+ "print \"dimension of the cross section in m\",round(b,4),round(d,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dimension of the cross section in m 3.294 2.8527\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.16 Page No : 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 10. #m**3/s\n",
+ "V = 2. #m/s, velocity\n",
+ "A = Q/V \n",
+ "n = 1. #m length \n",
+ "\n",
+ "# Calculations \n",
+ "d = (A/1.828)**0.5\n",
+ "b = 0.828*d\n",
+ "A1 = (b+(2*d*((n*n+1)**0.5)))\n",
+ "print \"area in m2 of lining required for 1m canal lenght\",round(A1,3)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area in m2 of lining required for 1m canal lenght 6.047\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No : 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 1. \n",
+ "Q = 14. #m**3/s\n",
+ "i = 1./1000 #slope\n",
+ "C = 44. #constant\n",
+ "a = 1.828 \n",
+ "\n",
+ "# Calculations \n",
+ "d = ((Q*(2**0.5))/(C*a*(i**0.5)))**0.4\n",
+ "b = d*0.828\n",
+ "cost = (b+n*d)*4\n",
+ "A = 1.828*d*d\n",
+ "C1 = 70.\n",
+ "d1 = ((Q*(2**0.5))/(C1*a*(i**0.5)))**0.4\n",
+ "b1 = 0.828*d1\n",
+ "cost1 = (b1+n*d1)*4\n",
+ "costl = (b1+(2*d1*((n*n+1)**0.5)))\n",
+ "totalcost = cost1+costl\n",
+ "\n",
+ "# Results \n",
+ "print \"lined channel is cheaper ,dimension in m\",round(b1,4),round(d1,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lined channel is cheaper ,dimension in m 1.5626 1.887\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18 Page No : 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 1.2 #m diameter\n",
+ "i = 1./1500 #slope \n",
+ "C = 52. #constant\n",
+ "z = 1.9-1./1 \n",
+ "\n",
+ "# Calculations \n",
+ "z1 = math.acos(z)\n",
+ "x = math.pi-z1\n",
+ "A = d*d*0.25*(x-(math.sin(2*x)/2))\n",
+ "P = d*x\n",
+ "m = A/P\n",
+ "Q = A*C*((m*i)**0.5)\n",
+ "\n",
+ "# Results \n",
+ "print \"the maximium discharge through the channel in litres/sec\",round((Q*1000),3)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the maximium discharge through the channel in litres/sec 873.637\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch8.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch8.ipynb
new file mode 100755
index 00000000..829a5e5d
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch8.ipynb
@@ -0,0 +1,759 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a6125783e5c667dece42915a12b250cb19816611a67eefd7aa139b1763963ae5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Impact of Jets"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page No : 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 25. #m/s velocity\n",
+ "F = 300. # N\n",
+ "g = 9.81 \n",
+ "p = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p\n",
+ "A = (F*g)/(w*V*V)\n",
+ "V1 = 35\n",
+ "F1 = (w*A*V1*V1)/(g)\n",
+ "\n",
+ "# Results \n",
+ "print \"force in N on the plate if the velocity of the jet is increased to 35 m/sec\",F1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force in N on the plate if the velocity of the jet is increased to 35 m/sec 588.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No : 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 0.05 # mm water \n",
+ "V = 15. #m/s velocity\n",
+ "g = 9.81 \n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p1\n",
+ "a = math.pi*d*d/4\n",
+ "F = (w*a*V*V)/g\n",
+ "u = 5\n",
+ "F1 = (w*a*((V-u)**2))/g\n",
+ "\n",
+ "# Results \n",
+ "print \"force in N on plate if plate is stationary\",round(F,3),\"N\"\n",
+ "print \"force in N on plate if plate is moving in the direction of the jet\",round(F1,2),\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force in N on plate if plate is stationary 441.786 N\n",
+ "force in N on plate if plate is moving in the direction of the jet 196.35 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 page no : 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 0.03 #m diameter\n",
+ "Fx = 900 # N \n",
+ "x = 30. #degree angle \n",
+ "g = 9.81 \n",
+ "w = g*1000\n",
+ "a = 3.142*d*d/4\n",
+ "\n",
+ "# Calculations \n",
+ "V = ((Fx*g)/(w*a*math.sin(math.radians(x))*math.sin(math.radians(x))))**0.5\n",
+ "Q = a*V\n",
+ "\n",
+ "# Results \n",
+ "print \"rate of flow in m3/sec\",round((Q*1000),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of flow in m3/sec 50.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No : 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 0.02 #m diameter\n",
+ "V = 20. #m/s, velocity \n",
+ "x = 15. #degree angle\n",
+ "g = 9.81 \n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p1\n",
+ "a = math.pi*d*d/4\n",
+ "W = (w*a*V*V)/(g*math.sin(math.radians(x)))\n",
+ "F1 = (w*a*V*V)/(2*g)\n",
+ "\n",
+ "# Results \n",
+ "print \"weight of the plate in N\",round(W,3),\"N\"\n",
+ "print \"force in N required at the lower edge of the plate : %.4f\"%F1,\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight of the plate in N 485.527 N\n",
+ "force in N required at the lower edge of the plate : 62.8319 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page No : 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 0.05 #m diameter\n",
+ "V = 20. #m/s velocity \n",
+ "y = 120. #degree angle\n",
+ "x = 180.-y \n",
+ "g = 9.81\n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p1\n",
+ "a = math.pi*d*d/4\n",
+ "F = (w*a*V*V*(1+math.cos(math.radians(x))))/(g)\n",
+ "\n",
+ "# Results \n",
+ "print \"force in N exerted by the water jet %.4f\"%F,\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force in N exerted by the water jet 1178.0972 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No : 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "d = 0.05 #m diameter\n",
+ "V = 20. #m velocity\n",
+ "u = 7. #m/s \n",
+ "a = math.pi*d*d/4 \n",
+ "g = 9.81\n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p1\n",
+ "F = (w*a*V*V)/g\n",
+ "F1 = (w*a*((V-u)**2))/g\n",
+ "work = F1*u\n",
+ "\n",
+ "# Results \n",
+ "print \"force in N if plate is fixed \",F\n",
+ "print \"force in N if plate is moving with a velocity of 7 m/sec\",round(F1,2)\n",
+ "print \"work done per sec by the jet\",round(work,3)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force in N if plate is fixed 785.398163397\n",
+ "force in N if plate is moving with a velocity of 7 m/sec 331.83\n",
+ "work done per sec by the jet 2322.815\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No : 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "W = 58.86 #N weighing\n",
+ "d = 0.02 #m diameter \n",
+ "V = 5. #m/s velocity\n",
+ "z = 0.15 #m axis \n",
+ "g = 9.81 \n",
+ "p1 = 1000. \n",
+ "w = g*p1\n",
+ "\n",
+ "# Calculations \n",
+ "a = math.pi*d*d/4\n",
+ "F = (w*a*V*V)/g\n",
+ "cog = 0.1\n",
+ "x = 30\n",
+ "P = (F*z)/cog\n",
+ "F1 = ((P*cog*(math.cos(math.radians(x))))+(W*cog*(math.sin(math.radians(x)))))\n",
+ "V1 = ((F1*g)/(w*a))**0.5\n",
+ "\n",
+ "# Results \n",
+ "print \"velocity in m/sec of the jet if the plate is deflected through 30 degree\",round(V1,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity in m/sec of the jet if the plate is deflected through 30 degree 3.55\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No : 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V = 25. #m velocity\n",
+ "u = 10. #m velocity \n",
+ "q = 0.001 #m**3/s\n",
+ "g = 9.81\n",
+ "p1 = 1000.\n",
+ "w = g*p1\n",
+ "x = 180. #degree \n",
+ "u1 = 8. #m velocity\n",
+ "\n",
+ "# Calculations \n",
+ "F1 = (w*q/g)*V*(1-math.cos(math.radians(x)))\n",
+ "F2 = (w*q*((V-u)**2)*(1-math.cos(math.radians(x))))/(g*V)\n",
+ "F3 = (w*q*(V-u1)*(1-math.cos(math.radians(x))))/g\n",
+ "\n",
+ "# Results \n",
+ "print \"force of jet in N when,the cup is stationary,the cup is moving with velocity of 10m/sec,series of cup with velocity of 8m/sec\" ,\\\n",
+ "F1,F2,F3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force of jet in N when,the cup is stationary,the cup is moving with velocity of 10m/sec,series of cup with velocity of 8m/sec 50.0 18.0 34.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No : 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "x1 = 30. #m/s velocity\n",
+ "V1 = 30. #degree \n",
+ "Q = 0.001 \n",
+ "g = 9.81\n",
+ "w = g*1000.\n",
+ "Vf1 = V1*math.sin(math.radians(x1))\n",
+ "Vw1 = V1*math.cos(math.radians(x1))\n",
+ "u = 15.\n",
+ "x2 = 120.\n",
+ "y1 = math.degrees(math.atan(Vf1/(Vw1-u)))\n",
+ "Vr1 = ((Vf1*Vf1)+((Vw1-u)**2))**0.5\n",
+ "z = u*math.sin(math.radians(x2))/Vr1\n",
+ "y2 = 60-math.degrees(math.asin(z))\n",
+ "V2 = Vr1*math.sin(math.radians(y2))/math.sin(math.radians(x2))\n",
+ "Vw2 = V2*math.cos(math.radians(x2/2))\n",
+ "W = (w*Q*(Vw1+Vw2)*u)/g\n",
+ "n = W*2/(V1*V1)\n",
+ "print \"angle of vane : %.3f degrees \\\n",
+ "\\nwork done of water entering the vane : %.3f Nm/s \\\n",
+ "\\nefficiency : %.2f %%\"%(y2,W,n*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle of vane : 15.670 degrees \n",
+ "work done of water entering the vane : 433.194 Nm/s \n",
+ "efficiency : 96.27 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No : 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "Q = 0.283 #m**3/s, flow of water \n",
+ "d = 0.05 #m diameter\n",
+ "x = 170. #angle \n",
+ "u = 48. #m/s velocity \n",
+ "g = 9.81 \n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p1\n",
+ "a = math.pi*d*d/4\n",
+ "V1 = Q/a\n",
+ "Vw1 = V1\n",
+ "Vr1 = V1-u\n",
+ "x1 = 0\n",
+ "Vr2 = Vr1\n",
+ "Vw2 = (Vr2*math.cos(math.radians(180-x)))-u\n",
+ "Fx = (w*a*(V1-u)*(Vw1+Vw2))/g\n",
+ "P = Fx*u/1000\n",
+ "n = (P*1000*g*2)/(w*Q*V1*V1)\n",
+ "\n",
+ "# Results \n",
+ "print \"force exerted by the jet : %.3f N \\\n",
+ "\\npower developed by the vane : %.4f kW \\\n",
+ "\\nefficiency : %.1f %%\"%(Fx,P,(n*100))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force exerted by the jet : 36014.111 N \n",
+ "power developed by the vane : 1728.6773 kW \n",
+ "efficiency : 58.8 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No : 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "y1 = 30. #angle\n",
+ "y2 = 15. #angle \n",
+ "a = 13.*(10**-4) #cm**2 \n",
+ "x1 = 15. #incline\n",
+ "V1 = 60. #m/s area moving \n",
+ "\n",
+ "# Calculations \n",
+ "Vf1 = V1*math.sin(math.radians(y2))\n",
+ "Vw1 = V1*math.cos(math.radians(y2))\n",
+ "u = Vw1-(Vf1/math.tan(math.radians(y1)))\n",
+ "Vw2 = u-(Vf1*math.cos(math.radians(y2))/math.sin(math.radians(y1)))\n",
+ "Vf2 = (u-Vw2)*math.tan(math.radians(y2))\n",
+ "V2 = (Vf2*Vf2+Vw2*Vw2)**0.5\n",
+ "x2 = math.degrees(math.atan(Vf2/Vw2))\n",
+ "g = 9.81\n",
+ "p1 = 1000\n",
+ "w = g*p1\n",
+ "Fx = (w*a*V1*(Vw1-Vw2))/g\n",
+ "Fy = (w*a*V1*(V1*math.sin(math.radians(y2))-V2*math.sin(math.radians(x2))))/g\n",
+ "Fr = (Fx*Fx+Fy*Fy)**0.5\n",
+ "o = math.degrees(math.atan(Fy/Fx))\n",
+ "\n",
+ "# Results \n",
+ "print \"velocity of the vane : %.4f m/s \\\n",
+ "\\ndirection of velocity at exit : %.4f m/s \\\n",
+ "\\nresultant force : %.4f N \\\n",
+ "\\nangle between forces : %.1f degrees\"%(u,V2,Fr,o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity of the vane : 31.0583 m/s \n",
+ "direction of velocity at exit : 8.1078 m/s \n",
+ "resultant force : 4476.2818 N \n",
+ "angle between forces : 7.5 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12 Page No : 177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V1 = 13. # m/s\n",
+ "y1 = 30. \n",
+ "y2 = y1\n",
+ "u = 4.5 # m/s\n",
+ "g = 9.81\n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "w = g*p1\n",
+ "Q = 0.001\n",
+ "x1 = math.degrees(math.acos(0.9394))\n",
+ "Vw1 = V1*math.cos(math.radians(x1))\n",
+ "Vr1 = (Vw1-u)/math.cos(math.radians(y1))\n",
+ "Vw2 = Vr1*math.cos(math.radians(y1))-u\n",
+ "Vf2 = Vr1*math.sin(math.radians(y1))\n",
+ "V2 = (Vf2*Vf2+Vw2*Vw2)**0.5\n",
+ "x2 = math.degrees(math.atan(Vf2/Vw2))\n",
+ "W = (w*Q*(Vw1+Vw2)*u)/g\n",
+ "\n",
+ "# Results \n",
+ "print \"direction of velocity : %.3f \\\n",
+ "\\nvelocity of water at exit : %.3f m/s \\\n",
+ "\\ndirection of work : %.3f \\\n",
+ "\\nmagnitude of work done per kg of water : %.3f\"%(x1,V2,x2,W)\n",
+ "\n",
+ "# note : rounding off errors."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "direction of velocity : 20.049 \n",
+ "velocity of water at exit : 5.490 m/s \n",
+ "direction of work : 54.193 \n",
+ "magnitude of work done per kg of water : 69.410\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13 Page No : 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "V1 = 40. #m/s velocity\n",
+ "u = 12. #m/s \n",
+ "x1 = 20. #angle\n",
+ "x2 = 90. #velocity \n",
+ "\n",
+ "# Calculations \n",
+ "Vw1 = V1*math.cos(math.radians(x1))\n",
+ "Vf1 = V1*math.sin(math.radians(x1))\n",
+ "y1 = math.degrees(math.atan(Vf1/(Vw1-u)))\n",
+ "Vr1 = Vf1/math.sin(math.radians(y1))\n",
+ "Vr2 = 0.9*Vr1\n",
+ "y2 = math.degrees(math.acos(u/Vr2))\n",
+ "W = 1*Vw1*u\n",
+ "n = W/(V1*V1*0.5*1)\n",
+ "\n",
+ "# Results \n",
+ "print \"vane angle at the exit : %.4f and %.4f \\\n",
+ "\\nwork done on the vane per kg of water : %.4f N m/s\\\n",
+ "\\nefficiency : %.2f %%\"%(y1,y2,W,(n*100))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vane angle at the exit : 28.1318 and 62.6435 \n",
+ "work done on the vane per kg of water : 451.0525 N m/s\n",
+ "efficiency : 56.38 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14 Page No : 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "d = 0.05 #m diameter\n",
+ "V1 = 25. #m/s velocity \n",
+ "x1 = 30. #angle\n",
+ "x = 50. #angle\n",
+ "x2 = x1+x\n",
+ "g = 10. #m/s**2\n",
+ "p1 = 1000.\n",
+ "\n",
+ "# Calculations \n",
+ "a = 3.142*d*d/4\n",
+ "w = g*p1\n",
+ "Fx = (w*a*V1*V1*(math.cos(math.radians(x1))-math.cos(math.radians(x2))))/g\n",
+ "Fy = (w*a*V1*V1*(math.sin(math.radians(x1))-math.sin(math.radians(x2))))/g\n",
+ "F = (Fx*Fx+Fy*Fy)**0.5\n",
+ "z = math.degrees(math.atan(-Fy/Fx))\n",
+ "\n",
+ "# Results \n",
+ "print \"resultant force %.3f and %.3f \\\n",
+ "\\nangle made by the resultant force with the horizontal : %.4f\"%(round(Fy,3),round(Fx,3),round(z,4))\n",
+ "\n",
+ "# note : It seems book answers are wrong. Kindly check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resultant force -595.026 and 849.785 \n",
+ "angle made by the resultant force with the horizontal : 35.0000\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15 Page No : 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "x1 = 0. \n",
+ "x2 = 60. # angle\n",
+ "V1 = 30. #m/s velocity\n",
+ "V2 = 25. #m/s velocity \n",
+ "m = 0.8 #Kg/s nozzle \n",
+ "\n",
+ "# Calculations \n",
+ "Fx = m*((V1*math.cos(math.radians(x1)))-(V2*math.cos(math.radians(x2))))\n",
+ "Fy = m*((V1*math.sin(math.radians(x1)))-(V2*math.sin(math.radians(x2))))\n",
+ "R = (Fx*Fx+Fy*Fy)**0.5\n",
+ "z = math.degrees(math.atan(-Fy/Fx))\n",
+ "\n",
+ "# Results \n",
+ "print \"magnitude and direction of resultant force :\",round(R,3),round(z,4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnitude and direction of resultant force : 22.271 51.0517\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/ch9.ipynb b/Fluid_Mechanics_and_Hydraulic_Machines/ch9.ipynb
new file mode 100755
index 00000000..e132d464
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/ch9.ipynb
@@ -0,0 +1,403 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:04bb97393d5fbbef8189e63f66336b0ac299ced6d9fe7802df79f548f7068027"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Reciprocating Pump"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page No : 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "D = 0.15 # cm\n",
+ "S = 0.25 # cm\n",
+ "N = 50. # r.p.m\n",
+ "Hs = 5. # m\n",
+ "Hd = 15 # m\n",
+ "ns = .6 \n",
+ "deltaD = 0.75\n",
+ "w = 9810.\n",
+ "\n",
+ "# Calculations \n",
+ "suction = w*math.pi*D**2*Hs/(4*ns) \n",
+ "delivery = (w*math.pi*D**2*Hd)/(4*deltaD)\n",
+ "p_required = ((suction+delivery)*S*N)/(1000*60)\n",
+ "\n",
+ "\n",
+ "# Results \n",
+ "print \"Power required by the pump : %.4f kW\"%p_required\n",
+ "\n",
+ "# note : book answer is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power required by the pump : 1.0233 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2 page no : 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "D = 0.18\n",
+ "s = 0.36\n",
+ "Hs = 3.\n",
+ "Hd = 45.\n",
+ "N = 50.\n",
+ "n = 0.85\n",
+ "\n",
+ "# Calculations \n",
+ "a = math.pi*D*D/4\n",
+ "Q = (2*a*s*N)/60\n",
+ "g = 9.81\n",
+ "w = g*1000\n",
+ "P = w*Q*(Hs+Hd)/(n*1000)\n",
+ "\n",
+ "# Results \n",
+ "print \"power in kw required to drive the pump : %.3f\"%P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power in kw required to drive the pump : 8.458\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 pageno : 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "D = 0.15\n",
+ "s = 0.3\n",
+ "Hs = 3.\n",
+ "Hd = 30.\n",
+ "n = 0.8\n",
+ "a = math.pi*D*D/4\n",
+ "N = 60./60\n",
+ "w = 9810.\n",
+ "Q = 0.62/60\n",
+ "\n",
+ "# Calculations \n",
+ "Qth = (2*a*s*N)\n",
+ "slip = (Qth-Q)/Qth\n",
+ "power = (w*Qth*(Hs+Hd))/(1000*n)\n",
+ "\n",
+ "# Results \n",
+ "print \"power in Kw required to drive the pump : %.2f kW \\\n",
+ "\\npercentage slip : %.3f %%\"%(round(power,2),round((slip*100),2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power in Kw required to drive the pump : 4.29 kW \n",
+ "percentage slip : 2.540 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page No : 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "D = 0.15 #mm\n",
+ "s = 0.3 #mm \n",
+ "N = 50./60 #r.p.m \n",
+ "H = 25. #m, height\n",
+ "Qact = 0.0042 #liter/s \n",
+ "Ld = 22. #m long \n",
+ "d = 0.1 #mm \n",
+ "\n",
+ "# Calculations \n",
+ "a = math.pi*D*D/4\n",
+ "Qth = a*s*N\n",
+ "w = 9810\n",
+ "power = w*Qth*H/1000\n",
+ "slip = (Qth-Qact)/Qth\n",
+ "W = 2*math.pi*N\n",
+ "a1 = math.pi*d*d/4\n",
+ "g = 9.81\n",
+ "Had = (Ld*a*W*W*s)/(g*a1*2)\n",
+ "\n",
+ "# Results \n",
+ "print \"theoritical discharge : %.8f m**3/s \\\n",
+ "\\ntheoritical power : %.5f kW \\\n",
+ "\\npercentage slip : %.2f %% \\\n",
+ "\\nacceleration head : %.2f m\"%(Qth,round(power,5),round((slip*100),2),round(Had,2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "theoritical discharge : 0.00441786 m**3/s \n",
+ "theoritical power : 1.08348 kW \n",
+ "percentage slip : 4.93 % \n",
+ "acceleration head : 20.75 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No : 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "s = 0.15 #m, strok length\n",
+ "Ls = 7. #7 pipe\n",
+ "ds = 0.075 #cylinder \n",
+ "N = 75./60 \n",
+ "Hs = 2.5 #m, water level\n",
+ "z = 16./9 \n",
+ "f = 0.01\n",
+ "W = 2*math.pi*N\n",
+ "g = 9.81\n",
+ "\n",
+ "# Calculations \n",
+ "Has = Ls*z*W*W*ds/g\n",
+ "H = Hs+Has\n",
+ "H1 = Has-Hs\n",
+ "Hfs = (4*f*Ls/(ds*2*g))*((z*W*ds)**2)\n",
+ "H2 = Hfs+Hs\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure head:beginning of suction stroke : %.4f m \\\n",
+ "\\nend of the suction stroke : %.4f m \\\n",
+ "\\nmiddle of the suction stroke : %.4f m\"%(round(H,4),round(H1,4),round(H2,4))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure head:beginning of suction stroke : 8.3688 m \n",
+ "end of the suction stroke : 3.3688 m \n",
+ "middle of the suction stroke : 2.7087 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No : 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "D = 0.08 #m diameter\n",
+ "s = 0.15 #m stroke \n",
+ "Hs = 3. # water for sump\n",
+ "ds = 0.03 #diameter \n",
+ "g = 9.81 \n",
+ "Ls = 4.5 \n",
+ "p = 78.86*(1000) #kN/m**2 \n",
+ "w = 9810. \n",
+ "W = 2*math.pi/60\n",
+ "\n",
+ "# Calculations \n",
+ "z = (D/ds)**2\n",
+ "Hsep = p/w\n",
+ "Habs = 10.3-Hsep\n",
+ "Has = Hsep-Hs\n",
+ "N = ((Has*g*2)/(z*W*W*s*Ls))**0.5\n",
+ "\n",
+ "# Results \n",
+ "print \"maximium speed in rpm at which may run without separation\",round(N,2),\"r.p.m\"\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximium speed in rpm at which may run without separation 43.34 r.p.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7 Page No : 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "Hs = 5.\n",
+ "Ls = 10.\n",
+ "D = 0.15 #m diameter\n",
+ "d = 0.1 \n",
+ "N = 30./60\n",
+ "s = 0.15 #m delivery head\n",
+ "g = 9.81\n",
+ "W = 2*math.pi*N\n",
+ "w = 9810.\n",
+ "ha = 10.3\n",
+ "\n",
+ "# Calculations \n",
+ "z = (D/d)**2\n",
+ "H = (Ls*z*W*W*s/g)\n",
+ "Ph = Hs+H\n",
+ "Phabs = ha-Ph\n",
+ "f = 0.01\n",
+ "Hfs = (4*f*Ls/(d*2*g))*((z*W*s)**2)\n",
+ "H1 = Hs+Hfs\n",
+ "H1abs = ha-H1\n",
+ "H2 = Hs-H\n",
+ "H2abs = ha-H2\n",
+ "Hd = 15.\n",
+ "Ld = 25.\n",
+ "H11 = (Ld*z*W*W*s/g)\n",
+ "H12 = H11+Hd\n",
+ "H12abs = ha+H12\n",
+ "Hfd = (4*f*Ld/(d*2*g))*((z*W*s)**2)\n",
+ "H22 = Hd+Hfd\n",
+ "H22abs = ha+H22\n",
+ "H3 = Hd-H11\n",
+ "H3abs = ha+H3\n",
+ "a = 3.142*D*D/4\n",
+ "Q = a*s*2*N\n",
+ "power = (w*Q*(Hs+Hd+(0.6666*Hfs)+Hfd*0.6666))/1000\n",
+ "\n",
+ "# Results \n",
+ "print \"pressure head at middle and end of suction stroke\",round(H1abs,4),round(H2abs,4)\n",
+ "print \"pressure head at beginning,middle,end of suction stroke\",round(H12abs,4),round(H22abs,3),round(H3abs,4)\n",
+ "print \"power in Kw required to drive the pump\",round(power,3)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure head at middle and end of suction stroke 5.0708 8.6955\n",
+ "pressure head at beginning,middle,end of suction stroke 33.7888 25.873 16.8112\n",
+ "power in Kw required to drive the pump 0.534\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch1.png b/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch1.png
new file mode 100755
index 00000000..2f9cd759
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch1.png
Binary files differ
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch10.png b/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch10.png
new file mode 100755
index 00000000..762fabcf
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch10.png
Binary files differ
diff --git a/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch11.png b/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch11.png
new file mode 100755
index 00000000..ce5f1c03
--- /dev/null
+++ b/Fluid_Mechanics_and_Hydraulic_Machines/screenshots/ch11.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter01.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter01.ipynb
new file mode 100755
index 00000000..8e50e4de
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter01.ipynb
@@ -0,0 +1,578 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e61d5eac9962a1b27acd93d08c5b466532db593eb946c997e161cd14ea1acee1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 01 : Operators and Expressions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: Page No.:4.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Usage of Arithmetic operators\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=10\n",
+ "j=20\n",
+ "\n",
+ "#the sum value of variables i and j stores in k variable \n",
+ "k=i+j\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of k is %d\"%(k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of k is 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: Page No.:4.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Demonstrations on arithmetic operators\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "a,b,c,d=input(\"Enter values of a, b, c, d: \")\n",
+ "\n",
+ "#Calculation\n",
+ "a+=(b*c)+d\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of a = %d \"%(a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values of a, b, c, d ,e: 12,90,56,43\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of a = 5095 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: Page No.:4.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find out all arithmetic operation on two given values\n",
+ "\n",
+ "#Variable Declaration\n",
+ "sum=sub=mul=rem=0\n",
+ "div=0.0\n",
+ "a=0\n",
+ "#User Input\n",
+ "b,c,d=input(\"Enter the values of b, c, d: \")\n",
+ "\n",
+ "sum = b + c\n",
+ "sub = b - c\n",
+ "mul = b * c\n",
+ "div = b/c\n",
+ "rem = b % d\n",
+ "\n",
+ "print \"Sum = %d, Sub = %d, Mul = %d, Div = %f\"%(sum,sub,mul,div)\n",
+ "print \"Remainder of division of b & d is %d\"%(rem)\n",
+ "print \"a=%d\"%(a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values of b, c, d: 2,6,45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 8, Sub = -4, Mul = 12, Div = 0.000000\n",
+ "Remainder of division of b & d is 2\n",
+ "a=0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: Page No.: 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use various relational operators\n",
+ "\n",
+ "#!=,==,>=,<= are assignment operator\n",
+ "\n",
+ "print \"Condition : Return values\"\n",
+ "print \" 5!=5 : %5d\"%(5!=5) \n",
+ "print \" 5==5 : %5d\"%(5==5)\n",
+ "print \" 5>=5 : %5d\"%(5>=5)\n",
+ "print \" 5<=5 : %5d\"%(5<=50)\n",
+ "print \" 5!=3 : %5d\"%(5!=3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Condition : Return values\n",
+ " 5!=5 : 0\n",
+ " 5==5 : 1\n",
+ " 5>=5 : 1\n",
+ " 5<=5 : 1\n",
+ " 5!=3 : 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: Page No.:4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Demonstrate of logical operator\n",
+ "\n",
+ "#Variable Declaration\n",
+ "c1=c2=c3=0\n",
+ "\n",
+ "#USer Input\n",
+ "c1,c2,c3=input(\"Enter Values of C1, C2 and C3: \")\n",
+ "print \"\\n\"\n",
+ "\n",
+ "if (c1<c2) and (c1<c3):\n",
+ " print \"C1 is less than C2 and C3\"\n",
+ "\n",
+ "if not(c1) < (c2 ):\n",
+ " print \"C1 is greater than C2\"\n",
+ " \n",
+ "if ((c1 < c2 or c1 < c3)):\n",
+ " print \"C1 is less than C2 or C3 or both\"\n",
+ " \n",
+ "#else:\n",
+ " # print \"Something went wrong. Check\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of C1, C2 and C3: 45,32,98\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "C1 is greater than C2\n",
+ "C1 is less than C2 or C3 or both\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: Page No.: 4.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Demonstration of assignment operator\n",
+ "\n",
+ "#Variable Declaration\n",
+ "i=4\n",
+ "j=5\n",
+ "\n",
+ "#'=' is assignment operator\n",
+ "i=j\n",
+ "k=i\n",
+ "\n",
+ "#Result\n",
+ "print \"K = %d\"%(k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: Page No.:4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using Increment and Decrement Operator.\n",
+ "\n",
+ "#Variable Declaration\n",
+ "a=10\n",
+ "\n",
+ "#There is no post and pre increment in python\n",
+ "#There is no post and pre decrement in python\n",
+ "\n",
+ "#Result\n",
+ "print \"The Value of a = %d\"%(a)\n",
+ "print \"Increment of a = %d\"%(a+1)\n",
+ "print \"Decrement of a = %d\"%(a-1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of a = 10\n",
+ "Increment of a = 11\n",
+ "Decrement of a = 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: Page No.:4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using increment and decrement operators\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "i=3\n",
+ "j=4\n",
+ "\n",
+ "#No Pre Decrement and Pre Increment in python\n",
+ "\n",
+ "i=i+1 #Increment value\n",
+ "j=j-1 #Decrement value\n",
+ "\n",
+ "k=i+j\n",
+ "\n",
+ "#Result\n",
+ "print \"i = %d, j = %d, k = %d\"%(i,j,k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i = 4, j = 3, k = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: Page No.: 4.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to illustrate sizeof operator\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "num=int(1234567890)\n",
+ "dec=float(0.123456)\n",
+ "ext=0.123456789\n",
+ "ltr='A'\n",
+ "string=\"Something to write home about....\"\n",
+ "class struct():\n",
+ " a=0\n",
+ "boy=struct()\n",
+ "\n",
+ "#Result\n",
+ "print \"Size of num is in %d bytes.\"%(sys.getsizeof(num))\n",
+ "print \"Size of dec is in %d bytes.\"%(sys.getsizeof(dec))\n",
+ "print \"Size of ext double is in %d bytes.\"%(sys.getsizeof(ext))\n",
+ "print \"Size of ltr char is in %d bytes.\"%(sys.getsizeof(ltr))\n",
+ "print \"Size of the string is in %d bytes.\"%(sys.getsizeof(string))\n",
+ "print \"Size of struct is in %d bytes.\"%(sys.getsizeof(struct()))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Size of num is in 12 bytes.\n",
+ "Size of dec is in 16 bytes.\n",
+ "Size of ext double is in 16 bytes.\n",
+ "Size of ltr char is in 22 bytes.\n",
+ "Size of the string is in 54 bytes.\n",
+ "Size of struct is in 32 bytes.\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 1: PageNo.:4.52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert number of days to months and days\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m=0\n",
+ "d=0\n",
+ "\n",
+ "#User Input\n",
+ "nd=input(\"Enter the number of days= \")\n",
+ "\n",
+ "\n",
+ "m=nd/30\n",
+ "d=nd%30\n",
+ "\n",
+ "#Result\n",
+ "print \"Number of months...\", m\n",
+ "print \"Number of days...\", d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of days= 215\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of months... 7\n",
+ "Number of days... 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 2: Page No.:4.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate Salesman Salary\n",
+ "\n",
+ "#Variable Declaration\n",
+ "BASIC=2500\n",
+ "BONUS_RATE=200\n",
+ "COM=0.02\n",
+ "\n",
+ "qty=0\n",
+ "GS=price=Bonus=Comm=0.0\n",
+ "#User input\n",
+ "qty,price=input(\"Enter the number of items Sold and Price...: \")\n",
+ "\n",
+ "Bonus=BONUS_RATE*qty\n",
+ "Comm=COM*qty*price\n",
+ "\n",
+ "GS=BASIC+Bonus+Comm\n",
+ "\n",
+ "print \"Bonus.... %6.2f\"%(Bonus)\n",
+ "\n",
+ "print \"Commission.... %6.2f\"%(Comm)\n",
+ "\n",
+ "print \"Gross Salary... %6.2f\"%(GS)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of items Sold and Price...: 10,200\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bonus.... 2000.00\n",
+ "Commission.... 40.00\n",
+ "Gross Salary... 4540.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 3: Page No.:4.54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Post increment using different storage classes\n",
+ "\n",
+ "#Defining function\n",
+ "def postinc():\n",
+ " x=1\n",
+ " print \"X = %d\" %(x)\n",
+ " x=x+1\n",
+ " \n",
+ "#Call Function\n",
+ "postinc()\n",
+ "postinc()\n",
+ "postinc()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X = 1\n",
+ "X = 1\n",
+ "X = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter02.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter02.ipynb
new file mode 100755
index 00000000..1aa8a278
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter02.ipynb
@@ -0,0 +1,767 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e63878167c3dee16dba0cb7cf1eb45b07d3e347ca99ab3a68339c448d68bdb66"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Managing Input and Output Operators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1, Page No 4.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Testing Characters\n",
+ "\n",
+ "#Variable Declaration\n",
+ "ch=''\n",
+ "\n",
+ "#User Input\n",
+ "ch=raw_input(\"Give any Character as a input: \")\n",
+ "\n",
+ "if (ch.isalpha()>0): #Checking whether the character is alphabet\n",
+ " print ch,\"is a alphabet\"\n",
+ " \n",
+ "elif(ch.isdigit()>0): #Checking whether the character is digit\n",
+ " print ch,\"is a digit\"\n",
+ " \n",
+ "else: #else print alphanumeric\n",
+ " print ch,\"is a alphanumeric\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give any Character as a input: a\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a is a alphabet\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2, Page No 4.57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert Uppercase to Lowercase and Viceversa\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "ch=''\n",
+ "\n",
+ "\n",
+ "#User Input\n",
+ "ch= raw_input(\"Give the input in lower case or upper case: \")\n",
+ "\n",
+ "if(ch.islower()): #Converting lowercase if input is uppercase\n",
+ " print ch.upper(), \"is a upper case character\"\n",
+ " \n",
+ "else: #else print lowercase\n",
+ " print ch.lower(), \"is a lower case character\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the input in lower case or upper case: s\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "S is a upper case character\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3, Page No 4.58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using input function\n",
+ "\n",
+ "scientist=''\n",
+ "\n",
+ "scientist = raw_input(\"Enter Name: \")\n",
+ "print \"Print the name: \", scientist\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name: Abdul kalam\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Print the name: Abdul kalam\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4, Page No 4.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count numbers of entered numbers\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=0\n",
+ "j=10\n",
+ "k=0\n",
+ "\n",
+ "#getting input from user \n",
+ "j=int(raw_input(\"Give input for j \"))\n",
+ "k=int(raw_input(\"Give input for k \"))\n",
+ "i=int(raw_input(\"Give input for i \"))\n",
+ "\n",
+ "i= i, j, k #assigning the user input in to a variable\n",
+ "\n",
+ "#Result\n",
+ "print \"No. of given input values:\", len(i) #counting length of the given input\n",
+ "print \"The Value of j and k is \", j, k #printing the values of input"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give input for j 56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give input for k 32\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give input for i 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of given input values: 3\n",
+ "The Value of j and k is 56 32\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5, Page No 4.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print a statement using print\n",
+ "\n",
+ "print \"VRB Publishers\" #Printing statement"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "VRB Publishers\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6, Page No 4.65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Adding two numbers\n",
+ "\n",
+ "#variable declaration\n",
+ "\n",
+ "a=6\n",
+ "b=8\n",
+ "c= a+b #Adding a, b and stores in c \n",
+ "\n",
+ "#Result\n",
+ "print \"Addition of two numbers is : \", c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Addition of two numbers is : 14\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7, Page No 4.66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reading and Displaying Details of a student\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "sno=m1=m2=m3=0\n",
+ "name=['20']\n",
+ "total=0\n",
+ "avg=0.0\n",
+ "\n",
+ "#User Inputs\n",
+ "sno=int(raw_input(\"Give Student serial no. \"))\n",
+ "name=raw_input(\"Student Name : \")\n",
+ "m1=int(raw_input(\"Student Mark 1: \"))\n",
+ "m2=int(raw_input(\"Student Mark 2: \"))\n",
+ "m3=int(raw_input(\"Student Mark 3: \"))\n",
+ "\n",
+ "total=float(m1+m2+m3) #Calculation of marks\n",
+ "\n",
+ "avg=\"%.2f\"%float(total/3.0) #Average\n",
+ "\n",
+ "#Result\n",
+ "print '\\n'\"Student serial No.:\", sno\n",
+ "print \"Student Name:\", name\n",
+ "print \"Student's Marks:\", m1, m2, m3\n",
+ "print \"Total:\", total\n",
+ "print \"Average:\", avg "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give Student serial no. 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Student Name : Raja\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Student Mark 1: 90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Student Mark 2: 95\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Student Mark 3: 98\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Studnt serial No.: 1\n",
+ "Student Name: Raja\n",
+ "Student's Marks: 90 95 98\n",
+ "Total: 283.0\n",
+ "Average: 94.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8, Page No:4.71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display quotient and reminder of given input\n",
+ "\n",
+ "#variable declaration\n",
+ "\n",
+ "a=b=q=r=0\n",
+ "\n",
+ "#User input\n",
+ "a=int(raw_input(\"Give input for a: \"))\n",
+ "b=int(raw_input(\"Give input for b: \"))\n",
+ "\n",
+ "q=float(a/b) #Calculation for Quotient\n",
+ "\n",
+ "r=float(a-q*b) #Calculation for Reminder\n",
+ "\n",
+ "#Result\n",
+ "print \"Quotient of a and b is :\",q\n",
+ "print \"Reminder of a and b is :\",r"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give input for a: 39\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give input for b: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quotient of a and b is : 5.0\n",
+ "Reminder of a and b is : 4.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9, Page No:4.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Slope and Midpoint of a line\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "x=x1=y1=x2=y2=slope=0.0\n",
+ "\n",
+ "#User input1\n",
+ "\n",
+ "x1=int(raw_input(\"Give point X1: \"))\n",
+ "y1=int(raw_input(\"Give point Y1: \"))\n",
+ "\n",
+ "\n",
+ "#User input2\n",
+ "\n",
+ "x2=int(raw_input('\\n'\"Give point X2: \"))\n",
+ "y2=int(raw_input(\"Give point Y2: \"))\n",
+ "\n",
+ "slope =(y2-y1)/(x2-x1) #Calculation for Slope\n",
+ "\n",
+ "#Calculation for Midpoints\n",
+ "x=float(x1+x2)/2.0\n",
+ "y=float(y1+y2)/2.0\n",
+ "\n",
+ "#Result\n",
+ "print '\\n' \"Slope of a line is :\", slope\n",
+ "print \"Midpoint of a line is :\", x,y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give point X1: 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give point Y1: 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Give point X2: 30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give point Y2: 40\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Slope of a line is : 1\n",
+ "Midpoint of a line is : 20.0 30.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10, Page No:4.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Average of Given N Numbers\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n=0.0\n",
+ "x=0\n",
+ "total=0\n",
+ "avg=0.0\n",
+ "\n",
+ "#UserInput\n",
+ "\n",
+ "n=int(raw_input(\"Give total number of input: \"))\n",
+ "\n",
+ "print \"Give those\",n ,\"Numbers\"\n",
+ "\n",
+ "for i in range(n): #Looping values of n\n",
+ " i=1\n",
+ " x=input() #Values for n\n",
+ " total+=x # Adding given numbers\n",
+ " \n",
+ "avg=float(total/n) #Calculating an average of given numbers\n",
+ "\n",
+ "#Result\n",
+ "print \"Sum of given numbers is \", total\n",
+ "print \"Average is \", avg\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give total number of input: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give those 5 Numbers\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "17\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "76\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of given numbers is 112\n",
+ "Average is 22.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11, Page No:4.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Temperature Conversion (Fahrenheit to Celsius)\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "F_MIN =0\n",
+ "F_MAX=500\n",
+ "INC=50\n",
+ "fh= F_MIN\n",
+ "\n",
+ "print \"Fahrenheit\" '\\t' \"Celsius\"\n",
+ "while(fh<=F_MAX):\n",
+ " cel =\"%.2f\"%float((fh-(32.0))/1.8) #Calculating Celsius value\n",
+ " print fh,'\\t''\\t', cel\n",
+ " fh=fh+INC #Calculating Fahrenheit value\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fahrenheit\tCelsius\n",
+ "0 \t\t-17.78\n",
+ "50 \t\t10.00\n",
+ "100 \t\t37.78\n",
+ "150 \t\t65.56\n",
+ "200 \t\t93.33\n",
+ "250 \t\t121.11\n",
+ "300 \t\t148.89\n",
+ "350 \t\t176.67\n",
+ "400 \t\t204.44\n",
+ "450 \t\t232.22\n",
+ "500 \t\t260.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12, Page No:4.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Area of Triangle\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "a=b=c=s=area=0.0\n",
+ "\n",
+ "#User input\n",
+ "\n",
+ "a=int(raw_input(\"First side of Triangle is \"))\n",
+ "b=int(raw_input(\"Second side of Triangle is \"))\n",
+ "c=int(raw_input(\"Third side of Triangle is \"))\n",
+ "\n",
+ "s=(a+b+c)/2.0 #Calculating Size of triangle\n",
+ "\n",
+ "area=\"%.3f\"%float((s*(s-a)*(s-b)*(s-c)) ** 0.5) #Calculating Area of triangle\n",
+ "\n",
+ "#Result\n",
+ "print '\\n',\"Area of Triangle is\",area"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First side of Triangle is 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Second side of Triangle is 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Third side of Triangle is 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Area of Triangle is 43.301\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter03.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter03.ipynb
new file mode 100755
index 00000000..34a44d60
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter03.ipynb
@@ -0,0 +1,440 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:92464c4be2e3e810ccda180a900c5ec8bb15a9537c93387b95c317c7709c7b7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Decision Making"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1, Page No.:4.79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using if with multiple statements\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "i=0\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "i =int(raw_input(\"Give the numbers less than 10\"'\\n'))\n",
+ "\n",
+ "if i<=10: #Checking the given value\n",
+ "\n",
+ "#Result \n",
+ " print \"The given value of\", i , \"less than 10\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the numbers less than 10\n",
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the given value of 5 less than 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.: 4.79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Program for interchange two values using if statement\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "a=m=n=0\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "m=int(raw_input(\"Give the value of m\" '\\t'))\n",
+ "n=int(raw_input(\"Give the value of n\" '\\t'))\n",
+ "\n",
+ "if m>=n : #Checking the Given Values\n",
+ " \n",
+ " a=m # method for swapping \n",
+ " m=n\n",
+ " n=a\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Swapped Values of m and n are \", m,a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of m\t34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of n\t28\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Swapped Values of m and n are 28 34\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No. 4.81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#determine the given number is odd or even. \n",
+ "\n",
+ "#Variable Declaration\n",
+ "num=rem=0\n",
+ "\n",
+ "#User Input\n",
+ "num=input(\"Enter the value: \")\n",
+ "rem=num%2 \n",
+ "if rem==0 : #Checking condition\n",
+ "\n",
+ "#Result 1\n",
+ " print \"The given number is Even\"\n",
+ "else :\n",
+ " \n",
+ "#Result 2\n",
+ " print \"The given number is Odd\"\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value: 80\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The given number is Even\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page No.:4.81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Find floating point input using if-else statement\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "years=seconds=0.0\n",
+ "life=0\n",
+ "\n",
+ "years=float(raw_input(\"Give your Age in years: \"))\n",
+ "life=years\n",
+ "if life==0:\n",
+ " print \"The given age is not floating value\"\n",
+ " \n",
+ "else :\n",
+ " seconds=\"%f\"%float(years*365*24*60*60)\n",
+ " print \"You have lived for\", seconds, \"seconds\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give your Age in years: 24\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have lived for 756864000.000000 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 5, Page No. :4.82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# find biggest among two numbers \n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "i=j=big=0\n",
+ "i,j=input(\"Give two values: \")\n",
+ "\n",
+ "big=i\n",
+ "\n",
+ "if big<j :\n",
+ " big=j\n",
+ " \n",
+ "elif i<j :\n",
+ " big=j \n",
+ " \n",
+ "else:\n",
+ " big = i\n",
+ "\n",
+ "print \"Biggest number of two numbers: \",big\n",
+ "print \"Biggest of two numbers(using else) is: \",big"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give two values: 45,78\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Biggest number of two numbers: 78\n",
+ "Biggest of two numbers(using else) is: 78\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 6, Page No. : 4.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program using nested if....else \n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "n=0\n",
+ "\n",
+ "#User Input\n",
+ "n=int(raw_input(\"Enter the number\"))\n",
+ "\n",
+ "if n==15: #Checking Condition\n",
+ " print \"Play Foot ball\"\n",
+ " \n",
+ "elif n==10:\n",
+ " print \"Play Cricket\"\n",
+ "\n",
+ "else : \n",
+ " print \"Don't Play\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Play Cricket\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 7, Page No. :4.85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print the number between 10 and 20\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "i=0\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "i=input(\"Enter the number: \")\n",
+ "\n",
+ "if (i>10) & (i<20):\n",
+ " print \"The given value is in between 10 and 20\"\n",
+ "\n",
+ "else :\n",
+ " print \"The given value is greater than 20 and less than 10\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number: 15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The given value is in between 10 and 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 8, Page No. :4.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# display the types of characterusing if-else statement\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "chr= raw_input(\"Enter a Single Character: \")\n",
+ "\n",
+ "if( ((chr>='a') & (chr<='z')) | ((chr>='A') & (chr<='Z'))):\n",
+ " print \"Given charactered is an Alphabetic\"\n",
+ " \n",
+ "elif ((chr>='0') & (chr <='9')):\n",
+ " print \"Given Character is a digit\"\n",
+ " \n",
+ "else:\n",
+ " print \"Entered Character is a special character\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Single Character: M\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Given charactered is an Alphabetic\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter04.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter04.ipynb
new file mode 100755
index 00000000..a58b3c75
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter04.ipynb
@@ -0,0 +1,1337 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cbd54959e18d38695240f376809cd86bcdd3f9c461e014b42a620c0846ec3cbf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Branching and Looping"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: Page No.:4.88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# addition of numbers using while loop.\n",
+ "\n",
+ "#Varibale Declaration\n",
+ "\n",
+ "i=1\n",
+ "sum=0\n",
+ "while i<=10: #Checking while loop\n",
+ " sum+=i\n",
+ " i+=1 #Increment of i\n",
+ " \n",
+ " #Result \n",
+ "print \"The Sum of the numbers upto is \",sum"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Sum of the numbers upto is 55\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: Page No.: 4.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "i=1\n",
+ "j=0\n",
+ "\n",
+ " \n",
+ "print \"The maximum value of integer is\", sys.maxsize\n",
+ "print \"The Value of integer after overflow is\", sys.maxint-1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum value of integer is 2147483647\n",
+ "The Value of integer after overflow is 2147483646\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: Page No.: 4.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reverse the given number using while loop\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "number=digit=rev=0\n",
+ "\n",
+ "number=input(\"Give the Value: \")\n",
+ "\n",
+ "while(number!=0):\n",
+ " digit=number%10\n",
+ " rev=rev*10+digit\n",
+ " number= number/10\n",
+ " \n",
+ "print \"The reversible value of given number is\", rev\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the Value: 7896\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reversible value of given number is 6987\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: Page No.: 4.90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Simple interest using while loop.\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "p=1\n",
+ "n=1\n",
+ "count=1\n",
+ "\n",
+ "r=si=0.0\n",
+ "\n",
+ "while(count<=3):\n",
+ " p=input(\"Give the value of P\" '\\t')\n",
+ " n=input(\"Give the value of N\"'\\t')\n",
+ " r=float(input(\"Give the value of R\"'\\t'))\n",
+ " \n",
+ " si=\"%.3f\"%float((p*n*r)/100)\n",
+ " \n",
+ " print \"Simple Interest of SI\", si\n",
+ " count=count+1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of P\t2000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of N\t3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of R\t5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Simple Interest of SI 300.000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of P\t3500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of N\t6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of R\t1.5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Simple Interest of SI 315.000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of P\t6000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of N\t2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of R\t3.5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Simple Interest of SI 420.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: Page No.:4.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Numbers upto 10 by using the do..while loop\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "i=1\n",
+ "sum=0\n",
+ "\n",
+ "while True:\n",
+ "\tsum+=i\n",
+ "\ti+=1\n",
+ "\tif(i>10):\n",
+ "\t\tbreak\n",
+ "print \"Sum of the numbers upto 10 is\", sum \n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of the numbers upto 10 is 55\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: Page No.: 4.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print n numbers using do...while loop\n",
+ "\n",
+ "i=0\n",
+ "\n",
+ "n=input(\"Enter the number: \")\n",
+ "\n",
+ "while True:\n",
+ " print \"The numbers are: \",i\n",
+ " i=i+1\n",
+ " if(i>=n):\n",
+ " break\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are: 0\n",
+ "The numbers are: 1\n",
+ "The numbers are: 2\n",
+ "The numbers are: 3\n",
+ "The numbers are: 4\n",
+ "The numbers are: 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: page no.: 4.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Addition of number upto 10 using for loop\n",
+ "\n",
+ "i=sum=0\n",
+ "\n",
+ "for i in range (0,11):\n",
+ "\tsum+=i\n",
+ "\ti+=1\n",
+ "\n",
+ "print \"The addition of given numbers\",sum\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The addition of given numbers 55\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: Page No.:4.96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print n numbers using for...loop structure\n",
+ "\n",
+ "n=int(raw_input(\"Give Values of n: \"))\n",
+ "i=0\n",
+ "for i in range(0,n):\n",
+ " print \"The Given numbers are: \",i\n",
+ "\n",
+ "\t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give Values of n: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Given numbers are: 0\n",
+ "The Given numbers are: 1\n",
+ "The Given numbers are: 2\n",
+ "The Given numbers are: 3\n",
+ "The Given numbers are: 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: Page No.:4.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#student marks and average using for loop..\n",
+ "\n",
+ "a=b=c=d=e=total=0\n",
+ "\n",
+ "avg=0.0\n",
+ "\n",
+ "m=input(\"Enter the number of Students:\")\n",
+ "\n",
+ "print \"Enter the marks of the five subjects: \"'\\n'\n",
+ "\n",
+ "for i in range (m): \n",
+ " i+=1\n",
+ " print \"\\nStudent:\",i,\"\\n\"\n",
+ " \n",
+ " a,b,c,d,e=input(\"Enter the Student mark1: \") \n",
+ " \n",
+ " if ((a,b,c,d,e)!=0) :\n",
+ " total=a+b+c+d+e\n",
+ " avg=\"%.3f\"%float(total/5)\n",
+ " print \"Total marks of the student:\", total\n",
+ " print \"Average marks of the students: \",avg\n",
+ " \n",
+ " else :\n",
+ " print \"Entered data is invalid\"\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of Students:3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the marks of the five subjects: \n",
+ "\n",
+ "\n",
+ "Student: 1 \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student mark1: 78,56,90,59,87\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total marks of the student: 370\n",
+ "Average marks of the students: 74.000\n",
+ "\n",
+ "Student: 2 \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student mark1: 49,87,60,57,93\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total marks of the student: 346\n",
+ "Average marks of the students: 69.000\n",
+ "\n",
+ "Student: 3 \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student mark1: 89,100,80,97,65\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total marks of the student: 431\n",
+ "Average marks of the students: 86.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: Page No.:4.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Nested for loop\n",
+ "\n",
+ "for i in range(1,4):\n",
+ " for j in range(1,4):\n",
+ " print \"%d\"%(j),\n",
+ " print \"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3 \n",
+ "\n",
+ "1 2 3 \n",
+ "\n",
+ "1 2 3 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: Page No.:4.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#student details using nested for loop..\n",
+ "\n",
+ "FIRST=300\n",
+ "SECOND=200\n",
+ "rollno=marks=total=0\n",
+ "\n",
+ "n=input(\"Enter the number of Students: \")\n",
+ "m=input(\"Enter the number of subjects: \")\n",
+ "\n",
+ "for i in range(n):\n",
+ " i+=(+1)\n",
+ " rollno=int(raw_input(\"Enter the student roll number: \"))\n",
+ " total=0\n",
+ " print \"Enter marks of\",m, \"subjects for Roll no: \",rollno\n",
+ " for j in range(m):\n",
+ " marks=int(raw_input(\"Give marks: \"))\n",
+ " total= total+marks\n",
+ " \n",
+ " print \"total marks\", total\n",
+ " if(total>=FIRST):\n",
+ " print \"(First Class)\"'\\n'\n",
+ " elif(total>=SECOND):\n",
+ " print \"(Second Class)\"'\\n'\n",
+ " else:\n",
+ " print \"Fail\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of Students: 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of subjects: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student roll number: 201\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of 5 subjects for Roll no: 201\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 68\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 89\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total marks 415\n",
+ "(First Class)\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student roll number: 202\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of 5 subjects for Roll no: 202\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 49\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 39\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give marks: 47\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total marks 225\n",
+ "(Second Class)\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: Page No.: 4.103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Demonstrate switch case\n",
+ "\n",
+ "a=1\n",
+ "if a==1:\n",
+ " print \"I am in case 1\"'\\n'\n",
+ "elif a==2:\n",
+ " print \"I am in case2\"'\\n'\n",
+ "else:\n",
+ " print \"I am in case default\"'\\n'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I am in case 1\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 115
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: Page No.:4.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use the computer as calculator\n",
+ "\n",
+ "a=b=c=0\n",
+ "\n",
+ "op=raw_input(\"Give the option for calculation like +(ADD), -(SUB), *(MUL), /(DIV): \")\n",
+ "a=input(\"Enter the value of a \")\n",
+ "b=input(\"Enter the value of b \")\n",
+ "\n",
+ "#Calculation\n",
+ "if (op=='+'):\n",
+ " c=a+b\n",
+ " print \"Result of C\", c \n",
+ "elif(op=='-'):\n",
+ " c=a-b\n",
+ " print \"Result of C\", c\n",
+ "elif(op=='*'):\n",
+ " c=a*b\n",
+ " print \"Result of C\", c\n",
+ "else:\n",
+ " c=a/b\n",
+ " print \"Result of C\", c\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the option for calculation like +(ADD), -(SUB), *(MUL), /(DIV): +\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value of a 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value of b 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Result of C 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 118
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: Page No.:4.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find even or odd numbers \n",
+ "\n",
+ "#USer Input\n",
+ "a=input(\"Enter a number: \")\n",
+ "\n",
+ "if a%2==0 : \n",
+ " print \" The number is even. \"\n",
+ "else :\n",
+ " print \"The number is odd.\" \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 89\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number is odd.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: Page No.:4.106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to count number of 0s, 1s, blank spaces and other characters\n",
+ "\n",
+ "\n",
+ "txt=[30]\n",
+ "count =0 \n",
+ "txt=raw_input(\"Enter Numbers\")\n",
+ "\n",
+ "print \"Total Spaces : %d\"%txt.count(' ')\n",
+ "print \"Total of 1's : %d\"%txt.count('1')\n",
+ "print \"Total of 0's : %d\"%txt.count('0')\n",
+ "print \"String Length : %d\"%len(txt)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Numbers120010 09100110\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Spaces : 2\n",
+ "Total of 1's : 5\n",
+ "Total of 0's : 7\n",
+ "String Length : 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: Page No.: 4.108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the number upto 5 using break statement\n",
+ "\n",
+ "for i in range(1,10):\n",
+ " if i==6:\n",
+ " break\n",
+ " print i,"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3 4 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 120
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: Page No.: 4.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to calculate the sum of the given positive numbers\n",
+ "\n",
+ "i=n=sum=0\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " n=int(raw_input(\"Give any value of n \"))\n",
+ " if n<0:\n",
+ " continue\n",
+ " else:\n",
+ " sum+=n\n",
+ " \n",
+ "print \"\\nSum is\", sum"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give any value of n 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give any value of n 15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give any value of n 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give any value of n -10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give any value of n 50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum is 100\n"
+ ]
+ }
+ ],
+ "prompt_number": 124
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: Page No.:4.113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using goto statement\n",
+ "\n",
+ "a=input(\"Give the Value of a \")\n",
+ "b=input(\"Give the value of b \")\n",
+ "\n",
+ "if a==b:\n",
+ " print \"A and B are equal\"\n",
+ "else:\n",
+ " print \"A and B are not equal\"\n",
+ " exit(0)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the Value of a 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of b 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A and B are equal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 1: Page No.: 4.112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Prime or not\n",
+ "\n",
+ "n=input(\"Enter the Positive value of n \")\n",
+ "i=2\n",
+ "\n",
+ "#Calculation\n",
+ "while n>i:\n",
+ " if n%i==0 & i!=n:\n",
+ " #r=n%i\n",
+ " #if r==0:\n",
+ " print \"The Given value of \",n,\" is not a prime\"\n",
+ " break\n",
+ " i+=1\n",
+ "else:\n",
+ " print \"The Given Value\",n, \"is Prime\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Positive value of n 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Given Value 3 is Prime\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 2: Page No.: 4.113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the Greatest Common Division\n",
+ "\n",
+ "i=int(input(\"Give the Value of i \"))\n",
+ "j=int(input(\"Give the value of j \"))\n",
+ " \n",
+ "def gcd(i,j):\n",
+ " if i > j:\n",
+ " k = i%j\n",
+ " if k == 0:\n",
+ " return j\n",
+ " else:\n",
+ " return gcd(j, k)\n",
+ " if i < j:\n",
+ " i = j\n",
+ " j = i\n",
+ " return gcd(i, j)\n",
+ "print \"The value of gcd\", gcd(i,j) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the Value of i 54\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the value of j 36\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of gcd 18\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 3: Page No.: 4.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to which reads in a Temperature and print the temperature in opposite scale\n",
+ "\n",
+ "\n",
+ "print \"1.Fahrenheit to Celcius\\n2.Celcius to Fahrenheit\\n\"\n",
+ "code=input(\"Choose Option to find Temperature: \")\n",
+ "\n",
+ "while code!=0:\n",
+ " if code==1:\n",
+ " f=float(input(\"Give the Value for Fahrenheit Temperature \"))\n",
+ " c=(f-32.0)*5.0/9.0\n",
+ " break\n",
+ " elif code==2:\n",
+ " c=float(input(\"Give the Value for Celcius Temperature \"))\n",
+ " f=9.0*c/5.0+32.0\n",
+ " break\n",
+ " else:\n",
+ " print \"Give proper Code Value for Temperature Calculation\"\n",
+ " break\n",
+ "print \"C=\", \"%.3f\"%float(c)\n",
+ "print \"F=\",f "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.Fahrenheit to Celcius\n",
+ "2.Celcius to Fahrenheit\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Choose Option to find Temperature: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give the Value for Fahrenheit Temperature 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C= 37.778\n",
+ "F= 100.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter05.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter05.ipynb
new file mode 100755
index 00000000..fa4db685
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter05.ipynb
@@ -0,0 +1,987 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8b48219cd7d973f69d80d4d491de4bdba5cb9c73135095697b1625a862f6bc97"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Defining and Processing of Arrays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page Number: 5.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to read 5 data items from input and store them in an array and display their sum\n",
+ "\n",
+ "#Local definitions\n",
+ "a = []\n",
+ "sum = 0\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " a.append(0)\n",
+ "print \"Enter 5 integer numbers\" \n",
+ "for i in range(0,5):\n",
+ " a[i] = eval(raw_input())\n",
+ " \n",
+ "for i in range(0,5): \n",
+ " sum = sum + a[i] \n",
+ " \n",
+ "print \"The sum of given numbers is : %d\\n\" %sum"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 5 integer numbers\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "120\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "69\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "390\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of given numbers is : 669\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2 Page No. 5.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to accept 5 numbers and print whether the number is even or not\n",
+ "\n",
+ "#Local Variable\n",
+ "a=[]\n",
+ "\n",
+ "for i in range(5):\n",
+ " a.append(0)\n",
+ "for i in range(0,5):\n",
+ " i+1\n",
+ " a[i]=eval(raw_input(\"Enter the %d number: \"%(i+1))) \n",
+ " print \"\\n\"\n",
+ "for i in range (0,5):\n",
+ " if a[i]%2==0:\n",
+ " print \"%d Number is Even\"%a[i]\n",
+ " else:\n",
+ " print \"%d Number is Odd\"%a[i]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 1 number: 17\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 2 number: 38\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 3 number: 79\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 4 number: 80\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 5 number: 76\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "17 Number is Odd\n",
+ "38 Number is Even\n",
+ "79 Number is Odd\n",
+ "80 Number is Even\n",
+ "76 Number is Even\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3 Page No. 5.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to illustrate how a character array can be used.\n",
+ "\n",
+ "#Local definition\n",
+ "word=['F', 'R', 'I', 'E', 'N', 'D', 'S']\n",
+ "\n",
+ "for i in range(0,7):\n",
+ " word.append(0)\n",
+ "for i in range(0,7):\n",
+ " print word[i],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "F R I E N D S\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page Number: 5.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to sort the given strings alphabetically\n",
+ "\n",
+ "b = raw_input(\"Enter the text to sort : \")\n",
+ "print \"Sorted Text are : \",''.join(sorted(b, key=lambda v: (v.upper(), v[0].islower())))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the text to sort : VRBPublishers\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorted Text are : BbehilPRrssuV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 5, Page Number: 5.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using two dimension array\n",
+ "\n",
+ "#Local definition \n",
+ "stud = [[0 for i in xrange(0,4)] for i in xrange(0,4)] #stud is a array name with 4 rows and 2 columns\n",
+ "\n",
+ "for i in range(0,4):\n",
+ " print \"Enter the %d Student roll no and Mark:\" %i\n",
+ " stud[i][1], stud[i][2] = input()\n",
+ " \n",
+ "for i in range(0,4):\n",
+ " print \"%d Student roll no %d mark %d\" %(i, stud[i][1], stud[i][2])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 0 Student roll no and Mark:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3977,80\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 1 Student roll no and Mark:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "17776,95\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 2 Student roll no and Mark:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6682,82\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the 3 Student roll no and Mark:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6683,85\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0 Student roll no 3977 mark 80\n",
+ "1 Student roll no 17776 mark 95\n",
+ "2 Student roll no 6682 mark 82\n",
+ "3 Student roll no 6683 mark 85\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 6, Page Number: 5.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to illustrate Matrix Multiplication\n",
+ "\n",
+ "a = [[0 for i in xrange(0,5)] for i in xrange(0,5)]\n",
+ "b = [[0 for i in xrange(0,5)] for i in xrange(0,5)]\n",
+ "c = [[0 for i in xrange(0,5)] for i in xrange(0,5)]\n",
+ "\n",
+ "while True:\n",
+ " r1, c1 = input(\"Enter the size of the matrix A....\")\n",
+ " r2, c2 = input(\"Enter the size of the matrix B....\")\n",
+ " if c1 == r2:\n",
+ " print \"Enter matrix A elements...\"\n",
+ " for i in range (0,r1):\n",
+ " for j in range (0,c1):\n",
+ " a[i][j] = input()\n",
+ " \n",
+ " print \"Enter matrix B elements...\"\n",
+ " for i in range (0,r2):\n",
+ " for j in range (0,c2):\n",
+ " b[i][j] = input()\n",
+ " \n",
+ " for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " c[i][j] = 0\n",
+ " for k in range(0,c1):\n",
+ " c[i][j] += a[i][k] * b[k][j]\n",
+ " \n",
+ " print \"The resultant matrix is....\"\n",
+ " for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " print \"%d\\t\" %c[i][j],\n",
+ " print \"\\n\"\n",
+ " break \n",
+ " else:\n",
+ " print \"Multiplication is not possible\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the size of the matrix A....3,3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the size of the matrix B....2,2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication is not possible\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the size of the matrix A....3,3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the size of the matrix B....3,3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter matrix A elements...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter matrix B elements...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The resultant matrix is....\n",
+ "18\t18\t18\t\n",
+ "\n",
+ "18\t18\t18\t\n",
+ "\n",
+ "18\t18\t18\t\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 7, Page Number: 5.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print two dimensional array by row by row\n",
+ "\n",
+ "arr = [[0 for i in xrange(0,4)] for i in xrange(0,4)]\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,4):\n",
+ " arr[i][j] = (i * 4) + j + 1\n",
+ " \n",
+ " \n",
+ "print \"Printing array contents :\"\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,4):\n",
+ " print \"%3d\" %arr[i][j],\n",
+ " print \"\\n\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Printing array contents :\n",
+ " 1 2 3 4 \n",
+ "\n",
+ " 5 6 7 8 \n",
+ "\n",
+ " 9 10 11 12 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 8, Page Number: 5.14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to add and display the results of 5 nos\n",
+ "\n",
+ "#Function definition \n",
+ "def add(x,ar):\n",
+ " sum = 0\n",
+ " for i in range(0,5):\n",
+ " sum += ar[i]\n",
+ " print \"Sum is ... %d\" %sum \n",
+ " \n",
+ "a = []\n",
+ "n = 5\n",
+ "for i in range(0,5):\n",
+ " a.append(0)\n",
+ "print \"Enter 5 values\"\n",
+ "for i in range(0,5):\n",
+ " a[i] = input()\n",
+ "add(n,a) #function call"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 5 values\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum is ... 150\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 9, Page Number: 5.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for capture and store n values into array and print them\n",
+ "\n",
+ "#Function definition \n",
+ "def arr(a = []):\n",
+ " for i in range(0,5):\n",
+ " print \"Value in array %d\\n\" %a[i]\n",
+ " \n",
+ "a = []\n",
+ "for i in range(0,5):\n",
+ " a.append(0)\n",
+ "for i in range(0,5):\n",
+ " a[i] = i\n",
+ "arr(a) #Function call"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value in array 0\n",
+ "\n",
+ "Value in array 1\n",
+ "\n",
+ "Value in array 2\n",
+ "\n",
+ "Value in array 3\n",
+ "\n",
+ "Value in array 4\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 10, Page Number: 5.16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print the character string from the array\n",
+ "\n",
+ "name = \"LAK\"\n",
+ "print \"%s\" %name"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "LAK\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 11, Page Number: 5.17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for explaining the working of 4 dimensional array\n",
+ "\n",
+ "#Local definition\n",
+ "array_4d = [[[[0 for i in xrange(0,3)] for i in xrange(0,3)]for i in xrange(0,3)] for i in xrange(0,3)]\n",
+ "\n",
+ "#looping statements \n",
+ "for a in range(0,3):\n",
+ " for b in range(0,3):\n",
+ " for c in range(0,3):\n",
+ " for d in range(0,3):\n",
+ " array_4d[a][b][c][d] = a + b + c + d\n",
+ "#Result \n",
+ "for a in range(0,3) :\n",
+ " print \"\\n\"\n",
+ " for b in range(0,3):\n",
+ " for c in range(0,3):\n",
+ " for d in range(0,3):\n",
+ " print \"%3d\" %array_4d[a][b][c][d],\n",
+ " print \"\\n\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ " 0 1 2 \n",
+ "\n",
+ " 1 2 3 \n",
+ "\n",
+ " 2 3 4 \n",
+ "\n",
+ " 1 2 3 \n",
+ "\n",
+ " 2 3 4 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 2 3 4 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 4 5 6 \n",
+ "\n",
+ "\n",
+ "\n",
+ " 1 2 3 \n",
+ "\n",
+ " 2 3 4 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 2 3 4 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 4 5 6 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 4 5 6 \n",
+ "\n",
+ " 5 6 7 \n",
+ "\n",
+ "\n",
+ "\n",
+ " 2 3 4 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 4 5 6 \n",
+ "\n",
+ " 3 4 5 \n",
+ "\n",
+ " 4 5 6 \n",
+ "\n",
+ " 5 6 7 \n",
+ "\n",
+ " 4 5 6 \n",
+ "\n",
+ " 5 6 7 \n",
+ "\n",
+ " 6 7 8 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter06.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter06.ipynb
new file mode 100755
index 00000000..09f324b0
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter06.ipynb
@@ -0,0 +1,1424 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d7231c68ebf3352357e97f096d7bb05469f2e0aae52fa150a1a57a7e75ef01fb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Handling Of Character Strings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page Number: 5.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for reading a line of text\n",
+ "\n",
+ "n = 0\n",
+ "print \"Enter text press RETRUN to end\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter text press RETRUN to end\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page Number: 5.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#String function\n",
+ "\n",
+ "s1= \"Hello\"\n",
+ "s2='H''e''l''l''o'\n",
+ "\n",
+ "print s1\n",
+ "print s2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hello\n",
+ "Hello\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page Number: 5.22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using strlen() function\n",
+ "\n",
+ "name = \"MUNI\"\n",
+ "len1 = len(name)\n",
+ "len2 = len(\"LAK\")\n",
+ "print \"String length of %s is %d\" %(name,len1)\n",
+ "print \"String length of %s is %d\" %(\"LAK\",len2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String length of MUNI is 4\n",
+ "String length of LAK is 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page Number: 5.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using strcpy() function\n",
+ "def strcpy(cstring1):\n",
+ " import copy\n",
+ " cstring2=copy.copy(cstring1)\n",
+ " return cstring2 \n",
+ "\n",
+ "source = \"MUNI\"\n",
+ "target = strcpy(source)\n",
+ "print \"Source string is %s\" %source\n",
+ "print \"Target string is %s\" %target"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Source string is MUNI\n",
+ "Target string is MUNI\n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 5, Page Number:5.24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Strcat function\n",
+ "\n",
+ "str1=\"MUNI\"\n",
+ "str2=\"LAK\"\n",
+ "print str1+str2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MUNILAK\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 6, Page Number: 5.24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using strcat() function\n",
+ "def strcat(cstring1, cstring2):\n",
+ " cstring3 = cstring1 + cstring2\n",
+ " return cstring3\n",
+ "\n",
+ "source = \"Ramesh\"\n",
+ "target = \"Babu\"\n",
+ "source = strcat(source,target)\n",
+ "print \"Source string is %s\" %source\n",
+ "print \"Target string is %s\" %target"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Source string is RameshBabu\n",
+ "Target string is Babu\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 7, Page Number: 5.25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using strcmp() function\n",
+ "\n",
+ "name = \"Kalai\"\n",
+ "name1 = \"Malai\"\n",
+ "if name ==\"Kalai\":\n",
+ " print \"0\",\n",
+ "if name1!=name:\n",
+ " print \"1\",\n",
+ "if name != \"Kalai mani\":\n",
+ " print \"6\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0 1 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 8, Page Number: 5.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using strrev() function\n",
+ "def strrev(cstring1):\n",
+ " cstring2 = ' '\n",
+ " for i in range(len(cstring1)-1,-1,-1):\n",
+ " cstring2 = cstring2 + cstring1[i]\n",
+ " return cstring2\n",
+ "\n",
+ "y = raw_input(\"Enter the string \")\n",
+ "print \"The string reversed is : %s\" %strrev(y)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string book\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The string reversed is : koob\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 9, Page Number: 5.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using enumerated data type\n",
+ "def enum(*sequential, **named):\n",
+ " enums = dict(zip(sequential, range(len(sequential))), **named)\n",
+ " return type('Enum', (), enums)\n",
+ "\n",
+ "week = enum(' ', 'sun','Mon','Tue','Wed','Thr','Fri','Sat')\n",
+ "print \"Mon = %d\" %week.Mon\n",
+ "print \"Tue = %d\" %week.Tue\n",
+ "print \"Wed= %d\" %week.Wed\n",
+ "print \"Sat = %d\" %week.Sat"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mon = 2\n",
+ "Tue = 3\n",
+ "Wed= 4\n",
+ "Sat = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 125
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 10, Page Number: 5.28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to identify whether the entered character is letter, digit or other symbols\n",
+ "def enum(*sequential, **named):\n",
+ " enums = dict(zip(sequential, range(len(sequential))), **named)\n",
+ " return type('Enum', (), enums)\n",
+ "\n",
+ "ctype = enum(' ', 'Letter', 'Digit', 'Other')\n",
+ "ch = raw_input(\"Enter a any character.\")\n",
+ "a = ch.isalpha()\n",
+ "if a != False:\n",
+ " print \"%c is %d type of symbol.\" %(ch,ctype.Letter)\n",
+ "else:\n",
+ " a = ch.isdigit()\n",
+ " if a != False:\n",
+ " print \"%c is %d type of symbol.\" %(ch,ctype.Digit)\n",
+ " else:\n",
+ " print \"%c is %d type of symbol.\" %(ch,ctype.Other)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a any character.%\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% is 3 type of symbol.\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 1, Page Number: 5.29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for sorting an array of elements\n",
+ "\n",
+ "a = []\n",
+ "n = input(\"Enter Upper limit....\")\n",
+ "for i in range(0,n):\n",
+ " a.append(0)\n",
+ "print \"Enter elements....\" \n",
+ "for i in range(0,n):\n",
+ " a[i]=input()\n",
+ "for i in range(0,n):\n",
+ " for j in range(i,n):\n",
+ " if a[i]>a[j]:\n",
+ " t = a[i]\n",
+ " a[i] = a[j]\n",
+ " a[j] = t\n",
+ "print \"Numbers in Ascending order\"\n",
+ "for i in range(0,n):\n",
+ " print \"%d\" %a[i],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Upper limit....6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter elements....\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numbers in Ascending order\n",
+ "1 2 3 4 5 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 2, Page Number: 5.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to fing Median for a given 'n' numbers\n",
+ "\n",
+ "arr = []\n",
+ "n = input(\"Enter Upper limit....\")\n",
+ "for i in range(0,n):\n",
+ " arr.append(0)\n",
+ "print \"Enter..%d..values\" %n \n",
+ "for i in range(0,n):\n",
+ " arr[i]=input()\n",
+ "for i in range(1,n):\n",
+ " for j in range(1,n-i):\n",
+ " if arr[j] <= arr[j+1]:\n",
+ " t = arr[j]\n",
+ " arr[j] = arr[j+1]\n",
+ " arr[j+1] = t\n",
+ " else:\n",
+ " continue\n",
+ "if n%2 == 0:\n",
+ " median = (arr[n/2]+arr[n/2+1])/2.0\n",
+ "else:\n",
+ " median = arr[n/2+1]\n",
+ "print \"Median is....%.f\" %median \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Upper limit....3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter..3..values\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "30\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Median is....20\n"
+ ]
+ }
+ ],
+ "prompt_number": 162
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 3, Page Number: 5.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to find standard deviation for the given data\n",
+ "import math\n",
+ "\n",
+ "val = []\n",
+ "sum = ssqr = n = 0\n",
+ "for i in range(0,100):\n",
+ " val.append(0)\n",
+ "print \"Enter Values -999 to stop....\"\n",
+ "for i in range(0,100):\n",
+ " val[i] = float(raw_input())\n",
+ " if val[i] == -999:\n",
+ " break\n",
+ " sum = float(sum) + val[i] \n",
+ " n = n + 1\n",
+ "mean = float(sum) / float(n) \n",
+ "for i in range(0,n):\n",
+ " dev = val[i] - mean\n",
+ " ssqr = float(ssqr) + float(dev)*float(dev)\n",
+ "var = ssqr / float(n) \n",
+ "sd = math.sqrt(float(var))\n",
+ "print \"Number of Items.....%d\" %n\n",
+ "print \"Mean is .....%f\" %mean\n",
+ "print \"Standard Deviation is .....%f\" %sd"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values -999 to stop....\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-999\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of Items.....5\n",
+ "Mean is .....30.000000\n",
+ "Standard Deviation is .....14.142136\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 4, Page Number: 5.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Bubble sort using function\n",
+ "\n",
+ "def bubble(n, x = []):\n",
+ " for item in range(0,n-1):\n",
+ " for i in range(item+1,n):\n",
+ " if x[i]<x[item]:\n",
+ " temp = x[item]\n",
+ " x[item] = x[i]\n",
+ " x[i] = temp\n",
+ " \n",
+ "a = [] \n",
+ "n = input(\"Enter upper limit: \")\n",
+ "for i in range(0,n):\n",
+ " a.append(0)\n",
+ "for i in range(0,n):\n",
+ " a[i] = input()\n",
+ " \n",
+ "bubble(n,a) \n",
+ "print \"After sorting\",\n",
+ "for i in range(0,n):\n",
+ " print \"%d\" %a[i],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter upper limit: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "After sorting 1 2 3 4 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 174
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 5, Page Number: 5.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to sort an element using Insertion sort\n",
+ "\n",
+ "a = []\n",
+ "x = input(\"Elements to be inserted \")\n",
+ "for i in range(0,100):\n",
+ " a.append(0)\n",
+ "i = 0\n",
+ "while x != -99:\n",
+ " k = i-1\n",
+ " while (x<a[k]) and (k>=0):\n",
+ " a[k+1] = a[k]\n",
+ " k = k-1\n",
+ " a[k+1]=x\n",
+ " print \"Array after inserting %d:\" %x\n",
+ " for j in range(0,i):\n",
+ " print \"%5d\" %a[j]\n",
+ " x = input(\"Elements to be inserted(-99 to stop)?\")\n",
+ " i = i+1\n",
+ "print \"The final sorted array\"\n",
+ "for j in range(0,i):\n",
+ " print \"%5d\" %a[j],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements to be inserted 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Array after inserting 5:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements to be inserted(-99 to stop)?3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Array after inserting 3:\n",
+ " 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements to be inserted(-99 to stop)?4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Array after inserting 4:\n",
+ " 3\n",
+ " 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements to be inserted(-99 to stop)?2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Array after inserting 2:\n",
+ " 2\n",
+ " 3\n",
+ " 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements to be inserted(-99 to stop)?1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Array after inserting 1:\n",
+ " 1\n",
+ " 2\n",
+ " 3\n",
+ " 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements to be inserted(-99 to stop)?-99\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final sorted array\n",
+ " 1 2 3 4 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 186
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 6, Page Number: 5.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to sort an element using selection sort\n",
+ "\n",
+ "a = []\n",
+ "for i in range(0,100):\n",
+ " a.append(0)\n",
+ "n = input(\"Enter Number of elements in array...\")\n",
+ "print \"Enter Elements...\",n\n",
+ "for i in range(0,n):\n",
+ " a[i] = input()\n",
+ "for i in range(0,n-1):\n",
+ " m = i\n",
+ " for j in range(i+1,n):\n",
+ " if a[m]>a[j]:\n",
+ " m = j\n",
+ " if i != m:\n",
+ " k = a[i]\n",
+ " a[i] = a[m]\n",
+ " a[m] = k\n",
+ " \n",
+ "print \"Sorted Array (Selection Sort) is...\\n\"\n",
+ "for i in range(0,n):\n",
+ " print \"%5d\" %a[i],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number of elements in array...9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements... 9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "326\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "85\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "42\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "156\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "845\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "66\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "55\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorted Array (Selection Sort) is...\n",
+ "\n",
+ " 1 42 55 56 66 85 156 326 845\n"
+ ]
+ }
+ ],
+ "prompt_number": 190
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 7, Page Number: 5.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Quick sort\n",
+ "\n",
+ "def quickSort(array):\n",
+ " quickSortHelper(array,0,len(array)-1)\n",
+ "\n",
+ "def quickSortHelper(array,right,left):\n",
+ " if right<left:\n",
+ " splitpoint = partition(array,right,left)\n",
+ " quickSortHelper(array,right,splitpoint-1)\n",
+ " quickSortHelper(array,splitpoint+1,left)\n",
+ "\n",
+ "def partition(array,right,left):\n",
+ " pivotvalue = array[right]\n",
+ "\n",
+ " begin = right+1\n",
+ " end = left\n",
+ "\n",
+ " done = False\n",
+ " while not done:\n",
+ "\n",
+ " while begin <= end and \\\n",
+ " array[begin] <= pivotvalue:\n",
+ " begin = begin + 1\n",
+ "\n",
+ " while array[end] >= pivotvalue and \\\n",
+ " end >= begin:\n",
+ " end = end -1\n",
+ "\n",
+ " if end < begin:\n",
+ " done = True\n",
+ " else:\n",
+ " temp = array[begin]\n",
+ " alist[begin] = array[end]\n",
+ " alist[end] = temp\n",
+ "\n",
+ " temp = array[right]\n",
+ " array[right] = array[end]\n",
+ " array[end] = temp\n",
+ " return end\n",
+ "\n",
+ "array = []\n",
+ "n=input(\"Enter the values in array: \")\n",
+ "for i in range (0,n):\n",
+ " array.append(0)\n",
+ "for i in range (0,n):\n",
+ " array[i]=input()\n",
+ " \n",
+ "quickSort(array)\n",
+ "print \"Quick Sorted Array is\", array"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values in array: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quick Sorted Array is [1, 2, 3, 4, 5]\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 8, Page Number: 5.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to find the specified elements from the array using linear searching\n",
+ "\n",
+ "a = [100]\n",
+ "for i in range(0,100):\n",
+ " a.append(0)\n",
+ "c = 'y'\n",
+ "while (c=='y')or(c=='Y'):\n",
+ " no = input(\"Enter the size of sorting\")\n",
+ " print \"Enter the elements of the array\"\n",
+ " for i in range(0,no):\n",
+ " a[i]=input()\n",
+ " k = input(\"Enter the element to be searched\") \n",
+ " for i in range(0,no):\n",
+ " if k == a[i]:\n",
+ " print \"Element %d is in the position %d\" %(k,i+1)\n",
+ " f=2\n",
+ " break\n",
+ " if f==1:\n",
+ " print \"The entered element is not in the array\"\n",
+ " ch = raw_input(\"If you want to continue y/n \")\n",
+ " c = ch\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the size of sorting5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements of the array\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element to be searched4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Element 4 is in the position 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If you want to continue y/n n\n"
+ ]
+ }
+ ],
+ "prompt_number": 206
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 9, Page Number: 5.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to find the specified element from array using Binary search\n",
+ "\n",
+ "a = [100]\n",
+ "for i in range(0,100):\n",
+ " a.append(0)\n",
+ "no = input(\"Enter the size of sorting\")\n",
+ "print \"Enter the elements in ascending order\"\n",
+ "for i in range(0,no):\n",
+ " a[i]=input() \n",
+ "t = input(\"Enter the element to be searched\") \n",
+ "l=0\n",
+ "h=no-1\n",
+ "while l <= h:\n",
+ " m = (l+h)/2\n",
+ " if t<a[m]:\n",
+ " h = m-1\n",
+ " elif t>a[m]:\n",
+ " l = m+1\n",
+ " else:\n",
+ " print \"Entered %d is in position %d\" %(t,m+1)\n",
+ " f=2\n",
+ " break\n",
+ "if f==1:\n",
+ " print \"Entered element is not in the array\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the size of sorting5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements in ascending order\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element to be searched3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered 3 is in position 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter07.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter07.ipynb
new file mode 100755
index 00000000..ee25427a
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter07.ipynb
@@ -0,0 +1,254 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:59d989e4d68b99137fb5255fe771e42a62c5ce35100304584930ea0c003ea2ac"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : User Defined Functions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, page no.5.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate Local and Global Declaration \n",
+ "\n",
+ "#variable declaration globally\n",
+ "i=0 \n",
+ "print \"Value of i in main\", i\n",
+ "\n",
+ " #define function\n",
+ "def f1(): \n",
+ " k=0\n",
+ " i=50\n",
+ " print \"Value of i after function call\",i\n",
+ " \n",
+ "#Function Call\n",
+ "f1() \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of i in main 0\n",
+ "Value of i after function call 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, page no: 5.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate usage of local and global variable\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " print \"Value of i is:\", i\n",
+ " \n",
+ "i=590\n",
+ "print \"The Value of i is:\", i \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of i is: 0\n",
+ "Value of i is: 1\n",
+ "Value of i is: 2\n",
+ "The Value of i is: 590\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page no.5.52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to call function without parameters\n",
+ "def message():\n",
+ " print \"Main Message\"\n",
+ " \n",
+ "print \"Function Message\"\n",
+ "\n",
+ "message()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Function Message\n",
+ "Main Message\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page No.5.52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to call function with parameter\n",
+ "\n",
+ "#Defining function\n",
+ "def add(x,y):\n",
+ " z=0\n",
+ " z=x+y\n",
+ " return z\n",
+ "\n",
+ "k=add(10,20)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Value of k is \", k"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of k is 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 5, page no.5.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to write prototype of the function\n",
+ "\n",
+ "k=0\n",
+ "\n",
+ "#Defining in function\n",
+ "def f1(k):\n",
+ " k=k+100\n",
+ " return k\n",
+ "\n",
+ "#Result\n",
+ "print \"The value of i before call: \", k\n",
+ "\n",
+ "print \"The Value of i after call: \",(f1(k))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of i before call: 0\n",
+ "The Value of i after call: 100\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 6, page no. 5.54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to write prototype definition in main function\n",
+ "\n",
+ "def fun(k):\n",
+ " k=k+10\n",
+ " return k\n",
+ "\n",
+ "i=0\n",
+ "\n",
+ "#Result\n",
+ "print \"The i value before call %d\\n\"%(i)\n",
+ "print \"The i value after call %d\\n\"%fun(i)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The i value before call 0\n",
+ "\n",
+ "The i value after call 10\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter08.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter08.ipynb
new file mode 100755
index 00000000..e40c1b43
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter08.ipynb
@@ -0,0 +1,420 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5d85b398d61f498d1deba465b9747c5d15996be1754212b25012ca792b193a16"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Function Prototypes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Function with no arguments and no return values"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.: 5.55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to addition of two numbers\n",
+ "\n",
+ "def add():\n",
+ " a,b=input(\"Enter two numbers.. \")\n",
+ " c=a+b\n",
+ " print \"Sum is ... %d\"%(c)\n",
+ " \n",
+ "add() \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers.. 10,20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum is ... 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.:5.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print addition, subtraction and multiplication values\n",
+ "\n",
+ "def add():\n",
+ " a=10\n",
+ " b=5\n",
+ " print \"The Addition of given value: \",a+b\n",
+ " \n",
+ "def sub():\n",
+ " a=10\n",
+ " b=5\n",
+ " print \"The Subtraction of given value:\",a-b\n",
+ " \n",
+ "def mul():\n",
+ " a=10\n",
+ " b=5\n",
+ " print \"The Multiplication of given value:\",a*b\n",
+ " \n",
+ " \n",
+ "add()\n",
+ "sub()\n",
+ "mul()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Addition of given value: 15\n",
+ "The Subtraction of given value: 5\n",
+ "The Multiplication of given value: 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Function with arguments and no return values"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, page No. 5.57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Program for addition of two numbers\n",
+ "\n",
+ "def add(x,y):\n",
+ " z= x+y\n",
+ " print \"Sum is:\", z\n",
+ "\n",
+ "#Main Function\n",
+ "a, b = input(\"Enter two Values: \")\n",
+ " \n",
+ "add(a,b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two Values: 10,20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum is: 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example: 2, page no. 5.58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def date(x,y,z):\n",
+ " print \"Employee Joined date is:%d/%d/%d\" %(x,y,z)\n",
+ " \n",
+ "print \"Enter the employee joining date.\"\n",
+ "\n",
+ "dd,mm,yy=eval(raw_input(\"Enter date, month, year: \"))\n",
+ "\n",
+ "date(dd,mm,yy)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the employee joining date.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter date, month, year: 11,12,1981\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Employee Joined date is:11/12/1981\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Function with arguments and with return value"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, page no.5.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for addition of two numbers\n",
+ "\n",
+ "def add(x,y):\n",
+ " z=0\n",
+ " z=x+y\n",
+ " return z\n",
+ "\n",
+ "#Main Function\n",
+ "a,b=input(\"Enter the a and b value:\")\n",
+ "c=add(a,b)\n",
+ "print \"Result is:\",c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the a and b value:10,20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Result is: 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.:5.60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to send and receives the values from function\n",
+ "\n",
+ "def mul(m,n):\n",
+ " return (m*n)\n",
+ "\n",
+ "m=n=sum=0\n",
+ "m,n=input(\"Enter two values:\")\n",
+ "sum=mul(m,n)\n",
+ "\n",
+ "print \"Multiplication of the entered Values:\",sum"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two values:30,4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication of the entered Values: 120\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Function with no arguments and with return value"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, PageNo.:5.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for addition of two numbers\n",
+ "\n",
+ "def add():\n",
+ " a=b=c=0\n",
+ " a,b=input(\"Enter the Values of a and b:\")\n",
+ " c=a+b\n",
+ " return(c)\n",
+ "\n",
+ "c=add()\n",
+ "print \"The Output of given Values:\",c\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Values of a and b:10,20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Output of given Values: 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No. 5.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to multiply three numbers using function\n",
+ "\n",
+ "\n",
+ "def mul():\n",
+ " a,b,c=input(\"Enter the three values for Multiplication: \")\n",
+ " i=a*b*c\n",
+ " return(i)\n",
+ "\n",
+ "s=mul()\n",
+ "print \"Multiplication of three numbers is= \",s\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the three values for Multiplication: 4,8,2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication of three numbers is= 64\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter09.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter09.ipynb
new file mode 100755
index 00000000..11735b92
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter09.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1a0147da7a94fc5ebe7c66bbf21a563cb0bee33c1452a7bcfcbc21f5395d7aab"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : Parameter Passing Methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.: 5.63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call By Value\n",
+ "\n",
+ "def cube(x):\n",
+ " x=x*x*x\n",
+ " return(x)\n",
+ "\n",
+ "n=5\n",
+ "print \"Cube of %d is\"%n,cube(n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cube of 5 is 125\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.:5.64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call by reference\n",
+ "\n",
+ "def interchange(a,b):\n",
+ " t=0\n",
+ " t=a\n",
+ " a=b\n",
+ " b=t\n",
+ " return b,a\n",
+ "\n",
+ " \n",
+ "i=5\n",
+ "j=10\n",
+ "print \"i and j values before interchange:\", i, j\n",
+ "\n",
+ "i=10\n",
+ "j=5\n",
+ "interchange(i,j)\n",
+ "\n",
+ "#Result\n",
+ "print \"i and j values after interchange:\",i,j\n",
+ "\n",
+ "print \"i and j avalues after interchange in the function : %d %d \\n\"%interchange(i,j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i and j values before interchange: 5 10\n",
+ "i and j values after interchange: 10 5\n",
+ "i and j avalues after interchange in the function : 10 5 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter10.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter10.ipynb
new file mode 100755
index 00000000..1a017d08
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter10.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ea85b38c0942e3b3d3a1243525badd8ffa28ac492392c6aef6c8ea5823294150"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Recursion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.: 5.67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Factorial of an integer number.\n",
+ "\n",
+ "def rec(x):\n",
+ " f=0\n",
+ " if x==1:\n",
+ " return (1)\n",
+ " else:\n",
+ " f=x*rec(x-1)\n",
+ " return(f)\n",
+ "\n",
+ "a=input(\"Enter the number:\")\n",
+ "print \"The Factorial value of %d:\"%a,rec(a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number:5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Factorial value of 5: 120\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.:5.67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to read characters and print reversely using recursion.\n",
+ "\n",
+ "def reverse(c):\n",
+ " if len(c)<=0:\n",
+ " return c\n",
+ " return reverse(c[1:])+c[0]\n",
+ "\n",
+ "c=raw_input(\"Enter the Line of Text...\")\n",
+ "print reverse(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Line of Text...munilak\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kalinum\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No.:5.68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#concept of recursion\n",
+ "\n",
+ "def add(pk, pm):\n",
+ " if pm==0:\n",
+ " return pk\n",
+ " else:\n",
+ " return(1+add(pk,pm-1))\n",
+ " \n",
+ " \n",
+ "k=70\n",
+ "m=20\n",
+ "\n",
+ "i=add(k,m)\n",
+ "\n",
+ "print \"The Value of addition is %d\"%i\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of addition is 90\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page No:5.70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Tower of honoi\n",
+ "n=int(raw_input(\"How many Disks ...\\n\"))\n",
+ "\n",
+ "def honoi(n,fro,to,t):\n",
+ " if(n>0):\n",
+ " honoi(n-1,fro,t,to)\n",
+ " print \"Move disk %d from %c to %c\\n\"%(n,fro,to)\n",
+ " honoi(n-1,t,to,fro)\n",
+ " \n",
+ "fro='L'\n",
+ "to='R'\n",
+ "t='C'\n",
+ " \n",
+ "honoi(n,fro,to,t)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many Disks ...\n",
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Move disk 1 from L to R\n",
+ "\n",
+ "Move disk 2 from L to C\n",
+ "\n",
+ "Move disk 1 from R to C\n",
+ "\n",
+ "Move disk 3 from L to R\n",
+ "\n",
+ "Move disk 1 from C to L\n",
+ "\n",
+ "Move disk 2 from C to R\n",
+ "\n",
+ "Move disk 1 from L to R\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 1, Page No. : 5.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#user defined function that computes 'x' raised to the power 'y'\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "x,y=input(\"Enter the Values of X and Y \")\n",
+ "\n",
+ "print \"%d to the power of %d is ... \"%(x,y),math.pow(x,y)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Values of X and Y 10,2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 to the power of 2 is ... 100.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 2, page No.5.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#nesting of function\n",
+ "\n",
+ "def ratio(x,y,z):\n",
+ " \n",
+ " def diff(m,n):\n",
+ " if(m!=n):\n",
+ " return(1)\n",
+ " else:\n",
+ " return(0)\n",
+ " \n",
+ " diff(y,z)\n",
+ " if diff(y,z):\n",
+ " return(x/(y-z))\n",
+ " else:\n",
+ " return(0)\n",
+ " \n",
+ " \n",
+ "x,y,z=input(\"Enter the values of X,Y,Z: \")\n",
+ "\n",
+ " \n",
+ "print \"Ratio is..%f\\n\"%ratio(x,y,z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values of X,Y,Z: 10,10,5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio is..2.000000\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 3, Page No. 5.78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Demonstration of Global Variable\n",
+ "\n",
+ "a=39 #Global Variable\n",
+ "print \"A... %d\\n\"%a\n",
+ "\n",
+ "def f1():\n",
+ " global a\n",
+ " a=a+10\n",
+ " return a\n",
+ "\n",
+ "def f2():\n",
+ " global a\n",
+ " a=a+20\n",
+ " return a\n",
+ "\n",
+ "def f3():\n",
+ " global a\n",
+ " a=a+30\n",
+ " return a\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"A...%d\\n\"%f1()\n",
+ "print \"A...%d\\n\"%f2()\n",
+ "print \"A...%d\\n\"%f3()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A... 39\n",
+ "\n",
+ "A...49\n",
+ "\n",
+ "A...69\n",
+ "\n",
+ "A...99\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter11.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter11.ipynb
new file mode 100755
index 00000000..0e00f235
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter11.ipynb
@@ -0,0 +1,304 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:03a9be4b5720a51a42be3ae01bfa08ccecef76e9a5e17f613e76c0afaff965de"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.: 5.81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the student number, name and marks through accessing structure elements.\n",
+ "\n",
+ "#Defining Structure in class\n",
+ "class std:\n",
+ " no=0\n",
+ " name = ''\n",
+ " m1 = m2 = m3 =0\n",
+ "\n",
+ "#assigning variable to structure class \n",
+ "s=std()\n",
+ "\n",
+ "#UserInput\n",
+ "s.no=raw_input(\"Give Student Number: \")\n",
+ "s.name=raw_input(\"Enter the Student Name: \")\n",
+ "s.m1=input(\"Enter Student Mark1: \")\n",
+ "s.m2=input(\"Enter Student Mark2: \")\n",
+ "s.m3=input(\"Enter Student Mark3: \")\n",
+ "\n",
+ "total=avg=0.0\n",
+ "\n",
+ "total = (s.m1 + s.m2 + s.m3)\n",
+ "avg='%.2f' %(total / 3)\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nThe Output is.... \\n\",s.no,s.name,total,avg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give Student Number: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student Name: raja\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark1: 99\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark2: 97\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark3: 95\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Output is.... \n",
+ "1 raja 291 97.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No. 5.83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print a value from Structure.\n",
+ "\n",
+ "class struct:\n",
+ " a=b=0\n",
+ " \n",
+ "x=struct()\n",
+ "y=struct()\n",
+ "\n",
+ "x.a=29\n",
+ "y=x\n",
+ "\n",
+ "#Result\n",
+ "print \"The Value of a %d\"%y.a\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of a 29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No.:5.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program for User defined data type \n",
+ "\n",
+ "#There is no preprocessor directive in python\n",
+ "D = 7\n",
+ "\n",
+ "#No typedef function in python\n",
+ "wk = int(raw_input(\"Enter Weeks : \"))\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nNumber of Days = %d\"%(wk*D)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Weeks : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number of Days = 28\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page.No.:5.85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to create user defined data type from structure\n",
+ "\n",
+ "\n",
+ "class struct:\n",
+ " name=''\n",
+ " sex=''\n",
+ " age=0\n",
+ " \n",
+ "\n",
+ "\n",
+ "candidate = [struct() for i in range(0,2)]\n",
+ "\n",
+ "for a in range(0,2):\n",
+ " candidate[a].name= raw_input(\"Name of the Employee: \")\n",
+ " candidate[a].sex= raw_input(\"Sex: \")\n",
+ " candidate[a].age= input(\"Age: \")\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n Name\\t Sex\\t Age\\n\"\n",
+ "\n",
+ "for a in range(0,2):\n",
+ " print \" %s\\t\"%(candidate[a].name),\" %s\\t\"%(candidate[a].sex),\" %d\\n\"%(candidate[a].age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name of the Employee: venkat\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex: m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age: 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name of the Employee: geetha\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex: f\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age: 23\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Name\t Sex\t Age\n",
+ "\n",
+ " venkat\t m\t 25\n",
+ "\n",
+ " geetha\t f\t 23\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter12.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter12.ipynb
new file mode 100755
index 00000000..54918fbb
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter12.ipynb
@@ -0,0 +1,829 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:13c473411b35212c9727620c7673dc52636d4bf1a83b0d4eeb082d160a75324d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Union"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.5.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program using union.\n",
+ "\n",
+ "class union_name:\n",
+ " a=0\n",
+ " b=[0,1]\n",
+ " \n",
+ "c=union_name()\n",
+ "c.a=256\n",
+ "\n",
+ "print \"c.a value is %d\\n \"%c.a\n",
+ "print \"c.b[0] value is %d\\n\"%c.b[0]\n",
+ "print \"c.b[1] value is %d\\n\"%c.b[1]\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c.a value is 256\n",
+ " \n",
+ "c.b[0] value is 0\n",
+ "\n",
+ "c.b[1] value is 1\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.:5.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to find size of union and number of bytes\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "class union_result:\n",
+ " marks=0\n",
+ " grade=''\n",
+ " \n",
+ " \n",
+ "class struct_res:\n",
+ " name=[15]\n",
+ " age=0\n",
+ " sex=''\n",
+ " address=''\n",
+ " pincode=0\n",
+ " perf=union_result()\n",
+ " \n",
+ "data=struct_res() \n",
+ "\n",
+ "#Result\n",
+ "print \"Size of Union: %d\\n\"%sys.getsizeof(data.perf)\n",
+ "print \"Size of Structure: %d\\n\"%sys.getsizeof(data)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Size of Union: 32\n",
+ "\n",
+ "Size of Structure: 32\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pointer to Unions cannot convert as no pointer in python. Page no. 5.88"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No.:5.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program that includes of initial values to structure variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "\n",
+ "class union_id:\n",
+ " color='20'\n",
+ " size=0\n",
+ " \n",
+ "\n",
+ "class struct_clothes:\n",
+ " manufacturer='30'\n",
+ " cost=0.0\n",
+ " description=union_id()\n",
+ " \n",
+ " \n",
+ "shirt=struct_clothes()\n",
+ "shirt.manufacturer='Indian'\n",
+ "shirt.cost=35.00\n",
+ "shirt.description.color='Black'\n",
+ "\n",
+ "print \"%d\\n\"%(sys.getsizeof(union_id))\n",
+ "\n",
+ "print \"%s %f \"%(shirt.manufacturer,shirt.cost),\"%s %d\\n \"%(shirt.description.color, shirt.description.size)\n",
+ " \n",
+ "\n",
+ "shirt.description.size =12\n",
+ "\n",
+ "\n",
+ "print \"%s %f \"%(shirt.manufacturer, shirt.cost),\"%s %d\\n \"%(shirt.description.color, shirt.description.size)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "48\n",
+ "\n",
+ "Indian 35.000000 Black 0\n",
+ " \n",
+ "Indian 35.000000 Black 12\n",
+ " \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page no.: 5.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to read and write employee and their date of joining using nested structure. \n",
+ "\n",
+ "\n",
+ "class date:\n",
+ " day=0\n",
+ " month=\"\"\n",
+ " year=0\n",
+ " \n",
+ "class employee:\n",
+ " code=0\n",
+ " name=''\n",
+ " salary=0.0\n",
+ " doj=date()\n",
+ " \n",
+ " \n",
+ "emp1=employee()\n",
+ "\n",
+ "emp1.code=input(\"Enter Employee Code: \")\n",
+ "emp1.name=raw_input(\"Enter the Employee Name: \")\n",
+ "emp1.salary=input(\"Enter the Employee Salary: \")\n",
+ "\n",
+ "print \"\\nEnter Date of joining in order\\n\"\n",
+ "emp1.doj.day=input(\"Enter day: \")\n",
+ "emp1.doj.month=raw_input(\"Enter month: \")\n",
+ "emp1.doj.year=input(\"Enter year: \")\n",
+ "\n",
+ "print \"\\nThe Employee Code is: %d\"%emp1.code\n",
+ "print \"\\nThe Employee Name is: %s\"%emp1.name\n",
+ "print \"\\nThe Employee Name is: %f\"%emp1.salary\n",
+ "print \"\\nThe Employee DOJ is: %d %s %d\"%(emp1.doj.day,emp1.doj.month,emp1.doj.year)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Employee Code: 200\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Employee Name: VIJI\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Employee Salary: 2000.00\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Date of joining in order\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter day: 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter month: December\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter year: 2004\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Employee Code is: 200\n",
+ "\n",
+ "The Employee Name is: VIJI\n",
+ "\n",
+ "The Employee Name is: 2000.000000\n",
+ "\n",
+ "The Employee DOJ is: 12 December 2004\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 5, Page No. 5.93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to store 3 records in one structure\n",
+ "\n",
+ "\n",
+ "class book:\n",
+ " name=''\n",
+ " price=0\n",
+ " pages=0\n",
+ " \n",
+ " \n",
+ "b=[book() for a in range(0,3)]\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " b[i].name=raw_input(\"Enter the Book Name: \")\n",
+ " b[i].price=input(\"Enter the Book Price: \")\n",
+ " b[i].pages=input(\"Enter the Book Pages: \")\n",
+ " \n",
+ "print '\\n' \n",
+ "for i in range(0,3):\n",
+ " print \"%s\\t\"%(b[i].name),\"%d\\t\"%(b[i].price),\"%d\\n\"%(b[i].pages)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Name: English\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Price: 165\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Pages: 200\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Name: Maths\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Price: 300\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Pages: 450\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Name: Physics\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Price: 250\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book Pages: 370\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "English\t165\t200\n",
+ "\n",
+ "Maths\t300\t450\n",
+ "\n",
+ "Physics\t250\t370\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 6, Page No. 5.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to copy of entire structure to a function\n",
+ "\n",
+ "class std:\n",
+ " no=0\n",
+ " avg=0.0\n",
+ "\n",
+ "a=std()\n",
+ "\n",
+ "a.no=15\n",
+ "a.avg=90.75\n",
+ "\n",
+ "def func(Struct_p):\n",
+ " print \"Number is.... %d\\n\"%a.no\n",
+ " print \"Average is... %f\"%a.avg\n",
+ " \n",
+ "func(a)\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number is.... 15\n",
+ "\n",
+ "Average is... 90.750000\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 7, Page No.:5.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Programs shows how the structure can be accessed by a pointer variable.\n",
+ "\n",
+ "class student:\n",
+ " roll_no=0\n",
+ " name=''\n",
+ " marks=0.0\n",
+ "stud1=student()\n",
+ "\n",
+ "print \"Enter the student details: \\n\"\n",
+ "stud1.roll_no=input()\n",
+ "stud1.name=raw_input()\n",
+ "stud1.marks=input()\n",
+ "\n",
+ "print \"\\nDisplay of structure using structure variable\\n\"\n",
+ "print \"Roll No\\t Name\\t Marks\"\n",
+ "print \"\\n-------\\t ----- -------\\n\"\n",
+ "print \"%d\\t %s\\t %f\"%(stud1.roll_no,stud1.name,stud1.marks)\n",
+ "\n",
+ "pt=stud1\n",
+ "\n",
+ "print \"\\nDisplay of structure using pointer variable\\n\"\n",
+ "print \"Roll No\\t Name\\t Marks\"\n",
+ "print \"\\n-------\\t ----- -------\\n\"\n",
+ "print \"%d\\t %s\\t %f\"%(pt.roll_no,pt.name,pt.marks)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student details: \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "39\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Muni\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "77\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Display of structure using structure variable\n",
+ "\n",
+ "Roll No\t Name\t Marks\n",
+ "\n",
+ "-------\t ----- -------\n",
+ "\n",
+ "39\t Muni\t 77.000000\n",
+ "\n",
+ "Display of structure using pointer variable\n",
+ "\n",
+ "Roll No\t Name\t Marks\n",
+ "\n",
+ "-------\t ----- -------\n",
+ "\n",
+ "39\t Muni\t 77.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 1, Page No.:5.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to transfer a structure to a function by passing the structure address to the function\n",
+ "\n",
+ "class struct:\n",
+ " name=''\n",
+ " no=0\n",
+ " age=0\n",
+ "record=struct()\n",
+ "std=record\n",
+ "std.name,std.no,std.age=[\"LAK\",15,25]\n",
+ "print \"%s\\t%d\\t%d\"%(std.name,std.no,std.age)\n",
+ "\n",
+ "def fun(std):\n",
+ " pt.name=\"Muni\"\n",
+ " pt.no=16\n",
+ " pt.age=26\n",
+ " \n",
+ "std.name=pt.name\n",
+ "std.no=pt.no\n",
+ "std.age=pt.age\n",
+ "\n",
+ "print \"%s\\t%d\\t%d\"%(std.name,std.no,std.age)\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "LAK\t15\t25\n",
+ "Muni\t16\t26\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 2, Page No.:5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to pass an array of structure to a function, and return a pointer to a structure.\n",
+ "import sys\n",
+ "N=3\n",
+ "NULL=0\n",
+ "\n",
+ "class struct:\n",
+ " sno=0\n",
+ " name=''\n",
+ " age=0\n",
+ " \n",
+ "record=struct()\n",
+ "std=record\n",
+ "\n",
+ "print \"Student Number Locater\"\n",
+ "print \"To Exit the program enter '0' for student number\"\n",
+ "stdno=input(\"Enter the Student Number: \")\n",
+ "print \"\\n\"\n",
+ "if stdno ==15:\n",
+ "\n",
+ " std.sno,std.name,std.age=[15,\"MUNI\",28]\n",
+ " print \"Number .... %d \\n\"%(std.sno)\n",
+ " print \"Name ...... %s\\n\"%(std.name)\n",
+ " print \"Age ....... %d\\n\"%(std.age)\n",
+ "if stdno == 16:\n",
+ " std.sno,std.name,std.age=[16,\"LAK\",27]\n",
+ " print \"Number .... %d \\n\"%(std.sno)\n",
+ " print \"Name ...... %s\\n\"%(std.name)\n",
+ " print \"Age ....... %d\\n\"%(std.age)\n",
+ " \n",
+ "if stdno == 17:\n",
+ " std.sno,std.name,std.age=[17,\"RAJA\",31]\n",
+ " print \"Number .... %d \\n\"%(std.sno)\n",
+ " print \"Name ...... %s\\n\"%(std.name)\n",
+ " print \"Age ....... %d\\n\"%(std.age)\n",
+ " \n",
+ "if stdno==0:\n",
+ " exit\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Student Number Locater\n",
+ "To Exit the program enter '0' for student number\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student Number: 15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Number .... 15 \n",
+ "\n",
+ "Name ...... MUNI\n",
+ "\n",
+ "Age ....... 28\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 3, Page No.: 5.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print student name and mark using structure\n",
+ "\n",
+ "class student:\n",
+ " name=''\n",
+ " marks=0.00\n",
+ " \n",
+ "s1=''\n",
+ "f=0.00\n",
+ "\n",
+ "student1=student()\n",
+ "\n",
+ "student2=student()\n",
+ "\n",
+ "\n",
+ "student1.name=raw_input(\"Enter Name: \")\n",
+ "f=input(\"Enter Mark: \")\n",
+ "\n",
+ "student2.marks=f\n",
+ "\n",
+ "print \"\\nName is %s \\n\"%student1.name\n",
+ "print \"Marks are %f \\n\"%student2.marks\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name: Venkat\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Mark: 89\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name is Venkat \n",
+ "\n",
+ "Marks are 89.000000 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 4, Page No.: 5.102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print marks, grade and their address using union\n",
+ "\n",
+ "\n",
+ "\n",
+ "class union_marks:\n",
+ " perc=0.00\n",
+ " grade=''\n",
+ " \n",
+ "student1=union_marks()\n",
+ "\n",
+ "student1.perc=98.5\n",
+ "\n",
+ "print \"Marks are %f \\t address is %8lu\\n\"%(student1.perc, id(student1.perc))\n",
+ "\n",
+ "student1.grade='A'\n",
+ "\n",
+ "print \"Grade is %c \\t address is %8lu\\n\"%(student1.grade,id(student1.grade))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Marks are 98.500000 \t address is 158368916\n",
+ "\n",
+ "Grade is A \t address is 3073485064\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter13.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter13.ipynb
new file mode 100755
index 00000000..b303ee94
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter13.ipynb
@@ -0,0 +1,57 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bd4e511a3dbdd189491e3271c86cff9ce5fc919ed7457d400a67c288e55ad433"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Pointers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page Number: 5.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print address and value of variable\n",
+ "#Local definitions\n",
+ "sno = 39\n",
+ "\n",
+ "#Result\n",
+ "print \"Address of sno = %u\" %id(sno)\n",
+ "print \"Value of sno = %d\" %sno"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address of sno = 20917296\n",
+ "Value of sno = 39\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter14.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter14.ipynb
new file mode 100755
index 00000000..12a1734c
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter14.ipynb
@@ -0,0 +1,234 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:44f5daf77255992c95710d94f062b0f1f1e981b9e6cce07f23ed45a322c4b130"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Accessing Variable through Pointers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page Number: 5.107 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to accessing through variable pointer\n",
+ "\n",
+ "from ctypes import c_int\n",
+ "\n",
+ "#Local definition\n",
+ "a = 22\n",
+ "a = c_int(a) # ctype datatype declaration\n",
+ "\n",
+ "b = 2.25\n",
+ "b = c_float(b) # ctype datatype declaration\n",
+ "\n",
+ "#Pointer variables\n",
+ "a_po=pointer(a)\n",
+ "b_po=pointer(b)\n",
+ "\n",
+ "# 'id' is a address of letter and it represents the address of the variable\n",
+ "a = id(a)\n",
+ "b = id(b)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nValue of a = %d\" %a_po[0]\n",
+ "print \"\\nValue of b = %.2f\" %b_po[0]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value of a = 22\n",
+ "\n",
+ "Value of b = 2.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page Number: 5.108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print address and value of variable\n",
+ "\n",
+ "from ctypes import c_int\n",
+ "\n",
+ "#Local definition\n",
+ "a = 22\n",
+ "a = c_int(a) # ctype datatype declaration\n",
+ "\n",
+ "#Pointer variables\n",
+ "a_po=pointer(a)\n",
+ "\n",
+ "# 'id' is a address of letter and it represents the address of the variable\n",
+ "a = id(a)\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n Value of a = %d\" %a_po[0]\n",
+ "print \"\\n Address of a = %u\" %id(a)\n",
+ "print \"\\n Value at address %u = %d\" %(id(a),a_po[0])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Value of a = 22\n",
+ "\n",
+ " Address of a = 4344066728\n",
+ "\n",
+ " Value at address 4344066728 = 22\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page Number: 5.108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Program to print value and address of variable\n",
+ "\n",
+ "from ctypes import c_int\n",
+ "\n",
+ "#Local definition\n",
+ "a = 22\n",
+ "b = c_int(a) # ctype datatype declaration\n",
+ "\n",
+ "#Pointer variable\n",
+ "b_po=pointer(b)\n",
+ "\n",
+ "# 'id' is a address of letter and it represents the address of the variable\n",
+ "b = id(a)\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n Value of a = %d\" %a\n",
+ "print \"\\n Value of a = %d\" %(c_int(a).value)\n",
+ "print \"\\n Value of a = %d\" %b_po[0]\n",
+ "print \"\\n Address of a = %u\" %id(a)\n",
+ "print \"\\n Address of a = %u\" %b\n",
+ "print \"\\n Address of a = %u\" %id(b)\n",
+ "print \"\\n Value of b = address of a = %u\" %b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Value of a = 22\n",
+ "\n",
+ " Value of a = 22\n",
+ "\n",
+ " Value of a = 22\n",
+ "\n",
+ " Address of a = 4298180848\n",
+ "\n",
+ " Address of a = 4298180848\n",
+ "\n",
+ " Address of a = 4344066728\n",
+ "\n",
+ " Value of b = address of a = 4298180848\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page Number: 5.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to illustrate pointer to pointer\n",
+ "\n",
+ "from ctypes import c_int\n",
+ "\n",
+ "#Local definition\n",
+ "a = 22\n",
+ "b = c_int(a) # ctype datatype declaration\n",
+ "c = c_int(a) # ctype datatype declaration\n",
+ "\n",
+ "#Pointer variable\n",
+ "b_po = pointer(b)\n",
+ "c_po = pointer(b_po) # c_po is a pointer to another pointer\n",
+ "\n",
+ "# 'id' is a address of letter and it represents the address of the variable\n",
+ "b = id(a)\n",
+ "c = id(b)\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n Value of a is %d\" %a\n",
+ "print \"\\n Value of a is %d\" %(c_int(a).value)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Value of a is 22\n",
+ "\n",
+ " Value of a is 22\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter15.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter15.ipynb
new file mode 100755
index 00000000..21b14f41
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter15.ipynb
@@ -0,0 +1,266 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2bed6e40cd55f716f11e909c76b0c924a863909239fcbbf975814260bb7b4531"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Pointers and Functions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Call By Value"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page no. 5.112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call by value\n",
+ "\n",
+ "def change(x,y):\n",
+ " x=x+5\n",
+ " y=y+10\n",
+ " print \"In the function changes a&b is %d,%d\"%(x,y)\n",
+ " \n",
+ "a=10\n",
+ "b=20\n",
+ "\n",
+ "print \"\\nBefore calling the function a&b is %d,%d\"%(a,b)\n",
+ "\n",
+ "change(a,b)\n",
+ "print \"\\nAfter calling a&b is %d,%d\"%(a,b)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Before calling the function a&b is 10,20\n",
+ "In the function changes a&b is 15,30\n",
+ "\n",
+ "After calling a&b is 10,20\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page no.5.113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to swap(interchange) the two given variable.\n",
+ "\n",
+ "def swap(x,y):\n",
+ " \n",
+ " x=x+y\n",
+ " y=x-y\n",
+ " x=x-y\n",
+ " print \"In swap function x=%d, y=%d\"%(x,y)\n",
+ " return y,x\n",
+ "\n",
+ "a=10\n",
+ "b=20\n",
+ "\n",
+ "print \"Before swap a=%d, b=%d\"%(a,b)\n",
+ "\n",
+ "\n",
+ "print \"\\nAfter the calling the swap function, a=%d,b=%d\"%swap(a,b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before swap a=10, b=20\n",
+ "In swap function x=20, y=10\n",
+ "\n",
+ "After the calling the swap function, a=10,b=20\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Call By Reference"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page.No.5.114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call By Reference\n",
+ "\n",
+ "def change (x,y):\n",
+ " x=x+5\n",
+ " y=y+10\n",
+ " print \"In the function change a&b is %d %d\"%(x,y)\n",
+ " return x,y\n",
+ "a=10\n",
+ "b=20\n",
+ "print \"\\nBefore calling the function a&b is %d %d\"%(a,b)\n",
+ "\n",
+ "\n",
+ "print \"After calling the function a&b is %d %d\"%change(a,b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Before calling the function a&b is 10 20\n",
+ "In the function change a&b is 15 30\n",
+ "After calling the function a&b is 15 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.5.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to swap(intercahnge) the value of variables.\n",
+ "\n",
+ "a=10\n",
+ "b=20\n",
+ "\n",
+ "print \"\\nBefore swap a=%d, b=%d\"%(swap(a,b))\n",
+ "\n",
+ "def swap(x,y):\n",
+ " x=x+y\n",
+ " y=x-y\n",
+ " x=x-y\n",
+ " print\"\\nIn swap function x=%d,y=%d\"%(x,y)\n",
+ " return y,x\n",
+ "\n",
+ "print \"\\nAfter calling swap function a=%d, b=%d\"%(b,a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In swap function x=20,y=10\n",
+ "\n",
+ "Before swap a=10, b=20\n",
+ "\n",
+ "After calling swap function a=20, b=10\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page no. 5.115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to interchange the value of variables using call by reference\n",
+ "def exchange(m,n):\n",
+ " t=m\n",
+ " m=n\n",
+ " n=t\n",
+ " return n,m\n",
+ "\n",
+ "a,b=input(\"Enter two Numbers: \")\n",
+ "\n",
+ "print \"Before Exchange a=%d,b=%d\"%(a,b)\n",
+ "\n",
+ "\n",
+ "print \"After Exchange a=%d, b=%d\"%(exchange(b,a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two Numbers: 10,20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before Exchange a=10,b=20\n",
+ "After Exchange a=20, b=10\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter16.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter16.ipynb
new file mode 100755
index 00000000..ab91ce85
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter16.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d2add72dea4c498cf89927248000fdbfce0907704975d2bdb6ff1cde1c8f50a7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Pointers and Arrays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.:5.118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print the value and address of the element\n",
+ "\n",
+ "a=[10,20,30,40,50]\n",
+ "for b in range(0,5):\n",
+ " print \"The value of a[%d]=%d\"%(b,a[b])\n",
+ " print \"Address of a[%d]=%u\"%(b,id(a[b]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of a[0]=10\n",
+ "Address of a[0]=4299197952\n",
+ "The value of a[1]=20\n",
+ "Address of a[1]=4299197712\n",
+ "The value of a[2]=30\n",
+ "Address of a[2]=4299197472\n",
+ "The value of a[3]=40\n",
+ "Address of a[3]=4299199208\n",
+ "The value of a[4]=50\n",
+ "Address of a[4]=4299198968\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.: 5.119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print the value and the address of the element using pointer with function\n",
+ "\n",
+ "a=[10,20,30,40,50]\n",
+ "\n",
+ "for c in range(0,5):\n",
+ " print \"The Value of a[%d]=%d\"%(c,a[c])\n",
+ " print \"The address of a[%d]=%u\"%(c,id(b))\n",
+ "def value(b):\n",
+ " b=''\n",
+ " id(b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of a[0]=10\n",
+ "The address of a[0]=4296527248\n",
+ "The Value of a[1]=20\n",
+ "The address of a[1]=4296527248\n",
+ "The Value of a[2]=30\n",
+ "The address of a[2]=4296527248\n",
+ "The Value of a[3]=40\n",
+ "The address of a[3]=4296527248\n",
+ "The Value of a[4]=50\n",
+ "The address of a[4]=4296527248\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example:3, Page No,: 5.120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to add the sum of number using pointer\n",
+ "\n",
+ "a=[10,20,30,40,50]\n",
+ "\n",
+ "b=total=0\n",
+ "c=id(c)\n",
+ "\n",
+ "for b in range(0,5):\n",
+ " print \"Enter the number %d: \"%(b+1)\n",
+ " a[b]=input()\n",
+ " \n",
+ "c=a\n",
+ "for b in range(0,5):\n",
+ " total=total+c[b]\n",
+ " c[b]=c[b]+1\n",
+ "\n",
+ "print \"Total= %d\"%(total)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number 1: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number 2: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number 3: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "30\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number 4: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "40\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number 5: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total= 150\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page No.: 5.121 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to sort a given number using pointer.\n",
+ "\n",
+ "arr = []\n",
+ "n = input(\"Enter the no. of elements: \")\n",
+ "for i in range(0,n):\n",
+ " arr.append(0)\n",
+ "print \"Enter the element: \" \n",
+ "for i in range(0,n):\n",
+ " arr[i]=input()\n",
+ "print \"Before Sorting:\" \n",
+ "for i in range(0,n):\n",
+ " print \"%d\"%arr[i],\n",
+ " \n",
+ "for i in range(0,n):\n",
+ " for j in range(i,n):\n",
+ " if arr[i]>arr[j]:\n",
+ " t = arr[i]\n",
+ " arr[i] = arr[j]\n",
+ " arr[j] = t\n",
+ "print \"\\nAfter Sorting:\"\n",
+ "for i in range(0,n):\n",
+ " print \"%d\" %arr[i],"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the no. of elements: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before Sorting:\n",
+ "8 5 7 4 6 \n",
+ "After Sorting:\n",
+ "4 5 6 7 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter17.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter17.ipynb
new file mode 100755
index 00000000..7967d054
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter17.ipynb
@@ -0,0 +1,310 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86b94093ee72d30b0a9443a44a1c3905ef6186294337253a1ca56b0318def382"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : Pointers with Multidimensional Array"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.:5.123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print the values and addres of the array elements.\n",
+ "\n",
+ "arr=([[5,100],[10,200],[15,300],[20,400]])\n",
+ "\n",
+ "for a in range(0,4):\n",
+ " print \"Address of %d array= %u\"%(a,id(arr[a]))\n",
+ " for b in range(0,2):\n",
+ " print \"Value =%d\"%(arr[a][b])\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address of 0 array= 4336406328\n",
+ "Value =5\n",
+ "Value =100\n",
+ "Address of 1 array= 4336414944\n",
+ "Value =10\n",
+ "Value =200\n",
+ "Address of 2 array= 4336414800\n",
+ "Value =15\n",
+ "Value =300\n",
+ "Address of 3 array= 4366918504\n",
+ "Value =20\n",
+ "Value =400\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.: 5.125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print the value and address of the element using array of pointers\n",
+ "\n",
+ "a=[0,1,2]\n",
+ "b=10\n",
+ "c=20\n",
+ "d=30\n",
+ "a[0]=b\n",
+ "a[1]=c\n",
+ "a[2]=d\n",
+ "for i in range(0,3):\n",
+ " print \"Address = %u\"%id(a[i])\n",
+ " print \"Value = %d\" % (a[i])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address = 4298181184\n",
+ "Value = 10\n",
+ "Address = 4298180944\n",
+ "Value = 20\n",
+ "Address = 4298180704\n",
+ "Value = 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No.: 5.126 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to sort a list of strings in alphabetical order using array of pointers.\n",
+ "\n",
+ "a = []\n",
+ "n= input(\"Enter the number of strings: \")\n",
+ "print \"Enter each string on a separate line below.\"\n",
+ "for i in range(0,n):\n",
+ " a.append(0)\n",
+ " \n",
+ "for i in range(0,n):\n",
+ " a[i]=raw_input(\"String %d: \" %(i+1))\n",
+ "for i in range(0,n):\n",
+ " for j in range(i,n):\n",
+ " if a[i]>a[j]:\n",
+ " t = a[i]\n",
+ " a[i] = a[j]\n",
+ " a[j] = t\n",
+ "print \"\\nReordered List of Strings: \"\n",
+ "for i in range(0,n):\n",
+ " print \"String %d: %s\" %(i+1,a[i])\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of strings: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter each string on a separate line below.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 1: venkat\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 2: ramesh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 3: babu\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 4: muni\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 5: shankar\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String 6: saravanan\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Reordered List of Strings: \n",
+ "String 1: babu\n",
+ "String 2: muni\n",
+ "String 3: ramesh\n",
+ "String 4: saravanan\n",
+ "String 5: shankar\n",
+ "String 6: venkat\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page No.: 5.128 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to count number of words\n",
+ "\n",
+ "str=[]\n",
+ "ps=raw_input(\"Enter a string: \")\n",
+ "print len(ps.split()), \"word(s) in the given string\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string: I am a student.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4 word(s) in the given string\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 5, Page No.: 5.129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate on strings and pointers\n",
+ "\n",
+ "s1=\"abcd\"\n",
+ "s2='efgh'\n",
+ "\n",
+ "print \"%s %16lu \\n\" % (s1,id(s1))\n",
+ "print \"%s %16lu \\n\" % (s2,id(s2)) \n",
+ "\n",
+ "s1=s2\n",
+ "print \"%s %16lu \\n\" % (s1,id(s1))\n",
+ "print \"%s %16lu \\n\" % (s2,id(s2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "abcd 4363408224 \n",
+ "\n",
+ "efgh 4363332704 \n",
+ "\n",
+ "efgh 4363332704 \n",
+ "\n",
+ "efgh 4363332704 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter18.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter18.ipynb
new file mode 100755
index 00000000..c422da50
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter18.ipynb
@@ -0,0 +1,490 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0724a7e756186f06943f5403b91daf5f178ee495f014e11c1fad0330aa0d254c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Pointers and Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.: 5.130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print details of person using structure and pointer\n",
+ "\n",
+ "class account:\n",
+ " name=\"\"\n",
+ " place=\"\"\n",
+ " acctno=0\n",
+ " \n",
+ "m4=account()\n",
+ "m4.name=\"Venkat\"\n",
+ "m4.place=\"Arcot\"\n",
+ "m4.acctno=24201\n",
+ "\n",
+ "print \"%s\\t%s\\t%d\\n\"%(m4.name,m4.place,m4.acctno)\n",
+ "\n",
+ "contents=m4\n",
+ "\n",
+ "print \"%s\\t%s\\t%d\\n\"%(contents.name,contents.place,contents.acctno)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Venkat\tArcot\t24201\n",
+ "\n",
+ "Venkat\tArcot\t24201\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No.: 5.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print name, place, and account number using structure and pointer\n",
+ "\n",
+ "class account:\n",
+ " name=\"\"\n",
+ " place=\"\"\n",
+ " acctno=0\n",
+ " \n",
+ "m4=account()\n",
+ "m4.name=\"Madhavan\"\n",
+ "m4.place=\"Chennai\"\n",
+ "m4.acctno=241\n",
+ "a=m4\n",
+ "\n",
+ "print \"%s\\n%s\\n%d\\n\"%(a.name,a.place,a.acctno)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Madhavan\n",
+ "Chennai\n",
+ "241\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No.: 5.132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to show how the int_pointers structure can be handled.\n",
+ "\n",
+ "\n",
+ "class int_pointers:\n",
+ " p1=0\n",
+ " p2=0\n",
+ " \n",
+ "pointers=int_pointers()\n",
+ "m1= 80\n",
+ "pointers.p1=m1\n",
+ "pointers.p2=-40\n",
+ "m2=pointers.p2\n",
+ "print \"m1= %i, *pointers.p1 = %i\\n\"% (m1,pointers.p1)\n",
+ "print \"m2= %i, *pointers.p2 = %i\\n\"% (m2,pointers.p2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m1= 80, *pointers.p1 = 80\n",
+ "\n",
+ "m2= -40, *pointers.p2 = -40\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 1: Page No.5.133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to interchange the values stored in two variables using function with pointers. \n",
+ "\n",
+ "def interchange(a,b):\n",
+ " t=a\n",
+ " a=b\n",
+ " b=t\n",
+ " return b,a\n",
+ " \n",
+ "a=39\n",
+ "b=77\n",
+ "\n",
+ "print \"Before Interchange: a=%d, b=%d\"%(a,b)\n",
+ "\n",
+ "\n",
+ "print \"After Interchange : a=%d, b=%d\"%(interchange(b,a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before Interchange: a=39, b=77\n",
+ "After Interchange : a=77, b=39\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study: 2, Page No.:5.134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate the use of structure pointers\n",
+ "\n",
+ "class book:\n",
+ " bno=0\n",
+ " bname=''\n",
+ " cost=0.0\n",
+ "\n",
+ "p=[book()for i in range(0,3)]\n",
+ "print \"Enter the Book details... \"\n",
+ "print \"Enter Book number, Book Name, Book Costs... \"\n",
+ "for i in range(0,3):\n",
+ " p[i].bno=input()\n",
+ " p[i].bname=raw_input()\n",
+ " p[i].cost=input()\n",
+ " \n",
+ "for i in range(0,3):\n",
+ " \n",
+ " print \"\\n%d\\t%s\\t\\t%d\"%(p[i].bno,p[i].bname,p[i].cost)\n",
+ " \n",
+ "print \"\\nStructure Output\\n\"\n",
+ "ptr=p\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " print \"%d\\t%s\\t\\t%d\"%(ptr[i].bno,ptr[i].bname,ptr[i].cost)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Book details... \n",
+ "Enter Book number, Book Name, Book Costs... \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "101\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Computer Practice_1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "240\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "201\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Computer Practice_2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "250\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "202\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C++ and JAVA\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "280\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "101\tComputer Practice_1\t240\n",
+ "\n",
+ "201\tComputer Practice_2\t250\n",
+ "\n",
+ "202\tC++ and JAVA\t280\n",
+ "\n",
+ "Structure Output\n",
+ "\n",
+ "101\tComputer Practice_1\t240\n",
+ "201\tComputer Practice_2\t250\n",
+ "202\tC++ and JAVA\t280\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 3: Page No: 5.136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to count number of vowels,consonants, digits,spaces and other characters in a line of text.\n",
+ "\n",
+ "vowels='aeiou'\n",
+ "consonants='bcdfghjklmnpqrstvwxyz'\n",
+ "spaces =' '\n",
+ "digits='1234567890'\n",
+ "special_characters='!@#$%^&*()_'\n",
+ "\n",
+ "text=raw_input(\"Enter the text in lower case: \")\n",
+ "\n",
+ "print \"\\nNumber of vowels: \",dict((v, text.count(v)) for v in text if v in vowels)\n",
+ "print \"Number of consonants: \",dict((c, text.count(c)) for c in text if c in consonants)\n",
+ "print \"Number of Spaces: \",dict((s, text.count(s)) for s in text if s in spaces)\n",
+ "print \"Number of digits: \",dict((d, text.count(d)) for d in text if d in digits)\n",
+ "print \"Number of special_characters: \",dict((sc, text.count(sc)) for sc in text if sc in special_characters)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the text in lower case: 123 vrb publishers @#$%^&*()\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number of vowels: {'i': 1, 'e': 1, 'u': 1}\n",
+ "Number of consonants: {'b': 2, 'h': 1, 'l': 1, 'p': 1, 's': 2, 'r': 2, 'v': 1}\n",
+ "Number of Spaces: {' ': 3}\n",
+ "Number of digits: {'1': 1, '3': 1, '2': 1}\n",
+ "Number of special_characters: {'@': 1, '#': 1, '%': 1, '$': 1, '&': 1, ')': 1, '(': 1, '*': 1, '^': 1}\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 4: Page No.: 5.136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate malloc() function\n",
+ "\n",
+ "NULL=0\n",
+ "string = ''\n",
+ "if string==NULL:\n",
+ " print \"Not Enough memory to allocate buffer\\n\"\n",
+ "else:\n",
+ " \n",
+ " def strcpy(cstring1):\n",
+ " import copy\n",
+ " cstring2=copy.copy(cstring1)\n",
+ " return cstring2 \n",
+ "string=\"Hello\"\n",
+ "print \"String is %s\" %string"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String is Hello\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 5: Page No.: 5.137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate calloc() function\n",
+ "\n",
+ "string=''\n",
+ "\n",
+ "def strcpy(cstring1):\n",
+ " import copy\n",
+ " cstring2=copy.copy(cstring1)\n",
+ " return cstring2 \n",
+ "stri=\"BHAVANA\"\n",
+ "string=strcpy(stri)\n",
+ "print \"String is %s\" %string"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String is BHAVANA\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Case Study 6: Page No.:5.138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate realloc() function\n",
+ "#Cannot do in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 29
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter19.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter19.ipynb
new file mode 100755
index 00000000..bbaf1a5b
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter19.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:069422c07d34cc73268583e26cec775bbe1b3930cb154b474b2ff1e109dbe593"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 : Command Line Arguments"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.:5.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import sys\n",
+ "argc=0\n",
+ "if argc!=2:\n",
+ " print \"Hellow %s\"%(sys.argv)\n",
+ "else:\n",
+ " print \"Forgotted to type name\"\n",
+ " exit(0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hellow ['-c', '-f', '/home/gayathri/.config/ipython/profile_default/security/kernel-f732916e-2a20-4211-8210-1c4fa7115bd5.json', \"--IPKernelApp.parent_appname='ipython-notebook'\", '--profile-dir', '/home/gayathri/.config/ipython/profile_default', '--parent=1']\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No. 5.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "argc='0'\n",
+ "if argc==2:\n",
+ " print \"Argument supplied is %s\"%(sys.argv)\n",
+ "elif argc>2:\n",
+ " print \"Too many arguments supplied \\n\",(sys.argv)\n",
+ "else:\n",
+ " print \"One Argument expected\",(sys.argv)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Too many arguments supplied \n",
+ "['-c', '-f', '/home/gayathri/.config/ipython/profile_default/security/kernel-f732916e-2a20-4211-8210-1c4fa7115bd5.json', \"--IPKernelApp.parent_appname='ipython-notebook'\", '--profile-dir', '/home/gayathri/.config/ipython/profile_default', '--parent=1']\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No. :5.140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "\n",
+ "print \"The Arguments to the program are: \"\n",
+ "print str(sys.argv)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Arguments to the program are: \n",
+ "['-c', '-f', '/home/gayathri/.config/ipython/profile_default/security/kernel-f732916e-2a20-4211-8210-1c4fa7115bd5.json', \"--IPKernelApp.parent_appname='ipython-notebook'\", '--profile-dir', '/home/gayathri/.config/ipython/profile_default', '--parent=1']\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter20.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter20.ipynb
new file mode 100755
index 00000000..adaadc6f
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter20.ipynb
@@ -0,0 +1,61 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7f2d14f2c2ae43d8abc01634eb7d39800f8596aa61628d10404d3502e1e30c64"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 : Dynamic Memory Allocation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No. 5.146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reallocation of memory\n",
+ "\n",
+ "p= \"MADRAS\"\n",
+ "\n",
+ "print \"Memory contains: %s\\n\"%(p) #There is no reallocation memory in python\n",
+ "\n",
+ "p=\"CHENNAI\"\n",
+ "\n",
+ "print \"Memory now contains: %s\\n\"%(p)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Memory contains: MADRAS\n",
+ "\n",
+ "Memory now contains: CHENNAI\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter21.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter21.ipynb
new file mode 100755
index 00000000..2b76d2a2
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter21.ipynb
@@ -0,0 +1,174 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2bdca20a49e1bad43f6968c764966fb35bc4580bd54570e770e266797cc3ab0e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 : The C Preprocessor"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 1, Page No.5.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print square and cube Values by using macro substitutions. \n",
+ "def sq(n):\n",
+ " return n*n\n",
+ " \n",
+ " \n",
+ "def cube(n):\n",
+ " return n*n*n\n",
+ " \n",
+ "\n",
+ "a=5\n",
+ "b=3\n",
+ "s=c=0\n",
+ "\n",
+ "#Function calling\n",
+ "s=sq(a)\n",
+ "c=cube(b)\n",
+ "\n",
+ "#Result\n",
+ "print \"Square value of 5 is %d\"%(s)\n",
+ "print \"Cube value of 3 is %d\"%(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Square value of 5 is 25\n",
+ "Cube value of 3 is 27\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 2, Page No. 5.151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the Values using macro substitution.\n",
+ "\n",
+ "VAL=40\n",
+ "\n",
+ "print \"The value is %d\"%VAL\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value is 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 3, Page No.:5.151\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print Value and text using preprocessing.\n",
+ "VAL=35\n",
+ "\n",
+ "HELLO=\"HELLO\"\n",
+ "\n",
+ "res=VAL-5\n",
+ "\n",
+ "print \"Res=VAL-5:Res= %d\"%res\n",
+ "\n",
+ "print \"HELLO\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Res=VAL-5:Res= 30\n",
+ "HELLO\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example: 4, Page No.:5.152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to print the value using preprocessors.\n",
+ "USD=1\n",
+ "UKP=1\n",
+ "\n",
+ "currency_rate=46\n",
+ "currency_rate=100\n",
+ "\n",
+ "rs=10*currency_rate\n",
+ "print \"The Value of rs is : %d\"%rs\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Value of rs is : 1000\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/Chapter22.ipynb b/Fundamental_of_Computing_and_Programming_in_C/Chapter22.ipynb
new file mode 100755
index 00000000..53a104bf
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/Chapter22.ipynb
@@ -0,0 +1,2300 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dd103cfe67b47eb61e56816517923337936d461ec4fd4b8f9f87e6c544fd31e3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 : Sample C Programs(Lab Exercise)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 1: Page no.:L.4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Area of Triangle\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#User Inputs\n",
+ "a,b,c=input(\"Enter three sides: \")\n",
+ "\n",
+ "#calculation of semi perimeter\n",
+ "s=(a+b+c)/2\n",
+ "\n",
+ "#Calculation of Area of Triangle\n",
+ "d=(s*(s-a)*(s-b)*(s-c))\n",
+ "\n",
+ "area=math.sqrt(d)\n",
+ "\n",
+ "#Result\n",
+ "print \"Area of triangle = %f sq units \\n\"%area"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three sides: 5,6,7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of triangle = 14.696938 sq units \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 2: Page No. L.5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Square root for the given value.\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#User Input\n",
+ "x=input(\"Enter the Value: \")\n",
+ "\n",
+ "#Result\n",
+ "print \"Square root of %.2f is: \"%(x)\n",
+ "\n",
+ "print math.sqrt(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Value: 81\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Square root of 81.00 is: \n",
+ "9.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 3: Page.No.L.6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sum of the series 0+1+(1+2)+...+n\n",
+ "\n",
+ "#User Input\n",
+ "n=input(\"Enter the Value of n : \")\n",
+ "\n",
+ "#Variable Declaration\n",
+ "s=term=0\n",
+ "i=j=0\n",
+ "\n",
+ "#Computing Values in loop\n",
+ "for i in range(n):\n",
+ " for j in range(n):\n",
+ " if j<=i:\n",
+ " term=term+j\n",
+ " j=j+1 \n",
+ "s=s+term\n",
+ "if i<=n:\n",
+ " i=i+1\n",
+ " \n",
+ "#Result\n",
+ "print \"Sum of the series S= %d\"%(s)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Value of n :5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of the series S= 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 4: Page No.:L.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Decimal into binary number.\n",
+ "\n",
+ "n=input(\"Enter the decimal number: \")\n",
+ "s=n\n",
+ "k=[]\n",
+ "\n",
+ "#Calculation\n",
+ "while (s>0):\n",
+ " a=int(float(s%2))\n",
+ " k.append(a)\n",
+ " s=(s-a)/2\n",
+ "k.append(0)\n",
+ "bi=\"\"\n",
+ "\n",
+ "for j in k[::1]:\n",
+ " bi=bi+str(j)\n",
+ "\n",
+ "#Result\n",
+ "print('The binary value of %d is %s'%(n, bi))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the decimal number: 14\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binary value of 14 is 01110\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 5: Page No. L.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#The given number is armstrong or not.\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=b=c=d=e=0\n",
+ "\n",
+ "#User Input\n",
+ "a=input(\"Enter the Number: \")\n",
+ "\n",
+ "#Assigning variable 'a' value to variable 'e'\n",
+ "e=a\n",
+ "\n",
+ "#Calculation for finding Armstrong or not\n",
+ "while a>0:\n",
+ " b=a%10\n",
+ " c=b*b*b\n",
+ " a=a/10\n",
+ " d=c+d\n",
+ " \n",
+ "#Result\n",
+ "if e==d:\n",
+ " print \"%d is an armstrong number. \"%e\n",
+ " \n",
+ "else:\n",
+ " print \"%d is not an armstrong number. \"%e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Number: 153\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "153 is an armstrong number. \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 6: Page No.L.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Centigrade and Farenheit Values.\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "c=f=cn=fn=0.0\n",
+ "\n",
+ "#User Input1 for calculating farenheit\n",
+ "c=input(\"Enter temperature in centigrade : \")\n",
+ "\n",
+ "#Farenheit Calculation\n",
+ "f=1.8*c+32\n",
+ "\n",
+ "#Result1\n",
+ "print \"Farenheit Equivalent is: %.1f\\n\" %(f)\n",
+ "\n",
+ "#User input2 for calculating centigrade\n",
+ "fn=input(\"Enter temperature in farenheit : \")\n",
+ "\n",
+ "#Centigrade Calculation\n",
+ "cn=(fn-32)/1.8\n",
+ "\n",
+ "#Result2\n",
+ "print \"Centigrade Equivalent is : %.1f\\n\"%(cn)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter temperature in centigrade : 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Farenheit Equivalent is: 68.0\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter temperature in farenheit : 68\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Centigrade Equivalent is : 20.0\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 7: Page .no.L.13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Converting Decimal value to binary number\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "bnum=digit=decimal=bina=base=0\n",
+ "\n",
+ "#User input\n",
+ "bnum=input(\"Enter the binary number: \")\n",
+ "\n",
+ "bina=bnum\n",
+ "\n",
+ "while(bnum!=0):\n",
+ " digit=bnum%10\n",
+ " decimal=decimal+(digit<<base)\n",
+ " base=base+1\n",
+ " bnum=bnum/10\n",
+ " \n",
+ "print \"The binary equivalent of %d in decimal = %d\"%(bina,decimal)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the binary number: 1111\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binary equivalent of 1111 in decimal = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 8: Page no.L.15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reverse number of the given number.\n",
+ "\n",
+ "#Function Definition.\n",
+ "def rev(n):\n",
+ " digit=rev_of=0\n",
+ " while n!=0:\n",
+ " digit=n%10\n",
+ " rev_of=rev_of*10+digit\n",
+ " n=n/10\n",
+ " return rev_of\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "\n",
+ "#User input\n",
+ "p=input(\"Enter the number: \")\n",
+ "\n",
+ "q=rev(p)\n",
+ "\n",
+ "print \"Reverse of %d is %d.\\n\"%(p,q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number: 1234\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reverse of 1234 is 4321.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 9: Page no.L.17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Square of given value\n",
+ "\n",
+ "#Function definition\n",
+ "def square(y):\n",
+ " return y*y\n",
+ "\n",
+ "#User input\n",
+ "n=input(\"Enter the nth element : \")\n",
+ "\n",
+ "#Calculation\n",
+ "for x in range(1,n+1):\n",
+ " print \"%d \" %(square(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the nth element : 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 \n",
+ "4 \n",
+ "9 \n",
+ "16 \n",
+ "25 \n",
+ "36 \n",
+ "49 \n",
+ "64 \n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 10: Page no.:L.18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum value of given numbers\n",
+ "\n",
+ "#Function definition\n",
+ "def maximum(x,y,z):\n",
+ " \n",
+ " maxi=x\n",
+ " if y>maxi:\n",
+ " maxi=y\n",
+ " if z>maxi:\n",
+ " maxi=z\n",
+ " return maxi\n",
+ " \n",
+ " \n",
+ "#User input\n",
+ "a,b,c=input(\"Enter three integers : \")\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum is : %d\\n\"%(maximum(a,b,c))\n",
+ "\n",
+ "\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter three integers : 2,6,9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum is : 9\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 11: Page no.L.19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Factorial of the given number using recursion.\n",
+ "\n",
+ "#funtion declaration\n",
+ "def fact(n):\n",
+ " if n==0:\n",
+ " return 1\n",
+ " else:\n",
+ " return(n*fact(n-1))\n",
+ " \n",
+ "#USer Input\n",
+ "\n",
+ "n=input(\"Enter the number whose factorial is to be found: \")\n",
+ "\n",
+ "#Result\n",
+ "print \"The Factorial of %d is : %d \\n\"%(n,fact(n))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number whose factorial is to be found: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Factorial of 6 is : 720 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 12: Page no.L.20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Palindrome or not.\n",
+ "\n",
+ "print \"Enter the String to check palindrome or not \\n\"\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "string = raw_input(\"Enter the String: \")\n",
+ "\n",
+ "#reverse the string \n",
+ "\n",
+ "rev_string = reversed(string)\n",
+ "\n",
+ "#Check if the string is palindrome or not\n",
+ "\n",
+ "if list(rev_string) == list(string) :\n",
+ " print \"\\nThe given string %s is a palindrome\"%(string)\n",
+ " \n",
+ "else:\n",
+ " print \"\\nThe given string %s is not a palindrome\"%(string)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the String to check palindrome or not \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the String: madam\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The given string madam is a palindrome\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 13: Page No. L.24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Largest and smallest number in array\n",
+ "\n",
+ "#User input\n",
+ "n= input(\"Enter the nth term of an array: \")\n",
+ "\n",
+ "for i in range(0,n):\n",
+ " a[i]=eval(raw_input())\n",
+ "\n",
+ "#check if the given array is large or small. \n",
+ " for i in range(1,n):\n",
+ " if a[i]>large:\n",
+ " large=a[i]\n",
+ " \n",
+ " else:\n",
+ " if a[i]<small:\n",
+ " small=a[i]\n",
+ " \n",
+ " \n",
+ "print \"Largest element in an array is: %.2f\"%large\n",
+ "print \"Smallest element in an array is: %.2f\"%small\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the nth term of an array: 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "79\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-21\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Largest element in an array is: 79.00\n",
+ "Smallest element in an array is:-21.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 14: Page no. L.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given array in ascending order\n",
+ "\n",
+ "#User Input\n",
+ "n=input(\"Enter the last term of the array: \")\n",
+ "\n",
+ "for i in range(0,n):\n",
+ " a[i]=eval(raw_input())\n",
+ "for i in range(0,n-1):\n",
+ "\n",
+ " for j in range(i+1,n):\n",
+ " if a[i]>a[j]:\n",
+ " temp=a[i]\n",
+ " a[i]=a[j]\n",
+ " a[j]=temp\n",
+ " \n",
+ "print \"\\nThe Elements in ascending order\\n\"\n",
+ "\n",
+ "for i in range(0,n):\n",
+ " print \"%.2f\"%a[i]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last term of the array: 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "23\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "14\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-67\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "48\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "01\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Elements in ascending order\n",
+ "\n",
+ "-90.00\n",
+ "-67.00\n",
+ "1.00\n",
+ "14.00\n",
+ "23.00\n",
+ "48.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 15: Page No. L.27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Insert element in specified position in an array\n",
+ "\n",
+ "import array\n",
+ "\n",
+ "#User input\n",
+ "n=input(\"Enter the last value: \")\n",
+ "a=[0 for i in range(0,n) ]\n",
+ "print \"Enter the elements of array: \"\n",
+ "for i in range(0,n):\n",
+ " a[i]=eval(raw_input())\n",
+ " \n",
+ "#Getting inserting element and position from users\n",
+ "item=input(\"Enter the element to be inserted: \")\n",
+ "pos=input(\"Enter the position of insertion: \")\n",
+ "a.insert(pos,item)\n",
+ "#Result\n",
+ "print \"\\nElements after insertion is : \"\n",
+ "for i in range(0,n+1):\n",
+ " print \"%.2f\"%a[i]\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last value: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements of array: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "32\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element to be inserted: 36\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the position of insertion: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements after insertion is : \n",
+ "12.00\n",
+ "34.00\n",
+ "56.00\n",
+ "90.00\n",
+ "36.00\n",
+ "32.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 16: Page.no.L.29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Transpose of the matrix\n",
+ "\n",
+ "#User Input\n",
+ "\n",
+ "a=[]\n",
+ "\n",
+ "n,m=input(\"Enter the Row and Columns: \")\n",
+ "print \"Enter the elements of matrix:\"\n",
+ "for i in range(n):\n",
+ " a.append([])\n",
+ " \n",
+ " for j in range(m):\n",
+ " element=input()\n",
+ " a[i].append(element)\n",
+ "\n",
+ "#print matrix\n",
+ "print \"\\nElements in matrix: \"\n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " print a[i][j],\n",
+ " print '\\n'\n",
+ "\n",
+ "\n",
+ "#generate transpose\n",
+ "transpose=[]\n",
+ "for j in range(m):\n",
+ " transpose.append([])\n",
+ " for i in range (n):\n",
+ " b=a[i][j]\n",
+ " transpose[j].append(b)\n",
+ "\n",
+ "#print transpose\n",
+ "print \"Transpose of the matrix is: \"\n",
+ "for i in range (m):\n",
+ " for j in range (n):\n",
+ " print transpose[i][j],\n",
+ " print '\\n'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns: 3,3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements of matrix:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements in matrix: \n",
+ "1 2 3 \n",
+ "\n",
+ "4 5 6 \n",
+ "\n",
+ "7 8 9 \n",
+ "\n",
+ "Transpose of the matrix is: \n",
+ "1 4 7 \n",
+ "\n",
+ "2 5 8 \n",
+ "\n",
+ "3 6 9 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 17: Page no. L.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to find sum of an array matrix\n",
+ "#Array Declaration\n",
+ "\n",
+ "a=[]\n",
+ "b=[]\n",
+ "c=[[0 for i in xrange(0,5)] for i in xrange(0,5)]\n",
+ "#User Input1\n",
+ "n,m=input(\"Enter the Row and Columns of A Matrix: \")\n",
+ "print \"Enter the elements of A matrix:\"\n",
+ "for i in range(n):\n",
+ " a.append([])\n",
+ " \n",
+ " for j in range(m):\n",
+ " element=input()\n",
+ " a[i].append(element)\n",
+ "\n",
+ "#print matrix1\n",
+ "print \"\\nElements in A matrix: \"\n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " print a[i][j],\n",
+ " print '\\n'\n",
+ "\n",
+ " \n",
+ "#User Input 2\n",
+ "p,q=input(\"Enter the Row and Columns of B Matrix: \")\n",
+ "print \"Enter the elements of B matrix:\"\n",
+ "for i in range(p):\n",
+ " b.append([])\n",
+ " \n",
+ " for j in range(q):\n",
+ " element=input()\n",
+ " b[i].append(element)\n",
+ "\n",
+ "#print matrix 2\n",
+ "print \"\\nElements in B matrix: \"\n",
+ "for i in range(p):\n",
+ " for j in range(q):\n",
+ " print b[i][j],\n",
+ " print '\\n'\n",
+ "\n",
+ "#Addition of array in matrix \n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " c[i][j] += a[i][j] + b[i][j]\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nThe Sum of A and B matrix: \"\n",
+ "for i in range(n):\n",
+ " for j in range(m):\n",
+ " print \"%5d\"%c[i][j],\n",
+ " print '\\n'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns of A Matrix: 3,3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements of A matrix:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements in A matrix: \n",
+ "1 2 3 \n",
+ "\n",
+ "4 5 6 \n",
+ "\n",
+ "7 8 9 \n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns of B Matrix: 3,3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements of B matrix:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements in B matrix: \n",
+ "1 2 3 \n",
+ "\n",
+ "4 5 6 \n",
+ "\n",
+ "6 7 4 \n",
+ "\n",
+ "\n",
+ "The Sum of A and B matrix: \n",
+ " 2 4 6 \n",
+ "\n",
+ " 8 10 12 \n",
+ "\n",
+ " 13 15 13 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 18: Page No. :L.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to find Matrix Multiplication \n",
+ "#Array Declaration\n",
+ "\n",
+ "a=[]\n",
+ "b=[]\n",
+ "c=[[0 for i in xrange(0,5)] for i in xrange(0,5)]\n",
+ "\n",
+ "while True:\n",
+ "#User Input1\n",
+ " n,m=input(\"Enter the Row and Columns of A Matrix: \")\n",
+ " p,q=input(\"Enter the Row and Columns of B Matrix: \")\n",
+ " if (n==m&p==q):\n",
+ " print \"Enter the elements of A matrix:\" \n",
+ " for i in range(n):\n",
+ " a.append([]) \n",
+ " for j in range(m):\n",
+ " element=input()\n",
+ " a[i].append(element)\n",
+ "#print matrix1\n",
+ " print \"\\nElements in A matrix: \"\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " print a[i][j],\n",
+ " print '\\n'\n",
+ " \n",
+ "#User Input 2 \n",
+ " print \"Enter the elements of B matrix:\"\n",
+ " for i in range(p):\n",
+ " b.append([])\n",
+ " for j in range(q):\n",
+ " element=input()\n",
+ " b[i].append(element)\n",
+ "\n",
+ "#print matrix 2\n",
+ " print \"\\nElements in B matrix: \"\n",
+ " for i in range(p):\n",
+ " for j in range(q):\n",
+ " print b[i][j],\n",
+ " print '\\n'\n",
+ "\n",
+ "#Multiplication of array in matrix \n",
+ " for i in range(0,m):\n",
+ " for j in range(0,n):\n",
+ " c[i][j] = 0\n",
+ " for k in range(0,n):\n",
+ " c[i][j] += a[i][k] * b[k][j]\n",
+ " \n",
+ "#Result\n",
+ " print \"\\nThe Multiplication of A and B matrix: \"\n",
+ " for i in range(n):\n",
+ " for j in range(m):\n",
+ " print \"%5d\"%c[i][j],\n",
+ " print '\\n'\n",
+ " break\n",
+ " else:\n",
+ " print \"The No. of rows and columns are not equal.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns of A Matrix: 3,3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns of B Matrix: 2,2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The No. of rows and columns are not equal.\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns of A Matrix: 3,3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Row and Columns of B Matrix: 3,3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the elements of A matrix:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements in A matrix: \n",
+ "1 2 3 \n",
+ "\n",
+ "4 5 6 \n",
+ "\n",
+ "7 8 9 \n",
+ "\n",
+ "Enter the elements of B matrix:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements in B matrix: \n",
+ "2 4 1 \n",
+ "\n",
+ "6 7 4 \n",
+ "\n",
+ "3 5 7 \n",
+ "\n",
+ "\n",
+ "The Multiplication of A and B matrix: \n",
+ " 23 33 30 \n",
+ "\n",
+ " 56 81 66 \n",
+ "\n",
+ " 89 129 102 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 19: Page No. L.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Student grade using structure\n",
+ "\n",
+ "#User Input\n",
+ "n=input(\"Enter the number of students: \")\n",
+ "\n",
+ "#Defining Structure\n",
+ "class std:\n",
+ " no=0\n",
+ " name = ''\n",
+ " m1 = m2 = m3 =0\n",
+ " total=avg=0.0\n",
+ " grade= ''\n",
+ " \n",
+ "s=[std() for i in range(0,n)]\n",
+ "\n",
+ "#User Input\n",
+ "for i in range(0,n):\n",
+ " print \"\\nEnter the student %d details\"%(i+1)\n",
+ " print \"\\n\"\n",
+ " s[i].no=int(input(\"Give Student Number: \"))\n",
+ " s[i].name=raw_input(\"Enter the Student Name: \")\n",
+ " s[i].m1=int(input(\"Enter Student Mark1: \"))\n",
+ " s[i].m2=int(input(\"Enter Student Mark2: \"))\n",
+ " s[i].m3=int(input(\"Enter Student Mark3: \"))\n",
+ "\n",
+ "\n",
+ "#Calculation \n",
+ " s[i].total = (s[i].m1 + s[i].m2 + s[i].m3)\n",
+ " s[i].avg=(s[i].total / 3)\n",
+ " if s[i].avg<=40:\n",
+ " s[i].grade='D'\n",
+ " elif s[i].avg<60:\n",
+ " s[i].grade='C'\n",
+ " elif s[i].avg<80:\n",
+ " s[i].grade='B'\n",
+ " else:\n",
+ " s[i].grade='A'\n",
+ " \n",
+ "#Result\n",
+ "print \"\\tStudent mark details.... \\n\"\n",
+ "print \"Roll No\\t Name \\t\\tMark1 \\tMark2 \\tMark3 \\tTotal \\tAverage \\tGrade\"\n",
+ "for i in range(0,n):\n",
+ " print \"%d\\t\"%(s[i].no),\"%s\\t\\t\"%(s[i].name), \"%d\\t\"%(s[i].m1),\"%d\\t\"%(s[i].m2),\"%d\\t\"%(s[i].m3), \"%.2f\\t\"%(s[i].total), \"%.2f\\t\\t\"%(s[i].avg), \"%s\\t\"%(s[i].grade)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of students: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter the student 1 details\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give Student Number: 100\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student Name: Venkat\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark1: 89\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark2: 87\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark3: 76\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter the student 2 details\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Give Student Number: 101\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Student Name: Shankar\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark1: 87\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark2: 90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Student Mark3: 67\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tStudent mark details.... \n",
+ "\n",
+ "Roll No\t Name \t\tMark1 \tMark2 \tMark3 \tTotal \tAverage \tGrade\n",
+ "100\tVenkat\t\t89\t87\t76\t252.00\t84.00\t\tA\t\n",
+ "101\tShankar\t\t87\t90\t67\t244.00\t81.00\t\tA\t\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 20: Page No. L.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Employee details using Union\n",
+ "\n",
+ "#Defining Union\n",
+ "\n",
+ "class union:\n",
+ " name=\"\"\n",
+ " idno=0\n",
+ " salary=0.0\n",
+ " \n",
+ "desc=union()\n",
+ "\n",
+ "desc.name=\"vinod\"\n",
+ "\n",
+ "print \"Employee details:\"\n",
+ "\n",
+ "print \"The name is %s\\n\"%(desc.name)\n",
+ "print \"The idno is %d\\n\"%(desc.idno)\n",
+ "print \"The salary is %6.2f\\n\"%(desc.salary)\n",
+ "\n",
+ "desc.idno=10\n",
+ "\n",
+ "print \"Employe details:\"\n",
+ "\n",
+ "print \"The name is %s\\n\"%(desc.name)\n",
+ "print \"The idno is %d\\n\"%(desc.idno)\n",
+ "print \"The salary is %6.2f\\n\"%(desc.salary)\n",
+ "\n",
+ "desc.salary=6500.00\n",
+ "\n",
+ "print \"Employee details:\"\n",
+ "\n",
+ "print \"The name is %s\\n\"%(desc.name)\n",
+ "print \"The idno is %d\\n\"%(desc.idno)\n",
+ "print \"The salary is %6.2f\\n\"%(desc.salary)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Employee details:\n",
+ "The name is vinod\n",
+ "\n",
+ "The idno is 0\n",
+ "\n",
+ "The salary is 0.00\n",
+ "\n",
+ "Employe details:\n",
+ "The name is vinod\n",
+ "\n",
+ "The idno is 10\n",
+ "\n",
+ "The salary is 0.00\n",
+ "\n",
+ "Employee details:\n",
+ "The name is vinod\n",
+ "\n",
+ "The idno is 10\n",
+ "\n",
+ "The salary is 6500.00\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 21: Page No. L.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Swap the contents of two variable using pointer.\n",
+ "\n",
+ "#swapping function.\n",
+ "\n",
+ "def interchange(x,y):\n",
+ " temp=x\n",
+ " x=y\n",
+ " y=temp\n",
+ " return x,y\n",
+ "\n",
+ "#User Input\n",
+ "a,b = input(\"Enter the values of A and B: \")\n",
+ "#Result before interchanging\n",
+ "print \"a=%d b=%d\\n\"%(a,b)\n",
+ "\n",
+ "\n",
+ "#Result after interchanging\n",
+ "print \"After interchanging: \\n\"\n",
+ "\n",
+ "print \"a=%d b=%d\\n\"%(interchange(a,b))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the values of A and B: 23,56\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a=23 b=56\n",
+ "\n",
+ "After interchanging: \n",
+ "\n",
+ "a=56 b=23\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 22: Page No.: L.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Concatenate two strings using Dynamic Memory Allocation \n",
+ "\n",
+ "s1= raw_input(\"Enter String One: \")\n",
+ "s2=raw_input(\"Enter String two: \")\n",
+ "\n",
+ "s3=''\n",
+ "s3=s1+s2 \n",
+ "#Result\n",
+ "print \"Concatenated String: \", s1+s2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String One: venkat\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String two: raman\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concatenated String: venkatraman\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 23: Page No. L.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to store and print same data to and from the file.\n",
+ "\n",
+ "#open file\n",
+ "fp=open(\"Text.txt\",\"w\")\n",
+ "\n",
+ "#User Input\n",
+ "c=raw_input(\"Enter the Text: \")\n",
+ "\n",
+ "#Store given input into a file \"text.txt\"\n",
+ "fp.write(c)\n",
+ "\n",
+ "#Closing file\n",
+ "fp.close()\n",
+ "\n",
+ "#Again open text.txt\n",
+ "fp=open(\"Text.txt\", \"r\")\n",
+ "\n",
+ "#display the content from the file \"text.txt\"\n",
+ "print \"Displaying text from file:\\n\",c \n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Text: VRB PUBLISHERS\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Displaying text from file:\n",
+ "VRB PUBLISHERS\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 24: Page No. L.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to count number of characters in a file.\n",
+ "\n",
+ "#create a file\n",
+ "fp=open(\"str.txt\",\"w\")\n",
+ "c=\"\"\n",
+ "print \"Enter the Characters:\"\n",
+ "print \"Press ctrl+z to stop entry\"\n",
+ "\n",
+ "#User Input\n",
+ "c=raw_input()\n",
+ "#store input into the file\n",
+ "fp.write(c)\n",
+ "fp.close()\n",
+ "\n",
+ "#Again open the file to read\n",
+ "fp=open(\"str.txt\",\"r\")\n",
+ "\n",
+ "#Result\n",
+ "print \"\\n%s\"%(c)\n",
+ "print \"Number of characters in the file: \",len(c)\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Characters:\n",
+ "Press ctrl+z to stop entry\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vrb publishers private limited\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "vrb publishers private limited\n",
+ "Number of characters in the file: 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exercise 25: Page No.: L.48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program using Memory Allocation function\n",
+ "\n",
+ "NULL=0\n",
+ "buffer_size=10\n",
+ "\n",
+ "buffer1 = \"BOMBAY\"\n",
+ "print \"Buffer of size %d created\"%(buffer_size)\n",
+ "print \"Buffer contains\", buffer1\n",
+ " \n",
+ "\n",
+ "if buffer_size==NULL:\n",
+ " print \"Malloc failed\"\n",
+ " \n",
+ "else:\n",
+ " print \"Buffer size modified\"\n",
+ " print \"Buffer still contains:\", buffer1\n",
+ " \n",
+ "buffer1=\"MUMBAI\"\n",
+ "print \"Buffer now contains:\", buffer1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Buffer of size 10 created\n",
+ "Buffer contains BOMBAY\n",
+ "Buffer size modified\n",
+ "Buffer still contains: BOMBAY\n",
+ "Buffer now contains: MUMBAI\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/README.txt b/Fundamental_of_Computing_and_Programming_in_C/README.txt
new file mode 100755
index 00000000..9bed1b50
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Lakshmidharan D
+Course: msc
+College/Institute/Organization: Pachaiyappa's College for Men, Kanchipuram
+Department/Designation: Computer Science
+Book Title: Fundamental of Computing and Programming in C
+Author: V. Ramesh Babu, R. Samyuktha, M. Munirathnam
+Publisher: Lakshmidharan D
+Year of publication: 2012
+Isbn: 9789381837214
+Edition: August 2012 \ No newline at end of file
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Calculation.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Calculation.png
new file mode 100755
index 00000000..54b0ef8a
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Calculation.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even.png
new file mode 100755
index 00000000..ba866766
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_1.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_1.png
new file mode 100755
index 00000000..ba866766
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_1.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_2.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_2.png
new file mode 100755
index 00000000..ba866766
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_2.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_3.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_3.png
new file mode 100755
index 00000000..ba866766
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Decision_Making_Odd_or_Even_3.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line.png
new file mode 100755
index 00000000..19625214
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_1.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_1.png
new file mode 100755
index 00000000..19625214
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_1.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_2.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_2.png
new file mode 100755
index 00000000..19625214
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_2.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_3.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_3.png
new file mode 100755
index 00000000..19625214
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_3.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_4.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_4.png
new file mode 100755
index 00000000..19625214
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Slope_and_Midpoint_of_a_line_4.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Standard_Deviation.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Standard_Deviation.png
new file mode 100755
index 00000000..a448529e
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Standard_Deviation.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi.png
new file mode 100755
index 00000000..88aee856
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi_1.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi_1.png
new file mode 100755
index 00000000..88aee856
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/Tower_of_Honoi_1.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers.png
new file mode 100755
index 00000000..05bef403
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers.png
Binary files differ
diff --git a/Fundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers_with_A.png b/Fundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers_with_A.png
new file mode 100755
index 00000000..2c6a1efe
--- /dev/null
+++ b/Fundamental_of_Computing_and_Programming_in_C/screenshots/add_two_numbers_with_A.png
Binary files differ
diff --git a/Fundamentals_Of_Thermodynamics/Chapter10.ipynb b/Fundamentals_Of_Thermodynamics/Chapter10.ipynb
new file mode 100755
index 00000000..59bbb80a
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter10.ipynb
@@ -0,0 +1,164 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6310b6690e48041fd88dd8277353623ea538798dfeeeb9a3819409de065b2175"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10:IRREVERSIBILITY AND AVAILABILITY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.1:pg-386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#Calculating reversible work\n",
+ "\n",
+ "#Form the Steam Tables,the inlet and the exit state properties are \n",
+ "hi=171.95 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=0.5705 #initial specific entropy in kJ/kg-K\n",
+ "se=2.1341 #final specific entropy in kJ/kg-K\n",
+ "he=765.34 #final specific heat of enthalpy in kJ/kg-K\n",
+ "m=5 #mass flow rate of feedwater in kg/s\n",
+ "q1=900/m #heat added by one of the sources in kJ/kg\n",
+ "q2=he-hi-q1 #second heat transfer in kJ/kg\n",
+ "To=25+273.3 #Temp. of the surroundings in K\n",
+ "T1=100+273.2 #temp. of reservoir of one of the source in K\n",
+ "T2=200+273.2 #temp. of reservoir of second source in K\n",
+ "wrev=To*(se-si)-(he-hi)+q1*(1-To/T1)+q2*(1-To/T2) #reversible work in kJ/kg\n",
+ "print\"\\n Hence, the irreversibility is\",round(wrev,1),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence, the irreversibility is 62.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2:pg-387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#Calculating reversible work\n",
+ "import math\n",
+ "#Form the Steam Tables,the inlet and the exit state properties are\n",
+ "hi=298.6 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=6.8631 #initial specific entropy in kJ/kg-K\n",
+ "se=7.4664 #final specific entropy in kJ/kg-K\n",
+ "he=544.7 #final specific heat of enthalpy in kJ/kg-K\n",
+ "q=-50 #heat lost to surroundings in kJ/kg\n",
+ "w=hi-he+q #work in kJ/kg\n",
+ "To=25+273.2 #Temp. of the surroundings in K\n",
+ "P1=100 #Pressure of ambient air in kPa\n",
+ "P2=1000 #Final pressure of air after compression in kPa\n",
+ "R=0.287 #Universal gas constant in kJ/kg-K\n",
+ "wrev=To*(se-si-R*math.log(P2/P1))-(he-hi)+q*(1-To/To)#reversible work for the given change of state in kJ/kg\n",
+ "i=wrev-w #irreversibility in kJ/kg\n",
+ "print\"\\n Hence, the irreversibility is\",round(i,1),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence, the irreversibility is 32.8 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.3:pg-390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#Calculating reversible work and irreversibility\n",
+ "\n",
+ "#Form the Steam Tables at state 1\n",
+ "u1=1243.5 #initial specific internal energy in kJ/kg\n",
+ "s1=4.4819 #initial specific entropy in kJ/kg-K\n",
+ "v1=28.895 #initial specific volume in m^3/kg\n",
+ "v2=2*v1 #final specific volume in kg/m^3\n",
+ "u2=u1 #initial specific internal energy in kJ/kg\n",
+ "#These two independent properties, v2 and u2 , fix state 2.The final temp. is calculated by interplotation using the data for T2=5C and v2,x=0/3928 and u=948.5 kJ/kg. For T2=10C and v2, x=0.5433 and u=1317 kJ/kg\n",
+ "T2=9.1+273.2 #final temp. in K\n",
+ "x2=0.513 #quality in final state\n",
+ "s2=4.644 #final specific entropy in kJ/kg\n",
+ "V1=1 #volume of part of A in m^3\n",
+ "m=V1/v1 #mass flow rate in kg/s\n",
+ "To=20+273.2 #Room temperature in K\n",
+ "Wrev=To*m*(s2-s1) #reversible work in kJ\n",
+ "I=Wrev #irreversibility of the process\n",
+ "print\"\\n The irreversibility is \",round(I,3),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " The irreversibility is 1.645 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter11.ipynb b/Fundamentals_Of_Thermodynamics/Chapter11.ipynb
new file mode 100755
index 00000000..f7ce9d5a
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter11.ipynb
@@ -0,0 +1,424 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:099777bd4d735e894f7949924f63dca34258026e1381262643494860b41717f6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11:Power and Refrigeration Systems\u2014With Phase Change"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.1:Pg-425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 1\n",
+ "#To determine the efficiency of Rankine cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=2000;#Exit pressure in kPa\n",
+ "P1=10;#Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp=v*(P2-P1);#work done in pipe in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp;#enthalpy in kJ/kg\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for boiler\n",
+ "h3=2799.5;#Enthalpy in kJ/kg\n",
+ "#3-Inlet state for turbine\n",
+ "#4-Exit state for turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=6.3409;#kJ/kg\n",
+ "sf=0.6493;#Entropy at liquid state in kJ/kg\n",
+ "sfg=7.5009;#Entropy difference for vapor and liquid state in kJ/kg\n",
+ "x4=(s4-sf)/sfg;#x-factor\n",
+ "hfg=2392.8;#Enthalpy difference in kJ/kg for turbine\n",
+ "h4=h1+x4*hfg;#Enthalpy in kJ/kg\n",
+ "\n",
+ "nth=((h3-h2)-(h4-h1))/(h3-h2);\n",
+ "print\" Percentage efficiency =\",round(nth*100,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percentage efficiency = 30.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2:Pg-429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 2\n",
+ "#To determine the efficiency of Rankine cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=4000;#Exit pressure in kPa\n",
+ "P1=10;#Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp=v*(P2-P1);#work done in pipe in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp;#enthalpy in kJ/kg\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for boiler\n",
+ "h3=3213.6;#Enthalpy in kJ/kg from table\n",
+ "#3-Inlet state for turbine\n",
+ "#4-Exit state for turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=6.7690;#Entropy in kJ/kg from table\n",
+ "sf=0.6493;#Entropy at liquid state in kJ/kg from table\n",
+ "sfg=7.5009;#Entropy difference for vapor and liquid state in kJ/kg from table\n",
+ "x4=(s4-sf)/sfg;#x-factor\n",
+ "hfg=2392.8;#Enthalpy difference in kJ/kg for turbine\n",
+ "h4=h1+x4*hfg;#Enthalpy in kJ/kg\n",
+ "\n",
+ "nth=((h3-h2)-(h4-h1))/(h3-h2);\n",
+ "print\"Percentage efficiency =\",round(nth*100,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage efficiency = 35.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.3:Pg-433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 3\n",
+ "#To determine the efficiency of a cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=4000;#Exit pressure in kPa\n",
+ "P1=10;#Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp=v*(P2-P1);#work done in pipe in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp;#enthalpy in kJ/kg\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for Boiler\n",
+ "h3=3213.6;#Enthalpy in kJ/kg from table\n",
+ "#3-Inlet state for high pressure turbine\n",
+ "#4-Exit state for high pressure turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=6.7690;#Entropy in kJ/kg from table\n",
+ "sf=1.7766;#Entropy at liquid state in kJ/kg from table\n",
+ "sfg=5.1193;#Entropy difference for vapor and liquid state in kJ/kg from table\n",
+ "x4=(s4-sf)/sfg;#x-factor\n",
+ "hf=604.7#Enthalpy of liquid state in kJ/kg\n",
+ "hfg=2133.8;#Enthalpy difference in kJ/kg for turbine\n",
+ "h4=hf+x4*hfg;#Enthalpy in kJ/kg\n",
+ "#5-Inlet state for low pressure turbine\n",
+ "#6-Exit pressure for low pressure turbine\n",
+ "sf=0.6493;#Entropy in liquid state in kJ/kg for turbine\n",
+ "h5=3273.4;#enthalpy in kJ/kg \n",
+ "s5=7.8985;#Entropy in kJ/kg\n",
+ "sfg=7.5009;#entropy diff in kJ/kg \n",
+ "x6=(s5-sf)/sfg;#x-factor\n",
+ "hfg=2392.8;#enthalpy difference for low pressure turbine in kj/kg\n",
+ "h6=h1+x6*hfg;#entropy in kg/kg\n",
+ "wt=(h3-h4)+(h5-h6);#work output in kJ/kg\n",
+ "qh=(h3-h2)+(h5-h4);\n",
+ "\n",
+ "nth=(wt-wp)/qh;\n",
+ "print\" Percentage efficiency =\",round(nth*100,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percentage efficiency = 35.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.4:Pg-438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#Efficiency of Refrigeration cycle\n",
+ "\n",
+ "#from previous examples\n",
+ "h1=191.8;#kJ/kg\n",
+ "h5=3213.6;#kg/kg\n",
+ "h6=2685.7;#kJ/kg\n",
+ "h7=2144.1;#kJ/kg\n",
+ "h3=604.7;#kJ/kg\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=400;#Exit pressure in kPa\n",
+ "P1=10; #Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp1=v*(P2-P1);#work done for low pressure pump in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp1;#enthalpy in kJ/kg\n",
+ "#5-Inlet state for turbine\n",
+ "#6,7-Exit state for turbine\n",
+ "y=(h3-h2)/(h6-h2);#extraction fraction\n",
+ "wt=(h5-h6)+(1-y)*(h6-h7);#turbine work in kJ/kg\n",
+ "#3-Inlet for high pressure pump\n",
+ "#4-Exit for high pressure pump\n",
+ "P3=400;#kPa\n",
+ "P4=4000;#kPa\n",
+ "v=0.001084;#specific heat for 3-4 process in m^3/kg\n",
+ "wp2=v*(P4-P3);#work done for high pressure pump\n",
+ "h4=h3+wp2;#Enthalpy in kJ/kg\n",
+ "wnet=wt-(1-y)*wp1-wp2;\n",
+ "qh=h5-h4;#Heat output in kJ/kg\n",
+ "nth=wnet/qh;\n",
+ "print\" Refrigerator Efficiency =\",round(nth*100,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Refrigerator Efficiency = 37.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5:Pg-443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#To determine thermal efficiency of cycle\n",
+ "\n",
+ "#5-Inlet state for turbine\n",
+ "#6-Exit state for turbine\n",
+ "#h-Enthalpy at a state \n",
+ "#s-Entropy at a state\n",
+ "#from steam table\n",
+ "h5=3169.1;#kJ/kg\n",
+ "s5=6.7235;#kJ/kg\n",
+ "s6s=s5;\n",
+ "sf=0.6493;#Entropy for liquid state in kJ/kg\n",
+ "sfg=7.5009;#Entropy difference in kJ/kg\n",
+ "hf=191.8;#kJ/kg\n",
+ "hfg=2392.8;#Enthalpy difference in kJ/kg\n",
+ "x6s=(s6s-sf)/sfg;#x-factor\n",
+ "h6s=hf+x6s*hfg;#kJ/Kg at state 6s\n",
+ "nt=0.86;#turbine efficiency given\n",
+ "wt=nt*(h5-h6s);\n",
+ "#1-Inlet state for pump\n",
+ "#2-Exit state for pump\n",
+ "np=0.80;#pump efficiency given\n",
+ "v=0.001009;#specific heat in m^3/kg\n",
+ "P2=5000;#kPa\n",
+ "P1=10;#kPa\n",
+ "wp=v*(P2-P1)/np;#Work done in pump in kJ/kg\n",
+ "wnet=wt-wp;#net work in kJ/kg\n",
+ "#3-Inlet state for boiler\n",
+ "#4-Exit state for boiler\n",
+ "h3=171.8;#in kJ/kg from table\n",
+ "h4=3213.6;#kJ/kg from table\n",
+ "qh=h4-h3;\n",
+ "nth=wnet/qh;\n",
+ "print \"Cycle Efficiency =\",round(nth*100,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cycle Efficiency = 29.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.6:Pg-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#to determine the rate of refrigeration\n",
+ "\n",
+ "# refer to fig 11.21 in book\n",
+ "mdot=0.03 # mass flow rate in Kg/s\n",
+ "T1=-20 # temperature in evaporator in celsius\n",
+ "T3=40 #temperature in evaporator in Celsius\n",
+ "P2=1017 # saturation pressure in KPa\n",
+ "\n",
+ "# from table of R-134a refrigerant\n",
+ "h1=386.1 # enthalpy at state 1 in kJ/kg,\n",
+ "S1=1.7395 # entropy at state 1 in kJ/kg.K\n",
+ "S2=S1 # isentropic process\n",
+ "T2=47.7# corresponding value to S2 in table of R-134a in degree celsius\n",
+ "h2=428.4 # corresponding value to S2 in table of R-134a in kJ/kg\n",
+ "wc=h2-h1 # work done in compressor in kJ/kg\n",
+ "h4=h3=256.5 #enthalpy at state 4 and 3 in kJ/kg\n",
+ "qL=h1-h4 #Heat rejected in kJ/kg\n",
+ "\n",
+ "B=qL/wc # COP\n",
+ "\n",
+ "print\" the COP of the plant is\",round(B,2)\n",
+ "print\" the refrigeration rate is\",round(mdot*qL,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the COP of the plant is 3.06\n",
+ " the refrigeration rate is 3.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.7:Pg-454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#to determine the COP of cycle\n",
+ "\n",
+ "P1=125 # pressure at state 1 in kPa\n",
+ "P2=1.2 # pressure at state 2 in MPa\n",
+ "P3=1.19 # pressure at state 3 in MPa,\n",
+ "P4=1.16 # pressure at state 4 in MPa,\n",
+ "P5=1.15 # pressure at state 5 in MPa,\n",
+ "P6=P7=140 # pressure at state 6 and 7 in kPa,\n",
+ "P8=130 # pressure at state 8 in kPa,\n",
+ "T1=-10 #temperaure at state 1 in \u25e6C\n",
+ "T2=100 #temperaure at state 2 in \u25e6C\n",
+ "T3=80 #temperaure at state 3 in \u25e6C\n",
+ "T4=45 #temperaure at state 4 in \u25e6C\n",
+ "T5=40 #temperaure at state 5 in \u25e6C\n",
+ "T8=-20 #temperaure at state 8 in \u25e6C\n",
+ "q=-4 # heat transfer in kJ/Kg\n",
+ "\n",
+ "#x6=x7 quality condition given in question\n",
+ "\n",
+ "\n",
+ "# the following values are taken from table for refrigerant R-134a\n",
+ "h1=394.9 # enthalpy at state 1 in kJ/kg\n",
+ "h2=480.9 # enthalpy at state 2 in kJ/kg\n",
+ "h8=386.6 # enthalpy at state 8 in kJ/kg\n",
+ "wc=h2-h1-q # from first law\n",
+ "h5=h6=h7=256.4 # as x6=x7 and from table at state 5 in Kj/Kg\n",
+ "qL=h8-h7 # from first law \n",
+ "B=qL/wc # COP\n",
+ "print\" the COP of the plant is\",round(B,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the COP of the plant is 1.447\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter11_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter11_6.ipynb
new file mode 100755
index 00000000..814dd14b
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter11_6.ipynb
@@ -0,0 +1,529 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a88db765bb23172043955029f8f04edaf8e710f3cbd46a5474827f42fa8a65ec"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11:Power and Refrigeration Systems\u2014With Phase Change"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.1:Pg-425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 1\n",
+ "#To determine the efficiency of Rankine cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=2000;#Exit pressure in kPa\n",
+ "P1=10;#Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp=v*(P2-P1);#work done in pipe in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp;#enthalpy in kJ/kg\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for boiler\n",
+ "h3=2799.5;#Enthalpy in kJ/kg\n",
+ "#3-Inlet state for turbine\n",
+ "#4-Exit state for turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=6.3409;#kJ/kg\n",
+ "sf=0.6493;#Entropy at liquid state in kJ/kg\n",
+ "sfg=7.5009;#Entropy difference for vapor and liquid state in kJ/kg\n",
+ "x4=(s4-sf)/sfg;#x-factor\n",
+ "hfg=2392.8;#Enthalpy difference in kJ/kg for turbine\n",
+ "h4=h1+x4*hfg;#Enthalpy in kJ/kg\n",
+ "\n",
+ "nth=((h3-h2)-(h4-h1))/(h3-h2);\n",
+ "print\" Percentage efficiency =\",round(nth*100,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percentage efficiency = 30.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2:Pg-429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 2\n",
+ "#To determine the efficiency of Rankine cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=4000;#Exit pressure in kPa\n",
+ "P1=10;#Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp=v*(P2-P1);#work done in pipe in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp;#enthalpy in kJ/kg\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for boiler\n",
+ "h3=3213.6;#Enthalpy in kJ/kg from table\n",
+ "#3-Inlet state for turbine\n",
+ "#4-Exit state for turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=6.7690;#Entropy in kJ/kg from table\n",
+ "sf=0.6493;#Entropy at liquid state in kJ/kg from table\n",
+ "sfg=7.5009;#Entropy difference for vapor and liquid state in kJ/kg from table\n",
+ "x4=(s4-sf)/sfg;#x-factor\n",
+ "hfg=2392.8;#Enthalpy difference in kJ/kg for turbine\n",
+ "h4=h1+x4*hfg;#Enthalpy in kJ/kg\n",
+ "\n",
+ "nth=((h3-h2)-(h4-h1))/(h3-h2);\n",
+ "print\"Percentage efficiency =\",round(nth*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage efficiency = 35.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2E:Pg-431"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 2\n",
+ "#To determine the efficiency of Rankine cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=600.0 ;#Exit pressure in lbf/in^2\n",
+ "P1=1.0;#Inlet pressure in lbf/in^2\n",
+ "v=0.01614;#specific weight of water in ft^3/lbm\n",
+ "wp=v*(P2-P1)*(144.0/778.0);#work done in pipe in Btu/lbm\n",
+ "h1=69.70;#Enthalpy in Btu/lbm from table\n",
+ "h2=h1+wp;#enthalpy in Btu/lbm\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for boiler\n",
+ "h3=1407.6;#Enthalpy in Btu/lbm from table\n",
+ "#3-Inlet state for turbine\n",
+ "#4-Exit state for turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=1.6343;#Entropy in Btu/lbm from table\n",
+ "sf=1.9779;#Entropy at liquid state in Btu/lbm from table\n",
+ "sfg=1.8453;#Entropy difference for vapor and liquid state in Btu/lbm from table\n",
+ "x4=-(s4-sf)/sfg;#x-factor\n",
+ "hfg=1036.0;#Enthalpy difference in Btu/lbm for turbine\n",
+ "h4=1105.8-x4*hfg;#Enthalpy in Btu/lbm\n",
+ "wt=(h3-h4) #work done in turbine in Btu/lbm\n",
+ "\n",
+ "nth=((h3-h4)-wp)/(h3-h2);\n",
+ "print\"Percentage efficiency =\",round(nth*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage efficiency = 36.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.3:Pg-433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ques 3\n",
+ "#To determine the efficiency of a cycle\n",
+ "\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=4000;#Exit pressure in kPa\n",
+ "P1=10;#Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp=v*(P2-P1);#work done in pipe in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp;#enthalpy in kJ/kg\n",
+ "#2-Inlet state for boiler\n",
+ "#3-Exit state for Boiler\n",
+ "h3=3213.6;#Enthalpy in kJ/kg from table\n",
+ "#3-Inlet state for high pressure turbine\n",
+ "#4-Exit state for high pressure turbine\n",
+ "#s3=s4(Entropy remain same)\n",
+ "s4=6.7690;#Entropy in kJ/kg from table\n",
+ "sf=1.7766;#Entropy at liquid state in kJ/kg from table\n",
+ "sfg=5.1193;#Entropy difference for vapor and liquid state in kJ/kg from table\n",
+ "x4=(s4-sf)/sfg;#x-factor\n",
+ "hf=604.7#Enthalpy of liquid state in kJ/kg\n",
+ "hfg=2133.8;#Enthalpy difference in kJ/kg for turbine\n",
+ "h4=hf+x4*hfg;#Enthalpy in kJ/kg\n",
+ "#5-Inlet state for low pressure turbine\n",
+ "#6-Exit pressure for low pressure turbine\n",
+ "sf=0.6493;#Entropy in liquid state in kJ/kg for turbine\n",
+ "h5=3273.4;#enthalpy in kJ/kg \n",
+ "s5=7.8985;#Entropy in kJ/kg\n",
+ "sfg=7.5009;#entropy diff in kJ/kg \n",
+ "x6=(s5-sf)/sfg;#x-factor\n",
+ "hfg=2392.8;#enthalpy difference for low pressure turbine in kj/kg\n",
+ "h6=h1+x6*hfg;#entropy in kg/kg\n",
+ "wt=(h3-h4)+(h5-h6);#work output in kJ/kg\n",
+ "qh=(h3-h2)+(h5-h4);\n",
+ "\n",
+ "nth=(wt-wp)/qh;\n",
+ "print\" Percentage efficiency =\",round(nth*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percentage efficiency = 35.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.4:Pg-438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#Efficiency of Refrigeration cycle\n",
+ "\n",
+ "#from previous examples\n",
+ "h1=191.8;#kJ/kg\n",
+ "h5=3213.6;#kg/kg\n",
+ "h6=2685.7;#kJ/kg\n",
+ "h7=2144.1;#kJ/kg\n",
+ "h3=604.7;#kJ/kg\n",
+ "#1-Inlet state of pump\n",
+ "#2-Exit state of pump\n",
+ "P2=400;#Exit pressure in kPa\n",
+ "P1=10; #Inlet pressure in kPa\n",
+ "v=0.00101;#specific weight of water in m^3/kg\n",
+ "wp1=v*(P2-P1);#work done for low pressure pump in kJ/kg\n",
+ "h1=191.8;#Enthalpy in kJ/kg from table\n",
+ "h2=h1+wp1;#enthalpy in kJ/kg\n",
+ "#5-Inlet state for turbine\n",
+ "#6,7-Exit state for turbine\n",
+ "y=(h3-h2)/(h6-h2);#extraction fraction\n",
+ "wt=(h5-h6)+(1-y)*(h6-h7);#turbine work in kJ/kg\n",
+ "#3-Inlet for high pressure pump\n",
+ "#4-Exit for high pressure pump\n",
+ "P3=400;#kPa\n",
+ "P4=4000;#kPa\n",
+ "v=0.001084;#specific heat for 3-4 process in m^3/kg\n",
+ "wp2=v*(P4-P3);#work done for high pressure pump\n",
+ "h4=h3+wp2;#Enthalpy in kJ/kg\n",
+ "wnet=wt-(1-y)*wp1-wp2;\n",
+ "qh=h5-h4;#Heat output in kJ/kg\n",
+ "nth=wnet/qh;\n",
+ "print\" Refrigerator Efficiency =\",round(nth*100,1),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Refrigerator Efficiency = 37.5 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5:Pg-443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#To determine thermal efficiency of cycle\n",
+ "\n",
+ "#5-Inlet state for turbine\n",
+ "#6-Exit state for turbine\n",
+ "#h-Enthalpy at a state \n",
+ "#s-Entropy at a state\n",
+ "#from steam table\n",
+ "h5=3169.1;#kJ/kg\n",
+ "s5=6.7235;#kJ/kg\n",
+ "s6s=s5;\n",
+ "sf=0.6493;#Entropy for liquid state in kJ/kg\n",
+ "sfg=7.5009;#Entropy difference in kJ/kg\n",
+ "hf=191.8;#kJ/kg\n",
+ "hfg=2392.8;#Enthalpy difference in kJ/kg\n",
+ "x6s=(s6s-sf)/sfg;#x-factor\n",
+ "h6s=hf+x6s*hfg;#kJ/Kg at state 6s\n",
+ "nt=0.86;#turbine efficiency given\n",
+ "wt=nt*(h5-h6s);\n",
+ "#1-Inlet state for pump\n",
+ "#2-Exit state for pump\n",
+ "np=0.80;#pump efficiency given\n",
+ "v=0.001009;#specific heat in m^3/kg\n",
+ "P2=5000;#kPa\n",
+ "P1=10;#kPa\n",
+ "wp=v*(P2-P1)/np;#Work done in pump in kJ/kg\n",
+ "wnet=wt-wp;#net work in kJ/kg\n",
+ "#3-Inlet state for boiler\n",
+ "#4-Exit state for boiler\n",
+ "h3=171.8;#in kJ/kg from table\n",
+ "h4=3213.6;#kJ/kg from table\n",
+ "qh=h4-h3;\n",
+ "nth=wnet/qh;\n",
+ "print \"Cycle Efficiency =\",round(nth*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cycle Efficiency = 29.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5E:Pg-445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#To determine thermal efficiency of cycle\n",
+ "\n",
+ "#5-Inlet state for turbine\n",
+ "#6-Exit state for turbine\n",
+ "#h-Enthalpy at a state \n",
+ "#s-Entropy at a state\n",
+ "#from steam table\n",
+ "h5=1386.8;#Btu/lbm\n",
+ "s5=1.6248;#Btu/lbm\n",
+ "s6s=s5;\n",
+ "sf=1.9779;#Entropy for liquid state in Btu/lbm\n",
+ "sfg=1.8453;#Entropy difference in Btu/lbm\n",
+ "hf=1105.8;# Btu/lbm\n",
+ "hfg=1036.0;#Enthalpy difference in Btu/lbm\n",
+ "x6s=(s6s-sf)/sfg;#x-factor\n",
+ "h6s=hf+x6s*hfg;#Btu/lbm at state 6s\n",
+ "nt=0.86;#turbine efficiency given\n",
+ "wt=nt*(h5-h6s);\n",
+ "#1-Inlet state for pump\n",
+ "#2-Exit state for pump\n",
+ "np=0.80;#pump efficiency given\n",
+ "v=0.016;#specific heat in ft^3/lbm\n",
+ "P2=800.0;# lbf/in^2\n",
+ "P1=1.0;# lbf/in^2\n",
+ "wp=(v*(P2-P1)*144.0)/(np*778.0);#Work done in pump in Btu/lbm\n",
+ "wnet=wt-wp;#net work in Btu/lbm\n",
+ "#3-Inlet state for boiler\n",
+ "#4-Exit state for boiler\n",
+ "h3=65.1;#in Btu/lbm from table\n",
+ "h4=1407.6;# Btu/lbm from table\n",
+ "qh=h4-h3;\n",
+ "nth=wnet/qh;\n",
+ "print \"Cycle Efficiency =\",round(nth*100,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cycle Efficiency = 30.48 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.6:Pg-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#to determine the rate of refrigeration\n",
+ "\n",
+ "# refer to fig 11.21 in book\n",
+ "mdot=0.03 # mass flow rate in Kg/s\n",
+ "T1=-20 # temperature in evaporator in celsius\n",
+ "T3=40 #temperature in evaporator in Celsius\n",
+ "P2=1017 # saturation pressure in KPa\n",
+ "\n",
+ "# from table of R-134a refrigerant\n",
+ "h1=386.1 # enthalpy at state 1 in kJ/kg,\n",
+ "S1=1.7395 # entropy at state 1 in kJ/kg.K\n",
+ "S2=S1 # isentropic process\n",
+ "T2=47.7# corresponding value to S2 in table of R-134a in degree celsius\n",
+ "h2=428.4 # corresponding value to S2 in table of R-134a in kJ/kg\n",
+ "wc=h2-h1 # work done in compressor in kJ/kg\n",
+ "h4=h3=256.5 #enthalpy at state 4 and 3 in kJ/kg\n",
+ "qL=h1-h4 #Heat rejected in kJ/kg\n",
+ "\n",
+ "B=qL/wc # COP\n",
+ "\n",
+ "print\" the COP of the plant is\",round(B,2)\n",
+ "print\" the refrigeration rate is\",round(mdot*qL,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the COP of the plant is 3.06\n",
+ " the refrigeration rate is 3.89\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.7:Pg-454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#to determine the COP of cycle\n",
+ "\n",
+ "P1=125 # pressure at state 1 in kPa\n",
+ "P2=1.2 # pressure at state 2 in MPa\n",
+ "P3=1.19 # pressure at state 3 in MPa,\n",
+ "P4=1.16 # pressure at state 4 in MPa,\n",
+ "P5=1.15 # pressure at state 5 in MPa,\n",
+ "P6=P7=140 # pressure at state 6 and 7 in kPa,\n",
+ "P8=130 # pressure at state 8 in kPa,\n",
+ "T1=-10 #temperaure at state 1 in \u25e6C\n",
+ "T2=100 #temperaure at state 2 in \u25e6C\n",
+ "T3=80 #temperaure at state 3 in \u25e6C\n",
+ "T4=45 #temperaure at state 4 in \u25e6C\n",
+ "T5=40 #temperaure at state 5 in \u25e6C\n",
+ "T8=-20 #temperaure at state 8 in \u25e6C\n",
+ "q=-4 # heat transfer in kJ/Kg\n",
+ "\n",
+ "#x6=x7 quality condition given in question\n",
+ "\n",
+ "\n",
+ "# the following values are taken from table for refrigerant R-134a\n",
+ "h1=394.9 # enthalpy at state 1 in kJ/kg\n",
+ "h2=480.9 # enthalpy at state 2 in kJ/kg\n",
+ "h8=386.6 # enthalpy at state 8 in kJ/kg\n",
+ "wc=h2-h1-q # from first law\n",
+ "h5=h6=h7=256.4 # as x6=x7 and from table at state 5 in Kj/Kg\n",
+ "qL=h8-h7 # from first law \n",
+ "B=qL/wc # COP\n",
+ "print\" the COP of the plant is\",round(B,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the COP of the plant is 1.447\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter12.ipynb b/Fundamentals_Of_Thermodynamics/Chapter12.ipynb
new file mode 100755
index 00000000..75910c56
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter12.ipynb
@@ -0,0 +1,486 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e3e9cb7f43080b67fa2a22d273814843783e7598e3258877edb209ca16f99bdc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER13:Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.1:Pg-480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#Standard brayton cycle\n",
+ "\n",
+ "#1-Inlet for compressor\n",
+ "#2-Exit for compressor\n",
+ "#T-Temperature at a state\n",
+ "#P-Pressure at a state\n",
+ "T1=288.2;#K\n",
+ "P2=1000.0;#kPa\n",
+ "P1=100.0;#kPa\n",
+ "k=1.4;\n",
+ "T2=T1*(P2/P1)**(1.0-1/k);#K\n",
+ "Cp=1.004;#Specific heat at constant pressure in kJ/kg\n",
+ "wc=Cp*(T2-T1);#compressor work in kJ/kg;\n",
+ "print\" Temperature T2 =\",round(T2,2),\"K\"\n",
+ "print\" Compressor work =\",round(wc,1),\"kJ/kg\"\n",
+ "#3-Turbine Inlet\n",
+ "#4-Turbine Exit\n",
+ "P4=P1;\n",
+ "P3=P2;\n",
+ "T3=1373.2;#K\n",
+ "T4=T3*(P4/P3)**(1-1/k);#K\n",
+ "wt=Cp*(T3-T4);\n",
+ "wnet=wt-wc;\n",
+ "print\" Temperature T3 =\",round(T3,2),\" K\"\n",
+ "print\" Temperature T4 =\",round(T4),\"K\"\n",
+ "print\" Turbine work =\",round(wt,2),\"kJ/kg\"\n",
+ "print\" Net work =\",round(wt-wc,2),\"kJ/kg\"\n",
+ "#2-Also high temperature heat exchanger Inlet\n",
+ "#3-(-do-) Exit\n",
+ "qh=Cp*(T3-T2);#Heat of source in kJ/kg\n",
+ "#4-high temp heat exchanger inlet\n",
+ "#1-(-do-) Exit\n",
+ "ql=Cp*(T4-T1);#Heat of sink in kJ/kg\n",
+ "nth=wnet/qh;\n",
+ "print\" Thermal Efficiency of cycle =\",round(nth*100,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature T2 = 556.43 K\n",
+ " Compressor work = 269.3 kJ/kg\n",
+ " Temperature T3 = 1373.2 K\n",
+ " Temperature T4 = 711.0 K\n",
+ " Turbine work = 664.6 kJ/kg\n",
+ " Net work = 395.3 kJ/kg\n",
+ " Thermal Efficiency of cycle = 48.21 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.2:Pg-481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculation mistake in book\n",
+ "#ques2\n",
+ "#Standard brayton cycle\n",
+ "\n",
+ "#Calculation mistake in book\n",
+ "#1-Inlet for compressor\n",
+ "#2-Exit for compressor\n",
+ "#T-Temperature at a state\n",
+ "#P-Pressure at a state\n",
+ "T1=288.2;#K\n",
+ "P2=1000.0;#kPa\n",
+ "P1=100.0;#kPa\n",
+ "k=1.4;\n",
+ "T2s=T1*(P2/P1)**(1-1/k);#K\n",
+ "nc=.80;#Compressor Efficiency\n",
+ "T2=T1+(T2s-T1)/0.80;\n",
+ "Cp=1.004;#Specific heat at constant pressure in kJ/kg\n",
+ "wc=Cp*(T2-T1);#compressor work in kJ/kg\n",
+ "wc=round(wc)\n",
+ "print\" Temperature T2 =\",round(T2,2),\"K\"\n",
+ "print\" Compressor work =\",(wc),\"kJ/kg\"\n",
+ "#3-Turbine Inlet\n",
+ "#4-Turbine Exit\n",
+ "P4=P1;\n",
+ "P3=P2;\n",
+ "T3=1373.2;#K\n",
+ "T4s=T3*(P4/P3)**(1-1.0/k);#K\n",
+ "nt=0.85;#turbine Efficiency\n",
+ "T4=T3-(T3-T4s)*0.85;\n",
+ "wt=Cp*(T3-T4);\n",
+ "wnet=wt-wc;\n",
+ "print\" Temperature T3 =\",round(T3,1),\"K\"\n",
+ "print\" Temperature T4 =\",round(T4,1),\"K\"\n",
+ "print\" Turbine work =\",round(wt,2),\"kJ/kg\"\n",
+ "print\" Net work =\",round(wt-wc,2),\"kJ/kg\"\n",
+ "#2-Also high temperature heat exchanger Inlet\n",
+ "#3-(-do-) Exit\n",
+ "qh=Cp*(T3-T2);#Heat of source in kJ/kg\n",
+ "#4-high temp heat exchanger inlet\n",
+ "#1-(-do-) Exit\n",
+ "ql=Cp*(T4-T1);#Heat of sink in kJ/kg\n",
+ "nth=wnet/qh;\n",
+ "print\" Thermal Efficiency of cycle =\",round(nth*100),\"percent\"\n",
+ "#some answers are have acceptable difference beacause of approximization in book but here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature T2 = 623.48 K\n",
+ " Compressor work = 337.0 kJ/kg\n",
+ " Temperature T3 = 1373.2 K\n",
+ " Temperature T4 = 810.5 K\n",
+ " Turbine work = 564.91 kJ/kg\n",
+ " Net work = 227.91 kJ/kg\n",
+ " Thermal Efficiency of cycle = 30.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.3:Pg-486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#efficiency of the cycle\n",
+ "\n",
+ "wnet=395.2;#kJ/kg from example no 1\n",
+ "#Tx=T4\n",
+ "Tx=710.8;#K from example no 1\n",
+ "T3=1373.2;#K from example no 1\n",
+ "Cp=1.004;#specific heat in kJ/kg \n",
+ "qh=Cp*(T3-Tx);\n",
+ "nth=wnet/qh;\n",
+ "print\" Thermal efficiency =\",round(nth*100,1),\" percent\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Thermal efficiency = 59.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.4:Pg-486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#Calculation of work in the given cycle\n",
+ "import math\n",
+ "R=0.287;#gas constant \n",
+ "T1=288.2;#compressor temperature K\n",
+ "T2=1373.2;#K turbine temperature K\n",
+ "#Pe/Pi=c=10, Pi/Pe=1/c from example 12.1\n",
+ "c=10.0;\n",
+ "wc=-R*T1*math.log(c);\n",
+ "print\" Isothermal work in compressor =\",round(wc,1),\"kJ/kg\"\n",
+ "wt=-R*T2*math.log(1/c);\n",
+ "print\" Isothermal work in turbine =\",round(wt,1),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Isothermal work in compressor = -190.5 kJ/kg\n",
+ " Isothermal work in turbine = 907.5 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.5:Pg-491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#air standard cycle for jet repulsion\n",
+ "import math\n",
+ "#1-compressor inlet\n",
+ "#2-Compressor exit\n",
+ "#P-Pressure at given point\n",
+ "#T-Temperature at given point\n",
+ "P1=100;#kPa\n",
+ "P2=1000;#kPa\n",
+ "T1=288.2;#K\n",
+ "T2=556.8;#K\n",
+ "wc=269.5;#from ex 12.1 work done in compressor in kJ/kg\n",
+ "#2-Burner inlet\n",
+ "#3-Burner exit\n",
+ "P3=1000;#kPa\n",
+ "T3=1373.2;#K\n",
+ "#wc=wt\n",
+ "Cp=1.004;#specific enthalpy of heat at constant pressure in kJ/kg\n",
+ "k=1.4;\n",
+ "T4=T3-wc/Cp;\n",
+ "P4=P3*(T4/T3)**(1-1/k);\n",
+ "#from s4=s5 and h4=h5+v2/2 we get\n",
+ "T5=710.8#K, from second law\n",
+ "v=math.sqrt(2*Cp*1000*(T4-T5));#m/s\n",
+ "print\" Velocity of air leaving the nozel =\",round(v),\"m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Velocity of air leaving the nozel = 889.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.6:Pg-494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#air standard refrigeration cycle\n",
+ "\n",
+ "#1-compressor inlet\n",
+ "#2-compressor exit\n",
+ "P1=100;#kPa\n",
+ "P2=500;#kPa\n",
+ "k=1.4;\n",
+ "rp=P2/P1;\n",
+ "cop=(rp**(1-1/k)-1)**-1;\n",
+ "print\" Coefficient of performance =\",round(cop,2)\n",
+ "#3-Expander inlet\n",
+ "#4-Expander exit\n",
+ "P3=P2;\n",
+ "P4=P1;\n",
+ "T3=288.23;#K, given and fixed\n",
+ "T4=T3/(P3/P4)**(1-1/k);\n",
+ "T1=253.2;#K, given\n",
+ "Cp=1.004;#Specific heat at cons pressure in kJ/kg\n",
+ "ql=Cp*(T1-T4);#heat released in kJ/kg\n",
+ "P=1#power required in kW \n",
+ "ms=P/ql;#kg/s\n",
+ "print\" Rate at which the air enter the compressor =\",round(ms,3),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Coefficient of performance = 1.71\n",
+ " Rate at which the air enter the compressor = 0.014 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.7:Pg-498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#the otto cycle\n",
+ "\n",
+ "#1-compressor inlet\n",
+ "#2-compressor exit\n",
+ "P1=100.0;#kPa\n",
+ "T1=288.2;#K\n",
+ "R=0.287;#gas constant\n",
+ "v1=R*T1/P1;#specific volume at inlet in m^3/kg\n",
+ "rv=10.0;#compression ratio given\n",
+ "k=1.4;#constant\n",
+ "T2=T1*rv**(k-1);#K\n",
+ "print\" Temperature at compressor exit, T2 =\",round(T2,1),\"K\"\n",
+ "P2=P1*rv**k;#kPa\n",
+ "print\" Pressure at compressor exit, P2 =\",round(P2/1000,2),\"MPa\"\n",
+ "v2=v1/rv;#specific heat at exit in m^3/kg\n",
+ "#23-heat addition process\n",
+ "#q23=Cv*(T3-T2)=1800 kJ/kg given\n",
+ "q23=1800.0;#kJ/kg heat addition, given\n",
+ "Cv=0.717;#specific heat at constant volume in kJ/kg\n",
+ "T3=T2+q23/Cv;#K\n",
+ "print\" Initial Temperature during heat additon process, T3 =\",round(T3,2),\"K\"\n",
+ "P3=P2*(T3/T2);#kPa\n",
+ "print\" Initial pressure during heat addition process, P3 =\",round(P3/1000,3),\"MPa\"\n",
+ "r=10.0;#k=V4/V3=P3/P4\n",
+ "T4=T3*(1/r)**(k-1);\n",
+ "print\" Final temperature during heat addition process, T4 =\",round(T4,3),\"K\";\n",
+ "P4=P3/r**k;#kPa\n",
+ "print\" Final pressure during heat addition process, P4 =\",round(P4/1000,4),\"MPa\"\n",
+ "nth=1-1/r**(k-1);#thermal efficiency\n",
+ "print\" Thermal efficiency =\",round(nth*100,1),\" percent\"\n",
+ "q41=Cv*(T1-T4);#/heat for process 4-1 in kJ/kg\n",
+ "wnet=q23+q41;\n",
+ "mep=wnet/(v1-v2);#effective mean pressure n kPa\n",
+ "print\" Mean effective pressure =\",round(mep,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature at compressor exit, T2 = 723.9 K\n",
+ " Pressure at compressor exit, P2 = 2.51 MPa\n",
+ " Initial Temperature during heat additon process, T3 = 3234.39 K\n",
+ " Initial pressure during heat addition process, P3 = 11.223 MPa\n",
+ " Final temperature during heat addition process, T4 = 1287.632 K\n",
+ " Final pressure during heat addition process, P4 = 0.4468 MPa\n",
+ " Thermal efficiency = 60.2 percent\n",
+ " Mean effective pressure = 1455.37 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.8:Pg-501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques8\n",
+ "#the diesel cycle\n",
+ "\n",
+ "#1-compressor inlet\n",
+ "#2-compressor exit\n",
+ "P1=100;#kPa\n",
+ "T1=288.2;#K\n",
+ "R=0.287;#gas constant\n",
+ "v1=R*T1/P1;#specific volume at inlet in m^3/kg\n",
+ "rv=20;#compression ratio given\n",
+ "k=1.4;#constant\n",
+ "T2=T1*rv**(k-1);#K\n",
+ "print\" Temperature at compressor exit, T2 =\",round(T2,1),\"K\"\n",
+ "P2=P1*rv**k;#kPa\n",
+ "print\" Pressure at compressor exit, P2 =\",round(P2/1000,3),\" MPa\"\n",
+ "v2=v1/rv;#specific heat at exit in m^3/kg\n",
+ "#23-heat addition process\n",
+ "#q23=Cv*(T3-T2)=1800 kJ/kg given\n",
+ "q23=1800;#kJ/kg heat addition, given\n",
+ "Cv=.717;\n",
+ "Cp=1.004;#specific heat at constant pressure in kJ/kg\n",
+ "T3=T2+q23/Cp;#K\n",
+ "print\" Initial Temperature during heat addition process, T3 =\",round(T3,2),\"K\"\n",
+ "r=T3/T2;#T3/T2=V3/V2=r\n",
+ "v3=r*v2;\n",
+ "T4=T3/(v1/v3)**(k-1);\n",
+ "print\" Final temperature during heat addition process, T4 =\",round(T4),\"K\"\n",
+ "q41=Cv*(T1-T4);#/heat for process 4-1 in kJ/kg\n",
+ "wnet=q23+q41;\n",
+ "mep=wnet/(v1-v2);#effective mean pressure in kPa\n",
+ "qh=1800;#heat transfer in kJ/kg\n",
+ "nth=wnet/qh;#thermal efficiency\n",
+ "\n",
+ "print\" Thermal efficiency =\",round(nth*100,1),\"percent\"\n",
+ "print\" Mean effective pressure =\",round(mep,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature at compressor exit, T2 = 955.2 K\n",
+ " Pressure at compressor exit, P2 = 6.629 MPa\n",
+ " Initial Temperature during heat addition process, T3 = 2748.05 K\n",
+ " Final temperature during heat addition process, T4 = 1265.0 K\n",
+ " Thermal efficiency = 61.1 percent\n",
+ " Mean effective pressure = 1399.18 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter12_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter12_6.ipynb
new file mode 100755
index 00000000..e2686e4a
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter12_6.ipynb
@@ -0,0 +1,478 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:83a0af04c694ab4b0ad1a0fe252ffa0bd8e87abc642c64323f0c2a0d18dd9f5d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER13:Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.1:Pg-480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#Standard brayton cycle\n",
+ "\n",
+ "#1-Inlet for compressor\n",
+ "#2-Exit for compressor\n",
+ "#T-Temperature at a state\n",
+ "#P-Pressure at a state\n",
+ "T1=288.2;#K\n",
+ "P2=1000.0;#kPa\n",
+ "P1=100.0;#kPa\n",
+ "k=1.4;\n",
+ "T2=T1*(P2/P1)**(1.0-1/k);#K\n",
+ "Cp=1.004;#Specific heat at constant pressure in kJ/kg\n",
+ "wc=Cp*(T2-T1);#compressor work in kJ/kg;\n",
+ "print\" Temperature T2 =\",round(T2,2),\"K\"\n",
+ "print\" Compressor work =\",round(wc,1),\"kJ/kg\"\n",
+ "#3-Turbine Inlet\n",
+ "#4-Turbine Exit\n",
+ "P4=P1;\n",
+ "P3=P2;\n",
+ "T3=1373.2;#K\n",
+ "T4=T3*(P4/P3)**(1-1/k);#K\n",
+ "wt=Cp*(T3-T4);\n",
+ "wnet=wt-wc;\n",
+ "print\" Temperature T3 =\",round(T3,2),\" K\"\n",
+ "print\" Temperature T4 =\",round(T4),\"K\"\n",
+ "print\" Turbine work =\",round(wt,2),\"kJ/kg\"\n",
+ "print\" Net work =\",round(wt-wc,2),\"kJ/kg\"\n",
+ "#2-Also high temperature heat exchanger Inlet\n",
+ "#3-(-do-) Exit\n",
+ "qh=Cp*(T3-T2);#Heat of source in kJ/kg\n",
+ "#4-high temp heat exchanger inlet\n",
+ "#1-(-do-) Exit\n",
+ "ql=Cp*(T4-T1);#Heat of sink in kJ/kg\n",
+ "nth=wnet/qh;\n",
+ "print\" Thermal Efficiency of cycle =\",round(nth*100,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature T2 = 556.43 K\n",
+ " Compressor work = 269.3 kJ/kg\n",
+ " Temperature T3 = 1373.2 K\n",
+ " Temperature T4 = 711.0 K\n",
+ " Turbine work = 664.6 kJ/kg\n",
+ " Net work = 395.3 kJ/kg\n",
+ " Thermal Efficiency of cycle = 48.21 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.2:Pg-481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculation mistake in book\n",
+ "#ques2\n",
+ "#Standard brayton cycle\n",
+ "\n",
+ "#Calculation mistake in book\n",
+ "#1-Inlet for compressor\n",
+ "#2-Exit for compressor\n",
+ "#T-Temperature at a state\n",
+ "#P-Pressure at a state\n",
+ "T1=288.2;#K\n",
+ "P2=1000.0;#kPa\n",
+ "P1=100.0;#kPa\n",
+ "k=1.4;\n",
+ "T2s=T1*(P2/P1)**(1-1/k);#K\n",
+ "nc=.80;#Compressor Efficiency\n",
+ "T2=T1+(T2s-T1)/0.80;\n",
+ "Cp=1.004;#Specific heat at constant pressure in kJ/kg\n",
+ "wc=Cp*(T2-T1);#compressor work in kJ/kg\n",
+ "wc=round(wc)\n",
+ "print\" Temperature T2 =\",round(T2,2),\"K\"\n",
+ "print\" Compressor work =\",(wc),\"kJ/kg\"\n",
+ "#3-Turbine Inlet\n",
+ "#4-Turbine Exit\n",
+ "P4=P1;\n",
+ "P3=P2;\n",
+ "T3=1373.2;#K\n",
+ "T4s=T3*(P4/P3)**(1-1.0/k);#K\n",
+ "nt=0.85;#turbine Efficiency\n",
+ "T4=T3-(T3-T4s)*0.85;\n",
+ "wt=Cp*(T3-T4);\n",
+ "wnet=wt-wc;\n",
+ "print\" Temperature T3 =\",round(T3,1),\"K\"\n",
+ "print\" Temperature T4 =\",round(T4,1),\"K\"\n",
+ "print\" Turbine work =\",round(wt,2),\"kJ/kg\"\n",
+ "print\" Net work =\",round(wt-wc,2),\"kJ/kg\"\n",
+ "#2-Also high temperature heat exchanger Inlet\n",
+ "#3-(-do-) Exit\n",
+ "qh=Cp*(T3-T2);#Heat of source in kJ/kg\n",
+ "#4-high temp heat exchanger inlet\n",
+ "#1-(-do-) Exit\n",
+ "ql=Cp*(T4-T1);#Heat of sink in kJ/kg\n",
+ "nth=wnet/qh;\n",
+ "print\" Thermal Efficiency of cycle =\",round(nth*100),\"percent\"\n",
+ "#some answers are have acceptable difference beacause of approximization in book but here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature T2 = 623.48 K\n",
+ " Compressor work = 337.0 kJ/kg\n",
+ " Temperature T3 = 1373.2 K\n",
+ " Temperature T4 = 810.5 K\n",
+ " Turbine work = 564.91 kJ/kg\n",
+ " Net work = 227.91 kJ/kg\n",
+ " Thermal Efficiency of cycle = 30.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.3:Pg-486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#efficiency of the cycle\n",
+ "\n",
+ "wnet=395.2;#kJ/kg from example no 1\n",
+ "#Tx=T4\n",
+ "Tx=710.8;#K from example no 1\n",
+ "T3=1373.2;#K from example no 1\n",
+ "Cp=1.004;#specific heat in kJ/kg \n",
+ "qh=Cp*(T3-Tx);\n",
+ "nth=wnet/qh;\n",
+ "print\" Thermal efficiency =\",round(nth*100,1),\" percent\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Thermal efficiency = 59.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.4:Pg-486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#Calculation of work in the given cycle\n",
+ "import math\n",
+ "R=0.287;#gas constant \n",
+ "T1=288.2;#compressor temperature K\n",
+ "T2=1373.2;#K turbine temperature K\n",
+ "#Pe/Pi=c=10, Pi/Pe=1/c from example 12.1\n",
+ "c=10.0;\n",
+ "wc=-R*T1*math.log(c);\n",
+ "print\" Isothermal work in compressor =\",round(wc,1),\"kJ/kg\"\n",
+ "wt=-R*T2*math.log(1/c);\n",
+ "print\" Isothermal work in turbine =\",round(wt,1),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Isothermal work in compressor = -190.5 kJ/kg\n",
+ " Isothermal work in turbine = 907.5 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.5:Pg-491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#air standard cycle for jet repulsion\n",
+ "import math\n",
+ "#1-compressor inlet\n",
+ "#2-Compressor exit\n",
+ "#P-Pressure at given point\n",
+ "#T-Temperature at given point\n",
+ "P1=100;#kPa\n",
+ "P2=1000;#kPa\n",
+ "T1=288.2;#K\n",
+ "T2=556.8;#K\n",
+ "wc=269.5;#from ex 12.1 work done in compressor in kJ/kg\n",
+ "#2-Burner inlet\n",
+ "#3-Burner exit\n",
+ "P3=1000;#kPa\n",
+ "T3=1373.2;#K\n",
+ "#wc=wt\n",
+ "Cp=1.004;#specific enthalpy of heat at constant pressure in kJ/kg\n",
+ "k=1.4;\n",
+ "T4=T3-wc/Cp;\n",
+ "P4=P3*(T4/T3)**(1-1/k);\n",
+ "#from s4=s5 and h4=h5+v2/2 we get\n",
+ "T5=710.8#K, from second law\n",
+ "v=math.sqrt(2*Cp*1000*(T4-T5));#m/s\n",
+ "print\" Velocity of air leaving the nozel =\",round(v),\"m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Velocity of air leaving the nozel = 889.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.6:Pg-494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#air standard refrigeration cycle\n",
+ "\n",
+ "#1-compressor inlet\n",
+ "#2-compressor exit\n",
+ "P1=100;#kPa\n",
+ "P2=500;#kPa\n",
+ "k=1.4;\n",
+ "rp=P2/P1;\n",
+ "cop=(rp**(1-1/k)-1)**-1;\n",
+ "print\" Coefficient of performance =\",round(cop,2)\n",
+ "#3-Expander inlet\n",
+ "#4-Expander exit\n",
+ "P3=P2;\n",
+ "P4=P1;\n",
+ "T3=288.23;#K, given and fixed\n",
+ "T4=T3/(P3/P4)**(1-1/k);\n",
+ "T1=253.2;#K, given\n",
+ "Cp=1.004;#Specific heat at cons pressure in kJ/kg\n",
+ "ql=Cp*(T1-T4);#heat released in kJ/kg\n",
+ "P=1#power required in kW \n",
+ "ms=P/ql;#kg/s\n",
+ "print\" Rate at which the air enter the compressor =\",round(ms,3),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Coefficient of performance = 1.71\n",
+ " Rate at which the air enter the compressor = 0.014 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.7:Pg-498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#the otto cycle\n",
+ "\n",
+ "#1-compressor inlet\n",
+ "#2-compressor exit\n",
+ "P1=100.0;#kPa\n",
+ "T1=288.2;#K\n",
+ "R=0.287;#gas constant\n",
+ "v1=R*T1/P1;#specific volume at inlet in m^3/kg\n",
+ "rv=10.0;#compression ratio given\n",
+ "k=1.4;#constant\n",
+ "T2=T1*rv**(k-1);#K\n",
+ "print\" Temperature at compressor exit, T2 =\",round(T2,1),\"K\"\n",
+ "P2=P1*rv**k;#kPa\n",
+ "print\" Pressure at compressor exit, P2 =\",round(P2/1000,2),\"MPa\"\n",
+ "v2=v1/rv;#specific heat at exit in m^3/kg\n",
+ "#23-heat addition process\n",
+ "#q23=Cv*(T3-T2)=1800 kJ/kg given\n",
+ "q23=1800.0;#kJ/kg heat addition, given\n",
+ "Cv=0.717;#specific heat at constant volume in kJ/kg\n",
+ "T3=T2+q23/Cv;#K\n",
+ "print\" Initial Temperature during heat additon process, T3 =\",round(T3,2),\"K\"\n",
+ "P3=P2*(T3/T2);#kPa\n",
+ "print\" Initial pressure during heat addition process, P3 =\",round(P3/1000,3),\"MPa\"\n",
+ "r=10.0;#k=V4/V3=P3/P4\n",
+ "T4=T3*(1/r)**(k-1);\n",
+ "print\" Final temperature during heat addition process, T4 =\",round(T4,3),\"K\";\n",
+ "P4=P3/r**k;#kPa\n",
+ "print\" Final pressure during heat addition process, P4 =\",round(P4/1000,4),\"MPa\"\n",
+ "nth=1-1/r**(k-1);#thermal efficiency\n",
+ "print\" Thermal efficiency =\",round(nth*100,1),\" percent\"\n",
+ "q41=Cv*(T1-T4);#/heat for process 4-1 in kJ/kg\n",
+ "wnet=q23+q41;\n",
+ "mep=wnet/(v1-v2);#effective mean pressure n kPa\n",
+ "print\" Mean effective pressure =\",round(mep,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature at compressor exit, T2 = 723.9 K\n",
+ " Pressure at compressor exit, P2 = 2.51 MPa\n",
+ " Initial Temperature during heat additon process, T3 = 3234.39 K\n",
+ " Initial pressure during heat addition process, P3 = 11.223 MPa\n",
+ " Final temperature during heat addition process, T4 = 1287.632 K\n",
+ " Final pressure during heat addition process, P4 = 0.4468 MPa\n",
+ " Thermal efficiency = 60.2 percent\n",
+ " Mean effective pressure = 1455.37 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.8:Pg-501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques8\n",
+ "#the diesel cycle\n",
+ "\n",
+ "#1-compressor inlet\n",
+ "#2-compressor exit\n",
+ "P1=100;#kPa\n",
+ "T1=288.2;#K\n",
+ "R=0.287;#gas constant\n",
+ "v1=R*T1/P1;#specific volume at inlet in m^3/kg\n",
+ "rv=20;#compression ratio given\n",
+ "k=1.4;#constant\n",
+ "T2=T1*rv**(k-1);#K\n",
+ "print\" Temperature at compressor exit, T2 =\",round(T2,1),\"K\"\n",
+ "P2=P1*rv**k;#kPa\n",
+ "print\" Pressure at compressor exit, P2 =\",round(P2/1000,3),\" MPa\"\n",
+ "v2=v1/rv;#specific heat at exit in m^3/kg\n",
+ "#23-heat addition process\n",
+ "#q23=Cv*(T3-T2)=1800 kJ/kg given\n",
+ "q23=1800;#kJ/kg heat addition, given\n",
+ "Cv=.717;\n",
+ "Cp=1.004;#specific heat at constant pressure in kJ/kg\n",
+ "T3=T2+q23/Cp;#K\n",
+ "print\" Initial Temperature during heat addition process, T3 =\",round(T3,2),\"K\"\n",
+ "r=T3/T2;#T3/T2=V3/V2=r\n",
+ "v3=r*v2;\n",
+ "T4=T3/(v1/v3)**(k-1);\n",
+ "print\" Final temperature during heat addition process, T4 =\",round(T4),\"K\"\n",
+ "q41=Cv*(T1-T4);#/heat for process 4-1 in kJ/kg\n",
+ "wnet=q23+q41;\n",
+ "mep=wnet/(v1-v2);#effective mean pressure in kPa\n",
+ "qh=1800;#heat transfer in kJ/kg\n",
+ "nth=wnet/qh;#thermal efficiency\n",
+ "\n",
+ "print\" Thermal efficiency =\",round(nth*100,1),\"percent\"\n",
+ "print\" Mean effective pressure =\",round(mep,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature at compressor exit, T2 = 955.2 K\n",
+ " Pressure at compressor exit, P2 = 6.629 MPa\n",
+ " Initial Temperature during heat addition process, T3 = 2748.05 K\n",
+ " Final temperature during heat addition process, T4 = 1265.0 K\n",
+ " Thermal efficiency = 61.1 percent\n",
+ " Mean effective pressure = 1399.18 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter13.ipynb b/Fundamentals_Of_Thermodynamics/Chapter13.ipynb
new file mode 100755
index 00000000..95893bd9
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter13.ipynb
@@ -0,0 +1,262 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6cc89f09586fc1fc226ee69c300e69ecaeae3fbafe1ae419c1c6cbc4ae7dcf83"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER13:Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3:Pg-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#calculating humidity ratio, dew point,mass of air, mass of vapor\n",
+ "\n",
+ "r=0.70;#relative humidity\n",
+ "Pg=5.628;#saturation pressure in kPa\n",
+ "Pv=r*Pg;#vapour pressure in kPa\n",
+ "P=100;#net pressure kPa \n",
+ "Pa=P-Pv;#Partial pressure of air\n",
+ "w=0.622*Pv/Pa;#humidity ratio formula\n",
+ "V=100;#volume in m^3\n",
+ "Ra=0.287;#gas constant for water vapour\n",
+ "T=308.2;#Temperature in K\n",
+ "ma=Pa*V/(Ra*T);#mass in kg\n",
+ "mv=w*ma;#mass of vapour\n",
+ "print\" Mass of vapour is\",round(mv,3),\"Kg \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass of vapour is 2.77 Kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.4:Pg-534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4 \n",
+ "#calculating amount of water vapour condensed on cooling\n",
+ "\n",
+ "#from example 3\n",
+ "w1=0.0255;#w1=w, humidity ratio at initial temperature\n",
+ "ma=108.6;#mass of air in kg\n",
+ "P=100;#kPa net pressure\n",
+ "#at 5 C mixture is saturated so Pv2=Pg2\n",
+ "Pg2=0.8721;\n",
+ "Pv2=Pg2;\n",
+ "w2=0.622*Pv2/(P-Pg2);\n",
+ "mc=ma*(w1-w2);\n",
+ "print\"Mass of vapour condense is \",round(mc,3),\"kg \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of vapour condense is 2.175 kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.5:Pg-536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#calculating heat transfer per kilogram of dry air\n",
+ "\n",
+ "#1-inlet state\n",
+ "#2-Exit state\n",
+ "r1=0.80;#realtive humidity at state 1\n",
+ "Pg1=4.246;#saturation pressure of vapour in kPa\n",
+ "P1=105.0;#net pressure at state 1 in kPa\n",
+ "P2=100.0;#net pressure at state 2 in kPa\n",
+ "Pv1=r1*Pg1;#partial pressure of vapour in kPa\n",
+ "w1=0.622*Pv1/(P1-Pv1);#humidity ratio at state 1\n",
+ "r2=0.95;#relative humidity at state 2\n",
+ "Pg2=1.7051;#saturation pressure of vapour in kPa\n",
+ "Pv2=r2*Pg2;#partial pressure of vapour in kPa\n",
+ "w2=0.622*Pv2/(P2-Pv2);#humidity ratio at state 2\n",
+ "T1=30.0;#C\n",
+ "T2=15.0;#C\n",
+ "Cp=1.004;#specific heat of water vapour in kJ/kg\n",
+ "hv2=2528.9;#enthalpy of vapourisation of vapour in kJ/kg\n",
+ "hv1=2556.3;#enthalpy of vapourisation of vapour in kJ/kg\n",
+ "hl2=62.99;#enthalpy of \n",
+ "q=Cp*(T2-T1)+w2*hv2-w1*hv1+hl2*(w1-w2);#kJ/kg\n",
+ "print\" Heat transferred per unit mass =\",round(q,1),\"kJ/kg of dry air\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat transferred per unit mass = -41.7 kJ/kg of dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.6:Pg-537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#calculating heat transferred in gas vapour mixture\n",
+ "\n",
+ "#n-Nitrogen\n",
+ "#v-water vapour\n",
+ "Pn2=1995;#Pressure of nitrogen in kPa\n",
+ "V=0.5;#Volume in m^3\n",
+ "Rn2=0.2968;#Gas constant for nitrogen in kJ/kg.K\n",
+ "Rv=0.4615;#gas constant for vapour\n",
+ "T1=323.2;#Temperature in K\n",
+ "T2=283.2;#Temperature in K\n",
+ "Pv1=5;#Pressure of water vapour in kPa at state 1\n",
+ "Pv2=1.2276;#Pressure of water vapour in kPa at state 2\n",
+ "mn2=Pn2*V/(Rn2*T1);#mass of nitrogen\n",
+ "mv1=Pv1*V/(Rv*T1);#mass of vapour in kg\n",
+ "mv2=Pv2*V/(Rv*T2);#mass of vapour in kg\n",
+ "ml2=mv1-mv2;#mass of liquid condensed n kg\n",
+ "uv1=2443.1;#specific internal energy of vapour in kJ/kg at state 1\n",
+ "uv2=2389.2;#specific internal energy of vapour in kJ/kg at state 2\n",
+ "ul2=42.0;#specific internal energy of liquid water in kJ/kg\n",
+ "Cv=0.745;#specific heat at constant volume in kJ/kg.K\n",
+ "Q=mn2*Cv*(T2-T1)+mv2*uv2+ml2*ul2-mv1*uv1;\n",
+ "print\"Heat transferred =\",round(Q,2),\"kJ \"\n",
+ "\n",
+ "#the answer is different in book due to intermediate approximization "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred = -339.1 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.7:Pg-539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#calculating humidity ratio and relative humidity \n",
+ "\n",
+ "#1-Inlet state\n",
+ "#2-Exit state\n",
+ "P=100;#net pressure n kPa \n",
+ "#it is steady state adiabatic process\n",
+ "#water vapour leaving is saturated so Pv2=Pg2\n",
+ "Pg2=2.339;#saturation pressure of vapour in kPa\n",
+ "Pv2=Pg2;#partial pressure of vapour\n",
+ "w2=0.622*Pv2/(P-Pg2);\n",
+ "Cpa=1.004;#specific heat n kJ/kg/K\n",
+ "T2=20;# final temp in C\n",
+ "T1=30;# initial temp in C\n",
+ "Hfg2=2454.1;#specific heat difference at state 2 in kJ/kg\n",
+ "hv1=2556.3;#enthalpy of water vapour at state 1 in kJ/kg\n",
+ "hl2=83.96;#enthalpy of liquid water in kJ/kg\n",
+ "w1=(Cpa*(T2-T1)+w2*Hfg2)/(hv1-hl2);\n",
+ "print \" Relative humidity =\",round(w1,4)\n",
+ "#also w1=0.622*Pv1/(100-Pv2)\n",
+ "Pv1=100*w1/(0.622+w1);\n",
+ "Pg1=4.246;#saturation pressure at state 1 in kPa\n",
+ "r=Pv1/Pg1;#humidity ratio\n",
+ "print\" Humidity ratio =\",round(r,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Relative humidity = 0.0107\n",
+ " Humidity ratio = 0.3993\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter13_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter13_6.ipynb
new file mode 100755
index 00000000..5863fc4c
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter13_6.ipynb
@@ -0,0 +1,385 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:13df1b90ea06630bb54a561fa81d4ebbaaa2d68a225d0631603576a208acfb40"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER13:Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3:Pg-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#calculating humidity ratio, dew point,mass of air, mass of vapor\n",
+ "\n",
+ "r=0.70;#relative humidity\n",
+ "Pg=5.628;#saturation pressure in kPa\n",
+ "Pv=r*Pg;#vapour pressure in kPa\n",
+ "P=100;#net pressure kPa \n",
+ "Pa=P-Pv;#Partial pressure of air\n",
+ "w=0.622*Pv/Pa;#humidity ratio formula\n",
+ "V=100;#volume in m^3\n",
+ "Ra=0.287;#gas constant for water vapour\n",
+ "T=308.2;#Temperature in K\n",
+ "ma=Pa*V/(Ra*T);#mass in kg\n",
+ "mv=w*ma;#mass of vapour\n",
+ "print\" Mass of vapour is\",round(mv,3),\"Kg \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass of vapour is 2.77 Kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3E:Pg-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#calculating humidity ratio, dew point,mass of air, mass of vapor\n",
+ "\n",
+ "r=0.70;#relative humidity\n",
+ "Pg=0.6988 ;#saturation pressure in lbf/in^2\n",
+ "Pv=r*Pg;#vapour pressure in lbf/in^2\n",
+ "P=14.7;#net pressure in lbf/in^2\n",
+ "Pa=P-Pv;#Partial pressure of air\n",
+ "w=0.622*Pv/Pa;#humidity ratio formula\n",
+ "V=2000;#volume in ft^3\n",
+ "Ra=53.34;#gas constant for water vapour\n",
+ "T=70;#Temperature in F\n",
+ "ma=Pa*V*144/(Ra*(T+480));#mass in lbm\n",
+ "mv=w*ma;#mass of vapour\n",
+ "print\" Mass of vapour is\",round(mv,2),\"lbm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass of vapour is 2.99 lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.4:Pg-534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4 \n",
+ "#calculating amount of water vapour condensed on cooling\n",
+ "\n",
+ "#from example 3\n",
+ "w1=0.0255;#w1=w, humidity ratio at initial temperature\n",
+ "ma=108.6;#mass of air in kg\n",
+ "P=100;#kPa net pressure\n",
+ "#at 5 C mixture is saturated so Pv2=Pg2\n",
+ "Pg2=0.8721;\n",
+ "Pv2=Pg2;\n",
+ "w2=0.622*Pv2/(P-Pg2);\n",
+ "mc=ma*(w1-w2);\n",
+ "print\"Mass of vapour condense is \",round(mc,3),\"kg \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of vapour condense is 2.175 kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.4E:Pg-535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4 \n",
+ "#calculating amount of water vapour condensed on cooling\n",
+ "\n",
+ "#from example 3 \n",
+ "w1=0.02135;#w1=w, humidity ratio at initial temperature\n",
+ "ma=139.6;#mass of air in lbm\n",
+ "P=14.7;#net pressure in lbf/in^2\n",
+ "#at 40 degree F mixture is saturated so Pv2=Pg2\n",
+ "Pg2=0.1217 # lbf/in^2\n",
+ "Pv2=Pg2;\n",
+ "w2=0.622*Pv2/(P-Pg2);# humidity ratio at final temperature\n",
+ "mc=ma*(w1-w2); #Mass of vapour condense in lbm\n",
+ "print\"Mass of vapour condense is \",round(mc,3),\"lbm \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of vapour condense is 2.256 lbm \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.5:Pg-536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#calculating heat transfer per kilogram of dry air\n",
+ "\n",
+ "#1-inlet state\n",
+ "#2-Exit state\n",
+ "r1=0.80;#realtive humidity at state 1\n",
+ "Pg1=4.246;#saturation pressure of vapour in kPa\n",
+ "P1=105.0;#net pressure at state 1 in kPa\n",
+ "P2=100.0;#net pressure at state 2 in kPa\n",
+ "Pv1=r1*Pg1;#partial pressure of vapour in kPa\n",
+ "w1=0.622*Pv1/(P1-Pv1);#humidity ratio at state 1\n",
+ "r2=0.95;#relative humidity at state 2\n",
+ "Pg2=1.7051;#saturation pressure of vapour in kPa\n",
+ "Pv2=r2*Pg2;#partial pressure of vapour in kPa\n",
+ "w2=0.622*Pv2/(P2-Pv2);#humidity ratio at state 2\n",
+ "T1=30.0;#C\n",
+ "T2=15.0;#C\n",
+ "Cp=1.004;#specific heat of water vapour in kJ/kg\n",
+ "hv2=2528.9;#enthalpy of vapourisation of vapour in kJ/kg\n",
+ "hv1=2556.3;#enthalpy of vapourisation of vapour in kJ/kg\n",
+ "hl2=62.99;#enthalpy of \n",
+ "q=Cp*(T2-T1)+w2*hv2-w1*hv1+hl2*(w1-w2);#kJ/kg\n",
+ "print\" Heat transferred per unit mass =\",round(q,1),\"kJ/kg of dry air\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat transferred per unit mass = -41.7 kJ/kg of dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.6:Pg-537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#calculating heat transferred in gas vapour mixture\n",
+ "\n",
+ "#n-Nitrogen\n",
+ "#v-water vapour\n",
+ "Pn2=1995;#Pressure of nitrogen in kPa\n",
+ "V=0.5;#Volume in m^3\n",
+ "Rn2=0.2968;#Gas constant for nitrogen in kJ/kg.K\n",
+ "Rv=0.4615;#gas constant for vapour\n",
+ "T1=323.2;#Temperature in K\n",
+ "T2=283.2;#Temperature in K\n",
+ "Pv1=5;#Pressure of water vapour in kPa at state 1\n",
+ "Pv2=1.2276;#Pressure of water vapour in kPa at state 2\n",
+ "mn2=Pn2*V/(Rn2*T1);#mass of nitrogen\n",
+ "mv1=Pv1*V/(Rv*T1);#mass of vapour in kg\n",
+ "mv2=Pv2*V/(Rv*T2);#mass of vapour in kg\n",
+ "ml2=mv1-mv2;#mass of liquid condensed n kg\n",
+ "uv1=2443.1;#specific internal energy of vapour in kJ/kg at state 1\n",
+ "uv2=2389.2;#specific internal energy of vapour in kJ/kg at state 2\n",
+ "ul2=42.0;#specific internal energy of liquid water in kJ/kg\n",
+ "Cv=0.745;#specific heat at constant volume in kJ/kg.K\n",
+ "Q=mn2*Cv*(T2-T1)+mv2*uv2+ml2*ul2-mv1*uv1;\n",
+ "print\"Heat transferred =\",round(Q,2),\"kJ \"\n",
+ "\n",
+ "#the answer is different in book due to intermediate approximization "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred = -339.1 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.7:Pg-539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#calculating humidity ratio and relative humidity \n",
+ "\n",
+ "#1-Inlet state\n",
+ "#2-Exit state\n",
+ "P=100;#net pressure in kPa \n",
+ "#it is steady state adiabatic process\n",
+ "#water vapour leaving is saturated so Pv2=Pg2\n",
+ "Pg2=2.339;#saturation pressure of vapour in kPa\n",
+ "Pv2=Pg2;#partial pressure of vapour\n",
+ "w2=0.622*Pv2/(P-Pg2);\n",
+ "Cpa=1.004;#specific heat n kJ/kg/K\n",
+ "T2=20;# final temp in C\n",
+ "T1=30;# initial temp in C\n",
+ "Hfg2=2454.1;#specific heat difference at state 2 in kJ/kg\n",
+ "hv1=2556.3;#enthalpy of water vapour at state 1 in kJ/kg\n",
+ "hl2=83.96;#enthalpy of liquid water in kJ/kg\n",
+ "w1=(Cpa*(T2-T1)+w2*Hfg2)/(hv1-hl2);\n",
+ "print \" Relative humidity =\",round(w1,4)\n",
+ "#also w1=0.622*Pv1/(100-Pv2)\n",
+ "Pv1=100*w1/(0.622+w1);\n",
+ "Pg1=4.246;#saturation pressure at state 1 in kPa\n",
+ "r=Pv1/Pg1;#humidity ratio\n",
+ "print\" Humidity ratio =\",round(r,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Relative humidity = 0.0107\n",
+ " Humidity ratio = 0.3993\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.7E:Pg-540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#calculating humidity ratio and relative humidity \n",
+ "\n",
+ "#1-Inlet state\n",
+ "#2-Exit state\n",
+ "P=14.7;#net pressure in lbf/in^2\n",
+ "#it is steady state adiabatic process\n",
+ "#water vapour leaving is saturated so Pv2=Pg2\n",
+ "Pg2=0.3632;#saturation pressure of vapour in lbf/in^2\n",
+ "Pv2=Pg2;#partial pressure of vapour\n",
+ "w2=0.622*Pv2/(P-Pg2);\n",
+ "Cpa=0.24;#specific heat n Btu/lbm/F\n",
+ "T2=70;# final temp in F\n",
+ "T1=84;# initial temp in F\n",
+ "Hfg2=1054.0;#specific heat difference at state 2 in Btu/lbm\n",
+ "hv1=1098.1;#enthalpy of water vapour at state 1 in Btu/lbm\n",
+ "hl2=38.1;#enthalpy of liquid water in Btu/lbm\n",
+ "w1=(Cpa*(T2-T1)+w2*Hfg2)/(hv1-hl2);\n",
+ "print \" Relative humidity =\",round(w1,4)\n",
+ "#also w1=0.622*Pv1/(100-Pv2)\n",
+ "Pv1=14.7*w1/(0.622+w1);\n",
+ "Pg1=0.584;#saturation pressure at state 1 in lbf/in^2\n",
+ "r=Pv1/Pg1;#humidity ratio\n",
+ "print\" Humidity ratio =\",round(r,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Relative humidity = 0.0125\n",
+ " Humidity ratio = 0.4958\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter14.ipynb b/Fundamentals_Of_Thermodynamics/Chapter14.ipynb
new file mode 100755
index 00000000..6654362c
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter14.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b6f84d510db3595ba71244d9d44f7e9987d44c62ba0d0520a72da2384551019e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter14:THERMODYNAMIC RELATIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.1:Pg-567"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#to determine the sublimation pressure of water\n",
+ "import math\n",
+ "#from table in appendix B.1.5\n",
+ "T1=213.2;#K, Temperature at state 1\n",
+ "P2=0.0129;#kPa, pressure at state 2\n",
+ "T2=233.2;#K, Temperature at state 2\n",
+ "hig=2838.9;#kJ/kg, enthalpy of sublimation \n",
+ "R=.46152;#Gas constant \n",
+ "#using relation log(P2/P1)=(hig/R)*(1/T1-1/T2) \n",
+ "P1=P2*math.exp(-hig/R*(1/T1-1/T2));\n",
+ "print\" Sublimation Pressure \",round(P1,5),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Sublimation Pressure 0.00109 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.4:Pg-579"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#Volume expansivity, Isothermal and Adiabatic compressibility\n",
+ "\n",
+ "#known data\n",
+ "ap=5*10**-5;#K^-1 Volume expansivity\n",
+ "bt=8.6*10**-12;#m^2/N, Isothermal compressibility\n",
+ "v=0.000114;#m^3/kg, specific volume\n",
+ "P2=100*10**6;#pressure at state 2 in kPa\n",
+ "P1=100;#pressure at state 1 in kPa\n",
+ "w=-v*bt*(P2**2-P1**2)/2;#work done in J/kg\n",
+ "#q=T*ds and ds=-v*ap*(P2-P1)\n",
+ "#so q=-T*v*ap*(P2-P1)\n",
+ "T=288.2;#Temperature in K\n",
+ "q=-T*v*ap*(P2-P1);#heat in J/kg\n",
+ "du=q-w;#change in internal energy in J/kg\n",
+ "print\" Change in internal energy =\",round(du,3),\"J/kg\"\n",
+ "\n",
+ "#the answer is correct within given limts\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in internal energy = -159.372 J/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.5:Pg-586"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#adiabatic steady state processes\n",
+ "\n",
+ "#from table A.2\n",
+ "P1=20;#pressure at state 1 in MPa\n",
+ "P2=2;#pressure at state 2 in MPa\n",
+ "T1=203.2;#Temperature at state 1 in K\n",
+ "Pr1=P1/3.39;#Reduced pressure at state 1\n",
+ "Pr2=P2/3.39;#Reduced pressure at state 2\n",
+ "Tr1=T1/126.2;#Reduced temperature\n",
+ "#from compressibility chart h1*-h1=2.1*R*Tc\n",
+ "#from zero pressure specific heat data h1*-h2*=Cp*(T1a-T2a)\n",
+ "#h2*-h2=0.5*R*Tc\n",
+ "#this gives dh=h1-h2=-2.1*R*Tc+Cp*(T1a-T2a)+0.5*R*Tc\n",
+ "R=0.2968;#gas constant for given substance\n",
+ "Tc=126.2;#K, Constant temperature\n",
+ "Cp=1.0416;#heat enthalpy at constant pressure in kJ/kg\n",
+ "T2=146;#temperature at state 2\n",
+ "dh=-1.6*R*Tc+Cp*(T1-T2);#\n",
+ "print\" Enthalpy change =\",round(dh,3),\"kJ/kg \\n\"\n",
+ "print\" Since Enthalpy change is nearly \",-round(dh),\"kJ/kg so Temperature =\",round(T2,3),\"K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy change = -0.35 kJ/kg \n",
+ "\n",
+ " Since Enthalpy change is nearly 0.0 kJ/kg so Temperature = 146.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.6:Pg-589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#isothermal steady state processes\n",
+ "import math\n",
+ "#from table A.2\n",
+ "P1=8;#pressure at state 1 in MPa\n",
+ "P2=0.5;#pressure at state 2 in MPa\n",
+ "T1=150.0;#Temperature at state 1 in K\n",
+ "Pr1=P1/3.39;#Reduced pressure at state 1\n",
+ "Pr2=P2/3.39;#Reduced pressure at state 2\n",
+ "Tr1=T1/126.2;#Reduced temperature\n",
+ "T2=125.0;#temperature at state 2\n",
+ "#from compressibility chart h1*-h1=2.1*R*Tc\n",
+ "#from zero pressure specific heat data h1*-h2*=Cp*(T1a-T2a)\n",
+ "#h2*-h2=0.5*R*Tc\n",
+ "#this gives dh=h1-h2=-2.1*R*Tc+Cp*(T1a-T2a)+0.15*R*Tc\n",
+ "R=0.2968;#gas constant for given substance\n",
+ "Tc=126.2;#K, Constant temperature\n",
+ "Cp=1.0416;#heat enthalpy at constant pressure in kJ/kg\n",
+ "dh=(2.35)*R*Tc+Cp*(T2-T1);#\n",
+ "print\" Enthalpy change =\",round(dh),\"kJ/kg\"\n",
+ "#change in entropy \n",
+ "#ds= -(s2*-s2)+(s2*-s1*)+(s1*-s1)\n",
+ "#s1*-s1=1.6*R\n",
+ "#s2*-s2=0.1*R\n",
+ "#s2*-s1*=Cp*log(T2/T1)-R*log(P2/P1)\n",
+ "#so\n",
+ "ds=1.6*R-0.1*R+Cp*math.log(T2/T1)-R*math.log(P2/P1);\n",
+ "print\" Entropy Change =\",round(ds,3),\"kJ/kg.K \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy change = 62.0 kJ/kg\n",
+ " Entropy Change = 1.078 kJ/kg.K \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.7:Pg-596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#percent deviation using specific volume calculated by kays rule and vander waals rule\n",
+ "import math\n",
+ "\n",
+ "#a-denotes C02\n",
+ "#b-denotes CH4\n",
+ "T=310.94;#Temperature of mixture K\n",
+ "P=86.19;#Pressure of mixture in MPa\n",
+ "#Tc- critical Temperature\n",
+ "#Pc-critical pressure\n",
+ "Tca=304.1;#K\n",
+ "Tcb=190.4;#K\n",
+ "Pca=7.38;#MPa\n",
+ "Pcb=4.60;#MPa\n",
+ "Ra=0.1889;#gas constant for a in kJ/kg.K\n",
+ "Rb=0.5183;#gas constant for b in kJ/kg.K\n",
+ "xa=0.8;#fraction of CO2\n",
+ "xb=0.2;#fraction of CH4\n",
+ "Rm=xa*Ra+xb*Rb;#mean gas constant in kJ/kg.K\n",
+ "Ma=44.01;#molecular mass of a\n",
+ "Mb=16.043;#molecular mass of b\n",
+ "#1.Kay's rule\n",
+ "ya=xa/Ma/(xa/Ma+xb/Mb);#mole fraction of a\n",
+ "yb=xb/Mb/(xa/Ma+xb/Mb);#mole fraction of b\n",
+ "Tcm=ya*Tca+yb*Tcb;#mean critical temp in K\n",
+ "Pcm=ya*Pca+yb*Tcb;#mean critical pressure n MPa\n",
+ "#therefore pseudo reduced property of mixture\n",
+ "Trm=T/Tcm;\n",
+ "Prm=P/Pcm;\n",
+ "Zm=0.7;#Compressiblity from generalised compressibility chart\n",
+ "vc=Zm*Rm*T/P/1000;#specific volume calculated in m^3/kg\n",
+ "ve=0.0006757;#experimental specific volume in m^3/kg\n",
+ "pd1=(ve-vc)/ve*100;#percent deviation\n",
+ "print\" Percentage deviation in specific volume using Kays rule =\",round(pd1,1),\"percent \\n\"\n",
+ "\n",
+ "#2. using vander waals equation\n",
+ "#values of vander waals constant\n",
+ "Aa=27*(Ra**2)*(Tca**2)/(64*Pca*1000);\n",
+ "Ba=Ra*Tca/(8*Pca*1000);\n",
+ "Ab=27*(Rb**2)*(Tcb**2)/(64*Pcb*1000);\n",
+ "Bb=Rb*Tcb/(8*Pcb*1000);\n",
+ "#mean vander waals constant\n",
+ "Am=(xa*math.sqrt(Aa)+xb*math.sqrt(Ab))**2;\n",
+ "Bm=(xa*Ba+xb*Bb);\n",
+ "#using vander waals equation we get cubic equation \n",
+ "#solving we get\n",
+ "vc=0.0006326;#calculated specific volume in m^3/kg\n",
+ "pd2=((ve-vc)/ve)*100;\n",
+ "print\" Percentage deviation in specific volume using vander waals eqn =\",round(pd2,1),\"percent\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percentage deviation in specific volume using Kays rule = 4.8 percent \n",
+ "\n",
+ " Percentage deviation in specific volume using vander waals eqn = 6.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter14_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter14_6.ipynb
new file mode 100755
index 00000000..8c5a5922
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter14_6.ipynb
@@ -0,0 +1,325 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4d90868c7316d94fc2ffdc05c5691234f77f3a832d71da7eb2108eaff0a215bc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter14:THERMODYNAMIC RELATIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.1:Pg-567"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#to determine the sublimation pressure of water\n",
+ "import math\n",
+ "#from table in appendix B.1.5\n",
+ "T1=213.2;#K, Temperature at state 1\n",
+ "P2=0.0129;#kPa, pressure at state 2\n",
+ "T2=233.2;#K, Temperature at state 2\n",
+ "hig=2838.9;#kJ/kg, enthalpy of sublimation \n",
+ "R=.46152;#Gas constant \n",
+ "#using relation log(P2/P1)=(hig/R)*(1/T1-1/T2) \n",
+ "P1=P2*math.exp(-hig/R*(1/T1-1/T2));\n",
+ "print\" Sublimation Pressure \",round(P1,5),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Sublimation Pressure 0.00109 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.1E:Pg-567\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#to determine the sublimation pressure of water\n",
+ "import math\n",
+ "#from table in appendix B.1.5\n",
+ "T1=-70+460.7;# R, Temperature at state 1\n",
+ "P2=0.0019 # lbf/in^2 pressure at state 2\n",
+ "T2=-40+460.7;# R, Temperature at state 2\n",
+ "hig=1218.7;#Btu/lbm, enthalpy of sublimation \n",
+ "R=85.67;#Gas constant \n",
+ "#using relation log(P2/P1)=(hig/R)*(1/T1-1/T2) \n",
+ "P1=P2*math.exp(-hig*778/R*(1/T1-1/T2));\n",
+ "print\" Sublimation Pressure \",round(P1,5),\"lbf/in^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Sublimation Pressure 0.00025 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.4:Pg-579"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#Volume expansivity, Isothermal and Adiabatic compressibility\n",
+ "\n",
+ "#known data\n",
+ "ap=5*10**-5;#K^-1 Volume expansivity\n",
+ "bt=8.6*10**-12;#m^2/N, Isothermal compressibility\n",
+ "v=0.000114;#m^3/kg, specific volume\n",
+ "P2=100*10**6;#pressure at state 2 in kPa\n",
+ "P1=100;#pressure at state 1 in kPa\n",
+ "w=-v*bt*(P2**2-P1**2)/2;#work done in J/kg\n",
+ "#q=T*ds and ds=-v*ap*(P2-P1)\n",
+ "#so q=-T*v*ap*(P2-P1)\n",
+ "T=288.2;#Temperature in K\n",
+ "q=-T*v*ap*(P2-P1);#heat in J/kg\n",
+ "du=q-w;#change in internal energy in J/kg\n",
+ "print\" Change in internal energy =\",round(du,3),\"J/kg\"\n",
+ "\n",
+ "#the answer is correct within given limts\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in internal energy = -159.372 J/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.5:Pg-586"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#adiabatic steady state processes\n",
+ "\n",
+ "#from table A.2\n",
+ "P1=20;#pressure at state 1 in MPa\n",
+ "P2=2;#pressure at state 2 in MPa\n",
+ "T1=203.2;#Temperature at state 1 in K\n",
+ "Pr1=P1/3.39;#Reduced pressure at state 1\n",
+ "Pr2=P2/3.39;#Reduced pressure at state 2\n",
+ "Tr1=T1/126.2;#Reduced temperature\n",
+ "#from compressibility chart h1*-h1=2.1*R*Tc\n",
+ "#from zero pressure specific heat data h1*-h2*=Cp*(T1a-T2a)\n",
+ "#h2*-h2=0.5*R*Tc\n",
+ "#this gives dh=h1-h2=-2.1*R*Tc+Cp*(T1a-T2a)+0.5*R*Tc\n",
+ "R=0.2968;#gas constant for given substance\n",
+ "Tc=126.2;#K, Constant temperature\n",
+ "Cp=1.0416;#heat enthalpy at constant pressure in kJ/kg\n",
+ "T2=146;#temperature at state 2\n",
+ "dh=-1.6*R*Tc+Cp*(T1-T2);#\n",
+ "print\" Enthalpy change =\",round(dh,3),\"kJ/kg \\n\"\n",
+ "print\" Since Enthalpy change is nearly \",-round(dh),\"kJ/kg so Temperature =\",round(T2,3),\"K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy change = -0.35 kJ/kg \n",
+ "\n",
+ " Since Enthalpy change is nearly 0.0 kJ/kg so Temperature = 146.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.6:Pg-589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#isothermal steady state processes\n",
+ "import math\n",
+ "#from table A.2\n",
+ "P1=8;#pressure at state 1 in MPa\n",
+ "P2=0.5;#pressure at state 2 in MPa\n",
+ "T1=150.0;#Temperature at state 1 in K\n",
+ "Pr1=P1/3.39;#Reduced pressure at state 1\n",
+ "Pr2=P2/3.39;#Reduced pressure at state 2\n",
+ "Tr1=T1/126.2;#Reduced temperature\n",
+ "T2=125.0;#temperature at state 2\n",
+ "#from compressibility chart h1*-h1=2.1*R*Tc\n",
+ "#from zero pressure specific heat data h1*-h2*=Cp*(T1a-T2a)\n",
+ "#h2*-h2=0.5*R*Tc\n",
+ "#this gives dh=h1-h2=-2.1*R*Tc+Cp*(T1a-T2a)+0.15*R*Tc\n",
+ "R=0.2968;#gas constant for given substance\n",
+ "Tc=126.2;#K, Constant temperature\n",
+ "Cp=1.0416;#heat enthalpy at constant pressure in kJ/kg\n",
+ "dh=(2.35)*R*Tc+Cp*(T2-T1);#\n",
+ "print\" Enthalpy change =\",round(dh),\"kJ/kg\"\n",
+ "#change in entropy \n",
+ "#ds= -(s2*-s2)+(s2*-s1*)+(s1*-s1)\n",
+ "#s1*-s1=1.6*R\n",
+ "#s2*-s2=0.1*R\n",
+ "#s2*-s1*=Cp*log(T2/T1)-R*log(P2/P1)\n",
+ "#so\n",
+ "ds=1.6*R-0.1*R+Cp*math.log(T2/T1)-R*math.log(P2/P1);\n",
+ "print\" Entropy Change =\",round(ds,3),\"kJ/kg.K \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy change = 62.0 kJ/kg\n",
+ " Entropy Change = 1.078 kJ/kg.K \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.7:Pg-596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#percent deviation using specific volume calculated by kays rule and vander waals rule\n",
+ "import math\n",
+ "\n",
+ "#a-denotes C02\n",
+ "#b-denotes CH4\n",
+ "T=310.94;#Temperature of mixture K\n",
+ "P=86.19;#Pressure of mixture in MPa\n",
+ "#Tc- critical Temperature\n",
+ "#Pc-critical pressure\n",
+ "Tca=304.1;#K\n",
+ "Tcb=190.4;#K\n",
+ "Pca=7.38;#MPa\n",
+ "Pcb=4.60;#MPa\n",
+ "Ra=0.1889;#gas constant for a in kJ/kg.K\n",
+ "Rb=0.5183;#gas constant for b in kJ/kg.K\n",
+ "xa=0.8;#fraction of CO2\n",
+ "xb=0.2;#fraction of CH4\n",
+ "Rm=xa*Ra+xb*Rb;#mean gas constant in kJ/kg.K\n",
+ "Ma=44.01;#molecular mass of a\n",
+ "Mb=16.043;#molecular mass of b\n",
+ "#1.Kay's rule\n",
+ "ya=xa/Ma/(xa/Ma+xb/Mb);#mole fraction of a\n",
+ "yb=xb/Mb/(xa/Ma+xb/Mb);#mole fraction of b\n",
+ "Tcm=ya*Tca+yb*Tcb;#mean critical temp in K\n",
+ "Pcm=ya*Pca+yb*Tcb;#mean critical pressure n MPa\n",
+ "#therefore pseudo reduced property of mixture\n",
+ "Trm=T/Tcm;\n",
+ "Prm=P/Pcm;\n",
+ "Zm=0.7;#Compressiblity from generalised compressibility chart\n",
+ "vc=Zm*Rm*T/P/1000;#specific volume calculated in m^3/kg\n",
+ "ve=0.0006757;#experimental specific volume in m^3/kg\n",
+ "pd1=(ve-vc)/ve*100;#percent deviation\n",
+ "print\" Percentage deviation in specific volume using Kays rule =\",round(pd1,1),\"percent \\n\"\n",
+ "\n",
+ "#2. using vander waals equation\n",
+ "#values of vander waals constant\n",
+ "Aa=27*(Ra**2)*(Tca**2)/(64*Pca*1000);\n",
+ "Ba=Ra*Tca/(8*Pca*1000);\n",
+ "Ab=27*(Rb**2)*(Tcb**2)/(64*Pcb*1000);\n",
+ "Bb=Rb*Tcb/(8*Pcb*1000);\n",
+ "#mean vander waals constant\n",
+ "Am=(xa*math.sqrt(Aa)+xb*math.sqrt(Ab))**2;\n",
+ "Bm=(xa*Ba+xb*Bb);\n",
+ "#using vander waals equation we get cubic equation \n",
+ "#solving we get\n",
+ "vc=0.0006326;#calculated specific volume in m^3/kg\n",
+ "pd2=((ve-vc)/ve)*100;\n",
+ "print\" Percentage deviation in specific volume using vander waals eqn =\",round(pd2,1),\"percent\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Percentage deviation in specific volume using Kays rule = 4.8 percent \n",
+ "\n",
+ " Percentage deviation in specific volume using vander waals eqn = 6.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter15.ipynb b/Fundamentals_Of_Thermodynamics/Chapter15.ipynb
new file mode 100755
index 00000000..18f2c842
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter15.ipynb
@@ -0,0 +1,248 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:49d323999697626f705831867b32f6c520c5287d76ed00656f7259e6db65356e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15:CHEMICAL REACTIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.1:Pg-621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#theoratical air-fuel ratio for combustion of octane\n",
+ "#combustion equation is\n",
+ "#C8H18 + 12.5O2 + 12.5(3.76) N2 \u2192 8 CO2 + 9H2O + 47.0N2\n",
+ "rm=(12.5+47.0)/1;#air fuel ratio on mole basis\n",
+ "rma=rm*28.97/114.2;#air fuel ratio on mass basis;\n",
+ "print \"Theoratical air fuel ratio on mass basis is\",round(rma),\"kg air/kg fuel\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Theoratical air fuel ratio on mass basis is 15.0 kg air/kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.6:Pg-629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#determining heat transfer per kilomole of fuel entering combustion chamber\n",
+ "\n",
+ "#1-CH4\n",
+ "#2-CO2\n",
+ "#3-H2O\n",
+ "#hf-standard enthalpy of given substance\n",
+ "hf1=-74.873;#kJ\n",
+ "hf2=-393.522;#kJ\n",
+ "hf3=-285.830;#kJ\n",
+ "Qcv=hf2+2*hf3-hf1;#kJ\n",
+ "print \"Heat transfer per kilomole of fuel entering combustion chamber is\",round(Qcv,3),\"kJ\"\n",
+ "#the answers in the book is different as they have not printed the decimals in values"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer per kilomole of fuel entering combustion chamber is -890.309 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.7:Pg-631"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#calculating enthalpy of water at given pressure and temperature\n",
+ "\n",
+ "#1.Assuming steam to be an ideal gas with value of Cp\n",
+ "T1=298.15;#Initial temperature in K\n",
+ "T2=573.15;#final temperature in K\n",
+ "T=(T1+T2)/2;#average temperature in K\n",
+ "Cp=1.79+0.107*T/1000+0.586*(T/1000)**2-.20*(T/1000)**3;#specific heat at constant pressure in kj/kg.K\n",
+ "M=18.015;#mass in kg\n",
+ "dh=M*Cp*(T2-T1);#enthalpy change in kJ/kmol\n",
+ "ho=-241.826;#enthalpy at standard temperature and pressure in kJ/mol\n",
+ "htp1=ho+dh/1000;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 1. Enthalpy of water at given pressure and temperature using value of Cp =\",round(htp1,3),\"kJ/kmol\"\n",
+ "\n",
+ "#2..Assuming steam to be an ideal gas with value for dh\n",
+ "dh=9359;#enthalpy change from table A.9 in kJ/mol\n",
+ "htp2=ho+dh/1000;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 2. Enthalpy of water at given pressure and temperature assuming value od dh =\",round(htp2,3),\"kJ/kmol \"\n",
+ "\n",
+ "#3. Using steam table\n",
+ "dh=M*(2977.5-2547.2);#enthalpy change for gases in kJ/mol\n",
+ "htp3g=dh/1000+ho;\n",
+ "dh=M*(2977.5-104.9);#enthalpy change for liquid in kJ/mol\n",
+ "hl=-285.830;#standard enthalpy for liquid in kJ/kmol\n",
+ "htp31=hl+dh/1000.0;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 3.(i) enthalpy at given temp and pressure in kJ/kmol in terms of liquid =\",round(htp31,3),\"kJ/kmol \"\n",
+ "print \" 3.(ii) enthalpy at given temp and pressure in kJ/kmol in terms of liquid =\",round(htp3g,3),\"kJ/kmol \"\n",
+ "#4.using generalised charts\n",
+ "#htp=ho-(h2*-h2)+(h2*-h1*)+(h1*-h1);\n",
+ "#h2*-h2=Z*R*Tc,\n",
+ "#h2*-h1*=9539 kJ/mol, from part 2\n",
+ "#h1*-h1=0 ,as ideal gas \n",
+ "Z=0.21;#from chart\n",
+ "R=8.3145;#gas constant in SI units\n",
+ "Tc=647.3;#critical temperature in K\n",
+ "htp4=ho+9539/1000-Z*R*Tc/1000;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 4. enthalpy at given temp and pressure in kJ/kmol using compressibility chart = \",round(htp4,3),\"kJ/kmol\"\n",
+ "#the answers in book are different as they have not printed the decimals in values"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1. Enthalpy of water at given pressure and temperature using value of Cp = -232.258 kJ/kmol\n",
+ " 2. Enthalpy of water at given pressure and temperature assuming value od dh = -232.826 kJ/kmol \n",
+ " 3.(i) enthalpy at given temp and pressure in kJ/kmol in terms of liquid = -234.08 kJ/kmol \n",
+ " 3.(ii) enthalpy at given temp and pressure in kJ/kmol in terms of liquid = -234.074 kJ/kmol \n",
+ " 4. enthalpy at given temp and pressure in kJ/kmol using compressibility chart = -233.956 kJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.15:Pg-649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques15\n",
+ "#calculatng reversible elecromotive force \n",
+ "\n",
+ "#1-H2O\n",
+ "#2-H2\n",
+ "#3-O2\n",
+ "#hf-standard enthalpy \n",
+ "#sf-standard entropy\n",
+ "hf1=-285.830;#kJ\n",
+ "hf2=0;#kJ\n",
+ "hf3=0;#kJ\n",
+ "sf1=69.950;#kJ/K\n",
+ "sf2=130.678;#kJ/K\n",
+ "sf3=205.148;#kJ/K\n",
+ "dH=2*hf1-2*hf2-hf3;#change in enthalpy in kJ\n",
+ "dS=2*sf1-2*sf2-sf3;#change in entropy in kJ/K\n",
+ "T=298.15;#temperature in K\n",
+ "dG=dH-T*dS/1000;#change in gibbs free energy in kJ\n",
+ "E=-dG*1000/(96485*4);#emf in V\n",
+ "print\" Reversible electromotive Force =\",round(E,3),\" V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Reversible electromotive Force = 1.229 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.17:Pg-654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques17\n",
+ "#efficiency of generator and plant\n",
+ "\n",
+ "q=325000*(3398.3-856.0);#heat transferred to H2O/kg fuel in kJ/kg\n",
+ "qv=26700.0*33250;#higher heating value in kJ/kg\n",
+ "nst=q/qv*100;#efficiency of steam generator\n",
+ "w=81000.0*3600;#net work done in kJ/kg\n",
+ "nth=w/qv*100.0;#thermal efficiency\n",
+ "print\" Efficiency of generator =\",round(nst,1),\"percent\\n\"\n",
+ "print\" Thermal Efficiency =\",round(nth,1),\" percent\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Efficiency of generator = 93.1 percent\n",
+ "\n",
+ " Thermal Efficiency = 32.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter15_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter15_6.ipynb
new file mode 100755
index 00000000..1c9182a7
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter15_6.ipynb
@@ -0,0 +1,921 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4afaac3b11e3c61840a392c8cec12435d16ae2f3d2cdfe278957aaca509d72f5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15:CHEMICAL REACTIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.1:Pg-621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#theoratical air-fuel ratio for combustion of octane\n",
+ "#combustion equation is\n",
+ "#C8H18 + 12.5O2 + 12.5(3.76) N2 \u2192 8 CO2 + 9H2O + 47.0N2\n",
+ "rm=(12.5+47.0)/1;#air fuel ratio on mole basis\n",
+ "rma=rm*28.97/114.2;#air fuel ratio on mass basis;\n",
+ "print \"Theoratical air fuel ratio on mass basis is\",round(rma),\"kg air/kg fuel\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Theoratical air fuel ratio on mass basis is 15.0 kg air/kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.2:Pg-622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 2\n",
+ "# molal analysis of the products of combustion\n",
+ "# combustion equation is \n",
+ "# C8H18 + 12.5(2) O2 + 12.5(2)(3.76) N2 \u2192 8 CO2 + 9H2O + 12.5O2 + 94.0N2\n",
+ "nCO2=8 # number of moles of CO2 \n",
+ "nH2O=9 # number of moles of H2O\n",
+ "nO2=12.5 # number of moles of O2\n",
+ "nN2=94.0 # number of moles of N2\n",
+ "moles=nCO2+nH2O+nO2+nN2 # total moles\n",
+ "# molal analysis of products\n",
+ "xCO2=nCO2*100/moles \n",
+ "xH2O=nH2O*100/moles\n",
+ "xO2=nO2*100/moles\n",
+ "xN2=nN2*100/moles\n",
+ "print \" CO2 =\",round(xCO2,2)\n",
+ "print \"\\n H2O=\",round(xH2O,2)\n",
+ "print \"\\n O2=\",round(xO2,2)\n",
+ "print \"\\n N2=\",round(xN2,2)\n",
+ "print \"\\n The dew point temp. corresponding to partial pressure of water i.e \",round(xH2O,2),\"KPa is 39.7 degree C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CO2 = 6.48\n",
+ "\n",
+ " H2O= 7.29\n",
+ "\n",
+ " O2= 10.12\n",
+ "\n",
+ " N2= 76.11\n",
+ "\n",
+ " The dew point temp. corresponding to partial pressure of water i.e 7.29 KPa is 39.7 degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.2E:Pg-622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 2\n",
+ "# molal analysis of the products of combustion\n",
+ "# combustion equation is \n",
+ "# C8H18 + 12.5(2) O2 + 12.5(2)(3.76) N2 \u2192 8 CO2 + 9H2O + 12.5O2 + 94.0N2\n",
+ "pressure=14.7 # in lbf/in^2\n",
+ "nCO2=8 # number of moles of CO2 \n",
+ "nH2O=9 # number of moles of H2O\n",
+ "nO2=12.5 # number of moles of O2\n",
+ "nN2=94.0 # number of moles of N2\n",
+ "moles=nCO2+nH2O+nO2+nN2 # total moles\n",
+ "# molal analysis of products\n",
+ "xCO2=nCO2*100/moles \n",
+ "xH2O=nH2O*100/moles\n",
+ "xO2=nO2*100/moles\n",
+ "xN2=nN2*100/moles\n",
+ "print \" CO2 =\",round(xCO2,2)\n",
+ "print \"\\n H2O=\",round(xH2O,2)\n",
+ "print \"\\n O2=\",round(xO2,2)\n",
+ "print \"\\n N2=\",round(xN2,2)\n",
+ "PressureO2=pressure*xH2O/100 # partial pressure of O2\n",
+ "print \"\\n The dew point temp. corresponding to partial pressure of water i.e \",round(PressureO2,3),\"lbf/in^2 is 104 F degree C\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " CO2 = 6.48\n",
+ "\n",
+ " H2O= 7.29\n",
+ "\n",
+ " O2= 10.12\n",
+ "\n",
+ " N2= 76.11\n",
+ "\n",
+ " The dew point temp. corresponding to partial pressure of water i.e 1.071 lbf/in^2 is 104 F degree C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.3:Pg-623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 3\n",
+ "# to determine the air\u2013fuel ratio on a volumetric basis\n",
+ "# the combustion equation is\n",
+ "# 0.14H2+0.27CO+0.03CH4+0.006O2+0.509N2+0.045CO2+0.259O2+0.259(3.76)N2\u21920.20H2O+0.345CO2+1.482 N2\n",
+ "mH2=2 # molar mass of H2\n",
+ "mCO=28 # molar mass of CO\n",
+ "mCH4=16 # molar mass of CH4\n",
+ "mO2=32 # molar mass of O2\n",
+ "mN2=28 # molar mass of N2\n",
+ "mCO2=44 # molar mass of CO2\n",
+ "\n",
+ "\n",
+ "kmolair=0.259 # moles of air in mixture using combustion equation\n",
+ "kmolfuel=0.21 # moles of fuel in mixture using combustion equation\n",
+ "ratioth=kmolair/kmolfuel # theoratical ratio\n",
+ "\n",
+ "# For 20% excess air\n",
+ "vratio=ratioth*(1+0.2) # new ratio for excess air on volume basis\n",
+ "\n",
+ "print \" The A/F ratio on volumetric basis is \",round(vratio,2)\n",
+ "mratio=vratio*28.97 /(0.14*mH2+0.27*mCO+0.03*mCH4+0.006*mO2+0.509*mN2+0.045*mCO2)\n",
+ "print \"\\n The A/F ratio on mass basis is \",round(mratio,2),\"kg air/kg fuel\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The A/F ratio on volumetric basis is 1.48\n",
+ "\n",
+ " The A/F ratio on mass basis is 1.73 kg air/kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.4:Pg-624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 4\n",
+ "# determining the air\u2013fuel ratio and the percent theoretical air\n",
+ "CO2=10.00 # percentage\n",
+ "O2=2.37 # percentage\n",
+ "CO=0.53 # percentage\n",
+ "N2=87.10 # percentage\n",
+ "mCH4=16 # molecular mass of CH4\n",
+ "# using this data the combustion equation is\n",
+ "# a CH4 + b O2 + c N2 \u2192 10.0 CO2 + 0.53 CO + 2.37 O2 + d H2O + 87.1N2\n",
+ "# on balancing we get\n",
+ "# 10.53 CH4 + 23.16 O2 + 87.1N2 \u219210.0 CO2 + 0.53 CO + 2.37 O2 + 21.06 H2O + 87.1N2\n",
+ "# balanced combustion equation for per Kmole of fuel is:\n",
+ "# CH4 + 2.2O2 + 8.27 N2 \u2192 0.95 CO2 + 0.05 CO + 2H2O + 0.225 O2 + 8.27 N2\n",
+ "molesAir=2.2+8.27 # moles of air\n",
+ "AF= 28.97*molesAir/mCH4 # air fuel ratio on mass basis\n",
+ "print \"\\n The A/F ratio on mass basis is \",round(AF,2),\"kg air/kg fuel\"\n",
+ "# Theoritical combustion equation:\n",
+ "# CH4 + 2O2 + 2(3.76)N2 \u2192 CO2 + 2H2O + 7.52 N2\n",
+ "molesAirth=2+2*3.76 # moles of air(theoritical)\n",
+ "AFth= 28.97*molesAirth/mCH4 # air fuel ratio on mass basis (theoritical)\n",
+ "print \"\\n The A/F ratio (theoritical) on mass basis is \",round(AFth,2),\"kg air/kg fuel\"\n",
+ "print \"\\n The percent theoretical air is\",round(AF*100/AFth,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " The A/F ratio on mass basis is 18.96 kg air/kg fuel\n",
+ "\n",
+ " The A/F ratio (theoritical) on mass basis is 17.24 kg air/kg fuel\n",
+ "\n",
+ " The percent theoretical air is 110.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.5:Pg-625"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 5\n",
+ "\n",
+ "Sulfur=0.6 # percent by mass\n",
+ "Hydrogen=5.7 # percent by mass\n",
+ "Carbon=79.2 # percent by mass\n",
+ "Oxygen=10.0 # percent by mass\n",
+ "Nitrogen=1.5 # percent by mass\n",
+ "Ash=3.0 # percent by mass\n",
+ "mS=32.0 # molecular mass \n",
+ "mH2=2.0 # molecular mass\n",
+ "mC=12.0 # molecular mass\n",
+ "mO2=32.0 # molecular mass\n",
+ "mN2=28.0 # molecular mass\n",
+ "# molal composition per 100 Kg of fuel:\n",
+ "S=Sulfur/mS # molal composition \n",
+ "H=Hydrogen/mH2 # molal composition\n",
+ "C=Carbon/mC # molal composition\n",
+ "O2=Oxygen/mO2 # molal composition\n",
+ "N2=Nitrogen/mN2 # molal composition\n",
+ "\n",
+ "#The combustion equation becomes \n",
+ "# 0.02 S + 0.02 O2 \u21920.02 SO2\n",
+ "# 2.85 H2 + 1.42 O2 \u21922.85 H2O\n",
+ "# 6.60 C + 6.60 O2 \u21926.60 CO2\n",
+ "\n",
+ "O2req=0.02+1.42+6.60 # kmol O2 required/100 kg fuel\n",
+ "O2present=O2req-O2 # kmol O2 from air/100 kg fuel\n",
+ "AFtheo= (O2present+O2present*3.76)*28.97/100 # AF ration theoritical kg air/kg fuel\n",
+ "print \"\\n The A/F ratio (theoritical) on mass basis is \",round(AFtheo,2),\"kg air/kg fuel\"\n",
+ "print \"\\n The A/F ratio for 30% excess air on mass basis is \",round(AFtheo*1.3,2),\"kg air/kg fuel\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " The A/F ratio (theoritical) on mass basis is 10.66 kg air/kg fuel\n",
+ "\n",
+ " The A/F ratio for 30% excess air on mass basis is 13.85 kg air/kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.6:Pg-629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "# determining heat transfer per kilomole of fuel entering combustion chamber\n",
+ "\n",
+ "#1-CH4\n",
+ "#2-CO2\n",
+ "#3-H2O\n",
+ "#hf-standard enthalpy of given substance\n",
+ "hf1=-74.873;#kJ\n",
+ "hf2=-393.522;#kJ\n",
+ "hf3=-285.830;#kJ\n",
+ "Qcv=hf2+2*hf3-hf1;#kJ\n",
+ "print \"Heat transfer per kilomole of fuel entering combustion chamber is\",round(Qcv,3),\"kJ\"\n",
+ "#the answers in the book is different as they have not printed the decimals in values"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer per kilomole of fuel entering combustion chamber is -890.309 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.7:Pg-631"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#calculating enthalpy of water at given pressure and temperature\n",
+ "\n",
+ "#1.Assuming steam to be an ideal gas with value of Cp\n",
+ "T1=298.15;#Initial temperature in K\n",
+ "T2=573.15;#final temperature in K\n",
+ "T=(T1+T2)/2;#average temperature in K\n",
+ "Cp=1.79+0.107*T/1000+0.586*(T/1000)**2-.20*(T/1000)**3;#specific heat at constant pressure in kj/kg.K\n",
+ "M=18.015;#mass in kg\n",
+ "dh=M*Cp*(T2-T1);#enthalpy change in kJ/kmol\n",
+ "ho=-241.826;#enthalpy at standard temperature and pressure in kJ/mol\n",
+ "htp1=ho+dh/1000;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 1. Enthalpy of water at given pressure and temperature using value of Cp =\",round(htp1,3),\"kJ/kmol\"\n",
+ "\n",
+ "#2..Assuming steam to be an ideal gas with value for dh\n",
+ "dh=9359;#enthalpy change from table A.9 in kJ/mol\n",
+ "htp2=ho+dh/1000;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 2. Enthalpy of water at given pressure and temperature assuming value od dh =\",round(htp2,3),\"kJ/kmol \"\n",
+ "\n",
+ "#3. Using steam table\n",
+ "dh=M*(2977.5-2547.2);#enthalpy change for gases in kJ/mol\n",
+ "htp3g=dh/1000+ho;\n",
+ "dh=M*(2977.5-104.9);#enthalpy change for liquid in kJ/mol\n",
+ "hl=-285.830;#standard enthalpy for liquid in kJ/kmol\n",
+ "htp31=hl+dh/1000.0;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 3.(i) enthalpy at given temp and pressure in kJ/kmol in terms of liquid =\",round(htp31,3),\"kJ/kmol \"\n",
+ "print \" 3.(ii) enthalpy at given temp and pressure in kJ/kmol in terms of liquid =\",round(htp3g,3),\"kJ/kmol \"\n",
+ "#4.using generalised charts\n",
+ "#htp=ho-(h2*-h2)+(h2*-h1*)+(h1*-h1);\n",
+ "#h2*-h2=Z*R*Tc,\n",
+ "#h2*-h1*=9539 kJ/mol, from part 2\n",
+ "#h1*-h1=0 ,as ideal gas \n",
+ "Z=0.21;#from chart\n",
+ "R=8.3145;#gas constant in SI units\n",
+ "Tc=647.3;#critical temperature in K\n",
+ "htp4=ho+9539/1000-Z*R*Tc/1000;#enthalpy at given temp and pressure in kJ/kmol\n",
+ "print \" 4. enthalpy at given temp and pressure in kJ/kmol using compressibility chart = \",round(htp4,3),\"kJ/kmol\"\n",
+ "#the answers in book are different as they have not printed the decimals in values"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1. Enthalpy of water at given pressure and temperature using value of Cp = -232.258 kJ/kmol\n",
+ " 2. Enthalpy of water at given pressure and temperature assuming value od dh = -232.826 kJ/kmol \n",
+ " 3.(i) enthalpy at given temp and pressure in kJ/kmol in terms of liquid = -234.08 kJ/kmol \n",
+ " 3.(ii) enthalpy at given temp and pressure in kJ/kmol in terms of liquid = -234.074 kJ/kmol \n",
+ " 4. enthalpy at given temp and pressure in kJ/kmol using compressibility chart = -233.956 kJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.8:Pg-632"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 8\n",
+ "# Determine the heat transfer\n",
+ "airth=400 # % excess theoritical air\n",
+ "Ti=25 # Entry temp in degree celsius\n",
+ "To=900 # Exit temp in Kelvin\n",
+ "mf=0.25 # specific fuel consumption in kg/s of fuel per megawatt output\n",
+ "# The combustion equation is:\n",
+ "# C8H18(l) + 4(12.5)O2 + 4(12.5)(3.76)N2 \u2192 8CO2 + 9H2O + 37.5O2 + 188.0N2\n",
+ "hfC8H18=-250105 # is the enthalpy of fuel in kJ/kmol \n",
+ "nCO2=8 # moles\n",
+ "hfCO2=-393522 # enthalpy in kJ/kmol\n",
+ "DelhCO2=28030 # enthalpy in kJ/kmol\n",
+ "mC8H18=114.23 # molecular mass\n",
+ "nH2O=9 # moles\n",
+ "hfH2O=-241826 # enthalpy in kJ/kmol\n",
+ "DelhH2O=21937 # enthalpy in kJ/kmol\n",
+ "DelhO2=19241 # enthalpy in kJ/kmol\n",
+ "nO2=37.5 # moles\n",
+ "DelhN2=18225 # enthalpy in kJ/kmol\n",
+ "nN2=188.0 # moles\n",
+ "Eproduct=nCO2*(hfCO2+DelhCO2)+nH2O*(hfH2O+DelhH2O)+nO2*DelhO2+nN2*DelhN2\n",
+ "\n",
+ "Wcv=1000*mC8H18/mf # work in kJ/kmol fuel\n",
+ "print \" The work is \",Wcv,\"kJ/kmol fuel\"\n",
+ "\n",
+ "Qcv=Eproduct+Wcv-hfC8H18 # using first law\n",
+ "print \" The Heat transfer is \",Qcv,\"kJ/kmol fuel\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work is 456920.0 kJ/kmol fuel\n",
+ " The Heat transfer is -48074.5 kJ/kmol fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.8E:Pg-633"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 8\n",
+ "# Determine the heat transfer\n",
+ "airth=400 # % excess theoritical air\n",
+ "Ti=77 # Entry temp in F\n",
+ "To=1100 # Exit temp in F\n",
+ "mf=1 # specific fuel consumption in lb of fuel per horsepower-hour\n",
+ "# The combustion equation is:\n",
+ "# C8H18(l) + 4(12.5)O2 + 4(12.5)(3.76)N2 \u2192 8CO2 + 9H2O + 37.5O2 + 188.0N2\n",
+ "hfC8H18=-107526 # is the enthalpy of fuel in Btu/lb.mol\n",
+ "nCO2=8 # moles\n",
+ "hfCO2=-169184 # enthalpy in Btu/lb.mol\n",
+ "DelhCO2=11391 # enthalpy in Btu/lb.mol\n",
+ "mC8H18=114.23 # molecular mass\n",
+ "nH2O=9 # moles\n",
+ "hfH2O=-103966 # enthalpy in Btu/lb.mol\n",
+ "DelhH2O=8867 # enthalpy in Btu/lb.mol\n",
+ "DelhO2=7784 # enthalpy in Btu/lb.mol\n",
+ "nO2=37.5 # moles\n",
+ "DelhN2=7374 # enthalpy in Btu/lb.mol\n",
+ "nN2=188.0 # moles\n",
+ "Eproduct=nCO2*(hfCO2+DelhCO2)+nH2O*(hfH2O+DelhH2O)+nO2*DelhO2+nN2*DelhN2\n",
+ "\n",
+ "Wcv=2544*mC8H18 # work in kJ/kmol fuel\n",
+ "print \" The work is \",Wcv,\"Btu/lb.mol fuel\"\n",
+ "\n",
+ "Qcv=Eproduct+Wcv-hfC8H18 # using first law\n",
+ "print \" The Heat transfer is \",Qcv,\"Btu/lb.mol fuel\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work is 290601.12 Btu/lb.mol fuel\n",
+ " The Heat transfer is -41895.88 Btu/lb.mol fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.9:Pg-634"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques 9\n",
+ "\n",
+ "# The combustion equation is\n",
+ "# C2H4 + 3O2 \u2192 2 CO2 + 2H2O(g)\n",
+ "hfC2H4=52467 # enthalpy in KJ/mol\n",
+ "R=8.314 # gas constant\n",
+ "T=298.2 # temperature in Kelvin\n",
+ "hfCO2=-393522 # enthalpy in kJ/kmol\n",
+ "DelhCO2=12906 # enthalpy in kJ/kmol\n",
+ "hfH2O=-241826 # enthalpy in kJ/kmol\n",
+ "DelhH2O=10499 # enthalpy in kJ/kmol\n",
+ "Ureactant=hfC2H4-4*R*T # energy of reactant in KJ\n",
+ "Uproduct=2*(hfCO2+DelhCO2)+2*(hfH2O+DelhH2O) # energy of product in KJ\n",
+ "Q=Uproduct-Ureactant # using first law\n",
+ "print \"The Heat transfer is \",Q,\"kJ\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Heat transfer is -1266436.0608 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.10:Pg-638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques 10\n",
+ "\n",
+ "# The combustion equation is\n",
+ "# C3H8 + 5O2 \u2192 3 CO2 + 4H2O\n",
+ "hfC3H8g=-103900 # enthalpy of C3H8 in KJ/mol from Table A.10\n",
+ "hfC3H8l=hfC3H8g-44.097*370 # enthalpy of C3H8 liquid as enthalpy of evaporation is given in question\n",
+ "hfH2Ol=285830 # enthalpy of water in KJ/mol\n",
+ "hfH2Og=241826 # enthalpy in KJ/mol\n",
+ "hfCO2=393522 # enthalpy in KJ/mol\n",
+ "nO2=5 # moles\n",
+ "nCO2=3 # moles\n",
+ "nH2O=4 # moles\n",
+ "nC3H8=1 # moles\n",
+ "# part(1) : liquid propane-liquid water\n",
+ "hrP=(nCO2*hfCO2 + nH2O*hfH2Ol -nC3H8*hfC3H8l)/44.097 # higher heating value of liquid propane \n",
+ "print \"The higher heating value of liquid propane is\",round(hrP,2),\"KJ/kg\"\n",
+ "\n",
+ "# part(2) : Liquid propane\u2013gaseous water\n",
+ "\n",
+ "hrP=(nCO2*hfCO2 + nH2O*hfH2Og -nC3H8*hfC3H8l)/44.097 # lower heating value of liquid propane \n",
+ "print \"The lower heating value of liquid propane is\",round(hrP,2),\"KJ/kg\"\n",
+ "\n",
+ "# part(3) :Gaseous propane\u2013liquid water\n",
+ "hrP=(nCO2*hfCO2 + nH2O*hfH2Ol -nC3H8*hfC3H8g)/44.097 # higher heating value of gaseous propane \n",
+ "print \"The higher heating value of gaseous propane is\",round(hrP,2),\"KJ/kg\"\n",
+ "\n",
+ "# part(4) :Gaseous propane\u2013Gaseous water\n",
+ "hrP=(nCO2*hfCO2 + nH2O*hfH2Og -nC3H8*hfC3H8g)/44.097 # lower heating value of gaseous propane \n",
+ "print \"The lower heating value of gaseous propane is\",round(hrP,2),\"KJ/kg\"\n",
+ "\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The higher heating value of liquid propane is -120215.89 KJ/kg\n",
+ "The lower heating value of liquid propane is 51434.02 KJ/kg\n",
+ "The higher heating value of gaseous propane is 55055.58 KJ/kg\n",
+ "The lower heating value of gaseous propane is 51064.02 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.11:Pg-638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques 10\n",
+ "# The combustion equation is\n",
+ "# C3H8(g) + 5O2 \u2192 3 CO2 + 4H2O(g)\n",
+ "hfC3H8=-103900 # enthalpy of C3H8 in KJ/mol from Table A.10\n",
+ "Cp=2.1 # in KJ/Kg.K\n",
+ "T1=500 # temp in Kelvin\n",
+ "T2=298.2 # temp in Kelvin\n",
+ "DelhO2=6086 # enthalpy of O2 in KJ/mol\n",
+ "hfCO2=-393522 # enthalpy in KJ/mol\n",
+ "DelhCO2=8305 # enthalpy of CO2 in KJ/mol\n",
+ "hfH2O=-241826 # enthalpy of H2O in KJ/mol\n",
+ "DelhH2O=6922 # enthalpy in KJ/mol\n",
+ "nO2=5 # moles\n",
+ "nCO2=3 # moles\n",
+ "nH2O=4 # moles\n",
+ "nC3H8=1 # moles\n",
+ "\n",
+ "hR500= hfC3H8+Cp*44.097*(T1-T2)+nO2*DelhO2 # in KJ/mol\n",
+ "hP500= nCO2*(hfCO2+DelhCO2)+ nH2O*(DelhH2O+hfH2O) # in KJ/mol\n",
+ "hRP500=hP500-hR500 # in KJ/mol\n",
+ "Hrp500=hRP500/44.097 # KJ/Kg\n",
+ "\n",
+ "print \" The enthalpy of combustion of gaseous propane at 500 K \",round(Hrp500)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy of combustion of gaseous propane at 500 K -46273.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.12:Pg-639"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 12\n",
+ "# The question is solved by Trial and Error and using the table , no need for Calculation Thus not solved in Python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.13:Pg-645"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 13\n",
+ "# The equation for this chemical reaction is\n",
+ "# C2H4(g) + 3(4) O2 + 3(4)(3.76) N2 \u2192 2 CO2+2H2O(g) + 9O2 + 45.1 N2\n",
+ "T=25+273.15 # temp in degree kelvin\n",
+ "P=0.1 # pressure in Mpa\n",
+ "hfCO2=-393522 # enthalpy in KJ/mol\n",
+ "hfH2O=-241826 # enthalpy of H2O in KJ/mol\n",
+ "HfC2H4=52467 # enthalpy of C2H4 in KJ/mol\n",
+ "hfO2=0 # enthalpy of formation in KJ/mol\n",
+ "SCO2=213.795 # kJ/kmol fuel\n",
+ "SH2O=188.243 # kJ/kmol fuel\n",
+ "SC2H4=219.330 # kJ/kmol fuel\n",
+ "SO2=205.148 # kJ/kmol fuel\n",
+ "DelH=2*hfCO2+2*hfH2O-HfC2H4-3*hfO2 # in KJ/mol\n",
+ "DelS=2*SCO2+2*SH2O-SC2H4-3*SO2 # kJ/kmol fuel\n",
+ "DelG=DelH-T*(DelS) # Gibbs Energy\n",
+ "Wrev=-DelG/28.054 # reversible work in kJ/kg\n",
+ "print \"The reversible work is \",round(Wrev,2),\"kJ/kg \"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reversible work is 46838.61 kJ/kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.14:Pg-647"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques \n",
+ "# The question is solved by Trial and Error and using the table , no need for Calculation Thus not solved in Python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.15:Pg-649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques15\n",
+ "#calculatng reversible elecromotive force \n",
+ "\n",
+ "#1-H2O\n",
+ "#2-H2\n",
+ "#3-O2\n",
+ "#hf-standard enthalpy \n",
+ "#sf-standard entropy\n",
+ "hf1=-285.830;#kJ\n",
+ "hf2=0;#kJ\n",
+ "hf3=0;#kJ\n",
+ "sf1=69.950;#kJ/K\n",
+ "sf2=130.678;#kJ/K\n",
+ "sf3=205.148;#kJ/K\n",
+ "dH=2*hf1-2*hf2-hf3;#change in enthalpy in kJ\n",
+ "dS=2*sf1-2*sf2-sf3;#change in entropy in kJ/K\n",
+ "T=298.15;#temperature in K\n",
+ "dG=dH-T*dS/1000;#change in gibbs free energy in kJ\n",
+ "E=-dG*1000/(96485*4);#emf in V\n",
+ "print\" Reversible electromotive Force =\",round(E,3),\" V\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Reversible electromotive Force = 1.229 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.16:Pg-654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 16\n",
+ "# to Calculate the combustion efficiency\n",
+ "Tair = 400 # temp in K\n",
+ "Vair = 100 # velocity in m/s\n",
+ "Tfuel = 50 # temp of fuel in \u25e6C\n",
+ "Tproducts = 1100 # temp of product in K\n",
+ "Vproducts = 150 # velocity of product in m/s\n",
+ "FAactual = 0.0211 # air fuel ratio kg fuel/kg air\n",
+ "\n",
+ "# HR + KER= \u2212243737 + 14892nO2 \n",
+ "# HP + KEP= \u22125 068 599 + 120 853nO2 \n",
+ "# using these two equations :\n",
+ "no2=(-5068599.0 + 243737.0)/(14892.0-120853) # in kmol O2/kmol fuel\n",
+ "FAideal=114.23/(4.76*no2*28.91) # in kg fuel/kg air\n",
+ "\n",
+ "efficomb=FAideal*100/FAactual # Efficiency\n",
+ "\n",
+ "print \" The combustion efficiency is \",round(efficomb,2),\"%\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The combustion efficiency is 86.4 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15.17:Pg-654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques17\n",
+ "#efficiency of generator and plant\n",
+ "\n",
+ "q=325000*(3398.3-856.0);#heat transferred to H2O/kg fuel in kJ/kg\n",
+ "qv=26700.0*33250;#higher heating value in kJ/kg\n",
+ "nst=q/qv*100;#efficiency of steam generator\n",
+ "w=81000.0*3600;#net work done in kJ/kg\n",
+ "nth=w/qv*100.0;#thermal efficiency\n",
+ "print\" Efficiency of generator =\",round(nst,1),\"percent\\n\"\n",
+ "print\" Thermal Efficiency =\",round(nth,1),\" percent\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation while here the answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Efficiency of generator = 93.1 percent\n",
+ "\n",
+ " Thermal Efficiency = 32.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter16.ipynb b/Fundamentals_Of_Thermodynamics/Chapter16.ipynb
new file mode 100755
index 00000000..6a07737d
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter16.ipynb
@@ -0,0 +1,128 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7c7e50fa2880e870c4aa1630bafd7d049a3cb3c4e646a0d88068a55be4a3d00f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16:INTRODUCTION TO PHASE AND CHEMICAL EQUILIBRIUM"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.2:PG-681"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques2\n",
+ "#to determine change in gibbs free energy\n",
+ "\n",
+ "#1-H2\n",
+ "#2-O2\n",
+ "#3-H2O\n",
+ "\n",
+ "#at T=298 K\n",
+ "T1=298.0;#K\n",
+ "Hf1=0;#Enthalpy of formation of H2 at 298 K\n",
+ "Hf2=0;#Enthalpy of formation of O2 at 298 K\n",
+ "Hf3=-241826;#enthalpy of formation of H2O at 298 K in kJ\n",
+ "dH=2*Hf1+Hf2-2*Hf3;#Change in enthalpy in kJ\n",
+ "Sf1=130.678;#Entropy of H2 at 298 K n kJ/K\n",
+ "Sf2=205.148;#Entropy of O2 at 298 K in kJ/K\n",
+ "Sf3=188.834;#entropy of H2O at 298 K in kJ/K\n",
+ "dS=2*Sf1+Sf2-2*Sf3;#Change in entropy in kJ/K\n",
+ "dG1=dH-T1*dS;#change n gibbs free energy in kJ\n",
+ "print\" Change in gibbs free energy at\",T1,\"kelvin is\",round(dG1),\"kJ \"\n",
+ "#at T=2000 K\n",
+ "T2=2000.0;#K\n",
+ "Hf1=52942-0;#Enthalpy of formation of H2 at 2000 K\n",
+ "Hf2=59176-0;#Enthalpy of formation of O2 at 2000 K\n",
+ "Hf3=-241826+72788;#enthalpy of formation of H2O at 2000 K in kJ\n",
+ "dH=2*Hf1+Hf2-2*Hf3;#Change in enthalpy in kJ\n",
+ "Sf1=188.419;#Entropy of H2 at 2000 K n kJ/K\n",
+ "Sf2=268.748;#Entropy of O2 at 2000 K in kJ/K\n",
+ "Sf3=264.769;#entropy of H2O at 2000 K in kJ/K\n",
+ "dS=2*Sf1+Sf2-2*Sf3;#Change in entropy in kJ/K\n",
+ "dG2=dH-(T2*dS);#change n gibbs free energy in kJ\n",
+ "print\" Change in gibbs free energy at\",T2,\"kelvin is\",round(dG2),\" kJ \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in gibbs free energy at 298.0 kelvin is 457179.0 kJ \n",
+ " Change in gibbs free energy at 2000.0 kelvin is 271040.0 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.3:PG-683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#calculating equilibrium constant \n",
+ "\n",
+ "dG1=-457.166;#change in gibbs free energy at temp 298 K from example2 in kJ\n",
+ "dG2=-271.040;#change in gibbs free energy at temp 2000 K from example2 n kJ\n",
+ "T1=298;#K\n",
+ "T2=2000;#K\n",
+ "R=8.3145;#gas constant\n",
+ "K1=dG1*1000/(R*T1);\n",
+ "K2=dG2*1000/(R*T2);\n",
+ "print\" Equilibrium constant at \",T1,\"K = \",round(K1,2)\n",
+ "print\" Equilibrium constant at \",T2,\"K = \",round(K2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Equilibrium constant at 298 K = -184.51\n",
+ " Equilibrium constant at 2000 K = -16.299\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter16_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter16_6.ipynb
new file mode 100755
index 00000000..c155fdc6
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter16_6.ipynb
@@ -0,0 +1,377 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2573953a96bd6739252db580058edb8938919cec53d4f1d76f9484cfa4f2a1d5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16:INTRODUCTION TO PHASE AND CHEMICAL EQUILIBRIUM"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.1:676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "# pressure required to make diamonds from graphite\n",
+ "import math\n",
+ "T=25 # temp in degree C\n",
+ "ggrp= 0 # g for fraphite\n",
+ "gdiamnd=2867.8 # g for diamond in kJ/mol\n",
+ "vgrp=0.000444 # specific volume of graphite in m^3/kg\n",
+ "vdiamnd=0.000284 # specific volume of graphite in m^3/kg\n",
+ "BetaTgrp=0.304e-6 # beta for graphite in 1/MPa\n",
+ "BetaTdiamnd=0.016e-6 # beta for diamond in 1/MPa\n",
+ "\n",
+ "P=-(-2*(vgrp-vdiamnd)+math.sqrt((2*vgrp-2*vdiamnd)**2-4*(vgrp*BetaTgrp-vdiamnd*BetaTdiamnd)*(2*gdiamnd/(12.011*1000))))/(2*(vgrp*BetaTgrp-vdiamnd*BetaTdiamnd))\n",
+ "print int(P),\" MPa is the pressure at which possibility exists for conversion from graphite to diamonds\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1493 MPa is the pressure at which possibility exists for conversion from graphite to diamonds\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.2:PG-681"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques2\n",
+ "#to determine change in gibbs free energy\n",
+ "\n",
+ "#1-H2\n",
+ "#2-O2\n",
+ "#3-H2O\n",
+ "\n",
+ "#at T=298 K\n",
+ "T1=298.0;#K\n",
+ "Hf1=0;#Enthalpy of formation of H2 at 298 K\n",
+ "Hf2=0;#Enthalpy of formation of O2 at 298 K\n",
+ "Hf3=-241826;#enthalpy of formation of H2O at 298 K in kJ\n",
+ "dH=2*Hf1+Hf2-2*Hf3;#Change in enthalpy in kJ\n",
+ "Sf1=130.678;#Entropy of H2 at 298 K n kJ/K\n",
+ "Sf2=205.148;#Entropy of O2 at 298 K in kJ/K\n",
+ "Sf3=188.834;#entropy of H2O at 298 K in kJ/K\n",
+ "dS=2*Sf1+Sf2-2*Sf3;#Change in entropy in kJ/K\n",
+ "dG1=dH-T1*dS;#change n gibbs free energy in kJ\n",
+ "print\" Change in gibbs free energy at\",T1,\"kelvin is\",round(dG1),\"kJ \"\n",
+ "#at T=2000 K\n",
+ "T2=2000.0;#K\n",
+ "Hf1=52942-0;#Enthalpy of formation of H2 at 2000 K\n",
+ "Hf2=59176-0;#Enthalpy of formation of O2 at 2000 K\n",
+ "Hf3=-241826+72788;#enthalpy of formation of H2O at 2000 K in kJ\n",
+ "dH=2*Hf1+Hf2-2*Hf3;#Change in enthalpy in kJ\n",
+ "Sf1=188.419;#Entropy of H2 at 2000 K n kJ/K\n",
+ "Sf2=268.748;#Entropy of O2 at 2000 K in kJ/K\n",
+ "Sf3=264.769;#entropy of H2O at 2000 K in kJ/K\n",
+ "dS=2*Sf1+Sf2-2*Sf3;#Change in entropy in kJ/K\n",
+ "dG2=dH-(T2*dS);#change n gibbs free energy in kJ\n",
+ "print\" Change in gibbs free energy at\",T2,\"kelvin is\",round(dG2),\" kJ \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in gibbs free energy at 298.0 kelvin is 457179.0 kJ \n",
+ " Change in gibbs free energy at 2000.0 kelvin is 271040.0 kJ \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.3:PG-683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#calculating equilibrium constant \n",
+ "\n",
+ "dG1=-457.166;#change in gibbs free energy at temp 298 K from example2 in kJ\n",
+ "dG2=-271.040;#change in gibbs free energy at temp 2000 K from example2 n kJ\n",
+ "T1=298;#K\n",
+ "T2=2000;#K\n",
+ "R=8.3145;#gas constant\n",
+ "K1=dG1*1000/(R*T1);\n",
+ "K2=dG2*1000/(R*T2);\n",
+ "print\" Equilibrium constant at \",T1,\"K = \",round(K1,2)\n",
+ "print\" Equilibrium constant at \",T2,\"K = \",round(K2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Equilibrium constant at 298 K = -184.51\n",
+ " Equilibrium constant at 2000 K = -16.299\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.4:Pg-684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# The example is about proving that Equlibrium constant can be found using table hence doesn't require solution in python "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.5:Pg-685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 5\n",
+ "# To determine Heat Transfer\n",
+ "# The process is two step as:\n",
+ "# Combustion: C + O2--->CO2\n",
+ "# Dissociation reaction: 2CO2---->2CO + O2\n",
+ "# overall process : C + O2 \u2192 0.5622 CO2 + 0.4378 CO + 0.2189 O2\n",
+ "nCO2=0.5622 # moles of CO2\n",
+ "nCO=0.4378 # moles of CO\n",
+ "nO2=0.2189 # moles of NO2\n",
+ "\n",
+ "# from Table A.9:\n",
+ "hfCO2=0 # enthalpy of formation\n",
+ "hfC=0 # enthalpy of formation\n",
+ "hfCO=0 # enthalpy of formation\n",
+ "hfO2=0 # enthalpy of formation\n",
+ "hfCO23000=-393522 # enthalpy @ 3000K\n",
+ "hfCO3000=-110527 # enthalpy @ 3000K\n",
+ "hfO23000=0 # enthalpy @ 3000K\n",
+ "hfCO2298=-152853 # enthalpy @ 298K\n",
+ "hfCO298=-93504 # enthalpy @ 298K\n",
+ "hfO2298=-98013 # enthalpy @ 298K\n",
+ "\n",
+ "Hr=hfC+hfO2 # enthalpy of reactants\n",
+ "Hp=nCO2*(hfCO2+hfCO23000-hfCO2298)+nCO*(hfCO+hfCO3000-hfCO298)+nO2*(hfO2+hfO23000-hfO2298)\n",
+ "\n",
+ "Qcv=Hp-Hr # using first law\n",
+ "print round(Qcv),\"kJ/kmol C is the heat transfer \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-121302.0 kJ/kmol C is the heat transfer \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.6:Pg-687"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 6\n",
+ "# to determine the composition\n",
+ "# the standard equation is C + 2O2 \u2192 CO2 + O2\n",
+ "# from equilibrium C + 2O2 \u2192 (1 \u2212 2z)CO2 + 2zCO + (1 + z)O2\n",
+ "T=3000 # temp in K\n",
+ "P=0.1 # prssure in MPa\n",
+ "z = 0.1553 # from equilibrium equation using table\n",
+ "yCO2=(1-2*z)/(2+z) # mole fraction of CO2\n",
+ "yCO = 2*z/(2+z) # mole fraction of CO\n",
+ "yO2=(1+z)/(2+z) # mole fraction of O2\n",
+ "print \"The mole fraction is \",round(yCO2,3),\" for CO2 \\n\"\n",
+ "print \"The mole fraction is \",round(yCO,3),\" for CO \\n\"\n",
+ "print \"The mole fraction is \",round(yO2,3),\" for O2 \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mole fraction is 0.32 for CO2 \n",
+ "\n",
+ "The mole fraction is 0.144 for CO \n",
+ "\n",
+ "The mole fraction is 0.536 for O2 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.7:Pg-691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 7\n",
+ "# to determine the equilibrium composition\n",
+ "# The reaction equation is:\n",
+ "# (1): 2.H2O -->2H2 + O2\n",
+ "# (2): 2 H2O -->H2 + 2OH\n",
+ "# the equilibrium equation is \n",
+ "# H2O \u2192 (1 \u2212 2a \u2212 2b)H2O + (2a + b)H2 + aO2 + 2bOH\n",
+ "P= 0.1 # pressure in MPa\n",
+ "T=3000 # temp in Kelvin\n",
+ "a=0.0534 # using value of K from Table A.11 @ 3000k\n",
+ "b=0.0551 # using value of K from Table A.11 @ 3000k\n",
+ "nH2O= (1-2*a-b) # moles of H2O\n",
+ "nH2=2*a+b# moles of H2\n",
+ "nO2=a# moles of O2\n",
+ "nOH= 2*b# moles of OH\n",
+ "X=nH2O+nH2+nO2+nOH\n",
+ "yH2O=nH2O/X # mole fraction\n",
+ "yH2=nH2/X # mole fraction\n",
+ "yO2=nO2/X # mole fraction\n",
+ "yOH=nOH/X # mole fraction\n",
+ "print \"The mole fraction of H2O is\",round(yH2O,2),\"\\n\"\n",
+ "print \"The mole fraction of H2 is\",round(yH2,2),\"\\n\"\n",
+ "print \"The mole fraction of O2 is\",round(yO2,2),\"\\n\"\n",
+ "print \"The mole fraction of OH is\",round(yOH,2),\"\\n\"\n",
+ "# the answers are slightly different due to approximation in textbook while here the answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mole fraction of H2O is 0.72 \n",
+ "\n",
+ "The mole fraction of H2 is 0.139 \n",
+ "\n",
+ "The mole fraction of O2 is 0.046 \n",
+ "\n",
+ "The mole fraction of OH is 0.095 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16.8:pg-696"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ques 8\n",
+ "# determine the the equilibrium composition\n",
+ "P= 1 # pressure in Kpa\n",
+ "T=10000 # temp in Kelvin\n",
+ "z=0.2008 # using k from table \n",
+ "# the chemical equation is Ar -->Ar^(+) + e\u2212\n",
+ "\n",
+ "yAr=(1-z)/(1 + z) # mole fraction of Ar\n",
+ "yArpositive= z/(1+z) # mole fraction of Ar(+)\n",
+ "yenegative=z/(1+z) # mole fraction of ye-\n",
+ "print \"The mole fraction of Ar is\",round(yAr,3),\"\\n\"\n",
+ "print \"The mole fraction of Ar+ is\",round(yArpositive,3),\"\\n\"\n",
+ "print \"The mole fraction of e- is\",round(yenegative,3),\"\\n\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mole fraction of Ar is 0.666 \n",
+ "\n",
+ "The mole fraction of Ar+ is 0.167 \n",
+ "\n",
+ "The mole fraction of e- is 0.167 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter17.ipynb b/Fundamentals_Of_Thermodynamics/Chapter17.ipynb
new file mode 100755
index 00000000..4ae8005b
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter17.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:70b7f86a423a7c9685f997491946441e1c53cfe8fe328afd6e5b37a44e4dce11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: COMPRESSIBLE FLOW"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.1:PG-710"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#to determine isentropic stagnation pressure and temperature \n",
+ "\n",
+ "T=300;#Temperature of air in K\n",
+ "P=150;#Pressure of air in kPa\n",
+ "v=200;#velocity of air flow n m/s\n",
+ "Cp=1.004;#specific heat at constant pressure in kJ/kg\n",
+ "To=v**2/(2000*Cp)+T;#stagnation temperature in K\n",
+ "k=1.4;#constant\n",
+ "Po=P*(To/T)**(k/(k-1));#stagnation pressure in kPa\n",
+ "print 'Stagnation Temperature is ',round(To,1),' K \\n'\n",
+ "print 'Stagnation Pressure is ',round(Po,2),'kPa \\n'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stagnation Temperature is 319.9 K \n",
+ "\n",
+ "Stagnation Pressure is 187.85 kPa \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.2:PG-713"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques2\n",
+ "#to determine the force\n",
+ "\n",
+ "#initializing variables\n",
+ "mdot=-1 # mass flow rate out of control volume in kg/s\n",
+ "Vx=-1 # x component of velocity of control volume in m/s\n",
+ "Vy=10 # y component of velocity of control volume in m/s\n",
+ "\n",
+ "Fx=mdot*Vx # Force in X direction\n",
+ "\n",
+ "Fy=mdot*Vy # Force in Y direction\n",
+ "\n",
+ "print \"the force the man exert on the wheelbarrow\",round(Fx),\"N\"\n",
+ "print \"the force the floor exerts on the wheelbarrow\",round(Fy),\"N\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the force the man exert on the wheelbarrow 1.0 N\n",
+ "the force the floor exerts on the wheelbarrow -10.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.3:PG-715"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#determining the thrust acting on a control surface\n",
+ "\n",
+ "#i-inlet\n",
+ "#e-exit\n",
+ "#using momentum equation on control surface in x direction\n",
+ "me=20.4;#mass exiting in kg\n",
+ "mi=20;#mass entering in kg\n",
+ "ve=450;#exit velocity in m/s\n",
+ "vi=100;#inlet velocity in m/s\n",
+ "Pi=95;#Pressure at inlet in kPa\n",
+ "Pe=125;#Pressure at exit in kPa\n",
+ "Po=100;#surrounding pressure in kPa\n",
+ "Ai=0.2;#inlet area in m^2\n",
+ "Ae=0.1;#exit area in m^2\n",
+ "Rx=(me*ve-mi*vi)/1000-(Pi-Po)*Ai+(Pe-Po)*Ae;#thrust in x direction in kN\n",
+ "\n",
+ "print \"Thrust acting in x direction is \",round(Rx,2),\"kN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thrust acting in x direction is 10.68 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.4:PG-717"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#to determine increase in enthalpy\n",
+ "#initializing variables\n",
+ "#i-inlet\n",
+ "#e-exit\n",
+ "\n",
+ "T=25+273 # temperature in kelvin\n",
+ "v=0.001003 # specific volume of water in kg/m^3 at 25 *c from table B.1.1 \n",
+ "ve=7;#exit velocity in m/s\n",
+ "vi=30;#inlet velocity in m/s\n",
+ "Pi=350;#Pressure at inlet in kPa\n",
+ "Pe=600;#Pressure at exit in kPa\n",
+ "\n",
+ "#using momentum equation on control surface \n",
+ "Pes= (vi**2-ve**2)/(2*v*1000)+Pi # exit pressure for reversible diffuser\n",
+ "delH=(vi**2-ve**2)/(2*1000.0) # change in enthalpy from first law in kJ/kg\n",
+ "delU=delH-v*(Pe-Pi) # change in internal energy in kJ/kg\n",
+ "delS=delU/T # change in entropy in kJ/kg.K\n",
+ "print\"the exit pressure for reversible diffuser is \",round(Pes),\"kPa\"\n",
+ "print\"the increase in enthalpy is \",round(delH,5),\"kJ/kg\"\n",
+ "print\"the increase in internal energy is \",round(delU,5),\"kJ/kg\"\n",
+ "print\"the increase in entropy is \",round(delS,6),\"kJ/kg.K\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the exit pressure for reversible diffuser is 774.0 kPa\n",
+ "the increase in enthalpy is 0.4255 kJ/kg\n",
+ "the increase in internal energy is 0.17475 kJ/kg\n",
+ "the increase in entropy is 0.000586 kJ/kg.K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.5:PG-720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#determining velocity of sound in air\n",
+ "import math\n",
+ "k=1.4;#constant\n",
+ "R=0.287;#gas constant\n",
+ "#at 300K\n",
+ "T1=300;# temperature in kelvin\n",
+ "c1=math.sqrt(k*R*T1*1000)\n",
+ "print \"Speed of sound at 300 K is\",round(c1,1),\" m/s\" \n",
+ "#at 1000K\n",
+ "T2=1000;# temperature in kelvin\n",
+ "c2=math.sqrt(k*R*T2*1000)\n",
+ "print \"Speed of sound at 1000 K is\",round(c2,1),\" m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of sound at 300 K is 347.2 m/s\n",
+ "Speed of sound at 1000 K is 633.9 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.6:PG-727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#determining mass flow rate through control volume\n",
+ "import math\n",
+ "k=1.4;#constant\n",
+ "R=0.287;#gas constant\n",
+ "To=360;#stagnation Temperature in K \n",
+ "T=To*0.8333;#Temperature of air in K, 0.8333 stagnation ratio from table\n",
+ "v=math.sqrt(k*R*T*1000);#velocity in m/s\n",
+ "P=528;#stagnation pressure in kPa\n",
+ "d=P/(R*T);#stagnation density in kg/m^3\n",
+ "A=500*10**-6;#area in m^2\n",
+ "ms=d*A*v;#mass flow rate in kg/s\n",
+ "print\" Mass flow rate at the throat section is\",round(ms,4),\"kg/s\"\n",
+ "#e-exit state\n",
+ "Te=To*0.9381;#exit temperature in K, ratio from table\n",
+ "ce=math.sqrt(k*R*Te*1000);#exit velocity of sound in m/s\n",
+ "Me=0.573;#Mach number\n",
+ "ve=Me*ce;\n",
+ "Pe=800;#exit pressure in kPa\n",
+ "de=Pe/R/Te;\n",
+ "mse=de*A*ve;\n",
+ "print\" Mass flow rate at the exit section is\",round(mse,4),\" kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass flow rate at the throat section is 1.0646 kg/s\n",
+ " Mass flow rate at the exit section is 0.8711 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.7:PG-728"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#determining exit properties in a control volume\n",
+ "import math\n",
+ "Po=1000;#stagnation pressure in kPa\n",
+ "To=360;#stagnation temperature in K\n",
+ "\n",
+ "#when diverging section acting as nozzle\n",
+ "\n",
+ "Pe1=0.0939*Po;#exit pressure of air in kPa\n",
+ "Te1=0.5089*To;#exit temperature in K\n",
+ "k=1.4;#constant\n",
+ "R=0.287;#gas constant for air\n",
+ "ce=math.sqrt(k*R*Te1*1000);#velocity of sound in exit section in m/s\n",
+ "Me=2.197;#mach number from table\n",
+ "ve1=Me*ce;#velocity of air at exit section in m/s\n",
+ "print \"When diverging section act as a nozzle :-\"\n",
+ "print \"Exit pressure is\",round(Pe1,4),\" kPa\"\n",
+ "print \"Exit Temperature\",round(Te1,1),\" K\"\n",
+ "print \"Exit velocity is\",round(ve1,1),\" m/s \"\n",
+ "\n",
+ "#when diverging section act as diffuser\n",
+ "\n",
+ "Me=0.308;\n",
+ "Pe2=0.0936*Po;#exit pressure of air in kPa\n",
+ "Te2=0.9812*To;#exit temperature in K\n",
+ "ce=math.sqrt(k*R*Te2*1000);#velocity of sound in exit section in m/s\n",
+ "ve2=Me*ce;\n",
+ "print \"When diverging section act as a diffuser :-\"\n",
+ "print \"Exit pressure is\",round(Pe2,1),\" kPa\"\n",
+ "print \"Exit Temperature\",round(Te2,2),\" K\"\n",
+ "print \"Exit velocity is\",round(ve2,),\" m/s \"\n",
+ "\n",
+ "# The value of Exit pressure when diverging section acts as diffuser is wrong\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When diverging section act as a nozzle :-\n",
+ "Exit pressure is 93.9 kPa\n",
+ "Exit Temperature 183.2 K\n",
+ "Exit velocity is 596.1 m/s \n",
+ "When diverging section act as a diffuser :-\n",
+ "Exit pressure is 93.6 kPa\n",
+ "Exit Temperature 353.23 K\n",
+ "Exit velocity is 116.0 m/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.9:PG-733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques9\n",
+ "#determining exit plane properties in control volume\n",
+ "\n",
+ "#x-inlet\n",
+ "#y-exit\n",
+ "Mx=1.5;#mach number for inlet\n",
+ "My=0.7011;#mach number for exit\n",
+ "Px=272.4;#inlet pressure in kPa\n",
+ "Tx=248.3;#inlet temperature in K\n",
+ "Tox=360 # stagnation temperature in Kelvin\n",
+ "Pox=1000.0;#stagnation pressure for inlet\n",
+ "Py=2.4583*Px;# Pressure at 1.5 mach in kPa\n",
+ "Ty=1.320*Tx;# temperature at 1.5 mach in K\n",
+ "Poy=0.9298*Pox;# pressure at 1.5 mach in kPa\n",
+ "\n",
+ "Toy=Tox # constant\n",
+ "Me=0.339 # from table with A/A*=1.860 and M < 1\n",
+ "Pe=0.9222*Py;#Exit Pressure in kPa\n",
+ "Te=0.9771*Toy;#Exit temperature in K\n",
+ "Poe=0.9222*Poy;#Exit pressure in kPa\n",
+ "\n",
+ "print \"Exit Mach no.=\",Me\n",
+ "print \"Exit temperature =\",round(Te,2),\"K \"\n",
+ "print \"Exit pressure =\",round(Poe,1),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit Mach no.= 0.339\n",
+ "Exit temperature = 351.76 K \n",
+ "Exit pressure = 857.5 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter17_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter17_6.ipynb
new file mode 100755
index 00000000..11b9507c
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter17_6.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e77c793709c88cc39a2de404e997a6f1eed32d352c214c1580d822fd7a5a83a2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: COMPRESSIBLE FLOW"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.1:PG-710"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques1\n",
+ "#to determine isentropic stagnation pressure and temperature \n",
+ "\n",
+ "T=300;#Temperature of air in K\n",
+ "P=150;#Pressure of air in kPa\n",
+ "v=200;#velocity of air flow n m/s\n",
+ "Cp=1.004;#specific heat at constant pressure in kJ/kg\n",
+ "To=v**2/(2000*Cp)+T;#stagnation temperature in K\n",
+ "k=1.4;#constant\n",
+ "Po=P*(To/T)**(k/(k-1));#stagnation pressure in kPa\n",
+ "print 'Stagnation Temperature is ',round(To,1),' K \\n'\n",
+ "print 'Stagnation Pressure is ',round(Po,2),'kPa \\n'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stagnation Temperature is 319.9 K \n",
+ "\n",
+ "Stagnation Pressure is 187.85 kPa \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.2:PG-713"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques2\n",
+ "#to determine the force\n",
+ "\n",
+ "#initializing variables\n",
+ "mdot=-1 # mass flow rate out of control volume in kg/s\n",
+ "Vx=-1 # x component of velocity of control volume in m/s\n",
+ "Vy=10 # y component of velocity of control volume in m/s\n",
+ "\n",
+ "Fx=mdot*Vx # Force in X direction\n",
+ "\n",
+ "Fy=mdot*Vy # Force in Y direction\n",
+ "\n",
+ "print \"the force the man exert on the wheelbarrow\",round(Fx),\"N\"\n",
+ "print \"the force the floor exerts on the wheelbarrow\",round(Fy),\"N\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the force the man exert on the wheelbarrow 1.0 N\n",
+ "the force the floor exerts on the wheelbarrow -10.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.3:PG-715"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques3\n",
+ "#determining the thrust acting on a control surface\n",
+ "\n",
+ "#i-inlet\n",
+ "#e-exit\n",
+ "#using momentum equation on control surface in x direction\n",
+ "me=20.4;#mass exiting in kg\n",
+ "mi=20;#mass entering in kg\n",
+ "ve=450;#exit velocity in m/s\n",
+ "vi=100;#inlet velocity in m/s\n",
+ "Pi=95;#Pressure at inlet in kPa\n",
+ "Pe=125;#Pressure at exit in kPa\n",
+ "Po=100;#surrounding pressure in kPa\n",
+ "Ai=0.2;#inlet area in m^2\n",
+ "Ae=0.1;#exit area in m^2\n",
+ "Rx=(me*ve-mi*vi)/1000-(Pi-Po)*Ai+(Pe-Po)*Ae;#thrust in x direction in kN\n",
+ "\n",
+ "print \"Thrust acting in x direction is \",round(Rx,2),\"kN\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thrust acting in x direction is 10.68 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.4:PG-717"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques4\n",
+ "#to determine increase in enthalpy\n",
+ "#initializing variables\n",
+ "#i-inlet\n",
+ "#e-exit\n",
+ "\n",
+ "T=25+273 # temperature in kelvin\n",
+ "v=0.001003 # specific volume of water in kg/m^3 at 25 *c from table B.1.1 \n",
+ "ve=7;#exit velocity in m/s\n",
+ "vi=30;#inlet velocity in m/s\n",
+ "Pi=350;#Pressure at inlet in kPa\n",
+ "Pe=600;#Pressure at exit in kPa\n",
+ "\n",
+ "#using momentum equation on control surface \n",
+ "Pes= (vi**2-ve**2)/(2*v*1000)+Pi # exit pressure for reversible diffuser\n",
+ "delH=(vi**2-ve**2)/(2*1000.0) # change in enthalpy from first law in kJ/kg\n",
+ "delU=delH-v*(Pe-Pi) # change in internal energy in kJ/kg\n",
+ "delS=delU/T # change in entropy in kJ/kg.K\n",
+ "print\"the exit pressure for reversible diffuser is \",round(Pes),\"kPa\"\n",
+ "print\"the increase in enthalpy is \",round(delH,5),\"kJ/kg\"\n",
+ "print\"the increase in internal energy is \",round(delU,5),\"kJ/kg\"\n",
+ "print\"the increase in entropy is \",round(delS,6),\"kJ/kg.K\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the exit pressure for reversible diffuser is 774.0 kPa\n",
+ "the increase in enthalpy is 0.4255 kJ/kg\n",
+ "the increase in internal energy is 0.17475 kJ/kg\n",
+ "the increase in entropy is 0.000586 kJ/kg.K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.5:PG-720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques5\n",
+ "#determining velocity of sound in air\n",
+ "import math\n",
+ "k=1.4;#constant\n",
+ "R=0.287;#gas constant\n",
+ "#at 300K\n",
+ "T1=300;# temperature in kelvin\n",
+ "c1=math.sqrt(k*R*T1*1000)\n",
+ "print \"Speed of sound at 300 K is\",round(c1,1),\" m/s\" \n",
+ "#at 1000K\n",
+ "T2=1000;# temperature in kelvin\n",
+ "c2=math.sqrt(k*R*T2*1000)\n",
+ "print \"Speed of sound at 1000 K is\",round(c2,1),\" m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of sound at 300 K is 347.2 m/s\n",
+ "Speed of sound at 1000 K is 633.9 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.6:PG-727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques6\n",
+ "#determining mass flow rate through control volume\n",
+ "import math\n",
+ "k=1.4;#constant\n",
+ "R=0.287;#gas constant\n",
+ "To=360;#stagnation Temperature in K \n",
+ "T=To*0.8333;#Temperature of air in K, 0.8333 stagnation ratio from table\n",
+ "v=math.sqrt(k*R*T*1000);#velocity in m/s\n",
+ "P=528;#stagnation pressure in kPa\n",
+ "d=P/(R*T);#stagnation density in kg/m^3\n",
+ "A=500*10**-6;#area in m^2\n",
+ "ms=d*A*v;#mass flow rate in kg/s\n",
+ "print\" Mass flow rate at the throat section is\",round(ms,4),\"kg/s\"\n",
+ "#e-exit state\n",
+ "Te=To*0.9381;#exit temperature in K, ratio from table\n",
+ "ce=math.sqrt(k*R*Te*1000);#exit velocity of sound in m/s\n",
+ "Me=0.573;#Mach number\n",
+ "ve=Me*ce;\n",
+ "Pe=800;#exit pressure in kPa\n",
+ "de=Pe/R/Te;\n",
+ "mse=de*A*ve;\n",
+ "print\" Mass flow rate at the exit section is\",round(mse,4),\" kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Mass flow rate at the throat section is 1.0646 kg/s\n",
+ " Mass flow rate at the exit section is 0.8711 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.7:PG-728"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques7\n",
+ "#determining exit properties in a control volume\n",
+ "import math\n",
+ "Po=1000;#stagnation pressure in kPa\n",
+ "To=360;#stagnation temperature in K\n",
+ "\n",
+ "#when diverging section acting as nozzle\n",
+ "\n",
+ "Pe1=0.0939*Po;#exit pressure of air in kPa\n",
+ "Te1=0.5089*To;#exit temperature in K\n",
+ "k=1.4;#constant\n",
+ "R=0.287;#gas constant for air\n",
+ "ce=math.sqrt(k*R*Te1*1000);#velocity of sound in exit section in m/s\n",
+ "Me=2.197;#mach number from table\n",
+ "ve1=Me*ce;#velocity of air at exit section in m/s\n",
+ "print \"When diverging section act as a nozzle :-\"\n",
+ "print \"Exit pressure is\",round(Pe1,4),\" kPa\"\n",
+ "print \"Exit Temperature\",round(Te1,1),\" K\"\n",
+ "print \"Exit velocity is\",round(ve1,1),\" m/s \"\n",
+ "\n",
+ "#when diverging section act as diffuser\n",
+ "\n",
+ "Me=0.308;\n",
+ "Pe2=0.0936*Po;#exit pressure of air in kPa\n",
+ "Te2=0.9812*To;#exit temperature in K\n",
+ "ce=math.sqrt(k*R*Te2*1000);#velocity of sound in exit section in m/s\n",
+ "ve2=Me*ce;\n",
+ "print \"When diverging section act as a diffuser :-\"\n",
+ "print \"Exit pressure is\",round(Pe2,1),\" kPa\"\n",
+ "print \"Exit Temperature\",round(Te2,2),\" K\"\n",
+ "print \"Exit velocity is\",round(ve2,),\" m/s \"\n",
+ "\n",
+ "# The value of Exit pressure when diverging section acts as diffuser is wrong\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When diverging section act as a nozzle :-\n",
+ "Exit pressure is 93.9 kPa\n",
+ "Exit Temperature 183.2 K\n",
+ "Exit velocity is 596.1 m/s \n",
+ "When diverging section act as a diffuser :-\n",
+ "Exit pressure is 93.6 kPa\n",
+ "Exit Temperature 353.23 K\n",
+ "Exit velocity is 116.0 m/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.8:PG-731"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques8\n",
+ "#Determine the static pressure and temperature of supersonic nozzle\n",
+ "#x-inlet\n",
+ "#y-exit\n",
+ "# using the data from previous example\n",
+ "Mx=2.197 # Mach number at x\n",
+ "Px=93.9 # IN kPa\n",
+ "Tx=183.2 # IN K\n",
+ "P0x=1000 # IN kPa\n",
+ "T0x = 360 # in K\n",
+ "My=0.547 # Mach number at y From Table A.13\n",
+ "Py = 5.46*Px # From Table A.13\n",
+ "Ty = 1.854 * Tx # From Table A.13\n",
+ "P0y= 0.630 * P0x # From Table A.13\n",
+ "print \"Exit pressure after shock is\",round(Py,1),\" kPa\"\n",
+ "print \"Exit Temperature after shock is\",round(Ty,1),\" K\"\n",
+ "print \"Exit stagnation pressure after shock is\",round(P0y,1),\" kPa\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit pressure after shock is 512.7 kPa\n",
+ "Exit Temperature after shock is 339.7 K\n",
+ "Exit stagnation pressure after shock is 630.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17.9:PG-733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#ques9\n",
+ "#determining exit plane properties in control volume\n",
+ "\n",
+ "#x-inlet\n",
+ "#y-exit\n",
+ "Mx=1.5;#mach number for inlet\n",
+ "My=0.7011;#mach number for exit\n",
+ "Px=272.4;#inlet pressure in kPa\n",
+ "Tx=248.3;#inlet temperature in K\n",
+ "Tox=360 # stagnation temperature in Kelvin\n",
+ "Pox=1000.0;#stagnation pressure for inlet\n",
+ "Py=2.4583*Px;# Pressure at 1.5 mach in kPa\n",
+ "Ty=1.320*Tx;# temperature at 1.5 mach in K\n",
+ "Poy=0.9298*Pox;# pressure at 1.5 mach in kPa\n",
+ "\n",
+ "Toy=Tox # constant\n",
+ "Me=0.339 # from table with A/A*=1.860 and M < 1\n",
+ "Pe=0.9222*Py;#Exit Pressure in kPa\n",
+ "Te=0.9771*Toy;#Exit temperature in K\n",
+ "Poe=0.9222*Poy;#Exit pressure in kPa\n",
+ "\n",
+ "print \"Exit Mach no.=\",Me\n",
+ "print \"Exit temperature =\",round(Te,2),\"K \"\n",
+ "print \"Exit pressure =\",round(Poe,1),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exit Mach no.= 0.339\n",
+ "Exit temperature = 351.76 K \n",
+ "Exit pressure = 857.5 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter2.ipynb b/Fundamentals_Of_Thermodynamics/Chapter2.ipynb
new file mode 100755
index 00000000..95850873
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter2.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eb1b6239947f111d6ea8f1bcaafe0bb84b121b2561bbb9f5f8a8bdec77169fd2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2:SOME CONCEPTS AND DEFINITIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:pg-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#weight of a person\n",
+ "\n",
+ "\n",
+ "m=1 #kg\n",
+ "g=9.75 #acc.due to gravity in m/s^2\n",
+ "F=m*g #weight of 1 kg mass in N\n",
+ "print\"\\n hence,weight of person is\",round(F,2),\" N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,weight of person is 9.75 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:pg-24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#average volume and density\n",
+ "\n",
+ "Vliq=0.2 #volume of liquid in m^3\n",
+ "dliq=997 #density of liquid in kg/m^3\n",
+ "Vstone=0.12 #volume of stone in m^3\n",
+ "Vsand=0.15 #volume of sand in m^3\n",
+ "Vair=0.53 #vo;ume of air in m^3\n",
+ "mliq=Vliq*dliq #mass of liquid in kg\n",
+ "dstone=2750 #density of stone in kg/m^3\n",
+ "dsand=1500 #density of sand in kg/m^3\n",
+ "mstone=Vstone*dstone #volume of stone in m^3\n",
+ "msand=Vsand*dsand #volume of sand in m^3\n",
+ "Vtot=1 #total volume in m^3\n",
+ "dair=1.1 #density of air in kg/m^3\n",
+ "mair=Vair*dair #mass of air\n",
+ "mtot=mair+msand+mliq+mstone #total mass in kg\n",
+ "v=Vtot/mtot #specific volume in m^3/kg\n",
+ "d=1/v #overall density in kg/m^3\n",
+ "print\"\\n hence,average specific volume is\",round(v,6),\"m^3/kg\" \n",
+ "print\"\\n and overall density is\", round(d),\"kg/m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,average specific volume is 0.001325 m^3/kg\n",
+ "\n",
+ " and overall density is 755.0 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:pg-26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#calculating the required force\n",
+ "import math\n",
+ "\n",
+ "Dcyl=0.1 #cylinder diameter in m\n",
+ "Drod=0.01 #rod diameter in m\n",
+ "Acyl=math.pi*Dcyl**2/4 #cross sectional area of cylinder in m^2\n",
+ "Arod=math.pi*Drod**2/4 #cross sectional area of rod in m^2\n",
+ "Pcyl=250000 #inside hydaulic pressure in Pa\n",
+ "Po=101000 #outside atmospheric pressure in kPa\n",
+ "g=9.81 #acc. due to gravity in m/s^2\n",
+ "mp=25 #mass of (rod+piston) in kg\n",
+ "F=Pcyl*Acyl-Po*(Acyl-Arod)-mp*g #the force that rod can push within the upward direction in N\n",
+ "print\"\\n hence,the force that rod can push within the upward direction is\",round(F,1),\" N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the force that rod can push within the upward direction is 932.9 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:pg-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#Calculating atmospheric pressure \n",
+ "\n",
+ "dm=13534 #density of mercury in kg/m^3\n",
+ "H=0.750 #height difference between two columns in metres\n",
+ "g=9.80665 #acc. due to gravity in m/s^2\n",
+ "Patm=dm*H*g/1000 #atmospheric pressure in kPa\n",
+ "print\"\\n hence, atmospheric pressure is\",round(Patm,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, atmospheric pressure is 99.54 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:pg-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#pressure inside vessel\n",
+ "\n",
+ "dm=13590 #density of mercury in kg/m^3\n",
+ "H=0.24 #height difference between two columns in metres\n",
+ "g=9.80665 #acc. due to gravity in m/s^2\n",
+ "dP=dm*H*g #pressure difference in Pa\n",
+ "Patm=13590*0.750*9.80665 #Atmospheric Pressure in Pa\n",
+ "Pvessel=dP+Patm #Absolute Pressure inside vessel in Pa\n",
+ "Pvessel=Pvessel/101325 #Absolute Pressure inside vessel in atm\n",
+ "print\"\\n hence, the absolute pressure inside vessel is\",round(Pvessel,3),\"atm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, the absolute pressure inside vessel is 1.302 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:pg-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#calculating pressure\n",
+ "\n",
+ "dg=750 #density of gaasoline in kg/m^3\n",
+ "dR=1206 #density of R-134a in kg/m^3\n",
+ "H=7.5 #height of storage tank in metres\n",
+ "g=9.807 #acc. due to gravity in m/s^2\n",
+ "dP1=dg*g*H/1000 #in kPa\n",
+ "Ptop1=101 #atmospheric pressure in kPa\n",
+ "P1=dP1+Ptop1\n",
+ "print\"hence,pressure at the bottom of storage tank if fluid is gasoline is\",round(P1,1),\"kPa\" \n",
+ "dP2=dR*g*H/1000 #in kPa\n",
+ "Ptop2=1000 #top surface pressure in kPa\n",
+ "P2=dP2+Ptop2\n",
+ "print\"\\n hence, pressure at the bottom of storage tank if liquid is R-134a is\",round(P2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,pressure at the bottom of storage tank if fluid is gasoline is 156.2 kPa\n",
+ "\n",
+ " hence, pressure at the bottom of storage tank if liquid is R-134a is 1089.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7:pg-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#calculating balancing force\n",
+ "\n",
+ "Po=100#Outside atmospheric pressure in kPa\n",
+ "F1=25 #net force on the smallest piston in kN\n",
+ "A1=0.01 #cross sectional area of lower piston in m^2\n",
+ "P1=Po+F1/A1 #fluid pressure in kPa\n",
+ "d=900 #density of fluid in kg/m^3\n",
+ "g=9.81 #acc. due to gravity in m/s^2\n",
+ "H=6 #height of second piston in comparison to first one in m\n",
+ "P2=P1-d*g*H/1000 #pressure at higher elevation on piston 2 in kPa\n",
+ "A2=0.05 #cross sectional area of higher piston in m^3\n",
+ "F2=(P2-Po)*A2 #balancing force on second piston in kN\n",
+ "print\"\\n hence, balancing force on second larger piston is\",round(F2,1),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, balancing force on second larger piston is 122.4 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter2_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter2_6.ipynb
new file mode 100755
index 00000000..08e192fe
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter2_6.ipynb
@@ -0,0 +1,379 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:96f5bd0fa542764d6a8f75d5a1a42e4b79791697476f4029d0fa0fea1de65bed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2:SOME CONCEPTS AND DEFINITIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:pg-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#weight of a person\n",
+ "\n",
+ "\n",
+ "m=1 #kg\n",
+ "g=9.75 #acc.due to gravity in m/s^2\n",
+ "F=m*g #weight of 1 kg mass in N\n",
+ "print\"\\n hence,weight of person is\",round(F,2),\" N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,weight of person is 9.75 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1E:pg-20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#weight of a person\n",
+ "\n",
+ "\n",
+ "m=1 #lbm\n",
+ "g=32 #acc.due to gravity in ft/s^2\n",
+ "F=m*g/32.174 #weight of 1 lbm mass in lbf\n",
+ "print\"\\n hence,weight of person is\",round(F,4),\" lbf\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,weight of person is 0.9946 lbf\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:pg-24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#average volume and density\n",
+ "\n",
+ "Vliq=0.2 #volume of liquid in m^3\n",
+ "dliq=997 #density of liquid in kg/m^3\n",
+ "Vstone=0.12 #volume of stone in m^3\n",
+ "Vsand=0.15 #volume of sand in m^3\n",
+ "Vair=0.53 #vo;ume of air in m^3\n",
+ "mliq=Vliq*dliq #mass of liquid in kg\n",
+ "dstone=2750 #density of stone in kg/m^3\n",
+ "dsand=1500 #density of sand in kg/m^3\n",
+ "mstone=Vstone*dstone #volume of stone in m^3\n",
+ "msand=Vsand*dsand #volume of sand in m^3\n",
+ "Vtot=1 #total volume in m^3\n",
+ "dair=1.1 #density of air in kg/m^3\n",
+ "mair=Vair*dair #mass of air\n",
+ "mtot=mair+msand+mliq+mstone #total mass in kg\n",
+ "v=Vtot/mtot #specific volume in m^3/kg\n",
+ "d=1/v #overall density in kg/m^3\n",
+ "print\"\\n hence,average specific volume is\",round(v,6),\"m^3/kg\" \n",
+ "print\"\\n and overall density is\", round(d),\"kg/m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,average specific volume is 0.001325 m^3/kg\n",
+ "\n",
+ " and overall density is 755.0 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:pg-26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#calculating the required force\n",
+ "import math\n",
+ "\n",
+ "Dcyl=0.1 #cylinder diameter in m\n",
+ "Drod=0.01 #rod diameter in m\n",
+ "Acyl=math.pi*Dcyl**2/4 #cross sectional area of cylinder in m^2\n",
+ "Arod=math.pi*Drod**2/4 #cross sectional area of rod in m^2\n",
+ "Pcyl=250000 #inside hydaulic pressure in Pa\n",
+ "Po=101000 #outside atmospheric pressure in kPa\n",
+ "g=9.81 #acc. due to gravity in m/s^2\n",
+ "mp=25 #mass of (rod+piston) in kg\n",
+ "F=Pcyl*Acyl-Po*(Acyl-Arod)-mp*g #the force that rod can push within the upward direction in N\n",
+ "print\"\\n hence,the force that rod can push within the upward direction is\",round(F,1),\" N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the force that rod can push within the upward direction is 932.9 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:pg-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#Calculating atmospheric pressure \n",
+ "\n",
+ "dm=13534 #density of mercury in kg/m^3\n",
+ "H=0.750 #height difference between two columns in metres\n",
+ "g=9.80665 #acc. due to gravity in m/s^2\n",
+ "Patm=dm*H*g/1000 #atmospheric pressure in kPa\n",
+ "print\"\\n hence, atmospheric pressure is\",round(Patm,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, atmospheric pressure is 99.54 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:pg-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#pressure inside vessel\n",
+ "\n",
+ "dm=13590 #density of mercury in kg/m^3\n",
+ "H=0.24 #height difference between two columns in metres\n",
+ "g=9.80665 #acc. due to gravity in m/s^2\n",
+ "dP=dm*H*g #pressure difference in Pa\n",
+ "Patm=13590*0.750*9.80665 #Atmospheric Pressure in Pa\n",
+ "Pvessel=dP+Patm #Absolute Pressure inside vessel in Pa\n",
+ "Pvessel=Pvessel/101325 #Absolute Pressure inside vessel in atm\n",
+ "print\"\\n hence, the absolute pressure inside vessel is\",round(Pvessel,3),\"atm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, the absolute pressure inside vessel is 1.302 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5E:pg-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#pressure inside vessel\n",
+ "\n",
+ "dm=848 #density of mercury in lbm/ft^3\n",
+ "H=9.5 #height difference between two columns in inches\n",
+ "g=32.174 #acc. due to gravity in ft/s^2\n",
+ "dP=dm*H*g #pressure difference in lbf/in^2\n",
+ "Patm=848*9.5*32.174/(1728*32.174) #Atmospheric Pressure in lbf/in^2\n",
+ "Pvessel=dP+Patm #Absolute Pressure inside vessel in lbf/in^2\n",
+ "Pvessel=848*29.5*32.174/(1728*32.174)+Patm #Absolute Pressure inside vessel in lbf/in^2\n",
+ "print\"\\n hence, the absolute pressure inside vessel is\",round(Pvessel,2),\"lbf/in^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, the absolute pressure inside vessel is 19.14 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:pg-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#calculating pressure\n",
+ "\n",
+ "dg=750 #density of gaasoline in kg/m^3\n",
+ "dR=1206 #density of R-134a in kg/m^3\n",
+ "H=7.5 #height of storage tank in metres\n",
+ "g=9.807 #acc. due to gravity in m/s^2\n",
+ "dP1=dg*g*H/1000 #in kPa\n",
+ "Ptop1=101 #atmospheric pressure in kPa\n",
+ "P1=dP1+Ptop1\n",
+ "print\"hence,pressure at the bottom of storage tank if fluid is gasoline is\",round(P1,1),\"kPa\" \n",
+ "dP2=dR*g*H/1000 #in kPa\n",
+ "Ptop2=1000 #top surface pressure in kPa\n",
+ "P2=dP2+Ptop2\n",
+ "print\"\\n hence, pressure at the bottom of storage tank if liquid is R-134a is\",round(P2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,pressure at the bottom of storage tank if fluid is gasoline is 156.2 kPa\n",
+ "\n",
+ " hence, pressure at the bottom of storage tank if liquid is R-134a is 1089.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.7:pg-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#calculating balancing force\n",
+ "\n",
+ "Po=100#Outside atmospheric pressure in kPa\n",
+ "F1=25 #net force on the smallest piston in kN\n",
+ "A1=0.01 #cross sectional area of lower piston in m^2\n",
+ "P1=Po+F1/A1 #fluid pressure in kPa\n",
+ "d=900 #density of fluid in kg/m^3\n",
+ "g=9.81 #acc. due to gravity in m/s^2\n",
+ "H=6 #height of second piston in comparison to first one in m\n",
+ "P2=P1-d*g*H/1000 #pressure at higher elevation on piston 2 in kPa\n",
+ "A2=0.05 #cross sectional area of higher piston in m^3\n",
+ "F2=(P2-Po)*A2 #balancing force on second piston in kN\n",
+ "print\"\\n hence, balancing force on second larger piston is\",round(F2,1),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, balancing force on second larger piston is 122.4 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter3.ipynb b/Fundamentals_Of_Thermodynamics/Chapter3.ipynb
new file mode 100755
index 00000000..7447d700
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter3.ipynb
@@ -0,0 +1,403 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6916c81bc8c1ac256991650a35c94801d5197d3ce593f7738220895278cf5f8b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3:PROPERTIES OF A PURE SUBSTANCE"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3:pg-59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#determining the quality and specific volume\n",
+ "\n",
+ "v1=0.5 #given specific volume in m^3/kg\n",
+ "vf=0.001073 #specific volume when only liquid phase is present in m^3/kg\n",
+ "vfg=0.60475 #in m^3/kg\n",
+ "x=(v1-vf)/vfg #quality\n",
+ "print\"For water at a pressure of 300 kPa,the state at which v1 is 0.5 m^3/kg is seen to be in the liquid-vapor two-phase region,at which T=133.6 C and the quality is\",round(x,3)\n",
+ "\n",
+ "v2=1 #given specific volume in m^3/kg\n",
+ "\n",
+ " # using the method of interplotation\n",
+ "T=((400-300)*(1.0-0.8753))/(1.0315-0.8753)+300 #temperature of the water\n",
+ "print\"For water at a pressure of 300 kPa,the state at which v2 is 1 m^3/kg is seen to be in the liquid-vapor two-phase region,the temperature is\",round(T,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For water at a pressure of 300 kPa,the state at which v1 is 0.5 m^3/kg is seen to be in the liquid-vapor two-phase region,at which T=133.6 C and the quality is 0.825\n",
+ "For water at a pressure of 300 kPa,the state at which v2 is 1 m^3/kg is seen to be in the liquid-vapor two-phase region,the temperature is 379.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4:pg-60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #example 4\n",
+ "#percentage of vapor \n",
+ "\n",
+ "vliq=0.1 #volume of saturated liquid in m^3\n",
+ "vf=0.000843 #in m^3/kg\n",
+ "vvap=0.9 #volume of saturated vapor R-134a in equilbrium\n",
+ "vg=0.02671 #in m^3/kg\n",
+ "mliq=vliq/vf #mass of liquid in kg \n",
+ "mvap=vvap/vg #mass of vapor in kg\n",
+ "m=mliq+mvap #total mass in kg\n",
+ "x=mvap*100/m #percentage of vapor on mass basis\n",
+ "print\"hence,% vapor on mass basis is\",round(x,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,% vapor on mass basis is 22.1 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:pg-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#Determinig the missing property\n",
+ "\n",
+ "T1=273-53.2 #given temperature in K\n",
+ "P1=600 #given pressure in kPa\n",
+ "print\"This temperature is higher than the critical temperature (critical temp. at P=600 kPa) is 96.37 K.Hence,v=0.10788 m^3/kg\"\n",
+ "T2=100 #given temp. in K\n",
+ "v2=0.008 #given specific volume in m^3/kg\n",
+ "vf=0.001452 #in m^3/kg\n",
+ "vg=0.0312 #in m^3/kg\n",
+ "Psat=779.2 #saturation pressure in kPa\n",
+ "vfg=vg-vf #in m^3/kg\n",
+ "x=(v2-vf)/vfg #quality\n",
+ "print\"\\n hence, the pressure is\",round(Psat,1),\"kPa\"\n",
+ "print\"\\n and quality is\",round(x,4),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This temperature is higher than the critical temperature (critical temp. at P=600 kPa) is 96.37 K.Hence,v=0.10788 m^3/kg\n",
+ "\n",
+ " hence, the pressure is 779.2 kPa\n",
+ "\n",
+ " and quality is 0.2201 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7:pg-62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#determining the pressure of water\n",
+ "\n",
+ "vg=0.12736 #specific volume in m^3/kg for water at 200C\n",
+ "v=0.4 #specific volume in m^3/kg\n",
+ "P1=500 #in kPa\n",
+ "v1=0.42492 #specific volume at P1 in m^3/kg\n",
+ "P2=600 #in kPa\n",
+ "v2=0.35202 #specific volume at P2 in m^3/kg\n",
+ "P=P1+(P2-P1)*(v-v1)/(v2-v1) #calculating pressure by interplotation\n",
+ "print \"hence,the pressure of water is\",round(P,1),\" kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hence,the pressure of water is 534.2 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8:pg-66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#calculating mass of air\n",
+ "\n",
+ "P=100 #pressure in kPa\n",
+ "V=6*10*4 #volume of room in m^3\n",
+ "R=0.287 #in kN-m/kg-K\n",
+ "T=25 #temperature in Celsius\n",
+ "m=P*V/(R*(T+273.1)) #mass of air contained in room\n",
+ "print\"\\n hence, mass of air contained in room is\",round(m,1),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, mass of air contained in room is 280.5 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.9:pg-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#calculating pressure inside tank\n",
+ "\n",
+ "V=0.5 #volumr of tank in m^3\n",
+ "m=10 #mass of ideal gas in kg\n",
+ "T=25 #temperature of tank in Celsius\n",
+ "M=24 #molecular mass of gas in kg/kmol\n",
+ "Ru=8.3145 #universal gas constant in kN-m/kmol-K\n",
+ "R=Ru/M #gas constant for given ideal gas in kN-m/kg-K\n",
+ "P=m*R*(T+273.2)/V #pressure inside tank\n",
+ "print\"\\n hence,pressure inside tank is\",round(P),\"kpa\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,pressure inside tank is 2066.0 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.10:pg-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#mass flow rate\n",
+ "\n",
+ "dt=185 #time period in seconds over which there is incrrease in volume \n",
+ "dV=0.75 #increase in volume in 0.75 in m^3\n",
+ "V=dV/dt #volume flow rate in m^3/s\n",
+ "P=105 #pressure inside gas bell kPa\n",
+ "T=21 #temperature in celsius\n",
+ "R=0.1889 #ideal gas constant in kJ/kg-K\n",
+ "m=P*V/(R*(T+273.15)) #mass flow rate of the flow in kg/s\n",
+ "print\"\\n hence,mass flow rate is\",round(m,5),\"kg/s\"\n",
+ "print\"\\n and volume flow rate is\",round(V,5),\"m^3/s\"\n",
+ "#The answer of volume flow rate in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,mass flow rate is 0.00766 kg/s\n",
+ "\n",
+ " and volume flow rate is 0.00405 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.12:pg-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12\n",
+ "#determining specific using diffenet laws\n",
+ "\n",
+ "T=100.0 #given temp.in 100 celsius\n",
+ "P=3.0 #given pressure in MPa\n",
+ "v1=0.0065 #specific volume in m^3/kg using table\n",
+ "print\"\\n hence,the specific volume for R-134a using R-134a tables is\",round(v1,3),\"m^3/kg\"\n",
+ "M=102.3 #molecular mass in kg\n",
+ "R=8.3145 #in kJ/K\n",
+ "Ru=R/M #in kJ/K-kg\n",
+ "v2=Ru*(T+273)/(P*1000) #specific volume assuming R-134a to be ideal gas in m^3/kg\n",
+ "print\"\\n hence,the specific volume for R-134a using R-134a the ideal gas laws is\",round(v2,5),\"m^3/kg\"\n",
+ "Tr=373.2/374.2 #reduced temperature using generalized chart\n",
+ "Pr=3.0/4.06 #reduced pressure using generalized chart\n",
+ "Z=0.67 #compressibility factor \n",
+ "v3=Z*v2 # specific volume using generalized chart in m^3/kg\n",
+ "print\"\\n hence,the specific volume for R-134a using the generalized chart is\",round(v3,5),\"m^3/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the specific volume for R-134a using R-134a tables is 0.006 m^3/kg\n",
+ "\n",
+ " hence,the specific volume for R-134a using R-134a the ideal gas laws is 0.01011 m^3/kg\n",
+ "\n",
+ " hence,the specific volume for R-134a using the generalized chart is 0.00677 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.13:pg-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13\n",
+ "#calculating mass of gas\n",
+ "\n",
+ "Pc=4250 #critical pressure of propane in kPa\n",
+ "Tc=369.8 #critical temperature in K\n",
+ "T=15 #temperature of propane in celsius\n",
+ "Tr=T/Tc #reduced temperature\n",
+ "Prsat=0.2 # reduced pressure \n",
+ "P=Prsat*Pc #pressure in kPa\n",
+ "x=0.1 #given quality\n",
+ "Zf=0.035 #from graph\n",
+ "Zg=0.83 #from graph\n",
+ "Z=(1-x)*Zf+x*Zg #overall compressibility factor\n",
+ "V=0.1 #volume of steel bottle in m^3\n",
+ "R=0.1887 #in kPa-m^3/kg-K\n",
+ "m=P*V/(Z*R*(T+273)) #total propane mass in kg\n",
+ "print\"\\n hence,the total propane mass is\",round(m,2),\"kg\"\n",
+ "print\"\\n and pressure is\",round(P,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the total propane mass is 13.66 kg\n",
+ "\n",
+ " and pressure is 850.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter3_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter3_6.ipynb
new file mode 100755
index 00000000..64998280
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter3_6.ipynb
@@ -0,0 +1,571 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b6e51b20af9aaa1b32972245e7dbe7cc42b3ed40e5f3cbf6db8837625a12aebc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3:PROPERTIES OF A PURE SUBSTANCE"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.1:pg-57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#determinig the phase of water\n",
+ "\n",
+ "print\"from the table,we find that at 120C,saturation pressure of water is 198.5 kPa.But here we have pressure of 500 kPa.hence,water exists as a compressed liquid here.\"\n",
+ "print\"also at 120C,vf=0.00106 kg/m^3 and vg=0.89186 kg/m^3.given v=0.5 m^3/kg i.e. vf<v<vg,so we have two phase mixture of liquid and vapor.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from the table,we find that at 120C,saturation pressure of water is 198.5 kPa.But here we have pressure of 500 kPa.hence,water exists as a compressed liquid here.\n",
+ "also at 120C,vf=0.00106 kg/m^3 and vg=0.89186 kg/m^3.given v=0.5 m^3/kg i.e. vf<v<vg,so we have two phase mixture of liquid and vapor.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2:pg-58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#determinig the phase \n",
+ "\n",
+ "print\"from the table,we find that at 30C,saturation pressure of ammonia is 1167 kPa.But here we have pressure of 1000 kPa.hence,ammonia exists in superheated vapor state.\"\n",
+ "print\"for R-22 at 200 kPa,vg=0.1119 kg/m^3.given v=0.15 m^3/kg i.e. v>vg,so the state is superheated vapor\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from the table,we find that at 30C,saturation pressure of ammonia is 1167 kPa.But here we have pressure of 1000 kPa.hence,ammonia exists in superheated vapor state.\n",
+ "for R-22 at 200 kPa,vg=0.1119 kg/m^3.given v=0.15 m^3/kg i.e. v>vg,so the state is superheated vapor\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3:pg-59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#determining the quality and specific volume\n",
+ "\n",
+ "v1=0.5 #given specific volume in m^3/kg\n",
+ "vf=0.001073 #specific volume when only liquid phase is present in m^3/kg\n",
+ "vfg=0.60475 #in m^3/kg\n",
+ "x=(v1-vf)/vfg #quality\n",
+ "print\"For water at a pressure of 300 kPa,the state at which v1 is 0.5 m^3/kg is seen to be in the liquid-vapor two-phase region,at which T=133.6 C and the quality is\",round(x,3)\n",
+ "\n",
+ "v2=1 #given specific volume in m^3/kg\n",
+ "\n",
+ " # using the method of interplotation\n",
+ "T=((400-300)*(1.0-0.8753))/(1.0315-0.8753)+300 #temperature of the water\n",
+ "print\"For water at a pressure of 300 kPa,the state at which v2 is 1 m^3/kg is seen to be in the liquid-vapor two-phase region,the temperature is\",round(T,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For water at a pressure of 300 kPa,the state at which v1 is 0.5 m^3/kg is seen to be in the liquid-vapor two-phase region,at which T=133.6 C and the quality is 0.825\n",
+ "For water at a pressure of 300 kPa,the state at which v2 is 1 m^3/kg is seen to be in the liquid-vapor two-phase region,the temperature is 379.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4:pg-60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #example 4\n",
+ "#percentage of vapor \n",
+ "\n",
+ "vliq=0.1 #volume of saturated liquid in m^3\n",
+ "vf=0.000843 #in m^3/kg\n",
+ "vvap=0.9 #volume of saturated vapor R-134a in equilbrium\n",
+ "vg=0.02671 #in m^3/kg\n",
+ "mliq=vliq/vf #mass of liquid in kg \n",
+ "mvap=vvap/vg #mass of vapor in kg\n",
+ "m=mliq+mvap #total mass in kg\n",
+ "x=mvap*100/m #percentage of vapor on mass basis\n",
+ "print\"hence,% vapor on mass basis is\",round(x,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,% vapor on mass basis is 22.1 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4E:pg-60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " #example 5\n",
+ "#percentage of vapor \n",
+ "\n",
+ "vliq=0.1 #volume of saturated liquid in ft^3\n",
+ "vf=0.0136 #in ft^3/lbm\n",
+ "vvap=0.9 #volume of saturated vapor R-134a in equilbrium\n",
+ "vg=0.4009 #in ft^3/lbm\n",
+ "mliq=vliq/vf #mass of liquid in lbm \n",
+ "mvap=vvap/vg #mass of vapor in lbm\n",
+ "m=mliq+mvap #total mass in lbm\n",
+ "x=mvap*100/m #percentage of vapor on mass basis\n",
+ "print\"hence,% vapor on mass basis is\",round(x,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,% vapor on mass basis is 23.4 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5:pg-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating pressure after heat addition\n",
+ "\n",
+ "v1=0.14922 #specific volume of sautrated ammonia in m^3/kg\n",
+ "print\"Since the volume does not change during the process,the specific volume remains constant.therefore\"\n",
+ "v2=v1 #in m^3/kg\n",
+ "print\"Since vg at 40C is less than v2,it is evident that in the final state the Ammonia is superheated vapor.By interplotation,we find that\"\n",
+ "P2=945 #final pressure in kPa\n",
+ "print\"hence,the final pressure is 945 kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since the volume does not change during the process,the specific volume remains constant.therefore\n",
+ "Since vg at 40C is less than v2,it is evident that in the final state the Ammonia is superheated vapor.By interplotation,we find that\n",
+ "hence,the final pressure is 945 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5E:pg-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating pressure after heat addition\n",
+ "\n",
+ "v1=2.311 #specific volume of sautrated ammonia in ft^3/lbm\n",
+ "print\"Since the volume does not change during the process,the specific volume remains constant.therefore\"\n",
+ "v2=v1 #in ft^3/lbm\n",
+ "print\"Since vg at 120f is less than v2,it is evident that in the final state the Ammonia is superheated vapor.By interplotation,we find that\"\n",
+ "P2=145 #final pressure in lbf/in^2\n",
+ "print\"hence,the final pressure is 145 lbf/in^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since the volume does not change during the process,the specific volume remains constant.therefore\n",
+ "Since vg at 120f is less than v2,it is evident that in the final state the Ammonia is superheated vapor.By interplotation,we find that\n",
+ "hence,the final pressure is 145 lbf/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:pg-61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#Determinig the missing property\n",
+ "\n",
+ "T1=273-53.2 #given temperature in K\n",
+ "P1=600 #given pressure in kPa\n",
+ "print\"This temperature is higher than the critical temperature (critical temp. at P=600 kPa) is 96.37 K.Hence,v=0.10788 m^3/kg\"\n",
+ "T2=100 #given temp. in K\n",
+ "v2=0.008 #given specific volume in m^3/kg\n",
+ "vf=0.001452 #in m^3/kg\n",
+ "vg=0.0312 #in m^3/kg\n",
+ "Psat=779.2 #saturation pressure in kPa\n",
+ "vfg=vg-vf #in m^3/kg\n",
+ "x=(v2-vf)/vfg #quality\n",
+ "print\"\\n hence, the pressure is\",round(Psat,1),\"kPa\"\n",
+ "print\"\\n and quality is\",round(x,4),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This temperature is higher than the critical temperature (critical temp. at P=600 kPa) is 96.37 K.Hence,v=0.10788 m^3/kg\n",
+ "\n",
+ " hence, the pressure is 779.2 kPa\n",
+ "\n",
+ " and quality is 0.2201 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7:pg-62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#determining the pressure of water\n",
+ "\n",
+ "vg=0.12736 #specific volume in m^3/kg for water at 200C\n",
+ "v=0.4 #specific volume in m^3/kg\n",
+ "P1=500 #in kPa\n",
+ "v1=0.42492 #specific volume at P1 in m^3/kg\n",
+ "P2=600 #in kPa\n",
+ "v2=0.35202 #specific volume at P2 in m^3/kg\n",
+ "P=P1+(P2-P1)*(v-v1)/(v2-v1) #calculating pressure by interplotation\n",
+ "print \"hence,the pressure of water is\",round(P,1),\" kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hence,the pressure of water is 534.2 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8:pg-66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#calculating mass of air\n",
+ "\n",
+ "P=100 #pressure in kPa\n",
+ "V=6*10*4 #volume of room in m^3\n",
+ "R=0.287 #in kN-m/kg-K\n",
+ "T=25 #temperature in Celsius\n",
+ "m=P*V/(R*(T+273.1)) #mass of air contained in room\n",
+ "print\"\\n hence, mass of air contained in room is\",round(m,1),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, mass of air contained in room is 280.5 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.9:pg-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#calculating pressure inside tank\n",
+ "\n",
+ "V=0.5 #volumr of tank in m^3\n",
+ "m=10 #mass of ideal gas in kg\n",
+ "T=25 #temperature of tank in Celsius\n",
+ "M=24 #molecular mass of gas in kg/kmol\n",
+ "Ru=8.3145 #universal gas constant in kN-m/kmol-K\n",
+ "R=Ru/M #gas constant for given ideal gas in kN-m/kg-K\n",
+ "P=m*R*(T+273.2)/V #pressure inside tank\n",
+ "print\"\\n hence,pressure inside tank is\",round(P),\"kpa\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,pressure inside tank is 2066.0 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.10:pg-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#mass flow rate\n",
+ "\n",
+ "dt=185 #time period in seconds over which there is incrrease in volume \n",
+ "dV=0.75 #increase in volume in 0.75 in m^3\n",
+ "V=dV/dt #volume flow rate in m^3/s\n",
+ "P=105 #pressure inside gas bell kPa\n",
+ "T=21 #temperature in celsius\n",
+ "R=0.1889 #ideal gas constant in kJ/kg-K\n",
+ "m=P*V/(R*(T+273.15)) #mass flow rate of the flow in kg/s\n",
+ "print\"\\n hence,mass flow rate is\",round(m,5),\"kg/s\"\n",
+ "print\"\\n and volume flow rate is\",round(V,5),\"m^3/s\"\n",
+ "#The answer of volume flow rate in the book is wrong."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,mass flow rate is 0.00766 kg/s\n",
+ "\n",
+ " and volume flow rate is 0.00405 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.12:pg-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12\n",
+ "#determining specific using diffenet laws\n",
+ "\n",
+ "T=100.0 #given temp.in 100 celsius\n",
+ "P=3.0 #given pressure in MPa\n",
+ "v1=0.0065 #specific volume in m^3/kg using table\n",
+ "print\"\\n hence,the specific volume for R-134a using R-134a tables is\",round(v1,3),\"m^3/kg\"\n",
+ "M=102.3 #molecular mass in kg\n",
+ "R=8.3145 #in kJ/K\n",
+ "Ru=R/M #in kJ/K-kg\n",
+ "v2=Ru*(T+273)/(P*1000) #specific volume assuming R-134a to be ideal gas in m^3/kg\n",
+ "print\"\\n hence,the specific volume for R-134a using R-134a the ideal gas laws is\",round(v2,5),\"m^3/kg\"\n",
+ "Tr=373.2/374.2 #reduced temperature using generalized chart\n",
+ "Pr=3.0/4.06 #reduced pressure using generalized chart\n",
+ "Z=0.67 #compressibility factor \n",
+ "v3=Z*v2 # specific volume using generalized chart in m^3/kg\n",
+ "print\"\\n hence,the specific volume for R-134a using the generalized chart is\",round(v3,5),\"m^3/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the specific volume for R-134a using R-134a tables is 0.006 m^3/kg\n",
+ "\n",
+ " hence,the specific volume for R-134a using R-134a the ideal gas laws is 0.01011 m^3/kg\n",
+ "\n",
+ " hence,the specific volume for R-134a using the generalized chart is 0.00677 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.13:pg-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13\n",
+ "#calculating mass of gas\n",
+ "\n",
+ "Pc=4250 #critical pressure of propane in kPa\n",
+ "Tc=369.8 #critical temperature in K\n",
+ "T=15 #temperature of propane in celsius\n",
+ "Tr=T/Tc #reduced temperature\n",
+ "Prsat=0.2 # reduced pressure \n",
+ "P=Prsat*Pc #pressure in kPa\n",
+ "x=0.1 #given quality\n",
+ "Zf=0.035 #from graph\n",
+ "Zg=0.83 #from graph\n",
+ "Z=(1-x)*Zf+x*Zg #overall compressibility factor\n",
+ "V=0.1 #volume of steel bottle in m^3\n",
+ "R=0.1887 #in kPa-m^3/kg-K\n",
+ "m=P*V/(Z*R*(T+273)) #total propane mass in kg\n",
+ "print\"\\n hence,the total propane mass is\",round(m,2),\"kg\"\n",
+ "print\"\\n and pressure is\",round(P,2),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the total propane mass is 13.66 kg\n",
+ "\n",
+ " and pressure is 850.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter4.ipynb b/Fundamentals_Of_Thermodynamics/Chapter4.ipynb
new file mode 100755
index 00000000..eed9d20a
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter4.ipynb
@@ -0,0 +1,198 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:da3557673ab31ece618ad10f5b0d3ef78112ff36bd0b260e508d99211060a1c9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:WORK AND HEAT"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1:PG-96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#work done during different processes\n",
+ "import math\n",
+ "\n",
+ "P1=200 #initial pressure inside cylinder in kPa\n",
+ "V2=0.1 #in m^3\n",
+ "V1=0.04 #initial volume of gas in m^3\n",
+ "\n",
+ "W1=P1*(V2-V1) #work done in isobaric process in kJ\n",
+ "print\"\\n hence,the work done during the isobaric process is\",round(W1,2),\"kJ. \\n\"\n",
+ "\n",
+ "W2=P1*V1*math.log(V2/V1) #work done in isothermal process in kJ\n",
+ "print\"\\n hence,the work done in isothermal process is\",round(W2,2),\"kJ. \\n\"\n",
+ "\n",
+ "P2=P1*(V1/V2)**(1.3) #final pressure according to the given process\n",
+ "W3=(P2*V2-P1*V1)/(1-1.3)\n",
+ "print\"\\n hence,the work done during the described process is\",round(W3,2),\"kJ. \\n\"\n",
+ "\n",
+ "W4=0 #work done in isochoric process\n",
+ "print\"\\n hence,the work done in the isochoric process is\",round(W4,3),\"kJ. \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the work done during the isobaric process is 12.0 kJ. \n",
+ "\n",
+ "\n",
+ " hence,the work done in isothermal process is 7.33 kJ. \n",
+ "\n",
+ "\n",
+ " hence,the work done during the described process is 6.41 kJ. \n",
+ "\n",
+ "\n",
+ " hence,the work done in the isochoric process is 0.0 kJ. \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3:PG-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "\n",
+ "#work produced\n",
+ "\n",
+ "Psat=190.2 #in kPa\n",
+ "P1=Psat #saturation pressure in state 1\n",
+ "vf=0.001504 #in m^3/kg\n",
+ "vfg=0.62184 #in m^3/kg\n",
+ "x1=0.25 #quality\n",
+ "v1=vf+x1*vfg #specific volume at state 1 in m^3/kg\n",
+ "v2=1.41*v1 #specific volume at state 2 in m^3/kg\n",
+ "P2=600 #pressure in state 2 in kPa from Table B.2.2\n",
+ "m=0.5 #mass of ammonia in kg\n",
+ "W=m*(P1+P2)*(v2-v1)/2 #woork produced by ammonia in kJ\n",
+ "print \"The final pressure is\",round(P2),\"kPa\\n\"\n",
+ "print \"hence,work produced by ammonia is\",round(W,2),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final pressure is 600.0 kPa\n",
+ "\n",
+ "hence,work produced by ammonia is 12.71 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4:PG-100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "\n",
+ "#calculating work done\n",
+ "\n",
+ "v1=0.35411 #specific volume at state 1 in m^3/kg\n",
+ "v2=v1/2 \n",
+ "m=0.1 #mass of water in kg\n",
+ "P1=1000 #pressure inside cylinder in kPa\n",
+ "W=m*P1*(v2-v1) #in kJ\n",
+ "print \"the work in the overall process is\",round(W,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the work in the overall process is -17.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.7:PG-108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#heat transfer\n",
+ "k=1.4 #conductivity of glass pane in W/m-K\n",
+ "A=0.5 #total surface area of glass pane\n",
+ "dx=0.005 #thickness of glasspane in m\n",
+ "dT1=20-12.1 #temperature difference between room air and outer glass surface temperature in celsius\n",
+ "Q=-k*A*dT1/dx #conduction through glass slab in W\n",
+ "h=100 #convective heat transfer coefficient in W/m^2-K \n",
+ "dT=12.1-(-10) #temperature difference between warm room and colder ambient in celsius\n",
+ "Q2=h*A*dT #heat transfer in convective layer in W\n",
+ "#result\n",
+ "print \"the rate of heat transfer in the glass and convective layer is\",round(Q2),\"kW.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of heat transfer in the glass and convective layer is 1105.0 kW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter4_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter4_6.ipynb
new file mode 100755
index 00000000..eed9d20a
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter4_6.ipynb
@@ -0,0 +1,198 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:da3557673ab31ece618ad10f5b0d3ef78112ff36bd0b260e508d99211060a1c9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:WORK AND HEAT"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1:PG-96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#work done during different processes\n",
+ "import math\n",
+ "\n",
+ "P1=200 #initial pressure inside cylinder in kPa\n",
+ "V2=0.1 #in m^3\n",
+ "V1=0.04 #initial volume of gas in m^3\n",
+ "\n",
+ "W1=P1*(V2-V1) #work done in isobaric process in kJ\n",
+ "print\"\\n hence,the work done during the isobaric process is\",round(W1,2),\"kJ. \\n\"\n",
+ "\n",
+ "W2=P1*V1*math.log(V2/V1) #work done in isothermal process in kJ\n",
+ "print\"\\n hence,the work done in isothermal process is\",round(W2,2),\"kJ. \\n\"\n",
+ "\n",
+ "P2=P1*(V1/V2)**(1.3) #final pressure according to the given process\n",
+ "W3=(P2*V2-P1*V1)/(1-1.3)\n",
+ "print\"\\n hence,the work done during the described process is\",round(W3,2),\"kJ. \\n\"\n",
+ "\n",
+ "W4=0 #work done in isochoric process\n",
+ "print\"\\n hence,the work done in the isochoric process is\",round(W4,3),\"kJ. \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the work done during the isobaric process is 12.0 kJ. \n",
+ "\n",
+ "\n",
+ " hence,the work done in isothermal process is 7.33 kJ. \n",
+ "\n",
+ "\n",
+ " hence,the work done during the described process is 6.41 kJ. \n",
+ "\n",
+ "\n",
+ " hence,the work done in the isochoric process is 0.0 kJ. \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3:PG-99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "\n",
+ "#work produced\n",
+ "\n",
+ "Psat=190.2 #in kPa\n",
+ "P1=Psat #saturation pressure in state 1\n",
+ "vf=0.001504 #in m^3/kg\n",
+ "vfg=0.62184 #in m^3/kg\n",
+ "x1=0.25 #quality\n",
+ "v1=vf+x1*vfg #specific volume at state 1 in m^3/kg\n",
+ "v2=1.41*v1 #specific volume at state 2 in m^3/kg\n",
+ "P2=600 #pressure in state 2 in kPa from Table B.2.2\n",
+ "m=0.5 #mass of ammonia in kg\n",
+ "W=m*(P1+P2)*(v2-v1)/2 #woork produced by ammonia in kJ\n",
+ "print \"The final pressure is\",round(P2),\"kPa\\n\"\n",
+ "print \"hence,work produced by ammonia is\",round(W,2),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final pressure is 600.0 kPa\n",
+ "\n",
+ "hence,work produced by ammonia is 12.71 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4:PG-100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "\n",
+ "#calculating work done\n",
+ "\n",
+ "v1=0.35411 #specific volume at state 1 in m^3/kg\n",
+ "v2=v1/2 \n",
+ "m=0.1 #mass of water in kg\n",
+ "P1=1000 #pressure inside cylinder in kPa\n",
+ "W=m*P1*(v2-v1) #in kJ\n",
+ "print \"the work in the overall process is\",round(W,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the work in the overall process is -17.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.7:PG-108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#heat transfer\n",
+ "k=1.4 #conductivity of glass pane in W/m-K\n",
+ "A=0.5 #total surface area of glass pane\n",
+ "dx=0.005 #thickness of glasspane in m\n",
+ "dT1=20-12.1 #temperature difference between room air and outer glass surface temperature in celsius\n",
+ "Q=-k*A*dT1/dx #conduction through glass slab in W\n",
+ "h=100 #convective heat transfer coefficient in W/m^2-K \n",
+ "dT=12.1-(-10) #temperature difference between warm room and colder ambient in celsius\n",
+ "Q2=h*A*dT #heat transfer in convective layer in W\n",
+ "#result\n",
+ "print \"the rate of heat transfer in the glass and convective layer is\",round(Q2),\"kW.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of heat transfer in the glass and convective layer is 1105.0 kW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter5.ipynb b/Fundamentals_Of_Thermodynamics/Chapter5.ipynb
new file mode 100755
index 00000000..24351fdb
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter5.ipynb
@@ -0,0 +1,469 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8e29dcea16eab605fcf93b95197200be339c1be6076d5413e7d70418a9a6df29"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5:THE FIRST LAW OF THERMODYNAMICS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1:pg-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#calculating height\n",
+ "\n",
+ "m=1100 #mass of car in kg\n",
+ "ke=400 #kinetic energy of car in kJ\n",
+ "V=(2*ke*1000/m)**0.5 #velocity of car in m/s\n",
+ "g=9.807 #acc. due to gravity in m/s^2\n",
+ "H=ke*1000/(m*g) #height to which the car should be lifted so that its potential energy equals its kinetic energy\n",
+ "print\"hence,the car should be raised to a height is\",round(H,1),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,the car should be raised to a height is 37.1 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.2:pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#change in internal energy\n",
+ "\n",
+ "W=-5090 #work input to paddle wheel in kJ\n",
+ "Q=-1500 #heat transfer from tank in kJ\n",
+ "dU=Q-W #change in internal energy in kJ\n",
+ "print\"hence,change in internal energy is\",round(dU),\"kj\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,change in internal energy is 3590.0 kj\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3:pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#analysis of energy transfer\n",
+ "\n",
+ "g=9.806 #acceleration due to gravity in m/s^2\n",
+ "m=10 #mass of stone in kg\n",
+ "H1=10.2 #initial height of stone above water in metres\n",
+ "H2=0 #final height in metres\n",
+ "dKE1=-m*g*(H2-H1) #change in kinetic energy when stone enters state 2 in J\n",
+ "dPE1=-1 #change in potential energy when stone enters state 2 in J\n",
+ "print\"\\n hence,when stone is \",round(dKE1),\"J\"\n",
+ "print\"\\n and change in potential energy is \",round(dPE1),\"J\"\n",
+ "dPE2=0 #change in potential energy when stone enters state 3 in JQ2=0 //no heat transfer when stone enters state 3 in J\n",
+ "W2=0 #no work done when stone enters state 3 in J\n",
+ "dKE2=-1 #change in kinetic energy when stone enters state 3\n",
+ "dU2=-dKE2 #change in internal energy when stone enters state 3 in J\n",
+ "print\"\\n hence,when stone has just come to rest in the bucket is \",round(dKE2),\"J\" \n",
+ "print\"\\n and dU is\",round(dU2),\"J\" \n",
+ "dKE3=0 #change in kinetic energy when stone enters state 4\n",
+ "dPE=0 #change in potential energy when stone enters state 4 in J\n",
+ "W3=0 #no work done when stone enters state 4 in J\n",
+ "dU3=-1 #change in internal energy when stone enters state 4 in J\n",
+ "Q3=dU3 #heat transfer when stone enters state 4 in J\n",
+ "print\"\\n hence,when stone has entered state 4 is\",round(dU3),\"J\" \n",
+ "print\"\\n and Q3 is \",round(Q3),\"J\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,when stone is 1000.0 J\n",
+ "\n",
+ " and change in potential energy is -1.0 J\n",
+ "\n",
+ " hence,when stone has just come to rest in the bucket is -1.0 J\n",
+ "\n",
+ " and dU is 1.0 J\n",
+ "\n",
+ " hence,when stone has entered state 4 is -1.0 J\n",
+ "\n",
+ " and Q3 is -1.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4:pg-136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#Determinig the missing properties \n",
+ "\n",
+ "T1=300 #given temp. in Celsius\n",
+ "u1=2780 #given specific internal enrgy in kJ/kg\n",
+ "print\"From steam table, at T=300 C,ug=2563.0 kJ/kg.So,u1>ug ,it means the state is in the superheated vapor region.So, by interplotation,we find P=1648 kPa and v=0.1542 m^3/kg\" #hiven pressure in kPa\n",
+ "u2=2000 #given specific intrernal energy in kJ/kg\n",
+ "print\"at P=2000 kPa\"\n",
+ "uf=906.4 #in kJ/kg\n",
+ "ug=2600.3 #in kJ/kg \n",
+ "x2=(u2-906.4)/(ug-uf) \n",
+ "print\"Also, under the given conditions\"\n",
+ "vf=0.001177 #in m^3/kg \n",
+ "vg=0.099627 #in m^3/kg\n",
+ "v2=vf+x2*(vg-vf)#Specific volume for water in m^3/kg\n",
+ "print\"\\n hence,specific volume for water is \",round(v2,5),\"m^3/kg\" \n",
+ "print\"\\n Therefore ,this state is \",round(x2,4),\"N\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table, at T=300 C,ug=2563.0 kJ/kg.So,u1>ug ,it means the state is in the superheated vapor region.So, by interplotation,we find P=1648 kPa and v=0.1542 m^3/kg\n",
+ "at P=2000 kPa\n",
+ "Also, under the given conditions\n",
+ "\n",
+ " hence,specific volume for water is 0.06474 m^3/kg\n",
+ "\n",
+ " Therefore ,this state is 0.6456 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5:pg-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating heat transfer for the given process\n",
+ "\n",
+ "Vliq=0.05 #volume of saturated liquid in m^3\n",
+ "vf=0.001043 #in m^3/kg\n",
+ "Vvap=4.95 #volume of saturated water vapour in m^3\n",
+ "vg=1.6940 #in m^3/kg\n",
+ "m1liq=Vliq/vf #mass of liquid in kg\n",
+ "m1liq=round(m1liq,2)\n",
+ "m1vap=Vvap/vg #mass of vapors in kg\n",
+ "m1vap=round(m1vap,2)\n",
+ "u1liq=417.36 #specific internal energy of liquid in kJ/kg\n",
+ "u1vap=2506.1 #specific internal energy of vapors in kJ/kg\n",
+ "U1=m1liq*u1liq + m1vap*u1vap #total internal energy in kJ\n",
+ "m=m1liq+m1vap #total mass in kg\n",
+ "V=5.0 #total volume in m^3\n",
+ "v2=V/m #final specific volume in m^3/kg\n",
+ "print\"by interplotation we find that for steam, if vg=0.09831 m^3/kg then pressure is 2.03 Mpa\"\n",
+ "u2=2600.5 #specific internal energy at final state in kJ/kg\n",
+ "U2=m*u2 #internal energy at final state in kJ\n",
+ "Q=U2-U1 #heat transfer for the process in kJ\n",
+ "print\"\\n hence,heat transfer for the process is\",round(Q),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "by interplotation we find that for steam, if vg=0.09831 m^3/kg then pressure is 2.03 Mpa\n",
+ "\n",
+ " hence,heat transfer for the process is 104935.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.6:pg-143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#calculating work and heat transfer for the process\n",
+ "\n",
+ "V1=0.1 #volume of cylinder in m^3\n",
+ "m=0.5 #mass of steam in kg\n",
+ "v1=V1/m #specific volume of steam in m^3/kg\n",
+ "vf=0.001084 #m^3/kg\n",
+ "vfg=0.4614 #m^3/kg\n",
+ "x1=(v1-vf)/vfg #quality\n",
+ "hf=604.74 #kJ/kg\n",
+ "hfg=2133.8#kJ/kg\n",
+ "h2=3066.8 #final specific heat enthalpy in kJ/kg\n",
+ "h1=hf+x1*hfg #initial specific enthalpy in kJ/kg\n",
+ "Q=m*(h2-h1) #heat transfer for this process in kJ\n",
+ "P=400 #pressure inside cylinder in kPa\n",
+ "v2=0.6548 #specific enthalpy in m^3/kg\n",
+ "W=m*P*(v2-v1) #work done for the process in kJ\n",
+ "print\"\\n hence, work done for the process is\",round(W),\"kJ\" \n",
+ "print\"\\n and heat transfer is \",round(Q,1),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, work done for the process is 91.0 kJ\n",
+ "\n",
+ " and heat transfer is 771.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.8:pg-151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#calculating change in enthalpy\n",
+ "import math\n",
+ "\n",
+ "h1=273.2 #specific heat enthalpy for oxygen at 300 K\n",
+ "h2=1540.2 #specific heat enthalpy for oxygen at 1500 K\n",
+ "T1=300 #initial temperature in K\n",
+ "T2=1500 #final temparature in K\n",
+ "\n",
+ "dh1=h2-h1 #this change in specific heat enthalpy is calculated using ideal gas tables \n",
+ "dh3=0.922*(T2-T1) #it is claculated if we assume specific heat enthalpy to be constant and uses its value at 300K\n",
+ "dh4=1.0767*(T2-T1) #it is claculated if we assume specific heat enthalpy to be constant and uses its value at 900K i.e mean of initial and final temperature\n",
+ "print\"\\n Hence,change in specific heat enthalpy if ideal gas tables are used is \",round(dh1,1),\"kJ/kg\"\n",
+ "print\"\\n if specific heat is assumed to be constant and using its value at T1 is\",round(dh3,1),\"kJ/kg\"\n",
+ "print\"\\n if specific heat is assumed to be constant at its value at (T1+T2)/2 is\",round(dh4,1),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence,change in specific heat enthalpy if ideal gas tables are used is 1267.0 kJ/kg\n",
+ "\n",
+ " if specific heat is assumed to be constant and using its value at T1 is 1106.4 kJ/kg\n",
+ "\n",
+ " if specific heat is assumed to be constant at its value at (T1+T2)/2 is 1292.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.9:pg-152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#determining amount of heat transfer\n",
+ "\n",
+ "P=150 #pressure of nitrogen in cylinder in kPa\n",
+ "V=0.1 #initial volume of cylinder in m^3\n",
+ "T1=25 #initial temperature of nitrogen in celsius\n",
+ "T2=150 #final tempareture of nitrogen in celsius\n",
+ "R=0.2968 #in kJ/kg-K\n",
+ "m=P*V/(R*(T1+273)) #mass of nitrogen in kg\n",
+ "Cv=0.745 #constant volume specific heat for nitrogen in kJ/kg-K\n",
+ "W=-20 #work done on nitrogen gas in kJ\n",
+ "Q=m*Cv*(T2-T1)+W #heat transfer during the process in kJ\n",
+ "print\"\\n hence,the heat transfer for the above process is\",round(Q,1),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the heat transfer for the above process is -4.2 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.10:pg-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#calculating rate of increase of internal energy\n",
+ "\n",
+ "W=-12.8*20 #power consumed in J/s\n",
+ "Q=-10 #heat transfer rate from battery in J/s\n",
+ "r=Q-W #rate of increase of internal energy\n",
+ "print\"\\n hence,the rate of increase of internal energy is\",round(r),\"J/s\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the rate of increase of internal energy is 246.0 J/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.11:pg-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11\n",
+ "#rate of change of temperature\n",
+ "\n",
+ "Q=1500.0 #power produced by burning wood in J/s\n",
+ "mair=1 #mass of air in kg\n",
+ "mwood=5 #mass of soft pine wood in kg \n",
+ "miron=25 #mass of cast iron in kg\n",
+ "Cvair=0.717 #constant volume specific heat for air in kJ/kg\n",
+ "Cwood=1.38 #constant volume specific heat for wood in kJ/kg\n",
+ "Ciron=0.42 #constant volume specific heat for iron in kJ/kg\n",
+ "dT=75-20 #increase in temperature in Celsius\n",
+ "T=(Q/1000)/(mair*Cvair+mwood*Cwood+miron*Ciron) #rate of change of temperature in K/s\n",
+ "dt=(dT/T)/60 #in minutes\n",
+ "print\" hence,the rate of change of temperature is\",round(T,4),\"k/s\" \n",
+ "print\" and time taken to reach a temperature of T is\",round(dt),\"min\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hence,the rate of change of temperature is 0.0828 k/s\n",
+ " and time taken to reach a temperature of T is 11.0 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter5_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter5_6.ipynb
new file mode 100755
index 00000000..5a9734bc
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter5_6.ipynb
@@ -0,0 +1,635 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bc9fbdf4ecee4bce9770355a576adf487ef4df6d34bad14ada42e8383ea01d91"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5:THE FIRST LAW OF THERMODYNAMICS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1:pg-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#calculating height\n",
+ "\n",
+ "m=1100 #mass of car in kg\n",
+ "ke=400 #kinetic energy of car in kJ\n",
+ "V=(2*ke*1000/m)**0.5 #velocity of car in m/s\n",
+ "g=9.807 #acc. due to gravity in m/s^2\n",
+ "H=ke*1000/(m*g) #height to which the car should be lifted so that its potential energy equals its kinetic energy\n",
+ "print\"hence,the car should be raised to a height is\",round(H,1),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,the car should be raised to a height is 37.1 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1E:pg-132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1E\n",
+ "#calculating height\n",
+ "\n",
+ "m=2400 #mass of car in lbm\n",
+ "ke=400 #kinetic energy of car in Btu\n",
+ "V=(2*ke*778.17*32.174/m)**0.5 #velocity of car in ft/s\n",
+ "g=32.174 #acc. due to gravity in ft/s^2\n",
+ "H=ke*778.17*32.174/(m*g) #height to which the car should be lifted so that its potential energy equals its kinetic energy\n",
+ "print\"hence,the car should be raised to a height is\",round(H,1),\"ft\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,the car should be raised to a height is 129.7 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.2:pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#change in internal energy\n",
+ "\n",
+ "W=-5090 #work input to paddle wheel in kJ\n",
+ "Q=-1500 #heat transfer from tank in kJ\n",
+ "dU=Q-W #change in internal energy in kJ\n",
+ "print\"hence,change in internal energy is\",round(dU),\"kj\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hence,change in internal energy is 3590.0 kj\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3:pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#analysis of energy transfer\n",
+ "\n",
+ "g=9.806 #acceleration due to gravity in m/s^2\n",
+ "m=10 #mass of stone in kg\n",
+ "H1=10.2 #initial height of stone above water in metres\n",
+ "H2=0 #final height in metres\n",
+ "dKE1=-m*g*(H2-H1) #change in kinetic energy when stone enters state 2 in J\n",
+ "dPE1=-1 #change in potential energy when stone enters state 2 in J\n",
+ "print\"\\n hence,when stone is \",round(dKE1),\"J\"\n",
+ "print\"\\n and change in potential energy is \",round(dPE1),\"J\"\n",
+ "dPE2=0 #change in potential energy when stone enters state 3 in JQ2=0 //no heat transfer when stone enters state 3 in J\n",
+ "W2=0 #no work done when stone enters state 3 in J\n",
+ "dKE2=-1 #change in kinetic energy when stone enters state 3\n",
+ "dU2=-dKE2 #change in internal energy when stone enters state 3 in J\n",
+ "print\"\\n hence,when stone has just come to rest in the bucket is \",round(dKE2),\"J\" \n",
+ "print\"\\n and dU is\",round(dU2),\"J\" \n",
+ "dKE3=0 #change in kinetic energy when stone enters state 4\n",
+ "dPE=0 #change in potential energy when stone enters state 4 in J\n",
+ "W3=0 #no work done when stone enters state 4 in J\n",
+ "dU3=-1 #change in internal energy when stone enters state 4 in J\n",
+ "Q3=dU3 #heat transfer when stone enters state 4 in J\n",
+ "print\"\\n hence,when stone has entered state 4 is\",round(dU3),\"J\" \n",
+ "print\"\\n and Q3 is \",round(Q3),\"J\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,when stone is 1000.0 J\n",
+ "\n",
+ " and change in potential energy is -1.0 J\n",
+ "\n",
+ " hence,when stone has just come to rest in the bucket is -1.0 J\n",
+ "\n",
+ " and dU is 1.0 J\n",
+ "\n",
+ " hence,when stone has entered state 4 is -1.0 J\n",
+ "\n",
+ " and Q3 is -1.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4:pg-136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#Determinig the missing properties \n",
+ "\n",
+ "T1=300 #given temp. in Celsius\n",
+ "u1=2780 #given specific internal enrgy in kJ/kg\n",
+ "print\"From steam table, at T=300 C,ug=2563.0 kJ/kg.So,u1>ug ,it means the state is in the superheated vapor region.So, by interplotation,we find P=1648 kPa and v=0.1542 m^3/kg\" #hiven pressure in kPa\n",
+ "u2=2000 #given specific intrernal energy in kJ/kg\n",
+ "print\"at P=2000 kPa\"\n",
+ "uf=906.4 #in kJ/kg\n",
+ "ug=2600.3 #in kJ/kg \n",
+ "x2=(u2-906.4)/(ug-uf) \n",
+ "print\"Also, under the given conditions\"\n",
+ "vf=0.001177 #in m^3/kg \n",
+ "vg=0.099627 #in m^3/kg\n",
+ "v2=vf+x2*(vg-vf)#Specific volume for water in m^3/kg\n",
+ "print\"\\n hence,specific volume for water is \",round(v2,5),\"m^3/kg\" \n",
+ "print\"\\n Therefore ,this state is \",round(x2,4),\"N\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table, at T=300 C,ug=2563.0 kJ/kg.So,u1>ug ,it means the state is in the superheated vapor region.So, by interplotation,we find P=1648 kPa and v=0.1542 m^3/kg\n",
+ "at P=2000 kPa\n",
+ "Also, under the given conditions\n",
+ "\n",
+ " hence,specific volume for water is 0.06474 m^3/kg\n",
+ "\n",
+ " Therefore ,this state is 0.6456 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5:pg-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating heat transfer for the given process\n",
+ "\n",
+ "Vliq=0.05 #volume of saturated liquid in m^3\n",
+ "vf=0.001043 #in m^3/kg\n",
+ "Vvap=4.95 #volume of saturated water vapour in m^3\n",
+ "vg=1.6940 #in m^3/kg\n",
+ "m1liq=Vliq/vf #mass of liquid in kg\n",
+ "m1liq=round(m1liq,2)\n",
+ "m1vap=Vvap/vg #mass of vapors in kg\n",
+ "m1vap=round(m1vap,2)\n",
+ "u1liq=417.36 #specific internal energy of liquid in kJ/kg\n",
+ "u1vap=2506.1 #specific internal energy of vapors in kJ/kg\n",
+ "U1=m1liq*u1liq + m1vap*u1vap #total internal energy in kJ\n",
+ "m=m1liq+m1vap #total mass in kg\n",
+ "V=5.0 #total volume in m^3\n",
+ "v2=V/m #final specific volume in m^3/kg\n",
+ "print\"by interplotation we find that for steam, if vg=0.09831 m^3/kg then pressure is 2.03 Mpa\"\n",
+ "u2=2600.5 #specific internal energy at final state in kJ/kg\n",
+ "U2=m*u2 #internal energy at final state in kJ\n",
+ "Q=U2-U1 #heat transfer for the process in kJ\n",
+ "print\"\\n hence,heat transfer for the process is\",round(Q),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "by interplotation we find that for steam, if vg=0.09831 m^3/kg then pressure is 2.03 Mpa\n",
+ "\n",
+ " hence,heat transfer for the process is 104935.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5E:pg-140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5E\n",
+ "#calculating heat transfer for the given process\n",
+ "\n",
+ "Vliq=1 #volume of saturated liquid in ft^3\n",
+ "vf=0.01672 #in ft^3/lbm\n",
+ "Vvap=99 #volume of saturated water vapour in m^3\n",
+ "vg=26.80 #in ft^3/lbm\n",
+ "m1liq=Vliq/vf #mass of liquid in lbm\n",
+ "m1liq=round(m1liq,2)\n",
+ "m1vap=Vvap/vg #mass of vapors in lbm\n",
+ "m1vap=round(m1vap,2)\n",
+ "u1liq=180.1 #specific internal energy of liquid in Btu/lbm\n",
+ "u1vap=1077.6 #specific internal energy of vapors in Btu/lbm\n",
+ "U1=m1liq*u1liq + m1vap*u1vap #total internal energy in Btu\n",
+ "U1=round(U1)\n",
+ "m=m1liq+m1vap #total mass in lbm\n",
+ "V=100.0 #total volume in ft^3\n",
+ "v2=V/m #final specific volume in ft^3/lbm\n",
+ "print\"by interplotation we find that for steam, if vg=1.575 ft^3/lbm then pressure is 294 lbf/in^2\"\n",
+ "u2=1117.0 #specific internal energy at final state in Btu/lbm\n",
+ "U2=m*u2 #internal energy at final state in Btu\n",
+ "U2=round(U2)\n",
+ "Q=U2-U1 #heat transfer for the process in Btu\n",
+ "print\"\\n hence,heat transfer for the process is\",round(Q),\"Btu\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "by interplotation we find that for steam, if vg=1.575 ft^3/lbm then pressure is 294 lbf/in^2\n",
+ "\n",
+ " hence,heat transfer for the process is 56182.0 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.6:pg-143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#calculating work and heat transfer for the process\n",
+ "\n",
+ "V1=0.1 #volume of cylinder in m^3\n",
+ "m=0.5 #mass of steam in kg\n",
+ "v1=V1/m #specific volume of steam in m^3/kg\n",
+ "vf=0.001084 #m^3/kg\n",
+ "vfg=0.4614 #m^3/kg\n",
+ "x1=(v1-vf)/vfg #quality\n",
+ "hf=604.74 #kJ/kg\n",
+ "hfg=2133.8#kJ/kg\n",
+ "h2=3066.8 #final specific heat enthalpy in kJ/kg\n",
+ "h1=hf+x1*hfg #initial specific enthalpy in kJ/kg\n",
+ "Q=m*(h2-h1) #heat transfer for this process in kJ\n",
+ "P=400 #pressure inside cylinder in kPa\n",
+ "v2=0.6548 #specific enthalpy in m^3/kg\n",
+ "W=m*P*(v2-v1) #work done for the process in kJ\n",
+ "print\"\\n hence, work done for the process is\",round(W),\"kJ\" \n",
+ "print\"\\n and heat transfer is \",round(Q,1),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, work done for the process is 91.0 kJ\n",
+ "\n",
+ " and heat transfer is 771.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.7:pg-144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# example 7\n",
+ "#calculating work and heat transfer for the process\n",
+ "V1=0.010 #volume of cylinder in m^3\n",
+ "V2=0.040 # m^3\n",
+ "P1=573 #kPa\n",
+ "v1=0.03606 #specific volume of steam in m^3/kg\n",
+ "u1=389.2 #kJ/kg\n",
+ "m=V1/v1#mass of steam in kg\n",
+ "v2=v1*(V2/V1)\n",
+ "P2=163 #kPa\n",
+ "u2=395.8 # kJ/kg\n",
+ "W=8 # kJ\n",
+ "Q2=m*(u2-u1)+W\n",
+ "u3=383.4#kJ/kg\n",
+ "W2=m*(u1-u3)#kJ\n",
+ "print\"\\n and heat transfer is \",round(Q2,2),\"kJ\" \n",
+ "print\"\\n hence, work done for the process is\",round(W2,1),\"kJ\" \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " and heat transfer is 9.83 kJ\n",
+ "\n",
+ " hence, work done for the process is 1.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.8:pg-151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#calculating change in enthalpy\n",
+ "import math\n",
+ "\n",
+ "h1=273.2 #specific heat enthalpy for oxygen at 300 K\n",
+ "h2=1540.2 #specific heat enthalpy for oxygen at 1500 K\n",
+ "T1=300 #initial temperature in K\n",
+ "T2=1500 #final temparature in K\n",
+ "\n",
+ "dh1=h2-h1 #this change in specific heat enthalpy is calculated using ideal gas tables \n",
+ "dh3=0.922*(T2-T1) #it is claculated if we assume specific heat enthalpy to be constant and uses its value at 300K\n",
+ "dh4=1.0767*(T2-T1) #it is claculated if we assume specific heat enthalpy to be constant and uses its value at 900K i.e mean of initial and final temperature\n",
+ "print\"\\n Hence,change in specific heat enthalpy if ideal gas tables are used is \",round(dh1,1),\"kJ/kg\"\n",
+ "print\"\\n if specific heat is assumed to be constant and using its value at T1 is\",round(dh3,1),\"kJ/kg\"\n",
+ "print\"\\n if specific heat is assumed to be constant at its value at (T1+T2)/2 is\",round(dh4,1),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence,change in specific heat enthalpy if ideal gas tables are used is 1267.0 kJ/kg\n",
+ "\n",
+ " if specific heat is assumed to be constant and using its value at T1 is 1106.4 kJ/kg\n",
+ "\n",
+ " if specific heat is assumed to be constant at its value at (T1+T2)/2 is 1292.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.9:pg-152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#determining amount of heat transfer\n",
+ "\n",
+ "P=150 #pressure of nitrogen in cylinder in kPa\n",
+ "V=0.1 #initial volume of cylinder in m^3\n",
+ "T1=25 #initial temperature of nitrogen in celsius\n",
+ "T2=150 #final tempareture of nitrogen in celsius\n",
+ "R=0.2968 #in kJ/kg-K\n",
+ "m=P*V/(R*(T1+273)) #mass of nitrogen in kg\n",
+ "Cv=0.745 #constant volume specific heat for nitrogen in kJ/kg-K\n",
+ "W=-20 #work done on nitrogen gas in kJ\n",
+ "Q=m*Cv*(T2-T1)+W #heat transfer during the process in kJ\n",
+ "print\"\\n hence,the heat transfer for the above process is\",round(Q,1),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the heat transfer for the above process is -4.2 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.9E:pg-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9E\n",
+ "#determining amount of heat transfer\n",
+ "\n",
+ "P=20 #pressure of nitrogen in cylinder in lbf/in^2\n",
+ "V=2 #initial volume of cylinder in ft^3\n",
+ "T1=80 #initial temperature of nitrogen in F\n",
+ "T2=300 #final tempareture of nitrogen in F\n",
+ "R=55.15 #in ft*lbf/lbm-R\n",
+ "m=P*V*144/(R*(540)) #mass of nitrogen in lbm\n",
+ "Cv=0.177 #constant volume specific heat for nitrogen in Btu/lbm-R\n",
+ "W=-9.15 #work done on nitrogen gas in Btu\n",
+ "Q=m*Cv*(T2-T1)+W #heat transfer during the process in Btu\n",
+ "print\"\\n hence,the heat transfer for the above process is\",round(Q,2),\"Btu\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the heat transfer for the above process is -1.62 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.10:pg-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#calculating rate of increase of internal energy\n",
+ "\n",
+ "W=-12.8*20 #power consumed in J/s\n",
+ "Q=-10 #heat transfer rate from battery in J/s\n",
+ "r=Q-W #rate of increase of internal energy\n",
+ "print\"\\n hence,the rate of increase of internal energy is\",round(r),\"J/s\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the rate of increase of internal energy is 246.0 J/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.11:pg-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11\n",
+ "#rate of change of temperature\n",
+ "\n",
+ "Q=1500.0 #power produced by burning wood in J/s\n",
+ "mair=1 #mass of air in kg\n",
+ "mwood=5 #mass of soft pine wood in kg \n",
+ "miron=25 #mass of cast iron in kg\n",
+ "Cvair=0.717 #constant volume specific heat for air in kJ/kg\n",
+ "Cwood=1.38 #constant volume specific heat for wood in kJ/kg\n",
+ "Ciron=0.42 #constant volume specific heat for iron in kJ/kg\n",
+ "dT=75-20 #increase in temperature in Celsius\n",
+ "T=(Q/1000)/(mair*Cvair+mwood*Cwood+miron*Ciron) #rate of change of temperature in K/s\n",
+ "dt=(dT/T)/60 #in minutes\n",
+ "print\" hence,the rate of change of temperature is\",round(T,4),\"k/s\" \n",
+ "print\" and time taken to reach a temperature of T is\",round(dt),\"min\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hence,the rate of change of temperature is 0.0828 k/s\n",
+ " and time taken to reach a temperature of T is 11.0 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter6.ipynb
new file mode 100755
index 00000000..2548c7ee
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter6.ipynb
@@ -0,0 +1,566 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:084379625b3dc39247a3be2201f659a82e58d8004d66338e0ef15cb00bca073d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6:FIRST-LAW ANALYSIS FOR A CONTROL VOLUME"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1:pg-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#calculating mass flow rate in kg/s\n",
+ "import math\n",
+ "R=0.287 #in kJ/kg-K\n",
+ "T=25 #temperature in celsius\n",
+ "P=150 #pressure in kPa\n",
+ "v=R*(T+273.15)/P #specific volume in m^3/kg\n",
+ "D=0.2 #diameter of pipe in metre\n",
+ "A=math.pi*D**2/4 #cross sectional area in m^2\n",
+ "V=0.1 #velocity of air in m/s\n",
+ "m=V*A/v #mass flow rate in kg/s\n",
+ "print\"\\n hence,the mass flow rate is\",round(m,4),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the mass flow rate is 0.0055 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2:pg-184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#work done for adding the fluid\n",
+ "\n",
+ "P=600 #pressure in kPa\n",
+ "m=1 #in kg\n",
+ "v=0.001 #specific volume in m^3/kg\n",
+ "W=P*m*v #necessary work in kJ for adding the fluid \n",
+ "print\" \\n hence,the work involved in this process is\",round(W,4),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,the work involved in this process is 0.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3:pg-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#rate of flow of water\n",
+ "\n",
+ "hir=441.89 #in kJ/kg for refrigerant using steam table \n",
+ "her=249.10 #in kJ/kg for refrigerant using steam table\n",
+ "hiw=42 #in kJ/kg for water using steam table\n",
+ "hew=83.95 #in kJ/kg for water using steam table\n",
+ "mr=0.2 #the rate at which refrigerant enters the condenser in kg/s\n",
+ "mw=mr*(hir-her)/(hew-hiw) #rate of flow of water in kg/s\n",
+ "print\"\\n hence,the rate at which cooling water flows thorugh the condenser is\",round(mw,3),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the rate at which cooling water flows thorugh the condenser is 0.919 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4:pg-190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#determining quality of steam\n",
+ "\n",
+ "hi=2850.1 #initial specific heat enthalpy for steam in kJ/kg\n",
+ "Vi=50 #initial velocity of steam in m/s\n",
+ "Ve=600 #final velocity of steam in m/s\n",
+ "he=hi+Vi**2/(2*1000)-Ve**2/(2*1000) #final specific heat enthalpy for steam in kJ/kg\n",
+ "hf=467.1 #at final state in kJ/kg\n",
+ "hfg=2226.5 #at final state in kJ/kg\n",
+ "xe=(he-hf)/hfg #quality of steam in final state\n",
+ "print\" \\n hence, the quality is\",round(xe,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence, the quality is 0.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5:pg-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#quality of ammonia leaving expansion valve\n",
+ "\n",
+ "hi=346.8 #specific heat enthalpy for ammonia at initial state in kJ/kg\n",
+ "he=hi #specific heat enthalpy for ammonia at final state will be equal that at initial state because it is a throttling process\n",
+ "hf=134.4 #at final state in kJ/kg\n",
+ "hfg=1296.4#at final state in kJ/kg\n",
+ "xe=(he-hf)*100/hfg #quality at final state\n",
+ "print\"\\n hence,quality of the ammonia leaving the expansion valve is\",round(xe,2),\"%\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,quality of the ammonia leaving the expansion valve is 16.38 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6:pg-194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#power output of turbine in kW\n",
+ "\n",
+ "hi=3137 #initial specific heat of enthalpy in kJ/kg\n",
+ "he=2675.5 #final specific heat of enthalpy in kJ/kg\n",
+ "Vi=50.0 #initial velocity of steam in m/s\n",
+ "Ve=100 #final velocity of steam in m/s\n",
+ "Zi=6 #height of inlet conditions in metres\n",
+ "Ze=3 #height of exit conditions in metres\n",
+ "m=1.5 #mass flow rate of steam in kg/s\n",
+ "g=9.8066 #acc. due to gravity in m/s^2\n",
+ "Qcv=-8.5 #heat transfer rate from turbine in kW\n",
+ "Wcv=Qcv+m*(hi+Vi**2/(2*1000)+g*Zi/1000)-m*(he+Ve**2/(2*1000)+g*Ze/1000) #power output of turbine in kW\n",
+ "print\"\\n hence,the power output of the turbine is\",round(Wcv,1),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the power output of the turbine is 678.2 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7:pg-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#heat transfer rate in aftercooler\n",
+ "\n",
+ "V1=0 #we assume initial velocity to be zero because its given that it enters with a low velocity\n",
+ "V2=25.0 #final velocity with which carbon dioxide exits in m/s\n",
+ "h2=401.52 #final specific enthalpy of heat when carbon dioxide exits in kJ/kg\n",
+ "h1=198 #initial specific enthalpy of heat in kJ/kg\n",
+ "w=h1-h2-V2**2/(2*1000) #in kJ/kg\n",
+ "Wc=-50 #power input to the compressor in kW\n",
+ "m=Wc/w #mass flow rate of carbon dioxide in kg/s\n",
+ "h3=257.9 #final specific enthalpy of heat when carbon dioxide flows into a constant pressure aftercooler\n",
+ "Qcool=-m*(h3-h2) #heat transfer rate in the aftercooler in kW\n",
+ "print\" \\n hence,heat transfer rate in the aftercooler is\",round(Qcool,1),\"kW\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,heat transfer rate in the aftercooler is 35.2 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.8:pg-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#Required pump work\n",
+ "\n",
+ "m=1.5 #mass flow rate of water in kg/s\n",
+ "g=9.807 #acceleration due to gravity in m/s^2\n",
+ "Zin=-15 #depth of water pump in well in metres\n",
+ "Zex=0 #in metres\n",
+ "v=0.001001 #specific volume in m^3/kg\n",
+ "Pex=400+101.3 #exit pressure in kPa\n",
+ "Pin=90 #in kPa\n",
+ "W=m*(g*(Zin-Zex)*0.001-(Pex-Pin)*v) #power input in kW\n",
+ "print\" \\n Hence, the pump requires power of input is\",-round(W,2),\"kW\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " Hence, the pump requires power of input is 0.84 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.9:pg-198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#heat tranfer in simple steam power plant\n",
+ "\n",
+ "h1=3023.5 #specific heat of enthalpy of steam leaving boiler in kJ/kg\n",
+ "h2=3002.5 #specific heat of enthalpy of steam entering turbine in kJ/kg\n",
+ "x=0.9 #quality of steam entering condenser\n",
+ "hf=226 #in kJ/kg\n",
+ "hfg=2373.1 #in kJ/kg\n",
+ "h3=hf+x*hfg #specific heat of enthalpy of steam entering condenser in kJ/kg\n",
+ "h4=188.5 #specific heat of enthalpy of steam entering pump in kJ/kg\n",
+ "q12=h2-h1 #heat transfer in line between boiler and turbine in kJ/kg\n",
+ "w23=h2-h3 #turbine work in kJ/kg\n",
+ "q34=h4-h3 #heat transfer in condenser\n",
+ "w45=-4 #pump work in kJ/kg\n",
+ "h5=h4-w45 #in kJ/kg\n",
+ "q51=h1-h5 #heat transfer in boiler in kJ/kg\n",
+ "print\"\\n hence, heat transfer in line between boiler and turbine is\",round(q12,1),\"kJ/kg\" \n",
+ "print\"\\n hence, turbine work is\",round(w23,1),\"kJ/kg\" \n",
+ "print\"\\n hence, heat transfer in condenser is \",round(q34,1),\"kJ/kg\" \n",
+ "print\"\\n hence, heat transfer in boiler is \",round(q51,1),\"kJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, heat transfer in line between boiler and turbine is -21.0 kJ/kg\n",
+ "\n",
+ " hence, turbine work is 640.7 kJ/kg\n",
+ "\n",
+ " hence, heat transfer in condenser is -2173.3 kJ/kg\n",
+ "\n",
+ " hence, heat transfer in boiler is 2831.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10:pg-200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#analysis of refrigerator\n",
+ "\n",
+ "hf4=167.4 #in kJ/kg\n",
+ "hfg4=215.6 #in kJ/kg\n",
+ "h3=241.8 #specific heat of enthalpy of R-134a entering expansion valve\n",
+ "h4=h3 #specific heat of enthalpy of R-134a leaving expansion valve\n",
+ "h1=387.2 #in kJ/kg\n",
+ "h2=435.1 #in kJ/kg\n",
+ "x4=(h3-hf4)/hfg4 #quality of R-134a at evaporator inlet\n",
+ "m=0.1 #mass flow rate in kg/s\n",
+ "Qevap=m*(h1-h4) #rate of heat transfer to the evaporator\n",
+ "Wcomp=-5 #power input to compressor in kW\n",
+ "Qcomp=m*(h2-h1)+Wcomp #rate of heat transfer from compressor\n",
+ "print\"\\n hence, the quality at the evaporator inlet is \",round(x4,3), \n",
+ "print\"\\n hence, the rate of heat transfer to the evaporator is \",round(Qevap,2),\n",
+ "print\"\\n hence, rate of heat transfer from the compressor is\",round(Qcomp,2), "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, the quality at the evaporator inlet is 0.345 \n",
+ " hence, the rate of heat transfer to the evaporator is 14.54 \n",
+ " hence, rate of heat transfer from the compressor is -0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.11:pg-204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11\n",
+ "#Determining the final temperature of steam\n",
+ "\n",
+ "u2=3040.4 #final internal energy in kJ/kg\n",
+ "hi=u2 #in kJ/kg\n",
+ "P2=1.4 #final Pressure in MPa\n",
+ "print\"Since, the final pressure is given as 1.4 MPa,we know two properties at the final state and hence,final state can be determined.The temperature corresponding to a pressure of 1.4 MPa and an internal energy of 3040.4 kJ/kg is found to be \"\n",
+ "T2=452 #final temperature in Celsius"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since, the final pressure is given as 1.4 MPa,we know two properties at the final state and hence,final state can be determined.The temperature corresponding to a pressure of 1.4 MPa and an internal energy of 3040.4 kJ/kg is found to be \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.12:pg-206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12\n",
+ "#Calculating mass flow of steam in tank\n",
+ "\n",
+ "V1=0.4 #initial volume fo tank in m^3\n",
+ "v1=0.5243 #initial specific volume in m^3/kg\n",
+ "h1=3040.4 #initial specific enthalpy in kJ/kg\n",
+ "u1=2548.9 #initial specific internal energy in kJ/kg\n",
+ "m1=V1/v1 #initial mass of steam in tank in kg\n",
+ "V2=0.4 #final volume in m^3\n",
+ "print\"let x=V*(h1-u2)/v2-m1*(h1-u1).If we assume T2=300C, then v2=0.1823m^3/kg ,u2=2785.2kJ/kg and x=+ve.If we assume T2=350C,then v2=0.2003 m^3/kg, u2=2869.1kJ/kg and x=-ve.Hence,actualt T2 must be between these two assumed values in order that x=0.By interplotation\" \n",
+ "T2=342 #final temperature in Celsius\n",
+ "v2=0.1974 #final specific volume in m^3/kg\n",
+ "m2=V2/v2 #final mass of the steam in the tank in kg\n",
+ "m=m2-m1 #mass of steam that flowsinto the tank\n",
+ "print\" \\n Hence,mass of the steam that flows into the tank is\",round(m,3),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "let x=V*(h1-u2)/v2-m1*(h1-u1).If we assume T2=300C, then v2=0.1823m^3/kg ,u2=2785.2kJ/kg and x=+ve.If we assume T2=350C,then v2=0.2003 m^3/kg, u2=2869.1kJ/kg and x=-ve.Hence,actualt T2 must be between these two assumed values in order that x=0.By interplotation\n",
+ " \n",
+ " Hence,mass of the steam that flows into the tank is 1.263 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.13:pg-207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13\n",
+ "#Calculating mass flow of steam in tank\n",
+ "\n",
+ "vf1=0.001725 #in m^3/kg\n",
+ "vf2=0.0016 #in m^3/kg\n",
+ "uf1=368.7 #in kJ/kg\n",
+ "uf2=226 #in kJ/kg\n",
+ "vg1=0.08313 #in m^3/kg\n",
+ "vfg2=0.20381\n",
+ "ug1=1341 #in kJ/kg\n",
+ "ufg2=1099.7 #in kJ/kg\n",
+ "Vf=1 #initial volume of liquid in m^3\n",
+ "Vg=1 #initial volume of vapor in m^3\n",
+ "mf1=Vf/vf1 #initial mass of liquid in kg\n",
+ "mg1=Vg/vg1 #initial mass of vapor in kg\n",
+ "m1=mf1+mg1 #initial mass of liquid in kg\n",
+ "he=1461.1 #in kJ/kg\n",
+ "V=2 #volume of tank in m^3\n",
+ "print\"m1u1=mf1*uf1+mg1*ug1.If x2 is the quality,then m2=V/v2=2/(0.00160+0.20381*x2) and u2=uf2+x2*ufg2=226.0+1099.7*x2.\"\n",
+ "print\"Also,m2*(he-u2)=m1*he-m1u1.From this equation,we will get an equation for x2.\"\n",
+ "x2=((2*1461.1)-(2*226)-(0.00160*634706))/((634706*0.20381)+(2*1099.7)) #quality of ammonia\n",
+ "v2=0.00160+(0.20381*x2) #final specific volume in m^3/kg\n",
+ "m2=V/v2 #final mass of ammonia in kg\n",
+ "m=m1-m2 #mass of ammonia withdrawn\n",
+ "print\" \\n Hence,mass of ammonia withdrawn is\",round(m,1),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m1u1=mf1*uf1+mg1*ug1.If x2 is the quality,then m2=V/v2=2/(0.00160+0.20381*x2) and u2=uf2+x2*ufg2=226.0+1099.7*x2.\n",
+ "Also,m2*(he-u2)=m1*he-m1u1.From this equation,we will get an equation for x2.\n",
+ " \n",
+ " Hence,mass of ammonia withdrawn is 72.7 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter6_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter6_6.ipynb
new file mode 100755
index 00000000..953e821b
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter6_6.ipynb
@@ -0,0 +1,652 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c03e579abb4dafb7ea55c1a7f66b6338546355647f3c3d21afe4e72021a3ad5f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6:FIRST-LAW ANALYSIS FOR A CONTROL VOLUME"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1:pg-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#calculating mass flow rate in kg/s\n",
+ "import math\n",
+ "R=0.287 #in kJ/kg-K\n",
+ "T=25 #temperature in celsius\n",
+ "P=150 #pressure in kPa\n",
+ "v=R*(T+273.15)/P #specific volume in m^3/kg\n",
+ "D=0.2 #diameter of pipe in metre\n",
+ "A=math.pi*D**2/4 #cross sectional area in m^2\n",
+ "V=0.1 #velocity of air in m/s\n",
+ "m=V*A/v #mass flow rate in kg/s\n",
+ "print\"\\n hence,the mass flow rate is\",round(m,4),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the mass flow rate is 0.0055 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2:pg-184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#work done for adding the fluid\n",
+ "\n",
+ "P=600 #pressure in kPa\n",
+ "m=1 #in kg\n",
+ "v=0.001 #specific volume in m^3/kg\n",
+ "W=P*m*v #necessary work in kJ for adding the fluid \n",
+ "print\" \\n hence,the work involved in this process is\",round(W,4),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,the work involved in this process is 0.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3:pg-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#rate of flow of water\n",
+ "\n",
+ "hir=441.89 #in kJ/kg for refrigerant using steam table \n",
+ "her=249.10 #in kJ/kg for refrigerant using steam table\n",
+ "hiw=42 #in kJ/kg for water using steam table\n",
+ "hew=83.95 #in kJ/kg for water using steam table\n",
+ "mr=0.2 #the rate at which refrigerant enters the condenser in kg/s\n",
+ "mw=mr*(hir-her)/(hew-hiw) #rate of flow of water in kg/s\n",
+ "print\"\\n hence,the rate at which cooling water flows thorugh the condenser is\",round(mw,3),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the rate at which cooling water flows thorugh the condenser is 0.919 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4:pg-190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#determining quality of steam\n",
+ "\n",
+ "hi=2850.1 #initial specific heat enthalpy for steam in kJ/kg\n",
+ "Vi=50 #initial velocity of steam in m/s\n",
+ "Ve=600 #final velocity of steam in m/s\n",
+ "he=hi+Vi**2/(2*1000)-Ve**2/(2*1000) #final specific heat enthalpy for steam in kJ/kg\n",
+ "hf=467.1 #at final state in kJ/kg\n",
+ "hfg=2226.5 #at final state in kJ/kg\n",
+ "xe=(he-hf)/hfg #quality of steam in final state\n",
+ "print\" \\n hence, the quality is\",round(xe,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence, the quality is 0.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4E:pg-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4E\n",
+ "#determining quality of steam\n",
+ "\n",
+ "hi=1227.5 #initial specific heat enthalpy for steam in Btu/lbm\n",
+ "Vi=200 #initial velocity of steam in ft/s\n",
+ "Ve=2000 #final velocity of steam in ft/s\n",
+ "he=hi+Vi**2/(2*32.17*778)-Ve**2/(2*32.17*778) #final specific heat enthalpy for steam in Btu/lbm\n",
+ "hf=198.31 #at final state in Btu/lbm\n",
+ "hfg=958.81 #at final state in Btu/lbm\n",
+ "xe=(he-hf)/hfg #quality of steam in final state\n",
+ "print\" \\n hence, the quality is\",round(xe,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence, the quality is 0.99\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5:pg-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#quality of ammonia leaving expansion valve\n",
+ "\n",
+ "hi=346.8 #specific heat enthalpy for ammonia at initial state in kJ/kg\n",
+ "he=hi #specific heat enthalpy for ammonia at final state will be equal that at initial state because it is a throttling process\n",
+ "hf=134.4 #at final state in kJ/kg\n",
+ "hfg=1296.4#at final state in kJ/kg\n",
+ "xe=(he-hf)*100/hfg #quality at final state\n",
+ "print\"\\n hence,quality of the ammonia leaving the expansion valve is\",round(xe,2),\"%\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,quality of the ammonia leaving the expansion valve is 16.38 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6:pg-194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#power output of turbine in kW\n",
+ "\n",
+ "hi=3137 #initial specific heat of enthalpy in kJ/kg\n",
+ "he=2675.5 #final specific heat of enthalpy in kJ/kg\n",
+ "Vi=50.0 #initial velocity of steam in m/s\n",
+ "Ve=100 #final velocity of steam in m/s\n",
+ "Zi=6 #height of inlet conditions in metres\n",
+ "Ze=3 #height of exit conditions in metres\n",
+ "m=1.5 #mass flow rate of steam in kg/s\n",
+ "g=9.8066 #acc. due to gravity in m/s^2\n",
+ "Qcv=-8.5 #heat transfer rate from turbine in kW\n",
+ "Wcv=Qcv+m*(hi+Vi**2/(2*1000)+g*Zi/1000)-m*(he+Ve**2/(2*1000)+g*Ze/1000) #power output of turbine in kW\n",
+ "print\"\\n hence,the power output of the turbine is\",round(Wcv,1),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the power output of the turbine is 678.2 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7:pg-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#heat transfer rate in aftercooler\n",
+ "\n",
+ "V1=0 #we assume initial velocity to be zero because its given that it enters with a low velocity\n",
+ "V2=25.0 #final velocity with which carbon dioxide exits in m/s\n",
+ "h2=401.52 #final specific enthalpy of heat when carbon dioxide exits in kJ/kg\n",
+ "h1=198 #initial specific enthalpy of heat in kJ/kg\n",
+ "w=h1-h2-V2**2/(2*1000) #in kJ/kg\n",
+ "Wc=-50 #power input to the compressor in kW\n",
+ "m=Wc/w #mass flow rate of carbon dioxide in kg/s\n",
+ "h3=257.9 #final specific enthalpy of heat when carbon dioxide flows into a constant pressure aftercooler\n",
+ "Qcool=-m*(h3-h2) #heat transfer rate in the aftercooler in kW\n",
+ "print\" \\n hence,heat transfer rate in the aftercooler is\",round(Qcool,1),\"kW\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,heat transfer rate in the aftercooler is 35.2 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.8:pg-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#Required pump work\n",
+ "\n",
+ "m=1.5 #mass flow rate of water in kg/s\n",
+ "g=9.807 #acceleration due to gravity in m/s^2\n",
+ "Zin=-15 #depth of water pump in well in metres\n",
+ "Zex=0 #in metres\n",
+ "v=0.001001 #specific volume in m^3/kg\n",
+ "Pex=400+101.3 #exit pressure in kPa\n",
+ "Pin=90 #in kPa\n",
+ "W=m*(g*(Zin-Zex)*0.001-(Pex-Pin)*v) #power input in kW\n",
+ "print\" \\n Hence, the pump requires power of input is\",-round(W,2),\"kW\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " Hence, the pump requires power of input is 0.84 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.9:pg-198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#heat tranfer in simple steam power plant\n",
+ "\n",
+ "h1=3023.5 #specific heat of enthalpy of steam leaving boiler in kJ/kg\n",
+ "h2=3002.5 #specific heat of enthalpy of steam entering turbine in kJ/kg\n",
+ "x=0.9 #quality of steam entering condenser\n",
+ "hf=226 #in kJ/kg\n",
+ "hfg=2373.1 #in kJ/kg\n",
+ "h3=hf+x*hfg #specific heat of enthalpy of steam entering condenser in kJ/kg\n",
+ "h4=188.5 #specific heat of enthalpy of steam entering pump in kJ/kg\n",
+ "q12=h2-h1 #heat transfer in line between boiler and turbine in kJ/kg\n",
+ "w23=h2-h3 #turbine work in kJ/kg\n",
+ "q34=h4-h3 #heat transfer in condenser\n",
+ "w45=-4 #pump work in kJ/kg\n",
+ "h5=h4-w45 #in kJ/kg\n",
+ "q51=h1-h5 #heat transfer in boiler in kJ/kg\n",
+ "print\"\\n hence, heat transfer in line between boiler and turbine is\",round(q12,1),\"kJ/kg\" \n",
+ "print\"\\n hence, turbine work is\",round(w23,1),\"kJ/kg\" \n",
+ "print\"\\n hence, heat transfer in condenser is \",round(q34,1),\"kJ/kg\" \n",
+ "print\"\\n hence, heat transfer in boiler is \",round(q51,1),\"kJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, heat transfer in line between boiler and turbine is -21.0 kJ/kg\n",
+ "\n",
+ " hence, turbine work is 640.7 kJ/kg\n",
+ "\n",
+ " hence, heat transfer in condenser is -2173.3 kJ/kg\n",
+ "\n",
+ " hence, heat transfer in boiler is 2831.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10:pg-200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#analysis of refrigerator\n",
+ "\n",
+ "hf4=167.4 #in kJ/kg\n",
+ "hfg4=215.6 #in kJ/kg\n",
+ "h3=241.8 #specific heat of enthalpy of R-134a entering expansion valve\n",
+ "h4=h3 #specific heat of enthalpy of R-134a leaving expansion valve\n",
+ "h1=387.2 #in kJ/kg\n",
+ "h2=435.1 #in kJ/kg\n",
+ "x4=(h3-hf4)/hfg4 #quality of R-134a at evaporator inlet\n",
+ "m=0.1 #mass flow rate in kg/s\n",
+ "Qevap=m*(h1-h4) #rate of heat transfer to the evaporator\n",
+ "Wcomp=-5 #power input to compressor in kW\n",
+ "Qcomp=m*(h2-h1)+Wcomp #rate of heat transfer from compressor\n",
+ "print\"\\n hence, the quality at the evaporator inlet is \",round(x4,3), \n",
+ "print\"\\n hence, the rate of heat transfer to the evaporator is \",round(Qevap,2),\n",
+ "print\"\\n hence, rate of heat transfer from the compressor is\",round(Qcomp,2), "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, the quality at the evaporator inlet is 0.345 \n",
+ " hence, the rate of heat transfer to the evaporator is 14.54 \n",
+ " hence, rate of heat transfer from the compressor is -0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.11:pg-204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11\n",
+ "#Determining the final temperature of steam\n",
+ "\n",
+ "u2=3040.4 #final internal energy in kJ/kg\n",
+ "hi=u2 #in kJ/kg\n",
+ "P2=1.4 #final Pressure in MPa\n",
+ "print\"Since, the final pressure is given as 1.4 MPa,we know two properties at the final state and hence,final state can be determined.The temperature corresponding to a pressure of 1.4 MPa and an internal energy of 3040.4 kJ/kg is found to be \"\n",
+ "T2=452 #final temperature in Celsius"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since, the final pressure is given as 1.4 MPa,we know two properties at the final state and hence,final state can be determined.The temperature corresponding to a pressure of 1.4 MPa and an internal energy of 3040.4 kJ/kg is found to be \n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.12:pg-206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12\n",
+ "#Calculating mass flow of steam in tank\n",
+ "\n",
+ "V1=0.4 #initial volume fo tank in m^3\n",
+ "v1=0.5243 #initial specific volume in m^3/kg\n",
+ "h1=3040.4 #initial specific enthalpy in kJ/kg\n",
+ "u1=2548.9 #initial specific internal energy in kJ/kg\n",
+ "m1=V1/v1 #initial mass of steam in tank in kg\n",
+ "V2=0.4 #final volume in m^3\n",
+ "print\"let x=V*(h1-u2)/v2-m1*(h1-u1).If we assume T2=300C, then v2=0.1823m^3/kg ,u2=2785.2kJ/kg and x=+ve.If we assume T2=350C,then v2=0.2003 m^3/kg, u2=2869.1kJ/kg and x=-ve.Hence,actualt T2 must be between these two assumed values in order that x=0.By interplotation\" \n",
+ "T2=342 #final temperature in Celsius\n",
+ "v2=0.1974 #final specific volume in m^3/kg\n",
+ "m2=V2/v2 #final mass of the steam in the tank in kg\n",
+ "m=m2-m1 #mass of steam that flowsinto the tank\n",
+ "print\" \\n Hence,mass of the steam that flows into the tank is\",round(m,3),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "let x=V*(h1-u2)/v2-m1*(h1-u1).If we assume T2=300C, then v2=0.1823m^3/kg ,u2=2785.2kJ/kg and x=+ve.If we assume T2=350C,then v2=0.2003 m^3/kg, u2=2869.1kJ/kg and x=-ve.Hence,actualt T2 must be between these two assumed values in order that x=0.By interplotation\n",
+ " \n",
+ " Hence,mass of the steam that flows into the tank is 1.263 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.13:pg-207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13\n",
+ "#Calculating mass flow of steam in tank\n",
+ "\n",
+ "vf1=0.001725 #in m^3/kg\n",
+ "vf2=0.0016 #in m^3/kg\n",
+ "uf1=368.7 #in kJ/kg\n",
+ "uf2=226 #in kJ/kg\n",
+ "vg1=0.08313 #in m^3/kg\n",
+ "vfg2=0.20381\n",
+ "ug1=1341 #in kJ/kg\n",
+ "ufg2=1099.7 #in kJ/kg\n",
+ "Vf=1 #initial volume of liquid in m^3\n",
+ "Vg=1 #initial volume of vapor in m^3\n",
+ "mf1=Vf/vf1 #initial mass of liquid in kg\n",
+ "mg1=Vg/vg1 #initial mass of vapor in kg\n",
+ "m1=mf1+mg1 #initial mass of liquid in kg\n",
+ "he=1461.1 #in kJ/kg\n",
+ "V=2 #volume of tank in m^3\n",
+ "print\"m1u1=mf1*uf1+mg1*ug1.If x2 is the quality,then m2=V/v2=2/(0.00160+0.20381*x2) and u2=uf2+x2*ufg2=226.0+1099.7*x2.\"\n",
+ "print\"Also,m2*(he-u2)=m1*he-m1u1.From this equation,we will get an equation for x2.\"\n",
+ "x2=((2*1461.1)-(2*226)-(0.00160*634706))/((634706*0.20381)+(2*1099.7)) #quality of ammonia\n",
+ "v2=0.00160+(0.20381*x2) #final specific volume in m^3/kg\n",
+ "m2=V/v2 #final mass of ammonia in kg\n",
+ "m=m1-m2 #mass of ammonia withdrawn\n",
+ "print\" \\n Hence,mass of ammonia withdrawn is\",round(m,1),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m1u1=mf1*uf1+mg1*ug1.If x2 is the quality,then m2=V/v2=2/(0.00160+0.20381*x2) and u2=uf2+x2*ufg2=226.0+1099.7*x2.\n",
+ "Also,m2*(he-u2)=m1*he-m1u1.From this equation,we will get an equation for x2.\n",
+ " \n",
+ " Hence,mass of ammonia withdrawn is 72.7 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.13E:pg-209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13E\n",
+ "#Calculating mass flow of steam in tank\n",
+ "\n",
+ "vf1=0.02747#in ft3/lbm\n",
+ "vf2=0.02564#in ft3/lbm\n",
+ "uf1=153.89#in Btu/lbm\n",
+ "uf2=97.16#in Btu/lbm\n",
+ "vg1=1.4168 #in ft^3/lbm\n",
+ "vfg2=3.2647#in ft^3/lbm\n",
+ "ug1=576.23#in Btu/lbm\n",
+ "ufg2=472.78#in Btu/lbm\n",
+ "Vf=25 #initial volume of liquid in ft^3\n",
+ "Vg=25 #initial volume of vapor in ft^3\n",
+ "mf1=Vf/vf1 #initial mass of liquid in lbm\n",
+ "mg1=Vg/vg1 #initial mass of vapor in lbm\n",
+ "m1=mf1+mg1 #initial mass of liquid in lbm\n",
+ "he=628 #in Btu/lbm\n",
+ "V=50 #volume of tank in ft^3\n",
+ "print\"m1u1=mf1*uf1+mg1*ug1.If x2 is the quality,then m2=V/v2=2/(0.02564+3.2647*x2) and u2=uf2+x2*ufg2=97.16+3.2647*x2.\"\n",
+ "print\"Also,m2*(he-u2)=m1*he-m1u1.From this equation,we will get an equation for x2.\"\n",
+ "x2=((50*628)-(50*97.16)-(432391*0.02564))/((432391*3.2647)+(50*472.98)) #quality of ammonia\n",
+ "x2=round(x2,6)\n",
+ "v2=0.02564+(3.2647*x2) #final specific volume in ft^3/lbm\n",
+ "v2=round(v2,6)\n",
+ "m2=V/v2 #final mass of ammonia in lbm\n",
+ "m=m1-m2 #mass of ammonia withdrawn\n",
+ "print\" \\n Hence,mass of ammonia withdrawn is\",round(m,1),\"lbm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m1u1=mf1*uf1+mg1*ug1.If x2 is the quality,then m2=V/v2=2/(0.02564+3.2647*x2) and u2=uf2+x2*ufg2=97.16+3.2647*x2.\n",
+ "Also,m2*(he-u2)=m1*he-m1u1.From this equation,we will get an equation for x2.\n",
+ " \n",
+ " Hence,mass of ammonia withdrawn is 105.3 lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter7.ipynb b/Fundamentals_Of_Thermodynamics/Chapter7.ipynb
new file mode 100755
index 00000000..8b49a808
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter7.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eaab49a206212133280afcf75d94d2c8dc077f30ee178c5c537c49bf39ade08a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7:THE SECOND LAW OF THERMODYNAMICS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1:pg-241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#rate of fuel consumption\n",
+ "\n",
+ "W=136*0.7355 #output of automobile engine in kW\n",
+ "neng=0.3 #thermal efficiency of automobile engine\n",
+ "Qh=W/neng #energy output of fuel in kW\n",
+ "Q1=Qh-W #total rate of energy rejected to the ambient\n",
+ "qh=35000.0 #energy output of fuel in kJ/kg\n",
+ "m=Qh/qh #rate of fuel consumption in kg/s\n",
+ "print\"\\n hence,total rate of energy rejected is\",round(Q1),\"kW\" \n",
+ "print\"\\n and rate of fuel consumption is\",round(m,4),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,total rate of energy rejected is 233.0 kW\n",
+ "\n",
+ " and rate of fuel consumption is 0.0095 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2:pg-243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#coefficient of performance of refrigerator\n",
+ "\n",
+ "Qh=400 #heat rejected to kitchen air in W\n",
+ "W=150.0 #electrical input power in W\n",
+ "Q1=Qh-W #rate of energy taken out to cold space in W\n",
+ "B=Ql/W #coefficicent of performnace of refrigerator\n",
+ "print\"\\n hence,rate of energy taken out of the cold space is\",round(Q1),\"W\"\n",
+ "print\"\\n and coefficient of performance of the refrigerator is\",round(B,2),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,rate of energy taken out of the cold space is 250.0 W\n",
+ "\n",
+ " and coefficient of performance of the refrigerator is 1.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4:pg-260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#comparison of ideal carnot heat engine with actual heat engine\n",
+ "\n",
+ "Qh=1000.0 #rate of heat transfer to heat engine in kW\n",
+ "W=450.0 #rate of production of work in kW\n",
+ "Ql=Qh-W #rate of heat rejected by heat engine in kW\n",
+ "nthermal=W/Qh #efficiency from the definition of efficiency\n",
+ "Tl=300 #temperature of surroundings in K\n",
+ "Th=550.0 #temperature of heat source in Celsius\n",
+ "ncarnot=1-Tl/(Th+273.15) #efficiency if heat engine is considered to be ideal carnot heat engine\n",
+ "W2=ncarnot*Qh #rate of work production if heat engine is assumed to be ideal carnot heat engine in kW\n",
+ "Q12=Qh-W2 #rate of heat rejected by heat engine in kW if heat engine is assumed to be ideal carnot heat engine\n",
+ "print\"\\n hence,energy discarded to the ambient surroundings iS\",round(Q12,4),\"kw\"\n",
+ "print\"\\n and the engine efficiency is\",round(ncarnot,4),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,energy discarded to the ambient surroundings iS 364.4536 kw\n",
+ "\n",
+ " and the engine efficiency is 0.6355\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5:pg-261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating required work\n",
+ "\n",
+ "Tl=24+273.15 #room temperature in Kelvins\n",
+ "Th=35+273.15 #atmospheric temperature in Kelvins\n",
+ "Ql=4 #rate of heat rejection from room\n",
+ "B=Tl/(Th-Tl) #coefficient of performance of air conditioner\n",
+ "W=Ql/B #required work in kW\n",
+ "print\"\\n hence,the magnitude of reqiured work is\",round(W,2),\"kw\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the magnitude of reqiured work is 0.15 kw\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter7_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter7_6.ipynb
new file mode 100755
index 00000000..02425dea
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter7_6.ipynb
@@ -0,0 +1,217 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a60a19bd48510a099eb4483e5176d858019753b734df1f9001e5af0e3bc7fc2e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7:THE SECOND LAW OF THERMODYNAMICS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1:pg-241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#rate of fuel consumption\n",
+ "\n",
+ "W=136*0.7355 #output of automobile engine in kW\n",
+ "neng=0.3 #thermal efficiency of automobile engine\n",
+ "Qh=W/neng #energy output of fuel in kW\n",
+ "Q1=Qh-W #total rate of energy rejected to the ambient\n",
+ "qh=35000.0 #energy output of fuel in kJ/kg\n",
+ "m=Qh/qh #rate of fuel consumption in kg/s\n",
+ "print\"\\n hence,total rate of energy rejected is\",round(Q1),\"kW\" \n",
+ "print\"\\n and rate of fuel consumption is\",round(m,4),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,total rate of energy rejected is 233.0 kW\n",
+ "\n",
+ " and rate of fuel consumption is 0.0095 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2:pg-243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#coefficient of performance of refrigerator\n",
+ "\n",
+ "Qh=400 #heat rejected to kitchen air in W\n",
+ "W=150.0 #electrical input power in W\n",
+ "Q1=Qh-W #rate of energy taken out to cold space in W\n",
+ "B=Ql/W #coefficicent of performnace of refrigerator\n",
+ "print\"\\n hence,rate of energy taken out of the cold space is\",round(Q1),\"W\"\n",
+ "print\"\\n and coefficient of performance of the refrigerator is\",round(B,2),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,rate of energy taken out of the cold space is 250.0 W\n",
+ "\n",
+ " and coefficient of performance of the refrigerator is 1.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3:pg-256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "# temperature at which the pressure go to zero\n",
+ "\n",
+ "P1=110.9#pressur at the ice point in kPa\n",
+ "P2=151.5#pressure at the steam point in kPa\n",
+ "T1=0#in C\n",
+ "T2=100#in C\n",
+ "S=(P2-P1)/(T2-T1)#slope in kPa/C\n",
+ "T=T1-(P1/S)# absolute ideal gas temperature in C\n",
+ "print\"\\n hence,the absolute ideal gas temperature is\",round(T,2),\"C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the absolute ideal gas temperature is -273.15 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4:pg-260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#comparison of ideal carnot heat engine with actual heat engine\n",
+ "\n",
+ "Qh=1000.0 #rate of heat transfer to heat engine in kW\n",
+ "W=450.0 #rate of production of work in kW\n",
+ "Ql=Qh-W #rate of heat rejected by heat engine in kW\n",
+ "nthermal=W/Qh #efficiency from the definition of efficiency\n",
+ "Tl=300 #temperature of surroundings in K\n",
+ "Th=550.0 #temperature of heat source in Celsius\n",
+ "ncarnot=1-Tl/(Th+273.15) #efficiency if heat engine is considered to be ideal carnot heat engine\n",
+ "W2=ncarnot*Qh #rate of work production if heat engine is assumed to be ideal carnot heat engine in kW\n",
+ "Q12=Qh-W2 #rate of heat rejected by heat engine in kW if heat engine is assumed to be ideal carnot heat engine\n",
+ "print\"\\n hence,energy discarded to the ambient surroundings iS\",round(Q12,4),\"kw\"\n",
+ "print\"\\n and the engine efficiency is\",round(ncarnot,4),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,energy discarded to the ambient surroundings iS 364.4536 kw\n",
+ "\n",
+ " and the engine efficiency is 0.6355\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5:pg-261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating required work\n",
+ "\n",
+ "Tl=24+273.15 #room temperature in Kelvins\n",
+ "Th=35+273.15 #atmospheric temperature in Kelvins\n",
+ "Ql=4 #rate of heat rejection from room\n",
+ "B=Tl/(Th-Tl) #coefficient of performance of air conditioner\n",
+ "W=Ql/B #required work in kW\n",
+ "print\"\\n hence,the magnitude of reqiured work is\",round(W,2),\"kw\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the magnitude of reqiured work is 0.15 kw\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter8.ipynb b/Fundamentals_Of_Thermodynamics/Chapter8.ipynb
new file mode 100755
index 00000000..b1b6e75a
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter8.ipynb
@@ -0,0 +1,452 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e95f45030ec153dab9aa085b0a83755a3b429532b4c58448d37853e1ca968b64"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8:ENTROPY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1:pg-290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#coefficient of performance of refrigerator\n",
+ "\n",
+ "Th=60 #temperature at which heat is rejected from R-134a\n",
+ "Tl=0 #temperature at which heat is absorbed into the R-134a \n",
+ "s1=1.7262 #specific entropy at 0 Celsius\n",
+ "s2=s1 #process of state change from 1-2 is isentropic \n",
+ "s3=1.2857 #specific entropy at 60 celsius\n",
+ "s4=s3 #process of state change from 3-4 is isentropic\n",
+ "print\"if Pressure is 1400 kPa,then s=1.7360 kJ/kg-K and if P=1600 kPa,then s=1.7135 kJ/kg-K.Therefore\"\n",
+ "P2=1400+(1600-1400)*(1.7262-1.736)/(1.7135-1.736) #pressure after compression in kPa\n",
+ "B=(Th+273.15)/(Th-Tl) #coefficient of performance of refrigerator\n",
+ "print\" \\n hence,pressure after compression is \",round(P2,1),\"kPa\"\n",
+ "print\"\\n and coefficient of performance of refrigerator is\",round(B,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "if Pressure is 1400 kPa,then s=1.7360 kJ/kg-K and if P=1600 kPa,then s=1.7135 kJ/kg-K.Therefore\n",
+ " \n",
+ " hence,pressure after compression is 1487.1 kPa\n",
+ "\n",
+ " and coefficient of performance of refrigerator is 5.55\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2:pg-290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2 \n",
+ "#heat transfer in a given process\n",
+ "\n",
+ "u1=87.94 #specific internal energy of R-12 at state 1 in kJ/kg\n",
+ "u2=276.44 #specific internal energy of R-12 at state 2 in kJ/kg\n",
+ "s1=0.3357 #specific entropy at state 1 in kJ/kg-K\n",
+ "s2=1.2108 #specific entropy at state 2 in kJ/kg-K\n",
+ "V=0.001 #volume of saturated liquid in m^3\n",
+ "v1=0.000923 #specific volume in m^3/kg\n",
+ "m=V/v1 #mass of saturated liquid in kg\n",
+ "T=20 #temperature of liquid in celsius\n",
+ "Q12=m*(T+273.15)*(s2-s1) #heat transfer in kJ to accomplish the process\n",
+ "W12=m*(u1-u2)+Q12 #work required to accomplish the process\n",
+ "print\" \\n hence,work required to accomplish the process is\",round(W12,1),\"KJ\"\n",
+ "print\" \\n and heat transfer is\",round(Q12,1),\"KJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,work required to accomplish the process is 73.7 KJ\n",
+ " \n",
+ " and heat transfer is 277.9 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3:pg-293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#entropy change\n",
+ "import math\n",
+ "C=4.184 # specific heat of water in kJ/kg-K\n",
+ "T1=20 #initial temperature of water in celsius\n",
+ "T2=90 #final temperature of water in celsius\n",
+ "dS1=C*math.log((T2+273.2)/(T1+273.2)) #change in entropy in kJ/kg-K\n",
+ "dS2=1.1925-0.2966 #in kJ/kg-K using steam tables\n",
+ "print\"\\n hence,change in entropy assuming constant specific heat is\",round(dS1,4),\"KJ/kg-k\" \n",
+ "print\"\\n using steam table is\",round(dS2,4),\"KJ/kg-k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,change in entropy assuming constant specific heat is 0.8958 KJ/kg-k\n",
+ "\n",
+ " using steam table is 0.8959 KJ/kg-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4:pg-295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#entropy change with different assumptions\n",
+ "import math\n",
+ "T1=300 #initial temperature in kelvins\n",
+ "T2=1500 #final temperature in kelvins\n",
+ "P1=200.0 #initial pressure in kPa\n",
+ "P2=150.0 #final pressure in kPa\n",
+ "R=0.2598 # in kJ/kg-K\n",
+ "Cp=0.922 #specific heat in kJ/kg-K at constant pressure\n",
+ "dsT2=8.0649 #in kJ/kg-K\n",
+ "dsT1=6.4168 #in kJ/kg-K\n",
+ "dS1=dsT2-dsT1-R*math.log(P2/P1) #entropy change calculated using ideal gas tables\n",
+ "dS3=Cp*math.log(T2/T1)-R*math.log(P2/P1) #entropy change assuming constant specific heat in kJ/kg-K\n",
+ "dS4=1.0767*math.log(T2/T1)+0.0747 #entropy change assuming specific heat is constant at its value at 990K\n",
+ "print\"\\n hence,change in entropy using ideal gas tables is\",round(dS1,4),\"KJ/kg-k\"\n",
+ "print\"\\n hence,change in entropy using the value of specific heat at 300K is\",round(dS3,4),\"KJ/kg-k\"\n",
+ "print\"\\n hence,change in entropy assuming specific heat is constant at its value at 900K is \",round(dS4,4),\"KJ/kg-k\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,change in entropy using ideal gas tables is 1.7228 KJ/kg-k\n",
+ "\n",
+ " hence,change in entropy using the value of specific heat at 300K is 1.5586 KJ/kg-k\n",
+ "\n",
+ " hence,change in entropy assuming specific heat is constant at its value at 900K is 1.8076 KJ/kg-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5:pg-296\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#entropy change\n",
+ "import math\n",
+ "Cp=1.004 #specific heat at constant pressure in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "P1=400.0 #initial pressure in kPa\n",
+ "P2=300.0 #final pressure in kPa\n",
+ "T1=300 #initial temperature in K\n",
+ "T2=600 #final temperature in K\n",
+ "dS1=Cp*math.log(T2/T1)-R*math.log(P2/P1) #entropy change assuming constant specific heat\n",
+ "s1=6.8693 #specific entropy at T1\n",
+ "s2=7.5764 #specific entropy at T2\n",
+ "dS2=s2-s1-R*math.log(P2/P1) #entropy change assuming variable specific heat\n",
+ "print\"\\n hence,entropy change assuming constant specific heat is\",round(dS1,4),\"KJ/kg-k\" \n",
+ "print\"\\n and assuming variable specific heat is\",round(dS2,4),\"KJ/kg-k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,entropy change assuming constant specific heat is 0.7785 KJ/kg-k\n",
+ "\n",
+ " and assuming variable specific heat is 0.7897 KJ/kg-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6:pg-297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#work done by air\n",
+ "import math\n",
+ "T1=600 #initial temperature of air in K\n",
+ "P1=400.0 #intial pressure of air in kPa\n",
+ "P2=150.0 #final pressure in kPa\n",
+ "u1=435.10 #specific internal energy at temperature T1 in kJ/kg\n",
+ "sT1=7.5764 #specific entropy at temperature T1 in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "ds=0\n",
+ "sT2=ds+sT1+R*math.log(P2/P1) #specific entropy at temperature T2 in kJ/kg-K\n",
+ "print\"we know the values of s and P for state 2.So,in order to fully determine the state,we will use steam table\"\n",
+ "T2=457 #final temperature in K\n",
+ "u2=328.14 #specific internal energy at temperature T2 in kJ/kg\n",
+ "w=u1-u2 #work done by air in kJ/kg\n",
+ "print\"\\n hence,work done by air is\",round(w,4),\"KJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "we know the values of s and P for state 2.So,in order to fully determine the state,we will use steam table\n",
+ "\n",
+ " hence,work done by air is 106.96 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7:pg-300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#work and heat transfer\n",
+ "\n",
+ "P2=500 #final pressure in cylinder in kPa\n",
+ "P1=100 #initial pressure in cylinder in kPa\n",
+ "T1=20+273.2 #initial temperature inside cylinder in Kelvins\n",
+ "n=1.3 \n",
+ "T2=(T1)*(P2/P1)**((n-1)/n) #final temperature inside cylinder in K\n",
+ "R=0.2968 #gas constant in kJ/kg-K\n",
+ "w12=R*(T2-T1)/(1-n) #work in kJ/kg\n",
+ "Cvo=0.745 #specific heat at constant volume in kJ/kg-K\n",
+ "q12=Cvo*(T2-T1)+w12 #heat transfer in kJ/kg\n",
+ "print\" \\n hence,work done is\",round(w12,2),\"KJ/kg\" \n",
+ "print\"\\n and heat transfer are\",round(q12,1),\"KJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,work done is -130.47 KJ/kg\n",
+ "\n",
+ " and heat transfer are -32.2 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8:pg-308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#calculating increase in entropy\n",
+ "\n",
+ "m=1 #mass of saturated water vapour\n",
+ "sfg=6.0480 #in kJ/K\n",
+ "T=25 #temperature of surrounding air in celsius\n",
+ "dScm=-m*sfg #change in entropy of control mass in kJ/K\n",
+ "hfg=2257.0 #in kJ/kg\n",
+ "Qtosurroundings=m*hfg #heat transferred to surroundings in kJ\n",
+ "dSsurroundings=Qtosurroundings/(T+273.15) #in kJ/K\n",
+ "dSnet=dScm+dSsurroundings #net increase in entropy in kJ/K\n",
+ "print\" hence,net increase in entropy of water plus surroundings is \",round(dSnet,3),\"KJ/k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hence,net increase in entropy of water plus surroundings is 1.522 KJ/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9:pg-309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#entropy generation\n",
+ "\n",
+ "Qout=1.0 #value of heat flux generated by 1kW of electric power\n",
+ "T=600.0 #temperature of hot wire surface in K\n",
+ "Sgen=Qout/T #entropy generation in kW/K\n",
+ "print\"\\n hence,entropy generation is\",round(Sgen,5),\"KW/k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,entropy generation is 0.00167 KW/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.10:pg-310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#Determiining the entropy generated\n",
+ "\n",
+ "B=4.0#COP of air conditioner\n",
+ "W=10.0 #power input of air conditioner in kW\n",
+ "Qh=B*W #in kW\n",
+ "Ql=Qh-W #in kW\n",
+ "Thigh=323 #in Kelvin\n",
+ "Tlow=263 #in Kelvin\n",
+ "SgenHP=(Qh*1000/Thigh)-(Ql*1000/Tlow) #in W/K\n",
+ "Tl=281 # in K\n",
+ "Th=294 #in K\n",
+ "SgenCV1=Ql*1000/Tlow-Ql*1000/Tl #in W/K\n",
+ "SgenCV2=Qh*1000/Th-Qh*1000/Thigh #in W/K\n",
+ "SgenTOT=SgenCV1+SgenCV2+SgenHP #in W/K\n",
+ "print\" \\n Hence,Total entropy generated is\",round(SgenTOT,1),\"W/k\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " Hence,Total entropy generated is 29.3 W/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter8_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter8_6.ipynb
new file mode 100755
index 00000000..dce4d1fa
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter8_6.ipynb
@@ -0,0 +1,444 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:79711d3b5ce866eb594601c655e2c85bdace3e8f861ba88d25f2b6f7e8d8655f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8:ENTROPY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1:pg-290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#coefficient of performance of refrigerator\n",
+ "\n",
+ "Th=60 #temperature at which heat is rejected from R-134a\n",
+ "Tl=0 #temperature at which heat is absorbed into the R-134a \n",
+ "s1=1.7262 #specific entropy at 0 Celsius\n",
+ "s2=s1 #process of state change from 1-2 is isentropic \n",
+ "s3=1.2857 #specific entropy at 60 celsius\n",
+ "s4=s3 #process of state change from 3-4 is isentropic\n",
+ "print\"if Pressure is 1400 kPa,then s=1.7360 kJ/kg-K and if P=1600 kPa,then s=1.7135 kJ/kg-K.Therefore\"\n",
+ "P2=1400+(1600-1400)*(1.7262-1.736)/(1.7135-1.736) #pressure after compression in kPa\n",
+ "B=(Th+273.15)/(Th-Tl) #coefficient of performance of refrigerator\n",
+ "print\" \\n hence,pressure after compression is \",round(P2,1),\"kPa\"\n",
+ "print\"\\n and coefficient of performance of refrigerator is\",round(B,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "if Pressure is 1400 kPa,then s=1.7360 kJ/kg-K and if P=1600 kPa,then s=1.7135 kJ/kg-K.Therefore\n",
+ " \n",
+ " hence,pressure after compression is 1487.1 kPa\n",
+ "\n",
+ " and coefficient of performance of refrigerator is 5.55\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2:pg-290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2 \n",
+ "#heat transfer in a given process\n",
+ "\n",
+ "u1=87.94 #specific internal energy of R-12 at state 1 in kJ/kg\n",
+ "u2=276.44 #specific internal energy of R-12 at state 2 in kJ/kg\n",
+ "s1=0.3357 #specific entropy at state 1 in kJ/kg-K\n",
+ "s2=1.2108 #specific entropy at state 2 in kJ/kg-K\n",
+ "V=0.001 #volume of saturated liquid in m^3\n",
+ "v1=0.000923 #specific volume in m^3/kg\n",
+ "m=V/v1 #mass of saturated liquid in kg\n",
+ "T=20 #temperature of liquid in celsius\n",
+ "Q12=m*(T+273.15)*(s2-s1) #heat transfer in kJ to accomplish the process\n",
+ "W12=m*(u1-u2)+Q12 #work required to accomplish the process\n",
+ "print\" \\n hence,work required to accomplish the process is\",round(W12,1),\"KJ\"\n",
+ "print\" \\n and heat transfer is\",round(Q12,1),\"KJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,work required to accomplish the process is 73.7 KJ\n",
+ " \n",
+ " and heat transfer is 277.9 KJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3:pg-293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#entropy change\n",
+ "import math\n",
+ "C=4.184 # specific heat of water in kJ/kg-K\n",
+ "T1=20 #initial temperature of water in celsius\n",
+ "T2=90 #final temperature of water in celsius\n",
+ "dS1=C*math.log((T2+273.2)/(T1+273.2)) #change in entropy in kJ/kg-K\n",
+ "dS2=1.1925-0.2966 #in kJ/kg-K using steam tables\n",
+ "print\"\\n hence,change in entropy assuming constant specific heat is\",round(dS1,4),\"KJ/kg-k\" \n",
+ "print\"\\n using steam table is\",round(dS2,4),\"KJ/kg-k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,change in entropy assuming constant specific heat is 0.8958 KJ/kg-k\n",
+ "\n",
+ " using steam table is 0.8959 KJ/kg-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4:pg-295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#entropy change with different assumptions\n",
+ "import math\n",
+ "T1=300 #initial temperature in kelvins\n",
+ "T2=1500 #final temperature in kelvins\n",
+ "P1=200.0 #initial pressure in kPa\n",
+ "P2=150.0 #final pressure in kPa\n",
+ "R=0.2598 # in kJ/kg-K\n",
+ "Cp=0.922 #specific heat in kJ/kg-K at constant pressure\n",
+ "dsT2=8.0649 #in kJ/kg-K\n",
+ "dsT1=6.4168 #in kJ/kg-K\n",
+ "dS1=dsT2-dsT1-R*math.log(P2/P1) #entropy change calculated using ideal gas tables\n",
+ "dS3=Cp*math.log(T2/T1)-R*math.log(P2/P1) #entropy change assuming constant specific heat in kJ/kg-K\n",
+ "dS4=1.0767*math.log(T2/T1)+0.0747 #entropy change assuming specific heat is constant at its value at 990K\n",
+ "print\"\\n hence,change in entropy using ideal gas tables is\",round(dS1,4),\"KJ/kg-k\"\n",
+ "print\"\\n hence,change in entropy using the value of specific heat at 300K is\",round(dS3,4),\"KJ/kg-k\"\n",
+ "print\"\\n hence,change in entropy assuming specific heat is constant at its value at 900K is \",round(dS4,4),\"KJ/kg-k\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,change in entropy using ideal gas tables is 1.7228 KJ/kg-k\n",
+ "\n",
+ " hence,change in entropy using the value of specific heat at 300K is 1.5586 KJ/kg-k\n",
+ "\n",
+ " hence,change in entropy assuming specific heat is constant at its value at 900K is 1.8076 KJ/kg-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5:pg-296\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#entropy change\n",
+ "import math\n",
+ "Cp=1.004 #specific heat at constant pressure in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "P1=400.0 #initial pressure in kPa\n",
+ "P2=300.0 #final pressure in kPa\n",
+ "T1=300 #initial temperature in K\n",
+ "T2=600 #final temperature in K\n",
+ "dS1=Cp*math.log(T2/T1)-R*math.log(P2/P1) #entropy change assuming constant specific heat\n",
+ "s1=6.8693 #specific entropy at T1\n",
+ "s2=7.5764 #specific entropy at T2\n",
+ "dS2=s2-s1-R*math.log(P2/P1) #entropy change assuming variable specific heat\n",
+ "print\"\\n hence,entropy change assuming constant specific heat is\",round(dS1,4),\"KJ/kg-k\" \n",
+ "print\"\\n and assuming variable specific heat is\",round(dS2,4),\"KJ/kg-k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,entropy change assuming constant specific heat is 0.7785 KJ/kg-k\n",
+ "\n",
+ " and assuming variable specific heat is 0.7897 KJ/kg-k\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6:pg-297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#work done by air\n",
+ "import math\n",
+ "T1=600 #initial temperature of air in K\n",
+ "P1=400.0 #intial pressure of air in kPa\n",
+ "P2=150.0 #final pressure in kPa\n",
+ "u1=435.10 #specific internal energy at temperature T1 in kJ/kg\n",
+ "sT1=7.5764 #specific entropy at temperature T1 in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "ds=0\n",
+ "sT2=ds+sT1+R*math.log(P2/P1) #specific entropy at temperature T2 in kJ/kg-K\n",
+ "print\"we know the values of s and P for state 2.So,in order to fully determine the state,we will use steam table\"\n",
+ "T2=457 #final temperature in K\n",
+ "u2=328.14 #specific internal energy at temperature T2 in kJ/kg\n",
+ "w=u1-u2 #work done by air in kJ/kg\n",
+ "print\"\\n hence,work done by air is\",round(w,4),\"KJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "we know the values of s and P for state 2.So,in order to fully determine the state,we will use steam table\n",
+ "\n",
+ " hence,work done by air is 106.96 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7:pg-300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#work and heat transfer\n",
+ "\n",
+ "P2=500 #final pressure in cylinder in kPa\n",
+ "P1=100 #initial pressure in cylinder in kPa\n",
+ "T1=20+273.2 #initial temperature inside cylinder in Kelvins\n",
+ "n=1.3 \n",
+ "T2=(T1)*(P2/P1)**((n-1)/n) #final temperature inside cylinder in K\n",
+ "R=0.2968 #gas constant in kJ/kg-K\n",
+ "w12=R*(T2-T1)/(1-n) #work in kJ/kg\n",
+ "Cvo=0.745 #specific heat at constant volume in kJ/kg-K\n",
+ "q12=Cvo*(T2-T1)+w12 #heat transfer in kJ/kg\n",
+ "print\" \\n hence,work done is\",round(w12,2),\"KJ/kg\" \n",
+ "print\"\\n and heat transfer are\",round(q12,1),\"KJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " hence,work done is -130.47 KJ/kg\n",
+ "\n",
+ " and heat transfer are -32.2 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8:pg-308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#calculating increase in entropy\n",
+ "\n",
+ "m=1 #mass of saturated water vapour\n",
+ "sfg=6.0480 #in kJ/K\n",
+ "T=25 #temperature of surrounding air in celsius\n",
+ "dScm=-m*sfg #change in entropy of control mass in kJ/K\n",
+ "hfg=2257.0 #in kJ/kg\n",
+ "Qtosurroundings=m*hfg #heat transferred to surroundings in kJ\n",
+ "dSsurroundings=Qtosurroundings/(T+273.15) #in kJ/K\n",
+ "dSnet=dScm+dSsurroundings #net increase in entropy in kJ/K\n",
+ "print\" hence,net increase in entropy of water plus surroundings is \",round(dSnet,3),\"KJ/k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " hence,net increase in entropy of water plus surroundings is 1.522 KJ/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9:pg-309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#entropy generation\n",
+ "\n",
+ "Qout=1.0 #value of heat flux generated by 1kW of electric power\n",
+ "T=600.0 #temperature of hot wire surface in K\n",
+ "Sgen=Qout/T #entropy generation in kW/K\n",
+ "print\"\\n hence,entropy generation is\",round(Sgen,5),\"KW/k\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,entropy generation is 0.00167 KW/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.10:pg-310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#Determiining the entropy generated\n",
+ "\n",
+ "B=4.0#COP of air conditioner\n",
+ "W=10.0 #power input of air conditioner in kW\n",
+ "Qh=B*W #in kW\n",
+ "Ql=Qh-W #in kW\n",
+ "Thigh=323 #in Kelvin\n",
+ "Tlow=263 #in Kelvin\n",
+ "SgenHP=(Qh*1000/Thigh)-(Ql*1000/Tlow) #in W/K\n",
+ "Tl=281 # in K\n",
+ "Th=294 #in K\n",
+ "SgenCV1=Ql*1000/Tlow-Ql*1000/Tl #in W/K\n",
+ "SgenCV2=Qh*1000/Th-Qh*1000/Thigh #in W/K\n",
+ "SgenTOT=SgenCV1+SgenCV2+SgenHP #in W/K\n",
+ "print\" \\n Hence,Total entropy generated is\",round(SgenTOT,1),\"W/k\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " \n",
+ " Hence,Total entropy generated is 29.3 W/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter9.ipynb b/Fundamentals_Of_Thermodynamics/Chapter9.ipynb
new file mode 100755
index 00000000..c1f858fc
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter9.ipynb
@@ -0,0 +1,519 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7638f00c0629ff24b9e3c96e6eb43a103a0583de57d4e01375fbb8aa638bef10"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9:SECOND-LAW ANALYSIS FOR A CONTROL VOLUME"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex9.1:pg-336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#work done by steam\n",
+ "\n",
+ "hi=3051.2 #initial specific heat of enthalpy of steam in kJ/kg\n",
+ "si=7.1228 #initial specific entropy of steam in kJ/kg-K\n",
+ "Pe=0.15 #final pressure in MPa\n",
+ "se=si #specific entropy in final state in kJ/kg-K\n",
+ "sf=1.4335 #in kJ/kg-K\n",
+ "sfg=5.7897 #in kJ/kg-K\n",
+ "vi=50.0 #velocity with which steam enters turbine in m/s\n",
+ "ve=200.0 #velocity with which steam leaves the turbine in m/s\n",
+ "xe=(se-sf)/sfg #quality of steam in final state\n",
+ "hf=467.1 #in kJ/kg\n",
+ "hfg=2226.5 #in kJ/kg\n",
+ "he=hf+xe*hfg #final specific heat of enthalpy of steam in kJ/kg\n",
+ "w=hi+vi**2/(2*1000)-he-ve**2/(2*1000) #work of steam for isentropic process in kJ/kg\n",
+ "print\"\\n hence, work per kilogram of steam for this isentropic process is\",round(w,1),\"KJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, work per kilogram of steam for this isentropic process is 377.5 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2:pg-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#exit velocity of steam from nozzle\n",
+ "\n",
+ "hi=3051.2 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=7.1228 #initial specific entropy in kJ/kg-K\n",
+ "se=si #final specific entropy \n",
+ "Pe=0.3 #final pressure in MPa\n",
+ "print\"from steam table,various properties at final state are\"\n",
+ "he=2780.2 #final specific heat of enthalpy in kJ/kg-K\n",
+ "Te=159.1 #final temperature in celsius\n",
+ "vi=30.0 #velocity with which steam enters the nozzle in m/s\n",
+ "ve=((2*(hi-he)+(vi**2/1000))*1000)**0.5 #final velocity of steam with which it exits in m/s\n",
+ "print\"\\n hence,exit velocity of the steam from the nozzle is\",round(ve),\"m/s\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from steam table,various properties at final state are\n",
+ "\n",
+ " hence,exit velocity of the steam from the nozzle is 737.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3:pg-340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#violation of second law\n",
+ "\n",
+ "print\"from R-134a tables\"\n",
+ "se=1.7148 #specific entropy in final state in kJ/kg-K\n",
+ "si=1.7395 #initial specific entropy in kJ/kg-K \n",
+ "print\"therefore,se<si,whereas for this process the second law requires that se>=si.The process described involves a violation of the second law and thus would be impossible.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from R-134a tables\n",
+ "therefore,se<si,whereas for this process the second law requires that se>=si.The process described involves a violation of the second law and thus would be impossible.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4:pg-340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#calculating required specific work\n",
+ "\n",
+ "Cp=1.004 #specific heat of air at constant pressure in kJ/kg-K\n",
+ "Ti=290 #initial temperature in kelvins\n",
+ "Pi=100 #initial pressure in kPa\n",
+ "Pe=1000 #final pressure in kPa\n",
+ "k=1.4 \n",
+ "Te=Ti*(Pe/Pi)**((k-1)/k) #final temperature in kelvins\n",
+ "we=Cp*(Ti-Te) #required specific work in kJ/kg\n",
+ "print\"\\n hence,specific work required is\",round(we),\"kJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,specific work required is -271.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5:pg-342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#entropy generation\n",
+ "\n",
+ "h1=2865.54 #specific heat of enthalpy at state 1 in kJ/kg\n",
+ "h2=83.94 #specific heat of enthalpy at state 2 in kJ/kg\n",
+ "h3=2725.3 #specific heat of enthalpy at state 3 in kJ?kg\n",
+ "s1=7.3115 #specific entropy at state 1 in kJ/kg-K\n",
+ "s2=0.2966 #specific entropy at state 2 in kJ/kg-K\n",
+ "s3=6.9918 #specific entropy at state 3in kJ/kg-K\n",
+ "m1=2 #mass flow rate at state 1 in kg/s\n",
+ "m2=m1*(h1-h3)/(h3-h2) #mass flow rate at state 2 in kg/s\n",
+ "m3=m1+m2 #mass flow rate at state 3 in kg/s\n",
+ "Sgen=m3*s3-m1*s1-m2*s2 #entropy generation in the process\n",
+ "print\"\\n hence,entropy generated in this process is \",round(Sgen,3),\"kW/K\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,entropy generated in this process is 0.072 kW/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6:pg-344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#work required to fill the tank\n",
+ "import math\n",
+ "T1=17+273 #initial temperature of tank in Kelvins\n",
+ "sT1=6.83521 #specific entropy in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "P1=100 #initial pressure in kPa\n",
+ "P2=1000 #final pressure in kPa\n",
+ "sT2=sT1+R*math.log(P2/P1) #specific entropy at temperature T2 in kJ/kg-K\n",
+ "T2=555.7 #from interplotation \n",
+ "V1=0.04 #volume of tank in m^3\n",
+ "V2=V1 #final volume is equal to initial volume\n",
+ "m1=P1*V1/(R*T1) #initial mass of air in tank in kg\n",
+ "m2=P2*V2/(R*T2) #final mass of air in tank in kg\n",
+ "Min=m2-m1 #in kg\n",
+ "u1=207.19 #initial specific heat of enthalpy in kJ/kg\n",
+ "u2=401.49 #final specific heat of enthalpy in kJ/kg\n",
+ "hin=290.43 #in kJ/kg\n",
+ "W12=Min*hin+m1*u1-m2*u2 #work required to fill the tank in kJ\n",
+ "print\"\\n hence,the total amount of work required to fill the tank is\",round(W12,1),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the total amount of work required to fill the tank is -31.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7:pg-347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#work required to pump water isentropically \n",
+ "\n",
+ "P1=100 #initial pressure in kPa\n",
+ "P2=5000 #final pressure in kPa\n",
+ "v=0.001004 #specific volume in m^3/kg\n",
+ "w=v*(P2-P1) #work required to pump water isentropically\n",
+ "print\"\\n hence,work required to pump water isentropically is \",round(w,2),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,work required to pump water isentropically is 4.92 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8:pg-348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#Velocity in exit flow\n",
+ "\n",
+ "print\"From Steam Tables, for liquid water at 20 C\"\n",
+ "vf=0.001002 #in m^3/kg\n",
+ "v=vf\n",
+ "Pi=300 #Line pressure in kPa\n",
+ "Po=100 #in kPa\n",
+ "Ve=(2*v*(Pi-Po)*1000)**0.5 #velocity in the exit flow\n",
+ "print\" \\n Hence, an ideal nozzle can generate upto \",round(Ve),\"m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Steam Tables, for liquid water at 20 C\n",
+ " \n",
+ " Hence, an ideal nozzle can generate upto 20.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9:pg-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#Rate of Entropy Generation\n",
+ "\n",
+ "print\"From R-410a tables,we get\"\n",
+ "hi=280.6 #in kJ/kg\n",
+ "he=307.8 #in kJ/kg\n",
+ "si=1.0272 #in kJ/kg\n",
+ "se=1.0140 #in kJ/kg\n",
+ "m=0.08 #flow rate of refrigerant in kg/s\n",
+ "P=3 #electrical power input in kW\n",
+ "Qcv=m*(he-hi)-P #in kW\n",
+ "To=30 #in Celsius\n",
+ "Sgen=m*(se-si)-Qcv/(To+273.2) #rate of entropy generation \n",
+ "print\"\\n Hence,the rate of entropy generation for this process is\",round(Sgen,5),\"kW/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From R-410a tables,we get\n",
+ "\n",
+ " Hence,the rate of entropy generation for this process is 0.00166 kW/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10:pg-353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#turbine efficiency\n",
+ "\n",
+ "hi=3051.2 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=7.1228 #initial specific entropy in kJ/kg-K\n",
+ "sf=0.7548 #in kJ/kg-K\n",
+ "sfg=7.2536 #in kJ/kg-K\n",
+ "ses=si #final specific entropy is same as the initial\n",
+ "xes=(si-sf)/sfg #quality of steam when it leaves the turbine\n",
+ "hf=225.9 #in kJ/kg\n",
+ "hfg=2373.1 #in kJ/kg\n",
+ "hes=hf+xes*hfg #final specific heat of enthalpy in kJ/kg\n",
+ "ws=hi-hes #work output of turbine calculated ideally in kJ/kg\n",
+ "wa=600 #actual work output of turbine in kJ/kg\n",
+ "nturbine=wa/ws #efiiciency of turbine \n",
+ "print\"\\n hence,efficiency of the turbine is\",round(nturbine*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,efficiency of the turbine is 80.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11:pg-355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11\n",
+ "#turbine inlet pressure\n",
+ "import math\n",
+ "hi=1757.3 #initial specific heat of enthalpy of air in kJ/kg\n",
+ "si=8.6905 #initial specifc entropy of airin kJ/kg-K\n",
+ "he=855.3 #final specific heat of enthalpy of air in kJ/kg\n",
+ "w=hi-he #actual work done by turbine in kJ/kg\n",
+ "n=0.85 #efficiency of turbine \n",
+ "ws=w/n #ideal work done by turbine in kJ/kg\n",
+ "hes=hi-ws #from first law of isentropic process\n",
+ "Tes=683.7 #final temperature in kelvins from air tables\n",
+ "ses=7.7148 #in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "Pi=100/math.e**((si-ses)/-R) #turbine inlet pressure in kPa\n",
+ "print\"\\n hence,turbine inlet pressure is\",round(Pi),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,turbine inlet pressure is 2995.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.12:pg-357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12\n",
+ "#required work input\n",
+ "\n",
+ "Pe=150.0 #final pressure of air in kPa\n",
+ "Pi=100.0 #initial presure of air in kPa\n",
+ "k=1.4\n",
+ "Ti=300.0 #initial temperature of air in kelvis\n",
+ "Tes=Ti*(Pe/Pi)**((k-1)/k) #from second law\n",
+ "ws=1.004*(Ti-Tes) #from first law of isentropic process\n",
+ "n=0.7 #efficiency of automotive supercharger \n",
+ "w=ws/n #real work input in kJ/kg\n",
+ "Te=Ti-w/1.004 #temperature at supercharger exit in K\n",
+ "print\"\\n hence,required work input is \",round(w),\"kJ/kg\"\n",
+ "print\"\\n and exit temperature is \",round(Te,1),\"K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,required work input is -53.0 kJ/kg\n",
+ "\n",
+ " and exit temperature is 352.6 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/Chapter9_6.ipynb b/Fundamentals_Of_Thermodynamics/Chapter9_6.ipynb
new file mode 100755
index 00000000..db80c9d5
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/Chapter9_6.ipynb
@@ -0,0 +1,588 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:14f50faeadc2ed8de4732f59bac3e49ea9db1041eaf016b1692117fea4d3a511"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9:SECOND-LAW ANALYSIS FOR A CONTROL VOLUME"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex9.1:pg-336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#work done by steam\n",
+ "\n",
+ "hi=3051.2 #initial specific heat of enthalpy of steam in kJ/kg\n",
+ "si=7.1228 #initial specific entropy of steam in kJ/kg-K\n",
+ "Pe=0.15 #final pressure in MPa\n",
+ "se=si #specific entropy in final state in kJ/kg-K\n",
+ "sf=1.4335 #in kJ/kg-K\n",
+ "sfg=5.7897 #in kJ/kg-K\n",
+ "vi=50.0 #velocity with which steam enters turbine in m/s\n",
+ "ve=200.0 #velocity with which steam leaves the turbine in m/s\n",
+ "xe=(se-sf)/sfg #quality of steam in final state\n",
+ "hf=467.1 #in kJ/kg\n",
+ "hfg=2226.5 #in kJ/kg\n",
+ "he=hf+xe*hfg #final specific heat of enthalpy of steam in kJ/kg\n",
+ "w=hi+vi**2/(2*1000)-he-ve**2/(2*1000) #work of steam for isentropic process in kJ/kg\n",
+ "print\"\\n hence, work per kilogram of steam for this isentropic process is\",round(w,1),\"KJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence, work per kilogram of steam for this isentropic process is 377.5 KJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2:pg-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#exit velocity of steam from nozzle\n",
+ "\n",
+ "hi=3051.2 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=7.1228 #initial specific entropy in kJ/kg-K\n",
+ "se=si #final specific entropy \n",
+ "Pe=0.3 #final pressure in MPa\n",
+ "print\"from steam table,various properties at final state are\"\n",
+ "he=2780.2 #final specific heat of enthalpy in kJ/kg-K\n",
+ "Te=159.1 #final temperature in celsius\n",
+ "vi=30.0 #velocity with which steam enters the nozzle in m/s\n",
+ "ve=((2*(hi-he)+(vi**2/1000))*1000)**0.5 #final velocity of steam with which it exits in m/s\n",
+ "print\"\\n hence,exit velocity of the steam from the nozzle is\",round(ve),\"m/s\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from steam table,various properties at final state are\n",
+ "\n",
+ " hence,exit velocity of the steam from the nozzle is 737.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2E:pg-339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2E\n",
+ "#exit velocity of steam from nozzle\n",
+ "\n",
+ "hi=1279.1 #initial specific heat of enthalpy in Btu/lbm\n",
+ "si=1.7085 #initial specific entropy in Btu/lbm R\n",
+ "se=si #final specific entropy \n",
+ "Pe=40 #final pressure in lbf/in^2\n",
+ "he=1193.9 #final specific heat of enthalpy in Btu/lbm\n",
+ "Te=314.2 #final temperature in F\n",
+ "vi=100.0 #velocity with which steam enters the nozzle in ft/s\n",
+ "ve=((2*((hi-he)+(vi**2/(32.17*778)))*(32.17*778)))**0.5 #final velocity of steam with which it exits in ft/s\n",
+ "print\"\\n hence,exit velocity of the steam from the nozzle is\",round(ve),\"ft/s\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,exit velocity of the steam from the nozzle is 2070.0 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3:pg-340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#violation of second law\n",
+ "\n",
+ "print\"from R-134a tables\"\n",
+ "se=1.7148 #specific entropy in final state in kJ/kg-K\n",
+ "si=1.7395 #initial specific entropy in kJ/kg-K \n",
+ "print\"therefore,se<si,whereas for this process the second law requires that se>=si.The process described involves a violation of the second law and thus would be impossible.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from R-134a tables\n",
+ "therefore,se<si,whereas for this process the second law requires that se>=si.The process described involves a violation of the second law and thus would be impossible.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4:pg-340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#calculating required specific work\n",
+ "\n",
+ "Cp=1.004 #specific heat of air at constant pressure in kJ/kg-K\n",
+ "Ti=290 #initial temperature in kelvins\n",
+ "Pi=100 #initial pressure in kPa\n",
+ "Pe=1000 #final pressure in kPa\n",
+ "k=1.4 \n",
+ "Te=Ti*(Pe/Pi)**((k-1)/k) #final temperature in kelvins\n",
+ "we=Cp*(Ti-Te) #required specific work in kJ/kg\n",
+ "print\"\\n hence,specific work required is\",round(we),\"kJ/kg\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,specific work required is -271.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4E:pg-341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4E\n",
+ "#calculating required specific work\n",
+ "\n",
+ "Cp=0.24 #specific heat of air at constant pressure in Btu/lbm R\n",
+ "Ti=520 #initial temperature in R\n",
+ "Pi=14.7 #initial pressure in lbf/in^2\n",
+ "Pe=147 #final pressure in lbf/in^2\n",
+ "k=1.4 \n",
+ "Te=Ti*(Pe/Pi)**((k-1)/k) #final temperature in R\n",
+ "we=Cp*(Ti-Te) #required specific work in Btu/lbm\n",
+ "print\"\\n hence,specific work required is\",round(we,2),\"Btu/lbm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,specific work required is -116.15 Btu/lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5:pg-342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#entropy generation\n",
+ "\n",
+ "h1=2865.54 #specific heat of enthalpy at state 1 in kJ/kg\n",
+ "h2=83.94 #specific heat of enthalpy at state 2 in kJ/kg\n",
+ "h3=2725.3 #specific heat of enthalpy at state 3 in kJ?kg\n",
+ "s1=7.3115 #specific entropy at state 1 in kJ/kg-K\n",
+ "s2=0.2966 #specific entropy at state 2 in kJ/kg-K\n",
+ "s3=6.9918 #specific entropy at state 3in kJ/kg-K\n",
+ "m1=2 #mass flow rate at state 1 in kg/s\n",
+ "m2=m1*(h1-h3)/(h3-h2) #mass flow rate at state 2 in kg/s\n",
+ "m3=m1+m2 #mass flow rate at state 3 in kg/s\n",
+ "Sgen=m3*s3-m1*s1-m2*s2 #entropy generation in the process\n",
+ "print\"\\n hence,entropy generated in this process is \",round(Sgen,3),\"kW/K\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,entropy generated in this process is 0.072 kW/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6:pg-344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#work required to fill the tank\n",
+ "import math\n",
+ "T1=17+273 #initial temperature of tank in Kelvins\n",
+ "sT1=6.83521 #specific entropy in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "P1=100 #initial pressure in kPa\n",
+ "P2=1000 #final pressure in kPa\n",
+ "sT2=sT1+R*math.log(P2/P1) #specific entropy at temperature T2 in kJ/kg-K\n",
+ "T2=555.7 #from interplotation \n",
+ "V1=0.04 #volume of tank in m^3\n",
+ "V2=V1 #final volume is equal to initial volume\n",
+ "m1=P1*V1/(R*T1) #initial mass of air in tank in kg\n",
+ "m2=P2*V2/(R*T2) #final mass of air in tank in kg\n",
+ "Min=m2-m1 #in kg\n",
+ "u1=207.19 #initial specific heat of enthalpy in kJ/kg\n",
+ "u2=401.49 #final specific heat of enthalpy in kJ/kg\n",
+ "hin=290.43 #in kJ/kg\n",
+ "W12=Min*hin+m1*u1-m2*u2 #work required to fill the tank in kJ\n",
+ "print\"\\n hence,the total amount of work required to fill the tank is\",round(W12,1),\"kJ\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,the total amount of work required to fill the tank is -31.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7:pg-347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#work required to pump water isentropically \n",
+ "\n",
+ "P1=100 #initial pressure in kPa\n",
+ "P2=5000 #final pressure in kPa\n",
+ "v=0.001004 #specific volume in m^3/kg\n",
+ "w=v*(P2-P1) #work required to pump water isentropically\n",
+ "print\"\\n hence,work required to pump water isentropically is \",round(w,2),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,work required to pump water isentropically is 4.92 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8:pg-348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#Velocity in exit flow\n",
+ "\n",
+ "print\"From Steam Tables, for liquid water at 20 C\"\n",
+ "vf=0.001002 #in m^3/kg\n",
+ "v=vf\n",
+ "Pi=300 #Line pressure in kPa\n",
+ "Po=100 #in kPa\n",
+ "Ve=(2*v*(Pi-Po)*1000)**0.5 #velocity in the exit flow\n",
+ "print\" \\n Hence, an ideal nozzle can generate upto \",round(Ve),\"m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Steam Tables, for liquid water at 20 C\n",
+ " \n",
+ " Hence, an ideal nozzle can generate upto 20.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9:pg-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9\n",
+ "#Rate of Entropy Generation\n",
+ "\n",
+ "print\"From R-410a tables,we get\"\n",
+ "hi=280.6 #in kJ/kg\n",
+ "he=307.8 #in kJ/kg\n",
+ "si=1.0272 #in kJ/kg\n",
+ "se=1.0140 #in kJ/kg\n",
+ "m=0.08 #flow rate of refrigerant in kg/s\n",
+ "P=3 #electrical power input in kW\n",
+ "Qcv=m*(he-hi)-P #in kW\n",
+ "To=30 #in Celsius\n",
+ "Sgen=m*(se-si)-Qcv/(To+273.2) #rate of entropy generation \n",
+ "print\"\\n Hence,the rate of entropy generation for this process is\",round(Sgen,5),\"kW/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From R-410a tables,we get\n",
+ "\n",
+ " Hence,the rate of entropy generation for this process is 0.00166 kW/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10:pg-353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10\n",
+ "#turbine efficiency\n",
+ "\n",
+ "hi=3051.2 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=7.1228 #initial specific entropy in kJ/kg-K\n",
+ "sf=0.7548 #in kJ/kg-K\n",
+ "sfg=7.2536 #in kJ/kg-K\n",
+ "ses=si #final specific entropy is same as the initial\n",
+ "xes=(si-sf)/sfg #quality of steam when it leaves the turbine\n",
+ "hf=225.9 #in kJ/kg\n",
+ "hfg=2373.1 #in kJ/kg\n",
+ "hes=hf+xes*hfg #final specific heat of enthalpy in kJ/kg\n",
+ "ws=hi-hes #work output of turbine calculated ideally in kJ/kg\n",
+ "wa=600 #actual work output of turbine in kJ/kg\n",
+ "nturbine=wa/ws #efiiciency of turbine \n",
+ "print\"\\n hence,efficiency of the turbine is\",round(nturbine*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,efficiency of the turbine is 80.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11:pg-355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11\n",
+ "#turbine inlet pressure\n",
+ "import math\n",
+ "hi=1757.3 #initial specific heat of enthalpy of air in kJ/kg\n",
+ "si=8.6905 #initial specifc entropy of airin kJ/kg-K\n",
+ "he=855.3 #final specific heat of enthalpy of air in kJ/kg\n",
+ "w=hi-he #actual work done by turbine in kJ/kg\n",
+ "n=0.85 #efficiency of turbine \n",
+ "ws=w/n #ideal work done by turbine in kJ/kg\n",
+ "hes=hi-ws #from first law of isentropic process\n",
+ "Tes=683.7 #final temperature in kelvins from air tables\n",
+ "ses=7.7148 #in kJ/kg-K\n",
+ "R=0.287 #gas constant in kJ/kg-K\n",
+ "Pi=100/math.e**((si-ses)/-R) #turbine inlet pressure in kPa\n",
+ "print\"\\n hence,turbine inlet pressure is\",round(Pi),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,turbine inlet pressure is 2995.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.12:pg-357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12\n",
+ "#required work input\n",
+ "\n",
+ "Pe=150.0 #final pressure of air in kPa\n",
+ "Pi=100.0 #initial presure of air in kPa\n",
+ "k=1.4\n",
+ "Ti=300.0 #initial temperature of air in kelvis\n",
+ "Tes=Ti*(Pe/Pi)**((k-1)/k) #from second law\n",
+ "ws=1.004*(Ti-Tes) #from first law of isentropic process\n",
+ "n=0.7 #efficiency of automotive supercharger \n",
+ "w=ws/n #real work input in kJ/kg\n",
+ "Te=Ti-w/1.004 #temperature at supercharger exit in K\n",
+ "print\"\\n hence,required work input is \",round(w),\"kJ/kg\"\n",
+ "print\"\\n and exit temperature is \",round(Te,1),\"K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " hence,required work input is -53.0 kJ/kg\n",
+ "\n",
+ " and exit temperature is 352.6 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/README.txt b/Fundamentals_Of_Thermodynamics/README.txt
new file mode 100755
index 00000000..f9822be5
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/README.txt
@@ -0,0 +1,10 @@
+Contributed By: abhishek chauhan
+Course: btech
+College/Institute/Organization: ABES Engineering College Ghaziabad
+Department/Designation: electronics & communication engg
+Book Title: Fundamentals Of Thermodynamics
+Author: B. Claus And R. E. Sonntag
+Publisher: Wiley India Pvt. Ltd., New Delhi
+Year of publication: 2010
+Isbn: 978-81-265-2152-4
+Edition: 7 \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/chapter10.ipynb b/Fundamentals_Of_Thermodynamics/chapter10.ipynb
new file mode 100755
index 00000000..e985ae83
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/chapter10.ipynb
@@ -0,0 +1,474 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:498eddefb3635fb861c09bdd97718d2b72fb04f4d3b083cedbf9f6de28a92b4e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10:IRREVERSIBILITY AND AVAILABILITY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.1:pg-386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1\n",
+ "#Calculating reversible work\n",
+ "#Form the Steam Tables,the inlet and the exit state properties are \n",
+ "\n",
+ "hi=171.95 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=0.5705 #initial specific entropy in kJ/kg-K\n",
+ "se=2.1341 #final specific entropy in kJ/kg-K\n",
+ "he=765.34 #final specific heat of enthalpy in kJ/kg-K\n",
+ "m=5 #mass flow rate of feedwater in kg/s\n",
+ "q1=900/m #heat added by one of the sources in kJ/kg\n",
+ "q2=he-hi-q1 #second heat transfer in kJ/kg\n",
+ "To=25+273.3 #Temp. of the surroundings in K\n",
+ "T1=100+273.2 #temp. of reservoir of one of the source in K\n",
+ "T2=200+273.2 #temp. of reservoir of second source in K\n",
+ "wrev=To*(se-si)-(he-hi)+q1*(1-To/T1)+q2*(1-To/T2) #reversible work in kJ/kg\n",
+ "print\"\\n Hence, the irreversibility is\",round(wrev),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence, the irreversibility is 62.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2:pg-387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2\n",
+ "#Calculating reversible work\n",
+ "#Form the Steam Tables,the inlet and the exit state properties are\n",
+ "\n",
+ "hi=298.6 #initial specific heat of enthalpy in kJ/kg\n",
+ "si=6.8631 #initial specific entropy in kJ/kg-K\n",
+ "se=7.4664 #final specific entropy in kJ/kg-K\n",
+ "he=544.7 #final specific heat of enthalpy in kJ/kg-K\n",
+ "q=-50 #heat lost to surroundings in kJ/kg\n",
+ "w=hi-he+q #work in kJ/kg\n",
+ "To=25+273.2 #Temp. of the surroundings in K\n",
+ "P1=100 #Pressure of ambient air in kPa\n",
+ "P2=1000 #Final pressure of air after compression in kPa\n",
+ "R=0.287 #Universal gas constant in kJ/kg-K\n",
+ "wrev=To*(se-si-R*log(P2/P1))-(he-hi)+q*(1-To/To)#reversible work for the given change of state in kJ/kg\n",
+ "i=wrev-w #irreversibility in kJ/kg\n",
+ "print\"\\n Hence,the irreversibility is\",round(i,1),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence,the irreversibility is 32.8 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2E:pg-388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2E\n",
+ "#Calculating reversible work\n",
+ "#Form the Steam Tables,the inlet and the exit state properties are\n",
+ "\n",
+ "hi=129.18 #initial specific heat of enthalpy in Btu/lbm\n",
+ "si=1.6405 #initial specific entropy in Btu/lbm R\n",
+ "se=1.7803 #final specific entropy in Btu/lbm R\n",
+ "he=231.20 #final specific heat of enthalpy in Btu/lbm\n",
+ "q=-22 #heat lost to surroundings in Btu/lbm\n",
+ "w=hi-he+q #work in Btu/lbm\n",
+ "To=539.7 #Temp. of the surroundings in R\n",
+ "P1=14.7 #Pressure of ambient air in lbf/in^2\n",
+ "P2=150 #Final pressure of air after compression in lbf/in^2\n",
+ "R=0.06855 #Universal gas constant in Btu/lbm R\n",
+ "wrev=To*(se-si-R*log(P2/P1))-(he-hi)+q*(1-To/To)#reversible work for the given change of state in Btu/lbm\n",
+ "i=wrev-w #irreversibility in Btu/lbm\n",
+ "print\"\\n Hence,the irreversibility is\",round(i,2),\"Btu/lbm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Hence,the irreversibility is 11.52 Btu/lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.3:pg-390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3\n",
+ "#Calculating reversible work and irreversibility\n",
+ "#Form the Steam Tables at state 1\n",
+ "\n",
+ "u1=1243.5 #initial specific internal energy in kJ/kg\n",
+ "s1=4.4819 #initial specific entropy in kJ/kg-K\n",
+ "v1=28.895 #initial specific volume in m^3/kg\n",
+ "v2=2*v1 #final specific volume in kg/m^3\n",
+ "u2=u1 #initial specific internal energy in kJ/kg\n",
+ "#These two independent properties, v2 and u2 , fix state 2.The final temp. is calculated by interplotation using the data for T2=5C and v2,x=0/3928 and u=948.5 kJ/kg. For T2=10C and v2, x=0.5433 and u=1317 kJ/kg\n",
+ "T2=9.1+273.2 #final temp. in K\n",
+ "x2=0.513 #quality in final state\n",
+ "s2=4.644 #final specific entropy in kJ/kg\n",
+ "V1=1 #volume of part of A in m^3\n",
+ "m=V1/v1 #mass flow rate in kg/s\n",
+ "To=20+273.2 #Room temperature in K\n",
+ "Wrev=To*m*(s2-s1) #reversible work in kJ\n",
+ "I=Wrev #irreversibility of the process\n",
+ "print\"\\n The irreversibility is\",round(I,3),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " The irreversibility is 1.645 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.4:pg-391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4\n",
+ "#calculating the final mass in the tank and the irreversibility in the process\n",
+ "#From the ammonia tables, the initial and line state properties are\n",
+ "\n",
+ "V=1#volume of the rigid tank in m^3\n",
+ "v1=0.6995#initial specific volume in m^3/kg\n",
+ "u1=1369.5#initial specific internal energy in kJ/kg\n",
+ "s1=5.927#initial specific entropy in kJ/kg K\n",
+ "h1=134.41#initial specific heat of enthalpy in kJ/kg\n",
+ "si=0.5408#in kJ/kg K\n",
+ "m1=V/v1#initial mass in kg\n",
+ "x2=0.007182\n",
+ "v2=(0.001534 + x2 * 0.41684)#in m^3/kg\n",
+ "v2=round(v2,7)\n",
+ "s2=0.5762#final specific entropy in kJ/kg\n",
+ "m2=V/v2#the final mass in kg\n",
+ "mi=m2-m1#in kg\n",
+ "mi=round(mi,3)\n",
+ "T=293.15# in K\n",
+ "S2gen=(m2*s2-m1*s1-mi*si)#in kJ/kg\n",
+ "S2gen=round(S2gen,3)\n",
+ "Icv=T*S2gen#in kJ\n",
+ "print\"\\n the final mass is \",round(m2,2),\"kg\"\n",
+ "print\"\\n the irreversiblity is\",round(Icv,3),\"kJ\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " the final mass is 220.86 kg\n",
+ "\n",
+ " the irreversiblity is 34.885 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.5:pg-396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5\n",
+ "#calculating the availability per kilogram of the steam entering and at both points at which steam leaves the turbine,\n",
+ "#the isentropic efficiency,the second-law efficiency for this process\n",
+ "#For the ideal isentropic turbine,\n",
+ "\n",
+ "h0=104.9#in kJ/kg\n",
+ "s0=0.3674#entropy at state0 in kJ/kgK\n",
+ "m1=30#mass at state1 in kg\n",
+ "phi1=1109.6#in kJ/kg\n",
+ "h1=3115.3#enthalpy at state1 in kJ/kg\n",
+ "m2=5#mass at state2 in kg\n",
+ "phi2=755.3#in kJ/kg\n",
+ "h2=2855.4#enthalpy at state2 For the actual turbine in kJ/kg\n",
+ "m3=25#mass at state3 in kg\n",
+ "phi3=195.0#in kJ/kg\n",
+ "S2s=6.7428#entropy in kJ/kg K at state2\n",
+ "x2s=(6.7428-1.8606)/4.906# dryness factor at state2 \n",
+ "x2s=round(x2s,4)\n",
+ "h2s=640.2+(x2s*2108.5)#entropy at state2 for the ideal isentropic turbine\n",
+ "S3s=6.7428#entropy in kJ/kg K\n",
+ "x3s=(6.7428-0.7549)/7.2536# dryness factor at state3\n",
+ "x3s=round(x3s,4)\n",
+ "h3s=225.9+(x3s*2373.1)#enthalpy in kJ/kg\n",
+ "h3=2361.8#enthalpy at state3 For the actual turbine in kJ/kg\n",
+ "Ws=(m1*h1-m2*h2s-m3*h3s)#workdone for the ideal isentropic turbine in kW\n",
+ "W=(m1*h1-m2*h2-m3*h3)#workdone For the actual turbine in kW\n",
+ "W2=(m1*phi1-m2*phi2-m3*phi3)#workdone for the second ideal isentropic turbine in kW\n",
+ "eta1=W/Ws#The isentropic efficiency\n",
+ "eta2=W/W2#he second-law efficiency\n",
+ "print\"\\n the workdone for the ideal isentropic turbine is \",round(Ws),\"kW\"\n",
+ "print\"\\n the workdone for the actual turbine is \",round(W),\"kg\"\n",
+ "print\"\\n the workdone for the second ideal isentropic turbine is \",round(W2),\"kW\"\n",
+ "print\"\\n the isentropic efficiency is \",round(eta1,3)\n",
+ "print\"\\n the second-law efficiency is \",round(eta2,3)\n",
+ "#The answer of the x2s in the book is wrong.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " the workdone for the ideal isentropic turbine is 25145.0 kW\n",
+ "\n",
+ " the workdone for the actual turbine is 20137.0 kg\n",
+ "\n",
+ " the workdone for the second ideal isentropic turbine is 24637.0 kW\n",
+ "\n",
+ " the isentropic efficiency is 0.801\n",
+ "\n",
+ " the second-law efficiency is 0.817\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.6:pg-399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6\n",
+ "#calculate the second-law efficiency for this process and the irreversibility per kilogram of water evaporated\n",
+ "\n",
+ "he1=2950#enthalpy in kJ/kg\n",
+ "hi1=632.2#enthalpy in kJ/kg\n",
+ "he2=599.5#enthalpy in kJ/kg\n",
+ "hi2=1199#enthalpy in kJ/kg\n",
+ "#r=mp/mh\n",
+ "r=(he1-hi1)/(hi2-he2)#the ratio of the mass flow of water\n",
+ "T0=298.15#in K\n",
+ "S1=1.8418#entropy at state1 in kJ/kgK\n",
+ "S2=7.0384#entropy at state2 in kJ/kgK\n",
+ "S3=7.8751#entropy at state3 in kJ/kgK\n",
+ "S4=7.3173#entropy at state4 in kJ/kgK\n",
+ "#phi=phi2-phi1\n",
+ "phi=(he1-hi1)-T0*(S2-S1)#The increase in availability of the water is, per kilogram of water in kJ/kg\n",
+ "#w=(mp2/mh2)*(phi3-phi4)\n",
+ "w=r*((hi2-he2)-T0*(S3-S4))#The decrease in availability of the products, per kilogram of water in kJ/kg\n",
+ "eta=phi/w#the second-law efficiency\n",
+ "#i=I/mh\n",
+ "i=phi+w#the process irreversibility per kilogram of water in kJ/kg\n",
+ "#e=I2/mh2\n",
+ "e=(T0*(S2-S1)+(T0*r*(S4-S3)))#The total irreversibility in kJ/kg\n",
+ "print\"\\n the second law efficiency is \",round(eta,3)\n",
+ "print\"\\n the total irreversibility is \",round(e,2),\"kJ/kg\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " the second law efficiency is 0.459\n",
+ "\n",
+ " the total irreversibility is 906.38 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.7:pg-403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7\n",
+ "#calculate the heater\u2019s second-law efficiency\n",
+ "\n",
+ "h0=104.87#enthalpy in kJ/kg\n",
+ "s0=0.3673#entropy in kJ/kg K\n",
+ "h1=171.97#in kJ/kg\n",
+ "he=765.25#in kJ/kg\n",
+ "s1=0.5705#in kJ/kg K\n",
+ "T0=298.2#in C\n",
+ "se=2.1341#in kJ/kg K\n",
+ "shi1=(h1-h0)-T0*(s1-s0)#in kJ/kg\n",
+ "shie=(he-h0)-T0*(se-s0)#in kJ/kg\n",
+ "T1=373.2#in C\n",
+ "T2=473.2#in C\n",
+ "q1=180#heat at state1 in kJ\n",
+ "q2=413.28#heat at state2 in kJ\n",
+ "phisource1=(1-T0/T1)*q1#in kJ/kg\n",
+ "phisource2=(1-T0/T2)*q2#in kJ/kg\n",
+ "phisource=phisource1+phisource2#in kJ/kg\n",
+ "Icv=phisource+shi1-shie#in kJ/kg\n",
+ "eta2law=(phisource-Icv)/phisource#the heater\u2019s second-law efficiency\n",
+ "print\"\\n the heater\u2019s second-law efficiency is\",round(eta2law,2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " the heater\u2019s second-law efficiency is 0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.8:pg-404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8\n",
+ "#calculate any heat transfer downward, and follow the flux of exergy, and find the exergy destruction in the process.\n",
+ "Qout=500.0#in W\n",
+ "Qin=500.0#in W\n",
+ "Tsurf=1000.0#in K\n",
+ "T0=298.15#in K\n",
+ "Sgen1=Qout/Tsurf#in W/K\n",
+ "phides=(T0*Sgen1)#in W\n",
+ "phitrans=((1-T0/Tsurf)*Qout)#in W\n",
+ "Ttop=500#in K\n",
+ "Sgen2=(Qout/Ttop)-(Qin/Tsurf)#in W/K\n",
+ "Te=phitrans-phides-((1-T0/Ttop)*Qout)#the exergy destruction in the process\n",
+ "print\"\\n the exergy destruction in the process is\",round(Te)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " the exergy destruction in the process is 0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_Of_Thermodynamics/screenshots/heat_transfer_6.png b/Fundamentals_Of_Thermodynamics/screenshots/heat_transfer_6.png
new file mode 100755
index 00000000..c7a00e18
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/screenshots/heat_transfer_6.png
Binary files differ
diff --git a/Fundamentals_Of_Thermodynamics/screenshots/reversible_work_6.png b/Fundamentals_Of_Thermodynamics/screenshots/reversible_work_6.png
new file mode 100755
index 00000000..d4cf4f76
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/screenshots/reversible_work_6.png
Binary files differ
diff --git a/Fundamentals_Of_Thermodynamics/screenshots/velocity_6.png b/Fundamentals_Of_Thermodynamics/screenshots/velocity_6.png
new file mode 100755
index 00000000..1533cad6
--- /dev/null
+++ b/Fundamentals_Of_Thermodynamics/screenshots/velocity_6.png
Binary files differ
diff --git a/Fundamentals_of_Electrical_Drives/Chapter1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter1.ipynb
new file mode 100755
index 00000000..0d37525b
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter1.ipynb
@@ -0,0 +1,30 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 1:Electrical Drives-An Introduction"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter10.ipynb b/Fundamentals_of_Electrical_Drives/Chapter10.ipynb
new file mode 100755
index 00000000..5857660c
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter10.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Traction Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.1,Page No:320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Ma=480 #mass of each motor armature in kg 0.48tonne=480kg\n",
+ "Da=0.5 #average diameter of each motor in m\n",
+ "m=450 #mass of each wheel in kg\n",
+ "R=0.54 #radius of each wheel tread in m\n",
+ "M=40 #combine wight of one motor and one trailer coach in ton\n",
+ "alpha=5 #accelaration\n",
+ "N=4 #number of DC motors \n",
+ "a=0.4 #gear ratio\n",
+ "r=20 #train resistance\n",
+ "\n",
+ "#calculation\n",
+ "Jw=1/2*m*R**2 #inertia of the each wheel\n",
+ "nw=2*(N*2) #total number of wheels\n",
+ "J1=nw*Jw #total inertia of all the wheels\n",
+ "\n",
+ "Jm=N*(1/2*Ma*(Da/2)**2) #approximate inertia of all the motors\n",
+ "J2=Jm/a**2 #approximate innertia of the motor referred to the wheels\n",
+ "\n",
+ "Fa2=(J1+J2)*alpha*1000/3600/R #Tractive efforts for driving rorating parts\n",
+ "Fa1=277.8*M*alpha #tractive efforts to accelerate the train mass horizontally\n",
+ "Fr=r*M #Tractive efforts required to overcome train resistance\n",
+ "Ft=Fa1+Fa2+Fr #Tractive efforts required to move the train\n",
+ "Tm=a*R*Ft/N #torque per motor\n",
+ "\n",
+ "#results\n",
+ "print\"\\nTorque per motor:Tm=\",round(Tm,1),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Torque per motor:Tm= 3241.3 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.2,Page No:321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "M=100 #mass of each motor armature in tonne\n",
+ "Me=100\n",
+ "Tm=5000 #torque of each motor in N-m\n",
+ "Da=0.5 #average diameter of each motor in m\n",
+ "m=450 #mass of each wheel in kg\n",
+ "R=0.54 #radius of each wheel tread in m\n",
+ "N=4 #number of DC motors \n",
+ "r=25 #train resistance N/tonne\n",
+ "a=0.25 #gear ratio \n",
+ "nt=0.98 #gear transmission efficiency\n",
+ "G=50 #up gradient\n",
+ "Vm=100 #speed in kmph\n",
+ "\n",
+ "#calculation \n",
+ "Ft=nt*Tm*N/a/R #Tractive efforts required to move the train\n",
+ "alpha=(Ft-(9.81*M*G+M*r))/(277.8*1.1*Me) #accelaration\n",
+ "t=Vm/alpha #time taken to attain speed of Vm\n",
+ "\n",
+ "#results\n",
+ "print\"\\n time taken to reach a speed of 100kmph is :t=\",round(t,1),\"sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " time taken to reach a speed of 100kmph is :t= 32.6 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.3,Page No:321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "G=8 #up gradient\n",
+ "r=25 #train resistance N/tonne\n",
+ "M=500 #mass of the electric train in tonne\n",
+ "n=0.8 #combine effiency of transmission and motor\n",
+ "#speed time curve characteristics\n",
+ "t1=60 #characteristic for uniform accelaration at v1 in sec\n",
+ "alpha=2.5 #given accelaration in km/hr/sec at t1\n",
+ "t2=5*60 #characteristic for constant speed in sec \n",
+ "t3=3*60 #characteristic for coasting in sec\n",
+ "B=3 #dynamic braking deceleration in km/hr/sec\n",
+ "\n",
+ "#calculation\n",
+ "Vm=alpha*t1 #peak voltage\n",
+ "Fg=9.81*M*G #tractive effort required to overcome the force of gravity\n",
+ "Fr=M*r #tractive effort required to overcome the train resistance\n",
+ "F_bc=Fg+Fr #retarding force during coasting\n",
+ "\n",
+ "Me=1.1*M\n",
+ "B_c=F_bc/(277.8*Me) #deceleration during coasting\n",
+ "V=Vm-B_c*t3 #speed after coasting\n",
+ "t4=V/B #characteristic for a dynamic braking of 3km/hr/sec\n",
+ "\n",
+ "d1=1/2*Vm*t1/3600 #distance covered during accelaration \n",
+ "d2=Vm*t2/3600 #distance covered during constant speed\n",
+ "d3=1/2*(Vm+V)*t3/3600 #distance covered coasting\n",
+ "d4=1/2*V*t4/3600 #distance covered during braking\n",
+ "D=d1+d2+d3+d4 #distance during stops\n",
+ "D1=d1+d2\n",
+ "x=D1/D\n",
+ "y=1-x\n",
+ "E=(0.01072*Vm**2/D)*(Me/M)+2.725*G*x+0.2778*r*x #specific energy output\n",
+ "Eo=E/n #specific energy consumption\n",
+ "\n",
+ "#results\n",
+ "print\"\\n Specific energy consumption is :Eo=\",round(Eo,1),\"Whptpkm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Specific energy consumption is :Eo= 41.1 Whptpkm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.4,Page No:323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "G=20 #up gradient\n",
+ "r=25 #train resistance N/tonne\n",
+ "M=500 #mass of the electric train in tonne\n",
+ "n=0.8 #combine effiency of transmission and motor\n",
+ "#speed time curve characteristics\n",
+ "t1=50 #characteristic for uniform accelaration at v1 in sec\n",
+ "alpha=3 #given accelaration in km/hr/sec at t1\n",
+ "t2=10*60 #characteristic for constant speed in sec \n",
+ "B=2.5 #uniform braking deceleration in kmphs to rest\n",
+ "\n",
+ "\n",
+ "#calculation \n",
+ "Vm=alpha*t1 #peak voltage\n",
+ "t3=Vm/B #characteristic for a uniform braking of B=2.5 kmphs\n",
+ "\n",
+ "#(i)during accelaration total tractive effort \n",
+ "Me=1.1*M\n",
+ "Fta=277.8*Me*alpha-9.81*M*G+M*r #total tractive effort during accelaration\n",
+ "Da=1/2*Vm*t1/3600 #distance covered during accelaration ,and t1 is in seconds\n",
+ "Ea=Fta*Da*1000/3600 #energy output during accleration in Wh\n",
+ "\n",
+ "#(ii)during uniform speed net tractive effort\n",
+ "Ftu=-9.81*M*G+M*r #total tractive effort during uniform speed\n",
+ "#the answer for Ftu in the book is -105220 N which is wrong which leads to the other incorrect answers in the book\n",
+ "\n",
+ "Du=Vm*t2/3600 #distance traveled,and t2 is in seconds\n",
+ "Eu=Ftu*Du*1000/3600 #energy output in Wh\n",
+ "\n",
+ "#(iii)during braking net tractive effort\n",
+ "Ftb=-277.8*Me*B-9.81*M*G+M*r #total tractive effort for the net braking\n",
+ "Db=1/2*Vm*t3/3600 #distance covered during braking\n",
+ "Eb=Ftb*Db*1000/3600 #energy output during braking in Wh\n",
+ "\n",
+ "E=Ea/n+n*(Eu+Eb) #net energy consumption\n",
+ "D=Da+Du+Db #total distance traveled\n",
+ "Eo=E/(M*D) #specific energy consumption\n",
+ "\n",
+ "#results \n",
+ "print\"(i)Energy consumption during accelaration is :Ea :\",round(Ea),\"Wh\"\n",
+ "print\" There is a slight difference in the answer due to the number of decimal place\"\n",
+ "print\"\\n(ii)Energy consumption during uniform speed is :Eu :\",round(Eu),\"Wh\" \n",
+ "print\"\\n(iii)Energy consumption during braking is :Eb :\",round(Eb,1),\"Wh\" \n",
+ "print\"\\n Net Energy consumption is E :\",round(E,1),\"Wh\" \n",
+ "print\"\\n Total Distance traveled is D :\",round(D,4),\"km\"\n",
+ "print\"\\n Specific Energy consumption is Eo :\",round(Eo,2),\"Whptpkm\"\n",
+ "#answers in the book are incorrect\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Energy consumption during accelaration is :Ea : 107862.0 Wh\n",
+ " There is a slight difference in the answer due to the number of decimal place\n",
+ "\n",
+ "(ii)Energy consumption during uniform speed is :Eu : -594444.0 Wh\n",
+ "\n",
+ "(iii)Energy consumption during braking is :Eb : -162352.4 Wh\n",
+ "\n",
+ " Net Energy consumption is E : -470610.4 Wh\n",
+ "\n",
+ " Total Distance traveled is D : 27.2917 km\n",
+ "\n",
+ " Specific Energy consumption is Eo : -34.49 Whptpkm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.5,Page No:325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Mm=40 #weight of the motor coach in tonne\n",
+ "Mt=35 #weight of the trailer in tonne\n",
+ "u=0.2 #co-efficient of adhesion\n",
+ "r=30 #train resistance N/tonne\n",
+ "\n",
+ "#calculation\n",
+ "#(a)when the motor to trailer ratio is 1:2\n",
+ "M=Mm+2*Mt #weight of one unit\n",
+ "Me=1.1*M\n",
+ "Md=40 #weight on the driving wheels\n",
+ "Fm=9810*u*Md #total tractive effort without the wheel\n",
+ "Ft=Fm #at maximum accelaration \n",
+ "alpha=(Ft-M*r)/(277.8*Me) #required accelaration since Ft=277.8*u*alpha*M*r\n",
+ "\n",
+ "#(b)when the motor to trailer ratio is 1:1\n",
+ "M=Mm+Mt #weight of one unit\n",
+ "Me=1.1*M\n",
+ "Md=40 #weight on the driving wheels\n",
+ "Fm=9810*u*Md #total tractive effort wihout the wheel\n",
+ "Ft=Fm #at maximum accelaration \n",
+ "alpha1=(Ft-M*r)/(277.8*Me) #required accelaration since Ft=277.8*u*alpha*M*r\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(a)maximum accelaration on a level track is alpha :\",round(alpha,4),\"kmphps\"\n",
+ "print\"\\n(b)maximum accelaration when motor to trailer coaches ratio is 1:1 is alpha :\",round(alpha1,3),\"kmphps\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)maximum accelaration on a level track is alpha : 2.2366 kmphps\n",
+ "\n",
+ "(b)maximum accelaration when motor to trailer coaches ratio is 1:1 is alpha : 3.326 kmphps\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.6,Page No:326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "G=10 #up gradient of the locomotive\n",
+ "Ml=110 #weight of the locomotive coach in tonne\n",
+ "Mt=500 #weight of the train in tonne\n",
+ "r=35 #train resistance N/tonne\n",
+ "n=0.8 #80% of the locomotive weight is carried by the driving wheels\n",
+ "alpha=1 #acelaration in kmphps\n",
+ "\n",
+ "#calculation\n",
+ "#when only the 110 tonne locomotive is present\n",
+ "Md=Ml*n #weight of the motor\n",
+ "M=Mt+Ml #total mass of the train\n",
+ "Me=1.1*M\n",
+ "Ft=277.8*Me*alpha+9.81*M*G+M*r #total tractive effort required to move the train\n",
+ "Fm=Ft\n",
+ "u=Fm/(9810*Md) #co-efficient of adhesion ,since Fm=9810*u*Md\n",
+ "\n",
+ "#when another locomotive of 70 is added together\n",
+ "Md=Ml*n+70 # mass of the motor\n",
+ "M_=Mt+Ml+70 # mass of the train\n",
+ "Fm=9810*u*Md\n",
+ "Ft=Fm\n",
+ "M=Ft/(277.8*1.1*alpha+9.81*G+r) #total mass of the train, since Ft=277.8*Me*alpha+9.81*M*G+M*r\n",
+ "W=M-M_ #weight of additional bogies to be attached\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"\\n Given co-efficient of adhesion is:\",round(u,2)\n",
+ "print\"\\n Weight of additional bogies to be attached is:\",round(W,1),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Given co-efficient of adhesion is: 0.31\n",
+ "\n",
+ " Weight of additional bogies to be attached is: 415.2 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.7,Page No:327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Ml=1000 #weight of the empty train in tonne\n",
+ "Mt=5000 #weight of the fully loaded train in tonne\n",
+ "G=15 #gradient of the track\n",
+ "V=30 #maximum speed of the train \n",
+ "r=40 #train resistance in N/tonne\n",
+ "u=0.25 #co-efficient of adhesion\n",
+ "alpha=0.3 #acelaration in kmphps\n",
+ "\n",
+ "W=100 #weight of each locomotive\n",
+ "\n",
+ "#calculation\n",
+ "Md=W*n\n",
+ "Fm=9810*u*Md #total tractive without wheel\n",
+ "Fb=9.81*(Mt+W*n)*G-(Mt+W*n)*r \n",
+ "print\"\\nFm=\",Fm\n",
+ "print\"\\nFb=\",Fb\n",
+ "print\"\\nequating Fb and Fm we get\"\n",
+ "n=535750/(245250-10715) #number of locomotive required\n",
+ "\n",
+ "#results\n",
+ "if (n>2) : \n",
+ " n=3\n",
+ "print\"\\nThe number of locomotives is n:\",n \n",
+ "Md=W*n\n",
+ "M=Ml+W*n\n",
+ "Ft=277.8*1.1*M*alpha+9.81*M*G+M*r #tractive effore required to move the train\n",
+ "Fm=9810*0.3*Md\n",
+ "if (Fm>Ft) :\n",
+ " print\"\\nThe train can be accelarated with \",n,\"locomotives\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'n' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m<ipython-input-4-e0b827f6bbd9>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;31m#calculation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mMd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mW\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 17\u001b[0m \u001b[0mFm\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m9810\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mMd\u001b[0m \u001b[0;31m#total tractive without wheel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mFb\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m9.81\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMt\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mW\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMt\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mW\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mNameError\u001b[0m: name 'n' is not defined"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter10_1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter10_1.ipynb
new file mode 100755
index 00000000..5857660c
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter10_1.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Traction Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.1,Page No:320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Ma=480 #mass of each motor armature in kg 0.48tonne=480kg\n",
+ "Da=0.5 #average diameter of each motor in m\n",
+ "m=450 #mass of each wheel in kg\n",
+ "R=0.54 #radius of each wheel tread in m\n",
+ "M=40 #combine wight of one motor and one trailer coach in ton\n",
+ "alpha=5 #accelaration\n",
+ "N=4 #number of DC motors \n",
+ "a=0.4 #gear ratio\n",
+ "r=20 #train resistance\n",
+ "\n",
+ "#calculation\n",
+ "Jw=1/2*m*R**2 #inertia of the each wheel\n",
+ "nw=2*(N*2) #total number of wheels\n",
+ "J1=nw*Jw #total inertia of all the wheels\n",
+ "\n",
+ "Jm=N*(1/2*Ma*(Da/2)**2) #approximate inertia of all the motors\n",
+ "J2=Jm/a**2 #approximate innertia of the motor referred to the wheels\n",
+ "\n",
+ "Fa2=(J1+J2)*alpha*1000/3600/R #Tractive efforts for driving rorating parts\n",
+ "Fa1=277.8*M*alpha #tractive efforts to accelerate the train mass horizontally\n",
+ "Fr=r*M #Tractive efforts required to overcome train resistance\n",
+ "Ft=Fa1+Fa2+Fr #Tractive efforts required to move the train\n",
+ "Tm=a*R*Ft/N #torque per motor\n",
+ "\n",
+ "#results\n",
+ "print\"\\nTorque per motor:Tm=\",round(Tm,1),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Torque per motor:Tm= 3241.3 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.2,Page No:321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "M=100 #mass of each motor armature in tonne\n",
+ "Me=100\n",
+ "Tm=5000 #torque of each motor in N-m\n",
+ "Da=0.5 #average diameter of each motor in m\n",
+ "m=450 #mass of each wheel in kg\n",
+ "R=0.54 #radius of each wheel tread in m\n",
+ "N=4 #number of DC motors \n",
+ "r=25 #train resistance N/tonne\n",
+ "a=0.25 #gear ratio \n",
+ "nt=0.98 #gear transmission efficiency\n",
+ "G=50 #up gradient\n",
+ "Vm=100 #speed in kmph\n",
+ "\n",
+ "#calculation \n",
+ "Ft=nt*Tm*N/a/R #Tractive efforts required to move the train\n",
+ "alpha=(Ft-(9.81*M*G+M*r))/(277.8*1.1*Me) #accelaration\n",
+ "t=Vm/alpha #time taken to attain speed of Vm\n",
+ "\n",
+ "#results\n",
+ "print\"\\n time taken to reach a speed of 100kmph is :t=\",round(t,1),\"sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " time taken to reach a speed of 100kmph is :t= 32.6 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.3,Page No:321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "G=8 #up gradient\n",
+ "r=25 #train resistance N/tonne\n",
+ "M=500 #mass of the electric train in tonne\n",
+ "n=0.8 #combine effiency of transmission and motor\n",
+ "#speed time curve characteristics\n",
+ "t1=60 #characteristic for uniform accelaration at v1 in sec\n",
+ "alpha=2.5 #given accelaration in km/hr/sec at t1\n",
+ "t2=5*60 #characteristic for constant speed in sec \n",
+ "t3=3*60 #characteristic for coasting in sec\n",
+ "B=3 #dynamic braking deceleration in km/hr/sec\n",
+ "\n",
+ "#calculation\n",
+ "Vm=alpha*t1 #peak voltage\n",
+ "Fg=9.81*M*G #tractive effort required to overcome the force of gravity\n",
+ "Fr=M*r #tractive effort required to overcome the train resistance\n",
+ "F_bc=Fg+Fr #retarding force during coasting\n",
+ "\n",
+ "Me=1.1*M\n",
+ "B_c=F_bc/(277.8*Me) #deceleration during coasting\n",
+ "V=Vm-B_c*t3 #speed after coasting\n",
+ "t4=V/B #characteristic for a dynamic braking of 3km/hr/sec\n",
+ "\n",
+ "d1=1/2*Vm*t1/3600 #distance covered during accelaration \n",
+ "d2=Vm*t2/3600 #distance covered during constant speed\n",
+ "d3=1/2*(Vm+V)*t3/3600 #distance covered coasting\n",
+ "d4=1/2*V*t4/3600 #distance covered during braking\n",
+ "D=d1+d2+d3+d4 #distance during stops\n",
+ "D1=d1+d2\n",
+ "x=D1/D\n",
+ "y=1-x\n",
+ "E=(0.01072*Vm**2/D)*(Me/M)+2.725*G*x+0.2778*r*x #specific energy output\n",
+ "Eo=E/n #specific energy consumption\n",
+ "\n",
+ "#results\n",
+ "print\"\\n Specific energy consumption is :Eo=\",round(Eo,1),\"Whptpkm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Specific energy consumption is :Eo= 41.1 Whptpkm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.4,Page No:323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "G=20 #up gradient\n",
+ "r=25 #train resistance N/tonne\n",
+ "M=500 #mass of the electric train in tonne\n",
+ "n=0.8 #combine effiency of transmission and motor\n",
+ "#speed time curve characteristics\n",
+ "t1=50 #characteristic for uniform accelaration at v1 in sec\n",
+ "alpha=3 #given accelaration in km/hr/sec at t1\n",
+ "t2=10*60 #characteristic for constant speed in sec \n",
+ "B=2.5 #uniform braking deceleration in kmphs to rest\n",
+ "\n",
+ "\n",
+ "#calculation \n",
+ "Vm=alpha*t1 #peak voltage\n",
+ "t3=Vm/B #characteristic for a uniform braking of B=2.5 kmphs\n",
+ "\n",
+ "#(i)during accelaration total tractive effort \n",
+ "Me=1.1*M\n",
+ "Fta=277.8*Me*alpha-9.81*M*G+M*r #total tractive effort during accelaration\n",
+ "Da=1/2*Vm*t1/3600 #distance covered during accelaration ,and t1 is in seconds\n",
+ "Ea=Fta*Da*1000/3600 #energy output during accleration in Wh\n",
+ "\n",
+ "#(ii)during uniform speed net tractive effort\n",
+ "Ftu=-9.81*M*G+M*r #total tractive effort during uniform speed\n",
+ "#the answer for Ftu in the book is -105220 N which is wrong which leads to the other incorrect answers in the book\n",
+ "\n",
+ "Du=Vm*t2/3600 #distance traveled,and t2 is in seconds\n",
+ "Eu=Ftu*Du*1000/3600 #energy output in Wh\n",
+ "\n",
+ "#(iii)during braking net tractive effort\n",
+ "Ftb=-277.8*Me*B-9.81*M*G+M*r #total tractive effort for the net braking\n",
+ "Db=1/2*Vm*t3/3600 #distance covered during braking\n",
+ "Eb=Ftb*Db*1000/3600 #energy output during braking in Wh\n",
+ "\n",
+ "E=Ea/n+n*(Eu+Eb) #net energy consumption\n",
+ "D=Da+Du+Db #total distance traveled\n",
+ "Eo=E/(M*D) #specific energy consumption\n",
+ "\n",
+ "#results \n",
+ "print\"(i)Energy consumption during accelaration is :Ea :\",round(Ea),\"Wh\"\n",
+ "print\" There is a slight difference in the answer due to the number of decimal place\"\n",
+ "print\"\\n(ii)Energy consumption during uniform speed is :Eu :\",round(Eu),\"Wh\" \n",
+ "print\"\\n(iii)Energy consumption during braking is :Eb :\",round(Eb,1),\"Wh\" \n",
+ "print\"\\n Net Energy consumption is E :\",round(E,1),\"Wh\" \n",
+ "print\"\\n Total Distance traveled is D :\",round(D,4),\"km\"\n",
+ "print\"\\n Specific Energy consumption is Eo :\",round(Eo,2),\"Whptpkm\"\n",
+ "#answers in the book are incorrect\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Energy consumption during accelaration is :Ea : 107862.0 Wh\n",
+ " There is a slight difference in the answer due to the number of decimal place\n",
+ "\n",
+ "(ii)Energy consumption during uniform speed is :Eu : -594444.0 Wh\n",
+ "\n",
+ "(iii)Energy consumption during braking is :Eb : -162352.4 Wh\n",
+ "\n",
+ " Net Energy consumption is E : -470610.4 Wh\n",
+ "\n",
+ " Total Distance traveled is D : 27.2917 km\n",
+ "\n",
+ " Specific Energy consumption is Eo : -34.49 Whptpkm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.5,Page No:325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Mm=40 #weight of the motor coach in tonne\n",
+ "Mt=35 #weight of the trailer in tonne\n",
+ "u=0.2 #co-efficient of adhesion\n",
+ "r=30 #train resistance N/tonne\n",
+ "\n",
+ "#calculation\n",
+ "#(a)when the motor to trailer ratio is 1:2\n",
+ "M=Mm+2*Mt #weight of one unit\n",
+ "Me=1.1*M\n",
+ "Md=40 #weight on the driving wheels\n",
+ "Fm=9810*u*Md #total tractive effort without the wheel\n",
+ "Ft=Fm #at maximum accelaration \n",
+ "alpha=(Ft-M*r)/(277.8*Me) #required accelaration since Ft=277.8*u*alpha*M*r\n",
+ "\n",
+ "#(b)when the motor to trailer ratio is 1:1\n",
+ "M=Mm+Mt #weight of one unit\n",
+ "Me=1.1*M\n",
+ "Md=40 #weight on the driving wheels\n",
+ "Fm=9810*u*Md #total tractive effort wihout the wheel\n",
+ "Ft=Fm #at maximum accelaration \n",
+ "alpha1=(Ft-M*r)/(277.8*Me) #required accelaration since Ft=277.8*u*alpha*M*r\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(a)maximum accelaration on a level track is alpha :\",round(alpha,4),\"kmphps\"\n",
+ "print\"\\n(b)maximum accelaration when motor to trailer coaches ratio is 1:1 is alpha :\",round(alpha1,3),\"kmphps\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)maximum accelaration on a level track is alpha : 2.2366 kmphps\n",
+ "\n",
+ "(b)maximum accelaration when motor to trailer coaches ratio is 1:1 is alpha : 3.326 kmphps\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.6,Page No:326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "G=10 #up gradient of the locomotive\n",
+ "Ml=110 #weight of the locomotive coach in tonne\n",
+ "Mt=500 #weight of the train in tonne\n",
+ "r=35 #train resistance N/tonne\n",
+ "n=0.8 #80% of the locomotive weight is carried by the driving wheels\n",
+ "alpha=1 #acelaration in kmphps\n",
+ "\n",
+ "#calculation\n",
+ "#when only the 110 tonne locomotive is present\n",
+ "Md=Ml*n #weight of the motor\n",
+ "M=Mt+Ml #total mass of the train\n",
+ "Me=1.1*M\n",
+ "Ft=277.8*Me*alpha+9.81*M*G+M*r #total tractive effort required to move the train\n",
+ "Fm=Ft\n",
+ "u=Fm/(9810*Md) #co-efficient of adhesion ,since Fm=9810*u*Md\n",
+ "\n",
+ "#when another locomotive of 70 is added together\n",
+ "Md=Ml*n+70 # mass of the motor\n",
+ "M_=Mt+Ml+70 # mass of the train\n",
+ "Fm=9810*u*Md\n",
+ "Ft=Fm\n",
+ "M=Ft/(277.8*1.1*alpha+9.81*G+r) #total mass of the train, since Ft=277.8*Me*alpha+9.81*M*G+M*r\n",
+ "W=M-M_ #weight of additional bogies to be attached\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"\\n Given co-efficient of adhesion is:\",round(u,2)\n",
+ "print\"\\n Weight of additional bogies to be attached is:\",round(W,1),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Given co-efficient of adhesion is: 0.31\n",
+ "\n",
+ " Weight of additional bogies to be attached is: 415.2 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:10.7,Page No:327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Ml=1000 #weight of the empty train in tonne\n",
+ "Mt=5000 #weight of the fully loaded train in tonne\n",
+ "G=15 #gradient of the track\n",
+ "V=30 #maximum speed of the train \n",
+ "r=40 #train resistance in N/tonne\n",
+ "u=0.25 #co-efficient of adhesion\n",
+ "alpha=0.3 #acelaration in kmphps\n",
+ "\n",
+ "W=100 #weight of each locomotive\n",
+ "\n",
+ "#calculation\n",
+ "Md=W*n\n",
+ "Fm=9810*u*Md #total tractive without wheel\n",
+ "Fb=9.81*(Mt+W*n)*G-(Mt+W*n)*r \n",
+ "print\"\\nFm=\",Fm\n",
+ "print\"\\nFb=\",Fb\n",
+ "print\"\\nequating Fb and Fm we get\"\n",
+ "n=535750/(245250-10715) #number of locomotive required\n",
+ "\n",
+ "#results\n",
+ "if (n>2) : \n",
+ " n=3\n",
+ "print\"\\nThe number of locomotives is n:\",n \n",
+ "Md=W*n\n",
+ "M=Ml+W*n\n",
+ "Ft=277.8*1.1*M*alpha+9.81*M*G+M*r #tractive effore required to move the train\n",
+ "Fm=9810*0.3*Md\n",
+ "if (Fm>Ft) :\n",
+ " print\"\\nThe train can be accelarated with \",n,\"locomotives\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'n' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m<ipython-input-4-e0b827f6bbd9>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;31m#calculation\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mMd\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mW\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 17\u001b[0m \u001b[0mFm\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m9810\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mMd\u001b[0m \u001b[0;31m#total tractive without wheel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mFb\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m9.81\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMt\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mW\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMt\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mW\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mNameError\u001b[0m: name 'n' is not defined"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter11.ipynb b/Fundamentals_of_Electrical_Drives/Chapter11.ipynb
new file mode 100755
index 00000000..d1eb8d21
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter11.ipynb
@@ -0,0 +1,30 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 11:Energy Conservation in Electrical Drives"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter12.ipynb b/Fundamentals_of_Electrical_Drives/Chapter12.ipynb
new file mode 100755
index 00000000..3e156921
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter12.ipynb
@@ -0,0 +1,30 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 12:Electrical Drive System and Components"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter2.ipynb b/Fundamentals_of_Electrical_Drives/Chapter2.ipynb
new file mode 100755
index 00000000..631ed1b1
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter2.ipynb
@@ -0,0 +1,190 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 2:Dynamics of Electric Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:2.1,Page no:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Jo=0.2 # inertia of the motor in kg-m2\n",
+ "a1=0.1 # reduction gear\n",
+ "J1=10 # inertia of the load in kg-m2\n",
+ "Tl1=10 # load torque\n",
+ "v=1.5 # speed of the translational load \n",
+ "M1=1000 # mass of the translational load\n",
+ "N=1420 # speed of the motor\n",
+ "n1=.9 # efficiency of the reduction gear\n",
+ "n1_=0.85 # efficiency of the translational load and the motor\n",
+ "F1=M1*9.81 # force of the translational load \n",
+ "\n",
+ "#Calculation\n",
+ "Wm=N*math.pi/30 #angular speed\n",
+ "J=Jo+a1**2*J1+ M1*(v/Wm)**2 # total equivalent moment of inertia\n",
+ "Tl= a1*Tl1/n1+F1/n1_*(v/Wm) # total equivalent torque\n",
+ "\n",
+ "#Result\n",
+ "print\"\\nEquivalent moment of inertia is :\",round(J,1),\"kg-m2\"\n",
+ "print\"\\nEquivalent load torque :\",round(Tl,2),\"N-m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Equivalent moment of inertia is: 0.4 kg-m2\n",
+ "\n",
+ "Equivalent load torque : 117.53 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:2.2,Page no:22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "J=10 #moment of inertia of the drive in kg-m2\n",
+ "print(\"Passive load torque during steady state is :Tl=0.05*N in N-m\")\n",
+ "print(\"And load torque : T=100-0.1*N in N-m \")\n",
+ "print(\"load torque when the direction is reversed T=-100-0.1*N in N-m\")\n",
+ "\n",
+ "#Calculation\n",
+ "print(\"T-Tl=0\")\n",
+ "print(\"100-0.1*N-0.05*N=0\")\n",
+ "N=100/0.15 #Required speed of the motor in rpm during steady state\n",
+ "N2=-100/0.15 #During reversal speed is in opposite direction\n",
+ "print(\"\\nJdWm/dt=-100-0.1*N-0.05*N during reversing\")\n",
+ "print(\"dN/dt=30/(J*pi)*(-100-0.15*N)\")\n",
+ "print(\"dN/dt=(-95.49-0.143*N)\")\n",
+ "N1=N\n",
+ "N2=N2*0.95 #for speed reversal \n",
+ "x2 = lambda N: 1/(-95.49-0.143*N)\n",
+ "t=integrate.quad(x2, round(N1), round(N2))\n",
+ "\n",
+ "#result\n",
+ "print\"\\nHence Time of reversal is :\",round(t[0],2),\"s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Passive load torque during steady state is :Tl=0.05*N in N-m\n",
+ "And load torque : T=100-0.1*N in N-m \n",
+ "load torque when the direction is reversed T=-100-0.1*N in N-m\n",
+ "T-Tl=0\n",
+ "100-0.1*N-0.05*N=0\n",
+ "\n",
+ "JdWm/dt=-100-0.1*N-0.05*N during reversing\n",
+ "dN/dt=30/(J*pi)*(-100-0.15*N)\n",
+ "dN/dt=(-95.49-0.143*N)\n",
+ "\n",
+ "Hence Time of reversal is : 25.51 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:2.3,Page no:27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Tlh=1000 # load torque in N-m\n",
+ "Tmax=700 # maximum motor torque\n",
+ "Tll=200 # light load for the motor to regain its steady state\n",
+ "Tmin=Tll # minimum torque\n",
+ "t_h=10 # period for which a load torque of 1000 N-m is apllied in sec\n",
+ "Jm=10 # moment of inertia of the motor in Kg-m2\n",
+ "No=500 # no load speed in rpm\n",
+ "Tr=500 # torque at a given no load speed in N-m\n",
+ "\n",
+ "#Calculation\n",
+ "Wmo=No*2*math.pi/60 # angular no load speed in rad/sec\n",
+ "s=0.05 # slip at a torque of 500 N-m\n",
+ "Wmr=(1-s)*Wmo # angular speed at a torque of 500 N-m in rad/sec\n",
+ "\n",
+ "y=math.log((Tlh-Tmin)/(Tlh-Tmax))\n",
+ "x=Tr/(Wmo-Wmr)\n",
+ "\n",
+ "J=x*t_h/y\n",
+ "Jf=J-Jm\n",
+ "\n",
+ "#Result \n",
+ "#answer in the book is wrong\n",
+ "print\"\\n\\nMoment of inertia of the flywheel : \", round(Jf,1),\"Kg-m2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Moment of inertia of the flywheel : 1937.2 Kg-m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter2_1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter2_1.ipynb
new file mode 100755
index 00000000..631ed1b1
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter2_1.ipynb
@@ -0,0 +1,190 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 2:Dynamics of Electric Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:2.1,Page no:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Jo=0.2 # inertia of the motor in kg-m2\n",
+ "a1=0.1 # reduction gear\n",
+ "J1=10 # inertia of the load in kg-m2\n",
+ "Tl1=10 # load torque\n",
+ "v=1.5 # speed of the translational load \n",
+ "M1=1000 # mass of the translational load\n",
+ "N=1420 # speed of the motor\n",
+ "n1=.9 # efficiency of the reduction gear\n",
+ "n1_=0.85 # efficiency of the translational load and the motor\n",
+ "F1=M1*9.81 # force of the translational load \n",
+ "\n",
+ "#Calculation\n",
+ "Wm=N*math.pi/30 #angular speed\n",
+ "J=Jo+a1**2*J1+ M1*(v/Wm)**2 # total equivalent moment of inertia\n",
+ "Tl= a1*Tl1/n1+F1/n1_*(v/Wm) # total equivalent torque\n",
+ "\n",
+ "#Result\n",
+ "print\"\\nEquivalent moment of inertia is :\",round(J,1),\"kg-m2\"\n",
+ "print\"\\nEquivalent load torque :\",round(Tl,2),\"N-m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Equivalent moment of inertia is: 0.4 kg-m2\n",
+ "\n",
+ "Equivalent load torque : 117.53 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:2.2,Page no:22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "J=10 #moment of inertia of the drive in kg-m2\n",
+ "print(\"Passive load torque during steady state is :Tl=0.05*N in N-m\")\n",
+ "print(\"And load torque : T=100-0.1*N in N-m \")\n",
+ "print(\"load torque when the direction is reversed T=-100-0.1*N in N-m\")\n",
+ "\n",
+ "#Calculation\n",
+ "print(\"T-Tl=0\")\n",
+ "print(\"100-0.1*N-0.05*N=0\")\n",
+ "N=100/0.15 #Required speed of the motor in rpm during steady state\n",
+ "N2=-100/0.15 #During reversal speed is in opposite direction\n",
+ "print(\"\\nJdWm/dt=-100-0.1*N-0.05*N during reversing\")\n",
+ "print(\"dN/dt=30/(J*pi)*(-100-0.15*N)\")\n",
+ "print(\"dN/dt=(-95.49-0.143*N)\")\n",
+ "N1=N\n",
+ "N2=N2*0.95 #for speed reversal \n",
+ "x2 = lambda N: 1/(-95.49-0.143*N)\n",
+ "t=integrate.quad(x2, round(N1), round(N2))\n",
+ "\n",
+ "#result\n",
+ "print\"\\nHence Time of reversal is :\",round(t[0],2),\"s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Passive load torque during steady state is :Tl=0.05*N in N-m\n",
+ "And load torque : T=100-0.1*N in N-m \n",
+ "load torque when the direction is reversed T=-100-0.1*N in N-m\n",
+ "T-Tl=0\n",
+ "100-0.1*N-0.05*N=0\n",
+ "\n",
+ "JdWm/dt=-100-0.1*N-0.05*N during reversing\n",
+ "dN/dt=30/(J*pi)*(-100-0.15*N)\n",
+ "dN/dt=(-95.49-0.143*N)\n",
+ "\n",
+ "Hence Time of reversal is : 25.51 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:2.3,Page no:27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Tlh=1000 # load torque in N-m\n",
+ "Tmax=700 # maximum motor torque\n",
+ "Tll=200 # light load for the motor to regain its steady state\n",
+ "Tmin=Tll # minimum torque\n",
+ "t_h=10 # period for which a load torque of 1000 N-m is apllied in sec\n",
+ "Jm=10 # moment of inertia of the motor in Kg-m2\n",
+ "No=500 # no load speed in rpm\n",
+ "Tr=500 # torque at a given no load speed in N-m\n",
+ "\n",
+ "#Calculation\n",
+ "Wmo=No*2*math.pi/60 # angular no load speed in rad/sec\n",
+ "s=0.05 # slip at a torque of 500 N-m\n",
+ "Wmr=(1-s)*Wmo # angular speed at a torque of 500 N-m in rad/sec\n",
+ "\n",
+ "y=math.log((Tlh-Tmin)/(Tlh-Tmax))\n",
+ "x=Tr/(Wmo-Wmr)\n",
+ "\n",
+ "J=x*t_h/y\n",
+ "Jf=J-Jm\n",
+ "\n",
+ "#Result \n",
+ "#answer in the book is wrong\n",
+ "print\"\\n\\nMoment of inertia of the flywheel : \", round(Jf,1),\"Kg-m2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Moment of inertia of the flywheel : 1937.2 Kg-m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter3.ipynb b/Fundamentals_of_Electrical_Drives/Chapter3.ipynb
new file mode 100755
index 00000000..b15c6af5
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter3.ipynb
@@ -0,0 +1,30 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 3:Control Of Electrical Drives"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter4.ipynb b/Fundamentals_of_Electrical_Drives/Chapter4.ipynb
new file mode 100755
index 00000000..ca34966f
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter4.ipynb
@@ -0,0 +1,348 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Selection of Motor Power Rating"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.1, Page No:47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "T_min=40 # minimum temperature rise in degree Celsius\n",
+ "T_r=15 # temperature rise when the load is declutched continously in degree Celsius\n",
+ "t_c=10 # time for which the motor is clutched to its load in sec\n",
+ "t_d=20 # time for which the motor is declutched to run on no-load in sec\n",
+ "C= 60 # time constants for both heating and cooling \n",
+ "\n",
+ "#calculation\n",
+ "x=math.exp(-t_d/C)\n",
+ "y=math.exp(-t_c/C)\n",
+ "\n",
+ "theta2= (T_min-T_r*(1-x))/x #since T_min=T_r(1-x)+theta2*x\n",
+ "theta_ss=(theta2-T_min*y)/(1-y) #since theta2=theta_ss(1-y)+T_min*y\n",
+ "\n",
+ "#results\n",
+ "print\"\\n maximum temperature during the duty cycle :\",round(theta2,1),\"\u00b0C\"\n",
+ "print\"\\n temperature when the load is clutched continously :\",round(theta_ss,1),\"\u00b0C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " maximum temperature during the duty cycle : 49.9 \u00b0C\n",
+ "\n",
+ " temperature when the load is clutched continously : 104.4 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.2, Page No:52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "N=200 #full speed of the motor in rpm\n",
+ "Tc=25000 #constant torque in N-m\n",
+ "J=10000 #moment of inertia referred to te motor shaft in Kg-m2\n",
+ "\n",
+ "#duty cycles\n",
+ "t1=10 #rolling at full speed and at constant torque\n",
+ "t2=1 #no load operation at full speed\n",
+ "t3=5 #speed reversal from N to -N\n",
+ "t4=1 #no load operation at full speed\n",
+ "\n",
+ "T5=20000 #torque in N-m\n",
+ "t5=15 #rolling at full speed and at a torque T1\n",
+ "\n",
+ "t6=1 #no operation at full speed\n",
+ "t7=5 #speed reversal from -N to N\n",
+ "t8=1 #no load operation\n",
+ "\n",
+ "#calculation\n",
+ "Tr=J*(N-(-N))*2*math.pi/60/5 #torque during reversal\n",
+ "x=Tc**2*t1+Tr**2*t3+T5**2*t5+Tr**2*t7\n",
+ "t=t1+t2+t3+t4+t5+t6+t7+t8 #total time\n",
+ "Trms=math.sqrt(x/t) #rms torque\n",
+ "\n",
+ "Trated=Trms #rated torque is equal to the rms torque\n",
+ "Pr=Trated*2*math.pi*200/60 #power rating\n",
+ "ratio=Tr/Trms #ratio of reversal torque to the rms torque\n",
+ "\n",
+ "#results\n",
+ "#answer in the book is wrong\n",
+ "print\"\\n motor torque is :Trms=\",round(Trms),\"N-m\"\n",
+ "if ratio<2:\n",
+ " print\" motor can be rated as equal to Trms\"\n",
+ "print\" Power rating : P=\",round(Pr*1e-3,3),\"kW\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " motor torque is :Trms= 45975.0 N-m\n",
+ " motor can be rated as equal to Trms\n",
+ " Power rating : P= 962.895 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.3, Page No:53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "\n",
+ "#variable declaration\n",
+ "P1=400 #load in kW\n",
+ "P2=500 #load in KW\n",
+ "Pmax=P2\n",
+ "#duty cycles in minutes\n",
+ "t1=5 #load rising from 0 to P1 \n",
+ "t2=5 #uniform load of P2 \n",
+ "t3=4 #regenerative power equal to P1\n",
+ "t4=2 #motor remains idle\n",
+ "\n",
+ "#calculation\n",
+ "a = lambda x: (P1/5*x)**2\n",
+ "t=integrate.quad(a,0,t1)\n",
+ "P11=math.sqrt(t[0]/t1)\n",
+ "x=P11**2*t1+P2**2*t2+P1**2*t3\n",
+ "t=t1+t2+t3+t4 #total time\n",
+ "Prms=math.sqrt(x/t)\n",
+ "\n",
+ "#results\n",
+ "y=2*Prms\n",
+ "if P2<y:\n",
+ " print \" Hence Pmax:\",Pmax,\"kW is less than twice Prms:\",2*round(Prms,1),\"kW\"\n",
+ "print\"\\n Hence Motor rating is: \",round(Prms),\"kW\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Hence Pmax: 500 kW is less than twice Prms: 734.2 kW\n",
+ "\n",
+ " Hence Motor rating is: 367.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.4, Page No:55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Cr=60 #heating time constant in minutes\n",
+ "Cs=90 #cooling time constant in minutes\n",
+ "P=20 #full load in kW\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#part(i)\n",
+ "alpha=0 #constant copper losses are assumed to be proportional to Power**2 which is zero\n",
+ "tr=10 #time for the load motor to deliver in minutes\n",
+ "x=math.exp(-tr/Cr)\n",
+ "K=math.sqrt(1/(1-x))\n",
+ "P1=K*P #permitted load\n",
+ "\n",
+ "#part(ii)\n",
+ "alpha=0 #constant copper losses are assumed to be proportional to Power**2 which is zero\n",
+ "tr=10 #intermittent load period allowed in minutes\n",
+ "ts=10 #shutdown period in minutes\n",
+ "x=math.exp(-(tr/Cr+ts/Cs))\n",
+ "y=math.exp(-tr/Cr)\n",
+ "K=math.sqrt((1-x)/(1-y))\n",
+ "P2=K*P #permitted load\n",
+ "\n",
+ "#results\n",
+ "print\"\\ni)required permitted load:\",round(P1),\"kW\"\n",
+ "print\"\\nii)required permitted load:\",round(P2,2),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "i)required permitted load: 51.0 kW\n",
+ "\n",
+ "ii)required permitted load: 25.14 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.5, Page No:56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from sympy import *\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "P=100 #Half hour rating of the motor\n",
+ "Cr=80 #heating time constant in minutes\n",
+ "n=0.7 #maximum efficiency at full load\n",
+ "\n",
+ "#calculation\n",
+ "Pc = Symbol('Pc') #constant loss\n",
+ "Pcu=Pc/n**2 #coppper loss\n",
+ "alpha=Pc/Pcu\n",
+ "K=math.sqrt((1+alpha)/(1-math.e**(-30/Cr))-alpha) \n",
+ "Pco=P/K \n",
+ "print\"Therefore continous rating is:\",round(Pco,2),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Therefore continous rating is: 48.37 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.6, Page No:57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "I=500 #rated armature current in A\n",
+ "Ra=0.01 #armature resistance in ohm\n",
+ "P=1000 #core loss in W\n",
+ "B=0.5 \n",
+ "\n",
+ "#duty cycles\n",
+ "tst=10 #interval for accelaration at twice the rated current\n",
+ "tr=10 #interval for running at full load \n",
+ "tb=10 #inteval fordecelaration at twice the rated armature current\n",
+ "\n",
+ "#calculations\n",
+ "Es=tst*(2*I)**2*Ra+P\n",
+ "Eb=Es\n",
+ "p1s_tr=(I**2*Ra+P)*tr\n",
+ "p1r=I**2*Ra+P\n",
+ "gamma=(1+B)/2\n",
+ "x=(Es+p1s_tr+Eb)/p1r\n",
+ "y=gamma*tst+tr+gamma*tb\n",
+ "ts=(x-y)/B #idling interval\n",
+ "\n",
+ "fmax=3600/(tst+tr+tb+ts) #maximum frequency of drive operation \n",
+ "\n",
+ "#results\n",
+ "#answer in the book is wrong\n",
+ "print\"\\nmaximum frequency of drive operation: fmax = \",round(fmax,2),\"per hour\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "maximum frequency of drive operation: fmax = 31.19 per hour\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter4_1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter4_1.ipynb
new file mode 100755
index 00000000..ca34966f
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter4_1.ipynb
@@ -0,0 +1,348 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Selection of Motor Power Rating"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.1, Page No:47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "T_min=40 # minimum temperature rise in degree Celsius\n",
+ "T_r=15 # temperature rise when the load is declutched continously in degree Celsius\n",
+ "t_c=10 # time for which the motor is clutched to its load in sec\n",
+ "t_d=20 # time for which the motor is declutched to run on no-load in sec\n",
+ "C= 60 # time constants for both heating and cooling \n",
+ "\n",
+ "#calculation\n",
+ "x=math.exp(-t_d/C)\n",
+ "y=math.exp(-t_c/C)\n",
+ "\n",
+ "theta2= (T_min-T_r*(1-x))/x #since T_min=T_r(1-x)+theta2*x\n",
+ "theta_ss=(theta2-T_min*y)/(1-y) #since theta2=theta_ss(1-y)+T_min*y\n",
+ "\n",
+ "#results\n",
+ "print\"\\n maximum temperature during the duty cycle :\",round(theta2,1),\"\u00b0C\"\n",
+ "print\"\\n temperature when the load is clutched continously :\",round(theta_ss,1),\"\u00b0C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " maximum temperature during the duty cycle : 49.9 \u00b0C\n",
+ "\n",
+ " temperature when the load is clutched continously : 104.4 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.2, Page No:52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "N=200 #full speed of the motor in rpm\n",
+ "Tc=25000 #constant torque in N-m\n",
+ "J=10000 #moment of inertia referred to te motor shaft in Kg-m2\n",
+ "\n",
+ "#duty cycles\n",
+ "t1=10 #rolling at full speed and at constant torque\n",
+ "t2=1 #no load operation at full speed\n",
+ "t3=5 #speed reversal from N to -N\n",
+ "t4=1 #no load operation at full speed\n",
+ "\n",
+ "T5=20000 #torque in N-m\n",
+ "t5=15 #rolling at full speed and at a torque T1\n",
+ "\n",
+ "t6=1 #no operation at full speed\n",
+ "t7=5 #speed reversal from -N to N\n",
+ "t8=1 #no load operation\n",
+ "\n",
+ "#calculation\n",
+ "Tr=J*(N-(-N))*2*math.pi/60/5 #torque during reversal\n",
+ "x=Tc**2*t1+Tr**2*t3+T5**2*t5+Tr**2*t7\n",
+ "t=t1+t2+t3+t4+t5+t6+t7+t8 #total time\n",
+ "Trms=math.sqrt(x/t) #rms torque\n",
+ "\n",
+ "Trated=Trms #rated torque is equal to the rms torque\n",
+ "Pr=Trated*2*math.pi*200/60 #power rating\n",
+ "ratio=Tr/Trms #ratio of reversal torque to the rms torque\n",
+ "\n",
+ "#results\n",
+ "#answer in the book is wrong\n",
+ "print\"\\n motor torque is :Trms=\",round(Trms),\"N-m\"\n",
+ "if ratio<2:\n",
+ " print\" motor can be rated as equal to Trms\"\n",
+ "print\" Power rating : P=\",round(Pr*1e-3,3),\"kW\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " motor torque is :Trms= 45975.0 N-m\n",
+ " motor can be rated as equal to Trms\n",
+ " Power rating : P= 962.895 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.3, Page No:53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "\n",
+ "#variable declaration\n",
+ "P1=400 #load in kW\n",
+ "P2=500 #load in KW\n",
+ "Pmax=P2\n",
+ "#duty cycles in minutes\n",
+ "t1=5 #load rising from 0 to P1 \n",
+ "t2=5 #uniform load of P2 \n",
+ "t3=4 #regenerative power equal to P1\n",
+ "t4=2 #motor remains idle\n",
+ "\n",
+ "#calculation\n",
+ "a = lambda x: (P1/5*x)**2\n",
+ "t=integrate.quad(a,0,t1)\n",
+ "P11=math.sqrt(t[0]/t1)\n",
+ "x=P11**2*t1+P2**2*t2+P1**2*t3\n",
+ "t=t1+t2+t3+t4 #total time\n",
+ "Prms=math.sqrt(x/t)\n",
+ "\n",
+ "#results\n",
+ "y=2*Prms\n",
+ "if P2<y:\n",
+ " print \" Hence Pmax:\",Pmax,\"kW is less than twice Prms:\",2*round(Prms,1),\"kW\"\n",
+ "print\"\\n Hence Motor rating is: \",round(Prms),\"kW\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Hence Pmax: 500 kW is less than twice Prms: 734.2 kW\n",
+ "\n",
+ " Hence Motor rating is: 367.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.4, Page No:55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "Cr=60 #heating time constant in minutes\n",
+ "Cs=90 #cooling time constant in minutes\n",
+ "P=20 #full load in kW\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#part(i)\n",
+ "alpha=0 #constant copper losses are assumed to be proportional to Power**2 which is zero\n",
+ "tr=10 #time for the load motor to deliver in minutes\n",
+ "x=math.exp(-tr/Cr)\n",
+ "K=math.sqrt(1/(1-x))\n",
+ "P1=K*P #permitted load\n",
+ "\n",
+ "#part(ii)\n",
+ "alpha=0 #constant copper losses are assumed to be proportional to Power**2 which is zero\n",
+ "tr=10 #intermittent load period allowed in minutes\n",
+ "ts=10 #shutdown period in minutes\n",
+ "x=math.exp(-(tr/Cr+ts/Cs))\n",
+ "y=math.exp(-tr/Cr)\n",
+ "K=math.sqrt((1-x)/(1-y))\n",
+ "P2=K*P #permitted load\n",
+ "\n",
+ "#results\n",
+ "print\"\\ni)required permitted load:\",round(P1),\"kW\"\n",
+ "print\"\\nii)required permitted load:\",round(P2,2),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "i)required permitted load: 51.0 kW\n",
+ "\n",
+ "ii)required permitted load: 25.14 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.5, Page No:56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from sympy import *\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "P=100 #Half hour rating of the motor\n",
+ "Cr=80 #heating time constant in minutes\n",
+ "n=0.7 #maximum efficiency at full load\n",
+ "\n",
+ "#calculation\n",
+ "Pc = Symbol('Pc') #constant loss\n",
+ "Pcu=Pc/n**2 #coppper loss\n",
+ "alpha=Pc/Pcu\n",
+ "K=math.sqrt((1+alpha)/(1-math.e**(-30/Cr))-alpha) \n",
+ "Pco=P/K \n",
+ "print\"Therefore continous rating is:\",round(Pco,2),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Therefore continous rating is: 48.37 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:4.6, Page No:57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "I=500 #rated armature current in A\n",
+ "Ra=0.01 #armature resistance in ohm\n",
+ "P=1000 #core loss in W\n",
+ "B=0.5 \n",
+ "\n",
+ "#duty cycles\n",
+ "tst=10 #interval for accelaration at twice the rated current\n",
+ "tr=10 #interval for running at full load \n",
+ "tb=10 #inteval fordecelaration at twice the rated armature current\n",
+ "\n",
+ "#calculations\n",
+ "Es=tst*(2*I)**2*Ra+P\n",
+ "Eb=Es\n",
+ "p1s_tr=(I**2*Ra+P)*tr\n",
+ "p1r=I**2*Ra+P\n",
+ "gamma=(1+B)/2\n",
+ "x=(Es+p1s_tr+Eb)/p1r\n",
+ "y=gamma*tst+tr+gamma*tb\n",
+ "ts=(x-y)/B #idling interval\n",
+ "\n",
+ "fmax=3600/(tst+tr+tb+ts) #maximum frequency of drive operation \n",
+ "\n",
+ "#results\n",
+ "#answer in the book is wrong\n",
+ "print\"\\nmaximum frequency of drive operation: fmax = \",round(fmax,2),\"per hour\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "maximum frequency of drive operation: fmax = 31.19 per hour\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter5.ipynb b/Fundamentals_of_Electrical_Drives/Chapter5.ipynb
new file mode 100755
index 00000000..cca552be
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter5.ipynb
@@ -0,0 +1,1915 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f20d8b5a5913a9f02b40c1bc779b6f178287c3bedb89723b4661d7c15c29c1bd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Dc Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.1,Page No:63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#motor ratings\n",
+ "V1=200 #rated voltage\n",
+ "Ia1=10.5 #rated current\n",
+ "N1=2000 #speed in rpm\n",
+ "Ra=0.5 #armature resistance\n",
+ "Rs=400 #field resistance\n",
+ "V2=175 #drop in source voltage \n",
+ "\n",
+ "#calculation\n",
+ "flux1 = Symbol('flux1')\n",
+ "flux2=V2/V1*flux1\n",
+ "Ia2=flux1/flux2*Ia1 #since load torque\n",
+ "E1=V1-Ia1*Ra\n",
+ "E2=V2-Ia2*Ra\n",
+ "N2=(E2/E1)*(flux1/flux2)*N1\n",
+ "\n",
+ "#results\n",
+ "#answer in the book is wrong due to accuracy\n",
+ "print\"\\nmotor speed is:N2=\",round(N2,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "motor speed is:N2= 1983.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 158
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.2,Page No:63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "V1=220 #rated voltage\n",
+ "Ia1=100 #rated current\n",
+ "N1=1000 #rated speed in rpm clockwise\n",
+ "Ra=0.05 #armature resistance\n",
+ "Rs=0.05 #field resistance\n",
+ "\n",
+ "#calculation\n",
+ "#turns is reduced to 80% then flux is also reduced by the same value and hence current is also reduced\n",
+ "Ke = Symbol('Ke')\n",
+ "Ia2 = Symbol('Ia2')\n",
+ "T1=Ke*Ia1**2 #flux is directly proportional to current Ia\n",
+ "T2=Ke*0.8*Ia2**2 #flux is directly proportional to current Ia\n",
+ "Ia2=-Ia1/math.sqrt(0.8) #since T1=T2 and the direction is opposite\n",
+ "\n",
+ "E1=V1-Ia1*(Ra+Rs)\n",
+ "\n",
+ "Rs=.8*Rs #Rs=80% of the field resistance 0.05ohm since the flux is reduced to 80%\n",
+ "E2=-(V1+Ia2*(Ra+Rs)) \n",
+ "\n",
+ "N2=(E2/E1)*(Ia1/Ia2)*(N1/0.8) #since E=Kn*flux*N\n",
+ "\n",
+ "#results\n",
+ "print\"\\nmotor speed is:N2=\",round(N2,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "motor speed is:N2= 1117.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 160
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.3,Page No:70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#motor ratings\n",
+ "V1=220 #rated voltage\n",
+ "Ia1=200 #rated current\n",
+ "Ra=0.06 #armature resistance\n",
+ "Rb=0.04 #internal resistance of the variable source\n",
+ "N1=800 #speed in rpm\n",
+ "N2=600 #speed when motor is operatingin regenerative braking\n",
+ "\n",
+ "#Calculation\n",
+ "Ia2=0.8*Ia1 #motor is opereting in regenerative braking at 80% of Ia1\n",
+ "E1=V1-Ia1*Ra #back emf at rated operation\n",
+ "E2=(N2/N1)*E1 #back emf at the given speed N2\n",
+ "V2=E2-Ia2*(Ra+Rb) #internal voltage of thevariable source\n",
+ "\n",
+ "#results\n",
+ "print\"\\n internal voltage of thevariable source:\",round(V2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " internal voltage of thevariable source: 140.0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 161
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.4,Page No:70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#The ratings of the motor is same as that of Ex-5.2\n",
+ "V1=220 #rated voltage\n",
+ "Ia1=100 #rated current\n",
+ "N1=1000 #speed in rpm clockwise\n",
+ "N2=800 #given speed during the dynamic braking\n",
+ "Ra=0.05 #armature resistance\n",
+ "Rs=0.05 #field resistance\n",
+ "\n",
+ "#calculation\n",
+ "T1 = Symbol('T1')\n",
+ "T2 = 2*T1 #dynamic torque is twice the rated torque\n",
+ "Ia2=Ia1*math.sqrt(T2/T1) #since T=Kf*Ia**2\n",
+ "E1=V1-Ia1*(Ra+Rs)\n",
+ "E2=(Ia2/Ia1)*(N2/N1)*E1 #since E=Ke*Ia*N\n",
+ "Rb=E2/Ia2-(Ra+Rs) #since E2=Ia2(Rb+Ra+Rs) during braking\n",
+ "\n",
+ "#results\n",
+ "print\"\\n braking current Ia2:\",round(Ia2,1),\"A\"\n",
+ "print\"\\n required braking resistance Rb:\",round(Rb,2),\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " braking current Ia2: 141.4 A\n",
+ "\n",
+ " required braking resistance Rb: 1.58 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 162
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.5,Page No:70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the DC shunt motor which operated under dynamic braking\n",
+ "Rb=1 #braking resisance\n",
+ "Ra=0.04 #armature resistance\n",
+ "Rf=10 #field resistance\n",
+ "T=400 #load torque in N-m\n",
+ "\n",
+ "#magnetisation curve at N1\n",
+ "N1=600 #speed in rpm\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E =[25,50,73.5,90,102.5,110,116,121,125,129] #back emf\n",
+ "\n",
+ "#calculation\n",
+ "print\"Field current If:\",If,\"A\"\n",
+ "x=(Rb+Rf)/Rb\n",
+ "Ia = [If * x for If in If] #armature current\n",
+ "Wm=2*math.pi*N1/60\n",
+ "Ke_flux=[E / Wm for E in E] #Ke*flux=constant\n",
+ "Ke_flux=[round(Ke_flux,3) for Ke_flux in Ke_flux] \n",
+ "\n",
+ "Ke_flux=numpy.array(Ke_flux)\n",
+ "Ia=numpy.array(Ia)\n",
+ "T=numpy.array(Ke_flux)*numpy.array(Ia) #torque\n",
+ "print\"\\nKe_flux :\",Ke_flux\n",
+ "T=[round(T,1) for T in T]\n",
+ "print\"\\nTorque :\",T,\"N-m\"\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "#plotting the values of Ke*flux vs If \n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "plt.subplot(2,1,1)\n",
+ "plt.plot(If,Ke_flux,'y')\n",
+ "plt.xlabel('field current $I_f$')\n",
+ "plt.ylabel('$Ke*flux$')\n",
+ "plt.title('$If vs Ke*flux$')\n",
+ "plt.grid(True)\n",
+ "\n",
+ "#plotting the values of T vs If \n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(T,If)\n",
+ "plt.xlabel('Torque $T$')\n",
+ "plt.ylabel('field current $I_f$')\n",
+ "plt.title('$T vs If$')\n",
+ "plt.grid()\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "\n",
+ "print\"\\nFrom the plot we can see that when the torque is 400 N-m, \"\n",
+ "print\"the field current is If=19.3 A, and Ke*flux=1.898 when If=19.3 A\"\n",
+ "T=400 # braking torque\n",
+ "If=19.13 # field current\n",
+ "Ke_flux=1.898 # Ke*flux\n",
+ "Ia=x*If\n",
+ "E=If*Rf+Ia*Ra #since E=V+Ia*Ra\n",
+ "N2=(E/Ke_flux)*(60/(2*math.pi)) #required speed\n",
+ "print\"Hence the required speed in is :\",round(N2),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Field current If: [2.5, 5, 7.5, 10, 12.5, 15, 17.5, 20, 22.5, 25] A\n",
+ "\n",
+ "Ke_flux : [ 0.398 0.796 1.17 1.432 1.631 1.751 1.846 1.926 1.989 2.053]\n",
+ "\n",
+ "Torque : [10.9, 43.8, 96.5, 157.5, 224.3, 288.9, 355.4, 423.7, 492.3, 564.6] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9On6/bdu3WLbtm2sX78eV1fXRi2DELZGEpUQjahLly506NABgEOHDvHggw/q33NxcaFr164mna+s\nrIz4+Hjeffddg/0JCQmEhYURFRXV8KCFsHFyj0qIRjRo0CD9nw8dOsSIESP0223btuXgwYNMmzYN\n0HXdrVmzhtzcXDZs2EBsbCyvvvqqwflOnTqFr68vPj4++n0JCQmsX7+e0tJSdu7caeYSCWF9kqiE\nMJO4uDiGDx+u375w4QLh4eFotVoAZsyYgYODAzt37iQtLY2BAwdy7tw5g3McPHjQINkBREdH07p1\naxYvXsykSZPMXxAhrEwSlRBmkJKSQmFhIX369NHvGzFiBO+//z5z584FIDs7m1GjRvHQQw+RlZVF\ncHAw/fr1MzhP9WRX4fz58wQFBZm1DELYCklUQpjBoUOHGDZsWI39iYmJREdHA5CUlERRUREvvPAC\n77//PomJiRw+fFh/bElJCUePHq1xnvT0dNq3b49GozFnEYSwGTI8XYhGdO7cOf71r3/xzjvv4Ojo\nSFFREWFhYfqkUl5eTkJCAllZWfTv3x9XV1cKCwu5du0aX331Fc888wxt2rQhISGBtWvXcubMGbp0\n6UJERIT+GgcPHsTBwYGRI0daq5hCWJRGmTpetpGkpaUxe/ZsMjIy0Gg0PPbYYzz11FMsX76cf/zj\nH/qRU6+88gq/+tWvrBGiEDYlMTGR9957Dy8vL6ZPn27S81hCNGVWG57u7OzMunXrCAsLIy8vj379\n+jF69Gg0Gg1LlixhyZIl1gpNCJvk6OiIn58fLi4ukqSEXbFaovL19cXX1xcANzc3AgMDuXr1KoDJ\nD0UKYQ/CwsIMZqYQwl7YxGCK1NRUkpKSGDBgAABvvPEGoaGhLFiwgJycHCtHJ4QQwpqsnqjy8vKY\nOnUq69evx83NjUWLFpGSkkJycjIdO3bk2WeftXaIQgghrElZUXFxsRozZoxat25dre+npKSovn37\n1tjfrl07BchLXvKSl7yawMvf379BucJq96iUUixYsICgoCAWL16s33/9+nU6duwIwM6dOwkODq7x\nuzdu3LC7+1hz587ln//8p7XDsCh7K7O9lRekzOZ08yacPg3fflv5On8eOnWC0FDD1333gTkfy2vo\nM39WS1RHjx5l06ZNhISEEB4eDsDKlSvZsmULycnJaDQaunfvzjvvvGOtEG1Kt27drB2Cxdlbme2t\nvCBlbgzl5fDjj4YJ6dtvITsbgoN1iah/f/jd73Tbbm6NenmLsFqiGjx4MOXl5TX2P/TQQ1aIRggh\nbF9urq6VVLWldPYstGtX2TqaM0f38/77wcHqoxAahyzz0UR4enpaOwSLs7cy21t5Qcp8N0pBamrN\nVpJWC0FBlUnp0UchJASaezVKomoi7PH5GXsrs72VF6TMAAUFulZR1YR0+jS4u+uSUUgITJsGL78M\nPXuCkx1+azdoCqX169fz9NNPk5GRgbe3d2PGdU8ajcbuBlMIIZo2peDq1ZqtpMuXISDAcHBDSAi0\nb2/tiBtPQ7+zG5SoNm/ezMWLF9FqtYwbN44HHniA9haoXUlUQghbVlIC585BUpJhUnJyqjnirndv\ncHa2dsTmZdVEVeHSpUsUFhZy4sQJ3NzcmD59ekNPeU/2mKji4uJqXTaiObO3MttbeaF5lLmgAM6c\ngVOndInp1CldkuraFcLDISysMin5+jaPMpuqod/Zde7t/OCDD5g/f36t7/Xo0QOA4OBgPv3003oH\nI4QQtiwnB5KTKxNSUhL89JOuVRQeDhERMHeuruuuKQ4Dt1V1blF5e3szbtw4oqOjiYqKIjQ0FEdH\nR0A3V58ln4ewxxaVEMKy0tMNE9KpU7p9ISG6hFSRmPr0gRYtrB2tbbNY19/q1auJjo4mISGBkydP\ncubMGdq3b09UVBRarZYtW7aYdOG7rUeVnZ3N9OnT+fnnn+nWrRvbtm2rMZxTEpUQorEopRvQUDUh\nJSXpuvSqJqTwcOjVC375/7kwgcUSlVKqxjQYWq2WhIQENmzYwBdffGHShbVaLVqt1mA9ql27dvHh\nhx/Svn17li5dyurVq7l58yarVq0yDNoOE5U99mvbW5ntrbxg+TKXlcHFi4YJKSkJWrY0TEgREbp7\nTOaYVsge/54tdo+qtrmafH19mTBhAm3btjX5wndbj2r37t0cPnwYgDlz5jBs2LAaiUoIIYwpLtYN\naqjaUjp9Gjp0qExIzz6r+/nLV5GwUVZbir6q1NRUHnzwQc6ePct9993HzZs3AV0rzsvLS79dwR5b\nVEKIu8vP1yWhqi2l8+ehe3fDllJYGNTj/9WigSzWojKXvLw8pkyZwvr163F3dzd4T6PRNHjWXSFE\n85KTU9lld+qU7pWaCoGBuoQUEaGbgDUkBFxcrB2taAxWTVQlJSVMmTKFWbNmMXHiRAB8fHzQarX4\n+vpy/fr1u854MXfuXP1IQ09PT8LCwvT9vnFxcQDNajs5OVm/HIotxGOJ7Yp9thKPlLfxt6uXvfr7\n6emwcWMcFy5ATs4wkpLg2rU4/P1h+PBhjBwJw4bF0bUrjB5d+ftFReDiYv3y1bb92muv2cX3VcXq\n7KmpqTSUyV1/zz33HKtXrza6zxilFHPmzKFdu3asW7dOv3/p0qW0a9eO5557jlWrVpGTkyODKbDP\nG7D2VmZ7Ky9UllkpSEurbCFVtJYKCw0HOEREQI8eTXvknT3+PVt8Zorw8HCSkpIM9gUHB3PmzBmT\nLnzkyBGGDh1KSEiIvnvvlVdeISoqimnTpnH58mUZni5EM1ReDpcuGXbdJSXpphGqSEbmHnknLMti\niertt9/mrbfe4scff8Tf31+/Pzc3l0GDBrF58+Z6B2EqSVRCNA2lpbpBDVUTUnKybv2k6s8o/bKw\nt2iGLJaobt26xc2bN3n++edZvXq1/qLu7u60a9eu3gHUhz0mKnvsLrC3Mjf18hYV6ea8q9pS+u47\n6NLFsKUUHg5eXrrfaeplrg97LLPFRv15eHjg4eHB1q1b630xIUTzkJurmw28akvp4kXdzA0VraRZ\ns3QTscqcd6KhTL5HVVRUxL/+9S9SU1MpLS3VnUSjYdmyZWYJsDb22KISwlpu3Kg5HPzKFejb17Cl\n1LcvtGpl7WiFLbL4c1QTJkzA09OTfv360Uo+lUI0K9evVyajipZSdnZll91DD8ELL+hmC7fHlWaF\ndZjcourbty9nz541Vzx1Yo8tKnvs17a3Mlu6vNeuQWKi4evOHV0LqV+/ypaSvz84OJgnBnv7Owb7\nLLPFW1QDBw7k9OnThISE1PuiQgjLunYNvvnGMCmVlOgSUr9+ujWU3nhDhoML22RyiyowMJBLly7R\nvXt3WrZsqTuJRsPp06fNEmBt7LFFJURdKFV7S6m0tDIpVbzuu0+SkrAMiz/wWzEdRvULy8KJQliW\nUnD1as2kVFZmmJAiI3VDxCUpCWtp6He2yT3P9913H/Hx8WzcuJFu3brh4OBARkaGyReeP38+Pj4+\nBAcH6/ctX74cPz8/wsPDCQ8PZ9++fSaft7mqOieavbC3Mt+rvBVTDO3aBX/9Kzz8sG5piogI+Pvf\ndbM9/O53cOIEZGTAvn3w8sswebJtt5zs7e8Y7LPMDWXyParHH38cBwcHDh48yLJly3Bzc+Pxxx/n\nm2++Mek88+bN48knn2T27Nn6fRqNhiVLlrBkyRJTwxKi2VBKN/y7+j0ljaaylfTYY7qffn62m4SE\naCwmJ6qEhASSkpIIDw8HwMvLi5KSEpMvPGTIkFpn1ZUuvdrZ2yghsI8yV7SUdMloGKtX6/7s4FCZ\nlBYu1P3s3Ln5JSV7+Duuzh7L3FAmJ6oWLVpQVlam387MzMShEceuvvHGG3z00UdERkaydu3aGhPS\nCtFUVSSl6i0lR0fDpBQZCZ06Nb+kJER9mZyonnzySSZNmkRGRgZ//vOf2bFjBy+99FKjBLNo0SL9\nDBd//etfefbZZ3n//fdrPVbWo7Kt+MyxXbHPVuIxdbt372F88w1s3x7H999DSsowHByge/c4evWC\nxx8fRr9+cOFCnD4pVZT34kXrx2+J7ep/19aOxxLbsh6V6Uwa9aeUIi0tjfz8fA4cOADAyJEjCQwM\nrNfFU1NTGT9+fK1LhNzrPXsc9Rdnhw8JNqUyZ2frWkrffAMnT+p+5ufrWkf9++tekZH37r5rSuVt\nLFJm+2DR4elKKYKDgxttZorqyej69et0/GWu/3Xr1nHy5Ek++eSTmkHbYaIStiM3Vze9UNWklJGh\nG4FXkZgiI+H++6X7Tgiw8MwUGo2Gfv36ceLECaKioup9UYBHHnmEw4cPk5WVRZcuXVixYoW+yajR\naOjevTvvvPNOg64hREMVFenWT6qalFJTISREl4wefhiWLYOAgKa96qwQtszkB34DAgK4dOkSXbt2\nxdXVVXcSmZnC7Oyxu8DSZS4pgbNnKxPSyZPwww+6CVirduH16aNbjbaxyd+xfbDHMlu0RaWU4r33\n3uO+++6r9wWFsAVlZbokVDUpnTkD3bpVdt0tWKBrObVube1ohbBvVr1HVV/22KIS9acU/PSTYVJK\nSgJv78qk1L+/bqZwd3drRytE89Nk71EJYQ4V89+dPFmZmL75BlxdK5PSX/6ie2apYjl0IYRtk3tU\nTYQ99msbK7PhrA66kXiJibr9VVtKkZG6efFsnfwd2wd7LLPF16Pav39/vS8mRH0pBT//XDMpVZ3V\n4Q9/0A0Rl/nvhGheTG5RrVixwiA7an75RqiYUcIS7LFFZU+UgpQUw4R06hS0aFGZlCpWoZWphoSw\nfRZvUbm6uuqTU2FhIXv27CEoKKjeAQj7phT8+GPNpOTiUpmQnnpK9+dfngUXQtgZk1tU1d25c4cx\nY8Zw+PBhk35v/vz5fP7553h7e+tnpsjOzmb69On8/PPPdOvWjW3bttU6Ka09tqiaQ792eTlculQz\nKbVpY9hK6tcPfHyaR5lNYW/lBSmzvbD4wonV5efnc/XqVZN/b968eTUWRly1ahWjR4/mwoULjBw5\nklWrVjU0PGEl5eXw/ffwySfw7LMwbBi0bQtjxsD27eDpCUuXwoULcPky7NxZuSCgj4+1oxdC2BKT\nW1RVV+QtLy8nIyODZcuW8eSTT5p88epz/fXu3ZvDhw/j4+ODVqtl2LBhfP/99zWDtsMWlS2reHi2\nopWUmKibdqh9e8NWUkSEbp8Qwr5Y/B7Vf/7zn8pfdnLCx8cH50aaTyY9PR2fX/477ePjQ3p6eqOc\nVzSe0lJdUqq6ntK33+oenq1ISMuW6ZKSPKckhGgMJieqijWgzE2j0egHbdRG1qOyzPWvX4d//COO\n8+fh2rVhJCZCmzZxBATAQw8NY8IEyM+Pw93d8PdPn5b1qKS8xrerl93a8VhiW9ajqgdlolmzZqns\n7Gz99o0bN9S8efNMPY1SSqmUlBTVt29f/XZAQIC6fv26Ukqpa9euqYCAgFp/rx5hN3mHDh0y+zUK\nCpQ6ckSptWuV+s1vlOrSRSkvL6UeekipFSuU2rdPqSp/9WZniTLbEnsrr1JSZnvR0O9sk+9RhYWF\nkZycbHRfXVS/R7V06VLatWvHc889x6pVq8jJyal1QIXco2q4imHhx4/rXgkJ8N13EBQEAwZAdLTu\nZ48e8pySEKJhLH6PSilFdnY2Xr/cgMjOzqasrMzkC1dfj+pvf/sbzz//PNOmTeP999/XD08XjSMn\nB06c0CWkisTk4lKZlB55RHdfSWYKF0LYGpNbVB999BEvv/wy06ZNQynF9u3beeGFF5g9e7a5YqzB\nHltUcSY8e1FaqmsdVW0tpaXpEtGAAZXJqVMn88bcUKaUuTmwt/KClNleWLxFNXv2bPr168fBgwfR\naDTs3LlTZqawsuvXKxPS8eO6kXh+fpUJ6emnoW9fcDL5b1sIIayvwTNTWIM9tqgqFBbq1lKq2lrK\ny6u8pzRggG7G8LZtrR2pEELoNPQ7WxKVDas64KGitXTuHAQGGnbhyYAHIYQts/oUSqLxKKW7t7Rh\nA0ydqnuIdsQI2L0bSkvjeO01yMrSLQS4YQPMnAk9ezbfJFX1GRt7YG/lBSmzqJs637VYu3at/s+1\nLfOxZMmSRg6t+VMKzp+HuDg4dAgOH9YthT58OEycCOvWQZcuumPj4mDQIGtGK4QQ1lHnrr/ly5ej\n0Wj44YcfOHnyJDExMSil2LNnD1FRUWzatMncseo11a4/pXTTDx06pEs8cXG6JdKHDat83XefVUMU\nQohGZ/F7VEOGDCE2NhZ3d3cAcnNzefjhh4mPj693EKZqKolKKbh40TAxtWihazENHw4PPggWmpFK\nCCGsxuL3qDIyMgwmoXV2diYjI6PeAdSmW7duhISEEB4eTlRUVKOe25wqEtN778Gjj0LnzjBqFBw7\nplve4tgx3XLq//wnzJljWpKyx35teyuzvZUXpMyibur1HFVUVBSTJ09GKcWuXbuYM2dOowal0WiI\ni4vTz35hq5SCn36qvMdU8fkbPhxGjoSXXoLu3ZvvYAchhLCEeg1PT0xMJD4+Ho1Gw5AhQ4iIiGjU\noLp3784333xDu3btan3fWl1/SkFqqmFXXmlpZVfesGHg7y+JSQghqmqWz1Hdf//9eHh44OjoyB/+\n8Ad+//vfG7xvyUSVmlqZlA4dguJiXUKqSEzNeXi4EEI0Bovdo3Jzc8Pd3b3WV5s2beodQG2OHj1K\nUlISe/fu5c0337ToQA2Aq1dhxQpd6yg6Gvbt0z1cu38/XLsGW7bAY49Br16WS1L22K9tb2W2t/KC\nlFnUTZ3vUeXl5ZkzDgMdO3YEoEOHDkyaNIkTJ04wZMgQg2Mae+HEsjIoLh7GO+/AgQNxjBgB27cP\nIzwcDh/WHR8QUP/zN3Q7OTnZphZGs8R2BVuJR8or242xXbEkkq3EY47txl440eSuv/LycjZv3kxK\nSgrLli3j8uXLaLXaRhudV1BQQFlZGe7u7uTn5zNmzBhefPFFxowZUxl0I3b9abXwwQfw7rvQvj38\n4Q+6JS/c3Brl9EIIYfcsfo9q4cKFODg4cPDgQb7//nuys7MZM2YM33zzTb2DqColJYVJkyYBUFpa\nym9/+1v+93//1zDoBha6vBwOHOCX1hP85je6BNWvX4NCF0IIUQuLP0eVkJDAW2+9RetfVtjz8vKi\npKSk3gFU1717d5KTk0lOTubs2bM1klRDZGTA//2f7t7Sn/6kG0L+88+61pStJ6nq3UP2wN7KbG/l\nBSmzqBuTn6Nq0aKFwYq+mZmZODjY7ty2SulG7L3zjm5QxOTJsHkzREXJaD0hhGgKTO7627RpE9u2\nbSMxMZE5c+awY8cOXnrpJaZNm2auGGuoSzPyxg3YuFHXWnJy0nXtzZoFnp4WClIIIQRgpeeozp8/\nz4EDBwAYMWKExVf4vVuhlYKjR+Hvf4c9eyAmRpegBg6U1pMQQlhLs3zg15jaCn37ti4hlZbqktPs\n2XCXiS2apLi4OP3wT3thb2W2t/KClNleNDRR1fke1eDBgzly5Ih+1vTqQdy+fbveQTSGNm10XX0R\nEdJ6EkKI5qTOLaqZM2eyadMmXnvtNRYvXmzuuO6pqSzzIYQQwoLD00+dOsW1a9f44IMPyM7OrvES\nQgghzKHOiWrhwoWMHDmSH374gX79+tV4NaZ9+/bRu3dvevbsyerVqxv13E2VPT57YW9ltrfygpRZ\n1E2dE9VTTz3F+fPnmTdvHikpKTVejaWsrIw//vGP7Nu3j3PnzrFlyxbOnz/faOdvqirmB7Mn9lZm\neysvSJlF3Zj8pO7f//53c8Shd+LECXr06EG3bt1wdnZmxowZfPbZZ2a9ZlNQMcGjPbG3MttbeUHK\nLOrG5qaUuHr1Kl26dNFv+/n5cfXqVStGJIQQwppsLlFpZGx5rRpjqvymxt7KbG/lBSmzqCNlY77+\n+ms1duxY/fbKlSvVqlWrDI7x9/dXgLzkJS95yasJvPz9/RuUF2xuZorS0lICAgI4cOAAnTp1Iioq\nii1bthAYGGjt0IQQQliBybOnm5uTkxMbNmxg7NixlJWVsWDBAklSQghhx2yuRSWEEEJUZXODKe6l\nuT4IPH/+fHx8fAgODtbvy87OZvTo0fTq1YsxY8YYDGl95ZVX6NmzJ71792b//v3WCLnB0tLSGD58\nOH369KFv3768/vrrQPMud1FREdHR0YSFhREUFKRfFLQ5lxl0z0aGh4czfvx4oPmXt1u3boSEhBAe\nHk5UVBTQ/Muck5PD1KlTCQwMJCgoiISEhMYtc4PucFlQaWmp8vf3VykpKaq4uFiFhoaqc+fOWTus\nRvHVV1+pU6dOqb59++r3/elPf1KrV69WSim1atUq9dxzzymllPruu+9UaGioKi4uVikpKcrf31+V\nlZVZJe6GuH79ukpKSlJKKZWbm6t69eqlzp071+zLnZ+fr5RSqqSkREVHR6v4+PhmX+a1a9eqRx99\nVI0fP14p1fw/2926dVM3btww2Nfcyzx79mz1/vvvK6V0n+2cnJxGLXOTSVTHjh0zGA34yiuvqFde\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7ff4f028dc10>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "From the plot we can see that when the torque is 400 N-m, \n",
+ "the field current is If=19.3 A, and Ke*flux=1.898 when If=19.3 A\n",
+ "Hence the required speed in is : 1005.0 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.6,Page No:71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#the motor rating is same as that of Ex-5.5\n",
+ "N=600 #value of the speed given from the magnetization curve in Ex-5.5\n",
+ "\n",
+ "Ra=0.04 #armature resistance\n",
+ "Rf=10 #field resistance\n",
+ "T=400 #load torque in N-m\n",
+ "N1=1200 #given speed in rpm to hold the overhauling torque\n",
+ "\n",
+ "#calculation\n",
+ "Wm=2*math.pi*N1/60 #angular speed at the given speed N1\n",
+ "\n",
+ "#magnetisation curve at N=600rpm\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E =[25,50,73.5,90,102.5,110,116,121,125,129] #value of the back emf as given in Ex-5.5 for the speed N\n",
+ "\n",
+ "#magnetisation curve at N=1200rpm\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E1=[N1/N*E for E in E] #back emf at the speed N1\n",
+ "print\"Hence the magnetization curve at 1200rpm is\"\n",
+ "print\"Field current If:\",If,\"A\"\n",
+ "print\"Back emf is E1:\",E1,\"V\"\n",
+ "\n",
+ "Pd=round(T*Wm,2) #power developed\n",
+ "x=round(Pd*Ra,1)\n",
+ "V=[(E1-Pd*Ra/E1) for E1 in E1] #terminal voltage\n",
+ "V=[round(V,2) for V in V]\n",
+ "print\"Terminal voltage V:\",V,\"V\"\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "#plotting the values of V vs If\n",
+ "plt.subplot(2,1,1)\n",
+ "plt.plot(V,If)\n",
+ "plt.xlabel('Terminal voltage $V$')\n",
+ "plt.ylabel('Field current $I_f$')\n",
+ "plt.title('$V vs If$')\n",
+ "plt.grid()\n",
+ "\n",
+ "#plotting the values of E vs If\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E =[25,50,73.5,90,102.5,110,116,121,125,129] #value of the back emf as given in Ex-5.5 for the speed N\n",
+ "E1=[N1/N*E for E in E] #back emf at the speed N1\n",
+ "\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(E1,If,'y')\n",
+ "plt.xlabel('$E$')\n",
+ "plt.ylabel('Field current $I_f$')\n",
+ "plt.title('$E vs If$')\n",
+ "plt.grid()\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "print\"\\nFrom the plot we can see that when the current If=25 A the terminal voltage is V=250 V with the back emf E=258V\"\n",
+ "\n",
+ "E=258 #value of the back emf in V at from the plot \n",
+ "V=250 #value of terminal voltage in V from the plot at E=258 V\n",
+ "If=25 #value of If in A from the plot at E=258 V\n",
+ "Ia=(E-V)/Ra #armature current\n",
+ "If=V/Rf #field current\n",
+ "Ir=Ia-If \n",
+ "Rb=V/Ir #braking resistance\n",
+ "\n",
+ "print\"Hence the rquired braking resistance is \",round(Rb,3),\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the magnetization curve at 1200rpm is\n",
+ "Field current If: [2.5, 5, 7.5, 10, 12.5, 15, 17.5, 20, 22.5, 25] A\n",
+ "Back emf is E1: [50.0, 100.0, 147.0, 180.0, 205.0, 220.0, 232.0, 242.0, 250.0, 258.0] V\n",
+ "Terminal voltage V: [9.79, 79.89, 133.32, 168.83, 195.19, 210.86, 223.33, 233.69, 241.96, 250.21] V\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQgghrNL/B/LwApWB5UraAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7ff4f051ee90>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "From the plot we can see that when the current If=25 A the terminal voltage is V=250 V with the back emf E=258V\n",
+ "Hence the rquired braking resistance is 1.429 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.7,Page No:72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy \n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the DC series motor which operated under dynamic braking\n",
+ "Ra=0.5 #total resistance of armature and field windings\n",
+ "Rf=10 #field resistance\n",
+ "T=500 #overhauling load torque in N-m\n",
+ "N=600 #speed at the overhauling torque T\n",
+ "\n",
+ "#magnetisation curve at a speed of 500 rpm\n",
+ "N1=500 #speed in rpm\n",
+ "Ia=[20, 30, 40, 50, 60, 70, 80] #armature current\n",
+ "E =[215,310,381,437,482,519,550] #back emf\n",
+ "\n",
+ "#calculation\n",
+ "Wm1=2*math.pi*N1/60\n",
+ "print\"\\nArmature current :\",Ia,\"A\"\n",
+ "Ke_flux=[E / Wm1 for E in E] #Ke*flux=constant\n",
+ "Ke_flux=[round(Ke_flux,3) for Ke_flux in Ke_flux] \n",
+ "print\"\\nKe_flux :\",Ke_flux\n",
+ "Ke_flux=numpy.array(Ke_flux)\n",
+ "Ia=numpy.array(Ia)\n",
+ "T=numpy.array(Ke_flux)*numpy.array(Ia) #torque\n",
+ "T=[round(T,1) for T in T]\n",
+ "print\"\\nTorque :\",T,\"N-m\"\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "#plotting the values of Ke*flux vs Ia and T vs Ia\n",
+ "plt.subplot(2,1,1)\n",
+ "plt.plot(Ia,Ke_flux,'y')\n",
+ "plt.xlabel('Armature current $I_a$')\n",
+ "plt.ylabel('$Ke*flux$')\n",
+ "plt.title('$Ke*flux vs Ia$')\n",
+ "plt.grid()\n",
+ "\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(T,Ia)\n",
+ "plt.xlabel('Torque $T$')\n",
+ "plt.ylabel('Armature current $I_a$')\n",
+ "plt.title('$T vs Ia$')\n",
+ "plt.grid(True)\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "\n",
+ "print\"\\nFrom the plot we can see that at the given torque T=500 N-m the current Ia is 56 A, and Ke*flux is 8.9 at Ia=56 A\"\n",
+ "Ke_flux=8.9 #value of Ke*flux at T=500 N-m from the plot\n",
+ "Ia=56 #value of Ia at at T=500 N-m from the plot\n",
+ "Wm=2*math.pi*N/60\n",
+ "E=Ke_flux*Wm #required emf\n",
+ "x=E/Ia #x=Ra+Rb\n",
+ "Rb=x-Ra #required braking resistance\n",
+ "print\"Hence the rquired braking resistance is \",round(Rb,3),\"ohm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Armature current : [20, 30, 40, 50, 60, 70, 80] A\n",
+ "\n",
+ "Ke_flux : [4.106, 5.921, 7.277, 8.346, 9.206, 9.912, 10.504]\n",
+ "\n",
+ "Torque : [82.1, 177.6, 291.1, 417.3, 552.4, 693.8, 840.3] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsXixthAFBWmXjP/rX9Dwvo85OTkGi62pJEb9MPYYjT0+kBj1xRRibJWmTl7NmTNHpaSktHjyq15V\nVZWKjo5Wb7/9tu45Hx8fderUKaWUUidPnlQ+Pj5XfJ+Xl5cC5CEPechDHib28PLyanHNaPJ1Uj4+\nPhw9epR+/fphb28PNH9OSinF3Llz6d69O2+//bbu+QULFtC9e3cWLlxIXFwcJSUlJjEnJYQQom01\nuUjVdynrL8rKzc0lLi6OjRs3Nrmxn3/+mTFjxjB48GDdkN7ixYsJCwsjNjaW3Nxc3S7oTk5Ozc9G\nCCFEh9KsXdD37t3L6tWr+frrr/H09GTatGk89thjbRmfEEIIM3bd66SOHDnCSy+9xKBBg3jiiSfo\n27cvdXV1JCUltVuB+uGHH/D19WXgwIEsWbKkXdq8mnnz5uHu7k5gYKDuuaKiIiZOnIi3tzfR0dGN\nloMuXryYgQMH4uvry+bNm9s8vry8PMaNG4e/vz8BAQG8++67RhejRqMhPDyc4OBg/Pz8eOaZZ4wu\nxnq1tbWEhIQwdepUo4zR09OTwYMHExISQlhYmFHGWFJSwvTp0xk0aBB+fn6kpKQYTYxHjhwhJCRE\n9+jWrRvvvvuu0cTXsE1/f38CAwO56667qKysNLoYly5dSmBgIAEBASxduhTQ49/F605aWVioqVOn\nquPHj+ue8/T0bPEkWHPV1NQoLy8vlZ2draqqqlRQUJA6ePBgu7Xf0Pbt29XevXtVQECA7rmnn35a\nLVmyRCmlVFxcnO6uwgcOHFBBQUGqqqpKZWdnKy8vL1VbW9um8Z06dUqlp6crpZQqLS1V3t7e6uDB\ng0YVo1JKlZWVKaWUqq6uVuHh4So5OdnoYlRKqTfffFPdddddaurUqUop4/pZK6X9d3j27NlGzxlb\njHPmzFGffPKJUkr78y4pKTG6GJVSqra2Vnl4eKjc3Fyjii87O1v1799faTQapZRSsbGx6j//+Y9R\nxbhv3z4VEBCgKioqVE1NjZowYYI6evSo3mK8bpFas2aNio2NVf369VMPPfSQSkhIUP369dNPdk2w\nY8cONWnSJN3x4sWL1eLFi9ut/ctlZ2c3KlI+Pj4qPz9fKaUtEvUrE19//XUVFxf3/9u715Cmvz8O\n4O95AUPDSrzltERyNl3bahpE60GaEdnyUpSGWYnR5UEXoZ4FUgp2f1IPEqLISDNSbGip2WWl5rxM\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f989876da50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "From the plot we can see that at the given torque T=500 N-m the current Ia is 56 A, and Ke*flux is 8.9 at Ia=56 A\n",
+ "Hence the rquired braking resistance is 9.486 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 170
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.8,Page No:74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=970 # rated speed\n",
+ "Ia=100 # rated current\n",
+ "Ra=0.05 # armature resistance\n",
+ "N1=1000 # initial speed of the motor in rpm\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra\n",
+ "E1=N1/N*E #value of back emf at the speed N1\n",
+ "#(a)the resistance to be placed\n",
+ "Ia1=2*Ia #value of the braking current is twice the rated current\n",
+ "Rb=(E1+V)/Ia1-Ra #required resistance\n",
+ "\n",
+ "#(b)The braking torque\n",
+ "Wm=(2*math.pi*N1)/60\n",
+ "T=E1*Ia1/Wm\n",
+ "\n",
+ "#(c)when the speed has fallen to zero the back emf is zero\n",
+ "E2=0\n",
+ "Ia2=V/(Ra+Rb)\n",
+ "T2=Ia2/Ia1*T #since the torque is directly proportional to the current\n",
+ "\n",
+ "\n",
+ "#results \n",
+ "print\"(a)Hence required resistance is :\",round(Rb,2),\"ohm\"\n",
+ "#answer for the resistance in the book is wrong due to accuracy\n",
+ "print\"\\n(b)Hence the required braking torque is :\",round(T,1),\"N-m\"\n",
+ "print\"\\n(c)Hence the required torque is :\",round(T2,1),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Hence required resistance is : 2.16 ohm\n",
+ "\n",
+ "(b)Hence the required braking torque is : 423.3 N-m\n",
+ "\n",
+ "(c)Hence the required torque is : 210.9 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 171
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.9,Page No:84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor which operates under rheostatic braking\n",
+ "V=220 # rated voltage\n",
+ "N=1000 # rated speed\n",
+ "Ia=175 # rated current\n",
+ "Ra=0.08 # armature resistance\n",
+ "N1=1050 # initial speed of the motor in rpm\n",
+ "J=8 # moment of inertia of the motor load system kg-m2\n",
+ "La=0.12 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra\n",
+ "Wm=N*2*math.pi/60 #rated speed in rad/s\n",
+ "\n",
+ "#(a)when the braking current is twice the rated current\n",
+ "Ia1=2*Ia\n",
+ "E1=N1/N*E\n",
+ "x=E1/Ia1 #x=Rb+Ra\n",
+ "Rb=x-Ra #required braking resistance\n",
+ "\n",
+ "#(b)to obtain the expression for the transient value of speed and current including the effect of armature inductance\n",
+ "Ra=x #total armature current\n",
+ "K1=N1*2*math.pi/60 #initial speed in rad/s\n",
+ "K=E/Wm\n",
+ "B=0\n",
+ "ta=La/Ra #time constant in sec\n",
+ "Trated=E*Ia/Wm #rated torque\n",
+ "Tl=0.15*Trated #load torque is 15% of the rated torque\n",
+ "tm1= float('inf') #tm1=J/B and B=0 which is equal to infinity\n",
+ "tm2=J*Ra/(B*Ra+K**2)\n",
+ "\n",
+ "a = ta\n",
+ "b = -(1+ta/tm1)\n",
+ "c = 1/tm2\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "alpha1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "alpha2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "K3=tm2*Tl/J\n",
+ "K4=tm2*K*Tl/J/Ra\n",
+ "\n",
+ "#transient value for speed\n",
+ "x1=((J*alpha2-B)*K1-(Tl-J*alpha2*K3))/(J*(alpha2-alpha1))\n",
+ "y1=((J*alpha1-B)*K1-(Tl-J*alpha1*K3))/(J*(alpha1-alpha2))\n",
+ "\n",
+ "#transient value for the current\n",
+ "x2=(K*K1+alpha2*La*K4)/(La*(alpha2-alpha1))\n",
+ "y2=(K*K1+alpha1*La*K4)/(La*(alpha1-alpha2))\n",
+ "\n",
+ "\n",
+ "#(c) to calculate the time taken by braking operation and the maximum value of the armature current\n",
+ "#now Wm=0 for the braking operation and hence 151.5 exp(-0.963*t1)- 8.247 = 0 from the previous answer in (b)\n",
+ "a=K3/x1 #a=exp(-0.963*t1)\n",
+ "t1=-alpha1*math.log(a.real) #take log base e on both sides\n",
+ "#now d/dt(ia)=0 for themaximum current and hence d/dt(26.25-593.1exp(-0.963*t)+566.8exp(-4.19*t) = 0 from the previous answer in (b)\n",
+ "b=abs(alpha2*y2)/abs(alpha1*x2) #b=exp(-0.963*t)/exp(-4.19*t)\n",
+ "t2=math.log(b)/(-alpha1+alpha2) #take log base e on both sides\n",
+ "t2=abs(t2)\n",
+ "ia=K4-x2.real*math.exp(-alpha1.real*t2)-y2.real*math.exp(-alpha2.real*t2)\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(a)Hence the braking resistance is :\",round(Rb,3),\"ohm\"\n",
+ "print\"\\nb)The value of alpha1 :\",round(alpha1.real,3),\"and alpha2 :\",round(alpha2.real,3)\n",
+ "print\"\\nHence the expression for the transient value for the speed is\"\n",
+ "print\"Wm=\",round(x1.real,1),\"exp(\",-round(alpha1.real,3),\"*t)\",round(y1.real,1),\"exp(\",-round(alpha2.real,2),\"*t)\",\"-\",round(K3,3)\n",
+ "print\"\\nHence the expression for the transient value for the current is\"\n",
+ "print\"ia=\",round(K4,2),\"-\",round(x2.real,1),\"exp(\",-round(alpha1.real,3),\"*t) +\",-round(y2.real,1),\"exp(\",-round(alpha2.real,2),\"*t)\"\n",
+ "print\"\\n(c)Hence the time taken is :\",round(t2,2),\"sec\"\n",
+ "print\" Hence the maximum current is: \",round(ia,2),\"A\"\n",
+ "print\"\\n Note : There is a slight difference in the answers due to more number of the decimal place \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Hence the braking resistance is : 0.538 ohm\n",
+ "\n",
+ "b)The value of alpha1 : 0.963 and alpha2 : 4.187\n",
+ "\n",
+ "Hence the expression for the transient value for the speed is\n",
+ "Wm= 151.5 exp( -0.963 *t) -33.3 exp( -4.19 *t) - 8.247\n",
+ "\n",
+ "Hence the expression for the transient value for the current is\n",
+ "ia= 26.25 - 593.1 exp( -0.963 *t) + 566.8 exp( -4.19 *t)\n",
+ "\n",
+ "(c)Hence the time taken is : 0.44 sec\n",
+ " Hence the maximum current is: -272.23 A\n",
+ "\n",
+ " Note : There is a slight difference in the answers due to more number of the decimal place \n"
+ ]
+ }
+ ],
+ "prompt_number": 151
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.10,Page No:86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor of Ex-5.9 which operates plugging\n",
+ "V=220 # rated voltage\n",
+ "N=1000 # rated speed\n",
+ "Ia=175 # rated current\n",
+ "Ra=0.08 # armature resistance\n",
+ "N1=1050 # initial speed of the motor in rpm\n",
+ "J=8 # moment of inertia of the motor load system kg-m2\n",
+ "La=0.12 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra\n",
+ "Wm=N*2*math.pi/60 #rated speed in rad/s\n",
+ "#(a)when the braking current is twice the rated current\n",
+ "Ia1=2*Ia\n",
+ "E1=N1/N*E\n",
+ "x=(V+E1)/Ia1 #x=Rb+Ra\n",
+ "Rb=x-Ra #required braking resistance\n",
+ "\n",
+ "#(b)to obtain the expression for the transient value of speed and current including the effect of armature inductance\n",
+ "#the values given below are taken from Ex-5.9\n",
+ "ta=0.194 #time constant in sec\n",
+ "B=0\n",
+ "tm1= float('inf') #tm1=J/B and B=0 which is equal to infinity\n",
+ "tm2=1.274\n",
+ "K=1.967\n",
+ "Trated=E*Ia/Wm #rated torque\n",
+ "Tl=0.5*Trated #load torque is 50% of the rated torque\n",
+ "Ra=Rb\n",
+ "K1=N1*2*math.pi/60 #initial speed in rad/s\n",
+ "#values of the coefficient of the quadratic equation for Wm\n",
+ "x1=(1+ta/tm1)/ta\n",
+ "x2=1/tm2/ta\n",
+ "x3=-(K*V+Ra*Tl)/J/Ra/ta \n",
+ "#values of the coefficient of the quadratic equation ia\n",
+ "y1=(1+ta/tm1)/ta\n",
+ "y2=1/tm2/ta\n",
+ "y3=-B*V/J/Ra/ta+K*Tl/J/Ra/ta \n",
+ "\n",
+ "#solving the quadratic equation\n",
+ "a = 1 \n",
+ "b = x1\n",
+ "c = x2\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "alpha1 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "alpha2 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "K3=x3/x2\n",
+ "K4=y3/y2\n",
+ "\n",
+ "Wm_0=K1 ;ia_0=0\n",
+ "d_Wm_dt_0=(K*ia_0-B*Wm-Tl)/J ;d_ia_dt_0=(-V-Ra*ia_0-K*K1)/La #Wm=K1 at t=0 and during braking rated voltage V is equal to -V\n",
+ "\n",
+ "A = np.array([[1,1],[alpha1.real,alpha2.real]])\n",
+ "B = np.array([Wm_0,d_Wm_dt_0])\n",
+ "x = np.linalg.solve(A,B)\n",
+ "C = np.array([[1,1],[alpha1.real,alpha2.real]])\n",
+ "D = np.array([-K4,d_ia_dt_0])\n",
+ "y = np.linalg.solve(C,D)\n",
+ "\n",
+ "#(c)to calculate the time taken for the speed to fall to zero value\n",
+ "a=-K3/x[0] #a=exp(-0.966*t1)\n",
+ "t1=alpha1*math.log(a) #take log base e on both sides\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(a)Hence the braking resistance is :\",round(Rb,3),\"ohm\"\n",
+ "print\"\\n(b)The solution for alpha are \",round(alpha1.real,3),\"and\",round(alpha2.real,3)\n",
+ "print\" Wm=\",round(K3,2),\"+ A*exp(\",round(alpha1.real,3),\"*t) +\",\"+ B*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\" ia=\",round(K4,2),\"+ C*exp(\",round(alpha1.real,3),\"*t) +\",\"+ D*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\" We have to find the value of A,B,C and D in the linear equation using the initial condition\"\n",
+ "print\" A=\",round(x[0],2),\"B=\",round(x[1],2), \"C=\",round(y[0],2),\"D=\",round(y[1],2)\n",
+ "print\"\\nHence the expression for the transient value for the speed is\"\n",
+ "print\" Wm=\",round(K3,2),\"+\",round(x[0],2),\"*exp(\",round(alpha1.real,3),\"*t)\",round(x[1],2),\"*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\"\\nHence the expression for the transient value for the current is\"\n",
+ "print\" ia=\",round(K4,2),round(y[0],2),\"*exp(\",round(alpha1.real,3),\"*t) +\",round(y[1],2),\"*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\"\\n(c)Hence the time taken is :\",round(t1.real,2),\"sec\"\n",
+ "print\"\\n Note :There is slight difference in the answers due to accuracy i.e more number of decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Hence the braking resistance is : 1.167 ohm\n",
+ "\n",
+ "(b)The solution for alpha are -0.966 and -4.189\n",
+ " Wm= -86.48 + A*exp( -0.966 *t) + + B*exp( -4.19 *t)\n",
+ " ia= 46.22 + C*exp( -0.966 *t) + + D*exp( -4.19 *t)\n",
+ " We have to find the value of A,B,C and D in the linear equation using the initial condition\n",
+ " A= 136.24 B= -26.28 C= -1188.2 D= 1141.98\n",
+ "\n",
+ "Hence the expression for the transient value for the speed is\n",
+ " Wm= -86.48 + 136.24 *exp( -0.966 *t) -26.28 *exp( -4.19 *t)\n",
+ "\n",
+ "Hence the expression for the transient value for the current is\n",
+ " ia= 46.22 -1188.2 *exp( -0.966 *t) + 1141.98 *exp( -4.19 *t)\n",
+ "\n",
+ "(c)Hence the time taken is : 0.44 sec\n",
+ "\n",
+ " Note :There is slight difference in the answers due to accuracy i.e more number of decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.11,Page No:89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=600 # rated speed\n",
+ "Ia=500 # rated current\n",
+ "Ra=0.02 # armature resistance\n",
+ "Rf=10 # field resistance\n",
+ "\n",
+ "#calculation \n",
+ "E1=V-Ia*Ra #rated back emf at rated operation\n",
+ "Wm1=2*math.pi*N/60 #angular speed\n",
+ "Trated=E1*Ia1/Wm1 #rated torque\n",
+ "#(i) when the speed of the motor is 450rpm\n",
+ "N1=450 #given speed in rpm\n",
+ "Tl=2000-2*N1 #load torque is a function of the speed as given\n",
+ "Ia2=Tl/Trated*Ia1 #for a torque of Tl as a function of current\n",
+ "E2=N1/N*E1 #for a given speed of 450rpm\n",
+ "V2=E2+Ia2*Ra #terminal voltage for a given speed of 450 rpm\n",
+ "\n",
+ "#(ii) when the speed of the motor is 750rpm\n",
+ "N1=750 #given speed in rpm\n",
+ "Tl=2000-2*N1 #load torque is a function of the speed as given\n",
+ "Wm_=2*math.pi*N1/60\n",
+ "Ke_phi1=E1/Wm1\n",
+ "\n",
+ "#Since we know that V=Ke*phi*Wm+Ia*Ra by solving we get that 0.02*(Ia_)**2 -220*Ia_ + 39270 = 0\"\n",
+ "a = 0.02\n",
+ "b = -220\n",
+ "c = 39270\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "Ia_1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "Ia_2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "Ke_phi=Tl/abs(Ia_1)\n",
+ "V1=V*Ke_phi/Ke_phi1 #required field voltage\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence motor terminal voltage is :\",round(V2),\"V\"\n",
+ "print\" And the armature current is :\",round(Ia2),\"A\"\n",
+ "print\"\\n(ii)The solution for Ia_ are \",round(abs(Ia_1),1),\"A and\",round(abs(Ia_2)),\"A\"\n",
+ "print\" We ignore \",round(abs(Ia_2)),\"A since it is unfeasible,\\n Hence armature current is :\",round(abs(Ia_1),1),\"A\"\n",
+ "print\" Hence the required field voltage is :\",round(V1,1),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence motor terminal voltage is : 164.0 V\n",
+ " And the armature current is : 329.0 A\n",
+ "\n",
+ "(ii)The solution for Ia_ are 181.5 A and 10819.0 A\n",
+ " We ignore 10819.0 A since it is unfeasible,\n",
+ " Hence armature current is : 181.5 A\n",
+ " Hence the required field voltage is : 181.3 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.12,Page No:91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import cmath\n",
+ "from __future__ import division\n",
+ "import numpy\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the 2-pole separately excited DC motor with the fields coils connected in parallel\n",
+ "V=220 # rated voltage\n",
+ "N=750 # rated speed\n",
+ "Ia1=100 # rated current\n",
+ "Ra=0.1 # armature resistance\n",
+ "\n",
+ "#calculation\n",
+ "E1=V-Ia1*Ra #rated back emf at rated operation\n",
+ "Wm1=2*math.pi*N/60 #angular speed\n",
+ "Trated=E1*Ia1/Wm1 #rated torque\n",
+ "Ke_phi1=E1/Wm1\n",
+ "#(i) when the armature voltage is reduced to 110V\n",
+ "Wm2=2*math.pi*N2/60 #angular speed\n",
+ "E2=Ke_phi1*Wm2\n",
+ "#Now there are two linear equations...that we have to solve\n",
+ "#They are given by 0.3*N2+2.674*Ia2=500 and 0.28*N2+0.1*Ia2=110\n",
+ "a = np.array([[0.3,2.674], [0.28,0.1]])\n",
+ "b = np.array([500,110])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "N2=round(x[0],1) #let the motor speed be N2\n",
+ "Ia2=round(x[1],1) #let the motor current be Ia2\n",
+ "\n",
+ "#(ii)when the field coils are connected in series\n",
+ "K=Ke_phi1/2\n",
+ "Wm3=2*math.pi*N3/60 #angular speed\n",
+ "E3=K*Wm3\n",
+ "#Now there are two linear equations...that we have to solve\"\n",
+ "#They are given by 0.3*N3+1.337*Ia3=500 and 0.14*N3+0.1*Ia3=220\"\n",
+ "a = np.array([[0.3,1.337], [0.14,0.1]])\n",
+ "b = np.array([500,220])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "N3=round(x[0],1) #let the motor speed be N3\n",
+ "Ia3=round(x[1],2) #let the motor current be Ia3\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the motor armature current is Ia2 :\",Ia2,\"A\"\n",
+ "print\" And the required speed is N2 :\",N2,\"rpm\"\n",
+ "print\"\\n(ii)Hence the motor armature current is Ia3 :\",Ia3,\"A\"\n",
+ "print\" And the required speed is N3 :\",N3,\"rpm\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the motor armature current is Ia2 : 148.9 A\n",
+ " And the required speed is N2 : 339.7 rpm\n",
+ "\n",
+ "(ii)Hence the motor armature current is Ia3 : 25.45 A\n",
+ " And the required speed is N3 : 1553.3 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 173
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.13,Page No:102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=200 # rated voltage\n",
+ "N=875 # rated speed\n",
+ "Ia=150 # rated current\n",
+ "Ra=0.06 # armature resistance\n",
+ "Vs=220 # source voltage\n",
+ "f=50 # frequency of the source voltage\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "\n",
+ "#(i)when the speed is 750 rpm and at rated torque\n",
+ "N1=750 #given speed in rpm\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage\n",
+ "cos_alpha=Va*math.pi/2/Vm\n",
+ "alpha=math.acos(cos_alpha) #required firing angle in radian\n",
+ "alpha1=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "#(ii)when the speed is -500rpm and at rated torque\n",
+ "N1=-500 #given speed in rpm\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage\n",
+ "cos_alpha=Va*math.pi/2/Vm\n",
+ "alpha=math.acos(cos_alpha) #required firing angle in radian\n",
+ "alpha2=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "#(iii)when the firing angle is 160 degrees\n",
+ "alpha=160 #firing angle in degrees\n",
+ "Va=2*Vm/math.pi*math.cos(math.radians(alpha))\n",
+ "E1=Va-Ia*Ra #since Va=E1+Ia*Ra\n",
+ "N1=E1/E*N #the required speed at the given firing angle\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required firing angle is :\",round(alpha1,1),\"\u00b0\"\n",
+ "print\"\\n(ii)Hence the required firing angle is :\",round(alpha2),\"\u00b0\"\n",
+ "print\"\\n(iii)Hence the required speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required firing angle is : 29.3 \u00b0\n",
+ "\n",
+ "(ii)Hence the required firing angle is : 120.0 \u00b0\n",
+ "\n",
+ "(iii)Hence the required speed is : -893.9 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.14,Page No:103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor is same as that of Ex-5.13\n",
+ "V=200 # rated voltage\n",
+ "N=875 # rated speed\n",
+ "Ia=150 # rated current\n",
+ "Ra=0.06 # armature resistance\n",
+ "Vs=220 # source voltage\n",
+ "f=50 #frequency of the source voltage\n",
+ "La=0.85e-3 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "Wm=2*math.pi*N/60 #synchronous angular speed\n",
+ "\n",
+ "#(i)when the speed is 400 rpm and firing angle is 60 degrees\n",
+ "N1=400 #given speed in rpm\n",
+ "alpha=60 #firing angle in degrees\n",
+ "W=2*math.pi*f \n",
+ "x=W*La/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*La)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "a=(1+math.exp(-(math.pi*cot_phi)))/(math.exp(-(math.pi*cot_phi))-1)\n",
+ "Wmc=y*math.sin(math.radians(alpha)-phi)*a #required angular speed in rps\n",
+ "Nmc=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "\n",
+ "E1=N1/N*E \n",
+ "\n",
+ "#The equation Vm/Z*sin(beta-phi)-E/Ra+(E/Ra-Vm/Z*sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=0\n",
+ "#can be solved using trial method such that beta=230 degrees\n",
+ "beta=230 #in degrees\n",
+ "beta=math.radians(beta) #in radians\n",
+ "alpha=math.radians(alpha) #in radians\n",
+ "\n",
+ "Va=(Vm*(math.cos(alpha)-math.cos(beta))+(math.pi+alpha-beta)*E1)/math.pi\n",
+ "Ia=(Va-E1)/Ra\n",
+ "T1=K*Ia\n",
+ "\n",
+ "#(ii)when the speed is -400 rpm and firing angle is 120 degrees\n",
+ "Le=2e-3 #external inductance added to the armature\n",
+ "L=La+Le\n",
+ "N2=-400 #given speed in rpm\n",
+ "alpha=120 #firing angle in degrees\n",
+ "x=W*L/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*L)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "a=(1+math.exp(-(math.pi*cot_phi)))/(math.exp(-(math.pi*cot_phi))-1)\n",
+ "Wmc=y*math.sin(math.radians(alpha)-phi)*a #required angular speed in rps\n",
+ "Nmc1=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "#The motor is operating under discontinous condition\"\n",
+ "E2=N2/N*E \n",
+ "\n",
+ "#The equation Vm/Z*sin(beta-phi)-E/Ra+(E/Ra-Vm/Z*sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=0\n",
+ "#can be solved using trial method such that beta=281 degrees\n",
+ "beta=281 #in degrees\n",
+ "beta=math.radians(beta) #in radians\n",
+ "alpha=math.radians(alpha) #in radians\n",
+ "\n",
+ "Va=(Vm*(math.cos(alpha)-math.cos(beta))+(math.pi+alpha-beta)*E2)/math.pi\n",
+ "Ia=(Va-E2)/Ra\n",
+ "T2=K*Ia\n",
+ "\n",
+ "#(iii)when the speed is -600 rpm and firing angle is 120 degrees\n",
+ "N3=-600 #speed in rpm\n",
+ "alpha=120 #firing angle in degrees\n",
+ "Va=2*Vm/math.pi*math.cos(math.radians(alpha))\n",
+ "E3=N3/N*E #since Va=E1+Ia*Ra\n",
+ "Ia=(Va-E3)/Ra\n",
+ "T3=K*Ia\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required torque is :\",round(T1),\"N-m \"\n",
+ "print\"\\n(ii)Hence the required torque is :\",round(T2,1),\"N-m\"\n",
+ "print\"\\n(iii)Hence the required torque is :\",round(T3),\"N-m\" \n",
+ "print\"\\nNote : There is a slight difference in the answers because of accuracy i.e more number of decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required torque is : 1067.0 N-m \n",
+ "\n",
+ "(ii)Hence the required torque is : 336.4 N-m\n",
+ "\n",
+ "(iii)Hence the required torque is : 1110.0 N-m\n",
+ "\n",
+ "Note : There is a slight difference in the answers because of accuracy i.e more number of decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 179
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.15,Page No:105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor is same as that of Ex-5.13\n",
+ "V=200 # rated voltage\n",
+ "N=875 # rated speed\n",
+ "Ia=150 # rated current\n",
+ "Ra=0.06 # armature resistance\n",
+ "Vs=220 # source voltage\n",
+ "f=50 #frequency of the source voltage\n",
+ "La=2.85e-3 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "Wm=2*math.pi*N/60 #angular speed\n",
+ "W=2*math.pi*f\n",
+ "\n",
+ "alpha=120 #firing angle in degrees\n",
+ "x=W*La/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*La)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "a=(1+math.exp(-(math.pi*cot_phi)))/(math.exp(-(math.pi*cot_phi))-1)\n",
+ "Wmc=round(y,3)*math.sin(math.radians(alpha)-phi)*a #required angular speed in rps\n",
+ "Nmc=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "\n",
+ "Va=2*Vm/math.pi*math.cos(math.radians(alpha))\n",
+ "E1=Nmc/N*E #value of back emf at the critical speed of Nmc \n",
+ "Ia=(Va-E1)/Ra\n",
+ "Tc=K*Ia\n",
+ "\n",
+ "#(i)when the torque is 1200 N-m and firing angle is 120 degrees\n",
+ "T2=1200 #given torque in N-m\n",
+ "Ia2=T2/K #given terminal current for the given torque and the answer in the book is wrong\n",
+ "E2=Va-Ia*Ra \n",
+ "N2=E2/E*N\n",
+ "\n",
+ "#(ii)when the torque is 300 N-m and firing angle is 120 degrees\n",
+ "T=300 #required torque in N-m\n",
+ "beta=233.492 #required angle in degrees\n",
+ "beta=math.radians(beta) #in radians\n",
+ "alpha=math.radians(alpha) #in radians\n",
+ "x=beta-alpha\n",
+ "E1=(Vm*(math.cos(alpha)-math.cos(beta)))/x-(math.pi*Ra*T)/(K*x)\n",
+ "N1=E1/E*N #required speed \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"The motor is operating under continuous condition\"\n",
+ "print\"The torque Tc is :\",round(Tc),\"N-m\"\n",
+ "print\"The answer for torque Tc in the book is wrong due to accuracy in the decimal place which leads to subsequent \"\n",
+ "print\"incorrect answers\"\n",
+ "print\"\\n(i)Hence the required speed is :\",round(N2),\"rpm\"\n",
+ "print\"\\n(ii)The equation Vm/Z*sin(beta-phi)-sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=\"\n",
+ "print\" (Vm*(cos(alpha)-cos(beta))/Ra/(beta-alpha)-pi*T/K/(beta-alpha) )*(1-exp(-(beta-alpha)*cot_phi)\"\n",
+ "print\" can be solved using trial method such that beta=233.492 degrees\"\n",
+ "print\"\\n Hence the required speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The motor is operating under continuous condition\n",
+ "The torque Tc is : 396.0 N-m\n",
+ "The answer for torque Tc in the book is wrong due to accuracy in the decimal place which leads to subsequent \n",
+ "incorrect answers\n",
+ "\n",
+ "(i)Hence the required speed is : -506.0 rpm\n",
+ "\n",
+ "(ii)The equation Vm/Z*sin(beta-phi)-sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=\n",
+ " (Vm*(cos(alpha)-cos(beta))/Ra/(beta-alpha)-pi*T/K/(beta-alpha) )*(1-exp(-(beta-alpha)*cot_phi)\n",
+ " can be solved using trial method such that beta=233.492 degrees\n",
+ "\n",
+ " Hence the required speed is : 5.6 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 181
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.16,Page No:110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=960 # rated speed\n",
+ "Ia=12.8 # rated current\n",
+ "Ra=2 # armature resistance\n",
+ "Vs=230 # source voltage\n",
+ "f=50 #frequency of the source voltage\n",
+ "La=150e-3 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "Wm=2*math.pi*N/60 #angular speed\n",
+ "W=2*math.pi*f\n",
+ "\n",
+ "#(i)when speed is 600rpm and the firing angle is 60 degrees\n",
+ "alpha=60 #firing angle in degrees\n",
+ "N1=600 #motor speed in rpm\n",
+ "x=W*La/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*La)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "b=math.sin(phi)*math.exp(-(math.radians(alpha)*cot_phi))\n",
+ "c=math.sin(math.radians(alpha)-phi)*math.exp(-(math.pi*cot_phi))\n",
+ "a=1-math.exp(-(math.pi*cot_phi))\n",
+ "Wmc=round(y,3)*(b-c)/a #required angular speed in rps\n",
+ "Nmc=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "\n",
+ "Va=Vm/math.pi*(1+math.cos(math.radians(alpha)))\n",
+ "E1=N1/N*E #value of back emf at the speed of N1\n",
+ "Ia=(Va-E1)/Ra\n",
+ "T=K*Ia\n",
+ "\n",
+ "#(ii)when the torque is 20 N-m and firing angle is 60 degrees\n",
+ "T1=20 #required torque in N-m\n",
+ "alpha=60 #required firing angle in degrees\n",
+ "Ec=Nmc/N*E #motor back emf at critical speed of Nmc\n",
+ "Tc=K*(Va-Ec)/Ra #torque at the critical speed\n",
+ "\n",
+ "Ia=T1/K\n",
+ "E1=Va-Ia*Ra\n",
+ "N1=E1/E*N #required speed \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "if N1<Nmc :\n",
+ " print\"(i)The motor is operating under continuous condition\"\n",
+ "print\" Hence the required torque is :\",round(T,2),\"N-m\"\n",
+ "if Tc<T1 :\n",
+ " print\"\\n(ii)The motor is operating under continuous condition\"\n",
+ "print\" Hence the required speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)The motor is operating under continuous condition\n",
+ " Hence the required torque is : 32.68 N-m\n",
+ "\n",
+ "(ii)The motor is operating under continuous condition\n",
+ " Hence the required speed is : 664.8 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 182
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.17,Page No:113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=1500 # rated speed\n",
+ "Ia=50 # rated current\n",
+ "Ra=0.5 # armature resistance\n",
+ "Vl=440 # line voltage with 3-phase ac supply\n",
+ "f=50 #frequency of the source voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i) tranformer ratio\n",
+ "alpha=0 #firing angle\n",
+ "Va=V #motor terminal voltage is equal to the rated voltage when the firing angle is 0 degrees\n",
+ "Vm=math.pi/3*Va/math.cos(alpha)\n",
+ "Vrms=Vm/math.sqrt(2) #rms value of the converter input voltage\n",
+ "a=(Vl/math.sqrt(3))/Vrms #required transformer ratio\n",
+ "\n",
+ "#(ii)value of the firing angle\n",
+ "E=V-Ia*Ra #back emf at the rated speed\n",
+ "\n",
+ "#(a)when the speed of the motor is 1200 rpm and rated torque\n",
+ "N1=1200 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha=math.acos(math.pi/3*Va/Vm) #required firing angle in radians\n",
+ "alpha1=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "#(b)when the speed of the motor is -800 rpm and twice the rated torque\n",
+ "N1=-800 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Ia=2*Ia #torque is directly proportional to the current hence twice the rated current\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha=math.acos(math.pi/3*Va/Vm) #required firing angle in radians\n",
+ "alpha2=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required transformer ratio is :\",round(a,3)\n",
+ "print\"\\n(ii)(a)Hence the required firing angle is :\",round(alpha1,2),\"\u00b0\"\n",
+ "print\"\\n (b)Hence the required firing angle is :\",round(alpha2,2),\"\u00b0\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required transformer ratio is : 1.559\n",
+ "\n",
+ "(ii)(a)Hence the required firing angle is : 34.64 \u00b0\n",
+ "\n",
+ " (b)Hence the required firing angle is : 104.21 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 183
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.18,Page No:117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor is same as that of Ex-5.17 but is fed from a circulating dual converter\n",
+ "V=220 # rated voltage\n",
+ "N=1500 # rated speed\n",
+ "Ia=50 # rated current\n",
+ "Ra=0.5 # armature resistance\n",
+ "Vl=165 # line voltage \n",
+ "f=50 # frequency of the source voltage\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf at the rated speed\n",
+ "Vm=Vl*math.sqrt(2) #peak voltage\n",
+ "\n",
+ "#(i)during motoring operation when the speed is 1000 rpm and at rated torque\n",
+ "N1=1000 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B=180-math.degrees(alpha_A) #required converter firing angle in degrees\n",
+ "\n",
+ "#(ii)during braking operation when the speed is 1000 rpm and at rated torque\n",
+ "N1=1000 #speed of the motor in the book it is given as 100 rpm which is wrong\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1-Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A1=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B1=180-math.degrees(alpha_A1) #required converter firing angle in degrees\n",
+ "\n",
+ "#(iii)during motoring operation when the speed is -1000 rpm and at rated torque\n",
+ "N1=-1000 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1-Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A2=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B2=180-math.degrees(alpha_A2) #required converter firing angle in degrees\n",
+ "\n",
+ "#(iv)during braking operation when the speed is -1000 rpm and at rated torque\n",
+ "N1=-1000 #speed of the motor in the book it is given as 100 rpm which is wrong\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A3=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B3=180-math.degrees(alpha_A3) #required converter firing angle in degrees\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"\\n(i)Hence the required firing angle is :\",round(alpha_B,1),\"\u00b0\"\n",
+ "print\"\\n(ii)Hence the required firing angle is :\",round(alpha_B1,1),\"\u00b0\"\n",
+ "print\"\\n(iii)Hence for negative speed during motoring operation the required firing angle are :\"\n",
+ "print\" alpha_A :\",round(math.degrees(alpha_A2),1),\"\u00b0 and alpha_B :\",round(alpha_B2,1),\"\u00b0\"\n",
+ "print\"\\n(iv)Hence for negative speed during braking operation the required firing angle are :\"\n",
+ "print\" alpha_A :\",round(math.degrees(alpha_A3),1),\"\u00b0 and alpha_B :\",round(alpha_B3,1),\"\u00b0\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)Hence the required firing angle is : 134.1 \u00b0\n",
+ "\n",
+ "(ii)Hence the required firing angle is : 118.1 \u00b0\n",
+ "\n",
+ "(iii)Hence for negative speed during motoring operation the required firing angle are :\n",
+ " alpha_A : 134.1 \u00b0 and alpha_B : 45.9 \u00b0\n",
+ "\n",
+ "(iv)Hence for negative speed during braking operation the required firing angle are :\n",
+ " alpha_A : 118.1 \u00b0 and alpha_B : 61.9 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 184
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.19,Page No:126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=230 # rated voltage\n",
+ "N=960 # rated speed\n",
+ "Ia=200 # rated current\n",
+ "Ra=0.02 # armature resistance\n",
+ "Vs=230 # source voltage\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "\n",
+ "#(i) When the speed of motor is 350 rpm with the rated torque during motoring operation\n",
+ "N1=350 #given speed in rpm\n",
+ "E1=N1/N*E #given back emf at N1\n",
+ "Va=E1+Ia*Ra #motor terminal voltage\n",
+ "delta=Va/V #duty ratio\n",
+ "\n",
+ "#(ii) When the speed of motor is 350 rpm with the rated torque during braking operation\n",
+ "Va=E1-Ia*Ra #motor terminal voltage\n",
+ "delta1=Va/V #duty ratio\n",
+ "\n",
+ "#(iii)maximum duty ratio is 0.95\n",
+ "delta2=0.95 #maximum duty ratio\n",
+ "Va=delta2*V #terminal voltage\n",
+ "Ia1=2*Ia #maximum permissable current\n",
+ "E1=Va+Ia1*Ra #back emf\n",
+ "N1=E1/E*N #maximum permissible speed\n",
+ "Pa=Va*Ia1 #power fed to the source\n",
+ "\n",
+ "#(iv) if the speed of the motor is 1200 rpm and the field of the motor is also controlled\n",
+ "N2=1200 #given speed\n",
+ "#now the field current is directly proportional to the speed of the motor\n",
+ "If=N/N2 #field current as a ratio of the rated current\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i) Duty ratio is :\",round(delta,3)\n",
+ "print\"\\n(ii)Duty ratio is :\",round(delta1,2)\n",
+ "print\"\\n(iii)Maximum permissible speed is :\",round(N1),\"rpm\"\n",
+ "print\" Power fed to the source is :\",round(Pa/1000,1),\"kW\"\n",
+ "print\"\\n(iv)Field current as a ratio of the rated current is :\",If"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Duty ratio is : 0.376\n",
+ "\n",
+ "(ii)Duty ratio is : 0.34\n",
+ "\n",
+ "(iii)Maximum permissible speed is : 962.0 rpm\n",
+ " Power fed to the source is : 87.4 kW\n",
+ "\n",
+ "(iv)Field current as a ratio of the rated current is : 0.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 185
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.20,Page No:127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor when it is operated in dynamic breaking\n",
+ "V=230 # rated voltage\n",
+ "N=960 # rated speed\n",
+ "Ia=200 # rated current\n",
+ "Ra=0.02 # armature resistance\n",
+ "Vs=230 # source voltage\n",
+ "Rb=2 # braking resistance in ohm\n",
+ "\n",
+ "#calculation\n",
+ "#when the motor speed is 600 rpm and the braking torque is twice the rated value\n",
+ "Ia1=2*Ia #torque is directly proportional to current\n",
+ "N1=600 #speed of the motor in rpm\n",
+ "E=V-Ia*Ra #back emf\n",
+ "E1=N1/N*E\n",
+ "x=E1/Ia1-Ra #x=(1-delta)*Rb\n",
+ "y=x/Rb #y=1-delta\n",
+ "delta=1-y #duty ratio\n",
+ "\n",
+ "#(ii)if the duty ratio is 0.6 and and the braking torque is twice the rated value\n",
+ "delta1=0.6 #duty ratio\n",
+ "Ia1=2*Ia #torque is directly proportional to current\n",
+ "E1=Ia1*((1-delta1)*Rb+Ra) #back emf\n",
+ "N1=E1/E*N\n",
+ "\n",
+ "\n",
+ "#results \n",
+ "print\"(i)Duty ratio is :\",round(delta,2)\n",
+ "print\"\\n(ii)Hence the motor speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Duty ratio is : 0.83\n",
+ "\n",
+ "(ii)Hence the motor speed is : 1393.3 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.21,Page No:128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the series motor\n",
+ "N=600 #speed in rpm\n",
+ "Vs=220 #source voltage\n",
+ "Ra_Rf=0.12 #combine armature resistance field resistance\n",
+ "#magnetisation curve at N\n",
+ "If=[10, 20,30, 40, 50, 60, 70, 80] #field current\n",
+ "E =[64,118,150,170,184,194,202,210] #terminal voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i)when the duty ratio is 0.6 and motor current is 60 A\n",
+ "delta=0.6 #duty ratio\n",
+ "Ia1=60 #motor current\n",
+ "Va1=delta*Vs #terminal voltage for the given duty ratio\n",
+ "E1=Va1-Ia1*Ra_Rf #back emf for the given duty ratio\n",
+ "\n",
+ "#for Ia1=60 A the terminal voltage is 194 V as given in the magnetization curve\n",
+ "N1=E1/E[5]*N #motor speed for the given duty ratio\n",
+ "\n",
+ "#(ii)when the speed is 400rpm and the duty ratio is 0.65\n",
+ "delta=0.65 #duty ratio\n",
+ "N2=400 #speed in rpm\n",
+ "Va1=delta*Vs #terminal voltage for the given duty ratio\n",
+ "\n",
+ "#from the magnetization characteristic for the speed of 400rpm the current Ia=70 A\n",
+ "E1=Va1-If[6]*Ra_Rf #back emf for the given duty ratio\n",
+ "T=(E1*If[6])/N2/(2*math.pi/60) #required torque\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the motor speed is :\",round(N1),\"rpm\"\n",
+ "print\"\\n(ii)Hence the required torque is :\",round(T),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the motor speed is : 386.0 rpm\n",
+ "\n",
+ "(ii)Hence the required torque is : 225.0 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 186
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.22,Page No:129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the series motor which is the same as that of Ex-6.21\n",
+ "#The motor is operated using regenarative braking method\n",
+ "N=600 #speed in rpm\n",
+ "Vs=220 #source voltage\n",
+ "Ra_Rf=0.12 #combine armature resistance field resistance\n",
+ "#magnetisation curve at N\n",
+ "If=[10, 20,30, 40, 50, 60, 70, 80] #field current\n",
+ "E =[64,118,150,170,184,194,202,210] #terminal voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i)when the duty ratio is 0.5 and the braking torque is equal to the motor torque\n",
+ "delta=0.5 #duty ratio\n",
+ "Va1=delta*Vs #terminal voltage\n",
+ "Ia1=If[6] #current at rated motor torque\n",
+ "E1=Va1+Ia1*Ra_Rf #back emf for the given duty ratio\n",
+ "N1=E1/E[6]*N #for a current of 70 A E=202 V from the magnetization curve\n",
+ "\n",
+ "#(ii)when maximum permisssible duty ratio is 0.95 and current is 70A\n",
+ "delta_max=0.95 #maximum duty ratio\n",
+ "Va1=delta_max*Vs #terminal voltage\n",
+ "Ia1=70 #maximum permissible current\n",
+ "E2=Va1+Ia1*Ra_Rf #back emf for the given duty ratio\n",
+ "N2=E2/E[6]*N #for a current of 70 A E=202 V\n",
+ "\n",
+ "#(iii)when the motor speed is 1000rpm and maximum current is 70A with duty ratio in the range of 0.05 to 0.95\n",
+ "Ia1=70 #maximum permissible current\n",
+ "N3=1000 #given speed in rpm\n",
+ "delta_max=0.95 #maximum duty ratio\n",
+ "E3=N3/N*E[6] #terminal voltage\n",
+ "x=(E3-delta_max*Vs)/Ia1 #x=R+Ra_Rf where R is the required external resistance\n",
+ "R=x-Ra_Rf #external resistance\n",
+ "\n",
+ "#(iv)when the motor is running at 1000rpm with current at 70 \n",
+ "Ia1=70 #maximum permissible current\n",
+ "N4=1000 #given speed in rpm\n",
+ "Ra=Ra_Rf #total value of armature resistance is assumed to be the same\n",
+ "E4=Va1+Ia1*Ra #back emf for the given speed N4\n",
+ "E_=N/N4*E4\n",
+ "ratio=E_/E[6] #fraction of the requuired number of turns to be reduced\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the motor speed is :\",round(N1,1),\"rpm\"\n",
+ "print\"\\n(ii)Hence the motor speed is :\",round(N2,1),\"rpm\"\n",
+ "print\"\\n(iii)Hence the required external resistance is :\",round(R,1),\"ohm\"\n",
+ "print\"\\n(iv)Hence fraction of the number of turns to be reduced is :\",round(ratio,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the motor speed is : 351.7 rpm\n",
+ "\n",
+ "(ii)Hence the motor speed is : 645.7 rpm\n",
+ "\n",
+ "(iii)Hence the required external resistance is : 1.7 ohm\n",
+ "\n",
+ "(iv)Hence fraction of the number of turns to be reduced is : 0.646\n"
+ ]
+ }
+ ],
+ "prompt_number": 187
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.23,Page No:130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the series motor which is the same as that of Ex-6.21\n",
+ "#The motor is operated using dynamic braking method\n",
+ "N=600 #speed in rpm\n",
+ "Vs=220 #source voltage\n",
+ "Ra=0.12 # armature resistance\n",
+ "delta_min=0.1 #manimum value of duty ratio\n",
+ "delta_max=0.9 #maximum value of duty ratio\n",
+ "#magnetisation curve at N\n",
+ "If=[10, 20,30, 40, 50, 60, 70, 80] #field current\n",
+ "E =[64,118,150,170,184,194,202,210] #terminal voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i) maximum braking speed is 800rpm with armature current of 70 A\n",
+ "N1=800 #maximum braking speed \n",
+ "Ia=70 #armature current\n",
+ "E1=N1/N*E[6] #at 70A motor back emf is 202V \n",
+ "Rbe=E1/Ia-Ra #effective value of braking resistance\n",
+ "Rb=Rbe/(1-delta_min) #required braking resistance\n",
+ "\n",
+ "#(ii)when the speed of the motor is 87 rpm\n",
+ "#now torque is maximum when the duty ratio is maximum\n",
+ "N1=87 #speed in rpm\n",
+ "R=Rb*(1-delta_max)+Ra\n",
+ "\n",
+ "Ia=If[4] #value of armature current for the given value of E=184V \n",
+ "Ke_phi=E[4]/(2*math.pi*N)*60\n",
+ "T=Ke_phi*Ia #required torque\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence braking resistance is:\",round(Rb,2),\"ohm\"\n",
+ "print\"\\n(ii)Hence the required torque is :\",round(T,1),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence braking resistance is: 4.14 ohm\n",
+ "\n",
+ "(ii)Hence the required torque is : 146.4 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 188
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter5_1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter5_1.ipynb
new file mode 100755
index 00000000..91398e1a
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter5_1.ipynb
@@ -0,0 +1,1915 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f20d8b5a5913a9f02b40c1bc779b6f178287c3bedb89723b4661d7c15c29c1bd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Dc Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.1,Page No:63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#motor ratings\n",
+ "V1=200 #rated voltage\n",
+ "Ia1=10.5 #rated current\n",
+ "N1=2000 #speed in rpm\n",
+ "Ra=0.5 #armature resistance\n",
+ "Rs=400 #field resistance\n",
+ "V2=175 #drop in source voltage \n",
+ "\n",
+ "#calculation\n",
+ "flux1 = Symbol('flux1')\n",
+ "flux2=V2/V1*flux1\n",
+ "Ia2=flux1/flux2*Ia1 #since load torque\n",
+ "E1=V1-Ia1*Ra\n",
+ "E2=V2-Ia2*Ra\n",
+ "N2=(E2/E1)*(flux1/flux2)*N1\n",
+ "\n",
+ "#results\n",
+ "#answer in the book is wrong due to accuracy\n",
+ "print\"\\nmotor speed is:N2=\",round(N2,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "motor speed is:N2= 1983.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 158
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.2,Page No:63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "V1=220 #rated voltage\n",
+ "Ia1=100 #rated current\n",
+ "N1=1000 #rated speed in rpm clockwise\n",
+ "Ra=0.05 #armature resistance\n",
+ "Rs=0.05 #field resistance\n",
+ "\n",
+ "#calculation\n",
+ "#turns is reduced to 80% then flux is also reduced by the same value and hence current is also reduced\n",
+ "Ke = Symbol('Ke')\n",
+ "Ia2 = Symbol('Ia2')\n",
+ "T1=Ke*Ia1**2 #flux is directly proportional to current Ia\n",
+ "T2=Ke*0.8*Ia2**2 #flux is directly proportional to current Ia\n",
+ "Ia2=-Ia1/math.sqrt(0.8) #since T1=T2 and the direction is opposite\n",
+ "\n",
+ "E1=V1-Ia1*(Ra+Rs)\n",
+ "\n",
+ "Rs=.8*Rs #Rs=80% of the field resistance 0.05ohm since the flux is reduced to 80%\n",
+ "E2=-(V1+Ia2*(Ra+Rs)) \n",
+ "\n",
+ "N2=(E2/E1)*(Ia1/Ia2)*(N1/0.8) #since E=Kn*flux*N\n",
+ "\n",
+ "#results\n",
+ "print\"\\nmotor speed is:N2=\",round(N2,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "motor speed is:N2= 1117.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 160
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.3,Page No:70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#motor ratings\n",
+ "V1=220 #rated voltage\n",
+ "Ia1=200 #rated current\n",
+ "Ra=0.06 #armature resistance\n",
+ "Rb=0.04 #internal resistance of the variable source\n",
+ "N1=800 #speed in rpm\n",
+ "N2=600 #speed when motor is operatingin regenerative braking\n",
+ "\n",
+ "#Calculation\n",
+ "Ia2=0.8*Ia1 #motor is opereting in regenerative braking at 80% of Ia1\n",
+ "E1=V1-Ia1*Ra #back emf at rated operation\n",
+ "E2=(N2/N1)*E1 #back emf at the given speed N2\n",
+ "V2=E2-Ia2*(Ra+Rb) #internal voltage of thevariable source\n",
+ "\n",
+ "#results\n",
+ "print\"\\n internal voltage of thevariable source:\",round(V2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " internal voltage of thevariable source: 140.0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 161
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.4,Page No:70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#The ratings of the motor is same as that of Ex-5.2\n",
+ "V1=220 #rated voltage\n",
+ "Ia1=100 #rated current\n",
+ "N1=1000 #speed in rpm clockwise\n",
+ "N2=800 #given speed during the dynamic braking\n",
+ "Ra=0.05 #armature resistance\n",
+ "Rs=0.05 #field resistance\n",
+ "\n",
+ "#calculation\n",
+ "T1 = Symbol('T1')\n",
+ "T2 = 2*T1 #dynamic torque is twice the rated torque\n",
+ "Ia2=Ia1*math.sqrt(T2/T1) #since T=Kf*Ia**2\n",
+ "E1=V1-Ia1*(Ra+Rs)\n",
+ "E2=(Ia2/Ia1)*(N2/N1)*E1 #since E=Ke*Ia*N\n",
+ "Rb=E2/Ia2-(Ra+Rs) #since E2=Ia2(Rb+Ra+Rs) during braking\n",
+ "\n",
+ "#results\n",
+ "print\"\\n braking current Ia2:\",round(Ia2,1),\"A\"\n",
+ "print\"\\n required braking resistance Rb:\",round(Rb,2),\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " braking current Ia2: 141.4 A\n",
+ "\n",
+ " required braking resistance Rb: 1.58 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 162
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.5,Page No:70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the DC shunt motor which operated under dynamic braking\n",
+ "Rb=1 #braking resisance\n",
+ "Ra=0.04 #armature resistance\n",
+ "Rf=10 #field resistance\n",
+ "T=400 #load torque in N-m\n",
+ "\n",
+ "#magnetisation curve at N1\n",
+ "N1=600 #speed in rpm\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E =[25,50,73.5,90,102.5,110,116,121,125,129] #back emf\n",
+ "\n",
+ "#calculation\n",
+ "print\"Field current If:\",If,\"A\"\n",
+ "x=(Rb+Rf)/Rb\n",
+ "Ia = [If * x for If in If] #armature current\n",
+ "Wm=2*math.pi*N1/60\n",
+ "Ke_flux=[E / Wm for E in E] #Ke*flux=constant\n",
+ "Ke_flux=[round(Ke_flux,3) for Ke_flux in Ke_flux] \n",
+ "\n",
+ "Ke_flux=numpy.array(Ke_flux)\n",
+ "Ia=numpy.array(Ia)\n",
+ "T=numpy.array(Ke_flux)*numpy.array(Ia) #torque\n",
+ "print\"\\nKe_flux :\",Ke_flux\n",
+ "T=[round(T,1) for T in T]\n",
+ "print\"\\nTorque :\",T,\"N-m\"\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "#plotting the values of Ke*flux vs If \n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "plt.subplot(2,1,1)\n",
+ "plt.plot(If,Ke_flux,'y')\n",
+ "plt.xlabel('field current $I_f$')\n",
+ "plt.ylabel('$Ke*flux$')\n",
+ "plt.title('$If vs Ke*flux$')\n",
+ "plt.grid(True)\n",
+ "\n",
+ "#plotting the values of T vs If \n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(T,If)\n",
+ "plt.xlabel('Torque $T$')\n",
+ "plt.ylabel('field current $I_f$')\n",
+ "plt.title('$T vs If$')\n",
+ "plt.grid()\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "\n",
+ "print\"\\nFrom the plot we can see that when the torque is 400 N-m, \"\n",
+ "print\"the field current is If=19.3 A, and Ke*flux=1.898 when If=19.3 A\"\n",
+ "T=400 # braking torque\n",
+ "If=19.13 # field current\n",
+ "Ke_flux=1.898 # Ke*flux\n",
+ "Ia=x*If\n",
+ "E=If*Rf+Ia*Ra #since E=V+Ia*Ra\n",
+ "N2=(E/Ke_flux)*(60/(2*math.pi)) #required speed\n",
+ "print\"Hence the required speed in is :\",round(N2),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Field current If: [2.5, 5, 7.5, 10, 12.5, 15, 17.5, 20, 22.5, 25] A\n",
+ "\n",
+ "Ke_flux : [ 0.398 0.796 1.17 1.432 1.631 1.751 1.846 1.926 1.989 2.053]\n",
+ "\n",
+ "Torque : [10.9, 43.8, 96.5, 157.5, 224.3, 288.9, 355.4, 423.7, 492.3, 564.6] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9On6/bdu3WLbtm2sX78eV1fXRi2DELZGEpUQjahLly506NABgEOHDvHggw/q33NxcaFr164mna+s\nrIz4+Hjeffddg/0JCQmEhYURFRXV8KCFsHFyj0qIRjRo0CD9nw8dOsSIESP0223btuXgwYNMmzYN\n0HXdrVmzhtzcXDZs2EBsbCyvvvqqwflOnTqFr68vPj4++n0JCQmsX7+e0tJSdu7caeYSCWF9kqiE\nMJO4uDiGDx+u375w4QLh4eFotVoAZsyYgYODAzt37iQtLY2BAwdy7tw5g3McPHjQINkBREdH07p1\naxYvXsykSZPMXxAhrEwSlRBmkJKSQmFhIX369NHvGzFiBO+//z5z584FIDs7m1GjRvHQQw+RlZVF\ncHAw/fr1MzhP9WRX4fz58wQFBZm1DELYCklUQpjBoUOHGDZsWI39iYmJREdHA5CUlERRUREvvPAC\n77//PomJiRw+fFh/bElJCUePHq1xnvT0dNq3b49GozFnEYSwGTI8XYhGdO7cOf71r3/xzjvv4Ojo\nSFFREWFhYfqkUl5eTkJCAllZWfTv3x9XV1cKCwu5du0aX331Fc888wxt2rQhISGBtWvXcubMGbp0\n6UJERIT+GgcPHsTBwYGRI0daq5hCWJRGmTpetpGkpaUxe/ZsMjIy0Gg0PPbYYzz11FMsX76cf/zj\nH/qRU6+88gq/+tWvrBGiEDYlMTGR9957Dy8vL6ZPn27S81hCNGVWG57u7OzMunXrCAsLIy8vj379\n+jF69Gg0Gg1LlixhyZIl1gpNCJvk6OiIn58fLi4ukqSEXbFaovL19cXX1xcANzc3AgMDuXr1KoDJ\nD0UKYQ/CwsIMZqYQwl7YxGCK1NRUkpKSGDBgAABvvPEGoaGhLFiwgJycHCtHJ4QQwpqsnqjy8vKY\nOnUq69evx83NjUWLFpGSkkJycjIdO3bk2WeftXaIQgghrElZUXFxsRozZoxat25dre+npKSovn37\n1tjfrl07BchLXvKSl7yawMvf379BucJq96iUUixYsICgoCAWL16s33/9+nU6duwIwM6dOwkODq7x\nuzdu3LC7+1hz587ln//8p7XDsCh7K7O9lRekzOZ08yacPg3fflv5On8eOnWC0FDD1333gTkfy2vo\nM39WS1RHjx5l06ZNhISEEB4eDsDKlSvZsmULycnJaDQaunfvzjvvvGOtEG1Kt27drB2Cxdlbme2t\n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\nbSMxMZE5c+awY8cOXnrpJaZNm2auGGuoSzPyxg3YuFHXWnJy0nXtzZoFnp4WClIIIQRgpeeozp8/\nz4EDBwAYMWKExVf4vVuhlYKjR+Hvf4c9eyAmRpegBg6U1pMQQlhLs3zg15jaCn37ti4hlZbqktPs\n2XCXiS2apLi4OP3wT3thb2W2t/KClNleNDRR1fke1eDBgzly5Ih+1vTqQdy+fbveQTSGNm10XX0R\nEdJ6EkKI5qTOLaqZM2eyadMmXnvtNRYvXmzuuO6pqSzzIYQQwoLD00+dOsW1a9f44IMPyM7OrvES\nQgghzKHOiWrhwoWMHDmSH374gX79+tV4NaZ9+/bRu3dvevbsyerVqxv13E2VPT57YW9ltrfygpRZ\n1E2dE9VTTz3F+fPnmTdvHikpKTVejaWsrIw//vGP7Nu3j3PnzrFlyxbOnz/faOdvqirmB7Mn9lZm\neysvSJlF3Zj8pO7f//53c8Shd+LECXr06EG3bt1wdnZmxowZfPbZZ2a9ZlNQMcGjPbG3MttbeUHK\nLOrG5qaUuHr1Kl26dNFv+/n5cfXqVStGJIQQwppsLlFpZGx5rRpjqvymxt7KbG/lBSmzqCNlY77+\n+ms1duxY/fbKlSvVqlWrDI7x9/dXgLzkJS95yasJvPz9/RuUF2xuZorS0lICAgI4cOAAnTp1Iioq\nii1bthAYGGjt0IQQQliBybOnm5uTkxMbNmxg7NixlJWVsWDBAklSQghhx2yuRSWEEEJUZXODKe6l\nuT4IPH/+fHx8fAgODtbvy87OZvTo0fTq1YsxY8YYDGl95ZVX6NmzJ71792b//v3WCLnB0tLSGD58\nOH369KFv3768/vrrQPMud1FREdHR0YSFhREUFKRfFLQ5lxl0z0aGh4czfvx4oPmXt1u3boSEhBAe\nHk5UVBTQ/Muck5PD1KlTCQwMJCgoiISEhMYtc4PucFlQaWmp8vf3VykpKaq4uFiFhoaqc+fOWTus\nRvHVV1+pU6dOqb59++r3/elPf1KrV69WSim1atUq9dxzzymllPruu+9UaGioKi4uVikpKcrf31+V\nlZVZJe6GuH79ukpKSlJKKZWbm6t69eqlzp071+zLnZ+fr5RSqqSkREVHR6v4+PhmX+a1a9eqRx99\nVI0fP14p1fw/2926dVM3btww2Nfcyzx79mz1/vvvK6V0n+2cnJxGLXOTSVTHjh0zGA34yiuvqFde\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7ff4f028dc10>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "From the plot we can see that when the torque is 400 N-m, \n",
+ "the field current is If=19.3 A, and Ke*flux=1.898 when If=19.3 A\n",
+ "Hence the required speed in is : 1005.0 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.6,Page No:71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#the motor rating is same as that of Ex-5.5\n",
+ "N=600 #value of the speed given from the magnetization curve in Ex-5.5\n",
+ "\n",
+ "Ra=0.04 #armature resistance\n",
+ "Rf=10 #field resistance\n",
+ "T=400 #load torque in N-m\n",
+ "N1=1200 #given speed in rpm to hold the overhauling torque\n",
+ "\n",
+ "#calculation\n",
+ "Wm=2*math.pi*N1/60 #angular speed at the given speed N1\n",
+ "\n",
+ "#magnetisation curve at N=600rpm\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E =[25,50,73.5,90,102.5,110,116,121,125,129] #value of the back emf as given in Ex-5.5 for the speed N\n",
+ "\n",
+ "#magnetisation curve at N=1200rpm\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E1=[N1/N*E for E in E] #back emf at the speed N1\n",
+ "print\"Hence the magnetization curve at 1200rpm is\"\n",
+ "print\"Field current If:\",If,\"A\"\n",
+ "print\"Back emf is E1:\",E1,\"V\"\n",
+ "\n",
+ "Pd=round(T*Wm,2) #power developed\n",
+ "x=round(Pd*Ra,1)\n",
+ "V=[(E1-Pd*Ra/E1) for E1 in E1] #terminal voltage\n",
+ "V=[round(V,2) for V in V]\n",
+ "print\"Terminal voltage V:\",V,\"V\"\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "#plotting the values of V vs If\n",
+ "plt.subplot(2,1,1)\n",
+ "plt.plot(V,If)\n",
+ "plt.xlabel('Terminal voltage $V$')\n",
+ "plt.ylabel('Field current $I_f$')\n",
+ "plt.title('$V vs If$')\n",
+ "plt.grid()\n",
+ "\n",
+ "#plotting the values of E vs If\n",
+ "If=[2.5,5,7.5,10,12.5,15,17.5,20,22.5,25] #field current\n",
+ "E =[25,50,73.5,90,102.5,110,116,121,125,129] #value of the back emf as given in Ex-5.5 for the speed N\n",
+ "E1=[N1/N*E for E in E] #back emf at the speed N1\n",
+ "\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(E1,If,'y')\n",
+ "plt.xlabel('$E$')\n",
+ "plt.ylabel('Field current $I_f$')\n",
+ "plt.title('$E vs If$')\n",
+ "plt.grid()\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "print\"\\nFrom the plot we can see that when the current If=25 A the terminal voltage is V=250 V with the back emf E=258V\"\n",
+ "\n",
+ "E=258 #value of the back emf in V at from the plot \n",
+ "V=250 #value of terminal voltage in V from the plot at E=258 V\n",
+ "If=25 #value of If in A from the plot at E=258 V\n",
+ "Ia=(E-V)/Ra #armature current\n",
+ "If=V/Rf #field current\n",
+ "Ir=Ia-If \n",
+ "Rb=V/Ir #braking resistance\n",
+ "\n",
+ "print\"Hence the rquired braking resistance is \",round(Rb,3),\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the magnetization curve at 1200rpm is\n",
+ "Field current If: [2.5, 5, 7.5, 10, 12.5, 15, 17.5, 20, 22.5, 25] A\n",
+ "Back emf is E1: [50.0, 100.0, 147.0, 180.0, 205.0, 220.0, 232.0, 242.0, 250.0, 258.0] V\n",
+ "Terminal voltage V: [9.79, 79.89, 133.32, 168.83, 195.19, 210.86, 223.33, 233.69, 241.96, 250.21] V\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQgghrNL/B/LwApWB5UraAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f7432763950>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "From the plot we can see that when the current If=25 A the terminal voltage is V=250 V with the back emf E=258V\n",
+ "Hence the rquired braking resistance is 1.429 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.7,Page No:72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy \n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the DC series motor which operated under dynamic braking\n",
+ "Ra=0.5 #total resistance of armature and field windings\n",
+ "Rf=10 #field resistance\n",
+ "T=500 #overhauling load torque in N-m\n",
+ "N=600 #speed at the overhauling torque T\n",
+ "\n",
+ "#magnetisation curve at a speed of 500 rpm\n",
+ "N1=500 #speed in rpm\n",
+ "Ia=[20, 30, 40, 50, 60, 70, 80] #armature current\n",
+ "E =[215,310,381,437,482,519,550] #back emf\n",
+ "\n",
+ "#calculation\n",
+ "Wm1=2*math.pi*N1/60\n",
+ "print\"\\nArmature current :\",Ia,\"A\"\n",
+ "Ke_flux=[E / Wm1 for E in E] #Ke*flux=constant\n",
+ "Ke_flux=[round(Ke_flux,3) for Ke_flux in Ke_flux] \n",
+ "print\"\\nKe_flux :\",Ke_flux\n",
+ "Ke_flux=numpy.array(Ke_flux)\n",
+ "Ia=numpy.array(Ia)\n",
+ "T=numpy.array(Ke_flux)*numpy.array(Ia) #torque\n",
+ "T=[round(T,1) for T in T]\n",
+ "print\"\\nTorque :\",T,\"N-m\"\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "#plotting the values of Ke*flux vs Ia and T vs Ia\n",
+ "plt.subplot(2,1,1)\n",
+ "plt.plot(Ia,Ke_flux,'y')\n",
+ "plt.xlabel('Armature current $I_a$')\n",
+ "plt.ylabel('$Ke*flux$')\n",
+ "plt.title('$Ke*flux vs Ia$')\n",
+ "plt.grid()\n",
+ "\n",
+ "plt.subplot(2,1,2)\n",
+ "plt.plot(T,Ia)\n",
+ "plt.xlabel('Torque $T$')\n",
+ "plt.ylabel('Armature current $I_a$')\n",
+ "plt.title('$T vs Ia$')\n",
+ "plt.grid(True)\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "\n",
+ "print\"\\nFrom the plot we can see that at the given torque T=500 N-m the current Ia is 56 A, and Ke*flux is 8.9 at Ia=56 A\"\n",
+ "Ke_flux=8.9 #value of Ke*flux at T=500 N-m from the plot\n",
+ "Ia=56 #value of Ia at at T=500 N-m from the plot\n",
+ "Wm=2*math.pi*N/60\n",
+ "E=Ke_flux*Wm #required emf\n",
+ "x=E/Ia #x=Ra+Rb\n",
+ "Rb=x-Ra #required braking resistance\n",
+ "print\"Hence the rquired braking resistance is \",round(Rb,3),\"ohm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Armature current : [20, 30, 40, 50, 60, 70, 80] A\n",
+ "\n",
+ "Ke_flux : [4.106, 5.921, 7.277, 8.346, 9.206, 9.912, 10.504]\n",
+ "\n",
+ "Torque : [82.1, 177.6, 291.1, 417.3, 552.4, 693.8, 840.3] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nsXixthAFBWmXjP/rX9Dwvo85OTkGi62pJEb9MPYYjT0+kBj1xRRibJWmTl7NmTNHpaSktHjyq15V\nVZWKjo5Wb7/9tu45Hx8fderUKaWUUidPnlQ+Pj5XfJ+Xl5cC5CEPechDHib28PLyanHNaPJ1Uj4+\nPhw9epR+/fphb28PNH9OSinF3Llz6d69O2+//bbu+QULFtC9e3cWLlxIXFwcJSUlJjEnJYQQom01\nuUjVdynrL8rKzc0lLi6OjRs3Nrmxn3/+mTFjxjB48GDdkN7ixYsJCwsjNjaW3Nxc3S7oTk5Ozc9G\nCCFEh9KsXdD37t3L6tWr+frrr/H09GTatGk89thjbRmfEEIIM3bd66SOHDnCSy+9xKBBg3jiiSfo\n27cvdXV1JCUltVuB+uGHH/D19WXgwIEsWbKkXdq8mnnz5uHu7k5gYKDuuaKiIiZOnIi3tzfR0dGN\nloMuXryYgQMH4uvry+bNm9s8vry8PMaNG4e/vz8BAQG8++67RhejRqMhPDyc4OBg/Pz8eOaZZ4wu\nxnq1tbWEhIQwdepUo4zR09OTwYMHExISQlhYmFHGWFJSwvTp0xk0aBB+fn6kpKQYTYxHjhwhJCRE\n9+jWrRvvvvuu0cTXsE1/f38CAwO56667qKysNLoYly5dSmBgIAEBASxduhTQ49/F605aWVioqVOn\nquPHj+ue8/T0bPEkWHPV1NQoLy8vlZ2draqqqlRQUJA6ePBgu7Xf0Pbt29XevXtVQECA7rmnn35a\nLVmyRCmlVFxcnO6uwgcOHFBBQUGqqqpKZWdnKy8vL1VbW9um8Z06dUqlp6crpZQqLS1V3t7e6uDB\ng0YVo1JKlZWVKaWUqq6uVuHh4So5OdnoYlRKqTfffFPdddddaurUqUop4/pZK6X9d3j27NlGzxlb\njHPmzFGffPKJUkr78y4pKTG6GJVSqra2Vnl4eKjc3Fyjii87O1v1799faTQapZRSsbGx6j//+Y9R\nxbhv3z4VEBCgKioqVE1NjZowYYI6evSo3mK8bpFas2aNio2NVf369VMPPfSQSkhIUP369dNPdk2w\nY8cONWnSJN3x4sWL1eLFi9ut/ctlZ2c3KlI+Pj4qPz9fKaUtEvUrE19//XUVFxf3/9u715Cmvz8O\n4O95AUPDSrzltERyNl3bahpE60GaEdnyUpSGWYnR5UEXoZ4FUgp2f1IPEqLISDNSbGip2WWl5rxM\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f989876da50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "From the plot we can see that at the given torque T=500 N-m the current Ia is 56 A, and Ke*flux is 8.9 at Ia=56 A\n",
+ "Hence the rquired braking resistance is 9.486 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 170
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.8,Page No:74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=970 # rated speed\n",
+ "Ia=100 # rated current\n",
+ "Ra=0.05 # armature resistance\n",
+ "N1=1000 # initial speed of the motor in rpm\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra\n",
+ "E1=N1/N*E #value of back emf at the speed N1\n",
+ "#(a)the resistance to be placed\n",
+ "Ia1=2*Ia #value of the braking current is twice the rated current\n",
+ "Rb=(E1+V)/Ia1-Ra #required resistance\n",
+ "\n",
+ "#(b)The braking torque\n",
+ "Wm=(2*math.pi*N1)/60\n",
+ "T=E1*Ia1/Wm\n",
+ "\n",
+ "#(c)when the speed has fallen to zero the back emf is zero\n",
+ "E2=0\n",
+ "Ia2=V/(Ra+Rb)\n",
+ "T2=Ia2/Ia1*T #since the torque is directly proportional to the current\n",
+ "\n",
+ "\n",
+ "#results \n",
+ "print\"(a)Hence required resistance is :\",round(Rb,2),\"ohm\"\n",
+ "#answer for the resistance in the book is wrong due to accuracy\n",
+ "print\"\\n(b)Hence the required braking torque is :\",round(T,1),\"N-m\"\n",
+ "print\"\\n(c)Hence the required torque is :\",round(T2,1),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Hence required resistance is : 2.16 ohm\n",
+ "\n",
+ "(b)Hence the required braking torque is : 423.3 N-m\n",
+ "\n",
+ "(c)Hence the required torque is : 210.9 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 171
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.9,Page No:84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor which operates under rheostatic braking\n",
+ "V=220 # rated voltage\n",
+ "N=1000 # rated speed\n",
+ "Ia=175 # rated current\n",
+ "Ra=0.08 # armature resistance\n",
+ "N1=1050 # initial speed of the motor in rpm\n",
+ "J=8 # moment of inertia of the motor load system kg-m2\n",
+ "La=0.12 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra\n",
+ "Wm=N*2*math.pi/60 #rated speed in rad/s\n",
+ "\n",
+ "#(a)when the braking current is twice the rated current\n",
+ "Ia1=2*Ia\n",
+ "E1=N1/N*E\n",
+ "x=E1/Ia1 #x=Rb+Ra\n",
+ "Rb=x-Ra #required braking resistance\n",
+ "\n",
+ "#(b)to obtain the expression for the transient value of speed and current including the effect of armature inductance\n",
+ "Ra=x #total armature current\n",
+ "K1=N1*2*math.pi/60 #initial speed in rad/s\n",
+ "K=E/Wm\n",
+ "B=0\n",
+ "ta=La/Ra #time constant in sec\n",
+ "Trated=E*Ia/Wm #rated torque\n",
+ "Tl=0.15*Trated #load torque is 15% of the rated torque\n",
+ "tm1= float('inf') #tm1=J/B and B=0 which is equal to infinity\n",
+ "tm2=J*Ra/(B*Ra+K**2)\n",
+ "\n",
+ "a = ta\n",
+ "b = -(1+ta/tm1)\n",
+ "c = 1/tm2\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "alpha1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "alpha2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "K3=tm2*Tl/J\n",
+ "K4=tm2*K*Tl/J/Ra\n",
+ "\n",
+ "#transient value for speed\n",
+ "x1=((J*alpha2-B)*K1-(Tl-J*alpha2*K3))/(J*(alpha2-alpha1))\n",
+ "y1=((J*alpha1-B)*K1-(Tl-J*alpha1*K3))/(J*(alpha1-alpha2))\n",
+ "\n",
+ "#transient value for the current\n",
+ "x2=(K*K1+alpha2*La*K4)/(La*(alpha2-alpha1))\n",
+ "y2=(K*K1+alpha1*La*K4)/(La*(alpha1-alpha2))\n",
+ "\n",
+ "\n",
+ "#(c) to calculate the time taken by braking operation and the maximum value of the armature current\n",
+ "#now Wm=0 for the braking operation and hence 151.5 exp(-0.963*t1)- 8.247 = 0 from the previous answer in (b)\n",
+ "a=K3/x1 #a=exp(-0.963*t1)\n",
+ "t1=-alpha1*math.log(a.real) #take log base e on both sides\n",
+ "#now d/dt(ia)=0 for themaximum current and hence d/dt(26.25-593.1exp(-0.963*t)+566.8exp(-4.19*t) = 0 from the previous answer in (b)\n",
+ "b=abs(alpha2*y2)/abs(alpha1*x2) #b=exp(-0.963*t)/exp(-4.19*t)\n",
+ "t2=math.log(b)/(-alpha1+alpha2) #take log base e on both sides\n",
+ "t2=abs(t2)\n",
+ "ia=K4-x2.real*math.exp(-alpha1.real*t2)-y2.real*math.exp(-alpha2.real*t2)\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(a)Hence the braking resistance is :\",round(Rb,3),\"ohm\"\n",
+ "print\"\\nb)The value of alpha1 :\",round(alpha1.real,3),\"and alpha2 :\",round(alpha2.real,3)\n",
+ "print\"\\nHence the expression for the transient value for the speed is\"\n",
+ "print\"Wm=\",round(x1.real,1),\"exp(\",-round(alpha1.real,3),\"*t)\",round(y1.real,1),\"exp(\",-round(alpha2.real,2),\"*t)\",\"-\",round(K3,3)\n",
+ "print\"\\nHence the expression for the transient value for the current is\"\n",
+ "print\"ia=\",round(K4,2),\"-\",round(x2.real,1),\"exp(\",-round(alpha1.real,3),\"*t) +\",-round(y2.real,1),\"exp(\",-round(alpha2.real,2),\"*t)\"\n",
+ "print\"\\n(c)Hence the time taken is :\",round(t2,2),\"sec\"\n",
+ "print\" Hence the maximum current is: \",round(ia,2),\"A\"\n",
+ "print\"\\n Note : There is a slight difference in the answers due to more number of the decimal place \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Hence the braking resistance is : 0.538 ohm\n",
+ "\n",
+ "b)The value of alpha1 : 0.963 and alpha2 : 4.187\n",
+ "\n",
+ "Hence the expression for the transient value for the speed is\n",
+ "Wm= 151.5 exp( -0.963 *t) -33.3 exp( -4.19 *t) - 8.247\n",
+ "\n",
+ "Hence the expression for the transient value for the current is\n",
+ "ia= 26.25 - 593.1 exp( -0.963 *t) + 566.8 exp( -4.19 *t)\n",
+ "\n",
+ "(c)Hence the time taken is : 0.44 sec\n",
+ " Hence the maximum current is: -272.23 A\n",
+ "\n",
+ " Note : There is a slight difference in the answers due to more number of the decimal place \n"
+ ]
+ }
+ ],
+ "prompt_number": 151
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.10,Page No:86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor of Ex-5.9 which operates plugging\n",
+ "V=220 # rated voltage\n",
+ "N=1000 # rated speed\n",
+ "Ia=175 # rated current\n",
+ "Ra=0.08 # armature resistance\n",
+ "N1=1050 # initial speed of the motor in rpm\n",
+ "J=8 # moment of inertia of the motor load system kg-m2\n",
+ "La=0.12 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra\n",
+ "Wm=N*2*math.pi/60 #rated speed in rad/s\n",
+ "#(a)when the braking current is twice the rated current\n",
+ "Ia1=2*Ia\n",
+ "E1=N1/N*E\n",
+ "x=(V+E1)/Ia1 #x=Rb+Ra\n",
+ "Rb=x-Ra #required braking resistance\n",
+ "\n",
+ "#(b)to obtain the expression for the transient value of speed and current including the effect of armature inductance\n",
+ "#the values given below are taken from Ex-5.9\n",
+ "ta=0.194 #time constant in sec\n",
+ "B=0\n",
+ "tm1= float('inf') #tm1=J/B and B=0 which is equal to infinity\n",
+ "tm2=1.274\n",
+ "K=1.967\n",
+ "Trated=E*Ia/Wm #rated torque\n",
+ "Tl=0.5*Trated #load torque is 50% of the rated torque\n",
+ "Ra=Rb\n",
+ "K1=N1*2*math.pi/60 #initial speed in rad/s\n",
+ "#values of the coefficient of the quadratic equation for Wm\n",
+ "x1=(1+ta/tm1)/ta\n",
+ "x2=1/tm2/ta\n",
+ "x3=-(K*V+Ra*Tl)/J/Ra/ta \n",
+ "#values of the coefficient of the quadratic equation ia\n",
+ "y1=(1+ta/tm1)/ta\n",
+ "y2=1/tm2/ta\n",
+ "y3=-B*V/J/Ra/ta+K*Tl/J/Ra/ta \n",
+ "\n",
+ "#solving the quadratic equation\n",
+ "a = 1 \n",
+ "b = x1\n",
+ "c = x2\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "alpha1 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "alpha2 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "K3=x3/x2\n",
+ "K4=y3/y2\n",
+ "\n",
+ "Wm_0=K1 ;ia_0=0\n",
+ "d_Wm_dt_0=(K*ia_0-B*Wm-Tl)/J ;d_ia_dt_0=(-V-Ra*ia_0-K*K1)/La #Wm=K1 at t=0 and during braking rated voltage V is equal to -V\n",
+ "\n",
+ "A = np.array([[1,1],[alpha1.real,alpha2.real]])\n",
+ "B = np.array([Wm_0,d_Wm_dt_0])\n",
+ "x = np.linalg.solve(A,B)\n",
+ "C = np.array([[1,1],[alpha1.real,alpha2.real]])\n",
+ "D = np.array([-K4,d_ia_dt_0])\n",
+ "y = np.linalg.solve(C,D)\n",
+ "\n",
+ "#(c)to calculate the time taken for the speed to fall to zero value\n",
+ "a=-K3/x[0] #a=exp(-0.966*t1)\n",
+ "t1=alpha1*math.log(a) #take log base e on both sides\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(a)Hence the braking resistance is :\",round(Rb,3),\"ohm\"\n",
+ "print\"\\n(b)The solution for alpha are \",round(alpha1.real,3),\"and\",round(alpha2.real,3)\n",
+ "print\" Wm=\",round(K3,2),\"+ A*exp(\",round(alpha1.real,3),\"*t) +\",\"+ B*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\" ia=\",round(K4,2),\"+ C*exp(\",round(alpha1.real,3),\"*t) +\",\"+ D*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\" We have to find the value of A,B,C and D in the linear equation using the initial condition\"\n",
+ "print\" A=\",round(x[0],2),\"B=\",round(x[1],2), \"C=\",round(y[0],2),\"D=\",round(y[1],2)\n",
+ "print\"\\nHence the expression for the transient value for the speed is\"\n",
+ "print\" Wm=\",round(K3,2),\"+\",round(x[0],2),\"*exp(\",round(alpha1.real,3),\"*t)\",round(x[1],2),\"*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\"\\nHence the expression for the transient value for the current is\"\n",
+ "print\" ia=\",round(K4,2),round(y[0],2),\"*exp(\",round(alpha1.real,3),\"*t) +\",round(y[1],2),\"*exp(\",round(alpha2.real,2),\"*t)\"\n",
+ "print\"\\n(c)Hence the time taken is :\",round(t1.real,2),\"sec\"\n",
+ "print\"\\n Note :There is slight difference in the answers due to accuracy i.e more number of decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)Hence the braking resistance is : 1.167 ohm\n",
+ "\n",
+ "(b)The solution for alpha are -0.966 and -4.189\n",
+ " Wm= -86.48 + A*exp( -0.966 *t) + + B*exp( -4.19 *t)\n",
+ " ia= 46.22 + C*exp( -0.966 *t) + + D*exp( -4.19 *t)\n",
+ " We have to find the value of A,B,C and D in the linear equation using the initial condition\n",
+ " A= 136.24 B= -26.28 C= -1188.2 D= 1141.98\n",
+ "\n",
+ "Hence the expression for the transient value for the speed is\n",
+ " Wm= -86.48 + 136.24 *exp( -0.966 *t) -26.28 *exp( -4.19 *t)\n",
+ "\n",
+ "Hence the expression for the transient value for the current is\n",
+ " ia= 46.22 -1188.2 *exp( -0.966 *t) + 1141.98 *exp( -4.19 *t)\n",
+ "\n",
+ "(c)Hence the time taken is : 0.44 sec\n",
+ "\n",
+ " Note :There is slight difference in the answers due to accuracy i.e more number of decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.11,Page No:89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=600 # rated speed\n",
+ "Ia=500 # rated current\n",
+ "Ra=0.02 # armature resistance\n",
+ "Rf=10 # field resistance\n",
+ "\n",
+ "#calculation \n",
+ "E1=V-Ia*Ra #rated back emf at rated operation\n",
+ "Wm1=2*math.pi*N/60 #angular speed\n",
+ "Trated=E1*Ia1/Wm1 #rated torque\n",
+ "#(i) when the speed of the motor is 450rpm\n",
+ "N1=450 #given speed in rpm\n",
+ "Tl=2000-2*N1 #load torque is a function of the speed as given\n",
+ "Ia2=Tl/Trated*Ia1 #for a torque of Tl as a function of current\n",
+ "E2=N1/N*E1 #for a given speed of 450rpm\n",
+ "V2=E2+Ia2*Ra #terminal voltage for a given speed of 450 rpm\n",
+ "\n",
+ "#(ii) when the speed of the motor is 750rpm\n",
+ "N1=750 #given speed in rpm\n",
+ "Tl=2000-2*N1 #load torque is a function of the speed as given\n",
+ "Wm_=2*math.pi*N1/60\n",
+ "Ke_phi1=E1/Wm1\n",
+ "\n",
+ "#Since we know that V=Ke*phi*Wm+Ia*Ra by solving we get that 0.02*(Ia_)**2 -220*Ia_ + 39270 = 0\"\n",
+ "a = 0.02\n",
+ "b = -220\n",
+ "c = 39270\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "Ia_1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "Ia_2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "Ke_phi=Tl/abs(Ia_1)\n",
+ "V1=V*Ke_phi/Ke_phi1 #required field voltage\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence motor terminal voltage is :\",round(V2),\"V\"\n",
+ "print\" And the armature current is :\",round(Ia2),\"A\"\n",
+ "print\"\\n(ii)The solution for Ia_ are \",round(abs(Ia_1),1),\"A and\",round(abs(Ia_2)),\"A\"\n",
+ "print\" We ignore \",round(abs(Ia_2)),\"A since it is unfeasible,\\n Hence armature current is :\",round(abs(Ia_1),1),\"A\"\n",
+ "print\" Hence the required field voltage is :\",round(V1,1),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence motor terminal voltage is : 164.0 V\n",
+ " And the armature current is : 329.0 A\n",
+ "\n",
+ "(ii)The solution for Ia_ are 181.5 A and 10819.0 A\n",
+ " We ignore 10819.0 A since it is unfeasible,\n",
+ " Hence armature current is : 181.5 A\n",
+ " Hence the required field voltage is : 181.3 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.12,Page No:91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import cmath\n",
+ "from __future__ import division\n",
+ "import numpy\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the 2-pole separately excited DC motor with the fields coils connected in parallel\n",
+ "V=220 # rated voltage\n",
+ "N=750 # rated speed\n",
+ "Ia1=100 # rated current\n",
+ "Ra=0.1 # armature resistance\n",
+ "\n",
+ "#calculation\n",
+ "E1=V-Ia1*Ra #rated back emf at rated operation\n",
+ "Wm1=2*math.pi*N/60 #angular speed\n",
+ "Trated=E1*Ia1/Wm1 #rated torque\n",
+ "Ke_phi1=E1/Wm1\n",
+ "#(i) when the armature voltage is reduced to 110V\n",
+ "Wm2=2*math.pi*N2/60 #angular speed\n",
+ "E2=Ke_phi1*Wm2\n",
+ "#Now there are two linear equations...that we have to solve\n",
+ "#They are given by 0.3*N2+2.674*Ia2=500 and 0.28*N2+0.1*Ia2=110\n",
+ "a = np.array([[0.3,2.674], [0.28,0.1]])\n",
+ "b = np.array([500,110])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "N2=round(x[0],1) #let the motor speed be N2\n",
+ "Ia2=round(x[1],1) #let the motor current be Ia2\n",
+ "\n",
+ "#(ii)when the field coils are connected in series\n",
+ "K=Ke_phi1/2\n",
+ "Wm3=2*math.pi*N3/60 #angular speed\n",
+ "E3=K*Wm3\n",
+ "#Now there are two linear equations...that we have to solve\"\n",
+ "#They are given by 0.3*N3+1.337*Ia3=500 and 0.14*N3+0.1*Ia3=220\"\n",
+ "a = np.array([[0.3,1.337], [0.14,0.1]])\n",
+ "b = np.array([500,220])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "N3=round(x[0],1) #let the motor speed be N3\n",
+ "Ia3=round(x[1],2) #let the motor current be Ia3\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the motor armature current is Ia2 :\",Ia2,\"A\"\n",
+ "print\" And the required speed is N2 :\",N2,\"rpm\"\n",
+ "print\"\\n(ii)Hence the motor armature current is Ia3 :\",Ia3,\"A\"\n",
+ "print\" And the required speed is N3 :\",N3,\"rpm\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the motor armature current is Ia2 : 148.9 A\n",
+ " And the required speed is N2 : 339.7 rpm\n",
+ "\n",
+ "(ii)Hence the motor armature current is Ia3 : 25.45 A\n",
+ " And the required speed is N3 : 1553.3 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 173
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.13,Page No:102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=200 # rated voltage\n",
+ "N=875 # rated speed\n",
+ "Ia=150 # rated current\n",
+ "Ra=0.06 # armature resistance\n",
+ "Vs=220 # source voltage\n",
+ "f=50 # frequency of the source voltage\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "\n",
+ "#(i)when the speed is 750 rpm and at rated torque\n",
+ "N1=750 #given speed in rpm\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage\n",
+ "cos_alpha=Va*math.pi/2/Vm\n",
+ "alpha=math.acos(cos_alpha) #required firing angle in radian\n",
+ "alpha1=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "#(ii)when the speed is -500rpm and at rated torque\n",
+ "N1=-500 #given speed in rpm\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage\n",
+ "cos_alpha=Va*math.pi/2/Vm\n",
+ "alpha=math.acos(cos_alpha) #required firing angle in radian\n",
+ "alpha2=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "#(iii)when the firing angle is 160 degrees\n",
+ "alpha=160 #firing angle in degrees\n",
+ "Va=2*Vm/math.pi*math.cos(math.radians(alpha))\n",
+ "E1=Va-Ia*Ra #since Va=E1+Ia*Ra\n",
+ "N1=E1/E*N #the required speed at the given firing angle\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required firing angle is :\",round(alpha1,1),\"\u00b0\"\n",
+ "print\"\\n(ii)Hence the required firing angle is :\",round(alpha2),\"\u00b0\"\n",
+ "print\"\\n(iii)Hence the required speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required firing angle is : 29.3 \u00b0\n",
+ "\n",
+ "(ii)Hence the required firing angle is : 120.0 \u00b0\n",
+ "\n",
+ "(iii)Hence the required speed is : -893.9 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.14,Page No:103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor is same as that of Ex-5.13\n",
+ "V=200 # rated voltage\n",
+ "N=875 # rated speed\n",
+ "Ia=150 # rated current\n",
+ "Ra=0.06 # armature resistance\n",
+ "Vs=220 # source voltage\n",
+ "f=50 #frequency of the source voltage\n",
+ "La=0.85e-3 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "Wm=2*math.pi*N/60 #synchronous angular speed\n",
+ "\n",
+ "#(i)when the speed is 400 rpm and firing angle is 60 degrees\n",
+ "N1=400 #given speed in rpm\n",
+ "alpha=60 #firing angle in degrees\n",
+ "W=2*math.pi*f \n",
+ "x=W*La/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*La)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "a=(1+math.exp(-(math.pi*cot_phi)))/(math.exp(-(math.pi*cot_phi))-1)\n",
+ "Wmc=y*math.sin(math.radians(alpha)-phi)*a #required angular speed in rps\n",
+ "Nmc=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "\n",
+ "E1=N1/N*E \n",
+ "\n",
+ "#The equation Vm/Z*sin(beta-phi)-E/Ra+(E/Ra-Vm/Z*sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=0\n",
+ "#can be solved using trial method such that beta=230 degrees\n",
+ "beta=230 #in degrees\n",
+ "beta=math.radians(beta) #in radians\n",
+ "alpha=math.radians(alpha) #in radians\n",
+ "\n",
+ "Va=(Vm*(math.cos(alpha)-math.cos(beta))+(math.pi+alpha-beta)*E1)/math.pi\n",
+ "Ia=(Va-E1)/Ra\n",
+ "T1=K*Ia\n",
+ "\n",
+ "#(ii)when the speed is -400 rpm and firing angle is 120 degrees\n",
+ "Le=2e-3 #external inductance added to the armature\n",
+ "L=La+Le\n",
+ "N2=-400 #given speed in rpm\n",
+ "alpha=120 #firing angle in degrees\n",
+ "x=W*L/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*L)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "a=(1+math.exp(-(math.pi*cot_phi)))/(math.exp(-(math.pi*cot_phi))-1)\n",
+ "Wmc=y*math.sin(math.radians(alpha)-phi)*a #required angular speed in rps\n",
+ "Nmc1=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "#The motor is operating under discontinous condition\"\n",
+ "E2=N2/N*E \n",
+ "\n",
+ "#The equation Vm/Z*sin(beta-phi)-E/Ra+(E/Ra-Vm/Z*sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=0\n",
+ "#can be solved using trial method such that beta=281 degrees\n",
+ "beta=281 #in degrees\n",
+ "beta=math.radians(beta) #in radians\n",
+ "alpha=math.radians(alpha) #in radians\n",
+ "\n",
+ "Va=(Vm*(math.cos(alpha)-math.cos(beta))+(math.pi+alpha-beta)*E2)/math.pi\n",
+ "Ia=(Va-E2)/Ra\n",
+ "T2=K*Ia\n",
+ "\n",
+ "#(iii)when the speed is -600 rpm and firing angle is 120 degrees\n",
+ "N3=-600 #speed in rpm\n",
+ "alpha=120 #firing angle in degrees\n",
+ "Va=2*Vm/math.pi*math.cos(math.radians(alpha))\n",
+ "E3=N3/N*E #since Va=E1+Ia*Ra\n",
+ "Ia=(Va-E3)/Ra\n",
+ "T3=K*Ia\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required torque is :\",round(T1),\"N-m \"\n",
+ "print\"\\n(ii)Hence the required torque is :\",round(T2,1),\"N-m\"\n",
+ "print\"\\n(iii)Hence the required torque is :\",round(T3),\"N-m\" \n",
+ "print\"\\nNote : There is a slight difference in the answers because of accuracy i.e more number of decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required torque is : 1067.0 N-m \n",
+ "\n",
+ "(ii)Hence the required torque is : 336.4 N-m\n",
+ "\n",
+ "(iii)Hence the required torque is : 1110.0 N-m\n",
+ "\n",
+ "Note : There is a slight difference in the answers because of accuracy i.e more number of decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 179
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.15,Page No:105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor is same as that of Ex-5.13\n",
+ "V=200 # rated voltage\n",
+ "N=875 # rated speed\n",
+ "Ia=150 # rated current\n",
+ "Ra=0.06 # armature resistance\n",
+ "Vs=220 # source voltage\n",
+ "f=50 #frequency of the source voltage\n",
+ "La=2.85e-3 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "Wm=2*math.pi*N/60 #angular speed\n",
+ "W=2*math.pi*f\n",
+ "\n",
+ "alpha=120 #firing angle in degrees\n",
+ "x=W*La/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*La)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "a=(1+math.exp(-(math.pi*cot_phi)))/(math.exp(-(math.pi*cot_phi))-1)\n",
+ "Wmc=round(y,3)*math.sin(math.radians(alpha)-phi)*a #required angular speed in rps\n",
+ "Nmc=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "\n",
+ "Va=2*Vm/math.pi*math.cos(math.radians(alpha))\n",
+ "E1=Nmc/N*E #value of back emf at the critical speed of Nmc \n",
+ "Ia=(Va-E1)/Ra\n",
+ "Tc=K*Ia\n",
+ "\n",
+ "#(i)when the torque is 1200 N-m and firing angle is 120 degrees\n",
+ "T2=1200 #given torque in N-m\n",
+ "Ia2=T2/K #given terminal current for the given torque and the answer in the book is wrong\n",
+ "E2=Va-Ia*Ra \n",
+ "N2=E2/E*N\n",
+ "\n",
+ "#(ii)when the torque is 300 N-m and firing angle is 120 degrees\n",
+ "T=300 #required torque in N-m\n",
+ "beta=233.492 #required angle in degrees\n",
+ "beta=math.radians(beta) #in radians\n",
+ "alpha=math.radians(alpha) #in radians\n",
+ "x=beta-alpha\n",
+ "E1=(Vm*(math.cos(alpha)-math.cos(beta)))/x-(math.pi*Ra*T)/(K*x)\n",
+ "N1=E1/E*N #required speed \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"The motor is operating under continuous condition\"\n",
+ "print\"The torque Tc is :\",round(Tc),\"N-m\"\n",
+ "print\"The answer for torque Tc in the book is wrong due to accuracy in the decimal place which leads to subsequent \"\n",
+ "print\"incorrect answers\"\n",
+ "print\"\\n(i)Hence the required speed is :\",round(N2),\"rpm\"\n",
+ "print\"\\n(ii)The equation Vm/Z*sin(beta-phi)-sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=\"\n",
+ "print\" (Vm*(cos(alpha)-cos(beta))/Ra/(beta-alpha)-pi*T/K/(beta-alpha) )*(1-exp(-(beta-alpha)*cot_phi)\"\n",
+ "print\" can be solved using trial method such that beta=233.492 degrees\"\n",
+ "print\"\\n Hence the required speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The motor is operating under continuous condition\n",
+ "The torque Tc is : 396.0 N-m\n",
+ "The answer for torque Tc in the book is wrong due to accuracy in the decimal place which leads to subsequent \n",
+ "incorrect answers\n",
+ "\n",
+ "(i)Hence the required speed is : -506.0 rpm\n",
+ "\n",
+ "(ii)The equation Vm/Z*sin(beta-phi)-sin(alpha-phi))*exp(-(beta-alpha)*cot_phi)=\n",
+ " (Vm*(cos(alpha)-cos(beta))/Ra/(beta-alpha)-pi*T/K/(beta-alpha) )*(1-exp(-(beta-alpha)*cot_phi)\n",
+ " can be solved using trial method such that beta=233.492 degrees\n",
+ "\n",
+ " Hence the required speed is : 5.6 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 181
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.16,Page No:110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=960 # rated speed\n",
+ "Ia=12.8 # rated current\n",
+ "Ra=2 # armature resistance\n",
+ "Vs=230 # source voltage\n",
+ "f=50 #frequency of the source voltage\n",
+ "La=150e-3 # armature curcuit inductance in H\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "Vm=math.sqrt(2)*Vs #peak voltage\n",
+ "Wm=2*math.pi*N/60 #angular speed\n",
+ "W=2*math.pi*f\n",
+ "\n",
+ "#(i)when speed is 600rpm and the firing angle is 60 degrees\n",
+ "alpha=60 #firing angle in degrees\n",
+ "N1=600 #motor speed in rpm\n",
+ "x=W*La/Ra\n",
+ "phi=math.atan(x)\n",
+ "cot_phi=1/math.tan(phi)\n",
+ "Z=math.sqrt(Ra**2+(W*La)**2)\n",
+ "K=E/Wm\n",
+ "\n",
+ "y=Ra*Vm/Z/K\n",
+ "b=math.sin(phi)*math.exp(-(math.radians(alpha)*cot_phi))\n",
+ "c=math.sin(math.radians(alpha)-phi)*math.exp(-(math.pi*cot_phi))\n",
+ "a=1-math.exp(-(math.pi*cot_phi))\n",
+ "Wmc=round(y,3)*(b-c)/a #required angular speed in rps\n",
+ "Nmc=Wmc*60/2/math.pi #required angular speed in rpm\n",
+ "\n",
+ "Va=Vm/math.pi*(1+math.cos(math.radians(alpha)))\n",
+ "E1=N1/N*E #value of back emf at the speed of N1\n",
+ "Ia=(Va-E1)/Ra\n",
+ "T=K*Ia\n",
+ "\n",
+ "#(ii)when the torque is 20 N-m and firing angle is 60 degrees\n",
+ "T1=20 #required torque in N-m\n",
+ "alpha=60 #required firing angle in degrees\n",
+ "Ec=Nmc/N*E #motor back emf at critical speed of Nmc\n",
+ "Tc=K*(Va-Ec)/Ra #torque at the critical speed\n",
+ "\n",
+ "Ia=T1/K\n",
+ "E1=Va-Ia*Ra\n",
+ "N1=E1/E*N #required speed \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "if N1<Nmc :\n",
+ " print\"(i)The motor is operating under continuous condition\"\n",
+ "print\" Hence the required torque is :\",round(T,2),\"N-m\"\n",
+ "if Tc<T1 :\n",
+ " print\"\\n(ii)The motor is operating under continuous condition\"\n",
+ "print\" Hence the required speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)The motor is operating under continuous condition\n",
+ " Hence the required torque is : 32.68 N-m\n",
+ "\n",
+ "(ii)The motor is operating under continuous condition\n",
+ " Hence the required speed is : 664.8 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 182
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.17,Page No:113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=220 # rated voltage\n",
+ "N=1500 # rated speed\n",
+ "Ia=50 # rated current\n",
+ "Ra=0.5 # armature resistance\n",
+ "Vl=440 # line voltage with 3-phase ac supply\n",
+ "f=50 #frequency of the source voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i) tranformer ratio\n",
+ "alpha=0 #firing angle\n",
+ "Va=V #motor terminal voltage is equal to the rated voltage when the firing angle is 0 degrees\n",
+ "Vm=math.pi/3*Va/math.cos(alpha)\n",
+ "Vrms=Vm/math.sqrt(2) #rms value of the converter input voltage\n",
+ "a=(Vl/math.sqrt(3))/Vrms #required transformer ratio\n",
+ "\n",
+ "#(ii)value of the firing angle\n",
+ "E=V-Ia*Ra #back emf at the rated speed\n",
+ "\n",
+ "#(a)when the speed of the motor is 1200 rpm and rated torque\n",
+ "N1=1200 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha=math.acos(math.pi/3*Va/Vm) #required firing angle in radians\n",
+ "alpha1=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "#(b)when the speed of the motor is -800 rpm and twice the rated torque\n",
+ "N1=-800 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Ia=2*Ia #torque is directly proportional to the current hence twice the rated current\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha=math.acos(math.pi/3*Va/Vm) #required firing angle in radians\n",
+ "alpha2=math.degrees(alpha) #required firing angle in degrees\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required transformer ratio is :\",round(a,3)\n",
+ "print\"\\n(ii)(a)Hence the required firing angle is :\",round(alpha1,2),\"\u00b0\"\n",
+ "print\"\\n (b)Hence the required firing angle is :\",round(alpha2,2),\"\u00b0\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required transformer ratio is : 1.559\n",
+ "\n",
+ "(ii)(a)Hence the required firing angle is : 34.64 \u00b0\n",
+ "\n",
+ " (b)Hence the required firing angle is : 104.21 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 183
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.18,Page No:117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor is same as that of Ex-5.17 but is fed from a circulating dual converter\n",
+ "V=220 # rated voltage\n",
+ "N=1500 # rated speed\n",
+ "Ia=50 # rated current\n",
+ "Ra=0.5 # armature resistance\n",
+ "Vl=165 # line voltage \n",
+ "f=50 # frequency of the source voltage\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf at the rated speed\n",
+ "Vm=Vl*math.sqrt(2) #peak voltage\n",
+ "\n",
+ "#(i)during motoring operation when the speed is 1000 rpm and at rated torque\n",
+ "N1=1000 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B=180-math.degrees(alpha_A) #required converter firing angle in degrees\n",
+ "\n",
+ "#(ii)during braking operation when the speed is 1000 rpm and at rated torque\n",
+ "N1=1000 #speed of the motor in the book it is given as 100 rpm which is wrong\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1-Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A1=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B1=180-math.degrees(alpha_A1) #required converter firing angle in degrees\n",
+ "\n",
+ "#(iii)during motoring operation when the speed is -1000 rpm and at rated torque\n",
+ "N1=-1000 #speed of the motor\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1-Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A2=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B2=180-math.degrees(alpha_A2) #required converter firing angle in degrees\n",
+ "\n",
+ "#(iv)during braking operation when the speed is -1000 rpm and at rated torque\n",
+ "N1=-1000 #speed of the motor in the book it is given as 100 rpm which is wrong\n",
+ "E1=N1/N*E #back emf at the given speed N1\n",
+ "Va=E1+Ia*Ra #terminal voltage at the given speed N1\n",
+ "alpha_A3=math.acos(math.pi/3*Va/Vm) \n",
+ "alpha_B3=180-math.degrees(alpha_A3) #required converter firing angle in degrees\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"\\n(i)Hence the required firing angle is :\",round(alpha_B,1),\"\u00b0\"\n",
+ "print\"\\n(ii)Hence the required firing angle is :\",round(alpha_B1,1),\"\u00b0\"\n",
+ "print\"\\n(iii)Hence for negative speed during motoring operation the required firing angle are :\"\n",
+ "print\" alpha_A :\",round(math.degrees(alpha_A2),1),\"\u00b0 and alpha_B :\",round(alpha_B2,1),\"\u00b0\"\n",
+ "print\"\\n(iv)Hence for negative speed during braking operation the required firing angle are :\"\n",
+ "print\" alpha_A :\",round(math.degrees(alpha_A3),1),\"\u00b0 and alpha_B :\",round(alpha_B3,1),\"\u00b0\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)Hence the required firing angle is : 134.1 \u00b0\n",
+ "\n",
+ "(ii)Hence the required firing angle is : 118.1 \u00b0\n",
+ "\n",
+ "(iii)Hence for negative speed during motoring operation the required firing angle are :\n",
+ " alpha_A : 134.1 \u00b0 and alpha_B : 45.9 \u00b0\n",
+ "\n",
+ "(iv)Hence for negative speed during braking operation the required firing angle are :\n",
+ " alpha_A : 118.1 \u00b0 and alpha_B : 61.9 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 184
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.19,Page No:126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor\n",
+ "V=230 # rated voltage\n",
+ "N=960 # rated speed\n",
+ "Ia=200 # rated current\n",
+ "Ra=0.02 # armature resistance\n",
+ "Vs=230 # source voltage\n",
+ "\n",
+ "#calculation\n",
+ "E=V-Ia*Ra #back emf\n",
+ "\n",
+ "#(i) When the speed of motor is 350 rpm with the rated torque during motoring operation\n",
+ "N1=350 #given speed in rpm\n",
+ "E1=N1/N*E #given back emf at N1\n",
+ "Va=E1+Ia*Ra #motor terminal voltage\n",
+ "delta=Va/V #duty ratio\n",
+ "\n",
+ "#(ii) When the speed of motor is 350 rpm with the rated torque during braking operation\n",
+ "Va=E1-Ia*Ra #motor terminal voltage\n",
+ "delta1=Va/V #duty ratio\n",
+ "\n",
+ "#(iii)maximum duty ratio is 0.95\n",
+ "delta2=0.95 #maximum duty ratio\n",
+ "Va=delta2*V #terminal voltage\n",
+ "Ia1=2*Ia #maximum permissable current\n",
+ "E1=Va+Ia1*Ra #back emf\n",
+ "N1=E1/E*N #maximum permissible speed\n",
+ "Pa=Va*Ia1 #power fed to the source\n",
+ "\n",
+ "#(iv) if the speed of the motor is 1200 rpm and the field of the motor is also controlled\n",
+ "N2=1200 #given speed\n",
+ "#now the field current is directly proportional to the speed of the motor\n",
+ "If=N/N2 #field current as a ratio of the rated current\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i) Duty ratio is :\",round(delta,3)\n",
+ "print\"\\n(ii)Duty ratio is :\",round(delta1,2)\n",
+ "print\"\\n(iii)Maximum permissible speed is :\",round(N1),\"rpm\"\n",
+ "print\" Power fed to the source is :\",round(Pa/1000,1),\"kW\"\n",
+ "print\"\\n(iv)Field current as a ratio of the rated current is :\",If"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Duty ratio is : 0.376\n",
+ "\n",
+ "(ii)Duty ratio is : 0.34\n",
+ "\n",
+ "(iii)Maximum permissible speed is : 962.0 rpm\n",
+ " Power fed to the source is : 87.4 kW\n",
+ "\n",
+ "(iv)Field current as a ratio of the rated current is : 0.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 185
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.20,Page No:127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the separately excited motor when it is operated in dynamic breaking\n",
+ "V=230 # rated voltage\n",
+ "N=960 # rated speed\n",
+ "Ia=200 # rated current\n",
+ "Ra=0.02 # armature resistance\n",
+ "Vs=230 # source voltage\n",
+ "Rb=2 # braking resistance in ohm\n",
+ "\n",
+ "#calculation\n",
+ "#when the motor speed is 600 rpm and the braking torque is twice the rated value\n",
+ "Ia1=2*Ia #torque is directly proportional to current\n",
+ "N1=600 #speed of the motor in rpm\n",
+ "E=V-Ia*Ra #back emf\n",
+ "E1=N1/N*E\n",
+ "x=E1/Ia1-Ra #x=(1-delta)*Rb\n",
+ "y=x/Rb #y=1-delta\n",
+ "delta=1-y #duty ratio\n",
+ "\n",
+ "#(ii)if the duty ratio is 0.6 and and the braking torque is twice the rated value\n",
+ "delta1=0.6 #duty ratio\n",
+ "Ia1=2*Ia #torque is directly proportional to current\n",
+ "E1=Ia1*((1-delta1)*Rb+Ra) #back emf\n",
+ "N1=E1/E*N\n",
+ "\n",
+ "\n",
+ "#results \n",
+ "print\"(i)Duty ratio is :\",round(delta,2)\n",
+ "print\"\\n(ii)Hence the motor speed is :\",round(N1,1),\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Duty ratio is : 0.83\n",
+ "\n",
+ "(ii)Hence the motor speed is : 1393.3 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.21,Page No:128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the series motor\n",
+ "N=600 #speed in rpm\n",
+ "Vs=220 #source voltage\n",
+ "Ra_Rf=0.12 #combine armature resistance field resistance\n",
+ "#magnetisation curve at N\n",
+ "If=[10, 20,30, 40, 50, 60, 70, 80] #field current\n",
+ "E =[64,118,150,170,184,194,202,210] #terminal voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i)when the duty ratio is 0.6 and motor current is 60 A\n",
+ "delta=0.6 #duty ratio\n",
+ "Ia1=60 #motor current\n",
+ "Va1=delta*Vs #terminal voltage for the given duty ratio\n",
+ "E1=Va1-Ia1*Ra_Rf #back emf for the given duty ratio\n",
+ "\n",
+ "#for Ia1=60 A the terminal voltage is 194 V as given in the magnetization curve\n",
+ "N1=E1/E[5]*N #motor speed for the given duty ratio\n",
+ "\n",
+ "#(ii)when the speed is 400rpm and the duty ratio is 0.65\n",
+ "delta=0.65 #duty ratio\n",
+ "N2=400 #speed in rpm\n",
+ "Va1=delta*Vs #terminal voltage for the given duty ratio\n",
+ "\n",
+ "#from the magnetization characteristic for the speed of 400rpm the current Ia=70 A\n",
+ "E1=Va1-If[6]*Ra_Rf #back emf for the given duty ratio\n",
+ "T=(E1*If[6])/N2/(2*math.pi/60) #required torque\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the motor speed is :\",round(N1),\"rpm\"\n",
+ "print\"\\n(ii)Hence the required torque is :\",round(T),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the motor speed is : 386.0 rpm\n",
+ "\n",
+ "(ii)Hence the required torque is : 225.0 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 186
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.22,Page No:129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the series motor which is the same as that of Ex-6.21\n",
+ "#The motor is operated using regenarative braking method\n",
+ "N=600 #speed in rpm\n",
+ "Vs=220 #source voltage\n",
+ "Ra_Rf=0.12 #combine armature resistance field resistance\n",
+ "#magnetisation curve at N\n",
+ "If=[10, 20,30, 40, 50, 60, 70, 80] #field current\n",
+ "E =[64,118,150,170,184,194,202,210] #terminal voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i)when the duty ratio is 0.5 and the braking torque is equal to the motor torque\n",
+ "delta=0.5 #duty ratio\n",
+ "Va1=delta*Vs #terminal voltage\n",
+ "Ia1=If[6] #current at rated motor torque\n",
+ "E1=Va1+Ia1*Ra_Rf #back emf for the given duty ratio\n",
+ "N1=E1/E[6]*N #for a current of 70 A E=202 V from the magnetization curve\n",
+ "\n",
+ "#(ii)when maximum permisssible duty ratio is 0.95 and current is 70A\n",
+ "delta_max=0.95 #maximum duty ratio\n",
+ "Va1=delta_max*Vs #terminal voltage\n",
+ "Ia1=70 #maximum permissible current\n",
+ "E2=Va1+Ia1*Ra_Rf #back emf for the given duty ratio\n",
+ "N2=E2/E[6]*N #for a current of 70 A E=202 V\n",
+ "\n",
+ "#(iii)when the motor speed is 1000rpm and maximum current is 70A with duty ratio in the range of 0.05 to 0.95\n",
+ "Ia1=70 #maximum permissible current\n",
+ "N3=1000 #given speed in rpm\n",
+ "delta_max=0.95 #maximum duty ratio\n",
+ "E3=N3/N*E[6] #terminal voltage\n",
+ "x=(E3-delta_max*Vs)/Ia1 #x=R+Ra_Rf where R is the required external resistance\n",
+ "R=x-Ra_Rf #external resistance\n",
+ "\n",
+ "#(iv)when the motor is running at 1000rpm with current at 70 \n",
+ "Ia1=70 #maximum permissible current\n",
+ "N4=1000 #given speed in rpm\n",
+ "Ra=Ra_Rf #total value of armature resistance is assumed to be the same\n",
+ "E4=Va1+Ia1*Ra #back emf for the given speed N4\n",
+ "E_=N/N4*E4\n",
+ "ratio=E_/E[6] #fraction of the requuired number of turns to be reduced\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the motor speed is :\",round(N1,1),\"rpm\"\n",
+ "print\"\\n(ii)Hence the motor speed is :\",round(N2,1),\"rpm\"\n",
+ "print\"\\n(iii)Hence the required external resistance is :\",round(R,1),\"ohm\"\n",
+ "print\"\\n(iv)Hence fraction of the number of turns to be reduced is :\",round(ratio,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the motor speed is : 351.7 rpm\n",
+ "\n",
+ "(ii)Hence the motor speed is : 645.7 rpm\n",
+ "\n",
+ "(iii)Hence the required external resistance is : 1.7 ohm\n",
+ "\n",
+ "(iv)Hence fraction of the number of turns to be reduced is : 0.646\n"
+ ]
+ }
+ ],
+ "prompt_number": 187
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:5.23,Page No:130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the series motor which is the same as that of Ex-6.21\n",
+ "#The motor is operated using dynamic braking method\n",
+ "N=600 #speed in rpm\n",
+ "Vs=220 #source voltage\n",
+ "Ra=0.12 # armature resistance\n",
+ "delta_min=0.1 #manimum value of duty ratio\n",
+ "delta_max=0.9 #maximum value of duty ratio\n",
+ "#magnetisation curve at N\n",
+ "If=[10, 20,30, 40, 50, 60, 70, 80] #field current\n",
+ "E =[64,118,150,170,184,194,202,210] #terminal voltage\n",
+ "\n",
+ "#calculation\n",
+ "#(i) maximum braking speed is 800rpm with armature current of 70 A\n",
+ "N1=800 #maximum braking speed \n",
+ "Ia=70 #armature current\n",
+ "E1=N1/N*E[6] #at 70A motor back emf is 202V \n",
+ "Rbe=E1/Ia-Ra #effective value of braking resistance\n",
+ "Rb=Rbe/(1-delta_min) #required braking resistance\n",
+ "\n",
+ "#(ii)when the speed of the motor is 87 rpm\n",
+ "#now torque is maximum when the duty ratio is maximum\n",
+ "N1=87 #speed in rpm\n",
+ "R=Rb*(1-delta_max)+Ra\n",
+ "\n",
+ "Ia=If[4] #value of armature current for the given value of E=184V \n",
+ "Ke_phi=E[4]/(2*math.pi*N)*60\n",
+ "T=Ke_phi*Ia #required torque\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence braking resistance is:\",round(Rb,2),\"ohm\"\n",
+ "print\"\\n(ii)Hence the required torque is :\",round(T,1),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence braking resistance is: 4.14 ohm\n",
+ "\n",
+ "(ii)Hence the required torque is : 146.4 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 188
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter6.ipynb b/Fundamentals_of_Electrical_Drives/Chapter6.ipynb
new file mode 100755
index 00000000..8ac325e6
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter6.ipynb
@@ -0,0 +1,1817 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Induction Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.1,Page No:147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the Y-connected induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "N=950 #speed in rpm\n",
+ "\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Xm=50 # no load reactance\n",
+ " \n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2) #total impedance\n",
+ "Ir_=(Vl/math.sqrt(3))/x #full load rotor current\n",
+ "angle=-math.atan((Xs+Xr_)/(Rs+Rr_/s)) #angle in radian\n",
+ "Ir_=cmath.rect(Ir_,angle) #full load rotor current in rectangular form\n",
+ "Im=Vl/math.sqrt(3)/Xm*(-1j) #magnetizing current\n",
+ "Is=Ir_+Im #full load current\n",
+ "\n",
+ "Zf=Rs+Xs*1j+1j*Xm*(Rr_/s+1j*Xr_)/(Rr_/s+1j*(Xr_+Xm))\n",
+ "Zb=Rs+Xs*1j+1j*Xm*(Rr_/(2-s)+1j*Xr_)/(Rr_/(2-s)+1j*(Xr_+Xm))\n",
+ "Z=Zf+Zb\n",
+ "I=(Vl/math.sqrt(3))/abs(Z) #motor current\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "\n",
+ "#torque due to positive sequence\n",
+ "Tp=(1/Wms)*(3*I**2*Xm**2*Rr_/s)/((Rr_/s)**2+(Xr_+Xm)**2)\n",
+ "#torque due to negative sequence\n",
+ "Tn=-(1/Wms)*(3*I**2*Xm**2*Rr_/(2-s))/((Rr_/(2-s))**2+(Xr_+Xm)**2)\n",
+ "T=Tp+Tn #net torque\n",
+ "Wm=Wms*(1-s) #rated speed in in rad/sec\n",
+ "Tl=0.0123*Wm**2 #required torque of the load\n",
+ "\n",
+ "#results\n",
+ "print\"Full load motor current Is:\",round(abs(Is),1),round(math.degrees(cmath.phase(Is))),\"\u00b0\",\"A\"\n",
+ "print\"Tp:\",round(Tp,2),\"N-m\"\n",
+ "print\"Tn:\",round(Tn,3),\"N-m\"\n",
+ "print\"\\nSince I:\",round(I,2),\"A and N:\",N,\"rpm\"\n",
+ "print\"And I:\",round(I,2),\"A <\",\"Is:\",round(abs(Is),2),\"A, the motor will run safely\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load motor current Is: 30.5 -25.0 \u00b0 A\n",
+ "Tp: 125.61 N-m\n",
+ "Tn: -3.299 N-m\n",
+ "\n",
+ "Since I: 24.26 A and N: 950 rpm\n",
+ "And I: 24.26 A < Is: 30.54 A, the motor will run safely\n"
+ ]
+ }
+ ],
+ "prompt_number": 197
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.2,Page No:156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the Delta connected Induction motor\n",
+ "f=50 #frequency in HZ\n",
+ "Vl=2200 #line voltage in V\n",
+ "P=8 #number of poles\n",
+ "N=735 #rated speed in rpm\n",
+ "#parameters referred to the stator\n",
+ "Xr_=0.55 # rotor winding reactance in ohm\n",
+ "Xs=0.45 # stator winding reactance in ohm\n",
+ "Rr_=0.1 # resistance of the rotor windings in ohm\n",
+ "Rs=0.075 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2) #total impedance\n",
+ "Ip=(Vl)/x #full load phase current\n",
+ "Il=math.sqrt(3)*Ip #full load line current\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "Tl=(1/Wms)*(3*Ip**2*Rr_/s) #full load torque\n",
+ "\n",
+ "#(i)if the motor is started by star-delta switching\n",
+ "y=math.sqrt((Rs+Rr_)**2+(Xs+Xr_)**2)\n",
+ "Ist=(Vl/math.sqrt(3))/y #Maximum line current during starting\n",
+ "Tst=(1/Wms)*(3*Ist**2*Rr_) #Starting torque\n",
+ "ratio1=Tst/Tl #ratio of starting torque to full load torque\n",
+ "z=Rs+math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Tmax=3/(2*Wms)*(Vl/math.sqrt(3))**2/z #maximum torque\n",
+ "ratio2=Tmax/Tl #ratio of maximum torque to full load torque\n",
+ "\n",
+ "#(ii) If the motor is started using auto transformer\n",
+ "y=math.sqrt((Rs+Rr_)**2+(Xs+Xr_)**2)\n",
+ "Ist1=Vl*math.sqrt(3)/y #starting current direct online\n",
+ "aT=math.sqrt(2*Il/Ist1) #transofrmation ratio\n",
+ "Ilst=2*Il/aT #starting motor line current\n",
+ "Ipst=Ilst/math.sqrt(3) #starting motor phase current\n",
+ "Tst1=(1/Wms)*(3*Ipst**2*Rr_) #starting torque\n",
+ "\n",
+ "#(iii) If motor is started using part winding method\n",
+ "Rs_=2*Rs\n",
+ "Xs_=2*Xs\n",
+ "y=math.sqrt((Rs_+Rr_)**2+(Xs_+Xr_)**2)\n",
+ "Ist2=(Vl*math.sqrt(3))/y #starting line current \n",
+ "Ip=Ist2/math.sqrt(3) #starting phase current\n",
+ "Tst2=(1/Wms)*(3*Ip**2*Rr_) #starting torque\n",
+ "\n",
+ "#(iv) motor is started using series reactors in line\n",
+ "Rs_=Rs/3 ; Rr_=Rr_/3\n",
+ "Xs_=Xs/3 ; Xr_=Xr_/3\n",
+ "Il=2*Il #line current at start\n",
+ "x=(Vl/math.sqrt(3))**2/(Il**2) #x=(Rs_+Rr_)**2+(Xs_+Xr_+Xe)**2\n",
+ "y=x-(Rs_+Rr_)**2 #y=(Xs_+Xr_+Xe)**2\n",
+ "z=math.sqrt(y) #z=(Xs_+Xr_+Xe)\n",
+ "Xe=z-Xs_-Xr_\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Maximum value of line current during starting Ist:\",round(Ist),\"A\"\n",
+ "print\" Ratio of starting torque to full load torque :\",round(ratio1,3)\n",
+ "print\" Ratio of maximum torque to full load torque :\",round(ratio2,2)\n",
+ "print\"\\n(ii)transofrmation ratio aT:\",round(aT,3)\n",
+ "print\" starting torque :\",round(Tst1),\"N-m\"\n",
+ "#answer for the starting torque in the book is wrong due to accuracy\n",
+ "print\"\\n(iii)maixmum line current during starting :\",round(Ist2),\"A\"\n",
+ "print\" Starting torque :\",round(Tst2),\"N-m\"\n",
+ "#answer for the starting torque in the book is wrong due to accuracy\n",
+ "print\"\\n(iv)value of the reactor Xe:\",round(Xe,3),\"ohm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Maximum value of line current during starting Ist: 1251.0 A\n",
+ " Ratio of starting torque to full load torque : 0.173\n",
+ " Ratio of maximum torque to full load torque : 0.83\n",
+ "\n",
+ "(ii)transofrmation ratio aT: 0.627\n",
+ " starting torque : 7041.0 N-m\n",
+ "\n",
+ "(iii)maixmum line current during starting : 2590.0 A\n",
+ " Starting torque : 8539.0 N-m\n",
+ "\n",
+ "(iv)value of the reactor Xe: 0.527 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 199
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.3,Page No:159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=1 # resistance of the rotor windings in ohm\n",
+ "Rs=Rr_ # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "\n",
+ "#(i)\n",
+ "Sm=-Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2) #slip at maximum torque\n",
+ "x=math.sqrt((Rs+Rr_/Sm)**2+(Xs+Xr_)**2)\n",
+ "Ir_=(Vl/math.sqrt(3))/x #current at maximum torque \n",
+ "Tmax=(1/Wms)*3*Ir_**2*Rr_/Sm #maximum torque\n",
+ "N=(1-Sm)*Ns #range of speed\n",
+ "\n",
+ "#(ii)an overhauling torque of 100Nm\n",
+ "Tl=100 #overhauling torque in Nm\n",
+ "# Tl=(3/Wms)*(Vl**2*Rr_/s)/y\n",
+ "# where y=(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "a=(1/Wms)*(Vl**2*Rr_)/(-Tl) #a=s*(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "a = 17\n",
+ "b = 17.3\n",
+ "c = 1\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "s1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "s2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "N2=(1-s2)*Ns #motor speed and we neglect s1 \n",
+ "\n",
+ "#slight difference in the answer due to accuracy\n",
+ "\n",
+ "#(iii)when a capacitive reactance of 2 ohm is inserted in each phase stator\n",
+ "Xc=2 #reactance of the capacitor\n",
+ "Sm=-Rr_/math.sqrt(Rs**2+(Xs+Xr_-Xc)**2) #slip at maximum torque \n",
+ "x=math.sqrt((Rs+Rr_/Sm)**2+(Xs+Xr_-Xc)**2)\n",
+ "Ir_=(Vl/math.sqrt(3))/x #current at maximum torque \n",
+ "Tmax_=(1/Wms)*3*Ir_**2*Rr_/Sm #maximum overhauling torque with capacitor\n",
+ "ratio=Tmax_/Tmax\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Maximum overhauling torque that the motor can hold is:\",round(abs(Tmax),1),\"N-m\"\n",
+ "print\" Range of speed is from \",Ns,\"to\",round(N),\"rpm\"\n",
+ "print\"\\n(ii)Now s*(1+1/s)**2+16s=\",a\n",
+ "print\" Or 17s**s+17.3s+1=0\"\n",
+ "print\"The solution for s are \",round(s1.real,3),\"and\",round(s2.real,3)\n",
+ "print\"\\nTherefore Motor speed is: \",round(abs(N2)),\"rpm\"\n",
+ "print\"Note :There is a slight difference in the answer due to the decimal place\"\n",
+ "print\"\\n(iii) Ratio of maximum torque with capacitor and to maximum torque without capacitor is:\",round(ratio,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Maximum overhauling torque that the motor can hold is: 244.6 N-m\n",
+ " Range of speed is from 1000.0 to 1243.0 rpm\n",
+ "\n",
+ "(ii)Now s*(1+1/s)**2+16s= 17\n",
+ " Or 17s**s+17.3s+1=0\n",
+ "The solution for s are -0.956 and -0.062\n",
+ "\n",
+ "Therefore Motor speed is: 1062.0 rpm\n",
+ "Note :There is a slight difference in the answer due to the decimal place\n",
+ "\n",
+ "(iii) Ratio of maximum torque with capacitor and to maximum torque without capacitor is: 2.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 202
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.4,Page No:162\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the motor is same as that of Ex-6.3\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=1 # resistance of the rotor windings in ohm\n",
+ "Rs=Rr_ # resistance of the stator windings in ohm\n",
+ "N=950 #full load speed in rpm\n",
+ "SR=2.3 #stator to rotor turns ratio\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2)\n",
+ "Irf_=(Vl/math.sqrt(3))/x #full load current\n",
+ "Tf=(1/Wms)*3*Irf_**2*Rr_/s #full load torque\n",
+ "\n",
+ "#(i)initial braking current and torque\n",
+ "S=2-s #during plugging at 950rpm\n",
+ "y=math.sqrt((Rs+Rr_/S)**2+(Xs+Xr_)**2)\n",
+ "Ir_=(Vl/math.sqrt(3))/y #initial braking current\n",
+ "ratio1=Ir_/Irf_\n",
+ "T=(1/Wms)*3*Ir_**2*Rr_/S #initial braking torque\n",
+ "ratio2=T/Tf\n",
+ "\n",
+ "#(ii)when an external resistance is connected such \n",
+ "#that maximum braking current is 1.5 times the full load current\n",
+ "Ir_=1.5*Irf_\n",
+ "x=(Vl/math.sqrt(3))/Ir_ #x=math.sqrt((Rs+(Rr_+Re_)/S)**2+(Xs+Xr_)**2)\n",
+ "y=x**2 #y=(Rs+(Rr_+Re_)/S)**2+(Xs+Xr_)**2\n",
+ "z=y-(Xs+Xr_)**2 #z=(Rs+(Rr_+Re_)/S)**2\n",
+ "a=math.sqrt(z) #a=(Rs+(Rr_+Re_)/S)\n",
+ "b=(a-Rs)*S #b=(Rr_+Re_)\n",
+ "Re_=b-Rs\n",
+ "Re=Re_/SR**2\n",
+ "T=(1/Wms)*3*Ir_**2*(Rr_+Re_)/S #initial braking torque\n",
+ "ratio=T/Tf\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Ratio of initial braking current to full load current is:\",round(ratio1)\n",
+ "print\" Ratio of initial braking torque to full load torque is:\",round(ratio2,2)\n",
+ "print\"\\n(ii)Ratio of initial braking torque to full load torque when the resistance is added is:\",round(ratio,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Ratio of initial braking current to full load current is: 5.0\n",
+ " Ratio of initial braking torque to full load torque is: 0.64\n",
+ "\n",
+ "(ii)Ratio of initial braking torque to full load torque when the resistance is added is: 1.426\n"
+ ]
+ }
+ ],
+ "prompt_number": 203
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.5,Page No:165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "Vp=Vl/math.sqrt(3) #phase voltage\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xm=50 # no load reactance\n",
+ "N=950 # full load speed\n",
+ "Sm=2 # slip at maximum torque\n",
+ "\n",
+ "#calculation\n",
+ "Rr_=Sm*math.sqrt(Rs**2+(Xs+Xr_)**2) #Since Sm=Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "s=(Ns-N)/Ns #slip at 950 rpm\n",
+ "\n",
+ "x=1j*Xm*(Rr_/s+1j*Xr_)\n",
+ "y=Rr_/s+1j*(Xr_+Xm)\n",
+ "Zp=Rs+1j*Xs+x/y\n",
+ "Ip=Vp/math.sqrt(3)/Zp #In the book the value of Ip is wrong which leads to other subsequent wrong answers in the book\n",
+ "Irp_=Ip*(1j*Xm)/(Rr_/s+1j*(Xr_+Xm))\n",
+ "Tp=(1/Wms)*3*abs(Irp_)**2*Rr_/s\n",
+ "x=1j*Xm*(Rr_/(2-s)+1j*Xr_)\n",
+ "y=Rr_/(2-s)+1j*(Xr_+Xm)\n",
+ "Zn=Rs+1j*Xs+x/y\n",
+ "In=Vp/math.sqrt(3)/Zn\n",
+ "Irn_=In*(1j*Xm)/(Rr_/(2-s)+1j*(Xr_+Xm))\n",
+ "Tn=-(1/Wms)*3*abs(Irn_)**2*Rr_/(2-s) #In the book the value of In is wrong\n",
+ "\n",
+ "T=Tp-Tn\n",
+ "I=abs(Ip)+abs(In)\n",
+ "Rr_=0.4 # from the parameters of the motor referred to the stator\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2)\n",
+ "If=(Vl/math.sqrt(3))/x #full load current\n",
+ "Tf=(1/Wms)*3*If**2*Rr_/s #full load torque\n",
+ "\n",
+ "ratio1=I/If\n",
+ "ratio2=abs(T)/Tf\n",
+ "\n",
+ "#results\n",
+ "print\"Ratio of braking current to full load current is:\",round(ratio1,3)\n",
+ "print\"Ratio of braking torque to full load torque is:\",round(ratio2,3)\n",
+ "#answer in the book is wrong\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of braking current to full load current is: 1.448\n",
+ "Ratio of braking torque to full load torque is: 0.565\n"
+ ]
+ }
+ ],
+ "prompt_number": 204
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.6,Page No:171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.cbook as cbook\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor which operates under dynamic braking\n",
+ "f=50 # frequency in HZ\n",
+ "P=4 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.01 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=4.575 # resistance of the rotor windings in ohm\n",
+ "Rs=1.9 # resistance of the stator windings in ohm\n",
+ "J=0.1 # moment of inertia of the motor load system in kg-m2\n",
+ "Id=12 # given DC current\n",
+ "\n",
+ "N=1500 #given asynchronous speed\n",
+ "#magnetization chacrateristic at the given asynchronous speed\n",
+ "Im=[0.13,0.37,0.6,0.9,1.2,1.7,2.24,2.9,3.9,4.9,6,8,9,9.5] #magnetization current\n",
+ "E=[12.8,32,53.8,80,106,142,173,200,227,246,260,280,288,292] #back emf\n",
+ "\n",
+ "#calculation\n",
+ "torque=[]\n",
+ "speed=[]\n",
+ "temp=[]\n",
+ "Is=math.sqrt(2/3)*Id #value of stator current for two lead connection\n",
+ "Wms=2*math.pi*N/60\n",
+ "for i in range (1,14,1):\n",
+ " x=(Is**2-Im[i]**2)/(1+2*Xr_*Im[i]/E[i]) #x=Ir_**2\n",
+ " Ir_=math.sqrt(x) #required rotor current\n",
+ " y=(E[i]/Ir_)**2-Xr_**2\n",
+ " S=Rr_/math.sqrt(y) #required slip\n",
+ " N=S*Ns #required speed\n",
+ " T=(3/Wms)*(Ir_)**2*Rr_/S #required torque\n",
+ " speed.append(round(N))\n",
+ " torque.append(round(T,1))\n",
+ " temp.append(round(T,1))\n",
+ "print\"Hence the magnetizatioin curve is\"\n",
+ "print\"Speed :\",speed,\"rpm\"\n",
+ "for i in range(0,13,1):\n",
+ " torque[i]=-1*torque[i]\n",
+ "print\"Braking torque is :\",torque,\"N-m\"\n",
+ "\n",
+ "#results\n",
+ "#plot of of torque vs speed\n",
+ "plt.figure(1)\n",
+ "plt.plot(torque,speed)\n",
+ "plt.xlabel('Torque, N-m') \n",
+ "plt.ylabel('Speed, rpm')\n",
+ "plt.title('Torque vs Speed')\n",
+ "plt.grid(True)\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "\n",
+ "#plot of Wm vs J/T\n",
+ "inertia_over_torque=[]\n",
+ "for i in range(2,13,1):\n",
+ " J_T=1000*J/temp[i]\n",
+ " inertia_over_torque.append(round(J_T,4))\n",
+ "print\"J/t :\",inertia_over_torque \n",
+ "\n",
+ "Wm=[1,4,8,12,16,20,25,55,95,125,160] \n",
+ "#the values of Wm are taken for the angular frequency with maximum value of Wms=50*pi rad/s\n",
+ "plt.figure(2)\n",
+ "plt.plot(Wm,inertia_over_torque)\n",
+ "plt.xlabel(r'Angular speed $\\omega_m$') \n",
+ "plt.ylabel(' $J/T,1*10^-2$')\n",
+ "plt.title(r'$J/T vs \\omega_m$')\n",
+ "plt.grid(True)\n",
+ "x=[6.5,6.5]\n",
+ "y=[2,4.5]\n",
+ "plt.plot(x,y,'blue')\n",
+ "plt.annotate('A',xy=(8,2), xytext=(8,2.1), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('B',xy=(8,4.5), xytext=(8,4.6), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('C',xy=(80,3.4), xytext=(80,3.5), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('D',xy=(157,8.3), xytext=(157,8.4), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('E',xy=(157,2), xytext=(157,2.1), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.show()\n",
+ "\n",
+ "print\"Hence from the plot the area ABCDEA between the curve and the speed axis for speed change \"\n",
+ "print\"for synchronous to 0.02 times synchrnous speed is the stopping time is which equal to: 9.36 sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the magnetizatioin curve is\n",
+ "Speed : [2975.0, 949.0, 578.0, 421.0, 306.0, 246.0, 207.0, 174.0, 150.0, 128.0, 86.0, 56.0, 34.0] rpm\n",
+ "Braking torque is : [-2.6, -8.3, -13.5, -18.4, -24.8, -30.0, -34.0, -36.9, -37.5, -35.9, -27.9, -19.5, -12.2] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nmxqdxn7S3SeEEI3A+vUQHa1XgbKXFCmD6dj/DXrm1jEzSG5X0zH3G2+kNciuPpAiJYQQWsvLg6NH\nYfBgo5M4h4xJCSGExl56Cb77Dt54w+gkN07GpIQQooFrqLP6KkmRMpiO/d+gZ24dM4PkdjWdcmdl\nQWEhVFSkGR3FaaRICSGEptasgZgY8PQ0OonzyJiUEEJoSCkIDYXly2HAAKPT1I+hY1JHjx5l4MCB\nhIaGEhYWxpIlSwA4ffo0Q4YM4Y477mDo0KGcPXvW9pzExESCgoIIDg5m8+bNtv27d++mZ8+eBAUF\n8eSTTzorshBCaOObb6xX4e3f3+gkzuW0IuXt7c3LL7/MgQMH+Oqrr3jttdf49ttvSUpKYsiQIWRl\nZTFo0CCSkpIAyMzMZM2aNWRmZpKamsr06dNtFXbatGksX76c7OxssrOzSU1NdVZsl9Op/7sqHXPr\nmBkkt6vpkjs5GWJjwWTSJ3N9OK1IdezYkfDwcABatGhBjx49KCgoYOPGjcTHxwMQHx/Phg0bAEhJ\nSSEuLg5vb28sFguBgYGkp6dTVFTE+fPniYyMBGDSpEm25wghRGOkVMOf1VfJJRMncnNzycjI4M47\n7+T48eP4+voC4Ovry/HjxwEoLCzEbDbbnmM2mykoKLhmv5+fHwUFBa6I7RJRUVFGR6gXHXPrmBkk\nt6vpkPvrr8HLC348DtAic315OfsNLly4wLhx41i8eDEtW7as9juTyYTJZHLYeyUkJGCxWADw8fEh\nPDzc9h+v8nBYtmVbtmVb9+2XXkqjf38wmdwjj73blfdzc3Oxm3Ki0tJSNXToUPXyyy/b9nXv3l0V\nFRUppZQqLCxU3bt3V0oplZiYqBITE22PGzZsmPrqq69UUVGRCg4Otu1/55131COPPHLNezn5ozjN\n1q1bjY5QLzrm1jGzUpLb1dw9d3m5Un5+Sh04cGWfu2eujT3f207r7lNKMWXKFEJCQnjqqads+6Oj\no1m5ciUAK1euZMyYMbb9ycnJlJaWkpOTQ3Z2NpGRkXTs2JFWrVqRnp6OUorVq1fbniOEEI3N9u3Q\ntq310hyNgdPOk/riiy+455576NWrl61LLzExkcjISGJiYjhy5AgWi4W1a9fi4+MDwIIFC1ixYgVe\nXl4sXryYYcOGAdYp6AkJCRQXFzNixAjbdPZqH0TOkxJCNAK/+Q2YzTBnjtFJbp4939tyMq8QQmii\nrAz8/GDHDujWzeg0N08WmNVA1QFFneiYW8fMILldzZ1zb90KFsu1BcqdM98sKVJCCKGJxnJuVFXS\n3SeEEBooKYHOnWHfPmuXX0Mg3X1CCNFAbN4MYWENp0DZS4qUwXTtS9Yxt46ZQXK7mrvmvl5Xn7tm\ndgQpUkII4eYuXoRNm2DcOKOTuF6dY1Jnzpxh1apV5ObmUlZWZn2SyVTjuUpGkjEpIURDtW4dvPkm\nfPyx0Ukcy57v7TrX7hsxYgQDBgygV69eeHh4oJRy6Hp7Qgghrq8xzuqrVGd3X0lJCX/5y1+YPHky\n8fHxJCQk2C61IW6ern3JOubWMTNIbldzt9znzsGWLTB2bO2PcbfMjlRnkRo/fjx/+9vfKCoq4vTp\n07abEEII50tJgago+HH1uEanzjGpV199leeeew4fHx88PKw1zWQycfjwYZcEtJeMSQkhGqKRI2HC\nBIiLMzqJ4zlk7b6uXbuya9cu2rVr59BwjiZFSgjR0Jw6BQEBkJ8PLVoYncbxHHIyb1BQEM2aNXNY\nKFGdrn3JOubWMTNIbldzp9zvvQfDhtVdoNwps6PVObuvefPmhIeHM3DgQG655RbAPaegCyFEQ5Oc\nDI89ZnQKY9XZ3ff2229bH/jjtPPKKejuNsNPuvuEEA1JUZH1woZFRdC0qdFpnMNh15MqKSnh4MGD\nmEwmgoODadKkicNCOooUKSFEQ7J0KXz9Nfx4IfMGySFjUps2bSIwMJAnnniCxx9/nICAAD788EOH\nhWzsdO1L1jG3jplBcruau+S+kRN43SWzM9Q5JjVjxgy2bt1KYGAgAIcOHWLEiBGMGDHC6eGEEKIx\nysuDrCwYPNjoJMars7vvJz/5Cbt27bJtK6WIjIysts8dSHefEKKheOkl+O47eOMNo5M4l0PGpB59\n9FGOHDlCTEwMAOvWrcPf358hQ4YAcP/99zso7s2RIiWEaCj69oWFC2HgQKOTOJdDxqRKSkrw9fVl\n27ZtbNu2jfbt23Pp0iXef/993n//fYeFbax07UvWMbeOmUFyu5rRubOyoLAQ7rnH/ucYndmZrjsm\nVV5eTs+ePZkxY4ar8gghRKO2Zg3ExICnp9FJ3MMNj0m5K+nuE0LoTikIDYXly2HAAKPTOJ9DxqSe\nfvppLl++TGxsLLfeeqvtZN4+ffo4NOzNkiIlhNDd/v0wahTk5EBjuGyfQ8akMjIyOHDgAH/4wx+Y\nOXMmv/3tb5k5c6bDQjZ2uvYl65hbx8wguV3NyNzJyRAbe+MFSte2tked50k15A8vhBDuQilrkVq/\n3ugk7sWuZZF0IN19Qgid7dplvW7UwYONo6sPHNTdJ4QQwvkql0FqLAXKXk4tUg899BC+vr707NnT\ntm/evHmYzWYiIiKIiIjgo48+sv0uMTGRoKAggoOD2bx5s23/7t276dmzJ0FBQTz55JPOjOxyunan\n6phbx8wguV3NiNwVFdap57Gx9Xu+rm1tjxsuUrt27aKwsNCux06ePJnU1NRq+0wmEzNmzCAjI4OM\njAzuu+8+ADIzM1mzZg2ZmZmkpqYyffp022HgtGnTWL58OdnZ2WRnZ1/zmkIIobPt26FtW+ulOUR1\nN1ykli5dysiRI4m1o+TffffdtG7d+pr9NfVBpqSkEBcXh7e3NxaLhcDAQNLT0ykqKuL8+fNERkYC\nMGnSJDZs2HCjsd1WVFSU0RHqRcfcOmYGye1qRuS+kRXPa6JrW9ujztl9V1u1ahUA586dq/ebLl26\nlFWrVtGvXz8WLVqEj48PhYWF9O/f3/YYs9lMQUEB3t7emM1m234/Pz8KCgrq/d5CCOFOysqsM/p2\n7DA6iXuq9Uhq9+7d7Nmzx/bz6lurVq3q9YbTpk0jJyeHvXv30qlTp0Z/zpWufck65tYxM0huV3N1\n7q1bwWKBbt3q/xq6trU9aj2SmjlzJiaTieLiYnbv3k2vXr0A2LdvH/369WNHPct+hw4dbPenTp3K\nqFGjAOsR0tGjR22/y8/Px2w24+fnR35+frX9fn5+Nb52QkICFosFAB8fH8LDw22HwZX/Ed1tu5K7\n5LF3e+/evW6Vx57tvXv3ulWehr4t7W3fdnIy9OuXRlpaw///sfJ+bm4udlN1GDt2rNq3b59te//+\n/er++++v62k2OTk5KiwszLZdWFhou/+Xv/xFxcXFKaWUOnDggOrdu7cqKSlRhw8fVt26dVMVFRVK\nKaUiIyPVV199pSoqKtR9992nPvroo2vex46PIoQQbuXSJaXatFEqP9/oJMaw53u7zjGpgwcPVptC\nHhYWxrfffmtXAYyLi2Pbtm2cPHmSLl268Pzzz9v+wjKZTHTt2pU3fryqV0hICDExMYSEhODl5cWy\nZcsw/XjCwLJly0hISKC4uJgRI0YwfPhw+6uwEEK4qc2bISwMaukcEtix4sQDDzxAixYtmDBhAkop\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f4445b34810>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "J/t : [7.4074, 5.4348, 4.0323, 3.3333, 2.9412, 2.71, 2.6667, 2.7855, 3.5842, 5.1282, 8.1967]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ntwyXs3z58owcOZIaNWrg6emJu7s77dq1M1xOi9xyxcbGUq1aNevzjPT/av78+TzzzDOA8XL+/PPP\nVKtWLcudycB4OU+ePMmWLVt48sknCQkJISoqCihYTkMVBMsZR0aWmJhIz549mT59OmXKlMnymJOT\nk65/hl9++YVKlSoRHByc64yHemcE9bL7vXv38sYbb7B3715KlSrF559/nuU5Rsh5+vRppk2bRkxM\nDLGxsSQmJrJw4cIszzFCzpw8LJcRMn/22WcUL16cfv365focvXImJSUxfvx4Pv74Y+u63P5Pgb7v\nZ3p6On///Tc7d+5k0qRJPP/887k+92E5DVUQqlatyvnz563L58+fz1Lh9JaWlkbPnj156aWXeO65\n5wD1m9ilS5cAuHjxIpUqVdIt3/bt21m5ciVeXl688MILbNy4kZdeeslQGUH9plKtWjUaN24MQK9e\nvdi7dy+VK1c2VM6oqCiaNWtGhQoVKFasGD169GDHjh2Gy2mR299z9v9XFy5coGrVqrpktFiwYAGr\nV6/m+++/t64zUs7Tp08TExNDYGAgXl5eXLhwgSeeeILLly8bKieo/5969OgBQOPGjXF2dubatWsF\nymmogtCoUSNOnjxJTEwMqampLFmyhK5du+odC1C/Hbz88sv4+vpmubK6a9eufPPNNwB888031kKh\nh/Hjx3P+/Hmio6NZvHgxbdq04bvvvjNURlAnN6xevTonTpwAYP369fj5+dGlSxdD5fTx8WHnzp0k\nJyejKArr16/H19fXcDktcvt77tq1K4sXLyY1NZXo6GhOnjxJkyZNdMu5du1aJk2axM8//4ybm5t1\nvZFyBgQEcPnyZaKjo4mOjqZatWrs3bsXDw8PQ+UEeO6556yTeZ44cYLU1FQee+yxguXUps2hndWr\nVyt169ZVvL29lfHjx+sdx2rr1q2Kk5OTEhgYqAQFBSlBQUHKmjVrlOvXryuhoaFKnTp1lHbt2il/\n//233lEVRVGUiIgI61lGRsy4f/9+pVGjRkqDBg2U7t27K/Hx8YbMOXHiRMXX11fx9/dXwsLClNTU\nVEPk7Nu3r1KlShXF1dVVqVatmjJ//vwH5vrss88Ub29vpV69esratWt1yzlv3jyldu3aSo0aNaz/\nj4YMGWKYnMWLF7e+n/fy8vKyNpWNljM1NVV58cUXFX9/f6Vhw4bKpk2bCpxTLkwTQggBGGzISAgh\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f444007ee50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence from the plot the area ABCDEA between the curve and the speed axis for speed change \n",
+ "for synchronous to 0.02 times synchrnous speed is the stopping time is which equal to: 9.36 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 205
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.7,Page No:176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=2200 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=0.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.12 # resistance of the rotor windings in ohm\n",
+ "Rs=0.075 # resistance of the stator windings in ohm\n",
+ "J=100 # combine inertia of motor and load in kg-m2\n",
+ "\n",
+ "#calculation\n",
+ "#(i) during starting of the motor\n",
+ "Sm=Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2) #slip at maximum torque\n",
+ "Wms=4*math.pi*f/P #angular frequency\n",
+ "x=Rs+math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Tmax=(3/2/Wms)*(Vl/math.sqrt(3))**2/x #maximum torque\n",
+ "tm=J*Wms/Tmax #mechanical time constant of the motor\n",
+ "ts=tm*(1/4/Sm+1.5*Sm) #time taken during starting\n",
+ "Es=1/2*J*Wms**2*(1+Rs/Rr_) #energy disspated during starting\n",
+ "\n",
+ "#(ii) when the motor is stopped by plugging method\n",
+ "tb=tm*(0.345*Sm+0.75/Sm) #time required to stop by plugging\n",
+ "Eb=3/2*J*Wms**2*(1+Rs/Rr_) #energy disspated during braking \n",
+ "\n",
+ "#(iii)required resistance to be inserted during plugging\n",
+ "tb1=1.027*tm #minimum value of stopping time during braking\n",
+ "x=1.47*(Xs+Xr_) #x=Rr_+Re\n",
+ "Re=x-Rr_ #Re is the required external resistance to be connected\n",
+ "Ee=3/2*J*Wms**2*(Re/(Re+Rr_)) #energy disspated in the external resistor\n",
+ "Eb1=Eb-Ee #total energy disspated during braking \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Time taken during starting is ts:\",round(ts,4),\"s\"\n",
+ "print\" Energy disspated during starting is Es:\",round(Es/1000),\"kilo-watt-sec\"\n",
+ "print\"\\n(ii)Time taken to stop by plugging is tb:\",round(tb,2),\"s\"\n",
+ "print\" Energy disspated during braking is Eb:\",round(Eb/1000),\"kilo-watt-sec\"\n",
+ "print\"\\n(iii)Minimum Time taken to stop by plugging is tb:\",round(tb1,2),\"s\"\n",
+ "print\" Required external resistance to be connected is Re:\",round(Re,2),\"ohm\"\n",
+ "print\" Total Energy dissipated during braking is Eb:\",round(Eb1/1000,2),\"kilo-watt-sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Time taken during starting is ts: 1.108 s\n",
+ " Energy disspated during starting is Es: 891.0 kilo-watt-sec\n",
+ "\n",
+ "(ii)Time taken to stop by plugging is tb: 3.08 s\n",
+ " Energy disspated during braking is Eb: 2673.0 kilo-watt-sec\n",
+ "\n",
+ "(iii)Minimum Time taken to stop by plugging is tb: 0.5 s\n",
+ " Required external resistance to be connected is Re: 1.35 ohm\n",
+ " Total Energy dissipated during braking is Eb: 1162.36 kilo-watt-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 206
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.8,Page No:184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "from sympy import *\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the delta connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "Pm=2.8*1000 # rated mechanical power developed\n",
+ "N=1370 # rated speed in rpm\n",
+ "#parameters referred to the stator\n",
+ "Xr_=5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=5 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "Xm=80 # no load reactance\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 #synchronous speed in rad/s\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2 #total impedance\n",
+ "T=(3/Wms)*(Vl**2*Rr_/s)/x #full load torque\n",
+ "Tl=T\n",
+ "K=Tl/(1-s)**2 #since Tl=K*(1-s)**2\n",
+ "\n",
+ "#(i) when the motor is running at 1200 rpm\n",
+ "N1=1200 #speed in rpm\n",
+ "s1=(Ns-N1)/Ns #slip at the given speed N1\n",
+ "Tl=K*(1-s1)**2 #torque at the given speed N1\n",
+ "\n",
+ "y=(Rs+Rr_/s1)**2+(Xs+Xr_)**2 #total impedance\n",
+ "a=Tl*(Wms/3)*y*(s1/Rr_) #Since T=(3/Wms)*(Vl**2*Rr_/s)/x and a=V**2\n",
+ "V=math.sqrt(a) #required voltage at the given speed N1\n",
+ "Ir_=V/((Rs+Rr_/s1)+1j*(Xs+Xr_))#rotor current\n",
+ "Im=V/(1j*Xm) #magnetizing current\n",
+ "Is=Ir_+Im #total current\n",
+ "Il=abs(Is)*math.sqrt(3) #line current\n",
+ "\n",
+ "#(ii)when the terminal voltage is 300 V\n",
+ "V1=300 #terminal voltage in V\n",
+ "s = Symbol('s')\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2 \n",
+ "T=(3/Wms)*(V1**2*Rr_/s)/x\n",
+ "\n",
+ "#Now we have to solve for the value of slip 's' from the given equation 104s**4- 188s**3 + 89s**2 - 179s + 25=0\"\n",
+ "coeff = [104,-188,89,-179,25] #coeffcient of the polynomial equation \n",
+ "s=np.roots(coeff) #roots of the polynomial equation\n",
+ "\n",
+ "T=K*(1-s[3].real)**2 #torque at the given terminal voltage of 300 V\n",
+ "N=Ns*(1-s[3].real) #speed at the given terminal voltage of 300 V\n",
+ "Ir_=V1/((Rs+Rr_/s[3].real)+1j*(Xs+Xr_))#rotor current\n",
+ "Im=V1/(1j*Xm) #magnetizing current\n",
+ "Is=Ir_+Im #total current\n",
+ "Il1=abs(Is)*math.sqrt(3) #line current\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Required torque is Tl:\",round(Tl,1),\"N-m\"\n",
+ "print\" Required motor terminal voltage is V:\",round(V,1),\"V\"\n",
+ "print\" Required line current is Il:\",round(Il,2),\"A\"\n",
+ "print\"\\n(ii)The roots of the polynomial equation are \"\n",
+ "print\" s1:\",round(s[0].real,3),\"s2:\",round(s[1].real,3),\"s3:\",round(s[2].real,3),\"s4:\",round(s[3].real,3)\n",
+ "print\" Hence Only s4:\",round(s[3].real,3),\"is valid\"\n",
+ "print\"\\nRequired torque is Tl:\",round(T,2),\"N-m\"\n",
+ "print\"Required speed is N:\",round(N),\"rpm\"\n",
+ "print\"Required line current is Il:\",round(Il1,2),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Required torque is Tl: 36.9 N-m\n",
+ " Required motor terminal voltage is V: 253.2 V\n",
+ " Required line current is Il: 17.89 A\n",
+ "\n",
+ "(ii)The roots of the polynomial equation are \n",
+ " s1: 1.818 s2: -0.079 s3: -0.079 s4: 0.147\n",
+ " Hence Only s4: 0.147 is valid\n",
+ "\n",
+ "Required torque is Tl: 41.94 N-m\n",
+ "Required speed is N: 1279.0 rpm\n",
+ "Required line current is Il: 16.88 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 207
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.9,Page No:199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected squirrel Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 # rated speed\n",
+ "\n",
+ "#the frequency variation is from 10 Hz to 50 Hz\n",
+ "fmin=10 \n",
+ "fmax=50\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "#(i)to obtain the plot between the breakdown torque and the frequency\n",
+ "K=0.1\n",
+ "k=[]\n",
+ "frequency=[]\n",
+ "torque=[]\n",
+ "for i in range (0,9):\n",
+ " K=K+0.1\n",
+ " f1=K*f\n",
+ " x=Rs/K+math.sqrt((Rs/K)**2+(Xs+Xr_)**2)\n",
+ " Tmax=(3/2/Wms)*(Vl/math.sqrt(3))**2/x\n",
+ " k.append(round(K,1))\n",
+ " frequency.append(round(f1))\n",
+ " torque.append(round(Tmax,2))\n",
+ "print\"K :\",k\n",
+ "print\"f :\",frequency,\"Hz\"\n",
+ "print\"Tmax :\",torque,\"N-m\"\n",
+ "\n",
+ "#plotting the values of Tmax vs f \n",
+ "plt.figure(1)\n",
+ "plt.plot(frequency,torque,'y')\n",
+ "plt.xlabel('$f$,Hz')\n",
+ "plt.ylabel('$Tmax$,N-m')\n",
+ "plt.grid(True)\n",
+ "plt.title('Torque vs frequency characteristic')\n",
+ "plt.show()\n",
+ "\n",
+ "#(ii) to obtain the starting torque and current at rated frequency and voltage\n",
+ "x=(Rs+Rr_)**2+(Xs+Xr_)**2\n",
+ "Tst=(3/Wms)*(Vl/math.sqrt(3))**2*Rr_/x #starting torque at 50 Hz frequency\n",
+ "Ist=(Vl/math.sqrt(3))/math.sqrt(x) #starting current at 50 Hz frequency\n",
+ "\n",
+ "K=fmin/fmax #minimum is available at 10 Hz\n",
+ "y=((Rs+Rr_)/K)**2+(Xs+Xr_)**2\n",
+ "Tst_=(3/Wms)*(Vl/math.sqrt(3))**2*Rr_/K/y #starting torque at 10 Hz frequency\n",
+ "Ist_=(Vl/math.sqrt(3))/math.sqrt(y) #starting current at 10 Hz frequency\n",
+ "\n",
+ "ratio1=Tst_/Tst #ratio of starting torque to the rated starting torque\n",
+ "ratio2=Ist_/Ist #ratio of starting current to the rated starting current\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"\\n(i)Hence from the plot we can see that for a constant (V/f) ratio breakdown torque decreases with frequency\"\n",
+ "print\"\\n(ii)Hence the required ratio of starting torque to the rated starting torque is :\",round(ratio1,3)\n",
+ "print\" Hence the required ratio of starting current to the rated starting current is :\",round(ratio2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K : [0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\n",
+ "f : [10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0] Hz\n",
+ "Tmax : [22.93, 31.18, 37.44, 42.22, 45.94, 48.89, 51.27, 53.24, 54.88] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nB9dt23sqOyvAAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f443fef8950>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)Hence from the plot we can see that for a constant (V/f) ratio breakdown torque decreases with frequency\n",
+ "\n",
+ "(ii)Hence the required ratio of starting torque to the rated starting torque is : 0.549\n",
+ " Hence the required ratio of starting current to the rated starting current is : 0.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 208
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.10,Page No:201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected squirrel Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 # rated speed\n",
+ "\n",
+ "#the frequency variation is from 5 Hz to 50 Hz\n",
+ "fmin=5 \n",
+ "fmax=50\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "Tmax=torque[8] #maximum torque as obtain from Ex-6.9\n",
+ "#to obtain the plot between the voltage and the frequency\n",
+ "K=0\n",
+ "k=[]\n",
+ "frequency=[]\n",
+ "line_voltage=[]\n",
+ "for i in range (0,10):\n",
+ " K=K+0.1\n",
+ " f1=K*f\n",
+ " x=2*K*Wms*Tmax/3\n",
+ " y=Rs+math.sqrt((Rs)**2+(K*(Xs+Xr_))**2)\n",
+ " Vl_square=3*x*y\n",
+ " Vl=math.sqrt(Vl_square)\n",
+ " k.append(round(K,1))\n",
+ " frequency.append(round(f1))\n",
+ " line_voltage.append(round(Vl,1))\n",
+ "print\"K :\",k\n",
+ "print\"f :\",frequency,\"Hz\"\n",
+ "print\"Vl :\",line_voltage,\"V\"\n",
+ "#plotting the values of line voltage Vl vs f \n",
+ "plt.figure(1)\n",
+ "plt.plot(frequency,line_voltage,'b')\n",
+ "plt.xlabel('$f$,Hz')\n",
+ "plt.ylabel('Line voltae,volts')\n",
+ "plt.grid(True)\n",
+ "plt.title('Line voltage vs frequency characteristic')\n",
+ "#for constant V/f ratio\n",
+ "x=[0,10,20,30,40,50]\n",
+ "y=[0,80,160,240,320,400]\n",
+ "plt.plot(x,y,'--')\n",
+ "plt.annotate('Constant V/f ratiuo', xy=(21, 160), xytext=(30, 160),arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.show()\n",
+ "\n",
+ "print\"\\nHence for a constant breakdown torque at all frequencies,\"\n",
+ "print\"V/f ratio has to be progressively increased with increase in frequency\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K : [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\n",
+ "f : [5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0] Hz\n",
+ "Vl : [84.3, 123.8, 159.2, 193.7, 228.0, 262.3, 296.7, 331.1, 365.5, 400.0] V\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f443fefdb90>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Hence for a constant breakdown torque at all frequencies,\n",
+ "V/f ratio has to be progressively increased with increase in frequency\n"
+ ]
+ }
+ ],
+ "prompt_number": 209
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.11,Page No:202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected squirrel Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 # rated speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "Wms=2*math.pi*Ns/60 #synchronous speed\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "D=Ns-N #drop in speed from no load to full load torque at 50 Hz\n",
+ "\n",
+ "#(i)when the frequency is 30 Hz and 80% of full load torque\n",
+ "f1=30 #given frequency in Hz\n",
+ "d=D*0.8 #drop in speed from no load to 80% full load torque\n",
+ "Ns1=120*f1/P #synchronous speed at the given frequency f1=30 Hz\n",
+ "N1=Ns1-d #required motor speed \n",
+ "\n",
+ "#(ii)when the speed is 1000 rpm for a full load torque\n",
+ "N2=1000 #given speed in rpm\n",
+ "Ns2=N2+D #synchronous speed\n",
+ "f2=P*Ns2/120 #required frequency\n",
+ "\n",
+ "#when the speed is 1100 rpm and the frequency is 40 Hz\n",
+ "N3=1100 #given speed in rpm\n",
+ "f3=40 #given frequency in Hz\n",
+ "Ns3=120*f3/P #synchronous speed at the given frequency f1=40 Hz\n",
+ "D1=Ns3-N3 #drop in speed from no load to N1=1100 rpm\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "Tf=(3/Wms)*(Vl/math.sqrt(3))**2*(Rr_/s)/x #full load torque\n",
+ "T1=D1/D*Tf #required torque \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required motor speed is :\",round(N1),\"rpm\"\n",
+ "print\"\\n(ii)Hence the required frequency is :\",round(f2,2),\"Hz\"\n",
+ "print\"\\n(iii)Hence the required torque is :\",round(T1,2),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required motor speed is : 796.0 rpm\n",
+ "\n",
+ "(ii)Hence the required frequency is : 37.67 Hz\n",
+ "\n",
+ "(iii)Hence the required torque is : 19.52 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 210
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.12,Page No:204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 #rated speed\n",
+ "\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "#(i)when f1=30Hz and 80% of full load\n",
+ "Ns=120*f/P\n",
+ "f1=30 #frequency \n",
+ "N2=0.8*N1 #increase in speed from no load to 80% of full torque rpm\n",
+ "Ns1=f1/f*Ns\n",
+ "N=Ns1+N2 #machine speed\n",
+ "\n",
+ "#(ii)at a speed of 1000rpm\n",
+ "N2=1000 #given speed in rpm\n",
+ "N3=N2-N1 #synchronous speed\n",
+ "f3=P*N3/120 #required frequency\n",
+ "\n",
+ "#(iii)when frequency is 40Hz and speed is 1300 rpm\n",
+ "f4=40 #frequency in hz\n",
+ "N2=1300 #speed in rpm\n",
+ "Ns=120*f4/P #required synchronous speed in rpm\n",
+ "N4=N2-Ns #increase in speed from no load speed in rpm\n",
+ "Tf=25.37 #full load torque as calculated in Ex-6.11\n",
+ "Tm=-N4/N1*Tf #motor torque\n",
+ "\n",
+ "#(iv) when the motor is under dynamic braking\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Required speed is :\",N,\"rpm\"\n",
+ "print\"\\n(ii)required frequency is:\",f3,\"Hz\"\n",
+ "print\"\\n(iii)Required motor torque :\",round(Tm,2),\"N-m\"\n",
+ "print\"\\n(iv)The value of the frequency,speed and motor torque calculated in (i),(ii) and(iii)\"\n",
+ "print\" will be the same when the motor is operated under dynamic braking\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Required speed is : 1004.0 rpm\n",
+ "\n",
+ "(ii)required frequency is: 29.0 Hz\n",
+ "\n",
+ "(iii)Required motor torque : -19.52 N-m\n",
+ "\n",
+ "(iv)The value of the frequency,speed and motor torque calculated in (i),(ii) and(iii)\n",
+ " will be the same when the motor is operated under dynamic braking\n"
+ ]
+ }
+ ],
+ "prompt_number": 211
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.13,Page No:204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 #rated speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Wms=4*math.pi*f/P\n",
+ "f1=60 #frequency in Hz during speed control of the motor\n",
+ "K=f1/f #the value of K at 60Hz \n",
+ "x=Rs+math.sqrt(Rs**2+K**2*(Xs+Xr_)**2)\n",
+ "Tmax_=3/(2*K*Wms)*(Vl/math.sqrt(3))**2/x #torque at 60 Hz frequency\n",
+ "z=Rs+math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Tmax=3/(2*Wms)*(Vl/math.sqrt(3))**2/z #maximum torque\n",
+ "ratio=Tmax_/Tmax #ratio\n",
+ "\n",
+ "#results\n",
+ "print\"Ratio of Motor breakdown torque at 60Hz to rated torque at 50Hz is:\",round(ratio,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of Motor breakdown torque at 60Hz to rated torque at 50Hz is: 0.727\n"
+ ]
+ }
+ ],
+ "prompt_number": 212
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.14,Page No:209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "print\"When operating at a frequency K times rated frequency f then\"\n",
+ "print\"Im**2=[((Rr_/Ksf)**2+(2*pi*Lr_)**2)/((Rr_/Ksf)**2+(2*pi*Lm+2*Pi*Lr_)**2)]*Is**2----(1)\"\n",
+ "print\"Since Im is constant for constant flux therefore\"\n",
+ "print\"K*s*f=constant--------(2)\"\n",
+ "print\"K*Wms*s=constant-------(3) which is the slip speed\"\n",
+ "print\"s*K=constant----------(4)\"\n",
+ "print\"Thereofre for a frequency K*f\"\n",
+ "print\"T=(3/K/Wms)*[(Is*K*Xm)**2*(Rr_/s)/((Rr_/s)**2+K**2*(Xm+Xr_)**2]\"\n",
+ "print\"T=(3/K/Wms*s)*[(Is*Xm)**2*(Rr_)/((Rr_/s/K)**2+(Xm+Xr_)**2]-------(5)\"\n",
+ "print\"\\nHence for a given slip speed (K*Wms*s),K*s is constant and from (1) for a given K*s*f and constant flux\"\n",
+ "print\"operation Is is fixed. Now from (5) T is also fixed. Thus, motor develps a constant torque and draws a\"\n",
+ "print\"constant current from the inverter at all frequencies for a given slip speed\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When operating at a frequency K times rated frequency f then\n",
+ "Im**2=[((Rr_/Ksf)**2+(2*pi*Lr_)**2)/((Rr_/Ksf)**2+(2*pi*Lm+2*Pi*Lr_)**2)]*Is**2----(1)\n",
+ "Since Im is constant for constant flux therefore\n",
+ "K*s*f=constant--------(2)\n",
+ "K*Wms*s=constant-------(3) which is the slip speed\n",
+ "s*K=constant----------(4)\n",
+ "Thereofre for a frequency K*f\n",
+ "T=(3/K/Wms)*[(Is*K*Xm)**2*(Rr_/s)/((Rr_/s)**2+K**2*(Xm+Xr_)**2]\n",
+ "T=(3/K/Wms*s)*[(Is*Xm)**2*(Rr_)/((Rr_/s/K)**2+(Xm+Xr_)**2]-------(5)\n",
+ "\n",
+ "Hence for a given slip speed (K*Wms*s),K*s is constant and from (1) for a given K*s*f and constant flux\n",
+ "operation Is is fixed. Now from (5) T is also fixed. Thus, motor develps a constant torque and draws a\n",
+ "constant current from the inverter at all frequencies for a given slip speed\n"
+ ]
+ }
+ ],
+ "prompt_number": 213
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.15,Page No:210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 #rated speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "Xm=55 # magnetizing reactance in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=1j*Xm*(Rr_/s+1j*Xr_)\n",
+ "y=Rr_/s+1j*(Xr_+Xm)\n",
+ "Z=Rs+1j*Xs+x/y #total motor impedance\n",
+ "Isf=(Vl/math.sqrt(3))/abs(Z) #full load stator current\n",
+ "Irf_=Isf*(1j*Xm)/(Rr_/s+1j*(Xr_+Xm)) #full load rotor current\n",
+ "Tf=(3/Wms)*abs(Irf_)**2*Rr_/s #full load torque\n",
+ "N1=Ns-N #full load slip speed\n",
+ "#(i) when the motor is operating at 30Hz\n",
+ "f1=30 #given frequency in Hz\n",
+ "#at rated slep speedvalue of torque and stator current is same as the rated value\n",
+ "T=Tf \n",
+ "Is=abs(Isf) \n",
+ "Ns1=f1/f*Ns #synchronous at f1=30Hz\n",
+ "N2=Ns1-N1 #required motor speed at 30Hz\n",
+ "\n",
+ "#(ii)at a speed of 1200 rpm\n",
+ "N3=1200 #speed in rpm\n",
+ "Ns1=N3+N1 #required synchronous speed\n",
+ "f1=Ns1/Ns*f #required frequency at N2=1200rpm\n",
+ "\n",
+ "#(iii)when speed-torque curves are assumed to be straight lines at 30Hz at half the rated motor torque\n",
+ "f2=30 #frequency in Hz\n",
+ "N1_=N1/2 #slip at half the rated torque\n",
+ "Ns1=f2/f*Ns #synchronous at f1=30Hz\n",
+ "N4=Ns1-N1_ #required motor speed\n",
+ "\n",
+ "#(iv) When the motor is operating at 45hz and braking torque is equal to rated torque\n",
+ "f3=45 #given frequency in Hz\n",
+ "N1_=-N1 #slip speed when braking at rated torque\n",
+ "Ns1=f3/f*Ns #synchronous at f1=45Hz\n",
+ "N5=Ns1-N1_ #required motor speed\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)At 30Hz the required value of Torque is T:\",round(T,2),\"N-m \"\n",
+ "print\" Stator current is Is:\",round(Is,4),\"A\"\n",
+ "print\" Motor speed is :\",N2,\"rpm\"\n",
+ "print\"\\n(ii)Required inverter frequency is :\",round(f1,2),\"Hz\"\n",
+ "print\"\\n(iii)Required motor speed at 30Hz is:\",N4,\"rpm\"\n",
+ "print\"\\n(iv)Required motor speed at 45Hz is:\",N5,\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)At 30Hz the required value of Torque is T: 22.71 N-m \n",
+ " Stator current is Is: 7.2442 A\n",
+ " Motor speed is : 770.0 rpm\n",
+ "\n",
+ "(ii)Required inverter frequency is : 44.33 Hz\n",
+ "\n",
+ "(iii)Required motor speed at 30Hz is: 835.0 rpm\n",
+ "\n",
+ "(iv)Required motor speed at 45Hz is: 1480.0 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 214
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.16,Page No:215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the Delta connected slipring Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "SR=2.2 #ratio of stator to rotor\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1 # rotor winding reactance in ohm \n",
+ "Rr_=0.2 # resistance of the rotor windings in ohm\n",
+ "s=0.04 # given slip when motor runs at full load\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "x=(Rr_/s)**2+Xr_**2\n",
+ "Tf=(3/Wms)*(Vl)**2*(Rr_/s)/x #full load torque\n",
+ "K=Tf/(Ns*(1-s))**2\n",
+ "N=850 #speed of the motor in rpm\n",
+ "Tl=K*N**2 #torque at the given speed N\n",
+ "s=(Ns-N)/Ns #slip at the given speed N\n",
+ "y=Tl*(Wms/3)/Vl**2 #y=X/(X**2+Xr_**2) and X=(Re+Rr_)/s\n",
+ "print\"The torque at the given speed of 850rpm is:\",round(Tl),\"N-m\"\n",
+ "print\"With a slip of s:\",s\n",
+ "print\"To find the external resistance connected the given quadratic equation is X**2-6.633X+1=0\"\n",
+ "print\"With X=(Re-Rr_)/s where Re is the required external resistance\" \n",
+ "a = 1\n",
+ "b = -1/y\n",
+ "c = 1\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "X1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "X2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "#results\n",
+ "print\"The solution for X are \",round(X1.real,4),\"and\",round(X2.real,4)\n",
+ "Re1=X1*s-Rr_\n",
+ "Re2=X2*s-Rr_\n",
+ "\n",
+ "if (Re1.real>0) :\n",
+ " print\"\\nThe number Re1:\",round(abs(Re1),3),\"ohm is feasible:\"\n",
+ " R=Re1.real/SR**2\n",
+ " print\"Rotor referred value of the external resistance is:\",round(R,3),\"ohm\"\n",
+ "\n",
+ "if (Re2.real>0) :\n",
+ " print\"\\nThen Re2:\",round(abs(Re2),3),\"ohm is feasible\" \n",
+ " R=Re2.real/SR**2\n",
+ " print\"Hence Rotor referred value of the external resistance is:\",round(R,3),\"ohm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The torque at the given speed of 850rpm is: 691.0 N-m\n",
+ "With a slip of s: 0.15\n",
+ "To find the external resistance connected the given quadratic equation is X**2-6.633X+1=0\n",
+ "With X=(Re-Rr_)/s where Re is the required external resistance\n",
+ "The solution for X are 0.1544 and 6.4786\n",
+ "\n",
+ "Then Re2: 0.772 ohm is feasible\n",
+ "Hence Rotor referred value of the external resistance is: 0.159 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 217
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.17,Page No:217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xm=50 # magnetizing reatance\n",
+ "a=3.5 # stator to rotor turns ratio\n",
+ "delta=0 # duty ratio at the given breakdown torque\n",
+ "Sm=1 # slip at standstill\n",
+ "#calculation\n",
+ "#slip at maximum torque without an external resistance is Sm=Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2) \n",
+ "#when an external resistanc Re referred to the stator is connected \n",
+ "x=Sm*math.sqrt(Rs**2+(Xs+Xr_)**2) #x=Re+Rr_\n",
+ "Re=x-Rr_\n",
+ "y=0.5*a**2*(1-delta) # y=0.5*a**2*R*(1-delta) #y=Re\n",
+ "R=Re/y\n",
+ "\n",
+ "N = Symbol('N')\n",
+ "Sm=(Ns-N)/Ns\n",
+ "c=(x*Sm-Rr_)/(0.5*a**2*R) #c=(1-delta)\n",
+ "delta=1-c #given duty ratio\n",
+ "\n",
+ "#results\n",
+ "print\"variation of the duty ratio is\",round(delta*1000/N,3),\"*N*10**(-3)\"\n",
+ "print\"Hence the duty ratio must change linearly with speed N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "variation of the duty ratio is 1.195 *N*10**(-3)\n",
+ "Hence the duty ratio must change linearly with speed N\n"
+ ]
+ }
+ ],
+ "prompt_number": 218
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.18,Page No:223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "N=970 # rated speed\n",
+ "n=2 # ratio of stator to rotor\n",
+ "Sm=0.25 # it is given the speed range is 25% below the synchronous speed which is proportional to the Slip\n",
+ "#parameters referred to the stator\n",
+ "Xr_=0.4 # rotor winding reactance in ohm\n",
+ "Xs=0.3 # stator winding reactance in ohm\n",
+ "Rr_=0.08 # resistance of the rotor windings in ohm\n",
+ "Rs=0.1 # resistance of the stator windings in ohm\n",
+ "alpha=165 # maximum value of the firing angle in degress\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P # synchronous speed\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "#(i) transformer turns ratio\n",
+ "a=-Sm/math.cos(math.radians(alpha)) #since Sm=a*math.cos(alpha) \n",
+ "m=n/a #since a=n/m where m is the transformer ratio\n",
+ "\n",
+ "#(ii)When speed is 780 rpm and firing angle is 140 degrees\n",
+ "N1=780 #given speed\n",
+ "alpha1=140 #given firing angle\n",
+ "s1=(Ns-N1)/Ns #slip at the given speed N1\n",
+ "Vd1=(3*math.sqrt(6)/math.pi)*s1*(Vl/math.sqrt(3))/n\n",
+ "Vd2=(3*math.sqrt(6)/math.pi)*(Vl/math.sqrt(3))/m*math.cos(math.radians(alpha1))\n",
+ "Rs_=Rs*(1/n)**2 #stator resistance referred to the rotor\n",
+ "Rr=Rr_*(1/n)**2 #rotor resistance referred to the rotor\n",
+ "Rd=0.01 #equivalent resistance of the DC link inductor\n",
+ "Id=(Vd1+Vd2)/(2*(s1*Rs_+Rr)+Rd)\n",
+ "T1=abs(Vd2)*Id/s1/Wms #required torque\n",
+ "\n",
+ "#(iii)when speed is 800rpm and firing angle is half the rated motor torque\n",
+ "N1=800 #given speed\n",
+ "s=(Ns-N)/Ns #rated slip\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "Trated=(3/Wms)*(Vl/math.sqrt(3))**2*(Rr_/s)/x #rated torque\n",
+ "T_half=Trated/2 #half rated torque\n",
+ "s1=(Ns-N1)/Ns #given slip at speed N1=800rpm\n",
+ "Vd1=(3*math.sqrt(6)/math.pi)*s1*(Vl/math.sqrt(3))/n\n",
+ "cos_alpha1 = Symbol('cos_alpha1')\n",
+ "Vd2=(3*math.sqrt(6)/math.pi)*(Vl/math.sqrt(3))/m*cos_alpha1\n",
+ "Id=(Vd1+Vd2)/(2*(s1*Rs_+Rr)+Rd)\n",
+ "T=abs(Vd2)*Id/s1/Wms #required torque\n",
+ "#let cos_alpha1=-X\n",
+ "X=-cos_alpha1\n",
+ "#since the given torque is half of the rated value\n",
+ "#To find the find the firing angle we assumed cos(alpha1)=-X\n",
+ "#The given quadratic equation is X**2-0.772X+0.06425=0\n",
+ "a = 1\n",
+ "b = -0.772\n",
+ "c = 0.06425\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "X1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "X2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "alpha1=-math.acos(X2.real) #since cos(alpha1)=-X where alpha1 is radians\n",
+ "alpha1=math.degrees(alpha1) #angle in degrees\n",
+ "alpha1=180+alpha1 #required firing angle\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Transformer ratio is: \",round(m,3)\n",
+ "print\"\\n(ii)Required torque is :\",round(T1),\"N-m\"\n",
+ "print\" There is a slight difference in the answer for the torque due to accuracy i.e more number of decimal place\"\n",
+ "print\"\\n(iii)The half rated torque at the given speed of\",N1,\"rpm is:\",round(T_half,2),\"N-m\"\n",
+ "print\" With a slip of s:\",s1\n",
+ "print\"The solution for X are \",round(X1.real,4),\"and\",round(X2.real,4)\n",
+ "print\"For X1:\",round(X1.real,4),\" the motor is unstable hence we discard this value and we use X2:\",round(X2.real,4)\n",
+ "print\"\\nHence the required firing angle is :\",round(alpha1,1),\"\u00b0\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Transformer ratio is: 7.727\n",
+ "\n",
+ "(ii)Required torque is : 271.0 N-m\n",
+ " There is a slight difference in the answer for the torque due to accuracy i.e more number of decimal place\n",
+ "\n",
+ "(iii)The half rated torque at the given speed of 800 rpm is: 302.66 N-m\n",
+ " With a slip of s: 0.2\n",
+ "The solution for X are 0.0949 and 0.6771\n",
+ "For X1: 0.0949 the motor is unstable hence we discard this value and we use X2: 0.6771\n",
+ "\n",
+ "Hence the required firing angle is : 132.6 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 219
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.19,Page No:225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor is same as that of Ex-6.17\n",
+ "f=50 # frequency in HZ\n",
+ "Vs=440 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xm=50 # magnetizing reatance\n",
+ "a=3.5 # stator to rotor turns ratio\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P # synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 # synchronous speed in rad/s\n",
+ "#(i)when motor speed is 1200rpm with a voltage of 15+0j V\n",
+ "V=cmath.rect(15,0)\n",
+ "N1=1200 #speed in rpm\n",
+ "Vr_=a*V #rotor voltage\n",
+ "s1=(Ns-N1)/Ns #slip at the given speed N1=1200 rpm\n",
+ "Z=Rs+Rr_/s1+1j*(Xs+Xr_) #total impedance\n",
+ "Ir_=(Vs/math.sqrt(3)-Vr_/s1)/Z #rotor current\n",
+ "phi_r=cmath.phase(Vr_)-cmath.phase(Ir_) #angle between Vr_ and Ir_\n",
+ "Pr=3*(abs(Ir_))**2*Rr_ #rotor copper loss\n",
+ "P1=3*abs(Vr_)*abs(Ir_)*math.cos(phi_r) #power absorbed by Vr_\n",
+ "Pg=(Pr+P1)/s1 #gross power \n",
+ "T=Pg/Wms #required motor torque\n",
+ "\n",
+ "#(ii)when motor speed is 1200rpm with a unity power factor \n",
+ "N1=1200 #speed in rpm\n",
+ "Ir_=cmath.rect(abs(Ir_),0) #machine is operating at unity power factor\n",
+ "x=Ir_*Z #x=(Vs-Vr_/s1)*phi_r where phi_r is the angle between Vr_ and Ir_\n",
+ "\n",
+ "#x=a+b\n",
+ "d=(Vs/math.sqrt(3)-Vr_/s1*math.cos(phi_r))**2\n",
+ "e=(Vr_/s1*math.sin(phi_r))**2\n",
+ "f=x/(d+e)\n",
+ "theta=cmath.phase(f) #required angle in radian\n",
+ "\n",
+ "#Now we should solve for the quadratice equation for the rotor current\n",
+ "# 0.9*Ir_**2 + 50.8*Ir_ + 90.12 = 0\n",
+ "a1 = 0.9\n",
+ "b1 = 50.8\n",
+ "c1 = 90.12\n",
+ "# calculate the discriminant\n",
+ "d = (b1**2) - (4*a1*c1)\n",
+ "# find two solutions\n",
+ "Ir_1 = (-b1-cmath.sqrt(d))/(2*a1)\n",
+ "Ir_2 = (-b1+cmath.sqrt(d))/(2*a1)\n",
+ "\n",
+ "Ir_=Ir_2 #Ir_2 is chosen because for Ir_1 the motor is unstable\n",
+ "Vr_sin_phi_r=abs(Ir_)/2.083\n",
+ "Vr_cos_phi_r=s1*(Vs/math.sqrt(3)+2.5*Vr_sin_phi_r)\n",
+ "Vr_=Vr_cos_phi_r+1j*Vr_sin_phi_r #total rotor voltage referred to the stator\n",
+ "Vr_=Vr_/a #total rotor voltage referred to the rotor\n",
+ "phase=round(math.degrees(cmath.phase(Vr_))) #required phase of the voltage in degrees\n",
+ "\n",
+ "#results\n",
+ "print\"(i)The torque is :\",round(T,2),\"N-m and since it is negative the motor is operating in regenerative braking \"\n",
+ "print\"\\n(ii)Now theta \u03b8:\",round(math.degrees(theta),2),\"\u25e6\"\n",
+ "print\" The solution for Ir_ are \",round(Ir_1.real,3),\"and\",round(Ir_2.real,3)\n",
+ "print\" We choose Ir_:\",round(Ir_2.real,3),\"A since higher value corresponds to unstable region\"\n",
+ "print\"\\n Hence the required voltage magnitude is Vr:\",round(abs(Vr_),2),\"V\",\";phase:\",phase,\"\u25e6\"\n",
+ "print\"\\n Note :There is a slight difference in the answers due to accuracy i.e more number of decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)The torque is : -8.61 N-m and since it is negative the motor is operating in regenerative braking \n",
+ "\n",
+ "(ii)Now theta \u03b8: 43.83 \u25e6\n",
+ " The solution for Ir_ are -54.611 and -1.834\n",
+ " We choose Ir_: -1.834 A since higher value corresponds to unstable region\n",
+ "\n",
+ " Hence the required voltage magnitude is Vr: 14.64 V ;phase: 1.0 \u25e6\n",
+ "\n",
+ " Note :There is a slight difference in the answers due to accuracy i.e more number of decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 220
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.20,Page No:234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the single phase Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vs=220 # supply voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1425 # rated speed in rpm\n",
+ "#parameters referred to the stator\n",
+ "Xr_=6 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=5 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "Xm=60 # magnetizing reatance\n",
+ "\n",
+ "#calculation\n",
+ "N1=1200 #when the motor is operating at the given speed in rpm\n",
+ "Ns=120*f/P # synchronous speed\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "s=(Ns-N)/Ns #rated slip\n",
+ "\n",
+ "Zf=1j*(Xm)*(Rr_/s+1j*Xr_)/2/(Rr_/s+1j*(Xr_+Xm))\n",
+ "Rf=Zf.real ; Xf=Zf.imag\n",
+ "Zb=1j*(Xm)*(Rr_/(2-s)+1j*Xr_)/2/(Rr_/(2-s)+1j*(Xr_+Xm))\n",
+ "Rb=Zb.real ; Xb=Zb.imag\n",
+ "Zs=Rs+1j*Xs\n",
+ "Z=Zs+Zf+Zb\n",
+ "Is=(Vs)/Z\n",
+ "T=(abs(Is))**2/Wms*(Rf-Rb)\n",
+ "Tl=T\n",
+ "K=Tl/N**2\n",
+ "\n",
+ "#therefore for a speed of of N1=1200 rpm we get \n",
+ "Tl=K*N1**2 #required load torque for the given speed N1\n",
+ "s1=(Ns-N1)/Ns # slip for the given speed N1\n",
+ "\n",
+ "Zf=1j*(Xm)*(Rr_/s1+1j*Xr_)/2/(Rr_/s1+1j*(Xm))\n",
+ "Rf=Zf.real ; Xf=Zf.imag\n",
+ "Zb=1j*(Xm)*(Rr_/(2-s1)+1j*Xr_)/2/(Rr_/(2-s1)+1j*(Xr_+Xm))\n",
+ "Rb=Zb.real ; Xb=Zb.imag\n",
+ "x=(Wms*Tl)/(Rf-Rb) #since Tl=(abs(Is))**2/Wms*(Rf-Rb) and x=Is**2\n",
+ "Is=math.sqrt(x)\n",
+ "Z=Zs+Zf+Zb\n",
+ "V=Is*abs(Z)\n",
+ "\n",
+ "#results\n",
+ "print\"Hence the motor terminal voltage at the speed of\",N1,\"rpm is : \",round(V,1),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the motor terminal voltage at the speed of 1200 rpm is : 127.9 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 221
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter6_1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter6_1.ipynb
new file mode 100755
index 00000000..d6fcff95
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter6_1.ipynb
@@ -0,0 +1,1817 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Induction Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.1,Page No:147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the Y-connected induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "N=950 #speed in rpm\n",
+ "\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Xm=50 # no load reactance\n",
+ " \n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2) #total impedance\n",
+ "Ir_=(Vl/math.sqrt(3))/x #full load rotor current\n",
+ "angle=-math.atan((Xs+Xr_)/(Rs+Rr_/s)) #angle in radian\n",
+ "Ir_=cmath.rect(Ir_,angle) #full load rotor current in rectangular form\n",
+ "Im=Vl/math.sqrt(3)/Xm*(-1j) #magnetizing current\n",
+ "Is=Ir_+Im #full load current\n",
+ "\n",
+ "Zf=Rs+Xs*1j+1j*Xm*(Rr_/s+1j*Xr_)/(Rr_/s+1j*(Xr_+Xm))\n",
+ "Zb=Rs+Xs*1j+1j*Xm*(Rr_/(2-s)+1j*Xr_)/(Rr_/(2-s)+1j*(Xr_+Xm))\n",
+ "Z=Zf+Zb\n",
+ "I=(Vl/math.sqrt(3))/abs(Z) #motor current\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "\n",
+ "#torque due to positive sequence\n",
+ "Tp=(1/Wms)*(3*I**2*Xm**2*Rr_/s)/((Rr_/s)**2+(Xr_+Xm)**2)\n",
+ "#torque due to negative sequence\n",
+ "Tn=-(1/Wms)*(3*I**2*Xm**2*Rr_/(2-s))/((Rr_/(2-s))**2+(Xr_+Xm)**2)\n",
+ "T=Tp+Tn #net torque\n",
+ "Wm=Wms*(1-s) #rated speed in in rad/sec\n",
+ "Tl=0.0123*Wm**2 #required torque of the load\n",
+ "\n",
+ "#results\n",
+ "print\"Full load motor current Is:\",round(abs(Is),1),round(math.degrees(cmath.phase(Is))),\"\u00b0\",\"A\"\n",
+ "print\"Tp:\",round(Tp,2),\"N-m\"\n",
+ "print\"Tn:\",round(Tn,3),\"N-m\"\n",
+ "print\"\\nSince I:\",round(I,2),\"A and N:\",N,\"rpm\"\n",
+ "print\"And I:\",round(I,2),\"A <\",\"Is:\",round(abs(Is),2),\"A, the motor will run safely\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full load motor current Is: 30.5 -25.0 \u00b0 A\n",
+ "Tp: 125.61 N-m\n",
+ "Tn: -3.299 N-m\n",
+ "\n",
+ "Since I: 24.26 A and N: 950 rpm\n",
+ "And I: 24.26 A < Is: 30.54 A, the motor will run safely\n"
+ ]
+ }
+ ],
+ "prompt_number": 197
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.2,Page No:156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the Delta connected Induction motor\n",
+ "f=50 #frequency in HZ\n",
+ "Vl=2200 #line voltage in V\n",
+ "P=8 #number of poles\n",
+ "N=735 #rated speed in rpm\n",
+ "#parameters referred to the stator\n",
+ "Xr_=0.55 # rotor winding reactance in ohm\n",
+ "Xs=0.45 # stator winding reactance in ohm\n",
+ "Rr_=0.1 # resistance of the rotor windings in ohm\n",
+ "Rs=0.075 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2) #total impedance\n",
+ "Ip=(Vl)/x #full load phase current\n",
+ "Il=math.sqrt(3)*Ip #full load line current\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "Tl=(1/Wms)*(3*Ip**2*Rr_/s) #full load torque\n",
+ "\n",
+ "#(i)if the motor is started by star-delta switching\n",
+ "y=math.sqrt((Rs+Rr_)**2+(Xs+Xr_)**2)\n",
+ "Ist=(Vl/math.sqrt(3))/y #Maximum line current during starting\n",
+ "Tst=(1/Wms)*(3*Ist**2*Rr_) #Starting torque\n",
+ "ratio1=Tst/Tl #ratio of starting torque to full load torque\n",
+ "z=Rs+math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Tmax=3/(2*Wms)*(Vl/math.sqrt(3))**2/z #maximum torque\n",
+ "ratio2=Tmax/Tl #ratio of maximum torque to full load torque\n",
+ "\n",
+ "#(ii) If the motor is started using auto transformer\n",
+ "y=math.sqrt((Rs+Rr_)**2+(Xs+Xr_)**2)\n",
+ "Ist1=Vl*math.sqrt(3)/y #starting current direct online\n",
+ "aT=math.sqrt(2*Il/Ist1) #transofrmation ratio\n",
+ "Ilst=2*Il/aT #starting motor line current\n",
+ "Ipst=Ilst/math.sqrt(3) #starting motor phase current\n",
+ "Tst1=(1/Wms)*(3*Ipst**2*Rr_) #starting torque\n",
+ "\n",
+ "#(iii) If motor is started using part winding method\n",
+ "Rs_=2*Rs\n",
+ "Xs_=2*Xs\n",
+ "y=math.sqrt((Rs_+Rr_)**2+(Xs_+Xr_)**2)\n",
+ "Ist2=(Vl*math.sqrt(3))/y #starting line current \n",
+ "Ip=Ist2/math.sqrt(3) #starting phase current\n",
+ "Tst2=(1/Wms)*(3*Ip**2*Rr_) #starting torque\n",
+ "\n",
+ "#(iv) motor is started using series reactors in line\n",
+ "Rs_=Rs/3 ; Rr_=Rr_/3\n",
+ "Xs_=Xs/3 ; Xr_=Xr_/3\n",
+ "Il=2*Il #line current at start\n",
+ "x=(Vl/math.sqrt(3))**2/(Il**2) #x=(Rs_+Rr_)**2+(Xs_+Xr_+Xe)**2\n",
+ "y=x-(Rs_+Rr_)**2 #y=(Xs_+Xr_+Xe)**2\n",
+ "z=math.sqrt(y) #z=(Xs_+Xr_+Xe)\n",
+ "Xe=z-Xs_-Xr_\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Maximum value of line current during starting Ist:\",round(Ist),\"A\"\n",
+ "print\" Ratio of starting torque to full load torque :\",round(ratio1,3)\n",
+ "print\" Ratio of maximum torque to full load torque :\",round(ratio2,2)\n",
+ "print\"\\n(ii)transofrmation ratio aT:\",round(aT,3)\n",
+ "print\" starting torque :\",round(Tst1),\"N-m\"\n",
+ "#answer for the starting torque in the book is wrong due to accuracy\n",
+ "print\"\\n(iii)maixmum line current during starting :\",round(Ist2),\"A\"\n",
+ "print\" Starting torque :\",round(Tst2),\"N-m\"\n",
+ "#answer for the starting torque in the book is wrong due to accuracy\n",
+ "print\"\\n(iv)value of the reactor Xe:\",round(Xe,3),\"ohm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Maximum value of line current during starting Ist: 1251.0 A\n",
+ " Ratio of starting torque to full load torque : 0.173\n",
+ " Ratio of maximum torque to full load torque : 0.83\n",
+ "\n",
+ "(ii)transofrmation ratio aT: 0.627\n",
+ " starting torque : 7041.0 N-m\n",
+ "\n",
+ "(iii)maixmum line current during starting : 2590.0 A\n",
+ " Starting torque : 8539.0 N-m\n",
+ "\n",
+ "(iv)value of the reactor Xe: 0.527 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 199
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.3,Page No:159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=1 # resistance of the rotor windings in ohm\n",
+ "Rs=Rr_ # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "\n",
+ "#(i)\n",
+ "Sm=-Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2) #slip at maximum torque\n",
+ "x=math.sqrt((Rs+Rr_/Sm)**2+(Xs+Xr_)**2)\n",
+ "Ir_=(Vl/math.sqrt(3))/x #current at maximum torque \n",
+ "Tmax=(1/Wms)*3*Ir_**2*Rr_/Sm #maximum torque\n",
+ "N=(1-Sm)*Ns #range of speed\n",
+ "\n",
+ "#(ii)an overhauling torque of 100Nm\n",
+ "Tl=100 #overhauling torque in Nm\n",
+ "# Tl=(3/Wms)*(Vl**2*Rr_/s)/y\n",
+ "# where y=(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "a=(1/Wms)*(Vl**2*Rr_)/(-Tl) #a=s*(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "a = 17\n",
+ "b = 17.3\n",
+ "c = 1\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "s1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "s2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "N2=(1-s2)*Ns #motor speed and we neglect s1 \n",
+ "\n",
+ "#slight difference in the answer due to accuracy\n",
+ "\n",
+ "#(iii)when a capacitive reactance of 2 ohm is inserted in each phase stator\n",
+ "Xc=2 #reactance of the capacitor\n",
+ "Sm=-Rr_/math.sqrt(Rs**2+(Xs+Xr_-Xc)**2) #slip at maximum torque \n",
+ "x=math.sqrt((Rs+Rr_/Sm)**2+(Xs+Xr_-Xc)**2)\n",
+ "Ir_=(Vl/math.sqrt(3))/x #current at maximum torque \n",
+ "Tmax_=(1/Wms)*3*Ir_**2*Rr_/Sm #maximum overhauling torque with capacitor\n",
+ "ratio=Tmax_/Tmax\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Maximum overhauling torque that the motor can hold is:\",round(abs(Tmax),1),\"N-m\"\n",
+ "print\" Range of speed is from \",Ns,\"to\",round(N),\"rpm\"\n",
+ "print\"\\n(ii)Now s*(1+1/s)**2+16s=\",a\n",
+ "print\" Or 17s**s+17.3s+1=0\"\n",
+ "print\"The solution for s are \",round(s1.real,3),\"and\",round(s2.real,3)\n",
+ "print\"\\nTherefore Motor speed is: \",round(abs(N2)),\"rpm\"\n",
+ "print\"Note :There is a slight difference in the answer due to the decimal place\"\n",
+ "print\"\\n(iii) Ratio of maximum torque with capacitor and to maximum torque without capacitor is:\",round(ratio,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Maximum overhauling torque that the motor can hold is: 244.6 N-m\n",
+ " Range of speed is from 1000.0 to 1243.0 rpm\n",
+ "\n",
+ "(ii)Now s*(1+1/s)**2+16s= 17\n",
+ " Or 17s**s+17.3s+1=0\n",
+ "The solution for s are -0.956 and -0.062\n",
+ "\n",
+ "Therefore Motor speed is: 1062.0 rpm\n",
+ "Note :There is a slight difference in the answer due to the decimal place\n",
+ "\n",
+ "(iii) Ratio of maximum torque with capacitor and to maximum torque without capacitor is: 2.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 202
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.4,Page No:162\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the motor is same as that of Ex-6.3\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=1 # resistance of the rotor windings in ohm\n",
+ "Rs=Rr_ # resistance of the stator windings in ohm\n",
+ "N=950 #full load speed in rpm\n",
+ "SR=2.3 #stator to rotor turns ratio\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2)\n",
+ "Irf_=(Vl/math.sqrt(3))/x #full load current\n",
+ "Tf=(1/Wms)*3*Irf_**2*Rr_/s #full load torque\n",
+ "\n",
+ "#(i)initial braking current and torque\n",
+ "S=2-s #during plugging at 950rpm\n",
+ "y=math.sqrt((Rs+Rr_/S)**2+(Xs+Xr_)**2)\n",
+ "Ir_=(Vl/math.sqrt(3))/y #initial braking current\n",
+ "ratio1=Ir_/Irf_\n",
+ "T=(1/Wms)*3*Ir_**2*Rr_/S #initial braking torque\n",
+ "ratio2=T/Tf\n",
+ "\n",
+ "#(ii)when an external resistance is connected such \n",
+ "#that maximum braking current is 1.5 times the full load current\n",
+ "Ir_=1.5*Irf_\n",
+ "x=(Vl/math.sqrt(3))/Ir_ #x=math.sqrt((Rs+(Rr_+Re_)/S)**2+(Xs+Xr_)**2)\n",
+ "y=x**2 #y=(Rs+(Rr_+Re_)/S)**2+(Xs+Xr_)**2\n",
+ "z=y-(Xs+Xr_)**2 #z=(Rs+(Rr_+Re_)/S)**2\n",
+ "a=math.sqrt(z) #a=(Rs+(Rr_+Re_)/S)\n",
+ "b=(a-Rs)*S #b=(Rr_+Re_)\n",
+ "Re_=b-Rs\n",
+ "Re=Re_/SR**2\n",
+ "T=(1/Wms)*3*Ir_**2*(Rr_+Re_)/S #initial braking torque\n",
+ "ratio=T/Tf\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Ratio of initial braking current to full load current is:\",round(ratio1)\n",
+ "print\" Ratio of initial braking torque to full load torque is:\",round(ratio2,2)\n",
+ "print\"\\n(ii)Ratio of initial braking torque to full load torque when the resistance is added is:\",round(ratio,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Ratio of initial braking current to full load current is: 5.0\n",
+ " Ratio of initial braking torque to full load torque is: 0.64\n",
+ "\n",
+ "(ii)Ratio of initial braking torque to full load torque when the resistance is added is: 1.426\n"
+ ]
+ }
+ ],
+ "prompt_number": 203
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.5,Page No:165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "Vp=Vl/math.sqrt(3) #phase voltage\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xm=50 # no load reactance\n",
+ "N=950 # full load speed\n",
+ "Sm=2 # slip at maximum torque\n",
+ "\n",
+ "#calculation\n",
+ "Rr_=Sm*math.sqrt(Rs**2+(Xs+Xr_)**2) #Since Sm=Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 \n",
+ "s=(Ns-N)/Ns #slip at 950 rpm\n",
+ "\n",
+ "x=1j*Xm*(Rr_/s+1j*Xr_)\n",
+ "y=Rr_/s+1j*(Xr_+Xm)\n",
+ "Zp=Rs+1j*Xs+x/y\n",
+ "Ip=Vp/math.sqrt(3)/Zp #In the book the value of Ip is wrong which leads to other subsequent wrong answers in the book\n",
+ "Irp_=Ip*(1j*Xm)/(Rr_/s+1j*(Xr_+Xm))\n",
+ "Tp=(1/Wms)*3*abs(Irp_)**2*Rr_/s\n",
+ "x=1j*Xm*(Rr_/(2-s)+1j*Xr_)\n",
+ "y=Rr_/(2-s)+1j*(Xr_+Xm)\n",
+ "Zn=Rs+1j*Xs+x/y\n",
+ "In=Vp/math.sqrt(3)/Zn\n",
+ "Irn_=In*(1j*Xm)/(Rr_/(2-s)+1j*(Xr_+Xm))\n",
+ "Tn=-(1/Wms)*3*abs(Irn_)**2*Rr_/(2-s) #In the book the value of In is wrong\n",
+ "\n",
+ "T=Tp-Tn\n",
+ "I=abs(Ip)+abs(In)\n",
+ "Rr_=0.4 # from the parameters of the motor referred to the stator\n",
+ "x=math.sqrt((Rs+Rr_/s)**2+(Xs+Xr_)**2)\n",
+ "If=(Vl/math.sqrt(3))/x #full load current\n",
+ "Tf=(1/Wms)*3*If**2*Rr_/s #full load torque\n",
+ "\n",
+ "ratio1=I/If\n",
+ "ratio2=abs(T)/Tf\n",
+ "\n",
+ "#results\n",
+ "print\"Ratio of braking current to full load current is:\",round(ratio1,3)\n",
+ "print\"Ratio of braking torque to full load torque is:\",round(ratio2,3)\n",
+ "#answer in the book is wrong\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of braking current to full load current is: 1.448\n",
+ "Ratio of braking torque to full load torque is: 0.565\n"
+ ]
+ }
+ ],
+ "prompt_number": 204
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.6,Page No:171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.cbook as cbook\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor which operates under dynamic braking\n",
+ "f=50 # frequency in HZ\n",
+ "P=4 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.01 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=4.575 # resistance of the rotor windings in ohm\n",
+ "Rs=1.9 # resistance of the stator windings in ohm\n",
+ "J=0.1 # moment of inertia of the motor load system in kg-m2\n",
+ "Id=12 # given DC current\n",
+ "\n",
+ "N=1500 #given asynchronous speed\n",
+ "#magnetization chacrateristic at the given asynchronous speed\n",
+ "Im=[0.13,0.37,0.6,0.9,1.2,1.7,2.24,2.9,3.9,4.9,6,8,9,9.5] #magnetization current\n",
+ "E=[12.8,32,53.8,80,106,142,173,200,227,246,260,280,288,292] #back emf\n",
+ "\n",
+ "#calculation\n",
+ "torque=[]\n",
+ "speed=[]\n",
+ "temp=[]\n",
+ "Is=math.sqrt(2/3)*Id #value of stator current for two lead connection\n",
+ "Wms=2*math.pi*N/60\n",
+ "for i in range (1,14,1):\n",
+ " x=(Is**2-Im[i]**2)/(1+2*Xr_*Im[i]/E[i]) #x=Ir_**2\n",
+ " Ir_=math.sqrt(x) #required rotor current\n",
+ " y=(E[i]/Ir_)**2-Xr_**2\n",
+ " S=Rr_/math.sqrt(y) #required slip\n",
+ " N=S*Ns #required speed\n",
+ " T=(3/Wms)*(Ir_)**2*Rr_/S #required torque\n",
+ " speed.append(round(N))\n",
+ " torque.append(round(T,1))\n",
+ " temp.append(round(T,1))\n",
+ "print\"Hence the magnetizatioin curve is\"\n",
+ "print\"Speed :\",speed,\"rpm\"\n",
+ "for i in range(0,13,1):\n",
+ " torque[i]=-1*torque[i]\n",
+ "print\"Braking torque is :\",torque,\"N-m\"\n",
+ "\n",
+ "#results\n",
+ "#plot of of torque vs speed\n",
+ "plt.figure(1)\n",
+ "plt.plot(torque,speed)\n",
+ "plt.xlabel('Torque, N-m') \n",
+ "plt.ylabel('Speed, rpm')\n",
+ "plt.title('Torque vs Speed')\n",
+ "plt.grid(True)\n",
+ "plt.tight_layout()\n",
+ "plt.show()\n",
+ "\n",
+ "#plot of Wm vs J/T\n",
+ "inertia_over_torque=[]\n",
+ "for i in range(2,13,1):\n",
+ " J_T=1000*J/temp[i]\n",
+ " inertia_over_torque.append(round(J_T,4))\n",
+ "print\"J/t :\",inertia_over_torque \n",
+ "\n",
+ "Wm=[1,4,8,12,16,20,25,55,95,125,160] \n",
+ "#the values of Wm are taken for the angular frequency with maximum value of Wms=50*pi rad/s\n",
+ "plt.figure(2)\n",
+ "plt.plot(Wm,inertia_over_torque)\n",
+ "plt.xlabel(r'Angular speed $\\omega_m$') \n",
+ "plt.ylabel(' $J/T,1*10^-2$')\n",
+ "plt.title(r'$J/T vs \\omega_m$')\n",
+ "plt.grid(True)\n",
+ "x=[6.5,6.5]\n",
+ "y=[2,4.5]\n",
+ "plt.plot(x,y,'blue')\n",
+ "plt.annotate('A',xy=(8,2), xytext=(8,2.1), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('B',xy=(8,4.5), xytext=(8,4.6), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('C',xy=(80,3.4), xytext=(80,3.5), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('D',xy=(157,8.3), xytext=(157,8.4), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.annotate('E',xy=(157,2), xytext=(157,2.1), arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.show()\n",
+ "\n",
+ "print\"Hence from the plot the area ABCDEA between the curve and the speed axis for speed change \"\n",
+ "print\"for synchronous to 0.02 times synchrnous speed is the stopping time is which equal to: 9.36 sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the magnetizatioin curve is\n",
+ "Speed : [2975.0, 949.0, 578.0, 421.0, 306.0, 246.0, 207.0, 174.0, 150.0, 128.0, 86.0, 56.0, 34.0] rpm\n",
+ "Braking torque is : [-2.6, -8.3, -13.5, -18.4, -24.8, -30.0, -34.0, -36.9, -37.5, -35.9, -27.9, -19.5, -12.2] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAakAAAEaCAYAAACrcqiAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xtc1FX+x/HXcDE1NbyiMtIokAiooC7pthWu13RFzV0I\nU8G0Ld2uuqVu6671SGE33VLLrd201N3Cy68VyyKzxDYzNMXVJBdSQLnoek1NBIHz+2NiBAUZcWa+\nc+DzfDzmwXy/zOU9J5sP33PO93xNSimFEEII4YY8jA4ghBBC1EaKlBBCCLclRUoIIYTbkiIlhBDC\nbUmREkII4bakSAkhhHBbUqSEEE4zb948Jk6caHQMoTEpUqJBa9GiBS1btqRly5Z4eHjQvHlz2/a7\n775rdDynyc/PZ9y4cbRv3x4fHx969uzJypUrXZ7DZDK5/D1Fw+JldAAhnOnChQu2+127dmX58uX8\n/Oc/v6HXKCsrw8tLr/9VJk6cSEREBEeOHOGWW25h3759HDt2zOhYQtwwOZISjVJJSQlPPfUUfn5+\n+Pn58fTTT1NaWgpAWloaZrOZP//5z3Tq1IkpU6Zw6dIlEhISaNOmDaGhobz00kt06dLF9noeHh4c\nPnzYtp2QkMDcuXNt2x988AHh4eG0bt2au+66i/3799eYa9q0aTzzzDPV9o0ePZpXXnkFgD/96U+Y\nzWZatWpFcHAwn332WY2v8/XXX5OQkECzZs3w8PAgPDyc4cOHA5Cbm4uHhwd///vf8fPzo3Pnzixa\ntMj2XKUUSUlJBAYG0q5dO2JjYzlz5ozt91999RU//elPad26NeHh4Wzbts32u5ycHO69915atWrF\n0KFDOXny5PX/QwhRFyVEI2GxWNSnn36qlFJq7ty5asCAAerEiRPqxIkT6qc//amaO3euUkqprVu3\nKi8vLzV79mxVWlqqiouL1axZs9Q999yjzpw5o44ePapCQ0NVly5dbK9tMpnUoUOHbNsJCQm219uz\nZ4/q0KGD2rlzp6qoqFArV65UFotFlZSUXJPx888/r/a6p0+fVs2aNVNFRUXq4MGDqkuXLqqoqEgp\npVReXl6196xq8ODB6q677lLJyckqLy+v2u9ycnKUyWRS48ePVxcvXlT79+9X7du3V1u2bFFKKfXK\nK6+oAQMGqIKCAlVaWqoeeeQRFRcXp5RSKj8/X7Vt21Z99NFHSimlPvnkE9W2bVt18uRJpZRS/fv3\nVzNnzlSlpaXq888/Vy1btlQTJ0609z+RENeQIiUajapFKiAgwPZFq5RSH3/8sbJYLEopa5Fq0qRJ\ntSLSrVs39fHHH9u2//a3vymz2Wzbvl6RevTRR233K3Xv3l1t27btmowVFRXK399fff7557b3GTRo\nkFJKqezsbNWhQwe1ZcsWVVpaet3PeubMGTV79mwVGhqqPD09VXh4uNq1a5dS6kqR+u9//2t7/LPP\nPqumTJmilFIqODjY1k5KKVVYWKi8vb1VWVmZSkpKuqboDBs2TK1cuVLl5eUpLy8vdfHiRdvvxo8f\nryZMmHDdrEJcj3T3iUapsLCQ22+/3bbt7+9PYWGhbbt9+/Y0adKk2uOrdu/5+/vb/V55eXksWrSI\n1q1b2275+fkUFRVd81iTycQDDzxgm9Txzjvv8OCDDwIQGBjIK6+8wrx58/D19SUuLq7G1wDw8fEh\nMTGRb775huPHjxMeHs6YMWOqPebqz1P5+fPy8hg7dqwta0hICF5eXhw/fpy8vDzWrVtX7bNs376d\nY8eOUVhYSOvWrWnWrJntdau2sRD1IUVKNEqdO3cmNzfXtn3kyBE6d+5s2756VlqnTp04cuRItcdX\n1bx5cy5evGjbrlo8/P39ee655zhz5oztduHCBWJjY2vMFhcXx/r168nLy2Pnzp2MGzeu2u/+/e9/\nk5eXh8lkYtasWXV+1rZt2zJz5kwKCwurjS1d/Xn8/PxseVNTU6vlvXjxIp07d8bf35+JEydW+935\n8+d59tln6dSpk+2xlSpzClFfUqREoxQXF8eLL77IyZMnOXnyJC+88MJ1z+eJiYkhMTGRs2fPkp+f\nz9KlS6t9+YaHh/PPf/6T8vJyUlNT+fzzz22/e/jhh3n99dfZuXMnSil++OEHNm3aVG3mYVXh4eG0\na9eOqVOnMnz4cFq1agVAVlYWn332GSUlJdxyyy00bdoUT0/PGl9j1qxZHDhwgLKyMs6fP89f//pX\ngoKCaN26te0xL774IsXFxRw4cIC3337bVjQfffRRfve739mK2IkTJ9i4cSMAEyZM4P3332fz5s2U\nl5dz6dIl0tLSKCgo4Pbbb6dfv3788Y9/5PLly3zxxRd88MEH9vznEKJWUqREo/T73/+efv360atX\nL3r16kW/fv34/e9/b/v91X/9//GPf+T222+na9euDB8+nEmTJqGqXIpt8eLFvP/++7Ru3Zp33nmH\nsWPH2n7Xt29f/v73v/PYY4/Rpk0bgoKCWLVq1XXzjR8/ns8++4zx48fb9pWUlDBnzhzat29Pp06d\nOHnyJImJiTU+v7i42NZlFxAQwNGjR22FptK9995LYGAggwcP5plnnmHw4MEAPPnkk0RHRzN06FBa\ntWrFgAED2LlzJwBms5mUlBQWLFhAhw4d8Pf3Z9GiRVRUVADW7sn09HTatGnDCy+8QHx8/HU/pxB1\nMSnlnIseXrp0iXvvvZeSkhJKS0sZPXo0iYmJnD59mtjYWPLy8rBYLKxduxYfHx8AEhMTWbFiBZ6e\nnixZsoShQ4cCsHv3bhISErh06RIjRoxg8eLFzogshN3S0tKYOHEiR48eNTrKDcvNzaVbt26UlZXh\n4SF/pwr35rR/oU2bNmXr1q3s3buXffv2sXXrVr744guSkpIYMmQIWVlZDBo0iKSkJAAyMzNZs2YN\nmZmZpKamMn36dNtfqtOmTWP58uVkZ2eTnZ1Namqqs2ILIYRwI079M6p58+YAlJaWUl5eTuvWrdm4\ncaOtCyA+Pp4NGzYAkJKSQlxcHN7e3lgsFgIDA0lPT6eoqIjz588TGRkJwKRJk2zPEcJIOk8I0Dm7\naFycWqQqKioIDw/H19eXgQMHEhoayvHjx/H19QXA19eX48ePA9Ypvmaz2fZcs9lMQUHBNfv9/Pwo\nKChwZmwh6hQVFXXNDD9dWCwWysvLpatPaMGpC5J5eHiwd+9evv/+e4YNG8bWrVur/d5kMjnsL7p2\n7dpx6tQph7yWEEII5wsICOC777677mNc8qfUbbfdxsiRI9m9eze+vr62hS6Lioro0KEDYD1CqjoI\nnZ+fj9lsxs/Pj/z8/Gr7K8/nqOrUqVMo6woaWt3i4+MNz9BYcuuYWXJLbqMyFxUpvvjCubkPHTpU\nZ/1wWpE6efIkZ8+eBazTYT/55BMiIiKIjo62XTJg5cqVtrPgo6OjSU5OprS0lJycHLKzs4mMjKRj\nx460atWK9PR0lFKsXr36mjPndWaxWIyOUC865tYxM0huV9MxtzMyr14NdZwp4RJO6+4rKioiPj6e\niooKKioqmDhxIoMGDSIiIoKYmBiWL19um4IOEBISQkxMjG0JlmXLltm6ApctW0ZCQgLFxcWMGDHC\ntpqzEEII50hOhoULjU7hxCLVs2dP9uzZc83+Nm3asGXLlhqf87vf/Y7f/e531+zv27dvrZc20F3l\nOWK60TG3jplBcruajrkdnTkrCwoL4Z57HPqy9SLTewwWHh5udIR60TG3jplBcruajrkdnXnNGoiJ\ngVpW3XIpp6044Womk4kG8lGEEMIwSkFoKCxfDgMGOPe97PneliMpIYQQNt98AxcvQv/+RiexkiJl\nsLS0NKMj1IuOuXXMDJLb1XTM7cjMyckQGwvusiiJU0/mFUIIoQ+lrEVq/Xqjk1whY1JCCCEA2LUL\nJkyAgwddcyQlY1JCCCHslpwMDzzgPl19IEXKcDr2f4OeuXXMDJLb1XTM7YjMFRXWqec/XqDZbUiR\nEkIIwfbt0LYthIQYnaQ6GZMSQgjBb34DZjPMmeO697Tne1uKlBBCNHJlZeDnBzt2QLdurntfmTih\nAR37v0HP3DpmBsntajrmvtnMW7eCxeLaAmUvKVJCCNHIVc7qc0fS3SeEEI1YSQl07gz79lm7/FxJ\nuvuEEEJc1+bNEBbm+gJlLylSBtOx/xv0zK1jZpDcrqZj7pvJ7M5dfSBFSgghGq2LF2HTJhg3zugk\ntZMxKSGEaKTWrYM334SPPzbm/WVMSgghRK3cvasPpEgZTsf+b9Azt46ZQXK7mo6565P53DnYsgXG\njnV8HkeSIiWEEI1QSgpERYGPj9FJrk/GpIQQohEaOdJ67ai4OOMyyNp9QgghrnHqFAQEQH4+tGhh\nXA6ZOKEBHfu/Qc/cOmYGye1qOua+0czvvQfDhhlboOwlRUoIIRoZHWb1VZLuPiGEaESKiqwXNiwq\ngqZNjc0i3X1CCCGqWb8eoqONL1D2kiJlMB37v0HP3DpmBsntajrmvpHMOnX1gRQpIYRoNPLyICsL\nBg82Oon9nFakjh49ysCBAwkNDSUsLIwlS5YAMG/ePMxmMxEREURERPDRRx/ZnpOYmEhQUBDBwcFs\n3rzZtn/37t307NmToKAgnnzySWdFNkRUVJTREepFx9w6ZgbJ7Wo65rY389q1cP/94O3t3DyO5LSJ\nE8eOHePYsWOEh4dz4cIF+vbty4YNG1i7di0tW7ZkxowZ1R6fmZnJ+PHj2bVrFwUFBQwePJjs7GxM\nJhORkZG8+uqrREZGMmLECJ544gmGDx9e/YPIxAkhhLiuvn1h4UIYONDoJFaGTpzo2LEj4eHhALRo\n0YIePXpQUFAAUGOolJQU4uLi8Pb2xmKxEBgYSHp6OkVFRZw/f57IyEgAJk2axIYNG5wV2+V07P8G\nPXPrmBkkt6vpmNuezFlZUFgI99zj/DyO5JIxqdzcXDIyMujfvz8AS5cupXfv3kyZMoWzZ88CUFhY\niNlstj3HbDZTUFBwzX4/Pz9bsRNCCGGfNWsgJgY8PY1OcmO8nP0GFy5c4Je//CWLFy+mRYsWTJs2\njT/84Q8AzJ07l5kzZ7J8+XKHvFdCQgIWiwUAHx8fwsPDbX21lX9pyLZjtiv3uUsee7erZneHPPZs\nR0VFuVWeG9mu5C55Gmp7V+6r7fdbt6bx5puQnGxs3sr7ubm52MupJ/NevnyZX/ziF9x333089dRT\n1/w+NzeXUaNGsX//fpKSkgCYPXs2AMOHD+f555/n9ttvZ+DAgXz77bcAvPvuu2zbto3XX3+9+geR\nMSkhhKjR/v0wahTk5IDJZHSaKwwdk1JKMWXKFEJCQqoVqKKiItv9f/3rX/Ts2ROA6OhokpOTKS0t\nJScnh+zsbCIjI+nYsSOtWrUiPT0dpRSrV69mzJgxzortclf/xakLHXPrmBkkt6vpmLuuzMnJEBvr\nXgXKXk7r7tu+fTv/+Mc/6NWrFxEREQAsWLCAd999l71792IymejatStvvPEGACEhIcTExBASEoKX\nlxfLli3D9GOLLlu2jISEBIqLixkxYsQ1M/uEEELUTClrkVq/3ugk9SNr9wkhRAO2a5f1ulEHD7rf\nkZSs3SeEEI1c5TJI7lag7CVFymA69n+Dnrl1zAyS29V0zF1b5ooK69Tz2FjX5nEkKVJCCNFAbd8O\nbdtaL82hKxmTEkKIBuo3vwGzGebMMTpJzez53pYiJYQQDVBZGfj5wY4d0K2b0WlqJhMnNKBj/zfo\nmVvHzCC5XU3H3DVl3roVLBb3LVD2kiIlhBANkG4XN6yNdPcJIUQDU1ICnTvDvn3WLj93Jd19QgjR\nCG3eDGFh7l2g7CVFymA69n+Dnrl1zAyS29V0zH115obS1QdSpIQQokG5eBE2bYJx44xO4hgyJiWE\nEA3IunXw5pvw8cdGJ6mbjEkJIUQj05C6+kCKlOF07P8GPXPrmBkkt6vpmLsy87lzsGULjB1rbB5H\nkiIlhBANREoKREWBj4/RSRxHxqSEEKKBGDnSeu2ouDijk9hH1u4TQohG4tQpCAiA/Hxo0cLoNPaR\niRMa0LH/G/TMrWNmkNyupmPutLQ03nsPhg3Tp0DZS4qUEEI0AA1tVl8l6e4TQgjNFRVZL2xYVARN\nmxqdxn7S3SeEEI3A+vUQHa1XgbKXFCmD6dj/DXrm1jEzSG5X0zH3G2+kNciuPpAiJYQQWsvLg6NH\nYfBgo5M4h4xJCSGExl56Cb77Dt54w+gkN07GpIQQooFrqLP6KkmRMpiO/d+gZ24dM4PkdjWdcmdl\nQWEhVFSkGR3FaaRICSGEptasgZgY8PQ0OonzyJiUEEJoSCkIDYXly2HAAKPT1I+hY1JHjx5l4MCB\nhIaGEhYWxpIlSwA4ffo0Q4YM4Y477mDo0KGcPXvW9pzExESCgoIIDg5m8+bNtv27d++mZ8+eBAUF\n8eSTTzorshBCaOObb6xX4e3f3+gkzuW0IuXt7c3LL7/MgQMH+Oqrr3jttdf49ttvSUpKYsiQIWRl\nZTFo0CCSkpIAyMzMZM2aNWRmZpKamsr06dNtFXbatGksX76c7OxssrOzSU1NdVZsl9Op/7sqHXPr\nmBkkt6vpkjs5GWJjwWTSJ3N9OK1IdezYkfDwcABatGhBjx49KCgoYOPGjcTHxwMQHx/Phg0bAEhJ\nSSEuLg5vb28sFguBgYGkp6dTVFTE+fPniYyMBGDSpEm25wghRGOkVMOf1VfJJRMncnNzycjI4M47\n7+T48eP4+voC4Ovry/HjxwEoLCzEbDbbnmM2mykoKLhmv5+fHwUFBa6I7RJRUVFGR6gXHXPrmBkk\nt6vpkPvrr8HLC348DtAic315OfsNLly4wLhx41i8eDEtW7as9juTyYTJZHLYeyUkJGCxWADw8fEh\nPDzc9h+v8nBYtmVbtmVb9+2XXkqjf38wmdwjj73blfdzc3Oxm3Ki0tJSNXToUPXyyy/b9nXv3l0V\nFRUppZQqLCxU3bt3V0oplZiYqBITE22PGzZsmPrqq69UUVGRCg4Otu1/55131COPPHLNezn5ozjN\n1q1bjY5QLzrm1jGzUpLb1dw9d3m5Un5+Sh04cGWfu2eujT3f207r7lNKMWXKFEJCQnjqqads+6Oj\no1m5ciUAK1euZMyYMbb9ycnJlJaWkpOTQ3Z2NpGRkXTs2JFWrVqRnp6OUorVq1fbniOEEI3N9u3Q\ntq310hyNgdPOk/riiy+455576NWrl61LLzExkcjISGJiYjhy5AgWi4W1a9fi4+MDwIIFC1ixYgVe\nXl4sXryYYcOGAdYp6AkJCRQXFzNixAjbdPZqH0TOkxJCNAK/+Q2YzTBnjtFJbp4939tyMq8QQmii\nrAz8/GDHDujWzeg0N08WmNVA1QFFneiYW8fMILldzZ1zb90KFsu1BcqdM98sKVJCCKGJxnJuVFXS\n3SeEEBooKYHOnWHfPmuXX0Mg3X1CCNFAbN4MYWENp0DZS4qUwXTtS9Yxt46ZQXK7mrvmvl5Xn7tm\ndgQpUkII4eYuXoRNm2DcOKOTuF6dY1Jnzpxh1apV5ObmUlZWZn2SyVTjuUpGkjEpIURDtW4dvPkm\nfPyx0Ukcy57v7TrX7hsxYgQDBgygV69eeHh4oJRy6Hp7Qgghrq8xzuqrVGd3X0lJCX/5y1+YPHky\n8fHxJCQk2C61IW6ern3JOubWMTNIbldzt9znzsGWLTB2bO2PcbfMjlRnkRo/fjx/+9vfKCoq4vTp\n07abEEII50tJgago+HH1uEanzjGpV199leeeew4fHx88PKw1zWQycfjwYZcEtJeMSQkhGqKRI2HC\nBIiLMzqJ4zlk7b6uXbuya9cu2rVr59BwjiZFSgjR0Jw6BQEBkJ8PLVoYncbxHHIyb1BQEM2aNXNY\nKFGdrn3JOubWMTNIbldzp9zvvQfDhtVdoNwps6PVObuvefPmhIeHM3DgQG655RbAPaegCyFEQ5Oc\nDI89ZnQKY9XZ3ff2229bH/jjtPPKKejuNsNPuvuEEA1JUZH1woZFRdC0qdFpnMNh15MqKSnh4MGD\nmEwmgoODadKkicNCOooUKSFEQ7J0KXz9Nfx4IfMGySFjUps2bSIwMJAnnniCxx9/nICAAD788EOH\nhWzsdO1L1jG3jplBcruau+S+kRN43SWzM9Q5JjVjxgy2bt1KYGAgAIcOHWLEiBGMGDHC6eGEEKIx\nysuDrCwYPNjoJMars7vvJz/5Cbt27bJtK6WIjIysts8dSHefEKKheOkl+O47eOMNo5M4l0PGpB59\n9FGOHDlCTEwMAOvWrcPf358hQ4YAcP/99zso7s2RIiWEaCj69oWFC2HgQKOTOJdDxqRKSkrw9fVl\n27ZtbNu2jfbt23Pp0iXef/993n//fYeFbax07UvWMbeOmUFyu5rRubOyoLAQ7rnH/ucYndmZrjsm\nVV5eTs+ePZkxY4ar8gghRKO2Zg3ExICnp9FJ3MMNj0m5K+nuE0LoTikIDYXly2HAAKPTOJ9DxqSe\nfvppLl++TGxsLLfeeqvtZN4+ffo4NOzNkiIlhNDd/v0wahTk5EBjuGyfQ8akMjIyOHDgAH/4wx+Y\nOXMmv/3tb5k5c6bDQjZ2uvYl65hbx8wguV3NyNzJyRAbe+MFSte2tked50k15A8vhBDuQilrkVq/\n3ugk7sWuZZF0IN19Qgid7dplvW7UwYONo6sPHNTdJ4QQwvkql0FqLAXKXk4tUg899BC+vr707NnT\ntm/evHmYzWYiIiKIiIjgo48+sv0uMTGRoKAggoOD2bx5s23/7t276dmzJ0FBQTz55JPOjOxyunan\n6phbx8wguV3NiNwVFdap57Gx9Xu+rm1tjxsuUrt27aKwsNCux06ePJnU1NRq+0wmEzNmzCAjI4OM\njAzuu+8+ADIzM1mzZg2ZmZmkpqYyffp022HgtGnTWL58OdnZ2WRnZ1/zmkIIobPt26FtW+ulOUR1\nN1ykli5dysiRI4m1o+TffffdtG7d+pr9NfVBpqSkEBcXh7e3NxaLhcDAQNLT0ykqKuL8+fNERkYC\nMGnSJDZs2HCjsd1WVFSU0RHqRcfcOmYGye1qRuS+kRXPa6JrW9ujztl9V1u1ahUA586dq/ebLl26\nlFWrVtGvXz8WLVqEj48PhYWF9O/f3/YYs9lMQUEB3t7emM1m234/Pz8KCgrq/d5CCOFOysqsM/p2\n7DA6iXuq9Uhq9+7d7Nmzx/bz6lurVq3q9YbTpk0jJyeHvXv30qlTp0Z/zpWufck65tYxM0huV3N1\n7q1bwWKBbt3q/xq6trU9aj2SmjlzJiaTieLiYnbv3k2vXr0A2LdvH/369WNHPct+hw4dbPenTp3K\nqFGjAOsR0tGjR22/y8/Px2w24+fnR35+frX9fn5+Nb52QkICFosFAB8fH8LDw22HwZX/Ed1tu5K7\n5LF3e+/evW6Vx57tvXv3ulWehr4t7W3fdnIy9OuXRlpaw///sfJ+bm4udlN1GDt2rNq3b59te//+\n/er++++v62k2OTk5KiwszLZdWFhou/+Xv/xFxcXFKaWUOnDggOrdu7cqKSlRhw8fVt26dVMVFRVK\nKaUiIyPVV199pSoqKtR9992nPvroo2vex46PIoQQbuXSJaXatFEqP9/oJMaw53u7zjGpgwcPVptC\nHhYWxrfffmtXAYyLi2Pbtm2cPHmSLl268Pzzz9v+wjKZTHTt2pU3fryqV0hICDExMYSEhODl5cWy\nZcsw/XjCwLJly0hISKC4uJgRI0YwfPhw+6uwEEK4qc2bISwMaukcEtix4sQDDzxAixYtmDBhAkop\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f4445b34810>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "J/t : [7.4074, 5.4348, 4.0323, 3.3333, 2.9412, 2.71, 2.6667, 2.7855, 3.5842, 5.1282, 8.1967]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEfCAYAAABBHLFTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcFfX+x/EXIEpuoaYoLom4IIuAuZS5oLiWS25pWohW\nlmm/UlO7ttmtNK+ae92uy7Wyq6aWaamZC2ouKK65b+AS7oSIgGzz+2M8R0FQ4Mw5MwOf5+PBQ2fO\nOTNvj3o+Z76fme84KYqiIIQQoshz1juAEEIIY5CCIIQQApCCIIQQ4g4pCEIIIQApCEIIIe6QgiCE\nEAKQgiCEEOIOKQiiSLt58ybHjx/XO4YQhiAFQRQJixYt4tlnn6VJkyb88ccf1vU//PADZcqUIT4+\nnoYNGzJ16lTmzZtH6dKl+eijj/jPf/5Dt27d+O6773RML4RjFNM7gBCO8MILL7By5UpefPFFmjdv\nbl1//vx5PD09Wbx4Mb/99hsVK1bk/PnzlChRgo8//hiAwMBA5IJ+URTIEYIoEhRFYdOmTbRp08a6\n7tixY/j4+ABQvXp1KlasCMCmTZto1aqV9XklS5bE19fXsYGF0IEUBFEkHDhwgMceewwPDw/rup9/\n/pkePXoA8PTTT1vXZy8c5cqVY+PGjTz//PMATJ06lcmTJwOQkJDArFmzWL16NV988QUAiYmJrF69\n+r4MTZo04eLFi9r/4YTQiBQEUSRs2LCBtm3bWpczMjJIS0ujePHi9z03IiKC1q1bW5dPnDhBcHAw\nly5dAqBv3744O6v/dVasWMH58+dp1qwZR44cAdSC0qlTJwD27Nlj3U737t2trxPCiORfpygS1q9f\nT2hoaJbl9u3b3/e86OhokpOT8fPzs65r06YN8+bNIzw8HIC4uDhrcenUqRPXrl0jICCARo0aAZCe\nno6TkxMAEydOtG6nfPnyWY5QhDAaKQiiUEpOTsbT05MzZ85w6dIlDh8+nKUg7Ny5kyZNmtz3uk2b\nNhESEnLf+j179tC0aVMA9u3bR4MGDYiMjOS9995j3rx57Nmzh4iICOvjAL///jtlypQBYOnSpXh6\nemr8pxRCWy7jxo0bp3cIIbTm7OzM7du3URSFJUuWMGXKFOsHcnx8PCdOnLB+wAMcOXKE5cuX8/XX\nX+Pi4kJKSgpBQUHWb/qZmZlERkZy7do1GjduTLly5UhLSyM5OZnY2Fi2bNnC8OHDKVu2LJs3byY8\nPJxHHnmEv//+m1GjRuHn50dYWBgRERHMnDmTRx55hLlz53L79m12797NsWPHshyVCKEHJ7lBjihq\n5syZQ5cuXahcubLD933x4kU+/PBD5syZw6hRo/jHP/7BoUOHOHz4MEOGDHF4HiHupcuQ0fTp0wkI\nCMDf35/p06frEUEUYbGxsboUA4DU1FS8vb0B9Srp8uXLs2bNGpo0aUJycrIumYSwcHhBOHToEHPn\nzmX37t0cOHCAX375hdOnTzs6hiiizpw5Q4MGDXTbf1RUFKGhoaSnp1OhQgUAXFxciI+P55FHHtEt\nlxCgw5DRsmXLWLt2LXPnzgXg008/pUSJEowaNcqRMYQQQmTj8CMEf39/tm7dSlxcHElJSfz6669c\nuHDB0TGEEEJk4/C5jHx8fBgzZgzt27enVKlSBAcHy8U6QghhALqfZTR27Fhq1KjB66+/bl1XtWpV\nYmNjdUwlhBDm4+3tzalTpwr8el2+ml+5cgWAc+fO8dNPP9GvX78sj8fGxqIoiuF/PvroI90zSE7J\nKTklo+XH1hN0dJn+ulevXly/fh1XV1e+/PJLypYtq0cMm8XExOgdIU8kp7Ykp7bMkNMMGbWgS0HY\nsmWLHrsVQgjxANLNtYFlsjOjk5zakpzaMkNOM2TUgu5N5Zw4OTlhwFhCCGFotn52yhGCDSyzWxqd\n5NSW5NSWGXKaIaMWpCAIIYQAZMhICCEKDRkyEkIIoQkpCDYwy7ii5NSW5NSWGXKaIaMWpCAIIYTJ\nuLi4EBwcjL+/P0FBQXzxxReaDLNLD0EIIUymTJky3Lx5E4CrV6/Sr18/nn76aT7++GObPjulIAgh\nhMncWxAAoqOjady4MdevX5emsl7MMq4oObUlObVlhpxGz+jl5UVGRobN25GCIIQQApAhIyGEMJ3s\nQ0ZnzpyhSZMmMmQkhBBF2dWrV3n99dd58803bd6WFAQbGH1c0UJyaktyassMOY2WMTk52Xraabt2\n7ejYsSMffvihzdvV5X4IQgghCi49Pd0u25UeghBCmMDly5fZtm1blnVPPvkknp6e1mVbPzvlCEEI\nIQzo5s2bTJs2DRcXF1xdXfnhhx+IioqiRIkSANy+fZuAgADCwsJIS0sjLS3N9p0qBmTQWPfZtGmT\n3hHyRHJqS3Jqyww59ci4YcMGBbjvx8PDQ6lUqVKOj9n62SlHCEIIYUBt2rTJ9/CPk5OTTfuUHoIQ\nQhQScj8EIYQQbN9u+zakINjAaOcm50ZyaktyassMOY2e8fp16NvX9u3oUhAmTJiAn58fAQEB9OvX\nj9u3b+sRQwghTC8zEwYMgOeft31bDu8hxMTE0KZNG44ePUqJEiXo06cPzzzzDAMGDLgbSnoIQgiR\nJ5Mnw/LlsGULFC9ususQypYti6urK0lJSbi4uJCUlETVqlUdHUMIIUxvxw6YNAl27QJXV9u35/Ah\no/LlyzNy5Ehq1KiBp6cn7u7utG3b1tExNGH0cUULyaktyaktM+Q0Ysa4OLVvMGcOPP64Ntt0eEE4\nffo006ZNIyYmhtjYWBITE/n+++8dHUMIIUxLUSA8HHr1gq5dtduuw4eMoqKiaNasGRUqVACgR48e\nbN++nf79+2d5Xnh4ODVr1gTA3d2doKAgQkJCgLvVWpbztmxZZ5Q8Zl+2rDNKHrMvW9YZJU9uy/dm\n1TvPDz/A5cshvPlmBOHhCwCsn5e2cHhT+cCBA/Tv35/du3fj5uZGeHg4TZo0YejQoXdDSVNZCCFy\ntHMndOsGkZGQvQaY7sK0wMBAwsLCaNSoEQ0aNABg8ODBjo6hiezfHIxKcmpLcmrLDDmNktHSN/jP\nf+4vBlrQZS6j0aNHM3r0aD12LYQQpqQoMHAgdO+uHiHYg8xlJIQQJjB1KixaBH/8AcWL5/wcWz87\npSAIIYTBRUZCly7qr15euT/PdD2EwsQo44oPIzm1JTm1ZYacemb8+++7fYMHFQMtSEEQQgiDsvQN\nunWD556z//5kyEgIIQxq+nRYuBC2bcu9b3Av6SEIIUQhtGsXdO6sXndQq1beXiM9BB2ZYewTJKfW\nJKe2zJDT0Rnj46FPH/j3v/NeDLQgBUEIIQxEUWDQIPWsoh49HLtvGTISQggDmTEDvv1W7RuUKJG/\n10oPQQghCondu+HZZ/PXN7iX9BB0ZIaxT5CcWpOc2jJDTkdktPQNvvrKsX2De0lBEEIInSkKvPyy\nenTQs6d+OWTISAghdDZrFvz3v7B9e/77BveSHoIQQphYVBQ884x6f2Rvb9u2Vah7CAMHQkKC3ily\nZ4axT5CcWpOc2jJDTntlvHFD7RvMnm17MdCCoQvC9u3w1196pxBCCO0pCrzyCnTsCL17651GZegh\no5AQ+PBDaNNG70RCCKGt2bNh3jz1i6+bmzbbtHXISJc7puWVpyfExuqdQgghtLV3L4wbp/YNtCoG\nWjD0kFGVKsYuCGYY+wTJqTXJqS0z5NQy440b8Pzz6plFtWtrtllNGLogeHrCxYt6pxBCCG0oCrz6\nKrRvrzaTjcbQPYRFi2DFCliyRO9EQghhu6++Uu98Zq+hokLdQ6hSRY4QhBCFw7596kkyWjaRtWb4\nISPpIdhOcmpLcmrLDDltzZiQoPYNZs6EOnW0yWQPuhSE48ePExwcbP159NFHmTFjxn3PsxwhGG9Q\nSwgh8kZRYPBgCA2Fvn31TvNguvcQMjMzqVq1Krt27aJ69epqqHvGwcqUgQsX4NFH9UwphBAF8+9/\nqz87dsAjj9h3X6bvIaxfvx5vb29rMcjOcpQgBUEIYTb798MHH6g3u7F3MdCC7j2ExYsX069fv1wf\nN3IfwQxjnyA5tSY5tWWGnAXJaOkbzJgBdetqn8kedC0IqamprFq1it4PmMhDzjQSQpiNosBrr0Hr\n1vDCC3qnyTtdh4zWrFnDE088QcWKFe97LDw8nJo1axITA0uWuFO1ahAhISHA3Woty3lbtqwzSh6z\nL1vWGSWP2Zct64ySJ7fle7M+7PmrVsGRIyHs3GnffBERESxYsACAmjVrYitdm8p9+/alU6dODBgw\nIMv6exsjkyerM55OnapHQiGEyJ8DB6BtW/jjD6hXz7H7Nu39EG7dusX69evp0aPHA59n5Okrsn9z\nMCrJqS3JqS0z5Mxrxps31amsp01zfDHQgm5DRqVKleLatWsPfZ6Rm8pCCGFh6Ru0agX9++udpmB0\nvw4hJ/ce9hw/Dp07w8mTOocSQogHmDNHvRI5MlK/U0wL/T2Vb96EypUhMRGcnHQOJoQQOTh4UL0S\neetW8PHRL4dpewh5VaaMWghu3tQ7yf3MMPYJklNrklNbZsj5oIw3b6rXG0ydqm8x0ILhCwJIH0EI\nYUyKAkOGQPPm8OKLeqexneGHjEBt0owbp17kIYQQRjFvnnpGUWQklCypd5pCMJdRXsgRghDCaP78\nE959F7ZsMUYx0IIphoyMOn2FGcY+QXJqTXJqyww5s2dMTFSvN5gyBerX1yeTPZiiIMgRghDCKCx9\ng2bNICxM7zTaMkUP4fvvYdUqWLxYx1BCCAHMnw9ffAG7dhlvqKjI9BCMOGQkhChaDh2CMWNg82bj\nFQMtyJCRDcww9gmSU2uSU1tmyBkREWHtG0yeDL6+eieyD1MUBLm3shBCb0OHwpNPQrbJmQsVU/QQ\nFEW9Yjk2FsqW1TGYEKJIWrAAJk1S+walSumdJndFoofg5HT3KEEKghDCkQ4fhlGjICLC2MVAC6YY\nMgJj9hHMMPYJklNrklNbRs5565baNxg0KAI/P73T2F+eC0JkZCTLly/nr7/+sq7bsGEDhw8ftkuw\n7Ix6cZoQovAaNgwaN4aOHfVO4hh56iF88MEHHDt2jFq1anHgwAHatGnD6NGjSU9Px8PDg+vXr2sb\nKodxsBEj1KOEd97RdFdCCJGjBQvgX/+C3bvNM1TkkB6Cu7s7S5cutS5HRETw2Wef8Y9//ANnZ8eM\nOskRghDCUY4cUfsGmzaZpxhoIU+f5m5ubsTFxfHVV1+RlJRESEgIr7/+OrNnzyYtLc3eGQHpIdhC\ncmpLcmrLaDktfYOJE8HfX11ntIz2kqcjhMGDB7Ns2TIuX75sPSKoUKECw4YNo1gxx5yoVKWK8QqC\nEKLwefNNeOIJGDhQ7ySOZ4rrEACOHYOuXeHECZ1CCSEKvW+/hQkT1L5B6dJ6p8m/Qn9PZYuEBHXY\nKDFRp1BCiELt6FFo2RI2boSAAL3TFEyhv6eyRZky6hXLRrq3slnGFSWntiSntoyQMylJ7RtMmJBz\nMTBCRkfQpSDEx8fTq1cv6tevj6+vLzt37nzoa5ycjNlYFkKY3//9HwQFwcsv651EX7oMGQ0YMIBW\nrVoxaNAg0tPTuXXrFo8++ujdULkc9rRsCf/8J4SEODCsEKJQ++47+OwziIoyZ9/gXg4ZMtqxY0eB\nd5DdjRs32Lp1K4MGDQKgWLFiWYrBg8gRghBCS8eOqRe9/vCD+YuBFvJUEBISEjTbYXR0NBUrVmTg\nwIE0bNiQV199laSkpDy91mgXp5llXFFyaktyakuvnJa+wfjx0KDBg59rlvfSVg7vIaSnp7N3717e\neOMN9u7dS6lSpfj888/z9Fo5QhBCaOWtt9RC8MoreicxDodPf12tWjWqVatG48aNAejVq1eOBSE8\nPJyaNWsC6tQZQUFBVKkSwr59d6t1yJ1mgiw/eNmyzih5zL5sWWeUPGZftqxz5P5//x22bAkhKgo2\nb87b6+/Nau98eV2OiIhgwYIFANbPS1vkqakcGxuLp6enzTuzaNmyJXPnzqVu3bqMGzeO5ORkJk6c\neDdULo2RjRvVpnIROXoTQtjB8ePQvDmsXw+BgXqn0ZZDmsqenp5s3bqVjz/+mCFDhjBs2DA+/vhj\n1q1bV6Cdzpw5k/79+xMYGMjBgwcZO3Zsnl5ntOkrsn9zMCrJqS3JqS1H5kxOVvsGn36av2JglvfS\nVnkaMho/fjxpaWkEBwdTqlQpMjIySEhIYMOGDWzcuDHPPQCLwMBAdu/ene+wnp7GaioLIczl7bfB\nzw8GD9Y7iTHlacho5cqVdO3aNcfHli1bRq9evbQNlcthj6Kop4ZduqReuSyEEHn1v//BuHHq9QaF\n9Va8DrkfwoEDB9i/fz8NGzakZMmSuLi4cOvWLQ4ePMjVq1c1Lwi5uffeylIQhBB5deKEelbR778X\n3mKghTz1ED744AOaNWvG3r17+fHHH1myZAm7d++mcePGTJ482d4ZszDSqadmGVeUnNqSnNqyd87k\nZHj+efjkE3V6ioIwy3tpqzyfdtq2bVvatm173/pbt25RyoG3FDLaxWlCCGMbPhx8fOC11/ROYnw2\nz2U0bdo03n77ba3yAA8eBxs+HKpVg5EjNd2lEKIQWrwYPvgA9uwpGkNFDukhjBgxgs2bN1M2h3f0\n6NGjmheEB5EjBCFEXpw8qd79bN26olEMtJCnHsLkyZPp378/mzZtuu9nzJgx9s6YhfQQ8k9yakty\nasseOVNS1OsNPv4YgoNt355Z3ktb5akgODs7MzCXG4wOdvAJvXKEIIR4mBEjoG5dGDJE7yTmUqAe\nwuXLlyldujSXLl3C29tb+1APGAc7ehSee069/FwIIbJbsgTee0/tG+RxZv1CQ5dbaCqKwsKFC1m4\ncGGBd1xQRpu+QghhHKdOwbBh6v0Nilox0EK+C0JSUhLz589n8+bNuLi45HvaCls9+ihkZBjj3spm\nGVeUnNqSnNrSKmdKinq9wbhx0LChJpu0Mst7aat8F4SSJUsyaNAgWrZsSWZmJu+++649cuXq3quV\nhRDCYuRI8PaGN97QO4l52dRDuHjxIrVr19Y+1EPGwVq0UGcrbNVK810LIUxo6VJ4913Yu7doDxU5\n5DqE7Dw8PADsUgzywtMTLlzQZddCCIM5dQqGDoU1a4p2MdCCw2+hqYX69eHIEb1TmGdcUXJqS3Jq\ny5act29Dnz7q1chPPKFdpuzM8l7ayuaCcOvWLS1y5EtQEOzf7/DdCiEM5p13oGZN9cwiYTvTzWUE\nEBMDTz8Nf/2l6W6FECaybBmMGaNeb+DurncaY7C1h5CngvCwuYwuXbpU4AA5hnrIH0pRoFw5dY7z\nSpU03bUQwgROn4annoLVq6FRI73TGIdDLkwz0lxGoJ56GhQEBw44fNdZmGVcUXJqS3JqK785LX2D\n9993XDEwy3tpK9PNZWRhhIIghHC8UaOgRg11JlOhLZt7CPaQl8OeBQtg/XrQYfYMIYROfvxRvQBt\n71512Fhk5ZAho8zMzBzXR0dH4+3tTUREBL/99luBQxREYKCcaSREUXLmDLz+ujp5nRQD+8hTQWjc\nuDGLFy9mf7ZPYC8vL7Zs2UJISAgdOnSwS8Dc+PqqjaXkZIfuNguzjCtKTm1JTm3lJaelbzB2LDRp\nYv9M2ZnlvbRVnq5UHjx4MH379s3xsapVqxZoxzVr1qRs2bK4uLjg6urKrl278vX6EiXU+c4PH5az\nDIQozG7cgJdegurV4a239E5TuOWph/Dyyy8zevRo6tWrd99jV65coVIBzv308vJiz549lC9f/v5Q\neRwHGzBAndfolVfyvXshhAkcOgQ9ekD79vDFF1C8uN6JjM0hPYSzZ8/y1ltvUatWLdq1a8d7773H\nqlWruHTpEsuXLy/wzm3tZ8sVy0IUXosXQ+vW6rQUs2ZJMXCEPBWE3r17s3btWs6cOcOXX36Jr68v\nGzZsoGfPnowePbpAO3ZycqJt27Y0atSIOXPmFGgbehcEs4wrSk5tSU5tZc+ZlgbDh6t3PVu/Xh0u\n0ptZ3ktb5amHsGLFCgYNGoSrqyt16tShTp069O/fH4BJkyYVaMfbtm2jSpUqXL16lXbt2uHj40OL\nFi3ytY3AQDh4EDIzwdmU0/QJIe516ZJ6k5syZSAqSs4mcrQ8FYTp06fz008/UadOHYKDg7M81r59\n+wLtuEqVKgBUrFiR7t27s2vXriwFITw8nJo1awLg7u5OUFAQISEhwN1qHRISQrlysGhRBFWrkuPj\nsox1nVHymH3Zss4oecy+bFlXvHgIzz8PbdtGEBYG5coZI59l+d6sRsgTEhJCREQECxYsALB+Xtri\noU3l48eP4+zsTJ06dWzemUVSUhIZGRmUKVOGW7du0b59ez766CNrcclPY6RbNwgLg549NYsnhHAg\nRYHZs+GTT+C//4VnntE7kXnZvans7e3N2bNnmT17Nl999RVRUVEF3pnF5cuXadGiBUFBQTRt2pTO\nnTsX+EhDzz5C9m8ORiU5tSU5tZOUBO3bRzB3LmzfbtxiYIb3UgsPHTIqVqwYbdu2pW3btgDs2rWL\nr776iszMTOrVq0dISAjFiuXvxmteXl73XeRWUEFBMH++JpsSQjjQ6dPqKaWVKqnFoGRJvROJPF2H\nEB0djZeX133rjx8/TkREBKmpqVStWpUOHTpQqlQp20Pl47AnOhpatoTz57Oud3FxoUGDBiiKgouL\nC7NmzeKpp56yOZsQwna//goDB8KHH6q3v3Ry0jtR4eCQ+yG0adOGN998k6eeeorKlSvn+JzY2Fi2\nbt1Knz59ChzGGioffyjLvRFOnYLHHru7vkyZMty8eROAdevWMX78+CJz2CeEUWVmwj//CXPnwg8/\nQLNmeicqXBxyYVqVKlXYtWsXL7zwAn5+fvTt25cZM2Zw5swZ63M8PT01KQb55eQEDRo8eCrsGzdu\n5HhFtK3MUmAkp7YkZ8HExUGXLrBxo3pKqaUYGC1nTsyQUQt5Gvx/6623aHJnRqmMjAwOHjzIjh07\nGDlyJN27dycsLMyuIR/G0lgODb27Ljk5meDgYFJSUrh48SIbN27UL6AQRdz+/eqZgN26wcSJ4Oqq\ndyKRE5vvhzB37lxe0Xgyofwe9syfD5s2wXff3V1375DRzp07eeWVVzh06JCmOYUQD/fddzBiBMyc\nCbnMkSk04pAho9yEhISQkJBgyyY08bBTT5988kmuXbvGtWvXHBdKiCIuNVVtGH/yifqFTYqB8dlU\nEObPn5/rrTUdyddXbSqnpOT8+LFjx8jIyKBChQqa7tcs44qSU1uS8+H++gtCQtRfd+8Gf//cn2uG\n99MMGbWQvwsIsqlVq5ZWOWzi5gZ16sCRI9CwobrO0kMAdVbVb7/9Fic5t00Iu9u8GV54AYYNg3ff\nlXnGzMS091TOLixM/UYyaJB9MgkhHkxRYNo0tWn87bfqPQyEY9naQ7DpCMFIgoJg3z6FkydPZbkH\ndKVKlSgnUyYKYVeJieqNqk6ehJ07QYN51oQOTH8wd+bMGU6cOIGHRzQbNvyIr68vjRs3pnHjxgQH\nB9OxY0fOnTvH6dOnOXbsGImJiZrt2yzjipJTW5IzqxMn4Mkn1akn/vgj/8XADO+nGTJqwdRHCGfP\nnsXb2/u+9YmJiTg7O5ORkcGuXbt4/PHHrY+1atWqyPzlCmFvP/8Mr74Kn36q/iptOnMrND0E9XVw\n6pRCjRrpZGRk4OrqiouLix0SClG0ZWSot7ZcuBCWLYM7160KnUkPIZsDB5zw9nbFVS6FFMIurl2D\nfv3UorBnD1SsqHcioRXT9xCyc+S9Ecwy9CQ5tVWUc+7ZA40aQXAw/PabNsXADO+nGTJqodAdIeh1\nsxwhCrv582HMGPj3v+UOhYVVoeshVK8O587ZIZQQRdTt2/B//wdbtsCPP0L9+nonErnRdS4jI4qP\nV6fZFULY7vx5aNECrl+HXbukGBR2ha4gBAY++N4IWjLLuKLk1FZRyblhg3r2UO/esHQplCmjTa7s\nzPB+miGjFgpdQXjYzKdCiAdTFHX6iRdfhO+/h1Gj5PqCoqLQ9RDmzlXHOr/5xg7BhCjkEhLUex1f\nuKBeX1C9ut6JRH5IDyEbOUIQomCOHoWmTdVTSbdskWJQFBW6guDnp06wdfu2/fdllnFFyamtwphz\n2TJo2RJGj1ZPKy1Rwn65sjPD+2mGjFrQrSBkZGQQHBxMly5dNN2umxt4e6v3RhBCPFh6uloERo2C\ntWvV4SJRdOnWQ/jiiy/Ys2cPN2/eZOXKlVlD2dBDUBR46SVo00b+cQvxIFeuqLe1dHWF//0PNL6h\noNCBKXsIFy5cYPXq1bzyyis2hc+N9BGEeLDISHUKimbNYPVqKQZCpUtBGD58OJMmTcLZTvfWa9RI\nnZfd3swyrig5tWXmnIqi9gi6dIGZM9Vpq/WeENgM76cZMmrB4XMZ/fLLL1SqVIng4OAHvsnh4eHU\nvHOnDXd3d4KCgggJCQHu/uVkXwZ1OT09grNn4fDhEPz8cn++rcsW9tq+Vsv77xwuGSWPvJ+OWbaw\nLDdtGsIbb6jLU6ZAt27GyGuG93P//v2GymNZjoiIYMGCBQDWz0tbOLyHMHbsWL777juKFStGSkoK\nCQkJ9OzZk2+//fZuKBt7CAD/+Ic6Pe+//qVVciHMKyZGnZCubl31Wp1SpfROJOzB1h6Crhembd68\nmcmTJ7Nq1aos67UoCMeOQevW6lwsxQrdnK5C5N1vv0FYmPol6a235KrjwsyUTeV7OdnpX6ePj3pv\n13Xr7LJ5wDzjipJTW2bJuXFjBJ9+qp5tt3QpvP22MYuBGd5PM2TUgq7fnVu1akWrVq3stv3wcFiw\nAJ55xm67EMKQ4uPh/ffVAhAVBZ6eeicSZlDo5jK692Xx8epRwpkzUL68dvmEMLJDh6B7d+jYEaZM\ngeLF9U4kHMX0Q0b25O6uHh0sWqR3EiEcY9EitXf20UfqaaVSDER+FOqCAHeHjezBLOOKklNbRsyZ\nlqb2CN5/H9avV6euNmLOnJghpxkyaqHQF4TQULh4UT2MFqIwunRJ/Xd+8qTaLwgM1DuRMKtC3UOw\nGDtW/QYc8hE2AAAXNklEQVQ1aZIG4YQALl26xNtvv01UVBTu7u54eHgwbdo06tSp49Ac27ZBnz7w\n6qvwwQfgXOi/4okHMfV1CLnRuiAcPw4hIXJNgtCGoig0a9aMgQMHMnjwYAAOHjxIQkICzZs3d1AG\nmDVLnXriv/+VM+mESprKeVCvHnh5qdP7asks44qSU1tTp06lePHi1mIA0KBBA4cVg6QkdUbfefNg\nx47ci4FZ3k8z5DRDRi0UiYIA6sU59moui6IlOjqaJ554Qpd9nz4NTz2lDg1t3w61aukSQxRSRWLI\nCODGDXj8cfU/lEz1K2wxc+ZMoqOj+eKLLxyyv/R0tVewciV89516SukbbxjzqmOhLxkyyqNHH4Vn\nn5VrEoTt/Pz82LNnj133kZCgTjfx0kvg4QEjRkDZsrB5MwwdKsVA2EeRKQig/TUJZhlXlJzacnZ2\n5vbt28yZM8e67uDBg/xh4004zp5VG8UdOkC1amqz+Omn4cAB2LNHPTKoXz/v2zPL+2mGnGbIqIUi\nVRDatIHLl+HPP/VOIszup59+Yv369dSuXRt/f3/ee+89qlSpkq9tZGaq1w18+KF6l79GjdTl116D\nv/5S72T2+utqcRDCEYpMD8HivfcgJUWd40WIvEpPTyc+Pj7LugoVKuR7tt6UFNi4Ue0HrFoFZcpA\n167qz1NP6X/3MmFuch1Cltc9vCCcOAEtW6rXJLi6FjCgKPQURSEjI8P6gT906FDmzZtHsTsXsqSl\npTF//nz69+9vfX6xXC5yuXIFfv1VLQIbN6pHA127qrexrFvXMX8eUTRIUzmf6taF2rW1uSbBLOOK\nkjP/xo4di6urK8WKFaNYsWJ8/fXXpKenW//DZWRkMGDAAOvjrq6ubNu2DVC/lBw9ChMnqj2AunXV\n4Z8ePdSZdzdvhpEj7V8MjPR+PogZcpohoxaKXEEA+054JwqHCRMmkJmZSWpqKrdu3eLvv//mypUr\nnDp1iu+//56rV69y48YNkpKSSEtLIzU1k7S0p60f9B06wLlzan/g8uW7ZwzJKc/CyIrckBGop/TV\nqAEHD6q/ClEQCQnqkebKlbBmjXo1vKUfEBgop4YKx5MeQpbX5a0gAHzyiXqxz5o18h9X5N3Zs2oz\neOVK2LkTmjdXC0DnznI2kNCf9BAK6N134epVdT6YgjLLuKLkLLjMTNi9W51J1HJq6C+/RDBkCMTG\nGvvUUCO+nzkxQ04zZNRCkZ3709VV7SO0aQPt28vQkbgrOTnrqaGPPqoeBcyeDU8+CVu3qrPnClHY\nFNkhI4vx4yEiAn77TYaOijI5NVQUBtJDyPK6/BeE9HT1gqBXX4V7ZjMWhZzl1FDLUcDhw+qRYteu\n0KmTnA0kzEl6CDYqVkwdOnrvPbVhmB9mGVeUnKr0dPVocMQIqFMHOnaECxfUOYIuX4YfflDvRfyw\nYiDvp7bMkNMMGbWgSw8hJSWFVq1acfv2bVJTU+nWrRsTJkzQIwoAfn7qhUIvvwy//y5DR4XJjRvq\ncKDl1NBatdRhoGXL5NRQIbLTbcgoKSmJkiVLkp6eTvPmzZk8ebL1jlOOHDKySE9XryodOFA9a0SY\nV0zM3VNDIyOhRYu7p4ZWrap3OiHsx9YhI93OMipZsiQAqampZGRkUL58eb2iAOrQ0X//C61aqVeZ\nennpGkfkQ2amOj30ypXqT2ys+uH/xhvw009QurTeCYUwB916CJmZmQQFBeHh4UHr1q3x9fXVK4qV\nry+MGqUOHWVmPvz5ZhlXLIw5k5PVs4Jee029BmDAAEhLgy+/hEuX1OLevbt9ikFhfD/1ZIacZsio\nBd2OEJydndm/fz83btygQ4cOREREEHLPyd3h4eHUrFkTAHd3d4KCgqyPW/5ysi/Dgx/Py/LIkbBg\nQQQjRsC0aQ/bHzbvzxHL+/fvN1Segr6f9euH8OuvMH9+BPv2QePGIXTtCi1aRFCtmryf8u/Tfsv7\n9+83VB7LckREBAvuTMxm+by0hSFOO/3kk0945JFHeOeddwB9egj3OnZMHXeOjJSbmOvp3lNDV66E\nI0fk1FAhHsSUp51eu3bNerOR5ORkfv/9d4KDg/WIkiMfH/jnPyE0VP1AEo6Tlpb11NBOndS7h40b\nl79TQ4UQ+adLQbh48SJt2rQhKCiIpk2b0qVLF0JDQ/WIkqshQ9QPoZAQdaqCnGQ/NDcqo+e8cQOW\nLIG2bSPw8FD7OOXKwfLl6hlDM2eqRwYlSuidVGX099NCcmrHDBm1oEsPISAggL179+qx63wZMAA8\nPaFnT3Uem9699U5UeGQ/NbRlS2jQAL75Rk4NFUIvhughZKd3DyG7/fvV0xhHjIDhw+VipoKw3FDe\nMlXExYvqe9q1K7RrB6VK6Z1QCPOTuYyyvM4+BQHUu1898wy0bQtTpsjN0HOSmQmJiRAfrw4D3bih\nngK6bp1aBMqVu3sDmaZN5T0UQmtSELK8zn4FAdQPuu7doXx5WLgQIiOzniprVBERecuZknL3g9zy\noZ7brzmtS0iAkiXV6aLd3dVfK1SA1q3V6SJq19Ymp94kp7bMkNMMGcHEVyqbkbu7esvEgQPVI4XR\no/VOdFdGBty8mfMHeFQU/PHHwz/kMzPvfpBn/9Xy+9q1c3+sbFn1im8hhDnJEUIBZGbC2LEwdy4E\nBKjXKlh+vLzUXytWzHuvQVHUK2/z+k08p+ckJqpX5T7sA/1Bj7m5SX9ECDOTIaMsr3NMQbCIiYFT\np+DMGfUnOvru72/fzloknJwe/GHv4pK3D+3cHitTRsbkhSjqZMhIRzExEbRtG5LjY/HxdwtEdLRa\nEPz8cv9At+c59mYZ/5Sc2pKc2jFDRi1IQbATd3cIDlZ/hBDCDGTISAghCglTzmUkhBDCeKQg2MAs\n85tITm1JTm2ZIacZMmpBCoIQQghAeghCCFFoSA9BCCGEJqQg2MAs44qSU1uSU1tmyGmGjFqQgiCE\nEAIoAj2EFStW0KNHD44ePUq9evU0SiiEEPpxcXGhQYMG1uUXXniB0aNHy1xGWV93f0Ho06cPycnJ\nNGzYkHHjxmkTUAghdFSmTBlu3rx533ppKj9AYmIikZGRzJo1iyVLlmi+fbOMK0pObUlObZkhpxky\naqFQF4Sff/6Zjh07UqNGDSpWrGiK+zgLIcTDJCcnExwcbP1ZunSpJtst1ENGnTt3Zvjw4YSGhjJz\n5kzOnTvHpEmTNEwqhBCOZ68ho0JbEOLi4qhevToVK1bEycmJjIwMnJycOHv2rMZphRDCsQpVD+H8\n+fO0bt0aPz8//P39mTFjhub7WLZsGWFhYcTExBAdHc25c+fw8vJi69atmu3DLOOKklNbklNbZshp\nhoxa0KUguLq6MnXqVA4fPszOnTuZPXs2R48e1XQfixcvpnv37lnW9ezZk8WLF2u2j/3792u2LXuS\nnNqSnNoyQ06jZczeQxg7dqwm29XlBjmVK1emcuXKAJQuXZr69esTGxtL/fr1NdvHxo0b71v35ptv\narZ9gPj4eE23Zy+SU1uSU1tmyGm0jOnp6XbZru53TIuJiWHfvn00bdpUg63dYPr0BWRmZlrXBAUF\n0bp1aw22LYQQ+jl16hSrVq3Ksq5Tp074+Photg9dC0JiYiK9evVi+vTplC5dOt+vT05O5rXXXuPK\nlSu4uroCJ3n77eM4O6sjYZbC0LVrV9LS0khLS2PkyJF07NhRk/wxMTGabMfeJKe2JKe2zJBTj4yx\nsbGEh4fj4uKCq6sra9euJS0tLcvn24gRI+jSpYv1881Wup1llJaWRufOnenUqRNvv/12lsdq167N\n6dOn9YglhBCm5enpyV9//VXg1+tSEBRFYcCAAVSoUIGpU6c6evdCCCFyoEtB+OOPP2jZsiUNGjTA\nyckJgAkTJmg2lCOEECL/DHlhmhBCCMcz3FxGa9euxcfHhzp16jBx4kS941jldjFdXFwc7dq1o27d\nurRv394Qp6dlZGQQHBxMly5dAGNmjI+Pp1evXtSvXx9fX18iIyMNmXPChAn4+fkREBBAv379uH37\ntiFyDho0CA8PDwICAqzrHpRrwoQJ1KlTBx8fH9atW6drzlGjRlG/fn0CAwPp0aMHN27cMGROiylT\npuDs7ExcXJxhc86cOZP69evj7+/PmDFjCp5TMZD09HTF29tbiY6OVlJTU5XAwEDlyJEjesdSFEVR\nLl68qOzbt09RFEW5efOmUrduXeXIkSPKqFGjlIkTJyqKoiiff/65MmbMGD1jKoqiKFOmTFH69eun\ndOnSRVEUxZAZw8LClHnz5imKoihpaWlKfHy84XJGR0crXl5eSkpKiqIoivL8888rCxYsMETOLVu2\nKHv37lX8/f2t63LLdfjwYSUwMFBJTU1VoqOjFW9vbyUjI0O3nOvWrbPuf8yYMYbNqSiKcu7cOaVD\nhw5KzZo1levXrxsy58aNG5W2bdsqqampiqIoypUrVwqc01AFYfv27UqHDh2syxMmTFAmTJigY6Lc\ndevWTfn999+VevXqKZcuXVIURS0a9erV0zXX+fPnldDQUGXjxo1K586dFUVRDJcxPj5e8fLyum+9\n0XJev35dqVu3rhIXF6ekpaUpnTt3VtatW2eYnNHR0Vk+GHLLNX78eOXzzz+3Pq9Dhw7Kjh07dMt5\nrx9//FHp37+/oijGzNmrVy/lwIEDWQqC0XL27t1b2bBhw33PK0hOQw0Z/fXXX1SvXt26XK1aNZtO\nobKXey+mu3z5Mh4eHgB4eHhw+fJlXbMNHz6cSZMmWc9VBgyXMTo6mooVKzJw4EAaNmzIq6++yq1b\ntwyXs3z58owcOZIaNWrg6emJu7s77dq1M1xOi9xyxcbGUq1aNevzjPT/av78+TzzzDOA8XL+/PPP\nVKtWLcudycB4OU+ePMmWLVt48sknCQkJISoqCihYTkMVBMsZR0aWmJhIz549mT59OmXKlMnymJOT\nk65/hl9++YVKlSoRHByc64yHemcE9bL7vXv38sYbb7B3715KlSrF559/nuU5Rsh5+vRppk2bRkxM\nDLGxsSQmJrJw4cIszzFCzpw8LJcRMn/22WcUL16cfv365focvXImJSUxfvx4Pv74Y+u63P5Pgb7v\nZ3p6On///Tc7d+5k0qRJPP/887k+92E5DVUQqlatyvnz563L58+fz1Lh9JaWlkbPnj156aWXeO65\n5wD1m9ilS5cAuHjxIpUqVdIt3/bt21m5ciVeXl688MILbNy4kZdeeslQGUH9plKtWjUaN24MQK9e\nvdi7dy+VK1c2VM6oqCiaNWtGhQoVKFasGD169GDHjh2Gy2mR299z9v9XFy5coGrVqrpktFiwYAGr\nV6/m+++/t64zUs7Tp08TExNDYGAgXl5eXLhwgSeeeILLly8bKieo/5969OgBQOPGjXF2dubatWsF\nymmogtCoUSNOnjxJTEwMqampLFmyhK5du+odC1C/Hbz88sv4+vpmubK6a9eufPPNNwB888031kKh\nh/Hjx3P+/Hmio6NZvHgxbdq04bvvvjNURlAnN6xevTonTpwAYP369fj5+dGlSxdD5fTx8WHnzp0k\nJyejKArr16/H19fXcDktcvt77tq1K4sXLyY1NZXo6GhOnjxJkyZNdMu5du1aJk2axM8//4ybm5t1\nvZFyBgQEcPnyZaKjo4mOjqZatWrs3bsXDw8PQ+UEeO6556yTeZ44cYLU1FQee+yxguXUps2hndWr\nVyt169ZVvL29lfHjx+sdx2rr1q2Kk5OTEhgYqAQFBSlBQUHKmjVrlOvXryuhoaFKnTp1lHbt2il/\n//233lEVRVGUiIgI61lGRsy4f/9+pVGjRkqDBg2U7t27K/Hx8YbMOXHiRMXX11fx9/dXwsLClNTU\nVEPk7Nu3r1KlShXF1dVVqVatmjJ//vwH5vrss88Ub29vpV69esratWt1yzlv3jyldu3aSo0aNaz/\nj4YMGWKYnMWLF7e+n/fy8vKyNpWNljM1NVV58cUXFX9/f6Vhw4bKpk2bCpxTLkwTQggBGGzISAgh\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f444007ee50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence from the plot the area ABCDEA between the curve and the speed axis for speed change \n",
+ "for synchronous to 0.02 times synchrnous speed is the stopping time is which equal to: 9.36 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 205
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.7,Page No:176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=2200 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=0.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.12 # resistance of the rotor windings in ohm\n",
+ "Rs=0.075 # resistance of the stator windings in ohm\n",
+ "J=100 # combine inertia of motor and load in kg-m2\n",
+ "\n",
+ "#calculation\n",
+ "#(i) during starting of the motor\n",
+ "Sm=Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2) #slip at maximum torque\n",
+ "Wms=4*math.pi*f/P #angular frequency\n",
+ "x=Rs+math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Tmax=(3/2/Wms)*(Vl/math.sqrt(3))**2/x #maximum torque\n",
+ "tm=J*Wms/Tmax #mechanical time constant of the motor\n",
+ "ts=tm*(1/4/Sm+1.5*Sm) #time taken during starting\n",
+ "Es=1/2*J*Wms**2*(1+Rs/Rr_) #energy disspated during starting\n",
+ "\n",
+ "#(ii) when the motor is stopped by plugging method\n",
+ "tb=tm*(0.345*Sm+0.75/Sm) #time required to stop by plugging\n",
+ "Eb=3/2*J*Wms**2*(1+Rs/Rr_) #energy disspated during braking \n",
+ "\n",
+ "#(iii)required resistance to be inserted during plugging\n",
+ "tb1=1.027*tm #minimum value of stopping time during braking\n",
+ "x=1.47*(Xs+Xr_) #x=Rr_+Re\n",
+ "Re=x-Rr_ #Re is the required external resistance to be connected\n",
+ "Ee=3/2*J*Wms**2*(Re/(Re+Rr_)) #energy disspated in the external resistor\n",
+ "Eb1=Eb-Ee #total energy disspated during braking \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Time taken during starting is ts:\",round(ts,4),\"s\"\n",
+ "print\" Energy disspated during starting is Es:\",round(Es/1000),\"kilo-watt-sec\"\n",
+ "print\"\\n(ii)Time taken to stop by plugging is tb:\",round(tb,2),\"s\"\n",
+ "print\" Energy disspated during braking is Eb:\",round(Eb/1000),\"kilo-watt-sec\"\n",
+ "print\"\\n(iii)Minimum Time taken to stop by plugging is tb:\",round(tb1,2),\"s\"\n",
+ "print\" Required external resistance to be connected is Re:\",round(Re,2),\"ohm\"\n",
+ "print\" Total Energy dissipated during braking is Eb:\",round(Eb1/1000,2),\"kilo-watt-sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Time taken during starting is ts: 1.108 s\n",
+ " Energy disspated during starting is Es: 891.0 kilo-watt-sec\n",
+ "\n",
+ "(ii)Time taken to stop by plugging is tb: 3.08 s\n",
+ " Energy disspated during braking is Eb: 2673.0 kilo-watt-sec\n",
+ "\n",
+ "(iii)Minimum Time taken to stop by plugging is tb: 0.5 s\n",
+ " Required external resistance to be connected is Re: 1.35 ohm\n",
+ " Total Energy dissipated during braking is Eb: 1162.36 kilo-watt-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 206
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.8,Page No:184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "from sympy import *\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the delta connected Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "Pm=2.8*1000 # rated mechanical power developed\n",
+ "N=1370 # rated speed in rpm\n",
+ "#parameters referred to the stator\n",
+ "Xr_=5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=5 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "Xm=80 # no load reactance\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 #synchronous speed in rad/s\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2 #total impedance\n",
+ "T=(3/Wms)*(Vl**2*Rr_/s)/x #full load torque\n",
+ "Tl=T\n",
+ "K=Tl/(1-s)**2 #since Tl=K*(1-s)**2\n",
+ "\n",
+ "#(i) when the motor is running at 1200 rpm\n",
+ "N1=1200 #speed in rpm\n",
+ "s1=(Ns-N1)/Ns #slip at the given speed N1\n",
+ "Tl=K*(1-s1)**2 #torque at the given speed N1\n",
+ "\n",
+ "y=(Rs+Rr_/s1)**2+(Xs+Xr_)**2 #total impedance\n",
+ "a=Tl*(Wms/3)*y*(s1/Rr_) #Since T=(3/Wms)*(Vl**2*Rr_/s)/x and a=V**2\n",
+ "V=math.sqrt(a) #required voltage at the given speed N1\n",
+ "Ir_=V/((Rs+Rr_/s1)+1j*(Xs+Xr_))#rotor current\n",
+ "Im=V/(1j*Xm) #magnetizing current\n",
+ "Is=Ir_+Im #total current\n",
+ "Il=abs(Is)*math.sqrt(3) #line current\n",
+ "\n",
+ "#(ii)when the terminal voltage is 300 V\n",
+ "V1=300 #terminal voltage in V\n",
+ "s = Symbol('s')\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2 \n",
+ "T=(3/Wms)*(V1**2*Rr_/s)/x\n",
+ "\n",
+ "#Now we have to solve for the value of slip 's' from the given equation 104s**4- 188s**3 + 89s**2 - 179s + 25=0\"\n",
+ "coeff = [104,-188,89,-179,25] #coeffcient of the polynomial equation \n",
+ "s=np.roots(coeff) #roots of the polynomial equation\n",
+ "\n",
+ "T=K*(1-s[3].real)**2 #torque at the given terminal voltage of 300 V\n",
+ "N=Ns*(1-s[3].real) #speed at the given terminal voltage of 300 V\n",
+ "Ir_=V1/((Rs+Rr_/s[3].real)+1j*(Xs+Xr_))#rotor current\n",
+ "Im=V1/(1j*Xm) #magnetizing current\n",
+ "Is=Ir_+Im #total current\n",
+ "Il1=abs(Is)*math.sqrt(3) #line current\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Required torque is Tl:\",round(Tl,1),\"N-m\"\n",
+ "print\" Required motor terminal voltage is V:\",round(V,1),\"V\"\n",
+ "print\" Required line current is Il:\",round(Il,2),\"A\"\n",
+ "print\"\\n(ii)The roots of the polynomial equation are \"\n",
+ "print\" s1:\",round(s[0].real,3),\"s2:\",round(s[1].real,3),\"s3:\",round(s[2].real,3),\"s4:\",round(s[3].real,3)\n",
+ "print\" Hence Only s4:\",round(s[3].real,3),\"is valid\"\n",
+ "print\"\\nRequired torque is Tl:\",round(T,2),\"N-m\"\n",
+ "print\"Required speed is N:\",round(N),\"rpm\"\n",
+ "print\"Required line current is Il:\",round(Il1,2),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Required torque is Tl: 36.9 N-m\n",
+ " Required motor terminal voltage is V: 253.2 V\n",
+ " Required line current is Il: 17.89 A\n",
+ "\n",
+ "(ii)The roots of the polynomial equation are \n",
+ " s1: 1.818 s2: -0.079 s3: -0.079 s4: 0.147\n",
+ " Hence Only s4: 0.147 is valid\n",
+ "\n",
+ "Required torque is Tl: 41.94 N-m\n",
+ "Required speed is N: 1279.0 rpm\n",
+ "Required line current is Il: 16.88 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 207
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.9,Page No:199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected squirrel Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 # rated speed\n",
+ "\n",
+ "#the frequency variation is from 10 Hz to 50 Hz\n",
+ "fmin=10 \n",
+ "fmax=50\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "#(i)to obtain the plot between the breakdown torque and the frequency\n",
+ "K=0.1\n",
+ "k=[]\n",
+ "frequency=[]\n",
+ "torque=[]\n",
+ "for i in range (0,9):\n",
+ " K=K+0.1\n",
+ " f1=K*f\n",
+ " x=Rs/K+math.sqrt((Rs/K)**2+(Xs+Xr_)**2)\n",
+ " Tmax=(3/2/Wms)*(Vl/math.sqrt(3))**2/x\n",
+ " k.append(round(K,1))\n",
+ " frequency.append(round(f1))\n",
+ " torque.append(round(Tmax,2))\n",
+ "print\"K :\",k\n",
+ "print\"f :\",frequency,\"Hz\"\n",
+ "print\"Tmax :\",torque,\"N-m\"\n",
+ "\n",
+ "#plotting the values of Tmax vs f \n",
+ "plt.figure(1)\n",
+ "plt.plot(frequency,torque,'y')\n",
+ "plt.xlabel('$f$,Hz')\n",
+ "plt.ylabel('$Tmax$,N-m')\n",
+ "plt.grid(True)\n",
+ "plt.title('Torque vs frequency characteristic')\n",
+ "plt.show()\n",
+ "\n",
+ "#(ii) to obtain the starting torque and current at rated frequency and voltage\n",
+ "x=(Rs+Rr_)**2+(Xs+Xr_)**2\n",
+ "Tst=(3/Wms)*(Vl/math.sqrt(3))**2*Rr_/x #starting torque at 50 Hz frequency\n",
+ "Ist=(Vl/math.sqrt(3))/math.sqrt(x) #starting current at 50 Hz frequency\n",
+ "\n",
+ "K=fmin/fmax #minimum is available at 10 Hz\n",
+ "y=((Rs+Rr_)/K)**2+(Xs+Xr_)**2\n",
+ "Tst_=(3/Wms)*(Vl/math.sqrt(3))**2*Rr_/K/y #starting torque at 10 Hz frequency\n",
+ "Ist_=(Vl/math.sqrt(3))/math.sqrt(y) #starting current at 10 Hz frequency\n",
+ "\n",
+ "ratio1=Tst_/Tst #ratio of starting torque to the rated starting torque\n",
+ "ratio2=Ist_/Ist #ratio of starting current to the rated starting current\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"\\n(i)Hence from the plot we can see that for a constant (V/f) ratio breakdown torque decreases with frequency\"\n",
+ "print\"\\n(ii)Hence the required ratio of starting torque to the rated starting torque is :\",round(ratio1,3)\n",
+ "print\" Hence the required ratio of starting current to the rated starting current is :\",round(ratio2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K : [0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\n",
+ "f : [10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0] Hz\n",
+ "Tmax : [22.93, 31.18, 37.44, 42.22, 45.94, 48.89, 51.27, 53.24, 54.88] N-m\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEdCAYAAAAM1BBYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlYVGX7B/DvDCCC7NsAIgyiICAwkwgtaqCpbVipaeZG\naZYt7y+1UCsVs9dwQTOzsjJFzWx5tcTSNBUsKxVlXFBUUBRkGNlBdmae3x/qJALCyGHOOXB/rovr\n8sx2vvOA557z3OeckTDGGAghhHR6Ur4DEEIIEQYqCIQQQgBQQSCEEHITFQRCCCEAqCAQQgi5iQoC\nIYQQAFQQiAhoNBoMGjQINjY2ePvtt/mOIxhZWVmQSqXQ6XR8R+FE3759cfDgQYOf980332D48OHt\nkKjzkdB5CMJlZWUFiUQCAKioqEDXrl1hYmICAPjiiy8wbtw4PuMZzaJFi3DixAn8+OOPfEcRlKys\nLPTs2RP19fWQSvn9bCeVSpGRkYGePXu263qE9J47IlO+A5DmXb9+Xf9vb29vrFu3DoMHDzboNerr\n62FqKu5f8+XLl+Hv79/s/VqtVl8oyb3h4u/kXj9b3su66XNs+6ASK0I1NTV488030b17d3Tv3h0z\nZsxAbW0tACApKQkeHh5YunQp3NzcMGXKFFRXVyM6OhoODg4IDAzEsmXL0KNHD/3rSaVSXLx4Ub8c\nHR2NefPm6Zd37twJhUIBe3t7PPTQQzh16lSrcj722GNYs2ZNg9tCQkLw008/AQBmzJgBmUwGW1tb\nBAcHIy0trdFrREdHY+PGjVi6dClsbGywb98+xMbGYvTo0Zg4cSJsbW2RkJCA0tJSTJkyBe7u7vDw\n8MC8efP0Uyk6nQ5vvfUWnJ2d4ePjgzVr1jSYapHL5di3b59+nbGxsZg4caJ++Z9//sGDDz4Ie3t7\nKBQKJCcn6++LiIjA/PnzMWDAANjY2GD48OEoLCzU3//nn3/qn+vp6YmEhAQcPXoUrq6uDTZq27Zt\ng0KhaHIcq6qqMGvWLMjlctjZ2WHgwIGoqanR379582Z4eXnB2dkZixcv1t9+5MgRPPDAA7C3t4e7\nuzveeOMN1NXV6e+XSqX49NNP0bt3b/j5+QEA/u///g+enp6wtbVFaGgo/vzzT/3jdTodFi9ejF69\nesHGxgb9+/dHTk4OBg0apP/dWltb44cffgBw978buVyOpUuXIjg4GNbW1tBqtZDL5di/f78+e2ho\nKGxtbeHq6oq33noLAPTrsrOzg42NDf755x9s2LABAwcO1L92Wloahg4dCkdHR7i6uuLDDz9sclxJ\nExgRBblczvbt28cYY2zevHnsgQceYPn5+Sw/P589+OCDbN68eYwxxg4cOMBMTU3ZnDlzWG1tLauq\nqmKzZ89mgwYNYsXFxSw7O5sFBgayHj166F9bIpGwzMxM/XJ0dLT+9Y4fP85cXFzYkSNHmE6nYwkJ\nCUwul7OampoWM2/cuJE99NBD+uW0tDRmZ2fHamtr2e7du1m/fv1YaWkpY4yx9PR0plarm3yd2/Mw\nxtiCBQuYmZkZ+/nnnxljjFVVVbGnn36avfLKK6yyspJdu3aNhYWFsbVr1zLGGPvss89Ynz59WE5O\nDisqKmIRERFMKpUyrVbbaGwZYyw2NpZNmDCBMcZYTk4Oc3R0ZLt27WKMMbZ3717m6OjICgoKGGOM\nPfzww6xXr17swoULrKqqikVERLA5c+YwxhjLyspi1tbWbOvWray+vp4VFhayEydOMMYYCwgI0L8m\nY4w9/fTTbMWKFU2+/1dffZVFRkay3NxcptVq2d9//81qamrYpUuXmEQiYdOmTWPV1dXsxIkTzNzc\nnKWnpzPGGDt27Bg7fPgw02q1LCsri/n7+7OPPvpI/7oSiYQNGzaMFRcXs+rqasYYY5s3b2ZFRUVM\nq9Wy+Ph45urqqv9dL126lAUFBbHz588zxhg7ceIEKyws1L/W7X9Dzf3d1NbWMsYY8/LyYkqlkuXk\n5OjXffvv4f7772ebN29mjDFWUVHB/vnnH/2YSiQS/e+OMcbWr1/PBgwYwBhjrKysjLm6urIVK1aw\nmpoaVl5ezg4fPtzkuJLGqCCIxO3/WXx8fBpsTH777Tcml8sZYzcKQpcuXRpssHv27Ml+++03/fIX\nX3zBPDw89Mt3KwivvPJKg40xY4z5+fmx5OTkFjOXlZWxbt26sStXrjDGGHvnnXfYlClTGGOM7du3\nj/n6+rJ//vmnwX/upkRHR7P33ntPv7xgwQL28MMP65fz8vKYubk5q6qq0t+2ZcsWFhkZyRhjLDIy\nUl8cGGNsz549DTYqdxaEBQsW6AtCXFwcmzhxYoM8w4cPZwkJCYwxxiIiIth///tf/X2ffvope/TR\nRxljjC1evJiNHDmyyfcUFxfHxo8fzxhjrLCwkFlaWrK8vLxGj9NqtczCwoKdPHmy0X23CsLVq1f1\nt4WFhbGtW7c2uc6VK1eyZ555Rr8skUjYgQMHmnzsLfb29vp1+/r6sh07djT5uDv/hpr7uzl48CBj\n7MaYr1+/vsH9t/8eBg0axBYsWMDy8/MbPObWe26uIGzZsoXdd999d31PpHk0ZSRCubm58PLy0i97\nenoiNzdXv+zs7IwuXbo0ePztU0Senp6tXtfly5cRHx8Pe3t7/U9OTg7UanWLz7W2tsYTTzyBb7/9\nFgCwdetWjB8/HgAwePBgvP7663jttdcgk8nw8ssvo7y8vNW5PDw8GmSsq6uDm5ubPuMrr7yC/Px8\nAIBarW7T+//hhx8avP9Dhw4hLy9P/xhXV1f9vy0sLPS9n+zs7GabrOPHj0diYiIqKyvx/fffY9Cg\nQZDJZI0eV1BQgOrqavj4+DSb8fb1W1paoqKiAgBw/vx5PPnkk3Bzc4OtrS3efffdBtNZABqMCwAs\nX74cAQEBsLOzg729PUpLS1FQUAAAyMnJuWuO2zX3d3P73+md677dunXrcP78efj7+yMsLAy//PJL\nq9Z7tzEnLaOCIELu7u7IysrSL1+5cgXu7u765VtHJt3i5uaGK1euNHj87SwtLVFZWalfvn1j7+np\niXfffRfFxcX6n+vXr2Ps2LGtyjpu3Dh8++23+Pvvv1FdXY3IyEj9fW+88QZSUlJw5swZnD9/HsuW\nLWvVa0okkgbvsUePHjA3N0dhYaE+Y2lpqX7OuqX3361bN/1GFADy8vL0r+/p6YmJEyc2eP/l5eWI\niYlpMaenpycyMzObvM/DwwP3338/tm3bhs2bNzfoWdzOyckJXbt2RUZGRovru9P06dMREBCAjIwM\nlJaW4r///W+jQ1RvH8c//vgDy5Ytww8//ICSkhIUFxfD1tZW3+vo0aNHq3O05u/mzr/T2/Xq1Qtb\ntmxBfn4+Zs+ejdGjR6Oqququz7m13tv7YcQwVBBEaNy4cfjggw9QUFCAgoICvP/++81uUABgzJgx\n+PDDD1FSUoKcnBysXr26wX8shUKBb775BlqtFrt3725wLPhLL72Ezz//HEeOHAFjDBUVFfjll18a\nHAF1N48//jguX76MBQsW4LnnntPfnpKSgsOHD6Ourg6WlpYNDqm9E7vjiJI7l93c3DBs2DDMnDkT\n5eXl0Ol0yMzM1L+PMWPG4OOPP8bVq1dRXFyMuLi4Ru9/69atqK+vR0pKCv73v//p75swYQISExOx\nZ88eaLVaVFdXIykpCVevXm02zy3PP/88fv/9d/zwww+or69HYWEhTpw4ob9/0qRJWLJkCU6fPo2R\nI0c2+RpSqRQvvvgiZs6cCbVaDa1Wi7///lt/EMHdXL9+HdbW1rC0tER6ejo+++yzuz6+vLwcpqam\ncHJyQm1tLd5//32UlZXp7586dSrmzZuHjIwMMMZw8uRJFBUVAQBkMlmD4tfWv5vNmzfr9/BsbW0h\nkUgglUrh7OwMqVTabKF94oknoFarsWrVKtTU1KC8vBxHjhxp1ToJFQRReu+99xAaGorg4GAEBwcj\nNDQU7733nv7+Oz9FLViwAF5eXvD29sajjz6KSZMmNdiIrVq1ComJibC3t8eWLVvwzDPP6O/r168f\nvvzyS7z++utwcHBA7969sXHjxlZn7dKlC0aOHIl9+/bh+eef199eVlaGadOmwcHBAXK5HE5OTs2e\ndHbnHsGdywCwceNG1NbWIiAgAA4ODnj22Wf10zovvfQShg8fjpCQEISGhmLUqFEN3v+iRYuQmZkJ\ne3t7xMbG6qe1gBuf5H/++WcsXrwYLi4u8PT0RHx8fIPnN5fN09MTv/76K+Lj4+Ho6AilUomTJ0/q\nHzty5EhcuXIFzzzzDLp27drsGC5fvhxBQUHo378/HB0dMXfuXP367/aJefny5diyZQtsbGwwbdo0\nPPfcc42y3u7RRx/Fo48+Cl9fX8jlclhYWDSYXps5cybGjBmDYcOGwdbWFi+99BKqq6sB3Dgya/Lk\nybC3t8ePP/7Y7N9NS5/wb/ntt9/Qt29fWFtbY8aMGdi6dSvMzc1haWmJd999Fw899BAcHBxw+PDh\nBmNubW2NvXv3IjExEW5ubvD19UVSUlKr1kmMfGKaXC6HjY0NTExMYGZmhiNHjiA2NhZfffUVnJ2d\nAQAffvghHn30UWNF6pSSkpIwceJEZGdn8x2FF0I6ual3795Yu3atweeXENIejHrGkkQiQVJSEhwc\nHBrcNnPmTMycOdOYUQjh3bZt2yCRSKgYEMEw+imsTe2QGHEnhdzU2l33jorv9x8REYH09HRs2rSJ\n1xyE3M6oU0Y9e/aEra0tTExM8PLLL+Oll17CwoULsX79ev2ZkfHx8bCzszNWJEIIITcZtSCo1Wq4\nubkhPz8fQ4cOxerVq+Hn56fvH8ybNw9qtRrr1q0zViRCCCE38Xa104ULF8LKygqzZs3S35aVlYWo\nqKhG18rp3r17gxNaCCGEtMzHx8egc1iMdohFZWWl/kzUiooK7NmzB0FBQQ3O+Ny+fTuCgoIaPTc3\nNxfsxmU2BP2zYMEC3jN0hIyUk3IK/YfvnDqdDpWVGcjN/QpnzkzAX3954NAhd6SljcfVq1+iouKC\n/nwcQxitqazRaPTHt9fX12P8+PEYNmwYJk2aBJVKBYlEAm9vb6xdu9ZYkTh3+9nDQiWGjADl5Brl\n5JaxczLGUF19ESUlSfofxnSws4uEnV0EvLwWwMLCp80HSxitIHh7e0OlUjW63ZCTnAghpDNgjKGq\nKrNBAQAY5wXgTuL+5hSBiY6O5jtCi8SQEaCcXKOc3OI6Z0sFQC6PbZcCcCdRfIWmRCKBCGISQkir\ntFQA7OwiOCkAhm476VpGHBLDNVPEkBGgnFyjnNwyNCdjrEET+O+/e0ClikBJSRLs7CKgUCThgQdy\nEBCwGe7uU2Fp2YuXkydpyogQQjjW9B4A9J/+jTUFZCiaMiKEkDZqqQBwNQVkKEO3nVQQCCHEQEIt\nAHeiHgKPxDD/KYaMAOXkGuVsu/r6Uly79h3Onp2ENWtcmugBZPPeA2gr6iEQQkgzKiszUFiYiMLC\nnSgvPwpb24FwdHwSvXoNxwMPPC/Kjf7d0JQRIYTcpNPVo6zs75tFIBH19SVwcHgCTk5RsLd/BCYm\n3fiOaBDqIRBCiAHq60tRVLQbBQWJKCraja5de8DRMQqOjlGwtu4HiUS8M+vUQ+CRkOc/bxFDRoBy\nco1yNlRVlYns7I+gUg3B3397IC8vAba2DyE0NBWhoanw9n4fNjb9my0GYhlPQ1EPgRDS4f07FbQT\nhYWJqKsrgqPjk/Dw+I8op4LaC00ZEUI6pBtTQb/d7Afsgrm5B5ycbk0FhYp6Kqi1qIdACOm0qqoy\nUVBw66igI7C1HQBHxyfh6Pgkunb15Due0VEPgUdimFcUQ0aAcnKto+ZkTIuSkj+RmTkbR44E4Pjx\nh1BRcQrdu7+OBx7IRXDwr+je/VXOi4FYxtNQ1EMghIjKv1NBO1FUtAtdunSHo+OT6NNnPaytm28E\nk5bRlBEhRPCqqi6isDARBQWJKC8/fHMqKKrTTgW1FvUQCCGix5gWpaW3HxVUAEfHJ+DoGAV7+6Ew\nNbXiO6IoUA+BR2KYVxRDRoByck0MOevry7F9eyzOnp2Ev/5yxYULr0EiMYWf3zo8+KAaffp8DWfn\nZwRRDMQwnveCegiEEN7odHUoLt6DvLxNKCrahcJCP9jYTIa39yJ07erFd7xOh6aMCCFGxRhDeXkK\nNJpNuHbtO1hY9IRMNhEuLmNhZubId7wOhXoIhBBBqq6+DI1mMzSazdDpaiGTTYRMNgGWlr34jtZh\nUQ+BR2KYVxRDRoByco2vnHV1JcjN/QqpqQ8jJaUfampy4Oe3DuHhGfD2jm1UDGg8+WXUHoJcLoeN\njQ1MTExgZmaGI0eOoKioCGPHjsXly5chl8vx/fffw87OzpixCCEc0ulqUVS0GxrNJhQV7YG9/SPw\n8JgBR8fHIJWa8x2P3IVRp4y8vb1x7NgxODg46G+LiYmBk5MTYmJisGTJEhQXFyMuLq5hSJoyIkTQ\nbvQFjiAvbxPy87+DhYUfXF0nwtn5WZiZObT8AqRdCLqH4O3tjZSUFDg6/ts46tOnD5KTkyGTyZCX\nl4eIiAikp6c3DEkFgRBBqqq6qO8LALjZFxgPC4uePCcjgMB7CBKJBI888ghCQ0Px5ZdfAgA0Gg1k\nMhkAQCaTQaPRGDMSp8QwryiGjADl5BqXOevqipGbuxbHjw/A8ePhqK29Bn//TQgLOwe5fF6bikFn\nHE8hMWoP4dChQ3Bzc0N+fj6GDh2KPn36NLhfIpE0+x2l0dHRkMvlAAA7OzsoFApEREQA+PeXw/fy\nLULJI+ZllUolqDxiX27reOp0dQgKqoBGswn79++GtXV/REXFwMHhURw8+Bdyc6sQESERzPtt72Wh\n/n0mJSVhw4YNAKDfXhqCt8NOFy5cCCsrK3z55ZdISkqCq6sr1Go1IiMjacqIEAFgjKGs7O+b5wv8\ngG7dAiGTTYSz82iYmdGBH2Ig2CmjyspKlJeXAwAqKiqwZ88eBAUFYcSIEUhISAAAJCQk4OmnnzZW\nJEJIEyorM3DpUiwOH+6Nc+emwNy8B/r1S4FSmQx396lUDDowoxUEjUaDgQMHQqFQIDw8HE8++SSG\nDRuGOXPmYO/evfD19cX+/fsxZ84cY0Xi3K1dNyETQ0aAcnKtpZx1dYW4evVTHD/+AFJTH0J9fTEC\nAraif/8z8PJ6BxYWckHkFAqx5DSU0XoI3t7eUKlUjW53cHDA77//bqwYhJCbdLoaFBbuRF7eJpSU\nJMHR8TF4eb0He/thkErN+I5HeECXriCkE2GMobT0EDSaTcjP/xFWViE3+wKjYGpqw3c8wjFDt510\ntVNCOoHKyvPQaDZBo9kMqdQSMtlEhIaq0LVrD76jEQGhaxlxSAzzimLICFBOLjCmQ0HBz0hNfRhf\nf30/tNoKBAZuQ//+p+HlNUeQxUDI43k7seQ0FO0hENLBaLWVyMtLQE7OSpia2qFHj1kICHBCr15D\n+I5GBI56CIR0ELW1Gly9uga5uZ/DxuZB9OgxE7a2A5s92ZN0fNRDIKSTqag4g+zsFSgo2AYXl7FQ\nKv+EpaUv37GICFEPgUNimFcUQ0aAcraEMYbi4n04efJxqFSD0bWrF8LCzsPX97MmiwGNJ7fEktNQ\ntIdAiIjodLW4du075OSsgE5Xix49ZiIwcBtMTLryHY10ANRDIEQE6upKoFavRU7Oalha9kGPHrPg\n4DAcEgnt5JPmUQ+BkA6kquoScnI+gkazCY6OTyAoaCesrRV8xyIdFH284JAY5hXFkBGgnGVlh5GW\n9iyOHesPqbQrQkNPwt9/0z0Xg84+nlwTS05D0R4CIQLBmBYFBTuQnR2P2tqr8PB4E35+X8PU1Jrv\naKSToB4CITzTaiuQl7cB2dkrYWbmhB49ZsHJ6RlIpfR5jbQN9RAIEYmaGjWuXv0EavUXsLUdCH//\nBNjYPEgnkhHeUA+BQ2KYVxRDRqBj57x+/TTS01/A0aMBqK8vgVL5F/r23QZb24farRh05PHkg1hy\nGor2EAgxghsnku1FdnY8KipOonv31xEengEzM0e+oxGiRz0EQtrRjRPJvkV2djwABg+PmZDJnodU\nas53NNIJUA+BEAGoqytCbu5aXL36Cbp1C4SPzzLY2w+j/gARNOohcEgM84piyAiIN2dVVSYuXHgD\nhw/3QmVlOoKDf0VIyJ6bZxXzVwzEOp5CJZachqI9BEI4UFr6F7Kz41FSkgx395fQv/9pmJu78x2L\nEINQD4GQe3TjRLKfkJ29HLW1Gnh4zICr6wswNbXiOxohAKiHQIhRFBfvQ0bGTEilFvD0fBtOTk9D\nIjHhOxYhbUI9BA6JYV5RDBkB4easrDyPU6dG4Ny5l+DlNQ9lZR/C2XmU4IuBUMfzTpSTX0YtCFqt\nFkqlElFRUQCA2NhYeHh4QKlUQqlUYvfu3caMQ0ir1dUV4cKFN3H8+IOwtR2A/v3PwMVlNB01RDoU\no/YQVqxYgWPHjqG8vBw7duzAwoULYW1tjZkzZ971edRDIHzR6eqQm/s5Ll9eBCenkfD2fh9durjw\nHYuQVjF022m0PYScnBz8+uuvmDp1qj4gY4w29ESQGGMoLPwFKSnBKCxMREjIPvj5fU7FgHRoRisI\nM2bMwLJlyyCV/rtKiUSC1atXIyQkBFOmTEFJSYmx4rQLMcwriiEjwG/O69dP4+TJ4cjImAUfn+UI\nDv4NVlZBTT6WxpNblJNfRjnKaOfOnXBxcYFSqWwwkNOnT8f8+fMBAPPmzcOsWbOwbt26Jl8jOjoa\ncrkcAGBnZweFQoGIiAgA//5y+F6+RSh5xLysUqmMvv4HHwzApUvzsWfPVri6TsSoUb9AKjUTxHi0\ndZmP8ezIy0Idz6SkJGzYsAEA9NtLQxilh/DOO+9g06ZNMDU1RXV1NcrKyjBq1Chs3LhR/5isrCxE\nRUXh1KlTjUNSD4G0I52uBjk5q3DlylLIZBMgl8+HmZkD37EIaTNDt51GPzEtOTkZy5cvR2JiItRq\nNdzc3AAAK1euxNGjR7Fly5bGIakgkHbAGENBwTZkZsborzdkaenHdyxCOCPYpvItjDH9oXoxMTEI\nDg5GSEgIkpOTsXLlSmPH4dStXTchE0NGoP1zlpcfg0oVgayshfD1XYugoB33VAxoPLlFOfll9DOV\nIyIi9HNfmzZtMvbqSSdXU5OLixffQXHxb5DL34eb24uCP6mMEGOhaxmRTkGrrUR29nLk5KyCu/s0\neHrOhampDd+xCGlXdC0jQm7DmA4azRZcuvQObGzuR79+KbCw8OY7FiGCRNcy4pAY5hXFkBHgJmdp\n6V84fvwBXL26Cv7+WxAY+D3nxaAzjacxUE5+0R4C6XCqqy8jM3M2ysoOwdt7MWSy8ZBI6LMPIS2h\nHgLpMOrry3HlyofIzV0LD4//oEePt2Bi0o3vWITwhnoIpNNhTAu1ej2ysubD3n4o+vc/CXPz7nzH\nIkR0aD+aQ2KYVxRDRqD1OYuL9yMlpR80mgT07bsD/v4JRi0GHW08+UY5+UV7CESUKisvIDPzbVRU\nnEDPnstufkkNfTcBIW1BPQQiKnV1xbh8eRHy8jbC0/NtdO/+fzAx6cp3LEIEiXoIpEO68UU1a29+\nUc3TCAtLQ5cuMr5jEdKhUA+BQ2KYVxRDRqBhzsLCXUhJCUFh4c8ICfkdfn5rBVMMxDieQkY5+UV7\nCESwKirSkJExC9XVl+DjEw9HxyeoT0BIO6IeAhGcuroSXLr0DvLzf4SX13twd58OqdSM71iEiA71\nEIiolZb+jbNnn4e9/XCEhaXTF9UQYkTUQ+CQGOYVhZqRMS0uX/4Qp08/g169PoJa/ZwoioFQx/NO\nlJNbYslpKNpDILyrqcnF2bMTwVg9+vVLQdeuHgCS+I5FSKdDPQTCq8LCX3Du3FS4u78KL6936Mtq\nCOEQ9RCIKOh0Nbh4cQ7y87chIOAH2NkN4DsSIZ0e9RA4JIZ5RSFkrKw8j+PHH0B19WWEhqY2WQyE\nkLM1KCe3KCe/qCAQo2GMQa3egNTUh+DmNg2Bgf8TReOYkM6CegjEKOrry3D+/Cu4fv0kAgK2wsqq\nL9+RCOnw2q2HcPToUSxevBhZWVmor6/Xr+zkyZOGpySdSlnZEZw5Mw4ODsPQr98RmJhY8h2JENKE\nVk8ZjR8/Hi+88AL+97//ITExEYmJidixY0d7ZhMdMcwrGjMjYzpcubIUp05FwcdnKXx9P2t1MRDD\nWAKUk2uUk1+t3kNwdnbGiBEj2rQyrVaL0NBQeHh4IDExEUVFRRg7diwuX74MuVyO77//HnZ2dm1a\nBxGGmpo8pKdPglZbiX79jqJrV0++IxFCWtDqHsKePXvw3Xff4ZFHHkGXLl1uPFkiwciRI1u9shUr\nVuDYsWMoLy/Hjh07EBMTAycnJ8TExGDJkiUoLi5GXFxc45DUQxCVwsLdOHfuBbi5TYOX1zxIpXR0\nMyF8MHTb2eqCMH78eJw7dw6BgYGQSv+daVq/fn2rVpSTk4Po6Gi8++67WLFiBRITE9GnTx8kJydD\nJpMhLy8PERERSE9PbxySCoIo6HS1uHjxHeTnfwd//82ws3uY70iEdGqGbjtb3UNISUnB0aNHkZCQ\ngPXr1+t/WmvGjBlYtmxZg2Ki0Wggk924rr1MJoNGo2n16wmRGOYV2ytjZeUFHD/+IKqqMhAaqmpz\nMRDDWAKUk2uUk1+t3pd/8MEHcebMGQQGBhq8kp07d8LFxQVKpbLZgZRIJHe91n10dDTkcjkAwM7O\nDgqFAhEREQD+/eXwvXyLUPIYa3nbtndw9eoajBy5GO7uryI5ObnNr69SqQTz/jrCMo1n5xjPpKQk\nbNiwAQD020tDtHrKqE+fPsjMzIS3tzfMzc1vPLmVh52+88472LRpE0xNTVFdXY2ysjKMHDkSR48e\nRVJSElxdXaFWqxEZGUlTRiJSX1+OCxdeQ3n50ZvnFoTwHYkQcpt26yFkZWXp/61Wq+Hm5gbA8CqU\nnJyM5cuXIzExETExMXB0dMTs2bMRFxeHkpISaiqLRHn5MZw58xzs7CLQq9dHMDHpxnckQsgd2q2H\nIJfL9T8n2UENAAAarElEQVSvvfaa/t/34tbU0Jw5c7B37174+vpi//79mDNnzj29nlDc2nUTsrZm\nZEyH7Ox4nDz5GLy9/ws/vy/bpRiIYSwBysk1ysmvezoesC2f1h9++GE8/PCNhqODgwN+//33e34t\nYly1tRqkp0ejvr4E9913BBYWcr4jEUI4dE/XMlqzZg1ee+219sjTJJoy4l9R0V6kp0fD1TUacnks\nfccxISLQbj0EPlFB4I9OV4tLl+ZBo/kG/v4bYW8/mO9IhJBW4vzidgsXLmx2RQAwf/78Vq+so0tK\nStIfCiZUhmSsqsrEmTPPw8zMGaGhqejSxbl9w91GDGMJUE6uUU5+tdhU7tatG6ysrBr8SCQSrFu3\nDkuWLDFGRsIDjWYLjh+/HzLZ8wgKSjRqMSCE8MOgKaOysjJ8/PHHWLduHcaMGYNZs2bBxcWlPfMB\noCkjY6qvv46MjDdQWvoXAgK2wtpayXckQsg9apfDTgsLC/Hee+8hJCQEdXV1OH78OJYsWWKUYkCM\np7w8FceO9QMgQb9+x6gYENLJtFgQ3nrrLYSFhcHa2honT57EwoULYW9vb4xsoiOGY5ObysgYQ3b2\nRzh5chjk8lj06fM1TE2tjB/uNmIYS4Byco1y8qvFpvKKFSvQpUsXfPDBB/jggw8a3CeRSFBWVtZu\n4Uj7q63NR3p6NOrqCnDffYdhYdGT70iEEJ7QYaedWHHxfpw9Owky2QR4ey+icwsI6WDa7TuV76RW\nq+Hg4KC/0B0RD52uDllZC5CXl4A+fTbAwWEo35EIIQLQ6msZ3WnChAnw8/PDW2+9xWUeURPDvOJv\nv30LlWoQrl9PRWhoqmCLgRjGEqCcXKOc/LrnPYR9+/ZBp9Ph7NmzXOYh7aik5E+cPz8dAQHz4eHx\nJiSSe/48QAjpgAzqIVy8eBFubm6wsLBoz0yNUA+h7YqK9uLs2efh779FsHsFhBButdvlrwEgPj4e\nhw8fBgD8+eefOHTokGHpCC8KCnbg7NnxCAzcRsWAENIsgwpCWFgYLl26hEuXLmHAgAG4du1ae+US\nJSHOK2o0W3Hu3DQEBf0KO7uBgszYFMrJLcrJLbHkNJRBBSE7Oxvm5uZYsWIFIiMjcezYsfbKRTig\nVn+NzMyZCAnZCxubUL7jEEIEzqAewpYtWzBq1CiYm5ujoKAA27Ztw7Rp09ozHwDqIdyLnJzVyM5e\nhpCQ32Fp6ct3HEIID9q1hzB27FikpaUBAC5dugSNRmNYOmIUly9/iJycj6BQHKRiQAhpNYMKwvr1\n61FTU4OamhrU1taiT58+7ZVLlPieV2SM4eLFd6HRbIJS+UeTX3HJd8bWopzcopzcEktOQxl0HsK1\na9dQWFiI1atXo7y8HD4+Pnj22WfbKxsxAGMMGRkzUFqaDIUimb6/gBBiMIN6CBs3bsSkSZMAALW1\ntfj555+NUhCoh3B3jGlx/vwrqKg4jaCgXTAzs+M7EiFEANr1WkZmZmaIjo7GiBEj4Ofnh5ycHIMD\nEm7pdHVIT49GbW0ugoP3wNTUmu9IhBCRMqiHMG7cOMydOxepqan4/PPPMWDAgPbKJUrGnlfU6WqQ\nlvYs6utLEBT0a6uKgVjmPikntygnt8SS01AGX8zGz88PixYtwtSpU9GvX79WP6+6uhrh4eFQKBQI\nCAjA3LlzAQCxsbHw8PCAUqmEUqnE7t27DY3UKWm1lTh1agQkElP07bsdJibGvZwIIaTjMbiHkJqa\niv79+2PQoEHYu3cvXnjhhVavrLKyEpaWlqivr8eAAQOwfPly7Nu3D9bW1pg5c2bzIamH0EB9fRlO\nnXoSXbvK4ef3NaTSe75GISGkA2vX8xAAYN68ebCzs0NcXBwKCgoMeq6lpSWAGw1prVar/ypO2ti3\nXl1dEU6ceATdugWiT58NVAwIIZwxqCA4OTmhS5cuePzxx/HJJ5/g7bffNmhlOp0OCoUCMpkMkZGR\nCAwMBACsXr0aISEhmDJlCkpKSgx6TSFp73nF2loNVKoI2NoOQu/en97T5avFMvdJOblFObkllpyG\nMujj5e7du7F06VI4OjoiLCwMkZGRCAsLa/XzpVIpVCoVSktLMXz4cCQlJWH69OmYP38+gBt7H7Nm\nzcK6desaPTc6OhpyuRwAYGdnB4VCgYiICAD//nL4Xr6lPV6/tjYftrbvwcVlHLKyHkZOTjLv77c9\nl1UqlaDyiH2ZxrNzjGdSUhI2bNgAAPrtpSEM6iFs27YNI0eORGVlJVJSUnD69Gm8+uqrBq8UABYt\nWgQLC4sG37iWlZWFqKgonDp1qmHITt5DqKq6iBMnHoG7+6vw9KRvqCOEtA7nPQSdTtfgxY8ePQpL\nS0sMGjTIoGJQUFCgnw6qqqrC3r17oVQqkZeXp3/M9u3bERQU1OrX7AwqKtKhUj2MHj3epmJACGlX\nLRaE/v3747vvvoNKpUJycjK++eYbREVF4dlnn8Unn3zS6hWp1WoMHjwYCoUC4eHhiIqKwpAhQxAT\nE4Pg4GCEhIQgOTkZK1eubNMb4tOtXTeulJercOJEJLy9P0D37tM5eU2uM7YXysktysktseQ0VIs9\nhGnTpmHs2LEAgFGjRkEikWDAgAGoqqrSX/m0NYKCgnD8+PFGt2/cuNGAuJ1HWdlhnDo1Ar17fwIX\nF7peFCGk/bXYQ5gyZQpiYmLg5+fX6L5r167BxcWl3cLd0tl6CMXFSThz5ln06bMBjo5P8B2HECJS\nhm47WywIjzzyCExNTXH+/Hn4+PggPDwc4eHh6N+/P7Zv347p07mZyrhryE5UEAoLdyM9fSICAr6D\nvf1gvuMQQkSM86bys88+i927d+PixYv49NNP4e/vj3379mHUqFGIiYlpU9iOpq3zivn525GePgl9\n+/7cbsVALHOflJNblJNbYslpqBZ7CD/99BNefPFFmJmZoXfv3ujduzfGjx8PAFi2bFm7B+ws8vI2\nIzPzLQQH74a19X18xyGEdEItThmdP38eKpUKvXv3hlKpbHDfiRMnEBIS0q4BgY4/ZZSb+wWyst5H\nSMhv6NYtkO84hJAOgvMeghB05IKQnb0SOTmrEBLyOywte/EdhxDSgbT7xe1I8wyZV2SMIStrEXJz\nP4VSedBoxUAsc5+Uk1uUk1tiyWkoulQmDxhjuHhxLgoLd0KhOAhzcze+IxFCCE0ZGRtjOly48B+U\nlf2DkJDfYGbmyHckQkgH1a7fqUzahjEtzp2bisrKC1Ao9sHU1JbvSIQQokc9BA7dbV5Rp6vFmTPP\no6YmByEhv/FWDMQy90k5uUU5uSWWnIaiPQQj0GqrcebMjesR9e2bCBOTrjwnIoSQxqiH0M602gqc\nOvUUzMwc4e+/GVKpGd+RCCGdBB12KiD19aU4cWI4unbtgYCALVQMCCGCRgWBQ7fPK9bWFkClGgxr\nayX8/NZBIjHhL9htxDL3STm5RTm5JZachqKC0A5qatRQqSJgbz8UvXp9DImEhpkQInzUQ+BYdfUV\nnDgxBDLZZHh5vQuJRMJ3JEJIJ0XnIfCosjIDJ048Ag+P/0OPHjP4jkMIIQahuQyOVFSk4euvH4CX\n1zuCLgZimfuknNyinNwSS05DUUHgQHV1Nk6cGAp392lwd5/GdxxCCLkn1ENoI622GirVQDg7j4Gn\n59t8xyGEED36PgQjYozh3Lkp0GorEBCwlRrIhBBBoRPTjCg393OUlx+9eZ6BRBTzimLICFBOrlFO\nboklp6GMUhCqq6sRHh4OhUKBgIAAzJ07FwBQVFSEoUOHwtfXF8OGDUNJSYkx4nCipORPZGXFIjBw\nO0xNrfiOQwghbWa0KaPKykpYWlqivr4eAwYMwPLly7Fjxw44OTkhJiYGS5YsQXFxMeLi4hqHFNiU\nUU1NLo4d6w8/v6/g6PgY33EIIaRJgp0ysrS0BADU1tZCq9XC3t4eO3bswOTJkwEAkydPxk8//WSs\nOPdMp6tBWtpodO/+KhUDQkiHYrSCoNPpoFAoIJPJEBkZicDAQGg0GshkMgCATCaDRqMxVpx7duHC\n/6FLF1d4es5tdJ8Y5hXFkBGgnFyjnNwSS05DGe1MZalUCpVKhdLSUgwfPhwHDhxocL9EIrnrUTrR\n0dGQy+UAADs7OygUCkRERAD495fT3su+vhkoLU1GeflyFBQcbHT/LcbK05GXVSqVoPKIfZnGs3OM\nZ1JSEjZs2AAA+u2lIXg57HTRokWwsLDAV199haSkJLi6ukKtViMyMhLp6emNQwqgh1BWdhinTkVB\nqfwDlpZ+vGYhhJDWEGQPoaCgQH8EUVVVFfbu3QulUokRI0YgISEBAJCQkICnn37aGHEMVlOTh7S0\n0fDz+4qKASGkwzJKQVCr1Rg8eDAUCgXCw8MRFRWFIUOGYM6cOdi7dy98fX2xf/9+zJkzxxhxDKLT\n1eHMmTFwdX0RTk4j7vrYW7tuQiaGjADl5Brl5JZYchrKKD2EoKAgHD9+vNHtDg4O+P33340R4Z5l\nZs6Cqakt5PIFfEchhJB2RZeuuIu8vARcvvxf3HffEZiZ2Rl9/YQQ0hb0fQgcKS8/hszMt6BQJFEx\nIIR0CnQtoybU1ubj9OlR8PX9HN26Bbb6eWKYVxRDRoByco1yckssOQ1FBeEOOl09zpwZC5lsHJyd\nR/EdhxBCjIZ6CHfIyJiFiorTCA7+FRKJiVHWSQgh7YF6CG2g0XyLgoKf0K/fUSoGhJBOh6aMbrp+\n/QQyMv6Dvn23wczM4Z5eQwzzimLICFBOrlFOboklp6GoIACoqyvC6dMj0avXx7CyCuE7DiGE8KLT\n9xAY0+LkycfRrVtf9OoV3y7rIIQQPgjyWkZCdunSe2CsHj17LuE7CiGE8KpTF4Rr136ERvMtAgK2\nQipte39dDPOKYsgIUE6uUU5uiSWnoTrtUUYVFWm4cGE6goN3o0sXZ77jEEII7zplD6GurgTHj/eH\nl9c8uLpO4ux1CSFESAzddna6gsCYDqdOjYCFRU/07v0xJ69JCCFCRE3lFmRlLYRWWwYfH+6PKBLD\nvKIYMgKUk2uUk1tiyWmoTtVDKCj4GXl5X6NfvxRIpWZ8xyGEEEHpNFNGFRXpUKkGISgoETY24Rwl\nI4QQ4aIpoybU15chLe0ZeHsvpmJACCHN6PAFgTEd0tMnw9b2Ybi7T23XdYlhXlEMGQHKyTXKyS2x\n5DRUh+8hXLnyIWpr8xAQsJXvKIQQImgduodQWLgL585NRb9+R2Fu7t4OyQghRLjo+xBuqqzMQHp6\nNPr23UbFgBBCWqFD9hDq668jLe0ZyOULYGv7kNHWK4Z5RTFkBCgn1ygnt8SS01BGKwjZ2dmIjIxE\nYGAg+vbti48/vnGWcGxsLDw8PKBUKqFUKrF79+42rYcxhnPnpsDauj/c3adzEZ0QQjoFo/UQ8vLy\nkJeXB4VCgevXr6Nfv3746aef8P3338Pa2hozZ85sPqQB82BXrixDfv73UCj+gIlJV67iE0KI6Ai2\nh+Dq6gpXV1cAgJWVFfz9/XH16lUA4Ow6RUVFe5GTswL33XeEigEhhBiIlx5CVlYWUlNTcf/99wMA\nVq9ejZCQEEyZMgUlJSX39JpVVZdw9uxE+Pt/i65de3AZt9XEMK8ohowA5eQa5eSWWHIayuhHGV2/\nfh2jR4/GqlWrYGVlhenTp2P+/PkAgHnz5mHWrFlYt25do+dFR0dDLpcDAOzs7KBQKBAREQEA2Ldv\nNzIyXsfjj8+BvX2E/pd1635jLd/C1/o70rJKpRJUHrEv03h2jvFMSkrChg0bAEC/vTSEUc9DqKur\nw5NPPonHHnsMb775ZqP7s7KyEBUVhVOnTjUMeZd5MMYYzp6dCADw998EiUTCfXBCCBEhwV7LiDGG\nKVOmICAgoEExUKvV+n9v374dQUFBBr1uTs4qVFamwc/vCyoGhBDSBkYrCIcOHcLmzZtx4MAB/SGm\nu3btwuzZsxEcHIyQkBAkJydj5cqVrX7N4uIkXLkSh8DA7TAxsWzH9K1za9dNyMSQEaCcXKOc3BJL\nTkMZrYcwYMAA6HS6Rrc/9thj9/R61dVXcPbsOPj7b4KFhbyN6QghhIjyWkZabTVUqoFwdh4DT8+3\neUxGCCHC1eG/U/nGmcgvQqutREDAVuobEEJIMwTbVOZKbu5nKC9PgZ/fOsEVAzHMK4ohI0A5uUY5\nuSWWnIYS1dVOS0r+RFZWLJTKv2BqasV3HEII6VBEM2VUXZ2DY8fC4Of3JRwdH+c7EiGECF6HnTJK\nSxuN7t1fpWJACCHtRDQFoUsXV3h6zuU7xl2JYV5RDBkBysk1ysktseQ0lGgKQp8+CZBIRBOXEEJE\nRzQ9BBHEJIQQQemwPQRCCCHtiwoCh8QwryiGjADl5Brl5JZYchqKCgIhhBAA1EMghJAOi3oIhBBC\n7gkVBA6JYV5RDBkBysk1ysktseQ0FBUEQgghAKiHQAghHRb1EAghhNwTKggcEsO8ohgyApSTa5ST\nW2LJaSgqCIQQQgBQD4EQQjos6iEQQgi5J0YrCNnZ2YiMjERgYCD69u2Ljz/+GABQVFSEoUOHwtfX\nF8OGDUNJSYmxInFODPOKYsgIUE6uUU5uiSWnoYxWEMzMzLBy5UqkpaXhn3/+wZo1a3D27FnExcVh\n6NChOH/+PIYMGYK4uDhjReKcSqXiO0KLxJARoJxco5zcEktOQxmtILi6ukKhUAAArKys4O/vj6tX\nr2LHjh2YPHkyAGDy5Mn46aefjBWJc2LYuxFDRoByco1yckssOQ3FSw8hKysLqampCA8Ph0ajgUwm\nAwDIZDJoNBo+IhFCSKdn9IJw/fp1jBo1CqtWrYK1tXWD+yQSCSQSibEjcSYrK4vvCC0SQ0aAcnKN\ncnJLLDkNxoyotraWDRs2jK1cuVJ/m5+fH1Or1YwxxnJzc5mfn1+j5/n4+DAA9EM/9EM/9GPAj4+P\nj0HbaKOdh8AYw+TJk+Ho6IiVK1fqb4+JiYGjoyNmz56NuLg4lJSUiLqxTAghYmW0gvDnn39i0KBB\nCA4O1k8LffjhhwgLC8OYMWNw5coVyOVyfP/997CzszNGJEIIIbcRxZnKhBBC2p+gzlR+8cUXIZPJ\nEBQUpL9NiCeuNZUzNjYWHh4eUCqVUCqV2L17N48JbxDLyYDN5RTamFZXVyM8PBwKhQIBAQGYO3cu\nAGGNZ3MZhTaWt2i1WiiVSkRFRQEQ1lje7s6cQhxPuVyO4OBgKJVKhIWFAbiH8bzH/nC7OHjwIDt+\n/Djr27ev/ra3336bLVmyhDHGWFxcHJs9ezZf8fSayhkbG8vi4+N5TNWYWq1mqampjDHGysvLma+v\nLztz5ozgxrS5nEIc04qKCsYYY3V1dSw8PJz98ccfghvPpjIKcSwZYyw+Pp49//zzLCoqijEmzP/v\njDXOKcTxlMvlrLCwsMFtho6noPYQBg4cCHt7+wa3CfHEtaZyAhDcBfjEcjJgczkB4Y2ppaUlAKC2\nthZarRb29vaCG8+mMgLCG8ucnBz8+uuvmDp1qj6b0MYSaDonY0xw4wk0/h0bOp6CKghNEdOJa6tX\nr0ZISAimTJkimF3dW8RyMuCtnPfffz8A4Y2pTqeDQqGATCbTT3MJbTybyggIbyxnzJiBZcuWQSr9\ndzMktLEEms4pkUgEN54SiQSPPPIIQkND8eWXXwIwfDwFXxBuJ+QT16ZPn45Lly5BpVLBzc0Ns2bN\n4juSnlhOBrx+/TpGjx6NVatWwcrKSpBjKpVKoVKpkJOTg4MHD+LAgQMN7hfCeN6ZMSkpSXBjuXPn\nTri4uECpVDb7SVsIY9lcTqGNJwAcOnQIqamp2LVrF9asWYM//vijwf2tGU/BFwSZTIa8vDwAgFqt\nhouLC8+Jmubi4qIf8KlTp+LIkSN8RwIA1NXVYdSoUZg4cSKefvppAMIc01s5J0yYoM8p1DEFAFtb\nWzzxxBM4duyYIMcT+DdjSkqK4Mbyr7/+wo4dO+Dt7Y1x48Zh//79mDhxouDGsqmckyZNEtx4AoCb\nmxsAwNnZGc888wyOHDli8HgKviCMGDECCQkJAICEhAT9xkJo1Gq1/t/bt29vcAQSXxhjmDJlCgIC\nAvDmm2/qbxfamDaXU2hjWlBQoJ8aqKqqwt69e6FUKgU1ns1lvLVRAIQxlosXL0Z2djYuXbqErVu3\nYvDgwdi0aZOgxrK5nBs3bhTc32ZlZSXKy8sBABUVFdizZw+CgoIMH09O29xt9NxzzzE3NzdmZmbG\nPDw82Ndff80KCwvZkCFDWO/evdnQoUNZcXEx3zEb5Vy3bh2bOHEiCwoKYsHBweypp55ieXl5fMdk\nf/zxB5NIJCwkJIQpFAqmUCjYrl27BDemTeX89ddfBTemJ0+eZEqlkoWEhLCgoCC2dOlSxhgT1Hg2\nl1FoY3m7pKQk/dE7QhrLOx04cECfc8KECYIaz4sXL7KQkBAWEhLCAgMD2eLFixljho8nnZhGCCEE\ngAimjAghhBgHFQRCCCEAqCAQQgi5iQoCIYQQAFQQCCGE3EQFgRBCCAAqCIQQQm6igkAIIQQAFQRC\nWrR//37MmDGj0aWDraysGixv2LABb7zxhjGjEcIpKgiEtGD16tUYP368/jsbbrnzypF8X5mTkLYy\n5TsAIUJXXV2N0NDQFh936yowa9euxeeffw4AKCkpgbe3N/bv39+uGQnhAhUEQu4iPj4eVVVV+Pnn\nn/HUU081uK+qqgpKpVK/XFRUhKeeegovv/wyXn75ZdTX12Pw4MGCuFY+Ia1BBYGQuwgNDYVOp2tU\nDADAwsICqamp+uWEhASkpKTol//zn/9gyJAheOKJJ4ySlZC2ooJAyF2kpaW1+lr3t184eMOGDcjO\nzsann37aXtEI4Rw1lQm5i9OnT+sLwpAhQ5Cbm9vic44dO4b4+Hhs2rSpveMRwikqCITcRW5uLrp3\n7w6dTofMzEw4Ojrq72vuKKM1a9agqKgIkZGRUCqVmDZtmlEzE3KvaMqIkCZs27YNtbW18PDwAACc\nOXMGo0ePhrm5uf4xZWVlDZ4zefJkTJ482ag5CeESfWMaIU1ITExEeno6RowYAT8/P77jEGIUVBAI\nIYQAoB4CIYSQm6ggEEIIAUAFgRBCyE1UEAghhACggkAIIeQmKgiEEEIAUEEghBByExUEQgghAID/\nB9dt23sqOyvAAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f4a42462310>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)Hence from the plot we can see that for a constant (V/f) ratio breakdown torque decreases with frequency\n",
+ "\n",
+ "(ii)Hence the required ratio of starting torque to the rated starting torque is : 0.549\n",
+ " Hence the required ratio of starting current to the rated starting current is : 0.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.10,Page No:201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from array import array\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected squirrel Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 # rated speed\n",
+ "\n",
+ "#the frequency variation is from 5 Hz to 50 Hz\n",
+ "fmin=5 \n",
+ "fmax=50\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "Tmax=torque[8] #maximum torque as obtain from Ex-6.9\n",
+ "#to obtain the plot between the voltage and the frequency\n",
+ "K=0\n",
+ "k=[]\n",
+ "frequency=[]\n",
+ "line_voltage=[]\n",
+ "for i in range (0,10):\n",
+ " K=K+0.1\n",
+ " f1=K*f\n",
+ " x=2*K*Wms*Tmax/3\n",
+ " y=Rs+math.sqrt((Rs)**2+(K*(Xs+Xr_))**2)\n",
+ " Vl_square=3*x*y\n",
+ " Vl=math.sqrt(Vl_square)\n",
+ " k.append(round(K,1))\n",
+ " frequency.append(round(f1))\n",
+ " line_voltage.append(round(Vl,1))\n",
+ "print\"K :\",k\n",
+ "print\"f :\",frequency,\"Hz\"\n",
+ "print\"Vl :\",line_voltage,\"V\"\n",
+ "#plotting the values of line voltage Vl vs f \n",
+ "plt.figure(1)\n",
+ "plt.plot(frequency,line_voltage,'b')\n",
+ "plt.xlabel('$f$,Hz')\n",
+ "plt.ylabel('Line voltae,volts')\n",
+ "plt.grid(True)\n",
+ "plt.title('Line voltage vs frequency characteristic')\n",
+ "#for constant V/f ratio\n",
+ "x=[0,10,20,30,40,50]\n",
+ "y=[0,80,160,240,320,400]\n",
+ "plt.plot(x,y,'--')\n",
+ "plt.annotate('Constant V/f ratiuo', xy=(21, 160), xytext=(30, 160),arrowprops=dict(facecolor='black', shrink=0),)\n",
+ "plt.show()\n",
+ "\n",
+ "print\"\\nHence for a constant breakdown torque at all frequencies,\"\n",
+ "print\"V/f ratio has to be progressively increased with increase in frequency\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K : [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\n",
+ "f : [5.0, 10.0, 15.0, 20.0, 25.0, 30.0, 35.0, 40.0, 45.0, 50.0] Hz\n",
+ "Vl : [84.3, 123.8, 159.2, 193.7, 228.0, 262.3, 296.7, 331.1, 365.5, 400.0] V\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEdCAYAAADn46tbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcFPUbB/DPoiiiCHiAB9qqKLiiLGl4J4R4i5o/CSiF\nskzLyjQvrNQOwdTMLEpN08xbS7wPlNU80ZQ08Sww7lRE5RJYnt8f086yXMu1Fzzv14uXzu7OzMPD\nMF/me0qIiMAYY4wVYmboABhjjBkfLhwYY4wVw4UDY4yxYrhwYIwxVgwXDowxxorhwoExxlgxXDgY\n2G+//QZnZ2dDh6EhKCgIH330kaHD0JmbN29CLpejcePG+OabbwwdjtFQKBRo06aNocOoNlZWVoiL\ni6vwfiEhIXjjjTeqPyATw4WDnkilUhw7dqzY6/3798eNGzcMEFHpJBIJJBIJgJp3wwCAL774Al5e\nXnj8+DGmTp1q6HBYEXFxcTAzM0NBQUGVjvPkyRNIpdIyP1PS9T137lysWbOmSueuCbhw0JPCN1xT\nUJPHRt69excymazU96t6U2JAfn5+lY9R2WuwOs7NuHAwuKJ/uUilUixbtgyurq6wsbGBn58fnj59\nKr6/b98+yOVy2Nraom/fvrh69WqJx50yZQpmzpyp8dqoUaOwfPlyAMD169fh4eEBW1tbuLi4YO/e\nvRqflUgkyMrKwtChQ5GUlAQrKys0btwYKSkpiIqKQu/evWFra4tWrVrhnXfeQV5enrjvkSNH4OTk\nBBsbG7z99tsYMGAA1q5dK76/bt06yGQyNGnSBEOGDME///xTrlx17twZ+/fvF7fz8/PRvHlzREdH\nIycnB6+88gqaNWsGW1tbuLu7499//y12jBdeeAEKhQJTp05F48aNcfv2bQQFBWHKlCkYNmwYGjVq\nBIVCgaSkJIwdOxZ2dnZo3749Vq5cKR4jOzsbQUFBaNKkCbp06YIlS5Zo/AzNzMzw999/i9tFq+nK\n+hlq+/mHh4dDLpfD2toajo6OOHz4MHbs2IEePXpofJ9ffvklRo8eXWIe09LS8Oqrr6J169Zo0qQJ\nxowZU2xfe3t7tGrVCuvXrxdf379/P9zc3GBtbY22bdti4cKF4nuqv/bXrVuHZ555BgMHDgQAjBs3\nDi1btoSNjQ0GDBiAmJgYjTzOmDEDUqkUNjY2eP7555GTk4Pnn38eAGBjYwMrKyucP38eQNnXjZmZ\nGcLCwtCxY0c4OTkV+zkcOHAAXbp0QePGjeHg4IAvv/yyxOs7OTkZCxYswPjx48Vjnzp1Cn369IGt\nrS3atm2LDRs2lJjXGoeYXkilUjp27Fix1yMjI8nBwUHjcz179qTk5GRKS0ujzp070/fff09ERJcu\nXSI7OzuKioqigoIC2rBhA0mlUnr69Gmx4548eZLatGkjbqelpVGDBg0oOTmZcnNzqUOHDhQSEkJ5\neXl0/PhxsrKyops3bxIRUVBQEH344YdERKRQKDTiIyL6/fff6fz586RUKikuLo46d+5MX331FRER\n3bt3jxo3bky//vorKZVKWrFiBZmbm9PatWuJiGj37t3k6OhIN27cIKVSSZ999hn16dOnXDn85JNP\n6OWXXxa39+3bRzKZjIiIvv/+exo5ciRlZ2dTQUEBXbp0iR4/flzicTw8PMR4iIgCAwPJ2tqazpw5\nQ0REWVlZ9Oyzz9Knn35KeXl59Pfff1P79u3p8OHDREQ0e/Zsev755+nhw4cUHx9PXbp00ci1RCKh\nv/76S9wOCgqijz76iIhK/xnm5uYSUdk///Pnz5O1tTVFREQQEVFiYiLduHGDnj59Sk2aNKHr16+L\n55TL5fTLL7+U+P0PGzaM/Pz8KD09nfLy8ujkyZNEJFyLdevWpfnz51N+fj4dOHCALC0tKT09nYiE\na+HPP/8kIqIrV66Qvb097d69m4iIYmNjSSKRUGBgIGVlZVFOTg4REf3444+UkZFBubm5NG3aNJLL\n5WIcb731Fnl6elJSUhIplUo6e/YsPX36lOLi4kgikZBSqRQ/q+26kUgkNGjQIHr48KF47sI/hxYt\nWtCpU6eIiCg9PZ0uXbokfk9Fr+8FCxbQK6+8QkREcXFxZGVlRVu3bqX8/Hx68OABRUdHl5jXmoYL\nBz2pSOGwadMmcXvWrFk0efJkIiKaPHmyeJNRcXJyohMnThQ7bkFBAbVt21b8xV+9ejV5eXkRkVBw\ntGjRQuPz/v7+tGDBAiLSLByKxleS5cuX05gxY4iIaMOGDcVu9m3atBFvxkOGDNG4MSuVSrK0tKR/\n/vmnzHMQEd25c4esrKwoOzubiIgCAgLo008/JSKidevWUZ8+fejKlStaj+Ph4UE//PCDuB0UFESB\ngYHi9rlz56ht27Ya+yxatIheffVVIiKNgoJIyG3hHJVVOJT2M1T9nMr6+U+aNImmT59e4vc0efJk\nmjdvHhER/fnnn2RraysWOIUlJSWRmZmZeMMvLDIykho0aKBxU7azs6Pz58+XeM733nuP3n//fSJS\nFw6xsbElfpaI6OHDhySRSOjx48ekVCqpQYMGJf68VMcqHIe260YikVBkZKTGcQr/HNq2bUurVq2i\nR48eFfuei17f8+fPFwuHRYsW0Ysvvljq91STcbWSEWrRooX4/wYNGiAjIwOAUFe+bNky2Nrail8J\nCQlITk4udgyJRAI/Pz9s2bIFALB582a8/PLLAICkpKRijXDPPPMMkpKSyhXfrVu3MGLECLRs2RLW\n1taYN28eHjx4IB7bwcFB4/OFt+/evYv33ntPjL9p06YAgMTERK3n7dChAzp37ow9e/YgKysLe/fu\nRUBAAABg/PjxGDx4MPz8/NC6dWvMnj27zLrnou0/RWNMSkrSyHNISIhYTVU0f23bttUae+Fjl/Qz\nLJz7oj//zMxMAEBCQgI6dOhQ4nEDAwOxefNmAMDGjRvx0ksvwdzcvNjn4uPj0aRJE1hbW5d4nKZN\nm8LMTH1bsLS0FK+/8+fPw9PTE3Z2drCxscGqVavEn7tK4bwUFBRgzpw5cHR0hLW1Ndq1awcAuH//\nPu7fv4+cnJxSv5+iynPdlNVxYteuXThw4ACkUik8PDxw7ty5cp03Pj4e7du3L9dnaxouHEyA6kbW\ntm1bzJs3Dw8fPhS/MjIy8NJLL5W4n7+/P3bu3Im7d+8iKioKY8eOBQC0atUK8fHxGg1+d+/eRevW\nrYuds6RG9ClTpkAmk+HOnTt49OgRPv/8c7ERt1WrVkhISBA/S0Qa223btsXq1as1vofMzEz06tWr\nXLnw9/fHli1bEB4eji5duoi/uHXr1sXHH3+Ma9eu4cyZM9i3bx9++umnch2z6PfZtm1btGvXTiPG\nx48fY9++fQCAli1batR3F20zsbS0RFZWlrhduPCu6M+wsDZt2uDOnTslvterVy/Uq1cPJ0+exJYt\nWzTqzIseIy0tDY8ePdJ6vqICAgIwevRoJCQkID09HZMnTy7WeF84j5s2bcKePXtw7NgxPHr0CLGx\nsQCEa6JZs2awsLAo8fsp6Zorz3VTVoePHj16YPfu3bh37x5Gjx4NX19frfuozvvXX3+V+ZmaigsH\nPcrNzUVOTo74pVQqy7Wf6ib+xhtv4Pvvv0dUVBSICJmZmdi/f7/4l11RcrkczZo1w+uvv44hQ4ag\ncePGAIQbiaWlJb744gvk5eVBoVBg37598PPzE8+nOqe9vT0ePHiAx48fi8fNyMiAlZUVLC0tcePG\nDXz33Xfie8OGDcPVq1cRHh6O/Px8fPvtt0hJSRHfnzx5MhYtWiQ2TD569Ag7duwobwrh5+eHw4cP\n4/vvvxefGgChYf/q1atQKpWwsrKCubk56tSpozWnRf8PAO7u7rCyssIXX3yB7OxsKJVK/Pnnn7h4\n8SIAwNfXFyEhIUhPT0dCQgJWrlypcZORy+XYtGkTlEolDh06hJMnT4rvVfRnWDi+iRMn4scff8Tx\n48dRUFCAxMRE3Lx5U/zc+PHjMXXqVNSrVw99+vQp8VgtW7bE0KFD8dZbbyE9PR15eXka8ZUlIyMD\ntra2qFevHqKiorB58+Yyb64ZGRmoX78+mjRpgszMTAQHB4vvmZmZ4bXXXsP06dORnJwMpVKJs2fP\nIjc3F82bN4eZmZnGTbkq101eXh42bdqER48eoU6dOrCyshKvjZKu78ICAgIQERGBHTt2ID8/Hw8e\nPMAff/xRrvOaOi4c9GjYsGGwtLQUvxYuXKi1i2vh97t37441a9Zg6tSpaNKkCTp27Kj1r+OAgAAc\nP35c40Zqbm6OvXv34uDBg2jevDmmTp2KjRs3olOnTsXO6ezsDH9/f7Rv3x5NmjRBSkoKli5dis2b\nN6Nx48aYNGkS/Pz8xM83a9YMO3bswKxZs9CsWTNcv34dPXr0QP369QEAo0ePxuzZs+Hn5wdra2t0\n7doVhw8fLncOW7RogT59+uDs2bMaf22npKRg3LhxsLa2hkwmg4eHR6l/Pau+x5JyDAg3rn379iE6\nOhrt27dH8+bNMWnSJPEGMn/+fDzzzDNo164dhgwZggkTJmgUMCtWrMDevXtha2uLzZs3a/QGKu1n\nWNo1UDi25557Dj/++CPef/992NjYwNPTU+OpZfz48bh27RpeeeWVMnO4ceNGmJubw9nZGfb29vj6\n669LzEtRYWFh+Pjjj9G4cWN8+umnxZ52iu47YcIEPPPMM2jdujVcXFzQu3dvjc8sXboUXbt2xXPP\nPYemTZti7ty5ICJYWlpi3rx56Nu3L2xtbREVFaX1uikp7sKv/fzzz2jXrh2sra2xevVqbNq0CUDx\n6zs5OVkj523btsWBAwewbNkyNG3aFG5ubrhy5UqZ+a0pJFT0z6ZqplQq0aNHDzg4OGDv3r1IS0vD\nSy+9hLt370IqlWL79u2wsbEBIIxMXLduHerUqYOvv/4agwYN0mVoTA8KCgrQpk0bbN68GQMGDDB0\nODqhUCgwfvx4xMfHGzSO7Oxs2Nvb4/Lly+Wuy2esNDp/clixYgVkMplYEoeGhsLb2xu3bt2Cl5cX\nQkNDAQAxMTHYtm0bYmJicOjQIbz11ls8GMlEHTlyBOnp6Xj69CkWLVoEAOVuU2CV991338Hd3Z0L\nBlYtdFo4JCQk4MCBA3j99dfFx+49e/YgMDAQgNDDYvfu3QCEwT3+/v4wNzeHVCqFo6MjoqKidBke\n05GzZ8/C0dERzZs3x/79+7F7926xWqmmMvTod6lUipUrV2LZsmUGjYPVHHV1efD3338fS5Ys0Wjs\nSU1Nhb29PQChMSg1NRWA0D2w8F+XDg4O5ereyIzP/PnzMX/+fEOHoTceHh7lHuWtK5WZYI6xsujs\nyWHfvn2ws7ODm5tbqXOklKcxljHGmP7p7MnhzJkz2LNnDw4cOICcnBw8fvwY48ePh729PVJSUtCi\nRQskJyfDzs4OANC6dWuNBr2EhASNfvcqrVu3LvdgLcYYY4IOHTqUOk6mRPoYhq1QKGjEiBFERDRz\n5kwKDQ0lIqKQkBCaPXs2ERFdu3aNXF1d6enTp+JcNgUFBcWOpaeQTcL8+fMNHYLR4FyocS7UamMu\ncnOJFi4kqlePqFkzIoVCeL2i906dtjkUpqoimjNnDnx9fbF27VqxKysAyGQy+Pr6QiaToW7duggL\nC+NqJS24nlmNc6HGuVCrbbk4dAh44w0gNRWYNAlYvhwoYRaVctFL4TBgwACxj3uTJk0QERFR4ueC\ng4M1RlEyxhjT7uZNYMYM4d/gYKB3b0Aur9ox9fbkwKpfUFCQoUMwGpwLNc6FWk3PRXo68MknwE8/\nAXPnAr/8AtSrVz3H1vkI6eomkUhq9CpljDGmjVIJrFkDLFgA+PgAn30G/Ne3p1QVvXfy3EomTKFQ\nGDoEo8G5UONcqNXEXBw/LlQZLV8OPP88sHq19oKhMrhwYIwxE/D338CLLwKBgUIjs6UlMG+e7s7H\n1UqMMWbEnjwBFi0SnhA8PICTJ4F33hHaGCrSE4mrlRhjrAYoKAB+/BFwcgKSk4HZs4Wnh4gI4OOP\nK99Ftby4cDBhNbE+tbI4F2qcCzVTzcWpU4C7u9DovHs3sH498O67QFQU4Oqqnxi4KytjjBmJf/4B\nZs0CTp8GFi8G/P0B1VhgCwv9xsJtDowxZmCZmcAXXwDffAO8/TYQFAT8tzx6teE2B8YYMxFEwKZN\ngLMzcOsWcOAAcPEiMHOmoSPjwsGkmWp9qi5wLtQ4F2rGnIuoKKBPH2G8wpYtwKBBwIgRQK9ewNat\nho6O2xwYY0yvkpKEbqhHjwKffw54eQGTJws9kiIi9NfgrA23OTDGmB5kZwNffil8TZokTJBnZQXs\n2QNER1d83EJFVfTeyYUDY4zpEBGwa5fQjuDmBixdWv2NzeXBDdK1iDHXp+ob50KNc6Fm6Fxcvgx4\negKffgqsWyfMmmqIgqEyuHBgjLFqlpoqLLozdKgwVuHSJaBjR+C/tc1MAhcOJszDw8PQIRgNzoUa\n50JN37l4+lQYr9ClC9C4MXDjhtC+8NNPQpXSX3/pNZwq4d5KjDFWRURAeDjwwQeATAacOQN06gQk\nJAABAcbXE6k8+MnBhBm6PtWYcC7UOBdq+sjFlStCd9QPPwS++07ofdSpE3D4sPC00KuXfudEqi46\nKxxycnLQs2dPyOVyyGQyzJ07FwCwYMECODg4wM3NDW5ubjh48KC4T0hICDp27AhnZ2ccOXJEV6Ex\nxliV3bsnjE/w9gb+9z+hO6q3t/r9zp31N4OqLui0K2tWVhYsLS2Rn5+Pfv36YenSpTh27BisrKww\nffp0jc/GxMQgICAAFy5cQGJiIgYOHIhbt27BzEyz/OKurIwxQ8rNBVauBEJDgZdfBubPB2xtDR2V\ndkbVldXS0hIAkJubC6VSCdv/MlhSgOHh4fD394e5uTmkUikcHR0RFRWly/AYY6zciIC9ewEXF2Gp\nzt9+A776yjQKhsrQaeFQUFAAuVwOe3t7eHp6okuXLgCAlStXwtXVFRMnTkR6ejoAICkpCQ4ODuK+\nDg4OSExM1GV4Jo/rltU4F2qcC7XqysW1a8DgwcJ02l9/DezfL0yWRyQsyPPKK9VyGqOi08LBzMwM\n0dHRSEhIwMmTJ6FQKDBlyhTExsYiOjoaLVu2xIwZM0rdX6KayJwxxgzg/n1hCm1PT2FSvCtXgCFD\nhPcSEoDhw4XCwhhmUa1ueunKam1tjeHDh+PixYsa/Y5ff/11jBw5EgDQunVrxMfHi+8lJCSgdevW\nJR4vKCgIUqkUAGBjYwO5XC4eV/WXQm3Y9vDwMKp4eNt4tlWMJR5Dbateq+j+fft6ICwMmD9fAU9P\n4Pp1DzRtKrxPBMTFeWDWLGDECAWmTwdcXY3j+y28rVAosH79egAQ75cVQjpy7949evjwIRERZWVl\nUf/+/SkiIoKSk5PFz3z55Zfk7+9PRETXrl0jV1dXevr0Kf3999/Uvn17KigoKHZcHYbMGGN04ACR\nszPRoEFEf/5Z/P2ffyaSy4mio/UfW1VU9N6psyeH5ORkBAYGoqCgAAUFBRg/fjy8vLwwYcIEREdH\nQyKRoF27dli1ahUAQCaTwdfXFzKZDHXr1kVYWBhXK2lR+C+i2o5zoca5UKtILq5fB2bMAO7cEWZO\nHT5cvURnYb6+wpcpdk+tCJ0VDl27dsWlS5eKvf7TTz+Vuk9wcDCCg4N1FRJjjBWTlgYsXAhs3ixM\no717N1CvXumfr+mFggpP2c0Yq5Xy84FVq4BPPgFefFH4t3lz9ftEQqNzmzaGi7E6VfTeyXMrMcZq\nnSNHgPffB1q0EFZk69ZN8/2EBGHCPEBY17k24rmVTFjRnim1GedCjXOhVjQXt24BI0cCb70FLFok\nTG9RuGBQjVtQzYkUHq7feI0JPzkwxmq89HSh2uinn4DZs4GdO4H69TU/o3paMMUZVHWB2xwYYzVW\nfj7www/AggWAj4+wIpu9fcmfPXFC+NL1Ws6GwmtIM8YYhPmPpk0DmjQR5kCSyw0dkWEZ1cR7TLe4\nblmNc6FW23Nx5w4wZgzw+uvA2LEKREZywVAZXDgwxmqEx4+FifF69QJ69gRiYoABA4oPZEtIEBqd\nWdm4cDBhPApWjXOhVttyoVQK7QpOTsCDB8DVq8CcOYCFhWYuCvdE4gmftePeSowxk3XihNCu0KgR\nsG8f0L17yZ/jnkgVx08OJqy21y0XxrlQqw25iI0VluYMDBR6F508WXLBoFAIbQ6mvJazoXDhwBgz\nGU+eCIXBc88JN/zr14VJ8Mqao9PFxbTXcjYU7srKGDN6BQXAhg3AvHmAtzcQEgK0amXoqEwLz63E\nGKtRTp0C3ntPGNG8ezfg7l76Z4nKfopg5cfVSiasNtQtlxfnQq2m5OLuXeCll4CAAOCDD4DTp0sv\nGFQ9kXx8hP+r1JRcGAIXDowxo5KRAXz0EfDss4BMBty4Afj7l/5EUHgt588+4yeH6sJtDowxo1BQ\nAPz8s7DgjoeH0K5Q1loKRMD69cLAt3feqblzIlUXbnNgjJmcs2eF8QqAMGNqr17a9wkPF54WeNyC\nbnC1kgnj+lQ1zoWaKeUiPh54+WVg3Dhg6lShkChPwQAI7Qvaxi2YUi6Mjc4Kh5ycHPTs2RNyuRwy\nmQxz584FAKSlpcHb2xudOnXCoEGDkJ6eLu4TEhKCjh07wtnZGUeOHNFVaIwxA8vKEqbRlsuBDh2A\nmzeB8eMBswrckczMuBpJl3Ta5pCVlQVLS0vk5+ejX79+WLp0Kfbs2YNmzZph1qxZWLx4MR4+fIjQ\n0FDExMQgICAAFy5cQGJiIgYOHIhbt27BrMjVwm0OjJkuImDLFmHuoz59gMWLgWee0b7P338LhQir\nPKOastvS0hIAkJubC6VSCVtbW+zZsweBgYEAgMDAQOzevRsAEB4eDn9/f5ibm0MqlcLR0RFRUVG6\nDI8xpkdRUUKB8OWXwObNwNat2gsGVU+kN97Q7KLKdE+nhUNBQQHkcjns7e3h6emJLl26IDU1Ffb/\nLcVkb2+P1NRUAEBSUhIcHBzEfR0cHJDIUyeWietT1TgXasaWi8REYMIEYY2FN98UCol+/crep+ha\nzocPV66LqrHlwpTotLeSmZkZoqOj8ejRIwwePBiRkZEa70skEkjK+ImX9l5QUBCkUikAwMbGBnK5\nXJyaV3Ux8Hbt2lYxlngMuR0dHW0U8WRnA1OnKrBzJ/D22x64cQP4/XcFTp4se/9794Aff/RAcjIQ\nEqKAoyNgbl65eKKjow32/Rt6W6FQYP369QAg3i8rQm/jHD799FM0aNAAP/zwAxQKBVq0aIHk5GR4\nenrixo0bCA0NBQDMmTMHADBkyBAsXLgQPXv21AyY2xwYM2pEwPbtwOzZwgR5X3wBtGtX/v0vXRKm\n3+ZxC9XLaNoc7t+/L/ZEys7OxtGjR+Hm5gYfHx9s2LABALBhwwaMHj0aAODj44OtW7ciNzcXsbGx\nuH37NtzLmkSFMWZ0fv8deP55IDRUmChvx46KFQyAMDKaZ1A1PJ0VDsnJyXjhhRcgl8vRs2dPjBw5\nEl5eXpgzZw6OHj2KTp064fjx4+KTgkwmg6+vL2QyGYYOHYqwsLAyq5wY16cWxrlQM0QukpOB114D\nRowAgoKAixeFJToNja+LytNZm0PXrl1x6dKlYq83adIEERERJe4THByM4OBgXYXEGKtmOTnA8uXA\nsmXAxInCeIXGjcu3b0IC8OuvwtQXzPjw3EqMsQojAnbtAmbOFHoULVlS/nEIRedE+ugjnixPH3hu\nJcaYTl2+DLz/PvDwIbB2LfDCC+Xfl9dyNh08t5IJ4/pUNc6Fmq5ykZoqDEYbOlSYQvvSpYoVDKdP\n638tZ74uKo+fHBhjZXr6FFixQuiSGhgorK9gY1Px43TtChw7BnTrVv0xsurHbQ6MsRIRCdNif/CB\nsOjO0qVAp06GjopVFrc5MMaq7MoVoV0hNRX47jvA27ti+/NazqaP2xxMGNenqnEu1KqSi3v3gMmT\nhcJg7FggOrpiBYNqTiRPT+OYKI+vi8rjJwfGGHJzgW++EZbmfPlloV3B1rZixyjcE2n9en5yMHXc\n5sBYLUYkzGM0YwbQsaMwmM3ZueLH4LWcjR+3OTDGyuXaNaFdIT5eWIt5yJDKHef4cV7LuSbiNgcT\nxvWpapwLNW25ePBAWK/Z01OYC+nKlcoXDIAw1uHCBeMsGPi6qDythUNGRgaUSiUA4ObNm9izZw/y\n8vJ0HhhjrHrl5QnjFTp3FtoDrl8H3n236lVAEglQl+sgahytbQ7PPvssTp06hYcPH6Jv37547rnn\nUK9ePWzatElfMWrgNgfGKu7gQWD6dKBtW2GZzi5dKn4MIqFAkcmqPz6me9W+ngMRwdLSEr/88gve\neust7NixA3/++WeVgmSM6cf168CwYcC0acIgtkOHKlcwqNZynjQJKCio/jiZ8SlXm8PZs2exadMm\nDB8+HICwNjQzPK5PVeNcqCkUCqSlAe+9Jyy84+0NXL0q3Nwr2r2UCFi3TpgTqXdvIDISMDOhlkq+\nLipPa03hV199hZCQEIwZMwZdunTBX3/9BU9PT33ExhiroPx8YY2El14SBrHFxADNm1fuWImJwOuv\nC6OkeU6k2kdr4ZCamoo9e/aI2x06dEC/fv10GhQrH9Wi4oxzAQBHjghdU1u08EBEhDDRXVVkZgJ9\n+wprQZvquAW+LipPa4O0m5sbLl++rPU1feEGacY03bwpDGK7eVNoV/Dx4dHJrLhqGwR38OBBHDhw\nAImJiXj33XfFgz558gTmpvpnRA2jUCj4L6P/1MZcPHwIfPIJ8PPPwJw5wsps9evXzlyUhnNReaU2\nLbVq1Qrdu3eHhYUFunfvLn75+Pjg8OHD5Tp4fHw8PD090aVLF7i4uODrr78GACxYsAAODg5wc3OD\nm5sbDh48KO4TEhKCjh07wtnZGUeOHKnit8dYzZOfD4SFCdNcZGcLI51nzBAKhspISBDmVOIHclaY\n1mqlvLy8Sj8ppKSkICUlBXK5HBkZGejevTt2796N7du3w8rKCtOnT9f4fExMDAICAnDhwgUkJiZi\n4MCBuHU5M8vtAAAgAElEQVTrFswKdY/gaiVWm6nbFYDly6vWSKyaQXX2bGEw3Lx5ptUTiVVMtVUr\ndS2jNUsikeDKlStaD96iRQu0aNECANCoUSN07twZiYmJAFBikOHh4fD394e5uTmkUikcHR0RFRWF\nXr16aT0XYzXZzZvCojvXrwuT41W1XSEhQVjyk3sisdKU+nfC3r17S/0q3HupvOLi4nD58mXxRr9y\n5Uq4urpi4sSJSE9PBwAkJSXBwcFB3MfBwUEsTFhx3Idbrabm4uFD4Umhb19gwAChCmnUqLILBm25\nuHBBGLfQpw9w/nzNLhhq6nWhD6U+OUilUvH/qampiIqKgkQigbu7O+zs7Cp0koyMDPzvf//DihUr\n0KhRI0yZMgUff/wxAOCjjz7CjBkzsHbt2hL3lZTwWxAUFCTGZ2NjA7lcLjY6qS4G3q5d2yrGEk9V\nt/v188Dq1cC8eQr07w/ExHjAzq58+0dHR5f5fm4uEBnpARcX4/l+dbUdHR1tVPHoc1uhUGD9+vUA\nNO/n5aW1zWH79u2YOXMmBgwYAAA4efIklixZgnHjxpXrBHl5eRgxYgSGDh2KadOmFXs/Li4OI0eO\nxNWrVxEaGgoAmDNnDgBgyJAhWLhwIXr27KkOmNscWA2nalewtwe++qpm/2XP9Kei906thUO3bt0Q\nEREhPi3cu3cPXl5e5WpzICIEBgaiadOmWL58ufh6cnIyWrZsCQBYvnw5Lly4gM2bN4sN0lFRUWKD\n9J07dzSeHrhwYDVVdbcrAMI8SGbcyMygo4n3mhcaf9+0adNyn+D06dP4+eefERkZqdFtdfbs2ejW\nrRtcXV1x4sQJseCQyWTw9fWFTCbD0KFDERYWVmK1EhMUrVKpzUw5F5VpVyiLQqEQ50Tq2RP4b8b9\nWsmUrwtD0zp9xpAhQzB48GAEBASAiLBt2zYMHTq0XAfv169fiZP0lbV/cHAwgoODy3V8xkxZfj6w\nejWwcCEwerQwD1IFm/NKdO+eMBNrSoqwfGedOlU/Jqt9yrWG9K5du3Dq1ClIJBL0798fY8aM0Uds\nJeJqJVYTHD0qPC3Y2QnjFapjFTVey5mVpdrbHJYtWwY/Pz+0bt26ysFVBy4cmCkr3K6wdGnVqo+K\nOncOmDJFKCCMcclOZljV3ubw5MkTDBo0CP369cM333yD1NTUKgXIqg/Xp6oZey4ePhRWYuvbV1hj\n4do1oSqpOpvUevUCLl4EHj5UVN9BTZyxXxfGTGvhsGDBAly7dg3ffvstkpOT8fzzz8PLy0sfsTFm\n8grPg5SZKRQKM2dWfh4kbbh9gVWXcrU5AEL30507d2LLli3IyMgoV1dWXeBqJWYqVO0KzZsL4xWq\nq6qHCPjjD0Aur57jsdqh2tscwsLCsH37dvz7778YN24cXnrpJcgMuMI4Fw7M2OmyXSExUVjH+d49\n4MwZoK7W/oaMCaq9zSE+Ph5fffUVYmJisHDhQoMWDEwT16eqGUMudNmuoJpB1c1NGLtw+nTpBYMx\n5MJYcC4qT+vfHSEhIfqIgzGTlZ8PrFkDLFggPCVcuyZMfVFdkpOFtZyTkoSqKu6JxPSh3G0OKs7O\nzgCAqVOnYurUqToJqixcrcSMSeF2heXLddMOkJAA/PST0JDN4xZYZVV7m0NJ7t+/j/Pnz2P48OEV\n3bXKuHBgxuDWLaFd4do1oV2hurulMlbdqr3NARBmTo2IiAAAZGVloX79+gYpGJgmrk9V01cu0tOF\ndoU+ffDfVNrAmDHGVTDwdaHGuag8rYXD6tWrMW7cOLz55psAgISEBIwePVrngTFmTPLzge++A5yc\ngIwM3YxXSEwEPvxQmEmVMUPTWq3k6uoqLtV5+fJlAMISolevXtVLgEVxtRLTt4gIoV2hWTPdtCuo\n5kSaPRuYOhUIDuYuqqz6Vdsa0ir169dH/UJ/HuXn5/M02qxWuH0bmDFDt+0KqnEL3BOJGRut1UoD\nBgzA559/jqysLBw9ehTjxo3DyJEj9REb04LrU9WqMxfp6UKh0Ls30K+f7toVrlxRj1uIiqq+goGv\nCzXOReVpLRxCQ0PRvHlzdO3aFatWrcKwYcPw2Wef6SM2xvSqcLvC48fCE8OsWbqbB0kmAxQK4OOP\nuYsqMz6V6spqSNzmwHRB1a7QtKkwDxLPW8Rqmmpvc7h16xaCg4MRExOD7Oxs8SR///135aNkzEjc\nvi2MV/jzT92OV1AqecZUZlq0Viu9+uqrmDx5MurWrYvIyEgEBgbi5Zdf1kdsTAuuT1WraC4Ktyv0\n7au7dgXVnEiurkBubvUeuzR8XahxLipPa+GQnZ2NgQMHgogglUqxYMEC7N+/v1wHj4+Ph6enJ7p0\n6QIXFxd8/fXXAIC0tDR4e3ujU6dOGDRoENLT08V9QkJC0LFjRzg7O+PIkSOV/LYYK1l+PvD998L6\nCrpuV0hMBEaMAL7+Gti0CahXr/rPwZjOkBa9e/em/Px8Gj16NK1cuZJ27dpFnTp10rYbERElJyfT\n5cuXiYjoyZMn1KlTJ4qJiaGZM2fS4sWLiYgoNDSUZs+eTURE165dI1dXV8rNzaXY2Fjq0KEDKZVK\njWOWI2TGShQRQeTiQjRgANF/l6VOFBQQrVtH1Lw50cKFRLm5ujsXY+VV0Xun1k9HRUXR48eP6Z9/\n/qHAwEAaM2YMnT17tlLBjRo1io4ePUpOTk6UkpJCREIB4uTkREREixYtotDQUPHzgwcPLnYuLhxY\nRd26ReTjQ9S+PdEvvwg3b126coWoe3ei6GjdnoexiqjovVNrtVJsbCysrKzQpk0brF+/Hr/88gv+\n+eefCj+hxMXF4fLly+jZsydSU1Nh/9+cxvb29uK61ElJSXBwcBD3cXBwQGJiYoXPVVtwfapaSblI\nTxcam3XdrlBU167AhQuGG9DG14Ua56LyyrWeg6+vr9bXypKRkYGxY8dixYoVsLKy0nhPIpGUOeK6\npPeCgoIglUoBADY2NpDL5fDw8ACgvhh4u3ZtqygUCiiVwJ07Hpg/H+jeXYHVq4EXXzSueHW5HR0d\nbVTxGHI7OjraqOLR57ZCocD69esBQLxfVkSp4xwOHjyIAwcOYNu2bfDz8xP7xz558gQxMTGIiooq\n1wny8vIwYsQIDB06FNOmTQMgrAmhUCjQokULJCcnw9PTEzdu3EBoaCgAYM6cOQCAIUOGYOHChejZ\ns6c6YB7nwMpw7JgwXqFJE92PVyASRjYXujwZM1rVNmV3q1at0L17d1hYWKB79+7il4+PDw4fPlyu\ngxMRJk6cCJlMJhYMAODj44MNGzYAADZs2CDO8urj44OtW7ciNzcXsbGxuH37Ntzd3cv9zbDa6/Zt\nYRW2N94QVmSLjNRtwaDqifTWW0BOju7Ow5jBaGuUyK1CV4vffvuNJBIJubq6klwuJ7lcTgcPHqQH\nDx6Ql5cXdezYkby9venhw4fiPp9//jl16NCBnJyc6NChQ8WOWY6Qa43IyEhDh2Bw6elEH3xA1Lhx\nJIWGEmVn6/Z8ptATia8LNc6FWkXvnaW2OXTt2rXUAkUikeDKlStaC55+/fqhoJTJ6VWLBxUVHByM\n4OBgrcdmtZtSCaxbJ8xLNHy4MNDsxRd1e86UFGDiRJ5BldUOpbY5xMXFlbljZRo4qgO3ObATJ4D3\n3gMaNxbaFZ59Vj/nffAA+OEHYSU4niiPmRqdrCGdmpqKqKgoSCQSuLu7w87OrkpBVgUXDrVXbKyw\n+trFi8AXXwDjxhnX8pyMGbNqX0N6+/btcHd3x44dOzT+zwyvaDfOmiojA5g3D3juOaGR+fp1wNdX\ns2CoLbkoD86FGuei8rSOc/jss89w4cIF8Wnh3r178PLywrhx43QeHKvdCgqAjRuFZTNfeAH44w+g\ndWvdnzcxEVi2DFi8mKuPWO2l9cmBiNC8eXNxu2nTplytYyRUA19qojNngF69hMV3du0SComyCobq\nyIVqBlU3N8DGpsqHM5iafF1UFOei8rQ+OQwZMgSDBw9GQEAAiAjbtm3D0KFD9REbq4Xi44E5c4RG\n59BQICAAMNP6J0zV8VrOjGnS+mu3ZMkSvPnmm/jjjz9w9epVvPnmm/jiiy/0ERvToibVp2ZlAQsX\nCm0KHToAN28Cr7xS/oKhKrm4dUs3azkbSk26LqqKc1F5Wp8cli1bBj8/P4wdO1Yf8bBahgjYtk1Y\nU6F3b+DSJeCZZ/QbQ8eOwKlTQKdO+j0vY8ZMa1fWBQsWYMeOHbC1tYWfnx/GjRsnzqhqCNyVtea4\neBGYNk14alixAujf39ARMVZz6WScAwD88ccf2L59O3bu3AkHBwccO3as0kFWBRcOpi85WeiBdOgQ\n8NlnQFCQ/tZXzsvjHkisdqr2cQ4qdnZ2aNGiBZo2bYp79+5VKjhWvUytPjUnBwgJEdY7sLMT2hUm\nTqyegkFbLlQ9kTp3BjIzq34+Y6ZQKJCSkgI/Pz84OjqiR48eGD58OG7fvl1t5wgPD8f169crvf/d\nu3exZcuWEt/r0KEDbt26pfHatGnTNNo6e/Togby8POzYsQMymQxeXl4lHqs8vyOLFi3S2O7bt6/W\nfWoDrYVDWFgYPDw84OXlhfv37+OHH34o17xKjKkQAb/8AshkQoPv+fPCGILGjfVz/sJrOe/aBVha\nEj755BMcOnRIPwHoGRFhzJgxeOGFF3Dnzh1cvHgRISEh4qJa1eHXX39FTExMpfePjY3F5s2bS3zP\nz88PW7duFbcLCgqwa9cu+Pv7i/s6ODjA3Nwca9euxQ8//FBmTUZ+fn6ZsYSEhGhsnz59urzfRs2m\nbWa+OXPmiOtAG4NyhMyMSHQ0kYeHsHZzRIR+z13SDKpKpZKCgoIIAC1ZskS/AenJsWPH6Pnnny/1\n/Q8++IBcXFyoa9eutG3bNiISZi8dMGAA/e9//yNnZ2d6+eWXxc/Pnj2bZDIZdevWjT744AM6c+YM\nNWnShNq1a0dubm70119/0erVq+m5554jV1dXGjt2LGVlZRERUWBgIL377rvUp08fat++Pe3cuZOI\niHr27EnW1tYkl8vpq6++0ojv6tWrJJPJxO3IyEjq27evuB0WFkZhYWH0ySefUKNGjcjJyYlmzpyp\ncYzIyEjq168f+fj4iMsQjxo1irp3705dunSh1atXi99bnTp1SC6X0yuvvEJERA0bNhSPMWLECPGY\nb7/9Nq1fv56IiCIiIsjNzY26du1Kr732Gj19+lTrz8XQKnrvNLk7LRcOpuHff4kmTSKysyMKCyPK\ny9N/DHfuELm7q9dyzs3NpVGjRpGlpSXVq1ePVq5cqf+g9GDFihX0/vvvl/jezp07ydvbmwoKCig1\nNZXatm1LycnJFBkZSdbW1pSYmEgFBQXUu3dvOnXqFN2/f1+8uRIRPXr0iIiIgoKCaNeuXeLrDx48\nEP//4YcfirkNDAwkX19fIiKKiYkhR0dHIiJSKBQaN96iXFxc6I8//iAiojfffJO+/fZb8b1Ro0ZR\nbGwsERF5eHjQ77//Xmz/yMhIatiwIcXFxYmvpaWlERFRVlYWubi4iNuNGjXS2Fe1XbRwmDp1Km3Y\nsIGys7OpTZs2dPv2bSIimjBhQrECzhhV9N6ph+FFTFeMsc0hNxf48kuhCsnSErhxA5gyBairtdN0\n1ZSUiw4dgHPnhHELWVlZ8Pb2xpEjR5CVlYW6deuiQYMGug3KQO7cuVPqe6dPn0ZAQAAkEgns7Oww\nYMAAXLhwQZxUs1WrVpBIJJDL5bh79y5sbGxgYWGBiRMn4tdff9XIGRVq3Lx69Sr69++Pbt26YdOm\nTWKVk0QiERfz6ty5s1i1RVoaRv39/bF161YolUqEh4eL0/Xk5uYiISFBY1bo0o7l7u6O2NhYcXvF\nihWQy+Xo3bs34uPjK9UGQ0S4efMm2rVrB0dHRwBAYGAgTp48WeFjGTsd/8qy2oII2L8fmDFDuCn/\n9hvg7GzoqITJ+R49eoQXXngBMTExyPlv2TYiwsKFC7Fq1So0aNAAlpaWsLS0RMOGDdGwYUM0atQI\nDRs2hKWlJSwsLNCgQYMK/Vu/fv0y10bXJalUivDw8FLfL3ozVcVZv3598bU6deogLy8PderUQVRU\nFI4dO4adO3fim2++Eev3C39/QUFB2LNnD7p27YoNGzZoFNb16tUr9dyl8fPzw6BBgzBgwAB069ZN\nnMLnt99+Q79+/UqMv6iGDRuK/1coFDh27BjOnTsHCwsLeHp6itdCaerWrauxHo3q80XPV97vydSU\nq3CIi4vDnTt3MHDgQGRlZSE/Px+N9dWayEplLPPGxMQIaxzExQnrK+h7dhUiQCLxKPG9f//9F/36\n9cPdu3eRm5srvp6dnY34+HjEx8eXeey6deuiTp06qFOnDszMzCCRSGBWaNg2CVWzKCgoQEFBAZRK\npfhVt25d1KtXD+bm5qhfvz7q1asnFhwWFhawtLQUC6bChVKjRo3QoEGDChdIDRo0QP369TF9+nRs\n374da9aswRtvvAEAuHLlCh4/foz+/ftj1apVCAwMxIMHD3Dy5EksXbq01MblzMxMZGZmYujQoejT\npw86dOgAALCyssLjx4/Fz2VkZKBFixbIy8vDzz//jDZt2pSZVysrKzx58qTU99u3b49mzZphzpw5\nGksMHzp0CMOGDSvz2IWpfkceP34MW1tbWFhY4MaNGzh37pz4GXNzc+Tn56NukcfbZ555BjExMcjN\nzUVWVhaOHTuG/v37w8nJCXFxcfjrr7/QoUMHbNy40Wh+F6uT1sJh9erVWLNmDdLS0vDXX38hISEB\nU6ZMMdg4B2Y8Hj4E5s8HtmwBPvxQWE9Z32MICs+J9NtvQKNGmu+/++67iI2N1dpjpTT5+fkG2VdV\nIKkKJVXBpPqrVVUoERGUSiUKCgqQn58PpVKJefPm4ddff8W0adOwePFiWFhYoF27dvjqq6/Qr18/\nnD17Fq6urpBIJFiyZAns7Oxw/fr1Yn8RSyQSPHnyBKNGjUJOTg6ICMuXLwcg/GX/xhtvYOXKldix\nYwc+/fRT9OzZE82bN0fPnj2RkZGhcZyi/3d1dUWdOnUgl8vx6quv4r333iuWA39/f8ydOxcvFlri\n78SJE/jss8+05q9wrgBhjrjvv/8eMpkMTk5O6N27t/jepEmT0K1bN3Tv3h0bN24U92vTpg18fX3h\n4uKCdu3a4dn/VpWqX78+fvzxR4wbNw75+flwd3fH5MmTtcZkcrQ1SnTr1o1ycnJILpeLr7m4uFSo\nYaM6lSPkWsNQ6+Pm5xOtXk1kb0/05ptE9+7pP4aiPZGOHo0s8XOxsbHUtGlTAlBrvsaMGaPfH4ae\nxMfH07Bhwyq0D68hrVbRe6fWBun69etr1EXm5+eXuy71tddeg729vcZ61AsWLICDgwPc3Nzg5uaG\ngwcPiu+FhISgY8eOcHZ2xpEjR8p1DqZf584JE9StXw8cOAB8/z3QrJl+Y7h3Tz1u4ehRYR3p0hq8\npVIpTp06BWtra43XLSwsYG1tDWtrazRu3BhWVlZo2LAhLCwsUK9ePY2qI1NTUxvaHRwcsH//fkOH\nUWtorVYaMGAAPv/8c2RlZeHo0aMICwvDyJEjy3XwV199Fe+88w4mTJggviaRSDB9+nRMnz5d47Mx\nMTHYtm0bYmJikJiYiIEDB+LWrVsm/Uuqa/qs50xJEabSPnpUmEr7lVcMt0RngwaAlxfwzjvqaqyy\ncuHs7Izjx49jwIABYnVHvXr1sGzZMjg4OCAnJwfZ2dnF/s3KykJGRgYyMzORkZGBrKwsZGZmIicn\nB1lZWcjJyUFOTg6ePn2Kp0+fIi8vD7m5ucjLyxPbHIpWDQEoVjVUuL0iPz9foxG0oiQSCTp37lzp\n/WuamtgWoC9aC4fQ0FCsXbsWXbt2xapVqzBs2DC8/vrr5Tp4//79ERcXV+x1KqF1Pzw8HP7+/jA3\nN4dUKoWjoyOioqLQq1evcp2L6UZeHrByJbBoEfDqq8ISnYbui9CokdAAXhHPPvssDh48iMGDByMr\nKwtEhH79+sHJyUknMSqVSjx9+rTEQqe0f1X/VxVKqoIpMzNTLKxUn1F95ebmil+qQqlFixY6+Z5Y\n7aK1cKhTpw4mTZqESZMmVdtJV65ciZ9++gk9evTAsmXLYGNjg6SkJI2CwMHBAYmJidV2zppIoVDo\n9C+jiAjg3XeBNm2EKa2NoWtqacqTi379+mHXrl148cUXkZOTAwsLC53FU6dOHbF7rD4VFBTUyD73\nlaXr35GaTGvhcOrUKSxcuBBxcXFizwuJRIK///67UiecMmUKPv74YwDARx99hBkzZmDt2rUlfra0\nto2goCBxEIyNjQ3kcrl4Aaj6V/N25bdTUoCdOz3w++/AxIkK9O0LODvrP57ERGDKFAXefhsYPLjs\nz6toO76FhQVmzpyJzz//HI0aNTKKfFfn9smTJxEdHW008Rh6Ozo62qji0ee2QqHA+vXrAUBj0GC5\naWux7tSpEx04cIBSUlLo3r174ld5xcbGltq7qfB7ISEhFBISIr43ePBgOnfuXLF9yhEyq6SsLKHn\nT9Omwr//TY+jdyXNiVTd/v333+o/KGNGrKL3Tq1PDjY2NtW6ZnRycjJatmwJQJjZUdWTycfHBwEB\nAZg+fToSExNx+/ZtuLu7V9t5WemIgPBwoR7/2WeB33/X/2psKvpay1k14pYxVjKthYOnpydmzpyJ\nF198UaNLq2pASFn8/f1x4sQJ3L9/H23atMHChQuhUCgQHR0NiUSCdu3aYdWqVQAAmUwGX19fyGQy\n1K1bF2FhYQabfsBUKKqhPvXGDeC994D4eGD1amDgwOqJrTL++Qfo0QOYOhWYO7diA+qqIxc1BedC\njXNReVoLh3PnzkEikeDixYsar0dGRmo9eEmLebz22mulfj44OBjBwcFaj8uq7vFj4NNPhfEKwcHC\nDdnQK6S1bSus91CZ6lHGWPUq9zKhxoKXCa0aIuDnn4UxC4MGCSuzcc9Hxmq+it47S31y2LhxI8aP\nH49ly5ZpVO8QkTiQjZmWS5eEgWO5ucKKaIYcQpKTA+iwJyljrIpKHX6clZUFAHjy5InGV0ZGRpmz\nKTL9KdqNszQPHgCTJwPDhgkD2c6fN1zBoFrLuVMnID29+o5b3lzUBpwLNc5F5ZX65PDmm28CEOZC\nKko1MyMzbkql0Mi8YAHw0kvC6GZbW8PFU7gn0t69gI2N4WJhjJWtUm0Obdq00ToPvq5wm0P5nDol\nVCFZWwvTXxSa+1DviISG79mzK9cTiTFWddXW5sBMU1ISMGsWcOIEsHQp4OtruAnyVJKTgXXrdDtu\ngTFWvXjKUxNWuD41Nxf44gugWzehS+j160JVkqELBgBo1UpYiEeXBQPXLatxLtQ4F5VX6pNDo0aN\nSh2EpmqsZsbh0CFhIFvHjsJ6C/+te84YY5XG4xxM2N9/A++/L6zh/NVXwPDhho2HCDhyRBg/YQxP\nLIwxtYreO7layQTl5Qmjm93dhS6pf/5p+IIhMVFYnW3OHGFtacaYaePCwcRcvgw89xxw9izw7bcK\nzJ0LFJrySu9U4xbc3ITlQ6OigCZN9B8H1y2rcS7UOBeVx72VTMTTp8LTwurVwJIlwIQJQo8kQ3rw\nQIhD1zOoMsb0j9scTEBUlDCyuWNH4LvvgP9mPDe43FyhsHrzTR63wJixq+i9kwsHI5adDcyfD/z0\nk9DgbCxdUxljpocbpGuI06cBuRy4exe4cgXw8yteMHB9qhrnQo1zoca5qDwuHIxMZiYwbRowbpww\nnfa2bYCdnWFjSkwUqrWqc6I8xphx42olIxIZCbz+OtCnj1CN1LSpYePhOZEYqzl4biUT9OSJMB/S\nvn1Cg/OIEYaOSH9rOTPGjBNXKxnY4cOAi4swsO3q1YoVDLqqT/33X+DZZ9XjFkyhYOC6ZTXOhRrn\novJ0Wji89tprsLe3R9dC80WnpaXB29sbnTp1wqBBg5BeqCI7JCQEHTt2hLOzM44cOaLL0AwuPR2Y\nOFHoBrpmDfDDD8azvoGdnbBq3McfczUSY7WVTtscfvvtNzRq1AgTJkzA1atXAQCzZs1Cs2bNMGvW\nLCxevBgPHz5EaGgoYmJiEBAQgAsXLiAxMREDBw7ErVu3YGamWX7VhDaHffuEldl8fIDFiwErK0NH\nxBir6YyqK2v//v1hW2TpsT179iAwMBAAEBgYiN27dwMAwsPD4e/vD3Nzc0ilUjg6OiIqKkqX4end\ngwfAK68IM6j+/DMQFmb4giEz07DnZ4wZJ723OaSmpsLe3h4AYG9vj9TUVABAUlISHBwcxM85ODgg\nMTFR3+HpzK5dwmpszZsL4xY8PKp+zKrUp6rmRHJ0BP77EZg0rltW41yocS4qz6C9lSQSSalrRqje\nL0lQUBCkUikAwMbGBnK5HB7/3W1VF4OxbP/6qwIrVgDJyR7YsQPIy1PgwgXDxnfvHrB+vQeSkoBP\nP1Xg+nXA3t448lXZbRVjiceQ29HR0UYVjyG3o6OjjSoefW4rFAqsX78eAMT7ZYWQjsXGxpKLi4u4\n7eTkRMnJyURElJSURE5OTkREFBISQiEhIeLnBg8eTOfOnSt2PD2EXC0KCog2byaytyeaNYsoK8vQ\nEQkxrVtH1Lw50cKFRLm5ho6IMaYvFb136r1aycfHBxs2bAAAbNiwAaNHjxZf37p1K3JzcxEbG4vb\nt2/D3d1d3+FVi+RkYMwY4PPPgT17hEbnBg0MHRWQlgZs2iSMW+CeSIyxsui0cPD390efPn1w8+ZN\ntGnTBj/++CPmzJmDo0ePolOnTjh+/DjmzJkDAJDJZPD19YVMJsPQoUMRFhZWZpWTMVKNKHZ1FdoX\nfv9dWJBHV4pWqWjTtCkQEWEa4xYqqqK5qMk4F2qci8rTaZvDli1bSnw9IiKixNeDg4MRHBysy5B0\nJj5eGFGckiIMbHNzM3REjDFWeTy3UhURCYPY5s0TuqjOnm346hoioTprxAigTh3DxsIYMw48t5Ie\nxfmxklAAAAt9SURBVMYKE+U9eSJMmufiYuiINOdE6tUL+K/XMGOMVQjPrVQJBQXAN98IazkPHgyc\nOWOYgqFwfWpJaznXpoKB65bVOBdqnIvK4yeHCiooAAYNArKygFOnAGdnQ0cEPHoEBATwDKqMserD\nbQ6VcP480KOH8dTnK5XCU0NgoOHbOxhjxonXkGaMMVaMUU28x3SL61PVOBdqnAs1zkXlceFgQhIT\nhbaFmjBRHmPMuHG1kgngtZwZY1XF4xxqGF7LmTFmCFytZMQePRJ6RZW2ljPXp6pxLtQ4F2qci8rj\nJwcjZm0N/PGHsKYzY4zpE7c5MMZYLcBdWU3Uo0eGjoAxxtS4cDAw1ZxIHTsCd+9WbF+uT1XjXKhx\nLtQ4F5XHbQ4GlJAg9ERKThZ6Ij3zjKEjYowxAbc5GEDhcQvvvAPMmcPjFhhjusXjHExARgawa5ew\nZGe3boaOhjHGijNYm4NUKkW3bt3g5uYG9/8WWk5LS4O3tzc6deqEQYMGIT093VDh6ZSVFbBvX9UL\nBq5PVeNcqHEu1DgXlWewwkEikUChUODy5cuIiooCAISGhsLb2xu3bt2Cl5cXQkNDDRUeY4zVagZr\nc2jXrh0uXryIpk2biq85OzvjxIkTsLe3R0pKCjw8PHDjxg2N/UypzYEI2LkTGDUKqFfP0NEwxmoz\nkxnnIJFIMHDgQPTo0QNr1qwBAKSmpsL+v7Ut7e3tkWrC048mJADDhwMhIcC//xo6GsYYqxiDFQ6n\nT5/G5cuXcfDgQXz77bf47bffNN6XSCSQSCQGiq7yVOMWnn0W6N1bWDXOwUE35+L6VDXOhRrnQo1z\nUXkG663UsmVLAEDz5s0xZswYREVFidVJLVq0QHJyMuxKmVQoKCgIUqkUAGBjYwO5XA4PDw8A6ovB\nENsZGYCXlwJpaUBEhAe6dTNsPLVpW8VY4jHkdnR0tFHFY8jt6Ohoo4pHn9sKhQLr168HAPF+WREG\naXPIysqCUqmElZUVMjMzMWjQIMyfPx8RERFo2rQpZs+ejdDQUKSnpxdrlDbmNgciYNMm4KWXeNwC\nY8y4mMQa0rGxsRgzZgwAID8/Hy+//DLmzp2LtLQ0+Pr64p9//oFUKsX27dthY2OjGbARFw6MMWas\nTKJwqAouHNQUCoX4OFnbcS7UOBdqnAs1k+mtZMoSEoD//Q+IizN0JIwxphv85FABPCcSY8xU8dxK\nOqKaQTUlhedEYozVfFytVA5ZWUCfPupxC8ZSMBTtxlmbcS7UOBdqnIvK4yeHcrC0FNZytrU1dCSM\nMaYf3ObAGGO1APdWqqIHDwwdAWOMGR4XDv9RzYnUuTNw86ahoykfrk9V41yocS7UOBeVx20OKN4T\nycnJ0BExxphh1eo2Bx63wBirLXicQwU8fQocOMDjFhhjrKha3eZgYQHs2GG6BQPXp6pxLtQ4F2qc\ni8qr1YUDY4yxktWKNgciYMsWYS3nhg11FBhjjBkxbnMoonBPpD59uHBgjLHyqLHVSiWt5VyJlfKM\nGtenqnEu1DgXapyLyquRTw5PnwJjxvAMqowxVlk1ts3hl1+AkSN53AJjjAG8TChjjLESmPzEe4cO\nHYKzszM6duyIxYsXGzoco8b1qWqcCzXOhRrnovKMqnBQKpWYOnUqDh06hJiYGGzZsgXXr18v9fMJ\nCUL31DI+UqNFR0cbOgSjwblQ41yocS4qz6gKh6ioKDg6OkIqlcLc3Bx+fn4IDw8v9rnCPZF69AAc\nHQ0QrBFIT083dAhGg3OhxrlQ41xUnlH1VkpMTESbNm3EbQcHB5w/f77Y54YP555IjDGmS0b15CCR\nSMr1uV69jGstZ0OJi4szdAhGg3OhxrlQ41xUARmRs2fP0uDBg8XtRYsWUWhoqMZnOnToQAD4i7/4\ni7/4qwJfHTp0qND92Ki6subn58PJyQnHjh1Dq1at4O7uji1btqBz586GDo0xxmoVo2pzqFu3Lr75\n5hsMHjwYSqUSEydO5IKBMcYMwKieHBhjjBkHo2qQ1qY2D5B77bXXYG9vj65du4qvpaWlwdvbG506\ndcKgQYNqRbe9+Ph4eHp6okuXLnBxccHXX38NoHbmIicnBz179oRcLodMJsPcuXMB1M5cqCiVSri5\nuWHkyJEAam8upFIpunXrBjc3N7i7uwOoeC5MpnCo6AC5mubVV1/FoUOHNF4LDQ2Ft7c3bt26BS8v\nL4SGhhooOv0xNzfH8uXLce3aNZw7dw7ffvstrl+/XitzYWFhgcjISERHR+PKlSuIjIzEqVOnamUu\nVFasWAGZTCb2fKytuZBIJFAoFLh8+TKioqIAVCIXVe5ipCdnzpzR6MkUEhJCISEhBoxI/2JjY8nF\nxUXcdnJyopSUFCIiSk5OJicnJ0OFZjCjRo2io0eP1vpcZGZmUo8ePejPP/+stbmIj48nLy8vOn78\nOI0YMYKIau/viFQqpfv372u8VtFcmMyTQ0kD5BITEw0YkeGlpqbC3t4eAGBvb4/U1FQDR6RfcXFx\nuHz5Mnr27Flrc1FQUAC5XA57e3uxuq225uL999/HkiVLYGamvq3V1lxIJBIMHDgQPXr0wJo1awBU\nPBdG1VupLOUdIFdbSSSSWpWjjIwMjB07FitWrICVlZXGe7UpF2ZmZoiOjsajR48wePBgREZGarxf\nW3Kxb98+2NnZwc3NrdTJ9mpLLgDg9OnTaNmyJe7duwdvb284OztrvF+eXJjMk0Pr1q0RHx8vbsfH\nx8PBwcGAERmevb09UlJSAADJycmws7MzcET6kZeXh7Fjx2L8+PEYPXo0gNqbCxVra2sMHz4cv//+\ne63MxZkzZ7Bnzx60a9cO/v7+OH78OMaPH18rcwEALVu2BAA0b94cY8aMQVRUVIVzYTKFQ48ePXD7\n9m3ExcUhNzcX27Ztg4+Pj6HDMigfHx9s2LABALBhwwbxRlmTEREmTpwImUyGadOmia/Xxlzcv39f\n7HGSnZ2No0ePws3NrVbmYtGiRYiPj0dsbCy2bt2KF154ARs3bqyVucjKysKTJ/9v745ZGonCKAwf\nCxHBzkq0EVELGWYG8gd0sBJNYyFYpDOVgvgfLIRUomgjEXtRBAWLINgqgqjYaCOkM4qLRETybbXB\n7GVJdJNx3bxPd2fuwOEWc2AmufNDkvT8/KzDw0N5nvfxtWjUC5FG2N/ft4GBAevr67PFxcWvjhOr\nqakp6+rqstbWVuvp6bGNjQ27v7+3KIqsv7/fRkdH7eHh4atjNtzx8bG1tLSY7/sWBIEFQWAHBwdN\nuRbn5+cWhqH5vm+e59nS0pKZWVOuxXtHR0c2Pj5uZs25Fre3t+b7vvm+b0NDQ+V75UfXgj/BAQAc\n3+axEgAgPpQDAMBBOQAAHJQDAMBBOQAAHJQDAMBBOQAAHJQDAMBBOQAfkMvlND8/r52dnYrjHR0d\nFeNsNqvZ2dk4owF1RTkAH7C8vKzp6WkFQVBx/PcdLptl90/8v77Nlt3Av+Dl5UWJRKLqvF+70qyv\nr2ttbU2S9Pj4qN7eXuVyuYZmBOqBcgBqlMlkVCwWtbu7q2QyWXGuWCwqDMPyuFAoKJlMKp1OK51O\n6+3tTSMjI1pYWIg7NvAplANQo0QioVKp5BSDJLW3t+vs7Kw83tzc1MnJSXk8NzenKIo0NjYWS1bg\nb1EOQI0uLy/leV5Nc99vdpzNZnV3d6fV1dVGRQPqjhfSQI0uLi7K5RBFkfL5fNVrTk9PlclktLW1\n1eh4QF1RDkCN8vm8uru7VSqVdHNzo87OzvK5P/1aaWVlRYVCQcPDwwrDUDMzM7FmBj6Lx0pAFdvb\n23p9fS1/s/zq6kqTk5Nqa2srz3l6eqq4JpVKKZVKxZoTqCe+BAdUsbe3p+vra01MTGhwcPCr4wCx\noBwAAA7eOQAAHJQDAMBBOQAAHJQDAMBBOQAAHJQDAMBBOQAAHJQDAMDxE1gOcGyJmOWmAAAAAElF\nTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f443fefdb90>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Hence for a constant breakdown torque at all frequencies,\n",
+ "V/f ratio has to be progressively increased with increase in frequency\n"
+ ]
+ }
+ ],
+ "prompt_number": 209
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.11,Page No:202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected squirrel Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 # rated speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "Wms=2*math.pi*Ns/60 #synchronous speed\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "D=Ns-N #drop in speed from no load to full load torque at 50 Hz\n",
+ "\n",
+ "#(i)when the frequency is 30 Hz and 80% of full load torque\n",
+ "f1=30 #given frequency in Hz\n",
+ "d=D*0.8 #drop in speed from no load to 80% full load torque\n",
+ "Ns1=120*f1/P #synchronous speed at the given frequency f1=30 Hz\n",
+ "N1=Ns1-d #required motor speed \n",
+ "\n",
+ "#(ii)when the speed is 1000 rpm for a full load torque\n",
+ "N2=1000 #given speed in rpm\n",
+ "Ns2=N2+D #synchronous speed\n",
+ "f2=P*Ns2/120 #required frequency\n",
+ "\n",
+ "#when the speed is 1100 rpm and the frequency is 40 Hz\n",
+ "N3=1100 #given speed in rpm\n",
+ "f3=40 #given frequency in Hz\n",
+ "Ns3=120*f3/P #synchronous speed at the given frequency f1=40 Hz\n",
+ "D1=Ns3-N3 #drop in speed from no load to N1=1100 rpm\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "Tf=(3/Wms)*(Vl/math.sqrt(3))**2*(Rr_/s)/x #full load torque\n",
+ "T1=D1/D*Tf #required torque \n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Hence the required motor speed is :\",round(N1),\"rpm\"\n",
+ "print\"\\n(ii)Hence the required frequency is :\",round(f2,2),\"Hz\"\n",
+ "print\"\\n(iii)Hence the required torque is :\",round(T1,2),\"N-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Hence the required motor speed is : 796.0 rpm\n",
+ "\n",
+ "(ii)Hence the required frequency is : 37.67 Hz\n",
+ "\n",
+ "(iii)Hence the required torque is : 19.52 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 210
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.12,Page No:204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 #rated speed\n",
+ "\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "N1=Ns-N #increase in speed from no load to full torque rpm\n",
+ "#(i)when f1=30Hz and 80% of full load\n",
+ "Ns=120*f/P\n",
+ "f1=30 #frequency \n",
+ "N2=0.8*N1 #increase in speed from no load to 80% of full torque rpm\n",
+ "Ns1=f1/f*Ns\n",
+ "N=Ns1+N2 #machine speed\n",
+ "\n",
+ "#(ii)at a speed of 1000rpm\n",
+ "N2=1000 #given speed in rpm\n",
+ "N3=N2-N1 #synchronous speed\n",
+ "f3=P*N3/120 #required frequency\n",
+ "\n",
+ "#(iii)when frequency is 40Hz and speed is 1300 rpm\n",
+ "f4=40 #frequency in hz\n",
+ "N2=1300 #speed in rpm\n",
+ "Ns=120*f4/P #required synchronous speed in rpm\n",
+ "N4=N2-Ns #increase in speed from no load speed in rpm\n",
+ "Tf=25.37 #full load torque as calculated in Ex-6.11\n",
+ "Tm=-N4/N1*Tf #motor torque\n",
+ "\n",
+ "#(iv) when the motor is under dynamic braking\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Required speed is :\",N,\"rpm\"\n",
+ "print\"\\n(ii)required frequency is:\",f3,\"Hz\"\n",
+ "print\"\\n(iii)Required motor torque :\",round(Tm,2),\"N-m\"\n",
+ "print\"\\n(iv)The value of the frequency,speed and motor torque calculated in (i),(ii) and(iii)\"\n",
+ "print\" will be the same when the motor is operated under dynamic braking\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Required speed is : 1004.0 rpm\n",
+ "\n",
+ "(ii)required frequency is: 29.0 Hz\n",
+ "\n",
+ "(iii)Required motor torque : -19.52 N-m\n",
+ "\n",
+ "(iv)The value of the frequency,speed and motor torque calculated in (i),(ii) and(iii)\n",
+ " will be the same when the motor is operated under dynamic braking\n"
+ ]
+ }
+ ],
+ "prompt_number": 211
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.13,Page No:204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor is same as that of Ex-6.9\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 #rated speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Wms=4*math.pi*f/P\n",
+ "f1=60 #frequency in Hz during speed control of the motor\n",
+ "K=f1/f #the value of K at 60Hz \n",
+ "x=Rs+math.sqrt(Rs**2+K**2*(Xs+Xr_)**2)\n",
+ "Tmax_=3/(2*K*Wms)*(Vl/math.sqrt(3))**2/x #torque at 60 Hz frequency\n",
+ "z=Rs+math.sqrt(Rs**2+(Xs+Xr_)**2)\n",
+ "Tmax=3/(2*Wms)*(Vl/math.sqrt(3))**2/z #maximum torque\n",
+ "ratio=Tmax_/Tmax #ratio\n",
+ "\n",
+ "#results\n",
+ "print\"Ratio of Motor breakdown torque at 60Hz to rated torque at 50Hz is:\",round(ratio,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of Motor breakdown torque at 60Hz to rated torque at 50Hz is: 0.727\n"
+ ]
+ }
+ ],
+ "prompt_number": 212
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.14,Page No:209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "print\"When operating at a frequency K times rated frequency f then\"\n",
+ "print\"Im**2=[((Rr_/Ksf)**2+(2*pi*Lr_)**2)/((Rr_/Ksf)**2+(2*pi*Lm+2*Pi*Lr_)**2)]*Is**2----(1)\"\n",
+ "print\"Since Im is constant for constant flux therefore\"\n",
+ "print\"K*s*f=constant--------(2)\"\n",
+ "print\"K*Wms*s=constant-------(3) which is the slip speed\"\n",
+ "print\"s*K=constant----------(4)\"\n",
+ "print\"Thereofre for a frequency K*f\"\n",
+ "print\"T=(3/K/Wms)*[(Is*K*Xm)**2*(Rr_/s)/((Rr_/s)**2+K**2*(Xm+Xr_)**2]\"\n",
+ "print\"T=(3/K/Wms*s)*[(Is*Xm)**2*(Rr_)/((Rr_/s/K)**2+(Xm+Xr_)**2]-------(5)\"\n",
+ "print\"\\nHence for a given slip speed (K*Wms*s),K*s is constant and from (1) for a given K*s*f and constant flux\"\n",
+ "print\"operation Is is fixed. Now from (5) T is also fixed. Thus, motor develps a constant torque and draws a\"\n",
+ "print\"constant current from the inverter at all frequencies for a given slip speed\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When operating at a frequency K times rated frequency f then\n",
+ "Im**2=[((Rr_/Ksf)**2+(2*pi*Lr_)**2)/((Rr_/Ksf)**2+(2*pi*Lm+2*Pi*Lr_)**2)]*Is**2----(1)\n",
+ "Since Im is constant for constant flux therefore\n",
+ "K*s*f=constant--------(2)\n",
+ "K*Wms*s=constant-------(3) which is the slip speed\n",
+ "s*K=constant----------(4)\n",
+ "Thereofre for a frequency K*f\n",
+ "T=(3/K/Wms)*[(Is*K*Xm)**2*(Rr_/s)/((Rr_/s)**2+K**2*(Xm+Xr_)**2]\n",
+ "T=(3/K/Wms*s)*[(Is*Xm)**2*(Rr_)/((Rr_/s/K)**2+(Xm+Xr_)**2]-------(5)\n",
+ "\n",
+ "Hence for a given slip speed (K*Wms*s),K*s is constant and from (1) for a given K*s*f and constant flux\n",
+ "operation Is is fixed. Now from (5) T is also fixed. Thus, motor develps a constant torque and draws a\n",
+ "constant current from the inverter at all frequencies for a given slip speed\n"
+ ]
+ }
+ ],
+ "prompt_number": 213
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.15,Page No:210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1370 #rated speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=3.5 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=3 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "Xm=55 # magnetizing reactance in ohm\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed in rpm\n",
+ "s=(Ns-N)/Ns #full load slip\n",
+ "x=1j*Xm*(Rr_/s+1j*Xr_)\n",
+ "y=Rr_/s+1j*(Xr_+Xm)\n",
+ "Z=Rs+1j*Xs+x/y #total motor impedance\n",
+ "Isf=(Vl/math.sqrt(3))/abs(Z) #full load stator current\n",
+ "Irf_=Isf*(1j*Xm)/(Rr_/s+1j*(Xr_+Xm)) #full load rotor current\n",
+ "Tf=(3/Wms)*abs(Irf_)**2*Rr_/s #full load torque\n",
+ "N1=Ns-N #full load slip speed\n",
+ "#(i) when the motor is operating at 30Hz\n",
+ "f1=30 #given frequency in Hz\n",
+ "#at rated slep speedvalue of torque and stator current is same as the rated value\n",
+ "T=Tf \n",
+ "Is=abs(Isf) \n",
+ "Ns1=f1/f*Ns #synchronous at f1=30Hz\n",
+ "N2=Ns1-N1 #required motor speed at 30Hz\n",
+ "\n",
+ "#(ii)at a speed of 1200 rpm\n",
+ "N3=1200 #speed in rpm\n",
+ "Ns1=N3+N1 #required synchronous speed\n",
+ "f1=Ns1/Ns*f #required frequency at N2=1200rpm\n",
+ "\n",
+ "#(iii)when speed-torque curves are assumed to be straight lines at 30Hz at half the rated motor torque\n",
+ "f2=30 #frequency in Hz\n",
+ "N1_=N1/2 #slip at half the rated torque\n",
+ "Ns1=f2/f*Ns #synchronous at f1=30Hz\n",
+ "N4=Ns1-N1_ #required motor speed\n",
+ "\n",
+ "#(iv) When the motor is operating at 45hz and braking torque is equal to rated torque\n",
+ "f3=45 #given frequency in Hz\n",
+ "N1_=-N1 #slip speed when braking at rated torque\n",
+ "Ns1=f3/f*Ns #synchronous at f1=45Hz\n",
+ "N5=Ns1-N1_ #required motor speed\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)At 30Hz the required value of Torque is T:\",round(T,2),\"N-m \"\n",
+ "print\" Stator current is Is:\",round(Is,4),\"A\"\n",
+ "print\" Motor speed is :\",N2,\"rpm\"\n",
+ "print\"\\n(ii)Required inverter frequency is :\",round(f1,2),\"Hz\"\n",
+ "print\"\\n(iii)Required motor speed at 30Hz is:\",N4,\"rpm\"\n",
+ "print\"\\n(iv)Required motor speed at 45Hz is:\",N5,\"rpm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)At 30Hz the required value of Torque is T: 22.71 N-m \n",
+ " Stator current is Is: 7.2442 A\n",
+ " Motor speed is : 770.0 rpm\n",
+ "\n",
+ "(ii)Required inverter frequency is : 44.33 Hz\n",
+ "\n",
+ "(iii)Required motor speed at 30Hz is: 835.0 rpm\n",
+ "\n",
+ "(iv)Required motor speed at 45Hz is: 1480.0 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 214
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.16,Page No:215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import cmath\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the Delta connected slipring Induction motor\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=400 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "SR=2.2 #ratio of stator to rotor\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1 # rotor winding reactance in ohm \n",
+ "Rr_=0.2 # resistance of the rotor windings in ohm\n",
+ "s=0.04 # given slip when motor runs at full load\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "x=(Rr_/s)**2+Xr_**2\n",
+ "Tf=(3/Wms)*(Vl)**2*(Rr_/s)/x #full load torque\n",
+ "K=Tf/(Ns*(1-s))**2\n",
+ "N=850 #speed of the motor in rpm\n",
+ "Tl=K*N**2 #torque at the given speed N\n",
+ "s=(Ns-N)/Ns #slip at the given speed N\n",
+ "y=Tl*(Wms/3)/Vl**2 #y=X/(X**2+Xr_**2) and X=(Re+Rr_)/s\n",
+ "print\"The torque at the given speed of 850rpm is:\",round(Tl),\"N-m\"\n",
+ "print\"With a slip of s:\",s\n",
+ "print\"To find the external resistance connected the given quadratic equation is X**2-6.633X+1=0\"\n",
+ "print\"With X=(Re-Rr_)/s where Re is the required external resistance\" \n",
+ "a = 1\n",
+ "b = -1/y\n",
+ "c = 1\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "X1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "X2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "\n",
+ "#results\n",
+ "print\"The solution for X are \",round(X1.real,4),\"and\",round(X2.real,4)\n",
+ "Re1=X1*s-Rr_\n",
+ "Re2=X2*s-Rr_\n",
+ "\n",
+ "if (Re1.real>0) :\n",
+ " print\"\\nThe number Re1:\",round(abs(Re1),3),\"ohm is feasible:\"\n",
+ " R=Re1.real/SR**2\n",
+ " print\"Rotor referred value of the external resistance is:\",round(R,3),\"ohm\"\n",
+ "\n",
+ "if (Re2.real>0) :\n",
+ " print\"\\nThen Re2:\",round(abs(Re2),3),\"ohm is feasible\" \n",
+ " R=Re2.real/SR**2\n",
+ " print\"Hence Rotor referred value of the external resistance is:\",round(R,3),\"ohm\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The torque at the given speed of 850rpm is: 691.0 N-m\n",
+ "With a slip of s: 0.15\n",
+ "To find the external resistance connected the given quadratic equation is X**2-6.633X+1=0\n",
+ "With X=(Re-Rr_)/s where Re is the required external resistance\n",
+ "The solution for X are 0.1544 and 6.4786\n",
+ "\n",
+ "Then Re2: 0.772 ohm is feasible\n",
+ "Hence Rotor referred value of the external resistance is: 0.159 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 217
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.17,Page No:217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 #line voltage in V\n",
+ "P=6 # number of poles\n",
+ "Ns=120*f/P #synchronous speed\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xm=50 # magnetizing reatance\n",
+ "a=3.5 # stator to rotor turns ratio\n",
+ "delta=0 # duty ratio at the given breakdown torque\n",
+ "Sm=1 # slip at standstill\n",
+ "#calculation\n",
+ "#slip at maximum torque without an external resistance is Sm=Rr_/math.sqrt(Rs**2+(Xs+Xr_)**2) \n",
+ "#when an external resistanc Re referred to the stator is connected \n",
+ "x=Sm*math.sqrt(Rs**2+(Xs+Xr_)**2) #x=Re+Rr_\n",
+ "Re=x-Rr_\n",
+ "y=0.5*a**2*(1-delta) # y=0.5*a**2*R*(1-delta) #y=Re\n",
+ "R=Re/y\n",
+ "\n",
+ "N = Symbol('N')\n",
+ "Sm=(Ns-N)/Ns\n",
+ "c=(x*Sm-Rr_)/(0.5*a**2*R) #c=(1-delta)\n",
+ "delta=1-c #given duty ratio\n",
+ "\n",
+ "#results\n",
+ "print\"variation of the duty ratio is\",round(delta*1000/N,3),\"*N*10**(-3)\"\n",
+ "print\"Hence the duty ratio must change linearly with speed N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "variation of the duty ratio is 1.195 *N*10**(-3)\n",
+ "Hence the duty ratio must change linearly with speed N\n"
+ ]
+ }
+ ],
+ "prompt_number": 218
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.18,Page No:223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vl=440 # line voltage in V\n",
+ "P=6 # number of poles\n",
+ "N=970 # rated speed\n",
+ "n=2 # ratio of stator to rotor\n",
+ "Sm=0.25 # it is given the speed range is 25% below the synchronous speed which is proportional to the Slip\n",
+ "#parameters referred to the stator\n",
+ "Xr_=0.4 # rotor winding reactance in ohm\n",
+ "Xs=0.3 # stator winding reactance in ohm\n",
+ "Rr_=0.08 # resistance of the rotor windings in ohm\n",
+ "Rs=0.1 # resistance of the stator windings in ohm\n",
+ "alpha=165 # maximum value of the firing angle in degress\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P # synchronous speed\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "#(i) transformer turns ratio\n",
+ "a=-Sm/math.cos(math.radians(alpha)) #since Sm=a*math.cos(alpha) \n",
+ "m=n/a #since a=n/m where m is the transformer ratio\n",
+ "\n",
+ "#(ii)When speed is 780 rpm and firing angle is 140 degrees\n",
+ "N1=780 #given speed\n",
+ "alpha1=140 #given firing angle\n",
+ "s1=(Ns-N1)/Ns #slip at the given speed N1\n",
+ "Vd1=(3*math.sqrt(6)/math.pi)*s1*(Vl/math.sqrt(3))/n\n",
+ "Vd2=(3*math.sqrt(6)/math.pi)*(Vl/math.sqrt(3))/m*math.cos(math.radians(alpha1))\n",
+ "Rs_=Rs*(1/n)**2 #stator resistance referred to the rotor\n",
+ "Rr=Rr_*(1/n)**2 #rotor resistance referred to the rotor\n",
+ "Rd=0.01 #equivalent resistance of the DC link inductor\n",
+ "Id=(Vd1+Vd2)/(2*(s1*Rs_+Rr)+Rd)\n",
+ "T1=abs(Vd2)*Id/s1/Wms #required torque\n",
+ "\n",
+ "#(iii)when speed is 800rpm and firing angle is half the rated motor torque\n",
+ "N1=800 #given speed\n",
+ "s=(Ns-N)/Ns #rated slip\n",
+ "x=(Rs+Rr_/s)**2+(Xs+Xr_)**2\n",
+ "Trated=(3/Wms)*(Vl/math.sqrt(3))**2*(Rr_/s)/x #rated torque\n",
+ "T_half=Trated/2 #half rated torque\n",
+ "s1=(Ns-N1)/Ns #given slip at speed N1=800rpm\n",
+ "Vd1=(3*math.sqrt(6)/math.pi)*s1*(Vl/math.sqrt(3))/n\n",
+ "cos_alpha1 = Symbol('cos_alpha1')\n",
+ "Vd2=(3*math.sqrt(6)/math.pi)*(Vl/math.sqrt(3))/m*cos_alpha1\n",
+ "Id=(Vd1+Vd2)/(2*(s1*Rs_+Rr)+Rd)\n",
+ "T=abs(Vd2)*Id/s1/Wms #required torque\n",
+ "#let cos_alpha1=-X\n",
+ "X=-cos_alpha1\n",
+ "#since the given torque is half of the rated value\n",
+ "#To find the find the firing angle we assumed cos(alpha1)=-X\n",
+ "#The given quadratic equation is X**2-0.772X+0.06425=0\n",
+ "a = 1\n",
+ "b = -0.772\n",
+ "c = 0.06425\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "# find two solutions\n",
+ "X1 = (-b-cmath.sqrt(d))/(2*a)\n",
+ "X2 = (-b+cmath.sqrt(d))/(2*a)\n",
+ "alpha1=-math.acos(X2.real) #since cos(alpha1)=-X where alpha1 is radians\n",
+ "alpha1=math.degrees(alpha1) #angle in degrees\n",
+ "alpha1=180+alpha1 #required firing angle\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"(i)Transformer ratio is: \",round(m,3)\n",
+ "print\"\\n(ii)Required torque is :\",round(T1),\"N-m\"\n",
+ "print\" There is a slight difference in the answer for the torque due to accuracy i.e more number of decimal place\"\n",
+ "print\"\\n(iii)The half rated torque at the given speed of\",N1,\"rpm is:\",round(T_half,2),\"N-m\"\n",
+ "print\" With a slip of s:\",s1\n",
+ "print\"The solution for X are \",round(X1.real,4),\"and\",round(X2.real,4)\n",
+ "print\"For X1:\",round(X1.real,4),\" the motor is unstable hence we discard this value and we use X2:\",round(X2.real,4)\n",
+ "print\"\\nHence the required firing angle is :\",round(alpha1,1),\"\u00b0\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)Transformer ratio is: 7.727\n",
+ "\n",
+ "(ii)Required torque is : 271.0 N-m\n",
+ " There is a slight difference in the answer for the torque due to accuracy i.e more number of decimal place\n",
+ "\n",
+ "(iii)The half rated torque at the given speed of 800 rpm is: 302.66 N-m\n",
+ " With a slip of s: 0.2\n",
+ "The solution for X are 0.0949 and 0.6771\n",
+ "For X1: 0.0949 the motor is unstable hence we discard this value and we use X2: 0.6771\n",
+ "\n",
+ "Hence the required firing angle is : 132.6 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 219
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.19,Page No:225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the star connected Induction motor is same as that of Ex-6.17\n",
+ "f=50 # frequency in HZ\n",
+ "Vs=440 # line voltage in V\n",
+ "P=4 # number of poles\n",
+ "#parameters referred to the stator\n",
+ "Xr_=1.2 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=0.4 # resistance of the rotor windings in ohm\n",
+ "Rs=0.5 # resistance of the stator windings in ohm\n",
+ "Xm=50 # magnetizing reatance\n",
+ "a=3.5 # stator to rotor turns ratio\n",
+ "\n",
+ "#calculation\n",
+ "Ns=120*f/P # synchronous speed in rpm\n",
+ "Wms=2*math.pi*Ns/60 # synchronous speed in rad/s\n",
+ "#(i)when motor speed is 1200rpm with a voltage of 15+0j V\n",
+ "V=cmath.rect(15,0)\n",
+ "N1=1200 #speed in rpm\n",
+ "Vr_=a*V #rotor voltage\n",
+ "s1=(Ns-N1)/Ns #slip at the given speed N1=1200 rpm\n",
+ "Z=Rs+Rr_/s1+1j*(Xs+Xr_) #total impedance\n",
+ "Ir_=(Vs/math.sqrt(3)-Vr_/s1)/Z #rotor current\n",
+ "phi_r=cmath.phase(Vr_)-cmath.phase(Ir_) #angle between Vr_ and Ir_\n",
+ "Pr=3*(abs(Ir_))**2*Rr_ #rotor copper loss\n",
+ "P1=3*abs(Vr_)*abs(Ir_)*math.cos(phi_r) #power absorbed by Vr_\n",
+ "Pg=(Pr+P1)/s1 #gross power \n",
+ "T=Pg/Wms #required motor torque\n",
+ "\n",
+ "#(ii)when motor speed is 1200rpm with a unity power factor \n",
+ "N1=1200 #speed in rpm\n",
+ "Ir_=cmath.rect(abs(Ir_),0) #machine is operating at unity power factor\n",
+ "x=Ir_*Z #x=(Vs-Vr_/s1)*phi_r where phi_r is the angle between Vr_ and Ir_\n",
+ "\n",
+ "#x=a+b\n",
+ "d=(Vs/math.sqrt(3)-Vr_/s1*math.cos(phi_r))**2\n",
+ "e=(Vr_/s1*math.sin(phi_r))**2\n",
+ "f=x/(d+e)\n",
+ "theta=cmath.phase(f) #required angle in radian\n",
+ "\n",
+ "#Now we should solve for the quadratice equation for the rotor current\n",
+ "# 0.9*Ir_**2 + 50.8*Ir_ + 90.12 = 0\n",
+ "a1 = 0.9\n",
+ "b1 = 50.8\n",
+ "c1 = 90.12\n",
+ "# calculate the discriminant\n",
+ "d = (b1**2) - (4*a1*c1)\n",
+ "# find two solutions\n",
+ "Ir_1 = (-b1-cmath.sqrt(d))/(2*a1)\n",
+ "Ir_2 = (-b1+cmath.sqrt(d))/(2*a1)\n",
+ "\n",
+ "Ir_=Ir_2 #Ir_2 is chosen because for Ir_1 the motor is unstable\n",
+ "Vr_sin_phi_r=abs(Ir_)/2.083\n",
+ "Vr_cos_phi_r=s1*(Vs/math.sqrt(3)+2.5*Vr_sin_phi_r)\n",
+ "Vr_=Vr_cos_phi_r+1j*Vr_sin_phi_r #total rotor voltage referred to the stator\n",
+ "Vr_=Vr_/a #total rotor voltage referred to the rotor\n",
+ "phase=round(math.degrees(cmath.phase(Vr_))) #required phase of the voltage in degrees\n",
+ "\n",
+ "#results\n",
+ "print\"(i)The torque is :\",round(T,2),\"N-m and since it is negative the motor is operating in regenerative braking \"\n",
+ "print\"\\n(ii)Now theta \u03b8:\",round(math.degrees(theta),2),\"\u25e6\"\n",
+ "print\" The solution for Ir_ are \",round(Ir_1.real,3),\"and\",round(Ir_2.real,3)\n",
+ "print\" We choose Ir_:\",round(Ir_2.real,3),\"A since higher value corresponds to unstable region\"\n",
+ "print\"\\n Hence the required voltage magnitude is Vr:\",round(abs(Vr_),2),\"V\",\";phase:\",phase,\"\u25e6\"\n",
+ "print\"\\n Note :There is a slight difference in the answers due to accuracy i.e more number of decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i)The torque is : -8.61 N-m and since it is negative the motor is operating in regenerative braking \n",
+ "\n",
+ "(ii)Now theta \u03b8: 43.83 \u25e6\n",
+ " The solution for Ir_ are -54.611 and -1.834\n",
+ " We choose Ir_: -1.834 A since higher value corresponds to unstable region\n",
+ "\n",
+ " Hence the required voltage magnitude is Vr: 14.64 V ;phase: 1.0 \u25e6\n",
+ "\n",
+ " Note :There is a slight difference in the answers due to accuracy i.e more number of decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 220
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example No:6.20,Page No:234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the single phase Induction motor \n",
+ "f=50 # frequency in HZ\n",
+ "Vs=220 # supply voltage in V\n",
+ "P=4 # number of poles\n",
+ "N=1425 # rated speed in rpm\n",
+ "#parameters referred to the stator\n",
+ "Xr_=6 # rotor winding reactance in ohm\n",
+ "Xs=Xr_ # stator winding reactance in ohm\n",
+ "Rr_=5 # resistance of the rotor windings in ohm\n",
+ "Rs=2 # resistance of the stator windings in ohm\n",
+ "Xm=60 # magnetizing reatance\n",
+ "\n",
+ "#calculation\n",
+ "N1=1200 #when the motor is operating at the given speed in rpm\n",
+ "Ns=120*f/P # synchronous speed\n",
+ "Wms=2*math.pi*Ns/60\n",
+ "s=(Ns-N)/Ns #rated slip\n",
+ "\n",
+ "Zf=1j*(Xm)*(Rr_/s+1j*Xr_)/2/(Rr_/s+1j*(Xr_+Xm))\n",
+ "Rf=Zf.real ; Xf=Zf.imag\n",
+ "Zb=1j*(Xm)*(Rr_/(2-s)+1j*Xr_)/2/(Rr_/(2-s)+1j*(Xr_+Xm))\n",
+ "Rb=Zb.real ; Xb=Zb.imag\n",
+ "Zs=Rs+1j*Xs\n",
+ "Z=Zs+Zf+Zb\n",
+ "Is=(Vs)/Z\n",
+ "T=(abs(Is))**2/Wms*(Rf-Rb)\n",
+ "Tl=T\n",
+ "K=Tl/N**2\n",
+ "\n",
+ "#therefore for a speed of of N1=1200 rpm we get \n",
+ "Tl=K*N1**2 #required load torque for the given speed N1\n",
+ "s1=(Ns-N1)/Ns # slip for the given speed N1\n",
+ "\n",
+ "Zf=1j*(Xm)*(Rr_/s1+1j*Xr_)/2/(Rr_/s1+1j*(Xm))\n",
+ "Rf=Zf.real ; Xf=Zf.imag\n",
+ "Zb=1j*(Xm)*(Rr_/(2-s1)+1j*Xr_)/2/(Rr_/(2-s1)+1j*(Xr_+Xm))\n",
+ "Rb=Zb.real ; Xb=Zb.imag\n",
+ "x=(Wms*Tl)/(Rf-Rb) #since Tl=(abs(Is))**2/Wms*(Rf-Rb) and x=Is**2\n",
+ "Is=math.sqrt(x)\n",
+ "Z=Zs+Zf+Zb\n",
+ "V=Is*abs(Z)\n",
+ "\n",
+ "#results\n",
+ "print\"Hence the motor terminal voltage at the speed of\",N1,\"rpm is : \",round(V,1),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the motor terminal voltage at the speed of 1200 rpm is : 127.9 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 221
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter7.ipynb b/Fundamentals_of_Electrical_Drives/Chapter7.ipynb
new file mode 100755
index 00000000..63650d6e
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter7.ipynb
@@ -0,0 +1,416 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Synchronous Motor and Brushless dc Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.1,Page no:247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor\n",
+ "Pm1=500*1000 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=3.3*1000 # line voltage in V\n",
+ "pf=0.8 # power factor lagging\n",
+ "P=4 # number of poles\n",
+ "I=10 # field current in A\n",
+ "Xs=15 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "Wms=50*math.pi # synchronous speed in rad/sec\n",
+ "Pm=Pm1/2 # power at half the rated torque when the losses are neglected\n",
+ "\n",
+ "#calculation\n",
+ "V=Vl/math.sqrt(3) #phase voltage\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "rad=math.acos(pf)\n",
+ "\n",
+ "Is=cmath.rect(Is,-rad) #rated current in vector form\n",
+ "V=cmath.rect(V,0) #rated phase voltage in rectangular form\n",
+ "E=V-Is*1j*Xs #back emf\n",
+ "\n",
+ "#(i) when field current has not changed\n",
+ "sin_delta=Pm*Xs/(3*abs(V)*abs(E)) \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(V-cmath.rect(abs(E),-delta))/(1j*Xs) #armature current\n",
+ "Is1=cmath.polar(Is)\n",
+ "x=math.degrees(Is1[1]) #where x=Is which is the required armature current \n",
+ "power_factor=math.cos(Is1[1]) #power factor \n",
+ "\n",
+ "#(ii) At unity power factor and rated torque\n",
+ "cos_phi=1\n",
+ "Is=Pm1/(3*V) #since Pm1=3*V*Is\n",
+ "E1=V-Is*1j*Xs\n",
+ "If=abs(E1)/abs(E)*I #field current\n",
+ "\n",
+ "#(iii) At the field current of 12.5 A\n",
+ "If1=12.5 #field current \n",
+ "E2=If1/I*abs(E)\n",
+ "Is=math.sqrt(E2**2-abs(V)**2)/Xs #since E2=abs(V-Is*1j*Xs)\n",
+ "Pm=3*abs(V)*Is*cos_phi #power output at the given field current\n",
+ "T=Pm/Wms #required torque\n",
+ "\n",
+ "#results\n",
+ "print\"i)armature current :\",round(Is1[0],2),round(x),\"\u00b0\",\"A\"\n",
+ "print\" power factor\",round(power_factor,2),\"lagging\"\n",
+ "print\"\\nii)field current at unity power factor at rated torque:\",round(If,2),\"A\"\n",
+ "print\"\\niii)Required torque is:\",round(T,1),\"N-m\"\n",
+ "print\"Note: there is a slight difference in the answer due to the decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)armature current : 52.76 -34.0 \u00b0 A\n",
+ " power factor 0.83 lagging\n",
+ "\n",
+ "ii)field current at unity power factor at rated torque: 14.43 A\n",
+ "\n",
+ "iii)Required torque is: 1507.2 N-m\n",
+ "Note: there is a slight difference in the answer due to the decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.2,Page no:249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor is same as that of Example-7.1\n",
+ "Pm1=500*1000 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=3.3*1000 # line voltage in V\n",
+ "pf=0.8 # power factor lagging\n",
+ "P=4 # number of poles\n",
+ "I=10 # field current in A\n",
+ "Xs=15 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "Pm=Pm1/2 # power at half the rated torque when the losses are neglected\n",
+ "\n",
+ "#calculation\n",
+ "Wms=50*math.pi # synchronous speed in rad/sec\n",
+ "V=Vl/math.sqrt(3) # phase voltage\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "rad=math.acos(pf)\n",
+ "\n",
+ "Is=cmath.rect(Is,-rad) #rated current in vector form\n",
+ "V=cmath.rect(V,0) \n",
+ "E=V-Is*1j*Xs #back emf\n",
+ "\n",
+ "#(i) at rated current and unity power factor\n",
+ "E1=V-abs(Is)*1j*Xs\n",
+ "delta=cmath.phase(E1) #phase angle of E1\n",
+ "Pm=3*abs(V)*abs(E1)*math.sin(delta)/Xs #mechanical power developed\n",
+ "T=Pm/Wms #braking torque\n",
+ "If=abs(E1)/abs(E)*I #field current\n",
+ "\n",
+ "#(ii) at field current of 15A and 500kW output\n",
+ "If1=15 #field current\n",
+ "Pm=-500*1000 #output power \n",
+ "E2=If1/I*abs(E)\n",
+ "sin_delta=Pm*Xs/(3*abs(V)*abs(E2)) \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(cmath.rect(E2,abs(delta))-V)/(1j*Xs) #armature current\n",
+ "Is=cmath.polar(Is)\n",
+ "x=(Is[1])*180/math.pi #phase angle of Is\n",
+ "power_factor=math.cos(Is[1]) #power factor\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"i)braking torque :\",round(T,1),\"N-m\"\n",
+ "print\" Field current\",round(If,2),\"A\"\n",
+ "print\"\\nii)armature current :\",round(Is[0],2),round(x,2),\"\u00b0\",\"A\"\n",
+ "print\" power factor\",round(power_factor,3),\"lagging\"\n",
+ "print\"\\nNote :There is a slight difference in the answers due to the decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)braking torque : -3978.9 N-m\n",
+ " Field current 15.68 A\n",
+ "\n",
+ "ii)armature current : 87.78 -4.79 \u00b0 A\n",
+ " power factor 0.997 lagging\n",
+ "\n",
+ "Note :There is a slight difference in the answers due to the decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.3,Page no:257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor\n",
+ "Pm1=6*10**6 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=11*1000 # line voltage in V\n",
+ "pf=0.9 # power factor leading\n",
+ "P=6 # number of poles\n",
+ "I=10 # rated field current in A\n",
+ "Xs=9 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "N=120*f/P # synchronous speed\n",
+ "\n",
+ "#calculation\n",
+ "V=Vl/math.sqrt(3) #phase voltage\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "rad=math.acos(pf)\n",
+ "\n",
+ "#(i)to find torque and field current at rated armature current\n",
+ "# at 750 rpm and 0.8 leading power factor\n",
+ "Is=cmath.rect(Is,rad) #rated current in vector form\n",
+ "V=cmath.rect(V,0)\n",
+ "E=V-Is*1j*Xs #back emf\n",
+ "\n",
+ "N1=750 #speeed in rpm\n",
+ "pf1=0.8 #given leading power factor\n",
+ "f1=N1/N*f #required frequency\n",
+ "V1=abs(V)*f1/f #required voltage\n",
+ "Xs1=Xs*f1/f #required field resistance\n",
+ "E1=V1-Xs1*1j*cmath.rect(abs(Is),math.acos(pf1)) #rated back emf in complex form \n",
+ "E1_polar=cmath.polar(E1) #rated back emf in rectangular form \n",
+ "#at rated field current and 750 rpm\n",
+ "E2=abs(E)*N1/N #back emf at the given speed N1 \n",
+ "If=abs(E1)/E2*f #field current at the given speed N1 \n",
+ "Pm=3*abs(V1)*abs(Is)*pf1 #power input at the given speed N1\n",
+ "Wm1=2*math.pi*N1/60 #angular motor speed in rad/s\n",
+ "T=Pm/Wm1\n",
+ "\n",
+ "#(ii) at half the rated motor torque and 1500 rpm and rated field current\n",
+ "Pm=6*10**6 #rated power rating in W\n",
+ "N1=1500 #speeed in rpm\n",
+ "f1=N1/N*f #required frequency\n",
+ "Xs1=f1/f*Xs #required field resistance\n",
+ "E1=abs(E)*f1/f #back emf at rated field current \n",
+ "\n",
+ "Wms = Symbol('Wms') #rated speed in rad/sec\n",
+ "T_rated = Symbol('T_rated') #rated torque\n",
+ "Wms=Pm/T_rated\n",
+ "Wms_=N1/N*Wms\n",
+ "Pm_= (0.5*T_rated)*Wms_ #required power developed at N1=1500 rpm \n",
+ "\n",
+ "sin_delta=Pm_*Xs1/(3*abs(V)*abs(E1)) #since Pm=3*abs(V)*abs(E1)*math.sin(delta)/Xs \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(abs(V)-cmath.rect(E1,-delta))/(1j*Xs1) #armature current\n",
+ "Is1=cmath.polar(Is) #aramture current in rectangular form\n",
+ "x1=math.degrees(Is1[1])\n",
+ "power_factor1=math.cos(Is1[1]) #power factor\n",
+ " \n",
+ "#(iii) at 750 rpm and rated field current from part(i)\n",
+ "N1=750 #speeed in rpm\n",
+ "pf1=0.8 #given leading power factor\n",
+ "f1=N1/N*f #required frequency at N1=750 rpm\n",
+ "V1=abs(V)*f1/f #required voltage at N1=750 rpm\n",
+ "Xs1=Xs*f1/f #required field resistance\n",
+ "E2=abs(E)*N1/N \n",
+ "\n",
+ "Pm=-4.2*10**6 #braking power output\n",
+ "sin_delta=Pm*Xs1/(3*abs(V1)*abs(E2)) #since Pm=3*abs(V)*abs(E1)*math.sin(delta)/Xs \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(cmath.rect(E2,abs(delta))-V1)/(1j*Xs1) #armature current \n",
+ "Is2=cmath.polar(Is) #aramture current in rectangular form\n",
+ "x2=math.degrees(Is2[1]) \n",
+ "power_factor2=math.cos(Is2[1]) #power factor\n",
+ "\n",
+ "#(iv)from part (ii) at 1500 rpm and from part(iii) the armature current of 349.9 A is taken\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #armature current as given from (i)\n",
+ "N1=1500 #speeed in rpm\n",
+ "f1=N1/N*f #required frequency at N1=1500 rpm\n",
+ "Xs1=f1/f*Xs #required field resistance\n",
+ "E1=abs(E)*f1/f #at rated field current \n",
+ "E2=V-1j*Xs1*Is\n",
+ "E2=cmath.polar(E2)\n",
+ "\n",
+ "If1=E2[0]/abs(E1)*f #required field current\n",
+ "Pm=3*abs(V)*E2[0]*math.sin(abs(E2[1]))/Xs1 #power input\n",
+ "Wm1=2*math.pi*N1/60 #motor speed in rad/sec\n",
+ "T1=Pm/Wm1\n",
+ "\n",
+ "#results\n",
+ "print\"\\ni)Required torque is:\",round(T,1),\"N-m\"\n",
+ "print\" Field current :\",round(If,2),\"A\"\n",
+ "print\"\\nii)armature current :\",round(Is1[0],1),round(x1,2),\"\u00b0\",\"A\"\n",
+ "print\" power factor :\",round(power_factor1,1),\"leading\"\n",
+ "print\"\\niii)armature current :\",round(Is2[0],2),round(x2,2),\"\u00b0\",\"A\"\n",
+ "print\" power factor :\",round(power_factor2,3),\"lagging\"\n",
+ "print\"\\niv)Field current :\",round(If1,2),\"A\"\n",
+ "print\" Required torque is:\",round(T1),\"N-m\"\n",
+ "print\"\\nNote :There is a slight difference in the answers due to the decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "i)Required torque is: 50929.6 N-m\n",
+ " Field current : 52.37 A\n",
+ "\n",
+ "ii)armature current : 475.5 60.21 \u00b0 A\n",
+ " power factor : 0.5 leading\n",
+ "\n",
+ "iii)armature current : 334.62 -28.55 \u00b0 A\n",
+ " power factor : 0.878 lagging\n",
+ "\n",
+ "iv)Field current : 32.07 A\n",
+ " Required torque is: 42441.0 N-m\n",
+ "\n",
+ "Note :There is a slight difference in the answers due to the decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.4,Page no:265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor\n",
+ "Pm=8*10**6 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=6600 # line voltage in V\n",
+ "pf=1 # unity power factor \n",
+ "P=6 # number of poles\n",
+ "I=10 # rated field current in A\n",
+ "Xs=2.8 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "Rd=0.1 # Dc link inductor resistance\n",
+ "alpha=140 # constant firing angle in degrees \n",
+ "\n",
+ "#calculation\n",
+ "N=120*f/P #synchronous speed\n",
+ "V=Vl/math.sqrt(3) #phase voltage\n",
+ "Is=Pm/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "\n",
+ "Id=math.pi/math.sqrt(6)*Is #Dc line current\n",
+ "phi=180-alpha #phase angle between Is and V in degrees\n",
+ "\n",
+ "#(i) when motor operates at rated current and 500rpm\n",
+ "N1=500 #motor speed in rpm\n",
+ "f1=N1/N*f #frequency at N1\n",
+ "V1=f1/f*V #voltge at N1\n",
+ "Pm1=3*V1*Is*math.cos(math.radians(phi)) #power developed by the motor\n",
+ "#for the 3-phase load commutated inverter\n",
+ "Vdl=(3*math.sqrt(6)/math.pi)*V1*math.cos(math.radians(alpha))\n",
+ "Vds=-Vdl+Id*Rd\n",
+ "cos_alpha_s=Vds/(3*math.sqrt(6)/math.pi*V)\n",
+ "alpha_s=math.acos(cos_alpha_s) #in radian\n",
+ "alpha_s1=math.degrees(alpha_s) #in degrees\n",
+ "\n",
+ "#(ii) regenerative braking at 500rpm and at rated motor current\n",
+ "alpha=0 #firing angle\n",
+ "#when firng angle is zero then power factor is unity\n",
+ "pf=1\n",
+ "\n",
+ "Pm2=3*V1*Is*pf #power developed by the motor\n",
+ "Ps=Pm2-Id**2*Rd #power supplied to the source\n",
+ "Vdl=(3*math.sqrt(6)/math.pi)*V1*math.cos(math.radians(alpha))\n",
+ "Vds=-Vdl+Id*Rd\n",
+ "cos_alpha_s=Vds/(3*math.sqrt(6)/math.pi*V)\n",
+ "alpha_s=math.acos(cos_alpha_s) #in radian\n",
+ "alpha_s2=math.degrees(alpha_s) #in degrees\n",
+ "\n",
+ "#results\n",
+ "print\"i)power developed by the motor is:\",round(Pm1/10**6,3),\"MW\"\n",
+ "print\" Source side converter firing angle is\",round(alpha_s1,2),\"\u00b0\"\n",
+ "print\"\\nii)power supplied to the source is:\",round(Ps/10**6,3),\"MW\"\n",
+ "print\" Source side converter firing angle is\",round(alpha_s2,2),\"\u00b0\"\n",
+ "#answer for firing angle in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)power developed by the motor is: 3.064 MW\n",
+ " Source side converter firing angle is 66.85 \u00b0\n",
+ "\n",
+ "ii)power supplied to the source is: 3.919 MW\n",
+ " Source side converter firing angle is 119.34 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter7_1.ipynb b/Fundamentals_of_Electrical_Drives/Chapter7_1.ipynb
new file mode 100755
index 00000000..63650d6e
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter7_1.ipynb
@@ -0,0 +1,416 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Synchronous Motor and Brushless dc Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.1,Page no:247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor\n",
+ "Pm1=500*1000 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=3.3*1000 # line voltage in V\n",
+ "pf=0.8 # power factor lagging\n",
+ "P=4 # number of poles\n",
+ "I=10 # field current in A\n",
+ "Xs=15 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "Wms=50*math.pi # synchronous speed in rad/sec\n",
+ "Pm=Pm1/2 # power at half the rated torque when the losses are neglected\n",
+ "\n",
+ "#calculation\n",
+ "V=Vl/math.sqrt(3) #phase voltage\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "rad=math.acos(pf)\n",
+ "\n",
+ "Is=cmath.rect(Is,-rad) #rated current in vector form\n",
+ "V=cmath.rect(V,0) #rated phase voltage in rectangular form\n",
+ "E=V-Is*1j*Xs #back emf\n",
+ "\n",
+ "#(i) when field current has not changed\n",
+ "sin_delta=Pm*Xs/(3*abs(V)*abs(E)) \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(V-cmath.rect(abs(E),-delta))/(1j*Xs) #armature current\n",
+ "Is1=cmath.polar(Is)\n",
+ "x=math.degrees(Is1[1]) #where x=Is which is the required armature current \n",
+ "power_factor=math.cos(Is1[1]) #power factor \n",
+ "\n",
+ "#(ii) At unity power factor and rated torque\n",
+ "cos_phi=1\n",
+ "Is=Pm1/(3*V) #since Pm1=3*V*Is\n",
+ "E1=V-Is*1j*Xs\n",
+ "If=abs(E1)/abs(E)*I #field current\n",
+ "\n",
+ "#(iii) At the field current of 12.5 A\n",
+ "If1=12.5 #field current \n",
+ "E2=If1/I*abs(E)\n",
+ "Is=math.sqrt(E2**2-abs(V)**2)/Xs #since E2=abs(V-Is*1j*Xs)\n",
+ "Pm=3*abs(V)*Is*cos_phi #power output at the given field current\n",
+ "T=Pm/Wms #required torque\n",
+ "\n",
+ "#results\n",
+ "print\"i)armature current :\",round(Is1[0],2),round(x),\"\u00b0\",\"A\"\n",
+ "print\" power factor\",round(power_factor,2),\"lagging\"\n",
+ "print\"\\nii)field current at unity power factor at rated torque:\",round(If,2),\"A\"\n",
+ "print\"\\niii)Required torque is:\",round(T,1),\"N-m\"\n",
+ "print\"Note: there is a slight difference in the answer due to the decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)armature current : 52.76 -34.0 \u00b0 A\n",
+ " power factor 0.83 lagging\n",
+ "\n",
+ "ii)field current at unity power factor at rated torque: 14.43 A\n",
+ "\n",
+ "iii)Required torque is: 1507.2 N-m\n",
+ "Note: there is a slight difference in the answer due to the decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.2,Page no:249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor is same as that of Example-7.1\n",
+ "Pm1=500*1000 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=3.3*1000 # line voltage in V\n",
+ "pf=0.8 # power factor lagging\n",
+ "P=4 # number of poles\n",
+ "I=10 # field current in A\n",
+ "Xs=15 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "Pm=Pm1/2 # power at half the rated torque when the losses are neglected\n",
+ "\n",
+ "#calculation\n",
+ "Wms=50*math.pi # synchronous speed in rad/sec\n",
+ "V=Vl/math.sqrt(3) # phase voltage\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "rad=math.acos(pf)\n",
+ "\n",
+ "Is=cmath.rect(Is,-rad) #rated current in vector form\n",
+ "V=cmath.rect(V,0) \n",
+ "E=V-Is*1j*Xs #back emf\n",
+ "\n",
+ "#(i) at rated current and unity power factor\n",
+ "E1=V-abs(Is)*1j*Xs\n",
+ "delta=cmath.phase(E1) #phase angle of E1\n",
+ "Pm=3*abs(V)*abs(E1)*math.sin(delta)/Xs #mechanical power developed\n",
+ "T=Pm/Wms #braking torque\n",
+ "If=abs(E1)/abs(E)*I #field current\n",
+ "\n",
+ "#(ii) at field current of 15A and 500kW output\n",
+ "If1=15 #field current\n",
+ "Pm=-500*1000 #output power \n",
+ "E2=If1/I*abs(E)\n",
+ "sin_delta=Pm*Xs/(3*abs(V)*abs(E2)) \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(cmath.rect(E2,abs(delta))-V)/(1j*Xs) #armature current\n",
+ "Is=cmath.polar(Is)\n",
+ "x=(Is[1])*180/math.pi #phase angle of Is\n",
+ "power_factor=math.cos(Is[1]) #power factor\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "print\"i)braking torque :\",round(T,1),\"N-m\"\n",
+ "print\" Field current\",round(If,2),\"A\"\n",
+ "print\"\\nii)armature current :\",round(Is[0],2),round(x,2),\"\u00b0\",\"A\"\n",
+ "print\" power factor\",round(power_factor,3),\"lagging\"\n",
+ "print\"\\nNote :There is a slight difference in the answers due to the decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)braking torque : -3978.9 N-m\n",
+ " Field current 15.68 A\n",
+ "\n",
+ "ii)armature current : 87.78 -4.79 \u00b0 A\n",
+ " power factor 0.997 lagging\n",
+ "\n",
+ "Note :There is a slight difference in the answers due to the decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.3,Page no:257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "from sympy import *\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor\n",
+ "Pm1=6*10**6 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=11*1000 # line voltage in V\n",
+ "pf=0.9 # power factor leading\n",
+ "P=6 # number of poles\n",
+ "I=10 # rated field current in A\n",
+ "Xs=9 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "N=120*f/P # synchronous speed\n",
+ "\n",
+ "#calculation\n",
+ "V=Vl/math.sqrt(3) #phase voltage\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "rad=math.acos(pf)\n",
+ "\n",
+ "#(i)to find torque and field current at rated armature current\n",
+ "# at 750 rpm and 0.8 leading power factor\n",
+ "Is=cmath.rect(Is,rad) #rated current in vector form\n",
+ "V=cmath.rect(V,0)\n",
+ "E=V-Is*1j*Xs #back emf\n",
+ "\n",
+ "N1=750 #speeed in rpm\n",
+ "pf1=0.8 #given leading power factor\n",
+ "f1=N1/N*f #required frequency\n",
+ "V1=abs(V)*f1/f #required voltage\n",
+ "Xs1=Xs*f1/f #required field resistance\n",
+ "E1=V1-Xs1*1j*cmath.rect(abs(Is),math.acos(pf1)) #rated back emf in complex form \n",
+ "E1_polar=cmath.polar(E1) #rated back emf in rectangular form \n",
+ "#at rated field current and 750 rpm\n",
+ "E2=abs(E)*N1/N #back emf at the given speed N1 \n",
+ "If=abs(E1)/E2*f #field current at the given speed N1 \n",
+ "Pm=3*abs(V1)*abs(Is)*pf1 #power input at the given speed N1\n",
+ "Wm1=2*math.pi*N1/60 #angular motor speed in rad/s\n",
+ "T=Pm/Wm1\n",
+ "\n",
+ "#(ii) at half the rated motor torque and 1500 rpm and rated field current\n",
+ "Pm=6*10**6 #rated power rating in W\n",
+ "N1=1500 #speeed in rpm\n",
+ "f1=N1/N*f #required frequency\n",
+ "Xs1=f1/f*Xs #required field resistance\n",
+ "E1=abs(E)*f1/f #back emf at rated field current \n",
+ "\n",
+ "Wms = Symbol('Wms') #rated speed in rad/sec\n",
+ "T_rated = Symbol('T_rated') #rated torque\n",
+ "Wms=Pm/T_rated\n",
+ "Wms_=N1/N*Wms\n",
+ "Pm_= (0.5*T_rated)*Wms_ #required power developed at N1=1500 rpm \n",
+ "\n",
+ "sin_delta=Pm_*Xs1/(3*abs(V)*abs(E1)) #since Pm=3*abs(V)*abs(E1)*math.sin(delta)/Xs \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(abs(V)-cmath.rect(E1,-delta))/(1j*Xs1) #armature current\n",
+ "Is1=cmath.polar(Is) #aramture current in rectangular form\n",
+ "x1=math.degrees(Is1[1])\n",
+ "power_factor1=math.cos(Is1[1]) #power factor\n",
+ " \n",
+ "#(iii) at 750 rpm and rated field current from part(i)\n",
+ "N1=750 #speeed in rpm\n",
+ "pf1=0.8 #given leading power factor\n",
+ "f1=N1/N*f #required frequency at N1=750 rpm\n",
+ "V1=abs(V)*f1/f #required voltage at N1=750 rpm\n",
+ "Xs1=Xs*f1/f #required field resistance\n",
+ "E2=abs(E)*N1/N \n",
+ "\n",
+ "Pm=-4.2*10**6 #braking power output\n",
+ "sin_delta=Pm*Xs1/(3*abs(V1)*abs(E2)) #since Pm=3*abs(V)*abs(E1)*math.sin(delta)/Xs \n",
+ "delta=math.asin(sin_delta) #angle delta\n",
+ "Is=(cmath.rect(E2,abs(delta))-V1)/(1j*Xs1) #armature current \n",
+ "Is2=cmath.polar(Is) #aramture current in rectangular form\n",
+ "x2=math.degrees(Is2[1]) \n",
+ "power_factor2=math.cos(Is2[1]) #power factor\n",
+ "\n",
+ "#(iv)from part (ii) at 1500 rpm and from part(iii) the armature current of 349.9 A is taken\n",
+ "Is=Pm1/(math.sqrt(3)*Vl*pf) #armature current as given from (i)\n",
+ "N1=1500 #speeed in rpm\n",
+ "f1=N1/N*f #required frequency at N1=1500 rpm\n",
+ "Xs1=f1/f*Xs #required field resistance\n",
+ "E1=abs(E)*f1/f #at rated field current \n",
+ "E2=V-1j*Xs1*Is\n",
+ "E2=cmath.polar(E2)\n",
+ "\n",
+ "If1=E2[0]/abs(E1)*f #required field current\n",
+ "Pm=3*abs(V)*E2[0]*math.sin(abs(E2[1]))/Xs1 #power input\n",
+ "Wm1=2*math.pi*N1/60 #motor speed in rad/sec\n",
+ "T1=Pm/Wm1\n",
+ "\n",
+ "#results\n",
+ "print\"\\ni)Required torque is:\",round(T,1),\"N-m\"\n",
+ "print\" Field current :\",round(If,2),\"A\"\n",
+ "print\"\\nii)armature current :\",round(Is1[0],1),round(x1,2),\"\u00b0\",\"A\"\n",
+ "print\" power factor :\",round(power_factor1,1),\"leading\"\n",
+ "print\"\\niii)armature current :\",round(Is2[0],2),round(x2,2),\"\u00b0\",\"A\"\n",
+ "print\" power factor :\",round(power_factor2,3),\"lagging\"\n",
+ "print\"\\niv)Field current :\",round(If1,2),\"A\"\n",
+ "print\" Required torque is:\",round(T1),\"N-m\"\n",
+ "print\"\\nNote :There is a slight difference in the answers due to the decimal place\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "i)Required torque is: 50929.6 N-m\n",
+ " Field current : 52.37 A\n",
+ "\n",
+ "ii)armature current : 475.5 60.21 \u00b0 A\n",
+ " power factor : 0.5 leading\n",
+ "\n",
+ "iii)armature current : 334.62 -28.55 \u00b0 A\n",
+ " power factor : 0.878 lagging\n",
+ "\n",
+ "iv)Field current : 32.07 A\n",
+ " Required torque is: 42441.0 N-m\n",
+ "\n",
+ "Note :There is a slight difference in the answers due to the decimal place\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example no:7.4,Page no:265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "import cmath\n",
+ "\n",
+ "#variable declaration\n",
+ "#ratings of the synchronous motor\n",
+ "Pm=8*10**6 # power rating in W\n",
+ "f=50 # frequency in HZ\n",
+ "Vl=6600 # line voltage in V\n",
+ "pf=1 # unity power factor \n",
+ "P=6 # number of poles\n",
+ "I=10 # rated field current in A\n",
+ "Xs=2.8 # reactance of the windings in ohm\n",
+ "Rs=0 # resistance of the windings in ohm\n",
+ "Rd=0.1 # Dc link inductor resistance\n",
+ "alpha=140 # constant firing angle in degrees \n",
+ "\n",
+ "#calculation\n",
+ "N=120*f/P #synchronous speed\n",
+ "V=Vl/math.sqrt(3) #phase voltage\n",
+ "Is=Pm/(math.sqrt(3)*Vl*pf) #rated current\n",
+ "\n",
+ "Id=math.pi/math.sqrt(6)*Is #Dc line current\n",
+ "phi=180-alpha #phase angle between Is and V in degrees\n",
+ "\n",
+ "#(i) when motor operates at rated current and 500rpm\n",
+ "N1=500 #motor speed in rpm\n",
+ "f1=N1/N*f #frequency at N1\n",
+ "V1=f1/f*V #voltge at N1\n",
+ "Pm1=3*V1*Is*math.cos(math.radians(phi)) #power developed by the motor\n",
+ "#for the 3-phase load commutated inverter\n",
+ "Vdl=(3*math.sqrt(6)/math.pi)*V1*math.cos(math.radians(alpha))\n",
+ "Vds=-Vdl+Id*Rd\n",
+ "cos_alpha_s=Vds/(3*math.sqrt(6)/math.pi*V)\n",
+ "alpha_s=math.acos(cos_alpha_s) #in radian\n",
+ "alpha_s1=math.degrees(alpha_s) #in degrees\n",
+ "\n",
+ "#(ii) regenerative braking at 500rpm and at rated motor current\n",
+ "alpha=0 #firing angle\n",
+ "#when firng angle is zero then power factor is unity\n",
+ "pf=1\n",
+ "\n",
+ "Pm2=3*V1*Is*pf #power developed by the motor\n",
+ "Ps=Pm2-Id**2*Rd #power supplied to the source\n",
+ "Vdl=(3*math.sqrt(6)/math.pi)*V1*math.cos(math.radians(alpha))\n",
+ "Vds=-Vdl+Id*Rd\n",
+ "cos_alpha_s=Vds/(3*math.sqrt(6)/math.pi*V)\n",
+ "alpha_s=math.acos(cos_alpha_s) #in radian\n",
+ "alpha_s2=math.degrees(alpha_s) #in degrees\n",
+ "\n",
+ "#results\n",
+ "print\"i)power developed by the motor is:\",round(Pm1/10**6,3),\"MW\"\n",
+ "print\" Source side converter firing angle is\",round(alpha_s1,2),\"\u00b0\"\n",
+ "print\"\\nii)power supplied to the source is:\",round(Ps/10**6,3),\"MW\"\n",
+ "print\" Source side converter firing angle is\",round(alpha_s2,2),\"\u00b0\"\n",
+ "#answer for firing angle in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "i)power developed by the motor is: 3.064 MW\n",
+ " Source side converter firing angle is 66.85 \u00b0\n",
+ "\n",
+ "ii)power supplied to the source is: 3.919 MW\n",
+ " Source side converter firing angle is 119.34 \u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter8.ipynb b/Fundamentals_of_Electrical_Drives/Chapter8.ipynb
new file mode 100755
index 00000000..4011e920
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter8.ipynb
@@ -0,0 +1,30 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 8:Stepper Motor And Switched Reluctance Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/Chapter9.ipynb b/Fundamentals_of_Electrical_Drives/Chapter9.ipynb
new file mode 100755
index 00000000..fa45dd38
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/Chapter9.ipynb
@@ -0,0 +1,30 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ " Chapter 9:Solar and Battery Powered Drives"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Fundamentals_of_Electrical_Drives/screenshots/Dc_Motor_Speed.png b/Fundamentals_of_Electrical_Drives/screenshots/Dc_Motor_Speed.png
new file mode 100755
index 00000000..66143381
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/screenshots/Dc_Motor_Speed.png
Binary files differ
diff --git a/Fundamentals_of_Electrical_Drives/screenshots/braking_resistance.png b/Fundamentals_of_Electrical_Drives/screenshots/braking_resistance.png
new file mode 100755
index 00000000..6e9335cf
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/screenshots/braking_resistance.png
Binary files differ
diff --git a/Fundamentals_of_Electrical_Drives/screenshots/download.png b/Fundamentals_of_Electrical_Drives/screenshots/download.png
new file mode 100755
index 00000000..66143381
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/screenshots/download.png
Binary files differ
diff --git a/Fundamentals_of_Electrical_Drives/screenshots/download_(1).png b/Fundamentals_of_Electrical_Drives/screenshots/download_(1).png
new file mode 100755
index 00000000..a3174472
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/screenshots/download_(1).png
Binary files differ
diff --git a/Fundamentals_of_Electrical_Drives/screenshots/download_(2).png b/Fundamentals_of_Electrical_Drives/screenshots/download_(2).png
new file mode 100755
index 00000000..6e9335cf
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/screenshots/download_(2).png
Binary files differ
diff --git a/Fundamentals_of_Electrical_Drives/screenshots/torque_vs_frequency.png b/Fundamentals_of_Electrical_Drives/screenshots/torque_vs_frequency.png
new file mode 100755
index 00000000..0bb53ca6
--- /dev/null
+++ b/Fundamentals_of_Electrical_Drives/screenshots/torque_vs_frequency.png
Binary files differ
diff --git a/Linear_Integrated_Circuits/Chapter10.ipynb b/Linear_Integrated_Circuits/Chapter10.ipynb
new file mode 100755
index 00000000..db7e9c1b
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter10.ipynb
@@ -0,0 +1,305 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : D-A and A-D Converters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page No.357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given Data \n",
+ "\n",
+ "n = 9\n",
+ "s = 10.3*10**-3\n",
+ "a = '0b101101111'\n",
+ "\n",
+ "# Solution \n",
+ "# Converting the given value into its equivalent decimal value\n",
+ "x = int(a,2)\n",
+ "#multiplying with the resolution to get the output\n",
+ "\n",
+ "V = round(x*s,2)\n",
+ "\n",
+ "print \"The output value will be =\",V,\"V\" \n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output value will be = 3.78 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page No.357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction \n",
+ "# Given data \n",
+ "\n",
+ "n = 8\n",
+ "v = 10.0\n",
+ "\n",
+ "# Solution \n",
+ "LSB = 1.0/2**n\n",
+ "Vlsb =v/2**n\n",
+ "MSB = v/2\n",
+ "Vo = v - Vlsb\n",
+ "\n",
+ "# Dispalying the output\n",
+ "\n",
+ "print \"The value of LSB = \",Fraction(LSB).limit_denominator(256)\n",
+ "print \"The voltage of LSB = \",int(Vlsb*10**3),\"mV\"\n",
+ "print \"The MSB = \",int(MSB)\n",
+ "print \"The value of full scale output is = \",round(Vo,3),\"V\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of LSB = 1/256\n",
+ "The voltage of LSB = 39 mV\n",
+ "The MSB = 5\n",
+ "The value of full scale output is = 9.961 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page No.357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "V = 10.0 # Range of the DAC is 0 -10 voltage \n",
+ "\n",
+ "# define a function for performing the DAC action\n",
+ "\n",
+ "def DAC(Vo):\n",
+ " j = 1\n",
+ " sum = 0.0\n",
+ " x = len(Vo)\n",
+ " for i in range(x):\n",
+ " sum = sum + ((Vo[i])*(0.5**j))\n",
+ " j += 1\n",
+ " \n",
+ " return (V*sum)\n",
+ "# part 1 \n",
+ "Vo1 = np.array([1, 0])\n",
+ "# part 2\n",
+ "Vo2 = np.array([0, 1, 1, 0])\n",
+ "#part 3\n",
+ "Vo3 = np.array([1, 0, 1, 1, 1, 1, 0, 0])\n",
+ "\n",
+ "# Finding the solution for all 3 parts and printing the outputs \n",
+ "\n",
+ "print \" The output for part 1\",int(DAC(Vo1)),\"V\"\n",
+ "print \" The output for part 2\",(DAC(Vo2)),\"V\"\n",
+ "print \" The output for part 3\",round(DAC(Vo3),2),\"V\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The output for part 1 5 V\n",
+ " The output for part 2 3.75 V\n",
+ " The output for part 3 7.34 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 Page No.365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given data \n",
+ "n = 16 \n",
+ "Clockrate = 4*10**6\n",
+ "V = 10.0\n",
+ "c = 0.1*10**-6\n",
+ "va = -8.0\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "t21 = (2.0**n)/(Clockrate)\n",
+ "R = ((-V/va)*t21)/c\n",
+ "\n",
+ "print \"The value of (t2-t1) =\",round(t21*10**3,2),\"ms\"\n",
+ "print \"The value of Resistor R =\",int(round(R*10**-3)),\"kilo Ohms\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of (t2-t1) = 16.38 ms\n",
+ "The value of Resistor R = 205 kilo Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No.365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "Va = 4.129\n",
+ "n = 16\n",
+ "Vr = 8\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "N = int(round((2**n)*(Va/Vr)))\n",
+ "out = bin(N) # Converting the voltage value into its binary equivalent\n",
+ "\n",
+ "print \"The binary equivalent is = \",out\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binary equivalent is = 0b1000010000100001\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No.368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "d = 3.5 \n",
+ "print \"The last 3 digit can be\",000,\"To\",(10**int(d))-1\n",
+ "print \"Hense the 3 1/2 digit DVM reading varies from\",0000,\"to\",\"1\"+str((10**int(d))-1)\n",
+ "# Reference voltage is 2V\n",
+ "Vref = 2.0\n",
+ "# Resolution R \n",
+ "\n",
+ "R = Vref/2000\n",
+ "print \"The resolution of a 3 1/2 digit DVM is =\",int(R*10**3),\"mV\"\n",
+ "\n",
+ "# Similarly for 4 1/2 digit DVM\n",
+ "\n",
+ "R1 = Vref/20000\n",
+ "\n",
+ "print \"Thus resolution of a 4 1/2 digit DVM is =\",R1*10**3,\"mV\"\n",
+ "\n",
+ "print \"So the resolution of 4 1/2 digit DVM is better than 3 1/2 digit DVM\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The last 3 digit can be 0 To 999\n",
+ "Hense the 3 1/2 digit DVM reading varies from 0 to 1999\n",
+ "The resolution of a 3 1/2 digit DVM is = 1 mV\n",
+ "Thus resolution of a 4 1/2 digit DVM is = 0.1 mV\n",
+ "So the resolution of 4 1/2 digit DVM is better than 3 1/2 digit DVM\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter2.ipynb b/Linear_Integrated_Circuits/Chapter2.ipynb
new file mode 100755
index 00000000..011589fa
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter2.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Operational Amplifier"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given Data\n",
+ "\n",
+ "R1 = 5*10**3\n",
+ "Rf = 20*10**3\n",
+ "vi = 1 \n",
+ "RL = 5*10**3\n",
+ "\n",
+ "# calculating the values \n",
+ "vo = float((1+(Rf/R1))*vi) \n",
+ "ACL = int(vo/vi)\n",
+ "iL = int((vo/RL)*10**3)\n",
+ "i1 = float(((vo - vi)/Rf))*(10**3)\n",
+ "io = iL+i1\n",
+ " \n",
+ " \n",
+ "# printing the values\n",
+ "print \"Output voltage vo = \",vo,\"V\"\n",
+ "print \"Gain ACL = \",ACL\n",
+ "print \"Load current iL = \",iL,\"mA\"\n",
+ "print \"The value of i1 = \",i1,\"mA\"\n",
+ "print \"Output current io = \", io,\"mA\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage vo = 5.0 V\n",
+ "Gain ACL = 5\n",
+ "Load current iL = 1 mA\n",
+ "The value of i1 = 0.2 mA\n",
+ "Output current io = 1.2 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "\n",
+ "R1 = 10*10**3 #R1 input resistance \n",
+ "Rf = 100*10**3 # Rf feedback resistance\n",
+ "vi = float(1) #input voltage \n",
+ "RL = 25*10**3\n",
+ "#calculating the values \n",
+ "\n",
+ "i1 = float((vi/R1)*10**3) # input resistace id the ratio of input voltage to the input resitance \n",
+ "vo = float(-(Rf/R1)*vi) # finding the output voltage \n",
+ "iL = float((abs(vo)/RL)*10**3) # calculating the load current \n",
+ "io = float((i1+iL)) # calculating the output current which is equal to the sum of input current and load current\n",
+ "\n",
+ "#printing the values \n",
+ "\n",
+ "print \"The input current i1 =\",i1,\"mA\"\n",
+ "print \"The output voltage vo =\",vo,\"V\"\n",
+ "print \"The load current iL =\",iL,\"mA\"\n",
+ "print \"The output current io =\",io,\"mA\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The input current i1 = 0.1 mA\n",
+ "The output voltage vo = -10.0 V\n",
+ "The load current iL = 0.4 mA\n",
+ "The output current io = 0.5 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "\n",
+ "ACL = 5 # Gain of the amplifier\n",
+ "R1 = 10*10**3 # input resisitance in ohms \n",
+ "\n",
+ "# calculations\n",
+ "\n",
+ "Rf = (5-1) * R1 # calculating the resistance of feedback resistor \n",
+ "\n",
+ "# printing the values \n",
+ "\n",
+ "print \"The value of feedback resistor = \", (Rf/10**3),\"KiloOhms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of feedback resistor = 40 KiloOhms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 Page No.49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Given Data\n",
+ "\n",
+ "R1 = 5*10**3\n",
+ "Rf = 20*10**3\n",
+ "vi = 1 \n",
+ "RL = 5*10**3\n",
+ "\n",
+ "# calculating the values \n",
+ "vo = float((1+(Rf/R1))*vi) \n",
+ "ACL = int(vo/vi)\n",
+ "iL = int((vo/RL)*10**3)\n",
+ "i1 = float(((vo - vi)/Rf))*(10**3)\n",
+ "io = iL+i1\n",
+ " \n",
+ " \n",
+ "# printing the values\n",
+ "print \"Output voltage vo = \",vo,\"V\"\n",
+ "print \"Gain ACL = \",ACL\n",
+ "print \"Load current iL = \",iL,\"mA\"\n",
+ "print \"The value of i1 = \",i1,\"mA\"\n",
+ "print \"Output current io = \", io,\"mA\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage vo = 5.0 V\n",
+ "Gain ACL = 5\n",
+ "Load current iL = 1 mA\n",
+ "The value of i1 = 0.2 mA\n",
+ "Output current io = 1.2 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Given Data\n",
+ "from decimal import Decimal, ROUND_HALF_UP\n",
+ "import math\n",
+ "Beta = 200\n",
+ "ICQ = 100*10**-6\n",
+ "ADM = 100\n",
+ "CMRR = 80\n",
+ "\n",
+ "# finding the solution \n",
+ "# for VT =25 milli volt \n",
+ "VT = 25*10**-3\n",
+ "gm = float(ICQ/VT)\n",
+ "Rc = (ADM/gm) \n",
+ "CMRR = 10**(80/20) # log inverse is equal to powers of 10\n",
+ "RE = float((CMRR-1)/gm)\n",
+ "x = Decimal((RE/10**6))\n",
+ "\n",
+ "# printing the values \n",
+ "\n",
+ "print \" The value of gm =\",int(math.ceil((gm*10**3))),\"mMho\" #converting the answer into milli Mho\n",
+ "print \" The value of Rc =\",int((Rc/10**3)),\"kiloOhm\" #converting the answer into Kilo Ohm\n",
+ "print \" The value of RE =\", x.quantize(Decimal('2.5')),\"MegaOhm\" #converting the answer into MegaOhm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of gm = 4 mMho\n",
+ " The value of Rc = 25 kiloOhm\n",
+ " The value of RE = 2.5 MegaOhm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7 Page No.61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "# Given Data\n",
+ "RC = 2*10**3\n",
+ "RE = 4.3*10**3\n",
+ "VCC = VEE = 5\n",
+ "beta0 = 200\n",
+ "VBE = 0.7\n",
+ "VT = 25*10**-3 # VT = 25 mV \n",
+ "\n",
+ "#calculations \n",
+ "\n",
+ "Ibq = (((VEE - VBE)/(2*(1+beta0)*RE)))*10**6 # converting the into mA\n",
+ "IBQ = int(Ibq*10)/10.0 # rounding the answer 2.48 to 2.4\n",
+ "ICQ = beta0 * IBQ*10**-3 # finding ICQ and convert it into milli Ambere\n",
+ "V01 = V02 = VCC - (RC * ICQ*10**-3)\n",
+ "VCEQ = V01 + VBE\n",
+ "gm = ICQ / VT # Finding the gm value in milli Mho\n",
+ "rpi = float(beta0/gm) # finding rpi interms of KiloOhms \n",
+ "ADM = -(gm*RC)/10**3 # Calculating the gain \n",
+ "ACM = float((-beta0*RC)/(rpi*10**3 + (2*beta0) * RE)) # Calulating the value of ACM and coverting it into a float \n",
+ "CMRR = float(round(ADM,2)/round(ACM,2)) # rounding ACM and ADM to 2 digits after decimals and taking the\n",
+ " #ratio\n",
+ "CMRRdb = float(20*math.log10(round(CMRR,1))) # Find the CMRR in dB using equation 20*log(CMRR)\n",
+ "\n",
+ "# Printing all values \n",
+ "\n",
+ "print \"The IBQ =\",IBQ,\"uA\"\n",
+ "print \"The ICQ =\",ICQ,\"mA\"\n",
+ "print \"The V01 =\",V01,\"mV\"\n",
+ "print \"The VCEQ =\",VCEQ,\"V\"\n",
+ "print \"The gm =\",gm,\"m Mho\"\n",
+ "print \"The rpi =\",round(rpi,1),\"kilo Ohm\"\n",
+ "print \"The ADM =\",round(ADM,2)\n",
+ "print \"The ACM =\",round(ACM,2)\n",
+ "print \"The CMRR =\",round(CMRR,1)\n",
+ "print \"The CMRR in dB =\",int(CMRRdb*10)/10.0,\"dB\"\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The IBQ = 2.4 uA\n",
+ "The ICQ = 0.48 mA\n",
+ "The V01 = 4.04 mV\n",
+ "The VCEQ = 4.74 V\n",
+ "The gm = 19.2 m Mho\n",
+ "The rpi = 10.4 kilo Ohm\n",
+ "The ADM = -38.4\n",
+ "The ACM = -0.23\n",
+ "The CMRR = 167.0\n",
+ "The CMRR in dB = 44.4 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No.62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# v1 = 15*sin*2*pi(60)t + 5*sin*2*pi(1000)t mV\n",
+ "# v1 = 15*sin*2*pi(60)t - 5*sin*2*pi(1000)t mV\n",
+ "\n",
+ "# Given data \n",
+ "\n",
+ "gm = 4*10**-3\n",
+ "RC = 125*10*3\n",
+ "RE = 1.25*10**3\n",
+ "beta0 = 200\n",
+ "\n",
+ "# calculating the values\n",
+ "\n",
+ "rpi = beta0/gm # value is in ohms \n",
+ "ADM =-500 # Given Value\n",
+ "ACM = -((200*RC)/(402*RE)+rpi)*10**-6\n",
+ "print \"ACM is =\",round(ACM,2)\n",
+ "\n",
+ "# derivation part is as follows \n",
+ "# VDM = (v1 - v2)/2 = 5*sin*2*pi(1000)*t\n",
+ "# VCM = (v1 - v2)/2 = 15*sin*2*pi(60)*t\n",
+ "# VO1 = ADM*VDM + ACM*VCM\n",
+ "# VO2 = ADM*VDM - ACM*VCM\n",
+ "# V01 = -2500*sin*2*pi(1000)t - 0.75*sin*2*pi(60)t mV\n",
+ "# V01 = 2500*sin*2*pi(1000)t - 0.75*sin*2*pi(60)t mV"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ACM is = -0.05\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9 Page No.63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from fractions import Fraction \n",
+ "# Given data\n",
+ "\n",
+ "beta0 = 100\n",
+ "IQ = 5*10**-4\n",
+ "RC = 10*10**3\n",
+ "RE = 150\n",
+ "VT = 25*10**-3 \n",
+ "\n",
+ "# calculations \n",
+ "\n",
+ "ICQ = float(IQ/2)\n",
+ "gm = float(ICQ / VT)\n",
+ "rpi = beta0/gm\n",
+ "# calculaing the gain in Differential mode\n",
+ "ADM = ((0.5)*(beta0*RC))/(rpi+((1+beta0)*RE))\n",
+ "# To get the differentila mode gain multiply the value by 2\n",
+ "ADM2 = (ADM*2)\n",
+ "\n",
+ "# print the values \n",
+ "\n",
+ "print \"ICQ value is =\",ICQ*10**3,\"mA\"\n",
+ "print \"gm value is =\",Fraction(gm).limit_denominator(100),\"Mho\" \n",
+ "print \"rpi value is =\",int(rpi/10**3),\"kilo Ohm\"\n",
+ "print \"THe gain is =\",int(math.ceil(ADM2)),\"V/V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ICQ value is = 0.25 mA\n",
+ "gm value is = 1/100 Mho\n",
+ "rpi value is = 10 kilo Ohm\n",
+ "THe gain is = 40 V/V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10 Page No.67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given Data \n",
+ "VCC = 10.0 # initializing as floats \n",
+ "beta = 125.0\n",
+ "VBE = 0.7\n",
+ "\n",
+ "# calculations \n",
+ "# Define a function for calculating the value of R1 according to the equation given in 2.67\n",
+ "def R1(I):\n",
+ " R1 = (beta/(2+beta))*((VCC-VBE)/I) \n",
+ " return (R1/1000)\n",
+ "# Cosisdering Ic = 1mA\n",
+ "print \"The value of R1 when I is 1 mA = \",round(R1(10**-3),2),\"Kilo Ohm\" # calling the function R1 with arguiment as current value 1 mA\n",
+ "print \"The value of R1 when I is 10 uA = \",int(round(R1(10*10**-6),0)),\"Kilo Ohm\" # calling the function R1 with arguiment as current value 10 uA"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1 when I is 1 mA = 9.15 Kilo Ohm\n",
+ "The value of R1 when I is 10 uA = 915 Kilo Ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 Page No.69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "import math\n",
+ "I0 = 10*10**-6\n",
+ "VCC =10\n",
+ "VBE = 0.7\n",
+ "beta = 125\n",
+ "VT = 25*10**-3\n",
+ "\n",
+ "# Solution of the problem is \n",
+ "Iref = 10**-3 # Assumption\n",
+ "\n",
+ "R1 = (VCC - VBE)/Iref\n",
+ "# Finding the value RE from the equation 2.74\n",
+ "RE = (VT/(1+(1/beta)*I0))*math.log(Iref/I0)\n",
+ "\n",
+ "# printing the values \n",
+ "\n",
+ "print \"The value of R1 =\",R1/10**3,\"Kilo Ohms\"\n",
+ "print \"The value of RE =\",round(RE*100,1),\"Kilo Ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1 = 9.3 Kilo Ohms\n",
+ "The value of RE = 11.5 Kilo Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13 Page No.74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "VCC = 10.0\n",
+ "beta = 100\n",
+ "VBE = 0.7\n",
+ "RE = 10*10**3\n",
+ "\n",
+ "# solution\n",
+ "# fom the KVL loop1\n",
+ "Iref = ((VCC - VBE)/RE) # Finding the Iref \n",
+ "# Assuming the transistor are identical \n",
+ "# Iref = 2IE\n",
+ "# IE = IC + IB\n",
+ "IC = (beta*Iref/(2*(1+beta)))\n",
+ "I0 = IC\n",
+ "#Displaying the values \n",
+ "\n",
+ "print \"The value of Iref =\",Iref*10**3,\"mA\" # Converting the value into mA\n",
+ "print \"The value of IC =\",round(IC*10**3,2),\"mA\" # Converting the value into mA and rounding the answer\n",
+ "print \"The value of I0 =\",round(I0*10**3,2),\"mA\" # Converting the value into mA and rounding the answer"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Iref = 0.93 mA\n",
+ "The value of IC = 0.46 mA\n",
+ "The value of I0 = 0.46 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.14 Page No.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "VCC = 12.0\n",
+ "Rref = 15*10**3 \n",
+ "R1 = 2.8*10**3\n",
+ "beta = 200\n",
+ "VBE = 0.7\n",
+ "V0 = 6.0\n",
+ "\n",
+ "#Calculations \n",
+ "#Calculations for finding the IC1 and IC2\n",
+ "Iref = (VCC - VBE)/Rref\n",
+ "I1 = VBE / R1\n",
+ "IC1 = (Iref - I1)/(1+(2/beta))\n",
+ "IC2 = IC1 # Due to mirror effect \n",
+ "RC = (VCC - V0)/IC1\n",
+ "\n",
+ "# Displaying the values \n",
+ "\n",
+ "print \"The value of Iref =\",round(Iref*10**3,2),\"mA\" # convert into milli amps and rounding the output\n",
+ "print \"The value of I1 =\",round(I1*10**3,2),\"mA\" # convert into milli amps and rounding the output\n",
+ "print \"The value of IC1 =\",round(IC1*10**3,1),\"mA\" # convert into milli amps and rounding the output\n",
+ "print \"The value of Rc =\",int(round(RC*10**-3,0)),\"Kilo Ohm\" # convert into kilo Ohms and rounding the output"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Iref = 0.75 mA\n",
+ "The value of I1 = 0.25 mA\n",
+ "The value of IC1 = 0.5 mA\n",
+ "The value of Rc = 12 Kilo Ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15 Page No.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "VCC = 10.0\n",
+ "VBE = 0.75\n",
+ "R1 = 4.7*10**3\n",
+ "\n",
+ "# solution \n",
+ "# I is approximately equals to Ic(2 + (1/beta)), since 1/beta is a small value its considerd as 2Ics \n",
+ "I = (VCC - VBE)/R1\n",
+ "# IE3 is approxiamtly equal to IC3 = I/2\n",
+ "#finding the value of IC \n",
+ "IC = I /2\n",
+ "print \" The value of I =\",round(I*10**3,2),\"mA\"\n",
+ "print \" The value of IC =\",round(IC*10**3,2),\"mA\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of I = 1.97 mA\n",
+ " The value of IC = 0.98 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16 Page No.80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "VCC = 15.0\n",
+ "VBE = 0.7\n",
+ "R = 10*10**3\n",
+ "RC2 = 5*10**3\n",
+ "# consider beta is a large value \n",
+ "I = (VCC - VBE)/R\n",
+ "IC1 = IC2 = I\n",
+ "#V12 = V1 - V2\n",
+ "V12 = VBE + IC2 * RC2 \n",
+ "\n",
+ "# displaying the values\n",
+ "print \"The value of I =\",round(I*10**3,2),\"mA\"\n",
+ "print \"The value of V1 - V2 =\",V12,\"V\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I = 1.43 mA\n",
+ "The value of V1 - V2 = 7.85 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.17 Page No.83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Given data\n",
+ "\n",
+ "VEE = 6.0\n",
+ "VCC = 6.0\n",
+ "VD = VD1 = VD2 = VD3 = VD4 = 0.7\n",
+ "R5 = 3.2*10**3\n",
+ "R4 = 1.5*10**3\n",
+ "VBE1 = VBE2 =VBE3 = VBE4 = VBE5 = VBE6 = VBE7 = VBE8 = 0.7\n",
+ "R1 = 2.2*10**3\n",
+ "R2 = 7.75*10**3\n",
+ "R3 = 5.2*10**3\n",
+ "R6 = 1.5*10**3\n",
+ "R7 = 3*10**3\n",
+ "R8 = 3.4*10**3\n",
+ "R9 = 6*10**3\n",
+ "R10 =30*10**3\n",
+ "hfe = 100\n",
+ "VT = 26*10**-3\n",
+ "\n",
+ "# Solution for part A\n",
+ "\n",
+ "VBN1 = round((-VEE+VD+VD)*R5/(R4+R5),2)\n",
+ "I1 = (VEE+VBN1-VBE1)/R1\n",
+ "IQ = I1 # If the base current of Q1 is neglected\n",
+ "IC2 = IC3 = IQ2 = round(IQ/2,6)\n",
+ "VC2 = VC3 = round((VCC - R2*IC2),2)\n",
+ "VE4 = VC2 - VBE4 \n",
+ "I6 = round(VE4/R6,6)\n",
+ "IC4 = IC5 = round((I6/2),6)\n",
+ "VC5 = round(VCC - IC5*R7,2)\n",
+ "VE6 = round(VC5 - VBE6,2)\n",
+ "IC7 = I8 = round((VEE - VD3)/R8,5)\n",
+ "VB8 = VBE8 + VD4 - VEE\n",
+ "I9 = round((VE6 - VB8)/R9,5)\n",
+ "I10 = IC7 - I9\n",
+ "Vo = (I10 * R10) + VB8\n",
+ "V0 = int(Vo) # Vo value is assumed to be very small\n",
+ "\n",
+ "# Displaying the values \n",
+ "print \"PART A\"\n",
+ "print \"==================\"\n",
+ "print \"the value of VBN1 =\",VBN1,\"V\"\n",
+ "print \"The value of I1 =\",I1*10**3,\"mA\"\n",
+ "print \"The value of IQ =\",IQ*10**3,\"mA\"\n",
+ "print \"The value of IC2 =\",IC2*10**3,\"mA\"\n",
+ "print \"The value of VC3 =\",VC3,\"V\"\n",
+ "print \"The value of VE4 =\",VE4,\"V\"\n",
+ "print \"The value of IC4 =\",IC4*10**3,\"mA\"\n",
+ "print \"The value of VC5 =\",VC5,\"V\"\n",
+ "print \"The value of VE6 =\",VE6,\"V\"\n",
+ "print \"The value of IC7 =\",IC7*10**3,\"mA\"\n",
+ "print \"The value of VB8 =\",VB8,\"V\"\n",
+ "print \"The value of I9 =\",I9*10**3,\"mA\"\n",
+ "print \"The value of I10 =\",I10*10**3,\"mA\"\n",
+ "print \"The value of V0 =\",V0,\"V\"\n",
+ "\n",
+ "# Solution for part B\n",
+ "VT = 26*10**-3 #the volt equivalent of temperature \n",
+ "IC2 = IC3 = IC4 = IC5 = IC = 0.5*10**-3\n",
+ "hie = (hfe*VT)/IC\n",
+ "RL2 = RL3 = (R2*R3)/(R2+R3)\n",
+ "AV1 = round((hfe*RL2)/hie,0)\n",
+ "AV2 = round(-(hfe*R7)/(2*hie),2)\n",
+ "AV3 = 1 # the thrid stage emitter follower differential gain \n",
+ "AV4 = int(-R10/R9)\n",
+ "AV = AV1*round(AV2,1)*AV4 # again rounding AV2 to get the desired value\n",
+ "\n",
+ "# Displaying the values\n",
+ "print \"PART B\"\n",
+ "print \"==================\"\n",
+ "print \"The value of hie =\",int(hie)\n",
+ "print \"The value of RL2 =\",RL2*10**-3,\"Kilo Ohms\"\n",
+ "print \"The value of AV1 =\",int(AV1)\n",
+ "print \"The value of AV2 =\",round(AV2,1)\n",
+ "print \"The value of AV3 =\",AV3\n",
+ "print \"The value of AV4 =\",AV4\n",
+ "print \"The value of AV =\",int(AV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "PART A\n",
+ "==================\n",
+ "the value of VBN1 = -3.13 V\n",
+ "The value of I1 = 0.986363636364 mA\n",
+ "The value of IQ = 0.986363636364 mA\n",
+ "The value of IC2 = 0.493 mA\n",
+ "The value of VC3 = 2.18 V\n",
+ "The value of VE4 = 1.48 V\n",
+ "The value of IC4 = 0.494 mA\n",
+ "The value of VC5 = 4.52 V\n",
+ "The value of VE6 = 3.82 V\n",
+ "The value of IC7 = 1.56 mA\n",
+ "The value of VB8 = -4.6 V\n",
+ "The value of I9 = 1.4 mA\n",
+ "The value of I10 = 0.16 mA\n",
+ "The value of V0 = 0 V\n",
+ "PART B\n",
+ "==================\n",
+ "The value of hie = 5200\n",
+ "The value of RL2 = 3.11196911197 Kilo Ohms\n",
+ "The value of AV1 = 60\n",
+ "The value of AV2 = -28.9\n",
+ "The value of AV3 = 1\n",
+ "The value of AV4 = -5\n",
+ "The value of AV = 8670\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18 Page No.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "VEE = 15.0\n",
+ "VCC = 15.0\n",
+ "VBE1 = VBE2 = VBE3 = VBE4 = VBE5 = VBE= 0.7\n",
+ "R = 28.6*10**3\n",
+ "RC1 = 20*10**3\n",
+ "RC6 = 3*10**3\n",
+ "RC8 = 2.3*10**3\n",
+ "RA = 15.7*10**3\n",
+ "hfe = 100\n",
+ "VT = 25*10**-3\n",
+ "\n",
+ "# Solution for part 1 DC - ANALYSIS\n",
+ "\n",
+ "I = (VEE - VBE3)/R\n",
+ "ICQ4 = I\n",
+ "ICQ1 = ICQ2 = ICQ4/2\n",
+ "# Q1 and Q2 are biased at 0.25mA so their Collector voltages are\n",
+ "IC1 = IC = ICQ1\n",
+ "VCQ1 = VCQ2 = VCC - (IC1*RC1)\n",
+ "VEQ5 = VEQ6 = VCQ1 - VBE\n",
+ "IQ7 = 4*I\n",
+ "# The collector current of Q5 and Q6 are \n",
+ "ICQ5 = ICQ6 = IQ7/2\n",
+ "VCQ6 = VCC - (ICQ6 * RC6)\n",
+ "VEQ8 = VCQ6 + VBE\n",
+ "IEQ8 = (VCC - VEQ8)/RC8\n",
+ "# The voltage VA at the collector of Q8 is \n",
+ "VA = -VCC + (IEQ8 * RA)\n",
+ "IEQ9 = (0-(-VCC))/RC6\n",
+ "\n",
+ "# Displaying all values of Part 1\n",
+ "\n",
+ "print \"The value of I =\",int(I*10**3),\"mA\"\n",
+ "print \"The value of ICQ1 =\",int(ICQ1*10**3),\"mA\"\n",
+ "print \"The value of VCQ1 =\",int(VCQ1),\"V\"\n",
+ "print \"The value of VEQ5 =\",int(VEQ5),\"V\"\n",
+ "print \"The value of IQ7 =\",int(IQ7*10**3),\"mA\"\n",
+ "print \"The value of ICQ5 =\",int(ICQ5*10**3),\"mA\"\n",
+ "print \"The value of VCQ6 =\",int(VCQ6),\"V\"\n",
+ "print \"The value of VEQ8 =\",int(VEQ8),\"V\"\n",
+ "print \"The value of IEQ8 =\",int(IEQ8*10**3),\"mA\"\n",
+ "print \"The value of VA =\",VA,\"V\"\n",
+ "print \"The value of IEQ9 =\",int(IEQ9*10**3),\"mA\"\n",
+ "\n",
+ "# Part 2 AC -ANALYSIS\n",
+ "\n",
+ "hieQ12 = (hfe * VT)/IC\n",
+ "# The ac emitter resistance of transister Q5 - Q6\n",
+ "hieQ56 = (hfe * VT)/ICQ5\n",
+ "RL1 = RL2 = (RC1*hieQ56)/(RC1 + hieQ56) # parallel combination of resistor RC1 and hieQ56\n",
+ "ADM1 = (hfe * RL2)/hieQ12\n",
+ "ADM2 = -(hfe * RC6)/(2*hieQ56)\n",
+ "\n",
+ "\n",
+ "# Displaying the values \n",
+ "\n",
+ "print \"The value of ac emiiter resistace of the transistor Q1-Q2 = \",int(round(hieQ12*10**-3,0)),\"Kilo Ohm\"\n",
+ "print \"The value of ac emiiter resistace of the transistor Q5-Q6 = \",round(hieQ56*10**-3,1),\"Kilo Ohm\"\n",
+ "print \"The value of effective load of Q1-Q2 = \",round(RL1*10**-3,1),\"Kilo Ohm\"\n",
+ "print \"The value of voltage gain of first differential pair = \",int(round(ADM1,0)),\"Kilo Ohm\"\n",
+ "print \"The value of voltage gain of second differential pair = \",int(ADM2),\"Kilo Ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of I = 0 mA\n",
+ "The value of ICQ1 = 0 mA\n",
+ "The value of VCQ1 = 10 V\n",
+ "The value of VEQ5 = 9 V\n",
+ "The value of IQ7 = 2 mA\n",
+ "The value of ICQ5 = 1 mA\n",
+ "The value of VCQ6 = 12 V\n",
+ "The value of VEQ8 = 12 V\n",
+ "The value of IEQ8 = 1 mA\n",
+ "The value of VA = 0.7 V\n",
+ "The value of IEQ9 = 5 mA\n",
+ "The value of ac emiiter resistace of the transistor Q1-Q2 = 10 Kilo Ohm\n",
+ "The value of ac emiiter resistace of the transistor Q5-Q6 = 2.5 Kilo Ohm\n",
+ "The value of effective load of Q1-Q2 = 2.2 Kilo Ohm\n",
+ "The value of voltage gain of first differential pair = 22 Kilo Ohm\n",
+ "The value of voltage gain of second differential pair = -60 Kilo Ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter3.ipynb b/Linear_Integrated_Circuits/Chapter3.ipynb
new file mode 100755
index 00000000..b6d3c5fe
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter3.ipynb
@@ -0,0 +1,306 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Operational Amplifier Characteristics "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No.108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "Ri = 10*10**3\n",
+ "R1 = 10*10**6\n",
+ "Acl = 10\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "Rf = Acl * R1\n",
+ "Rt = 47*10**3\n",
+ "Rs = (Rt**2)/(Rf - (2*Rt))\n",
+ "\n",
+ "# Displaying the results\n",
+ "\n",
+ "print \"The value of Rf = \",Rf/10**6,\"Mega Ohms\"\n",
+ "print \"Thevalue of Rs = \",Rs,\"Ohms\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rf = 100 Mega Ohms\n",
+ "Thevalue of Rs = 22 Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No.110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "\n",
+ "Rf = 10*10**3\n",
+ "R1 = 10**3\n",
+ "Vios = 10*10**-3\n",
+ "Ib = 300*10**-9\n",
+ "Ios = 50*10**-9\n",
+ "\n",
+ "# Solution \n",
+ "# Solution for part a\n",
+ "Vot1 = (1 + (Rf/R1))*Vios + Rf*Ib\n",
+ "# Solution for part b \n",
+ "Rcomp = (Rf * R1)/(Rf + R1)\n",
+ "# Solution for part c\n",
+ "Vot2 = (1+(Rf/R1))*Vios + Rf*Ios \n",
+ "\n",
+ "# Displaying the values \n",
+ "\n",
+ "print \"The value of maximum output offset due to Vios and Ib = \", int( Vot1*10**3),\"mV\"\n",
+ "print \"The value of Rcomp = \",Rcomp,\"Ohms\" # Given answer in the textbook is not correct please make the change \n",
+ "print \"The value of maximum output offset if Rcomp is connected = \",Vot2*10**3,\"mV\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of maximum output offset due to Vios and Ib = 113 mV\n",
+ "The value of Rcomp = 909 Ohms\n",
+ "The value of maximum output offset if Rcomp is connected = 110.5 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No.111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "Acl = 100\n",
+ "Temp0 = 25\n",
+ "Temp1 = 50\n",
+ "Vodrift = 0.15*10**-3\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "Vos = Vodrift * (Temp1 - Temp0)\n",
+ "Vo = Vos * Acl\n",
+ "\n",
+ "# Displaying the results \n",
+ "\n",
+ "print \"The value of Input offset voltage = \",Vos*10**3,\"mV\"\n",
+ "print \"The value of Ooutput voltage = \",int(Vo*10**3),\"mV\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Input offset voltage = 3.75 mV\n",
+ "The value of Ooutput voltage = 375 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No.125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "from scipy import signal\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "Vpp = 6.0\n",
+ "Frequency = 2*10**6\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "WL = 1.0/Frequency # Calculating the wavelength \n",
+ "SR = Vpp/(WL/2) # Calculating the slew rate\n",
+ "\n",
+ "# Displaying the results \n",
+ "\n",
+ "print \"The value of slew rate is =\",int(SR*10**-6),\"V/us\"\n",
+ "\n",
+ "# Ploting the result \n",
+ "\n",
+ "Vp = 3\n",
+ "t = np.linspace(0, 1, 500)\n",
+ "plt.plot(t, -Vp*abs(signal.sawtooth(2 * np.pi * 2 * t))) # Note : Triangular wave is the absolute of sawtooth wave\n",
+ "plt.ylim(-3,0)\n",
+ "plt.title(\"Output wave form of example 3.4\")\n",
+ "plt.ylabel(\"Amplitude (V)\")\n",
+ "plt.xlabel(\"Time(t)\")\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of slew rate is = 24 V/us\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No.126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "# Given data \n",
+ "\n",
+ "Acl = 50\n",
+ "Slew_rate = 0.5\n",
+ "frequency = 20*10**3\n",
+ "# solution \n",
+ "\n",
+ "Vm = round((Slew_rate * 10**6)/(2*math.pi * frequency),2)\n",
+ "Vo = 2 * Vm\n",
+ "Vpeak_to_peak = Vo/Acl\n",
+ "\n",
+ "# Displaying the outputs \n",
+ "\n",
+ "print \"The peak voltage is =\",Vm,\"V peak\"\n",
+ "print \"The peak to peak voltage =\",Vo,\"V peak to peak\"\n",
+ "print \"The value of maximum input voltage is =\",int(Vpeak_to_peak*10**3),\"mVpeak to peak \" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The peak voltage is = 3.98 V peak\n",
+ "The peak to peak voltage = 7.96 V peak to peak\n",
+ "The value of maximum input voltage is = 159 mVpeak to peak \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 Page No.127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "Vptpi = 500*10**-3 #input peak to peak voltage \n",
+ "Vptpo = 3\n",
+ "Tr = 4*10**-6\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "Vdelta = (0.9 - 0.1) * Vptpo\n",
+ "SR = (Vdelta / Tr ) * 10**-6\n",
+ "\n",
+ "# Display the values \n",
+ "\n",
+ "print \"The value of delta V = \",Vdelta,\"V\"\n",
+ "print \"The slew rate is = \",SR,\"V/us\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of delta V = 2.4 V\n",
+ "The slew rate is = 0.6 V/us\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter4.ipynb b/Linear_Integrated_Circuits/Chapter4.ipynb
new file mode 100755
index 00000000..47b4cf90
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter4.ipynb
@@ -0,0 +1,283 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Operational Amplifier Applications "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page No.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "Rf = 50*10**3\n",
+ "R1 = 40*10**3\n",
+ "R2 = 25*10**3\n",
+ "R3 = 10*10**3\n",
+ "R4 = 20*10**3\n",
+ "R5 = 30*10**3\n",
+ "\n",
+ "# Solution \n",
+ "R = (R1 * R2)/(R1 + R2)\n",
+ "Vo11 = (R + Rf)/R\n",
+ "\n",
+ "def Vo(V1,V2,V3,V4):\n",
+ " \n",
+ " return -1.25*V1 - 2.0*V2 + 2.32*V3 + 1.16*V4 \n",
+ "\n",
+ "Vo1 = Vo(2,3,4,5)\n",
+ "\n",
+ "#Dispalying the output \n",
+ "\n",
+ "print \"The value of Vo = \",Vo1,\"V\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Vo = 6.58 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No.167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "import math\n",
+ "from pylab import figure, show\n",
+ "import numpy as np\n",
+ "# Given data\n",
+ "\n",
+ "fmax = 100\n",
+ "Vp = 1\n",
+ "\n",
+ "# solution part a\n",
+ "\n",
+ "C1 = 0.1*10**-6 # Set it as the capacitance value.\n",
+ "Rf = 1/(2*math.pi*fmax*C1)\n",
+ "fb = 10*fmax\n",
+ "R1 = 1/(2*math.pi*fb*C1)\n",
+ "Cf = R1 *C1/Rf \n",
+ "\n",
+ "# Solution part b\n",
+ "fig = figure(1)\n",
+ "t = np.linspace(0,20*10**-3)\n",
+ "ax1 = fig.add_subplot(211)\n",
+ "ax1.plot(t,np.sin(628*t))\n",
+ "ax1.set_ylabel('Voltage vi (v)')\n",
+ "ax1.set_xlabel('Time(t)')\n",
+ "ax1.set_title('A sine input wave')\n",
+ "\n",
+ "ax2 = fig.add_subplot(212)\n",
+ "ax2.plot(t,-np.cos(628*t))\n",
+ "ax2.set_ylabel('Voltage vi (v)')\n",
+ "ax2.set_xlabel('Time(t)')\n",
+ "ax2.set_title('A cosine output wave')\n",
+ "\n",
+ "show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb17f280c>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No.171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "import matplotlib.pylab as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "# Given Data\n",
+ "R1 = 10*10**3\n",
+ "Rf = 100*10**3\n",
+ "Cf = 10*10**-9\n",
+ "\n",
+ "# Solution - Finding the frequency limit of integration fa\n",
+ "\n",
+ "fa = int(1/(2*np.pi*Rf*Cf))\n",
+ "\n",
+ "print \"The value of lower frequency limit of integration is =\",fa,\"Hz\"\n",
+ "\n",
+ "# Studying the response of sine wave input \n",
+ "\n",
+ "V = 1\n",
+ "f = 5*10**3\n",
+ "\n",
+ "vo = round(1/(R1*Cf*2*np.pi*5000),3)\n",
+ "x = np.linspace(-np.pi,np.pi,201)\n",
+ "plt.plot(x,vo*np.cos(2*np.pi*f*x))\n",
+ "plt.xlabel('Time')\n",
+ "plt.ylabel('Voltage')\n",
+ "plt.show()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of lower frequency limit of integration is = 159 Hz\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n/H+jHCBTOHebZwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb278fbec>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No.173 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Given data\n",
+ "\n",
+ "w = 10000\n",
+ "Apeak = 20\n",
+ "A = 3\n",
+ "C = 0.1*10**-6\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "Rf = math.sqrt(1/((10**-4)**2))\n",
+ "R1 = Rf/10\n",
+ "\n",
+ "# Displaying the values \n",
+ "\n",
+ "print \"The value of Rf = \",int(Rf/10**3),\"Kilo Ohms\"\n",
+ "print \"The value of R1 = \",int(R1/10**3),\"Kilo Ohms\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Rf = 10 Kilo Ohms\n",
+ "The value of R1 = 1 Kilo Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No.178"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "# defining two functions \n",
+ "\n",
+ "def x(t):\n",
+ " \n",
+ " return 10*np.sin(3*t)\n",
+ "\n",
+ "def x1(t):\n",
+ "\n",
+ " return 30*np.cos(3*t)\n",
+ "\n",
+ "print \" The value of x(0) = \",int(x(0))\n",
+ "print \" The value of defferential x(0) =\",int(x1(0))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of x(0) = 0\n",
+ " The value of defferential x(0) = 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter5.ipynb b/Linear_Integrated_Circuits/Chapter5.ipynb
new file mode 100755
index 00000000..29abc9bb
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter5.ipynb
@@ -0,0 +1,215 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Comparators and Waveform generators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page No.212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%matplotlib inline\n",
+ "import matplotlib.pylab as plt\n",
+ "import numpy as np\n",
+ "# Given Data \n",
+ "\n",
+ "Vz1 = 9.0\n",
+ "Vz2 = 9.0\n",
+ "\n",
+ "x = np.array([-1, -1, -1, -1, -1, 0, 1, 1, 1, 1, 1]) \n",
+ "plt.plot(9.7*x)\n",
+ "plt.xlabel('Time')\n",
+ "plt.ylabel('Voltage')\n",
+ "plt.show()\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\niIIAALTo/wG+er38RMFoaAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb659de2c>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No.215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "R2 = 100.0\n",
+ "R1 = 50.0*10**3\n",
+ "Vref = 0\n",
+ "vi = 1\n",
+ "Vsat = 14.0\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "VUT = (R2*Vsat)/(R1+R2)\n",
+ "VLT = (R2*-Vsat)/(R1+R2)\n",
+ "\n",
+ "# Displaying the values\n",
+ "\n",
+ "print \"The value of Upper threshold voltage = \",int(round(VUT*10**3,0)),\"mV\"\n",
+ "print \"The value of Lower threshold voltage = \",int(round(VLT*10**3,0)),\"mV\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Upper threshold voltage = 28 mV\n",
+ "The value of Lower threshold voltage = -28 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No.216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np \n",
+ "# Given data\n",
+ "\n",
+ "VUT = 0\n",
+ "VH = 0.2\n",
+ "f = 10.0**3\n",
+ "# Solution \n",
+ "\n",
+ "VLT = VUT - VH\n",
+ "theta = round(np.arcsin(VH/2),1)\n",
+ "T = 1/f\n",
+ "Ttheta = theta/(2*np.pi*f) \n",
+ "T1 = (T/2) + Ttheta\n",
+ "T2 = (T/2) - Ttheta \n",
+ "\n",
+ "# Displayig the values \n",
+ "\n",
+ "print \"The value of Lower threshold voltage = \",VLT,\"V\"\n",
+ "print \"The value of angle theta = \",theta,\"Radian\"\n",
+ "print \"The value of Timeperiode = \",round(Ttheta*10**3,3),\"ms\"\n",
+ "print \"The value of T1 = \",round(T1*10**3,3),\"ms\"\n",
+ "print \"The value of T2 = \",round(T2*10**3,3),\"ms\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Lower threshold voltage = -0.2 V\n",
+ "The value of angle theta = 0.1 Radian\n",
+ "The value of Timeperiode = 0.016 ms\n",
+ "The value of T1 = 0.516 ms\n",
+ "The value of T2 = 0.484 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page No.225 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Given data \n",
+ "\n",
+ "f = 100\n",
+ "C = 0.1*10**-6\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "R = 1/(math.sqrt(6)*2*math.pi*(10**-7)*100)\n",
+ "R1 = 10*R\n",
+ "Rf = 29*R1\n",
+ "\n",
+ "# Displaying the solutions \n",
+ "\n",
+ "print \"The value of R =\",round(R*10**-3,3),\"Kilo Ohms\"\n",
+ "print \"The value of R1 =\",int(round(R1*10**-3,0)),\"Kilo Ohms\"\n",
+ "print \"The value of Rf =\",int(round(Rf*10**-3,0)),\"Kilo Ohms\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R = 6.497 Kilo Ohms\n",
+ "The value of R1 = 65 Kilo Ohms\n",
+ "The value of Rf = 1884 Kilo Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter6.ipynb b/Linear_Integrated_Circuits/Chapter6.ipynb
new file mode 100755
index 00000000..4ddd3b93
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter6.ipynb
@@ -0,0 +1,147 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Voltage Regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page No.246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "Veb = 1.0\n",
+ "beta = 15.0\n",
+ "Vc = 5.0\n",
+ "Io = 1.0 # for 7805 maximum value of I b is 1 Ampere \n",
+ "R1 = 7.0\n",
+ "# Solution \n",
+ "\n",
+ "# for Load = 100ohms \n",
+ "\n",
+ "Rl = 100.0\n",
+ "\n",
+ "Il=Ic=Ii = Vc/Rl\n",
+ "# voltage across R1\n",
+ "V1 = R1*(50*10**-3)\n",
+ "# for load = 5 ohms\n",
+ "\n",
+ "Rl1 = 5.0\n",
+ "Il1 = Vc/Rl1\n",
+ "V12 = Il1 * Rl1 # Finding the Voltage drop across R1 when Rl = 5 Ohms \n",
+ "# Finding the value of Io\n",
+ "Io = (Il1 + (beta*(Veb/R1)))/(beta + 1)\n",
+ "Ic = beta*(Io - (Veb/R1))\n",
+ "\n",
+ "# for load = 1 Ohm\n",
+ "\n",
+ "Rl2 = 1.0\n",
+ "Il2 = Vc/Rl2\n",
+ "# Finding the value of Io\n",
+ "Io1 = (Il2 + (beta*(Veb/R1)))/(beta + 1)\n",
+ "Ic1 = beta*(Io1 - (Veb/R1))\n",
+ "\n",
+ "print \" The value of load current when Rl = 100 ohms is =\",int(Il*10**3),\"mA\"\n",
+ "print \" The voltage across R1 when load is 100 ohms =\",int(V1*10**3),\"mV\"\n",
+ "print \" The value of load current when Rl = 5 ohms =\",int(Il1),\"A\"\n",
+ "print \" The voltage across R1 when load is 5 Ohms =\",int(V12),\"V\"\n",
+ "print \" The value of output current when load is 5 ohms =\",int(Io*10**3),\"mA\"\n",
+ "print \" The value of collector current is =\",int(round(Ic*10**3)),\"mA\"\n",
+ "print \" The value of output current when load is 1 Ohm =\",int(Io1*10**3),\"mA\"\n",
+ "print \" The value of collector current is =\",round(Ic1,2),\"A\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of load current when Rl = 100 ohms is = 50 mA\n",
+ " The voltage across R1 when load is 100 ohms = 350 mV\n",
+ " The value of load current when Rl = 5 ohms = 1 A\n",
+ " The voltage across R1 when load is 5 Ohms = 5 V\n",
+ " The value of output current when load is 5 ohms = 196 mA\n",
+ " The value of collector current is = 804 mA\n",
+ " The value of output current when load is 1 Ohm = 446 mA\n",
+ " The value of collector current is = 4.55 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page No.247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data\n",
+ "\n",
+ "Vo = 7.5\n",
+ "Iq = 4.2*10**-3\n",
+ "Ir1 = 25*10**-3\n",
+ "Vr = 5\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "R1 = Vr/Ir1\n",
+ "R2 = 2.5/(Ir1 + Iq)\n",
+ "\n",
+ "# Displaying the outputs \n",
+ "\n",
+ "print \"The value of R1 =\",int(R1),\"Ohms\" \n",
+ "print \"The value of R2 =\",int(R2),\"Ohms\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1 = 200 Ohms\n",
+ "The value of R2 = 85 Ohms\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter7.ipynb b/Linear_Integrated_Circuits/Chapter7.ipynb
new file mode 100755
index 00000000..9a6ddc8f
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter7.ipynb
@@ -0,0 +1,448 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Active Filters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page No.269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "import math\n",
+ "# Given Data\n",
+ "fh = 10**3\n",
+ "C = 0.1*10**-6\n",
+ "Rf = 5.86*10**3\n",
+ "Ri = 10**4\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "R = 1/(2*np.pi*C*fh)\n",
+ "Ao = (1 + Rf/Ri)\n",
+ "\n",
+ "a = np.array([100, 200, 500, 1000, 5000, 10000])\n",
+ "print \" The value of R is =\",round(R/1000,1),\"Kilo ohms\"\n",
+ "print \" The value of Ao =\",Ao\n",
+ "print \" Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\"\n",
+ "print \" ========================================================\" \n",
+ "for i in a:\n",
+ "\n",
+ " val = round(20 * math.log10(Ao/(math.sqrt(1 + (i/fh)**4))),3)\n",
+ " print i,\" || \",val\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of R is = 1.6 Kilo ohms\n",
+ " The value of Ao = 1.586\n",
+ " Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\n",
+ " ========================================================\n",
+ "100 || 4.006\n",
+ "200 || 4.006\n",
+ "500 || 4.006\n",
+ "1000 || 0.996\n",
+ "5000 || -23.96\n",
+ "10000 || -35.994\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page No.270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Design of a 4th order Butter worth Low pss filter \n",
+ "\n",
+ "fh = 10**3\n",
+ "C = 0.1*10**-6\n",
+ "a1 = 0.765\n",
+ "a2 = 1.848\n",
+ "\n",
+ "Ao1 = 3 - a1\n",
+ "Ao2 = 3 - a2\n",
+ "\n",
+ "# let Rf1 = 12.35 kilo Ohm and Rf2 = 15.2 kilo ohm finding the Ri1 and Ri2 \n",
+ "\n",
+ "Rf1 = 12.35*10**3\n",
+ "Rf2 = 15.2*10**3\n",
+ "\n",
+ "Ri1 = Rf1/(Ao1 - 1)\n",
+ "Ri2 = Rf2/(Ao2 - 1)\n",
+ "\n",
+ "print \" The value of Ao1 = \",Ao1\n",
+ "print \" The value of Ao2 = \",Ao2\n",
+ "print \" The value of Rf1 = \",Rf1/1000,\"Kilo Ohm\"\n",
+ "print \" The value of Rf2 = \",Rf2/1000,\"Kilo Ohm\"\n",
+ "print \" The value of Ri1 = \",int(Ri1/1000),\"Kilo Ohm\"\n",
+ "print \" The value of Ri2 = \",int(Ri2/1000),\"Kilo Ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of Ao1 = 2.235\n",
+ " The value of Ao2 = 1.152\n",
+ " The value of Rf1 = 12.35 Kilo Ohm\n",
+ " The value of Rf2 = 15.2 Kilo Ohm\n",
+ " The value of Ri1 = 10 Kilo Ohm\n",
+ " The value of Ri2 = 100 Kilo Ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page No.271 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Solution to fing out the value of n or order\n",
+ "\n",
+ "# We know the equation is 20 log|(H(jw)| = 20 log (Ao/(math.sqrt(1+(w/wh)**n))\n",
+ "# putig the values into the equation we will get 0.01**2 = 1/(1 + 2**2*n)\n",
+ "# solving the equation to get the value of n\n",
+ "\n",
+ "# 2**(2*n) = 1/(1 + (0.01)**2)\n",
+ "# taking log to the base 2 on both sides\n",
+ "n = math.log(((10**4)-1),2)/2\n",
+ "\n",
+ "print \" The order of the filter will be =\",int(math.ceil(n))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The order of the filter will be = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No.272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "import math\n",
+ "# Given Data\n",
+ "fl = 10**3\n",
+ "C = 0.1*10**-6\n",
+ "Rf = 5.86*10**3\n",
+ "Ri = 10**4\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "R = 1/(2*np.pi*C*fl)\n",
+ "Ao = (1 + Rf/Ri)\n",
+ "\n",
+ "a = np.array([100, 200, 500, 1000, 5000, 10000])\n",
+ "print \" The value of R is =\",round(R/1000,1),\"Kilo ohms\"\n",
+ "print \" The value of Ao =\",Ao\n",
+ "print \" Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\"\n",
+ "print \" ========================================================\" \n",
+ "for i in a:\n",
+ "\n",
+ " val = round(Ao/math.sqrt(1 + (fl/i)**4),3)\n",
+ " print i,\" || \",val\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of R is = 1.6 Kilo ohms\n",
+ " The value of Ao = 1.586\n",
+ " Frequency in Hz Gain magnitude in dB 2o log (Vo/Vi)\n",
+ " ========================================================\n",
+ "100 || 0.016\n",
+ "200 || 0.063\n",
+ "500 || 0.385\n",
+ "1000 || 1.121\n",
+ "5000 || 1.586\n",
+ "10000 || 1.586\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5 Page No.276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Given Data \n",
+ "\n",
+ "fl = 400\n",
+ "fh = 2*10**3\n",
+ "Ao = 4\n",
+ "\n",
+ "# For design top get Ao = 2 the values of Rf = Ri\n",
+ "\n",
+ "Rf = Ri = 10*10**3\n",
+ "\n",
+ "# for LPF \n",
+ "\n",
+ "C1 = 0.01*10**-6\n",
+ "R1 = 1/(2*math.pi*fh*C1)\n",
+ "\n",
+ "# for HPF \n",
+ "\n",
+ "C2 = 0.01*10**-6\n",
+ "R2 = 1/(2*math.pi*fl*C2)\n",
+ "\n",
+ "fo = math.sqrt(fh*fl)\n",
+ "Q = fo/(fh - fl)\n",
+ "\n",
+ "print \"The value of c1 =\",C1*10**6,\"uF\"\n",
+ "print \"The value of R1 =\",round(R1/1000,1),\"kilo Ohms\"\n",
+ "print \"The value of c2 =\",C2*10**6,\"uF\"\n",
+ "print \"The value of R2 =\",round(R2/1000,1),\"Kilo Ohms\"\n",
+ "print \"The value of Q =\",round(Q,2)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of c1 = 0.01 uF\n",
+ "The value of R1 = 8.0 kilo Ohms\n",
+ "The value of c2 = 0.01 uF\n",
+ "The value of R2 = 39.8 Kilo Ohms\n",
+ "The value of Q = 0.56\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6 Page No.279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Given Data \n",
+ "\n",
+ "fo = 50\n",
+ "C = 0.1*10**-6\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "R = 1/(2*math.pi*fo*C)\n",
+ "\n",
+ "print \"The value of Capasitor = \",C*10**6,\"uF\"\n",
+ "print \"The value of Resistor = \",round(R/1000,1),\"Kilo Ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Capasitor = 0.1 uF\n",
+ "The value of Resistor = 31.8 Kilo Ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7 Page No.280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Given Data \n",
+ "\n",
+ "fl = 400\n",
+ "fh = 2*10**3\n",
+ "Ao = 4\n",
+ "\n",
+ "# For design top get Ao = 2 the values of Rf = Ri\n",
+ "\n",
+ "Rf = Ri = 10*10**3\n",
+ "\n",
+ "# for LPF \n",
+ "\n",
+ "C1 = 0.1*10**-6\n",
+ "R1 = 1/(2*math.pi*fh*C1)\n",
+ "\n",
+ "# for HPF \n",
+ "\n",
+ "C2 = 0.1*10**-6\n",
+ "R2 = 1/(2*math.pi*fl*C2)\n",
+ "\n",
+ "fo = math.sqrt(fh*fl)\n",
+ "Q = fo/(fh - fl)\n",
+ "\n",
+ "print \"The value of c1 =\",C1*10**6,\"uF\"\n",
+ "print \"The value of R1 =\",round(R1/1000,1),\"kilo Ohms\"\n",
+ "print \"The value of c2 =\",C2*10**6,\"uF\"\n",
+ "print \"The value of R2 =\",round(R2/1000),\"Kilo Ohms\"\n",
+ "print \"The value of Q =\",round(Q,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of c1 = 0.1 uF\n",
+ "The value of R1 = 0.8 kilo Ohms\n",
+ "The value of c2 = 0.1 uF\n",
+ "The value of R2 = 4.0 Kilo Ohms\n",
+ "The value of Q = 0.56\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10 Page No.298 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# given data \n",
+ "\n",
+ "fc = 400\n",
+ "Ao = -2\n",
+ "Vcc = 5\n",
+ "R1 = 10*10**3\n",
+ "HoLP = 2\n",
+ "\n",
+ "R2 = HoLP * R1 \n",
+ "\n",
+ "# for second order butterworth filter Q = 0.707\n",
+ "Q = 0.707\n",
+ "R3 = Q * R2\n",
+ "\n",
+ "fclock = 50 * fc\n",
+ "\n",
+ "# Dispalying the outputs \n",
+ "\n",
+ "print \"The value of R1 =\",R1/1000,\"Ohms\"\n",
+ "print \"The value of R2 =\",R2/1000,\"Kilo Ohms\"\n",
+ "print \"The value of R3 =\",R3/1000,\"Kilo Ohms\"\n",
+ "print \"The value of clock frequency =\",fclock/1000,\"Kilo Hertz\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R1 = 10 Ohms\n",
+ "The value of R2 = 20 Kilo Ohms\n",
+ "The value of R3 = 14.14 Kilo Ohms\n",
+ "The value of clock frequency = 20 Kilo Hertz\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/Chapter8.ipynb b/Linear_Integrated_Circuits/Chapter8.ipynb
new file mode 100755
index 00000000..fe8ef90b
--- /dev/null
+++ b/Linear_Integrated_Circuits/Chapter8.ipynb
@@ -0,0 +1,125 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - 555 Timer "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page No.315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given data \n",
+ "\n",
+ "R = 100*10**3\n",
+ "T = 100*10**-3\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "C = T/(1.1*R)\n",
+ "\n",
+ "print \"The value of C =\",round(C*10**6,1),\"uF\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of C = 0.9 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No.322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given Data\n",
+ "\n",
+ "Ra = 6.8*10**3\n",
+ "Rb = 3.3*10**3\n",
+ "C = 0.1*10**-6\n",
+ "\n",
+ "# Solution \n",
+ "# Solution of part a\n",
+ "\n",
+ "tHIGH = round(0.69*(Ra + Rb)*C,5)*10**3\n",
+ "\n",
+ "# Solution pf part b\n",
+ "\n",
+ "tLOW = round(0.69*(Rb)*C,5)*10**3\n",
+ "\n",
+ "# Solution of part c\n",
+ "\n",
+ "f = int(1.45/((Ra + 2*Rb)*C))*10**-3\n",
+ "\n",
+ "# Solution for part d\n",
+ "\n",
+ "D = round(Rb/(Ra + 2*Rb),2)\n",
+ "\n",
+ "\n",
+ "# Displaying the answers \n",
+ "\n",
+ "print \"The value of tHIGH =\",tHIGH,\"ms\"\n",
+ "print \"The value of tLOW =\",tLOW,\"ms\"\n",
+ "print \"The value of frequency f =\",f,\"kHz\"\n",
+ "print \"The value of Duty cycle D =\",D,\"or\",D*100,\"%\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of tHIGH = 0.7 ms\n",
+ "The value of tLOW = 0.23 ms\n",
+ "The value of frequency f = 1.082 kHz\n",
+ "The value of Duty cycle D = 0.25 or 25.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/README.txt b/Linear_Integrated_Circuits/README.txt
index f34d66f4..59462772 100755
--- a/Linear_Integrated_Circuits/README.txt
+++ b/Linear_Integrated_Circuits/README.txt
@@ -1,10 +1,10 @@
-Contributed By: Sagar Shinde
-Course: btech
-College/Institute/Organization: Vishwakarma institute of Technology, Pune.
-Department/Designation: ENTC
+Contributed By: Aswin Venu
+Course: be
+College/Institute/Organization: Pavai College of technology
+Department/Designation: ECE
Book Title: Linear Integrated Circuits
-Author: S Shalivahanan, V S Kanchana Bhaaskaran
-Publisher: Tata McGraw-Hill Publishing Company Limited, New Dehli
-Year of publication: 2008
-Isbn: 0-07-064818-2
-Edition: 1st \ No newline at end of file
+Author: D.Roy Choudhury, Shail B. Jain
+Publisher: New age international publishers,New Delhi
+Year of publication: 2012
+Isbn: 9788122430981
+Edition: 4th \ No newline at end of file
diff --git a/Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png b/Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png
new file mode 100755
index 00000000..bc470f78
--- /dev/null
+++ b/Linear_Integrated_Circuits/screenshots/design_of_voltage_regulator.png
Binary files differ
diff --git a/Linear_Integrated_Circuits/screenshots/filter_design.png b/Linear_Integrated_Circuits/screenshots/filter_design.png
new file mode 100755
index 00000000..8823d86e
--- /dev/null
+++ b/Linear_Integrated_Circuits/screenshots/filter_design.png
Binary files differ
diff --git a/Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png b/Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png
new file mode 100755
index 00000000..4edec474
--- /dev/null
+++ b/Linear_Integrated_Circuits/screenshots/op-amp_differentator_design.png
Binary files differ
diff --git a/Magnifying_C/Chapter_10.ipynb b/Magnifying_C/Chapter_10.ipynb
new file mode 100755
index 00000000..1a4d1459
--- /dev/null
+++ b/Magnifying_C/Chapter_10.ipynb
@@ -0,0 +1,336 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Miscellany"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page number: 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "# Calculation and result\n",
+ "i = 0\n",
+ "for arg in sys.argv :\n",
+ " print ('arg [%d] - %s' % (i, arg))\n",
+ " i = i+1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%run 10.1.py hello world"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "arg [0] - 10.1.py\n",
+ "arg [1] - hello\n",
+ "arg [2] - world\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page number: 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "if len(sys.argv) != 2 :\n",
+ "\tprint ('Inappropriate number of arguments')\n",
+ "\t\n",
+ "total = 0\n",
+ "def fact (n) :\n",
+ " total = n\n",
+ " while n > 1 :\n",
+ " total = total * (n - 1)\n",
+ " n = n - 1\n",
+ " return total\n",
+ "\n",
+ "print ('Factorial of %d is %d ' % (int(sys.argv[1]), fact (int(sys.argv[1]))))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%run 10.2.py 5"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Factorial of 5 is 120 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3, Page number: 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "# Function declaration\n",
+ "def printdata () :\n",
+ "\ti = 0\n",
+ "\tfor arg in sys.argv[1:] :\n",
+ "\t\tprint ('The data in cell [%d] is %s ' % (i, arg))\n",
+ "\t\ti = i+1\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('The names before sorting are ')\n",
+ "printdata ()\n",
+ "\n",
+ "sys.argv.sort() \n",
+ "\n",
+ "print ('The names after sorting are ')\n",
+ "printdata ()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%run 10.3.py zimbabwe nigeria argentina china hongkong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The names before sorting are \n",
+ "The data in cell [0] is zimbabwe \n",
+ "The data in cell [1] is nigeria \n",
+ "The data in cell [2] is argentina \n",
+ "The data in cell [3] is china \n",
+ "The data in cell [4] is hongkong \n",
+ "The names after sorting are \n",
+ "The data in cell [0] is argentina \n",
+ "The data in cell [1] is china \n",
+ "The data in cell [2] is hongkong \n",
+ "The data in cell [3] is nigeria \n",
+ "The data in cell [4] is zimbabwe \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page number: 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter any positive number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def convert (a) :\n",
+ " return int(bin(a)[2:])\n",
+ "\n",
+ "bits = str(convert (a))\n",
+ "print ('Number of bits = %d' % (len(bits)))\n",
+ "print ('Binary equivalent is : %d' % (convert (a)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any positive number 16\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of bits = 5\n",
+ "Binary equivalent is : 10000\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5, Page number: 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number : '))\n",
+ "b = int(raw_input('Enter second number : '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "b = ~b + 1\n",
+ "c = a + b\n",
+ "\n",
+ "print ('Subtraction is = %d ' % c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subtraction is = 4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6, Page number: 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number : '))\n",
+ "original_a = a\n",
+ "\n",
+ "b = int(raw_input('Enter second number : '))\n",
+ "original_b = b\n",
+ "\n",
+ "# Calculation and result\n",
+ "c = 1\n",
+ "while (b) :\n",
+ "\tif (b & 1) :\n",
+ "\t\tc = c * a\n",
+ "\tb = b >> 1\n",
+ "\ta = a * a\n",
+ "\n",
+ "print ('%d raise to %d = %d ' % (original_a, original_b, c))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7 raise to 3 = 343 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_11.ipynb b/Magnifying_C/Chapter_11.ipynb
new file mode 100755
index 00000000..16b27feb
--- /dev/null
+++ b/Magnifying_C/Chapter_11.ipynb
@@ -0,0 +1,1664 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Structures and Unions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page number: 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student :\n",
+ "\tid_no = ''\n",
+ "\tname = ''\n",
+ "\taddress = ''\n",
+ "\tage = ''\n",
+ "\t\n",
+ "newstudent = student()\n",
+ "\n",
+ "print ('Enter the student information ')\n",
+ "newstudent.id_no = int(raw_input('Enter student id_no : '))\n",
+ "newstudent.name = raw_input('Enter name of the student : ')\n",
+ "newstudent.address = raw_input('Enter the address of the student : ')\n",
+ "newstudent.age = int(raw_input('Enter the age of the student : '))\n",
+ "\n",
+ "print ('You have entered following information...')\n",
+ "print ('Student id_number = %d ' % newstudent.id_no)\n",
+ "print ('Student name = %s ' % newstudent.name)\n",
+ "print ('Student address = %s ' % newstudent.address)\n",
+ "print ('Age of student = %d ' % newstudent.age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student information \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter student id_no : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of the student : Amanjeet\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the address of the student : Delhi\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age of the student : 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered following information...\n",
+ "Student id_number = 1 \n",
+ "Student name = Amanjeet \n",
+ "Student address = Delhi \n",
+ "Age of student = 20 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page number: 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student :\n",
+ "\tid_no = ''\n",
+ "\tname = ''\n",
+ "\taddress = ''\n",
+ "\tage = ''\n",
+ "\t\n",
+ "newstudent = student()\n",
+ "\n",
+ "def putdata (newstudent) : \n",
+ " print ('You have entered following information...')\n",
+ " print ('Student id_number = %d ' % newstudent.id_no)\n",
+ " print ('Student name = %s ' % newstudent.name)\n",
+ " print ('Student address = %s ' % newstudent.address)\n",
+ " print ('Age of student = %d ' % newstudent.age)\n",
+ " \n",
+ "print ('Enter the student information ') \n",
+ "newstudent.id_no = int(raw_input('Enter student id_no : '))\n",
+ "newstudent.name = raw_input('Enter name of the student : ')\n",
+ "newstudent.address = raw_input('Enter the address of the student : ')\n",
+ "newstudent.age = int(raw_input('Enter the age of the student : '))\n",
+ "\n",
+ "putdata (newstudent)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student information \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter student id_no : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of the student : Deepti\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the address of the student : Noida\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age of the student : 23\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered following information...\n",
+ "Student id_number = 2 \n",
+ "Student name = Deepti \n",
+ "Student address = Noida \n",
+ "Age of student = 23 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page number: 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student :\n",
+ "\tid_no = ''\n",
+ "\tname = ''\n",
+ "\taddress = ''\n",
+ "\tage = ''\n",
+ "\t\n",
+ "newstudent = student()\n",
+ "\n",
+ "def putdata (idno, name, add, age) :\n",
+ " print ('You have entered following information...')\n",
+ " print ('Student id_number = %d ' % idno)\n",
+ " print ('Student name = %s ' % name)\n",
+ " print ('Student address = %s ' % add)\n",
+ " print ('Age of student = %d ' % age)\n",
+ " \n",
+ "print ('Enter the student information ')\n",
+ "newstudent.id_no = int(raw_input('Enter student id_no : '))\n",
+ "newstudent.name = raw_input('Enter name of the student : ')\n",
+ "newstudent.address = raw_input('Enter the address of the student : ')\n",
+ "newstudent.age = int(raw_input('Enter the age of the student : '))\n",
+ "\n",
+ "putdata (newstudent.id_no, newstudent.name, newstudent.address, newstudent.age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student information \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter student id_no : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of the student : Kushagra\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the address of the student : Bangalore\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age of the student : 21\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered following information...\n",
+ "Student id_number = 3 \n",
+ "Student name = Kushagra \n",
+ "Student address = Bangalore \n",
+ "Age of student = 21 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page number: 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student :\n",
+ "\tid_no = 0\n",
+ "\tname = 'Unknown'\n",
+ "\taddress = 'Unknown'\n",
+ "\tage = 0\n",
+ "\t\n",
+ "newstudent = student()\n",
+ "\n",
+ "def readdata (newstudent) :\n",
+ " print ('Enter the student information ')\n",
+ " newstudent.id_no = int(raw_input('Enter student id_no : '))\n",
+ " newstudent.name = raw_input('Enter name of the student : ')\n",
+ " newstudent.address = raw_input('Enter the address of the student : ')\n",
+ " newstudent.age = int(raw_input('Enter the age of the student : '))\n",
+ "\n",
+ "readdata (newstudent)\n",
+ "print ('You have entered following information...')\n",
+ "print ('Student id_number = %d ' % newstudent.id_no)\n",
+ "print ('Student name = %s ' % newstudent.name)\n",
+ "print ('Student address = %s ' % newstudent.address)\n",
+ "print ('Age of student = %d ' % newstudent.age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student information \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter student id_no : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of the student : Vipul\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the address of the student : Chandigarh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age of the student : 25\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered following information...\n",
+ "Student id_number = 4 \n",
+ "Student name = Vipul \n",
+ "Student address = Chandigarh \n",
+ "Age of student = 25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page number: 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student :\n",
+ "\tid_no = 0\n",
+ "\tname = 'Unknown'\n",
+ "\taddress = 'Unknown'\n",
+ "\tage = 0\n",
+ "\t\n",
+ "def readdata () :\n",
+ " x = student()\n",
+ " print ('Enter the student information ')\n",
+ " x.id_no = int(raw_input('Enter student id_no : '))\n",
+ " x.name = raw_input('Enter name of the student : ')\n",
+ " x.address = raw_input('Enter the address of the student : ')\n",
+ " x.age = int(raw_input('Enter the age of the student : '))\n",
+ " return x\n",
+ "\n",
+ "newstudent = readdata()\n",
+ "\n",
+ "print ('You have entered following information...')\n",
+ "print ('Student id_number = %d ' % newstudent.id_no)\n",
+ "print ('Student name = %s ' % newstudent.name)\n",
+ "print ('Student address = %s ' % newstudent.address)\n",
+ "print ('Age of student = %d ' % newstudent.age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student information \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter student id_no : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of the student : Ujjwal\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the address of the student : Jaipur\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age of the student : 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered following information...\n",
+ "Student id_number = 5 \n",
+ "Student name = Ujjwal \n",
+ "Student address = Jaipur \n",
+ "Age of student = 20 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6, Page number: 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student :\n",
+ "\tid_no = 0\n",
+ "\tname = 'Unknown'\n",
+ "\taddress = 'Unknown'\n",
+ "\tage = 0\n",
+ "\t\n",
+ "x = student()\n",
+ "\n",
+ "def readdata (x) :\n",
+ " print ('Enter the student information ')\n",
+ " x.id_no = int(raw_input('Enter student id_no : '))\n",
+ " x.name = raw_input('Enter name of the student : ')\n",
+ " x.address = raw_input('Enter the address of the student : ')\n",
+ " x.age = int(raw_input('Enter the age of the student : '))\n",
+ "\n",
+ "readdata(x) \n",
+ "print ('You have entered following information...')\n",
+ "print ('Student id_number = %d ' % x.id_no)\n",
+ "print ('Student name = %s ' % x.name)\n",
+ "print ('Student address = %s ' % x.address)\n",
+ "print ('Age of student = %d ' % x.age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the student information \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter student id_no : 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of the student : Karan\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the address of the student : Chennai\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age of the student : 24\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered following information...\n",
+ "Student id_number = 6 \n",
+ "Student name = Karan \n",
+ "Student address = Chennai \n",
+ "Age of student = 24 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7, Page number: 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student (object) :\n",
+ "\tdef __init__(self, roll=None, name=None, gender=None, marks=[0]*3) :\n",
+ "\t\tself.roll = roll\n",
+ "\t\tself.name = name\n",
+ "\t\tself.gender = gender\n",
+ "\t\tself.marks = marks\n",
+ "\n",
+ "def putdata (stud, count) :\n",
+ "\tprint ('RollNo\\t Name\\t\\t Gender\\t Sub1\\t Sub2\\t Sub3 ')\n",
+ "\tprint ('---------------------------------------------------------------------')\n",
+ "\t\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tprint ('%-10d' % stud[i].roll),\n",
+ "\t\tprint ('%-15s' % stud[i].name),\n",
+ "\t\t\n",
+ "\t\tif stud[i].gender == 0 :\n",
+ "\t\t\tprint ('%-15s' % 'Female'),\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('%-15s' % 'Male'),\n",
+ "\t\t\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tprint ('%-10d' % stud[i].marks[j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "def calculateper (stud, count) :\n",
+ "\taverage = 0\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tsum = 0\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tsum = sum + stud[i].marks[j]\n",
+ "\t\taverage = average + sum/3\n",
+ "\treturn average/count\n",
+ "\n",
+ "stud = []\t\n",
+ "stud.append (student (1, 'Kapildev', 1, (45, 56, 67)))\n",
+ "stud.append (student (2, 'Vidya', 0, (87, 45, 23)))\n",
+ "stud.append (student (3, 'Sharada', 0, (67, 94, 56)))\n",
+ "stud.append (student (4, 'Saismaran', 1, (56, 38, 84)))\n",
+ "stud.append (student (5, 'Reshma', 0, (67, 98, 76)))\n",
+ "\n",
+ "average_percentage = calculateper (stud, 5)\n",
+ "putdata (stud, 5)\n",
+ "print ('\\nAverage percentage of the class is : %.2f ' % average_percentage)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RollNo\t Name\t\t Gender\t Sub1\t Sub2\t Sub3 \n",
+ "---------------------------------------------------------------------\n",
+ "1 Kapildev Male 45 56 67 \n",
+ "2 Vidya Female 87 45 23 \n",
+ "3 Sharada Female 67 94 56 \n",
+ "4 Saismaran Male 56 38 84 \n",
+ "5 Reshma Female 67 98 76 \n",
+ "\n",
+ "Average percentage of the class is : 63.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8, Page number: 406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student (object) :\n",
+ "\tdef __init__(self, roll=None, name=None, gender=None, marks=[0]*3) :\n",
+ "\t\tself.roll = roll\n",
+ "\t\tself.name = name\n",
+ "\t\tself.gender = gender\n",
+ "\t\tself.marks = marks\n",
+ "\t\n",
+ "def putdata (stud, count) :\n",
+ "\tprint ('\\nRollNo\\t Name\\t\\t Gender\\t Sub1\\t Sub2\\t Sub3 ')\n",
+ "\tprint ('---------------------------------------------------------------------')\n",
+ "\t\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tprint ('%-10d' % stud[i].roll),\n",
+ "\t\tprint ('%-15s' % stud[i].name),\n",
+ "\t\t\n",
+ "\t\tif stud[i].gender == 0 :\n",
+ "\t\t\tprint ('%-15s' % 'Female'),\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('%-15s' % 'Male'),\n",
+ "\t\t\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tprint ('%-10d' % stud[i].marks[j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "def calculateper (stud, count) :\n",
+ "\taverage = 0\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tsum = 0\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tsum = sum + stud[i].marks[j]\n",
+ "\t\taverage = average + sum/3\n",
+ "\treturn average/count\n",
+ "\n",
+ "count = int(raw_input('Enter the number of students in a class : '))\n",
+ "stud = [student() for i in range (0, count)]\n",
+ "\n",
+ "for i in range (0, count) :\n",
+ "\tstud[i].roll = int(raw_input('\\nEnter roll number of student %d: ' % (i+1)))\n",
+ "\tstud[i].name = raw_input('Enter name of student %d: ' % (i+1))\n",
+ "\tstud[i].gender = int(raw_input('Enter gender[0/1] of student %d: ' % (i+1)))\n",
+ "\tprint ('Enter marks of three subjects of student %d: ' % (i+1))\n",
+ "\tfor j in range (0, 3) :\n",
+ "\t\tstud[i].marks[j] = int(raw_input('Subject %d: ' % (j+1)))\n",
+ "\n",
+ "putdata (stud, count)\n",
+ "average_percentage = calculateper (stud, count)\n",
+ "print ('\\nAverage percentage of the class is : %.2f ' % average_percentage)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of students in a class : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter roll number of student 1: 24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of student 1: Vidya\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter gender[0/1] of student 1: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of three subjects of student 1: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1: 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2: 96\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3: 75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "RollNo\t Name\t\t Gender\t Sub1\t Sub2\t Sub3 \n",
+ "---------------------------------------------------------------------\n",
+ "24 Vidya Female 78 96 75 \n",
+ "\n",
+ "Average percentage of the class is : 83.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9, Page number: 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class student (object) :\n",
+ "\tdef __init__(self, roll=None, name=None, gender=None, marks=[0]*3) :\n",
+ "\t\tself.roll = roll\n",
+ "\t\tself.name = name\n",
+ "\t\tself.gender = gender\n",
+ "\t\tself.marks = marks\n",
+ "\n",
+ "def readdata (stud, count) :\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tstud[i].roll = int(raw_input('\\nEnter roll number of student %d: ' % (i+1)))\n",
+ "\t\tstud[i].name = raw_input('Enter name of student %d: ' % (i+1))\n",
+ "\t\tstud[i].gender = int(raw_input('Enter gender[0/1] of student %d: ' % (i+1)))\n",
+ "\t\tprint ('Enter marks of three subjects of student %d: ' % (i+1))\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tstud[i].marks[j] = int(raw_input('Subject %d: ' % (j+1)))\n",
+ "\t\n",
+ "def putdata (stud, count) :\n",
+ "\tprint ('\\nRollNo\\t Name\\t\\t Gender\\t Sub1\\t Sub2\\t Sub3 ')\n",
+ "\tprint ('---------------------------------------------------------------------')\n",
+ "\t\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tprint ('%-10d' % stud[i].roll),\n",
+ "\t\tprint ('%-15s' % stud[i].name),\n",
+ "\t\t\n",
+ "\t\tif stud[i].gender == 0 :\n",
+ "\t\t\tprint ('%-15s' % 'Female'),\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('%-15s' % 'Male'),\n",
+ "\t\t\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tprint ('%-10d' % stud[i].marks[j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "def calculateper (stud, count) :\n",
+ "\taverage = 0\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tsum = 0\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tsum = sum + stud[i].marks[j]\n",
+ "\t\taverage = average + sum/3\n",
+ "\treturn average/count\n",
+ "\n",
+ "count = int(raw_input('Enter the number of students in a class : '))\n",
+ "stud = [student() for i in range (0, count)]\n",
+ "readdata (stud, count)\n",
+ "\n",
+ "average_percentage = calculateper (stud, count)\n",
+ "putdata (stud, count)\n",
+ "print ('\\nAverage percentage of the class is : %.2f ' % average_percentage)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of students in a class : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter roll number of student 1: 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of student 1: Kapildev\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter gender[0/1] of student 1: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of three subjects of student 1: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1: 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2: 70\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3: 93\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "RollNo\t Name\t\t Gender\t Sub1\t Sub2\t Sub3 \n",
+ "---------------------------------------------------------------------\n",
+ "25 Kapildev Male 45 70 93 \n",
+ "\n",
+ "Average percentage of the class is : 69.00 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.10, Page number: 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class time (object) :\n",
+ "\tdef __init__(self, hours=None, minutes=None, seconds=None) :\n",
+ "\t\tself.hours = hours\n",
+ "\t\tself.minutes = minutes\n",
+ "\t\tself.seconds = seconds\n",
+ "\n",
+ "def AcceptTime (t) :\n",
+ "\tprint ('Enter the time in hh mm ss format: ')\n",
+ "\tt.hours = int(raw_input('Hours = '))\n",
+ "\tt.minutes = int(raw_input('Minutes = '))\n",
+ "\tt.seconds = int(raw_input('Seconds = '))\n",
+ "\n",
+ "def ValidateTime (t) :\n",
+ "\tif t.hours < 0 or t.hours > 23 :\n",
+ "\t\treturn 0\n",
+ "\tif t.minutes < 0 or t.minutes > 60 :\n",
+ "\t\treturn 0\n",
+ "\tif t.seconds < 0 or t.seconds > 60 :\n",
+ "\t\treturn 0\n",
+ "\treturn 1\n",
+ "\n",
+ "def DisplayTime (t) :\n",
+ "\tprint ('Time you entered is %d:%d:%d ' % (t.hours, t.minutes, t.seconds))\n",
+ "\t\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tt = time ()\n",
+ "\tAcceptTime (t)\n",
+ "\t\n",
+ "\tif ValidateTime (t) == 1 :\n",
+ "\t\tcondition = False\n",
+ "\telse :\n",
+ "\t\tprint ('\\nTime is incorrect. Enter again ')\n",
+ "\t\t\n",
+ "DisplayTime (t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the time in hh mm ss format: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hours = 13\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minutes = 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Seconds = 53\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time you entered is 13:45:53 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.11, Page number: 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class date (object) :\n",
+ "\tdef __init__(self, dd=None, mm=None, yy=None) :\n",
+ "\t\tself.dd = dd\n",
+ "\t\tself.mm = mm\n",
+ "\t\tself.yy = yy\n",
+ "\n",
+ "def AcceptDate (d) :\n",
+ "\tprint ('Enter date in dd mm yy format: ')\n",
+ "\td.dd = int(raw_input('Date = '))\n",
+ "\td.mm = int(raw_input('Month = '))\n",
+ "\td.yy = int(raw_input('Year = '))\n",
+ "\n",
+ "def isleap (val) :\n",
+ "\tif val % 4 == 0 and val % 100 or val % 400 == 0 :\n",
+ "\t\treturn 1\n",
+ "\treturn 0\n",
+ "\t\n",
+ "def ValidateDate (d) :\n",
+ "\tif d.dd < 1 or d.dd > 31 :\n",
+ "\t\treturn 0\n",
+ "\tif d.mm < 1 or d.mm > 12 :\n",
+ "\t\treturn 0\n",
+ "\tif d.yy < 1 :\n",
+ "\t\treturn 0\n",
+ "\tif d.mm == 2 :\n",
+ "\t\tif isleap (d.yy) :\n",
+ "\t\t\tif d.dd > 29 :\n",
+ "\t\t\t\treturn 0\n",
+ "\t\telif d.dd > 28 :\n",
+ "\t\t\treturn 0\n",
+ "\tif d.mm == 4 or d.mm == 6 or d.mm == 9 or d.mm == 11 and d.dd > 30 :\n",
+ "\t\treturn 0\n",
+ "\treturn 1\n",
+ "\n",
+ "def DisplayMsg (d1, d2) :\n",
+ "\tif d1.dd == d2.dd and d1.mm == d2.mm and d1.yy == d2.yy :\n",
+ "\t\tprint ('Both dates are Equal ')\n",
+ "\telse :\n",
+ "\t\tprint ('Both dates are Not Equal ')\n",
+ "\t\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\td1 = date ()\n",
+ "\tAcceptDate (d1)\n",
+ "\t\n",
+ "\tif ValidateDate (d1) == 1 :\n",
+ "\t\tcondition = False\n",
+ "\telse :\n",
+ "\t\tprint ('\\nDate is incorrect. Enter again ')\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\td2 = date ()\n",
+ "\tAcceptDate (d2)\n",
+ "\t\n",
+ "\tif ValidateDate (d2) == 1 :\n",
+ "\t\tcondition = False\n",
+ "\telse :\n",
+ "\t\tprint ('\\nDate is incorrect. Enter again ')\n",
+ "\t\t\n",
+ "DisplayMsg (d1, d2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter date in dd mm yy format: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Date = 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Month = 11\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Year = 92\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter date in dd mm yy format: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Date = 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Month = 11\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Year = 92\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Both dates are Equal \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.12, Page number: 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class date (object) :\n",
+ "\tdef __init__(self, dd=None, mm=None, yy=None) :\n",
+ "\t\tself.dd = dd\n",
+ "\t\tself.mm = mm\n",
+ "\t\tself.yy = yy\n",
+ "\n",
+ "def AcceptDate (d) :\n",
+ "\tprint ('Enter date in dd mm yy format: ')\n",
+ "\td.dd = int(raw_input('Date = '))\n",
+ "\td.mm = int(raw_input('Month = '))\n",
+ "\td.yy = int(raw_input('Year = '))\n",
+ "\n",
+ "def isleap (val) :\n",
+ "\tif val % 4 == 0 and val % 100 or val % 400 == 0 :\n",
+ "\t\treturn 1\n",
+ "\treturn 0\n",
+ "\t\n",
+ "def ValidateDate (d) :\n",
+ "\tif d.dd < 1 or d.dd > 31 :\n",
+ "\t\treturn 0\n",
+ "\tif d.mm < 1 or d.mm > 12 :\n",
+ "\t\treturn 0\n",
+ "\tif d.yy < 1 :\n",
+ "\t\treturn 0\n",
+ "\tif d.mm == 2 :\n",
+ "\t\tif isleap (d.yy) :\n",
+ "\t\t\tif d.dd > 29 :\n",
+ "\t\t\t\treturn 0\n",
+ "\t\telif d.dd > 28 :\n",
+ "\t\t\treturn 0\n",
+ "\tif d.mm == 4 or d.mm == 6 or d.mm == 9 or d.mm == 11 and d.dd > 30 :\n",
+ "\t\treturn 0\n",
+ "\treturn 1\n",
+ "\n",
+ "def CalcDate (d1, d2) :\n",
+ "\tdate1 = date2 = 0\n",
+ "\tfor i in range (-d1.yy, d1.yy) :\n",
+ "\t\tdate1 = date1 + 366 if isleap (d1.yy) else 365\n",
+ "\t\td1.yy = d1.yy - 1\n",
+ "\t\t\n",
+ "\tfor i in range (-d1.mm, d1.mm) :\n",
+ "\t\tdate1 = date1 + (30 if (d1.mm==4 or d1.mm==6 or d1.mm==9 or d1.mm==11) else ((29 if isleap(d1.yy) else 28) if (d1.mm==2) else 31))\n",
+ "\t\n",
+ "\tdate1 = date1 + d1.dd\n",
+ "\t\n",
+ "\tfor i in range (-d2.yy, d2.yy) :\n",
+ "\t\tdate2 = date2 + 366 if isleap(d2.yy) else 365\n",
+ "\t\n",
+ "\tfor i in range (-d2.mm, d2.mm) :\n",
+ "\t\tdate2 = date2 + (30 if (d2.mm==4 or d2.mm==6 or d2.mm==9 or d2.mm==11) else ((29 if isleap(d2.yy) else 28) if d2.mm==2 else 31))\n",
+ "\t\n",
+ "\tdate2 = date2 + d2.dd\n",
+ "\t\n",
+ "\treturn (date2 - date1)/2\n",
+ "\t\t\n",
+ "def DisplayMsg (d1, d2, diff) :\n",
+ "\tprint ('The difference between %d %d %d and %d %d %d is %d days ' % (d1.dd, d1.mm, -d1.yy, d2.dd, d2.mm, d2.yy, diff))\n",
+ "\t\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tprint ('\\nEnter first date: ')\n",
+ "\td1 = date ()\n",
+ "\tAcceptDate (d1)\n",
+ "\t\n",
+ "\tif ValidateDate (d1) == 1 :\n",
+ "\t\tcondition = False\n",
+ "\telse :\n",
+ "\t\tprint ('\\nDate is incorrect. Enter again ')\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tprint ('\\nEnter second date: ')\n",
+ "\td2 = date ()\n",
+ "\tAcceptDate (d2)\n",
+ "\t\n",
+ "\tif ValidateDate (d2) == 1 :\n",
+ "\t\tcondition = False\n",
+ "\telse :\n",
+ "\t\tprint ('\\nDate is incorrect. Enter again ')\n",
+ "\n",
+ "diff = CalcDate (d1, d2)\n",
+ "DisplayMsg (d1, d2, diff)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter first date: \n",
+ "Enter date in dd mm yy format: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Date = 01\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Month = 01\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Year = 01\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter second date: \n",
+ "Enter date in dd mm yy format: \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Date = 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Month = 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Year = 08\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The difference between 1 1 1 and 25 12 8 is 2915 days \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.13, Page number: 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from ctypes import *\n",
+ "\n",
+ "# Structure declaration\n",
+ "class stream (Union) :\n",
+ "\t_fields_ = [('grade', c_char), \n",
+ "\t\t\t\t\t('class_std', c_int), \n",
+ "\t\t\t\t\t('percentage', c_float)]\n",
+ "\t\n",
+ "class student (Structure) :\n",
+ "\t_fields_ = [('roll', c_int), \n",
+ "\t\t\t\t\t('name', c_char_p), \n",
+ "\t\t\t\t\t('gender', c_int), \n",
+ "\t\t\t\t\t('marks', c_int * 3), \n",
+ "\t\t\t\t\t('st_stream', c_char), \n",
+ "\t\t\t\t\t('st', stream)]\n",
+ "\t\n",
+ "def putdata (stud, count) :\n",
+ "\tprint ('\\nStream\\t Roll\\t Name\\t Gender\\t Result\\t ')\n",
+ "\tprint ('---------------------------------------------------------------------')\n",
+ "\t\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tif stud[i].st_stream == 'A' :\n",
+ "\t\t\tprint ('Arts\\t '),\n",
+ "\t\telif stud[i].st_stream == 'S' :\n",
+ "\t\t\tprint ('Science\\t '),\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('Commerce '),\n",
+ "\t\t\t\n",
+ "\t\tprint ('%-5d ' % stud[i].roll),\n",
+ "\t\tprint ('%-3s ' % stud[i].name),\n",
+ "\t\t\n",
+ "\t\tif stud[i].gender == 0 :\n",
+ "\t\t\tprint ('\\tFemale'),\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('\\tMale '),\n",
+ "\t\t\n",
+ "\t\tif stud[i].st_stream == 'A' :\n",
+ "\t\t\tprint (' %d Class ' % stud[i].st.class_std),\n",
+ "\t\telif stud[i].st_stream == 'S' :\n",
+ "\t\t\tprint (' %c Grade ' % stud[i].st.grade),\n",
+ "\t\telse :\n",
+ "\t\t\tprint (' %.2f Percent ' % stud[i].st.percentage),\n",
+ "\t\tprint\n",
+ "\n",
+ "def calculateper (stud, count) :\n",
+ "\taverage = 0\n",
+ "\tfor i in range (0, count) :\n",
+ "\t\tsum = 0\n",
+ "\t\tfor j in range (0, 3) :\n",
+ "\t\t\tsum = sum + stud[i].marks[j]\n",
+ "\t\taverage = (float)(sum/3)\n",
+ "\t\t\n",
+ "\t\tif stud[i].st_stream == 'A' :\n",
+ "\t\t\tif average >= 60 :\n",
+ "\t\t\t\tstud[i].st.class_std = 1\n",
+ "\t\t\telse :\n",
+ "\t\t\t\tstud[i].st.class_std = 2\n",
+ "\t\t\t\t\n",
+ "\t\telif stud[i].st_stream == 'S' :\n",
+ "\t\t\tif average >= 60 :\n",
+ "\t\t\t\tstud[i].st.grade = 'A'\n",
+ "\t\t\telse :\n",
+ "\t\t\t\tstud[i].st.class_std = 'B'\n",
+ "\t\telse : \n",
+ "\t\t\tstud[i].st.percentage = average\n",
+ "\n",
+ "count = int(raw_input('Enter the number of students in a class : '))\n",
+ "stud = [student() for i in range (0, count)]\n",
+ "\n",
+ "for i in range (0, count) :\n",
+ "\tstud[i].st_stream = raw_input('\\nEnter stream of student %d (A/C/S) : ' % (i+1))\n",
+ "\tstud[i].roll = int(raw_input('Enter roll number of student %d : ' % (i+1)))\n",
+ "\tstud[i].name = raw_input('Enter name of student %d : ' % (i+1))\n",
+ "\tstud[i].gender = int(raw_input('Enter gender of student %d [0/1] : ' % (i+1)))\n",
+ "\tprint ('Enter marks of three subjects of student %d : ' % (i+1))\n",
+ "\tfor j in range (0, 3) :\n",
+ "\t\tstud[i].marks[j] = int(raw_input('Subject %d : ' % (j+1)))\n",
+ "\t\n",
+ "calculateper (stud, count)\n",
+ "putdata (stud, count)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of students in a class : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter stream of student 1 (A/C/S) : A\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter roll number of student 1 : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of student 1 : Saismaran\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter gender of student 1 [0/1] : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of three subjects of student 1 : \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1 : 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2 : 83\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3 : 59\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter stream of student 2 (A/C/S) : C\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter roll number of student 2 : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of student 2 : Vidya\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter gender of student 2 [0/1] : 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of three subjects of student 2 : \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1 : 84\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2 : 75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3 : 93\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter stream of student 3 (A/C/S) : S\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter roll number of student 3 : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name of student 3 : Pranav\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter gender of student 3 [0/1] : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter marks of three subjects of student 3 : \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1 : 84\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2 : 95\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3 : 83\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Stream\t Roll\t Name\t Gender\t Result\t \n",
+ "---------------------------------------------------------------------\n",
+ "Arts\t 1 Saismaran \tMale 1 Class \n",
+ "Commerce 2 Vidya \tFemale 84.00 Percent \n",
+ "Science\t 3 Pranav \tMale A Grade \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_12.ipynb b/Magnifying_C/Chapter_12.ipynb
new file mode 100755
index 00000000..4fec3405
--- /dev/null
+++ b/Magnifying_C/Chapter_12.ipynb
@@ -0,0 +1,2137 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Files"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page number: 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "fp = open('12.1.dat', 'w')\n",
+ "\n",
+ "for i in range (0, 11) :\n",
+ "\tfp.write('%d, %d \\n' % (i, i*i))\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page number: 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "fp = open('12.2.dat', 'w')\n",
+ "\n",
+ "for i in range (0, 11) :\n",
+ "\tfp.write('%d, %d \\n' % (i, i*i))\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3, Page number: 430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "fp = open('12.2.dat', 'a')\n",
+ "i = 11\n",
+ "fp.write('%d, %d \\n' % (i, i*i))\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page number: 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "with open ('12.2.dat') as fp:\n",
+ "\tfor line in fp :\n",
+ "\t\tprint line\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0, 0 \n",
+ "\n",
+ "1, 1 \n",
+ "\n",
+ "2, 4 \n",
+ "\n",
+ "3, 9 \n",
+ "\n",
+ "4, 16 \n",
+ "\n",
+ "5, 25 \n",
+ "\n",
+ "6, 36 \n",
+ "\n",
+ "7, 49 \n",
+ "\n",
+ "8, 64 \n",
+ "\n",
+ "9, 81 \n",
+ "\n",
+ "10, 100 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page number: 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "print ('Data input ')\n",
+ "f1 = open('12.5.dat', 'w')\n",
+ "f1.write('You are learning Files in Python language ')\n",
+ "f1.close()\n",
+ "\n",
+ "print ('Data output ')\n",
+ "with open ('12.5.dat') as f1:\n",
+ "\tfor line in f1 :\n",
+ "\t\tprint line\n",
+ "f1.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Data input \n",
+ "Data output \n",
+ "You are learning Files in Python language \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, Page number: 435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "print ('Contents of the data file ')\n",
+ "f1 = open('12.6.dat', 'w')\n",
+ "for i in range (0, 10) :\n",
+ "\tnumber = int(raw_input())\n",
+ "\tf1.write('%d\\n' % number)\n",
+ "f1.close()\n",
+ "\n",
+ "f1 = open('12.6.dat', 'r')\n",
+ "f2 = open('12.6o.dat', 'w')\n",
+ "f3 = open('12.6e.dat', 'w')\n",
+ "\n",
+ "num = [0] * 10\n",
+ "with open ('12.6.dat') as f1 :\n",
+ "\tnum = f1.read().splitlines()\n",
+ "\t\n",
+ "for i in range (0, 10) :\n",
+ "\tif (int(num[i]) % 2) != 0 :\n",
+ "\t\tf2.write('%s \\n' % (num[i]))\n",
+ "\telse :\n",
+ "\t\tf3.write('%s \\n' % (num[i]))\n",
+ "\t\n",
+ "f1.close()\n",
+ "f2.close()\n",
+ "f3.close()\n",
+ "\n",
+ "print ('Contents of the odd file ')\n",
+ "with open ('12.6o.dat') as f2:\n",
+ "\tfor line in f2 :\n",
+ "\t\tprint line\n",
+ "\n",
+ "print ('Contents of the even file ')\n",
+ "with open ('12.6e.dat') as f3:\n",
+ "\tfor line in f3 :\n",
+ "\t\tprint line\n",
+ "\n",
+ "f2.close()\n",
+ "f3.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Contents of the data file \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Contents of the odd file \n",
+ "1 \n",
+ "\n",
+ "3 \n",
+ "\n",
+ "5 \n",
+ "\n",
+ "7 \n",
+ "\n",
+ "9 \n",
+ "\n",
+ "Contents of the even file \n",
+ "2 \n",
+ "\n",
+ "4 \n",
+ "\n",
+ "6 \n",
+ "\n",
+ "8 \n",
+ "\n",
+ "10 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page number: 438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "filename = raw_input('Input filename: ')\n",
+ "fp = open(filename, 'w')\n",
+ "\n",
+ "print ('Input inventory data ')\n",
+ "print ('\\nItemName number price quantity ')\n",
+ "\n",
+ "data = [[0 for y in xrange(5)] for x in xrange(3)]\n",
+ "for i in range (0, 3) :\n",
+ "\tfor j in range (0, 4) :\n",
+ "\t\tdata[i][j] = raw_input('')\n",
+ "\t\tfp.write('%s ' % data[i][j]),\n",
+ "\tfp.write('\\n')\n",
+ "\tprint\n",
+ "fp.close()\n",
+ "\n",
+ "fp = open(filename, 'r')\n",
+ "\n",
+ "for i in range (0, 3) :\n",
+ "\tfor j in range (2, 3) :\n",
+ "\t\tdata[i][j+2] = float(data[i][j]) * int(data[i][j+1])\n",
+ "\n",
+ "print ('ItemName number price quantity value ')\n",
+ "for i in range (0, 3) :\n",
+ "\tfor j in range (0, 5) :\n",
+ "\t\tprint ('%8s' % data[i][j]),\n",
+ "\tprint"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input filename: 12.7.dat\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input inventory data \n",
+ "\n",
+ "ItemName number price quantity \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Monitor\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "11\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3005.50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mouse\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "22\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "500.50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Keyboard\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "33\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "750.00\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "ItemName number price quantity value \n",
+ " Monitor 11 3005.50 10 30055.0\n",
+ " Mouse 22 500.50 5 2502.5\n",
+ "Keyboard 33 750.00 10 7500.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, Page number: 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "with open ('12.5.dat') as fp:\n",
+ "\tfor line in fp :\n",
+ "\t\tprint line\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You are learning Files in Python language \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, Page number: 441"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sys import argv\n",
+ "\n",
+ "# Calculation and result\n",
+ "script, filename = argv\n",
+ "file = open(filename)\n",
+ "print file.read()\n",
+ "print ('\\nFile displayed successfully.....')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "%run 12.9.py 12.1.dat"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0, 0 \n",
+ "1, 1 \n",
+ "2, 4 \n",
+ "3, 9 \n",
+ "4, 16 \n",
+ "5, 25 \n",
+ "6, 36 \n",
+ "7, 49 \n",
+ "8, 64 \n",
+ "9, 81 \n",
+ "10, 100 \n",
+ "\n",
+ "\n",
+ "File displayed successfully.....\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10, Page number: 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "class person (object) :\n",
+ "\tdef __init__(self, name = None, age = 0):\n",
+ "\t\tself.name = 0\n",
+ "\t\tself.age = 0\n",
+ "\t\t\n",
+ "data = [person() for i in range (5)]\n",
+ "\n",
+ "fp = open('12.10.dat','w')\n",
+ "\n",
+ "for i in range (0, 5) :\n",
+ "\tdata[i].name = raw_input('\\nEnter name : ')\n",
+ "\tdata[i].age = int(raw_input('Enter age : '))\n",
+ "\t\n",
+ "for i in range (0, 5) :\n",
+ "\tfp.write('%s %d \\n' % (data[i].name, data[i].age))\n",
+ "\n",
+ "print ('\\n...Records are written to a file...')\n",
+ "print ('...Displaying records from a file...')\n",
+ "\n",
+ "for i in range (0, 5) :\n",
+ "\tprint ('\\nName : %s ' % data[i].name)\n",
+ "\tprint ('Age : %d ' % data[i].age)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter name : Dhiraj Kumar\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 23\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter name : Mohasin Khan\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter name : Suresh Waghmare\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 55\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter name : Anand Rao\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter name : Sunil Deshpande\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 23\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "...Records are written to a file...\n",
+ "...Displaying records from a file...\n",
+ "\n",
+ "Name : Dhiraj Kumar \n",
+ "Age : 23 \n",
+ "\n",
+ "Name : Mohasin Khan \n",
+ "Age : 45 \n",
+ "\n",
+ "Name : Suresh Waghmare \n",
+ "Age : 55 \n",
+ "\n",
+ "Name : Anand Rao \n",
+ "Age : 34 \n",
+ "\n",
+ "Name : Sunil Deshpande \n",
+ "Age : 23 \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page number: 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "class record (object) :\n",
+ "\tdef __init__(self, name = None, age = 0) :\n",
+ "\t\tself.name = 0\n",
+ "\t\tself.age = 0\n",
+ "\t\t\n",
+ "def record_write (data, filename) :\n",
+ "\tfilep = open(filename, 'ab')\n",
+ "\tdata.name = raw_input('Enter name : ')\n",
+ "\tdata.age = int(raw_input('Enter age : '))\n",
+ "\tfilep.write('%s %d\\n' % (data.name, data.age))\n",
+ "\t\n",
+ "def record_readall (filename) :\n",
+ "\tprint\n",
+ "\twith open (filename) as filep :\n",
+ "\t\tfor line in filep :\n",
+ "\t\t\tprint line\n",
+ "\n",
+ "data = record ()\n",
+ "filename = '12.11.dat'\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tenter = raw_input('\\nAdd record (y/n) ? ')\n",
+ "\tif enter == 'y' or enter == 'Y' :\n",
+ "\t\trecord_write (data, filename)\n",
+ "\telse :\n",
+ "\t\tcondition = False\n",
+ "\t\tbreak\n",
+ "\n",
+ "record_readall (filename)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Add record (y/n) ? y\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name : Mohan Pande\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Add record (y/n) ? y\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter name : Nitin Dighe\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 32\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Add record (y/n) ? n\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Mohan Pande 34\n",
+ "\n",
+ "Nitin Dighe 32\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page number: 449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "fp = open('12.12.txt','r')\n",
+ "fp.seek(0, 0)\n",
+ "line = fp.readline()\n",
+ "print ('Read Line: %s ' % line)\n",
+ "\n",
+ "fp.seek(17, 0)\n",
+ "line = fp.readline()\n",
+ "print ('Read Line: %s ' % line)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read Line: This is 1st line\n",
+ " \n",
+ "Read Line: This is 2nd line\n",
+ " \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page number: 449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import os\n",
+ "\n",
+ "# Calculation and result\n",
+ "statinfo = os.stat('12.13.txt')\n",
+ "print ('Filesize of \"12.13.txt\" is %d bytes ' % statinfo.st_size)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Filesize of \"12.13.txt\" is 15 bytes \n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page number: 455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "nc = nlines = 0\n",
+ "\n",
+ "filename = raw_input('Enter file name: ')\n",
+ "with open(filename, 'r') as fp :\n",
+ " for line in fp :\n",
+ " nlines += 1\n",
+ " nc += len(line)\n",
+ "fp.close()\n",
+ "\n",
+ "print ('There are %d characters in %s ' % (nc, filename))\n",
+ "print ('There are %d lines ' % nlines)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter file name: 12.14.txt\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "There are 55 characters in 12.14.txt \n",
+ "There are 1 lines \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page number: 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "linecount = 0\n",
+ "filename = raw_input('Enter file name: ')\n",
+ "fp = open(filename, 'r')\n",
+ "for line in fp :\n",
+ "\tprint line\n",
+ "\tlinecount += 1\n",
+ "\tif linecount % 20 == 0 :\n",
+ "\t\traw_input(\"[Press Return to continue, Q to quit]\")\n",
+ "\t\tif raw_input() == 'Q' :\n",
+ "\t\t\texit()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter file name: 12.15.txt\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n",
+ "\n",
+ "2\n",
+ "\n",
+ "3\n",
+ "\n",
+ "4\n",
+ "\n",
+ "5\n",
+ "\n",
+ "6\n",
+ "\n",
+ "7\n",
+ "\n",
+ "8\n",
+ "\n",
+ "9\n",
+ "\n",
+ "10\n",
+ "\n",
+ "11\n",
+ "\n",
+ "12\n",
+ "\n",
+ "13\n",
+ "\n",
+ "14\n",
+ "\n",
+ "15\n",
+ "\n",
+ "16\n",
+ "\n",
+ "17\n",
+ "\n",
+ "18\n",
+ "\n",
+ "19\n",
+ "\n",
+ "20\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[Press Return to continue, Q to quit]Q\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "21\n",
+ "\n",
+ "22\n",
+ "\n",
+ "23\n",
+ "\n",
+ "24\n",
+ "\n",
+ "25\n",
+ "\n",
+ "26\n",
+ "\n",
+ "27\n",
+ "\n",
+ "28\n",
+ "\n",
+ "29\n",
+ "\n",
+ "30\n",
+ "\n",
+ "31\n",
+ "\n",
+ "32\n",
+ "\n",
+ "33\n",
+ "\n",
+ "34\n",
+ "\n",
+ "35\n",
+ "\n",
+ "36\n",
+ "\n",
+ "37\n",
+ "\n",
+ "38\n",
+ "\n",
+ "39\n",
+ "\n",
+ "40\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[Press Return to continue, Q to quit]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "41\n",
+ "\n",
+ "42\n",
+ "\n",
+ "43\n",
+ "\n",
+ "44\n",
+ "\n",
+ "45\n",
+ "\n",
+ "46\n",
+ "\n",
+ "47\n",
+ "\n",
+ "48\n",
+ "\n",
+ "49\n",
+ "\n",
+ "50\n",
+ "\n",
+ "51\n",
+ "\n",
+ "52\n",
+ "\n",
+ "53\n",
+ "\n",
+ "54\n",
+ "\n",
+ "55\n",
+ "\n",
+ "56\n",
+ "\n",
+ "57\n",
+ "\n",
+ "58\n",
+ "\n",
+ "59\n",
+ "\n",
+ "60\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[Press Return to continue, Q to quit]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "61\n",
+ "\n",
+ "62\n",
+ "\n",
+ "63\n",
+ "\n",
+ "64\n",
+ "\n",
+ "65\n",
+ "\n",
+ "66\n",
+ "\n",
+ "67\n",
+ "\n",
+ "68\n",
+ "\n",
+ "69\n",
+ "\n",
+ "70\n",
+ "\n",
+ "71\n",
+ "\n",
+ "72\n",
+ "\n",
+ "73\n",
+ "\n",
+ "74\n",
+ "\n",
+ "75\n",
+ "\n",
+ "76\n",
+ "\n",
+ "77\n",
+ "\n",
+ "78\n",
+ "\n",
+ "79\n",
+ "\n",
+ "80\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[Press Return to continue, Q to quit]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "81\n",
+ "\n",
+ "82\n",
+ "\n",
+ "83\n",
+ "\n",
+ "84\n",
+ "\n",
+ "85\n",
+ "\n",
+ "86\n",
+ "\n",
+ "87\n",
+ "\n",
+ "88\n",
+ "\n",
+ "89\n",
+ "\n",
+ "90\n",
+ "\n",
+ "91\n",
+ "\n",
+ "92\n",
+ "\n",
+ "93\n",
+ "\n",
+ "94\n",
+ "\n",
+ "95\n",
+ "\n",
+ "96\n",
+ "\n",
+ "97\n",
+ "\n",
+ "98\n",
+ "\n",
+ "99\n",
+ "\n",
+ "100\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[Press Return to continue, Q to quit]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page number: 457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "fname1 = raw_input('Enter source file: ')\n",
+ "fname2 = raw_input('Enter destination file: ')\n",
+ "\n",
+ "with open(fname1) as fp1 :\n",
+ "\twith open(fname2,'w') as fp2 : \n",
+ "\t\tfor line in fp1 :\n",
+ "\t\t\tfp2.write(line)\n",
+ "\n",
+ "print ('Files successfully copied ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter source file: 12.16in.txt\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter destination file: 12.16out.txt\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Files successfully copied \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page number: 458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "total = count = 0\n",
+ "filenameIn = raw_input('Please enter an input filename: ')\n",
+ "filenameOut = raw_input('Please enter an output filename: ')\n",
+ "\n",
+ "print ('Opening %s for reading is OK.' % filenameIn)\n",
+ "print ('Opening %s for writing is OK.' % filenameOut)\n",
+ "print ('Calculate the total...')\n",
+ "\n",
+ "for i in open(filenameIn) :\n",
+ "\tcount += 1\n",
+ "\ttotal += int(i.strip())\n",
+ "\t\n",
+ "print ('Calculate the average...')\n",
+ "fileptrOut = open(filenameOut,'w')\n",
+ "fileptrOut.write('Average of %d numbers = %f ' % (count, (total/count)))\n",
+ "\n",
+ "print ('Check also your %s file content ' % filenameOut)\n",
+ "fileptrOut.close()\n",
+ "print ('\"%s\" closed successfully ' % filenameIn)\n",
+ "print ('\"%s\" closed successfully ' % filenameOut)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter an input filename: 12.17in.dat\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter an output filename: 12.17out.dat\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Opening 12.17in.dat for reading is OK.\n",
+ "Opening 12.17out.dat for writing is OK.\n",
+ "Calculate the total...\n",
+ "Calculate the average...\n",
+ "Check also your 12.17out.dat file content \n",
+ "\"12.17in.dat\" closed successfully \n",
+ "\"12.17out.dat\" closed successfully \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page number: 460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Structure declaration\n",
+ "class STUDENT (object) :\n",
+ "\tdef __init__(self, fname=None, lname=None, id=None, quiz1=None, quiz2=None, quiz3=None, quiz4=None, exam=None) :\n",
+ "\t\tself.fname = fname\n",
+ "\t\tself.lname = lname\n",
+ "\t\tself.id = id\n",
+ "\t\tself.quiz1 = quiz1\n",
+ "\t\tself.quiz2 = quiz2\n",
+ "\t\tself.quiz3 = quiz3\n",
+ "\t\tself.quiz4 = quiz4\n",
+ "\t\tself.exam = exam\n",
+ "\t\n",
+ "def findLow (students, x, c) :\n",
+ "\tif x == 0 :\n",
+ "\t\tsmall = students[0].quiz1\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif small >= students[i].quiz1 and students[i].quiz1 > 0 :\n",
+ "\t\t\t\tsmall = students[i].quiz1\n",
+ "\t\treturn small\n",
+ "\t\t\n",
+ "\telif x == 1 :\n",
+ "\t\tsmall = students[0].quiz2\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif small >= students[i].quiz2 and students[i].quiz2 > 0 :\n",
+ "\t\t\t\tsmall = students[i].quiz2\n",
+ "\t\treturn small\n",
+ "\t\t\n",
+ "\telif x == 2 :\n",
+ "\t\tsmall = students[0].quiz3\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif small >= students[i].quiz3 and students[i].quiz3 > 0 :\n",
+ "\t\t\t\tsmall = students[i].quiz3\n",
+ "\t\treturn small\n",
+ "\n",
+ "\telif x == 3 :\n",
+ "\t\tsmall = students[0].quiz4\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif small >= students[i].quiz4 and students[i].quiz4 > 0 :\n",
+ "\t\t\t\tsmall = students[i].quiz4\n",
+ "\t\treturn small\n",
+ "\t\t\n",
+ "\telif x == 4 :\n",
+ "\t\tsmall = students[0].exam\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif small >= students[i].exam and students[i].exam > 0 :\n",
+ "\t\t\t\tsmall = students[i].exam\n",
+ "\t\treturn small\n",
+ "\treturn 0\n",
+ "\n",
+ "def findHigh (students, x, c) :\n",
+ "\tif x == 0 :\n",
+ "\t\tbig = students[0].quiz1\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif big <= students[i].quiz1 :\n",
+ "\t\t\t\tbig = students[i].quiz1\n",
+ "\t\treturn big\n",
+ "\t\t\n",
+ "\telif x == 1 :\n",
+ "\t\tbig = students[0].quiz2\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif big <= students[i].quiz2 :\n",
+ "\t\t\t\tbig = students[i].quiz2\n",
+ "\t\treturn big\n",
+ "\t\t\n",
+ "\telif x == 2 :\n",
+ "\t\tbig = students[0].quiz3\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif big <= students[i].quiz3 :\n",
+ "\t\t\t\tbig = students[i].quiz3\n",
+ "\t\treturn big\n",
+ "\n",
+ "\telif x == 3 :\n",
+ "\t\tbig = students[0].quiz4\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif big <= students[i].quiz4 :\n",
+ "\t\t\t\tbig = students[i].quiz4\n",
+ "\t\treturn big\n",
+ "\t\t\n",
+ "\telif x == 4 :\n",
+ "\t\tbig = students[0].exam\n",
+ "\t\tfor i in range (1, c) :\n",
+ "\t\t\tif big <= students[i].exam :\n",
+ "\t\t\t\tbig = students[i].exam\n",
+ "\t\treturn big\n",
+ "\treturn 0\n",
+ "\n",
+ "\n",
+ "students = [STUDENT() for i in range (5)]\n",
+ "summ = avg = low = high = [0] * 5\n",
+ "cnt = 0\n",
+ "\n",
+ "print ('--- CLASS INFO --- \\n')\n",
+ "print ('Name\\t\\t Id\\tQuiz1 Quiz2 Quiz3 Quiz4 Exam \\n')\n",
+ "\n",
+ "with open('12.18.txt') as fpr :\n",
+ "\tfor line in fpr :\n",
+ "\t\ti = 0\n",
+ "\t\tstudents[i].fname, students[i].lname, students[i].id, students[i].quiz1, students[i].quiz2, students[i].quiz3, students[i].quiz4, students[i].exam = line.split()\n",
+ "\t\tstudents[i].id = int(students[i].id)\n",
+ "\t\tstudents[i].quiz1 = int(students[i].quiz1)\n",
+ "\t\tstudents[i].quiz2 = int(students[i].quiz2)\n",
+ "\t\tstudents[i].quiz3 = int(students[i].quiz3)\n",
+ "\t\tstudents[i].quiz4 = int(students[i].quiz4)\n",
+ "\t\tstudents[i].exam = int(students[i].exam)\n",
+ "\t\t\n",
+ "\t\tprint ('%-s %-s\\t %-4d\t%-3d\t%-3d\t%-3d\t%-3d\t%-3d' % (students[i].fname, students[i].lname, students[i].id, students[i].quiz1, students[i].quiz2, students[i].quiz3, students[i].quiz4, students[i].exam)) \n",
+ "\t\t\n",
+ "\t\tsumm[0] += int(students[i].quiz1)\n",
+ "\t\tsumm[1] += int(students[i].quiz2)\n",
+ "\t\tsumm[2] += int(students[i].quiz3)\t\t\n",
+ "\t\tsumm[3] += int(students[i].quiz4)\n",
+ "\t\tsumm[4] += int(students[i].exam)\n",
+ "\t\ti = i+1\n",
+ "\t\tcnt = cnt+1\n",
+ "\n",
+ "print ('\\nSTATISTICS')\n",
+ "print ('\\t\\tQuiz1\tQuiz2\tQuiz3\tQuiz4\tExam\\n')\n",
+ "print ('Average:\\t'),\n",
+ "for i in range (0, 5) :\n",
+ "\tavg[i] = float(summ[i])/cnt\n",
+ "\tprint ('%-5.1f \\t' % avg[i]),\n",
+ "print\n",
+ "\n",
+ "print ('Lowest:\\t\\t'),\n",
+ "for i in range (0, 5) :\n",
+ "\tlow[i] = findLow (students, i, cnt)\n",
+ "\thigh[i] = findHigh (students, i, cnt)\n",
+ "\t\n",
+ "for i in range (0, 5) :\n",
+ "\tprint ('%-5d \\t' % low[i]),\n",
+ "print\n",
+ "\t\n",
+ "print ('Highest:\\t'),\n",
+ "for i in range (0, 5) :\n",
+ "\tprint ('%-5d \\t' % high[i]),\n",
+ "print\n",
+ "\n",
+ "print ('\\n --- END OF REPORT --- \\n')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "--- CLASS INFO --- \n",
+ "\n",
+ "Name\t\t Id\tQuiz1 Quiz2 Quiz3 Quiz4 Exam \n",
+ "\n",
+ "anand mane\t 11 \t10 \t3 \t4 \t5 \t80 \n",
+ "mandar patil\t 12 \t4 \t5 \t6 \t7 \t50 \n",
+ "kishoe dhane\t 13 \t4 \t5 \t6 \t8 \t55 \n",
+ "\n",
+ "STATISTICS\n",
+ "\t\tQuiz1\tQuiz2\tQuiz3\tQuiz4\tExam\n",
+ "\n",
+ "Average:\t6.0 \t4.3 \t5.3 \t6.7 \t61.7 \t\n",
+ "Lowest:\t\t4 \t5 \t6 \t8 \t55 \t\n",
+ "Highest:\t4 \t5 \t6 \t8 \t55 \t\n",
+ "\n",
+ " --- END OF REPORT --- \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.19, Page number: 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import sys\n",
+ "\n",
+ "# Structure declaration\n",
+ "class Employee (object) :\n",
+ "\tdef __init__(self, fname=None, lname=None, sub_taken=None, last_edu=None, join_date=None, id=None, age=None, bsal=None) :\n",
+ "\t\tself.fname = fname\n",
+ "\t\tself.lname = lname\n",
+ "\t\tself.sub_taken = sub_taken\n",
+ "\t\tself.last_edu = last_edu\n",
+ "\t\tself.join_date = join_date\n",
+ "\t\tself.id = id\n",
+ "\t\tself.age = age\n",
+ "\t\tself.bsal = bsal\n",
+ "\t\n",
+ "emp = Employee ()\n",
+ "fp = open('12.19.dat','ab+')\n",
+ "recsize = sys.getsizeof(emp)\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tprint ('\\n1.Add Records \\\n",
+ "\t\t\t \\n2.Delete Records \\\n",
+ "\t\t\t \\n3.Modify Records \\\n",
+ "\t\t\t \\n4.List Records \\\n",
+ "\t\t\t \\n5.Exit')\n",
+ "\tchoice = int(raw_input('\\nEnter your choice: '))\n",
+ "\t\n",
+ "\tif choice == 1 :\n",
+ "\t\tanother = 'Y'\n",
+ "\t\twhile another == 'Y' or another == 'y' :\n",
+ "\t\t\tfp = open('12.19.dat','ab+')\n",
+ "\t\t\temp.fname = raw_input('Enter the first name: ')\n",
+ "\t\t\temp.lname = raw_input('Enter the last name: ')\n",
+ "\t\t\temp.age = int(raw_input('Enter the age: '))\n",
+ "\t\t\temp.bsal = int(raw_input('Enter the basic salary: '))\n",
+ "\t\t\temp.join_date = int(raw_input('Enter joining date: '))\n",
+ "\t\t\temp.id = int(raw_input('Enter the employee id: '))\n",
+ "\t\t\temp.last_edu = raw_input('Enter the last education: ')\n",
+ "\t\t\temp.sub_taken = raw_input('Enter the subject taken: ')\n",
+ "\t\t\tfp.write('%d %s %s %d %d %s %s %s \\n' % (emp.id, emp.fname, emp.lname, emp.age, emp.bsal, emp.join_date, emp.last_edu, emp.sub_taken))\n",
+ "\t\t\tanother = raw_input('Add another record (Y/N) ? ')\n",
+ "\n",
+ "\telif choice == 2 :\n",
+ "\t\tanother = 'Y'\n",
+ "\t\twhile another == 'Y' or another == 'y' :\n",
+ "\t\t\tfp = open('12.19.dat','r')\n",
+ "\t\t\tlines = fp.readlines()\n",
+ "\t\t\tlines = lines[:-1]\n",
+ "\t\t\tprint ('\\nRecord deleted ')\n",
+ "\t\t\tanother = raw_input('Delete another record (Y/N) ? ')\n",
+ "\t\t\n",
+ "\telif choice == 3 :\n",
+ "\t\tfp = open('12.19.dat','w')\n",
+ "\t\tanother = 'Y'\n",
+ "\t\twhile another == 'Y' or another == 'y' :\n",
+ "\t\t\temp.fname = raw_input('Enter the first name: ')\n",
+ "\t\t\temp.lname = raw_input('Enter the last name: ')\n",
+ "\t\t\temp.age = int(raw_input('Enter the age: '))\n",
+ "\t\t\temp.bsal = int(raw_input('Enter the basic salary: '))\n",
+ "\t\t\temp.join_date = int(raw_input('Enter joining date: '))\n",
+ "\t\t\temp.id = int(raw_input('Enter the employee id: '))\n",
+ "\t\t\temp.last_edu = raw_input('Enter the last education: ')\n",
+ "\t\t\temp.sub_taken = raw_input('Enter the subject taken: ')\n",
+ "\t\t\tfp.write('%d %s %s %d %d %s %s %s \\n' % (emp.id, emp.fname, emp.lname, emp.age, emp.bsal, emp.join_date, emp.last_edu, emp.sub_taken))\n",
+ "\t\t\tanother = raw_input('Modify another record (Y/N) ? ')\n",
+ "\t \t\n",
+ "\telif choice == 4 :\n",
+ "\t\twith open ('12.19.dat','r') as fp :\n",
+ "\t\t\tfor line in fp :\n",
+ "\t\t\t\tprint line\n",
+ "\t\t\n",
+ "\telif choice == 5 :\n",
+ "\t\tcondition = False\n",
+ "\t\tfp.close()\n",
+ "\t\texit()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1.Add Records \t\t\t \n",
+ "2.Delete Records \t\t\t \n",
+ "3.Modify Records \t\t\t \n",
+ "4.List Records \t\t\t \n",
+ "5.Exit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter your choice: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first name: Anand\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last name: Rao\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age: 29\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the basic salary: 5000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter joining date: 2004\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the employee id: 11\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last education: BCA\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the subject taken: OS\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Add another record (Y/N) ? y\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first name: Deepti\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last name: Garg\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age: 22\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the basic salary: 25000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter joining date: 2014\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the employee id: 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last education: BTech\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the subject taken: CSE\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Add another record (Y/N) ? n\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1.Add Records \t\t\t \n",
+ "2.Delete Records \t\t\t \n",
+ "3.Modify Records \t\t\t \n",
+ "4.List Records \t\t\t \n",
+ "5.Exit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter your choice: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "11 Anand Rao 29 5000 2004 BCA OS \n",
+ "\n",
+ "12 Deepti Garg 22 25000 2014 BTech CSE \n",
+ "\n",
+ "\n",
+ "1.Add Records \t\t\t \n",
+ "2.Delete Records \t\t\t \n",
+ "3.Modify Records \t\t\t \n",
+ "4.List Records \t\t\t \n",
+ "5.Exit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter your choice: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Record deleted \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Delete another record (Y/N) ? y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Record deleted \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Delete another record (Y/N) ? n\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1.Add Records \t\t\t \n",
+ "2.Delete Records \t\t\t \n",
+ "3.Modify Records \t\t\t \n",
+ "4.List Records \t\t\t \n",
+ "5.Exit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter your choice: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the first name: Nalin\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last name: Chhibber\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the age: 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the basic salary: 30000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter joining date: 2012\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the employee id: 07\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the last education: MTech\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the subject taken: DBMS\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Modify another record (Y/N) ? n\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1.Add Records \t\t\t \n",
+ "2.Delete Records \t\t\t \n",
+ "3.Modify Records \t\t\t \n",
+ "4.List Records \t\t\t \n",
+ "5.Exit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter your choice: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7 Nalin Chhibber 25 30000 2012 MTech DBMS \n",
+ "\n",
+ "\n",
+ "1.Add Records \t\t\t \n",
+ "2.Delete Records \t\t\t \n",
+ "3.Modify Records \t\t\t \n",
+ "4.List Records \t\t\t \n",
+ "5.Exit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter your choice: 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_2.ipynb b/Magnifying_C/Chapter_2.ipynb
new file mode 100755
index 00000000..7144ab92
--- /dev/null
+++ b/Magnifying_C/Chapter_2.ipynb
@@ -0,0 +1,203 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Syntactic Aspects"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1, Page number: 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "class color() :\n",
+ " RED = 5\n",
+ " YELLOW = 6\n",
+ " GREEN = 4\n",
+ " BLUE = 5\n",
+ "\n",
+ "print ('RED = %d ' % color.RED)\n",
+ "print ('YELLOW = %d ' % color.YELLOW)\n",
+ "print ('GREEN = %d ' % color.GREEN)\n",
+ "print ('BLUE = %d ' % color.BLUE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RED = 5 \n",
+ "YELLOW = 6 \n",
+ "GREEN = 4 \n",
+ "BLUE = 5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2, Page number: 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "i = 2004\n",
+ "c = 'Year'\n",
+ "\n",
+ "print ('%s %d' % (c, i))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Year 2004\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page number: 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "num = 5\n",
+ "c = '$'\n",
+ "pi = 3.141\n",
+ "print ('Hello World')\n",
+ "print ('%d %c %f' % (num, c, pi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hello World\n",
+ "5 $ 3.141000\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page number: 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "num = int(raw_input('Enter your favorite number '))\n",
+ "print ('You have entered your favorite number as %d ' % num)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your favorite number 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered your favorite number as 3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, Page number: 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "fahrenheit = float(raw_input('Please enter the Fahrenheit temperature '))\n",
+ "\n",
+ "centigrade = float(5)/9 * (fahrenheit - 32)\n",
+ "\n",
+ "print ('The temperature in Centigrade is %.2f ' % centigrade)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter the Fahrenheit temperature 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature in Centigrade is 37.78 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_3.ipynb b/Magnifying_C/Chapter_3.ipynb
new file mode 100755
index 00000000..9e566fc1
--- /dev/null
+++ b/Magnifying_C/Chapter_3.ipynb
@@ -0,0 +1,1060 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Simple Programs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1, Page number: 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculation and result\n",
+ "pi = 3.141\n",
+ "num = int(raw_input('Enter your favorite number: '))\n",
+ "print ('You have entered your favorite number as %d' % num)\n",
+ "c = raw_input('Enter your favorite character: ')\n",
+ "print ('You have entered your favorite character as %c' % c)\n",
+ "print ('The value of pi is %.3f ' % pi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your favorite number: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered your favorite number as 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your favorite character: m\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You have entered your favorite character as m\n",
+ "The value of pi is 3.141 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page number: 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Calculation\n",
+ "som = a+b\n",
+ "\n",
+ "# Result\n",
+ "print ('The sum of %d + %d = %d ' % (a, b, som))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 67\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 990\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of 67 + 990 = 1057 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page number: 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "if a>b :\n",
+ " print ('The greater number is %d ' % a)\n",
+ "else :\n",
+ " print ('The greater number is %d ' % b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 190\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greater number is 190 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page number: 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "if a==b :\n",
+ " print ('Both numbers are equal ')\n",
+ "else :\n",
+ " if a>b :\n",
+ " print ('The greater number is %d ' % a)\n",
+ " else :\n",
+ " print ('The greater number is %d ' % b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 78\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Both numbers are equal \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page number: 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "c = int(raw_input('Enter third number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "if a>b :\n",
+ " if a>c :\n",
+ " print ('The greatest number is %d ' % a)\n",
+ " else :\n",
+ " print ('The greatest number is %d ' % c)\n",
+ "\n",
+ "else :\n",
+ " if b>c :\n",
+ " print ('The greatest number is %d ' % b)\n",
+ " else : \n",
+ " print ('The greatest number is %d ' % c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 128\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter third number 90\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greatest number is 128 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page number: 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('Counting upto %d ' % n)\n",
+ "\n",
+ "for i in range (1, n+1) :\n",
+ " print ('%d ' % i),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Counting upto 7 \n",
+ "1 2 3 4 5 6 7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page number: 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('Even numbers upto %d ' % n)\n",
+ "\n",
+ "for i in range (2, n+1, 2) :\n",
+ " print ('%d ' % i),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Even numbers upto 10 \n",
+ "2 4 6 8 10 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page number: 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('Odd numbers upto %d ' % n)\n",
+ "\n",
+ "for i in range (1, n+1, 2) :\n",
+ " print ('%d ' % i),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Odd numbers upto 10 \n",
+ "1 3 5 7 9 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page number: 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('Number line upto %d ' % n)\n",
+ "\n",
+ "for i in range (-n, n+1) :\n",
+ " print ('%d ' % i),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number line upto 7 \n",
+ "-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9, Page number: 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "sum = 0\n",
+ "\n",
+ "# Calculation\n",
+ "for i in range (1, n+1) :\n",
+ " sum = sum + i\n",
+ "\n",
+ "# Result\n",
+ "print ('Sum of %d natural numbers is %d ' % (n, sum))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of 6 natural numbers is 21 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10, Page number: 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('The factors of %d are ' % n)\n",
+ "\n",
+ "for i in range (1, n+1) :\n",
+ " if n%i == 0 :\n",
+ " print ('%d ' % i),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 28\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The factors of 28 are \n",
+ "1 2 4 7 14 28 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page number: 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('The first 10 multiples of %d are ' % n)\n",
+ "\n",
+ "for i in range (1, 11) :\n",
+ " print ('%d X %d = %d ' % (n, i, n*i))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The first 10 multiples of 6 are \n",
+ "6 X 1 = 6 \n",
+ "6 X 2 = 12 \n",
+ "6 X 3 = 18 \n",
+ "6 X 4 = 24 \n",
+ "6 X 5 = 30 \n",
+ "6 X 6 = 36 \n",
+ "6 X 7 = 42 \n",
+ "6 X 8 = 48 \n",
+ "6 X 9 = 54 \n",
+ "6 X 10 = 60 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12, Page number: 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "i = 1\n",
+ "sum = 0\n",
+ "\n",
+ "# Calculation\n",
+ "print ('The sum of digits of %d is' % n),\n",
+ "\n",
+ "while n > 0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ "\n",
+ "# Result\n",
+ "print ('%d' % sum)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 5214\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of digits of 5214 is 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13, Page number: 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "flag = 1\n",
+ "\n",
+ "# Calculation\n",
+ "for i in range (2, n) :\n",
+ " if flag == 1 :\n",
+ " if n%i == 0 :\n",
+ " flag = 0\n",
+ "\n",
+ "# Result\n",
+ "if flag :\n",
+ " print ('%d is Prime ' % n)\n",
+ "else :\n",
+ " print ('%d is Composite ' % n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 41\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "41 is Prime \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14, Page number: 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "first = 0\n",
+ "second = 1\n",
+ "count = 3\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('%d Fibonacci terms are ' % n)\n",
+ "print ('%d %d ' % (first, second)),\n",
+ "\n",
+ "while count<=n :\n",
+ " third = first + second\n",
+ " first = second\n",
+ " second = third\n",
+ " print ('%d ' % third),\n",
+ " count = count + 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 Fibonacci terms are \n",
+ "0 1 1 2 3 5 8 13 21 34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page number: 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "sum = n\n",
+ "\n",
+ "# Calculation\n",
+ "print ('Sum of digits of %d is' % n),\n",
+ "\n",
+ "while sum>=10 :\n",
+ " sum = 0\n",
+ " while n>0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " n = sum\n",
+ "\n",
+ "# Result\n",
+ "print ('%d' % sum)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 8626\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 8626 is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page number: 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('Prime numbers upto %d are ' % n)\n",
+ "\n",
+ "for num in range (2, n+1) :\n",
+ " flag = 1\n",
+ " for i in range (2, num) :\n",
+ " if num % i == 0 : \n",
+ " flag = 0\n",
+ " if flag :\n",
+ " print ('%d ' % num),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 12\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Prime numbers upto 12 are \n",
+ "2 3 5 7 11 \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page number: 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "for lin in range (1, n+1) :\n",
+ " for count in range (1, lin+1) :\n",
+ " print ('%d ' % count),\n",
+ " print"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 \n",
+ "1 2 \n",
+ "1 2 3 \n",
+ "1 2 3 4 \n",
+ "1 2 3 4 5 \n",
+ "1 2 3 4 5 6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page number: 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "for lin in range (1, n+1) :\n",
+ " for count in range (lin, 2*lin) :\n",
+ " print ('%d ' % count),\n",
+ " print"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 \n",
+ "2 3 \n",
+ "3 4 5 \n",
+ "4 5 6 7 \n",
+ "5 6 7 8 9 \n",
+ "6 7 8 9 10 11 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page number: 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "for lin in range (1, n+1) :\n",
+ " for blk in range (1, n-lin+1) :\n",
+ " print ' ',\n",
+ " for up in range (1, lin+1) :\n",
+ " print ('%d' % up),\n",
+ " down = lin-1\n",
+ " while down>0 :\n",
+ " print ('%d' % down),\n",
+ " down = down-1\n",
+ " print"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 1 2 1\n",
+ " 1 2 3 2 1\n",
+ " 1 2 3 4 3 2 1\n",
+ " 1 2 3 4 5 4 3 2 1\n",
+ "1 2 3 4 5 6 5 4 3 2 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page number: 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "for lin in range (1, n+1) :\n",
+ " for blk in range (1, n-lin+1) :\n",
+ " print ' ',\n",
+ " for up in range (lin, 2*lin) :\n",
+ " print ('%d' % (up%10)),\n",
+ " down = 2*lin-2\n",
+ " while down>=lin :\n",
+ " print ('%d' % (down%10)),\n",
+ " down = down-1\n",
+ " print"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 2 3 2\n",
+ " 3 4 5 4 3\n",
+ " 4 5 6 7 6 5 4\n",
+ " 5 6 7 8 9 8 7 6 5\n",
+ "6 7 8 9 0 1 0 9 8 7 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_4.ipynb b/Magnifying_C/Chapter_4.ipynb
new file mode 100755
index 00000000..a071712d
--- /dev/null
+++ b/Magnifying_C/Chapter_4.ipynb
@@ -0,0 +1,1070 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Functions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page number: 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration and result\n",
+ "a = 5\n",
+ "c = 'h'\n",
+ "b = 3.14\n",
+ "def myfunction (x, ch, fl) :\n",
+ " print ('%d %c %.2f ' % (x, ch, fl))\n",
+ " \n",
+ "myfunction (a, c, b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5 h 3.14 \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page number: 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def add (a, b) :\n",
+ " som = a + b\n",
+ " return som\n",
+ "\n",
+ "print ('The sum of %d and %d is %d' % (a, b, (add (a, b))))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of 7 and 8 is 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page number: 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greater (a, b) :\n",
+ " if a > b :\n",
+ " return a\n",
+ " else :\n",
+ " return b\n",
+ "\n",
+ "print ('The greater number is %d' % (greater (a, b)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 190\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greater number is 190\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page number: 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greater (a, b) :\n",
+ " if a == b :\n",
+ " print ('Both numbers are equal')\n",
+ " elif a > b :\n",
+ " print ('The greater number is %d' % a)\n",
+ " else :\n",
+ " print ('The greater number is %d' % b)\n",
+ " return\n",
+ "\n",
+ "greater (a, b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Both numbers are equal\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page number: 102"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "c = int(raw_input('Enter third number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greatest (a, b, c) :\n",
+ " if a > b :\n",
+ " if a > c :\n",
+ " return a\n",
+ " else :\n",
+ " return c\n",
+ " else :\n",
+ " if b > c :\n",
+ " return b\n",
+ " else :\n",
+ " return c\n",
+ "\n",
+ "print ('The greatest number is %d' % (greatest (a, b, c)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 128\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter third number: 190\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greatest number is 190\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page number: 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printnum (n) :\n",
+ " print ('Counting upto %d' % n) \n",
+ " for i in range (1, n+1) :\n",
+ " print i,\n",
+ "\n",
+ "printnum (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Counting upto 7\n",
+ "1 2 3 4 5 6 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page number: 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printeven (n) :\n",
+ " print ('Even numbers upto %d' % n) \n",
+ " for i in range (2, n+1, 2) :\n",
+ " print i,\n",
+ "\n",
+ "printeven (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Even numbers upto 7\n",
+ "2 4 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8, Page number: 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printodd (n) :\n",
+ " print ('Odd numbers upto %d' % n) \n",
+ " for i in range (1, n+1, 2) :\n",
+ " print i,\n",
+ "\n",
+ "printodd (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Odd numbers upto 7\n",
+ "1 3 5 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page number: 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printnum (n) :\n",
+ " print ('Number line for %d' % n) \n",
+ " for i in range (-n, n+1) :\n",
+ " print i,\n",
+ "\n",
+ "printnum (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number line for 4\n",
+ "-4 -3 -2 -1 0 1 2 3 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page number: 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def summate (n) :\n",
+ " total = 0\n",
+ " for i in range (1, n+1) :\n",
+ " total = total + i\n",
+ " return total\n",
+ "\n",
+ "print('Sum of first %d natural numbers is %d' % (n, summate (n)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of first 6 natural numbers is 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11, Page number: 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def factors (n) :\n",
+ " print ('The factors of %d are' % n)\n",
+ " for i in range (1, n+1) :\n",
+ " if n%i == 0 :\n",
+ " print i,\n",
+ "\n",
+ "factors (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 28\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The factors of 28 are\n",
+ "1 2 4 7 14 28\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12, Page number: 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def multiple (n) :\n",
+ " print ('The first 10 multiples of %d are' % n)\n",
+ " for i in range (1, 11) :\n",
+ " print('%d X %d = %d' % (n, i, n*i))\n",
+ "\n",
+ "multiple (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The first 10 multiples of 6 are\n",
+ "6 X 1 = 6\n",
+ "6 X 2 = 12\n",
+ "6 X 3 = 18\n",
+ "6 X 4 = 24\n",
+ "6 X 5 = 30\n",
+ "6 X 6 = 36\n",
+ "6 X 7 = 42\n",
+ "6 X 8 = 48\n",
+ "6 X 9 = 54\n",
+ "6 X 10 = 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.13, Page number: 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n) :\n",
+ " sum = 0\n",
+ " while n>0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " return sum\n",
+ "\n",
+ "print ('The sum of digits of %d is %d' % (n, sumofdigit (n)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 5214\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of digits of 5214 is 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.14, Page number: 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def prime (n) :\n",
+ " count = 0\n",
+ " for i in range (2, n) :\n",
+ " if n%i == 0 :\n",
+ " count = count + 1\n",
+ " break\n",
+ "\n",
+ " if count == 0 :\n",
+ " print ('The number %d is prime' % n)\n",
+ " else :\n",
+ " print ('The number %d is composite' % n)\n",
+ "\n",
+ "prime (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 14\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number 14 is composite\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.15, Page number: 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('%d terms of Fibonacci series are ' % n)\n",
+ "\n",
+ "def printfibo (n) :\n",
+ " first = 0\n",
+ " second = 1\n",
+ " count = 3\n",
+ "\n",
+ " print ('%d %d ' % (first, second)),\n",
+ "\n",
+ " while count<=n :\n",
+ " third = first + second\n",
+ " first = second\n",
+ " second = third\n",
+ " print (' %d ' % third), \n",
+ " count = count + 1\n",
+ "\n",
+ "printfibo (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 terms of Fibonacci series are \n",
+ "0 1 1 2 3 5 8 13 21 34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16, Page number: 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n) :\n",
+ " sum = n\n",
+ " while sum>=10 :\n",
+ " sum = 0\n",
+ " while n>0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " n = sum\n",
+ " return sum\n",
+ "\n",
+ "print ('Sum of digits of %d is %d' % (n, sumofdigit (n)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 8626\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 8626 is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page number: 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('Prime numbers upto %d are ' % n)\n",
+ "\n",
+ "def printprime (n) :\n",
+ " for num in range (2, n+1) :\n",
+ " flag = 1\n",
+ " for i in range (2, num) :\n",
+ " if num % i == 0 : \n",
+ " flag = 0\n",
+ " if flag :\n",
+ " print ('%d ' % num),\n",
+ "\n",
+ "printprime (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 40\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Prime numbers upto 40 are \n",
+ "2 3 5 7 11 13 17 19 23 29 31 37 \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.18, Page number: 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def pattern (n) :\n",
+ " for lin in range (1, n+1) :\n",
+ " for count in range (1, lin+1) :\n",
+ " print ('%d ' % count),\n",
+ " print\n",
+ "\n",
+ "pattern (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 \n",
+ "1 2 \n",
+ "1 2 3 \n",
+ "1 2 3 4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page number: 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def pattern (n) :\n",
+ " for lin in range (1, n+1) :\n",
+ " for count in range (lin, 2*lin) :\n",
+ " print ('%d ' % count),\n",
+ " print\n",
+ "\n",
+ "pattern (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 \n",
+ "2 3 \n",
+ "3 4 5 \n",
+ "4 5 6 7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page number: 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def pattern (n) :\n",
+ " for lin in range (1, n+1) :\n",
+ " for blk in range (1, n-lin+1) :\n",
+ " print ' ',\n",
+ " for up in range (1, lin+1) :\n",
+ " print ('%d' % up),\n",
+ " down = lin-1\n",
+ " while down>0 :\n",
+ " print ('%d' % down),\n",
+ " down = down-1\n",
+ " print\n",
+ "\n",
+ "pattern (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 1 2 1\n",
+ " 1 2 3 2 1\n",
+ "1 2 3 4 3 2 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page number: 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter a number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def pattern (n) :\n",
+ " for lin in range (1, n+1) :\n",
+ " for blk in range (1, n-lin+1) :\n",
+ " print ' ',\n",
+ " for up in range (lin, 2*lin) :\n",
+ " print ('%d' % (up%10)),\n",
+ " down = 2*lin-2\n",
+ " while down>=lin :\n",
+ " print ('%d' % (down%10)),\n",
+ " down = down-1\n",
+ " print\n",
+ "\n",
+ "pattern (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 2 3 2\n",
+ " 3 4 5 4 3\n",
+ "4 5 6 7 6 5 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_5.ipynb b/Magnifying_C/Chapter_5.ipynb
new file mode 100755
index 00000000..b4cb2db2
--- /dev/null
+++ b/Magnifying_C/Chapter_5.ipynb
@@ -0,0 +1,909 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Pointers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page number: 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('The original values are a = %d b = %d' % (a, b))\n",
+ "temp = a\n",
+ "a = b\n",
+ "b = temp\n",
+ "\n",
+ "print ('The values after swapping are a = %d b = %d' % (a, b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 27\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The original values are a = 15 b = 27\n",
+ "The values after swapping are a = 27 b = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page number: 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('The original values are a = %d b = %d' % (a, b))\n",
+ "\n",
+ "def swap (a, b) :\n",
+ " temp = a\n",
+ " a = b\n",
+ " b = temp\n",
+ " print ('The values after swapping are a = %d b = %d' % (a, b))\n",
+ "\n",
+ "swap (a, b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 27\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The original values are a = 15 b = 27\n",
+ "The values after swapping are a = 27 b = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3, Page number: 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('The original values are a = %d b = %d' % (a, b))\n",
+ "\n",
+ "def swap (a, b) :\n",
+ " temp = a\n",
+ " a = b\n",
+ " b = temp\n",
+ " print ('The values after swapping are a = %d b = %d' % (a, b))\n",
+ "\n",
+ "swap (a, b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 27\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The original values are a = 15 b = 27\n",
+ "The values after swapping are a = 27 b = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page number: 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('In main the original values are a = %d b = %d' % (a, b))\n",
+ "print ('In main the address of a is %x and address of b is %x' % (a, b))\n",
+ "\n",
+ "def swap (a, b) :\n",
+ " print ('In swap the address in a is %x and b is %x' % (a, b))\n",
+ " temp = a\n",
+ " a = b\n",
+ " b = temp\n",
+ " print ('The values after swapping are a = %d b = %d' % (a, b))\n",
+ "\n",
+ "swap (a, b)\n",
+ "\n",
+ "print ('In main the values after swapping are a = %d b = %d' % (a, b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 27\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In main the original values are a = 15 b = 27\n",
+ "In main the address of a is f and address of b is 1b\n",
+ "In swap the address in a is f and b is 1b\n",
+ "The values after swapping are a = 27 b = 15\n",
+ "In main the values after swapping are a = 15 b = 27\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5, Page number: 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('In main the value of a = %d b = %d' % (a, b))\n",
+ "\n",
+ "def doooo (a, b) :\n",
+ " a = a+10\n",
+ " b = b+10\n",
+ "\n",
+ "doooo (a, b)\n",
+ "\n",
+ "print ('In main the value of a = %d b = %d' % (a, b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In main the value of a = 5 b = 7\n",
+ "In main the value of a = 5 b = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6, Page number: 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number: '))\n",
+ "b = int(raw_input('Enter second number: '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "print ('In main the value of a = %d b = %d' % (a, b))\n",
+ "print ('In main the addresses are a = %s b = %s' % (hex(id(a)), hex(id(b))))\n",
+ "\n",
+ "def doooo (a, b) :\n",
+ " print ('In doooo the addresses are a = %s b = %s' % (hex(id(a)), hex(id(b))))\n",
+ " a = a+10\n",
+ " b = b+10\n",
+ "\n",
+ "doooo (a, b)\n",
+ "\n",
+ "print ('In main the value of a = %d b = %d' % (a, b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number: 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In main the value of a = 5 b = 7\n",
+ "In main the addresses are a = 0x1b49138 b = 0x1b49108\n",
+ "In doooo the addresses are a = 0x1b49138 b = 0x1b49108\n",
+ "In main the value of a = 5 b = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page number: 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def add (a, b) :\n",
+ " x = a+b\n",
+ " return x\n",
+ "\n",
+ "som = add (a, b)\n",
+ "\n",
+ "print ('The sum of %d + %d = %d' % (a, b, som))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of 2 + 3 = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page number: 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greater (a, b) :\n",
+ " if a>b :\n",
+ " big = a\n",
+ " else :\n",
+ " big = b\n",
+ " return big\n",
+ "\n",
+ "great = greater (a, b)\n",
+ "\n",
+ "print ('The greater number is %d' % great)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 23\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greater number is 45\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9, Page number: 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "c = int(raw_input('Enter third number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greater (a, b, c) :\n",
+ " if a>b :\n",
+ " if a>c :\n",
+ " big = a\n",
+ " else :\n",
+ " big = c\n",
+ " else :\n",
+ " if b>c :\n",
+ " big = b\n",
+ " else :\n",
+ " big = c\n",
+ " return big\n",
+ "\n",
+ "great = greater (a, b, c)\n",
+ "\n",
+ "print ('The greatest number is %d' % great)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 190\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter third number 128\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greatest number is 190\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10, Page number: 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def summate (n) :\n",
+ " i = 1\n",
+ " total = 0\n",
+ " while i <= n :\n",
+ " total = total + i\n",
+ " i = i+1\n",
+ " return total\n",
+ "\n",
+ "sumn = summate (n)\n",
+ "\n",
+ "print ('Sum of first %d natural numbers is %d' % (n, sumn))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of first 5 natural numbers is 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11, Page number: 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n) :\n",
+ " sum = 0\n",
+ " while n > 0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " return sum\n",
+ "\n",
+ "result = sumofdigit (n)\n",
+ "\n",
+ "print ('Sum of digits of %d is %d' % (n, result))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 7162\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 7162 is 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page number: 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "sum = n\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n, sum) :\n",
+ " while sum>=10 :\n",
+ " sum = 0\n",
+ " while n>0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " n = sum\n",
+ " return sum\n",
+ "\n",
+ "result = sumofdigit (n, sum)\n",
+ "\n",
+ "print ('Sum of digits of %d is %d' % (n, result))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 7162\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 7162 is 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page number: 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def checkprime (n) :\n",
+ " flag = 1\n",
+ " i = 2\n",
+ " while i<n and flag :\n",
+ " if n%i == 0 :\n",
+ " flag = 0\n",
+ " i = i+1\n",
+ " return flag\n",
+ "\n",
+ "result = checkprime (n)\n",
+ "\n",
+ "if result :\n",
+ " print ('%d is Prime ' % n)\n",
+ "else :\n",
+ " print ('%d is Composite ' % n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 41\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "41 is Prime \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14, Page number: 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def checkprime (n) :\n",
+ " for num in range (2, n+1) :\n",
+ " flag = 1\n",
+ " for i in range (2, num) :\n",
+ " if num % i == 0 : \n",
+ " flag = 0\n",
+ " if flag :\n",
+ " print ('%d ' % num),\n",
+ "\n",
+ "checkprime (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 11\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2 3 5 7 11 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15, Page number: 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def makethird (n) :\n",
+ " first = 0\n",
+ " second = 1\n",
+ " count = 3\n",
+ " print ('%d terms of Fibonacci series are ' % n)\n",
+ " print ('%d %d ' % (first, second)),\n",
+ " while count<=n :\n",
+ " third = first + second\n",
+ " first = second\n",
+ " second = third\n",
+ " print (' %d ' % third),\n",
+ " count = count + 1\n",
+ "\n",
+ "makethird (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 terms of Fibonacci series are \n",
+ "0 1 1 2 3 5 8 13 21 34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16, Page number: 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def makethird (n) :\n",
+ " first = 0\n",
+ " second = 1\n",
+ " third = 0\n",
+ " print ('Fibonacci series up to %d is ' % n)\n",
+ " print first,\n",
+ " while third<=n :\n",
+ " print (' %d ' % second),\n",
+ " third = first + second\n",
+ " first = second\n",
+ " second = third\n",
+ "\n",
+ "makethird (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fibonacci series up to 100 is \n",
+ "0 1 1 2 3 5 8 13 21 34 55 89 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_6.ipynb b/Magnifying_C/Chapter_6.ipynb
new file mode 100755
index 00000000..690f5ef0
--- /dev/null
+++ b/Magnifying_C/Chapter_6.ipynb
@@ -0,0 +1,951 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Storage classes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page number: 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fact (n) :\n",
+ " prod = 1\n",
+ " while n :\n",
+ " prod = prod * n\n",
+ " n = n - 1\n",
+ " return prod\n",
+ "\n",
+ "print ('Factorial of %d is %d' % (n, fact(n)))\n",
+ "\n",
+ "m = int(raw_input('Enter another number '))\n",
+ "\n",
+ "print ('Factorial of %d is %d' % (m, fact(m)))\n",
+ "\n",
+ "print ('Factorial of 6 is %d' % fact(6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Factorial of 5 is 120\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter another number 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Factorial of 3 is 6\n",
+ "Factorial of 6 is 720\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page number: 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def add (a, b) :\n",
+ " global som\n",
+ " som = a + b\n",
+ "\n",
+ "add (a, b)\n",
+ "\n",
+ "print ('The sum of %d + %d = %d' % (a, b, som))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of 2 + 3 = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page number: 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "global y\n",
+ "y = 90\n",
+ "m = 10\n",
+ "z = 2.18\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fun1 (m, y, z) :\n",
+ " z = 3.141\n",
+ " print ('%f' % z)\n",
+ "\n",
+ "fun1 (m, y, z)\n",
+ "\n",
+ "print ('%d %d %f' % (m, y, z))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3.141000\n",
+ "10 90 2.180000\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page number: 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "global x, y, z, ch, tmp\n",
+ "z = 2.18\n",
+ "y = 90\n",
+ "ch = '#'\n",
+ "m = 10\n",
+ "x = '*'\n",
+ "tmp = '^'\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fun1 (m, y, z) :\n",
+ " z = 3.141\n",
+ " num = 100\n",
+ " tmp = '$'\n",
+ " x = 50\n",
+ " ch = '@'\n",
+ " print ('In FUNCTION FORMAL PARAMETERS')\n",
+ " print ('In the function value of m = %d address of m = %x' % (m, id(m)))\n",
+ " print ('In the function value of y = %d address of y = %x' % (y, id(y)))\n",
+ " print ('In the function value of z = %f address of z = %x' % (z, id(z)))\n",
+ "\n",
+ " print ('In FUNCTION LOCAL VARIABLES')\n",
+ " print ('In the function value of z = %f address of z = %x' % (z, id(z)))\n",
+ " print ('In the function value of num = %d address of num = %x' % (num, id(num)))\n",
+ " print ('In the function value of tmp = %s address of tmp = %x' % (tmp, id(tmp)))\n",
+ "\n",
+ " print ('In FUNCTION GLOBAL VARIABLES')\n",
+ " print ('In the function value of x = %s address of x = %x' % (x, id(x)))\n",
+ " print ('In the function value of y = %d address of y = %x' % (y, id(y)))\n",
+ " print ('In the function value of ch = %s address of ch = %x' % (ch, id(ch)))\n",
+ "\n",
+ "\n",
+ "print ('In MAIN LOCAL VARIABLES')\n",
+ "print ('In Main the value of m = %d address of m = %x' % (m, id(m)))\n",
+ "print ('In Main the value of x = %s address of x = %s' % (x, id(x)))\n",
+ "print ('In MAIN GLOBAL VARIABLES')\n",
+ "print ('In Main the value of y = %d address of y = %x' % (y, id(y)))\n",
+ "print ('In Main the value of z = %f address of z = %x' % (z, id(z)))\n",
+ "print ('In Main the value of ch = %s address of ch = %s' % (ch, id(ch)))\n",
+ "print ('In Main the value of tmp = %s address of tmp = %x' % (tmp, id(tmp)))\n",
+ "\n",
+ "fun1 (m, y, z)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In MAIN LOCAL VARIABLES\n",
+ "In Main the value of m = 10 address of m = 117d0c0\n",
+ "In Main the value of x = * address of x = 140148786619376\n",
+ "In MAIN GLOBAL VARIABLES\n",
+ "In Main the value of y = 90 address of y = 117d8d0\n",
+ "In Main the value of z = 2.180000 address of z = 16ca340\n",
+ "In Main the value of ch = # address of ch = 140148787513184\n",
+ "In Main the value of tmp = ^ address of tmp = 7f76eea46eb8\n",
+ "In FUNCTION FORMAL PARAMETERS\n",
+ "In the function value of m = 10 address of m = 117d0c0\n",
+ "In the function value of y = 90 address of y = 117d8d0\n",
+ "In the function value of z = 3.141000 address of z = 16ca2f8\n",
+ "In FUNCTION LOCAL VARIABLES\n",
+ "In the function value of z = 3.141000 address of z = 16ca2f8\n",
+ "In the function value of num = 100 address of num = 117d7e0\n",
+ "In the function value of tmp = $ address of tmp = 7f76eeb088a0\n",
+ "In FUNCTION GLOBAL VARIABLES\n",
+ "In the function value of x = 50 address of x = 117d4c8\n",
+ "In the function value of y = 90 address of y = 117d8d0\n",
+ "In the function value of ch = @ address of ch = 7f76ed6203f0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page number: 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def add (a, b) :\n",
+ " global som\n",
+ " som = a + b\n",
+ "\n",
+ "add (a, b)\n",
+ "\n",
+ "print ('The sum of %d + %d = %d' % (a, b, som))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 30\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of 20 + 30 = 50\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page number: 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greater (a, b) :\n",
+ " global big\n",
+ " if a == b :\n",
+ " big = 'equal'\n",
+ " else :\n",
+ " if a > b :\n",
+ " big = 'first'\n",
+ " else :\n",
+ " big = 'second'\n",
+ " return big\n",
+ "\n",
+ "greater (a, b)\n",
+ "\n",
+ "if big == 'equal' :\n",
+ " print ('EQUAL')\n",
+ "else :\n",
+ " if big == 'first' :\n",
+ " print ('First number is greater %d' % a)\n",
+ " else :\n",
+ " print ('Second number is greater %d' % b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "EQUAL\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page number: 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = int(raw_input('Enter first number '))\n",
+ "b = int(raw_input('Enter second number '))\n",
+ "c = int(raw_input('Enter third number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def greater (a, b, c) :\n",
+ " if a>b :\n",
+ " if a>c :\n",
+ " print ('The greatest number is %d ' % a)\n",
+ " else :\n",
+ " print ('The greatest number is %d ' % c)\n",
+ "\n",
+ " else :\n",
+ " if b>c :\n",
+ " print ('The greatest number is %d ' % b)\n",
+ " else : \n",
+ " print ('The greatest number is %d ' % c)\n",
+ "\n",
+ "greater (a, b, c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter first number 190\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter second number 128\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter third number 45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The greatest number is 190 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page number: 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def summate (n) :\n",
+ " i = 1\n",
+ " global total\n",
+ " total = 0\n",
+ " while i <= n :\n",
+ " total = total + i\n",
+ " i = i+1\n",
+ " \n",
+ "summate (n)\n",
+ "\n",
+ "print ('Sum of first %d natural numbers is %d' % (n, total))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of first 6 natural numbers is 21\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9, Page number: 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n) :\n",
+ " global sum\n",
+ " sum = 0\n",
+ " while n > 0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " return sum\n",
+ "\n",
+ "sumofdigit (n)\n",
+ "\n",
+ "print ('Sum of digits of %d is %d' % (n, sum))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 7612\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 7612 is 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10, Page number: 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def checkprime (n) :\n",
+ " flag = 1\n",
+ " i = 2\n",
+ " while i<n and flag :\n",
+ " if n%i == 0 :\n",
+ " flag = 0\n",
+ " i = i+1\n",
+ " return flag\n",
+ "\n",
+ "result = checkprime (n)\n",
+ "\n",
+ "if result :\n",
+ " print ('The number %d is PRIME ' % n)\n",
+ "else :\n",
+ " print ('The number %d is COMPOSITE ' % n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 14\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number 14 is COMPOSITE \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page number: 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def makethird (n) :\n",
+ " first = 0\n",
+ " second = 1\n",
+ " count = 3\n",
+ " print ('%d terms of the Fibonacci series are ' % n)\n",
+ " print ('%d %d ' % (first, second)),\n",
+ " while count<=n :\n",
+ " third = first + second\n",
+ " first = second\n",
+ " second = third\n",
+ " print (' %d ' % third),\n",
+ " count = count + 1\n",
+ "\n",
+ "makethird (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 terms of the Fibonacci series are \n",
+ "0 1 1 2 3 5 8 13 21 34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page number: 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "sum = n\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n, sum) :\n",
+ " while sum>=10 :\n",
+ " sum = 0\n",
+ " while n>0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " n = sum\n",
+ " return sum\n",
+ "\n",
+ "result = sumofdigit (n, sum)\n",
+ "\n",
+ "print ('Sum of digits of %d is %d' % (n, result))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 7612\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 7612 is 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page number: 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def prime (n) :\n",
+ " for num in range (2, n) :\n",
+ " flag = 1\n",
+ " for i in range (2, num) :\n",
+ " if num % i == 0 : \n",
+ " flag = 0\n",
+ " if flag :\n",
+ " print ('%d ' % num),\n",
+ "\n",
+ "prime (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2 3 5 7 11 13 17 19 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.14, Page number: 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "m = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fun1 (m) :\n",
+ " if not hasattr(fun1, \"temp\") : \n",
+ " fun1.temp = 0\n",
+ " print ('In function value of temp = %d' % fun1.temp)\n",
+ " if fun1.temp < m :\n",
+ " fun1.temp = m\n",
+ " else :\n",
+ " fun1.temp = fun1.temp + 1\n",
+ "\n",
+ "for i in range (1, 6) :\n",
+ " fun1 (m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In function value of temp = 0\n",
+ "In function value of temp = 10\n",
+ "In function value of temp = 11\n",
+ "In function value of temp = 12\n",
+ "In function value of temp = 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page number: 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "m = 10\n",
+ "i = 1\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fun1 (m) :\n",
+ " x = m\n",
+ " if not hasattr(fun1, \"temp\") : \n",
+ " fun1.temp = 0\n",
+ "\n",
+ " if fun1.temp == 0 :\n",
+ " print ('\\nIn FUNCTION Global variable')\n",
+ " print ('Value of m = %d address of m = %x' % (m, id(m)))\n",
+ " print ('\\nIn FUNCTION Formal parameter variable')\n",
+ " print ('Value of x = %d address of x = %x' % (x, id(x)))\n",
+ " print ('\\nIn FUNCTION Static variable')\n",
+ " print ('Value of temp = %d address of temp = %x' % (fun1.temp, id(fun1.temp)))\n",
+ "\n",
+ " if fun1.temp < m :\n",
+ " fun1.temp = m\n",
+ "\n",
+ " else :\n",
+ " print ('Value of temp = %d' % fun1.temp)\n",
+ " fun1.temp = fun1.temp + 1\n",
+ "\n",
+ "print ('\\nIn MAIN Global variable')\n",
+ "print ('Value of m = %d address of m = %x' % (m, id(m)))\n",
+ "print ('\\nIn MAIN Local variable')\n",
+ "print ('Value of i = %d address of i = %x' % (i, id(i)))\n",
+ " \n",
+ "for i in range (1, 6) :\n",
+ " fun1 (m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In MAIN Global variable\n",
+ "Value of m = 10 address of m = 117d0c0\n",
+ "\n",
+ "In MAIN Local variable\n",
+ "Value of i = 1 address of i = 117d198\n",
+ "\n",
+ "In FUNCTION Global variable\n",
+ "Value of m = 10 address of m = 117d0c0\n",
+ "\n",
+ "In FUNCTION Formal parameter variable\n",
+ "Value of x = 10 address of x = 117d0c0\n",
+ "\n",
+ "In FUNCTION Static variable\n",
+ "Value of temp = 0 address of temp = 117d1b0\n",
+ "Value of temp = 10\n",
+ "Value of temp = 11\n",
+ "Value of temp = 12\n",
+ "Value of temp = 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.16, Page number: 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter number of Fibonacci terms required '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def nextfibo () :\n",
+ " if not hasattr(nextfibo, \"first\") : \n",
+ " nextfibo.first = 0\n",
+ " if not hasattr(nextfibo, \"second\") : \n",
+ " nextfibo.second = 1\n",
+ " if not hasattr(nextfibo, \"third\") : \n",
+ " nextfibo.third = 0\n",
+ " nextfibo.third = nextfibo.first + nextfibo.second\n",
+ " nextfibo.first = nextfibo.second\n",
+ " nextfibo.second = nextfibo.third\n",
+ " return nextfibo.first\n",
+ " \n",
+ "print ('%d terms of Fibonacci series are' % n) \n",
+ "print 0,\n",
+ "for count in range (2, n+1) :\n",
+ " result = nextfibo ()\n",
+ " print ('%d' % result),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter number of Fibonacci terms required 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10 terms of Fibonacci series are\n",
+ "0 1 1 2 3 5 8 13 21 34\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_7.ipynb b/Magnifying_C/Chapter_7.ipynb
new file mode 100755
index 00000000..73eec220
--- /dev/null
+++ b/Magnifying_C/Chapter_7.ipynb
@@ -0,0 +1,862 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Recursion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page number: 219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration, calculation and result\n",
+ "str = raw_input('Enter a string: ')\n",
+ "\n",
+ "print str"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string: HELLO\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HELLO\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page number: 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration, calculation and result\n",
+ "str = raw_input('Enter a string: ')\n",
+ "\n",
+ "print str[::-1]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string: HELLO\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "OLLEH\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page number: 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fact (n) :\n",
+ " if n>0 :\n",
+ " return n * fact (n-1)\n",
+ " else :\n",
+ " return 1\n",
+ "\n",
+ "print ('Factorial of %d is %d' % (n, fact (n)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Factorial of 5 is 120\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4, Page number: 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printnum (n) :\n",
+ " if n>0 :\n",
+ " printnum (n-1)\n",
+ " print n,\n",
+ "\n",
+ "print ('Counting up to %d' % n)\n",
+ "printnum (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Counting up to 10\n",
+ "1 2 3 4 5 6 7 8 9 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page number: 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printeven (n) :\n",
+ "\tif not hasattr(printeven, \"x\") : \n",
+ "\t\tprinteven.x = 2\n",
+ " \n",
+ "\tif printeven.x <= n :\n",
+ "\t\tprint printeven.x,\n",
+ "\t\tprinteven.x = printeven.x + 2\n",
+ "\t\tprinteven (n)\n",
+ "\n",
+ "print ('Even numbers up to %d are' % n)\n",
+ "printeven (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Even numbers up to 10 are\n",
+ "2 4 6 8 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6, Page number: 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printodd (x, n) :\n",
+ "\tif x <= n : \n",
+ "\t\tprint x,\n",
+ "\t\tprintodd (x+2, n)\n",
+ "\n",
+ "print ('Odd numbers up to %d are' % n)\n",
+ "printodd (1, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Odd numbers up to 10 are\n",
+ "1 3 5 7 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7, Page number: 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printnum (fro, to) :\n",
+ "\tif fro <= to : \n",
+ "\t\tprint fro,\n",
+ "\t\tprintnum (fro+1, to)\n",
+ "\n",
+ "print ('Number line for %d is' % n)\n",
+ "printnum (-n, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number line for 5 is\n",
+ "-5 -4 -3 -2 -1 0 1 2 3 4 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8, Page number: 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def summate (n) :\n",
+ "\tif n > 0 : \n",
+ "\t\treturn n + summate (n-1)\n",
+ "\telse :\n",
+ "\t\treturn 0\n",
+ "\n",
+ "print ('Sum of first %d natural numbers is %d' % (n, summate (n)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of first 10 natural numbers is 55\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9, Page number: 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def factors (n) :\n",
+ "\tif not hasattr(factors, \"i\") : \n",
+ "\t\tfactors.i = 1\n",
+ "\t\t\n",
+ "\tif factors.i <= n : \n",
+ "\t\tif n % factors.i == 0 :\n",
+ "\t\t\tprint factors.i,\n",
+ "\t\tfactors.i = factors.i + 1\n",
+ "\t\tfactors (n)\n",
+ "\n",
+ "print ('The factors of %d are' % n)\n",
+ "factors (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 28\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The factors of 28 are\n",
+ "1 2 4 7 14 28\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10, Page number: 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def multiple (n) :\n",
+ "\tif not hasattr(multiple, \"i\") : \n",
+ "\t\tmultiple.i = 1\n",
+ "\t\t\n",
+ "\tif multiple.i <= 10 : \n",
+ "\t\tprint ('%d X %d = %d' % (n, multiple.i, n*multiple.i))\n",
+ "\t\tmultiple.i = multiple.i + 1\n",
+ "\t\tmultiple (n)\n",
+ "\n",
+ "print ('The first 10 multiples of %d are' % n)\n",
+ "multiple (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The first 10 multiples of 6 are\n",
+ "6 X 1 = 6\n",
+ "6 X 2 = 12\n",
+ "6 X 3 = 18\n",
+ "6 X 4 = 24\n",
+ "6 X 5 = 30\n",
+ "6 X 6 = 36\n",
+ "6 X 7 = 42\n",
+ "6 X 8 = 48\n",
+ "6 X 9 = 54\n",
+ "6 X 10 = 60\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11, Page number: 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def checkprime (n) :\n",
+ " flag = 1\n",
+ " i = 2\n",
+ " while i<n and flag :\n",
+ " if n%i == 0 :\n",
+ " flag = 0\n",
+ " i = i+1\n",
+ " return flag\n",
+ "\n",
+ "result = checkprime (n)\n",
+ "\n",
+ "if result :\n",
+ " print ('The number %d is PRIME ' % n)\n",
+ "else :\n",
+ " print ('The number %d is COMPOSITE ' % n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 19\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number 19 is PRIME \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12, Page number: 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def Fibonacci (n) :\n",
+ "\tif n < 2 :\n",
+ "\t\treturn n\n",
+ "\telse :\n",
+ "\t\treturn Fibonacci (n-1) + Fibonacci (n-2)\n",
+ "\t\n",
+ "\n",
+ "print ('The %d terms of Fibonacci series are' % n)\n",
+ "for i in range (0, n) :\n",
+ "\tprint ('%d' % Fibonacci (i)),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The 10 terms of Fibonacci series are\n",
+ "0 1 1 2 3 5 8 13 21 34\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page number: 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "sum = n\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def sumofdigit (n, sum) :\n",
+ " while sum>=10 :\n",
+ " sum = 0\n",
+ " while n>0 :\n",
+ " sum = sum + n%10\n",
+ " n = n/10\n",
+ " n = sum\n",
+ " return sum\n",
+ "\n",
+ "result = sumofdigit (n, sum)\n",
+ "\n",
+ "print ('Sum of digits of %d is %d' % (n, result))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 8626\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits of 8626 is 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14, Page number: 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def prime (n) :\n",
+ " for num in range (3, n+1) :\n",
+ " flag = 1\n",
+ " for i in range (2, num) :\n",
+ " if num % i == 0 : \n",
+ " flag = 0\n",
+ " if flag :\n",
+ " print ('%d ' % num),\n",
+ "\n",
+ "print ('Prime numbers upto %d are' % n)\n",
+ "prime (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 30\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Prime numbers upto 30 are\n",
+ "3 5 7 11 13 17 19 23 29 \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15, Page number: 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int (raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def pattern (n) :\n",
+ "\tif n > 0 :\n",
+ "\t\tpattern (n-1)\n",
+ "\t\tfor count in range (1, n+1) :\n",
+ "\t\t\tprint ('%d' % count),\n",
+ " \tprint\n",
+ " \t\n",
+ "pattern (n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1\n",
+ "1 2\n",
+ "1 2 3\n",
+ "1 2 3 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.16, Page number: 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "n = int(raw_input('Enter any number '))\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printline (x, total) :\n",
+ "\tif x > 0 :\n",
+ "\t\tprintline (x-1, total)\n",
+ "\t\tfor blk in range (1, total-x+1) :\n",
+ "\t\t\tprint ' ',\n",
+ "\t\tfor up in range (1, x+1) :\n",
+ "\t\t\tprint ('%d' % up),\n",
+ "\t\tdown = x-1\n",
+ "\t\twhile down>0 :\n",
+ "\t\t\tprint ('%d' % down),\n",
+ "\t\t\tdown = down-1\n",
+ "\t\tprint\n",
+ "\n",
+ "printline (n, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 1 2 1\n",
+ " 1 2 3 2 1\n",
+ "1 2 3 4 3 2 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17, Page number: 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def listsum () :\n",
+ "\tn = int(raw_input('Enter any number '))\n",
+ "\tif n > 0 :\n",
+ "\t\treturn n + listsum ()\n",
+ "\telse :\n",
+ "\t\treturn 0\n",
+ "\t\t\n",
+ "sum = listsum ()\n",
+ "print ('Sum of list of numbers is %d' % sum)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any number -4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of list of numbers is 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_8.ipynb b/Magnifying_C/Chapter_8.ipynb
new file mode 100755
index 00000000..ccafa905
--- /dev/null
+++ b/Magnifying_C/Chapter_8.ipynb
@@ -0,0 +1,2718 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Arrays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page number: 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "word = array('c', ['H', 'e', 'l', 'l', 'o'])\n",
+ "\n",
+ "# Result\n",
+ "print ('The contents of word [] is %s ' % ''.join(word))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The contents of word [] is Hello \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page number: 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "marks = [0]*10\n",
+ "avg = 0\n",
+ "\n",
+ "# Calculation and result\n",
+ "for i in range (0, 10) :\n",
+ "\tmarks[i] = int(raw_input('Enter value in cell [%d] ' % i))\n",
+ "\tavg = avg + marks[i]\n",
+ "\n",
+ "avg = avg/10\n",
+ "print ('The average marks are %f' % avg)\n",
+ "\n",
+ "for i in range (0, 10) :\n",
+ "\tif marks[i] < avg :\n",
+ "\t\tprint ('Marks in cell [%d] are %d less than average' % (i, marks[i]))\n",
+ "\telse :\n",
+ "\t\tprint ('Marks in cell [%d] are %d above/equal to average' % (i, marks[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [0] 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [1] 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [2] 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [3] 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [4] 56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [5] 98\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [6] 53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [7] 82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [8] 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [9] 39\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average marks are 63.000000\n",
+ "Marks in cell [0] are 45 less than average\n",
+ "Marks in cell [1] are 78 above/equal to average\n",
+ "Marks in cell [2] are 65 above/equal to average\n",
+ "Marks in cell [3] are 43 less than average\n",
+ "Marks in cell [4] are 56 less than average\n",
+ "Marks in cell [5] are 98 above/equal to average\n",
+ "Marks in cell [6] are 53 less than average\n",
+ "Marks in cell [7] are 82 above/equal to average\n",
+ "Marks in cell [8] are 74 above/equal to average\n",
+ "Marks in cell [9] are 39 less than average\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page number: 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "data = raw_input('Enter the string ')\n",
+ "\n",
+ "# Calculation and result\n",
+ "rev_data = reversed (data)\n",
+ "\n",
+ "if list (data) == list (rev_data) :\n",
+ "\tprint ('The string %s is a PALINDROME' % data)\n",
+ "else :\n",
+ "\tprint ('The string %s is not a PALINDROME' % data)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string MADAM\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The string MADAM is a PALINDROME\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page number: 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "marks = [0]*10\n",
+ "avg = 0\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readdata (marks) :\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\tmarks[i] = int(raw_input('Enter value in cell [%d] ' % i))\n",
+ "\t\t\n",
+ "def average (marks) :\n",
+ "\tmean = 0\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\tmean = mean + marks[i]\n",
+ "\treturn mean/10\n",
+ "\n",
+ "def printdata (marks, avg) :\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\tif marks[i] < avg :\n",
+ "\t\t\tprint ('Marks in cell [%d] are %d less than average' % (i, marks[i]))\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('Marks in cell [%d] are %d above/equal to average' % (i, marks[i]))\t\n",
+ "\n",
+ "\n",
+ "readdata (marks)\n",
+ "avg = average (marks)\t\n",
+ "print ('The average marks are %f' % avg)\n",
+ "printdata (marks, avg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [0] 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [1] 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [2] 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [3] 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [4] 56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [5] 98\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [6] 53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [7] 82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [8] 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell [9] 39\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average marks are 63.000000\n",
+ "Marks in cell [0] are 45 less than average\n",
+ "Marks in cell [1] are 78 above/equal to average\n",
+ "Marks in cell [2] are 65 above/equal to average\n",
+ "Marks in cell [3] are 43 less than average\n",
+ "Marks in cell [4] are 56 less than average\n",
+ "Marks in cell [5] are 98 above/equal to average\n",
+ "Marks in cell [6] are 53 less than average\n",
+ "Marks in cell [7] are 82 above/equal to average\n",
+ "Marks in cell [8] are 74 above/equal to average\n",
+ "Marks in cell [9] are 39 less than average\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page number: 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "a = [10, 20, 30, 40, 50]\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def fun (x, y, z) :\n",
+ "\tx = x + 5\n",
+ "\ty = y + 10\n",
+ "\tz[4] = z[4] + 100\n",
+ "\n",
+ "\n",
+ "for i in range (0, 5) :\n",
+ "\tprint ('The cell [%d] contains %d' % (i, a[i]))\n",
+ "\tprint ('The address of cell [%d] is %x' % (i, id(a[i])))\n",
+ "\t\t\n",
+ "fun (a[0], a[3], a)\t\n",
+ "print\n",
+ "\n",
+ "for i in range (0, 5) :\n",
+ "\tprint ('The cell [%d] contains %d' % (i, a[i]))\n",
+ "\tprint ('The address of cell [%d] is %x' % (i, id(a[i])))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cell [0] contains 10\n",
+ "The address of cell [0] is 18bc0c0\n",
+ "The cell [1] contains 20\n",
+ "The address of cell [1] is 18bbfd0\n",
+ "The cell [2] contains 30\n",
+ "The address of cell [2] is 18bbee0\n",
+ "The cell [3] contains 40\n",
+ "The address of cell [3] is 18bc5b8\n",
+ "The cell [4] contains 50\n",
+ "The address of cell [4] is 18bc4c8\n",
+ "\n",
+ "The cell [0] contains 10\n",
+ "The address of cell [0] is 18bc0c0\n",
+ "The cell [1] contains 20\n",
+ "The address of cell [1] is 18bbfd0\n",
+ "The cell [2] contains 30\n",
+ "The address of cell [2] is 18bbee0\n",
+ "The cell [3] contains 40\n",
+ "The address of cell [3] is 18bc5b8\n",
+ "The cell [4] contains 150\n",
+ "The address of cell [4] is 18bcaf8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page number: 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "data = raw_input('Enter the string ')\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def revstring (data) :\n",
+ "\trev_data = reversed (data)\n",
+ "\n",
+ "\tif list (data) == list (rev_data) :\n",
+ "\t\tprint ('The string %s is a PALINDROME' % data)\n",
+ "\telse :\n",
+ "\t\tprint ('The string %s is not a PALINDROME' % data)\n",
+ "\n",
+ "revstring (data)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string python\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The string python is not a PALINDROME\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page number: 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "a = [0]*10\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readnsort (a) :\n",
+ "\tpos = 0\n",
+ "\tfor len in range (0, 10) :\n",
+ "\t\tnum = int(raw_input('Enter data element no. %d ' % len))\n",
+ "\t\t\n",
+ "\t\tfor pos in range (0, len+1) :\n",
+ "\t\t\tif num < a[pos] :\n",
+ "\t\t\t\tbreak\n",
+ "\t\t\t\t\n",
+ "\t\ti = len\t\t\n",
+ "\t\twhile i>=pos :\n",
+ "\t\t\ta[i] = a[i-1]\n",
+ "\t\t\ti = i-1\n",
+ "\t\ta[pos] = num\n",
+ "\t\t\t\n",
+ "def printdata (a) :\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\tprint ('The data in cell [%d] is %d ' % (i, a[i]))\t\t\t\n",
+ "\t\t\t\n",
+ "readnsort (a)\n",
+ "print\n",
+ "printdata (a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 0 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 1 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 2 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 3 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 4 56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 5 98\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 6 53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 7 82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 8 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data element no. 9 39\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The data in cell [0] is 39 \n",
+ "The data in cell [1] is 43 \n",
+ "The data in cell [2] is 45 \n",
+ "The data in cell [3] is 53 \n",
+ "The data in cell [4] is 56 \n",
+ "The data in cell [5] is 65 \n",
+ "The data in cell [6] is 74 \n",
+ "The data in cell [7] is 78 \n",
+ "The data in cell [8] is 82 \n",
+ "The data in cell [9] is 98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page number: 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readdata () :\n",
+ "\ta = []\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\ta.append(int(raw_input('Enter data in cell [%d] ' % i)))\n",
+ "\treturn a\n",
+ "\n",
+ "def sortdata (a) :\n",
+ "\tfor p in range (0, 9) :\n",
+ "\t\tmin = p\n",
+ "\t\tfor i in range (p, 10) :\n",
+ "\t\t\tif a[min] > a[i] :\n",
+ "\t\t\t\tmin = i\n",
+ "\t\ttemp = a[p]\n",
+ "\t\ta[p] = a[min]\n",
+ "\t\ta[min] = temp\n",
+ "\treturn a\n",
+ "\n",
+ "def printdata (a) :\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\tprint ('The data in cell [%d] is %d ' % (i, a[i]))\n",
+ "\n",
+ "a = readdata ()\n",
+ "a = sortdata (a)\n",
+ "print ('\\nThe sorted data is ')\n",
+ "printdata (a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [0] 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [1] 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [2] 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [3] 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [4] 56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [5] 98\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [6] 53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [7] 82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [8] 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [9] 39\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The sorted data is \n",
+ "The data in cell [0] is 39 \n",
+ "The data in cell [1] is 43 \n",
+ "The data in cell [2] is 45 \n",
+ "The data in cell [3] is 53 \n",
+ "The data in cell [4] is 56 \n",
+ "The data in cell [5] is 65 \n",
+ "The data in cell [6] is 74 \n",
+ "The data in cell [7] is 78 \n",
+ "The data in cell [8] is 82 \n",
+ "The data in cell [9] is 98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, Page number: 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readdata () :\n",
+ "\ta = []\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\ta.append(int(raw_input('Enter data in cell [%d] ' % i)))\n",
+ "\treturn a\n",
+ "\n",
+ "def bubble (a) :\n",
+ "\tfor p in range (0, 10) :\n",
+ "\t\tfor i in range (0, 9-p) :\n",
+ "\t\t\tif a[i] > a[i+1] :\n",
+ "\t\t\t\ttemp = a[i]\n",
+ "\t\t\t\ta[i] = a[i+1]\n",
+ "\t\t\t\ta[i+1] = temp\n",
+ "\treturn a\n",
+ "\n",
+ "def printdata (a) :\n",
+ "\tfor i in range (0, 10) :\n",
+ "\t\tprint ('The data in cell [%d] is %d ' % (i, a[i]))\n",
+ "\n",
+ "a = readdata ()\n",
+ "a = bubble (a)\n",
+ "print ('\\nThe sorted data is ')\n",
+ "printdata (a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [0] 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [1] 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [2] 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [3] 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [4] 56\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [5] 98\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [6] 53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [7] 82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [8] 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [9] 39\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The sorted data is \n",
+ "The data in cell [0] is 39 \n",
+ "The data in cell [1] is 43 \n",
+ "The data in cell [2] is 45 \n",
+ "The data in cell [3] is 53 \n",
+ "The data in cell [4] is 56 \n",
+ "The data in cell [5] is 65 \n",
+ "The data in cell [6] is 74 \n",
+ "The data in cell [7] is 78 \n",
+ "The data in cell [8] is 82 \n",
+ "The data in cell [9] is 98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10, Page number: 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readdata (size) :\n",
+ "\ta = []\n",
+ "\tfor i in range (0, size) :\n",
+ "\t\ta.append(int(raw_input('Enter data in cell [%d] ' % i)))\n",
+ "\treturn a\n",
+ "\n",
+ "def bubble (a, size) :\n",
+ "\tfor p in range (0, size) :\n",
+ "\t\tfor i in range (0, size-p-1) :\n",
+ "\t\t\tif a[i] > a[i+1] :\n",
+ "\t\t\t\ttemp = a[i]\n",
+ "\t\t\t\ta[i] = a[i+1]\n",
+ "\t\t\t\ta[i+1] = temp\n",
+ "\treturn a\n",
+ "\n",
+ "def printdata (a, size) :\n",
+ "\tfor i in range (0, size) :\n",
+ "\t\tprint ('The data in cell [%d] is %d ' % (i, a[i]))\n",
+ "\n",
+ "def lsearch (a, key, size) :\n",
+ "\tfor i in range (0, size) :\n",
+ "\t\tif a[i] == key :\n",
+ "\t\t\treturn i\n",
+ "\t\tif i == size :\n",
+ "\t\t\treturn -1\n",
+ "\t\t\t\n",
+ "size = int(raw_input('Enter the total number of elements '))\n",
+ "a = readdata (size)\n",
+ "a = bubble (a, size)\n",
+ "print ('\\nThe sorted array is ')\n",
+ "printdata (a, size)\n",
+ "\n",
+ "find = int(raw_input('\\nEnter the element to be searched '))\n",
+ "pos = lsearch (a, find, size)\n",
+ "\n",
+ "if pos<0 :\n",
+ "\tprint ('\\nThe element %d NOT FOUND ' % find)\n",
+ "else :\n",
+ "\tprint ('\\nThe element %d found at position %d ' % (find, pos))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the total number of elements 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [0] 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [1] 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [2] 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [3] 34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [4] 49\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The sorted array is \n",
+ "The data in cell [0] is 34 \n",
+ "The data in cell [1] is 45 \n",
+ "The data in cell [2] is 49 \n",
+ "The data in cell [3] is 65 \n",
+ "The data in cell [4] is 78 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter the element to be searched 65\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The element 65 found at position 3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11, Page number: 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readdata (size) :\n",
+ "\ta = []\n",
+ "\tfor i in range (0, size) :\n",
+ "\t\ta.append(int(raw_input('Enter data in cell [%d] ' % i)))\n",
+ "\treturn a\n",
+ "\n",
+ "def bubble (a, size) :\n",
+ "\tfor p in range (0, size) :\n",
+ "\t\tfor i in range (0, size-p-1) :\n",
+ "\t\t\tif a[i] > a[i+1] :\n",
+ "\t\t\t\ttemp = a[i]\n",
+ "\t\t\t\ta[i] = a[i+1]\n",
+ "\t\t\t\ta[i+1] = temp\n",
+ "\treturn a\n",
+ "\n",
+ "def printdata (a, size) :\n",
+ "\tfor i in range (0, size) :\n",
+ "\t\tprint ('The data in cell [%d] is %d ' % (i, a[i]))\n",
+ "\n",
+ "def bsearch (a, key, size) :\n",
+ "\tfirst = 0\n",
+ "\tlast = size - 1\n",
+ "\tmid = (first + last)/2\n",
+ "\t\n",
+ "\twhile (first <= last and a[mid] != key) :\n",
+ "\t\tif a[mid] < key :\n",
+ "\t\t\tfirst = mid + 1\n",
+ "\t\telse :\n",
+ "\t\t\tif a[mid] > key :\n",
+ "\t\t\t\tlast = mid - 1\n",
+ "\t\tmid = (first + last)/2\n",
+ "\t\n",
+ "\tif a[mid] == key :\n",
+ "\t\treturn mid\n",
+ "\telse :\n",
+ "\t\treturn -1\n",
+ "\t\t\t\n",
+ "size = int(raw_input('Enter the number of elements in the array '))\n",
+ "a = readdata (size)\n",
+ "a = bubble (a, size)\n",
+ "print ('\\nThe sorted array is ')\n",
+ "printdata (a, size)\n",
+ "\n",
+ "find = int(raw_input('\\nPlease enter the element to be searched for '))\n",
+ "pos = bsearch (a, find, size)\n",
+ "\n",
+ "if pos<0 :\n",
+ "\tprint ('\\nThe element %d NOT FOUND ' % find)\n",
+ "else :\n",
+ "\tprint ('\\nThe element %d found at position %d ' % (find, pos))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of elements in the array 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [0] 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [1] 78\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [2] 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [3] 34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [4] 49\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The sorted array is \n",
+ "The data in cell [0] is 34 \n",
+ "The data in cell [1] is 45 \n",
+ "The data in cell [2] is 49 \n",
+ "The data in cell [3] is 65 \n",
+ "The data in cell [4] is 78 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Please enter the element to be searched for 45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The element 45 found at position 1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page number: 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readncompute (no_of_students) :\n",
+ "\ta = [[0 for y in xrange(5)] for x in xrange(no_of_students)]\n",
+ "\tper = [0 for x in range(no_of_students)]\n",
+ "\tavg = 0\n",
+ "\t\n",
+ "\tfor i in range (0, no_of_students) :\n",
+ "\t\tprint ('\\nEnter marks of 5 subjects for Roll no. %d ' % (i+1))\n",
+ "\t\t\n",
+ "\t\tfor j in range (0, 5) :\n",
+ "\t\t\ta[i][j] = int(raw_input('Subject %d = ' % (j+1)))\n",
+ "\t\t\tper[i] = per[i] + a[i][j]\n",
+ "\t\t\t\n",
+ "\t\tper[i] = per[i]/5\n",
+ "\t\tavg = avg + per[i]\n",
+ "\t\t\n",
+ "\treturn a, avg/no_of_students, per\n",
+ "\n",
+ "def printdata (a, no_of_students, avg, per) :\n",
+ "\tfor i in range (0, no_of_students) :\n",
+ "\t\tprint ('\\nMarks for Roll no. %d are ' % (i+1))\n",
+ "\t\tfor j in range (0, 5) :\n",
+ "\t\t\tprint a[i][j]\n",
+ "\t\tprint ('Percentage for Roll no. %d is %f ' % ((i+1), per[i]))\n",
+ "\t\t\n",
+ "\t\tif per[i] < avg :\n",
+ "\t\t\tprint ('Below average')\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('Above average')\n",
+ "\t\t\n",
+ "\n",
+ "no_of_students = int(raw_input('How many students marks do you want to enter '))\n",
+ "a, average, per = readncompute (no_of_students)\n",
+ "print ('\\nThe average marks are %f ' % average)\n",
+ "printdata (a, no_of_students, average, per)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students marks do you want to enter 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for Roll no. 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1 = 75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2 = 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3 = 51\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4 = 68\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5 = 73\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for Roll no. 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1 = 49\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2 = 71\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3 = 62\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4 = 53\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5 = 50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for Roll no. 3 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1 = 90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2 = 82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3 = 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4 = 93\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5 = 89\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The average marks are 68.000000 \n",
+ "\n",
+ "Marks for Roll no. 1 are \n",
+ "75\n",
+ "43\n",
+ "51\n",
+ "68\n",
+ "73\n",
+ "Percentage for Roll no. 1 is 62.000000 \n",
+ "Below average\n",
+ "\n",
+ "Marks for Roll no. 2 are \n",
+ "49\n",
+ "71\n",
+ "62\n",
+ "53\n",
+ "50\n",
+ "Percentage for Roll no. 2 is 57.000000 \n",
+ "Below average\n",
+ "\n",
+ "Marks for Roll no. 3 are \n",
+ "90\n",
+ "82\n",
+ "74\n",
+ "93\n",
+ "89\n",
+ "Percentage for Roll no. 3 is 85.000000 \n",
+ "Above average\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.13, Page number: 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def getchoice () :\n",
+ "\tprint\n",
+ "\tprint ('1 - Input two matrices ')\n",
+ "\tprint ('2 - Add and display sum ')\n",
+ "\tprint ('3 - Exit ')\n",
+ "\t\n",
+ "\tchoice = int(raw_input('Enter choice : '))\n",
+ "\treturn choice\n",
+ "\n",
+ "def read (matrix, rows, cols) :\t\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tprint ('\\nEnter elements for row %d ' % (i+1))\t\t\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tmatrix[i][j] = int(raw_input('matrix[%d][%d] = ' % ((i+1),(j+1))))\n",
+ "\n",
+ "def add (sum, augend, addend, rows, cols) :\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tsum[i][j] = augend[i][j] + addend[i][j]\n",
+ "\n",
+ "def display2matrices (augend, addend, rows, cols) :\n",
+ "\tprint ('\\nMatrix A ')\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%3d ' % augend[i][j]),\n",
+ "\t\tprint\n",
+ "\tprint ('\\nMatrix B ')\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%3d ' % addend[i][j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "def display3matrices (sum, augend, addend, rows, cols) :\n",
+ "\tprint\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%3d ' % augend[i][j]),\n",
+ "\t\tprint ('%s ' % ('+' if i==rows/2 else ' ')),\n",
+ "\t\t\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%2d ' % addend[i][j]),\n",
+ "\t\tprint ('%s ' % ('=' if i==rows/2 else ' ')),\n",
+ "\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%2d ' % sum[i][j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "def display (matrix, rows, cols) :\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%3d ' % matrix[i][j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "augend = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "addend = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "sum = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tchoice = getchoice ()\n",
+ "\t\n",
+ "\tif choice == 1 :\n",
+ "\t\trows = int(raw_input('\\nEnter the number of rows '))\t\t\n",
+ "\t\tcols = int(raw_input('Enter the number of columns '))\n",
+ "\t\t\n",
+ "\t\tprint ('\\n\\nEnter the first matrix ')\n",
+ "\t\tread (augend, rows, cols)\n",
+ "\t\tprint ('\\n\\nEnter the second matrix ')\n",
+ "\t\tread (addend, rows, cols)\n",
+ "\t\tprint ('\\n\\nYou entered ')\n",
+ "\t\tdisplay2matrices (augend, addend, rows, cols)\n",
+ "\t\n",
+ "\telif choice == 2 :\n",
+ "\t\tadd (sum, augend, addend, rows, cols)\n",
+ "\t\tdisplay3matrices (sum, augend, addend, rows, cols)\n",
+ "\t\n",
+ "\telif choice == 3 :\n",
+ "\t\tcondition = False\n",
+ "\t\texit ()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1 - Input two matrices \n",
+ "2 - Add and display sum \n",
+ "3 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter the number of rows 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of columns 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Enter the first matrix \n",
+ "\n",
+ "Enter elements for row 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][1] = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][2] = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][3] = 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][1] = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][2] = 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][3] = 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row 3 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][1] = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][2] = 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][3] = 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Enter the second matrix \n",
+ "\n",
+ "Enter elements for row 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][1] = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][2] = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][3] = 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][1] = 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][2] = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][3] = 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row 3 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][1] = 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][2] = 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][3] = 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "You entered \n",
+ "\n",
+ "Matrix A \n",
+ " 1 2 3 \n",
+ " 3 4 5 \n",
+ " 5 6 7 \n",
+ "\n",
+ "Matrix B \n",
+ " 3 5 1 \n",
+ " 6 5 3 \n",
+ " 8 7 4 \n",
+ "\n",
+ "1 - Input two matrices \n",
+ "2 - Add and display sum \n",
+ "3 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 1 2 3 3 5 1 4 7 4 \n",
+ " 3 4 5 + 6 5 3 = 9 9 8 \n",
+ " 5 6 7 8 7 4 13 13 11 \n",
+ "\n",
+ "1 - Input two matrices \n",
+ "2 - Add and display sum \n",
+ "3 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page number: 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def readmatrix (matrix, rows, cols) :\t\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tprint ('\\nPlease enter elements for row %d ' % (i+1))\t\t\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tmatrix[i][j] = int(raw_input('matrix[%d][%d] = ' % ((i+1),(j+1))))\n",
+ "\n",
+ "def multiply (prod, a, b, Ar, Ac, Bc) :\n",
+ "\tfor i in range (0, Ar) :\n",
+ "\t\tfor j in range (0, Bc) :\n",
+ "\t\t\tprod[i][j] = 0\n",
+ "\t\t\tfor k in range (0, Ac) :\n",
+ "\t\t\t\tprod[i][j] += a[i][k] * b[k][j]\n",
+ "\n",
+ "def display (matrix, rows, cols) :\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tprint ('%3d ' % matrix[i][j]),\n",
+ "\t\tprint\n",
+ "\n",
+ "a = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "b = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "product = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tArows, Acols = map(int, raw_input('Enter order of matrix A: ').split())\n",
+ "\tBrows, Bcols = map(int, raw_input('Enter order of matrix B: ').split())\n",
+ "\n",
+ "\tif Acols == Brows :\n",
+ "\t\tcondition = False\n",
+ "\t\tbreak\n",
+ "\telse : \n",
+ "\t\tprint ('\\nMatrices are not compatible for multiplication. Enter the order again. ')\n",
+ "\t\tcontinue\n",
+ "\t\n",
+ "print ('\\nEnter matrix A: ')\n",
+ "readmatrix (a, Arows, Acols)\n",
+ "\t\n",
+ "print ('\\nEnter matrix B: ')\n",
+ "readmatrix (b, Brows, Bcols)\n",
+ "\n",
+ "multiply (product, a, b, Arows, Acols, Bcols)\n",
+ "print ('\\nThe resultant product (A.B) is: ')\n",
+ "display (product, Arows, Bcols)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of matrix A: 2 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of matrix B: 3 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter matrix A: \n",
+ "\n",
+ "Please enter elements for row 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][1] = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][2] = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][3] = 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Please enter elements for row 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][1] = 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][2] = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][3] = 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter matrix B: \n",
+ "\n",
+ "Please enter elements for row 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][1] = 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][2] = 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Please enter elements for row 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][1] = 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][2] = 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Please enter elements for row 3 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][1] = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][2] = 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The resultant product (A.B) is: \n",
+ " 20 14 \n",
+ " 56 41 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page number: 303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def getchoice () :\n",
+ "\tprint\n",
+ "\tprint ('1 - Input square matrix ')\n",
+ "\tprint ('2 - Display upper triangular matrix ')\n",
+ "\tprint ('3 - Display lower triangular matrix ')\n",
+ "\tprint ('4 - Exit ')\n",
+ "\t\n",
+ "\tcondition = True\n",
+ "\twhile condition :\n",
+ "\t\tchoice = int(raw_input('Enter choice : '))\n",
+ "\t\t\n",
+ "\t\tif choice in range (1, 5) :\n",
+ "\t\t\tcondition = False\n",
+ "\t\t\t\n",
+ "\treturn choice\n",
+ "\n",
+ "def displayupper (matrix, order) :\n",
+ "\tprint\n",
+ "\tfor i in range (0, order) :\n",
+ "\t\tfor j in range (0, order) :\n",
+ "\t\t\tif j >= i :\n",
+ "\t\t\t\tprint ('%3d ' % matrix[i][j]),\n",
+ "\t\t\telse :\n",
+ "\t\t\t\tprint ('%3d ' % 0),\n",
+ "\t\tprint\n",
+ "\t\t\n",
+ "def displaylower (matrix, order) :\n",
+ "\tprint\n",
+ "\tfor i in range (0, order) :\n",
+ "\t\tfor j in range (0, order) :\n",
+ "\t\t\tif j <= i :\n",
+ "\t\t\t\tprint ('%3d ' % matrix[i][j]),\n",
+ "\t\t\telse :\n",
+ "\t\t\t\tprint ('%3d ' % 0),\n",
+ "\t\tprint\n",
+ "\n",
+ "def read (matrix, rows, cols) :\t\n",
+ "\tfor i in range (0, rows) :\n",
+ "\t\tprint ('\\nEnter %d elements for row %d ' % (rows, (i+1)))\t\t\n",
+ "\t\tfor j in range (0, cols) :\n",
+ "\t\t\tmatrix[i][j] = int(raw_input('matrix[%d][%d] = ' % ((i+1),(j+1))))\n",
+ "\n",
+ "matrix = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "\n",
+ "condition = True\n",
+ "while condition :\n",
+ "\tchoice = getchoice ()\n",
+ "\t\n",
+ "\tif choice == 1 :\n",
+ "\t\torder = int(raw_input('\\nEnter order of square matrix '))\t\t\n",
+ "\t\tread (matrix, order, order)\n",
+ "\t\n",
+ "\telif choice == 2 :\n",
+ "\t\tdisplayupper (matrix, order)\n",
+ "\t\n",
+ "\telif choice == 3 :\n",
+ "\t\tdisplaylower (matrix, order)\n",
+ "\t\t\n",
+ "\telif choice == 4 :\n",
+ "\t\tcondition = False\n",
+ "\t\texit ()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1 - Input square matrix \n",
+ "2 - Display upper triangular matrix \n",
+ "3 - Display lower triangular matrix \n",
+ "4 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter order of square matrix 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter 3 elements for row 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][1] = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][2] = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][3] = 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter 3 elements for row 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][1] = 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][2] = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][3] = 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter 3 elements for row 3 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][1] = 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][2] = 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][3] = 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1 - Input square matrix \n",
+ "2 - Display upper triangular matrix \n",
+ "3 - Display lower triangular matrix \n",
+ "4 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 1 2 3 \n",
+ " 0 5 6 \n",
+ " 0 0 9 \n",
+ "\n",
+ "1 - Input square matrix \n",
+ "2 - Display upper triangular matrix \n",
+ "3 - Display lower triangular matrix \n",
+ "4 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 1 0 0 \n",
+ " 4 5 0 \n",
+ " 7 8 9 \n",
+ "\n",
+ "1 - Input square matrix \n",
+ "2 - Display upper triangular matrix \n",
+ "3 - Display lower triangular matrix \n",
+ "4 - Exit \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter choice : 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page number: 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def readmatrix (matrix, n) :\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\tprint ('\\nEnter elements for row no %d ' % (i+1))\n",
+ "\t\tfor j in range (0, n) :\n",
+ "\t\t\tmatrix[i][j] = int(raw_input('matrix[%d][%d] = ' % ((i+1),(j+1))))\n",
+ "\n",
+ "def display (matrix, n) :\n",
+ "\tprint\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\tfor j in range (0, n) :\n",
+ "\t\t\tprint ('%5d ' % matrix[i][j]),\n",
+ "\t\tprint\n",
+ "\t\t\n",
+ "def isunitmatrix(matrix, n) :\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\tif matrix[i][i] != 1 :\n",
+ "\t\t\treturn 0\n",
+ "\t\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\tfor j in range (0, n) :\n",
+ "\t\t\tif i != j :\n",
+ "\t\t\t\tif matrix[i][j] != 0 :\n",
+ "\t\t\t\t\treturn 0\n",
+ "\treturn 1\n",
+ "\n",
+ "matrix = [[0 for y in xrange(10)] for x in xrange(10)]\n",
+ "n = int(raw_input('Enter order of matrix '))\n",
+ "readmatrix (matrix, n)\n",
+ "display (matrix, n)\n",
+ "\n",
+ "if (isunitmatrix (matrix, n)) :\n",
+ "\tprint \"UNIT MATRIX\"\n",
+ "else :\n",
+ "\tprint \"NOT A UNIT MATRIX\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter order of matrix 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row no 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][1] = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][2] = 0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[1][3] = 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row no 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][1] = 0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][2] = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[2][3] = 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter elements for row no 3 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][1] = 0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][2] = 0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "matrix[3][3] = 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 1 0 0 \n",
+ " 0 1 0 \n",
+ " 0 0 1 \n",
+ "UNIT MATRIX\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page number: 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "string = raw_input('Enter a string: ')\n",
+ "\n",
+ "# Calculation and result\n",
+ "swap_string = string.swapcase()\n",
+ "\n",
+ "print swap_string"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string: hello world\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HELLO WORLD\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page number: 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "string = raw_input('Enter a string ')\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def printstr (string) :\n",
+ "\tfor i in range (0, len(string)) :\n",
+ "\t\tfor j in range (0, i+1) :\n",
+ "\t\t\tprint string[j],\n",
+ "\t\tprint\n",
+ "\t\n",
+ "\ti = i - 2\n",
+ "\twhile i >= 0 :\n",
+ "\t\tfor j in range (0, i+1) :\n",
+ "\t\t\tprint string[j],\n",
+ "\t\tprint\n",
+ "\t\ti = i - 1\n",
+ "\t\t\n",
+ "printstr (string)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string hello\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "h\n",
+ "h e\n",
+ "h e l\n",
+ "h e l l\n",
+ "h e l l o\n",
+ "h e l\n",
+ "h e\n",
+ "h\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page number: 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = raw_input('Enter any string ')\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def copy (a) :\n",
+ "\tb = a\n",
+ "\treturn b\n",
+ "\t\n",
+ "b = copy (a)\n",
+ "print\n",
+ "print ('The first string is %s ' % a)\n",
+ "print ('The second string is %s ' % b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any string hello\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The first string is hello \n",
+ "The second string is hello \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page number: 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "a = raw_input('Enter the major string: ')\n",
+ "b = raw_input('Enter the minor string: ')\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def ispart (a, b) :\n",
+ "\tif b in a :\n",
+ "\t\tprint ('The string \"%s\" is A SUBSTRING of \"%s\" ' % (b, a))\n",
+ "\telse :\n",
+ "\t\tprint ('The string \"%s\" is NOT A SUBSTRING of \"%s\" ' % (b, a))\n",
+ "\n",
+ "ispart (a, b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the major string: python is a programming language\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the minor string: python\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The string \"python\" is A SUBSTRING of \"python is a programming language\" \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/Chapter_9.ipynb b/Magnifying_C/Chapter_9.ipynb
new file mode 100755
index 00000000..acb61edf
--- /dev/null
+++ b/Magnifying_C/Chapter_9.ipynb
@@ -0,0 +1,1093 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: More on Pointers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page number: 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "a = [[1,2,3,4,5],\n",
+ " [6,7,8,9,10],\n",
+ " [11,12,13,14,15],\n",
+ " [16,17,18,19,20],\n",
+ " [21,22,23,24,25]]\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('The value of a is %x ' % id(a))\n",
+ "\n",
+ "for i in range (0, 5) :\n",
+ "\tprint ('The value of a[%d] is %x ' % (i, id(i)))\n",
+ "\n",
+ "for i in range (0, 5) :\n",
+ "\tfor j in range (0, 5) : \n",
+ "\t\tprint ('The cell [%d][%d] i.e. %x has %d ' % (i, j, id(a[i][j]), a[i][j]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of a is 7f55dc3e08c0 \n",
+ "The value of a[0] is 18861b0 \n",
+ "The value of a[1] is 1886198 \n",
+ "The value of a[2] is 1886180 \n",
+ "The value of a[3] is 1886168 \n",
+ "The value of a[4] is 1886150 \n",
+ "The cell [0][0] i.e. 1886198 has 1 \n",
+ "The cell [0][1] i.e. 1886180 has 2 \n",
+ "The cell [0][2] i.e. 1886168 has 3 \n",
+ "The cell [0][3] i.e. 1886150 has 4 \n",
+ "The cell [0][4] i.e. 1886138 has 5 \n",
+ "The cell [1][0] i.e. 1886120 has 6 \n",
+ "The cell [1][1] i.e. 1886108 has 7 \n",
+ "The cell [1][2] i.e. 18860f0 has 8 \n",
+ "The cell [1][3] i.e. 18860d8 has 9 \n",
+ "The cell [1][4] i.e. 18860c0 has 10 \n",
+ "The cell [2][0] i.e. 18860a8 has 11 \n",
+ "The cell [2][1] i.e. 1886090 has 12 \n",
+ "The cell [2][2] i.e. 1886078 has 13 \n",
+ "The cell [2][3] i.e. 1886060 has 14 \n",
+ "The cell [2][4] i.e. 1886048 has 15 \n",
+ "The cell [3][0] i.e. 1886030 has 16 \n",
+ "The cell [3][1] i.e. 1886018 has 17 \n",
+ "The cell [3][2] i.e. 1886000 has 18 \n",
+ "The cell [3][3] i.e. 1885fe8 has 19 \n",
+ "The cell [3][4] i.e. 1885fd0 has 20 \n",
+ "The cell [4][0] i.e. 1885fb8 has 21 \n",
+ "The cell [4][1] i.e. 1885fa0 has 22 \n",
+ "The cell [4][2] i.e. 1885f88 has 23 \n",
+ "The cell [4][3] i.e. 1885f70 has 24 \n",
+ "The cell [4][4] i.e. 1885f58 has 25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page number: 320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from array import *\n",
+ "\n",
+ "# Variable declaration\n",
+ "a = [[[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20]],\n",
+ " [[21,22,23,24,25], [26,27,28,29,30], [31,32,33,34,35], [36,37,38,39,40]]]\n",
+ "\n",
+ "# Calculation and result\n",
+ "print ('The value of a is %x ' % id(a))\n",
+ "\n",
+ "for i in range (0, 2) :\n",
+ "\tprint ('The value of a[%d] is %x ' % (i, id(a[i])))\n",
+ "\tfor j in range (0, 4) :\n",
+ "\t\tprint ('The value of a[%d][%d] is %x ' % (i, j, id(a[i][j])))\n",
+ "\tprint\n",
+ "\n",
+ "for i in range (0, 2) :\n",
+ "\tfor j in range (0, 4) : \n",
+ "\t\tfor k in range (0, 5) :\n",
+ "\t\t\tprint ('The cell [%d][%d][%d] i.e. %x has %d ' % (i, j, k, id(a[i][j][k]), a[i][j][k]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of a is 7f55de4772d8 \n",
+ "The value of a[0] is 7f55de486b90 \n",
+ "The value of a[0][0] is 7f55de4db368 \n",
+ "The value of a[0][1] is 7f55de48f050 \n",
+ "The value of a[0][2] is 7f55de4db3f8 \n",
+ "The value of a[0][3] is 7f55de4c7908 \n",
+ "\n",
+ "The value of a[1] is 7f55de477320 \n",
+ "The value of a[1][0] is 7f55de4ff3f8 \n",
+ "The value of a[1][1] is 7f55de477290 \n",
+ "The value of a[1][2] is 7f55de4773b0 \n",
+ "The value of a[1][3] is 7f55de477368 \n",
+ "\n",
+ "The cell [0][0][0] i.e. 1886198 has 1 \n",
+ "The cell [0][0][1] i.e. 1886180 has 2 \n",
+ "The cell [0][0][2] i.e. 1886168 has 3 \n",
+ "The cell [0][0][3] i.e. 1886150 has 4 \n",
+ "The cell [0][0][4] i.e. 1886138 has 5 \n",
+ "The cell [0][1][0] i.e. 1886120 has 6 \n",
+ "The cell [0][1][1] i.e. 1886108 has 7 \n",
+ "The cell [0][1][2] i.e. 18860f0 has 8 \n",
+ "The cell [0][1][3] i.e. 18860d8 has 9 \n",
+ "The cell [0][1][4] i.e. 18860c0 has 10 \n",
+ "The cell [0][2][0] i.e. 18860a8 has 11 \n",
+ "The cell [0][2][1] i.e. 1886090 has 12 \n",
+ "The cell [0][2][2] i.e. 1886078 has 13 \n",
+ "The cell [0][2][3] i.e. 1886060 has 14 \n",
+ "The cell [0][2][4] i.e. 1886048 has 15 \n",
+ "The cell [0][3][0] i.e. 1886030 has 16 \n",
+ "The cell [0][3][1] i.e. 1886018 has 17 \n",
+ "The cell [0][3][2] i.e. 1886000 has 18 \n",
+ "The cell [0][3][3] i.e. 1885fe8 has 19 \n",
+ "The cell [0][3][4] i.e. 1885fd0 has 20 \n",
+ "The cell [1][0][0] i.e. 1885fb8 has 21 \n",
+ "The cell [1][0][1] i.e. 1885fa0 has 22 \n",
+ "The cell [1][0][2] i.e. 1885f88 has 23 \n",
+ "The cell [1][0][3] i.e. 1885f70 has 24 \n",
+ "The cell [1][0][4] i.e. 1885f58 has 25 \n",
+ "The cell [1][1][0] i.e. 1885f40 has 26 \n",
+ "The cell [1][1][1] i.e. 1885f28 has 27 \n",
+ "The cell [1][1][2] i.e. 1885f10 has 28 \n",
+ "The cell [1][1][3] i.e. 1885ef8 has 29 \n",
+ "The cell [1][1][4] i.e. 1885ee0 has 30 \n",
+ "The cell [1][2][0] i.e. 1885ec8 has 31 \n",
+ "The cell [1][2][1] i.e. 1885eb0 has 32 \n",
+ "The cell [1][2][2] i.e. 1885e98 has 33 \n",
+ "The cell [1][2][3] i.e. 1885e80 has 34 \n",
+ "The cell [1][2][4] i.e. 1885e68 has 35 \n",
+ "The cell [1][3][0] i.e. 1886618 has 36 \n",
+ "The cell [1][3][1] i.e. 1886600 has 37 \n",
+ "The cell [1][3][2] i.e. 18865e8 has 38 \n",
+ "The cell [1][3][3] i.e. 18865d0 has 39 \n",
+ "The cell [1][3][4] i.e. 18865b8 has 40 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3, Page number: 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def readdata (a, num) :\n",
+ "\twhile num > 0 :\n",
+ "\t\ta[num-1] = int(raw_input('Enter value in cell[%d] ' % num))\n",
+ "\t\tnum = num - 1\n",
+ "\t\t\n",
+ "def printdata (a, num) :\n",
+ "\twhile num > 0 :\n",
+ "\t\tprint ('Value in cell[%d] is %d ' % (num, a[num-1]))\n",
+ "\t\tnum = num - 1\n",
+ "\n",
+ "n = int(raw_input('Enter the number of elements '))\n",
+ "a = [0 for i in xrange(n)]\n",
+ "readdata (a, n)\n",
+ "print\n",
+ "printdata (a, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of elements 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[3] 30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[2] 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[1] 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value in cell[3] is 30 \n",
+ "Value in cell[2] is 20 \n",
+ "Value in cell[1] is 10 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page number: 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def readdata (a, n) :\n",
+ "\twhile n > 0 :\n",
+ "\t\ta[n-1] = int(raw_input('Enter value in cell[%d] ' % n))\n",
+ "\t\tn = n - 1\n",
+ "\t\t\n",
+ "def printdata (a, n) :\n",
+ "\twhile n > 0 :\n",
+ "\t\tprint ('Value in cell[%d] is %d ' % (n, a[n-1]))\n",
+ "\t\tn = n - 1\n",
+ "\n",
+ "n = int(raw_input('Enter the number of elements '))\n",
+ "a = [0 for i in xrange(n)]\n",
+ "readdata (a, n)\n",
+ "print\n",
+ "printdata (a, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of elements 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[5] 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[4] 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[3] 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[2] 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[1] 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value in cell[5] is 1 \n",
+ "Value in cell[4] is 2 \n",
+ "Value in cell[3] is 3 \n",
+ "Value in cell[2] is 4 \n",
+ "Value in cell[1] is 5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5, Page number: 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "global n\n",
+ "n = 0\n",
+ "\n",
+ "def makearray (n) :\n",
+ "\tn = int(raw_input('Enter the number of elements '))\t\n",
+ "\treturn n\n",
+ "\t\n",
+ "def readdata (a, n) :\n",
+ "\twhile n > 0 :\n",
+ "\t\ta[n-1] = int(raw_input('Enter value in cell[%d] ' % n))\n",
+ "\t\tn = n - 1\n",
+ "\t\t\n",
+ "def printdata (a, n) :\n",
+ "\twhile n > 0 :\n",
+ "\t\tprint ('Value in cell[%d] is %d ' % (n, a[n-1]))\n",
+ "\t\tn = n - 1\n",
+ "\t\t\n",
+ "n = makearray (n)\n",
+ "a = [0 for i in xrange(n)]\n",
+ "readdata (a, n)\n",
+ "print\n",
+ "printdata (a, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of elements 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[4] 400\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[3] 300\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[2] 200\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value in cell[1] 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value in cell[4] is 400 \n",
+ "Value in cell[3] is 300 \n",
+ "Value in cell[2] is 200 \n",
+ "Value in cell[1] is 100 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6, Page number: 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration, calculation and result\n",
+ "string = raw_input('Enter the string: ')\n",
+ "\n",
+ "rev_string = reversed(string)\n",
+ "\n",
+ "if list(string) == list(rev_string) :\n",
+ "\tprint ('%s is a PALINDROME ' % string)\n",
+ "else :\n",
+ "\tprint ('%s is not a PALINDROME ' % string)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the string: malayalam\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "malayalam is a PALINDROME \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7, Page number: 337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def readdata (a, n) :\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\ta[i] = int(raw_input('Enter data in cell [%d] ' % i))\n",
+ "\treturn a\n",
+ "\n",
+ "def bubble (a, n) :\n",
+ "\tfor p in range (0, n) :\n",
+ "\t\tfor i in range (0, n-1-p) :\n",
+ "\t\t\tif a[i] > a[i+1] :\n",
+ "\t\t\t\ttemp = a[i]\n",
+ "\t\t\t\ta[i] = a[i+1]\n",
+ "\t\t\t\ta[i+1] = temp\n",
+ "\treturn a\n",
+ "\n",
+ "def printdata (a, n) :\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\tprint ('The data in cell [%d] is %d ' % (i, a[i]))\n",
+ "\n",
+ "n = int(raw_input('Enter the number of elements to be entered: '))\n",
+ "a = [0] * n\n",
+ "a = readdata (a, n)\n",
+ "a = bubble (a, n)\n",
+ "print ('\\nThe sorted data is ')\n",
+ "printdata (a, n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of elements to be entered: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [0] 46\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [1] 75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [2] 68\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [3] 34\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter data in cell [4] 49\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The sorted data is \n",
+ "The data in cell [0] is 34 \n",
+ "The data in cell [1] is 46 \n",
+ "The data in cell [2] is 49 \n",
+ "The data in cell [3] is 68 \n",
+ "The data in cell [4] is 75 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page number: 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration, calculation and result\n",
+ "i = 6\n",
+ "c = 'a'\n",
+ "\n",
+ "the_data = i\n",
+ "print ('the_data points to the integer value %d ' % the_data)\n",
+ "\n",
+ "the_data = c\n",
+ "print ('the_data points to the character value %c ' % the_data)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the_data points to the integer value 6 \n",
+ "the_data points to the character value a \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.9, Page number: 343"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "marks = [[0 for x in xrange(5)] for x in xrange(5)]\n",
+ "avg = 0\n",
+ "percent = [0 for x in xrange(5)]\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readncompute (marks, percent, avg) :\n",
+ "\tno_of_students = int(raw_input('How many students marks do you want to enter? '))\n",
+ "\tfor i in range (0, no_of_students) :\n",
+ "\t\tprint ('\\nEnter marks of 5 subjects for roll no. %d ' % (i+1))\n",
+ "\t\tfor j in range (0, 5) :\n",
+ "\t\t\tmarks[i][j] = int(raw_input('Subject %d: ' % (j+1)))\n",
+ "\t\t\tpercent[i] = percent[i] + marks[i][j]\n",
+ "\t\t\n",
+ "\t\tpercent[i] = percent[i]/5\n",
+ "\t\tavg = avg + percent[i]\n",
+ "\treturn avg/no_of_students, no_of_students\n",
+ "\n",
+ "def printdata (score, per, avg, no_of_students) :\n",
+ "\tfor i in range (0, no_of_students) :\n",
+ "\t\tprint ('\\nMarks for roll no. %d are ' % (i+1))\n",
+ "\t\tfor j in range (0, 5) :\n",
+ "\t\t\tprint ('%d ' % score[i][j])\n",
+ "\t\tprint ('Percentage for roll no. is %.2f ' % per[i])\n",
+ "\t\tif per[i] < avg :\n",
+ "\t\t\tprint ('Below average')\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('Above average')\n",
+ "\n",
+ "average, nos = readncompute(marks, percent, avg)\n",
+ "print ('\\nThe average marks are %.2f' % average)\n",
+ "printdata (marks, percent, average, nos)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students marks do you want to enter? 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for roll no. 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1: 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2: 76\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3: 54\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4: 83\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5: 94\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for roll no. 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1: 84\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2: 62\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3: 94\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4: 73\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5: 62\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The average marks are 74.00\n",
+ "\n",
+ "Marks for roll no. 1 are \n",
+ "65 \n",
+ "76 \n",
+ "54 \n",
+ "83 \n",
+ "94 \n",
+ "Percentage for roll no. is 74.00 \n",
+ "Above average\n",
+ "\n",
+ "Marks for roll no. 2 are \n",
+ "84 \n",
+ "62 \n",
+ "94 \n",
+ "73 \n",
+ "62 \n",
+ "Percentage for roll no. is 75.00 \n",
+ "Above average\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10, Page number: 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Variable declaration\n",
+ "marks = [[0 for x in xrange(5)] for x in xrange(5)]\n",
+ "avg = 0\n",
+ "percent = [0 for x in xrange(5)]\n",
+ "\n",
+ "# Function declaration, calculation and result\n",
+ "def readncompute (marks, percent, avg) :\n",
+ "\tno_of_students = int(raw_input('How many students marks do you want to enter? '))\n",
+ "\tfor i in range (0, no_of_students) :\n",
+ "\t\tprint ('\\nEnter marks of 5 subjects for roll no. %d ' % (i+1))\n",
+ "\t\tfor j in range (0, 5) :\n",
+ "\t\t\tmarks[i][j] = int(raw_input('Subject %d: ' % (j+1)))\n",
+ "\t\t\tpercent[i] = percent[i] + marks[i][j]\n",
+ "\t\t\n",
+ "\t\tpercent[i] = percent[i]/5\n",
+ "\t\tavg = avg + percent[i]\n",
+ "\treturn avg/no_of_students, no_of_students\n",
+ "\n",
+ "def printdata (score, per, avg, no_of_students) :\n",
+ "\tfor i in range (0, no_of_students) :\n",
+ "\t\tprint ('\\nMarks for roll no. %d are ' % (i+1))\n",
+ "\t\tfor j in range (0, 5) :\n",
+ "\t\t\tprint ('%d ' % score[i][j])\n",
+ "\t\tprint ('Percentage for roll no. is %.2f ' % per[i])\n",
+ "\t\tif per[i] < avg :\n",
+ "\t\t\tprint ('Below average')\n",
+ "\t\telse :\n",
+ "\t\t\tprint ('Above average')\n",
+ "\n",
+ "average, nos = readncompute(marks, percent, avg)\n",
+ "print ('\\nThe average marks are %.2f' % average)\n",
+ "printdata (marks, percent, average, nos)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many students marks do you want to enter? 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for roll no. 1 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1: 65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2: 76\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3: 54\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4: 32\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5: 89\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter marks of 5 subjects for roll no. 2 \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 1: 76\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 2: 86\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 3: 43\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 4: 32\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subject 5: 21\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The average marks are 57.00\n",
+ "\n",
+ "Marks for roll no. 1 are \n",
+ "65 \n",
+ "76 \n",
+ "54 \n",
+ "32 \n",
+ "89 \n",
+ "Percentage for roll no. is 63.00 \n",
+ "Above average\n",
+ "\n",
+ "Marks for roll no. 2 are \n",
+ "76 \n",
+ "86 \n",
+ "43 \n",
+ "32 \n",
+ "21 \n",
+ "Percentage for roll no. is 51.00 \n",
+ "Below average\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11, Page number: 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Function declaration, calculation and result\n",
+ "def readdata (a, n) :\n",
+ "\tfor i in range (0, n) :\n",
+ "\t\ta[i] = int(raw_input('Enter data in cell [%d] ' % i))\n",
+ "\treturn a\n",
+ "\n",
+ "def bubble (name) :\n",
+ "\tfor p in range (0, 4) :\n",
+ "\t\tfor i in range (0, 3-p) :\n",
+ "\t\t\tif name[i] > name[i+1] :\n",
+ "\t\t\t\ttemp = name[i]\n",
+ "\t\t\t\tname[i] = name[i+1]\n",
+ "\t\t\t\tname[i+1] = temp\n",
+ "\treturn name\n",
+ "\n",
+ "def printdata (name) :\n",
+ "\tfor i in range (0, 4) :\n",
+ "\t\tprint ('The data in cell [%d] is %s ' % ((i+1), name[i]))\n",
+ "\n",
+ "name = [0] * 4\n",
+ "for i in range (0, 4) :\n",
+ "\tname[i] = raw_input('Enter string[%d] ' % (i+1))\n",
+ "\n",
+ "name = bubble (name)\n",
+ "print ('\\nThe sorted data is ')\n",
+ "printdata (name)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string[1] zaheer\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string[2] ashita\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string[3] tamanna\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter string[4] purti\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The sorted data is \n",
+ "The data in cell [1] is ashita \n",
+ "The data in cell [2] is purti \n",
+ "The data in cell [3] is tamanna \n",
+ "The data in cell [4] is zaheer \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Magnifying_C/README.txt b/Magnifying_C/README.txt
new file mode 100755
index 00000000..2ec7deb7
--- /dev/null
+++ b/Magnifying_C/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Mahesh M
+Course: btech
+College/Institute/Organization: MSIT
+Department/Designation: CSE
+Book Title: Magnifying C
+Author: Arpita Gopal
+Publisher: Prentice Hall India Learning Private Limited, New Delhi
+Year of publication: 2009
+Isbn: 9788120338616
+Edition: 1 \ No newline at end of file
diff --git a/Magnifying_C/screenshots/chapter_10.png b/Magnifying_C/screenshots/chapter_10.png
new file mode 100755
index 00000000..26daa2e1
--- /dev/null
+++ b/Magnifying_C/screenshots/chapter_10.png
Binary files differ
diff --git a/Magnifying_C/screenshots/chapter_2.png b/Magnifying_C/screenshots/chapter_2.png
new file mode 100755
index 00000000..c7b049ba
--- /dev/null
+++ b/Magnifying_C/screenshots/chapter_2.png
Binary files differ
diff --git a/Magnifying_C/screenshots/chapter_6.png b/Magnifying_C/screenshots/chapter_6.png
new file mode 100755
index 00000000..585a8ed4
--- /dev/null
+++ b/Magnifying_C/screenshots/chapter_6.png
Binary files differ
diff --git a/Magnifying_C/screenshots/ss_1.png b/Magnifying_C/screenshots/ss_1.png
new file mode 100755
index 00000000..c9ed06ce
--- /dev/null
+++ b/Magnifying_C/screenshots/ss_1.png
Binary files differ
diff --git a/Magnifying_C/screenshots/ss_2.png b/Magnifying_C/screenshots/ss_2.png
new file mode 100755
index 00000000..5fc014e9
--- /dev/null
+++ b/Magnifying_C/screenshots/ss_2.png
Binary files differ
diff --git a/Magnifying_C/screenshots/ss_3.png b/Magnifying_C/screenshots/ss_3.png
new file mode 100755
index 00000000..bd465ad3
--- /dev/null
+++ b/Magnifying_C/screenshots/ss_3.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/Chapter1.ipynb b/Mass_-_Transfer_Operations/Chapter1.ipynb
new file mode 100755
index 00000000..3d150815
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter1.ipynb
@@ -0,0 +1,76 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a429839b93fda73811b080ddf18c202362ff24ca9ec207904626c7313297633e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1 : The Mass-Transfer Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.1: Page 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 1.1\n",
+ "# Page: 17\n",
+ "\n",
+ "print'Illustration 1.1 - Page: 17\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# Taking conversion factor from table 1.5 (Pg 15)\n",
+ "# viscosity: [(lb/ft.h)]*4.134*10^(-4) [kg/m.s] (Pg 15)\n",
+ "# time: [h] = 3600.0 [s]\n",
+ "# Density: [lb/cubic feet]*16.09 = [kg/cubic m] (Pg 15)\n",
+ "# Length: [ft]*0.3048 = [m]\n",
+ "N = (2.778*10**(-4))*(30600/(1/(0.3048**(3.0/2))))*((1/(4.134*(10**(-4))*16.019))**0.111)*(((1/16.019)/(1/16.019))**0.26);\n",
+ "print'The coeffecient for S.I. Unit is',round(N,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 1.1 - Page: 17\n",
+ "\n",
+ "\n",
+ "The coeffecient for S.I. Unit is 2.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter10.ipynb b/Mass_-_Transfer_Operations/Chapter10.ipynb
new file mode 100755
index 00000000..69678c20
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter10.ipynb
@@ -0,0 +1,1344 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aee8bd5a480bd89ea66526c53a540baecd3d515c3125767ad2bbf6eed92072f7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Liquid Extraction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.1: Page 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.1\n",
+ "# Page: 494\n",
+ "\n",
+ "print'Illustration 10.1 - Page: 494\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "xF = 0.30;# [mol fraction]\n",
+ "yS = 0;# [mol fraction]\n",
+ "S1 = 40.0;# [kg]\n",
+ "B1 = 40.0;# [kg]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data at 20 OC:\n",
+ "# Wa: Wt. percent of a\n",
+ "# Wb: Wt. percent of b\n",
+ "# Wc: Wt. percent of c\n",
+ "# Data1 = [Wc Wa Wb]\n",
+ "# Data1: water layer\n",
+ "Data1 = numpy.array([(0.69 ,98.1, 1.2),(1.41, 97.1 ,1.5),(2.89 ,95.5 ,1.6),(6.42 ,91.7 ,1.9),(13.30, 84.4, 2.3),(25.50 ,71.1 ,3.4),(36.70 ,58.9 ,4.4),(44.30 ,45.1 ,10.6),(46.40 ,37.1 ,16.5)])\n",
+ "# Data2: isopropyl ether layer\n",
+ "Data2 = numpy.array([(0.18 ,0.5 ,99.3),(0.37, 0.7 ,98.9),(0.79, 0.8, 98.4),(1.93 ,1, 97.1),(4.82, 1.9, 93.3),(11.40, 3.9, 84.7),(21.60, 6.9, 71.5),(31.10, 10.8, 58.1),(36.20 ,15.1 ,48.7)])\n",
+ "\n",
+ "plt.plot((Data1[:,2])/100,(Data1[:,0])/100,label=\"x Vs fraction ether\")\n",
+ "plt.plot((Data2[:,2])/100,(Data2[:,0])/100,label=\"y Vs fraction ether\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='lower center');\n",
+ "ax=pylab.gca()\n",
+ "ax.set_xlabel(\"Wt fraction of isopropyl ether\");\n",
+ "ax.set_ylabel(\"Wt fraction of acetic acid\");\n",
+ "plt.ylim((0,0.3))\n",
+ "plt.xlim((0,1))\n",
+ "plt.show();\n",
+ "# x: Wt fraction of acetic acid in water layer.\n",
+ "# y: Wt fraction of acetic acid in isopropyl layer.\n",
+ "\n",
+ "# The rectangular coordinates of Fig 10.9(a) will be used but only upto x = 0.30\n",
+ "\n",
+ "# Stage 1:\n",
+ "F = 100;# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "M1 = F+S1;# [kg]\n",
+ "# From Eqn. 10.5:\n",
+ "xM1 = ((F*xF)+(S1*yS))/M1;\n",
+ "# From Fig. 10.15 (Pg 495):\n",
+ "# Point M1 is located on the line FB and with the help of tie line passing through M1:\n",
+ "x1 = 0.258;# [mol fraction]\n",
+ "y1 = 0.117;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E1 = (M1*(xM1-x1)/(y1-x1));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R1 = M1-E1;# [kg]\n",
+ "\n",
+ "# Stage 2:\n",
+ "S2 = 40;# [kg]\n",
+ "B2 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M2 = R1+B2;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM2 = ((R1*x1)+(S2*yS))/M2;\n",
+ "# Point M2 is located on the line R1B and the tie line passing through R2E2 through M2:\n",
+ "x2 = 0.227;\n",
+ "y2 = 0.095;\n",
+ "# From Eqn. 10.8:\n",
+ "E2 = (M2*(xM2-x2)/(y2-x2));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R2 = M2-E2;# [kg]\n",
+ "\n",
+ "# Stage 3:\n",
+ "S3 = 40;# [kg]\n",
+ "B3 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M3 = R2+B3;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM3 = ((R2*x2)+(S3*yS))/M3;\n",
+ "# Point M3 is located on the line R2B and the tie line passing through R3E3 through M3:\n",
+ "x3 = 0.20;# [mol fraction]\n",
+ "y3 = 0.078;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E3 = (M3*(xM3-x3)/(y3-x3));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R3 = M3-E3;# [kg]\n",
+ "Ac = x3*R3;\n",
+ "print\"The composited extract is\",round((E1+E2+E3),2),\" kg\\n\"\n",
+ "print\"The acid content is \",round(((E1*y1)+(E2*y2)+(E3*y3)),2),\" kg\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# If an extraction to give the same final raffinate concentration were to be done in single stage, the point M would be at the intersection of tie line R3E3 and the line BF.\n",
+ "x = 0.20;# [mol fraction]\n",
+ "xM = 0.12;# [mol fraction]\n",
+ "# From Eqn. 10.6:\n",
+ "S = F*(xF-xM)/(xM-yS);# [kg]\n",
+ "print round(S,2),\"kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.1 - Page: 494\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nhs2vBOrlc6whwIB8lmu3bt10yJAhOmTIEH322Wf1nnvStXt3Jynp6emanp6em6R4ns957sfxvXyI\nnXvsSzeVxmWXXaYnnniitm7dOvfLLj9ffPGFJicn6969e1VV9fTTT9cRI0bkrm/cuLG+9NJLun37\n9kLPl56enm+BsWbNmgL32bp1q4qI/vnnn5qdna1VqlTRpUuXHrJdzrEKKjDeeOMNPe200w7ap0OH\nDjp27FhVVU1NTdXHH388d92oUaM0LS0t35huu+02feCBBw5adtxxx+lnn32mqgUXGOvXr89d1q5d\nO33rrbdUVbVFixYHbb9hwwatUKGCZmdne8pR+HutrN/Pzz77bNR8Xouan756ujbo3UCnz5peJsdL\nT0/Xbt265X5fRmOBUR74EacTw4ruVULLPNtcBHykoQJmrvu8KlDdfV4N+BLolM85NK/nn1e9445D\nFse98DdKWYuF//omT56sIqKvvPJKkds2b95cJ02apKtXr9YKFSro//73v9x18+fP1y5dumjNmjX1\n7LPP1jlz5uR7jIIKjP379+cuy87O1oEDB2qzZs20Ro0ampycrCKiP/30k/7+++8qIrpr165Djl1U\ngfHkk0/qVVddddA+1157rT7xxBOq6hQYr776ar775tW5c2etWrWqJicn507VqlXTSZMmqWrBBUZ4\nbOHnq1KlSu5rzZmqVKmiGzZsyDdHefn5XvPzM+KHyyddro99+pgvxy5pgeFbG4aq7gd6A9OB74C3\nVHWFiPQSkV7uNh8BP4nIauAl4A539/rA5yKyGPga+FBVZ3g5b6L+SioW6mf9snPnTvr3788tt9zC\nkCFDcuvMC3LjjTfyxhtvMH78eNLS0qhbt27uur/85S+8//77bNq0icsvv5yrr766WLGEd9Q4YcIE\nJk+ezOzZs9m+fTtr1qwBnH/S6tSpQ+XKlVm9enWhx8hPw4YN+fnnnw9a9vPPP9OwYd4mwqI1btyY\n++67j61bt+ZOO3fu5JprrvEUS37HmzZt2kHH2717Nw0aNMjdJqjOLGPtM5Iz0NIv238JOpRcvt6H\noaofq+pxqtpcVf/pLntJVV8K26a3u761qi50l/2kqm3c6cScfb3Ys8d+JZVo+vXrR7t27Xj55Ze5\n+OKLue222wrd/sYbb2TmzJm88sordOvWLXd5VlYWEyZMYPv27SQlJVG9enWSkpJKHNfOnTupVKkS\n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\niRUYxhhjPPl/ptoLDFmMWJUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x789db00>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composited extract is 135.05 kg\n",
+ "\n",
+ "The acid content is 13.01 kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "150.0 kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2: Page 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.2\n",
+ "# Page: 497\n",
+ "\n",
+ "print'Illustration 10.2 - Page: 497\\n\\n'\n",
+ "\n",
+ "print'Illustration 10.2 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:kerosene c:Nicotine\n",
+ "xF = 0.01;# [wt fraction nicotine]\n",
+ "F = 100.0;# [kg]\n",
+ "B = 150.0;# [kg]\n",
+ "#******#\n",
+ "\n",
+ "# Equilibrium data:\n",
+ "# x_prime = kg nicotine/kg water\n",
+ "# y_prime = kg nicotine/kg kerosene\n",
+ "# Data = [x_prime y_prme]\n",
+ "Data = numpy.array([[0 ,0],[0.001011 ,0.000807],[0.00246, 0.001961],[0.00502, 0.00456],[0.00751, 0.00686],[0.00998 ,0.00913],[0.0204, 0.01870]])\n",
+ "xF_prime = xF/(1-xF);# kg nicotine/kg water\n",
+ "A = F*(1-xF);# [kg]\n",
+ "AbyB = A/B;\n",
+ "\n",
+ "def f64(x):\n",
+ " return -AbyB*(x-xF)\n",
+ "x = numpy.arange(0,0.01+0.001,0.001);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium line\")\n",
+ "plt.plot(x,f64(x),label=\"Operating Line\");\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.2(a)\")\n",
+ "plt.show()\n",
+ "# The operating line and equilibrium line intersect at:\n",
+ "x1_prime = 0.00425;# [kg nicotine/kg water]\n",
+ "y1_prime = 0.00380;# [kg nicotine/kg water]\n",
+ "extract = A*(0.01011-x1_prime);\n",
+ "print extract*100,\"% of nicotine is extracted.\\n\\n\"\n",
+ "\n",
+ "print'Illustration 10.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "B = 50.0;# [kg]\n",
+ "# For each stage:\n",
+ "AbyB = A/B;\n",
+ "def f65(x1):\n",
+ " return -AbyB*(x1-xF)\n",
+ "x1 = numpy.arange(0,0.01+0.001,0.001)\n",
+ "def f66(x2):\n",
+ " return -AbyB*(x2-0.007)\n",
+ "x2 = numpy.arange(0,0.01+0.001,0.001)\n",
+ "def f67(x3) :\n",
+ " return -AbyB*(x3-0.005)\n",
+ "x3 =numpy.arange(0,0.01+0.001,0.001)\n",
+ "\n",
+ "plot(Data[:,0],Data[:,1],label=\"Equilibrium line\")\n",
+ "plt.plot(x1,f65(x1),label=\"Operating Line from xF\")\n",
+ "plt.plot(x2,f66(x2),label=\"Operating Line from 0.007\")\n",
+ "plt.plot(x3,f67(x3),label=\"Operating Line from 0.005\")\n",
+ "plt.grid('on');\n",
+ "legend(loc=\"upper right\");\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0, 0.010))\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.2(b)\")\n",
+ "plt.show()\n",
+ "# The final raffinate composition:\n",
+ "x3_prime = 0.0034;# [kg nicotine/kg water]\n",
+ "extract = A*(0.01011-x3_prime);\n",
+ "print extract*100,\" % of nicotine is extracted.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.2 - Page: 497\n",
+ "\n",
+ "\n",
+ "Illustration 10.2 (a)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7b9c278>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "58.014 % of nicotine is extracted.\n",
+ "\n",
+ "\n",
+ "Illustration 10.2 (b)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\na67R5557Ttu0aaNlypTRG264QY+4/R/+/PPP2rp1a42IiNDGjRtrQkJClv21b99eQ0NDtXjx4lqm\nTBndunWr9ujRQ/v06aM33nijlipVSpcsWaKbN2/Wa665RiMiIrRhw4b6+eefp7fRo0cP7du3r954\n441aunRpveqqq/TQoUM6YMAAjYiI0EsuuUTXrl2bZf8//fSTVqhQQfft26eqquvWrdPIyEhNTExU\nVdWYmBhdsmRJlnW9SXb/J67r9n0W29mYPx12ftAs/usvjfn5Z01KTratzYKydOlS+xobNUq1UyfV\n1FT72iwABR2bPzuZL774QosUKZL+QepOjx49tHv37qpqOYqwsDCdM2eOJicn69ixY7VWrVqanJys\nKSkp2qxZMx0xYoRevHhRd+7cqbVr19bFixdnqDtv3jxVVT179qyuXr1af/nlF01JSdHdu3drgwYN\ndPz48el9Z3YKmZ1MTEyMXnHFFXro0CE9evSoNmjQQCdNmpQ+psqVK+vmzZv1zJkzes8992hISIgt\nTqZu3bq6bds2PXv2rLZr104HDx6sqqr79+/X8uXL6xdffKGqql9//bWWL19e//zzT4/67NGjh5Yt\nW1aXLVumqqonT57UOnXq6KhRo/TixYv67bffapkyZdIdQY8ePbRChQq6Zs0aPXfunF577bVas2ZN\nfffddzU1NVWfffZZbd++fZZ9q6oOHTpUr732Wj1z5oxedtll+vrrr2f43X7zzTfZ1vUWvnIyJlzm\nATeUK0eb8HCG7drltCne4Ykn4MABmDXLaUt8hjwvBT7yw5EjR6hQoUKWGZUrV67MkSNH0s9btGjB\n7bffTmhoKAMHDuTcuXP8/PPPrFy5kiNHjvDss89SpEgRatWqxcMPP8wst/fvyiuv5OabbwagePHi\nNGvWjFatWhESEkLNmjWJj4/nu+++y5PtAwYMoHLlykRGRtK1a1fWrVsHWJLRDz74IA0aNKBEiRI8\n//zzaV/0CoSI8MADD1C3bl2KFy9Ot27d0vt877336Ny5M506dQLguuuuo0WLFixatCjb9txtEhFu\nvfVWWrduDcC6des4ffo0gwcPpkiRIrRv354uXbpkkKS+/fbbadq0KcWKFeO2226jVKlS3HvvvekS\n02vXrs227+HDh3PixAlatWpFjRo16NevXwa73OW4b7/99vz9wvyUIk4bECiMq1uXRitX8u9KlWhW\n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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa275160>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "66.429 % of nicotine is extracted.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.3: Page 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.3\n",
+ "# Page: 502\n",
+ "\n",
+ "print'Illustration 10.3 - Page: 502\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "F = 8000;# [kg/h]\n",
+ "xF = 0.30;# [wt. fraction acetic acid]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 10.1 (Pg 494)\n",
+ "# Equilibrium Data:\n",
+ "# Eqb = [y_star*100 x*100]\n",
+ "Eqb = numpy.array([[0.18 ,0.69],[0.37 ,1.41],[0.79 ,2.89],[1.93, 6.42],[4.82, 13.30],[11.40, 25.50],[21.60 ,36.70],[31.10 ,44.30],[36.20, 46.40]]);\n",
+ "\n",
+ "# Solution(a)\n",
+ "\n",
+ "# From Figure 10.23 (Pg 503):\n",
+ "# For minimum solvent rate:\n",
+ "y1 = 0.143;# [Wt fraction of acetic acid in isopropyl ether layer]\n",
+ "xM = 0.114;# [Wt fraction of acetic acid in water layer]\n",
+ "# From Eqn. 10.24:\n",
+ "Bm = (F*xF/xM)-F;# [kg/h]\n",
+ "print\"Minimum solvent rate: \",Bm,\" kg/h\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "B = 20000.0;# [kg solvent/h]\n",
+ "yS = 0;\n",
+ "S = B;\n",
+ "# From Eqn 10.24:\n",
+ "xM = ((F*xF)+(S*yS))/(F+S);\n",
+ "# From Fig. 10.23 (Pg 503):\n",
+ "y1 = 0.10;\n",
+ "# Operating curve data:\n",
+ "# Operat = [YsPlus1 Xs]\n",
+ "Operat = numpy.array([[0 ,0.02],[0.01 ,0.055],[0.02 ,0.09],[0.04 ,0.150],[0.06, 0.205],[0.08, 0.250],[0.1 ,0.3]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,1]/100,Eqb[:,0]/100,label=\"Operating Line\")\n",
+ "plt.plot(Operat[:,1],Operat[:,0],label=\"Equilibrium Line\")\n",
+ "plt.grid('on');\n",
+ "plt.ylim((0,y1));\n",
+ "plt.xlim((0,xF));\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"Wt. fraction acetic acid in water solution\");\n",
+ "plt.ylabel(\"Wt. fraction acetic acid in isopropyl ether solution\");\n",
+ "plt.title(\"Solution 10.3\")\n",
+ "plt.show()\n",
+ "# From Figure scf(22):\n",
+ "xNp = 0.02;\n",
+ "Np = 7.6;\n",
+ "# By acid balance:\n",
+ "M = B+F;\n",
+ "E1 = M*(xM-xNp)/(y1-xNp);# [kg/h]\n",
+ "RNp = M-E1;# [kg/h]\n",
+ "print\"Number of theoretical Stages: \\n\",Np\n",
+ "print\"Weight of the extract:\",E1,\"kg/h\\n\"\n",
+ "print\"Weight of the raffinate \",RNp,\" kg/h\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.3 - Page: 502\n",
+ "\n",
+ "\n",
+ "Minimum solvent rate: 13052.6315789 kg/h\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x987d7f0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical Stages: \n",
+ "7.6\n",
+ "Weight of the extract: 23000.0 kg/h\n",
+ "\n",
+ "Weight of the raffinate 5000.0 kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.4: Page 506"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.4\n",
+ "# Page: 506\n",
+ "\n",
+ "print'Illustration 10.4 - Page: 506\\n\\n'\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "import numpy\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:kerosene c:Nicotine\n",
+ "F = 1000.0;# [kg/h]\n",
+ "xF = 0.01;# [wt. fraction acetic acid]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data:\n",
+ "# x_prime = kg nicotine/kg water\n",
+ "# y_prime = kg nicotine/kg kerosene\n",
+ "# Eqb = [x_prime y_prme]\n",
+ "Eqb = numpy.array([[0 ,0],[0.001011, 0.000807],[0.00246, 0.001961],[0.00502 ,0.00456],[0.00751, 0.00686],[0.00998, 0.00913],[0.0204 ,0.01870]]);\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "A = 1000*(1-xF);# [kg water/h]\n",
+ "yS = 0;\n",
+ "yS_prime = 0;\n",
+ "y1_prime = 0;\n",
+ "xF_prime = xF/(1-xF);# [kg nicotine/kg water]\n",
+ "# For xF_prime = 0.0101:\n",
+ "yk = 0.0093;\n",
+ "xNp = 0.001;# [wt. fraction acetic acid]\n",
+ "xNp_prime = xNp/(1-xNp);# [kg nicotine/kg water]\n",
+ "# For infinite stages:\n",
+ "# Operating Line should pass through (xNp_prime,y1_prime) & (xF_prime,yk)\n",
+ "Operat = numpy.array([[xNp_prime, y1_prime],[xF_prime ,yk]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1],label=\"equilibrium Line\")\n",
+ "plt.plot(Operat[:,0],Operat[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.4(a)\")\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0,0.01))\n",
+ "plt.show()\n",
+ "AbyBm = (yk-y1_prime)/(xF_prime-xNp_prime);\n",
+ "Bm = A/AbyBm;# [kg kerosene/h];\n",
+ "print\"Mininmum kerosene rate: \",round(Bm,2),\" kg kerosene/h \\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "B = 1150.0;# [kg/h]\n",
+ "AbyB = A/B;\n",
+ "# From Eqn. 10.36:\n",
+ "y2_prime = ((xF_prime-xNp_prime)*AbyB)+yS_prime;# [kg nicotine/kg kerosene]\n",
+ "# Operating Line should pass through (xNp_prime,y1_prime) & (xF_prime,y2_prime)\n",
+ "Operat = numpy.array([[xNp_prime, y1_prime],[xF_prime, y2_prime]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1],label=\"equilibrium Line\")\n",
+ "plt.plot(Operat[:,0],Operat[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine/kg water\");\n",
+ "plt.ylabel(\"kg nicotine/kg kerosene\");\n",
+ "plt.title(\"Solution 10.4(b)\")\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0,0.01))\n",
+ "plt.show()\n",
+ "# From Figure:\n",
+ "Np = 8.3;\n",
+ "print\"Number of theoretical stages: \\n\",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.4 - Page: 506\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa2780b8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mininmum kerosene rate: 968.71 kg kerosene/h \n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x981e198>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical stages: \n",
+ "8.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.5: Page 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.5\n",
+ "# Page: 510\n",
+ "\n",
+ "print'Illustration 10.5 - Page: 510\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "import numpy\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:ethylbenzne b:diethylene glycol c:styrene\n",
+ "F = 1000;# [kg/h]\n",
+ "xF = 0.5;# [Wt. fraction styrene]\n",
+ "xPE = 0.9;# [kg styrene/kg hydrocarbon]\n",
+ "xRNp = 0.1;# [kg styrene/kg hydrocarbon]\n",
+ "#******#\n",
+ "\n",
+ "# X: kg styrene/kg hydrocarbon\n",
+ "# Y: kg styrene/kg hydrocarbon\n",
+ "# N:kg glycol/kg hydrocarbon\n",
+ "# Equilibrium data:\n",
+ "# Hydrocarbon rich solutions:\n",
+ "# Eqb1 = [X N]\n",
+ "Eqb1 = numpy.array([[0 ,0.00675],[0.0870 ,0.00817],[0.1833, 0.00938],[0.288 ,0.01010],[0.384 ,0.01101],[0.458, 0.01215],[0.464 ,0.01215],[0.561 ,0.01410],[0.573, 0.01405],[0.781 ,0.01833],[1 ,0.0256]]);\n",
+ "# Solvent rich solutions:\n",
+ "# Eqb2 = [Y_star N]\n",
+ "Eqb2 = numpy.array([[0 ,8.62],[0.1429 ,7.71],[0.273, 6.81],[0.386, 6.04],[0.480, 5.44],[0.557, 5.02],[0.565, 4.95],[0.655, 4.46],[0.674, 4.37],[0.833, 3.47],[1 ,2.69]]);\n",
+ "\n",
+ "plt.plot(Eqb1[:,0],Eqb1[:,1],label=\"X Vs N\")\n",
+ "plt.plot(Eqb2[:,0],Eqb2[:,1],label=\"Y Vs N\")\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper right');\n",
+ "plt.xlabel(\"kg styrene / kg hydrocarbon\");\n",
+ "plt.ylabel(\"kg diethylene glycol / kg hydrocarbon\");\n",
+ "plt.title(\"Equilibrium Data\")\n",
+ "# In Fig. 10.31 (Pg 512):\n",
+ "# Point E1 is located.\n",
+ "NE1 = 3.10;\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "# From Fig. 10.30 (Pg 511):\n",
+ "Np = 9.5;\n",
+ "print\"Minimum number of theoretical stages:\\n\",Np\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "# The tie line when extended passes through F provides the minimum reflux ratio.\n",
+ "# From the plot:\n",
+ "N_deltaEm = 20.76;\n",
+ "# From Eqn. 10.48:\n",
+ "Ratiom = (N_deltaEm-NE1)/NE1;# [kg reflux/kg extract product]\n",
+ "print\"Minimum extract reflux ratio: \",round(Ratiom,3),\"kg reflux/kg extract product\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (c)\n",
+ "\n",
+ "Ratio = 1.5*Ratiom;# [kg reflux/kg extract product]\n",
+ "# From Eqn. 10.48;\n",
+ "N_deltaE = (Ratio*NE1)+NE1;\n",
+ "# Point deltaE is plotted.\n",
+ "# A straight line from deltaE through F intersects line X = 0.10 at deltaR.\n",
+ "N_deltaR = -29.6;\n",
+ "# In Fig. 10.31 (Pg 512):\n",
+ "# Random lines are drawn from deltaE for the concentrations to the right of F, and from deltaR for those to the left,and intersection of these with the solubility curves provide the coordinates of the opeating curve.\n",
+ "# The tie line data are plotted directly to provide the equilibrium curve.\n",
+ "# From Fig. 10.32 (Pg 513):\n",
+ "Np = 15.5;\n",
+ "# Feed is to be introduced in the seventh from the extract product end of cascade.\n",
+ "# From Fig. 10.31 (Pg 512):\n",
+ "XRNp = 0.10;\n",
+ "NRNp = 0.0082;\n",
+ "# Basis:1 hour.\n",
+ "# Overall plant balance:\n",
+ "# (1): PE_prime+RNp_prime = F\n",
+ "# C Balance\n",
+ "# (2): PE_prime*(1-XRNp)+RNp_prime*XRNp = F*xF\n",
+ "# Solving (1) & (2) simultaneously:\n",
+ "a = numpy.array([[1 ,1],[(1-XRNp), XRNp]]);\n",
+ "b = numpy.array([F,F*xF]);\n",
+ "soln =lin.solve(a,b)\n",
+ "PE_prime = soln[0];# [kg/h]\n",
+ "RNp_prime = soln[1];# [kg/h]\n",
+ "RO_prime = Ratio*PE_prime;# [kg/h]\n",
+ "# From Eqn 10.39:\n",
+ "E1_prime = RO_prime+PE_prime;# [kg/h]\n",
+ "BE = E1_prime*NE1;# [kg/h]\n",
+ "E1 = BE+E1_prime;# [kg/h]\n",
+ "RNp = RNp_prime*(1+NRNp);# [kg/h]\n",
+ "S = BE+(RNp_prime*NRNp);# [kg/h]\n",
+ "print\"Number of theoretical stages: \\n\",Np\n",
+ "print\"Extract Flow Rate: \",round(E1,2),\" kg/h\\n\"\n",
+ "print\"solvent Flow Rate: \",S,\" kg/h\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.5 - Page: 510\n",
+ "\n",
+ "\n",
+ "Minimum number of theoretical stages:\n",
+ "9.5\n",
+ "\n",
+ "\n",
+ "Minimum extract reflux ratio: 5.697 kg reflux/kg extract product\n",
+ "\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages: \n",
+ "15.5\n",
+ "Extract Flow Rate: 19567.58 kg/h\n",
+ "\n",
+ "solvent Flow Rate: 14799.1 kg/h\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c60cc0>"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.6: Page 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.6\n",
+ "# Page: 516\n",
+ "\n",
+ "print'Illustration 10.6 - Page: 516\\n\\n'\n",
+ "\n",
+ "import numpy.linalg as lin\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:heptane b:p-chloronitrobenzene c:o-chloronitrobenzene d:aq. methanol\n",
+ "xb = 0.4;# [Wt fraction]\n",
+ "xC = 0.60;# [Wt fraction]\n",
+ "F = 100;# [kg]\n",
+ "# The para isomer(b) favours the heptane(a) and the ortho isomer(c) favours the methanol(d).\n",
+ "# Basis: 1 hour.\n",
+ "A = 2400;# [kg/h]\n",
+ "D = 2760;# [kg/h]\n",
+ "xbW = 0.8;# [Wt fraction]\n",
+ "xbZ = 0.15;# [Wt fraction]\n",
+ "kb=1.35;\n",
+ "kc=0.835;\n",
+ "#*******#\n",
+ "\n",
+ "B = xb*F;# [kg]\n",
+ "C = F-B;# [kg]\n",
+ "# W = kg A rich product, after solvent removal\n",
+ "# Z = kg D rich product, after solvent removal\n",
+ "# B balance:\n",
+ "# (1): (0.80*W)+(0.15*Z) = B\n",
+ "# C balance:\n",
+ "# (2): (0.20*W)+(0.85*Z) = C\n",
+ "# Solving (1) & (2) simultaneously:\n",
+ "a = numpy.array([[0.80, 0.15],[0.20, 0.85]]);\n",
+ "b = [B,C];\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "Z = soln[1];\n",
+ "Wb = xbW*W;# [kg]\n",
+ "Wc = W-Wb;# [kg]\n",
+ "Zb = xbZ*Z;# [kg]\n",
+ "Zc = Z-Zb;# [kg]\n",
+ "xB1_prime = Zb/D;\n",
+ "xC1_prime = Zc/D;\n",
+ "yB1_prime = Wb/D;\n",
+ "yC1_prime = Wc/D;\n",
+ "DbyA = D/A;\n",
+ "# Equilibrium curve:\n",
+ "# First distribution coeffecient: yB_star/xB_prime = 1.35\n",
+ "def f68(x1):\n",
+ " return kb*x1\n",
+ "x1 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Second distribution coeffecient: yC_star/xC_prime = 0.835\n",
+ "def f69(x2):\n",
+ " return kc*x2\n",
+ "x2 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Operating Line, corresponding to First distribution coeffecient:\n",
+ "def f70(x3):\n",
+ " return (DbyA*x3)+yB1_prime\n",
+ "x3 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "def f71(x4):\n",
+ " return DbyA*(x4-xB1_prime)\n",
+ "x4 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Operating Line, corresponding to Second distribution coeffecient:\n",
+ "def f72(x5):\n",
+ " return (DbyA*x5)+yC1_prime\n",
+ "x5 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "def f73(x6):\n",
+ " return (DbyA)*(x6-xC1_prime);\n",
+ "x6 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "\n",
+ "\n",
+ "plot(x1,f68(x1),label=\"Equilibrium curve\")\n",
+ "plt.plot(x3,f70(x3),label=\"Operating curve\")\n",
+ "plt.plot(x4,f71(x4),label=\"Operating curve\");\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"xB_prime\");\n",
+ "plt.ylabel(\"yB_prime\");\n",
+ "plt.title(\"yB_star/xB_prime = 1.35\");\n",
+ "plt.xlim((0,0.05))\n",
+ "plt.ylim((0,0.07))\n",
+ "plt.show()\n",
+ "\n",
+ "plot(x2,f69(x2),label=\"Equilibrium curve\")\n",
+ "plt.plot(x5,f72(x5),label=\"Operating curve\")\n",
+ "plt.plot(x6,f73(x6),label=\"Operating curve\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"xC_prime\");\n",
+ "plt.ylabel(\"yC_prime\");\n",
+ "plt.title(\"yC_star/xC_prime = 0.835\");\n",
+ "plt.xlim((0,0.06))\n",
+ "plt.ylim((0,0.07))\n",
+ "plt.show()\n",
+ "# The stages are constructed.\n",
+ "# The feed matching is shown on Fig. 10.37 (Pg 518):\n",
+ "f_prime = 6.6;\n",
+ "fstage = 4.6;\n",
+ "print\"Number of ideal stage is \\n\",fstage+f_prime-1\n",
+ "print\"The feed stage is \",fstage,\"th from the solvent-D inlet\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.6 - Page: 516\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7b64fd0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\no8p0A6Z7n9sDn0XsmwO08D4PAYYVcg0tjKK2B4GffvpJq1Wrpv/617/22r5jxw6tXbu2Pv/886qq\nOnjwYL3ooou0Z8+eWr16dW3btq0uWrSooPy6dev0wgsv1Nq1a+uhhx6qo0aNKtiXf+xll12m+++/\nvz733HM6b948bd++vdasWVPr1q2r/fv31927d6uqaocOHVREtGrVqlqtWjV9/fXXdfbs2dqgQYOC\nczZq1EiHDx+uxxxzjNaoUUN79uypu3btKtg/bNgwrVu3rtavX1/Hjh2rIqLffvttod/Bjz/+qH36\n9NF69eppZmamnn/++aqqOm7cOD3llFP2Kht5niuuuEKvu+467datm1atWlWHDRumBx98sObm5haU\nf+ONN/SYY45RVdXc3Fx94IEHtGnTpnrAAQfoxRdfrFu2bInzTu1NkJ8pI9ws3rhYz3rhLD38icN1\n+orpSTmn9zyX7h1f2hMUewHoimuJtRK409vWF+gbUeYJb/8ioG3E9la4lluLgDeAGoWcP9aXE0hm\nzJihFStW3Oull88VV1yhvXr1UlUXBCpVqqSTJ0/WnJwcHT58uB566KGak5Ojubm52rZtW73vvvt0\nz549umrVKm3SpInOnDlzr2PfeustVVX99ddf9YsvvtC5c+dqbm6url69Wlu2bKkjR44suHb0Cz86\ngDRu3FhPOOEE3bBhg27ZskVbtmypo0ePLvDp4IMP1mXLlunOnTv10ksv1QoVKhQZQLp166aXXHKJ\nbtu2Tffs2aNz5sxR1fgCSI0aNfSTTz5RVdVdu3Zp06ZN9b333iso/6c//UmHDRumqqojR47UE088\nUdetW6e7d+/Wvn37Fny/JSWRZ2r27NkJXSsdCLNvqsHw74dfftDrp16vtR+qraM+G6W7c3Yn7dzJ\nCCAp74muqjOAGVHbxkSt9y/i2EXA8amyTe4t/fhSOrjkKZ/Nmzdz4IEHFpp6Ofjgg1mwYEHB+nHH\nHceFF14IwMCBAxkxYgSffvoplSpVYvPmzdx9992Amz726quvZuLEiZx99tkAnHTSSXTv3h2AypUr\n07Zt24LzNmrUiGuvvZYPPviAm266KW7bBwwYwMEHHwy44egXLlwIuGl4r7rqKlq2dE0H7733Xl55\n5ZVCz5E/Ze2WLVsKZh1MxpS1Z555ZsGUtY888gjgpqx94oknqFevHgCDBw+mUaNGvPTSSzaysRFY\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa272668>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of ideal stage is \n",
+ "10.2\n",
+ "The feed stage is 4.6 th from the solvent-D inlet\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.7: Page 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.7\n",
+ "# Page: 525\n",
+ "\n",
+ "print'Illustration 10.7 - Page: 525\\n\\n'\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# c:Water d:Toulene \n",
+ "Density_c = 998;# [kg/cubic m]\n",
+ "viscosity_c = 0.95*10**(-3);# [kg/m.s]\n",
+ "Dc = 2.2*10**(-9);# [square m/s]\n",
+ "Density_d = 865;# [kg/cubic m]\n",
+ "viscosity_d = 0.59*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.5*10**(-9);# [square m/s]\n",
+ "sigma = 0.022;# [N/m]\n",
+ "Dist = 20.8;# [Distribution Coeffecient]\n",
+ "d = 0.5;# [m]\n",
+ "h = 0.5;# [m]\n",
+ "di = 0.15;# [m]\n",
+ "N = 13.3;# [r/s]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "qC = 3*10**(-3);# [cubic m/s]\n",
+ "qD = 3*10**(-4);# [cubic m/s]\n",
+ "#********#\n",
+ "\n",
+ "V = math.pi*h*d**2/4;# [Vessel volume,cubic m]\n",
+ "phi_DF = qD/(qD+qC);# [Volume fraction toulene]\n",
+ "# Assume:\n",
+ "phi_Dbyphi_DF = 0.9;\n",
+ "phi_D = phi_Dbyphi_DF*phi_DF;\n",
+ "phi_W = 1-phi_D;\n",
+ "# From Eqn. 10.56:\n",
+ "Density_M = (Density_c*phi_W)+(Density_d*phi_D);# [kg/cubic m]\n",
+ "if phi_W>0.4:\n",
+ " viscosity_M = (viscosity_c/phi_W)*(1+(6*viscosity_d*phi_D/(viscosity_d+viscosity_c)));# [kg/m s]\n",
+ "else:\n",
+ " viscosity_M = (viscosity_c/phi_D)*(1-(1.5*viscosity_c*phi_W/(viscosity_d+viscosity_c)));# [kg/m s]\n",
+ "\n",
+ "# Impeller Reynold's Number:\n",
+ "IRe = (di**2*N*Density_M/viscosity_M);\n",
+ "# From Fig 6.5 (Pg 152), curve g:\n",
+ "Po = 0.72;\n",
+ "P = Po*Density_M*N**3*di**5;# [W]\n",
+ "# From Eqn. 10.61:\n",
+ "Value1 = P*qD*viscosity_c**2/(V*sigma**3);\n",
+ "Value2 = viscosity_c**3/(qD*Density_c**2*sigma);\n",
+ "Value3 = Density_c/(Density_c-Density_d);\n",
+ "Value4 = sigma**3*Density_c/(viscosity_c**4*g);\n",
+ "Value5 = viscosity_d/viscosity_c;\n",
+ "phi_Dbyphi_DF = 3.39*Value1**0.247*Value2**0.427*Value3**0.430*Value4**0.401*Value5**0.0987;\n",
+ "# The value of phi_Dbyphi_DF is sufficiently close to the value 0.90 assumed earlier.\n",
+ "phi_D = phi_Dbyphi_DF*phi_DF;\n",
+ "# From Eqn. 10.6:\n",
+ "Value6 = viscosity_c/Density_c;# [square m/s]\n",
+ "Value7 = P/(V*Density_M);\n",
+ "Value8 = sigma/Density_c;\n",
+ "dp = 10**(-2.066+(0.732*phi_D))*Value6**0.0473*Value7**(-0.204)*Value8**(0.274);# [m]\n",
+ "a = 6*phi_D/dp;# [square m/cubic m]\n",
+ "Sca = viscosity_c/(Density_c*Dc);\n",
+ "# From Eqn. 10.65:\n",
+ "Shc = 65.3;\n",
+ "kLc = Shc*Dc/dp;# [kmol/square m s (kmol/cubic m)]\n",
+ "thetha = V/(qD+qC);# [s]\n",
+ "# From Table 10.1 (Pg 524):\n",
+ "# lambda = [lambda1 lambda2 lambda3]\n",
+ "Lambda = [1.359 ,7.23, 17.9];\n",
+ "# B = [B1 B2 B3]\n",
+ "B = [1.42 ,0.603 ,0.317];\n",
+ "Val = numpy.zeros(3);\n",
+ "Sum = 0;\n",
+ "for n in range(0,3):\n",
+ " Val[n] = (B[n]**2)*exp((-Lambda[n])*64*Dd*thetha/dp**2);\n",
+ " Sum = Sum+Val[n];\n",
+ "\n",
+ "# From Eqn. 10.66:\n",
+ "kLd = -(dp/(6*thetha))*math.log((3.0/8)*Sum);\n",
+ "mCD = 1.0/Dist;\n",
+ "# From Eqn. 10.67:\n",
+ "KLd = 1/((1/kLd)+(1/(mCD*kLc)));# [kmol/square m s (kmol/cubic m)]\n",
+ "Z = 0.5;# [m]\n",
+ "Vd = qD/(math.pi*Z**2.0/4);# [m/s]\n",
+ "# From Eqn.10.70:\n",
+ "NtoD = Z/(Vd/(KLd*a));\n",
+ "# From Eqn. 10.71:\n",
+ "EMD = NtoD/(NtoD+1);\n",
+ "print\"Expected stage efficiency: \\n\",round(EMD,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.7 - Page: 525\n",
+ "\n",
+ "\n",
+ "Expected stage efficiency: \n",
+ "0.93\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.8: Pg-539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.8\n",
+ "# Page: 539\n",
+ "\n",
+ "print'Illustration 10.8 - Page: 539\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:acetic acid c:Water d:Isopropylether layer\n",
+ "# Water solution (continuous):\n",
+ "C = 8000.0;# [kg/h]\n",
+ "xCn = 0.175;# [mass fraction]\n",
+ "Density_c = 1009.0;# [kg/cubic m]\n",
+ "viscosity_c = 3.1*10**(-3);# [kg/m.s]\n",
+ "Dc = 1.24*10**(-9);# [square m/s]\n",
+ "\n",
+ "# Isopropyl Ethr Layer:\n",
+ "D = 20000.0;# [kg/h]\n",
+ "xDnPlus1 = 0.05;# [mass fraction]\n",
+ "Density_d = 730;# [kg/cubic m]\n",
+ "viscosity_d = 0.9*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.96*10**(-9);# [square m/s]\n",
+ "\n",
+ "sigma = 0.013;# [/N/m]\n",
+ "m = 2.68;# [Distributon coeffecient]\n",
+ "#*******#\n",
+ "\n",
+ "Ma = 60.1;\n",
+ "g = 9.81;# [m/square s]\n",
+ "cCn = xCn*Density_c/Ma;# [kmol/cubic m]\n",
+ "cDnPlus1 = xDnPlus1*Density_d/Ma;# [kmol/cubic m]\n",
+ "mCD = m*(Density_c/Density_d);# [(kmol/cubic min ether)/(kmol/cubic m in water)]\n",
+ "\n",
+ "# Perforations:\n",
+ "Do = 0.006;# [m]\n",
+ "pitch = 0.015;# [m]\n",
+ "qD = D/(3600.0*Density_d);# [cubic m/s]\n",
+ "delta_Density = Density_c-Density_d;# [kg/cubic m]\n",
+ "Value1 = Do/(sigma/(delta_Density*g))**0.5;\n",
+ "if Value1<0.1785:\n",
+ " # From Eqn. 10.74(a):\n",
+ " doBydj = (0.485*Value1**2)+1;\n",
+ "else:\n",
+ " # From Eqn. 10.74(b)\n",
+ " doBydj = (1.51*Value1)+0.12;\n",
+ "\n",
+ "dj = Do/doBydj;# [m]\n",
+ "Vomax = 2.69*((dj/Do)**2)*(sigma/(dj*((0.5137*Density_d)+(0.4719*Density_c))))**0.5;# [m/s]\n",
+ "# Since Vomax is less than 0.1:\n",
+ "Vo = 0.1;# [m/s]\n",
+ "Ao = qD/Vo;# [square m]\n",
+ "No = Ao/(math.pi*Do**2.0/4);# [square m]\n",
+ "# From Eqn. 6.30:\n",
+ "# Plate area for perforation:\n",
+ "Aa = Ao/(0.907*(Do/pitch)**2);# [square m]\n",
+ "\n",
+ "# Downspout:\n",
+ "dp = 0.0007;# [m]\n",
+ "# From Eqn. 10.75:\n",
+ "U = Density_c**2*sigma**3/(g*viscosity_c**4*delta_Density);\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 1.515;\n",
+ "abcissa = 0.62;\n",
+ "def f74(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vt = fsolve(f74,7);# [m/s]\n",
+ "Vd = Vt[0];# [m/s]\n",
+ "qC = C/(Density_c*3600);# [cubic m/s]\n",
+ "Ad = qC/Vd;# [square m]\n",
+ "# From Table 6.2 (Pg 169):\n",
+ "# Allowing for supports and unperforated area:\n",
+ "At = Aa/0.65;# [square m]\n",
+ "T = (At*4/math.pi)**0.5;# [m]\n",
+ "An = At-Ad;# [square m]\n",
+ "\n",
+ "\n",
+ "# Drop Size:\n",
+ "alpha1 = 10.76;\n",
+ "alpha2 = 52560;\n",
+ "alpha3 = 1.24*10**6;\n",
+ "alpha4 = 3.281;\n",
+ "abcissa = (alpha2*sigma*Do/delta_Density)+(alpha3*Do**1.12*Vo**0.547*viscosity_c**0.279/delta_Density**1.5);\n",
+ "Parameter = alpha1*Density_d*Vo**2/(delta_Density);\n",
+ "ordinate = 0.024;\n",
+ "dp = ordinate/alpha4;\n",
+ "\n",
+ "# Coalesced layer:\n",
+ "Vn = qD/An;# [m/s]\n",
+ "# From Eqn. 10.80:\n",
+ "ho = (Vo**2-Vn**2)*Density_d/(2*g*0.67**2*delta_Density);# [m]\n",
+ "hD = ho;\n",
+ "# From Eqn. 10.82:\n",
+ "hC = 4.5*Vd**2*Density_c/(2*g*delta_Density);# [m]\n",
+ "# From Eqn. 10.78:\n",
+ "h = hC+hD;\n",
+ "# Since this is very shallow, increase it by placing an orifice at the bottom of the downspout.\n",
+ "# VR: Velocity through the restriction.\n",
+ "# hR: Corresponding depth of the coalesced layer.\n",
+ "# Assume:\n",
+ "Vr = 0.332;# [m/s]\n",
+ "hr = (Vr**2-Vd**2)*Density_c/(2*0.67**2*delta_Density);\n",
+ "Ar = qC/Vr;# [square m]\n",
+ "dr = (4*Ar/math.pi)**0.5;# [m]\n",
+ "h = h+hr;# [m]\n",
+ "# The above results are satisfacyory.\n",
+ "Z = 0.35;# [m]\n",
+ "# Lead the downspout apron to within 0.1 m of the tray below.\n",
+ "\n",
+ "# Dispersed-phase holdup:\n",
+ "# From Eqn. 10.48:\n",
+ "Vsphi_D = Vn;\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 165.2;\n",
+ "abcissa = 30.0;\n",
+ "def f75(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vtl = fsolve(f75,7);# [m/s]\n",
+ "# For solids:\n",
+ "# From Fig. 10.48 (Pg 536):\n",
+ "abcissa = dp/(3*viscosity_c**2/(4*Density_c*delta_Density*g))**(1.0/3);\n",
+ "phi_D = [0, 0.1 ,0.2 ,0.3];\n",
+ "# Corresponding ordinates, from Fig. 10.48 (Pg 536):\n",
+ "ordinate1 = [8.8, 5.9 ,4.3 ,3.0];\n",
+ "Value1 = 1.0/(4*viscosity_c*delta_Density*g/(3*Density_c**2))**(1.0/3);\n",
+ "Val = numpy.zeros((4,7));\n",
+ "# Val = [phi_D ordinate Vs(1-phi_D) (Vs for solids) Vs/Vt (Vs for liquids) (Vs*phi_D (for liquids))]\n",
+ "for i in range(0,4):\n",
+ " Val[i,0] = phi_D[i];\n",
+ " Val[i,1] = ordinate1[i];\n",
+ " Val[i,2] = Val[i,1]/Value1;\n",
+ " Val[i,3] = Val[i,2]/(1-Val[i,0]);\n",
+ " Val[i,4] = Val[i,3]/Val[0,3];\n",
+ " Val[i,5] = Vtl*Val[i,4];\n",
+ " Val[i,6] = Val[i,5]*Val[i,0];\n",
+ "\n",
+ "\n",
+ "# By Interpolation:\n",
+ "Phi_D = 0.1;\n",
+ "\n",
+ "thetha_f =0.2498 # s\n",
+ "# From Eqn. 10.87:\n",
+ "const = 1.5;\n",
+ "kLDf = const*(Dd/(math.pi*thetha_f))**0.5;# [m/s]\n",
+ "# From Eqn. 10.86\n",
+ "KLDf = 1.0/((1.0/kLDf)*(1+((1.0/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# The ordinate of Fig. 10.47 for the drops larger than 70. Hence mass transfer coeffecient during drop rise is given by Eqn. 10.89:\n",
+ "# From Eqn. 10.91:\n",
+ "b = 1.052*dp**0.225;\n",
+ "# From Eqn. 10.90:\n",
+ "omega = (1.0/(2*math.pi))*math.sqrt(192*sigma*b/(dp**3*((3*Density_d)+(2*Density_c))));# [1/s]\n",
+ "Del = 0.2;\n",
+ "kLDr = math.sqrt((4.0*Dd*omega/math.pi)*(1+Del+(1.0/2)*Del**2));\n",
+ "KLDr = 1.0/1/((1/kLDr)*(1+((1/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# From Eqn. 10.98:\n",
+ "EMD = ((4.4*KLDf/Vo)*(dp/Do)**2)+(6*KLDr*Phi_D*(Z-h)/(dp*Vn))/(1+((0.4*KLDf/Vo)*(dp*1.0/Do)**2)+(3*KLDr*Phi_D*(Z-h)/(dp*Vn)));\n",
+ "print\"Stage Efficiency: \",round(-EMD,3)\n",
+ "# The solution in the textbook is incorrect\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.8 - Page: 539\n",
+ "\n",
+ "\n",
+ "Stage Efficiency: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.9: Pg-551"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.9\n",
+ "# Page: 551\n",
+ "\n",
+ "print('Illustration 10.9 - Page: 551\\n\\n');\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "#****Data****#\n",
+ "B = 20000;# [kg/h]\n",
+ "#******#\n",
+ "\n",
+ "# x and y are taken in weight fraction acetic acid.\n",
+ "x1 = 0.30;# [Wt fraction]\n",
+ "xF = 0.30;# [Wt fraction]\n",
+ "y2 = 0;# [Wt fraction]\n",
+ "x2 = 0.02;# [Wt fraction]\n",
+ "y1 = 0.10;# [Wt fraction]\n",
+ "# The operating diagram is plotted in Fig. 10.23:\n",
+ "# Data = [x x_star]\n",
+ "# From Fig. 10.23 (Pg 503):\n",
+ "Data = numpy.array([[0.30 ,0.230],[0.25 ,0.192],[0.20 ,0.154],[0.15, 0.114],[0.10, 0.075],[0.05, 0.030],[0.02, 0]]);\n",
+ "Val = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " Val[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x\");\n",
+ "plt.ylabel(\"1/(x-x*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# From Area Under the curve:\n",
+ "Area = 8.40;\n",
+ "# The mutual solubility of water and isopropyl ether is very small.\n",
+ "Ma = 18.0;# [kg/kmol water]\n",
+ "Mb = 60.0;# [kg/kmol isopropyl ether]\n",
+ "r = Ma/Mb;\n",
+ "# From Eqn. 10.110:\n",
+ "NtoR = Area+(1.0/2)*math.log(1-x2/(1-x1))+(1.0/2)*math.log(x2*(r-1)+1.0/(x1*(r-1)+1));\n",
+ "# Since the operating line and equilibrium line are parallel:\n",
+ "Np = NtoR;\n",
+ "print\"Number of theoretical Units: \\n\",round(NtoR,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.9 - Page: 551\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9890390>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical Units: \n",
+ "8.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.10:pg-552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.10\n",
+ "# Page: 552\n",
+ "\n",
+ "print('Illustration 10.10 - Page: 552\\n\\n');\n",
+ "\n",
+ "# Solution\n",
+ "import math\n",
+ "#****Data****#\n",
+ "B = 1150;# [kg/h]\n",
+ "#*******#\n",
+ "\n",
+ "# x and y are taken in weight ratio.\n",
+ "x1_prime = 0.0101;# [Wt. fraction]\n",
+ "xF_prime = 0.0101;# [Wt. fraction]\n",
+ "y2_prime = 0;# [Wt. fraction]\n",
+ "x2_prime = 0.001001;# [Wt. fraction]\n",
+ "y1_prime = 0.0782;# [Wt. fraction]\n",
+ "# From Illustration 10.4:\n",
+ "A = 990.0;# [kg/h]\n",
+ "# At the dilute end:\n",
+ "m1_prime = 0.798;\n",
+ "Value1 = m1_prime*B/A;\n",
+ "# At the concentrated end:\n",
+ "m2_prime = 0.953;\n",
+ "Value2 = m2_prime*B/A;\n",
+ "ValueAv = (Value1*Value2)**0.5;\n",
+ "# From Eqn. 10.116:\n",
+ "# Since y2_prime = 0\n",
+ "Value3 = x2_prime/x1_prime;\n",
+ "NtoR = (math.log((1.0/Value3)*(1-(1/ValueAv))+(1/ValueAv)))/(1-(1/ValueAv));\n",
+ "print\"Number of theoretical Unit : \",round(NtoR,1),\"\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.10 - Page: 552\n",
+ "\n",
+ "\n",
+ "Number of theoretical Unit : 8.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter10_1.ipynb b/Mass_-_Transfer_Operations/Chapter10_1.ipynb
new file mode 100755
index 00000000..df27b4e6
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter10_1.ipynb
@@ -0,0 +1,1366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9fbb8ba54aec06ad3c69036b535306d5fcf2bbf41aaf2bb73bb23d87c87b8396"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Liquid Extraction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.1: Page 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.1\n",
+ "# Page: 494\n",
+ "\n",
+ "print'Illustration 10.1 - Page: 494\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "xF = 0.30;# [mol fraction]\n",
+ "yS = 0;# [mol fraction]\n",
+ "S1 = 40.0;# [kg]\n",
+ "B1 = 40.0;# [kg]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data at 20 OC:\n",
+ "# Wa: Wt. percent of a\n",
+ "# Wb: Wt. percent of b\n",
+ "# Wc: Wt. percent of c\n",
+ "# Data1 = [Wc Wa Wb]\n",
+ "# Data1: water layer\n",
+ "Data1 = numpy.array([(0.69 ,98.1, 1.2),(1.41, 97.1 ,1.5),(2.89 ,95.5 ,1.6),(6.42 ,91.7 ,1.9),(13.30, 84.4, 2.3),(25.50 ,71.1 ,3.4),(36.70 ,58.9 ,4.4),(44.30 ,45.1 ,10.6),(46.40 ,37.1 ,16.5)])\n",
+ "# Data2: isopropyl ether layer\n",
+ "Data2 = numpy.array([(0.18 ,0.5 ,99.3),(0.37, 0.7 ,98.9),(0.79, 0.8, 98.4),(1.93 ,1, 97.1),(4.82, 1.9, 93.3),(11.40, 3.9, 84.7),(21.60, 6.9, 71.5),(31.10, 10.8, 58.1),(36.20 ,15.1 ,48.7)])\n",
+ "\n",
+ "plt.plot((Data1[:,2])/100,(Data1[:,0])/100,label=\"x Vs fraction ether\")\n",
+ "plt.plot((Data2[:,2])/100,(Data2[:,0])/100,label=\"y Vs fraction ether\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='lower center');\n",
+ "ax=pylab.gca()\n",
+ "ax.set_xlabel(\"Wt fraction of isopropyl ether\");\n",
+ "ax.set_ylabel(\"Wt fraction of acetic acid\");\n",
+ "plt.ylim((0,0.3))\n",
+ "plt.xlim((0,1))\n",
+ "plt.show();\n",
+ "# x: Wt fraction of acetic acid in water layer.\n",
+ "# y: Wt fraction of acetic acid in isopropyl layer.\n",
+ "\n",
+ "# The rectangular coordinates of Fig 10.9(a) will be used but only upto x = 0.30\n",
+ "\n",
+ "# Stage 1:\n",
+ "F = 100;# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "M1 = F+S1;# [kg]\n",
+ "# From Eqn. 10.5:\n",
+ "xM1 = ((F*xF)+(S1*yS))/M1;\n",
+ "# From Fig. 10.15 (Pg 495):\n",
+ "# Point M1 is located on the line FB and with the help of tie line passing through M1:\n",
+ "x1 = 0.258;# [mol fraction]\n",
+ "y1 = 0.117;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E1 = (M1*(xM1-x1)/(y1-x1));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R1 = M1-E1;# [kg]\n",
+ "\n",
+ "# Stage 2:\n",
+ "S2 = 40;# [kg]\n",
+ "B2 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M2 = R1+B2;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM2 = ((R1*x1)+(S2*yS))/M2;\n",
+ "# Point M2 is located on the line R1B and the tie line passing through R2E2 through M2:\n",
+ "x2 = 0.227;\n",
+ "y2 = 0.095;\n",
+ "# From Eqn. 10.8:\n",
+ "E2 = (M2*(xM2-x2)/(y2-x2));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R2 = M2-E2;# [kg]\n",
+ "\n",
+ "# Stage 3:\n",
+ "S3 = 40;# [kg]\n",
+ "B3 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M3 = R2+B3;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM3 = ((R2*x2)+(S3*yS))/M3;\n",
+ "# Point M3 is located on the line R2B and the tie line passing through R3E3 through M3:\n",
+ "x3 = 0.20;# [mol fraction]\n",
+ "y3 = 0.078;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E3 = (M3*(xM3-x3)/(y3-x3));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R3 = M3-E3;# [kg]\n",
+ "Ac = x3*R3;\n",
+ "print\"The composited extract is\",round((E1+E2+E3),2),\" kg\\n\"\n",
+ "print\"The acid content is \",round(((E1*y1)+(E2*y2)+(E3*y3)),2),\" kg\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# If an extraction to give the same final raffinate concentration were to be done in single stage, the point M would be at the intersection of tie line R3E3 and the line BF.\n",
+ "x = 0.20;# [mol fraction]\n",
+ "xM = 0.12;# [mol fraction]\n",
+ "# From Eqn. 10.6:\n",
+ "S = F*(xF-xM)/(xM-yS);# [kg]\n",
+ "print round(S,2),\"kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.1 - Page: 494\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nhs2vBOrlc6whwIB8lmu3bt10yJAhOmTIEH322Wf1nnvStXt3Jynp6emanp6em6R4ns957sfxvXyI\nnXvsSzeVxmWXXaYnnniitm7dOvfLLj9ffPGFJicn6969e1VV9fTTT9cRI0bkrm/cuLG+9NJLun37\n9kLPl56enm+BsWbNmgL32bp1q4qI/vnnn5qdna1VqlTRpUuXHrJdzrEKKjDeeOMNPe200w7ap0OH\nDjp27FhVVU1NTdXHH388d92oUaM0LS0t35huu+02feCBBw5adtxxx+lnn32mqgUXGOvXr89d1q5d\nO33rrbdUVbVFixYHbb9hwwatUKGCZmdne8pR+HutrN/Pzz77bNR8Xouan756ujbo3UCnz5peJsdL\nT0/Xbt265X5fRmOBUR74EacTw4ruVULLPNtcBHykoQJmrvu8KlDdfV4N+BLolM85NK/nn1e9445D\nFse98DdKWYuF//omT56sIqKvvPJKkds2b95cJ02apKtXr9YKFSro//73v9x18+fP1y5dumjNmjX1\n7LPP1jlz5uR7jIIKjP379+cuy87O1oEDB2qzZs20Ro0ampycrCKiP/30k/7+++8qIrpr165Djl1U\ngfHkk0/qVVddddA+1157rT7xxBOq6hQYr776ar775tW5c2etWrWqJicn507VqlXTSZMmqWrBBUZ4\nbOHnq1KlSu5rzZmqVKmiGzZsyDdHefn5XvPzM+KHyyddro99+pgvxy5pgeFbG4aq7gd6A9OB74C3\nVHWFiPQSkV7uNh8BP4nIauAl4A539/rA5yKyGPga+FBVZ3g5b6L+SioW6mf9snPnTvr3788tt9zC\nkCFDcuvMC3LjjTfyxhtvMH78eNLS0qhbt27uur/85S+8//77bNq0icsvv5yrr766WLGEd9Q4YcIE\nJk+ezOzZs9m+fTtr1qwBnH/S6tSpQ+XKlVm9enWhx8hPw4YN+fnnnw9a9vPPP9OwYd4mwqI1btyY\n++67j61bt+ZOO3fu5JprrvEUS37HmzZt2kHH2717Nw0aNMjdJqjOLGPtM5Iz0NIv238JOpRcvt6H\noaofq+pxqtpcVf/pLntJVV8K26a3u761qi50l/2kqm3c6cScfb3Ys8d+JZVo+vXrR7t27Xj55Ze5\n+OKLue222wrd/sYbb2TmzJm88sordOvWLXd5VlYWEyZMYPv27SQlJVG9enWSkpJKHNfOnTupVKkS\n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\niRUYxhhjPPl/ptoLDFmMWJUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7727f28>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composited extract is 135.05 kg\n",
+ "\n",
+ "The acid content is 13.01 kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "150.0 kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2: Page 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.2\n",
+ "# Page: 497\n",
+ "\n",
+ "print'Illustration 10.2 - Page: 497\\n\\n'\n",
+ "\n",
+ "print'Illustration 10.2 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:kerosene c:Nicotine\n",
+ "xF = 0.01;# [wt fraction nicotine]\n",
+ "F = 100.0;# [kg]\n",
+ "B = 150.0;# [kg]\n",
+ "#******#\n",
+ "\n",
+ "# Equilibrium data:\n",
+ "# x_prime = kg nicotine/kg water\n",
+ "# y_prime = kg nicotine/kg kerosene\n",
+ "# Data = [x_prime y_prme]\n",
+ "Data = numpy.array([[0 ,0],[0.001011 ,0.000807],[0.00246, 0.001961],[0.00502, 0.00456],[0.00751, 0.00686],[0.00998 ,0.00913],[0.0204, 0.01870]])\n",
+ "xF_prime = xF/(1-xF);# kg nicotine/kg water\n",
+ "A = F*(1-xF);# [kg]\n",
+ "AbyB = A/B;\n",
+ "\n",
+ "def f64(x):\n",
+ " return -AbyB*(x-xF)\n",
+ "x = numpy.arange(0,0.01+0.001,0.001);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium line\")\n",
+ "plt.plot(x,f64(x),label=\"Operating Line\");\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.2(a)\")\n",
+ "plt.show()\n",
+ "# The operating line and equilibrium line intersect at:\n",
+ "x1_prime = 0.00425;# [kg nicotine/kg water]\n",
+ "y1_prime = 0.00380;# [kg nicotine/kg water]\n",
+ "extract = A*(0.01011-x1_prime);\n",
+ "print extract*100,\"% of nicotine is extracted.\\n\\n\"\n",
+ "\n",
+ "print'Illustration 10.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "B = 50.0;# [kg]\n",
+ "# For each stage:\n",
+ "AbyB = A/B;\n",
+ "def f65(x1):\n",
+ " return -AbyB*(x1-xF)\n",
+ "x1 = numpy.arange(0,0.01+0.001,0.001)\n",
+ "def f66(x2):\n",
+ " return -AbyB*(x2-0.007)\n",
+ "x2 = numpy.arange(0,0.01+0.001,0.001)\n",
+ "def f67(x3) :\n",
+ " return -AbyB*(x3-0.005)\n",
+ "x3 =numpy.arange(0,0.01+0.001,0.001)\n",
+ "\n",
+ "plot(Data[:,0],Data[:,1],label=\"Equilibrium line\")\n",
+ "plt.plot(x1,f65(x1),label=\"Operating Line from xF\")\n",
+ "plt.plot(x2,f66(x2),label=\"Operating Line from 0.007\")\n",
+ "plt.plot(x3,f67(x3),label=\"Operating Line from 0.005\")\n",
+ "plt.grid('on');\n",
+ "legend(loc=\"upper right\");\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0, 0.010))\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.2(b)\")\n",
+ "plt.show()\n",
+ "# The final raffinate composition:\n",
+ "x3_prime = 0.0034;# [kg nicotine/kg water]\n",
+ "extract = A*(0.01011-x3_prime);\n",
+ "print extract*100,\" % of nicotine is extracted.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.2 - Page: 497\n",
+ "\n",
+ "\n",
+ "Illustration 10.2 (a)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x77359b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "58.014 % of nicotine is extracted.\n",
+ "\n",
+ "\n",
+ "Illustration 10.2 (b)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\na67R5557Ttu0aaNlypTRG264QY+4/R/+/PPP2rp1a42IiNDGjRtrQkJClv21b99eQ0NDtXjx4lqm\nTBndunWr9ujRQ/v06aM33nijlipVSpcsWaKbN2/Wa665RiMiIrRhw4b6+eefp7fRo0cP7du3r954\n441aunRpveqqq/TQoUM6YMAAjYiI0EsuuUTXrl2bZf8//fSTVqhQQfft26eqquvWrdPIyEhNTExU\nVdWYmBhdsmRJlnW9SXb/J67r9n0W29mYPx12ftAs/usvjfn5Z01KTratzYKydOlS+xobNUq1UyfV\n1FT72iwABR2bPzuZL774QosUKZL+QepOjx49tHv37qpqOYqwsDCdM2eOJicn69ixY7VWrVqanJys\nKSkp2qxZMx0xYoRevHhRd+7cqbVr19bFixdnqDtv3jxVVT179qyuXr1af/nlF01JSdHdu3drgwYN\ndPz48el9Z3YKmZ1MTEyMXnHFFXro0CE9evSoNmjQQCdNmpQ+psqVK+vmzZv1zJkzes8992hISIgt\nTqZu3bq6bds2PXv2rLZr104HDx6sqqr79+/X8uXL6xdffKGqql9//bWWL19e//zzT4/67NGjh5Yt\nW1aXLVumqqonT57UOnXq6KhRo/TixYv67bffapkyZdIdQY8ePbRChQq6Zs0aPXfunF577bVas2ZN\nfffddzU1NVWfffZZbd++fZZ9q6oOHTpUr732Wj1z5oxedtll+vrrr2f43X7zzTfZ1vUWvnIyJlzm\nATeUK0eb8HCG7drltCne4Ykn4MABmDXLaUt8hjwvBT7yw5EjR6hQoUKWGZUrV67MkSNH0s9btGjB\n7bffTmhoKAMHDuTcuXP8/PPPrFy5kiNHjvDss89SpEgRatWqxcMPP8wst/fvyiuv5OabbwagePHi\nNGvWjFatWhESEkLNmjWJj4/nu+++y5PtAwYMoHLlykRGRtK1a1fWrVsHWJLRDz74IA0aNKBEiRI8\n//zzaV/0CoSI8MADD1C3bl2KFy9Ot27d0vt877336Ny5M506dQLguuuuo0WLFixatCjb9txtEhFu\nvfVWWrduDcC6des4ffo0gwcPpkiRIrRv354uXbpkkKS+/fbbadq0KcWKFeO2226jVKlS3HvvvekS\n02vXrs227+HDh3PixAlatWpFjRo16NevXwa73OW4b7/99vz9wvyUIk4bECiMq1uXRitX8u9KlWhW\n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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x79b5f28>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "66.429 % of nicotine is extracted.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.3: Page 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.3\n",
+ "# Page: 502\n",
+ "\n",
+ "print'Illustration 10.3 - Page: 502\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "F = 8000;# [kg/h]\n",
+ "xF = 0.30;# [wt. fraction acetic acid]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 10.1 (Pg 494)\n",
+ "# Equilibrium Data:\n",
+ "# Eqb = [y_star*100 x*100]\n",
+ "Eqb = numpy.array([[0.18 ,0.69],[0.37 ,1.41],[0.79 ,2.89],[1.93, 6.42],[4.82, 13.30],[11.40, 25.50],[21.60 ,36.70],[31.10 ,44.30],[36.20, 46.40]]);\n",
+ "\n",
+ "# Solution(a)\n",
+ "\n",
+ "# From Figure 10.23 (Pg 503):\n",
+ "# For minimum solvent rate:\n",
+ "y1 = 0.143;# [Wt fraction of acetic acid in isopropyl ether layer]\n",
+ "xM = 0.114;# [Wt fraction of acetic acid in water layer]\n",
+ "# From Eqn. 10.24:\n",
+ "Bm = (F*xF/xM)-F;# [kg/h]\n",
+ "print\"Minimum solvent rate: \",Bm,\" kg/h\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "B = 20000.0;# [kg solvent/h]\n",
+ "yS = 0;\n",
+ "S = B;\n",
+ "# From Eqn 10.24:\n",
+ "xM = ((F*xF)+(S*yS))/(F+S);\n",
+ "# From Fig. 10.23 (Pg 503):\n",
+ "y1 = 0.10;\n",
+ "# Operating curve data:\n",
+ "# Operat = [YsPlus1 Xs]\n",
+ "Operat = numpy.array([[0 ,0.02],[0.01 ,0.055],[0.02 ,0.09],[0.04 ,0.150],[0.06, 0.205],[0.08, 0.250],[0.1 ,0.3]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,1]/100,Eqb[:,0]/100,label=\"Operating Line\")\n",
+ "plt.plot(Operat[:,1],Operat[:,0],label=\"Equilibrium Line\")\n",
+ "plt.grid('on');\n",
+ "plt.ylim((0,y1));\n",
+ "plt.xlim((0,xF));\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"Wt. fraction acetic acid in water solution\");\n",
+ "plt.ylabel(\"Wt. fraction acetic acid in isopropyl ether solution\");\n",
+ "plt.title(\"Solution 10.3\")\n",
+ "plt.show()\n",
+ "# From Figure scf(22):\n",
+ "xNp = 0.02;\n",
+ "Np = 7.6;\n",
+ "# By acid balance:\n",
+ "M = B+F;\n",
+ "E1 = M*(xM-xNp)/(y1-xNp);# [kg/h]\n",
+ "RNp = M-E1;# [kg/h]\n",
+ "print\"Number of theoretical Stages: \\n\",Np\n",
+ "print\"Weight of the extract:\",E1,\"kg/h\\n\"\n",
+ "print\"Weight of the raffinate \",RNp,\" kg/h\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.3 - Page: 502\n",
+ "\n",
+ "\n",
+ "Minimum solvent rate: 13052.6315789 kg/h\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78da7f0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical Stages: \n",
+ "7.6\n",
+ "Weight of the extract: 23000.0 kg/h\n",
+ "\n",
+ "Weight of the raffinate 5000.0 kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.4: Page 506"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.4\n",
+ "# Page: 506\n",
+ "\n",
+ "print'Illustration 10.4 - Page: 506\\n\\n'\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import numpy\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:kerosene c:Nicotine\n",
+ "F = 1000.0;# [kg/h]\n",
+ "xF = 0.01;# [wt. fraction acetic acid]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data:\n",
+ "# x_prime = kg nicotine/kg water\n",
+ "# y_prime = kg nicotine/kg kerosene\n",
+ "# Eqb = [x_prime y_prme]\n",
+ "Eqb = numpy.array([[0 ,0],[0.001011, 0.000807],[0.00246, 0.001961],[0.00502 ,0.00456],[0.00751, 0.00686],[0.00998, 0.00913],[0.0204 ,0.01870]]);\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "A = 1000*(1-xF);# [kg water/h]\n",
+ "yS = 0;\n",
+ "yS_prime = 0;\n",
+ "y1_prime = 0;\n",
+ "xF_prime = xF/(1-xF);# [kg nicotine/kg water]\n",
+ "# For xF_prime = 0.0101:\n",
+ "yk = 0.0093;\n",
+ "xNp = 0.001;# [wt. fraction acetic acid]\n",
+ "xNp_prime = xNp/(1-xNp);# [kg nicotine/kg water]\n",
+ "# For infinite stages:\n",
+ "# Operating Line should pass through (xNp_prime,y1_prime) & (xF_prime,yk)\n",
+ "Operat = numpy.array([[xNp_prime, y1_prime],[xF_prime ,yk]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1],label=\"equilibrium Line\")\n",
+ "plt.plot(Operat[:,0],Operat[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.4(a)\")\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0,0.01))\n",
+ "plt.show()\n",
+ "AbyBm = (yk-y1_prime)/(xF_prime-xNp_prime);\n",
+ "Bm = A/AbyBm;# [kg kerosene/h];\n",
+ "print\"Mininmum kerosene rate: \",round(Bm,2),\" kg kerosene/h \\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "B = 1150.0;# [kg/h]\n",
+ "AbyB = A/B;\n",
+ "# From Eqn. 10.36:\n",
+ "y2_prime = ((xF_prime-xNp_prime)*AbyB)+yS_prime;# [kg nicotine/kg kerosene]\n",
+ "# Operating Line should pass through (xNp_prime,y1_prime) & (xF_prime,y2_prime)\n",
+ "Operat = numpy.array([[xNp_prime, y1_prime],[xF_prime, y2_prime]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1],label=\"equilibrium Line\")\n",
+ "plt.plot(Operat[:,0],Operat[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine/kg water\");\n",
+ "plt.ylabel(\"kg nicotine/kg kerosene\");\n",
+ "plt.title(\"Solution 10.4(b)\")\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0,0.01))\n",
+ "plt.show()\n",
+ "# From Figure:\n",
+ "Np = 8.3;\n",
+ "print\"Number of theoretical stages: \\n\",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.4 - Page: 506\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78b2e48>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mininmum kerosene rate: 968.71 kg kerosene/h \n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c37160>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical stages: \n",
+ "8.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.5: Page 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.5\n",
+ "# Page: 510\n",
+ "\n",
+ "print'Illustration 10.5 - Page: 510\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "import numpy\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:ethylbenzne b:diethylene glycol c:styrene\n",
+ "F = 1000;# [kg/h]\n",
+ "xF = 0.5;# [Wt. fraction styrene]\n",
+ "xPE = 0.9;# [kg styrene/kg hydrocarbon]\n",
+ "xRNp = 0.1;# [kg styrene/kg hydrocarbon]\n",
+ "#******#\n",
+ "\n",
+ "# X: kg styrene/kg hydrocarbon\n",
+ "# Y: kg styrene/kg hydrocarbon\n",
+ "# N:kg glycol/kg hydrocarbon\n",
+ "# Equilibrium data:\n",
+ "# Hydrocarbon rich solutions:\n",
+ "# Eqb1 = [X N]\n",
+ "Eqb1 = numpy.array([[0 ,0.00675],[0.0870 ,0.00817],[0.1833, 0.00938],[0.288 ,0.01010],[0.384 ,0.01101],[0.458, 0.01215],[0.464 ,0.01215],[0.561 ,0.01410],[0.573, 0.01405],[0.781 ,0.01833],[1 ,0.0256]]);\n",
+ "# Solvent rich solutions:\n",
+ "# Eqb2 = [Y_star N]\n",
+ "Eqb2 = numpy.array([[0 ,8.62],[0.1429 ,7.71],[0.273, 6.81],[0.386, 6.04],[0.480, 5.44],[0.557, 5.02],[0.565, 4.95],[0.655, 4.46],[0.674, 4.37],[0.833, 3.47],[1 ,2.69]]);\n",
+ "\n",
+ "plt.plot(Eqb1[:,0],Eqb1[:,1],label=\"X Vs N\")\n",
+ "plt.plot(Eqb2[:,0],Eqb2[:,1],label=\"Y Vs N\")\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper right');\n",
+ "plt.xlabel(\"kg styrene / kg hydrocarbon\");\n",
+ "plt.ylabel(\"kg diethylene glycol / kg hydrocarbon\");\n",
+ "plt.title(\"Equilibrium Data\")\n",
+ "# In Fig. 10.31 (Pg 512):\n",
+ "# Point E1 is located.\n",
+ "NE1 = 3.10;\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "# From Fig. 10.30 (Pg 511):\n",
+ "Np = 9.5;\n",
+ "print\"Minimum number of theoretical stages:\\n\",Np\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "# The tie line when extended passes through F provides the minimum reflux ratio.\n",
+ "# From the plot:\n",
+ "N_deltaEm = 20.76;\n",
+ "# From Eqn. 10.48:\n",
+ "Ratiom = (N_deltaEm-NE1)/NE1;# [kg reflux/kg extract product]\n",
+ "print\"Minimum extract reflux ratio: \",round(Ratiom,3),\"kg reflux/kg extract product\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (c)\n",
+ "\n",
+ "Ratio = 1.5*Ratiom;# [kg reflux/kg extract product]\n",
+ "# From Eqn. 10.48;\n",
+ "N_deltaE = (Ratio*NE1)+NE1;\n",
+ "# Point deltaE is plotted.\n",
+ "# A straight line from deltaE through F intersects line X = 0.10 at deltaR.\n",
+ "N_deltaR = -29.6;\n",
+ "# In Fig. 10.31 (Pg 512):\n",
+ "# Random lines are drawn from deltaE for the concentrations to the right of F, and from deltaR for those to the left,and intersection of these with the solubility curves provide the coordinates of the opeating curve.\n",
+ "# The tie line data are plotted directly to provide the equilibrium curve.\n",
+ "# From Fig. 10.32 (Pg 513):\n",
+ "Np = 15.5;\n",
+ "# Feed is to be introduced in the seventh from the extract product end of cascade.\n",
+ "# From Fig. 10.31 (Pg 512):\n",
+ "XRNp = 0.10;\n",
+ "NRNp = 0.0082;\n",
+ "# Basis:1 hour.\n",
+ "# Overall plant balance:\n",
+ "# (1): PE_prime+RNp_prime = F\n",
+ "# C Balance\n",
+ "# (2): PE_prime*(1-XRNp)+RNp_prime*XRNp = F*xF\n",
+ "# Solving (1) & (2) simultaneously:\n",
+ "a = numpy.array([[1 ,1],[(1-XRNp), XRNp]]);\n",
+ "b = numpy.array([F,F*xF]);\n",
+ "soln =lin.solve(a,b)\n",
+ "PE_prime = soln[0];# [kg/h]\n",
+ "RNp_prime = soln[1];# [kg/h]\n",
+ "RO_prime = Ratio*PE_prime;# [kg/h]\n",
+ "# From Eqn 10.39:\n",
+ "E1_prime = RO_prime+PE_prime;# [kg/h]\n",
+ "BE = E1_prime*NE1;# [kg/h]\n",
+ "E1 = BE+E1_prime;# [kg/h]\n",
+ "RNp = RNp_prime*(1+NRNp);# [kg/h]\n",
+ "S = BE+(RNp_prime*NRNp);# [kg/h]\n",
+ "print\"Number of theoretical stages: \\n\",Np\n",
+ "print\"Extract Flow Rate: \",round(E1,2),\" kg/h\\n\"\n",
+ "print\"solvent Flow Rate: \",S,\" kg/h\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.5 - Page: 510\n",
+ "\n",
+ "\n",
+ "Minimum number of theoretical stages:\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9.5\n",
+ "\n",
+ "\n",
+ "Minimum extract reflux ratio: 5.697 kg reflux/kg extract product\n",
+ "\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages: \n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15.5\n",
+ "Extract Flow Rate: 19567.58 kg/h\n",
+ "\n",
+ "solvent Flow Rate: 14799.1 kg/h\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e76ac8>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.6: Page 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.6\n",
+ "# Page: 516\n",
+ "\n",
+ "print'Illustration 10.6 - Page: 516\\n\\n'\n",
+ "\n",
+ "import numpy.linalg as lin\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:heptane b:p-chloronitrobenzene c:o-chloronitrobenzene d:aq. methanol\n",
+ "xb = 0.4;# [Wt fraction]\n",
+ "xC = 0.60;# [Wt fraction]\n",
+ "F = 100;# [kg]\n",
+ "# The para isomer(b) favours the heptane(a) and the ortho isomer(c) favours the methanol(d).\n",
+ "# Basis: 1 hour.\n",
+ "A = 2400;# [kg/h]\n",
+ "D = 2760;# [kg/h]\n",
+ "xbW = 0.8;# [Wt fraction]\n",
+ "xbZ = 0.15;# [Wt fraction]\n",
+ "kb=1.35;\n",
+ "kc=0.835;\n",
+ "#*******#\n",
+ "\n",
+ "B = xb*F;# [kg]\n",
+ "C = F-B;# [kg]\n",
+ "# W = kg A rich product, after solvent removal\n",
+ "# Z = kg D rich product, after solvent removal\n",
+ "# B balance:\n",
+ "# (1): (0.80*W)+(0.15*Z) = B\n",
+ "# C balance:\n",
+ "# (2): (0.20*W)+(0.85*Z) = C\n",
+ "# Solving (1) & (2) simultaneously:\n",
+ "a = numpy.array([[0.80, 0.15],[0.20, 0.85]]);\n",
+ "b = [B,C];\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "Z = soln[1];\n",
+ "Wb = xbW*W;# [kg]\n",
+ "Wc = W-Wb;# [kg]\n",
+ "Zb = xbZ*Z;# [kg]\n",
+ "Zc = Z-Zb;# [kg]\n",
+ "xB1_prime = Zb/D;\n",
+ "xC1_prime = Zc/D;\n",
+ "yB1_prime = Wb/D;\n",
+ "yC1_prime = Wc/D;\n",
+ "DbyA = D/A;\n",
+ "# Equilibrium curve:\n",
+ "# First distribution coeffecient: yB_star/xB_prime = 1.35\n",
+ "def f68(x1):\n",
+ " return kb*x1\n",
+ "x1 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Second distribution coeffecient: yC_star/xC_prime = 0.835\n",
+ "def f69(x2):\n",
+ " return kc*x2\n",
+ "x2 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Operating Line, corresponding to First distribution coeffecient:\n",
+ "def f70(x3):\n",
+ " return (DbyA*x3)+yB1_prime\n",
+ "x3 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "def f71(x4):\n",
+ " return DbyA*(x4-xB1_prime)\n",
+ "x4 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Operating Line, corresponding to Second distribution coeffecient:\n",
+ "def f72(x5):\n",
+ " return (DbyA*x5)+yC1_prime\n",
+ "x5 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "def f73(x6):\n",
+ " return (DbyA)*(x6-xC1_prime);\n",
+ "x6 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "\n",
+ "\n",
+ "plot(x1,f68(x1),label=\"Equilibrium curve\")\n",
+ "plt.plot(x3,f70(x3),label=\"Operating curve\")\n",
+ "plt.plot(x4,f71(x4),label=\"Operating curve\");\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"xB_prime\");\n",
+ "plt.ylabel(\"yB_prime\");\n",
+ "plt.title(\"yB_star/xB_prime = 1.35\");\n",
+ "plt.xlim((0,0.05))\n",
+ "plt.ylim((0,0.07))\n",
+ "plt.show()\n",
+ "\n",
+ "plot(x2,f69(x2),label=\"Equilibrium curve\")\n",
+ "plt.plot(x5,f72(x5),label=\"Operating curve\")\n",
+ "plt.plot(x6,f73(x6),label=\"Operating curve\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"xC_prime\");\n",
+ "plt.ylabel(\"yC_prime\");\n",
+ "plt.title(\"yC_star/xC_prime = 0.835\");\n",
+ "plt.xlim((0,0.06))\n",
+ "plt.ylim((0,0.07))\n",
+ "plt.show()\n",
+ "# The stages are constructed.\n",
+ "# The feed matching is shown on Fig. 10.37 (Pg 518):\n",
+ "f_prime = 6.6;\n",
+ "fstage = 4.6;\n",
+ "print\"Number of ideal stage is \\n\",fstage+f_prime-1\n",
+ "print\"The feed stage is \",fstage,\"th from the solvent-D inlet\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.6 - Page: 516\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e76a20>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\no8p0A6Z7n9sDn0XsmwO08D4PAYYVcg0tjKK2B4GffvpJq1Wrpv/617/22r5jxw6tXbu2Pv/886qq\nOnjwYL3ooou0Z8+eWr16dW3btq0uWrSooPy6dev0wgsv1Nq1a+uhhx6qo0aNKtiXf+xll12m+++/\nvz733HM6b948bd++vdasWVPr1q2r/fv31927d6uqaocOHVREtGrVqlqtWjV9/fXXdfbs2dqgQYOC\nczZq1EiHDx+uxxxzjNaoUUN79uypu3btKtg/bNgwrVu3rtavX1/Hjh2rIqLffvttod/Bjz/+qH36\n9NF69eppZmamnn/++aqqOm7cOD3llFP2Kht5niuuuEKvu+467datm1atWlWHDRumBx98sObm5haU\nf+ONN/SYY45RVdXc3Fx94IEHtGnTpnrAAQfoxRdfrFu2bInzTu1NkJ8pI9ws3rhYz3rhLD38icN1\n+orpSTmn9zyX7h1f2hMUewHoimuJtRK409vWF+gbUeYJb/8ioG3E9la4lluLgDeAGoWcP9aXE0hm\nzJihFStW3Oull88VV1yhvXr1UlUXBCpVqqSTJ0/WnJwcHT58uB566KGak5Ojubm52rZtW73vvvt0\nz549umrVKm3SpInOnDlzr2PfeustVVX99ddf9YsvvtC5c+dqbm6url69Wlu2bKkjR44suHb0Cz86\ngDRu3FhPOOEE3bBhg27ZskVbtmypo0ePLvDp4IMP1mXLlunOnTv10ksv1QoVKhQZQLp166aXXHKJ\nbtu2Tffs2aNz5sxR1fgCSI0aNfSTTz5RVdVdu3Zp06ZN9b333iso/6c//UmHDRumqqojR47UE088\nUdetW6e7d+/Wvn37Fny/JSWRZ2r27NkJXSsdCLNvqsHw74dfftDrp16vtR+qraM+G6W7c3Yn7dzJ\nCCAp74muqjOAGVHbxkSt9y/i2EXA8amyTe4t/fhSOrjkKZ/Nmzdz4IEHFpp6Ofjgg1mwYEHB+nHH\nHceFF14IwMCBAxkxYgSffvoplSpVYvPmzdx9992Amz726quvZuLEiZx99tkAnHTSSXTv3h2AypUr\n07Zt24LzNmrUiGuvvZYPPviAm266KW7bBwwYwMEHHwy44egXLlwIuGl4r7rqKlq2dE0H7733Xl55\n5ZVCz5E/Ze2WLVsKZh1MxpS1Z555ZsGUtY888gjgpqx94oknqFevHgCDBw+mUaNGvPTSSzaysRFY\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c385c0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of ideal stage is \n",
+ "10.2\n",
+ "The feed stage is 4.6 th from the solvent-D inlet\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.7: Page 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.7\n",
+ "# Page: 525\n",
+ "\n",
+ "print'Illustration 10.7 - Page: 525\\n\\n'\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# c:Water d:Toulene \n",
+ "Density_c = 998;# [kg/cubic m]\n",
+ "viscosity_c = 0.95*10**(-3);# [kg/m.s]\n",
+ "Dc = 2.2*10**(-9);# [square m/s]\n",
+ "Density_d = 865;# [kg/cubic m]\n",
+ "viscosity_d = 0.59*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.5*10**(-9);# [square m/s]\n",
+ "sigma = 0.022;# [N/m]\n",
+ "Dist = 20.8;# [Distribution Coeffecient]\n",
+ "d = 0.5;# [m]\n",
+ "h = 0.5;# [m]\n",
+ "di = 0.15;# [m]\n",
+ "N = 13.3;# [r/s]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "qC = 3*10**(-3);# [cubic m/s]\n",
+ "qD = 3*10**(-4);# [cubic m/s]\n",
+ "#********#\n",
+ "\n",
+ "V = math.pi*h*d**2/4;# [Vessel volume,cubic m]\n",
+ "phi_DF = qD/(qD+qC);# [Volume fraction toulene]\n",
+ "# Assume:\n",
+ "phi_Dbyphi_DF = 0.9;\n",
+ "phi_D = phi_Dbyphi_DF*phi_DF;\n",
+ "phi_W = 1-phi_D;\n",
+ "# From Eqn. 10.56:\n",
+ "Density_M = (Density_c*phi_W)+(Density_d*phi_D);# [kg/cubic m]\n",
+ "if phi_W>0.4:\n",
+ " viscosity_M = (viscosity_c/phi_W)*(1+(6*viscosity_d*phi_D/(viscosity_d+viscosity_c)));# [kg/m s]\n",
+ "else:\n",
+ " viscosity_M = (viscosity_c/phi_D)*(1-(1.5*viscosity_c*phi_W/(viscosity_d+viscosity_c)));# [kg/m s]\n",
+ "\n",
+ "# Impeller Reynold's Number:\n",
+ "IRe = (di**2*N*Density_M/viscosity_M);\n",
+ "# From Fig 6.5 (Pg 152), curve g:\n",
+ "Po = 0.72;\n",
+ "P = Po*Density_M*N**3*di**5;# [W]\n",
+ "# From Eqn. 10.61:\n",
+ "Value1 = P*qD*viscosity_c**2/(V*sigma**3);\n",
+ "Value2 = viscosity_c**3/(qD*Density_c**2*sigma);\n",
+ "Value3 = Density_c/(Density_c-Density_d);\n",
+ "Value4 = sigma**3*Density_c/(viscosity_c**4*g);\n",
+ "Value5 = viscosity_d/viscosity_c;\n",
+ "phi_Dbyphi_DF = 3.39*Value1**0.247*Value2**0.427*Value3**0.430*Value4**0.401*Value5**0.0987;\n",
+ "# The value of phi_Dbyphi_DF is sufficiently close to the value 0.90 assumed earlier.\n",
+ "phi_D = phi_Dbyphi_DF*phi_DF;\n",
+ "# From Eqn. 10.6:\n",
+ "Value6 = viscosity_c/Density_c;# [square m/s]\n",
+ "Value7 = P/(V*Density_M);\n",
+ "Value8 = sigma/Density_c;\n",
+ "dp = 10**(-2.066+(0.732*phi_D))*Value6**0.0473*Value7**(-0.204)*Value8**(0.274);# [m]\n",
+ "a = 6*phi_D/dp;# [square m/cubic m]\n",
+ "Sca = viscosity_c/(Density_c*Dc);\n",
+ "# From Eqn. 10.65:\n",
+ "Shc = 65.3;\n",
+ "kLc = Shc*Dc/dp;# [kmol/square m s (kmol/cubic m)]\n",
+ "thetha = V/(qD+qC);# [s]\n",
+ "# From Table 10.1 (Pg 524):\n",
+ "# lambda = [lambda1 lambda2 lambda3]\n",
+ "Lambda = [1.359 ,7.23, 17.9];\n",
+ "# B = [B1 B2 B3]\n",
+ "B = [1.42 ,0.603 ,0.317];\n",
+ "Val = numpy.zeros(3);\n",
+ "Sum = 0;\n",
+ "for n in range(0,3):\n",
+ " Val[n] = (B[n]**2)*exp((-Lambda[n])*64*Dd*thetha/dp**2);\n",
+ " Sum = Sum+Val[n];\n",
+ "\n",
+ "# From Eqn. 10.66:\n",
+ "kLd = -(dp/(6*thetha))*math.log((3.0/8)*Sum);\n",
+ "mCD = 1.0/Dist;\n",
+ "# From Eqn. 10.67:\n",
+ "KLd = 1/((1/kLd)+(1/(mCD*kLc)));# [kmol/square m s (kmol/cubic m)]\n",
+ "Z = 0.5;# [m]\n",
+ "Vd = qD/(math.pi*Z**2.0/4);# [m/s]\n",
+ "# From Eqn.10.70:\n",
+ "NtoD = Z/(Vd/(KLd*a));\n",
+ "# From Eqn. 10.71:\n",
+ "EMD = NtoD/(NtoD+1);\n",
+ "print\"Expected stage efficiency: \\n\",round(EMD,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.7 - Page: 525\n",
+ "\n",
+ "\n",
+ "Expected stage efficiency: \n",
+ "0.93\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.8: Pg-539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.8\n",
+ "# Page: 539\n",
+ "\n",
+ "print'Illustration 10.8 - Page: 539\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:acetic acid c:Water d:Isopropylether layer\n",
+ "# Water solution (continuous):\n",
+ "C = 8000.0;# [kg/h]\n",
+ "xCn = 0.175;# [mass fraction]\n",
+ "Density_c = 1009.0;# [kg/cubic m]\n",
+ "viscosity_c = 3.1*10**(-3);# [kg/m.s]\n",
+ "Dc = 1.24*10**(-9);# [square m/s]\n",
+ "\n",
+ "# Isopropyl Ethr Layer:\n",
+ "D = 20000.0;# [kg/h]\n",
+ "xDnPlus1 = 0.05;# [mass fraction]\n",
+ "Density_d = 730;# [kg/cubic m]\n",
+ "viscosity_d = 0.9*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.96*10**(-9);# [square m/s]\n",
+ "\n",
+ "sigma = 0.013;# [/N/m]\n",
+ "m = 2.68;# [Distributon coeffecient]\n",
+ "#*******#\n",
+ "\n",
+ "Ma = 60.1;\n",
+ "g = 9.81;# [m/square s]\n",
+ "cCn = xCn*Density_c/Ma;# [kmol/cubic m]\n",
+ "cDnPlus1 = xDnPlus1*Density_d/Ma;# [kmol/cubic m]\n",
+ "mCD = m*(Density_c/Density_d);# [(kmol/cubic min ether)/(kmol/cubic m in water)]\n",
+ "\n",
+ "# Perforations:\n",
+ "Do = 0.006;# [m]\n",
+ "pitch = 0.015;# [m]\n",
+ "qD = D/(3600.0*Density_d);# [cubic m/s]\n",
+ "delta_Density = Density_c-Density_d;# [kg/cubic m]\n",
+ "Value1 = Do/(sigma/(delta_Density*g))**0.5;\n",
+ "if Value1<0.1785:\n",
+ " # From Eqn. 10.74(a):\n",
+ " doBydj = (0.485*Value1**2)+1;\n",
+ "else:\n",
+ " # From Eqn. 10.74(b)\n",
+ " doBydj = (1.51*Value1)+0.12;\n",
+ "\n",
+ "dj = Do/doBydj;# [m]\n",
+ "Vomax = 2.69*((dj/Do)**2)*(sigma/(dj*((0.5137*Density_d)+(0.4719*Density_c))))**0.5;# [m/s]\n",
+ "# Since Vomax is less than 0.1:\n",
+ "Vo = 0.1;# [m/s]\n",
+ "Ao = qD/Vo;# [square m]\n",
+ "No = Ao/(math.pi*Do**2.0/4);# [square m]\n",
+ "# From Eqn. 6.30:\n",
+ "# Plate area for perforation:\n",
+ "Aa = Ao/(0.907*(Do/pitch)**2);# [square m]\n",
+ "\n",
+ "# Downspout:\n",
+ "dp = 0.0007;# [m]\n",
+ "# From Eqn. 10.75:\n",
+ "U = Density_c**2*sigma**3/(g*viscosity_c**4*delta_Density);\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 1.515;\n",
+ "abcissa = 0.62;\n",
+ "def f74(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vt = fsolve(f74,7);# [m/s]\n",
+ "Vd = Vt[0];# [m/s]\n",
+ "qC = C/(Density_c*3600);# [cubic m/s]\n",
+ "Ad = qC/Vd;# [square m]\n",
+ "# From Table 6.2 (Pg 169):\n",
+ "# Allowing for supports and unperforated area:\n",
+ "At = Aa/0.65;# [square m]\n",
+ "T = (At*4/math.pi)**0.5;# [m]\n",
+ "An = At-Ad;# [square m]\n",
+ "\n",
+ "\n",
+ "# Drop Size:\n",
+ "alpha1 = 10.76;\n",
+ "alpha2 = 52560;\n",
+ "alpha3 = 1.24*10**6;\n",
+ "alpha4 = 3.281;\n",
+ "abcissa = (alpha2*sigma*Do/delta_Density)+(alpha3*Do**1.12*Vo**0.547*viscosity_c**0.279/delta_Density**1.5);\n",
+ "Parameter = alpha1*Density_d*Vo**2/(delta_Density);\n",
+ "ordinate = 0.024;\n",
+ "dp = ordinate/alpha4;\n",
+ "\n",
+ "# Coalesced layer:\n",
+ "Vn = qD/An;# [m/s]\n",
+ "# From Eqn. 10.80:\n",
+ "ho = (Vo**2-Vn**2)*Density_d/(2*g*0.67**2*delta_Density);# [m]\n",
+ "hD = ho;\n",
+ "# From Eqn. 10.82:\n",
+ "hC = 4.5*Vd**2*Density_c/(2*g*delta_Density);# [m]\n",
+ "# From Eqn. 10.78:\n",
+ "h = hC+hD;\n",
+ "# Since this is very shallow, increase it by placing an orifice at the bottom of the downspout.\n",
+ "# VR: Velocity through the restriction.\n",
+ "# hR: Corresponding depth of the coalesced layer.\n",
+ "# Assume:\n",
+ "Vr = 0.332;# [m/s]\n",
+ "hr = (Vr**2-Vd**2)*Density_c/(2*0.67**2*delta_Density);\n",
+ "Ar = qC/Vr;# [square m]\n",
+ "dr = (4*Ar/math.pi)**0.5;# [m]\n",
+ "h = h+hr;# [m]\n",
+ "# The above results are satisfacyory.\n",
+ "Z = 0.35;# [m]\n",
+ "# Lead the downspout apron to within 0.1 m of the tray below.\n",
+ "\n",
+ "# Dispersed-phase holdup:\n",
+ "# From Eqn. 10.48:\n",
+ "Vsphi_D = Vn;\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 165.2;\n",
+ "abcissa = 30.0;\n",
+ "def f75(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vtl = fsolve(f75,7);# [m/s]\n",
+ "# For solids:\n",
+ "# From Fig. 10.48 (Pg 536):\n",
+ "abcissa = dp/(3*viscosity_c**2/(4*Density_c*delta_Density*g))**(1.0/3);\n",
+ "phi_D = [0, 0.1 ,0.2 ,0.3];\n",
+ "# Corresponding ordinates, from Fig. 10.48 (Pg 536):\n",
+ "ordinate1 = [8.8, 5.9 ,4.3 ,3.0];\n",
+ "Value1 = 1.0/(4*viscosity_c*delta_Density*g/(3*Density_c**2))**(1.0/3);\n",
+ "Val = numpy.zeros((4,7));\n",
+ "# Val = [phi_D ordinate Vs(1-phi_D) (Vs for solids) Vs/Vt (Vs for liquids) (Vs*phi_D (for liquids))]\n",
+ "for i in range(0,4):\n",
+ " Val[i,0] = phi_D[i];\n",
+ " Val[i,1] = ordinate1[i];\n",
+ " Val[i,2] = Val[i,1]/Value1;\n",
+ " Val[i,3] = Val[i,2]/(1-Val[i,0]);\n",
+ " Val[i,4] = Val[i,3]/Val[0,3];\n",
+ " Val[i,5] = Vtl*Val[i,4];\n",
+ " Val[i,6] = Val[i,5]*Val[i,0];\n",
+ "\n",
+ "\n",
+ "# By Interpolation:\n",
+ "Phi_D = 0.1;\n",
+ "\n",
+ "thetha_f =0.2498 # s\n",
+ "# From Eqn. 10.87:\n",
+ "const = 1.5;\n",
+ "kLDf = const*(Dd/(math.pi*thetha_f))**0.5;# [m/s]\n",
+ "# From Eqn. 10.86\n",
+ "KLDf = 1.0/((1.0/kLDf)*(1+((1.0/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# The ordinate of Fig. 10.47 for the drops larger than 70. Hence mass transfer coeffecient during drop rise is given by Eqn. 10.89:\n",
+ "# From Eqn. 10.91:\n",
+ "b = 1.052*dp**0.225;\n",
+ "# From Eqn. 10.90:\n",
+ "omega = (1.0/(2*math.pi))*math.sqrt(192*sigma*b/(dp**3*((3*Density_d)+(2*Density_c))));# [1/s]\n",
+ "Del = 0.2;\n",
+ "kLDr = math.sqrt((4.0*Dd*omega/math.pi)*(1+Del+(1.0/2)*Del**2));\n",
+ "KLDr = 1.0/1/((1/kLDr)*(1+((1/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# From Eqn. 10.98:\n",
+ "EMD = ((4.4*KLDf/Vo)*(dp/Do)**2)+(6*KLDr*Phi_D*(Z-h)/(dp*Vn))/(1+((0.4*KLDf/Vo)*(dp*1.0/Do)**2)+(3*KLDr*Phi_D*(Z-h)/(dp*Vn)));\n",
+ "print\"Stage Efficiency: \",round(-EMD,3)\n",
+ "# The solution in the textbook is incorrect\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.8 - Page: 539\n",
+ "\n",
+ "\n",
+ "Stage Efficiency: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.9: Pg-551"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.9\n",
+ "# Page: 551\n",
+ "\n",
+ "print('Illustration 10.9 - Page: 551\\n\\n');\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#****Data****#\n",
+ "B = 20000;# [kg/h]\n",
+ "#******#\n",
+ "\n",
+ "# x and y are taken in weight fraction acetic acid.\n",
+ "x1 = 0.30;# [Wt fraction]\n",
+ "xF = 0.30;# [Wt fraction]\n",
+ "y2 = 0;# [Wt fraction]\n",
+ "x2 = 0.02;# [Wt fraction]\n",
+ "y1 = 0.10;# [Wt fraction]\n",
+ "# The operating diagram is plotted in Fig. 10.23:\n",
+ "# Data = [x x_star]\n",
+ "# From Fig. 10.23 (Pg 503):\n",
+ "Data = numpy.array([[0.30 ,0.230],[0.25 ,0.192],[0.20 ,0.154],[0.15, 0.114],[0.10, 0.075],[0.05, 0.030],[0.02, 0]]);\n",
+ "Val = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " Val[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x\");\n",
+ "plt.ylabel(\"1/(x-x*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# From Area Under the curve:\n",
+ "Area = 8.40;\n",
+ "# The mutual solubility of water and isopropyl ether is very small.\n",
+ "Ma = 18.0;# [kg/kmol water]\n",
+ "Mb = 60.0;# [kg/kmol isopropyl ether]\n",
+ "r = Ma/Mb;\n",
+ "# From Eqn. 10.110:\n",
+ "NtoR = Area+(1.0/2)*math.log(1-x2/(1-x1))+(1.0/2)*math.log(x2*(r-1)+1.0/(x1*(r-1)+1));\n",
+ "# Since the operating line and equilibrium line are parallel:\n",
+ "Np = NtoR;\n",
+ "print\"Number of theoretical Units: \\n\",round(NtoR,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.9 - Page: 551\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78c3a58>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical Units: \n",
+ "8.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.10:pg-552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.10\n",
+ "# Page: 552\n",
+ "\n",
+ "print('Illustration 10.10 - Page: 552\\n\\n');\n",
+ "\n",
+ "# Solution\n",
+ "import math\n",
+ "#****Data****#\n",
+ "B = 1150;# [kg/h]\n",
+ "#*******#\n",
+ "\n",
+ "# x and y are taken in weight ratio.\n",
+ "x1_prime = 0.0101;# [Wt. fraction]\n",
+ "xF_prime = 0.0101;# [Wt. fraction]\n",
+ "y2_prime = 0;# [Wt. fraction]\n",
+ "x2_prime = 0.001001;# [Wt. fraction]\n",
+ "y1_prime = 0.0782;# [Wt. fraction]\n",
+ "# From Illustration 10.4:\n",
+ "A = 990.0;# [kg/h]\n",
+ "# At the dilute end:\n",
+ "m1_prime = 0.798;\n",
+ "Value1 = m1_prime*B/A;\n",
+ "# At the concentrated end:\n",
+ "m2_prime = 0.953;\n",
+ "Value2 = m2_prime*B/A;\n",
+ "ValueAv = (Value1*Value2)**0.5;\n",
+ "# From Eqn. 10.116:\n",
+ "# Since y2_prime = 0\n",
+ "Value3 = x2_prime/x1_prime;\n",
+ "NtoR = (math.log((1.0/Value3)*(1-(1/ValueAv))+(1/ValueAv)))/(1-(1/ValueAv));\n",
+ "print\"Number of theoretical Unit : \",round(NtoR,1),\"\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.10 - Page: 552\n",
+ "\n",
+ "\n",
+ "Number of theoretical Unit : 8.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter10_2.ipynb b/Mass_-_Transfer_Operations/Chapter10_2.ipynb
new file mode 100755
index 00000000..df27b4e6
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter10_2.ipynb
@@ -0,0 +1,1366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9fbb8ba54aec06ad3c69036b535306d5fcf2bbf41aaf2bb73bb23d87c87b8396"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Liquid Extraction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.1: Page 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.1\n",
+ "# Page: 494\n",
+ "\n",
+ "print'Illustration 10.1 - Page: 494\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "xF = 0.30;# [mol fraction]\n",
+ "yS = 0;# [mol fraction]\n",
+ "S1 = 40.0;# [kg]\n",
+ "B1 = 40.0;# [kg]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data at 20 OC:\n",
+ "# Wa: Wt. percent of a\n",
+ "# Wb: Wt. percent of b\n",
+ "# Wc: Wt. percent of c\n",
+ "# Data1 = [Wc Wa Wb]\n",
+ "# Data1: water layer\n",
+ "Data1 = numpy.array([(0.69 ,98.1, 1.2),(1.41, 97.1 ,1.5),(2.89 ,95.5 ,1.6),(6.42 ,91.7 ,1.9),(13.30, 84.4, 2.3),(25.50 ,71.1 ,3.4),(36.70 ,58.9 ,4.4),(44.30 ,45.1 ,10.6),(46.40 ,37.1 ,16.5)])\n",
+ "# Data2: isopropyl ether layer\n",
+ "Data2 = numpy.array([(0.18 ,0.5 ,99.3),(0.37, 0.7 ,98.9),(0.79, 0.8, 98.4),(1.93 ,1, 97.1),(4.82, 1.9, 93.3),(11.40, 3.9, 84.7),(21.60, 6.9, 71.5),(31.10, 10.8, 58.1),(36.20 ,15.1 ,48.7)])\n",
+ "\n",
+ "plt.plot((Data1[:,2])/100,(Data1[:,0])/100,label=\"x Vs fraction ether\")\n",
+ "plt.plot((Data2[:,2])/100,(Data2[:,0])/100,label=\"y Vs fraction ether\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='lower center');\n",
+ "ax=pylab.gca()\n",
+ "ax.set_xlabel(\"Wt fraction of isopropyl ether\");\n",
+ "ax.set_ylabel(\"Wt fraction of acetic acid\");\n",
+ "plt.ylim((0,0.3))\n",
+ "plt.xlim((0,1))\n",
+ "plt.show();\n",
+ "# x: Wt fraction of acetic acid in water layer.\n",
+ "# y: Wt fraction of acetic acid in isopropyl layer.\n",
+ "\n",
+ "# The rectangular coordinates of Fig 10.9(a) will be used but only upto x = 0.30\n",
+ "\n",
+ "# Stage 1:\n",
+ "F = 100;# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "M1 = F+S1;# [kg]\n",
+ "# From Eqn. 10.5:\n",
+ "xM1 = ((F*xF)+(S1*yS))/M1;\n",
+ "# From Fig. 10.15 (Pg 495):\n",
+ "# Point M1 is located on the line FB and with the help of tie line passing through M1:\n",
+ "x1 = 0.258;# [mol fraction]\n",
+ "y1 = 0.117;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E1 = (M1*(xM1-x1)/(y1-x1));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R1 = M1-E1;# [kg]\n",
+ "\n",
+ "# Stage 2:\n",
+ "S2 = 40;# [kg]\n",
+ "B2 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M2 = R1+B2;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM2 = ((R1*x1)+(S2*yS))/M2;\n",
+ "# Point M2 is located on the line R1B and the tie line passing through R2E2 through M2:\n",
+ "x2 = 0.227;\n",
+ "y2 = 0.095;\n",
+ "# From Eqn. 10.8:\n",
+ "E2 = (M2*(xM2-x2)/(y2-x2));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R2 = M2-E2;# [kg]\n",
+ "\n",
+ "# Stage 3:\n",
+ "S3 = 40;# [kg]\n",
+ "B3 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M3 = R2+B3;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM3 = ((R2*x2)+(S3*yS))/M3;\n",
+ "# Point M3 is located on the line R2B and the tie line passing through R3E3 through M3:\n",
+ "x3 = 0.20;# [mol fraction]\n",
+ "y3 = 0.078;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E3 = (M3*(xM3-x3)/(y3-x3));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R3 = M3-E3;# [kg]\n",
+ "Ac = x3*R3;\n",
+ "print\"The composited extract is\",round((E1+E2+E3),2),\" kg\\n\"\n",
+ "print\"The acid content is \",round(((E1*y1)+(E2*y2)+(E3*y3)),2),\" kg\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# If an extraction to give the same final raffinate concentration were to be done in single stage, the point M would be at the intersection of tie line R3E3 and the line BF.\n",
+ "x = 0.20;# [mol fraction]\n",
+ "xM = 0.12;# [mol fraction]\n",
+ "# From Eqn. 10.6:\n",
+ "S = F*(xF-xM)/(xM-yS);# [kg]\n",
+ "print round(S,2),\"kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.1 - Page: 494\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nhs2vBOrlc6whwIB8lmu3bt10yJAhOmTIEH322Wf1nnvStXt3Jynp6emanp6em6R4ns957sfxvXyI\nnXvsSzeVxmWXXaYnnniitm7dOvfLLj9ffPGFJicn6969e1VV9fTTT9cRI0bkrm/cuLG+9NJLun37\n9kLPl56enm+BsWbNmgL32bp1q4qI/vnnn5qdna1VqlTRpUuXHrJdzrEKKjDeeOMNPe200w7ap0OH\nDjp27FhVVU1NTdXHH388d92oUaM0LS0t35huu+02feCBBw5adtxxx+lnn32mqgUXGOvXr89d1q5d\nO33rrbdUVbVFixYHbb9hwwatUKGCZmdne8pR+HutrN/Pzz77bNR8Xouan756ujbo3UCnz5peJsdL\nT0/Xbt265X5fRmOBUR74EacTw4ruVULLPNtcBHykoQJmrvu8KlDdfV4N+BLolM85NK/nn1e9445D\nFse98DdKWYuF//omT56sIqKvvPJKkds2b95cJ02apKtXr9YKFSro//73v9x18+fP1y5dumjNmjX1\n7LPP1jlz5uR7jIIKjP379+cuy87O1oEDB2qzZs20Ro0ampycrCKiP/30k/7+++8qIrpr165Djl1U\ngfHkk0/qVVddddA+1157rT7xxBOq6hQYr776ar775tW5c2etWrWqJicn507VqlXTSZMmqWrBBUZ4\nbOHnq1KlSu5rzZmqVKmiGzZsyDdHefn5XvPzM+KHyyddro99+pgvxy5pgeFbG4aq7gd6A9OB74C3\nVHWFiPQSkV7uNh8BP4nIauAl4A539/rA5yKyGPga+FBVZ3g5b6L+SioW6mf9snPnTvr3788tt9zC\nkCFDcuvMC3LjjTfyxhtvMH78eNLS0qhbt27uur/85S+8//77bNq0icsvv5yrr766WLGEd9Q4YcIE\nJk+ezOzZs9m+fTtr1qwBnH/S6tSpQ+XKlVm9enWhx8hPw4YN+fnnnw9a9vPPP9OwYd4mwqI1btyY\n++67j61bt+ZOO3fu5JprrvEUS37HmzZt2kHH2717Nw0aNMjdJqjOLGPtM5Iz0NIv238JOpRcvt6H\noaofq+pxqtpcVf/pLntJVV8K26a3u761qi50l/2kqm3c6cScfb3Ys8d+JZVo+vXrR7t27Xj55Ze5\n+OKLue222wrd/sYbb2TmzJm88sordOvWLXd5VlYWEyZMYPv27SQlJVG9enWSkpJKHNfOnTupVKkS\n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\niRUYxhhjPPl/ptoLDFmMWJUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7727f28>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composited extract is 135.05 kg\n",
+ "\n",
+ "The acid content is 13.01 kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "150.0 kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2: Page 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.2\n",
+ "# Page: 497\n",
+ "\n",
+ "print'Illustration 10.2 - Page: 497\\n\\n'\n",
+ "\n",
+ "print'Illustration 10.2 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:kerosene c:Nicotine\n",
+ "xF = 0.01;# [wt fraction nicotine]\n",
+ "F = 100.0;# [kg]\n",
+ "B = 150.0;# [kg]\n",
+ "#******#\n",
+ "\n",
+ "# Equilibrium data:\n",
+ "# x_prime = kg nicotine/kg water\n",
+ "# y_prime = kg nicotine/kg kerosene\n",
+ "# Data = [x_prime y_prme]\n",
+ "Data = numpy.array([[0 ,0],[0.001011 ,0.000807],[0.00246, 0.001961],[0.00502, 0.00456],[0.00751, 0.00686],[0.00998 ,0.00913],[0.0204, 0.01870]])\n",
+ "xF_prime = xF/(1-xF);# kg nicotine/kg water\n",
+ "A = F*(1-xF);# [kg]\n",
+ "AbyB = A/B;\n",
+ "\n",
+ "def f64(x):\n",
+ " return -AbyB*(x-xF)\n",
+ "x = numpy.arange(0,0.01+0.001,0.001);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium line\")\n",
+ "plt.plot(x,f64(x),label=\"Operating Line\");\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.2(a)\")\n",
+ "plt.show()\n",
+ "# The operating line and equilibrium line intersect at:\n",
+ "x1_prime = 0.00425;# [kg nicotine/kg water]\n",
+ "y1_prime = 0.00380;# [kg nicotine/kg water]\n",
+ "extract = A*(0.01011-x1_prime);\n",
+ "print extract*100,\"% of nicotine is extracted.\\n\\n\"\n",
+ "\n",
+ "print'Illustration 10.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "B = 50.0;# [kg]\n",
+ "# For each stage:\n",
+ "AbyB = A/B;\n",
+ "def f65(x1):\n",
+ " return -AbyB*(x1-xF)\n",
+ "x1 = numpy.arange(0,0.01+0.001,0.001)\n",
+ "def f66(x2):\n",
+ " return -AbyB*(x2-0.007)\n",
+ "x2 = numpy.arange(0,0.01+0.001,0.001)\n",
+ "def f67(x3) :\n",
+ " return -AbyB*(x3-0.005)\n",
+ "x3 =numpy.arange(0,0.01+0.001,0.001)\n",
+ "\n",
+ "plot(Data[:,0],Data[:,1],label=\"Equilibrium line\")\n",
+ "plt.plot(x1,f65(x1),label=\"Operating Line from xF\")\n",
+ "plt.plot(x2,f66(x2),label=\"Operating Line from 0.007\")\n",
+ "plt.plot(x3,f67(x3),label=\"Operating Line from 0.005\")\n",
+ "plt.grid('on');\n",
+ "legend(loc=\"upper right\");\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0, 0.010))\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.2(b)\")\n",
+ "plt.show()\n",
+ "# The final raffinate composition:\n",
+ "x3_prime = 0.0034;# [kg nicotine/kg water]\n",
+ "extract = A*(0.01011-x3_prime);\n",
+ "print extract*100,\" % of nicotine is extracted.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.2 - Page: 497\n",
+ "\n",
+ "\n",
+ "Illustration 10.2 (a)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x77359b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "58.014 % of nicotine is extracted.\n",
+ "\n",
+ "\n",
+ "Illustration 10.2 (b)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\na67R5557Ttu0aaNlypTRG264QY+4/R/+/PPP2rp1a42IiNDGjRtrQkJClv21b99eQ0NDtXjx4lqm\nTBndunWr9ujRQ/v06aM33nijlipVSpcsWaKbN2/Wa665RiMiIrRhw4b6+eefp7fRo0cP7du3r954\n441aunRpveqqq/TQoUM6YMAAjYiI0EsuuUTXrl2bZf8//fSTVqhQQfft26eqquvWrdPIyEhNTExU\nVdWYmBhdsmRJlnW9SXb/J67r9n0W29mYPx12ftAs/usvjfn5Z01KTratzYKydOlS+xobNUq1UyfV\n1FT72iwABR2bPzuZL774QosUKZL+QepOjx49tHv37qpqOYqwsDCdM2eOJicn69ixY7VWrVqanJys\nKSkp2qxZMx0xYoRevHhRd+7cqbVr19bFixdnqDtv3jxVVT179qyuXr1af/nlF01JSdHdu3drgwYN\ndPz48el9Z3YKmZ1MTEyMXnHFFXro0CE9evSoNmjQQCdNmpQ+psqVK+vmzZv1zJkzes8992hISIgt\nTqZu3bq6bds2PXv2rLZr104HDx6sqqr79+/X8uXL6xdffKGqql9//bWWL19e//zzT4/67NGjh5Yt\nW1aXLVumqqonT57UOnXq6KhRo/TixYv67bffapkyZdIdQY8ePbRChQq6Zs0aPXfunF577bVas2ZN\nfffddzU1NVWfffZZbd++fZZ9q6oOHTpUr732Wj1z5oxedtll+vrrr2f43X7zzTfZ1vUWvnIyJlzm\nATeUK0eb8HCG7drltCne4Ykn4MABmDXLaUt8hjwvBT7yw5EjR6hQoUKWGZUrV67MkSNH0s9btGjB\n7bffTmhoKAMHDuTcuXP8/PPPrFy5kiNHjvDss89SpEgRatWqxcMPP8wst/fvyiuv5OabbwagePHi\nNGvWjFatWhESEkLNmjWJj4/nu+++y5PtAwYMoHLlykRGRtK1a1fWrVsHWJLRDz74IA0aNKBEiRI8\n//zzaV/0CoSI8MADD1C3bl2KFy9Ot27d0vt877336Ny5M506dQLguuuuo0WLFixatCjb9txtEhFu\nvfVWWrduDcC6des4ffo0gwcPpkiRIrRv354uXbpkkKS+/fbbadq0KcWKFeO2226jVKlS3HvvvekS\n02vXrs227+HDh3PixAlatWpFjRo16NevXwa73OW4b7/99vz9wvyUIk4bECiMq1uXRitX8u9KlWhW\n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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x79b5f28>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "66.429 % of nicotine is extracted.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.3: Page 502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.3\n",
+ "# Page: 502\n",
+ "\n",
+ "print'Illustration 10.3 - Page: 502\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "F = 8000;# [kg/h]\n",
+ "xF = 0.30;# [wt. fraction acetic acid]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 10.1 (Pg 494)\n",
+ "# Equilibrium Data:\n",
+ "# Eqb = [y_star*100 x*100]\n",
+ "Eqb = numpy.array([[0.18 ,0.69],[0.37 ,1.41],[0.79 ,2.89],[1.93, 6.42],[4.82, 13.30],[11.40, 25.50],[21.60 ,36.70],[31.10 ,44.30],[36.20, 46.40]]);\n",
+ "\n",
+ "# Solution(a)\n",
+ "\n",
+ "# From Figure 10.23 (Pg 503):\n",
+ "# For minimum solvent rate:\n",
+ "y1 = 0.143;# [Wt fraction of acetic acid in isopropyl ether layer]\n",
+ "xM = 0.114;# [Wt fraction of acetic acid in water layer]\n",
+ "# From Eqn. 10.24:\n",
+ "Bm = (F*xF/xM)-F;# [kg/h]\n",
+ "print\"Minimum solvent rate: \",Bm,\" kg/h\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "B = 20000.0;# [kg solvent/h]\n",
+ "yS = 0;\n",
+ "S = B;\n",
+ "# From Eqn 10.24:\n",
+ "xM = ((F*xF)+(S*yS))/(F+S);\n",
+ "# From Fig. 10.23 (Pg 503):\n",
+ "y1 = 0.10;\n",
+ "# Operating curve data:\n",
+ "# Operat = [YsPlus1 Xs]\n",
+ "Operat = numpy.array([[0 ,0.02],[0.01 ,0.055],[0.02 ,0.09],[0.04 ,0.150],[0.06, 0.205],[0.08, 0.250],[0.1 ,0.3]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,1]/100,Eqb[:,0]/100,label=\"Operating Line\")\n",
+ "plt.plot(Operat[:,1],Operat[:,0],label=\"Equilibrium Line\")\n",
+ "plt.grid('on');\n",
+ "plt.ylim((0,y1));\n",
+ "plt.xlim((0,xF));\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"Wt. fraction acetic acid in water solution\");\n",
+ "plt.ylabel(\"Wt. fraction acetic acid in isopropyl ether solution\");\n",
+ "plt.title(\"Solution 10.3\")\n",
+ "plt.show()\n",
+ "# From Figure scf(22):\n",
+ "xNp = 0.02;\n",
+ "Np = 7.6;\n",
+ "# By acid balance:\n",
+ "M = B+F;\n",
+ "E1 = M*(xM-xNp)/(y1-xNp);# [kg/h]\n",
+ "RNp = M-E1;# [kg/h]\n",
+ "print\"Number of theoretical Stages: \\n\",Np\n",
+ "print\"Weight of the extract:\",E1,\"kg/h\\n\"\n",
+ "print\"Weight of the raffinate \",RNp,\" kg/h\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.3 - Page: 502\n",
+ "\n",
+ "\n",
+ "Minimum solvent rate: 13052.6315789 kg/h\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78da7f0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical Stages: \n",
+ "7.6\n",
+ "Weight of the extract: 23000.0 kg/h\n",
+ "\n",
+ "Weight of the raffinate 5000.0 kg/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.4: Page 506"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.4\n",
+ "# Page: 506\n",
+ "\n",
+ "print'Illustration 10.4 - Page: 506\\n\\n'\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import numpy\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:kerosene c:Nicotine\n",
+ "F = 1000.0;# [kg/h]\n",
+ "xF = 0.01;# [wt. fraction acetic acid]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data:\n",
+ "# x_prime = kg nicotine/kg water\n",
+ "# y_prime = kg nicotine/kg kerosene\n",
+ "# Eqb = [x_prime y_prme]\n",
+ "Eqb = numpy.array([[0 ,0],[0.001011, 0.000807],[0.00246, 0.001961],[0.00502 ,0.00456],[0.00751, 0.00686],[0.00998, 0.00913],[0.0204 ,0.01870]]);\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "A = 1000*(1-xF);# [kg water/h]\n",
+ "yS = 0;\n",
+ "yS_prime = 0;\n",
+ "y1_prime = 0;\n",
+ "xF_prime = xF/(1-xF);# [kg nicotine/kg water]\n",
+ "# For xF_prime = 0.0101:\n",
+ "yk = 0.0093;\n",
+ "xNp = 0.001;# [wt. fraction acetic acid]\n",
+ "xNp_prime = xNp/(1-xNp);# [kg nicotine/kg water]\n",
+ "# For infinite stages:\n",
+ "# Operating Line should pass through (xNp_prime,y1_prime) & (xF_prime,yk)\n",
+ "Operat = numpy.array([[xNp_prime, y1_prime],[xF_prime ,yk]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1],label=\"equilibrium Line\")\n",
+ "plt.plot(Operat[:,0],Operat[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine / kg water\");\n",
+ "plt.ylabel(\"kg nicotine / kg kerosene\");\n",
+ "plt.title(\"Solution 10.4(a)\")\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0,0.01))\n",
+ "plt.show()\n",
+ "AbyBm = (yk-y1_prime)/(xF_prime-xNp_prime);\n",
+ "Bm = A/AbyBm;# [kg kerosene/h];\n",
+ "print\"Mininmum kerosene rate: \",round(Bm,2),\" kg kerosene/h \\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "B = 1150.0;# [kg/h]\n",
+ "AbyB = A/B;\n",
+ "# From Eqn. 10.36:\n",
+ "y2_prime = ((xF_prime-xNp_prime)*AbyB)+yS_prime;# [kg nicotine/kg kerosene]\n",
+ "# Operating Line should pass through (xNp_prime,y1_prime) & (xF_prime,y2_prime)\n",
+ "Operat = numpy.array([[xNp_prime, y1_prime],[xF_prime, y2_prime]]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1],label=\"equilibrium Line\")\n",
+ "plt.plot(Operat[:,0],Operat[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"kg nicotine/kg water\");\n",
+ "plt.ylabel(\"kg nicotine/kg kerosene\");\n",
+ "plt.title(\"Solution 10.4(b)\")\n",
+ "plt.xlim((0,0.012))\n",
+ "plt.ylim((0,0.01))\n",
+ "plt.show()\n",
+ "# From Figure:\n",
+ "Np = 8.3;\n",
+ "print\"Number of theoretical stages: \\n\",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.4 - Page: 506\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78b2e48>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mininmum kerosene rate: 968.71 kg kerosene/h \n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c37160>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical stages: \n",
+ "8.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.5: Page 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.5\n",
+ "# Page: 510\n",
+ "\n",
+ "print'Illustration 10.5 - Page: 510\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "import numpy\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:ethylbenzne b:diethylene glycol c:styrene\n",
+ "F = 1000;# [kg/h]\n",
+ "xF = 0.5;# [Wt. fraction styrene]\n",
+ "xPE = 0.9;# [kg styrene/kg hydrocarbon]\n",
+ "xRNp = 0.1;# [kg styrene/kg hydrocarbon]\n",
+ "#******#\n",
+ "\n",
+ "# X: kg styrene/kg hydrocarbon\n",
+ "# Y: kg styrene/kg hydrocarbon\n",
+ "# N:kg glycol/kg hydrocarbon\n",
+ "# Equilibrium data:\n",
+ "# Hydrocarbon rich solutions:\n",
+ "# Eqb1 = [X N]\n",
+ "Eqb1 = numpy.array([[0 ,0.00675],[0.0870 ,0.00817],[0.1833, 0.00938],[0.288 ,0.01010],[0.384 ,0.01101],[0.458, 0.01215],[0.464 ,0.01215],[0.561 ,0.01410],[0.573, 0.01405],[0.781 ,0.01833],[1 ,0.0256]]);\n",
+ "# Solvent rich solutions:\n",
+ "# Eqb2 = [Y_star N]\n",
+ "Eqb2 = numpy.array([[0 ,8.62],[0.1429 ,7.71],[0.273, 6.81],[0.386, 6.04],[0.480, 5.44],[0.557, 5.02],[0.565, 4.95],[0.655, 4.46],[0.674, 4.37],[0.833, 3.47],[1 ,2.69]]);\n",
+ "\n",
+ "plt.plot(Eqb1[:,0],Eqb1[:,1],label=\"X Vs N\")\n",
+ "plt.plot(Eqb2[:,0],Eqb2[:,1],label=\"Y Vs N\")\n",
+ "plt.grid('on');\n",
+ "legend(loc='upper right');\n",
+ "plt.xlabel(\"kg styrene / kg hydrocarbon\");\n",
+ "plt.ylabel(\"kg diethylene glycol / kg hydrocarbon\");\n",
+ "plt.title(\"Equilibrium Data\")\n",
+ "# In Fig. 10.31 (Pg 512):\n",
+ "# Point E1 is located.\n",
+ "NE1 = 3.10;\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "# From Fig. 10.30 (Pg 511):\n",
+ "Np = 9.5;\n",
+ "print\"Minimum number of theoretical stages:\\n\",Np\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "# The tie line when extended passes through F provides the minimum reflux ratio.\n",
+ "# From the plot:\n",
+ "N_deltaEm = 20.76;\n",
+ "# From Eqn. 10.48:\n",
+ "Ratiom = (N_deltaEm-NE1)/NE1;# [kg reflux/kg extract product]\n",
+ "print\"Minimum extract reflux ratio: \",round(Ratiom,3),\"kg reflux/kg extract product\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (c)\n",
+ "\n",
+ "Ratio = 1.5*Ratiom;# [kg reflux/kg extract product]\n",
+ "# From Eqn. 10.48;\n",
+ "N_deltaE = (Ratio*NE1)+NE1;\n",
+ "# Point deltaE is plotted.\n",
+ "# A straight line from deltaE through F intersects line X = 0.10 at deltaR.\n",
+ "N_deltaR = -29.6;\n",
+ "# In Fig. 10.31 (Pg 512):\n",
+ "# Random lines are drawn from deltaE for the concentrations to the right of F, and from deltaR for those to the left,and intersection of these with the solubility curves provide the coordinates of the opeating curve.\n",
+ "# The tie line data are plotted directly to provide the equilibrium curve.\n",
+ "# From Fig. 10.32 (Pg 513):\n",
+ "Np = 15.5;\n",
+ "# Feed is to be introduced in the seventh from the extract product end of cascade.\n",
+ "# From Fig. 10.31 (Pg 512):\n",
+ "XRNp = 0.10;\n",
+ "NRNp = 0.0082;\n",
+ "# Basis:1 hour.\n",
+ "# Overall plant balance:\n",
+ "# (1): PE_prime+RNp_prime = F\n",
+ "# C Balance\n",
+ "# (2): PE_prime*(1-XRNp)+RNp_prime*XRNp = F*xF\n",
+ "# Solving (1) & (2) simultaneously:\n",
+ "a = numpy.array([[1 ,1],[(1-XRNp), XRNp]]);\n",
+ "b = numpy.array([F,F*xF]);\n",
+ "soln =lin.solve(a,b)\n",
+ "PE_prime = soln[0];# [kg/h]\n",
+ "RNp_prime = soln[1];# [kg/h]\n",
+ "RO_prime = Ratio*PE_prime;# [kg/h]\n",
+ "# From Eqn 10.39:\n",
+ "E1_prime = RO_prime+PE_prime;# [kg/h]\n",
+ "BE = E1_prime*NE1;# [kg/h]\n",
+ "E1 = BE+E1_prime;# [kg/h]\n",
+ "RNp = RNp_prime*(1+NRNp);# [kg/h]\n",
+ "S = BE+(RNp_prime*NRNp);# [kg/h]\n",
+ "print\"Number of theoretical stages: \\n\",Np\n",
+ "print\"Extract Flow Rate: \",round(E1,2),\" kg/h\\n\"\n",
+ "print\"solvent Flow Rate: \",S,\" kg/h\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.5 - Page: 510\n",
+ "\n",
+ "\n",
+ "Minimum number of theoretical stages:\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9.5\n",
+ "\n",
+ "\n",
+ "Minimum extract reflux ratio: 5.697 kg reflux/kg extract product\n",
+ "\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages: \n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15.5\n",
+ "Extract Flow Rate: 19567.58 kg/h\n",
+ "\n",
+ "solvent Flow Rate: 14799.1 kg/h\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEZCAYAAACU3p4jAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VGX2wPHvCUWkLBFQEASC9CaRJkrLqssiiCCg0sQI\nK0UUsazgogLuT7GsoggIIhpABaSJ2FCRoBSlSEc6CKggWJBOIOf3x71hhpgyk8nNpJzP88yTufU9\nOUneuTn33veKqmKMMSb3iwh3AMYYY7KGdfjGGJNHWIdvjDF5hHX4xhiTR1iHb4wxeYR1+MYYk0dY\nh29yFBGpICJHRUTc6XgR6e2+7y4iC/zWTRSRK4PY9wXbG5PbWIdvPCEie0TkhNs5J71Gh7pfVd2r\nqsXUdwOJui9U9R1V/WcI+w5p+2C4H1QnReRPETkiIqtEZLCIFAxiH0F9oBljHb7xigI3u51z0mtg\nuINKjYjky+ImFRigqn8DygAPA12Aj4Pcj2R2YCb3sg7fZDkRiRCR/4nIIRHZKSID3KPVCHf5HhG5\nwW/94SIy1X0f5b9usv3GisjXyWa3dds4JCLP+5WCYkVkqYi8JCKHgeH+26fUTrLykf/2v4vIDhG5\nTkTuFpG9InJQRHqmlwoAVT2pqouBW4BrRaSt20ZjEVnu7v8nEXlVRAq4y75y97HO/e/pNhGJFJEP\nReQXEflNROaLSLnAfiomL7AO33gptaPPPkBbIBpoCHTGLcu4NIXpjOoANADqA+2BXn7LGgM7gcuA\npwPYV/K4GgPrgBLANOA9t53KQA9gjIgUTmd/vgnVfcAqoLk76yzwAFASuBa4AbjXXbeFu85V7n9P\nM3H+nicBFdzXSWBMAN+XySOswzdeEeB99+g06dXbXXY7MEpVf1TV34FnSLs0EUrZ4jlV/cPtTF8G\nuvot+0lVx6pqoqqeysC+d6vqZPd8wntAWeApVU1Q1c+BM0CVIPf5E3AJgKp+p6or3Ph+AF4HWqa2\noar+pqpzVfWUqh7DyWuq65u8J3+4AzC5lgLtVfXLFJZdDuzzm97rYRzJ2ymbyrKMOOj3/iSAqh5K\nNq9okPu8AlgCICLVgJdw/kMpjPP3uiq1Dd3/JkYB/8T90ACKioj4neQ2eZgd4Ztw+Bmn5JCkQrLl\nx4EiftNlQmgreTs/+k2n1Qked7/6l2RCiSNdIlIepySUdB7iNWAzUEVViwNDSftv9mGgGtDYXb8l\nzn9HdmLXANbhG2+l1tG8BwwUkXIicgkwhAs737VAFxHJLyINgU5kvI7/iHsyszwwEJgRyEbukfqP\nwJ0ikk9EeuHU5jNT0gnkwiLSEpgHfKuqSVfqFAWOAidEpAbQP9n2B5PFVBTnv4ojIlICGJbJ8Zoc\nzjp846X5ya7Dn+3OnwgswDnhuQqYzYUfDk/gdGS/A8OBd5LtN7XOP/lJVXA60dXAGuBDnJOaqa2b\nfN49wL+Bw0AtYGk6bQX7oTRGRP4EDuCUYmYCrf2WPwJ0A/7Eqd9PT9bGcGCye36kM845iovdeJcB\nn2QgJpOLiZelPRF5APgXzh/zRFV9xbPGTI4lIlHALiC/qiaGNxpjci/PjvBFpA5OZ98IqAfcLCKZ\n/S+xMcaYAHlZ0qmBU488parngMVARw/bMzmblR6M8ZiXHf5GoLmIlHAvF2uLc8mZMRdQ1T2qms/K\nOcZ4y7Pr8FV1i4g8B3yGc4nbGsD+oI0xJkw8PWl7QUMizwB7VXW83zz7N94YYzJAVYO+v8LTyzJF\n5DL3awXgVuDd5Ouoqr1UGTZsWNhjyC4vy4XlwnKR9iujvB5aYZaIlAQSgHtV9U+P28ux9uzZE+4Q\nsg3LhY/lwsdyETpPO3z1jehnjDEmzOxO22wiNjY23CFkG5YLH8uFj+UidFl20jbFxm0QP2OMCZqI\noNntpK0JXHx8fLhDyDYsFz45ORciYq9MeGUmGw/fGOMZ+w8+NJnd4Ye9pHPg6AFKFy0dthiMMd5w\nyw7hDiNHSy2HObakU3NsTe796F52/7473KEYY0yuFvYO//sB3xNZKJKGExvSY04PNhzcEO6QwiIn\n12ozm+XCx3JhMlPYO/zSRUvzzA3PsGvgLupcVodWb7ei3bR2LNu3LNyhGWNMrhL2Dj9J8ULFGdJs\nCLsG7qJNlTb0mNODlnEt+WT7J3miDhgTExPuELINy4WP5SLzHTt2jEqVKvHuu76RXo4ePUqFChWY\nM2fOX9bv168fd91111/mr1u3jkKFCvHHH38E3HZ8fDwREREMGDDggvnNmjVj8uTJQXwXGZNtOvwk\nFxe4mP6N+rPt/m30bdCXwV8Mpv7r9ZmxcQbnEs+FOzxjTA5XtGhRJkyYwKBBgzh8+DAAjz76KI0b\nN6Zjx78+siM2NpY5c+Zw4sSJC+ZPnTqVdu3aERkZGVT7RYoU4e233+aHH344P8+LSzBTku06/CT5\nI/LTrW431vVbx3///l9GrxhN9THVeX3165w+ezrc4WU6q9X6WC58LBfeaNWqFW3btmXgwIHEx8cz\nc+ZMxo0bl+K6TZo0oVy5csyePfv8vHPnzjFt2jR69uwJwIoVK2jYsCHFixenTJkyPPzww6m2HRkZ\nSWxsLCNGjMjcbyoA2bbDTyIi3FztZpbcvYQ327/J+1ve58rRV/K/Zf/j6Omj4Q7PGJNDjRo1ikWL\nFnHbbbfx4osvctlll6W6bs+ePZkyZcr56S+++IKEhATatGkDwAMPPMCDDz7IkSNH2LVrF7fffnua\nbf/nP/9h9uzZbNu2LXO+mQBl+w4/iYjQomILPu7+MR91+4hVP63iytFX8uSiJzl0/FC4wwuZ1Wp9\nLBc+uTkXIpnzyqjIyEhq167NyZMnufXWW9Nct0ePHixevJiffvoJgClTptC9e3fy5csHQMGCBdm+\nfTuHDx+mcOHCXHPNNWnur3Tp0vTr148nn3wy499ABuSYDt9fdJlopneezvLeyzl47CDVx1TngU8e\nYO+RveEOzRgTINXMeWVUUh39xhtvZPDgwWmuW6FCBVq0aMHUqVM5duwY8+bNO1/OAZg0aRLbtm2j\nZs2aNG7cmI8++ijd9h999FEWLFjA+vXrM/5NBCvMg/hrZvjxzx/1kQWPaInnSmjs+7G6+ZfNmbLf\nrLRo0aJwh5BtWC58cnIuMuvv2wsHDx7USy+9VOPj4/Xnn3/WEiVK6Ndff53mNlOmTNHatWtrXFyc\n1qlTJ9X1Zs2apYUKFdITJ078ZdmiRYv0iiuuOD89fPhwbdeunTZr1kzj4uL+sn5qOXTnB93npnuE\nLyLVRWSiiHwuIovc15cefw4FpWyxsrzQ6gV23L+DypdUJmZyDB1ndGTljyvDHZoxJhu67777uPXW\nW2nZsiVlypTh+eef55577uHMmTOpbtOpUyf27t3L8OHD/zJU89tvv82hQ05puXjx4ogIERHpF1Ae\neughli9fzvfff58lV+kEchS+HugPXAM0dF8NAvk0AR4DNgEbcB5veFGy5al+Sobi2Olj+so3r2j5\nl8rrDZNv0M93fq6JiYmetGWMSZlXf9+hmjt3rpYrV06PHDlywfzrr79eH3/88TS3jY2N1QIFCujP\nP/98wfwePXroZZddpkWLFtU6derovHnzUtx+0aJFWr58+QvmPf/88xoREaGTJ0/+y/qp5ZAMHuGn\nO3iaiKxW1QbBfpCISBTwJVBTVU+LyAzgY1Wd7LeOptd+KBLOJfDuhnd5bulzFC1YlCHNhtChRgci\nJEeeujAmR7HB00IXjsHT5ovIABG5XERKJL0C2O5PnGfZFhaR/EBh4MdgAwxFgXwFuCv6Ljbeu5H/\nNP8Pzy19jlpja/HWmrc4cy71f93Cwa639rFc+FguTGYKpMOPBR4BlgGr3deq9DZS1d+AF4G9wE/A\nH6r6RYYjDUGERNChRge+6f0N49qO492N71JldBVe+eYVjp85Ho6QjDEmy6X7ABRVjcrIjkWkMjAI\niAKOADNFpLuqvuO/XmxsLFFRThORkZFER0efv/Y46egms6YXL15MBBF8fufnrPxxJY+8/gjDJw/n\noS4PMaDxANZ/uz5T2wtmOiYmJkvbs+mcM50ku8QT6LTJPPHx8cTFxQGc7y8zIpAafkGck7YtAAUW\nA+NVNSGd7e4A/qGq/3Kn7wSaqOoAv3U8reEHYsvhLTy/9HnmbZ3H3dF389C1D1G2WNmwxmRMbmA1\n/NCFo4b/GlAfGOu+b+B+Tc8WoImIXCzO9UY3ApuDDdBrNUrV4M32b7K271rOJZ6jzrg69Jnfh+2/\nbs/SOKxW62O58LFcmMwUSIffSFXvUtUvVXWhqsYCjdPbSFXXAVNw6v1Jt5K9nuFIPVa+eHlGtR7F\ntvu3cXnRy7nuzeu4Y9YdrPl5TbhDM8aYTBFISec74HZV3eFOVwZmqmr9kBvPBiWd1Bw9fZSJ303k\npeUvUbd0XYY0HUKLii2y5uYIY3IBK+mELrNLOoF0+DcAbwFJD52NAu5W1ZDvts3OHX6S02dPM3X9\nVJ5f+jylCpfisWaP0bZaW7uW35h0WIcfuizv8N2dFwKquZNbVTVTBqTPCR1+knOJ55jz/RxGLhlJ\nQmICQ5oO4Y46d5A/It0LnQISHx9vVze4LBc+OTkX1uGHLstP2orIxcAAYAQwHLjX/QDIU/JF5OO2\n2rexus9q/veP/zHxu4lUe7UacWvjOJt4NtzhGWMC1KNHD3r16nXBvMWLF1OqVCkOHjx4wfxnn32W\nli1b/mUfhw8fpmDBgmzeHPh1KHv27CEiIoK2bdv+JZ4sexhKemMvADOBScDfgeuBN3Bq+NlmtMxw\n+WrPV9ryrZZa7dVq+s76d/TsubPhDsmYbCO7/n3/+uuvWqZMGf38889VVfXkyZNatWrVFMey2b9/\nv+bPn1937959wfxXX31VGzZsGFS7u3fvVhHRUqVK6bJly87P79Gjh44YMSLFbVLLIV6NlgnUVtXe\nqrpInSt1/gXU9uLDJ6dpXrE5i+5axLg24xizYgxXjb+K2Ztnk6iJ4Q7NGJOKEiVK8Oqrr9KnTx9O\nnDjBiBEjqFq16gXj2ycpV64c119/PVOnTr1g/pQpU86vv2PHDlq2bElkZCSXXnopXbp0SbP9Rx99\nlKFDh14wT7Oq9JXeJwLwNnCt33QTYGpGPl1S2HdgH405QGJion687WNtMKGBRo+P1g+2fBDUCJ05\nedzzzGa58MnJucjuf9+dOnXSdu3aacmSJXX//v2prvfOO+9o1apVz09v2bJFCxYsqIcPH1ZV1S5d\nuugzzzyjqqqnT5/WpUuXprifpCP8o0eParly5fSLL75QVecIf/jw4Sluk1oOyeARfqpnHEVkg/s2\nP7BURPbh3GlbAdjq1QdQTiUi3FT1JlpXac0HWz9g6JdD+b+v/4+nYp6iVeVWdjmnMcnIiMz5m9Bh\nGTs6HjduHJUrV+aZZ56hXLlyqa7XoUMH+vfvz/Lly7n22muZMmUKbdq0oWTJkoDzeMM9e/bw448/\nUq5cOa677ro02y1cuDBDhw7l8ccf54YbbshQ7BmW2icBzuWXUUBFv/fn52Xk0yWFNlL89MoNziWe\n0xkbZ2iNMTW06aSmumj3onCHZEyWygl/31FRUbpw4cJ01+vdu7f269dPVVUrVqyoc+bMOb/swIED\nes8992jZsmW1du3a+uabb6a4j6Qj/HPnzunp06e1UqVKOn/+/Cw9wk+vQ84PbMnIjgNqPAf8QoTq\n7LmzOnXdVK38SmW9fvL1unRvyv/uGZPb5IS/70A7/K+++kpLlCihCxYs0JIlS2pCQkKK6y1ZskQL\nFSqkO3fu/Msy/w5fVTUuLk6jo6O1e/fuWdbhp3nSVlXPAltFpGIm/lORp+SLyEePq3rw/YDv6Van\nG91md+Omd276y+MXbcwUH8uFj+Uie2jevDmRkZH07duXrl27kj+/rxo+c+ZM9u/fDzgj/gb6eMM7\n77yTU6dO8emnn2ZZyTeQq3RKAJtE5EsRme++PvA6sNymQL4C9K7fm233b+OWardw64xbaT+9PesO\nrAt3aMaYAPTs2ZO9e/f+5WqeVatW0aRJE4oVK0b79u0ZPXp0qkMY+3fsERERPPXUU/z+++9ehn1h\n+85/B2msIBKT0nxVjQ+58Rx0p21mO5lwkgmrJ/Dc0udoXqE5w2OGU+vSWuEOy5hMY3fahi4sQyt4\nJS93+EmOnznO2JVj+d+y/9GqciuGtRxG1ZJVwx2WMSGzDj904Rha4VoRWSkix0QkQUQSReTPYBsy\nKStSsAiPNn2Ut+q9RY1SNbjuzevoNa8Xe/7YE+7Qwsbq1j6WC5OZAqnhjwG6AduBQkBvYJyXQeVF\nRQoW4fEWj7Ptvm2UK1aOBq83oP+H/dn/5/5wh2aMySUCqeGvVtUGIrJeVa9y561V1eiQG7eSTqoO\nnzjMC0tf4I01b9Cjbg8ea/4YZYqWCXdYxgTMSjqhC8cjDo+LyEXAOhF5XkQeAgJqSESqi8gav9cR\nERkYbJB5UanCpXjuH8+x+d7NREgEtcbW4t+f/ZtDxw+FOzRjTA4VSIff013vPuAEcAXQKZCdq+pW\nVb1aVa/GeRbuCWBuBmPN1VKr1ZYuWppRrUexof8Gjiccp8bYGgxdOJTfT2bdpVxZzerWPpYLk5kC\n6fAPA2dU9YiqDgf+DfyUgbZuBHaq6r4MbJvnlftbOca1HcfqPqs5ePwgVV+tylOLn+LP03b+3GRf\nImKvEF6Z/vMIoIb/LXCDqh5zp4sBC1Q17RGC/rqfN4FVqjrOb57V8DNox287eGrxU3y641MeuvYh\n7mt8H0ULFg13WMaYLJDRGn4gz+e7KKmzB1DVoyJSOMjgCgLtgMHJl8XGxp6/Ky0yMpLo6Ojzj3RL\n+nfWpv86XaVEFXpd0osbqt7Axwc+psroKnS8uCPtq7fnnzf+M+zx2bRN23TmTcfHxxMXFweQ6l28\nAUlvsB1gKdDAb7ohsDyYAXuA9sCnKcxPcWCgvCjUcc/XHVinHaZ30LIvltUx347RUwmnMiewMMjJ\nY8BnNsuFj+XCBw+feDUIeE9ElojIEmAGcH+QnytdgWlBbmOCcFXpq5h7x1zmdZnHR9s/otqYakxc\nPZGEcwnhDs0Yk00ENLSCW5Kp5k5uVdWAexERKQL8AFRS1aPJlmkg7ZvgLd+3nCcWPcHuP3bzZIsn\n6X5Vd/JHBFLBM8Zkd56NpeN29v2BFu6seGB8MJ1+Gvu2Dt9j8XvieWLRExw6fohhLYdxe+3byReR\nL9xhGWNC4OWNV68B9YGxOEMqNHDnmUyUdIIms8VExfBV7FeMvmk0o1eMpu5rdZmxcUa2ftC6V7nI\niSwXPpaL0AXS4TdS1btU9UtVXaiqsUBjj+MymUhEaFW5Fct6LePFVi/y4vIXqTe+HrM2z8rWHb8x\nJnMFUtL5DrhdVXe405WBmapaP+TGraQTFqrKx9s/Zlj8MBISExjWchgdanQgQgL5/DfGhJuXNfwb\ngLeA3e6sKOBuVf0y2MZS2Ld1+GGkqny47UOGxQ9DUYa3HM4t1W/JssetGWMyxpMavojkA+rhXKEz\n0H1Vz4zO3lwoHPVJEaFd9Xas7rOaYS2HMSx+GA0nNmT+1vlhHeXQarU+lgsfy0Xo0nuI+Tmgq6qe\nUtV17utUFsVmsoiI0KFGB77r+x1Dmw9l6JdDafxGYz7a9pENb2tMLhJISWcUUADnhqvjOEMjq6p+\nF3LjVtLJlhI1kTnfz2F4/HCKFCzCiJgR/LPyP63UY0w24WUNPx74y0qq+vdgG0th39bhZ2OJmsjM\nTTMZsXgExQsVZ0TMCP5x5T+s4zcmzDy7Dl9VY1T178lfGQvTpCY71icjJII76tzBhv4bGNh4IAM/\nGUjzt5qzcNdCT0s92TEX4WK58LFchC7Ve+1F5GH3bYp/2ar6kicRmWwnX0Q+utbtyu21b2faxmn0\n/6g/ZYqW4am/P0VMVEy4wzPGBCjVko6IDMfp7KsDjYAPcOr3NwMrVLVHyI1bSSdHOpt4lnc3vMtT\ni5+ifPHyjIgZQYuKLdLf0BiTKbys4X8NtEka+Mx9AMrHqto8Q5FeuG/r8HOws4lneXv92zy1+Ckq\nXVKJETEjaFahWbjDMibX83IsncsA/4HSEtx5JhPlxPpk/oj8xEbHsvW+rXSr0407595Jq6mtWL5v\neUj7zYm58IrlwsdyEbpAOvwpwAoRGS4iI4BvgcnehmVykgL5CtC7fm+23reV22rdRtfZXWn9dmu+\n3f9tuEMzxvgJdDz8BkBznJr+V6q6JlMat5JOrnTm3BneWvMWT3/9NHUuq8OImBE0Ktco3GEZk2t4\nWcN/CZikqpsyGlwa+7YOPxc7ffY0k9ZMYuSSkUSXiWZ4y+E0KNsg3GEZk+N5WcP/HnhdRFaISD8R\nKR5EUJEiMktEvheRzSLSJNgA84rcWJ+8KP9F3NvoXrbfv51/Vv4nt0y/hfbT27Pm57T/QcyNucgo\ny4WP5SJ0gdx4NVFVmwI9cUbK3CAi74pIIDdfvYJzRU9N4CqcDw+TxxTKX4j7Gt/Hjvt3cH3U9bR9\nty0dZ3Rk/cH14Q7NmDwl0Bp+PqAdcDdwBfAe0Aw4oap3pLJNcWCNql6Zxn6tpJMHnUg4wYRVE3h+\n2fM0Ld+Ux1s8TnSZ6HCHZUyO4WUNfxROZ/8l8IaqrvBbtlVVq6eyXTQwAdiMM8TyauABVT3ht451\n+HnYiYQTvLbyNV765iXqla7HY80eo3nFkG/vMCbXy2iHn+rQCn42AI+r6vEUll2Tzr7rA/ep6koR\neRkYAjzpv1JsbCxRUVEAREZGEh0dTUxMDOCr2eWFaf/6ZHaIJyumVyxdQQMasHPgTqasm0KX/3Wh\nxMUl6Fa3G0N6DGHx4sXZKt5wTK9du5ZBgwZlm3jCOf3yyy/n6f4hLi4O4Hx/mRGBlnTKARVxOvGk\n4ZG/SmebMsByVa3kTjcDhqjqzX7r2BG+Kz4+/vwPOq86m3iWWZtnMfTNoRStVpQhTYdwW+3byB8R\nyHFJ7mS/Fz6WCx8vSzrPAXfglGbOJc1X1XYBBPUV8C9V3eaOzXOxqg72W24dvvkLVeWTHZ8wcslI\nfjr6E49e9yh3Rd9FofyFwh2aMdmClx3+NqCuqp7OQFD1gDeAgsBOnGfhHvFbbh2+SdOSvUsYuWQk\na35ew4NNHqRfw34Uu6hYuMMyJqy8vA5/J06HHTT3kYiNVLWeqnb07+zNhZLqdebCXDSr0IyPun3E\nJ90/4bsD31HplUo88eUTHD5xOHwBZiH7vfCxXIQurfHwX3XfngDWishCIOkoX1V1oNfBGZOkXpl6\nTOs0jR2/7eCFpS9Q7dVq3HnVnTxy3SOUL14+3OEZkyOkNR5+LL6Hn0jy96oa8gBqVtIxGfXT0Z94\naflLvLnmTdrXaM/gpoOpUapGuMMyJkt4VsP3knX4JlS/nfyNMSvGMGbFGFpUbMFjzR6z8XpMrudl\nDd9kAatP+gSTixIXl+DJlk+y+4HdNKvQjA4zOtBqaisW7V7k6XN3s4r9XvhYLkJnHb7JFYoULMKg\nJoPYOXAnXep0od9H/bh20rXM2zKPRE0Md3jGZAtW0jG50rnEc8zdMpeRS0Zy+uxpBjcdTJc6XSiQ\nr0C4QzMmZF5ehz8f54Rt0s4V+BNYCUxQ1VPBNuq3b+vwjadUlc93fc7IJSPZ/ftu/n3dv+l1dS8u\nLnBxuEMzJsO8rOHvBo4BrwMTgaPuq5o7bTKB1Sd9MjMXIkKryq1YdNcipneezme7PqPSK5UY+fVI\njpzK/reF2O+Fj+UidIF0+NepajdVna+qH6hqd6CRqg7AGRzNmByhyRVNmNdlHl/0/IJNhzZx5egr\nefTzR9n5285wh2ZMlgikpPM90FpVf3CnKwKfqmpNEVmjqldnuHEr6Zgw2v37bsasGMOU9VO4uszV\n9GvYj3bV2lmd32R7Xtbw2wDjgV3urCuBe4FFwD2q+nKwjfrt2zp8E3anzp5i9ubZjF89np2/7aT3\n1b35V/1/UTGyYrhDMyZFXtbwP8Wp1w8CHgCqA1+o6vFQOntzIatP+mR1LgrlL0T3q7rz9d1f8/md\nn3Pk9BHqv16fm9+9mflb53Mu8Vz6O/GI/V74WC5CF0iHP0lVT6nqWlVdB+QDPvY4LmPCovZltRl9\n02j2PbiPTjU78fTXTxP1ShRPLX6KH//8MdzhGROSQEo6/wVKquq9InIJ8BEwUVXfCrlxK+mYHGDt\ngbVMWDWBGZtm0DKqJX0b9KVV5VZEiN23aMLD07F0ROQF4G9AA+BZVZ0VfIgp7tc6fJNjHD19lGkb\npzF+1Xh+P/U7fer3odfVvShdtHS4QzN5TKbX8EWkk/vqCHyD8/zaNYC68wINbI+IrBeRNSKyIv0t\n8iarT/pk11wUu6gYfRr0YXWf1bzX+T12/r6TGmNrcPvM21m4a6EnQzhk11yEg+UidGk9LLQdviGR\nAda66yc9k3ZOgG0oEKOqvwUfnjHZj4jQqFwjGpVrxIutXuTt9W/z4IIHOXX2FH0a9CE2OpZShUuF\nO0xj/sLzsXREZDfQUFV/TWGZlXRMrqCqLN+/nAmrJzBvyzzaVmtLvwb9aFahGSJB/+dtTJqy7Xj4\nIrILOILzAPQJqjrRb5l1+CbX+e3kb0xZN4UJqycgCH0b9CU2OpbihYqHOzSTS2Tn8fCbunfj3gQM\nEJHmWdBmjmP1SZ+cnosSF5dgUJNBbL53M6+1fY3l+5dTe1xt5m2ZF/S+cnouMpPlInRpPdP2OmB5\nqIfgqvqz+/WQiMwFGgNfJy2PjY0lKioKgMjISKKjo4mJiQF8P2CbzlvTSbJLPBmdXrx4MQDTO09n\n8Z7FdH+pO6NKjGLcgHHUurRWQPtbu3Zttvl+wj29du3abBVPVk7Hx8cTFxcHcL6/zIi0nmk7HufK\nnG3AJzjj5xwIaucihYF8qnpURIoAnwEjVPUzd7mVdEyecTLhJC8se4Hxq8ZTpUQV+jboS6danSiU\nv1C4QzM5jJdj6dTEKce0AiKBL3GGW1iqqmnecy4ilYC57mR+4B1VHem33Dp8k+cknEvgg60fMGH1\nBNYcWEOUWPnnAAAdaUlEQVTPq3rSp0EfqpeqHu7QTA7hWQ1fVb9X1ZdUtTVwPbAUuB1I95p6Vd2t\nqtHuq45/Z28ulLyckZfl9lwUyFeATrU68dmdn/FN728okK8ALeJacP3k65mxcQZnzp05v25uz0Uw\nLBehC+qkraqeUNWPVPU+VW3gVVDG5BWVS1Tm2RufZd+D++jboC8TVk+g/KjyDP58sI3TbzKdPdPW\nmGxm26/beH3160xeN5mry1xN3wZ9uaX6LTZOvzkv216Hn2bj1uEbk6qkcfonrJ7A9t+20/vq3txT\n/x4bp99k6+vwTQCsPuljuXAUyl+Icr+V46u7v2Jhz4UcPX2U+q/Xp807bZi3ZR5nE8+GO8QsZb8X\noUtr8LRjInI0ldefWRmkMXldrUtr8cpNr7DvwX3cUfsOnlv6HFEvRzE8fjj7/9wf7vBMDmElHWNy\nqPUH1zNh1QSmbZxGswrN6NugL62rtCZfRL5wh2Y85vV4+PWAFjgjX37tPvkqZNbhGxO642eOM33j\ndMavHs8vx3/hnvr30OvqXpQtVjbcoRmPeFbDF5EHgHeAS4HSwNsiMjD4EE1arD7pY7nwCSQXRQoW\noXf93qy8ZyVz75jLviP7qD2uNh1ndGTBjgWejNMfDvZ7EbpATtr+C7hGVZ9U1SeAJsA93oZljMmI\n+pfXZ0K7Cfww6AdaVW7FkIVDqPpqVZ5d8qw9k9cENLTCBqCxqp50py8GVqhq3ZAbt5KOMZ5SVVb+\ntJLXV7/O7O9nc3WZq+lWtxudanbikosvCXd4JoO8HEvnISAW5wlXAnQA4lR1VAbiTL5v6/CNySKn\nzp7i4+0f8+6Gd/l81+f8PervdKvbjZur3UzhAoXDHZ4Jgpdj6bwE3A38DvwKxGZGZ28uZPVJH8uF\nT2bmolD+QnSs2ZFZt89i76C9dKjRgTe+e4Pyo8rz0IKH2PHbjkxrywv2exG6QE7aNgG2q+orqjoa\n2Cki13gfmjHGK8ULFSc2OpbP7vyM1X1WUzBfQa6bdB2t327Nh9s+5FximgPhmhwqkJLOWuDqpNqL\niOQDVrlPsQqtcSvpGJNtnDp7ihkbZzB25VgOnTjEvQ3vpdfVvShZuGS4QzPJeFnDX6uq0cnmrVfV\nq4JtLIV9W4dvTDa04scVjF05lg+2fkCHGh0Y0GgADcs2DHdYxuXlWDq7RWSgiBQQkYLudfm7gg/R\npMXqkz6WC59w5aJxucZM7jCZ7fdvp0bJGnR+rzNN3mjC1HVTOX32dFhist+L0AXS4fcDmgI/Avtx\nrsPvE2gDIpJPRNaIyPyMhWiMCZdShUsxuNlgdg7cyX+a/4e3N7xNhZcr8J+F/2Hvkb3hDs8EKZCS\nTklV/TXDDTiXdTYAiqnqLcmWWUnHmBxm26/bGLdyHFPXT6VFxRYMaDSAGyrdgEjQFQaTQV7W8LcD\na4G3gE+C6aFF5AogDngaeEhV2yVbbh2+MTnUsTPHeGf9O4xdOZYz584woNEAetbrSfFCxcMdWq7n\nZQ2/OjAR6AnsEJGRIlItwP2PAv4N5I7BPDxk9Ukfy4VPds5F0YJF6duwL+v6rWNiu4ks2beESq9U\nov+H/dn4y8ZMby875yKnCOTGq0RV/UxVu+CMoXMXsFJEFovIdaltJyI3A7+o6hqcO3SNMbmQiNC8\nYnNmdJ7Bxns3UqZoGVpNbUVMXAwzN80k4VxCuEM0rkBKOqWA7jhH+AeBN4D5QD1glqpGpbLdM8Cd\nwFmgEPA3YLaq9vRbR++66y6iopxdREZGEh0dTUxMDOD7RLdpm7bpnDWdcC6B/5vyf7y/9X1+vexX\n+jToQ50TdShxcYlsEV9Om46PjycuLg6AqKgoRowY4VkNfxvwNvCmqu5PtmyIqj6bbiMiLYFHrIZv\nTN6z4eAGxq4cy4xNM2hdpTUDGg2gafmmdpI3BJ7W8FX1qeSdPUAgnb3/6kGsm+ckfZoby4W/3JCL\nuqXrMv7m8ex+YDdNyjWh9we9iZ4QzcTVEzl+5njA+8kNuQi3/Kkt8L9uPoVPYk1+iWVaVHUxsDjo\n6IwxuUZkoUgeaPIA919zPwt3LWTMyjE8tvAxetbrSf+G/alasmq4Q8z1Ui3piEhMGtup24mH1riV\ndIzJ03744wfGrxrPpDWTqH95fQY0GkCbqm3subzp8PSZtl6xDt8YA87Abe9teo+xK8fyy/Ff6N+w\nP72v7m0Dt6XCy2fabhCR9e7XpNcSERklIvbTyCRWn/SxXPjklVwUyl+InvV68u2/vuW9zu+x+dBm\nqrxahbvn3c2qn1YBeScXXkq1hu/nU5xLK9/FuZ6+C1AY5xLNOKBdqlsaY0yQGpVrRFy5OA6fOMyk\n7ybR+b3OlC5amhu4gSbNmlAof6Fwh5hjBXJZ5prkY98nzRORDaE829ZKOsaY9JxLPMfH2z9mzMox\nrD2wll7RvejXsB8VIyuGO7Sw8fKyzHz+T7gSkcZ+250NtkFjjAlGvoh8tKvejgU9FvD13V9z8uxJ\n6r9enw7TO/DFri+wg8bABdLh9wYmicgeEdkDTALuEZEiwEgvg8tLrD7pY7nwsVz4xMfHU61kNV5u\n/TJ7B+2lTdU2PPzZw9QcW5PR347myKkj4Q4x2wtkLJ2VqloHiAaiVbWuqq5Q1eOq+p73IRpjzIWK\nFCxCnwZ9WNt3LRPbTWTZvmVEvRLl2cBtuYVdlmmMyRV+Pvozr69+nde/e53Kl1Sme93udK7VOVde\n2mnX4RtjDJBwLoGPtn/EtI3T+HTHpzSr0IwutbvQoUYHil1ULNzhZQovT9qaLGC1Wh/LhY/lwifQ\nXBTIV4AONTowo/MMfnzoR7rX7c7MzTO5YtQVdH6vM7M3z+Zkwklvg82mArnxqoiIPCEiE93pqu5Y\n98YYk60VLViUbnW78UHXD9j9wG5uqnITr616jbIvlaXn3J58sv2TPDVefyDX4b8HrAZ6qmpt9+qc\nZapaL+TGraRjjAmDA8cOMHPTTKZtnMb237bTqWYnutTpQvMKzXPEOD5ePtN2tao28L8BS0TWWYdv\njMkN9vyxhxkbZzB903R+Of4Lt9e6na51u9KobKNsO2a/lzX80yJysV9DlYHTwTZk0ma1Wh/LhY/l\nwserXERFRjG42WDW9F3DF3d+QfFCxblz7p1UebUKQxcOzVWXeQbS4Q/HGU/nChF5F/gSGOxlUMYY\nEw41L63J8JjhbBmwhZm3zSQhMYE277Shzrg6PP3V0+z8bWe4QwxJQJdlus+1beJOfqOqhwPauUgh\nnAefXAQUBOap6mN+y62kY4zJ1hI1keX7ljNt4zRmbp5JxeIV6VKnC3fUvoNyfysXlpg8vQ5fRMoB\nUTijayqAqn4VYGCFVfWEiOQHluA823aJu8w6fGNMjnE28SyLdi9i2sZpvL/lfa4qfRVd6nShc63O\nlCpcKsvi8HI8/OeApcBQ4BHg3+4rIKp6wn1bEMgH/BZskHmB1Wp9LBc+lguf7JCL/BH5+Uflf/Bm\n+zf5+eGfebDJg8Tviafy6Mrc9M5NTFk3hT9P/xnuMFMVyHj4t+I8yDxDJ2pFJAL4DqgMvKaqmzOy\nH2OMyU4uyn8R7Wu0p32N9hw7c4z5W+czfdN07v/kfm688ka61ulK26ptubjAxenvLIsE0uHvxDk6\nz1CHr6qJQLSIFAcWiEiMqsYnLY+NjSUqKgqAyMhIoqOjiYmJAXyf6HlhOiYmJlvFY9PZZzpJdokn\nXNNJ87JLPP7TRQsW5fJfL+fBMg8S1z6OuVvmMvLtkcQejuXWm26lS+0uFNxXkAL5CmRo//Hx8cTF\nxQGc7y8zIpDr8OcA9YCF+Dp9VdWBQTcm8gRwUlX/505bDd8Yk2sdOHaAWZtnMW3jNLYe3krHmh3p\nWqcrLSq2COkGLy+vw/8A+C9OHX8Vzl23qwMMqpSIRLrvLwb+AawJNsi8IPnRXF5mufCxXPjkxFyU\nKVqG+xrfx9JeS1ndZzVVSlTh4c8epvyo8gz6dBDf7v82Sx/gkm5JR1XjRKQwUEFVtwS5/8uByW4d\nPwKYqqoLMxCnMcbkaBUjK/Jo00d5tOmjbDm8hRkbZ3DX+3dx5twZutTpQpc6Xah7WV1P7+4NpKRz\nC/ACcJGqRonI1cAIVb0l5MatpGOMycNUlbUH1jJ943Smb5pO0YJF6VqnK13qdKFKiSqpbuflWDrf\nAdcDi/zG0tnoPgUrJNbhG2OMI+kGr+kbpzNz80zKFy9Pl9pduKPOHVzxtysuWNfLGn6Cqv6RPLZg\nGzJpy4n1Sa9YLnwsFz65PRcREkHTCk15tc2r7H9oPyNvGMnmQ5upN74eLeNa8trK1zh0/FBIbQRy\nWeYmEekO5BeRqsBAYFlIrRpjjElV/oj83Hjljdx45Y2MOzuOBTsXMG3jNIYsHMK1V1yb4f0GUtIp\ngnOXbSt31gLgv6p6KsOt+vZtJR1jjAnQ8TPHmb9tPl3rdrVn2hpjTF6Q6TV8EZmfxuuD0MI1yeX2\n+mQwLBc+lgsfy0Xo0qrhv+h+VSD5J4kdlhtjTA4T6HX4H7pj4mRu41bSMcaYoHl5WeYdwA4ReV5E\nagQfmjHGmOwg3Q5fVbsDVwO7gDgRWS4ifUSkmOfR5SFWn/SxXPhYLnwsF6EL5AgfVT0CzAJmAGVx\nxshfIyJBj5hpjDEmPAKp4bcHYoGqwBQgTlV/cQdU26yqURlu3Gr4xhgTtIzW8AO507YjMCr5M2zd\n59T+K9gGjTHGhEcgNfy7Untguap+kfkh5U1Wn/SxXPhYLnwsF6EL5CHmnURku4j8KSJH3Vf2fUqv\nMcaYFAVSw98J3Kyq32d641bDN8aYoHl5Hf6BjHb2IlJeRBaJyCYR2WhX9RhjTPikNZZOJxHpBKwS\nkRki0jVpnoh0DHD/CcCDqlobaAIMEJGamRB3rmP1SR/LhY/lwsdyEbq0rtJph2/MnJP4hkdOMie9\nnavqAeCA+/6YiHyPcx1/ppeHjDHGpC2QGn4zVV2S3rx0GxKJAhYDtVX1mDvPavjGGBMkL6/DHw3U\nD2BeqkSkKM6dug8kdfZJYmNjiYqKAiAyMpLo6GhiYmIA379wNm3TNm3TeXk6Pj6euLg4gPP9ZUak\neoQvItcC1wEPAi/hGyK5GHCrqtYLqAGRAsCHwCeq+nKyZXaE74qPjz//g87rLBc+lgsfy4WPF0f4\nBXE693zu1yR/Ap0DDEqASThDMLyc3vrGGGO8E0gNv6Kq/iAiRVT1eFA7F2kGfAWsx3cC+DFV/dRd\nbkf4xhgTJC9r+OVE5BOco/zyIhIN9FHVe9Pb0D2xG9CInMYYY7wVSGf8MtAaOAygqmuBll4GlRcl\nnaAxlgt/lgsfy0XoAh0Pf2+yWWc9iMUYY4yHAqnhzwJGAWOAa4CBQENV7RJy41bDN8aYoHk5lk5/\nYABQDvgR53GHA4JtyBhjTHgFMh7+IVXtpqqXqeqlqtpdVX/NiuDyEqtP+lgufCwXPpaL0KV6lY6I\nDFbV50Tk1RQWq6rayJfGGJODpHWnbTtVnS8isSksVlWdHHLjVsM3xpigZbSGn+5JWy9Zh2+MMcHL\n9JO2IjLf7/VB8unQwjXJWX3Sx3LhY7nwsVyELq07bV90v94KlAHexhlArStw0OO4jDHGZLJArsNf\nraoN0puXocatpGOMMUHz8jr8wiJS2a+hK4HCwTZkjDEmvALp8B8EFonIYhFZDCwCBnkbVt5j9Ukf\ny4WP5cLHchG6dEfLVNVPRaQaUANniOOtqnrK88iMMcZkKrss0xhjchgva/jGGGNyAU87fBF5U0QO\nisgGL9vJDaw+6WO58LFc+FguQpduDV9EGuB7PGGSI8APqpreuPhvAa8CUzIWnjHGmMwSyHX43wAN\ncJ5LC1AX2AQUB/qr6oJ0to8C5qtq3RSWWQ3fGGOC5GUN/ycgWlUbuDdbRQO7gH8AzwfboDHGmPAI\n5CHm1VV1U9KEqm4WkRqqulNEQj48j42NJSoqCoDIyEiio6OJiYkBfDW7vDDtX5/MDvGEczppXnaJ\nJ5zTa9euZdCgQdkmnnBOv/zyy3m6f4iLiwM4319mRCAlnfeAX4HpOGPp3A5cCvQAlqhqo3S2j8JK\nOumKj48//4PO6ywXPpYLH8uFj2fDI4tIYeBeoKk7aykwDjgFFFHVo+lsH4V1+MYYk2m87PAbqOrq\nZPNuVtUPAwhqGtASKAn8Ajypqm/5LbcO3xhjguTlSduJInL+6FxEugJPBrJzVe2qqmVV9SJVLe/f\n2ZsL+dev8zrLhY/lwsdyEbpATtp2BmaJSDegOdAT5wodY4wxOUhAY+mISHXgfeAHoKOqnsiUxq2k\nY4wxQcv0Gn4KwyFcBvwBnMF5iPlVQUf51zaswzfGmCB5UcNvl+x1DfBP9/0tGQnSpM7qkz6WCx/L\nhY/lInSp1vBVdU8WxmGMMcZjNh6+McbkMDYevjHGmDRZh59NWH3Sx3LhY7nwsVyEzjp8Y4zJI6yG\nb4wxOYzV8I0xxqTJOvxswuqTPpYLH8uFj+UidNbhG2NMHmE1fGOMyWGshm+MMSZNnnb4ItJaRLaI\nyHYRGexlWzmd1Sd9LBc+lgsfy0XoPOvwRSQfMAZoDdQCuopITa/ay+nWrl0b7hCyDcuFj+XCx3IR\nOi+P8BsDO1R1j6om4DwEvb2H7eVof/zxR7hDyDYsFz6WCx/LRegCeeJVRpUD9vlN78cZYtmYLOd/\nbUDS+6yel5HYTp2C33/PPt+D1/NS+pr0/uBBWL8+9eXJ36e3PJh1s1tbGeVlhx9QaJUquSun8EuQ\n/L3X64VjOsmJE3t4+eW01wlkP8Gsk9rylOYHOi+UdZPenz27h6efztjPN1AiF37Nqnn+VNPf7sSJ\nPYwfH754wzEvpa8isH//HpYsSX15Su/TW56Z+8rqtjLCs8syRaQJMFxVW7vTjwGJqvqc3zp2TaYx\nxmRApj7iMFQikh/YCtwA/ASsALqq6veeNGiMMSZNnpV0VPWsiNwHLADyAZOsszfGmPAJ6522xhhj\nsk6W3GkbyA1YIjLaXb5ORK7OirjCIb1ciEh3NwfrRWSpiFwVjjizQqA35olIIxE5KyIdszK+rBTg\n30iMiKwRkY0iEp/FIWaZAP5GSonIpyKy1s1FbBjC9JyIvCkiB0VkQxrrBNdvqqqnL5xyzg4gCigA\nrAVqJlunDfCx+/4a4Buv4wrHK8BcXAsUd9+3zsu58FvvS+BDoFO44w7j70UksAm4wp0uFe64w5iL\n4cDIpDwAvwL5wx27B7loDlwNbEhledD9ZlYc4QdyA9YtwGQAVf0WiBSR0lkQW1ZLNxequlxVj7iT\n3wJXZHGMWSXQG/PuB2YBh7IyuCwWSC66AbNVdT+Aqh7O4hizSiC5+Bn4m/v+b8Cvqno2C2PMEqr6\nNfB7GqsE3W9mRYef0g1Y5QJYJzd2dIHkwl9v4GNPIwqfdHMhIuVw/thfc2fl1hNOgfxeVAVKiMgi\nEVklIndmWXRZK5BcTARqi8hPwDrggSyKLbsJut/08sarJIH+kSa/pjQ3/nEH/D2JyN+BXkBT78IJ\nq0By8TIwRFVVRIS//o7kFoHkogBQH+cy58LAchH5RlW3expZ1gskF/8B1qpqjIhUBj4XkXqqetTj\n2LKjoPrNrOjwfwTK+02Xx/kkSmudK9x5uU0gucA9UTsRaK2qaf1Ll5MFkosGwHSnr6cUcJOIJKjq\nB1kTYpYJJBf7gMOqehI4KSJfAfWA3NbhB5KL64CnAVR1p4jsBqoDq7Ikwuwj6H4zK0o6q4CqIhIl\nIgWBO4Dkf7AfAD3h/B26f6jqwSyILaulmwsRqQDMAXqo6o4wxJhV0s2Fql6pqpVUtRJOHb9/Luzs\nIbC/kXlAMxHJJyKFcU7Sbc7iOLNCILnYAtwI4NasqwO7sjTK7CHoftPzI3xN5QYsEenrLp+gqh+L\nSBsR2QEcB+72Oq5wCCQXwJPAJcBr7pFtgqo2DlfMXgkwF3lCgH8jW0TkU2A9kAhMVNVc1+EH+Hvx\nDPCWiKzDOWh9VFV/C1vQHhGRaUBLoJSI7AOG4ZT2Mtxv2o1XxhiTR9gjDo0xJo+wDt8YY/II6/CN\nMSaPsA7fGGPyCOvwjTEmj7AO3xhj8gjr8A3uTS6pDsGawX22F5GambnPUInIJyJSNtm8eBFpkMH9\nDReRh0OIJ05EOmV0+wy0FyMi87OqPZP9WIdvvHIrUCuYDUTEs99HEbkYKKGqPyVbpGR83KZQb2JJ\nsW0v8uA+ctTkcdbhmwuIyJUi8p2INBCRwiLynohsEpE5IvJNSkfDIvKsu846EXlBRK4F2gEvuPu6\nUkRW+61fNWlaRPa4268GbhORViKyTERWu20X8VtvuDt/vYhUd+cXcR8U8a3b1i2pfGsxwKI0vu8I\n94j7KXe6t4hsdfc7UUReTWXTWu4IljtF5H532xEi8oDfvp8WkYHu+zHiPNzjc+Ayv3WS56Gr+31u\nEJFn/dZr7eZgrbsPRKSxm7PvxHloTjV3fqyIfCAiC4EvcD5ciovIh24Mr4l7O3ca7R0Tkf9z21su\nIudjNjlQuAf5t1f4XzgPm9iAMybJd0Bdd/4jwGvu+9pAAlA/2bYlgS1+039zv74FdPSb/yVQz33/\nDDDAfb8beMR9XwpYDFzsTg8GnvBbL2mb/jhDCyTtq7v7PhLYChRO4Xt8BYhJYf4inHFppgGPufPK\nuu1F4gw/8hUwOoVthwNLcW53LwkcxhkOoCKw2l0nAueBHpcAHYHPcEY4vBxnrPOOKeShLPCDu898\nwEKcYaIvBfYCFZO+X/drMSCf+/5GYJb7PhZn0LWk9WKAk+7PO8KNpVNq7bnbJAJt3ffPAUPD/ftq\nr4y/7AjfJLkMeB/opqpJ9fymOA+gQFU34YzjktwfwCkRmSQit+J0KEn8h259A7jbLVfcDrzrt2yG\n+7UJThlomYiswRkYqoLfenPcr9/hdFoArYAh7vqLgIu4cATBJE2BJSnMF2ACzlOFRrrzGgPxqvqH\nOg/WmJnse0miwIeqmqCqvwK/AKVV9QfgVxGJduP7Tp1RT1sA76rjZ5wPQX9JeWgELFLVX1X1HPCO\nu+01wFfu/lHVP9z1I4FZ7nmYl7iwlPaZ33oAK9R5uEgizodcM6Ch+/0mbw/gjKp+5L5fjS/vJgey\nup5J8gfOUV5znNEIk6Q5Br2qnhORxjjjtHcG7nPfw4X16dk4gz99iXP06z/s83G/95+rardUmjvt\nfj3Hhb+7HTWNceFF5Epgn6b8VCQFlgF/F5EXVfW0O8//+04rB2f83vvH9QbOYFalgTf92kprX8dT\nWS+95wD8F1ioqreKSEUg3m/ZiWTr+v9MhJTPQ/jPT/Cbn4j1GTmaHeGbJGdwSg49RaSrO28pztE4\nIlILqJt8I7fGHqmqnwAP4YzRDnAU32PocDvSBThPr3oz+X5c3wJNxXmoRVJ9vmo6cS8ABvrFk9KD\nnG8CPkljH2/gPFnsPRHJhzNEb0sRiXRPdnYi+BO0c3GeSdzQjRGc0tAd7vmCy4G/p7LtSrf9km48\nXXA68W+AFiISBSAil7jr/w1IOhmd3oiJjcW5KivpP62vgRUptLc4iO/V5BDW4ZskqqongJuBB0Xk\nZmAccKmIbMI5itwEHEm2XTFgvjhD1X4NPOjOnw782z3BWMmd9y7OUeJn/u36BXAIp+48zd3fMpzz\nCn+J1W+7/wIF3BOOG4ERKaz/T+DTdL75UcAaYCpO5/kMTke4BKe+/mdqm6ayvwSc/2beU3UK4Ko6\nF+eBJZtxnkW6LJVtfwaG4JSo1gKrVHW+Os+x7QPMEZG1uOU24HlgpIh8h1ODT4op+VVAivNhMsaN\nYZeqzlXVAym1l8L3F8oVTSYbsOGRTarco8ACqnraPer+HKiWSmkkkP09AhRT1WGZGWc6bV4EfK1B\nPlNARIqo6nH3CH8Ozrjs84LYPgKn5t1ZVXcGFbQxHrF6nElLEeBLESmAU9ftH0JnPxeoBFyfifGl\nyy0lZeQBMsNF5EagELAgyM6+FjAfmGOdvclO7AjfGGPyCKvhG2NMHmEdvjHG5BHW4RtjTB5hHb4x\nxuQR1uEbY0weYR2+McbkEf8PM26glcYuDusAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e76ac8>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.6: Page 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.6\n",
+ "# Page: 516\n",
+ "\n",
+ "print'Illustration 10.6 - Page: 516\\n\\n'\n",
+ "\n",
+ "import numpy.linalg as lin\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:heptane b:p-chloronitrobenzene c:o-chloronitrobenzene d:aq. methanol\n",
+ "xb = 0.4;# [Wt fraction]\n",
+ "xC = 0.60;# [Wt fraction]\n",
+ "F = 100;# [kg]\n",
+ "# The para isomer(b) favours the heptane(a) and the ortho isomer(c) favours the methanol(d).\n",
+ "# Basis: 1 hour.\n",
+ "A = 2400;# [kg/h]\n",
+ "D = 2760;# [kg/h]\n",
+ "xbW = 0.8;# [Wt fraction]\n",
+ "xbZ = 0.15;# [Wt fraction]\n",
+ "kb=1.35;\n",
+ "kc=0.835;\n",
+ "#*******#\n",
+ "\n",
+ "B = xb*F;# [kg]\n",
+ "C = F-B;# [kg]\n",
+ "# W = kg A rich product, after solvent removal\n",
+ "# Z = kg D rich product, after solvent removal\n",
+ "# B balance:\n",
+ "# (1): (0.80*W)+(0.15*Z) = B\n",
+ "# C balance:\n",
+ "# (2): (0.20*W)+(0.85*Z) = C\n",
+ "# Solving (1) & (2) simultaneously:\n",
+ "a = numpy.array([[0.80, 0.15],[0.20, 0.85]]);\n",
+ "b = [B,C];\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "Z = soln[1];\n",
+ "Wb = xbW*W;# [kg]\n",
+ "Wc = W-Wb;# [kg]\n",
+ "Zb = xbZ*Z;# [kg]\n",
+ "Zc = Z-Zb;# [kg]\n",
+ "xB1_prime = Zb/D;\n",
+ "xC1_prime = Zc/D;\n",
+ "yB1_prime = Wb/D;\n",
+ "yC1_prime = Wc/D;\n",
+ "DbyA = D/A;\n",
+ "# Equilibrium curve:\n",
+ "# First distribution coeffecient: yB_star/xB_prime = 1.35\n",
+ "def f68(x1):\n",
+ " return kb*x1\n",
+ "x1 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Second distribution coeffecient: yC_star/xC_prime = 0.835\n",
+ "def f69(x2):\n",
+ " return kc*x2\n",
+ "x2 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Operating Line, corresponding to First distribution coeffecient:\n",
+ "def f70(x3):\n",
+ " return (DbyA*x3)+yB1_prime\n",
+ "x3 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "def f71(x4):\n",
+ " return DbyA*(x4-xB1_prime)\n",
+ "x4 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "# Operating Line, corresponding to Second distribution coeffecient:\n",
+ "def f72(x5):\n",
+ " return (DbyA*x5)+yC1_prime\n",
+ "x5 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "def f73(x6):\n",
+ " return (DbyA)*(x6-xC1_prime);\n",
+ "x6 = numpy.arange(0,0.06+0.01,0.01)\n",
+ "\n",
+ "\n",
+ "plot(x1,f68(x1),label=\"Equilibrium curve\")\n",
+ "plt.plot(x3,f70(x3),label=\"Operating curve\")\n",
+ "plt.plot(x4,f71(x4),label=\"Operating curve\");\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"xB_prime\");\n",
+ "plt.ylabel(\"yB_prime\");\n",
+ "plt.title(\"yB_star/xB_prime = 1.35\");\n",
+ "plt.xlim((0,0.05))\n",
+ "plt.ylim((0,0.07))\n",
+ "plt.show()\n",
+ "\n",
+ "plot(x2,f69(x2),label=\"Equilibrium curve\")\n",
+ "plt.plot(x5,f72(x5),label=\"Operating curve\")\n",
+ "plt.plot(x6,f73(x6),label=\"Operating curve\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.xlabel(\"xC_prime\");\n",
+ "plt.ylabel(\"yC_prime\");\n",
+ "plt.title(\"yC_star/xC_prime = 0.835\");\n",
+ "plt.xlim((0,0.06))\n",
+ "plt.ylim((0,0.07))\n",
+ "plt.show()\n",
+ "# The stages are constructed.\n",
+ "# The feed matching is shown on Fig. 10.37 (Pg 518):\n",
+ "f_prime = 6.6;\n",
+ "fstage = 4.6;\n",
+ "print\"Number of ideal stage is \\n\",fstage+f_prime-1\n",
+ "print\"The feed stage is \",fstage,\"th from the solvent-D inlet\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.6 - Page: 516\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e76a20>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\no8p0A6Z7n9sDn0XsmwO08D4PAYYVcg0tjKK2B4GffvpJq1Wrpv/617/22r5jxw6tXbu2Pv/886qq\nOnjwYL3ooou0Z8+eWr16dW3btq0uWrSooPy6dev0wgsv1Nq1a+uhhx6qo0aNKtiXf+xll12m+++/\nvz733HM6b948bd++vdasWVPr1q2r/fv31927d6uqaocOHVREtGrVqlqtWjV9/fXXdfbs2dqgQYOC\nczZq1EiHDx+uxxxzjNaoUUN79uypu3btKtg/bNgwrVu3rtavX1/Hjh2rIqLffvttod/Bjz/+qH36\n9NF69eppZmamnn/++aqqOm7cOD3llFP2Kht5niuuuEKvu+467datm1atWlWHDRumBx98sObm5haU\nf+ONN/SYY45RVdXc3Fx94IEHtGnTpnrAAQfoxRdfrFu2bInzTu1NkJ8pI9ws3rhYz3rhLD38icN1\n+orpSTmn9zyX7h1f2hMUewHoimuJtRK409vWF+gbUeYJb/8ioG3E9la4lluLgDeAGoWcP9aXE0hm\nzJihFStW3Oull88VV1yhvXr1UlUXBCpVqqSTJ0/WnJwcHT58uB566KGak5Ojubm52rZtW73vvvt0\nz549umrVKm3SpInOnDlzr2PfeustVVX99ddf9YsvvtC5c+dqbm6url69Wlu2bKkjR44suHb0Cz86\ngDRu3FhPOOEE3bBhg27ZskVbtmypo0ePLvDp4IMP1mXLlunOnTv10ksv1QoVKhQZQLp166aXXHKJ\nbtu2Tffs2aNz5sxR1fgCSI0aNfSTTz5RVdVdu3Zp06ZN9b333iso/6c//UmHDRumqqojR47UE088\nUdetW6e7d+/Wvn37Fny/JSWRZ2r27NkJXSsdCLNvqsHw74dfftDrp16vtR+qraM+G6W7c3Yn7dzJ\nCCAp74muqjOAGVHbxkSt9y/i2EXA8amyTe4t/fhSOrjkKZ/Nmzdz4IEHFpp6Ofjgg1mwYEHB+nHH\nHceFF14IwMCBAxkxYgSffvoplSpVYvPmzdx9992Amz726quvZuLEiZx99tkAnHTSSXTv3h2AypUr\n07Zt24LzNmrUiGuvvZYPPviAm266KW7bBwwYwMEHHwy44egXLlwIuGl4r7rqKlq2dE0H7733Xl55\n5ZVCz5E/Ze2WLVsKZh1MxpS1Z555ZsGUtY888gjgpqx94oknqFevHgCDBw+mUaNGvPTSSzaysRFY\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c385c0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of ideal stage is \n",
+ "10.2\n",
+ "The feed stage is 4.6 th from the solvent-D inlet\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.7: Page 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.7\n",
+ "# Page: 525\n",
+ "\n",
+ "print'Illustration 10.7 - Page: 525\\n\\n'\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# c:Water d:Toulene \n",
+ "Density_c = 998;# [kg/cubic m]\n",
+ "viscosity_c = 0.95*10**(-3);# [kg/m.s]\n",
+ "Dc = 2.2*10**(-9);# [square m/s]\n",
+ "Density_d = 865;# [kg/cubic m]\n",
+ "viscosity_d = 0.59*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.5*10**(-9);# [square m/s]\n",
+ "sigma = 0.022;# [N/m]\n",
+ "Dist = 20.8;# [Distribution Coeffecient]\n",
+ "d = 0.5;# [m]\n",
+ "h = 0.5;# [m]\n",
+ "di = 0.15;# [m]\n",
+ "N = 13.3;# [r/s]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "qC = 3*10**(-3);# [cubic m/s]\n",
+ "qD = 3*10**(-4);# [cubic m/s]\n",
+ "#********#\n",
+ "\n",
+ "V = math.pi*h*d**2/4;# [Vessel volume,cubic m]\n",
+ "phi_DF = qD/(qD+qC);# [Volume fraction toulene]\n",
+ "# Assume:\n",
+ "phi_Dbyphi_DF = 0.9;\n",
+ "phi_D = phi_Dbyphi_DF*phi_DF;\n",
+ "phi_W = 1-phi_D;\n",
+ "# From Eqn. 10.56:\n",
+ "Density_M = (Density_c*phi_W)+(Density_d*phi_D);# [kg/cubic m]\n",
+ "if phi_W>0.4:\n",
+ " viscosity_M = (viscosity_c/phi_W)*(1+(6*viscosity_d*phi_D/(viscosity_d+viscosity_c)));# [kg/m s]\n",
+ "else:\n",
+ " viscosity_M = (viscosity_c/phi_D)*(1-(1.5*viscosity_c*phi_W/(viscosity_d+viscosity_c)));# [kg/m s]\n",
+ "\n",
+ "# Impeller Reynold's Number:\n",
+ "IRe = (di**2*N*Density_M/viscosity_M);\n",
+ "# From Fig 6.5 (Pg 152), curve g:\n",
+ "Po = 0.72;\n",
+ "P = Po*Density_M*N**3*di**5;# [W]\n",
+ "# From Eqn. 10.61:\n",
+ "Value1 = P*qD*viscosity_c**2/(V*sigma**3);\n",
+ "Value2 = viscosity_c**3/(qD*Density_c**2*sigma);\n",
+ "Value3 = Density_c/(Density_c-Density_d);\n",
+ "Value4 = sigma**3*Density_c/(viscosity_c**4*g);\n",
+ "Value5 = viscosity_d/viscosity_c;\n",
+ "phi_Dbyphi_DF = 3.39*Value1**0.247*Value2**0.427*Value3**0.430*Value4**0.401*Value5**0.0987;\n",
+ "# The value of phi_Dbyphi_DF is sufficiently close to the value 0.90 assumed earlier.\n",
+ "phi_D = phi_Dbyphi_DF*phi_DF;\n",
+ "# From Eqn. 10.6:\n",
+ "Value6 = viscosity_c/Density_c;# [square m/s]\n",
+ "Value7 = P/(V*Density_M);\n",
+ "Value8 = sigma/Density_c;\n",
+ "dp = 10**(-2.066+(0.732*phi_D))*Value6**0.0473*Value7**(-0.204)*Value8**(0.274);# [m]\n",
+ "a = 6*phi_D/dp;# [square m/cubic m]\n",
+ "Sca = viscosity_c/(Density_c*Dc);\n",
+ "# From Eqn. 10.65:\n",
+ "Shc = 65.3;\n",
+ "kLc = Shc*Dc/dp;# [kmol/square m s (kmol/cubic m)]\n",
+ "thetha = V/(qD+qC);# [s]\n",
+ "# From Table 10.1 (Pg 524):\n",
+ "# lambda = [lambda1 lambda2 lambda3]\n",
+ "Lambda = [1.359 ,7.23, 17.9];\n",
+ "# B = [B1 B2 B3]\n",
+ "B = [1.42 ,0.603 ,0.317];\n",
+ "Val = numpy.zeros(3);\n",
+ "Sum = 0;\n",
+ "for n in range(0,3):\n",
+ " Val[n] = (B[n]**2)*exp((-Lambda[n])*64*Dd*thetha/dp**2);\n",
+ " Sum = Sum+Val[n];\n",
+ "\n",
+ "# From Eqn. 10.66:\n",
+ "kLd = -(dp/(6*thetha))*math.log((3.0/8)*Sum);\n",
+ "mCD = 1.0/Dist;\n",
+ "# From Eqn. 10.67:\n",
+ "KLd = 1/((1/kLd)+(1/(mCD*kLc)));# [kmol/square m s (kmol/cubic m)]\n",
+ "Z = 0.5;# [m]\n",
+ "Vd = qD/(math.pi*Z**2.0/4);# [m/s]\n",
+ "# From Eqn.10.70:\n",
+ "NtoD = Z/(Vd/(KLd*a));\n",
+ "# From Eqn. 10.71:\n",
+ "EMD = NtoD/(NtoD+1);\n",
+ "print\"Expected stage efficiency: \\n\",round(EMD,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.7 - Page: 525\n",
+ "\n",
+ "\n",
+ "Expected stage efficiency: \n",
+ "0.93\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.8: Pg-539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.8\n",
+ "# Page: 539\n",
+ "\n",
+ "print'Illustration 10.8 - Page: 539\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:acetic acid c:Water d:Isopropylether layer\n",
+ "# Water solution (continuous):\n",
+ "C = 8000.0;# [kg/h]\n",
+ "xCn = 0.175;# [mass fraction]\n",
+ "Density_c = 1009.0;# [kg/cubic m]\n",
+ "viscosity_c = 3.1*10**(-3);# [kg/m.s]\n",
+ "Dc = 1.24*10**(-9);# [square m/s]\n",
+ "\n",
+ "# Isopropyl Ethr Layer:\n",
+ "D = 20000.0;# [kg/h]\n",
+ "xDnPlus1 = 0.05;# [mass fraction]\n",
+ "Density_d = 730;# [kg/cubic m]\n",
+ "viscosity_d = 0.9*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.96*10**(-9);# [square m/s]\n",
+ "\n",
+ "sigma = 0.013;# [/N/m]\n",
+ "m = 2.68;# [Distributon coeffecient]\n",
+ "#*******#\n",
+ "\n",
+ "Ma = 60.1;\n",
+ "g = 9.81;# [m/square s]\n",
+ "cCn = xCn*Density_c/Ma;# [kmol/cubic m]\n",
+ "cDnPlus1 = xDnPlus1*Density_d/Ma;# [kmol/cubic m]\n",
+ "mCD = m*(Density_c/Density_d);# [(kmol/cubic min ether)/(kmol/cubic m in water)]\n",
+ "\n",
+ "# Perforations:\n",
+ "Do = 0.006;# [m]\n",
+ "pitch = 0.015;# [m]\n",
+ "qD = D/(3600.0*Density_d);# [cubic m/s]\n",
+ "delta_Density = Density_c-Density_d;# [kg/cubic m]\n",
+ "Value1 = Do/(sigma/(delta_Density*g))**0.5;\n",
+ "if Value1<0.1785:\n",
+ " # From Eqn. 10.74(a):\n",
+ " doBydj = (0.485*Value1**2)+1;\n",
+ "else:\n",
+ " # From Eqn. 10.74(b)\n",
+ " doBydj = (1.51*Value1)+0.12;\n",
+ "\n",
+ "dj = Do/doBydj;# [m]\n",
+ "Vomax = 2.69*((dj/Do)**2)*(sigma/(dj*((0.5137*Density_d)+(0.4719*Density_c))))**0.5;# [m/s]\n",
+ "# Since Vomax is less than 0.1:\n",
+ "Vo = 0.1;# [m/s]\n",
+ "Ao = qD/Vo;# [square m]\n",
+ "No = Ao/(math.pi*Do**2.0/4);# [square m]\n",
+ "# From Eqn. 6.30:\n",
+ "# Plate area for perforation:\n",
+ "Aa = Ao/(0.907*(Do/pitch)**2);# [square m]\n",
+ "\n",
+ "# Downspout:\n",
+ "dp = 0.0007;# [m]\n",
+ "# From Eqn. 10.75:\n",
+ "U = Density_c**2*sigma**3/(g*viscosity_c**4*delta_Density);\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 1.515;\n",
+ "abcissa = 0.62;\n",
+ "def f74(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vt = fsolve(f74,7);# [m/s]\n",
+ "Vd = Vt[0];# [m/s]\n",
+ "qC = C/(Density_c*3600);# [cubic m/s]\n",
+ "Ad = qC/Vd;# [square m]\n",
+ "# From Table 6.2 (Pg 169):\n",
+ "# Allowing for supports and unperforated area:\n",
+ "At = Aa/0.65;# [square m]\n",
+ "T = (At*4/math.pi)**0.5;# [m]\n",
+ "An = At-Ad;# [square m]\n",
+ "\n",
+ "\n",
+ "# Drop Size:\n",
+ "alpha1 = 10.76;\n",
+ "alpha2 = 52560;\n",
+ "alpha3 = 1.24*10**6;\n",
+ "alpha4 = 3.281;\n",
+ "abcissa = (alpha2*sigma*Do/delta_Density)+(alpha3*Do**1.12*Vo**0.547*viscosity_c**0.279/delta_Density**1.5);\n",
+ "Parameter = alpha1*Density_d*Vo**2/(delta_Density);\n",
+ "ordinate = 0.024;\n",
+ "dp = ordinate/alpha4;\n",
+ "\n",
+ "# Coalesced layer:\n",
+ "Vn = qD/An;# [m/s]\n",
+ "# From Eqn. 10.80:\n",
+ "ho = (Vo**2-Vn**2)*Density_d/(2*g*0.67**2*delta_Density);# [m]\n",
+ "hD = ho;\n",
+ "# From Eqn. 10.82:\n",
+ "hC = 4.5*Vd**2*Density_c/(2*g*delta_Density);# [m]\n",
+ "# From Eqn. 10.78:\n",
+ "h = hC+hD;\n",
+ "# Since this is very shallow, increase it by placing an orifice at the bottom of the downspout.\n",
+ "# VR: Velocity through the restriction.\n",
+ "# hR: Corresponding depth of the coalesced layer.\n",
+ "# Assume:\n",
+ "Vr = 0.332;# [m/s]\n",
+ "hr = (Vr**2-Vd**2)*Density_c/(2*0.67**2*delta_Density);\n",
+ "Ar = qC/Vr;# [square m]\n",
+ "dr = (4*Ar/math.pi)**0.5;# [m]\n",
+ "h = h+hr;# [m]\n",
+ "# The above results are satisfacyory.\n",
+ "Z = 0.35;# [m]\n",
+ "# Lead the downspout apron to within 0.1 m of the tray below.\n",
+ "\n",
+ "# Dispersed-phase holdup:\n",
+ "# From Eqn. 10.48:\n",
+ "Vsphi_D = Vn;\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 165.2;\n",
+ "abcissa = 30.0;\n",
+ "def f75(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vtl = fsolve(f75,7);# [m/s]\n",
+ "# For solids:\n",
+ "# From Fig. 10.48 (Pg 536):\n",
+ "abcissa = dp/(3*viscosity_c**2/(4*Density_c*delta_Density*g))**(1.0/3);\n",
+ "phi_D = [0, 0.1 ,0.2 ,0.3];\n",
+ "# Corresponding ordinates, from Fig. 10.48 (Pg 536):\n",
+ "ordinate1 = [8.8, 5.9 ,4.3 ,3.0];\n",
+ "Value1 = 1.0/(4*viscosity_c*delta_Density*g/(3*Density_c**2))**(1.0/3);\n",
+ "Val = numpy.zeros((4,7));\n",
+ "# Val = [phi_D ordinate Vs(1-phi_D) (Vs for solids) Vs/Vt (Vs for liquids) (Vs*phi_D (for liquids))]\n",
+ "for i in range(0,4):\n",
+ " Val[i,0] = phi_D[i];\n",
+ " Val[i,1] = ordinate1[i];\n",
+ " Val[i,2] = Val[i,1]/Value1;\n",
+ " Val[i,3] = Val[i,2]/(1-Val[i,0]);\n",
+ " Val[i,4] = Val[i,3]/Val[0,3];\n",
+ " Val[i,5] = Vtl*Val[i,4];\n",
+ " Val[i,6] = Val[i,5]*Val[i,0];\n",
+ "\n",
+ "\n",
+ "# By Interpolation:\n",
+ "Phi_D = 0.1;\n",
+ "\n",
+ "thetha_f =0.2498 # s\n",
+ "# From Eqn. 10.87:\n",
+ "const = 1.5;\n",
+ "kLDf = const*(Dd/(math.pi*thetha_f))**0.5;# [m/s]\n",
+ "# From Eqn. 10.86\n",
+ "KLDf = 1.0/((1.0/kLDf)*(1+((1.0/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# The ordinate of Fig. 10.47 for the drops larger than 70. Hence mass transfer coeffecient during drop rise is given by Eqn. 10.89:\n",
+ "# From Eqn. 10.91:\n",
+ "b = 1.052*dp**0.225;\n",
+ "# From Eqn. 10.90:\n",
+ "omega = (1.0/(2*math.pi))*math.sqrt(192*sigma*b/(dp**3*((3*Density_d)+(2*Density_c))));# [1/s]\n",
+ "Del = 0.2;\n",
+ "kLDr = math.sqrt((4.0*Dd*omega/math.pi)*(1+Del+(1.0/2)*Del**2));\n",
+ "KLDr = 1.0/1/((1/kLDr)*(1+((1/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# From Eqn. 10.98:\n",
+ "EMD = ((4.4*KLDf/Vo)*(dp/Do)**2)+(6*KLDr*Phi_D*(Z-h)/(dp*Vn))/(1+((0.4*KLDf/Vo)*(dp*1.0/Do)**2)+(3*KLDr*Phi_D*(Z-h)/(dp*Vn)));\n",
+ "print\"Stage Efficiency: \",round(-EMD,3)\n",
+ "# The solution in the textbook is incorrect\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.8 - Page: 539\n",
+ "\n",
+ "\n",
+ "Stage Efficiency: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.9: Pg-551"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.9\n",
+ "# Page: 551\n",
+ "\n",
+ "print('Illustration 10.9 - Page: 551\\n\\n');\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#****Data****#\n",
+ "B = 20000;# [kg/h]\n",
+ "#******#\n",
+ "\n",
+ "# x and y are taken in weight fraction acetic acid.\n",
+ "x1 = 0.30;# [Wt fraction]\n",
+ "xF = 0.30;# [Wt fraction]\n",
+ "y2 = 0;# [Wt fraction]\n",
+ "x2 = 0.02;# [Wt fraction]\n",
+ "y1 = 0.10;# [Wt fraction]\n",
+ "# The operating diagram is plotted in Fig. 10.23:\n",
+ "# Data = [x x_star]\n",
+ "# From Fig. 10.23 (Pg 503):\n",
+ "Data = numpy.array([[0.30 ,0.230],[0.25 ,0.192],[0.20 ,0.154],[0.15, 0.114],[0.10, 0.075],[0.05, 0.030],[0.02, 0]]);\n",
+ "Val = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " Val[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x\");\n",
+ "plt.ylabel(\"1/(x-x*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# From Area Under the curve:\n",
+ "Area = 8.40;\n",
+ "# The mutual solubility of water and isopropyl ether is very small.\n",
+ "Ma = 18.0;# [kg/kmol water]\n",
+ "Mb = 60.0;# [kg/kmol isopropyl ether]\n",
+ "r = Ma/Mb;\n",
+ "# From Eqn. 10.110:\n",
+ "NtoR = Area+(1.0/2)*math.log(1-x2/(1-x1))+(1.0/2)*math.log(x2*(r-1)+1.0/(x1*(r-1)+1));\n",
+ "# Since the operating line and equilibrium line are parallel:\n",
+ "Np = NtoR;\n",
+ "print\"Number of theoretical Units: \\n\",round(NtoR,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.9 - Page: 551\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEZCAYAAACTsIJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYHXWV//H3Jwk7SBNgSECwFUdQBBuUNUBaFAzIEmVE\nECER3FARMSDLzBhABUG2URxlhiXgBsOowRBAQGl24o8xHUKQVTIshsgSBCbIlvP7o6pJd9Pdud33\n1q3lfl7P009u3VvVdU4X9On6nqpvKSIwMzPrMSrvAMzMrFhcGMzMrA8XBjMz68OFwczM+nBhMDOz\nPlwYzMysDxcGKxVJJ0n6yRCf3yNp1yz3UWaSNpH0giTlHYsVlwuD1UXSgZLmSHpR0mJJd0o6IsNd\nDnnjTUS8NyJuzmofkjolPVbLN5HULmmZpNz+P5O0UNJuPcsR8WhErBW+gcmG4MJgIyZpGnAucDqw\nQURsAHwRmCBp5UG2qfe/uWb8pdvofWQSs6TRNawWWe3fqsuFwUZE0trAycAREfGriPg/gIjojohP\nR8Qr6XozJP1I0tWSXgQ6JX1U0lxJf5P0qKTpvb5vz1/Zn5P0hKS/pAWoRwArS7pE0vPp0NH7e22/\nUNKH0tejJZ0o6aF03bskbZR+9m/pvv+Wvr/zCH8OXZJOkXRruo/fSlo3/bjnzOW5dPhm+3SbwyTd\nK+lZSddK2qTX99tD0v2SnpP0Q0k3STo8/WyqpNsknS3paWC6pHdI+r2kpyU9Jemn6bEhHQ7bBJiV\n7v+Y/mcxkjaU9BtJz0h6UNJne8VykqT/GuxnbdXlwmAjtSOwCnBlDeseBHwrItYEbgNeBD4dEWsD\nHwWOkLRfv206gXcCewDH9fyyJ/nrd1/gF8DawG+A83ptFywfCvo6cCCwZ0S8BfgM8FL62R+A9wHr\nAD8HrhjsLKfG/KYC/wCsDByTvr9L+u/a6fDNnDTPE4CPAesBt6S5IGk94ArgOGAscD/Jz7n3sM92\nwMPpvk5Nfx7fAcYD7wY2Bk4CiIhDgEeBvdP9nzlA7Jel64wH/gk4VdIHe32+D4P/rK2iXBhspNYD\nno6IZT1vSLpd0hJJS/v9BT4zIu4AiIiXI+KmiFiQLs8n+eU0sd/3PzkiXoqIe4CLSX759rglIq5N\nx8l/SvILfiCfBf45Ih7s2VdEPJu+/llELImIZRFxNkmR22wEP4cALo6IhyLi78B/AR09P5IB1v8i\ncFpE3J/+7E4DOtKzhr2AeyJiZhrX94En+23/l4j4Yfr53yPi4Yj4XUS8GhFPA+fw5p/lgCRtDOwE\nHBcRr0TEPOAC4NBeq9X6s7YKcWGwkXoGWK93zyAidoqIddLPet4PoE+zVtL2km6U9FdJzwFfANal\nr97bPAps2Gt5ca/XS4FVB+ldvJXkr+s3SYdV7k2HbJaQ/EW83iC5rkjvX94vAWsOse7bgH9LC+gS\nkp8VwEYkf7U/3m/9/sv9f5YbSLpM0uOS/gb8hDf/LAezIfBszzBg6tE0lh61/qytQnyAbaTuAF4G\nJo9g258DM4G3RkQb8GPe/N/iJv1ePzGC/TxGMhzVh6RdgGOBT0REW1rM/kbjm7QDXfnzKPD5iFin\n19ca6RnVIpJi1hOnei8P8j1PBV4H3psOzR1C35/lUFcf/QUYK6l3IduENxcjazEuDDYiEfEcSfP5\n3yXtL2ktSaMkdQBr9Fp1oF+2awJLIuIVSdsBn+LNv8D+RdJqkrYgGb+/fARhXgB8S9I7ldhK0th0\n/68BT0taWdI3gbeM4Pv3GKygPAUsAzbt9d6PgRMlvQeSJr6kT6SfXQ1sKWk/SWOALwPjVrDvNYH/\nA55PG+vH9vt8cb/9vyEiHgNuB06TtIqkrYDDSIaMrIW5MNiIRcT3SBq83yAZTnmS5BffN0jOKKBv\nM7jHl4BTJD0P/CsD/9K/CXgIuAH4XkTcMMT3G+yv4rNJxvyvIzkj+E9gVeC3wLXAA8BCkuGfR/t9\nv6H+0h5q/29sGxFLSRrDt6VDR9tFxEySy3svS4d+5gMfSdd/GvgEcAbwNEkz+S6SM7PB4joZ2CbN\nbxbwy37rnEZSZJdI+voA8R4EtJOcPfwK+GZE/H6I/fn+hxagrO9zkbQQeJ7kdPfViNgu/avtcpLx\n1oXAAelfoNbiJLUDfwbG9G5st6J0LP8x4FMRcVPe8VjraMYZQwCdEbF1RGyXvnc8cH1EvAv4Xbps\n1vLS+xjaJK0CnJi+fWeeMVnradZQUv8x2H2BS9LXlzCyBqZVVysPV+xIMoT2FMk9HpMj4uWhNzFr\nrGYMJf2ZZPzzdeD8iPhPSUvSK0F6rrx4tmfZzMzyNaYJ+5gQEYskrQ9cL+m+3h9GREhq5b8QzcwK\nJfPCEBGL0n+fkvRrklv6F0saFxFPShoP/LX/di4WZmYjExF13ZOTaY9B0uqS1kpfr0Ey7818kjlX\npqSrTSG52elNIqKyXwcfPJ311w9uuy3/WBr9NX369NxjcH7Or1Xza4Ssm88bALdI6gbmAFdFxHXA\nd4HdJT0A7JYut5QxYxZy6aUweTLcfnve0TTWwoUL8w4hU86v3KqeXyNkOpQUEY+wfEKx3u8/C3w4\ny32XwaRJvFEcZs6EnXbKOyIzM9/5nJupU6cCfYtDVc4cenKrKudXblXPrxEyv1x1pCRFUWPLwrXX\nwqGH+szBzOojiShy89kG19XV1We5SmcO/XOrGudXblXPrxFcGAqkSsXBzMrLQ0kF5GElMxspDyVV\nlM8czCxPLgw5WdE4Z5mLQ9XHcJ1fuVU9v0ZwYSiwMhcHMysv9xhKwD0HM6uVewwtwmcOZtZMLgw5\nGe44Z5mKQ9XHcJ1fuVU9v0ZwYSiRMhUHMysv9xhKyD0HMxuMewwtymcOZpYlF4ac1DvOWeTiUPUx\nXOdXblXPrxFcGEqsyMXBzMrLPYYKcM/BzHq4x2CAzxzMrLFcGHLS6HHOIhWHqo/hOr9yq3p+jZB5\nYZA0WtJcSbPS5ZMkPZ6+N1fSpKxjaBVFKg5mVl6Z9xgkfR14P7BWROwraTrwQkScvYLt3GMYIfcc\nzFpX4XsMkt4K7AVcAPQEql6vLQM+czCzemQ9lHQOcCywrNd7ARwpaZ6kCyW1ZRxDIWU9zplncaj6\nGK7zK7eq59cImRUGSXsDf42IufQ9Q/gR8HagA1gEnJVVDK3OZw5mNhKZ9RgknQocArwGrAq8Bfhl\nRBzaa512YFZEbDnA9jFlyhTa29sBaGtro6Ojg87OTmB51ffyipevvRYOPLCLb38bvvKV/OPxspe9\n3Ljlrq4uZsyYAUB7ezsnn3xy3T2GptzgJmkicExE7CNpfEQsSt8/Gtg2Ij41wDZuPjeQG9JmraHw\nzedeRNJbADhD0t2S5gETgaObFEOh9FT8ZmnmsFKzc2s251duVc+vEcY0YycR0QV0pa8PacY+7c16\nFwefOZjZYDxXUgvysJJZdZVpKMkKxFcrmdlQXBhykvc4Z5bFIe/csub8yq3q+TWCC0ML85mDmQ3E\nPQZzz8GsQtxjsIbwmYOZ9ebCkJOijXM2sjgULbdGc37lVvX8GsGFwd7gMwczA/cYbADuOZiVl3sM\nlgmfOZi1NheGnBR9nLOe4lD03Orl/Mqt6vk1gguDDcpnDmatyT0GWyH3HMzKwz0GawqfOZi1FheG\nnJRtnHM4xaFsuQ2X8yu3qufXCC4MVjOfOZi1BvcYbNjcczArLvcYLBc+czCrNheGnJR9nHOo4lD2\n3FbE+ZVb1fNrhMwLg6TRkuZKmpUuj5V0vaQHJF0nqS3rGCwbPnMwq6bMewySvg68H1grIvaVdAbw\ndEScIek4YJ2IOH6A7dxjKAn3HMyKo/A9BklvBfYCLgB6At0XuCR9fQkwOcsYLHs+czCrlqyHks4B\njgWW9Xpvg4hYnL5eDGyQcQyFVLVxzt7F4bzzuvIOJ1NVO3b9OT8bk9U3lrQ38NeImCupc6B1IiIk\nDTpeNHXqVNrb2wFoa2ujo6ODzs7kW/Uc3LIud3d3FyqeRiyvuir85CedfPKT8Ja3dLHJJsWKz8te\nruJyV1cXM2bMAHjj92W9MusxSDoVOAR4DVgVeAvwK2BboDMinpQ0HrgxIjYfYHv3GErqoovg9NNh\nzhxo86UFZk3ViB5DU25wkzQROCYi9kmbz89ExOmSjgfa3HyunqOOgvvvh9mzYfTovKMxax2Fbz73\n0/Nb/rvA7pIeAHZLl1tOz6lgFXV1dXHWWfDaa3DccXlH03hVPnbg/CzDHkNvEXETcFP6+lngw83Y\nr+VnzBi4/HLYfnvYaqvkclYzKwfPlWSZWrAAOjvhqquSImFm2SrbUJK1oC22SJrR++8PTzyRdzRm\nVgsXhpxUeZyzf2777ANf+hJ87GPw0kv5xNRIVT524PzMhcGa5IQT4B3vgM9/HjxCaFZs7jFY0yxd\nCrvsAgcdBMcck3c0ZtXUiB5DU65KMgNYffVkor3tt096D3vumXdEZjYQDyXlpMrjnEPltvHGcMUV\nMGUK3Hdf82JqpCofO3B+5sJgOZgwAb77XdhvP3juubyjMbP+3GOw3HjaDLPG830MVmpVnjbDrMxc\nGHJS5XHOWnPrmTZj5szkWQ5lUeVjB87PfFWS5WzddeHKK5NpMzbbzNNmmBWBewxWCLNmwRFHJM9w\n2GijvKMxKy/3GKwyqjZthlmZuTDkpMrjnCPNrSzTZlT52IHzMxcGKxApmYn13nuTK5bMLB/uMVjh\nPPZY0oS+8EJPm2E2XO4xWCVVYdoMszJzYchJlcc5G5HbhAlw2mnFnDajyscOnJ9lXBgkrSppjqRu\nSfdKOi19/yRJj0uam35NyjIOK6fDD4dJk+DAA+H11/OOxqx1ZN5jkLR6RCyVNAa4FTgG+BDwQkSc\nPcR27jEYr72WFIeODjjzzLyjMSu+UvQYImJp+nJlYDSwJF2uK3BrDWWdNsOszDIvDJJGSeoGFgM3\nRsSC9KMjJc2TdKGktqzjKJoqj3M2OreeaTOmTUvujM5blY8dOD9rwlxJEbEM6JC0NvBbSZ3Aj4BT\n0lW+BZwFHN5/26lTp9Le3g5AW1sbHR0ddHZ2AssPblmXu7u7CxVP0ZefeqqLo4+G/ffvZM4cePDB\nYsXnZS/ntdzV1cWMGTMA3vh9Wa+m3scg6V+BlyLizF7vtQOzImLLfuu6x2BvcuqpybDSTTfBaqvl\nHY1Z8RS+xyBpvZ5hIkmrAbsDcyWN67Xax4D5WcZh1VGWaTPMyizrHsN44Pdpj2EOyZnB74AzJN0t\naR4wETg64zgKp+dUsIqyzK33tBl5XaVU5WMHzs8y7jFExHxgmwHePzTL/Vq1rb56Mpy0/fbw3vd6\n2gyzRvNcSVZat92WTNN9882w+eZ5R2NWDIXvMZhlqcjTZpiVmQtDTqo8ztnM3PKYNqPKxw6cn7kw\nWAWcdVYydcZxx+UdiVk1uMdglfDMM0kz+pvfhEN9aYO1sEb0GFwYrDIWLIDOTrjqqqRImLUiN59L\nrMrjnHnltsUWyT0O++8PTzyR3X6qfOzA+dkwCkP6bIVVsgzGrF777ANf+lJyGetLL+UdjVk5DTqU\nJGkUMBk4CNiJpIgIeB24A/gZMDOr8R4PJdlIRcBBB8FKKyVTdcsTvFsLybTHIOlm4BbgN0B3RLyc\nvr8KsDWwL7BzROxaTwCDBubCYHVYuhR22SW5jPXYY/OOxqx5su4x7B4R/xwRc3qKAkBEvBwRd0bE\niSST4tkIVHmcswi59Uybcc45cM01jf3eRcgvS87PBi0MEfGypIMBJB002DpZBWZWr403hiuugClT\n4L778o7GrDyGvFxV0rHA/wJvi4jvNS0qPJRkjXPhhXDGGcnT39pa7lmB1moyHUqSNB0YC/wcGJsu\nm5VOHtNmmJXZUENJJwPPAIcAz6TL1iBVHucsYm6NnDajiPk1kvOzFd3HsCgifgFkeLuQWfbGjIHL\nL08a0pdemnc0ZsW2wikxJH04Im7o996UiLgk08DcY7AMeNoMq7pmTYkxXdKPJK0haZykWST3MJiV\nTrOmzTArs1oKw0Tgz8A8khvefhER+2caVQuo8jhn0XOrd9qMoudXL+dntRSGdYBtgYeBV4BNpBVP\nMpDOrTRHUrekeyWdlr4/VtL1kh6QdJ0kX0BoTXfCCfCOd8DnP59MoWFmy9XSY3gAOD0iLpS0OnA6\n8P6I2GmF31xaPSKWShoD3AocQzIM9XREnCHpOGCdiDh+gG3dY7BMLV0KO++czKvkaTOsKpryPAZJ\nb4uI/+333sSIuKnmnSQF5SZgKvBLYGJELJY0DuiKiDc9yt2FwZrhsceSJvQFF8Bee+UdjVn9mtJ8\n7l0UJJ2UvldTUZA0SlI3sBi4MSIWABtExOJ0lcXABsMNugqqPM5Zptx6ps2YOrX2aTPKlN9IOD8b\nM8z19wNOqnXliFgGdEhaG/itpA/2+zwkDXpaMHXqVNrb2wFoa2ujo6ODzs5OYPnBLetyd3d3oeJp\n5eUJE2DKlC523x3mz++kra1Y8XnZy0Mtd3V1MWPGDIA3fl/Wa1iP9pQ0NyK2HtGOpH8FXgI+C3RG\nxJOSxpOcSXgoyXJ31FFw//0wezaMHp13NGYjk8ejPT+Q7njlFa0oab2eK44krUYyRfdckuc7TElX\nmwLMHGYMZplo5LQZZmW2wsIg6SZJbweIiNclbQfcVcP3Hg/8Pu0xzAFmRcTvgO8Cu6dXO+2WLrec\nnlPBKiprbrVOm1HW/Grl/KyWHsOpwDWSfgBsBOxJcnXRkCJiPrDNAO8/C3x4eGGaNce668KVVybT\nZmy2mafNsNZUU48hbRpfDzwFbB0RT2YemHsMlqNZs+CII5JnOGy0Ud7RmNWuKT2GtGn8A2AXkiuS\nbpK0dz07NSu6eqfNMCuzWprP6wLbRsQdEXE+sAdwVLZhVV+Vxzmrkttg02ZUJb/BOD+r5Qa3r0XE\nS72W/5ekOJhVmpTMxLpgAZx5Zt7RmDXPoD0GSRcBP4qI/zfI59sDX4yIz2QSmHsMVhCeNsPKJNO5\nkiRtCRwL7ADcDywCBIwDNgNuB86MiHvqCWDQwFwYrEBuuy3pN9x8M2z+ptsxzYoj0+ZzRMyPiEOB\nLYHvAL8juTLp28BWETE1q6LQCqo8zlnF3CZMgNNOg/32g6uu6so7nExV8fj1VvX8GmHQ+xgk/Qdw\nDXBDRNwJ3Nm0qMwK6PDD4e67Ydq05BLWrUc0OYxZ8Q01lLQDyc1suwGvAr8Fro2IeU0JzENJVkDL\nlsHFF8OJJ8IBB8C3vgVtftSUFUjWQ0l3RsT0iNgFOAB4DJiWPpHtIkkH1LNjszIaNSo5c7j3Xnjl\nFXj3u5PpM/w3jFVJTZPoRcTTEfHztOewNXAf8I+ZRlZxVR7nrHJukOS37rpw/vnJ9Bnf/z7suivM\nn593ZI3RCsfPhjbc2VVJx3eOjIjvZBCPWalst10ybcbBB8OHPgRHHw3PP593VGb1GarHMNTfP5tF\nxAqn3q6HewxWNk89BccfD9deC9/7XvIsadU10ms2fFnfx7AYmAQsGeDj2yNiw3p2vMLAXBispG6/\nPZlnaexYOO88eM978o7IWknWk+jNBtaMiIX9v4Canvlsg6vyOGeVc4MV57fTTnDXXckNcRMnwje+\nAS++2JzYGqHVj58NfVXSYRFxyyCfHZRdSGblN2YMHHlk0pBetCi5eumKK3z1kpXDsJ753EweSrIq\nufnmZHhpww3hBz9IHgJkloU8nvlsZiOw664wdy585CPJ9Br//M+wdGneUZkNzIUhJ1Ue56xybjDy\n/FZaKZlOY948ePjhpCl95ZXFG17y8bNMC4OkjSXdKGmBpHskfTV9/yRJj0uam35NyjIOsyLZaCO4\n7DK48MLk8ta9904KhVlRZNpjkDQOGBcR3ZLWBP4HmEwyxcYLEXH2ENu6x2CV98orcM45yX0PX/kK\nHHccrLZa3lFZmRW+xxART0ZEd/r6ReBPQM+j1X3rj7W8lVdOisEf/wj33APvfS9cfXXeUVmra1qP\nQVI7yTxLPdN3HylpnqQLJbXc/JRVHuescm6QTX6bbAL//d/wwx/CUUfB5MmwcGHDd1MTHz8b9HkM\njZQOI/03cFREvCjpR8Ap6cffAs4CDu+/3dSpU2lvbwegra2Njo4OOjs7geUHt6zL3d3dhYrHy8VY\nnjSpk/nz4ctf7mKrreC44zo55hi4445ixOfl4i13dXUxY8YMgDd+X9Yr8/sYJK0EXAVcExHnDvB5\nOzArIrbs9757DNbSHnkEvvY1+NOfkqk19tgj74isDArfY5Ak4ELg3t5FQdL4Xqt9DKjIhMVmjfP2\ntyeXs559Nnzxi/CJT8Djj+cdlbWCrHsME4BPAx/sdWnqnsDpku6WNA+YCBydcRyF03MqWEVVzg2a\nn9/ee8OCBcl9Dx0dcMYZydVMWfHxs6yvSro1IkZFREdEbJ1+XRMRh0bEVhHxvoiYHBGLs4zDrOxW\nWw1OPhnuvBNuvDEpEDfemHdUVlWeK8msZCJg5syk/zBhApx1Fowfv+LtrDUUvsdgZo0nJVN633sv\ntLfDVlvBuefCa6/lHZlVhQtDTqo8zlnl3KA4+a2xBpx6Ktx6K8yeDdtsk7yuV1Hyy0rV82sEFwaz\nkttsM7juOviXf0keJzplCix2187q4B6DWYW88AKccgrMmAHTp8MRR8Do0XlHZc2U6TOf8+bCYDZy\nCxbAl78Mzz8P//7vsMMOeUdkzeLmc4lVeZyzyrlBOfLbYovkctZp0+DjH4fPfhaefrq2bcuQXz2q\nnl8juDCYVZQEBx+cTKmx5prJDXLnnw+vv553ZFZ0HkoyaxHz5iXPnX711WR46QMfyDsiy4KHksys\nZu97H9xyS1Ic9t47aUw/+2zeUVkRuTDkpMrjnFXODcqd36hRMHVqMrw0alQyvHTRRbBs2fJ1ypxf\nLaqeXyO4MJi1oHXWSR4KNHt20nfYeWdIHxFi5h6DWatbtgwuvDC5Qe6Tn0wm61tnnbyjspFyj8HM\n6jZqFHzuc8ncS6+8AptumkzQ98gjeUdmeXFhyEmVxzmrnBtUN79114Uf/xjOP7+LVVaBbbeFAw6A\nOXPyjqyxqnr8GsmFwcz6WH99OP305IxhwgQ48MCkB/HrX/seiFbhHoOZDem115KicOaZyeWtX/ta\ncmXTGmvkHZkNxHMlmVnTRMBttyUPBrr1VvjCF+ArX4Fx4/KOzHpz87nEqjzOWeXcoHXzk5YPKd1+\nOyxZktwHcdhhcM89zY2xHlU/fo2QaWGQtLGkGyUtkHSPpK+m74+VdL2kByRdJ6ktyzjMrLH+8R+T\n+yAefDC5imn33WHSJLjhhuTMwsot06EkSeOAcRHRLWlN4H+AycBngKcj4gxJxwHrRMTx/bb1UJJZ\nSbz8MvzsZ3D22cnzH6ZNS5rWK6+cd2Stp3Q9BkkzgfPSr4kRsTgtHl0RsXm/dV0YzEomAn7726QP\nce+9cOSRSS/CN8w1T6l6DJLaga2BOcAGEdHz8MHFwAbNiqMoqjzOWeXcwPkNRUqGlK6/Hq6+OpmT\nadNN4atfhT//uXEx1qPqx68RxjRjJ+kw0i+BoyLiBWl5MYuIkDTgqcHUqVNpb28HoK2tjY6ODjo7\nO4HlB7esy93pxDRFicfLXs5i+ZJLOnniCTj22C623hr22KOTadPg738vRnxVWO7q6mLGjBkAb/y+\nrFfmQ0mSVgKuAq6JiHPT9+4DOiPiSUnjgRs9lGRWbS++mMzkeu65MH580ofYbz8/k7rRCt9jUHJq\ncAnwTEQc3ev9M9L3Tpd0PNDm5rNZa3j99eSS17POgqeeSm6Y+8xnfMNco5ShxzAB+DTwQUlz069J\nwHeB3SU9AOyWLreUnlPBKqpybuD86jV6NPzTP8Edd8Cll8Lvfw/t7XDiibBoUaa7Bqp//Boh0x5D\nRNzK4MXnw1nu28yKb6ed4Fe/goceSoaYttgiGV76+tdhyy3zjq51eUoMMyuMZ59NZng977ykMEyb\nltw8p7oGRlpL4XsM9XBhMGtdL78MP/95csOclBSIgw7yDXO1KEOPwQZR5XHOKucGzq8ZVlklaUjf\nfTd873vJXdVvfzucdlpyVlGPIuRXdC4MZlZYEnzkI3DddXDNNXD//fDOdyZ3VD/8cN7RVZeHksys\nVP7yl6QH8R//ARMnJsNMO+2Ud1TF4R6DmbWsF1+Eiy+Gc85JngkxbRpMnuwb5txjKLEqj3NWOTdw\nfkWx5prJkNKDDyZF4ayz4F3vgh/8ICkagylLfnlyYTCzUhs9GvbfP3l40E9/CjfdlDSqTzghGXay\n4fNQkplVzsMPJzfM/exnsM8+yRnFVlvlHVVzeCjJzGwAm26aDCk99BBsvnkyFfgeeyTPili2LO/o\nis+FISdVHuescm7g/Mpk7NhkSOmRR+Dgg+H442G99bo47DD45S/h+efzjrCYXBjMrPJWWQWmTIG5\nc5NLXbfeOrncdaONkik3zj03ObuwhHsMZtayXnwRbrgBrroKZs+GtdeGj34U9t4bdt4ZVlop7wiH\nz/cxmJk1yLJlyRlFT5F48MHkbGLvvWHPPWH99fOOsDZuPpdYlcZx+6tybuD8ym6w/EaNgve/H6ZP\nhz/8IXle9aRJcOWVyTQcO+4I3/kOzJsHVf+b1YXBzGwA48bxRpP6r3+FU05J/v34x2GTTeCLX0zO\nLpYuzTvSxvNQkpnZMEQkk/n1DDnddRfsumsy5PTRjyZFI0/uMZiZ5ey555L7I2bPTmaAHT9+eZHY\nYYfmz91U+B6DpIskLZY0v9d7J0l6vN8zoFtOlcdxq5wbOL+ya3R+bW3wyU8mz69+8snkCXQSfOlL\nsMEGcMghcNllsGRJQ3ebqax7DBcD/X/xB3B2RGydfl2bcQxmZk0xenQyBXhPk/qPf4QJE5I5nN72\nNujsTB489Kc/FbuBnflQkqR2YFZEbJkuTwdejIizVrCdh5LMrDKWLoUbb0x6E1ddlTymtOeeiYkT\nk5vwGqEUPYZBCsNngL8BdwHTIuK5AbZzYTCzSoqA+fOXF4kFC2C33ZIisddeSZ9ipArfYxjEj4C3\nAx3AImCYVbYsAAAGxklEQVTIM4eqqvI4bpVzA+dXdkXIT0pmez3xxGS68IceSi6Dve46eM974AMf\ngJNOSq54ymPSvzHN3mFE/LXntaQLgFmDrTt16lTa29sBaGtro6Ojg87OTmD5wS3rcnd3d6Hi8bKX\nvZzf8oIFXWy8MVx+eSevvgo//GEXd9yRLC9ZAtts08WOO8LXvtbJWmv13b6rq4sZM2YAvPH7sl55\nDCWNj4hF6eujgW0j4lMDbOehJDNreQ89lFwKO3s23HFHcgd2z+Wwm2765vUL32OQ9AtgIrAesBiY\nDnSSDCMF8AjwhYhYPMC2LgxmZr288AJcf33Sl7j6alhnneVFYsKEZNK/wvcYIuKgiNgwIlaOiI0j\n4qKIODQitoqI90XE5IGKQivoORWsoirnBs6v7Mqc31prJb2Iiy5KHlt66aWw+upwzDHwD/8ABx7Y\nmP14riQzsxIaNQq23RZOPjlpUi9YkEz61wieEsPMrEIKP5RkZmbl48KQkzKPc65IlXMD51d2Vc+v\nEVwYzMysD/cYzMwqxD0GMzNrOBeGnFR5nLPKuYHzK7uq59cILgxmZtaHewxmZhXiHoOZmTWcC0NO\nqjzOWeXcwPmVXdXzawQXBjMz68M9BjOzCnGPwczMGs6FISdVHuescm7g/Mqu6vk1gguDmZn14R6D\nmVmFuMdgZmYNl2lhkHSRpMWS5vd6b6yk6yU9IOk6SW1ZxlBUVR7nrHJu4PzKrur5NULWZwwXA/2f\nQno8cH1EvAv4Xbrccrq7u/MOITNVzg2cX9lVPb9GyLQwRMQtwJJ+b+8LXJK+vgSYnGUMRfXcc8/l\nHUJmqpwbOL+yq3p+jZBHj2GDiFicvl4MbJBDDGZmNohcm8/pZUcteenRwoUL8w4hM1XODZxf2VU9\nv0bI/HJVSe3ArIjYMl2+D+iMiCcljQdujIjNB9iuJQuGmVm96r1cdUyjAhmG3wBTgNPTf2cOtFK9\niZmZ2chkesYg6RfARGA9kn7CN4Ergf8CNgEWAgdEhLtBZmYFUdg7n83MLB9Nbz5LmiTpPkkPSjpu\nkHW+n34+T9LWw9k2b3Xmt1DS3ZLmSvpD86Ku3Yryk7S5pDsk/V3StOFsWwR15lfo41dDbgen/03e\nLek2SVvVum0R1JlfoY8d1JTffml+cyX9j6Tdat32TSKiaV/AaOAhoB1YCegG3t1vnb2Aq9PX2wN3\n1rpt3l/15JcuPwKMzTuPOvNbH/gA8G1g2nC2zfurnvyKfvxqzG1HYO309aQK/r83YH5FP3bDyG+N\nXq+3BB4a6fFr9hnDdmmwCyPiVeAyYL9+67xxA1xEzAHaJI2rcdu8jTS/3vdyFLnpvsL8IuKpiLgL\neHW42xZAPfn1KOrxqyW3OyLib+niHOCttW5bAPXk16Ooxw5qy+//ei2uCTxd67b9NbswbAQ81mv5\n8fS9WtbZsIZt81ZPfpDc03GDpLskfS6zKEeulvyy2LZZ6o2xyMdvuLkdDlw9wm3zUE9+UOxjBzXm\nJ2mypD8B1wBfHc62vTX7ctVaO91FrtxDqTe/nSPiL5LWB66XdF8k04oURT1XKpThKod6Y5wQEYsK\nevxqzk3SB4HDgAnD3TZH9eQHxT52UGN+ETETmClpF+Ankt50j1gtmn3G8ASwca/ljUmq11DrvDVd\np5Zt8zbS/J4AiIi/pP8+Bfya5BSwSOo5BlU5foOKiEXpv0U8fjXlljZk/xPYNyKWDGfbnNWTX9GP\nHQzzGKRFbQwwNl1veMevyQ2UMcDDJE2QlVlxc3YHljfAVrht3l915rc6sFb6eg3gNmCPvHMabn69\n1j2Jvs3nShy/IfIr9PGr8b/NTUialDuM9OdS0vwKfeyGkd+mLL8FYRvg4ZEevzwS3BO4Pz1AJ6Tv\nfQH4Qq91zks/nwdsM9S2RfsaaX7AO9ID1g3cU9b8gHEk45l/I5lZ91Fgzaocv8HyK8PxqyG3C4Bn\ngLnp1x+G2rZoXyPNrwzHrsb8vpHGPxe4Bdh2pMfPN7iZmVkffrSnmZn14cJgZmZ9uDCYmVkfLgxm\nZtaHC4OZmfXhwmBmZn24MJiZWR8uDGZm1ocLg1mNJG2bPghlFUlrSLpH0nvyjsus0Xzns9kwSPoW\nsCqwGvBYRJyec0hmDefCYDYMklYC7gJeAnYM/w9kFeShJLPhWY9kBs41Sc4azCrHZwxmwyDpN8DP\nSWbkHB8RR+YcklnDNfsJbmalJelQ4OWIuEzSKOB2SZ0R0ZVzaGYN5TMGMzPrwz0GMzPrw4XBzMz6\ncGEwM7M+XBjMzKwPFwYzM+vDhcHMzPpwYTAzsz5cGMzMrI//D7prQArQbUy7AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78c3a58>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of theoretical Units: \n",
+ "8.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.10:pg-552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.10\n",
+ "# Page: 552\n",
+ "\n",
+ "print('Illustration 10.10 - Page: 552\\n\\n');\n",
+ "\n",
+ "# Solution\n",
+ "import math\n",
+ "#****Data****#\n",
+ "B = 1150;# [kg/h]\n",
+ "#*******#\n",
+ "\n",
+ "# x and y are taken in weight ratio.\n",
+ "x1_prime = 0.0101;# [Wt. fraction]\n",
+ "xF_prime = 0.0101;# [Wt. fraction]\n",
+ "y2_prime = 0;# [Wt. fraction]\n",
+ "x2_prime = 0.001001;# [Wt. fraction]\n",
+ "y1_prime = 0.0782;# [Wt. fraction]\n",
+ "# From Illustration 10.4:\n",
+ "A = 990.0;# [kg/h]\n",
+ "# At the dilute end:\n",
+ "m1_prime = 0.798;\n",
+ "Value1 = m1_prime*B/A;\n",
+ "# At the concentrated end:\n",
+ "m2_prime = 0.953;\n",
+ "Value2 = m2_prime*B/A;\n",
+ "ValueAv = (Value1*Value2)**0.5;\n",
+ "# From Eqn. 10.116:\n",
+ "# Since y2_prime = 0\n",
+ "Value3 = x2_prime/x1_prime;\n",
+ "NtoR = (math.log((1.0/Value3)*(1-(1/ValueAv))+(1/ValueAv)))/(1-(1/ValueAv));\n",
+ "print\"Number of theoretical Unit : \",round(NtoR,1),\"\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.10 - Page: 552\n",
+ "\n",
+ "\n",
+ "Number of theoretical Unit : 8.6 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter11.ipynb b/Mass_-_Transfer_Operations/Chapter11.ipynb
new file mode 100755
index 00000000..061424be
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter11.ipynb
@@ -0,0 +1,1207 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8fb22aace15e10e38e42ea742c8ed08180c4384c86b8595f798fa8d94958571f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Absorption And Ion Exchange"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.1: Page 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.1\n",
+ "# Page: 575\n",
+ "\n",
+ "print'Illustration 11.1 - Page: 575\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "#*****Data*****#\n",
+ "Temp = 30.0;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# From Fig. 11.5 (Pg 572)\n",
+ "# The isosteres for various concentrations are straight and their slopes are measured with the help of milimeter rule.\n",
+ "# Data = [X(kg acetone/kg carbon) lambda(slope of isostere)]\n",
+ "Data = numpy.array([[0.05 ,1.170],[0.10, 1.245],[0.15 ,1.3],[0.20 ,1.310],[0.25 ,1.340],[0.30 ,1.327]]);# [kg acetone/kg carbon]\n",
+ "lambdar = 551.0;# [reference at 30 OC,kJ/kg]\n",
+ "Val = numpy.zeros(shape=(6,5));\n",
+ "for i in range(0,6):\n",
+ " Val[i,0] = Data[i,0];# [kg acetone/kg carbon]\n",
+ " Val[i,1] = Data[i,1];# [slope of isostere]\n",
+ " Val[i,2] = -Data[i,1]*lambdar;# [kJ/kg acetone]\n",
+ "\n",
+ "\n",
+ "plt.plot(Val[:,0],Val[:,2])\n",
+ "plt.grid();\n",
+ "xlabel(\"X (kg carbon / kg acetone)\");\n",
+ "ylabel(\"Differential heat of adsorption (kJ / kg acetone)\");\n",
+ "title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area: The area under the curve between X = 0 to X = X\n",
+ "# Corresponding to Data(:,1):\n",
+ "Area = numpy.array([-29.8 ,-63.0, -97.9 ,-134.0, -170.5, -207.5]);\n",
+ "for i in range(0,6):\n",
+ " Val[i,3] = Area[i];\n",
+ " Val[i,4] = Area[i]+(lambdar*Val[i,0]);\n",
+ "print \" (1) = X(kg acetone/kg carbon) \\n (2)= Slope of isostere \\n (3)= Differential heat of adsorption(kJ/kg acetone) \\n (4)=deltaH_prime(vapour(kJ/kg carbon)) \\n (5)=deltaH(liquid(kJ/kg carbon)\"\n",
+ "print\"(1) \\t \\t \\t \\t (2) \\t \\t \\t \\t (3) \\t \\t \\t \\t \\t \\t \\t \\t (4) \\t \\t \\t \\t \\t \\t (5) \" \n",
+ "for i in range(0,6):\n",
+ " print Val[i,0],\" \\t \\t \\t \",Val[i,1],\" \\t \\t \",Val[i,2],\" \\t \\t \\t \\t \\t \",Val[i,3],\" \\t \\t \\t \\t\",Val[i,4]\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.1 - Page: 575\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7df0da0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (1) = X(kg acetone/kg carbon) \n",
+ " (2)= Slope of isostere \n",
+ " (3)= Differential heat of adsorption(kJ/kg acetone) \n",
+ " (4)=deltaH_prime(vapour(kJ/kg carbon)) \n",
+ " (5)=deltaH(liquid(kJ/kg carbon)\n",
+ "(1) \t \t \t \t (2) \t \t \t \t (3) \t \t \t \t \t \t \t \t (4) \t \t \t \t \t \t (5) \n",
+ "0.05 \t \t \t 1.17 \t \t -644.67 \t \t \t \t \t -29.8 \t \t \t \t-2.25\n",
+ "0.1 \t \t \t 1.245 \t \t -685.995 \t \t \t \t \t -63.0 \t \t \t \t-7.9\n",
+ "0.15 \t \t \t 1.3 \t \t -716.3 \t \t \t \t \t -97.9 \t \t \t \t-15.25\n",
+ "0.2 \t \t \t 1.31 \t \t -721.81 \t \t \t \t \t -134.0 \t \t \t \t-23.8\n",
+ "0.25 \t \t \t 1.34 \t \t -738.34 \t \t \t \t \t -170.5 \t \t \t \t-32.75\n",
+ "0.3 \t \t \t 1.327 \t \t -731.177 \t \t \t \t \t -207.5 \t \t \t \t-42.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2: Page 596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.2\n",
+ "# Page: 596\n",
+ "\n",
+ "print'Illustration 11.2 - Page: 596\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "#*****Data*****#\n",
+ "# x:kg carbon/kg soln\n",
+ "# y_star: Equilibrium colour, units/kg soln.\n",
+ "# X:adsorbate concentration, units/kg carbon\n",
+ "# Data = [x Y_star]\n",
+ "Data =numpy.array([[0, 9.6],[0.001, 8.6],[0.004 ,6.3],[0.008, 4.3],[0.02 ,1.7],[0.04, 0.7]]);\n",
+ "Yo = 9.6;# [units of colour/kg soln]\n",
+ "Y1 = 0.1*Yo;# [units of colour/kg soln]\n",
+ "Ls = 1000.0;# [kg soln]\n",
+ "#****************#\n",
+ "\n",
+ "\n",
+ "n = 1.66;# [slope of line]\n",
+ "# At X = 663, Y_star = 4.3\n",
+ "# From eqn. 11.5\n",
+ "X = 663;\n",
+ "Y_star = 4.3;\n",
+ "m = Y_star/X**n;\n",
+ "# Freundlich Equation:\n",
+ "def f76(X):\n",
+ " return m*X**n\n",
+ "X = numpy.arange(0,1000,1);\n",
+ "\n",
+ "plt.plot(X,f76(X));\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "title(\"Equilibium Data(on arithmetic scale)\");\n",
+ "plt.show()\n",
+ "# Single Stage Operation:\n",
+ "# Since fresh carbn is used:\n",
+ "Xo = 0;# [units/kg carbon]\n",
+ "# From scf(30):\n",
+ "X1 = 270;# [units/kg carbon]\n",
+ "Data2 =numpy.array([[Xo, Yo],[X1, Y1]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data2[:,0],Data2[:,1],label=\"Operating line curve\")\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Single stage operation\");\n",
+ "plt.show()\n",
+ "# From Eqn. 11.4:\n",
+ "Ss = Ls*((Yo-Y1)/(X1-Xo));# [kg carbon/kg soln]\n",
+ "print\"Quantity of fresh carbon recquired for single stage operation: \",Ss,\" kg carbon/1000 kg solution\\n\"\n",
+ "\n",
+ "# Two stage cross current operation:\n",
+ "# For the minimumamount of carbon:\n",
+ "X1 = 565;# [units/kg carbon]\n",
+ "Y1 = 3.30;# [units of colour/kg soln]\n",
+ "X2 = 270;# [units/kg carbon]\n",
+ "Y2 = 0.96;# [units of colour/kg soln]\n",
+ "Data3 = numpy.array([[Xo ,Yo],[X1 ,Y1]]);\n",
+ "Data4 = numpy.array([[0 ,Y1],[X2 ,Y2]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data3[:,0],Data3[:,1],label=\"First of two Cocurrent\")\n",
+ "plt.plot(Data4[:,0],Data4[:,1],label=\"Second of two Cocurrent\")\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Two stage Cross current operation\");\n",
+ "plt.show()\n",
+ "# From Eqn. 11.8:\n",
+ "Ss1 = Ls*(Yo-Y1)/(X1-Xo);# [kg]\n",
+ "Ss2 = Ls*(Y1-Y2)/(X2-Xo);# [kg]\n",
+ "Ss = Ss1+Ss2;# [kg]\n",
+ "print\"Quantity of fresh carbon recquired for two stage crosscurrent operation: \",Ss,\" kg carbon/1000 kg solution\\n\"\n",
+ "\n",
+ "# Two Stage counter current operation:\n",
+ "Yo = 9.6;\n",
+ "Y2 = 0.96;\n",
+ "# By trial and error:\n",
+ "XNpPlus1 = 0;\n",
+ "X1 = 675;\n",
+ "Data5 = numpy.array([[X1 ,Yo],[XNpPlus1 ,Y2]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data5[:,0],Data5[:,1],label=\"Two stage Counter Current\");\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Two stage Counter Current operation\");\n",
+ "# By eqn 11.14:\n",
+ "Ss = Ls*(Yo-Y2)/(X1-XNpPlus1);\n",
+ "print\"Quantity of fresh carbon recquired for two stage Counter Current operation: \",Ss,\" kg carbon/1000 kg solution\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.2 - Page: 596\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa1a8c88>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n+OKLOfHEEzn11FPp2bPnX/YvqJO8oOPXr1+f2bNnM27cOGrUqMFJJ53EqlWrALj++uspW7YstWvX\nZsiQIfzjH/8Iq/P9kksu4eOPP+aSSy7J3laqVCneffddVqxYQWpqKjVr1uTKK69kz549+b7vksDa\n1YOsLiIvYQbRe2bZM1zV+qoSMVjZ+vXrSU1NJSMjg1KlEiI3mwLYIHomXpT4QfRyG9RykN8hGBM3\nrF09yOoi8hImMZQvXd7vECIq0e5ANsYkj4RpSvK22ym7iTv2uTTxIumakowxxsSGJQZjEpC1qwdZ\nXUSeJQZjjDE5WB+DMcVkn0sTL6yPwRhjTFRYYkgin376Kccee2xUjh06x8KLL77I2WefHZVyjGPt\n6kFWF5FniSGCpkyZQosWLTj88MM58sgj+b//+z92797tWzylSpVi3bp12eudOnVizZo1USkrdLiM\nAQMGMGfOnKiUY4yJPksMETJu3DhGjRrFuHHj2LNnD19++SXp6el069aNgwcjP9FQZmZmWPtZ2/df\nZWRk+B1Csdn4QEFWF87ixZE7liWGCNizZw933nknjz32GN27dyclJYWGDRvy2muvsX79el544QXA\nTaX597//nX79+lG5cmVOOeWU7IHloOApKgOvHThwIFWqVGHq1KksWbKEdu3aUa1aNerWrcu1116b\nnYQC8xG0bNmSSpUqMWPGDNLS0nLMc9CoUSPGjRtHy5YtqVq1Kv369eOPP/7Ifv7BBx+kbt261KtX\nj+eee+4vZyD5yWuqzqeffpqmTZtSrVo1/vWvf+XYf9KkSRx33HFUr16dc8455y/Dkoey6UKN+aux\nY6FfvwgeUFXjbnFh/VV+2/32/vvva+nSpTUzM/Mvz1166aXav39/VVUdPXq0lilTRt944w3NyMjQ\nhx56SBs3bqwZGRmamZmpJ598st5zzz168OBBXbdunaampuqcOXNyvHbWrFmqqrp//35dtmyZLlq0\nSDMzM3X9+vXavHlznTBhQnbZIqI//PBD9vonn3yi9erVy15v1KiRnnbaabplyxbdsWOHNm/eXJ96\n6qns91SnTh399ttvdd++fTpgwAAtVapUjuOF6tKliz7//POqqjp58mTt2LFjjjh69uypu3fv1g0b\nNmjNmjX1gw8+UFXVt956S48++mhds2aNZmZm6r333qvt27fPs4z169drpUqV9JVXXtGMjAzdvn27\nrlix4i/l5xdD9+7ddefOnXrgwAFdsGCB1q9fP/v5HTt26GGHHaZbtmwp9N8iNz8+l5988knMy4xX\nyVwXWVmqN9+setxxqps3Z38Wi/0dHPczuBWF3BWZ8Yd0dNGaX7Zt28YRRxyR50ipderU4auvvspe\nb926NRdeeCEAI0aMYNy4cXzxxReUKVMme4pKIMcUld27dwegffv29OrVC3Czp5188snZx23YsCFX\nXnkl8+fPZ9iwYWHHft1111GnTh3ADRu+YsUKwE1Hetlll9G8eXMA7rrrLl566aWwj5vbqFGjqFy5\nMpUrV+aMM85g5cqVnH322Tz11FPccsstNGvWDHBTet5///1s3LjxL7PPhU4XClC9enWqV68edgyB\n6UKBHNOFdurUKcd0oYsWLSr038IYv2VmwtVXw8qVsGAB1KgRuWOXqMRQ1C/0SDniiCPYtm0bWVlZ\nf0kOW7ZsoWbNmtnr9erVy34sItSrV4+ffvoJESl0isrQ1wJ89913jBgxgmXLlrFv3z4yMjJo3bp1\nkWIPJAWAww47LHta0C1bttCmTZt8yy6q0HIqVKiQPSVoeno6w4YN44Ybbsix/+bNm/+SGGy60CBr\nVw9Kxrr4808YOBC2bYO5c6FSpcge3/oYIqBdu3aUK1eON954I8f2vXv38sEHH3DmmWdmb9u4cWP2\n46ysLDZt2sRRRx1F/fr1C5yiMq9Jcq6++mqOO+441q5dy+7du7nvvvvIysqKyHs68sgjc8Qa+jiS\nGjRowDPPPJPjff/++++0bdv2L/vadKHGwL590Lu3Sw7vvRf5pACWGCKiSpUqjB49mmuvvZY5c+Zw\n8OBB1q9fT9++falfvz4DBw7M3nfZsmW8+eabZGRkMGHCBMqXL0/btm059dRTC5yiUvO4umjv3r1U\nqlSJChUqsGbNGp588skcz9euXTvfL9L8BMrp27cvkydPZs2aNezbt4977rmnqNVSYBmBcv75z39y\n//338+233wKwe/duZsyYkefrbLrQILt2PyiZ6mLXLujeHWrVghkzoHyUZiOwxBAhN910E/fffz83\n3ngjVapUoW3btjRs2JB58+ZRpkwZwP1i7d27N6+++irVq1fnxRdfZObMmaSkpJCSklLgFJV5nTE8\n9NBDvPTSS1SuXJkrr7ySfv365djnzjvv5NJLL6VatWq8/vrreR4jVOjz55xzDtdddx1nnHEGTZs2\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7d412e8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantity of fresh carbon recquired for single stage operation: 32.0 kg carbon/1000 kg solution\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nEwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x997fbe0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantity of fresh carbon recquired for two stage crosscurrent operation: 19.8171091445 kg carbon/1000 kg solution\n",
+ "\n",
+ "Quantity of fresh carbon recquired for two stage Counter Current operation: 12.8 kg carbon/1000 kg solution\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7928278>"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.3: Page 602"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.3\n",
+ "# Page: 602\n",
+ "\n",
+ "print'Illustration 11.3 - Page: 602\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#***Data***#\n",
+ "T = 1.0; #[m]\n",
+ "di = 0.203;# [m]\n",
+ "n = 1;# [for one impeller]\n",
+ "Density_S = 2300.0;# [kg/cubic m]\n",
+ "Density_p = 2300.0;# [kg/cubic m]\n",
+ "C = 0.150;# [m]\n",
+ "S = 50.0;# [kg]\n",
+ "g = 9.807;# [m/s]\n",
+ "dp = 8*10**(-4);# [m]\n",
+ "N = 8.33; #[r/s]\n",
+ "Temp=25;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# Assume:\n",
+ "Po = 5;\n",
+ "viscosity_L = 8.94*10**(-4);# [kg/m.s]\n",
+ "Density_L = 998.0;# [kg/cubic m]\n",
+ "delta_Density = Density_S-Density_L;# [kg/cubic m]\n",
+ "# By Eqn. 11.23:\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_L);# [m/s]\n",
+ "# By defn. of power number:\n",
+ "# P = Po*Density_m*di**5*Ni**3\n",
+ "# vm = math.pi*T**2*(Z+C)/4\n",
+ "# Solid Volume = S/Density_p;\n",
+ "# If these are substituted in Eqn. 11.22\n",
+ "def f(Z):\n",
+ " return (((Z+C)**(1.3/3))*math.exp(4.35*Z/(T-0.1)))-((1.0839*Po*di**(11.0/2)*N**3*Density_p**(2.0/3))/(g*Vts*T**(7.0/6)*S**(2.0/3)))\n",
+ "Z = fsolve(f,7);# [m]\n",
+ "phi_Sm = 4*S/(math.pi*T**2*(Z+C)*Density_p);\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_L);# [kg/cubic m]\n",
+ "phi_Ss = 0.6;\n",
+ "viscosity_m = viscosity_L/(1-(phi_Sm/phi_Ss))**1.8;# [kg/m.s]\n",
+ "Re = di**2*N*Density_m/viscosity_m;\n",
+ "P = Po*Density_m*N**3*di**5;# [W]\n",
+ "print \"Agitator Power required: \",round(P),\" W\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.3 - Page: 602\n",
+ "\n",
+ "\n",
+ "Agitator Power required: 1113.0 W\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.4: Page 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.4\n",
+ "# Page: 604\n",
+ "\n",
+ "print'Illustration 11.4 - Page: 604\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "#****Data*****#\n",
+ "# b: kerosene c:water\n",
+ "# c:kg water/cubic m liquid\n",
+ "Density_l = 783;# [kg/cubic m]\n",
+ "viscosity_l = 1.7*10**(-3);# [kg/m.s]\n",
+ "Mb = 200;# [kg/kmol]\n",
+ "Density_p = 881;# [kg/cubic m]\n",
+ "m = 0.522;# [(kg water/cubic m kerosene)/(kg water/kg gel)]\n",
+ "Xo = 0;# [kg H2O/kg gel]\n",
+ "#**************#\n",
+ "\n",
+ "# Solution (a)\n",
+ "co = Density_l*4*10**(-5);# [kg water/cubic m]\n",
+ "c1 = Density_l*5*10**(-6);# [kg water/cubic m]\n",
+ "# For Ss minimum:\n",
+ "X1 = c1/m;# [kg H2O/kg gel]\n",
+ "# By Water Balance:\n",
+ "SsminByVl = (co-c1)/(X1-Xo);# [kg gel/cubic m kerosene]\n",
+ "print\"Minimum Solid/Liquid ratio used:\",SsminByVl,\" kg gel/cubic m kerosene\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "# Basis: 1 batch,1.7 cubic m kerosene\n",
+ "Vl = 1.7;# [cubic m]\n",
+ "Ss = 16*1.7;# [kg gel]\n",
+ "V = Ss/Density_p;# [Xol. solid, cubic m]\n",
+ "Vt = 1.7+V;# [Total batch volume, cubic m]\n",
+ "# Take Z = T\n",
+ "T = (Vt*4/math.pi)**(1.0/3);# [m]\n",
+ "# To allow for the adequate free board:\n",
+ "h = 1.75;# [Vessel height,m]\n",
+ "# Use a six-blade disk impeller.\n",
+ "# From Fig. 11.26:\n",
+ "# dp corresponding to 14 mesh:\n",
+ "dp = 1.4/1000;# [m]\n",
+ "TBydi1 = 2.0;\n",
+ "Value1 = (Density_p-Density_l)/Density_l;\n",
+ "# From Fig. 11.26:\n",
+ "TBydi2 = 4.4;\n",
+ "TBydiAv = (TBydi1+TBydi2)/2.0;\n",
+ "di = T/TBydiAv;# [m]\n",
+ "fr = 0.6;# [settled volume fraction of solids]\n",
+ "Vs = V/fr;# [cubic m]\n",
+ "depth = Vs/((math.pi*(T**2))/4);# [m]\n",
+ "# The depth of settled solid is negligible.\n",
+ "# Locate the turbine 150mm from the bottom of the tank.\n",
+ "C = 0.150;# [m]\n",
+ "\n",
+ "# Power:\n",
+ "# Use the sufficient agitator power to lift the solids to 0.6 m above the bottom of the vessel.\n",
+ "Z_prime = 0.6-C;# [m]\n",
+ "# The properties of the slurry in 0.6 m above the bottom of the vessel.\n",
+ "Vm = 0.6*math.pi*T**2.0/4;# [square m]\n",
+ "phi_Sm = V/Vm;# [vol fraction solid]\n",
+ "# From Eqn. 11.24:\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_l);# [kg/cubic m]\n",
+ "# From Eqn. 11.25:\n",
+ "phi_Ss = 0.8;\n",
+ "viscosity_m = viscosity_l/(1-(phi_Sm/phi_Ss))**1.8;# [kg/m.s]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "# From Eqn. 11.23:\n",
+ "delta_Density = Density_p-Density_l;# [kg/cubic m]\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_l);# [m/s]\n",
+ "# From Eqn. 11.22:\n",
+ "n = 1.0;\n",
+ "P = (g*n*Density_m*Vm*Vts)*(phi_Sm**(2.0/3))*(TBydiAv**(1.0/2))*math.exp((4.35*Z_prime/T)-0.1);# [W]\n",
+ "# Assume:\n",
+ "Po = 5.0;\n",
+ "N = (P/(Po*Density_m*di**5))**(1.0/3);# [r/s]\n",
+ "# Use:\n",
+ "N1 = 2.0;# [r/s]\n",
+ "Re = di**2.0*N1*Density_m/viscosity_m;\n",
+ "# From fig. 6.5: Po = 5\n",
+ "# Hence our assumption was right.\n",
+ "print\"Power delivered to the slurry: \",round((P*(N1/N)**3),2),\" W\\n\",\n",
+ "print\"Power to the motor will be larger, depending on the efficiency of the motor and speed reducer.\\n\"\n",
+ "\n",
+ "# Mass transfer: \n",
+ "# From Eqn. 11.28:\n",
+ "Rep = (dp**(4.0/3))*(P/Vl)**(1.0/3)*(Density_l**(2.0/3)/viscosity_l);\n",
+ "# From Eqn. 2.44:\n",
+ "Temp = 298;# [K]\n",
+ "phi = 1.0;\n",
+ "Va = 0.0756;# [Chapter 2 notation]\n",
+ "Dl = ((117.3*10**(-18))*((phi*Mb)**0.5)*Temp)/(viscosity_l*(Va**(0.6)));\n",
+ "ScL = viscosity_l/(Density_l*Dl);\n",
+ "if dp<(2.0/1000):\n",
+ " # From Eqn. 11.29:\n",
+ " ShL = 2+(0.47*Rep**0.62*(1/TBydiAv**0.17)*ScL**0.36);\n",
+ "else:\n",
+ " # From Eqn. 11.30:\n",
+ " ShL = 0.222*Rep**(3.0/4)*ScL**(1.0/3);\n",
+ "\n",
+ "kL = ShL*Dl/dp;# [m/s]\n",
+ "apS = (math.pi*dp**2)/(math.pi*dp**3*Density_p/6.0);\n",
+ "apL = apS*16;# [square m/cubic m liquid]\n",
+ "Ratio = Ss/(Vl*m);\n",
+ "# From Eqn. 11.40:\n",
+ "thetha = math.log((co/c1)/(1+(1/Ratio)-(1/Ratio)*(co/c1)))/((1+(1/Ratio))*kL*apL);\n",
+ "print\"Contacting Time required: \",round(thetha/60,2),\" min\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.4 - Page: 604\n",
+ "\n",
+ "\n",
+ "Minimum Solid/Liquid ratio used: 3.654 kg gel/cubic m kerosene\n",
+ "\n",
+ "\n",
+ "Power delivered to the slurry: 350.05 W\n",
+ "Power to the motor will be larger, depending on the efficiency of the motor and speed reducer.\n",
+ "\n",
+ "Contacting Time required: 8.3 min\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5: Page 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.5\n",
+ "# Page: 606\n",
+ "\n",
+ "print'Illustration 11.5 - Page: 606\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "import numpy.linalg as lin\n",
+ "#*****Data******#\n",
+ "Vl = 1.1*10**(-4);# [cubic m/s]\n",
+ "Ss = 0.0012;# [kg/s]\n",
+ "Density_p = 1120;# [kg/cubic m]\n",
+ "dp = 8*10**(-4);# [m]\n",
+ "Ds = 2*10**(-11);# [square m/s]\n",
+ "Dl = 7.3*10**(-10);# [square m/s]\n",
+ "m = 0.2;# [(kg Cu2+/cubic m soln)/(kg Cu2+/kg resin)]\n",
+ "T = 1;# [m]\n",
+ "#********************#\n",
+ "\n",
+ "Z = T;# [m]\n",
+ "# The particles will be lifted to the top of the vessel.\n",
+ "Z_prime = 0.5;# [m]\n",
+ "viscosity_l = 8.94*10**(-4);# [kg/m.s]\n",
+ "Density_l = 998;# [kg/cubic m]\n",
+ "delta_Density = Density_p-Density_l;# [kg/cubic m]\n",
+ "g = 9.80;# [m/square s]\n",
+ "# From Eqn. 11.23:\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_l);\n",
+ "Vm = math.pi*T**2*Z/4.0;# [cubic m]\n",
+ "Vs = Ss/Density_p;# [cubic m/s]\n",
+ "phi_Sm = Vs/(Vs+Vl);# [vol fraction]\n",
+ "# From eqn. 11.24:\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_l);# [kg/cubic m]\n",
+ "# From Eqn. 11.22:\n",
+ "n = 1.0;\n",
+ "di = 0.3;# [m]\n",
+ "P = (g*n*Density_m*Vm*Vts)*(phi_Sm**(2.0/3))*((T/di)**(1.0/2))*math.exp((4.35*Z_prime/T)-0.1);# [W]\n",
+ "# To estimate the impeller speed:\n",
+ "# Assume:\n",
+ "Po = 5;\n",
+ "N = (P/(Po*Density_m*di**5))**(1.0/3);# [r/s]\n",
+ "Re = di**2*N*Density_m/viscosity_l;\n",
+ "# From fig. 6.5: Assumption of Po was correct.\n",
+ "print\"Speed of the impeller:\",round(N,2),\" r/s\\n\"\n",
+ "vT = (math.pi/4.0)*T**2*Z;# [cubic m]\n",
+ "vL = vT*(1-phi_Sm);\n",
+ "# From Eqn. 11.28:\n",
+ "Rep = (dp**(4.0/3))*(P/vL)**(1.0/3)*(Density_l**(2.0/3)/viscosity_l);\n",
+ "ScL = viscosity_l/(Density_l*Dl);\n",
+ "if dp<(2.0/1000):\n",
+ " # From Eqn. 11.29:\n",
+ " ShL = 2+(0.47*Rep**0.62*((di/T)**0.17)*ScL**0.36);\n",
+ "else:\n",
+ " # From Eqn. 11.30:\n",
+ " ShL = 0.222*Rep**(3.0/4)*ScL**(1.0/3);\n",
+ "\n",
+ "ShL = 130.3;# Value wrong in book\n",
+ "kL = ShL*Dl/dp;# [m/s]\n",
+ "# Since the dispersion is uniform throughout the vessel, the residence time for both liquid and solid is same.\n",
+ "thetha = vL*(1-phi_Sm)/Vl;# [s]\n",
+ "# From Fig. 11.27:\n",
+ "abcissa = m*kL*dp/(2*Ds*Density_p);\n",
+ "Parameter = 2*m*kL*thetha/(dp*Density_p);\n",
+ "co = 100*Density_l/10.0**6;# [kg/cubic m]\n",
+ "EMS = 0.63;\n",
+ "Xo = 0;\n",
+ "# From Eqn. 11.44:\n",
+ "# (1): X1-(EMS/m)*c1 = 0\n",
+ "# Solute balance:\n",
+ "# (2): (Ss*X1)+(vL*c1) = (vL*co)+(Xo*Ss)\n",
+ "a = [[1 ,-(EMS/m)],[Ss ,Vl]];\n",
+ "b = [0,(Vl*co)+(Xo*Ss)];\n",
+ "soln =lin.solve(a,b);\n",
+ "X1 = soln[0];\n",
+ "c1 = soln[1];\n",
+ "print\"Effluent Cu2+ conc. \",round(c1*10**(6)/Density_l,2),\" ppm\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.5 - Page: 606\n",
+ "\n",
+ "\n",
+ "Speed of the impeller: 2.71 r/s\n",
+ "\n",
+ "Effluent Cu2+ conc. 2.83 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.6: Page 616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.6\n",
+ "# Page: 616\n",
+ "\n",
+ "print'Illustration 11.6 - Page: 616\\n\\n'\n",
+ "from scipy.optimize import fsolve\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data*****#\n",
+ "# a: air b:silica\n",
+ "Density_a = 1.181;# [kg/cubic m]\n",
+ "Density_b = 671.2;# [kg/cubic m]\n",
+ "kSap = 0.965;# [kg H2O/square m s]\n",
+ "Y1 = 0.005;# [kg H2O/kg dry air]\n",
+ "Y2 = 0.0001;# [kg H2O/kg dry air]\n",
+ "Ss = 0.680;# [square m/s]\n",
+ "Gs = 1.36;# [kg/square m.s]\n",
+ "X2 = 0;# [kg H2O/kg dry air]\n",
+ "# Equilibrium function:\n",
+ "m = 0.0185;\n",
+ "#************#\n",
+ "X1 = (Gs*(Y1-Y2)/Ss)+X2;# [kg H2O/kg dry air]\n",
+ "def f77(X):\n",
+ " return m*X \n",
+ "Y2_star = f77(X2);# [kg H2O/kg dry gel]\n",
+ "Y1_star = f77(X1);# [kg H2O/kg dry gel]\n",
+ "deltaY = ((Y1-Y1_star)-(Y2-Y2_star))/math.log((Y1-Y1_star)/(Y2-Y2_star));\n",
+ "NtoG = (Y1-Y2)/deltaY;\n",
+ "# If the fixed bed data are to be used for estimating the mass transfer coeffecient for a moving bed of solids\n",
+ "va = Ss/Density_b;# [m/s]\n",
+ "vb = Gs/Density_a;# [m/s]\n",
+ "rel_v = va+vb;# [relative velocity,m/s]\n",
+ "G_prime = rel_v*Density_a;# [relative mass velocity of air,kg/square m s]\n",
+ "HtG = Gs/(31.6*G_prime**0.55);# [m]\n",
+ "HtS = Ss/kSap;# [m]\n",
+ "# By Eqn. 11.52:\n",
+ "HtoG = HtG+(m*Gs/Ss)*HtS;# [m]\n",
+ "Z = NtoG*HtoG;# [m]\n",
+ "print\"Height of continuous countercurrent isothermal absorber for drying: \",round(Z,4),\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.6 - Page: 616\n",
+ "\n",
+ "\n",
+ "Height of continuous countercurrent isothermal absorber for drying: 0.2511 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.7: Page 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.7\n",
+ "# Page: 619\n",
+ "\n",
+ "print'Illustration 11.7 - Page: 619\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import numpy.linalg as lin\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "#*****Data*****#\n",
+ "# a: C2H4 b:C3H8\n",
+ "# The equlibrium curve is plotted in Fig.11.33 (Pg 620)\n",
+ "# C3H8 is more strongly adsorbed component and composition in the gas and adsorbate are expressed as weight fraction C3H8.\n",
+ "Ma = 28;# [kg/kmol]\n",
+ "Mb = 44.1;# [kg/kmol]\n",
+ "xaF = 0.6;# [mole fraction]\n",
+ "xbF = 0.4;# [mole fraction]\n",
+ "xa1 = 0.05;# [mole fraction]\n",
+ "xa2 = 0.95;# [mole fraction]\n",
+ "#***************#\n",
+ "\n",
+ "xF = xbF*Mb/((xbF*Mb)+(xaF*Ma));# [wt. fraction C3H8]\n",
+ "xb1 = 1-xa1;# [mole fraction]\n",
+ "x1 = xb1*Mb/((xb1*Mb)+xa1*Ma);# [wt. fraction C3H8]\n",
+ "xb2 = 1-xa2;# [mole fraction]\n",
+ "x2 = xb2*Mb/((xb2*Mb)+(xa2*Ma));# [wt. fraction C3H8]\n",
+ "# Basis: 100 kg feed gas\n",
+ "F = 100.0;# [kg]\n",
+ "# (1): R2+PE = F [From Eqn. 11.63]\n",
+ "# (2): (R2*x2)+(PE*x1) = (F*xF) [From Eqn. 11.64]\n",
+ "# Solving simultaneously:\n",
+ "a = [[1, 1],[x2 ,x1]];\n",
+ "b = [F,(F*xF)];\n",
+ "soln = lin.solve(a,b);\n",
+ "R2 = soln[0];# [kg]\n",
+ "PE = soln[1];# [kg]\n",
+ "# Point F at xF and point E1 at x1 are located on the diagram.\n",
+ "# From the diagram:\n",
+ "N1 = 4.57;# [kg carbon/kg adsorbate]\n",
+ "# The minimum reflux ratio is found as it is for the extraction.\n",
+ "delta_Em = 5.80;\n",
+ "Ratio = (delta_Em/N1)-1;# [kg reflux gas/kg product]\n",
+ "R1_m = Ratio*PE;# [kg]\n",
+ "E1_m = R1_m+PE;# [kg]\n",
+ "B_m = N1*E1_m;# [kg carbon/100 kg feed]\n",
+ "Ratio1 = 2*Ratio;\n",
+ "# From Eqn. 11.58:\n",
+ "N_deltaE = (Ratio1+1.0)*N1;# [kg carbon/kg adsorbate]\n",
+ "# Point deltaE is located on the diagram:\n",
+ "R1 = Ratio1*PE;# [kg]\n",
+ "E1 = R1+PE;# [kg]\n",
+ "B = N1*E1;# [kg]\n",
+ "N_deltaR = -(B/R2);# [kg carbon/kg adsorbate]\n",
+ "# Random lines such as the delta_RK are drawn from detaR, and the intersection of equilibrium curves are projected downward in the manner shown to provide the adsorption section operating curve.\n",
+ "# Similarly random lines such as delta_EJ are drawn from deltaE, and the intersections are projected downwards to provide the enriching section operating curve.\n",
+ "# Data = [x x_star]\n",
+ "Data = numpy.array([[0.967 ,0.825],[0.90, 0.710],[0.80 ,0.60],[0.70, 0.50],[0.60 ,0.43],[0.512 ,0.39],[0.40 ,0.193],[0.30, 0.090],[0.20, 0.041],[0.0763, 0.003]]);\n",
+ "Val = zeros(10);\n",
+ "for i in range(0,10):\n",
+ " Val[i] = 1/((Data[i,0])-Data[i,1]);\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x\");\n",
+ "plt.ylabel(\"1 / (x-x*)\");\n",
+ "plt.title(\"Graphical Integraion\");\n",
+ "# The area under the curve between x1 & xF, for the enriching section:\n",
+ "Area1 = 2.65;\n",
+ "# The area under the curve between xF & x2, for the adsorption section:\n",
+ "Area2 = 2.67;\n",
+ "r = Ma/Mb;\n",
+ "# From Eqn.11.66:\n",
+ "# For the enriching section:\n",
+ "NtoG1 = Area1-math.log((1+(r-1)*x1)/(1+(r-1)*xF));\n",
+ "# For the adsortion section:\n",
+ "NtoG2 = Area2-math.log((1+(r-1)*x1)/(1+(r-1)*xF));\n",
+ "NtoG = NtoG1+NtoG2;\n",
+ "print\"Number of transfer units: \",NtoG"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.7 - Page: 619\n",
+ "\n",
+ "\n",
+ "Number of transfer units: 5.77763695068\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9e2fda0>"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.8: Page 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.8\n",
+ "# Page: 627\n",
+ "\n",
+ "print'Illustration 11.8 - Page: 627\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#******Data******#\n",
+ "rate = 0.1;# [kg/s]\n",
+ "conc = 3.0;# [kg vapour/100cubic m]\n",
+ "Density_p = 720.0;# [kg/cubic m]\n",
+ "Density_bed = 480.0;# [kg/cubic m]\n",
+ "capablity = 0.45;# [kg vapour/kg carbon]\n",
+ "dp = 0.0028;# [m]\n",
+ "time = 3.0;# [h]\n",
+ "#********************#\n",
+ "\n",
+ "Vap_adsorbed = time*3600.0*rate;# [kg]\n",
+ "C_required = Vap_adsorbed*1.0/capablity;\n",
+ "# Two beds will be needed: one adsorbing and another regenerated.\n",
+ "totC_required = 2*C_required;# [kg]\n",
+ "print\"Amount of carbon required: \",totC_required,\" kg\\n\",\n",
+ "Vol = (C_required/Density_bed);\n",
+ "# Assume:\n",
+ "Z = 0.5;# [m]\n",
+ "Area = Vol/Z;# [square m]\n",
+ "# From Eqn. 6.66:\n",
+ "T = 35.0;# [OC]\n",
+ "viscosity_air = 1.82*10**(-5);# [kg/m.s]\n",
+ "Density_air = (29/22.41)*(273.0/(T+273));\n",
+ "e = 1-(Density_bed/Density_p);\n",
+ "G = rate*(100.0/conc)*(Density_air/(Area));# [kg/square m.s]\n",
+ "Re = dp*G/viscosity_air;\n",
+ "Z = 0.5;# [m]\n",
+ "def f78(delta_p):\n",
+ " return ((delta_p/Z)*(e**3*dp*Density_air)/((1-e)*G**2))-(150*(1-e)/Re)-1.75\n",
+ "delta_p = fsolve(f78,7);\n",
+ "print\"The pressure drop is:\",round(delta_p,2),\" N/square m\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.8 - Page: 627\n",
+ "\n",
+ "\n",
+ "Amount of caron required: 4800.0 kg\n",
+ "The pressure drop is: 1413.31 N/square m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.9: Page 636"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.9\n",
+ "# Page: 636\n",
+ "\n",
+ "print'Illustration 11.9 - Page: 636\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data******#\n",
+ "Yo = 0.00267;# [kg H2O/kg dry air]\n",
+ "Yb = 0.0001;# [kg H2O/kg dry air]\n",
+ "Ye = 0.024;# [kg H2O/kg dry air]\n",
+ "Z = 0.61;# [m]\n",
+ "G_prime = 0.1295;# [kg/square m.s]\n",
+ "#******************#\n",
+ "\n",
+ "# The equilicrium data is plotted in Fig. 11.45 (Pg 637)\n",
+ "# The gel is initially \"dry\" and the effluent air initially of so low a humidity asto be substantially dry, so that the operating line passes through the origin of the figure\n",
+ "# The operating line is then drawn to intersect the equilibrium curve.\n",
+ "# Data = [Y[kg H2O/kg dry air] Y_star[kg H2O/kg dry air]]\n",
+ "Data =numpy.array([[0.0001, 0.00003],[0.0002, 0.00007],[0.0004 ,0.00016],[0.0006, 0.00027],[0.0008, 0.00041],[0.0010, 0.00057],[0.0012 ,0.000765],[0.0014, 0.000995],[0.0016, 0.00123],[0.0018 ,0.00148],[0.0020 ,0.00175],[0.0022 ,0.00203],[0.0024 ,0.00230]])\n",
+ "Val1 = zeros(13);\n",
+ "# Val1 = [1/(Y-Y_star)]\n",
+ "for i in range(0,13):\n",
+ " Val1[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "# Graphical Integration:\n",
+ "plt.plot(Data[:,0],Val1);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"Y(kg H20 / kg dry air)\");\n",
+ "plt.ylabel(\"1 / (Y-Y_star)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area under The curve between Y = Yb and Y = Y:\n",
+ "Area = [0 ,0.100 ,2.219 ,2.930 ,3.487 ,3.976 ,4.438 ,4.915, 5.432, 6.015, 6.728 ,7.716 ,9.304];\n",
+ "# The total number of transfer unit corresponding to adsorption zone:\n",
+ "NtoG = 9.304;\n",
+ "Val2 = zeros(13);\n",
+ "Val3 = zeros(13);\n",
+ "# Val2 = [(w-wb)/wo]\n",
+ "# Val3 = [Y/Yo]\n",
+ "for i in range(0,13):\n",
+ " Val2[i] = Area[i]/NtoG;\n",
+ " Val3[i] = Data[i,0]/Yo;\n",
+ "\n",
+ "# Eqn. 11.74 can be arranged as follows:\n",
+ "# f = integrate((1-(Y/Yo)),(w-wb)/wa,0,1)\n",
+ "\n",
+ "plt.plot(Val2,Val3);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"(w-wb) / wo\");\n",
+ "plt.ylabel(\"Y / Yo\");\n",
+ "plt.title(\"Break through curve\");\n",
+ "plt.show()\n",
+ "# From area above the curve of scf(2):\n",
+ "f = 0.530;\n",
+ "\n",
+ "Gs = G_prime;# [kg/square m.s]\n",
+ "# From Illustration: 11.6\n",
+ "kYap = 31.6*G_prime**0.55;# [kg H2O/cubic m s delta_Y]\n",
+ "kSap = 0.965;# [kg H2O/cubic m s delta_X]\n",
+ "# From Fig. 11.48:\n",
+ "Xt = 0.0858;# [kg H2O/kg gel]\n",
+ "# From Eqn. 11.76:\n",
+ "Ss = Yo*Gs/Xt;# [kg/square m.s]\n",
+ "m = 0.0185;# [average slope of equilibrium curve]\n",
+ "# From Eqn. 11.51 & Eqn. 11.52:\n",
+ "HtG = Gs/kYap;# [m]\n",
+ "HtS = Ss/kSap;# [m]\n",
+ "HtoG = HtG+(m*Gs/Ss)*HtS;# [m]\n",
+ "# From Eqn. 11.79:\n",
+ "Za = NtoG*HtoG;# [m]\n",
+ "# From Eqn. 11.74:\n",
+ "Degree = (Z-(f*Za))/Z;\n",
+ "Density_bed = 671.2;# [Illustration 11.6, kg/cubic m]\n",
+ "mass_gel = Z*Density_bed;# [kg/square m]\n",
+ "# At saturation point the gel contins:\n",
+ "Y1 = mass_gel*Degree*Xt;# [kg H2O/square m cross section]\n",
+ "# The air introduces:\n",
+ "Y2 = Gs*Yo;# [kg/square m s]\n",
+ "print\"Time to reach breakpoint is: \",round((Y1/(Y2*3600)),4),\" h\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.9 - Page: 636\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecK7j/DypUxCdPIYESAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9e39c88>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x99973c8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time to reach breakpoint is: 24.7778 h\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.10: Page 640"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.10\n",
+ "# Page: 640\n",
+ "\n",
+ "print'Illustration 11.10 - Page: 640\\n\\n'\n",
+ "\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data******#\n",
+ "# a:N2 b:H2O\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "Ma = 29;# [kg/kmol]\n",
+ "Z = 0.268;# [m]\n",
+ "Xo_solid = 0.01;# [kg H20/kg solid]\n",
+ "Density_bed = 712.8;# [kg/cubic m]\n",
+ "T = 28.3;# [OC]\n",
+ "P = 593;# [kN/square m]\n",
+ "Gs = 4052;# [kg/square m.h]\n",
+ "Xo_gas = 1440*10**(-6);# [mole fraction]\n",
+ "#********************#\n",
+ "\n",
+ "# Yo_star is in equilibrium with Xo:\n",
+ "Xo = 0;# [kg H20/kg solid]\n",
+ "Yo_star = 0;# [kg H20/kg N2]\n",
+ "thetha_t = 12.8;# [h]\n",
+ "thetha_b = 9;# [h]\n",
+ "# The breakthrough data are plotted in the manner of Fig. 11.47 (Pg 639) and thetha_s is dtermined:\n",
+ "thetha_s = 10.9;# [h]\n",
+ "Xt = 0.21;# [kg H20/kg solid]\n",
+ "# From Eqn. 11.81:\n",
+ "LUB = (Z/thetha_s)*(thetha_s-thetha_b);\n",
+ "# For thetha_b = 15 h\n",
+ "thetha_b = 15;# [h]\n",
+ "Yo = (Xo_gas/(1-Xo_gas))*(Mb/Ma);# [kg H20/kg N2]\n",
+ "# From Eq. 11.82:\n",
+ "Zs = Gs*(Yo-Yo_star)*thetha_b/(Density_bed*(Xt-Xo_solid));# [m]\n",
+ "# From Eqn. 11.85:\n",
+ "Z = LUB+Zs;\n",
+ "print\"Height of adsorbent column:\",round(Z,4),\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.10 - Page: 640\n",
+ "\n",
+ "\n",
+ "Height of adsorbent column: 0.0467 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.11: Page 654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.11\n",
+ "# Page: 645\n",
+ "\n",
+ "print'Illustration 11.11 - Page: 645\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "#****Data****#\n",
+ "# For collection of Cu2+:\n",
+ "V = 37850.0;# [l/h]\n",
+ "c1 = 20.0;# [meq Cu2+/l]\n",
+ "c2 = 0.01*c1;# [meq Cu2+/l]\n",
+ "Mass_rate = 2.0;# [meq Cu2+/g resin h (meq Cu2+/l)]\n",
+ "exchanged = V*(c1-c2);# [meq/h]\n",
+ "X2 = 0.30;# [meq Cu2+/g]\n",
+ "#************#/\n",
+ "\n",
+ "# The point(c2,X2) is plotted in Fig. 11.48(a), Pg 645:\n",
+ "# For the minimum resin/solution ratio and an infinitely tall tower, the operating line pass though point P.\n",
+ "X = 4.9;# [meq Cu2+/g]\n",
+ "MinRate = exchanged/(X-X2);# [g/h]\n",
+ "Rate = 1.2*MinRate;# [g/h]\n",
+ "# Copper balance:\n",
+ "X1 = (exchanged/Rate)+X2;# [meq Cu2+/g resin]\n",
+ "# The point (c1,x1) is ploted in Fig. 11.48(a) and operating line drawn can be straight line at this low conc.\n",
+ "# Adapting Eqn. 11.48 and rearranging:\n",
+ "# S*Z*Density_s = (V/Mass_rate)*integrate(1/(c-c_star),c,c1,c2)\n",
+ "# Mass_rate = KL_prime*ap/Density_s\n",
+ "# From the equilibrium curve:\n",
+ "# Data = [c c_star]\n",
+ "Data = numpy.array([[20 ,2.4],[16 ,1.9],[12, 0.5],[8 ,0.25],[4 ,0.10],[2 ,0.05],[1 ,0.02],[0.2, 0]]);\n",
+ "Val = zeros(8);\n",
+ "for i in range(0,8):\n",
+ " Val[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"c\");\n",
+ "plt.ylabel(\"1 / (c-c*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "# From Graphical Integration:\n",
+ "Area = 5.72;\n",
+ "# holdup = S*Z*Density_s\n",
+ "holdup = V*Area/(Mass_rate);\n",
+ "print\"Resin Holdup: \",holdup,\"g\\n\"\n",
+ "\n",
+ "# Regeneration of resin:\n",
+ "# For 70% utilisation of 2N acid, feed must contain:\n",
+ "V = exchanged;\n",
+ "F = V/(0.70*2000);# [l/h]\n",
+ "c1 = 0;# [meq Cu2+/l]\n",
+ "c2 = V*1.0/F;# [meq Cu2+/l]\n",
+ "X1 = 0.30;# [meq Cu2+/g resin]\n",
+ "X2 = 4.12;# [meq cu2+/g resin]\n",
+ "# The points (c1,X1) and (c2,X2) are plotted on Fig 11.48(b), Pg 645\n",
+ "c1_star = 120.0;# [meq Cu2+/l]\n",
+ "c2_star = 1700.0;# [meq Cu2+/l]\n",
+ "logmean = ((c1_star-c1)-(c2_star-c2))/math.log((c1_star-c1)/(c2_star-c2));\n",
+ "Mass_rate = 0.018;# [meq Cu2+/g resin h (meq Cu2+/l)]\n",
+ "# Substituting in equation:\n",
+ "def f79(holdup):\n",
+ " return (V*(c2-c1))-(Mass_rate*holdup*logmean)\n",
+ "holdup = fsolve(f79,7);\n",
+ "print\"Resin Holdup in the regeneration Tower is \",round(holdup,3),\" g\\n\"\n",
+ "#the answers are in textbook is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.11 - Page: 645\n",
+ "\n",
+ "\n",
+ "Resin Holdup: 108251.0 g\n",
+ "\n",
+ "Resin Holdup in the regeneration Tower is 296720391.501 g\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9e3b4a8>"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter11_1.ipynb b/Mass_-_Transfer_Operations/Chapter11_1.ipynb
new file mode 100755
index 00000000..429b975a
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter11_1.ipynb
@@ -0,0 +1,1235 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b2d866884e32978f30135a4e666314d83655be533eae1227e5f3d0fa8ae8f5d8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Absorption And Ion Exchange"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.1: Page 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.1\n",
+ "# Page: 575\n",
+ "\n",
+ "print'Illustration 11.1 - Page: 575\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#*****Data*****#\n",
+ "Temp = 30.0;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# From Fig. 11.5 (Pg 572)\n",
+ "# The isosteres for various concentrations are straight and their slopes are measured with the help of milimeter rule.\n",
+ "# Data = [X(kg acetone/kg carbon) lambda(slope of isostere)]\n",
+ "Data = numpy.array([[0.05 ,1.170],[0.10, 1.245],[0.15 ,1.3],[0.20 ,1.310],[0.25 ,1.340],[0.30 ,1.327]]);# [kg acetone/kg carbon]\n",
+ "lambdar = 551.0;# [reference at 30 OC,kJ/kg]\n",
+ "Val = numpy.zeros(shape=(6,5));\n",
+ "for i in range(0,6):\n",
+ " Val[i,0] = Data[i,0];# [kg acetone/kg carbon]\n",
+ " Val[i,1] = Data[i,1];# [slope of isostere]\n",
+ " Val[i,2] = -Data[i,1]*lambdar;# [kJ/kg acetone]\n",
+ "\n",
+ "\n",
+ "plt.plot(Val[:,0],Val[:,2])\n",
+ "plt.grid();\n",
+ "xlabel(\"X (kg carbon / kg acetone)\");\n",
+ "ylabel(\"Differential heat of adsorption (kJ / kg acetone)\");\n",
+ "title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area: The area under the curve between X = 0 to X = X\n",
+ "# Corresponding to Data(:,1):\n",
+ "Area = numpy.array([-29.8 ,-63.0, -97.9 ,-134.0, -170.5, -207.5]);\n",
+ "for i in range(0,6):\n",
+ " Val[i,3] = Area[i];\n",
+ " Val[i,4] = Area[i]+(lambdar*Val[i,0]);\n",
+ "print \" (1) = X(kg acetone/kg carbon) \\n (2)= Slope of isostere \\n (3)= Differential heat of adsorption(kJ/kg acetone) \\n (4)=deltaH_prime(vapour(kJ/kg carbon)) \\n (5)=deltaH(liquid(kJ/kg carbon)\"\n",
+ "print\"(1) \\t \\t \\t \\t (2) \\t \\t \\t \\t (3) \\t \\t \\t \\t \\t \\t \\t \\t (4) \\t \\t \\t \\t \\t \\t (5) \" \n",
+ "for i in range(0,6):\n",
+ " print Val[i,0],\" \\t \\t \\t \",Val[i,1],\" \\t \\t \",Val[i,2],\" \\t \\t \\t \\t \\t \",Val[i,3],\" \\t \\t \\t \\t\",Val[i,4]\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.1 - Page: 575\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEZCAYAAACw69OmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XnclXP+x/HXu1JRERNCCJG1VQsqd7LEECZmCpF9GWQZ\n+tm3sW9jH2PLFoOJEcnanSyJFIUxpOxMUZSt1Of3x/c6rtPdfe773PfZ7/N5Ph7ncZ9zneu6vp/7\n2+l87uv7vb7fr8wM55xzLlONCh2Ac865hsETinPOuazwhOKccy4rPKE455zLCk8ozjnnssITinPO\nuazwhOLKgqTzJd1bw/szJfXLZRmlTNIGkhZKUqFjccXLE4orCElDJL0maZGkryVNlnRsDousccCV\nmW1tZi/mqgxJFZI+TeckktpLWiapYP8/Jc2RtFPitZl9YmatzAeuuRp4QnF5J+lU4G/A5cDaZrY2\ncAywg6SmKY7J9LOaj7+ss11GTmKW1DiN3SxX5buGyxOKyytJqwEXAMea2Rgz+wHAzKab2UFmtjja\nb5SkWySNk7QIqJD0e0nTJH0n6RNJ5yWdN/FX/ZGSPpf0RZS4EgxoKuluSd9HTVzdk46fI2lA9Lyx\npDMlfRjt+4ak9aL3rovK/i7a3qee9VAp6UJJL0VlPC3pd9HbiSulBVEzU6/omMMkvSvpW0njJW2Q\ndL5dJb0vaYGkmyRNlHR49N5wSS9LukbSPOA8SRtLekHSPElzJd0X/dsQNdttAIyNyv9L1asmSetK\nelzSN5I+kHREUiznS3ooVV27hssTisu37YBmwL/T2HcocJGZtQReBhYBB5nZasDvgWMl7V3lmAqg\nA7ArMDKRJAh/bQ8CHgBWAx4Hbkw6zoibrE4BhgC7m9mqwKHAT9F7U4DOwOrAaODhVFdVaf5+w4G1\ngKbAX6LtfaOfq0XNTK9Fv+cZwL5AG2BS9LsgqQ3wMDASWAN4n1DPyc1TPYFZUVmXRPVxMbAOsAWw\nPnA+gJkNAz4B9ozKv6qa2B+M9lkH2A+4RFL/pPf3InVduwbKE4rLtzbAPDNbltgg6RVJ8yX9WOUv\n/sfM7FUAM/vFzCaa2TvR6xmEL7Udq5z/AjP7ycxmAncRvrQTJpnZ+Kgf4D5CYqjOEcBZZvZBoiwz\n+zZ6fr+ZzTezZWZ2DSE5dqxHPRhwl5l9aGY/Aw8BXRJVUs3+xwCXmtn7Ud1dCnSJrlL2AGaa2WNR\nXNcDX1U5/gszuyl6/2czm2Vmz5vZEjObB1zLinVZLUnrA9sDI81ssZm9BdwOHJy0W7p17RoQTygu\n374B2iT3iZjZ9ma2evReYrsBy3ViS+olaYKk/0laABwN/I7lJR/zCbBu0uuvk57/CDRP0TfTjvDX\n/Aqi5p93o6al+YS/wNuk+F1rk/yl/xPQsoZ9NwSuixLvfEJdAaxHuEr4rMr+VV9Xrcu1JT0o6TNJ\n3wH3smJdprIu8G2iuTLySRRLQrp17RoQ/wd2+fYq8AuwTz2OHQ08BrQzs9bA31nxM7xBleef16Oc\nTwnNZsuR1Bc4DdjfzFpHSfA7st95Xd2dVJ8AR5nZ6kmPFtEV3JeEJJiIU8mvU5zzEmApsHXUhDiM\n5euypru5vgDWkJScADdgxSTmyownFJdXZraA0Cl/s6TBklpJaiSpC9AiadfqvqRbAvPNbLGknsAB\nrPjFd7aklSVtReif+Gc9wrwduEhSBwWdJK0Rlf8rME9SU0nnAqvW4/wJqRLRXGAZsEnStr8DZ0ra\nEsLNDZL2j94bB2wjaW9JTYA/A21rKbsl8APwfXTDwWlV3v+6Svm/MbNPgVeASyU1k9QJOIzQtOXK\nmCcUl3dmdiWh4/t0QrPPV4QvzNMJVzCwfCd5wnHAhZK+B86h+mQxEfgQeA640syeq+F8qf4Kv4bQ\np/EM4QrkNqA58DQwHvgvMIfQTPVJlfPV9Jd9TeX/dqyZ/UjoMH85auLqaWaPEW6zfjBqopoB7Bbt\nPw/YH7gCmEfoZH+DcCWYKq4LgG7R7zcW+FeVfS4lJOf5kk6pJt6hQHvC1coY4Fwze6GG8nz8ShlQ\nbeOUor/0+hE+PEb4jzQp0Tla74KlEwhfEEuBJ81sZNJ7GwDvAueZ2dXRtu7AKMJ/7HFmNiKT8l3D\nIqk98BHQJLnDvxxFfRWfAgeY2cRCx+PKR8orFEnDJE0BriJcPn9ESCbrAFdJel3SQfUpNLq9cBDQ\nycy2jspIdg3wZJVttwCHm9mmwKaSBtanbOcaomgcSmtJzYAzo82TCxmTKz9NanhvdWCAmS2s7k1J\nqxLaqOvjWMItkEsAzGxu0nn3ISSvH5K2rQO0MrMp0aZ7CJ264+tZvmuYyrlZZTvCTQtNgXeAfczs\nl5oPcS67Ul6hmNn1qZJJ9P730f3u9bEp0E9h/qZKSdsCRHeNnE40wCrJeix/B8nnLH+LoitzZjbH\nzBqXa3OXmV1gZm3MbFUz287MXi90TK781HSFAoCkjsDNQFsz20pSZ2AvM/trLcc9S/V3mpwVlbu6\nmfWW1IPQAboxIZFca2Y/Rrc+OuecKxG1JhTCHS6nEe7CAXibcGldY0Ixs11Svacwq+yYaL/XozmC\n2hCmhxgs6QqgNbBM0k/Rvsn31bcjxfgCSeXc7OGcc/VmZhn9IZ/ObcOrmNlrSQUasCSTQgmD03YC\nkLQZ0NTM5plZPzPbyMw2IsxGe7GZ3WxmXxHul+8VXbkMi85RLTPzhxnnnXdewWMolofXhdeF10XN\nj2xI5wplrqTfRg1L2o8wMjcTdwJ3SpoBLGb5OYBSOY5w2/DKhNuGvUO+FnPmzCl0CEXD6yLmdRHz\nusiudBLK8cA/gM0lfQHMBg7MpFALd3cNq2WfC6q8ngpsk0m5zjnncqfWhGJms4ABkloAjayGO79c\ncRk+fHihQygaXhcxr4uY10V2pTNSvjkwmDBSvjFh/iEzswtzHl09SLJstQc651y5kITloVP+34RR\n7UsIgw0XkTTo0BWvysrKQodQNLwuYl4XMa+L7EqnD2U9M9st55E455wraek0ef0DuNHM3s5PSJnx\nJi/nnKu7bDR5pZNQ3iMsNjSbpOmwzaxTJgXniicU55yru3z1oexOmHtrF2BPYC9Cn0rRWry40BEU\nB28fjnldxLwuYl4X2VVrQjGzOYRpUAYRkslq0baide65hY7AOefKTzpNXiOAIwnzaYkwbfxtVv+Z\nhnNKkq27rnH33bDzzoWOxjnnSkO++lBmAL3N7IfodQtgspkV5ah1Sfbcc8bBB8P06bDmmoWOyDnn\nil+++lAAlqV4XpQGDIBhw2D4cCjn/nlvH455XcS8LmJeF9mVTkK5C3hN0vmSLiAsK3pnbsPK3EUX\nwbx5cH1RNsw551zDU2uTF4Ck7kAfwhKrk8xsWq4Dq6/k24ZnzYLeveGZZ6Br1wIH5pxzRSxffSj3\nmtmw2rYVi6rjUEaPhgsvhKlToUWLAgbmnHNFLF99KFtXKbQJ0D2TQvPpgAPCVcqIEYWOJP+8fTjm\ndRHzuoh5XWRXyoQi6UxJC4FtJC1MPID/AY/nLcIsuOEGePFF+Oc/Cx2Jc841XOk0eV1mZv+Xp3gy\nlmrqlalTYffd4bXXYKONChCYc84VsXz1oTQirNC4kZldKGkDoK2ZTcmk4FypaS6vq6+GRx4JVysr\nrZTnwJxzrojlqw/lZmA74IDo9aJoW8k5+WRYbTW44ILa920IvH045nUR87qIeV1kVzoJpZeZHQf8\nBGBm3wIl+fd9o0Zw991w550wYUKho3HOuYYlnSav14DtgTfMrKukNYFnzKwoR3akM33900/DEUfA\ntGnQpk2eAnPOuSKWryavG4BHgbUkXQK8DFyaSaGFtttuMGQIHH54eU/N4pxz2ZTO9PX3ASMJSeQL\nYG8zeyjXgeXaxRfD55/DzSXZG5Qebx+OeV3EvC5iXhfZVeua8pJ6A++a2Y3R61Ul9TKz13IeXQ41\nbQoPPADbbw99+0Knolx/0jnnSkc6fSjTga6JjglJjYn6U/IQX53VdQnge+6Byy6DN96AVVbJYWDO\nOVfE8jZ9ffI3tJktBRpnUmgxGTYMunULtxQ755yrv3QSymxJJ0paSVLTaAXHj3IdWL5IoR/luefC\noMeGxNuHY14XMa+LmNdFdqWTUI4BdgA+Bz4DegNH5TKofFt11dCf8uc/wyefFDoa55wrTWmth1JK\n6tqHkuyKK2Ds2DDosUmttys451zDka+5vFYGDge2BJontpvZYZkUnCuZJJRly8IYlR12gPPPz25c\nzjlXzPLVKX8vsDYwEJgIrE+Yz6vBadQo3PV1661hAslS5+3DMa+LmNdFzOsiu9JJKB3M7BxgkZnd\nDewB9MptWIWzzjpwxx1w0EHw7beFjsY550pHOk1eU8ysp6RJwHHAV8BrZrZxPgKsq0yavJKdfDJ8\n/DH861/hTjDnnGvI8tXkdZukNYCzCSs1vgtckUmhpeCyy2D2bPjHPwodiXPOlYZ05vK6zcy+NbOJ\nZraRma1pZn/PR3CF1KwZPPggnH02vPNOoaOpH28fjnldxLwuYl4X2ZXWSPly1bEjXH55mJn4p58K\nHY1zzhW3go1DkXQCoU9mKfCkmY2MtncCbgVaAcuAbc1ssaTuwCjCrcvjzGxEivNmpQ8lwQyGDoXf\n/Q5uuilrp3XOuaKSt7m8sk1Sf2AQ0MnMtgauirY3IdymfFS0fUfg1+iwW4DDzWxTYFNJA/MTK/z9\n7zBuHDz2WD5KdM650lRrQpE0WNIfqjwGSForg3KPBS41syUAZjY32r4r8LaZzYi2zzezZZLWAVqZ\n2ZRov3uAfTIov05at4bRo+Hoo+Gzz/JVaua8fTjmdRHzuoh5XWRXOlcohwG3AwdGj9uA/wNekXRw\nPcvdFOgnabKkSknbJm03SeMlTZV0WrR9PcI8YgmfR9vyZrvtYMSIMD5l6dJ8luycc6UhnRmrVgK2\nMLOvASStTWiW6gW8SLhaWIGkZ4G21bx1VlTu6mbWW1IP4CFg46isPsC2wE/A85KmAt/V5ZcaPnw4\n7du3B6B169Z06dKFiooKIP6LpD6vR46Ehx+u5Kij4I47Mj9frl9XVFQUVTz+unheJxRLPIV6ndhW\nLPHk83VlZSWjRo0C+O37MlPpDGx8z8y2SHotwgqOW0iaVp+FtiQ9BVxmZhOj1x8SZjEeAOxuZsOj\n7WcDPwP3ARMScUgaCuxoZsdUc+6sdspX9fnn0L17GPC4ww45K8Y55/IqX53yEyQ9KekQScMJgxsr\nJbUAFtSz3MeAnQAkbQY0NbN5wDPANpJWjjrodwTeMbOvgO8l9YoS2rDoHHm33nphsOOBB8KC+v72\neVL1r9Fy5nUR87qIeV1kVzoJ5c/AXUAXoDNwN3Ccmf1gZv3rWe6dwMaSZgAPAAdD6IQHrgFeB6YB\nU83sqeiY4wh9OR8AH5rZ+HqWnbFBg2CvveCoo8Jtxc4559Jr8to96Us9se2YYh0tn+smr4Sff4ae\nPeHEE+GII3JenHPO5VS+mrzOkTQgqdDTyeMtu8WqefMwNcsZZ8B77xU6GuecK7x0Esog4GJJfSVd\nTLi7a1BuwyoNW24Jl1wSRtL//HOho1mRtw/HvC5iXhcxr4vsSmdyyHmEBHIzsC6wn5ktznVgpeKI\nI6BDBxg5stCROOdcYaXsQ5G0CEh+symwJNpmZrZq7sOru3z1oSSbPx+6dIEbbwyd9c45V2rysqZ8\nqSlEQgF46SXYbz94801Yd928F++ccxkp2ckhG6I+feC444prahZvH455XcS8LmJeF9nlCSWLzjor\nJJMrGvx6ls45tyJv8sqyTz+FbbeFf/8bevcuWBjOOVcnOW3yimb7vU7SQEnNMymknKy/flg/5YAD\n4Ls6TWnpnHOlraYmr96E+bL6AxMlPSVpRDT3lqvBvvvCbrvBMccUdmoWbx+OeV3EvC5iXhfZlTKh\nmNkSM5tgZiPNrBdwBLAI+KukNyXdnLcoS9A118CMGXD33YWOxDnn8qNefSiSGgO9zezl7IeUmUL3\noSSbORP69w+3FHfsWOhonHMuNR+HUo1iSigAt9wCt90Gr74KzZoVOhrnnKuej0MpAcccAxtuCGee\nmf+yvX045nUR87qIeV1klyeUHJPgjjvg4Yfhqadq398550pVTXN53VDDcb8AHwL3m9nCXARWX8XW\n5JUwcSIMGQLTpkHbtoWOxjnnlpfTPpRoud9U38xNgK2Brc1sl0wCyLZiTSgA554LkyfD+PHQyK8N\nnXNFJKd9KGY2yszuBiaZ2d3JD+BtMzsZ+DWTwsvNuefCDz/A1VfnpzxvH455XcS8LmJeF9mVzt/J\nj0hql3ghaUfCGvOY2e65CqwhatIERo+GK6+E118vdDTOOZdd6awp3wO4BdgT6AZcCuxpZp/mPry6\nK+Ymr4SHHw5LB0+bBq1aFToa55zL4zgUSdsDtwI/EZLJ/zIpNJdKIaEAHHVUWDb4nnsKHYlzzuV+\ncsixiQdwBrAy4e6uOyQ9nkmhDq69NjR73Xtv7srw9uGY10XM6yLmdZFdTWp4r7quYwNE6ru/XJpa\ntIAHH4Sdd4bttgvr0jvnXCmr6bbhRma2rMaDi7B9qQhDqtENN4Rmr5dfhqZNCx2Nc65c5XrqlQmS\nTqtuunpJHSWNBCZmUriD448PAx3PPrvQkTjnXGZqSii7At8AN0n6UtJ/JX0g6UvgRuBrYOd8BNmQ\nSXDXXeF24meeye65vX045nUR87qIeV1kV8o+FDP7BbgTuDOarr5N9NY8M1uaj+DKRZs2odlr2LBw\nK/FaaxU6Iuecqzufvr6InHlmSChPPulTszjn8sunr29gLrgA5s+H664rdCTOOVd3nlCKyEorwQMP\nwCWXwJtvZn4+bx+OeV3EvC5iXhfZ5QmlyGy0EVx/fZjqftGiQkfjnHPpS2cur8HAZcDahEGNAGZm\nq+Y4tnop5T6UZIcdBmbhDjDnnMu1vMzlJWkWYf6u9zIpKF8aSkJZtAi6d4fzz4ehQwsdjXOuoctX\np/xXpZJMGpKWLUN/yoknwkcf1e8c3j4c87qIeV3EvC6yq6a5vBLekPRP4DFgcbTNzGxM7sJyAN26\nhVuJDzgAJk0KnfbOOVes0mnyGhU9XW5HMzs0o4KlE4DjgKXAk2Y2UlJzwuJdWxGS3T1mdlm0f3dg\nFNAcGGdmI1Kct0E0eSUsWwZ77glduoS7v5xzLhey0eRV6xWKmQ3PpIDqSOoPDAI6mdkSSWtGbw2J\nyuwkaWXgXUmjzewTwiJfh5vZFEnjJA00s/HZjq3YNGoEo0ZB164wYEB4OOdcMaq1D0XS+pIelTQ3\nevwreUngejoWuNTMlgCY2dxo+5dAi2iqlxaEJrbvJa0DtDKzKdF+9wD7ZBhDyVhrrZBUDjkE5s6t\ndfffePtwzOsi5nUR87rIrnQ65e8CHgfWjR5jo22Z2BToJ2mypEpJ2wKY2dPA94TEMge40swWAOsB\nnyUd/3m0rWzssgsceCAcemi4ndg554pNOn0ob5lZ59q2VXPcs0Dbat46C7gYeMHMRkRr1v/TzDaW\ndBCwL/BHYA1gErA78DvCFc0u0bn7Aqeb2V7VlNug+lCSLV4MffqESSRPOKHQ0TjnGpK89KEA30ga\nBowmDGwcAsyr7aDEl391JB0LjIn2e13SMkltgO2BR6PZjOdKehnoDrwEJDeztSNcpVRr+PDhtG/f\nHoDWrVvTpUsXKioqgPgStxRfN20KI0ZUctxx0K9fBZ07F1d8/tpf++vSeV1ZWcmoUaMAfvu+zJiZ\n1fgA2hOaueZGj38DG9R2XC3nPBq4IHq+GfBx9PxE4M7oeQvgHWDr6PVrQC9CUhsHDExxbmvo7r3X\nbPPNzRYtqnm/CRMm5CWeUuB1EfO6iHldxKLvznp/r5tZ7X0oZjbHzPYyszWjx94W7rrKxJ3AxpJm\nAA8Ah0TbbwWaRtunRMllZvTeccDtwAfAh1YGd3ilctBB0KMHnHRSoSNxzrlYTWvKjzSzyyXdUM3b\nZmYn5ja0+mnIfSjJFi4MAx8vvhj++MdCR+OcK3W57kN5N/o5leUHNarKa1cArVqFqVn22AN69oRs\nNYE651x9pWzyMrOx0dMfzezupMco4Ke8ROdqtO22cPrp4XbiX39d8f1EB5zzukjmdRHzusiudMah\nnJHmNlcAp5wSJpK88MJCR+KcK3c19aHsDuwB/Al4kHgtlFbAlmbWMy8R1lG59KEk++qrMDXLAw9A\ndHegc87VSa6nr/+C0H/yc/TzjejxOLBbJoW67GrbFu68Mwx4/OabQkfjnCtXNfWhvBX1l2xCuEKZ\nDkwDnjCz+fkJz6Vr993D3V6HHx5PzeLtwzGvi5jXRczrIrvS6UPZFfgQuB64AZglaY+cRuXq5ZJL\n4NNP4ZZbCh2Jc64cpTOX1/vA783sw+j1JoT1SDrmIb46K8c+lGT//S/ssAO88AJss02ho3HOlYp8\nLQH8fSKZRD4izAjsitBmm8GVV8KQIfDjj4WOxjlXTtJJKFOjBa2GSxoOPEFYFvgPkv6Q2/BcfRxy\nSJiapaKikp9/LnQ0xcHbymNeFzGvi+xKJ6E0A74GdowecwnL8O4VPVyRkeD222GVVWDwYPjll0JH\n5JwrBzX2oUQrJ44ws2vyF1Jmyr0PJdmSJTB0aEgojzwCzZoVOiLnXLHKeR+KhXVJhmZSgCuclVYK\ngx1XWincUrx4caEjcs41ZOk0eb0k6UZJfSV1k9RdUrecR+YyVllZyUorwYMPhmawIUPCVUs58rby\nmNdFzOsiu9JJKF2BrYALgauBq6KfrkQ0bQoPPRQmkBw6tHyTinMut2odh1JqvA8ltV9+CZ30q6wC\no0dDk3QWgHbOlYW8jEOR1FrStZKmRo+rJa2WSaGuMJo1C53zCxeGVR+rm/LeOefqK50mrzsJAxn3\nB/4ILATuymVQLjuqax9u3hwefRTmz4eDDy6fpOJt5TGvi5jXRXalk1A2MbPzzOwjM5tlZucTJox0\nJap5c3jsMZg3D4YPh6VLCx2Rc64hSGcur8nAaWY2KXrdB7jSzLbLQ3x15n0o6fvxRxg0CNZdF+66\nCxo3LnREzrlCyUYfSjoJpQtwD5DoN5kPHGJmb2VScK54QqmbH3+EPfeEDTeEO+6ARulcszrnGpy8\ndMqb2XQz6wR0ArYxsy7Fmkzc8tJpH15lFRg7FmbPhiOPhGXLch9XIXhbeczrIuZ1kV3p3OV1kqRV\nCR3z10p6U5Kv2NiAtGgBTz4JH3wARx/dcJOKcy630mnyetvMOkVJ5BjgHOBeM+uajwDrypu86m/R\nIhg4ELbaKizS5c1fzpWPfK2Hkijg94REMjOTAl3xatkSnnoKZs6E44+PlxJ2zrl0pLseyjPAHsDT\nUfOXN4qUgPq0D7dqFZLKtGlwwgkNJ6l4W3nM6yLmdZFd6SSUw4AzgG3N7AdgJeDQnEblCmrVVWH8\neHj9dRgxouEkFedcbqXsQ5HUHUj5VWJmb+YqqEx4H0r2LFgAu+wCffrANdeEGYudcw1TTsehSKok\nJJSVge7A29FbnYA3fGBjeZg/PySVHXeEq67ypOJcQ5XTTnkzqzCz/sAXQDcz625m3QnT2X+RSaEu\nP7LRPrz66vDMMzBhAowcWbrNX95WHvO6iHldZFc6fSibm9mMxIvoLq8tcheSKzZrrAHPPhsSyxln\nlG5Scc7lVjrjUB4EFgH3EW4hPgBoaWZFuTSwN3nlzrx5MGBAmKrlr3/15i/nGpJ8zeW1MnAs0Dfa\n9CJwi5n9nEnBueIJJbfmzoWddoJ994ULLyx0NM65bMnXXF4/mdk1ZrZv9Li2WJOJW14u2ofXXBOe\nfx7GjIELLsj66XPG28pjXhcxr4vsqnURWEmbAZcAWxLu+AIwM9s4l4G54rXWWiGp9O8fpmc555xC\nR+ScKwbpNHm9DJwHXAMMAoYDjc2sKL9GvMkrf776KiSVgw6Cs84qdDTOuUzkay6vlc3sOULymROt\n2Pj7TAqV9KCkadFjtqRpSe+dIekDSf+RtGvS9u6SZkTvXZdJ+S472raFF16Ae++Fyy4rdDTOuUJL\nJ6H8LKkx8KGk4yX9AWiRSaFmNsTMukYzFv8reiBpS+BPhOa1gcDN0m/3Et0CHG5mmwKbShqYSQzl\nIB/tw+usE5LKnXfCFVfkvLh687bymNdFzOsiu2rtQwFOAlYBTgQuAlYFDslG4VGy+CPQP9q0N/CA\nmS0B5kj6EOgl6WOglZlNifa7B9gHGJ+NOFxm1l03DHysqAjLCJ96aqEjcs4VQq19KDktXOoHXG1m\nPaLXNwCTzez+6PXtwFPAHOAyM9sl2t4XON3M9qrmnN6HUiCffRaSyp//DCefXOhonHN1kY0+lHSu\nUOpF0rNA22reOtPMxkbPhwKjcxWDy6927ULzV//+4UrlxBMLHZFzLp9yllASVxOpSGoC7At0S9r8\nObB+0ut2wGfR9nZVtn+e6tzDhw+nffv2ALRu3ZouXbpQUVEBxG2m5fA6uX04X+V/9FElF18MZ5xR\nQaNGsPXWxVEfiW3F9O9TqNfTp0/npJNOKpp4Cvn6b3/7W1l/P4waNQrgt+/LjJlZtQ/g8ujnH1Pt\nk8mD0Ok+ocq2LYHpQFNgI2AWcbPca0AvwvQv44CBKc5rLpgwYULByp4922zDDc1uuqlgISynkHVR\nbLwuYl4Xsei7M6Pv9Zqmr58JbAO8aTlYP17SXcCrZvaPKtvPJCzq9SswwsyejrZ3B0YRBleOM7Nq\nG1S8D6V4zJ4d+lTOPBOOPrrQ0TjnapLr9VCuBI4EWgI/VXnbzGzVTArOFU8oxWXWrNCncs45cOSR\nhY7GOZdKrtdDOc3MWhOuBlpVeRRlMnHLS+4/KJRNNgkd9RdeCHfcUbg4iqEuioXXRczrIrtq7ZQ3\ns0GS1gZ6RJummNn/chuWa0g6dFj+7q/hwwsdkXMuF9KZy+uPwJXAREKHeF/gNDN7OPfh1Z03eRWv\n998P66lccgkcfHCho3HOJcvXOJSzgR6JqxJJawLPA0WZUFzx6tgRnnsuJJVGjcKkks65hiOdubwE\nzE16/U0MILaSAAAaI0lEQVS0zRW5Ymwf3nzzsJzw6afD6DwOaS3GuigUr4uY10V2pXOFMh54WtJo\nQiL5E2E6FOfqZcstQ1LZeedwpTJkSKEjcs5lQ1pzeUkaDOwQvZxkZo/mNKoMeB9K6ZgxA3bdFa6/\nHvbfv9DROFfe8rKmfKnxhFJa3noLdtsNbroJBg8udDTOla98LbDlSlQptA937gzjx4cZih/N4XVv\nKdRFvnhdxLwusitnk0M6l64uXWDcONh999CnsvfehY7IOVcf6YxDGWFm19W2rVh4k1fpmjoV9tgD\nbr8d9lphpRvnXC7lq8lreDXbDs2kUOeq0707PPEEHHFE+OmcKy0pE4qkoZLGAhtJGpv0qCSMRXFF\nrhTbh3v0gLFj4bDDQjNYtpRiXeSK10XM6yK7aupDeQX4ElgTuIp4MONC4K0cx+XKWM+e8PjjMGgQ\n3HtvuAvMOVf8/LZhV7ReeQX22Qfuuy+MV3HO5U5e+lAkbSfpdUmLJC2RtEzS95kU6lw6tt8exoyB\nAw8Mc4A554pbOp3yNwIHAB8AzYHDgZtzGZTLjobQPtynT0gqBxwQpsCvr4ZQF9nidRHzusiutAY2\nmtkHQGMzW2pmdxHWg3cuL/r2hYcfhj/9Cfz/v3PFK51xKC8CuwC3EzrpvwIOMbPOuQ+v7rwPpeGa\nMCEklUcegX79Ch2Ncw1LvsahHBztdzzwI9AO8FmXXN717w8PPBDm/Jo0qdDROOeqqjWhmNkcwi3D\nbc3sfDM7xcw+zHlkLmMNsX14wICwjsrgwfDyy+kf1xDror68LmJeF9mVzl1eg4BpwNPR666SHs91\nYM6lsssuYXzKvvvCq68WOhrnXEI6fShvAjsBE8ysa7RtppltnYf46sz7UMrH+PFhbfqxY6FXr0JH\n41xpy1cfyhIzW1Bl27JMCnUuGwYOhFGjwkSSU6YUOhrnXDoJ5R1JBwJNJG0q6QbCtCyuyJVD+/Ae\ne8Cdd4ak8sYbqfcrh7pIl9dFzOsiu9JJKCcAWwG/AA8A3wMn5TIo5+pizz3httvg97+HN98sdDTO\nlS+fy8s1GI89BkcfHfpWunYtdDTOlZZs9KHUumKjpI7AX4D2Sfubme2UScHOZds++8DSpWHlx6ef\nDssLO+fyJ50mr4eBN4GzgdOSHq7IlWP78ODBcMMNocP+7bfj7eVYF6l4XcS8LrIrnTXll5jZLTmP\nxLks2X9/WLYsrKPy7LOwdVHe4O5cw5OyD0XSGoQR8icAc4ExhI55AMzs23wEWFfeh+ISHngATj01\nJJWttip0NM4Vt2z0odSUUOYAqb6Zzcw2zqTgXPGE4pLdfz+cdhocf3zoU+ncGdZbD5TRfxvnGp6c\nJpRS5QklVllZSUVFRaHDKLgXXoBbb63k228reOut0BzWqVOcYDp3hi23hGbNCh1pfvjnIuZ1EcvL\nXV7OlbqddoJGjaCiAszgq6/grbfC45ln4Mor4aOPYNNNl08ynTvDWmsVOnrnSodfoTgH/PwzvPNO\nnGgSj+bNV0wyHTtCE/9TzDUw3uRVDU8oLlvM4NNPV0wyn30GW2yxYqJZffVCR+xc/eW6U747qTvl\nMbN6T3Ih6UGgY/SyNbDAzLpK2gW4FGgKLAZOM7MJSfGMIqxrP87MRqQ4tyeUiLcPx7JZF4sWwcyZ\nyyeZGTOgdesVk8wmm0DjxlkpNmv8cxHzuojlug/lampIKED/+hZqZkMSzyVdBSRmM54L7GlmX0na\nirAGS7vovVuAw81siqRxkgaa2fj6xuBcfbVsCb17h0fCsmUwe3acYO6/H04/HebODeNgkpNMp07Q\nqlXh4ncuVwra5CVJwMdAfzObVc1784C2QBvgBTPbInpvCFBhZsdUc06/QnFF47vvwoj95KuZd96B\ntm1XvJpp395vZ3aFk7e7vCRtA2xBaG4CwMzuyaTgSF/g66rJJDIYmGpmSyStB3yW9N7nwHpZKN+5\nnFptNejbNzwSli6FDz6IE8xtt4WfCxeueDvz1lvDKqsULn7n6iKdySHPB3YkTGH/JLA78BJQY0KR\n9Czh6qKqM81sbPR8KDC6mmO3Ai4DdqktvuoMHz6c9u3bA9C6dWu6dOnyWztpYu6ecnidPE9RMcRT\nyNeJbcUST0VFBZtvDmuvXcmuu4bX8+bBPfdUMmsWvPxyBTfdBO++W0nbtrDddhV07gxSJR06wH77\nVSDVr/zp06dz0kknFfz3L4bXf/vb38r6+2HUqFEAv31fZiqdJYBnAp2BN82ss6S1gfvNbOeMCpaa\nEK46upnZF0nb2wHPA8PN7NVo2zos3+Q1FNjRm7xqVukdjr8p1bpYvBj+858V7zRbunTFJrN0B2eW\nal3kgtdFLC+3DUt63cx6SJpKWFv+e+A/ZtaxxgNrK1gaCIw0s/5J21oDE4HzzOyxKvu/BpwITCFc\nKV1fXae8JxTX0FUdnJl4fPQRdOiwYqJZe+1CR+xKQb4Sys3AWcCfgFOBH4BpZnZoRgVLdwGvmtk/\nkradDfwf8EHSrruY2byk24ZXJtw2fGKK83pCcWUp1eDMZs3i5NKlC+y9N7RoUehoXbHJ+8BGSRsB\nq5rZW5kUmkueUGJ+OR8r17qoOjhz8mSYPLmSSy+t4NBDfcR/uX4uqpPTu7wkbWFm70nqVs173TIZ\n2Oicyw8JNtggPPbaK2z7+9/DOJnrroMrrggrXPrtyi4bahopf5uZHSmpkmoGOCb3fRQTv0JxrnZm\n8MQTYfDluuuGCTK7rfCnoysn+epDaW5mP9e2rVh4QnEufb/+CnfcARdcAAMGwF//ChtuWOioXCFk\nI6Gks6b8K2luc0UmeQxGufO6iCXXRZMmcPTR8P77sPHG4Spl5EhYsCD18Q2Jfy6yK2VCkbROdGfV\nKpK6Seoe/awAfOyucw1Iq1bhKmXGDPj22zBF/3XXhXEwzqWrpj6UQ4DhwLbAG0lvLQRGmdmYnEdX\nD97k5VzmZs4M/Sv//S9ceinst5933Dd0+epD2c/MHsmkkHzyhOJc9jz/PPzlL2Ghsauugh12KHRE\nLlfy1YfyhKQDJZ0l6VxJ50k6N5NCXX54+3DM6yJWl7oYMACmToXjjoMDDoA//CFctTQU/rnIrnQS\nyr+BQcASwij5RdFP51wZaNQIhg0Lc4r16hWuUo4/Pqz14lyytCaHNLOt8xRPxrzJy7ncmjcPLroo\nDI485RQ46SSfYr8hyNttw5I6ZVKIc67haNMm3AE2eTJMmxbuCBs1KsyA7MpbOgmlLzBV0n8lzYge\nb+c6MJc5bx+OeV3EslUXHTrAww/DQw+FRcK6d4dnn83KqfPGPxfZlc7UcLvnPArnXMnabjt46SUY\nMyZ03m+ySZgjrJO3a5SdtGYbltQX6GBmd0laE2hpZrNzHl09eB+Kc4WzZAncemuYwmWPPUJfy3q+\nWHdJyEsfSrQE8OnAGdGmpsB9mRTqnGuYVlop3AH2/vthYa9OneDss+H77wsdmcuHdPpQ9gX2JrpV\n2Mw+B1rlMiiXHd4+HPO6iOWjLlZbLYywnz49rMfSsSPcfHO4gikm/rnIrnQSyi9mtizxQpKv9eac\nS8v668Pdd8NTT8Gjj8LWW8Njj4Xp813Dk844lNOADsCuwKXAYcBoM7s+9+HVnfehOFeczODpp+G0\n06B16zCVS69ehY7KJeR8Li9JAtYHNickFICnzaxobw70hOJccVu6NFy1nHtuGHV/6aVh6nxXWPka\n2DjOzJ4xs79Ej6JNJm553j4c87qIFbouGjeGww4LHffbbAM9e8LJJ8M33+Q/lkLXRaGZwaxZYWBq\nNtSYUKI/9adK6pmd4pxzLmjRItwB9s478MsvsPnmYSnin4tyLdiGYelSeOstuPFG+NOfwi3d/frB\n+PHZOX86fSjvE/pQPiaeFNLMrCiHLXmTl3Ol6T//gf/7v3Bn2MUXw9ChYWJKV3+LF8Mbb8CLL8Kk\nSfDKK7DWWtC3b/zYaKOw1k2+1kNpX912M5uTScG54gnFudL24othDZZly8IVS//+hY6odCxcCK++\nGpLHpEkhmWy2WbgK6dsX+vQJ44Oqk5c+lChxrA/0j57/APjabSWg3NuHk3ldxIq9Lvr1CxNP/uUv\ncPjhsNde8O67uSmr2OuiNnPnhtuxTz4Ztt0W1lknzFKwbFm42vviC3jzTfjb32Dw4NTJJFtqncsr\nGinfHegI3EU8Ut7XbnPO5USjRjBkCOy7L9x0E1RUhOfnnx++NMuRGXz8cXz1MWkSfPllmEutX7+Q\nNLbdNqyuWSjpNHm9BXQFpppZ12jb296H4pzLl/nzQ7/KXXfBiSfCqadCy5aFjiq3li2D996L+z8m\nTQozDST3f3TqFO6ay4Z89aFMMbOekqaZWddopPyrnlCcc/k2ezacdRZMnBiuVg49FJqkM2d6CViy\nJDRPJZLHSy+FAaB9+8Z9IB06hA70XMjXOJSHJd0KtJZ0FPA8cHsmhbr8KPX24WzyuoiVcl1stBGM\nHh2mb7n/fujcGZ58sv5TuRSyLn78EV54AS64AAYMgDXWgKOOgjlz4IADYMaMeIzIYYfBppvmLplk\nS8rcLqm5mf1sZldK2hVYCGwGnOODG51zhdSjB0yYAE88ETrvr746TOXSrVuhI0vt22/DVUfiCmTG\njJAQ+/YNSylvvz2svnqho8xMyiYvSW+aWTdJ95rZsDzHVW/e5OVcefn1V7jjjtAENmBA6GvZcMNC\nRxVmWU7uQP/kE+jdO+7/6NkTVlml0FHGctqHIukd4BLgIuAvhFuFLfHTzMZkUnCueEJxrjwtXBiu\nUm68MdxufOaZoQ8iH8zCVDLJCWTRojDuI9EH0qVLcff35LoP5RjCevKrAXsBe1b56YpcKbeVZ5vX\nRayh1kWrVqE/YsaMcFfYZpuFW2kXL059TH3r4tdfw6DBa6+FP/whjO8YODDckdWnD4wbB//7Xxgj\ncsop4XbeYk4m2VLTr9jWzI6Jmr7+kbeInHMuA+uuC7fdBiNGwOmnww03hBmN99+//p3aP/0EU6bE\nVx+TJ0O7duHqY/DgkLg22CC7v0cpqqnJK3Gb8LTE+JNS4E1ezrlkzz8fOu6bNQtNYn361H7MggVh\n3qvEGJDp08PiYIn+jx12gDZtch97PuW6D+U5Qp9JD2BSlbfNzAZlUnCueEJxzlW1bFm4zfiss6B7\nd7j88tAklvDll8v3f8yaFe4kSySQ3r0b/kDKXCeUZoQR8vcBh7P8/F1mZhPrXaj0IGEqF4DWwILk\nqyBJGwDvAueZ2dXRtu7AKKA5YY2WESnO7QklUllZSUVFRaHDKApeF7FyrouffoLrrw+TTu67L3z6\naSUffljBt9+Gq47EAMJu3aBp00JHm1857ZQ3s1/MbDKwnZlNNLPKpEe9k0l07iFm1jVKIv+KHsmu\nAZ6ssu0W4HAz2xTYVNLATGIoB9OnTy90CEXD6yJWznWx8sowcmSYKr9dO2jZcjqPPgrz5sHYsWF5\n4t69yy+ZZEtNAxuvi64C7tSKPVlZafKKlhj+I9A/ads+wEfEa68gaR2glZlNiTbdA+wDZGlZmIZp\nwYIFhQ6haHhdxLwuQv/HeefB+ecvYJttCh1Nw1HTXV73RD+vrua9bLUp9QW+NrNZAJJaAqcDOwOn\nJe23HvBZ0uvPo23OOeeKRMqEYmZTo5+VktaMns9N98SSngXaVvPWmWY2Nno+FBid9N75wLVm9qOq\nuSxydTNnzpxCh1A0vC5iXhcxr4vsqqlTXsB5wPFAYoLkpcANZnZBxgVLTQhXHd3M7Ito24uExbwg\ndNYvA84BxgATzGyLaL+hwI5mdkw15/Ueeeecq4dMO+VravI6mbCIVg8zmw0gaWPg75JOMbNrMimY\n0Kz1XiKZAJhZv8RzSecBC83s5uj195J6AVOAYcD11Z000wpxzjlXPzVNvXIwcEAimQCY2UfAgdF7\nmfoT8EAd9j+OMG3+B8CHZuYd8s45V0RqavKaaWZb1/U955xz5ammK5Ql9XwvJyQNlPQfSR9IGpli\nn+uj99+SlDxQco6ktyVNkzSlumNLSW11IWlzSa9K+lnSqXU5ttRkWBfl9rk4MPq/8baklyV1SvfY\nUpNhXZTb52LvqC6mSZoqaad0j12BmVX7IHTAL0zx+DXVcbl4EG4K+BBoD6wETAe2qLLPHoQR9AC9\ngMlJ780G1shnzAWuizWBbYG/AqfW5dhSemRSF2X6udgOWC16PjDxf6RMPxfV1kWZfi5aJD3fhtCl\nUK/PRU0j5RubWasUj3xPxNyT8EvOMbMlwIPA3lX2GQTcHcX+GmHJ4rWT3m8onfW11oWZzTWzN1jx\nSjKdeiwlmdRFQjl9Ll41s++il68B7dI9tsRkUhcJ5fS5+CHpZUtgXrrHVpXOmvLFYD3g06TXn7Hi\nwMaa9jHgOUlvSDoyZ1HmRzp1kYtji1Gmv085fy4OB8bV89hil0ldQBl+LiTtI+k94CngxLocm6xU\nlnxJd2xJqr8q+pjZF9EAzWcl/cfMqs6gXCoyGWfT0MboZPr77GBmX5bb50JSf+AwwrCAOh1bIjKp\nCyjDz4WZPQY8JqkvcK+kzetTWKlcoXxOPOCR6PlntezTLtqGRWNdLIz0f5RwKVeq0qmLXBxbjDL6\nfczsy+hn2Xwuos7n24BBZja/LseWkEzqoiw/FwlR4mwCrBHtV6fPRakklDcIMwy3l9SUMIbl8Sr7\nPE40PkZSb8KU+F9LWkVSq2h7C2BXYEb+Qs+6dOoioeoVW12OLQX1roty/FwoLAsxBjjIzD6sy7El\npt51Uaafi02kMNWVpG4AZvZNOseuoNB3IdThboXdgfcJdx2cEW07Gjg6aZ8bo/ffIkzpArAx4e6E\n6cDMxLGl/KitLghzqH0KfAfMBz4BWqY6tpQf9a2LMv1c3A58A0yLHlNqOraUH/WtizL9XJwe/a7T\nCIsp9qjv5yLlwEbnnHOuLkqlycs551yR84TinHMuKzyhOOecywpPKM4557LCE4pzzrms8ITinHMu\nKzyhuJyTtL6kjyStHr1ePXq9QTX7NpM0UVIjSRWSxuY/Yshl2ZJWkjS1mu2LclFeXUg6M0fnPVHS\nsFyc2xUPTygu58zsU+AW4LJo02XArWb2STW7Hwg8YWbL8hVfVZJyPcddH+ClarYXw6CwM3J03ruA\nE3J0blckPKG4fLkW6C3pJGB74KoU+w0F/l11o6Qekt6UtJGkNSU9K2mmpNuiBZHWqOaYgdGCQdMl\nPRtt6ynplehcL0vaLNo+XNLjkp4HniN8ua8m6YlogaFbkqanGBotwDRD0mVJ5S2S9NeovFclrZXi\ndxxImNW1WpLaRDHuruBmSe9JekbSk5IGV3PMkZKmRGU/ImnlaPvakh6Ntk+PpiVC0kGSXlNYVOnv\n0RXhZcDK0bZ7o/1OiX7PGZJGRNvaR/H8I/o3eFpS8+i9TSQ9pTBT74uSOgKY2ULgG0lbpfq9XQNQ\n6GkB/FE+D2A3YBkwIMX7jYEvk15XAGMJCegNoF20/UZgZJVzrlHlXGsSplnZMHrdOvrZCmgcPd8Z\neCR6PpwwRUvrpLJ/Iiwu1Ah4BhgMrAt8DPwuivd5YO/omGXA76PnlwNnpfg9XwOaV7N9IbAWMDlR\nR8B+wJPR87WBb4E/VHPsGknPLwKOj57/Ezgxei5gVWALwpxMiXq4GRiWiCHpPN2Bt4GVgRaE6Tm6\nRHWyBOiUVMaB0fPngQ7R817A80nnuwA4ttCfQ3/k7lEq09e7hmF34AvCqnDPV/N+G8KXarItgFuB\nXczsq2jbDsA+AGb2tKT5rKg3MNHMPo72WxBtbw3cI6kD4Sok+f/AM0n7QZjfaQ6ApAcITVVLgEoL\nk+ch6X6gH+GqarGZPRkdOxXYpWpQktYDvjWzn6uJuSmhXo6zeLr0HYCHot/ha0kTqjkOYBtJfwVW\nI8xVNj7a3h84KDregO8lHUxIFm9EF10rA1+tcMbw+44xs5+i2McAfQnJaLaZvZ30u7aPJlPcHng4\nOm/id0r4gjBXlmugPKG4vJDUhXBFsB3wkqQHkxLEcrsmPTfgS6AZ0I3lF0GqbUU9S7HPRYS/mveV\ntCFQmfTej9WcI7m86vo4krcnrwq5jOr/fw0k/rKvagnhSmwgYZK+5DJqM4owDfsMSYcAO9Zy/N1m\nVlsHfNU6TP5df0navhRoTriSm29mXVOcL1UdugbC+1BczkV9D7cAIyx00F9J9X0o8wh/Xf92KLAA\n2BO4VFLiS/Jl4I/RuXcFVq/mXK8B/SS1j/ZL7LMq4S9lgENrCb1n1F/QKCpvEjAF2FHS7yQ1BoYA\nE2s5T7LdSN1/YoTFnjaXdHq07WVgcNSXsjahKa46LYGvJK1EdEUSeR44FkBSY0mrRtv2U1hACklr\nKL7jbknSTQmTgH0krRxdfewTbasuQclCP8lsSftF55Wkzkn7rAPMSRG/awA8obh8OBKYY2aJZq6b\ngS0UVof7jZktBWYmOnIJX7BmZv8jJJWbJPUgtMXvKmkGoY/hK6o0lVlYHOkoYIyk6YT1sAGuICSn\nNwl9IIm/mI3l/3o24HVCf827wEdm9mh0VfV/wATCFOdvmNnYpGNIcT6iBNTBzP6bop4sapYaCuwk\n6RjgX4RFjd4F7gXeJEzFX9U5hCT6EvBe0vYRQH9JbxOufrYws/eAs4FnJL1F6B9qG+3/D+BtSfea\n2TTClc8UQr/ObWb2VjW/a/LrA4HDozqfCeyVtE9Plr/ycg2MT1/vioqk4cDaZnZ5Dfs0BZaa2VJJ\n2wE3mVm3fMVYX5J2IHReH1fH41qY2Q+SfkdIGttHSbZkJK6MzKxHoWNxueMJxRWVKFk8B+xoKT6c\nUYf6Q4Qr7MWEO4dWGCjYUEQd8a0JHdyXm9k9BQ6pziSdSLgZ4b5Cx+JyxxOKc865rPA+FOecc1nh\nCcU551xWeEJxzjmXFZ5QnHPOZYUnFOecc1nhCcU551xW/D+xKBVCe8dDPQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x76f12b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (1) = X(kg acetone/kg carbon) \n",
+ " (2)= Slope of isostere \n",
+ " (3)= Differential heat of adsorption(kJ/kg acetone) \n",
+ " (4)=deltaH_prime(vapour(kJ/kg carbon)) \n",
+ " (5)=deltaH(liquid(kJ/kg carbon)\n",
+ "(1) \t \t \t \t (2) \t \t \t \t (3) \t \t \t \t \t \t \t \t (4) \t \t \t \t \t \t (5) \n",
+ "0.05 \t \t \t 1.17 \t \t -644.67 \t \t \t \t \t -29.8 \t \t \t \t-2.25\n",
+ "0.1 \t \t \t 1.245 \t \t -685.995 \t \t \t \t \t -63.0 \t \t \t \t-7.9\n",
+ "0.15 \t \t \t 1.3 \t \t -716.3 \t \t \t \t \t -97.9 \t \t \t \t-15.25\n",
+ "0.2 \t \t \t 1.31 \t \t -721.81 \t \t \t \t \t -134.0 \t \t \t \t-23.8\n",
+ "0.25 \t \t \t 1.34 \t \t -738.34 \t \t \t \t \t -170.5 \t \t \t \t-32.75\n",
+ "0.3 \t \t \t 1.327 \t \t -731.177 \t \t \t \t \t -207.5 \t \t \t \t-42.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2: Page 596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.2\n",
+ "# Page: 596\n",
+ "\n",
+ "print'Illustration 11.2 - Page: 596\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#*****Data*****#\n",
+ "# x:kg carbon/kg soln\n",
+ "# y_star: Equilibrium colour, units/kg soln.\n",
+ "# X:adsorbate concentration, units/kg carbon\n",
+ "# Data = [x Y_star]\n",
+ "Data =numpy.array([[0, 9.6],[0.001, 8.6],[0.004 ,6.3],[0.008, 4.3],[0.02 ,1.7],[0.04, 0.7]]);\n",
+ "Yo = 9.6;# [units of colour/kg soln]\n",
+ "Y1 = 0.1*Yo;# [units of colour/kg soln]\n",
+ "Ls = 1000.0;# [kg soln]\n",
+ "#****************#\n",
+ "\n",
+ "\n",
+ "n = 1.66;# [slope of line]\n",
+ "# At X = 663, Y_star = 4.3\n",
+ "# From eqn. 11.5\n",
+ "X = 663;\n",
+ "Y_star = 4.3;\n",
+ "m = Y_star/X**n;\n",
+ "# Freundlich Equation:\n",
+ "def f76(X):\n",
+ " return m*X**n\n",
+ "X = numpy.arange(0,1000,1);\n",
+ "\n",
+ "plt.plot(X,f76(X));\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "title(\"Equilibium Data(on arithmetic scale)\");\n",
+ "plt.show()\n",
+ "# Single Stage Operation:\n",
+ "# Since fresh carbn is used:\n",
+ "Xo = 0;# [units/kg carbon]\n",
+ "# From scf(30):\n",
+ "X1 = 270;# [units/kg carbon]\n",
+ "Data2 =numpy.array([[Xo, Yo],[X1, Y1]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data2[:,0],Data2[:,1],label=\"Operating line curve\")\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Single stage operation\");\n",
+ "plt.show()\n",
+ "# From Eqn. 11.4:\n",
+ "Ss = Ls*((Yo-Y1)/(X1-Xo));# [kg carbon/kg soln]\n",
+ "print\"Quantity of fresh carbon recquired for single stage operation: \",Ss,\" kg carbon/1000 kg solution\\n\"\n",
+ "\n",
+ "# Two stage cross current operation:\n",
+ "# For the minimumamount of carbon:\n",
+ "X1 = 565;# [units/kg carbon]\n",
+ "Y1 = 3.30;# [units of colour/kg soln]\n",
+ "X2 = 270;# [units/kg carbon]\n",
+ "Y2 = 0.96;# [units of colour/kg soln]\n",
+ "Data3 = numpy.array([[Xo ,Yo],[X1 ,Y1]]);\n",
+ "Data4 = numpy.array([[0 ,Y1],[X2 ,Y2]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data3[:,0],Data3[:,1],label=\"First of two Cocurrent\")\n",
+ "plt.plot(Data4[:,0],Data4[:,1],label=\"Second of two Cocurrent\")\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Two stage Cross current operation\");\n",
+ "plt.show()\n",
+ "# From Eqn. 11.8:\n",
+ "Ss1 = Ls*(Yo-Y1)/(X1-Xo);# [kg]\n",
+ "Ss2 = Ls*(Y1-Y2)/(X2-Xo);# [kg]\n",
+ "Ss = Ss1+Ss2;# [kg]\n",
+ "print\"Quantity of fresh carbon recquired for two stage crosscurrent operation: \",Ss,\" kg carbon/1000 kg solution\\n\"\n",
+ "\n",
+ "# Two Stage counter current operation:\n",
+ "Yo = 9.6;\n",
+ "Y2 = 0.96;\n",
+ "# By trial and error:\n",
+ "XNpPlus1 = 0;\n",
+ "X1 = 675;\n",
+ "Data5 = numpy.array([[X1 ,Yo],[XNpPlus1 ,Y2]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data5[:,0],Data5[:,1],label=\"Two stage Counter Current\");\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Two stage Counter Current operation\");\n",
+ "# By eqn 11.14:\n",
+ "Ss = Ls*(Yo-Y2)/(X1-XNpPlus1);\n",
+ "print\"Quantity of fresh carbon recquired for two stage Counter Current operation: \",Ss,\" kg carbon/1000 kg solution\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.2 - Page: 596\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x76f16d8>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n+OKLOfHEEzn11FPp2bPnX/YvqJO8oOPXr1+f2bNnM27cOGrUqMFJJ53EqlWrALj++uspW7YstWvX\nZsiQIfzjH/8Iq/P9kksu4eOPP+aSSy7J3laqVCneffddVqxYQWpqKjVr1uTKK69kz549+b7vksDa\n1YOsLiIvYQbRe2bZM1zV+qoSMVjZ+vXrSU1NJSMjg1KlEiI3mwLYIHomXpT4QfRyG9RykN8hGBM3\nrF09yOoi8hImMZQvXd7vECIq0e5ANsYkj4RpSvK22ym7iTv2uTTxIumakowxxsSGJQZjEpC1qwdZ\nXUSeJQZjjDE5WB+DMcVkn0sTL6yPwRhjTFRYYkgin376Kccee2xUjh06x8KLL77I2WefHZVyjGPt\n6kFWF5FniSGCpkyZQosWLTj88MM58sgj+b//+z92797tWzylSpVi3bp12eudOnVizZo1USkrdLiM\nAQMGMGfOnKiUY4yJPksMETJu3DhGjRrFuHHj2LNnD19++SXp6el069aNgwcjP9FQZmZmWPtZ2/df\nZWRk+B1Csdn4QEFWF87ixZE7liWGCNizZw933nknjz32GN27dyclJYWGDRvy2muvsX79el544QXA\nTaX597//nX79+lG5cmVOOeWU7IHloOApKgOvHThwIFWqVGHq1KksWbKEdu3aUa1aNerWrcu1116b\nnYQC8xG0bNmSSpUqMWPGDNLS0nLMc9CoUSPGjRtHy5YtqVq1Kv369eOPP/7Ifv7BBx+kbt261KtX\nj+eee+4vZyD5yWuqzqeffpqmTZtSrVo1/vWvf+XYf9KkSRx33HFUr16dc8455y/Dkoey6UKN+aux\nY6FfvwgeUFXjbnFh/VV+2/32/vvva+nSpTUzM/Mvz1166aXav39/VVUdPXq0lilTRt944w3NyMjQ\nhx56SBs3bqwZGRmamZmpJ598st5zzz168OBBXbdunaampuqcOXNyvHbWrFmqqrp//35dtmyZLlq0\nSDMzM3X9+vXavHlznTBhQnbZIqI//PBD9vonn3yi9erVy15v1KiRnnbaabplyxbdsWOHNm/eXJ96\n6qns91SnTh399ttvdd++fTpgwAAtVapUjuOF6tKliz7//POqqjp58mTt2LFjjjh69uypu3fv1g0b\nNmjNmjX1gw8+UFXVt956S48++mhds2aNZmZm6r333qvt27fPs4z169drpUqV9JVXXtGMjAzdvn27\nrlix4i/l5xdD9+7ddefOnXrgwAFdsGCB1q9fP/v5HTt26GGHHaZbtmwp9N8iNz8+l5988knMy4xX\nyVwXWVmqN9+setxxqps3Z38Wi/0dHPczuBWF3BWZ8Yd0dNGaX7Zt28YRRxyR50ipderU4auvvspe\nb926NRdeeCEAI0aMYNy4cXzxxReUKVMme4pKIMcUld27dwegffv29OrVC3Czp5188snZx23YsCFX\nXnkl8+fPZ9iwYWHHft1111GnTh3ADRu+YsUKwE1Hetlll9G8eXMA7rrrLl566aWwj5vbqFGjqFy5\nMpUrV+aMM85g5cqVnH322Tz11FPccsstNGvWDHBTet5///1s3LjxL7PPhU4XClC9enWqV68edgyB\n6UKBHNOFdurUKcd0oYsWLSr038IYv2VmwtVXw8qVsGAB1KgRuWOXqMRQ1C/0SDniiCPYtm0bWVlZ\nf0kOW7ZsoWbNmtnr9erVy34sItSrV4+ffvoJESl0isrQ1wJ89913jBgxgmXLlrFv3z4yMjJo3bp1\nkWIPJAWAww47LHta0C1bttCmTZt8yy6q0HIqVKiQPSVoeno6w4YN44Ybbsix/+bNm/+SGGy60CBr\nVw9Kxrr4808YOBC2bYO5c6FSpcge3/oYIqBdu3aUK1eON954I8f2vXv38sEHH3DmmWdmb9u4cWP2\n46ysLDZt2sRRRx1F/fr1C5yiMq9Jcq6++mqOO+441q5dy+7du7nvvvvIysqKyHs68sgjc8Qa+jiS\nGjRowDPPPJPjff/++++0bdv2L/vadKHGwL590Lu3Sw7vvRf5pACWGCKiSpUqjB49mmuvvZY5c+Zw\n8OBB1q9fT9++falfvz4DBw7M3nfZsmW8+eabZGRkMGHCBMqXL0/btm059dRTC5yiUvO4umjv3r1U\nqlSJChUqsGbNGp588skcz9euXTvfL9L8BMrp27cvkydPZs2aNezbt4977rmnqNVSYBmBcv75z39y\n//338+233wKwe/duZsyYkefrbLrQILt2PyiZ6mLXLujeHWrVghkzoHyUZiOwxBAhN910E/fffz83\n3ngjVapUoW3btjRs2JB58+ZRpkwZwP1i7d27N6+++irVq1fnxRdfZObMmaSkpJCSklLgFJV5nTE8\n9NBDvPTSS1SuXJkrr7ySfv365djnzjvv5NJLL6VatWq8/vrreR4jVOjz55xzDtdddx1nnHEGTZs2\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7930c18>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantity of fresh carbon recquired for single stage operation: 32.0 kg carbon/1000 kg solution\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nEwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7938c88>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantity of fresh carbon recquired for two stage crosscurrent operation: 19.8171091445 kg carbon/1000 kg solution\n",
+ "\n",
+ "Quantity of fresh carbon recquired for two stage Counter Current operation: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 12.8 kg carbon/1000 kg solution\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7d9ad68>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.3: Page 602"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.3\n",
+ "# Page: 602\n",
+ "\n",
+ "print'Illustration 11.3 - Page: 602\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#***Data***#\n",
+ "T = 1.0; #[m]\n",
+ "di = 0.203;# [m]\n",
+ "n = 1;# [for one impeller]\n",
+ "Density_S = 2300.0;# [kg/cubic m]\n",
+ "Density_p = 2300.0;# [kg/cubic m]\n",
+ "C = 0.150;# [m]\n",
+ "S = 50.0;# [kg]\n",
+ "g = 9.807;# [m/s]\n",
+ "dp = 8*10**(-4);# [m]\n",
+ "N = 8.33; #[r/s]\n",
+ "Temp=25;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# Assume:\n",
+ "Po = 5;\n",
+ "viscosity_L = 8.94*10**(-4);# [kg/m.s]\n",
+ "Density_L = 998.0;# [kg/cubic m]\n",
+ "delta_Density = Density_S-Density_L;# [kg/cubic m]\n",
+ "# By Eqn. 11.23:\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_L);# [m/s]\n",
+ "# By defn. of power number:\n",
+ "# P = Po*Density_m*di**5*Ni**3\n",
+ "# vm = math.pi*T**2*(Z+C)/4\n",
+ "# Solid Volume = S/Density_p;\n",
+ "# If these are substituted in Eqn. 11.22\n",
+ "def f(Z):\n",
+ " return (((Z+C)**(1.3/3))*math.exp(4.35*Z/(T-0.1)))-((1.0839*Po*di**(11.0/2)*N**3*Density_p**(2.0/3))/(g*Vts*T**(7.0/6)*S**(2.0/3)))\n",
+ "Z = fsolve(f,7);# [m]\n",
+ "phi_Sm = 4*S/(math.pi*T**2*(Z+C)*Density_p);\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_L);# [kg/cubic m]\n",
+ "phi_Ss = 0.6;\n",
+ "viscosity_m = viscosity_L/(1-(phi_Sm/phi_Ss))**1.8;# [kg/m.s]\n",
+ "Re = di**2*N*Density_m/viscosity_m;\n",
+ "P = Po*Density_m*N**3*di**5;# [W]\n",
+ "print \"Agitator Power required: \",round(P),\" W\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.3 - Page: 602\n",
+ "\n",
+ "\n",
+ "Agitator Power required: 1113.0 W\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.4: Page 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.4\n",
+ "# Page: 604\n",
+ "\n",
+ "print'Illustration 11.4 - Page: 604\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "#****Data*****#\n",
+ "# b: kerosene c:water\n",
+ "# c:kg water/cubic m liquid\n",
+ "Density_l = 783;# [kg/cubic m]\n",
+ "viscosity_l = 1.7*10**(-3);# [kg/m.s]\n",
+ "Mb = 200;# [kg/kmol]\n",
+ "Density_p = 881;# [kg/cubic m]\n",
+ "m = 0.522;# [(kg water/cubic m kerosene)/(kg water/kg gel)]\n",
+ "Xo = 0;# [kg H2O/kg gel]\n",
+ "#**************#\n",
+ "\n",
+ "# Solution (a)\n",
+ "co = Density_l*4*10**(-5);# [kg water/cubic m]\n",
+ "c1 = Density_l*5*10**(-6);# [kg water/cubic m]\n",
+ "# For Ss minimum:\n",
+ "X1 = c1/m;# [kg H2O/kg gel]\n",
+ "# By Water Balance:\n",
+ "SsminByVl = (co-c1)/(X1-Xo);# [kg gel/cubic m kerosene]\n",
+ "print\"Minimum Solid/Liquid ratio used:\",SsminByVl,\" kg gel/cubic m kerosene\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "# Basis: 1 batch,1.7 cubic m kerosene\n",
+ "Vl = 1.7;# [cubic m]\n",
+ "Ss = 16*1.7;# [kg gel]\n",
+ "V = Ss/Density_p;# [Xol. solid, cubic m]\n",
+ "Vt = 1.7+V;# [Total batch volume, cubic m]\n",
+ "# Take Z = T\n",
+ "T = (Vt*4/math.pi)**(1.0/3);# [m]\n",
+ "# To allow for the adequate free board:\n",
+ "h = 1.75;# [Vessel height,m]\n",
+ "# Use a six-blade disk impeller.\n",
+ "# From Fig. 11.26:\n",
+ "# dp corresponding to 14 mesh:\n",
+ "dp = 1.4/1000;# [m]\n",
+ "TBydi1 = 2.0;\n",
+ "Value1 = (Density_p-Density_l)/Density_l;\n",
+ "# From Fig. 11.26:\n",
+ "TBydi2 = 4.4;\n",
+ "TBydiAv = (TBydi1+TBydi2)/2.0;\n",
+ "di = T/TBydiAv;# [m]\n",
+ "fr = 0.6;# [settled volume fraction of solids]\n",
+ "Vs = V/fr;# [cubic m]\n",
+ "depth = Vs/((math.pi*(T**2))/4);# [m]\n",
+ "# The depth of settled solid is negligible.\n",
+ "# Locate the turbine 150mm from the bottom of the tank.\n",
+ "C = 0.150;# [m]\n",
+ "\n",
+ "# Power:\n",
+ "# Use the sufficient agitator power to lift the solids to 0.6 m above the bottom of the vessel.\n",
+ "Z_prime = 0.6-C;# [m]\n",
+ "# The properties of the slurry in 0.6 m above the bottom of the vessel.\n",
+ "Vm = 0.6*math.pi*T**2.0/4;# [square m]\n",
+ "phi_Sm = V/Vm;# [vol fraction solid]\n",
+ "# From Eqn. 11.24:\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_l);# [kg/cubic m]\n",
+ "# From Eqn. 11.25:\n",
+ "phi_Ss = 0.8;\n",
+ "viscosity_m = viscosity_l/(1-(phi_Sm/phi_Ss))**1.8;# [kg/m.s]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "# From Eqn. 11.23:\n",
+ "delta_Density = Density_p-Density_l;# [kg/cubic m]\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_l);# [m/s]\n",
+ "# From Eqn. 11.22:\n",
+ "n = 1.0;\n",
+ "P = (g*n*Density_m*Vm*Vts)*(phi_Sm**(2.0/3))*(TBydiAv**(1.0/2))*math.exp((4.35*Z_prime/T)-0.1);# [W]\n",
+ "# Assume:\n",
+ "Po = 5.0;\n",
+ "N = (P/(Po*Density_m*di**5))**(1.0/3);# [r/s]\n",
+ "# Use:\n",
+ "N1 = 2.0;# [r/s]\n",
+ "Re = di**2.0*N1*Density_m/viscosity_m;\n",
+ "# From fig. 6.5: Po = 5\n",
+ "# Hence our assumption was right.\n",
+ "print\"Power delivered to the slurry: \",round((P*(N1/N)**3),2),\" W\\n\",\n",
+ "print\"Power to the motor will be larger, depending on the efficiency of the motor and speed reducer.\\n\"\n",
+ "\n",
+ "# Mass transfer: \n",
+ "# From Eqn. 11.28:\n",
+ "Rep = (dp**(4.0/3))*(P/Vl)**(1.0/3)*(Density_l**(2.0/3)/viscosity_l);\n",
+ "# From Eqn. 2.44:\n",
+ "Temp = 298;# [K]\n",
+ "phi = 1.0;\n",
+ "Va = 0.0756;# [Chapter 2 notation]\n",
+ "Dl = ((117.3*10**(-18))*((phi*Mb)**0.5)*Temp)/(viscosity_l*(Va**(0.6)));\n",
+ "ScL = viscosity_l/(Density_l*Dl);\n",
+ "if dp<(2.0/1000):\n",
+ " # From Eqn. 11.29:\n",
+ " ShL = 2+(0.47*Rep**0.62*(1/TBydiAv**0.17)*ScL**0.36);\n",
+ "else:\n",
+ " # From Eqn. 11.30:\n",
+ " ShL = 0.222*Rep**(3.0/4)*ScL**(1.0/3);\n",
+ "\n",
+ "kL = ShL*Dl/dp;# [m/s]\n",
+ "apS = (math.pi*dp**2)/(math.pi*dp**3*Density_p/6.0);\n",
+ "apL = apS*16;# [square m/cubic m liquid]\n",
+ "Ratio = Ss/(Vl*m);\n",
+ "# From Eqn. 11.40:\n",
+ "thetha = math.log((co/c1)/(1+(1/Ratio)-(1/Ratio)*(co/c1)))/((1+(1/Ratio))*kL*apL);\n",
+ "print\"Contacting Time required: \",round(thetha/60,2),\" min\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.4 - Page: 604\n",
+ "\n",
+ "\n",
+ "Minimum Solid/Liquid ratio used: 3.654 kg gel/cubic m kerosene\n",
+ "\n",
+ "\n",
+ "Power delivered to the slurry: 350.05 W\n",
+ "Power to the motor will be larger, depending on the efficiency of the motor and speed reducer.\n",
+ "\n",
+ "Contacting Time required: 8.3 min\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5: Page 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.5\n",
+ "# Page: 606\n",
+ "\n",
+ "print'Illustration 11.5 - Page: 606\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "import numpy.linalg as lin\n",
+ "#*****Data******#\n",
+ "Vl = 1.1*10**(-4);# [cubic m/s]\n",
+ "Ss = 0.0012;# [kg/s]\n",
+ "Density_p = 1120;# [kg/cubic m]\n",
+ "dp = 8*10**(-4);# [m]\n",
+ "Ds = 2*10**(-11);# [square m/s]\n",
+ "Dl = 7.3*10**(-10);# [square m/s]\n",
+ "m = 0.2;# [(kg Cu2+/cubic m soln)/(kg Cu2+/kg resin)]\n",
+ "T = 1;# [m]\n",
+ "#********************#\n",
+ "\n",
+ "Z = T;# [m]\n",
+ "# The particles will be lifted to the top of the vessel.\n",
+ "Z_prime = 0.5;# [m]\n",
+ "viscosity_l = 8.94*10**(-4);# [kg/m.s]\n",
+ "Density_l = 998;# [kg/cubic m]\n",
+ "delta_Density = Density_p-Density_l;# [kg/cubic m]\n",
+ "g = 9.80;# [m/square s]\n",
+ "# From Eqn. 11.23:\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_l);\n",
+ "Vm = math.pi*T**2*Z/4.0;# [cubic m]\n",
+ "Vs = Ss/Density_p;# [cubic m/s]\n",
+ "phi_Sm = Vs/(Vs+Vl);# [vol fraction]\n",
+ "# From eqn. 11.24:\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_l);# [kg/cubic m]\n",
+ "# From Eqn. 11.22:\n",
+ "n = 1.0;\n",
+ "di = 0.3;# [m]\n",
+ "P = (g*n*Density_m*Vm*Vts)*(phi_Sm**(2.0/3))*((T/di)**(1.0/2))*math.exp((4.35*Z_prime/T)-0.1);# [W]\n",
+ "# To estimate the impeller speed:\n",
+ "# Assume:\n",
+ "Po = 5;\n",
+ "N = (P/(Po*Density_m*di**5))**(1.0/3);# [r/s]\n",
+ "Re = di**2*N*Density_m/viscosity_l;\n",
+ "# From fig. 6.5: Assumption of Po was correct.\n",
+ "print\"Speed of the impeller:\",round(N,2),\" r/s\\n\"\n",
+ "vT = (math.pi/4.0)*T**2*Z;# [cubic m]\n",
+ "vL = vT*(1-phi_Sm);\n",
+ "# From Eqn. 11.28:\n",
+ "Rep = (dp**(4.0/3))*(P/vL)**(1.0/3)*(Density_l**(2.0/3)/viscosity_l);\n",
+ "ScL = viscosity_l/(Density_l*Dl);\n",
+ "if dp<(2.0/1000):\n",
+ " # From Eqn. 11.29:\n",
+ " ShL = 2+(0.47*Rep**0.62*((di/T)**0.17)*ScL**0.36);\n",
+ "else:\n",
+ " # From Eqn. 11.30:\n",
+ " ShL = 0.222*Rep**(3.0/4)*ScL**(1.0/3);\n",
+ "\n",
+ "ShL = 130.3;# Value wrong in book\n",
+ "kL = ShL*Dl/dp;# [m/s]\n",
+ "# Since the dispersion is uniform throughout the vessel, the residence time for both liquid and solid is same.\n",
+ "thetha = vL*(1-phi_Sm)/Vl;# [s]\n",
+ "# From Fig. 11.27:\n",
+ "abcissa = m*kL*dp/(2*Ds*Density_p);\n",
+ "Parameter = 2*m*kL*thetha/(dp*Density_p);\n",
+ "co = 100*Density_l/10.0**6;# [kg/cubic m]\n",
+ "EMS = 0.63;\n",
+ "Xo = 0;\n",
+ "# From Eqn. 11.44:\n",
+ "# (1): X1-(EMS/m)*c1 = 0\n",
+ "# Solute balance:\n",
+ "# (2): (Ss*X1)+(vL*c1) = (vL*co)+(Xo*Ss)\n",
+ "a = [[1 ,-(EMS/m)],[Ss ,Vl]];\n",
+ "b = [0,(Vl*co)+(Xo*Ss)];\n",
+ "soln =lin.solve(a,b);\n",
+ "X1 = soln[0];\n",
+ "c1 = soln[1];\n",
+ "print\"Effluent Cu2+ conc. \",round(c1*10**(6)/Density_l,2),\" ppm\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.5 - Page: 606\n",
+ "\n",
+ "\n",
+ "Speed of the impeller: 2.71 r/s\n",
+ "\n",
+ "Effluent Cu2+ conc. 2.83 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.6: Page 616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.6\n",
+ "# Page: 616\n",
+ "\n",
+ "print'Illustration 11.6 - Page: 616\\n\\n'\n",
+ "from scipy.optimize import fsolve\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data*****#\n",
+ "# a: air b:silica\n",
+ "Density_a = 1.181;# [kg/cubic m]\n",
+ "Density_b = 671.2;# [kg/cubic m]\n",
+ "kSap = 0.965;# [kg H2O/square m s]\n",
+ "Y1 = 0.005;# [kg H2O/kg dry air]\n",
+ "Y2 = 0.0001;# [kg H2O/kg dry air]\n",
+ "Ss = 0.680;# [square m/s]\n",
+ "Gs = 1.36;# [kg/square m.s]\n",
+ "X2 = 0;# [kg H2O/kg dry air]\n",
+ "# Equilibrium function:\n",
+ "m = 0.0185;\n",
+ "#************#\n",
+ "X1 = (Gs*(Y1-Y2)/Ss)+X2;# [kg H2O/kg dry air]\n",
+ "def f77(X):\n",
+ " return m*X \n",
+ "Y2_star = f77(X2);# [kg H2O/kg dry gel]\n",
+ "Y1_star = f77(X1);# [kg H2O/kg dry gel]\n",
+ "deltaY = ((Y1-Y1_star)-(Y2-Y2_star))/math.log((Y1-Y1_star)/(Y2-Y2_star));\n",
+ "NtoG = (Y1-Y2)/deltaY;\n",
+ "# If the fixed bed data are to be used for estimating the mass transfer coeffecient for a moving bed of solids\n",
+ "va = Ss/Density_b;# [m/s]\n",
+ "vb = Gs/Density_a;# [m/s]\n",
+ "rel_v = va+vb;# [relative velocity,m/s]\n",
+ "G_prime = rel_v*Density_a;# [relative mass velocity of air,kg/square m s]\n",
+ "HtG = Gs/(31.6*G_prime**0.55);# [m]\n",
+ "HtS = Ss/kSap;# [m]\n",
+ "# By Eqn. 11.52:\n",
+ "HtoG = HtG+(m*Gs/Ss)*HtS;# [m]\n",
+ "Z = NtoG*HtoG;# [m]\n",
+ "print\"Height of continuous countercurrent isothermal absorber for drying: \",round(Z,4),\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.6 - Page: 616\n",
+ "\n",
+ "\n",
+ "Height of continuous countercurrent isothermal absorber for drying: 0.2511 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.7: Page 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.7\n",
+ "# Page: 619\n",
+ "\n",
+ "print'Illustration 11.7 - Page: 619\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import numpy.linalg as lin\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#*****Data*****#\n",
+ "# a: C2H4 b:C3H8\n",
+ "# The equlibrium curve is plotted in Fig.11.33 (Pg 620)\n",
+ "# C3H8 is more strongly adsorbed component and composition in the gas and adsorbate are expressed as weight fraction C3H8.\n",
+ "Ma = 28;# [kg/kmol]\n",
+ "Mb = 44.1;# [kg/kmol]\n",
+ "xaF = 0.6;# [mole fraction]\n",
+ "xbF = 0.4;# [mole fraction]\n",
+ "xa1 = 0.05;# [mole fraction]\n",
+ "xa2 = 0.95;# [mole fraction]\n",
+ "#***************#\n",
+ "\n",
+ "xF = xbF*Mb/((xbF*Mb)+(xaF*Ma));# [wt. fraction C3H8]\n",
+ "xb1 = 1-xa1;# [mole fraction]\n",
+ "x1 = xb1*Mb/((xb1*Mb)+xa1*Ma);# [wt. fraction C3H8]\n",
+ "xb2 = 1-xa2;# [mole fraction]\n",
+ "x2 = xb2*Mb/((xb2*Mb)+(xa2*Ma));# [wt. fraction C3H8]\n",
+ "# Basis: 100 kg feed gas\n",
+ "F = 100.0;# [kg]\n",
+ "# (1): R2+PE = F [From Eqn. 11.63]\n",
+ "# (2): (R2*x2)+(PE*x1) = (F*xF) [From Eqn. 11.64]\n",
+ "# Solving simultaneously:\n",
+ "a = [[1, 1],[x2 ,x1]];\n",
+ "b = [F,(F*xF)];\n",
+ "soln = lin.solve(a,b);\n",
+ "R2 = soln[0];# [kg]\n",
+ "PE = soln[1];# [kg]\n",
+ "# Point F at xF and point E1 at x1 are located on the diagram.\n",
+ "# From the diagram:\n",
+ "N1 = 4.57;# [kg carbon/kg adsorbate]\n",
+ "# The minimum reflux ratio is found as it is for the extraction.\n",
+ "delta_Em = 5.80;\n",
+ "Ratio = (delta_Em/N1)-1;# [kg reflux gas/kg product]\n",
+ "R1_m = Ratio*PE;# [kg]\n",
+ "E1_m = R1_m+PE;# [kg]\n",
+ "B_m = N1*E1_m;# [kg carbon/100 kg feed]\n",
+ "Ratio1 = 2*Ratio;\n",
+ "# From Eqn. 11.58:\n",
+ "N_deltaE = (Ratio1+1.0)*N1;# [kg carbon/kg adsorbate]\n",
+ "# Point deltaE is located on the diagram:\n",
+ "R1 = Ratio1*PE;# [kg]\n",
+ "E1 = R1+PE;# [kg]\n",
+ "B = N1*E1;# [kg]\n",
+ "N_deltaR = -(B/R2);# [kg carbon/kg adsorbate]\n",
+ "# Random lines such as the delta_RK are drawn from detaR, and the intersection of equilibrium curves are projected downward in the manner shown to provide the adsorption section operating curve.\n",
+ "# Similarly random lines such as delta_EJ are drawn from deltaE, and the intersections are projected downwards to provide the enriching section operating curve.\n",
+ "# Data = [x x_star]\n",
+ "Data = numpy.array([[0.967 ,0.825],[0.90, 0.710],[0.80 ,0.60],[0.70, 0.50],[0.60 ,0.43],[0.512 ,0.39],[0.40 ,0.193],[0.30, 0.090],[0.20, 0.041],[0.0763, 0.003]]);\n",
+ "Val = zeros(10);\n",
+ "for i in range(0,10):\n",
+ " Val[i] = 1/((Data[i,0])-Data[i,1]);\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x\");\n",
+ "plt.ylabel(\"1 / (x-x*)\");\n",
+ "plt.title(\"Graphical Integraion\");\n",
+ "# The area under the curve between x1 & xF, for the enriching section:\n",
+ "Area1 = 2.65;\n",
+ "# The area under the curve between xF & x2, for the adsorption section:\n",
+ "Area2 = 2.67;\n",
+ "r = Ma/Mb;\n",
+ "# From Eqn.11.66:\n",
+ "# For the enriching section:\n",
+ "NtoG1 = Area1-math.log((1+(r-1)*x1)/(1+(r-1)*xF));\n",
+ "# For the adsortion section:\n",
+ "NtoG2 = Area2-math.log((1+(r-1)*x1)/(1+(r-1)*xF));\n",
+ "NtoG = NtoG1+NtoG2;\n",
+ "print\"Number of transfer units: \",NtoG"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.7 - Page: 619\n",
+ "\n",
+ "\n",
+ "Number of transfer units: 5.77763695068\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7dc14a8>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.8: Page 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.8\n",
+ "# Page: 627\n",
+ "\n",
+ "print'Illustration 11.8 - Page: 627\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#******Data******#\n",
+ "rate = 0.1;# [kg/s]\n",
+ "conc = 3.0;# [kg vapour/100cubic m]\n",
+ "Density_p = 720.0;# [kg/cubic m]\n",
+ "Density_bed = 480.0;# [kg/cubic m]\n",
+ "capablity = 0.45;# [kg vapour/kg carbon]\n",
+ "dp = 0.0028;# [m]\n",
+ "time = 3.0;# [h]\n",
+ "#********************#\n",
+ "\n",
+ "Vap_adsorbed = time*3600.0*rate;# [kg]\n",
+ "C_required = Vap_adsorbed*1.0/capablity;\n",
+ "# Two beds will be needed: one adsorbing and another regenerated.\n",
+ "totC_required = 2*C_required;# [kg]\n",
+ "print\"Amount of carbon required: \",totC_required,\" kg\\n\",\n",
+ "Vol = (C_required/Density_bed);\n",
+ "# Assume:\n",
+ "Z = 0.5;# [m]\n",
+ "Area = Vol/Z;# [square m]\n",
+ "# From Eqn. 6.66:\n",
+ "T = 35.0;# [OC]\n",
+ "viscosity_air = 1.82*10**(-5);# [kg/m.s]\n",
+ "Density_air = (29/22.41)*(273.0/(T+273));\n",
+ "e = 1-(Density_bed/Density_p);\n",
+ "G = rate*(100.0/conc)*(Density_air/(Area));# [kg/square m.s]\n",
+ "Re = dp*G/viscosity_air;\n",
+ "Z = 0.5;# [m]\n",
+ "def f78(delta_p):\n",
+ " return ((delta_p/Z)*(e**3*dp*Density_air)/((1-e)*G**2))-(150*(1-e)/Re)-1.75\n",
+ "delta_p = fsolve(f78,7);\n",
+ "print\"The pressure drop is:\",round(delta_p,2),\" N/square m\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.8 - Page: 627\n",
+ "\n",
+ "\n",
+ "Amount of caron required: 4800.0 kg\n",
+ "The pressure drop is: 1413.31 N/square m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.9: Page 636"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.9\n",
+ "# Page: 636\n",
+ "\n",
+ "print'Illustration 11.9 - Page: 636\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data******#\n",
+ "Yo = 0.00267;# [kg H2O/kg dry air]\n",
+ "Yb = 0.0001;# [kg H2O/kg dry air]\n",
+ "Ye = 0.024;# [kg H2O/kg dry air]\n",
+ "Z = 0.61;# [m]\n",
+ "G_prime = 0.1295;# [kg/square m.s]\n",
+ "#******************#\n",
+ "\n",
+ "# The equilicrium data is plotted in Fig. 11.45 (Pg 637)\n",
+ "# The gel is initially \"dry\" and the effluent air initially of so low a humidity asto be substantially dry, so that the operating line passes through the origin of the figure\n",
+ "# The operating line is then drawn to intersect the equilibrium curve.\n",
+ "# Data = [Y[kg H2O/kg dry air] Y_star[kg H2O/kg dry air]]\n",
+ "Data =numpy.array([[0.0001, 0.00003],[0.0002, 0.00007],[0.0004 ,0.00016],[0.0006, 0.00027],[0.0008, 0.00041],[0.0010, 0.00057],[0.0012 ,0.000765],[0.0014, 0.000995],[0.0016, 0.00123],[0.0018 ,0.00148],[0.0020 ,0.00175],[0.0022 ,0.00203],[0.0024 ,0.00230]])\n",
+ "Val1 = zeros(13);\n",
+ "# Val1 = [1/(Y-Y_star)]\n",
+ "for i in range(0,13):\n",
+ " Val1[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "# Graphical Integration:\n",
+ "plt.plot(Data[:,0],Val1);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"Y(kg H20 / kg dry air)\");\n",
+ "plt.ylabel(\"1 / (Y-Y_star)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area under The curve between Y = Yb and Y = Y:\n",
+ "Area = [0 ,0.100 ,2.219 ,2.930 ,3.487 ,3.976 ,4.438 ,4.915, 5.432, 6.015, 6.728 ,7.716 ,9.304];\n",
+ "# The total number of transfer unit corresponding to adsorption zone:\n",
+ "NtoG = 9.304;\n",
+ "Val2 = zeros(13);\n",
+ "Val3 = zeros(13);\n",
+ "# Val2 = [(w-wb)/wo]\n",
+ "# Val3 = [Y/Yo]\n",
+ "for i in range(0,13):\n",
+ " Val2[i] = Area[i]/NtoG;\n",
+ " Val3[i] = Data[i,0]/Yo;\n",
+ "\n",
+ "# Eqn. 11.74 can be arranged as follows:\n",
+ "# f = integrate((1-(Y/Yo)),(w-wb)/wa,0,1)\n",
+ "\n",
+ "plt.plot(Val2,Val3);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"(w-wb) / wo\");\n",
+ "plt.ylabel(\"Y / Yo\");\n",
+ "plt.title(\"Break through curve\");\n",
+ "plt.show()\n",
+ "# From area above the curve of scf(2):\n",
+ "f = 0.530;\n",
+ "\n",
+ "Gs = G_prime;# [kg/square m.s]\n",
+ "# From Illustration: 11.6\n",
+ "kYap = 31.6*G_prime**0.55;# [kg H2O/cubic m s delta_Y]\n",
+ "kSap = 0.965;# [kg H2O/cubic m s delta_X]\n",
+ "# From Fig. 11.48:\n",
+ "Xt = 0.0858;# [kg H2O/kg gel]\n",
+ "# From Eqn. 11.76:\n",
+ "Ss = Yo*Gs/Xt;# [kg/square m.s]\n",
+ "m = 0.0185;# [average slope of equilibrium curve]\n",
+ "# From Eqn. 11.51 & Eqn. 11.52:\n",
+ "HtG = Gs/kYap;# [m]\n",
+ "HtS = Ss/kSap;# [m]\n",
+ "HtoG = HtG+(m*Gs/Ss)*HtS;# [m]\n",
+ "# From Eqn. 11.79:\n",
+ "Za = NtoG*HtoG;# [m]\n",
+ "# From Eqn. 11.74:\n",
+ "Degree = (Z-(f*Za))/Z;\n",
+ "Density_bed = 671.2;# [Illustration 11.6, kg/cubic m]\n",
+ "mass_gel = Z*Density_bed;# [kg/square m]\n",
+ "# At saturation point the gel contins:\n",
+ "Y1 = mass_gel*Degree*Xt;# [kg H2O/square m cross section]\n",
+ "# The air introduces:\n",
+ "Y2 = Gs*Yo;# [kg/square m s]\n",
+ "print\"Time to reach breakpoint is: \",round((Y1/(Y2*3600)),4),\" h\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.9 - Page: 636\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecK7j/DypUxCdPIYESAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7d96080>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x781dda0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time to reach breakpoint is: 24.7778 h\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.10: Page 640"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.10\n",
+ "# Page: 640\n",
+ "\n",
+ "print'Illustration 11.10 - Page: 640\\n\\n'\n",
+ "\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data******#\n",
+ "# a:N2 b:H2O\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "Ma = 29;# [kg/kmol]\n",
+ "Z = 0.268;# [m]\n",
+ "Xo_solid = 0.01;# [kg H20/kg solid]\n",
+ "Density_bed = 712.8;# [kg/cubic m]\n",
+ "T = 28.3;# [OC]\n",
+ "P = 593;# [kN/square m]\n",
+ "Gs = 4052;# [kg/square m.h]\n",
+ "Xo_gas = 1440*10**(-6);# [mole fraction]\n",
+ "#********************#\n",
+ "\n",
+ "# Yo_star is in equilibrium with Xo:\n",
+ "Xo = 0;# [kg H20/kg solid]\n",
+ "Yo_star = 0;# [kg H20/kg N2]\n",
+ "thetha_t = 12.8;# [h]\n",
+ "thetha_b = 9;# [h]\n",
+ "# The breakthrough data are plotted in the manner of Fig. 11.47 (Pg 639) and thetha_s is dtermined:\n",
+ "thetha_s = 10.9;# [h]\n",
+ "Xt = 0.21;# [kg H20/kg solid]\n",
+ "# From Eqn. 11.81:\n",
+ "LUB = (Z/thetha_s)*(thetha_s-thetha_b);\n",
+ "# For thetha_b = 15 h\n",
+ "thetha_b = 15;# [h]\n",
+ "Yo = (Xo_gas/(1-Xo_gas))*(Mb/Ma);# [kg H20/kg N2]\n",
+ "# From Eq. 11.82:\n",
+ "Zs = Gs*(Yo-Yo_star)*thetha_b/(Density_bed*(Xt-Xo_solid));# [m]\n",
+ "# From Eqn. 11.85:\n",
+ "Z = LUB+Zs;\n",
+ "print\"Height of adsorbent column:\",round(Z,4),\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.10 - Page: 640\n",
+ "\n",
+ "\n",
+ "Height of adsorbent column: 0.0467 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.11: Page 654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.11\n",
+ "# Page: 645\n",
+ "\n",
+ "print'Illustration 11.11 - Page: 645\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#****Data****#\n",
+ "# For collection of Cu2+:\n",
+ "V = 37850.0;# [l/h]\n",
+ "c1 = 20.0;# [meq Cu2+/l]\n",
+ "c2 = 0.01*c1;# [meq Cu2+/l]\n",
+ "Mass_rate = 2.0;# [meq Cu2+/g resin h (meq Cu2+/l)]\n",
+ "exchanged = V*(c1-c2);# [meq/h]\n",
+ "X2 = 0.30;# [meq Cu2+/g]\n",
+ "#************#/\n",
+ "\n",
+ "# The point(c2,X2) is plotted in Fig. 11.48(a), Pg 645:\n",
+ "# For the minimum resin/solution ratio and an infinitely tall tower, the operating line pass though point P.\n",
+ "X = 4.9;# [meq Cu2+/g]\n",
+ "MinRate = exchanged/(X-X2);# [g/h]\n",
+ "Rate = 1.2*MinRate;# [g/h]\n",
+ "# Copper balance:\n",
+ "X1 = (exchanged/Rate)+X2;# [meq Cu2+/g resin]\n",
+ "# The point (c1,x1) is ploted in Fig. 11.48(a) and operating line drawn can be straight line at this low conc.\n",
+ "# Adapting Eqn. 11.48 and rearranging:\n",
+ "# S*Z*Density_s = (V/Mass_rate)*integrate(1/(c-c_star),c,c1,c2)\n",
+ "# Mass_rate = KL_prime*ap/Density_s\n",
+ "# From the equilibrium curve:\n",
+ "# Data = [c c_star]\n",
+ "Data = numpy.array([[20 ,2.4],[16 ,1.9],[12, 0.5],[8 ,0.25],[4 ,0.10],[2 ,0.05],[1 ,0.02],[0.2, 0]]);\n",
+ "Val = zeros(8);\n",
+ "for i in range(0,8):\n",
+ " Val[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"c\");\n",
+ "plt.ylabel(\"1 / (c-c*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "# From Graphical Integration:\n",
+ "Area = 5.72;\n",
+ "# holdup = S*Z*Density_s\n",
+ "holdup = V*Area/(Mass_rate);\n",
+ "print\"Resin Holdup: \",holdup,\"g\\n\"\n",
+ "\n",
+ "# Regeneration of resin:\n",
+ "# For 70% utilisation of 2N acid, feed must contain:\n",
+ "V = exchanged;\n",
+ "F = V/(0.70*2000);# [l/h]\n",
+ "c1 = 0;# [meq Cu2+/l]\n",
+ "c2 = V*1.0/F;# [meq Cu2+/l]\n",
+ "X1 = 0.30;# [meq Cu2+/g resin]\n",
+ "X2 = 4.12;# [meq cu2+/g resin]\n",
+ "# The points (c1,X1) and (c2,X2) are plotted on Fig 11.48(b), Pg 645\n",
+ "c1_star = 120.0;# [meq Cu2+/l]\n",
+ "c2_star = 1700.0;# [meq Cu2+/l]\n",
+ "logmean = ((c1_star-c1)-(c2_star-c2))/math.log((c1_star-c1)/(c2_star-c2));\n",
+ "Mass_rate = 0.018;# [meq Cu2+/g resin h (meq Cu2+/l)]\n",
+ "# Substituting in equation:\n",
+ "def f79(holdup):\n",
+ " return (V*(c2-c1))-(Mass_rate*holdup*logmean)\n",
+ "holdup = fsolve(f79,7);\n",
+ "print\"Resin Holdup in the regeneration Tower is \",round(holdup,3),\" g\\n\"\n",
+ "#the answers are in textbook is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.11 - Page: 645\n",
+ "\n",
+ "\n",
+ "Resin Holdup: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 108251.0 g\n",
+ "\n",
+ "Resin Holdup in the regeneration Tower is 296720391.501 g\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x783b160>"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter11_2.ipynb b/Mass_-_Transfer_Operations/Chapter11_2.ipynb
new file mode 100755
index 00000000..429b975a
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter11_2.ipynb
@@ -0,0 +1,1235 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b2d866884e32978f30135a4e666314d83655be533eae1227e5f3d0fa8ae8f5d8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Absorption And Ion Exchange"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.1: Page 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.1\n",
+ "# Page: 575\n",
+ "\n",
+ "print'Illustration 11.1 - Page: 575\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#*****Data*****#\n",
+ "Temp = 30.0;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# From Fig. 11.5 (Pg 572)\n",
+ "# The isosteres for various concentrations are straight and their slopes are measured with the help of milimeter rule.\n",
+ "# Data = [X(kg acetone/kg carbon) lambda(slope of isostere)]\n",
+ "Data = numpy.array([[0.05 ,1.170],[0.10, 1.245],[0.15 ,1.3],[0.20 ,1.310],[0.25 ,1.340],[0.30 ,1.327]]);# [kg acetone/kg carbon]\n",
+ "lambdar = 551.0;# [reference at 30 OC,kJ/kg]\n",
+ "Val = numpy.zeros(shape=(6,5));\n",
+ "for i in range(0,6):\n",
+ " Val[i,0] = Data[i,0];# [kg acetone/kg carbon]\n",
+ " Val[i,1] = Data[i,1];# [slope of isostere]\n",
+ " Val[i,2] = -Data[i,1]*lambdar;# [kJ/kg acetone]\n",
+ "\n",
+ "\n",
+ "plt.plot(Val[:,0],Val[:,2])\n",
+ "plt.grid();\n",
+ "xlabel(\"X (kg carbon / kg acetone)\");\n",
+ "ylabel(\"Differential heat of adsorption (kJ / kg acetone)\");\n",
+ "title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area: The area under the curve between X = 0 to X = X\n",
+ "# Corresponding to Data(:,1):\n",
+ "Area = numpy.array([-29.8 ,-63.0, -97.9 ,-134.0, -170.5, -207.5]);\n",
+ "for i in range(0,6):\n",
+ " Val[i,3] = Area[i];\n",
+ " Val[i,4] = Area[i]+(lambdar*Val[i,0]);\n",
+ "print \" (1) = X(kg acetone/kg carbon) \\n (2)= Slope of isostere \\n (3)= Differential heat of adsorption(kJ/kg acetone) \\n (4)=deltaH_prime(vapour(kJ/kg carbon)) \\n (5)=deltaH(liquid(kJ/kg carbon)\"\n",
+ "print\"(1) \\t \\t \\t \\t (2) \\t \\t \\t \\t (3) \\t \\t \\t \\t \\t \\t \\t \\t (4) \\t \\t \\t \\t \\t \\t (5) \" \n",
+ "for i in range(0,6):\n",
+ " print Val[i,0],\" \\t \\t \\t \",Val[i,1],\" \\t \\t \",Val[i,2],\" \\t \\t \\t \\t \\t \",Val[i,3],\" \\t \\t \\t \\t\",Val[i,4]\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.1 - Page: 575\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x76f12b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (1) = X(kg acetone/kg carbon) \n",
+ " (2)= Slope of isostere \n",
+ " (3)= Differential heat of adsorption(kJ/kg acetone) \n",
+ " (4)=deltaH_prime(vapour(kJ/kg carbon)) \n",
+ " (5)=deltaH(liquid(kJ/kg carbon)\n",
+ "(1) \t \t \t \t (2) \t \t \t \t (3) \t \t \t \t \t \t \t \t (4) \t \t \t \t \t \t (5) \n",
+ "0.05 \t \t \t 1.17 \t \t -644.67 \t \t \t \t \t -29.8 \t \t \t \t-2.25\n",
+ "0.1 \t \t \t 1.245 \t \t -685.995 \t \t \t \t \t -63.0 \t \t \t \t-7.9\n",
+ "0.15 \t \t \t 1.3 \t \t -716.3 \t \t \t \t \t -97.9 \t \t \t \t-15.25\n",
+ "0.2 \t \t \t 1.31 \t \t -721.81 \t \t \t \t \t -134.0 \t \t \t \t-23.8\n",
+ "0.25 \t \t \t 1.34 \t \t -738.34 \t \t \t \t \t -170.5 \t \t \t \t-32.75\n",
+ "0.3 \t \t \t 1.327 \t \t -731.177 \t \t \t \t \t -207.5 \t \t \t \t-42.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2: Page 596"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.2\n",
+ "# Page: 596\n",
+ "\n",
+ "print'Illustration 11.2 - Page: 596\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#*****Data*****#\n",
+ "# x:kg carbon/kg soln\n",
+ "# y_star: Equilibrium colour, units/kg soln.\n",
+ "# X:adsorbate concentration, units/kg carbon\n",
+ "# Data = [x Y_star]\n",
+ "Data =numpy.array([[0, 9.6],[0.001, 8.6],[0.004 ,6.3],[0.008, 4.3],[0.02 ,1.7],[0.04, 0.7]]);\n",
+ "Yo = 9.6;# [units of colour/kg soln]\n",
+ "Y1 = 0.1*Yo;# [units of colour/kg soln]\n",
+ "Ls = 1000.0;# [kg soln]\n",
+ "#****************#\n",
+ "\n",
+ "\n",
+ "n = 1.66;# [slope of line]\n",
+ "# At X = 663, Y_star = 4.3\n",
+ "# From eqn. 11.5\n",
+ "X = 663;\n",
+ "Y_star = 4.3;\n",
+ "m = Y_star/X**n;\n",
+ "# Freundlich Equation:\n",
+ "def f76(X):\n",
+ " return m*X**n\n",
+ "X = numpy.arange(0,1000,1);\n",
+ "\n",
+ "plt.plot(X,f76(X));\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "title(\"Equilibium Data(on arithmetic scale)\");\n",
+ "plt.show()\n",
+ "# Single Stage Operation:\n",
+ "# Since fresh carbn is used:\n",
+ "Xo = 0;# [units/kg carbon]\n",
+ "# From scf(30):\n",
+ "X1 = 270;# [units/kg carbon]\n",
+ "Data2 =numpy.array([[Xo, Yo],[X1, Y1]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data2[:,0],Data2[:,1],label=\"Operating line curve\")\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Single stage operation\");\n",
+ "plt.show()\n",
+ "# From Eqn. 11.4:\n",
+ "Ss = Ls*((Yo-Y1)/(X1-Xo));# [kg carbon/kg soln]\n",
+ "print\"Quantity of fresh carbon recquired for single stage operation: \",Ss,\" kg carbon/1000 kg solution\\n\"\n",
+ "\n",
+ "# Two stage cross current operation:\n",
+ "# For the minimumamount of carbon:\n",
+ "X1 = 565;# [units/kg carbon]\n",
+ "Y1 = 3.30;# [units of colour/kg soln]\n",
+ "X2 = 270;# [units/kg carbon]\n",
+ "Y2 = 0.96;# [units of colour/kg soln]\n",
+ "Data3 = numpy.array([[Xo ,Yo],[X1 ,Y1]]);\n",
+ "Data4 = numpy.array([[0 ,Y1],[X2 ,Y2]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data3[:,0],Data3[:,1],label=\"First of two Cocurrent\")\n",
+ "plt.plot(Data4[:,0],Data4[:,1],label=\"Second of two Cocurrent\")\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Two stage Cross current operation\");\n",
+ "plt.show()\n",
+ "# From Eqn. 11.8:\n",
+ "Ss1 = Ls*(Yo-Y1)/(X1-Xo);# [kg]\n",
+ "Ss2 = Ls*(Y1-Y2)/(X2-Xo);# [kg]\n",
+ "Ss = Ss1+Ss2;# [kg]\n",
+ "print\"Quantity of fresh carbon recquired for two stage crosscurrent operation: \",Ss,\" kg carbon/1000 kg solution\\n\"\n",
+ "\n",
+ "# Two Stage counter current operation:\n",
+ "Yo = 9.6;\n",
+ "Y2 = 0.96;\n",
+ "# By trial and error:\n",
+ "XNpPlus1 = 0;\n",
+ "X1 = 675;\n",
+ "Data5 = numpy.array([[X1 ,Yo],[XNpPlus1 ,Y2]]);\n",
+ "\n",
+ "plt.plot(X,f76(X),label=\"Equilbrium curve\")\n",
+ "plt.plot(Data5[:,0],Data5[:,1],label=\"Two stage Counter Current\");\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"units of colour/kg carbon\");\n",
+ "plt.ylabel(\"units of colour/kg solution\");\n",
+ "plt.legend(loc='upper left');\n",
+ "plt.title(\"Two stage Counter Current operation\");\n",
+ "# By eqn 11.14:\n",
+ "Ss = Ls*(Yo-Y2)/(X1-XNpPlus1);\n",
+ "print\"Quantity of fresh carbon recquired for two stage Counter Current operation: \",Ss,\" kg carbon/1000 kg solution\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.2 - Page: 596\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x76f16d8>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEZCAYAAACTsIJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeYFFXWwOHfYUgiGQkicVAQFUFFJAqiYFiCyoogC4IY\n1s9VEAPoqphBVwQxJ6IZRTGgKOiAopIk6AqriAxBRMkioMzM+f641dM944Qeprure/q8z1PPdFVX\n1z19afp03Vt1r6gqxhhjTEApvwMwxhgTXywxGGOMycESgzHGmBwsMRhjjMnBEoMxxpgcLDEYY4zJ\nwRKDKTYRGSAicyJ0rDQRGRqJY5mCiUgDEflNRMTvWEx8scRgwiIiHUXkcxHZJSLbReQzEWkNoKov\nqurZESpKvSViLNk4IrJeRLoG1lV1g6pWUruZyeRS2u8ATPwTkcrAu8BVwGtAOaAT8IefcRVBif/i\nE5EUVc0sZDcF7OzAFMrOGEw4mgKqqq+qc0BVP1LVrwFEZLCIfBrYWUSyROQqEflORHaKyGMhz5US\nkXEi8quIrBORf3n75/lZFJHLRORbEdkhIh+ISIN89isvIi+IyDavzMUiUktE7sMlsce8ZpOJ3v6P\niMgGEdktIktFpGPIsQ4Tkalemd+KyM0isjHk+boi8oaI/OK9h2vzqzgRqSIi07x914vIvwNNN169\nLRSRR70zsdWhv+i91z4vIj+JyCYRuSdQTyGvfVhEtgGjRSRVRD726uBXrz6qePtPBxoA73j1cKOI\nNAqte+99ve2dEX4vIpeHxHKniLzm1cseEflGRE7J732bBKeqtthS4AJUArYBU4BzgGq5nh8MfBqy\nngW8DVQG6gO/AGd7z/0T+C9QF6gKzAUygVLe858Al3mPewPfA81wP2L+DSzMJ8arvDLL434VnwRU\nyn3MkP0HANW8444AtgBlvefGeq+pAhwFrAI2eM+VApYBt+HOuBsDPwDd84lrGvAmcDjQEPhfyPsb\nDBwEhgEpQF9gF1DVe/5N4EngMKAmsAi4Mtdrr/FiKg80Ac4EygBHAPOB8SGx/Ah0DVlv5P1bBep+\nAfAYUBZo6f27neE9dyew3/v3F+B+4Au/P5u2RGfxPQBbEmMBjgUmAxu9L6RZQC3vubwSQ/uQ9VeB\nm73HHwNXhDx3Zq4vp9DE8H7oF7r3Bfg7UD+P+IYAC4EWeTz3CTC0kPe3I/Ba74u+W8hzQ4GN3uPT\ngPRcr70FmJTHMVNwzW3Hhmy7EvgkpN4253rNIuAfQG3gAFA+5Ln+wMchr00v5D2dD3wVsp5vYsAl\n8Azg8JDn7wcme4/vBD4Mee44YJ/fn0tborNYU5IJi6quUdUhqlofOAH3i39CAS/5OeTxPqCi9/hI\nXHIJ2FTAMRoCj3hNQzuB7d72o/LYdzowB3hFRDaLyAMiEtqHlqOfwWtK+dZrwtmJOzs4wnu6bgEx\nNgTqBmLyXnsLUCuPmI7A/XpPD9m2IVf8m3O9Jt0rv4H32i0h5TyFO3MICI0REaktIq94zU67vTqp\nkUdceakL7FDV3wuIdWvI431A+fyaAE1is39UU2Sq+j9gKi5BFNUW3K/TgPr57Yj7YrpSVauFLIer\n6pd5xJShqner6vFAe6AHMCjwdOi+ItIJuAm4SFWrqmo1YDfBjtmCYtwI/Jgrpsqq2iOP+Lfhzq4a\nhWxrQM5EkzvJNcQli424s40aIeVUUdUWoW8712vvxzXLnaCqVYCB5Pw/XlAn/E9AdRGpGLItd6wm\nSVhiMIUSkWYiMkJEjvLW6+OaNb4I9xAEv3RfA4Z5HZ1VgZHk/4X1FHCriBznlVtFRC7KJ8YuItJC\nRFKA33BfyIGrdLbi2t8DKuGaTbaJSFkRuQPXHxLwGnCLiFT13vO/QmJcDPzmdUgfJiIpInKCeJfu\nhlJ3ldBrwH0iUlFEGgLXAy+E7FZLRK4TkTLeezsWmK2qPwMfAg+LSCVxnfZNROT0fOoK3FnZ78Ae\nL+6bcj2fux5CY90IfA6MEZFyInIicFmuWE2SsMRgwvEbrm19kYjsxSWEVcAN3vO57z3I/UUf+vyz\nuC+8VbhO3PeATFXNyl2oqr4FPIBrHtoNfA3kd79EHWAG7pf/t0AarikF4BHg795VRhOAD7zlO2A9\nrlN1Q8ix7sb9Uv7Ri3UG8KcXUybubKQVsA74FXiGnIkl1LW4L+t1wKfAi7i+moBFwDHece4B+qjq\nTu+5QbiO4G9xfSAzvPcJed/vcRdwslcH7wBv5NpnDHCb1zQ1IuQ4Af1xZzc/ATOBO1T14wLKK/GX\nAScrUY3Ov62ITAL+BvwSOP0Vkeq4jsiGuP+QfVV1V1QCMAlBRM4FnlTVRn7Hkh8RuRr3WT0jwscd\njOsU7xTJ4xpTXNE8Y5iMu7Qt1CjgI1VtCszz1k0SEXe/wXkiUtpr7hiN+3UaN0Skjoh08JpvmuEu\nZ33T77iMiZWoJQZV/RTYmWtzL1ynJd7f86NVvolbgrv0cQfwFe6ehjv8DCgPZXH9G3twP2DeAp6I\nQjkRH/7DmEiIWlMSgIg0At4JaUra6V0Bgnf3547AujHGmPjgW+ezuoxkv5aMMSbOxHoQva0iUkdV\nfxaRI3G33P+FiFjCMMaYQ6CqxR4oMdZnDG8Dl3qPL8W13ebJ71vC42UZPXq07zHEy2J1YXVhdVHw\nEilRSwwi8jLuhplmIrJRRIbgBifrJiLfAV29dVOA9evX+x1C3LC6CLK6CLK6iLyoNSWpav98njor\nWmUaY4wpPrvzOc4NHjzY7xDihtVFkNVFkNVF5EX1ctVDJSIaj3EZY0w8ExE0Ap3PCTW1p9ic5SZO\nxfqHTFpaGl26dIlpmfHK6iLyEioxQOz/AxpTGPvBYkqahGpK8k6TfIjImPzZ59LEi0g1JcVt5/Om\nPTY/iDHG+CFuE8P4L8b7HYIxcSstLc3vEOKG1UXkxW1imLxiMjv27/A7DN9t2LCBSpUqZTdVdOnS\nheeffx6AKVOm0KlT0YbyP++885g+fXrhOxpjklbcJobzjz2fxxc/7ncYYWvUqBEVKlSgUqVK2ct1\n111X7OM2aNCA3377LbuDU0SK1dk5e/ZsBg4cWOy4jL/sKpwgq4vIi9urkm5qfxOdp3RmRLsRHF72\ncL/DKZSI8O6779K1a1e/Q8lT4Iwj0a6gycjIoHTpuP2YGlMixe0ZQ/OazenYoCOTlk/yO5Riy8rK\n4sYbb6RmzZo0adKExx9/nFKlSpGV5aY5btSoEfPmzcve/84778z+Vb9+/foc++amqlx77bVUrVqV\n5s2b8/HHH2c/16VLF2677TY6dOhAxYoVWbduXY6mqNBy8iqrS5cu3H777XTo0IFKlSrRq1cvtm3b\nxoABA6hSpQpt2rQhPT093/f92Wef0b59e6pVq0aDBg2YNm1a9nEDMcBfm8RKlSrFE088QdOmTWna\ntCn/93//x0035ZzXvnfv3owf7/qhfvrpJ/r06UOtWrVITU3l0UcfzTemksLa1YOsLiIvbhMDwMgO\nI3noi4c4mHnQ71DCkt8li8888wzvvfceK1asYOnSpbz++us5frnnbh4qyq/6RYsWcfTRR7N9+3bu\nuusuLrzwQnbtCk6j/cILL/Dcc8/x22+/0bBhwxxlhVPOq6++ygsvvMDmzZv54YcfaNeuHUOHDmXH\njh00b96cu+66K8/Xpaenc9555zFs2DC2bdvGihUraNmyZZ7vNy+zZs1i8eLFrF69mv79+/Pqq69m\nP7dz504++ugj+vfvT1ZWFj179uSkk07ip59+Yt68eUyYMIEPP/yw0PdmjMlbXCeG0+qdRpNqTXjl\nm1fC2l8kMsuhUFXOP/98qlWrlr0EfhW/9tprXH/99Rx11FFUq1aNW2+9tcDr3otyTXytWrUYNmwY\nKSkp9O3bl2bNmvHuu+969SEMHjyY5s2bU6pUqb80yRRWjogwZMgQGjduTOXKlTn33HNp2rQpXbt2\nJSUlhYsuuojly5fn+dqXXnqJbt26cfHFF5OSkkL16tWzE0M4brnlFqpWrUq5cuXo2LEjIsKnn34K\nwOuvv0779u2pU6cOS5YsYdu2bdx2222ULl2axo0bc/nll/PKK+F9ZhKVtasHWV1EXtw33o7qOIoR\nc0Yw4MQBhe7r5z1GIsKsWbPy7GPYsmUL9evXz15v0KBBxMo96qijcqw3bNiQLVu2ZK+Hlnsoateu\nnf24fPny1KpVK8f63r1783zdpk2bSE1NPeRyQ+MWEfr168fLL79Mp06deOmllxg0aBDgzkx++ukn\nqlULzhCbmZnJ6aeffshlG5Ps4vqMAaBbajfKppTlve/e8zuUQ3bkkUeyYcOG7PXQxwCHH344v//+\ne/b6zz//HPaxN2/enGM9PT2dunXrZq8X1GRTsWJF9u3bF3a5RWniql+/Pj/88EOez4XzfnOX1b9/\nf15//XXS09NZvHgxffr0AVySbdy4MTt37sxe9uzZk33WVFJZu3qQ1UXkxX1iEBFGdRzFmM/G+B1K\nofJrmunbty8TJ05k8+bN7Ny5k7Fjx+b44mvVqhWvvPIKGRkZLF26lDfeeCPsL+FffvmFiRMncvDg\nQWbMmMGaNWs477zzCo0pUO6CBQvYuHEju3fvZsyYv9Zx6OuL0sQ1YMAA5s6dy4wZM8jIyGD79u2s\nXLkyu9yZM2eyf/9+1q5dm6MjuqBYjzjiCC6//HLOOeccKleuDECbNm2oVKkSDz74IPv37yczM5Nv\nvvmGpUuXhh2rMSanuE8MAH2a9+GX3/OcHjqu9OzZM8d9DIFftVdccQVnn302LVu2pHXr1vTp0yfH\nl+w999zDDz/8QLVq1bjzzjsZMCBns1l+SUJEaNu2Ld9//z01a9bk9ttv54033sjRrFJQgjnrrLO4\n+OKLOfHEEzn11FPp2bPnX/YvqJO8oOPXr1+f2bNnM27cOGrUqMFJJ53EqlWrALj++uspW7YstWvX\nZsiQIfzjH/8Iq/P9kksu4eOPP+aSSy7J3laqVCneffddVqxYQWpqKjVr1uTKK69kz549+b7vksDa\n1YOsLiIvYQbRe2bZM1zV+qoSMVjZ+vXrSU1NJSMjg1KlEiI3mwLYIHomXpT4QfRyG9RykN8hGBM3\nrF09yOoi8hImMZQvXd7vECIq0e5ANsYkj4RpSvK22ym7iTv2uTTxIumakowxxsSGJQZjEpC1qwdZ\nXUSeJQZjjDE5WB+DMcVkn0sTL6yPwRhjTFRYYkgin376Kccee2xUjh06x8KLL77I2WefHZVyjGPt\n6kFWF5FniSGCpkyZQosWLTj88MM58sgj+b//+z92797tWzylSpVi3bp12eudOnVizZo1USkrdLiM\nAQMGMGfOnKiUY4yJPksMETJu3DhGjRrFuHHj2LNnD19++SXp6el069aNgwcjP9FQZmZmWPtZ2/df\nZWRk+B1Csdn4QEFWF87ixZE7liWGCNizZw933nknjz32GN27dyclJYWGDRvy2muvsX79el544QXA\nTaX597//nX79+lG5cmVOOeWU7IHloOApKgOvHThwIFWqVGHq1KksWbKEdu3aUa1aNerWrcu1116b\nnYQC8xG0bNmSSpUqMWPGDNLS0nLMc9CoUSPGjRtHy5YtqVq1Kv369eOPP/7Ifv7BBx+kbt261KtX\nj+eee+4vZyD5yWuqzqeffpqmTZtSrVo1/vWvf+XYf9KkSRx33HFUr16dc8455y/Dkoey6UKN+aux\nY6FfvwgeUFXjbnFh/VV+2/32/vvva+nSpTUzM/Mvz1166aXav39/VVUdPXq0lilTRt944w3NyMjQ\nhx56SBs3bqwZGRmamZmpJ598st5zzz168OBBXbdunaampuqcOXNyvHbWrFmqqrp//35dtmyZLlq0\nSDMzM3X9+vXavHlznTBhQnbZIqI//PBD9vonn3yi9erVy15v1KiRnnbaabplyxbdsWOHNm/eXJ96\n6qns91SnTh399ttvdd++fTpgwAAtVapUjuOF6tKliz7//POqqjp58mTt2LFjjjh69uypu3fv1g0b\nNmjNmjX1gw8+UFXVt956S48++mhds2aNZmZm6r333qvt27fPs4z169drpUqV9JVXXtGMjAzdvn27\nrlix4i/l5xdD9+7ddefOnXrgwAFdsGCB1q9fP/v5HTt26GGHHaZbtmwp9N8iNz8+l5988knMy4xX\nyVwXWVmqN9+setxxqps3Z38Wi/0dHPczuBWF3BWZ8Yd0dNGaX7Zt28YRRxyR50ipderU4auvvspe\nb926NRdeeCEAI0aMYNy4cXzxxReUKVMme4pKIMcUld27dwegffv29OrVC3Czp5188snZx23YsCFX\nXnkl8+fPZ9iwYWHHft1111GnTh3ADRu+YsUKwE1Hetlll9G8eXMA7rrrLl566aWwj5vbqFGjqFy5\nMpUrV+aMM85g5cqVnH322Tz11FPccsstNGvWDHBTet5///1s3LjxL7PPhU4XClC9enWqV68edgyB\n6UKBHNOFdurUKcd0oYsWLSr038IYv2VmwtVXw8qVsGAB1KgRuWOXqMRQ1C/0SDniiCPYtm0bWVlZ\nf0kOW7ZsoWbNmtnr9erVy34sItSrV4+ffvoJESl0isrQ1wJ89913jBgxgmXLlrFv3z4yMjJo3bp1\nkWIPJAWAww47LHta0C1bttCmTZt8yy6q0HIqVKiQPSVoeno6w4YN44Ybbsix/+bNm/+SGGy60CBr\nVw9Kxrr4808YOBC2bYO5c6FSpcge3/oYIqBdu3aUK1eON954I8f2vXv38sEHH3DmmWdmb9u4cWP2\n46ysLDZt2sRRRx1F/fr1C5yiMq9Jcq6++mqOO+441q5dy+7du7nvvvvIysqKyHs68sgjc8Qa+jiS\nGjRowDPPPJPjff/++++0bdv2L/vadKHGwL590Lu3Sw7vvRf5pACWGCKiSpUqjB49mmuvvZY5c+Zw\n8OBB1q9fT9++falfvz4DBw7M3nfZsmW8+eabZGRkMGHCBMqXL0/btm059dRTC5yiUvO4umjv3r1U\nqlSJChUqsGbNGp588skcz9euXTvfL9L8BMrp27cvkydPZs2aNezbt4977rmnqNVSYBmBcv75z39y\n//338+233wKwe/duZsyYkefrbLrQILt2PyiZ6mLXLujeHWrVghkzoHyUZiOwxBAhN910E/fffz83\n3ngjVapUoW3btjRs2JB58+ZRpkwZwP1i7d27N6+++irVq1fnxRdfZObMmaSkpJCSklLgFJV5nTE8\n9NBDvPTSS1SuXJkrr7ySfv365djnzjvv5NJLL6VatWq8/vrreR4jVOjz55xzDtdddx1nnHEGTZs2\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7930c18>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantity of fresh carbon recquired for single stage operation: 32.0 kg carbon/1000 kg solution\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nEwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7938c88>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quantity of fresh carbon recquired for two stage crosscurrent operation: 19.8171091445 kg carbon/1000 kg solution\n",
+ "\n",
+ "Quantity of fresh carbon recquired for two stage Counter Current operation: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 12.8 kg carbon/1000 kg solution\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7d9ad68>"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.3: Page 602"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.3\n",
+ "# Page: 602\n",
+ "\n",
+ "print'Illustration 11.3 - Page: 602\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#***Data***#\n",
+ "T = 1.0; #[m]\n",
+ "di = 0.203;# [m]\n",
+ "n = 1;# [for one impeller]\n",
+ "Density_S = 2300.0;# [kg/cubic m]\n",
+ "Density_p = 2300.0;# [kg/cubic m]\n",
+ "C = 0.150;# [m]\n",
+ "S = 50.0;# [kg]\n",
+ "g = 9.807;# [m/s]\n",
+ "dp = 8*10**(-4);# [m]\n",
+ "N = 8.33; #[r/s]\n",
+ "Temp=25;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# Assume:\n",
+ "Po = 5;\n",
+ "viscosity_L = 8.94*10**(-4);# [kg/m.s]\n",
+ "Density_L = 998.0;# [kg/cubic m]\n",
+ "delta_Density = Density_S-Density_L;# [kg/cubic m]\n",
+ "# By Eqn. 11.23:\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_L);# [m/s]\n",
+ "# By defn. of power number:\n",
+ "# P = Po*Density_m*di**5*Ni**3\n",
+ "# vm = math.pi*T**2*(Z+C)/4\n",
+ "# Solid Volume = S/Density_p;\n",
+ "# If these are substituted in Eqn. 11.22\n",
+ "def f(Z):\n",
+ " return (((Z+C)**(1.3/3))*math.exp(4.35*Z/(T-0.1)))-((1.0839*Po*di**(11.0/2)*N**3*Density_p**(2.0/3))/(g*Vts*T**(7.0/6)*S**(2.0/3)))\n",
+ "Z = fsolve(f,7);# [m]\n",
+ "phi_Sm = 4*S/(math.pi*T**2*(Z+C)*Density_p);\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_L);# [kg/cubic m]\n",
+ "phi_Ss = 0.6;\n",
+ "viscosity_m = viscosity_L/(1-(phi_Sm/phi_Ss))**1.8;# [kg/m.s]\n",
+ "Re = di**2*N*Density_m/viscosity_m;\n",
+ "P = Po*Density_m*N**3*di**5;# [W]\n",
+ "print \"Agitator Power required: \",round(P),\" W\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.3 - Page: 602\n",
+ "\n",
+ "\n",
+ "Agitator Power required: 1113.0 W\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.4: Page 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.4\n",
+ "# Page: 604\n",
+ "\n",
+ "print'Illustration 11.4 - Page: 604\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "#****Data*****#\n",
+ "# b: kerosene c:water\n",
+ "# c:kg water/cubic m liquid\n",
+ "Density_l = 783;# [kg/cubic m]\n",
+ "viscosity_l = 1.7*10**(-3);# [kg/m.s]\n",
+ "Mb = 200;# [kg/kmol]\n",
+ "Density_p = 881;# [kg/cubic m]\n",
+ "m = 0.522;# [(kg water/cubic m kerosene)/(kg water/kg gel)]\n",
+ "Xo = 0;# [kg H2O/kg gel]\n",
+ "#**************#\n",
+ "\n",
+ "# Solution (a)\n",
+ "co = Density_l*4*10**(-5);# [kg water/cubic m]\n",
+ "c1 = Density_l*5*10**(-6);# [kg water/cubic m]\n",
+ "# For Ss minimum:\n",
+ "X1 = c1/m;# [kg H2O/kg gel]\n",
+ "# By Water Balance:\n",
+ "SsminByVl = (co-c1)/(X1-Xo);# [kg gel/cubic m kerosene]\n",
+ "print\"Minimum Solid/Liquid ratio used:\",SsminByVl,\" kg gel/cubic m kerosene\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "# Basis: 1 batch,1.7 cubic m kerosene\n",
+ "Vl = 1.7;# [cubic m]\n",
+ "Ss = 16*1.7;# [kg gel]\n",
+ "V = Ss/Density_p;# [Xol. solid, cubic m]\n",
+ "Vt = 1.7+V;# [Total batch volume, cubic m]\n",
+ "# Take Z = T\n",
+ "T = (Vt*4/math.pi)**(1.0/3);# [m]\n",
+ "# To allow for the adequate free board:\n",
+ "h = 1.75;# [Vessel height,m]\n",
+ "# Use a six-blade disk impeller.\n",
+ "# From Fig. 11.26:\n",
+ "# dp corresponding to 14 mesh:\n",
+ "dp = 1.4/1000;# [m]\n",
+ "TBydi1 = 2.0;\n",
+ "Value1 = (Density_p-Density_l)/Density_l;\n",
+ "# From Fig. 11.26:\n",
+ "TBydi2 = 4.4;\n",
+ "TBydiAv = (TBydi1+TBydi2)/2.0;\n",
+ "di = T/TBydiAv;# [m]\n",
+ "fr = 0.6;# [settled volume fraction of solids]\n",
+ "Vs = V/fr;# [cubic m]\n",
+ "depth = Vs/((math.pi*(T**2))/4);# [m]\n",
+ "# The depth of settled solid is negligible.\n",
+ "# Locate the turbine 150mm from the bottom of the tank.\n",
+ "C = 0.150;# [m]\n",
+ "\n",
+ "# Power:\n",
+ "# Use the sufficient agitator power to lift the solids to 0.6 m above the bottom of the vessel.\n",
+ "Z_prime = 0.6-C;# [m]\n",
+ "# The properties of the slurry in 0.6 m above the bottom of the vessel.\n",
+ "Vm = 0.6*math.pi*T**2.0/4;# [square m]\n",
+ "phi_Sm = V/Vm;# [vol fraction solid]\n",
+ "# From Eqn. 11.24:\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_l);# [kg/cubic m]\n",
+ "# From Eqn. 11.25:\n",
+ "phi_Ss = 0.8;\n",
+ "viscosity_m = viscosity_l/(1-(phi_Sm/phi_Ss))**1.8;# [kg/m.s]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "# From Eqn. 11.23:\n",
+ "delta_Density = Density_p-Density_l;# [kg/cubic m]\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_l);# [m/s]\n",
+ "# From Eqn. 11.22:\n",
+ "n = 1.0;\n",
+ "P = (g*n*Density_m*Vm*Vts)*(phi_Sm**(2.0/3))*(TBydiAv**(1.0/2))*math.exp((4.35*Z_prime/T)-0.1);# [W]\n",
+ "# Assume:\n",
+ "Po = 5.0;\n",
+ "N = (P/(Po*Density_m*di**5))**(1.0/3);# [r/s]\n",
+ "# Use:\n",
+ "N1 = 2.0;# [r/s]\n",
+ "Re = di**2.0*N1*Density_m/viscosity_m;\n",
+ "# From fig. 6.5: Po = 5\n",
+ "# Hence our assumption was right.\n",
+ "print\"Power delivered to the slurry: \",round((P*(N1/N)**3),2),\" W\\n\",\n",
+ "print\"Power to the motor will be larger, depending on the efficiency of the motor and speed reducer.\\n\"\n",
+ "\n",
+ "# Mass transfer: \n",
+ "# From Eqn. 11.28:\n",
+ "Rep = (dp**(4.0/3))*(P/Vl)**(1.0/3)*(Density_l**(2.0/3)/viscosity_l);\n",
+ "# From Eqn. 2.44:\n",
+ "Temp = 298;# [K]\n",
+ "phi = 1.0;\n",
+ "Va = 0.0756;# [Chapter 2 notation]\n",
+ "Dl = ((117.3*10**(-18))*((phi*Mb)**0.5)*Temp)/(viscosity_l*(Va**(0.6)));\n",
+ "ScL = viscosity_l/(Density_l*Dl);\n",
+ "if dp<(2.0/1000):\n",
+ " # From Eqn. 11.29:\n",
+ " ShL = 2+(0.47*Rep**0.62*(1/TBydiAv**0.17)*ScL**0.36);\n",
+ "else:\n",
+ " # From Eqn. 11.30:\n",
+ " ShL = 0.222*Rep**(3.0/4)*ScL**(1.0/3);\n",
+ "\n",
+ "kL = ShL*Dl/dp;# [m/s]\n",
+ "apS = (math.pi*dp**2)/(math.pi*dp**3*Density_p/6.0);\n",
+ "apL = apS*16;# [square m/cubic m liquid]\n",
+ "Ratio = Ss/(Vl*m);\n",
+ "# From Eqn. 11.40:\n",
+ "thetha = math.log((co/c1)/(1+(1/Ratio)-(1/Ratio)*(co/c1)))/((1+(1/Ratio))*kL*apL);\n",
+ "print\"Contacting Time required: \",round(thetha/60,2),\" min\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.4 - Page: 604\n",
+ "\n",
+ "\n",
+ "Minimum Solid/Liquid ratio used: 3.654 kg gel/cubic m kerosene\n",
+ "\n",
+ "\n",
+ "Power delivered to the slurry: 350.05 W\n",
+ "Power to the motor will be larger, depending on the efficiency of the motor and speed reducer.\n",
+ "\n",
+ "Contacting Time required: 8.3 min\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5: Page 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.5\n",
+ "# Page: 606\n",
+ "\n",
+ "print'Illustration 11.5 - Page: 606\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "import numpy.linalg as lin\n",
+ "#*****Data******#\n",
+ "Vl = 1.1*10**(-4);# [cubic m/s]\n",
+ "Ss = 0.0012;# [kg/s]\n",
+ "Density_p = 1120;# [kg/cubic m]\n",
+ "dp = 8*10**(-4);# [m]\n",
+ "Ds = 2*10**(-11);# [square m/s]\n",
+ "Dl = 7.3*10**(-10);# [square m/s]\n",
+ "m = 0.2;# [(kg Cu2+/cubic m soln)/(kg Cu2+/kg resin)]\n",
+ "T = 1;# [m]\n",
+ "#********************#\n",
+ "\n",
+ "Z = T;# [m]\n",
+ "# The particles will be lifted to the top of the vessel.\n",
+ "Z_prime = 0.5;# [m]\n",
+ "viscosity_l = 8.94*10**(-4);# [kg/m.s]\n",
+ "Density_l = 998;# [kg/cubic m]\n",
+ "delta_Density = Density_p-Density_l;# [kg/cubic m]\n",
+ "g = 9.80;# [m/square s]\n",
+ "# From Eqn. 11.23:\n",
+ "Vts = g*dp**2*delta_Density/(18*viscosity_l);\n",
+ "Vm = math.pi*T**2*Z/4.0;# [cubic m]\n",
+ "Vs = Ss/Density_p;# [cubic m/s]\n",
+ "phi_Sm = Vs/(Vs+Vl);# [vol fraction]\n",
+ "# From eqn. 11.24:\n",
+ "Density_m = (phi_Sm*Density_p)+((1-phi_Sm)*Density_l);# [kg/cubic m]\n",
+ "# From Eqn. 11.22:\n",
+ "n = 1.0;\n",
+ "di = 0.3;# [m]\n",
+ "P = (g*n*Density_m*Vm*Vts)*(phi_Sm**(2.0/3))*((T/di)**(1.0/2))*math.exp((4.35*Z_prime/T)-0.1);# [W]\n",
+ "# To estimate the impeller speed:\n",
+ "# Assume:\n",
+ "Po = 5;\n",
+ "N = (P/(Po*Density_m*di**5))**(1.0/3);# [r/s]\n",
+ "Re = di**2*N*Density_m/viscosity_l;\n",
+ "# From fig. 6.5: Assumption of Po was correct.\n",
+ "print\"Speed of the impeller:\",round(N,2),\" r/s\\n\"\n",
+ "vT = (math.pi/4.0)*T**2*Z;# [cubic m]\n",
+ "vL = vT*(1-phi_Sm);\n",
+ "# From Eqn. 11.28:\n",
+ "Rep = (dp**(4.0/3))*(P/vL)**(1.0/3)*(Density_l**(2.0/3)/viscosity_l);\n",
+ "ScL = viscosity_l/(Density_l*Dl);\n",
+ "if dp<(2.0/1000):\n",
+ " # From Eqn. 11.29:\n",
+ " ShL = 2+(0.47*Rep**0.62*((di/T)**0.17)*ScL**0.36);\n",
+ "else:\n",
+ " # From Eqn. 11.30:\n",
+ " ShL = 0.222*Rep**(3.0/4)*ScL**(1.0/3);\n",
+ "\n",
+ "ShL = 130.3;# Value wrong in book\n",
+ "kL = ShL*Dl/dp;# [m/s]\n",
+ "# Since the dispersion is uniform throughout the vessel, the residence time for both liquid and solid is same.\n",
+ "thetha = vL*(1-phi_Sm)/Vl;# [s]\n",
+ "# From Fig. 11.27:\n",
+ "abcissa = m*kL*dp/(2*Ds*Density_p);\n",
+ "Parameter = 2*m*kL*thetha/(dp*Density_p);\n",
+ "co = 100*Density_l/10.0**6;# [kg/cubic m]\n",
+ "EMS = 0.63;\n",
+ "Xo = 0;\n",
+ "# From Eqn. 11.44:\n",
+ "# (1): X1-(EMS/m)*c1 = 0\n",
+ "# Solute balance:\n",
+ "# (2): (Ss*X1)+(vL*c1) = (vL*co)+(Xo*Ss)\n",
+ "a = [[1 ,-(EMS/m)],[Ss ,Vl]];\n",
+ "b = [0,(Vl*co)+(Xo*Ss)];\n",
+ "soln =lin.solve(a,b);\n",
+ "X1 = soln[0];\n",
+ "c1 = soln[1];\n",
+ "print\"Effluent Cu2+ conc. \",round(c1*10**(6)/Density_l,2),\" ppm\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.5 - Page: 606\n",
+ "\n",
+ "\n",
+ "Speed of the impeller: 2.71 r/s\n",
+ "\n",
+ "Effluent Cu2+ conc. 2.83 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.6: Page 616"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.6\n",
+ "# Page: 616\n",
+ "\n",
+ "print'Illustration 11.6 - Page: 616\\n\\n'\n",
+ "from scipy.optimize import fsolve\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data*****#\n",
+ "# a: air b:silica\n",
+ "Density_a = 1.181;# [kg/cubic m]\n",
+ "Density_b = 671.2;# [kg/cubic m]\n",
+ "kSap = 0.965;# [kg H2O/square m s]\n",
+ "Y1 = 0.005;# [kg H2O/kg dry air]\n",
+ "Y2 = 0.0001;# [kg H2O/kg dry air]\n",
+ "Ss = 0.680;# [square m/s]\n",
+ "Gs = 1.36;# [kg/square m.s]\n",
+ "X2 = 0;# [kg H2O/kg dry air]\n",
+ "# Equilibrium function:\n",
+ "m = 0.0185;\n",
+ "#************#\n",
+ "X1 = (Gs*(Y1-Y2)/Ss)+X2;# [kg H2O/kg dry air]\n",
+ "def f77(X):\n",
+ " return m*X \n",
+ "Y2_star = f77(X2);# [kg H2O/kg dry gel]\n",
+ "Y1_star = f77(X1);# [kg H2O/kg dry gel]\n",
+ "deltaY = ((Y1-Y1_star)-(Y2-Y2_star))/math.log((Y1-Y1_star)/(Y2-Y2_star));\n",
+ "NtoG = (Y1-Y2)/deltaY;\n",
+ "# If the fixed bed data are to be used for estimating the mass transfer coeffecient for a moving bed of solids\n",
+ "va = Ss/Density_b;# [m/s]\n",
+ "vb = Gs/Density_a;# [m/s]\n",
+ "rel_v = va+vb;# [relative velocity,m/s]\n",
+ "G_prime = rel_v*Density_a;# [relative mass velocity of air,kg/square m s]\n",
+ "HtG = Gs/(31.6*G_prime**0.55);# [m]\n",
+ "HtS = Ss/kSap;# [m]\n",
+ "# By Eqn. 11.52:\n",
+ "HtoG = HtG+(m*Gs/Ss)*HtS;# [m]\n",
+ "Z = NtoG*HtoG;# [m]\n",
+ "print\"Height of continuous countercurrent isothermal absorber for drying: \",round(Z,4),\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.6 - Page: 616\n",
+ "\n",
+ "\n",
+ "Height of continuous countercurrent isothermal absorber for drying: 0.2511 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.7: Page 619"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.7\n",
+ "# Page: 619\n",
+ "\n",
+ "print'Illustration 11.7 - Page: 619\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import numpy.linalg as lin\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#*****Data*****#\n",
+ "# a: C2H4 b:C3H8\n",
+ "# The equlibrium curve is plotted in Fig.11.33 (Pg 620)\n",
+ "# C3H8 is more strongly adsorbed component and composition in the gas and adsorbate are expressed as weight fraction C3H8.\n",
+ "Ma = 28;# [kg/kmol]\n",
+ "Mb = 44.1;# [kg/kmol]\n",
+ "xaF = 0.6;# [mole fraction]\n",
+ "xbF = 0.4;# [mole fraction]\n",
+ "xa1 = 0.05;# [mole fraction]\n",
+ "xa2 = 0.95;# [mole fraction]\n",
+ "#***************#\n",
+ "\n",
+ "xF = xbF*Mb/((xbF*Mb)+(xaF*Ma));# [wt. fraction C3H8]\n",
+ "xb1 = 1-xa1;# [mole fraction]\n",
+ "x1 = xb1*Mb/((xb1*Mb)+xa1*Ma);# [wt. fraction C3H8]\n",
+ "xb2 = 1-xa2;# [mole fraction]\n",
+ "x2 = xb2*Mb/((xb2*Mb)+(xa2*Ma));# [wt. fraction C3H8]\n",
+ "# Basis: 100 kg feed gas\n",
+ "F = 100.0;# [kg]\n",
+ "# (1): R2+PE = F [From Eqn. 11.63]\n",
+ "# (2): (R2*x2)+(PE*x1) = (F*xF) [From Eqn. 11.64]\n",
+ "# Solving simultaneously:\n",
+ "a = [[1, 1],[x2 ,x1]];\n",
+ "b = [F,(F*xF)];\n",
+ "soln = lin.solve(a,b);\n",
+ "R2 = soln[0];# [kg]\n",
+ "PE = soln[1];# [kg]\n",
+ "# Point F at xF and point E1 at x1 are located on the diagram.\n",
+ "# From the diagram:\n",
+ "N1 = 4.57;# [kg carbon/kg adsorbate]\n",
+ "# The minimum reflux ratio is found as it is for the extraction.\n",
+ "delta_Em = 5.80;\n",
+ "Ratio = (delta_Em/N1)-1;# [kg reflux gas/kg product]\n",
+ "R1_m = Ratio*PE;# [kg]\n",
+ "E1_m = R1_m+PE;# [kg]\n",
+ "B_m = N1*E1_m;# [kg carbon/100 kg feed]\n",
+ "Ratio1 = 2*Ratio;\n",
+ "# From Eqn. 11.58:\n",
+ "N_deltaE = (Ratio1+1.0)*N1;# [kg carbon/kg adsorbate]\n",
+ "# Point deltaE is located on the diagram:\n",
+ "R1 = Ratio1*PE;# [kg]\n",
+ "E1 = R1+PE;# [kg]\n",
+ "B = N1*E1;# [kg]\n",
+ "N_deltaR = -(B/R2);# [kg carbon/kg adsorbate]\n",
+ "# Random lines such as the delta_RK are drawn from detaR, and the intersection of equilibrium curves are projected downward in the manner shown to provide the adsorption section operating curve.\n",
+ "# Similarly random lines such as delta_EJ are drawn from deltaE, and the intersections are projected downwards to provide the enriching section operating curve.\n",
+ "# Data = [x x_star]\n",
+ "Data = numpy.array([[0.967 ,0.825],[0.90, 0.710],[0.80 ,0.60],[0.70, 0.50],[0.60 ,0.43],[0.512 ,0.39],[0.40 ,0.193],[0.30, 0.090],[0.20, 0.041],[0.0763, 0.003]]);\n",
+ "Val = zeros(10);\n",
+ "for i in range(0,10):\n",
+ " Val[i] = 1/((Data[i,0])-Data[i,1]);\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x\");\n",
+ "plt.ylabel(\"1 / (x-x*)\");\n",
+ "plt.title(\"Graphical Integraion\");\n",
+ "# The area under the curve between x1 & xF, for the enriching section:\n",
+ "Area1 = 2.65;\n",
+ "# The area under the curve between xF & x2, for the adsorption section:\n",
+ "Area2 = 2.67;\n",
+ "r = Ma/Mb;\n",
+ "# From Eqn.11.66:\n",
+ "# For the enriching section:\n",
+ "NtoG1 = Area1-math.log((1+(r-1)*x1)/(1+(r-1)*xF));\n",
+ "# For the adsortion section:\n",
+ "NtoG2 = Area2-math.log((1+(r-1)*x1)/(1+(r-1)*xF));\n",
+ "NtoG = NtoG1+NtoG2;\n",
+ "print\"Number of transfer units: \",NtoG"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.7 - Page: 619\n",
+ "\n",
+ "\n",
+ "Number of transfer units: 5.77763695068\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7dc14a8>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.8: Page 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.8\n",
+ "# Page: 627\n",
+ "\n",
+ "print'Illustration 11.8 - Page: 627\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#******Data******#\n",
+ "rate = 0.1;# [kg/s]\n",
+ "conc = 3.0;# [kg vapour/100cubic m]\n",
+ "Density_p = 720.0;# [kg/cubic m]\n",
+ "Density_bed = 480.0;# [kg/cubic m]\n",
+ "capablity = 0.45;# [kg vapour/kg carbon]\n",
+ "dp = 0.0028;# [m]\n",
+ "time = 3.0;# [h]\n",
+ "#********************#\n",
+ "\n",
+ "Vap_adsorbed = time*3600.0*rate;# [kg]\n",
+ "C_required = Vap_adsorbed*1.0/capablity;\n",
+ "# Two beds will be needed: one adsorbing and another regenerated.\n",
+ "totC_required = 2*C_required;# [kg]\n",
+ "print\"Amount of carbon required: \",totC_required,\" kg\\n\",\n",
+ "Vol = (C_required/Density_bed);\n",
+ "# Assume:\n",
+ "Z = 0.5;# [m]\n",
+ "Area = Vol/Z;# [square m]\n",
+ "# From Eqn. 6.66:\n",
+ "T = 35.0;# [OC]\n",
+ "viscosity_air = 1.82*10**(-5);# [kg/m.s]\n",
+ "Density_air = (29/22.41)*(273.0/(T+273));\n",
+ "e = 1-(Density_bed/Density_p);\n",
+ "G = rate*(100.0/conc)*(Density_air/(Area));# [kg/square m.s]\n",
+ "Re = dp*G/viscosity_air;\n",
+ "Z = 0.5;# [m]\n",
+ "def f78(delta_p):\n",
+ " return ((delta_p/Z)*(e**3*dp*Density_air)/((1-e)*G**2))-(150*(1-e)/Re)-1.75\n",
+ "delta_p = fsolve(f78,7);\n",
+ "print\"The pressure drop is:\",round(delta_p,2),\" N/square m\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.8 - Page: 627\n",
+ "\n",
+ "\n",
+ "Amount of caron required: 4800.0 kg\n",
+ "The pressure drop is: 1413.31 N/square m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.9: Page 636"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.9\n",
+ "# Page: 636\n",
+ "\n",
+ "print'Illustration 11.9 - Page: 636\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data******#\n",
+ "Yo = 0.00267;# [kg H2O/kg dry air]\n",
+ "Yb = 0.0001;# [kg H2O/kg dry air]\n",
+ "Ye = 0.024;# [kg H2O/kg dry air]\n",
+ "Z = 0.61;# [m]\n",
+ "G_prime = 0.1295;# [kg/square m.s]\n",
+ "#******************#\n",
+ "\n",
+ "# The equilicrium data is plotted in Fig. 11.45 (Pg 637)\n",
+ "# The gel is initially \"dry\" and the effluent air initially of so low a humidity asto be substantially dry, so that the operating line passes through the origin of the figure\n",
+ "# The operating line is then drawn to intersect the equilibrium curve.\n",
+ "# Data = [Y[kg H2O/kg dry air] Y_star[kg H2O/kg dry air]]\n",
+ "Data =numpy.array([[0.0001, 0.00003],[0.0002, 0.00007],[0.0004 ,0.00016],[0.0006, 0.00027],[0.0008, 0.00041],[0.0010, 0.00057],[0.0012 ,0.000765],[0.0014, 0.000995],[0.0016, 0.00123],[0.0018 ,0.00148],[0.0020 ,0.00175],[0.0022 ,0.00203],[0.0024 ,0.00230]])\n",
+ "Val1 = zeros(13);\n",
+ "# Val1 = [1/(Y-Y_star)]\n",
+ "for i in range(0,13):\n",
+ " Val1[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "# Graphical Integration:\n",
+ "plt.plot(Data[:,0],Val1);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"Y(kg H20 / kg dry air)\");\n",
+ "plt.ylabel(\"1 / (Y-Y_star)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area under The curve between Y = Yb and Y = Y:\n",
+ "Area = [0 ,0.100 ,2.219 ,2.930 ,3.487 ,3.976 ,4.438 ,4.915, 5.432, 6.015, 6.728 ,7.716 ,9.304];\n",
+ "# The total number of transfer unit corresponding to adsorption zone:\n",
+ "NtoG = 9.304;\n",
+ "Val2 = zeros(13);\n",
+ "Val3 = zeros(13);\n",
+ "# Val2 = [(w-wb)/wo]\n",
+ "# Val3 = [Y/Yo]\n",
+ "for i in range(0,13):\n",
+ " Val2[i] = Area[i]/NtoG;\n",
+ " Val3[i] = Data[i,0]/Yo;\n",
+ "\n",
+ "# Eqn. 11.74 can be arranged as follows:\n",
+ "# f = integrate((1-(Y/Yo)),(w-wb)/wa,0,1)\n",
+ "\n",
+ "plt.plot(Val2,Val3);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"(w-wb) / wo\");\n",
+ "plt.ylabel(\"Y / Yo\");\n",
+ "plt.title(\"Break through curve\");\n",
+ "plt.show()\n",
+ "# From area above the curve of scf(2):\n",
+ "f = 0.530;\n",
+ "\n",
+ "Gs = G_prime;# [kg/square m.s]\n",
+ "# From Illustration: 11.6\n",
+ "kYap = 31.6*G_prime**0.55;# [kg H2O/cubic m s delta_Y]\n",
+ "kSap = 0.965;# [kg H2O/cubic m s delta_X]\n",
+ "# From Fig. 11.48:\n",
+ "Xt = 0.0858;# [kg H2O/kg gel]\n",
+ "# From Eqn. 11.76:\n",
+ "Ss = Yo*Gs/Xt;# [kg/square m.s]\n",
+ "m = 0.0185;# [average slope of equilibrium curve]\n",
+ "# From Eqn. 11.51 & Eqn. 11.52:\n",
+ "HtG = Gs/kYap;# [m]\n",
+ "HtS = Ss/kSap;# [m]\n",
+ "HtoG = HtG+(m*Gs/Ss)*HtS;# [m]\n",
+ "# From Eqn. 11.79:\n",
+ "Za = NtoG*HtoG;# [m]\n",
+ "# From Eqn. 11.74:\n",
+ "Degree = (Z-(f*Za))/Z;\n",
+ "Density_bed = 671.2;# [Illustration 11.6, kg/cubic m]\n",
+ "mass_gel = Z*Density_bed;# [kg/square m]\n",
+ "# At saturation point the gel contins:\n",
+ "Y1 = mass_gel*Degree*Xt;# [kg H2O/square m cross section]\n",
+ "# The air introduces:\n",
+ "Y2 = Gs*Yo;# [kg/square m s]\n",
+ "print\"Time to reach breakpoint is: \",round((Y1/(Y2*3600)),4),\" h\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.9 - Page: 636\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecK7j/DypUxCdPIYESAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7d96080>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x781dda0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time to reach breakpoint is: 24.7778 h\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.10: Page 640"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.10\n",
+ "# Page: 640\n",
+ "\n",
+ "print'Illustration 11.10 - Page: 640\\n\\n'\n",
+ "\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#*****Data******#\n",
+ "# a:N2 b:H2O\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "Ma = 29;# [kg/kmol]\n",
+ "Z = 0.268;# [m]\n",
+ "Xo_solid = 0.01;# [kg H20/kg solid]\n",
+ "Density_bed = 712.8;# [kg/cubic m]\n",
+ "T = 28.3;# [OC]\n",
+ "P = 593;# [kN/square m]\n",
+ "Gs = 4052;# [kg/square m.h]\n",
+ "Xo_gas = 1440*10**(-6);# [mole fraction]\n",
+ "#********************#\n",
+ "\n",
+ "# Yo_star is in equilibrium with Xo:\n",
+ "Xo = 0;# [kg H20/kg solid]\n",
+ "Yo_star = 0;# [kg H20/kg N2]\n",
+ "thetha_t = 12.8;# [h]\n",
+ "thetha_b = 9;# [h]\n",
+ "# The breakthrough data are plotted in the manner of Fig. 11.47 (Pg 639) and thetha_s is dtermined:\n",
+ "thetha_s = 10.9;# [h]\n",
+ "Xt = 0.21;# [kg H20/kg solid]\n",
+ "# From Eqn. 11.81:\n",
+ "LUB = (Z/thetha_s)*(thetha_s-thetha_b);\n",
+ "# For thetha_b = 15 h\n",
+ "thetha_b = 15;# [h]\n",
+ "Yo = (Xo_gas/(1-Xo_gas))*(Mb/Ma);# [kg H20/kg N2]\n",
+ "# From Eq. 11.82:\n",
+ "Zs = Gs*(Yo-Yo_star)*thetha_b/(Density_bed*(Xt-Xo_solid));# [m]\n",
+ "# From Eqn. 11.85:\n",
+ "Z = LUB+Zs;\n",
+ "print\"Height of adsorbent column:\",round(Z,4),\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.10 - Page: 640\n",
+ "\n",
+ "\n",
+ "Height of adsorbent column: 0.0467 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.11: Page 654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 11.11\n",
+ "# Page: 645\n",
+ "\n",
+ "print'Illustration 11.11 - Page: 645\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#****Data****#\n",
+ "# For collection of Cu2+:\n",
+ "V = 37850.0;# [l/h]\n",
+ "c1 = 20.0;# [meq Cu2+/l]\n",
+ "c2 = 0.01*c1;# [meq Cu2+/l]\n",
+ "Mass_rate = 2.0;# [meq Cu2+/g resin h (meq Cu2+/l)]\n",
+ "exchanged = V*(c1-c2);# [meq/h]\n",
+ "X2 = 0.30;# [meq Cu2+/g]\n",
+ "#************#/\n",
+ "\n",
+ "# The point(c2,X2) is plotted in Fig. 11.48(a), Pg 645:\n",
+ "# For the minimum resin/solution ratio and an infinitely tall tower, the operating line pass though point P.\n",
+ "X = 4.9;# [meq Cu2+/g]\n",
+ "MinRate = exchanged/(X-X2);# [g/h]\n",
+ "Rate = 1.2*MinRate;# [g/h]\n",
+ "# Copper balance:\n",
+ "X1 = (exchanged/Rate)+X2;# [meq Cu2+/g resin]\n",
+ "# The point (c1,x1) is ploted in Fig. 11.48(a) and operating line drawn can be straight line at this low conc.\n",
+ "# Adapting Eqn. 11.48 and rearranging:\n",
+ "# S*Z*Density_s = (V/Mass_rate)*integrate(1/(c-c_star),c,c1,c2)\n",
+ "# Mass_rate = KL_prime*ap/Density_s\n",
+ "# From the equilibrium curve:\n",
+ "# Data = [c c_star]\n",
+ "Data = numpy.array([[20 ,2.4],[16 ,1.9],[12, 0.5],[8 ,0.25],[4 ,0.10],[2 ,0.05],[1 ,0.02],[0.2, 0]]);\n",
+ "Val = zeros(8);\n",
+ "for i in range(0,8):\n",
+ " Val[i] = 1/(Data[i,0]-Data[i,1]);\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"c\");\n",
+ "plt.ylabel(\"1 / (c-c*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "# From Graphical Integration:\n",
+ "Area = 5.72;\n",
+ "# holdup = S*Z*Density_s\n",
+ "holdup = V*Area/(Mass_rate);\n",
+ "print\"Resin Holdup: \",holdup,\"g\\n\"\n",
+ "\n",
+ "# Regeneration of resin:\n",
+ "# For 70% utilisation of 2N acid, feed must contain:\n",
+ "V = exchanged;\n",
+ "F = V/(0.70*2000);# [l/h]\n",
+ "c1 = 0;# [meq Cu2+/l]\n",
+ "c2 = V*1.0/F;# [meq Cu2+/l]\n",
+ "X1 = 0.30;# [meq Cu2+/g resin]\n",
+ "X2 = 4.12;# [meq cu2+/g resin]\n",
+ "# The points (c1,X1) and (c2,X2) are plotted on Fig 11.48(b), Pg 645\n",
+ "c1_star = 120.0;# [meq Cu2+/l]\n",
+ "c2_star = 1700.0;# [meq Cu2+/l]\n",
+ "logmean = ((c1_star-c1)-(c2_star-c2))/math.log((c1_star-c1)/(c2_star-c2));\n",
+ "Mass_rate = 0.018;# [meq Cu2+/g resin h (meq Cu2+/l)]\n",
+ "# Substituting in equation:\n",
+ "def f79(holdup):\n",
+ " return (V*(c2-c1))-(Mass_rate*holdup*logmean)\n",
+ "holdup = fsolve(f79,7);\n",
+ "print\"Resin Holdup in the regeneration Tower is \",round(holdup,3),\" g\\n\"\n",
+ "#the answers are in textbook is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 11.11 - Page: 645\n",
+ "\n",
+ "\n",
+ "Resin Holdup: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 108251.0 g\n",
+ "\n",
+ "Resin Holdup in the regeneration Tower is 296720391.501 g\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEZCAYAAAB2AoVaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHnpJREFUeJzt3Xm4HHWd7/H3JwlJlADZCEMwGBVFwCWogziCHkC4gAsw\nikl0kAMjDi6oOCig9wroFQZnwMh11HmGJWwaUCSiM4IoHPYBGYgGIygykT1kDyEkIeR7/6jqpDk5\np9Pdp7qrqvvzep5+0tVd3fU7X5pvVX9qaUUEZmbW2YblPQAzM2s9N3szsy7gZm9m1gXc7M3MuoCb\nvZlZF3CzNzPrAm72VjiSzpR0eY3nH5D0rlYuo8wk7SrpWUnKeyxWHG72tlWSZki6W9JqSYsk/Zek\nT7ZwkTVP/oiIN0TEra1ahqQeSY/V8yaSpkraKCm3/5ckLZR0YGU6Ih6NiO3CJ9FYFTd7q0nSPwKz\ngHOBnSJiJ+BE4J2SRg7ymqF+rtqxRZr1MloyZknD65gtWrV86xxu9jYoSTsAZwGfjIifRMRzABEx\nLyL+LiLWp/PNlvQ9Sf8paTXQI+m9ku6XtFLSo5LOqHrfytbwCZKekPRkulKpCGCkpEslrUpjm7dW\nvX6hpIPS+8MlfVnSw+m890raJX3u2+myV6aP79dkHfokfU3S7ekybpA0IX268g1jRRqdvD19zfGS\nFkhaJul6SbtWvd8hkh6StELSv0q6RdLfp8/1SrpD0vmSlgBnSHq1pJskLZG0WNIV6X8b0ihqV+Bn\n6fJP6f9tQ9JkSddJWirpT5I+XjWWMyVdPVitrXO42Vst7wBGAT+tY96ZwNcjYgxwB7Aa+LuI2AF4\nL/BJSUf0e00PsBtwCHBqpYGTbKV+APghsANwHfCdqtcFm2OYLwAzgMMiYnvgOOD59Ll7gDcD44Af\nAD8a7NtInX9fLzAJGAmckj6+f/rvDml0cnf6d54OHAVMBG5L/xYkTQR+BJwKjAceIqlzdeSyD/Dn\ndFlnp/X4BrAzsAcwBTgTICKOAR4F3pcu/18GGPucdJ6dgQ8BZ0s6oOr59zN4ra1DuNlbLROBJRGx\nsfKApDslLZe0pt+W8tyIuAsgItZFxC0R8ft0ej5Jw3l3v/c/KyKej4gHgEtIGmrFbRFxfZo7X0HS\ntAfyceArEfGnyrIiYll6/8qIWB4RGyPifJIV1+5N1CGASyLi4YhYC1wNTKuUZID5TwTOiYiH0tqd\nA0xLt+4PBx6IiLnpuC4Anu73+icj4l/T59dGxJ8j4tcR8UJELAG+xZa1HJCkKcDfAKdGxPqI+C1w\nIfCxqtnqrbWVmJu91bIUmFidwUfE30TEuPS5yuMBvGSHpqS3S7pZ0jOSVgD/AEzgpapf8ygwuWp6\nUdX9NcDoQfYFvIJkK3gLaaSxII1LlpNsuU4c5G/dmuqG/Dwwpsa8rwS+na4Ul5PUCmAXkq3rx/vN\n33+6fy13kjRH0uOSVgKXs2UtBzMZWFaJ4FKPpmOpqLfWVmL+D2q13AWsA45s4rU/AOYCr4iIscD3\n2fLztmu/+080sZzHSKKgl5C0P/BF4OiIGJuuoFaS/Y7MgY54eRT4RESMq7ptm37zeYpkBVUZp6qn\nB3nPs4EXgTeksdgxvLSWtY66eRIYL6l65bQrW65grMO52dugImIFyQ7a70r6oKTtJA2TNA3YtmrW\ngRroGGB5RKyXtA/wEbZsSv9b0ssk7UWSh1/VxDAvBL4uaTcl3iRpfLr8DcASSSMlfRXYvon3rxhs\nJbEY2Ai8puqx7wNflrQnJDu6JR2dPvefwBslHSFpBPBp4K+2suwxwHPAqnTn8xf7Pb+o3/I3iYjH\ngDuBcySNkvQm4HiSuMa6iJu91RQR/0yyE/RLJFHG0yTN7EskW/7w0h2mFZ8CviZpFfB/GLiR3wI8\nDPwK+OeI+FWN9xts6/V8kgz9lyRb7v8OjAZuAK4H/ggsJIleHu33frW2iGstf9NrI2INyc7TO9LY\nZp+ImEtyqOqcNHaZD/yvdP4lwNHAN4ElJDtc7yX5BjXYuM4C3pL+fT8Druk3zzkkK87lkr4wwHhn\nAlNJtvJ/Anw1Im6qsTwfn9+B1OrzLiQtBFaRfA19ISL2aekCrfAkTQUeAUZU7/ztRmk2/hjwkYi4\nJe/xWOca0YZlBNBTOULCrNtJOoTksNDn2RzJ/Fd+I7Ju0K4Yx2f3WX/dHBW8gyS+WkxyDsKREbGu\n9kvMhqYdMc4jJFnji8C/RcS/t3SBZma2hXbEOO+MiKck7QjcKOnBiLitDcs1M7NUy5t9RDyV/rtY\n0rUkp4LfBiCpm7/Km5k1LSIaisdbmtlLermk7dL725JcA2V+9TwRQUTwla8EX/tabJr2rfHbGWec\nkfsYOunmerqeRb01o9Vb9jsB1yYnCTICuDIifjnQjBMmwF/+0uLRdLiFCxfmPYSO4npmy/XMV0ub\nfUT8D5svGFXTxIlw332tHI2ZWfcqzBm0EybAkiV5j6Lcent78x5CR3E9s+V65qvlh17WXLgUleXf\nfTecdBLcc09uwzEzKwVJRJF20DZi4kRYunTr89ng+vr68h5CR3E9s+V65qswzd4xjplZ6xQmxomA\nkSNhzRrYZpvchmRmVniljnEkGDcOlvlyaWZmmStMs4ckt3eU0zxnotlyPbPleuarUM1+wgTvpDUz\na4XCZPYARx4Jxx4LRx2V25DMzAqv1Jk9+PBLM7NWKVSz9+GXQ+NMNFuuZ7Zcz3wVrtl7y97MLHuF\nyuwvvhhuvz3518zMBlb6zN4xjplZaxSu2TvGaZ4z0Wy5ntlyPfPlZm9m1gUKldkvXgx77OEox8ys\nlmYy+0I1+w0bYPRoWL8ehhXqO4eZWXGUfgftiBGw3XawYkXeIyknZ6LZcj2z5Xrmq1DNHnwWrZlZ\nKxQqxgHYd1/41rfgHe/IaVBmZgVX+hgHfESOmVkrFK7ZO8ZpnjPRbLme2XI981W4Zu+zaM3Msle4\nzP4b34DnnoOzz85pUGZmBefM3szMBlS4Zu/foW2eM9FsuZ7Zcj3zVbhm7y17M7PsFS6z/93v4KMf\nhfnzcxqUmVnBdURm7xjHzCx7hWv2lRgnxy8cpeVMNFuuZ7Zcz3wVrtmPGgUjR8Lq1XmPxMyscxQu\nswd45Svhlltg6tT2j8nMrOg6IrMH5/ZmZlkrZLP34ZfNcSaaLdczW65nvtzszcy6QMsze0nDgXuB\nxyPi/f2eGzCzP+kkeO1r4bOfbenQzMxKqaiZ/eeABUDdaxVv2ZuZZaulzV7SK4DDgQuButdCbvbN\ncSaaLdczW65nvlq9Zf8t4IvAxkZe5KNxzMyyNaJVbyzpfcAzEXG/pJ7B5uvt7WVqekD92LFjmTZt\nGhMm9LB06eYtgZ6e5OWerj1deawo4yn7dOWxooyn7NOVx4oynjJN9/X1MXv2bIBN/bJRLdtBK+ls\n4BhgAzAa2B64JiI+VjXPgDto//u/4YQT4L77WjI0M7NSK9QO2oj4ckRMiYhXATOAm6obfS3O7JtT\n2RKwbLie2XI989XO4+zr/grhzN7MLFuFvDZOBIweDStXJv+amdlmhYpxhkJylGNmlqVCNntwlNMM\nZ6LZcj2z5Xrmq7DN3lv2ZmbZKWRmD/ChD8H06XD00W0elJlZwXVMZg+OcczMslTYZu8Yp3HORLPl\nembL9cyXm72ZWRcobGZ/6aXw61/DZZe1eVBmZgXnzN7MzAZU2GbvGKdxzkSz5Xpmy/XMl5u9mVkX\nKGxmv3w5vOpVsGJFmwdlZlZwHZXZ77ADPPccbNiQ90jMzMqvsM1+2DAYOxaWLct7JOXhTDRbrme2\nXM98FbbZQ5Lb+4gcM7OhK2xmD7DffnDOObD//m0clJlZwXVUZg8+IsfMLCuFb/aOcernTDRbrme2\nXM98FbrZT5zoLXszsywUOrM/99yk2X/zm20clJlZwTmzNzOzARW62ftiaI1xJpot1zNbrme+Ct3s\nvWVvZpaNQmf2CxbABz8If/hDGwdlZlZwHZnZO8YxMxu6Qjf78eOTq15u3Jj3SMrBmWi2XM9suZ75\nKnSz32Yb2HZbWLky75GYmZVboTN7gNe8Bq6/Hl772jYNysys4DouswefRWtmloXCN3sfflk/Z6LZ\ncj2z5Xrmy83ezKwLFD6zP/lkmDIFvvCFNg3KzKzgOjKz95a9mdnQudl3EGei2XI9s+V65qsUzd5n\n0ZqZDU1LM3tJo4FbgFHASOCnEXF61fNbzexvugm+/nW4+eaWDdPMrFSayexHtGowABGxVtIBEbFG\n0gjgdkn7RcTt9b6HYxwzs6FreYwTEWvSuyOB4cCyRl7vGKd+zkSz5Xpmy/XMV8ubvaRhkuYBi4Cb\nI2JBI6+vbNnneISomVnpte04e0k7ADcAp0VEX/rYVjN7SC6GtmgRjBnT2jGamZVB4TL7ahGxUtJ/\nAG8D+iqP9/b2MnXqVADGjh3LtGnT6OnpATZ/7ZswoYclS+Dee5Pp/s972tOe9nQnT/f19TF79myA\nTf2yUa0+GmcisCEiVkh6GcmW/VkR8ev0+bq27PfeGy68EN761pYNtSP09fVt+qDY0Lme2XI9s9OS\nLXtJewHvAqYCASwEbouI39fx/jsDl0oaRrJ/4PJKo2+Er3xpZjY0g27ZSzoGOAlYCtwDPAmIpIHv\nA0wEvh0RVzS98Dq37GfMgCOOgJkzm12SmVnnyHrLfhxwUEQ8O8jCtgd6G1lYs3z4pZnZ0Ax66GVE\nXACsh01nwvZ/flU6T8s5xqlPZYeOZcP1zJbrma+tHWf/b+mO1e+2YzCD8Vm0ZmZDUyuzfzfwRuBY\nYDbwQETckunC68zsr7wSfv5z+OEPs1y6mVk5teJ69hvTeXI9f9UxjpnZ0NRq9reSHHWzP/C2rLfq\nG+EYpz7ORLPlembL9cxXrR20AZyYXsjsU+0b0pZ8NI6Z2dBs9QxaSZcBn42IFen0eOBfIuL4IS+8\nzsx+1SqYPBlWrx7qEs3Myq9Vv0H7pkqjB4iIZcBbGh3cUGy3HaxfD+vWtXOpZmado55mr3RrvjIx\nnuS69G0jObevhzPRbLme2XI981XPVS/PA+6SdDXJ5RKOBr7R0lENoJLbT57c7iWbmZVfXVe9TC+G\ndiDJIZg3NfoDJDXet67MHqCnB844Aw44IIslm5mVV6syeyLi9xHx/4AXsmr0jXKMY2bWvEZ/lvDE\nloyiDj78cuuciWbL9cyW65mvlv8GbVZ8Fq2ZWfMa+qUqSVMi4rHMFt5AZn/eefDEE3D++Vkt3cys\nnFqS2Us6R9I4gIh4TNI4Sf+32UE2yzGOmVnz6olxDouI5ZWJ9P57WzekgXkH7dY5E82W65kt1zNf\n9TT7YdU/XpJe335k64Y0MGf2ZmbNq+faOKcCHwAuJjmp6jjguog4d8gLbyCz/+Mf4b3vhT/9aahL\nNTMrt2Yy+3pPqjoMOCidvDEibmhifAO9b93NfulS2G03WL586/OamXWyTHfQStr0RhHxi4g4Jb3d\nMNA8rTZ2LDz7LGzY0K4llo8z0Wy5ntlyPfNVK7Pvk/RFSa/r/4Sk3dN4p20/aDJ8eNLwvWVvZta4\nWr9BOwr4KDATeAPwLElmPwZ4ALgS+EFErG964Q3EOAC77w5z58IeezS7RDOz8msmxhn0qpcRsY5k\np+zFkoYDE9OnlkTEi80Ps3k+/NLMrDn1XgjtxYhYlN5yafTgwy+3xplotlzPbLme+SrNtXHAZ9Ga\nmTWroWvjZL7wBjP7U06BSZPgS19q4aDMzAou60Mvb5B0sqTXD31o2XCMY2bWnFoxTi+wAjhT0v2S\nvi/pCEnbtmdoW3KMU5sz0Wy5ntlyPfNV62icp4BLgEvSo3HeDhwGfEnSWuCGiPhme4aZ8NE4ZmbN\naSqzl7QjcEhEXDmkhTeY2d96K3zlK3DbbUNZqplZuWV6nH0tEbGY5KSqtvKWvZlZc3zoZQdxJpot\n1zNbrme+StXsx49Pro2T49GiZmal1Gxmf1xEXDLkhTeY2QPssAP85S/JRdHMzLpRS36DdhBfq2cm\nSVMk3Szp95IekPTZJpe3iaMcM7PG1Tqpav5gN2BSne//AnByROwF7At8WtKQrlnpnbSDcyaaLdcz\nW65nvmodjTMJOBQY6Aryd9bz5hHxNPB0en+1pD8Ak4E/NDjOTXwWrZlZ42o1+/8AxkTE/f2fkNTw\nj5ZImgrsDdzd6GurOcYZXE9PT95D6CiuZ7Zcz3zVOoP2+BrPzWxkIZLGAD8GPhcRqxt5bX+OcczM\nGtfUSVWNkLQNcA1wRUTM7f98b28vU6dOBWDs2LFMmzZt0xZAJeOrnn72WVi6dPDnu3l61qxZW62f\np11P17N80319fcyePRtgU79sVEsvcZz+IPmlwNKIOHmA5xs+9PK734X58+F738tokB2kr69v0wfF\nhs71zJbrmZ1mDr1sdbPfD7gV+B1QWdDpEXF9+nzDzf6qq+DHP4Yf/SjToZqZlUbbro1Tr4i4nYzP\n0nVmb2bWuFJdLgF86GUtlYzPsuF6Zsv1zFfpmr0PvTQza1ypfoMWYM2a5IJozz8PaiixMjPrDO28\nNk5uXv5yGDYsafpmZlaf0jV7cJQzGGei2XI9s+V65qu0zd47ac3M6le6zB7gPe+BU0+Fgw9uwaDM\nzAquKzJ7cIxjZtao0jZ7xzhbciaaLdczW65nvtzszcy6QCkz+29/G/78Z7jgghYMysys4JzZm5nZ\ngErb7B3jbMmZaLZcz2y5nvkqZbP3xdDMzBpTysz+kUfgwANh4cLsx2RmVnRdldl7y97MrH6lbPbb\nbw9r18K6dXmPpFiciWbL9cyW65mvUjZ7yVv3ZmaNKGVmD7DXXjBnDrzxjRkPysys4Lomswdv2ZuZ\nNaK0zd6HX27JmWi2XM9suZ75Km2z91m0Zmb1K21mf9ppyVE5X/5yxoMyMyu4rsrsHeOYmdWvtM3e\nMc6WnIlmy/XMluuZr1I3e2/Zm5nVp7SZ/R13wCmnwF13ZTwoM7OC67rM3jGOmVl9StvsHeNsyZlo\ntlzPbLme+Sptsx83DlatghdfzHskZmbFV9rMHpKt+4ceSiIdM7Nu0VWZPfjwSzOzepW+2Tu338yZ\naLZcz2y5nvkqdbP3WbRmZvUpdWbf2wvvehccf3x2YzIzK7quzOy9ZW9mtnUtbfaSLpa0SNL8Vry/\nm/1LORPNluuZLdczX63esr8EOLRVb+6zaM3M6tPyzF7SVOBnEbHFr8UONbO/5hq44gq49trmx2dm\nVjZdl9m/4Q3JBdEefTTvkZiZFduIvAfQ29vL1KlTARg7dizTpk2jp6cH2JzxDTb91FN9HHkkzJzZ\nQ18f3HFH7fk7fXrWrFkN1c/Ttaddz2ynXc/mp/v6+pg9ezbApn7ZqFLHOAAbN8Lhh8Nb3gJnnz2k\ntyq9vr6+TR8UGzrXM1uuZ3aaiXFK3+wBnnkG9t4bZs+Ggw8e8tuZmRVa4TJ7ST8E7gReJ+kxSce1\nYjmTJsHll8Oxx8LTT7diCWZm5dbSZh8RMyNickSMiogpEXFJq5Z14IHw8Y/DMcck0U43qmR8lg3X\nM1uuZ75KfTROf1/9KqxbB//0T3mPxMysWEp9bZyBPP44vO1t8OMfw377ZfrWZmaFULjMPg+veAVc\neCF85CO+lIKZWUXHNXuA970PPvSh5GqYOX5xaTtnotlyPbPleuarI5s9JLn9k0/CBRfkPRIzs/x1\nXGZf7ZFHYN994Re/gLe+tWWLMTNrK2f2/bz61fCd78D06bBqVd6jMTPLT0c3e4APfxgOOghOPLHz\n83tnotlyPbPleuar45s9wKxZMH8+XHxx3iMxM8tHR2f21RYsgHe/G/r6YK+92rJIM7OWcGZfw557\nwrnnJvn9mjV5j8bMrL26ptkDHHccvPnN8PnP5z2S1nAmmi3XM1uuZ766qtlL8P3vJ1HOnDl5j8bM\nrH26JrOvdv/9cMghcNddsNtubV+8mdmQOLOv0957J1fInDEjuUqmmVmn68pmD/CZz8CUKXDaaXmP\nJDvORLPlembL9cxX7j84nhcJLroo2cqfMAF6e5MrZpqZdaKuzOyrLVgA550Hc+cmh2fOmJFcMXOn\nnXIdlpnZoAr5g+M1F16AZl+xfj388pdw1VXw858nF06bPh3+9m+TLX8zs6LwDtohGDkyuQ7+5Zcn\nl0b+1KfgxhuTi6kdfjhcdhmsXJn3KGtzJpot1zNbrme+3OwH8LKXJVv0V18NTzyR/Ij5NdfArrvC\nUUclx+g/91zeozQzq59jnAasWJFk+1ddBXfeCYcemmT8hx0Go0fnPToz6xbO7NtoyRL4yU+Srfz7\n74f3vz/J+A8+OImEzMxaxZl9G02cCJ/4BNx0U3JEz1//NZxzDkyeDCecAL/6FWzY0N4xORPNluuZ\nLdczX272Gdh5ZzjpJLj9drjvPth9dzj9dNhlF/j0p+G222DjxrxHaWbdzDFOCz38cLKTd84cWLYs\n+dWs6dNhn32Sk7rMzJrhzL7AFixIduzOmZMc0z99erJz981vduM3s8Y4sy+wPfeEs86CBx+Ea69N\nGvxRR8HrXw9nnAHz5iVH+wxl3edMNFuuZ7Zcz3x17bVx8iLBtGnJ7eyz4Te/Sbb2Z8yAp56CtWuT\nnb+TJm2+7bjj4NPbbpv3X2RmZeAYp2DWroXFi5PbM89svg00vWhRsvKod8Ww444walTef6GZDZUz\n+y4TkZzJO9jKoP/04sXJ2cG1VgbVz02YACP83c+scNzsu1xfXx89PT2DPh+R7BfovzIYbEWxbBmM\nHVvft4ZJk5J5h3XQXqCt1dMa43pmp5lm7+22LiLBuHHJbffdtz7/iy/C0qUDrwx++9stVw6rV790\nf0Otbw077gjbbecjkczaxVv2lpn165PLSGwtTqrc37Bh4JXBhAlJ3DRq1Etvo0fX99ioUY6frLM5\nxrFSWbNm4JXBkiXJjup16zbf+k8P9ljl8WHDhrayyHpef4OxLBWu2Us6FJgFDAcujIhz+z3vZp8h\nZ6KJiORbQ70rhsEee/DBPiZP7ml6hVO5v349bLNNcyuLkSNh+PDNt2HD6p9uZN52vPaOO/o44ICe\nTdOdtH+n3QqV2UsaDnwHeA/wBPAbSddFxB9atcxuN2/ePDd7kq3obbZJbmPGNP8+s2bN4/Of7xny\neCKSht/MCmf9+mTfyYsvJtdXqtyvnl63bsvnB5u3nulWvXbt2nkMH96zaRqaX6kMG/bS+40+Vvb5\nm9HKZHMf4OGIWAggaQ5wBOBm3yIrVqzIewgdJat6Spu32LvZmWeu4MwzN09v3NjYSqbyWPXrqv8d\n6LFaz2X9Hi+88NIVb6vGWFlRNqqVzX4X4LGq6ceBt7dweWZWIpWtVu9Mb1wz+4BamZo5jG+zhQsX\n5j2EjuJ6Zsv1zFfLdtBK2hc4MyIOTadPBzZW76SV5BWCmVkTCnM0jqQRwEPAQcCTwD3ATO+gNTNr\nv5alZRGxQdJngBtIDr28yI3ezCwfuZ5UZWZm7ZHbaQ2SDpX0oKQ/STo1r3F0CkkLJf1O0v2S7sl7\nPGUi6WJJiyTNr3psvKQbJf1R0i8ljc1zjGUySD3PlPR4+vm8Pz3h0uogaYqkmyX9XtIDkj6bPt7Q\nZzSXZl91wtWhwJ7ATEl75DGWDhJAT0TsHRH75D2YkrmE5LNY7TTgxoh4HfDrdNrqM1A9Azg//Xzu\nHRHX5zCusnoBODki9gL2BT6d9suGPqN5bdlvOuEqIl4AKidc2dD4CixNiIjbgOX9Hv4AcGl6/1Lg\nyLYOqsQGqSf489mUiHg6Iual91eTnJi6Cw1+RvNq9gOdcLVLTmPpFAH8StK9kk7IezAdYKeIWJTe\nXwTslOdgOsRJkn4r6SLHYs2RNBXYG7ibBj+jeTV77xXO3jsjYm/gMJKvefvnPaBOkV6tz5/Zofke\n8CpgGvAUcF6+wykfSWOAa4DPRcSz1c/V8xnNq9k/AUypmp5CsnVvTYqIp9J/FwPXkkRl1rxFkv4K\nQNLOwDM5j6fUIuKZSAEX4s9nQyRtQ9LoL4+IuenDDX1G82r29wKvlTRV0khgOnBdTmMpPUkvl7Rd\nen9b4BBgfu1X2VZcBxyb3j8WmFtjXtuKtBlVHIU/n3WTJOAiYEFEzKp6qqHPaG7H2Us6jM3Xur8o\nIs7JZSAdQNKrSLbmITlR7krXs36Sfgi8G5hIkn1+FfgpcDWwK7AQ+HBE+LKidRignmcAPSQRTgD/\nA/xDVd5sNUjaD7gV+B2bo5rTSa5KUPdn1CdVmZl1Af9WjJlZF3CzNzPrAm72ZmZdwM3ezKwLuNmb\nmXUBN3szsy7gZm9m1gXc7M3MuoCbvdkAJH0svULjPEmX5T0es6HyGbRm/UjaC/gJ8I6IWCZpXEQM\ndH12s9Lwlr3Zlg4Ero6IZQBu9NYJ3OzNthT4V5Wsw7jZm23pJuBoSeMh+WHnnMdjNmTO7M0GIOlj\nwBeBF4H7IuL4nIdkNiRu9mZmXcAxjplZF3CzNzPrAm72ZmZdwM3ezKwLuNmbmXUBN3szsy7gZm9m\n1gXc7M3MusD/B+nAo2p5Y3p0AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x783b160>"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter12.ipynb b/Mass_-_Transfer_Operations/Chapter12.ipynb
new file mode 100755
index 00000000..62994f86
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter12.ipynb
@@ -0,0 +1,922 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:648d6196f9fbdd06162570014332196a676f8de89932a2e6d95cd0329cdf5ac2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Drying"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.1: Page 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.1\n",
+ "# Page: 660\n",
+ "\n",
+ "print'Illustration 12.1 - Page: 660\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#****Data****#\n",
+ "F=1000;# [kg]\n",
+ "Xo=0.8;# [wt. fraction water]\n",
+ "X1=0.05;# [wt. fraction water]\n",
+ "#************#\n",
+ "\n",
+ "Yo=Xo/(1-Xo);# [kg water/kg dry solid]\n",
+ "Y1=X1/(1-X1);# [kg water/kg dry solid]\n",
+ "solid=F*(1-X1);# [kg]\n",
+ "print\"Moisture to be evaporated: \",solid*(Yo-Y1),\" kg\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.1 - Page: 660\n",
+ "\n",
+ "\n",
+ "Moisture to be evaporated: 3750.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.2: Page 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.2\n",
+ "# Page: 665\n",
+ "\n",
+ "print'Illustration 12.2 - Page: 665\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "# ***Data***#\n",
+ "Y1 = 0.05;# [kg water/kg dry air]\n",
+ "Yair = 0.01;# [kg water/kg dry air]\n",
+ "TempG1 = 95;# [OC]\n",
+ "width = 1;# [m]\n",
+ "apart = 100.0/1000;# [m]\n",
+ "deep = 38.0/1000;# [m]\n",
+ "Rate_evaporation=7.5*10**(-3);# [kg/s]\n",
+ "#*****************#\n",
+ "\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "vH = (0.00283+(0.00456*Y1))*(TempG1+273);# [cubic m/kg dry air]\n",
+ "freeArea = width*(apart-deep)*11;# [square m]\n",
+ "# Rate of air flow at 1:\n",
+ "Rate_air1 = 3*freeArea/vH;# [square m]\n",
+ "Y2 = Y1+(Rate_evaporation/Rate_air1);# [kg water/kg dry air]\n",
+ "# Assuming adiabatic drying:\n",
+ "# From adiabatic saturation curve, Fig 7.5: (Pg 232)\n",
+ "TempG2 = 86.0;# [OC]\n",
+ "# Overall Water Balance:\n",
+ "G = Rate_evaporation/(Y1-Yair);# [kg dry air/s]\n",
+ "# Rate of air flow at 3:\n",
+ "Rate_air3 = Rate_air1+G;# [kg dry air/s]\n",
+ "# Rate of air flow at 4:\n",
+ "Rate_air4 = Rate_air3;# [kg dry air/s]\n",
+ "# Volumetric Rate through fan:\n",
+ "Rate_fan = Rate_air3/vH;# [cubic m/s]\n",
+ "print\"Percentage of air recycled is:\",round((Rate_air1/Rate_air3)*100,2),\"%\\n\",\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# From Fig. 7.5 (page 232):\n",
+ "# Saturated enthalpy at adiabatic saturation temp.\n",
+ "Enthalpy1 = 233.0;# [kJ/kg dry air]\n",
+ "Enthalpy2 = 233.0;# [kJ/kg dry air]\n",
+ "# Enthalpy of fresh air:\n",
+ "Enthalpy_air = 50.0;# [kJ/kg dry air]\n",
+ "# Assuming complete mixing, by Enthalpy mixing:\n",
+ "Enthalpy3 = ((Enthalpy1*Rate_air1)+(Enthalpy_air*G))/Rate_air3;# [kJ/kg dry air]\n",
+ "Enthalpy4 = Enthalpy3;# [kJ/kg dry air]\n",
+ "# From table 7.1: (Pg 234)\n",
+ "Temp_dry = ((Enthalpy3*1000.0)-(2502300.0*Y1))/(1005.0+(1884.0*Y1));\n",
+ "Power = (Enthalpy2-Enthalpy3)*Rate_air3;# [kW]\n",
+ "# From Fig. 7.5, (Pg 232)\n",
+ "DewPoint1 = 40.4;# [OC]\n",
+ "DewPoint2 = 41.8;# [OC]\n",
+ "DewPoint3 = 40.4;# [OC]\n",
+ "DewPoint4 = 40.4;# [OC]\n",
+ "print\"At Point 1\\n\"\n",
+ "print\"Enthalpy of air:\",Enthalpy1,\" kJ/kg dry air\\n\",\n",
+ "print\"Dew Point of air: \",DewPoint1,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 2\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy2,\" kJ/kg dry air\\n\"\n",
+ "print\"Dew Point of air: \",DewPoint2,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 3\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy3,\" kJ/kg dry air\\n\",\n",
+ "print\"Dew Point of air: \",DewPoint3,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 4\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy4,\" kJ/kg dry air\\n\"\n",
+ "print\"Dew Point of air: \",DewPoint4,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"Dry bulb temparature of air: \",Temp_dry,\" OC\\n\"\n",
+ "print\"Power delivered by heater: \",Power,\" kW\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.2 - Page: 665\n",
+ "\n",
+ "\n",
+ "Percentage of air recycled is: 90.65 %\n",
+ "\n",
+ "\n",
+ "At Point 1\n",
+ "\n",
+ "Enthalpy of air: 233.0 kJ/kg dry air\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 2\n",
+ "\n",
+ "Enthalpy of air: 233.0 kJ/kg dry air\n",
+ "\n",
+ "Dew Point of air: 41.8 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 3\n",
+ "\n",
+ "Enthalpy of air: 215.89174489 kJ/kg dry air\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 4\n",
+ "\n",
+ "Enthalpy of air: 215.89174489 kJ/kg dry air\n",
+ "\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dry bulb temparature of air: 82.5843748998 OC\n",
+ "\n",
+ "Power delivered by heater: 34.3125 kW\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.3: Page 671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.3\n",
+ "# Page: 671\n",
+ "\n",
+ "print'Illustration 12.3 - Page: 671\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "# ***Data***#\n",
+ "SsByA = 40;\n",
+ "x1 = 0.25;# [moisture fraction]\n",
+ "x2 = 0.06;# [moisture fraction]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg moisture/kg dry solid]\n",
+ "X2 = x2/(1-x2);# [kg moisture/kg dry solid]\n",
+ "# Fig. 12.10 (Pg 668) indicates that both constant and falling rate periods are involved.\n",
+ "\n",
+ "# Constant Rate period:\n",
+ "# From Fig. 12.10 (Pg 668):\n",
+ "Xc = 0.200;# [kg moisture/kg dry solid]\n",
+ "Nc = 0.3*10**(-3);# [kg/square m.s]\n",
+ "# From Eqn. 12.4:\n",
+ "thetha1 = SsByA*(X1-Xc)/Nc;# [s]\n",
+ "\n",
+ "# Falling Rate Period:\n",
+ "# From Fig. 12.10 (Pg 668):\n",
+ "# Data=[x N*10^3]\n",
+ "Data = numpy.array([[0.2 ,0.3],[0.18 ,0.266],[0.16 ,0.239],[0.14 ,0.208],[0.12, 0.180],[0.10 ,0.150],[0.09 ,0.097],[0.08, 0.070],[0.07 ,0.043],[0.064 ,0.025]]);\n",
+ "Val = zeros(10);\n",
+ "# Val=[(1/N)*10^(-3)]\n",
+ "for i in range(0,10):\n",
+ " Val[i] = 1/Data[i,1];\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid();\n",
+ "plt.xlabel(\"x [kg moisture / kg dry solid]\");\n",
+ "plt.ylabel(\"10^(-3) / N\");\n",
+ "plt.title(\"Graphical Integration Falling Rate Period\");\n",
+ "# Area under the curve:\n",
+ "Area = 1060.0;\n",
+ "# From Eqn. 12.3:\n",
+ "thetha2 = SsByA*Area;# [s]\n",
+ "thetha = thetha1+thetha2;# [s]\n",
+ "print\"Total Drying Time: \",round(thetha/3600,2),\"h\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.3 - Page: 671\n",
+ "\n",
+ "\n",
+ "Total Drying Time: 16.72 h\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7786b00>"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.4: Page 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.4\n",
+ "# Page: 676\n",
+ "\n",
+ "print'Illustration 12.4 - Page: 676\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "#***Data***#\n",
+ "# For rectangular pan:\n",
+ "l = 0.7;# [m]\n",
+ "b = 0.7;# [m]\n",
+ "zS = 0.025;# [m]\n",
+ "zM = 0.0008;# [m]\n",
+ "d = 0.1;# [m]\n",
+ "Y1 = 0.01;# [kg water/kg dry air]\n",
+ "TempG = 65.0;# [OC]\n",
+ "v = 3.0;# [m/s]\n",
+ "TempR = 120.0;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "vH = (0.00283+(0.00456*Y1))*(TempG+273.0);# [cubic m/kg dry air]\n",
+ "Density_G = (1+Y1)/vH;# [kg/cubic m]\n",
+ "G = v*Density_G;# [kg/square m.s]\n",
+ "de = 4*d*l/(2*(l+d));# [m]\n",
+ "# From Eqn. 12.20:\n",
+ "hc = 5.90*G**0.71/de**0.29;# [W/square m.K]\n",
+ "# Assume:\n",
+ "e = 0.94;\n",
+ "# Estimate:\n",
+ "TempS = 38;# [OC]\n",
+ "# From Eqn. 12.14:\n",
+ "hR = e*5.729*10**(-8)*((273+TempR)**4-(273+TempS)**4)/((273.0+TempR)-(273+TempS));\n",
+ "A = l*b;# [square m]\n",
+ "Am = A;# [square m]\n",
+ "As = 4*l*zS;# [square m]\n",
+ "Au = Am+As;# [square m]\n",
+ "# Thermal Coductivities:\n",
+ "kM = 45;# [W/m.K]\n",
+ "kS = 3.5;# [W/m.K]\n",
+ "# By Eqn. 12.16:\n",
+ "Uk = 1/(((1/hc)*(A/Au))+((zM/kM)*(A/Au))+((zS/kS)*(A/Am)));# [W/squre m.K]\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "Cs = 1005+(1884*Y1);# [kJ/kg]\n",
+ "# At estimated 38 OC\n",
+ "lambdaS = 2411.4;# [kJ/kg]\n",
+ "# From Eqn. 12.18:\n",
+ "# (Ys-Y1)*lambdaS*10^3/Cs = ((1+(Uk/hc))*(TempG-Temps))+((hR/hC)*(TempR-TempS))\n",
+ "# On Simplifying:\n",
+ "# Ys = 0.0864-(10.194*10**(-4)*TempS)\n",
+ "# The eqn. is solved simultaneously with the saturated humidity curve of the psychometric chart for the air water mixture.\n",
+ "# From Fig. 12.12: (Pg 677)\n",
+ "Ys = 0.0460;# [kg water/kg dry air]\n",
+ "TempS = 39;# [OC]\n",
+ "# At 39 OC\n",
+ "lambdaS = 2409.7;# [kJ/kg]\n",
+ "# From Eqn. 12.17:\n",
+ "Nc = (((hc+Uk)*(TempG-TempS))+(hR*(TempR-TempS)))/(lambdaS*10**(3));# [kg water evaporated/square m.s]\n",
+ "print\"The Evaporation Rate: \",round(Nc*A,8),\" kg/s\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "# When no radiation or conduction of heat through the solid occurs, the drying surface assumes wet bulb temparature of the air.\n",
+ "# From Fig. 12.12 (Pg 677)\n",
+ "TempS = 28.5;# [OC]\n",
+ "Ys = 0.025;# [kg water/kg dry air]\n",
+ "lambdaS = 2435;# [kJ/kg]\n",
+ "# From Eqn. 12.17:\n",
+ "Nc = hc*(TempG-TempS)/(lambdaS*10**3);# [kg/aquare m.s]\n",
+ "print\"The Evaporation Rate: \",round(Nc*A,8), \"kg/s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.4 - Page: 676\n",
+ "\n",
+ "\n",
+ "The Evaporation Rate: 0.0003851 kg/s\n",
+ "\n",
+ "The Evaporation Rate: 0.00016105 kg/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.5: Page 684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.5\n",
+ "# Page: 684\n",
+ "\n",
+ "print'Illustration 12.5 - Page: 684\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "#***Data***#\n",
+ "x1 = 0.025;# [moisture fraction]\n",
+ "x2 = 0.001;# [moisture fraction]\n",
+ "zS = 0.018;# [m]\n",
+ "dp = 2*10**(-4);# [m]\n",
+ "Density_S = 1350;# [kg dry solid/cubic m]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg water/kg dry air]\n",
+ "X2 = x2/(1-x2);# [kg water/kg dry air]\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Y1 = 0.0153;# [kg water/kg dry air]\n",
+ "Tempas = 24;# [OC]\n",
+ "Yas = 0.0190;# [kg water/kg dry air]\n",
+ "Gs = 0.24;# [kg dry air/square m.s]\n",
+ "Gav = Gs+(Gs*(Y1+Yas)/2.0);# [kg dry air/square m.s]\n",
+ "# From Eqn. 12.26:\n",
+ "Nmax = Gs*(Yas-Y1);# [kg evaporated/square m.s]\n",
+ "viscosity_air = 1.8*10**(-5);# [kg/m.s]\n",
+ "X3=lambda X : 1/(Nmax*(1-math.exp(-(0.273/dp**0.35)*((dp*Gav/viscosity_air)**0.215)*(Density_S*zS*X)**0.64)));\n",
+ "Value = integrate.quad(X3,X2,X1);\n",
+ "# From Eqn. 12.3:\n",
+ "thetha = Density_S*zS*Value[0];# [s]\n",
+ "print\"The time for drying: \",round(thetha/60,3),\" min\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.5 - Page: 684\n",
+ "\n",
+ "\n",
+ "The time for drying: 12.593 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.6: Page 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.6\n",
+ "# Page: 685\n",
+ "\n",
+ "print'Illustration 12.6 - Page: 685\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "import math\n",
+ "#***Data***#\n",
+ "Y1 = 0.01;# [kg water/kg dry air]\n",
+ "Gs = 1.1;# [kg dry air/square m.s]\n",
+ "dia = 13.5/1000;# [m]\n",
+ "l = 13.0/1000;# [m]\n",
+ "zS = 50.0/1000;# [m]\n",
+ "Density_S = 600.0;# [kg dry solid/square m.s]\n",
+ "a = 280.0;# [square m/cubic m]\n",
+ "#************#\n",
+ "\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Yas = 0.031;# [kg water/kg dry air]\n",
+ "Gav = Gs+(Gs*(Y1+Yas)/2.0);# [kg/square m.s]\n",
+ "viscosity_air = 1.9*10**(-5);# [kg/m.s]\n",
+ "Area = (2.0*math.pi*dia**2.0/4)+(math.pi*dia*l);# [square m]\n",
+ "dp = (Area/math.pi)**0.5;# [m]\n",
+ "# From Table 3.3 (Pg 74)\n",
+ "Re = dp*Gav/viscosity_air;\n",
+ "e = 1.0-(dp*a/6);# [fraction voids]\n",
+ "jD = (2.06/e)*Re**(-0.575);\n",
+ "# For air water mixture:\n",
+ "Sc = 0.6;\n",
+ "# From Eqn. 12.33:\n",
+ "kY = jD*Gs/Sc**(2.0/3);# [kg H2O/square m.s.deltaX]\n",
+ "# From Eqn. 12.30:\n",
+ "NtG = kY*a*zS/Gs;\n",
+ "# From Eqn. 12.25:\n",
+ "Nmax = Gs*(Yas-Y1);# [kg/square m.s]\n",
+ "# From Eqn. 12.31:\n",
+ "N = Nmax*(1-math.exp(-NtG));# [kg water evaporated/square m.s]\n",
+ "Y2 = (Yas-Y1)*(N/Nmax)+Y1;# [kg water/kg dry air]\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Tempas = 33.0;# [OC]\n",
+ "# From eqn. 12.2:\n",
+ "Rate = N/(Density_S*zS);# [kg H2O/(kg dry solid).s]\n",
+ "print\"Humidity of the exit air: \",round(Y2,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Temparature of exit air: \",Tempas,\" degree C\\n\"\n",
+ "print\"Rate of Drying: \",round(Rate,7),\" kg H2O/(kg dry solid).s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.6 - Page: 685\n",
+ "\n",
+ "\n",
+ "Humidity of the exit air: 0.0302 kg water/kg dry air\n",
+ "\n",
+ "Temparature of exit air: 33.0 degree C\n",
+ "\n",
+ "Rate of Drying: 0.0007409 kg H2O/(kg dry solid).s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.7: Page 700"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.7\n",
+ "# Page: 700\n",
+ "\n",
+ "print'Illustration 12.7 - Page: 700\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "import math\n",
+ "from numpy.linalg import inv\n",
+ "#***Data***#\n",
+ "x1 = 3.5;# [percent moisture]\n",
+ "x2 = 0.2;# [percent moisture]\n",
+ "dia = 1.2;# [m]\n",
+ "l = 6.7;# [m]\n",
+ "Rate_prod = 900.0;# [kg/h]\n",
+ "y2 = 0.5;# [Humidity]\n",
+ "TempG2 = 90.0;# [OC]\n",
+ "TempG1 = 32.0;# [OC]\n",
+ "TempS1 = 25.0;# [OC]\n",
+ "TempS2 = 60.0;# [OC]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(100.0-x1);# [kg H2O/kg dry solid]\n",
+ "X2 = x2/(100.0-x2);# [kg H2O/kg dry solid]\n",
+ "Ss = Rate_prod*(1-X2);# [kg dry solid/h]\n",
+ "Rate_drying = Ss*(X1-X2);# [kg water evaporated/h]\n",
+ "Y2 = (y2/(1-y2))/100.0;# [kg water/kg dry air]\n",
+ "Tempo = 0.0;# [Base temp,OC]\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "# Enthalpy of air entering the drier:\n",
+ "HG2 = (1005.0+(1884.0*Y2))*(TempG2-Tempo)+(2502300.0*Y2);# [J/kg dry air]\n",
+ "# For the outlet air:\n",
+ "# HG1 = (1005.0+(1884*Y1))*(TempG1-Tempo)+(2502300*Y1); [J/kg dry air]\n",
+ "# HG1 = (1005.0*TempG1)+((1884+TempG1)+2502300)*Y1; [J/kg dry air]\n",
+ "CsNH4 = 1507.0;# [J/kg.K]\n",
+ "CsH2O = 4187.0;# [J/kg.K]\n",
+ "# From Eqn. 11.45:\n",
+ "HS2 = CsNH4*(TempS2-Tempo)+(X2*CsH2O*(TempS2-Tempo));# [J/kg dry air]\n",
+ "HS1 = CsNH4*(TempS1-Tempo)+(X1*CsH2O*(TempS1-Tempo));# [J/kg dry air]\n",
+ "# The estimated combined natural convection and radiation heat transfer coeffecient from the drier to the surrounding:\n",
+ "h = 12.0;# [W/square m.K]\n",
+ "deltaTemp = ((TempG2-TempS1)+(TempG1-TempS1))/2;# [OC]\n",
+ "Ae = math.pi*dia*l;# [square m]\n",
+ "Q = h*3600.0*Ae*deltaTemp;# [kJ/h]\n",
+ "# Moisture Balance, Eqn. 12.39:\n",
+ "# Ss*(X1-X2) = Gs(Y1-Y2)\n",
+ "# (Gs*Y1)-(Gs*Y2) = (Ss*(X1-X2)) ........(1)\n",
+ "# Enthalapy Balance, Eqn. 12.40:\n",
+ "# (Ss*HS1)+(Gs*HG2) = (Ss*HG2)+(Gs*HG1)+Q \n",
+ "# Gs*(HG2-HG1) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-((1005*TempG1)+((1884+TempG1)+2502300)*Y1)) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-(1005*TempG1))-(Gs*Y1*((1884+TempG1)+2502300)) = (Ss*HS2)+Q-(Ss*HS1)........ (2)\n",
+ "# Solving Simultaneously:\n",
+ "a = numpy.array([[HG2-(1005.0*TempG1),-((1884.0+TempG1)+2502300.0)],[(-Y2), 1.0]]);\n",
+ "b = numpy.array([[((Ss*HS2)+Q-(Ss*HS1))],[(Ss*(X1-X2))]]);\n",
+ "c=inv(a)\n",
+ "soln =np.dot(c, b)\n",
+ "Gs = soln[0];# [kg dry air/h]\n",
+ "Y1 = soln[1]/soln[0];# [kg water/kg dry air]\n",
+ "# From Fig. 7.5 (Pg 232)\n",
+ "Enthalpy_air = 56.0;# [kJ/kg dry air]\n",
+ "HeatLoad = Gs*(HG2-Enthalpy_air*1000);# [W]\n",
+ "print\"Air Flow Rate: \",round(Gs,2),\" kg/h\\n\"\n",
+ "print\"Moisture content of air: \",round(Y1,2),\" kg water/kg dry air \\n\"\n",
+ "print\"Heat Load of drier: \",round(HeatLoad/1000),\" kW\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.7 - Page: 700\n",
+ "\n",
+ "\n",
+ "Air Flow Rate: 2681.03 kg/h\n",
+ "\n",
+ "Moisture content of air: 0.02 kg water/kg dry air \n",
+ "\n",
+ "Heat Load of drier: 163995.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.8: Page 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.8\n",
+ "# Page: 705\n",
+ "\n",
+ "print'Illustration 12.8 - Page: 705\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "from numpy.linalg import inv\n",
+ "import numpy as np\n",
+ "#***Data***#\n",
+ "x1 = 8.0;# [percent moisture]\n",
+ "x2 = 0.5;# [percent moisture]\n",
+ "Rate_prod = 0.63;# [kg/s]\n",
+ "# Drying Gas:\n",
+ "xCO2 = 0.025;# [mole fraction]\n",
+ "xO2 = 0.147;# [mole fraction]\n",
+ "xN2 = 0.760;# [mole fraction]\n",
+ "xH2O = 0.068;# [mole fraction]\n",
+ "TempG2 = 480.0;# [OC]\n",
+ "Cs = 0.837;# [kJ/kg.K]\n",
+ "Temp1 = 27.0;# [OC]\n",
+ "Temp2 = 150.0;# [OC]\n",
+ "dp = 200.0*10**(-6);# [m]\n",
+ "Density_S = 1300.0;# [kg/cubic m]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(100-x1);# [kg water/kg dry solid]\n",
+ "X2 = x2/(100-x2);# [kg water/kg dry solid]\n",
+ "Ss = Rate_prod*(1-X2);# [kg dry solid/s]\n",
+ "Water_evap = Ss*(X1-X2);# [kg/s]\n",
+ "# Basis: 1 kmol of dry gas:\n",
+ "xDry = 1.0-xH2O;# [kmol]\n",
+ "XCO2 = 44.0*xCO2;# [kg]\n",
+ "XO2 = 32.0*xO2;# [kg]\n",
+ "XN2 = 28.0*xN2;# [kg]\n",
+ "Xdry = XCO2+XO2+XN2;# [kg]\n",
+ "cCO2 = 45.6;# [kJ/kmol.K]\n",
+ "cO2 = 29.9;# [kJ/kmol.K]\n",
+ "cN2 = 29.9;# [kJ/kmol.K]\n",
+ "cH2O = 4.187;# [kJ/kg.K]\n",
+ "Mav = Xdry/xDry;# [kg/kmol]\n",
+ "Y2 = xH2O*18.02/(xDry*Mav);# [kg water/kg dry gas]\n",
+ "cav = ((xCO2*cCO2)+(xO2*cO2)+(xN2*cN2))/(xDry*Mav);# [kJ/kmol.K]\n",
+ "# Assume:\n",
+ "TempG1 = 120.0;# [OC]\n",
+ "cDry = 1.005;# [kJ/kmol.K]\n",
+ "Tempo = 0;# [Base Temp,OC]\n",
+ "# By Eqn. 7.13:\n",
+ "HG2 = (cav+(1.97*Y2))*(TempG2-Tempo)+(2502.3*Y2);# [kJ/kg dry air]\n",
+ "# For the outlet air:\n",
+ "# HG1 = (1.005+(1.884*Y1))*(TempG1-Tempo)+(2502.3*Y1); [kJ/kg dry air]\n",
+ "# HG1 = (1.005*TempG1)+((1.884+TempG1)+2502.3)*Y1; [kJ/kg dry air]\n",
+ "# By Eqn. 11.45:\n",
+ "HS1 = (Cs*(Temp1-Tempo))+(cH2O*X1*(Temp1-Tempo));# [kJ/kg dry air]\n",
+ "HS2 = (Cs*(Temp2-Tempo))+(cH2O*X2*(Temp2-Tempo));# [kJ/kg dry air]\n",
+ "# Q = 0.15*HG2*Gs; [kJ/s]\n",
+ "# Moisture Balance, Eqn. 12.39:\n",
+ "# Ss*(X1-X2) = Gs(Y1-Y2)\n",
+ "# (Gs*Y1)-(Gs*Y2) = (Ss*(X1-X2)) ........(1)\n",
+ "# Enthalapy Balance, Eqn. 12.40:\n",
+ "# (Ss*HS1)+(Gs*HG2) = (Ss*HG2)+(Gs*HG1)+Q \n",
+ "# Gs*(HG2-HG1) = (Ss*HS2)+(0.15*HG2*Gs)-(Ss*HS1)\n",
+ "# Gs*(HG2-(0.15*HG2)-((1.005*TempG1)+((1.884+TempG1)+2502.3)*Y1)) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-(0.15*HG2)-(1.005*TempG1))-(Gs*Y1*((1.884+TempG1)+2502.3)) = (Ss*HS2)+Q-(Ss*HS1)........ (2)\n",
+ "a = np.array([[(HG2-(0.15*HG2)-(1.005*TempG1)),-((1.884+TempG1)+2502.3)],[(-Y2), 1.0]]);\n",
+ "b = np.array([(Ss*HS2)-(Ss*HS1),(Ss*(X1-X2))]);\n",
+ "c=inv(a)\n",
+ "soln = np.dot(c, b)\n",
+ "Gs = soln[0];# [kg dry air/s]\n",
+ "Y1 = soln[1]/soln[0];# [kg water/kg dry gas]\n",
+ "HG1 = (1.005+(1.884*Y1))*(TempG1-Tempo)+(2502.3*Y1);# [kJ/kg dry air]\n",
+ "Q = 0.15*HG2*Gs;# [kJ/s]\n",
+ "# Assuming the sychrometric ratio of the gas as same as that of air:\n",
+ "# For Zone II:\n",
+ "Tempw = 65.0;# [OC]\n",
+ "Temp_A = 68.0;# [OC]\n",
+ "# At point A, Fig. 12.28 (Pg 702)\n",
+ "Enthalpy_A = Cs*(Temp_A-Tempo)+(X1*cH2O*(Temp_A-Tempo));# [kJ/kg dry air]\n",
+ "# At point B, Fig. 12.28 (Pg 702)\n",
+ "Temp_B = Temp_A;# [OC]\n",
+ "Enthalpy_B = Cs*(Temp_B-Tempo)+(X2*cH2O*(Temp_B-Tempo));# [kJ/kg dry air]\n",
+ "\n",
+ "# Assuming that the heat losses in the three zones are propotional to the number of transfer units in each zone and to the average temp. difference between the gas and the surrounding air.\n",
+ "# Fractional heat loss in each Zone:\n",
+ "fr1 = 0.14;\n",
+ "fr2 = 0.65;\n",
+ "fr3 = 0.20;\n",
+ "# Calculations for zone III:\n",
+ "Cs3 = cav+(1.97*Y2);# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "def f1(TempGD):\n",
+ " return (Gs*Cs3*(TempG2-TempGD))-(Ss*(HS2-Enthalpy_B)+(fr3*Q))\n",
+ "TempGD = fsolve(f1,7);# [OC]\n",
+ "delta_TempG = Ss*(HS2-Enthalpy_B)/(Gs*Cs3);# [OC]\n",
+ "delta_TempM = ((TempG2-Temp2)+(TempGD-Temp_A))/2;# [OC]\n",
+ "NtoG3 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "# Calculations for zone I:\n",
+ "Cs1 = 1.005+(1.884*Y1);# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "def f2(TempGC):\n",
+ " return (Gs*Cs1*(TempGC-TempG1))-(Ss*(Enthalpy_A-HS1)+(fr1*Q))\n",
+ "TempGC = fsolve(f2,7);# [OC]\n",
+ "delta_TempG = Ss*(Enthalpy_A-HS1)/(Gs*Cs1);# [OC]\n",
+ "delta_TempM = ((TempGC-Temp_A)+(TempG1-Temp1))/2;# [OC]\n",
+ "NtoG1 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "# Calculations for zone II:\n",
+ "Cs2 = (cav+Cs1)/2.0;# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "True_deltaTemp = TempGD-TempGC;# [OC]\n",
+ "delta_Temp = fr2*Q/(Cs1*Gs);# [Change in temp resulting from heat loss,OC]\n",
+ "delta_TempG = True_deltaTemp-delta_Temp;# [OC]\n",
+ "delta_TempM = ((TempGD-Temp_A)-(TempGC-Temp_A))/log((TempGD-Temp_A)/(TempGC-Temp_A));# [OC]\n",
+ "NtoG2 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "NtoG = NtoG1+NtoG2+NtoG3;\n",
+ "\n",
+ "# Standard diameters are availaible at 1, 1.2 & 1.4 m.\n",
+ "Td = 1.2;# [m]\n",
+ "Area = math.pi*Td**2.0/4;# [square m]\n",
+ "Gs = Gs/Area;# [kg/square m.s]\n",
+ "Ss = Ss/Area;# [kg/square m.s]\n",
+ "Gav = Gs*(1+(Y1+Y2)/2.0);# [kg/square m.s]\n",
+ "# From Eqn. 12.47:\n",
+ "Ua = 237.0*Gav**0.417/Td;# [W/square m.K]\n",
+ "HtoG = Gs*Cs2*1000.0/Ua;# [m]\n",
+ "Z = NtoG*HtoG;# [m]\n",
+ "# Assume:\n",
+ "v = 0.35;# [m/s]\n",
+ "N = v/(math.pi*Td);# [1/s]\n",
+ "# From Eqn. 12.37:\n",
+ "K = 0.6085/(Density_S*dp**(1.0/2));\n",
+ "# Take:\n",
+ "phi_D = 0.05;\n",
+ "# From Eqn. 12.35:\n",
+ "phi_DO = phi_D-(K*Gav);\n",
+ "# From Eqn. 12.35:\n",
+ "s = 0.3344*Ss/(phi_DO*Density_S*N**0.9*Td);# [m/s]\n",
+ "print\"Height of the drier: \",round(Z,2),\" m\\n\"\n",
+ "print\"Drier Slope: \",round(s,5),\" m/m \\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.8 - Page: 705\n",
+ "\n",
+ "\n",
+ "Height of the drier: 5.89 m\n",
+ "\n",
+ "Drier Slope: 0.03304 m/m \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.9: Page 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.9\n",
+ "# Page: 709\n",
+ "\n",
+ "print'Illustration 12.9 - Page: 709\\n\\n'\n",
+ "import numpy as np\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "# Solution \n",
+ "\n",
+ "#***Data***#\n",
+ "x1 = 0.46;# [fraction moisture]\n",
+ "x2 = 0.085;# [fraction moisture]\n",
+ "Y1 = 0.08;# [kg water/kg dry solid]\n",
+ "Y2 = 0.03;# [kg water/kg dry solid]\n",
+ "G = 1.36;# [kg/square m.s]\n",
+ "#**********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg water/kg dry solid]\n",
+ "X2 = x2/(1-x2);# [kg water/kg dry solid]\n",
+ "# By water balance:\n",
+ "SsByGs = (Y1-Y2)/(X1-X2);# [kg dry solid/kg air]\n",
+ "# Since the initial moisture content of the rayon is less than the critical, drying takes place entirely within zone III.\n",
+ "# Comparing with Eqn. 12.22:\n",
+ "# (kY*A/(Ss(Xc-X*)))=0.0137*G**1.47\n",
+ "# thetha=integrate('(1/(0.0137*G**1.47))*(1/((X-X_star)*(Yw-Y)))','X',X2,X1) # [s]\n",
+ "X = np.array([X1, 0.80, 0.60, 0.40, 0.20 ,X2]);# [kg water/kg dry solid]\n",
+ "Y = zeros(6);\n",
+ "for i in range(0,6):\n",
+ " # From Eqn. 12.54:\n",
+ " Y[i] = Y2+((X[i]-X2)*SsByGs);# [kg water/kg dry gas]\n",
+ "\n",
+ "# From Fig. 7.5 (Pg 232):\n",
+ "Yw = np.array([0.0950, 0.0920, 0.0790, 0.0680, 0.0550, 0.0490]);# [kg water/kg dry gas]\n",
+ "X_star = zeros(6);\n",
+ "RH=zeros(6)\n",
+ "Val = zeros(6);\n",
+ "P = 51780.0;# [vapour pressure, kN/square m]\n",
+ "for i in range(0,6):\n",
+ " # From Eqn 7.8:\n",
+ " def f(p):\n",
+ " return Y[i]-((p/(101330.0-p))*(18.0/29))\n",
+ " p = fsolve(f,7);# [kN/square m]\n",
+ " RH[i] = (p/P)*100.0;\n",
+ " X_star[i] = (RH[i]/4)/(100.0-(RH[i]/4));# [kg water/kg dry solid]\n",
+ " Val[i] = 1/((X[i]-X_star[i])*(Yw[i]-Y[i]));\n",
+ "\n",
+ "plt.plot(X,Val);\n",
+ "plt.grid();\n",
+ "plt.xlabel(\"X kg water/kg dry solid\");\n",
+ "plt.ylabel(\"1/((X-X*)*(Yw-Y))\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area Under the curve:\n",
+ "Area = 151.6;\n",
+ "# From Eqn. 12.59:\n",
+ "thetha = Area/(0.0137*G**1.47);\n",
+ "print\"Time required for drying: \",round(thetha/3600,2),\" h\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.9 - Page: 709\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7a843c8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for drying: 1.96 h\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter12_1.ipynb b/Mass_-_Transfer_Operations/Chapter12_1.ipynb
new file mode 100755
index 00000000..9416a787
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter12_1.ipynb
@@ -0,0 +1,932 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b3124ef7f3febbf9fbbcfec34e4b1fa9fd03169d0e2aea25265368468350ca6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Drying"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.1: Page 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.1\n",
+ "# Page: 660\n",
+ "\n",
+ "print'Illustration 12.1 - Page: 660\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#****Data****#\n",
+ "F=1000;# [kg]\n",
+ "Xo=0.8;# [wt. fraction water]\n",
+ "X1=0.05;# [wt. fraction water]\n",
+ "#************#\n",
+ "\n",
+ "Yo=Xo/(1-Xo);# [kg water/kg dry solid]\n",
+ "Y1=X1/(1-X1);# [kg water/kg dry solid]\n",
+ "solid=F*(1-X1);# [kg]\n",
+ "print\"Moisture to be evaporated: \",solid*(Yo-Y1),\" kg\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.1 - Page: 660\n",
+ "\n",
+ "\n",
+ "Moisture to be evaporated: 3750.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.2: Page 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.2\n",
+ "# Page: 665\n",
+ "\n",
+ "print'Illustration 12.2 - Page: 665\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "# ***Data***#\n",
+ "Y1 = 0.05;# [kg water/kg dry air]\n",
+ "Yair = 0.01;# [kg water/kg dry air]\n",
+ "TempG1 = 95;# [OC]\n",
+ "width = 1;# [m]\n",
+ "apart = 100.0/1000;# [m]\n",
+ "deep = 38.0/1000;# [m]\n",
+ "Rate_evaporation=7.5*10**(-3);# [kg/s]\n",
+ "#*****************#\n",
+ "\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "vH = (0.00283+(0.00456*Y1))*(TempG1+273);# [cubic m/kg dry air]\n",
+ "freeArea = width*(apart-deep)*11;# [square m]\n",
+ "# Rate of air flow at 1:\n",
+ "Rate_air1 = 3*freeArea/vH;# [square m]\n",
+ "Y2 = Y1+(Rate_evaporation/Rate_air1);# [kg water/kg dry air]\n",
+ "# Assuming adiabatic drying:\n",
+ "# From adiabatic saturation curve, Fig 7.5: (Pg 232)\n",
+ "TempG2 = 86.0;# [OC]\n",
+ "# Overall Water Balance:\n",
+ "G = Rate_evaporation/(Y1-Yair);# [kg dry air/s]\n",
+ "# Rate of air flow at 3:\n",
+ "Rate_air3 = Rate_air1+G;# [kg dry air/s]\n",
+ "# Rate of air flow at 4:\n",
+ "Rate_air4 = Rate_air3;# [kg dry air/s]\n",
+ "# Volumetric Rate through fan:\n",
+ "Rate_fan = Rate_air3/vH;# [cubic m/s]\n",
+ "print\"Percentage of air recycled is:\",round((Rate_air1/Rate_air3)*100,2),\"%\\n\",\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# From Fig. 7.5 (page 232):\n",
+ "# Saturated enthalpy at adiabatic saturation temp.\n",
+ "Enthalpy1 = 233.0;# [kJ/kg dry air]\n",
+ "Enthalpy2 = 233.0;# [kJ/kg dry air]\n",
+ "# Enthalpy of fresh air:\n",
+ "Enthalpy_air = 50.0;# [kJ/kg dry air]\n",
+ "# Assuming complete mixing, by Enthalpy mixing:\n",
+ "Enthalpy3 = ((Enthalpy1*Rate_air1)+(Enthalpy_air*G))/Rate_air3;# [kJ/kg dry air]\n",
+ "Enthalpy4 = Enthalpy3;# [kJ/kg dry air]\n",
+ "# From table 7.1: (Pg 234)\n",
+ "Temp_dry = ((Enthalpy3*1000.0)-(2502300.0*Y1))/(1005.0+(1884.0*Y1));\n",
+ "Power = (Enthalpy2-Enthalpy3)*Rate_air3;# [kW]\n",
+ "# From Fig. 7.5, (Pg 232)\n",
+ "DewPoint1 = 40.4;# [OC]\n",
+ "DewPoint2 = 41.8;# [OC]\n",
+ "DewPoint3 = 40.4;# [OC]\n",
+ "DewPoint4 = 40.4;# [OC]\n",
+ "print\"At Point 1\\n\"\n",
+ "print\"Enthalpy of air:\",Enthalpy1,\" kJ/kg dry air\\n\",\n",
+ "print\"Dew Point of air: \",DewPoint1,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 2\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy2,\" kJ/kg dry air\\n\"\n",
+ "print\"Dew Point of air: \",DewPoint2,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 3\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy3,\" kJ/kg dry air\\n\",\n",
+ "print\"Dew Point of air: \",DewPoint3,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 4\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy4,\" kJ/kg dry air\\n\"\n",
+ "print\"Dew Point of air: \",DewPoint4,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"Dry bulb temparature of air: \",Temp_dry,\" OC\\n\"\n",
+ "print\"Power delivered by heater: \",Power,\" kW\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.2 - Page: 665\n",
+ "\n",
+ "\n",
+ "Percentage of air recycled is: 90.65 %\n",
+ "\n",
+ "\n",
+ "At Point 1\n",
+ "\n",
+ "Enthalpy of air: 233.0 kJ/kg dry air\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 2\n",
+ "\n",
+ "Enthalpy of air: 233.0 kJ/kg dry air\n",
+ "\n",
+ "Dew Point of air: 41.8 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 3\n",
+ "\n",
+ "Enthalpy of air: 215.89174489 kJ/kg dry air\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 4\n",
+ "\n",
+ "Enthalpy of air: 215.89174489 kJ/kg dry air\n",
+ "\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dry bulb temparature of air: 82.5843748998 OC\n",
+ "\n",
+ "Power delivered by heater: 34.3125 kW\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.3: Page 671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.3\n",
+ "# Page: 671\n",
+ "\n",
+ "print'Illustration 12.3 - Page: 671\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "# ***Data***#\n",
+ "SsByA = 40;\n",
+ "x1 = 0.25;# [moisture fraction]\n",
+ "x2 = 0.06;# [moisture fraction]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg moisture/kg dry solid]\n",
+ "X2 = x2/(1-x2);# [kg moisture/kg dry solid]\n",
+ "# Fig. 12.10 (Pg 668) indicates that both constant and falling rate periods are involved.\n",
+ "\n",
+ "# Constant Rate period:\n",
+ "# From Fig. 12.10 (Pg 668):\n",
+ "Xc = 0.200;# [kg moisture/kg dry solid]\n",
+ "Nc = 0.3*10**(-3);# [kg/square m.s]\n",
+ "# From Eqn. 12.4:\n",
+ "thetha1 = SsByA*(X1-Xc)/Nc;# [s]\n",
+ "\n",
+ "# Falling Rate Period:\n",
+ "# From Fig. 12.10 (Pg 668):\n",
+ "# Data=[x N*10^3]\n",
+ "Data = numpy.array([[0.2 ,0.3],[0.18 ,0.266],[0.16 ,0.239],[0.14 ,0.208],[0.12, 0.180],[0.10 ,0.150],[0.09 ,0.097],[0.08, 0.070],[0.07 ,0.043],[0.064 ,0.025]]);\n",
+ "Val = zeros(10);\n",
+ "# Val=[(1/N)*10^(-3)]\n",
+ "for i in range(0,10):\n",
+ " Val[i] = 1/Data[i,1];\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid();\n",
+ "plt.xlabel(\"x [kg moisture / kg dry solid]\");\n",
+ "plt.ylabel(\"10^(-3) / N\");\n",
+ "plt.title(\"Graphical Integration Falling Rate Period\");\n",
+ "# Area under the curve:\n",
+ "Area = 1060.0;\n",
+ "# From Eqn. 12.3:\n",
+ "thetha2 = SsByA*Area;# [s]\n",
+ "thetha = thetha1+thetha2;# [s]\n",
+ "print\"Total Drying Time: \",round(thetha/3600,2),\"h\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.3 - Page: 671\n",
+ "\n",
+ "\n",
+ "Total Drying Time: 16.72 h\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x772c470>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.4: Page 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.4\n",
+ "# Page: 676\n",
+ "\n",
+ "print'Illustration 12.4 - Page: 676\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "#***Data***#\n",
+ "# For rectangular pan:\n",
+ "l = 0.7;# [m]\n",
+ "b = 0.7;# [m]\n",
+ "zS = 0.025;# [m]\n",
+ "zM = 0.0008;# [m]\n",
+ "d = 0.1;# [m]\n",
+ "Y1 = 0.01;# [kg water/kg dry air]\n",
+ "TempG = 65.0;# [OC]\n",
+ "v = 3.0;# [m/s]\n",
+ "TempR = 120.0;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "vH = (0.00283+(0.00456*Y1))*(TempG+273.0);# [cubic m/kg dry air]\n",
+ "Density_G = (1+Y1)/vH;# [kg/cubic m]\n",
+ "G = v*Density_G;# [kg/square m.s]\n",
+ "de = 4*d*l/(2*(l+d));# [m]\n",
+ "# From Eqn. 12.20:\n",
+ "hc = 5.90*G**0.71/de**0.29;# [W/square m.K]\n",
+ "# Assume:\n",
+ "e = 0.94;\n",
+ "# Estimate:\n",
+ "TempS = 38;# [OC]\n",
+ "# From Eqn. 12.14:\n",
+ "hR = e*5.729*10**(-8)*((273+TempR)**4-(273+TempS)**4)/((273.0+TempR)-(273+TempS));\n",
+ "A = l*b;# [square m]\n",
+ "Am = A;# [square m]\n",
+ "As = 4*l*zS;# [square m]\n",
+ "Au = Am+As;# [square m]\n",
+ "# Thermal Coductivities:\n",
+ "kM = 45;# [W/m.K]\n",
+ "kS = 3.5;# [W/m.K]\n",
+ "# By Eqn. 12.16:\n",
+ "Uk = 1/(((1/hc)*(A/Au))+((zM/kM)*(A/Au))+((zS/kS)*(A/Am)));# [W/squre m.K]\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "Cs = 1005+(1884*Y1);# [kJ/kg]\n",
+ "# At estimated 38 OC\n",
+ "lambdaS = 2411.4;# [kJ/kg]\n",
+ "# From Eqn. 12.18:\n",
+ "# (Ys-Y1)*lambdaS*10^3/Cs = ((1+(Uk/hc))*(TempG-Temps))+((hR/hC)*(TempR-TempS))\n",
+ "# On Simplifying:\n",
+ "# Ys = 0.0864-(10.194*10**(-4)*TempS)\n",
+ "# The eqn. is solved simultaneously with the saturated humidity curve of the psychometric chart for the air water mixture.\n",
+ "# From Fig. 12.12: (Pg 677)\n",
+ "Ys = 0.0460;# [kg water/kg dry air]\n",
+ "TempS = 39;# [OC]\n",
+ "# At 39 OC\n",
+ "lambdaS = 2409.7;# [kJ/kg]\n",
+ "# From Eqn. 12.17:\n",
+ "Nc = (((hc+Uk)*(TempG-TempS))+(hR*(TempR-TempS)))/(lambdaS*10**(3));# [kg water evaporated/square m.s]\n",
+ "print\"The Evaporation Rate: \",round(Nc*A,8),\" kg/s\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "# When no radiation or conduction of heat through the solid occurs, the drying surface assumes wet bulb temparature of the air.\n",
+ "# From Fig. 12.12 (Pg 677)\n",
+ "TempS = 28.5;# [OC]\n",
+ "Ys = 0.025;# [kg water/kg dry air]\n",
+ "lambdaS = 2435;# [kJ/kg]\n",
+ "# From Eqn. 12.17:\n",
+ "Nc = hc*(TempG-TempS)/(lambdaS*10**3);# [kg/aquare m.s]\n",
+ "print\"The Evaporation Rate: \",round(Nc*A,8), \"kg/s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.4 - Page: 676\n",
+ "\n",
+ "\n",
+ "The Evaporation Rate: 0.0003851 kg/s\n",
+ "\n",
+ "The Evaporation Rate: 0.00016105 kg/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.5: Page 684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.5\n",
+ "# Page: 684\n",
+ "\n",
+ "print'Illustration 12.5 - Page: 684\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "#***Data***#\n",
+ "x1 = 0.025;# [moisture fraction]\n",
+ "x2 = 0.001;# [moisture fraction]\n",
+ "zS = 0.018;# [m]\n",
+ "dp = 2*10**(-4);# [m]\n",
+ "Density_S = 1350;# [kg dry solid/cubic m]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg water/kg dry air]\n",
+ "X2 = x2/(1-x2);# [kg water/kg dry air]\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Y1 = 0.0153;# [kg water/kg dry air]\n",
+ "Tempas = 24;# [OC]\n",
+ "Yas = 0.0190;# [kg water/kg dry air]\n",
+ "Gs = 0.24;# [kg dry air/square m.s]\n",
+ "Gav = Gs+(Gs*(Y1+Yas)/2.0);# [kg dry air/square m.s]\n",
+ "# From Eqn. 12.26:\n",
+ "Nmax = Gs*(Yas-Y1);# [kg evaporated/square m.s]\n",
+ "viscosity_air = 1.8*10**(-5);# [kg/m.s]\n",
+ "X3=lambda X : 1/(Nmax*(1-math.exp(-(0.273/dp**0.35)*((dp*Gav/viscosity_air)**0.215)*(Density_S*zS*X)**0.64)));\n",
+ "Value = integrate.quad(X3,X2,X1);\n",
+ "# From Eqn. 12.3:\n",
+ "thetha = Density_S*zS*Value[0];# [s]\n",
+ "print\"The time for drying: \",round(thetha/60,3),\" min\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.5 - Page: 684\n",
+ "\n",
+ "\n",
+ "The time for drying: 12.593 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.6: Page 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.6\n",
+ "# Page: 685\n",
+ "\n",
+ "print'Illustration 12.6 - Page: 685\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "import math\n",
+ "#***Data***#\n",
+ "Y1 = 0.01;# [kg water/kg dry air]\n",
+ "Gs = 1.1;# [kg dry air/square m.s]\n",
+ "dia = 13.5/1000;# [m]\n",
+ "l = 13.0/1000;# [m]\n",
+ "zS = 50.0/1000;# [m]\n",
+ "Density_S = 600.0;# [kg dry solid/square m.s]\n",
+ "a = 280.0;# [square m/cubic m]\n",
+ "#************#\n",
+ "\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Yas = 0.031;# [kg water/kg dry air]\n",
+ "Gav = Gs+(Gs*(Y1+Yas)/2.0);# [kg/square m.s]\n",
+ "viscosity_air = 1.9*10**(-5);# [kg/m.s]\n",
+ "Area = (2.0*math.pi*dia**2.0/4)+(math.pi*dia*l);# [square m]\n",
+ "dp = (Area/math.pi)**0.5;# [m]\n",
+ "# From Table 3.3 (Pg 74)\n",
+ "Re = dp*Gav/viscosity_air;\n",
+ "e = 1.0-(dp*a/6);# [fraction voids]\n",
+ "jD = (2.06/e)*Re**(-0.575);\n",
+ "# For air water mixture:\n",
+ "Sc = 0.6;\n",
+ "# From Eqn. 12.33:\n",
+ "kY = jD*Gs/Sc**(2.0/3);# [kg H2O/square m.s.deltaX]\n",
+ "# From Eqn. 12.30:\n",
+ "NtG = kY*a*zS/Gs;\n",
+ "# From Eqn. 12.25:\n",
+ "Nmax = Gs*(Yas-Y1);# [kg/square m.s]\n",
+ "# From Eqn. 12.31:\n",
+ "N = Nmax*(1-math.exp(-NtG));# [kg water evaporated/square m.s]\n",
+ "Y2 = (Yas-Y1)*(N/Nmax)+Y1;# [kg water/kg dry air]\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Tempas = 33.0;# [OC]\n",
+ "# From eqn. 12.2:\n",
+ "Rate = N/(Density_S*zS);# [kg H2O/(kg dry solid).s]\n",
+ "print\"Humidity of the exit air: \",round(Y2,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Temparature of exit air: \",Tempas,\" degree C\\n\"\n",
+ "print\"Rate of Drying: \",round(Rate,7),\" kg H2O/(kg dry solid).s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.6 - Page: 685\n",
+ "\n",
+ "\n",
+ "Humidity of the exit air: 0.0302 kg water/kg dry air\n",
+ "\n",
+ "Temparature of exit air: 33.0 degree C\n",
+ "\n",
+ "Rate of Drying: 0.0007409 kg H2O/(kg dry solid).s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.7: Page 700"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.7\n",
+ "# Page: 700\n",
+ "\n",
+ "print'Illustration 12.7 - Page: 700\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "import math\n",
+ "from numpy.linalg import inv\n",
+ "#***Data***#\n",
+ "x1 = 3.5;# [percent moisture]\n",
+ "x2 = 0.2;# [percent moisture]\n",
+ "dia = 1.2;# [m]\n",
+ "l = 6.7;# [m]\n",
+ "Rate_prod = 900.0;# [kg/h]\n",
+ "y2 = 0.5;# [Humidity]\n",
+ "TempG2 = 90.0;# [OC]\n",
+ "TempG1 = 32.0;# [OC]\n",
+ "TempS1 = 25.0;# [OC]\n",
+ "TempS2 = 60.0;# [OC]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(100.0-x1);# [kg H2O/kg dry solid]\n",
+ "X2 = x2/(100.0-x2);# [kg H2O/kg dry solid]\n",
+ "Ss = Rate_prod*(1-X2);# [kg dry solid/h]\n",
+ "Rate_drying = Ss*(X1-X2);# [kg water evaporated/h]\n",
+ "Y2 = (y2/(1-y2))/100.0;# [kg water/kg dry air]\n",
+ "Tempo = 0.0;# [Base temp,OC]\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "# Enthalpy of air entering the drier:\n",
+ "HG2 = (1005.0+(1884.0*Y2))*(TempG2-Tempo)+(2502300.0*Y2);# [J/kg dry air]\n",
+ "# For the outlet air:\n",
+ "# HG1 = (1005.0+(1884*Y1))*(TempG1-Tempo)+(2502300*Y1); [J/kg dry air]\n",
+ "# HG1 = (1005.0*TempG1)+((1884+TempG1)+2502300)*Y1; [J/kg dry air]\n",
+ "CsNH4 = 1507.0;# [J/kg.K]\n",
+ "CsH2O = 4187.0;# [J/kg.K]\n",
+ "# From Eqn. 11.45:\n",
+ "HS2 = CsNH4*(TempS2-Tempo)+(X2*CsH2O*(TempS2-Tempo));# [J/kg dry air]\n",
+ "HS1 = CsNH4*(TempS1-Tempo)+(X1*CsH2O*(TempS1-Tempo));# [J/kg dry air]\n",
+ "# The estimated combined natural convection and radiation heat transfer coeffecient from the drier to the surrounding:\n",
+ "h = 12.0;# [W/square m.K]\n",
+ "deltaTemp = ((TempG2-TempS1)+(TempG1-TempS1))/2;# [OC]\n",
+ "Ae = math.pi*dia*l;# [square m]\n",
+ "Q = h*3600.0*Ae*deltaTemp;# [kJ/h]\n",
+ "# Moisture Balance, Eqn. 12.39:\n",
+ "# Ss*(X1-X2) = Gs(Y1-Y2)\n",
+ "# (Gs*Y1)-(Gs*Y2) = (Ss*(X1-X2)) ........(1)\n",
+ "# Enthalapy Balance, Eqn. 12.40:\n",
+ "# (Ss*HS1)+(Gs*HG2) = (Ss*HG2)+(Gs*HG1)+Q \n",
+ "# Gs*(HG2-HG1) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-((1005*TempG1)+((1884+TempG1)+2502300)*Y1)) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-(1005*TempG1))-(Gs*Y1*((1884+TempG1)+2502300)) = (Ss*HS2)+Q-(Ss*HS1)........ (2)\n",
+ "# Solving Simultaneously:\n",
+ "a = numpy.array([[HG2-(1005.0*TempG1),-((1884.0+TempG1)+2502300.0)],[(-Y2), 1.0]]);\n",
+ "b = numpy.array([[((Ss*HS2)+Q-(Ss*HS1))],[(Ss*(X1-X2))]]);\n",
+ "c=inv(a)\n",
+ "soln =np.dot(c, b)\n",
+ "Gs = soln[0];# [kg dry air/h]\n",
+ "Y1 = soln[1]/soln[0];# [kg water/kg dry air]\n",
+ "# From Fig. 7.5 (Pg 232)\n",
+ "Enthalpy_air = 56.0;# [kJ/kg dry air]\n",
+ "HeatLoad = Gs*(HG2-Enthalpy_air*1000);# [W]\n",
+ "print\"Air Flow Rate: \",round(Gs,2),\" kg/h\\n\"\n",
+ "print\"Moisture content of air: \",round(Y1,2),\" kg water/kg dry air \\n\"\n",
+ "print\"Heat Load of drier: \",round(HeatLoad/1000),\" kW\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.7 - Page: 700\n",
+ "\n",
+ "\n",
+ "Air Flow Rate: 2681.03 kg/h\n",
+ "\n",
+ "Moisture content of air: 0.02 kg water/kg dry air \n",
+ "\n",
+ "Heat Load of drier: 163995.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.8: Page 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.8\n",
+ "# Page: 705\n",
+ "\n",
+ "print'Illustration 12.8 - Page: 705\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "from numpy.linalg import inv\n",
+ "import numpy as np\n",
+ "#***Data***#\n",
+ "x1 = 8.0;# [percent moisture]\n",
+ "x2 = 0.5;# [percent moisture]\n",
+ "Rate_prod = 0.63;# [kg/s]\n",
+ "# Drying Gas:\n",
+ "xCO2 = 0.025;# [mole fraction]\n",
+ "xO2 = 0.147;# [mole fraction]\n",
+ "xN2 = 0.760;# [mole fraction]\n",
+ "xH2O = 0.068;# [mole fraction]\n",
+ "TempG2 = 480.0;# [OC]\n",
+ "Cs = 0.837;# [kJ/kg.K]\n",
+ "Temp1 = 27.0;# [OC]\n",
+ "Temp2 = 150.0;# [OC]\n",
+ "dp = 200.0*10**(-6);# [m]\n",
+ "Density_S = 1300.0;# [kg/cubic m]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(100-x1);# [kg water/kg dry solid]\n",
+ "X2 = x2/(100-x2);# [kg water/kg dry solid]\n",
+ "Ss = Rate_prod*(1-X2);# [kg dry solid/s]\n",
+ "Water_evap = Ss*(X1-X2);# [kg/s]\n",
+ "# Basis: 1 kmol of dry gas:\n",
+ "xDry = 1.0-xH2O;# [kmol]\n",
+ "XCO2 = 44.0*xCO2;# [kg]\n",
+ "XO2 = 32.0*xO2;# [kg]\n",
+ "XN2 = 28.0*xN2;# [kg]\n",
+ "Xdry = XCO2+XO2+XN2;# [kg]\n",
+ "cCO2 = 45.6;# [kJ/kmol.K]\n",
+ "cO2 = 29.9;# [kJ/kmol.K]\n",
+ "cN2 = 29.9;# [kJ/kmol.K]\n",
+ "cH2O = 4.187;# [kJ/kg.K]\n",
+ "Mav = Xdry/xDry;# [kg/kmol]\n",
+ "Y2 = xH2O*18.02/(xDry*Mav);# [kg water/kg dry gas]\n",
+ "cav = ((xCO2*cCO2)+(xO2*cO2)+(xN2*cN2))/(xDry*Mav);# [kJ/kmol.K]\n",
+ "# Assume:\n",
+ "TempG1 = 120.0;# [OC]\n",
+ "cDry = 1.005;# [kJ/kmol.K]\n",
+ "Tempo = 0;# [Base Temp,OC]\n",
+ "# By Eqn. 7.13:\n",
+ "HG2 = (cav+(1.97*Y2))*(TempG2-Tempo)+(2502.3*Y2);# [kJ/kg dry air]\n",
+ "# For the outlet air:\n",
+ "# HG1 = (1.005+(1.884*Y1))*(TempG1-Tempo)+(2502.3*Y1); [kJ/kg dry air]\n",
+ "# HG1 = (1.005*TempG1)+((1.884+TempG1)+2502.3)*Y1; [kJ/kg dry air]\n",
+ "# By Eqn. 11.45:\n",
+ "HS1 = (Cs*(Temp1-Tempo))+(cH2O*X1*(Temp1-Tempo));# [kJ/kg dry air]\n",
+ "HS2 = (Cs*(Temp2-Tempo))+(cH2O*X2*(Temp2-Tempo));# [kJ/kg dry air]\n",
+ "# Q = 0.15*HG2*Gs; [kJ/s]\n",
+ "# Moisture Balance, Eqn. 12.39:\n",
+ "# Ss*(X1-X2) = Gs(Y1-Y2)\n",
+ "# (Gs*Y1)-(Gs*Y2) = (Ss*(X1-X2)) ........(1)\n",
+ "# Enthalapy Balance, Eqn. 12.40:\n",
+ "# (Ss*HS1)+(Gs*HG2) = (Ss*HG2)+(Gs*HG1)+Q \n",
+ "# Gs*(HG2-HG1) = (Ss*HS2)+(0.15*HG2*Gs)-(Ss*HS1)\n",
+ "# Gs*(HG2-(0.15*HG2)-((1.005*TempG1)+((1.884+TempG1)+2502.3)*Y1)) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-(0.15*HG2)-(1.005*TempG1))-(Gs*Y1*((1.884+TempG1)+2502.3)) = (Ss*HS2)+Q-(Ss*HS1)........ (2)\n",
+ "a = np.array([[(HG2-(0.15*HG2)-(1.005*TempG1)),-((1.884+TempG1)+2502.3)],[(-Y2), 1.0]]);\n",
+ "b = np.array([(Ss*HS2)-(Ss*HS1),(Ss*(X1-X2))]);\n",
+ "c=inv(a)\n",
+ "soln = np.dot(c, b)\n",
+ "Gs = soln[0];# [kg dry air/s]\n",
+ "Y1 = soln[1]/soln[0];# [kg water/kg dry gas]\n",
+ "HG1 = (1.005+(1.884*Y1))*(TempG1-Tempo)+(2502.3*Y1);# [kJ/kg dry air]\n",
+ "Q = 0.15*HG2*Gs;# [kJ/s]\n",
+ "# Assuming the sychrometric ratio of the gas as same as that of air:\n",
+ "# For Zone II:\n",
+ "Tempw = 65.0;# [OC]\n",
+ "Temp_A = 68.0;# [OC]\n",
+ "# At point A, Fig. 12.28 (Pg 702)\n",
+ "Enthalpy_A = Cs*(Temp_A-Tempo)+(X1*cH2O*(Temp_A-Tempo));# [kJ/kg dry air]\n",
+ "# At point B, Fig. 12.28 (Pg 702)\n",
+ "Temp_B = Temp_A;# [OC]\n",
+ "Enthalpy_B = Cs*(Temp_B-Tempo)+(X2*cH2O*(Temp_B-Tempo));# [kJ/kg dry air]\n",
+ "\n",
+ "# Assuming that the heat losses in the three zones are propotional to the number of transfer units in each zone and to the average temp. difference between the gas and the surrounding air.\n",
+ "# Fractional heat loss in each Zone:\n",
+ "fr1 = 0.14;\n",
+ "fr2 = 0.65;\n",
+ "fr3 = 0.20;\n",
+ "# Calculations for zone III:\n",
+ "Cs3 = cav+(1.97*Y2);# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "def f1(TempGD):\n",
+ " return (Gs*Cs3*(TempG2-TempGD))-(Ss*(HS2-Enthalpy_B)+(fr3*Q))\n",
+ "TempGD = fsolve(f1,7);# [OC]\n",
+ "delta_TempG = Ss*(HS2-Enthalpy_B)/(Gs*Cs3);# [OC]\n",
+ "delta_TempM = ((TempG2-Temp2)+(TempGD-Temp_A))/2;# [OC]\n",
+ "NtoG3 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "# Calculations for zone I:\n",
+ "Cs1 = 1.005+(1.884*Y1);# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "def f2(TempGC):\n",
+ " return (Gs*Cs1*(TempGC-TempG1))-(Ss*(Enthalpy_A-HS1)+(fr1*Q))\n",
+ "TempGC = fsolve(f2,7);# [OC]\n",
+ "delta_TempG = Ss*(Enthalpy_A-HS1)/(Gs*Cs1);# [OC]\n",
+ "delta_TempM = ((TempGC-Temp_A)+(TempG1-Temp1))/2;# [OC]\n",
+ "NtoG1 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "# Calculations for zone II:\n",
+ "Cs2 = (cav+Cs1)/2.0;# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "True_deltaTemp = TempGD-TempGC;# [OC]\n",
+ "delta_Temp = fr2*Q/(Cs1*Gs);# [Change in temp resulting from heat loss,OC]\n",
+ "delta_TempG = True_deltaTemp-delta_Temp;# [OC]\n",
+ "delta_TempM = ((TempGD-Temp_A)-(TempGC-Temp_A))/log((TempGD-Temp_A)/(TempGC-Temp_A));# [OC]\n",
+ "NtoG2 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "NtoG = NtoG1+NtoG2+NtoG3;\n",
+ "\n",
+ "# Standard diameters are availaible at 1, 1.2 & 1.4 m.\n",
+ "Td = 1.2;# [m]\n",
+ "Area = math.pi*Td**2.0/4;# [square m]\n",
+ "Gs = Gs/Area;# [kg/square m.s]\n",
+ "Ss = Ss/Area;# [kg/square m.s]\n",
+ "Gav = Gs*(1+(Y1+Y2)/2.0);# [kg/square m.s]\n",
+ "# From Eqn. 12.47:\n",
+ "Ua = 237.0*Gav**0.417/Td;# [W/square m.K]\n",
+ "HtoG = Gs*Cs2*1000.0/Ua;# [m]\n",
+ "Z = NtoG*HtoG;# [m]\n",
+ "# Assume:\n",
+ "v = 0.35;# [m/s]\n",
+ "N = v/(math.pi*Td);# [1/s]\n",
+ "# From Eqn. 12.37:\n",
+ "K = 0.6085/(Density_S*dp**(1.0/2));\n",
+ "# Take:\n",
+ "phi_D = 0.05;\n",
+ "# From Eqn. 12.35:\n",
+ "phi_DO = phi_D-(K*Gav);\n",
+ "# From Eqn. 12.35:\n",
+ "s = 0.3344*Ss/(phi_DO*Density_S*N**0.9*Td);# [m/s]\n",
+ "print\"Height of the drier: \",round(Z,2),\" m\\n\"\n",
+ "print\"Drier Slope: \",round(s,5),\" m/m \\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.8 - Page: 705\n",
+ "\n",
+ "\n",
+ "Height of the drier: 5.89 m\n",
+ "\n",
+ "Drier Slope: 0.03304 m/m \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.9: Page 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.9\n",
+ "# Page: 709\n",
+ "\n",
+ "print'Illustration 12.9 - Page: 709\\n\\n'\n",
+ "import numpy as np\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "# Solution \n",
+ "\n",
+ "#***Data***#\n",
+ "x1 = 0.46;# [fraction moisture]\n",
+ "x2 = 0.085;# [fraction moisture]\n",
+ "Y1 = 0.08;# [kg water/kg dry solid]\n",
+ "Y2 = 0.03;# [kg water/kg dry solid]\n",
+ "G = 1.36;# [kg/square m.s]\n",
+ "#**********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg water/kg dry solid]\n",
+ "X2 = x2/(1-x2);# [kg water/kg dry solid]\n",
+ "# By water balance:\n",
+ "SsByGs = (Y1-Y2)/(X1-X2);# [kg dry solid/kg air]\n",
+ "# Since the initial moisture content of the rayon is less than the critical, drying takes place entirely within zone III.\n",
+ "# Comparing with Eqn. 12.22:\n",
+ "# (kY*A/(Ss(Xc-X*)))=0.0137*G**1.47\n",
+ "# thetha=integrate('(1/(0.0137*G**1.47))*(1/((X-X_star)*(Yw-Y)))','X',X2,X1) # [s]\n",
+ "X = np.array([X1, 0.80, 0.60, 0.40, 0.20 ,X2]);# [kg water/kg dry solid]\n",
+ "Y = zeros(6);\n",
+ "for i in range(0,6):\n",
+ " # From Eqn. 12.54:\n",
+ " Y[i] = Y2+((X[i]-X2)*SsByGs);# [kg water/kg dry gas]\n",
+ "\n",
+ "# From Fig. 7.5 (Pg 232):\n",
+ "Yw = np.array([0.0950, 0.0920, 0.0790, 0.0680, 0.0550, 0.0490]);# [kg water/kg dry gas]\n",
+ "X_star = zeros(6);\n",
+ "RH=zeros(6)\n",
+ "Val = zeros(6);\n",
+ "P = 51780.0;# [vapour pressure, kN/square m]\n",
+ "for i in range(0,6):\n",
+ " # From Eqn 7.8:\n",
+ " def f(p):\n",
+ " return Y[i]-((p/(101330.0-p))*(18.0/29))\n",
+ " p = fsolve(f,7);# [kN/square m]\n",
+ " RH[i] = (p/P)*100.0;\n",
+ " X_star[i] = (RH[i]/4)/(100.0-(RH[i]/4));# [kg water/kg dry solid]\n",
+ " Val[i] = 1/((X[i]-X_star[i])*(Yw[i]-Y[i]));\n",
+ "\n",
+ "plt.plot(X,Val);\n",
+ "plt.grid();\n",
+ "plt.xlabel(\"X kg water/kg dry solid\");\n",
+ "plt.ylabel(\"1/((X-X*)*(Yw-Y))\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area Under the curve:\n",
+ "Area = 151.6;\n",
+ "# From Eqn. 12.59:\n",
+ "thetha = Area/(0.0137*G**1.47);\n",
+ "print\"Time required for drying: \",round(thetha/3600,2),\" h\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.9 - Page: 709\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7885c50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for drying: 1.96 h\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter12_2.ipynb b/Mass_-_Transfer_Operations/Chapter12_2.ipynb
new file mode 100755
index 00000000..9416a787
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter12_2.ipynb
@@ -0,0 +1,932 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b3124ef7f3febbf9fbbcfec34e4b1fa9fd03169d0e2aea25265368468350ca6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Drying"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.1: Page 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.1\n",
+ "# Page: 660\n",
+ "\n",
+ "print'Illustration 12.1 - Page: 660\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "#****Data****#\n",
+ "F=1000;# [kg]\n",
+ "Xo=0.8;# [wt. fraction water]\n",
+ "X1=0.05;# [wt. fraction water]\n",
+ "#************#\n",
+ "\n",
+ "Yo=Xo/(1-Xo);# [kg water/kg dry solid]\n",
+ "Y1=X1/(1-X1);# [kg water/kg dry solid]\n",
+ "solid=F*(1-X1);# [kg]\n",
+ "print\"Moisture to be evaporated: \",solid*(Yo-Y1),\" kg\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.1 - Page: 660\n",
+ "\n",
+ "\n",
+ "Moisture to be evaporated: 3750.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.2: Page 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.2\n",
+ "# Page: 665\n",
+ "\n",
+ "print'Illustration 12.2 - Page: 665\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "# ***Data***#\n",
+ "Y1 = 0.05;# [kg water/kg dry air]\n",
+ "Yair = 0.01;# [kg water/kg dry air]\n",
+ "TempG1 = 95;# [OC]\n",
+ "width = 1;# [m]\n",
+ "apart = 100.0/1000;# [m]\n",
+ "deep = 38.0/1000;# [m]\n",
+ "Rate_evaporation=7.5*10**(-3);# [kg/s]\n",
+ "#*****************#\n",
+ "\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "vH = (0.00283+(0.00456*Y1))*(TempG1+273);# [cubic m/kg dry air]\n",
+ "freeArea = width*(apart-deep)*11;# [square m]\n",
+ "# Rate of air flow at 1:\n",
+ "Rate_air1 = 3*freeArea/vH;# [square m]\n",
+ "Y2 = Y1+(Rate_evaporation/Rate_air1);# [kg water/kg dry air]\n",
+ "# Assuming adiabatic drying:\n",
+ "# From adiabatic saturation curve, Fig 7.5: (Pg 232)\n",
+ "TempG2 = 86.0;# [OC]\n",
+ "# Overall Water Balance:\n",
+ "G = Rate_evaporation/(Y1-Yair);# [kg dry air/s]\n",
+ "# Rate of air flow at 3:\n",
+ "Rate_air3 = Rate_air1+G;# [kg dry air/s]\n",
+ "# Rate of air flow at 4:\n",
+ "Rate_air4 = Rate_air3;# [kg dry air/s]\n",
+ "# Volumetric Rate through fan:\n",
+ "Rate_fan = Rate_air3/vH;# [cubic m/s]\n",
+ "print\"Percentage of air recycled is:\",round((Rate_air1/Rate_air3)*100,2),\"%\\n\",\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# From Fig. 7.5 (page 232):\n",
+ "# Saturated enthalpy at adiabatic saturation temp.\n",
+ "Enthalpy1 = 233.0;# [kJ/kg dry air]\n",
+ "Enthalpy2 = 233.0;# [kJ/kg dry air]\n",
+ "# Enthalpy of fresh air:\n",
+ "Enthalpy_air = 50.0;# [kJ/kg dry air]\n",
+ "# Assuming complete mixing, by Enthalpy mixing:\n",
+ "Enthalpy3 = ((Enthalpy1*Rate_air1)+(Enthalpy_air*G))/Rate_air3;# [kJ/kg dry air]\n",
+ "Enthalpy4 = Enthalpy3;# [kJ/kg dry air]\n",
+ "# From table 7.1: (Pg 234)\n",
+ "Temp_dry = ((Enthalpy3*1000.0)-(2502300.0*Y1))/(1005.0+(1884.0*Y1));\n",
+ "Power = (Enthalpy2-Enthalpy3)*Rate_air3;# [kW]\n",
+ "# From Fig. 7.5, (Pg 232)\n",
+ "DewPoint1 = 40.4;# [OC]\n",
+ "DewPoint2 = 41.8;# [OC]\n",
+ "DewPoint3 = 40.4;# [OC]\n",
+ "DewPoint4 = 40.4;# [OC]\n",
+ "print\"At Point 1\\n\"\n",
+ "print\"Enthalpy of air:\",Enthalpy1,\" kJ/kg dry air\\n\",\n",
+ "print\"Dew Point of air: \",DewPoint1,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 2\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy2,\" kJ/kg dry air\\n\"\n",
+ "print\"Dew Point of air: \",DewPoint2,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 3\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy3,\" kJ/kg dry air\\n\",\n",
+ "print\"Dew Point of air: \",DewPoint3,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"At Point 4\\n\"\n",
+ "print\"Enthalpy of air: \",Enthalpy4,\" kJ/kg dry air\\n\"\n",
+ "print\"Dew Point of air: \",DewPoint4,\" degree C\\n\"\n",
+ "print\"\\n\"\n",
+ "print\"Dry bulb temparature of air: \",Temp_dry,\" OC\\n\"\n",
+ "print\"Power delivered by heater: \",Power,\" kW\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.2 - Page: 665\n",
+ "\n",
+ "\n",
+ "Percentage of air recycled is: 90.65 %\n",
+ "\n",
+ "\n",
+ "At Point 1\n",
+ "\n",
+ "Enthalpy of air: 233.0 kJ/kg dry air\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 2\n",
+ "\n",
+ "Enthalpy of air: 233.0 kJ/kg dry air\n",
+ "\n",
+ "Dew Point of air: 41.8 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 3\n",
+ "\n",
+ "Enthalpy of air: 215.89174489 kJ/kg dry air\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "At Point 4\n",
+ "\n",
+ "Enthalpy of air: 215.89174489 kJ/kg dry air\n",
+ "\n",
+ "Dew Point of air: 40.4 degree C\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dry bulb temparature of air: 82.5843748998 OC\n",
+ "\n",
+ "Power delivered by heater: 34.3125 kW\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.3: Page 671"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.3\n",
+ "# Page: 671\n",
+ "\n",
+ "print'Illustration 12.3 - Page: 671\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "# ***Data***#\n",
+ "SsByA = 40;\n",
+ "x1 = 0.25;# [moisture fraction]\n",
+ "x2 = 0.06;# [moisture fraction]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg moisture/kg dry solid]\n",
+ "X2 = x2/(1-x2);# [kg moisture/kg dry solid]\n",
+ "# Fig. 12.10 (Pg 668) indicates that both constant and falling rate periods are involved.\n",
+ "\n",
+ "# Constant Rate period:\n",
+ "# From Fig. 12.10 (Pg 668):\n",
+ "Xc = 0.200;# [kg moisture/kg dry solid]\n",
+ "Nc = 0.3*10**(-3);# [kg/square m.s]\n",
+ "# From Eqn. 12.4:\n",
+ "thetha1 = SsByA*(X1-Xc)/Nc;# [s]\n",
+ "\n",
+ "# Falling Rate Period:\n",
+ "# From Fig. 12.10 (Pg 668):\n",
+ "# Data=[x N*10^3]\n",
+ "Data = numpy.array([[0.2 ,0.3],[0.18 ,0.266],[0.16 ,0.239],[0.14 ,0.208],[0.12, 0.180],[0.10 ,0.150],[0.09 ,0.097],[0.08, 0.070],[0.07 ,0.043],[0.064 ,0.025]]);\n",
+ "Val = zeros(10);\n",
+ "# Val=[(1/N)*10^(-3)]\n",
+ "for i in range(0,10):\n",
+ " Val[i] = 1/Data[i,1];\n",
+ "\n",
+ "plt.plot(Data[:,0],Val);\n",
+ "plt.grid();\n",
+ "plt.xlabel(\"x [kg moisture / kg dry solid]\");\n",
+ "plt.ylabel(\"10^(-3) / N\");\n",
+ "plt.title(\"Graphical Integration Falling Rate Period\");\n",
+ "# Area under the curve:\n",
+ "Area = 1060.0;\n",
+ "# From Eqn. 12.3:\n",
+ "thetha2 = SsByA*Area;# [s]\n",
+ "thetha = thetha1+thetha2;# [s]\n",
+ "print\"Total Drying Time: \",round(thetha/3600,2),\"h\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.3 - Page: 671\n",
+ "\n",
+ "\n",
+ "Total Drying Time: 16.72 h\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEZCAYAAACTsIJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYHFW9//H3JwshkJBJQgghgQxEVgXDqkGRISwGlM37\ncwGRRFwQULiCCFe8gnBVwOuOIBeQgIKACAjKFiSD7IowEIIsEcKaBEIWEhJDSL6/P0510tPp6emZ\nPt1VNfN9PU8/07V/unq6T9c5VadkZjjnnHMFfdIO4JxzLlu8YHDOOdeOFwzOOefa8YLBOedcO14w\nOOeca8cLBuecc+14wdBDSDpL0m8qTH9S0kfquY08k7SFpCWSlHYWAEmzJU1Mnq/Z71nLmVXJPmru\nxnLNklZL6tXfjb36xdeTpM9IeljSUknzJD0k6bg6brLiBSlm9j4z+2u9tiGpRdLL1awkCx++4i9e\nADN7ycwGWx0u7Ele69Lky2qJpAVVLGblntc551RJKwoZJf1F0nurXLam97Ro+cI+ekHSad1ZF0Cy\nj2Z3d/nezguGOpB0CvBT4DxgpJmNBL4CfEjSeh0sU+t70YhfkLG3UZfMkvpWMZvVa/sd2Cn5shps\nZsO6uGyjchpwnpkNBjYDXgIu7+I6as06JNn+EcB3JH20SxuX+tW4fYcXDNFJGgJ8FzjOzG4ws7cB\nzKzNzI4ys3eS+aZKukjSrZKWAi2SPibpMUmLJb0k6cyi9RZ+UX1J0quSXksKoAID1pN0haS3kqqj\nXYuWny1p3+R5X0nfkjQrmfcRSaOTaT9Ltr04Gf/hbu6HVklnS7ov2cYdkoYnkwtHLouSX4cfSJY5\nRtJTya/V2yVtUbS+AyQ9I2mRpF9KukfSF5JpUyTdL+nHkuYDZ0raStLdkuZLekPSb5P3hqRaZgvg\nlmT73yj9xStpM0k3S3pT0nOSvliU5SxJ13W0r6vcP+M6ytfJcqU5K+1nJB0t6cVkO98u/j+oxMz+\nDfweWHPEUOn/k268p51s/yFgZmH7nfxvrJZ0vKTngGeKxm2VPB8i6UpJryev/wwpVMVJ6iPpf5P3\n4F/Ax6rJ1+OZmT8iPoBJwEqgTyfzTQUWAROS4QHA3sB7k+EdgbnAoclwM7AauAoYCLwPeB3YN5l+\nFrA82b6A7wMPFm3vBWBi8vxU4Alg66JtDUuefxYYSvjRcDIwB1ivaBu/6eD1tAAvFw23As8B7wHW\nB6YDP0imjU1eS5+i+Q9N5t822fYZwP3JtI2BxcBhybQTgXeAY5LpU5J9fkIyfX1gHLAv0D9Z/h7g\nJ+X2R8n+7ZMM/xW4AFgPeH+yr/epZl+X2TergXEl46rOV7zfy+SstJ93AJYAeybb+WGy3yZ2kPNy\n4Jzk+YbAb4C7i6ZX+v/s0ntaZtuF19U32acfAt4G9ulsPclydwBNwICicVslz68Ebkxe01hC4VH4\n3/kK8E9gNOH/fjqwik4+vz39kXqAnvYAjgLmlIx7AFgILAM+nIybCkztZF0/BX6cPC98cLYpmn4e\ncGny/CzgzqJpOwDLioaLv2ieAQ6u8vUsAHYs2ka1BcN04FtFw8cBt5W8luIvkdsKH9ZkuE/yxbAF\ncHTpFwqhmqO4YHixk9dxGPBouf1RmgnYHHgX2LBo+veBy6vZ12W2vZpQsC1MHj/tSj4qFwyV9vN3\ngKuKpg0EVtBxwTCVUOAtJHw5/gvYuIv/n9W8p5uXWVdh+YXJ/9xTwFerWU+yXEuZfb4VoaBZAWxX\nNO3LwPTk+d3Al4um7V/6Onrjw6uS4nsT2FhFbQZmtqeZDU2mFcYb0K6xVtIHJE1PDnkXAccCw2mv\neJmXCHXBBfOKni8D1lf5tosxhA/9OpJqlaeSKpuFwBDCL9rumFv0fDkwqMK8Y4GfSVqYbPfNZPxo\nYBTwSsn8pcOl+3KkpGskvSJpMeHXb+m+7MhmwAJLqgETLyVZCqrd1wU7m9nQ5PGfNeYr1dF+3oyi\n/WRmy1m7X8sx4IfJ/2oz4Qv16MLEKv8/i1V6Tzsy3MyGmdkOZnZBF9bT0YkPGxOOll4sGlf8Xo5i\n3c9Ur+cFQ3wPEj5Qh3Vj2auBm4AxZtYE/Ip136MtSp6/2o3tvEyoemhH0l6EaqZPmllT8gWxmPiN\nn+XOqHmJ8MttaNFjQzN7kFCdNaYop4qHO1jn9wm/et9nZkOAz9F+X1Y6q+c1YJik4oJsC9YtjGrR\nWb4YXqP9fhtI54WPAMzsZUKV3X9LGpxMq/T/2ZX39KEuvo5q1tPR+zmfUM3YXDSu+L2cw7qfqV7P\nC4bIzGwRofH5Qkn/IWlw0sA1nlDHWVDuy3YQsNDM3pG0B3Ak6/7Df1vSQIXTCKcA13Yj5qXAOZLe\no2AnScOS7b8LzJe0nqTvABt1Y/0FHRUob5DUuxeN+xXwLUk7wJoGw08m024FdpR0qMJZJycAm3ay\n7UGE6oa3FBrWTy2ZPq9k+2skX4oPAD+QNEDSTsAxwG872WZXdJavKzraz38ADpY0QeFsuLMqzLvO\neszsLmAWcHxR5o7+P7v6nnZFt9djZquA64DvSRokaSzwdda+l9cBJ0oaLWkocHo38vU4XjDUgZn9\nkNBw+03CYf5cwj/3NwlHFBA+UKVf+scDZ0t6C/hvyn/p30P4sN5FOOy/q8L6OvoV9WPCB+JOwhHB\nJYSGyzuA24FngdmEaoniQ+ty26i0PSt5bgBmtgz4HnB/Uj2wh5ndRGgzuSapWpkBfDSZfz7wSeB8\nwi/A7YFHCEdmHeX6LrBL8vpuIXxJFs/zA0Ihu1DSyWXyHkH4lfkacAPwHTO7u8L2urJfqslXunzp\nvuxo/cX7eSbwNeCa5HUsITSir6C8cq/rh4Qvzv5U+P/s6ntaYfvrjux8PeWWKx73NUIh/DxwL+EE\njsuTaZcQ/u8fJ/xPVXofeg0lDS7120A4p/wR4BUzOzj5ZXotod5wNvCp5Fe2q0DhKs7ngX5mtjrd\nNOlK6vJfBo40s3vSzpMXSdXYQuA9ZvZiZ/O73qsRRwwnEc4wKJRApwPTzGwb4C/4oZurgsJ1DE2S\nBgDfSkZ3ta6615F0sKQNJG0I/C/whBcKrjN1LRgkjQEOItRpF+ovDwGuSJ5fQfcaaXur3nyIO4FQ\nhfYG4SKkw8ysoyoRt9YhhBMUXiXU/38m3TguD+palSTp94SzLzYCvpFUJS1MznYpnF2yoDDsnHMu\nfXU7YpD0ceB1M3uMDs6EsFAq9eZfwc45lzn17HBqT+AQSQcRznjZSKGPmnmSNjWzuZJGEc6SWIck\nLzCcc64bzKyma4/qdsRgZt8ys83NbEtCvebdZvY54GZgcjLbZMIFMx2to+zjxReN0aPTv2zczDjz\nzDNTz9ATMnpOz5n1R15yxtDI6xgKic8F9pf0LDAxGe6S0aNh/nxYvjxmvO6ZPXt22hE6lYeM4Dlj\n85xx5SVnDA3pu9zCueb3JM8XAPvVsr6+fWHsWJg9G7bfPkJA55xza+T2yuettoJ/le0GrrGmTJmS\ndoRO5SEjeM7YPGdceckZQ92vfO4uSVYp2wknwLbbwoknNjCUc85lnCQsq43P9TZuHDz/fNopoLW1\nNe0IncpDRvCcsXnOuPKSM4bcFgxZqUpyzrmeJrdVSTNmwGc+AzNnNjCUc85lXIyqpNwWDEuXwiab\nhL99cnvc45xzcfXqNoZBg2DwYJg7t/N56ykP9Y55yAieMzbPGVdecsaQ24IBstMA7ZxzPUluq5IA\njjoK9t8fJk+uOJtzzvUavboqCfyIwTnn6iHXBUMWTlnNQ71jHjKC54zNc8aVl5wx5L5g8CMG55yL\nK9dtDK+9Brvskv6ZSc45lxW9vo1h003hrbfCtQzOOefiyHXB0KcPbLklvPBCehnyUO+Yh4zgOWPz\nnHHlJWcMuS4YIBsN0M4515Pkuo0B4KSTwk17Tj65AaGccy7jen0bA/i1DM45F1vuC4a0q5LyUO+Y\nh4zgOWPznHHlJWcMdS0YJK0v6WFJbZKekvSDZPxZkl6R9FjymNTdbfgRg3POxVX3NgZJG5jZMkn9\ngPuAbwD7AkvM7McVlquqjWH5chg6FN5+G/r2jRbbOedyKRdtDGa2LHm6HtAXWJgM1xS8YOBAGD4c\nXn01xtqcc87VvWCQ1EdSGzAPmG5mhXuufU3S45Iuk9RUyzbSrE7KQ71jHjKC54zNc8aVl5wxNOKI\nYbWZjQfGAB+R1AJcBGwJjAfmAD+qZRtpN0A751xP0q9RGzKzxZL+DOxmZq2F8ZIuBW4pt8yUKVNo\nbm4GoKmpifHjx9PS0gKsLb1bWloYNw6mT29l3DjKTu/twy0tLZnKU2m4ICt5fH/Wf9j3Z23Dra2t\nTJ06FWDN92Wt6tr4LGlj4F0zWyRpIHAH8F1gppnNTeb5OrC7mR1ZsmxVjc8AV10Ft9wC11wTN79z\nzuVNHhqfRwF3J20MDwO3mNlfgPMlPSHpcWBv4Ou1bCTN7rdLf0lkUR4ygueMzXPGlZecMdS1KsnM\nZgC7lBl/dMzt+LUMzjkXT+77SgIwg402gldegSFD6hzMOecyLA9VSQ0h+d3cnHMulh5RMEB6p6zm\nod4xDxnBc8bmOePKS84YelTB4EcMzjlXux7RxgBw4YXwxBPwq1/VMZRzzmWctzEU8aufnXMujh5V\nMKRRlZSHesc8ZATPGZvnjCsvOWPoMQVDc3M4XXXlyrSTOOdcvvWYNgYI936ePj0cPTjnXG/kbQwl\n/Apo55yrXY8qGNJogM5DvWMeMoLnjM1zxpWXnDH0uILBjxicc642PaqN4dpr4fe/h+uvr1Mo55zL\nOG9jKOFHDM45V7seVTCMGxfaGBp5EJSHesc8ZATPGZvnjCsvOWPoUQXD0KGhp9UFC9JO4pxz+dWj\n2hgAdtkFLr4Ydt+9DqGccy7jvI2hjEJ1knPOue7pcQVDoxug81DvmIeM4Dlj85xx5SVnDHUrGCSt\nL+lhSW2SnpL0g2T8MEnTJD0r6U5JTTG361c/O+dcberaxiBpAzNbJqkfcB/wDeAQYL6ZnS/pNGCo\nmZ1eZtlutTHcdRd873uhzyTnnOttMt/GYGbLkqfrAX2BhYSC4Ypk/BXAYTG36dcyOOdcbepaMEjq\nI6kNmAdMN7OZwEgzm5fMMg8YGXObW2wBc+fCihUx19qxPNQ75iEjeM7YPGdceckZQ796rtzMVgPj\nJQ0B7pC0T8l0k9RhfdGUKVNobm4GoKmpifHjx9PS0gKsfZPKDY8ZA9dd18rmm5efHnO4oF7r703D\nbW1tmcqT92Hfn71jf7a2tjJ16lSANd+XtWrYdQyS/htYDnwRaDGzuZJGEY4ktiszf7faGAAOOABO\nPhkmTaopsnPO5U6m2xgkbVw440jSQGB/4DHgZmByMttk4KbY2/b7PzvnXPfVs41hFHB30sbwMHCL\nmf0FOBfYX9KzwMRkOKpGNkAXDumyLA8ZwXPG5jnjykvOGOrWxmBmM4BdyoxfAOxXr+1CuJbhgQfq\nuQXnnOu5elxfSQCPPQaTJ8MTT0QO5ZxzGRejjaFHFgyLF8Po0bBkSeht1TnneotMNz6nacgQWH99\neP31+m8rD/WOecgInjM2zxlXXnLG0CMLBvAroJ1zrrt6ZFUSwBFHwMc+BkcdFTGUc85lnFclVeBH\nDM451z09tmBoVPfbeah3zENG8Jyxec648pIzhh5bMPjVz8451z09to3hpZdgwgR49dWIoZxzLuP8\nOoYKVq2CDTeEhQth4MCIwZxzLsO88bmCvn1h7Fh44YX6bicP9Y55yAieMzbPGVdecsbQYwsG8DOT\nnHOuO3psVRLAV78KW28NJ50UKZRzzmWcVyV1wo8YnHOu63p0wTBuXP1PWc1DvWMeMoLnjM1zxpWX\nnDH06ILBjxicc67renQbw9KlMGIEvP029OnRRaBzzgXextCJQYNCF9xz5qSdxDnn8qNHFwxQ/+qk\nPNQ75iEjeM7YPGdceckZQ10LBkmbS5ouaaakJyWdmIw/S9Irkh5LHpPqlaERDdDOOdeT1LWNQdKm\nwKZm1iZpEPAP4DDgU8ASM/txhWVrbmMAOPNMMIOzz655Vc45l3mZb2Mws7lm1pY8Xwr8ExidTG7I\n3Zj9zCTnnOuahrUxSGoGdgYeSkZ9TdLjki6T1FSv7da7KikP9Y55yAieMzbPGVdecsbQrxEbSaqR\nrgdOMrOlki4CCpU75wA/Ar5QutyUKVNobm4GoKmpifHjx9PS0gKsfZM6G95mmxaef776+bs6XFCv\n9fem4ba2tkzlyfuw78/esT9bW1uZOnUqwJrvy1rV/ToGSf2BPwG3mdlPy0xvBm4xsx1LxkdpYzAL\n3W/PmweDB9e8Ouecy7S6tjFIWippSZnHckmrqgwo4DLgqeJCQdKootkOB2Z09wV0ngG23LL+3W87\n51xP0WHBYGaDzGxw4QGMAr4HzAXW+eXfgQ8BRwH7FJ2aeiBwnqQnJD0O7A18vbaXUVk9G6ALh3RZ\nloeM4Dlj85xx5SVnDJ22MSQNw/8JTAauBnYzszerWbmZ3Uf5wue2roSslV/L4Jxz1euwjUHSCOAU\n4NPAr4Gfm9nihgWL1MYA8POfwzPPwC9/GWV1zjmXWTHaGCodMcwG5hMKhWXAF5I2AwCrdHFa1owb\nB7femnYK55zLh0rXMfwQuDx5PggYnPwtPM8Nb2NoTTtCVTxnXJ4zrrzkjKHDIwYzO6uBOeqquRle\neglWrYK+fdNO45xz2daj78dQbMwYuO++UEg451xPlfm+krLkwx+GW25JO4VzzmVfpQvc9ixqbM69\n446DCy8MV0LHlId6xzxkBM8Zm+eMKy85Y6h0xHA08KikayVNSbrQzq2PfCS0L9x9d9pJnHMu2zpt\nY5C0PXAgcADQBNwN3A7cb2ZVdY3RrWCR2xgALroIpk2DG26IulrnnMuMGG0MXWp8lrQBsA+hoJhg\nZrvWsvFOthW9YFiyBMaOhccfh803j7pq55zLhIY3PpvZMjP7s5l9tZ6FQr0MHgyf/SxcfHG8deah\n3jEPGcFzxuY548pLzhh6zVlJBccfD5deCitWpJ3EOeeyqddcx1Bsv/3gmGPgyCPrsnrnnEtNQ6uS\nJK0vaUAtG8uKE07wDvWcc64jla5j6CPpE5J+L+lV4AXgRUmvSrpe0uF5vc7h4IPh5Zehra32deWh\n3jEPGcFzxuY548pLzhgqHTG0ArsC/wtsZWajzGxTYKtk3O7APXVPWAf9+sGxx/pRg3POlVPpfgwD\nzKxiE20183Q7WB3bGCDcA3q77UKvq0OH1m0zzjnXUHVtYyj3hS9peGfz5MXIkXDQQTB1atpJnHMu\nWyq1MUyUNEvSQ5L2kPQM8DdJ/5K0ewMz1s0JJ4T+k1av7v468lDvmIeM4Dlj85xx5SVnDJ3dqOdw\n4OvAncAXzWwc8Emgqru3Sdpc0nRJMyU9KenEZPwwSdMkPSvpzuS+0g03YQIMGhS6yXDOORdUamN4\nzMx2Tp7/08y2Lzet4spDx3ubmlmbpEHAP4DDgM8D883sfEmnAUPN7PSSZevaxlBw6aVw883h4Zxz\neVfv6xiKp/1X0UYF9K9m5WY218zakudLgX8Co4FDgCuS2a4gFBapOPJIeOABmD07rQTOOZctlQqG\n70jaEMDMbioavxVwZVc3JKkZ2Bl4GBhpZvOSSfOAkV1dXywbbABHHw2/+lX3ls9DvWMeMoLnjM1z\nxpWXnDFUuufzH0vHSdrUzP4FnN+VjSTVSH8ATjKzJcXXxZmZSSpbZzRlyhSak3txNjU1MX78eFpa\nWoC1b1KM4eOOg913b2XiRDjggK4tXxAzT28dbmtry1SevA/7/uwd+7O1tZWpyemVzZHuXdzVbrcf\nNbNdurQBqT/wJ+A2M/tpMu5poMXM5koaBUw3s+1KlmtIG0PBpEmhWunooxu2Seeciy6Nez53aWNJ\ne8RlwFOFQiFxMzA5eT4ZuKl02Ubz/pOccy7oasFwSRfn/xBwFLCPpMeSxyTgXGB/Sc8CE5PhVB10\nULga+pFHurZc4ZAuy/KQETxnbJ4zrrzkjKHDNgZJg81sSfE4M7uws3lK5r+Pjguf/boStN769oXj\njgtHDZdfnnYa55xLT6XrGO4CngH+CDxiZguS8cOB3QinmG5tZnX5gm90GwPA/Pmw9dYwaxYMH975\n/M45lzV1v+ezpInAkYQqoc2S0a8B9wFXmVlrLRuvGCyFggFg8mR43/vg1FMbvmnnnKtZ3Rufzexu\nM/uimW1vZkOSx/Zm9qV6FgppOuEEuOgiWLWquvnzUO+Yh4zgOWPznHHlJWcMve6ez53ZY49QjXT7\n7Wkncc65dHRWldQPuMTMPt+4SGu2nUpVEoSuuK+9Fm67LZXNO+dct9W1Kim5WvlPwN9r2UAeffrT\n4bTVWbPSTuKcc41XqSrpHuDW0lNUe4OBA+Hznw9tDZ3JQ71jHjKC54zNc8aVl5wxVCoYhgAvNypI\n1hx3HFxxBSxblnYS55xrrErXMYwCbgTOLeldtSHSbGMo+PjH4fDD4QtfSDWGc85Vrd73fJ4D7A/0\n2q/FQv9JKZdPzjnXUJ1dx7AE+ESDsmTORz8Kb70FDz3U8Tx5qHfMQ0bwnLF5zrjykjOGTq9jMLOV\njQiSRX36rO0/yTnneotKbQxNwOmEPpFGAga8Tugi+1wzW1TXYBloYwBYsADGjYNnnoFNNkk7jXPO\nVVbvLjGuAxYCLcAwMxsG7AMsSqb1CsOGwSc+AZdemnYS55xrjEoFQ7OZnWdmcws/3c1sjpmdCzQ3\nJF1GnHBCuCf0u++uOy0P9Y55yAieMzbPGVdecsZQqWB4UdI3JY0sjJC0qaTTgJfqHy07dtkFRo+G\nP/0p7STOOVd/ldoYhhHaGA4htDEAzCPclvPcwv0Z6hYsI20MBVddFfpQmjYt7STOOdexut+PIU1Z\nKxhWrICxY+Gee2DbbdNO45xz5dX9fgwVNtzw3lbTNmBAuAL6wpKeo/JQ75iHjOA5Y/OcceUlZwzd\nvR/D2dXMJOnXkuZJmlE07ixJr0h6LHlM6maGhjv2WPjtb2Hp0rSTOOdc/VRqY5hRdkKwjZkN6HTl\n0l7AUuBKM9sxGXcmsMTMftzJspmqSio4/HCYNCkUEs45lzUxqpL6VZi2CTCJcC1DqQeqWbmZ3Sup\nucykmkKn6YQT4OST4ctfBuX2VTjnXMcqVSX9GRhkZrNLH4R7NdTia5Iel3RZcoV1buy7L7zzDtx3\nXxjOQ71jHjKC54zNc8aVl5wxdHjEYGbHVJh2RA3bvIi1bRTnAD+igx5cp0yZQnNzMwBNTU2MHz+e\nlpYWYO2blMbw8cfDmWe28p3vrM2aZp6eMtzW1papPHkf9v3ZO/Zna2srU6dOBVjzfVmrup+umlQl\n3VJoY+jCtEy2MQAsXgzNzfDUUzBqVNppnHNurdROV61FcgOggsOBSo3cmTRkSLgv9CWXpJ3EOefi\nq2vBIOl3hIbqbSW9LOkY4DxJT0h6HNgb+Ho9M9TLCSfAxRfDnXe2ph2lU4XDzqzznHF5zrjykjOG\nSmcl1ayDtohf13ObjbLjjrD33nDOOTBxIvSr6550zrnG8S4xarBiBRx6KIwcCZdfHm7s45xzacpl\nG0NPMmAA3HADPP88nHii3xvaOdczeMFQo7/9rZU//QkefBC+/e2005SXl7pRzxmX54wrLzlj8Jrx\nCIYMgdtvD20OG20Ep52WdiLnnOs+b2OI6NVXYa+94NRT4bjj0k7jnOuN6t1Xkuui0aPhrrvCkcPg\nwXDUUWkncs65rvM2hhqV1jtutRXccQd84xtw003pZCqVl7pRzxmX54wrLzlj8COGOthhB/jzn+HA\nA2HQINhvv7QTOedc9byNoY7uvRc+8Qn44x9hzz3TTuOc6w38OoaM22sv+M1vws192trSTuOcc9Xx\ngqFGndU7TpoEv/xlqFZ6+unGZCqVl7pRzxmX54wrLzlj8DaGBvh//y/cJ/qAA0L10tixaSdyzrmO\neRtDA/385/CLX8Bf/+r3cXDO1Ydfx5AzJ54Ib70VjhzuuQeGDUs7kXPOrcvbGGrU1XrHM84I7Q6T\nJsGSJfXJVCovdaOeMy7PGVdecsbgBUODSXD++bDzznDwwbB8edqJnHOuPW9jSMmqVXD00eH+0Tfc\nAOutl3Yi51xP4Ncx5FjfvjB1ari5z+c+FwoK55zLAi8YalRLvWP//nDddTB/PnzlK/W70U9e6kY9\nZ1yeM6685IyhrgWDpF9LmidpRtG4YZKmSXpW0p2SmuqZIevWXz90mTFjBpxyit8FzjmXvrq2MUja\nC1gKXGlmOybjzgfmm9n5kk4DhprZ6WWW7dFtDKUWLIB99gl9K515ZtppnHN5lfk2BjO7F1hYMvoQ\n4Irk+RXAYfXMkBfDhsGdd8Lvfgdnn+1HDs659KTRxjDSzOYlz+cBI1PIEE3MeseRI6G1Fa69Ntw/\nOlbhkJe6Uc8Zl+eMKy85Y0j1ymczM0kdfv1NmTKF5uZmAJqamhg/fjwtLS3A2jcp7eGCmOtvbYUJ\nE1qZNQuuuaYFKTuvt57DbW1tmcqT92Hfn71jf7a2tjJ16lSANd+Xtar7dQySmoFbitoYngZazGyu\npFHAdDPbrsxyvaqNodSCBaHrjAkT4Gc/C6e1OudcZzLfxtCBm4HJyfPJQEZugJktw4bBX/4C//hH\nOJV19eq0Eznneot6n676O+ABYFtJL0v6PHAusL+kZ4GJyXBuFQ7p6mHIkHD/6GeegWOO6f5FcPXM\nGJPnjMtzxpWXnDHUtY3BzI7oYJLfBblKgwfDrbfCoYfCUUfBlVeGC+Occ65evK+knFi+PFzjsMEG\n4ZTW9bxvJedcGXltY3DdMHAg3HQTvPsu/Md/wL//nXYi51xP5QVDjRpZ7zhgAFx/fSgkDj20+i67\n81I36jnj8pxx5SVnDF4w5Ez//nD11TBiBHzsY/D222kncs71NN7GkFOrVsGXvgTPPQd//jNstFHa\niZxzWeBtDL1Y375w6aXwvveFC+EWLUo7kXOup/CCoUZp1jv26QMXXggf/CDsuy+8+Wb5+fJSN+o5\n4/KcceVF+uFGAAAPdElEQVQlZwxeMOScBD/5Cey3H0ycCK+/nnYi51zeeRtDD2EW7uNw/fWhK41R\no9JO5JxLQ4w2hlR7V3XxSOE+DgMGwN57w913w5gxaadyzuWRVyXVKGv1jmecAcceGwqH2bPDuKxl\n7IjnjMtzxpWXnDH4EUMPdMop4cihpQXuuivtNM65vPE2hh7s//4PzjkHpk2D7da544VzrifyNgZX\n0Ze/HI4cJkyAnXaCbbZp/9hqqzDdOeeKeRtDjbJe7zh5Mlx2WStnngm77gpz5oQL4w47LNzvYdw4\nOPBAOOkkuOACuPPO0DbR3Xs/1CLr+7LAc8blObPHjxh6gWHDQnvDxIntx69cGQqBZ58Nj5kz4cYb\nw/P580OhUXqUsc02oZ8m1XSg6pzLMm9jcGW9/TbMmrW20Ch+rFrVvqDYeuu1f73PJufSFaONwQsG\n12Vvvhk67ystMJ57LhQM5Y4yvD3DucbIdcEgaTbwFrAKWGlme5RMz0XB0NraSktLS9oxKmpUxtWr\n4bXXyh9lvPQSjB5dvtDYfPPQ71Me9iV4ztg8Z1x5PyvJgBYzW5BiBhdRnz7hausxY8q3Z7zwwtoj\niyefhBtuaN+eMWQIvP/9sNlmoUuP4r8bbxzW75yrvzSPGF4AdjOzsn2C5uWIwdWu0J7xr3+FI445\nc9b9u3gxjBy5boFR+nfECC9AXO+W96qk54HFhKqki83skpLpXjC4Nd55B+bODQVFR4XHa6+FAmST\nTSoXHqNGhQKkb9+0X5Vz8eW9YBhlZnMkjQCmAV8zs3uLpueiYMhDvWMeMkKcnIUCpKOCo/B30aJQ\nOBQXGB0dgZQWIL1pfzaC54wr120MZjYn+fuGpBuBPYB7i+eZMmUKzc3NADQ1NTF+/Pg1b0zhYpO0\nhwuykifPw21tbVHWt8UW8PzzrQwdCocfXn7+adNaWbgQxo5tYc6cMP255+DFF8Pws8+28uabsHRp\nC5tsAoMGtTJ8OOy4Ywv//jfceGMrTU1hfSNGwHPPtbLRRrDvvj1vf/pwtvdna2srU6dOBVjzfVmr\nVI4YJG0A9DWzJZI2BO4EvmtmdxbNk4sjBtezrVwJ8+a1P9qYOxfeeCPcFOmNN9Y+Fi6EpqZQlTVi\nxNpHR8PDh0M/v8TURZbbqiRJWwI3JoP9gKvM7Acl83jB4HJl1apwjUe5QqN4uPC8UJBUU4iMGBHO\nzPKCxHUmtwVDNfJSMLTmoN4xDxmh9+VctQoWLChfaJQbXrAgnNJbTSGyySYwY0Yr++9fe856623v\ne73luo3Bud6ub9+1X+TVKBQk5QqNZ56B++5rP+3NN6F//1CYbLRR9/8OHuxncPU2fsTgXA9lBsuX\nw1tvhdN4u/K3+PnSpbDBBuULjq4UMgMHeueLjeBVSc65ulu9OhQOXS1cSv+uXBkKie4evRSe9++f\n9h7JNi8YMiAP9Y55yAieM7as5Vy5ct2jkcWL4aGHWhk9uqXqAqZ//84Lj87+DhrU9Svks7Y/O+Jt\nDM653OjfP5yiO3x4+/GDB4f7hVSjUD3WWeHx2mvw9NNhuNw8y5aF7XblqKU3nRHmRwzOuV5n1SpY\nsmTdAqNSgXP++aE34KzzqiTnnHPtxCgYvB/KGhUuTc+yPGQEzxmb54wrLzlj8ILBOedcO16V5Jxz\nPYhXJTnnnIvOC4Ya5aHeMQ8ZwXPG5jnjykvOGLxgcM451463MTjnXA/ibQzOOeei84KhRnmod8xD\nRvCcsXnOuPKSMwYvGJxzzrXjbQzOOdeDeBuDc8656FIrGCRNkvS0pOcknZZWjlrlod4xDxnBc8bm\nOePKS84YUikYJPUFLgAmATsAR0jaPo0stWpra0s7QqfykBE8Z2yeM6685IwhrSOGPYBZZjbbzFYC\n1wCHppSlJosWLUo7QqfykBE8Z2yeM6685IwhrYJhNPBy0fAryTjnnHMpS6tg6DGnG82ePTvtCJ3K\nQ0bwnLF5zrjykjOGVE5XlfRB4Cwzm5QM/xew2szOK5qnxxQezjnXSLm8taekfsAzwL7Aa8DfgCPM\n7J8ND+Occ66dfmls1MzelfRV4A6gL3CZFwrOOZcNmb3y2TnnXDoa3vhczYVtkn6eTH9c0s5F45sk\nXS/pn5KeStoqspjzvyTNlDRD0tWSBqSVU9J2kh6U9G9Jp3Rl2SzklLS5pOnJ/nxS0olZzFk0va+k\nxyTdksWMWfoMdZIzS5+hzyaf8Sck3S9pp2qXzULObn2GzKxhD0K10SygGegPtAHbl8xzEHBr8vwD\nwENF064Ajkme9wOGZC1nsszzwIBk+Fpgcoo5RwC7Af8DnNKVZTOSc1NgfPJ8EKFtKnM5i6afDFwF\n3JzFjBn7DHX0nmftMzShsJ8IF+U+VO2yGcnZ5c9Qo48Yqrmw7RDCPy9m9jDQJGmkpCHAXmb262Ta\nu2a2OGs5gbeAlcAGSSP7BsCraeU0szfM7JEkU5eWzUJOM5trZm3J86XAP4HNspYTQNIYwg+GS4Ga\nzgqpR8asfYYq7MusfYYeLNpPDwNjql02Czm78xlqdMFQzYVt5eYZA2wJvCHpckmPSrpE0gYZyzna\nzBYAPwJeIpxxtcjM7koxZz2W7aoo25LUDOxM+Kevh1pz/gQ4FVgdM1SJWjJm7TNUVsY/Q18Abu3m\nsrWoJeca1X6GGl0wVNvSXfprywiHvbsAF5rZLsDbwOkRs5Vurxrr/CqUNA74T8Ih32bAIEmfjRet\nnVrOHGjkWQc1b0vSIOB64KTkV089dDunpI8Dr5vZY9TvaAFq25dZ/AytI6ufIUn7AMcAhfr9TH6G\nyuQsjK/6M9ToguFVYPOi4c0JJV+lecYk414BXjGzvyfjryf8k2ct527AA2b2ppm9C9wA7Jliznos\n21U1bUtSf+APwG/N7KbI2YrVknNP4BBJLwC/AyZKujJyPqgtY9Y+Qx3J3Gcoaci9BDjEzBZ2ZdkM\n5OzyZ6jRBcMjwNaSmiWtB3wauLlknpuBo2HNFdKLzGyemc0FXpa0TTLffsDMrOUkNOx8UNJASUpy\nPpVizoLSX7FdWTa1nMk+vAx4ysx+Wqd8Bd3OaWbfMrPNzWxL4DPA3WZ2dMYyZu0zVDYn8DQZ+gxJ\n2oJQOB1lZrO6smwWcnbrM1SPFvROWtcPJHx5zgL+Kxl3LHBs0TwXJNMfB3YpGv9+4O/J+Buo0xkV\nEXJ+k/CBm0FooO6fVk7CGQkvA4uBhYR620EdLZu1nMCHCXX2bcBjyWNS1nKWrGNv6nRWUoT3PDOf\noU5yZukzdCnwZtH/398qLZu1nN35DPkFbs4559rxW3s655xrxwsG55xz7XjB4Jxzrh0vGJxzzrXj\nBYNzzrl2vGBwzjnXjhcMrtuSi22WS3q0aHhGSlk2k/T7CtOHSDquzhk+KOn/Ssa1KFIX3JKmSPpF\njHVVsa0176Wk3ST9rIP5ZksallyM1iZphaRhjcjo6scLBlerWRb63UmVmb1mZp+sMMtQ4PiurldS\nVz4jBwK3dXUbtZLUt57rN7NHzOykjiYn8yw3s/GETu9cznnB4MqStHty048BkjZMbvCxQxeW3yrp\nwXNXSRtIui65UcgNkh6StGuZZWZL+r7CjW4ekbSLpDslzZJ0bDKPJP1Q4QYuT0j6VDK++BfueyU9\nnKynTdJ7gHOBccm48yXtXfxLXtIFkiYX5ThX0j+AT0o6QNIDkv6RvI4NO3jZE4EOewFN9umjkraU\nNELStGS/XlL45V1mmc9LekbSwxT1FyRpqqRfSXoIOF/Ss5I2Tqb1UbiZy/CSde2dvP7HkhwbdrQ/\nS5Zbc9QjaXjynjwp6RLq22GgS0kq93x22Wdmf5d0M+EmKgOB35hZVf3VSNqW0JHcZDObIekbwJtm\n9l5J7yVcml/uknsDXjSznSX9GJhKuPnIQOBJ4GLgE4RuHXYi3Ojl75LuKVnPV4CfmdnVCv359yP0\nNPleM9s5ydhSZttW9Hy+me2afNn+AdjXzJYr3DnrZOCckte8MbDSzJZ0sE/2BH5O6NzsFUkXAHeZ\n2XmSPkroJrl0mVHAWYSO7t4CpgOPFs2yGTDBzEzSYuCzwM8IfQu1mdmbJas8BTjezB5U6G57BdXt\nz2JnAn81s/+RdFC53C7//IjBVXI2cACht8vzq1xmE+Am4EgzK7Q3fIhwYxHMbCbwRIXlCx2DzQAe\nNLO3zWw+sELhRjMfAq624HXgHsJNTIo9AHxL0jeBZjP7N13/ZXtt8veDwA7AA5IeI3ScuEWZ+Q8A\n7uhgXdsTCrWPm1mhR8zifXIHoa+gUh8AplvoZXRlkqnwOgz4va3t0+bXSTYIXS5fXmZ99wM/kfQ1\nYKiZraK6/VlsL+C3Se5bO8jtcs4LBlfJxsCGhM7sBla5zCLgRcIXSLFqv5hXJH9XA+8UjV/N2iPc\ncvfrWDtg9jvgYGA5cKtC//Sl3qX9/3/p63u76Pk0M9s5ebzXzL5UZn2TgNvLjDdgTpKltC2ms31i\nJfOUzr9szYyhwJknaSKwO2XaOszsPMIv/IHA/cmRXbn1dtaBmlcf9XBeMLhKLga+DVwNnFflMu8Q\nqieOlnREMu5+oNAWsAOwYxXrKfflY8C9wKeTevQRwEeAv7VbUNrKzF4ws18Af0y29xYwuGi2F4Ed\nJK0nqYnQPlDOw8CHFG4eQ1Ivv3XJ9gTsZGaPd/A6FgEfB34gae9kfPE+OYDQOF7qb8DeCmf99Ac+\nSeUv7UsJv+avKzqSKM45zsxmmtn5hB5Wt6OK/Vnir8CRyfoO7CC3yzlvY3BlSToaWGFm1yicmfOA\npBYza+1kUTOzZQp3NJsmaQlwIXCFpJmEvvZnErpaXmfZkuelw5jZjZImELqNNuBUM3td4ZaFhfk/\nJekown2D5wDfM7NFku5PGqhvNbPTJF1HaLt4gfZ198Uv5g1JU4DfSRqQjD4DeK5otl0JXRmXXUWy\nT15P9sltkj4PfDdZ5+eAB4G5QLv2CTObI+msZPqiMtso/fK/hVCFVK4aCeCk5OhpNeF132pmK6vY\nn8XbKuQ+glBl92IH23I55t1uu25LvjxuMbOKRwBJwdLfzFYkv7ynAdtYuDtX7kk6A3jOzK7rwjLr\nAavMbFXyxfzLWk/7lbQb8CMz27vTmetE4Q52u1q4b7PLKT9icLV4Fxgi6dFOvtQ2BO5OqkMEHNdT\nCgUAM/teNxbbArguKTTfAcq1W1RN0umEs7GOrGU9NWx/feAhwnfK6jQyuHj8iME551w73vjsnHOu\nHS8YnHPOteMFg3POuXa8YHDOOdeOFwzOOefa8YLBOedcO/8fn0E/Bf9S/E0AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x772c470>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.4: Page 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.4\n",
+ "# Page: 676\n",
+ "\n",
+ "print'Illustration 12.4 - Page: 676\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "#***Data***#\n",
+ "# For rectangular pan:\n",
+ "l = 0.7;# [m]\n",
+ "b = 0.7;# [m]\n",
+ "zS = 0.025;# [m]\n",
+ "zM = 0.0008;# [m]\n",
+ "d = 0.1;# [m]\n",
+ "Y1 = 0.01;# [kg water/kg dry air]\n",
+ "TempG = 65.0;# [OC]\n",
+ "v = 3.0;# [m/s]\n",
+ "TempR = 120.0;# [OC]\n",
+ "#*************#\n",
+ "\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "vH = (0.00283+(0.00456*Y1))*(TempG+273.0);# [cubic m/kg dry air]\n",
+ "Density_G = (1+Y1)/vH;# [kg/cubic m]\n",
+ "G = v*Density_G;# [kg/square m.s]\n",
+ "de = 4*d*l/(2*(l+d));# [m]\n",
+ "# From Eqn. 12.20:\n",
+ "hc = 5.90*G**0.71/de**0.29;# [W/square m.K]\n",
+ "# Assume:\n",
+ "e = 0.94;\n",
+ "# Estimate:\n",
+ "TempS = 38;# [OC]\n",
+ "# From Eqn. 12.14:\n",
+ "hR = e*5.729*10**(-8)*((273+TempR)**4-(273+TempS)**4)/((273.0+TempR)-(273+TempS));\n",
+ "A = l*b;# [square m]\n",
+ "Am = A;# [square m]\n",
+ "As = 4*l*zS;# [square m]\n",
+ "Au = Am+As;# [square m]\n",
+ "# Thermal Coductivities:\n",
+ "kM = 45;# [W/m.K]\n",
+ "kS = 3.5;# [W/m.K]\n",
+ "# By Eqn. 12.16:\n",
+ "Uk = 1/(((1/hc)*(A/Au))+((zM/kM)*(A/Au))+((zS/kS)*(A/Am)));# [W/squre m.K]\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "Cs = 1005+(1884*Y1);# [kJ/kg]\n",
+ "# At estimated 38 OC\n",
+ "lambdaS = 2411.4;# [kJ/kg]\n",
+ "# From Eqn. 12.18:\n",
+ "# (Ys-Y1)*lambdaS*10^3/Cs = ((1+(Uk/hc))*(TempG-Temps))+((hR/hC)*(TempR-TempS))\n",
+ "# On Simplifying:\n",
+ "# Ys = 0.0864-(10.194*10**(-4)*TempS)\n",
+ "# The eqn. is solved simultaneously with the saturated humidity curve of the psychometric chart for the air water mixture.\n",
+ "# From Fig. 12.12: (Pg 677)\n",
+ "Ys = 0.0460;# [kg water/kg dry air]\n",
+ "TempS = 39;# [OC]\n",
+ "# At 39 OC\n",
+ "lambdaS = 2409.7;# [kJ/kg]\n",
+ "# From Eqn. 12.17:\n",
+ "Nc = (((hc+Uk)*(TempG-TempS))+(hR*(TempR-TempS)))/(lambdaS*10**(3));# [kg water evaporated/square m.s]\n",
+ "print\"The Evaporation Rate: \",round(Nc*A,8),\" kg/s\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "# When no radiation or conduction of heat through the solid occurs, the drying surface assumes wet bulb temparature of the air.\n",
+ "# From Fig. 12.12 (Pg 677)\n",
+ "TempS = 28.5;# [OC]\n",
+ "Ys = 0.025;# [kg water/kg dry air]\n",
+ "lambdaS = 2435;# [kJ/kg]\n",
+ "# From Eqn. 12.17:\n",
+ "Nc = hc*(TempG-TempS)/(lambdaS*10**3);# [kg/aquare m.s]\n",
+ "print\"The Evaporation Rate: \",round(Nc*A,8), \"kg/s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.4 - Page: 676\n",
+ "\n",
+ "\n",
+ "The Evaporation Rate: 0.0003851 kg/s\n",
+ "\n",
+ "The Evaporation Rate: 0.00016105 kg/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.5: Page 684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.5\n",
+ "# Page: 684\n",
+ "\n",
+ "print'Illustration 12.5 - Page: 684\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "from scipy import integrate\n",
+ "import math\n",
+ "#***Data***#\n",
+ "x1 = 0.025;# [moisture fraction]\n",
+ "x2 = 0.001;# [moisture fraction]\n",
+ "zS = 0.018;# [m]\n",
+ "dp = 2*10**(-4);# [m]\n",
+ "Density_S = 1350;# [kg dry solid/cubic m]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg water/kg dry air]\n",
+ "X2 = x2/(1-x2);# [kg water/kg dry air]\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Y1 = 0.0153;# [kg water/kg dry air]\n",
+ "Tempas = 24;# [OC]\n",
+ "Yas = 0.0190;# [kg water/kg dry air]\n",
+ "Gs = 0.24;# [kg dry air/square m.s]\n",
+ "Gav = Gs+(Gs*(Y1+Yas)/2.0);# [kg dry air/square m.s]\n",
+ "# From Eqn. 12.26:\n",
+ "Nmax = Gs*(Yas-Y1);# [kg evaporated/square m.s]\n",
+ "viscosity_air = 1.8*10**(-5);# [kg/m.s]\n",
+ "X3=lambda X : 1/(Nmax*(1-math.exp(-(0.273/dp**0.35)*((dp*Gav/viscosity_air)**0.215)*(Density_S*zS*X)**0.64)));\n",
+ "Value = integrate.quad(X3,X2,X1);\n",
+ "# From Eqn. 12.3:\n",
+ "thetha = Density_S*zS*Value[0];# [s]\n",
+ "print\"The time for drying: \",round(thetha/60,3),\" min\\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.5 - Page: 684\n",
+ "\n",
+ "\n",
+ "The time for drying: 12.593 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.6: Page 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.6\n",
+ "# Page: 685\n",
+ "\n",
+ "print'Illustration 12.6 - Page: 685\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "import math\n",
+ "#***Data***#\n",
+ "Y1 = 0.01;# [kg water/kg dry air]\n",
+ "Gs = 1.1;# [kg dry air/square m.s]\n",
+ "dia = 13.5/1000;# [m]\n",
+ "l = 13.0/1000;# [m]\n",
+ "zS = 50.0/1000;# [m]\n",
+ "Density_S = 600.0;# [kg dry solid/square m.s]\n",
+ "a = 280.0;# [square m/cubic m]\n",
+ "#************#\n",
+ "\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Yas = 0.031;# [kg water/kg dry air]\n",
+ "Gav = Gs+(Gs*(Y1+Yas)/2.0);# [kg/square m.s]\n",
+ "viscosity_air = 1.9*10**(-5);# [kg/m.s]\n",
+ "Area = (2.0*math.pi*dia**2.0/4)+(math.pi*dia*l);# [square m]\n",
+ "dp = (Area/math.pi)**0.5;# [m]\n",
+ "# From Table 3.3 (Pg 74)\n",
+ "Re = dp*Gav/viscosity_air;\n",
+ "e = 1.0-(dp*a/6);# [fraction voids]\n",
+ "jD = (2.06/e)*Re**(-0.575);\n",
+ "# For air water mixture:\n",
+ "Sc = 0.6;\n",
+ "# From Eqn. 12.33:\n",
+ "kY = jD*Gs/Sc**(2.0/3);# [kg H2O/square m.s.deltaX]\n",
+ "# From Eqn. 12.30:\n",
+ "NtG = kY*a*zS/Gs;\n",
+ "# From Eqn. 12.25:\n",
+ "Nmax = Gs*(Yas-Y1);# [kg/square m.s]\n",
+ "# From Eqn. 12.31:\n",
+ "N = Nmax*(1-math.exp(-NtG));# [kg water evaporated/square m.s]\n",
+ "Y2 = (Yas-Y1)*(N/Nmax)+Y1;# [kg water/kg dry air]\n",
+ "# From Fig 7.5 (Pg 232)\n",
+ "Tempas = 33.0;# [OC]\n",
+ "# From eqn. 12.2:\n",
+ "Rate = N/(Density_S*zS);# [kg H2O/(kg dry solid).s]\n",
+ "print\"Humidity of the exit air: \",round(Y2,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Temparature of exit air: \",Tempas,\" degree C\\n\"\n",
+ "print\"Rate of Drying: \",round(Rate,7),\" kg H2O/(kg dry solid).s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.6 - Page: 685\n",
+ "\n",
+ "\n",
+ "Humidity of the exit air: 0.0302 kg water/kg dry air\n",
+ "\n",
+ "Temparature of exit air: 33.0 degree C\n",
+ "\n",
+ "Rate of Drying: 0.0007409 kg H2O/(kg dry solid).s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.7: Page 700"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.7\n",
+ "# Page: 700\n",
+ "\n",
+ "print'Illustration 12.7 - Page: 700\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "\n",
+ "import math\n",
+ "from numpy.linalg import inv\n",
+ "#***Data***#\n",
+ "x1 = 3.5;# [percent moisture]\n",
+ "x2 = 0.2;# [percent moisture]\n",
+ "dia = 1.2;# [m]\n",
+ "l = 6.7;# [m]\n",
+ "Rate_prod = 900.0;# [kg/h]\n",
+ "y2 = 0.5;# [Humidity]\n",
+ "TempG2 = 90.0;# [OC]\n",
+ "TempG1 = 32.0;# [OC]\n",
+ "TempS1 = 25.0;# [OC]\n",
+ "TempS2 = 60.0;# [OC]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(100.0-x1);# [kg H2O/kg dry solid]\n",
+ "X2 = x2/(100.0-x2);# [kg H2O/kg dry solid]\n",
+ "Ss = Rate_prod*(1-X2);# [kg dry solid/h]\n",
+ "Rate_drying = Ss*(X1-X2);# [kg water evaporated/h]\n",
+ "Y2 = (y2/(1-y2))/100.0;# [kg water/kg dry air]\n",
+ "Tempo = 0.0;# [Base temp,OC]\n",
+ "# From Table 7.1: (Pg 234)\n",
+ "# Enthalpy of air entering the drier:\n",
+ "HG2 = (1005.0+(1884.0*Y2))*(TempG2-Tempo)+(2502300.0*Y2);# [J/kg dry air]\n",
+ "# For the outlet air:\n",
+ "# HG1 = (1005.0+(1884*Y1))*(TempG1-Tempo)+(2502300*Y1); [J/kg dry air]\n",
+ "# HG1 = (1005.0*TempG1)+((1884+TempG1)+2502300)*Y1; [J/kg dry air]\n",
+ "CsNH4 = 1507.0;# [J/kg.K]\n",
+ "CsH2O = 4187.0;# [J/kg.K]\n",
+ "# From Eqn. 11.45:\n",
+ "HS2 = CsNH4*(TempS2-Tempo)+(X2*CsH2O*(TempS2-Tempo));# [J/kg dry air]\n",
+ "HS1 = CsNH4*(TempS1-Tempo)+(X1*CsH2O*(TempS1-Tempo));# [J/kg dry air]\n",
+ "# The estimated combined natural convection and radiation heat transfer coeffecient from the drier to the surrounding:\n",
+ "h = 12.0;# [W/square m.K]\n",
+ "deltaTemp = ((TempG2-TempS1)+(TempG1-TempS1))/2;# [OC]\n",
+ "Ae = math.pi*dia*l;# [square m]\n",
+ "Q = h*3600.0*Ae*deltaTemp;# [kJ/h]\n",
+ "# Moisture Balance, Eqn. 12.39:\n",
+ "# Ss*(X1-X2) = Gs(Y1-Y2)\n",
+ "# (Gs*Y1)-(Gs*Y2) = (Ss*(X1-X2)) ........(1)\n",
+ "# Enthalapy Balance, Eqn. 12.40:\n",
+ "# (Ss*HS1)+(Gs*HG2) = (Ss*HG2)+(Gs*HG1)+Q \n",
+ "# Gs*(HG2-HG1) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-((1005*TempG1)+((1884+TempG1)+2502300)*Y1)) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-(1005*TempG1))-(Gs*Y1*((1884+TempG1)+2502300)) = (Ss*HS2)+Q-(Ss*HS1)........ (2)\n",
+ "# Solving Simultaneously:\n",
+ "a = numpy.array([[HG2-(1005.0*TempG1),-((1884.0+TempG1)+2502300.0)],[(-Y2), 1.0]]);\n",
+ "b = numpy.array([[((Ss*HS2)+Q-(Ss*HS1))],[(Ss*(X1-X2))]]);\n",
+ "c=inv(a)\n",
+ "soln =np.dot(c, b)\n",
+ "Gs = soln[0];# [kg dry air/h]\n",
+ "Y1 = soln[1]/soln[0];# [kg water/kg dry air]\n",
+ "# From Fig. 7.5 (Pg 232)\n",
+ "Enthalpy_air = 56.0;# [kJ/kg dry air]\n",
+ "HeatLoad = Gs*(HG2-Enthalpy_air*1000);# [W]\n",
+ "print\"Air Flow Rate: \",round(Gs,2),\" kg/h\\n\"\n",
+ "print\"Moisture content of air: \",round(Y1,2),\" kg water/kg dry air \\n\"\n",
+ "print\"Heat Load of drier: \",round(HeatLoad/1000),\" kW\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.7 - Page: 700\n",
+ "\n",
+ "\n",
+ "Air Flow Rate: 2681.03 kg/h\n",
+ "\n",
+ "Moisture content of air: 0.02 kg water/kg dry air \n",
+ "\n",
+ "Heat Load of drier: 163995.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.8: Page 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.8\n",
+ "# Page: 705\n",
+ "\n",
+ "print'Illustration 12.8 - Page: 705\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "from numpy.linalg import inv\n",
+ "import numpy as np\n",
+ "#***Data***#\n",
+ "x1 = 8.0;# [percent moisture]\n",
+ "x2 = 0.5;# [percent moisture]\n",
+ "Rate_prod = 0.63;# [kg/s]\n",
+ "# Drying Gas:\n",
+ "xCO2 = 0.025;# [mole fraction]\n",
+ "xO2 = 0.147;# [mole fraction]\n",
+ "xN2 = 0.760;# [mole fraction]\n",
+ "xH2O = 0.068;# [mole fraction]\n",
+ "TempG2 = 480.0;# [OC]\n",
+ "Cs = 0.837;# [kJ/kg.K]\n",
+ "Temp1 = 27.0;# [OC]\n",
+ "Temp2 = 150.0;# [OC]\n",
+ "dp = 200.0*10**(-6);# [m]\n",
+ "Density_S = 1300.0;# [kg/cubic m]\n",
+ "#***********#\n",
+ "\n",
+ "X1 = x1/(100-x1);# [kg water/kg dry solid]\n",
+ "X2 = x2/(100-x2);# [kg water/kg dry solid]\n",
+ "Ss = Rate_prod*(1-X2);# [kg dry solid/s]\n",
+ "Water_evap = Ss*(X1-X2);# [kg/s]\n",
+ "# Basis: 1 kmol of dry gas:\n",
+ "xDry = 1.0-xH2O;# [kmol]\n",
+ "XCO2 = 44.0*xCO2;# [kg]\n",
+ "XO2 = 32.0*xO2;# [kg]\n",
+ "XN2 = 28.0*xN2;# [kg]\n",
+ "Xdry = XCO2+XO2+XN2;# [kg]\n",
+ "cCO2 = 45.6;# [kJ/kmol.K]\n",
+ "cO2 = 29.9;# [kJ/kmol.K]\n",
+ "cN2 = 29.9;# [kJ/kmol.K]\n",
+ "cH2O = 4.187;# [kJ/kg.K]\n",
+ "Mav = Xdry/xDry;# [kg/kmol]\n",
+ "Y2 = xH2O*18.02/(xDry*Mav);# [kg water/kg dry gas]\n",
+ "cav = ((xCO2*cCO2)+(xO2*cO2)+(xN2*cN2))/(xDry*Mav);# [kJ/kmol.K]\n",
+ "# Assume:\n",
+ "TempG1 = 120.0;# [OC]\n",
+ "cDry = 1.005;# [kJ/kmol.K]\n",
+ "Tempo = 0;# [Base Temp,OC]\n",
+ "# By Eqn. 7.13:\n",
+ "HG2 = (cav+(1.97*Y2))*(TempG2-Tempo)+(2502.3*Y2);# [kJ/kg dry air]\n",
+ "# For the outlet air:\n",
+ "# HG1 = (1.005+(1.884*Y1))*(TempG1-Tempo)+(2502.3*Y1); [kJ/kg dry air]\n",
+ "# HG1 = (1.005*TempG1)+((1.884+TempG1)+2502.3)*Y1; [kJ/kg dry air]\n",
+ "# By Eqn. 11.45:\n",
+ "HS1 = (Cs*(Temp1-Tempo))+(cH2O*X1*(Temp1-Tempo));# [kJ/kg dry air]\n",
+ "HS2 = (Cs*(Temp2-Tempo))+(cH2O*X2*(Temp2-Tempo));# [kJ/kg dry air]\n",
+ "# Q = 0.15*HG2*Gs; [kJ/s]\n",
+ "# Moisture Balance, Eqn. 12.39:\n",
+ "# Ss*(X1-X2) = Gs(Y1-Y2)\n",
+ "# (Gs*Y1)-(Gs*Y2) = (Ss*(X1-X2)) ........(1)\n",
+ "# Enthalapy Balance, Eqn. 12.40:\n",
+ "# (Ss*HS1)+(Gs*HG2) = (Ss*HG2)+(Gs*HG1)+Q \n",
+ "# Gs*(HG2-HG1) = (Ss*HS2)+(0.15*HG2*Gs)-(Ss*HS1)\n",
+ "# Gs*(HG2-(0.15*HG2)-((1.005*TempG1)+((1.884+TempG1)+2502.3)*Y1)) = (Ss*HS2)+Q-(Ss*HS1)\n",
+ "# Gs*(HG2-(0.15*HG2)-(1.005*TempG1))-(Gs*Y1*((1.884+TempG1)+2502.3)) = (Ss*HS2)+Q-(Ss*HS1)........ (2)\n",
+ "a = np.array([[(HG2-(0.15*HG2)-(1.005*TempG1)),-((1.884+TempG1)+2502.3)],[(-Y2), 1.0]]);\n",
+ "b = np.array([(Ss*HS2)-(Ss*HS1),(Ss*(X1-X2))]);\n",
+ "c=inv(a)\n",
+ "soln = np.dot(c, b)\n",
+ "Gs = soln[0];# [kg dry air/s]\n",
+ "Y1 = soln[1]/soln[0];# [kg water/kg dry gas]\n",
+ "HG1 = (1.005+(1.884*Y1))*(TempG1-Tempo)+(2502.3*Y1);# [kJ/kg dry air]\n",
+ "Q = 0.15*HG2*Gs;# [kJ/s]\n",
+ "# Assuming the sychrometric ratio of the gas as same as that of air:\n",
+ "# For Zone II:\n",
+ "Tempw = 65.0;# [OC]\n",
+ "Temp_A = 68.0;# [OC]\n",
+ "# At point A, Fig. 12.28 (Pg 702)\n",
+ "Enthalpy_A = Cs*(Temp_A-Tempo)+(X1*cH2O*(Temp_A-Tempo));# [kJ/kg dry air]\n",
+ "# At point B, Fig. 12.28 (Pg 702)\n",
+ "Temp_B = Temp_A;# [OC]\n",
+ "Enthalpy_B = Cs*(Temp_B-Tempo)+(X2*cH2O*(Temp_B-Tempo));# [kJ/kg dry air]\n",
+ "\n",
+ "# Assuming that the heat losses in the three zones are propotional to the number of transfer units in each zone and to the average temp. difference between the gas and the surrounding air.\n",
+ "# Fractional heat loss in each Zone:\n",
+ "fr1 = 0.14;\n",
+ "fr2 = 0.65;\n",
+ "fr3 = 0.20;\n",
+ "# Calculations for zone III:\n",
+ "Cs3 = cav+(1.97*Y2);# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "def f1(TempGD):\n",
+ " return (Gs*Cs3*(TempG2-TempGD))-(Ss*(HS2-Enthalpy_B)+(fr3*Q))\n",
+ "TempGD = fsolve(f1,7);# [OC]\n",
+ "delta_TempG = Ss*(HS2-Enthalpy_B)/(Gs*Cs3);# [OC]\n",
+ "delta_TempM = ((TempG2-Temp2)+(TempGD-Temp_A))/2;# [OC]\n",
+ "NtoG3 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "# Calculations for zone I:\n",
+ "Cs1 = 1.005+(1.884*Y1);# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "def f2(TempGC):\n",
+ " return (Gs*Cs1*(TempGC-TempG1))-(Ss*(Enthalpy_A-HS1)+(fr1*Q))\n",
+ "TempGC = fsolve(f2,7);# [OC]\n",
+ "delta_TempG = Ss*(Enthalpy_A-HS1)/(Gs*Cs1);# [OC]\n",
+ "delta_TempM = ((TempGC-Temp_A)+(TempG1-Temp1))/2;# [OC]\n",
+ "NtoG1 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "# Calculations for zone II:\n",
+ "Cs2 = (cav+Cs1)/2.0;# [kJ/(kg dry gas).K]\n",
+ "# Heat balance:\n",
+ "True_deltaTemp = TempGD-TempGC;# [OC]\n",
+ "delta_Temp = fr2*Q/(Cs1*Gs);# [Change in temp resulting from heat loss,OC]\n",
+ "delta_TempG = True_deltaTemp-delta_Temp;# [OC]\n",
+ "delta_TempM = ((TempGD-Temp_A)-(TempGC-Temp_A))/log((TempGD-Temp_A)/(TempGC-Temp_A));# [OC]\n",
+ "NtoG2 = delta_TempG/delta_TempM;\n",
+ "\n",
+ "NtoG = NtoG1+NtoG2+NtoG3;\n",
+ "\n",
+ "# Standard diameters are availaible at 1, 1.2 & 1.4 m.\n",
+ "Td = 1.2;# [m]\n",
+ "Area = math.pi*Td**2.0/4;# [square m]\n",
+ "Gs = Gs/Area;# [kg/square m.s]\n",
+ "Ss = Ss/Area;# [kg/square m.s]\n",
+ "Gav = Gs*(1+(Y1+Y2)/2.0);# [kg/square m.s]\n",
+ "# From Eqn. 12.47:\n",
+ "Ua = 237.0*Gav**0.417/Td;# [W/square m.K]\n",
+ "HtoG = Gs*Cs2*1000.0/Ua;# [m]\n",
+ "Z = NtoG*HtoG;# [m]\n",
+ "# Assume:\n",
+ "v = 0.35;# [m/s]\n",
+ "N = v/(math.pi*Td);# [1/s]\n",
+ "# From Eqn. 12.37:\n",
+ "K = 0.6085/(Density_S*dp**(1.0/2));\n",
+ "# Take:\n",
+ "phi_D = 0.05;\n",
+ "# From Eqn. 12.35:\n",
+ "phi_DO = phi_D-(K*Gav);\n",
+ "# From Eqn. 12.35:\n",
+ "s = 0.3344*Ss/(phi_DO*Density_S*N**0.9*Td);# [m/s]\n",
+ "print\"Height of the drier: \",round(Z,2),\" m\\n\"\n",
+ "print\"Drier Slope: \",round(s,5),\" m/m \\n\","
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.8 - Page: 705\n",
+ "\n",
+ "\n",
+ "Height of the drier: 5.89 m\n",
+ "\n",
+ "Drier Slope: 0.03304 m/m \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.9: Page 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 12.9\n",
+ "# Page: 709\n",
+ "\n",
+ "print'Illustration 12.9 - Page: 709\\n\\n'\n",
+ "import numpy as np\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "# Solution \n",
+ "\n",
+ "#***Data***#\n",
+ "x1 = 0.46;# [fraction moisture]\n",
+ "x2 = 0.085;# [fraction moisture]\n",
+ "Y1 = 0.08;# [kg water/kg dry solid]\n",
+ "Y2 = 0.03;# [kg water/kg dry solid]\n",
+ "G = 1.36;# [kg/square m.s]\n",
+ "#**********#\n",
+ "\n",
+ "X1 = x1/(1-x1);# [kg water/kg dry solid]\n",
+ "X2 = x2/(1-x2);# [kg water/kg dry solid]\n",
+ "# By water balance:\n",
+ "SsByGs = (Y1-Y2)/(X1-X2);# [kg dry solid/kg air]\n",
+ "# Since the initial moisture content of the rayon is less than the critical, drying takes place entirely within zone III.\n",
+ "# Comparing with Eqn. 12.22:\n",
+ "# (kY*A/(Ss(Xc-X*)))=0.0137*G**1.47\n",
+ "# thetha=integrate('(1/(0.0137*G**1.47))*(1/((X-X_star)*(Yw-Y)))','X',X2,X1) # [s]\n",
+ "X = np.array([X1, 0.80, 0.60, 0.40, 0.20 ,X2]);# [kg water/kg dry solid]\n",
+ "Y = zeros(6);\n",
+ "for i in range(0,6):\n",
+ " # From Eqn. 12.54:\n",
+ " Y[i] = Y2+((X[i]-X2)*SsByGs);# [kg water/kg dry gas]\n",
+ "\n",
+ "# From Fig. 7.5 (Pg 232):\n",
+ "Yw = np.array([0.0950, 0.0920, 0.0790, 0.0680, 0.0550, 0.0490]);# [kg water/kg dry gas]\n",
+ "X_star = zeros(6);\n",
+ "RH=zeros(6)\n",
+ "Val = zeros(6);\n",
+ "P = 51780.0;# [vapour pressure, kN/square m]\n",
+ "for i in range(0,6):\n",
+ " # From Eqn 7.8:\n",
+ " def f(p):\n",
+ " return Y[i]-((p/(101330.0-p))*(18.0/29))\n",
+ " p = fsolve(f,7);# [kN/square m]\n",
+ " RH[i] = (p/P)*100.0;\n",
+ " X_star[i] = (RH[i]/4)/(100.0-(RH[i]/4));# [kg water/kg dry solid]\n",
+ " Val[i] = 1/((X[i]-X_star[i])*(Yw[i]-Y[i]));\n",
+ "\n",
+ "plt.plot(X,Val);\n",
+ "plt.grid();\n",
+ "plt.xlabel(\"X kg water/kg dry solid\");\n",
+ "plt.ylabel(\"1/((X-X*)*(Yw-Y))\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area Under the curve:\n",
+ "Area = 151.6;\n",
+ "# From Eqn. 12.59:\n",
+ "thetha = Area/(0.0137*G**1.47);\n",
+ "print\"Time required for drying: \",round(thetha/3600,2),\" h\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 12.9 - Page: 709\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7885c50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for drying: 1.96 h\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter13.ipynb b/Mass_-_Transfer_Operations/Chapter13.ipynb
new file mode 100755
index 00000000..225bff8b
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter13.ipynb
@@ -0,0 +1,443 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b841fc17f95d9198998020044b36e625586e7f0a22a266fb56d5482aed19bd4a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Leaching"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.1: Page 722"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.1\n",
+ "# Page: 722\n",
+ "\n",
+ "print'Illustration 13.1 - Page: 722\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "import numpy as np\n",
+ "import math\n",
+ "#***Data***#\n",
+ "Density_L = 1137.0;# [kg/cubic m]\n",
+ "Density_S = 960.0;# [kg/cubic m]\n",
+ "Density_p = 1762.0;# [kg/cubic m]\n",
+ "A_prime = 16.4;# [square m/kg]\n",
+ "g = 9.81;# [square m/s]\n",
+ "sigma = 0.066;# [N/m]\n",
+ "Z = 3.0;# [m]\n",
+ "dia = 1.0;# [m]\n",
+ "#**********#\n",
+ "\n",
+ "e = 1-(Density_S/Density_p);# [fraction void]\n",
+ "ap = A_prime*Density_S;# [square m/cubic m]\n",
+ "# By Eqn. 6.67:\n",
+ "dp = 6*(1-e)/ap;# [m]\n",
+ "# By Eqn. 13.6:\n",
+ "K = dp**2*e**3.0*g/(150.0*(1-e)**2);# [cubic m/s]\n",
+ "check = K*Density_L*g/(g*sigma);\n",
+ "if (check<0.02):\n",
+ " # By Eqn. 13.3: \n",
+ " So = 0.075;\n",
+ "else:\n",
+ " # By Eqn. 13.4:\n",
+ " So = 0.0018/(check)\n",
+ "\n",
+ "# By Eqn. 13.2:\n",
+ "ZD = (0.275/g)/((K/g)**0.5*(Density_L/sigma));# [m]\n",
+ "# By Eqn. 13.1:\n",
+ "Sav = ((Z-ZD)*So/Z)+(ZD/Z);\n",
+ "# VolRatio=Vol liquid retained/Vol bed.\n",
+ "VolRatio = Sav*e;\n",
+ "print\"Vol liquid retained/Vol bed : \",round(VolRatio,4),\" cubic m/cubic m\\n\"\n",
+ "Mass = VolRatio*math.pi*dia**2*Z*Density_L/4;# [kg]\n",
+ "# Mass ratio=Mass Liquid/Mass dry solid\n",
+ "MassRatio = VolRatio*Density_L/(Density_S);\n",
+ "print\"Mass liquid/Mass dry solid: \",round(MassRatio,4),\" kg/kg\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.1 - Page: 722\n",
+ "\n",
+ "\n",
+ "Vol liquid retained/Vol bed : 0.058 cubic m/cubic m\n",
+ "\n",
+ "Mass liquid/Mass dry solid: 0.0687 kg/kg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.2: Page 749"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.2\n",
+ "# Page: 749\n",
+ "\n",
+ "print'Illustration 13.2 - Page: 749\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "#***Data***#\n",
+ "# Eqb=[x(Wt fraction NaOH in clear solution) N(kg CaCO3/kg soln in settled sludge) y*(wt fraction NaOH in soln of settled sludge)]\n",
+ "# a=H2O b=CaCO3 c=NaOH\n",
+ "Eqb = np.array([[0.090 ,0.495, 0.0917],[0.0700, 0.525, 0.0762],[0.0473, 0.568, 0.0608],[0.0330, 0.600, 0.0452],[0.0208, 0.620, 0.0295],[0.01187 ,0.650, 0.0204],[0.00710, 0.659, 0.01435],[0.00450, 0.666, 0.01015]]);\n",
+ "def f80(x):\n",
+ " return x\n",
+ "x = np.arange(0,0.12,0.01);\n",
+ "Mass_c = 0.1;# [kg]\n",
+ "Mass_b = 0.125;# [kg]\n",
+ "Mass_a = 0.9;# [kg]\n",
+ "#**************#\n",
+ "\n",
+ "\n",
+ "plt.plot(x,f80(x),label=\"N Vs x\")\n",
+ "plt.plot(Eqb[:,2],Eqb[:,1],label=\"N Vs Y\");\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x,y Wt. fraction of NaOH in loquid\");\n",
+ "plt.ylabel(\"N kg CaCO3 / kg solution\");\n",
+ "plt.legend('upper left');\n",
+ "plt.title(\"Equilibrium Plot\")\n",
+ "plt.show()\n",
+ "# Basis: 1 kg soln in original mixture.\n",
+ "# As in Fig. 13.27 (Pg 750)\n",
+ "# The original mixture corresponds to M1:\n",
+ "NM1 = 0.125;# [kg CaCO3/kg soln]\n",
+ "yM1 = 0.1;# [kg NaOH/kg solution]\n",
+ "# The tie line through M1 is drawn. At point E1 representing the settled sludge:\n",
+ "N1 = 0.47;# [kg CaCO3/kg soln]\n",
+ "y1 = 0.100;# [kg NaOH/kg solution]\n",
+ "E1 = Mass_b/N1;# [kg soln. in sludge]\n",
+ "Ro = 1-E1;# [kg clear soln drawn]\n",
+ "\n",
+ "# Stage 2:\n",
+ "xo = 0;# [kg NaOH/kg soln]\n",
+ "# By Eqn. 13.11:\n",
+ "M2 = E1+Ro;# [kg liquid]\n",
+ "# By Eqn. 13.12:\n",
+ "NM2 = Mass_b/(E1+Ro);# [kg CaCO3/kg soln]\n",
+ "# M2 is located on line RoE1. At this value of N, and the tie line through M2 is drawn. At E2:\n",
+ "N2 = 0.62;# [kg CaCO3/kg soln]\n",
+ "y2 = 0.035;# [kg NaOH/kg solution]\n",
+ "E2 = Mass_b/N2;# [kg soln. in sludge]\n",
+ "Ro = 1-E2;# [kg clear soln drawn]\n",
+ "\n",
+ "# Stage 3:\n",
+ "xo = 0;# [kg NaOH/kg soln]\n",
+ "# By Eqn. 13.11:\n",
+ "M3 = E2+Ro;# [kg liquid]\n",
+ "# By Eqn. 13.12:\n",
+ "NM3 = Mass_b/M3;# [kg CaCO3/kg soln]\n",
+ "# Tie line E3R3 is located through M3.At E3:\n",
+ "N3 = 0.662;# [kg CaCO3/kg soln]\n",
+ "y3 = 0.012;# [kg NaOH/kg solution]\n",
+ "# By Eqn. 13.8:\n",
+ "E3 = Mass_b/N3;# [kg soln. in sludge]\n",
+ "print\"The fraction of original NaOH in the slurry: \",round(E3*y3/Mass_c,4),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.2 - Page: 749\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c610f0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The fraction of original NaOH in the slurry: 0.0227 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3: Page 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.3\n",
+ "# Page: 754\n",
+ "\n",
+ "print'Illustration 13.3 - Page: 754\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "import numpy as np\n",
+ "from scipy import interp\n",
+ "import matplotlib.pyplot as plt\n",
+ "#***Data***#\n",
+ "# a=H2O b=CaCO3 c=NaOH \n",
+ "mass_c = 400;# [kg/h]\n",
+ "x1 = 0.1;# [wt fraction NaOH in overflow]\n",
+ "#**********#\n",
+ "\n",
+ "Mb = 100.0;# [kg/kmol]\n",
+ "Mc = 40.0;# [kg/kmol]\n",
+ "rate_c = mass_c/Mc;# [kmol/h]\n",
+ "rate_b = rate_c/2;# [kmol/h]\n",
+ "mass_b = rate_b*Mb;# [kg/h]\n",
+ "# After trial calculations:\n",
+ "y3 = 0.01;# [kg NaOH/kg solution]\n",
+ "N3 = 0.666;# [kg CaCO3/kg solution]\n",
+ "E3 = mass_b/N3;# [kg/h]\n",
+ "lost_c = E3*y3;# [kg/h]\n",
+ "sludge_a = E3-lost_c;# [kg/h]\n",
+ "overflow_c = mass_c-lost_c;# [kg NaOH/kg solution]\n",
+ "R1 = overflow_c/x1;# [kg overflow/h]\n",
+ "R1_a = R1-overflow_c;# [kg/h]\n",
+ "RNpPlus1 = R1_a+sludge_a;# [kg/h]\n",
+ "# For purpose of calculation, it may be imagined that agitators are not present in the flowsheet and the first thickner is fed with the dry mixture of the reaction products, CaCO3 and NaOH, together with overflow from the second thickner.\n",
+ "F = 400.0;# [kg NaOH/h]\n",
+ "NF = mass_b/F;# [kg CaCO3/kg NaOH]\n",
+ "yF = 1.0;# [wt fraction NaOH in dry solid, CaCO3 free basis]\n",
+ "# Points R1, E3, RNpPlus1 and F are plotted as in Fig 13.30 (Pg 755) and locate the point deltaR at the intersection of lines FR1 and E3RNpPlus1 extended. The coordinates of point deltaR are NdeltaR=-0.1419, ydeltaR=-0.00213. Further computation must be done on enlarged section of the equilibrium diagram (Fig 13.31 (Pg 755)). Point deltaR is plotted and the stages stepped off in a usual manner. The construction are projected on the xy diagram. Three stages produce a value: y3=0.001\n",
+ "print\"The NaOH lost in sludge: \",round((lost_c/mass_c)*100,2),\"%\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "#*** Data***#\n",
+ "lost_c = 0.001*mass_c;# [kg/h]\n",
+ "#***********#\n",
+ "\n",
+ "NNp_by_yNp = mass_b/lost_c;# [kg CaCO3/kg NaOH in final sludge]\n",
+ "# In order to determine the liquid content of the final sludge:\n",
+ "# Eqb=[N y_star]\n",
+ "Eqb = np.array([[0.659 , 0.01435],[0.666, 0.01015],[0.677, 0.002],[0.679, 0.001],[0.680 ,0.0005]]);\n",
+ "N_by_ystar = zeros(5);\n",
+ "for i in range(0,5):\n",
+ " N_by_ystar[i] = Eqb[i,0]/(Eqb[i,1]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1]);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x Wt fraction of NaOH\");\n",
+ "plt.ylabel(\"N kg CaCO3 / kg solution\");\n",
+ "plt.title(\"Equilibrium plot\")\n",
+ "# By Interpolation, for N_by_ystar=NNp_by_yNp:\n",
+ "NNp = interp(NNp_by_yNp,N_by_ystar,Eqb[:,0]);# [kg CaCO3/kg soln]\n",
+ "yNp = NNp/NNp_by_yNp;# [wt fraction NaOH in the liquid of the final sludge]\n",
+ "ENp = mass_b/NNp;# [kg/h]\n",
+ "ENp_a = ENp-lost_c;# [kg/h]\n",
+ "overflow_c = mass_c-lost_c;# [kg/h]\n",
+ "R1 = overflow_c/0.1;# [kg/h]\n",
+ "R1_a = R1-overflow_c;# [kg/h]\n",
+ "RNpPlus1 = R1_a+sludge_a;# [kg/h]\n",
+ "# On the operating diagram (Fig 13.32 (Pg 757)) point deltaR is located and stages were constructed. \n",
+ "# Beyond the fourth stage, the ratio of the overflow to the liquid in the sludge become substantially constant.\n",
+ "R_by_E = RNpPlus1/ENp;\n",
+ "# This is the initial slope of the operating line on the lower part of the figure.\n",
+ "# From Illustration 13.2:\n",
+ "m = 0.01015/0.00450;\n",
+ "Value1 = R_by_E/m;\n",
+ "xNpPlus1 = 0;# [kg NaOH/kg solution]\n",
+ "y4 = 0.007;# [wt fraction NaOH in the liquid]\n",
+ "Value2 = (yNp-(m*xNpPlus1))/(y4-(m*xNpPlus1));\n",
+ "# From Fig 5.16: (Pg 129):\n",
+ "# An Additional 2.3 stages beyond 4 are computed graphically are required.\n",
+ "# An additional two stage will make yNp/y4=0.099:\n",
+ "yNp = 0.099*y4;# [wt fraction NaOH in the liquid]\n",
+ "print round(yNp*ENp,2),\"kg NaOH was lost if 6 thickners were used\\n\"\n",
+ "# An additional three stage will make yNp/y4=0.0365:\n",
+ "yNp = 0.0365*y4;# [wt fraction NaOH in the liquid]\n",
+ "print round(yNp*ENp,3),\"kg NaOH was lost if 7 thickners were used\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.3 - Page: 754\n",
+ "\n",
+ "\n",
+ "The NaOH lost in sludge: "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1.88 %\n",
+ "\n",
+ "\n",
+ "\n",
+ "0.51"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " kg NaOH was lost if 6 thickners were used\n",
+ "\n",
+ "0.188 kg NaOH was lost if 7 thickners were used\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQj9yu23UAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7a1c780>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.4: Page 758"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.4\n",
+ "# Page: 758\n",
+ "\n",
+ "print'Illustration 13.4 - Page: 758\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "#***Data***#\n",
+ "# a:oil b:soyabean c:hexane\n",
+ "# Data=[100y*(Wt % oil in soln) 1/N(kg soln retained/kg insoluble solid)]\n",
+ "Data = numpy.array([[0 ,0.58],[20 ,0.66],[30 ,0.70]]);\n",
+ "# Soyabean feed:\n",
+ "percent_b = 20.0;# [soluble]\n",
+ "yF = 1.0;# [mass fraction oil,solid free basis]\n",
+ "# Solvent:\n",
+ "RNpPlus1 = 1.0;# [hexane,kg]\n",
+ "xNpPlus1 = 0;# [mass fraction oil]\n",
+ "# Leached Solids:\n",
+ "leached = 0.005;# [fraction of oil to be leached]\n",
+ "# Miscella:\n",
+ "percent_miscella = 10.0;# [percent of insoluble solid]\n",
+ "#**********#\n",
+ "\n",
+ "N = zeros(3);\n",
+ "ystar_By_N = zeros(3);\n",
+ "for i in range(0,3):\n",
+ " N[i] = 1/Data[i,1];# [kg insoluble solid/kg soln retained]\n",
+ " ystar_By_N[i] = Data[i,0]/(100*N[i]);# [kg oil/kg insoluble solid]\n",
+ "\n",
+ "# Basis: 1 kg flakes introduced\n",
+ "# Soyabean feed:\n",
+ "mass_b = 1-(percent_b/100.0);# [insoluble,kg]\n",
+ "F = 1.0-mass_b;# [kg]\n",
+ "NF = mass_b/F;# [kg insoluble solid/kg oil]\n",
+ "\n",
+ "# Leached Solids:\n",
+ "Ratio = leached/(1-leached);# [kg oil/kg insoluble solid]\n",
+ "# By interpolation:\n",
+ "Np = interp(Ratio,ystar_By_N,N);\n",
+ "miscella_b = (percent_miscella/100.0)*mass_b;# [Insoluble solid lost to miscella,kg]\n",
+ "leached_b = (1-(percent_miscella/100.0))*mass_b;# [Insoluble solid in miscella,kg]\n",
+ "ENp = leached_b/Np;# [kg soln retained]\n",
+ "retained_a = Ratio*leached_b;# [oil retained,kg]\n",
+ "retained_c = ENp-retained_a;# [Hexane retained,kg]\n",
+ "yNp = retained_a/ENp;# [mass fraction of oil in retained liquid]\n",
+ "\n",
+ "# Miscella:\n",
+ "mass_c = 1.0-retained_c;# [kg]\n",
+ "mass_a = F-retained_a;# [kg]\n",
+ "R1 = mass_c+mass_a;# [clear miscella,kg]\n",
+ "x1 = mass_a/R1;# [mass fraction of oil in the liquid]\n",
+ "NR1 = miscella_b/R1;# [kg insoluble solid/kg soln]\n",
+ "\n",
+ "# The operating diagram is shown in Fig 13.33 (Pg 759).\n",
+ "# Point R1 represents the cloudy miscella and is therefore is displaced from the axis of he graph at NR1. Point deltaR is located as usual and the stages determined with the N=0 axis for all the stages but the first.\n",
+ "print\"Between 4 and 5 stages are required\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.4 - Page: 758\n",
+ "\n",
+ "\n",
+ "Between 4 and 5 stages are required\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter13_1.ipynb b/Mass_-_Transfer_Operations/Chapter13_1.ipynb
new file mode 100755
index 00000000..8bfca391
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter13_1.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b262ce3e37d7d3aade80ecf338d6eca332831fbc19ddab243748a217da7431ac"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Leaching"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.1: Page 722"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.1\n",
+ "# Page: 722\n",
+ "\n",
+ "print'Illustration 13.1 - Page: 722\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "import numpy as np\n",
+ "import math\n",
+ "#***Data***#\n",
+ "Density_L = 1137.0;# [kg/cubic m]\n",
+ "Density_S = 960.0;# [kg/cubic m]\n",
+ "Density_p = 1762.0;# [kg/cubic m]\n",
+ "A_prime = 16.4;# [square m/kg]\n",
+ "g = 9.81;# [square m/s]\n",
+ "sigma = 0.066;# [N/m]\n",
+ "Z = 3.0;# [m]\n",
+ "dia = 1.0;# [m]\n",
+ "#**********#\n",
+ "\n",
+ "e = 1-(Density_S/Density_p);# [fraction void]\n",
+ "ap = A_prime*Density_S;# [square m/cubic m]\n",
+ "# By Eqn. 6.67:\n",
+ "dp = 6*(1-e)/ap;# [m]\n",
+ "# By Eqn. 13.6:\n",
+ "K = dp**2*e**3.0*g/(150.0*(1-e)**2);# [cubic m/s]\n",
+ "check = K*Density_L*g/(g*sigma);\n",
+ "if (check<0.02):\n",
+ " # By Eqn. 13.3: \n",
+ " So = 0.075;\n",
+ "else:\n",
+ " # By Eqn. 13.4:\n",
+ " So = 0.0018/(check)\n",
+ "\n",
+ "# By Eqn. 13.2:\n",
+ "ZD = (0.275/g)/((K/g)**0.5*(Density_L/sigma));# [m]\n",
+ "# By Eqn. 13.1:\n",
+ "Sav = ((Z-ZD)*So/Z)+(ZD/Z);\n",
+ "# VolRatio=Vol liquid retained/Vol bed.\n",
+ "VolRatio = Sav*e;\n",
+ "print\"Vol liquid retained/Vol bed : \",round(VolRatio,4),\" cubic m/cubic m\\n\"\n",
+ "Mass = VolRatio*math.pi*dia**2*Z*Density_L/4;# [kg]\n",
+ "# Mass ratio=Mass Liquid/Mass dry solid\n",
+ "MassRatio = VolRatio*Density_L/(Density_S);\n",
+ "print\"Mass liquid/Mass dry solid: \",round(MassRatio,4),\" kg/kg\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.1 - Page: 722\n",
+ "\n",
+ "\n",
+ "Vol liquid retained/Vol bed : 0.058 cubic m/cubic m\n",
+ "\n",
+ "Mass liquid/Mass dry solid: 0.0687 kg/kg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.2: Page 749"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.2\n",
+ "# Page: 749\n",
+ "\n",
+ "print'Illustration 13.2 - Page: 749\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#***Data***#\n",
+ "# Eqb=[x(Wt fraction NaOH in clear solution) N(kg CaCO3/kg soln in settled sludge) y*(wt fraction NaOH in soln of settled sludge)]\n",
+ "# a=H2O b=CaCO3 c=NaOH\n",
+ "Eqb = np.array([[0.090 ,0.495, 0.0917],[0.0700, 0.525, 0.0762],[0.0473, 0.568, 0.0608],[0.0330, 0.600, 0.0452],[0.0208, 0.620, 0.0295],[0.01187 ,0.650, 0.0204],[0.00710, 0.659, 0.01435],[0.00450, 0.666, 0.01015]]);\n",
+ "def f80(x):\n",
+ " return x\n",
+ "x = np.arange(0,0.12,0.01);\n",
+ "Mass_c = 0.1;# [kg]\n",
+ "Mass_b = 0.125;# [kg]\n",
+ "Mass_a = 0.9;# [kg]\n",
+ "#**************#\n",
+ "\n",
+ "\n",
+ "plt.plot(x,f80(x),label=\"N Vs x\")\n",
+ "plt.plot(Eqb[:,2],Eqb[:,1],label=\"N Vs Y\");\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x,y Wt. fraction of NaOH in loquid\");\n",
+ "plt.ylabel(\"N kg CaCO3 / kg solution\");\n",
+ "plt.legend('upper left');\n",
+ "plt.title(\"Equilibrium Plot\")\n",
+ "plt.show()\n",
+ "# Basis: 1 kg soln in original mixture.\n",
+ "# As in Fig. 13.27 (Pg 750)\n",
+ "# The original mixture corresponds to M1:\n",
+ "NM1 = 0.125;# [kg CaCO3/kg soln]\n",
+ "yM1 = 0.1;# [kg NaOH/kg solution]\n",
+ "# The tie line through M1 is drawn. At point E1 representing the settled sludge:\n",
+ "N1 = 0.47;# [kg CaCO3/kg soln]\n",
+ "y1 = 0.100;# [kg NaOH/kg solution]\n",
+ "E1 = Mass_b/N1;# [kg soln. in sludge]\n",
+ "Ro = 1-E1;# [kg clear soln drawn]\n",
+ "\n",
+ "# Stage 2:\n",
+ "xo = 0;# [kg NaOH/kg soln]\n",
+ "# By Eqn. 13.11:\n",
+ "M2 = E1+Ro;# [kg liquid]\n",
+ "# By Eqn. 13.12:\n",
+ "NM2 = Mass_b/(E1+Ro);# [kg CaCO3/kg soln]\n",
+ "# M2 is located on line RoE1. At this value of N, and the tie line through M2 is drawn. At E2:\n",
+ "N2 = 0.62;# [kg CaCO3/kg soln]\n",
+ "y2 = 0.035;# [kg NaOH/kg solution]\n",
+ "E2 = Mass_b/N2;# [kg soln. in sludge]\n",
+ "Ro = 1-E2;# [kg clear soln drawn]\n",
+ "\n",
+ "# Stage 3:\n",
+ "xo = 0;# [kg NaOH/kg soln]\n",
+ "# By Eqn. 13.11:\n",
+ "M3 = E2+Ro;# [kg liquid]\n",
+ "# By Eqn. 13.12:\n",
+ "NM3 = Mass_b/M3;# [kg CaCO3/kg soln]\n",
+ "# Tie line E3R3 is located through M3.At E3:\n",
+ "N3 = 0.662;# [kg CaCO3/kg soln]\n",
+ "y3 = 0.012;# [kg NaOH/kg solution]\n",
+ "# By Eqn. 13.8:\n",
+ "E3 = Mass_b/N3;# [kg soln. in sludge]\n",
+ "print\"The fraction of original NaOH in the slurry: \",round(E3*y3/Mass_c,4),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.2 - Page: 749\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEZCAYAAABiu9n+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucVXXZ///XxVHOIyflMDgoEAcPgwgOajqaFZYmUmlq\nt0Lpjw4eSu0uf9otWd1lZVqZ3t5qYmaRt0Jhipbe92QoKCgjCMhBQRhARJSDIMrh+v6x1gybzd57\n9p49a/aeNe/n47Ef7LX2Onyu2cO6Zn2utT7L3B0REZFUWhW6ASIiUryUJEREJC0lCRERSUtJQkRE\n0lKSEBGRtJQkREQkLSUJiTUzG2Bm283MwukqM/tq+P5iM3sqYdl9ZnZkDts+YP1CMbOpZvbDQrdD\n4klJQoqCma02s53hAb329et8t+vua9y9i++/IcjDF+7+kLt/Oo9t57V+LsLk9kH4c9lkZo+a2eG1\nTQlf2Wwnp0QooiQhxcKBs8MDeu3rqkI3Kh0za93Eu3Tgm+7eBRgClAC3JTYph23lsqy0cEoSUvTM\nrJWZ/SL8C/p1M/tm+Bdxq/Dz1Wb2iYTlp5jZg+H7ssRlk7Y70cz+lTT7s+E+NpnZzxK6qSaa2XNm\n9kszeweYkrh+qv0kdW0lrv+ema00s5PMbJKZrTGzjWZ2STY/D3d/D5gOHF27q6S4LjezFWa22cz+\namZ9wvnPhou8Ep6RfDGb/UnLpiQhxSTdX7j/H/BZoBw4AfgCB3avJHe35DPWzHhgFHA8cC7wlYTP\nxgCvA72BH2exreR2jQFeAboDfwIeDvdzFPBl4A4z65hhe7UJqyfweeDlhP0QfnYG8J/AF4E+wJvA\nNAB3PzVc7NjwTO1/sohBWjglCSkWBvwl/Cu79vXV8LPzgdvcfV34V/R/krnLJJ/ulFvcfYu7rwVu\nBy5M+Gy9u//W3fe5+64GbHuVuz8Q1kceBvoCN7v7bnf/B/ARMCjNugb82szeA6qBdcA1CZ/XJoqL\ngfvcvdrdPwKuB8aa2YAGtFeENoVugEjIgXPd/X9TfNYHWJswvSbCdiTvp2+azxpiY8L7DwDcfVPS\nvM5p1nXgSnf/XT376APMr1vJfYeZbQb6Ee3PTWJKZxLSHGwAEv8STv6reAfQKWH6cBoueT/rEqYz\ndWPtCP9N7C7Kpx0NtR4oq50ws05ADw6MQyRrShJSTNJ1Ez0MXGVm/czsUOB7HHjArga+ZGZtzOwE\ngv76htYlrjOzEjMrBa4C/pzNSuEZwTrg38ystZl9haDW0JjS/Xws4bM/AZPM7Dgza0/QNTfX3WvP\nIjZG0C6JMSUJKSaPJd0n8Wg4/x7gKYKi73zgUQ48YH6f4MD3HjAFeChpu+kSRqr7C/4KvAQsAP4G\n3Jdh2eR5lwPfAd4BhgPP1bOvXBNZvXG4+zMEP49HCc4qBgJfSlh2CvBAWPP5Qo77lxbIonzokJmN\nIyj+tQbudfdbkj6/jqDQBkF9ZBjQ0923RNYoafbMrAx4A2jj7vsK2xqReIssSYQ3Gy0DziQ4DZ8H\nXOjuS9MsfzbwLXc/M5IGSWwoSYg0nSi7m8YAK919tbvvJrhW+9wMy19E0J8qkg09d1ekCUSZJPpx\n4CWDNeG8g4Q3EH2aoB9VJKPwD4/WOosQiV6USSKXv/TOAWarFiEiUlyivJluHVCaMF1KcDaRypfI\n0NVkZupaEBFpAHfPa0DHKM8k5gODw4HP2gEXADOTFzKzbsCpBJcepuXusX3ddNNNBW+D4lNsii9+\nr8YQ2ZmEu+8xsysIrm9vTTCezFIzmxx+fne46HjgKXf/IKq2FLvVq1cXugmRinN8cY4NFJ9EPHaT\nu88CZiXNuztp+gHggSjbISIiDaM7rovAxIkTC92ESMU5vjjHBopPIr7jurGYmTeHdoqIFBMzw4u4\ncC1ZqqqqKnQTIhXn+OIcG7SM+MwsFq+o6HkSItLiNfeeiiiThLqbRKRFC7tkCt2MvKSLQd1NEdi9\ndzc7d+8sdDNERIqCkkSSBW8toOfPejL8t8O56NGL+PlzP+fpN55m887Nke2zJfT7xlWcYwPFJ6pJ\nHGRMvzFs+d4Wlm5ayoK3FrBgwwIeW/4Yr2x8ha7tuzLy8JHBq89Iyg8v54huR0TaHygiUkiqSWRp\nn+9j1XurWPDWAqrfqq5LILv27OLYw45lRK8RHN37aI7ufTQjeo+ge4fuBW2viGRHNYl6tt0cfjjF\nkCTS2fj+Rha9vYjFby/m1bdf5dVNr7L47cV0bteZEb1HcHSvIGkc3ftohvcaTtf2XQvdZBFJoCRR\nz7abww+nmJNEKu7O2m1r6xLH4k3Bv0vfWUrPjj2Ds43wzGNErxFsWrKJcWeOK3SzI1NVVUVlZWWh\nmxGJOMcGLSO+008/vSiTRKtWrVi5ciVHHnkkENwdXlpayg9/+MODlo0ySagmEQEzY0C3AQzoNoCz\nBp9VN3/vvr2s3rK6Lmk8ufJJbp1zK0vnLaVibQWTyifxxRFfpHO7zgVsvYgUo6hvmku732LMoMma\n25lErj7a+xGPL3+cqa9M5Z+r/8n4oeOZWD6RU484lVamC9BEolRfd1NjHZdzPYQln0lMmjSJ/v37\n60yiJWrXuh3nDTuP84adx8b3N/LQooe4ctaV7PhoB5cedymXll9KWUlZoZsp0iLF+O/TrOjP1CKQ\neK32YZ0P45qx17Dwawv5ny/+D5t2buKE/z6BMx44gwdfeZAdH+0oXEMbKM7Xosc5NlB8hdSxY0d2\n7tx/Y++GDRsK0t2kJFGkzIxRfUdxx2fuYN016/j6CV9n2uJp9L+tP5fNvIzZa2YXZbFNRBpHeXk5\nDz30EHv37uXJJ5/k2WefLUg7VJNoZtZvX88fFv6B+6vvZ8++PUw8biKXHHcJpd1K619ZRA5SrJfA\nvvTSS1x66aWsWbOG8ePHs3fvXo466ihuvvnmg5bVJbBKEgdxd15c9yJTq6fy8JKHGdVnFBPLJ3Le\n0PPo0LZDoZsn0mwUa5LIhQb4i7mG9IuaGSf2P5G7zr6Lmm/X8JWRX+GBVx6g3y/7MfmxycytmVs0\nv/jF3O+brzjHBopPlCRioUPbDnzp6C/x1JefYuHXF3JEyRFcMuMSht85nFtm38L67esL3UQRaabU\n3RRT7s7za59navVUHln6CBX9Kzh/+PkM6zWMwd0H06Njj0I3UaQoqLupnm03hx+OkkR+dny0gxmv\nzeCJFU+w4t0VrNi8glbWiiE9hjC4x2AGdx8cvO8+mME9Bmt8KWlRlCTq2XZz+OHEPUk09fg47s6m\nnZtYsXlFXdJY/u5yVmxewcp3V9KpXaf9SSNMHEN6DGFQ90F0bNsx5/3FefyfOMcGLSO+Yh27KRfN\n9o5rMxsH3A60Bu5191tSLFMJ3Aa0Bd5x98oo2yTBL07vTr3p3ak3Jw84+YDP3J3129fXJY8V767g\nDwv/wIp3V/DGe2/Qo0OPIGl0338WMrjHYI469Cjat2lfoIhEJCqRnUmYWWtgGXAmsA6YB1zo7ksT\nlikBngM+7e41ZtbT3d9Jsa1Yn0k0F3v37aVmWw3LNy8/6AxkzdY19OnSp+7sI7Erq6ykjLat2xa6\n+SIpqbupnm1HmCTGAje5+7hw+nsA7v7ThGW+ARzu7v9Rz7aUJIrc7r27eXPrm0ECCc9AapPJhu0b\nGNBtQMr6R2nXUlq3al3o5ksLpiSRWZTdTf2AtQnTNcCJScsMBtqa2f8BXYBfufuDEbapKMWh37dt\n67YM6j6IQd0HBd9qgr8/83dKjy2tSxqvvPUKjyx5hOWbl7P5g80ceeiRB9U/BncfTN8ufYv+0bBx\n+O4yaQnxSWZRJolsUnNb4HjgE0BHYI6ZzXX3FckLTpw4kbKyMgBKSkooLy+v++Wt/aKb63R1dXVR\ntaexp5csWkK71u04t/Lc/Z93gcpLK9nx0Q6m/W0aNdtqaNehHXNr5vKbh39DzbYaWg1sxcmlJ9P3\nnb4cc9gxXDbhMtq3aV/weDQdr+k4qaqqYurUqQB1x8t8RdndVAFMSehuuh7Yl1i8NrPvAh3cfUo4\nfS/wpLs/krQtdTe1QOu2reO5tc8xe81sZq+ZzfLNyxnVdxSnlJ7CKQNOYWzpWEoOKSl0M6WZU3dT\nPduOMEm0IShcfwJYD7zIwYXrocAdwKeB9sALwAXuviRpW0oSwrYPtzG3Zm5d0pi3fh5HHnpkXdI4\nZcApGuhQclasSaKsrIyvfe1rPPjgg2zYsIHx48dz11130b79wVcRNsskAWBmZ7H/Etj73P0nZjYZ\nwN3vDpe5DpgE7APucfdfp9hOrJNEVQvo940ivt17d7PgrQV1SWP2mtl0aNshSBhh4hjRe0SkT/fT\nd9e8VRXxfRJlZWV07dqVWbNm0bFjR8455xxOP/30eD2Zzt1nAbOS5t2dNP0L4BdRtkPiqW3rtozp\nN4Yx/cZwzdhrcHdWvLuiLmHcNvc2Nu3cxEmlJ9UljdH9RnNIm0MK3XRpRuwHjXPxhN+UWyIyM664\n4gr69esHwA033MCVV16ZMklESXdcS6xtfH/jAXWNxZsWU354eV3SOKn0JI1j1cIVa3fTwIEDufPO\nOznrrLMAWLx4MaNHjz7gaXW1mu2ZhEihHdb5MCYMm8CEYRMAeP+j93lx3YvMXjOb37z4Gy6efjGl\n3UoPqGuUlZQV/aW30jKsWbPmgPd9+/Zt8jboTKIItIR+32KNb8++PSzcuLDuTONfa/5FK2t1QF3j\n2MOOTXvDXzHH1hhaQnzFXJPo1q0bTzzxBB06dOBzn/sclZWV/OhHPzpoWZ1JiESkTas2HN/neI7v\nczxXnXgV7s6qLavqksZd8+9i3fZ1VPSvqEsaJ/Y/sUEDHYrkwsy46KKL+NSnPsX69esZP348N954\nY9O3oxgzaLK4n0lIcXtn5zs8tyasa6ydzcKNCzmm9zF13VMnl55Mr069Ct1MaaBirkncd999nHHG\nGfUu22wvgW0sShJSTHbu3sm8dfPqksactXM4vPPhnDPkHM4bdh4V/SsivexWGpeSRGb6TS4CtcME\nxFXc4uvYtiOnlZ3GDafewHf7fZfN/76ZhyY8RIe2HZj8t8n0/2V/vvH4N/jH6/9g997dhW5uXuL2\n3SWLe3yNQTUJkTy1btWaUX1HMarvKG4+/WaWb17OjKUz+P7/fZ8V767g7CFnM2HoBD511Kfo0LZD\noZsrzcSqVasK3QRA3U0ikarZVsNfXvsLM16bwfz18/nkkZ9kwrAJfHbwZ+l2SLdCN08o3u6mXKgm\noSQhMfDOznd4bNljzHhtBlWrqzh5wMlMGDqBc4eeS+9OvQvdvBZLSSIz1SSKQNz7ReMcXy6x9ezY\nk0kjJzHzwpmsu2Ydk8on8cyqZxjymyGcev+p3D73dt7c8mZ0jW2AOH93EP/4GoNqEiIF0KV9F84f\ncT7njzifXXt28cwbzzB96XR+/K8fM6DbACYMDe4SH9ZrWKGb2iLoDvv01N0kUkT27NvD7DWzmb50\nOjNem0Gntp3qhhUZ1WeUDmaSE9UkRGLM3Zm/fj7Tl05n+mvT+WD3B5w39DwmDJvAKQNO0bPBpV6q\nScRE3PtF4xxflLGZGaP7jeYnZ/6E1775Gk9++Ul6derFt5/6Nn1u7cNlMy/jiRVP8OGeDyNrQ5y/\nO4h/fI2h3pqEmR0CfB4oS1je3f3mCNslIgnMjOG9hjO813BuPPVGVm9ZzYylM/jp7J9y8fSLGTdo\nHBOGTuCswWfRuV3nQjdXYqTe7iYzewrYArwE7K2d7+63Rtu0A9qg7iaRNDa+v5G/Lvsr05dO5/m1\nz1NZVsmEYRM4Z8g5elZGC9ckNQkze9Xdj85nJ/lSkhDJzpZdW3h8+eNMf206T7/xNCf0PYEJQycw\nfuh4+nXtV+jmSRNrqprE82Z2bD47kczi3i8a5/iKLbaSQ0q4+NiLefT8R9lw7QauHHMlL6x7gWPu\nOoaKeyv42XM/Y/nm5VnfPFZs8TW2uMfXGLK5T+LjwCQzWwXUVsjc3ZU4RIpYx7YdGT90POOHjmf3\n3t1Ura5i+tLpnP7A6ezzfVT0r2Bs/7GM7T+WUX1H6RkZklI23U1l4dvaBQ3A3VdH1agUbVB3k0gj\ncXfWbF3D3Jq5zKmZw5yaObz69qsM6zlsf+IoHcvAkoG6L6OZa7L7JMysnOCMwoF/ufsr+ew0V0oS\nItHatWcXL294mTlr5zB33VzmrJ3D7n2765JGRf8KRvcdTad2nQrdVMlBUxWurwYuB6YTnEWMB+5x\n91/ns+NcxD1JtITnCMc1vjjHtnbrWu6bfh/b+m5jTs0cFm5cyJAeQ+q6qCr6VzCo+6BmfbYR5+8P\nmu4Z15cBJ7r7jnCnPwXmAvUmCTMbB9wOtAbudfdbkj6vBP4KvBHOetTdD37Kt4g0udJupVQOrKw7\niH6450MWvLWAuTVz+duKv3HD/97AB3s+oKJ/BRX9KhhbOpbRfUfTpX2XwjZcGlU2ZxKLgDHu/kE4\n3QF40d2PqWe91sAy4ExgHTAPuNDdlyYsUwlc4+6fq2dbsT6TEGmu1m1bV1fbmFszl+q3qjmq+1F1\nZxpj+49lSI8hzfpsozlrqu6ma4CJHNjdNNXdb6tnvbHATe4+Lpz+HoC7/zRhmUrgWnc/p55tKUmI\nNAMf7f2I6req9xfF185h+0fbObHfiXWJ48T+J9K1fddCN7VFaMrC9SjgFPYXrhdksc4XgE+7++Xh\n9JcJuq2uTFjmNILkU0NwtnGduy9Jsa1YJ4m494vGOb44xwaNE9+G7RuYWzO3LnG8vOFlBh46sK6L\namz/sXys58doZU0/lFzcv79IaxJm1tXdt5lZd2AVsDr8yM2su7u/W8+2szmqvwyUuvtOMzsL+Asw\nJNWCEydOpKysDICSkhLKy8vrvtzaG2Ka63R1dXVRtUfxaboxp5e9tIxDOZRbPhmUJJ9+5mlef+91\ndh++m2dWPcONv7uRbR9u45RTT6GifwUd13VkeK/hnP2ps4ui/c1puqqqiqlTpwLUHS/zlfZMwswe\nd/fPmtlqUhzw3X1gxg2bVQBTErqbrgf2JRevk9ZZBYxKTkBxP5MQaek2vr/xgLONlza8RGnXUsb2\nH8t1J12nhy81UFE/T8LM2hAUrj8BrAde5ODC9WHA2+7uZjYGeNjdy1JsS0lCpAXZs28PizYuYk7N\nHM4adBYDD834N6mk0SRjN5nZM9nMS+bue4ArgKeAJcCf3X2pmU02s8nhYl8AFplZNcGlsl/KpfFx\nUXu6GFdxji/OsUHh4mvTqg0j+4zkG6O/EWmCiPv31xgy1SQ6AB2BXmFdolZXIKvhJN19FjArad7d\nCe9/C/w2lwaLiEjTyVST+BZwNdCXoLuo1nbgv939juibV9cWdTeJiOSoqe6TuNLdf5PPTvKlJCEi\nkrumep7ENjO7JPmVz07lQHHvF41zfHGODRSfZDd202j2XwLbATiD4P6G30fVKBERKQ45XwJrZiUE\nVyp9OpompdynuptERHLUVN1NyXYCumhZRKQFyOY+iccSXo8T3CA3I/qmtRxx7xeNc3xxjg0Un2RX\nk7g14f0e4E13XxtRe0REpIhENixHY1JNQkQkd1GPAvs+6UdydXfXgPAiIjGXtibh7p3dvUualxJE\nI4p7v2ic44tzbKD4JLuaBGZ2HHAq+x869EqkrRIRkaKQzbAcVwOXc+DjS+9x919H37y6NqgmISKS\no6Yau2kRUOHuO8LpTsBcdz8mnx3nQklCRCR3TXkz3b4076URxL1fNM7xxTk2UHySXU3ifuAFM0vs\nbvpdpK0SEZGikNV9EmY2CjiF/YXrBVE3LGn/6m4SEclRU9UkjgLWufsuMzsdOAb4vbtvyWfHuVCS\nEBHJXVPVJKYDe8xsEHA3UAr8MZ+dyoHi3i8a5/jiHBsoPskuSexz9z3ABOA37v4doE+0zRIRkWKQ\nTXfTC8CvgP8fOMfdV5nZq+5+dFM0MGyDuptERHLUVN1NXwEqgB+HCWIg8GA+OxURkeah3iTh7ovd\n/Sp3/1M4vcrdb4m+aS1H3PtF4xxfnGMDxScNezJd1sxsnJm9ZmYrzOy7GZYbbWZ7zGxClO0REZHc\nRPY8CTNrTfAUuzOBdcA84EJ3X5piuX8QPBb1fnd/NMW2VJMQEclRoZ5xna0xwEp3X+3uu4FpwLkp\nlrsSeATYFGFbRESkAbJ9xvXMhOdczzSzP5jZ1WZ2SIZV+wGJjzmtCeclbrsfQeK4K5zVIk8X4t4v\nGuf44hwbKD7JbuymVUBP4E8EYzddAGwHhgD3AP+WZr1sDvi3A99zdzczC7ef0sSJEykrKwOgpKSE\n8vJyKisrgf1fdHOdrq6uLqr2KD5Na7p5TldVVTF16lSAuuNlvrK5T2K+u5+Qap6ZLXb3EWnWqwCm\nuPu4cPp6ghvzbklY5g32J4aeBHWJy919ZtK2VJMQEclRpM+4TtDJzI5w9zfDnR4BdAo/+yjDevOB\nwWZWBqwnOAO5MHEBdz+y9r2Z3Q88lpwgRESkcLIpXF8L/MvMqsysCvgX8J3w4UMPpFspHMrjCuAp\nYAnwZ3dfamaTzWxy/k2Pj9rTxbiKc3xxjg0Un2R3JvEkQf1hKEGdYTng7r6LoKaQlrvPAmYlzbs7\nzbKTsmmwiIg0nWxqEvcnHsDNrDMw093PiLpxCftUTUJEJEdNdZ9EjZndGe7wUODvaOwmEZEWIZux\nm74P7DCzuwnujP6lu98fectakLj3i8Y5vjjHBopPMtQkzOzz4VsH5gLfJxhaw81sgrtPb4L2iYhI\nAaWtSZjZVA68Ic4Sp5uy0KyahIhI7prkGdfFQElCRCR3xT7An2Qp7v2icY4vzrGB4hMlCRERySBT\nTeIkYE4x9POou0lEJHdRdzddArxsZn82s4lmdng+OxIRkeYnbZJw96+5+0hgCtAdmGpmc83sP83s\n1PCJctII4t4vGuf44hwbKD7J7ma6pe7+y3DI7zOA54DzgRejbpyIiBSWLoEVEYkpXQIrIiKRUpIo\nAnHvF41zfHGODRSfKEmIiEgGme6TOA64FXgHuB74HXA8sBCY5O4rm6yRqkmIiOQs6prEfwG/Av4K\nPA/8N3Ao8DPgznx2KiIizUOmJHGIuz/m7n8Cdrj7n9x9n7s/BvRqova1CHHvF41zfHGODRSfZE4S\niTfL/TLps7YRtEVERIpMpprE14CH3H170vxBwBXu/q0maF/tPlWTEBHJkZ4nISIiaUV+M52ZfcbM\nnjWzzeHrn2b22Xx2KAeLe79onOOLc2yg+CRDkjCzy4GbCQb4OzJ8/QC4ycwmZ7NxMxtnZq+Z2Qoz\n+26Kz881s1fMbIGZvWRmZzQoChERiUSmmsRS4BR335w0vwfwnLsPzbjhYJTYZcCZwDpgHnChuy9N\nWKaTu+8I3x8DzHD3QSm2pe4mEZEcRd7dlJwgEuZlc8QeA6x099XuvhuYBpybtK0dCZOdCW7cExGR\nIpEpSWwzs/LkmeGd2NtTLJ+sH7A2YbomnJe8vfHhWcss4Kosths7ce8XjXN8cY4NFJ9AmwyfXQv8\n1czuB14CDBgFTAS+nMW2s+ofcve/AH8xs48DDwIfS7XcxIkTKSsrA6CkpITy8nIqKyuB/V90c52u\nrq4uqvYoPk1runlOV1VVMXXqVIC642W+Ml4CGz6y9JvA8HDWEuC37v5WvRs2qwCmhA8rwsyuB/a5\n+y0Z1nkdGJOiDqKahIhIjhqjJpH2TMLMegM93P37SfNHmNled99Uz7bnA4PNrAxYD1wAXJi0raOA\nN9zdzex4SF0HERGRwshUk/gN0DPF/B4EA/9l5O57gCuApwjOQP7s7kvNbHLCJbSfBxaZ2YJwm1/K\npfFxUXu6GFdxji/OsYHik8w1iUHu/s/kme7+rJndlc3G3X0WQUE6cd7dCe9/RjCqrIiIFKFM90ks\nd/chuX4WBdUkRERyF/V9EitTDcFhZp8BXs9npyIi0jxkShLfAm4zs6lmdqWZXWVmDxDUDppsBNiW\nIO79onGOL86xgeKTDEnC3ZcDxwLPAgOBI4B/Ase6+7KmaZ6IiBSShgoXEYmpyMduCncy1szmmdn7\nZrbbzPaZ2bZ8dioiIs1DvUkCuAO4CFgBHAJ8Fbgzyka1NHHvF41zfHGODRSfZJckcPcVQGt33+vu\n9wPjom2WiIgUg3prEmb2LPBJ4F5gA/AWcKm7Hxd98+raoJqEiEiOmqQmAVwSLncFsBPoTzCchoiI\nxFymx5f2NrMR4UODPnD3re4+BbgP2NpkLWwB4t4vGuf44hwbKD6JcIA/ERFp/jKN3fSSu49K89li\ndx8RacsO3J9qEiIiOYq6JtElw2dt89mpiIg0DxrgrwjEvV80zvHFOTZQfJL5eRLfAv5mZl/kwGdc\nnwSc3QRtExGRAqvvGdeHENxtXVt/WAz80d13NUHbEtuhmoSISI4aoyahAf5ERGKqqW6mk4jFvV80\nzvHFOTZQfKIkISIiGai7SUQkphqjuynT1U21O1kEOMHVTbW2AvOAH7n75nwaICIixSub7qYngccJ\nrnK6GHgMmA9sBKZG1rIWJO79onGOL86xgeKTLM4kgDPdfWTC9EIzW+DuI8OzjIzMbBxwO9AauNfd\nb0n6/GLg3wnOVLYDX3f3hVlHICIikcnmeRILgcvd/YVwegxwj7sfV5ssMqzbGlgGnAmsI+iiutDd\nlyYsMxZY4u5bw4Qyxd0rkrajmoSISI6apCZB8LjS+82sczi9HfiqmXUCflLPumOAle6+GsDMpgHn\nAnVJwt3nJCz/AsHzKkREpAhkU5NY5O5HA+VAubsfQ3Dg3+HuD9ezbj9gbcJ0TTgvna8CT2TRpliJ\ne79onOOLc2yg+CS7M4npZnauu28BMLM+BIXs47NYN+s+IjM7HfgKcHKqzydOnEhZWRkAJSUllJeX\nU1lZCez/opvrdHV1dVG1R/FpWtPNc7qqqoqpU6cC1B0v85VNTeJy4DPAF4BSYCZwnbv/vd6Nm1UQ\n1BjGhdPXA/tSFK+PBaYD49x9ZYrtqCYhIpKjJqlJuPs9ZtYe+CtwBPA1d38uy+3PBwabWRmwHrgA\nuDBxATPT6ykPAAARPklEQVQbQJAgvpwqQYiISOFkesb1teHrGqA9wVnEK0BFOK9e7r4HuAJ4ClgC\n/Nndl5rZZDObHC72H8ChwF1mtsDMXswjnmap9nQxruIcX5xjA8Unmc8kunBgTWFGON059eKpufss\nYFbSvLsT3l8GXJbLNkVEpGlo7CYRkZjSUOEiIhIpJYkiEPd+0TjHF+fYQPGJkoSIiGSQtiZhZjel\nWccB3P3mqBqVoi2qSYiI5Cjq+yR2cPAd050Ihs7oCTRZkhARkcJI293k7r9w91vd/VbgHqADMAmY\nBgxsova1CHHvF41zfHGODRSf1HPHtZn1AL5N8LCh3wPHu/t7TdEwEREpvEw1iV8A5wH/Ddzp7tub\nsmFJbVFNQkQkR41Rk8iUJPYBHwG7U3zs7t41nx3nQklCRCR3kd5M5+6t3P0Qd++S4tVkCaIliHu/\naJzji3NsoPhE90mIiEgGGrtJRCSmNHaTiIhESkmiCMS9XzTO8cU5NlB8oiQhIiIZqCYhIhJTqkmI\niEiklCSKQNz7ReMcX5xjA8UnShIiIpKBahIiIjGlmoSIiERKSaIIxL1fNM7xxTk2UHxSz/MkGoOZ\njQNuB1oD97r7LUmfDwXuB0YCN4QPORIRaZa2bYO1a2HNmuDfxPff/S58+tOFbmFuIq1JmFlrYBlw\nJrAOmAdc6O5LE5bpBRwBjAfeS5UkVJMQkWKwaxfU1BycBBKn9+6F0lIYMCD4t/Y1YACMHAk9ejRd\ne6N+xnVjGAOsdPfVAGY2DTgXqEsS7r4J2GRmn424LSIiae3ZAxs2HHzQT5zeuhX69TswCZSXwznn\n7J8uKQHL67BcXKJOEv2AtQnTNcCJEe+z2amqqqKysrLQzYhMnOOLc2wQn/jc4Z13Dj7wz59fxYcf\nVrJ2Lbz1FvTqdeBf/0ceCaedtj8p9O4NrVpYJTfqJNFofUQTJ06krKwMgJKSEsrLy+t+eWuLT811\nurq6uqjao/g03dymd+yAsrJK1qyBp5+u4u23oXXrYHrZsio2bYIuXSopLYWOHavo3RsqKioZOxYO\nOyyYnjChknbtUm9/5044/PDiiTfddFVVFVOnTgWoO17mK+qaRAUwxd3HhdPXA/uSi9fhZzcB76sm\nISKJausA6WoAiXWAdLWA/v2hU6dCR9L0mkNNYj4w2MzKgPXABcCFaZaNUS+eiGQjUx2g9v3WrdC3\n74EH/9o6QO30oYfGqw5QTCK/49rMzmL/JbD3uftPzGwygLvfbWaHE1z11BXYB2wHhrv7+wnbiPWZ\nRFVM+n3TiXN8cY4N8ovPHTZtSl8Irq0D9Ox58F/+if8edlh0dYC4f3/N4UwCd58FzEqad3fC+7eA\n0qjbISKNa+vW9N0/ta9OnQ5OAOXl+6f79YN27QodiWSisZtE5CC7dh18wE9OAol1gFS1gNLSllkH\nKCaNcSahJCHSwiTWAdIVg2vrAKm6f1QHaD6UJGIi7v2icY6v2GJLdT9AciKorQOkugqo9n1tHaDY\n4mtscY+vWdQkRKTx1I4LlO5KoJoa6Njx4AN/efn+9337qg4g2dOZhEiRSBwXKF1XkOoAkgt1N4k0\nE8n3A6RKAlu27B8XKN1NYXEbF0iipSQRE3HvF41zfFVVVZx2WmXKcYESp1ONC5ScBKK8H6Ch4vzd\nQfzjU01CpAmkej5A7fSyZfDuu0EdIPmgn3g/gOoA0lzpTEJatHzGBap931LHBZLip+4mkQyyHRdI\ndQCJKyWJmIh7v2gU8SWPC5TpfoB0ZwCNUQfQd9e8xT0+1SQktjLVAVLdD5A8LtCAAaoDiDQGnUlI\nk8t0P0Dyc4J1P4BIw6m7SYrO3r1BHSBTITj5fgCNCyQSDSWJmGgu/aK14wJl6gZKNS7Qhx9WccYZ\nlUV9P0BDNZfvrqEUX/OmmoQ0qnTjAtVOJ9YBEpPAccdlHheoqgpi/P9QJNZ0JtFC5DoukJ4TLNL8\nqbtJAI0LJCKpKUnERKZ+0WzvByjmcYHi3O8b59hA8TV3qknEwLZtsGoVfPBB6iRQWwdIPuiPHKlx\ngUQkejqTiFAu4wKle0qY6gAi0lDqbiqgbJ8TnK4OUPtedQARiUrRJwkzGwfcDrQG7nX3W1Is82vg\nLGAnMNHdF6RYpkmTRHIdIFUS2Lgx++cE1yfu/aJxji/OsYHia+6KuiZhZq2BO4AzgXXAPDOb6e5L\nE5b5DDDI3Qeb2YnAXUBFVG2qtW1b5i6gtWuDLp6mek5wdXV1rH9R4xxfnGMDxSfRFq7HACvdfTWA\nmU0DzgWWJizzOeABAHd/wcxKzOwwd9/Y0J0m3g+QLhGkGhfotNMKNy7Qli1bmm5nBRDn+OIcGyg+\niTZJ9APWJkzXACdmsUx/IGWSSDUuUH33A9SeAZxzjsYFEhHJVZRJItsiQvLhOuV6AwakHhdo4MAD\nzwKa47hAq1evLnQTIhXn+OIcGyg+ibBwbWYVwBR3HxdOXw/sSyxem9l/AVXuPi2cfg04Lbm7ycyK\n69ImEZFmomgL18B8YLCZlQHrgQuAC5OWmQlcAUwLk8qWVPWIfIMUEZGGiSxJuPseM7sCeIrgEtj7\n3H2pmU0OP7/b3Z8ws8+Y2UpgBzApqvaIiEjumsXNdCIiUhgFLfGa2Tgze83MVpjZd9Ms8+vw81fM\nbGQu6xZaQ+Mzs1Iz+z8zW2xmr5rZVU3b8uzk8/2Fn7U2swVm9ljTtDg3ef5+lpjZI2a21MyWhN2p\nRSXP+K4Pfz8Xmdkfzax907W8fvXFZmZDzWyOme0ys2tzWbcYNDS+Bh1b3L0gL4IuqJVAGdAWqAaG\nJS3zGeCJ8P2JwNxs1y30K8/4DgfKw/edgWVxii/h82uAh4CZhY6nseMjuP/nK+H7NkC3QsfUiL+f\nZcAbQPtw+s/ApYWOKcfYegEnAD8Crs1l3UK/8owv52NLIc8k6m62c/fdQO3NdokOuNkOKDGzw7Nc\nt9AaGt9h7v6Wu1eH898nuAGxb9M1PSsNjg/AzPoTHITu5eDLoItBg+Mzs27Ax939d+Fne9x9axO2\nPRv5fH/bgN1ARzNrA3QkGFWhWNQbm7tvcvf5BHHktG4RaHB8DTm2FDJJpLqRrl+Wy/TNYt1Ca2h8\n/RMXCK8OGwm80OgtzE8+3x/AbcB3gH1RNTBP+Xx/A4FNZna/mb1sZveYWcdIW5u7Bn9/7v4ucCuw\nhuDKxS3u/nSEbc1VNrFFsW5TaZQ2ZntsKWSSaOjNds1F3jcTmlln4BHg6jDrF5OGxmdmdjbwtgeD\nORbr95vP99cGOB64092PJ7hy73uN2LbG0OD/f2Z2FPAtgu6OvkBnM7u48ZqWt3yuxmkOV/Lk3cZc\nji2FTBLrgNKE6VKCjJhpmf7hMtmsW2gNjW8dgJm1BR4F/uDuf4mwnQ2VT3wnAZ8zs1XAn4AzzOz3\nEba1IfKJrwaocfd54fxHCJJGMcknvhOA5919s7vvAaYTfKfFIp/jQ1yOLWnlfGwpYPGlDfA6wV8j\n7ai/cFbB/sJZvesW+pVnfAb8Hrit0HFEEV/SMqcBjxU6nsaOD3gWGBK+nwLcUuiYGis+oBx4FegQ\n/q4+AHyz0DHlElvCslM4sLAbi2NLhvhyPrYUOtizCKrrK4Hrw3mTgckJy9wRfv4KcHymdYvt1dD4\ngFMI+uqrgQXha1yh42nM7y/h89MowqubGuH38zhgXjh/OkV2dVMjxPfvwGJgUZgk2hY6nlxiI7jK\nZy2wFXiPoL7SOd26xfZqaHwNObboZjoREUmrmY2XKiIiTUlJQkRE0lKSEBGRtJQkREQkLSUJERFJ\nS0lCRETSUpKQBjOz28zs6oTpp8zsnoTpW83s22Z2hJklP5Uw3Ta/GA6t/UwjtO9cMxuWMP0DM/tE\nvtutZ59/CofVvjpp/hQz22FmvRLm1TvUipl1M7Pfh0NCrzSzB8ysa/hZmZktSrGfa1NsZ7KZ/VsO\ncRy07caQrh1R7U/ypyQh+ZhNOByDmbUCegDDEz4fCzxHMODdRVlu86vAZe5+wME8HG00V+cltsfd\nb3L3vJNPOuEIxSe4+3Hu/qsUi7wDJB7As7lJ6T6CET8Hu/sgYBXByLnppNymB0+CfDCL/UWqWNoh\n2VOSaIHMbHT41257M+sUPnxkeNIyP0g6S/hxigeUzCFIBAAjCIZq2B4+cKc9MIzgjs6fAh+34AFD\nV5OGmf0HcDLwOzP7mZldamYzw7OKf4RtfdrMXjKzhWb2uYR1Lwljqg7/8h4LnAP8PByJ9Ugzm2pm\nnw+X/0Q4f6GZ3Wdm7cL5q8O/xmv38bEU7TwkHOF1YbiNyvCjvwP9wjhPSVrNgd8BF5hZSYptzjCz\n+eF3cXk4bxDBmE8/TFj0ZuAEMxuY7seY5mdbd4ZhZlVm9lMze8HMlqVoa1bxmlkHM5sWnvlNN7O5\nZnZ8+Nn7Cet/wczuT9GOUbXfGfCNTG2QwonsGddSvNx9npnNJHggSQfgQXdfkrTY7wiGk/hVeJZw\nATA6aTvrzWyPmZUSJIs5BEMWjyV45sAid99twZOzrnP3c+pp181mdjrBWDMvm9lEgqGMj3H3LWbW\nGjjP3bebWc9wfzPNbARwAzDW3d81s5Jw+ZkE40JNBzAzB9zMDgHuB85w95Vm9gDwdeBXBAfzTe4+\nysy+DlwHXJ7U1G8Ce9392DCJ/N3MBhMkpb+5+0hSez/8uX6LYEydRF9x9/fMrAPwopk9SnAWVO0J\nwyK4+77woHo0wZAYR5nZgoTtHA78PNWPl/1nGQ60dvcTzews4Cbgk2nanC7eIQQ/s/fdfbiZHQO8\nnLS/dO9rp+8HvuHus83sZxn2LwWkM4mW62bgUwQjeh70H9Td3wQ2m1l5uNzL7v5eiu08T9DldBLB\nQXtO+H4sQXcU5Dcc+N/dfUv4vhXwEzN7BfgH0NeCh+CcATzswXMOSFg+1b4N+Biwyt1XhvMeAE5N\nWGZ6+O/LBIOoJTsZ+EO4r2XAm8CQFPtK5sCvgUstGKo50dXhwX8OwWirg8ncHVX72evuPrL2BfxX\nFu2A+mNMlC7ejyfMXwQszGK/QFBrIRjPqvZ3RF1QRUpnEi1XT6ATwaMQOwA7UyxzLzAJOIzgL+BU\nniM4iBxD8JftWoK/vrdmWCdbntSui8N2H+/uey0YavyQcLl0B8ZUB9rkeZY078Pw372k/z/SkMRn\n7r7VzP4IXFE3M+i++QRQ4e67zOz/gPbAEqDczKz2bCI8qysPP8tHNjEe0PYc5yf+PDvksX0pMJ1J\ntFx3AzcCfwRuqZ1pZq8lLDMDGEdwtvFUmu08D5wNbPbAe0AJwZnE8+Ey24AuDWhj8oGjK8HDivaG\n3VJHEByM/hf4opl1D2M4NFx+e7hOIicYPbPMgofnAPwb8M8c2vUvgoRF2O0yINxmtn5JMGJn63C6\nG/BemCCGEgzLjbu/TlDTuTFh3RuBl9z9jRz2V6uhB+JU8b5GMBz6ReH8o4FjE9bZaGZDw6R2XlIb\nzIPHuW4xs5PD+cX00CJJoCTRApnZJcCH7j6NoKg82swqw37+Oh48P/d/Cbpy0nV9vEpwVdPchHkL\nCR5p+W7C9N6wqHy1mfUxs8ezaGpi/zXAQwRF24UEB/alYTuXAD8G/hl22dwaLj8N+E5YhD4yIa4P\nCc6Q/ifc1h6Cbprafabbf607gVbhutOAS8OfVfL6qeLB3TcTdPe0D+fPAtqY2RLgJwRdTrW+Cgyx\n4PLXlcCgcN4B20y1n0acny7euwieSrcE+AHwUsK63wP+RnCmuT5hW4k/00nAbxNqKhqSughpqHCp\nY2afBQa6+x3hdCuC//hfCP+qFUkr7Ca71t1frndhaTZUk5A67l73170Fl8Q+BkxXghBpuXQmISIi\naakmISIiaSlJiIhIWkoSIiKSlpKEiIikpSQhIiJpKUmIiEha/w9Jrjjq3itbkQAAAABJRU5ErkJg\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7720908>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The fraction of original NaOH in the slurry: 0.0227 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3: Page 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.3\n",
+ "# Page: 754\n",
+ "\n",
+ "print'Illustration 13.3 - Page: 754\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "import numpy as np\n",
+ "from scipy import interp\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#***Data***#\n",
+ "# a=H2O b=CaCO3 c=NaOH \n",
+ "mass_c = 400;# [kg/h]\n",
+ "x1 = 0.1;# [wt fraction NaOH in overflow]\n",
+ "#**********#\n",
+ "\n",
+ "Mb = 100.0;# [kg/kmol]\n",
+ "Mc = 40.0;# [kg/kmol]\n",
+ "rate_c = mass_c/Mc;# [kmol/h]\n",
+ "rate_b = rate_c/2;# [kmol/h]\n",
+ "mass_b = rate_b*Mb;# [kg/h]\n",
+ "# After trial calculations:\n",
+ "y3 = 0.01;# [kg NaOH/kg solution]\n",
+ "N3 = 0.666;# [kg CaCO3/kg solution]\n",
+ "E3 = mass_b/N3;# [kg/h]\n",
+ "lost_c = E3*y3;# [kg/h]\n",
+ "sludge_a = E3-lost_c;# [kg/h]\n",
+ "overflow_c = mass_c-lost_c;# [kg NaOH/kg solution]\n",
+ "R1 = overflow_c/x1;# [kg overflow/h]\n",
+ "R1_a = R1-overflow_c;# [kg/h]\n",
+ "RNpPlus1 = R1_a+sludge_a;# [kg/h]\n",
+ "# For purpose of calculation, it may be imagined that agitators are not present in the flowsheet and the first thickner is fed with the dry mixture of the reaction products, CaCO3 and NaOH, together with overflow from the second thickner.\n",
+ "F = 400.0;# [kg NaOH/h]\n",
+ "NF = mass_b/F;# [kg CaCO3/kg NaOH]\n",
+ "yF = 1.0;# [wt fraction NaOH in dry solid, CaCO3 free basis]\n",
+ "# Points R1, E3, RNpPlus1 and F are plotted as in Fig 13.30 (Pg 755) and locate the point deltaR at the intersection of lines FR1 and E3RNpPlus1 extended. The coordinates of point deltaR are NdeltaR=-0.1419, ydeltaR=-0.00213. Further computation must be done on enlarged section of the equilibrium diagram (Fig 13.31 (Pg 755)). Point deltaR is plotted and the stages stepped off in a usual manner. The construction are projected on the xy diagram. Three stages produce a value: y3=0.001\n",
+ "print\"The NaOH lost in sludge: \",round((lost_c/mass_c)*100,2),\"%\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "#*** Data***#\n",
+ "lost_c = 0.001*mass_c;# [kg/h]\n",
+ "#***********#\n",
+ "\n",
+ "NNp_by_yNp = mass_b/lost_c;# [kg CaCO3/kg NaOH in final sludge]\n",
+ "# In order to determine the liquid content of the final sludge:\n",
+ "# Eqb=[N y_star]\n",
+ "Eqb = np.array([[0.659 , 0.01435],[0.666, 0.01015],[0.677, 0.002],[0.679, 0.001],[0.680 ,0.0005]]);\n",
+ "N_by_ystar = zeros(5);\n",
+ "for i in range(0,5):\n",
+ " N_by_ystar[i] = Eqb[i,0]/(Eqb[i,1]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1]);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x Wt fraction of NaOH\");\n",
+ "plt.ylabel(\"N kg CaCO3 / kg solution\");\n",
+ "plt.title(\"Equilibrium plot\")\n",
+ "# By Interpolation, for N_by_ystar=NNp_by_yNp:\n",
+ "NNp = interp(NNp_by_yNp,N_by_ystar,Eqb[:,0]);# [kg CaCO3/kg soln]\n",
+ "yNp = NNp/NNp_by_yNp;# [wt fraction NaOH in the liquid of the final sludge]\n",
+ "ENp = mass_b/NNp;# [kg/h]\n",
+ "ENp_a = ENp-lost_c;# [kg/h]\n",
+ "overflow_c = mass_c-lost_c;# [kg/h]\n",
+ "R1 = overflow_c/0.1;# [kg/h]\n",
+ "R1_a = R1-overflow_c;# [kg/h]\n",
+ "RNpPlus1 = R1_a+sludge_a;# [kg/h]\n",
+ "# On the operating diagram (Fig 13.32 (Pg 757)) point deltaR is located and stages were constructed. \n",
+ "# Beyond the fourth stage, the ratio of the overflow to the liquid in the sludge become substantially constant.\n",
+ "R_by_E = RNpPlus1/ENp;\n",
+ "# This is the initial slope of the operating line on the lower part of the figure.\n",
+ "# From Illustration 13.2:\n",
+ "m = 0.01015/0.00450;\n",
+ "Value1 = R_by_E/m;\n",
+ "xNpPlus1 = 0;# [kg NaOH/kg solution]\n",
+ "y4 = 0.007;# [wt fraction NaOH in the liquid]\n",
+ "Value2 = (yNp-(m*xNpPlus1))/(y4-(m*xNpPlus1));\n",
+ "# From Fig 5.16: (Pg 129):\n",
+ "# An Additional 2.3 stages beyond 4 are computed graphically are required.\n",
+ "# An additional two stage will make yNp/y4=0.099:\n",
+ "yNp = 0.099*y4;# [wt fraction NaOH in the liquid]\n",
+ "print round(yNp*ENp,2),\"kg NaOH was lost if 6 thickners were used\\n\"\n",
+ "# An additional three stage will make yNp/y4=0.0365:\n",
+ "yNp = 0.0365*y4;# [wt fraction NaOH in the liquid]\n",
+ "print round(yNp*ENp,3),\"kg NaOH was lost if 7 thickners were used\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.3 - Page: 754\n",
+ "\n",
+ "\n",
+ "The NaOH lost in sludge: 1.88 %\n",
+ "\n",
+ "\n",
+ "\n",
+ "0.51"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " kg NaOH was lost if 6 thickners were used\n",
+ "\n",
+ "0.188 kg NaOH was lost if 7 thickners were used\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQj9yu23UAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x77209b0>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.4: Page 758"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.4\n",
+ "# Page: 758\n",
+ "\n",
+ "print'Illustration 13.4 - Page: 758\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "#***Data***#\n",
+ "# a:oil b:soyabean c:hexane\n",
+ "# Data=[100y*(Wt % oil in soln) 1/N(kg soln retained/kg insoluble solid)]\n",
+ "Data = numpy.array([[0 ,0.58],[20 ,0.66],[30 ,0.70]]);\n",
+ "# Soyabean feed:\n",
+ "percent_b = 20.0;# [soluble]\n",
+ "yF = 1.0;# [mass fraction oil,solid free basis]\n",
+ "# Solvent:\n",
+ "RNpPlus1 = 1.0;# [hexane,kg]\n",
+ "xNpPlus1 = 0;# [mass fraction oil]\n",
+ "# Leached Solids:\n",
+ "leached = 0.005;# [fraction of oil to be leached]\n",
+ "# Miscella:\n",
+ "percent_miscella = 10.0;# [percent of insoluble solid]\n",
+ "#**********#\n",
+ "\n",
+ "N = zeros(3);\n",
+ "ystar_By_N = zeros(3);\n",
+ "for i in range(0,3):\n",
+ " N[i] = 1/Data[i,1];# [kg insoluble solid/kg soln retained]\n",
+ " ystar_By_N[i] = Data[i,0]/(100*N[i]);# [kg oil/kg insoluble solid]\n",
+ "\n",
+ "# Basis: 1 kg flakes introduced\n",
+ "# Soyabean feed:\n",
+ "mass_b = 1-(percent_b/100.0);# [insoluble,kg]\n",
+ "F = 1.0-mass_b;# [kg]\n",
+ "NF = mass_b/F;# [kg insoluble solid/kg oil]\n",
+ "\n",
+ "# Leached Solids:\n",
+ "Ratio = leached/(1-leached);# [kg oil/kg insoluble solid]\n",
+ "# By interpolation:\n",
+ "Np = interp(Ratio,ystar_By_N,N);\n",
+ "miscella_b = (percent_miscella/100.0)*mass_b;# [Insoluble solid lost to miscella,kg]\n",
+ "leached_b = (1-(percent_miscella/100.0))*mass_b;# [Insoluble solid in miscella,kg]\n",
+ "ENp = leached_b/Np;# [kg soln retained]\n",
+ "retained_a = Ratio*leached_b;# [oil retained,kg]\n",
+ "retained_c = ENp-retained_a;# [Hexane retained,kg]\n",
+ "yNp = retained_a/ENp;# [mass fraction of oil in retained liquid]\n",
+ "\n",
+ "# Miscella:\n",
+ "mass_c = 1.0-retained_c;# [kg]\n",
+ "mass_a = F-retained_a;# [kg]\n",
+ "R1 = mass_c+mass_a;# [clear miscella,kg]\n",
+ "x1 = mass_a/R1;# [mass fraction of oil in the liquid]\n",
+ "NR1 = miscella_b/R1;# [kg insoluble solid/kg soln]\n",
+ "\n",
+ "# The operating diagram is shown in Fig 13.33 (Pg 759).\n",
+ "# Point R1 represents the cloudy miscella and is therefore is displaced from the axis of he graph at NR1. Point deltaR is located as usual and the stages determined with the N=0 axis for all the stages but the first.\n",
+ "print\"Between 4 and 5 stages are required\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.4 - Page: 758\n",
+ "\n",
+ "\n",
+ "Between 4 and 5 stages are required\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter13_2.ipynb b/Mass_-_Transfer_Operations/Chapter13_2.ipynb
new file mode 100755
index 00000000..8bfca391
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter13_2.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b262ce3e37d7d3aade80ecf338d6eca332831fbc19ddab243748a217da7431ac"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Leaching"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.1: Page 722"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.1\n",
+ "# Page: 722\n",
+ "\n",
+ "print'Illustration 13.1 - Page: 722\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "import numpy as np\n",
+ "import math\n",
+ "#***Data***#\n",
+ "Density_L = 1137.0;# [kg/cubic m]\n",
+ "Density_S = 960.0;# [kg/cubic m]\n",
+ "Density_p = 1762.0;# [kg/cubic m]\n",
+ "A_prime = 16.4;# [square m/kg]\n",
+ "g = 9.81;# [square m/s]\n",
+ "sigma = 0.066;# [N/m]\n",
+ "Z = 3.0;# [m]\n",
+ "dia = 1.0;# [m]\n",
+ "#**********#\n",
+ "\n",
+ "e = 1-(Density_S/Density_p);# [fraction void]\n",
+ "ap = A_prime*Density_S;# [square m/cubic m]\n",
+ "# By Eqn. 6.67:\n",
+ "dp = 6*(1-e)/ap;# [m]\n",
+ "# By Eqn. 13.6:\n",
+ "K = dp**2*e**3.0*g/(150.0*(1-e)**2);# [cubic m/s]\n",
+ "check = K*Density_L*g/(g*sigma);\n",
+ "if (check<0.02):\n",
+ " # By Eqn. 13.3: \n",
+ " So = 0.075;\n",
+ "else:\n",
+ " # By Eqn. 13.4:\n",
+ " So = 0.0018/(check)\n",
+ "\n",
+ "# By Eqn. 13.2:\n",
+ "ZD = (0.275/g)/((K/g)**0.5*(Density_L/sigma));# [m]\n",
+ "# By Eqn. 13.1:\n",
+ "Sav = ((Z-ZD)*So/Z)+(ZD/Z);\n",
+ "# VolRatio=Vol liquid retained/Vol bed.\n",
+ "VolRatio = Sav*e;\n",
+ "print\"Vol liquid retained/Vol bed : \",round(VolRatio,4),\" cubic m/cubic m\\n\"\n",
+ "Mass = VolRatio*math.pi*dia**2*Z*Density_L/4;# [kg]\n",
+ "# Mass ratio=Mass Liquid/Mass dry solid\n",
+ "MassRatio = VolRatio*Density_L/(Density_S);\n",
+ "print\"Mass liquid/Mass dry solid: \",round(MassRatio,4),\" kg/kg\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.1 - Page: 722\n",
+ "\n",
+ "\n",
+ "Vol liquid retained/Vol bed : 0.058 cubic m/cubic m\n",
+ "\n",
+ "Mass liquid/Mass dry solid: 0.0687 kg/kg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.2: Page 749"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.2\n",
+ "# Page: 749\n",
+ "\n",
+ "print'Illustration 13.2 - Page: 749\\n\\n'\n",
+ "\n",
+ "# Solution \n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#***Data***#\n",
+ "# Eqb=[x(Wt fraction NaOH in clear solution) N(kg CaCO3/kg soln in settled sludge) y*(wt fraction NaOH in soln of settled sludge)]\n",
+ "# a=H2O b=CaCO3 c=NaOH\n",
+ "Eqb = np.array([[0.090 ,0.495, 0.0917],[0.0700, 0.525, 0.0762],[0.0473, 0.568, 0.0608],[0.0330, 0.600, 0.0452],[0.0208, 0.620, 0.0295],[0.01187 ,0.650, 0.0204],[0.00710, 0.659, 0.01435],[0.00450, 0.666, 0.01015]]);\n",
+ "def f80(x):\n",
+ " return x\n",
+ "x = np.arange(0,0.12,0.01);\n",
+ "Mass_c = 0.1;# [kg]\n",
+ "Mass_b = 0.125;# [kg]\n",
+ "Mass_a = 0.9;# [kg]\n",
+ "#**************#\n",
+ "\n",
+ "\n",
+ "plt.plot(x,f80(x),label=\"N Vs x\")\n",
+ "plt.plot(Eqb[:,2],Eqb[:,1],label=\"N Vs Y\");\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x,y Wt. fraction of NaOH in loquid\");\n",
+ "plt.ylabel(\"N kg CaCO3 / kg solution\");\n",
+ "plt.legend('upper left');\n",
+ "plt.title(\"Equilibrium Plot\")\n",
+ "plt.show()\n",
+ "# Basis: 1 kg soln in original mixture.\n",
+ "# As in Fig. 13.27 (Pg 750)\n",
+ "# The original mixture corresponds to M1:\n",
+ "NM1 = 0.125;# [kg CaCO3/kg soln]\n",
+ "yM1 = 0.1;# [kg NaOH/kg solution]\n",
+ "# The tie line through M1 is drawn. At point E1 representing the settled sludge:\n",
+ "N1 = 0.47;# [kg CaCO3/kg soln]\n",
+ "y1 = 0.100;# [kg NaOH/kg solution]\n",
+ "E1 = Mass_b/N1;# [kg soln. in sludge]\n",
+ "Ro = 1-E1;# [kg clear soln drawn]\n",
+ "\n",
+ "# Stage 2:\n",
+ "xo = 0;# [kg NaOH/kg soln]\n",
+ "# By Eqn. 13.11:\n",
+ "M2 = E1+Ro;# [kg liquid]\n",
+ "# By Eqn. 13.12:\n",
+ "NM2 = Mass_b/(E1+Ro);# [kg CaCO3/kg soln]\n",
+ "# M2 is located on line RoE1. At this value of N, and the tie line through M2 is drawn. At E2:\n",
+ "N2 = 0.62;# [kg CaCO3/kg soln]\n",
+ "y2 = 0.035;# [kg NaOH/kg solution]\n",
+ "E2 = Mass_b/N2;# [kg soln. in sludge]\n",
+ "Ro = 1-E2;# [kg clear soln drawn]\n",
+ "\n",
+ "# Stage 3:\n",
+ "xo = 0;# [kg NaOH/kg soln]\n",
+ "# By Eqn. 13.11:\n",
+ "M3 = E2+Ro;# [kg liquid]\n",
+ "# By Eqn. 13.12:\n",
+ "NM3 = Mass_b/M3;# [kg CaCO3/kg soln]\n",
+ "# Tie line E3R3 is located through M3.At E3:\n",
+ "N3 = 0.662;# [kg CaCO3/kg soln]\n",
+ "y3 = 0.012;# [kg NaOH/kg solution]\n",
+ "# By Eqn. 13.8:\n",
+ "E3 = Mass_b/N3;# [kg soln. in sludge]\n",
+ "print\"The fraction of original NaOH in the slurry: \",round(E3*y3/Mass_c,4),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.2 - Page: 749\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7720908>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The fraction of original NaOH in the slurry: 0.0227 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3: Page 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.3\n",
+ "# Page: 754\n",
+ "\n",
+ "print'Illustration 13.3 - Page: 754\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "import numpy as np\n",
+ "from scipy import interp\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#***Data***#\n",
+ "# a=H2O b=CaCO3 c=NaOH \n",
+ "mass_c = 400;# [kg/h]\n",
+ "x1 = 0.1;# [wt fraction NaOH in overflow]\n",
+ "#**********#\n",
+ "\n",
+ "Mb = 100.0;# [kg/kmol]\n",
+ "Mc = 40.0;# [kg/kmol]\n",
+ "rate_c = mass_c/Mc;# [kmol/h]\n",
+ "rate_b = rate_c/2;# [kmol/h]\n",
+ "mass_b = rate_b*Mb;# [kg/h]\n",
+ "# After trial calculations:\n",
+ "y3 = 0.01;# [kg NaOH/kg solution]\n",
+ "N3 = 0.666;# [kg CaCO3/kg solution]\n",
+ "E3 = mass_b/N3;# [kg/h]\n",
+ "lost_c = E3*y3;# [kg/h]\n",
+ "sludge_a = E3-lost_c;# [kg/h]\n",
+ "overflow_c = mass_c-lost_c;# [kg NaOH/kg solution]\n",
+ "R1 = overflow_c/x1;# [kg overflow/h]\n",
+ "R1_a = R1-overflow_c;# [kg/h]\n",
+ "RNpPlus1 = R1_a+sludge_a;# [kg/h]\n",
+ "# For purpose of calculation, it may be imagined that agitators are not present in the flowsheet and the first thickner is fed with the dry mixture of the reaction products, CaCO3 and NaOH, together with overflow from the second thickner.\n",
+ "F = 400.0;# [kg NaOH/h]\n",
+ "NF = mass_b/F;# [kg CaCO3/kg NaOH]\n",
+ "yF = 1.0;# [wt fraction NaOH in dry solid, CaCO3 free basis]\n",
+ "# Points R1, E3, RNpPlus1 and F are plotted as in Fig 13.30 (Pg 755) and locate the point deltaR at the intersection of lines FR1 and E3RNpPlus1 extended. The coordinates of point deltaR are NdeltaR=-0.1419, ydeltaR=-0.00213. Further computation must be done on enlarged section of the equilibrium diagram (Fig 13.31 (Pg 755)). Point deltaR is plotted and the stages stepped off in a usual manner. The construction are projected on the xy diagram. Three stages produce a value: y3=0.001\n",
+ "print\"The NaOH lost in sludge: \",round((lost_c/mass_c)*100,2),\"%\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "#*** Data***#\n",
+ "lost_c = 0.001*mass_c;# [kg/h]\n",
+ "#***********#\n",
+ "\n",
+ "NNp_by_yNp = mass_b/lost_c;# [kg CaCO3/kg NaOH in final sludge]\n",
+ "# In order to determine the liquid content of the final sludge:\n",
+ "# Eqb=[N y_star]\n",
+ "Eqb = np.array([[0.659 , 0.01435],[0.666, 0.01015],[0.677, 0.002],[0.679, 0.001],[0.680 ,0.0005]]);\n",
+ "N_by_ystar = zeros(5);\n",
+ "for i in range(0,5):\n",
+ " N_by_ystar[i] = Eqb[i,0]/(Eqb[i,1]);\n",
+ "\n",
+ "plt.plot(Eqb[:,0],Eqb[:,1]);\n",
+ "plt.grid('on');\n",
+ "plt.xlabel(\"x Wt fraction of NaOH\");\n",
+ "plt.ylabel(\"N kg CaCO3 / kg solution\");\n",
+ "plt.title(\"Equilibrium plot\")\n",
+ "# By Interpolation, for N_by_ystar=NNp_by_yNp:\n",
+ "NNp = interp(NNp_by_yNp,N_by_ystar,Eqb[:,0]);# [kg CaCO3/kg soln]\n",
+ "yNp = NNp/NNp_by_yNp;# [wt fraction NaOH in the liquid of the final sludge]\n",
+ "ENp = mass_b/NNp;# [kg/h]\n",
+ "ENp_a = ENp-lost_c;# [kg/h]\n",
+ "overflow_c = mass_c-lost_c;# [kg/h]\n",
+ "R1 = overflow_c/0.1;# [kg/h]\n",
+ "R1_a = R1-overflow_c;# [kg/h]\n",
+ "RNpPlus1 = R1_a+sludge_a;# [kg/h]\n",
+ "# On the operating diagram (Fig 13.32 (Pg 757)) point deltaR is located and stages were constructed. \n",
+ "# Beyond the fourth stage, the ratio of the overflow to the liquid in the sludge become substantially constant.\n",
+ "R_by_E = RNpPlus1/ENp;\n",
+ "# This is the initial slope of the operating line on the lower part of the figure.\n",
+ "# From Illustration 13.2:\n",
+ "m = 0.01015/0.00450;\n",
+ "Value1 = R_by_E/m;\n",
+ "xNpPlus1 = 0;# [kg NaOH/kg solution]\n",
+ "y4 = 0.007;# [wt fraction NaOH in the liquid]\n",
+ "Value2 = (yNp-(m*xNpPlus1))/(y4-(m*xNpPlus1));\n",
+ "# From Fig 5.16: (Pg 129):\n",
+ "# An Additional 2.3 stages beyond 4 are computed graphically are required.\n",
+ "# An additional two stage will make yNp/y4=0.099:\n",
+ "yNp = 0.099*y4;# [wt fraction NaOH in the liquid]\n",
+ "print round(yNp*ENp,2),\"kg NaOH was lost if 6 thickners were used\\n\"\n",
+ "# An additional three stage will make yNp/y4=0.0365:\n",
+ "yNp = 0.0365*y4;# [wt fraction NaOH in the liquid]\n",
+ "print round(yNp*ENp,3),\"kg NaOH was lost if 7 thickners were used\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.3 - Page: 754\n",
+ "\n",
+ "\n",
+ "The NaOH lost in sludge: 1.88 %\n",
+ "\n",
+ "\n",
+ "\n",
+ "0.51"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " kg NaOH was lost if 6 thickners were used\n",
+ "\n",
+ "0.188 kg NaOH was lost if 7 thickners were used\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQj9yu23UAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x77209b0>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.4: Page 758"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 13.4\n",
+ "# Page: 758\n",
+ "\n",
+ "print'Illustration 13.4 - Page: 758\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "#***Data***#\n",
+ "# a:oil b:soyabean c:hexane\n",
+ "# Data=[100y*(Wt % oil in soln) 1/N(kg soln retained/kg insoluble solid)]\n",
+ "Data = numpy.array([[0 ,0.58],[20 ,0.66],[30 ,0.70]]);\n",
+ "# Soyabean feed:\n",
+ "percent_b = 20.0;# [soluble]\n",
+ "yF = 1.0;# [mass fraction oil,solid free basis]\n",
+ "# Solvent:\n",
+ "RNpPlus1 = 1.0;# [hexane,kg]\n",
+ "xNpPlus1 = 0;# [mass fraction oil]\n",
+ "# Leached Solids:\n",
+ "leached = 0.005;# [fraction of oil to be leached]\n",
+ "# Miscella:\n",
+ "percent_miscella = 10.0;# [percent of insoluble solid]\n",
+ "#**********#\n",
+ "\n",
+ "N = zeros(3);\n",
+ "ystar_By_N = zeros(3);\n",
+ "for i in range(0,3):\n",
+ " N[i] = 1/Data[i,1];# [kg insoluble solid/kg soln retained]\n",
+ " ystar_By_N[i] = Data[i,0]/(100*N[i]);# [kg oil/kg insoluble solid]\n",
+ "\n",
+ "# Basis: 1 kg flakes introduced\n",
+ "# Soyabean feed:\n",
+ "mass_b = 1-(percent_b/100.0);# [insoluble,kg]\n",
+ "F = 1.0-mass_b;# [kg]\n",
+ "NF = mass_b/F;# [kg insoluble solid/kg oil]\n",
+ "\n",
+ "# Leached Solids:\n",
+ "Ratio = leached/(1-leached);# [kg oil/kg insoluble solid]\n",
+ "# By interpolation:\n",
+ "Np = interp(Ratio,ystar_By_N,N);\n",
+ "miscella_b = (percent_miscella/100.0)*mass_b;# [Insoluble solid lost to miscella,kg]\n",
+ "leached_b = (1-(percent_miscella/100.0))*mass_b;# [Insoluble solid in miscella,kg]\n",
+ "ENp = leached_b/Np;# [kg soln retained]\n",
+ "retained_a = Ratio*leached_b;# [oil retained,kg]\n",
+ "retained_c = ENp-retained_a;# [Hexane retained,kg]\n",
+ "yNp = retained_a/ENp;# [mass fraction of oil in retained liquid]\n",
+ "\n",
+ "# Miscella:\n",
+ "mass_c = 1.0-retained_c;# [kg]\n",
+ "mass_a = F-retained_a;# [kg]\n",
+ "R1 = mass_c+mass_a;# [clear miscella,kg]\n",
+ "x1 = mass_a/R1;# [mass fraction of oil in the liquid]\n",
+ "NR1 = miscella_b/R1;# [kg insoluble solid/kg soln]\n",
+ "\n",
+ "# The operating diagram is shown in Fig 13.33 (Pg 759).\n",
+ "# Point R1 represents the cloudy miscella and is therefore is displaced from the axis of he graph at NR1. Point deltaR is located as usual and the stages determined with the N=0 axis for all the stages but the first.\n",
+ "print\"Between 4 and 5 stages are required\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 13.4 - Page: 758\n",
+ "\n",
+ "\n",
+ "Between 4 and 5 stages are required\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter1_1.ipynb b/Mass_-_Transfer_Operations/Chapter1_1.ipynb
new file mode 100755
index 00000000..3d150815
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter1_1.ipynb
@@ -0,0 +1,76 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a429839b93fda73811b080ddf18c202362ff24ca9ec207904626c7313297633e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1 : The Mass-Transfer Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.1: Page 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 1.1\n",
+ "# Page: 17\n",
+ "\n",
+ "print'Illustration 1.1 - Page: 17\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# Taking conversion factor from table 1.5 (Pg 15)\n",
+ "# viscosity: [(lb/ft.h)]*4.134*10^(-4) [kg/m.s] (Pg 15)\n",
+ "# time: [h] = 3600.0 [s]\n",
+ "# Density: [lb/cubic feet]*16.09 = [kg/cubic m] (Pg 15)\n",
+ "# Length: [ft]*0.3048 = [m]\n",
+ "N = (2.778*10**(-4))*(30600/(1/(0.3048**(3.0/2))))*((1/(4.134*(10**(-4))*16.019))**0.111)*(((1/16.019)/(1/16.019))**0.26);\n",
+ "print'The coeffecient for S.I. Unit is',round(N,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 1.1 - Page: 17\n",
+ "\n",
+ "\n",
+ "The coeffecient for S.I. Unit is 2.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter1_2.ipynb b/Mass_-_Transfer_Operations/Chapter1_2.ipynb
new file mode 100755
index 00000000..3d150815
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter1_2.ipynb
@@ -0,0 +1,76 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a429839b93fda73811b080ddf18c202362ff24ca9ec207904626c7313297633e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1 : The Mass-Transfer Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.1: Page 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 1.1\n",
+ "# Page: 17\n",
+ "\n",
+ "print'Illustration 1.1 - Page: 17\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# Taking conversion factor from table 1.5 (Pg 15)\n",
+ "# viscosity: [(lb/ft.h)]*4.134*10^(-4) [kg/m.s] (Pg 15)\n",
+ "# time: [h] = 3600.0 [s]\n",
+ "# Density: [lb/cubic feet]*16.09 = [kg/cubic m] (Pg 15)\n",
+ "# Length: [ft]*0.3048 = [m]\n",
+ "N = (2.778*10**(-4))*(30600/(1/(0.3048**(3.0/2))))*((1/(4.134*(10**(-4))*16.019))**0.111)*(((1/16.019)/(1/16.019))**0.26);\n",
+ "print'The coeffecient for S.I. Unit is',round(N,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 1.1 - Page: 17\n",
+ "\n",
+ "\n",
+ "The coeffecient for S.I. Unit is 2.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter2.ipynb b/Mass_-_Transfer_Operations/Chapter2.ipynb
new file mode 100755
index 00000000..3d3cab36
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter2.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c59a45d9559284ebbfa4c56e2ad9c90a674f6e02433515bc489ee0db922e92e9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Molecular Diffusion In Fluids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1: Pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Illustration 2.1\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = O2 & b = CO\n",
+ "Dab = 1.87*10**(-5);#[square m/s]\n",
+ "Pt = 10**5;#[N/square m]\n",
+ "z = 0.002;#[m]\n",
+ "R = 8314;#[Nm/kmol]\n",
+ "T = 273;#[K]\n",
+ "Pa1 = 13*10.0**(3);#[N/square m]\n",
+ "Pb1 = 10**(5)-13*10**(3);#[N/square m]\n",
+ "Pa2 = 6500;#[N/square m]\n",
+ "Pb2 = 10**(5)-6500.0;#[N/square m]\n",
+ "#********#\n",
+ "\n",
+ "# Calculation from Eqn. 2.30\n",
+ "Pbm = (Pb1-Pb2)/math.log(Pb1/Pb2);#[N/square m]\n",
+ "Na = Dab*Pt*(Pa1-Pa2)/(R*T*z*Pbm);#[kmol/square m.s]\n",
+ "print\" Rate of diffusion of oxygen is\",round(Na,7),\"kmol/square m.sec \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rate of diffusion of oxygen is 2.97e-05 kmol/square m.sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:Pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration2.2\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#***Data***#\n",
+ "Pt = 10**5.0;#[N/square m]\n",
+ "z = 0.002;#[m]\n",
+ "R = 8314.0;#[Nm/kmol]\n",
+ "T = 273;#[K]\n",
+ "#a = O2 b = CH4 c = H2\n",
+ "Pa1 = 13*10**(3);#[N/square m]\n",
+ "Pb1 = 10**(5)-13*10**(3);#[N/square m]\n",
+ "Pa2 = 6500.0;#[N/square m]\n",
+ "Pb2 = 10.0**(5)-6500;#[N/square m]\n",
+ "Dac = 6.99*10**(-5);#[N/square m]\n",
+ "Dab = 1.86*10.0**(-5);#[N/square m]\n",
+ "#*******#\n",
+ "\n",
+ "# Calculation from Eqn. 2.30\n",
+ "Pbm = (Pb1-Pb2)/math.log(Pb1/Pb2);#[N/square m]\n",
+ "Yb_prime = 2.0/(2+1);\n",
+ "Yc_prime = 1-Yb_prime;\n",
+ "Dam = 1.0/((Yb_prime/Dab)+(Yc_prime/Dac));#[square m.s]\n",
+ "Na = Dam*(Pa1-Pa2)*Pt/(R*T*z*Pbm);#[kmol/square m.s]\n",
+ "print \"Rate of diffusion is\",round(Na,7),\"kmol/square m.sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of diffusion is 3.91e-05 kmol/square m.sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:Pg-32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration2.3\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = C2H5OH b = air\n",
+ "Pt = 101.3*10**(3);#[N/square m]\n",
+ "T = 273.0 ;#[K]\n",
+ "#********#\n",
+ "\n",
+ "Ma = 46.07;# [kg/kmol]\n",
+ "Mb = 29.0;# [kg/kmol]\n",
+ "#For air from Table 2.2 (Pg 33)\n",
+ "Eb_by_k = 78.6;# [K]\n",
+ "rb = 0.3711; # [nm]\n",
+ "# For C2H5OH using Eqn. 2.38 & 2.39\n",
+ "# From Table 2.3\n",
+ "Va = (2*0.0148)+(6*0.0037)+(0.0074);# [cubic m/kmol]\n",
+ "Tba = 351.4;# [K]\n",
+ "ra = 1.18*(Va**(1/3.0));#[nm]\n",
+ "Ea_by_k = 1.21*Tba;# [K]\n",
+ "rab = (ra+rb)/2.0;# [nm]\n",
+ "Eab_by_k = math.sqrt(Ea_by_k*Eb_by_k);# [K]\n",
+ "Collision_value = T/Eab_by_k;\n",
+ "#From Fig. 2.5 (Page: 32) f(collision value)\n",
+ "Collision_func = 0.595;\n",
+ "Dab = (10**(-4)*(1.084-(0.249*math.sqrt((1/Ma)+(1/Mb))))*T**(3.0/2)*math.sqrt((1/Ma)+(1/Mb)))/(Pt*(rab**2)*Collision_func);#[square m/s]\n",
+ "print\" The diffusivity of ethanol through air at 1 atm. & 0 degree C is\",round(Dab,7),\"m^2/s\"\n",
+ "print\" The observed value from (Table 2.1) is 1.02*10^(-5) square m/s'\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The diffusivity of ethanol through air at 1 atm. & 0 degree C is 1.05e-05 m^2/s\n",
+ " The observed value from (Table 2.1) is 1.02*10^(-5) square m/s'\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:Pg-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.4\n",
+ "import math\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = acetic acid b = H2O\n",
+ "z = 0.001;# [m]\n",
+ "Dab = 0.95*10**(-9);#[square m/s]\n",
+ "#************#\n",
+ "\n",
+ "Ma = 60.03;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "#At 17 C & 9% solution\n",
+ "density1 = 1012; #[kg/cubic m]\n",
+ "Xa1 = (0.09/Ma)/((0.09/Ma)+(0.91/Mb));\n",
+ "Xb1 = 1-Xa1;\n",
+ "M1 = 1/((0.09/Ma)+(0.91/Mb));# [kg/kmol]\n",
+ "#At 17 C & 3% solution\n",
+ "density2 = 1003.2; #[kg/cubic m]\n",
+ "Xa2 = (0.03/Ma)/((0.03/Ma)+(0.97/Mb));\n",
+ "Xb2 = 1-Xa2;\n",
+ "M2 = 1/((0.03/Ma)+(0.97/Mb));# [kg/kmol]\n",
+ "avg_density_by_M = ((density1/M1)+(density2/M2))/2;#[kmol/cubic m]\n",
+ "# From Eqn. 2.42\n",
+ "Xbm = (Xb2-Xb1)/math.log(Xb2/Xb1);\n",
+ "# From Eqn. 2.41\n",
+ "Na = Dab*(avg_density_by_M)*(Xa1-Xa2)/(Xbm*z); #[square m/s]\n",
+ "print\" The rate of diffusion is\",round(Na,9),\"square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rate of diffusion is 1.018e-06 square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:Pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.5\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = mannitol b = H2O\n",
+ "T = 293; # [K]\n",
+ "#*****#\n",
+ "\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# From Table 2.3 (Pg 33)\n",
+ "Va = (0.0148*6)+(0.0037*14)+(0.0074*6); # [cubic m/kmol]\n",
+ "viscosity = 0.001005; # [kg/m.s]\n",
+ "association_factor = 2.26; # [water as a solvent]\n",
+ "Dab = (117.3*10**(-18))*((association_factor*Mb)**0.5)*T/(viscosity*Va**0.6); # [square m/s]\n",
+ "print\" Diffusivity of mannitol is\",round(Dab,12),\"square m/s\"\n",
+ "print\" Observed value is 0.56*10^(-9) square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusivity of mannitol is 6.01e-10 square m/s\n",
+ " Observed value is 0.56*10^(-9) square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:Pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.6\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "T2 = 70+273;# [K]\n",
+ "#**********#\n",
+ "\n",
+ "# a = mannitol b = H2O\n",
+ "# From Illustration 2.5 at 20 C\n",
+ "viscosity1 = 1.005*10**(-3); # [kg/m.s]\n",
+ "Dab1 = 0.56*10**(-9); #[m^2/s]\n",
+ "T1 = 273+20;# [K]\n",
+ "# At 70 C\n",
+ "viscosity2 = 0.4061*10**(-3); # kg/m.s\n",
+ "# Eqn. 2.44 indicates Dab*viscocity/T = constnt\n",
+ "Dab2 = Dab1*(T2)*(viscosity1)/(T1*viscosity2);# [square m/s]\n",
+ "print\" Diffusivity of mannitol at 70 degree C is\",round(Dab2,11),\"square/s \"\n",
+ "print\" Observed value at 70 degree C is 1.56*10^(-9) square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusivity of mannitol at 70 degree C is 1.62e-09 square/s \n",
+ " Observed value at 70 degree C is 1.56*10^(-9) square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter2_1.ipynb b/Mass_-_Transfer_Operations/Chapter2_1.ipynb
new file mode 100755
index 00000000..3d3cab36
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter2_1.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c59a45d9559284ebbfa4c56e2ad9c90a674f6e02433515bc489ee0db922e92e9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Molecular Diffusion In Fluids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1: Pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Illustration 2.1\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = O2 & b = CO\n",
+ "Dab = 1.87*10**(-5);#[square m/s]\n",
+ "Pt = 10**5;#[N/square m]\n",
+ "z = 0.002;#[m]\n",
+ "R = 8314;#[Nm/kmol]\n",
+ "T = 273;#[K]\n",
+ "Pa1 = 13*10.0**(3);#[N/square m]\n",
+ "Pb1 = 10**(5)-13*10**(3);#[N/square m]\n",
+ "Pa2 = 6500;#[N/square m]\n",
+ "Pb2 = 10**(5)-6500.0;#[N/square m]\n",
+ "#********#\n",
+ "\n",
+ "# Calculation from Eqn. 2.30\n",
+ "Pbm = (Pb1-Pb2)/math.log(Pb1/Pb2);#[N/square m]\n",
+ "Na = Dab*Pt*(Pa1-Pa2)/(R*T*z*Pbm);#[kmol/square m.s]\n",
+ "print\" Rate of diffusion of oxygen is\",round(Na,7),\"kmol/square m.sec \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rate of diffusion of oxygen is 2.97e-05 kmol/square m.sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:Pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration2.2\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#***Data***#\n",
+ "Pt = 10**5.0;#[N/square m]\n",
+ "z = 0.002;#[m]\n",
+ "R = 8314.0;#[Nm/kmol]\n",
+ "T = 273;#[K]\n",
+ "#a = O2 b = CH4 c = H2\n",
+ "Pa1 = 13*10**(3);#[N/square m]\n",
+ "Pb1 = 10**(5)-13*10**(3);#[N/square m]\n",
+ "Pa2 = 6500.0;#[N/square m]\n",
+ "Pb2 = 10.0**(5)-6500;#[N/square m]\n",
+ "Dac = 6.99*10**(-5);#[N/square m]\n",
+ "Dab = 1.86*10.0**(-5);#[N/square m]\n",
+ "#*******#\n",
+ "\n",
+ "# Calculation from Eqn. 2.30\n",
+ "Pbm = (Pb1-Pb2)/math.log(Pb1/Pb2);#[N/square m]\n",
+ "Yb_prime = 2.0/(2+1);\n",
+ "Yc_prime = 1-Yb_prime;\n",
+ "Dam = 1.0/((Yb_prime/Dab)+(Yc_prime/Dac));#[square m.s]\n",
+ "Na = Dam*(Pa1-Pa2)*Pt/(R*T*z*Pbm);#[kmol/square m.s]\n",
+ "print \"Rate of diffusion is\",round(Na,7),\"kmol/square m.sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of diffusion is 3.91e-05 kmol/square m.sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:Pg-32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration2.3\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = C2H5OH b = air\n",
+ "Pt = 101.3*10**(3);#[N/square m]\n",
+ "T = 273.0 ;#[K]\n",
+ "#********#\n",
+ "\n",
+ "Ma = 46.07;# [kg/kmol]\n",
+ "Mb = 29.0;# [kg/kmol]\n",
+ "#For air from Table 2.2 (Pg 33)\n",
+ "Eb_by_k = 78.6;# [K]\n",
+ "rb = 0.3711; # [nm]\n",
+ "# For C2H5OH using Eqn. 2.38 & 2.39\n",
+ "# From Table 2.3\n",
+ "Va = (2*0.0148)+(6*0.0037)+(0.0074);# [cubic m/kmol]\n",
+ "Tba = 351.4;# [K]\n",
+ "ra = 1.18*(Va**(1/3.0));#[nm]\n",
+ "Ea_by_k = 1.21*Tba;# [K]\n",
+ "rab = (ra+rb)/2.0;# [nm]\n",
+ "Eab_by_k = math.sqrt(Ea_by_k*Eb_by_k);# [K]\n",
+ "Collision_value = T/Eab_by_k;\n",
+ "#From Fig. 2.5 (Page: 32) f(collision value)\n",
+ "Collision_func = 0.595;\n",
+ "Dab = (10**(-4)*(1.084-(0.249*math.sqrt((1/Ma)+(1/Mb))))*T**(3.0/2)*math.sqrt((1/Ma)+(1/Mb)))/(Pt*(rab**2)*Collision_func);#[square m/s]\n",
+ "print\" The diffusivity of ethanol through air at 1 atm. & 0 degree C is\",round(Dab,7),\"m^2/s\"\n",
+ "print\" The observed value from (Table 2.1) is 1.02*10^(-5) square m/s'\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The diffusivity of ethanol through air at 1 atm. & 0 degree C is 1.05e-05 m^2/s\n",
+ " The observed value from (Table 2.1) is 1.02*10^(-5) square m/s'\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:Pg-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.4\n",
+ "import math\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = acetic acid b = H2O\n",
+ "z = 0.001;# [m]\n",
+ "Dab = 0.95*10**(-9);#[square m/s]\n",
+ "#************#\n",
+ "\n",
+ "Ma = 60.03;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "#At 17 C & 9% solution\n",
+ "density1 = 1012; #[kg/cubic m]\n",
+ "Xa1 = (0.09/Ma)/((0.09/Ma)+(0.91/Mb));\n",
+ "Xb1 = 1-Xa1;\n",
+ "M1 = 1/((0.09/Ma)+(0.91/Mb));# [kg/kmol]\n",
+ "#At 17 C & 3% solution\n",
+ "density2 = 1003.2; #[kg/cubic m]\n",
+ "Xa2 = (0.03/Ma)/((0.03/Ma)+(0.97/Mb));\n",
+ "Xb2 = 1-Xa2;\n",
+ "M2 = 1/((0.03/Ma)+(0.97/Mb));# [kg/kmol]\n",
+ "avg_density_by_M = ((density1/M1)+(density2/M2))/2;#[kmol/cubic m]\n",
+ "# From Eqn. 2.42\n",
+ "Xbm = (Xb2-Xb1)/math.log(Xb2/Xb1);\n",
+ "# From Eqn. 2.41\n",
+ "Na = Dab*(avg_density_by_M)*(Xa1-Xa2)/(Xbm*z); #[square m/s]\n",
+ "print\" The rate of diffusion is\",round(Na,9),\"square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rate of diffusion is 1.018e-06 square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:Pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.5\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = mannitol b = H2O\n",
+ "T = 293; # [K]\n",
+ "#*****#\n",
+ "\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# From Table 2.3 (Pg 33)\n",
+ "Va = (0.0148*6)+(0.0037*14)+(0.0074*6); # [cubic m/kmol]\n",
+ "viscosity = 0.001005; # [kg/m.s]\n",
+ "association_factor = 2.26; # [water as a solvent]\n",
+ "Dab = (117.3*10**(-18))*((association_factor*Mb)**0.5)*T/(viscosity*Va**0.6); # [square m/s]\n",
+ "print\" Diffusivity of mannitol is\",round(Dab,12),\"square m/s\"\n",
+ "print\" Observed value is 0.56*10^(-9) square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusivity of mannitol is 6.01e-10 square m/s\n",
+ " Observed value is 0.56*10^(-9) square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:Pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.6\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "T2 = 70+273;# [K]\n",
+ "#**********#\n",
+ "\n",
+ "# a = mannitol b = H2O\n",
+ "# From Illustration 2.5 at 20 C\n",
+ "viscosity1 = 1.005*10**(-3); # [kg/m.s]\n",
+ "Dab1 = 0.56*10**(-9); #[m^2/s]\n",
+ "T1 = 273+20;# [K]\n",
+ "# At 70 C\n",
+ "viscosity2 = 0.4061*10**(-3); # kg/m.s\n",
+ "# Eqn. 2.44 indicates Dab*viscocity/T = constnt\n",
+ "Dab2 = Dab1*(T2)*(viscosity1)/(T1*viscosity2);# [square m/s]\n",
+ "print\" Diffusivity of mannitol at 70 degree C is\",round(Dab2,11),\"square/s \"\n",
+ "print\" Observed value at 70 degree C is 1.56*10^(-9) square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusivity of mannitol at 70 degree C is 1.62e-09 square/s \n",
+ " Observed value at 70 degree C is 1.56*10^(-9) square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter2_2.ipynb b/Mass_-_Transfer_Operations/Chapter2_2.ipynb
new file mode 100755
index 00000000..3d3cab36
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter2_2.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c59a45d9559284ebbfa4c56e2ad9c90a674f6e02433515bc489ee0db922e92e9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Molecular Diffusion In Fluids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1: Pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Illustration 2.1\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = O2 & b = CO\n",
+ "Dab = 1.87*10**(-5);#[square m/s]\n",
+ "Pt = 10**5;#[N/square m]\n",
+ "z = 0.002;#[m]\n",
+ "R = 8314;#[Nm/kmol]\n",
+ "T = 273;#[K]\n",
+ "Pa1 = 13*10.0**(3);#[N/square m]\n",
+ "Pb1 = 10**(5)-13*10**(3);#[N/square m]\n",
+ "Pa2 = 6500;#[N/square m]\n",
+ "Pb2 = 10**(5)-6500.0;#[N/square m]\n",
+ "#********#\n",
+ "\n",
+ "# Calculation from Eqn. 2.30\n",
+ "Pbm = (Pb1-Pb2)/math.log(Pb1/Pb2);#[N/square m]\n",
+ "Na = Dab*Pt*(Pa1-Pa2)/(R*T*z*Pbm);#[kmol/square m.s]\n",
+ "print\" Rate of diffusion of oxygen is\",round(Na,7),\"kmol/square m.sec \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rate of diffusion of oxygen is 2.97e-05 kmol/square m.sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:Pg-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration2.2\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#***Data***#\n",
+ "Pt = 10**5.0;#[N/square m]\n",
+ "z = 0.002;#[m]\n",
+ "R = 8314.0;#[Nm/kmol]\n",
+ "T = 273;#[K]\n",
+ "#a = O2 b = CH4 c = H2\n",
+ "Pa1 = 13*10**(3);#[N/square m]\n",
+ "Pb1 = 10**(5)-13*10**(3);#[N/square m]\n",
+ "Pa2 = 6500.0;#[N/square m]\n",
+ "Pb2 = 10.0**(5)-6500;#[N/square m]\n",
+ "Dac = 6.99*10**(-5);#[N/square m]\n",
+ "Dab = 1.86*10.0**(-5);#[N/square m]\n",
+ "#*******#\n",
+ "\n",
+ "# Calculation from Eqn. 2.30\n",
+ "Pbm = (Pb1-Pb2)/math.log(Pb1/Pb2);#[N/square m]\n",
+ "Yb_prime = 2.0/(2+1);\n",
+ "Yc_prime = 1-Yb_prime;\n",
+ "Dam = 1.0/((Yb_prime/Dab)+(Yc_prime/Dac));#[square m.s]\n",
+ "Na = Dam*(Pa1-Pa2)*Pt/(R*T*z*Pbm);#[kmol/square m.s]\n",
+ "print \"Rate of diffusion is\",round(Na,7),\"kmol/square m.sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of diffusion is 3.91e-05 kmol/square m.sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:Pg-32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration2.3\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = C2H5OH b = air\n",
+ "Pt = 101.3*10**(3);#[N/square m]\n",
+ "T = 273.0 ;#[K]\n",
+ "#********#\n",
+ "\n",
+ "Ma = 46.07;# [kg/kmol]\n",
+ "Mb = 29.0;# [kg/kmol]\n",
+ "#For air from Table 2.2 (Pg 33)\n",
+ "Eb_by_k = 78.6;# [K]\n",
+ "rb = 0.3711; # [nm]\n",
+ "# For C2H5OH using Eqn. 2.38 & 2.39\n",
+ "# From Table 2.3\n",
+ "Va = (2*0.0148)+(6*0.0037)+(0.0074);# [cubic m/kmol]\n",
+ "Tba = 351.4;# [K]\n",
+ "ra = 1.18*(Va**(1/3.0));#[nm]\n",
+ "Ea_by_k = 1.21*Tba;# [K]\n",
+ "rab = (ra+rb)/2.0;# [nm]\n",
+ "Eab_by_k = math.sqrt(Ea_by_k*Eb_by_k);# [K]\n",
+ "Collision_value = T/Eab_by_k;\n",
+ "#From Fig. 2.5 (Page: 32) f(collision value)\n",
+ "Collision_func = 0.595;\n",
+ "Dab = (10**(-4)*(1.084-(0.249*math.sqrt((1/Ma)+(1/Mb))))*T**(3.0/2)*math.sqrt((1/Ma)+(1/Mb)))/(Pt*(rab**2)*Collision_func);#[square m/s]\n",
+ "print\" The diffusivity of ethanol through air at 1 atm. & 0 degree C is\",round(Dab,7),\"m^2/s\"\n",
+ "print\" The observed value from (Table 2.1) is 1.02*10^(-5) square m/s'\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The diffusivity of ethanol through air at 1 atm. & 0 degree C is 1.05e-05 m^2/s\n",
+ " The observed value from (Table 2.1) is 1.02*10^(-5) square m/s'\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:Pg-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.4\n",
+ "import math\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = acetic acid b = H2O\n",
+ "z = 0.001;# [m]\n",
+ "Dab = 0.95*10**(-9);#[square m/s]\n",
+ "#************#\n",
+ "\n",
+ "Ma = 60.03;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "#At 17 C & 9% solution\n",
+ "density1 = 1012; #[kg/cubic m]\n",
+ "Xa1 = (0.09/Ma)/((0.09/Ma)+(0.91/Mb));\n",
+ "Xb1 = 1-Xa1;\n",
+ "M1 = 1/((0.09/Ma)+(0.91/Mb));# [kg/kmol]\n",
+ "#At 17 C & 3% solution\n",
+ "density2 = 1003.2; #[kg/cubic m]\n",
+ "Xa2 = (0.03/Ma)/((0.03/Ma)+(0.97/Mb));\n",
+ "Xb2 = 1-Xa2;\n",
+ "M2 = 1/((0.03/Ma)+(0.97/Mb));# [kg/kmol]\n",
+ "avg_density_by_M = ((density1/M1)+(density2/M2))/2;#[kmol/cubic m]\n",
+ "# From Eqn. 2.42\n",
+ "Xbm = (Xb2-Xb1)/math.log(Xb2/Xb1);\n",
+ "# From Eqn. 2.41\n",
+ "Na = Dab*(avg_density_by_M)*(Xa1-Xa2)/(Xbm*z); #[square m/s]\n",
+ "print\" The rate of diffusion is\",round(Na,9),\"square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rate of diffusion is 1.018e-06 square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:Pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.5\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = mannitol b = H2O\n",
+ "T = 293; # [K]\n",
+ "#*****#\n",
+ "\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# From Table 2.3 (Pg 33)\n",
+ "Va = (0.0148*6)+(0.0037*14)+(0.0074*6); # [cubic m/kmol]\n",
+ "viscosity = 0.001005; # [kg/m.s]\n",
+ "association_factor = 2.26; # [water as a solvent]\n",
+ "Dab = (117.3*10**(-18))*((association_factor*Mb)**0.5)*T/(viscosity*Va**0.6); # [square m/s]\n",
+ "print\" Diffusivity of mannitol is\",round(Dab,12),\"square m/s\"\n",
+ "print\" Observed value is 0.56*10^(-9) square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusivity of mannitol is 6.01e-10 square m/s\n",
+ " Observed value is 0.56*10^(-9) square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:Pg-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 2.6\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "T2 = 70+273;# [K]\n",
+ "#**********#\n",
+ "\n",
+ "# a = mannitol b = H2O\n",
+ "# From Illustration 2.5 at 20 C\n",
+ "viscosity1 = 1.005*10**(-3); # [kg/m.s]\n",
+ "Dab1 = 0.56*10**(-9); #[m^2/s]\n",
+ "T1 = 273+20;# [K]\n",
+ "# At 70 C\n",
+ "viscosity2 = 0.4061*10**(-3); # kg/m.s\n",
+ "# Eqn. 2.44 indicates Dab*viscocity/T = constnt\n",
+ "Dab2 = Dab1*(T2)*(viscosity1)/(T1*viscosity2);# [square m/s]\n",
+ "print\" Diffusivity of mannitol at 70 degree C is\",round(Dab2,11),\"square/s \"\n",
+ "print\" Observed value at 70 degree C is 1.56*10^(-9) square m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diffusivity of mannitol at 70 degree C is 1.62e-09 square/s \n",
+ " Observed value at 70 degree C is 1.56*10^(-9) square m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter3.ipynb b/Mass_-_Transfer_Operations/Chapter3.ipynb
new file mode 100755
index 00000000..36f53f4d
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter3.ipynb
@@ -0,0 +1,628 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:64d9a62e17838716bd10cd86f93be8c39dc69462337a3d3adc3d6ea158cbc575"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Mass-Transfer Coefficients"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.1:Page 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.1\n",
+ "# Page: 53\n",
+ "\n",
+ "print'Illustration 3.1 - Page: 53\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = CO2 b = H2O\n",
+ "Ca0 = 0;#[kmol/cubic m]\n",
+ "Cai = 0.0336;#[kmol/cubic m]\n",
+ "Dab = 1.96*10**(-9);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "density = 998.0;# [kg/cubic m]\n",
+ "viscosity = 8.94*10**(-4);#[kg/m.s]\n",
+ "rate = 0.05;#[kg/m.s] mass flow rate of liquid\n",
+ "L = 1;#[m]\n",
+ "g = 9.81;#[m/square s]\n",
+ "# From Eqn. 3.10\n",
+ "Del = ((3*viscosity*rate)/((density**2)*g))**(1.0/3);# [m]\n",
+ "Re = 4*rate/viscosity;\n",
+ "# Flow comes out to be laminar\n",
+ "# From Eqn. 3.19\n",
+ "Kl_avg = ((6*Dab*rate)/(3.141*density*Del*L))**(1.0/2);#[kmol/square m.s.(kmol/cubic m)]\n",
+ "bulk_avg_velocity = rate/(density*Del);#[m/s]\n",
+ "# At the top: Cai-Ca = Cai_Ca0 = Cai\n",
+ "#At the bottom: Cai-Cal\n",
+ "# From Eqn. 3.21 & 3.22\n",
+ "Cal = Cai*(1-(1.0/(exp(Kl_avg/(bulk_avg_velocity*Del)))));# [kmol/cubic m]\n",
+ "rate_absorption = bulk_avg_velocity*Del*(Cal-Ca0);# [kmol/s].(m of width)\n",
+ "print'The rate of absorption is ',round(rate_absorption,8),' kmol/sec.(m of width)'\n",
+ "# The actual value may be substantially larger."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.1 - Page: 53\n",
+ "\n",
+ "\n",
+ "The rate of absorption is 7.2e-07 kmol/sec.(m of width)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2: Page 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.2\n",
+ "# Page: 56\n",
+ "\n",
+ "print'Illustration 3.2 - Page: 56\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "d = 0.025;# [m]\n",
+ "avg_velocity = 3;# [m/s]\n",
+ "viscosity = 8.937*10**(-4);# [kg/m.s]\n",
+ "density = 997;# [kg/m**3]\n",
+ "#*********#\n",
+ "\n",
+ "kinematic_viscosity = viscosity/density;# [square m/s]\n",
+ "Re = d*avg_velocity*density/viscosity;\n",
+ "# Reynold's number comes out to be 83670\n",
+ "# At this Reynold's number fanning factor = 0.0047\n",
+ "f = 0.0047;\n",
+ "L = 1;# [m]\n",
+ "press_drop = 2*density*f*L*(avg_velocity**2)/(d);# [N/square m]\n",
+ "P = 3.141*(d**2)*avg_velocity*press_drop/4;# [N.m/s] for 1m pipe\n",
+ "m = 3.141*(d**2)*L*density/4;\n",
+ "# From Eqn. 3.24\n",
+ "Ld = ((kinematic_viscosity**3)*m/P)**(1.0/4);# [m]\n",
+ "# From Eqn. 3.25\n",
+ "Ud = (kinematic_viscosity*P/m)**(1.0/4);# [m/s]\n",
+ "print'Velocity of small eddies is',round(Ud,4),'m/s'\n",
+ "print'Length scale of small eddies is',round(Ld,7),'m'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.2 - Page: 56\n",
+ "\n",
+ "\n",
+ "Velocity of small eddies is 0.0549 m/s\n",
+ "Length scale of small eddies is 1.63e-05 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3: Page 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.3\n",
+ "# Page: 69\n",
+ "\n",
+ "print'Illustration 3.3 - Page: 69\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# Heat transfer analog to Eqn. 3.12\n",
+ "# The Eqn. remains the same with the dimensionless conc. ratio replaced by ((tl-to)/(ti-to))\n",
+ "\n",
+ "# The dimensionless group:\n",
+ "# eta = 2*Dab*L/(3*del**2*velocity);\n",
+ "# eta = (2/3)*(Dab/(del*velocity))*(L/del);\n",
+ "# Ped = Peclet no. for mass transfer\n",
+ "# eta = (2/3)*(1/Ped)*(L/del);\n",
+ "\n",
+ "# For heat transfer is replaced by\n",
+ "# Peh = Peclet no. for heat transfer\n",
+ "# eta = (2/3)*(1/Peh)*(L/del);\n",
+ "# eta = (2/3)*(alpha/(del*velocity))*(L/del);\n",
+ "# eta = (2*alpha*L)/(3*del**2*velocity);\n",
+ "print'Heat transfer analog to Eqn. 3.21 is eta = (2*alpha*L)/(3*del**2*velocity)'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.3 - Page: 69\n",
+ "\n",
+ "\n",
+ "Heat transfer analog to Eqn. 3.21 is eta = (2*alpha*L)/(3*del**2*velocity)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4: Page-69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.4\n",
+ "# Page: 69\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 3.4 - Page: 69\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = UF6 b = air\n",
+ "# The average heat transfer coefficient: Nu_avg = 0.43+0.532(Re^0.5)(Pr^0.31)\n",
+ "# The analogus expression for mass transfer coefficient: Sh_avg = 0.43+0.532(Re^0.5)(Sc^0.31)\n",
+ "d = 0.006;# [m]\n",
+ "velocity = 3.0;# [m/s]\n",
+ "surf_temp = 43.0;# [C]\n",
+ "bulk_temp = 60.0;# [C]\n",
+ "avg_temp = (surf_temp+bulk_temp)/2; #[C]\n",
+ "density = 4.10;# [kg/cubic m]\n",
+ "viscosity = 2.7*10**(-5);# [kg/m.s]\n",
+ "Dab = 9.04*10**(-6);# [square m/s]\n",
+ "press = 53.32;# [kN/square m]\n",
+ "tot_press = 101.33;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "avg_press = press/2.0; # [kN/square m]\n",
+ "Xa = avg_press/tot_press;\n",
+ "Xb = 1-Xa;\n",
+ "Re = d*velocity*density/viscosity;\n",
+ "Sc = viscosity/(density*Dab);\n",
+ "Sh_avg = 0.43+(0.532*(2733**0.5)*(0.728**0.5));\n",
+ "c = 273.2/(22.41*(273.2+avg_temp));# [kmol/cubic m]\n",
+ "F_avg = Sh_avg*c*Dab/d;#[kmol/cubic m]\n",
+ "Nb = 0.0;\n",
+ "Ca1_by_C = press/tot_press;\n",
+ "Ca2_by_C = 0.0;\n",
+ "Flux_a = 1.0;\n",
+ "# Using Eqn. 3.1\n",
+ "Na = Flux_a*F_avg*math.log((Flux_a-Ca2_by_C)/(Flux_a-Ca1_by_C));#[kmol UF6/square m.s]\n",
+ "print'Rate of sublimation is',round(Na,8),' kmol UF6/square m.s'\n",
+ "# the answer is slightly different in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.4 - Page: 69\n",
+ "\n",
+ "\n",
+ "Rate of sublimation is 0.00102088 kmol UF6/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5: Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.5\n",
+ "# Page: 73\n",
+ "\n",
+ "print'Illustration 3.5 - Page: 73\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "velocity = 15.0;# [m/s]\n",
+ "G = 21.3;# [kg/square m.s]\n",
+ "#******#\n",
+ "\n",
+ "# Since the experimental data do not include the effects of changing Prandtl number.\n",
+ "\n",
+ "# Jh = (h/(Cp*density*viscosity)) = (h/Cp*G)*(Pr^(2/3)) = Shi(Re);\n",
+ "\n",
+ "# Shi(Re) must be compatible with 21.3*(G**0.6);\n",
+ "# Let Shi(Re) = b*(Re**n);\n",
+ "# Re = (l*G)/viscosity;\n",
+ "\n",
+ "# h = (Cp*G/(Pr**(2/3)))*b*(Re**n);\n",
+ "# h = (Cp*G/(Pr**(2/3)))*b*((l*b/viscosity)**n) = 21.3*(G**0.6);\n",
+ "\n",
+ "n = 0.6-1;\n",
+ "# b = 21.3*((Pr**(2/3))/Cp)*((l/viscosity)**(-n));\n",
+ "\n",
+ "# Using data for air at 38 C & 1 std atm.\n",
+ "Cp1 = 1002;# [kJ/kg.K]\n",
+ "viscosity1 = 1.85*10**(-5);#[kg/m.s]\n",
+ "k1 = 0.0273;#[W/m.K]\n",
+ "Pr1 = (Cp1*viscosity1)/k1;\n",
+ "b_prime = 21.3*(Pr1**(2.0/3)/Cp1)*((1/viscosity1)**0.4);\n",
+ "# b = b_prime*l**(0.4);\n",
+ "# Jh = (h/(Cp*G))*Pr**(2/3) = b_prime*((l/Re)**(0.4)) = Shi(Re);\n",
+ "\n",
+ "# The heat mass transfer analogy will be used to estimate the mass transfer coefficient. (Jd = Jh)\n",
+ "\n",
+ "# Jd = (KG*Pbm*Mav*Sc**(2/3))/(density*viscosity) = Shi(Re) = b_prime*((l/Re)**0.4);\n",
+ "\n",
+ "# KG*Pbm = F = (b_prime*density*viscosity)/(Re^0.4*Mav*Sc**(2/3)) = (b_prime*(density*velocity)**0.6*(viscosity^0.4))/(Mav*Sc**(2/3));\n",
+ "\n",
+ "# For H2-H20, 38 C, 1std atm\n",
+ "viscosity2 = 9*10**(-6);# [kg/m.s]\n",
+ "density2 = 0.0794;# [kg/cubic m]\n",
+ "Dab = 7.75*10**(-5);# [square m/s]\n",
+ "Sc = viscosity2/(density2*Dab);\n",
+ "\n",
+ "# Assuming desity, Molecular weight and viscosity of the gas are essentially those of H2\n",
+ "\n",
+ "Mav = 2.02;# [kg/kmol]\n",
+ "F = (b_prime*(density2*velocity)**0.6*(viscosity2**0.4))/(Mav*Sc**(2.0/3));# [kmol/square m.s]\n",
+ "print'The required mass transfer: ',round(F,5),' kmol/square m.s'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.5 - Page: 73\n",
+ "\n",
+ "\n",
+ "The required mass transfer: 0.00525 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:Page 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.6\n",
+ "# Page: 77\n",
+ "\n",
+ "print'Illustration 3.6 - Page: 77\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy import integrate\n",
+ "import math \n",
+ "#***Data***#\n",
+ "Dp = 0.0125;# [m]\n",
+ "viscosity = 2.4*10**(-5);# [kg/m.s]\n",
+ "Sc = 2.0;\n",
+ "E = 0.3;\n",
+ "Go = (2*10**(-3))/0.1;# molar superficial mass velocity [kmol/square m.s]\n",
+ "#********#\n",
+ "\n",
+ "# a = CO b = Ni(CO)4\n",
+ "# Nb = -(Na/4);\n",
+ "Flux_a = 4.0/3;\n",
+ "Ca2_by_C = 0;# At the metal interface\n",
+ "# Ca1_by_C = Ya #mole fraction of CO in the bulk\n",
+ "\n",
+ "# Eqn. 3.1 becomes: Na = (4/3)*F*log((4/3)/((4/3)-Ya));\n",
+ "\n",
+ "# Let G = kmol gas/(square m bed cross section).s\n",
+ "# a = specific metal surface\n",
+ "# z = depth \n",
+ "# Therefore, Na = -(diff(Ya*G))/(a*diff(z));# [kmol/((square m metal surface).s)];\n",
+ "# For each kmol of CO consumed, (1/4)kmol Ni(CO)4 forms, representing a loss of (3/4) kmol per kmol of CO consumed.\n",
+ "# The CO consumed through bed depth dz is therefore (Go-G)(4/3) kmol;\n",
+ "# Ya = (Go-(Go-G)*(4/3))/G;\n",
+ "# G = Go/(4-(3*Ya));\n",
+ "# diff(YaG) = ((4*Go)/(4-3*Ya)**2)*diff(Ya);\n",
+ "\n",
+ "# Substituting in Eqn. 3.64\n",
+ "# -(4*Go/((4-3*Ya)**2*a))*(diff(Ya)/diff(z)) = (4/3)*F*log(4/(4-3*Ya));\n",
+ "\n",
+ "# At depth z:\n",
+ "# Mass velocity of CO = (Go-(Go-G)/(4/3))*28;\n",
+ "# Mass velocity of Ni(CO)4 = ((Go-G)*(1/3))*170.7;\n",
+ "# G_prime = 47.6*Go-19.6G; # total mass velocity [kg/square m.s]\n",
+ "# Substituting G leads to:\n",
+ "# G_prime = Go*(47.6-19.6*(4-3*Ya));# [kg/m.s]\n",
+ "# Re = (Dp*G')/viscosity\n",
+ "\n",
+ "# With Go = 0.002 kmol/square m.s & Ya in the range 1-0.005, the range of Re is 292-444;\n",
+ "# From table 3.3:\n",
+ "# Jd = (F/G)*(Sc**(2/3)) = (2.06/E)*Re**(-0.575);\n",
+ "# F = (2.06/E*(Sc)**(2/3))*(Go/(4-3*Ya))*Re**(-0.575);\n",
+ "\n",
+ "a = 6*(1-E)/Dp;\n",
+ "\n",
+ "# Result after arrangement:\n",
+ "\n",
+ "X2=lambda Ya:-((4*Go)/((4-(3*Ya))**2.0*a))*(3.0/4)*(E*(Sc**(2.0/3))*(4-(3*Ya))/(2.06*Go)*(1/math.log(4.0/(4-(3*Ya)))))*(((Dp/viscosity)*(Go*(47.6-(19.6/(4.0-(3*Ya))))))**0.575);# [m]\n",
+ "Z = integrate.quad(X2,1,0.005);\n",
+ "print'The bed depth required to reduce the CO content to 0.005 is',round(Z[0],3),'m'\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.6 - Page: 77\n",
+ "\n",
+ "\n",
+ "The bed depth required to reduce the CO content to 0.005 is 0.132 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7: Page 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.7\n",
+ "# Page: 80\n",
+ "\n",
+ "print'Illustration 3.7 - Page: 80\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = water b = air\n",
+ "out_dia = 0.0254;# [m]\n",
+ "wall_thick = 0.00165;# [m]\n",
+ "avg_velocity = 4.6;# [m/s]\n",
+ "T1 = 66.0;# [C]\n",
+ "P = 1.0;# [atm]\n",
+ "Pa1 = 0.24;# [atm]\n",
+ "k1 = 11400.0;# [W/(square m.K)]\n",
+ "T2 = 24.0;# [C]\n",
+ "k2 = 570.0;# [W/square m.K]\n",
+ "k_Cu = 381.0;# [w/square m.K]\n",
+ "#******#\n",
+ "\n",
+ "# For the metal tube\n",
+ "int_dia = out_dia-(2*wall_thick);# [m]\n",
+ "avg_dia = (out_dia+int_dia)/2;# [mm]\n",
+ "Nb = 0;\n",
+ "Flux_a = 1;\n",
+ "Ya1 = 0.24;\n",
+ "Yb1 = 1-Ya1;\n",
+ "Mav = (Ya1*18.02)+(Yb1*29);# [kg/kmol]\n",
+ "density = (Mav/22.41)*(273/(273+T1));# [kg/cubic m]\n",
+ "viscosity = 1.75*10**(-5);# [kg/m.s]\n",
+ "Cpa = 1880.0;# [J/kg.K]\n",
+ "Cpmix = 1145.0;# [J/kg.K]\n",
+ "Sc = 0.6;\n",
+ "Pr = 0.75;\n",
+ "G_prime = avg_velocity*density;# [kg/square m.s]\n",
+ "G = G_prime/Mav;# [kmol/square m.s]\n",
+ "Re = avg_dia*G_prime/viscosity;\n",
+ "# From Table 3.3:\n",
+ "# Jd = Std*Sc**(2/3) = (F/G)*Sc**(2/3) = 0.023*Re**(-0.17);\n",
+ "Jd = 0.023*Re**(-0.17);\n",
+ "F = (0.023*G)*(Re**(-0.17)/Sc**(2.0/3));\n",
+ "\n",
+ "# The heat transfer coeffecient in the absence of mass transfer will be estimated through Jd = Jh\n",
+ "# Jh = Sth*Pr^(2/3) = (h/Cp*G_prime)*(Pr^(2/3)) = Jd\n",
+ "h = Jd*Cpmix*G_prime/(Pr**(2.0/3));\n",
+ "\n",
+ "U = 1/((1/k1)+((wall_thick/k_Cu)*(int_dia/avg_dia))+((1/k2)*(int_dia/out_dia)));# W/square m.K\n",
+ "\n",
+ "# Using Eqn. 3.70 & 3.71 with Nb = 0\n",
+ "# Qt = (Na*18.02*Cpa/1-exp(-(Na*18.02*Cpa/h)))*(T1-Ti)+(Lambda_a*Na);\n",
+ "# Qt = 618*(Ti-T2);\n",
+ "# Using Eqn. 3.67, with Nb = 0, Cai/C = pai, Ca1/C = Ya1 = 0.24;\n",
+ "# Na = F*log(((Flux_a)-(pai))/((Flux_a)-(Ya1));\n",
+ "\n",
+ "# Solving above three Eqn. simultaneously:\n",
+ "Ti = 42.2;# [C]\n",
+ "pai = 0.0806;# [atm]\n",
+ "Lambda_a = 43.4*10**6;# [J/kmol]\n",
+ "Na = F*log(((Flux_a)-(pai))/((Flux_a)-(Ya1)));# [kmol/square m.s]\n",
+ "Qt1 = 618*(Ti-T2);# [W/square m]\n",
+ "Qt2 = ((Na*18.02*Cpa/(1-exp(-(Na*18.02*Cpa/h))))*(T1-Ti))+(Lambda_a*Na);# [W/square m]\n",
+ "\n",
+ "# since the value of Qt1 & Qt2 are relatively close\n",
+ "print'The local rate of condensation of water is ',round(Na,6),' kmol/square m.s'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.7 - Page: 80\n",
+ "\n",
+ "\n",
+ "The local rate of condensation of water is 0.000232 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8: Page 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.8\n",
+ "# Page: 81\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 3.8 - Page: 81\\n\\n'\n",
+ "print'Illustration 3.8 (a)\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = water b = air\n",
+ "Nb = 0;\n",
+ "h = 1100.0;# [W/square m]\n",
+ "#*****#\n",
+ "\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Cpa = 2090;# [J/kg.K]\n",
+ "T1 = 600.0;# [C]\n",
+ "Ti = 260;# [C]\n",
+ "# The positive dirn. is taken to be from the bulk gas to the surface.\n",
+ "Has = 2.684*(10**6);# enthapy of saturated steam at 1.2 std atm, rel. to the liquid at 0 C in [J/kg]\n",
+ "Hai = 2.994*(10**6);# enthalpy of steam at 1 std atm, 260 C in [J/kg]\n",
+ "\n",
+ "# Radiation contributions to the heat transfer from the gas to the surface are negligible. Eqn. 3.70 reduces to\n",
+ "Na = -((h/(Ma*Cpa))*log(1-((Cpa*(T1-Ti))/(Has-Hai))));# [kmol/square m.s]\n",
+ "print'The rate of steam flow reqd. is',round(Na,4),' kmol/square m.s\\n\\n'\n",
+ "# negative sign indicates that the mass flux is into the gas\n",
+ "\n",
+ "print'Illustration 3.8 (b)\\n\\n'\n",
+ " \n",
+ "# Solution (b)\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = water b = air\n",
+ "h = 572.0;# [W/square m]\n",
+ "T1 = 25.0;# [C]\n",
+ "#******#\n",
+ "\n",
+ "Ti = 260.0;# [C]\n",
+ "# The positive dirn. is taken to be from the bulk gas to the surface.\n",
+ "Has = 1.047*10**(5);# enthapy of saturated steam at 1.2 std atm, rel. to the liquid at 0 C in [J/kg]\n",
+ "Hai = 2.994*(10**6);# enthalpy of steam at 1 std atm, 260 C in [J/kg]\n",
+ "\n",
+ "# Radiation contributions to the heat transfer from the gas to the surface are negligible. Eqn. 3.70 reduces to\n",
+ "Na = -((h/(Ma*Cpa))*math.log(1-((Cpa*(T1-Ti))/(Has-Hai))));# [kmol/square m.s]\n",
+ "print'The rate of steam flow reqd. is',round(Na,4),' kmol/square m.s'\n",
+ "# negative sign indicates that the mass flux is into \n",
+ "# the answer of part B in textbook is incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.8 - Page: 81\n",
+ "\n",
+ "\n",
+ "Illustration 3.8 (a)\n",
+ "\n",
+ "\n",
+ "The rate of steam flow reqd. is -0.0348 kmol/square m.s\n",
+ "\n",
+ "\n",
+ "Illustration 3.8 (b)\n",
+ "\n",
+ "\n",
+ "The rate of steam flow reqd. is 0.0028 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter3_1.ipynb b/Mass_-_Transfer_Operations/Chapter3_1.ipynb
new file mode 100755
index 00000000..36f53f4d
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter3_1.ipynb
@@ -0,0 +1,628 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:64d9a62e17838716bd10cd86f93be8c39dc69462337a3d3adc3d6ea158cbc575"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Mass-Transfer Coefficients"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.1:Page 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.1\n",
+ "# Page: 53\n",
+ "\n",
+ "print'Illustration 3.1 - Page: 53\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = CO2 b = H2O\n",
+ "Ca0 = 0;#[kmol/cubic m]\n",
+ "Cai = 0.0336;#[kmol/cubic m]\n",
+ "Dab = 1.96*10**(-9);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "density = 998.0;# [kg/cubic m]\n",
+ "viscosity = 8.94*10**(-4);#[kg/m.s]\n",
+ "rate = 0.05;#[kg/m.s] mass flow rate of liquid\n",
+ "L = 1;#[m]\n",
+ "g = 9.81;#[m/square s]\n",
+ "# From Eqn. 3.10\n",
+ "Del = ((3*viscosity*rate)/((density**2)*g))**(1.0/3);# [m]\n",
+ "Re = 4*rate/viscosity;\n",
+ "# Flow comes out to be laminar\n",
+ "# From Eqn. 3.19\n",
+ "Kl_avg = ((6*Dab*rate)/(3.141*density*Del*L))**(1.0/2);#[kmol/square m.s.(kmol/cubic m)]\n",
+ "bulk_avg_velocity = rate/(density*Del);#[m/s]\n",
+ "# At the top: Cai-Ca = Cai_Ca0 = Cai\n",
+ "#At the bottom: Cai-Cal\n",
+ "# From Eqn. 3.21 & 3.22\n",
+ "Cal = Cai*(1-(1.0/(exp(Kl_avg/(bulk_avg_velocity*Del)))));# [kmol/cubic m]\n",
+ "rate_absorption = bulk_avg_velocity*Del*(Cal-Ca0);# [kmol/s].(m of width)\n",
+ "print'The rate of absorption is ',round(rate_absorption,8),' kmol/sec.(m of width)'\n",
+ "# The actual value may be substantially larger."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.1 - Page: 53\n",
+ "\n",
+ "\n",
+ "The rate of absorption is 7.2e-07 kmol/sec.(m of width)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2: Page 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.2\n",
+ "# Page: 56\n",
+ "\n",
+ "print'Illustration 3.2 - Page: 56\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "d = 0.025;# [m]\n",
+ "avg_velocity = 3;# [m/s]\n",
+ "viscosity = 8.937*10**(-4);# [kg/m.s]\n",
+ "density = 997;# [kg/m**3]\n",
+ "#*********#\n",
+ "\n",
+ "kinematic_viscosity = viscosity/density;# [square m/s]\n",
+ "Re = d*avg_velocity*density/viscosity;\n",
+ "# Reynold's number comes out to be 83670\n",
+ "# At this Reynold's number fanning factor = 0.0047\n",
+ "f = 0.0047;\n",
+ "L = 1;# [m]\n",
+ "press_drop = 2*density*f*L*(avg_velocity**2)/(d);# [N/square m]\n",
+ "P = 3.141*(d**2)*avg_velocity*press_drop/4;# [N.m/s] for 1m pipe\n",
+ "m = 3.141*(d**2)*L*density/4;\n",
+ "# From Eqn. 3.24\n",
+ "Ld = ((kinematic_viscosity**3)*m/P)**(1.0/4);# [m]\n",
+ "# From Eqn. 3.25\n",
+ "Ud = (kinematic_viscosity*P/m)**(1.0/4);# [m/s]\n",
+ "print'Velocity of small eddies is',round(Ud,4),'m/s'\n",
+ "print'Length scale of small eddies is',round(Ld,7),'m'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.2 - Page: 56\n",
+ "\n",
+ "\n",
+ "Velocity of small eddies is 0.0549 m/s\n",
+ "Length scale of small eddies is 1.63e-05 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3: Page 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.3\n",
+ "# Page: 69\n",
+ "\n",
+ "print'Illustration 3.3 - Page: 69\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# Heat transfer analog to Eqn. 3.12\n",
+ "# The Eqn. remains the same with the dimensionless conc. ratio replaced by ((tl-to)/(ti-to))\n",
+ "\n",
+ "# The dimensionless group:\n",
+ "# eta = 2*Dab*L/(3*del**2*velocity);\n",
+ "# eta = (2/3)*(Dab/(del*velocity))*(L/del);\n",
+ "# Ped = Peclet no. for mass transfer\n",
+ "# eta = (2/3)*(1/Ped)*(L/del);\n",
+ "\n",
+ "# For heat transfer is replaced by\n",
+ "# Peh = Peclet no. for heat transfer\n",
+ "# eta = (2/3)*(1/Peh)*(L/del);\n",
+ "# eta = (2/3)*(alpha/(del*velocity))*(L/del);\n",
+ "# eta = (2*alpha*L)/(3*del**2*velocity);\n",
+ "print'Heat transfer analog to Eqn. 3.21 is eta = (2*alpha*L)/(3*del**2*velocity)'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.3 - Page: 69\n",
+ "\n",
+ "\n",
+ "Heat transfer analog to Eqn. 3.21 is eta = (2*alpha*L)/(3*del**2*velocity)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4: Page-69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.4\n",
+ "# Page: 69\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 3.4 - Page: 69\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = UF6 b = air\n",
+ "# The average heat transfer coefficient: Nu_avg = 0.43+0.532(Re^0.5)(Pr^0.31)\n",
+ "# The analogus expression for mass transfer coefficient: Sh_avg = 0.43+0.532(Re^0.5)(Sc^0.31)\n",
+ "d = 0.006;# [m]\n",
+ "velocity = 3.0;# [m/s]\n",
+ "surf_temp = 43.0;# [C]\n",
+ "bulk_temp = 60.0;# [C]\n",
+ "avg_temp = (surf_temp+bulk_temp)/2; #[C]\n",
+ "density = 4.10;# [kg/cubic m]\n",
+ "viscosity = 2.7*10**(-5);# [kg/m.s]\n",
+ "Dab = 9.04*10**(-6);# [square m/s]\n",
+ "press = 53.32;# [kN/square m]\n",
+ "tot_press = 101.33;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "avg_press = press/2.0; # [kN/square m]\n",
+ "Xa = avg_press/tot_press;\n",
+ "Xb = 1-Xa;\n",
+ "Re = d*velocity*density/viscosity;\n",
+ "Sc = viscosity/(density*Dab);\n",
+ "Sh_avg = 0.43+(0.532*(2733**0.5)*(0.728**0.5));\n",
+ "c = 273.2/(22.41*(273.2+avg_temp));# [kmol/cubic m]\n",
+ "F_avg = Sh_avg*c*Dab/d;#[kmol/cubic m]\n",
+ "Nb = 0.0;\n",
+ "Ca1_by_C = press/tot_press;\n",
+ "Ca2_by_C = 0.0;\n",
+ "Flux_a = 1.0;\n",
+ "# Using Eqn. 3.1\n",
+ "Na = Flux_a*F_avg*math.log((Flux_a-Ca2_by_C)/(Flux_a-Ca1_by_C));#[kmol UF6/square m.s]\n",
+ "print'Rate of sublimation is',round(Na,8),' kmol UF6/square m.s'\n",
+ "# the answer is slightly different in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.4 - Page: 69\n",
+ "\n",
+ "\n",
+ "Rate of sublimation is 0.00102088 kmol UF6/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5: Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.5\n",
+ "# Page: 73\n",
+ "\n",
+ "print'Illustration 3.5 - Page: 73\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "velocity = 15.0;# [m/s]\n",
+ "G = 21.3;# [kg/square m.s]\n",
+ "#******#\n",
+ "\n",
+ "# Since the experimental data do not include the effects of changing Prandtl number.\n",
+ "\n",
+ "# Jh = (h/(Cp*density*viscosity)) = (h/Cp*G)*(Pr^(2/3)) = Shi(Re);\n",
+ "\n",
+ "# Shi(Re) must be compatible with 21.3*(G**0.6);\n",
+ "# Let Shi(Re) = b*(Re**n);\n",
+ "# Re = (l*G)/viscosity;\n",
+ "\n",
+ "# h = (Cp*G/(Pr**(2/3)))*b*(Re**n);\n",
+ "# h = (Cp*G/(Pr**(2/3)))*b*((l*b/viscosity)**n) = 21.3*(G**0.6);\n",
+ "\n",
+ "n = 0.6-1;\n",
+ "# b = 21.3*((Pr**(2/3))/Cp)*((l/viscosity)**(-n));\n",
+ "\n",
+ "# Using data for air at 38 C & 1 std atm.\n",
+ "Cp1 = 1002;# [kJ/kg.K]\n",
+ "viscosity1 = 1.85*10**(-5);#[kg/m.s]\n",
+ "k1 = 0.0273;#[W/m.K]\n",
+ "Pr1 = (Cp1*viscosity1)/k1;\n",
+ "b_prime = 21.3*(Pr1**(2.0/3)/Cp1)*((1/viscosity1)**0.4);\n",
+ "# b = b_prime*l**(0.4);\n",
+ "# Jh = (h/(Cp*G))*Pr**(2/3) = b_prime*((l/Re)**(0.4)) = Shi(Re);\n",
+ "\n",
+ "# The heat mass transfer analogy will be used to estimate the mass transfer coefficient. (Jd = Jh)\n",
+ "\n",
+ "# Jd = (KG*Pbm*Mav*Sc**(2/3))/(density*viscosity) = Shi(Re) = b_prime*((l/Re)**0.4);\n",
+ "\n",
+ "# KG*Pbm = F = (b_prime*density*viscosity)/(Re^0.4*Mav*Sc**(2/3)) = (b_prime*(density*velocity)**0.6*(viscosity^0.4))/(Mav*Sc**(2/3));\n",
+ "\n",
+ "# For H2-H20, 38 C, 1std atm\n",
+ "viscosity2 = 9*10**(-6);# [kg/m.s]\n",
+ "density2 = 0.0794;# [kg/cubic m]\n",
+ "Dab = 7.75*10**(-5);# [square m/s]\n",
+ "Sc = viscosity2/(density2*Dab);\n",
+ "\n",
+ "# Assuming desity, Molecular weight and viscosity of the gas are essentially those of H2\n",
+ "\n",
+ "Mav = 2.02;# [kg/kmol]\n",
+ "F = (b_prime*(density2*velocity)**0.6*(viscosity2**0.4))/(Mav*Sc**(2.0/3));# [kmol/square m.s]\n",
+ "print'The required mass transfer: ',round(F,5),' kmol/square m.s'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.5 - Page: 73\n",
+ "\n",
+ "\n",
+ "The required mass transfer: 0.00525 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:Page 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.6\n",
+ "# Page: 77\n",
+ "\n",
+ "print'Illustration 3.6 - Page: 77\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy import integrate\n",
+ "import math \n",
+ "#***Data***#\n",
+ "Dp = 0.0125;# [m]\n",
+ "viscosity = 2.4*10**(-5);# [kg/m.s]\n",
+ "Sc = 2.0;\n",
+ "E = 0.3;\n",
+ "Go = (2*10**(-3))/0.1;# molar superficial mass velocity [kmol/square m.s]\n",
+ "#********#\n",
+ "\n",
+ "# a = CO b = Ni(CO)4\n",
+ "# Nb = -(Na/4);\n",
+ "Flux_a = 4.0/3;\n",
+ "Ca2_by_C = 0;# At the metal interface\n",
+ "# Ca1_by_C = Ya #mole fraction of CO in the bulk\n",
+ "\n",
+ "# Eqn. 3.1 becomes: Na = (4/3)*F*log((4/3)/((4/3)-Ya));\n",
+ "\n",
+ "# Let G = kmol gas/(square m bed cross section).s\n",
+ "# a = specific metal surface\n",
+ "# z = depth \n",
+ "# Therefore, Na = -(diff(Ya*G))/(a*diff(z));# [kmol/((square m metal surface).s)];\n",
+ "# For each kmol of CO consumed, (1/4)kmol Ni(CO)4 forms, representing a loss of (3/4) kmol per kmol of CO consumed.\n",
+ "# The CO consumed through bed depth dz is therefore (Go-G)(4/3) kmol;\n",
+ "# Ya = (Go-(Go-G)*(4/3))/G;\n",
+ "# G = Go/(4-(3*Ya));\n",
+ "# diff(YaG) = ((4*Go)/(4-3*Ya)**2)*diff(Ya);\n",
+ "\n",
+ "# Substituting in Eqn. 3.64\n",
+ "# -(4*Go/((4-3*Ya)**2*a))*(diff(Ya)/diff(z)) = (4/3)*F*log(4/(4-3*Ya));\n",
+ "\n",
+ "# At depth z:\n",
+ "# Mass velocity of CO = (Go-(Go-G)/(4/3))*28;\n",
+ "# Mass velocity of Ni(CO)4 = ((Go-G)*(1/3))*170.7;\n",
+ "# G_prime = 47.6*Go-19.6G; # total mass velocity [kg/square m.s]\n",
+ "# Substituting G leads to:\n",
+ "# G_prime = Go*(47.6-19.6*(4-3*Ya));# [kg/m.s]\n",
+ "# Re = (Dp*G')/viscosity\n",
+ "\n",
+ "# With Go = 0.002 kmol/square m.s & Ya in the range 1-0.005, the range of Re is 292-444;\n",
+ "# From table 3.3:\n",
+ "# Jd = (F/G)*(Sc**(2/3)) = (2.06/E)*Re**(-0.575);\n",
+ "# F = (2.06/E*(Sc)**(2/3))*(Go/(4-3*Ya))*Re**(-0.575);\n",
+ "\n",
+ "a = 6*(1-E)/Dp;\n",
+ "\n",
+ "# Result after arrangement:\n",
+ "\n",
+ "X2=lambda Ya:-((4*Go)/((4-(3*Ya))**2.0*a))*(3.0/4)*(E*(Sc**(2.0/3))*(4-(3*Ya))/(2.06*Go)*(1/math.log(4.0/(4-(3*Ya)))))*(((Dp/viscosity)*(Go*(47.6-(19.6/(4.0-(3*Ya))))))**0.575);# [m]\n",
+ "Z = integrate.quad(X2,1,0.005);\n",
+ "print'The bed depth required to reduce the CO content to 0.005 is',round(Z[0],3),'m'\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.6 - Page: 77\n",
+ "\n",
+ "\n",
+ "The bed depth required to reduce the CO content to 0.005 is 0.132 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7: Page 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.7\n",
+ "# Page: 80\n",
+ "\n",
+ "print'Illustration 3.7 - Page: 80\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = water b = air\n",
+ "out_dia = 0.0254;# [m]\n",
+ "wall_thick = 0.00165;# [m]\n",
+ "avg_velocity = 4.6;# [m/s]\n",
+ "T1 = 66.0;# [C]\n",
+ "P = 1.0;# [atm]\n",
+ "Pa1 = 0.24;# [atm]\n",
+ "k1 = 11400.0;# [W/(square m.K)]\n",
+ "T2 = 24.0;# [C]\n",
+ "k2 = 570.0;# [W/square m.K]\n",
+ "k_Cu = 381.0;# [w/square m.K]\n",
+ "#******#\n",
+ "\n",
+ "# For the metal tube\n",
+ "int_dia = out_dia-(2*wall_thick);# [m]\n",
+ "avg_dia = (out_dia+int_dia)/2;# [mm]\n",
+ "Nb = 0;\n",
+ "Flux_a = 1;\n",
+ "Ya1 = 0.24;\n",
+ "Yb1 = 1-Ya1;\n",
+ "Mav = (Ya1*18.02)+(Yb1*29);# [kg/kmol]\n",
+ "density = (Mav/22.41)*(273/(273+T1));# [kg/cubic m]\n",
+ "viscosity = 1.75*10**(-5);# [kg/m.s]\n",
+ "Cpa = 1880.0;# [J/kg.K]\n",
+ "Cpmix = 1145.0;# [J/kg.K]\n",
+ "Sc = 0.6;\n",
+ "Pr = 0.75;\n",
+ "G_prime = avg_velocity*density;# [kg/square m.s]\n",
+ "G = G_prime/Mav;# [kmol/square m.s]\n",
+ "Re = avg_dia*G_prime/viscosity;\n",
+ "# From Table 3.3:\n",
+ "# Jd = Std*Sc**(2/3) = (F/G)*Sc**(2/3) = 0.023*Re**(-0.17);\n",
+ "Jd = 0.023*Re**(-0.17);\n",
+ "F = (0.023*G)*(Re**(-0.17)/Sc**(2.0/3));\n",
+ "\n",
+ "# The heat transfer coeffecient in the absence of mass transfer will be estimated through Jd = Jh\n",
+ "# Jh = Sth*Pr^(2/3) = (h/Cp*G_prime)*(Pr^(2/3)) = Jd\n",
+ "h = Jd*Cpmix*G_prime/(Pr**(2.0/3));\n",
+ "\n",
+ "U = 1/((1/k1)+((wall_thick/k_Cu)*(int_dia/avg_dia))+((1/k2)*(int_dia/out_dia)));# W/square m.K\n",
+ "\n",
+ "# Using Eqn. 3.70 & 3.71 with Nb = 0\n",
+ "# Qt = (Na*18.02*Cpa/1-exp(-(Na*18.02*Cpa/h)))*(T1-Ti)+(Lambda_a*Na);\n",
+ "# Qt = 618*(Ti-T2);\n",
+ "# Using Eqn. 3.67, with Nb = 0, Cai/C = pai, Ca1/C = Ya1 = 0.24;\n",
+ "# Na = F*log(((Flux_a)-(pai))/((Flux_a)-(Ya1));\n",
+ "\n",
+ "# Solving above three Eqn. simultaneously:\n",
+ "Ti = 42.2;# [C]\n",
+ "pai = 0.0806;# [atm]\n",
+ "Lambda_a = 43.4*10**6;# [J/kmol]\n",
+ "Na = F*log(((Flux_a)-(pai))/((Flux_a)-(Ya1)));# [kmol/square m.s]\n",
+ "Qt1 = 618*(Ti-T2);# [W/square m]\n",
+ "Qt2 = ((Na*18.02*Cpa/(1-exp(-(Na*18.02*Cpa/h))))*(T1-Ti))+(Lambda_a*Na);# [W/square m]\n",
+ "\n",
+ "# since the value of Qt1 & Qt2 are relatively close\n",
+ "print'The local rate of condensation of water is ',round(Na,6),' kmol/square m.s'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.7 - Page: 80\n",
+ "\n",
+ "\n",
+ "The local rate of condensation of water is 0.000232 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8: Page 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.8\n",
+ "# Page: 81\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 3.8 - Page: 81\\n\\n'\n",
+ "print'Illustration 3.8 (a)\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = water b = air\n",
+ "Nb = 0;\n",
+ "h = 1100.0;# [W/square m]\n",
+ "#*****#\n",
+ "\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Cpa = 2090;# [J/kg.K]\n",
+ "T1 = 600.0;# [C]\n",
+ "Ti = 260;# [C]\n",
+ "# The positive dirn. is taken to be from the bulk gas to the surface.\n",
+ "Has = 2.684*(10**6);# enthapy of saturated steam at 1.2 std atm, rel. to the liquid at 0 C in [J/kg]\n",
+ "Hai = 2.994*(10**6);# enthalpy of steam at 1 std atm, 260 C in [J/kg]\n",
+ "\n",
+ "# Radiation contributions to the heat transfer from the gas to the surface are negligible. Eqn. 3.70 reduces to\n",
+ "Na = -((h/(Ma*Cpa))*log(1-((Cpa*(T1-Ti))/(Has-Hai))));# [kmol/square m.s]\n",
+ "print'The rate of steam flow reqd. is',round(Na,4),' kmol/square m.s\\n\\n'\n",
+ "# negative sign indicates that the mass flux is into the gas\n",
+ "\n",
+ "print'Illustration 3.8 (b)\\n\\n'\n",
+ " \n",
+ "# Solution (b)\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = water b = air\n",
+ "h = 572.0;# [W/square m]\n",
+ "T1 = 25.0;# [C]\n",
+ "#******#\n",
+ "\n",
+ "Ti = 260.0;# [C]\n",
+ "# The positive dirn. is taken to be from the bulk gas to the surface.\n",
+ "Has = 1.047*10**(5);# enthapy of saturated steam at 1.2 std atm, rel. to the liquid at 0 C in [J/kg]\n",
+ "Hai = 2.994*(10**6);# enthalpy of steam at 1 std atm, 260 C in [J/kg]\n",
+ "\n",
+ "# Radiation contributions to the heat transfer from the gas to the surface are negligible. Eqn. 3.70 reduces to\n",
+ "Na = -((h/(Ma*Cpa))*math.log(1-((Cpa*(T1-Ti))/(Has-Hai))));# [kmol/square m.s]\n",
+ "print'The rate of steam flow reqd. is',round(Na,4),' kmol/square m.s'\n",
+ "# negative sign indicates that the mass flux is into \n",
+ "# the answer of part B in textbook is incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.8 - Page: 81\n",
+ "\n",
+ "\n",
+ "Illustration 3.8 (a)\n",
+ "\n",
+ "\n",
+ "The rate of steam flow reqd. is -0.0348 kmol/square m.s\n",
+ "\n",
+ "\n",
+ "Illustration 3.8 (b)\n",
+ "\n",
+ "\n",
+ "The rate of steam flow reqd. is 0.0028 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter3_2.ipynb b/Mass_-_Transfer_Operations/Chapter3_2.ipynb
new file mode 100755
index 00000000..36f53f4d
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter3_2.ipynb
@@ -0,0 +1,628 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:64d9a62e17838716bd10cd86f93be8c39dc69462337a3d3adc3d6ea158cbc575"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Mass-Transfer Coefficients"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.1:Page 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.1\n",
+ "# Page: 53\n",
+ "\n",
+ "print'Illustration 3.1 - Page: 53\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = CO2 b = H2O\n",
+ "Ca0 = 0;#[kmol/cubic m]\n",
+ "Cai = 0.0336;#[kmol/cubic m]\n",
+ "Dab = 1.96*10**(-9);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "density = 998.0;# [kg/cubic m]\n",
+ "viscosity = 8.94*10**(-4);#[kg/m.s]\n",
+ "rate = 0.05;#[kg/m.s] mass flow rate of liquid\n",
+ "L = 1;#[m]\n",
+ "g = 9.81;#[m/square s]\n",
+ "# From Eqn. 3.10\n",
+ "Del = ((3*viscosity*rate)/((density**2)*g))**(1.0/3);# [m]\n",
+ "Re = 4*rate/viscosity;\n",
+ "# Flow comes out to be laminar\n",
+ "# From Eqn. 3.19\n",
+ "Kl_avg = ((6*Dab*rate)/(3.141*density*Del*L))**(1.0/2);#[kmol/square m.s.(kmol/cubic m)]\n",
+ "bulk_avg_velocity = rate/(density*Del);#[m/s]\n",
+ "# At the top: Cai-Ca = Cai_Ca0 = Cai\n",
+ "#At the bottom: Cai-Cal\n",
+ "# From Eqn. 3.21 & 3.22\n",
+ "Cal = Cai*(1-(1.0/(exp(Kl_avg/(bulk_avg_velocity*Del)))));# [kmol/cubic m]\n",
+ "rate_absorption = bulk_avg_velocity*Del*(Cal-Ca0);# [kmol/s].(m of width)\n",
+ "print'The rate of absorption is ',round(rate_absorption,8),' kmol/sec.(m of width)'\n",
+ "# The actual value may be substantially larger."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.1 - Page: 53\n",
+ "\n",
+ "\n",
+ "The rate of absorption is 7.2e-07 kmol/sec.(m of width)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2: Page 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.2\n",
+ "# Page: 56\n",
+ "\n",
+ "print'Illustration 3.2 - Page: 56\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "d = 0.025;# [m]\n",
+ "avg_velocity = 3;# [m/s]\n",
+ "viscosity = 8.937*10**(-4);# [kg/m.s]\n",
+ "density = 997;# [kg/m**3]\n",
+ "#*********#\n",
+ "\n",
+ "kinematic_viscosity = viscosity/density;# [square m/s]\n",
+ "Re = d*avg_velocity*density/viscosity;\n",
+ "# Reynold's number comes out to be 83670\n",
+ "# At this Reynold's number fanning factor = 0.0047\n",
+ "f = 0.0047;\n",
+ "L = 1;# [m]\n",
+ "press_drop = 2*density*f*L*(avg_velocity**2)/(d);# [N/square m]\n",
+ "P = 3.141*(d**2)*avg_velocity*press_drop/4;# [N.m/s] for 1m pipe\n",
+ "m = 3.141*(d**2)*L*density/4;\n",
+ "# From Eqn. 3.24\n",
+ "Ld = ((kinematic_viscosity**3)*m/P)**(1.0/4);# [m]\n",
+ "# From Eqn. 3.25\n",
+ "Ud = (kinematic_viscosity*P/m)**(1.0/4);# [m/s]\n",
+ "print'Velocity of small eddies is',round(Ud,4),'m/s'\n",
+ "print'Length scale of small eddies is',round(Ld,7),'m'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.2 - Page: 56\n",
+ "\n",
+ "\n",
+ "Velocity of small eddies is 0.0549 m/s\n",
+ "Length scale of small eddies is 1.63e-05 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3: Page 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.3\n",
+ "# Page: 69\n",
+ "\n",
+ "print'Illustration 3.3 - Page: 69\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# Heat transfer analog to Eqn. 3.12\n",
+ "# The Eqn. remains the same with the dimensionless conc. ratio replaced by ((tl-to)/(ti-to))\n",
+ "\n",
+ "# The dimensionless group:\n",
+ "# eta = 2*Dab*L/(3*del**2*velocity);\n",
+ "# eta = (2/3)*(Dab/(del*velocity))*(L/del);\n",
+ "# Ped = Peclet no. for mass transfer\n",
+ "# eta = (2/3)*(1/Ped)*(L/del);\n",
+ "\n",
+ "# For heat transfer is replaced by\n",
+ "# Peh = Peclet no. for heat transfer\n",
+ "# eta = (2/3)*(1/Peh)*(L/del);\n",
+ "# eta = (2/3)*(alpha/(del*velocity))*(L/del);\n",
+ "# eta = (2*alpha*L)/(3*del**2*velocity);\n",
+ "print'Heat transfer analog to Eqn. 3.21 is eta = (2*alpha*L)/(3*del**2*velocity)'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.3 - Page: 69\n",
+ "\n",
+ "\n",
+ "Heat transfer analog to Eqn. 3.21 is eta = (2*alpha*L)/(3*del**2*velocity)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4: Page-69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.4\n",
+ "# Page: 69\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 3.4 - Page: 69\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = UF6 b = air\n",
+ "# The average heat transfer coefficient: Nu_avg = 0.43+0.532(Re^0.5)(Pr^0.31)\n",
+ "# The analogus expression for mass transfer coefficient: Sh_avg = 0.43+0.532(Re^0.5)(Sc^0.31)\n",
+ "d = 0.006;# [m]\n",
+ "velocity = 3.0;# [m/s]\n",
+ "surf_temp = 43.0;# [C]\n",
+ "bulk_temp = 60.0;# [C]\n",
+ "avg_temp = (surf_temp+bulk_temp)/2; #[C]\n",
+ "density = 4.10;# [kg/cubic m]\n",
+ "viscosity = 2.7*10**(-5);# [kg/m.s]\n",
+ "Dab = 9.04*10**(-6);# [square m/s]\n",
+ "press = 53.32;# [kN/square m]\n",
+ "tot_press = 101.33;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "avg_press = press/2.0; # [kN/square m]\n",
+ "Xa = avg_press/tot_press;\n",
+ "Xb = 1-Xa;\n",
+ "Re = d*velocity*density/viscosity;\n",
+ "Sc = viscosity/(density*Dab);\n",
+ "Sh_avg = 0.43+(0.532*(2733**0.5)*(0.728**0.5));\n",
+ "c = 273.2/(22.41*(273.2+avg_temp));# [kmol/cubic m]\n",
+ "F_avg = Sh_avg*c*Dab/d;#[kmol/cubic m]\n",
+ "Nb = 0.0;\n",
+ "Ca1_by_C = press/tot_press;\n",
+ "Ca2_by_C = 0.0;\n",
+ "Flux_a = 1.0;\n",
+ "# Using Eqn. 3.1\n",
+ "Na = Flux_a*F_avg*math.log((Flux_a-Ca2_by_C)/(Flux_a-Ca1_by_C));#[kmol UF6/square m.s]\n",
+ "print'Rate of sublimation is',round(Na,8),' kmol UF6/square m.s'\n",
+ "# the answer is slightly different in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.4 - Page: 69\n",
+ "\n",
+ "\n",
+ "Rate of sublimation is 0.00102088 kmol UF6/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5: Page 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.5\n",
+ "# Page: 73\n",
+ "\n",
+ "print'Illustration 3.5 - Page: 73\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "velocity = 15.0;# [m/s]\n",
+ "G = 21.3;# [kg/square m.s]\n",
+ "#******#\n",
+ "\n",
+ "# Since the experimental data do not include the effects of changing Prandtl number.\n",
+ "\n",
+ "# Jh = (h/(Cp*density*viscosity)) = (h/Cp*G)*(Pr^(2/3)) = Shi(Re);\n",
+ "\n",
+ "# Shi(Re) must be compatible with 21.3*(G**0.6);\n",
+ "# Let Shi(Re) = b*(Re**n);\n",
+ "# Re = (l*G)/viscosity;\n",
+ "\n",
+ "# h = (Cp*G/(Pr**(2/3)))*b*(Re**n);\n",
+ "# h = (Cp*G/(Pr**(2/3)))*b*((l*b/viscosity)**n) = 21.3*(G**0.6);\n",
+ "\n",
+ "n = 0.6-1;\n",
+ "# b = 21.3*((Pr**(2/3))/Cp)*((l/viscosity)**(-n));\n",
+ "\n",
+ "# Using data for air at 38 C & 1 std atm.\n",
+ "Cp1 = 1002;# [kJ/kg.K]\n",
+ "viscosity1 = 1.85*10**(-5);#[kg/m.s]\n",
+ "k1 = 0.0273;#[W/m.K]\n",
+ "Pr1 = (Cp1*viscosity1)/k1;\n",
+ "b_prime = 21.3*(Pr1**(2.0/3)/Cp1)*((1/viscosity1)**0.4);\n",
+ "# b = b_prime*l**(0.4);\n",
+ "# Jh = (h/(Cp*G))*Pr**(2/3) = b_prime*((l/Re)**(0.4)) = Shi(Re);\n",
+ "\n",
+ "# The heat mass transfer analogy will be used to estimate the mass transfer coefficient. (Jd = Jh)\n",
+ "\n",
+ "# Jd = (KG*Pbm*Mav*Sc**(2/3))/(density*viscosity) = Shi(Re) = b_prime*((l/Re)**0.4);\n",
+ "\n",
+ "# KG*Pbm = F = (b_prime*density*viscosity)/(Re^0.4*Mav*Sc**(2/3)) = (b_prime*(density*velocity)**0.6*(viscosity^0.4))/(Mav*Sc**(2/3));\n",
+ "\n",
+ "# For H2-H20, 38 C, 1std atm\n",
+ "viscosity2 = 9*10**(-6);# [kg/m.s]\n",
+ "density2 = 0.0794;# [kg/cubic m]\n",
+ "Dab = 7.75*10**(-5);# [square m/s]\n",
+ "Sc = viscosity2/(density2*Dab);\n",
+ "\n",
+ "# Assuming desity, Molecular weight and viscosity of the gas are essentially those of H2\n",
+ "\n",
+ "Mav = 2.02;# [kg/kmol]\n",
+ "F = (b_prime*(density2*velocity)**0.6*(viscosity2**0.4))/(Mav*Sc**(2.0/3));# [kmol/square m.s]\n",
+ "print'The required mass transfer: ',round(F,5),' kmol/square m.s'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.5 - Page: 73\n",
+ "\n",
+ "\n",
+ "The required mass transfer: 0.00525 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:Page 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.6\n",
+ "# Page: 77\n",
+ "\n",
+ "print'Illustration 3.6 - Page: 77\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy import integrate\n",
+ "import math \n",
+ "#***Data***#\n",
+ "Dp = 0.0125;# [m]\n",
+ "viscosity = 2.4*10**(-5);# [kg/m.s]\n",
+ "Sc = 2.0;\n",
+ "E = 0.3;\n",
+ "Go = (2*10**(-3))/0.1;# molar superficial mass velocity [kmol/square m.s]\n",
+ "#********#\n",
+ "\n",
+ "# a = CO b = Ni(CO)4\n",
+ "# Nb = -(Na/4);\n",
+ "Flux_a = 4.0/3;\n",
+ "Ca2_by_C = 0;# At the metal interface\n",
+ "# Ca1_by_C = Ya #mole fraction of CO in the bulk\n",
+ "\n",
+ "# Eqn. 3.1 becomes: Na = (4/3)*F*log((4/3)/((4/3)-Ya));\n",
+ "\n",
+ "# Let G = kmol gas/(square m bed cross section).s\n",
+ "# a = specific metal surface\n",
+ "# z = depth \n",
+ "# Therefore, Na = -(diff(Ya*G))/(a*diff(z));# [kmol/((square m metal surface).s)];\n",
+ "# For each kmol of CO consumed, (1/4)kmol Ni(CO)4 forms, representing a loss of (3/4) kmol per kmol of CO consumed.\n",
+ "# The CO consumed through bed depth dz is therefore (Go-G)(4/3) kmol;\n",
+ "# Ya = (Go-(Go-G)*(4/3))/G;\n",
+ "# G = Go/(4-(3*Ya));\n",
+ "# diff(YaG) = ((4*Go)/(4-3*Ya)**2)*diff(Ya);\n",
+ "\n",
+ "# Substituting in Eqn. 3.64\n",
+ "# -(4*Go/((4-3*Ya)**2*a))*(diff(Ya)/diff(z)) = (4/3)*F*log(4/(4-3*Ya));\n",
+ "\n",
+ "# At depth z:\n",
+ "# Mass velocity of CO = (Go-(Go-G)/(4/3))*28;\n",
+ "# Mass velocity of Ni(CO)4 = ((Go-G)*(1/3))*170.7;\n",
+ "# G_prime = 47.6*Go-19.6G; # total mass velocity [kg/square m.s]\n",
+ "# Substituting G leads to:\n",
+ "# G_prime = Go*(47.6-19.6*(4-3*Ya));# [kg/m.s]\n",
+ "# Re = (Dp*G')/viscosity\n",
+ "\n",
+ "# With Go = 0.002 kmol/square m.s & Ya in the range 1-0.005, the range of Re is 292-444;\n",
+ "# From table 3.3:\n",
+ "# Jd = (F/G)*(Sc**(2/3)) = (2.06/E)*Re**(-0.575);\n",
+ "# F = (2.06/E*(Sc)**(2/3))*(Go/(4-3*Ya))*Re**(-0.575);\n",
+ "\n",
+ "a = 6*(1-E)/Dp;\n",
+ "\n",
+ "# Result after arrangement:\n",
+ "\n",
+ "X2=lambda Ya:-((4*Go)/((4-(3*Ya))**2.0*a))*(3.0/4)*(E*(Sc**(2.0/3))*(4-(3*Ya))/(2.06*Go)*(1/math.log(4.0/(4-(3*Ya)))))*(((Dp/viscosity)*(Go*(47.6-(19.6/(4.0-(3*Ya))))))**0.575);# [m]\n",
+ "Z = integrate.quad(X2,1,0.005);\n",
+ "print'The bed depth required to reduce the CO content to 0.005 is',round(Z[0],3),'m'\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.6 - Page: 77\n",
+ "\n",
+ "\n",
+ "The bed depth required to reduce the CO content to 0.005 is 0.132 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7: Page 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.7\n",
+ "# Page: 80\n",
+ "\n",
+ "print'Illustration 3.7 - Page: 80\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = water b = air\n",
+ "out_dia = 0.0254;# [m]\n",
+ "wall_thick = 0.00165;# [m]\n",
+ "avg_velocity = 4.6;# [m/s]\n",
+ "T1 = 66.0;# [C]\n",
+ "P = 1.0;# [atm]\n",
+ "Pa1 = 0.24;# [atm]\n",
+ "k1 = 11400.0;# [W/(square m.K)]\n",
+ "T2 = 24.0;# [C]\n",
+ "k2 = 570.0;# [W/square m.K]\n",
+ "k_Cu = 381.0;# [w/square m.K]\n",
+ "#******#\n",
+ "\n",
+ "# For the metal tube\n",
+ "int_dia = out_dia-(2*wall_thick);# [m]\n",
+ "avg_dia = (out_dia+int_dia)/2;# [mm]\n",
+ "Nb = 0;\n",
+ "Flux_a = 1;\n",
+ "Ya1 = 0.24;\n",
+ "Yb1 = 1-Ya1;\n",
+ "Mav = (Ya1*18.02)+(Yb1*29);# [kg/kmol]\n",
+ "density = (Mav/22.41)*(273/(273+T1));# [kg/cubic m]\n",
+ "viscosity = 1.75*10**(-5);# [kg/m.s]\n",
+ "Cpa = 1880.0;# [J/kg.K]\n",
+ "Cpmix = 1145.0;# [J/kg.K]\n",
+ "Sc = 0.6;\n",
+ "Pr = 0.75;\n",
+ "G_prime = avg_velocity*density;# [kg/square m.s]\n",
+ "G = G_prime/Mav;# [kmol/square m.s]\n",
+ "Re = avg_dia*G_prime/viscosity;\n",
+ "# From Table 3.3:\n",
+ "# Jd = Std*Sc**(2/3) = (F/G)*Sc**(2/3) = 0.023*Re**(-0.17);\n",
+ "Jd = 0.023*Re**(-0.17);\n",
+ "F = (0.023*G)*(Re**(-0.17)/Sc**(2.0/3));\n",
+ "\n",
+ "# The heat transfer coeffecient in the absence of mass transfer will be estimated through Jd = Jh\n",
+ "# Jh = Sth*Pr^(2/3) = (h/Cp*G_prime)*(Pr^(2/3)) = Jd\n",
+ "h = Jd*Cpmix*G_prime/(Pr**(2.0/3));\n",
+ "\n",
+ "U = 1/((1/k1)+((wall_thick/k_Cu)*(int_dia/avg_dia))+((1/k2)*(int_dia/out_dia)));# W/square m.K\n",
+ "\n",
+ "# Using Eqn. 3.70 & 3.71 with Nb = 0\n",
+ "# Qt = (Na*18.02*Cpa/1-exp(-(Na*18.02*Cpa/h)))*(T1-Ti)+(Lambda_a*Na);\n",
+ "# Qt = 618*(Ti-T2);\n",
+ "# Using Eqn. 3.67, with Nb = 0, Cai/C = pai, Ca1/C = Ya1 = 0.24;\n",
+ "# Na = F*log(((Flux_a)-(pai))/((Flux_a)-(Ya1));\n",
+ "\n",
+ "# Solving above three Eqn. simultaneously:\n",
+ "Ti = 42.2;# [C]\n",
+ "pai = 0.0806;# [atm]\n",
+ "Lambda_a = 43.4*10**6;# [J/kmol]\n",
+ "Na = F*log(((Flux_a)-(pai))/((Flux_a)-(Ya1)));# [kmol/square m.s]\n",
+ "Qt1 = 618*(Ti-T2);# [W/square m]\n",
+ "Qt2 = ((Na*18.02*Cpa/(1-exp(-(Na*18.02*Cpa/h))))*(T1-Ti))+(Lambda_a*Na);# [W/square m]\n",
+ "\n",
+ "# since the value of Qt1 & Qt2 are relatively close\n",
+ "print'The local rate of condensation of water is ',round(Na,6),' kmol/square m.s'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.7 - Page: 80\n",
+ "\n",
+ "\n",
+ "The local rate of condensation of water is 0.000232 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8: Page 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 3.8\n",
+ "# Page: 81\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 3.8 - Page: 81\\n\\n'\n",
+ "print'Illustration 3.8 (a)\\n\\n'\n",
+ "\n",
+ "# Solution (a)\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = water b = air\n",
+ "Nb = 0;\n",
+ "h = 1100.0;# [W/square m]\n",
+ "#*****#\n",
+ "\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Cpa = 2090;# [J/kg.K]\n",
+ "T1 = 600.0;# [C]\n",
+ "Ti = 260;# [C]\n",
+ "# The positive dirn. is taken to be from the bulk gas to the surface.\n",
+ "Has = 2.684*(10**6);# enthapy of saturated steam at 1.2 std atm, rel. to the liquid at 0 C in [J/kg]\n",
+ "Hai = 2.994*(10**6);# enthalpy of steam at 1 std atm, 260 C in [J/kg]\n",
+ "\n",
+ "# Radiation contributions to the heat transfer from the gas to the surface are negligible. Eqn. 3.70 reduces to\n",
+ "Na = -((h/(Ma*Cpa))*log(1-((Cpa*(T1-Ti))/(Has-Hai))));# [kmol/square m.s]\n",
+ "print'The rate of steam flow reqd. is',round(Na,4),' kmol/square m.s\\n\\n'\n",
+ "# negative sign indicates that the mass flux is into the gas\n",
+ "\n",
+ "print'Illustration 3.8 (b)\\n\\n'\n",
+ " \n",
+ "# Solution (b)\n",
+ "\n",
+ "#***Data****#\n",
+ "# a = water b = air\n",
+ "h = 572.0;# [W/square m]\n",
+ "T1 = 25.0;# [C]\n",
+ "#******#\n",
+ "\n",
+ "Ti = 260.0;# [C]\n",
+ "# The positive dirn. is taken to be from the bulk gas to the surface.\n",
+ "Has = 1.047*10**(5);# enthapy of saturated steam at 1.2 std atm, rel. to the liquid at 0 C in [J/kg]\n",
+ "Hai = 2.994*(10**6);# enthalpy of steam at 1 std atm, 260 C in [J/kg]\n",
+ "\n",
+ "# Radiation contributions to the heat transfer from the gas to the surface are negligible. Eqn. 3.70 reduces to\n",
+ "Na = -((h/(Ma*Cpa))*math.log(1-((Cpa*(T1-Ti))/(Has-Hai))));# [kmol/square m.s]\n",
+ "print'The rate of steam flow reqd. is',round(Na,4),' kmol/square m.s'\n",
+ "# negative sign indicates that the mass flux is into \n",
+ "# the answer of part B in textbook is incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 3.8 - Page: 81\n",
+ "\n",
+ "\n",
+ "Illustration 3.8 (a)\n",
+ "\n",
+ "\n",
+ "The rate of steam flow reqd. is -0.0348 kmol/square m.s\n",
+ "\n",
+ "\n",
+ "Illustration 3.8 (b)\n",
+ "\n",
+ "\n",
+ "The rate of steam flow reqd. is 0.0028 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter4.ipynb b/Mass_-_Transfer_Operations/Chapter4.ipynb
new file mode 100755
index 00000000..73fd7beb
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter4.ipynb
@@ -0,0 +1,471 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c24c5f13f06ad2e35494c2ba2e22ba1351ce2de7d258eb50313205ed297dec4a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Diffusion In Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1: Page 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.1\n",
+ "# Page: 89\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 4.1 - Page: 89\\n\\n'\n",
+ " \n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "P = 2;# [atm]\n",
+ "a1 = 0.025;# [m]\n",
+ "a2 = 0.050;# [m]\n",
+ "solub = 0.053*P;# [cubic m H2 (STP)/(cubic m rubber)]\n",
+ "Ca1 = solub/22.41;# inner surface of the pipe\n",
+ "Ca2 = 0;# resistance to difusion of H2 away from the surface is negligible.\n",
+ "Da = 1.8*10**(-10);# [square m/s]\n",
+ "l = 1;# [m]\n",
+ "#********#\n",
+ "\n",
+ "z = (a2-a1)/2;# [m]\n",
+ "# Using Eqn. 4.4\n",
+ "Sav = (2*(math.pi)*l*(a2-a1))/(2*math.log(a2/a1));# [square m]\n",
+ "# Using Eqn. 4.3\n",
+ "w = (Da*Sav*(Ca1-Ca2))/z;# [kmol H2/s for 1m length]\n",
+ "w = w*2.02*10**3*3600;# [g H2/m.h]\n",
+ "print'The rate of loss of H2 by diffusion per m of pipe length:',round(w,6),' g H2/m.h'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.1 - Page: 89\n",
+ "\n",
+ "\n",
+ "The rate of loss of H2 by diffusion per m of pipe length: 5.6e-05 g H2/m.h\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2: Page 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.2\n",
+ "# Page: 92\n",
+ "\n",
+ "print'Illustration 4.2 - Page: 92\\n\\n'\n",
+ "print'Illustration 4.2 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "# Given\n",
+ "a = 3.0/2;# [cm]\n",
+ "thetha = 68*3600;# [s]\n",
+ "# Ca can e calculated in terms of g/100 cubic cm\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 3.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#**********#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.6;\n",
+ "# From Fig. 4.2 (Pg 91): For diffusion from only one exposed surface D*thetha/(4*a^2) = 0.128\n",
+ "D = 0.128*4*(a**2)/thetha;# [square cm/s]\n",
+ "D = D*10**(-4);# [square m/s]\n",
+ "print'Diffusivity of urea in gel from only one exposed durface:',round(D,12),'square m/s\\n\\n'\n",
+ "\n",
+ "print'Illustration 4.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "#****Data****#\n",
+ "# Ca can e calculated in terms of g/100 cubic cm\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 1.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#*********#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.2;\n",
+ "# From Fig. 4.2 (Pg 91): For diffusion from only one exposed surface D*thetha/(4*a**2) = 0.568\n",
+ "D = 4.70*10**(-6);# From Illusration 4.2(a) [square cm/s]\n",
+ "thetha = 0.568*4*a**2/D;# [s]\n",
+ "thetha = thetha/3600.0;# [h]\n",
+ "print'The time taken for the avg. conc. to fall to 1g/100 cubic cm is:',round(thetha),' hours'\n",
+ "\n",
+ "print'Illustration 4.2 (c)\\n\\n'\n",
+ "\n",
+ "# solution (c)\n",
+ "\n",
+ "#****Data*****#\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 1.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#*******#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.2;\n",
+ "# From Fig. 4.2: For diffusion from two opposite exposed surface D*thetha/(a**2) = 0.568\n",
+ "D = 4.70*10**(-6);# From Illusration 4.2(a) [square cm/s]\n",
+ "thetha = 0.568*(a**2)/D;# [s]\n",
+ "thetha = thetha/3600.0;# [h]\n",
+ "print'The time taken for the avg. conc. to fall to 1g/100 cubic cm when two faces opposed is:',int(thetha),' hours'\n",
+ "# the solution in the textbook is wrong due to approximation\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.2 - Page: 92\n",
+ "\n",
+ "\n",
+ "Illustration 4.2 (a)\n",
+ "\n",
+ "\n",
+ "Diffusivity of urea in gel from only one exposed durface: 4.71e-10 square m/s\n",
+ "\n",
+ "\n",
+ "Illustration 4.2 (b)\n",
+ "\n",
+ "\n",
+ "The time taken for the avg. conc. to fall to 1g/100 cubic cm is: 302.0 hours\n",
+ "Illustration 4.2 (c)\n",
+ "\n",
+ "\n",
+ "The time taken for the avg. conc. to fall to 1g/100 cubic cm when two faces opposed is: 75 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3: Page 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.3\n",
+ "# Page: 94\n",
+ "\n",
+ "print'Illustration 4.3 - Page: 94\\n\\n'\n",
+ "\n",
+ "# solution \n",
+ "\n",
+ "#****Data****#\n",
+ "z = 0.1;# [cm]\n",
+ "pa1 = 1;# [cmHg]\n",
+ "pa2 = 0;# [cmHg]\n",
+ "Da = 1.1*10**(-10)*10**4;# [square cm/s]\n",
+ "#***********#\n",
+ "\n",
+ "# Solubility coeffecient in terms of Hg\n",
+ "Sa = 0.90/76;# [cubic cm gas (STP)/cubic cm.cmHg]\n",
+ "# Using Eqn. 4.15\n",
+ "Va = (Da*Sa*(pa1-pa2))/z;# [cubic cm(STP)/square cm.s]\n",
+ "# Using Eqn. 4.16\n",
+ "P = Da*Sa;# [cubic cm gas (STP)/square cm.s.(cmHg/cm)]\n",
+ "print'The rate of diffusion of CO is:',round(Va,8),'cubic cm(STP)/square cm.s'\n",
+ "print'The permeability of the membrane is',round(P,9),'cubic cm gas (STP)/square cm.s.(cmHg/cm)'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.3 - Page: 94\n",
+ "\n",
+ "\n",
+ "The rate of diffusion of CO is: 1.3e-07 cubic cm(STP)/square cm.s\n",
+ "The permeability of the membrane is 1.3e-08 cubic cm gas (STP)/square cm.s.(cmHg/cm)\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4: Page 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " \n",
+ "\n",
+ "# Illustration 4.4\n",
+ "# Page: 96\n",
+ "\n",
+ "print'Illustration 4.4 - Page: 96\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "a = 0.005;# [m]\n",
+ "# For the KCl diffusion\n",
+ "Dab1 = 1.84*10**(-9);# [square m/s]\n",
+ "thetha = 4.75*3600;# [s]\n",
+ "Ca_Inf = 0;\n",
+ "# For K2CrO4 diffusion\n",
+ "Cao = 0.28;# [g/cubic cm]\n",
+ "Ca_Inf = 0.002;# [g/cubic cm]\n",
+ "Dab2 = 1.14*10**(-9);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "E = 0.1;# For 90% removal of KCl\n",
+ "# From Fig. 4.2 (Pg 91): Deff*thetha/a^2 = 0.18\n",
+ "Deff = 0.18*a**2/thetha;# [square m/s]\n",
+ "Dab_by_Deff = Dab1/Deff;\n",
+ "Ca_thetha = 0.1*0.28;# [g/cubic cm]\n",
+ "Es = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# From Fig. 4.2 (Pg 91): Deff*thetha/a^2 = 0.30\n",
+ "Deff = Dab2/Dab_by_Deff;# [square m/s]\n",
+ "thetha = 0.3*a**2/Deff;# [s]\n",
+ "thetha = thetha/3600;# [h]\n",
+ "print'The time reqd. is:',round(thetha,3),'hours'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.4 - Page: 96\n",
+ "\n",
+ "\n",
+ "The time reqd. is: 12.778 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.5: Page 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.5\n",
+ "# Page: 98\n",
+ "import math \n",
+ "\n",
+ "print'Illustration 4.5 - Page: 98\\n\\n'\n",
+ "print'Illustration 4.5 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = H2 b = N2\n",
+ "Dab_eff = 5.3*10**(-6);# [square m/s]\n",
+ "Dkb_eff = 1.17*10**(-5);# [square m/s]\n",
+ "Dab = 7.63*10**(-5);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "R = 8314;#[Nm/kmol]\n",
+ "Mb = 2.02;# [kg/kmol]\n",
+ "T = 293;# [K]\n",
+ "Dtrue_by_Deff = Dab/Dab_eff;\n",
+ "# Since the ratio is strictly a matter of the geometry of the solid.\n",
+ "Dkb = Dkb_eff*Dtrue_by_Deff;# [square m/s]\n",
+ "# From Eqn. 4.20\n",
+ "d = 3*Dkb*((math.pi*Mb)/(8*R*T))**0.5;# [m]\n",
+ "print'The equivalent pore diameter is: ',round(d,9),' m\\n\\n'\n",
+ "\n",
+ "print'Illustration 4.5 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = O2 b = N2 c = H2\n",
+ "Ya1 = 0.8;\n",
+ "Ya2 = 0.2;\n",
+ "Pt = 10133;# [N/square m]\n",
+ "z = 0.002;# [m]\n",
+ "T = 293;# [K]\n",
+ "#*******#\n",
+ "\n",
+ "# From Table 2.1 (Pg 31):\n",
+ "Dab = 1.81*10**(-5);# [square m/s] at STP\n",
+ "Dkc = 1.684*10**(-4);# [square m/s] From Illustration 4.5(a)\n",
+ "Mc = 2.02;# [kg/kmol]\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 28.02;# [kg/kmol]\n",
+ "Dab = Dab*(1/0.1)*((293/273)**1.5);# [square m/s] at 0.1 atm & 20 C\n",
+ "DabEff = Dab/14.4;# [square m/s] From Illustration 4.5(a)\n",
+ "Dka = Dkc*((Mc/Ma)**0.5);# [square m/s]\n",
+ "DkaEff = Dka/14.4;# [square m/s]\n",
+ "Nb_by_Na = -(Ma/Mb)**0.5;\n",
+ "# Na/(Na+Nb) = 1.0/(1+(Nb/Na))\n",
+ "Na_by_NaSumNb = 1.0/(1+(Nb_by_Na));\n",
+ "DabEff_by_DkaEff = DabEff/DkaEff;\n",
+ "# By Eqn. 4.23\n",
+ "Na = (Na_by_NaSumNb)*(DabEff*Pt/(R*T*z))*log((((Na_by_NaSumNb)*(1+DabEff_by_DkaEff))-Ya2)/(((Na_by_NaSumNb)*(1+DabEff_by_DkaEff))-Ya1));# [kmol/square m.s]\n",
+ "Nb = Na*(Nb_by_Na);# [kmol/square m.s]\n",
+ "print\"Diffusion flux of O2 is \",round(Na,8),\" kmol/square m.s\\n\"\n",
+ "print\"Diffusion flux of N2 is \",round(Nb,8),\" kmol/square m.s\\n\"\n",
+ "#the answer in textbook is slightly different due to approximation while here calculation is precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.5 - Page: 98\n",
+ "\n",
+ "\n",
+ "Illustration 4.5 (a)\n",
+ "\n",
+ "\n",
+ "The equivalent pore diameter is: 2.88e-07 m\n",
+ "\n",
+ "\n",
+ "Illustration 4.5 (b)\n",
+ "\n",
+ "\n",
+ "Diffusion flux of O2 is 2.95e-06 kmol/square m.s\n",
+ "\n",
+ "Diffusion flux of N2 is -3.16e-06 kmol/square m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6: Page 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.6\n",
+ "# Page: 100\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 4.6 - Page: 100\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = N2\n",
+ "# For N2 at 300K\n",
+ "viscosity1 = 1.8*10**(-5);# [kg/m.s]\n",
+ "Pt1 = 10133.0;# [N/square m.sec]\n",
+ "T = 300;# [K]\n",
+ "z = 0.0254;# [m]\n",
+ "T2 = 393.0;# [K]\n",
+ "#***********#\n",
+ "\n",
+ "Ma = 28.02;# [kg/kmol]\n",
+ "R = 8314.0;# [J/K.kgmol]\n",
+ "#From Eqn 4.22\n",
+ "Lambda = (3.2*viscosity1/Pt1)*(R*T/(2*(math.pi)*Ma))**0.5;\n",
+ "d = 10**(-4);# [m]\n",
+ "d_by_lambda = d/Lambda;\n",
+ "# Kundsen flow will not occur\n",
+ "# N2 flow corresponding to 9 cubic ft/square ft.min at 300K & 1 std atm = 0.0457 cubic m/square m.min\n",
+ "Na1 = 0.0457*(273.0/T)*(1/22.41);# [kmol/square m.s]\n",
+ "Pt1_diff_Pt2 = 2*3386/13.6;# [N/square m]\n",
+ "Ptav = Pt1+(Pt1_diff_Pt2/2.0);# [N/square m]\n",
+ "# From Eqn. 4.26\n",
+ "k1 = Na1*R*T*z/(Ptav*(Pt1_diff_Pt2));# [m**4/N.s]\n",
+ "\n",
+ "#For N2 at 393K\n",
+ "viscosity2 = 2.2*10**(-5);# [kg/m.s]\n",
+ "k2 = (k1*viscosity1)/(viscosity2);# [m^4/N.s]\n",
+ "# From Eqn 4.26\n",
+ "Na = (k2*Ptav*Pt1_diff_Pt2)/(R*T2*z);# [kmol/square m.s]\n",
+ "print\"Flow rate to be expected is\",round(Na,6),\" kmol/square m.s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.6 - Page: 100\n",
+ "\n",
+ "\n",
+ "Flow rate to be expected is 0.001159 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter4_1.ipynb b/Mass_-_Transfer_Operations/Chapter4_1.ipynb
new file mode 100755
index 00000000..73fd7beb
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter4_1.ipynb
@@ -0,0 +1,471 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c24c5f13f06ad2e35494c2ba2e22ba1351ce2de7d258eb50313205ed297dec4a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Diffusion In Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1: Page 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.1\n",
+ "# Page: 89\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 4.1 - Page: 89\\n\\n'\n",
+ " \n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "P = 2;# [atm]\n",
+ "a1 = 0.025;# [m]\n",
+ "a2 = 0.050;# [m]\n",
+ "solub = 0.053*P;# [cubic m H2 (STP)/(cubic m rubber)]\n",
+ "Ca1 = solub/22.41;# inner surface of the pipe\n",
+ "Ca2 = 0;# resistance to difusion of H2 away from the surface is negligible.\n",
+ "Da = 1.8*10**(-10);# [square m/s]\n",
+ "l = 1;# [m]\n",
+ "#********#\n",
+ "\n",
+ "z = (a2-a1)/2;# [m]\n",
+ "# Using Eqn. 4.4\n",
+ "Sav = (2*(math.pi)*l*(a2-a1))/(2*math.log(a2/a1));# [square m]\n",
+ "# Using Eqn. 4.3\n",
+ "w = (Da*Sav*(Ca1-Ca2))/z;# [kmol H2/s for 1m length]\n",
+ "w = w*2.02*10**3*3600;# [g H2/m.h]\n",
+ "print'The rate of loss of H2 by diffusion per m of pipe length:',round(w,6),' g H2/m.h'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.1 - Page: 89\n",
+ "\n",
+ "\n",
+ "The rate of loss of H2 by diffusion per m of pipe length: 5.6e-05 g H2/m.h\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2: Page 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.2\n",
+ "# Page: 92\n",
+ "\n",
+ "print'Illustration 4.2 - Page: 92\\n\\n'\n",
+ "print'Illustration 4.2 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "# Given\n",
+ "a = 3.0/2;# [cm]\n",
+ "thetha = 68*3600;# [s]\n",
+ "# Ca can e calculated in terms of g/100 cubic cm\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 3.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#**********#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.6;\n",
+ "# From Fig. 4.2 (Pg 91): For diffusion from only one exposed surface D*thetha/(4*a^2) = 0.128\n",
+ "D = 0.128*4*(a**2)/thetha;# [square cm/s]\n",
+ "D = D*10**(-4);# [square m/s]\n",
+ "print'Diffusivity of urea in gel from only one exposed durface:',round(D,12),'square m/s\\n\\n'\n",
+ "\n",
+ "print'Illustration 4.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "#****Data****#\n",
+ "# Ca can e calculated in terms of g/100 cubic cm\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 1.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#*********#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.2;\n",
+ "# From Fig. 4.2 (Pg 91): For diffusion from only one exposed surface D*thetha/(4*a**2) = 0.568\n",
+ "D = 4.70*10**(-6);# From Illusration 4.2(a) [square cm/s]\n",
+ "thetha = 0.568*4*a**2/D;# [s]\n",
+ "thetha = thetha/3600.0;# [h]\n",
+ "print'The time taken for the avg. conc. to fall to 1g/100 cubic cm is:',round(thetha),' hours'\n",
+ "\n",
+ "print'Illustration 4.2 (c)\\n\\n'\n",
+ "\n",
+ "# solution (c)\n",
+ "\n",
+ "#****Data*****#\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 1.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#*******#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.2;\n",
+ "# From Fig. 4.2: For diffusion from two opposite exposed surface D*thetha/(a**2) = 0.568\n",
+ "D = 4.70*10**(-6);# From Illusration 4.2(a) [square cm/s]\n",
+ "thetha = 0.568*(a**2)/D;# [s]\n",
+ "thetha = thetha/3600.0;# [h]\n",
+ "print'The time taken for the avg. conc. to fall to 1g/100 cubic cm when two faces opposed is:',int(thetha),' hours'\n",
+ "# the solution in the textbook is wrong due to approximation\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.2 - Page: 92\n",
+ "\n",
+ "\n",
+ "Illustration 4.2 (a)\n",
+ "\n",
+ "\n",
+ "Diffusivity of urea in gel from only one exposed durface: 4.71e-10 square m/s\n",
+ "\n",
+ "\n",
+ "Illustration 4.2 (b)\n",
+ "\n",
+ "\n",
+ "The time taken for the avg. conc. to fall to 1g/100 cubic cm is: 302.0 hours\n",
+ "Illustration 4.2 (c)\n",
+ "\n",
+ "\n",
+ "The time taken for the avg. conc. to fall to 1g/100 cubic cm when two faces opposed is: 75 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3: Page 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.3\n",
+ "# Page: 94\n",
+ "\n",
+ "print'Illustration 4.3 - Page: 94\\n\\n'\n",
+ "\n",
+ "# solution \n",
+ "\n",
+ "#****Data****#\n",
+ "z = 0.1;# [cm]\n",
+ "pa1 = 1;# [cmHg]\n",
+ "pa2 = 0;# [cmHg]\n",
+ "Da = 1.1*10**(-10)*10**4;# [square cm/s]\n",
+ "#***********#\n",
+ "\n",
+ "# Solubility coeffecient in terms of Hg\n",
+ "Sa = 0.90/76;# [cubic cm gas (STP)/cubic cm.cmHg]\n",
+ "# Using Eqn. 4.15\n",
+ "Va = (Da*Sa*(pa1-pa2))/z;# [cubic cm(STP)/square cm.s]\n",
+ "# Using Eqn. 4.16\n",
+ "P = Da*Sa;# [cubic cm gas (STP)/square cm.s.(cmHg/cm)]\n",
+ "print'The rate of diffusion of CO is:',round(Va,8),'cubic cm(STP)/square cm.s'\n",
+ "print'The permeability of the membrane is',round(P,9),'cubic cm gas (STP)/square cm.s.(cmHg/cm)'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.3 - Page: 94\n",
+ "\n",
+ "\n",
+ "The rate of diffusion of CO is: 1.3e-07 cubic cm(STP)/square cm.s\n",
+ "The permeability of the membrane is 1.3e-08 cubic cm gas (STP)/square cm.s.(cmHg/cm)\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4: Page 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " \n",
+ "\n",
+ "# Illustration 4.4\n",
+ "# Page: 96\n",
+ "\n",
+ "print'Illustration 4.4 - Page: 96\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "a = 0.005;# [m]\n",
+ "# For the KCl diffusion\n",
+ "Dab1 = 1.84*10**(-9);# [square m/s]\n",
+ "thetha = 4.75*3600;# [s]\n",
+ "Ca_Inf = 0;\n",
+ "# For K2CrO4 diffusion\n",
+ "Cao = 0.28;# [g/cubic cm]\n",
+ "Ca_Inf = 0.002;# [g/cubic cm]\n",
+ "Dab2 = 1.14*10**(-9);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "E = 0.1;# For 90% removal of KCl\n",
+ "# From Fig. 4.2 (Pg 91): Deff*thetha/a^2 = 0.18\n",
+ "Deff = 0.18*a**2/thetha;# [square m/s]\n",
+ "Dab_by_Deff = Dab1/Deff;\n",
+ "Ca_thetha = 0.1*0.28;# [g/cubic cm]\n",
+ "Es = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# From Fig. 4.2 (Pg 91): Deff*thetha/a^2 = 0.30\n",
+ "Deff = Dab2/Dab_by_Deff;# [square m/s]\n",
+ "thetha = 0.3*a**2/Deff;# [s]\n",
+ "thetha = thetha/3600;# [h]\n",
+ "print'The time reqd. is:',round(thetha,3),'hours'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.4 - Page: 96\n",
+ "\n",
+ "\n",
+ "The time reqd. is: 12.778 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.5: Page 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.5\n",
+ "# Page: 98\n",
+ "import math \n",
+ "\n",
+ "print'Illustration 4.5 - Page: 98\\n\\n'\n",
+ "print'Illustration 4.5 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = H2 b = N2\n",
+ "Dab_eff = 5.3*10**(-6);# [square m/s]\n",
+ "Dkb_eff = 1.17*10**(-5);# [square m/s]\n",
+ "Dab = 7.63*10**(-5);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "R = 8314;#[Nm/kmol]\n",
+ "Mb = 2.02;# [kg/kmol]\n",
+ "T = 293;# [K]\n",
+ "Dtrue_by_Deff = Dab/Dab_eff;\n",
+ "# Since the ratio is strictly a matter of the geometry of the solid.\n",
+ "Dkb = Dkb_eff*Dtrue_by_Deff;# [square m/s]\n",
+ "# From Eqn. 4.20\n",
+ "d = 3*Dkb*((math.pi*Mb)/(8*R*T))**0.5;# [m]\n",
+ "print'The equivalent pore diameter is: ',round(d,9),' m\\n\\n'\n",
+ "\n",
+ "print'Illustration 4.5 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = O2 b = N2 c = H2\n",
+ "Ya1 = 0.8;\n",
+ "Ya2 = 0.2;\n",
+ "Pt = 10133;# [N/square m]\n",
+ "z = 0.002;# [m]\n",
+ "T = 293;# [K]\n",
+ "#*******#\n",
+ "\n",
+ "# From Table 2.1 (Pg 31):\n",
+ "Dab = 1.81*10**(-5);# [square m/s] at STP\n",
+ "Dkc = 1.684*10**(-4);# [square m/s] From Illustration 4.5(a)\n",
+ "Mc = 2.02;# [kg/kmol]\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 28.02;# [kg/kmol]\n",
+ "Dab = Dab*(1/0.1)*((293/273)**1.5);# [square m/s] at 0.1 atm & 20 C\n",
+ "DabEff = Dab/14.4;# [square m/s] From Illustration 4.5(a)\n",
+ "Dka = Dkc*((Mc/Ma)**0.5);# [square m/s]\n",
+ "DkaEff = Dka/14.4;# [square m/s]\n",
+ "Nb_by_Na = -(Ma/Mb)**0.5;\n",
+ "# Na/(Na+Nb) = 1.0/(1+(Nb/Na))\n",
+ "Na_by_NaSumNb = 1.0/(1+(Nb_by_Na));\n",
+ "DabEff_by_DkaEff = DabEff/DkaEff;\n",
+ "# By Eqn. 4.23\n",
+ "Na = (Na_by_NaSumNb)*(DabEff*Pt/(R*T*z))*log((((Na_by_NaSumNb)*(1+DabEff_by_DkaEff))-Ya2)/(((Na_by_NaSumNb)*(1+DabEff_by_DkaEff))-Ya1));# [kmol/square m.s]\n",
+ "Nb = Na*(Nb_by_Na);# [kmol/square m.s]\n",
+ "print\"Diffusion flux of O2 is \",round(Na,8),\" kmol/square m.s\\n\"\n",
+ "print\"Diffusion flux of N2 is \",round(Nb,8),\" kmol/square m.s\\n\"\n",
+ "#the answer in textbook is slightly different due to approximation while here calculation is precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.5 - Page: 98\n",
+ "\n",
+ "\n",
+ "Illustration 4.5 (a)\n",
+ "\n",
+ "\n",
+ "The equivalent pore diameter is: 2.88e-07 m\n",
+ "\n",
+ "\n",
+ "Illustration 4.5 (b)\n",
+ "\n",
+ "\n",
+ "Diffusion flux of O2 is 2.95e-06 kmol/square m.s\n",
+ "\n",
+ "Diffusion flux of N2 is -3.16e-06 kmol/square m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6: Page 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.6\n",
+ "# Page: 100\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 4.6 - Page: 100\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = N2\n",
+ "# For N2 at 300K\n",
+ "viscosity1 = 1.8*10**(-5);# [kg/m.s]\n",
+ "Pt1 = 10133.0;# [N/square m.sec]\n",
+ "T = 300;# [K]\n",
+ "z = 0.0254;# [m]\n",
+ "T2 = 393.0;# [K]\n",
+ "#***********#\n",
+ "\n",
+ "Ma = 28.02;# [kg/kmol]\n",
+ "R = 8314.0;# [J/K.kgmol]\n",
+ "#From Eqn 4.22\n",
+ "Lambda = (3.2*viscosity1/Pt1)*(R*T/(2*(math.pi)*Ma))**0.5;\n",
+ "d = 10**(-4);# [m]\n",
+ "d_by_lambda = d/Lambda;\n",
+ "# Kundsen flow will not occur\n",
+ "# N2 flow corresponding to 9 cubic ft/square ft.min at 300K & 1 std atm = 0.0457 cubic m/square m.min\n",
+ "Na1 = 0.0457*(273.0/T)*(1/22.41);# [kmol/square m.s]\n",
+ "Pt1_diff_Pt2 = 2*3386/13.6;# [N/square m]\n",
+ "Ptav = Pt1+(Pt1_diff_Pt2/2.0);# [N/square m]\n",
+ "# From Eqn. 4.26\n",
+ "k1 = Na1*R*T*z/(Ptav*(Pt1_diff_Pt2));# [m**4/N.s]\n",
+ "\n",
+ "#For N2 at 393K\n",
+ "viscosity2 = 2.2*10**(-5);# [kg/m.s]\n",
+ "k2 = (k1*viscosity1)/(viscosity2);# [m^4/N.s]\n",
+ "# From Eqn 4.26\n",
+ "Na = (k2*Ptav*Pt1_diff_Pt2)/(R*T2*z);# [kmol/square m.s]\n",
+ "print\"Flow rate to be expected is\",round(Na,6),\" kmol/square m.s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.6 - Page: 100\n",
+ "\n",
+ "\n",
+ "Flow rate to be expected is 0.001159 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter4_2.ipynb b/Mass_-_Transfer_Operations/Chapter4_2.ipynb
new file mode 100755
index 00000000..73fd7beb
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter4_2.ipynb
@@ -0,0 +1,471 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c24c5f13f06ad2e35494c2ba2e22ba1351ce2de7d258eb50313205ed297dec4a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Diffusion In Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1: Page 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.1\n",
+ "# Page: 89\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 4.1 - Page: 89\\n\\n'\n",
+ " \n",
+ "# solution\n",
+ "\n",
+ "#***Data****#\n",
+ "P = 2;# [atm]\n",
+ "a1 = 0.025;# [m]\n",
+ "a2 = 0.050;# [m]\n",
+ "solub = 0.053*P;# [cubic m H2 (STP)/(cubic m rubber)]\n",
+ "Ca1 = solub/22.41;# inner surface of the pipe\n",
+ "Ca2 = 0;# resistance to difusion of H2 away from the surface is negligible.\n",
+ "Da = 1.8*10**(-10);# [square m/s]\n",
+ "l = 1;# [m]\n",
+ "#********#\n",
+ "\n",
+ "z = (a2-a1)/2;# [m]\n",
+ "# Using Eqn. 4.4\n",
+ "Sav = (2*(math.pi)*l*(a2-a1))/(2*math.log(a2/a1));# [square m]\n",
+ "# Using Eqn. 4.3\n",
+ "w = (Da*Sav*(Ca1-Ca2))/z;# [kmol H2/s for 1m length]\n",
+ "w = w*2.02*10**3*3600;# [g H2/m.h]\n",
+ "print'The rate of loss of H2 by diffusion per m of pipe length:',round(w,6),' g H2/m.h'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.1 - Page: 89\n",
+ "\n",
+ "\n",
+ "The rate of loss of H2 by diffusion per m of pipe length: 5.6e-05 g H2/m.h\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2: Page 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.2\n",
+ "# Page: 92\n",
+ "\n",
+ "print'Illustration 4.2 - Page: 92\\n\\n'\n",
+ "print'Illustration 4.2 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "# Given\n",
+ "a = 3.0/2;# [cm]\n",
+ "thetha = 68*3600;# [s]\n",
+ "# Ca can e calculated in terms of g/100 cubic cm\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 3.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#**********#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.6;\n",
+ "# From Fig. 4.2 (Pg 91): For diffusion from only one exposed surface D*thetha/(4*a^2) = 0.128\n",
+ "D = 0.128*4*(a**2)/thetha;# [square cm/s]\n",
+ "D = D*10**(-4);# [square m/s]\n",
+ "print'Diffusivity of urea in gel from only one exposed durface:',round(D,12),'square m/s\\n\\n'\n",
+ "\n",
+ "print'Illustration 4.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "#****Data****#\n",
+ "# Ca can e calculated in terms of g/100 cubic cm\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 1.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#*********#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.2;\n",
+ "# From Fig. 4.2 (Pg 91): For diffusion from only one exposed surface D*thetha/(4*a**2) = 0.568\n",
+ "D = 4.70*10**(-6);# From Illusration 4.2(a) [square cm/s]\n",
+ "thetha = 0.568*4*a**2/D;# [s]\n",
+ "thetha = thetha/3600.0;# [h]\n",
+ "print'The time taken for the avg. conc. to fall to 1g/100 cubic cm is:',round(thetha),' hours'\n",
+ "\n",
+ "print'Illustration 4.2 (c)\\n\\n'\n",
+ "\n",
+ "# solution (c)\n",
+ "\n",
+ "#****Data*****#\n",
+ "Cao = 5.0;# [g/100 cubic cm]\n",
+ "Ca_thetha = 1.0;# [g/100 cubic cm]\n",
+ "Ca_Inf = 0.0;# [g/100 cubic cm]\n",
+ "#*******#\n",
+ "\n",
+ "E = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# E = 0.2;\n",
+ "# From Fig. 4.2: For diffusion from two opposite exposed surface D*thetha/(a**2) = 0.568\n",
+ "D = 4.70*10**(-6);# From Illusration 4.2(a) [square cm/s]\n",
+ "thetha = 0.568*(a**2)/D;# [s]\n",
+ "thetha = thetha/3600.0;# [h]\n",
+ "print'The time taken for the avg. conc. to fall to 1g/100 cubic cm when two faces opposed is:',int(thetha),' hours'\n",
+ "# the solution in the textbook is wrong due to approximation\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.2 - Page: 92\n",
+ "\n",
+ "\n",
+ "Illustration 4.2 (a)\n",
+ "\n",
+ "\n",
+ "Diffusivity of urea in gel from only one exposed durface: 4.71e-10 square m/s\n",
+ "\n",
+ "\n",
+ "Illustration 4.2 (b)\n",
+ "\n",
+ "\n",
+ "The time taken for the avg. conc. to fall to 1g/100 cubic cm is: 302.0 hours\n",
+ "Illustration 4.2 (c)\n",
+ "\n",
+ "\n",
+ "The time taken for the avg. conc. to fall to 1g/100 cubic cm when two faces opposed is: 75 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3: Page 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.3\n",
+ "# Page: 94\n",
+ "\n",
+ "print'Illustration 4.3 - Page: 94\\n\\n'\n",
+ "\n",
+ "# solution \n",
+ "\n",
+ "#****Data****#\n",
+ "z = 0.1;# [cm]\n",
+ "pa1 = 1;# [cmHg]\n",
+ "pa2 = 0;# [cmHg]\n",
+ "Da = 1.1*10**(-10)*10**4;# [square cm/s]\n",
+ "#***********#\n",
+ "\n",
+ "# Solubility coeffecient in terms of Hg\n",
+ "Sa = 0.90/76;# [cubic cm gas (STP)/cubic cm.cmHg]\n",
+ "# Using Eqn. 4.15\n",
+ "Va = (Da*Sa*(pa1-pa2))/z;# [cubic cm(STP)/square cm.s]\n",
+ "# Using Eqn. 4.16\n",
+ "P = Da*Sa;# [cubic cm gas (STP)/square cm.s.(cmHg/cm)]\n",
+ "print'The rate of diffusion of CO is:',round(Va,8),'cubic cm(STP)/square cm.s'\n",
+ "print'The permeability of the membrane is',round(P,9),'cubic cm gas (STP)/square cm.s.(cmHg/cm)'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.3 - Page: 94\n",
+ "\n",
+ "\n",
+ "The rate of diffusion of CO is: 1.3e-07 cubic cm(STP)/square cm.s\n",
+ "The permeability of the membrane is 1.3e-08 cubic cm gas (STP)/square cm.s.(cmHg/cm)\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4: Page 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " \n",
+ "\n",
+ "# Illustration 4.4\n",
+ "# Page: 96\n",
+ "\n",
+ "print'Illustration 4.4 - Page: 96\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "a = 0.005;# [m]\n",
+ "# For the KCl diffusion\n",
+ "Dab1 = 1.84*10**(-9);# [square m/s]\n",
+ "thetha = 4.75*3600;# [s]\n",
+ "Ca_Inf = 0;\n",
+ "# For K2CrO4 diffusion\n",
+ "Cao = 0.28;# [g/cubic cm]\n",
+ "Ca_Inf = 0.002;# [g/cubic cm]\n",
+ "Dab2 = 1.14*10**(-9);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "E = 0.1;# For 90% removal of KCl\n",
+ "# From Fig. 4.2 (Pg 91): Deff*thetha/a^2 = 0.18\n",
+ "Deff = 0.18*a**2/thetha;# [square m/s]\n",
+ "Dab_by_Deff = Dab1/Deff;\n",
+ "Ca_thetha = 0.1*0.28;# [g/cubic cm]\n",
+ "Es = (Ca_thetha-Ca_Inf)/(Cao-Ca_Inf);\n",
+ "# From Fig. 4.2 (Pg 91): Deff*thetha/a^2 = 0.30\n",
+ "Deff = Dab2/Dab_by_Deff;# [square m/s]\n",
+ "thetha = 0.3*a**2/Deff;# [s]\n",
+ "thetha = thetha/3600;# [h]\n",
+ "print'The time reqd. is:',round(thetha,3),'hours'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.4 - Page: 96\n",
+ "\n",
+ "\n",
+ "The time reqd. is: 12.778 hours\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.5: Page 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.5\n",
+ "# Page: 98\n",
+ "import math \n",
+ "\n",
+ "print'Illustration 4.5 - Page: 98\\n\\n'\n",
+ "print'Illustration 4.5 (a)\\n\\n'\n",
+ "\n",
+ "# solution (a)\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = H2 b = N2\n",
+ "Dab_eff = 5.3*10**(-6);# [square m/s]\n",
+ "Dkb_eff = 1.17*10**(-5);# [square m/s]\n",
+ "Dab = 7.63*10**(-5);# [square m/s]\n",
+ "#*******#\n",
+ "\n",
+ "R = 8314;#[Nm/kmol]\n",
+ "Mb = 2.02;# [kg/kmol]\n",
+ "T = 293;# [K]\n",
+ "Dtrue_by_Deff = Dab/Dab_eff;\n",
+ "# Since the ratio is strictly a matter of the geometry of the solid.\n",
+ "Dkb = Dkb_eff*Dtrue_by_Deff;# [square m/s]\n",
+ "# From Eqn. 4.20\n",
+ "d = 3*Dkb*((math.pi*Mb)/(8*R*T))**0.5;# [m]\n",
+ "print'The equivalent pore diameter is: ',round(d,9),' m\\n\\n'\n",
+ "\n",
+ "print'Illustration 4.5 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a = O2 b = N2 c = H2\n",
+ "Ya1 = 0.8;\n",
+ "Ya2 = 0.2;\n",
+ "Pt = 10133;# [N/square m]\n",
+ "z = 0.002;# [m]\n",
+ "T = 293;# [K]\n",
+ "#*******#\n",
+ "\n",
+ "# From Table 2.1 (Pg 31):\n",
+ "Dab = 1.81*10**(-5);# [square m/s] at STP\n",
+ "Dkc = 1.684*10**(-4);# [square m/s] From Illustration 4.5(a)\n",
+ "Mc = 2.02;# [kg/kmol]\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 28.02;# [kg/kmol]\n",
+ "Dab = Dab*(1/0.1)*((293/273)**1.5);# [square m/s] at 0.1 atm & 20 C\n",
+ "DabEff = Dab/14.4;# [square m/s] From Illustration 4.5(a)\n",
+ "Dka = Dkc*((Mc/Ma)**0.5);# [square m/s]\n",
+ "DkaEff = Dka/14.4;# [square m/s]\n",
+ "Nb_by_Na = -(Ma/Mb)**0.5;\n",
+ "# Na/(Na+Nb) = 1.0/(1+(Nb/Na))\n",
+ "Na_by_NaSumNb = 1.0/(1+(Nb_by_Na));\n",
+ "DabEff_by_DkaEff = DabEff/DkaEff;\n",
+ "# By Eqn. 4.23\n",
+ "Na = (Na_by_NaSumNb)*(DabEff*Pt/(R*T*z))*log((((Na_by_NaSumNb)*(1+DabEff_by_DkaEff))-Ya2)/(((Na_by_NaSumNb)*(1+DabEff_by_DkaEff))-Ya1));# [kmol/square m.s]\n",
+ "Nb = Na*(Nb_by_Na);# [kmol/square m.s]\n",
+ "print\"Diffusion flux of O2 is \",round(Na,8),\" kmol/square m.s\\n\"\n",
+ "print\"Diffusion flux of N2 is \",round(Nb,8),\" kmol/square m.s\\n\"\n",
+ "#the answer in textbook is slightly different due to approximation while here calculation is precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.5 - Page: 98\n",
+ "\n",
+ "\n",
+ "Illustration 4.5 (a)\n",
+ "\n",
+ "\n",
+ "The equivalent pore diameter is: 2.88e-07 m\n",
+ "\n",
+ "\n",
+ "Illustration 4.5 (b)\n",
+ "\n",
+ "\n",
+ "Diffusion flux of O2 is 2.95e-06 kmol/square m.s\n",
+ "\n",
+ "Diffusion flux of N2 is -3.16e-06 kmol/square m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6: Page 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 4.6\n",
+ "# Page: 100\n",
+ "\n",
+ "import math\n",
+ "print'Illustration 4.6 - Page: 100\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = N2\n",
+ "# For N2 at 300K\n",
+ "viscosity1 = 1.8*10**(-5);# [kg/m.s]\n",
+ "Pt1 = 10133.0;# [N/square m.sec]\n",
+ "T = 300;# [K]\n",
+ "z = 0.0254;# [m]\n",
+ "T2 = 393.0;# [K]\n",
+ "#***********#\n",
+ "\n",
+ "Ma = 28.02;# [kg/kmol]\n",
+ "R = 8314.0;# [J/K.kgmol]\n",
+ "#From Eqn 4.22\n",
+ "Lambda = (3.2*viscosity1/Pt1)*(R*T/(2*(math.pi)*Ma))**0.5;\n",
+ "d = 10**(-4);# [m]\n",
+ "d_by_lambda = d/Lambda;\n",
+ "# Kundsen flow will not occur\n",
+ "# N2 flow corresponding to 9 cubic ft/square ft.min at 300K & 1 std atm = 0.0457 cubic m/square m.min\n",
+ "Na1 = 0.0457*(273.0/T)*(1/22.41);# [kmol/square m.s]\n",
+ "Pt1_diff_Pt2 = 2*3386/13.6;# [N/square m]\n",
+ "Ptav = Pt1+(Pt1_diff_Pt2/2.0);# [N/square m]\n",
+ "# From Eqn. 4.26\n",
+ "k1 = Na1*R*T*z/(Ptav*(Pt1_diff_Pt2));# [m**4/N.s]\n",
+ "\n",
+ "#For N2 at 393K\n",
+ "viscosity2 = 2.2*10**(-5);# [kg/m.s]\n",
+ "k2 = (k1*viscosity1)/(viscosity2);# [m^4/N.s]\n",
+ "# From Eqn 4.26\n",
+ "Na = (k2*Ptav*Pt1_diff_Pt2)/(R*T2*z);# [kmol/square m.s]\n",
+ "print\"Flow rate to be expected is\",round(Na,6),\" kmol/square m.s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 4.6 - Page: 100\n",
+ "\n",
+ "\n",
+ "Flow rate to be expected is 0.001159 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter5.ipynb b/Mass_-_Transfer_Operations/Chapter5.ipynb
new file mode 100755
index 00000000..b860f069
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter5.ipynb
@@ -0,0 +1,384 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7993b2e1b1cd4e665f8a316544ebc9b7c9af58ff099db1ddb24eed947b6e95bc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Interphase Mass Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1: Page 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 5.1\n",
+ "# Page: 114\n",
+ "\n",
+ "print'Illustration 5.1 - Page: 114\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = NH3, b = H2O\n",
+ "d = 2.54*10**(-2);# [m]\n",
+ "Yag = 0.80;\n",
+ "Xal = 0.05;\n",
+ "T = 273+26.7;# [K]\n",
+ "Kl = 2.87*10**(-5);# [kmol/square m.s.(kmol/cubic m)]\n",
+ "Sh = 40;\n",
+ "Da = 2.297*10**(-5);# [square m.s]\n",
+ "P = 1.0133*10**(5);# [N/square m]\n",
+ "Xbm = 1.0;\n",
+ "#*********#\n",
+ "\n",
+ "Ma = 18.0;# [kg/kmol]\n",
+ "# Liquid:\n",
+ "# Because of large conc. of ammonia in gas F's rather than k's are used.\n",
+ "# Molecular weight of water and ammonia are nearly same.\n",
+ "# The density of the solution is practically that of water.\n",
+ "MolarDensity1 = 1000/Ma;# [kmol/cubic m]\n",
+ "# Kl is determined for dilute soln. where Xbm is practically 1.0\n",
+ "Fl = Kl*Xbm*MolarDensity1;# [kmol/square m.s]\n",
+ "Ma = 18;# [kg-/kmol]\n",
+ "# Gas:\n",
+ "MolarDensity2 = (1/22.41)*(273/(273+26.7));# [kmol/cubic m]\n",
+ "Fg = Sh*MolarDensity2*Da/d;# [kmol/square m.s]\n",
+ "\n",
+ "# Mass Transfer Flux\n",
+ "# Th eqb. distribuion data for NH3 from \"The Chemical Engineers Handbook\" 5th Edt. p3-68:\n",
+ "# Data = [Xa,pa]\n",
+ "# Xa = NH3 mole fraction in gas phas\n",
+ "# pa = NH3 partial pressure in N/square m\n",
+ "Data = [(0 ,0),(0.05 ,7171),(0.10, 13652),(0.25 ,59917),(0.30 ,93220)];\n",
+ "\n",
+ "X = numpy.zeros(5);\n",
+ "for i in range(1,5) :\n",
+ " X[i]=Data[i][0]\n",
+ " \n",
+ "\n",
+ "# Ya_star = mole fraction of NH3 in gas phase at eqb.\n",
+ "Ya_star = numpy.zeros(5);\n",
+ "for i in range(0,5) :\n",
+ " Ya_star[i] = (Data[i][1])/P\n",
+ "\n",
+ "# For transfer of only one component\n",
+ "Na_by_SummationN = 1.0;\n",
+ "Ya = numpy.zeros(5);\n",
+ "for i in range(0,5):\n",
+ " Ya[i] = 1-((1-Yag)*(1.0-Xal)/(1-Data[i][0]));\n",
+ "\n",
+ "plt.plot(X,Ya_star,'g',label='Equilibrium Line')\n",
+ "plt.plot(X,Ya,'r',label='Operating Line')\n",
+ "ax = pylab.gca()\n",
+ "ax.grid('on')\n",
+ "ax.set_xlabel('Xa = mole fraction of NH3 in liquid phase');\n",
+ "ax.set_ylabel('Ya = mole fraction of NH3 in gas phase');\n",
+ "pylab.legend(loc='lower right')\n",
+ "plt.title('Ya Vs Xa');\n",
+ "plt.show()\n",
+ "\n",
+ "# From intersection of operating line & Eqb. line\n",
+ "Xai = 0.274;\n",
+ "Yai = 0.732;\n",
+ "\n",
+ "# From Eqn.5.20\n",
+ "Na = Na_by_SummationN*Fg*log((Na_by_SummationN-Yai)/(Na_by_SummationN-Yag));# [kmol NH3 absorbed/square m.s]\n",
+ "print\"Local mass transfer flux for ammonia is \",round(Na,6),\" kmol/square m.s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 5.1 - Page: 114\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nrkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7a704e0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Local mass transfer flux for ammonia is 0.00043 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.2: Page 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Illustration 5.2\n",
+ "# Page: 130\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "\n",
+ "print'Illustration 5.2 - Page: 130\\n\\n'\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data***#\n",
+ "# Eqb. data\n",
+ "# Data = [Wt% of moisture in the soap,Partial pressure of water in air(mm Hg)]\n",
+ "Data = [(0,0),( 2.40, 9.66),(3.76 ,19.20),(4.76 ,28.4),(6.10, 37.2),(7.83, 46.4),(9.90, 55.0),(12.63, 63.2),(15.40, 71.9),(19.02 ,79.5)];\n",
+ "P = 760.0;# [mm Hg]\n",
+ "# Initial air\n",
+ "p1 = 12;# [mm Hg]\n",
+ "T = 273+75.0;# [K]\n",
+ "#******#\n",
+ "\n",
+ "# Y = kg water/kg dry air\n",
+ "# X = kg water/kg dry soap\n",
+ "# E = Air water phase\n",
+ "# R = Soap water phase\n",
+ "Y = numpy.zeros(10);\n",
+ "X = numpy.zeros(10);\n",
+ "for i in range(1,10):\n",
+ " Y[i] = Data[i][1]/(P-Data[i][1])*(18.02/29);\n",
+ " X[i] = Data[i][0]/(100.0-Data[i][0]);\n",
+ "\n",
+ "\n",
+ "print'Illustration 5.2 (a)\\n\\n'\n",
+ "\n",
+ "import pylab\n",
+ "# Soln. (a)\n",
+ "# First operation\n",
+ "Y1 = p1/(P-p1);# [kg water/kg dry soap]\n",
+ "# Initial Soap\n",
+ "S1 = 16.7/(100-16.7);# [kg water/kg dry soap]\n",
+ "# Final soap\n",
+ "S2 = 13.0/(100-13);# [kg water/kg dry soap]\n",
+ "Rs = 10.0*(1-0.167);# [kg dry soap]\n",
+ "# Using ideal gas law\n",
+ "Es = 10.0*((760-p1)/760.0)*(273.0/T)*(29.0/22.41);# [kg dry air]\n",
+ "slopeOperat = -Rs/Es;\n",
+ "\n",
+ "def f2(x):\n",
+ " return slopeOperat*(x-S1)+Y1\n",
+ "x = numpy.arange(S1,S2,-0.01);\n",
+ "X1=S2;\n",
+ "def f3(S):\n",
+ " return slopeOperat*(S-X1)+Y1\n",
+ "S=numpy.arange(0,S1,0.01);\n",
+ "\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f2(x),'g',label='First Process')\n",
+ "plt.plot(S,f3(S),'r',label='Second Process')\n",
+ "ax = pylab.gca()\n",
+ "plt.title(\"Illustration 5.2(a)\")\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "plt.show()\n",
+ "\n",
+ "# Results for First Process\n",
+ "# The condition at abcissa S2 correspond to the end of first operation\n",
+ "print \"Conditions corresponding to First Operation \\n\"\n",
+ "print \"X = kg water/kg dry soap\\n\",S2\n",
+ "print \"Y = kg water/kg dry air\\n\",f2(S2)\n",
+ "\n",
+ "# Results for Second Process\n",
+ "# The point at which the line meets the equilibrium line corresponds to the final value\n",
+ "X2 = 0.103;\n",
+ "Y2 = (X2/(1+X2));\n",
+ "print\"Final moisture content of soap is \",round(Y2*100,3),'%'\n",
+ "\n",
+ "\n",
+ "print'\\n\\n Illustration 5.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "Rs = 1*(1-0.167);# [kg dry soap/h]\n",
+ "# Entering soap\n",
+ "X1 = 0.20;# [kg water/kg dry soap]\n",
+ "# Leaving soap\n",
+ "x = 0.04;\n",
+ "X2 = x/(1-x);# [kg water/kg dry soap]\n",
+ "# Entering air\n",
+ "Y2 = 0.00996;# [from Illustration 5.2(a), kg water/kg dry air]\n",
+ "# The operating line of least slope giving rise to eqb. condition will indicate least amount of air usable.\n",
+ "# At X1 = 0.20; the eqb. condition:\n",
+ "Y1 = 0.0675;# [kg water/kg dry air]\n",
+ "\n",
+ "def f4(x):\n",
+ " return ((Y1-Y2)/(X1-X2))*(x-X1)+Y1\n",
+ "x = numpy.arange(X2,0.24,0.01);\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f4(x),'g',label='Operating line')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.title(\"Illustration 5.2(b)\")\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "plt.show()\n",
+ "# By Eqn. 5.35\n",
+ "\n",
+ "Es = Rs*(X1-X2)/(Y1-Y2);# [kg dry air/h]\n",
+ "Esv = (Es/29)*22.41*(P/(P-p1))*(T/273.0); #[cubic m/kg dry soap]\n",
+ "print\"Minimum amount of air required is\",round(Esv,4),\" cubic m/kg dry soap\\n\\n\"\n",
+ "\n",
+ "print'Illustration 5.2 (c)\\n\\n'\n",
+ "\n",
+ "# solution (c)\n",
+ "\n",
+ "Esnew = 1.30*Es;# [kg dry air/h]\n",
+ "Y1 = Rs*((X1-X2)/Esnew)+Y2;\n",
+ "\n",
+ "def f5(x):\n",
+ " return ((Y1-Y2)/(X1-X2))*(x-X1)+Y1\n",
+ "x = numpy.arange(X2,0.24,0.01);\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f5(x),'g',label='Operating line')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.title(\"Illustration 5.2(c)\")\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "plt.show()\n",
+ "# with final coordinates X = X1 & y = Y1\n",
+ "# From figure, Total number of eqb . stages = 3\n",
+ "N = 3;\n",
+ "print\"Moisture content of air leaving the drier is \",round(Y1,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Total number of eqb. stages = \",N\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 5.2 - Page: 130\n",
+ "\n",
+ "\n",
+ "Illustration 5.2 (a)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n2rZtS/fu3QE4duwY7du3Jykpid27d7Np0yauueYaAP7973+zbNkyVq1axapVq1i2bBkjRozIuu/e\nvXs5evQou3btYsKECTzwwANZNREeeOABihcvzp49e5g4cSKTJk3KsUZDZum+77//njVr1mRVgdu7\ndy+HDh3i999/Z9y4cYwYMcKnXsuWLePuu+/mlVde4ciRI3z77be43OGqPXv2pGjRomzevJmff/6Z\nr776infeeQeAoUOHkpiYyOHDh9m5cyf9+/cHTMW4RYsW8dtvv3HkyBE++ugjypcvn5//LksALFsG\nt95qRgVlypiKZu+8Aw0b5nytJQzxVaczvxtwCzDeY78HMDabzBfAFR773wDNgKbAUmASsAIYDxT3\n0oa/+qM5FSktmC0PrFu3Tnv27KnVqlXTc845Rzt37qx79+5VVdXExESdMGFClmx6eroWL15ct23b\nptOmTdNLL73U6z1r166tc+bMydqfN2+eulwuVVVduHChnnfeeZqenp51vlKlSrp06VJNS0vTIkWK\n6IYNG7LODR48WNu0aeO1na1bt6qIaNmyZTUuLk4bNmyoY8eOzWqnaNGieurUqYD0uvfee3XgwIFn\ntbFnzx4999xz9c8//8w6Nm3aNG3Xrp2qqt51111677336o4dO864bsGCBVqvXj1dsmTJGZ81JwJ6\nXqKYp59+OtfXpKerzpqleuWVqjVqqL72murRowWvm1PkpU8iCRyq0Rxo3oDsr6SK8XVcCvRT1R9F\nZBTwBDAs+8WeOUpcLlfWm2bO2jmX1qBBgwZMmjQJgA0bNtCjRw8efvhhpk2bxrZt23jooYd45JFH\nzrhm586d7Nixg1q1anm9565du7jggguy9mvUqMGuXbuy9suXL39G4ZrixYtz/Phx/vjjD9LS0s4o\nx5m9FKc3Dhw44LUQTsWKFSlatGhAeu3YscNr2c1t27aRmppK1apVs45lZGRk6fXSSy8xdOhQWrRo\nQVxcHI888gi9evWiXbt29OvXjwceeIBt27Zx0003MXLkSEqVKpXj5/FMk5yQkOA1901ycrJXB2Sk\ny5f1UWjAm3xaGqSmJjBrVgJFixrn8a23QpEikfN5A5FPSUnJeibCQZ/8ymeeDwhf1iK/G9AKmOux\n/yTweDaZt4DbPfbXA5WBKsBWj+NtgFle2vBnBSOGsWPHapMmTVRVtUOHDjpt2jSvctOnT/c7Upg9\n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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7a26828>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conditions corresponding to First Operation \n",
+ "\n",
+ "X = kg water/kg dry soap\n",
+ "0.149425287356\n",
+ "Y = kg water/kg dry air\n",
+ "0.0586080045715\n",
+ "Final moisture content of soap is 9.338 %\n",
+ "\n",
+ "\n",
+ " Illustration 5.2 (b)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nxUkNBVmMbwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c30128>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum amount of air required is 2.2941 cubic m/kg dry soap\n",
+ "\n",
+ "\n",
+ "Illustration 5.2 (c)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nNVWVme/qqwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e5c940>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moisture content of air leaving the drier is 0.0542 kg water/kg dry air\n",
+ "\n",
+ "Total number of eqb. stages = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter5_1.ipynb b/Mass_-_Transfer_Operations/Chapter5_1.ipynb
new file mode 100755
index 00000000..756e424b
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter5_1.ipynb
@@ -0,0 +1,385 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5b0eee15396b4ea69bab7ccfb1908ab0b8c6f2630bddedaada99660ed07a1ef9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Interphase Mass Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1: Page 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 5.1\n",
+ "# Page: 114\n",
+ "\n",
+ "print'Illustration 5.1 - Page: 114\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "%matplotlib inline\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = NH3, b = H2O\n",
+ "d = 2.54*10**(-2);# [m]\n",
+ "Yag = 0.80;\n",
+ "Xal = 0.05;\n",
+ "T = 273+26.7;# [K]\n",
+ "Kl = 2.87*10**(-5);# [kmol/square m.s.(kmol/cubic m)]\n",
+ "Sh = 40;\n",
+ "Da = 2.297*10**(-5);# [square m.s]\n",
+ "P = 1.0133*10**(5);# [N/square m]\n",
+ "Xbm = 1.0;\n",
+ "#*********#\n",
+ "\n",
+ "Ma = 18.0;# [kg/kmol]\n",
+ "# Liquid:\n",
+ "# Because of large conc. of ammonia in gas F's rather than k's are used.\n",
+ "# Molecular weight of water and ammonia are nearly same.\n",
+ "# The density of the solution is practically that of water.\n",
+ "MolarDensity1 = 1000/Ma;# [kmol/cubic m]\n",
+ "# Kl is determined for dilute soln. where Xbm is practically 1.0\n",
+ "Fl = Kl*Xbm*MolarDensity1;# [kmol/square m.s]\n",
+ "Ma = 18;# [kg-/kmol]\n",
+ "# Gas:\n",
+ "MolarDensity2 = (1/22.41)*(273/(273+26.7));# [kmol/cubic m]\n",
+ "Fg = Sh*MolarDensity2*Da/d;# [kmol/square m.s]\n",
+ "\n",
+ "# Mass Transfer Flux\n",
+ "# Th eqb. distribuion data for NH3 from \"The Chemical Engineers Handbook\" 5th Edt. p3-68:\n",
+ "# Data = [Xa,pa]\n",
+ "# Xa = NH3 mole fraction in gas phas\n",
+ "# pa = NH3 partial pressure in N/square m\n",
+ "Data = [(0 ,0),(0.05 ,7171),(0.10, 13652),(0.25 ,59917),(0.30 ,93220)];\n",
+ "\n",
+ "X = numpy.zeros(5);\n",
+ "for i in range(1,5) :\n",
+ " X[i]=Data[i][0]\n",
+ " \n",
+ "\n",
+ "# Ya_star = mole fraction of NH3 in gas phase at eqb.\n",
+ "Ya_star = numpy.zeros(5);\n",
+ "for i in range(0,5) :\n",
+ " Ya_star[i] = (Data[i][1])/P\n",
+ "\n",
+ "# For transfer of only one component\n",
+ "Na_by_SummationN = 1.0;\n",
+ "Ya = numpy.zeros(5);\n",
+ "for i in range(0,5):\n",
+ " Ya[i] = 1-((1-Yag)*(1.0-Xal)/(1-Data[i][0]));\n",
+ "\n",
+ "plt.plot(X,Ya_star,'g',label='Equilibrium Line')\n",
+ "plt.plot(X,Ya,'r',label='Operating Line')\n",
+ "ax = pylab.gca()\n",
+ "ax.grid('on')\n",
+ "ax.set_xlabel('Xa = mole fraction of NH3 in liquid phase');\n",
+ "ax.set_ylabel('Ya = mole fraction of NH3 in gas phase');\n",
+ "pylab.legend(loc='lower right')\n",
+ "plt.title('Ya Vs Xa');\n",
+ "plt.show()\n",
+ "\n",
+ "# From intersection of operating line & Eqb. line\n",
+ "Xai = 0.274;\n",
+ "Yai = 0.732;\n",
+ "\n",
+ "# From Eqn.5.20\n",
+ "Na = Na_by_SummationN*Fg*log((Na_by_SummationN-Yai)/(Na_by_SummationN-Yag));# [kmol NH3 absorbed/square m.s]\n",
+ "print\"Local mass transfer flux for ammonia is \",round(Na,6),\" kmol/square m.s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 5.1 - Page: 114\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nrkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7765208>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Local mass transfer flux for ammonia is 0.00043 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.2: Page 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Illustration 5.2\n",
+ "# Page: 130\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "\n",
+ "print'Illustration 5.2 - Page: 130\\n\\n'\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data***#\n",
+ "# Eqb. data\n",
+ "# Data = [Wt% of moisture in the soap,Partial pressure of water in air(mm Hg)]\n",
+ "Data = [(0,0),( 2.40, 9.66),(3.76 ,19.20),(4.76 ,28.4),(6.10, 37.2),(7.83, 46.4),(9.90, 55.0),(12.63, 63.2),(15.40, 71.9),(19.02 ,79.5)];\n",
+ "P = 760.0;# [mm Hg]\n",
+ "# Initial air\n",
+ "p1 = 12;# [mm Hg]\n",
+ "T = 273+75.0;# [K]\n",
+ "#******#\n",
+ "\n",
+ "# Y = kg water/kg dry air\n",
+ "# X = kg water/kg dry soap\n",
+ "# E = Air water phase\n",
+ "# R = Soap water phase\n",
+ "Y = numpy.zeros(10);\n",
+ "X = numpy.zeros(10);\n",
+ "for i in range(1,10):\n",
+ " Y[i] = Data[i][1]/(P-Data[i][1])*(18.02/29);\n",
+ " X[i] = Data[i][0]/(100.0-Data[i][0]);\n",
+ "\n",
+ "\n",
+ "print'Illustration 5.2 (a)\\n\\n'\n",
+ "\n",
+ "import pylab\n",
+ "# Soln. (a)\n",
+ "# First operation\n",
+ "Y1 = p1/(P-p1);# [kg water/kg dry soap]\n",
+ "# Initial Soap\n",
+ "S1 = 16.7/(100-16.7);# [kg water/kg dry soap]\n",
+ "# Final soap\n",
+ "S2 = 13.0/(100-13);# [kg water/kg dry soap]\n",
+ "Rs = 10.0*(1-0.167);# [kg dry soap]\n",
+ "# Using ideal gas law\n",
+ "Es = 10.0*((760-p1)/760.0)*(273.0/T)*(29.0/22.41);# [kg dry air]\n",
+ "slopeOperat = -Rs/Es;\n",
+ "\n",
+ "def f2(x):\n",
+ " return slopeOperat*(x-S1)+Y1\n",
+ "x = numpy.arange(S1,S2,-0.01);\n",
+ "X1=S2;\n",
+ "def f3(S):\n",
+ " return slopeOperat*(S-X1)+Y1\n",
+ "S=numpy.arange(0,S1,0.01);\n",
+ "\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f2(x),'g',label='First Process')\n",
+ "plt.plot(S,f3(S),'r',label='Second Process')\n",
+ "ax = pylab.gca()\n",
+ "plt.title(\"Illustration 5.2(a)\")\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "plt.show()\n",
+ "\n",
+ "# Results for First Process\n",
+ "# The condition at abcissa S2 correspond to the end of first operation\n",
+ "print \"Conditions corresponding to First Operation \\n\"\n",
+ "print \"X = kg water/kg dry soap\\n\",S2\n",
+ "print \"Y = kg water/kg dry air\\n\",f2(S2)\n",
+ "\n",
+ "# Results for Second Process\n",
+ "# The point at which the line meets the equilibrium line corresponds to the final value\n",
+ "X2 = 0.103;\n",
+ "Y2 = (X2/(1+X2));\n",
+ "print\"Final moisture content of soap is \",round(Y2*100,3),'%'\n",
+ "\n",
+ "\n",
+ "print'\\n\\n Illustration 5.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "Rs = 1*(1-0.167);# [kg dry soap/h]\n",
+ "# Entering soap\n",
+ "X1 = 0.20;# [kg water/kg dry soap]\n",
+ "# Leaving soap\n",
+ "x = 0.04;\n",
+ "X2 = x/(1-x);# [kg water/kg dry soap]\n",
+ "# Entering air\n",
+ "Y2 = 0.00996;# [from Illustration 5.2(a), kg water/kg dry air]\n",
+ "# The operating line of least slope giving rise to eqb. condition will indicate least amount of air usable.\n",
+ "# At X1 = 0.20; the eqb. condition:\n",
+ "Y1 = 0.0675;# [kg water/kg dry air]\n",
+ "\n",
+ "def f4(x):\n",
+ " return ((Y1-Y2)/(X1-X2))*(x-X1)+Y1\n",
+ "x = numpy.arange(X2,0.24,0.01);\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f4(x),'g',label='Operating line')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.title(\"Illustration 5.2(b)\")\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "plt.show()\n",
+ "# By Eqn. 5.35\n",
+ "\n",
+ "Es = Rs*(X1-X2)/(Y1-Y2);# [kg dry air/h]\n",
+ "Esv = (Es/29)*22.41*(P/(P-p1))*(T/273.0); #[cubic m/kg dry soap]\n",
+ "print\"Minimum amount of air required is\",round(Esv,4),\" cubic m/kg dry soap\\n\\n\"\n",
+ "\n",
+ "print'Illustration 5.2 (c)\\n\\n'\n",
+ "\n",
+ "# solution (c)\n",
+ "\n",
+ "Esnew = 1.30*Es;# [kg dry air/h]\n",
+ "Y1 = Rs*((X1-X2)/Esnew)+Y2;\n",
+ "\n",
+ "def f5(x):\n",
+ " return ((Y1-Y2)/(X1-X2))*(x-X1)+Y1\n",
+ "x = numpy.arange(X2,0.24,0.01);\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f5(x),'g',label='Operating line')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.title(\"Illustration 5.2(c)\")\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "plt.show()\n",
+ "# with final coordinates X = X1 & y = Y1\n",
+ "# From figure, Total number of eqb . stages = 3\n",
+ "N = 3;\n",
+ "print\"Moisture content of air leaving the drier is \",round(Y1,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Total number of eqb. stages = \",N\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 5.2 - Page: 130\n",
+ "\n",
+ "\n",
+ "Illustration 5.2 (a)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n2rZtS/fu3QE4duwY7du3Jykpid27d7Np0yauueYaAP7973+zbNkyVq1axapVq1i2bBkjRozIuu/e\nvXs5evQou3btYsKECTzwwANZNREeeOABihcvzp49e5g4cSKTJk3KsUZDZum+77//njVr1mRVgdu7\ndy+HDh3i999/Z9y4cYwYMcKnXsuWLePuu+/mlVde4ciRI3z77be43OGqPXv2pGjRomzevJmff/6Z\nr776infeeQeAoUOHkpiYyOHDh9m5cyf9+/cHTMW4RYsW8dtvv3HkyBE++ugjypcvn5//LksALFsG\nt95qRgVlypiKZu+8Aw0b5nytJQzxVaczvxtwCzDeY78HMDabzBfAFR773wDNgKbAUmASsAIYDxT3\n0oa/+qM5FSktmC0PrFu3Tnv27KnVqlXTc845Rzt37qx79+5VVdXExESdMGFClmx6eroWL15ct23b\nptOmTdNLL73U6z1r166tc+bMydqfN2+eulwuVVVduHChnnfeeZqenp51vlKlSrp06VJNS0vTIkWK\n6IYNG7LODR48WNu0aeO1na1bt6qIaNmyZTUuLk4bNmyoY8eOzWqnaNGieurUqYD0uvfee3XgwIFn\ntbFnzx4999xz9c8//8w6Nm3aNG3Xrp2qqt51111677336o4dO864bsGCBVqvXj1dsmTJGZ81JwJ6\nXqKYp59+OtfXpKerzpqleuWVqjVqqL72murRowWvm1PkpU8iCRyq0Rxo3oDsr6SK8XVcCvRT1R9F\nZBTwBDAs+8WeOUpcLlfWm2bO2jmX1qBBgwZMmjQJgA0bNtCjRw8efvhhpk2bxrZt23jooYd45JFH\nzrhm586d7Nixg1q1anm9565du7jggguy9mvUqMGuXbuy9suXL39G4ZrixYtz/Phx/vjjD9LS0s4o\nx5m9FKc3Dhw44LUQTsWKFSlatGhAeu3YscNr2c1t27aRmppK1apVs45lZGRk6fXSSy8xdOhQWrRo\nQVxcHI888gi9evWiXbt29OvXjwceeIBt27Zx0003MXLkSEqVKpXj5/FMk5yQkOA1901ycrJXB2Sk\ny5f1UWjAm3xaGqSmJjBrVgJFixrn8a23QpEikfN5A5FPSUnJeibCQZ/8ymeeDwhf1iK/G9AKmOux\n/yTweDaZt4DbPfbXA5WBKsBWj+NtgFle2vBnBSOGsWPHapMmTVRVtUOHDjpt2jSvctOnT/c7Upg9\n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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7a26828>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conditions corresponding to First Operation \n",
+ "\n",
+ "X = kg water/kg dry soap\n",
+ "0.149425287356\n",
+ "Y = kg water/kg dry air\n",
+ "0.0586080045715\n",
+ "Final moisture content of soap is 9.338 %\n",
+ "\n",
+ "\n",
+ " Illustration 5.2 (b)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nxUkNBVmMbwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c30128>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum amount of air required is 2.2941 cubic m/kg dry soap\n",
+ "\n",
+ "\n",
+ "Illustration 5.2 (c)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nNVWVme/qqwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e5c940>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moisture content of air leaving the drier is 0.0542 kg water/kg dry air\n",
+ "\n",
+ "Total number of eqb. stages = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter5_2.ipynb b/Mass_-_Transfer_Operations/Chapter5_2.ipynb
new file mode 100755
index 00000000..756e424b
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter5_2.ipynb
@@ -0,0 +1,385 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5b0eee15396b4ea69bab7ccfb1908ab0b8c6f2630bddedaada99660ed07a1ef9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Interphase Mass Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1: Page 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 5.1\n",
+ "# Page: 114\n",
+ "\n",
+ "print'Illustration 5.1 - Page: 114\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "%matplotlib inline\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "# a = NH3, b = H2O\n",
+ "d = 2.54*10**(-2);# [m]\n",
+ "Yag = 0.80;\n",
+ "Xal = 0.05;\n",
+ "T = 273+26.7;# [K]\n",
+ "Kl = 2.87*10**(-5);# [kmol/square m.s.(kmol/cubic m)]\n",
+ "Sh = 40;\n",
+ "Da = 2.297*10**(-5);# [square m.s]\n",
+ "P = 1.0133*10**(5);# [N/square m]\n",
+ "Xbm = 1.0;\n",
+ "#*********#\n",
+ "\n",
+ "Ma = 18.0;# [kg/kmol]\n",
+ "# Liquid:\n",
+ "# Because of large conc. of ammonia in gas F's rather than k's are used.\n",
+ "# Molecular weight of water and ammonia are nearly same.\n",
+ "# The density of the solution is practically that of water.\n",
+ "MolarDensity1 = 1000/Ma;# [kmol/cubic m]\n",
+ "# Kl is determined for dilute soln. where Xbm is practically 1.0\n",
+ "Fl = Kl*Xbm*MolarDensity1;# [kmol/square m.s]\n",
+ "Ma = 18;# [kg-/kmol]\n",
+ "# Gas:\n",
+ "MolarDensity2 = (1/22.41)*(273/(273+26.7));# [kmol/cubic m]\n",
+ "Fg = Sh*MolarDensity2*Da/d;# [kmol/square m.s]\n",
+ "\n",
+ "# Mass Transfer Flux\n",
+ "# Th eqb. distribuion data for NH3 from \"The Chemical Engineers Handbook\" 5th Edt. p3-68:\n",
+ "# Data = [Xa,pa]\n",
+ "# Xa = NH3 mole fraction in gas phas\n",
+ "# pa = NH3 partial pressure in N/square m\n",
+ "Data = [(0 ,0),(0.05 ,7171),(0.10, 13652),(0.25 ,59917),(0.30 ,93220)];\n",
+ "\n",
+ "X = numpy.zeros(5);\n",
+ "for i in range(1,5) :\n",
+ " X[i]=Data[i][0]\n",
+ " \n",
+ "\n",
+ "# Ya_star = mole fraction of NH3 in gas phase at eqb.\n",
+ "Ya_star = numpy.zeros(5);\n",
+ "for i in range(0,5) :\n",
+ " Ya_star[i] = (Data[i][1])/P\n",
+ "\n",
+ "# For transfer of only one component\n",
+ "Na_by_SummationN = 1.0;\n",
+ "Ya = numpy.zeros(5);\n",
+ "for i in range(0,5):\n",
+ " Ya[i] = 1-((1-Yag)*(1.0-Xal)/(1-Data[i][0]));\n",
+ "\n",
+ "plt.plot(X,Ya_star,'g',label='Equilibrium Line')\n",
+ "plt.plot(X,Ya,'r',label='Operating Line')\n",
+ "ax = pylab.gca()\n",
+ "ax.grid('on')\n",
+ "ax.set_xlabel('Xa = mole fraction of NH3 in liquid phase');\n",
+ "ax.set_ylabel('Ya = mole fraction of NH3 in gas phase');\n",
+ "pylab.legend(loc='lower right')\n",
+ "plt.title('Ya Vs Xa');\n",
+ "plt.show()\n",
+ "\n",
+ "# From intersection of operating line & Eqb. line\n",
+ "Xai = 0.274;\n",
+ "Yai = 0.732;\n",
+ "\n",
+ "# From Eqn.5.20\n",
+ "Na = Na_by_SummationN*Fg*log((Na_by_SummationN-Yai)/(Na_by_SummationN-Yag));# [kmol NH3 absorbed/square m.s]\n",
+ "print\"Local mass transfer flux for ammonia is \",round(Na,6),\" kmol/square m.s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 5.1 - Page: 114\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nrkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7765208>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Local mass transfer flux for ammonia is 0.00043 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.2: Page 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Illustration 5.2\n",
+ "# Page: 130\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "\n",
+ "print'Illustration 5.2 - Page: 130\\n\\n'\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data***#\n",
+ "# Eqb. data\n",
+ "# Data = [Wt% of moisture in the soap,Partial pressure of water in air(mm Hg)]\n",
+ "Data = [(0,0),( 2.40, 9.66),(3.76 ,19.20),(4.76 ,28.4),(6.10, 37.2),(7.83, 46.4),(9.90, 55.0),(12.63, 63.2),(15.40, 71.9),(19.02 ,79.5)];\n",
+ "P = 760.0;# [mm Hg]\n",
+ "# Initial air\n",
+ "p1 = 12;# [mm Hg]\n",
+ "T = 273+75.0;# [K]\n",
+ "#******#\n",
+ "\n",
+ "# Y = kg water/kg dry air\n",
+ "# X = kg water/kg dry soap\n",
+ "# E = Air water phase\n",
+ "# R = Soap water phase\n",
+ "Y = numpy.zeros(10);\n",
+ "X = numpy.zeros(10);\n",
+ "for i in range(1,10):\n",
+ " Y[i] = Data[i][1]/(P-Data[i][1])*(18.02/29);\n",
+ " X[i] = Data[i][0]/(100.0-Data[i][0]);\n",
+ "\n",
+ "\n",
+ "print'Illustration 5.2 (a)\\n\\n'\n",
+ "\n",
+ "import pylab\n",
+ "# Soln. (a)\n",
+ "# First operation\n",
+ "Y1 = p1/(P-p1);# [kg water/kg dry soap]\n",
+ "# Initial Soap\n",
+ "S1 = 16.7/(100-16.7);# [kg water/kg dry soap]\n",
+ "# Final soap\n",
+ "S2 = 13.0/(100-13);# [kg water/kg dry soap]\n",
+ "Rs = 10.0*(1-0.167);# [kg dry soap]\n",
+ "# Using ideal gas law\n",
+ "Es = 10.0*((760-p1)/760.0)*(273.0/T)*(29.0/22.41);# [kg dry air]\n",
+ "slopeOperat = -Rs/Es;\n",
+ "\n",
+ "def f2(x):\n",
+ " return slopeOperat*(x-S1)+Y1\n",
+ "x = numpy.arange(S1,S2,-0.01);\n",
+ "X1=S2;\n",
+ "def f3(S):\n",
+ " return slopeOperat*(S-X1)+Y1\n",
+ "S=numpy.arange(0,S1,0.01);\n",
+ "\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f2(x),'g',label='First Process')\n",
+ "plt.plot(S,f3(S),'r',label='Second Process')\n",
+ "ax = pylab.gca()\n",
+ "plt.title(\"Illustration 5.2(a)\")\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "plt.show()\n",
+ "\n",
+ "# Results for First Process\n",
+ "# The condition at abcissa S2 correspond to the end of first operation\n",
+ "print \"Conditions corresponding to First Operation \\n\"\n",
+ "print \"X = kg water/kg dry soap\\n\",S2\n",
+ "print \"Y = kg water/kg dry air\\n\",f2(S2)\n",
+ "\n",
+ "# Results for Second Process\n",
+ "# The point at which the line meets the equilibrium line corresponds to the final value\n",
+ "X2 = 0.103;\n",
+ "Y2 = (X2/(1+X2));\n",
+ "print\"Final moisture content of soap is \",round(Y2*100,3),'%'\n",
+ "\n",
+ "\n",
+ "print'\\n\\n Illustration 5.2 (b)\\n\\n'\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "Rs = 1*(1-0.167);# [kg dry soap/h]\n",
+ "# Entering soap\n",
+ "X1 = 0.20;# [kg water/kg dry soap]\n",
+ "# Leaving soap\n",
+ "x = 0.04;\n",
+ "X2 = x/(1-x);# [kg water/kg dry soap]\n",
+ "# Entering air\n",
+ "Y2 = 0.00996;# [from Illustration 5.2(a), kg water/kg dry air]\n",
+ "# The operating line of least slope giving rise to eqb. condition will indicate least amount of air usable.\n",
+ "# At X1 = 0.20; the eqb. condition:\n",
+ "Y1 = 0.0675;# [kg water/kg dry air]\n",
+ "\n",
+ "def f4(x):\n",
+ " return ((Y1-Y2)/(X1-X2))*(x-X1)+Y1\n",
+ "x = numpy.arange(X2,0.24,0.01);\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f4(x),'g',label='Operating line')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.title(\"Illustration 5.2(b)\")\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "plt.show()\n",
+ "# By Eqn. 5.35\n",
+ "\n",
+ "Es = Rs*(X1-X2)/(Y1-Y2);# [kg dry air/h]\n",
+ "Esv = (Es/29)*22.41*(P/(P-p1))*(T/273.0); #[cubic m/kg dry soap]\n",
+ "print\"Minimum amount of air required is\",round(Esv,4),\" cubic m/kg dry soap\\n\\n\"\n",
+ "\n",
+ "print'Illustration 5.2 (c)\\n\\n'\n",
+ "\n",
+ "# solution (c)\n",
+ "\n",
+ "Esnew = 1.30*Es;# [kg dry air/h]\n",
+ "Y1 = Rs*((X1-X2)/Esnew)+Y2;\n",
+ "\n",
+ "def f5(x):\n",
+ " return ((Y1-Y2)/(X1-X2))*(x-X1)+Y1\n",
+ "x = numpy.arange(X2,0.24,0.01);\n",
+ "plt.plot(X,Y,'blue',label='Equilibrium Line')\n",
+ "plt.plot(x,f5(x),'g',label='Operating line')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel('kg water / kg dry soap')\n",
+ "ax.set_ylabel('kg water / kg dry air')\n",
+ "ax.set_autoscale_on('False')\n",
+ "pylab.axis([0.0,0.24, 0,0.08])\n",
+ "plt.title(\"Illustration 5.2(c)\")\n",
+ "plt.grid(b=None, which='major', axis='both')\n",
+ "ax.grid(color='Black', linestyle='--', linewidth=0.5)\n",
+ "pylab.legend(loc='upper left')\n",
+ "plt.show()\n",
+ "# with final coordinates X = X1 & y = Y1\n",
+ "# From figure, Total number of eqb . stages = 3\n",
+ "N = 3;\n",
+ "print\"Moisture content of air leaving the drier is \",round(Y1,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Total number of eqb. stages = \",N\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 5.2 - Page: 130\n",
+ "\n",
+ "\n",
+ "Illustration 5.2 (a)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n2rZtS/fu3QE4duwY7du3Jykpid27d7Np0yauueYaAP7973+zbNkyVq1axapVq1i2bBkjRozIuu/e\nvXs5evQou3btYsKECTzwwANZNREeeOABihcvzp49e5g4cSKTJk3KsUZDZum+77//njVr1mRVgdu7\ndy+HDh3i999/Z9y4cYwYMcKnXsuWLePuu+/mlVde4ciRI3z77be43OGqPXv2pGjRomzevJmff/6Z\nr776infeeQeAoUOHkpiYyOHDh9m5cyf9+/cHTMW4RYsW8dtvv3HkyBE++ugjypcvn5//LksALFsG\nt95qRgVlypiKZu+8Aw0b5nytJQzxVaczvxtwCzDeY78HMDabzBfAFR773wDNgKbAUmASsAIYDxT3\n0oa/+qM5FSktmC0PrFu3Tnv27KnVqlXTc845Rzt37qx79+5VVdXExESdMGFClmx6eroWL15ct23b\nptOmTdNLL73U6z1r166tc+bMydqfN2+eulwuVVVduHChnnfeeZqenp51vlKlSrp06VJNS0vTIkWK\n6IYNG7LODR48WNu0aeO1na1bt6qIaNmyZTUuLk4bNmyoY8eOzWqnaNGieurUqYD0uvfee3XgwIFn\ntbFnzx4999xz9c8//8w6Nm3aNG3Xrp2qqt51111677336o4dO864bsGCBVqvXj1dsmTJGZ81JwJ6\nXqKYp59+OtfXpKerzpqleuWVqjVqqL72murRowWvm1PkpU8iCRyq0Rxo3oDsr6SK8XVcCvRT1R9F\nZBTwBDAs+8WeOUpcLlfWm2bO2jmX1qBBgwZMmjQJgA0bNtCjRw8efvhhpk2bxrZt23jooYd45JFH\nzrhm586d7Nixg1q1anm9565du7jggguy9mvUqMGuXbuy9suXL39G4ZrixYtz/Phx/vjjD9LS0s4o\nx5m9FKc3Dhw44LUQTsWKFSlatGhAeu3YscNr2c1t27aRmppK1apVs45lZGRk6fXSSy8xdOhQWrRo\nQVxcHI888gi9evWiXbt29OvXjwceeIBt27Zx0003MXLkSEqVKpXj5/FMk5yQkOA1901ycrJXB2Sk\ny5f1UWjAm3xaGqSmJjBrVgJFixrn8a23QpEikfN5A5FPSUnJeibCQZ/8ymeeDwhf1iK/G9AKmOux\n/yTweDaZt4DbPfbXA5WBKsBWj+NtgFle2vBnBSOGsWPHapMmTVRVtUOHDjpt2jSvctOnT/c7Upg9\n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\nAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7a26828>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conditions corresponding to First Operation \n",
+ "\n",
+ "X = kg water/kg dry soap\n",
+ "0.149425287356\n",
+ "Y = kg water/kg dry air\n",
+ "0.0586080045715\n",
+ "Final moisture content of soap is 9.338 %\n",
+ "\n",
+ "\n",
+ " Illustration 5.2 (b)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nxUkNBVmMbwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7c30128>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum amount of air required is 2.2941 cubic m/kg dry soap\n",
+ "\n",
+ "\n",
+ "Illustration 5.2 (c)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nNVWVme/qqwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7e5c940>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moisture content of air leaving the drier is 0.0542 kg water/kg dry air\n",
+ "\n",
+ "Total number of eqb. stages = 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter6.ipynb b/Mass_-_Transfer_Operations/Chapter6.ipynb
new file mode 100755
index 00000000..330c2a7b
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter6.ipynb
@@ -0,0 +1,1050 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:154e89b2f76588eed1121bf1db9bf4372804b279864337e5f5dc9c9be7d3f365"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Equipment For Gas-Liquid Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1: Page 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.1\n",
+ "# Page: 145\n",
+ "\n",
+ "print'Illustration 6.1 - Page: 145\\n\\n'\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# w = Gas flow rate per orifice\n",
+ "w = 0.055/50;# [kg/s]\n",
+ "L = 8*10**(-4);# [liquid flow rate, cubic m/s]\n",
+ "d = 0.003;# [diameter of the orifice,m]\n",
+ "viscocity_gas = 1.8*10**(-5);# [kg/m.s]\n",
+ "#******#\n",
+ "\n",
+ "Re = 4*w/(math.pi*d*viscocity_gas);\n",
+ "Dp = 0.0071*Re**(-0.05);# [m]\n",
+ "h = 3.0;# [height of vessel,m]\n",
+ "P_atm = 101.3;# [kN/square m]\n",
+ "Density_water = 1000.0;# [kg/cubic m]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "Temp = 273+25;# [K]\n",
+ "P_orifice = P_atm+(h*Density_water*g/1000);# [kN/square m]\n",
+ "P_avg = P_atm+((h/2.0)*Density_water*g/1000);# [kN/square m]\n",
+ "Density_gas = (29/22.41)*(273.0/Temp)*(P_avg/P_atm);# [kg/cubic m]\n",
+ "D = 1.0;# [dia of vessel,m]\n",
+ "Area = (math.pi*D**2)/4;# [square m]\n",
+ "Vg = 0.055/(Area*Density_gas);# [m/s]\n",
+ "Vl = L/Area;# [m/s]\n",
+ "sigma = 0.072;# [N/m]\n",
+ "# From fig. 6.2 (Pg 143)\n",
+ "abscissa = 0.0516;# [m/s]\n",
+ "Vg_by_Vs = 0.11;\n",
+ "Vs = Vg/Vg_by_Vs;# [m/s]\n",
+ "def f6(shi_g):\n",
+ " return Vs-(Vg/shi_g)+(Vl/(1-shi_g)) \n",
+ "shi_g = fsolve(f6,0.5);\n",
+ "dp = ((Dp**3)*(P_orifice/P_avg))**(1.0/3);# [bubble diameter,m]\n",
+ "# From eqn. 6.9\n",
+ "a = 6.0*shi_g/dp;# [specific interfacial area,square m]\n",
+ "print\"The Specific Interfacial Area is \",round(a,2),\" square m/cubic m\\n\"\n",
+ "\n",
+ "# For diffsion of Cl2 in H20\n",
+ "Dl = 1.44*10**(-9);# [square m/s]\n",
+ "viscocity_water = 8.937*10**(-4);# [kg/m.s]\n",
+ "Reg = dp*Vs*Density_water/viscocity_water;\n",
+ "Scl = viscocity_water/(Density_water*Dl);\n",
+ "# From Eqn.6.11\n",
+ "Shl = 2+(0.0187*(Reg**0.779)*(Scl**0.546)*(dp*(g**(1.0/3))/(Dl**(2.0/3)))**0.116);\n",
+ "# For dilute soln. of Cl2 in H20\n",
+ "c = 1000/18.02;# [kmol/cubic m]\n",
+ "Fl = (c*Dl*Shl)/dp;# [kmol/square m.s]\n",
+ "print\"Mass Transfer coeffecient is \",round(Fl,5),\" kmol/square m.s\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.1 - Page: 145\n",
+ "\n",
+ "\n",
+ "The Specific Interfacial Area is 148.13 square m/cubic m\n",
+ "\n",
+ "Mass Transfer coeffecient is 0.01335 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2: Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.2\n",
+ "# Page: 157\n",
+ "\n",
+ "print'Illustration 6.2 - Page: 157\\n\\n'\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = N2 b = H2O\n",
+ "L = 9.5*10**(-4);# [cubic m/s]\n",
+ "G = 0.061;# [kg/s]\n",
+ "Temp = 273.0+25;# [K]\n",
+ "#*****#\n",
+ "\n",
+ "print\"Construction Arrangement\\n\"\n",
+ "print\"Use 4 vertical wall baffles, 100 mm wide at 90 degree intervals.\\n\"\n",
+ "print\"Use a 305 mm dameter, a six bladed disk flat blade turbine impeller, arranged axially, 300 mm from the bottom of vessel\\n\"\n",
+ "print\"The sparger underneath the impeller will be in the form of a 240 mm dameter ring made of 12.7 mm tubing drilled in the top with 3.18 mm dia holes\\n\"\n",
+ "Di = 0.305;# [m]\n",
+ "Do = 0.00316;# [m]\n",
+ "viscocity_a = 1.8*10**(-5);# [kg/m.s]\n",
+ "Re_g = 35000;\n",
+ "Ma = 28.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# w = Gas flow rate per orifice\n",
+ "w = Re_g*math.pi*Do*viscocity_a/4.0;# [kg/s]\n",
+ "N_holes = G/w;\n",
+ "Interval = math.pi*240/round(N_holes);\n",
+ "print\"The number of holes is \",round(N_holes),\" at approx \",round(Interval),\" mm interval around the sparger ring\\n\"\n",
+ "\n",
+ "viscocity_b = 8.9*10**(-4);# [kg/m.s]\n",
+ "Sigma = 0.072;# [N/m]\n",
+ "Density_b = 1000.0;# [kg/cubic m]\n",
+ "D = 1.0;# [dia of vessel,m]\n",
+ "g = 9.81;# [m/s**2]\n",
+ "# From Eqn. 6.18\n",
+ "def f7(N):\n",
+ " return (N*Di/(Sigma*g/Density_b)**0.25)-1.22-(1.25*D/Di)\n",
+ "N_min = fsolve(f7,2);# [r/s]\n",
+ "N = 5.0;# [r/s]\n",
+ "Re_l = ((Di**2)*N*Density_b/viscocity_b);\n",
+ "# From fig 6.5 (Pg 152)\n",
+ "Po = 5.0;\n",
+ "P = Po*Density_b*(N**3)*(Di**5);\n",
+ "h = 0.7;# [m]\n",
+ "P_atm = 101.33;# [kN/square m]\n",
+ "P_gas = P_atm+(h*Density_b*g/1000.0);# [kN/square m]\n",
+ "Qg = (G/Ma)*22.41*(Temp/273.0)*(P_atm/P_gas);# [cubic m/s]\n",
+ "# From Fig.6.7 (Pg 155)\n",
+ "abcissa = Qg/(N*(Di**3));\n",
+ "# abcissa is off scale\n",
+ "Pg_by_P = 0.43;\n",
+ "Pg = 0.43*P;# [W]\n",
+ "Vg = Qg/(math.pi*(D**2)/4);# [superficial gas velocity,m/s]\n",
+ "check_value = (Re_l**0.7)*((N*Di/Vg)**0.3);\n",
+ "vl = math.pi*(D**2)/4;# [cubic m]\n",
+ "# Since value<30000\n",
+ "# From Eqn. 6.21, Eqn.6.23 & Eqn. 6.24\n",
+ "K = 2.25;\n",
+ "m = 0.4;\n",
+ "Vt = 0.250;# [m/s]\n",
+ "shi = 1.0;\n",
+ "err = 1.0;\n",
+ "while (err>10**(-3)):\n",
+ " a = 1.44*((Pg/vl)**0.4)*((Density_b/(Sigma**3))**0.2)*((Vg/Vt)**0.5);# [square m/cubic m]\n",
+ " shin = (0.24*K*((viscocity_a/viscocity_b)**0.25)*((Vg/Vt)**0.5))**(1.0/(1-m));\n",
+ " Dp = K*((vl/Pg)**0.4)*((Sigma**3/Density_b)**0.2)*(shin**m)*((viscocity_a/viscocity_b)**0.25);# [m]\n",
+ " err = abs(shi-shin);\n",
+ " Vt = Vt-0.002;# [m/s]\n",
+ " shi = shin;\n",
+ "\n",
+ "\n",
+ "# For N2 in H2\n",
+ "Dl = 1.9*10**(-9);# [square m/s]\n",
+ "Ra = 1.514*10**(6);\n",
+ "# By Eqn. 6.25\n",
+ "Shl = 2.0+(0.31*(Ra**(1.0/3)));\n",
+ "# For dilute soln.\n",
+ "c = 1000.0/Mb;# [kmol/cubic m]\n",
+ "Fl = Shl*c*Dl*1.0/Dp;# [kmol/square m.s]\n",
+ "print\"The average gas-bubble diameter is \",(\"{:.2e}\".format(Dp)),\" m\\n\",\n",
+ "print\"Gas Holdup:\\n\",round(shi,5)\n",
+ "print\"Interfacial area:\",round(a,4),\" square m/cubic m \\n\"\n",
+ "print\"Mass transfer coffecient:\",(\"{:.2e}\".format(Fl)),\"kmol/square m.s\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.2 - Page: 157\n",
+ "\n",
+ "\n",
+ "Construction Arrangement\n",
+ "\n",
+ "Use 4 vertical wall baffles, 100 mm wide at 90 degree intervals.\n",
+ "\n",
+ "Use a 305 mm dameter, a six bladed disk flat blade turbine impeller, arranged axially, 300 mm from the bottom of vessel\n",
+ "\n",
+ "The sparger underneath the impeller will be in the form of a 240 mm dameter ring made of 12.7 mm tubing drilled in the top with 3.18 mm dia holes\n",
+ "\n",
+ "The number of holes is 39.0 at approx 19.0 mm interval around the sparger ring\n",
+ "\n",
+ "The average gas-bubble diameter is 6.35e-04 m\n",
+ "Gas Holdup:\n",
+ "0.02265\n",
+ "Interfacial area: 214.0106 square m/cubic m \n",
+ "\n",
+ "Mass transfer coffecient: 6.24e-03 kmol/square m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3: Page 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.3\n",
+ "# Page: 174\n",
+ "\n",
+ "print'Illustration 6.3 - Page: 174\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = methanol b = water\n",
+ "G = 0.100;# [kmol/s]\n",
+ "L = 0.25;# [kmol/s]\n",
+ "Temp = 273+95;# [K]\n",
+ "XaG = 0.18;# [mol % in gas phase]\n",
+ "MaL = 0.15;# [mass % in liquid phase]\n",
+ "#*****#\n",
+ "\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "Mavg_G = XaG*Ma+((1-XaG)*Mb);# [kg/kmol]\n",
+ "Density_G = (Mavg_G/22.41)*(273.0/Temp);# [kg/cubic cm]\n",
+ "Q = G*22.41*(Temp/273.0);# [cubic cm/s]\n",
+ "Density_L = 961.0;# [kg/cubic cm]\n",
+ "Mavg_L = 1.0/((MaL/Ma)+(1-MaL)/Mb);# [kg/kmol]\n",
+ "q = L*Mavg_L/Density_L;\n",
+ "\n",
+ "# Perforations\n",
+ "print\"Perforations\\n\"\n",
+ "print\"Do = 4.5mm on an equilateral triangle pitch 12 mm between the hole centres, punched in sheet metal 2 mm thick\\n\"\n",
+ "Do = 0.0045;# [m]\n",
+ "pitch = 0.012;# [m]\n",
+ "# By Eqn.6.31\n",
+ "Ao_by_Aa = 0.907*(Do/pitch)**2;\n",
+ "print\"The ratio of Hole Area By Active Area is:\",round(Ao_by_Aa,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Tower Diameter\n",
+ "print\"Tower Diameter\\n\"\n",
+ "t = 0.50;# [tray spacing,m]\n",
+ "print\"Tower Spacing:\",t,\" m\\n\"\n",
+ "# abcissa = (L/G)*(Density_G/Density_L)^0.5 = (q/Q)*(Density_L/Density_G)**0.5\n",
+ "abcissa = (q/Q)*(Density_L/Density_G)**0.5;\n",
+ "# From Table 6.2 (Pg 169)\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "if (abcissa<0.1):\n",
+ " abcissa = 0.1;\n",
+ "\n",
+ "sigma = 0.040;# [N/m]\n",
+ "# From Eqn.6.30\n",
+ "Cf = ((alpha*math.log10(1.0/abcissa))+beeta)*(sigma/0.02)**0.2;\n",
+ "# From Eqn. 6.29\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1/2);# [m/s]\n",
+ "# Using 80% of flooding velocity\n",
+ "V = 0.8*Vf;# [m/s]\n",
+ "An = Q/V;# [square m]\n",
+ "# The tray area used by one downspout = 8.8%\n",
+ "At = An/(1-0.088);# [square m]\n",
+ "D = (4*At/math.pi)**(1.0/2);# [m]\n",
+ "# Take D = 1.25 m\n",
+ "D = 1.25; #[m]\n",
+ "At = math.pi*(D**2)/4;# [corrected At, square m]\n",
+ "W = 0.7*D;# [weir length,m]\n",
+ "Ad = 0.088*At;# [square m]\n",
+ "# For a design similar to Fig 6.14 (Pg 168)\n",
+ "# A 40 mm wide supporting ring, beams between downspouts and a 50 mm wide disengaging & distributing zones these areas total 0.222 square m\n",
+ "Aa = At-(2.0*Ad)-0.222;\n",
+ "print\"Weir Length:\",round(W,4),\"\\n\"\n",
+ "print\"Area for perforated sheet: \",round(Aa,4),\" square m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Weir crest h1 & Weir height hw\n",
+ "print\"Weir crest h1 & Weir height hw\\n\"\n",
+ "h1 = 0.025;# [m]\n",
+ "h1_by_D = h1/D;\n",
+ "D_by_W = D/W;\n",
+ "# From Eqn. 6.34\n",
+ "Weff_by_W = math.sqrt(((D_by_W)**2)-((((D_by_W)**2-1)**0.5)+(2*h1_by_D*D_by_W))**2);\n",
+ "# Set hw to 50 mm\n",
+ "hw = 0.05;# [m]\n",
+ "print\"Weir crest: \",h1,\" m\\n\"\n",
+ "print\"Weir height: \",hw,\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Dry Pressure Drop\n",
+ "print\"Dry Pressure Drop\\n\"\n",
+ "l = 0.002;# [m]\n",
+ "# From Eqn. 6.37\n",
+ "Co = 1.09*(Do/l)**0.25;\n",
+ "Ao = 0.1275*Aa;# [square m]\n",
+ "Vo = Q/Ao;# [m/sec]\n",
+ "viscocity_G = 1.25*10**(-5);# [kg/m.s]\n",
+ "Re = Do*Vo*Density_G/viscocity_G;\n",
+ "# From \"The Chemical Engineers Handbook,\" 5th Edition fig 5.26\n",
+ "fr = 0.008;\n",
+ "g = 9.81;# [m/s**2]\n",
+ "# From Eqn. 6.36\n",
+ "def f(hd):\n",
+ " return (2*hd*g*Density_L/(Vo**2*Density_G))-(Co*(0.40*(1.25-(Ao/An))+(4*l*fr/Do)+(1-(Ao/An))**2))\n",
+ "hd = fsolve(f,1);\n",
+ "print\"Dry Pressure Drop:\",round(hd,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Hydraulic head hl\n",
+ "print\"Hydraulic head hl\"\n",
+ "Va = Q/Aa;# [m/s]\n",
+ "z = (D+W)/2.0;# [m]\n",
+ "# From Eqn. 6.38\n",
+ "hl = 6.10*10**(-3)+(0.725*hw)-(0.238*hw*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "print\"Hydraulic head: \",round(hl,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#Residual Pressure drop hr\n",
+ "print\"Residual Pressure drop hr\\n\"\n",
+ "# From Eqn. 6.42\n",
+ "hr = 6*sigma/(Density_L*Do*g);# m\n",
+ "print\"Residual Pressure Drop:\",round(hr,4),\"m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Total Gas pressure Drop hg\n",
+ "print\"Total Gas pressure Drop hg\\n\"\n",
+ "# From Eqn. 6.35\n",
+ "hg = hd+hl+hr;# [m]\n",
+ "print\"Total gas pressure Drop: \",round(hg,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Pressure loss at liquid entrance h2\n",
+ "print\"Pressure loss at liquid entrance h2\\n\"\n",
+ "# Al: Area for the liquid flow under the apron\n",
+ "Al = 0.025*W;# [square m]\n",
+ "Ada = min(Al,Ad);\n",
+ "# From Eqn. 6.43\n",
+ "h2 = (3.0/(2*g))*(q/Ada)**2;\n",
+ "print\"Pressure loss at liquid entrance:\",round(h2,4),\"m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Backup in Downspout h3\n",
+ "print\"Backup in Downspout h3\\n\"\n",
+ "# From Eqn.6.44\n",
+ "h3 = hg+h2;\n",
+ "print\"Backup in Downspout:\",round(h3,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Check on Flooding\n",
+ "print\"Check on Flooding\\n\"\n",
+ "if((hw+h1+h3)<(t/2.0)):\n",
+ " print\"Choosen Tower spacing is satisfactory\\n\"\n",
+ "else:\n",
+ " print\"Choosen Tower spacing is not satisfactory\\n\"\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Weeping Velocity\n",
+ "print\"Weeping Velocity\\n\"\n",
+ "print\"For W/D ratio \",W/D,\" weir is set at \",0.3296*D,\" m from the center from the tower\\n\",\n",
+ "Z = 2*(0.3296*D);# [m]\n",
+ "# From Eqn.6.46\n",
+ "def f8(Vow):\n",
+ " return (Vow*viscocity_G/(sigma))-(0.0229*((viscocity_G**2/(sigma*Density_G*Do))*(Density_L/Density_G))**0.379)*((l/Do)**0.293)*(2*Aa*Do/(math.sqrt(3.0)*(pitch**3)))**(2.8/((Z/Do)**0.724))\n",
+ "Vow = fsolve(f8,0.1);# [m/s]\n",
+ "print\"The minimum gas velocity through the holes below which excessive weeping is likely:\",round(Vow,3),\" m/s\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Entrainment\n",
+ "print\"Entrainment\\n\"\n",
+ "V_by_Vf = V/Vf;\n",
+ "# From Fig.6.17 (Pg 173), V/Vf = 0.8 & abcissa = 0.0622\n",
+ "E = 0.05;\n",
+ "print\"Entrainment:\\n\",E\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.3 - Page: 174\n",
+ "\n",
+ "\n",
+ "Perforations\n",
+ "\n",
+ "Do = 4.5mm on an equilateral triangle pitch 12 mm between the hole centres, punched in sheet metal 2 mm thick\n",
+ "\n",
+ "The ratio of Hole Area By Active Area is: 0.1275 \n",
+ "\n",
+ "\n",
+ "\n",
+ "Tower Diameter\n",
+ "\n",
+ "Tower Spacing: 0.5 m\n",
+ "\n",
+ "Weir Length: 0.875 \n",
+ "\n",
+ "Area for perforated sheet: 0.7892 square m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Weir crest h1 & Weir height hw\n",
+ "\n",
+ "Weir crest: 0.025 m\n",
+ "\n",
+ "Weir height: 0.05 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dry Pressure Drop\n",
+ "\n",
+ "Dry Pressure Drop: 0.0654 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Hydraulic head hl\n",
+ "Hydraulic head: 0.0106 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Residual Pressure drop hr\n",
+ "\n",
+ "Residual Pressure Drop: 0.0057 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Total Gas pressure Drop hg\n",
+ "\n",
+ "Total gas pressure Drop: 0.0816 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Pressure loss at liquid entrance h2\n",
+ "\n",
+ "Pressure loss at liquid entrance: 0.008 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Backup in Downspout h3\n",
+ "\n",
+ "Backup in Downspout: 0.0897 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Check on Flooding\n",
+ "\n",
+ "Choosen Tower spacing is satisfactory\n",
+ "\n",
+ "\n",
+ "\n",
+ "Weeping Velocity\n",
+ "\n",
+ "For W/D ratio 0.7 weir is set at 0.412 m from the center from the tower\n",
+ "The minimum gas velocity through the holes below which excessive weeping is likely: 8.703 m/s\n",
+ "\n",
+ "\n",
+ "\n",
+ "Entrainment\n",
+ "\n",
+ "Entrainment:\n",
+ "0.05\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4: Page 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.4\n",
+ "# Page: 183\n",
+ "\n",
+ "print'Illustration 6.4 - Page: 183\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "#****Data****#\n",
+ "#From Illustrtion 6.3:\n",
+ "G = 0.100;# [kmol/s]\n",
+ "Density_G = 0.679;# [kg/cubic m]\n",
+ "q = 5*10**(-3);# [cubic m/s]\n",
+ "Va = 3.827;# [m/s]\n",
+ "z = 1.063;# [m]\n",
+ "L = 0.25;# [kmol/s]\n",
+ "hL = 0.0106;# [m]\n",
+ "hW = 0.05;# [m]\n",
+ "Z = 0.824;# [m]\n",
+ "E = 0.05;\n",
+ "ya = 0.18;# [mole fraction methanol]\n",
+ "\n",
+ "# a:CH3OH b:H2O\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "# From Chapter 2:\n",
+ "ScG = 0.865;\n",
+ "Dl = 5.94*10**(-9);# [square m/s]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/ScG**0.5;\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;# [square m/s]\n",
+ "thethaL = hL*z*Z/q;# [s]\n",
+ "NtL = 40000*Dl**0.5*((0.213*Va*Density_G**0.5)+0.15)*thethaL;\n",
+ "# For 15 mass% methanol:\n",
+ "xa = (15.0/Ma)/((15.0/Ma)+(85.0/Mb));\n",
+ "# From Fig 6.23 (Pg 184)\n",
+ "mAC = -(NtL*L)/(NtG*G);# [Slope of AC line]\n",
+ "meqb = 2.50;# [slope of equilibrium line]\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1.0/((1/NtG)+(meqb*G/L)*(1.0/NtL));\n",
+ "# From Eqn. 6.51:\n",
+ "EOG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thethaL);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2.0)*((1+(4*meqb*G*EOG/(L*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EOG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+(math.exp(eta)-1)/(eta*(1+eta/(eta+Pe))));\n",
+ "# From Eqn. 6.60:\n",
+ "EMGE = EMG/(1+(EMG*E/(1-E)));\n",
+ "print\"Efficiency of Sieve trays: \",round(EMGE,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.4 - Page: 183\n",
+ "\n",
+ "\n",
+ "Effeciency of Sieve trays: 0.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5: Page 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.5\n",
+ "# Page: 200\n",
+ "\n",
+ "print'Illustration 6.5 - Page: 200\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "# ****Data****#\n",
+ "G = 0.80;# [cubic m/s]\n",
+ "P = 10**2;# [kN/square m]\n",
+ "XaG = 0.07;\n",
+ "Temp = 273+30.0;# [K]\n",
+ "L = 3.8;# [kg/s]\n",
+ "Density_L = 1235.0;# [kg/cubic m]\n",
+ "viscocity_L = 2.5*10**(-3);# [kg/m.s]\n",
+ "#******#\n",
+ "\n",
+ "# a = SO2 b = air\n",
+ "\n",
+ "# Solution (a) \n",
+ "\n",
+ "# Since the larger flow quantities are at the bottom for an absorber, the diameter will be choosen to accomodate the bottom condition\n",
+ "Mavg_G = XaG*64+((1-XaG)*29);# [kg/kmol]\n",
+ "G1 = G*(273/Temp)*(P/101.33)*(1/22.41);# [kmol/s]\n",
+ "G2 = G1*Mavg_G;# [kg/s]\n",
+ "Density_G = G2/G;# [kg/cubic m]\n",
+ "# Assuming Complete absorption of SO2\n",
+ "sulphur_removed = G1*XaG*64;# [kg/s]\n",
+ "abcissa = (L/G)*((Density_G/Density_L)**0.5);\n",
+ "#From Fig. 6.24, using gas pressure drop of 400 (N/square m)/m\n",
+ "ordinate = 0.061;\n",
+ "# For 25 mm ceramic Intalox Saddle:\n",
+ "Cf = 98.0;# [Table 6.3 Pg 196]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscocity_L**0.1*J))**0.5;# [kg/square m.s]\n",
+ "A = G2/G_prime;# [square m]\n",
+ "D = (4*A/math.pi)**0.5;# [m]\n",
+ "print\"The Tower Diameter is \",round(D,4),\" m\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "# Let\n",
+ "D = 1.0;# [m]\n",
+ "A = math.pi*D**2.0/4;# [square m]\n",
+ "# The pressure drop for 8 m of irrigated packing\n",
+ "delta_p = 400*8.0;# [N/square m]\n",
+ "# For dry packing\n",
+ "G_prime = (G2-sulphur_removed)/A;# [kg/square m.s]\n",
+ "P = P-(delta_p/1000.0);# [kN/square m]\n",
+ "Density_G = (29/22.41)*(273.0/Temp)*(P/101.33);# [kg/cubic m]\n",
+ "# From Table 6.3 (Pg 196)\n",
+ "Cd = 241.5;\n",
+ "# From Eqn. 6.68\n",
+ "delta_p_by_z = Cd*G_prime**2/Density_G;# [N/square m for 1m of packing]\n",
+ "pressure_drop = delta_p+delta_p_by_z;# [N/square m]\n",
+ "V = 7.5;# [m/s]\n",
+ "head_loss = 1.5*V**2.0/2;# [N.m/kg]\n",
+ "head_loss = head_loss*Density_G;# [N/square m]\n",
+ "Power = (pressure_drop+head_loss)*(G2-sulphur_removed)/(Density_G*1000.0);# [kW]\n",
+ "eta = 0.6;\n",
+ "Power = Power/eta;# [kW]\n",
+ "print\"The Power for the fan motor is \",round(Power,2),\" kW\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.5 - Page: 200\n",
+ "\n",
+ "\n",
+ "The Tower Diameter is 0.981 m\n",
+ "\n",
+ "The Power for the fan motor is 4.49 kW\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6: Page 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.6\n",
+ "# Page: 204\n",
+ "\n",
+ "print'Illustration 6.6 - Page: 204\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# Gas\n",
+ "Mavg_G = 11.0;# [kg/kmol]\n",
+ "viscocity_G = 10**(-5);# [kg/m.s]\n",
+ "Pt = 107.0;# [kN/square m]\n",
+ "Dg = 1.30*10**(-5);# [square m/s]\n",
+ "Temp = 273.0+27;# [K]\n",
+ "G_prime = 0.716;# [kg/square m.s]\n",
+ "\n",
+ "# Liquid:\n",
+ "Mavg_L = 260.0;\n",
+ "viscocity_L = 2*10**(-3);# [kg/m.s]\n",
+ "Density_L = 840.0;# [kg/cubic m]\n",
+ "sigma = 3*10.0**(-2);# [N/m]\n",
+ "Dl = 4.71*10**(-10);# [square m/s]\n",
+ "#******#\n",
+ "\n",
+ "#Gas:\n",
+ "Density_G = (Mavg_G/22.41)*(Pt/101.33)*(273/Temp);# [kg/cubic m]\n",
+ "ScG = viscocity_G/(Density_G*Dg);\n",
+ "G = G_prime/Mavg_G;# [kmol/square m.s]\n",
+ "\n",
+ "# Liquid:\n",
+ "L_prime = 2.71;# [kg/square m.s]\n",
+ "ScL = viscocity_L/(Density_L*Dl);\n",
+ "\n",
+ "# Holdup:\n",
+ "# From Table 6.5 (Pg 206), L_prime = 2.71 kg/square m.s\n",
+ "Ds = 0.0472;# [m]\n",
+ "beeta = 1.508*Ds**0.376;\n",
+ "shiLsW = 5.014*10**(-5)/Ds**1.56;# [square m/cubic m]\n",
+ "shiLtW = (2.32*10**(-6))*(737.5*L_prime)**beeta/(Ds**2);# [square m/cubic m]\n",
+ "shiLoW = shiLtW-shiLsW;# [square m/cubic m]\n",
+ "H = (1404*(L_prime**0.57)*(viscocity_L**0.13)/((Density_L**0.84)*((3.24*L_prime**0.413)-1)))*(sigma/0.073)**(0.2817-0.262*math.log10(L_prime));\n",
+ "shiLo = shiLoW*H;# [square m/cubic m]\n",
+ "shiLs = 4.23*10**(-3)*(viscocity_L**0.04)*(sigma**0.55)/((Ds**1.56)*(Density_L**0.37));# [square m/cubic m]\n",
+ "shiLt = shiLo+shiLs;# [square m/cubic m]\n",
+ "\n",
+ "# Interfacial Area:\n",
+ "# From Table 6.4 (Pg 205)\n",
+ "m = 62.4;\n",
+ "n = (0.0240*L_prime)-0.0996;\n",
+ "p = -0.1355;\n",
+ "aAW = m*((808*G_prime/(Density_G**0.5))**n)*(L_prime**p);# [square m/cubic m]\n",
+ "# From Eqn. 6.73\n",
+ "aA = aAW*shiLo/shiLoW;# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196)\n",
+ "e = 0.75;\n",
+ "# From Eqn. 6.71\n",
+ "eLo = e-shiLt;\n",
+ "# From Eqn. 6.70\n",
+ "def f9(Fg):\n",
+ " return ((Fg*ScG**(2.0/3))/G)-1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36) \n",
+ "Fg = fsolve(f9,1);# [kmol/square m.s]\n",
+ "# From Eqn. 6.72:\n",
+ "def f10(Kl):\n",
+ " return (Kl*Ds/Dl)-(25.1*(Ds*L_prime/viscocity_L)**0.45)*ScL**0.5\n",
+ "Kl = fsolve(f10,1);# [(kmol/square m.s).(kmol/cubic m)]\n",
+ "# Since the value of Kl is taken at low conc., it can be converted into Fl\n",
+ "c = (Density_L/Mavg_L);# [kmol/cubic m]\n",
+ "Fl = Kl*c;# [kmol/cubic m]\n",
+ "print\"The volumetric coeffecients are\\n\"\n",
+ "print\"Based on Gas Phase \",round(Fg*aA,3),\" kmol/cubic m.s\\n\"\n",
+ "print\"based on Liquid Phase\",round(Fl*aA,3),\" kmol/cubic m.s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.6 - Page: 204\n",
+ "\n",
+ "\n",
+ "The volumetric coeffecients are\n",
+ "\n",
+ "Based on Gas Phase 0.071 kmol/cubic m.s\n",
+ "\n",
+ "based on Liquid Phase 0.014 kmol/cubic m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7: Page 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.7\n",
+ "# Page: 207\n",
+ "\n",
+ "print'Illustration 6.7 - Page: 207\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#****Data****#\n",
+ "# Air\n",
+ "G_prime = 1.10;# [kg/square m.s]\n",
+ "viscocity_G = 1.8*10**(-5);# [kg/m.s]\n",
+ "ScG = 0.6;# [for air water mixture]\n",
+ "Temp1 = 273+20.0;# [K]\n",
+ "\n",
+ "# Water\n",
+ "L_prime = 5.5;# [kg/square m.s]\n",
+ "#*****#\n",
+ "\n",
+ "# Air:\n",
+ "Ma = 29.0;# [kg/kmol]\n",
+ "G = G_prime/Ma;# [kmol/square m.s]\n",
+ "Density_G = (Ma/22.41)*(273.0/Temp1);\n",
+ "Cpa = 1005.0;# [N.m/kg.K]\n",
+ "PrG = 0.74;\n",
+ "\n",
+ "# Liquid:\n",
+ "kth = 0.587;# [W/m.K]\n",
+ "Cpb = 4187.0;# [N.m/kg.K]\n",
+ "viscocity_L = 1.14*10**(-3);# [kg/m.s]\n",
+ "\n",
+ "# From Table 6.5 (Pg 206)\n",
+ "Ds = 0.0725;# [m]\n",
+ "beeta = 1.508*(Ds**0.376);\n",
+ "shiLtW = (2.09*10**(-6))*(737.5*L_prime)**beeta/(Ds**2);# [square m/cubic m]\n",
+ "shiLsW = 2.47*10**(-4)/(Ds**1.21);# [square m/cubic m]\n",
+ "shiLoW = shiLtW-shiLsW;# [square m/cubic m]\n",
+ "# From Table 6.4 (Pg 205)\n",
+ "m = 34.03;\n",
+ "n = 0.0;\n",
+ "p = 0.362;\n",
+ "aAW = m*(808.0*G_prime/Density_G**0.5)**(n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Eqn. 6.75\n",
+ "aVW = 0.85*aAW*shiLtW/shiLoW;# [square m/cubic m]\n",
+ "# From Table 6.3\n",
+ "e = 0.74;\n",
+ "eLo = e-shiLtW;\n",
+ "# From Eqn. 6.70\n",
+ "def f11(Fg):\n",
+ " return ((Fg*ScG**(2.0/3))/G)-1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36)\n",
+ "Fg = fsolve(f11,1);# [kmol/square m.s]\n",
+ "# Since the liquid is pure water. It has no mass trnsfer coeffecient.\n",
+ "# For such process we need convective heat transfer coeffecient for both liquid & gas.\n",
+ "# Asuming Jd = Jh\n",
+ "# From Eqn. 6.70\n",
+ "Jh = 1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36);\n",
+ "Hg = Jh*Cpa*G_prime/(PrG**(2.0/3));# [W/square m.K]\n",
+ "PrL = Cpb*viscocity_L/kth;\n",
+ "# Heat transfer analog of Eqn. 6.72\n",
+ "Hl = 25.1*(kth/Ds)*(Ds*L_prime/viscocity_L)**0.45*PrL**0.5;# [W/square m.K]\n",
+ "print\"The volumetric coeffecients are\\n\"\n",
+ "print\"Based on Gas Phase \",round(Hg*aVW), \"W/cubic m.K\\n\"\n",
+ "print\"based on Liquid Phase\",round(Hl*aVW,2),\" W/cubic m.K\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.7 - Page: 207\n",
+ "\n",
+ "\n",
+ "The volumetric coeffecients are\n",
+ "\n",
+ "Based on Gas Phase 3183.0 W/cubic m.K\n",
+ "\n",
+ "based on Liquid Phase 503701.46 W/cubic m.K\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.1\n",
+ "# Page: 494\n",
+ "\n",
+ "print'Illustration 10.1 - Page: 494\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "xF = 0.30;# [mol fraction]\n",
+ "yS = 0;# [mol fraction]\n",
+ "S1 = 40.0;# [kg]\n",
+ "B1 = 40.0;# [kg]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data at 20 OC:\n",
+ "# Wa: Wt. percent of a\n",
+ "# Wb: Wt. percent of b\n",
+ "# Wc: Wt. percent of c\n",
+ "# Data1 = [Wc Wa Wb]\n",
+ "# Data1: water layer\n",
+ "Data1 = numpy.array([(0.69 ,98.1, 1.2),(1.41, 97.1 ,1.5),(2.89 ,95.5 ,1.6),(6.42 ,91.7 ,1.9),(13.30, 84.4, 2.3),(25.50 ,71.1 ,3.4),(36.70 ,58.9 ,4.4),(44.30 ,45.1 ,10.6),(46.40 ,37.1 ,16.5)])\n",
+ "# Data2: isopropyl ether layer\n",
+ "Data2 = numpy.array([(0.18 ,0.5 ,99.3),(0.37, 0.7 ,98.9),(0.79, 0.8, 98.4),(1.93 ,1, 97.1),(4.82, 1.9, 93.3),(11.40, 3.9, 84.7),(21.60, 6.9, 71.5),(31.10, 10.8, 58.1),(36.20 ,15.1 ,48.7)])\n",
+ "\n",
+ "plt.plot((Data1[:,2])/100,(Data1[:,0])/100,label=\"x Vs fraction ether\")\n",
+ "plt.plot((Data2[:,2])/100,(Data2[:,0])/100,label=\"y Vs fraction ether\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='lower center');\n",
+ "ax=pylab.gca()\n",
+ "ax.set_xlabel(\"Wt fraction of isopropyl ether\");\n",
+ "ax.set_ylabel(\"Wt fraction of acetic acid\");\n",
+ "plt.ylim((0,0.3))\n",
+ "plt.xlim((0,1))\n",
+ "plt.show();\n",
+ "# x: Wt fraction of acetic acid in water layer.\n",
+ "# y: Wt fraction of acetic acid in isopropyl layer.\n",
+ "\n",
+ "# The rectangular coordinates of Fig 10.9(a) will be used but only upto x = 0.30\n",
+ "\n",
+ "# Stage 1:\n",
+ "F = 100;# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "M1 = F+S1;# [kg]\n",
+ "# From Eqn. 10.5:\n",
+ "xM1 = ((F*xF)+(S1*yS))/M1;\n",
+ "# From Fig. 10.15 (Pg 495):\n",
+ "# Point M1 is located on the line FB and with the help of tie line passing through M1:\n",
+ "x1 = 0.258;# [mol fraction]\n",
+ "y1 = 0.117;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E1 = (M1*(xM1-x1)/(y1-x1));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R1 = M1-E1;# [kg]\n",
+ "\n",
+ "# Stage 2:\n",
+ "S2 = 40;# [kg]\n",
+ "B2 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M2 = R1+B2;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM2 = ((R1*x1)+(S2*yS))/M2;\n",
+ "# Point M2 is located on the line R1B and the tie line passing through R2E2 through M2:\n",
+ "x2 = 0.227;\n",
+ "y2 = 0.095;\n",
+ "# From Eqn. 10.8:\n",
+ "E2 = (M2*(xM2-x2)/(y2-x2));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R2 = M2-E2;# [kg]\n",
+ "\n",
+ "# Stage 3:\n",
+ "S3 = 40;# [kg]\n",
+ "B3 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M3 = R2+B3;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM3 = ((R2*x2)+(S3*yS))/M3;\n",
+ "# Point M3 is located on the line R2B and the tie line passing through R3E3 through M3:\n",
+ "x3 = 0.20;# [mol fraction]\n",
+ "y3 = 0.078;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E3 = (M3*(xM3-x3)/(y3-x3));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R3 = M3-E3;# [kg]\n",
+ "Ac = x3*R3;\n",
+ "print\"The composited extract is\",round((E1+E2+E3),2),\" kg\\n\"\n",
+ "print\"The acid content is \",round(((E1*y1)+(E2*y2)+(E3*y3)),2),\" kg\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# If an extraction to give the same final raffinate concentration were to be done in single stage, the point M would be at the intersection of tie line R3E3 and the line BF.\n",
+ "x = 0.20;# [mol fraction]\n",
+ "xM = 0.12;# [mol fraction]\n",
+ "# From Eqn. 10.6:\n",
+ "S = F*(xF-xM)/(xM-yS);# [kg]\n",
+ "print round(S,2),\"kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.1 - Page: 494\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nhs2vBOrlc6whwIB8lmu3bt10yJAhOmTIEH322Wf1nnvStXt3Jynp6emanp6em6R4ns957sfxvXyI\nnXvsSzeVxmWXXaYnnniitm7dOvfLLj9ffPGFJicn6969e1VV9fTTT9cRI0bkrm/cuLG+9NJLun37\n9kLPl56enm+BsWbNmgL32bp1q4qI/vnnn5qdna1VqlTRpUuXHrJdzrEKKjDeeOMNPe200w7ap0OH\nDjp27FhVVU1NTdXHH388d92oUaM0LS0t35huu+02feCBBw5adtxxx+lnn32mqgUXGOvXr89d1q5d\nO33rrbdUVbVFixYHbb9hwwatUKGCZmdne8pR+HutrN/Pzz77bNR8Xouan756ujbo3UCnz5peJsdL\nT0/Xbt265X5fRmOBUR74EacTw4ruVULLPNtcBHykoQJmrvu8KlDdfV4N+BLolM85NK/nn1e9445D\nFse98DdKWYuF//omT56sIqKvvPJKkds2b95cJ02apKtXr9YKFSro//73v9x18+fP1y5dumjNmjX1\n7LPP1jlz5uR7jIIKjP379+cuy87O1oEDB2qzZs20Ro0ampycrCKiP/30k/7+++8qIrpr165Djl1U\ngfHkk0/qVVddddA+1157rT7xxBOq6hQYr776ar775tW5c2etWrWqJicn507VqlXTSZMmqWrBBUZ4\nbOHnq1KlSu5rzZmqVKmiGzZsyDdHefn5XvPzM+KHyyddro99+pgvxy5pgeFbG4aq7gd6A9OB74C3\nVHWFiPQSkV7uNh8BP4nIauAl4A539/rA5yKyGPga+FBVZ3g5b6L+SioW6mf9snPnTvr3788tt9zC\nkCFDcuvMC3LjjTfyxhtvMH78eNLS0qhbt27uur/85S+8//77bNq0icsvv5yrr766WLGEd9Q4YcIE\nJk+ezOzZs9m+fTtr1qwBnH/S6tSpQ+XKlVm9enWhx8hPw4YN+fnnnw9a9vPPP9OwYd4mwqI1btyY\n++67j61bt+ZOO3fu5JprrvEUS37HmzZt2kHH2717Nw0aNMjdJqjOLGPtM5Iz0NIv238JOpRcvt6H\noaofq+pxqtpcVf/pLntJVV8K26a3u761qi50l/2kqm3c6cScfb3Ys8d+JZVo+vXrR7t27Xj55Ze5\n+OKLue222wrd/sYbb2TmzJm88sordOvWLXd5VlYWEyZMYPv27SQlJVG9enWSkpJKHNfOnTupVKkS\n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\niRUYxhhjPPl/ptoLDFmMWJUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x917b748>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composited extract is 135.05 kg\n",
+ "\n",
+ "The acid content is 13.01 kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "150.0 kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter6_1.ipynb b/Mass_-_Transfer_Operations/Chapter6_1.ipynb
new file mode 100755
index 00000000..d9b08193
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter6_1.ipynb
@@ -0,0 +1,1059 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ce06499e0802b1a354db3b54c156495e1f9e00501c129efee55c325fbd5e394e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Equipment For Gas-Liquid Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1: Page 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.1\n",
+ "# Page: 145\n",
+ "\n",
+ "print'Illustration 6.1 - Page: 145\\n\\n'\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# w = Gas flow rate per orifice\n",
+ "w = 0.055/50;# [kg/s]\n",
+ "L = 8*10**(-4);# [liquid flow rate, cubic m/s]\n",
+ "d = 0.003;# [diameter of the orifice,m]\n",
+ "viscocity_gas = 1.8*10**(-5);# [kg/m.s]\n",
+ "#******#\n",
+ "\n",
+ "Re = 4*w/(math.pi*d*viscocity_gas);\n",
+ "Dp = 0.0071*Re**(-0.05);# [m]\n",
+ "h = 3.0;# [height of vessel,m]\n",
+ "P_atm = 101.3;# [kN/square m]\n",
+ "Density_water = 1000.0;# [kg/cubic m]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "Temp = 273+25;# [K]\n",
+ "P_orifice = P_atm+(h*Density_water*g/1000);# [kN/square m]\n",
+ "P_avg = P_atm+((h/2.0)*Density_water*g/1000);# [kN/square m]\n",
+ "Density_gas = (29/22.41)*(273.0/Temp)*(P_avg/P_atm);# [kg/cubic m]\n",
+ "D = 1.0;# [dia of vessel,m]\n",
+ "Area = (math.pi*D**2)/4;# [square m]\n",
+ "Vg = 0.055/(Area*Density_gas);# [m/s]\n",
+ "Vl = L/Area;# [m/s]\n",
+ "sigma = 0.072;# [N/m]\n",
+ "# From fig. 6.2 (Pg 143)\n",
+ "abscissa = 0.0516;# [m/s]\n",
+ "Vg_by_Vs = 0.11;\n",
+ "Vs = Vg/Vg_by_Vs;# [m/s]\n",
+ "def f6(shi_g):\n",
+ " return Vs-(Vg/shi_g)+(Vl/(1-shi_g)) \n",
+ "shi_g = fsolve(f6,0.5);\n",
+ "dp = ((Dp**3)*(P_orifice/P_avg))**(1.0/3);# [bubble diameter,m]\n",
+ "# From eqn. 6.9\n",
+ "a = 6.0*shi_g/dp;# [specific interfacial area,square m]\n",
+ "print\"The Specific Interfacial Area is \",round(a,2),\" square m/cubic m\\n\"\n",
+ "\n",
+ "# For diffsion of Cl2 in H20\n",
+ "Dl = 1.44*10**(-9);# [square m/s]\n",
+ "viscocity_water = 8.937*10**(-4);# [kg/m.s]\n",
+ "Reg = dp*Vs*Density_water/viscocity_water;\n",
+ "Scl = viscocity_water/(Density_water*Dl);\n",
+ "# From Eqn.6.11\n",
+ "Shl = 2+(0.0187*(Reg**0.779)*(Scl**0.546)*(dp*(g**(1.0/3))/(Dl**(2.0/3)))**0.116);\n",
+ "# For dilute soln. of Cl2 in H20\n",
+ "c = 1000/18.02;# [kmol/cubic m]\n",
+ "Fl = (c*Dl*Shl)/dp;# [kmol/square m.s]\n",
+ "print\"Mass Transfer coeffecient is \",round(Fl,5),\" kmol/square m.s\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.1 - Page: 145\n",
+ "\n",
+ "\n",
+ "The Specific Interfacial Area is 148.13 square m/cubic m\n",
+ "\n",
+ "Mass Transfer coeffecient is 0.01335 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2: Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.2\n",
+ "# Page: 157\n",
+ "\n",
+ "print'Illustration 6.2 - Page: 157\\n\\n'\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = N2 b = H2O\n",
+ "L = 9.5*10**(-4);# [cubic m/s]\n",
+ "G = 0.061;# [kg/s]\n",
+ "Temp = 273.0+25;# [K]\n",
+ "#*****#\n",
+ "\n",
+ "print\"Construction Arrangement\\n\"\n",
+ "print\"Use 4 vertical wall baffles, 100 mm wide at 90 degree intervals.\\n\"\n",
+ "print\"Use a 305 mm dameter, a six bladed disk flat blade turbine impeller, arranged axially, 300 mm from the bottom of vessel\\n\"\n",
+ "print\"The sparger underneath the impeller will be in the form of a 240 mm dameter ring made of 12.7 mm tubing drilled in the top with 3.18 mm dia holes\\n\"\n",
+ "Di = 0.305;# [m]\n",
+ "Do = 0.00316;# [m]\n",
+ "viscocity_a = 1.8*10**(-5);# [kg/m.s]\n",
+ "Re_g = 35000;\n",
+ "Ma = 28.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# w = Gas flow rate per orifice\n",
+ "w = Re_g*math.pi*Do*viscocity_a/4.0;# [kg/s]\n",
+ "N_holes = G/w;\n",
+ "Interval = math.pi*240/round(N_holes);\n",
+ "print\"The number of holes is \",round(N_holes),\" at approx \",round(Interval),\" mm interval around the sparger ring\\n\"\n",
+ "\n",
+ "viscocity_b = 8.9*10**(-4);# [kg/m.s]\n",
+ "Sigma = 0.072;# [N/m]\n",
+ "Density_b = 1000.0;# [kg/cubic m]\n",
+ "D = 1.0;# [dia of vessel,m]\n",
+ "g = 9.81;# [m/s**2]\n",
+ "# From Eqn. 6.18\n",
+ "def f7(N):\n",
+ " return (N*Di/(Sigma*g/Density_b)**0.25)-1.22-(1.25*D/Di)\n",
+ "N_min = fsolve(f7,2);# [r/s]\n",
+ "N = 5.0;# [r/s]\n",
+ "Re_l = ((Di**2)*N*Density_b/viscocity_b);\n",
+ "# From fig 6.5 (Pg 152)\n",
+ "Po = 5.0;\n",
+ "P = Po*Density_b*(N**3)*(Di**5);\n",
+ "h = 0.7;# [m]\n",
+ "P_atm = 101.33;# [kN/square m]\n",
+ "P_gas = P_atm+(h*Density_b*g/1000.0);# [kN/square m]\n",
+ "Qg = (G/Ma)*22.41*(Temp/273.0)*(P_atm/P_gas);# [cubic m/s]\n",
+ "# From Fig.6.7 (Pg 155)\n",
+ "abcissa = Qg/(N*(Di**3));\n",
+ "# abcissa is off scale\n",
+ "Pg_by_P = 0.43;\n",
+ "Pg = 0.43*P;# [W]\n",
+ "Vg = Qg/(math.pi*(D**2)/4);# [superficial gas velocity,m/s]\n",
+ "check_value = (Re_l**0.7)*((N*Di/Vg)**0.3);\n",
+ "vl = math.pi*(D**2)/4;# [cubic m]\n",
+ "# Since value<30000\n",
+ "# From Eqn. 6.21, Eqn.6.23 & Eqn. 6.24\n",
+ "K = 2.25;\n",
+ "m = 0.4;\n",
+ "Vt = 0.250;# [m/s]\n",
+ "shi = 1.0;\n",
+ "err = 1.0;\n",
+ "while (err>10**(-3)):\n",
+ " a = 1.44*((Pg/vl)**0.4)*((Density_b/(Sigma**3))**0.2)*((Vg/Vt)**0.5);# [square m/cubic m]\n",
+ " shin = (0.24*K*((viscocity_a/viscocity_b)**0.25)*((Vg/Vt)**0.5))**(1.0/(1-m));\n",
+ " Dp = K*((vl/Pg)**0.4)*((Sigma**3/Density_b)**0.2)*(shin**m)*((viscocity_a/viscocity_b)**0.25);# [m]\n",
+ " err = abs(shi-shin);\n",
+ " Vt = Vt-0.002;# [m/s]\n",
+ " shi = shin;\n",
+ "\n",
+ "\n",
+ "# For N2 in H2\n",
+ "Dl = 1.9*10**(-9);# [square m/s]\n",
+ "Ra = 1.514*10**(6);\n",
+ "# By Eqn. 6.25\n",
+ "Shl = 2.0+(0.31*(Ra**(1.0/3)));\n",
+ "# For dilute soln.\n",
+ "c = 1000.0/Mb;# [kmol/cubic m]\n",
+ "Fl = Shl*c*Dl*1.0/Dp;# [kmol/square m.s]\n",
+ "print\"The average gas-bubble diameter is \",(\"{:.2e}\".format(Dp)),\" m\\n\",\n",
+ "print\"Gas Holdup:\\n\",round(shi,5)\n",
+ "print\"Interfacial area:\",round(a,4),\" square m/cubic m \\n\"\n",
+ "print\"Mass transfer coffecient:\",(\"{:.2e}\".format(Fl)),\"kmol/square m.s\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.2 - Page: 157\n",
+ "\n",
+ "\n",
+ "Construction Arrangement\n",
+ "\n",
+ "Use 4 vertical wall baffles, 100 mm wide at 90 degree intervals.\n",
+ "\n",
+ "Use a 305 mm dameter, a six bladed disk flat blade turbine impeller, arranged axially, 300 mm from the bottom of vessel\n",
+ "\n",
+ "The sparger underneath the impeller will be in the form of a 240 mm dameter ring made of 12.7 mm tubing drilled in the top with 3.18 mm dia holes\n",
+ "\n",
+ "The number of holes is 39.0 at approx 19.0 mm interval around the sparger ring\n",
+ "\n",
+ "The average gas-bubble diameter is 6.35e-04 m\n",
+ "Gas Holdup:\n",
+ "0.02265\n",
+ "Interfacial area: 214.0106 square m/cubic m \n",
+ "\n",
+ "Mass transfer coffecient: 6.24e-03 kmol/square m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3: Page 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.3\n",
+ "# Page: 174\n",
+ "\n",
+ "print'Illustration 6.3 - Page: 174\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = methanol b = water\n",
+ "G = 0.100;# [kmol/s]\n",
+ "L = 0.25;# [kmol/s]\n",
+ "Temp = 273+95;# [K]\n",
+ "XaG = 0.18;# [mol % in gas phase]\n",
+ "MaL = 0.15;# [mass % in liquid phase]\n",
+ "#*****#\n",
+ "\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "Mavg_G = XaG*Ma+((1-XaG)*Mb);# [kg/kmol]\n",
+ "Density_G = (Mavg_G/22.41)*(273.0/Temp);# [kg/cubic cm]\n",
+ "Q = G*22.41*(Temp/273.0);# [cubic cm/s]\n",
+ "Density_L = 961.0;# [kg/cubic cm]\n",
+ "Mavg_L = 1.0/((MaL/Ma)+(1-MaL)/Mb);# [kg/kmol]\n",
+ "q = L*Mavg_L/Density_L;\n",
+ "\n",
+ "# Perforations\n",
+ "print\"Perforations\\n\"\n",
+ "print\"Do = 4.5mm on an equilateral triangle pitch 12 mm between the hole centres, punched in sheet metal 2 mm thick\\n\"\n",
+ "Do = 0.0045;# [m]\n",
+ "pitch = 0.012;# [m]\n",
+ "# By Eqn.6.31\n",
+ "Ao_by_Aa = 0.907*(Do/pitch)**2;\n",
+ "print\"The ratio of Hole Area By Active Area is:\",round(Ao_by_Aa,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Tower Diameter\n",
+ "print\"Tower Diameter\\n\"\n",
+ "t = 0.50;# [tray spacing,m]\n",
+ "print\"Tower Spacing:\",t,\" m\\n\"\n",
+ "# abcissa = (L/G)*(Density_G/Density_L)^0.5 = (q/Q)*(Density_L/Density_G)**0.5\n",
+ "abcissa = (q/Q)*(Density_L/Density_G)**0.5;\n",
+ "# From Table 6.2 (Pg 169)\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "if (abcissa<0.1):\n",
+ " abcissa = 0.1;\n",
+ "\n",
+ "sigma = 0.040;# [N/m]\n",
+ "# From Eqn.6.30\n",
+ "Cf = ((alpha*math.log10(1.0/abcissa))+beeta)*(sigma/0.02)**0.2;\n",
+ "# From Eqn. 6.29\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1/2);# [m/s]\n",
+ "# Using 80% of flooding velocity\n",
+ "V = 0.8*Vf;# [m/s]\n",
+ "An = Q/V;# [square m]\n",
+ "# The tray area used by one downspout = 8.8%\n",
+ "At = An/(1-0.088);# [square m]\n",
+ "D = (4*At/math.pi)**(1.0/2);# [m]\n",
+ "# Take D = 1.25 m\n",
+ "D = 1.25; #[m]\n",
+ "At = math.pi*(D**2)/4;# [corrected At, square m]\n",
+ "W = 0.7*D;# [weir length,m]\n",
+ "Ad = 0.088*At;# [square m]\n",
+ "# For a design similar to Fig 6.14 (Pg 168)\n",
+ "# A 40 mm wide supporting ring, beams between downspouts and a 50 mm wide disengaging & distributing zones these areas total 0.222 square m\n",
+ "Aa = At-(2.0*Ad)-0.222;\n",
+ "print\"Weir Length:\",round(W,4),\"\\n\"\n",
+ "print\"Area for perforated sheet: \",round(Aa,4),\" square m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Weir crest h1 & Weir height hw\n",
+ "print\"Weir crest h1 & Weir height hw\\n\"\n",
+ "h1 = 0.025;# [m]\n",
+ "h1_by_D = h1/D;\n",
+ "D_by_W = D/W;\n",
+ "# From Eqn. 6.34\n",
+ "Weff_by_W = math.sqrt(((D_by_W)**2)-((((D_by_W)**2-1)**0.5)+(2*h1_by_D*D_by_W))**2);\n",
+ "# Set hw to 50 mm\n",
+ "hw = 0.05;# [m]\n",
+ "print\"Weir crest: \",h1,\" m\\n\"\n",
+ "print\"Weir height: \",hw,\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Dry Pressure Drop\n",
+ "print\"Dry Pressure Drop\\n\"\n",
+ "l = 0.002;# [m]\n",
+ "# From Eqn. 6.37\n",
+ "Co = 1.09*(Do/l)**0.25;\n",
+ "Ao = 0.1275*Aa;# [square m]\n",
+ "Vo = Q/Ao;# [m/sec]\n",
+ "viscocity_G = 1.25*10**(-5);# [kg/m.s]\n",
+ "Re = Do*Vo*Density_G/viscocity_G;\n",
+ "# From \"The Chemical Engineers Handbook,\" 5th Edition fig 5.26\n",
+ "fr = 0.008;\n",
+ "g = 9.81;# [m/s**2]\n",
+ "# From Eqn. 6.36\n",
+ "def f(hd):\n",
+ " return (2*hd*g*Density_L/(Vo**2*Density_G))-(Co*(0.40*(1.25-(Ao/An))+(4*l*fr/Do)+(1-(Ao/An))**2))\n",
+ "hd = fsolve(f,1);\n",
+ "print\"Dry Pressure Drop:\",round(hd,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Hydraulic head hl\n",
+ "print\"Hydraulic head hl\"\n",
+ "Va = Q/Aa;# [m/s]\n",
+ "z = (D+W)/2.0;# [m]\n",
+ "# From Eqn. 6.38\n",
+ "hl = 6.10*10**(-3)+(0.725*hw)-(0.238*hw*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "print\"Hydraulic head: \",round(hl,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#Residual Pressure drop hr\n",
+ "print\"Residual Pressure drop hr\\n\"\n",
+ "# From Eqn. 6.42\n",
+ "hr = 6*sigma/(Density_L*Do*g);# m\n",
+ "print\"Residual Pressure Drop:\",round(hr,4),\"m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Total Gas pressure Drop hg\n",
+ "print\"Total Gas pressure Drop hg\\n\"\n",
+ "# From Eqn. 6.35\n",
+ "hg = hd+hl+hr;# [m]\n",
+ "print\"Total gas pressure Drop: \",round(hg,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Pressure loss at liquid entrance h2\n",
+ "print\"Pressure loss at liquid entrance h2\\n\"\n",
+ "# Al: Area for the liquid flow under the apron\n",
+ "Al = 0.025*W;# [square m]\n",
+ "Ada = min(Al,Ad);\n",
+ "# From Eqn. 6.43\n",
+ "h2 = (3.0/(2*g))*(q/Ada)**2;\n",
+ "print\"Pressure loss at liquid entrance:\",round(h2,4),\"m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Backup in Downspout h3\n",
+ "print\"Backup in Downspout h3\\n\"\n",
+ "# From Eqn.6.44\n",
+ "h3 = hg+h2;\n",
+ "print\"Backup in Downspout:\",round(h3,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Check on Flooding\n",
+ "print\"Check on Flooding\\n\"\n",
+ "if((hw+h1+h3)<(t/2.0)):\n",
+ " print\"Choosen Tower spacing is satisfactory\\n\"\n",
+ "else:\n",
+ " print\"Choosen Tower spacing is not satisfactory\\n\"\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Weeping Velocity\n",
+ "print\"Weeping Velocity\\n\"\n",
+ "print\"For W/D ratio \",W/D,\" weir is set at \",0.3296*D,\" m from the center from the tower\\n\",\n",
+ "Z = 2*(0.3296*D);# [m]\n",
+ "# From Eqn.6.46\n",
+ "def f8(Vow):\n",
+ " return (Vow*viscocity_G/(sigma))-(0.0229*((viscocity_G**2/(sigma*Density_G*Do))*(Density_L/Density_G))**0.379)*((l/Do)**0.293)*(2*Aa*Do/(math.sqrt(3.0)*(pitch**3)))**(2.8/((Z/Do)**0.724))\n",
+ "Vow = fsolve(f8,0.1);# [m/s]\n",
+ "print\"The minimum gas velocity through the holes below which excessive weeping is likely:\",round(Vow,3),\" m/s\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Entrainment\n",
+ "print\"Entrainment\\n\"\n",
+ "V_by_Vf = V/Vf;\n",
+ "# From Fig.6.17 (Pg 173), V/Vf = 0.8 & abcissa = 0.0622\n",
+ "E = 0.05;\n",
+ "print\"Entrainment:\\n\",E\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.3 - Page: 174\n",
+ "\n",
+ "\n",
+ "Perforations\n",
+ "\n",
+ "Do = 4.5mm on an equilateral triangle pitch 12 mm between the hole centres, punched in sheet metal 2 mm thick\n",
+ "\n",
+ "The ratio of Hole Area By Active Area is: 0.1275 \n",
+ "\n",
+ "\n",
+ "\n",
+ "Tower Diameter\n",
+ "\n",
+ "Tower Spacing: 0.5 m\n",
+ "\n",
+ "Weir Length: 0.875 \n",
+ "\n",
+ "Area for perforated sheet: 0.7892 square m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Weir crest h1 & Weir height hw\n",
+ "\n",
+ "Weir crest: 0.025 m\n",
+ "\n",
+ "Weir height: 0.05 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dry Pressure Drop\n",
+ "\n",
+ "Dry Pressure Drop: 0.0654 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Hydraulic head hl\n",
+ "Hydraulic head: 0.0106 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Residual Pressure drop hr\n",
+ "\n",
+ "Residual Pressure Drop: 0.0057 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Total Gas pressure Drop hg\n",
+ "\n",
+ "Total gas pressure Drop: 0.0816 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Pressure loss at liquid entrance h2\n",
+ "\n",
+ "Pressure loss at liquid entrance: 0.008 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Backup in Downspout h3\n",
+ "\n",
+ "Backup in Downspout: 0.0897 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Check on Flooding\n",
+ "\n",
+ "Choosen Tower spacing is satisfactory\n",
+ "\n",
+ "\n",
+ "\n",
+ "Weeping Velocity\n",
+ "\n",
+ "For W/D ratio 0.7 weir is set at 0.412 m from the center from the tower\n",
+ "The minimum gas velocity through the holes below which excessive weeping is likely: 8.703 m/s\n",
+ "\n",
+ "\n",
+ "\n",
+ "Entrainment\n",
+ "\n",
+ "Entrainment:\n",
+ "0.05\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4: Page 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.4\n",
+ "# Page: 183\n",
+ "\n",
+ "print'Illustration 6.4 - Page: 183\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "#****Data****#\n",
+ "#From Illustrtion 6.3:\n",
+ "G = 0.100;# [kmol/s]\n",
+ "Density_G = 0.679;# [kg/cubic m]\n",
+ "q = 5*10**(-3);# [cubic m/s]\n",
+ "Va = 3.827;# [m/s]\n",
+ "z = 1.063;# [m]\n",
+ "L = 0.25;# [kmol/s]\n",
+ "hL = 0.0106;# [m]\n",
+ "hW = 0.05;# [m]\n",
+ "Z = 0.824;# [m]\n",
+ "E = 0.05;\n",
+ "ya = 0.18;# [mole fraction methanol]\n",
+ "\n",
+ "# a:CH3OH b:H2O\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "# From Chapter 2:\n",
+ "ScG = 0.865;\n",
+ "Dl = 5.94*10**(-9);# [square m/s]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/ScG**0.5;\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;# [square m/s]\n",
+ "thethaL = hL*z*Z/q;# [s]\n",
+ "NtL = 40000*Dl**0.5*((0.213*Va*Density_G**0.5)+0.15)*thethaL;\n",
+ "# For 15 mass% methanol:\n",
+ "xa = (15.0/Ma)/((15.0/Ma)+(85.0/Mb));\n",
+ "# From Fig 6.23 (Pg 184)\n",
+ "mAC = -(NtL*L)/(NtG*G);# [Slope of AC line]\n",
+ "meqb = 2.50;# [slope of equilibrium line]\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1.0/((1/NtG)+(meqb*G/L)*(1.0/NtL));\n",
+ "# From Eqn. 6.51:\n",
+ "EOG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thethaL);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2.0)*((1+(4*meqb*G*EOG/(L*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EOG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+(math.exp(eta)-1)/(eta*(1+eta/(eta+Pe))));\n",
+ "# From Eqn. 6.60:\n",
+ "EMGE = EMG/(1+(EMG*E/(1-E)));\n",
+ "print\"Efficiency of Sieve trays: \",round(EMGE,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.4 - Page: 183\n",
+ "\n",
+ "\n",
+ "Effeciency of Sieve trays: 0.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5: Page 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.5\n",
+ "# Page: 200\n",
+ "\n",
+ "print'Illustration 6.5 - Page: 200\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "# ****Data****#\n",
+ "G = 0.80;# [cubic m/s]\n",
+ "P = 10**2;# [kN/square m]\n",
+ "XaG = 0.07;\n",
+ "Temp = 273+30.0;# [K]\n",
+ "L = 3.8;# [kg/s]\n",
+ "Density_L = 1235.0;# [kg/cubic m]\n",
+ "viscocity_L = 2.5*10**(-3);# [kg/m.s]\n",
+ "#******#\n",
+ "\n",
+ "# a = SO2 b = air\n",
+ "\n",
+ "# Solution (a) \n",
+ "\n",
+ "# Since the larger flow quantities are at the bottom for an absorber, the diameter will be choosen to accomodate the bottom condition\n",
+ "Mavg_G = XaG*64+((1-XaG)*29);# [kg/kmol]\n",
+ "G1 = G*(273/Temp)*(P/101.33)*(1/22.41);# [kmol/s]\n",
+ "G2 = G1*Mavg_G;# [kg/s]\n",
+ "Density_G = G2/G;# [kg/cubic m]\n",
+ "# Assuming Complete absorption of SO2\n",
+ "sulphur_removed = G1*XaG*64;# [kg/s]\n",
+ "abcissa = (L/G)*((Density_G/Density_L)**0.5);\n",
+ "#From Fig. 6.24, using gas pressure drop of 400 (N/square m)/m\n",
+ "ordinate = 0.061;\n",
+ "# For 25 mm ceramic Intalox Saddle:\n",
+ "Cf = 98.0;# [Table 6.3 Pg 196]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscocity_L**0.1*J))**0.5;# [kg/square m.s]\n",
+ "A = G2/G_prime;# [square m]\n",
+ "D = (4*A/math.pi)**0.5;# [m]\n",
+ "print\"The Tower Diameter is \",round(D,4),\" m\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "# Let\n",
+ "D = 1.0;# [m]\n",
+ "A = math.pi*D**2.0/4;# [square m]\n",
+ "# The pressure drop for 8 m of irrigated packing\n",
+ "delta_p = 400*8.0;# [N/square m]\n",
+ "# For dry packing\n",
+ "G_prime = (G2-sulphur_removed)/A;# [kg/square m.s]\n",
+ "P = P-(delta_p/1000.0);# [kN/square m]\n",
+ "Density_G = (29/22.41)*(273.0/Temp)*(P/101.33);# [kg/cubic m]\n",
+ "# From Table 6.3 (Pg 196)\n",
+ "Cd = 241.5;\n",
+ "# From Eqn. 6.68\n",
+ "delta_p_by_z = Cd*G_prime**2/Density_G;# [N/square m for 1m of packing]\n",
+ "pressure_drop = delta_p+delta_p_by_z;# [N/square m]\n",
+ "V = 7.5;# [m/s]\n",
+ "head_loss = 1.5*V**2.0/2;# [N.m/kg]\n",
+ "head_loss = head_loss*Density_G;# [N/square m]\n",
+ "Power = (pressure_drop+head_loss)*(G2-sulphur_removed)/(Density_G*1000.0);# [kW]\n",
+ "eta = 0.6;\n",
+ "Power = Power/eta;# [kW]\n",
+ "print\"The Power for the fan motor is \",round(Power,2),\" kW\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.5 - Page: 200\n",
+ "\n",
+ "\n",
+ "The Tower Diameter is 0.981 m\n",
+ "\n",
+ "The Power for the fan motor is 4.49 kW\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6: Page 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.6\n",
+ "# Page: 204\n",
+ "\n",
+ "print'Illustration 6.6 - Page: 204\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# Gas\n",
+ "Mavg_G = 11.0;# [kg/kmol]\n",
+ "viscocity_G = 10**(-5);# [kg/m.s]\n",
+ "Pt = 107.0;# [kN/square m]\n",
+ "Dg = 1.30*10**(-5);# [square m/s]\n",
+ "Temp = 273.0+27;# [K]\n",
+ "G_prime = 0.716;# [kg/square m.s]\n",
+ "\n",
+ "# Liquid:\n",
+ "Mavg_L = 260.0;\n",
+ "viscocity_L = 2*10**(-3);# [kg/m.s]\n",
+ "Density_L = 840.0;# [kg/cubic m]\n",
+ "sigma = 3*10.0**(-2);# [N/m]\n",
+ "Dl = 4.71*10**(-10);# [square m/s]\n",
+ "#******#\n",
+ "\n",
+ "#Gas:\n",
+ "Density_G = (Mavg_G/22.41)*(Pt/101.33)*(273/Temp);# [kg/cubic m]\n",
+ "ScG = viscocity_G/(Density_G*Dg);\n",
+ "G = G_prime/Mavg_G;# [kmol/square m.s]\n",
+ "\n",
+ "# Liquid:\n",
+ "L_prime = 2.71;# [kg/square m.s]\n",
+ "ScL = viscocity_L/(Density_L*Dl);\n",
+ "\n",
+ "# Holdup:\n",
+ "# From Table 6.5 (Pg 206), L_prime = 2.71 kg/square m.s\n",
+ "Ds = 0.0472;# [m]\n",
+ "beeta = 1.508*Ds**0.376;\n",
+ "shiLsW = 5.014*10**(-5)/Ds**1.56;# [square m/cubic m]\n",
+ "shiLtW = (2.32*10**(-6))*(737.5*L_prime)**beeta/(Ds**2);# [square m/cubic m]\n",
+ "shiLoW = shiLtW-shiLsW;# [square m/cubic m]\n",
+ "H = (1404*(L_prime**0.57)*(viscocity_L**0.13)/((Density_L**0.84)*((3.24*L_prime**0.413)-1)))*(sigma/0.073)**(0.2817-0.262*math.log10(L_prime));\n",
+ "shiLo = shiLoW*H;# [square m/cubic m]\n",
+ "shiLs = 4.23*10**(-3)*(viscocity_L**0.04)*(sigma**0.55)/((Ds**1.56)*(Density_L**0.37));# [square m/cubic m]\n",
+ "shiLt = shiLo+shiLs;# [square m/cubic m]\n",
+ "\n",
+ "# Interfacial Area:\n",
+ "# From Table 6.4 (Pg 205)\n",
+ "m = 62.4;\n",
+ "n = (0.0240*L_prime)-0.0996;\n",
+ "p = -0.1355;\n",
+ "aAW = m*((808*G_prime/(Density_G**0.5))**n)*(L_prime**p);# [square m/cubic m]\n",
+ "# From Eqn. 6.73\n",
+ "aA = aAW*shiLo/shiLoW;# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196)\n",
+ "e = 0.75;\n",
+ "# From Eqn. 6.71\n",
+ "eLo = e-shiLt;\n",
+ "# From Eqn. 6.70\n",
+ "def f9(Fg):\n",
+ " return ((Fg*ScG**(2.0/3))/G)-1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36) \n",
+ "Fg = fsolve(f9,1);# [kmol/square m.s]\n",
+ "# From Eqn. 6.72:\n",
+ "def f10(Kl):\n",
+ " return (Kl*Ds/Dl)-(25.1*(Ds*L_prime/viscocity_L)**0.45)*ScL**0.5\n",
+ "Kl = fsolve(f10,1);# [(kmol/square m.s).(kmol/cubic m)]\n",
+ "# Since the value of Kl is taken at low conc., it can be converted into Fl\n",
+ "c = (Density_L/Mavg_L);# [kmol/cubic m]\n",
+ "Fl = Kl*c;# [kmol/cubic m]\n",
+ "print\"The volumetric coeffecients are\\n\"\n",
+ "print\"Based on Gas Phase \",round(Fg*aA,3),\" kmol/cubic m.s\\n\"\n",
+ "print\"based on Liquid Phase\",round(Fl*aA,3),\" kmol/cubic m.s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.6 - Page: 204\n",
+ "\n",
+ "\n",
+ "The volumetric coeffecients are\n",
+ "\n",
+ "Based on Gas Phase 0.071 kmol/cubic m.s\n",
+ "\n",
+ "based on Liquid Phase 0.014 kmol/cubic m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7: Page 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.7\n",
+ "# Page: 207\n",
+ "\n",
+ "print'Illustration 6.7 - Page: 207\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#****Data****#\n",
+ "# Air\n",
+ "G_prime = 1.10;# [kg/square m.s]\n",
+ "viscocity_G = 1.8*10**(-5);# [kg/m.s]\n",
+ "ScG = 0.6;# [for air water mixture]\n",
+ "Temp1 = 273+20.0;# [K]\n",
+ "\n",
+ "# Water\n",
+ "L_prime = 5.5;# [kg/square m.s]\n",
+ "#*****#\n",
+ "\n",
+ "# Air:\n",
+ "Ma = 29.0;# [kg/kmol]\n",
+ "G = G_prime/Ma;# [kmol/square m.s]\n",
+ "Density_G = (Ma/22.41)*(273.0/Temp1);\n",
+ "Cpa = 1005.0;# [N.m/kg.K]\n",
+ "PrG = 0.74;\n",
+ "\n",
+ "# Liquid:\n",
+ "kth = 0.587;# [W/m.K]\n",
+ "Cpb = 4187.0;# [N.m/kg.K]\n",
+ "viscocity_L = 1.14*10**(-3);# [kg/m.s]\n",
+ "\n",
+ "# From Table 6.5 (Pg 206)\n",
+ "Ds = 0.0725;# [m]\n",
+ "beeta = 1.508*(Ds**0.376);\n",
+ "shiLtW = (2.09*10**(-6))*(737.5*L_prime)**beeta/(Ds**2);# [square m/cubic m]\n",
+ "shiLsW = 2.47*10**(-4)/(Ds**1.21);# [square m/cubic m]\n",
+ "shiLoW = shiLtW-shiLsW;# [square m/cubic m]\n",
+ "# From Table 6.4 (Pg 205)\n",
+ "m = 34.03;\n",
+ "n = 0.0;\n",
+ "p = 0.362;\n",
+ "aAW = m*(808.0*G_prime/Density_G**0.5)**(n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Eqn. 6.75\n",
+ "aVW = 0.85*aAW*shiLtW/shiLoW;# [square m/cubic m]\n",
+ "# From Table 6.3\n",
+ "e = 0.74;\n",
+ "eLo = e-shiLtW;\n",
+ "# From Eqn. 6.70\n",
+ "def f11(Fg):\n",
+ " return ((Fg*ScG**(2.0/3))/G)-1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36)\n",
+ "Fg = fsolve(f11,1);# [kmol/square m.s]\n",
+ "# Since the liquid is pure water. It has no mass trnsfer coeffecient.\n",
+ "# For such process we need convective heat transfer coeffecient for both liquid & gas.\n",
+ "# Asuming Jd = Jh\n",
+ "# From Eqn. 6.70\n",
+ "Jh = 1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36);\n",
+ "Hg = Jh*Cpa*G_prime/(PrG**(2.0/3));# [W/square m.K]\n",
+ "PrL = Cpb*viscocity_L/kth;\n",
+ "# Heat transfer analog of Eqn. 6.72\n",
+ "Hl = 25.1*(kth/Ds)*(Ds*L_prime/viscocity_L)**0.45*PrL**0.5;# [W/square m.K]\n",
+ "print\"The volumetric coeffecients are\\n\"\n",
+ "print\"Based on Gas Phase \",round(Hg*aVW), \"W/cubic m.K\\n\"\n",
+ "print\"based on Liquid Phase\",round(Hl*aVW,2),\" W/cubic m.K\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.7 - Page: 207\n",
+ "\n",
+ "\n",
+ "The volumetric coeffecients are\n",
+ "\n",
+ "Based on Gas Phase 3183.0 W/cubic m.K\n",
+ "\n",
+ "based on Liquid Phase 503701.46 W/cubic m.K\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.1\n",
+ "# Page: 494\n",
+ "\n",
+ "print'Illustration 10.1 - Page: 494\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "%matplotlib inline\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "xF = 0.30;# [mol fraction]\n",
+ "yS = 0;# [mol fraction]\n",
+ "S1 = 40.0;# [kg]\n",
+ "B1 = 40.0;# [kg]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data at 20 OC:\n",
+ "# Wa: Wt. percent of a\n",
+ "# Wb: Wt. percent of b\n",
+ "# Wc: Wt. percent of c\n",
+ "# Data1 = [Wc Wa Wb]\n",
+ "# Data1: water layer\n",
+ "Data1 = numpy.array([(0.69 ,98.1, 1.2),(1.41, 97.1 ,1.5),(2.89 ,95.5 ,1.6),(6.42 ,91.7 ,1.9),(13.30, 84.4, 2.3),(25.50 ,71.1 ,3.4),(36.70 ,58.9 ,4.4),(44.30 ,45.1 ,10.6),(46.40 ,37.1 ,16.5)])\n",
+ "# Data2: isopropyl ether layer\n",
+ "Data2 = numpy.array([(0.18 ,0.5 ,99.3),(0.37, 0.7 ,98.9),(0.79, 0.8, 98.4),(1.93 ,1, 97.1),(4.82, 1.9, 93.3),(11.40, 3.9, 84.7),(21.60, 6.9, 71.5),(31.10, 10.8, 58.1),(36.20 ,15.1 ,48.7)])\n",
+ "\n",
+ "plt.plot((Data1[:,2])/100,(Data1[:,0])/100,label=\"x Vs fraction ether\")\n",
+ "plt.plot((Data2[:,2])/100,(Data2[:,0])/100,label=\"y Vs fraction ether\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='lower center');\n",
+ "ax=pylab.gca()\n",
+ "ax.set_xlabel(\"Wt fraction of isopropyl ether\");\n",
+ "ax.set_ylabel(\"Wt fraction of acetic acid\");\n",
+ "plt.ylim((0,0.3))\n",
+ "plt.xlim((0,1))\n",
+ "plt.show();\n",
+ "# x: Wt fraction of acetic acid in water layer.\n",
+ "# y: Wt fraction of acetic acid in isopropyl layer.\n",
+ "\n",
+ "# The rectangular coordinates of Fig 10.9(a) will be used but only upto x = 0.30\n",
+ "\n",
+ "# Stage 1:\n",
+ "F = 100;# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "M1 = F+S1;# [kg]\n",
+ "# From Eqn. 10.5:\n",
+ "xM1 = ((F*xF)+(S1*yS))/M1;\n",
+ "# From Fig. 10.15 (Pg 495):\n",
+ "# Point M1 is located on the line FB and with the help of tie line passing through M1:\n",
+ "x1 = 0.258;# [mol fraction]\n",
+ "y1 = 0.117;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E1 = (M1*(xM1-x1)/(y1-x1));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R1 = M1-E1;# [kg]\n",
+ "\n",
+ "# Stage 2:\n",
+ "S2 = 40;# [kg]\n",
+ "B2 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M2 = R1+B2;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM2 = ((R1*x1)+(S2*yS))/M2;\n",
+ "# Point M2 is located on the line R1B and the tie line passing through R2E2 through M2:\n",
+ "x2 = 0.227;\n",
+ "y2 = 0.095;\n",
+ "# From Eqn. 10.8:\n",
+ "E2 = (M2*(xM2-x2)/(y2-x2));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R2 = M2-E2;# [kg]\n",
+ "\n",
+ "# Stage 3:\n",
+ "S3 = 40;# [kg]\n",
+ "B3 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M3 = R2+B3;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM3 = ((R2*x2)+(S3*yS))/M3;\n",
+ "# Point M3 is located on the line R2B and the tie line passing through R3E3 through M3:\n",
+ "x3 = 0.20;# [mol fraction]\n",
+ "y3 = 0.078;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E3 = (M3*(xM3-x3)/(y3-x3));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R3 = M3-E3;# [kg]\n",
+ "Ac = x3*R3;\n",
+ "print\"The composited extract is\",round((E1+E2+E3),2),\" kg\\n\"\n",
+ "print\"The acid content is \",round(((E1*y1)+(E2*y2)+(E3*y3)),2),\" kg\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# If an extraction to give the same final raffinate concentration were to be done in single stage, the point M would be at the intersection of tie line R3E3 and the line BF.\n",
+ "x = 0.20;# [mol fraction]\n",
+ "xM = 0.12;# [mol fraction]\n",
+ "# From Eqn. 10.6:\n",
+ "S = F*(xF-xM)/(xM-yS);# [kg]\n",
+ "print round(S,2),\"kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.1 - Page: 494\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nhs2vBOrlc6whwIB8lmu3bt10yJAhOmTIEH322Wf1nnvStXt3Jynp6emanp6em6R4ns957sfxvXyI\nnXvsSzeVxmWXXaYnnniitm7dOvfLLj9ffPGFJicn6969e1VV9fTTT9cRI0bkrm/cuLG+9NJLun37\n9kLPl56enm+BsWbNmgL32bp1q4qI/vnnn5qdna1VqlTRpUuXHrJdzrEKKjDeeOMNPe200w7ap0OH\nDjp27FhVVU1NTdXHH388d92oUaM0LS0t35huu+02feCBBw5adtxxx+lnn32mqgUXGOvXr89d1q5d\nO33rrbdUVbVFixYHbb9hwwatUKGCZmdne8pR+HutrN/Pzz77bNR8Xouan756ujbo3UCnz5peJsdL\nT0/Xbt265X5fRmOBUR74EacTw4ruVULLPNtcBHykoQJmrvu8KlDdfV4N+BLolM85NK/nn1e9445D\nFse98DdKWYuF//omT56sIqKvvPJKkds2b95cJ02apKtXr9YKFSro//73v9x18+fP1y5dumjNmjX1\n7LPP1jlz5uR7jIIKjP379+cuy87O1oEDB2qzZs20Ro0ampycrCKiP/30k/7+++8qIrpr165Djl1U\ngfHkk0/qVVddddA+1157rT7xxBOq6hQYr776ar775tW5c2etWrWqJicn507VqlXTSZMmqWrBBUZ4\nbOHnq1KlSu5rzZmqVKmiGzZsyDdHefn5XvPzM+KHyyddro99+pgvxy5pgeFbG4aq7gd6A9OB74C3\nVHWFiPQSkV7uNh8BP4nIauAl4A539/rA5yKyGPga+FBVZ3g5b6L+SioW6mf9snPnTvr3788tt9zC\nkCFDcuvMC3LjjTfyxhtvMH78eNLS0qhbt27uur/85S+8//77bNq0icsvv5yrr766WLGEd9Q4YcIE\nJk+ezOzZs9m+fTtr1qwBnH/S6tSpQ+XKlVm9enWhx8hPw4YN+fnnnw9a9vPPP9OwYd4mwqI1btyY\n++67j61bt+ZOO3fu5JprrvEUS37HmzZt2kHH2717Nw0aNMjdJqjOLGPtM5Iz0NIv238JOpRcvt6H\noaofq+pxqtpcVf/pLntJVV8K26a3u761qi50l/2kqm3c6cScfb3Ys8d+JZVo+vXrR7t27Xj55Ze5\n+OKLue222wrd/sYbb2TmzJm88sordOvWLXd5VlYWEyZMYPv27SQlJVG9enWSkpJKHNfOnTupVKkS\n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\niRUYxhhjPPl/ptoLDFmMWJUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7890240>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composited extract is 135.05 kg\n",
+ "\n",
+ "The acid content is 13.01 kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "150.0 kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter6_2.ipynb b/Mass_-_Transfer_Operations/Chapter6_2.ipynb
new file mode 100755
index 00000000..d9b08193
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter6_2.ipynb
@@ -0,0 +1,1059 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ce06499e0802b1a354db3b54c156495e1f9e00501c129efee55c325fbd5e394e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Equipment For Gas-Liquid Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1: Page 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.1\n",
+ "# Page: 145\n",
+ "\n",
+ "print'Illustration 6.1 - Page: 145\\n\\n'\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# w = Gas flow rate per orifice\n",
+ "w = 0.055/50;# [kg/s]\n",
+ "L = 8*10**(-4);# [liquid flow rate, cubic m/s]\n",
+ "d = 0.003;# [diameter of the orifice,m]\n",
+ "viscocity_gas = 1.8*10**(-5);# [kg/m.s]\n",
+ "#******#\n",
+ "\n",
+ "Re = 4*w/(math.pi*d*viscocity_gas);\n",
+ "Dp = 0.0071*Re**(-0.05);# [m]\n",
+ "h = 3.0;# [height of vessel,m]\n",
+ "P_atm = 101.3;# [kN/square m]\n",
+ "Density_water = 1000.0;# [kg/cubic m]\n",
+ "g = 9.81;# [m/s^2]\n",
+ "Temp = 273+25;# [K]\n",
+ "P_orifice = P_atm+(h*Density_water*g/1000);# [kN/square m]\n",
+ "P_avg = P_atm+((h/2.0)*Density_water*g/1000);# [kN/square m]\n",
+ "Density_gas = (29/22.41)*(273.0/Temp)*(P_avg/P_atm);# [kg/cubic m]\n",
+ "D = 1.0;# [dia of vessel,m]\n",
+ "Area = (math.pi*D**2)/4;# [square m]\n",
+ "Vg = 0.055/(Area*Density_gas);# [m/s]\n",
+ "Vl = L/Area;# [m/s]\n",
+ "sigma = 0.072;# [N/m]\n",
+ "# From fig. 6.2 (Pg 143)\n",
+ "abscissa = 0.0516;# [m/s]\n",
+ "Vg_by_Vs = 0.11;\n",
+ "Vs = Vg/Vg_by_Vs;# [m/s]\n",
+ "def f6(shi_g):\n",
+ " return Vs-(Vg/shi_g)+(Vl/(1-shi_g)) \n",
+ "shi_g = fsolve(f6,0.5);\n",
+ "dp = ((Dp**3)*(P_orifice/P_avg))**(1.0/3);# [bubble diameter,m]\n",
+ "# From eqn. 6.9\n",
+ "a = 6.0*shi_g/dp;# [specific interfacial area,square m]\n",
+ "print\"The Specific Interfacial Area is \",round(a,2),\" square m/cubic m\\n\"\n",
+ "\n",
+ "# For diffsion of Cl2 in H20\n",
+ "Dl = 1.44*10**(-9);# [square m/s]\n",
+ "viscocity_water = 8.937*10**(-4);# [kg/m.s]\n",
+ "Reg = dp*Vs*Density_water/viscocity_water;\n",
+ "Scl = viscocity_water/(Density_water*Dl);\n",
+ "# From Eqn.6.11\n",
+ "Shl = 2+(0.0187*(Reg**0.779)*(Scl**0.546)*(dp*(g**(1.0/3))/(Dl**(2.0/3)))**0.116);\n",
+ "# For dilute soln. of Cl2 in H20\n",
+ "c = 1000/18.02;# [kmol/cubic m]\n",
+ "Fl = (c*Dl*Shl)/dp;# [kmol/square m.s]\n",
+ "print\"Mass Transfer coeffecient is \",round(Fl,5),\" kmol/square m.s\\n\",\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.1 - Page: 145\n",
+ "\n",
+ "\n",
+ "The Specific Interfacial Area is 148.13 square m/cubic m\n",
+ "\n",
+ "Mass Transfer coeffecient is 0.01335 kmol/square m.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2: Page 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.2\n",
+ "# Page: 157\n",
+ "\n",
+ "print'Illustration 6.2 - Page: 157\\n\\n'\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = N2 b = H2O\n",
+ "L = 9.5*10**(-4);# [cubic m/s]\n",
+ "G = 0.061;# [kg/s]\n",
+ "Temp = 273.0+25;# [K]\n",
+ "#*****#\n",
+ "\n",
+ "print\"Construction Arrangement\\n\"\n",
+ "print\"Use 4 vertical wall baffles, 100 mm wide at 90 degree intervals.\\n\"\n",
+ "print\"Use a 305 mm dameter, a six bladed disk flat blade turbine impeller, arranged axially, 300 mm from the bottom of vessel\\n\"\n",
+ "print\"The sparger underneath the impeller will be in the form of a 240 mm dameter ring made of 12.7 mm tubing drilled in the top with 3.18 mm dia holes\\n\"\n",
+ "Di = 0.305;# [m]\n",
+ "Do = 0.00316;# [m]\n",
+ "viscocity_a = 1.8*10**(-5);# [kg/m.s]\n",
+ "Re_g = 35000;\n",
+ "Ma = 28.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# w = Gas flow rate per orifice\n",
+ "w = Re_g*math.pi*Do*viscocity_a/4.0;# [kg/s]\n",
+ "N_holes = G/w;\n",
+ "Interval = math.pi*240/round(N_holes);\n",
+ "print\"The number of holes is \",round(N_holes),\" at approx \",round(Interval),\" mm interval around the sparger ring\\n\"\n",
+ "\n",
+ "viscocity_b = 8.9*10**(-4);# [kg/m.s]\n",
+ "Sigma = 0.072;# [N/m]\n",
+ "Density_b = 1000.0;# [kg/cubic m]\n",
+ "D = 1.0;# [dia of vessel,m]\n",
+ "g = 9.81;# [m/s**2]\n",
+ "# From Eqn. 6.18\n",
+ "def f7(N):\n",
+ " return (N*Di/(Sigma*g/Density_b)**0.25)-1.22-(1.25*D/Di)\n",
+ "N_min = fsolve(f7,2);# [r/s]\n",
+ "N = 5.0;# [r/s]\n",
+ "Re_l = ((Di**2)*N*Density_b/viscocity_b);\n",
+ "# From fig 6.5 (Pg 152)\n",
+ "Po = 5.0;\n",
+ "P = Po*Density_b*(N**3)*(Di**5);\n",
+ "h = 0.7;# [m]\n",
+ "P_atm = 101.33;# [kN/square m]\n",
+ "P_gas = P_atm+(h*Density_b*g/1000.0);# [kN/square m]\n",
+ "Qg = (G/Ma)*22.41*(Temp/273.0)*(P_atm/P_gas);# [cubic m/s]\n",
+ "# From Fig.6.7 (Pg 155)\n",
+ "abcissa = Qg/(N*(Di**3));\n",
+ "# abcissa is off scale\n",
+ "Pg_by_P = 0.43;\n",
+ "Pg = 0.43*P;# [W]\n",
+ "Vg = Qg/(math.pi*(D**2)/4);# [superficial gas velocity,m/s]\n",
+ "check_value = (Re_l**0.7)*((N*Di/Vg)**0.3);\n",
+ "vl = math.pi*(D**2)/4;# [cubic m]\n",
+ "# Since value<30000\n",
+ "# From Eqn. 6.21, Eqn.6.23 & Eqn. 6.24\n",
+ "K = 2.25;\n",
+ "m = 0.4;\n",
+ "Vt = 0.250;# [m/s]\n",
+ "shi = 1.0;\n",
+ "err = 1.0;\n",
+ "while (err>10**(-3)):\n",
+ " a = 1.44*((Pg/vl)**0.4)*((Density_b/(Sigma**3))**0.2)*((Vg/Vt)**0.5);# [square m/cubic m]\n",
+ " shin = (0.24*K*((viscocity_a/viscocity_b)**0.25)*((Vg/Vt)**0.5))**(1.0/(1-m));\n",
+ " Dp = K*((vl/Pg)**0.4)*((Sigma**3/Density_b)**0.2)*(shin**m)*((viscocity_a/viscocity_b)**0.25);# [m]\n",
+ " err = abs(shi-shin);\n",
+ " Vt = Vt-0.002;# [m/s]\n",
+ " shi = shin;\n",
+ "\n",
+ "\n",
+ "# For N2 in H2\n",
+ "Dl = 1.9*10**(-9);# [square m/s]\n",
+ "Ra = 1.514*10**(6);\n",
+ "# By Eqn. 6.25\n",
+ "Shl = 2.0+(0.31*(Ra**(1.0/3)));\n",
+ "# For dilute soln.\n",
+ "c = 1000.0/Mb;# [kmol/cubic m]\n",
+ "Fl = Shl*c*Dl*1.0/Dp;# [kmol/square m.s]\n",
+ "print\"The average gas-bubble diameter is \",(\"{:.2e}\".format(Dp)),\" m\\n\",\n",
+ "print\"Gas Holdup:\\n\",round(shi,5)\n",
+ "print\"Interfacial area:\",round(a,4),\" square m/cubic m \\n\"\n",
+ "print\"Mass transfer coffecient:\",(\"{:.2e}\".format(Fl)),\"kmol/square m.s\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.2 - Page: 157\n",
+ "\n",
+ "\n",
+ "Construction Arrangement\n",
+ "\n",
+ "Use 4 vertical wall baffles, 100 mm wide at 90 degree intervals.\n",
+ "\n",
+ "Use a 305 mm dameter, a six bladed disk flat blade turbine impeller, arranged axially, 300 mm from the bottom of vessel\n",
+ "\n",
+ "The sparger underneath the impeller will be in the form of a 240 mm dameter ring made of 12.7 mm tubing drilled in the top with 3.18 mm dia holes\n",
+ "\n",
+ "The number of holes is 39.0 at approx 19.0 mm interval around the sparger ring\n",
+ "\n",
+ "The average gas-bubble diameter is 6.35e-04 m\n",
+ "Gas Holdup:\n",
+ "0.02265\n",
+ "Interfacial area: 214.0106 square m/cubic m \n",
+ "\n",
+ "Mass transfer coffecient: 6.24e-03 kmol/square m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3: Page 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.3\n",
+ "# Page: 174\n",
+ "\n",
+ "print'Illustration 6.3 - Page: 174\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a = methanol b = water\n",
+ "G = 0.100;# [kmol/s]\n",
+ "L = 0.25;# [kmol/s]\n",
+ "Temp = 273+95;# [K]\n",
+ "XaG = 0.18;# [mol % in gas phase]\n",
+ "MaL = 0.15;# [mass % in liquid phase]\n",
+ "#*****#\n",
+ "\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "Mavg_G = XaG*Ma+((1-XaG)*Mb);# [kg/kmol]\n",
+ "Density_G = (Mavg_G/22.41)*(273.0/Temp);# [kg/cubic cm]\n",
+ "Q = G*22.41*(Temp/273.0);# [cubic cm/s]\n",
+ "Density_L = 961.0;# [kg/cubic cm]\n",
+ "Mavg_L = 1.0/((MaL/Ma)+(1-MaL)/Mb);# [kg/kmol]\n",
+ "q = L*Mavg_L/Density_L;\n",
+ "\n",
+ "# Perforations\n",
+ "print\"Perforations\\n\"\n",
+ "print\"Do = 4.5mm on an equilateral triangle pitch 12 mm between the hole centres, punched in sheet metal 2 mm thick\\n\"\n",
+ "Do = 0.0045;# [m]\n",
+ "pitch = 0.012;# [m]\n",
+ "# By Eqn.6.31\n",
+ "Ao_by_Aa = 0.907*(Do/pitch)**2;\n",
+ "print\"The ratio of Hole Area By Active Area is:\",round(Ao_by_Aa,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Tower Diameter\n",
+ "print\"Tower Diameter\\n\"\n",
+ "t = 0.50;# [tray spacing,m]\n",
+ "print\"Tower Spacing:\",t,\" m\\n\"\n",
+ "# abcissa = (L/G)*(Density_G/Density_L)^0.5 = (q/Q)*(Density_L/Density_G)**0.5\n",
+ "abcissa = (q/Q)*(Density_L/Density_G)**0.5;\n",
+ "# From Table 6.2 (Pg 169)\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "if (abcissa<0.1):\n",
+ " abcissa = 0.1;\n",
+ "\n",
+ "sigma = 0.040;# [N/m]\n",
+ "# From Eqn.6.30\n",
+ "Cf = ((alpha*math.log10(1.0/abcissa))+beeta)*(sigma/0.02)**0.2;\n",
+ "# From Eqn. 6.29\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1/2);# [m/s]\n",
+ "# Using 80% of flooding velocity\n",
+ "V = 0.8*Vf;# [m/s]\n",
+ "An = Q/V;# [square m]\n",
+ "# The tray area used by one downspout = 8.8%\n",
+ "At = An/(1-0.088);# [square m]\n",
+ "D = (4*At/math.pi)**(1.0/2);# [m]\n",
+ "# Take D = 1.25 m\n",
+ "D = 1.25; #[m]\n",
+ "At = math.pi*(D**2)/4;# [corrected At, square m]\n",
+ "W = 0.7*D;# [weir length,m]\n",
+ "Ad = 0.088*At;# [square m]\n",
+ "# For a design similar to Fig 6.14 (Pg 168)\n",
+ "# A 40 mm wide supporting ring, beams between downspouts and a 50 mm wide disengaging & distributing zones these areas total 0.222 square m\n",
+ "Aa = At-(2.0*Ad)-0.222;\n",
+ "print\"Weir Length:\",round(W,4),\"\\n\"\n",
+ "print\"Area for perforated sheet: \",round(Aa,4),\" square m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Weir crest h1 & Weir height hw\n",
+ "print\"Weir crest h1 & Weir height hw\\n\"\n",
+ "h1 = 0.025;# [m]\n",
+ "h1_by_D = h1/D;\n",
+ "D_by_W = D/W;\n",
+ "# From Eqn. 6.34\n",
+ "Weff_by_W = math.sqrt(((D_by_W)**2)-((((D_by_W)**2-1)**0.5)+(2*h1_by_D*D_by_W))**2);\n",
+ "# Set hw to 50 mm\n",
+ "hw = 0.05;# [m]\n",
+ "print\"Weir crest: \",h1,\" m\\n\"\n",
+ "print\"Weir height: \",hw,\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Dry Pressure Drop\n",
+ "print\"Dry Pressure Drop\\n\"\n",
+ "l = 0.002;# [m]\n",
+ "# From Eqn. 6.37\n",
+ "Co = 1.09*(Do/l)**0.25;\n",
+ "Ao = 0.1275*Aa;# [square m]\n",
+ "Vo = Q/Ao;# [m/sec]\n",
+ "viscocity_G = 1.25*10**(-5);# [kg/m.s]\n",
+ "Re = Do*Vo*Density_G/viscocity_G;\n",
+ "# From \"The Chemical Engineers Handbook,\" 5th Edition fig 5.26\n",
+ "fr = 0.008;\n",
+ "g = 9.81;# [m/s**2]\n",
+ "# From Eqn. 6.36\n",
+ "def f(hd):\n",
+ " return (2*hd*g*Density_L/(Vo**2*Density_G))-(Co*(0.40*(1.25-(Ao/An))+(4*l*fr/Do)+(1-(Ao/An))**2))\n",
+ "hd = fsolve(f,1);\n",
+ "print\"Dry Pressure Drop:\",round(hd,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Hydraulic head hl\n",
+ "print\"Hydraulic head hl\"\n",
+ "Va = Q/Aa;# [m/s]\n",
+ "z = (D+W)/2.0;# [m]\n",
+ "# From Eqn. 6.38\n",
+ "hl = 6.10*10**(-3)+(0.725*hw)-(0.238*hw*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "print\"Hydraulic head: \",round(hl,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#Residual Pressure drop hr\n",
+ "print\"Residual Pressure drop hr\\n\"\n",
+ "# From Eqn. 6.42\n",
+ "hr = 6*sigma/(Density_L*Do*g);# m\n",
+ "print\"Residual Pressure Drop:\",round(hr,4),\"m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Total Gas pressure Drop hg\n",
+ "print\"Total Gas pressure Drop hg\\n\"\n",
+ "# From Eqn. 6.35\n",
+ "hg = hd+hl+hr;# [m]\n",
+ "print\"Total gas pressure Drop: \",round(hg,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Pressure loss at liquid entrance h2\n",
+ "print\"Pressure loss at liquid entrance h2\\n\"\n",
+ "# Al: Area for the liquid flow under the apron\n",
+ "Al = 0.025*W;# [square m]\n",
+ "Ada = min(Al,Ad);\n",
+ "# From Eqn. 6.43\n",
+ "h2 = (3.0/(2*g))*(q/Ada)**2;\n",
+ "print\"Pressure loss at liquid entrance:\",round(h2,4),\"m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Backup in Downspout h3\n",
+ "print\"Backup in Downspout h3\\n\"\n",
+ "# From Eqn.6.44\n",
+ "h3 = hg+h2;\n",
+ "print\"Backup in Downspout:\",round(h3,4),\" m\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Check on Flooding\n",
+ "print\"Check on Flooding\\n\"\n",
+ "if((hw+h1+h3)<(t/2.0)):\n",
+ " print\"Choosen Tower spacing is satisfactory\\n\"\n",
+ "else:\n",
+ " print\"Choosen Tower spacing is not satisfactory\\n\"\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Weeping Velocity\n",
+ "print\"Weeping Velocity\\n\"\n",
+ "print\"For W/D ratio \",W/D,\" weir is set at \",0.3296*D,\" m from the center from the tower\\n\",\n",
+ "Z = 2*(0.3296*D);# [m]\n",
+ "# From Eqn.6.46\n",
+ "def f8(Vow):\n",
+ " return (Vow*viscocity_G/(sigma))-(0.0229*((viscocity_G**2/(sigma*Density_G*Do))*(Density_L/Density_G))**0.379)*((l/Do)**0.293)*(2*Aa*Do/(math.sqrt(3.0)*(pitch**3)))**(2.8/((Z/Do)**0.724))\n",
+ "Vow = fsolve(f8,0.1);# [m/s]\n",
+ "print\"The minimum gas velocity through the holes below which excessive weeping is likely:\",round(Vow,3),\" m/s\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Entrainment\n",
+ "print\"Entrainment\\n\"\n",
+ "V_by_Vf = V/Vf;\n",
+ "# From Fig.6.17 (Pg 173), V/Vf = 0.8 & abcissa = 0.0622\n",
+ "E = 0.05;\n",
+ "print\"Entrainment:\\n\",E\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.3 - Page: 174\n",
+ "\n",
+ "\n",
+ "Perforations\n",
+ "\n",
+ "Do = 4.5mm on an equilateral triangle pitch 12 mm between the hole centres, punched in sheet metal 2 mm thick\n",
+ "\n",
+ "The ratio of Hole Area By Active Area is: 0.1275 \n",
+ "\n",
+ "\n",
+ "\n",
+ "Tower Diameter\n",
+ "\n",
+ "Tower Spacing: 0.5 m\n",
+ "\n",
+ "Weir Length: 0.875 \n",
+ "\n",
+ "Area for perforated sheet: 0.7892 square m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Weir crest h1 & Weir height hw\n",
+ "\n",
+ "Weir crest: 0.025 m\n",
+ "\n",
+ "Weir height: 0.05 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Dry Pressure Drop\n",
+ "\n",
+ "Dry Pressure Drop: 0.0654 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Hydraulic head hl\n",
+ "Hydraulic head: 0.0106 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Residual Pressure drop hr\n",
+ "\n",
+ "Residual Pressure Drop: 0.0057 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Total Gas pressure Drop hg\n",
+ "\n",
+ "Total gas pressure Drop: 0.0816 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Pressure loss at liquid entrance h2\n",
+ "\n",
+ "Pressure loss at liquid entrance: 0.008 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Backup in Downspout h3\n",
+ "\n",
+ "Backup in Downspout: 0.0897 m\n",
+ "\n",
+ "\n",
+ "\n",
+ "Check on Flooding\n",
+ "\n",
+ "Choosen Tower spacing is satisfactory\n",
+ "\n",
+ "\n",
+ "\n",
+ "Weeping Velocity\n",
+ "\n",
+ "For W/D ratio 0.7 weir is set at 0.412 m from the center from the tower\n",
+ "The minimum gas velocity through the holes below which excessive weeping is likely: 8.703 m/s\n",
+ "\n",
+ "\n",
+ "\n",
+ "Entrainment\n",
+ "\n",
+ "Entrainment:\n",
+ "0.05\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4: Page 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.4\n",
+ "# Page: 183\n",
+ "\n",
+ "print'Illustration 6.4 - Page: 183\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "#****Data****#\n",
+ "#From Illustrtion 6.3:\n",
+ "G = 0.100;# [kmol/s]\n",
+ "Density_G = 0.679;# [kg/cubic m]\n",
+ "q = 5*10**(-3);# [cubic m/s]\n",
+ "Va = 3.827;# [m/s]\n",
+ "z = 1.063;# [m]\n",
+ "L = 0.25;# [kmol/s]\n",
+ "hL = 0.0106;# [m]\n",
+ "hW = 0.05;# [m]\n",
+ "Z = 0.824;# [m]\n",
+ "E = 0.05;\n",
+ "ya = 0.18;# [mole fraction methanol]\n",
+ "\n",
+ "# a:CH3OH b:H2O\n",
+ "Ma = 32;# [kg/kmol]\n",
+ "Mb = 18;# [kg/kmol]\n",
+ "# From Chapter 2:\n",
+ "ScG = 0.865;\n",
+ "Dl = 5.94*10**(-9);# [square m/s]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/ScG**0.5;\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;# [square m/s]\n",
+ "thethaL = hL*z*Z/q;# [s]\n",
+ "NtL = 40000*Dl**0.5*((0.213*Va*Density_G**0.5)+0.15)*thethaL;\n",
+ "# For 15 mass% methanol:\n",
+ "xa = (15.0/Ma)/((15.0/Ma)+(85.0/Mb));\n",
+ "# From Fig 6.23 (Pg 184)\n",
+ "mAC = -(NtL*L)/(NtG*G);# [Slope of AC line]\n",
+ "meqb = 2.50;# [slope of equilibrium line]\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1.0/((1/NtG)+(meqb*G/L)*(1.0/NtL));\n",
+ "# From Eqn. 6.51:\n",
+ "EOG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thethaL);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2.0)*((1+(4*meqb*G*EOG/(L*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EOG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+(math.exp(eta)-1)/(eta*(1+eta/(eta+Pe))));\n",
+ "# From Eqn. 6.60:\n",
+ "EMGE = EMG/(1+(EMG*E/(1-E)));\n",
+ "print\"Efficiency of Sieve trays: \",round(EMGE,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.4 - Page: 183\n",
+ "\n",
+ "\n",
+ "Effeciency of Sieve trays: 0.7\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5: Page 200"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.5\n",
+ "# Page: 200\n",
+ "\n",
+ "print'Illustration 6.5 - Page: 200\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "# ****Data****#\n",
+ "G = 0.80;# [cubic m/s]\n",
+ "P = 10**2;# [kN/square m]\n",
+ "XaG = 0.07;\n",
+ "Temp = 273+30.0;# [K]\n",
+ "L = 3.8;# [kg/s]\n",
+ "Density_L = 1235.0;# [kg/cubic m]\n",
+ "viscocity_L = 2.5*10**(-3);# [kg/m.s]\n",
+ "#******#\n",
+ "\n",
+ "# a = SO2 b = air\n",
+ "\n",
+ "# Solution (a) \n",
+ "\n",
+ "# Since the larger flow quantities are at the bottom for an absorber, the diameter will be choosen to accomodate the bottom condition\n",
+ "Mavg_G = XaG*64+((1-XaG)*29);# [kg/kmol]\n",
+ "G1 = G*(273/Temp)*(P/101.33)*(1/22.41);# [kmol/s]\n",
+ "G2 = G1*Mavg_G;# [kg/s]\n",
+ "Density_G = G2/G;# [kg/cubic m]\n",
+ "# Assuming Complete absorption of SO2\n",
+ "sulphur_removed = G1*XaG*64;# [kg/s]\n",
+ "abcissa = (L/G)*((Density_G/Density_L)**0.5);\n",
+ "#From Fig. 6.24, using gas pressure drop of 400 (N/square m)/m\n",
+ "ordinate = 0.061;\n",
+ "# For 25 mm ceramic Intalox Saddle:\n",
+ "Cf = 98.0;# [Table 6.3 Pg 196]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscocity_L**0.1*J))**0.5;# [kg/square m.s]\n",
+ "A = G2/G_prime;# [square m]\n",
+ "D = (4*A/math.pi)**0.5;# [m]\n",
+ "print\"The Tower Diameter is \",round(D,4),\" m\\n\"\n",
+ "\n",
+ "# Solution (b)\n",
+ "\n",
+ "# Let\n",
+ "D = 1.0;# [m]\n",
+ "A = math.pi*D**2.0/4;# [square m]\n",
+ "# The pressure drop for 8 m of irrigated packing\n",
+ "delta_p = 400*8.0;# [N/square m]\n",
+ "# For dry packing\n",
+ "G_prime = (G2-sulphur_removed)/A;# [kg/square m.s]\n",
+ "P = P-(delta_p/1000.0);# [kN/square m]\n",
+ "Density_G = (29/22.41)*(273.0/Temp)*(P/101.33);# [kg/cubic m]\n",
+ "# From Table 6.3 (Pg 196)\n",
+ "Cd = 241.5;\n",
+ "# From Eqn. 6.68\n",
+ "delta_p_by_z = Cd*G_prime**2/Density_G;# [N/square m for 1m of packing]\n",
+ "pressure_drop = delta_p+delta_p_by_z;# [N/square m]\n",
+ "V = 7.5;# [m/s]\n",
+ "head_loss = 1.5*V**2.0/2;# [N.m/kg]\n",
+ "head_loss = head_loss*Density_G;# [N/square m]\n",
+ "Power = (pressure_drop+head_loss)*(G2-sulphur_removed)/(Density_G*1000.0);# [kW]\n",
+ "eta = 0.6;\n",
+ "Power = Power/eta;# [kW]\n",
+ "print\"The Power for the fan motor is \",round(Power,2),\" kW\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.5 - Page: 200\n",
+ "\n",
+ "\n",
+ "The Tower Diameter is 0.981 m\n",
+ "\n",
+ "The Power for the fan motor is 4.49 kW\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6: Page 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.6\n",
+ "# Page: 204\n",
+ "\n",
+ "print'Illustration 6.6 - Page: 204\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# Gas\n",
+ "Mavg_G = 11.0;# [kg/kmol]\n",
+ "viscocity_G = 10**(-5);# [kg/m.s]\n",
+ "Pt = 107.0;# [kN/square m]\n",
+ "Dg = 1.30*10**(-5);# [square m/s]\n",
+ "Temp = 273.0+27;# [K]\n",
+ "G_prime = 0.716;# [kg/square m.s]\n",
+ "\n",
+ "# Liquid:\n",
+ "Mavg_L = 260.0;\n",
+ "viscocity_L = 2*10**(-3);# [kg/m.s]\n",
+ "Density_L = 840.0;# [kg/cubic m]\n",
+ "sigma = 3*10.0**(-2);# [N/m]\n",
+ "Dl = 4.71*10**(-10);# [square m/s]\n",
+ "#******#\n",
+ "\n",
+ "#Gas:\n",
+ "Density_G = (Mavg_G/22.41)*(Pt/101.33)*(273/Temp);# [kg/cubic m]\n",
+ "ScG = viscocity_G/(Density_G*Dg);\n",
+ "G = G_prime/Mavg_G;# [kmol/square m.s]\n",
+ "\n",
+ "# Liquid:\n",
+ "L_prime = 2.71;# [kg/square m.s]\n",
+ "ScL = viscocity_L/(Density_L*Dl);\n",
+ "\n",
+ "# Holdup:\n",
+ "# From Table 6.5 (Pg 206), L_prime = 2.71 kg/square m.s\n",
+ "Ds = 0.0472;# [m]\n",
+ "beeta = 1.508*Ds**0.376;\n",
+ "shiLsW = 5.014*10**(-5)/Ds**1.56;# [square m/cubic m]\n",
+ "shiLtW = (2.32*10**(-6))*(737.5*L_prime)**beeta/(Ds**2);# [square m/cubic m]\n",
+ "shiLoW = shiLtW-shiLsW;# [square m/cubic m]\n",
+ "H = (1404*(L_prime**0.57)*(viscocity_L**0.13)/((Density_L**0.84)*((3.24*L_prime**0.413)-1)))*(sigma/0.073)**(0.2817-0.262*math.log10(L_prime));\n",
+ "shiLo = shiLoW*H;# [square m/cubic m]\n",
+ "shiLs = 4.23*10**(-3)*(viscocity_L**0.04)*(sigma**0.55)/((Ds**1.56)*(Density_L**0.37));# [square m/cubic m]\n",
+ "shiLt = shiLo+shiLs;# [square m/cubic m]\n",
+ "\n",
+ "# Interfacial Area:\n",
+ "# From Table 6.4 (Pg 205)\n",
+ "m = 62.4;\n",
+ "n = (0.0240*L_prime)-0.0996;\n",
+ "p = -0.1355;\n",
+ "aAW = m*((808*G_prime/(Density_G**0.5))**n)*(L_prime**p);# [square m/cubic m]\n",
+ "# From Eqn. 6.73\n",
+ "aA = aAW*shiLo/shiLoW;# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196)\n",
+ "e = 0.75;\n",
+ "# From Eqn. 6.71\n",
+ "eLo = e-shiLt;\n",
+ "# From Eqn. 6.70\n",
+ "def f9(Fg):\n",
+ " return ((Fg*ScG**(2.0/3))/G)-1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36) \n",
+ "Fg = fsolve(f9,1);# [kmol/square m.s]\n",
+ "# From Eqn. 6.72:\n",
+ "def f10(Kl):\n",
+ " return (Kl*Ds/Dl)-(25.1*(Ds*L_prime/viscocity_L)**0.45)*ScL**0.5\n",
+ "Kl = fsolve(f10,1);# [(kmol/square m.s).(kmol/cubic m)]\n",
+ "# Since the value of Kl is taken at low conc., it can be converted into Fl\n",
+ "c = (Density_L/Mavg_L);# [kmol/cubic m]\n",
+ "Fl = Kl*c;# [kmol/cubic m]\n",
+ "print\"The volumetric coeffecients are\\n\"\n",
+ "print\"Based on Gas Phase \",round(Fg*aA,3),\" kmol/cubic m.s\\n\"\n",
+ "print\"based on Liquid Phase\",round(Fl*aA,3),\" kmol/cubic m.s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.6 - Page: 204\n",
+ "\n",
+ "\n",
+ "The volumetric coeffecients are\n",
+ "\n",
+ "Based on Gas Phase 0.071 kmol/cubic m.s\n",
+ "\n",
+ "based on Liquid Phase 0.014 kmol/cubic m.s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7: Page 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 6.7\n",
+ "# Page: 207\n",
+ "\n",
+ "print'Illustration 6.7 - Page: 207\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#****Data****#\n",
+ "# Air\n",
+ "G_prime = 1.10;# [kg/square m.s]\n",
+ "viscocity_G = 1.8*10**(-5);# [kg/m.s]\n",
+ "ScG = 0.6;# [for air water mixture]\n",
+ "Temp1 = 273+20.0;# [K]\n",
+ "\n",
+ "# Water\n",
+ "L_prime = 5.5;# [kg/square m.s]\n",
+ "#*****#\n",
+ "\n",
+ "# Air:\n",
+ "Ma = 29.0;# [kg/kmol]\n",
+ "G = G_prime/Ma;# [kmol/square m.s]\n",
+ "Density_G = (Ma/22.41)*(273.0/Temp1);\n",
+ "Cpa = 1005.0;# [N.m/kg.K]\n",
+ "PrG = 0.74;\n",
+ "\n",
+ "# Liquid:\n",
+ "kth = 0.587;# [W/m.K]\n",
+ "Cpb = 4187.0;# [N.m/kg.K]\n",
+ "viscocity_L = 1.14*10**(-3);# [kg/m.s]\n",
+ "\n",
+ "# From Table 6.5 (Pg 206)\n",
+ "Ds = 0.0725;# [m]\n",
+ "beeta = 1.508*(Ds**0.376);\n",
+ "shiLtW = (2.09*10**(-6))*(737.5*L_prime)**beeta/(Ds**2);# [square m/cubic m]\n",
+ "shiLsW = 2.47*10**(-4)/(Ds**1.21);# [square m/cubic m]\n",
+ "shiLoW = shiLtW-shiLsW;# [square m/cubic m]\n",
+ "# From Table 6.4 (Pg 205)\n",
+ "m = 34.03;\n",
+ "n = 0.0;\n",
+ "p = 0.362;\n",
+ "aAW = m*(808.0*G_prime/Density_G**0.5)**(n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Eqn. 6.75\n",
+ "aVW = 0.85*aAW*shiLtW/shiLoW;# [square m/cubic m]\n",
+ "# From Table 6.3\n",
+ "e = 0.74;\n",
+ "eLo = e-shiLtW;\n",
+ "# From Eqn. 6.70\n",
+ "def f11(Fg):\n",
+ " return ((Fg*ScG**(2.0/3))/G)-1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36)\n",
+ "Fg = fsolve(f11,1);# [kmol/square m.s]\n",
+ "# Since the liquid is pure water. It has no mass trnsfer coeffecient.\n",
+ "# For such process we need convective heat transfer coeffecient for both liquid & gas.\n",
+ "# Asuming Jd = Jh\n",
+ "# From Eqn. 6.70\n",
+ "Jh = 1.195*((Ds*G_prime)/(viscocity_G*(1-eLo)))**(-0.36);\n",
+ "Hg = Jh*Cpa*G_prime/(PrG**(2.0/3));# [W/square m.K]\n",
+ "PrL = Cpb*viscocity_L/kth;\n",
+ "# Heat transfer analog of Eqn. 6.72\n",
+ "Hl = 25.1*(kth/Ds)*(Ds*L_prime/viscocity_L)**0.45*PrL**0.5;# [W/square m.K]\n",
+ "print\"The volumetric coeffecients are\\n\"\n",
+ "print\"Based on Gas Phase \",round(Hg*aVW), \"W/cubic m.K\\n\"\n",
+ "print\"based on Liquid Phase\",round(Hl*aVW,2),\" W/cubic m.K\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 6.7 - Page: 207\n",
+ "\n",
+ "\n",
+ "The volumetric coeffecients are\n",
+ "\n",
+ "Based on Gas Phase 3183.0 W/cubic m.K\n",
+ "\n",
+ "based on Liquid Phase 503701.46 W/cubic m.K\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 10.1\n",
+ "# Page: 494\n",
+ "\n",
+ "print'Illustration 10.1 - Page: 494\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import matplotlib.pyplot as plt\n",
+ "import pylab\n",
+ "%matplotlib inline\n",
+ "#****Data****#\n",
+ "# a:water b:isopropyl ether c:acetic acid\n",
+ "xF = 0.30;# [mol fraction]\n",
+ "yS = 0;# [mol fraction]\n",
+ "S1 = 40.0;# [kg]\n",
+ "B1 = 40.0;# [kg]\n",
+ "#*******#\n",
+ "\n",
+ "# Equilibrium data at 20 OC:\n",
+ "# Wa: Wt. percent of a\n",
+ "# Wb: Wt. percent of b\n",
+ "# Wc: Wt. percent of c\n",
+ "# Data1 = [Wc Wa Wb]\n",
+ "# Data1: water layer\n",
+ "Data1 = numpy.array([(0.69 ,98.1, 1.2),(1.41, 97.1 ,1.5),(2.89 ,95.5 ,1.6),(6.42 ,91.7 ,1.9),(13.30, 84.4, 2.3),(25.50 ,71.1 ,3.4),(36.70 ,58.9 ,4.4),(44.30 ,45.1 ,10.6),(46.40 ,37.1 ,16.5)])\n",
+ "# Data2: isopropyl ether layer\n",
+ "Data2 = numpy.array([(0.18 ,0.5 ,99.3),(0.37, 0.7 ,98.9),(0.79, 0.8, 98.4),(1.93 ,1, 97.1),(4.82, 1.9, 93.3),(11.40, 3.9, 84.7),(21.60, 6.9, 71.5),(31.10, 10.8, 58.1),(36.20 ,15.1 ,48.7)])\n",
+ "\n",
+ "plt.plot((Data1[:,2])/100,(Data1[:,0])/100,label=\"x Vs fraction ether\")\n",
+ "plt.plot((Data2[:,2])/100,(Data2[:,0])/100,label=\"y Vs fraction ether\")\n",
+ "plt.grid('on');\n",
+ "plt.legend(loc='lower center');\n",
+ "ax=pylab.gca()\n",
+ "ax.set_xlabel(\"Wt fraction of isopropyl ether\");\n",
+ "ax.set_ylabel(\"Wt fraction of acetic acid\");\n",
+ "plt.ylim((0,0.3))\n",
+ "plt.xlim((0,1))\n",
+ "plt.show();\n",
+ "# x: Wt fraction of acetic acid in water layer.\n",
+ "# y: Wt fraction of acetic acid in isopropyl layer.\n",
+ "\n",
+ "# The rectangular coordinates of Fig 10.9(a) will be used but only upto x = 0.30\n",
+ "\n",
+ "# Stage 1:\n",
+ "F = 100;# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "M1 = F+S1;# [kg]\n",
+ "# From Eqn. 10.5:\n",
+ "xM1 = ((F*xF)+(S1*yS))/M1;\n",
+ "# From Fig. 10.15 (Pg 495):\n",
+ "# Point M1 is located on the line FB and with the help of tie line passing through M1:\n",
+ "x1 = 0.258;# [mol fraction]\n",
+ "y1 = 0.117;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E1 = (M1*(xM1-x1)/(y1-x1));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R1 = M1-E1;# [kg]\n",
+ "\n",
+ "# Stage 2:\n",
+ "S2 = 40;# [kg]\n",
+ "B2 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M2 = R1+B2;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM2 = ((R1*x1)+(S2*yS))/M2;\n",
+ "# Point M2 is located on the line R1B and the tie line passing through R2E2 through M2:\n",
+ "x2 = 0.227;\n",
+ "y2 = 0.095;\n",
+ "# From Eqn. 10.8:\n",
+ "E2 = (M2*(xM2-x2)/(y2-x2));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R2 = M2-E2;# [kg]\n",
+ "\n",
+ "# Stage 3:\n",
+ "S3 = 40;# [kg]\n",
+ "B3 = 40;# [kg]\n",
+ "# From Eqn. 10.15:\n",
+ "M3 = R2+B3;# [kg]\n",
+ "# From Eqn. 10.16:\n",
+ "xM3 = ((R2*x2)+(S3*yS))/M3;\n",
+ "# Point M3 is located on the line R2B and the tie line passing through R3E3 through M3:\n",
+ "x3 = 0.20;# [mol fraction]\n",
+ "y3 = 0.078;# [mol fraction]\n",
+ "# From Eqn. 10.8:\n",
+ "E3 = (M3*(xM3-x3)/(y3-x3));# [kg]\n",
+ "# From Eqn. 10.4:\n",
+ "R3 = M3-E3;# [kg]\n",
+ "Ac = x3*R3;\n",
+ "print\"The composited extract is\",round((E1+E2+E3),2),\" kg\\n\"\n",
+ "print\"The acid content is \",round(((E1*y1)+(E2*y2)+(E3*y3)),2),\" kg\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# If an extraction to give the same final raffinate concentration were to be done in single stage, the point M would be at the intersection of tie line R3E3 and the line BF.\n",
+ "x = 0.20;# [mol fraction]\n",
+ "xM = 0.12;# [mol fraction]\n",
+ "# From Eqn. 10.6:\n",
+ "S = F*(xF-xM)/(xM-yS);# [kg]\n",
+ "print round(S,2),\"kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 10.1 - Page: 494\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nhs2vBOrlc6whwIB8lmu3bt10yJAhOmTIEH322Wf1nnvStXt3Jynp6emanp6em6R4ns957sfxvXyI\nnXvsSzeVxmWXXaYnnniitm7dOvfLLj9ffPGFJicn6969e1VV9fTTT9cRI0bkrm/cuLG+9NJLun37\n9kLPl56enm+BsWbNmgL32bp1q4qI/vnnn5qdna1VqlTRpUuXHrJdzrEKKjDeeOMNPe200w7ap0OH\nDjp27FhVVU1NTdXHH388d92oUaM0LS0t35huu+02feCBBw5adtxxx+lnn32mqgUXGOvXr89d1q5d\nO33rrbdUVbVFixYHbb9hwwatUKGCZmdne8pR+HutrN/Pzz77bNR8Xouan756ujbo3UCnz5peJsdL\nT0/Xbt265X5fRmOBUR74EacTw4ruVULLPNtcBHykoQJmrvu8KlDdfV4N+BLolM85NK/nn1e9445D\nFse98DdKWYuF//omT56sIqKvvPJKkds2b95cJ02apKtXr9YKFSro//73v9x18+fP1y5dumjNmjX1\n7LPP1jlz5uR7jIIKjP379+cuy87O1oEDB2qzZs20Ro0ampycrCKiP/30k/7+++8qIrpr165Djl1U\ngfHkk0/qVVddddA+1157rT7xxBOq6hQYr776ar775tW5c2etWrWqJicn507VqlXTSZMmqWrBBUZ4\nbOHnq1KlSu5rzZmqVKmiGzZsyDdHefn5XvPzM+KHyyddro99+pgvxy5pgeFbG4aq7gd6A9OB74C3\nVHWFiPQSkV7uNh8BP4nIauAl4A539/rA5yKyGPga+FBVZ3g5b6L+SioW6mf9snPnTvr3788tt9zC\nkCFDcuvMC3LjjTfyxhtvMH78eNLS0qhbt27uur/85S+8//77bNq0icsvv5yrr766WLGEd9Q4YcIE\nJk+ezOzZs9m+fTtr1qwBnH/S6tSpQ+XKlVm9enWhx8hPw4YN+fnnnw9a9vPPP9OwYd4mwqI1btyY\n++67j61bt+ZOO3fu5JprrvEUS37HmzZt2kHH2717Nw0aNMjdJqjOLGPtM5Iz0NIv238JOpRcvt6H\noaofq+pxqtpcVf/pLntJVV8K26a3u761qi50l/2kqm3c6cScfb3Ys8d+JZVo+vXrR7t27Xj55Ze5\n+OKLue222wrd/sYbb2TmzJm88sordOvWLXd5VlYWEyZMYPv27SQlJVG9enWSkpJKHNfOnTupVKkS\n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\niRUYxhhjPPl/ptoLDFmMWJUAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7890240>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The composited extract is 135.05 kg\n",
+ "\n",
+ "The acid content is 13.01 kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "150.0 kg of solvent would be recquired if the same final raffinate concentration were to be obtained with one stage.\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter7.ipynb b/Mass_-_Transfer_Operations/Chapter7.ipynb
new file mode 100755
index 00000000..14a0593d
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter7.ipynb
@@ -0,0 +1,1071 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4bcd866f270e2f66ae7fbe911b2556c72aef74bc48c0c7488d977884f07ab7ad"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Humidification Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1: Page 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.1\n",
+ "# Page: 222\n",
+ "\n",
+ "print'Illustration 7.1 - Page: 222\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# ****Data****#\n",
+ "Temp1 = 273+26.1;# [K]\n",
+ "P1 = 100;# [mm Hg]\n",
+ "Temp2 = 273+60.6;# [K]\n",
+ "P2 = 400;# [mm Hg]\n",
+ "P = 200;# [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "def f12(T):\n",
+ " return ((1/Temp1)-(1/T))/((1/Temp1)-(1/Temp2))-((math.log(P1)-math.log(P))/(math.log(P1)-math.log(P2)))\n",
+ "T = fsolve(f12,37);# [K]\n",
+ "print\"At\",round(T-273,1),\" degree C, the vapour pressure of benzene is 200 mm Hg\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.1 - Page: 222\n",
+ "\n",
+ "\n",
+ "At"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 42.4 degree C, the vapour pressure of benzene is 200 mm Hg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2: Page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.2:\n",
+ "# Page: 223\n",
+ "\n",
+ "print'Illustration 7.2 - Page: 223\\n\\n'\n",
+ "#part(a) and part(b) are table based and doesn't require an calculation\n",
+ "\n",
+ "print'Illustration 7.2 (c)\\n\\n'\n",
+ "\n",
+ "# Solution (c)\n",
+ "\n",
+ "# Reference: H20\n",
+ "# At 25 OC\n",
+ "m = 0.775;\n",
+ "Mr = 18.02;# [kg/kmol]\n",
+ "lambdar = 2443000;# [N/m.kg]\n",
+ "M = 78.05;# [kg/kmol]\n",
+ "# From Eqn. 7.6:\n",
+ "Lambda = m*lambdar*Mr/M;# [N/m.kg]\n",
+ "print\"Latent Heat of Vaporization at 25 degree C is\",round(Lambda/1000,2),\" kN/m.kg\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.2 - Page: 223\n",
+ "\n",
+ "\n",
+ "Illustration 7.2 (c)\n",
+ "\n",
+ "\n",
+ "Latent Heat of Vaporization at 25 degree C is 437.13 kN/m.kg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3: Page 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.3\n",
+ "# Page: 226\n",
+ "\n",
+ "print'Illustration 7.3 - Page: 226\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# ****Data****#\n",
+ "m = 10;# [kg]\n",
+ "Cvap = 1.256;# [kJ/kg.K]\n",
+ "Cliq = 1.507;# [kJ/kg.K]\n",
+ "Temp1 = 100;# [OC]\n",
+ "Temp4 = 10;# [OC]\n",
+ "#******#\n",
+ "\n",
+ "# Using Fig 7.2 (Pg 224):\n",
+ "Temp2 = 25;# [OC]\n",
+ "# Using the notation of Fig. 7.3:\n",
+ "H1_diff_H2 = Cvap*(Temp1-Temp2);# [kJ/kg]\n",
+ "# From Illustration 7.2:\n",
+ "H2_diff_H3 = 434;# [Latent Heat of Vaporisation, kJ/kg]\n",
+ "H3_diff_H4 = Cliq*(Temp2-Temp4);# [kJ/kg]\n",
+ "H1_diff_H4 = H1_diff_H2+H2_diff_H3+H3_diff_H4;# [kJ/kg]\n",
+ "H = m*H1_diff_H4;# [kJ]\n",
+ "print\"Heat evolved for 10 kg Benzene is \",int(H),\" kJ\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.3 - Page: 226\n",
+ "\n",
+ "\n",
+ "Heat evolved for 10 kg Benzene is 5508 kJ\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4: Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.4\n",
+ "# Page: 227\n",
+ "\n",
+ "print'Illustration 7.4 - Page: 227\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = benzene vapour; B = Nitrogen Gas\n",
+ "P = 800.0;# [mm Hg]\n",
+ "Temp = 273.0+60;# [K]\n",
+ "pA = 100.0;# [mm Hg]\n",
+ "#******#\n",
+ "\n",
+ "pB = P-pA;# [mm Hg]\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 28.08;# [kg/kmol]\n",
+ "\n",
+ "# Mole Fraction\n",
+ "print\"On the Basis of Mole Fraction\\n\"\n",
+ "yAm = pA/P;\n",
+ "yBm = pB/P;\n",
+ "print\"Mole Fraction of Benzene is \",yAm\n",
+ "print\"\\nMole Fraction of Nitrogen is \",yBm\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Volume Fraction\n",
+ "print\"On the Basis of Volume Fraction\\n\"\n",
+ "# Volume fraction is same as mole Fraction\n",
+ "yAv = yAm;\n",
+ "yBv = yBm;\n",
+ "print\"Volume Fraction of Benzene is \",yAv\n",
+ "print\"\\n Volume Fraction of Nitrogen is \",yBv\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Absolute Humidity\n",
+ "print\"On the basis of Absolute humidity\\n\"\n",
+ "Y = pA/pB;# [mol benzene/mol nitrogen]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg nitrogen]\n",
+ "print\"The concentration of benzene is \",round(Y_prime,3),\" kg benzene/kg nitrogen\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.4 - Page: 227\n",
+ "\n",
+ "\n",
+ "On the Basis of Mole Fraction\n",
+ "\n",
+ "Mole Fraction of Benzene is 0.125\n",
+ "\n",
+ "Mole Fraction of Nitrogen is 0.875\n",
+ "\n",
+ "\n",
+ "On the Basis of Volume Fraction\n",
+ "\n",
+ "Volume Fraction of Benzene is 0.125\n",
+ "\n",
+ " Volume Fraction of Nitrogen is 0.875\n",
+ "\n",
+ "\n",
+ "On the basis of Absolute humidity\n",
+ "\n",
+ "The concentration of benzene is 0.397 kg benzene/kg nitrogen\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5: Page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.5\n",
+ "# Page: 228\n",
+ "\n",
+ "print'Illustration 7.5 - Page: 228\\n\\n'\n",
+ "\n",
+ "print'Illustration 7.5 (a)\\n\\n'\n",
+ "# solution(a)\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = benzene vapour; B = Nitrogen Gas\n",
+ "P = 1.0;# [atm]\n",
+ "#*****#\n",
+ "\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 28.02;# [kg/kmol]\n",
+ "# Since gas is saturated, from Fig. 7.2 (Pg 224):\n",
+ "pA = 275.0/760;# [atm]\n",
+ "Y = pA/(P-pA);# [kmol benzene/kmol nitrogen]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg nitrogen]\n",
+ "print\"The concentration of benzene is \",round(Y_prime,3),\" kg benzene/kg nitrogen\\n\\n\"\n",
+ "\n",
+ "print'Illustration 7.5 (b)\\n\\n'\n",
+ "# solution(b)\n",
+ "\n",
+ "# A = benzene vapour; B = CO2\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 44.01;# [kg/kmol]\n",
+ "# Since gas is saturated, from Fig. 7.2:\n",
+ "pA = 275.0/760;# [atm]\n",
+ "Y = pA/(P-pA);# [kmol benzene/kmol CO2]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg CO2]\n",
+ "print\"The concentration of benzene is\",round(Y_prime,3),\" kg benzene/kg CO2\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.5 - Page: 228\n",
+ "\n",
+ "\n",
+ "Illustration 7.5 (a)\n",
+ "\n",
+ "\n",
+ "The concentration of benzene is 1.579 kg benzene/kg nitrogen\n",
+ "\n",
+ "\n",
+ "Illustration 7.5 (b)\n",
+ "\n",
+ "\n",
+ "The concentration of benzene is 1.006 kg benzene/kg CO2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.6: Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.6\n",
+ "# Page: 234\n",
+ "\n",
+ "print'Illustration 7.6 - Page: 234\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = water vapour; B = air\n",
+ "TempG = 55;# [OC]\n",
+ "P = 1.0133*10**(5);# [N/square m]\n",
+ "Y_prime = 0.030;# [kg water/kg dry air]\n",
+ "#******#\n",
+ "\n",
+ "MA = 18.02;# [kg/kmol]\n",
+ "MB = 28.97;# [kg/kmol]\n",
+ "\n",
+ "# Percent Humidity\n",
+ "# From psychrometric chart, at 55 OC\n",
+ "Ys_prime = 0.115;# [kg water/kg dry air]\n",
+ "percent_Humidity = (Y_prime/Ys_prime)*100;\n",
+ "print\"The sample has percent Humidity =\",round(percent_Humidity,1),\"%\"\n",
+ "\n",
+ "# Molal Absolute Humidity\n",
+ "Y = Y_prime*(MB/MA);# [kmol water/kmol dry air]\n",
+ "print\"\\n Molal Absolute Humidity of the sample is\",round(Y,4),\" kmol water/kmol dry air\\n\"\n",
+ "\n",
+ "# Partial Pressure\n",
+ "pA = Y*P/(1+Y);# [N/square m]\n",
+ "print\"The Partial Pressure Of Water is\",int(pA),\" N/square m\\n\"\n",
+ "\n",
+ "# Relative Humidity\n",
+ "pa = 118*133.3;# [vapour pressure of water at 55 OC,N/square m]\n",
+ "relative_Humidity = (pA/pa)*100;\n",
+ "print\"The sample has relative Humidity = \",round(relative_Humidity,1),\" %\\n\"\n",
+ "\n",
+ "# Dew Point\n",
+ "# From psychrometric chart,\n",
+ "dew_point = 31.5;# [OC]\n",
+ "print\"Dew point Of the Sample is\",dew_point,\" degree C\\n\"\n",
+ "\n",
+ "# Humid Volume\n",
+ "# At 55 OC\n",
+ "vB = 0.93;# [specific volume of dry air,cubic m/kg]\n",
+ "vsB = 1.10;# [specific volume of saturated air,cubic m/kg]\n",
+ "vH = vB+((vsB-vB)*(percent_Humidity/100));# [cubic m/kg]\n",
+ "print\"The Humid Volume of the Sample is \",round(vH,3),\" cubic m/kg\\n\"\n",
+ "\n",
+ "# Humid Heat\n",
+ "CB = 1005;# [J/kg.K]\n",
+ "CA = 1884;# [J/kg.K]\n",
+ "Cs = CB+(Y_prime*CA);# [J/kg]\n",
+ "print\"The Humid Heat is \",round(Cs,1),\" J/kg dry air.K\\n\"\n",
+ "\n",
+ "# Enthalpy\n",
+ "HA = 56000;# [J/kg dry air]\n",
+ "HsA = 352000;# [J/kg dry air]\n",
+ "H_prime = HA+((HsA-HA)*(percent_Humidity/100));# [J/kg dry air]\n",
+ "print\"The Enthalphy of the sample is \",round(H_prime/1000,1),\"KJ/kg dry air\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.6 - Page: 234\n",
+ "\n",
+ "\n",
+ "The sample has percent Humidity = 26.1 %\n",
+ "\n",
+ " Molal Absolute Humidity of the sample is 0.0482 kmol water/kmol dry air\n",
+ "\n",
+ "The Partial Pressure Of Water is 4662 N/square m\n",
+ "\n",
+ "The sample has relative Humidity = 29.6 %\n",
+ "\n",
+ "Dew point Of the Sample is 31.5 degree C\n",
+ "\n",
+ "The Humid Volume of the Sample is 0.974 cubic m/kg\n",
+ "\n",
+ "The Humid Heat is 1061.5 J/kg dry air.K\n",
+ "\n",
+ "The Enthalphy of the sample is 133.2 KJ/kg dry air\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.7: Page 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.7\n",
+ "# Page: 236\n",
+ "\n",
+ "print'Illustration 7.7 - Page: 236\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = water vapour; B = air\n",
+ "V = 100;# [m**3]\n",
+ "Tempi = 55;# [OC]\n",
+ "Tempf = 110;# [OC]\n",
+ "#*****#\n",
+ "\n",
+ "# From Illustration 7.6\n",
+ "vH = 0.974;# [m**3/kg]\n",
+ "Cs = 1061.5;# [J/kg]\n",
+ "WB = V/vH;# [kg]\n",
+ "Q = WB*Cs*(Tempf-Tempi);# [J]\n",
+ "print\"Heat required is \",round(Q,3),\" J\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.7 - Page: 236\n",
+ "\n",
+ "\n",
+ "Heat recquired is 5994096.509 J\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.9: Page 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.9\n",
+ "# Page:240\n",
+ "from scipy.optimize import fsolve \n",
+ "print'Illustration 7.9 - Page:240\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "Tempw = 35;# [OC]\n",
+ "Tempg = 65;# [OC]\n",
+ "#******#\n",
+ "\n",
+ "# From psychrometric chart\n",
+ "lambda_w = 2419300;# [J/kg]\n",
+ "Y_prime_w = 0.0365;# [kg H2O/kg dry air]\n",
+ "# From fig 7.5(a)\n",
+ "hG_by_kY = 950;# [J/kg]\n",
+ "# From Eqn. 7.26\n",
+ "def f13(Y_prime):\n",
+ " return (Tempg-Tempw)-((lambda_w*(Y_prime_w-Y_prime))/hG_by_kY)\n",
+ "Y_prime = fsolve(f13,2);# [kg H2O/kg dry air]\n",
+ "print\"Humidity of air is\",round(Y_prime[0],4),\"kg H2O/kg dry air\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.9 - Page:240\n",
+ "\n",
+ "\n",
+ "Humidity of air is 0.0247 kg H2O/kg dry air\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.10: Page 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.10\n",
+ "# Page:241\n",
+ "\n",
+ "print'Illustration 7.10 - Page:241\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "Tg = 60;# [OC]\n",
+ "Y_prime = 0.050;# [kg toulene/kg air]\n",
+ "#*****#\n",
+ "\n",
+ "# Wet Bulb temparature\n",
+ "Dab = 0.92*10**(-5);# [square m/s]\n",
+ "density_air = 1.060;# [kg/cubic cm];\n",
+ "viscocity_G = 1.95*10**(-5);# [kg/m.s]\n",
+ "Sc = viscocity_G/(density_air*Dab);\n",
+ "# From Eqn. 7.28\n",
+ "hG_by_kY = 1223*(Sc**0.567);# [J/kg.K]\n",
+ "# Soln. of Eqn. 7.26 by trial & error method:\n",
+ "# (Tg-Tw) = (Yas_prime-Y_prime)*(lambda_w/hG_by_kY)\n",
+ "Tw = 31.8;# [OC]\n",
+ "print\"Wet Bulb Temparature:\",Tw,\" degree C\\n\"\n",
+ "\n",
+ "# Adiabatic Saturation Temparature\n",
+ "C_air = 1005;# [J/kg.K]\n",
+ "C_toulene = 1256;# [J/kg.K]\n",
+ "Cs = C_air+(C_toulene*Y_prime);# [J/kg.K]\n",
+ "# Soln. of Eqn. 7.21 by trial & error method:\n",
+ "# (Tg-Tas) = (Yas_prime-Y_prime)*(lambda_as/Cs)\n",
+ "Tas = 25.7;# [OC]\n",
+ "print\"Adiabatic Saturation Temparature: \",round(Tas,1),\" degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.10 - Page:241\n",
+ "\n",
+ "\n",
+ "Wet Bulb Temparature: 31.8 degree C\n",
+ "\n",
+ "Adiabatic Saturation Temparature: 25.7 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.11: Page 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.11\n",
+ "# Page: 249\n",
+ "\n",
+ "print'Illustration 7.11 - Page: 249\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "\n",
+ "#****Data****#\n",
+ "L_min = 2.27;# [kg/square m.s]\n",
+ "G_min = 2;# [kg/square m.s]\n",
+ "L2_prime = 15;# [kg/s]\n",
+ "Q = 270.0;# [W]\n",
+ "Templ2 = 45.0;# [OC]\n",
+ "Tempg1 = 30.0;# [OC]\n",
+ "Tempw1 = 24.0;# [OC]\n",
+ "Kya = 0.90;# [kg/cubic m.s]\n",
+ "#*******#\n",
+ "\n",
+ "H1_prime = 72;# [kJ/kg dry air]\n",
+ "Y1_prime = 0.0160;# [kg water/kg dry air]\n",
+ "Templ1 = 29;# [OC]\n",
+ "Cal = 4.187;# [kJ/kg]\n",
+ "\n",
+ "# Tower cross section Area:\n",
+ "Al = L2_prime/L_min;# [square m]\n",
+ "Ag = Gs/G_min;# [square m]\n",
+ "A = min(Al,Ag);# [square m]\n",
+ "Area = 3.25;\n",
+ "# From Eqn. 7.54\n",
+ "def f16(Z):\n",
+ " return Area-(Kya*Z/G_min)\n",
+ "Z = fsolve(f16,2);\n",
+ "print\"The height of tower is\",round(Z,2),\" m\\n\"\n",
+ "NtoG = 3.25;\n",
+ "HtoG = G_min/Kya;# [m]\n",
+ "\n",
+ "# Make up water\n",
+ "# Assuming the outlet air is essentially saturated:\n",
+ "Y2_prime = 0.0475;# [kg water/kg dry air]\n",
+ "E = G_min*(A)*(Y2_prime-Y1_prime);# [kg/s]\n",
+ "# Windage loss estimated as 0.2 percent\n",
+ "W = 0.002*L2_prime;# [kg/s]\n",
+ "ppm_blowdown = 2000;# [ppm]\n",
+ "ppm_makeup = 500;# [ppm]\n",
+ "# Since the weight fraction are proportional to the corresponding ppm values:\n",
+ "B = (E*ppm_makeup/(ppm_blowdown-ppm_makeup))-W;# [kg/s]\n",
+ "M = B+E+W;# [kg/s]\n",
+ "print\"The makeup water requirement is estimated to be\",round(M,2),\" kg/s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.11 - Page: 249\n",
+ "\n",
+ "\n",
+ "The height of tower is 7.22 m\n",
+ "\n",
+ "The makeup water requirement is estimated to be 0.46 kg/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.13: Page 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.13\n",
+ "# Page: 254\n",
+ "\n",
+ "\n",
+ "print'Illustration 7.13\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve \n",
+ "# Given\n",
+ "Tempg1=65;# [OC]\n",
+ "Y1_prime=0.0170;# [kg water/kg dry air]\n",
+ "# Using adiabatic satursion line on Fig. 7.5 (Pg 232)\n",
+ "Tempas=32;# [OC]\n",
+ "Yas_prime=0.0309;# [kg water/kg dry air]\n",
+ "Tempg2=45;# [OC]\n",
+ "Z=2;# [m]\n",
+ "#*******#\n",
+ "\n",
+ "Y2_prime=0.0265;# [kg water/kg dry air]\n",
+ "def f19(Kya_by_Gs):\n",
+ " return math.log((Yas_prime-Y1_prime)/(Yas_prime-Y2_prime))-(Kya_by_Gs*Z)\n",
+ "Kya_by_Gs=fsolve(f19,1);# [1/m]\n",
+ "\n",
+ "# For the extended chamber:\n",
+ "Z=4;# [m]\n",
+ "def f20(Y2_prime):\n",
+ " return math.log((Yas_prime-Y1_prime)/(Yas_prime-Y2_prime))-(Kya_by_Gs*Z)\n",
+ "Y2_prime=fsolve(f20,0.029);#[kg water/kg dry air] \n",
+ "# With the same adiabatic curve:\n",
+ "Tempg2=34;# [OC] from the curve\n",
+ "print\"The Outlet Conditions are:\\n\"\n",
+ "print\"Absolute Humidity is\",round(Y2_prime,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Dry Bulb Temperature is\",round(Tempg2), \"degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.13\n",
+ "\n",
+ "\n",
+ "The Outlet Conditions are:\n",
+ "\n",
+ "Absolute Humidity is 0.0295 kg water/kg dry air\n",
+ "\n",
+ "Dry Bulb Temperature is 34.0 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.14: Page 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.14\n",
+ "# Page: 256\n",
+ "\n",
+ "print'Illustration 7.14 - Page: 256\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# a = N2 b = CO\n",
+ "# Entering gas\n",
+ "Y1_prime = 0.0;# [kg water/kg dry air]\n",
+ "Pt = 1.0;# [atm]\n",
+ "Tempg1 = 315.0;# [OC]\n",
+ "G_prime = 5.0;# [square m/s]\n",
+ "\n",
+ "# Temp of the tower:\n",
+ "Templ2 = 18.0;# [OC]\n",
+ "Density_L2 = 1000.0; #[kg/square m]\n",
+ "viscocity_L2 = 1.056*10**(-3);# [kg/m.s]\n",
+ "Tempg2 = 27.0;# [OC]\n",
+ "\n",
+ "Mb = 28.0;# [kg/kmol]\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Density_G1 = (Mb/22.41)*(273/(Tempg1+273));# [kg/square m]\n",
+ "G1 = G_prime*(Density_G1);# [kg/s]\n",
+ "\n",
+ "# Since the outlet gas is nearly saturated:\n",
+ "Y_prime = 0.024;# [kg water/kg dry air]\n",
+ "Y2_prime = 0.022;# [kg water/kg dry air, assumed]\n",
+ "G2 = G1*(1+Y2_prime);# [kg/s]\n",
+ "Mav = (1+Y2_prime)/((1/Mb)+(Y2_prime/Ma));# [kg/kmol]\n",
+ "Density_G2 = (Mav/22.4)*(273.0/(Templ2+273));# [kg/square m]\n",
+ "L2_by_G2 = 2.0;\n",
+ "abcissa = L2_by_G2*(Density_G2/(Density_L2-Density_G2))**(1/2);\n",
+ "# From Fig. 6.34:\n",
+ "# For a gas pressure drop of 400 N/square m/m\n",
+ "ordinate = 0.073;\n",
+ "# From Table 6.3:\n",
+ "Cf = 65.0;\n",
+ "J = 1.0;\n",
+ "def f21(G2_prime):\n",
+ " return ((G2_prime**2)*Cf*(viscocity_L2**0.1)*J/(Density_G2*(Density_L2-Density_G2)))-ordinate\n",
+ "# Tentative data:\n",
+ "G2_prime = fsolve(f21,2);# [kg/square m.s]\n",
+ "Area = G1/G2_prime;# [square m]\n",
+ "dia = math.sqrt(4*Area/math.pi);# [m]\n",
+ "\n",
+ "# Final data:\n",
+ "dia = 1.50;# [m]\n",
+ "Area = math.pi*dia**2.0/4;# [square m]\n",
+ "Gs_prime = G1/Area;# [kg/square m.s]\n",
+ "G2_prime = G2/Area;# [kg/square m.s]\n",
+ "L2_prime = L2_by_G2*G2_prime;# [kg/square m.s]\n",
+ "# From Eqn. 7.29:\n",
+ "def f22(L1_prime):\n",
+ " return (L2_prime-L1_prime)-(Gs_prime*(Y2_prime-Y1_prime))\n",
+ "L1_prime = fsolve(f22,2);\n",
+ "Cb = 1089;# [J/kg.K]\n",
+ "Ca = 1884;# [J/kg.K]\n",
+ "Cs1 = Cb+(Y1_prime*Ca);# [J/(kg dry air).K]\n",
+ "Cs2 = Cb+(Y2_prime*Ca);# [J/(kg dry air).K]\n",
+ "Tempo = Templ2;# [base temp.,K]\n",
+ "Lambda = 2.46*10**6;# [J/kg]\n",
+ "CaL = 4187;# [J/kg K]\n",
+ "# From Eqn. 7.31:\n",
+ "def f23(Templ1):\n",
+ " return ((L2_prime*CaL*(Templ2-Tempo))+(Gs_prime*Cs1*(Tempg1-Tempo)))-((L1_prime*CaL*(Templ1-Tempo))+(Gs_prime*(Cs2*(Tempg2-Tempo))+(Y2_prime*Lambda)))\n",
+ "Templ1 = fsolve(f23,2);\n",
+ "# At Templ1 = 49.2 OC\n",
+ "viscocity_L = 0.557*10**(-3);# [kg/m.s]\n",
+ "Density_L = 989.0;# [kg/square m]\n",
+ "K = 0.64;# [w/m.K]\n",
+ "Prl = CaL*viscocity_L/K;\n",
+ "\n",
+ "# For Entering Gas:\n",
+ "viscocity_G1 = 0.0288*10**(-3);# [kg*/m.s]\n",
+ "Dab = 0.8089*10**(-4);# [square m/s]\n",
+ "ScG = viscocity_G1/(Density_G1*Dab);\n",
+ "PrG = 0.74;\n",
+ "\n",
+ "# From Illustration 6.7:\n",
+ "a = 53.1;# [square m/square m]\n",
+ "Fga = 0.0736;# [kmol/square m]\n",
+ "Hga = 4440.0;# [W/square m.K]\n",
+ "Hla = 350500.0;# [W/square m.K]\n",
+ "# At the bottom, by several trial:\n",
+ "Tempi = 50.3;# [OC]\n",
+ "pai = 93.9/760;# [atm]\n",
+ "paG = 0;# [atm]\n",
+ "# By Eqn. 7.64:\n",
+ "dY_prime_by_dZ = -(Ma*Fga/Gs_prime)*math.log((1-(pai/Pt))/(1-(paG/Pt)));# [(kg H2O/kg dry gas)/m]\n",
+ "Hg_primea = -(Gs_prime*Ca*dY_prime_by_dZ)/(1-math.exp((Gs_prime*Ca*dY_prime_by_dZ)/(Hga)));# [W/square m.K]\n",
+ "dTempg_by_dZ = -(Hg_primea*(Tempg1-Tempi)/(Gs_prime*Cs1));# [OC/m]\n",
+ "Tempi = (Templ1)+((Gs_prime*(Cs1*dTempg_by_dZ)+((Ca*(Tempg1))-(CaL*(Templ1))+(((CaL-Ca)*(Tempo))+Lambda))*dY_prime_by_dZ)/((Gs_prime*CaL*dY_prime_by_dZ)-Hla));#[OC]\n",
+ "# Assume:\n",
+ "delta_Tempg = -30;# [OC]\n",
+ "delta_Z = delta_Tempg/(dTempg_by_dZ);# [m]\n",
+ "Tempg = Tempg1+delta_Tempg;# [OC]\n",
+ "Y_prime = Y1_prime+(dY_prime_by_dZ)*delta_Z;# [kg H2O/kg dry gas]\n",
+ "paG = Y_prime/(Y_prime+(Ma/Mb));# [atm]\n",
+ "Cs = Cb+Ca*(Y_prime);# [J/(kg dry air).K]\n",
+ "# Water balance, From Eqn. 7.29:\n",
+ "def f24(L_prime):\n",
+ " return (L2_prime-L_prime)-(Gs_prime*(Y_prime-Y1_prime))\n",
+ "L_prime = fsolve(f24,2);# [kg/square m.s]\n",
+ "\n",
+ "def f25(Templ):\n",
+ " return ((L_prime*CaL*(Templ-Tempo))+(Gs_prime*Cs1*(Tempg1-Tempo)))-((L1_prime*CaL*(Templ1-Tempo))+(Gs_prime*(Cs*(Tempg-Tempo))+(Y_prime*Lambda)))\n",
+ "Templ = fsolve(f25,2);\n",
+ "\n",
+ "# This process is repeated several times until gas temp falls to Tempg2\n",
+ "Z = 1.54;# [m] Z = sum of all delta_Z\n",
+ "# The value of Y2_prime was calculated to be 0.0222 which is sufficiently close to the assumed value.\n",
+ "print\"The diameter of tower is \",dia,\" m\\n\"\n",
+ "print\"The packed height is\",Z, \"m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.15: Page 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.15\n",
+ "# Page: 267\n",
+ "\n",
+ "print'Illustration 7.15 - Page: 267\\n\\n'\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "w = 0.75;# [m]\n",
+ "OD = 19.05/1000;# [m]\n",
+ "l = 3.75;# [m]\n",
+ "n = 20;\n",
+ "t = 1.65/1000;# [m]\n",
+ "Ws = 2.3;# [kg/s]\n",
+ "Wal = 10.0;# [kg/s]\n",
+ "Wt = 4.0;# [kg/s]\n",
+ "Density = 800;# [kg/cubic m]\n",
+ "viscocity = 0.005;# [kg/m.s]\n",
+ "K = 0.1436;# [W/m.K]\n",
+ "Ct = 2010.0;# [J/kg.K]\n",
+ "Cal = 4187.0;# [J/kg.K]\n",
+ "Y1_prime = 0.01;# [kg H2O/kg dry air]\n",
+ "Y2_prime = 0.06;# [kg H2O/kg dry air]\n",
+ "TempT = 95.0;# [OC]\n",
+ "#*****#\n",
+ "\n",
+ "Free_area = (w-(n*OD))*l;# [square m]\n",
+ "Gs_min = 2.3/Free_area;# [kg/square m.s]\n",
+ "M1 = 1.461;Yav_prime = (Y1_prime+Y2_prime)/2;# [kg H2O/kg dry air]\n",
+ "# From Eqn. 7.86:\n",
+ "ky = 0.0493*(Gs_min*(1+Yav_prime))**0.905;# [kg/square m.s.delta_Y_prime]\n",
+ "# From Fig. 7.5:\n",
+ "H1_prime = 56000.0;# [J/kg]\n",
+ "Ao = 400*math.pi*OD*l;# [square m]\n",
+ "# Cooling water is distributed over 40 tubes & since tubes are staggered\n",
+ "geta = Wal/(40.0*2*l);# [kg/m.s]\n",
+ "geta_by_OD = geta/OD;# [kg/square m.s]\n",
+ "# Assume:\n",
+ "TempL = 28.0;# [OC]\n",
+ "# From Eqn. 7.84:\n",
+ "hL_prime = (982+(15.58*TempL))*(geta_by_OD**(1/3));# [W/square m.K]\n",
+ "# From Eqn. 7.85:\n",
+ "hL_dprime = 11360;# [W/square m.K]\n",
+ "# From Fig. 7.5 (Pg 232)\n",
+ "m = 5000.0;# [J/kg.K]\n",
+ "Ky = 1.0/((1/ky)+(m/hL_dprime));\n",
+ "ID = (OD-(2.0*t));# [m]\n",
+ "Ai = math.pi*(ID**2)/4;# [square m]\n",
+ "Gt_prime = Wt/(n*Ai);# [kg/square m.s]\n",
+ "M2 = -0.7204;Re = ID*Gt_prime/viscocity;\n",
+ "Pr = Ct*viscocity/K;\n",
+ "# From a standard correlation:\n",
+ "hT = 364.0;# [W/square m.K]\n",
+ "Dav = (ID+OD)/2.0;# [m]\n",
+ "Zm = (OD-ID)/2;# [m]\n",
+ "Km = 112.5;# [W/m.K]\n",
+ "# From Eqn. 7.67:\n",
+ "Uo = 1/((OD/(ID*hT))+((OD/Dav)*(Zm/Km))+(1/hL_prime));# [W/square m.K]\n",
+ "# From Eqn. 7.75:\n",
+ "alpha1 = -(((Uo*Ao)/(Wt*Ct))+((Uo*Ao)/(Wal*Cal)));\n",
+ "alpha2 = m*Uo*Ao/(Wt*Ct);\n",
+ "# From Eqn. 7.76:\n",
+ "beeta1 = Ky*Ao/(Wal*Cal);\n",
+ "beeta2 = -((m*Ky*Ao/(Wal*Cal))-(Ky*Ao/Ws));\n",
+ "def f26(r):\n",
+ " return (r**2)+((alpha1+beeta2)*r)+((alpha1*beeta2)-(alpha2*beeta1))\n",
+ "r1 = fsolve(f26,10);\n",
+ "r2 = fsolve(f26,0);\n",
+ "beeta2 = 1.402;\n",
+ "# From Eqn. 7.83:\n",
+ "# N1-(M1*(r1+alpha1)/beeta1) = 0............................................(1)\n",
+ "# N2-(M2*(r2+alpha2)/beeta2) = 0............................................(2)\n",
+ "# From Eqn. 7.77:\n",
+ "# At the top:\n",
+ "x1 = 1.0;\n",
+ "# TempL2+(M1*exp(r1*x1))+(M2*exp(-(r2*x1))) = TempL.........................(3)\n",
+ "# From Eqn. 7.78:\n",
+ "# At the bottom:\n",
+ "x2 = 0.0;\n",
+ "# H1_star-N1-N2 = H1_prime..................................................(4)\n",
+ "# From Eqn. 7.80:\n",
+ "# ((M1/r1)*(exp(r1)-1))+((M2*r2)*(exp(r2)-1)) = (Tempt-TempL)...............(5)\n",
+ "# From Eqn. 7.81:\n",
+ "# ((N1/r1)*(exp(r1)-1))+((N2*r2)*(exp(r2)-1)) = (H1_star-H1_prime)..........(6)\n",
+ "# From Eqn. 7.91 & Eqn. 7.92:\n",
+ "# Uo*Ao*(TempT-TempL)=Ky*Ao*(H1_star-H1_prime)..............................(7)\n",
+ "\n",
+ "# Elimination of M's & N's by solving Eqn. (1) to (4) and (7) simultaneously:\n",
+ "# and from Fig. 7.5 (Pg 232):\n",
+ "TempL1=28.0;# [OC]\n",
+ "H1_star=(Uo*Ao*(TempT-TempL)/(Ky*Ao))+H1_prime;# [J/kmol]\n",
+ "\n",
+ "\n",
+ "N1 = 3594.0*M1\n",
+ "N2 =-43288.0*M2;\n",
+ "\n",
+ "# By Eqn. 5\n",
+ "delta_Temp = ((M1/r1)*(math.exp(r1)-1))+((M2*r2)*(math.exp(r2)-1));# [OC]\n",
+ "Q = Uo*delta_Temp*Ao;\n",
+ "TempT1 = TempT-(Q/(Wt*Ct));# [OC]\n",
+ "H2_prime = Q/(Ws)+H1_prime;# [J/kg]\n",
+ "print\"Temperature to which oil was cooled:\",int(TempT1),\" degree C\\n\"\n",
+ "# The solution in the textbook is wrong "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.15 - Page: 267\n",
+ "\n",
+ "\n",
+ "Temperature to which oil was cooled:"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 57 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter7_1.ipynb b/Mass_-_Transfer_Operations/Chapter7_1.ipynb
new file mode 100755
index 00000000..14a0593d
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter7_1.ipynb
@@ -0,0 +1,1071 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4bcd866f270e2f66ae7fbe911b2556c72aef74bc48c0c7488d977884f07ab7ad"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Humidification Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1: Page 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.1\n",
+ "# Page: 222\n",
+ "\n",
+ "print'Illustration 7.1 - Page: 222\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# ****Data****#\n",
+ "Temp1 = 273+26.1;# [K]\n",
+ "P1 = 100;# [mm Hg]\n",
+ "Temp2 = 273+60.6;# [K]\n",
+ "P2 = 400;# [mm Hg]\n",
+ "P = 200;# [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "def f12(T):\n",
+ " return ((1/Temp1)-(1/T))/((1/Temp1)-(1/Temp2))-((math.log(P1)-math.log(P))/(math.log(P1)-math.log(P2)))\n",
+ "T = fsolve(f12,37);# [K]\n",
+ "print\"At\",round(T-273,1),\" degree C, the vapour pressure of benzene is 200 mm Hg\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.1 - Page: 222\n",
+ "\n",
+ "\n",
+ "At"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 42.4 degree C, the vapour pressure of benzene is 200 mm Hg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2: Page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.2:\n",
+ "# Page: 223\n",
+ "\n",
+ "print'Illustration 7.2 - Page: 223\\n\\n'\n",
+ "#part(a) and part(b) are table based and doesn't require an calculation\n",
+ "\n",
+ "print'Illustration 7.2 (c)\\n\\n'\n",
+ "\n",
+ "# Solution (c)\n",
+ "\n",
+ "# Reference: H20\n",
+ "# At 25 OC\n",
+ "m = 0.775;\n",
+ "Mr = 18.02;# [kg/kmol]\n",
+ "lambdar = 2443000;# [N/m.kg]\n",
+ "M = 78.05;# [kg/kmol]\n",
+ "# From Eqn. 7.6:\n",
+ "Lambda = m*lambdar*Mr/M;# [N/m.kg]\n",
+ "print\"Latent Heat of Vaporization at 25 degree C is\",round(Lambda/1000,2),\" kN/m.kg\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.2 - Page: 223\n",
+ "\n",
+ "\n",
+ "Illustration 7.2 (c)\n",
+ "\n",
+ "\n",
+ "Latent Heat of Vaporization at 25 degree C is 437.13 kN/m.kg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3: Page 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.3\n",
+ "# Page: 226\n",
+ "\n",
+ "print'Illustration 7.3 - Page: 226\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# ****Data****#\n",
+ "m = 10;# [kg]\n",
+ "Cvap = 1.256;# [kJ/kg.K]\n",
+ "Cliq = 1.507;# [kJ/kg.K]\n",
+ "Temp1 = 100;# [OC]\n",
+ "Temp4 = 10;# [OC]\n",
+ "#******#\n",
+ "\n",
+ "# Using Fig 7.2 (Pg 224):\n",
+ "Temp2 = 25;# [OC]\n",
+ "# Using the notation of Fig. 7.3:\n",
+ "H1_diff_H2 = Cvap*(Temp1-Temp2);# [kJ/kg]\n",
+ "# From Illustration 7.2:\n",
+ "H2_diff_H3 = 434;# [Latent Heat of Vaporisation, kJ/kg]\n",
+ "H3_diff_H4 = Cliq*(Temp2-Temp4);# [kJ/kg]\n",
+ "H1_diff_H4 = H1_diff_H2+H2_diff_H3+H3_diff_H4;# [kJ/kg]\n",
+ "H = m*H1_diff_H4;# [kJ]\n",
+ "print\"Heat evolved for 10 kg Benzene is \",int(H),\" kJ\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.3 - Page: 226\n",
+ "\n",
+ "\n",
+ "Heat evolved for 10 kg Benzene is 5508 kJ\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4: Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.4\n",
+ "# Page: 227\n",
+ "\n",
+ "print'Illustration 7.4 - Page: 227\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = benzene vapour; B = Nitrogen Gas\n",
+ "P = 800.0;# [mm Hg]\n",
+ "Temp = 273.0+60;# [K]\n",
+ "pA = 100.0;# [mm Hg]\n",
+ "#******#\n",
+ "\n",
+ "pB = P-pA;# [mm Hg]\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 28.08;# [kg/kmol]\n",
+ "\n",
+ "# Mole Fraction\n",
+ "print\"On the Basis of Mole Fraction\\n\"\n",
+ "yAm = pA/P;\n",
+ "yBm = pB/P;\n",
+ "print\"Mole Fraction of Benzene is \",yAm\n",
+ "print\"\\nMole Fraction of Nitrogen is \",yBm\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Volume Fraction\n",
+ "print\"On the Basis of Volume Fraction\\n\"\n",
+ "# Volume fraction is same as mole Fraction\n",
+ "yAv = yAm;\n",
+ "yBv = yBm;\n",
+ "print\"Volume Fraction of Benzene is \",yAv\n",
+ "print\"\\n Volume Fraction of Nitrogen is \",yBv\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Absolute Humidity\n",
+ "print\"On the basis of Absolute humidity\\n\"\n",
+ "Y = pA/pB;# [mol benzene/mol nitrogen]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg nitrogen]\n",
+ "print\"The concentration of benzene is \",round(Y_prime,3),\" kg benzene/kg nitrogen\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.4 - Page: 227\n",
+ "\n",
+ "\n",
+ "On the Basis of Mole Fraction\n",
+ "\n",
+ "Mole Fraction of Benzene is 0.125\n",
+ "\n",
+ "Mole Fraction of Nitrogen is 0.875\n",
+ "\n",
+ "\n",
+ "On the Basis of Volume Fraction\n",
+ "\n",
+ "Volume Fraction of Benzene is 0.125\n",
+ "\n",
+ " Volume Fraction of Nitrogen is 0.875\n",
+ "\n",
+ "\n",
+ "On the basis of Absolute humidity\n",
+ "\n",
+ "The concentration of benzene is 0.397 kg benzene/kg nitrogen\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5: Page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.5\n",
+ "# Page: 228\n",
+ "\n",
+ "print'Illustration 7.5 - Page: 228\\n\\n'\n",
+ "\n",
+ "print'Illustration 7.5 (a)\\n\\n'\n",
+ "# solution(a)\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = benzene vapour; B = Nitrogen Gas\n",
+ "P = 1.0;# [atm]\n",
+ "#*****#\n",
+ "\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 28.02;# [kg/kmol]\n",
+ "# Since gas is saturated, from Fig. 7.2 (Pg 224):\n",
+ "pA = 275.0/760;# [atm]\n",
+ "Y = pA/(P-pA);# [kmol benzene/kmol nitrogen]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg nitrogen]\n",
+ "print\"The concentration of benzene is \",round(Y_prime,3),\" kg benzene/kg nitrogen\\n\\n\"\n",
+ "\n",
+ "print'Illustration 7.5 (b)\\n\\n'\n",
+ "# solution(b)\n",
+ "\n",
+ "# A = benzene vapour; B = CO2\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 44.01;# [kg/kmol]\n",
+ "# Since gas is saturated, from Fig. 7.2:\n",
+ "pA = 275.0/760;# [atm]\n",
+ "Y = pA/(P-pA);# [kmol benzene/kmol CO2]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg CO2]\n",
+ "print\"The concentration of benzene is\",round(Y_prime,3),\" kg benzene/kg CO2\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.5 - Page: 228\n",
+ "\n",
+ "\n",
+ "Illustration 7.5 (a)\n",
+ "\n",
+ "\n",
+ "The concentration of benzene is 1.579 kg benzene/kg nitrogen\n",
+ "\n",
+ "\n",
+ "Illustration 7.5 (b)\n",
+ "\n",
+ "\n",
+ "The concentration of benzene is 1.006 kg benzene/kg CO2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.6: Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.6\n",
+ "# Page: 234\n",
+ "\n",
+ "print'Illustration 7.6 - Page: 234\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = water vapour; B = air\n",
+ "TempG = 55;# [OC]\n",
+ "P = 1.0133*10**(5);# [N/square m]\n",
+ "Y_prime = 0.030;# [kg water/kg dry air]\n",
+ "#******#\n",
+ "\n",
+ "MA = 18.02;# [kg/kmol]\n",
+ "MB = 28.97;# [kg/kmol]\n",
+ "\n",
+ "# Percent Humidity\n",
+ "# From psychrometric chart, at 55 OC\n",
+ "Ys_prime = 0.115;# [kg water/kg dry air]\n",
+ "percent_Humidity = (Y_prime/Ys_prime)*100;\n",
+ "print\"The sample has percent Humidity =\",round(percent_Humidity,1),\"%\"\n",
+ "\n",
+ "# Molal Absolute Humidity\n",
+ "Y = Y_prime*(MB/MA);# [kmol water/kmol dry air]\n",
+ "print\"\\n Molal Absolute Humidity of the sample is\",round(Y,4),\" kmol water/kmol dry air\\n\"\n",
+ "\n",
+ "# Partial Pressure\n",
+ "pA = Y*P/(1+Y);# [N/square m]\n",
+ "print\"The Partial Pressure Of Water is\",int(pA),\" N/square m\\n\"\n",
+ "\n",
+ "# Relative Humidity\n",
+ "pa = 118*133.3;# [vapour pressure of water at 55 OC,N/square m]\n",
+ "relative_Humidity = (pA/pa)*100;\n",
+ "print\"The sample has relative Humidity = \",round(relative_Humidity,1),\" %\\n\"\n",
+ "\n",
+ "# Dew Point\n",
+ "# From psychrometric chart,\n",
+ "dew_point = 31.5;# [OC]\n",
+ "print\"Dew point Of the Sample is\",dew_point,\" degree C\\n\"\n",
+ "\n",
+ "# Humid Volume\n",
+ "# At 55 OC\n",
+ "vB = 0.93;# [specific volume of dry air,cubic m/kg]\n",
+ "vsB = 1.10;# [specific volume of saturated air,cubic m/kg]\n",
+ "vH = vB+((vsB-vB)*(percent_Humidity/100));# [cubic m/kg]\n",
+ "print\"The Humid Volume of the Sample is \",round(vH,3),\" cubic m/kg\\n\"\n",
+ "\n",
+ "# Humid Heat\n",
+ "CB = 1005;# [J/kg.K]\n",
+ "CA = 1884;# [J/kg.K]\n",
+ "Cs = CB+(Y_prime*CA);# [J/kg]\n",
+ "print\"The Humid Heat is \",round(Cs,1),\" J/kg dry air.K\\n\"\n",
+ "\n",
+ "# Enthalpy\n",
+ "HA = 56000;# [J/kg dry air]\n",
+ "HsA = 352000;# [J/kg dry air]\n",
+ "H_prime = HA+((HsA-HA)*(percent_Humidity/100));# [J/kg dry air]\n",
+ "print\"The Enthalphy of the sample is \",round(H_prime/1000,1),\"KJ/kg dry air\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.6 - Page: 234\n",
+ "\n",
+ "\n",
+ "The sample has percent Humidity = 26.1 %\n",
+ "\n",
+ " Molal Absolute Humidity of the sample is 0.0482 kmol water/kmol dry air\n",
+ "\n",
+ "The Partial Pressure Of Water is 4662 N/square m\n",
+ "\n",
+ "The sample has relative Humidity = 29.6 %\n",
+ "\n",
+ "Dew point Of the Sample is 31.5 degree C\n",
+ "\n",
+ "The Humid Volume of the Sample is 0.974 cubic m/kg\n",
+ "\n",
+ "The Humid Heat is 1061.5 J/kg dry air.K\n",
+ "\n",
+ "The Enthalphy of the sample is 133.2 KJ/kg dry air\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.7: Page 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.7\n",
+ "# Page: 236\n",
+ "\n",
+ "print'Illustration 7.7 - Page: 236\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = water vapour; B = air\n",
+ "V = 100;# [m**3]\n",
+ "Tempi = 55;# [OC]\n",
+ "Tempf = 110;# [OC]\n",
+ "#*****#\n",
+ "\n",
+ "# From Illustration 7.6\n",
+ "vH = 0.974;# [m**3/kg]\n",
+ "Cs = 1061.5;# [J/kg]\n",
+ "WB = V/vH;# [kg]\n",
+ "Q = WB*Cs*(Tempf-Tempi);# [J]\n",
+ "print\"Heat required is \",round(Q,3),\" J\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.7 - Page: 236\n",
+ "\n",
+ "\n",
+ "Heat recquired is 5994096.509 J\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.9: Page 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.9\n",
+ "# Page:240\n",
+ "from scipy.optimize import fsolve \n",
+ "print'Illustration 7.9 - Page:240\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "Tempw = 35;# [OC]\n",
+ "Tempg = 65;# [OC]\n",
+ "#******#\n",
+ "\n",
+ "# From psychrometric chart\n",
+ "lambda_w = 2419300;# [J/kg]\n",
+ "Y_prime_w = 0.0365;# [kg H2O/kg dry air]\n",
+ "# From fig 7.5(a)\n",
+ "hG_by_kY = 950;# [J/kg]\n",
+ "# From Eqn. 7.26\n",
+ "def f13(Y_prime):\n",
+ " return (Tempg-Tempw)-((lambda_w*(Y_prime_w-Y_prime))/hG_by_kY)\n",
+ "Y_prime = fsolve(f13,2);# [kg H2O/kg dry air]\n",
+ "print\"Humidity of air is\",round(Y_prime[0],4),\"kg H2O/kg dry air\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.9 - Page:240\n",
+ "\n",
+ "\n",
+ "Humidity of air is 0.0247 kg H2O/kg dry air\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.10: Page 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.10\n",
+ "# Page:241\n",
+ "\n",
+ "print'Illustration 7.10 - Page:241\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "Tg = 60;# [OC]\n",
+ "Y_prime = 0.050;# [kg toulene/kg air]\n",
+ "#*****#\n",
+ "\n",
+ "# Wet Bulb temparature\n",
+ "Dab = 0.92*10**(-5);# [square m/s]\n",
+ "density_air = 1.060;# [kg/cubic cm];\n",
+ "viscocity_G = 1.95*10**(-5);# [kg/m.s]\n",
+ "Sc = viscocity_G/(density_air*Dab);\n",
+ "# From Eqn. 7.28\n",
+ "hG_by_kY = 1223*(Sc**0.567);# [J/kg.K]\n",
+ "# Soln. of Eqn. 7.26 by trial & error method:\n",
+ "# (Tg-Tw) = (Yas_prime-Y_prime)*(lambda_w/hG_by_kY)\n",
+ "Tw = 31.8;# [OC]\n",
+ "print\"Wet Bulb Temparature:\",Tw,\" degree C\\n\"\n",
+ "\n",
+ "# Adiabatic Saturation Temparature\n",
+ "C_air = 1005;# [J/kg.K]\n",
+ "C_toulene = 1256;# [J/kg.K]\n",
+ "Cs = C_air+(C_toulene*Y_prime);# [J/kg.K]\n",
+ "# Soln. of Eqn. 7.21 by trial & error method:\n",
+ "# (Tg-Tas) = (Yas_prime-Y_prime)*(lambda_as/Cs)\n",
+ "Tas = 25.7;# [OC]\n",
+ "print\"Adiabatic Saturation Temparature: \",round(Tas,1),\" degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.10 - Page:241\n",
+ "\n",
+ "\n",
+ "Wet Bulb Temparature: 31.8 degree C\n",
+ "\n",
+ "Adiabatic Saturation Temparature: 25.7 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.11: Page 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.11\n",
+ "# Page: 249\n",
+ "\n",
+ "print'Illustration 7.11 - Page: 249\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "\n",
+ "#****Data****#\n",
+ "L_min = 2.27;# [kg/square m.s]\n",
+ "G_min = 2;# [kg/square m.s]\n",
+ "L2_prime = 15;# [kg/s]\n",
+ "Q = 270.0;# [W]\n",
+ "Templ2 = 45.0;# [OC]\n",
+ "Tempg1 = 30.0;# [OC]\n",
+ "Tempw1 = 24.0;# [OC]\n",
+ "Kya = 0.90;# [kg/cubic m.s]\n",
+ "#*******#\n",
+ "\n",
+ "H1_prime = 72;# [kJ/kg dry air]\n",
+ "Y1_prime = 0.0160;# [kg water/kg dry air]\n",
+ "Templ1 = 29;# [OC]\n",
+ "Cal = 4.187;# [kJ/kg]\n",
+ "\n",
+ "# Tower cross section Area:\n",
+ "Al = L2_prime/L_min;# [square m]\n",
+ "Ag = Gs/G_min;# [square m]\n",
+ "A = min(Al,Ag);# [square m]\n",
+ "Area = 3.25;\n",
+ "# From Eqn. 7.54\n",
+ "def f16(Z):\n",
+ " return Area-(Kya*Z/G_min)\n",
+ "Z = fsolve(f16,2);\n",
+ "print\"The height of tower is\",round(Z,2),\" m\\n\"\n",
+ "NtoG = 3.25;\n",
+ "HtoG = G_min/Kya;# [m]\n",
+ "\n",
+ "# Make up water\n",
+ "# Assuming the outlet air is essentially saturated:\n",
+ "Y2_prime = 0.0475;# [kg water/kg dry air]\n",
+ "E = G_min*(A)*(Y2_prime-Y1_prime);# [kg/s]\n",
+ "# Windage loss estimated as 0.2 percent\n",
+ "W = 0.002*L2_prime;# [kg/s]\n",
+ "ppm_blowdown = 2000;# [ppm]\n",
+ "ppm_makeup = 500;# [ppm]\n",
+ "# Since the weight fraction are proportional to the corresponding ppm values:\n",
+ "B = (E*ppm_makeup/(ppm_blowdown-ppm_makeup))-W;# [kg/s]\n",
+ "M = B+E+W;# [kg/s]\n",
+ "print\"The makeup water requirement is estimated to be\",round(M,2),\" kg/s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.11 - Page: 249\n",
+ "\n",
+ "\n",
+ "The height of tower is 7.22 m\n",
+ "\n",
+ "The makeup water requirement is estimated to be 0.46 kg/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.13: Page 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.13\n",
+ "# Page: 254\n",
+ "\n",
+ "\n",
+ "print'Illustration 7.13\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve \n",
+ "# Given\n",
+ "Tempg1=65;# [OC]\n",
+ "Y1_prime=0.0170;# [kg water/kg dry air]\n",
+ "# Using adiabatic satursion line on Fig. 7.5 (Pg 232)\n",
+ "Tempas=32;# [OC]\n",
+ "Yas_prime=0.0309;# [kg water/kg dry air]\n",
+ "Tempg2=45;# [OC]\n",
+ "Z=2;# [m]\n",
+ "#*******#\n",
+ "\n",
+ "Y2_prime=0.0265;# [kg water/kg dry air]\n",
+ "def f19(Kya_by_Gs):\n",
+ " return math.log((Yas_prime-Y1_prime)/(Yas_prime-Y2_prime))-(Kya_by_Gs*Z)\n",
+ "Kya_by_Gs=fsolve(f19,1);# [1/m]\n",
+ "\n",
+ "# For the extended chamber:\n",
+ "Z=4;# [m]\n",
+ "def f20(Y2_prime):\n",
+ " return math.log((Yas_prime-Y1_prime)/(Yas_prime-Y2_prime))-(Kya_by_Gs*Z)\n",
+ "Y2_prime=fsolve(f20,0.029);#[kg water/kg dry air] \n",
+ "# With the same adiabatic curve:\n",
+ "Tempg2=34;# [OC] from the curve\n",
+ "print\"The Outlet Conditions are:\\n\"\n",
+ "print\"Absolute Humidity is\",round(Y2_prime,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Dry Bulb Temperature is\",round(Tempg2), \"degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.13\n",
+ "\n",
+ "\n",
+ "The Outlet Conditions are:\n",
+ "\n",
+ "Absolute Humidity is 0.0295 kg water/kg dry air\n",
+ "\n",
+ "Dry Bulb Temperature is 34.0 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.14: Page 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.14\n",
+ "# Page: 256\n",
+ "\n",
+ "print'Illustration 7.14 - Page: 256\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# a = N2 b = CO\n",
+ "# Entering gas\n",
+ "Y1_prime = 0.0;# [kg water/kg dry air]\n",
+ "Pt = 1.0;# [atm]\n",
+ "Tempg1 = 315.0;# [OC]\n",
+ "G_prime = 5.0;# [square m/s]\n",
+ "\n",
+ "# Temp of the tower:\n",
+ "Templ2 = 18.0;# [OC]\n",
+ "Density_L2 = 1000.0; #[kg/square m]\n",
+ "viscocity_L2 = 1.056*10**(-3);# [kg/m.s]\n",
+ "Tempg2 = 27.0;# [OC]\n",
+ "\n",
+ "Mb = 28.0;# [kg/kmol]\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Density_G1 = (Mb/22.41)*(273/(Tempg1+273));# [kg/square m]\n",
+ "G1 = G_prime*(Density_G1);# [kg/s]\n",
+ "\n",
+ "# Since the outlet gas is nearly saturated:\n",
+ "Y_prime = 0.024;# [kg water/kg dry air]\n",
+ "Y2_prime = 0.022;# [kg water/kg dry air, assumed]\n",
+ "G2 = G1*(1+Y2_prime);# [kg/s]\n",
+ "Mav = (1+Y2_prime)/((1/Mb)+(Y2_prime/Ma));# [kg/kmol]\n",
+ "Density_G2 = (Mav/22.4)*(273.0/(Templ2+273));# [kg/square m]\n",
+ "L2_by_G2 = 2.0;\n",
+ "abcissa = L2_by_G2*(Density_G2/(Density_L2-Density_G2))**(1/2);\n",
+ "# From Fig. 6.34:\n",
+ "# For a gas pressure drop of 400 N/square m/m\n",
+ "ordinate = 0.073;\n",
+ "# From Table 6.3:\n",
+ "Cf = 65.0;\n",
+ "J = 1.0;\n",
+ "def f21(G2_prime):\n",
+ " return ((G2_prime**2)*Cf*(viscocity_L2**0.1)*J/(Density_G2*(Density_L2-Density_G2)))-ordinate\n",
+ "# Tentative data:\n",
+ "G2_prime = fsolve(f21,2);# [kg/square m.s]\n",
+ "Area = G1/G2_prime;# [square m]\n",
+ "dia = math.sqrt(4*Area/math.pi);# [m]\n",
+ "\n",
+ "# Final data:\n",
+ "dia = 1.50;# [m]\n",
+ "Area = math.pi*dia**2.0/4;# [square m]\n",
+ "Gs_prime = G1/Area;# [kg/square m.s]\n",
+ "G2_prime = G2/Area;# [kg/square m.s]\n",
+ "L2_prime = L2_by_G2*G2_prime;# [kg/square m.s]\n",
+ "# From Eqn. 7.29:\n",
+ "def f22(L1_prime):\n",
+ " return (L2_prime-L1_prime)-(Gs_prime*(Y2_prime-Y1_prime))\n",
+ "L1_prime = fsolve(f22,2);\n",
+ "Cb = 1089;# [J/kg.K]\n",
+ "Ca = 1884;# [J/kg.K]\n",
+ "Cs1 = Cb+(Y1_prime*Ca);# [J/(kg dry air).K]\n",
+ "Cs2 = Cb+(Y2_prime*Ca);# [J/(kg dry air).K]\n",
+ "Tempo = Templ2;# [base temp.,K]\n",
+ "Lambda = 2.46*10**6;# [J/kg]\n",
+ "CaL = 4187;# [J/kg K]\n",
+ "# From Eqn. 7.31:\n",
+ "def f23(Templ1):\n",
+ " return ((L2_prime*CaL*(Templ2-Tempo))+(Gs_prime*Cs1*(Tempg1-Tempo)))-((L1_prime*CaL*(Templ1-Tempo))+(Gs_prime*(Cs2*(Tempg2-Tempo))+(Y2_prime*Lambda)))\n",
+ "Templ1 = fsolve(f23,2);\n",
+ "# At Templ1 = 49.2 OC\n",
+ "viscocity_L = 0.557*10**(-3);# [kg/m.s]\n",
+ "Density_L = 989.0;# [kg/square m]\n",
+ "K = 0.64;# [w/m.K]\n",
+ "Prl = CaL*viscocity_L/K;\n",
+ "\n",
+ "# For Entering Gas:\n",
+ "viscocity_G1 = 0.0288*10**(-3);# [kg*/m.s]\n",
+ "Dab = 0.8089*10**(-4);# [square m/s]\n",
+ "ScG = viscocity_G1/(Density_G1*Dab);\n",
+ "PrG = 0.74;\n",
+ "\n",
+ "# From Illustration 6.7:\n",
+ "a = 53.1;# [square m/square m]\n",
+ "Fga = 0.0736;# [kmol/square m]\n",
+ "Hga = 4440.0;# [W/square m.K]\n",
+ "Hla = 350500.0;# [W/square m.K]\n",
+ "# At the bottom, by several trial:\n",
+ "Tempi = 50.3;# [OC]\n",
+ "pai = 93.9/760;# [atm]\n",
+ "paG = 0;# [atm]\n",
+ "# By Eqn. 7.64:\n",
+ "dY_prime_by_dZ = -(Ma*Fga/Gs_prime)*math.log((1-(pai/Pt))/(1-(paG/Pt)));# [(kg H2O/kg dry gas)/m]\n",
+ "Hg_primea = -(Gs_prime*Ca*dY_prime_by_dZ)/(1-math.exp((Gs_prime*Ca*dY_prime_by_dZ)/(Hga)));# [W/square m.K]\n",
+ "dTempg_by_dZ = -(Hg_primea*(Tempg1-Tempi)/(Gs_prime*Cs1));# [OC/m]\n",
+ "Tempi = (Templ1)+((Gs_prime*(Cs1*dTempg_by_dZ)+((Ca*(Tempg1))-(CaL*(Templ1))+(((CaL-Ca)*(Tempo))+Lambda))*dY_prime_by_dZ)/((Gs_prime*CaL*dY_prime_by_dZ)-Hla));#[OC]\n",
+ "# Assume:\n",
+ "delta_Tempg = -30;# [OC]\n",
+ "delta_Z = delta_Tempg/(dTempg_by_dZ);# [m]\n",
+ "Tempg = Tempg1+delta_Tempg;# [OC]\n",
+ "Y_prime = Y1_prime+(dY_prime_by_dZ)*delta_Z;# [kg H2O/kg dry gas]\n",
+ "paG = Y_prime/(Y_prime+(Ma/Mb));# [atm]\n",
+ "Cs = Cb+Ca*(Y_prime);# [J/(kg dry air).K]\n",
+ "# Water balance, From Eqn. 7.29:\n",
+ "def f24(L_prime):\n",
+ " return (L2_prime-L_prime)-(Gs_prime*(Y_prime-Y1_prime))\n",
+ "L_prime = fsolve(f24,2);# [kg/square m.s]\n",
+ "\n",
+ "def f25(Templ):\n",
+ " return ((L_prime*CaL*(Templ-Tempo))+(Gs_prime*Cs1*(Tempg1-Tempo)))-((L1_prime*CaL*(Templ1-Tempo))+(Gs_prime*(Cs*(Tempg-Tempo))+(Y_prime*Lambda)))\n",
+ "Templ = fsolve(f25,2);\n",
+ "\n",
+ "# This process is repeated several times until gas temp falls to Tempg2\n",
+ "Z = 1.54;# [m] Z = sum of all delta_Z\n",
+ "# The value of Y2_prime was calculated to be 0.0222 which is sufficiently close to the assumed value.\n",
+ "print\"The diameter of tower is \",dia,\" m\\n\"\n",
+ "print\"The packed height is\",Z, \"m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.15: Page 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.15\n",
+ "# Page: 267\n",
+ "\n",
+ "print'Illustration 7.15 - Page: 267\\n\\n'\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "w = 0.75;# [m]\n",
+ "OD = 19.05/1000;# [m]\n",
+ "l = 3.75;# [m]\n",
+ "n = 20;\n",
+ "t = 1.65/1000;# [m]\n",
+ "Ws = 2.3;# [kg/s]\n",
+ "Wal = 10.0;# [kg/s]\n",
+ "Wt = 4.0;# [kg/s]\n",
+ "Density = 800;# [kg/cubic m]\n",
+ "viscocity = 0.005;# [kg/m.s]\n",
+ "K = 0.1436;# [W/m.K]\n",
+ "Ct = 2010.0;# [J/kg.K]\n",
+ "Cal = 4187.0;# [J/kg.K]\n",
+ "Y1_prime = 0.01;# [kg H2O/kg dry air]\n",
+ "Y2_prime = 0.06;# [kg H2O/kg dry air]\n",
+ "TempT = 95.0;# [OC]\n",
+ "#*****#\n",
+ "\n",
+ "Free_area = (w-(n*OD))*l;# [square m]\n",
+ "Gs_min = 2.3/Free_area;# [kg/square m.s]\n",
+ "M1 = 1.461;Yav_prime = (Y1_prime+Y2_prime)/2;# [kg H2O/kg dry air]\n",
+ "# From Eqn. 7.86:\n",
+ "ky = 0.0493*(Gs_min*(1+Yav_prime))**0.905;# [kg/square m.s.delta_Y_prime]\n",
+ "# From Fig. 7.5:\n",
+ "H1_prime = 56000.0;# [J/kg]\n",
+ "Ao = 400*math.pi*OD*l;# [square m]\n",
+ "# Cooling water is distributed over 40 tubes & since tubes are staggered\n",
+ "geta = Wal/(40.0*2*l);# [kg/m.s]\n",
+ "geta_by_OD = geta/OD;# [kg/square m.s]\n",
+ "# Assume:\n",
+ "TempL = 28.0;# [OC]\n",
+ "# From Eqn. 7.84:\n",
+ "hL_prime = (982+(15.58*TempL))*(geta_by_OD**(1/3));# [W/square m.K]\n",
+ "# From Eqn. 7.85:\n",
+ "hL_dprime = 11360;# [W/square m.K]\n",
+ "# From Fig. 7.5 (Pg 232)\n",
+ "m = 5000.0;# [J/kg.K]\n",
+ "Ky = 1.0/((1/ky)+(m/hL_dprime));\n",
+ "ID = (OD-(2.0*t));# [m]\n",
+ "Ai = math.pi*(ID**2)/4;# [square m]\n",
+ "Gt_prime = Wt/(n*Ai);# [kg/square m.s]\n",
+ "M2 = -0.7204;Re = ID*Gt_prime/viscocity;\n",
+ "Pr = Ct*viscocity/K;\n",
+ "# From a standard correlation:\n",
+ "hT = 364.0;# [W/square m.K]\n",
+ "Dav = (ID+OD)/2.0;# [m]\n",
+ "Zm = (OD-ID)/2;# [m]\n",
+ "Km = 112.5;# [W/m.K]\n",
+ "# From Eqn. 7.67:\n",
+ "Uo = 1/((OD/(ID*hT))+((OD/Dav)*(Zm/Km))+(1/hL_prime));# [W/square m.K]\n",
+ "# From Eqn. 7.75:\n",
+ "alpha1 = -(((Uo*Ao)/(Wt*Ct))+((Uo*Ao)/(Wal*Cal)));\n",
+ "alpha2 = m*Uo*Ao/(Wt*Ct);\n",
+ "# From Eqn. 7.76:\n",
+ "beeta1 = Ky*Ao/(Wal*Cal);\n",
+ "beeta2 = -((m*Ky*Ao/(Wal*Cal))-(Ky*Ao/Ws));\n",
+ "def f26(r):\n",
+ " return (r**2)+((alpha1+beeta2)*r)+((alpha1*beeta2)-(alpha2*beeta1))\n",
+ "r1 = fsolve(f26,10);\n",
+ "r2 = fsolve(f26,0);\n",
+ "beeta2 = 1.402;\n",
+ "# From Eqn. 7.83:\n",
+ "# N1-(M1*(r1+alpha1)/beeta1) = 0............................................(1)\n",
+ "# N2-(M2*(r2+alpha2)/beeta2) = 0............................................(2)\n",
+ "# From Eqn. 7.77:\n",
+ "# At the top:\n",
+ "x1 = 1.0;\n",
+ "# TempL2+(M1*exp(r1*x1))+(M2*exp(-(r2*x1))) = TempL.........................(3)\n",
+ "# From Eqn. 7.78:\n",
+ "# At the bottom:\n",
+ "x2 = 0.0;\n",
+ "# H1_star-N1-N2 = H1_prime..................................................(4)\n",
+ "# From Eqn. 7.80:\n",
+ "# ((M1/r1)*(exp(r1)-1))+((M2*r2)*(exp(r2)-1)) = (Tempt-TempL)...............(5)\n",
+ "# From Eqn. 7.81:\n",
+ "# ((N1/r1)*(exp(r1)-1))+((N2*r2)*(exp(r2)-1)) = (H1_star-H1_prime)..........(6)\n",
+ "# From Eqn. 7.91 & Eqn. 7.92:\n",
+ "# Uo*Ao*(TempT-TempL)=Ky*Ao*(H1_star-H1_prime)..............................(7)\n",
+ "\n",
+ "# Elimination of M's & N's by solving Eqn. (1) to (4) and (7) simultaneously:\n",
+ "# and from Fig. 7.5 (Pg 232):\n",
+ "TempL1=28.0;# [OC]\n",
+ "H1_star=(Uo*Ao*(TempT-TempL)/(Ky*Ao))+H1_prime;# [J/kmol]\n",
+ "\n",
+ "\n",
+ "N1 = 3594.0*M1\n",
+ "N2 =-43288.0*M2;\n",
+ "\n",
+ "# By Eqn. 5\n",
+ "delta_Temp = ((M1/r1)*(math.exp(r1)-1))+((M2*r2)*(math.exp(r2)-1));# [OC]\n",
+ "Q = Uo*delta_Temp*Ao;\n",
+ "TempT1 = TempT-(Q/(Wt*Ct));# [OC]\n",
+ "H2_prime = Q/(Ws)+H1_prime;# [J/kg]\n",
+ "print\"Temperature to which oil was cooled:\",int(TempT1),\" degree C\\n\"\n",
+ "# The solution in the textbook is wrong "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.15 - Page: 267\n",
+ "\n",
+ "\n",
+ "Temperature to which oil was cooled:"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 57 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter7_2.ipynb b/Mass_-_Transfer_Operations/Chapter7_2.ipynb
new file mode 100755
index 00000000..83c83fea
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter7_2.ipynb
@@ -0,0 +1,1092 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0627e1083498e0e37e89924d5c259017b46e7f004ea51c86bbdc5e0e6e777fe9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Humidification Operations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1: Page 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.1\n",
+ "# Page: 222\n",
+ "\n",
+ "print'Illustration 7.1 - Page: 222\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "# ****Data****#\n",
+ "Temp1 = 273+26.1;# [K]\n",
+ "P1 = 100;# [mm Hg]\n",
+ "Temp2 = 273+60.6;# [K]\n",
+ "P2 = 400;# [mm Hg]\n",
+ "P = 200;# [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "def f12(T):\n",
+ " return ((1/Temp1)-(1/T))/((1/Temp1)-(1/Temp2))-((math.log(P1)-math.log(P))/(math.log(P1)-math.log(P2)))\n",
+ "T = fsolve(f12,37);# [K]\n",
+ "print\"At\",round(T-273,1),\" degree C, the vapour pressure of benzene is 200 mm Hg\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.1 - Page: 222\n",
+ "\n",
+ "\n",
+ "At"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 42.4 degree C, the vapour pressure of benzene is 200 mm Hg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2: Page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.2:\n",
+ "# Page: 223\n",
+ "\n",
+ "print'Illustration 7.2 - Page: 223\\n\\n'\n",
+ "#part(a) and part(b) are table based and doesn't require an calculation\n",
+ "\n",
+ "print'Illustration 7.2 (c)\\n\\n'\n",
+ "\n",
+ "# Solution (c)\n",
+ "\n",
+ "# Reference: H20\n",
+ "# At 25 OC\n",
+ "m = 0.775;\n",
+ "Mr = 18.02;# [kg/kmol]\n",
+ "lambdar = 2443000;# [N/m.kg]\n",
+ "M = 78.05;# [kg/kmol]\n",
+ "# From Eqn. 7.6:\n",
+ "Lambda = m*lambdar*Mr/M;# [N/m.kg]\n",
+ "print\"Latent Heat of Vaporization at 25 degree C is\",round(Lambda/1000,2),\" kN/m.kg\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.2 - Page: 223\n",
+ "\n",
+ "\n",
+ "Illustration 7.2 (c)\n",
+ "\n",
+ "\n",
+ "Latent Heat of Vaporization at 25 degree C is 437.13 kN/m.kg\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3: Page 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.3\n",
+ "# Page: 226\n",
+ "\n",
+ "print'Illustration 7.3 - Page: 226\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# ****Data****#\n",
+ "m = 10;# [kg]\n",
+ "Cvap = 1.256;# [kJ/kg.K]\n",
+ "Cliq = 1.507;# [kJ/kg.K]\n",
+ "Temp1 = 100;# [OC]\n",
+ "Temp4 = 10;# [OC]\n",
+ "#******#\n",
+ "\n",
+ "# Using Fig 7.2 (Pg 224):\n",
+ "Temp2 = 25;# [OC]\n",
+ "# Using the notation of Fig. 7.3:\n",
+ "H1_diff_H2 = Cvap*(Temp1-Temp2);# [kJ/kg]\n",
+ "# From Illustration 7.2:\n",
+ "H2_diff_H3 = 434;# [Latent Heat of Vaporisation, kJ/kg]\n",
+ "H3_diff_H4 = Cliq*(Temp2-Temp4);# [kJ/kg]\n",
+ "H1_diff_H4 = H1_diff_H2+H2_diff_H3+H3_diff_H4;# [kJ/kg]\n",
+ "H = m*H1_diff_H4;# [kJ]\n",
+ "print\"Heat evolved for 10 kg Benzene is \",int(H),\" kJ\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.3 - Page: 226\n",
+ "\n",
+ "\n",
+ "Heat evolved for 10 kg Benzene is 5508 kJ\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4: Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.4\n",
+ "# Page: 227\n",
+ "\n",
+ "print'Illustration 7.4 - Page: 227\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = benzene vapour; B = Nitrogen Gas\n",
+ "P = 800.0;# [mm Hg]\n",
+ "Temp = 273.0+60;# [K]\n",
+ "pA = 100.0;# [mm Hg]\n",
+ "#******#\n",
+ "\n",
+ "pB = P-pA;# [mm Hg]\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 28.08;# [kg/kmol]\n",
+ "\n",
+ "# Mole Fraction\n",
+ "print\"On the Basis of Mole Fraction\\n\"\n",
+ "yAm = pA/P;\n",
+ "yBm = pB/P;\n",
+ "print\"Mole Fraction of Benzene is \",yAm\n",
+ "print\"\\nMole Fraction of Nitrogen is \",yBm\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Volume Fraction\n",
+ "print\"On the Basis of Volume Fraction\\n\"\n",
+ "# Volume fraction is same as mole Fraction\n",
+ "yAv = yAm;\n",
+ "yBv = yBm;\n",
+ "print\"Volume Fraction of Benzene is \",yAv\n",
+ "print\"\\n Volume Fraction of Nitrogen is \",yBv\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# Absolute Humidity\n",
+ "print\"On the basis of Absolute humidity\\n\"\n",
+ "Y = pA/pB;# [mol benzene/mol nitrogen]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg nitrogen]\n",
+ "print\"The concentration of benzene is \",round(Y_prime,3),\" kg benzene/kg nitrogen\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.4 - Page: 227\n",
+ "\n",
+ "\n",
+ "On the Basis of Mole Fraction\n",
+ "\n",
+ "Mole Fraction of Benzene is 0.125\n",
+ "\n",
+ "Mole Fraction of Nitrogen is 0.875\n",
+ "\n",
+ "\n",
+ "On the Basis of Volume Fraction\n",
+ "\n",
+ "Volume Fraction of Benzene is 0.125\n",
+ "\n",
+ " Volume Fraction of Nitrogen is 0.875\n",
+ "\n",
+ "\n",
+ "On the basis of Absolute humidity\n",
+ "\n",
+ "The concentration of benzene is 0.397 kg benzene/kg nitrogen\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5: Page 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.5\n",
+ "# Page: 228\n",
+ "\n",
+ "print'Illustration 7.5 - Page: 228\\n\\n'\n",
+ "\n",
+ "print'Illustration 7.5 (a)\\n\\n'\n",
+ "# solution(a)\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = benzene vapour; B = Nitrogen Gas\n",
+ "P = 1.0;# [atm]\n",
+ "#*****#\n",
+ "\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 28.02;# [kg/kmol]\n",
+ "# Since gas is saturated, from Fig. 7.2 (Pg 224):\n",
+ "pA = 275.0/760;# [atm]\n",
+ "Y = pA/(P-pA);# [kmol benzene/kmol nitrogen]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg nitrogen]\n",
+ "print\"The concentration of benzene is \",round(Y_prime,3),\" kg benzene/kg nitrogen\\n\\n\"\n",
+ "\n",
+ "print'Illustration 7.5 (b)\\n\\n'\n",
+ "# solution(b)\n",
+ "\n",
+ "# A = benzene vapour; B = CO2\n",
+ "MA = 78.05;# [kg/kmol]\n",
+ "MB = 44.01;# [kg/kmol]\n",
+ "# Since gas is saturated, from Fig. 7.2:\n",
+ "pA = 275.0/760;# [atm]\n",
+ "Y = pA/(P-pA);# [kmol benzene/kmol CO2]\n",
+ "Y_prime = Y*(MA/MB);# [kg benzene/kg CO2]\n",
+ "print\"The concentration of benzene is\",round(Y_prime,3),\" kg benzene/kg CO2\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.5 - Page: 228\n",
+ "\n",
+ "\n",
+ "Illustration 7.5 (a)\n",
+ "\n",
+ "\n",
+ "The concentration of benzene is 1.579 kg benzene/kg nitrogen\n",
+ "\n",
+ "\n",
+ "Illustration 7.5 (b)\n",
+ "\n",
+ "\n",
+ "The concentration of benzene is 1.006 kg benzene/kg CO2\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.6: Page 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.6\n",
+ "# Page: 234\n",
+ "\n",
+ "print'Illustration 7.6 - Page: 234\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = water vapour; B = air\n",
+ "TempG = 55;# [OC]\n",
+ "P = 1.0133*10**(5);# [N/square m]\n",
+ "Y_prime = 0.030;# [kg water/kg dry air]\n",
+ "#******#\n",
+ "\n",
+ "MA = 18.02;# [kg/kmol]\n",
+ "MB = 28.97;# [kg/kmol]\n",
+ "\n",
+ "# Percent Humidity\n",
+ "# From psychrometric chart, at 55 OC\n",
+ "Ys_prime = 0.115;# [kg water/kg dry air]\n",
+ "percent_Humidity = (Y_prime/Ys_prime)*100;\n",
+ "print\"The sample has percent Humidity =\",round(percent_Humidity,1),\"%\"\n",
+ "\n",
+ "# Molal Absolute Humidity\n",
+ "Y = Y_prime*(MB/MA);# [kmol water/kmol dry air]\n",
+ "print\"\\n Molal Absolute Humidity of the sample is\",round(Y,4),\" kmol water/kmol dry air\\n\"\n",
+ "\n",
+ "# Partial Pressure\n",
+ "pA = Y*P/(1+Y);# [N/square m]\n",
+ "print\"The Partial Pressure Of Water is\",int(pA),\" N/square m\\n\"\n",
+ "\n",
+ "# Relative Humidity\n",
+ "pa = 118*133.3;# [vapour pressure of water at 55 OC,N/square m]\n",
+ "relative_Humidity = (pA/pa)*100;\n",
+ "print\"The sample has relative Humidity = \",round(relative_Humidity,1),\" %\\n\"\n",
+ "\n",
+ "# Dew Point\n",
+ "# From psychrometric chart,\n",
+ "dew_point = 31.5;# [OC]\n",
+ "print\"Dew point Of the Sample is\",dew_point,\" degree C\\n\"\n",
+ "\n",
+ "# Humid Volume\n",
+ "# At 55 OC\n",
+ "vB = 0.93;# [specific volume of dry air,cubic m/kg]\n",
+ "vsB = 1.10;# [specific volume of saturated air,cubic m/kg]\n",
+ "vH = vB+((vsB-vB)*(percent_Humidity/100));# [cubic m/kg]\n",
+ "print\"The Humid Volume of the Sample is \",round(vH,3),\" cubic m/kg\\n\"\n",
+ "\n",
+ "# Humid Heat\n",
+ "CB = 1005;# [J/kg.K]\n",
+ "CA = 1884;# [J/kg.K]\n",
+ "Cs = CB+(Y_prime*CA);# [J/kg]\n",
+ "print\"The Humid Heat is \",round(Cs,1),\" J/kg dry air.K\\n\"\n",
+ "\n",
+ "# Enthalpy\n",
+ "HA = 56000;# [J/kg dry air]\n",
+ "HsA = 352000;# [J/kg dry air]\n",
+ "H_prime = HA+((HsA-HA)*(percent_Humidity/100));# [J/kg dry air]\n",
+ "print\"The Enthalphy of the sample is \",round(H_prime/1000,1),\"KJ/kg dry air\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.6 - Page: 234\n",
+ "\n",
+ "\n",
+ "The sample has percent Humidity = 26.1 %\n",
+ "\n",
+ " Molal Absolute Humidity of the sample is 0.0482 kmol water/kmol dry air\n",
+ "\n",
+ "The Partial Pressure Of Water is 4662 N/square m\n",
+ "\n",
+ "The sample has relative Humidity = 29.6 %\n",
+ "\n",
+ "Dew point Of the Sample is 31.5 degree C\n",
+ "\n",
+ "The Humid Volume of the Sample is 0.974 cubic m/kg\n",
+ "\n",
+ "The Humid Heat is 1061.5 J/kg dry air.K\n",
+ "\n",
+ "The Enthalphy of the sample is 133.2 KJ/kg dry air\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.7: Page 236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.7\n",
+ "# Page: 236\n",
+ "\n",
+ "print'Illustration 7.7 - Page: 236\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# A = water vapour; B = air\n",
+ "V = 100;# [m**3]\n",
+ "Tempi = 55;# [OC]\n",
+ "Tempf = 110;# [OC]\n",
+ "#*****#\n",
+ "\n",
+ "# From Illustration 7.6\n",
+ "vH = 0.974;# [m**3/kg]\n",
+ "Cs = 1061.5;# [J/kg]\n",
+ "WB = V/vH;# [kg]\n",
+ "Q = WB*Cs*(Tempf-Tempi);# [J]\n",
+ "print\"Heat required is \",round(Q,3),\" J\\n\"\n",
+ "# the answer is slightly different in textbook due to approximation in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.7 - Page: 236\n",
+ "\n",
+ "\n",
+ "Heat recquired is 5994096.509 J\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.9: Page 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.9\n",
+ "# Page:240\n",
+ "from scipy.optimize import fsolve \n",
+ "print'Illustration 7.9 - Page:240\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "Tempw = 35;# [OC]\n",
+ "Tempg = 65;# [OC]\n",
+ "#******#\n",
+ "\n",
+ "# From psychrometric chart\n",
+ "lambda_w = 2419300;# [J/kg]\n",
+ "Y_prime_w = 0.0365;# [kg H2O/kg dry air]\n",
+ "# From fig 7.5(a)\n",
+ "hG_by_kY = 950;# [J/kg]\n",
+ "# From Eqn. 7.26\n",
+ "def f13(Y_prime):\n",
+ " return (Tempg-Tempw)-((lambda_w*(Y_prime_w-Y_prime))/hG_by_kY)\n",
+ "Y_prime = fsolve(f13,2);# [kg H2O/kg dry air]\n",
+ "print\"Humidity of air is\",round(Y_prime[0],4),\"kg H2O/kg dry air\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.9 - Page:240\n",
+ "\n",
+ "\n",
+ "Humidity of air is 0.0247 kg H2O/kg dry air\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.10: Page 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.10\n",
+ "# Page:241\n",
+ "\n",
+ "print'Illustration 7.10 - Page:241\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "Tg = 60;# [OC]\n",
+ "Y_prime = 0.050;# [kg toulene/kg air]\n",
+ "#*****#\n",
+ "\n",
+ "# Wet Bulb temparature\n",
+ "Dab = 0.92*10**(-5);# [square m/s]\n",
+ "density_air = 1.060;# [kg/cubic cm];\n",
+ "viscocity_G = 1.95*10**(-5);# [kg/m.s]\n",
+ "Sc = viscocity_G/(density_air*Dab);\n",
+ "# From Eqn. 7.28\n",
+ "hG_by_kY = 1223*(Sc**0.567);# [J/kg.K]\n",
+ "# Soln. of Eqn. 7.26 by trial & error method:\n",
+ "# (Tg-Tw) = (Yas_prime-Y_prime)*(lambda_w/hG_by_kY)\n",
+ "Tw = 31.8;# [OC]\n",
+ "print\"Wet Bulb Temparature:\",Tw,\" degree C\\n\"\n",
+ "\n",
+ "# Adiabatic Saturation Temparature\n",
+ "C_air = 1005;# [J/kg.K]\n",
+ "C_toulene = 1256;# [J/kg.K]\n",
+ "Cs = C_air+(C_toulene*Y_prime);# [J/kg.K]\n",
+ "# Soln. of Eqn. 7.21 by trial & error method:\n",
+ "# (Tg-Tas) = (Yas_prime-Y_prime)*(lambda_as/Cs)\n",
+ "Tas = 25.7;# [OC]\n",
+ "print\"Adiabatic Saturation Temparature: \",round(Tas,1),\" degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.10 - Page:241\n",
+ "\n",
+ "\n",
+ "Wet Bulb Temparature: 31.8 degree C\n",
+ "\n",
+ "Adiabatic Saturation Temparature: 25.7 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.11: Page 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.11\n",
+ "# Page: 249\n",
+ "\n",
+ "print'Illustration 7.11 - Page: 249\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "\n",
+ "#****Data****#\n",
+ "L_min = 2.27;# [kg/square m.s]\n",
+ "G_min = 2;# [kg/square m.s]\n",
+ "L2_prime = 15;# [kg/s]\n",
+ "Q = 270.0;# [W]\n",
+ "Templ2 = 45.0;# [OC]\n",
+ "Tempg1 = 30.0;# [OC]\n",
+ "Tempw1 = 24.0;# [OC]\n",
+ "Kya = 0.90;# [kg/cubic m.s]\n",
+ "#*******#\n",
+ "\n",
+ "H1_prime = 72;# [kJ/kg dry air]\n",
+ "Y1_prime = 0.0160;# [kg water/kg dry air]\n",
+ "Templ1 = 29;# [OC]\n",
+ "Cal = 4.187;# [kJ/kg]\n",
+ "\n",
+ "# Tower cross section Area:\n",
+ "Al = L2_prime/L_min;# [square m]\n",
+ "Ag = Gs/G_min;# [square m]\n",
+ "A = min(Al,Ag);# [square m]\n",
+ "Area = 3.25;\n",
+ "# From Eqn. 7.54\n",
+ "def f16(Z):\n",
+ " return Area-(Kya*Z/G_min)\n",
+ "Z = fsolve(f16,2);\n",
+ "print\"The height of tower is\",round(Z,2),\" m\\n\"\n",
+ "NtoG = 3.25;\n",
+ "HtoG = G_min/Kya;# [m]\n",
+ "\n",
+ "# Make up water\n",
+ "# Assuming the outlet air is essentially saturated:\n",
+ "Y2_prime = 0.0475;# [kg water/kg dry air]\n",
+ "E = G_min*(A)*(Y2_prime-Y1_prime);# [kg/s]\n",
+ "# Windage loss estimated as 0.2 percent\n",
+ "W = 0.002*L2_prime;# [kg/s]\n",
+ "ppm_blowdown = 2000;# [ppm]\n",
+ "ppm_makeup = 500;# [ppm]\n",
+ "# Since the weight fraction are proportional to the corresponding ppm values:\n",
+ "B = (E*ppm_makeup/(ppm_blowdown-ppm_makeup))-W;# [kg/s]\n",
+ "M = B+E+W;# [kg/s]\n",
+ "print\"The makeup water requirement is estimated to be\",round(M,2),\" kg/s\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.11 - Page: 249\n",
+ "\n",
+ "\n",
+ "The height of tower is 7.22 m\n",
+ "\n",
+ "The makeup water requirement is estimated to be 0.46 kg/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.13: Page 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.13\n",
+ "# Page: 254\n",
+ "\n",
+ "\n",
+ "print'Illustration 7.13\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve \n",
+ "# Given\n",
+ "Tempg1=65;# [OC]\n",
+ "Y1_prime=0.0170;# [kg water/kg dry air]\n",
+ "# Using adiabatic satursion line on Fig. 7.5 (Pg 232)\n",
+ "Tempas=32;# [OC]\n",
+ "Yas_prime=0.0309;# [kg water/kg dry air]\n",
+ "Tempg2=45;# [OC]\n",
+ "Z=2;# [m]\n",
+ "#*******#\n",
+ "\n",
+ "Y2_prime=0.0265;# [kg water/kg dry air]\n",
+ "def f19(Kya_by_Gs):\n",
+ " return math.log((Yas_prime-Y1_prime)/(Yas_prime-Y2_prime))-(Kya_by_Gs*Z)\n",
+ "Kya_by_Gs=fsolve(f19,1);# [1/m]\n",
+ "\n",
+ "# For the extended chamber:\n",
+ "Z=4;# [m]\n",
+ "def f20(Y2_prime):\n",
+ " return math.log((Yas_prime-Y1_prime)/(Yas_prime-Y2_prime))-(Kya_by_Gs*Z)\n",
+ "Y2_prime=fsolve(f20,0.029);#[kg water/kg dry air] \n",
+ "# With the same adiabatic curve:\n",
+ "Tempg2=34;# [OC] from the curve\n",
+ "print\"The Outlet Conditions are:\\n\"\n",
+ "print\"Absolute Humidity is\",round(Y2_prime,4),\" kg water/kg dry air\\n\"\n",
+ "print\"Dry Bulb Temperature is\",round(Tempg2), \"degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.13\n",
+ "\n",
+ "\n",
+ "The Outlet Conditions are:\n",
+ "\n",
+ "Absolute Humidity is 0.0295 kg water/kg dry air\n",
+ "\n",
+ "Dry Bulb Temperature is 34.0 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.14: Page 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.14\n",
+ "# Page: 256\n",
+ "\n",
+ "print'Illustration 7.14 - Page: 256\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# a = N2 b = CO\n",
+ "# Entering gas\n",
+ "Y1_prime = 0.0;# [kg water/kg dry air]\n",
+ "Pt = 1.0;# [atm]\n",
+ "Tempg1 = 315.0;# [OC]\n",
+ "G_prime = 5.0;# [square m/s]\n",
+ "\n",
+ "# Temp of the tower:\n",
+ "Templ2 = 18.0;# [OC]\n",
+ "Density_L2 = 1000.0; #[kg/square m]\n",
+ "viscocity_L2 = 1.056*10**(-3);# [kg/m.s]\n",
+ "Tempg2 = 27.0;# [OC]\n",
+ "\n",
+ "Mb = 28.0;# [kg/kmol]\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Density_G1 = (Mb/22.41)*(273/(Tempg1+273));# [kg/square m]\n",
+ "G1 = G_prime*(Density_G1);# [kg/s]\n",
+ "\n",
+ "# Since the outlet gas is nearly saturated:\n",
+ "Y_prime = 0.024;# [kg water/kg dry air]\n",
+ "Y2_prime = 0.022;# [kg water/kg dry air, assumed]\n",
+ "G2 = G1*(1+Y2_prime);# [kg/s]\n",
+ "Mav = (1+Y2_prime)/((1/Mb)+(Y2_prime/Ma));# [kg/kmol]\n",
+ "Density_G2 = (Mav/22.4)*(273.0/(Templ2+273));# [kg/square m]\n",
+ "L2_by_G2 = 2.0;\n",
+ "abcissa = L2_by_G2*(Density_G2/(Density_L2-Density_G2))**(1/2);\n",
+ "# From Fig. 6.34:\n",
+ "# For a gas pressure drop of 400 N/square m/m\n",
+ "ordinate = 0.073;\n",
+ "# From Table 6.3:\n",
+ "Cf = 65.0;\n",
+ "J = 1.0;\n",
+ "def f21(G2_prime):\n",
+ " return ((G2_prime**2)*Cf*(viscocity_L2**0.1)*J/(Density_G2*(Density_L2-Density_G2)))-ordinate\n",
+ "# Tentative data:\n",
+ "G2_prime = fsolve(f21,2);# [kg/square m.s]\n",
+ "Area = G1/G2_prime;# [square m]\n",
+ "dia = math.sqrt(4*Area/math.pi);# [m]\n",
+ "\n",
+ "# Final data:\n",
+ "dia = 1.50;# [m]\n",
+ "Area = math.pi*dia**2.0/4;# [square m]\n",
+ "Gs_prime = G1/Area;# [kg/square m.s]\n",
+ "G2_prime = G2/Area;# [kg/square m.s]\n",
+ "L2_prime = L2_by_G2*G2_prime;# [kg/square m.s]\n",
+ "# From Eqn. 7.29:\n",
+ "def f22(L1_prime):\n",
+ " return (L2_prime-L1_prime)-(Gs_prime*(Y2_prime-Y1_prime))\n",
+ "L1_prime = fsolve(f22,2);\n",
+ "Cb = 1089;# [J/kg.K]\n",
+ "Ca = 1884;# [J/kg.K]\n",
+ "Cs1 = Cb+(Y1_prime*Ca);# [J/(kg dry air).K]\n",
+ "Cs2 = Cb+(Y2_prime*Ca);# [J/(kg dry air).K]\n",
+ "Tempo = Templ2;# [base temp.,K]\n",
+ "Lambda = 2.46*10**6;# [J/kg]\n",
+ "CaL = 4187;# [J/kg K]\n",
+ "# From Eqn. 7.31:\n",
+ "def f23(Templ1):\n",
+ " return ((L2_prime*CaL*(Templ2-Tempo))+(Gs_prime*Cs1*(Tempg1-Tempo)))-((L1_prime*CaL*(Templ1-Tempo))+(Gs_prime*(Cs2*(Tempg2-Tempo))+(Y2_prime*Lambda)))\n",
+ "Templ1 = fsolve(f23,2);\n",
+ "# At Templ1 = 49.2 OC\n",
+ "viscocity_L = 0.557*10**(-3);# [kg/m.s]\n",
+ "Density_L = 989.0;# [kg/square m]\n",
+ "K = 0.64;# [w/m.K]\n",
+ "Prl = CaL*viscocity_L/K;\n",
+ "\n",
+ "# For Entering Gas:\n",
+ "viscocity_G1 = 0.0288*10**(-3);# [kg*/m.s]\n",
+ "Dab = 0.8089*10**(-4);# [square m/s]\n",
+ "ScG = viscocity_G1/(Density_G1*Dab);\n",
+ "PrG = 0.74;\n",
+ "\n",
+ "# From Illustration 6.7:\n",
+ "a = 53.1;# [square m/square m]\n",
+ "Fga = 0.0736;# [kmol/square m]\n",
+ "Hga = 4440.0;# [W/square m.K]\n",
+ "Hla = 350500.0;# [W/square m.K]\n",
+ "# At the bottom, by several trial:\n",
+ "Tempi = 50.3;# [OC]\n",
+ "pai = 93.9/760;# [atm]\n",
+ "paG = 0;# [atm]\n",
+ "# By Eqn. 7.64:\n",
+ "dY_prime_by_dZ = -(Ma*Fga/Gs_prime)*math.log((1-(pai/Pt))/(1-(paG/Pt)));# [(kg H2O/kg dry gas)/m]\n",
+ "Hg_primea = -(Gs_prime*Ca*dY_prime_by_dZ)/(1-math.exp((Gs_prime*Ca*dY_prime_by_dZ)/(Hga)));# [W/square m.K]\n",
+ "dTempg_by_dZ = -(Hg_primea*(Tempg1-Tempi)/(Gs_prime*Cs1));# [OC/m]\n",
+ "Tempi = (Templ1)+((Gs_prime*(Cs1*dTempg_by_dZ)+((Ca*(Tempg1))-(CaL*(Templ1))+(((CaL-Ca)*(Tempo))+Lambda))*dY_prime_by_dZ)/((Gs_prime*CaL*dY_prime_by_dZ)-Hla));#[OC]\n",
+ "# Assume:\n",
+ "delta_Tempg = -30;# [OC]\n",
+ "delta_Z = delta_Tempg/(dTempg_by_dZ);# [m]\n",
+ "Tempg = Tempg1+delta_Tempg;# [OC]\n",
+ "Y_prime = Y1_prime+(dY_prime_by_dZ)*delta_Z;# [kg H2O/kg dry gas]\n",
+ "paG = Y_prime/(Y_prime+(Ma/Mb));# [atm]\n",
+ "Cs = Cb+Ca*(Y_prime);# [J/(kg dry air).K]\n",
+ "# Water balance, From Eqn. 7.29:\n",
+ "def f24(L_prime):\n",
+ " return (L2_prime-L_prime)-(Gs_prime*(Y_prime-Y1_prime))\n",
+ "L_prime = fsolve(f24,2);# [kg/square m.s]\n",
+ "\n",
+ "def f25(Templ):\n",
+ " return ((L_prime*CaL*(Templ-Tempo))+(Gs_prime*Cs1*(Tempg1-Tempo)))-((L1_prime*CaL*(Templ1-Tempo))+(Gs_prime*(Cs*(Tempg-Tempo))+(Y_prime*Lambda)))\n",
+ "Templ = fsolve(f25,2);\n",
+ "\n",
+ "# This process is repeated several times until gas temp falls to Tempg2\n",
+ "Z = 1.54;# [m] Z = sum of all delta_Z\n",
+ "# The value of Y2_prime was calculated to be 0.0222 which is sufficiently close to the assumed value.\n",
+ "print\"The diameter of tower is \",dia,\" m\\n\"\n",
+ "print\"The packed height is\",Z, \"m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.14 - Page: 256\n",
+ "\n",
+ "\n",
+ "The diameter of tower is "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1.5 m\n",
+ "\n",
+ "The packed height is 1.54 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.15: Page 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 7.15\n",
+ "# Page: 267\n",
+ "\n",
+ "print'Illustration 7.15 - Page: 267\\n\\n'\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#***Data***#\n",
+ "w = 0.75;# [m]\n",
+ "OD = 19.05/1000;# [m]\n",
+ "l = 3.75;# [m]\n",
+ "n = 20;\n",
+ "t = 1.65/1000;# [m]\n",
+ "Ws = 2.3;# [kg/s]\n",
+ "Wal = 10.0;# [kg/s]\n",
+ "Wt = 4.0;# [kg/s]\n",
+ "Density = 800;# [kg/cubic m]\n",
+ "viscocity = 0.005;# [kg/m.s]\n",
+ "K = 0.1436;# [W/m.K]\n",
+ "Ct = 2010.0;# [J/kg.K]\n",
+ "Cal = 4187.0;# [J/kg.K]\n",
+ "Y1_prime = 0.01;# [kg H2O/kg dry air]\n",
+ "Y2_prime = 0.06;# [kg H2O/kg dry air]\n",
+ "TempT = 95.0;# [OC]\n",
+ "#*****#\n",
+ "\n",
+ "Free_area = (w-(n*OD))*l;# [square m]\n",
+ "Gs_min = 2.3/Free_area;# [kg/square m.s]\n",
+ "M1 = 1.461;Yav_prime = (Y1_prime+Y2_prime)/2;# [kg H2O/kg dry air]\n",
+ "# From Eqn. 7.86:\n",
+ "ky = 0.0493*(Gs_min*(1+Yav_prime))**0.905;# [kg/square m.s.delta_Y_prime]\n",
+ "# From Fig. 7.5:\n",
+ "H1_prime = 56000.0;# [J/kg]\n",
+ "Ao = 400*math.pi*OD*l;# [square m]\n",
+ "# Cooling water is distributed over 40 tubes & since tubes are staggered\n",
+ "geta = Wal/(40.0*2*l);# [kg/m.s]\n",
+ "geta_by_OD = geta/OD;# [kg/square m.s]\n",
+ "# Assume:\n",
+ "TempL = 28.0;# [OC]\n",
+ "# From Eqn. 7.84:\n",
+ "hL_prime = (982+(15.58*TempL))*(geta_by_OD**(1/3));# [W/square m.K]\n",
+ "# From Eqn. 7.85:\n",
+ "hL_dprime = 11360;# [W/square m.K]\n",
+ "# From Fig. 7.5 (Pg 232)\n",
+ "m = 5000.0;# [J/kg.K]\n",
+ "Ky = 1.0/((1/ky)+(m/hL_dprime));\n",
+ "ID = (OD-(2.0*t));# [m]\n",
+ "Ai = math.pi*(ID**2)/4;# [square m]\n",
+ "Gt_prime = Wt/(n*Ai);# [kg/square m.s]\n",
+ "M2 = -0.7204;Re = ID*Gt_prime/viscocity;\n",
+ "Pr = Ct*viscocity/K;\n",
+ "# From a standard correlation:\n",
+ "hT = 364.0;# [W/square m.K]\n",
+ "Dav = (ID+OD)/2.0;# [m]\n",
+ "Zm = (OD-ID)/2;# [m]\n",
+ "Km = 112.5;# [W/m.K]\n",
+ "# From Eqn. 7.67:\n",
+ "Uo = 1/((OD/(ID*hT))+((OD/Dav)*(Zm/Km))+(1/hL_prime));# [W/square m.K]\n",
+ "# From Eqn. 7.75:\n",
+ "alpha1 = -(((Uo*Ao)/(Wt*Ct))+((Uo*Ao)/(Wal*Cal)));\n",
+ "alpha2 = m*Uo*Ao/(Wt*Ct);\n",
+ "# From Eqn. 7.76:\n",
+ "beeta1 = Ky*Ao/(Wal*Cal);\n",
+ "beeta2 = -((m*Ky*Ao/(Wal*Cal))-(Ky*Ao/Ws));\n",
+ "def f26(r):\n",
+ " return (r**2)+((alpha1+beeta2)*r)+((alpha1*beeta2)-(alpha2*beeta1))\n",
+ "r1 = fsolve(f26,10);\n",
+ "r2 = fsolve(f26,0);\n",
+ "beeta2 = 1.402;\n",
+ "# From Eqn. 7.83:\n",
+ "# N1-(M1*(r1+alpha1)/beeta1) = 0............................................(1)\n",
+ "# N2-(M2*(r2+alpha2)/beeta2) = 0............................................(2)\n",
+ "# From Eqn. 7.77:\n",
+ "# At the top:\n",
+ "x1 = 1.0;\n",
+ "# TempL2+(M1*exp(r1*x1))+(M2*exp(-(r2*x1))) = TempL.........................(3)\n",
+ "# From Eqn. 7.78:\n",
+ "# At the bottom:\n",
+ "x2 = 0.0;\n",
+ "# H1_star-N1-N2 = H1_prime..................................................(4)\n",
+ "# From Eqn. 7.80:\n",
+ "# ((M1/r1)*(exp(r1)-1))+((M2*r2)*(exp(r2)-1)) = (Tempt-TempL)...............(5)\n",
+ "# From Eqn. 7.81:\n",
+ "# ((N1/r1)*(exp(r1)-1))+((N2*r2)*(exp(r2)-1)) = (H1_star-H1_prime)..........(6)\n",
+ "# From Eqn. 7.91 & Eqn. 7.92:\n",
+ "# Uo*Ao*(TempT-TempL)=Ky*Ao*(H1_star-H1_prime)..............................(7)\n",
+ "\n",
+ "# Elimination of M's & N's by solving Eqn. (1) to (4) and (7) simultaneously:\n",
+ "# and from Fig. 7.5 (Pg 232):\n",
+ "TempL1=28.0;# [OC]\n",
+ "H1_star=(Uo*Ao*(TempT-TempL)/(Ky*Ao))+H1_prime;# [J/kmol]\n",
+ "\n",
+ "\n",
+ "N1 = 3594.0*M1\n",
+ "N2 =-43288.0*M2;\n",
+ "\n",
+ "# By Eqn. 5\n",
+ "delta_Temp = ((M1/r1)*(math.exp(r1)-1))+((M2*r2)*(math.exp(r2)-1));# [OC]\n",
+ "Q = Uo*delta_Temp*Ao;\n",
+ "TempT1 = TempT-(Q/(Wt*Ct));# [OC]\n",
+ "H2_prime = Q/(Ws)+H1_prime;# [J/kg]\n",
+ "print\"Temperature to which oil was cooled:\",int(TempT1),\" degree C\\n\"\n",
+ "# The solution in the textbook is wrong "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 7.15 - Page: 267\n",
+ "\n",
+ "\n",
+ "Temperature to which oil was cooled:"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 57 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter8.ipynb b/Mass_-_Transfer_Operations/Chapter8.ipynb
new file mode 100755
index 00000000..3199859d
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter8.ipynb
@@ -0,0 +1,1462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6de1fbbc284930cae33ad8c4ecbf1043ba348d822deaa7750919e4f3aba2cece"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Gas Absorption"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1: Page 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.1\n",
+ "# Page: 278\n",
+ "\n",
+ "print'Illustration 8.1 - Page: 278\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "P_star = 2*10**(5);# [N/square m]\n",
+ "X_methane = 0.6;\n",
+ "X_ethane = 0.2;\n",
+ "X_propane = 0.08;\n",
+ "X_nbutane = 0.06;\n",
+ "X_npentane = 0.06;\n",
+ "#******#\n",
+ "\n",
+ "MoleFraction = [0.6, 0.2 ,0.08, 0.06 ,0.06]\n",
+ "Heading = [\"Component\", \"Equilibrium Partial Pressure\", \"Vapour Pressue \" ,\"Mole Fraction\"];\n",
+ "Component = [\"Methane\", \"Ethane \" ,\"Propane\" ,\"n-Butane\", \"n-Pentane\"];\n",
+ "VapPressure = [0 ,42.05, 8.96, 2.36 ,0.66];# [N/square m]\n",
+ "Sum = 0;\n",
+ "\n",
+ "print Heading[0],\"\\t \\t \\t \\t\",Heading[1],\"\\t \\t \\t \\t\",Heading[2],\"\\t \\t \\t \\t\",Heading[3],\"\\t \\n\"\n",
+ "\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " print \"\\n \",Component[i],\" \\t \\t \\t \\t \\t\",(\"{:.2e}\".format(MoleFraction[i]*P_star)),\"\\t \\t \\t \\t \\t \\t \\t \\t \",(\"{:.2e}\".format(VapPressure[i]*10**(5))),\n",
+ " if VapPressure[i]==0:\n",
+ " Sum = Sum+0;\n",
+ " else:\n",
+ " \n",
+ " print \"\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t\",(\"{:.2e}\".format((MoleFraction[i]*P_star)/(VapPressure[i]*10**(5)))),\"\\t\",\n",
+ " Sum = Sum+(MoleFraction[i]*P_star)/(VapPressure[i]*10**(5))\n",
+ "\n",
+ "\n",
+ "\n",
+ "print\"\\n Mole Fraction Of solvent Oil is \",round(1-Sum,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.1 - Page: 278\n",
+ "\n",
+ "\n",
+ "Component \t \t \t \tEquilibrium Partial Pressure \t \t \t \tVapour Pressue \t \t \t \tMole Fraction \t \n",
+ "\n",
+ "\n",
+ " Methane \t \t \t \t \t1.20e+05 \t \t \t \t \t \t \t \t 0.00e+00 \n",
+ " Ethane \t \t \t \t \t4.00e+04 \t \t \t \t \t \t \t \t 4.20e+06 \t \t \t \t \t \t \t \t \t \t9.51e-03 \t\n",
+ " Propane \t \t \t \t \t1.60e+04 \t \t \t \t \t \t \t \t 8.96e+05 \t \t \t \t \t \t \t \t \t \t1.79e-02 \t\n",
+ " n-Butane \t \t \t \t \t1.20e+04 \t \t \t \t \t \t \t \t 2.36e+05 \t \t \t \t \t \t \t \t \t \t5.08e-02 \t\n",
+ " n-Pentane \t \t \t \t \t1.20e+04 \t \t \t \t \t \t \t \t 6.60e+04 \t \t \t \t \t \t \t \t \t \t1.82e-01 \t\n",
+ " Mole Fraction Of solvent Oil is 0.74\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2: Page 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.2\n",
+ "# Page: 286\n",
+ "\n",
+ "print'Illustration 8.2 - Page: 286\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "#****Data****#\n",
+ "# Absorber:\n",
+ "G = 0.250;# [cubic m/s]\n",
+ "Temp1 = 273+26.0;# [K]\n",
+ "Pt = 1.07*10**(5);# [N/square m]\n",
+ "y1 = 0.02;\n",
+ "x2 = 0.005;\n",
+ "#******#\n",
+ "\n",
+ "G1 = G*(273.0/Temp1)*(Pt/(1.0133*10**(5)))*(1/22.41);# [kmol/s]\n",
+ "Y1 = y1/(1-y1);# [kmol benzene/kmol dry gas]\n",
+ "Gs = G1*(1.0-y1);# [kmol dry gas/s]\n",
+ "# For 95% removal of benzene:\n",
+ "Y2 = Y1*0.05;\n",
+ "X2 = x2/(1.0-x2);# [kmol benzene/kmol oil]\n",
+ "# Vapour pressure of benzene:\n",
+ "\n",
+ "P_star = 13330.0;# [N/square m]\n",
+ "X_star = numpy.zeros(20);\n",
+ "Y_star = numpy.zeros(20);\n",
+ "j = -1;\n",
+ "for i in range(1,21,1):\n",
+ " j = j+1;\n",
+ " x = i/100.0;\n",
+ " X_star[j] = i/100.0;\n",
+ " def f27(y):\n",
+ " return (y/(1+y))-(P_star/Pt)*(x/(1+x))\n",
+ " Y_star[j] = fsolve(f27,0.0);\n",
+ "\n",
+ "# For min flow rate:\n",
+ "X1 = 0.176;# [kmolbenzene/kmol oil]\n",
+ "DataMinFlow = numpy.array([[X2, Y2],[X1, Y1]]);\n",
+ "\n",
+ "plt.plot(X_star,Y_star,label=\"Equlibrium Line\")\n",
+ "plt.plot(DataMinFlow[:,0],DataMinFlow[:,1],label=\"Min Flow Rate Line\");\n",
+ "minLs = (Gs*(Y1-Y2)/(X1-X2));# [kmol/s]\n",
+ "# For 1.5 times the minimum:\n",
+ "Ls = 1.5*minLs;# [kmol/s]\n",
+ "X1_prime = (Gs*1.0*(Y1-Y2)/Ls)+X2;# [kmol benzene/kmol oil]\n",
+ "DataOperLine = numpy.array([[X2 ,Y2],[X1_prime ,Y1]]);\n",
+ "plt.plot(DataOperLine[:,0],DataOperLine[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "xlabel(\"moles of benzene / mole wash oil\");\n",
+ "ylabel(\"moles benzene / mole dry gas\");\n",
+ "legend(loc='lower right');\n",
+ "plt.title(\"Absorption\")\n",
+ "plt.show()\n",
+ "print\"The Oil circulation rate is \",(\"{:.2e}\".format(Ls)),\" kmol/s\\n\"\n",
+ "\n",
+ "# Stripping\n",
+ "Temp2 = 122+273;# [K]\n",
+ "# Vapour pressure at 122 OC\n",
+ "P_star = 319.9;# [kN/square m]\n",
+ "Pt = 101.33;# [kN/square m]\n",
+ "X_star = numpy.zeros(7);\n",
+ "Y_star = numpy.zeros(7);\n",
+ "j = -1;\n",
+ "for i in range(0,7,1):\n",
+ " j = j+1;\n",
+ " x = i/10.0;\n",
+ " X_star[j] = i/10.0;\n",
+ " def f28(y):\n",
+ " return (y/(1.0+y))-(P_star/Pt)*(x/(1.0+x))\n",
+ " Y_star[j] = fsolve(f28,0.0);\n",
+ "\n",
+ "X1 = X2;# [kmol benzene/kmol oil]\n",
+ "X2 = X1_prime;# [kmol benzene/kmol oil]\n",
+ "Y1 = 0.0;# [kmol benzene/kmol steam]\n",
+ "# For min. steam rate:\n",
+ "Y2 = 0.45;\n",
+ "DataMinFlow =numpy.array([[X2 ,Y2],[X1 ,Y1]]);\n",
+ "minGs = Ls*(X2-X1)/(Y2-Y1);# [kmol steam/s]\n",
+ "slopeOperat = 1.5*(Y2-Y1)/(X2-X1);\n",
+ "def f29(x):\n",
+ " return slopeOperat*(x-X1)+Y1\n",
+ "x =numpy.arange(0,0.14,0.01)\n",
+ "\n",
+ "plt.plot(Y_star,X_star,label=\"Equlibrium Line\")\n",
+ "plt.plot(DataMinFlow[:,0],DataMinFlow[:,1],label=\"Min Flow Rate Line\")\n",
+ "plt.plot(x,f29(x),label=\"Operating Line\");\n",
+ "plt.grid('on');\n",
+ "xlabel(\"moles of benzene / mole wash oil\");\n",
+ "ylabel(\"moles benzene / mole dry gas\");\n",
+ "plt.legend(loc='lower left');\n",
+ "plt.title(\"Stripping\");\n",
+ "plt.show()\n",
+ "print\"The Steam circulation rate is \",(\"{:.2e}\".format(1.5*minGs)),\" kmol/s\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.2 - Page: 286\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEZCAYAAAC0HgObAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnWd4VFUTgN+hiQgYkKa0iBRBaRZEESkqAiqICoiAgH4i\nhiYCIigCgggivSMRQRBQUAHpLRRp0oXQIfTei5Qk8/04m5jElE2ym91Nzvs892HvveeeM3uy7OyZ\nmTMjqorFYrFYLK4inacFsFgsFkvqwioWi8VisbgUq1gsFovF4lKsYrFYLBaLS7GKxWKxWCwuxSoW\ni8VisbgUq1gslhiIyA8i0tvTcsSGiFwVEX9Py2GxxIdVLJY0jYgEicgFEckU5bI6Do/ikO29qNdU\nNZuqhnhIJIvFKaxisaRZHL/8KwBngDoxb7t57PRONPO4crNYkoJVLJa0zDvAEuBHoFmMe7lEZJGI\nXHGsHApF3BCRwSJyWkQui8h2EXnEcf1eEZkkImdEJEREPhMRcdxrLiJ/isggETkH9BSRZo5rw0Xk\nkojsEpHqjvZfAZWBEQ7z1zDH9XARKeLkeKtFZIBjRXZQRGq6dTYtFgdWsVjSMu8A04GfgZdEJLfj\nugCNgS+BXMBWYAqAiLyE+cIvpqr3AvWB847nhgPZgAeBKo7+W0QZrwJwAMgDfOUYpwKwH7gP6AH8\nKiJ+qvoZsApo7TB/tYtFfmfG2+3o+xsgMHHTY7EkDatYLGkSEXkWyA/MVtV9QDBGmUTwh6quVtXb\nwGfA0yKSH7iN+TIvKSLpVHWPqp5ymLYaAl1V9bqqHgYGAk2j9HlCVUeqariq3nRcO6OqQ1U1TFV/\nBvYAr0QVNQ75nRnvsKoGqkkIOAm4X0TyJH62LJbEYRWLJa3SDFikqlcd578Q3Rx2LOKFql4HLgAP\nqOpyYAQwEjgtImNFJBtmZZMROByljyMY5RXB0VjkOB7j/DBwf5TzuPwszox3Ksp7uOF4mTWO/iwW\nl2EViyXNISJ3Aw2A6iJyUkROAh2BMiJSBvNlXjBK+6xATuAEgKoOV9UngFJAcaAzcBa4A/hHGaoQ\nURQUsSuJ/DHOC0eME0f7CM45MZ7F4hGsYrGkRV4DQoGSQFnHURJYjfFTCFBbRCo5wpB7A2tV9biI\nPCEiT4lIRuAGcBMIU9VwjK/mKxHJKiKFgQ7A5ARkySMi7UQko4jUBx4G5jnunQYeiu0hVQ1L4ngW\ni9uxisWSFnkH+F5Vj6nqGcdxGmPiaoz5fzEF40w/D5QHmjiezQ6Mw5jGQjArhwGOe22B68BBjON9\nCjDBcS+uvTHrgWKYFU9v4A1Vvei4NxR40xHVNSSWZxM7ng1ftqQI4s5CX47wxiFAemC8qvaPpc0w\noBbm119zVd0iIgUxzsY8mP8M41Q1ItyyJ/A/zH9EMM7LBW57ExaLmxCR5sB7qlrZ07JYLK4kg7s6\ndkStjABewDgo/xKR2aq6K0qb2kBRVS0mIk8Bo4GKGNtxB1Xd6rBvbxKRRaq6G6NoBqnqIHfJbrFY\nLJak405TWAVgv6qGqOodYBpQN0abOsBEAFVdD/iJSF5VPaWqWx3XrwG7iO7kdOuuaIslhfCK1DEW\ni6txp2LJT/TwymP8NwImtjYFojZwpN0oj7FFR9BWRLaJSKCI+LlKYIslJVHViar6nKflsFhcjTsV\ni7O/xGKuPiKfc5jBZgDtHSsXMOayB4FywEnMpjCLxWKxeAlu87Fg/CoFo5wX5L8x9jHbFHBcwxHO\nOROYrKq/RzRQ1TMRr0VkPDAntsFFxJoYLBaLJZGoarJdDe5csWwEiomIv2MvQENgdow2szGhn4hI\nReCSqp52JNILBIJVNVqYpYhE3ZVcD/g7LgFU1R4uOHr06OFxGVLTYefTzqe3Hq7CbSsWVQ0VkTbA\nQky4caCq7hKRDxz3x6rqPBGpLSL7MfH4EQn0KmH2DWwXkS2OaxFhxf1FpBzGZHYI+MBd78FiCAkJ\n8bQIqQo7n67Fzqf34U5TGKo6H5gf49rYGOdtYnluNXGsplT1HVfKaLFYLBbXYnfeWxKkefPmnhYh\nVWHn07XY+fQ+3Lrz3pOIiKbW92axWCzuQERQL3feW1IJQUFBnhYhVWHn07XY+fQ+rGKxWCwWi0ux\npjCLxWKxANYUZrFYLBYvxSoWS4JYG7ZrsfPpWux8eh9WsVgsFovFpVgfi8VisVgA62OxWCwWi5di\nFYslQawN27XY+XQtdj69D6tYLBaLxeJSrI/FYrFYLID1sVgsFovFS7GKxZIg1obtWux8uhY7n96H\nVSwWi8VicSnWx2KxWCwWwPpYLBaLxeKlWMViSRBrw3Ytdj5di51P78MqFovFYrG4FOtjsVgsFgtg\nfSwWi8Vi8VKsYrEkiLVhuxY7n67Fzqf3YRWLxWKxWFyK9bFYLBaLBbA+FovFYrF4KVaxWBLE2rBd\ni51P12Ln0/uwisVisVgsLsX6WCwWi8UCWB+LxWKxWFxEcDA0aeK6/qxisSSItWG7FjufrsXOZ9LZ\nsgXefBOqVYNSpVzXr1UsFovFksZYtw5efRVefhmeeQYOHoRu3VzXv/WxWCwWSxpAFVauhD59YO9e\n6NIF3n0XMmf+t42rfCwZktuBxWKxWLwXVVi0yCiUU6ega1fjT8mUyX1jJmgKE5FnRSSr43VTERkk\nIoXdJ5LF27A2bNdi59O12PmMnfBwmDULKlSAjz+GDz+EXbvMKsWdSgWcW7GMBsqISFngY2A8MAmo\n4k7BLBaLGwgNhQzWUOEpwsLDSJ8uvXvHCIMZM+Crr8yf+vPP4bXXIF0KetSdGSrU4ax4DRipqiOB\nbM50LiI1RWS3iOwTkS5xtBnmuL9NRMo7rhUUkeUislNEdohIuyjtc4rIYhHZKyKLRMTPGVksSadq\n1aqeFiFV4bH5PH8ennsOUtkvfF/4fF6+eZl289vR9Lembhvjzh2YONFEdw0ZAv36waZN8PrrKatU\nwDnFclVEugFNgD9EJD2QMaGHHO1GADWBUkAjESkZo01toKiqFgNaYlZHAHeADqr6CFARaC0iDzvu\nfQosVtXiwFLHucViiY8jR+DZZ6FyZahijQ0phaoyeftkSo4syc3QmwyvNdzlY9y+DePHQ4kSRrGM\nHg1r1kDt2iDJdsMnDWcUS0PgFvCuqp4C8gPfOvFcBWC/qoao6h1gGlA3Rps6wEQAVV0P+IlIXlU9\npapbHdevAbsc40Z7xvHva07IYkkG1obtWlJ8PnfuNEqlZUvo399z3zZuwls/nzvP7KTaxGoMWjuI\n3xr+xrhXx3Fflvtc1v+tWzBmDBQrBr/8ApMmwbJlUL265//ECRpbVfUkMDDK+RH+/WKPj/zA0Sjn\nx4CnnGhTADgdcUFE/IHywHrHpbyqGnH/NJDXCVkslrTJmjVQrx4MGgSNG3tamjTB1VtX6bWiFxO3\nTaRnlZ60eqKVS/0qN2+aFUr//lCmDEyfDhUruqx7l5CgYhGRp4FhQEngLiA9cE1VsyfwqLObSGLq\n1sjnHNFoM4D2jpVL9IaqKiJxjtO8eXP8/f0B8PPzo1y5cpH22IhfOfY84fOqVat6lTy+fp5i87l2\nLVUHD4YffyTorrsgKMgr3r+rz73l86mqnM1zlo6LOvLI9UcY9/g46lWo57L+b96E3burMmAA+PsH\n8fnn8MEHyZM/4nVISAguRVXjPYBNQDFgC0aptAD6OfFcRWBBlPOuQJcYbcYAb0U5341ZkYDx4ywE\nPorxzG4gn+P1/cDuOMZXiyXN8v33qvnyqa5f72lJ0gS7z+7WFya9oKVHldaVIStd2vfVq6oDBpg/\n5+uvq27e7NLuo+H43kxQLyR0OBUroKr7gPSqGqaqEzAO+YTYCBQTEX8RyYTx1cyO0WY28A6AiFQE\nLqnqaRERIBAIVtUhsTzTzPG6GfC7M+/BknSi/rqxJB+3zqeqCQfq1ctEf1Wo4L6xvARPfj6v375O\nt6XdqPR9JWoXrc2mlpuoXLiyS/q+etX8KR96CP76y2xynDkTypd3SfduxZmA9usichewTUS+AU7x\nX/PVf1DVUBFpg1l1pAcCVXWXiHzguD9WVeeJSG0R2Q9cx6yGACphotC2i8gWx7WuqroA6Af8LCLv\nASFAA2ffrMWSqgkPh44dYckS+PNPyJ8/4WcsSUJVmbVnFh8t+IhnCj7D9g+380C2B1zS9+XLMHw4\nDBsGL74Iy5e7NkFkSpBgrjCH8/w0kAnoAGQHRqnqfncLlxxsrjBLmuL2bWjRAo4ehdmzwc9u73IX\nBy4coN2Cdhy8eJCRtUdS/cHqLun34kUYOhRGjDDJIbt1MyHEKUmK5QpT1RDHy3+Anskd0GKxuJhr\n1+CNN+Duu2HhQvOvxeX8c+cf+v/ZnxEbRtD5mc781vA3MqVPfm6UCxdM0N7o0WaH/Lp1ULSoCwT2\nIM7kCvtbRLY7/o14vVpEBouI64KyLV6L9bG4FpfO59mzZuNCoUImj0caVCop8fmct28ej45+lB1n\ndrD5g810ebZLspXKhQsm3UqxYnDmDGzcCIGBvq9UwDkfywIgFPgJ41t5C8iCMY/9ALzqLuEsFks8\nhIRAjRrQsCF8+aXnd8WlQg5fOsxHCz9ix5kdjKw9kppFnYlbip/z52HwYLNCeeMNk3bFsSsi1eCM\nj2WLqpaP7ZqI/K2qpd0qYRKxPhZLqmb7dpOz49NPoU0bT0uT6rgddpuBawYycO1A2j/Vns6VOpM5\nQ+aEH4yHmAqlWzfvUygpWY8lvYg8pSblCiJSgX9NaKHJFcBisSSSlSuhfn0TOtTABkW6miUHl9Bm\nXhuK3VeMDe9voEiOIsnq7/x540MZMyb1rlBi4sw+lveAQBEJEZEQzP6S90XkHuBrdwpn8Q6sj8W1\nJGs+f//dFCn/6SerVBy46vN5/MpxGs5oyPtz3mfAiwOY02hOspTK+fPw2WdQvLhxhW3aBOPGpX6l\nAk4oFlX9S1UfBcoB5VS1tKpuUNXrqvqz+0W0WCyA+VYKCIAFC+D55z0tTarhTtgdBq4ZSNkxZSme\nszg7A3byaomku46jKpRz59KWQonA1ry3WLwdVVNX9ocfTDhxaggb8hJWhKyg9bzW5M+en+G1hlP8\nvuJJ7iuqyevNN00JYF9TJrbmvcWSFggLg/btzU76P/+EfPk8LVGq4NS1U3Re3JkVISsY/NJgXi/5\nOpLEqLqYCiUt+FASIoXrill8EetjcS1Oz+etW9CoEQQHw4oVVqnEQWI+n6HhoQxfP5zSo0vzQNYH\nCG4dzBul3kiSUrl4Ebp3j+5DGTvWKhVwLm3+JuB74CdVveh+kSwWC1eumDoqOXPCvHmQOXmhrhZY\ne3QtAfMC8Mvsx4rmKyiVO2kJuC5fNqV/hw83O+U3boQHH3SxsD6OM/tYimGSQzbAZCyeACzydgeG\n9bFYfJbTp6FWLVO9afhwSO+6IlFpkbPXz/Lpkk9ZcGABA14cQKNHGyVphXLlikkMOXSoyeXVvbvJ\nPJyacJWPxZmosH2q2g0ojtl9/z1wRER6iUjO5ApgsViicOAAVKpkfgqPHGmVSjIICw9j7MaxPDLq\nEbLflZ1drXfxdum3E61Url0z6euLFoXdu42r64cfUp9ScSVO+VhEpCwwCBgAzATqA1eBZe4TzeIt\nWB+La4lzPrdsgcqVoXNn+OILm6LFSWKbz40nNvJ04NP8uP1HFjddzOCag8l+V0JFb6Nz4wZ8+61R\nINu2GTfX5MnGp2KJH2d9LJeB8ZgKkLcct9aJSCV3CmexpBmWLYO33jKhRa+/7mlpfJYL/1zgs6Wf\n8dvu3+j3Qj/eKfsO6SRxMUr//GP+DN98A88+C0uXwqOPukngVEq8PhYRSQd8qqp9U04k12B9LBaf\n4ZdfTL6vn3+GKlU8LY1PEq7hTNw6ka5Lu/JGyTfoU70POe7Okag+bt6E774zZq8KFaBnTyhb1j3y\neispso9FVcNF5A3A5xSLxeITjBoFffuaurNp7VvMRWw7tY2AeQGEhocy9+25PP7A44l6/tYt+P57\n82coV87USXs8cV1YYuDMGnGxiHQSkYIikjPicLtkFq/B+lhcS1BQkNlN/8UXJm511SqrVJLA5ZuX\n+WjBR1TtVZVmZZux9r21iVIqd+7A+PHGZzJnjqknP2eOVSquwJmd928BCrSOcd1GblssSSEsDD74\nwDjrV6+GPHk8LZFPoar89PdPdF7cmdrFavND3R+o+3hdp58PC4OpU42py9/fvH7mGbeJmyaxucIs\nlpTk5k2zm/76dfMTOVs2T0vkUwSfDab1vNZcvnmZUS+PomKBik4/Gx5uprxHD8iRw6Rfq1bNjcL6\nIG73sTh8K3F+M6vqr8kd3GJJU1y6BHXrQv78MH06ZEp+vfS0wrXb1/hyxZdM2DqBHlV68OETH5I+\nnXN7fFThjz/MhsYMGUxer5destHc7iQ+U9irGMWSB3iGf/esVAPWAFaxpBGCgoKoWrWqp8XwbU6c\ngJo1oVo1gurWpapVKk6hqswInsHHiz6mmn81dny4g7xZ80ZrE9fnUxWWLDF15W/cgN69jV63CsX9\nxKlYVLU5gIgsBkqp6knH+f3AxBSRzmJJDezda34if/ABdOlidtpZEmTv+b20mdeGk9dOMuX1KTxX\n+Dmnn1250qxQTp2CXr1MTbR0NuVuiuFMrrDdQMkIh4Vjb0uwqj6cAvIlGetjsXgFf/0FderAV1/B\nu+96Whqf4MadG/Rd1ZcxG8fQrXI32lZoS8b0GZ16dsMGo1D27TO+lMaNjfnL4hwpWY9lCbBQRH4C\nBGgILE7uwBZLqmfRImjSxMS01qnjaWm8HlVl9p7ZfLTwI57K/xTbWm0jf/b8Tj27dauJ3t682SiW\nFi2sC8uTOBUVJiKvA5UdpytV9Te3SuUC7IrFdVgfSxL46Sfo0AF+/dUklYyCnc//cvDiQdrNb8f+\nC/sZWXskzxdxrvTyrl3w4YdB7NlTlU8/NdZGW2Eg6aRoBUlHBJh11lsszjB0KAwcaPJ/PfKIp6Xx\nam6G3uSbP79h2PphdHqmE782/JVM6RNeahw6ZHwnc+easjVz58I996SAwBansPtYLBZXoQrdusHv\nv5va9IUKeVoir2b+vvm0nd+WMnnLMKTmEArdm/B8nTxp3FVTp0Lr1tCxI9x7bwoIm0awNe8tFm8i\nNBTef9/YZlatgly5PC2R13Lk8hE+WvAR209vZ3it4dQqVivBZy5cMNmGx40z/pPduyF37hQQ1pIk\nnK3HkkVESrhbGIt3YnOFJcCNG8Yec/q0ybGegFJJq/N5O+w2/Vb347Gxj1EuXzl2BOxIUKlcvWp2\nyBcvbmrMb99urIxRlUpanU9vJkHFIiJ1gC3AQsd5eRGZ7W7BLBaf4MIFePFFkyNk1ixr6I+DpQeX\nUmZ0GVYfWc2G9zfwRZUvyJwhbi/7zZsweLCp2rhrF6xbB2PHQoECKSi0Jck4s49lM1AdWK6q5R3X\ndqiqV5e+sT4Wi9s5dsxsfKxdG/r3tzvwYuH4leN0XNSRdcfWMbTmUOqUqBNvaeA7d0zZ3y+/hMce\nM7vly5RJOXnTOilW8x64o6qXYlwLT+7AFotPs2uXCSNu0QIGDLBKJQZ3wu4waO0gyo4py0M5HiK4\ndTB1H64bp1IJD4dp00wQ3bRppvbZrFlWqfgqzvxv2CkijYEMIlJMRIZjcoVZ0gjWhh2DtWtNWtw+\nfaBTp0Q/ntrnc9XhVTw27jEW7F/AmvfW8NXzX5ElY5ZY20YkiCxf3pSmGT3auKkqOp+0ONXPpy/i\nTFRYW+Az4BYwFeNr6e1OoSwWr2XuXLNKmTgRaiUczZSWOH3tNJ8s+YRlh5YxqMYg3iz1Zrxmr6Ag\nE5199aoJIX71VZsgMtWgqm47gJrAbmAf0CWONsMc97cB5aNc/x44Dfwdo31P4BgmoGALUDOOftVi\ncSkTJ6rmzau6bp2nJfEqQsNCdfj64Zrrm1zaaWEnvXLzSrztN21Sfekl1SJFVCdPVg0NTSFBLQni\n+N5M9nd/fPVY5sSvjzTe5Ecikh4YAbwAHAf+EpHZqrorSpvaQFFVLSYiTwGjgYhF8ARgODAp5tjA\nIFUdFN/4FotLGTAARo40P7Mf9ur8qynKumPrCJgbQPa7shPULIhH8sSdaWDfPpPHKyLz8Hvv2Xxe\nqZX4TGED47nnTLhVBWC/qoYAiMg0oC6wK0qbOjhS8KvqehHxE5F8qnpKVVeJiH8cfdsFcwqSpnNb\nhYdD585mJ/3q1S6Jd00N83nuxjm6LunK3H1zGfDiAN4u/XacZq8TJ0yU18yZ8PHHEBjo2qjs1DCf\nqY04nfeqGhRxAGuB88A54E9VdaagRH7gaJTzY45riW0TG21FZJuIBIqInxPtLZbEc/s2vPMOrF9v\ndtPbTRSEazjjNo2j1MhSZMmYhV2td9G4TONYlcrFi/Dpp1C6tEm7smcPdO1qt/qkBRJ03otIVcyq\n4rDjUiERaeaEcnF2E0nMT2RCz40GvnS87o1ZWb3n5FiWJJAmfw1euwZvvmlsNYsWQZbYo5qSgq/O\n56YTmwiYF0B6Sc+iposol69crO1u3IBhw8wO+Xr1YNs29+pkX53P1IwzUWGDgBqqugdARIoD04DH\nEnjuOFAwynlBzIokvjYFHNfiRFXPRLwWkfFAnL6g5s2b4+/vD4Cfnx/lypWL/BBGhCjac3v+n/Nz\n5wiqXBkefJCqv/4KGTJ4l3wpfH7xn4u0GNKClUdWMrDlQJqVa8bKFSsJ2h0UrX1oKOzfX5XevaF4\n8SAGDYKmTT0vvz2P+zzidUhICC4lIe8+sN2Za7G0yQAcAPyBTMBWTCXKqG1qA/McrysC62Lc9+e/\nUWH3R3ndAfgpjvGTHhphicby5cs9LULKERKiWqKEarduquHhbhnCV+YzLDxMJ2yZoHkH5NVWc1rp\n+RvnY28Xpjp1qmrRoqo1aqhu3JiycvrKfPoCuDsqLAqbHCuDyRizVWNgoxMKK1RE2mD2vaQHAlV1\nl4h84Lg/VlXniUhtEdkPXAdaRDwvIlOBKsB9InIU+EJVJwD9RaQcxmR2CPjAifdgsSTM33+b9Cyd\nO0O7dp6WxqNsP72dgLkB3Aq7xZxGc3gy/5P/aaNqYhq6djUWw7FjoXp1Dwhr8TqcyRWWGWgNRJTB\nWwWMUtVbbpYtWdhcYZZEsWqV8akMHQpvveVpaTzGlVtX6LG8B1P+nkLvar3532P/I3269P9pt349\ndOliEjp/9ZXxpdjNjb6Pq3KF2UJfFsusWaaWypQpJlNxGkRVmbpjKp0Xd6bmQzXp90I/ct/z34In\ne/bAZ58ZxdKzJzRrBhlsVadUQ4oloRSRV0Vki4hcFJGrjuNKcge2+A5RHX2pjvHjoVUrmDcvxZSK\nt81n8Nlgnp/0PN/8+Q2/1P+FwLqB/1EqJ0+aaXr2WahQAfbuNRscvUGpeNt8WpxLQjkEaAbcp6rZ\nHEd2N8tlsbgXVejb1xwrV8ITT3haohTn2u1rdFnchSo/VKHew/XY2HIjzxR8Jlqby5fh88/h0Uch\ne3azYvnkE7j7bg8JbfEJnPGxrACqq2pYyojkGqwpzBIn4eHw0UewYgUsWAD33+9piVIUVeXXXb/S\nYWEHqvhXYcCLA8iXNV+0NrdumUzDX39t4hl69YJCCZekt/g4KVnzvgswX0SWA7cd11Rtri6LL3Lr\nltlNf/q0Wance6+nJUpR9p3fR5v5bTh+5Tg/1vuRKv5Vot0PD4epU/9dpSxZYnbOWyyJwRlTWG/g\nGpAZyOo4srlTKIt3kWps2FevwssvQ2ioWal4SKl4Yj5v3LlB92XdeTrwaV4s8iJbPtgSTalEhA4/\n9hgMH26qOM6Z4xtKJdV8PlMRzqxY7lfVtBkqY0k9nDlj6qc8+aTJUpz+vyG0qZU5e+bQbkE7KuSv\nwNZWWymQPXp+lY0bTejwsWPG9GVDhy3JxRkfyzfAUlVdmDIiuQbrY7FEcvCgqU3fuDH06JFmvjUP\nXTxEuwXt2Ht+LyNrj+SFIi9Eu79/vwkdXr3aTMu773pHlJfFc6RkzfsAjI/lpg03tvgcW7dC5com\nX3vPnmlCqdwMvUnvFb154rsneLrA02xvtT2aUjlzBtq0MeV/y5QxocMtW1qlYnEdCSoWVc2qqulU\nNbMNN06b+KwNe/lyqFHD7Kb/8ENPSxOJO+dz4f6FlB5dms2nNrO55Wa6Ve7GXRnuAuD6dejTB0qV\nMpbA3bvNisXX09j77OczFWN/o1hSJzNmQEAATJ8O1ap5Whq3c/TyUTos7MCWU1sYXms4tYvVjrwX\nFmac8T16QKVKZtf8Qw95TlZL6semdLGkPsaMgd69Ye5cKBd7zZDUwu2w2wxeO5gBawbQpkIbulTq\nwt0Zze5FVZg/32xozJnTVFd+6ikPC2zxalJyH4vF4huomp18U6aYpJJFinhaIrey/NByWs9rzYM5\nHmT9/9bzUM5/lyGbNpkkzSdPQv/+8OqracK9ZPES4vSxiMgmERkqIjUdGY4taRSfsGGHhRk/ypw5\nJszJi5VKcufzxNUTvD3zbVrMakHf5/vyR6M/IpVKSIgJfnv1VWjY0FQCqFMndSsVn/h8pjHic95X\nBH4HqgErRGS+iLR3VJC0WLyHmzehQQMTP7t8OeTN62mJ3EJoeCiD1w6mzOgy+Pv5szNgJ689/Boi\nwoUL0KkTPP44FC9uIr0++MBGelk8g9M+FhHJD9QEXgKKYqo9BrhRtmRhfSxphMuXoW5do0wmTYK7\n7vK0RG5h9ZHVBMwNIG/WvIyoNYISuUoARqeOGGHMXW+8YRz0aSz1mcWFeLQei4ikByqq6p/JFcBd\nWMWSBjh50uymf+45GDIE0jmzLcu3OH3tNF2WdGHJwSUMemkQ9UvVR0Qic3p99hmULQv9+kHJkp6W\n1uLrpOQGyf+gqmHerFQsrsUrbdj79pnY2QYNzD4VH1IqzsxnWHgYIzeM5NHRj5IrSy52td5Fg0ca\nICIsW2Yy0wwdChMnmjplaVmpeOXnM41jLbAW32PTJuOd/vJL+N//PC2Ny1l/bD0B8wLImikry5st\n59E8jwJwFkfeAAAgAElEQVSwa5cJHd6506xQ6tdP3U55i+9i97FYfIvFi03Y03ffGd9KKuL8jfN0\nXdqVP/b+wTcvfkPj0o0REc6cMdlofvkFunaF1q1TrSvJ4mFSsjRxCRFZKiI7HedlROTz5A5ssSSa\nadOgSROYOTNVKZVwDWf85vGUGlWKzBkyE9w6mCZlmnDzptCvn0nBkimTScHy8cdWqVi8H2cM098B\n3fi3yNffQCO3SWTxOrzChj1smNnxt2SJSSrpw0Sdz80nN/NM4DMEbglkQeMFDKs1jOyZ/JgyBR5+\nGP76C9auNbEJ993nOZm9Ga/4fFqi4YyPJYuqrheHMVdVVUTuuFcsi8WBqilnOHOm2fhYuLCnJXIJ\nl25e4vNlnzMjeAZ9n+9L83LNSSfpWLkSOnY0vpPJk31eh1rSKM4olrMiUjTiRETeBE66TySLt1G1\nalXPDBwaCq1ame3jq1dDrlyekcOFqCpHchyh0chG1C1Rl+DWweS8Oyd795piW1u2mGJbDRv6VKCb\nR/HY59MSJ84oljbAOOBhETkBHAIau1Uqi+XGDWjUyNSoX7oUsmb1tETJ5u/TfxMwL4B/7vzD7Ldm\n82T+Jzl3Dtp1gZ9+MhFfU6dCZptAyeLjOFOP5YCqPg/kAkqoaiVVDXG7ZBavIcVt2Bcvmjoq2bPD\n7Nk+r1Su3LrCxws/5vlJz9O4dGP6F+1PmVxP8u23Zv9JePi/ocRWqSQe62PxPhJcsTgSUL4B+APp\nxThbVFW/dLNslrTI8eOmjPBLL5k87z5sD1JVpu+cTqdFnajxUA12BuwkV5bc9OgRxPv/g9KljYWv\nRAlPS2qxuBZnat4vBC4Bm4CwiOuqOtC9oiUPu4/FB9m9G2rWNBs1Onf2tDTJYtfZXbSZ34ZzN84x\nqvYoKhWqxLp10KED3L4N336bJuqPWXyMlKzHkl9VX0ruQBZLvKxfb/am9O8PzZp5Wpokc/32dXqv\n7E3glkC6P9edgCcDOHEsA2+/DStXwldfQdOmPr0Qs1gSxJmP9xoRKeN2SSxei9tt2PPnmxQtgYE+\nq1RUlV93/UqpUaU4duUY21tt591H2tHziwyULw/FisGePebtrVwZ5GlxUxXWx+J9OLNiqQy0EJFD\nwC3HNVVVq2wsyefHH43Za9YsePppT0uTJPad30fb+W05euUoE1+bSOWCVZk4Ebp3h+rVYds2KFDA\n01JaLCmHMz4W/9iue3tkmPWx+AADB5od9QsW+GR63n/u/MPXq79m1F+j6FKpCx9V/Ig/V2WkQwe4\n5x4YNAgqVPC0lBaL86SYj0VVQ0SkMlBUVSeISG7At+M/LZ4lPNzsBpw3z4RFFSzoaYkSzR97/6Dd\n/HY88cATbG21lZtnCtDgTdi61biJbOZhS1rGmSSUPYFPgK6OS5mAyW6UyeJluNSGfecOtGgBa9bA\nqlU+p1QOXTxE3Wl1+Xjhx4x5ZQzjXvyZwb0KULEiPPWU2Y/SoEH8SsX6BFyLnU/vwxnnfT2gLnAd\nQFWPA9ncKZQllXL9uon8On/epL/PmdPTEjnNrdBb9FnZhye+e4IKD1Rgy/t/s29BDUqUgGvXTI2U\nTz+1GxwtFnDOeX9LVcMjklCKyD3uFcnibbgkF9P58/Dyy8aXMm4cZMyY/D5TiEUHFtFmXhtK5S7F\nppab2LXWnycfg/z5jX4sk8gwFpvbyrXY+fQ+nFEsv4jIWMBPRFoC7wLjnelcRGoCQ4D0wHhV7R9L\nm2FALeAG0FxVtziufw+8DJxR1dJR2ucEpgOFgRCggapeckYei4c4csTspH/tNejb12ecD8euHKPD\nwg5sOrGJ4bWG82Doy7R6Cw4dMnEHL7/sM2/FYklRnMkVNgCY6TiKA91VdVhCz4lIemAEUBMoBTQS\nkZIx2tTGBAUUA1oCo6PcnuB4NiafAotVtTiw1HFucSPJsmHv3AnPPgsffGDS9vrAN/HtsNt88+c3\nlBtTjlK5SrGq0U4WDH+ZqlWhVi3YsQNeeSXpb8X6BFyLnU/vwxnnfXdgl6p2chyLHSuXhKgA7FfV\nEFW9A0zD+GqiUgeYCKCq6zGronyO81XAxVj6jXzG8e9rTshi8QR//mk2cvTrBx995GlpnCIoJIhy\nY8qxPGQ5q5uvI/fOXpR/9G7CwyE4GNq39ykrnsXiEZwxhbUF3hKRtqq6zHHtQ0wq/fjIDxyNcn4M\neMqJNvmBU/H0m1dVTztenwbyJiCHJZkkyYY9Zw68956pVlWjhstlcjUnr56k0+JOrD6ymiEvDeGe\no6/xRjXh/vtN1v7SpRPuw1msT8C12Pn0PpyJCjsO1Ab6icgniejb2d2JMQ0KTu9qdOyAtLsgvY3v\nv4eWLeGPP7xeqYSGhzJk3RBKjy5NoeyFmP1SMBO61CMgQOjb1zjnXalULJa0gDMrFlT1sIg8B4wR\nkRnA3U48dhyIukmhIGZFEl+bAo5r8XFaRPKp6ikRuR84E1fD5s2b4+/vD4Cfnx/lypWL/HUTYZe1\n5wmfR7Vhx9telarr1sG4cQR98w3cuEFVx3Pe9H4izv8+/TfjL44nV5Zc9Ck4iOXfFeL5pffwySfQ\npk0QmTKBiOvHd3o+7bmdTzefR7wOCQnBpahqvAcmmivqeWvgoBPPZQAOYOq4ZAK2AiVjtKkNzHO8\nrgisi3HfH/g7xrVvgC6O158C/eIYXy2uYfny5Qk3CgtTbd9etXRp1ePH3S5Tcjh97bQ2/7255h+Y\nX3/aNk3Hjg3XfPlU331X9eRJ94/v1HxanMbOp+twfG8mqBcSOhLMFZYcRKQW/4YbB6rq1yLygeNb\nf6yjTUTk2HWghapudlyfClQB7sOsSr5Qk1ImJ/AzUIh4wo1trrAU5PZtaN4cjh0zFR/9/DwtUayE\nhYcxbtM4egT1oGmZpryQoSfdOmUja1YYMgQef9zTElosnsVVucKcSUL5LNADs3qIMJ2pqhZJ7uDu\nxCqWFOLqVXjjDZN18aef4G5nrKQpz4bjGwiYG0CWjFnoVm4kgX1Ls2EDfPNNwilYLJa0gqsUizPO\n+0BgEPAs8KTjsDlb0xBR7bHROHPGhBP7+8Mvv3ilUjl/4zwfzPmAutPq8kG59jy7fwWNXyhN6dIm\nr1fDhimvVOKcT0uSsPPpfTijWC6p6nxVPa2q5yIOt0tm8W4OHTIbH2vVgrFjIYNTcSApRriGE7g5\nkEdGPULG9JnomWsXvV5vypHDwrZt8MUXkCWLp6W0WFInzpjC+mF8JL/yb6EvInwh3oo1hbmRbdtM\nPpOuXU19ei9jy8ktBMwLQFVpW2QUo7o/xq1bpvTLM894WjqLxXtJSR9LELHsFVHVaskd3J1YxeIm\nVqwwTokRI0zRES/i0s1LdF/WnZ+Df6brk33ZOaUFc2ano08fk6k/fXpPS2ixeDcp5mNR1aqqWi3m\nkdyBLb5DpA3711+NMpk61auUiqry47YfKTWyFDfv3KZ9+mC+evM9st6Tjt274X//8y6lYn0CrsXO\np/eRoGHckbvrKyC/qtYUkVLA06oa6HbpLN7D2LHQq5cpI/zYY56WJpIdZ3YQMDeA63eu063I74zu\nVoGQB8zCqlQpT0tnsaRNnDGFLcBkGv5MVcuISEZgi6o+mhICJhVrCnMRqtC7N0yaBAsXwkMPeVoi\nAK7eukrPoJ78uP1H2pXuxebvWrJ1S3oGDTK1xGz4sMWSeFIy3DiXqk4HwgDUZCoOTe7AFh8gLAza\ntIHffzeZir1Aqagq03dMp+TIkpy5doGmV3cwpMmHPFY+PTt3mpIvVqlYLJ7FGcVyTUTuizgRkYrA\nZfeJZPEKbt2Ct96C3bsJ6t0b8no+ifTuc7upMbkGfVf3pWXOaazoMIET+/KwZQt8/rlXbqOJFesT\ncC12Pr0PZxRLR2AOUERE1gA/Au3cKpXFs1y+bPanAMybZ3bVe5Drt6/TdUlXKk+ozGP3vILf9E38\nOuRZJk82cQQFCybch8ViSTmcyhUmIhmAEpgU93sc5jCvxvpYksipU0apPPOM2fjhwXAqVeX33b/z\n0cKPeDLvs2Rd8y3zf76fXr3g/fe9K9LLYkkNuMrH4kxU2N1AACaliwKrRGS0qt5M7uAWL2P/flOb\nvnlzY1vyoLPiwIUDtJ3flpBLIbyZ/gcmf1SNN980aVhy5vSYWBaLxQmcMYVNwtSsH4apYf8Ixhxm\nSU1s3gzPPQeffgrdu0dTKilpw/7nzj/0WN6Dp8Y/RZF0Vcn8w1Y2/FyNRYtg5MjUoVSsT8C12Pn0\nPpxJ8PSIqkbdEbBMRILdJZDFAyxdCo0amb0q9ep5TIy5e+fSbkE7HsnxGNX3beG3oQX55ht4+20b\n6WWx+BLO7GOZDIxU1bWO84pAa1VtmgLyJRnrY3GSn3+Gtm1NduLnnvOICCGXQvhowUcEnw3mhdvD\n+aXfSzRrZhJFZs/uEZEsljSJ230sIvJ3lDZ/ishRjI+lELAnuQNbvIARI6BfP1PYvUyZFB/+Vugt\nvl3zLYPWDaJevg5kCpzOnvvusrvmLRYfJ84Vi4j4x/OcquphdwjkKuyKJR5UzXJg+nSzm/7BB+Nt\nHhQUFFkr21UsPrCYNvPb4J/1Ye4OGsLmZQ8ycCC8+WbqN3u5Yz7TMnY+XYfbVyyqGpLczi1eSGgo\nfPghbN1qdtPnzp2iwx+7coyPF37MxhMbqfrPMGb3fIWWLWHKLo9vl7FYLC7CrTXvPYldscTCP/8Y\nT/iNGzBzJmTNmmJD3wm7w9D1Q+m3uh+1cgXw1+CuPFjgboYOheLFU0wMr0ZS+1LN4lXE9v2YYvtY\nLKmES5egTh0oUMCYwDJlSrGhV4SsIGBeALkzFeTJ7WtZ/Wcxhgwx4tjv0ujYH0OWlMDdP2IS3Mci\nIllFJL3jdQkRqePIcGzxFU6cgMqVTbr7yZMTrVSSuk/g1LVTNPm1CU1+a0q5C735+9P5VCxWjODg\ntJ2B2O67sKR2nNkguRK4S0TyAwuBpsAP7hTK4kL27IFKlaBJExg8GNI58ydPHqHhoQxbP4zSo0tz\n53wBMo3dxbW/XmfjX0KPHr6TLNJisSQNZ/axbFHV8iLSFrhbVb8RkW2qWjZlREwa1scCbNhglgZ9\n+5ravCnAmqNrCJgbwD3pcnLPipEcWFeSYcPg5ZdTZHifxmHf9rQYljRAXJ+1lKzHgog8DTQG5ibm\nOYsHWbgQXnkFvvsuRZTK2etneXfWu9T/uT6lLnzK7m5LeaZYSXbssErFYklrOKMgPgK6Ar+p6k4R\neQhY7l6xLMliyhR45x1ToOuVV5LdXXw+gbDwMMZsHMMjox7h6lk/sk7cxaXVb7FhvdCzpzV7xYb1\nsfxLSEgI6dKlIzw8HIDatWvz448mFeEPP/xA5cqVE9Vf1Oc9xddff83777/vURk8TYJRYaq6Algh\nIvc4zg9g67F4L4MHm2PZMnjkEbcO9dfxvwiYF0C68Mw8HryEDcvKMHRo2nbMp1b8/f05c+YM6aPU\nKmjRogXDhg1z6Tjz5s3z6PPOEhISQpEiRQgNDSVdDL9l165dU0QGb8aZtPnPAOOBbEBBESkHtFTV\nAHcLZ0kEqiYz8Zw5sHo1FCrksq5j7mq+8M8Fui3txqzds6gW3o9FA97h+feFGcF2k6Mz+OIucRHh\njz/+oHr16p4WJVYi/AV2L5B34IwpbAhQEzgHoKpbgSruFMqSSO7cMX6UlSth1SqXKpWohGs432/5\nnlIjS3H2dAbum7aLM4uasXqV0LevVSpplfDwcDp16kTu3Ll56KGHGDlyZDTzlr+/P0uXLo1s37Nn\nT5o2jT2HbdWqVQkMDIw8V1Xatm2Ln58fJUuWZNmyZdHafv7551SqVImsWbNy8ODBaM/HHCem2a1q\n1ap0796dSpUqkS1bNurUqcO5c+do3Lgx9957LxUqVODw4cRnroo6bsSYkyZNonDhwuTOnZu+fftG\ne3/9+vWjaNGi5MqVi4YNG3Lx4sVEj+ltOOWEV9UjMS6FukEWS1K4ccOkuj97FpYsgfvuc/kQQUFB\nbD21lcoTKjNi3Vie3DuPDT1H8MUnfixeDA8/7PIhUzW+6mOJK2Jt3LhxzJ07l61bt7Jx40ZmzJgR\nbeUgIv85j4uYbdevX0/RokU5f/48vXr14vXXX+fSpUuR9ydPnsz48eO5evUqhQsXjva8M6uX6dOn\nM3nyZI4fP86BAwd4+umnee+997hw4QIlS5akV69eCfYR23uIyZ9//snevXtZunQpX375JXv2mDy+\nw4YNY/bs2axcuZKTJ0+SI0cOWrdunegxvQ1nFMsREakEICKZRKQTsMu9Ylmc4sIFeOEFo0x+/90t\nS4bLNy8zbP0wXpr8Ev4Xm3O0x1pKZH+M4GBo0MD6UlISEdccSUFVee2118iRI0fkEbEy+Pnnn+nQ\noQP58+cnR44cdOvWLd6w6cSEVOfJk4f27duTPn16GjRoQIkSJfjjjz8c8yE0b96ckiVLki5dOjJk\niG7Zd2IrBS1atODBBx8ke/bs1KpVi+LFi1O9enXSp09P/fr12bJli9Oyxjdujx49uOuuuyhTpgxl\ny5Zl27ZtAIwZM4Y+ffrwwAMPkDFjRnr06MGMGTMiV1W+ijMpXT4EhgL5gePAIsD3Vaqvc/SoKSP8\nyivQv7/Lv+FVlSl/T+GTxZ9QIfcr3P9dMMcy3cfyZfDooy4dKs2RVB+LJ7e4iAizZs2K1cdy8uRJ\nChYsGHleyIWm2Pz580c7L1y4MCdPnow8jzpuUsibN2/k68yZM5MnT55o59euXUtW/xHky5cv8nWW\nLFki+z18+DD16tWLFgCQIUMGTp8+zf333++SsT2BM1FhZ4G3U0AWi7MEB0OtWtC+PXz8scu733lm\nJ63ntebijSs8FfIb6wc+Rf/+ZvO+XaFYYnL//fdz5Mi/1vKorwHuuecerl+/Hnl+6tQpp/s+fvx4\ntPPDhw9Tt27dyPP4zF1Zs2blxo0bTo/rKsd/YvopVKgQEyZM4Omnn3bJ2N5CnKYwERkez+HaGEOL\n86xdC9Wrw1dfuVypXL11lU6LOlF1YlUKX6vP6T5/8UD4U4wbF0TTplapuIrU5mNp0KABw4YN4/jx\n41y8eJF+/fpF+3ItV64c06ZNIzQ0lI0bNzJz5kynv3zPnDnDsGHDuHPnDr/88gu7d++mdu3aCcoU\nMe7KlSs5evQoly9f5uuvv473PSUl68HNmzejHaqaqH5atWpFt27dIpXx2bNnmT17dqLl8DbiW7Fs\nwlSMBIj5KbB5JzzB3Lkm+mvSJKhZ02Xdqiq/BP9Cx0UdeSLn8xRfvJMd5/MwZxY8+ST46PegxcW8\n+uqr0fax1KhRg5kzZ/L++++zd+9eypYty7333kvHjh1ZvvzfPdS9e/emUaNG5MiRgypVqtC4cWMu\nXLgQeT8uJSMiVKxYkX379pE7d27y5cvHzJkzyZEjR4LPArzwwgs0bNiQMmXKkDt3bj755JNI/0xs\nz8cMHEiofzCroqhtFy1alKhghfbt26Oq1KhRgxMnTpAnTx7eeust6tSpE++43o7T9VhEJBumcqRr\njI5uJtXlCps40exT+f13eOopl3W759we2s5vy4krpyh/ciQLxlbmiy8gIACifIdYUoDUkissvs2D\nFu/A3bnCnNkgWRqYBNznOD8LNFPVHckd3OIEqjBgAIwaBcuXuyy298adG/RZ2Ydxm8ZRL9dn7BvU\nhjtPZmTbNnjgAZcMYbFY0ijO/JwYB3ysqoVUtRDQ0XEtQUSkpojsFpF9ItIljjbDHPe3iUj5hJ4V\nkZ4ickxEtjgO19mEvI3wcOjYEX780ZQRdoFSUVV+3/07pUaWIvhECBU2bSfo6w6MHZ2RadNiVyq+\n6hPwVtLCfNod8GkbZ8KNs6hqpMFUVYMi8obFh6M42AjgBUyY8l8iMltVd0VpUxsoqqrFROQpYDRQ\nMYFnFRikqoOcf5s+yO3bxp9y5IjZUR/FrpxUDl48SNv5bTl44SC1bn/PLx2q06YN/DoRMmd2gcwW\nC2anfVhYmKfFsHgQZxTLIRHpDvyIceI3Bg468VwFYL+qhgCIyDSgLtE3V9YBJgKo6noR8RORfMCD\nCTybun8OXbsGb74Jd90FixYlO0XwzdCb9F/dn+EbhtOgQGeOBv7G/lyZWLPGuXrzvpjbypux82lJ\n7ThjCnsXyAP8CswEcjuuJUR+4GiU82OOa860eSCBZ9s6TGeBIuLnhCy+w9mzJpy4QAGYOTPZSmXe\nvnk8OupRNh37mxqHNvN7py50/SQTixY5p1QsFoslsTizQfIC0DYJfTsb3pLY1cdo4EvH697AQOC9\n2Bo2b94cf39/APz8/ChXrlzkr8UIO7dXnZ86RdUePaB+fYKefx5Wr05yf9P+mMaIDSM4nfs0dTOO\nYEK7zFSpcpDg4EL4+SWuv6g+Aa+aLx89j28+LZaUIuIzFxQUREhIiEv7dqY08ZNAN8CffxWRqmqZ\nBJ6rCPRU1ZqO865AuKr2j9JmDBCkqtMc57sxmZMfTOhZx3V/YI6qlo5lfN8KN96+HWrXhi5doG1S\n9LjhdthtBq4ZyMC1A3n7ofZsHdmZG1cyM2YMPPFE0voMCgqy5hsXEtd8ppZwY4v34+5wY2cUy16g\nE7ADiMyMFuH/iOe5DMAe4HngBLABaBSL876NqtZ2KKIhqloxvmdF5H5VPel4vgPwpKr+J+WMTymW\nVauMT2XYMGjYMMndLDm4hDbz2vCQXzGK7B3K1FFF+OILaN3a7knxBaxisaQUHt/HApxV1UTnGFDV\nUBFpAywE0gOBDsXwgeP+WFWdJyK1RWQ/cB1oEd+zjq77O4qNKXAI+CCxsnkVv/8OLVvCTz+ZTMVJ\n4PiV43y86GM2HN/Aew8MY9Jnr5K5NGzdalw1FktK8eGHH5I/f34+//xzl/abLl069u/fT5EiRVza\nr7fz9ddfc/DgQb777jtPi5I4InLbxHUANYBAoBHwhuN4PaHnPH2Yt+blfPed6v33q27cmKTHb4fe\n1m///Fbv63+ffjznc3272XUtVEh11izXirl8+XLXdpjGiWs+vfkzW7hwYc2UKZOeO3cu2vVy5cqp\niOjhw4eTPUaVKlU0c+bMmjVr1shj3bp1qqoqInrgwIFkjxEXzZo100yZMmnWrFk1R44cWr16dd2x\nY4dTzx46dEhFRMPCwpI0dnKfTwpxfdYc15P9/etMVFgzoCymiuQrjuNVVyu4NIUq9OkDX38NK1bA\n448nuouVh1dSfmx5Fh1YREe/NUx+rzd5c2Zh507w8TRDFi9ERChSpAhTp06NvPb333/zzz//uDQr\n8MiRI7l69Wrk8ZQL0xclNHaXLl24evUqJ06coFChQrRo0SJRfag1Y0bijGJ5AuPHaKaqLSIOdwuW\nagkLM875GTNMbfpixRL1+Klrp2j6W1Oa/NqElsV6cTNwATPHFWf+fBg0CKLkxHMZ1nHvWnx1Pps0\nacKkSZMizydOnMg777wT7Qu1efPmdO/eHTBBCgUKFGDQoEHkzZuXBx54gB9++CHZcly+fJl33nmH\nPHny4O/vz1dffRUpQ+HChdm8eTMAU6ZMIV26dOzaZazogYGB1KtXL8H+M2fOTP369dm5c2fktblz\n51K+fHnuvfdeChUqFK2y5HPPPQeYyNNs2bKxfv16AL7//ntKlSpFzpw5qVmz5n/KCTiDr5Y5dkax\nrAFKuVuQNMGtW/D227Bzp1mpJKKQT2h4KMPXD6f06NLkufsBmlwO5stGb/DG68L69fDYY26U22IB\nKlasyJUrV9i9ezdhYWFMnz6dJk2aRGsTM7Pv6dOnuXLlCidOnCAwMJDWrVtz+fLlOMdw5ld/27Zt\nuXr1KocOHWLFihVMmjSJCRMmANHDuVesWMFDDz3EihUrIs/jU+oRY1+/fp2pU6dGWy1lzZqVyZMn\nc/nyZebOncvo0aOZNWsWAKtWrQKMwotYZc2aNYuvv/6a3377jXPnzlG5cmUaNWqU4HuLic+WOU7I\nVgbsBu4Ae4G/Hcd2V9jh3Hngbfbqy5dVq1dXfeMN1X/+SdSja46s0XJjymnVH6rq93N2avHiqvXq\nqR496iZZY2B9LK4lqT4WeuKSIyn4+/vrkiVLtE+fPtq1a1edP3++1qhRQ0NDQ6P5WJo3b66ff/55\n5Pu8++67o/kO8uTJo+vXr491jCpVqmiWLFnUz89P/fz89PHHH4+8F+FjCQ0N1UyZMumuXbsi740d\nO1arVq2qqqqBgYFap04dVVUtWbKkBgYG6ltvvaWqxk+0ZcuWWMdu1qyZZs6cWf38/DRdunRapEgR\nPXv2bJzz0b59e+3QoYOqxu4jqVmzpgYGBkaeh4WFaZYsWfTIkSP/6Ss+H0uPHj20SZMm0dodP348\n8n6FChV0+vTpqqr68MMP69KlSyPvnThxQjNmzBhrv3F91nCRj8WZqLDUm+QxpTh92uxRqVABRoxw\nOvb33I1zdFnchQUHFvBFxQGsGdeIHsuE4cMhShE9SxpBe3jWhi8iNG3alMqVK3Po0KH/mMFi4777\n7ouWOj9qWd7Y+h8+fDjvvht3Yo9z585x584dChcuHHmtUKFCkZUmn3vuOTp16sSpU6cICwujfv36\n9OzZk8OHD3P58mXKlSsX59idO3fmyy+/5OjRo7z00ktMmjSJjx3F9NavX8+nn37Kzp07uX37Nrdu\n3aJBgwZxynn48GHat29Px44do10/fvx4sssp+0KZ4wRNYaoaEtuRArKlDg4cgEqVjEd91CinlEq4\nhjN241hKjSxFtruy87nfLr6o9zY5cwg7d6a8UvFVn4C34svzWahQIYoUKcL8+fN5/fXXY23jzszG\nuXLlImPGjNF2ih85coQCjrj6okWLkiVLFoYPH06VKlXIli0b+fLlY9y4cVSuXDneviOUZMGCBRk2\nbBi9e/fm6tWrALz99tu89tprHDt2jEuXLtGqVSvCw822vtjeb6FChRg3bhwXL16MPK5fv07FihUT\n9TDUrusAABaRSURBVH4TW+Z4wYIF0ca8ceNGiisVcM7HYkkqW7bAc89Bp07Qo4dTtX03nthIxfEV\n+XH7j3xXeTHb+g9m/MjszJsHgwdDtmwpILfFEg+BgYEsW7aMu2PJY6f/mqKTRELPpk+fngYNGvDZ\nZ59x7do1Dh8+zODBg6P5eqpUqcKIESOoUqUKYBR51HNnxn3hhRcoWrQoo0aNAuDatWvkyJGDTJky\nsWHDBn766afIL/3cuXOTLl06Dhw4EPl8q1at6Nu3L8HBwYDxv/zyyy/xvrfUVObYKhZ3sXw5vPSS\n2U3fqlWCzS/+c5GAuQG88tMrtCwfwIvHVvLeK2WpWxfWr09SRLLLsHmsXIuvz2eRIkV4LEq0SHzl\nfRO7eomvTHEEw4cP55577qFIkSJUrlyZxo0bRwsNrlKlCteuXYuM1op5Hlf/Mcfu3Lkzw4YN486d\nO4waNYovvviC7Nmz07t3bxpGyZCRJUsWPvvsMypVqkSOHDnYsGEDr732Gl26dOGtt97i3nvvpXTp\n0ixcuDDe9541a1ayZMlClixZuOeee1i2bFmiyxzXqVOHGjVqkD17dp5++mk2bNgQ75juwunSxL6G\nR1O6zJhhavv+/DMkYPYI13Ambp1I16VdeaPkG9TJ1oeOATnw9zeWs0KFUkTieLG5wlyLzRVm8TQe\nzxXmq3hMsYweDV99BXPnQtmy8Tbddmobree15k74Hb6pMopfhj7OzJkwZAg0aOCU5cySirCKxZJS\neEOuMIszqELPnibn18qVEE9Oo8s3L9MjqAdTd0yld7Xe5D76P5pUT0eNGmaLS86cKSe2xWKxuBrr\nY3EFYWHGjzJ3rqlNH4dSUVWmbJ9CyZEluXb7Gkvf2Mmir1vySed0TJoEgYHeqVR83Sfgbdj5tKR2\n7Ioludy8aXbTX71qHPZxhG0Fnw2m9bzWXL55mRn1f2XHgopUe88kNv7xx2QXirRYLBavwfpYksOl\nS2ZTyQMPwMSJkCnTf5pcu32NL1d8yYStE+hRpQfVsn7Ih63Sc+sWfPcdlIm3XJolLWF9LJaUwt0+\nFmsKSyonT0KVKsZBP2XKf5SKqjIjeAalRpbi1LVTbP7fDi4ubEOV59Lz5puwZo1VKhaLJXViTWFJ\nYe9eqFkT3n8fPv30P+Fbe8/vpe38tpy4eoLJr08m44nnqFUZ/P1h82bvCCFODDbc2LXY+bSkduyK\nJbH89ZdZqXz2GXTtGk2p3Lhzg8+Xfc4zgc/w0kMvEfTWZqZ/8xyvvw7du8OcOb6nVCwWiyWxWMWS\nGBYvhpdfhrFj4b33ot2avWc2j4x6hP0X9rOt1TaKnv2YcmUycuuWCSFu2NB396XYX9euxc6ne1i1\nahUPP/xwio555MgRsmXLZn1jMXFFimRvPHB12vyfflLNk0d11apolw9cOKCv/PSKlhheQpccWKKn\nT6s2bKhatKjqsmWuFcGSunH5Z9bFTJgwQR999FHNkiWL5suXTz/88EO9dOmSx+Rxd7niqPy/vXMP\nj6q6FvhvERACTUJ4BgyviHpTpbGAvFvCVZFSQUWgsRgRtLT0FuwVW7jVKhSLykcsXqkopSpX8AoI\nKHp5FrFFXvKmiIhUg2JAjY9LkVcSVv84e4bJOEkmZCbJJOv3fefLnn32c83OWbP3Pnutvn376ty5\ncyulrsqgpLFGJbomNh5/HH79a1i3Dvr0AeB04Wl+99ff0e1P3ejdpjd7fraXvI3X0KmTt9y1Zw/0\n61fF7Y4Qdu4issSiPHNycpg0aRI5OTkcP36cLVu2cPjwYa677joKCgoiXl9RUVFY6bSSZgqhbIkZ\nJWOKpTRUvX2U2bM9N8JXXgnAqkOr6DS7E7uP7WbnT3fy47aTuGnQRcyY4Z2RnD4dGjas4rYbRoQ4\nfvw4kydPZtasWfTv35+4uDjatWvHokWLyM3NZf78+YDnRnfo0KFkZWWRmJhIly5d2Lt3r7+cvLw8\nbrnlFlq0aEFaWhpPPPGE/54vb3Z2NklJScybN49t27bRs2dPkpOTad26NePGjfMrMZ9ByYyMDBIS\nEli8eDFvvPFGMV8n7du3Jycnh4yMDBo3bkxWVhZnzpzx358+fTqtW7cmNTWVuXPnUqdOHd5///1y\nycbnLthnQj8zM5MHHniAPn36kJiYyPXXX8/nn3/uT79lyxZ69epFcnIyV111ld+7ZY0jEtOe6nhR\n0WWFggLVUaNUu3VTdZ7kDn91WIcsHKKXPH6Jrji4QouKVGfNUm3aVPWhh1TPnq1YlUbtpsJjNkqs\nXLlS69atG9IT4ciRI/XWW29VVc/bYb169XTJkiVaWFioM2bM0A4dOmhhYaEWFRVp586dderUqVpQ\nUKDvv/++pqWl6erVq4vlfeWVV1RV9dSpU7pjxw7dunWrFhUVaW5urqanp+vMmTP9dQcvha1fv15T\nU1P9n9u3b6/du3fXo0eP6hdffKHp6en61FNP+fuUkpKi+/fv15MnT+qIESO0Tp06JS6tZWZmFvMI\n6SPY+2Pfvn21Y8eO+t577+mpU6c0MzNTJ02apKqqR44c0aZNm+rKlStVVXXt2rXatGnTUj1VRouS\nxhq2FBZFTp6Em2/2zqq8/jpnkxN55M1H6Px0ZzJaZrDv5/voUPQDvv99zzTYhg3eS2L16lV1w40a\njUhkrnKSn59Ps2bNinkm9JGSkkJ+fr7/c9euXRkyZAhxcXHcc889nD59ms2bN7Nt2zby8/O5//77\nqVu3Lh06dOCuu+7ixRdf9Oft1asXgwcPBqBBgwZ07tyZbt26UadOHdq1a8eYMWPK/Qt//PjxpKSk\nkJyczKBBg9i9ezcAixYtYvTo0aSnpxMfH8+UKVMisqwmIowaNYqOHTvSoEEDhg8f7q9z/vz5DBw4\nkAEDPKe81157LV27dmXFihUVrre6YYolmC++gP79oXFjWL6c1z/dSsZTGbz54Zu89ZO3+K9eD/DY\n9Ab06QNZWZ5SSU+v6kZHl1jcE6jOXLA8VSNzlZNmzZqRn5/vX+4J5OjRozRv3tz/2efJEbyHbGpq\nKnl5eXz44Yfk5eWRnJzsvx5++GE+/fTTkHkBDh48yA033ECrVq1ISkrivvvuK7asFA6Bbnzj4+P5\n+uuv/e0OXDYLrrsiBNcZ6Dp48eLFxWSwceNGjh07FrG6qwt2QDKQI0e8g48DBpD3218yYfntbP5o\nM48PeJzBlw9m505hyJ3QqhXs2AEBbrcNo8bSs2dP6tevz5IlSxg2bJg//sSJE6xatYqHH37YH/fR\nRx/5w+fOnePIkSNcfPHFxMXF0aFDBw4ePBiyjlCb42PHjqVLly4sXLiQRo0aMXPmTJYsWRKRPrVq\n1apYWwPD0aJt27ZkZ2czZ86cqNdV1diMxcc770Dv3hTdns1jt7TmO09fRVrjNPb/x376t7uRSZOE\ngQNhwgRYsaJ2KRU7dxFZYk2eSUlJPPjgg4wbN47Vq1dTUFBAbm4uw4cPp02bNmRnZ/vT7tixg2XL\nllFYWMjMmTNp0KABPXr04OqrryYhIYHp06dz6tQpioqK2LdvH9u3bwdCv9114sQJEhISaNiwIQcO\nHGD27NnF7rds2bKYO+Bw8NUzfPhwnn32WQ4cOMDJkyeZOnVqmXkLCgqKuQ4uLCwstY5gbrvtNl59\n9VXWrFlDUVERp0+f5o033uDjjz8uVx9iAVMsAFu2QL9+vHv3bXw3YQGrDq1i052b+P01v2fbpoZk\nZMDhw7B3L2Rnx+5BR8O4UH71q18xbdo07r33XpKSkujRowft2rVj3bp11HObiyLCjTfeyMKFC2nS\npAkLFixg6dKlxMXFERcXx2uvvcbu3btJS0ujefPmjBkzhuPHj/vzBs9YZsyYwQsvvEBiYiJjxowh\nKyurWJrJkyczcuRIkpOTeemll8p8JTjw/oABAxg/fjz9+vXjsssuo2fPngDUr1+/xPxjx471uw5u\n2LAho0ePDllnSa6aU1NTeeWVV5g2bRotWrSgbdu25OTkhFxijHXMuvGKFZwbeTt/+FkGM5sc5LH+\njzH020M5flyYOBFeew3++EfPiHFtxWxbRZaa6pp4ypQpHDp0iOeff76qm1Ju3nnnHTp16sTZs2dD\nvqRQ0zDrxlHk3HPPcTI7i4E/KuTY9zqz/+f7GXbFMA4dEq68Es6dg337ardSMYxwiTWluGzZMs6c\nOcOXX37JxIkTGTx4cK1QKpVBrd28P3z/OC6a/TQTJ2SQc9dzXNHiCv+9Dh1g0SJws+Naj81WIktN\nlWesnU6fM2cOo0aNIi4ujszMTJ588smqblKNoVYuhW2YMIwWC17m7edzuPnacTH1z2DUXGJ9KcyI\nHaK9FFYrFcuxf+yhYXwSia3bV26jYhTbY4ksNXWPxYgdoq1YauVSWMolGVXdBMMwjBpLrZyxGEZ1\nxGYsRmVhMxbDqEXYfp9RE4jqu3UiMkBEDojIeyIysYQ0/+3u7xGR75aVV0SaiMhaETkoImtEpHE0\n+2CYrbBIU5I8I2FVtjZe69evr/I2xOIVTaKmWEQkDpgFDAC+DdwqIulBaQYCHVX1UmAMMDuMvJOA\ntap6GbDOfTaiiM86qxEZTJ6RxeRZ/YjmjKUbcEhVc1W1AHgRCD5qOBiYB6CqW4HGIpJSRl5/Hvf3\npij2wQC++uqrqm5CjcLkGVlMntWPaCqWi4FAk6FHXFw4aVqXkrelqn7iwp8ALSPVYMMwDKPiRFOx\nhLuIF85upYQqT72FQnuNJsrk5uZWdRNqFCbPyGLyrH5E862wj4E2AZ/b4M08SkuT6tLUCxHvsy39\niYikqOoxEWkFfEoJ2Bs2kWPevHllJzLCxuQZWUye1YtoKpbtwKUi0h7IA34E3BqUZjnwC+BFEekB\nfKWqn4jI56XkXQ6MBB51f18OVblG4F1swzAMo/xETbGoaqGI/AJYDcQBf1bVd0Tkp+7+06q6QkQG\nisgh4GtgVGl5XdGPAItE5E4gFxgerT4YhmEY5afGnrw3DMMwqoaYcz4QjUOXtZkKyjNXRPaKyC4R\neavyWl09KUuWIvJvIrJZRE6LyITy5K2NVFCeNjaDCEOeI9z/+F4R2Sgi3wk37zeo6tOf5TwpGgcc\nAtrjbfDvBtKD0gwEVrhwd2BLuHlr21URebrPHwBNqrof1eEKU5bNga7AQ8CE8uStbVdF5Onu2dgs\nvzx7AkkuPKAiz85Ym7FE69BlbeVC5Rl4dshekvAoU5aq+pmqbgcKypu3FlIRefqwsXmecOS5WVX/\n333civc2blh5g4k1xRKtQ5e1lYrIE7wzRH8Rke0i8pOotTI2CEeW0chbU6moTGxsFqe88rwTWHGB\neWPOunEkD10aFZdnH1XNE5HmwFoROaCqGyLUtlijIm/B2Bs036SiMumtqkdtbPoJW54i0g8YDfQu\nb14fsTZjqcihy3Dy1jYuVJ4fA6hqnvv7GbAMb8pcW6nI+LKx+U0qJBNVPer+2tj0CEuebsP+T8Bg\nVf2yPHkDiTXF4j90KSIX4R2cXB6UZjlwO0Dgocsw89Y2LlieItJQRBJcfCOgP/D3ymt6taM84yt4\nBmhj85tcsDxtbIakTHmKSFtgKXCbqh4qT95gYmopTKN36LJWUhF5AinAUmc2py6wQFXXVH4vqgfh\nyNK9RLINSATOicjdwLdV9YSNzeJURJ5AC2xsFiMceQIPAMnAbCe7AlXtdiHPTjsgaRiGYUSUWFsK\nMwzDMKo5plgMwzCMiGKKxTAMw4goplgMwzCMiGKKxTAMw4goplgMwzCMiGKKxagUROQOEXkiiuWP\nF5H9IvJ8ZdYbTUSkh4jMiXCZk4NNzFcmInKiAnkH+Uy2V3U/jNKJqQOSRkwT7QNTY4FrfGZmKrHe\naPIDYGWEy6xqeVxw/ar6KvBqRcsxoo/NWIywcOYcDojIsyLyrogsEJH+ziHQQRG52qVrIiIvO4dB\nm0WkU4iymovISyLylrt6ufi+zjHTLhHZKSLfCpH3HhH5u7vudnFPAWnAKhH5ZYjmtxGR9a6dDwSU\ndZuIbHX1PSUidVz8CRF5SER2uz60cPG7Aq6TIvI9EWkkIs+4cnaKyGCX9g4RWSoiK129jwbU219E\nNonIDhFZ5MyOhOLfgb8E9T9TRP7qZPwPEXlERLKdHPeKSFrA9/W6+x7+IiJtggsXkUtc+7aLyN9E\n5PIQafaKSKJ4fC4i2S7+f0TkWhFp5/LucFdPd7+Vi9/lvqveAWV+Q7ZBdYYcQ7E8+6x1VLUDGrti\n48Jz8lMAXIFnm2k7nmkH8Hy2LHPhJ4DfunA/YJcL3wE84cIv4FmfBWgL7Hfh5UBPF24IxAW1oQuw\nF4gHGgH7gAx3L6RjJ1dvHp6pigZ4NqO6AOmuvjiX7kkg24XPAT904UeB+4LKHAT8FW/GPw0Y4eIb\nA++6tt8B/ANIAOoDuXimxpu5vPEuz0SfvILqaAa8HiI+E/gSaAlchGcgcLK7Nx74gwu/GtCfUQHf\nz4PAPS68Dujowt2BdSHqm43n7O1K4C3gaRd/0H0P8UB9F3cpsM2FJwC/ceE6wLfCkW05xtCDBDn3\nsqv6XLYUZpSHD1T1bQAReZvzv6b34Ske8ExtDwFQ1fUi0lScQcAArgXSRfy2AxPcr/aNwB9EZAGw\nVFU/DsrXx8Wfcm1YCnwf2FNGu9eos9Tq8vQBivAUzHbXjnjgmEt/VlX/z4V3ANf5ChKRS4HpQKZ6\nNpT6A4NE5F6XpD6eslS8B/U/Xb79TkbJePasNrl6LwI2hWhzfzzbTKHYpp5hVcSz4eZLtw/vQQzQ\nA7jJhee7Nvtx8u4FLA74Hi4KUdcGPBkfxlMyY0SkNfClqp4SkSRglohk4Mn0UpfvLeAZEakHvKyq\nvu+oRNkGEM4YMqoxpliM8nAmIHwOOBsQDhxLwdZ7g9fDBeiuqmeD4h8VkdeAHwIbReR6VX03qJzA\nsiVE2cGEqtsXN09VfxMiT6BHQn/f3NLcQuAu34PdMURV3ytWiUh3isuriPMyWquqPy6j3QOAnBLu\nBX8PZwLCpX0PgdTBUw7fLaMdfwN+gTfjug+4GRjq4gH+EziqqtkiEgecBlDVDSLyPeAG4DkReUxV\nn6cE2YagrDFkVGNsj8WINBuAEeDtBwCfqWrwm0Br8JZtcOmucn8vUdW3VXU6ntXa4DX/DcBNIhLv\nfnHf5OJKQ4DrRCRZROLxXKq+ibcMNFQ8R1C+df22ZZT1DPCsqm4MiFsd1BffgzrUQ12BLUBvEbnE\npW/kZkHnG+xNIb4T8Cv/QtgEZLnwCM4rAsEzPvtP4AMRGeqrUzxfHMUbrHoEb1muo6p+gCe7ewPK\nS+T8TO92POu3PhPsn6nqXODPQFkKLJBwxpA586vGmGIxykPwr0YNEZ4MdBGRPXj7DyMD7vvSjAe6\nus3Zt4ExLv5ut9G7B282VOyNKFXdBTyHt8yyBfhTwMO3pF+06tIvwVsye0lVd6pn9vt+YI2rbw2e\nK4BQ/VL3oLwFGC3nN/A7A1OBem6Tex8wJUR/A/uQj7dX8L+u3k18U4F2AXaV0p/S+uq7Nw4Y5eoY\nAdwdIs0I4E4R2Y23jDa4hHK34O2pgKdYWru/4O1NjXRlXA74FEA/YLeI7ASGAY8H1F9WXyZT9hgq\nTQ5GFWNm8w2jmiEi9wHvqeqiqm6LYVwIplgMwzCMiGJLYYZhGEZEMcViGIZhRBRTLIZhGEZEMcVi\nGIZhRBRTLIZhGEZEMcViGIZhRBRTLIZhGEZE+Rflz/wq8/SiYgAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7720e48>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Oil circulation rate is 1.79e-03 kmol/s\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nmwF9rNAwfrPPmgmalFVPqeomVR2rqke5y5XpVGAYU5MF/VmBIMcf5NgT4aX31DHAjUBu2PGqqkek\nMC5jjDFpyEv11HLgGuBznHYFAEIP5aUDq54yfrPPmgmaVPae+lFVX1bVb1W1MLTEH6KpiksvvZTb\nb7896efNyMjg22+/Tfp5051NHWtMYrwUGreKyBQRGSYiZ7vLWSmP7ACXm5tL3bp12bix/NiPRx55\nJBkZGWVjJz3yyCPcfPPNVcojLy+P+vXrk5WVVbYsXLgw4di9GD16NHXr1iUrK4umTZty0kkn8cUX\nX3h6beTkTvGq6PU33HAD//rXv6p03nQU9Hr1IMcf5NgT4aXQGAX0wBlY8Lfucnoqg6oJRITOnTvz\nzDPPlG377LPP2L17d1JHh33ooYfYvn172dK7d++knNtL3tdddx3bt29n3bp1dOzYkTFjxsR1Dqvu\nMSb9eCk0fgUco6qjVHVMaEl1YDXBiBEjePLJJ8vSU6dO5fe//325L8vRo0dzyy23AM4vm/bt2/P3\nv/+dVq1a0bZtW5544omE49i6dSu///3vadmyJbm5ufztb38ri6FTp0589NFHAPznP/8hIyODpUud\nMSWnTJnC735X+eM69erV49xzzy13p/Hqq69y5JFH0qRJEzp27FhuRr/jjz8ecIaDCb87+ve//81h\nhx1G06ZNyc/P32/IeC8OtKljg/xEMgQ7/iDHnggvhcZ7OEOXmyTr06cP27ZtY9myZZSWljJ9+nRG\njBhR7pjIEV6///57tm3bxrp165gyZQqXXXYZW7dujZmHl1/rY8eOZfv27axcuZL58+fz5JNP8vjj\njwPOf4zQbfj8+fPp0qUL8+fPL0tX9B8nlPfOnTt55plnyt3lNGrUiGnTprF161ZeffVVHnnkEWbO\nnAnAO++8AziFWejuaObMmdx555289NJLFBUV0b9/f4YNG1bpe4tkU8cak6DQfAWxFmAZUAwsBz5z\nl08re111Ls7b2F+s7WX7x5OUpSpyc3P1f//7n95+++16ww036OzZs3XgwIFaUlKiIqKrVq1SVdXR\no0frzTffrKqq8+bN0/r162tpaWnZeVq2bKkLFy6MmseAAQO0QYMGmp2drdnZ2Xr00UeX7RMR/eab\nb7SkpETr1KmjS5cuLds3adIkzcvLU1XVKVOm6KBBg1RVtXv37jplyhQdOnSoqqp26tRJlyxZEjXv\n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\n1oyJhSrO3Fez7zREkrPEqaioiObNm5ebES6kdevWFBUVlaV/9atfcdZZZ5GZmclVV13FTz/9xIIF\nC/jwww8pKiri5ptvplatWhx00EH84Q9/4Nlnny177bHHHsugQYMAqFevHkcddRS9evUiIyODTp06\ncdFFF8X9y/yKK66gdevW5OTkcPrpp/Pxxx8D8Nxzz3H++efTvXt36tevz6233pqUqi4RYcyYMXTt\n2pV69eoxePDgsjynTZvGaaedRn6+M7nkySefzK9+9Stee+21hPM1xkRXswsN1eQscWrevDlFRUVl\nVTDh1q9fT4sWLcrSoRn0wPkCbd++PevWreO7775j3bp15OTklC133nknP/zwQ9TXAixfvpzf/va3\ntGnThiZNmnDTTTeVq+rxInxq1Pr167Nz586yuMOrsiLzTkRknuHTsT7//PPlrsG7777Lhg0bkpZ3\nugt6vXqQ4w9y7Imo2YWGT/r27UvdunWZMWNGue07duzg9ddf56STTirbtnr1vgfi9+7dy5o1a2jX\nrh0dOnTgoIMOKjcV6bZt25g1axYQvaH50ksv5bDDDmPFihVs3bqVv/3tb1ELrqpo06ZNuVjD11Ol\nY8eOjBw5stw12L59O3/5y19SnrcxNZUVGj5o0qQJ48aNY+zYscyZM4fi4mIKCwsZPHgwHTp0YOTI\nkWXHLl68mJdeeomSkhLuv/9+6tWrR58+fTjmmGPIysrinnvuYffu3ZSWlvL555+zaNEiIHovqB07\ndpCVlUWDBg1YtmwZjzxSfvzHVq1alZti1YtQPoMHD+bxxx9n2bJl7Nq1iwkTJlT62uLi4nLTsZaU\nlFSYR6QRI0bwyiuv8MYbb1BaWspPP/1EQUEBa9eujes9BFnQnxUIcvxBjj0RVmj45Nprr+WOO+7g\nmmuuoUmTJvTp04dOnToxd+5cateuDTh3C2eccQbTp0+nadOm/Oc//+HFF18kMzOTzMxMZs2axccf\nf0znzp1p0aIFF110Edu2bSt7beSdxr333svTTz9N48aNueiiixg6dGi5Y8aPH8+oUaPIycnhhRde\nqLRbbPj+/Px8rrjiCk444QQOPvhg+vbtC0DdunVjvv7SSy8tm461QYMGnH/++VHzjDX9bfv27Zk5\ncyZ33HEHLVu2pGPHjtx3331Ju3syxuzPZu5LY7feeisrVqzgqaee8juUuC1dupTDDz+cn3/+OWqD\n/4HGhhGpmiDHH+TYIZjDiJhKBK3Ae+mll9izZw+bN2/muuuuY9CgQTWiwDCmJrH/0WksaE9NP/bY\nY7Rq1YquXbtSu3bt/dpMTPIF+ZcuBDv+IMeeCKueMiYJ7LNmgsaqp4ypgYL+rECQ4w9y7ImwQsMY\nY4xnVj1lTBLYZ80ETVWrp/yc7rVaBKkh2Rhj0p0v1VMi0lRE3hSR5SLyhohkxzju3yLyvYh8VpV8\nqjKCY3Uv8+bN8z0Giz855/JD0OvVgxx/kGNPhF9tGtcDb6rqwcBcNx3N40B+tUXlg9CIrUFl8fvL\n4vdPkGNPhF+FxiBgqrs+FTgz2kGq+g6wubqC8sOWLVv8DiEhFr+/LH7/BDn2RPhVaLRS1e/d9e+B\nVj7FYYwxJg4pawgXkTeB1lF23RSeUHVmjEtVHOmusLDQ7xASYvH7y+L3T5BjT4QvXW5FZBmQp6ob\nRKQNME9VD41xbC7wiqoeXsH5amyhY4wxVaUB6nL7MjAKuNv997+JnKwqb9wYY0z8/GrTuAv4tYgs\nB05004hIWxF5NXSQiDwDvAccLCKrRWSML9EaY4wBDpAnwo0xxlSPwIw9JSL5IrJMRL4WketiHDPR\n3f+JiBxZ3TFWpLL4RSRPRLaKyBJ3udmPOKPx8pBlml/7CuNP52sPICIdRGSeiHwhIp+LyBUxjku7\nv4GX2NP5+otIPRFZKCIfi8iXInJnjOPS7tqDt/jjvv5+P5Hr8UnbTGAFkAvUBj4Gukcccxrwmrve\nG3jf77jjjD8PeNnvWGPE3x84Evgsxv60vfYe40/ba+/G1xro6a43Ar4KyuffY+zpfv0buP/WAt4H\njgvCtY8j/riuf1DuNHoBK1S1UFWLgWeBMyKOKXtgUFUXAtkiki7Pf3iJHyAtG/S18ocs0/nae4kf\n0vTaA6jqBlX92F3fASwF2kYclpZ/A4+xQ3pf/13uah2cH4CbIg5Jy2sf4iF+iOP6B6XQaAesDkuv\ncbdVdkz7FMfllZf4FTjWvb19TUQOq7boEpfO196LwFx7twv6kcDCiF1p/zeoIPa0vv4ikiEiH+M8\niDxPVb+MOCStr72H+OO6/kEZ5dZra31kaZkurfxe4vgI6KCqu0TkVJxuyAenNqykStdr70Ugrr2I\nNAJeAK50f7Xvd0hEOm3+BpXEntbXX1X3Aj1FpAkwR0TyVLUg4rC0vfYe4o/r+gflTmMt0CEs3QGn\nNK/omPbutnRQafyquj10G6mqs4HaItK0+kJMSDpf+0oF4dqLSG1gBjBNVaM915S2f4PKYg/C9QdQ\n1a3Aq8CvInal7bUPFyv+eK9/UAqNRUA3EckVkTrAEJwHBMO9DPweQET6AFt03/hWfqs0fhFpJeJM\n/iEivXC6Q0ere0xH6XztK5Xu196NbQrwpareH+OwtPwbeIk9na+/iDQXd+oGEakP/BpYEnFYWl57\n8BZ/vNc/ENVTqloiIpcDc3Aacqao6lIRudjdP0lVXxOR00RkBbATSJsHAb3ED5wDXCoiJcAuYKhv\nAUcQ5yHLAUBzEVkNjMPpBZb21x4qj580vvaufsAI4FMRCf2HvxHoCGn/N6g0dtL7+rcBpopIBs6P\n7KdUdW5QvnvwED9xXn97uM8YY4xnQameMsYYkwas0DDGGOOZFRrGGGM8s0LDGGOMZ1ZoGGNMwIiH\nQUTDjv172GCEX4lIZUPqVHw+6z1ljDHBIiL9gR3Ak1rBrKZRXnc5zgCSf6hq3nanYZJOREaLyAMp\nPP8V7jDPT1VnvqkkIn1E5LEkn3O8iFydzHPGmX+0oU68vvZ0cacQ8Pt9pKNog3CKSBcRmS0ii0Tk\nbRE5JMpLzwOeSSTvQDzcZwIn1bevlwInqeq6as43lU4FZif5nH5fjyrnr6qvAK8kep4a5jHgYlVd\nISK9gYeBk0I7RaQTzvQMbyWSid1pmP24w50sE5HH3TrQ/4jIQBF5V0SWi8gx7nFNReS/7uiYC0Rk\nv9tkEWkhIi+IyAfucqy7fUBYPetH4gxoF/naq0TkM3e50t32KNAZeF1E/hQl/NCkP8tF5K9h5xoh\nzmQ0S0TkUfcJWURkh4jcLs4kNQtEpKW7fUnYsktE+otIQ7cueaEb8yD32NEi8qL7K2+5iNwdlu9A\nEXlPRBaLyHMi0jDGZT8R+F/E+88TkfnuNf5GRO4SkZHudfxURDqH/b3ecv8O/xORDpEn9/Ir1D1n\nY3FsFJGR7vYnReRkEenkvnaxu/R197dxty9x/1b9ws6537WNyDPqZ0gCfNfoB/f/T1/geXGevH8U\nZy6TcEOB5zXRNonqnhDElvRfcH6NFAO/wBm9cxHO0CfgzB3wkrv+AHCLu34CsMRdHw084K4/DfRz\n1zvijEEEzng9fd31BkBmRAxHA58C9YGGwOdAD3ffSqBplLhHA+uAHKAe8Jl7nu5ufpnucQ8DI931\nvcBv3PW7gZsiznk6MB/nrvwOYLi7PRtnQqEGbr7fAFlAXaAQZ7js5u5r67uvuS50vSLyaA68FWV7\nHk4VRCucuRDWAuPdfVcA/3DXXwl7P2PC/j7jgKvc9blAV3e9NzA3Sn6P4Ewo9EvgA2CSu325+3eo\nD9R1t3UDPnTXrwZudNczgEZerm0cn6FxwNV+/79ItwXn/+ln7npjYF0lx38E9Ek0X6ueMrGsVNUv\nAETkC/b9Cv4c58MKzrhCZwGo6jwRaSYiWRHnORnoLlI2cnSW+2v7XeAfIvIf4EVVjRwV9Dh3+243\nhheB44FPKon7DVXdHPaa44BSnMJjkRtHfWCDe/zPqvqqu74YZ0A33Nd3A+4B8tQZP2wgcLqIXOMe\nUhenIFScL+Ht7uu+dK9RDnAY8J6bbx3gvSgxD8QZlyyaD9Ud/E6csY1Cx32O8yUL0Ac4012f5sZc\nxr3ex+L8Cg1trhMlr3dwrvEqnALkIhFpC2xW1d3iDK39oIj0wLmm3dzXfQD8W5zRbP+rqqG/Ucxr\nG8bLZ8hUQlW3ichKETlHVV8Q5w99uKp+CiAihwI5qvp+onlZoWFi2RO2vhf4OWw9/HNT2TwCAvRW\n1Z8jtt8tIrOA3wDvisgpqvpVxHnCzy1Rzh0pWt6hbVNV9cYorykOWy97b+7t/nTgD1p+xNKzVPXr\ncpk49cfh16uUfdfoTVU9r5K484H7YuyL/DvsCVuv6O8QLgPni7+yuavfBi7HuVO6CfgdzmB2b7v7\n/wysV9WRIpIJ/AROo6w4vXl+CzwhIn9X1aeIcW2jSNu5KNKV7D8I51+B4cAj4szxXRunwftT9yVD\nSLABPMTaNEwi3sH5oCIiecCPuv8EO2/gVKXgHtfT/beLqn6hqvcAHwKRdezvAGeKSH33l/KZ7raK\nCPBrEckRZxjoM4D/w6maOUdEWrh5NxWRjpWc69/A46r6bti2ORHvJfQlHO0LW3HmY+4nIl3c4xu6\ndy/7AnZ+ER4R9uu8Kt5j38ikw9n3JS843eq3AytF5JxQniJyxH4Bq67BqSrrqqorca7dNWHna8y+\nO7Tf44zYjHstf1TVyTjDoFdWOIXz8hlK26lg/aKqw1S1rarWUdUOqvq4OtNJn6qqPVX1F6p6e9jx\nt8b40RQ3KzRMLJG/9jTK+njgaBH5BKe+f1TY/tAxVwC/chs6vwAucrdf6TaafoJzF1Ou55CqLgGe\nwKn6eB/4V9gXa6xfouoePwOnGusFVf1IVZcCNwNvuPm9wb5Gwsj3pe6X4NnA+bKvMfwoYALOBDWf\nisjnwK1R3m/4eyjCqZt/xs33PfYvHI9m//kZysXjYd9YYIybx3DgyijHDAcuEGfaz89x2qaieR+n\nDQOcQqOt+y84bUGj3HMcgvOcADjVZB+LyEfAucA/w/Kv7L2Mp/LPUEXXwVQze7jPGB+JyE3A16r6\nnN+xGOOFFRrGGGM8s+opY4wxnlmhYYwxxjMrNIwxxnhmhYYxxhjPrNAwxhjjmRUaxhhjPLNCwxhj\njGf/H4+Djc3FFZ59AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7bc4668>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Steam circulation rate is 6.81e-04 kmol/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3: Page 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.3\n",
+ "# Page: 292\n",
+ "\n",
+ "print'Illustration 8.3 - Page: 292\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "# Since tower is a tray device:\n",
+ "# Following changes in notation is made:\n",
+ "# L1 to LNp\n",
+ "# L2 to L0\n",
+ "# X1 to XNp\n",
+ "# X2 to X0\n",
+ "# G1 to GNpPlus1\n",
+ "# G2 to G1\n",
+ "# Y1 to YNpPlus1\n",
+ "# Y2 to Y1\n",
+ "# x1 to xNp\n",
+ "# x2 to x0\n",
+ "# y1 to yNpPlus1\n",
+ "# y2 to y1\n",
+ "# From Illustration 8.2:\n",
+ "yNpPlus1 = 0.02;\n",
+ "Y1 = 0.00102;\n",
+ "y1 = Y1/(1+Y1);\n",
+ "GNpPlus1 = 0.01075;# [kmol/s]\n",
+ "x0 = 0.005;\n",
+ "m = 0.125;# [m = y_star/x]\n",
+ "Ls = 1.787*10**(-3);# [kmol/s]\n",
+ "Gs = 0.01051;# [kmol/s]\n",
+ "XNp = 0.1190;\n",
+ "LNp = Ls*(1+XNp);# [kmol/s]\n",
+ "ANp = LNp/(m*GNpPlus1);\n",
+ "X0 = x0/(1-x0);\n",
+ "L0 = Ls*(1+X0);# [kmol/s]\n",
+ "G1 = Gs*(1+Y1);# [kmol/s]\n",
+ "A1 = L0/(m*G1);\n",
+ "A = (ANp*A1)**0.5;\n",
+ "# From Eqn. 5.55:\n",
+ "Np = (math.log((yNpPlus1-(m*x0))/(y1-(m*x0))*(1-(1/A))+(1/A)))/math.log(A);\n",
+ "print\"Absorber\\n\"\n",
+ "print\"From Analytical Method, no. of theoretical trays required is \\n\",round(Np,4)\n",
+ "# From Fig. 8.13 (Pg292):\n",
+ "Np = 7.6;\n",
+ "print\"From Graphical Method, no. of theoretical trays required is \\n\",Np\n",
+ "\n",
+ "# Stripper\n",
+ "SNp = 1/ANp;\n",
+ "S1 = 1/A1;\n",
+ "# Due to relative nonconstancy of the stripping factor,graphical method should be used.\n",
+ "print\"Stripper\\n\"\n",
+ "# From Fig. 8.11 (Pg 289):\n",
+ "Np = 6.7;\n",
+ "print\"From Graphical Method, no. of theoretical trays required is \\n\",Np\n",
+ "# From Fig. 5.16 (Pg 129):\n",
+ "Np = 6.0;\n",
+ "print\"From Fig. 5.16, no. of theoretical trays required is \\n\",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.3 - Page: 292\n",
+ "\n",
+ "\n",
+ "Absorber\n",
+ "\n",
+ "From Analytical Method, no. of theoretical trays required is \n",
+ "7.7085\n",
+ "From Graphical Method, no. of theoretical trays required is \n",
+ "7.6\n",
+ "Stripper\n",
+ "\n",
+ "From Graphical Method, no. of theoretical trays required is \n",
+ "6.7\n",
+ "From Fig. 5.16, no. of theoretical trays required is \n",
+ "6.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 102
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4: Page 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.4\n",
+ "# Page: 295\n",
+ "\n",
+ "print'Illustration 8.4 - Page: 295\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "#****Data****#\n",
+ "# a = CH4 b = C5H12\n",
+ "Tempg = 27.0;# [OC]\n",
+ "Tempo = 0.0;# [base temp,OC]\n",
+ "Templ = 35.0;# [OC]\n",
+ "xa = 0.75;# [mole fraction of CH4 in gas]\n",
+ "xb = 0.25;# [mole fraction of C5H12 in gas]\n",
+ "M_Paraffin = 200.0;# [kg/kmol]\n",
+ "hb = 1.884;# [kJ/kg K]\n",
+ "#********#\n",
+ "\n",
+ "Ha = 35.59;# [kJ/kmol K]\n",
+ "Hbv = 119.75;# [kJ/kmol K]\n",
+ "Hbl = 117.53;# [kJ/kmol K]\n",
+ "Lb = 27820;# [kJ/kmol]\n",
+ "# M = [Temp (OC) m]\n",
+ "M = numpy.array([[20 ,0.575],[25 ,0.69],[30 ,0.81],[35, 0.95],[40, 1.10],[43, 1.25]]);\n",
+ "# Basis: Unit time\n",
+ "GNpPlus1 = 1.0;# [kmol]\n",
+ "yNpPlus1 = 0.25;# [kmol]\n",
+ "HgNpPlus1 = ((1-yNpPlus1)*Ha*(Tempg-Tempo))+(yNpPlus1*(Hbv*(Tempg-Tempo)+Lb));# [kJ/kmol]\n",
+ "L0 = 2.0;# [kmol]\n",
+ "x0 = 0.0;# [kmol]\n",
+ "HL0 = ((1-x0)*hb*M_Paraffin*(Templ-Tempo))+(x0*hb*(Templ-Tempo));# [kJ/kmol]\n",
+ "C5H12_absorbed = 0.98*xb;# [kmol]\n",
+ "C5H12_remained = xb-C5H12_absorbed;\n",
+ "G1 = xa+C5H12_remained;# [kmol]\n",
+ "y1 = C5H12_remained/G1;# [kmol]\n",
+ "LNp = L0+C5H12_absorbed;# [kmol]\n",
+ "xNp = C5H12_absorbed/LNp;# [kmol]\n",
+ "# Assume:\n",
+ "Temp1 = 35.6;# [OC]\n",
+ "Hg1 = ((1-y1)*Ha*(Temp1-Tempo))+(y1*(Hbv*(Temp1-Tempo)+Lb));# [kJ/kmol]\n",
+ "\n",
+ "# Eqn. 8.11:\n",
+ "Qt = 0;\n",
+ "def f30(HlNp):\n",
+ " return ((L0*HL0)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(G1*Hg1)+Qt)\n",
+ "HlNp = fsolve(f30,2);\n",
+ "\n",
+ "def f31(TempNp):\n",
+ " return HlNp-(((1-x0)*hb*M_Paraffin*(TempNp-Tempo))+(x0*hb*(TempNp-Tempo)))\n",
+ "TempNp = fsolve(f31,35.6);\n",
+ "# At Temp = TempNp:\n",
+ "mNp = 1.21;\n",
+ "yNp = mNp*xNp;# [kmol]\n",
+ "GNp = G1/(1-yNp);# [kmol]\n",
+ "HgNp = ((1-yNp)*Ha*(TempNp-Tempo))+(yNp*(Hbv*(TempNp-Tempo)+Lb));# [kJ/kmol]\n",
+ "# Eqn. 8.13 with n = Np-1\n",
+ "def f32(LNpMinus1):\n",
+ " return LNpMinus1+GNpPlus1-(LNp+GNp)\n",
+ "LNpMinus1 = fsolve(f32,2);# [kmol]\n",
+ "\n",
+ "# Eqn. 8.14 with n = Np-1\n",
+ "def f33(xNpMinus1):\n",
+ " return ((LNpMinus1*xNpMinus1)+(GNpPlus1*yNpPlus1))-((LNp*xNp)+(GNp*yNp))\n",
+ "xNpMinus1 = fsolve(f33,0);# [kmol]\n",
+ "\n",
+ "# Eqn. 8.15 with n = Np-1\n",
+ "def f34(HlNpMinus1):\n",
+ " return ((LNpMinus1*HlNpMinus1)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(GNp*HgNp))\n",
+ "HlNpMinus1 = fsolve(f34,0);# [kJ/kmol]\n",
+ "def f35(TempNpMinus1):\n",
+ " return HlNpMinus1-(((1-xNpMinus1)*hb*M_Paraffin*(TempNpMinus1-Tempo))+(xNpMinus1*hb*(TempNpMinus1-Tempo)))\n",
+ "TempNpMinus1 = fsolve(f35,42);# [OC]\n",
+ "\n",
+ "# The computation are continued upward through the tower in this manner until the gas composition falls atleast to 0.00662.\n",
+ "# Results = [Tray No.(n) Tn(OC) xn yn]\n",
+ "Results = numpy.array([[4.0 ,42.3 ,0.1091 ,0.1320],[3 ,39.0, 0.0521 ,0.0568],[2 ,36.8 ,0.0184 ,0.01875],[1 ,35.5, 0.00463 ,0.00450]]);\n",
+ "\n",
+ "plt.plot(Results[:,0],Results[:,3]);\n",
+ "plt.grid('on');\n",
+ "xlabel('Tray Number');\n",
+ "ylabel('mole fraction of C5H12 in gas');\n",
+ "plt.show();\n",
+ "plt.plot(Results[:,0],Results[:,1]);\n",
+ "plt.grid('on');\n",
+ "xlabel('Tray Number');\n",
+ "ylabel('Temperature(OC)');\n",
+ "plt.show();\n",
+ "\n",
+ "# For the required y1\n",
+ "Np = 3.75;\n",
+ "print\"The No. of trays will be \",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.4 - Page: 295\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nIrH8P0wZNkRyHEDjAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7981908>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb4f99b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The No. of trays will be 3.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 164
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5: Page 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.5\n",
+ "# Page: 299\n",
+ "\n",
+ "print'Illustration 8.5 - Page: 299\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# a = NH3 b = H2 c = N2 w = water\n",
+ "P = 2.0;# [bars]\n",
+ "Temp = 30.0;# [OC]\n",
+ "L = 6.38;# [kg/s]\n",
+ "W = 0.53;# [weir length,m]\n",
+ "pitch = 12.5/1000;# [m]\n",
+ "D = 0.75;# [Tower diameter,m]\n",
+ "hW = 0.060;# [weir height,m]\n",
+ "t = 0.5;# [tray spacing,m]\n",
+ "#*******#\n",
+ "\n",
+ "# From Geometry of Tray Arrangement:\n",
+ "At = 0.4418;# [Tower Cross section,square m]\n",
+ "Ad = 0.0403;# [Downspout Cross section,square m]\n",
+ "An = At-Ad;# [square m]\n",
+ "Ao = 0.0393;# [perforation area,square m]\n",
+ "Z = 0.5307;# [distance between downspouts,square m]\n",
+ "z = (D+W)/2.0;# [average flow width,m]\n",
+ "h1 = 0.04;# [weir crest,m]\n",
+ "# From Eqn. 6.34\n",
+ "Weff = W*(math.sqrt(((D/W)**2)-((((D/W)**2-1)**0.5)+((2*h1/D)*(D/W)))**2));# [m]\n",
+ "q = Weff*(1.839*h1**(3/2));#[cubic m/s]\n",
+ "# This is a recommended rate because it produces the liquid depth on the tray to 10 cm.\n",
+ "Density_L = 996;# [kg/s]\n",
+ "Mw = 18.02;# [kg/kmol]\n",
+ "L1 = 6.38/Mw;# [kmol/s]\n",
+ "Ma = 17.03;# [kg/kmol]\n",
+ "Mb = 28.02;# [kg/kmol]\n",
+ "Mc = 2.02;# [kg/kmol]\n",
+ "MavG = (0.03*Ma)+(0.97*(1/4)*Mb)+(0.97*(3/4)*Mc);# [kg/kmol]\n",
+ "Density_G = (MavG/22.41)*(P/0.986)*(273/(273+Temp));# [kg/cubic m]\n",
+ "G = 0.893;# [kg/s]\n",
+ "sigma = 68*10**(-3);# [N/m]\n",
+ "abcissa = (L/G)*(Density_G/Density_L)**0.5;\n",
+ "# From Table 6.2 (Pg169):\n",
+ "alpha = 0.04893;\n",
+ "beeta = 0.0302;\n",
+ "# From Eqn. 6.30\n",
+ "Cf = ((alpha*math.log10(1.0/abcissa))+beeta)*(sigma/0.02)**0.2;\n",
+ "# From Eqn. 6.29\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "# 80% of flooding value:\n",
+ "V = 0.8*Vf;# [m/s]\n",
+ "G = 0.8*G;# [kg/s]\n",
+ "G1 = G/MavG;# [kmol/s]\n",
+ "Vo = V*An/Ao;# [m/s]\n",
+ "l = 0.002;# [m]\n",
+ "Do = 0.00475;# [m]\n",
+ "# From Eqn. 6.37\n",
+ "Co = 1.09*(Do/l)**0.25;\n",
+ "viscosity_G = 1.13*10**(-5);# [kg/m.s]\n",
+ "Reo = Do*Vo*Density_G/viscosity_G;\n",
+ "# At Reynold's No. = Reo\n",
+ "fr = 0.0082;\n",
+ "g = 9.81;# [m/s^2]\n",
+ "# From Eqn. 6.36\n",
+ "def f36(hD):\n",
+ " return (2*hD*g*Density_L/(Vo**2*Density_G))-(Co*(0.40*(1.25-(Ao/An))+(4*l*fr/Do)+(1-(Ao/An))**2))\n",
+ "hD = fsolve(f36,1);\n",
+ "# From Eqn. 6.31;\n",
+ "Aa = (Ao/0.907)*(pitch/Do)**2;# [square m]\n",
+ "Va = V*An/Aa;# [m/s]\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.42\n",
+ "hR = 6*sigma/(Density_L*Do*g);# m\n",
+ "# From Eqn. 6.35\n",
+ "hG = hD+hL+hR;# [m]\n",
+ "Al = 0.025*W;# [square m]\n",
+ "Ada = min(Al,Ad);\n",
+ "# From Eqn. 6.43\n",
+ "h2 = (3/(2*g))*(q/Ada)**2;# [m]\n",
+ "# From Eqn.6.44\n",
+ "h3 = hG+h2;\n",
+ "# since hW+h1+h3 is essentially equal to t/2, flooding will not occur\n",
+ "abcissa = (L/G)*(Density_G/Density_L)**0.5;\n",
+ "V_by_Vf = V/Vf;\n",
+ "# From Fig.6.17, V/Vf = 0.8 & abcissa = 0.239\n",
+ "E = 0.009;\n",
+ "\n",
+ "# At the prevailing conditions:\n",
+ "Dg = 2.296*10**(-5);# [square m/s]\n",
+ "viscosity_G = 1.122*10**(-5);# [kg/m.s]\n",
+ "ScG = viscosity_G/(Density_G*Dg)\n",
+ "Dl = 2.421*10**(-9);# [square m/s]\n",
+ "\n",
+ "# From Henry's Law:\n",
+ "m = 0.850;\n",
+ "A = L1/(m*G1);\n",
+ "\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;# [square m/s]\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2.0)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# From Eqn. 6.60:\n",
+ "EMGE = EMG/((1+(EMG*(E/(1-E)))));\n",
+ "# From Eqn. 8.16:\n",
+ "EO = math.log(1+EMGE*((1.0/A)-1))/math.log(1.0/A);\n",
+ "Np = 14*EO;\n",
+ "yNpPlus1 = 0.03;\n",
+ "x0 = 0;\n",
+ "# From Eqn. 5.54(a):\n",
+ "def f37(y1):\n",
+ " return ((yNpPlus1-y1)/(yNpPlus1-m*x0))-(((A**(Np+1))-A)/((A**(Np+1))-1))\n",
+ "y1 = fsolve(f37,0.03);\n",
+ "print\"Mole Fraction Of NH3 in effluent is \",round(y1,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.5 - Page: 299\n",
+ "\n",
+ "\n",
+ "Mole Fraction Of NH3 in effluent is 0.0211\n"
+ ]
+ }
+ ],
+ "prompt_number": 159
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6: Page 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.6\n",
+ "# Page: 304\n",
+ "\n",
+ "print'Illustration 8.6 - Page: 304\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****# \n",
+ "# Gas:\n",
+ "# In:\n",
+ "y_prime1 = 0.02;\n",
+ "Y_prime1 = 0.0204;# [mol/mol dry gas]\n",
+ "# Out:\n",
+ "y_prime2 = 0.00102;\n",
+ "Y_prime2 = 0.00102;# [mol/mol dry gas]\n",
+ "# Non absorbed gas:\n",
+ "MavG = 11;# [kg/kmol]\n",
+ "G = 0.01051;# [kmol/s nonbenzene]\n",
+ "Gm = 0.01075;# [kmol/s]\n",
+ "T = 26;# [OC]\n",
+ "viscosity_G = 10**(-5);# [kg/m.s]\n",
+ "DaG = 1.30*10**(-5);# [square m/s]\n",
+ "\n",
+ "# Liquid:\n",
+ "# In:\n",
+ "x_prime2 = 0.005;\n",
+ "X_prime2 = 0.00503;# [mol benzene/mol oil]\n",
+ "# Out:\n",
+ "x_prime1 = 0.1063;\n",
+ "X_prime1 = 0.1190;# [mol benzene/mol oil]\n",
+ "# Benzene free oil:\n",
+ "MavL = 260.0;# [kg/kmol]\n",
+ "viscosity_L = 2*10**(-3);# [kg/kmol]\n",
+ "Density_L = 840;# [kg/cubic cm]\n",
+ "L = 1.787*10**(-3);# [kmol/s]\n",
+ "DaL = 4.77*10**(-10);# [square m/s]\n",
+ "sigma = 0.03;# [N/square m]\n",
+ "m = 0.1250;\n",
+ "#*******#\n",
+ "\n",
+ "A = 0.47**2*math.pi/4;# [square m]\n",
+ "# At the bottom:\n",
+ "L_prime1 = ((L*MavL)+(X_prime1*L*78))/A;# [kg/square m.s]\n",
+ "# At the top\n",
+ "L_prime2 = ((L*MavL)+(X_prime2*L*78))/A;# [kg/square m.s]\n",
+ "L_primeav = (L_prime1+L_prime2)/2;# [kg/square m.s]\n",
+ "# At the bottom\n",
+ "G_prime1 = ((G*MavG)+(Y_prime1*G*78))/A;# [kg/square m.s]\n",
+ "# At the top\n",
+ "G_prime2 = ((G*MavG)+(Y_prime2*G*78))/A;# [kg/square m.s]\n",
+ "G_primeav = (G_prime1+G_prime2)/2;# [kg/square m.s]\n",
+ "\n",
+ "# From Illustration 6.6:\n",
+ "Fga = 0.0719;# [kmol/cubic cm.s]\n",
+ "Fla = 0.01377;# [kmol/cubic cm.s]\n",
+ "# Operating Line:\n",
+ "X_prime = numpy.array([0.00503 ,0.02 ,0.04 ,0.06 ,0.08 ,0.10 ,0.1190]);\n",
+ "x_prime = numpy.zeros(7);\n",
+ "Y_prime = numpy.zeros(7);\n",
+ "y_prime = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " x_prime[i] = X_prime[i]/(1+X_prime[i]);\n",
+ " def f38(Y_prime):\n",
+ " return (G*(Y_prime1-Y_prime))-(L*(X_prime1-X_prime[i]))\n",
+ " Y_prime[i] = fsolve(f38,Y_prime1);\n",
+ " y_prime[i] = (Y_prime[i])/(1+Y_prime[i]);\n",
+ "\n",
+ "def f39(x):\n",
+ " return m*x\n",
+ "x = numpy.arange(0,0.14,0.01);\n",
+ "\n",
+ "# Interface compositions are determined graphically and according to Eqn. 8.21:\n",
+ "yi = [0.000784, 0.00285, 0.00562 ,0.00830 ,0.01090 ,0.01337 ,0.01580];\n",
+ "ylog = zeros(7);\n",
+ "y_by_yDiffyi = zeros(7);\n",
+ "for i in range(0,7):\n",
+ " ylog[i] = math.log10(yi[i]);\n",
+ " y_by_yDiffyi[i] = y_prime[i]/(y_prime[i]-yi[i]);\n",
+ "\n",
+ "plt.plot(x_prime,y_prime,label=\"Operating Line\")\n",
+ "plt.plot(x,f39(x),label=\"Equilibrium Line\")\n",
+ "plt.plot(x_prime,yi,label=\"Interface Composition\");\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.grid('on');\n",
+ "xlabel(\"mole fraction of benzene in liquid\");\n",
+ "ylabel(\"mole fraction of benzene in gas\");\n",
+ "plt.show()\n",
+ "plt.plot(ylog,y_by_yDiffyi);\n",
+ "plt.grid();\n",
+ "xlabel(\"log y\");\n",
+ "ylabel(\"y/(y-yi)\");\n",
+ "title(\"Graphical Integration Curve\");\n",
+ "plt.show()\n",
+ "# Area under the curve:\n",
+ "Ac = 6.556;\n",
+ "# Eqn. 8.28:\n",
+ "NtG = (2.303*Ac)+1.152*(math.log10((1-y_prime2)/(1-y_prime1)));\n",
+ "Gav = (Gm+(G/(1-Y_prime2)))/(2*A);# [kmol/square m.s]\n",
+ "HtG = Gav/Fga;# [m]\n",
+ "Z = HtG*NtG;# [m]\n",
+ "print\"The depth of packing required is \",round(Z,3),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.6 - Page: 304\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n2QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb202fd0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7999ac8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The depth of packing required is 12.881 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 154
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7: Page 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.7\n",
+ "# Page: 312\n",
+ "\n",
+ "print'Illustration 8.7 - Page: 312\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "# Fom Illustration 8.6:\n",
+ "y1 = 0.02;\n",
+ "y2 = 0.00102;\n",
+ "m = 0.125;\n",
+ "x2 = 0.005;\n",
+ "x1 = 0.1063;\n",
+ "\n",
+ "# Number of transfer units:\n",
+ "# Method a:\n",
+ "y1_star = m*x1;\n",
+ "y2_star = m*x2;\n",
+ "yDiffy_star1 = y1-y1_star;\n",
+ "yDiffy_star2 = y2-y2_star;\n",
+ "yDiffy_starm = (yDiffy_star1-yDiffy_star2)/math.log(yDiffy_star1/yDiffy_star2);\n",
+ "# From Eqn. 8.48:\n",
+ "NtoG = (y1-y2)/yDiffy_starm;\n",
+ "print\"NtoG according to Eqn. 8.48:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Mehod b:\n",
+ "# From Illustration 8.3:\n",
+ "A = 1.424;\n",
+ "NtoG = (math.log((((y1-(m*x2))/(y2-(m*x2)))*(1-(1/A)))+(1/A)))/(1-(1/A));\n",
+ "print\"NtoG according to Eqn. 8.50:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Method c:\n",
+ "# Operating Line:\n",
+ "# From Illustration 8.3:\n",
+ "X_prime = [0.00503, 0.02, 0.04 ,0.06 ,0.08 ,0.10 ,0.1190];\n",
+ "x_prime = [0.00502 ,0.01961, 0.0385, 0.0566, 0.0741, 0.0909 ,0.1063]\n",
+ "Y_prime = [0.00102 ,0.00357 ,0.00697 ,0.01036 ,0.01376 ,0.01714 ,0.0204];\n",
+ "y_prime = [0.00102 ,0.00356, 0.00692 ,0.01025 ,0.01356 ,0.01685, 0.0200];\n",
+ "def f2(x):\n",
+ " return m*x\n",
+ "x = numpy.arange(0,0.14,0.01);\n",
+ "\n",
+ "plt.plot(x_prime,y_prime,label=\"Operating Line\")\n",
+ "plt.plot(x,f2(x),label=\"Equilibrium Line\");\n",
+ "plt.legend(loc='upper right');\n",
+ "plt.grid('on');\n",
+ "xlabel(\"mole fraction of benzene in liquid\");\n",
+ "ylabel(\"mole fraction of benzene in gas\");\n",
+ "plt.show()\n",
+ "# From graph:\n",
+ "NtoG = 8.7;\n",
+ "print\"NtoG from graph:\",round(NtoG,2),\" \\n\",\n",
+ "\n",
+ "# Method d:\n",
+ "# from Fig 8.10:\n",
+ "Y_star = [0.000625, 0.00245, 0.00483, 0.00712 ,0.00935 ,0.01149, 0.01347];\n",
+ "ordinate = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " ordinate[i] = 1/(Y_prime[i]-Y_star[i]);\n",
+ "\n",
+ "plt.plot(Y_prime,ordinate);\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Y\");\n",
+ "ylabel(\"1/(Y-Y*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area under the curve:\n",
+ "Ac = 8.63;\n",
+ "# From Eqn. 8.36:\n",
+ "NtoG = Ac+(1.0/2)*math.log((1+y2)/(1+y1));\n",
+ "print\"NtoG from graphical integration:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Height of transfer units:\n",
+ "NtoG = 9.16;\n",
+ "# From Illustration 6.6:\n",
+ "Fga = 0.0719;# [kmol/cubic m.s]\n",
+ "Fla = 0.01377;# [kmol/cubic m.s]\n",
+ "Gav = 0.0609;# [kmol/square m.s]\n",
+ "L = 1.787*10**(-3);# [kmol/s]\n",
+ "X1 = x1/(1-x1);\n",
+ "X2 = x2/(1-x2);\n",
+ "Area = 0.1746;# [square m]\n",
+ "Lav = L*((1+X1)+(1+X2))/(2*Area);\n",
+ "# From Eqn. 8.24:\n",
+ "Htg = Gav/Fga;# [m]\n",
+ "# From Eqn. 8.31:\n",
+ "Htl = Lav/Fla;# [m]\n",
+ "# since Solutions are dilute:\n",
+ "HtoG = Htg+Htl/A;# [m]\n",
+ "print\"HtoG: \",round(HtoG,2),\" m\\n\",\n",
+ "Z = HtoG*NtoG;# [m]\n",
+ "print\"The depth of packing recquired is \",round(Z,2),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.7 - Page: 312\n",
+ "\n",
+ "\n",
+ "NtoG according to Eqn. 8.48: 8.51 \n",
+ "\n",
+ "NtoG according to Eqn. 8.50: 9.16 \n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXucTfX6x9+PiaTcOoQGETnp/BQluVXOKSW/qBONbk6k\nqBNdpKI6mu506MavC7mVQkJJFyKkK+NaIUkTmaI0LqGYmef3x1oztmkua2avvffae57367Vesy7f\n7/p+9nfP3s9e3+f7fB9RVQzDMAzDL8rFWoBhGIaRWJhhMQzDMHzFDIthGIbhK2ZYDMMwDF8xw2IY\nhmH4ihkWwzAMw1cialhEpJOIrBeRb0Tk7kLKPONeXy0iLdxz9URkoYh8JSJfisgtIeVTReQHEVnp\nbp0i+RoMwzCMknFEpG4sIknAaOB8YCuwTERmq+q6kDKdgcaqepKInAU8B7QGDgK3q+oqETkGWC4i\n81R1PaDAE6r6RKS0G4ZhGKUnkk8srYCNqpquqgeBqcAl+cp0BSYBqOrnQDURqaWqP6nqKvf8b8A6\nIDmknkRQt2EYhhEGkTQsycCWkOMfONw4FFambmgBEWkAtAA+Dzk9wB06Gyci1fwSbBiGYYRPJA2L\n17Vi8j995NVzh8FeB251n1zAGS5rCDQHfgRGhqnTMAzD8JGI+Vhw/Cr1Qo7r4TyRFFWmrnsOESkP\nzAAmq+obuQVUdXvuvoi8CLxVUOMiYougGYZhlBBVDdvVEMknljTgJBFpICIVgB7A7HxlZgP/AhCR\n1sBOVd0mIgKMA9aq6lOhFUSkTsjhP4EvChOgqoHe7r///phrMJ2m03SaztzNLyL2xKKqWSLSH5gL\nJAHjVHWdiPRzr7+gqu+ISGcR2QjsBXq71dsB1wBrRGSle26Iqr4HDBeR5jhDZt8B/SL1GiJNenp6\nrCV4wnT6i+n0F9MZPCI5FIaqvgu8m+/cC/mO+xdQ7yMKeZpS1X/5qdEwDMPwF4u8jyG9evWKtQRP\nmE5/MZ3+YjqDh/g5rhYkREQT9bUZhmFEAhFBA+68N4ph0aJFsZbgCdPpL5HSKSK22eZ5iyQR9bEY\nhhFd7Cnd8EKkDYsNhRlGgiAiZlgMTxT2v+Ket6EwwzAMI1iYYYkhZd0n4Dem0zCCgRkWwzAMYMmS\nJZx88slRbXPz5s1Urlw54YYwzcdiGAlC0H0sEydOZOTIkWzatIkqVarwz3/+k8cee4yqVavGRE+5\ncuXYuHEjJ554YsTb6tChAz179qRPnz4Rb8sL5mMxDCPuGTlyJIMHD2bkyJHs3r2bzz77jO+//56O\nHTty8OBB39vLzs72VC5ahjgaU3yDhBmWGBIvY+2m01/iRadf7N69m9TUVEaPHs0FF1xAUlISJ5xw\nAq+99hrp6elMnjwZgNTUVLp3784VV1xBlSpVOOOMM1izZk3efTIyMujWrRvHHXccJ554IqNGjcq7\nllu3Z8+eVK1alUmTJrFs2TLatGlD9erVOf744xkwYECeETvnnHMAOO2006hcuTLTp09n0aJF1Kt3\naLH1Bg0aMHLkSE477TSqVavGFVdcwR9//JF3/fHHH+f444+nbt26vPjii5QrV45NmzaVqG/S09Mp\nV64cOTk5gPNkM3ToUNq3b0+VKlW48MIL2bFjR175zz77jLZt21K9enWaN2/O4sWLS9RetDDDYhhG\nRPnkk0/4/fffueyyyw47f/TRR9O5c2fef//9vHOzZ88mJSWFzMxMrrrqKi699FKys7PJycmhS5cu\ntGjRgoyMDBYsWMBTTz3FvHnzDqt7+eWXs2vXLq666iqSkpJ4+umn2bFjB59++ikLFizg2WefBeDD\nDz8EYM2aNezZs4fLL7/8T7pFhOnTpzN37ly+++471qxZw8SJEwF47733ePLJJ1mwYAHffPMNixYt\n8u2JZMqUKUycOJHt27dz4MABRowYAcDWrVu5+OKLGTp0KJmZmYwYMYJu3brxyy+/+NKun5hhiSEd\nOnSItQRPmE5/iZVOEX+2kvLLL79Qo0YNypX789dN7dq1D/tibNmyJZdddhlJSUkMHDiQ33//nU8/\n/ZRly5bxyy+/cN9993HEEUfQsGFDrr/+eqZOnZpXt23btnTt2hWAihUrcvrpp9OqVSvKlSvHCSec\nQN++fUv8C/+WW26hdu3aVK9enS5durBq1SoAXnvtNa677jqaNm3KUUcdxQMPPODLsJqI0Lt3bxo3\nbkzFihVJSUnJa3Py5Ml07tyZTp06AXD++efTsmVL3nnnnbDb9RuLvDeMMkKs/Po1atTgl19+IScn\n50/G5ccff6RmzZp5x3XrHspMLiLUrVuXjIwMRISMjAyqV6+edz07OztvSCt/XYANGzYwcOBAli9f\nzr59+8jKyqJly5Yl0l67du28/aOOOooff/wxT3erVq0KbTsc8rf5229O8tzvv/+e6dOn89Zbh3Ib\nZmVl8Y9//MO3tv3CnlhiSLyMtZtOf4kXnX7Rpk0bjjzySGbMmHHY+d9++4333nuP8847L+/cli1b\n8vZzcnL44YcfSE5Opl69ejRs2JDMzMy8bffu3cyZMwco2Dl+0003ccopp7Bx40Z27drFI488kufL\nCJc6deocpjV0P1LUr1+fnj17HtYHe/bs4a677op42yXFDIthGBGlatWq3H///QwYMIC5c+dy8OBB\n0tPTSUlJoV69evTs2TOv7PLly5k1axZZWVk89dRTVKxYkdatW3PmmWdSuXJlHn/8cfbv3092djZf\nfvklaWlpQMGzu3777TcqV65MpUqVWL9+Pc8999xh12vVqsW3335boteS205KSgoTJkxg/fr17Nu3\nj4ceeqjYugcPHuT333/P27KysopsIz/XXHMNb731FvPmzSM7O5vff/+dRYsWsXXr1hK9hmhghiWG\nmE/AX0xncLnzzjt59NFHGTRoEFWrVqV169accMIJLFiwgPLlywPOU8cll1zCtGnTOPbYY3nllVeY\nOXMmSUlJJCUlMWfOHFatWsWJJ55IzZo16du3L7t3786rm/+JZcSIEbz66qtUqVKFvn37csUVVxxW\nJjU1lWuvvZbq1avz+uuvFzslOPR6p06duOWWW/j73/9OkyZNaNOmDQBHHnlkofVvuukmKlWqlLdd\nd911BbYZehx6vW7durz55ps8+uijHHfccdSvX5+RI0f69hTmJxYgaRgJQtADJIvjgQceYOPGjbz8\n8suxllJi1q1bR7NmzThw4ECBkxSChgVIJjDxMtZuOv0lXnRGm3gzirNmzeKPP/4gMzOTu+++m65d\nu8aFUYkG1guGYQSCeItOHzNmDLVq1aJx48aUL1/+Tz6csowNhRlGghDvQ2FG9LChMMMwDCOuMMMS\nQ+JlrN10+ku86DSM0mKGxTAMw/AV87EYRoJgPhbDK+ZjMQzDMOIKMywxJF7G2k2nv8SLznggf2rf\nDh06MG7cOABeeeUVLrzwwryyJc2Xkr9+LIjX1MVmWAzDiDgNGjSgUqVKVK5cOW+75ZZbwr5v/fr1\n2bNnT178S2gszNVXX83cuXNLfe9w65eEUIMYSv7XFy/YsvkxJF7WjDKd/hIvOv1ERJgzZ04gl3gv\niOzsbJKSkqLWXrwFhxZHsU8sInKMiCS5+38Vka4iUj7y0gzDKAvk5OQwaNAgatasSaNGjfi///u/\n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\nvT7hM9J+mQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb4fd5f8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NtoG from graph: 8.7 \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEZCAYAAABfKbiYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYHHWV//H3h4QQMMAQgVwIOEAAAYEBFuIqkQnXiLsC\nzy4oXpYIugthRVFZiC43L1zcXUVk1d8aIEEFxPUnlxVCEmCQ5ZYfSsIliyS4AySQkEAIAY2Q5Pz+\nqJpUZ5hLZtLVVT39eT1PP3RVV3d9+1DpM3VOXRQRmJmZVcNmRQ/AzMwGDicVMzOrGicVMzOrGicV\nMzOrGicVMzOrGicVMzOrGicVG9AkXSzpJz28/qSkD+W5jnomaRdJqySp6LFYfXBSsZqS9HFJj0h6\nQ9JSSQ9LOjPHVfZ4IlZEvC8ifpPXOiS1SnphYz5EUrOkdZIK+3cpqV3SER3TEfF8RGwdPqHNNpKT\nitWMpC8DVwJXACMiYgRwBvBBSUO6ec+mbqO1+Au72uvIZcySBm3EYpHX+q0xOKlYTUjaFrgEODMi\n/m9EvAkQEXMj4lMR8Va63DRJP5R0h6Q3gFZJH5H0mKSVkp6XdFHF53b8df85SYslvZgmrw4BDJE0\nXdLrabnr4Ir3t0s6Mn0+SNJXJS1Ml31U0k7pa99L170ynX9YP+PQJunrkv47Xcddkt6dvtyxx/Ra\nWnIal77nNEnzJb0qaYakXSo+7xhJv5f0mqR/l3SfpNPT1yZJekDSdyQtBy6StJukeyQtl7RM0k/T\n/zekJbxdgNvT9X+l896TpNGSbpP0iqQFkj5bMZaLJd3cXaytMTipWK38JbAFcOtGLHsK8I2IGAY8\nALwBfCoitgU+Apwp6fhO72kFxgLHAOd1JAqSv7o/CtwIbAvcBlxd8b4gK199Cfg48OGI2Ab4DPCn\n9LU5wAHAdsANwC+627vayO83CdgRGAJ8JZ0/Pv3vtmnJ6ZH0e04BTgS2B+5PvwuStgd+AZwHDAd+\nTxLnylLVocCz6bouTePxLWAUsDewM3AxQER8Gnge+Kt0/f/axdhvSpcZBfwtcKmkCRWv/zXdx9oa\ngJOK1cr2wPKIWNcxQ9KDklZI+mOnv/xviYiHACLizxFxX0Q8lU4/QfLDdninz78kIv4UEU8C15H8\ncHe4PyJmpH2Bn5Ikh658FvhaRCzoWFdEvJo+/1lErIiIdRHxHZIEuVc/4hDAdRGxMCJWAzcDLR0h\n6WL5M4DLIuL3aewuA1rSvZXjgCcj4pZ0XFcBSzq9/8WI+Pf09dUR8WxE3B0Rb0fEcuC7vDOWXZK0\nM/AB4LyIeCsi5gFTgb+rWGxjY20DlJOK1corwPaVPZKI+EBEbJe+1jE/gA0a25LGSbpX0suSXgP+\nAXg3G6p8z/PA6IrppRXP/wgM7aZXM4bkr/p3SEtB89My0wqSv8S37+a79qbyh/9PwLAeln0P8L00\n+a4giRXATiR7C4s6Ld95unMsR0i6SdIiSSuBn/DOWHZnNPBqR+ky9Xw6lg4bG2sboPw/22rlIeDP\nwAn9eO8NwC3AmIhoAn7EO7fdXTo9X9yP9bxAUkLbgKTxwLnASRHRlCbClVS/od3VEVbPA38fEdtV\nPN6V7sm9RJIIO8apyuluPvNSYC3wvrSc+Gk2jGVPR3m9CAyXVJkEd+GdicwamJOK1UREvEbSqP+B\npL+RtLWkzSS1AO+qWLSrH+phwIqIeEvSocAneOeP3z9L2lLSviT9ip/3Y5hTgW9IGqvE/pKGp+tf\nAyyXNETShcA2/fj8Dt0lo2XAOmD3ink/Ar4qaR9IDniQdFL62h3AfpKOlzQYOAsY2cu6hwFvAq+n\nByGc2+n1pZ3Wv15EvAA8CFwmaQtJ+wOnkZS5zAAnFauhiPgXkmb4P5GUgJaQ/Gj+E8meDGzYOO8w\nGfi6pNeBC+g6YdwHLARmA/8SEbN7+Lzu/hr/DkmPYybJnsiPgaHAXcAM4BmgnaRk9Xynz+vpL/ye\n1r/+vRHxR5Im+gNpuevQiLiF5BDsm9Jy1RPAsenyy4GTgG8Dy0ka74+S7BF2N65LgIPS73c78MtO\ny1xGkqBXSPpSF+M9BWgm2Wv5v8CFEXFPD+vz+S0NRnmd0yRpKMk/9C1IjnC5NSKmpH/5/ZykVtwO\nnJz+FYukKSR/+awFzo6Imen8g4FpJP/A74iIL+QyaKs7kpqBPwCDKw8CaERp7+IF4BMRcV/R47HG\nlNueSnpky4SIaAH2ByakR/icD8yKiD2Bu9Np0t37jwH7ABNJyiQdZYIfAqdHxB7AHpIm5jVus3qS\nnqfSJGkL4Kvp7IeLHJM1tlzLX+nuPCR7KoOAFSTnDExP508na9weD9yYHurYTlLKGCdpFLB1RMxJ\nl7ue/jV7beBq5BLLX5L8W1lGcg7PCRHx557fYpafXJNK2oidS9L8uzc912BERHQcdrgUGJE+H82G\nR5EsIjlUsfP8xWx4CKM1sIhoj4hBjVr6iohLImL7iNgmIv4yIv5f0WOyxjY4zw9P/6G3pJeBuKvT\nmbdEREhq5L8yzcwGlFyTSoeIWCnp18DBwFJJIyNiSVraejldbDHJJSM6jCHZQ1nMhsfej6GLcxCc\nnMzM+iciqnbOVW7lL0nbS2pKn28JHA08RnI9oFPTxU4lOamNdP7H0/MAdgX2AOZExBKSY+rHpY37\nT1e8ZwMR4UcEF110UeFjKMvDsXAsHIueH9WW557KKGB6epjjZsBPIuJuSY8BN6dXUm0HTgaIiPmS\nbgbmk5xoNjmybzyZ5JDiLUkOKZ6R47jrXnt7e9FDKA3HIuNYZByL/OSWVCK58N9BXcx/FTiqm/dc\nSnIZic7zfwvsV+0xmplZdfmM+gFo0qRJRQ+hNByLjGORcSzyk9sZ9bUmKQbKdzEzqxVJRD006q04\nbW1tRQ+hNByLjGORcSzy46RiZmZV4/KXmVkDc/nLzMxKy0llAHK9OONYZByLjGORHycVMzOrGvdU\nzMwamHsqZmZWWk4qA5DrxRnHIuNYZByL/DipmJlZ1binYmbWwNxTMTOz0nJSGYBcL844FhnHIuNY\n5MdJxczMqsY9FTOzBuaeipmZlZaTygDkenHGscg4FhnHIj9OKmZmVjXuqZiZNTD3VMzMrLScVAYg\n14szjkXGscg4FvlxUjEzs6pxT8XMrIG5p2JmZqXlpDIAuV6ccSwyjkXGsciPk4qZmVVNbj0VSTsD\n1wM7AgH8R0RcJeli4LPAsnTRr0bEnel7pgCnAWuBsyNiZjr/YGAaMBS4IyK+0MX63FMxM+ujavdU\n8kwqI4GRETFX0jDgt8AJwMnAqoj4Tqfl9wFuAA4BdgJmA3tEREiaA/xjRMyRdAdwVUTM6PT+PieV\nt96CNWtgq636+SXNzOpc3TTqI2JJRMxNn78B/A9JsgDo6gscD9wYEW9HRDuwEBgnaRSwdUTMSZe7\nniQ5bbIzz4Tp06vxSeXienHGscg4FhnHIj816alIagYOBB5OZ31e0jxJ10hqSueNBhZVvG0RSRLq\nPH8xWXLaJEceCTNm9L6cmZltnNyTSlr6+k/gC+keyw+BXYEW4CXg3/IeQ3eOPhra2pIy2EDS2tpa\n9BBKw7HIOBYZxyI/g/P8cEmbA78EfhoRtwBExMsVr08Fbk8nFwM7V7x9DMkeyuL0eeX8xV2tb9Kk\nSTQ3NwPQ1NRES0vL+o2nY3e38/See7by4IMAXb/uaU972tMDabqtrY1p06YBrP+9rKY8G/UCpgOv\nRMQ5FfNHRcRL6fNzgEMi4hMVjfpDyRr1Y9NG/SPA2cAc4NdUqVEPcMEF8PbbcPnl/fqapdTW1rZ+\nY2p0jkXGscg4Fpm6adQDHwQ+BUyQ9Fj6+DBwhaTHJc0DDgfOAYiI+cDNwHzgTmByRZaYDEwFFgAL\nOyeUTTFxItx1V7U+zcyssTX8tb/WrIEddoD582HUqBwGZmZWYvW0p1IXBg9OjgKbObPokZiZ1b+G\nTyow8EpgHU05cywqORYZxyI/TirAsccmeypr1xY9EjOz+tbwPZUO++4L110Hhx5axUGZmZWceyo5\nmTjRZ9ebmW0qJ5XUQOqruF6ccSwyjkXGsciPk0pq/Hh4/HFYsaLokZiZ1S/3VCocdxx85jNw0klV\nGpSZWcm5p5KjgVQCMzMrgpNKhWOPTZr19b7z5npxxrHIOBYZxyI/TioV9twTNt8cnnqq6JGYmdUn\n91Q6OfNMGDsWvvzlKgzKzKzk3FPJmc9XMTPrPyeVTiZMgIcfhjffLHok/ed6ccaxyDgWGcciP04q\nnWyzDRx8MNx3X9EjMTOrP+6pdOHyy+HFF+Gqq6rycWZmpeWeSg10HFpsZmZ946TShQMOgNdfhz/8\noeiR9I/rxRnHIuNYZByL/DipdGGzzZK9FZ9db2bWN+6pdOOGG+DnP4dbb63aR5qZlU61eypOKt1Y\ntiw5CXLZMhgypGofa2ZWKm7U18gOO8Bee8GDDxY9kr5zvTjjWGQci4xjkR8nlR747Hozs75x+asH\nDzwAZ50Fc+dW9WPNzErDPZVu5JFU1qxJymDz58OoUVX9aDOzUnBPpYYGD4ajjoKZM4seSd+4Xpxx\nLDKORcaxyI+TSi98dr2Z2cZz+asXL7wABx4IS5fCoEFV/3gzs0K5/FVjO+8MI0fCb39b9EjMzMov\nt6QiaWdJ90p6StKTks5O5w+XNEvSM5JmSmqqeM8USQskPS3pmIr5B0t6In3te3mNuTv1VgJzvTjj\nWGQci4xjkZ8891TeBs6JiH2B9wNnSdobOB+YFRF7Anen00jaB/gYsA8wEfiBpI5dsh8Cp0fEHsAe\nkibmOO538PkqZmYbp2Y9FUm3AFenj8MjYqmkkUBbRLxX0hRgXURckS4/A7gYeA64JyL2Tud/HGiN\niDM6fX4uPRWA1athxx3huedgu+1yWYWZWSHqsqciqRk4EHgEGBERS9OXlgIj0uejgUUVb1sE7NTF\n/MXp/JoZOhTGj4fZs2u5VjOz+jM47xVIGgb8EvhCRKzKKloQESGparsXkyZNorm5GYCmpiZaWlpo\nbW0Fshpqf6d3262N666Dk06qzuflOV1ZLy7DeIqc7phXlvEUOT137ly++MUvlmY8RU5feeWVVf19\nqKfptrY2pk2bBrD+97Kaci1/Sdoc+C/gzoi4Mp33NEn5aomkUcC9afnrfICIuDxdbgZwEUn5696K\n8tcpJOWzmpW/AJ55Bo44IjnEWFXbUcxHW1vb+o2p0TkWGcci41hk6uYyLWmTfTrwSkScUzH/2+m8\nK9JE0hQR56eN+huAQ0nKW7OBsenezCPA2cAc4NfAVRExo9P6ck0qEbD77nDbbfC+9+W2GjOzmqqn\nnsoHgU8BEyQ9lj4mApcDR0t6BjginSYi5gM3A/OBO4HJFVliMjAVWAAs7JxQakGqv0OLzcxqzWfU\n98Gtt8L3v1/+hr137TOORcaxyDgWmXraUxlwjjgCHnkE3nyz6JGYmZWT91T6qLUVzj0XPvKR3Fdl\nZpY776kUzGfXm5l1z0mljyZOhLvuKnoUPas8R6PRORYZxyLjWOTHSaWPDjgAVq2CZ58teiRmZuXj\nnko/nHoqjBsHkyfXZHVmZrlxT6UE6qEEZmZWBCeVfjj6aGhrg7feKnokXXO9OONYZByLjGORHyeV\nfth+e9hrL3jggaJHYmZWLu6p9NOFF8Kf/wxXXFGzVZqZVZ17KiXhvoqZ2Ts5qfTToYcmd4J88cWi\nR/JOrhdnHIuMY5FxLPLjpNJPgwfDUUfBzJlFj8TMrDzcU9kE11yTXLH4xhtrulozs6qpm5t01VoR\nSWXRImhpgaVLYdCgmq7azKwq3KgvkTFjYORIePTRokeyIdeLM45FxrHIOBb5cVLZRD4KzMwss9Hl\nL0lDgYiIP+c7pP4povwFSU/lwgvhwQdrvmozs01Ws56KpM2AE4BTgA+Q7NUIWAs8BPwMuKWQX/Iu\nFJVUVq+GHXeE9nYYPrzmqzcz2yS17Km0AQcD/wrsFhGjImIksFs67xDgvmoNpF4NHQrjx5frvvWu\nF2cci4xjkXEs8jO4h9eO7qrUlc57GHhY0ha5jayOdPRVTj656JGYmRWrx56KpE9GxM8knRIRpT4b\no6jyF8CCBcm96xctAlVtJ9LMLH+1PqR4tKSTgTHVWuFANHYsbLEFPPlk0SMxMytWt0lF0kXAcOAG\nYHg6bV2QynVosevFGcci41hkHIv8dJtUIuIS4BXg08Ar6bR1Y+JEmDGj6FGYmRXLPZUqWbUKRo+G\nJUvgXe8qbBhmZn1Ss56KpDuBBwHKnlDKYOut4S/+IrnNsJlZo+qpUX8tcJekr0navFYDqmdlKYG5\nXpxxLDKORcaxyE9PPZVfAAcB2wKPSvqKpC+njy9tzIdLulbSUklPVMy7WNIiSY+ljw9XvDZF0gJJ\nT0s6pmL+wZKeSF/7Xr++aQ0ce2w5koqZWVF666lsAZwHfBK4CVjX8drGNO4ljQfeAK6PiP3SeRcB\nqyLiO52W3YfkSLNDgJ2A2cAeERGS5gD/GBFzJN0BXBURMzq9v/ArxkQkfZX//m/YffdCh2JmtlGq\n3VPp9ox6SROB7wC3AwdGxB/7+uERcb+k5q4+vot5xwM3RsTbQLukhcA4Sc8BW0fEnHS560muSVa6\nfQIp2Vu56y6YPLno0ZiZ1V5PPZWvASdFxHkdCUXSxVVa7+clzZN0jaSmdN5oYFHFMotI9lg6z1+c\nzi+lMvRVXC/OOBYZxyLjWOSn2z2ViBjfxezjgYs3cZ0/BL6ePv8G8G/A6Zv4mQBMmjSJ5uZmAJqa\nmmhpaaG1tRXINqK8p48+upW//3uYNauNzTfPf32e7nm6Q1nGU+T03LlzSzWeIqfnzp1bqvHUcrqt\nrY1p06YBrP+9rKaeLn3/sYj4ead5cyOipU8rSMpft3f0VLp7TdL5ABFxefraDOAi4Dng3ojYO51/\nCnB4RJzR6bMK76l0GDcOLr8cJkwoeiRmZj2r5bW//k7SDEmVLeeDN3WFkkZVTJ4IdBwZdhvwcUlD\nJO0K7AHMiYglwOuSxkkSyRn+t2zqOPJUhhKYmVkRejqk+CPAj4D/knShpO2BbSUNl7RRt6OSdCPJ\nCZR7SXpB0mnAFZIelzQPOBw4J13ffOBmYD5wJzC5YtdjMjAVWAAs7HzkV9kUfWhx59JPI3MsMo5F\nxrHIT0/3UyEibpHUDvyGpO/RcUhxkNysq0cRcUoXs6/tYflLgUu7mP9b4B3ls7I69FB44QV48cXk\nEGMzs0bRU09lKOkRYMBXIuK/ajmwvipTTwWSG3YddxxMmlT0SMzMulfLnso8kj2ZA8ueUMqo6BKY\nmVkRekoqJ0bElIj4U81GM4Ace2xy3/q1a2u/bteLM45FxrHIOBb56SmpfEXSId29mB6NdV0OYxoQ\nxoyBUaPg0UeLHomZWe301FPZDzgXeD/we+AlksurjAT2Ijmq618johQ30S1bTwXg3HNh2DC4yPfM\nNLOSqnZPpccLSqYr3AI4EHgPyVFfzwHzImJ1tQZRDWVMKrNnwwUXwEMPFT0SM7Ou1fImXf8h6URg\nSEQ8HBE/j4ibI+KRsiWUsjrsMHjqKXj11dqu1/XijGORcSwyjkV+ertJVwtwh6R7JJ0n6YAajWtA\nGDoUPvShZI/FzKwR9Fr+AkjPpj8GmAjsD/wOmBERN+c7vI1XxvIXwPe/D489Btd2e8qnmVlxat5T\n6WIAImngbx4R36rWQDZVWZPKggXQ2gqLFiX3WzEzK5NanvzYpfSX+/NlSihlNnZsUgZ7sobHyLle\nnHEsMo5FxrHIT093fnyiu9eAETmMZUDquBvkjBmwX91cvczMrH96Ok9lKUkPZUUXLz8YEaW6VGJZ\ny18At90GV13lhr2ZlU/N7lEP/BoYFhGPdTGI+6o1gEYwYQJ88pPwxhvJyZBmZgNVT/dTOS0i7u/m\nta4uaW/d2HprOOQQqFUZ1/XijGORcSwyjkV++tyot/7xVYvNrBH0+ZDisipzTwVg3jz4279NDjE2\nMyuLwg8ptv7Zf/+kp7JwYdEjMTPLj5NKjXQcWnzXXfmvy/XijGORcSwyjkV+nFRqaOLE2iQVM7Oi\nuKdSQ6+8ArvtBi+/DFtsUfRozMzcU6lr7343vPe98MADRY/EzCwfTio1VosSmOvFGcci41hkHIv8\nOKnU2MSJPl/FzAYu91RqbM0a2HHH5KrFo0t19TQza0TuqdS5wYPhqKN8FJiZDUxOKgXIu6/ienHG\nscg4FhnHIj9OKgU49liYNQvWri16JGZm1ZVrT0XStcBHgJcjYr903nDg58B7gHbg5Ih4LX1tCnAa\nsBY4OyJmpvMPBqYBQ4E7IuILXayrLnoqHfbbD378Y3j/+4seiZk1snrrqVxHcqOvSucDsyJiT+Du\ndBpJ+wAfA/ZJ3/MDaf1d3X8InB4RewB7SOr8mXXHZ9eb2UCUa1JJ78fS+c6RHwWmp8+nAyekz48H\nboyItyOiHVgIjJM0Ctg6Iuaky11f8Z66leehxa4XZxyLjGORcSzyU0RPZURELE2fLyW73/1oYFHF\ncouAnbqYvzidX9cOOwyeegpefbXokZiZVU9PtxPOXUSEpKo1QiZNmkRzczMATU1NtLS00NraCmR/\nmZRl+qGH2th3X5g9u5WTT67u57e2thb+/TxdzukOZRlPUdMd88oynlpOt7W1MW3aNID1v5fVlPvJ\nj5KagdsrGvVPA60RsSQtbd0bEe+VdD5ARFyeLjcDuAh4Ll1m73T+KcDhEXFGp/XUVaMe4Oqr4Xe/\ng2uvLXokZtao6q1R35XbgFPT56cCt1TM/7ikIZJ2BfYA5kTEEuB1SePSxv2nK95T1zr6KtXOhZ3/\nKm1kjkXGscg4FvnJNalIuhF4ENhL0guSPgNcDhwt6RngiHSaiJgP3AzMB+4EJlfsekwGpgILgIUR\nMSCunjV2LGy5JTzxRNEjMTOrDl/7q2BnnQXNzXDuuUWPxMwa0UAof1kFX7XYzAYSJ5WCTZgAc+bA\nG29U7zNdL844FhnHIuNY5MdJpWDDhsEhh4C3cTMbCNxTKYGpU+Gyy+AnP4EPfKDo0ZhZI6l2T8VJ\npSR+9Ss480w4/XS46CIYMqToEZlZI3CjfoA68USYOxfmzUuuXDx/fv8/y/XijGORcSwyjkV+nFRK\nZORIuP12OOMM+NCH4KqrYN26okdlZrbxXP4qqYUL4dOfThr5110HY8YUPSIzG4hc/moQY8fC/fdD\nayscdBDcdFPRIzIz652TSokNHgxf+xrceSdccgmccgqs6Hx3mi64XpxxLDKORcaxyI+TSh04+GD4\n7W9hhx1g//1h9uyiR2Rm1jX3VOrMzJlw2mnwN38Dl1+eXJDSzKy/3FNpcMccA48/DkuWJHswv/td\n0SMyM8s4qdSh4cOTxv0//3NyQcpLL4U1a7LXXS/OOBYZxyLjWOTHSaVOSfCJTyS9lrvvhsMPh2ef\nLXpUZtbo3FMZANatS06U/Na3kr2Wz342STpmZr3xtb+60chJpcNTT8GnPpWcKDl1KowYUfSIzKzs\n3Ki3bu27LzzyCGyzTRstLXDrrUWPqHiunWcci4xjkR8nlQFmyBD43OfgF7+Ac85JSmGrVhU9KjNr\nFC5/DWCrViWJ5d574frr4YMfLHpEZlY27ql0w0mle7femlz5+DOfgYsv9r1azCzjnor1qnO9+Pjj\nk3u1PPkkjBuXNPQbhWvnGcci41jkx0mlQYwYkeyxnHVWck7Ld7/re7WYWfW5/NWAnn02uVfLllvC\ntGmw885Fj8jMiuLyl22y3XeH3/wGjjwyuX7YDTeA87GZVYOTygC0MfXiwYPhq1+FGTPgm99M7tXy\n6qv5j63WXDvPOBYZxyI/TioN7qCDkuuHjRwJBxwAs2YVPSIzq2fuqdh6s2cnhx2feGJyr5attip6\nRGaWtwHTU5HULulxSY9JmpPOGy5plqRnJM2U1FSx/BRJCyQ9LemYosY9kB11VHKvluXLk17Lo48W\nPSIzqzdFlr8CaI2IAyPi0HTe+cCsiNgTuDudRtI+wMeAfYCJwA8kuXTXjU2pF2+3XdK4v/BCOO64\npN9Sea+WeuPaecaxyDgW+Sn6h7nzLtdHgenp8+nACenz44EbI+LtiGgHFgKHYrk55ZTkrpJtbTB+\nPCxcWPSIzKweFNZTkfQHYCWwFvg/EfFjSSsiYrv0dQGvRsR2kr4PPBwRP0tfmwrcGRG/rPg891Ry\nsG4dXH01fP3ryb1aPvc536vFbCAZMD0V4IMRcSDwYeAsSeMrX0wzRE9ZwhmkBjbbDM4+Ozmv5Uc/\ngr/+a1iypOhRmVlZDS5qxRHxUvrfZZJ+RVLOWippZEQskTQKeDldfDFQed73mHTeBiZNmkRzczMA\nTU1NtLS00NraCmQ11EaYrqwXV+vzX365jSuugPvua6WlBc46q43x48vxfXua7hyTosdT5PTcuXP5\n4he/WJrxFDl95ZVXNvTvw7Rp0wDW/15WUyHlL0lbAYMiYpWkdwEzgUuAo4BXIuIKSecDTRFxftqo\nv4Ek8ewEzAbGVta7XP7KtLW1rd+Y8vDgg8llXg47DE4/PblI5RZb5La6TZJ3LOqJY5FxLDID4tL3\nknYFfpVODgZ+FhGXSRoO3AzsArQDJ0fEa+l7vgqcBqwBvhARd3X6TCeVGnrjDfj2t+HOO+Hpp+ED\nH0gu+3LEEXDggTBoUNEjNLONMSCSSh6cVIqzYgXcdx/cfTfccw+89FJyJeSOJLP33m7um5XVQGrU\nW04q+wm1sN12cMIJ8P3vJ/dqeeopOOkkeOyx5FyX0aPhk5+Ea6+F556r6dBqHosycywyjkV+CmvU\n28A1ahR84hPJIwL+93+TvZhZs2DKFBg2LNuLOeII2HHHokdsZtXi8pfVVESyJ9NRKrvvvuR+Lkce\nmTw+9CHYdtuiR2nWONxT6YaTSn1asya5SvI99ySJ5pFHYN99kz2YI49MDgDYcsuiR2k2cLmnYr2q\np3rx4MHJIclTpiRXSV62DC67LDl67IILYIcdkgTzzW/CQw/1/Tpk9RSLvDkWGcciP04qVipDh8KE\nCfCNbySmrGgiAAAHo0lEQVTnw7z0Enz5y8kNxM48E979bvirv4LvfhfmzUsuI2Nm5eHyl9WVZcuS\ni1x29GRWrEiSUEfjf+xYH75s1hfuqXTDSaUxPf98klw6ejKDBm14ZNlOOxU9QrNyc0/FetVI9eJd\ndoFJk+D662HRouSw5UMOgVtvhf33h112aeOss+CXv0xKaI2skbaL3jgW+fF5KjZgSLDXXslj8uSk\n33LNNbByJUydmtwqeezYJOnstlvy2H335L9NTb1/vpn1zuUvaxhvvQVz5iS3TP7DH7LHs8/C5ptv\nmGQqk86YMclRamYDkXsq3XBSsf6KgOXLN0wylUln6dLkBM3OSafj+TbbFP0NzPrPSaUbTioZX9Y7\nU41YrF6dXLOsu6QzdGj3ezk77VSeKzZ7u8g4FplqJxXv1Jv1YujQrFfTWQS8/PKGSeb++2H69OT5\n8uXJwQRdJZxdd4Wtt6799zHLk/dUzHK0enVyQc3OPZyO58OGdZ1wdtstubrzZj4+03Lm8lc3nFSs\n3kQk/ZrO5bSO6RUr4D3vSZJMczOMGJFctqbzY/jw8pTYrP44qXTDSSXjenGmnmPxxz9Ce3uSZNrb\nkzLbsmXvfKxcmRwSvcMOsP32XSeeHXaA9vY2jjuule23hyFDiv52xarn7aLa3FMxaxBbbQX77JM8\nerJ2LbzyyjuTzfLlsGBBcg21ZcuSMtwFFyTLbrXVO5NOTwlpq61q852t/nlPxazBRMBrr3W919M5\nKXU832yz7hNOV8lom218DbZ64fJXN5xUzPIRAW++2XsSqny89VaSbLbbLkkwHY9tt+1+uvNrw4Y5\nMdWCk0o3nFQyrhdnHItMLWOxenWyp/Paa/D668lj5crseW/TK1fCn/6UHHLdn4RUOf2ud70zOXm7\nyLinYmalN3RocnmbMWP6/xlr18KqVb0noPb2nl9fvXrD5LTNNsnN3nbddcMEtMMOcMYZVQtBw/Ke\nipkNaGvWZMmppwQlwde/XvRoa8/lr244qZiZ9Z3vp2K98r0iMo5FxrHIOBb5cVIxM7OqcfnLzKyB\nufxlZmalVTdJRdJESU9LWiDpvKLHU2auF2cci4xjkXEs8lMXSUXSIOBqYCKwD3CKpL2LHVV5zZ07\nt+ghlIZjkXEsMo5FfuoiqQCHAgsjoj0i3gZuAo4veEyl9dprrxU9hNJwLDKORcaxyE+9JJWdgBcq\nphel88zMrETqJan4sK4+aG9vL3oIpeFYZByLjGORn7o4pFjS+4GLI2JiOj0FWBcRV1QsU/4vYmZW\nQg13mRZJg4HfA0cCLwJzgFMi4n8KHZiZmW2gLq5SHBFrJP0jcBcwCLjGCcXMrHzqYk/FzMzqQ2kb\n9RtzsqOkq9LX50k6sLf3ShouaZakZyTNlNRUi++yqXKKxcWSFkl6LH1MrMV32RSbGIdrJS2V9ESn\n5Rtxm+guFnW3TUD/YyFpZ0n3SnpK0pOSzq5YvqG2i15i0bftIiJK9yApcS0EmoHNgbnA3p2WOQ64\nI30+Dni4t/cC3wb+KX1+HnB50d+1wFhcBHyp6O9Xizik0+OBA4EnOr2nobaJXmJRV9vEpsYCGAm0\npM+HkfRt39uI20UvsejTdlHWPZWNOdnxo8B0gIh4BGiSNLKX965/T/rfE/L9GlWRVywA6ukO4JsS\nByLifmBFF5/baNtET7GA+tomoP+xGBERSyJibjr/DeB/yM5/a6TtordYQB+2i7ImlY052bG7ZUb3\n8N4REbE0fb4UGFGtAecor1gAfD7dBb6mDnbvNyUOPWm0baI39bRNQP9jscGNjiU1k+y9PZLOaqTt\nordYQB+2i7ImlY09emBjsqe6+rxI9uvq4SiFasai0g+BXYEW4CXg3/r4/lrrbxw2+v9xA2wTvb2v\n3rYJqEIsJA0D/hP4QvpX+oYLNtB20U0s+rRdlDWpLAZ2rpjemSSj9rTMmHSZruYvTp8v7SgBSBoF\nvFzFMeelmrFY/96IeDlSwFSSXecy628cFtOzRtomeoxFHW4TsImxkLQ58EvgpxFxS8UyDbdddBeL\nvm4XZU0qjwJ7SGqWNAT4GHBbp2VuA/4O1p9x/1q6u9rTe28DTk2fnwrcQvnlEov0H0qHE4EnKLdN\niUNPGm2b6FYdbhOwCbGQJOAaYH5EXNnFexpmu+gpFn3eLoo+YqGHIxk+THIEwkJgSjrvH4B/qFjm\n6vT1ecBBPb03nT8cmA08A8wEmor+ngXG4nrg8XT5W0hqyIV/1xzjcCPJ1Rj+TFJT/kwDbxPdxaLu\ntolNiQVwGLCO5Cipx9LHxEbcLnqJRZ+2C5/8aGZmVVPW8peZmdUhJxUzM6saJxUzM6saJxUzM6sa\nJxUzM6saJxUzM6saJxWznChxf+WlwiWdJOnOIsdlliefp2KWI0n7Ar8guUDf5sDvgGMj4n8LHZhZ\nTpxUzHIm6QrgTZL7VKyMiG8VPCSz3DipmOVM0lYkl71YDfxFJPe6MBuQBhc9ALOBLiL+KOkmYJUT\nig10btSb1cY66uOeHGabxEnFzMyqxknFrHa8p2IDnhv1ZmZWNd5TMTOzqnFSMTOzqnFSMTOzqnFS\nMTOzqnFSMTOzqnFSMTOzqnFSMTOzqnFSMTOzqvn/ShJ1sw8tyPEAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb1dab70>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NtoG from graphical integration: 8.62 \n",
+ "\n",
+ "HtoG: 1.4 m\n",
+ "The depth of packing recquired is 12.84 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8: Page 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.8\n",
+ "# Page: 317\n",
+ "\n",
+ "print'Illustration 8.8 - Page: 317\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#***Data***\n",
+ "# a:NH3 b:air c:H2O\n",
+ "ya = 0.416;# [mole fraction]\n",
+ "yb = 0.584;# [mole fraction]\n",
+ "G1 = 0.0339;# [kmol/square m.s]\n",
+ "L1 = 0.271;# [kmol/square m.s]\n",
+ "TempG1 = 20;# [OC]\n",
+ "#********#\n",
+ "\n",
+ "# At 20 OC\n",
+ "Ca = 36390;# [J/kmol]\n",
+ "Cb = 29100;# [J/kmol]\n",
+ "Cc = 33960;# [J/kmol]\n",
+ "lambda_c = 44.24*10**6;# [J/kmol]\n",
+ "# Enthalpy base = NH3 gas, H2O liquid, air at 1 std atm.\n",
+ "Tempo = 20;# [OC]\n",
+ "lambda_Ao = 0;# [J/kmol]\n",
+ "lambda_Co = 44.24*10**6;# [J/kmol]\n",
+ "\n",
+ "# Gas in:\n",
+ "Gb = G1*yb;# [kmol air/square m.s]\n",
+ "Ya1 = ya/(1-ya);# [kmol NH3/kmol air]\n",
+ "yc1 = 0;# [mole fraction]\n",
+ "Yc1 = yc1/(1-yc1);# [kmol air/kmol NH]\n",
+ "# By Eqn 8.58:\n",
+ "Hg1 = (Cb*(TempG1-Tempo))+(Ya1*(Ca*(TempG1-Tempo))+lambda_Ao)+(Yc1*(Cc*(TempG1-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "\n",
+ "# Liquid in:\n",
+ "xa1 = 0;# [mole fraction]\n",
+ "xc1 = 1;# [mole fraction]\n",
+ "Hl1 = 0;# [J/kmol air]\n",
+ "\n",
+ "#Gas out:\n",
+ "Ya2 = Ya1*(1-0.99);# [kmol NH3/kmol air]\n",
+ "# Assume:\n",
+ "TempG2 = 23.9;# [OC]\n",
+ "yc2 = 0.0293;\n",
+ "def f(Yc2):\n",
+ " return yc2-(Yc2/(Yc2+Ya2+1))\n",
+ "Yc2 = fsolve(f,0.002);# [kmol H2O/kmol air]\n",
+ "Hg2 = (Cb*(TempG2-Tempo))+(Ya2*(Ca*(TempG2-Tempo))+lambda_Ao)+(Yc2*(Cc*(TempG2-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "\n",
+ "# Liquid out:\n",
+ "Lc = L1-(Yc1*Gb);# [kmol/square m.s]\n",
+ "La = Gb*(Ya1-Ya2);# [kmol/square m.s]\n",
+ "L2 = La+Lc;# [kmol/square m.s]\n",
+ "xa = La/L2;\n",
+ "xc = Lc/L2;\n",
+ "# At xa & tempo = 20 OC\n",
+ "delta_Hs = -1709.6*1000;# [J/kmol soln]\n",
+ "\n",
+ "# Condition at the bottom of the tower:\n",
+ "# Assume:\n",
+ "TempL = 41.3;# {OC}\n",
+ "# At(TempL+TempG1)/2:\n",
+ "Cl = 75481.0;# [J/kmol]\n",
+ "def f40(Cl):\n",
+ " return Hl1+Hg1-((Gb*Hg2)+(L2*(Cl*(TempL-Tempo)+delta_Hs)))\n",
+ "Cl = fsolve(f40,7);# [J/kmol.K]\n",
+ "\n",
+ "# For the Gas:\n",
+ "MavG = 24.02;# [kg/kmol]\n",
+ "Density_G = 0.999;# [kg/cubic m]\n",
+ "viscosity_G = 1.517*10**(-5);# [kg/m.s]\n",
+ "kG = 0.0261;# [W/m.K]\n",
+ "CpG = 1336;# [J/kg.K]\n",
+ "Dab = 2.297*10**(-5);# [square m/s]\n",
+ "Dac = 3.084*10**(-5);# [square m/s]\n",
+ "Dcb = 2.488*10**(-5);# [square m/s]\n",
+ "PrG = CpG*viscosity_G/kG;\n",
+ "\n",
+ "# For the liquid:\n",
+ "MavL = 17.97;# [kg/kmol]\n",
+ "Density_L = 953.1;# [kg/cubic m]\n",
+ "viscosity_L = 6.408*10**(-4);# [kg/m.s]\n",
+ "Dal = 3.317*10**(-9);# [square m/s]\n",
+ "kl = 0.4777;# [W/m.K]\n",
+ "ScL = viscosity_L/(Density_L*Dal);\n",
+ "PrL = 5.72;\n",
+ "sigma = 3*10**(-4);\n",
+ "G_prime = G1*MavG;# [kg/square m.s]\n",
+ "L_prime = L2*MavL;# [kg/square m.s]\n",
+ "# From data of Chapter 6:\n",
+ "Ds = 0.0472;# [m]\n",
+ "a = 57.57;# [square m/cubic m]\n",
+ "shiLt = 0.054;\n",
+ "e = 0.75;\n",
+ "# By Eqn. 6.71:\n",
+ "eLo = e-shiLt;\n",
+ "# By Eqn. 6.72:\n",
+ "kL = (25.1*Dal/Ds)*(Ds*L_prime/viscosity_L)**0.45*ScL**0.5;# [m/s]\n",
+ "c = Density_L/MavL;# [kmol/cubic m]\n",
+ "Fl = kL*c;# [kmol/cubic m]\n",
+ "# The heat mass transfer analogy of Eqn. 6.72:\n",
+ "hL = (25.1*kl/Ds)*(Ds*L_prime/viscosity_L)**0.45*PrL**0.5;# [m/s]\n",
+ "# The heat transfer analogy of Eqn. 6.69:\n",
+ "hG = (1.195*G_prime*CpG/PrG**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [W/square m.K]\n",
+ "# To obtain the mass transfer coeffecients:\n",
+ "Ra = 1.4;\n",
+ "Rc = 1-Ra;\n",
+ "# From Eqn. 8.83:\n",
+ "Dam = (Ra-ya)/(Ra*((yb/Dab)+((ya+yc1)/Dac))-(ya/Dac));# [square m/s]\n",
+ "Dcm = (Rc-yc1)/(Rc*((yb/Dcb)+((ya+yc1)/Dac))-(yc1/Dac));# [square m/s]\n",
+ "ScGa = viscosity_G/(Density_G*Dam);\n",
+ "ScGc = viscosity_G/(Density_G*Dcm);\n",
+ "# By Eqn. 6.69:\n",
+ "FGa = (1.195*G1/ScGa**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [kmol/square m.K]\n",
+ "FGc = (1.195*G1/ScGc**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [kmol/square m.K]\n",
+ "Ra = Ra-0.1;\n",
+ "# From Eqn. 8.80:\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " def f41(xai):\n",
+ " return Ra-(Ra-ya)*((Ra-xa)/(Ra-xai))**(Fl/FGa)\n",
+ " xai = numpy.arange(xa,0.10,0.01)\n",
+ " plt.plot(xai,f41(xai))\n",
+ " Ra = Ra+0.1;\n",
+ "\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Mole fraction NH3 in the liquid, xa\");\n",
+ "ylabel(\"Mole fraction NH3 in the gas ya\");\n",
+ "title(\"Operating Line curves\");\n",
+ "plt.show()\n",
+ "Rc = Rc-0.1;\n",
+ "# From Eqn. 8.81:\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " def f42(xci):\n",
+ " return Rc-(Rc-yc1)*((Rc-xc)/(Rc-xci))**(Fl/FGc)\n",
+ " xci = numpy.arange(xc,0.85,-0.01);\n",
+ " plot(xci,f42(xci))\n",
+ " Rc = Rc+0.1;\n",
+ "\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Mole fraction H2O in the liquid, xc\");\n",
+ "ylabel(\"Mole fraction H2O in the gas, yc\");\n",
+ "title(\"Operating line Curves\");\n",
+ "plt.show()\n",
+ "# Assume:\n",
+ "Tempi = 42.7;# [OC]\n",
+ "# The data of Fig. 8.2 (Pg 279) & Fig 8.4 (Pg 319) are used to draw the eqb curve of Fig 8.25 (Pg 320).\n",
+ "# By interpolation of operating line curves with eqb line and the condition: xai+xci = 1;\n",
+ "Ra = 1.38;\n",
+ "Rc = 1-Ra;\n",
+ "xai = 0.0786;\n",
+ "yai = f41(xai);\n",
+ "xci = 1-xai;\n",
+ "yci = f42(xci);\n",
+ "# From Eqn. 8.77:\n",
+ "dYa_By_dZ = -(Ra*FGa*a/Gb)*math.log((Ra-yai)/(Ra-ya));# [kmol H2O/kmol air]\n",
+ "# From Eqn. 8.78:\n",
+ "dYc_By_dZ = -(Rc*FGc*a/Gb)*math.log((Rc-yci)/(Rc-yc1));# [kmol H2O/kmol air]\n",
+ "# From Eqn. 8.82:\n",
+ "hGa_prime = -(Gb*((Ca*dYa_By_dZ)+(Cc*dYc_By_dZ)))/(1-exp(Gb*((Ca*dYa_By_dZ)+(Cc*dYc_By_dZ))/(hG*a)));# [W/cubic m.K]\n",
+ "# From Eqn. 8.79:\n",
+ "dtG_By_dZ = -(hGa_prime*(TempG1-Tempi))/(Gb*(Cb+(Ya1*Ca)+(Yc1*Cc)));# [K/m]\n",
+ "# When the curves of Fig. 8.2 (pg 279) & 8.24 (Pg 319) are interpolated for concentration xai and xci, the slopes are:\n",
+ "mar = 0.771;\n",
+ "mcr = 1.02;\n",
+ "lambda_c = 43.33*10**6;# [J/kmol]\n",
+ "# From Eqn. 8.3:\n",
+ "Hai = Ca*(Tempi-Tempo)+lambda_Ao-(mar*lambda_c);# [J/kmol]\n",
+ "Hci = Cc*(Tempi-Tempo)+lambda_Co-(mcr*lambda_c);# [J/kmol]\n",
+ "# From Eqn. 8.76\n",
+ "Tempi2 = TempL+(Gb/(hL*a))*(((Hai-Ca*(TempG1-Tempo)-lambda_Ao)*dYa_By_dZ)+((Hci-Cc*(TempG1-Tempo)-lambda_Co)*dYc_By_dZ)-((Cb+(Ya1*Ca)+(Yc1*Cc))*dtG_By_dZ));# [OC]\n",
+ "# The value of Tempi obtained is sufficiently close to the value assumed earlier.\n",
+ "\n",
+ "deltaYa=-0.05;\n",
+ "# An interval of deltaYa up the tower\n",
+ "deltaZ = deltaYa/(dYa_By_dZ);# [m]\n",
+ "deltaYc = (dYc_By_dZ*deltaZ);\n",
+ "# At this level:\n",
+ "Ya_next = Ya1+deltaYa;# [kmol/kmol air]\n",
+ "Yc_next = Yc1+deltaYc;# [kmol H2O/kmol air]\n",
+ "tG_next = TempG1+(dtG_By_dZ*deltaZ);# [OC]\n",
+ "L_next = L1+Gb*(deltaYa+deltaYc);# [kmol/square m.s]\n",
+ "xa_next = ((Gb*deltaYa)+(L1*xa))/L_next;# [mole fraction NH3]\n",
+ "Hg_next = (Cb*(tG_next-Tempo))+(Ya_next*(Ca*(tG_next-Tempo))+lambda_Ao)+(Yc_next*(Cc*(tG_next-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "Hl_next = (L1*Hl1)+(Gb*(Hg_next-Hg2)/L_next);# [J/kmol]\n",
+ "# The calculation are continued where the specified gas outlet composition are reached.\n",
+ "# The packed depth is sum of all deltaZ\n",
+ "Z = 1.58;# [m]\n",
+ "print\"The packed depth is: \",Z,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.8 - Page: 317\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nSUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xbb73940>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\njXxqolkTOQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xb54be80>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The packed depth is: 1.58 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 135
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9: Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.9\n",
+ "# Page: 327\n",
+ "\n",
+ "print'Illustration 8.9 - Page: 327\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# C1=CH4 C2=C2H6 C3=n-C3H8 C4=C4H10\n",
+ "Abs=0.15;# [Tot\n",
+ "\n",
+ "# Illustration 10.8\n",
+ "# Page: 539\n",
+ "\n",
+ "print'Illustration 10.8 - Page: 539\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:acetic acid c:Water d:Isopropylether layer\n",
+ "# Water solution (continuous):\n",
+ "C = 8000.0;# [kg/h]\n",
+ "xCn = 0.175;# [mass fraction]\n",
+ "Density_c = 1009;# [kg/cubic m]\n",
+ "viscosity_c = 3.1*10**(-3);# [kg/m.s]\n",
+ "Dc = 1.24*10**(-9);# [square m/s]\n",
+ "\n",
+ "# Isopropyl Ethr Layer:\n",
+ "D = 20000.0;# [kg/h]\n",
+ "xDnPlus1 = 0.05;# [mass fraction]\n",
+ "Density_d = 730;# [kg/cubic m]\n",
+ "viscosity_d = 0.9*10**(-3);# [kg/m.s]\n",
+ "Dd = 1.96*10**(-9);# [square m/s]\n",
+ "\n",
+ "sigma = 0.013;# [/N/m]\n",
+ "m = 2.68;# [Distributon coeffecient]\n",
+ "#*******#\n",
+ "\n",
+ "Ma = 60.1;\n",
+ "g = 9.81;# [m/square s]\n",
+ "cCn = xCn*Density_c/Ma;# [kmol/cubic m]\n",
+ "cDnPlus1 = xDnPlus1*Density_d/Ma;# [kmol/cubic m]\n",
+ "mCD = m*(Density_c/Density_d);# [(kmol/cubic min ether)/(kmol/cubic m in water)]\n",
+ "\n",
+ "# Perforations:\n",
+ "Do = 0.006;# [m]\n",
+ "pitch = 0.015;# [m]\n",
+ "qD = D/(3600.0*Density_d);# [cubic m/s]\n",
+ "delta_Density = Density_c-Density_d;# [kg/cubic m]\n",
+ "Value1 = Do/(sigma/(delta_Density*g))**0.5;\n",
+ "if Value1<0.1785:\n",
+ " # From Eqn. 10.74(a):\n",
+ " doBydj = (0.485*Value1**2)+1;\n",
+ "else:\n",
+ " # From Eqn. 10.74(b)\n",
+ " doBydj = (1.51*Value1)+0.12;\n",
+ "\n",
+ "dj = Do/doBydj;# [m]\n",
+ "Vomax = 2.69*((dj/Do)**2)*(sigma/(dj*((0.5137*Density_d)+(0.4719*Density_c))))**0.5;# [m/s]\n",
+ "# Since Vomax is less than 0.1:\n",
+ "Vo = 0.1;# [m/s]\n",
+ "Ao = qD/Vo;# [square m]\n",
+ "No = Ao/(math.pi*Do**2.0/4);# [square m]\n",
+ "# From Eqn. 6.30:\n",
+ "# Plate area for perforation:\n",
+ "Aa = Ao/(0.907*(Do/pitch)**2);# [square m]\n",
+ "\n",
+ "# Downspout:\n",
+ "dp = 0.0007;# [m]\n",
+ "# From Eqn. 10.75:\n",
+ "U = Density_c**2*sigma**3/(g*viscosity_c**4*delta_Density);\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 1.515;\n",
+ "abcissa = 0.62;\n",
+ "def f74(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vt = fsolve(f74,7);# [m/s]\n",
+ "Vd = Vt;# [m/s]\n",
+ "qC = C/(Density_c*3600);# [cubic m/s]\n",
+ "Ad = qC/Vd;# [square m]\n",
+ "# From Table 6.2 (Pg 169):\n",
+ "# Allowing for supports and unperforated area:\n",
+ "At = Aa/0.65;# [square m]\n",
+ "T = (At*4/math.pi)**0.5;# [m]\n",
+ "An = At-Ad;# [square m]\n",
+ "\n",
+ "\n",
+ "# Drop Size:\n",
+ "alpha1 = 10.76;\n",
+ "alpha2 = 52560;\n",
+ "alpha3 = 1.24*10**6;\n",
+ "alpha4 = 3.281;\n",
+ "abcissa = (alpha2*sigma*Do/delta_Density)+(alpha3*Do**1.12*Vo**0.547*viscosity_c**0.279/delta_Density**1.5);\n",
+ "Parameter = alpha1*Density_d*Vo**2/(delta_Density);\n",
+ "ordinate = 0.024;\n",
+ "dp = ordinate/alpha4;\n",
+ "\n",
+ "# Coalesced layer:\n",
+ "Vn = qD/An;# [m/s]\n",
+ "# From Eqn. 10.80:\n",
+ "ho = (Vo**2-Vn**2)*Density_d/(2*g*0.67**2*delta_Density);# [m]\n",
+ "hD = ho;\n",
+ "# From Eqn. 10.82:\n",
+ "hC = 4.5*Vd**2*Density_c/(2*g*delta_Density);# [m]\n",
+ "# From Eqn. 10.78:\n",
+ "h = hC+hD;\n",
+ "# Since this is very shallow, increase it by placing an orifice at the bottom of the downspout.\n",
+ "# VR: Velocity through the restriction.\n",
+ "# hR: Corresponding depth of the coalesced layer.\n",
+ "# Assume:\n",
+ "Vr = 0.332;# [m/s]\n",
+ "hr = (Vr**2-Vd**2)*Density_c/(2*0.67**2*delta_Density);\n",
+ "Ar = qC/Vr;# [square m]\n",
+ "dr = (4*Ar/math.pi)**0.5;# [m]\n",
+ "h = h+hr;# [m]\n",
+ "# The above results are satisfacyory.\n",
+ "Z = 0.35;# [m]\n",
+ "# Lead the downspout apron to within 0.1 m of the tray below.\n",
+ "\n",
+ "# Dispersed-phase holdup:\n",
+ "# From Eqn. 10.48:\n",
+ "Vsphi_D = Vn;\n",
+ "# From Fig. 10.47 (Pg 534):\n",
+ "ordinate = 165.2;\n",
+ "abcissa = 30.0;\n",
+ "def f75(Vt):\n",
+ " return abcissa-(dp*Vt*Density_c/(viscosity_c*U**0.15))\n",
+ "Vtl = fsolve(f75,7);# [m/s]\n",
+ "# For solids:\n",
+ "# From Fig. 10.48 (Pg 536):\n",
+ "abcissa = dp/(3*viscosity_c**2/(4*Density_c*delta_Density*g))**(1.0/3);\n",
+ "phi_D = [0, 0.1 ,0.2 ,0.3];\n",
+ "# Corresponding ordinates, from Fig. 10.48 (Pg 536):\n",
+ "ordinate1 = [8.8, 5.9 ,4.3 ,3.0];\n",
+ "Value1 = 1.0/(4*viscosity_c*delta_Density*g/(3*Density_c**2))**(1.0/3);\n",
+ "Val = numpy.zeros((size=(4,6));\n",
+ "# Val = [phi_D ordinate Vs(1-phi_D) (Vs for solids) Vs/Vt (Vs for liquids) (Vs*phi_D (for liquids))]\n",
+ "for i in range(1,4):\n",
+ " Val[i,0] = phi_D[i];\n",
+ " Val[i,1] = ordinate1[i];\n",
+ " Val[i,2] = Val[i,1)/Value1;\n",
+ " Val[i,3] = Val[i,2)/(1-Val[i,0]);\n",
+ " Val[i,4] = Val[i,3]/Val[0,3];\n",
+ " Val[i,5] = Vtl*Val[i,4];\n",
+ " Val[i,6] = Val[i,5]*Val[i,0];\n",
+ "\n",
+ "\n",
+ "# By Interpolation:\n",
+ "Phi_D = 0.1;\n",
+ "# Mass transfer:\n",
+ "thetha_f = (math.pi*(dp**3)/6.0)/(qD/No);# [s]\n",
+ "# From Eqn. 10.87:\n",
+ "const = 1.5;\n",
+ "kLDf = const*(Dd/(math.pi*thetha_f))**0.5;# [m/s]\n",
+ "# From Eqn. 10.86\n",
+ "KLDf = 1.0/((1/kLDf)*(1+((1/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# The ordinate of Fig. 10.47 for the drops larger than 70. Hence mass transfer coeffecient during drop rise is given by Eqn. 10.89:\n",
+ "# From Eqn. 10.91:\n",
+ "b = 1.052*dp**0.225;\n",
+ "# From Eqn. 10.90:\n",
+ "omega = (1.0/(2*math.pi))*math.sqrt(192*sigma*b/(dp**3*((3*Density_d)+(2*Density_c))));# [1/s]\n",
+ "del = 0.2;\n",
+ "kLDr = sqrt((4*Dd*omega/%pi)*(1+del+(1/2)*del**2));\n",
+ "KLDr = 1.0/1/((1/kLDr)*(1+((1/mCD)*(Dd/Dc)**0.5)));# [m/s]\n",
+ "# From Eqn. 10.98:\n",
+ "EMD = ((4.4*KLDf/Vo)*(dp/Do)**2)+(6*KLDr*Phi_D*(Z-h)/(dp*Vn))/(1+((0.4*KLDf/Vo)*(dp/Do)**2)+(3*KLDr*Phi_D*(Z-h)/(dp*Vn)));\n",
+ "print\"Stage Efficiency: \",EMDal absorption,kmol]\n",
+ "T=25;# [OC]\n",
+ "y1=0.7;# [mol fraction]\n",
+ "y2=0.15;# [mol fraction]\n",
+ "y3=0.10;# [mol fraction]\n",
+ "y4=0.05;# [mol fraction]\n",
+ "x1=0.01;# [mol fraction]\n",
+ "x_involatile=0.99;# [mol fraction]\n",
+ "L_by_G=3.5;# [mol liquid/mol entering gas]\n",
+ "#******#\n",
+ "\n",
+ "LbyG_top=L_by_G/(1-y2);\n",
+ "LbyG_bottom=(L_by_G+y2)/1;\n",
+ "LbyG_av=(LbyG_top+LbyG_bottom)/2;\n",
+ "# The number of eqb. trays is fixed by C3 absorption:\n",
+ "# For C3 at 25 OC;\n",
+ "m=4.10;\n",
+ "A=LbyG_av/m;\n",
+ "Frabs=0.7;# [Fractional absorption]\n",
+ "X0=0;\n",
+ "# From Eqn. 8.109:\n",
+ "def f43(Np):\n",
+ " return Frabs-((A**Np)-A)/((A**Np)-1)\n",
+ "Np=fsolve(f43,2);\n",
+ "print\"Number of trays required is \\n\",round(Np,2)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.9 - Page: 327\n",
+ "\n",
+ "\n",
+ "Number of trays required is \n",
+ "3.57\n"
+ ]
+ }
+ ],
+ "prompt_number": 105
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter8_1.ipynb b/Mass_-_Transfer_Operations/Chapter8_1.ipynb
new file mode 100755
index 00000000..727729f8
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter8_1.ipynb
@@ -0,0 +1,1312 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:43251d921fc8d8fdce5626d1c526ed83cb3073914f200034a16dd6e1031bf994"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Gas Absorption"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1: Page 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.1\n",
+ "# Page: 278\n",
+ "\n",
+ "print'Illustration 8.1 - Page: 278\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "P_star = 2*10**(5);# [N/square m]\n",
+ "X_methane = 0.6;\n",
+ "X_ethane = 0.2;\n",
+ "X_propane = 0.08;\n",
+ "X_nbutane = 0.06;\n",
+ "X_npentane = 0.06;\n",
+ "#******#\n",
+ "\n",
+ "MoleFraction = [0.6, 0.2 ,0.08, 0.06 ,0.06]\n",
+ "Heading = [\"Component\", \"Equilibrium Partial Pressure\", \"Vapour Pressue \" ,\"Mole Fraction\"];\n",
+ "Component = [\"Methane\", \"Ethane \" ,\"Propane\" ,\"n-Butane\", \"n-Pentane\"];\n",
+ "VapPressure = [0 ,42.05, 8.96, 2.36 ,0.66];# [N/square m]\n",
+ "Sum = 0;\n",
+ "\n",
+ "print Heading[0],\"\\t \\t \\t \\t\",Heading[1],\"\\t \\t \\t \\t\",Heading[2],\"\\t \\t \\t \\t\",Heading[3],\"\\t \\n\"\n",
+ "\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " print \"\\n \",Component[i],\" \\t \\t \\t \\t \\t\",(\"{:.2e}\".format(MoleFraction[i]*P_star)),\"\\t \\t \\t \\t \\t \\t \\t \\t \",(\"{:.2e}\".format(VapPressure[i]*10**(5))),\n",
+ " if VapPressure[i]==0:\n",
+ " Sum = Sum+0;\n",
+ " else:\n",
+ " \n",
+ " print \"\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t\",(\"{:.2e}\".format((MoleFraction[i]*P_star)/(VapPressure[i]*10**(5)))),\"\\t\",\n",
+ " Sum = Sum+(MoleFraction[i]*P_star)/(VapPressure[i]*10**(5))\n",
+ "\n",
+ "\n",
+ "\n",
+ "print\"\\n Mole Fraction Of solvent Oil is \",round(1-Sum,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.1 - Page: 278\n",
+ "\n",
+ "\n",
+ "Component \t \t \t \tEquilibrium Partial Pressure \t \t \t \tVapour Pressue \t \t \t \tMole Fraction \t \n",
+ "\n",
+ "\n",
+ " Methane \t \t \t \t \t1.20e+05 \t \t \t \t \t \t \t \t 0.00e+00 \n",
+ " Ethane \t \t \t \t \t4.00e+04 \t \t \t \t \t \t \t \t 4.20e+06 \t \t \t \t \t \t \t \t \t \t9.51e-03 \t\n",
+ " Propane \t \t \t \t \t1.60e+04 \t \t \t \t \t \t \t \t 8.96e+05 \t \t \t \t \t \t \t \t \t \t1.79e-02 \t\n",
+ " n-Butane \t \t \t \t \t1.20e+04 \t \t \t \t \t \t \t \t 2.36e+05 \t \t \t \t \t \t \t \t \t \t5.08e-02 \t\n",
+ " n-Pentane \t \t \t \t \t1.20e+04 \t \t \t \t \t \t \t \t 6.60e+04 \t \t \t \t \t \t \t \t \t \t1.82e-01 \t\n",
+ " Mole Fraction Of solvent Oil is 0.74\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2: Page 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.2\n",
+ "# Page: 286\n",
+ "\n",
+ "print'Illustration 8.2 - Page: 286\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#****Data****#\n",
+ "# Absorber:\n",
+ "G = 0.250;# [cubic m/s]\n",
+ "Temp1 = 273+26.0;# [K]\n",
+ "Pt = 1.07*10**(5);# [N/square m]\n",
+ "y1 = 0.02;\n",
+ "x2 = 0.005;\n",
+ "#******#\n",
+ "\n",
+ "G1 = G*(273.0/Temp1)*(Pt/(1.0133*10**(5)))*(1/22.41);# [kmol/s]\n",
+ "Y1 = y1/(1-y1);# [kmol benzene/kmol dry gas]\n",
+ "Gs = G1*(1.0-y1);# [kmol dry gas/s]\n",
+ "# For 95% removal of benzene:\n",
+ "Y2 = Y1*0.05;\n",
+ "X2 = x2/(1.0-x2);# [kmol benzene/kmol oil]\n",
+ "# Vapour pressure of benzene:\n",
+ "\n",
+ "P_star = 13330.0;# [N/square m]\n",
+ "X_star = numpy.zeros(20);\n",
+ "Y_star = numpy.zeros(20);\n",
+ "j = -1;\n",
+ "for i in range(1,21,1):\n",
+ " j = j+1;\n",
+ " x = i/100.0;\n",
+ " X_star[j] = i/100.0;\n",
+ " def f27(y):\n",
+ " return (y/(1+y))-(P_star/Pt)*(x/(1+x))\n",
+ " Y_star[j] = fsolve(f27,0.0);\n",
+ "\n",
+ "# For min flow rate:\n",
+ "X1 = 0.176;# [kmolbenzene/kmol oil]\n",
+ "DataMinFlow = numpy.array([[X2, Y2],[X1, Y1]]);\n",
+ "\n",
+ "plt.plot(X_star,Y_star,label=\"Equlibrium Line\")\n",
+ "plt.plot(DataMinFlow[:,0],DataMinFlow[:,1],label=\"Min Flow Rate Line\");\n",
+ "minLs = (Gs*(Y1-Y2)/(X1-X2));# [kmol/s]\n",
+ "# For 1.5 times the minimum:\n",
+ "Ls = 1.5*minLs;# [kmol/s]\n",
+ "X1_prime = (Gs*1.0*(Y1-Y2)/Ls)+X2;# [kmol benzene/kmol oil]\n",
+ "DataOperLine = numpy.array([[X2 ,Y2],[X1_prime ,Y1]]);\n",
+ "plt.plot(DataOperLine[:,0],DataOperLine[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "xlabel(\"moles of benzene / mole wash oil\");\n",
+ "ylabel(\"moles benzene / mole dry gas\");\n",
+ "legend(loc='lower right');\n",
+ "plt.title(\"Absorption\")\n",
+ "plt.show()\n",
+ "print\"The Oil circulation rate is \",(\"{:.2e}\".format(Ls)),\" kmol/s\\n\"\n",
+ "\n",
+ "# Stripping\n",
+ "Temp2 = 122+273;# [K]\n",
+ "# Vapour pressure at 122 OC\n",
+ "P_star = 319.9;# [kN/square m]\n",
+ "Pt = 101.33;# [kN/square m]\n",
+ "X_star = numpy.zeros(7);\n",
+ "Y_star = numpy.zeros(7);\n",
+ "j = -1;\n",
+ "for i in range(0,7,1):\n",
+ " j = j+1;\n",
+ " x = i/10.0;\n",
+ " X_star[j] = i/10.0;\n",
+ " def f28(y):\n",
+ " return (y/(1.0+y))-(P_star/Pt)*(x/(1.0+x))\n",
+ " Y_star[j] = fsolve(f28,0.0);\n",
+ "\n",
+ "X1 = X2;# [kmol benzene/kmol oil]\n",
+ "X2 = X1_prime;# [kmol benzene/kmol oil]\n",
+ "Y1 = 0.0;# [kmol benzene/kmol steam]\n",
+ "# For min. steam rate:\n",
+ "Y2 = 0.45;\n",
+ "DataMinFlow =numpy.array([[X2 ,Y2],[X1 ,Y1]]);\n",
+ "minGs = Ls*(X2-X1)/(Y2-Y1);# [kmol steam/s]\n",
+ "slopeOperat = 1.5*(Y2-Y1)/(X2-X1);\n",
+ "def f29(x):\n",
+ " return slopeOperat*(x-X1)+Y1\n",
+ "x =numpy.arange(0,0.14,0.01)\n",
+ "\n",
+ "plt.plot(Y_star,X_star,label=\"Equlibrium Line\")\n",
+ "plt.plot(DataMinFlow[:,0],DataMinFlow[:,1],label=\"Min Flow Rate Line\")\n",
+ "plt.plot(x,f29(x),label=\"Operating Line\");\n",
+ "plt.grid('on');\n",
+ "xlabel(\"moles of benzene / mole wash oil\");\n",
+ "ylabel(\"moles benzene / mole dry gas\");\n",
+ "plt.legend(loc='lower left');\n",
+ "plt.title(\"Stripping\");\n",
+ "plt.show()\n",
+ "print\"The Steam circulation rate is \",(\"{:.2e}\".format(1.5*minGs)),\" kmol/s\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.2 - Page: 286\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7731ef0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Oil circulation rate is 1.79e-03 kmol/s\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nmwF9rNAwfrPPmgmalFVPqeomVR2rqke5y5XpVGAYU5MF/VmBIMcf5NgT4aX31DHAjUBu2PGqqkek\nMC5jjDFpyEv11HLgGuBznHYFAEIP5aUDq54yfrPPmgmaVPae+lFVX1bVb1W1MLTEH6KpiksvvZTb\nb7896efNyMjg22+/Tfp5051NHWtMYrwUGreKyBQRGSYiZ7vLWSmP7ACXm5tL3bp12bix/NiPRx55\nJBkZGWVjJz3yyCPcfPPNVcojLy+P+vXrk5WVVbYsXLgw4di9GD16NHXr1iUrK4umTZty0kkn8cUX\nX3h6beTkTvGq6PU33HAD//rXv6p03nQU9Hr1IMcf5NgT4aXQGAX0wBlY8Lfucnoqg6oJRITOnTvz\nzDPPlG377LPP2L17d1JHh33ooYfYvn172dK7d++knNtL3tdddx3bt29n3bp1dOzYkTFjxsR1Dqvu\nMSb9eCk0fgUco6qjVHVMaEl1YDXBiBEjePLJJ8vSU6dO5fe//325L8vRo0dzyy23AM4vm/bt2/P3\nv/+dVq1a0bZtW5544omE49i6dSu///3vadmyJbm5ufztb38ri6FTp0589NFHAPznP/8hIyODpUud\nMSWnTJnC735X+eM69erV49xzzy13p/Hqq69y5JFH0qRJEzp27FhuRr/jjz8ecIaDCb87+ve//81h\nhx1G06ZNyc/P32/IeC8OtKljg/xEMgQ7/iDHnggvhcZ7OEOXmyTr06cP27ZtY9myZZSWljJ9+nRG\njBhR7pjIEV6///57tm3bxrp165gyZQqXXXYZW7dujZmHl1/rY8eOZfv27axcuZL58+fz5JNP8vjj\njwPOf4zQbfj8+fPp0qUL8+fPL0tX9B8nlPfOnTt55plnyt3lNGrUiGnTprF161ZeffVVHnnkEWbO\nnAnAO++8AziFWejuaObMmdx555289NJLFBUV0b9/f4YNG1bpe4tkU8cak6DQfAWxFmAZUAwsBz5z\nl08re111Ls7b2F+s7WX7x5OUpSpyc3P1f//7n95+++16ww036OzZs3XgwIFaUlKiIqKrVq1SVdXR\no0frzTffrKqq8+bN0/r162tpaWnZeVq2bKkLFy6MmseAAQO0QYMGmp2drdnZ2Xr00UeX7RMR/eab\nb7SkpETr1KmjS5cuLds3adIkzcvLU1XVKVOm6KBBg1RVtXv37jplyhQdOnSoqqp26tRJlyxZEjXv\n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\n1oyJhSrO3Fez7zREkrPEqaioiObNm5ebES6kdevWFBUVlaV/9atfcdZZZ5GZmclVV13FTz/9xIIF\nC/jwww8pKiri5ptvplatWhx00EH84Q9/4Nlnny177bHHHsugQYMAqFevHkcddRS9evUiIyODTp06\ncdFFF8X9y/yKK66gdevW5OTkcPrpp/Pxxx8D8Nxzz3H++efTvXt36tevz6233pqUqi4RYcyYMXTt\n2pV69eoxePDgsjynTZvGaaedRn6+M7nkySefzK9+9Stee+21hPM1xkRXswsN1eQscWrevDlFRUVl\nVTDh1q9fT4sWLcrSoRn0wPkCbd++PevWreO7775j3bp15OTklC133nknP/zwQ9TXAixfvpzf/va3\ntGnThiZNmnDTTTeVq+rxInxq1Pr167Nz586yuMOrsiLzTkRknuHTsT7//PPlrsG7777Lhg0bkpZ3\nugt6vXqQ4w9y7Imo2YWGT/r27UvdunWZMWNGue07duzg9ddf56STTirbtnr1vgfi9+7dy5o1a2jX\nrh0dOnTgoIMOKjcV6bZt25g1axYQvaH50ksv5bDDDmPFihVs3bqVv/3tb1ELrqpo06ZNuVjD11Ol\nY8eOjBw5stw12L59O3/5y19SnrcxNZUVGj5o0qQJ48aNY+zYscyZM4fi4mIKCwsZPHgwHTp0YOTI\nkWXHLl68mJdeeomSkhLuv/9+6tWrR58+fTjmmGPIysrinnvuYffu3ZSWlvL555+zaNEiIHovqB07\ndpCVlUWDBg1YtmwZjzxSfvzHVq1alZti1YtQPoMHD+bxxx9n2bJl7Nq1iwkTJlT62uLi4nLTsZaU\nlFSYR6QRI0bwyiuv8MYbb1BaWspPP/1EQUEBa9eujes9BFnQnxUIcvxBjj0RVmj45Nprr+WOO+7g\nmmuuoUmTJvTp04dOnToxd+5cateuDTh3C2eccQbTp0+nadOm/Oc//+HFF18kMzOTzMxMZs2axccf\nf0znzp1p0aIFF110Edu2bSt7beSdxr333svTTz9N48aNueiiixg6dGi5Y8aPH8+oUaPIycnhhRde\nqLRbbPj+/Px8rrjiCk444QQOPvhg+vbtC0DdunVjvv7SSy8tm461QYMGnH/++VHzjDX9bfv27Zk5\ncyZ33HEHLVu2pGPHjtx3331Ju3syxuzPZu5LY7feeisrVqzgqaee8juUuC1dupTDDz+cn3/+OWqD\n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\njGf/H4+Djc3FFZ59AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa623ef0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Steam circulation rate is 6.81e-04 kmol/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3: Page 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.3\n",
+ "# Page: 292\n",
+ "\n",
+ "print'Illustration 8.3 - Page: 292\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "# Since tower is a tray device:\n",
+ "# Following changes in notation is made:\n",
+ "# L1 to LNp\n",
+ "# L2 to L0\n",
+ "# X1 to XNp\n",
+ "# X2 to X0\n",
+ "# G1 to GNpPlus1\n",
+ "# G2 to G1\n",
+ "# Y1 to YNpPlus1\n",
+ "# Y2 to Y1\n",
+ "# x1 to xNp\n",
+ "# x2 to x0\n",
+ "# y1 to yNpPlus1\n",
+ "# y2 to y1\n",
+ "# From Illustration 8.2:\n",
+ "yNpPlus1 = 0.02;\n",
+ "Y1 = 0.00102;\n",
+ "y1 = Y1/(1+Y1);\n",
+ "GNpPlus1 = 0.01075;# [kmol/s]\n",
+ "x0 = 0.005;\n",
+ "m = 0.125;# [m = y_star/x]\n",
+ "Ls = 1.787*10**(-3);# [kmol/s]\n",
+ "Gs = 0.01051;# [kmol/s]\n",
+ "XNp = 0.1190;\n",
+ "LNp = Ls*(1+XNp);# [kmol/s]\n",
+ "ANp = LNp/(m*GNpPlus1);\n",
+ "X0 = x0/(1-x0);\n",
+ "L0 = Ls*(1+X0);# [kmol/s]\n",
+ "G1 = Gs*(1+Y1);# [kmol/s]\n",
+ "A1 = L0/(m*G1);\n",
+ "A = (ANp*A1)**0.5;\n",
+ "# From Eqn. 5.55:\n",
+ "Np = (math.log((yNpPlus1-(m*x0))/(y1-(m*x0))*(1-(1/A))+(1/A)))/math.log(A);\n",
+ "print\"Absorber\\n\"\n",
+ "print\"From Analytical Method, no. of theoretical trays required is \\n\",round(Np,4)\n",
+ "# From Fig. 8.13 (Pg292):\n",
+ "Np = 7.6;\n",
+ "print\"From Graphical Method, no. of theoretical trays required is \\n\",Np\n",
+ "\n",
+ "# Stripper\n",
+ "SNp = 1/ANp;\n",
+ "S1 = 1/A1;\n",
+ "# Due to relative nonconstancy of the stripping factor,graphical method should be used.\n",
+ "print\"Stripper\\n\"\n",
+ "# From Fig. 8.11 (Pg 289):\n",
+ "Np = 6.7;\n",
+ "print\"From Graphical Method, no. of theoretical trays required is \\n\",Np\n",
+ "# From Fig. 5.16 (Pg 129):\n",
+ "Np = 6.0;\n",
+ "print\"From Fig. 5.16, no. of theoretical trays required is \\n\",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.3 - Page: 292\n",
+ "\n",
+ "\n",
+ "Absorber\n",
+ "\n",
+ "From Analytical Method, no. of theoretical trays required is \n",
+ "7.7085\n",
+ "From Graphical Method, no. of theoretical trays required is \n",
+ "7.6\n",
+ "Stripper\n",
+ "\n",
+ "From Graphical Method, no. of theoretical trays required is \n",
+ "6.7\n",
+ "From Fig. 5.16, no. of theoretical trays required is \n",
+ "6.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 102
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4: Page 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.4\n",
+ "# Page: 295\n",
+ "\n",
+ "print'Illustration 8.4 - Page: 295\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#****Data****#\n",
+ "# a = CH4 b = C5H12\n",
+ "Tempg = 27.0;# [OC]\n",
+ "Tempo = 0.0;# [base temp,OC]\n",
+ "Templ = 35.0;# [OC]\n",
+ "xa = 0.75;# [mole fraction of CH4 in gas]\n",
+ "xb = 0.25;# [mole fraction of C5H12 in gas]\n",
+ "M_Paraffin = 200.0;# [kg/kmol]\n",
+ "hb = 1.884;# [kJ/kg K]\n",
+ "#********#\n",
+ "\n",
+ "Ha = 35.59;# [kJ/kmol K]\n",
+ "Hbv = 119.75;# [kJ/kmol K]\n",
+ "Hbl = 117.53;# [kJ/kmol K]\n",
+ "Lb = 27820;# [kJ/kmol]\n",
+ "# M = [Temp (OC) m]\n",
+ "M = numpy.array([[20 ,0.575],[25 ,0.69],[30 ,0.81],[35, 0.95],[40, 1.10],[43, 1.25]]);\n",
+ "# Basis: Unit time\n",
+ "GNpPlus1 = 1.0;# [kmol]\n",
+ "yNpPlus1 = 0.25;# [kmol]\n",
+ "HgNpPlus1 = ((1-yNpPlus1)*Ha*(Tempg-Tempo))+(yNpPlus1*(Hbv*(Tempg-Tempo)+Lb));# [kJ/kmol]\n",
+ "L0 = 2.0;# [kmol]\n",
+ "x0 = 0.0;# [kmol]\n",
+ "HL0 = ((1-x0)*hb*M_Paraffin*(Templ-Tempo))+(x0*hb*(Templ-Tempo));# [kJ/kmol]\n",
+ "C5H12_absorbed = 0.98*xb;# [kmol]\n",
+ "C5H12_remained = xb-C5H12_absorbed;\n",
+ "G1 = xa+C5H12_remained;# [kmol]\n",
+ "y1 = C5H12_remained/G1;# [kmol]\n",
+ "LNp = L0+C5H12_absorbed;# [kmol]\n",
+ "xNp = C5H12_absorbed/LNp;# [kmol]\n",
+ "# Assume:\n",
+ "Temp1 = 35.6;# [OC]\n",
+ "Hg1 = ((1-y1)*Ha*(Temp1-Tempo))+(y1*(Hbv*(Temp1-Tempo)+Lb));# [kJ/kmol]\n",
+ "\n",
+ "# Eqn. 8.11:\n",
+ "Qt = 0;\n",
+ "def f30(HlNp):\n",
+ " return ((L0*HL0)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(G1*Hg1)+Qt)\n",
+ "HlNp = fsolve(f30,2);\n",
+ "\n",
+ "def f31(TempNp):\n",
+ " return HlNp-(((1-x0)*hb*M_Paraffin*(TempNp-Tempo))+(x0*hb*(TempNp-Tempo)))\n",
+ "TempNp = fsolve(f31,35.6);\n",
+ "# At Temp = TempNp:\n",
+ "mNp = 1.21;\n",
+ "yNp = mNp*xNp;# [kmol]\n",
+ "GNp = G1/(1-yNp);# [kmol]\n",
+ "HgNp = ((1-yNp)*Ha*(TempNp-Tempo))+(yNp*(Hbv*(TempNp-Tempo)+Lb));# [kJ/kmol]\n",
+ "# Eqn. 8.13 with n = Np-1\n",
+ "def f32(LNpMinus1):\n",
+ " return LNpMinus1+GNpPlus1-(LNp+GNp)\n",
+ "LNpMinus1 = fsolve(f32,2);# [kmol]\n",
+ "\n",
+ "# Eqn. 8.14 with n = Np-1\n",
+ "def f33(xNpMinus1):\n",
+ " return ((LNpMinus1*xNpMinus1)+(GNpPlus1*yNpPlus1))-((LNp*xNp)+(GNp*yNp))\n",
+ "xNpMinus1 = fsolve(f33,0);# [kmol]\n",
+ "\n",
+ "# Eqn. 8.15 with n = Np-1\n",
+ "def f34(HlNpMinus1):\n",
+ " return ((LNpMinus1*HlNpMinus1)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(GNp*HgNp))\n",
+ "HlNpMinus1 = fsolve(f34,0);# [kJ/kmol]\n",
+ "def f35(TempNpMinus1):\n",
+ " return HlNpMinus1-(((1-xNpMinus1)*hb*M_Paraffin*(TempNpMinus1-Tempo))+(xNpMinus1*hb*(TempNpMinus1-Tempo)))\n",
+ "TempNpMinus1 = fsolve(f35,42);# [OC]\n",
+ "\n",
+ "# The computation are continued upward through the tower in this manner until the gas composition falls atleast to 0.00662.\n",
+ "# Results = [Tray No.(n) Tn(OC) xn yn]\n",
+ "Results = numpy.array([[4.0 ,42.3 ,0.1091 ,0.1320],[3 ,39.0, 0.0521 ,0.0568],[2 ,36.8 ,0.0184 ,0.01875],[1 ,35.5, 0.00463 ,0.00450]]);\n",
+ "\n",
+ "plt.plot(Results[:,0],Results[:,3]);\n",
+ "plt.grid('on');\n",
+ "xlabel('Tray Number');\n",
+ "ylabel('mole fraction of C5H12 in gas');\n",
+ "plt.show();\n",
+ "plt.plot(Results[:,0],Results[:,1]);\n",
+ "plt.grid('on');\n",
+ "xlabel('Tray Number');\n",
+ "ylabel('Temperature(OC)');\n",
+ "plt.show();\n",
+ "\n",
+ "# For the required y1\n",
+ "Np = 3.75;\n",
+ "print\"The No. of trays will be \",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.4 - Page: 295\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nIrH8P0wZNkRyHEDjAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5b6320>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nEQH+H2FRyOkvfEciAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x785c198>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The No. of trays will be 3.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5: Page 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.5\n",
+ "# Page: 299\n",
+ "\n",
+ "print'Illustration 8.5 - Page: 299\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# a = NH3 b = H2 c = N2 w = water\n",
+ "P = 2.0;# [bars]\n",
+ "Temp = 30.0;# [OC]\n",
+ "L = 6.38;# [kg/s]\n",
+ "W = 0.53;# [weir length,m]\n",
+ "pitch = 12.5/1000;# [m]\n",
+ "D = 0.75;# [Tower diameter,m]\n",
+ "hW = 0.060;# [weir height,m]\n",
+ "t = 0.5;# [tray spacing,m]\n",
+ "#*******#\n",
+ "\n",
+ "# From Geometry of Tray Arrangement:\n",
+ "At = 0.4418;# [Tower Cross section,square m]\n",
+ "Ad = 0.0403;# [Downspout Cross section,square m]\n",
+ "An = At-Ad;# [square m]\n",
+ "Ao = 0.0393;# [perforation area,square m]\n",
+ "Z = 0.5307;# [distance between downspouts,square m]\n",
+ "z = (D+W)/2.0;# [average flow width,m]\n",
+ "h1 = 0.04;# [weir crest,m]\n",
+ "# From Eqn. 6.34\n",
+ "Weff = W*(math.sqrt(((D/W)**2)-((((D/W)**2-1)**0.5)+((2*h1/D)*(D/W)))**2));# [m]\n",
+ "q = Weff*(1.839*h1**(3/2));#[cubic m/s]\n",
+ "# This is a recommended rate because it produces the liquid depth on the tray to 10 cm.\n",
+ "Density_L = 996;# [kg/s]\n",
+ "Mw = 18.02;# [kg/kmol]\n",
+ "L1 = 6.38/Mw;# [kmol/s]\n",
+ "Ma = 17.03;# [kg/kmol]\n",
+ "Mb = 28.02;# [kg/kmol]\n",
+ "Mc = 2.02;# [kg/kmol]\n",
+ "MavG = (0.03*Ma)+(0.97*(1/4)*Mb)+(0.97*(3/4)*Mc);# [kg/kmol]\n",
+ "Density_G = (MavG/22.41)*(P/0.986)*(273/(273+Temp));# [kg/cubic m]\n",
+ "G = 0.893;# [kg/s]\n",
+ "sigma = 68*10**(-3);# [N/m]\n",
+ "abcissa = (L/G)*(Density_G/Density_L)**0.5;\n",
+ "# From Table 6.2 (Pg169):\n",
+ "alpha = 0.04893;\n",
+ "beeta = 0.0302;\n",
+ "# From Eqn. 6.30\n",
+ "Cf = ((alpha*math.log10(1.0/abcissa))+beeta)*(sigma/0.02)**0.2;\n",
+ "# From Eqn. 6.29\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "# 80% of flooding value:\n",
+ "V = 0.8*Vf;# [m/s]\n",
+ "G = 0.8*G;# [kg/s]\n",
+ "G1 = G/MavG;# [kmol/s]\n",
+ "Vo = V*An/Ao;# [m/s]\n",
+ "l = 0.002;# [m]\n",
+ "Do = 0.00475;# [m]\n",
+ "# From Eqn. 6.37\n",
+ "Co = 1.09*(Do/l)**0.25;\n",
+ "viscosity_G = 1.13*10**(-5);# [kg/m.s]\n",
+ "Reo = Do*Vo*Density_G/viscosity_G;\n",
+ "# At Reynold's No. = Reo\n",
+ "fr = 0.0082;\n",
+ "g = 9.81;# [m/s^2]\n",
+ "# From Eqn. 6.36\n",
+ "def f36(hD):\n",
+ " return (2*hD*g*Density_L/(Vo**2*Density_G))-(Co*(0.40*(1.25-(Ao/An))+(4*l*fr/Do)+(1-(Ao/An))**2))\n",
+ "hD = fsolve(f36,1);\n",
+ "# From Eqn. 6.31;\n",
+ "Aa = (Ao/0.907)*(pitch/Do)**2;# [square m]\n",
+ "Va = V*An/Aa;# [m/s]\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.42\n",
+ "hR = 6*sigma/(Density_L*Do*g);# m\n",
+ "# From Eqn. 6.35\n",
+ "hG = hD+hL+hR;# [m]\n",
+ "Al = 0.025*W;# [square m]\n",
+ "Ada = min(Al,Ad);\n",
+ "# From Eqn. 6.43\n",
+ "h2 = (3/(2*g))*(q/Ada)**2;# [m]\n",
+ "# From Eqn.6.44\n",
+ "h3 = hG+h2;\n",
+ "# since hW+h1+h3 is essentially equal to t/2, flooding will not occur\n",
+ "abcissa = (L/G)*(Density_G/Density_L)**0.5;\n",
+ "V_by_Vf = V/Vf;\n",
+ "# From Fig.6.17, V/Vf = 0.8 & abcissa = 0.239\n",
+ "E = 0.009;\n",
+ "\n",
+ "# At the prevailing conditions:\n",
+ "Dg = 2.296*10**(-5);# [square m/s]\n",
+ "viscosity_G = 1.122*10**(-5);# [kg/m.s]\n",
+ "ScG = viscosity_G/(Density_G*Dg)\n",
+ "Dl = 2.421*10**(-9);# [square m/s]\n",
+ "\n",
+ "# From Henry's Law:\n",
+ "m = 0.850;\n",
+ "A = L1/(m*G1);\n",
+ "\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;# [square m/s]\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2.0)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# From Eqn. 6.60:\n",
+ "EMGE = EMG/((1+(EMG*(E/(1-E)))));\n",
+ "# From Eqn. 8.16:\n",
+ "EO = math.log(1+EMGE*((1.0/A)-1))/math.log(1.0/A);\n",
+ "Np = 14*EO;\n",
+ "yNpPlus1 = 0.03;\n",
+ "x0 = 0;\n",
+ "# From Eqn. 5.54(a):\n",
+ "def f37(y1):\n",
+ " return ((yNpPlus1-y1)/(yNpPlus1-m*x0))-(((A**(Np+1))-A)/((A**(Np+1))-1))\n",
+ "y1 = fsolve(f37,0.03);\n",
+ "print\"Mole Fraction Of NH3 in effluent is \",round(y1,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.5 - Page: 299\n",
+ "\n",
+ "\n",
+ "Mole Fraction Of NH3 in effluent is 0.0211\n"
+ ]
+ }
+ ],
+ "prompt_number": 159
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6: Page 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.6\n",
+ "# Page: 304\n",
+ "\n",
+ "print'Illustration 8.6 - Page: 304\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****# \n",
+ "# Gas:\n",
+ "# In:\n",
+ "y_prime1 = 0.02;\n",
+ "Y_prime1 = 0.0204;# [mol/mol dry gas]\n",
+ "# Out:\n",
+ "y_prime2 = 0.00102;\n",
+ "Y_prime2 = 0.00102;# [mol/mol dry gas]\n",
+ "# Non absorbed gas:\n",
+ "MavG = 11;# [kg/kmol]\n",
+ "G = 0.01051;# [kmol/s nonbenzene]\n",
+ "Gm = 0.01075;# [kmol/s]\n",
+ "T = 26;# [OC]\n",
+ "viscosity_G = 10**(-5);# [kg/m.s]\n",
+ "DaG = 1.30*10**(-5);# [square m/s]\n",
+ "\n",
+ "# Liquid:\n",
+ "# In:\n",
+ "x_prime2 = 0.005;\n",
+ "X_prime2 = 0.00503;# [mol benzene/mol oil]\n",
+ "# Out:\n",
+ "x_prime1 = 0.1063;\n",
+ "X_prime1 = 0.1190;# [mol benzene/mol oil]\n",
+ "# Benzene free oil:\n",
+ "MavL = 260.0;# [kg/kmol]\n",
+ "viscosity_L = 2*10**(-3);# [kg/kmol]\n",
+ "Density_L = 840;# [kg/cubic cm]\n",
+ "L = 1.787*10**(-3);# [kmol/s]\n",
+ "DaL = 4.77*10**(-10);# [square m/s]\n",
+ "sigma = 0.03;# [N/square m]\n",
+ "m = 0.1250;\n",
+ "#*******#\n",
+ "\n",
+ "A = 0.47**2*math.pi/4;# [square m]\n",
+ "# At the bottom:\n",
+ "L_prime1 = ((L*MavL)+(X_prime1*L*78))/A;# [kg/square m.s]\n",
+ "# At the top\n",
+ "L_prime2 = ((L*MavL)+(X_prime2*L*78))/A;# [kg/square m.s]\n",
+ "L_primeav = (L_prime1+L_prime2)/2;# [kg/square m.s]\n",
+ "# At the bottom\n",
+ "G_prime1 = ((G*MavG)+(Y_prime1*G*78))/A;# [kg/square m.s]\n",
+ "# At the top\n",
+ "G_prime2 = ((G*MavG)+(Y_prime2*G*78))/A;# [kg/square m.s]\n",
+ "G_primeav = (G_prime1+G_prime2)/2;# [kg/square m.s]\n",
+ "\n",
+ "# From Illustration 6.6:\n",
+ "Fga = 0.0719;# [kmol/cubic cm.s]\n",
+ "Fla = 0.01377;# [kmol/cubic cm.s]\n",
+ "# Operating Line:\n",
+ "X_prime = numpy.array([0.00503 ,0.02 ,0.04 ,0.06 ,0.08 ,0.10 ,0.1190]);\n",
+ "x_prime = numpy.zeros(7);\n",
+ "Y_prime = numpy.zeros(7);\n",
+ "y_prime = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " x_prime[i] = X_prime[i]/(1+X_prime[i]);\n",
+ " def f38(Y_prime):\n",
+ " return (G*(Y_prime1-Y_prime))-(L*(X_prime1-X_prime[i]))\n",
+ " Y_prime[i] = fsolve(f38,Y_prime1);\n",
+ " y_prime[i] = (Y_prime[i])/(1+Y_prime[i]);\n",
+ "\n",
+ "def f39(x):\n",
+ " return m*x\n",
+ "x = numpy.arange(0,0.14,0.01);\n",
+ "\n",
+ "# Interface compositions are determined graphically and according to Eqn. 8.21:\n",
+ "yi = [0.000784, 0.00285, 0.00562 ,0.00830 ,0.01090 ,0.01337 ,0.01580];\n",
+ "ylog = zeros(7);\n",
+ "y_by_yDiffyi = zeros(7);\n",
+ "for i in range(0,7):\n",
+ " ylog[i] = math.log10(yi[i]);\n",
+ " y_by_yDiffyi[i] = y_prime[i]/(y_prime[i]-yi[i]);\n",
+ "\n",
+ "plt.plot(x_prime,y_prime,label=\"Operating Line\")\n",
+ "plt.plot(x,f39(x),label=\"Equilibrium Line\")\n",
+ "plt.plot(x_prime,yi,label=\"Interface Composition\");\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.grid('on');\n",
+ "xlabel(\"mole fraction of benzene in liquid\");\n",
+ "ylabel(\"mole fraction of benzene in gas\");\n",
+ "plt.show()\n",
+ "plt.plot(ylog,y_by_yDiffyi);\n",
+ "plt.grid();\n",
+ "xlabel(\"log y\");\n",
+ "ylabel(\"y/(y-yi)\");\n",
+ "title(\"Graphical Integration Curve\");\n",
+ "plt.show()\n",
+ "# Area under the curve:\n",
+ "Ac = 6.556;\n",
+ "# Eqn. 8.28:\n",
+ "NtG = (2.303*Ac)+1.152*(math.log10((1-y_prime2)/(1-y_prime1)));\n",
+ "Gav = (Gm+(G/(1-Y_prime2)))/(2*A);# [kmol/square m.s]\n",
+ "HtG = Gav/Fga;# [m]\n",
+ "Z = HtG*NtG;# [m]\n",
+ "print\"The depth of packing required is \",round(Z,3),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.6 - Page: 304\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n2QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5b66a0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5852b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The depth of packing required is 12.881 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7: Page 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.7\n",
+ "# Page: 312\n",
+ "\n",
+ "print'Illustration 8.7 - Page: 312\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "# Fom Illustration 8.6:\n",
+ "y1 = 0.02;\n",
+ "y2 = 0.00102;\n",
+ "m = 0.125;\n",
+ "x2 = 0.005;\n",
+ "x1 = 0.1063;\n",
+ "\n",
+ "# Number of transfer units:\n",
+ "# Method a:\n",
+ "y1_star = m*x1;\n",
+ "y2_star = m*x2;\n",
+ "yDiffy_star1 = y1-y1_star;\n",
+ "yDiffy_star2 = y2-y2_star;\n",
+ "yDiffy_starm = (yDiffy_star1-yDiffy_star2)/math.log(yDiffy_star1/yDiffy_star2);\n",
+ "# From Eqn. 8.48:\n",
+ "NtoG = (y1-y2)/yDiffy_starm;\n",
+ "print\"NtoG according to Eqn. 8.48:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Mehod b:\n",
+ "# From Illustration 8.3:\n",
+ "A = 1.424;\n",
+ "NtoG = (math.log((((y1-(m*x2))/(y2-(m*x2)))*(1-(1/A)))+(1/A)))/(1-(1/A));\n",
+ "print\"NtoG according to Eqn. 8.50:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Method c:\n",
+ "# Operating Line:\n",
+ "# From Illustration 8.3:\n",
+ "X_prime = [0.00503, 0.02, 0.04 ,0.06 ,0.08 ,0.10 ,0.1190];\n",
+ "x_prime = [0.00502 ,0.01961, 0.0385, 0.0566, 0.0741, 0.0909 ,0.1063]\n",
+ "Y_prime = [0.00102 ,0.00357 ,0.00697 ,0.01036 ,0.01376 ,0.01714 ,0.0204];\n",
+ "y_prime = [0.00102 ,0.00356, 0.00692 ,0.01025 ,0.01356 ,0.01685, 0.0200];\n",
+ "def f2(x):\n",
+ " return m*x\n",
+ "x = numpy.arange(0,0.14,0.01);\n",
+ "\n",
+ "plt.plot(x_prime,y_prime,label=\"Operating Line\")\n",
+ "plt.plot(x,f2(x),label=\"Equilibrium Line\");\n",
+ "plt.legend(loc='upper right');\n",
+ "plt.grid('on');\n",
+ "xlabel(\"mole fraction of benzene in liquid\");\n",
+ "ylabel(\"mole fraction of benzene in gas\");\n",
+ "plt.show()\n",
+ "# From graph:\n",
+ "NtoG = 8.7;\n",
+ "print\"NtoG from graph:\",round(NtoG,2),\" \\n\",\n",
+ "\n",
+ "# Method d:\n",
+ "# from Fig 8.10:\n",
+ "Y_star = [0.000625, 0.00245, 0.00483, 0.00712 ,0.00935 ,0.01149, 0.01347];\n",
+ "ordinate = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " ordinate[i] = 1/(Y_prime[i]-Y_star[i]);\n",
+ "\n",
+ "plt.plot(Y_prime,ordinate);\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Y\");\n",
+ "ylabel(\"1/(Y-Y*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area under the curve:\n",
+ "Ac = 8.63;\n",
+ "# From Eqn. 8.36:\n",
+ "NtoG = Ac+(1.0/2)*math.log((1+y2)/(1+y1));\n",
+ "print\"NtoG from graphical integration:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Height of transfer units:\n",
+ "NtoG = 9.16;\n",
+ "# From Illustration 6.6:\n",
+ "Fga = 0.0719;# [kmol/cubic m.s]\n",
+ "Fla = 0.01377;# [kmol/cubic m.s]\n",
+ "Gav = 0.0609;# [kmol/square m.s]\n",
+ "L = 1.787*10**(-3);# [kmol/s]\n",
+ "X1 = x1/(1-x1);\n",
+ "X2 = x2/(1-x2);\n",
+ "Area = 0.1746;# [square m]\n",
+ "Lav = L*((1+X1)+(1+X2))/(2*Area);\n",
+ "# From Eqn. 8.24:\n",
+ "Htg = Gav/Fga;# [m]\n",
+ "# From Eqn. 8.31:\n",
+ "Htl = Lav/Fla;# [m]\n",
+ "# since Solutions are dilute:\n",
+ "HtoG = Htg+Htl/A;# [m]\n",
+ "print\"HtoG: \",round(HtoG,2),\" m\\n\",\n",
+ "Z = HtoG*NtoG;# [m]\n",
+ "print\"The depth of packing recquired is \",round(Z,2),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.7 - Page: 312\n",
+ "\n",
+ "\n",
+ "NtoG according to Eqn. 8.48: 8.51 \n",
+ "\n",
+ "NtoG according to Eqn. 8.50: 9.16 \n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXucTfX6x9+PiaTcOoQGETnp/BQluVXOKSW/qBONbk6k\nqBNdpKI6mu506MavC7mVQkJJFyKkK+NaIUkTmaI0LqGYmef3x1oztmkua2avvffae57367Vesy7f\n7/p+9nfP3s9e3+f7fB9RVQzDMAzDL8rFWoBhGIaRWJhhMQzDMHzFDIthGIbhK2ZYDMMwDF8xw2IY\nhmH4ihkWwzAMw1cialhEpJOIrBeRb0Tk7kLKPONeXy0iLdxz9URkoYh8JSJfisgtIeVTReQHEVnp\nbp0i+RoMwzCMknFEpG4sIknAaOB8YCuwTERmq+q6kDKdgcaqepKInAU8B7QGDgK3q+oqETkGWC4i\n81R1PaDAE6r6RKS0G4ZhGKUnkk8srYCNqpquqgeBqcAl+cp0BSYBqOrnQDURqaWqP6nqKvf8b8A6\nIDmknkRQt2EYhhEGkTQsycCWkOMfONw4FFambmgBEWkAtAA+Dzk9wB06Gyci1fwSbBiGYYRPJA2L\n17Vi8j995NVzh8FeB251n1zAGS5rCDQHfgRGhqnTMAzD8JGI+Vhw/Cr1Qo7r4TyRFFWmrnsOESkP\nzAAmq+obuQVUdXvuvoi8CLxVUOMiYougGYZhlBBVDdvVEMknljTgJBFpICIVgB7A7HxlZgP/AhCR\n1sBOVd0mIgKMA9aq6lOhFUSkTsjhP4EvChOgqoHe7r///phrMJ2m03SaztzNLyL2xKKqWSLSH5gL\nJAHjVHWdiPRzr7+gqu+ISGcR2QjsBXq71dsB1wBrRGSle26Iqr4HDBeR5jhDZt8B/SL1GiJNenp6\nrCV4wnT6i+n0F9MZPCI5FIaqvgu8m+/cC/mO+xdQ7yMKeZpS1X/5qdEwDMPwF4u8jyG9evWKtQRP\nmE5/MZ3+YjqDh/g5rhYkREQT9bUZhmFEAhFBA+68N4ph0aJFsZbgCdPpL5HSKSK22eZ5iyQR9bEY\nhhFd7Cnd8EKkDYsNhRlGgiAiZlgMTxT2v+Ket6EwwzAMI1iYYYkhZd0n4Dem0zCCgRkWwzAMYMmS\nJZx88slRbXPz5s1Urlw54YYwzcdiGAlC0H0sEydOZOTIkWzatIkqVarwz3/+k8cee4yqVavGRE+5\ncuXYuHEjJ554YsTb6tChAz179qRPnz4Rb8sL5mMxDCPuGTlyJIMHD2bkyJHs3r2bzz77jO+//56O\nHTty8OBB39vLzs72VC5ahjgaU3yDhBmWGBIvY+2m01/iRadf7N69m9TUVEaPHs0FF1xAUlISJ5xw\nAq+99hrp6elMnjwZgNTUVLp3784VV1xBlSpVOOOMM1izZk3efTIyMujWrRvHHXccJ554IqNGjcq7\nllu3Z8+eVK1alUmTJrFs2TLatGlD9erVOf744xkwYECeETvnnHMAOO2006hcuTLTp09n0aJF1Kt3\naLH1Bg0aMHLkSE477TSqVavGFVdcwR9//JF3/fHHH+f444+nbt26vPjii5QrV45NmzaVqG/S09Mp\nV64cOTk5gPNkM3ToUNq3b0+VKlW48MIL2bFjR175zz77jLZt21K9enWaN2/O4sWLS9RetDDDYhhG\nRPnkk0/4/fffueyyyw47f/TRR9O5c2fef//9vHOzZ88mJSWFzMxMrrrqKi699FKys7PJycmhS5cu\ntGjRgoyMDBYsWMBTTz3FvHnzDqt7+eWXs2vXLq666iqSkpJ4+umn2bFjB59++ikLFizg2WefBeDD\nDz8EYM2aNezZs4fLL7/8T7pFhOnTpzN37ly+++471qxZw8SJEwF47733ePLJJ1mwYAHffPMNixYt\n8u2JZMqUKUycOJHt27dz4MABRowYAcDWrVu5+OKLGTp0KJmZmYwYMYJu3brxyy+/+NKun5hhiSEd\nOnSItQRPmE5/iZVOEX+2kvLLL79Qo0YNypX789dN7dq1D/tibNmyJZdddhlJSUkMHDiQ33//nU8/\n/ZRly5bxyy+/cN9993HEEUfQsGFDrr/+eqZOnZpXt23btnTt2hWAihUrcvrpp9OqVSvKlSvHCSec\nQN++fUv8C/+WW26hdu3aVK9enS5durBq1SoAXnvtNa677jqaNm3KUUcdxQMPPODLsJqI0Lt3bxo3\nbkzFihVJSUnJa3Py5Ml07tyZTp06AXD++efTsmVL3nnnnbDb9RuLvDeMMkKs/Po1atTgl19+IScn\n50/G5ccff6RmzZp5x3XrHspMLiLUrVuXjIwMRISMjAyqV6+edz07OztvSCt/XYANGzYwcOBAli9f\nzr59+8jKyqJly5Yl0l67du28/aOOOooff/wxT3erVq0KbTsc8rf5229O8tzvv/+e6dOn89Zbh3Ib\nZmVl8Y9//MO3tv3CnlhiSLyMtZtOf4kXnX7Rpk0bjjzySGbMmHHY+d9++4333nuP8847L+/cli1b\n8vZzcnL44YcfSE5Opl69ejRs2JDMzMy8bffu3cyZMwco2Dl+0003ccopp7Bx40Z27drFI488kufL\nCJc6deocpjV0P1LUr1+fnj17HtYHe/bs4a677op42yXFDIthGBGlatWq3H///QwYMIC5c+dy8OBB\n0tPTSUlJoV69evTs2TOv7PLly5k1axZZWVk89dRTVKxYkdatW3PmmWdSuXJlHn/8cfbv3092djZf\nfvklaWlpQMGzu3777TcqV65MpUqVWL9+Pc8999xh12vVqsW3335boteS205KSgoTJkxg/fr17Nu3\nj4ceeqjYugcPHuT333/P27KysopsIz/XXHMNb731FvPmzSM7O5vff/+dRYsWsXXr1hK9hmhghiWG\nmE/AX0xncLnzzjt59NFHGTRoEFWrVqV169accMIJLFiwgPLlywPOU8cll1zCtGnTOPbYY3nllVeY\nOXMmSUlJJCUlMWfOHFatWsWJJ55IzZo16du3L7t3786rm/+JZcSIEbz66qtUqVKFvn37csUVVxxW\nJjU1lWuvvZbq1avz+uuvFzslOPR6p06duOWWW/j73/9OkyZNaNOmDQBHHnlkofVvuukmKlWqlLdd\nd911BbYZehx6vW7durz55ps8+uijHHfccdSvX5+RI0f69hTmJxYgaRgJQtADJIvjgQceYOPGjbz8\n8suxllJi1q1bR7NmzThw4ECBkxSChgVIJjDxMtZuOv0lXnRGm3gzirNmzeKPP/4gMzOTu+++m65d\nu8aFUYkG1guGYQSCeItOHzNmDLVq1aJx48aUL1/+Tz6csowNhRlGghDvQ2FG9LChMMMwDCOuMMMS\nQ+JlrN10+ku86DSM0mKGxTAMw/AV87EYRoJgPhbDK+ZjMQzDMOIKMywxJF7G2k2nv8SLznggf2rf\nDh06MG7cOABeeeUVLrzwwryyJc2Xkr9+LIjX1MVmWAzDiDgNGjSgUqVKVK5cOW+75ZZbwr5v/fr1\n2bNnT178S2gszNVXX83cuXNLfe9w65eEUIMYSv7XFy/YsvkxJF7WjDKd/hIvOv1ERJgzZ04gl3gv\niOzsbJKSkqLWXrwFhxZHsU8sInKMiCS5+38Vka4iUj7y0gzDKAvk5OQwaNAgatasSaNGjfi///u/\nw9L1NmjQgAULFuSVT01NzVsROX9q31AmTpzI2Weffdi5t99+m0aNGlGzZk3uuuuuvCGmiRMn0q5d\nOwYOHEiNGjVITU09rH5B7YQ+ZYTWr169Oo0bN+aTTz5hwoQJ1K9fn1q1avHSSy+VuG/iNXWxl6Gw\nD4EjRSQZmAv0BCZGUlRZIV7G2k2nv8SLTr8pzE8wZswY3n77bVatWkVaWlreSsO55P81H84v+zfe\neIPly5ezYsUK3nzzTcaPH593benSpTRq1Ijt27dz7733Fnuv/LqWLl3Kaaedxq+//sqVV15JSkoK\nK1as4Ntvv2Xy5Mn079+fffv2lVp7LvGQutjLUJio6j4R6QM8q6qPi8jqSAszDMNf5AF/hlr0/pI7\nklWVSy+9lCOOOPSVM2LECPr06cNrr73G7bffTnJyMgD33HNPkb+0w3Fk33333VSrVo1q1apx2223\nMWXKFPr06QPA8ccfz8033ww4qY1LSsOGDbn22msBJ1/LI488wtChQylfvjwdO3akQoUKbNy4kVNP\nPbXU+kNTF+e2M3v2bKDo1MX/+te/St1mafDkYxGRNsDVQB/3lDn9fSBextpNp7/ESmdpDIJfiAhv\nvvlmgT6WH3/8kXr16uUd169fP2I68reTkZFR4LXSUKtWrbz9o446CuCwtMuhaYbDIR5SF3sxLLcB\nQ4BZqvqViDQCFkZWlmEYZYU6deqwefPmvOPQfYCjjz6avXv35h3/9NNPpW5r8+bNNG3aNG8/9ykJ\nih5iO/roowHYt28fxxxzTNg6IkFu6uIxY8bEWkrxTx6qulhVu6rqcPf4W1UNf56gETdj7abTX+JF\np98UNoSVkpLCM888w9atW8nMzGTYsGGHfck3b96cqVOnkpWVRVpaGjNmzCi1n2XEiBHs3LmTLVu2\n8Mwzz9CjRw9P9WrWrElycjIvv/wy2dnZjB8/vsRpjYsjkVIXe5kVdpyIjBCRd0Rkobt9EA1xhmEk\nDl26dDksjqVbt24A3HDDDVx44YWcdtpptGzZkm7duh325fnQQw/x7bffUr16dVJTU7n66qsPu29h\nRqagKbyXXHIJZ5xxBi1atODiiy/O868UliI49NzYsWP573//S40aNVi7di3t2rUrsq2SGr9ESl1c\n7FphIvI+MA0YBPQDegE/q+pdxd5cpBPwFJAEvJj71JOvzDPARcA+oJeqrhSResBLwHGAAmNU9Rm3\n/LGunhOAdCBFVXcWcF9bK8woUyTKWmHp6emceOKJZGVlWUbGCBGEtcL+oqovAgfcYbHeQLHeIDf2\nZTTQCTgFuFJEmuYr0xlorKonAX2B3BRsB4HbVfVvQGvgZhE52b02GHhfVZsAC9xjwzAMIyB4MSwH\n3L8/icjFInI6UN1DvVbARlVNV9WDwFTgknxlugKTAFT1c6CaiNRS1Z9UdZV7/jdgHZCcv47791IP\nWgJJvIy1m05/iRedsSSRotDLIl5mhT0iItWAO4BRQBXgdg/1koEtIcc/AGd5KFMX2JZ7QkQaAC2A\nz91TtVQ19/o2oBaGYSQMDRo0IDs7O9YyjDAo1rCoau6k6J1AhxLc2+tgb/6fJnn1ROQY4HXgVvfJ\nJb82FZFC2+nVqxcNGjQAoFq1ajRv3jwvhiD3V2Osj3MJip6Cjjt06BAoPUUd5xIUPdHuT8PwSu7/\nzKJFi0hPT/f13l6c96NwvuxzDYACu4A0VX2ziHqtgVRV7eQeDwFyQh34IvI8sEhVp7rH64FzVXWb\nux7ZHOBdVX0qpM56oIOq/iQidYCFqnoy+TDnvVHWSBTnvRF5guC8rwg0BzYA3wCnAfWAPiLyVBH1\n0oCTRKSBiFQAegCz85WZDfwL8gzRTteoCDAOWBtqVELqXOvuXwu84eE1BJJ4+ZVpOv0lXnQaRmnx\n4mM5FWinqlkAIvIs8BHQHviisEqqmiUi/XEWrkwCxqnqOhHp515/QVXfEZHOIrIR2Av0dqu3A64B\n1ojISvfcEFV9DxgGvOauXZYOpJToFRtGAmNObyMIeBkK+xo4KzdWxHXkL1XVJiKyUlVbREFnibGh\nMMOIDAcOQL9+8MUXMGcOhCxdZcQ5fg2FeXlieRxYKSKLcPws5wKPisjRwPxwBRiGET/s2gXdu0PF\nirBoEbjLZhnGYXhZK2wcztDUm8AsoL2qjlXVvap6Z6QFJjLxMtZuOv0lXnX+8AOcfTacdBLMmhUc\noxKv/ZnIeFo2X1UziGMnuWEY4bF6NVx8MdxyCwwaBObKMYqiWB9LvGI+FsPwh7lzoWdPGD0aUmyq\nTEITzenGhmGUUcaNg2uvhZkzzagY3vFkWEQkSUSOF5H6uVukhZUF4mXM1XT6SzzoVIWePRfx6KOw\neDG0bx9rRYUTD/0J8aPTD4r1sYjIAOB+YDsQuoBPs0iJMgwjdhw4AH36wPLl8OmncNxxsVZkxBte\n4li+BVqp6o7oSPIH87EYRsnZuRMuuwyqVoVXXoFKlWKtyIgm0fSxbAZ2h9uQYRjB5vvvoV07aNYM\nXn/djIpRerwYlu+AhSIyRETucLeBkRZWFoiXMVfT6S9B1LlihWNUbrgBnn4akpKCqbMgTGfw8BLH\nstndKrib4H1JfMMwAs477zgzv154wRkGM4xwsTgWwyjDvPACpKY604nbtIm1GiPWRHytMBF5WlVv\nFZG3Crisqto13MYNw4gNOTlwzz2OQVmyBBo3jrUiI5Eoysfykvt3ZCGbESbxMuZqOv0l1jr/+AOu\nvtoxKJ98UrhRibVOr5jO4FHoE4uqLnf/LoqaGsMwIsqvv8Kll0KtWjB/Phx1VKwVGYmI+VgMo4yw\naRN07gxdusDw4VDOFnQy8mFrhRmG4Zlly5xlWQYMgP/+14xKtDmYfTDWEqKK538vEbFwKZ+JlzFX\n0+kv0dY5e7bzpPL883Dzzd7rWX+Gz76D+xj+0XAaj2rMO/PeibWcqFGsYRGRtiKyFvjaPW7u5r03\nDCPgjB4NN97oxKp0tXmcUeNg9kHGLB9Dk1FNWJaxjLnXzKVShbLz29zLWmFLge7Am7n57UXkK1X9\nWxT0lRrzsRhlmZwcuOsuJyf9u+9Cw4axVlQ2UFVeX/s69y28j+TKyQw7fxitklvFWpZnopnzHlXd\nLIenjMsKt2HDMCLD/v3wr3/B9u3OdOJjj421orLB/E3zGTx/MDmaw6iLRtHxxI5IGU216WkRShFp\nByAiFURkELAusrLKBkEeGw7FdPpLJHX+8gucfz4ccQTMmxeeUbH+9EZaRhodX+7ITW/fxJ1t7ySt\nbxoXNLrgT0Yl1jqjiRfDchNwM5AMbAVauMeGYQSIjRuhbVs45xxnyfsjj4y1osRmw44NpExPoeuU\nrnRr2o21/15Lj//pQTmxKXcWx2IYCcDixdCjBzzwAPTrF2s1ic3W3Vt5cPGDzFg3gzva3MEtZ93C\n0RWOjrUsX4iaj0VEjgNuABqElFdVvS7cxg3DCJ9x45x1vyZPho4dY60mccncn8nwj4czdsVY+rTo\nw4YBGzj2KHNgFYSXZ7Y3gSrA+8DbIZsRJvEy5mo6/cUvndnZMGiQE0X/4Yf+G5Wy1p+FkRuL0mR0\nE3bs28HqG1fzeMfHS2xU4qU//cDLrLCjVPXuiCsxDMMzu3fDVVc5M8A++8xmfkWCg9kHmbBqAg8u\nfpDWdVuzpPcSTq5xcqxlxQVe4lgeBj5V1bh6SjEfi5GofPeds95X+/YwahSULx9rRYlFaCxK3Sp1\nGXbeMM5MPjPWsqKCXz4WL4blN6AScADIXfBGVbVKuI1HEjMsRiLy0Udw+eWOT6V/fyijYRIRY/6m\n+QxZMIQczWHYecM4/8Tzy1QsStQWoVTVY1S1nKpWVNXK7hZooxIvxMuYq+n0l9LqnDTJSR08caKz\nmGSkv+8SvT9DCY1FGdRmEMtuWEbHRv4GOMZLf/qBl1lh5YCrgYaq+qCI1Adqq+rSiKszDIPsbOcJ\nZcYMZ1px06axVpQ4bNixgfs+uI+Pt3zM0HOGcl2L6yifZGOL4eJlKOx5IAf4h6qeLCLHAvNUtWU0\nBJYWGwozEoE9e+Caa2DXLsew/OUvsVaUGOTGosxcPzMvFqVS+bKzSGRhRDMfy1mq+m9gP4Cq/gqY\nSTeMCPP9946D/rjjnOVZzKiET+b+TAbPH8ypz59KtYrV+Lr/1wxuP9iMis94MSwHRCQp90BEauI8\nwRhhEi9jrqbTX7zo/PRTaNMGeveGMWOgQoXI68pPIvVnaCzKr/t/ZfWNqxnecXhUAxzjpT/9wEsc\nyyhgFnCciDyKs4T+fRFVZRhlmMmTYeBAx0nfuXOs1cQ3FosSGzytFSYiTYHz3MMFquppdWMR6QQ8\nBSQBL6rq8ALKPANcBOwDeqnqSvf8eOB/ge2q2iykfCpwPfCze2qIqr5XwH3Nx2LEFTk5cN99MHUq\nvPUW/C3QGY+CTVmORQmHaK4VNh4YpaqjQ86lqmpqMfWSgNHA+TirIi8TkdmhRklEOgONVfUkETkL\neA5o7V6egPO09FK+WyvwhKo+UZx2w4gX9u6Fnj2dZe8//xxq1oy1ovglNy+Kooy+aHSZi0UJAl58\nLBcCk0Tk2pBzl3io1wrYqKrpqnoQmFpAva7AJABV/RyoJiK13eMlQGYh906I/5J4GXM1nf6SX+eW\nLY6Tvlo1eP/94BiVeOvP0FiUu9rdFZFYlHCIl/70Ay+GZTtwNnC5iDwrIl5nhCUDW0KOf3DPlbRM\nQQwQkdUiMk5EqnnUYxiB4/PPoXVruPpqZ5Viy6FScrbs2kLK9BQumXoJ3Zt2Z+2/15LytxTLixJD\nPPW8qu4CuuD4NRYCVb1U86gh/8+J4uo9BzQEmgM/AiM9thM4OnToEGsJnjCd/pKrc8oUZ82vF15w\nVikOyA/rPILenxl7Muj3Vj8GbhjI6XVO55sB39CvZb/ABjgGvT/9xMussLfAWRwMuF9E0oDbPdTb\nCtQLOa6H80RSVJm67rlCUdXtufsi8mKuvoLo1asXDRo0AKBatWo0b948783NfSy1YzuO9nFODvTq\ntYh582DBgg40axYsfUE/ztyfyc3P3sycDXO4sfuNfN3/a9Z8voalHy8NhL54Os7dT09Px1dUNSIb\njtH6FidBWAVgFdA0X5nOwDvufmvgs3zXGwBf5DtXJ2T/duDVQtrXoLNw4cJYS/CE6fSPvXtVzzln\nobZtq7ptW6zVFE3Q+nPvgb06bMkwrfF4Db1h9g26ZdcWVQ2ezsKIB53u92bY3/9eZoV1A4YBtTg0\nbKVazEKUqpolIv2BuTjTjcep6joR6edef0FV3xGRziKyEdgL9A5pdwpwLvAXEdkCDFXVCcBwEWmO\nM2T2HWCJWI24YOtWuOQSJ4J+9mzzp3jFYlHiDy9rhX0LXKweY1eCgsWxGEEiLQ0uvdRZlfiuu4Ln\nTwkiarEoUSdqcSzAT/FmVAwjSLz2Gtx8M4wd6xgXo3gsFiW+8TIrLE1EponIlSLSzd0ui7iyMkCo\nAy3ImM7SoQoPPOA8ocyff8ioBE1nYcRCZ2liUaw/g4eXJ5aqOCsbX5Dv/Ez/5RhGYrB/v7OA5Pff\nOznpa9eOtaJgY3lREgtPa4XFI+ZjMWLFjz86TvomTeDFF6FixVgrCi6WFyVYRC0fi4j8VUQWiMhX\n7vGpImKrGxtGAaxYAWed5Qx7vfyyGZXCsLwoiY0XH8tY4B7ggHv8BXBlxBSVIeJlzNV0emPGDLjw\nQnjqKSeVcGFugVjr9EokdEYiL0pZ7s+g4sXHUklVP891nqmqisjByMoyjPhBFR591FmaZe5cOP30\nWCsKHlk5WYxfOd5iUcoIXuJY3gUGANNVtYWIdAf6qOpF0RBYWszHYkSD33+H66+Hb76BN96AOnVi\nrShYWCxKfBHNOJb+wBjgZBHJwIl2vzrchg0j3snIgMsugwYNYNEiOOqoWCsKFhaLUnYp1seiqt+q\n6nlADeCvqtpOVdMjrqwMEC9jrqbzz3z2GbRq5axOPGVKyYxKovdntPOiJHp/xiNe1gqrAdwPtAdU\nRJYAD6rqjkiLM4wgMn48DB7s/L344lirCQ4Wi2Lk4sXHMh9YDEzGWYTyKqCDqp4feXmlx3wsht8c\nPAi33+5E0b/xBpxsvmfAYlESiWj6WGqr6kMhxw+LSI9wGzaMeOLnn+Hyy6FyZSfrY1Uvqe4SnMz9\nmQz/eDhjV4zl+hbX83X/r8OaNmwkDl7iWOa564SVc7cewLxICysLxMuYa1nXuWIFnHmmk5f+zTfD\nNyrx3p+RiEUJh3jvz0Sk0CcWEfmNQ2mCbwNedvfL4eROuSOy0gwj9rz6Ktx2Gzz7LHTvHms1scXy\nohhesbXCDKMAsrMdB/3MmY4/pVmzWCuKHRaLUnaIpo/FMMoUv/4KV14JOTmwdKmT8bGsYrEoRmnw\n4mMxIkS8jLmWJZ1ffunEpzRrBu++GxmjEg/9mZaRxhn3nBG1WJRwiIf+hPjR6QdF+Vgaqup30RRj\nGLFk1izo1w+eeAKuuSbWamJDaCxKjxN6MPz64RaLYpSYQn0sIrJcVc8QkQ9U9R9R1hU25mMxvJKT\n42R6nDjR8amccUasFUUfi0UxIDo+liQRuRdoIiIDcYIjc1FVfSLcxg0j1uze7TydZGY6/pRatWKt\nKLpYLIoRCYrysVwBZANJQGV3OyZk3wiTeBlzTVSdGzY4Sbnq1YMFC6JnVILQn15iUYKg0wumM3gU\n+sSiquuBYSKyRlXfiaImw4g477zj5KR/5BFn2fuygsWiGNHAy1ph1XAWoTzHPbUIZxHKXZGVFh7m\nYzEKQhWGD4dRo2D6dGjbNtaKooPFohheiGYcy3icdMSX4/hZegITgMvCbdwwosnevc5TyvffO/6U\n5ORYK4oOFotiRBsvcSyNVPV+Vd3k5mZJBRpFWFeZIF7GXBNB53ffOU8nRx8NixfH1qhEqz/DzYuS\nCO97kIgXnX7gxbDsF5Gzcw9EpD2wL3KSDMNfPvgA2rRxfCnjx0PFirFWFFk27NhAyvQUuk7pSrem\n3Vj777Wk/C2FcmLx0EZ08OJjaQ68BOSu6ZoJXKuqqyOsLSzMx2KowtNPOz6VV1+Fv/891ooiS24s\nyox1M/JiUY6ucHSsZRlxRNR8LKq6CjhVRKq6x4F22hsGwP79cOONsGYNfPqpk5c+UQmNRenTog8b\nBmywWBQjpnh+NlbVXWZU/CVexlzjTecPP8A558Aff8DHHwfPqPjVn6GxKL/s+4XVN67m8Y6P+2ZU\n4u19DzrxotMPbNDVSCg+/tgJeuzeHaZMgUoJuCrJweyDjFk+hiajmrAsYxlLei/hxa4vUrdK3VhL\nMwzA8rEYCcQLL8DQoTBpEnTqFGs1/hMai5JcOZlh5w+jVXKrWMsyEoio5mMRkXZAg5Dyqqovhdu4\nYfjBgQNY3IN6AAAeOklEQVRwyy2wZAl89BGcdFKsFflPbixKjuYw6qJRdDwxmEvYGwZ4GAoTkcnA\nf4F2QEt3s5BdH4iXMdcg6/zpJ/jHP5y///3vorgwKiXpz9BYlDvb3kla3zQuaHRBVIxKkN/3UExn\n8PDyxHIGcIqNKxlBY9ky6NYN+vSB//wHPvww1or8IzcvykebP2LouUPp06KP5UUx4gYvcSzTgVtV\nNSM6kvzBfCyJzUsvwaBBMGYMXHpprNX4h8WiGLEkmj6WmsBaEVkK/OGeU1XtWlxFEekEPIWz9P6L\nqjq8gDLPABfhRPP3UtWV7vnxwP8C21W1WUj5Y4FpwAlAOpCiqjs9vA4jAcjKgjvvhDlzYNEiOOWU\nWCvyB4tFMRIJL9ONU4FLgUeAEcBIdysSEUkCRgOdgFOAK0Wkab4ynYHGqnoS0Bd4LuTyBLdufgYD\n76tqE2CBexyXxMuYa1B0/vILXHghrF/vLCKZ36gERWdxhOoMjUXZsW+H77Eo4RCP/Rlk4kWnHxRr\nWFR1EbAeqIKT4Gutqi72cO9WwEZVTVfVg8BU4JJ8ZboCk9x2PgeqiUht93gJzvIx+cmr4/5NoIEQ\nozCWL4eWLZ1tzhyoXj3WisKjoFiUsV3HWiyKkRAUOxQmIik4s8JyjcloEblTVacXUzUZ2BJy/ANw\nlocyycBPRdy3lqpuc/e3AXGbTLZDhw6xluCJWOscPx7uvhuef95x1hdGrHV6QVX5uebP/M9z/0Ny\n5WRm9pgZ2FiUeOhPMJ1BxIuP5T7gTFXdDiAiNXGGoIozLF495/kdRZ497qqqImIe+gTljz+c+JTF\ni50ZX02bFl8nyMzfNJ8hC4aQnZNtsShGQuPFsAjwc8jxDv5sDApiK1Av5LgezhNJUWXquueKYpuI\n1FbVn0SkDrC9sIK9evWigbtQVLVq1WjevHner4bc8c5YHq9atYrbbrstMHoKOw4dG45W+6+9toj7\n74dTTunA0qWwYsUitm2Lz/5My0ij3+h+/PTbTzzR9wlq/lyTclvKsXjL4kDoK+w4qP2Z/zgW/5+J\n0p+5++np6fiKqha54QyDzQN6Ab2B94DHPdQ7AvgWJ2K/ArAKaJqvTGfgHXe/NfBZvusNgC/ynXsc\nuNvdHwwMK6R9DToLFy6MtQRPRFvnBx+o1q6tOmyYak6O93pB68+vf/laL3/tcq0zoo4+t+w5PZB1\nQFWDp7MwTKe/xINO93uzWLtQ3OYljkVw0hC3xxmmWqKqs7wYLRG5iEPTjcep6mMi0s/91n/BLZM7\nc2wv0FtVV7jnpwDnAn/BeSoZqqoT3OnGrwH1KWK6scWxxB+qMGIEPPEETJ4M550Xa0Wlw2JRjHjF\nrzgWW4TSCAR79sB11zn56F9/HerXj7WikpM/FmVw+8GBmDZsGF7xy7AUOt1YRD52//4mInvybbvD\nbdiIn3ntkda5fr2z1H316o6TvrRGJVb9WdJYFHvf/cV0Bo9Cnfeq2s79e0z05BhljZkznUyPjz3m\nrPkVT2TlZDF+5XgeXPwgreu2ZknvJZxc4+RYyzKMmOPFx/KyqvYs7lzQsKGwYJOVBffdB1OnOkNf\nLVvGWpF3VJUZ62Zw7wf3Wl4UI6GI5lph/5Ov4SNwVjw2jFLx889w5ZUgAmlpUKNGrBV5Z8GmBQxe\nMNhiUQyjCIrysdwjInuAZqH+FZwZWrOjpjCBiZcxVz91LlvmPJ2ceSa8956/RiWS/bk8YzkdX+7I\njW/fyKA2g8LKi1IW3/dIYjqDR1E+lkeBR0XkMVUdEkVNRoLy4otwzz1OCuF//jPWarxheVEMo+R4\n8bFcBnyQGysiItWADqr6RhT0lRrzsQSH33+H/v3hk08cZ/3JceDfztiTwQOLHrBYFKNMEfHpxiHc\nHxqA6O6nhtuwUTbYvBnOPht273aWug+6Ucncn8ng+YNp9lwzqlasyoYBGxhy9hAzKoZRArwYloKs\nV5LfQsoi8TLmWlqd8+dDq1ZwxRUwbRocE+GJ6+H0ZzTzoiT6+x5tTGfw8DIrbLmIPAH8H46RuRlY\nHlFVRlyjCsOHw9NPw5Qp8Pe/x1pR4VgsimH4jxcfyzHAf4DclZveBx5W1b0R1hYW5mOJDbt3Q69e\nsHUrzJgBdQOat8piUQzjz9haYcVghiX6rFvnzPbq0MF5WjnyyFgrKpjQWJRh5w+zWBTDcIma815E\njhORESLyjogsdLcPwm3YiJ8xVy86p0+Hc845lOkxFkalOJ1+xqKEQyK970HAdAYPLz6WV4BpwMVA\nP5y8LD8XVcEoO2RlwZAhzrIs770HZwRwTQaLRTGM6OLFx7JCVU8XkTWqeqp7Lk1VA726kw2FRZ7t\n250ZX0cc4Tjp//KXWCs6HItFMYySEc04lgPu359E5GIROR2oHm7DRnzz+efO0ixt28K77wbLqFgs\nimHEFi+G5WE32v4OYBDwInB7RFWVEeJlzDVUp6qzJEuXLjBqFDz8MCQFJKrpvfnvRS0WJRzi8X0P\nMqYzeBTpYxGRJKCJqs4BdgIdoiHKCCb798PNNzsR9B99BE2axFqRQ1ZOFhNWTuCemfdwbodzLRbF\nMGKMFx/LMlU9M0p6fMN8LP6Sng7dusFJJzmLSUY6it4LobEodavU5bHzHrNYFMMIg6jFsYjIk0B5\nnJlhe3Gi71VVV4TbeCQxw+If8+bBv/7lTCW+7TYnj0qsyY1FydEchp03jPNPPN9iUQwjTKLpvG8B\n/A14EBgJjHD/GmES9DHXnBx45BG48spFTJsGt98ee6MSGotyZ9s7WXbDMjo2cgIcg96fuZhOfzGd\nwaNQH4uI3KqqTwP3qepHUdRkBIBdu+Daa2HbNifg8dxzY6snNxbl4y0fM/ScoVzX4jqLRTGMgFLo\nUJiIrFbV00Rkpaq2iLKusLGhsNLz5Zdw2WXQsSM8+SRUqBA7LbmxKDPXz8yLRalUvlLsBBlGAhON\nnPdrReQbIFlEvsh3TXODJY3EYtIkGDQIRo50/CqxInN/JsM/Hs7YFWO5vsX1fN3/68BNGzYMo2AK\n9bGo6pXA2cBGnOVcuoRsXaOiLsEJ0pjrvn3Qpw8MGwYLFx5uVKKpMzQvyq/7f2X1jasZ3nG4J6MS\npP4sCtPpL6YzeBQZx6KqPwH2ZJLgbNgA3btDs2awbFlsphJbXhTDSBxs2fwyzrRpTj76hx+Gvn2j\nP+srfyzKsPOGcWZy3IVNGUZCEA0fi5HA/PEH3HGHs87X3Llw+unR1xAaizL6otEWi2IYCYKXOBYA\nRMSm4vhMrMZcv/sO2reHjAxYvrx4o+K3zqJiUcIhXsawTae/mM7g4SXRV1sRWQt87R43F5FnI67M\niAizZ0Pr1nD11U7q4GrVotf2hh0bSJmeQtepXenWtBtr/72WlL+lUE48/74xDCMO8LKky1KgO/Bm\nbjyLiHylqn+Lgr5SYz6Wwzl4EO691/GpTJ0KbdpEr22LRTGM+CCqPhZV3ZxvmCIr3IaN6PHDD05C\nripVnKGvGjWi025oLEqfFn0sFsUwyghexiA2i0g7ABGpICKDgHWRlVU2iMaY67x5cOaZ8L//C3Pm\nlM6olFRnaCxKNPOixMsYtun0F9MZPLw8sdwEPA0kA1uBecDNkRRlhE92Njz4oLPE/ZQp0KFD5Nu0\nWBTDMMDiWBKSbdvgqqucbI+vvgq1a0e2vdBYlOTKyQw7f5jlRTGMOCTiPhYRGVVEPVXVW8Jt3PCf\nDz90jErv3pCaGvm0wbmxKNk52Yy6aBQdTwx/2rBhGPFNUT6W5UCauy0vYCsWEekkIutF5BsRubuQ\nMs+411eLSIvi6opIqoj8ICIr3a2TFy1BxM8x15wcZ52vlBRn+Ouhh/wzKgXpDI1FGdRmEGl907ig\n0QUxNSrxMoZtOv3FdAaPQp9YVHVi6LGIVHZO629ebiwiScBo4Hwc38wyEZmtqutCynQGGqvqSSJy\nFvAc0LqYugo8oapPlOB1JjQ7djiLRu7c6az1Va9e5NrKzYvy0eaPGHruUPq06GN5UQzDOAwvcSzN\ngJeAv7infgauVdUvi6nXBrhfVTu5x4MBVHVYSJnngYWqOs09Xg90ABoWVldE7gd+U9Uis1iWFR/L\n559Djx7OIpKPPQblI/QdnxuLMmPdjLxYlKMrHB2ZxgzDiAnRTE08BhioqvVVtT5wh3uuOJKBLSHH\nP7jnvJQ5vpi6A9yhs3EiEsXY8eCgCk8/DV26wFNPwYgRkTEqmfszGTx/MM2ea0bVilXZMGADQ84e\nYkbFMIxC8TLduJKqLsw9UNVFIuLlW8Xr40JJreNzwIPu/kPASKBPQQV79epFgwYNAKhWrRrNmzen\ngzvvNne8M5bHq1at4rbbbitx/V27oEuXRWzbBp991oETT/Rf33vz32PmupnM+n0WrQ604vnmz1Oz\nfM28WJQg9F/+49L2Z7SPQ8fag6CnsGPrz8Tvz9z99PR0fEVVi9yAN4D/AA1whqjuA2Z5qNcaeC/k\neAhwd74yzwNXhByvB2p5qeuebwB8UUj7GnQWLlxY4jorVqg2aqT673+r7t/vv6YDWQf0hbQXNHlk\nsnab1k3X/byuVDpjgen0F9PpL/Gg0/3eLNYuFLd58bEcCzwAtHNPLQFSVTWzmHpH4CxceR6QASwF\nrtQ/O+/7q2pnEWkNPKWqrYuqKyJ1VPVHt/7twJmqelUB7Wtxry2eUIWxY531vkaNcpZo8ff+yutr\nX+e+hfdZLIphlFGitlaYqv4KDCjpjVU1S0T6A3OBJGCcaxj6uddfUNV3RKSziGwE9gK9i6rr3nq4\niDTHGWr7DuhXUm3xxm+/wY03wurV8NFH8Ne/+nv/+ZvmM3i+kxfFYlEMwwib4h5pgDOBWcBK4At3\nW+PH41IkNxJkKOyrr1SbNlXt1Ut1715/21+2dZme/9L52viZxjr1i6manZNdap1BwHT6i+n0l3jQ\niU9DYV6c968Ag4AvgZxIGDejYF5+GQYOhMcfdyLp/cJiUQzDiCRefCwfq2q7IgsFkHj2sezfD7fe\nCosXw/TpcOqp/tx36+6tPLj4QYtFMQyjQKKZj+UBERkHzAcOuOdUVWeG27jxZ775Bi6/HE4+GdLS\noHLl8O+ZPy/KhgEbLC+KYRgRw0uA5LXAaUAn4GJ36xJJUWWF0LnkAK+/Dm3bQt++zlL34RoVv/Ki\n5NcZVEynv5hOf4kXnX7g5YmlJXBy3I4rxQEHDsCdd8Jbb8G770LLluHd72D2QSasmmB5UQzDiAle\nfCwTgBGq+lV0JPlDvPhYvv/eWZG4Th2YMAGqVy/9vdRiUQzDCINo+ljaAKtE5DvgD/ecqqpPLuWy\ny5w50KcP3HWXM/srnNARi0UxDCMoePGxdAJOAi7A8a10AbpGUlSic/AgDB4M1123iJkz4Y47Sm9U\n0jLS6PhyR256+ybubHtnRPKixMvYsOn0F9PpL/Gi0w+8RN6nR0FHmWHzZrjySscxP2YMtCvlRG6L\nRTEMI6hYzvsoMns23HCD84QyaBCU8/K8mA/Li2IYRqSIpo/FCJMDB+Duu2HmTJg1y5lSXFIsFsUw\njHihFL+ZjZKwaZMz3LVpE6xcebhR8TLm6lcsSjjEy9iw6fQX0+kv8aLTD8ywRJDp06F1a7jmGnjj\nDTi2BLYgKyeLMcvH0GRUE5ZlLGNJ7yWM7TqWulXqRk6wYRiGD5iPJQL8/rszfXjuXJg2rWQBj6rK\njHUzuPeDey0WxTCMqGI+loDy9dfQowc0aQIrVkDVqt7rLti0gMELBpOdk22xKIZhxC02FOYjkydD\n+/Zw003Ok0pxRiV3zHV5xnI6vtyRG9++kUFtBkUkFiUc4mVs2HT6i+n0l3jR6Qf2xOIDe/fCgAHw\n8ccwfz6cdpq3elt2bSFleorFohiGkVCYjyVMvvrKWevr9NPhuefgmGOKr5OxJyMvL8rA1gMtFsUw\njEDgl4/FhsJKiSqMGwcdOjgrE7/0UvFGJXN/JoPnD6bZc82ocmQVvu7/NUPOHmJGxTCMhMIMSynY\ns8eZQvzkk06Wx169il7rq7BYlDWfr4ma5nCIl7Fh0+kvptNf4kWnH5iPpYSsXOnM+jr3XFi6FCpV\nKrxsVk4W41eOt7wohmGUKczH4hFVePZZSE2Fp5+Gq64qqqzFohiGEX9YHEsU2bnTyZuyaRN88gmc\ndFLhZS0WxTCMso75WIph6VJnxtfxx8OnnxZuVEoTixIvY66m019Mp7+YzuBhTyyFoOo454cNg+ef\nh8suK7ic5UUxDMM4HPOxFMCOHc5Mr+3bYepUaNjwz2UsL4phGImGxbFEiI8+ghYt4K9/hSVL/mxU\nQmNRqlasyoYBGywWxTAMIwQzLC45OfDYY9C9uzP7a8QIqFDh0PVI5EWJlzFX0+kvptNfTGfwMB8L\nsG0b9OwJ+/dDWhrUDUl5kpWTxYSVE3hg8QMWi2IYhuGBMu9j+eADx6j07u3EqBzhmlqLRTEMo6xh\ncSw+MG0a3H47TJoEHTseOm+xKIZhGKWnTPtYOnaE5csPGZVo50WJlzFX0+kvptNfTGfwKNNPLLk5\n6C0WxTAMwz/KtI/FYlEMwzAOYT6WMMjcn8nwj4czdsVY+rTow4YBG8KaNmwYhmEcIqI+FhHpJCLr\nReQbEbm7kDLPuNdXi0iL4uqKyLEi8r6IbBCReSJSzaueSMSihEO8jLmaTn8xnf5iOoNHxAyLiCQB\no4FOwCnAlSLSNF+ZzkBjVT0J6As856HuYOB9VW0CLHCPiyQrJ4sxy8fQZFQTlmUsY0nvJYztOpa6\nVeoWVzWirFq1Kqbte8V0+ovp9BfTGTwiORTWCtioqukAIjIVuARYF1KmKzAJQFU/F5FqIlIbaFhE\n3a7AuW79ScAiCjEu+WNRZvaYGahYlJ07d8ZagidMp7+YTn8xncEjkoYlGdgScvwDcJaHMsnA8UXU\nraWq29z9bUCtwgS0erGVxaIYhmFEmUgaFq/Tzbx820tB91NVFZFC2xnUZhCX/+1yykkww3XS09Nj\nLcETptNfTKe/mM4AoqoR2YDWwHshx0OAu/OVeR64IuR4Pc4TSKF13TK13f06wPpC2lfbbLPNNttK\ntvnx/R/JJ5Y04CQRaQBkAD2AK/OVmQ30B6aKSGtgp6puE5EdRdSdDVwLDHf/vlFQ437MxTYMwzBK\nTsQMi6pmiUh/YC6QBIxT1XUi0s+9/oKqviMinUVkI7AX6F1UXffWw4DXRKQPkA6kROo1GIZhGCUn\nYSPvDcMwjNgQTK92EUQi6DJIOkWknogsFJGvRORLEbkliDpDriWJyEoReSuoOt1p7K+LyDoRWesO\nuwZN4xD3Pf9CRF4VkSMjodGLThE5WUQ+FZHfReSOktQNgs6gfYaK6k/3eiA+Q8W87yX7DEXKeR+h\nCQFJwEagAVAeWAU0zVemM/COu38W8JnXugHRWRto7u4fA3wdRJ0h1wcCrwCzg/i+u8eTgOvc/SOA\nqkHS6NbZBBzpHk8Dro1hX9YEWgIPA3eUpG5AdAbtM1SgzpDrQfkMFaqzpJ+heHtiyQu6VNWDQG7g\nZCiHBV0CuUGXXurGWmctVf1JVVe553/DCQo9Pmg6AUSkLs6X5Yt4mzYedZ0iUhU4W1XHu9eyVHVX\nkDQCu4GDQCUROQKoBGyNgEZPOlX1Z1VNczWVqG4QdAbtM1REfwbqM1SYztJ8huLNsBQWUOmlTEFB\nl/nr+kVpdR62xow7K64F8LnvCgvX4LU/AZ4E7gRyIqTPi4aiytTFWcXhZxGZICIrRGSsiFQKkMZk\nVf0VGAlsxpkFuVNV50dAo1edkahbUnxpKyCfoaII0meoMEr8GYo3w+J1pkGspxqXVmdePRE5Bngd\nuNX91RUJSqtTRORiYLuqrizgut+E059HAKcDz6rq6TizD4tdX64UlPp/U0QaAbfhDFMcDxwjIlf7\nJ+0wwpmtE82ZPmG3FbDP0J8I6GeoIEr8GYo3w7IVqBdyXA/H8hZVpq5bxktdvyitzq0AIlIemAFM\nVtUC43QCoLMt0FVEvgOmAP8QkZcCqPMH4AdVXeaefx3nQxIkjS2BT1R1h6pmATNx+jcShPM5CNpn\nqFAC9hkqjKB9hgqj5J+hSDmLIuSAOgL4FueXXQWKd5C25pCDtNi6AdEpwEvAk0Huz3xlzgXeCqpO\n4EOgibufCgwPkkagOfAlcJT7/k8Cbo5VX4aUTeVwp3igPkNF6AzUZ6gwnfmuxfwzVJTOkn6GItrp\nEeqgi3BmeWwEhrjn+gH9QsqMdq+vBk4vqm7QdALtccZbVwEr3a1T0HTmu8e5RHBGiw/v+2nAMvf8\nTCIwK8wHjXcBXwFf4BiW8rHqS5xZVVuAXUAmju/nmMLqBk1n0D5DRfVnyD1i/hkq5n0v0WfIAiQN\nwzAMX4k3H4thGIYRcMywGIZhGL5ihsUwDMPwFTMshmEYhq+YYTEMwzB8xQyLYRiG4StmWIyIIyK9\nRGRUCetMcZeWv9WH9u/Jd/xxuPcspr2TRWSViCwXkYb5rkVqaZGIISJniMjTJayTLiLHuvul7m8R\n6VJECoK468uygsWxGBFHRK4FWqrqAI/lawNLVPWkAq4lqWp2Cdvfo6qVS1InHERkMJCkqo/EWkus\ncJcpOUOdBTYj1UaZ6Mt4xJ5YjGIRkQZugqAJIvK1iLwiIheIyMciskFEznTLHSsib7hPGp+KSLMC\n7lXTTRi01N0KWhNrHpDsJj9qLyKLRORJEVkG3CoiF4vIZ+5Kq++LyHHuvY9xNa5xNVwmIo8BR7n3\netkt95v7V0Tkv+Ik11ojIinu+Q5um9PdxEaTC+mX5q6O1SIy002G1Bm4FbhJRD4opN4T4iSgmi8i\nNdxzjUTkXRFJE5EPReSv7vmJIvK029ffikg39/yD7mtaKSJbRWS8e/4aEfncPf+8iJTLfc0i8rD7\nJPVpSJ8V+364/fGWu58qIuPFSaT1rYgU+2MhX3+Pdv+X3heRt0NeT+gTTksRWeju5z3tikhDV/sa\nEXm4uHaNGBLJJQRsS4wNZ32hg8DfcNZhSgPGude6ArPc/VHAf9z9vwMr3f1ewCh3/1WgnbtfH1hb\nQHsnAF+EHC8ERoccVwvZvx4Y4e4PB57IXw7Yk+/+e9y/3XCMmADHAd/jLGvRAdiJs9KwAJ/kas53\nnzU4eSoAHsBdmwq4HxhYSF/mAFe6+/8J6ZcFQGN3/yxggbs/EZjm7jcFvsl3v6qujhbu9dk4T0sA\nzwI9Q9r935B+urcE70cH3HWscNaJ+ggnWdRfgF9y28tX5zvg2Hz9fVlIf9fBWTbksgLKtwQWFvC/\nMxu4xt3/d/731bbgbEdgGN74TlW/AhCRr4DcfCFf4hgegHY4Xx6o6kIR+YuI5B+qOB9oKpK3Snhl\nEamkqvtCyhS0hPi0kP16IvIajhGogJN9EeA8oEduIVXdWcxrag+8qs431XYRWQyciZN4a6mqZriv\nd5X7GvN8BeIkP6qqqkvcU5OA6SH6C1sGPSfktUwGZorI0Tgr3U4P6ZcKuS8DeMN9PevETbLmahCc\nzIMjVXWliPQHzgDS3PscBfzkFj+gqm+7+8uBju6+l/cjFAXeVidZ1A4R2Q7UwskjUxzncKi/fyzs\nia4I2gL/dPcn4xhII4CYYTG88kfIfg5wIGQ/9P+o0BwzIdfPUtUDlIy9IfujcJ5S5ojIuTi/ogtr\nvyi0gPK5ekNfbzbFf1ZC7+PVcSlu2XJApqq2KKRcaF+FtpMKbFbVSSHnJqnqYZMVXEKzAoa+Z6V5\nP0LLeumbXPL3d+h+FoeG5iuWQIsRQMzHYvjJEuBqcMblgZ/1zwmW5gG35B6ISHOP9w79EqrCoV/I\nvULOvw/cHHLvau7uQXFS/hakt4eIlBORmji/qJfiwTipk5o1U0Tau6d6AosK0JqfcsDl7v5VOJMU\n9gDfiUh3V7eIyKlFtS8iXXCe0EJnzS0AuruvJdfnVb+Yl1LS9yOchFQfcqi/6+AMseWSjjMEBs4Q\nZUF8DFzh7kcqEZrhA2ZYDK/k/xWuBeynAmeIyGrgUeDakOu5ZW4BWroO76+AvqVoLxVn2CgN+Dnk\n2sNAddcZv4pDX1xjgDXiOu9zy6vqLBz/xGqcL+U7VXV7Pr2F6cF9ff91X++pwIMFvN787AVaicgX\nrr7cOlcDfVzdX+L4rgpqO3f/dhwf0FLXUZ+qquuA+4B5rqZ5OMOFBd2jJO9HaPmiXlthhPb3N8Ba\nnKHDTzlkqB4AnhZngkZWIe3dCtwsImvc125TWgOKTTc2DCMmiMgEYI6qzoi1FsNf7InFMIxYYr9s\nExB7YjEMwzB8xZ5YDMMwDF8xw2IYhmH4ihkWwzAMw1fMsBiGYRi+YobFMAzD8BUzLIZhGIav/D8C\nvT7hM9J+mQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa595d68>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NtoG from graph: 8.7 \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEZCAYAAABfKbiYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYHHWV//H3h4QQMMAQgVwIOEAAAYEBFuIqkQnXiLsC\nzy4oXpYIugthRVFZiC43L1zcXUVk1d8aIEEFxPUnlxVCEmCQ5ZYfSsIliyS4AySQkEAIAY2Q5Pz+\nqJpUZ5hLZtLVVT39eT1PP3RVV3d9+1DpM3VOXRQRmJmZVcNmRQ/AzMwGDicVMzOrGicVMzOrGicV\nMzOrGicVMzOrGicVMzOrGicVG9AkXSzpJz28/qSkD+W5jnomaRdJqySp6LFYfXBSsZqS9HFJj0h6\nQ9JSSQ9LOjPHVfZ4IlZEvC8ifpPXOiS1SnphYz5EUrOkdZIK+3cpqV3SER3TEfF8RGwdPqHNNpKT\nitWMpC8DVwJXACMiYgRwBvBBSUO6ec+mbqO1+Au72uvIZcySBm3EYpHX+q0xOKlYTUjaFrgEODMi\n/m9EvAkQEXMj4lMR8Va63DRJP5R0h6Q3gFZJH5H0mKSVkp6XdFHF53b8df85SYslvZgmrw4BDJE0\nXdLrabnr4Ir3t0s6Mn0+SNJXJS1Ml31U0k7pa99L170ynX9YP+PQJunrkv47Xcddkt6dvtyxx/Ra\nWnIal77nNEnzJb0qaYakXSo+7xhJv5f0mqR/l3SfpNPT1yZJekDSdyQtBy6StJukeyQtl7RM0k/T\n/zekJbxdgNvT9X+l896TpNGSbpP0iqQFkj5bMZaLJd3cXaytMTipWK38JbAFcOtGLHsK8I2IGAY8\nALwBfCoitgU+Apwp6fhO72kFxgLHAOd1JAqSv7o/CtwIbAvcBlxd8b4gK199Cfg48OGI2Ab4DPCn\n9LU5wAHAdsANwC+627vayO83CdgRGAJ8JZ0/Pv3vtmnJ6ZH0e04BTgS2B+5PvwuStgd+AZwHDAd+\nTxLnylLVocCz6bouTePxLWAUsDewM3AxQER8Gnge+Kt0/f/axdhvSpcZBfwtcKmkCRWv/zXdx9oa\ngJOK1cr2wPKIWNcxQ9KDklZI+mOnv/xviYiHACLizxFxX0Q8lU4/QfLDdninz78kIv4UEU8C15H8\ncHe4PyJmpH2Bn5Ikh658FvhaRCzoWFdEvJo+/1lErIiIdRHxHZIEuVc/4hDAdRGxMCJWAzcDLR0h\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x785fc18>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NtoG from graphical integration: 8.62 \n",
+ "\n",
+ "HtoG: 1.4 m\n",
+ "The depth of packing recquired is 12.84 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8: Page 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.8\n",
+ "# Page: 317\n",
+ "\n",
+ "print'Illustration 8.8 - Page: 317\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#***Data***\n",
+ "# a:NH3 b:air c:H2O\n",
+ "ya = 0.416;# [mole fraction]\n",
+ "yb = 0.584;# [mole fraction]\n",
+ "G1 = 0.0339;# [kmol/square m.s]\n",
+ "L1 = 0.271;# [kmol/square m.s]\n",
+ "TempG1 = 20;# [OC]\n",
+ "#********#\n",
+ "\n",
+ "# At 20 OC\n",
+ "Ca = 36390;# [J/kmol]\n",
+ "Cb = 29100;# [J/kmol]\n",
+ "Cc = 33960;# [J/kmol]\n",
+ "lambda_c = 44.24*10**6;# [J/kmol]\n",
+ "# Enthalpy base = NH3 gas, H2O liquid, air at 1 std atm.\n",
+ "Tempo = 20;# [OC]\n",
+ "lambda_Ao = 0;# [J/kmol]\n",
+ "lambda_Co = 44.24*10**6;# [J/kmol]\n",
+ "\n",
+ "# Gas in:\n",
+ "Gb = G1*yb;# [kmol air/square m.s]\n",
+ "Ya1 = ya/(1-ya);# [kmol NH3/kmol air]\n",
+ "yc1 = 0;# [mole fraction]\n",
+ "Yc1 = yc1/(1-yc1);# [kmol air/kmol NH]\n",
+ "# By Eqn 8.58:\n",
+ "Hg1 = (Cb*(TempG1-Tempo))+(Ya1*(Ca*(TempG1-Tempo))+lambda_Ao)+(Yc1*(Cc*(TempG1-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "\n",
+ "# Liquid in:\n",
+ "xa1 = 0;# [mole fraction]\n",
+ "xc1 = 1;# [mole fraction]\n",
+ "Hl1 = 0;# [J/kmol air]\n",
+ "\n",
+ "#Gas out:\n",
+ "Ya2 = Ya1*(1-0.99);# [kmol NH3/kmol air]\n",
+ "# Assume:\n",
+ "TempG2 = 23.9;# [OC]\n",
+ "yc2 = 0.0293;\n",
+ "def f(Yc2):\n",
+ " return yc2-(Yc2/(Yc2+Ya2+1))\n",
+ "Yc2 = fsolve(f,0.002);# [kmol H2O/kmol air]\n",
+ "Hg2 = (Cb*(TempG2-Tempo))+(Ya2*(Ca*(TempG2-Tempo))+lambda_Ao)+(Yc2*(Cc*(TempG2-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "\n",
+ "# Liquid out:\n",
+ "Lc = L1-(Yc1*Gb);# [kmol/square m.s]\n",
+ "La = Gb*(Ya1-Ya2);# [kmol/square m.s]\n",
+ "L2 = La+Lc;# [kmol/square m.s]\n",
+ "xa = La/L2;\n",
+ "xc = Lc/L2;\n",
+ "# At xa & tempo = 20 OC\n",
+ "delta_Hs = -1709.6*1000;# [J/kmol soln]\n",
+ "\n",
+ "# Condition at the bottom of the tower:\n",
+ "# Assume:\n",
+ "TempL = 41.3;# {OC}\n",
+ "# At(TempL+TempG1)/2:\n",
+ "Cl = 75481.0;# [J/kmol]\n",
+ "def f40(Cl):\n",
+ " return Hl1+Hg1-((Gb*Hg2)+(L2*(Cl*(TempL-Tempo)+delta_Hs)))\n",
+ "Cl = fsolve(f40,7);# [J/kmol.K]\n",
+ "\n",
+ "# For the Gas:\n",
+ "MavG = 24.02;# [kg/kmol]\n",
+ "Density_G = 0.999;# [kg/cubic m]\n",
+ "viscosity_G = 1.517*10**(-5);# [kg/m.s]\n",
+ "kG = 0.0261;# [W/m.K]\n",
+ "CpG = 1336;# [J/kg.K]\n",
+ "Dab = 2.297*10**(-5);# [square m/s]\n",
+ "Dac = 3.084*10**(-5);# [square m/s]\n",
+ "Dcb = 2.488*10**(-5);# [square m/s]\n",
+ "PrG = CpG*viscosity_G/kG;\n",
+ "\n",
+ "# For the liquid:\n",
+ "MavL = 17.97;# [kg/kmol]\n",
+ "Density_L = 953.1;# [kg/cubic m]\n",
+ "viscosity_L = 6.408*10**(-4);# [kg/m.s]\n",
+ "Dal = 3.317*10**(-9);# [square m/s]\n",
+ "kl = 0.4777;# [W/m.K]\n",
+ "ScL = viscosity_L/(Density_L*Dal);\n",
+ "PrL = 5.72;\n",
+ "sigma = 3*10**(-4);\n",
+ "G_prime = G1*MavG;# [kg/square m.s]\n",
+ "L_prime = L2*MavL;# [kg/square m.s]\n",
+ "# From data of Chapter 6:\n",
+ "Ds = 0.0472;# [m]\n",
+ "a = 57.57;# [square m/cubic m]\n",
+ "shiLt = 0.054;\n",
+ "e = 0.75;\n",
+ "# By Eqn. 6.71:\n",
+ "eLo = e-shiLt;\n",
+ "# By Eqn. 6.72:\n",
+ "kL = (25.1*Dal/Ds)*(Ds*L_prime/viscosity_L)**0.45*ScL**0.5;# [m/s]\n",
+ "c = Density_L/MavL;# [kmol/cubic m]\n",
+ "Fl = kL*c;# [kmol/cubic m]\n",
+ "# The heat mass transfer analogy of Eqn. 6.72:\n",
+ "hL = (25.1*kl/Ds)*(Ds*L_prime/viscosity_L)**0.45*PrL**0.5;# [m/s]\n",
+ "# The heat transfer analogy of Eqn. 6.69:\n",
+ "hG = (1.195*G_prime*CpG/PrG**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [W/square m.K]\n",
+ "# To obtain the mass transfer coeffecients:\n",
+ "Ra = 1.4;\n",
+ "Rc = 1-Ra;\n",
+ "# From Eqn. 8.83:\n",
+ "Dam = (Ra-ya)/(Ra*((yb/Dab)+((ya+yc1)/Dac))-(ya/Dac));# [square m/s]\n",
+ "Dcm = (Rc-yc1)/(Rc*((yb/Dcb)+((ya+yc1)/Dac))-(yc1/Dac));# [square m/s]\n",
+ "ScGa = viscosity_G/(Density_G*Dam);\n",
+ "ScGc = viscosity_G/(Density_G*Dcm);\n",
+ "# By Eqn. 6.69:\n",
+ "FGa = (1.195*G1/ScGa**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [kmol/square m.K]\n",
+ "FGc = (1.195*G1/ScGc**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [kmol/square m.K]\n",
+ "Ra = Ra-0.1;\n",
+ "# From Eqn. 8.80:\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " def f41(xai):\n",
+ " return Ra-(Ra-ya)*((Ra-xa)/(Ra-xai))**(Fl/FGa)\n",
+ " xai = numpy.arange(xa,0.10,0.01)\n",
+ " plt.plot(xai,f41(xai))\n",
+ " Ra = Ra+0.1;\n",
+ "\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Mole fraction NH3 in the liquid, xa\");\n",
+ "ylabel(\"Mole fraction NH3 in the gas ya\");\n",
+ "title(\"Operating Line curves\");\n",
+ "plt.show()\n",
+ "Rc = Rc-0.1;\n",
+ "# From Eqn. 8.81:\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " def f42(xci):\n",
+ " return Rc-(Rc-yc1)*((Rc-xc)/(Rc-xci))**(Fl/FGc)\n",
+ " xci = numpy.arange(xc,0.85,-0.01);\n",
+ " plot(xci,f42(xci))\n",
+ " Rc = Rc+0.1;\n",
+ "\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Mole fraction H2O in the liquid, xc\");\n",
+ "ylabel(\"Mole fraction H2O in the gas, yc\");\n",
+ "title(\"Operating line Curves\");\n",
+ "plt.show()\n",
+ "# Assume:\n",
+ "Tempi = 42.7;# [OC]\n",
+ "# The data of Fig. 8.2 (Pg 279) & Fig 8.4 (Pg 319) are used to draw the eqb curve of Fig 8.25 (Pg 320).\n",
+ "# By interpolation of operating line curves with eqb line and the condition: xai+xci = 1;\n",
+ "Ra = 1.38;\n",
+ "Rc = 1-Ra;\n",
+ "xai = 0.0786;\n",
+ "yai = f41(xai);\n",
+ "xci = 1-xai;\n",
+ "yci = f42(xci);\n",
+ "# From Eqn. 8.77:\n",
+ "dYa_By_dZ = -(Ra*FGa*a/Gb)*math.log((Ra-yai)/(Ra-ya));# [kmol H2O/kmol air]\n",
+ "# From Eqn. 8.78:\n",
+ "dYc_By_dZ = -(Rc*FGc*a/Gb)*math.log((Rc-yci)/(Rc-yc1));# [kmol H2O/kmol air]\n",
+ "# From Eqn. 8.82:\n",
+ "hGa_prime = -(Gb*((Ca*dYa_By_dZ)+(Cc*dYc_By_dZ)))/(1-exp(Gb*((Ca*dYa_By_dZ)+(Cc*dYc_By_dZ))/(hG*a)));# [W/cubic m.K]\n",
+ "# From Eqn. 8.79:\n",
+ "dtG_By_dZ = -(hGa_prime*(TempG1-Tempi))/(Gb*(Cb+(Ya1*Ca)+(Yc1*Cc)));# [K/m]\n",
+ "# When the curves of Fig. 8.2 (pg 279) & 8.24 (Pg 319) are interpolated for concentration xai and xci, the slopes are:\n",
+ "mar = 0.771;\n",
+ "mcr = 1.02;\n",
+ "lambda_c = 43.33*10**6;# [J/kmol]\n",
+ "# From Eqn. 8.3:\n",
+ "Hai = Ca*(Tempi-Tempo)+lambda_Ao-(mar*lambda_c);# [J/kmol]\n",
+ "Hci = Cc*(Tempi-Tempo)+lambda_Co-(mcr*lambda_c);# [J/kmol]\n",
+ "# From Eqn. 8.76\n",
+ "Tempi2 = TempL+(Gb/(hL*a))*(((Hai-Ca*(TempG1-Tempo)-lambda_Ao)*dYa_By_dZ)+((Hci-Cc*(TempG1-Tempo)-lambda_Co)*dYc_By_dZ)-((Cb+(Ya1*Ca)+(Yc1*Cc))*dtG_By_dZ));# [OC]\n",
+ "# The value of Tempi obtained is sufficiently close to the value assumed earlier.\n",
+ "\n",
+ "deltaYa=-0.05;\n",
+ "# An interval of deltaYa up the tower\n",
+ "deltaZ = deltaYa/(dYa_By_dZ);# [m]\n",
+ "deltaYc = (dYc_By_dZ*deltaZ);\n",
+ "# At this level:\n",
+ "Ya_next = Ya1+deltaYa;# [kmol/kmol air]\n",
+ "Yc_next = Yc1+deltaYc;# [kmol H2O/kmol air]\n",
+ "tG_next = TempG1+(dtG_By_dZ*deltaZ);# [OC]\n",
+ "L_next = L1+Gb*(deltaYa+deltaYc);# [kmol/square m.s]\n",
+ "xa_next = ((Gb*deltaYa)+(L1*xa))/L_next;# [mole fraction NH3]\n",
+ "Hg_next = (Cb*(tG_next-Tempo))+(Ya_next*(Ca*(tG_next-Tempo))+lambda_Ao)+(Yc_next*(Cc*(tG_next-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "Hl_next = (L1*Hl1)+(Gb*(Hg_next-Hg2)/L_next);# [J/kmol]\n",
+ "# The calculation are continued where the specified gas outlet composition are reached.\n",
+ "# The packed depth is sum of all deltaZ\n",
+ "Z = 1.58;# [m]\n",
+ "print\"The packed depth is: \",Z,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.8 - Page: 317\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEZCAYAAABWwhjiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmcTfUbwPHPYyv7EirCJFsLBpFIRpYk7T+VKFqkZEmU\npKLV2mJLlqhIlspaSgll35csFRprikqoLGOe3x/nTN2mmXHNXc69d57363Vfc7Z7vs9zz535zvl+\nz/keUVWMMcaYzMjmdQDGGGOil1UixhhjMs0qEWOMMZlmlYgxxphMs0rEGGNMplklYowxJtOsEjFZ\nmojUE5GtYS6ztIgcEREJZ7nGhIJVIiakRKStiGwUkT9E5EcReUNECnoYT7KIlE2ZV9WvVbVSiMpa\nICL3p16uqrtUNb/aTVomBlglYkJGRLoB/YBuQAGgNlAG+FxEcoagvOz+bhrsstOh7iuqiMvrOEx0\nsErEhISIFAD6AB1Vda6qnlLVncDtQBzQ2t2uj4h8ICKTROSwiKwWkSo++ykhIh+KyM8iskNEOvms\nS3nveBH5HWgjIjVFZKmI/CYi+0RkaEqFJSJfuW9d7zYntRCRBBHZ7bPPRBHpJiLrReSQG9dZPuuf\ncPe7R0QeSH1m4+dnE+e+L5s7v0BEnheRRe5n8JmInOOzfW0RWeLmtE5E6mew71Ii8pH7eR0UkaE+\nn9X408TwoogsBv4AHheRlan23VVEZrjTZ4nIIBHZKSL7RWSEiJztrisqIrPdeH8Rka+sUopdVomY\nUKkDnA185LtQVf8APgEa+yy+EZgCFAYmAtNFJLv7B24WsBYoATQEHhWRJqneO1VVC7rvPQV0Ac4B\nrnTf08Et+2r3PVXc5qSpacStQAvgWuBCoArQFkBEmgJd3X2WBxII3plGS7ec4kAuoLtbZklgNvC8\nqhZ2l38oIkVT78A9E5sN/IBzxlcSeN8nr9NpDTwA5APeBCqKSDmf9XcB77nT/YByQFX3Z0ngWXdd\nN2A3UNTNp6c13cUuq0RMqBQFDqpqchrr9rvrU6xS1Y9U9RTwKk7lcyVQEyiqqi+qapKq/gCMAe70\nee8SVZ0JoKrHVHWNqq5Q1WT3zGcUkO5/7ukYoqr7VfU3nEos3l1+OzBWVbeo6l9Ab4LTNKbAOFXd\npqrHcCrUlDJbA5+o6qcAqvoFsApolsZ+agHnA4+r6l+qelxVl7jrThenAm+7uSWr6mFgBk7lhoiU\nByoCM92zinbAY6p6SFWPAn3557iccOOIc89AF5/Zx2GiiVUiJlQOAkVTmktSOR844DO/J2XC/Y91\nD86ZR2mghNss8puI/Ab0xPnv9j/vBRCRCm5Tyo9uE9dLOGclZ2K/z/RfQF6fuHf7rPtX2QFKXWY+\nd7oM0CLVZ1AXOC+NfZQCdqZTcftjd6r5ibiVCM5ZyDS3kisG5AFW+8Q0h3/+MRgIbAPmish2EemR\nyXhMFLBKxITKUuA4cJvvQhHJBzQF5vksLuWzPhtwAbAX54/aD6pa2OdVQFWbu5un1XE9AtgMlHOb\nuHoRvO/5j76xppoOlV3A+FSfQX5VHZDGtruB0ulcYHAU5w9/irQqodSf5RdAMRGpinOWMdFdfhCn\norvEJ6ZCqloAQFWPqmp3Vb0Ip7nxMRG5xt+ETXSxSsSEhKr+DjwHDBWRa0Ukp4jE4TTV7AbG+2xe\nQ0RuEZEcwKPAMWAZsBI44nZm53b7SS4Tkcvd96XVRJMPOAL8KSKVgIdTrf8JuOgM00kpZwpwr4hU\nEpE8wDN+vDeniJzt88pxmjJSmwDcICJN3PzPdi8GKJnGtstxKrp+IpLH3baOu24dcLXb8V4Q54wu\nwxhU9SQwFRiE01/1ubs8GRgNvC4ixcDpu0npqxKR60WknNvsdRinn+pUOvmZKGeViAkZVR0IPIXz\nR+h3nIphJ9DQ/QMFzn+/M4A7gF+BVsCtblv6KaA5Tv/ADpwmsFE4lwunvDf1f8/dcZpeDrvbTkq1\nTR/gHbcZ5n/p7ONfaaSsd/slhgDzge9wzrbAOeNKzwjgT5/X2HTK1FTTKWXuAW7C+Rx/xjkz6UYa\nv7vuH/cbcDq6d+FU1re7674AJgMbcCrnWaeJIcVEnAsJpqZqJuuB02S1zG02/Byo4K4r784fAZYA\nw1V1YRr7NjFAvLxowr3a5XUgOzBGVfunWp+A8wdmh7voQ1V9MaxBmpASkd44TU93ex3LmRKRi4GN\nQK4A+iGMiWrpnVqHnNtuOwxohNP+vVJEZqrqllSbLlTVG8MeoAmXqLp/QERuwblEOQ/QH5hpFYjJ\nyrxszqoFbFPVRLdpYxLOaXtqUfVHxpyxaLur+0GcfpVtwEn+2+diTJbi2ZkIzs1JqS+XvCLVNgrU\nEZH1OGcr3VV1c5jiM2Ggqs95HcOZUNXrvI7BmEjiZSXiz3+fa4BSqvqniFwHTOefzjtjjDEe87IS\n2ct/r7n/181bqnrEZ3qOOCPAFlHVX323E5Foag4xxpiIoKoBdxd42SeyCijvDgSXC+cSz5m+G4jI\nuSkDt4lILZyryX79765AVWPy1bt3b89jsPwsP8sv9l7B4tmZiKomiUhH4DOcS3zfUtUtItLeXT8S\n+B/wsIgk4Vxjf2e6O4xRiYmJXocQUpZfdLP8jJfNWajqHJwxd3yXjfSZHg4MD3dcxhhj/GN3rEe4\ntm3beh1CSFl+0c3yM57esR4sIqKxkIcxxoSLiKBR3rFu/LBgwQKvQwgpyy+6WX7GKhFjjDGZZs1Z\nxhiTBVlzljHGGM9ZJRLhYr1N1vKLbpafsUrEGGNMplmfiDHGZEHWJ2KMMcZzVolEuFhvk7X8opvl\nZ6wSMcYYk2nWJ2KMMVmQ9YkYY4zxnFUiES7W22Qtv+hm+RmrRIwxxmSa9YkYY0wWZH0ixhhjPGeV\nSISL9TZZyy+6WX7GKhFjjDGZZn0ixhiTBVmfSIzZ8PUqkk8lex2GMcacEatEIsSBu69jSZnCTBk4\n+l/LY71N1vKLbpaf8bQSEZGmIrJVRL4XkR4ZbFdTRJJE5NZwxhdO9bbuZXvC/6jz/MNMr1CS2RPm\neB2SMcaclmd9IiKSHfgWaATsBVYCLVV1SxrbfQ78CYxT1Q/T2FfM9Ikc+eVXZt19N00WzGFmhUqU\nHTCRhCbxXodljIkxsdAnUgvYpqqJqnoSmATclMZ2nYAPgAPhDM4r+c8pwl2ffMypDd9TJHdeLru5\nOq/WrcfqVbu9Ds0YY/7Dy0qkJOD7l3GPu+xvIlISp2IZ4S6KjdMNP5xb7iJuXrqSL/oPpuqhfRS/\nJo7nr72Vb78/7HVoQRXrbc6WX3SL9fyCIYeHZftTIbwOPKmqKiICpHvq1bZtW+Li4gAoVKgQ8fHx\nJCQkAP98EaJx/rzKlWH4W3y5cAHN3hrO8Trn0PKS5tzaqQMt/tfY8/hs3uZtPjrmU6YTExMJJi/7\nRGoDfVS1qTvfE0hW1f4+2+zgn4qjKE6/SDtVnZlqXzHTJ5IhVdYMeZUCzz9LYl7l02uf5akBT1Ck\nsF1kZ4w5M8HqE/GyEsmB07HeENgHrCCNjnWf7ccBs1T1ozTWZY1KJEVSEst7PU6ZN4Yz7/x8rL9p\nML373E3evF4HZoyJFmHrWBeR4iIySETmiMh89/VloAWrahLQEfgM2AxMVtUtItJeRNoHuv9Y4Xsq\n+rccObii/2ucu+8XLrqiIU8Oa8uoK8vw7IvzOH487CEGJM38YojlF91iPb9g8Kcd5D1gK3Ah0AdI\nBFYFo3BVnaOqFVW1nKr2dZeNVNWRaWx7b1pnIVmZ5M9P7fFTyf/9D9Q9vwydXm7Cc3WrMmDYNyQl\neR2dMSYrOG1zloisUdXqIrJBVau4y1ap6uVhidAPWa45Kx1/rl/Nd/ffTaFt3/LSpQnUeOhdHmxV\nkmzWZWKMSSWc94mccH/uF5HmIlIdKBxowSb48lStQfyqzRSaMoPHf9xCrcfLcHuju5g843esjjXG\nhII/lchLIlII6AZ0B8YAXUMalflbZtpkCzVpToXteynVfyiDN86m4GPFaNqsG5/NOxb8AAMU623O\nll90i/X8gsGfSmSJqh5S1Y2qmqCq1VNfYmsikAjF2jxMyb0HqXz/47y3aDj7Hz2Ha25+hSXLTnkd\nnTEmRvjTJ/I9sA4YB8yJxM4H6xPxw+HD7HqqM/nHvseoSwvy6UVDGPxUS6pUCbhJ1BgThcJ2n4iI\nZMMZJPE+oCYwBWcgxO8CLTxYrBLxn+7Zw87O95F37nxerlqKLeXHMLTXNZQv73VkxphwClvHuqom\nq+pcVb0TaAe0AVaKyEIRqRNoACZjwW6TlQsuIO6juRRZvJKuFGDEzGvp3a46tz20gd0ejPEY623O\nll90i/X8gsGfmw2LikgXEVmN07HeEWcIkm7AxBDHZ0Ike9V4Si9eR8nJs3hl3wF6zqrBvW2u5b7H\nEvn5Z6+jM8ZEC3+as74DJgBjVXVPqnVPqmq/EMbnF2vOClByMn9OeJu/Hu/G0kJ/8HTJO2lw5as8\n270ohe1ibmNiUlj7RFQ1oh/+bZVIkBw/zpHX+qN9+zH1omReLtiZ1o2e5fEu+ciXz+vgjDHBFNY+\nkUALMZkX1jbZs84i/5PPUiBxL7dddQ9rVw7mrE/Po0LzV3jl9RMcC8FtJrHe5mz5RbdYzy8YbEAM\n81+FC1NoyCgKbPqOh85LYMPap9g9pyRlmoxn9JhkG5fLGPM3z4aCDyZrzgqxtWv5tVM7fv9uE72u\nPJ+Fv73BoIev5Y47xMblMiZKhXMo+IEiUkBEcorIPBE5KCJ3B1qwiSLVqlFk0Srixk/nja3JTN91\nC2M/upyK16xg1ixsXC5jsjB//o9soqqHgeY4w8BfBDweyqDMPyKpTVauvZZCm7dTvc8bTPv6B149\nWJ/e468lvtG3fJnJJ8xEUn6hYPlFt1jPLxj8qURSnsPeHPhAVX/Hv+ejm1iUPTvZ295Lvh/2cu1d\nT7Fo7iI6Ho3nweGtueq6vSxb5nWAxphw8ucS337AzcAxoBZQCOcxtVeEPjz/WJ+Ihw4e5Nhzz3Dq\n3Xd4tQYMz/cw1bI/Q//nClGlitfBGWPSE9ZnrIvIOcAhVT0lInmB/Kq6P9DCg8UqkQiwYwd/PtGV\n4/O/4Nm62ZhwrBeNinbhpT65qVDB6+CMMamF86FUACWA20SkDXAb0CTQgo1/oqZNtmxZ8nwwg8Kf\nLqD/LxezfvPLZKMUNe4fw30PJLFrV9pvi5r8Msnyi26xnl8w+HN1Vh9gCDAMSAAGADeGNCoTvWrW\nJM+i5ZQe+T7jVhfgq5+7s1vKc+lt0+j5lHL0qNcBGmOCyZ8+kW+AqsAaVa0qIucC76lqo3AE6A9r\nzopQSUnouHEcf7on80om0fuKS9m9aBSDnriUVq2we0yM8VA4m7P+UtVTQJKIFAR+BkoFWrDJAnLk\nQNq14+wdO7nuhs58/f56HilRi16fdeKK+r+zcqXXARpjAuVPJbJSRAoDo4FVwFpgSUijMn+LiTbZ\nvHnJ9tzz5F6zgR456rFi/nhKXVSWxo+/TdOmX7I/Yi7RCL6YOH4ZsPyMPwMwdlDV31T1TZwO9Taq\nem8wCheRpiKyVUS+F5Eeaay/SUTWi8haEVktItcEo1zjkbJlOevjTzlv5AQmLsjNh4cf44e87al0\nzSoGDIDjx70O0BhzpvzpE6nBf28u/B3YqaqZHopPRLID3+I8encvsBJoqapbfLbJq6p/uNOVgWmq\nWi6NfVmfSLT56y+S+/fnxOBXGHQFvHPh7Zz6uh+D+xajeXMQe/S7MSEVzj6R4cBynOas0cAy4APg\nOxG5NoCyawHbVDVRVU8Ck4CbfDdIqUBc+YCDAZRnIknu3GTr04ezV6+nR46rWDxrGlUvL0+70cO4\n9roktmw5/S6MMd7zpxLZB8Srag1VrQHEAzuAxjiX+2ZWScD3qd573GX/IiI3i8gWYA7QOYDyolKs\nt8ku2LWLnLPnUPzNd5m8ID+Tf3ye3y6tzJV3fkXXrnDokNcRBibmj5/ll+XlOP0mVFTVTSkzqrpZ\nRCqp6nYRCaQNya/3qup0YLqI1APGAxXT2q5t27bExcUBUKhQIeLj40lISAD++SLYfATP58tHwpbv\nuLp/f14aNICplzbjs2zXM6HGq9xz8/c0awYNG0ZQvDZv81E2nzKdmJhIMPnTJzIF+AWnuUmA24Fi\nQGtgkarWzFTBIrWBPqra1J3vCSSrav8M3rMdqKWqv6Rabn0isWTHDpI6d+K39cto3/gka0/2osDm\nRxn62llcfbXXwRkTG8L5jPU8QAegrrtoMfAGzoCMeVX1SKYKFsmB07HeEKfJbAX/7Vi/CNihqioi\n1YGpqnpRGvuySiQWzZ7NyU4dWFE8iS71z2Ln1yO4pnRTBg6E0qW9Ds6Y6BbOZ6z/qaqDVPUW9zXI\nXZac2QrE3W8S0BH4DNgMTFbVLSLSXkTau5vdBmwUkbXAYODOzJYXrXxPRWNRhvk1b07Ozd9St1l7\nloz+lR7ntGJz+eZUqb+D556DP/8MW5iZlqWPXwyI9fyCwdOBJ1R1jqpWVNVyqtrXXTZSVUe60wNU\n9TJVraaq9VTV7nHOanLnht69ybV6LV3lSha8u5yGDeKZfOAZKl72J1Om2JMVjfGSPWPdRJfZs0nq\n9Airz0umQ/1kftkwmNJ/3MaQwUJ8vNfBGRM9wj0UfErfiDHeat6cHJu3ckXTB1g26ihdc3bkt0bX\n0KjlZh56CA4c8DpAY7IWf4aCryMim3E6wRGReBF5I+SRGSD222QzlZ/bxJVz1Vo6JdfkqzGbaVC3\nDisKP0al+N8ZPBhOngx6qJlixy+6xXp+weDPmcjrQFPcu8VVdR1QP5RBGeOXsmXJNmsWhYe/xaQv\nCzF64TRK31OB0SvfpkrVZObO9TpAY2KfP5f4rlDVWiKyVlWrucvWq2rVsEToB+sTMfz1FwwYwMnB\nrzE6IT8japbgt2nDqX7e5bz6KpT7z4hrxmRt4ewT2SUidd1Cc4lId8BGNjKR5e8mrjU8nBTPopE7\nuapqE36q9SC1Eg7SowccyfQF6caY9PhTiTwMPIIzrtVeoJo7b8Ig1ttkg55f2bLIzFkUHDaG9+YV\nZNSn8yl1d0UW/jWcihcn8c47kJwc3CIzYscvusV6fsHgz82GB1T1LlUtrqrFVLVV6mFHjIk4zZuT\nfdNmqjZuzepRydz/46sU7lyN/pO+5sorYdkyrwM0Jjb40ydSHGgHxPHPgI2qqveFNjT/WZ+IydCO\nHeijj3Jk4yoevjaJHeUa8cPIgTS5siT9+kGJEl4HaEz4hXPsrKXAV8BqIKUhQFX1w0ALDxarRIxf\nZs8muXNnNl9wFnfV3c85OZ5kw8hH6d71LLp2hbPP9jpAY8InnB3ruVW1h6pOUdUP3FfEVCCxLtbb\nZMOaX/PmZNu0icsa3snaUULb79+maPdLmbn5Uy69FKZPD/4QKnb8olus5xcM/lQis0Xk+pBHYkw4\nuFdxZV+5ijZ/lmfNiL+olP9+zu1yE4+/vIMmTWDTptPvxhjjSLc5S0SO8s+Do/ICJ4CU+4BVVQuE\nPjz/WHOWybTZs9Eunfm2VF7uuHIP5xfqxKrXn+SuFnl47jkoXNjrAI0JjZA3Z6lqPlXN776yqerZ\nPvMRU4EYE5DmzZFvNlGpwf9YM0pou2EGBR+txNZsH1CxkjJiBCQleR2kMZHLn7Gz5vmzzIRGrLfJ\nRkR+Pk1cdx4pw8Y3lbhT3SnbuzFjZ22mRg3IbJgRkV8IWX4m3UpERHKLyDlAMREp4vOKw7nx0JjY\nUrYszJxJnqEjGPlJdiZ8cJCk+HqUavcY97T7nRYtIMiPpzYm6mXUJ/Io0AUogfP42hRHgFGqOiz0\n4fnH+kRM0LljcSUPGcL068vS9ZI91DjRjwWD76bjI9no0QPy5vU6SGMyL5z3iXRW1SGBFhRKVomY\nkNmxAx59lGPfrOOJG3OzuEIRiq0cxuZ5NejfH+68EyTgX0Njwi+cz1iP6Aok1sV6m2zE5+c2cZ09\n5A0Gz0riw49OcrDkdVR7pj19Bx+kXj1Ysyb9t0d8fgGy/Iynz1g3Jmo0b4588w1x9W5gxZunaLfk\nG3696WLK/G84112fxIMPwm+/eR2kMeFnz1g35ky5TVzHN23gmVsK8smFUP77YayYWo+hQ+HWW70O\n0JjTC1ufiFtYSZwBGLMDgnOz4VeBFh4sVokYT8yejXbpwt6yRbm19k5KlrmVb17vR5WKBRg2DM4/\n3+sAjUlf2PpERKQ/sBjoBTwOdHd/mjCI9TbZqM7PbeK64KpmLBtxkhYr13Hi3svIefGnVK0KY8fC\n/PkLvI4ypKL6+Pkh1vMLBn/6RG4BKqpqM1W9IeUVjMJFpKmIbBWR70WkRxrrW4nIehHZICKLRaRK\nMMo1JmjcGxWzLVrMXRth3eRC/MQDXNGvDYNH/Ur37k7rlzGxyp9LfOcAt6tqUB8uKiLZgW+BRjhP\nTFwJtFTVLT7bXAlsVtXfRaQp0EdVa6exL2vOMt47dQqGDkVffIHpt1xCpwrbuCZpGJ+8chu9ekHn\nzpA9u9dBGuMI530iHwFVgXnAcXexqmrngAp2KojeqtrUnX/S3XG/dLYvDGxU1QvSWGeViIkc27bB\nAw9w+PBB7mz2B8lla3B40jBO/X4eb70Fl13mdYDGhPd5IjOBF4AlOA+mSnkFqiSw22d+DxkPp3I/\n8EkQyo0qsd4mG5P5lSsHX35JgQc68PjQX+m6+CCJDatwSct3SWig9O4Nx4+ffjfRICaPn49Yzy8Y\ncpxuA1V9O0Rl+33qICINgPuAuult07ZtW+Li4gAoVKgQ8fHxJCQkAP98EWze5sM636EDUqQIZw0a\nxFsLcjO25UtU6TeJj99ty9tvF2fSpASuvDKC4rX5mJ5PmU4M8gBwGY2dNVVVW4jIxjRWq6oG1Mkt\nIrVx+jhSmrN6Asmq2j/VdlWAj4CmqrotnX1Zc5aJXKowdiz65JN8dUNlWpbfwPVFXmRWnwe54/Zs\nvPQS5MvndZAmqwl5n4iIlFDVfe6ovf+hqokBFSySA6djvSHOAI8r+G/HemngS6C1qi7LYF9WiZjI\nt2cPtG/PscRttL81F9tKn0PxZWNY92U5Ro6EJk28DtBkJeF4KNU+92diWq9AC1bVJKAj8BmwGZis\nqltEpL2ItHc3exYoDIwQkbUisiLQcqON76loLMpS+V1wAcyezdlPPs3bI3/itUU5WFH2Cho/+wrt\n2p+ibVv49VevIs2cLHX8TJo8HTtLVeeoakVVLaeqfd1lI1V1pDv9gKqeo6rV3FctL+M1JmAicPfd\nyIYN1DpSgB/eLUzOHRMp/mQdkops4tJLYepUpwXMmGhgY2cZ4xVVmDoV7dyZDY2rcEOlNVxbpjOL\n+j1JxXK5GD4cStrj30yIhPMSX2NMKIjA7bcjGzdSNekcto8rQOHv5pCzQ02KVV1NfDyMGgXJyV4H\nakz6Mno8bikRGSMi/USkkIiME5FvRGS8iBQPZ5BZWay3yVp+QLFi8P775Bz0Kv3f2sWUr8/li1xN\nuXHIk4wa+xcNGzr3L0YiO34mozORt4H1wO/AMpwrqZrhXEU1IuSRGZPV3HwzsnEjlc4qwbbRuSmz\nZSlHWsVz6XWLqF0bBg6EpCSvgzTm3zK6xHedqsa707tUtXRa6yKB9YmYmPPJJ/DQQ/xQuxJNq2zg\ninIt2PlWX/74LR9vvQVVq3odoIl24egT8d35+FTrbBg5Y0KpWTPYuJELC8WxeWQO4jdvZVfzytS/\n73MaN4ZeveDYMa+DNCbjSmSmiOQHUNVeKQtFpDxO05YJg1hvk7X8MlCwIIwaRfZxb/PY+G0sWliO\nuYfuo+GQ+9nw3SHi42HRoqCFmil2/ExGNxs+k9bw76r6var+L7RhGWP+1qgRbNxIyZKVWD/8FAmb\nfmTtlZdx85MzuOMOeOQROHzY6yBNVpVRn0g3n1nl381bqqqvhjKwM2F9IibL+OoruP9+fr64NDdc\nmUjJMjU5e/5QFs8txogRTiuYMf4IR59IfiCf+/NxdzqfzzJjTLhdfTWsX0/x8vEsG/IHt2z5iy8r\nVqZVv4k80lFp3RoOHvQ6SJOV+HXHuoisVdVqYYgnU2L5TGTBggV/D+kciyy/ACxbBvfey69lS3Dr\n1fvIU6IcF6x/k5kTSvLaa3Dnnc79jKFkxy962R3rxmR1tWvD2rUUqXoF81/9lQe25mRa8arcP3wM\nL72s3HAD7N59+t0YEwg7EzEmFqxeDffey+HzCnNno0McO7cYVRNHM2HYhTz/PLRvD9nsX0bjIxzP\nE/F9GNVFwHaf+YAfShVMVokYA5w4AX37osOH8+n9CdxdaB7tKj3Lgv4dyZkjO6NHQ8WKXgdpIkU4\nmrNu8Hldkmr+xkALNv6J9evULb8gypULevdGvviC6+ZuZ+dnl7Dtu/eQ+6/mqlu2ULcu9O0LJ08G\nr0g7fiaj+0TSfBhVsB5KZYwJkSpVYPly8jZuxpQBP9D3u1KMPn4V9459mS8XnqRWLVizxusgTazI\nqDnrhwzep6paNjQhnTlrzjImHVu2wH33cSwHPHRzDjbk+4Nbso1l2NPxtG0LffpA7txeB2m8EI7m\nrJo+r8uBWsArODcdrg20YGNMGFx8MSxaxNm3tGBc3y2M2F6J4b825q4xT7N953GqVoWFC70O0kSz\njJqzDqrqQeBXnH6QBcCVQDNVvS084ZlYb5O1/MIge3Z47DFk6VKuWLaHXdPiOLltOZvrVeOBPsto\n1Qoeegh+//3Mdx0R+YVQrOcXDBk9lCqXiDwEbAHqATepaitV3Ry26IwxwVO+PCxYQK7WbRj60lom\n7ajOkD03c+MbXTnBH1x2Gcyc6XWQJtpk1CeyB0gCBgO7cMbPAqc5S1X1o7BE6AfrEzHmDP3wA7Rr\nx8lDv/JM6xJMzbaFjqXG8MYTDahRA4YMgeL2/NKYFo77RN52J9PcQFXvDbTwYLFKxJhMUIUxY+Cp\np/i2VVOaXjCfa8pdT/6lA3j/7YIMGgStW4d+6BTjjZB3rKtqW/d1b1qvQAs2/on1NlnLz0Mi0K4d\nrFlDxe+6mT1zAAAgAElEQVR+YduEIlyYeJAPz7uMnuNm88orcN11sHNn+ruI6PyCINbzCwZPB0IQ\nkaYislVEvheRHmmsryQiS0XkWKqh6Y0xwVKqFHz8Mdm7duPpl7/m6x0JjNzamUuebk2NegepUQNG\njHBOXIxJza+xs0JSsEh2nCckNgL2AiuBlqq6xWebYkAZ4GbgN1V9JZ19WXOWMcHw44/w8MMkf/8d\nQ9rH0//kfJ6oPJgJT7WgZAlh7FgoWtTrIE0wxMIovrWAbe4d8CeBScBNvhuo6gFVXQUEcaAGY0y6\nzj8fpk0j2zPP8ujLX7Lq+4a8u+lZ4h6/nTKVfiU+Hr74wusgTSTxqxIRkboi0kpE2rive4JQdknA\nd6DqPe4y4yPW22Qtvwgk4jyMZMMGSv52ktUjlXr7sjGzRDUeG/wVbdpAjx7OeI9Rmd8ZiPX8giHH\n6TYQkQlAWWAdcMpn1bsBlh3U9qe2bdsSFxcHQKFChYiPj//7YTIpXwSbt3mbP8P5yZP56vnniX/h\ndT6/uxkNTt5O3Y6NWTizLXXqNOTRRyMsXptPdz5lOjExkWA6bZ+IiGwBLgl2p4OI1Ab6qGpTd74n\nkKyq/dPYtjdw1PpEjPHIvn1wzz2c+Oso97XIxY78STT9YyJDX4hj4EBo08YuBY424ewT+QY4P9CC\n0rAKKC8icSKSC7gDSO9+Wft6GuOlEiVg7lxy3XgL4/t+S8+fKjDseC0ef2cSgwZBy5Zw6JDXQRov\n+FOJFAM2i8hcEZnlvgIeHEFVk4COwGfAZmCyqm4RkfYi0h5ARM4Tkd1AV+BpEdklIvkCLTua+J6K\nxiLLL4pkywY9eiCzZnHD2EVsXn8Vo2Z1o9pz91Kg2BGqVYPFi70OMrhi6viFyGn7RIA+7s9/DXsS\njMJVdQ4wJ9WykT7T+4FSwSjLGBMktWrB2rUU7diRUR9nY2HF35hYoTod+77PbbddzsMPQ69ekMOf\nvy4m6vn7jPXzcIaEV2CFqv4c6sDOhPWJGOORiRPh0UdZe18zri3yMe0rP8GSV7px4ng2JkyAMmW8\nDtCkJ2x9IiJyO7AcaAHcDqwQkRaBFmyMiQF33QXLllFt/hYSv6jM2m+nIvdcS8INP1KzJkyZ4nWA\nJtT86RN5Gqipqveo6j04ZyTPhDYskyLW22Qtv+i2YMECKFsWFi0iT80rmTVwL21+Oo8x2avTc9xs\nevWC+++Ho0e9jjRzYv34BYM/lYgAB3zmf8GuljLG+MqZE156CZkwgbuHLGDldwm8seURGg7qzAk9\nRvXqsHq110GaUPDnPpGBQFVgIk7lcQewQVWfCH14/rE+EWMiyC+/wP33k7QzkW5tz2d+rr3ck2cS\nAx6/hCeegMcecy70Mt4K+fNEfAoS4FbgKpyO9a9VdVqgBQeTVSLGRBhVePNN9Nln+fqRG7gtz0we\nrfoiHz/fnrx5hHffdYbpMt4JW8e6Oj5U1a6q+likVSCxLtbbZC2/6JZufiLw8MPI/Plc/eFKti+7\ngs82v0HxjrdSre4vVK8Os2eHNdRMifXjFwwZPWN9sfvzqIgcSfU6HL4QjTFR67LLYMUKCpS4kIVD\nDtNw/9m8XzCeniMX8Mgj0KkT/PWX10GaQHj2PJFgsuYsY6LAzJnw4IN8f2cTGpT8nDsuuY+d7/Th\n2y05mTQJLr3U6wCzlnDeJzLen2XGGJOhG2+E1aspv3EvO2bEcWD7EvY0qUfrTjtISIA33rCnJ0Yj\nf66RuMx3RkRyADVCE45JLdbbZC2/6HbG+ZUs6Qzk2Pwm3nlpM70OXsKg36+gx4T3eOstuPlmOHgw\nJKFmSqwfv2DIqE/kKRE5AlT27Q8Bfib90XaNMSZj2bPDk086AzmO+YotG+ozYdNzXPzUPcRVOEJ8\nPMyb53WQxl/+XOLbV1V7himeTLE+EWOi1OHD8MgjJK9ayYsPX8q7rKdzyYn071yLu++G55+HXLm8\nDjI2hfN5IitFpJBPwYVE5OZACzbGGAoUgPHjydbraZ594Ss+2H81L+1ozr1v9WPjN8nUrQvff+91\nkCYj/lQivVX178fNuNN9QhaR+ZdYb5O1/KJb0PJr3RqWLSN+3iYS51Vm/bfTOdaiMTe23kudOvDO\nO950usf68QsGf8fOSi17sAMxxmRxF10EixaRu/oVzBywm3sPXsDwkzV4ZsJMBgxwBgy2pydGHn/6\nRMYBvwHDcSqUR4DCqto25NH5yfpEjIkxX34J99zD3ub1aVB+MQ3KX49+OojP5+TmvfegTh2vA4x+\n4ewT6QScBCYDk4BjOBWJMcaExjXXwLp1lPzxKJsnFibPrp0srVyLrn2/4ZZbnA73pCSvgzTg39hZ\nR1W1h6pe7r56quof4QjOxH6brOUX3UKaX9GiMH06Oe5vx6vPLWfEgSt4YVcCnScMZ8FCpUED2LUr\ndMVD7B+/YPDnjvXiIjJIRD4Rkfnu68twBGeMyeJEoEMH5MsvuWrKMrYvq83czWPI98DNNLj+IJdf\nDlOneh1k1uZPn8jnOE1Z3YH2QFvggD1PxBgTVn/9Bd27o3M+YXiXOvQ7tZCnLn6XVztdQ/36MGQI\n5M3rdZDRI5zPE1mjqtVFZIOqVnGXrVLVywMtPFisEjEmC5kxA9q3Z9tdTWlQYi4tLrmHg1NeYPnS\nnLz/PlSv7nWA0SGcHesn3J/7RaS5iFQHCgdasPFPrLfJWn7RzZP8broJVq+m3LpdbJ9xIb9sX8nW\nunV5+KntXHstvPIKJCcHp6hYP37B4E8l8qJ7x3o3nCatMUDXYBQuIk1FZKuIfC8iPdLZZoi7fr2I\nVAtGucaYKFeyJHz+ObmaNeftF7+h969VeOnn2vR8fzwffgjXXQf793sdZNaQYXOWiGQHuqjqq0Ev\n2Nn3t0AjYC+wEmipqlt8tmkGdFTVZiJyBTBYVWunsS9rzjImq1q+HO66i1+uqk7j+I1UKn05pda/\nwbujCzBmDFx/vdcBRqawNGep6imgZaCFpKMWsE1VE1X1JM49KDel2uZG4B03luVAIRE5N0TxGGOi\n0RVXwNq1nHPqLFaNzsYl+07wQdFqPDtqGR06QOfOcOyY10HGLn+asxaJyDARqSci1UWkhtsvEqiS\nwG6f+T3ustNtc0EQyo4asd4ma/lFt4jJr0ABmDCBbD178vTz8/nopwb02Xoj94x+mX0/nqJWLdi0\n6cx3GzH5RbAcfmxTDVDg+VTLGwRYtr/tT6lPt9J8X9u2bYmLiwOgUKFCxMfHk5CQAPzzRbB5m7f5\nGJ+/+24WZMsGL7xA4oVVufOs2ey8aAp1SvWifv0WvPACVKq0AJEIiTeM8ynTiYmJBFO6fSIi0kVV\nB4vIVaq6KKilOvuvDfRR1abufE8gWVX7+2zzJrBAVSe581uB+qr6U6p9WZ+IMeYfJ07As8+iEybw\nfrcmdD31Mc/Ej2TsEzdTujSMGePcEJ+VhaNP5D7359BAC0nHKqC8iMSJSC7gDv77xMSZwD3wd6Vz\nKHUFYowx/5ErF/Trh7zzDne9Mpe12xszdH1XLu/zMGXK/Ul8vDPGowlcRpXIZhH5HqgoIhtTvTYE\nWrCqJgEdgc+AzcBkVd0iIu1FpL27zSfADhHZBowEOgRabrTxPRWNRZZfdIv4/Bo2hHXrKLH3MJsm\nFibf7r18UbYmvYZsoHVr6NkTTp5M/+0Rn18ESLdPRFVbish5wFzgBtJ+rkhAVHUOMCfVspGp5jsG\nu1xjTBZStCjMmEGO4cN5pc9z3Nr5Fm45eg1dx/dm0asdqVtXmDQJypb1OtDodNphT6KB9YkYY/yy\nYQO0bMmRi8tyY7295C1Wgtr7xzG0fzHGj4cmTbwOMHzCOeyJMcbEhipVYNUq8hcvxZeDf6PZwSKM\nIJ6eI+fTpg0MHOjNY3ijmVUiES7W22Qtv+gWlfnlzg1vvIG8+hodXvqMhXubMOC7O2k39jUmTVbu\nugv+cJ+YFJX5hZnflYiI5AllIMYYE1Y33+wM5Lj6B7Z/WpGvN4+jQo+7Ieef1K0LQb6dImb5MxR8\nHZxBF/OraikRiQceVNWIuVLK+kSMMZmWlAQ9e5L8wVSe7ngJc/L9yA1/TGPUgDjee8+5wCsWhbNP\n5HWgKXAQQFXXAfUDLdgYYyJCjhwwcCDZ+vXnpX4r6bv/MkYl16bb8Hm0agWvv279JBnxqzlLVVM/\nyTgpBLGYNMR6m6zlF91iKr877kC+/JKm45eyclNdhmxvRaMuDzPubeWee5wHK5r/8qcS2SUidQFE\nJJeIdAe2nOY9xhgTfSpXhpUrKfXzMb6feSFbdn1GxadacezUn1x1FexK/e+08atPpBgwGOe5H4Jz\n82FnVf0l9OH5x/pEjDFBlZwMffqQ/PY4XuhYhWkF9tLs8DTGvXYhkyZB/Rho0A/bM9ajgVUixpiQ\nmDEDbdeOee0a0rrwfLqUHs/rnRrzzDPwyCMgQR/HI3xC3rEuIkMzeA0JtGDjn5hqc06D5RfdYj6/\nggWRr76i0UfrWLO2Fm/+cDf3jh7IyFHKfffZw64g4z6R1Tgj7a5yp1O/jDEm9lWqBMuXU+KvHHz3\nYUk2bJ1AxadacuiPP7j6atizx+sAveV3c5aI5AdUVY+GNqQzZ81ZxpiQS06Gfv3Q4cPo2zGeSYX2\ncO1v03lvWFmmTIGrrvI6wDMTtvtERKSyiKwFNuEMD79aRC4LtGBjjIkq2bLBU08hb42l5+urGbaj\nEu/mrE2HVz7j1lvhzTe9DtAb/lziOwp4TFVLq2ppoJu7zIRBzLc5W35RLUvm17QpsnQpV8/9lg3L\nqjN2Z1vajO7P4CHKgw/C8eNhD9NT/lQieVR1fsqMqi4A8oYsImOMiXRly8KSJZx7VhG2TirGt1sm\ncvEzd/DjL0dp0AD27fM6wPDx5z6R6Tgd6eNx7hNpBdRQ1VtCH55/rE/EGOMJVXj9dbR/fwZ1iOfd\nontpeHAaH4wqxwcfQO3aXgeYvnCOnXUfUBz4CPgQKMY/z183xpisSwS6dkXef5/uI9Yzamt53s9d\nhwf6fcoNN8CYMV4HGHqnrURU9VdV7aSq1d1XF1X9LRzBmSza5hxDLL/o5nd+DRogy5dz5dLdfPNV\nZSbsvpe7R/Zl4CClQwc4cSKkYXoqo5sNZ4nITPdn6tfMcAZpjDERr3Rp+PprihUrw5YJBdm1dTKV\nnmnBD3uP0LAh/PST1wGGRrp9IiJyANgDvA8sT1ns/lRVXRj68PxjfSLGmIihCm++ifbpw5D21Rh1\n7m4SfprOrLfL8+GHULOm1wE6Qj52lojkABoDLYHKwMfA+6q6KdBCg80qEWNMxFmyBG6/nZXNq9P8\nwqW0O+8dRnZvxsCB0Lat18GFoWNdVZNUdY6q3gPUBrYBC0WkY6CFGv9Zm3N0s/yiW0D51akDK1dS\nc+MvbP7yYj7c8wAtR7zEiy8l06ULnDwZtDA9lWHHuoicLSK3AROAR3CGhJ8WaKEiUkREPheR70Rk\nrogUSme7sSLyk4hsDLRMY4wJu/PPh/nzOeeiy9jwTh4ObJnKxb3/x5btR2jcGA4c8DrAwGXUnDUe\nuBT4BJisqkH7Qy4iA4CDqjpARHoAhVX1yTS2qwccBd5V1coZ7M+as4wxkW3cOLRHD958IJ6hJfdQ\nb990Pp1QgWnToHr18IcTjj6RZOCPdN6nqlog04WKbAXqq+pPInIesEBVK6WzbRwwyyoRY0zUW7kS\n/vc/1ja8lOsqrqRtsXG81aM5r78OrVqFN5Rw9IlkU9X86bwyXYG4zlXVlAvefgLODXB/McvanKOb\n5Rfdgp5fzZqwciXVfviLrXMuYva+B2kx/HmeeTaZbt0gKSm4xYVDjlDtWEQ+B85LY1Uv3xlVVREJ\n+DSibdu2xMXFAVCoUCHi4+NJSEgA/vki2LzN27zNez6/eTM8/TQJn3zCurf2c339dyl2+1zWrvuE\npk0L0KnTAgoWDH75KdOJiYkEkyePx3WbsxJUdb+InA/Mt+YsY0yWM3Ei2qUL4+6NZ2DpPVy5axoL\nPqjEtGlQtWpoiw7n2FmhMBNo4063AaZ7FIcxxnjnrruQL77gvg93MGVZKeYUqcetPWfSqBFMnux1\ncP7xqhLpBzQWke+Aa9x5RKSEiHycspGIvA8sASqIyG4RudeTaD3keyoaiyy/6Gb5BUHVqrByJZUP\nZmPrrDJ8vv8hbhvahx5PJtOjB5w6FfoQAuFJJeIO6thIVSuoahNVPeQu36eq1/ts11JVS6jqWapa\nSlXHeRGvMcaEVJEi8PHHFEy4ljWjs3Fq83Qq9bmZpWt+5/rr4ddfvQ4wfZ70iQSb9YkYY2LGRx+h\n7dszoVVlXrxoL7UTp7N4xsVMnw6XBfHB5NHeJ2KMMSYtt96KLFzI3XP2Mv3rEnxR9Gqad59Ogwbw\n4YdeB/dfVolEOGtzjm6WX3TzLL9LLoEVK7j4eAG2flSCxfsf4abXn6XrY8k8/XRk9ZNYJWKMMZGo\nYEGYNo38N/6PZaOSybVpBhWfu5H5Sw9x001w6JDXATqsT8QYYyLdJ5+gbdsytcUl9Kq4l1o7ZrDy\nk0uYMQMuvjhzu7Q+EWOMySqaNUOWLOH2r35hzrzz+Kp4fZp0+Yirr4YZM7wNzSqRCGdtztHN8otu\nEZVfuXKwdCnlzi7B1inFWP1zJ5q/+jSPdDpFnz6QnOxNWFaJGGNMtMiXDyZNIm/r+1g0MomC38yi\nYp8bmDP/ELfcAocPhz8k6xMxxpho9MUXaOvWzLixAt0v3UeNbdPZ8MVlTJ8OFSue/u3WJ2KMMVlZ\no0bIsmXcvOoon39ajGXnJXD1Qx9Qrx58/PHp3x4sVolEuIhqkw0Byy+6WX4ei4uDxYu5sHgFtrxX\nhC0HutB04FO0a3+KF18MTz+JVSLGGBPNcueGt98mT4fOLBh1gvM3fEyl55oz/dPfaNECjhwJbfHW\nJ2KMMbHi66/RO+/kkyYX0rnqj1TZOp3vF1Xm44+hTJl/b2p9IsYYY/6tXj1kxQqu35LE/FlFWFcy\ngfodplCoUOiKtEokwkV8m2yALL/oZvlFoJIlYeFCSperzpZ3C7B1z2PsPLYhZMVZJWKMMbHmrLNg\n5EjO7tGLL8acoMqB0P2ptz4RY4yJZd984wywlT37vxYHq0/EKhFjjMmCrGM9i4jKNtkzYPlFN8vP\nWCVijDEm06w5yxhjsiBrzjLGGOM5TyoRESkiIp+LyHciMldE/nMrjIiUEpH5IrJJRL4Rkc5exOq1\nWG+Ttfyim+VnvDoTeRL4XFUrAPPc+dROAl1V9VKgNvCIiGTyQZDRa926dV6HEFKWX3Sz/IxXlciN\nwDvu9DvAzak3UNX9qrrOnT4KbAFKhC3CCHHo0CGvQwgpyy+6WX7Gq0rkXFX9yZ3+CTg3o41FJA6o\nBiwPbVjGGGPORI5Q7VhEPgfOS2NVL98ZVVURSffSKhHJB3wAdHHPSLKUxMREr0MIKcsvull+xpNL\nfEVkK5CgqvtF5HxgvqpWSmO7nMBsYI6qvp7B/uz6XmOMOUPBuMQ3ZGcipzETaAP0d39OT72BiAjw\nFrA5owoEgvNBGGOMOXNenYkUAaYApYFE4HZVPSQiJYDRqnq9iFwFfAVsAFKC7Kmqn4Y9YGOMMWmK\niTvWjTHGeCOi71gXkaYislVEvheRHulsM8Rdv15EqqVal11E1orIrPBEfGYCyU9EEkVkg5vfivBF\n7b8A8yskIh+IyBYR2SwitcMX+ellNjcRqeges5TX75F4I22Ax66ne5PwRhGZKCJnhS9y/wSYXxc3\nt29EpEv4ovbf6fITkUoislREjolItzN573+oakS+gOzANiAOyAmsAy5OtU0z4BN3+gpgWar1jwHv\nATO9zifY+QE/AEW8ziOE+b0D3OdO5wAKep1TML+b7vJswI9AKa9zClZ+7nt2AGe585OBNl7nFMT8\nLgM2Ame7+/kcuMjrnDKRXzHgcuBFoNuZvDf1K5LPRGoB21Q1UVVPApOAm1Jt8/dNi6q6HCgkIucC\niMgFOF+EMUAkdrwHlJ8rEvNKken8RKQgUE9Vx7rrklT19zDGfjrBOHYAjYDtqro71AGfoUDyO4wz\n2kQeEckB5AH2hi1y/2Q2v/OAi4HlqnpMVU8BC4Fbwxe6X06bn6oeUNVVOMfqjN6bWiRXIiUB31+u\nPe4yf7d5DXgcSA5VgAEKND8FvhCRVSLSLmRRZl5m87sAuBA4ICLjRGSNiIwWkTwhjfbMBJKbrzuB\niUGPLnCZ/m6q6q/AK8AuYB9wSFW/CGGsmZHZ/ErgnIXUc8f/ywNcz3+Pq9f8yS9o743kSsTfHv/U\n/42LiDQHflbVtWmsjxSZzS/FVapaDbgOZ1yxesEJK2gym5/iNF9VB95Q1erAH6Q9vppXAsnNWSGS\nC7gBmBqsoIIo099NEbkIeBSnOaQEkE9EWgUvtKDIdH6quhXn1oS5wBxgLZH3j2ogV0ud8XsjuRLZ\nC5TymS+FUytmtM0F7rI6wI0i8gPwPnCNiLwbwlgzI5D8UNV97s8DwDSc09BIEkh+e4A9qrrSXf4B\nTqUSKQI6dq7rgNXu8Ys0geR3ObBEVX9R1STgI5zfx0gS6O/eWFW9XFXrA4eAb0MYa2b4k1/w3ut1\nJ1AGnUM5gO04/9Hk4vSdX7VJu/OyPjDL63yCmR9OO3N+dzovsBho4nVOwTx+OPcIVXCn+wD9vc4p\nmN9NnLbmNl7nEoLvZjzwDZAb5z/5d4BHvM4pyN/N4u7P0jgDwxbwOqczzc9n2z78u2Pd7/f+/R6v\nEz7Nh3EdTi2/DedGQ4D2QHufbYa569cD1dPYR30i8OqsQPIDyroHd537C9vT61yCffyAqsBKd/lH\nRNDVWUHILS9wEPcfgUh8BZjfE8AmnP6Dd4CcXucT5Py+cvNbBzTwOpfM5IczruFu4HfgN5w+rHzp\nvTejl91saIwxJtMiuU/EGGNMhLNKxBhjTKZZJWKMMSbTrBIxxhiTaVaJGGOMyTSrRIwxxmSaVSLm\nX0QkWUTG+8znEJEDpxtOX0TaisjQMyzrfXeY7YCH0xaRp1LNLw50n+5+3haRPe4wJYhIUXckBEQk\nTkQ2ptq+T8rQ2iLygpvfOhGZJyKl0th/CRE5o6FPRORREcntM380M7m5701IObYicoNfQ3+nv6/R\nInJxGsvP+LthoodVIia1P4BLReRsd74xzrAHp7uh6IxuOHJHRL1cVauq6uBU67Kfyb5cPf8VjGrd\nTOwjPUnAfX5u6/s5DHDzi8d5BHTv/2ysuk9VW5xhPF1wRi1Iq8xMU9VZqto/gPe3U9UtwYjFRA+r\nRExaPsEZnRSgJc74YwLOo41FZLr7H/ZSEamc+s0iUsx9oNQK95XW2ElzgZLug5muEpEFIvKaiKwE\nuohIcxFZ5o7i+7mIFHf3nc8d3XeDG8OtItIXyO3ua7y73VH3p4jIQPchQhtE5HZ3eYJb5lRxHnw1\nIZ3PQoHBQFcR8ef35e9B+1T1iM/yfDh3qaf+rP4+m3H/Y/9IROaIyHci8p8/6OI8wKoEMF9E5vks\nf9E941nq81n5cxx89/33GYOIXOjua4O77yPu8r/PXNz5YSLSxp1eICI13Ol7ReRbEVmOH2NnuWdX\nb7nTld3jdbaI1BKRJe73YLGIVDjdvkyYeX17vr0i6wUcASrjjC57Fs4opX+PPwYMBZ5xpxsAa93p\ntsBQd3oiUNedLg1sTqOcMsBGn/n5wDCf+UI+0w8Ag9zp/sCrqbcDjqTOw/15G06FJUBxYCfOkA8J\nOIPnlXDXLUmJOdV+xrn7eMvN8RzgB3ddHPCn+xmlvH4EHvN5/0s4Q0ps9c3JZ31cyufg7n87kN/9\n7BNxhldP/Z4f8HkgGc4ostf7fD69zuA4JPgcW99jOBNo7U538Pk8/97e5/twj88xrA6c737O5+A8\n2GgRMOQ03zvBeTbHLTjD3VzpLs8PZHenGwEfeP07Yq9/v3JgTCqqulFE4nDOQj5Otbou7kN4VHW+\niJwjIvlTbdMIuFjk73/K84tIHlX902ebtIa4n+wzXUpEpuD8wc+F87Q8gIbAHT6xHjpNOlcBE9X5\nK/SziCwEauI8PGmFuqMhi8g6nD/oafWlKNAXmMF/P4/t6gzJj7uf3vz7bKQX0EtEnsR5xs29p4l3\nnrpnMCKy2Y3pdA91OqGqKXGtxmmCBP+OQ3rq4PxBB5iAUzn5Q3CeBLhAVX8BEJHJQIZnEKqqItIW\nZ7ytEaq61F1VCHhXRMrhHIecfsZhwsQqEZOemcAgnLOQYqnWpfucDJ/1V6jqiTMs8w+f6aE4Zx+z\nRaQ+zmij6ZWfEU1j+5R4j/ssO0UGvw+qus2taO5Ib5vTmIjTTHg6qWPyp3/I9+l0yfyTR2aPQ0aS\n+HczeO40tknr++CPCjhnwr4PQXoBp2K9RUTKAAv83JcJE+sTMekZC/RR1U2pln8NtAKnfRw4oKqp\nrw6aC3ROmRGReD/L9P1jUwDnyXjgNLOk+Bx4xGffhdzJk+I8jjW1r4E7RCSbiBQDrgZWcGYVUcq2\nLwHd/X6TSHmf2ZtwmrvOVFpxHsH5fE4ns8cBnDOyO91p34dK7QQuEZFc7md/Tar3KbAcqO/2n+UE\nWrjLEZFbROTl1IWJ80jkwUA94BwRuc1d5fs9ON1ZnPGAVSImNQVQ1b2qOsxnWcp/l32AGiKyHngZ\naJPGNp2By92O703AgxmVlc58H2CqiKwCDvisexEo7Ha8rsNpowcYBWyQfy5PTsljGrABZzjvecDj\nqvpzqnjTi+dfy1V1M05zkaZel85++qaKs1tG+z+DmEYBn/p0rKeO50yOg+/2vtNdcJ6YuQGn38jZ\nwHke/BScRxBMBtb8Z4eq+3GO31Kc/hDff0Quwhl+PLVXcfrEtgH3A/1EpCgwAOdzXINzVmbDjkcY\nGwreGHNaInJEVVP3fWVmP+OBR1P6S0z0s0rEGHNaInJYVf1pQjNZjFUixhhjMs36RIwxxmSaVSLG\nGPOup/0AAAAkSURBVGMyzSoRY4wxmWaViDHGmEyzSsQYY0ymWSVijDEm0/4PcKKwK+beCCUAAAAA\nSUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa595b00>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\njXxqolkTOQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5fdcf8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The packed depth is: 1.58 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9: Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.9\n",
+ "# Page: 327\n",
+ "\n",
+ "print'Illustration 8.9 - Page: 327\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# C1=CH4 C2=C2H6 C3=n-C3H8 C4=C4H10\n",
+ "Abs=0.15;# [Total absorption,kmol]\n",
+ "\n",
+ "T=25;# [OC]\n",
+ "y1=0.7;# [mol fraction]\n",
+ "y2=0.15;# [mol fraction]\n",
+ "y3=0.10;# [mol fraction]\n",
+ "y4=0.05;# [mol fraction]\n",
+ "x1=0.01;# [mol fraction]\n",
+ "x_involatile=0.99;# [mol fraction]\n",
+ "L_by_G=3.5;# [mol liquid/mol entering gas]\n",
+ "#******#\n",
+ "\n",
+ "LbyG_top=L_by_G/(1-y2);\n",
+ "LbyG_bottom=(L_by_G+y2)/1;\n",
+ "LbyG_av=(LbyG_top+LbyG_bottom)/2;\n",
+ "# The number of eqb. trays is fixed by C3 absorption:\n",
+ "# For C3 at 25 OC;\n",
+ "m=4.10;\n",
+ "A=LbyG_av/m;\n",
+ "Frabs=0.7;# [Fractional absorption]\n",
+ "X0=0;\n",
+ "# From Eqn. 8.109:\n",
+ "def f43(Np):\n",
+ " return Frabs-((A**Np)-A)/((A**Np)-1)\n",
+ "Np=fsolve(f43,2);\n",
+ "print\"Number of trays required is \\n\",round(Np,2)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.9 - Page: 327\n",
+ "\n",
+ "\n",
+ "Number of trays required is \n",
+ "3.57\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter8_2.ipynb b/Mass_-_Transfer_Operations/Chapter8_2.ipynb
new file mode 100755
index 00000000..727729f8
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter8_2.ipynb
@@ -0,0 +1,1312 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:43251d921fc8d8fdce5626d1c526ed83cb3073914f200034a16dd6e1031bf994"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Gas Absorption"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1: Page 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.1\n",
+ "# Page: 278\n",
+ "\n",
+ "print'Illustration 8.1 - Page: 278\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "P_star = 2*10**(5);# [N/square m]\n",
+ "X_methane = 0.6;\n",
+ "X_ethane = 0.2;\n",
+ "X_propane = 0.08;\n",
+ "X_nbutane = 0.06;\n",
+ "X_npentane = 0.06;\n",
+ "#******#\n",
+ "\n",
+ "MoleFraction = [0.6, 0.2 ,0.08, 0.06 ,0.06]\n",
+ "Heading = [\"Component\", \"Equilibrium Partial Pressure\", \"Vapour Pressue \" ,\"Mole Fraction\"];\n",
+ "Component = [\"Methane\", \"Ethane \" ,\"Propane\" ,\"n-Butane\", \"n-Pentane\"];\n",
+ "VapPressure = [0 ,42.05, 8.96, 2.36 ,0.66];# [N/square m]\n",
+ "Sum = 0;\n",
+ "\n",
+ "print Heading[0],\"\\t \\t \\t \\t\",Heading[1],\"\\t \\t \\t \\t\",Heading[2],\"\\t \\t \\t \\t\",Heading[3],\"\\t \\n\"\n",
+ "\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " print \"\\n \",Component[i],\" \\t \\t \\t \\t \\t\",(\"{:.2e}\".format(MoleFraction[i]*P_star)),\"\\t \\t \\t \\t \\t \\t \\t \\t \",(\"{:.2e}\".format(VapPressure[i]*10**(5))),\n",
+ " if VapPressure[i]==0:\n",
+ " Sum = Sum+0;\n",
+ " else:\n",
+ " \n",
+ " print \"\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t\",(\"{:.2e}\".format((MoleFraction[i]*P_star)/(VapPressure[i]*10**(5)))),\"\\t\",\n",
+ " Sum = Sum+(MoleFraction[i]*P_star)/(VapPressure[i]*10**(5))\n",
+ "\n",
+ "\n",
+ "\n",
+ "print\"\\n Mole Fraction Of solvent Oil is \",round(1-Sum,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.1 - Page: 278\n",
+ "\n",
+ "\n",
+ "Component \t \t \t \tEquilibrium Partial Pressure \t \t \t \tVapour Pressue \t \t \t \tMole Fraction \t \n",
+ "\n",
+ "\n",
+ " Methane \t \t \t \t \t1.20e+05 \t \t \t \t \t \t \t \t 0.00e+00 \n",
+ " Ethane \t \t \t \t \t4.00e+04 \t \t \t \t \t \t \t \t 4.20e+06 \t \t \t \t \t \t \t \t \t \t9.51e-03 \t\n",
+ " Propane \t \t \t \t \t1.60e+04 \t \t \t \t \t \t \t \t 8.96e+05 \t \t \t \t \t \t \t \t \t \t1.79e-02 \t\n",
+ " n-Butane \t \t \t \t \t1.20e+04 \t \t \t \t \t \t \t \t 2.36e+05 \t \t \t \t \t \t \t \t \t \t5.08e-02 \t\n",
+ " n-Pentane \t \t \t \t \t1.20e+04 \t \t \t \t \t \t \t \t 6.60e+04 \t \t \t \t \t \t \t \t \t \t1.82e-01 \t\n",
+ " Mole Fraction Of solvent Oil is 0.74\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2: Page 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.2\n",
+ "# Page: 286\n",
+ "\n",
+ "print'Illustration 8.2 - Page: 286\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#****Data****#\n",
+ "# Absorber:\n",
+ "G = 0.250;# [cubic m/s]\n",
+ "Temp1 = 273+26.0;# [K]\n",
+ "Pt = 1.07*10**(5);# [N/square m]\n",
+ "y1 = 0.02;\n",
+ "x2 = 0.005;\n",
+ "#******#\n",
+ "\n",
+ "G1 = G*(273.0/Temp1)*(Pt/(1.0133*10**(5)))*(1/22.41);# [kmol/s]\n",
+ "Y1 = y1/(1-y1);# [kmol benzene/kmol dry gas]\n",
+ "Gs = G1*(1.0-y1);# [kmol dry gas/s]\n",
+ "# For 95% removal of benzene:\n",
+ "Y2 = Y1*0.05;\n",
+ "X2 = x2/(1.0-x2);# [kmol benzene/kmol oil]\n",
+ "# Vapour pressure of benzene:\n",
+ "\n",
+ "P_star = 13330.0;# [N/square m]\n",
+ "X_star = numpy.zeros(20);\n",
+ "Y_star = numpy.zeros(20);\n",
+ "j = -1;\n",
+ "for i in range(1,21,1):\n",
+ " j = j+1;\n",
+ " x = i/100.0;\n",
+ " X_star[j] = i/100.0;\n",
+ " def f27(y):\n",
+ " return (y/(1+y))-(P_star/Pt)*(x/(1+x))\n",
+ " Y_star[j] = fsolve(f27,0.0);\n",
+ "\n",
+ "# For min flow rate:\n",
+ "X1 = 0.176;# [kmolbenzene/kmol oil]\n",
+ "DataMinFlow = numpy.array([[X2, Y2],[X1, Y1]]);\n",
+ "\n",
+ "plt.plot(X_star,Y_star,label=\"Equlibrium Line\")\n",
+ "plt.plot(DataMinFlow[:,0],DataMinFlow[:,1],label=\"Min Flow Rate Line\");\n",
+ "minLs = (Gs*(Y1-Y2)/(X1-X2));# [kmol/s]\n",
+ "# For 1.5 times the minimum:\n",
+ "Ls = 1.5*minLs;# [kmol/s]\n",
+ "X1_prime = (Gs*1.0*(Y1-Y2)/Ls)+X2;# [kmol benzene/kmol oil]\n",
+ "DataOperLine = numpy.array([[X2 ,Y2],[X1_prime ,Y1]]);\n",
+ "plt.plot(DataOperLine[:,0],DataOperLine[:,1],label=\"Operating Line\")\n",
+ "plt.grid('on');\n",
+ "xlabel(\"moles of benzene / mole wash oil\");\n",
+ "ylabel(\"moles benzene / mole dry gas\");\n",
+ "legend(loc='lower right');\n",
+ "plt.title(\"Absorption\")\n",
+ "plt.show()\n",
+ "print\"The Oil circulation rate is \",(\"{:.2e}\".format(Ls)),\" kmol/s\\n\"\n",
+ "\n",
+ "# Stripping\n",
+ "Temp2 = 122+273;# [K]\n",
+ "# Vapour pressure at 122 OC\n",
+ "P_star = 319.9;# [kN/square m]\n",
+ "Pt = 101.33;# [kN/square m]\n",
+ "X_star = numpy.zeros(7);\n",
+ "Y_star = numpy.zeros(7);\n",
+ "j = -1;\n",
+ "for i in range(0,7,1):\n",
+ " j = j+1;\n",
+ " x = i/10.0;\n",
+ " X_star[j] = i/10.0;\n",
+ " def f28(y):\n",
+ " return (y/(1.0+y))-(P_star/Pt)*(x/(1.0+x))\n",
+ " Y_star[j] = fsolve(f28,0.0);\n",
+ "\n",
+ "X1 = X2;# [kmol benzene/kmol oil]\n",
+ "X2 = X1_prime;# [kmol benzene/kmol oil]\n",
+ "Y1 = 0.0;# [kmol benzene/kmol steam]\n",
+ "# For min. steam rate:\n",
+ "Y2 = 0.45;\n",
+ "DataMinFlow =numpy.array([[X2 ,Y2],[X1 ,Y1]]);\n",
+ "minGs = Ls*(X2-X1)/(Y2-Y1);# [kmol steam/s]\n",
+ "slopeOperat = 1.5*(Y2-Y1)/(X2-X1);\n",
+ "def f29(x):\n",
+ " return slopeOperat*(x-X1)+Y1\n",
+ "x =numpy.arange(0,0.14,0.01)\n",
+ "\n",
+ "plt.plot(Y_star,X_star,label=\"Equlibrium Line\")\n",
+ "plt.plot(DataMinFlow[:,0],DataMinFlow[:,1],label=\"Min Flow Rate Line\")\n",
+ "plt.plot(x,f29(x),label=\"Operating Line\");\n",
+ "plt.grid('on');\n",
+ "xlabel(\"moles of benzene / mole wash oil\");\n",
+ "ylabel(\"moles benzene / mole dry gas\");\n",
+ "plt.legend(loc='lower left');\n",
+ "plt.title(\"Stripping\");\n",
+ "plt.show()\n",
+ "print\"The Steam circulation rate is \",(\"{:.2e}\".format(1.5*minGs)),\" kmol/s\\n\"\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.2 - Page: 286\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7731ef0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Oil circulation rate is 1.79e-03 kmol/s\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEZCAYAAABrUHmEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8FPX9+PHXO+GGQMJ9EzlUbBXUyiEi8ShGW9F6cAgU\n0HpV0daj3gXFev20tXhioYpSFRUtiiJaJOhXEQXxBhElyKmG+xKT8P79MbNhs+wms9ndzA55Px+P\neTCfmdn5vHey7Gfn8/nM5yOqijHGGONFht8BGGOMCQ4rNIwxxnhmhYYxxhjPrNAwxhjjmRUaxhhj\nPLNCwxhjjGdWaBhTRSLyiIjcnKRzbReR3GScy5hUEntOw9RUInIccA9wGFAKLAX+BPwSuEBV+/sY\nnjFpqZbfARjjBxFpDMwCLgaeA+oC/YE9Hl+foap7UxehMenJqqdMTXUwoKo6XR0/qeqbQAnwCNDX\nrTLaBCAiT7jVUa+JyA7gBHfbBHd/noisEZEbRORHEVkpIueFMnOPfVRE3hCRbSJSICIdw/bvFZHO\nYcc+JCKz3GPfD+1z9w8Uka9EZIt73HwRuaBarpqp8azQMDXVV0Cp+wWdLyI5AKq6FLgEWKCqWara\nNOw1w4AJqtoI+D9A3SWkFdAMaAuMAh4TkYPD9p8H3AY0Bz4G/lNBfEOA8UAOsAL4G4CINAeeB64D\nmrrvo29EHMakjBUapkZS1e3AcThftv8CfhCRmSLSEpBoLwH+q6oL3NeHqrEij71FVYtV9W3gVWBw\n2L5Zqvp/qvozcBPO3Uy7GHm9qKqLVLUUp3Dp6e47DfhcVf+rqntVdSKwIc63b0yVWaFhaixVXaaq\nY1S1A07jd1vgfmL/al9dySk3q+rusPQqoE0oO2BNWN47gU1untF8H7a+G2jkrrcNP48rMm1Mylih\nYQygql8BU3EKj3iqesKPzRGRBmHpTsA6d12ADqEdItIIp3ppHfFZB7QPO4+Ep41JNSs0TI0kIoeI\nyFWh6iER6YDTZrEA51d+exGpHf6SaKeJsv1WEaktIv2B3+C0P4ScJiL9RKQOMAGn3WRtjPPG8hpw\nuIicISK1gMuA1hUcb0xSWaFhaqrtQG9godsbagHwKXA18BbwBbBBRH5wj49s9I62bQOwGedu4Cng\nYlVdHnbs08A4YCNwJDAi4lyxzlu2X1WLgHNxni8pAroDi/DYVdiYRPn6cJ+I5OPUIWcCk1X17oj9\nzYFpOL+kagH3quoT1R2nMZURkTzgKbd9JNr+x4E1qnpLkvPNwGlrOU9V5yfz3MZE49udhohkAg8C\n+ThP5A4Tke4Rh10OLFHVnkAecJ97S25M0FRU5RTfiZznNLJFpC5wo7v5/WSd35iK+Fk91QtYoaqF\nqloMPAucEXHMeqCxu94Y2KiqJdUYozHxqOi2PVqVU1X1xXl240ecdpMzw7oAG5NSvlVPicg5wCmq\neqGbHgH0VtWxYcdk4NQvHwxkAYNVdbYf8RpjjPH3TsNLaXUj8LGqtsV5uOkhEclKbVjGGGNi8bN9\nYC1h/dbd9ciHlI7FHT5BVb8RkZXAITi9RcqIiA2hYIwxcVLVuNva/LzTWAR0E5Fct9/6EODliGOW\nAScDiEgrnALj22gnU9VALuPGjfM9Bovf/zgs/uAtQY5dteq/s32701DVEhG5HJiD0+V2iqouFZGL\n3f2TgDuAx0XkE5wC7i+qusmvmFOhsLDQ7xASYvH7y+L3T5BjT4Sv3VfVadSeHbFtUth6EXB6dcdl\njDEmOnsi3GejR4/2O4SEWPz+svj9E+TYE3FATPcqInogvA9jjKkuIoIGrCHcAAUFBX6HkBCL318W\nv3+CHHsirNAwxhjjmVVPGWNMDWTVU8YYY1LOCg2fBb1e1OL3l8XvnyDHnggrNIwxxnhmbRrGGFMD\nWZuGMcaYlLNCw2dBrxe1+P1l8fsnyLEnwgoNY4wxnlmbhjHG1EDWpmGMMSblrNDwWdDrRS1+f1n8\n/gly7ImwQsMYY4xnvrZpiEg+cD/OzH2TVfXuiP3XAMPdZC2gO9BcVbdEHGdtGsYYE4eqtmn4VmiI\nSCbwFc4c4GuBD4Fhqro0xvG/Bf6kqidH2WeFhjHGxCGIDeG9gBWqWqiqxcCzwBkVHH8e8Ey1RFaN\ngl4vavH7y+L3T5BjT4SfhUY7YHVYeo27bT8i0gA4BZhRDXEZY4yJwc/qqbOBfFW90E2PAHqr6tgo\nxw4BzlPVqHciIqKjRo0iNzcXgOzsbHr27EleXh6w7xeBpS1taUvX1HRovbCwEICpU6cGrk2jDzBe\nVfPd9A3A3sjGcHffS8B0VX02xrmsTcMYY+IQxDaNRUA3EckVkTrAEODlyINEpAlwPDCzmuOrFuG/\nAoLI4veXxe+fIMeeiFp+ZayqJSJyOTAHp8vtFFVdKiIXu/snuYeeCcxR1d0+hWqMMcZlY08ZY0wN\nFMTqKWOMMQFjhYbPgl4vavH7y+L3T5BjT4QVGsYYYzyzNg1jjKmBrE3DGGNMylmh4bOg14ta/P6y\n+P0T5NgTYYWGMcYYz6xNwxhjaiBr0zDGGJNylRYaInKciDRy10eKyN9FpFPqQ6sZgl4vavH7y+L3\nT5BjT4SXO41HgJ0i0gO4CvgGeDKlURljjElLlbZpiMgSVT1SRMYBa1V1soh8pKpHVU+IlbM2DWOM\niU9V2zS8jHK7XURuBEYA/d25vWvHm5Exxpjg81I9NQTYA5yvqhtwpmS9N6VR1SBBrxe1+P1l8fsn\nyLEnotI7DVVdD9wXlv4OmJrKoIwxxqQnL20afYGJQHegLs6ESTtUtXHqw/PG2jSMMSY+qXxO40Hg\nPOBroB5wAfBwvBlFIyL5IrJMRL4WketiHJMnIktE5HMRKUhGvsYYY6rG08N9qvo1kKmqpar6OJCf\naMZug/qD7rkOA4aJSPeIY7KBh4DTVfWXwDmJ5ptugl4vavH7y+L3T5BjT4SX3lM7RaQu8ImI3ANs\nAOK+pYmiF7BCVQsBRORZ4Axgadgx5wEzVHUNgKoWJSFfY4wxVeSlTSMX+B6oA/wZaAw8rKorEspY\n5BzgFFW90E2PAHqr6tiwY/6B0733F0AW8E9VfSrKuQ7YNo0FC6C0FFq3dpZGjfyOyBhzIEjZcxqh\nOwFgNzA+3gwqOrWHY2oDRwEnAQ2ABSLyvltdVs7o0aPJzc0FIDs7m549e5KXlwfsu40MYnrWLJg5\ns4BNm2DLljwyMqBJkwJycuCQQ/Jo3Rp27y6gaVMYMMBJr1xZQHY2DBzof/yWtrSl0yMdWi8sLCQR\nXu40PsP5gg+VSApsAz4EblfVjVXKWKQPMF5V8930DcBeVb077JjrgPqqOt5NTwZeV9UXIs4V2DuN\ngoKCsj9uZVRhxw7YsGHf8v335dOh5YcfnLuS0B1KrKVVK2jeHDIzUx9/OrL4/RXk+IMcO6T2ifDX\ngRLgaZyCYyjOr/7vgSeA0+PN1LUI6OZWf63DeYhwWMQxM4EH3UbzukBv4O9VzC/wRCAry1m6dav4\n2L17YdOm6AXLZ5+VT2/Z4hQcFRUsofUmTZw4jDE1k+exp6JtE5HPVPXwKmcucipwP86zH1NU9U4R\nuRhAVSe5x1wDjAH2Av9S1YlRzhPYO410UFwMP/4Y/Y4l8q5mz57KC5bQUr++3+/MGBNLVe80vBQa\nnwIXqupCN90L58u7R7QCxQ9WaFSfXbtiV4lF3tXUreutcGnZEmp5uec1xiRNKguNY4DHgVC/ne04\nD/h9AfxGVZ+LN9NkC3KhEfR60Vjxq8LWrd4Kl6IiyMmpuGAJLU2bJrd67EC9/kER5PiDHDuktvfU\nh8Av3QftUNUtYbt9LzBMehKB7GxnOfTQio8tLXUKjsiCZe1aWLy4/LYdO5xCpaKCxbonG5M6Nke4\nCZQ9e/bdpVRUTbZ+vVNwVVawhKrH6tb1+50ZU71SVj0VBFZomEjh3ZMrKly8dk8O3dkk0j3ZmHRi\nhUZA30fQ60UPhPiPPz6PzZu99R7bvDl29+TIKrPq6J58IFz/oMYf5NghhW0aIrIY+DfwtKpurkpw\nxqSzjAxo1sxZfvGLio+N1T35m2/g3XfL39VE654crS2mVSto0KB63qsxifLSe6obznMSg3EeyHsc\neCOdftoH+U7DHLhidU+Oti28e3JFjfwtWkBtm2zZJEHKq6dEJAP4LfAIzoN2/8YZQHBTvJkmmxUa\nJsiidU+O1Q4T6p7spfdYTo5zF2VMNCktNESkB87dxqnAHJwhRY4DRqhqz3gzTbYgFxpBrxe1+KtX\nePfk77+HefMKyMnJi1rA7Njh9AzzMv5Yo0b+DA8TtOsfLsixQ+rbNLYCk4HrVHWPu+t9EekXb4bG\nmKrLzNz3nApAnToQ63sr1D058q5l6VKYN6/8NvDWe6xVK+ueXNNVeKfhVkldr6p3VF9I8QvynYYx\n6SBy9ORY7TDffx+7e3JklZl1T05vqRxGZLGqHl3lyKqBFRrGVI+9e6mwe3L4XU207smx2mJs9OTq\nl8pC4y6gCJgO7AxtT4cG8JAgFxpBrxe1+P2VzvHH6p4cXrB8+20B27blleueXFEjfzp1T07na+9F\nKufTGIoz8dJlEdsPijczY0zNUbs2tG3rLLEUFDhtMpHdk0Prn3wCc+bs3z3ZS+8x656cGvZEuDEm\nMELdkysbGibUPTk721vvsaZNa1735KRXT4nI2VQwj7eqvhhvZqlihYYxJlJpKWzc6G14mO3bK+6e\nHH5n41f35GRLRaHxBE6h0RI4FnjL3XUC8J6q/rZqoZbLI599M/dNDp8f3N2fhzPl67fuphmqenuU\n8wS20Ah6vajF7y+LPzn27HEGrqysgX/9euf41q2hfv0CDjkkL2ZbTLp3T056m4aqjnZP/CZwmKqu\nd9NtgKlVjLOMO+/3g8DJwFrgQxF5WVWXRhw6X1UHJZqfMcbEUrcudOjgLJUJdU+ePRvatNlXsHz4\n4f4FTWT35FhtMUHqnuyl99QyoHvop7z77MaXqlrJ1DqVZCzSFxinqvlu+noAVb0r7Jg84GpVPb2S\ncwX2TsMYc2CK1j05VltMZPfkihr6k9U9OZW9p/4HzBGRpwEBhgBvxptRFO2A1WHpNUDviGMUOFZE\nPsG5G7lGVb9MQt7GGJNSVR09ObxgWbkSFizYl161yjk+smDp3h3+9KfUvyfwNt3r5SJyFtDf3TRJ\nVV9KQt5ebg0+Ajqo6i4RORX4L3BwtANHjx5Nbm4uANnZ2fTs2bOsrrSgoAAgLdOh9XSJx+JPr/gs\n/vRNR76HeF/fq1ceRUUwZ04BW7dCu3ZOevFiJ123bh4bN8LKlU56xw7n9VlZBdSqBVlZedSvDz/8\nUOB2La483oKCAgoLC0mEb11uRaQPMD6seuoGYG9kY3jEa1YCR0c+WBjk6qmCNGkIrCqL318Wv3/C\nY9+1y+mpVVS0bwlPR9u3d6/zLEmzZk7VVPPm5dcj082aOQ82JqvnVuBm7hORWsBXwEnAOuADYFh4\nQ7iItAJ+UFUVkV7Ac6qaG+VcgS00jDHpZffuir/so6X37o39ZR/ty7958+QWAFWRyjaNlFDVEhG5\nHGeo9UxgiqouFZGL3f2TgHOAS0WkBNiF83S6McZ4EioA4rkLCC8AIr/8u3WDvn333+d3AVCdvM6n\n0QCnbeGr1IcUvyDfaQT59hwsfr/VpPh3746/CqikJP4qoIYNvRUAQb/2qZxPYxDw/4C6QK6IHAnc\nas9OGGOqKlQArFjhfLFX9uVfVOQcF+vLvls36NNn/31eCwDjnZfnND4CTgTmqeqR7rbPVfWX1RCf\nJ0G+0zAm6H76yfsv/9B6eAHgpf7fCoDkS2WbRrGqbpHyf6298WZkjEl/P/3kvfE3tF5cHPvLv0sX\n6N17/31WAASXl0LjCxEZDtQSkW7AFcB7qQ2r5gh6vajF76+K4o8sALzcBRQXx/7l36UL9Oq1/75E\nBvAL8vUPcuyJ8FJojAVuAvYAz+D0dpqQyqCMMeWFFwDhX/iLFsFLL0UvDH7+OXa1z0EHwTHH7L/v\nQBnB1aSOzadhTDXbsye++v+NG53XVFb/H5m2AsBUJBVDo79Swes0nXpPWaFh/LJnT3xf/kVFzmu8\nNv6G0llZVgCY5EpFoZFXwetUVefHm1mqBLnQCHq96IEUf3gB4LUgiCwAvDwPkMwC4EC6/kET5Ngh\nNfNpFISdvC7OQIEKfKWqxVUJ0pjqEioAKvvy//Zbp+5/40an3SD0xR75hd+pExx99P777A7A1DRe\nntPIw5l0yR2Ul47AKLvTMNUl9KUeTxXQ7t3ef/mH1hs3tgLA1BwpG7DQfbhvWGgIERE5GHhWVY+q\nUqQpYIVGcIQXAF6HhNi9O74v/+bNrQAwpjKpfLivVviYU6q63B2h1iRBkOtFf/4ZXnnFmSfZ613A\nrl2xq4A6dIAjj9x/XyoLgCBff7D4/RTk2BPh5ct/sYhMBqbhzNw3HFiU0qhMtSsujr8KaNcup06/\nTZv9f/mHCoDIgsHuAIwJNi/VU/WAy4B+7qZ3gIdVdU+KY/PMqqfKCy8AvFYB7doFTZvG1w00WXMV\nG2OqX+AmYUqmA7nQCBUA8QwJHVkAeGkPsALAmJollQ3hpwO3Abnsq85SVW0cb2ZRzp0P3I8zCdPk\nWFO9isgxwAJgsKq+GGV/IAqN4mLYtKn8F/x77xXQrFlezLuCnTudAiCeh8EaN3Ymta8OQa/Xtfj9\nFeT4gxw7pLYh/H7gd8Dnqpq00W1FJBN4EDgZWAt8KCIvh0/3Gnbc3cDrOG0qaSG8APB6F7BzJ+Tk\nlP+C37MHjjgC2rVz/o1WBVRdBYAxxlTGy53GfOBEVS1NasYifYFxqprvpq8HUNW7Io77E/AzcAww\nS1VnRDlXQncaoQIgniqgHTuqVgVkBYAxJh2k8k7jOmC2iMzD+fIGp3rq7/FmFqEdsDosvQboHX6A\niLQDzsCZBOoYnCfSK1RSsn8VUGW9grZv31cARH75t2kDhx++/z4rAIwxNZGXQmMCsB2oB9RJYt5e\nbg3uB65XVRVnFqiYpWK3bk4hECoAov3yDxUAkfuys/0rAIJeL2rx+8vi90+QY0+El0Kjjar+OgV5\nrwU6hKU74NxthDsaeNadNbA5cKqIFKvqy5En++UvR3PwwbnUqwc5Odn07Nmz7A9aUFAAUC69Zw90\n6xZ7v6UtbWlLV5QOSZd4vMRbUFBAYWEhifDSpnEPMFdV5ySU0/7nrQV8BZwErAM+wBmuZGmM4x8H\nXgly7yljjEkXqWzT+CNwjYj8DIRGt024y62qlojI5TgzAWYCU1R1qYhc7O6flMj5jTHGJF+lNfmq\n2khVM1S1nqpmuUvCz2i4556tqoeoaldVvdPdNilagaGqY6LdZQRd5K1u0Fj8/rL4/RPk2BNh/X+M\nMcZ4ZsOIGGNMDVTVNg270zDGGONZzEJDRBaLyD9FJN8d6dakQNDrRS1+f1n8/gly7Imo6E6jD/Bf\n4ARgvojMFpEr3Zn7jDHG1ECe2zTcIT3ygVOArsD7qvrHFMbmmbVpGGNMfKp1Pg135Nk+qvpu3C9O\nASs0jDEmPtXaEK6qpelSYARd0OtFLX5/Wfz+CXLsibDeU8YYYzyz5zSMMaYGSln1lIgcIiJzReQL\nN32EiNxclSCNMcYEm5fqqX8BN7JvAqbPgGEpi6iGCXq9qMXvL4vfP0GOPRFeCo0GqrowlHDrgYor\nON4YY8wByst8GrOBscDzqnqkiJwDXKCqp1ZHgF5Ym4YxxsQnZc9piEgX4DHgWGAzsBIYrqqFVYgz\nJazQMMaY+KSsIVxVv1HVk3CmWz1EVfulU4ERdEGvF7X4/WXx+yfIsSei0pn73MEKzwZygUxxJuxW\nVb0t0cxFJB+4H2fmvsmqenfE/jOA24C97nKtqr6VaL7GGGOqxkv11BxgC7AYKA1tV9X7EsrYGYrk\nK+BkYC3wIRFzhItIQ1Xd6a4fDrykql2jnMuqp4wxJg6pnCO8naqeUoWYKtMLWBGq6hKRZ4EzgLJC\nI1RguBoBRSmIwxhjjEdeuty+JyJHpCDvdsDqsPQad1s5InKmiCwFZgNXpCAOXwW9XtTi95fF758g\nx54IL4VGf2CxiCwXkc/c5dMk5O2pPklV/6uq3YHTgaeSkK8xxpgq8tKmkRtte6I9qESkDzBeVfPd\n9A3A3sjG8IjXfAP0UtWNEdt11KhR5OY6oWZnZ9OzZ0/y8vKAfb8ILG1pS1u6pqZD64WFhQBMnTo1\ndfNpiEh/oKuqPi4iLYBGqroy3swizlkLpyH8JGAd8AH7N4R3Ab5VVRWRo3AeMOwS5VzWEG6MMXFI\n5YCF44G/ADe4m+oA0+LNKJKqlgCXA3OAL4HpqrpURC4WkYvdw84GPhORJcA/gaGJ5ptuwn8FBJHF\n7y+L3z9Bjj0RXnpP/Q44EqfLLaq6VkSykpG5qs7GaeAO3zYpbP0e4J5k5GWMMSZxXto0PlDVXiKy\nxB17qiGwQFVT0aOqSqx6yhhj4pPK6V6fF5FJQLaIXATMBSbHm5Exxpjg8zL21P8DZrjLwcAtqjox\n1YHVFEGvF7X4/WXx+yfIsSfCy9hTtwBPqOobYdsuUtXHUhqZMcaYtOOlTeMH4EdgbGiwwFD7RjXE\n54m1aRhjTHxS2aaxFjgNuEtE/hJ3ZMYYYw4YXgoNVHUVcDxwmIi8ANRPaVQ1SNDrRS1+f1n8/gly\n7InwUmiEns/4SVVHA/NwHvAzxhhTw3gaRiTdWZuGMcbEJ2XzaYjIccA4nJn7QserqnaONzNjjDHB\n5qV6agrwd+A44Bh36ZXKoGqSoNeLWvz+svj9E+TYE+Fl7Kkt7hhRxhhjajgvz2ncBWQCLwJ7QttV\n9aPUhuadtWkYY0x8qtqm4aXQKCDKLHuqekK8maWKFRrGGBOflD3cp6p5qnpC5FK1ME2koNeLWvz+\nsvj9E+TYE+FlEqbWIjJFRF5304eJyAWpD80YY0y68VI99TrwOHCTqh4hIrWBJar6y4QzF8kH7sdp\nM5kcOT+4iAzHmTVQgO3Apar6aZTzWPWUMcbEIZVjTzVX1elAKYCqFgMl8WYUSUQygQeBfOAwYJiI\ndI847FvgeHfCpwmAjaxrjDE+8lJo7BCRZqGEiPQBtiYh717AClUtdAuiZ4Ezwg9Q1QWqGsprIdA+\nCfmmlaDXi1r8/rL4/RPk2BPh5TmNq4FXgM4i8h7QAjgnCXm3A1aHpdcAvSs4/gLgtSTka4wxpoo8\njT0lIrWAQ3DaFr5y7wwSy1jkbCBfVS900yOA3qo6NsqxJwAPAf1UdXOU/Tpq1Chyc3MByM7OpmfP\nnuTl5QH7fhFY2tKWtnRNTYfWCwsLAZg6dWrKntOoD/wRZxgRBd4BHlHVn+LNLOK8fYDxqprvpm8A\n9kZpDD8C58HCfFVdEeNc1hBujDFxSGVD+JM4DdUTcRqufwE8FW9GUSwCuolIrojUAYYAL4cfICId\ncQqMEbEKjKAL/xUQRBa/vyx+/wQ59kR4adP4haoeFpZ+S0S+TDRjVS0RkcuBOThdbqeo6lIRudjd\nPwn4K5ADPCIiAMWqaoMlGmOMT7xUT00DHlLVBW66D3CZqo6shvg8seopY4yJT9Ln0xCRz8KOeVdE\nVuO0aXQEvqpSlMYYYwKtojaN093lVKAzMADIc9fzUx5ZDRH0elGL318Wv3+CHHsiYt5pqGphNcZh\njDEmAA7oOcLdxnNjqsWB8H/J1BwpmyM86Ow/sqkO9gPF1BRehkZv5A4uiIgcIiKD3JFujTE+C3q9\nepDjD3LsifDycN/bQF0RaYfzTMVI4IlUBmWMMSY9eXlOY4mqHikiY4H6qnqPiHyiqj2qJ8TKVdSm\nYdVTpjrYZ80ETSqHEUFE+gLDgVfjeZ0xxpgDi5cv/z8BNwAvqeoXItIFmJfasExVFRYWkpGRwd69\newE47bTTeOopZ6iwJ554gv79+8d1vvDX++XOO+/kwgsv9DWGdBX0evUgxx/k2BNRae8pVZ0PzBeR\nhm76G+CKVAd2oMvNzeWHH34gMzOzbNuYMWOYOHFiUvN57bXEpiBJ9PVeFRYW0rlzZ0pKSsjIKP9b\n5oYbbqiWGIwxlau00BCRY4HJQBbQQUR6Ahep6h9THdyBTESYNWsWJ554ot+hRBWqn7eupOktNGdC\nUAU5/iDHnggv1VP34wwbUgSgqh/jDCliUmTv3r1cc801tGjRgi5duvDQQw+Vq3LKzc1l7ty5ZceP\nHz+ekSOjjx+Zl5fHlClTytKqytixY8nOzqZ79+689dZb5Y69+eab6devH40aNeLbb78t9/rIfCKr\nwvLy8rjlllvo168fWVlZDBo0iKKiIoYPH06TJk3o1asXq1ativt6hOcbyvPJJ5+kU6dOtGjRgjvu\nuKPc+7vrrrvo2rUrzZs3Z8iQIWzevN+8XcaYKvLUoK2q30VsKklBLDVOrN42jz32GK+++ioff/wx\nixYt4oUXXij3i19E9kvHEnnswoUL6dq1Kxs3buTWW2/lrLPOYsuWLWX7p02bxuTJk9m+fTudOnUq\n93ovdx3Tp09n2rRprF27lm+++Ya+fftywQUXsGnTJrp3786tt95a6TmivYdI7777LsuXL2fu3Lnc\ndtttfPWVM4bmxIkTefnll3n77bdZv349OTk5XHbZZXHnGRRBr1cPcvxBjj0RXgqN70SkH4CI1BGR\na4ClqQ2reogkZ6kKVeXMM88kJyenbAn9on/uuef485//TLt27cjJyeHGG2+ssDtnPF09W7ZsyZVX\nXklmZiaDBw/mkEMOYdasWe71EEaPHk337t3JyMigVq3ytZceumczZswYDjroIBo3bsypp57KwQcf\nzIknnkhmZibnnnsuS5Ys8RxrRfmOGzeOunXrcsQRR9CjRw8++eQTAB599FFuv/122rZtS+3atRk3\nbhwvvPBC2d2QMSYxXoYRuRT4J9AOWAu8ARwQP9387FYvIsycOTNqm8b69evp0KFDWbpjx45Jy7dd\nu3bl0p06dWL9+vVl6fB8q6JVq1Zl6/Xq1aNly5bl0jt27Ejo/CGtW7cuW2/QoEHZeVetWsXvfve7\nco3ptWovjkWgAAAdIklEQVTV4vvvv6dNmzZJyTudBL1ePcjxBzn2RFR6p6GqP6rqearaUlVbqOpw\nVd2YjMxFJF9ElonI1yJyXZT9h4rIAhH5SUSuTkaeQdCmTRu++25fjWD4OkDDhg3ZuXNnWXrDhg2e\nz7127dpy6VWrVtG2bduydEVVUI0aNWLXrl2e801WI3o85+nYsSOvv/46mzdvLlt27dp1QBYYxvgh\nZqEhIg9UsCTcL9Qdz+pBnEb2w4BhItI94rCNwFjg3kTzS0exqnsGDx7MxIkTWbt2LZs3b+auu+4q\n98XZs2dPnn32WUpKSli0aBEzZszw/MX6ww8/MHHiRIqLi3n++edZtmwZp512WqUxhfJ9++23Wb16\nNVu3buXOO++s8D1V5Qnpn376qdyiqnGd55JLLuHGG28sK2h//PFHXn755UpeFVxBr1cPcvxBjj0R\nFVVPLcaZqQ8g8hspGRU7vYAVoXk7RORZ4AzC2ktU9UfgRxH5TRLySzunn356uec0Bg4cyIwZM7jw\nwgtZvnw5PXr0oEmTJlx99dXMm7fvecoJEyYwbNgwcnJyGDBgAMOHD2fTpk1l+2MVICJCnz59+Prr\nr2nRogWtW7dmxowZ5OTkVPpagJNPPpkhQ4ZwxBFH0KJFC/7yl7+UtYdEe31kI3xl5wfnbib82Dfe\neCOuhv8rr7wSVWXgwIGsW7eOli1bMnToUAYNGlRhvsYYbzzPpyEiWYCqalIqpUXkHOAUVb3QTY8A\neqvq2CjHjgN2qOp9Mc51QI89VdGDbyY9HCifNVNzpGw+DRE5HHgSaOamfwRGqerncUdZXlL/h40e\nPZrc3FwAsrOz6dmzZzJPb4xnoWqLUEOppS2dDunQemFhIYnwMsrtAuBGVZ3npvOAO1T12IQyFukD\njFfVfDd9A7BXVe+OcmyNv9Po0qULxcXFdqeRpvz6rBUUFAS6F0+Q4w9y7JDaUW4bhAoMAFUtABrG\nm1EUi4BuIpIrInWAIUCsFssaPZZFbm4upaWlVmAYY3zn5U7jvziN4k/hfHkPB45W1d8lnLnIqTjD\nlGQCU1T1ThG5GEBVJ4lIa+BDoDGwF9gOHBbZrnKg32mY9GefNRM0Vb3T8FJoNAVuBfq5m97BqVZK\nmwF9rNAwfrPPmgmalFVPqeomVR2rqke5y5XpVGAYU5MF/VmBIMcf5NgT4aX31DHAjUBu2PGqqkek\nMC5jjDFpyEv11HLgGuBznHYFAEIP5aUDq54yfrPPmgmaVPae+lFVX1bVb1W1MLTEH6KpiksvvZTb\nb7896efNyMjg22+/Tfp5051NHWtMYrwUGreKyBQRGSYiZ7vLWSmP7ACXm5tL3bp12bix/NiPRx55\nJBkZGWVjJz3yyCPcfPPNVcojLy+P+vXrk5WVVbYsXLgw4di9GD16NHXr1iUrK4umTZty0kkn8cUX\nX3h6beTkTvGq6PU33HAD//rXv6p03nQU9Hr1IMcf5NgT4aXQGAX0wBlY8Lfucnoqg6oJRITOnTvz\nzDPPlG377LPP2L17d1JHh33ooYfYvn172dK7d++knNtL3tdddx3bt29n3bp1dOzYkTFjxsR1Dqvu\nMSb9eCk0fgUco6qjVHVMaEl1YDXBiBEjePLJJ8vSU6dO5fe//325L8vRo0dzyy23AM4vm/bt2/P3\nv/+dVq1a0bZtW5544omE49i6dSu///3vadmyJbm5ufztb38ri6FTp0589NFHAPznP/8hIyODpUud\nMSWnTJnC735X+eM69erV49xzzy13p/Hqq69y5JFH0qRJEzp27FhuRr/jjz8ecIaDCb87+ve//81h\nhx1G06ZNyc/P32/IeC8OtKljg/xEMgQ7/iDHnggvhcZ7OEOXmyTr06cP27ZtY9myZZSWljJ9+nRG\njBhR7pjIEV6///57tm3bxrp165gyZQqXXXYZW7dujZmHl1/rY8eOZfv27axcuZL58+fz5JNP8vjj\njwPOf4zQbfj8+fPp0qUL8+fPL0tX9B8nlPfOnTt55plnyt3lNGrUiGnTprF161ZeffVVHnnkEWbO\nnAnAO++8AziFWejuaObMmdx555289NJLFBUV0b9/f4YNG1bpe4tkU8cak6DQfAWxFmAZUAwsBz5z\nl08re111Ls7b2F+s7WX7x5OUpSpyc3P1f//7n95+++16ww036OzZs3XgwIFaUlKiIqKrVq1SVdXR\no0frzTffrKqq8+bN0/r162tpaWnZeVq2bKkLFy6MmseAAQO0QYMGmp2drdnZ2Xr00UeX7RMR/eab\nb7SkpETr1KmjS5cuLds3adIkzcvLU1XVKVOm6KBBg1RVtXv37jplyhQdOnSoqqp26tRJlyxZEjXv\n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\n1oyJhSrO3Fez7zREkrPEqaioiObNm5ebES6kdevWFBUVlaV/9atfcdZZZ5GZmclVV13FTz/9xIIF\nC/jwww8pKiri5ptvplatWhx00EH84Q9/4Nlnny177bHHHsugQYMAqFevHkcddRS9evUiIyODTp06\ncdFFF8X9y/yKK66gdevW5OTkcPrpp/Pxxx8D8Nxzz3H++efTvXt36tevz6233pqUqi4RYcyYMXTt\n2pV69eoxePDgsjynTZvGaaedRn6+M7nkySefzK9+9Stee+21hPM1xkRXswsN1eQscWrevDlFRUVl\nVTDh1q9fT4sWLcrSoRn0wPkCbd++PevWreO7775j3bp15OTklC133nknP/zwQ9TXAixfvpzf/va3\ntGnThiZNmnDTTTeVq+rxInxq1Pr167Nz586yuMOrsiLzTkRknuHTsT7//PPlrsG7777Lhg0bkpZ3\nugt6vXqQ4w9y7Imo2YWGT/r27UvdunWZMWNGue07duzg9ddf56STTirbtnr1vgfi9+7dy5o1a2jX\nrh0dOnTgoIMOKjcV6bZt25g1axYQvaH50ksv5bDDDmPFihVs3bqVv/3tb1ELrqpo06ZNuVjD11Ol\nY8eOjBw5stw12L59O3/5y19SnrcxNZUVGj5o0qQJ48aNY+zYscyZM4fi4mIKCwsZPHgwHTp0YOTI\nkWXHLl68mJdeeomSkhLuv/9+6tWrR58+fTjmmGPIysrinnvuYffu3ZSWlvL555+zaNEiIHovqB07\ndpCVlUWDBg1YtmwZjzxSfvzHVq1alZti1YtQPoMHD+bxxx9n2bJl7Nq1iwkTJlT62uLi4nLTsZaU\nlFSYR6QRI0bwyiuv8MYbb1BaWspPP/1EQUEBa9eujes9BFnQnxUIcvxBjj0RVmj45Nprr+WOO+7g\nmmuuoUmTJvTp04dOnToxd+5cateuDTh3C2eccQbTp0+nadOm/Oc//+HFF18kMzOTzMxMZs2axccf\nf0znzp1p0aIFF110Edu2bSt7beSdxr333svTTz9N48aNueiiixg6dGi5Y8aPH8+oUaPIycnhhRde\nqLRbbPj+/Px8rrjiCk444QQOPvhg+vbtC0DdunVjvv7SSy8tm461QYMGnH/++VHzjDX9bfv27Zk5\ncyZ33HEHLVu2pGPHjtx3331Ju3syxuzPZu5LY7feeisrVqzgqaee8juUuC1dupTDDz+cn3/+OWqD\n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\njGf/H4+Djc3FFZ59AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa623ef0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Steam circulation rate is 6.81e-04 kmol/s\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3: Page 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.3\n",
+ "# Page: 292\n",
+ "\n",
+ "print'Illustration 8.3 - Page: 292\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "# Since tower is a tray device:\n",
+ "# Following changes in notation is made:\n",
+ "# L1 to LNp\n",
+ "# L2 to L0\n",
+ "# X1 to XNp\n",
+ "# X2 to X0\n",
+ "# G1 to GNpPlus1\n",
+ "# G2 to G1\n",
+ "# Y1 to YNpPlus1\n",
+ "# Y2 to Y1\n",
+ "# x1 to xNp\n",
+ "# x2 to x0\n",
+ "# y1 to yNpPlus1\n",
+ "# y2 to y1\n",
+ "# From Illustration 8.2:\n",
+ "yNpPlus1 = 0.02;\n",
+ "Y1 = 0.00102;\n",
+ "y1 = Y1/(1+Y1);\n",
+ "GNpPlus1 = 0.01075;# [kmol/s]\n",
+ "x0 = 0.005;\n",
+ "m = 0.125;# [m = y_star/x]\n",
+ "Ls = 1.787*10**(-3);# [kmol/s]\n",
+ "Gs = 0.01051;# [kmol/s]\n",
+ "XNp = 0.1190;\n",
+ "LNp = Ls*(1+XNp);# [kmol/s]\n",
+ "ANp = LNp/(m*GNpPlus1);\n",
+ "X0 = x0/(1-x0);\n",
+ "L0 = Ls*(1+X0);# [kmol/s]\n",
+ "G1 = Gs*(1+Y1);# [kmol/s]\n",
+ "A1 = L0/(m*G1);\n",
+ "A = (ANp*A1)**0.5;\n",
+ "# From Eqn. 5.55:\n",
+ "Np = (math.log((yNpPlus1-(m*x0))/(y1-(m*x0))*(1-(1/A))+(1/A)))/math.log(A);\n",
+ "print\"Absorber\\n\"\n",
+ "print\"From Analytical Method, no. of theoretical trays required is \\n\",round(Np,4)\n",
+ "# From Fig. 8.13 (Pg292):\n",
+ "Np = 7.6;\n",
+ "print\"From Graphical Method, no. of theoretical trays required is \\n\",Np\n",
+ "\n",
+ "# Stripper\n",
+ "SNp = 1/ANp;\n",
+ "S1 = 1/A1;\n",
+ "# Due to relative nonconstancy of the stripping factor,graphical method should be used.\n",
+ "print\"Stripper\\n\"\n",
+ "# From Fig. 8.11 (Pg 289):\n",
+ "Np = 6.7;\n",
+ "print\"From Graphical Method, no. of theoretical trays required is \\n\",Np\n",
+ "# From Fig. 5.16 (Pg 129):\n",
+ "Np = 6.0;\n",
+ "print\"From Fig. 5.16, no. of theoretical trays required is \\n\",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.3 - Page: 292\n",
+ "\n",
+ "\n",
+ "Absorber\n",
+ "\n",
+ "From Analytical Method, no. of theoretical trays required is \n",
+ "7.7085\n",
+ "From Graphical Method, no. of theoretical trays required is \n",
+ "7.6\n",
+ "Stripper\n",
+ "\n",
+ "From Graphical Method, no. of theoretical trays required is \n",
+ "6.7\n",
+ "From Fig. 5.16, no. of theoretical trays required is \n",
+ "6.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 102
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4: Page 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.4\n",
+ "# Page: 295\n",
+ "\n",
+ "print'Illustration 8.4 - Page: 295\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "#****Data****#\n",
+ "# a = CH4 b = C5H12\n",
+ "Tempg = 27.0;# [OC]\n",
+ "Tempo = 0.0;# [base temp,OC]\n",
+ "Templ = 35.0;# [OC]\n",
+ "xa = 0.75;# [mole fraction of CH4 in gas]\n",
+ "xb = 0.25;# [mole fraction of C5H12 in gas]\n",
+ "M_Paraffin = 200.0;# [kg/kmol]\n",
+ "hb = 1.884;# [kJ/kg K]\n",
+ "#********#\n",
+ "\n",
+ "Ha = 35.59;# [kJ/kmol K]\n",
+ "Hbv = 119.75;# [kJ/kmol K]\n",
+ "Hbl = 117.53;# [kJ/kmol K]\n",
+ "Lb = 27820;# [kJ/kmol]\n",
+ "# M = [Temp (OC) m]\n",
+ "M = numpy.array([[20 ,0.575],[25 ,0.69],[30 ,0.81],[35, 0.95],[40, 1.10],[43, 1.25]]);\n",
+ "# Basis: Unit time\n",
+ "GNpPlus1 = 1.0;# [kmol]\n",
+ "yNpPlus1 = 0.25;# [kmol]\n",
+ "HgNpPlus1 = ((1-yNpPlus1)*Ha*(Tempg-Tempo))+(yNpPlus1*(Hbv*(Tempg-Tempo)+Lb));# [kJ/kmol]\n",
+ "L0 = 2.0;# [kmol]\n",
+ "x0 = 0.0;# [kmol]\n",
+ "HL0 = ((1-x0)*hb*M_Paraffin*(Templ-Tempo))+(x0*hb*(Templ-Tempo));# [kJ/kmol]\n",
+ "C5H12_absorbed = 0.98*xb;# [kmol]\n",
+ "C5H12_remained = xb-C5H12_absorbed;\n",
+ "G1 = xa+C5H12_remained;# [kmol]\n",
+ "y1 = C5H12_remained/G1;# [kmol]\n",
+ "LNp = L0+C5H12_absorbed;# [kmol]\n",
+ "xNp = C5H12_absorbed/LNp;# [kmol]\n",
+ "# Assume:\n",
+ "Temp1 = 35.6;# [OC]\n",
+ "Hg1 = ((1-y1)*Ha*(Temp1-Tempo))+(y1*(Hbv*(Temp1-Tempo)+Lb));# [kJ/kmol]\n",
+ "\n",
+ "# Eqn. 8.11:\n",
+ "Qt = 0;\n",
+ "def f30(HlNp):\n",
+ " return ((L0*HL0)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(G1*Hg1)+Qt)\n",
+ "HlNp = fsolve(f30,2);\n",
+ "\n",
+ "def f31(TempNp):\n",
+ " return HlNp-(((1-x0)*hb*M_Paraffin*(TempNp-Tempo))+(x0*hb*(TempNp-Tempo)))\n",
+ "TempNp = fsolve(f31,35.6);\n",
+ "# At Temp = TempNp:\n",
+ "mNp = 1.21;\n",
+ "yNp = mNp*xNp;# [kmol]\n",
+ "GNp = G1/(1-yNp);# [kmol]\n",
+ "HgNp = ((1-yNp)*Ha*(TempNp-Tempo))+(yNp*(Hbv*(TempNp-Tempo)+Lb));# [kJ/kmol]\n",
+ "# Eqn. 8.13 with n = Np-1\n",
+ "def f32(LNpMinus1):\n",
+ " return LNpMinus1+GNpPlus1-(LNp+GNp)\n",
+ "LNpMinus1 = fsolve(f32,2);# [kmol]\n",
+ "\n",
+ "# Eqn. 8.14 with n = Np-1\n",
+ "def f33(xNpMinus1):\n",
+ " return ((LNpMinus1*xNpMinus1)+(GNpPlus1*yNpPlus1))-((LNp*xNp)+(GNp*yNp))\n",
+ "xNpMinus1 = fsolve(f33,0);# [kmol]\n",
+ "\n",
+ "# Eqn. 8.15 with n = Np-1\n",
+ "def f34(HlNpMinus1):\n",
+ " return ((LNpMinus1*HlNpMinus1)+(GNpPlus1*HgNpPlus1))-((LNp*HlNp)+(GNp*HgNp))\n",
+ "HlNpMinus1 = fsolve(f34,0);# [kJ/kmol]\n",
+ "def f35(TempNpMinus1):\n",
+ " return HlNpMinus1-(((1-xNpMinus1)*hb*M_Paraffin*(TempNpMinus1-Tempo))+(xNpMinus1*hb*(TempNpMinus1-Tempo)))\n",
+ "TempNpMinus1 = fsolve(f35,42);# [OC]\n",
+ "\n",
+ "# The computation are continued upward through the tower in this manner until the gas composition falls atleast to 0.00662.\n",
+ "# Results = [Tray No.(n) Tn(OC) xn yn]\n",
+ "Results = numpy.array([[4.0 ,42.3 ,0.1091 ,0.1320],[3 ,39.0, 0.0521 ,0.0568],[2 ,36.8 ,0.0184 ,0.01875],[1 ,35.5, 0.00463 ,0.00450]]);\n",
+ "\n",
+ "plt.plot(Results[:,0],Results[:,3]);\n",
+ "plt.grid('on');\n",
+ "xlabel('Tray Number');\n",
+ "ylabel('mole fraction of C5H12 in gas');\n",
+ "plt.show();\n",
+ "plt.plot(Results[:,0],Results[:,1]);\n",
+ "plt.grid('on');\n",
+ "xlabel('Tray Number');\n",
+ "ylabel('Temperature(OC)');\n",
+ "plt.show();\n",
+ "\n",
+ "# For the required y1\n",
+ "Np = 3.75;\n",
+ "print\"The No. of trays will be \",Np"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.4 - Page: 295\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nIrH8P0wZNkRyHEDjAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5b6320>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nEQH+H2FRyOkvfEciAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x785c198>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The No. of trays will be 3.75\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5: Page 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.5\n",
+ "# Page: 299\n",
+ "\n",
+ "print'Illustration 8.5 - Page: 299\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "#****Data****#\n",
+ "# a = NH3 b = H2 c = N2 w = water\n",
+ "P = 2.0;# [bars]\n",
+ "Temp = 30.0;# [OC]\n",
+ "L = 6.38;# [kg/s]\n",
+ "W = 0.53;# [weir length,m]\n",
+ "pitch = 12.5/1000;# [m]\n",
+ "D = 0.75;# [Tower diameter,m]\n",
+ "hW = 0.060;# [weir height,m]\n",
+ "t = 0.5;# [tray spacing,m]\n",
+ "#*******#\n",
+ "\n",
+ "# From Geometry of Tray Arrangement:\n",
+ "At = 0.4418;# [Tower Cross section,square m]\n",
+ "Ad = 0.0403;# [Downspout Cross section,square m]\n",
+ "An = At-Ad;# [square m]\n",
+ "Ao = 0.0393;# [perforation area,square m]\n",
+ "Z = 0.5307;# [distance between downspouts,square m]\n",
+ "z = (D+W)/2.0;# [average flow width,m]\n",
+ "h1 = 0.04;# [weir crest,m]\n",
+ "# From Eqn. 6.34\n",
+ "Weff = W*(math.sqrt(((D/W)**2)-((((D/W)**2-1)**0.5)+((2*h1/D)*(D/W)))**2));# [m]\n",
+ "q = Weff*(1.839*h1**(3/2));#[cubic m/s]\n",
+ "# This is a recommended rate because it produces the liquid depth on the tray to 10 cm.\n",
+ "Density_L = 996;# [kg/s]\n",
+ "Mw = 18.02;# [kg/kmol]\n",
+ "L1 = 6.38/Mw;# [kmol/s]\n",
+ "Ma = 17.03;# [kg/kmol]\n",
+ "Mb = 28.02;# [kg/kmol]\n",
+ "Mc = 2.02;# [kg/kmol]\n",
+ "MavG = (0.03*Ma)+(0.97*(1/4)*Mb)+(0.97*(3/4)*Mc);# [kg/kmol]\n",
+ "Density_G = (MavG/22.41)*(P/0.986)*(273/(273+Temp));# [kg/cubic m]\n",
+ "G = 0.893;# [kg/s]\n",
+ "sigma = 68*10**(-3);# [N/m]\n",
+ "abcissa = (L/G)*(Density_G/Density_L)**0.5;\n",
+ "# From Table 6.2 (Pg169):\n",
+ "alpha = 0.04893;\n",
+ "beeta = 0.0302;\n",
+ "# From Eqn. 6.30\n",
+ "Cf = ((alpha*math.log10(1.0/abcissa))+beeta)*(sigma/0.02)**0.2;\n",
+ "# From Eqn. 6.29\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "# 80% of flooding value:\n",
+ "V = 0.8*Vf;# [m/s]\n",
+ "G = 0.8*G;# [kg/s]\n",
+ "G1 = G/MavG;# [kmol/s]\n",
+ "Vo = V*An/Ao;# [m/s]\n",
+ "l = 0.002;# [m]\n",
+ "Do = 0.00475;# [m]\n",
+ "# From Eqn. 6.37\n",
+ "Co = 1.09*(Do/l)**0.25;\n",
+ "viscosity_G = 1.13*10**(-5);# [kg/m.s]\n",
+ "Reo = Do*Vo*Density_G/viscosity_G;\n",
+ "# At Reynold's No. = Reo\n",
+ "fr = 0.0082;\n",
+ "g = 9.81;# [m/s^2]\n",
+ "# From Eqn. 6.36\n",
+ "def f36(hD):\n",
+ " return (2*hD*g*Density_L/(Vo**2*Density_G))-(Co*(0.40*(1.25-(Ao/An))+(4*l*fr/Do)+(1-(Ao/An))**2))\n",
+ "hD = fsolve(f36,1);\n",
+ "# From Eqn. 6.31;\n",
+ "Aa = (Ao/0.907)*(pitch/Do)**2;# [square m]\n",
+ "Va = V*An/Aa;# [m/s]\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.42\n",
+ "hR = 6*sigma/(Density_L*Do*g);# m\n",
+ "# From Eqn. 6.35\n",
+ "hG = hD+hL+hR;# [m]\n",
+ "Al = 0.025*W;# [square m]\n",
+ "Ada = min(Al,Ad);\n",
+ "# From Eqn. 6.43\n",
+ "h2 = (3/(2*g))*(q/Ada)**2;# [m]\n",
+ "# From Eqn.6.44\n",
+ "h3 = hG+h2;\n",
+ "# since hW+h1+h3 is essentially equal to t/2, flooding will not occur\n",
+ "abcissa = (L/G)*(Density_G/Density_L)**0.5;\n",
+ "V_by_Vf = V/Vf;\n",
+ "# From Fig.6.17, V/Vf = 0.8 & abcissa = 0.239\n",
+ "E = 0.009;\n",
+ "\n",
+ "# At the prevailing conditions:\n",
+ "Dg = 2.296*10**(-5);# [square m/s]\n",
+ "viscosity_G = 1.122*10**(-5);# [kg/m.s]\n",
+ "ScG = viscosity_G/(Density_G*Dg)\n",
+ "Dl = 2.421*10**(-9);# [square m/s]\n",
+ "\n",
+ "# From Henry's Law:\n",
+ "m = 0.850;\n",
+ "A = L1/(m*G1);\n",
+ "\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;# [square m/s]\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2.0)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# From Eqn. 6.60:\n",
+ "EMGE = EMG/((1+(EMG*(E/(1-E)))));\n",
+ "# From Eqn. 8.16:\n",
+ "EO = math.log(1+EMGE*((1.0/A)-1))/math.log(1.0/A);\n",
+ "Np = 14*EO;\n",
+ "yNpPlus1 = 0.03;\n",
+ "x0 = 0;\n",
+ "# From Eqn. 5.54(a):\n",
+ "def f37(y1):\n",
+ " return ((yNpPlus1-y1)/(yNpPlus1-m*x0))-(((A**(Np+1))-A)/((A**(Np+1))-1))\n",
+ "y1 = fsolve(f37,0.03);\n",
+ "print\"Mole Fraction Of NH3 in effluent is \",round(y1,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.5 - Page: 299\n",
+ "\n",
+ "\n",
+ "Mole Fraction Of NH3 in effluent is 0.0211\n"
+ ]
+ }
+ ],
+ "prompt_number": 159
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6: Page 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.6\n",
+ "# Page: 304\n",
+ "\n",
+ "print'Illustration 8.6 - Page: 304\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****# \n",
+ "# Gas:\n",
+ "# In:\n",
+ "y_prime1 = 0.02;\n",
+ "Y_prime1 = 0.0204;# [mol/mol dry gas]\n",
+ "# Out:\n",
+ "y_prime2 = 0.00102;\n",
+ "Y_prime2 = 0.00102;# [mol/mol dry gas]\n",
+ "# Non absorbed gas:\n",
+ "MavG = 11;# [kg/kmol]\n",
+ "G = 0.01051;# [kmol/s nonbenzene]\n",
+ "Gm = 0.01075;# [kmol/s]\n",
+ "T = 26;# [OC]\n",
+ "viscosity_G = 10**(-5);# [kg/m.s]\n",
+ "DaG = 1.30*10**(-5);# [square m/s]\n",
+ "\n",
+ "# Liquid:\n",
+ "# In:\n",
+ "x_prime2 = 0.005;\n",
+ "X_prime2 = 0.00503;# [mol benzene/mol oil]\n",
+ "# Out:\n",
+ "x_prime1 = 0.1063;\n",
+ "X_prime1 = 0.1190;# [mol benzene/mol oil]\n",
+ "# Benzene free oil:\n",
+ "MavL = 260.0;# [kg/kmol]\n",
+ "viscosity_L = 2*10**(-3);# [kg/kmol]\n",
+ "Density_L = 840;# [kg/cubic cm]\n",
+ "L = 1.787*10**(-3);# [kmol/s]\n",
+ "DaL = 4.77*10**(-10);# [square m/s]\n",
+ "sigma = 0.03;# [N/square m]\n",
+ "m = 0.1250;\n",
+ "#*******#\n",
+ "\n",
+ "A = 0.47**2*math.pi/4;# [square m]\n",
+ "# At the bottom:\n",
+ "L_prime1 = ((L*MavL)+(X_prime1*L*78))/A;# [kg/square m.s]\n",
+ "# At the top\n",
+ "L_prime2 = ((L*MavL)+(X_prime2*L*78))/A;# [kg/square m.s]\n",
+ "L_primeav = (L_prime1+L_prime2)/2;# [kg/square m.s]\n",
+ "# At the bottom\n",
+ "G_prime1 = ((G*MavG)+(Y_prime1*G*78))/A;# [kg/square m.s]\n",
+ "# At the top\n",
+ "G_prime2 = ((G*MavG)+(Y_prime2*G*78))/A;# [kg/square m.s]\n",
+ "G_primeav = (G_prime1+G_prime2)/2;# [kg/square m.s]\n",
+ "\n",
+ "# From Illustration 6.6:\n",
+ "Fga = 0.0719;# [kmol/cubic cm.s]\n",
+ "Fla = 0.01377;# [kmol/cubic cm.s]\n",
+ "# Operating Line:\n",
+ "X_prime = numpy.array([0.00503 ,0.02 ,0.04 ,0.06 ,0.08 ,0.10 ,0.1190]);\n",
+ "x_prime = numpy.zeros(7);\n",
+ "Y_prime = numpy.zeros(7);\n",
+ "y_prime = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " x_prime[i] = X_prime[i]/(1+X_prime[i]);\n",
+ " def f38(Y_prime):\n",
+ " return (G*(Y_prime1-Y_prime))-(L*(X_prime1-X_prime[i]))\n",
+ " Y_prime[i] = fsolve(f38,Y_prime1);\n",
+ " y_prime[i] = (Y_prime[i])/(1+Y_prime[i]);\n",
+ "\n",
+ "def f39(x):\n",
+ " return m*x\n",
+ "x = numpy.arange(0,0.14,0.01);\n",
+ "\n",
+ "# Interface compositions are determined graphically and according to Eqn. 8.21:\n",
+ "yi = [0.000784, 0.00285, 0.00562 ,0.00830 ,0.01090 ,0.01337 ,0.01580];\n",
+ "ylog = zeros(7);\n",
+ "y_by_yDiffyi = zeros(7);\n",
+ "for i in range(0,7):\n",
+ " ylog[i] = math.log10(yi[i]);\n",
+ " y_by_yDiffyi[i] = y_prime[i]/(y_prime[i]-yi[i]);\n",
+ "\n",
+ "plt.plot(x_prime,y_prime,label=\"Operating Line\")\n",
+ "plt.plot(x,f39(x),label=\"Equilibrium Line\")\n",
+ "plt.plot(x_prime,yi,label=\"Interface Composition\");\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.grid('on');\n",
+ "xlabel(\"mole fraction of benzene in liquid\");\n",
+ "ylabel(\"mole fraction of benzene in gas\");\n",
+ "plt.show()\n",
+ "plt.plot(ylog,y_by_yDiffyi);\n",
+ "plt.grid();\n",
+ "xlabel(\"log y\");\n",
+ "ylabel(\"y/(y-yi)\");\n",
+ "title(\"Graphical Integration Curve\");\n",
+ "plt.show()\n",
+ "# Area under the curve:\n",
+ "Ac = 6.556;\n",
+ "# Eqn. 8.28:\n",
+ "NtG = (2.303*Ac)+1.152*(math.log10((1-y_prime2)/(1-y_prime1)));\n",
+ "Gav = (Gm+(G/(1-Y_prime2)))/(2*A);# [kmol/square m.s]\n",
+ "HtG = Gav/Fga;# [m]\n",
+ "Z = HtG*NtG;# [m]\n",
+ "print\"The depth of packing required is \",round(Z,3),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.6 - Page: 304\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n2QAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5b66a0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5852b0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The depth of packing required is 12.881 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7: Page 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.7\n",
+ "# Page: 312\n",
+ "\n",
+ "print'Illustration 8.7 - Page: 312\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "# Fom Illustration 8.6:\n",
+ "y1 = 0.02;\n",
+ "y2 = 0.00102;\n",
+ "m = 0.125;\n",
+ "x2 = 0.005;\n",
+ "x1 = 0.1063;\n",
+ "\n",
+ "# Number of transfer units:\n",
+ "# Method a:\n",
+ "y1_star = m*x1;\n",
+ "y2_star = m*x2;\n",
+ "yDiffy_star1 = y1-y1_star;\n",
+ "yDiffy_star2 = y2-y2_star;\n",
+ "yDiffy_starm = (yDiffy_star1-yDiffy_star2)/math.log(yDiffy_star1/yDiffy_star2);\n",
+ "# From Eqn. 8.48:\n",
+ "NtoG = (y1-y2)/yDiffy_starm;\n",
+ "print\"NtoG according to Eqn. 8.48:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Mehod b:\n",
+ "# From Illustration 8.3:\n",
+ "A = 1.424;\n",
+ "NtoG = (math.log((((y1-(m*x2))/(y2-(m*x2)))*(1-(1/A)))+(1/A)))/(1-(1/A));\n",
+ "print\"NtoG according to Eqn. 8.50:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Method c:\n",
+ "# Operating Line:\n",
+ "# From Illustration 8.3:\n",
+ "X_prime = [0.00503, 0.02, 0.04 ,0.06 ,0.08 ,0.10 ,0.1190];\n",
+ "x_prime = [0.00502 ,0.01961, 0.0385, 0.0566, 0.0741, 0.0909 ,0.1063]\n",
+ "Y_prime = [0.00102 ,0.00357 ,0.00697 ,0.01036 ,0.01376 ,0.01714 ,0.0204];\n",
+ "y_prime = [0.00102 ,0.00356, 0.00692 ,0.01025 ,0.01356 ,0.01685, 0.0200];\n",
+ "def f2(x):\n",
+ " return m*x\n",
+ "x = numpy.arange(0,0.14,0.01);\n",
+ "\n",
+ "plt.plot(x_prime,y_prime,label=\"Operating Line\")\n",
+ "plt.plot(x,f2(x),label=\"Equilibrium Line\");\n",
+ "plt.legend(loc='upper right');\n",
+ "plt.grid('on');\n",
+ "xlabel(\"mole fraction of benzene in liquid\");\n",
+ "ylabel(\"mole fraction of benzene in gas\");\n",
+ "plt.show()\n",
+ "# From graph:\n",
+ "NtoG = 8.7;\n",
+ "print\"NtoG from graph:\",round(NtoG,2),\" \\n\",\n",
+ "\n",
+ "# Method d:\n",
+ "# from Fig 8.10:\n",
+ "Y_star = [0.000625, 0.00245, 0.00483, 0.00712 ,0.00935 ,0.01149, 0.01347];\n",
+ "ordinate = numpy.zeros(7);\n",
+ "for i in range(0,7):\n",
+ " ordinate[i] = 1/(Y_prime[i]-Y_star[i]);\n",
+ "\n",
+ "plt.plot(Y_prime,ordinate);\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Y\");\n",
+ "ylabel(\"1/(Y-Y*)\");\n",
+ "plt.title(\"Graphical Integration\");\n",
+ "plt.show()\n",
+ "# Area under the curve:\n",
+ "Ac = 8.63;\n",
+ "# From Eqn. 8.36:\n",
+ "NtoG = Ac+(1.0/2)*math.log((1+y2)/(1+y1));\n",
+ "print\"NtoG from graphical integration:\",round(NtoG,2),\"\\n\"\n",
+ "\n",
+ "# Height of transfer units:\n",
+ "NtoG = 9.16;\n",
+ "# From Illustration 6.6:\n",
+ "Fga = 0.0719;# [kmol/cubic m.s]\n",
+ "Fla = 0.01377;# [kmol/cubic m.s]\n",
+ "Gav = 0.0609;# [kmol/square m.s]\n",
+ "L = 1.787*10**(-3);# [kmol/s]\n",
+ "X1 = x1/(1-x1);\n",
+ "X2 = x2/(1-x2);\n",
+ "Area = 0.1746;# [square m]\n",
+ "Lav = L*((1+X1)+(1+X2))/(2*Area);\n",
+ "# From Eqn. 8.24:\n",
+ "Htg = Gav/Fga;# [m]\n",
+ "# From Eqn. 8.31:\n",
+ "Htl = Lav/Fla;# [m]\n",
+ "# since Solutions are dilute:\n",
+ "HtoG = Htg+Htl/A;# [m]\n",
+ "print\"HtoG: \",round(HtoG,2),\" m\\n\",\n",
+ "Z = HtoG*NtoG;# [m]\n",
+ "print\"The depth of packing recquired is \",round(Z,2),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.7 - Page: 312\n",
+ "\n",
+ "\n",
+ "NtoG according to Eqn. 8.48: 8.51 \n",
+ "\n",
+ "NtoG according to Eqn. 8.50: 9.16 \n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXucTfX6x9+PiaTcOoQGETnp/BQluVXOKSW/qBONbk6k\nqBNdpKI6mu506MavC7mVQkJJFyKkK+NaIUkTmaI0LqGYmef3x1oztmkua2avvffae57367Vesy7f\n7/p+9nfP3s9e3+f7fB9RVQzDMAzDL8rFWoBhGIaRWJhhMQzDMHzFDIthGIbhK2ZYDMMwDF8xw2IY\nhmH4ihkWwzAMw1cialhEpJOIrBeRb0Tk7kLKPONeXy0iLdxz9URkoYh8JSJfisgtIeVTReQHEVnp\nbp0i+RoMwzCMknFEpG4sIknAaOB8YCuwTERmq+q6kDKdgcaqepKInAU8B7QGDgK3q+oqETkGWC4i\n81R1PaDAE6r6RKS0G4ZhGKUnkk8srYCNqpquqgeBqcAl+cp0BSYBqOrnQDURqaWqP6nqKvf8b8A6\nIDmknkRQt2EYhhEGkTQsycCWkOMfONw4FFambmgBEWkAtAA+Dzk9wB06Gyci1fwSbBiGYYRPJA2L\n17Vi8j995NVzh8FeB251n1zAGS5rCDQHfgRGhqnTMAzD8JGI+Vhw/Cr1Qo7r4TyRFFWmrnsOESkP\nzAAmq+obuQVUdXvuvoi8CLxVUOMiYougGYZhlBBVDdvVEMknljTgJBFpICIVgB7A7HxlZgP/AhCR\n1sBOVd0mIgKMA9aq6lOhFUSkTsjhP4EvChOgqoHe7r///phrMJ2m03SaztzNLyL2xKKqWSLSH5gL\nJAHjVHWdiPRzr7+gqu+ISGcR2QjsBXq71dsB1wBrRGSle26Iqr4HDBeR5jhDZt8B/SL1GiJNenp6\nrCV4wnT6i+n0F9MZPCI5FIaqvgu8m+/cC/mO+xdQ7yMKeZpS1X/5qdEwDMPwF4u8jyG9evWKtQRP\nmE5/MZ3+YjqDh/g5rhYkREQT9bUZhmFEAhFBA+68N4ph0aJFsZbgCdPpL5HSKSK22eZ5iyQR9bEY\nhhFd7Cnd8EKkDYsNhRlGgiAiZlgMTxT2v+Ket6EwwzAMI1iYYYkhZd0n4Dem0zCCgRkWwzAMYMmS\nJZx88slRbXPz5s1Urlw54YYwzcdiGAlC0H0sEydOZOTIkWzatIkqVarwz3/+k8cee4yqVavGRE+5\ncuXYuHEjJ554YsTb6tChAz179qRPnz4Rb8sL5mMxDCPuGTlyJIMHD2bkyJHs3r2bzz77jO+//56O\nHTty8OBB39vLzs72VC5ahjgaU3yDhBmWGBIvY+2m01/iRadf7N69m9TUVEaPHs0FF1xAUlISJ5xw\nAq+99hrp6elMnjwZgNTUVLp3784VV1xBlSpVOOOMM1izZk3efTIyMujWrRvHHXccJ554IqNGjcq7\nllu3Z8+eVK1alUmTJrFs2TLatGlD9erVOf744xkwYECeETvnnHMAOO2006hcuTLTp09n0aJF1Kt3\naLH1Bg0aMHLkSE477TSqVavGFVdcwR9//JF3/fHHH+f444+nbt26vPjii5QrV45NmzaVqG/S09Mp\nV64cOTk5gPNkM3ToUNq3b0+VKlW48MIL2bFjR175zz77jLZt21K9enWaN2/O4sWLS9RetDDDYhhG\nRPnkk0/4/fffueyyyw47f/TRR9O5c2fef//9vHOzZ88mJSWFzMxMrrrqKi699FKys7PJycmhS5cu\ntGjRgoyMDBYsWMBTTz3FvHnzDqt7+eWXs2vXLq666iqSkpJ4+umn2bFjB59++ikLFizg2WefBeDD\nDz8EYM2aNezZs4fLL7/8T7pFhOnTpzN37ly+++471qxZw8SJEwF47733ePLJJ1mwYAHffPMNixYt\n8u2JZMqUKUycOJHt27dz4MABRowYAcDWrVu5+OKLGTp0KJmZmYwYMYJu3brxyy+/+NKun5hhiSEd\nOnSItQRPmE5/iZVOEX+2kvLLL79Qo0YNypX789dN7dq1D/tibNmyJZdddhlJSUkMHDiQ33//nU8/\n/ZRly5bxyy+/cN9993HEEUfQsGFDrr/+eqZOnZpXt23btnTt2hWAihUrcvrpp9OqVSvKlSvHCSec\nQN++fUv8C/+WW26hdu3aVK9enS5durBq1SoAXnvtNa677jqaNm3KUUcdxQMPPODLsJqI0Lt3bxo3\nbkzFihVJSUnJa3Py5Ml07tyZTp06AXD++efTsmVL3nnnnbDb9RuLvDeMMkKs/Po1atTgl19+IScn\n50/G5ccff6RmzZp5x3XrHspMLiLUrVuXjIwMRISMjAyqV6+edz07OztvSCt/XYANGzYwcOBAli9f\nzr59+8jKyqJly5Yl0l67du28/aOOOooff/wxT3erVq0KbTsc8rf5229O8tzvv/+e6dOn89Zbh3Ib\nZmVl8Y9//MO3tv3CnlhiSLyMtZtOf4kXnX7Rpk0bjjzySGbMmHHY+d9++4333nuP8847L+/cli1b\n8vZzcnL44YcfSE5Opl69ejRs2JDMzMy8bffu3cyZMwco2Dl+0003ccopp7Bx40Z27drFI488kufL\nCJc6deocpjV0P1LUr1+fnj17HtYHe/bs4a677op42yXFDIthGBGlatWq3H///QwYMIC5c+dy8OBB\n0tPTSUlJoV69evTs2TOv7PLly5k1axZZWVk89dRTVKxYkdatW3PmmWdSuXJlHn/8cfbv3092djZf\nfvklaWlpQMGzu3777TcqV65MpUqVWL9+Pc8999xh12vVqsW3335boteS205KSgoTJkxg/fr17Nu3\nj4ceeqjYugcPHuT333/P27KysopsIz/XXHMNb731FvPmzSM7O5vff/+dRYsWsXXr1hK9hmhghiWG\nmE/AX0xncLnzzjt59NFHGTRoEFWrVqV169accMIJLFiwgPLlywPOU8cll1zCtGnTOPbYY3nllVeY\nOXMmSUlJJCUlMWfOHFatWsWJJ55IzZo16du3L7t3786rm/+JZcSIEbz66qtUqVKFvn37csUVVxxW\nJjU1lWuvvZbq1avz+uuvFzslOPR6p06duOWWW/j73/9OkyZNaNOmDQBHHnlkofVvuukmKlWqlLdd\nd911BbYZehx6vW7durz55ps8+uijHHfccdSvX5+RI0f69hTmJxYgaRgJQtADJIvjgQceYOPGjbz8\n8suxllJi1q1bR7NmzThw4ECBkxSChgVIJjDxMtZuOv0lXnRGm3gzirNmzeKPP/4gMzOTu+++m65d\nu8aFUYkG1guGYQSCeItOHzNmDLVq1aJx48aUL1/+Tz6csowNhRlGghDvQ2FG9LChMMMwDCOuMMMS\nQ+JlrN10+ku86DSM0mKGxTAMw/AV87EYRoJgPhbDK+ZjMQzDMOIKMywxJF7G2k2nv8SLznggf2rf\nDh06MG7cOABeeeUVLrzwwryyJc2Xkr9+LIjX1MVmWAzDiDgNGjSgUqVKVK5cOW+75ZZbwr5v/fr1\n2bNnT178S2gszNVXX83cuXNLfe9w65eEUIMYSv7XFy/YsvkxJF7WjDKd/hIvOv1ERJgzZ04gl3gv\niOzsbJKSkqLWXrwFhxZHsU8sInKMiCS5+38Vka4iUj7y0gzDKAvk5OQwaNAgatasSaNGjfi///u/\n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\nvT7hM9J+mQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa595d68>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NtoG from graph: 8.7 \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAEZCAYAAABfKbiYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XuYHHWV//H3h4QQMMAQgVwIOEAAAYEBFuIqkQnXiLsC\nzy4oXpYIugthRVFZiC43L1zcXUVk1d8aIEEFxPUnlxVCEmCQ5ZYfSsIliyS4AySQkEAIAY2Q5Pz+\nqJpUZ5hLZtLVVT39eT1PP3RVV3d9+1DpM3VOXRQRmJmZVcNmRQ/AzMwGDicVMzOrGicVMzOrGicV\nMzOrGicVMzOrGicVMzOrGicVG9AkXSzpJz28/qSkD+W5jnomaRdJqySp6LFYfXBSsZqS9HFJj0h6\nQ9JSSQ9LOjPHVfZ4IlZEvC8ifpPXOiS1SnphYz5EUrOkdZIK+3cpqV3SER3TEfF8RGwdPqHNNpKT\nitWMpC8DVwJXACMiYgRwBvBBSUO6ec+mbqO1+Au72uvIZcySBm3EYpHX+q0xOKlYTUjaFrgEODMi\n/m9EvAkQEXMj4lMR8Va63DRJP5R0h6Q3gFZJH5H0mKSVkp6XdFHF53b8df85SYslvZgmrw4BDJE0\nXdLrabnr4Ir3t0s6Mn0+SNJXJS1Ml31U0k7pa99L170ynX9YP+PQJunrkv47Xcddkt6dvtyxx/Ra\nWnIal77nNEnzJb0qaYakXSo+7xhJv5f0mqR/l3SfpNPT1yZJekDSdyQtBy6StJukeyQtl7RM0k/T\n/zekJbxdgNvT9X+l896TpNGSbpP0iqQFkj5bMZaLJd3cXaytMTipWK38JbAFcOtGLHsK8I2IGAY8\nALwBfCoitgU+Apwp6fhO72kFxgLHAOd1JAqSv7o/CtwIbAvcBlxd8b4gK199Cfg48OGI2Ab4DPCn\n9LU5wAHAdsANwC+627vayO83CdgRGAJ8JZ0/Pv3vtmnJ6ZH0e04BTgS2B+5PvwuStgd+AZwHDAd+\nTxLnylLVocCz6bouTePxLWAUsDewM3AxQER8Gnge+Kt0/f/axdhvSpcZBfwtcKmkCRWv/zXdx9oa\ngJOK1cr2wPKIWNcxQ9KDklZI+mOnv/xviYiHACLizxFxX0Q8lU4/QfLDdninz78kIv4UEU8C15H8\ncHe4PyJmpH2Bn5Ikh658FvhaRCzoWFdEvJo+/1lErIiIdRHxHZIEuVc/4hDAdRGxMCJWAzcDLR0h\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x785fc18>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NtoG from graphical integration: 8.62 \n",
+ "\n",
+ "HtoG: 1.4 m\n",
+ "The depth of packing recquired is 12.84 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8: Page 317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.8\n",
+ "# Page: 317\n",
+ "\n",
+ "print'Illustration 8.8 - Page: 317\\n\\n'\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "#***Data***\n",
+ "# a:NH3 b:air c:H2O\n",
+ "ya = 0.416;# [mole fraction]\n",
+ "yb = 0.584;# [mole fraction]\n",
+ "G1 = 0.0339;# [kmol/square m.s]\n",
+ "L1 = 0.271;# [kmol/square m.s]\n",
+ "TempG1 = 20;# [OC]\n",
+ "#********#\n",
+ "\n",
+ "# At 20 OC\n",
+ "Ca = 36390;# [J/kmol]\n",
+ "Cb = 29100;# [J/kmol]\n",
+ "Cc = 33960;# [J/kmol]\n",
+ "lambda_c = 44.24*10**6;# [J/kmol]\n",
+ "# Enthalpy base = NH3 gas, H2O liquid, air at 1 std atm.\n",
+ "Tempo = 20;# [OC]\n",
+ "lambda_Ao = 0;# [J/kmol]\n",
+ "lambda_Co = 44.24*10**6;# [J/kmol]\n",
+ "\n",
+ "# Gas in:\n",
+ "Gb = G1*yb;# [kmol air/square m.s]\n",
+ "Ya1 = ya/(1-ya);# [kmol NH3/kmol air]\n",
+ "yc1 = 0;# [mole fraction]\n",
+ "Yc1 = yc1/(1-yc1);# [kmol air/kmol NH]\n",
+ "# By Eqn 8.58:\n",
+ "Hg1 = (Cb*(TempG1-Tempo))+(Ya1*(Ca*(TempG1-Tempo))+lambda_Ao)+(Yc1*(Cc*(TempG1-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "\n",
+ "# Liquid in:\n",
+ "xa1 = 0;# [mole fraction]\n",
+ "xc1 = 1;# [mole fraction]\n",
+ "Hl1 = 0;# [J/kmol air]\n",
+ "\n",
+ "#Gas out:\n",
+ "Ya2 = Ya1*(1-0.99);# [kmol NH3/kmol air]\n",
+ "# Assume:\n",
+ "TempG2 = 23.9;# [OC]\n",
+ "yc2 = 0.0293;\n",
+ "def f(Yc2):\n",
+ " return yc2-(Yc2/(Yc2+Ya2+1))\n",
+ "Yc2 = fsolve(f,0.002);# [kmol H2O/kmol air]\n",
+ "Hg2 = (Cb*(TempG2-Tempo))+(Ya2*(Ca*(TempG2-Tempo))+lambda_Ao)+(Yc2*(Cc*(TempG2-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "\n",
+ "# Liquid out:\n",
+ "Lc = L1-(Yc1*Gb);# [kmol/square m.s]\n",
+ "La = Gb*(Ya1-Ya2);# [kmol/square m.s]\n",
+ "L2 = La+Lc;# [kmol/square m.s]\n",
+ "xa = La/L2;\n",
+ "xc = Lc/L2;\n",
+ "# At xa & tempo = 20 OC\n",
+ "delta_Hs = -1709.6*1000;# [J/kmol soln]\n",
+ "\n",
+ "# Condition at the bottom of the tower:\n",
+ "# Assume:\n",
+ "TempL = 41.3;# {OC}\n",
+ "# At(TempL+TempG1)/2:\n",
+ "Cl = 75481.0;# [J/kmol]\n",
+ "def f40(Cl):\n",
+ " return Hl1+Hg1-((Gb*Hg2)+(L2*(Cl*(TempL-Tempo)+delta_Hs)))\n",
+ "Cl = fsolve(f40,7);# [J/kmol.K]\n",
+ "\n",
+ "# For the Gas:\n",
+ "MavG = 24.02;# [kg/kmol]\n",
+ "Density_G = 0.999;# [kg/cubic m]\n",
+ "viscosity_G = 1.517*10**(-5);# [kg/m.s]\n",
+ "kG = 0.0261;# [W/m.K]\n",
+ "CpG = 1336;# [J/kg.K]\n",
+ "Dab = 2.297*10**(-5);# [square m/s]\n",
+ "Dac = 3.084*10**(-5);# [square m/s]\n",
+ "Dcb = 2.488*10**(-5);# [square m/s]\n",
+ "PrG = CpG*viscosity_G/kG;\n",
+ "\n",
+ "# For the liquid:\n",
+ "MavL = 17.97;# [kg/kmol]\n",
+ "Density_L = 953.1;# [kg/cubic m]\n",
+ "viscosity_L = 6.408*10**(-4);# [kg/m.s]\n",
+ "Dal = 3.317*10**(-9);# [square m/s]\n",
+ "kl = 0.4777;# [W/m.K]\n",
+ "ScL = viscosity_L/(Density_L*Dal);\n",
+ "PrL = 5.72;\n",
+ "sigma = 3*10**(-4);\n",
+ "G_prime = G1*MavG;# [kg/square m.s]\n",
+ "L_prime = L2*MavL;# [kg/square m.s]\n",
+ "# From data of Chapter 6:\n",
+ "Ds = 0.0472;# [m]\n",
+ "a = 57.57;# [square m/cubic m]\n",
+ "shiLt = 0.054;\n",
+ "e = 0.75;\n",
+ "# By Eqn. 6.71:\n",
+ "eLo = e-shiLt;\n",
+ "# By Eqn. 6.72:\n",
+ "kL = (25.1*Dal/Ds)*(Ds*L_prime/viscosity_L)**0.45*ScL**0.5;# [m/s]\n",
+ "c = Density_L/MavL;# [kmol/cubic m]\n",
+ "Fl = kL*c;# [kmol/cubic m]\n",
+ "# The heat mass transfer analogy of Eqn. 6.72:\n",
+ "hL = (25.1*kl/Ds)*(Ds*L_prime/viscosity_L)**0.45*PrL**0.5;# [m/s]\n",
+ "# The heat transfer analogy of Eqn. 6.69:\n",
+ "hG = (1.195*G_prime*CpG/PrG**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [W/square m.K]\n",
+ "# To obtain the mass transfer coeffecients:\n",
+ "Ra = 1.4;\n",
+ "Rc = 1-Ra;\n",
+ "# From Eqn. 8.83:\n",
+ "Dam = (Ra-ya)/(Ra*((yb/Dab)+((ya+yc1)/Dac))-(ya/Dac));# [square m/s]\n",
+ "Dcm = (Rc-yc1)/(Rc*((yb/Dcb)+((ya+yc1)/Dac))-(yc1/Dac));# [square m/s]\n",
+ "ScGa = viscosity_G/(Density_G*Dam);\n",
+ "ScGc = viscosity_G/(Density_G*Dcm);\n",
+ "# By Eqn. 6.69:\n",
+ "FGa = (1.195*G1/ScGa**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [kmol/square m.K]\n",
+ "FGc = (1.195*G1/ScGc**(2/3))*(Ds*G_prime/(viscosity_G*(1-eLo)))**(-0.36);# [kmol/square m.K]\n",
+ "Ra = Ra-0.1;\n",
+ "# From Eqn. 8.80:\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " def f41(xai):\n",
+ " return Ra-(Ra-ya)*((Ra-xa)/(Ra-xai))**(Fl/FGa)\n",
+ " xai = numpy.arange(xa,0.10,0.01)\n",
+ " plt.plot(xai,f41(xai))\n",
+ " Ra = Ra+0.1;\n",
+ "\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Mole fraction NH3 in the liquid, xa\");\n",
+ "ylabel(\"Mole fraction NH3 in the gas ya\");\n",
+ "title(\"Operating Line curves\");\n",
+ "plt.show()\n",
+ "Rc = Rc-0.1;\n",
+ "# From Eqn. 8.81:\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " def f42(xci):\n",
+ " return Rc-(Rc-yc1)*((Rc-xc)/(Rc-xci))**(Fl/FGc)\n",
+ " xci = numpy.arange(xc,0.85,-0.01);\n",
+ " plot(xci,f42(xci))\n",
+ " Rc = Rc+0.1;\n",
+ "\n",
+ "plt.grid('on');\n",
+ "xlabel(\"Mole fraction H2O in the liquid, xc\");\n",
+ "ylabel(\"Mole fraction H2O in the gas, yc\");\n",
+ "title(\"Operating line Curves\");\n",
+ "plt.show()\n",
+ "# Assume:\n",
+ "Tempi = 42.7;# [OC]\n",
+ "# The data of Fig. 8.2 (Pg 279) & Fig 8.4 (Pg 319) are used to draw the eqb curve of Fig 8.25 (Pg 320).\n",
+ "# By interpolation of operating line curves with eqb line and the condition: xai+xci = 1;\n",
+ "Ra = 1.38;\n",
+ "Rc = 1-Ra;\n",
+ "xai = 0.0786;\n",
+ "yai = f41(xai);\n",
+ "xci = 1-xai;\n",
+ "yci = f42(xci);\n",
+ "# From Eqn. 8.77:\n",
+ "dYa_By_dZ = -(Ra*FGa*a/Gb)*math.log((Ra-yai)/(Ra-ya));# [kmol H2O/kmol air]\n",
+ "# From Eqn. 8.78:\n",
+ "dYc_By_dZ = -(Rc*FGc*a/Gb)*math.log((Rc-yci)/(Rc-yc1));# [kmol H2O/kmol air]\n",
+ "# From Eqn. 8.82:\n",
+ "hGa_prime = -(Gb*((Ca*dYa_By_dZ)+(Cc*dYc_By_dZ)))/(1-exp(Gb*((Ca*dYa_By_dZ)+(Cc*dYc_By_dZ))/(hG*a)));# [W/cubic m.K]\n",
+ "# From Eqn. 8.79:\n",
+ "dtG_By_dZ = -(hGa_prime*(TempG1-Tempi))/(Gb*(Cb+(Ya1*Ca)+(Yc1*Cc)));# [K/m]\n",
+ "# When the curves of Fig. 8.2 (pg 279) & 8.24 (Pg 319) are interpolated for concentration xai and xci, the slopes are:\n",
+ "mar = 0.771;\n",
+ "mcr = 1.02;\n",
+ "lambda_c = 43.33*10**6;# [J/kmol]\n",
+ "# From Eqn. 8.3:\n",
+ "Hai = Ca*(Tempi-Tempo)+lambda_Ao-(mar*lambda_c);# [J/kmol]\n",
+ "Hci = Cc*(Tempi-Tempo)+lambda_Co-(mcr*lambda_c);# [J/kmol]\n",
+ "# From Eqn. 8.76\n",
+ "Tempi2 = TempL+(Gb/(hL*a))*(((Hai-Ca*(TempG1-Tempo)-lambda_Ao)*dYa_By_dZ)+((Hci-Cc*(TempG1-Tempo)-lambda_Co)*dYc_By_dZ)-((Cb+(Ya1*Ca)+(Yc1*Cc))*dtG_By_dZ));# [OC]\n",
+ "# The value of Tempi obtained is sufficiently close to the value assumed earlier.\n",
+ "\n",
+ "deltaYa=-0.05;\n",
+ "# An interval of deltaYa up the tower\n",
+ "deltaZ = deltaYa/(dYa_By_dZ);# [m]\n",
+ "deltaYc = (dYc_By_dZ*deltaZ);\n",
+ "# At this level:\n",
+ "Ya_next = Ya1+deltaYa;# [kmol/kmol air]\n",
+ "Yc_next = Yc1+deltaYc;# [kmol H2O/kmol air]\n",
+ "tG_next = TempG1+(dtG_By_dZ*deltaZ);# [OC]\n",
+ "L_next = L1+Gb*(deltaYa+deltaYc);# [kmol/square m.s]\n",
+ "xa_next = ((Gb*deltaYa)+(L1*xa))/L_next;# [mole fraction NH3]\n",
+ "Hg_next = (Cb*(tG_next-Tempo))+(Ya_next*(Ca*(tG_next-Tempo))+lambda_Ao)+(Yc_next*(Cc*(tG_next-Tempo)+lambda_Co));# [J/kmol air]\n",
+ "Hl_next = (L1*Hl1)+(Gb*(Hg_next-Hg2)/L_next);# [J/kmol]\n",
+ "# The calculation are continued where the specified gas outlet composition are reached.\n",
+ "# The packed depth is sum of all deltaZ\n",
+ "Z = 1.58;# [m]\n",
+ "print\"The packed depth is: \",Z,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.8 - Page: 317\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nSUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa595b00>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\njXxqolkTOQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5fdcf8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The packed depth is: 1.58 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9: Page 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 8.9\n",
+ "# Page: 327\n",
+ "\n",
+ "print'Illustration 8.9 - Page: 327\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# C1=CH4 C2=C2H6 C3=n-C3H8 C4=C4H10\n",
+ "Abs=0.15;# [Total absorption,kmol]\n",
+ "\n",
+ "T=25;# [OC]\n",
+ "y1=0.7;# [mol fraction]\n",
+ "y2=0.15;# [mol fraction]\n",
+ "y3=0.10;# [mol fraction]\n",
+ "y4=0.05;# [mol fraction]\n",
+ "x1=0.01;# [mol fraction]\n",
+ "x_involatile=0.99;# [mol fraction]\n",
+ "L_by_G=3.5;# [mol liquid/mol entering gas]\n",
+ "#******#\n",
+ "\n",
+ "LbyG_top=L_by_G/(1-y2);\n",
+ "LbyG_bottom=(L_by_G+y2)/1;\n",
+ "LbyG_av=(LbyG_top+LbyG_bottom)/2;\n",
+ "# The number of eqb. trays is fixed by C3 absorption:\n",
+ "# For C3 at 25 OC;\n",
+ "m=4.10;\n",
+ "A=LbyG_av/m;\n",
+ "Frabs=0.7;# [Fractional absorption]\n",
+ "X0=0;\n",
+ "# From Eqn. 8.109:\n",
+ "def f43(Np):\n",
+ " return Frabs-((A**Np)-A)/((A**Np)-1)\n",
+ "Np=fsolve(f43,2);\n",
+ "print\"Number of trays required is \\n\",round(Np,2)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 8.9 - Page: 327\n",
+ "\n",
+ "\n",
+ "Number of trays required is \n",
+ "3.57\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter9.ipynb b/Mass_-_Transfer_Operations/Chapter9.ipynb
new file mode 100755
index 00000000..66d006cb
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter9.ipynb
@@ -0,0 +1,2153 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:931dd4c1c9a0b7aa6178b7a72f77a062406642a8049e6a1d1b32f53a34e1b6d5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Distillation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1: Page 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.1\n",
+ "# Page: 349\n",
+ "\n",
+ "print'Illustration 9.1 - Page: 349\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "#****Data****#\n",
+ "# a:n-heptane b:n-octane\n",
+ "Pt = 760; # [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "Tempa = 98.4;# [boiling point of A,OC]\n",
+ "Tempb = 125.6;# [boiling point of B,OC]\n",
+ "x = numpy.zeros(6);\n",
+ "y_star = numpy.zeros(6);\n",
+ "alpha = numpy.zeros(6);\n",
+ "# Data = [Temp Pa (mm Hg) Pb(mm Hg)]\n",
+ "Data = [(98.4, 760.0, 333.0),(105.0 ,940.0, 417.0),(110.0, 1050.0, 484.0),(115.0, 1200.0, 561.0),(120.0, 1350.0, 650.0),(125.6 ,1540.0, 760.0)];\n",
+ "for i in range(0,6): \n",
+ " x[i] = (Pt-Data[i][2])/(Data[i][1]-Data[i][2]);# [mole fraction of heptane in liquid]\n",
+ " y_star[i] = (Data[i][1]/Pt)*x[i];\n",
+ " alpha[i] = Data[i][1]/Data[i][2];\n",
+ "\n",
+ "print\"\\t\\t T(OC)\\t\\t\\t\\t Pa(mm Hg)\\t\\t\\t\\t\\t\\t\\t Pb(mm Hg)\\t\\t\\t\\t\\t\\t\\t\\t x\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t y*\\t\\t\\t\\t\\t\\t\\t\\t\\t alpha\\n\"\n",
+ "for i in range(0,6):\n",
+ " print \"\\t \\t \",Data[i][0],\"\\t \\t \\t \\t\",Data[i][1],\"\\t \\t \\t \\t\",Data[i][2],\"\\t \\t \\t \\t \",round(x[i],3),\"\\t \\t \\t \\t \",round(y_star[i],3),\"\\t\\t\\t\\t\\t\\t\\t\\t\",round(alpha[i],2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.1 - Page: 349\n",
+ "\n",
+ "\n",
+ "\t\t T(OC)\t\t\t\t Pa(mm Hg)\t\t\t\t\t\t\t Pb(mm Hg)\t\t\t\t\t\t\t\t x\t\t\t\t\t\t\t\t\t\t\t y*\t\t\t\t\t\t\t\t\t alpha\n",
+ "\n",
+ "\t \t 98.4 \t \t \t \t760.0 \t \t \t \t333.0 \t \t \t \t 1.0 \t \t \t \t 1.0 \t\t\t\t\t\t\t\t2.28\n",
+ "\t \t 105.0 \t \t \t \t940.0 \t \t \t \t417.0 \t \t \t \t 0.656 \t \t \t \t 0.811 \t\t\t\t\t\t\t\t2.25\n",
+ "\t \t 110.0 \t \t \t \t1050.0 \t \t \t \t484.0 \t \t \t \t 0.488 \t \t \t \t 0.674 \t\t\t\t\t\t\t\t2.17\n",
+ "\t \t 115.0 \t \t \t \t1200.0 \t \t \t \t561.0 \t \t \t \t 0.311 \t \t \t \t 0.492 \t\t\t\t\t\t\t\t2.14\n",
+ "\t \t 120.0 \t \t \t \t1350.0 \t \t \t \t650.0 \t \t \t \t 0.157 \t \t \t \t 0.279 \t\t\t\t\t\t\t\t2.08\n",
+ "\t \t 125.6 \t \t \t \t1540.0 \t \t \t \t760.0 \t \t \t \t 0.0 \t \t \t \t 0.0 \t\t\t\t\t\t\t\t2.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2: Page 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.2\n",
+ "# Page: 354\n",
+ "\n",
+ "print'Illustration 9.2 - Page: 354\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:ethylaniline\n",
+ "Pt = 760.0; # [mm Hg]\n",
+ "ma1 = 50.0;# [g]\n",
+ "mb1 = 50.0;# [g]\n",
+ "#*******#\n",
+ "\n",
+ "# Data = [Temp Pa(mm Hg) Pb(mm Hg)]\n",
+ "Data = [(38.5, 51.1 ,1.0),(64.4 ,199.7, 5.0),(80.6 ,363.9 ,10.0),(96.0, 657.6, 20.0),(99.15 ,737.2 ,22.8),(113.2, 1225.0, 40.0)];\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Mb = 121.1;# [kg/kmol]\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " p = Data[i][1]+Data[i][2];\n",
+ " if p==Pt:\n",
+ " pa = Data[4][1];# [mm Hg]\n",
+ " pb = Data[i][2];# [mm Hg]\n",
+ " T = Data[i][0];# [OC]\n",
+ " \n",
+ "\n",
+ "ya_star = pa/Pt;\n",
+ "yb_star = pb/Pt;\n",
+ "ya1 = ma1/Ma;# [g mol water]\n",
+ "yb1 = mb1/Mb;# [g mol ethylalinine]\n",
+ "Y = ya1*(yb_star/ya_star);# [g mol ethylalinine]\n",
+ "print\"The original mixture contained\",round(ya1,2),\"g mol water and \",round(yb1,2),\" g mol ethylanaline\\n\"\n",
+ "print\"The mixture will continue to boil at \",T,\" degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with \",round(Y,3),\"g mol ethylaniline\\n\"\n",
+ "print\"The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.2 - Page: 354\n",
+ "\n",
+ "\n",
+ "The original mixture contained 2.77 g mol water and 0.41 g mol ethylanaline\n",
+ "\n",
+ "The mixture will continue to boil at 99.15 degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with 0.086 g mol ethylaniline\n",
+ "\n",
+ "The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3: Page 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.3\n",
+ "# Page: 362\n",
+ "\n",
+ "print'Illustration 9.3 - Page: 362\\n\\n'\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:n-C3H8 b:n-C4H10 c:n-C5H12 d:n-C6H14\n",
+ "# Bubble Point Calculation\n",
+ "xa = 0.05;\n",
+ "xb = 0.30;\n",
+ "xc = 0.40;\n",
+ "xd = 0.25;\n",
+ "P = 350;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "# Assume:\n",
+ "Temp = 60;# [OC]\n",
+ "x = [0.05, 0.30, 0.40, 0.25];\n",
+ "m = [4.70, 1.70 ,0.62 ,0.25];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_x = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "# From Eqn. 9.23:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.8;# [OC]\n",
+ "m = [4.60, 1.60, 0.588, 0.235];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.7;# [OC]\n",
+ "Bt = 56.8;# [OC]\n",
+ "yi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " yi[i] = alpha_x[i]/Sum;\n",
+ "\n",
+ "print\"The Bubble Point is \",Bt,\" degree C\\n\"\n",
+ "print\"Bubble point vapour composition \\n\"\n",
+ "print\"\\t yi\\n\";\n",
+ "print\"\\n n-C3\\t \",round(yi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(yi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(yi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(yi[3],3)\n",
+ "\n",
+ "print\"\\n \\n \\n\"\n",
+ "\n",
+ "# Dew Point Calculation\n",
+ "# Asume:\n",
+ "ya = 0.05;\n",
+ "yb = 0.30;\n",
+ "yc = 0.40;\n",
+ "yd = 0.25;\n",
+ "Temp = 80;# [OC]\n",
+ "y = [0.05, 0.30 ,0.40, 0.25];\n",
+ "m = [6.30 ,2.50 ,0.96 ,0.43];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_y = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "\n",
+ "# From Eqn. 9.29:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 83.7;# [OC]\n",
+ "m = [6.60, 2.70, 1.08, 0.47];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1.0/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 84.0;# [OC]\n",
+ "Dt = 84.0;# [OC]\n",
+ "xi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " xi[i] = alpha_y[i]/Sum;\n",
+ "\n",
+ "print\"The Dew Point is \",Dt,\" degree C\\n\"\n",
+ "print\"Dew point liquid composition \\n\"\n",
+ "print\"\\t xi\\n\"\n",
+ "print\"\\n n-C3\\t \",round(xi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(xi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(xi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(xi[3],3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.3 - Page: 362\n",
+ "\n",
+ "\n",
+ "The Bubble Point is 56.8 degree C\n",
+ "\n",
+ "Bubble point vapour composition \n",
+ "\n",
+ "\t yi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.229\n",
+ "\n",
+ " n-C4\t 0.478\n",
+ "\n",
+ " n-C5\t 0.234\n",
+ "\n",
+ " n-C6\t 0.059\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "The Dew Point is 84.0 degree C\n",
+ "\n",
+ "Dew point liquid composition \n",
+ "\n",
+ "\t xi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.007\n",
+ "\n",
+ " n-C4\t 0.109\n",
+ "\n",
+ " n-C5\t 0.363\n",
+ "\n",
+ " n-C6\t 0.521\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4: Page 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.4\n",
+ "# Page: 365\n",
+ "\n",
+ "print'Illustration 9.4 - Page: 365\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "zF = 0.5;\n",
+ "D = 60.0;# [mol]\n",
+ "W = 40.0;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 9.1, Equilibrium data:\n",
+ "Data = numpy.array([[1.0 ,1.0],[0.655, 0.810],[0.487 ,0.674],[0.312, 0.492],[0.1571 ,0.279],[0, 0]]);\n",
+ "Feed = numpy.array([[0 ,0],[1.0 ,1.0]]);\n",
+ "# The operating line is drawn with a slope -(W/D) to cut the equilibrium line.\n",
+ "def f44(x):\n",
+ " return -((W/D)*(x-zF))+zF\n",
+ "x = numpy.arange(0.2,0.7,0.1);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium Line\")\n",
+ "plt.plot(Feed[:,0],Feed[:,1],label=\"Feed Line\")\n",
+ "plt.plot(x,f44(x),label=\"Operating Line\");\n",
+ "plt.grid('on')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Mole fraction of heptane in liquid\")\n",
+ "ax.set_ylabel(\"Mole fraction of heptane in vapour\")\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.show()\n",
+ "# The point at which the operating line cuts the equilibrium line has the following composition* temparature:\n",
+ "yd = 0.575;# [mole fraction heptane in vapour phase]\n",
+ "xW = 0.387;# [mole fraction heptane in liquid phase]\n",
+ "Temp = 113;# [OC]\n",
+ "print\"mole fraction of heptane in vapour phase %f \\n\",yd\n",
+ "print\"mole fraction of heptane in liquid phase %f\\n\",xW\n",
+ "print\"Temperature is %d degree C\\n\",Temp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.4 - Page: 365\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ndu0iIyOD0aNH07VrVypXrsxRRx3F66+/ztq1a5k4cSLgympeeuml9O7dm1q1atG2bVuWLFlScJ+S\nymrmX9uvXz9q167Nyy+/zIIFC+jQoQN169blyCOP5JZbbikwQvk1FFq3bk3NmjWZMmUKmZmZRWo6\npKWlMXLkSFq3bk2dOnXo3bt3kYysjz/+eEFJ0hdeeOF3IxAvrF27lkqVKhWUM01PT2fo0KF07tyZ\nWrVqcd5557Ft27aC9vPnz6djx47UrVuXNm3a8OGHMcsyVDplqe4T640yVnCbPdtVYVu5svS25amq\nZhjRpqy/eb95//339aCDDtLc3NzffTZgwADt06ePqrrqaQcffLC+8cYbmpOToyNGjNBmzZppTk6O\n5ubm6sknn6wPPfSQZmdn65o1a7R58+Y6a9asItdOmzZNVVV/++03XbRokX7xxReam5ura9eu1eOO\nO05HjRpV0LeI6OrVqwuO582bp40bNy44TktL01NPPVU3b96s27dv1+OOO06fffbZgu90xBFH6NKl\nS3Xv3r165ZVXaqVKlYrcL5j09PRiq8t9//33KiIFujnzzDO1RYsWunLlSv3tt980PT1dhwwZoqqq\nGzZs0MMOO0zfD5SInDNnjh522GH6888/e/yfKEq43wtlrOCWsiOGZctcmovXX4cWLUpua6MEI+kQ\nic4WIVu3bqVevXrFFuM54ogj2Lp1a8Fxu3bt6NGjB5UrV2bQoEHs27ePzz//nAULFrB161buu+8+\nDjroIJo1a8a1117L5MmTC67t2LEjF17oEjhXq1aNk08+mfbt21OpUiWOOuoorr/++ojfsG+99VaO\nOOII6tatywUXXEBWVhYAr7/+OldffTXHHXcc1atX54EHHoiKW0pEuOqqq2jRogXVqlWjV69eBX1O\nnDiR7t270y1QIrJLly60a9eO9957r9z9RoOUnK76889u5tHjj0NJlfqScfVyKqeajpQKrYs4zXyp\nV68eW7duJS8v73fGYfPmzdSvX7/gOLhcp4jQuHFjNm3ahIiUWlYztNTnihUrGDRoEIsWLWLv3r3k\n5OTQrl27iGQ/ImjhUvXq1dm8eXOB3O3btw/bd3kI7XPPnj2AK3U6ZcoUpk+fXvB5Tk5OkXKp8STl\nRgz797u1Cr16wcCB4dvZKMEwIqdDhw5UrVqVN954o8j5PXv2MHPmTM4555yCc8HlOfPy8tiwYQON\n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\nzM+VsnViXQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xafecc50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of heptane in vapour phase %f \n",
+ "0.575\n",
+ "mole fraction of heptane in liquid phase %f\n",
+ "0.387\n",
+ "Temperature is %d degree C\n",
+ "113\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5: Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.5\n",
+ "# Page: 366\n",
+ "\n",
+ "print'Illustration 9.5 - Page: 366\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "#****Data****#\n",
+ "Pt = 760.0;# [mm Hg]\n",
+ "zFa = 0.5;# [mol fraction benzene]\n",
+ "zFb = 0.25;# [mol fraction toulene]\n",
+ "zFc = 0.25;# [mol fraction o-xylene]\n",
+ "#********#\n",
+ "\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "# For Summtion of Yd_star to be unity, W/D = 2.08 \n",
+ "# The Eqn.are \n",
+ "# (1): W+D = F \n",
+ "# (2): W-2.08D = 0\n",
+ "a =numpy.array([[1.0 ,1.0],[1.0 ,-2.08]]);\n",
+ "b = numpy.array([[F*1.0],[0]]);\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "D = soln[1];\n",
+ "Sub = ['A','B','C'];\n",
+ "p =numpy.array([1370 ,550, 200]);# [mm Hg]\n",
+ "m = numpy.zeros(3);\n",
+ "zF = [zFa ,zFb, zFc];# [Given]\n",
+ "yd_star = numpy.array([0,0,0]);\n",
+ "xW = numpy.zeros(3);\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " m[i] = p[i]/Pt;\n",
+ " yd_star[i]=(zF[i])*((W/D)+1)#/(1+(W/(D*m[i])));\n",
+ " xW[i] = yd_star[i]/m[i];\n",
+ "\n",
+ "print\"\\t \\t \\t \\t \\t \\t \\t \\t At W/D = 2.08\\n\\n\\n\"\n",
+ "print\"Substance \\t \\t p(mm Hg)\\t \\t m\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t zF\\t \\t \\t \\t \\t \\t \\t yd*\\t\\t\\t\\t\\t\\txW\\n\"\n",
+ "for i in range(0,3):\n",
+ " print \"\\n\",Sub[i],\" \\t \\t \\t \\t \",p[i],\"\\t \\t \\t \\t \",m[i],\"\\t \\t \\t\",m[i],\"\\t \\t \\t\",zF[i],\" \\t \\t \\t\",yd_star[i],\"\\t\",xW[i]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.5 - Page: 366\n",
+ "\n",
+ "\n",
+ "\t \t \t \t \t \t \t \t At W/D = 2.08\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Substance \t \t p(mm Hg)\t \t m\t \t \t \t \t \t \t \t \t \t zF\t \t \t \t \t \t \t yd*\t\t\t\t\t\txW\n",
+ "\n",
+ "\n",
+ "A \t \t \t \t 1370 \t \t \t \t 1.80263157895 \t \t \t1.80263157895 \t \t \t0.5 \t \t \t1 \t0.554744525547\n",
+ "\n",
+ "B \t \t \t \t 550 \t \t \t \t 0.723684210526 \t \t \t0.723684210526 \t \t \t0.25 \t \t \t0 \t0.0\n",
+ "\n",
+ "C \t \t \t \t 200 \t \t \t \t 0.263157894737 \t \t \t0.263157894737 \t \t \t0.25 \t \t \t0 \t0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6: Page 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.6\n",
+ "# Page: 370\n",
+ "\n",
+ "print'Illustration 9.6 - Page: 370\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "xF = 0.5;\n",
+ "D = 0.6*100;# [mol]\n",
+ "#******#\n",
+ "\n",
+ "W = F-D;# [mol]\n",
+ "# From Illustration 9.1:\n",
+ "alpha = 2.16;# [average value of alpha]\n",
+ "# From Eqn.9.46;\n",
+ "def f45(xW):\n",
+ " return math.log(F*xF/(W*xW))-(alpha*math.log(F*(1-xF)/(W*(1-xW))))\n",
+ "xW = fsolve(f45,0.5);# [mole fraction heptane]\n",
+ "def f46(yD):\n",
+ " return F*xF-((D*yD)+(W*xW))\n",
+ "yD = fsolve(f46,100);# [mole fraction heptane]\n",
+ "print\"Mole Fraction of heptane in the distillate is \",round(yD,3),\"\\n\"\n",
+ "print\"Mole Fraction of heptane in the residue is \",round(xW,3),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.6 - Page: 370\n",
+ "\n",
+ "\n",
+ "Mole Fraction of heptane in the distillate is 0.615 \n",
+ "\n",
+ "Mole Fraction of heptane in the residue is 0.328 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7: Page 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.7\n",
+ "# Page: 371\n",
+ "from scipy.optimize import fsolve\n",
+ "print'Illustration 9.7 - Page: 371\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:benzene b:toulene c:o-xylene\n",
+ "# Assume:\n",
+ "Bt = 100.0;#[OC]\n",
+ "pa = 1370.0;# [mm Hg]\n",
+ "pb = 550.0;# [mm Hg]\n",
+ "pc = 200.0;# [mm Hg]\n",
+ "xFa = 0.5;# [mole fraction]\n",
+ "xFb = 0.25;# [mole fraction]\n",
+ "xFc = 0.25;# [mole fraction]\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "D = 32.5;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "ref = pb;\n",
+ "alpha_a = pa/ref;\n",
+ "alpha_b = pb/ref;\n",
+ "alpha_c = pc/ref;\n",
+ "W = F-D;# [mol]\n",
+ "xbW = 0.3;# [mol]\n",
+ "xaW = 0.4;# [mol]\n",
+ "xcW = 0.3;# [mol]\n",
+ "err = 1.0;\n",
+ "while(err>(10**(-1))):\n",
+ " # From Eqn. 9.47:\n",
+ " def f47(xaW):\n",
+ " return math.log(F*xFa/(W*xaW))-(alpha_a*math.log(F*xFb/(W*xbW)))\n",
+ " xaW = fsolve(f47,xbW);\n",
+ " def f48(xcW):\n",
+ " return math.log(F*xFc/(W*xcW))-(alpha_c*math.log(F*xFb/(W*xbW)))\n",
+ " xcW = fsolve(f48,xbW);\n",
+ " xbW_n = 1-(xaW+xcW);\n",
+ " err = abs(xbW-xbW_n);\n",
+ " xbw = xbW_n;\n",
+ "\n",
+ "# Material balance:\n",
+ "# for A:\n",
+ "def f49(yaD):\n",
+ " return F*xFa-((D*yaD)+(W*xaW))\n",
+ "yaD = fsolve(f49,100);# [mole fraction benzene]\n",
+ "# For B:\n",
+ "def f50(ybD):\n",
+ " return F*xFb-((D*ybD)+(W*xbW))\n",
+ "ybD = fsolve(f50,100);# [mole fraction toulene]\n",
+ "# For C:\n",
+ "def f51(ycD):\n",
+ " return F*xFc-((D*ycD)+(W*xcW))\n",
+ "ycD = fsolve(f51,100);# [mole fraction o-xylene]\n",
+ "print\"The residual compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(xaW,3)\n",
+ "print\"Toulene:\\n\",round(xbW,3)\n",
+ "print\"o-xylene:\\n\",round(xcW,3)\n",
+ "print\"\\n The composited distillate compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(yaD,3)\n",
+ "print\"Toulene:\\n\",round(ybD,3)\n",
+ "print\"o-xylene:\\n\",round(ycD,3)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.7 - Page: 371\n",
+ "\n",
+ "\n",
+ "The residual compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.438\n",
+ "Toulene:\n",
+ "0.3\n",
+ "o-xylene:\n",
+ "0.343\n",
+ "\n",
+ " The composited distillate compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.628\n",
+ "Toulene:\n",
+ "0.146\n",
+ "o-xylene:\n",
+ "0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8: Page 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.8\n",
+ "# Page: 388\n",
+ "\n",
+ "print'Illustration 9.8 - Page: 388\\n\\n'\n",
+ "import numpy.linalg as lin\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a:methanol b:water\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr]\n",
+ "#******#\n",
+ "\n",
+ "#(a)\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Xb = 1-Xa;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr];\n",
+ "# Basis: 1hr\n",
+ "F = (F1*Xa/Ma)+(F1*Xb/Mb);# [kmol/hr]\n",
+ "# For feed:\n",
+ "zF = (F1*Xa/Ma)/F;# [mole fracton methanol]\n",
+ "MavF = F1/F;# [kg/kmol]\n",
+ "# For distillate:\n",
+ "xD = (95/Ma)/((95/Ma)+(5/Mb));# [mole fraction methanol]\n",
+ "MavD = 100.0/((95/Ma)+(5/Mb));# [kg/kmol]\n",
+ "# For residue:\n",
+ "xW = (1/Ma)/((1/Ma)+(99/Mb));# [mole fraction methanol]\n",
+ "MavR = 100/((1/Ma)+(99/Mb));# [kg/kmol]\n",
+ "# (1): D+W = F [Eqn.9.75]\n",
+ "# (2): D*xD+W*xW = F*zF [Eqn. 9.76]\n",
+ "# Solvving simultaneously:\n",
+ "a = numpy.array([[1.0 ,1.0],[xD ,xW]]);\n",
+ "b = numpy.array([F,F*zF]);\n",
+ "soln = lin.solve(a,b);\n",
+ "D = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "print\"Quantity of Distillate is\", round(D*MavD),\" kg/hr\\n\"\n",
+ "print\"Quantity of Residue is \",round(W*MavR),\" kg/hr\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (b)\n",
+ "# For the vapour-liquid equilibria:\n",
+ "Tempo = 19.69;# [Base Temp. according to \"International Critical Tables\"]\n",
+ "BtR = 99.0;# [Bubble point of the residue, OC]\n",
+ "hR = 4179.0;# [J/kg K]\n",
+ "hF = 3852.0;# [J/kg K]\n",
+ "def f52(tF):\n",
+ " return (F1*hF*(tF-Temp1))-((W*MavR)*hR*(BtR-Temp2))\n",
+ "tF = fsolve(f52,Temp1);# [OC]\n",
+ "BtF = 76.0;# [Bubble point of feed, OC]\n",
+ "# For the feed:\n",
+ "delta_Hs = -902.5;# [kJ/kmol]\n",
+ "Hf = ((hF/1000.0)*MavF*(tF-Tempo))+delta_Hs;# [kJ/kmol]\n",
+ "# From Fig 9.27:\n",
+ "HD = 6000.0;# [kJ/kmol]\n",
+ "HLo = 3640.0;# [kJ/kmol]\n",
+ "HW = 6000.0;# [kJ/kmol]\n",
+ "print\"The enthalpy of feed is \",round(Hf),\" kJ/kmol\\n\"\n",
+ "print\"The enthalpy of the residue is \",round(HW),\" kJ/kmol\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (c)\n",
+ "# From Fig.9.27:\n",
+ "# The miium reflux ratio is established by the tie line (x = 0.37 y = 0.71), which extended pass through F,the feed.\n",
+ "# At Dm:\n",
+ "Qm = 62570.0;# [kJ/kmol]\n",
+ "Hg1 = 38610.0;# [kJ/kmol]\n",
+ "# From Eqn. 9.65:\n",
+ "Rm = (Qm-Hg1)/(Hg1-HLo);\n",
+ "print\"The minimum reflux ratio is \",round(Rm,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (d)\n",
+ "# From Fig. 9.28:\n",
+ "Np = 4.9;\n",
+ "# But it include the reboiler.\n",
+ "Nm = Np-1;\n",
+ "print\"The minimum number of theoretical trays required is \",round(Nm),\" \\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (e)\n",
+ "R = 1.5*Rm;\n",
+ "# Eqn. 9.65:\n",
+ "def f53(Q_prime):\n",
+ " return R-((Q_prime-Hg1)/(Hg1-HLo))\n",
+ "Q_prime = fsolve(f53,2);# [kJ/kmol]\n",
+ "def f54(Qc):\n",
+ " return Q_prime-(HD+(Qc/D))\n",
+ "Qc = fsolve(f54,2);# [kJ/hr]\n",
+ "Qc = Qc/3600.0;# [kW]\n",
+ "print\"The Condensor heat load is \",round(Qc),\" kW\\n\"\n",
+ "# From Eqn. 9.77:\n",
+ "def f55(Q_dprime):\n",
+ " return (F*Hf)-((D*Q_prime)+(W*Q_dprime))\n",
+ "Q_dprime = fsolve(f55,2);\n",
+ "def f56(Qb):\n",
+ " return Q_dprime-(HW-(Qb/W))\n",
+ "Qb = fsolve(f56,2);# [kJ/hr]\n",
+ "Qb = Qb/3600.0;# [kW]\n",
+ "print\"The Reboiler heat load is \",round(Qb),\" kW\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (f)\n",
+ "# From Fig: 9.28\n",
+ "Np = 9.0;\n",
+ "# But it is including the reboiler\n",
+ "print\"No. of theoretical trays in tower is\",Np-1,\"\\n\",\n",
+ "G1 = D*(R+1);# [kmol/hr]\n",
+ "Lo = D*R;# [kmol/hr]\n",
+ "# From Fig. 9.28:\n",
+ "# At the feed tray:\n",
+ "x4 = 0.415;\n",
+ "y5 = 0.676;\n",
+ "x5 = 0.318;\n",
+ "y6 = 0.554;\n",
+ "# From Eqn. 9.64:\n",
+ "def f57(L4):\n",
+ " return (L4/D)-((xD-y5)/(y5-x4))\n",
+ "L4 = fsolve(f57,2);# [kmol/hr]\n",
+ "# From Eqn. 9.62:\n",
+ "def f58(G5):\n",
+ " return (L4/G5)-((xD-y5)/(xD-x4))\n",
+ "G5 = fsolve(f58,2);# [kmol/hr]\n",
+ "# From Eqn. 9.74:\n",
+ "def f59(L5_bar):\n",
+ " return (L5_bar/W)-((y6-xW)/(y6-x5))\n",
+ "L5_bar = fsolve(f59,2);# [kmol/hr]\n",
+ "# From Eqn. 9.72:\n",
+ "def f60(G6_bar):\n",
+ " return (L5_bar/G6_bar)-((y6-xW)/(x5-xW))\n",
+ "G6_bar = fsolve(f60,2);# [kmol/hr]\n",
+ "# At the bottom:\n",
+ "# Material Balance:\n",
+ "# Eqn. 9.66:\n",
+ "# (1): L8_bar-GW_bar = W;\n",
+ "# From Fig. 9.28:\n",
+ "yW = 0.035;\n",
+ "x8 = 0.02;\n",
+ "# From Eqn. 9.72:\n",
+ "L8ByGW_bar = (yW-xW)/(x8-xW);\n",
+ "# (2): L8_bar-(L8ByGW_bar*Gw_bar) = 0\n",
+ "a = numpy.array([[1 ,-1],[1 ,-L8ByGW_bar]]);\n",
+ "b = numpy.array([W,0]);\n",
+ "soln = lin.solve(a,b)\n",
+ "L8_bar = soln[0];# [kmol/h]\n",
+ "GW_bar = soln[1];# [kmol/h]\n",
+ "print\"The Liquid quantity inside the tower is \",round(L8_bar),\" kmol/hr\\n\"\n",
+ "print\"The vapour quantity inside the tower is \",round(GW_bar),\" kmol/hr\\n\"\n",
+ "# The answers are slightly different in textbook due to approximation while in python the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.8 - Page: 388\n",
+ "\n",
+ "\n",
+ "Quantity of Distillate is 2606.0 kg/hr\n",
+ "\n",
+ "Quantity of Residue is 2394.0 kg/hr\n",
+ "\n",
+ "\n",
+ "\n",
+ "The enthalpy of feed is 2545.0 kJ/kmol\n",
+ "\n",
+ "The enthalpy of the residue is 6000.0 kJ/kmol\n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum reflux ratio is 0.6852 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum number of theoretical trays required is 4.0 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The Condensor heat load is 1609.0 kW\n",
+ "\n",
+ "The Reboiler heat load is 1817.0 kW\n",
+ "\n",
+ "\n",
+ "\n",
+ "No. of theoretical trays in tower is 8.0 \n",
+ "The Liquid quantity inside the tower is 259.0 kmol/hr\n",
+ "\n",
+ "The vapour quantity inside the tower is 127.0 kmol/hr\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9: Page 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.9\n",
+ "# Page: 395\n",
+ "\n",
+ "print'Illustration 9.9 - Page: 395\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import scipy\n",
+ "import numpy\n",
+ "import numpy.linalg as lin\n",
+ "\n",
+ "#****Data****#\n",
+ "P = 695.0;# [kN/square m]\n",
+ "#********#\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# From Illustration 9.8:\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "HF = 2533;# [kJ/kmol]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "zD = 0.915;# [mole fraction methanol]\n",
+ "HD = 3640.0;# [kJ/kmol]\n",
+ "Qc = 5990000.0;# [kJ/h]\n",
+ "# Since the bottom will essentially be pure water:\n",
+ "HW = 6094.0;# [kJ/kmol]\n",
+ "# From Steam tables:\n",
+ "Hs = 2699.0;# [enthalpy of saturated steam, kJ/kg]\n",
+ "hW = 4.2*(Tempo-0);# [enthalpy of water, kJ/kg]\n",
+ "HgNpPlus1 = (Hs-hW)*Mb;# [kJ/kmol]\n",
+ "# (1): GNpPlus1-W = D-F [From Eqn. 9.86]\n",
+ "# (2): (GNpPlus1*HgNpPlus1)-(W*HW) = (D*HD)+Qc-(F*HF) [From Eqn. 9.88]\n",
+ "a = numpy.array([[1 ,-1],[HgNpPlus1 ,-HW]]);\n",
+ "b = numpy.array([[D-F],[(D*HD)+Qc-(F*HF)]]);\n",
+ "soln=lin.solve(a,b)\n",
+ "GNpPlus1 = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "# From Eqn. 9.87:\n",
+ "def f61(xW):\n",
+ " return (F*zF)-((D*zD)+(W*xW))\n",
+ "xW = fsolve(f61,2);\n",
+ "# The enthalpy of the solution at its bubble point is 6048 kJ/kmol, sufficiently closed to 6094 assumed earlier.\n",
+ "# For delta_w:\n",
+ "xdelta_w = W*xW/(W-GNpPlus1);\n",
+ "Q_dprime = ((W*HW)-(GNpPlus1*HgNpPlus1))/(W-GNpPlus1);# [kJ/kmol]\n",
+ "# From Fig 9.27 ad Fig. 9.28, and for the stripping section:\n",
+ "Np = 9.5;\n",
+ "print\"Steam Rate: \",round(GNpPlus1,1),\"kmol/h\\n\"\n",
+ "print\"Bottom Composition: xW:\",round(xW,5),\"\\n\"\n",
+ "print\"Number of theoretical stages: \",Np,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.9 - Page: 395\n",
+ "\n",
+ "\n",
+ "Steam Rate: 159.7 kmol/h\n",
+ "\n",
+ "Bottom Composition: xW: 0.00281 \n",
+ "\n",
+ "Number of theoretical stages: 9.5 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10: Page 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.10\n",
+ "# Page: 412\n",
+ "\n",
+ "print'Illustration 9.10 - Page: 412\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# Feed:\n",
+ "F1 = 5000;# [kg/h]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "MavF = 23.1;# [kg/kmol]\n",
+ "Tempf = 58.3;# [OC]\n",
+ "# Distillate:\n",
+ "D1 = 2620;# [kg/h]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "xD = 0.915;# [mole fraction methanol]\n",
+ "# Residue:\n",
+ "R1 = 2380;# [kg/h]\n",
+ "R = 132.4;# [kmol/h]\n",
+ "xW = 0.00565;# [mole fraction methanol]\n",
+ "\n",
+ "# From Fig. 9.42 (Pg 413):\n",
+ "BtF = 76.0;# [Bubble point if the feed, OC]\n",
+ "DtF = 89.7;# [Dew point of the feed, OC]\n",
+ "# Latent heat of vaporisation at 76 OC\n",
+ "lambda_a = 1046.7;# [kJ/kg]\n",
+ "lambda_b = 2284;# [kJ/kg]\n",
+ "ha = 2.721;# [kJ/kg K]\n",
+ "hb = 4.187;# [kJ/kg K]\n",
+ "hF = 3.852;# [kJ/kg K]\n",
+ "# If heats of solution is ignaored:\n",
+ "# Enthalpy of the feed at the bubble point referred to the feed temp.\n",
+ "HF = hF*MavF*(BtF-Tempf);# [kJ/kmol]\n",
+ "# enthalpy of the saturated vapour at dew point referred to the liquid at feed temp.\n",
+ "HL = (zF*((ha*Ma*(DtF-Tempf))+(lambda_a*Ma)))+((1-zF)*((hb*Mb*(DtF-Tempf))+(lambda_b*Mb)));# [kJ/kmol]\n",
+ "q = HL/(HL-HF);\n",
+ "slope = q/(q-1);\n",
+ "# In fig. 9.42: xD,xW & zF are located on the 45 degree diagonal & the q line is drawn with slope = 'slope' .\n",
+ "# The operating line for minimum reflux ratio in this case pass through the intersection of the q line and the equilibrium curve.\n",
+ "ordinate = 0.57;\n",
+ "def f62(Rm):\n",
+ " return ordinate-(xD/(Rm+1))\n",
+ "Rm = fsolve(f62,0);# [mole reflux/mole distillate]\n",
+ "# from fig. 9.42 (Pg 413):\n",
+ "# The minimum number of theoretical trays is determied using the 45 degree diagonal as operating line.\n",
+ "Np = 4.9;# [including the reboiler]\n",
+ "R = 1.5*Rm;# [mole reflux/mole distillate]\n",
+ "# From Eqn. 9.49:\n",
+ "L = R*D;# [kmol/h]\n",
+ "# From Eqn. 9.115:\n",
+ "G = D*(R+1);# [kmol/h]\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = (q*F)+L;# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = (F*(q-1))+G;# [kmol/h]\n",
+ "ordinateN = xD/(R+1);\n",
+ "# As in Fig. 9.43:\n",
+ "# The y-intercept = ordinateN and enriching and exhausting operating lines are plotted.\n",
+ "# Number of theoretical stages are determined.\n",
+ "NpN = 8.8;# [including the reboiler]\n",
+ "print\"Number of theoretical stages is \",NpN-1,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.10 - Page: 412\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages is 7.8 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11: Page 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.11\n",
+ "# Page: 423\n",
+ "\n",
+ "print'Illustration 9.11 - Page: 423\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# a:ethanol b:water\n",
+ "zF = 0.3;\n",
+ "xa = 0.3;# [mole fraction of ethanol]\n",
+ "Temp = 78.2;# [OC]\n",
+ "Ao = 0.0462;# [Area of perforations,square m]\n",
+ "t = 0.450;# [m]\n",
+ "#******#\n",
+ "\n",
+ "Ma = 46.05;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "xb = 1-xa;# [mole fraction of water]\n",
+ "ma = 0.3*Ma/((0.3*Ma)+(xb*Mb));# [mass fraction of ethanol]\n",
+ "mb = 1-ma;# [mass fraction of water]\n",
+ "\n",
+ "\n",
+ "# Feed:\n",
+ "F1 = 910.0;# [kg/h]\n",
+ "Xa = F1*ma/Ma;# [moles of ethanol]\n",
+ "Xb = F1*mb/Mb;# [moles of water]\n",
+ "F = Xa+Xb;# [Total moles]\n",
+ "# Distillate:\n",
+ "xD = 0.80;# [mole fraction of ethanol]\n",
+ "# If essentially all the ethanol is removed from the residue:\n",
+ "D = Xa/xD;# [kmol/h]\n",
+ "MavD = (xD*Ma)+((1-xD)*Mb);# [kg/kmol]\n",
+ "D1 = D*MavD;# [kg/h]\n",
+ "Density_G = (MavD/22.41)*(273.0/(273+Temp));# [kg/cubic meter]\n",
+ "Density_L = 744.9;# [kg/cubic meter]\n",
+ "sigma = 0.021;# [N/m]\n",
+ "\n",
+ "# From Table 6.2,Pg 169:\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "At = math.pi*(0.760**2)/4;# [Tower cross sectional Area, square m]\n",
+ "WByT = 530.0/760;# [Table 6.1, Pg 162]\n",
+ "Ad = 0.0808*At;# [Downspout area,square m]\n",
+ "Aa = At-(2*Ad);# [Active area,square m]\n",
+ "# abcissa = (L/G)*(density_G/Density_L)^0.5\n",
+ "# Assume:\n",
+ "abcissa = 0.1;\n",
+ "# From Eqn.6.30:\n",
+ "Cf = (alpha*math.log10(1/abcissa)+beeta)*(sigma/0.020)**0.2;\n",
+ "# From Eqn. 6.29:\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "An = At-Ad;# [square m]\n",
+ "R = 3.0;# [Reflux Ratio]\n",
+ "G = D*(R+1);\n",
+ "G1 = (G*22.41/3600)*((273.0+Temp)/273);# [cubic meter/s]\n",
+ "V = G1/An;# [Vapour velocity,m/s]\n",
+ "percent = (V/Vf)*100;\n",
+ "# Vapour velocity is 58 percent of flooding velocity (amply safe)\n",
+ "L = R*D;# [kmol/h]\n",
+ "L1 = L*MavD;# [kg/h]\n",
+ "abcissa = (L1/(G1*3600.0*Density_G))*(Density_G/Density_L)**0.5;\n",
+ "# Since the value of abcissa is less than0.1, the calculaed value of Cf is correct.\n",
+ "# Since the feed is at the buubble point.\n",
+ "q = 1;\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = L+(q*F);# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = G+F*(q-1);# [kmol/h]\n",
+ "# The enthalpy of saturated steam,referred to 0 OC,69 kN/square m:\n",
+ "HGNpPlus1 = 2699.0;# [kN m/kg]\n",
+ "# This will be the enthalpy as it enters the tower if expanded adiabatically to the tower pressure\n",
+ "# The enthalpy of steam at 1 std. atm:\n",
+ "HGsat = 2676.0;# [kN m/kg]\n",
+ "Lambda = 2257.0;# [kN m/kg]\n",
+ "# From Eqn. 9.140:\n",
+ "def f63(GNpPlus1_bar):\n",
+ " return G_bar-(GNpPlus1_bar*(1+((HGNpPlus1-HGsat)*Mb/(Lambda*Mb))))\n",
+ "GNpPlus1_bar = fsolve(f63,7);\n",
+ "# From Eqn. 9.141:\n",
+ "LNp_bar = L_bar-(G_bar-GNpPlus1_bar);\n",
+ "\n",
+ "# Tray Efficiencies:\n",
+ "# Consider the situation:\n",
+ "x = 0.5;\n",
+ "y_star = 0.962;\n",
+ "Temp = 79.8;# [OC]\n",
+ "# This is in the enriching section.\n",
+ "Density_L = 791;# [kg/cubic meter]\n",
+ "Density_G = 1.253;# [kg/cubic meter]\n",
+ "# From equilibrium data:\n",
+ "m = 0.42;\n",
+ "A = L/(m*G);\n",
+ "# From chapter 2:\n",
+ "ScG = 0.930;\n",
+ "Dl = 2.065*10**(-9);# [square m/s]\n",
+ "# For L = 38.73 kmol/h\n",
+ "q = 4.36*10**(-4);# [cubic meter/s]\n",
+ "# For G = 51.64 kmol/h\n",
+ "Va = 1.046;# [m/s]\n",
+ "# From tray dimensions:\n",
+ "z = 0.647;# [m]\n",
+ "Z = 0.542;# [m]\n",
+ "hW = 0.06;# [m]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((math.exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# Entrainment is neglible:\n",
+ "# Similarly for other x\n",
+ "# Value = [x Entrainment]\n",
+ "#Value = [0 0.48;0.1 .543;0.3 0.74;0.5 EMG;0.7 0.72];\n",
+ "\n",
+ "# Tray Calculation:\n",
+ "op_intercept = xD/(R+1);\n",
+ "# From Fig. 9.48:\n",
+ "# The exhausting section operating line, on this scale plot, for all practical purposes passes through the origin.\n",
+ "# The broken curve is located so that, at each concentration, vertical distances corresponding to lines BC and AC are in the ratio of EMG.\n",
+ "# This curve is used instead of equilibrium trays to locate the ideal trays.\n",
+ "# The feed tray is thirteenth.\n",
+ "x14 = 0.0150;\n",
+ "alpha = 8.95;\n",
+ "EMG = 0.48;\n",
+ "A_bar = L_bar/(alpha*G_bar);\n",
+ "# From Eqn. 8.16:\n",
+ "Eo = math.log(1+(EMG*((1/A_bar)-1)))/math.log(1/A_bar);\n",
+ "# The 6 real trays corresponds to: \n",
+ "NRp = 6*Eo;\n",
+ "xW = 0.015/((math.exp(NRp*math.log(1/A_bar))-A_bar)/(1-A_bar));# [mole fraction ethanol]\n",
+ "# This corresponds to ethanol loss of 0.5 kg/day.\n",
+ "print\"The mole fraction of ethanol in residue is\",round(xW,8)\n",
+ "print\"The Reflux ratio of \",R,\" will cause the ethanol loss of 0.5 kg/day\\n\"\n",
+ "print\"Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\\n\"\n",
+ "print\"Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.11 - Page: 423\n",
+ "\n",
+ "\n",
+ "The mole fraction of ethanol in residue is 6.28e-06\n",
+ "The Reflux ratio of 3.0 will cause the ethanol loss of 0.5 kg/day\n",
+ "\n",
+ "Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\n",
+ "\n",
+ "Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex-9.12: Pg- 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.12\n",
+ "# Page: 429\n",
+ "\n",
+ "print'Illustration 9.12 - Page: 429\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "# a:methanol b:water\n",
+ "# Vapour and liquid quantities throughout the tower, as in Illustration 9.8, with the Eqn. 9.62, 9.64, 9.72, 9.74:\n",
+ "# Data = [x tL(OC) y tG(OC) Vapor(kmol/h) Vapor(kg/h) Liquid(kmol/h) Liquid(kg/h)]\n",
+ "Ma = 34.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Temp = 78.7;# [OC]\n",
+ "x = numpy.array([0.915, 0.600 ,0.370, 0.370, 0.200, 0.100, 0.02]);\n",
+ "y = numpy.array([0.915, 0.762, 0.656, 0.656, 0.360 ,0.178, 0.032]);\n",
+ "\n",
+ "plt.plot(x,y);\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"mole fraction of methanol in liquid\");\n",
+ "ax.set_ylabel(\"mole fraction of methanol in vapour\");\n",
+ "plt.title(\"Operating Line curve\");\n",
+ "plt.legend(loc=\"lower right\")\n",
+ "plt.show()\n",
+ "#x = 0.370: the dividing point between stripping and enriching section\n",
+ "tL =numpy.array([66, 71, 76, 76, 82, 87, 96.3]);# [Bubble point, OC]\n",
+ "tG = numpy.array([68.2 ,74.3 ,78.7 ,78.7 ,89.7 ,94.7 ,99.3]);# [Dew Point, OC]\n",
+ "Vapor = numpy.array([171.3, 164.0 ,160.9, 168.6, 161.6, 160.6, 127.6]);# [kmol/h]\n",
+ "Vapor1 = numpy.array([5303, 4684, 4378, 4585, 3721, 3296 ,2360]);# [kg/h]\n",
+ "Liquid = numpy.array([86.7 ,79.6 ,76.5 ,301, 294, 293, 260]);# [kmol/h]\n",
+ "Liquid1 = numpy.array([2723, 2104, 1779 ,7000, 6138, 5690 ,4767]);# [kg/h]\n",
+ "Data = numpy.zeros(shape=(7,8));\n",
+ "for j in range(1,7):\n",
+ " Data[j,0]= x[j];\n",
+ " Data[j,1]= tL[j];\n",
+ " Data[j,2]= y[j];\n",
+ " Data[j,3]= tG[j];\n",
+ " Data[j,4]= Vapor[j]; \n",
+ " Data[j,5]= Vapor1[j];\n",
+ " Data[j,6]= Liquid[j];\n",
+ " Data[j,7]= Liquid1[j];\n",
+ "\n",
+ "# The tower diameter will be set by the conditions at the top of the stripping section because of the large liquid flow at this point.\n",
+ "# From Illustration 9.8:\n",
+ "G = Data[3,5];\n",
+ "L = Data[3,7];\n",
+ "Density_G = (Data[3,5]/(22.41*Data[3,4]))*(273.0/(273+Temp));# [kg/cubic m]\n",
+ "Density_L = 905.0;# [kg/cubic m]\n",
+ "# abcissa = (L/G)*(Density_L/Density_G)^0.5\n",
+ "abcissa = (Data[3,7]/Data[3,5])*(Density_G/Density_L)**0.5;\n",
+ "# From Fig. 6.34, choose a gas pressure drop of 450 N/square m/m\n",
+ "ordinate = 0.0825;\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "Cf = 95;\n",
+ "viscosity_L = 4.5*10**(-4);# [kg/m.s]\n",
+ "sigma = 0.029;# [N/m]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscosity_L**0.1))**0.5;# [kg/square m.s]\n",
+ "A = G/(3600*G_prime);# [Tower ,cross section area,square m]\n",
+ "L_prime = L/(A*3600);# [kg/square m.s]\n",
+ "# Mass transfer will be computed for the same location:\n",
+ "# From Table 6.4 (Pg 205):\n",
+ "m = 36.4;\n",
+ "n = (0.0498*L_prime)-0.1013;\n",
+ "p = 0.274;\n",
+ "aAW = m*((808*G_prime/Density_G**0.5)**n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Table 6.5 (Pg 206):\n",
+ "dS = 0.0530;# [m]\n",
+ "beeta = 1.508*dS**0.376;\n",
+ "shi_LsW = 2.47*10**(-4)/dS**1.21;\n",
+ "shi_LtW = ((2.09*10**(-6))*(737.5*L_prime)**beeta)/dS**2;\n",
+ "shi_LOW = shi_LtW-shi_LsW; \n",
+ "shi_Ls = (0.0486*viscosity_L**0.02*sigma**0.99)/(dS**1.21*Density_L**0.37);\n",
+ "H = ((975.7*L_prime**0.57*viscosity_L**0.13)/(Density_L**0.84*((2.024*L_prime**0.430)-1)))*(sigma/0.073)**(0.1737-0.262*math.log10(L_prime));# [m]\n",
+ "shi_Lo = shi_LOW*H;\n",
+ "shi_Lt = shi_Lo+shi_Ls;\n",
+ "# From Eqn. 6.73:\n",
+ "aA = aAW*(shi_Lo/shi_LOW);# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "e = 0.71;\n",
+ "# From Eqn. 6.71:\n",
+ "eLo = e-shi_Lt;\n",
+ "# From Chapter 2:\n",
+ "ScG = 1;\n",
+ "MavG = 0.656*Ma+(1-0.656)*Mb;# [kg/kmol]\n",
+ "G = G_prime/MavG;\n",
+ "viscosity_G = 2.96*10**(-5);# [kg/m.s]\n",
+ "# From Eqn. 6.70:\n",
+ "Fg = (1.195*G/ScG**(2/3))*((dS*G_prime/(viscosity_G*(1-eLo)))**(-0.36));# [kmol/square m s (mole fraction)]\n",
+ "kY_prime = Fg;# [kmol/square m s (mole fraction)]\n",
+ "DL = 4.80*10**(-9);# [square m/s]\n",
+ "ScL = viscosity_L/(Density_L*DL);\n",
+ "# From Eqn. 6.72:\n",
+ "kL = (25.1*DL/dS)*((dS*L_prime/viscosity_L)**0.45)*ScL**0.5;# [kmol/square m s (kmol/cubic m)]\n",
+ "# At 588.33 OC\n",
+ "Density_W = 53.82;# [kg/cubic m]\n",
+ "kx_prime = Density_W*kL;# [kmol/square m s (mole fraction)]\n",
+ "# Value1 = [x G a ky_prime*10^3 kx_prime]\n",
+ "Value1 = numpy.array([[0.915 ,0.0474 ,20.18 ,1.525, 0.01055],[0.6, 0.0454 ,21.56 ,1.542, 0.00865],[0.370 ,0.0444 ,21.92 ,1.545 ,0.00776],[0.370, 0.0466 ,38, 1.640, 0.0143],[0.2 ,0.0447, 32.82 ,1.692 ,0.0149],[0.1 ,0.0443 ,31.99 ,1.766 ,0.0146],[0.02, 0.0352 ,22.25 ,1.586 ,0.0150]]);\n",
+ "# From Fig: 9.50\n",
+ "# At x = 0.2:\n",
+ "y = 0.36;\n",
+ "slope = -(Value1[4,4]/(Value1[4,3]*10**(-3)));\n",
+ "# The operating line drawn from(x,y) with slope. The point where it cuts the eqb. line gives yi.\n",
+ "# K = ky_prime*a(yi-y)\n",
+ "# For the enriching section:\n",
+ "# En = [y yi 1/K Gy]\n",
+ "En = numpy.array([[0.915 ,0.960, 634 ,0.0433],[0.85 ,0.906 ,532.8 ,0.0394],[0.8 ,0.862 ,481.1 ,0.0366],[0.70, 0.760 ,499.1, 0.0314],[0.656, 0.702, 786.9, 0.0292]]);\n",
+ "# For the Stripping section:\n",
+ "# St = [y yi 1/K Gy]\n",
+ "St = numpy.array([[0.656, 0.707, 314.7, 0.0306],[0.50, 0.639, 124.6 ,0.0225],[0.40 ,0.580, 99.6 ,0.01787],[0.3 ,0.5 ,89 ,0.0134],[0.2 ,0.390, 92.6 ,0.00888],[0.10, 0.232, 154.5, 0.00416],[0.032 ,0.091, 481 ,0.00124]])\n",
+ "# Graphical Integration, according to Eqn.9.52::\n",
+ "\n",
+ "plt.plot(En[:,3],En[:,2],'g');\n",
+ "plt.grid();\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Enriching section\");\n",
+ "plt.show()\n",
+ "# From Area under the curve:\n",
+ "Ze = 7.53;# [m]\n",
+ "# Graphical Integration:\n",
+ "\n",
+ "plt.plot(St[:,3],St[:,2],'r');\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Stripping section\");\n",
+ "plt.show()\n",
+ "\n",
+ "# From Area under the curve:\n",
+ "Zs = 4.54;# [m]\n",
+ "# Since the equlibrium curve slope varies so greatly that the use of overall mass transfer coeffecient is not recommended:\n",
+ "print\"Height of Tower for enriching Section is \",Ze,\" m\\n\"\n",
+ "print\"Height of Tower for Stripping Section is \",Zs,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.12 - Page: 429\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEZCAYAAACTsIJzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XecVNX9//HXW+yiosESsWBviWLsfS0RRAS7Ica4UWN+\ntti/lkRFo1GjMRpjb9g1CApYUFRWFDEogqBiAUVE7BFBLLTP749zhzs72XJnZ+/c2dnP8/GYx869\nc8tnPrs7Z+4595wjM8M555zLWSzrAJxzzlUWLxicc87V4wWDc865erxgcM45V48XDM455+rxgsE5\n51w9XjC4dkPSrpLeLvM515Y0W5LKeV7nSuEFg2s1kmolTZQ0R9Inkm6QtGKG8SyUtF5u2cxeMLNN\nUjpXnaRjCteb2TQzW968w5BrQ7xgcK1C0hnA5cAZwArADsA6wHBJS6Rwvg5JN23tczfCokebokjW\ncbjK4gWDK5mkFYB+wElm9rSZLTCzD4HDgK7Ab6Lt+kl6WNKDkmZJGitpi7zjrCFpoKTPJb0v6eS8\n13L73iPpG+AoSdtKGi3pa0kzJF2XK4QkjYx2fT2qyjlUUo2kj/KOOVXSGZJelzQzimupvNf/Lzru\ndEnHFl6BJMxN12i/xaLlOkkXS3oxysFTkn6St/0Okl6K3tN4Sbs3cey1JA2K8vWlpOvycnVPMzFc\nImkUMAc4S9IrBcc+TdLg6PlSkq6S9KGkTyXdKGnpYvLg2hYvGFxr2AlYGhiUv9LM5gBPAL/MW90b\n+DewEnA/8KikDtGH1lBgHLAGsBdwqqR9CvYdYGYrRvsuAE4BfgLsGO1zQnTu3aJ9toiqcgY0ELcB\nhwLdgXWBLYBaAEk9gNOiY24I1NB6VwR9o/OsCiwJnBmdswvwGHCxma0UrR8oqXPhAaIrpseADwhX\nZl2AB/LeV3N+AxwLdARuAjaWtEHe678G7oueXw5sAGwZ/ewCXJDsrbq2yAsG1xo6A1+a2cIGXvs0\nej3nVTMbZGYLgKsJBcqOwLZAZzO7xMzmm9kHwG3Ar/L2fcnMhgCY2Q9m9pqZjTGzhdEVyi1Ao9+w\nG/FPM/vUzL4mFEzdovWHAXeY2SQz+x64kNapljLgTjObbGY/EArJ3Dl/AzxhZsMAzOwZ4FWgZwPH\n2Q74KXCWmX1vZj+a2UvRa83FaUD/6L0tNLNZwGBCgYWkDYGNgSFRNdPvgdPNbKaZfQtcRv3fi6sy\ni2cdgKsKXwKdJS3WQOHwU+CLvOXpuSdmZpKmE64QDFhD0td523YARja0L4CkjQiFy9bAsoS/51eL\njP3TvOffR/Hm4h7T2LlLVHjOjtHzdYBDJe2f9/riwHMNHGMt4MNGCuMkPipYvh/4O/AXwtXCI2b2\ng6RVCbkdm9cUIfxLZVXzX65rDaOBH4GD81dK6gj0AJ7NW71W3uuLAWsCHxM+qD4ws5XyHiuYWa9o\n84Yad28E3gI2iKqX/kTr/U1/kh9rwfO0TAPuKcjB8mb2twa2/QhYu5FG+G8JH+Y5qzewTWEunwFW\nkbQl4Wrg/mj9l4TCa7O8mDqZ2QrFvDHXtnjB4EpmZt8AFwHXSeouaQlJXQnVJB8B9+RtvrWkAyUt\nDpwK/AC8DLwCzI4afJeJ2h1+JmmbaL+Gqkc6ArOB7yRtAhxf8PpnwPpFvp3cef4N/E7SJpKWBc5P\nsO8SkpbOezR2Rd5YVc+9wP6S9one/9JRg3mXBrb9D6HwulzSstG2O0WvjQd2ixqnVwTObS4GM5sH\nDACuIrT/DI/WLwRuBa6RtAqEtpCCth9XZbxgcK3CzK4EziN8sHxD+LD/ENgr+tCB8C11MHA48F/g\nCOCg6C6mBUAvQn37+4Tqp1sIt77m9i38lnsmodpjVrTtgwXb9APuiu7wOaSRY9R7G7nXo3r+fwIj\ngHcJV0UQrowacyPwXd7jjkbOaQXPc+ecDvQh5PFzwhXEGTTwfxp9YO9PaAyeRiiAD4teewZ4CJhA\nKHCHNhNDzv2ExvYBBVVUZwOTgZejO8KGAxs1nAJXDZRmvxtJdwD7AZ+b2c8b2eafwL6Ef6RaMxuX\nWkAuU5IuJFT7HJl1LMWStCkwEViyhHp959qEtK8Y7iTUMTdIUk/CB8WGwHGEb1yuerWpjlRRlddS\nklYCrgCGeKHg2oNUCwYzewH4uolNegN3Rdv+B+gkabU0Y3KZamu9g48jtFNMBubxv20YzlWlrG9X\n7UL92+amE+5S+SybcFyazOyirGMohpntm3UMzmWhEhqfC6sX2tI3SuecqzpZXzF8TP37w3P3tNcj\nyQsL55xrATMrum0v6yuGIcBvIQweBsw0swarkczMH2ZceOGFmcdQKQ/PhefCc9H0o6VSvWKQ9ABh\n7JrO0aiWFwJLAJjZzWb2hKSekiYTRnn8XZrxVIOpU6dmHULF8FzEPBcxz0XpUi0YzKxvgm1OSjMG\n55xzxcm6KskVqba2NusQKobnIua5iHkuSpdqz+fWIsnaQpzOOVdJJGFtsPHZFamuri7rECqG5yLm\nuYh5LkrnBYNzzrl6vCrJOeeqlFclOeecaxVeMLQxXn8a81zEPBcxz0XpvGBwzjlXj7cxOOdclfI2\nBuecc63CC4Y2xutPY56LmOci5rkonRcMzjnn6vE2Buecq1LexuCccxVs4cKsI0jOC4Y2xutPY56L\nmOciVkm5+OoruPNO6NUL9tor62iSy3pqT+ecqyqffgqPPgoDB8J//gN77w19+4bCoa3wNgbnnCvR\ntGnwyCOhMJgwAXr2hIMPhh49YLnlsourpW0MXjA451wLTJ4cCoKBA2HKFOjdOxQGe+8NSy+ddXSB\nNz63E5VUf5o1z0XMcxFLKxdm8OabcPHFsOWWsMsu8MEHcOmlofoo15ZQKYVCKZpsY5C0OHCXmR1R\npnicc65imMG4cfGVwXffwUEHwb/+BTvtBB06ZB1hOpqtSpL0IrCXmf1YnpAajMGrkpxzZbFwIbz8\ncigIBg0KH/4HHxwe224LKrpiJjstrUpKclfSB8CLkoYA30XrzMyuLvZkzjlXiebPhxdeCIXBI49A\np06hIHj0Udhii7ZVGLSGJG0MU4DHo207AstHD5cBr0uOeS5inotY0lzMnQvDhsHvfw9rrAFnnhl+\nPvts/baE9lYoQIIrBjPrV4Y4nHMudd9/D089Fa4MHn8cNtkkXBmcdx6su27W0VWOJG0MIxpYbWa2\nZzohNRiDtzE451pk9mx44olQGDz1FPziF6EwOPBA6NIl6+jSlWYbw1l5z5cGDgbmF3si55wrl6+/\nhqFDQ2EwYgTsvHMoDK6/HlZZJevoKl+zbQxm9mre40UzOw2oST801xCvS455LmKeC/j8c7jlFthu\nuzrWWSfcUXTIIaFX8pNPwrHHeqGQVLNXDJJWzltcDNgGWCG1iJxzLqGPPw4FwMCBMH48dO8O++4L\nzz0HHTtmHV3blaSNYSqQ22g+MBW4yMxeTDWy+jF4G4NzDgi9jXMdzt55B/bfP1QT/fKXsMwyWUdX\nWXysJOdc1Zo0Kb4ymD4dDjggFAZ77AFLLpl1dJUrtbGSJC0p6RRJAyU9LOlkSUu0LExXKq9Ljnku\nYtWWC7NQNXT++bDZZmFguk8/hauvhk8+CW0J3bs3XChUWy6ykOSupBuj7a4HBBwZrTs2xbicc+2M\nGYwZE1cTmYWrgttvh+23h8V8yM+ySdLGMMHMtmhuXZq8Ksm56rRgAYwaFY9L1LFjPC5Rt27ts9dx\na0qzH8N8SRuY2eToROvj/Riccy00b17oWzBwYBiL6Kc/DQXBU0+FaiOXvSQXZ2cBz0l6XtLzwHPA\nmemG5Rrj9acxz0Ws0nPxww+hw1ltLay+OlxwAWywAbz0Uv22hNZQ6bloC5KMlfSspI2AjaJV72Q5\nBLdzrm2YMyd0LBs4MPzccstwZfCXv8Baa2UdnWtKkjaGZYATgF0I/RleAG40sx+aPbjUA7gG6ADc\nZmZXFLzeGbgXWJ1QSF1lZv0bOI63MTjXBnzzTTwUxbPPwg47hMLggANgtdWyjq79Sa0fg6QBwCzC\nB7iAXwMrmtmhzezXAXgH2Bv4GHgF6Gtmk/K26QcsZWbnRoXEO8BqZja/4FheMDhXob78EgYPDoXB\niy/C7ruHwqB3b1h55eb3d+lJc87nzc3sGDMbYWbPmdmxwOYJ9tsOmGxmU81sHvAg0Kdgm0+Ih9dY\nAfiqsFBw9Xn9acxzESt3Lj75BG64AfbaC9ZfP8xr8Nvfhs5nubaErAoF/7soXZK7kl6TtKOZjQaQ\ntAMwNsF+XYCP8panA9sXbHMroWF7BmHyn8MSHNc5l4EPP4xvK33zTdhvPzjppNDRbNlls47OtaYk\nBcM2wChJHxHaGNYG3pE0kTAvQ2P9GZLU/ZwHjDezmug22OGStjSz2YUb1tbW0rVrVwA6depEt27d\nqKmpAeJvCO1huaampqLi8eXKWc5pzeO/+y5ceWUdI0fCf/9bQ58+0KtXHRdcAPvsU1nvP7ecW1cp\n8ZRzua6ujv79+wMs+rxsiSRtDE0e3cymNrLfDkA/M+sRLZ8LLMxvgJb0BHCpmY2Klp8FzjazVwuO\n5W0MzpWBGbzxRtz7+KuvwoQ2Bx8Mu+0Giyf5KukqRmptDFEbwVTgO2Bh7pG3vjGvAhtK6ippSeBw\nYEjBNm8TGqeRtBqwMfB+sW+iPSn8dtieeS5ipeTCDF55Bc49FzbeGHr1glmz4KabQpvB9dfDnnu2\nnULB/y5Kl2Q+ht7A34E1gM+BdYBJNNMAbWbzJZ0EPEW4XfV2M5sk6Q/R6zcDfwXulPQ6oZD6PzP7\nbwnvxzmXwMKFoXNZrs1gqaXCVcH998PWW/tQFO1dorGSgD2B4Wa2laQ9gCPN7OhyBBjF4FVJzpVo\n/nx4/vlQGDzySJjNLDcu0eabe2FQjdIcK2memX0paTFJHcxshKRrWxCjc67MfvwxdDQbOBCGDIGu\nXUNBMHIkbLhh1tG5SpWkH8PXkpYn9Hi+T9I/gW/TDcs1xutPY56LWH4uvvsuVA8dcUQYl+iyy+Bn\nP4NXXw1tCeecU92Fgv9dlC7JFUMf4AfgNOAIQke0i9IMyjlXnDlz4IEHwpXB8OGw7bbhyuCqq8Lo\npc4VI0kbwxnAg2b2cXlCajAGb2NwrsAnn8Bjj4XhKEaOhF13jYei6Nw56+hcJUizjWF54GlJXxOG\ntRhgZp8VeyLnXGnM4K23QlvB4MHwzjvQo0eoMrrvPlhxxawjdNUiST+Gfma2OXAi8FNgZNQRzWXA\n609j7SEXuTuJzjgjtAvsuy/MmAGXXAKffRaqj/r2hXHj6rIOtWK0h7+LtBXTZeVz4FPgK2CVdMJx\nzn37bZjNbMgQePxxWHtt6NMHHn44zGngt5W6tCVpYziBMLjdqsAA4CEze6sMseXH4G0MrqrNmBFG\nJR08OAxdvcMOoTDo3dsntXEtl2Ybw1rAqWY2vviwnHMNMQsjlA4eHB6TJ4f2gqOOCtVD3l7gspSk\njeFcLxQqh9efxtpaLubPh7o6OO20MN9xr16hneCyy8LP+++Hww9vWaHQ1nKRJs9F6drIsFjOtU2z\nZ4f2gsGD4YknYN11Q/XQoEGwxRbeXuAqU7NtDJXA2xhcW/Lxx3F7wahRsNNOoTDo3RvWXDPr6Fx7\nktqcz5XACwZXycxg4sS4f8GUKdCzZ2g87t4dVlih+WM4l4bU5mOQdLCk9yTNkjQ7esxqWZiuVF5/\nGssyF/PmwXPPwamnwnrrhULgyy/hb38L7QX33guHHlq+QsH/LmKei9IlaWP4G9DLzCalHYxzlWzW\nrDDp/ZAh8OSTcYEwZEgYpM7bC1y1SNKPYZSZ7VymeBqLwauSXCamT4+riF56CXbZJRQG++8PXbpk\nHZ1zTUutjSGae2F14FFgbrTazGxQ0VG2kBcMrlzMYMKEuH/B1Kmw336h4bh7d1h++awjdC651NoY\ngBWB74F9gF7RY/9iT+Rah9efxlorF/Pmhcls/vjHcDvpQQfBzJnw97+H9oK774ZDDqnsQsH/LmKe\ni9I128ZgZrVliMO5svrmm9BeMHhw+LnhhqGK6LHHfJpL5xqtSpJ0tpldIem6Bl42M/tjuqHVi8Wr\nklzJpk2L+xe8/HKYv6BPn9ADeY01so7OudaXxlhJuYHyxgL5n8oqWHauIpnB+PFx4/G0aaG94P/9\nv9DzuGPHrCN0rjJ5B7c2pq6ujpqamqzDqAgN5WLu3DB/weDBoUBYcslwVdCnT+iBvHiVDgLjfxcx\nz0UszdFVnatoM2eGfgWDB4dxiTbeOBQEw4bBppt6e4FzxfIrBtcmffhhXEU0Zgzstlvcv2D11bOO\nzrnK4GMluapmBuPGxf0LPv44NBr37g377APLLZd1hM5VnlYvGBq5GynH70rKSHuqP507N8xfkGsv\nWGaZeFaznXaCF15oP7loTnv6u2iO5yKWRhtD/t1IhQf2T2mXim++CfMc59oLNtssFAZPPw2bbOLt\nBc6VQ+KqJEnLE64Uvk03pAbP7VcM7cAXX8COO4YC4MADQ1XRaqtlHZVzbVeaYyX9HLgb+Em06gvg\nKDN7o+goW8gLhur3/few116wxx5w6aVZR+NcdUhzrKRbgNPNbG0zWxs4I1rnMlCN48AsXAi1tbDO\nOvCXvyTfrxpz0VKei5jnonRJ+jEsa2YjcgtmVifJ7wFxreZPfwp3GT3zDCyW5KuKcy5VSaqSHiU0\nRN9DaIQ+AtjazA5MP7xFMXhVUpW67Ta4/PIwdlHnzllH41x1SbONYWXgIiA3Wc8LQD8z+7roKFvI\nC4bqNHw4HHkkjBwJG22UdTTOVZ/U2hjM7L9mdrKZ/SJ6nFLOQsHVVy31p2+8AUccAQMGtLxQqJZc\ntAbPRcxzUbpm2xgkbQycCXTN297MbM8U43JV7JNPwq2o//hHGPraOVdZklQlTQBuBF4DFkSrzczG\nNntwqQdwDdABuM3MrmhgmxrgH8ASwJdmVtPANl6VVCXmzIGamtB7+fzzs47GueqWZhvDWDPbugUB\ndQDeAfYGPgZeAfqa2aS8bToBo4DuZjZdUmcz+7KBY3nBUAUWLICDD4ZOneDOO70Xs3NpS7Mfw1BJ\nJ0r6qaSVc48E+20HTDazqWY2D3gQ6FOwza+BgWY2HaChQsHV15brT886Kwx5ccstrVMotOVctDbP\nRcxzUbok/RhqCWMjnVmwft1m9usCfJS3PB3YvmCbDYElJI0AlgeuNbN7EsTk2pjrrw9zJrz0Upg8\nxzlXuVIbdlvSwUAPM/t9tPwbYHszOzlvm38BvwD2ApYFRgP7mdl7BcfyqqQ27PHH4dhjYdQoWG+9\nrKNxrv1IdQY3ST8DNgOWzq0zs7ub2e1jYK285bUIVw35PiI0OH8PfC9pJLAl8F7BdtTW1tK1a1cA\nOnXqRLdu3RYNrZu7dPTlylseNw5+/es6LrsM1lsv+3h82Zerebmuro7+/fsDLPq8bBEza/IB9ANG\nAJ8DdwKfAg8n2G9xYArhNtclgfHApgXbbAI8Q7hraVlgIrBZA8cyF4wYMSLrEBL76COzNdc0GzAg\nneO3pVykzXMR81zEos/OZj/nCx9JrhgOIXyLf83MfidpNeC+BAXOfEknAU9FH/y3m9kkSX+IXr/Z\nzN6WNAyYACwEbjWztxLE5Crc7Nmw335w8slwyCFZR+OcK0aS21VfMbNtJY0F9gRmAW+b2cblCDCK\nwZqL01WO+fPD3Mtrrw033eS3pTqXlTTbGF6RtBJwK/AqMAd4qdgTufbBLFwlmIU7kbxQcK7tSTJW\n0glm9rWZ3QTsA/zWzH6XfmiuIbmGpkp19dXh7qN//xsWT3RrQ8tVei7KyXMR81yULuldSV2AdaLt\nJWk3MxuZamSuzRk0KIx/NHo0rLBC1tE451oqSRvDFcDhwFvEYyVhZvunG1q9GLyNocKNGRMam4cN\ng62LHkDFOZeGNNsYDgQ2NrMfiw/LtQdTp8IBB8Add3ih4Fw1SDJW0hRCPwRXASqt/nTmTOjZE845\nJ9yJVE6VlosseS5inovSNXrFIOm66Ol3wHhJzwK5qwYzsz+mHZyrbHPnhtFSf/lL+KP/NThXNRpt\nY5BUSxg8D8Jcz/Wem9ldqUcXx+JtDBXGDI45Br78Eh55BDp0yDoi51yhVm9jMLP+0YFPNbNrCk52\natERuqpy2WXw+uvw/PNeKDhXbZK0MRzVwLraVo7DJVQJ9acPPAA33wxDh0LHjtnFUQm5qBSei5jn\nonRNtTH0JUyks66koXkvLQ98lXZgrjK9+CKccgo88wyssUbW0Tjn0tBUG8M6hMl4LgfOJrQtQBgr\naYKZzS9LhHgbQ6WYPBl22QXuugu6d886Gudcc1Kb8zk6eFdgAzN7RtKyQAczm110lC3kBUP2vvoK\ndtwRzjwTjjsu62icc0mkNuezpOOAAcDN0ao1gUeLPZFrHVnUn/74Y+jAduCBlVUoeF1yzHMR81yU\nLknj84nALoQqJMzsXWDVNINylcMMjj4aVl893InknKt+ScZKGmNm20kaZ2ZbSVqcMGnPFuUJ0auS\nsnTBBfD00zBiBCyzTNbROOeKkeZYSc9L+hOwrKRfAicAQ5vZx1WB/v3h3nvh5Ze9UHCuPUlSlXQO\n8AVhPuY/AE8Af04zKNe4ctWfPvccnH02PP44rFqhFYdelxzzXMQ8F6Vr9orBzBYAt0QP1w5MmgR9\n+8KDD8Kmm2YdjXOu3JK0MewPXAx0JS5IzMzKNhWLtzGUz2efhdtSL7wQjmqoz7tzrs1IrR+DpCmE\nORneMLOFLYyvJF4wlMf338Mee8A++8DFF2cdjXOuVKn1YwCmA29mVSi4+tKqP124EI48EtZfHy66\nKJVTtDqvS455LmKei9IluSvpbOBJSSOAudE6M7Or0wvLlds558Dnn8Pw4aCiv18456pJkqqk4cBs\nwl1Ji64azKxs3yu9KildN98Mf/87jB4NP/lJ1tE451pLmm0Mb5jZz1ocWSvwgiE9w4ZBbW0YNXWD\nDbKOxjnXmtJsY3hCko+lWSFas/50woTQrjBwYNssFLwuOea5iHkuSpekYDiB0Mbwg6TZ0WNW2oG5\ndM2YAb16wXXXwc47Zx2Nc66SJBp2O2teldS6vv0WdtsNDjkEzjsv62icc2lJdT6GrHnB0HoWLAhD\naK+6Ktx2m9+B5Fw1S7ONwVWQUutPTzstdGS76aa2Xyh4XXLMcxHzXJSuqTmf1zWzD8oZjEvXP/8J\nzz4Lo0bBEktkHY1zrlI1NefzWDPbWtJzZrZnmeMqjMWrkko0ZAgcf3woFLp2zToa51w5pDEfQ4do\nHoaNJJ0O5B/cez63IWPHwjHHhCG0vVBwzjWnqTaGXwELgA7A8tGjY95zl4Fi60+nTYM+feCWW2C7\n7dKJKStelxzzXMQ8F6Vr9IrBzN4GLpc0wcyeKGNMrpXMmgX77Qennw4HHph1NM65tiLJkBidgAuB\n3aJVdcDFZvZNuqHVi8HbGIo0b17owLb++nD99W3/DiTnXPHSvF31DmAWcChwGGFAvTsTBtVD0tuS\n3pN0dhPbbStpvqSDkhzXNc0MTjwROnQIdyJ5oeCcK0aSgmF9M7vQzN43sylm1g9Yv7mdJHUA/gX0\nADYD+kr6n4kio+2uAIZRv4HbNSBJ/emVV8KYMfDQQ7B4koHV2yivS455LmKei9IlKRi+l7RrbkHS\nLsB3CfbbDphsZlPNbB7wINCnge1OBh4GvkhwTNeMAQPC+EePPQbL+y0CzrkWSNLG0A24G1gxWvU1\ncJSZvd7MfocA3c3s99Hyb4DtzezkvG26APcCexKqrIaa2aAGjuVtDAmMHg29e8PTT8NWW2UdjXMu\na2n0YwDAzMYDW0haMVpO2uic5JP8GuAcMzNJwquSWuz99+Ggg+Cuu7xQcM6VJnENdAvuQvoYWCtv\neS3C/NH5tgYeDGUCnYF9Jc0zsyGFB6utraVr1DurU6dOdOvWjZqaGiCuU2wPy/n1p7nXhw6t48QT\n4fzza+jZs7LiTXM5t65S4slyefz48Zx66qkVE0+Wy9dcc027/nzo378/wKLPy5ZIbXRVSYsD7wB7\nATOAMUBfM5vUyPZ34lVJzaqrq1v0BwEwdy507x6uEq5uZ33RC3PRnnkuYp6LWEUOuy1pX0J1UQfg\ndjO7TNIfAMzs5oJtvWAoklmYlnPWLHj44XB7qnPO5aRaMEjaGehKXPVkZnZ3sSdrKS8YGnbxxTB0\nKNTVwXLLZR2Nc67SpNbBTdK9wJXAzsA20WPboiN0rSJXn3jvvXDHHaFgaK+FQn5bQ3vnuYh5LkqX\npPF5a2Az/8peOUaODOMfjRgBq6+edTTOuWqTpB/DAOAUM5tRnpAajMHLpcg774T5mu+7D/beO+to\nnHOVLLV+DMAqwFuSxgA/RuvMzHoXezJXmi++CKOl/vWvXig459KTZEiMfsABwKXAVcDfo4cro7lz\nQwe27bar45hjso6mMnhdcsxzEfNclC5Jz+c6SasTGpwNGGNmn6cemVvEDE44ATp3hmOPzToa51y1\nS9LGcBjhrqTno1W7AWeZ2YCUY8uPoV23MVx7Ldx+O7z0EnTsmHU0zrm2IrV+DJImAHvnrhIkrQI8\na2ZbtCjSFmjPBcPTT8NRR4UB8ny+ZudcMdKcqEfUHxL7K3ywu7J491048sgwr0KuUPD605jnIua5\niHkuSpfkrqRhwFOS7icUCIcDT6YalWPmTNh/f7jkknB7qnPOlUuSqiQBBwG7EBqfXzCzR8oQW34M\n7aoqaf78MF/zRhuFqTmdc64lKnIQvdbS3gqG00+HiRPhySere2pO51y6Wr2NQdKo6Oe3kmYXPGaV\nEqxrXG78o8bma/b605jnIua5iHkuStfo91Ez2zn66TdIlsmoUXDOOWEspJVXzjoa51x7laSN4R4z\nO7K5dWlqD1VJ06bBDjuE/gr77pt1NM65apDm7ao/KzjR4oQRV10rmTMHeveGM87wQsE5l72m2hjO\nkzQb+Hl++wLwOfA/czK7llm4MHRg22qr0OjcHK8/jXkuYp6LmOeidE21MfwV+Kuky8zs3DLG1K5c\nfDHMmBGalMjoAAASwklEQVTmVpB3G3TOVYAkbQwHAc+Z2cxouRNQY2aPliG+XAxV2cYwYECoPhoz\nxifccc61vjTHSnrdzLYsWDfezLoVe7KWqsaCYdw42GefMBbSVltlHY1zrhqlPVZSoQ7FnsjFPvsM\nDjgAbrih+ELB609jnouY5yLmuShdkoJhrKSrJa0vaQNJ/wDGph1YtfrxRzjwQKithUMPzToa55z7\nX0mqkjoC5wN7RauGA5eY2ZyUY8uPoSqqkszg6KNh9mz4979hsSTFsnPOtZCPldQGXH013H136OG8\n3HJZR+Ocq3aptTFIWlXSVZKekDQiejzXsjDbryefhCuvhMGDSysUvP405rmIeS5inovSJanMuA94\nG1gP6AdMBV5NL6Tq8/bboRPbww/DOutkHY1zzjUtSRvDa2b2C0kTctN5SnrVzLYpS4S07aqkr7+G\n7bcPg+MdfXTW0Tjn2pOWViUlGe1/bvTzU0m9gBnASsWeqD2aPx8OOwz2288LBedc25GkKumSqLfz\nGcCZwG3AaalGVSXOOAM6dAhtC63F609jnouY5yLmuShdk1cMkjoAG5nZY8BMoKYcQVWD226DYcPg\nP//xWdicc21LkjaGV8xs2zLF01gMbaqN4YUX4OCDw8+NN846Gudce5XmWEn/AJYAHgLmEIbIMDN7\nrSWBtkRbKhimToUdd4S77gpjITnnXFbSHCtpK2Bz4GLg78BV0U9X4NtvoU8fOPvs9AoFrz+NeS5i\nnouY56J0jdZ+SzrFzK4F/mxmL5YxpjZp4UI48kjYZhs45ZSso3HOuZZrtCopN9y2pHFmlunA0G2h\nKun888NkO88+C0stlXU0zjmXTj+GtyS9B3SRNLHgNct1dnPw0ENwzz1hwh0vFJxzbV2jbQxm1hfY\nFZgM9AL2z3v0TnoCST0kvS3pPUlnN/D6EZJelzRB0ihJbarAGTsWTjoJHn0UVl01/fN5/WnMcxHz\nXMQ8F6Vr8g57M/sUaPEHddQP4l/A3sDHwCuShpjZpLzN3gd2M7NvJPUAbgF2aOk5y+mTT8LcCjff\nDN3KNp+dc86lK9VhtyXtCFxoZj2i5XMAzOzyRrZfCZhoZmsWrK+4NoYffoCaGujZEy64IOtonHPu\nf6V5u2opugAf5S1Pj9Y15hjgiVQjagVmcNxxsPbaodHZOeeqSeLBGiQta2bfFXn8xF/zJe0BHA3s\n3NDrtbW1dO3aFYBOnTrRrVs3ampqgLhOsVzLJ5xQx+jR8PrrNUjlPX9+/WlW779SlnPrKiWeLJfH\njx/PqaeeWjHxZLl8zTXXZPr5kOVyXV0d/fv3B1j0edkiZtbkA9gJeAv4KFruBtzQ3H7RtjsAw/KW\nzwXObmC7LQiN3Bs0chyrFI8/brbGGmbTpmVz/hEjRmRz4grkuYh5LmKei1j02dnsZ3XhI8mQGGOA\nQ4DBFvVnkPSmmW3eXKEjaXHgHcJ80TOAMUBfy2t8lrQ28BzwGzN7uZHjWHNxlsOkSbD77mEWth13\nzDoa55xrWprzMWBm06R6x56fcL/5kk4CngI6ALeb2SRJf4hevxm4gDC/w43ROeaZ2XbJ30J5/Pe/\n0Lt3GELbCwXnXDVL0vg8TdLOAJKWlHQmMKmZfRYxsyfNbGMz28DMLovW3RwVCpjZsWb2EzPbKnpU\nXKEwb16YcKdPnzBFZ5by69fbO89FzHMR81yULknBcDxwIuFuoo8Jg+qdmGZQleb002HJJeGKK7KO\nxDnn0pdqP4bWkmUbwy23wNVXhwl3VlwxkxCcc65FWn0+BknXNbGfmdkfiz1ZS2VVMIwcCYceGibc\n2Wijsp/eOedKkkYHt7HAq9FjbAOPqjZ1Khx+eBgcr5IKBa8/jXkuYp6LmOeidI3elWRm/fOXJS0f\nVtu3aQeVtdyEO+ec47OwOefanyT9GH4O3A38JFr1BXCUmb2Rcmz5MZStKmnhQjjkEFhpJbjtNlDR\nF2HOOVcZ0uzHcAtwupmNiE5UE63bqdiTtQUXXQSffQYPPOCFgnOufUpyu+qyuUIBwMzqgOVSiyhD\nAwZA//4waFDlTrjj9acxz0XMcxHzXJQuyRXDB5LOB+4BBBxBmEOhqowbByecAE8/DautlnU0zjmX\nnSRtDCsDFxGPevoC0M/Mvk45tvwYUm1j+Owz2G47uOqqcHuqc85Vg1bvx1BJ0iwYfvwR9twT9t47\ntC8451y1SG2iHknbSnpE0jhJE6PHhJaFWVnM4PjjQ9XRhRdmHU0yXn8a81zEPBcxz0XpkrQx3Aec\nCbwBLEw3nPK69loYOxZGjYLF0p7Lzjnn2ogkbQyjzKzBWdXKJY2qpKefDiOljh4NpUx05JxzlSq1\nNgZJ+wCHA88Ac6PVZmaDio6yhVq7YHj3Xdh1V3j44fDTOeeqUWptDMBRwJZAD6BX9Ni/2BNVipkz\nw4Q7l1zSNgsFrz+NeS5inouY56J0SdoYtgE2qYi5NUu0YAH07Qu//CX8/vdZR+Occ5UpSVXSncBV\nZvZmeUJqMIZWKZfOPBPGj4dhw2DxRJOaOudc25XmWEk7AuMlfQD8GK0zM9ui2JNl6a674NFHYcwY\nLxScc64pSdoYegAbAvsQ2hb2B3qnGVRrGz0azjoLhgyBlVfOOprSeP1pzHMR81zEPBela/a7s5lN\nLUMcqZk+PQyjfccdsNlmWUfjnHOVr6qHxPjuO9httzD+0dlnpxCYc85VMB8rqYAZ/PrX0KFDmJ7T\n51ZwzrU3afZjaJMuuwymTIFbb62uQsHrT2Oei5jnIua5KF1V3p8zeDDccEO4A2mZZbKOxjnn2paq\nq0qaODEMo/3442GOBeeca6+8Kgn48kvo0weuucYLBeeca6mqKRjmzQu3pR52GBxxRNbRpMfrT2Oe\ni5jnIua5KF3VFAynnAIdO8Kll2YdiXPOtW1V0cZw441w3XXw8suwwgplDMw55ypYu+3HMGIE/OpX\nYRa2DTYoc2DOOVfB2mXj8/vvh2G077+//RQKXn8a81zEPBcxz0Xp2mzBYBYamv/8Z9hrr6yjcc65\n6tGmq5KmTIH11quuns3OOdda2m0bg3POuYZVZBuDpB6S3pb0nqQGxzeV9M/o9dclbZVmPNXA609j\nnouY5yLmuShdagWDpA7AvwgT/WwG9JW0acE2PYENzGxD4DjgxrTiqRbjx4/POoSK4bmIeS5inovS\npXnFsB0w2cymmtk84EGgT8E2vYG7AMzsP0AnSaulGFObN3PmzKxDqBiei5jnIua5KF2aBUMX4KO8\n5enRuua2WTPFmJxzzjUjzYIhaWtxYcOItzI3YerUqVmHUDE8FzHPRcxzUbrU7kqStAPQz8x6RMvn\nAgvN7Iq8bW4C6szswWj5bWB3M/us4FheWDjnXAu05K6kNCfqeRXYUFJXYAZwONC3YJshwEnAg1FB\nMrOwUICWvTHnnHMtk1rBYGbzJZ0EPAV0AG43s0mS/hC9frOZPSGpp6TJwBzgd2nF45xzLpk20cHN\nOedc+VTUWEneIS7WXC4kHRHlYIKkUZK2yCLOckjydxFtt62k+ZIOKmd85ZLw/6NG0jhJb0iqK3OI\nZZPg/6OzpGGSxke5qM0gzLKQdIekzyRNbGKb4j43zawiHoTqpslAV2AJYDywacE2PYEnoufbAy9n\nHXeGudgRWDF63qM95yJvu+eAx4CDs447o7+JTsCbwJrRcues484wF/2Ay3J5AL4CFs869pTysSuw\nFTCxkdeL/tyspCsG7xAXazYXZjbazL6JFv9D9fb/SPJ3AXAy8DDwRTmDK6Mkefg1MNDMpgOY2Zdl\njrFckuTiEyA3bdcKwFdmNr+MMZaNmb0AfN3EJkV/blZSweAd4mJJcpHvGOCJVCPKTrO5kNSF8MGQ\nG1KlGhvOkvxNbAisLGmEpFclHVm26MorSS5uBTaXNAN4HTilTLFVoqI/N9O8XbVY3iEulvg9SdoD\nOBrYOb1wMpUkF9cA55iZSRL/+zdSDZLkYQngF8BewLLAaEkvm9l7qUZWfklycR4w3sxqJK0PDJe0\npZnNTjm2SlXU52YlFQwfA2vlLa9FKNma2mbNaF21SZILogbnW4EeZtbUpWRbliQXWxP6wkCoT95X\n0jwzG1KeEMsiSR4+Ar40s++B7yWNBLYEqq1gSJKLnYBLAcxsiqQPgI0J/avam6I/NyupKmlRhzhJ\nSxI6xBX+Yw8BfguLelY32CGuCjSbC0lrA4OA35jZ5AxiLJdmc2Fm65nZuma2LqGd4fgqKxQg2f/H\nYGAXSR0kLUtoaHyrzHGWQ5JcvA3sDRDVp28MvF/WKCtH0Z+bFXPFYN4hbpEkuQAuAFYCboy+Kc8z\ns+2yijktCXNR9RL+f7wtaRgwAVgI3GpmVVcwJPyb+Ctwp6TXCV+A/8/M/ptZ0CmS9ACwO9BZ0kfA\nhYRqxRZ/bnoHN+ecc/VUUlWSc865CuAFg3POuXq8YHDOOVePFwzOOefq8YLBOedcPV4wOOecq8cL\nBpeIpFpJ1xW5zwPRML8lj1Mj6byC5VGlHrOZ820SDdk8VtK6rXjcdST1zVsuOq8tOGeD55C0f1PD\nmDdyrG+jn2tIGlBCTH9oaCynqNNao8NHu/KomA5uruIV1eFF0urANma2YQOvdTCzBUWe/1xCp6UQ\njFnaY0MdAAwws0tb+bjrEkZBfSBaLkdHogbPYWZDgaEtOZaZzQAObXFA7aRjYlvlVwztRPRN7G1J\nd0p6R9J9kvaJJvl5V9K20XYrS3o0+qY/WtLPGzjWKpIeljQmeuzUwCmfBrpEk8bsIqlO0j8kvQKc\nIqmXpJclvSZpuKRVo2N3jGKcEMVwkKTLgGWiY90TbZf75ipJV0qaGO1zWLS+JjrnAEmTJN3bSF66\nRXG8LmmQpE6SehJG4zxe0nMN7POtpL8pTAAzXNIOkp6XNEXS/tE2HaK4xkTHPi7a/XJg1+i9nBqt\nW0PSk9Hv4Yq889wg6ZXoPP3y1k+V1C+6mpkgaeOkv7uC97HoSkJSf0nXRn8PUyQd3My+i77ZS1pG\n0oOS3opy+LKkX+T/nqLnh0i6M3reT9IZ0fOto5jHAyc0dV5XJllPMuGP8jwIk5rMAzYnjLT4KmEo\nAQjjtT8SPb8OOD96vgcwLnpeC1wXPb8f2Dl6vjbwVgPnW4e8iUOAEcC/8pY75T0/Frgqen4FcHXh\ndsDsguPPjn4eTCiEBKwKfAisDtQAM4E1otdeysVccJwJwK7R84uAf0TPLwRObySXC4Hu0fNB0fk7\nAFvk5es44E/R86WAV6Lfwe7A0Lxj1QJTgOWj7aYCXaLXVop+dojy97No+QPgxOj58YShLxL97gre\nx1F5v9P+wEPR802B9xp577m8d839foHTgdui5z8n/J39ovD3Fv2u7izMb/Q72CV6/jcamXDGH+V7\neFVS+/KBmb0JIOlN4Jlo/RuEf3QIw3cfBGBmIyT9RNLyBcfZG9hUWjSS7/KSljWz7/K2aWjo64fy\nnq8l6d+ED/EliQc424swKBpRDDObeU+7APdb+FT5XNLzwLbALGCMhSoPom+jXYFFbROSViTMgvdC\ntOouIFdv3tTw3XPN7Kno+UTgBzNbICk/j/sAP5d0SLS8ArABUDhZjAHPWjQctKS3CIXqx8Dhkn5P\nqPL9KbAZ4XcFoUACeI3o90Wy311jDHg02neSipsAa1fg2mjfiZImJN0x73fwYrTqHmDfIs7tUuAF\nQ/vyY97zhcDcvOf5fwvNjd0uYHszm0tx5uQ9v45wlfCYpN0JUzE2dv6mWAPb5+LNf78LaP7vPf84\nTdX9z8t7viiPZrZQUv45TjKz4fVOINU0cLz/iVOhwfsMQjvNN1EVzNIN7FP4vkqZryT/91nsnBaN\nbZ9//mVKOI4rI29jcIVeAI6ARR9iX5jZtwXbPA38MbcgqVvCY+f/068AzIie1+atHw6cmHfsTtHT\neQUfuvnxHi5pMUmrALsBY0jwAWNhatSvJe0SrToSqGsg1pZ4CjghF7OkjRSGwp5FqDbKaeg8iraZ\nA8yKvr0n+Rad5HdXeJ7WMJLQoI6knxGq1HI+U7jDazHgwIJzK/odzJSUu5ngiFaKyZXAC4b2pfDb\nozXwvB+wtcJwxX8l1EPnXs9t80dgm6jB8E1CfXqx5+sHDJD0KmGe5txrlwArRY3J4wltBQC3ABNy\njc/Ed8c8Qqijfh14FjjLzD4viLexeIje35XR+90CuLiB91vM+8o9v40wF8JrUSPtjYS2ggnAAoVb\nYU9tLE4zmwCMI8wrcB/wIg3L378fzf/uGtu3sffR0D6Fz28EOkbVYBcBY/O2OQd4jFCFNyNvn/xz\n/w64XtK4Zs7tysSH3XbOtSpJI4AzzOy1rGNxLeNXDM455+rxKwbnnHP1+BWDc865erxgcM45V48X\nDM455+rxgsE551w9XjA455yrxwsG55xz9fx/ja2w2w8vuCwAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xab95208>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecy8r/B+9bLqWB6Di+AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xc471d68>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4zit4v8B7C9A0gfoBi8AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xc3ed390>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height of Tower for enriching Section is 7.53 m\n",
+ "\n",
+ "Height of Tower for Stripping Section is 4.54 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.13: Page 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.13:\n",
+ "\n",
+ "print'Illustration 9.13\\n\\n'\n",
+ "\n",
+ "#**************************Calculation Of Minimum Reflux ratio************************#\n",
+ "# Page: 436\n",
+ "print'Page: 436\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy.linalg as lin\n",
+ "#***Data***#\n",
+ "# C1:CH4 C2:C2H6 C3:n-C3H8 C4:n-C4H10 C5:n-C5H12 C6:n-C6H14\n",
+ "# zF = [zF(C1) zF(C2) zF(C3) zF(C4) zF(C5) zF(C6)]\n",
+ "zF = numpy.array([0.03 ,0.07 ,0.15 ,0.33 ,0.30 ,0.12]);# [mole fraction]\n",
+ "LF_By_F = 0.667;\n",
+ "Temp = 82;# [OC]\n",
+ "ylk = 0.98;\n",
+ "yhk = 0.01;\n",
+ "#**********#\n",
+ "\n",
+ "# Data = [m HG HL(30 OC);m HG HL(60 OC);m HG HL(90 OC);m HG HL(120 OC);]\n",
+ "Data1 = numpy.array([[16.1 ,12790 ,9770],[19.3 ,13910, 11160],[21.8 ,15000, 12790],[24.0 ,16240, 14370]]);# [For C1]\n",
+ "Data2 = numpy.array([[3.45, 22440, 16280],[4.90 ,24300 ,18140],[6.25 ,26240 ,19890],[8.15 ,28140, 21630]]);# [For C2]\n",
+ "Data3 = numpy.array([[1.10, 31170, 16510],[2.00 ,33000 ,20590],[2.90, 35800 ,25600],[4.00 ,39000, 30900]]);# [For C3]\n",
+ "Data4 = numpy.array([[0.35, 41200 ,20350],[0.70 ,43850 ,25120],[1.16 ,46500, 30000],[1.78 ,50400 ,35400]]);# [For C4]\n",
+ "Data5 = numpy.array([[0.085, 50500, 24200],[0.26, 54000 ,32450],[0.50 ,57800 ,35600],[0.84, 61200 ,41400]]);# [For C5]\n",
+ "Data6 = numpy.array([[0.0300, 58800 ,27700],[0.130, 63500, 34200],[0.239 ,68150 ,40900],[0.448, 72700 ,48150]]);# [For C6]\n",
+ "\n",
+ "# T = [Temparature]\n",
+ "T = numpy.array([30,60,0,120]);\n",
+ "\n",
+ "# Flash vaporisation of the Feed:\n",
+ "# Basis: 1 kmol feed throughout\n",
+ "# After Several trials, assume:\n",
+ "F = 1.0;# [kmol]\n",
+ "GF_By_F = 0.333;\n",
+ "LF_By_GF = LF_By_F/GF_By_F;\n",
+ "m82 = numpy.zeros(6);\n",
+ "y = numpy.zeros(6);\n",
+ "m82[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m82[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m82[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m82[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m82[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m82[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range (0,6):\n",
+ " y[i] = zF[i]*(LF_By_GF+1)/(1.0+(2/m82[i]));\n",
+ "\n",
+ "Sum = sum(y);\n",
+ "# Since Sum is sufficiently close to 1.0, therefore:\n",
+ "q = 0.67;# [LF_By_F]\n",
+ "# Assume:\n",
+ "# C3: light key\n",
+ "# C5: heavy key\n",
+ "zlkF = zF[2];# [mole fraction]\n",
+ "zhkF = zF[4];# [mole fraction]\n",
+ "ylkD = ylk*zF[2];# [kmol]\n",
+ "yhkD = yhk*zF[4];# [kmol]\n",
+ "\n",
+ "# Estimate average Temp to be 80 OC\n",
+ "m80 = numpy.zeros(6);\n",
+ "alpha80 = numpy.zeros(6);\n",
+ "m80[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m80[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m80[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m80[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m80[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m80[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha80[i] = m80[i]/m80[4];\n",
+ "\n",
+ "# By Eqn. 9.164:\n",
+ "yD_By_zF1 = (((alpha80[0]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[0])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C1]\n",
+ "yD_By_zF2 = (((alpha80[1]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[1])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C2]\n",
+ "yD_By_zF6 = (((alpha80[5]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[5])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C6]\n",
+ "# The distillate contains:\n",
+ "yC1 = 0.03;# [kmol C1]\n",
+ "yC2 = 0.07;# [kmol C2]\n",
+ "yC6 = 0;# [kmol C6]\n",
+ "# By Eqn 9.165:\n",
+ "def g1(phi):\n",
+ " return (((alpha80[0]*zF[0])/(alpha80[0]-phi))+((alpha80[1]*zF[1])/(alpha80[1]-phi))+((alpha80[2]*zF[2])/(alpha80[2]-phi))+((alpha80[3]*zF[3])/(alpha80[3]-phi))+((alpha80[4]*zF[4])/(alpha80[4]-phi))+((alpha80[5]*zF[5])/(alpha80[5]-phi)))-(F*(1-q))\n",
+ "# Between alphaC3 & alphaC4:\n",
+ "phi1 = fsolve(g1,3);\n",
+ "# Between alphaC4 & alphaC5:\n",
+ "phi2 = fsolve(g1,1.5);\n",
+ "# From Eqn. 9.166:\n",
+ "# Val = D*(Rm+1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi1))+(alpha80(2)*yC2/(alpha80(2)-phi1))+(alpha80(3)*ylkD/(alpha80(3)-phi1))+(alpha80(4)*yD/(alpha80(4)-phi1))+(alpha80(i)*yhkD/(alpha80(5)-phi1))+(alpha80(6)*yC6/(alpha80(6)-phi1)) = Val.....................(1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi2))+(alpha80(2)*yC2/(alpha80(2)-phi2))+(alpha80(3)*ylkD/(alpha80(3)-phi2))+(alpha80(4)*yD/(alpha80(4)-phi2))+(alpha80(i)*yhkD/(alpha80(5)-phi2))+(alpha80(6)*yC6/(alpha80(6)-phi2)) = Val ....................(2)\n",
+ "# Solving simultaneously:\n",
+ "a =numpy.array([[-alpha80[3]/(alpha80[3]-phi1), 1],[-alpha80[3]/(alpha80[3]-phi2), 1]]);\n",
+ "b =numpy.array([[alpha80[0]*yC1/[alpha80[0]-phi1]]+[alpha80[1]*yC2/[alpha80[1]-phi1]]+[alpha80[2]*ylkD/[alpha80[2]-phi1]]+[alpha80[i]*yhkD/[alpha80[4]-phi1]]+[alpha80[5]*yC6/[alpha80[5]-phi1]],[alpha80[0]*yC1/[alpha80[0]-phi2]]+[alpha80[1]*yC2/[alpha80[1]-phi2]]+[alpha80[2]*ylkD/[alpha80[2]-phi2]]+[alpha80[i]*yhkD/[alpha80[4]-phi2]]+[alpha80[5]*yC6/[alpha80[5]-phi2]]])\n",
+ "soln = lin.solve(a,b);\n",
+ "yC4 =0.1313547 # [kmol C4 in the distillate]\n",
+ "Val =0.617469; # [kmol C4 in the distillate]\n",
+ "# For the distillate, at a dew point of 46 OC\n",
+ "ydD = numpy.array([yC1,yC2 ,ylkD ,yC4 ,yhkD ,yC6]);\n",
+ "D = sum(ydD);\n",
+ "yD = zeros(6);\n",
+ "m46 = zeros(6);\n",
+ "alpha46 = zeros(6);\n",
+ "Ratio1= zeros(6);\n",
+ "m46[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m46[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m46[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m46[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m46[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m46[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "yD=numpy.array([0.0786,0.1835,0.3854,0.34,0.007866,0.0])\n",
+ "# mhk = mC5 at 46.6 OC, the assumed 46 OC is satisfactory.\n",
+ "\n",
+ "# For the residue, at a dew point of 46 OC\n",
+ "xwW =numpy.array([zF[0]-yC1, zF[1]-yC2 ,zF[2]-ylkD, zF[3]-yC4, zF[4]-yhkD, zF[5]-yC6]);\n",
+ "W = sum(xwW);\n",
+ "xW = zeros(6);\n",
+ "m113 = zeros(6);\n",
+ "alpha113 = zeros(6);\n",
+ "alphalk_av=zeros(6);\n",
+ "alpha_av=zeros(6);\n",
+ "Value=zeros(6);\n",
+ "m113[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m113[1] = interp(Temp,T,Data2[:,1]);# [For C2]\n",
+ "m113[2] = interp(Temp,T,Data3[:,1]);# [For C3]\n",
+ "m113[3] = interp(Temp,T,Data4[:,1]);# [For C4]\n",
+ "m113[4] = interp(Temp,T,Data5[:,1]);# [For C5]\n",
+ "m113[5] = interp(Temp,T,Data6[:,1]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha113[i] = m113[i]/m113[4];\n",
+ " xW[i] = xwW[i]/W;\n",
+ " # Ratio = yD/alpha46\n",
+ " Value[i] = alpha113[i]*xW[i];\n",
+ "\n",
+ "# mhk = mC5 at 114 OC, the assumed 113 OC is satisfactory.\n",
+ "Temp_Avg = (114+46.6)/2;# [OC]\n",
+ "# Temp_avg is very close to the assumed 80 OC\n",
+ "Rm = (Val/D)-1;\n",
+ "print\"Minimum Reflux Ratio is \",Rm,\" mol reflux/mol distillate\\n \\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t:\",yD[0]\n",
+ "print\"C2\\t \\t \\t \\t:\",yD[1]\n",
+ "print\"C3\\t \\t \\t \\t:\",yD[2]\n",
+ "print\"C4\\t \\t \\t \\t:\",yD[3]\n",
+ "print\"C5\\t \\t \\t \\t:\",yD[4]\n",
+ "print\"C6\\t \\t \\t \\t:\",yD[5]\n",
+ "print\"\\n\"\n",
+ "print\"*****************Residue Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t: \",xW[0]\n",
+ "print\"C2\\t \\t \\t \\t: \",xW[1]\n",
+ "print\"C3\\t \\t \\t \\t: \",xW[2]\n",
+ "print\"C4\\t \\t \\t \\t: \",xW[3]\n",
+ "print\"C5\\t \\t \\t \\t: \",xW[4]\n",
+ "print\"C6\\t \\t \\t \\t: \",xW[5]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**********************Number of Theoretical stage***********************#\n",
+ "# Page:440\n",
+ "print'Page: 440\\n\\n'\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " alpha_av[i] = (alpha46[i]*alpha113[i])**0.5;\n",
+ "\n",
+ "alphalk_av = alpha_av[1];\n",
+ "# By Eqn. 9.167:\n",
+ "xhkW = xwW[3];\n",
+ "xlkW = xwW[1];\n",
+ "Nm = 3.496;\n",
+ "# Ratio = yD/xW\n",
+ "Ratio2= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " Ratio2[i] = (alpha_av[i]**(Nm+1))*yhkD/xhkW;\n",
+ "\n",
+ "# For C1:\n",
+ "# yC1D-Ratio(1)*xC1W = 0\n",
+ "# yC1D+xC1W = zF(1)\n",
+ "# Similarly for others\n",
+ "yD2=zeros(6)\n",
+ "xW2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " a = numpy.array([[1 ,-Ratio2[i]],[1, 1]]);\n",
+ " b = [0,zF[i]];\n",
+ " soln =lin.solve(a,b);\n",
+ " yD2[i] = soln[0];# [kmol]\n",
+ " xW2[i] = soln[1];# [kmol]\n",
+ "\n",
+ "D = sum(yD2);# [kmol]\n",
+ "W = sum(xW2);# [kmol]\n",
+ "# The distillate dew point computes to 46.6 OC and the residue bubble point computes to 113 OC, which is significantly close to the assumed.\n",
+ "\n",
+ "#***************Product composition at R = 0.8***********************#\n",
+ "# Page:441\n",
+ "print'Page: 441\\n\\n'\n",
+ "\n",
+ "# Since C1 and C2 do not enter in the residue nor C6 in the distillate, appreciably at total reflux or minimum reflux ratio, it will be assumed that they will not enter R = 0.8. C3 and C5 distribution are fixed by specifications. Only that C4 remains to be estimated.\n",
+ "# R = [Infinte 0.8 0.58] [Reflux ratios For C4]\n",
+ "R = [inf ,0.8, 0.58];\n",
+ "# Val = R/(R+1)\n",
+ "val=[ 0 , 2.0 , 2.0]\n",
+ "# ydD = [Inf 0.58] \n",
+ "y4D = [0.1255, 0.1306];\n",
+ "yC4D = 0.1306 ;# by Linear Interpolation\n",
+ "# For Distillate:\n",
+ "Sum1 = sum(Ratio1);\n",
+ "x0 = numpy.array([0.004,0.0444501,0.2495,0.65640,0.0451,0.0])\n",
+ "print\"For the reflux ratio of 0.8\\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"\\t\\t\\t Liquid reflux in equilibrium with the distillate vapour\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\\t:\",x0[i]\n",
+ "\n",
+ "# For boiler:\n",
+ "\n",
+ "#**********Number Of Theoretical Trays***************#\n",
+ "# Page: 443\n",
+ "print'Page: 443\\n\\n'\n",
+ "\n",
+ "R = 0.8;# [reflux ratio]\n",
+ "# From Eqn. 9.175\n",
+ "intersection = (zlkF-(ylkD/D)*(1-q)/(R+1))/(zhkF-(yhkD/D)*(1-q)/(R+1));\n",
+ "# Enriching Section:\n",
+ "y1 = zeros(5);\n",
+ "L = R*D;# [kmol]\n",
+ "G = L+D;# [kmol]\n",
+ "# Assume: Temp1 = 57 OC\n",
+ "# alpha57 = [C1 C2 C3 C4 C5]\n",
+ "alpha57 = numpy.array([79.1 ,19.6 ,7.50, 2.66, 1]);\n",
+ "# From Eqn. 9.177, n = 0:\n",
+ "Val57=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y1[i] = (L/G)*x0[i]+((D/G)*yD[i]);\n",
+ " Val57[i] = y1[i]/alpha57[i];\n",
+ "\n",
+ "x1 = Val57/sum(Val57);\n",
+ "mC5 = sum(Val57);\n",
+ "Temp1 = 58.4; # [OC]\n",
+ "# Liquid x1's is in equilibrium with y1's.\n",
+ "xlk_By_xhk1 = x1[2]/x1[4];\n",
+ "# Tray 1 is not the feed tray.\n",
+ "# Assume: Temp2 = 63 OC\n",
+ "# alpha63 = [C1 C2 C3 C4 C5]\n",
+ "alpha63 = numpy.array([68.9 ,17.85, 6.95, 2.53, 1.00]);\n",
+ "# From Eqn. 9.177, n = 1:\n",
+ "y2=zeros(6)\n",
+ "Val63=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y2[i] = (L/G)*x1[i]+((D/G)*yD[i]);\n",
+ " Val63[i] = y1[i]/alpha63[i];\n",
+ " \n",
+ "mC5 = sum(Val63);\n",
+ "x2 = Val63/sum(Val63);\n",
+ "xlk_By_xhk2 = x2[2]/x2[4];\n",
+ "# The tray calculation are continued downward in this manner.\n",
+ "# Results for trays 5 & 6 are:\n",
+ "# Temp 75.4 [OC]\n",
+ "# x5 = [C1 C2 C3 C4 C5]\n",
+ "x5 = numpy.array([0.00240, 0.0195, 0.1125, 0.4800, 0.3859]);\n",
+ "xlk_By_xhk5 = x5[2]/x5[4];\n",
+ "# Temp6 = 79.2 OC\n",
+ "# x6 = [C1 C2 C3 C4 C5]\n",
+ "x6 = numpy.array([0.00204 ,0.0187 ,0.1045, 0.4247 ,0.4500]);\n",
+ "xlk_By_xhk6 = x6[2]/x6[4];\n",
+ "# From Eqn. 9.176:\n",
+ "# Tray 6 is the feed tray\n",
+ "Np1 = 6;\n",
+ "\n",
+ "# Exhausting section:\n",
+ "# Assume Temp = 110 OC\n",
+ "L_bar = L+(q*F);# [kmol]\n",
+ "G_bar = L_bar-W;# [kmol]\n",
+ "# alpha57 = [C3 C4 C5 C6]\n",
+ "alpha110 = numpy.array([5 ,2.2 ,1, 0.501]);\n",
+ "# From Eqn. 9.178:\n",
+ "xNp = zeros(4);\n",
+ "Val110=zeros(6)\n",
+ "k = 0;\n",
+ "for i in range(2,6):\n",
+ " xNp[k] = ((G_bar/L_bar)*yNpPlus1[i])+((W/L_bar)*xW[i]);\n",
+ " Val110[k] = alpha110[k]*xNp[k];\n",
+ " k = k+1;\n",
+ "\n",
+ "yNp = Val110/sum(Val110);\n",
+ "mC5 = 1/sum(Val110);\n",
+ "# yNp is in Eqb. with xNp:\n",
+ "xlk_By_xhkNp = xNp[0]/xNp[3];\n",
+ "# Results for Np-7 to Np-9 trays:\n",
+ "# For Np-7\n",
+ "# Temp = 95.7 OC\n",
+ "# xNpMinus7 = [C3 C4 C5 C6]\n",
+ "xNpMinus7 = numpy.array([0.0790 ,0.3944 ,0.3850, 0.1366]);\n",
+ "xlk_By_xhkNpMinus7 = xNpMinus7[0]/xNpMinus7[2];\n",
+ "# For Np-8\n",
+ "# Temp = 94.1 OC\n",
+ "# xNpMinus8 = [C3 C4 C5 C6]\n",
+ "xNpMinus8 = numpy.array([0.0915, 0.3897 ,0.3826, 0.1362]);\n",
+ "xlk_By_xhkNpMinus8 = xNpMinus8[0]/xNpMinus8[2];\n",
+ "# For Np-9\n",
+ "# Temp = 93.6 OC\n",
+ "# xNpMinus9 = [C3 C4 C5 C6]\n",
+ "xNpMinus9 = numpy.array([0.1032, 0.3812, 0.3801 ,0.1355]);\n",
+ "xlk_By_xhkNpMinus9 = xNpMinus9[0]/xNpMinus9[2];\n",
+ "# From Eqn. 9.176:\n",
+ "# Np-8 is the feed tray.\n",
+ "def g2(Np):\n",
+ " return Np-8-Np1\n",
+ "Np = fsolve(g2,7);\n",
+ "print\"Number of theoretical Trays required for R = 0.8: \",Np[0]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Composition Correction*****************#\n",
+ "# Page: 446\n",
+ "print'Page: 446\\n\\n'\n",
+ "\n",
+ "# New Bubble Point:\n",
+ "# Temp = 86.4 OC\n",
+ "x6_new = x6*(1-xNpMinus8[3]);\n",
+ "x6_new[4] = xNpMinus8[3];\n",
+ "# alpha86 = [C1 C2 C3 C4 C5 C6]\n",
+ "alpha86 =numpy.array([46.5, 13.5, 5.87, 2.39, 1.00, 0.467]);\n",
+ "# From Eqn. 9.181:\n",
+ "xhkn = x5[3];\n",
+ "xhknPlus1 = x6_new[3];\n",
+ "xC65 = alpha86[5]*x6_new[4]*xhkn/xhknPlus1;\n",
+ "x5_new = x5*(1-xC65);\n",
+ "x5_new[4] = 1-sum(x5_new);\n",
+ "# Tray 5 has a bubble point of 80 OC\n",
+ "# Similarly , the calculations are continued upward:\n",
+ "# x2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x2_new = numpy.array([0.0021, 0.0214 ,0.1418, 0.6786, 0.1553, 0.00262]);\n",
+ "# y2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_new = numpy.array([0.0444, 0.111 ,0.2885, 0.5099, 0.0458 ,0.00034]);\n",
+ "# x1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x1_new = numpy.array([0.00226, 0.0241, 0.1697 ,0.7100, 0.0932, 0.00079]);\n",
+ "# y1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y1_new = numpy.array([0.0451 ,0.1209 ,0.3259 ,0.4840 ,0.0239 ,0.000090]);\n",
+ "# x0_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x0_new = numpy.array([0.00425 ,0.0425 ,0.2495, 0.6611 ,0.0425 ,0.00015]);\n",
+ "# yD_new = [C1 C2 C3 C4 C5 C6]\n",
+ "yD_new = numpy.array([0.0789 ,0.1842 ,0.3870 ,0.3420 ,0.0079, 0.00001]);\n",
+ "# From Eqn. 9.184:\n",
+ "# For C1 & C2\n",
+ "alphalkm = alpha86[2];\n",
+ "xlkmPlus1 = xNpMinus7[0];\n",
+ "xlkm = x6_new[2];\n",
+ "xC17 = x6_new[0]*alpha86[2]*xlkmPlus1/(alpha86[0]*xlkm);\n",
+ "xC27 = x6_new[1]*alpha86[2]*xlkmPlus1/(alpha86[1]*xlkm);\n",
+ "# Since xC17 = 1-xC27\n",
+ "# The adjusted value above constitute x7's.\n",
+ "# The new bubbl point is 94 OC\n",
+ "# The calculations are continued down in the same fashion.\n",
+ "# The new tray 6 has:\n",
+ "# xC1 = 0.000023 & xC2 = 0.00236\n",
+ "# It is clear that the conc. of these components are reducing so rapidly that there is no need to go an further.\n",
+ "print\"******Corrected Composition***********\\n\"\n",
+ "print\"Component\\t \\tx2\\t \\t \\t y2\\t \\t \\t x1\\t \\t \\t y1\\t \\t \\tx0\\t \\t \\tyD\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t\",x2_new[i],\"\\t \\t \\t \\t \",y2_new[i],\"\\t \\t \\t \\t \",x1_new[i],\"\\t \\t \\t \\t\",y1_new[i],\"\\t \\t \\t \\t \\t\",x0_new[i],\"\\t \\t \\t \\t\",yD_new[i]\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#*************Heat Load of Condensor & Boiler & L/G ratio**********#\n",
+ "# Page 448\n",
+ "print'Page: 448\\n\\n'\n",
+ "\n",
+ "# Values of x0, yD & y1 are taken from the corrected concentration.\n",
+ "# HD46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HD46 = numpy.array([13490, 23380, 32100, 42330, 52570, 61480]);# [kJ/kmol]\n",
+ "yDHD= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yDHD[i] = yD_new[i]*HD46[i];\n",
+ "\n",
+ "HD = sum(yDHD);# [kJ]\n",
+ "# HL46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL46 = numpy.array([10470, 17210, 18610, 22790, 27100, 31050]);# [kJ/kmol]\n",
+ "xHL=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL[i] = x0_new[i]*HL46[i];\n",
+ "\n",
+ "HL0 = sum(xHL);# [kJ]\n",
+ "# HG58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG58 = numpy.array([13960, 24190, 37260, 43500, 53900, 63500]);# [kJ/kmol]\n",
+ "yHG1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG1[i] = y1_new[i]*HG58[i];\n",
+ "\n",
+ "HG1 = sum(yHG1);# [kJ]\n",
+ "# From Eqn. 9.54:\n",
+ "Qc = D*((R+1)*HG1-(R*HL0)-HD);# [kJ/kmol feed]\n",
+ "# Similarly:\n",
+ "HW = 39220;# [kJ]\n",
+ "HF = 34260;# [kJ]\n",
+ "# From Eqn. 9.55:\n",
+ "Qb = (D*HD)+(W*HW)+Qc-(F*HF);# [kJ/kmol feed]\n",
+ "# For tray n = 1\n",
+ "G1 = D*(R+1);# [kmol]\n",
+ "# With x1 & y2 from corrected composition;\n",
+ "# HG66 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG66 = numpy.array([14070, 24610, 33800, 44100, 54780, 64430]);# [kJ/kmol feed]\n",
+ "yHG2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG2[i] = y2_new[i]*HG66[i];\n",
+ "\n",
+ "HG2 = sum(yHG2);# [kJ]\n",
+ "# HL58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL58 =numpy.array([11610 ,17910 ,20470, 24900, 29500, 33840]);# [kJ/kmol feed]\n",
+ "xHL1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL1[i] = x1_new[i]*HL58[i];\n",
+ "\n",
+ "HL1 = sum(xHL1);# [kJ]\n",
+ "# From Eqn. 9.185:\n",
+ "G2 = (Qc+D*(HD-HL1))/(HG2-HL1);# [kmol]\n",
+ "L2 = G2-D;# [kmol]\n",
+ "L2_By_G2 = L2/G2;\n",
+ "# Similarly, the calculations are made for other trays in enriching section.\n",
+ "# For tray, Np = 14:\n",
+ "# C1 & C2 are absent.\n",
+ "# HG113 = [C3 C4 C5 C6]\n",
+ "HG113 = numpy.array([38260, 49310 ,60240, 71640]);# [kJ/kmol feed]\n",
+ "k = 2;\n",
+ "yHG15=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " yHG15[i] = yNpPlus1[k]*HG113[i];\n",
+ " k = k+1;\n",
+ "\n",
+ "HG15 = sum(yHG15);\n",
+ "# HL107 = [C3 C4 C5 C6]\n",
+ "HL107 = numpy.array([29310 ,31870, 37680 ,43500]);# [kJ/kmol feed]\n",
+ "xHL14=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " xHL14[i] = xNp[i]*HL107[i];\n",
+ "\n",
+ "HL14 = sum(xHL14);# [kJ]\n",
+ "# Similarly:\n",
+ "HL13 = 36790;# [kJ]\n",
+ "HG14 = 52610;# [kJ]\n",
+ "# From Eqn. 9.186:\n",
+ "G15_bar = (Qb+(W*(HL14-HW)))/(HG15-HL14);# [kmol]\n",
+ "L14_bar = W+G15_bar;# [kmol]\n",
+ "G14_bar = (Qb+(W*(HL13-HW)))/(HG14-HL13);# [kmol]\n",
+ "L14_By_G14 = L14_bar/G14_bar;\n",
+ "print\"Condensor Heat Load kJ:\\n\",HL0\n",
+ "print\"Reboiler Heat Load kJ:\\n\",HG15\n",
+ "# For other Exhausting Section Trays:\n",
+ "# Result = [Tray No. L_By_G Temp(OC)]\n",
+ "# Tray 0: Condensor\n",
+ "# Tray 15: Reboiler\n",
+ "Result = numpy.array([[0,0.80 ,46.6],[1 ,0.432 ,58.4],[2, 0.437, 66],[3, 0.369, 70.4],[4 ,0.305, 74],[5 ,0.310, 80.3],[6, 1.53, 86.4],[7, 4.05 ,94.1],[8 ,3.25 ,96.3],[9, 2.88 ,97.7],[10 ,2.58 ,99],[11, 2.48 ,100],[12 ,2.47 ,102.9],[13 ,2.42 ,104.6],[14 ,2.18 ,107.9],[15, 1.73 ,113.5]]);\n",
+ "print\"**************L/G*************\\n\"\n",
+ "print\"Tray No. \\t\\t L/G\\t\\t\\t\\t Temp(OC)\\n\"\n",
+ "for i in range(0,16):\n",
+ " print Result[i,0],\"\\t\\t \\t \\t\",Result[i,1],\"\\t \\t \\t\",Result[i,2];\n",
+ "\n",
+ "# These values are not final.\n",
+ "# They scatter eratically because they are based on the temp. and conc. computed with the assumption of constant L/G\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Thiele Geddes Method******************#\n",
+ "# Page:452\n",
+ "print'Page: 452\\n\\n'\n",
+ "\n",
+ "# Use the tray Temperature to obtain m.\n",
+ "# For C4:\n",
+ "# m = [0(Condensor) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(Reboiler)]\n",
+ "m = numpy.array([0.50 ,0.66, 0.75 ,0.81 ,0.86 ,0.95 ,1.07 ,1.22 ,1.27 ,1.29 ,1.30, 1.32, 1.40, 1.45, 1.51, 1.65]);\n",
+ "A = numpy.array([1.6,0.65,0.582,0.4555,0.354,0.326,1.42990])\n",
+ "S = numpy.array([0.3012,0.39076,0.4479,0.503875,0.53225,0.56680,0.59917,0.69,0.95375])\n",
+ "\n",
+ "# f = Tray No. 6\n",
+ "\n",
+ "# From Eqn. 9.196:\n",
+ "# Value1 = Gf*yf/(D*zD)\n",
+ "Sum = 0;\n",
+ "for i in range(0,6):\n",
+ " Val = 1;\n",
+ " for j in range(0,6):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value1 = 1+Sum;\n",
+ "# From Eqn. 9.206:\n",
+ "# Value2 = Lf_bar*xf/(W*xW);\n",
+ "Sum = 0.5316\n",
+ "Value2 = 1+Sum;\n",
+ "# From Eqn. 9.208:\n",
+ "# Value3 = W*xW/(D*zD)\n",
+ "Value3 = A[6]*Value1/Value2;\n",
+ "# From Eqn. 9.210:\n",
+ "DyD = F*zF[3]/(Value3+1);# [kmol,C4]\n",
+ "# From Eqn. 9.209:\n",
+ "WxW = ((F*zF[3]))-(DyD);# [kmol, C4]\n",
+ "# Similarly:\n",
+ "# For [C1; C2; C3; C4; C5; C6]\n",
+ "# Result2 = [Value1 Value2 Value3 DyD WxW]\n",
+ "Result2 = numpy.array([[1.0150, 254*10**6 ,288*10**(-10), 0.03, 0],[1.0567, 8750, 298*10**(-5) ,0.07 ,0],[1.440, 17.241 ,0.0376 ,0.1447, 0.0053],[1.5778 ,1.5306 ,1.475, 0.1335 ,0.1965],[15580, 1.1595, 45.7 ,0.00643 ,0.29357],[1080 ,1.0687 ,7230 ,0.0000166 ,0.1198]]);\n",
+ "D = sum(Result2[:,2]);# [kmol]\n",
+ "W = sum(Result2[:,3]);# [kmol]\n",
+ "# In the Distillate:\n",
+ "DyD_C3 = Result[1,2];# [kmol]\n",
+ "zFC3 = zF[2];# [kmol]\n",
+ "percentC3 = (DyD_C3/zFC3)*100;\n",
+ "DyD_C5 = Result2[3,2];# [kmol]\n",
+ "zFC5 = zF[4];# [kmol]\n",
+ "percentC5 = (DyD_C5/zFC5)*100;\n",
+ "# These do not quite meet the original specification.\n",
+ "# For Tray 2 & C4\n",
+ "# From Eqn. 9.195:\n",
+ "# Value4 = G2*y2/(D*zD)\n",
+ "n = 2;\n",
+ "Sum = 0;\n",
+ "for i in range(0,n):\n",
+ " Val = 1;\n",
+ " for j in range(i,n):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value4 = 1+Sum;\n",
+ "# From The enthalpy Balnce:\n",
+ "G2 = 0.675;\n",
+ "# From Eqn. 9.211:\n",
+ "y2 = Value4*DyD/G2;\n",
+ "# Similarly:\n",
+ "# Value4 = [C1 C2 C3 C4 C5 C6]\n",
+ "Value4 = numpy.array([1.0235, 1.1062, 1.351, 2.705, 10.18 ,46.9]);\n",
+ "y2= numpy.array([0.04548,0.114,0.2896,0.53498,0.09697,0.001153]);\n",
+ "Y2 = sum(y2);\n",
+ "# Since Y2 is not equal to 1. THerefore the original temperature is incorrect. By adjusting y2 to unity.\n",
+ "# The dew point is 77 OC instead of 66 OC\n",
+ "# y2_adjusted = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_adjusted = numpy.array([0.0419 ,0.1059 ,0.2675 ,0.4939, 0.0896, 0.00106]);\n",
+ "print\"*****************Composition By Thiele Geddes Method*****************\\n\"\n",
+ "print\"Component\\t \\t \\t y2\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\",y2_adjusted[i]\n",
+ "# some values of solution in the textbook are incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.13\n",
+ "\n",
+ "\n",
+ "Page: 436\n",
+ "\n",
+ "\n",
+ "Minimum Reflux Ratio is 0.619146164974 mol reflux/mol distillate\n",
+ " \n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0786\n",
+ "C2\t \t \t \t: 0.1835\n",
+ "C3\t \t \t \t: 0.3854\n",
+ "C4\t \t \t \t: 0.34\n",
+ "C5\t \t \t \t: 0.007866\n",
+ "C6\t \t \t \t: 0.0\n",
+ "\n",
+ "\n",
+ "*****************Residue Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0\n",
+ "C2\t \t \t \t: 0.0\n",
+ "C3\t \t \t \t: 0.00484930540974\n",
+ "C4\t \t \t \t: 0.321097242636\n",
+ "C5\t \t \t \t: 0.480081235564\n",
+ "C6\t \t \t \t: 0.19397221639\n",
+ "\n",
+ "\n",
+ "Page: 440\n",
+ "\n",
+ "\n",
+ "Page: 441\n",
+ "\n",
+ "\n",
+ "For the reflux ratio of 0.8\n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "\t\t\t Liquid reflux in equilibrium with the distillate vapour\n",
+ "\n",
+ "C 0 \t \t \t \t\t: 0.004\n",
+ "C 1 \t \t \t \t\t: 0.0444501\n",
+ "C 2 \t \t \t \t\t: 0.2495\n",
+ "C 3 \t \t \t \t\t: 0.6564\n",
+ "C 4 \t \t \t \t\t: 0.0451\n",
+ "C 5 \t \t \t \t\t: 0.0\n",
+ "Page: 443\n",
+ "\n",
+ "\n",
+ "Number of theoretical Trays required for R = 0.8: 14.0\n",
+ "\n",
+ "\n",
+ "Page: 446\n",
+ "\n",
+ "\n",
+ "******Corrected Composition***********\n",
+ "\n",
+ "Component\t \tx2\t \t \t y2\t \t \t x1\t \t \t y1\t \t \tx0\t \t \tyD\n",
+ "\n",
+ "C 0 \t \t \t0.0021 \t \t \t \t 0.0444 \t \t \t \t 0.00226 \t \t \t \t0.0451 \t \t \t \t \t0.00425 \t \t \t \t0.0789\n",
+ "C 1 \t \t \t0.0214 \t \t \t \t 0.111 \t \t \t \t 0.0241 \t \t \t \t0.1209 \t \t \t \t \t0.0425 \t \t \t \t0.1842\n",
+ "C 2 \t \t \t0.1418 \t \t \t \t 0.2885 \t \t \t \t 0.1697 \t \t \t \t0.3259 \t \t \t \t \t0.2495 \t \t \t \t0.387\n",
+ "C 3 \t \t \t0.6786 \t \t \t \t 0.5099 \t \t \t \t 0.71 \t \t \t \t0.484 \t \t \t \t \t0.6611 \t \t \t \t0.342\n",
+ "C 4 \t \t \t0.1553 \t \t \t \t 0.0458 \t \t \t \t 0.0932 \t \t \t \t0.0239 \t \t \t \t \t0.0425 \t \t \t \t0.0079\n",
+ "C 5 \t \t \t0.00262 \t \t \t \t 0.00034 \t \t \t \t 0.00079 \t \t \t \t9e-05 \t \t \t \t \t0.00015 \t \t \t \t1e-05\n",
+ "\n",
+ "\n",
+ "Page: 448\n",
+ "\n",
+ "\n",
+ "Condensor Heat Load kJ:\n",
+ "21641.994\n",
+ "Reboiler Heat Load kJ:\n",
+ "59915.6783775\n",
+ "**************L/G*************\n",
+ "\n",
+ "Tray No. \t\t L/G\t\t\t\t Temp(OC)\n",
+ "\n",
+ "0.0 \t\t \t \t0.8 \t \t \t46.6\n",
+ "1.0 \t\t \t \t0.432 \t \t \t58.4\n",
+ "2.0 \t\t \t \t0.437 \t \t \t66.0\n",
+ "3.0 \t\t \t \t0.369 \t \t \t70.4\n",
+ "4.0 \t\t \t \t0.305 \t \t \t74.0\n",
+ "5.0 \t\t \t \t0.31 \t \t \t80.3\n",
+ "6.0 \t\t \t \t1.53 \t \t \t86.4\n",
+ "7.0 \t\t \t \t4.05 \t \t \t94.1\n",
+ "8.0 \t\t \t \t3.25 \t \t \t96.3\n",
+ "9.0 \t\t \t \t2.88 \t \t \t97.7\n",
+ "10.0 \t\t \t \t2.58 \t \t \t99.0\n",
+ "11.0 \t\t \t \t2.48 \t \t \t100.0\n",
+ "12.0 \t\t \t \t2.47 \t \t \t102.9\n",
+ "13.0 \t\t \t \t2.42 \t \t \t104.6\n",
+ "14.0 \t\t \t \t2.18 \t \t \t107.9\n",
+ "15.0 \t\t \t \t1.73 \t \t \t113.5\n",
+ "\n",
+ "\n",
+ "Page: 452\n",
+ "\n",
+ "\n",
+ "*****************Composition By Thiele Geddes Method*****************\n",
+ "\n",
+ "Component\t \t \t y2\n",
+ "\n",
+ "C 0 \t \t \t \t0.0419\n",
+ "C 1 \t \t \t \t0.1059\n",
+ "C 2 \t \t \t \t0.2675\n",
+ "C 3 \t \t \t \t0.4939\n",
+ "C 4 \t \t \t \t0.0896\n",
+ "C 5 \t \t \t \t0.00106\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter9_1.ipynb b/Mass_-_Transfer_Operations/Chapter9_1.ipynb
new file mode 100755
index 00000000..6ae47958
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter9_1.ipynb
@@ -0,0 +1,2154 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1356f02f4e266983d4e000fdec653dca9388627dd3d49506786471d71b9d02b6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Distillation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1: Page 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.1\n",
+ "# Page: 349\n",
+ "\n",
+ "print'Illustration 9.1 - Page: 349\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "#****Data****#\n",
+ "# a:n-heptane b:n-octane\n",
+ "Pt = 760; # [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "Tempa = 98.4;# [boiling point of A,OC]\n",
+ "Tempb = 125.6;# [boiling point of B,OC]\n",
+ "x = numpy.zeros(6);\n",
+ "y_star = numpy.zeros(6);\n",
+ "alpha = numpy.zeros(6);\n",
+ "# Data = [Temp Pa (mm Hg) Pb(mm Hg)]\n",
+ "Data = [(98.4, 760.0, 333.0),(105.0 ,940.0, 417.0),(110.0, 1050.0, 484.0),(115.0, 1200.0, 561.0),(120.0, 1350.0, 650.0),(125.6 ,1540.0, 760.0)];\n",
+ "for i in range(0,6): \n",
+ " x[i] = (Pt-Data[i][2])/(Data[i][1]-Data[i][2]);# [mole fraction of heptane in liquid]\n",
+ " y_star[i] = (Data[i][1]/Pt)*x[i];\n",
+ " alpha[i] = Data[i][1]/Data[i][2];\n",
+ "\n",
+ "print\"\\t\\t T(OC)\\t\\t\\t\\t Pa(mm Hg)\\t\\t\\t\\t\\t\\t\\t Pb(mm Hg)\\t\\t\\t\\t\\t\\t\\t\\t x\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t y*\\t\\t\\t\\t\\t\\t\\t\\t\\t alpha\\n\"\n",
+ "for i in range(0,6):\n",
+ " print \"\\t \\t \",Data[i][0],\"\\t \\t \\t \\t\",Data[i][1],\"\\t \\t \\t \\t\",Data[i][2],\"\\t \\t \\t \\t \",round(x[i],3),\"\\t \\t \\t \\t \",round(y_star[i],3),\"\\t\\t\\t\\t\\t\\t\\t\\t\",round(alpha[i],2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.1 - Page: 349\n",
+ "\n",
+ "\n",
+ "\t\t T(OC)\t\t\t\t Pa(mm Hg)\t\t\t\t\t\t\t Pb(mm Hg)\t\t\t\t\t\t\t\t x\t\t\t\t\t\t\t\t\t\t\t y*\t\t\t\t\t\t\t\t\t alpha\n",
+ "\n",
+ "\t \t 98.4 \t \t \t \t760.0 \t \t \t \t333.0 \t \t \t \t 1.0 \t \t \t \t 1.0 \t\t\t\t\t\t\t\t2.28\n",
+ "\t \t 105.0 \t \t \t \t940.0 \t \t \t \t417.0 \t \t \t \t 0.656 \t \t \t \t 0.811 \t\t\t\t\t\t\t\t2.25\n",
+ "\t \t 110.0 \t \t \t \t1050.0 \t \t \t \t484.0 \t \t \t \t 0.488 \t \t \t \t 0.674 \t\t\t\t\t\t\t\t2.17\n",
+ "\t \t 115.0 \t \t \t \t1200.0 \t \t \t \t561.0 \t \t \t \t 0.311 \t \t \t \t 0.492 \t\t\t\t\t\t\t\t2.14\n",
+ "\t \t 120.0 \t \t \t \t1350.0 \t \t \t \t650.0 \t \t \t \t 0.157 \t \t \t \t 0.279 \t\t\t\t\t\t\t\t2.08\n",
+ "\t \t 125.6 \t \t \t \t1540.0 \t \t \t \t760.0 \t \t \t \t 0.0 \t \t \t \t 0.0 \t\t\t\t\t\t\t\t2.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2: Page 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.2\n",
+ "# Page: 354\n",
+ "\n",
+ "print'Illustration 9.2 - Page: 354\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:ethylaniline\n",
+ "Pt = 760.0; # [mm Hg]\n",
+ "ma1 = 50.0;# [g]\n",
+ "mb1 = 50.0;# [g]\n",
+ "#*******#\n",
+ "\n",
+ "# Data = [Temp Pa(mm Hg) Pb(mm Hg)]\n",
+ "Data = [(38.5, 51.1 ,1.0),(64.4 ,199.7, 5.0),(80.6 ,363.9 ,10.0),(96.0, 657.6, 20.0),(99.15 ,737.2 ,22.8),(113.2, 1225.0, 40.0)];\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Mb = 121.1;# [kg/kmol]\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " p = Data[i][1]+Data[i][2];\n",
+ " if p==Pt:\n",
+ " pa = Data[4][1];# [mm Hg]\n",
+ " pb = Data[i][2];# [mm Hg]\n",
+ " T = Data[i][0];# [OC]\n",
+ " \n",
+ "\n",
+ "ya_star = pa/Pt;\n",
+ "yb_star = pb/Pt;\n",
+ "ya1 = ma1/Ma;# [g mol water]\n",
+ "yb1 = mb1/Mb;# [g mol ethylalinine]\n",
+ "Y = ya1*(yb_star/ya_star);# [g mol ethylalinine]\n",
+ "print\"The original mixture contained\",round(ya1,2),\"g mol water and \",round(yb1,2),\" g mol ethylanaline\\n\"\n",
+ "print\"The mixture will continue to boil at \",T,\" degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with \",round(Y,3),\"g mol ethylaniline\\n\"\n",
+ "print\"The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.2 - Page: 354\n",
+ "\n",
+ "\n",
+ "The original mixture contained 2.77 g mol water and 0.41 g mol ethylanaline\n",
+ "\n",
+ "The mixture will continue to boil at 99.15 degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with 0.086 g mol ethylaniline\n",
+ "\n",
+ "The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3: Page 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.3\n",
+ "# Page: 362\n",
+ "\n",
+ "print'Illustration 9.3 - Page: 362\\n\\n'\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:n-C3H8 b:n-C4H10 c:n-C5H12 d:n-C6H14\n",
+ "# Bubble Point Calculation\n",
+ "xa = 0.05;\n",
+ "xb = 0.30;\n",
+ "xc = 0.40;\n",
+ "xd = 0.25;\n",
+ "P = 350;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "# Assume:\n",
+ "Temp = 60;# [OC]\n",
+ "x = [0.05, 0.30, 0.40, 0.25];\n",
+ "m = [4.70, 1.70 ,0.62 ,0.25];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_x = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "# From Eqn. 9.23:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.8;# [OC]\n",
+ "m = [4.60, 1.60, 0.588, 0.235];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.7;# [OC]\n",
+ "Bt = 56.8;# [OC]\n",
+ "yi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " yi[i] = alpha_x[i]/Sum;\n",
+ "\n",
+ "print\"The Bubble Point is \",Bt,\" degree C\\n\"\n",
+ "print\"Bubble point vapour composition \\n\"\n",
+ "print\"\\t yi\\n\";\n",
+ "print\"\\n n-C3\\t \",round(yi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(yi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(yi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(yi[3],3)\n",
+ "\n",
+ "print\"\\n \\n \\n\"\n",
+ "\n",
+ "# Dew Point Calculation\n",
+ "# Asume:\n",
+ "ya = 0.05;\n",
+ "yb = 0.30;\n",
+ "yc = 0.40;\n",
+ "yd = 0.25;\n",
+ "Temp = 80;# [OC]\n",
+ "y = [0.05, 0.30 ,0.40, 0.25];\n",
+ "m = [6.30 ,2.50 ,0.96 ,0.43];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_y = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "\n",
+ "# From Eqn. 9.29:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 83.7;# [OC]\n",
+ "m = [6.60, 2.70, 1.08, 0.47];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1.0/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 84.0;# [OC]\n",
+ "Dt = 84.0;# [OC]\n",
+ "xi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " xi[i] = alpha_y[i]/Sum;\n",
+ "\n",
+ "print\"The Dew Point is \",Dt,\" degree C\\n\"\n",
+ "print\"Dew point liquid composition \\n\"\n",
+ "print\"\\t xi\\n\"\n",
+ "print\"\\n n-C3\\t \",round(xi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(xi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(xi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(xi[3],3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.3 - Page: 362\n",
+ "\n",
+ "\n",
+ "The Bubble Point is 56.8 degree C\n",
+ "\n",
+ "Bubble point vapour composition \n",
+ "\n",
+ "\t yi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.229\n",
+ "\n",
+ " n-C4\t 0.478\n",
+ "\n",
+ " n-C5\t 0.234\n",
+ "\n",
+ " n-C6\t 0.059\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "The Dew Point is 84.0 degree C\n",
+ "\n",
+ "Dew point liquid composition \n",
+ "\n",
+ "\t xi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.007\n",
+ "\n",
+ " n-C4\t 0.109\n",
+ "\n",
+ " n-C5\t 0.363\n",
+ "\n",
+ " n-C6\t 0.521\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4: Page 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.4\n",
+ "# Page: 365\n",
+ "\n",
+ "print'Illustration 9.4 - Page: 365\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "zF = 0.5;\n",
+ "D = 60.0;# [mol]\n",
+ "W = 40.0;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 9.1, Equilibrium data:\n",
+ "Data = numpy.array([[1.0 ,1.0],[0.655, 0.810],[0.487 ,0.674],[0.312, 0.492],[0.1571 ,0.279],[0, 0]]);\n",
+ "Feed = numpy.array([[0 ,0],[1.0 ,1.0]]);\n",
+ "# The operating line is drawn with a slope -(W/D) to cut the equilibrium line.\n",
+ "def f44(x):\n",
+ " return -((W/D)*(x-zF))+zF\n",
+ "x = numpy.arange(0.2,0.7,0.1);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium Line\")\n",
+ "plt.plot(Feed[:,0],Feed[:,1],label=\"Feed Line\")\n",
+ "plt.plot(x,f44(x),label=\"Operating Line\");\n",
+ "plt.grid('on')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Mole fraction of heptane in liquid\")\n",
+ "ax.set_ylabel(\"Mole fraction of heptane in vapour\")\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.show()\n",
+ "# The point at which the operating line cuts the equilibrium line has the following composition* temparature:\n",
+ "yd = 0.575;# [mole fraction heptane in vapour phase]\n",
+ "xW = 0.387;# [mole fraction heptane in liquid phase]\n",
+ "Temp = 113;# [OC]\n",
+ "print\"mole fraction of heptane in vapour phase \",yd\n",
+ "print\"mole fraction of heptane in liquid phase \",xW\n",
+ "print\"Temperature is \",Temp,\" degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.4 - Page: 365\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ndu0iIyOD0aNH07VrVypXrsxRRx3F66+/ztq1a5k4cSLgympeeuml9O7dm1q1atG2bVuWLFlScJ+S\nymrmX9uvXz9q167Nyy+/zIIFC+jQoQN169blyCOP5JZbbikwQvk1FFq3bk3NmjWZMmUKmZmZRWo6\npKWlMXLkSFq3bk2dOnXo3bt3kYysjz/+eEFJ0hdeeOF3IxAvrF27lkqVKhWUM01PT2fo0KF07tyZ\nWrVqcd5557Ft27aC9vPnz6djx47UrVuXNm3a8OGHMcsyVDplqe4T640yVnCbPdtVYVu5svS25amq\nZhjRpqy/eb95//339aCDDtLc3NzffTZgwADt06ePqrrqaQcffLC+8cYbmpOToyNGjNBmzZppTk6O\n5ubm6sknn6wPPfSQZmdn65o1a7R58+Y6a9asItdOmzZNVVV/++03XbRokX7xxReam5ura9eu1eOO\nO05HjRpV0LeI6OrVqwuO582bp40bNy44TktL01NPPVU3b96s27dv1+OOO06fffbZgu90xBFH6NKl\nS3Xv3r165ZVXaqVKlYrcL5j09PRiq8t9//33KiIFujnzzDO1RYsWunLlSv3tt980PT1dhwwZoqqq\nGzZs0MMOO0zfD5SInDNnjh522GH6888/e/yfKEq43wtlrOCWsiOGZctcmovXX4cWLUpua6MEI+kQ\nic4WIVu3bqVevXrFFuM54ogj2Lp1a8Fxu3bt6NGjB5UrV2bQoEHs27ePzz//nAULFrB161buu+8+\nDjroIJo1a8a1117L5MmTC67t2LEjF17oEjhXq1aNk08+mfbt21OpUiWOOuoorr/++ojfsG+99VaO\nOOII6tatywUXXEBWVhYAr7/+OldffTXHHXcc1atX54EHHoiKW0pEuOqqq2jRogXVqlWjV69eBX1O\nnDiR7t270y1QIrJLly60a9eO9957r9z9RoOUnK76889u5tHjj0NJlfqScfVyKqeajpQKrYs4zXyp\nV68eW7duJS8v73fGYfPmzdSvX7/gOLhcp4jQuHFjNm3ahIiUWlYztNTnihUrGDRoEIsWLWLv3r3k\n5OTQrl27iGQ/ImjhUvXq1dm8eXOB3O3btw/bd3kI7XPPnj2AK3U6ZcoUpk+fXvB5Tk5OkXKp8STl\nRgz797u1Cr16wcCB4dvZKMEwIqdDhw5UrVqVN954o8j5PXv2MHPmTM4555yCc8HlOfPy8tiwYQON\n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\nzM+VsnViXQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f17518>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of heptane in vapour phase 0.575\n",
+ "mole fraction of heptane in liquid phase 0.387\n",
+ "Temperature is 113 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5: Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.5\n",
+ "# Page: 366\n",
+ "\n",
+ "print'Illustration 9.5 - Page: 366\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "#****Data****#\n",
+ "Pt = 760.0;# [mm Hg]\n",
+ "zFa = 0.5;# [mol fraction benzene]\n",
+ "zFb = 0.25;# [mol fraction toulene]\n",
+ "zFc = 0.25;# [mol fraction o-xylene]\n",
+ "#********#\n",
+ "\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "# For Summtion of Yd_star to be unity, W/D = 2.08 \n",
+ "# The Eqn.are \n",
+ "# (1): W+D = F \n",
+ "# (2): W-2.08D = 0\n",
+ "a =numpy.array([[1.0 ,1.0],[1.0 ,-2.08]]);\n",
+ "b = numpy.array([[F*1.0],[0]]);\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "D = soln[1];\n",
+ "Sub = ['A','B','C'];\n",
+ "p =numpy.array([1370 ,550, 200]);# [mm Hg]\n",
+ "m = numpy.zeros(3);\n",
+ "zF = [zFa ,zFb, zFc];# [Given]\n",
+ "yd_star = numpy.array([0,0,0]);\n",
+ "xW = numpy.zeros(3);\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " m[i] = p[i]/Pt;\n",
+ " yd_star[i]=(zF[i])*((W/D)+1)#/(1+(W/(D*m[i])));\n",
+ " xW[i] = yd_star[i]/m[i];\n",
+ "\n",
+ "print\"\\t \\t \\t \\t \\t \\t \\t \\t At W/D = 2.08\\n\\n\\n\"\n",
+ "print\"Substance \\t \\t p(mm Hg)\\t \\t m\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t zF\\t \\t \\t \\t \\t \\t \\t yd*\\t\\t\\t\\t\\t\\txW\\n\"\n",
+ "for i in range(0,3):\n",
+ " print \"\\n\",Sub[i],\" \\t \\t \\t \\t \",p[i],\"\\t \\t \\t \\t \",m[i],\"\\t \\t \\t\",m[i],\"\\t \\t \\t\",zF[i],\" \\t \\t \\t\",yd_star[i],\"\\t\",xW[i]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.5 - Page: 366\n",
+ "\n",
+ "\n",
+ "\t \t \t \t \t \t \t \t At W/D = 2.08\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Substance \t \t p(mm Hg)\t \t m\t \t \t \t \t \t \t \t \t \t zF\t \t \t \t \t \t \t yd*\t\t\t\t\t\txW\n",
+ "\n",
+ "\n",
+ "A \t \t \t \t 1370 \t \t \t \t 1.80263157895 \t \t \t1.80263157895 \t \t \t0.5 \t \t \t1 \t0.554744525547\n",
+ "\n",
+ "B \t \t \t \t 550 \t \t \t \t 0.723684210526 \t \t \t0.723684210526 \t \t \t0.25 \t \t \t0 \t0.0\n",
+ "\n",
+ "C \t \t \t \t 200 \t \t \t \t 0.263157894737 \t \t \t0.263157894737 \t \t \t0.25 \t \t \t0 \t0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6: Page 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.6\n",
+ "# Page: 370\n",
+ "\n",
+ "print'Illustration 9.6 - Page: 370\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "xF = 0.5;\n",
+ "D = 0.6*100;# [mol]\n",
+ "#******#\n",
+ "\n",
+ "W = F-D;# [mol]\n",
+ "# From Illustration 9.1:\n",
+ "alpha = 2.16;# [average value of alpha]\n",
+ "# From Eqn.9.46;\n",
+ "def f45(xW):\n",
+ " return math.log(F*xF/(W*xW))-(alpha*math.log(F*(1-xF)/(W*(1-xW))))\n",
+ "xW = fsolve(f45,0.5);# [mole fraction heptane]\n",
+ "def f46(yD):\n",
+ " return F*xF-((D*yD)+(W*xW))\n",
+ "yD = fsolve(f46,100);# [mole fraction heptane]\n",
+ "print\"Mole Fraction of heptane in the distillate is \",round(yD,3),\"\\n\"\n",
+ "print\"Mole Fraction of heptane in the residue is \",round(xW,3),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.6 - Page: 370\n",
+ "\n",
+ "\n",
+ "Mole Fraction of heptane in the distillate is 0.615 \n",
+ "\n",
+ "Mole Fraction of heptane in the residue is 0.328 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7: Page 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.7\n",
+ "# Page: 371\n",
+ "from scipy.optimize import fsolve\n",
+ "print'Illustration 9.7 - Page: 371\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:benzene b:toulene c:o-xylene\n",
+ "# Assume:\n",
+ "Bt = 100.0;#[OC]\n",
+ "pa = 1370.0;# [mm Hg]\n",
+ "pb = 550.0;# [mm Hg]\n",
+ "pc = 200.0;# [mm Hg]\n",
+ "xFa = 0.5;# [mole fraction]\n",
+ "xFb = 0.25;# [mole fraction]\n",
+ "xFc = 0.25;# [mole fraction]\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "D = 32.5;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "ref = pb;\n",
+ "alpha_a = pa/ref;\n",
+ "alpha_b = pb/ref;\n",
+ "alpha_c = pc/ref;\n",
+ "W = F-D;# [mol]\n",
+ "xbW = 0.3;# [mol]\n",
+ "xaW = 0.4;# [mol]\n",
+ "xcW = 0.3;# [mol]\n",
+ "err = 1.0;\n",
+ "while(err>(10**(-1))):\n",
+ " # From Eqn. 9.47:\n",
+ " def f47(xaW):\n",
+ " return math.log(F*xFa/(W*xaW))-(alpha_a*math.log(F*xFb/(W*xbW)))\n",
+ " xaW = fsolve(f47,xbW);\n",
+ " def f48(xcW):\n",
+ " return math.log(F*xFc/(W*xcW))-(alpha_c*math.log(F*xFb/(W*xbW)))\n",
+ " xcW = fsolve(f48,xbW);\n",
+ " xbW_n = 1-(xaW+xcW);\n",
+ " err = abs(xbW-xbW_n);\n",
+ " xbw = xbW_n;\n",
+ "\n",
+ "# Material balance:\n",
+ "# for A:\n",
+ "def f49(yaD):\n",
+ " return F*xFa-((D*yaD)+(W*xaW))\n",
+ "yaD = fsolve(f49,100);# [mole fraction benzene]\n",
+ "# For B:\n",
+ "def f50(ybD):\n",
+ " return F*xFb-((D*ybD)+(W*xbW))\n",
+ "ybD = fsolve(f50,100);# [mole fraction toulene]\n",
+ "# For C:\n",
+ "def f51(ycD):\n",
+ " return F*xFc-((D*ycD)+(W*xcW))\n",
+ "ycD = fsolve(f51,100);# [mole fraction o-xylene]\n",
+ "print\"The residual compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(xaW,3)\n",
+ "print\"Toulene:\\n\",round(xbW,3)\n",
+ "print\"o-xylene:\\n\",round(xcW,3)\n",
+ "print\"\\n The composited distillate compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(yaD,3)\n",
+ "print\"Toulene:\\n\",round(ybD,3)\n",
+ "print\"o-xylene:\\n\",round(ycD,3)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.7 - Page: 371\n",
+ "\n",
+ "\n",
+ "The residual compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.438\n",
+ "Toulene:\n",
+ "0.3\n",
+ "o-xylene:\n",
+ "0.343\n",
+ "\n",
+ " The composited distillate compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.628\n",
+ "Toulene:\n",
+ "0.146\n",
+ "o-xylene:\n",
+ "0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8: Page 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.8\n",
+ "# Page: 388\n",
+ "\n",
+ "print'Illustration 9.8 - Page: 388\\n\\n'\n",
+ "import numpy.linalg as lin\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a:methanol b:water\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr]\n",
+ "#******#\n",
+ "\n",
+ "#(a)\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Xb = 1-Xa;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr];\n",
+ "# Basis: 1hr\n",
+ "F = (F1*Xa/Ma)+(F1*Xb/Mb);# [kmol/hr]\n",
+ "# For feed:\n",
+ "zF = (F1*Xa/Ma)/F;# [mole fracton methanol]\n",
+ "MavF = F1/F;# [kg/kmol]\n",
+ "# For distillate:\n",
+ "xD = (95/Ma)/((95/Ma)+(5/Mb));# [mole fraction methanol]\n",
+ "MavD = 100.0/((95/Ma)+(5/Mb));# [kg/kmol]\n",
+ "# For residue:\n",
+ "xW = (1/Ma)/((1/Ma)+(99/Mb));# [mole fraction methanol]\n",
+ "MavR = 100/((1/Ma)+(99/Mb));# [kg/kmol]\n",
+ "# (1): D+W = F [Eqn.9.75]\n",
+ "# (2): D*xD+W*xW = F*zF [Eqn. 9.76]\n",
+ "# Solvving simultaneously:\n",
+ "a = numpy.array([[1.0 ,1.0],[xD ,xW]]);\n",
+ "b = numpy.array([F,F*zF]);\n",
+ "soln = lin.solve(a,b);\n",
+ "D = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "print\"Quantity of Distillate is\", round(D*MavD),\" kg/hr\\n\"\n",
+ "print\"Quantity of Residue is \",round(W*MavR),\" kg/hr\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (b)\n",
+ "# For the vapour-liquid equilibria:\n",
+ "Tempo = 19.69;# [Base Temp. according to \"International Critical Tables\"]\n",
+ "BtR = 99.0;# [Bubble point of the residue, OC]\n",
+ "hR = 4179.0;# [J/kg K]\n",
+ "hF = 3852.0;# [J/kg K]\n",
+ "def f52(tF):\n",
+ " return (F1*hF*(tF-Temp1))-((W*MavR)*hR*(BtR-Temp2))\n",
+ "tF = fsolve(f52,Temp1);# [OC]\n",
+ "BtF = 76.0;# [Bubble point of feed, OC]\n",
+ "# For the feed:\n",
+ "delta_Hs = -902.5;# [kJ/kmol]\n",
+ "Hf = ((hF/1000.0)*MavF*(tF-Tempo))+delta_Hs;# [kJ/kmol]\n",
+ "# From Fig 9.27:\n",
+ "HD = 6000.0;# [kJ/kmol]\n",
+ "HLo = 3640.0;# [kJ/kmol]\n",
+ "HW = 6000.0;# [kJ/kmol]\n",
+ "print\"The enthalpy of feed is \",round(Hf),\" kJ/kmol\\n\"\n",
+ "print\"The enthalpy of the residue is \",round(HW),\" kJ/kmol\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (c)\n",
+ "# From Fig.9.27:\n",
+ "# The miium reflux ratio is established by the tie line (x = 0.37 y = 0.71), which extended pass through F,the feed.\n",
+ "# At Dm:\n",
+ "Qm = 62570.0;# [kJ/kmol]\n",
+ "Hg1 = 38610.0;# [kJ/kmol]\n",
+ "# From Eqn. 9.65:\n",
+ "Rm = (Qm-Hg1)/(Hg1-HLo);\n",
+ "print\"The minimum reflux ratio is \",round(Rm,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (d)\n",
+ "# From Fig. 9.28:\n",
+ "Np = 4.9;\n",
+ "# But it include the reboiler.\n",
+ "Nm = Np-1;\n",
+ "print\"The minimum number of theoretical trays required is \",round(Nm),\" \\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (e)\n",
+ "R = 1.5*Rm;\n",
+ "# Eqn. 9.65:\n",
+ "def f53(Q_prime):\n",
+ " return R-((Q_prime-Hg1)/(Hg1-HLo))\n",
+ "Q_prime = fsolve(f53,2);# [kJ/kmol]\n",
+ "def f54(Qc):\n",
+ " return Q_prime-(HD+(Qc/D))\n",
+ "Qc = fsolve(f54,2);# [kJ/hr]\n",
+ "Qc = Qc/3600.0;# [kW]\n",
+ "print\"The Condensor heat load is \",round(Qc),\" kW\\n\"\n",
+ "# From Eqn. 9.77:\n",
+ "def f55(Q_dprime):\n",
+ " return (F*Hf)-((D*Q_prime)+(W*Q_dprime))\n",
+ "Q_dprime = fsolve(f55,2);\n",
+ "def f56(Qb):\n",
+ " return Q_dprime-(HW-(Qb/W))\n",
+ "Qb = fsolve(f56,2);# [kJ/hr]\n",
+ "Qb = Qb/3600.0;# [kW]\n",
+ "print\"The Reboiler heat load is \",round(Qb),\" kW\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (f)\n",
+ "# From Fig: 9.28\n",
+ "Np = 9.0;\n",
+ "# But it is including the reboiler\n",
+ "print\"No. of theoretical trays in tower is\",Np-1,\"\\n\",\n",
+ "G1 = D*(R+1);# [kmol/hr]\n",
+ "Lo = D*R;# [kmol/hr]\n",
+ "# From Fig. 9.28:\n",
+ "# At the feed tray:\n",
+ "x4 = 0.415;\n",
+ "y5 = 0.676;\n",
+ "x5 = 0.318;\n",
+ "y6 = 0.554;\n",
+ "# From Eqn. 9.64:\n",
+ "def f57(L4):\n",
+ " return (L4/D)-((xD-y5)/(y5-x4))\n",
+ "L4 = fsolve(f57,2);# [kmol/hr]\n",
+ "# From Eqn. 9.62:\n",
+ "def f58(G5):\n",
+ " return (L4/G5)-((xD-y5)/(xD-x4))\n",
+ "G5 = fsolve(f58,2);# [kmol/hr]\n",
+ "# From Eqn. 9.74:\n",
+ "def f59(L5_bar):\n",
+ " return (L5_bar/W)-((y6-xW)/(y6-x5))\n",
+ "L5_bar = fsolve(f59,2);# [kmol/hr]\n",
+ "# From Eqn. 9.72:\n",
+ "def f60(G6_bar):\n",
+ " return (L5_bar/G6_bar)-((y6-xW)/(x5-xW))\n",
+ "G6_bar = fsolve(f60,2);# [kmol/hr]\n",
+ "# At the bottom:\n",
+ "# Material Balance:\n",
+ "# Eqn. 9.66:\n",
+ "# (1): L8_bar-GW_bar = W;\n",
+ "# From Fig. 9.28:\n",
+ "yW = 0.035;\n",
+ "x8 = 0.02;\n",
+ "# From Eqn. 9.72:\n",
+ "L8ByGW_bar = (yW-xW)/(x8-xW);\n",
+ "# (2): L8_bar-(L8ByGW_bar*Gw_bar) = 0\n",
+ "a = numpy.array([[1 ,-1],[1 ,-L8ByGW_bar]]);\n",
+ "b = numpy.array([W,0]);\n",
+ "soln = lin.solve(a,b)\n",
+ "L8_bar = soln[0];# [kmol/h]\n",
+ "GW_bar = soln[1];# [kmol/h]\n",
+ "print\"The Liquid quantity inside the tower is \",round(L8_bar),\" kmol/hr\\n\"\n",
+ "print\"The vapour quantity inside the tower is \",round(GW_bar),\" kmol/hr\\n\"\n",
+ "# The answers are slightly different in textbook due to approximation while in python the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.8 - Page: 388\n",
+ "\n",
+ "\n",
+ "Quantity of Distillate is 2606.0 kg/hr\n",
+ "\n",
+ "Quantity of Residue is 2394.0 kg/hr\n",
+ "\n",
+ "\n",
+ "\n",
+ "The enthalpy of feed is 2545.0 kJ/kmol\n",
+ "\n",
+ "The enthalpy of the residue is 6000.0 kJ/kmol\n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum reflux ratio is 0.6852 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum number of theoretical trays required is 4.0 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The Condensor heat load is 1609.0 kW\n",
+ "\n",
+ "The Reboiler heat load is 1817.0 kW\n",
+ "\n",
+ "\n",
+ "\n",
+ "No. of theoretical trays in tower is 8.0 \n",
+ "The Liquid quantity inside the tower is 259.0 kmol/hr\n",
+ "\n",
+ "The vapour quantity inside the tower is 127.0 kmol/hr\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9: Page 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.9\n",
+ "# Page: 395\n",
+ "\n",
+ "print'Illustration 9.9 - Page: 395\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import scipy\n",
+ "import numpy\n",
+ "import numpy.linalg as lin\n",
+ "\n",
+ "#****Data****#\n",
+ "P = 695.0;# [kN/square m]\n",
+ "#********#\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# From Illustration 9.8:\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "HF = 2533;# [kJ/kmol]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "zD = 0.915;# [mole fraction methanol]\n",
+ "HD = 3640.0;# [kJ/kmol]\n",
+ "Qc = 5990000.0;# [kJ/h]\n",
+ "# Since the bottom will essentially be pure water:\n",
+ "HW = 6094.0;# [kJ/kmol]\n",
+ "# From Steam tables:\n",
+ "Hs = 2699.0;# [enthalpy of saturated steam, kJ/kg]\n",
+ "hW = 4.2*(Tempo-0);# [enthalpy of water, kJ/kg]\n",
+ "HgNpPlus1 = (Hs-hW)*Mb;# [kJ/kmol]\n",
+ "# (1): GNpPlus1-W = D-F [From Eqn. 9.86]\n",
+ "# (2): (GNpPlus1*HgNpPlus1)-(W*HW) = (D*HD)+Qc-(F*HF) [From Eqn. 9.88]\n",
+ "a = numpy.array([[1 ,-1],[HgNpPlus1 ,-HW]]);\n",
+ "b = numpy.array([[D-F],[(D*HD)+Qc-(F*HF)]]);\n",
+ "soln=lin.solve(a,b)\n",
+ "GNpPlus1 = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "# From Eqn. 9.87:\n",
+ "def f61(xW):\n",
+ " return (F*zF)-((D*zD)+(W*xW))\n",
+ "xW = fsolve(f61,2);\n",
+ "# The enthalpy of the solution at its bubble point is 6048 kJ/kmol, sufficiently closed to 6094 assumed earlier.\n",
+ "# For delta_w:\n",
+ "xdelta_w = W*xW/(W-GNpPlus1);\n",
+ "Q_dprime = ((W*HW)-(GNpPlus1*HgNpPlus1))/(W-GNpPlus1);# [kJ/kmol]\n",
+ "# From Fig 9.27 ad Fig. 9.28, and for the stripping section:\n",
+ "Np = 9.5;\n",
+ "print\"Steam Rate: \",round(GNpPlus1,1),\"kmol/h\\n\"\n",
+ "print\"Bottom Composition: xW:\",round(xW,5),\"\\n\"\n",
+ "print\"Number of theoretical stages: \",Np,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.9 - Page: 395\n",
+ "\n",
+ "\n",
+ "Steam Rate: 159.7 kmol/h\n",
+ "\n",
+ "Bottom Composition: xW: 0.00281 \n",
+ "\n",
+ "Number of theoretical stages: 9.5 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10: Page 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.10\n",
+ "# Page: 412\n",
+ "\n",
+ "print'Illustration 9.10 - Page: 412\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# Feed:\n",
+ "F1 = 5000;# [kg/h]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "MavF = 23.1;# [kg/kmol]\n",
+ "Tempf = 58.3;# [OC]\n",
+ "# Distillate:\n",
+ "D1 = 2620;# [kg/h]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "xD = 0.915;# [mole fraction methanol]\n",
+ "# Residue:\n",
+ "R1 = 2380;# [kg/h]\n",
+ "R = 132.4;# [kmol/h]\n",
+ "xW = 0.00565;# [mole fraction methanol]\n",
+ "\n",
+ "# From Fig. 9.42 (Pg 413):\n",
+ "BtF = 76.0;# [Bubble point if the feed, OC]\n",
+ "DtF = 89.7;# [Dew point of the feed, OC]\n",
+ "# Latent heat of vaporisation at 76 OC\n",
+ "lambda_a = 1046.7;# [kJ/kg]\n",
+ "lambda_b = 2284;# [kJ/kg]\n",
+ "ha = 2.721;# [kJ/kg K]\n",
+ "hb = 4.187;# [kJ/kg K]\n",
+ "hF = 3.852;# [kJ/kg K]\n",
+ "# If heats of solution is ignaored:\n",
+ "# Enthalpy of the feed at the bubble point referred to the feed temp.\n",
+ "HF = hF*MavF*(BtF-Tempf);# [kJ/kmol]\n",
+ "# enthalpy of the saturated vapour at dew point referred to the liquid at feed temp.\n",
+ "HL = (zF*((ha*Ma*(DtF-Tempf))+(lambda_a*Ma)))+((1-zF)*((hb*Mb*(DtF-Tempf))+(lambda_b*Mb)));# [kJ/kmol]\n",
+ "q = HL/(HL-HF);\n",
+ "slope = q/(q-1);\n",
+ "# In fig. 9.42: xD,xW & zF are located on the 45 degree diagonal & the q line is drawn with slope = 'slope' .\n",
+ "# The operating line for minimum reflux ratio in this case pass through the intersection of the q line and the equilibrium curve.\n",
+ "ordinate = 0.57;\n",
+ "def f62(Rm):\n",
+ " return ordinate-(xD/(Rm+1))\n",
+ "Rm = fsolve(f62,0);# [mole reflux/mole distillate]\n",
+ "# from fig. 9.42 (Pg 413):\n",
+ "# The minimum number of theoretical trays is determied using the 45 degree diagonal as operating line.\n",
+ "Np = 4.9;# [including the reboiler]\n",
+ "R = 1.5*Rm;# [mole reflux/mole distillate]\n",
+ "# From Eqn. 9.49:\n",
+ "L = R*D;# [kmol/h]\n",
+ "# From Eqn. 9.115:\n",
+ "G = D*(R+1);# [kmol/h]\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = (q*F)+L;# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = (F*(q-1))+G;# [kmol/h]\n",
+ "ordinateN = xD/(R+1);\n",
+ "# As in Fig. 9.43:\n",
+ "# The y-intercept = ordinateN and enriching and exhausting operating lines are plotted.\n",
+ "# Number of theoretical stages are determined.\n",
+ "NpN = 8.8;# [including the reboiler]\n",
+ "print\"Number of theoretical stages is \",NpN-1,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.10 - Page: 412\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages is 7.8 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11: Page 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.11\n",
+ "# Page: 423\n",
+ "\n",
+ "print'Illustration 9.11 - Page: 423\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# a:ethanol b:water\n",
+ "zF = 0.3;\n",
+ "xa = 0.3;# [mole fraction of ethanol]\n",
+ "Temp = 78.2;# [OC]\n",
+ "Ao = 0.0462;# [Area of perforations,square m]\n",
+ "t = 0.450;# [m]\n",
+ "#******#\n",
+ "\n",
+ "Ma = 46.05;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "xb = 1-xa;# [mole fraction of water]\n",
+ "ma = 0.3*Ma/((0.3*Ma)+(xb*Mb));# [mass fraction of ethanol]\n",
+ "mb = 1-ma;# [mass fraction of water]\n",
+ "\n",
+ "\n",
+ "# Feed:\n",
+ "F1 = 910.0;# [kg/h]\n",
+ "Xa = F1*ma/Ma;# [moles of ethanol]\n",
+ "Xb = F1*mb/Mb;# [moles of water]\n",
+ "F = Xa+Xb;# [Total moles]\n",
+ "# Distillate:\n",
+ "xD = 0.80;# [mole fraction of ethanol]\n",
+ "# If essentially all the ethanol is removed from the residue:\n",
+ "D = Xa/xD;# [kmol/h]\n",
+ "MavD = (xD*Ma)+((1-xD)*Mb);# [kg/kmol]\n",
+ "D1 = D*MavD;# [kg/h]\n",
+ "Density_G = (MavD/22.41)*(273.0/(273+Temp));# [kg/cubic meter]\n",
+ "Density_L = 744.9;# [kg/cubic meter]\n",
+ "sigma = 0.021;# [N/m]\n",
+ "\n",
+ "# From Table 6.2,Pg 169:\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "At = math.pi*(0.760**2)/4;# [Tower cross sectional Area, square m]\n",
+ "WByT = 530.0/760;# [Table 6.1, Pg 162]\n",
+ "Ad = 0.0808*At;# [Downspout area,square m]\n",
+ "Aa = At-(2*Ad);# [Active area,square m]\n",
+ "# abcissa = (L/G)*(density_G/Density_L)^0.5\n",
+ "# Assume:\n",
+ "abcissa = 0.1;\n",
+ "# From Eqn.6.30:\n",
+ "Cf = (alpha*math.log10(1/abcissa)+beeta)*(sigma/0.020)**0.2;\n",
+ "# From Eqn. 6.29:\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "An = At-Ad;# [square m]\n",
+ "R = 3.0;# [Reflux Ratio]\n",
+ "G = D*(R+1);\n",
+ "G1 = (G*22.41/3600)*((273.0+Temp)/273);# [cubic meter/s]\n",
+ "V = G1/An;# [Vapour velocity,m/s]\n",
+ "percent = (V/Vf)*100;\n",
+ "# Vapour velocity is 58 percent of flooding velocity (amply safe)\n",
+ "L = R*D;# [kmol/h]\n",
+ "L1 = L*MavD;# [kg/h]\n",
+ "abcissa = (L1/(G1*3600.0*Density_G))*(Density_G/Density_L)**0.5;\n",
+ "# Since the value of abcissa is less than0.1, the calculaed value of Cf is correct.\n",
+ "# Since the feed is at the buubble point.\n",
+ "q = 1;\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = L+(q*F);# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = G+F*(q-1);# [kmol/h]\n",
+ "# The enthalpy of saturated steam,referred to 0 OC,69 kN/square m:\n",
+ "HGNpPlus1 = 2699.0;# [kN m/kg]\n",
+ "# This will be the enthalpy as it enters the tower if expanded adiabatically to the tower pressure\n",
+ "# The enthalpy of steam at 1 std. atm:\n",
+ "HGsat = 2676.0;# [kN m/kg]\n",
+ "Lambda = 2257.0;# [kN m/kg]\n",
+ "# From Eqn. 9.140:\n",
+ "def f63(GNpPlus1_bar):\n",
+ " return G_bar-(GNpPlus1_bar*(1+((HGNpPlus1-HGsat)*Mb/(Lambda*Mb))))\n",
+ "GNpPlus1_bar = fsolve(f63,7);\n",
+ "# From Eqn. 9.141:\n",
+ "LNp_bar = L_bar-(G_bar-GNpPlus1_bar);\n",
+ "\n",
+ "# Tray Efficiencies:\n",
+ "# Consider the situation:\n",
+ "x = 0.5;\n",
+ "y_star = 0.962;\n",
+ "Temp = 79.8;# [OC]\n",
+ "# This is in the enriching section.\n",
+ "Density_L = 791;# [kg/cubic meter]\n",
+ "Density_G = 1.253;# [kg/cubic meter]\n",
+ "# From equilibrium data:\n",
+ "m = 0.42;\n",
+ "A = L/(m*G);\n",
+ "# From chapter 2:\n",
+ "ScG = 0.930;\n",
+ "Dl = 2.065*10**(-9);# [square m/s]\n",
+ "# For L = 38.73 kmol/h\n",
+ "q = 4.36*10**(-4);# [cubic meter/s]\n",
+ "# For G = 51.64 kmol/h\n",
+ "Va = 1.046;# [m/s]\n",
+ "# From tray dimensions:\n",
+ "z = 0.647;# [m]\n",
+ "Z = 0.542;# [m]\n",
+ "hW = 0.06;# [m]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((math.exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# Entrainment is neglible:\n",
+ "# Similarly for other x\n",
+ "# Value = [x Entrainment]\n",
+ "#Value = [0 0.48;0.1 .543;0.3 0.74;0.5 EMG;0.7 0.72];\n",
+ "\n",
+ "# Tray Calculation:\n",
+ "op_intercept = xD/(R+1);\n",
+ "# From Fig. 9.48:\n",
+ "# The exhausting section operating line, on this scale plot, for all practical purposes passes through the origin.\n",
+ "# The broken curve is located so that, at each concentration, vertical distances corresponding to lines BC and AC are in the ratio of EMG.\n",
+ "# This curve is used instead of equilibrium trays to locate the ideal trays.\n",
+ "# The feed tray is thirteenth.\n",
+ "x14 = 0.0150;\n",
+ "alpha = 8.95;\n",
+ "EMG = 0.48;\n",
+ "A_bar = L_bar/(alpha*G_bar);\n",
+ "# From Eqn. 8.16:\n",
+ "Eo = math.log(1+(EMG*((1/A_bar)-1)))/math.log(1/A_bar);\n",
+ "# The 6 real trays corresponds to: \n",
+ "NRp = 6*Eo;\n",
+ "xW = 0.015/((math.exp(NRp*math.log(1/A_bar))-A_bar)/(1-A_bar));# [mole fraction ethanol]\n",
+ "# This corresponds to ethanol loss of 0.5 kg/day.\n",
+ "print\"The mole fraction of ethanol in residue is\",round(xW,8)\n",
+ "print\"The Reflux ratio of \",R,\" will cause the ethanol loss of 0.5 kg/day\\n\"\n",
+ "print\"Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\\n\"\n",
+ "print\"Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.11 - Page: 423\n",
+ "\n",
+ "\n",
+ "The mole fraction of ethanol in residue is 6.28e-06\n",
+ "The Reflux ratio of 3.0 will cause the ethanol loss of 0.5 kg/day\n",
+ "\n",
+ "Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\n",
+ "\n",
+ "Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex-9.12: Pg- 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.12\n",
+ "# Page: 429\n",
+ "\n",
+ "print'Illustration 9.12 - Page: 429\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# Vapour and liquid quantities throughout the tower, as in Illustration 9.8, with the Eqn. 9.62, 9.64, 9.72, 9.74:\n",
+ "# Data = [x tL(OC) y tG(OC) Vapor(kmol/h) Vapor(kg/h) Liquid(kmol/h) Liquid(kg/h)]\n",
+ "Ma = 34.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Temp = 78.7;# [OC]\n",
+ "x = numpy.array([0.915, 0.600 ,0.370, 0.370, 0.200, 0.100, 0.02]);\n",
+ "y = numpy.array([0.915, 0.762, 0.656, 0.656, 0.360 ,0.178, 0.032]);\n",
+ "\n",
+ "plt.plot(x,y);\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"mole fraction of methanol in liquid\");\n",
+ "ax.set_ylabel(\"mole fraction of methanol in vapour\");\n",
+ "plt.title(\"Operating Line curve\");\n",
+ "plt.legend(loc=\"lower right\")\n",
+ "plt.show()\n",
+ "#x = 0.370: the dividing point between stripping and enriching section\n",
+ "tL =numpy.array([66, 71, 76, 76, 82, 87, 96.3]);# [Bubble point, OC]\n",
+ "tG = numpy.array([68.2 ,74.3 ,78.7 ,78.7 ,89.7 ,94.7 ,99.3]);# [Dew Point, OC]\n",
+ "Vapor = numpy.array([171.3, 164.0 ,160.9, 168.6, 161.6, 160.6, 127.6]);# [kmol/h]\n",
+ "Vapor1 = numpy.array([5303, 4684, 4378, 4585, 3721, 3296 ,2360]);# [kg/h]\n",
+ "Liquid = numpy.array([86.7 ,79.6 ,76.5 ,301, 294, 293, 260]);# [kmol/h]\n",
+ "Liquid1 = numpy.array([2723, 2104, 1779 ,7000, 6138, 5690 ,4767]);# [kg/h]\n",
+ "Data = numpy.zeros(shape=(7,8));\n",
+ "for j in range(1,7):\n",
+ " Data[j,0]= x[j];\n",
+ " Data[j,1]= tL[j];\n",
+ " Data[j,2]= y[j];\n",
+ " Data[j,3]= tG[j];\n",
+ " Data[j,4]= Vapor[j]; \n",
+ " Data[j,5]= Vapor1[j];\n",
+ " Data[j,6]= Liquid[j];\n",
+ " Data[j,7]= Liquid1[j];\n",
+ "\n",
+ "# The tower diameter will be set by the conditions at the top of the stripping section because of the large liquid flow at this point.\n",
+ "# From Illustration 9.8:\n",
+ "G = Data[3,5];\n",
+ "L = Data[3,7];\n",
+ "Density_G = (Data[3,5]/(22.41*Data[3,4]))*(273.0/(273+Temp));# [kg/cubic m]\n",
+ "Density_L = 905.0;# [kg/cubic m]\n",
+ "# abcissa = (L/G)*(Density_L/Density_G)^0.5\n",
+ "abcissa = (Data[3,7]/Data[3,5])*(Density_G/Density_L)**0.5;\n",
+ "# From Fig. 6.34, choose a gas pressure drop of 450 N/square m/m\n",
+ "ordinate = 0.0825;\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "Cf = 95;\n",
+ "viscosity_L = 4.5*10**(-4);# [kg/m.s]\n",
+ "sigma = 0.029;# [N/m]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscosity_L**0.1))**0.5;# [kg/square m.s]\n",
+ "A = G/(3600*G_prime);# [Tower ,cross section area,square m]\n",
+ "L_prime = L/(A*3600);# [kg/square m.s]\n",
+ "# Mass transfer will be computed for the same location:\n",
+ "# From Table 6.4 (Pg 205):\n",
+ "m = 36.4;\n",
+ "n = (0.0498*L_prime)-0.1013;\n",
+ "p = 0.274;\n",
+ "aAW = m*((808*G_prime/Density_G**0.5)**n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Table 6.5 (Pg 206):\n",
+ "dS = 0.0530;# [m]\n",
+ "beeta = 1.508*dS**0.376;\n",
+ "shi_LsW = 2.47*10**(-4)/dS**1.21;\n",
+ "shi_LtW = ((2.09*10**(-6))*(737.5*L_prime)**beeta)/dS**2;\n",
+ "shi_LOW = shi_LtW-shi_LsW; \n",
+ "shi_Ls = (0.0486*viscosity_L**0.02*sigma**0.99)/(dS**1.21*Density_L**0.37);\n",
+ "H = ((975.7*L_prime**0.57*viscosity_L**0.13)/(Density_L**0.84*((2.024*L_prime**0.430)-1)))*(sigma/0.073)**(0.1737-0.262*math.log10(L_prime));# [m]\n",
+ "shi_Lo = shi_LOW*H;\n",
+ "shi_Lt = shi_Lo+shi_Ls;\n",
+ "# From Eqn. 6.73:\n",
+ "aA = aAW*(shi_Lo/shi_LOW);# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "e = 0.71;\n",
+ "# From Eqn. 6.71:\n",
+ "eLo = e-shi_Lt;\n",
+ "# From Chapter 2:\n",
+ "ScG = 1;\n",
+ "MavG = 0.656*Ma+(1-0.656)*Mb;# [kg/kmol]\n",
+ "G = G_prime/MavG;\n",
+ "viscosity_G = 2.96*10**(-5);# [kg/m.s]\n",
+ "# From Eqn. 6.70:\n",
+ "Fg = (1.195*G/ScG**(2/3))*((dS*G_prime/(viscosity_G*(1-eLo)))**(-0.36));# [kmol/square m s (mole fraction)]\n",
+ "kY_prime = Fg;# [kmol/square m s (mole fraction)]\n",
+ "DL = 4.80*10**(-9);# [square m/s]\n",
+ "ScL = viscosity_L/(Density_L*DL);\n",
+ "# From Eqn. 6.72:\n",
+ "kL = (25.1*DL/dS)*((dS*L_prime/viscosity_L)**0.45)*ScL**0.5;# [kmol/square m s (kmol/cubic m)]\n",
+ "# At 588.33 OC\n",
+ "Density_W = 53.82;# [kg/cubic m]\n",
+ "kx_prime = Density_W*kL;# [kmol/square m s (mole fraction)]\n",
+ "# Value1 = [x G a ky_prime*10^3 kx_prime]\n",
+ "Value1 = numpy.array([[0.915 ,0.0474 ,20.18 ,1.525, 0.01055],[0.6, 0.0454 ,21.56 ,1.542, 0.00865],[0.370 ,0.0444 ,21.92 ,1.545 ,0.00776],[0.370, 0.0466 ,38, 1.640, 0.0143],[0.2 ,0.0447, 32.82 ,1.692 ,0.0149],[0.1 ,0.0443 ,31.99 ,1.766 ,0.0146],[0.02, 0.0352 ,22.25 ,1.586 ,0.0150]]);\n",
+ "# From Fig: 9.50\n",
+ "# At x = 0.2:\n",
+ "y = 0.36;\n",
+ "slope = -(Value1[4,4]/(Value1[4,3]*10**(-3)));\n",
+ "# The operating line drawn from(x,y) with slope. The point where it cuts the eqb. line gives yi.\n",
+ "# K = ky_prime*a(yi-y)\n",
+ "# For the enriching section:\n",
+ "# En = [y yi 1/K Gy]\n",
+ "En = numpy.array([[0.915 ,0.960, 634 ,0.0433],[0.85 ,0.906 ,532.8 ,0.0394],[0.8 ,0.862 ,481.1 ,0.0366],[0.70, 0.760 ,499.1, 0.0314],[0.656, 0.702, 786.9, 0.0292]]);\n",
+ "# For the Stripping section:\n",
+ "# St = [y yi 1/K Gy]\n",
+ "St = numpy.array([[0.656, 0.707, 314.7, 0.0306],[0.50, 0.639, 124.6 ,0.0225],[0.40 ,0.580, 99.6 ,0.01787],[0.3 ,0.5 ,89 ,0.0134],[0.2 ,0.390, 92.6 ,0.00888],[0.10, 0.232, 154.5, 0.00416],[0.032 ,0.091, 481 ,0.00124]])\n",
+ "# Graphical Integration, according to Eqn.9.52::\n",
+ "\n",
+ "plt.plot(En[:,3],En[:,2],'g');\n",
+ "plt.grid();\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Enriching section\");\n",
+ "plt.show()\n",
+ "# From Area under the curve:\n",
+ "Ze = 7.53;# [m]\n",
+ "# Graphical Integration:\n",
+ "\n",
+ "plt.plot(St[:,3],St[:,2],'r');\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Stripping section\");\n",
+ "plt.show()\n",
+ "\n",
+ "# From Area under the curve:\n",
+ "Zs = 4.54;# [m]\n",
+ "# Since the equlibrium curve slope varies so greatly that the use of overall mass transfer coeffecient is not recommended:\n",
+ "print\"Height of Tower for enriching Section is \",Ze,\" m\\n\"\n",
+ "print\"Height of Tower for Stripping Section is \",Zs,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.12 - Page: 429\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5ce470>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecy8r/B+9bLqWB6Di+AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7bc0518>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4zit4v8B7C9A0gfoBi8AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa7dcd30>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height of Tower for enriching Section is 7.53 m\n",
+ "\n",
+ "Height of Tower for Stripping Section is 4.54 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.13: Page 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.13:\n",
+ "\n",
+ "print'Illustration 9.13\\n\\n'\n",
+ "\n",
+ "#**************************Calculation Of Minimum Reflux ratio************************#\n",
+ "# Page: 436\n",
+ "print'Page: 436\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy.linalg as lin\n",
+ "#***Data***#\n",
+ "# C1:CH4 C2:C2H6 C3:n-C3H8 C4:n-C4H10 C5:n-C5H12 C6:n-C6H14\n",
+ "# zF = [zF(C1) zF(C2) zF(C3) zF(C4) zF(C5) zF(C6)]\n",
+ "zF = numpy.array([0.03 ,0.07 ,0.15 ,0.33 ,0.30 ,0.12]);# [mole fraction]\n",
+ "LF_By_F = 0.667;\n",
+ "Temp = 82;# [OC]\n",
+ "ylk = 0.98;\n",
+ "yhk = 0.01;\n",
+ "#**********#\n",
+ "\n",
+ "# Data = [m HG HL(30 OC);m HG HL(60 OC);m HG HL(90 OC);m HG HL(120 OC);]\n",
+ "Data1 = numpy.array([[16.1 ,12790 ,9770],[19.3 ,13910, 11160],[21.8 ,15000, 12790],[24.0 ,16240, 14370]]);# [For C1]\n",
+ "Data2 = numpy.array([[3.45, 22440, 16280],[4.90 ,24300 ,18140],[6.25 ,26240 ,19890],[8.15 ,28140, 21630]]);# [For C2]\n",
+ "Data3 = numpy.array([[1.10, 31170, 16510],[2.00 ,33000 ,20590],[2.90, 35800 ,25600],[4.00 ,39000, 30900]]);# [For C3]\n",
+ "Data4 = numpy.array([[0.35, 41200 ,20350],[0.70 ,43850 ,25120],[1.16 ,46500, 30000],[1.78 ,50400 ,35400]]);# [For C4]\n",
+ "Data5 = numpy.array([[0.085, 50500, 24200],[0.26, 54000 ,32450],[0.50 ,57800 ,35600],[0.84, 61200 ,41400]]);# [For C5]\n",
+ "Data6 = numpy.array([[0.0300, 58800 ,27700],[0.130, 63500, 34200],[0.239 ,68150 ,40900],[0.448, 72700 ,48150]]);# [For C6]\n",
+ "\n",
+ "# T = [Temparature]\n",
+ "T = numpy.array([30,60,0,120]);\n",
+ "\n",
+ "# Flash vaporisation of the Feed:\n",
+ "# Basis: 1 kmol feed throughout\n",
+ "# After Several trials, assume:\n",
+ "F = 1.0;# [kmol]\n",
+ "GF_By_F = 0.333;\n",
+ "LF_By_GF = LF_By_F/GF_By_F;\n",
+ "m82 = numpy.zeros(6);\n",
+ "y = numpy.zeros(6);\n",
+ "m82[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m82[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m82[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m82[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m82[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m82[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range (0,6):\n",
+ " y[i] = zF[i]*(LF_By_GF+1)/(1.0+(2/m82[i]));\n",
+ "\n",
+ "Sum = sum(y);\n",
+ "# Since Sum is sufficiently close to 1.0, therefore:\n",
+ "q = 0.67;# [LF_By_F]\n",
+ "# Assume:\n",
+ "# C3: light key\n",
+ "# C5: heavy key\n",
+ "zlkF = zF[2];# [mole fraction]\n",
+ "zhkF = zF[4];# [mole fraction]\n",
+ "ylkD = ylk*zF[2];# [kmol]\n",
+ "yhkD = yhk*zF[4];# [kmol]\n",
+ "\n",
+ "# Estimate average Temp to be 80 OC\n",
+ "m80 = numpy.zeros(6);\n",
+ "alpha80 = numpy.zeros(6);\n",
+ "m80[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m80[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m80[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m80[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m80[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m80[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha80[i] = m80[i]/m80[4];\n",
+ "\n",
+ "# By Eqn. 9.164:\n",
+ "yD_By_zF1 = (((alpha80[0]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[0])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C1]\n",
+ "yD_By_zF2 = (((alpha80[1]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[1])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C2]\n",
+ "yD_By_zF6 = (((alpha80[5]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[5])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C6]\n",
+ "# The distillate contains:\n",
+ "yC1 = 0.03;# [kmol C1]\n",
+ "yC2 = 0.07;# [kmol C2]\n",
+ "yC6 = 0;# [kmol C6]\n",
+ "# By Eqn 9.165:\n",
+ "def g1(phi):\n",
+ " return (((alpha80[0]*zF[0])/(alpha80[0]-phi))+((alpha80[1]*zF[1])/(alpha80[1]-phi))+((alpha80[2]*zF[2])/(alpha80[2]-phi))+((alpha80[3]*zF[3])/(alpha80[3]-phi))+((alpha80[4]*zF[4])/(alpha80[4]-phi))+((alpha80[5]*zF[5])/(alpha80[5]-phi)))-(F*(1-q))\n",
+ "# Between alphaC3 & alphaC4:\n",
+ "phi1 = fsolve(g1,3);\n",
+ "# Between alphaC4 & alphaC5:\n",
+ "phi2 = fsolve(g1,1.5);\n",
+ "# From Eqn. 9.166:\n",
+ "# Val = D*(Rm+1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi1))+(alpha80(2)*yC2/(alpha80(2)-phi1))+(alpha80(3)*ylkD/(alpha80(3)-phi1))+(alpha80(4)*yD/(alpha80(4)-phi1))+(alpha80(i)*yhkD/(alpha80(5)-phi1))+(alpha80(6)*yC6/(alpha80(6)-phi1)) = Val.....................(1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi2))+(alpha80(2)*yC2/(alpha80(2)-phi2))+(alpha80(3)*ylkD/(alpha80(3)-phi2))+(alpha80(4)*yD/(alpha80(4)-phi2))+(alpha80(i)*yhkD/(alpha80(5)-phi2))+(alpha80(6)*yC6/(alpha80(6)-phi2)) = Val ....................(2)\n",
+ "# Solving simultaneously:\n",
+ "a =numpy.array([[-alpha80[3]/(alpha80[3]-phi1), 1],[-alpha80[3]/(alpha80[3]-phi2), 1]]);\n",
+ "b =numpy.array([[alpha80[0]*yC1/[alpha80[0]-phi1]]+[alpha80[1]*yC2/[alpha80[1]-phi1]]+[alpha80[2]*ylkD/[alpha80[2]-phi1]]+[alpha80[i]*yhkD/[alpha80[4]-phi1]]+[alpha80[5]*yC6/[alpha80[5]-phi1]],[alpha80[0]*yC1/[alpha80[0]-phi2]]+[alpha80[1]*yC2/[alpha80[1]-phi2]]+[alpha80[2]*ylkD/[alpha80[2]-phi2]]+[alpha80[i]*yhkD/[alpha80[4]-phi2]]+[alpha80[5]*yC6/[alpha80[5]-phi2]]])\n",
+ "soln = lin.solve(a,b);\n",
+ "yC4 =0.1313547 # [kmol C4 in the distillate]\n",
+ "Val =0.617469; # [kmol C4 in the distillate]\n",
+ "# For the distillate, at a dew point of 46 OC\n",
+ "ydD = numpy.array([yC1,yC2 ,ylkD ,yC4 ,yhkD ,yC6]);\n",
+ "D = sum(ydD);\n",
+ "yD = zeros(6);\n",
+ "m46 = zeros(6);\n",
+ "alpha46 = zeros(6);\n",
+ "Ratio1= zeros(6);\n",
+ "m46[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m46[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m46[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m46[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m46[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m46[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "yD=numpy.array([0.0786,0.1835,0.3854,0.34,0.007866,0.0])\n",
+ "# mhk = mC5 at 46.6 OC, the assumed 46 OC is satisfactory.\n",
+ "\n",
+ "# For the residue, at a dew point of 46 OC\n",
+ "xwW =numpy.array([zF[0]-yC1, zF[1]-yC2 ,zF[2]-ylkD, zF[3]-yC4, zF[4]-yhkD, zF[5]-yC6]);\n",
+ "W = sum(xwW);\n",
+ "xW = zeros(6);\n",
+ "m113 = zeros(6);\n",
+ "alpha113 = zeros(6);\n",
+ "alphalk_av=zeros(6);\n",
+ "alpha_av=zeros(6);\n",
+ "Value=zeros(6);\n",
+ "m113[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m113[1] = interp(Temp,T,Data2[:,1]);# [For C2]\n",
+ "m113[2] = interp(Temp,T,Data3[:,1]);# [For C3]\n",
+ "m113[3] = interp(Temp,T,Data4[:,1]);# [For C4]\n",
+ "m113[4] = interp(Temp,T,Data5[:,1]);# [For C5]\n",
+ "m113[5] = interp(Temp,T,Data6[:,1]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha113[i] = m113[i]/m113[4];\n",
+ " xW[i] = xwW[i]/W;\n",
+ " # Ratio = yD/alpha46\n",
+ " Value[i] = alpha113[i]*xW[i];\n",
+ "\n",
+ "# mhk = mC5 at 114 OC, the assumed 113 OC is satisfactory.\n",
+ "Temp_Avg = (114+46.6)/2;# [OC]\n",
+ "# Temp_avg is very close to the assumed 80 OC\n",
+ "Rm = (Val/D)-1;\n",
+ "print\"Minimum Reflux Ratio is \",Rm,\" mol reflux/mol distillate\\n \\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t:\",yD[0]\n",
+ "print\"C2\\t \\t \\t \\t:\",yD[1]\n",
+ "print\"C3\\t \\t \\t \\t:\",yD[2]\n",
+ "print\"C4\\t \\t \\t \\t:\",yD[3]\n",
+ "print\"C5\\t \\t \\t \\t:\",yD[4]\n",
+ "print\"C6\\t \\t \\t \\t:\",yD[5]\n",
+ "print\"\\n\"\n",
+ "print\"*****************Residue Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t: \",xW[0]\n",
+ "print\"C2\\t \\t \\t \\t: \",xW[1]\n",
+ "print\"C3\\t \\t \\t \\t: \",xW[2]\n",
+ "print\"C4\\t \\t \\t \\t: \",xW[3]\n",
+ "print\"C5\\t \\t \\t \\t: \",xW[4]\n",
+ "print\"C6\\t \\t \\t \\t: \",xW[5]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**********************Number of Theoretical stage***********************#\n",
+ "# Page:440\n",
+ "print'Page: 440\\n\\n'\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " alpha_av[i] = (alpha46[i]*alpha113[i])**0.5;\n",
+ "\n",
+ "alphalk_av = alpha_av[1];\n",
+ "# By Eqn. 9.167:\n",
+ "xhkW = xwW[3];\n",
+ "xlkW = xwW[1];\n",
+ "Nm = 3.496;\n",
+ "# Ratio = yD/xW\n",
+ "Ratio2= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " Ratio2[i] = (alpha_av[i]**(Nm+1))*yhkD/xhkW;\n",
+ "\n",
+ "# For C1:\n",
+ "# yC1D-Ratio(1)*xC1W = 0\n",
+ "# yC1D+xC1W = zF(1)\n",
+ "# Similarly for others\n",
+ "yD2=zeros(6)\n",
+ "xW2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " a = numpy.array([[1 ,-Ratio2[i]],[1, 1]]);\n",
+ " b = [0,zF[i]];\n",
+ " soln =lin.solve(a,b);\n",
+ " yD2[i] = soln[0];# [kmol]\n",
+ " xW2[i] = soln[1];# [kmol]\n",
+ "\n",
+ "D = sum(yD2);# [kmol]\n",
+ "W = sum(xW2);# [kmol]\n",
+ "# The distillate dew point computes to 46.6 OC and the residue bubble point computes to 113 OC, which is significantly close to the assumed.\n",
+ "\n",
+ "#***************Product composition at R = 0.8***********************#\n",
+ "# Page:441\n",
+ "print'Page: 441\\n\\n'\n",
+ "\n",
+ "# Since C1 and C2 do not enter in the residue nor C6 in the distillate, appreciably at total reflux or minimum reflux ratio, it will be assumed that they will not enter R = 0.8. C3 and C5 distribution are fixed by specifications. Only that C4 remains to be estimated.\n",
+ "# R = [Infinte 0.8 0.58] [Reflux ratios For C4]\n",
+ "R = [inf ,0.8, 0.58];\n",
+ "# Val = R/(R+1)\n",
+ "val=[ 0 , 2.0 , 2.0]\n",
+ "# ydD = [Inf 0.58] \n",
+ "y4D = [0.1255, 0.1306];\n",
+ "yC4D = 0.1306 ;# by Linear Interpolation\n",
+ "# For Distillate:\n",
+ "Sum1 = sum(Ratio1);\n",
+ "x0 = numpy.array([0.004,0.0444501,0.2495,0.65640,0.0451,0.0])\n",
+ "print\"For the reflux ratio of 0.8\\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"\\t\\t\\t Liquid reflux in equilibrium with the distillate vapour\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\\t:\",x0[i]\n",
+ "\n",
+ "# For boiler:\n",
+ "\n",
+ "#**********Number Of Theoretical Trays***************#\n",
+ "# Page: 443\n",
+ "print'Page: 443\\n\\n'\n",
+ "\n",
+ "R = 0.8;# [reflux ratio]\n",
+ "# From Eqn. 9.175\n",
+ "intersection = (zlkF-(ylkD/D)*(1-q)/(R+1))/(zhkF-(yhkD/D)*(1-q)/(R+1));\n",
+ "# Enriching Section:\n",
+ "y1 = zeros(5);\n",
+ "L = R*D;# [kmol]\n",
+ "G = L+D;# [kmol]\n",
+ "# Assume: Temp1 = 57 OC\n",
+ "# alpha57 = [C1 C2 C3 C4 C5]\n",
+ "alpha57 = numpy.array([79.1 ,19.6 ,7.50, 2.66, 1]);\n",
+ "# From Eqn. 9.177, n = 0:\n",
+ "Val57=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y1[i] = (L/G)*x0[i]+((D/G)*yD[i]);\n",
+ " Val57[i] = y1[i]/alpha57[i];\n",
+ "\n",
+ "x1 = Val57/sum(Val57);\n",
+ "mC5 = sum(Val57);\n",
+ "Temp1 = 58.4; # [OC]\n",
+ "# Liquid x1's is in equilibrium with y1's.\n",
+ "xlk_By_xhk1 = x1[2]/x1[4];\n",
+ "# Tray 1 is not the feed tray.\n",
+ "# Assume: Temp2 = 63 OC\n",
+ "# alpha63 = [C1 C2 C3 C4 C5]\n",
+ "alpha63 = numpy.array([68.9 ,17.85, 6.95, 2.53, 1.00]);\n",
+ "# From Eqn. 9.177, n = 1:\n",
+ "y2=zeros(6)\n",
+ "Val63=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y2[i] = (L/G)*x1[i]+((D/G)*yD[i]);\n",
+ " Val63[i] = y1[i]/alpha63[i];\n",
+ " \n",
+ "mC5 = sum(Val63);\n",
+ "x2 = Val63/sum(Val63);\n",
+ "xlk_By_xhk2 = x2[2]/x2[4];\n",
+ "# The tray calculation are continued downward in this manner.\n",
+ "# Results for trays 5 & 6 are:\n",
+ "# Temp 75.4 [OC]\n",
+ "# x5 = [C1 C2 C3 C4 C5]\n",
+ "x5 = numpy.array([0.00240, 0.0195, 0.1125, 0.4800, 0.3859]);\n",
+ "xlk_By_xhk5 = x5[2]/x5[4];\n",
+ "# Temp6 = 79.2 OC\n",
+ "# x6 = [C1 C2 C3 C4 C5]\n",
+ "x6 = numpy.array([0.00204 ,0.0187 ,0.1045, 0.4247 ,0.4500]);\n",
+ "xlk_By_xhk6 = x6[2]/x6[4];\n",
+ "# From Eqn. 9.176:\n",
+ "# Tray 6 is the feed tray\n",
+ "Np1 = 6;\n",
+ "\n",
+ "# Exhausting section:\n",
+ "# Assume Temp = 110 OC\n",
+ "L_bar = L+(q*F);# [kmol]\n",
+ "G_bar = L_bar-W;# [kmol]\n",
+ "# alpha57 = [C3 C4 C5 C6]\n",
+ "alpha110 = numpy.array([5 ,2.2 ,1, 0.501]);\n",
+ "# From Eqn. 9.178:\n",
+ "xNp = zeros(4);\n",
+ "Val110=zeros(6)\n",
+ "k = 0;\n",
+ "for i in range(2,6):\n",
+ " xNp[k] = ((G_bar/L_bar)*yNpPlus1[i])+((W/L_bar)*xW[i]);\n",
+ " Val110[k] = alpha110[k]*xNp[k];\n",
+ " k = k+1;\n",
+ "\n",
+ "yNp = Val110/sum(Val110);\n",
+ "mC5 = 1/sum(Val110);\n",
+ "# yNp is in Eqb. with xNp:\n",
+ "xlk_By_xhkNp = xNp[0]/xNp[3];\n",
+ "# Results for Np-7 to Np-9 trays:\n",
+ "# For Np-7\n",
+ "# Temp = 95.7 OC\n",
+ "# xNpMinus7 = [C3 C4 C5 C6]\n",
+ "xNpMinus7 = numpy.array([0.0790 ,0.3944 ,0.3850, 0.1366]);\n",
+ "xlk_By_xhkNpMinus7 = xNpMinus7[0]/xNpMinus7[2];\n",
+ "# For Np-8\n",
+ "# Temp = 94.1 OC\n",
+ "# xNpMinus8 = [C3 C4 C5 C6]\n",
+ "xNpMinus8 = numpy.array([0.0915, 0.3897 ,0.3826, 0.1362]);\n",
+ "xlk_By_xhkNpMinus8 = xNpMinus8[0]/xNpMinus8[2];\n",
+ "# For Np-9\n",
+ "# Temp = 93.6 OC\n",
+ "# xNpMinus9 = [C3 C4 C5 C6]\n",
+ "xNpMinus9 = numpy.array([0.1032, 0.3812, 0.3801 ,0.1355]);\n",
+ "xlk_By_xhkNpMinus9 = xNpMinus9[0]/xNpMinus9[2];\n",
+ "# From Eqn. 9.176:\n",
+ "# Np-8 is the feed tray.\n",
+ "def g2(Np):\n",
+ " return Np-8-Np1\n",
+ "Np = fsolve(g2,7);\n",
+ "print\"Number of theoretical Trays required for R = 0.8: \",Np[0]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Composition Correction*****************#\n",
+ "# Page: 446\n",
+ "print'Page: 446\\n\\n'\n",
+ "\n",
+ "# New Bubble Point:\n",
+ "# Temp = 86.4 OC\n",
+ "x6_new = x6*(1-xNpMinus8[3]);\n",
+ "x6_new[4] = xNpMinus8[3];\n",
+ "# alpha86 = [C1 C2 C3 C4 C5 C6]\n",
+ "alpha86 =numpy.array([46.5, 13.5, 5.87, 2.39, 1.00, 0.467]);\n",
+ "# From Eqn. 9.181:\n",
+ "xhkn = x5[3];\n",
+ "xhknPlus1 = x6_new[3];\n",
+ "xC65 = alpha86[5]*x6_new[4]*xhkn/xhknPlus1;\n",
+ "x5_new = x5*(1-xC65);\n",
+ "x5_new[4] = 1-sum(x5_new);\n",
+ "# Tray 5 has a bubble point of 80 OC\n",
+ "# Similarly , the calculations are continued upward:\n",
+ "# x2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x2_new = numpy.array([0.0021, 0.0214 ,0.1418, 0.6786, 0.1553, 0.00262]);\n",
+ "# y2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_new = numpy.array([0.0444, 0.111 ,0.2885, 0.5099, 0.0458 ,0.00034]);\n",
+ "# x1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x1_new = numpy.array([0.00226, 0.0241, 0.1697 ,0.7100, 0.0932, 0.00079]);\n",
+ "# y1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y1_new = numpy.array([0.0451 ,0.1209 ,0.3259 ,0.4840 ,0.0239 ,0.000090]);\n",
+ "# x0_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x0_new = numpy.array([0.00425 ,0.0425 ,0.2495, 0.6611 ,0.0425 ,0.00015]);\n",
+ "# yD_new = [C1 C2 C3 C4 C5 C6]\n",
+ "yD_new = numpy.array([0.0789 ,0.1842 ,0.3870 ,0.3420 ,0.0079, 0.00001]);\n",
+ "# From Eqn. 9.184:\n",
+ "# For C1 & C2\n",
+ "alphalkm = alpha86[2];\n",
+ "xlkmPlus1 = xNpMinus7[0];\n",
+ "xlkm = x6_new[2];\n",
+ "xC17 = x6_new[0]*alpha86[2]*xlkmPlus1/(alpha86[0]*xlkm);\n",
+ "xC27 = x6_new[1]*alpha86[2]*xlkmPlus1/(alpha86[1]*xlkm);\n",
+ "# Since xC17 = 1-xC27\n",
+ "# The adjusted value above constitute x7's.\n",
+ "# The new bubbl point is 94 OC\n",
+ "# The calculations are continued down in the same fashion.\n",
+ "# The new tray 6 has:\n",
+ "# xC1 = 0.000023 & xC2 = 0.00236\n",
+ "# It is clear that the conc. of these components are reducing so rapidly that there is no need to go an further.\n",
+ "print\"******Corrected Composition***********\\n\"\n",
+ "print\"Component\\t \\tx2\\t \\t \\t y2\\t \\t \\t x1\\t \\t \\t y1\\t \\t \\tx0\\t \\t \\tyD\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t\",x2_new[i],\"\\t \\t \\t \\t \",y2_new[i],\"\\t \\t \\t \\t \",x1_new[i],\"\\t \\t \\t \\t\",y1_new[i],\"\\t \\t \\t \\t \\t\",x0_new[i],\"\\t \\t \\t \\t\",yD_new[i]\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#*************Heat Load of Condensor & Boiler & L/G ratio**********#\n",
+ "# Page 448\n",
+ "print'Page: 448\\n\\n'\n",
+ "\n",
+ "# Values of x0, yD & y1 are taken from the corrected concentration.\n",
+ "# HD46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HD46 = numpy.array([13490, 23380, 32100, 42330, 52570, 61480]);# [kJ/kmol]\n",
+ "yDHD= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yDHD[i] = yD_new[i]*HD46[i];\n",
+ "\n",
+ "HD = sum(yDHD);# [kJ]\n",
+ "# HL46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL46 = numpy.array([10470, 17210, 18610, 22790, 27100, 31050]);# [kJ/kmol]\n",
+ "xHL=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL[i] = x0_new[i]*HL46[i];\n",
+ "\n",
+ "HL0 = sum(xHL);# [kJ]\n",
+ "# HG58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG58 = numpy.array([13960, 24190, 37260, 43500, 53900, 63500]);# [kJ/kmol]\n",
+ "yHG1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG1[i] = y1_new[i]*HG58[i];\n",
+ "\n",
+ "HG1 = sum(yHG1);# [kJ]\n",
+ "# From Eqn. 9.54:\n",
+ "Qc = D*((R+1)*HG1-(R*HL0)-HD);# [kJ/kmol feed]\n",
+ "# Similarly:\n",
+ "HW = 39220;# [kJ]\n",
+ "HF = 34260;# [kJ]\n",
+ "# From Eqn. 9.55:\n",
+ "Qb = (D*HD)+(W*HW)+Qc-(F*HF);# [kJ/kmol feed]\n",
+ "# For tray n = 1\n",
+ "G1 = D*(R+1);# [kmol]\n",
+ "# With x1 & y2 from corrected composition;\n",
+ "# HG66 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG66 = numpy.array([14070, 24610, 33800, 44100, 54780, 64430]);# [kJ/kmol feed]\n",
+ "yHG2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG2[i] = y2_new[i]*HG66[i];\n",
+ "\n",
+ "HG2 = sum(yHG2);# [kJ]\n",
+ "# HL58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL58 =numpy.array([11610 ,17910 ,20470, 24900, 29500, 33840]);# [kJ/kmol feed]\n",
+ "xHL1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL1[i] = x1_new[i]*HL58[i];\n",
+ "\n",
+ "HL1 = sum(xHL1);# [kJ]\n",
+ "# From Eqn. 9.185:\n",
+ "G2 = (Qc+D*(HD-HL1))/(HG2-HL1);# [kmol]\n",
+ "L2 = G2-D;# [kmol]\n",
+ "L2_By_G2 = L2/G2;\n",
+ "# Similarly, the calculations are made for other trays in enriching section.\n",
+ "# For tray, Np = 14:\n",
+ "# C1 & C2 are absent.\n",
+ "# HG113 = [C3 C4 C5 C6]\n",
+ "HG113 = numpy.array([38260, 49310 ,60240, 71640]);# [kJ/kmol feed]\n",
+ "k = 2;\n",
+ "yHG15=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " yHG15[i] = yNpPlus1[k]*HG113[i];\n",
+ " k = k+1;\n",
+ "\n",
+ "HG15 = sum(yHG15);\n",
+ "# HL107 = [C3 C4 C5 C6]\n",
+ "HL107 = numpy.array([29310 ,31870, 37680 ,43500]);# [kJ/kmol feed]\n",
+ "xHL14=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " xHL14[i] = xNp[i]*HL107[i];\n",
+ "\n",
+ "HL14 = sum(xHL14);# [kJ]\n",
+ "# Similarly:\n",
+ "HL13 = 36790;# [kJ]\n",
+ "HG14 = 52610;# [kJ]\n",
+ "# From Eqn. 9.186:\n",
+ "G15_bar = (Qb+(W*(HL14-HW)))/(HG15-HL14);# [kmol]\n",
+ "L14_bar = W+G15_bar;# [kmol]\n",
+ "G14_bar = (Qb+(W*(HL13-HW)))/(HG14-HL13);# [kmol]\n",
+ "L14_By_G14 = L14_bar/G14_bar;\n",
+ "print\"Condensor Heat Load kJ:\\n\",HL0\n",
+ "print\"Reboiler Heat Load kJ:\\n\",HG15\n",
+ "# For other Exhausting Section Trays:\n",
+ "# Result = [Tray No. L_By_G Temp(OC)]\n",
+ "# Tray 0: Condensor\n",
+ "# Tray 15: Reboiler\n",
+ "Result = numpy.array([[0,0.80 ,46.6],[1 ,0.432 ,58.4],[2, 0.437, 66],[3, 0.369, 70.4],[4 ,0.305, 74],[5 ,0.310, 80.3],[6, 1.53, 86.4],[7, 4.05 ,94.1],[8 ,3.25 ,96.3],[9, 2.88 ,97.7],[10 ,2.58 ,99],[11, 2.48 ,100],[12 ,2.47 ,102.9],[13 ,2.42 ,104.6],[14 ,2.18 ,107.9],[15, 1.73 ,113.5]]);\n",
+ "print\"**************L/G*************\\n\"\n",
+ "print\"Tray No. \\t\\t L/G\\t\\t\\t\\t Temp(OC)\\n\"\n",
+ "for i in range(0,16):\n",
+ " print Result[i,0],\"\\t\\t \\t \\t\",Result[i,1],\"\\t \\t \\t\",Result[i,2];\n",
+ "\n",
+ "# These values are not final.\n",
+ "# They scatter eratically because they are based on the temp. and conc. computed with the assumption of constant L/G\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Thiele Geddes Method******************#\n",
+ "# Page:452\n",
+ "print'Page: 452\\n\\n'\n",
+ "\n",
+ "# Use the tray Temperature to obtain m.\n",
+ "# For C4:\n",
+ "# m = [0(Condensor) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(Reboiler)]\n",
+ "m = numpy.array([0.50 ,0.66, 0.75 ,0.81 ,0.86 ,0.95 ,1.07 ,1.22 ,1.27 ,1.29 ,1.30, 1.32, 1.40, 1.45, 1.51, 1.65]);\n",
+ "A = numpy.array([1.6,0.65,0.582,0.4555,0.354,0.326,1.42990])\n",
+ "S = numpy.array([0.3012,0.39076,0.4479,0.503875,0.53225,0.56680,0.59917,0.69,0.95375])\n",
+ "\n",
+ "# f = Tray No. 6\n",
+ "\n",
+ "# From Eqn. 9.196:\n",
+ "# Value1 = Gf*yf/(D*zD)\n",
+ "Sum = 0;\n",
+ "for i in range(0,6):\n",
+ " Val = 1;\n",
+ " for j in range(0,6):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value1 = 1+Sum;\n",
+ "# From Eqn. 9.206:\n",
+ "# Value2 = Lf_bar*xf/(W*xW);\n",
+ "Sum = 0.5316\n",
+ "Value2 = 1+Sum;\n",
+ "# From Eqn. 9.208:\n",
+ "# Value3 = W*xW/(D*zD)\n",
+ "Value3 = A[6]*Value1/Value2;\n",
+ "# From Eqn. 9.210:\n",
+ "DyD = F*zF[3]/(Value3+1);# [kmol,C4]\n",
+ "# From Eqn. 9.209:\n",
+ "WxW = ((F*zF[3]))-(DyD);# [kmol, C4]\n",
+ "# Similarly:\n",
+ "# For [C1; C2; C3; C4; C5; C6]\n",
+ "# Result2 = [Value1 Value2 Value3 DyD WxW]\n",
+ "Result2 = numpy.array([[1.0150, 254*10**6 ,288*10**(-10), 0.03, 0],[1.0567, 8750, 298*10**(-5) ,0.07 ,0],[1.440, 17.241 ,0.0376 ,0.1447, 0.0053],[1.5778 ,1.5306 ,1.475, 0.1335 ,0.1965],[15580, 1.1595, 45.7 ,0.00643 ,0.29357],[1080 ,1.0687 ,7230 ,0.0000166 ,0.1198]]);\n",
+ "D = sum(Result2[:,2]);# [kmol]\n",
+ "W = sum(Result2[:,3]);# [kmol]\n",
+ "# In the Distillate:\n",
+ "DyD_C3 = Result[1,2];# [kmol]\n",
+ "zFC3 = zF[2];# [kmol]\n",
+ "percentC3 = (DyD_C3/zFC3)*100;\n",
+ "DyD_C5 = Result2[3,2];# [kmol]\n",
+ "zFC5 = zF[4];# [kmol]\n",
+ "percentC5 = (DyD_C5/zFC5)*100;\n",
+ "# These do not quite meet the original specification.\n",
+ "# For Tray 2 & C4\n",
+ "# From Eqn. 9.195:\n",
+ "# Value4 = G2*y2/(D*zD)\n",
+ "n = 2;\n",
+ "Sum = 0;\n",
+ "for i in range(0,n):\n",
+ " Val = 1;\n",
+ " for j in range(i,n):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value4 = 1+Sum;\n",
+ "# From The enthalpy Balnce:\n",
+ "G2 = 0.675;\n",
+ "# From Eqn. 9.211:\n",
+ "y2 = Value4*DyD/G2;\n",
+ "# Similarly:\n",
+ "# Value4 = [C1 C2 C3 C4 C5 C6]\n",
+ "Value4 = numpy.array([1.0235, 1.1062, 1.351, 2.705, 10.18 ,46.9]);\n",
+ "y2= numpy.array([0.04548,0.114,0.2896,0.53498,0.09697,0.001153]);\n",
+ "Y2 = sum(y2);\n",
+ "# Since Y2 is not equal to 1. THerefore the original temperature is incorrect. By adjusting y2 to unity.\n",
+ "# The dew point is 77 OC instead of 66 OC\n",
+ "# y2_adjusted = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_adjusted = numpy.array([0.0419 ,0.1059 ,0.2675 ,0.4939, 0.0896, 0.00106]);\n",
+ "print\"*****************Composition By Thiele Geddes Method*****************\\n\"\n",
+ "print\"Component\\t \\t \\t y2\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\",y2_adjusted[i]\n",
+ "# some values of solution in the textbook are incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.13\n",
+ "\n",
+ "\n",
+ "Page: 436\n",
+ "\n",
+ "\n",
+ "Minimum Reflux Ratio is 0.619146164974 mol reflux/mol distillate\n",
+ " \n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0786\n",
+ "C2\t \t \t \t: 0.1835\n",
+ "C3\t \t \t \t: 0.3854\n",
+ "C4\t \t \t \t: 0.34\n",
+ "C5\t \t \t \t: 0.007866\n",
+ "C6\t \t \t \t: 0.0\n",
+ "\n",
+ "\n",
+ "*****************Residue Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0\n",
+ "C2\t \t \t \t: 0.0\n",
+ "C3\t \t \t \t: 0.00484930540974\n",
+ "C4\t \t \t \t: 0.321097242636\n",
+ "C5\t \t \t \t: 0.480081235564\n",
+ "C6\t \t \t \t: 0.19397221639\n",
+ "\n",
+ "\n",
+ "Page: 440\n",
+ "\n",
+ "\n",
+ "Page: 441\n",
+ "\n",
+ "\n",
+ "For the reflux ratio of 0.8\n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "\t\t\t Liquid reflux in equilibrium with the distillate vapour\n",
+ "\n",
+ "C 0 \t \t \t \t\t: 0.004\n",
+ "C 1 \t \t \t \t\t: 0.0444501\n",
+ "C 2 \t \t \t \t\t: 0.2495\n",
+ "C 3 \t \t \t \t\t: 0.6564\n",
+ "C 4 \t \t \t \t\t: 0.0451\n",
+ "C 5 \t \t \t \t\t: 0.0\n",
+ "Page: 443\n",
+ "\n",
+ "\n",
+ "Number of theoretical Trays required for R = 0.8: 14.0\n",
+ "\n",
+ "\n",
+ "Page: 446\n",
+ "\n",
+ "\n",
+ "******Corrected Composition***********\n",
+ "\n",
+ "Component\t \tx2\t \t \t y2\t \t \t x1\t \t \t y1\t \t \tx0\t \t \tyD\n",
+ "\n",
+ "C 0 \t \t \t0.0021 \t \t \t \t 0.0444 \t \t \t \t 0.00226 \t \t \t \t0.0451 \t \t \t \t \t0.00425 \t \t \t \t0.0789\n",
+ "C 1 \t \t \t0.0214 \t \t \t \t 0.111 \t \t \t \t 0.0241 \t \t \t \t0.1209 \t \t \t \t \t0.0425 \t \t \t \t0.1842\n",
+ "C 2 \t \t \t0.1418 \t \t \t \t 0.2885 \t \t \t \t 0.1697 \t \t \t \t0.3259 \t \t \t \t \t0.2495 \t \t \t \t0.387\n",
+ "C 3 \t \t \t0.6786 \t \t \t \t 0.5099 \t \t \t \t 0.71 \t \t \t \t0.484 \t \t \t \t \t0.6611 \t \t \t \t0.342\n",
+ "C 4 \t \t \t0.1553 \t \t \t \t 0.0458 \t \t \t \t 0.0932 \t \t \t \t0.0239 \t \t \t \t \t0.0425 \t \t \t \t0.0079\n",
+ "C 5 \t \t \t0.00262 \t \t \t \t 0.00034 \t \t \t \t 0.00079 \t \t \t \t9e-05 \t \t \t \t \t0.00015 \t \t \t \t1e-05\n",
+ "\n",
+ "\n",
+ "Page: 448\n",
+ "\n",
+ "\n",
+ "Condensor Heat Load kJ:\n",
+ "21641.994\n",
+ "Reboiler Heat Load kJ:\n",
+ "59915.6783775\n",
+ "**************L/G*************\n",
+ "\n",
+ "Tray No. \t\t L/G\t\t\t\t Temp(OC)\n",
+ "\n",
+ "0.0 \t\t \t \t0.8 \t \t \t46.6\n",
+ "1.0 \t\t \t \t0.432 \t \t \t58.4\n",
+ "2.0 \t\t \t \t0.437 \t \t \t66.0\n",
+ "3.0 \t\t \t \t0.369 \t \t \t70.4\n",
+ "4.0 \t\t \t \t0.305 \t \t \t74.0\n",
+ "5.0 \t\t \t \t0.31 \t \t \t80.3\n",
+ "6.0 \t\t \t \t1.53 \t \t \t86.4\n",
+ "7.0 \t\t \t \t4.05 \t \t \t94.1\n",
+ "8.0 \t\t \t \t3.25 \t \t \t96.3\n",
+ "9.0 \t\t \t \t2.88 \t \t \t97.7\n",
+ "10.0 \t\t \t \t2.58 \t \t \t99.0\n",
+ "11.0 \t\t \t \t2.48 \t \t \t100.0\n",
+ "12.0 \t\t \t \t2.47 \t \t \t102.9\n",
+ "13.0 \t\t \t \t2.42 \t \t \t104.6\n",
+ "14.0 \t\t \t \t2.18 \t \t \t107.9\n",
+ "15.0 \t\t \t \t1.73 \t \t \t113.5\n",
+ "\n",
+ "\n",
+ "Page: 452\n",
+ "\n",
+ "\n",
+ "*****************Composition By Thiele Geddes Method*****************\n",
+ "\n",
+ "Component\t \t \t y2\n",
+ "\n",
+ "C 0 \t \t \t \t0.0419\n",
+ "C 1 \t \t \t \t0.1059\n",
+ "C 2 \t \t \t \t0.2675\n",
+ "C 3 \t \t \t \t0.4939\n",
+ "C 4 \t \t \t \t0.0896\n",
+ "C 5 \t \t \t \t0.00106\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/Chapter9_2.ipynb b/Mass_-_Transfer_Operations/Chapter9_2.ipynb
new file mode 100755
index 00000000..6ae47958
--- /dev/null
+++ b/Mass_-_Transfer_Operations/Chapter9_2.ipynb
@@ -0,0 +1,2154 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1356f02f4e266983d4e000fdec653dca9388627dd3d49506786471d71b9d02b6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Distillation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1: Page 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.1\n",
+ "# Page: 349\n",
+ "\n",
+ "print'Illustration 9.1 - Page: 349\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "#****Data****#\n",
+ "# a:n-heptane b:n-octane\n",
+ "Pt = 760; # [mm Hg]\n",
+ "#*****#\n",
+ "\n",
+ "Tempa = 98.4;# [boiling point of A,OC]\n",
+ "Tempb = 125.6;# [boiling point of B,OC]\n",
+ "x = numpy.zeros(6);\n",
+ "y_star = numpy.zeros(6);\n",
+ "alpha = numpy.zeros(6);\n",
+ "# Data = [Temp Pa (mm Hg) Pb(mm Hg)]\n",
+ "Data = [(98.4, 760.0, 333.0),(105.0 ,940.0, 417.0),(110.0, 1050.0, 484.0),(115.0, 1200.0, 561.0),(120.0, 1350.0, 650.0),(125.6 ,1540.0, 760.0)];\n",
+ "for i in range(0,6): \n",
+ " x[i] = (Pt-Data[i][2])/(Data[i][1]-Data[i][2]);# [mole fraction of heptane in liquid]\n",
+ " y_star[i] = (Data[i][1]/Pt)*x[i];\n",
+ " alpha[i] = Data[i][1]/Data[i][2];\n",
+ "\n",
+ "print\"\\t\\t T(OC)\\t\\t\\t\\t Pa(mm Hg)\\t\\t\\t\\t\\t\\t\\t Pb(mm Hg)\\t\\t\\t\\t\\t\\t\\t\\t x\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t y*\\t\\t\\t\\t\\t\\t\\t\\t\\t alpha\\n\"\n",
+ "for i in range(0,6):\n",
+ " print \"\\t \\t \",Data[i][0],\"\\t \\t \\t \\t\",Data[i][1],\"\\t \\t \\t \\t\",Data[i][2],\"\\t \\t \\t \\t \",round(x[i],3),\"\\t \\t \\t \\t \",round(y_star[i],3),\"\\t\\t\\t\\t\\t\\t\\t\\t\",round(alpha[i],2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.1 - Page: 349\n",
+ "\n",
+ "\n",
+ "\t\t T(OC)\t\t\t\t Pa(mm Hg)\t\t\t\t\t\t\t Pb(mm Hg)\t\t\t\t\t\t\t\t x\t\t\t\t\t\t\t\t\t\t\t y*\t\t\t\t\t\t\t\t\t alpha\n",
+ "\n",
+ "\t \t 98.4 \t \t \t \t760.0 \t \t \t \t333.0 \t \t \t \t 1.0 \t \t \t \t 1.0 \t\t\t\t\t\t\t\t2.28\n",
+ "\t \t 105.0 \t \t \t \t940.0 \t \t \t \t417.0 \t \t \t \t 0.656 \t \t \t \t 0.811 \t\t\t\t\t\t\t\t2.25\n",
+ "\t \t 110.0 \t \t \t \t1050.0 \t \t \t \t484.0 \t \t \t \t 0.488 \t \t \t \t 0.674 \t\t\t\t\t\t\t\t2.17\n",
+ "\t \t 115.0 \t \t \t \t1200.0 \t \t \t \t561.0 \t \t \t \t 0.311 \t \t \t \t 0.492 \t\t\t\t\t\t\t\t2.14\n",
+ "\t \t 120.0 \t \t \t \t1350.0 \t \t \t \t650.0 \t \t \t \t 0.157 \t \t \t \t 0.279 \t\t\t\t\t\t\t\t2.08\n",
+ "\t \t 125.6 \t \t \t \t1540.0 \t \t \t \t760.0 \t \t \t \t 0.0 \t \t \t \t 0.0 \t\t\t\t\t\t\t\t2.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2: Page 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.2\n",
+ "# Page: 354\n",
+ "\n",
+ "print'Illustration 9.2 - Page: 354\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:water b:ethylaniline\n",
+ "Pt = 760.0; # [mm Hg]\n",
+ "ma1 = 50.0;# [g]\n",
+ "mb1 = 50.0;# [g]\n",
+ "#*******#\n",
+ "\n",
+ "# Data = [Temp Pa(mm Hg) Pb(mm Hg)]\n",
+ "Data = [(38.5, 51.1 ,1.0),(64.4 ,199.7, 5.0),(80.6 ,363.9 ,10.0),(96.0, 657.6, 20.0),(99.15 ,737.2 ,22.8),(113.2, 1225.0, 40.0)];\n",
+ "Ma = 18.02;# [kg/kmol]\n",
+ "Mb = 121.1;# [kg/kmol]\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " p = Data[i][1]+Data[i][2];\n",
+ " if p==Pt:\n",
+ " pa = Data[4][1];# [mm Hg]\n",
+ " pb = Data[i][2];# [mm Hg]\n",
+ " T = Data[i][0];# [OC]\n",
+ " \n",
+ "\n",
+ "ya_star = pa/Pt;\n",
+ "yb_star = pb/Pt;\n",
+ "ya1 = ma1/Ma;# [g mol water]\n",
+ "yb1 = mb1/Mb;# [g mol ethylalinine]\n",
+ "Y = ya1*(yb_star/ya_star);# [g mol ethylalinine]\n",
+ "print\"The original mixture contained\",round(ya1,2),\"g mol water and \",round(yb1,2),\" g mol ethylanaline\\n\"\n",
+ "print\"The mixture will continue to boil at \",T,\" degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with \",round(Y,3),\"g mol ethylaniline\\n\"\n",
+ "print\"The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.2 - Page: 354\n",
+ "\n",
+ "\n",
+ "The original mixture contained 2.77 g mol water and 0.41 g mol ethylanaline\n",
+ "\n",
+ "The mixture will continue to boil at 99.15 degree C, where the equilibrium vapour of the indicated composition,until all the water evaporated together with 0.086 g mol ethylaniline\n",
+ "\n",
+ "The temparature will then rise to 204 degree C, and the equilibrium vapour will be of pure ethylanaline\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3: Page 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.3\n",
+ "# Page: 362\n",
+ "\n",
+ "print'Illustration 9.3 - Page: 362\\n\\n'\n",
+ "import numpy\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:n-C3H8 b:n-C4H10 c:n-C5H12 d:n-C6H14\n",
+ "# Bubble Point Calculation\n",
+ "xa = 0.05;\n",
+ "xb = 0.30;\n",
+ "xc = 0.40;\n",
+ "xd = 0.25;\n",
+ "P = 350;# [kN/square m]\n",
+ "#******#\n",
+ "\n",
+ "# Assume:\n",
+ "Temp = 60;# [OC]\n",
+ "x = [0.05, 0.30, 0.40, 0.25];\n",
+ "m = [4.70, 1.70 ,0.62 ,0.25];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_x = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "# From Eqn. 9.23:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.8;# [OC]\n",
+ "m = [4.60, 1.60, 0.588, 0.235];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_x[i] = alpha[i]*x[i];\n",
+ " Sum = Sum+alpha_x[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 56.7;# [OC]\n",
+ "Bt = 56.8;# [OC]\n",
+ "yi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " yi[i] = alpha_x[i]/Sum;\n",
+ "\n",
+ "print\"The Bubble Point is \",Bt,\" degree C\\n\"\n",
+ "print\"Bubble point vapour composition \\n\"\n",
+ "print\"\\t yi\\n\";\n",
+ "print\"\\n n-C3\\t \",round(yi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(yi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(yi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(yi[3],3)\n",
+ "\n",
+ "print\"\\n \\n \\n\"\n",
+ "\n",
+ "# Dew Point Calculation\n",
+ "# Asume:\n",
+ "ya = 0.05;\n",
+ "yb = 0.30;\n",
+ "yc = 0.40;\n",
+ "yd = 0.25;\n",
+ "Temp = 80;# [OC]\n",
+ "y = [0.05, 0.30 ,0.40, 0.25];\n",
+ "m = [6.30 ,2.50 ,0.96 ,0.43];# [At 60 OC]\n",
+ "# Reference: C5H12\n",
+ "mref = m[3];\n",
+ "Sum = 0;\n",
+ "alpha = numpy.zeros(4)\n",
+ "alpha_y = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[3];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "\n",
+ "# From Eqn. 9.29:\n",
+ "SumF = Sum;\n",
+ "Sum = 0;\n",
+ "mref = SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 83.7;# [OC]\n",
+ "m = [6.60, 2.70, 1.08, 0.47];# [At 56.8 OC]\n",
+ "for i in range(0,4):\n",
+ " alpha[i] = m[i]/m[2];\n",
+ " alpha_y[i] = y[i]/alpha[i];\n",
+ " Sum = Sum+alpha_y[i];\n",
+ "\n",
+ "SumF = Sum;\n",
+ "mref = 1.0/SumF;\n",
+ "# Corresponding Temparature from the nomograph:\n",
+ "Temp = 84.0;# [OC]\n",
+ "Dt = 84.0;# [OC]\n",
+ "xi = numpy.zeros(4);\n",
+ "for i in range(0,4):\n",
+ " xi[i] = alpha_y[i]/Sum;\n",
+ "\n",
+ "print\"The Dew Point is \",Dt,\" degree C\\n\"\n",
+ "print\"Dew point liquid composition \\n\"\n",
+ "print\"\\t xi\\n\"\n",
+ "print\"\\n n-C3\\t \",round(xi[0],3)\n",
+ "print\"\\n n-C4\\t \",round(xi[1],3)\n",
+ "print\"\\n n-C5\\t \",round(xi[2],3)\n",
+ "print\"\\n n-C6\\t \",round(xi[3],3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.3 - Page: 362\n",
+ "\n",
+ "\n",
+ "The Bubble Point is 56.8 degree C\n",
+ "\n",
+ "Bubble point vapour composition \n",
+ "\n",
+ "\t yi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.229\n",
+ "\n",
+ " n-C4\t 0.478\n",
+ "\n",
+ " n-C5\t 0.234\n",
+ "\n",
+ " n-C6\t 0.059\n",
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ "The Dew Point is 84.0 degree C\n",
+ "\n",
+ "Dew point liquid composition \n",
+ "\n",
+ "\t xi\n",
+ "\n",
+ "\n",
+ " n-C3\t 0.007\n",
+ "\n",
+ " n-C4\t 0.109\n",
+ "\n",
+ " n-C5\t 0.363\n",
+ "\n",
+ " n-C6\t 0.521\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4: Page 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.4\n",
+ "# Page: 365\n",
+ "\n",
+ "print'Illustration 9.4 - Page: 365\\n\\n'\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "zF = 0.5;\n",
+ "D = 60.0;# [mol]\n",
+ "W = 40.0;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "# From Illustration 9.1, Equilibrium data:\n",
+ "Data = numpy.array([[1.0 ,1.0],[0.655, 0.810],[0.487 ,0.674],[0.312, 0.492],[0.1571 ,0.279],[0, 0]]);\n",
+ "Feed = numpy.array([[0 ,0],[1.0 ,1.0]]);\n",
+ "# The operating line is drawn with a slope -(W/D) to cut the equilibrium line.\n",
+ "def f44(x):\n",
+ " return -((W/D)*(x-zF))+zF\n",
+ "x = numpy.arange(0.2,0.7,0.1);\n",
+ "plt.plot(Data[:,0],Data[:,1],label=\"Equilibrium Line\")\n",
+ "plt.plot(Feed[:,0],Feed[:,1],label=\"Feed Line\")\n",
+ "plt.plot(x,f44(x),label=\"Operating Line\");\n",
+ "plt.grid('on')\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Mole fraction of heptane in liquid\")\n",
+ "ax.set_ylabel(\"Mole fraction of heptane in vapour\")\n",
+ "plt.legend(loc='lower right');\n",
+ "plt.show()\n",
+ "# The point at which the operating line cuts the equilibrium line has the following composition* temparature:\n",
+ "yd = 0.575;# [mole fraction heptane in vapour phase]\n",
+ "xW = 0.387;# [mole fraction heptane in liquid phase]\n",
+ "Temp = 113;# [OC]\n",
+ "print\"mole fraction of heptane in vapour phase \",yd\n",
+ "print\"mole fraction of heptane in liquid phase \",xW\n",
+ "print\"Temperature is \",Temp,\" degree C\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.4 - Page: 365\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ndu0iIyOD0aNH07VrVypXrsxRRx3F66+/ztq1a5k4cSLgympeeuml9O7dm1q1atG2bVuWLFlScJ+S\nymrmX9uvXz9q167Nyy+/zIIFC+jQoQN169blyCOP5JZbbikwQvk1FFq3bk3NmjWZMmUKmZmZRWo6\npKWlMXLkSFq3bk2dOnXo3bt3kYysjz/+eEFJ0hdeeOF3IxAvrF27lkqVKhWUM01PT2fo0KF07tyZ\nWrVqcd5557Ft27aC9vPnz6djx47UrVuXNm3a8OGHMcsyVDplqe4T640yVnCbPdtVYVu5svS25amq\nZhjRpqy/eb95//339aCDDtLc3NzffTZgwADt06ePqrrqaQcffLC+8cYbmpOToyNGjNBmzZppTk6O\n5ubm6sknn6wPPfSQZmdn65o1a7R58+Y6a9asItdOmzZNVVV/++03XbRokX7xxReam5ura9eu1eOO\nO05HjRpV0LeI6OrVqwuO582bp40bNy44TktL01NPPVU3b96s27dv1+OOO06fffbZgu90xBFH6NKl\nS3Xv3r165ZVXaqVKlYrcL5j09PRiq8t9//33KiIFujnzzDO1RYsWunLlSv3tt980PT1dhwwZoqqq\nGzZs0MMOO0zfD5SInDNnjh522GH6888/e/yfKEq43wtlrOCWsiOGZctcmovXX4cWLUpua6MEI+kQ\nic4WIVu3bqVevXrFFuM54ogj2Lp1a8Fxu3bt6NGjB5UrV2bQoEHs27ePzz//nAULFrB161buu+8+\nDjroIJo1a8a1117L5MmTC67t2LEjF17oEjhXq1aNk08+mfbt21OpUiWOOuoorr/++ojfsG+99VaO\nOOII6tatywUXXEBWVhYAr7/+OldffTXHHXcc1atX54EHHoiKW0pEuOqqq2jRogXVqlWjV69eBX1O\nnDiR7t270y1QIrJLly60a9eO9957r9z9RoOUnK76889u5tHjj0NJlfqScfVyKqeajpQKrYs4zXyp\nV68eW7duJS8v73fGYfPmzdSvX7/gOLhcp4jQuHFjNm3ahIiUWlYztNTnihUrGDRoEIsWLWLv3r3k\n5OTQrl27iGQ/ImjhUvXq1dm8eXOB3O3btw/bd3kI7XPPnj2AK3U6ZcoUpk+fXvB5Tk5OkXKp8STl\nRgz797u1Cr16wcCB4dvZKMEwIqdDhw5UrVqVN954o8j5PXv2MHPmTM4555yCc8HlOfPy8tiwYQON\n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\nzM+VsnViXQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7f17518>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of heptane in vapour phase 0.575\n",
+ "mole fraction of heptane in liquid phase 0.387\n",
+ "Temperature is 113 degree C\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5: Page 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.5\n",
+ "# Page: 366\n",
+ "\n",
+ "print'Illustration 9.5 - Page: 366\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import numpy\n",
+ "import pylab\n",
+ "import numpy.linalg as lin\n",
+ "#****Data****#\n",
+ "Pt = 760.0;# [mm Hg]\n",
+ "zFa = 0.5;# [mol fraction benzene]\n",
+ "zFb = 0.25;# [mol fraction toulene]\n",
+ "zFc = 0.25;# [mol fraction o-xylene]\n",
+ "#********#\n",
+ "\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol feed]\n",
+ "# For Summtion of Yd_star to be unity, W/D = 2.08 \n",
+ "# The Eqn.are \n",
+ "# (1): W+D = F \n",
+ "# (2): W-2.08D = 0\n",
+ "a =numpy.array([[1.0 ,1.0],[1.0 ,-2.08]]);\n",
+ "b = numpy.array([[F*1.0],[0]]);\n",
+ "soln = lin.solve(a,b)\n",
+ "W = soln[0];\n",
+ "D = soln[1];\n",
+ "Sub = ['A','B','C'];\n",
+ "p =numpy.array([1370 ,550, 200]);# [mm Hg]\n",
+ "m = numpy.zeros(3);\n",
+ "zF = [zFa ,zFb, zFc];# [Given]\n",
+ "yd_star = numpy.array([0,0,0]);\n",
+ "xW = numpy.zeros(3);\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " m[i] = p[i]/Pt;\n",
+ " yd_star[i]=(zF[i])*((W/D)+1)#/(1+(W/(D*m[i])));\n",
+ " xW[i] = yd_star[i]/m[i];\n",
+ "\n",
+ "print\"\\t \\t \\t \\t \\t \\t \\t \\t At W/D = 2.08\\n\\n\\n\"\n",
+ "print\"Substance \\t \\t p(mm Hg)\\t \\t m\\t \\t \\t \\t \\t \\t \\t \\t \\t \\t zF\\t \\t \\t \\t \\t \\t \\t yd*\\t\\t\\t\\t\\t\\txW\\n\"\n",
+ "for i in range(0,3):\n",
+ " print \"\\n\",Sub[i],\" \\t \\t \\t \\t \",p[i],\"\\t \\t \\t \\t \",m[i],\"\\t \\t \\t\",m[i],\"\\t \\t \\t\",zF[i],\" \\t \\t \\t\",yd_star[i],\"\\t\",xW[i]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.5 - Page: 366\n",
+ "\n",
+ "\n",
+ "\t \t \t \t \t \t \t \t At W/D = 2.08\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Substance \t \t p(mm Hg)\t \t m\t \t \t \t \t \t \t \t \t \t zF\t \t \t \t \t \t \t yd*\t\t\t\t\t\txW\n",
+ "\n",
+ "\n",
+ "A \t \t \t \t 1370 \t \t \t \t 1.80263157895 \t \t \t1.80263157895 \t \t \t0.5 \t \t \t1 \t0.554744525547\n",
+ "\n",
+ "B \t \t \t \t 550 \t \t \t \t 0.723684210526 \t \t \t0.723684210526 \t \t \t0.25 \t \t \t0 \t0.0\n",
+ "\n",
+ "C \t \t \t \t 200 \t \t \t \t 0.263157894737 \t \t \t0.263157894737 \t \t \t0.25 \t \t \t0 \t0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6: Page 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.6\n",
+ "# Page: 370\n",
+ "\n",
+ "print'Illustration 9.6 - Page: 370\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "xF = 0.5;\n",
+ "D = 0.6*100;# [mol]\n",
+ "#******#\n",
+ "\n",
+ "W = F-D;# [mol]\n",
+ "# From Illustration 9.1:\n",
+ "alpha = 2.16;# [average value of alpha]\n",
+ "# From Eqn.9.46;\n",
+ "def f45(xW):\n",
+ " return math.log(F*xF/(W*xW))-(alpha*math.log(F*(1-xF)/(W*(1-xW))))\n",
+ "xW = fsolve(f45,0.5);# [mole fraction heptane]\n",
+ "def f46(yD):\n",
+ " return F*xF-((D*yD)+(W*xW))\n",
+ "yD = fsolve(f46,100);# [mole fraction heptane]\n",
+ "print\"Mole Fraction of heptane in the distillate is \",round(yD,3),\"\\n\"\n",
+ "print\"Mole Fraction of heptane in the residue is \",round(xW,3),\" \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.6 - Page: 370\n",
+ "\n",
+ "\n",
+ "Mole Fraction of heptane in the distillate is 0.615 \n",
+ "\n",
+ "Mole Fraction of heptane in the residue is 0.328 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7: Page 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.7\n",
+ "# Page: 371\n",
+ "from scipy.optimize import fsolve\n",
+ "print'Illustration 9.7 - Page: 371\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "#****Data****#\n",
+ "# a:benzene b:toulene c:o-xylene\n",
+ "# Assume:\n",
+ "Bt = 100.0;#[OC]\n",
+ "pa = 1370.0;# [mm Hg]\n",
+ "pb = 550.0;# [mm Hg]\n",
+ "pc = 200.0;# [mm Hg]\n",
+ "xFa = 0.5;# [mole fraction]\n",
+ "xFb = 0.25;# [mole fraction]\n",
+ "xFc = 0.25;# [mole fraction]\n",
+ "# Basis:\n",
+ "F = 100.0;# [mol]\n",
+ "D = 32.5;# [mol]\n",
+ "#*******#\n",
+ "\n",
+ "ref = pb;\n",
+ "alpha_a = pa/ref;\n",
+ "alpha_b = pb/ref;\n",
+ "alpha_c = pc/ref;\n",
+ "W = F-D;# [mol]\n",
+ "xbW = 0.3;# [mol]\n",
+ "xaW = 0.4;# [mol]\n",
+ "xcW = 0.3;# [mol]\n",
+ "err = 1.0;\n",
+ "while(err>(10**(-1))):\n",
+ " # From Eqn. 9.47:\n",
+ " def f47(xaW):\n",
+ " return math.log(F*xFa/(W*xaW))-(alpha_a*math.log(F*xFb/(W*xbW)))\n",
+ " xaW = fsolve(f47,xbW);\n",
+ " def f48(xcW):\n",
+ " return math.log(F*xFc/(W*xcW))-(alpha_c*math.log(F*xFb/(W*xbW)))\n",
+ " xcW = fsolve(f48,xbW);\n",
+ " xbW_n = 1-(xaW+xcW);\n",
+ " err = abs(xbW-xbW_n);\n",
+ " xbw = xbW_n;\n",
+ "\n",
+ "# Material balance:\n",
+ "# for A:\n",
+ "def f49(yaD):\n",
+ " return F*xFa-((D*yaD)+(W*xaW))\n",
+ "yaD = fsolve(f49,100);# [mole fraction benzene]\n",
+ "# For B:\n",
+ "def f50(ybD):\n",
+ " return F*xFb-((D*ybD)+(W*xbW))\n",
+ "ybD = fsolve(f50,100);# [mole fraction toulene]\n",
+ "# For C:\n",
+ "def f51(ycD):\n",
+ " return F*xFc-((D*ycD)+(W*xcW))\n",
+ "ycD = fsolve(f51,100);# [mole fraction o-xylene]\n",
+ "print\"The residual compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(xaW,3)\n",
+ "print\"Toulene:\\n\",round(xbW,3)\n",
+ "print\"o-xylene:\\n\",round(xcW,3)\n",
+ "print\"\\n The composited distillate compositions are:\\n\"\n",
+ "print\"Benzene:\\n\",round(yaD,3)\n",
+ "print\"Toulene:\\n\",round(ybD,3)\n",
+ "print\"o-xylene:\\n\",round(ycD,3)\n",
+ "#the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.7 - Page: 371\n",
+ "\n",
+ "\n",
+ "The residual compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.438\n",
+ "Toulene:\n",
+ "0.3\n",
+ "o-xylene:\n",
+ "0.343\n",
+ "\n",
+ " The composited distillate compositions are:\n",
+ "\n",
+ "Benzene:\n",
+ "0.628\n",
+ "Toulene:\n",
+ "0.146\n",
+ "o-xylene:\n",
+ "0.057\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8: Page 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.8\n",
+ "# Page: 388\n",
+ "\n",
+ "print'Illustration 9.8 - Page: 388\\n\\n'\n",
+ "import numpy.linalg as lin\n",
+ "# solution\n",
+ "\n",
+ "#****Data*****#\n",
+ "# a:methanol b:water\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr]\n",
+ "#******#\n",
+ "\n",
+ "#(a)\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Xa = 0.5;# [Wt fraction]\n",
+ "Xb = 1-Xa;# [Wt fraction]\n",
+ "Temp1 = 26.7;# [OC]\n",
+ "Temp2 = 37.8;# [OC]\n",
+ "F1 = 5000.0;# [kg/hr];\n",
+ "# Basis: 1hr\n",
+ "F = (F1*Xa/Ma)+(F1*Xb/Mb);# [kmol/hr]\n",
+ "# For feed:\n",
+ "zF = (F1*Xa/Ma)/F;# [mole fracton methanol]\n",
+ "MavF = F1/F;# [kg/kmol]\n",
+ "# For distillate:\n",
+ "xD = (95/Ma)/((95/Ma)+(5/Mb));# [mole fraction methanol]\n",
+ "MavD = 100.0/((95/Ma)+(5/Mb));# [kg/kmol]\n",
+ "# For residue:\n",
+ "xW = (1/Ma)/((1/Ma)+(99/Mb));# [mole fraction methanol]\n",
+ "MavR = 100/((1/Ma)+(99/Mb));# [kg/kmol]\n",
+ "# (1): D+W = F [Eqn.9.75]\n",
+ "# (2): D*xD+W*xW = F*zF [Eqn. 9.76]\n",
+ "# Solvving simultaneously:\n",
+ "a = numpy.array([[1.0 ,1.0],[xD ,xW]]);\n",
+ "b = numpy.array([F,F*zF]);\n",
+ "soln = lin.solve(a,b);\n",
+ "D = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "print\"Quantity of Distillate is\", round(D*MavD),\" kg/hr\\n\"\n",
+ "print\"Quantity of Residue is \",round(W*MavR),\" kg/hr\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (b)\n",
+ "# For the vapour-liquid equilibria:\n",
+ "Tempo = 19.69;# [Base Temp. according to \"International Critical Tables\"]\n",
+ "BtR = 99.0;# [Bubble point of the residue, OC]\n",
+ "hR = 4179.0;# [J/kg K]\n",
+ "hF = 3852.0;# [J/kg K]\n",
+ "def f52(tF):\n",
+ " return (F1*hF*(tF-Temp1))-((W*MavR)*hR*(BtR-Temp2))\n",
+ "tF = fsolve(f52,Temp1);# [OC]\n",
+ "BtF = 76.0;# [Bubble point of feed, OC]\n",
+ "# For the feed:\n",
+ "delta_Hs = -902.5;# [kJ/kmol]\n",
+ "Hf = ((hF/1000.0)*MavF*(tF-Tempo))+delta_Hs;# [kJ/kmol]\n",
+ "# From Fig 9.27:\n",
+ "HD = 6000.0;# [kJ/kmol]\n",
+ "HLo = 3640.0;# [kJ/kmol]\n",
+ "HW = 6000.0;# [kJ/kmol]\n",
+ "print\"The enthalpy of feed is \",round(Hf),\" kJ/kmol\\n\"\n",
+ "print\"The enthalpy of the residue is \",round(HW),\" kJ/kmol\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (c)\n",
+ "# From Fig.9.27:\n",
+ "# The miium reflux ratio is established by the tie line (x = 0.37 y = 0.71), which extended pass through F,the feed.\n",
+ "# At Dm:\n",
+ "Qm = 62570.0;# [kJ/kmol]\n",
+ "Hg1 = 38610.0;# [kJ/kmol]\n",
+ "# From Eqn. 9.65:\n",
+ "Rm = (Qm-Hg1)/(Hg1-HLo);\n",
+ "print\"The minimum reflux ratio is \",round(Rm,4),\"\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (d)\n",
+ "# From Fig. 9.28:\n",
+ "Np = 4.9;\n",
+ "# But it include the reboiler.\n",
+ "Nm = Np-1;\n",
+ "print\"The minimum number of theoretical trays required is \",round(Nm),\" \\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (e)\n",
+ "R = 1.5*Rm;\n",
+ "# Eqn. 9.65:\n",
+ "def f53(Q_prime):\n",
+ " return R-((Q_prime-Hg1)/(Hg1-HLo))\n",
+ "Q_prime = fsolve(f53,2);# [kJ/kmol]\n",
+ "def f54(Qc):\n",
+ " return Q_prime-(HD+(Qc/D))\n",
+ "Qc = fsolve(f54,2);# [kJ/hr]\n",
+ "Qc = Qc/3600.0;# [kW]\n",
+ "print\"The Condensor heat load is \",round(Qc),\" kW\\n\"\n",
+ "# From Eqn. 9.77:\n",
+ "def f55(Q_dprime):\n",
+ " return (F*Hf)-((D*Q_prime)+(W*Q_dprime))\n",
+ "Q_dprime = fsolve(f55,2);\n",
+ "def f56(Qb):\n",
+ " return Q_dprime-(HW-(Qb/W))\n",
+ "Qb = fsolve(f56,2);# [kJ/hr]\n",
+ "Qb = Qb/3600.0;# [kW]\n",
+ "print\"The Reboiler heat load is \",round(Qb),\" kW\\n\"\n",
+ "print\"\\n\"\n",
+ "\n",
+ "# (f)\n",
+ "# From Fig: 9.28\n",
+ "Np = 9.0;\n",
+ "# But it is including the reboiler\n",
+ "print\"No. of theoretical trays in tower is\",Np-1,\"\\n\",\n",
+ "G1 = D*(R+1);# [kmol/hr]\n",
+ "Lo = D*R;# [kmol/hr]\n",
+ "# From Fig. 9.28:\n",
+ "# At the feed tray:\n",
+ "x4 = 0.415;\n",
+ "y5 = 0.676;\n",
+ "x5 = 0.318;\n",
+ "y6 = 0.554;\n",
+ "# From Eqn. 9.64:\n",
+ "def f57(L4):\n",
+ " return (L4/D)-((xD-y5)/(y5-x4))\n",
+ "L4 = fsolve(f57,2);# [kmol/hr]\n",
+ "# From Eqn. 9.62:\n",
+ "def f58(G5):\n",
+ " return (L4/G5)-((xD-y5)/(xD-x4))\n",
+ "G5 = fsolve(f58,2);# [kmol/hr]\n",
+ "# From Eqn. 9.74:\n",
+ "def f59(L5_bar):\n",
+ " return (L5_bar/W)-((y6-xW)/(y6-x5))\n",
+ "L5_bar = fsolve(f59,2);# [kmol/hr]\n",
+ "# From Eqn. 9.72:\n",
+ "def f60(G6_bar):\n",
+ " return (L5_bar/G6_bar)-((y6-xW)/(x5-xW))\n",
+ "G6_bar = fsolve(f60,2);# [kmol/hr]\n",
+ "# At the bottom:\n",
+ "# Material Balance:\n",
+ "# Eqn. 9.66:\n",
+ "# (1): L8_bar-GW_bar = W;\n",
+ "# From Fig. 9.28:\n",
+ "yW = 0.035;\n",
+ "x8 = 0.02;\n",
+ "# From Eqn. 9.72:\n",
+ "L8ByGW_bar = (yW-xW)/(x8-xW);\n",
+ "# (2): L8_bar-(L8ByGW_bar*Gw_bar) = 0\n",
+ "a = numpy.array([[1 ,-1],[1 ,-L8ByGW_bar]]);\n",
+ "b = numpy.array([W,0]);\n",
+ "soln = lin.solve(a,b)\n",
+ "L8_bar = soln[0];# [kmol/h]\n",
+ "GW_bar = soln[1];# [kmol/h]\n",
+ "print\"The Liquid quantity inside the tower is \",round(L8_bar),\" kmol/hr\\n\"\n",
+ "print\"The vapour quantity inside the tower is \",round(GW_bar),\" kmol/hr\\n\"\n",
+ "# The answers are slightly different in textbook due to approximation while in python the answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.8 - Page: 388\n",
+ "\n",
+ "\n",
+ "Quantity of Distillate is 2606.0 kg/hr\n",
+ "\n",
+ "Quantity of Residue is 2394.0 kg/hr\n",
+ "\n",
+ "\n",
+ "\n",
+ "The enthalpy of feed is 2545.0 kJ/kmol\n",
+ "\n",
+ "The enthalpy of the residue is 6000.0 kJ/kmol\n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum reflux ratio is 0.6852 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The minimum number of theoretical trays required is 4.0 \n",
+ "\n",
+ "\n",
+ "\n",
+ "The Condensor heat load is 1609.0 kW\n",
+ "\n",
+ "The Reboiler heat load is 1817.0 kW\n",
+ "\n",
+ "\n",
+ "\n",
+ "No. of theoretical trays in tower is 8.0 \n",
+ "The Liquid quantity inside the tower is 259.0 kmol/hr\n",
+ "\n",
+ "The vapour quantity inside the tower is 127.0 kmol/hr\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9: Page 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.9\n",
+ "# Page: 395\n",
+ "\n",
+ "print'Illustration 9.9 - Page: 395\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "import scipy\n",
+ "import numpy\n",
+ "import numpy.linalg as lin\n",
+ "\n",
+ "#****Data****#\n",
+ "P = 695.0;# [kN/square m]\n",
+ "#********#\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# From Illustration 9.8:\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "HF = 2533;# [kJ/kmol]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "zD = 0.915;# [mole fraction methanol]\n",
+ "HD = 3640.0;# [kJ/kmol]\n",
+ "Qc = 5990000.0;# [kJ/h]\n",
+ "# Since the bottom will essentially be pure water:\n",
+ "HW = 6094.0;# [kJ/kmol]\n",
+ "# From Steam tables:\n",
+ "Hs = 2699.0;# [enthalpy of saturated steam, kJ/kg]\n",
+ "hW = 4.2*(Tempo-0);# [enthalpy of water, kJ/kg]\n",
+ "HgNpPlus1 = (Hs-hW)*Mb;# [kJ/kmol]\n",
+ "# (1): GNpPlus1-W = D-F [From Eqn. 9.86]\n",
+ "# (2): (GNpPlus1*HgNpPlus1)-(W*HW) = (D*HD)+Qc-(F*HF) [From Eqn. 9.88]\n",
+ "a = numpy.array([[1 ,-1],[HgNpPlus1 ,-HW]]);\n",
+ "b = numpy.array([[D-F],[(D*HD)+Qc-(F*HF)]]);\n",
+ "soln=lin.solve(a,b)\n",
+ "GNpPlus1 = soln[0];# [kmol/h]\n",
+ "W = soln[1];# [kmol/h]\n",
+ "# From Eqn. 9.87:\n",
+ "def f61(xW):\n",
+ " return (F*zF)-((D*zD)+(W*xW))\n",
+ "xW = fsolve(f61,2);\n",
+ "# The enthalpy of the solution at its bubble point is 6048 kJ/kmol, sufficiently closed to 6094 assumed earlier.\n",
+ "# For delta_w:\n",
+ "xdelta_w = W*xW/(W-GNpPlus1);\n",
+ "Q_dprime = ((W*HW)-(GNpPlus1*HgNpPlus1))/(W-GNpPlus1);# [kJ/kmol]\n",
+ "# From Fig 9.27 ad Fig. 9.28, and for the stripping section:\n",
+ "Np = 9.5;\n",
+ "print\"Steam Rate: \",round(GNpPlus1,1),\"kmol/h\\n\"\n",
+ "print\"Bottom Composition: xW:\",round(xW,5),\"\\n\"\n",
+ "print\"Number of theoretical stages: \",Np,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.9 - Page: 395\n",
+ "\n",
+ "\n",
+ "Steam Rate: 159.7 kmol/h\n",
+ "\n",
+ "Bottom Composition: xW: 0.00281 \n",
+ "\n",
+ "Number of theoretical stages: 9.5 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10: Page 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.10\n",
+ "# Page: 412\n",
+ "\n",
+ "print'Illustration 9.10 - Page: 412\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "Ma = 32.04;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "# Feed:\n",
+ "F1 = 5000;# [kg/h]\n",
+ "F = 216.8;# [kmol/h]\n",
+ "Tempo = 19.7;# [OC]\n",
+ "zF = 0.360;# [mole fraction methanol]\n",
+ "MavF = 23.1;# [kg/kmol]\n",
+ "Tempf = 58.3;# [OC]\n",
+ "# Distillate:\n",
+ "D1 = 2620;# [kg/h]\n",
+ "D = 84.4;# [kkmol/h]\n",
+ "xD = 0.915;# [mole fraction methanol]\n",
+ "# Residue:\n",
+ "R1 = 2380;# [kg/h]\n",
+ "R = 132.4;# [kmol/h]\n",
+ "xW = 0.00565;# [mole fraction methanol]\n",
+ "\n",
+ "# From Fig. 9.42 (Pg 413):\n",
+ "BtF = 76.0;# [Bubble point if the feed, OC]\n",
+ "DtF = 89.7;# [Dew point of the feed, OC]\n",
+ "# Latent heat of vaporisation at 76 OC\n",
+ "lambda_a = 1046.7;# [kJ/kg]\n",
+ "lambda_b = 2284;# [kJ/kg]\n",
+ "ha = 2.721;# [kJ/kg K]\n",
+ "hb = 4.187;# [kJ/kg K]\n",
+ "hF = 3.852;# [kJ/kg K]\n",
+ "# If heats of solution is ignaored:\n",
+ "# Enthalpy of the feed at the bubble point referred to the feed temp.\n",
+ "HF = hF*MavF*(BtF-Tempf);# [kJ/kmol]\n",
+ "# enthalpy of the saturated vapour at dew point referred to the liquid at feed temp.\n",
+ "HL = (zF*((ha*Ma*(DtF-Tempf))+(lambda_a*Ma)))+((1-zF)*((hb*Mb*(DtF-Tempf))+(lambda_b*Mb)));# [kJ/kmol]\n",
+ "q = HL/(HL-HF);\n",
+ "slope = q/(q-1);\n",
+ "# In fig. 9.42: xD,xW & zF are located on the 45 degree diagonal & the q line is drawn with slope = 'slope' .\n",
+ "# The operating line for minimum reflux ratio in this case pass through the intersection of the q line and the equilibrium curve.\n",
+ "ordinate = 0.57;\n",
+ "def f62(Rm):\n",
+ " return ordinate-(xD/(Rm+1))\n",
+ "Rm = fsolve(f62,0);# [mole reflux/mole distillate]\n",
+ "# from fig. 9.42 (Pg 413):\n",
+ "# The minimum number of theoretical trays is determied using the 45 degree diagonal as operating line.\n",
+ "Np = 4.9;# [including the reboiler]\n",
+ "R = 1.5*Rm;# [mole reflux/mole distillate]\n",
+ "# From Eqn. 9.49:\n",
+ "L = R*D;# [kmol/h]\n",
+ "# From Eqn. 9.115:\n",
+ "G = D*(R+1);# [kmol/h]\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = (q*F)+L;# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = (F*(q-1))+G;# [kmol/h]\n",
+ "ordinateN = xD/(R+1);\n",
+ "# As in Fig. 9.43:\n",
+ "# The y-intercept = ordinateN and enriching and exhausting operating lines are plotted.\n",
+ "# Number of theoretical stages are determined.\n",
+ "NpN = 8.8;# [including the reboiler]\n",
+ "print\"Number of theoretical stages is \",NpN-1,\"\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.10 - Page: 412\n",
+ "\n",
+ "\n",
+ "Number of theoretical stages is 7.8 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11: Page 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.11\n",
+ "# Page: 423\n",
+ "\n",
+ "print'Illustration 9.11 - Page: 423\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "#****Data****#\n",
+ "# a:ethanol b:water\n",
+ "zF = 0.3;\n",
+ "xa = 0.3;# [mole fraction of ethanol]\n",
+ "Temp = 78.2;# [OC]\n",
+ "Ao = 0.0462;# [Area of perforations,square m]\n",
+ "t = 0.450;# [m]\n",
+ "#******#\n",
+ "\n",
+ "Ma = 46.05;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "xb = 1-xa;# [mole fraction of water]\n",
+ "ma = 0.3*Ma/((0.3*Ma)+(xb*Mb));# [mass fraction of ethanol]\n",
+ "mb = 1-ma;# [mass fraction of water]\n",
+ "\n",
+ "\n",
+ "# Feed:\n",
+ "F1 = 910.0;# [kg/h]\n",
+ "Xa = F1*ma/Ma;# [moles of ethanol]\n",
+ "Xb = F1*mb/Mb;# [moles of water]\n",
+ "F = Xa+Xb;# [Total moles]\n",
+ "# Distillate:\n",
+ "xD = 0.80;# [mole fraction of ethanol]\n",
+ "# If essentially all the ethanol is removed from the residue:\n",
+ "D = Xa/xD;# [kmol/h]\n",
+ "MavD = (xD*Ma)+((1-xD)*Mb);# [kg/kmol]\n",
+ "D1 = D*MavD;# [kg/h]\n",
+ "Density_G = (MavD/22.41)*(273.0/(273+Temp));# [kg/cubic meter]\n",
+ "Density_L = 744.9;# [kg/cubic meter]\n",
+ "sigma = 0.021;# [N/m]\n",
+ "\n",
+ "# From Table 6.2,Pg 169:\n",
+ "alpha = (0.0744*t)+0.01173;\n",
+ "beeta = (0.0304*t)+0.015;\n",
+ "At = math.pi*(0.760**2)/4;# [Tower cross sectional Area, square m]\n",
+ "WByT = 530.0/760;# [Table 6.1, Pg 162]\n",
+ "Ad = 0.0808*At;# [Downspout area,square m]\n",
+ "Aa = At-(2*Ad);# [Active area,square m]\n",
+ "# abcissa = (L/G)*(density_G/Density_L)^0.5\n",
+ "# Assume:\n",
+ "abcissa = 0.1;\n",
+ "# From Eqn.6.30:\n",
+ "Cf = (alpha*math.log10(1/abcissa)+beeta)*(sigma/0.020)**0.2;\n",
+ "# From Eqn. 6.29:\n",
+ "Vf = Cf*((Density_L-Density_G)/Density_G)**(1.0/2);# [m/s]\n",
+ "An = At-Ad;# [square m]\n",
+ "R = 3.0;# [Reflux Ratio]\n",
+ "G = D*(R+1);\n",
+ "G1 = (G*22.41/3600)*((273.0+Temp)/273);# [cubic meter/s]\n",
+ "V = G1/An;# [Vapour velocity,m/s]\n",
+ "percent = (V/Vf)*100;\n",
+ "# Vapour velocity is 58 percent of flooding velocity (amply safe)\n",
+ "L = R*D;# [kmol/h]\n",
+ "L1 = L*MavD;# [kg/h]\n",
+ "abcissa = (L1/(G1*3600.0*Density_G))*(Density_G/Density_L)**0.5;\n",
+ "# Since the value of abcissa is less than0.1, the calculaed value of Cf is correct.\n",
+ "# Since the feed is at the buubble point.\n",
+ "q = 1;\n",
+ "# From Eqn. 9.126:\n",
+ "L_bar = L+(q*F);# [kmol/h]\n",
+ "# From Eqn. 9.127:\n",
+ "G_bar = G+F*(q-1);# [kmol/h]\n",
+ "# The enthalpy of saturated steam,referred to 0 OC,69 kN/square m:\n",
+ "HGNpPlus1 = 2699.0;# [kN m/kg]\n",
+ "# This will be the enthalpy as it enters the tower if expanded adiabatically to the tower pressure\n",
+ "# The enthalpy of steam at 1 std. atm:\n",
+ "HGsat = 2676.0;# [kN m/kg]\n",
+ "Lambda = 2257.0;# [kN m/kg]\n",
+ "# From Eqn. 9.140:\n",
+ "def f63(GNpPlus1_bar):\n",
+ " return G_bar-(GNpPlus1_bar*(1+((HGNpPlus1-HGsat)*Mb/(Lambda*Mb))))\n",
+ "GNpPlus1_bar = fsolve(f63,7);\n",
+ "# From Eqn. 9.141:\n",
+ "LNp_bar = L_bar-(G_bar-GNpPlus1_bar);\n",
+ "\n",
+ "# Tray Efficiencies:\n",
+ "# Consider the situation:\n",
+ "x = 0.5;\n",
+ "y_star = 0.962;\n",
+ "Temp = 79.8;# [OC]\n",
+ "# This is in the enriching section.\n",
+ "Density_L = 791;# [kg/cubic meter]\n",
+ "Density_G = 1.253;# [kg/cubic meter]\n",
+ "# From equilibrium data:\n",
+ "m = 0.42;\n",
+ "A = L/(m*G);\n",
+ "# From chapter 2:\n",
+ "ScG = 0.930;\n",
+ "Dl = 2.065*10**(-9);# [square m/s]\n",
+ "# For L = 38.73 kmol/h\n",
+ "q = 4.36*10**(-4);# [cubic meter/s]\n",
+ "# For G = 51.64 kmol/h\n",
+ "Va = 1.046;# [m/s]\n",
+ "# From tray dimensions:\n",
+ "z = 0.647;# [m]\n",
+ "Z = 0.542;# [m]\n",
+ "hW = 0.06;# [m]\n",
+ "# From Eqn. 6.61:\n",
+ "NtG = (0.776+(4.57*hW)-(0.238*Va*Density_G**0.5)+(104.6*q/Z))/(ScG**0.5);\n",
+ "# From Eqn. 6.38\n",
+ "hL = 6.10*10**(-3)+(0.725*hW)-(0.238*hW*Va*(Density_G)**0.5)+(1.225*q/z);# [m]\n",
+ "# From Eqn. 6.64:\n",
+ "thetha_L = hL*z*Z/q;# [s]\n",
+ "# From Eqn. 6.62:\n",
+ "NtL = 40000*(Dl**0.5)*((0.213*Va*Density_G**0.5)+0.15)*thetha_L;\n",
+ "# From Eqn. 6.52:\n",
+ "NtoG = 1/((1/NtG)+(1/(A*NtL)));\n",
+ "# From Eqn. 6.51:\n",
+ "EoG = 1-math.exp(-NtoG);\n",
+ "# From Eqn. 6.63:\n",
+ "DE = ((3.93*10**(-3))+(0.0171*Va)+(3.67*q/Z)+(0.1800*hW))**2;\n",
+ "# From Eqn. 6.59:\n",
+ "Pe = Z**2/(DE*thetha_L);\n",
+ "# From Eqn. 6.58:\n",
+ "eta = (Pe/2)*((1+(4*m*G1*EoG/(L1*Pe)))**0.5-1);\n",
+ "# From Eqn. 6.57:\n",
+ "EMG = EoG*(((1-math.exp(-(eta+Pe)))/((eta+Pe)*(1+(eta+Pe)/eta)))+((math.exp(eta)-1)/(eta*(1+(eta/(eta+Pe))))));\n",
+ "# Entrainment is neglible:\n",
+ "# Similarly for other x\n",
+ "# Value = [x Entrainment]\n",
+ "#Value = [0 0.48;0.1 .543;0.3 0.74;0.5 EMG;0.7 0.72];\n",
+ "\n",
+ "# Tray Calculation:\n",
+ "op_intercept = xD/(R+1);\n",
+ "# From Fig. 9.48:\n",
+ "# The exhausting section operating line, on this scale plot, for all practical purposes passes through the origin.\n",
+ "# The broken curve is located so that, at each concentration, vertical distances corresponding to lines BC and AC are in the ratio of EMG.\n",
+ "# This curve is used instead of equilibrium trays to locate the ideal trays.\n",
+ "# The feed tray is thirteenth.\n",
+ "x14 = 0.0150;\n",
+ "alpha = 8.95;\n",
+ "EMG = 0.48;\n",
+ "A_bar = L_bar/(alpha*G_bar);\n",
+ "# From Eqn. 8.16:\n",
+ "Eo = math.log(1+(EMG*((1/A_bar)-1)))/math.log(1/A_bar);\n",
+ "# The 6 real trays corresponds to: \n",
+ "NRp = 6*Eo;\n",
+ "xW = 0.015/((math.exp(NRp*math.log(1/A_bar))-A_bar)/(1-A_bar));# [mole fraction ethanol]\n",
+ "# This corresponds to ethanol loss of 0.5 kg/day.\n",
+ "print\"The mole fraction of ethanol in residue is\",round(xW,8)\n",
+ "print\"The Reflux ratio of \",R,\" will cause the ethanol loss of 0.5 kg/day\\n\"\n",
+ "print\"Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\\n\"\n",
+ "print\"Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.11 - Page: 423\n",
+ "\n",
+ "\n",
+ "The mole fraction of ethanol in residue is 6.28e-06\n",
+ "The Reflux ratio of 3.0 will cause the ethanol loss of 0.5 kg/day\n",
+ "\n",
+ "Larger reflux ratios would reduce this, but the cost of additional steam will probaby make them not worthwile.\n",
+ "\n",
+ "Smaller values of R, with corresponding reduced steam cost and larger ethanol loss, should be considered, but care must be taken to ensure vapour velocities above the weeping velocities.\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex-9.12: Pg- 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Illustration 9.12\n",
+ "# Page: 429\n",
+ "\n",
+ "print'Illustration 9.12 - Page: 429\\n\\n'\n",
+ "\n",
+ "# solution\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "# a:methanol b:water\n",
+ "# Vapour and liquid quantities throughout the tower, as in Illustration 9.8, with the Eqn. 9.62, 9.64, 9.72, 9.74:\n",
+ "# Data = [x tL(OC) y tG(OC) Vapor(kmol/h) Vapor(kg/h) Liquid(kmol/h) Liquid(kg/h)]\n",
+ "Ma = 34.02;# [kg/kmol]\n",
+ "Mb = 18.02;# [kg/kmol]\n",
+ "Temp = 78.7;# [OC]\n",
+ "x = numpy.array([0.915, 0.600 ,0.370, 0.370, 0.200, 0.100, 0.02]);\n",
+ "y = numpy.array([0.915, 0.762, 0.656, 0.656, 0.360 ,0.178, 0.032]);\n",
+ "\n",
+ "plt.plot(x,y);\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"mole fraction of methanol in liquid\");\n",
+ "ax.set_ylabel(\"mole fraction of methanol in vapour\");\n",
+ "plt.title(\"Operating Line curve\");\n",
+ "plt.legend(loc=\"lower right\")\n",
+ "plt.show()\n",
+ "#x = 0.370: the dividing point between stripping and enriching section\n",
+ "tL =numpy.array([66, 71, 76, 76, 82, 87, 96.3]);# [Bubble point, OC]\n",
+ "tG = numpy.array([68.2 ,74.3 ,78.7 ,78.7 ,89.7 ,94.7 ,99.3]);# [Dew Point, OC]\n",
+ "Vapor = numpy.array([171.3, 164.0 ,160.9, 168.6, 161.6, 160.6, 127.6]);# [kmol/h]\n",
+ "Vapor1 = numpy.array([5303, 4684, 4378, 4585, 3721, 3296 ,2360]);# [kg/h]\n",
+ "Liquid = numpy.array([86.7 ,79.6 ,76.5 ,301, 294, 293, 260]);# [kmol/h]\n",
+ "Liquid1 = numpy.array([2723, 2104, 1779 ,7000, 6138, 5690 ,4767]);# [kg/h]\n",
+ "Data = numpy.zeros(shape=(7,8));\n",
+ "for j in range(1,7):\n",
+ " Data[j,0]= x[j];\n",
+ " Data[j,1]= tL[j];\n",
+ " Data[j,2]= y[j];\n",
+ " Data[j,3]= tG[j];\n",
+ " Data[j,4]= Vapor[j]; \n",
+ " Data[j,5]= Vapor1[j];\n",
+ " Data[j,6]= Liquid[j];\n",
+ " Data[j,7]= Liquid1[j];\n",
+ "\n",
+ "# The tower diameter will be set by the conditions at the top of the stripping section because of the large liquid flow at this point.\n",
+ "# From Illustration 9.8:\n",
+ "G = Data[3,5];\n",
+ "L = Data[3,7];\n",
+ "Density_G = (Data[3,5]/(22.41*Data[3,4]))*(273.0/(273+Temp));# [kg/cubic m]\n",
+ "Density_L = 905.0;# [kg/cubic m]\n",
+ "# abcissa = (L/G)*(Density_L/Density_G)^0.5\n",
+ "abcissa = (Data[3,7]/Data[3,5])*(Density_G/Density_L)**0.5;\n",
+ "# From Fig. 6.34, choose a gas pressure drop of 450 N/square m/m\n",
+ "ordinate = 0.0825;\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "Cf = 95;\n",
+ "viscosity_L = 4.5*10**(-4);# [kg/m.s]\n",
+ "sigma = 0.029;# [N/m]\n",
+ "J = 1;\n",
+ "G_prime = (ordinate*Density_G*(Density_L-Density_G)/(Cf*viscosity_L**0.1))**0.5;# [kg/square m.s]\n",
+ "A = G/(3600*G_prime);# [Tower ,cross section area,square m]\n",
+ "L_prime = L/(A*3600);# [kg/square m.s]\n",
+ "# Mass transfer will be computed for the same location:\n",
+ "# From Table 6.4 (Pg 205):\n",
+ "m = 36.4;\n",
+ "n = (0.0498*L_prime)-0.1013;\n",
+ "p = 0.274;\n",
+ "aAW = m*((808*G_prime/Density_G**0.5)**n)*L_prime**p;# [square m/cubic m]\n",
+ "# From Table 6.5 (Pg 206):\n",
+ "dS = 0.0530;# [m]\n",
+ "beeta = 1.508*dS**0.376;\n",
+ "shi_LsW = 2.47*10**(-4)/dS**1.21;\n",
+ "shi_LtW = ((2.09*10**(-6))*(737.5*L_prime)**beeta)/dS**2;\n",
+ "shi_LOW = shi_LtW-shi_LsW; \n",
+ "shi_Ls = (0.0486*viscosity_L**0.02*sigma**0.99)/(dS**1.21*Density_L**0.37);\n",
+ "H = ((975.7*L_prime**0.57*viscosity_L**0.13)/(Density_L**0.84*((2.024*L_prime**0.430)-1)))*(sigma/0.073)**(0.1737-0.262*math.log10(L_prime));# [m]\n",
+ "shi_Lo = shi_LOW*H;\n",
+ "shi_Lt = shi_Lo+shi_Ls;\n",
+ "# From Eqn. 6.73:\n",
+ "aA = aAW*(shi_Lo/shi_LOW);# [square m/cubic m]\n",
+ "# From Table 6.3 (Pg 196):\n",
+ "e = 0.71;\n",
+ "# From Eqn. 6.71:\n",
+ "eLo = e-shi_Lt;\n",
+ "# From Chapter 2:\n",
+ "ScG = 1;\n",
+ "MavG = 0.656*Ma+(1-0.656)*Mb;# [kg/kmol]\n",
+ "G = G_prime/MavG;\n",
+ "viscosity_G = 2.96*10**(-5);# [kg/m.s]\n",
+ "# From Eqn. 6.70:\n",
+ "Fg = (1.195*G/ScG**(2/3))*((dS*G_prime/(viscosity_G*(1-eLo)))**(-0.36));# [kmol/square m s (mole fraction)]\n",
+ "kY_prime = Fg;# [kmol/square m s (mole fraction)]\n",
+ "DL = 4.80*10**(-9);# [square m/s]\n",
+ "ScL = viscosity_L/(Density_L*DL);\n",
+ "# From Eqn. 6.72:\n",
+ "kL = (25.1*DL/dS)*((dS*L_prime/viscosity_L)**0.45)*ScL**0.5;# [kmol/square m s (kmol/cubic m)]\n",
+ "# At 588.33 OC\n",
+ "Density_W = 53.82;# [kg/cubic m]\n",
+ "kx_prime = Density_W*kL;# [kmol/square m s (mole fraction)]\n",
+ "# Value1 = [x G a ky_prime*10^3 kx_prime]\n",
+ "Value1 = numpy.array([[0.915 ,0.0474 ,20.18 ,1.525, 0.01055],[0.6, 0.0454 ,21.56 ,1.542, 0.00865],[0.370 ,0.0444 ,21.92 ,1.545 ,0.00776],[0.370, 0.0466 ,38, 1.640, 0.0143],[0.2 ,0.0447, 32.82 ,1.692 ,0.0149],[0.1 ,0.0443 ,31.99 ,1.766 ,0.0146],[0.02, 0.0352 ,22.25 ,1.586 ,0.0150]]);\n",
+ "# From Fig: 9.50\n",
+ "# At x = 0.2:\n",
+ "y = 0.36;\n",
+ "slope = -(Value1[4,4]/(Value1[4,3]*10**(-3)));\n",
+ "# The operating line drawn from(x,y) with slope. The point where it cuts the eqb. line gives yi.\n",
+ "# K = ky_prime*a(yi-y)\n",
+ "# For the enriching section:\n",
+ "# En = [y yi 1/K Gy]\n",
+ "En = numpy.array([[0.915 ,0.960, 634 ,0.0433],[0.85 ,0.906 ,532.8 ,0.0394],[0.8 ,0.862 ,481.1 ,0.0366],[0.70, 0.760 ,499.1, 0.0314],[0.656, 0.702, 786.9, 0.0292]]);\n",
+ "# For the Stripping section:\n",
+ "# St = [y yi 1/K Gy]\n",
+ "St = numpy.array([[0.656, 0.707, 314.7, 0.0306],[0.50, 0.639, 124.6 ,0.0225],[0.40 ,0.580, 99.6 ,0.01787],[0.3 ,0.5 ,89 ,0.0134],[0.2 ,0.390, 92.6 ,0.00888],[0.10, 0.232, 154.5, 0.00416],[0.032 ,0.091, 481 ,0.00124]])\n",
+ "# Graphical Integration, according to Eqn.9.52::\n",
+ "\n",
+ "plt.plot(En[:,3],En[:,2],'g');\n",
+ "plt.grid();\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Enriching section\");\n",
+ "plt.show()\n",
+ "# From Area under the curve:\n",
+ "Ze = 7.53;# [m]\n",
+ "# Graphical Integration:\n",
+ "\n",
+ "plt.plot(St[:,3],St[:,2],'r');\n",
+ "plt.grid('on');\n",
+ "ax = pylab.gca()\n",
+ "ax.set_xlabel(\"Gy\");\n",
+ "ax.set_ylabel(\"1 / (ky_prime*a*(yi-y))\");\n",
+ "plt.title(\"Graphical Integration for Stripping section\");\n",
+ "plt.show()\n",
+ "\n",
+ "# From Area under the curve:\n",
+ "Zs = 4.54;# [m]\n",
+ "# Since the equlibrium curve slope varies so greatly that the use of overall mass transfer coeffecient is not recommended:\n",
+ "print\"Height of Tower for enriching Section is \",Ze,\" m\\n\"\n",
+ "print\"Height of Tower for Stripping Section is \",Zs,\" m\\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.12 - Page: 429\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa5ce470>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nOOecy8r/B+9bLqWB6Di+AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7bc0518>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4zit4v8B7C9A0gfoBi8AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa7dcd30>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height of Tower for enriching Section is 7.53 m\n",
+ "\n",
+ "Height of Tower for Stripping Section is 4.54 m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.13: Page 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Illustration 9.13:\n",
+ "\n",
+ "print'Illustration 9.13\\n\\n'\n",
+ "\n",
+ "#**************************Calculation Of Minimum Reflux ratio************************#\n",
+ "# Page: 436\n",
+ "print'Page: 436\\n\\n'\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy import interp\n",
+ "from scipy.optimize import fsolve\n",
+ "import numpy.linalg as lin\n",
+ "#***Data***#\n",
+ "# C1:CH4 C2:C2H6 C3:n-C3H8 C4:n-C4H10 C5:n-C5H12 C6:n-C6H14\n",
+ "# zF = [zF(C1) zF(C2) zF(C3) zF(C4) zF(C5) zF(C6)]\n",
+ "zF = numpy.array([0.03 ,0.07 ,0.15 ,0.33 ,0.30 ,0.12]);# [mole fraction]\n",
+ "LF_By_F = 0.667;\n",
+ "Temp = 82;# [OC]\n",
+ "ylk = 0.98;\n",
+ "yhk = 0.01;\n",
+ "#**********#\n",
+ "\n",
+ "# Data = [m HG HL(30 OC);m HG HL(60 OC);m HG HL(90 OC);m HG HL(120 OC);]\n",
+ "Data1 = numpy.array([[16.1 ,12790 ,9770],[19.3 ,13910, 11160],[21.8 ,15000, 12790],[24.0 ,16240, 14370]]);# [For C1]\n",
+ "Data2 = numpy.array([[3.45, 22440, 16280],[4.90 ,24300 ,18140],[6.25 ,26240 ,19890],[8.15 ,28140, 21630]]);# [For C2]\n",
+ "Data3 = numpy.array([[1.10, 31170, 16510],[2.00 ,33000 ,20590],[2.90, 35800 ,25600],[4.00 ,39000, 30900]]);# [For C3]\n",
+ "Data4 = numpy.array([[0.35, 41200 ,20350],[0.70 ,43850 ,25120],[1.16 ,46500, 30000],[1.78 ,50400 ,35400]]);# [For C4]\n",
+ "Data5 = numpy.array([[0.085, 50500, 24200],[0.26, 54000 ,32450],[0.50 ,57800 ,35600],[0.84, 61200 ,41400]]);# [For C5]\n",
+ "Data6 = numpy.array([[0.0300, 58800 ,27700],[0.130, 63500, 34200],[0.239 ,68150 ,40900],[0.448, 72700 ,48150]]);# [For C6]\n",
+ "\n",
+ "# T = [Temparature]\n",
+ "T = numpy.array([30,60,0,120]);\n",
+ "\n",
+ "# Flash vaporisation of the Feed:\n",
+ "# Basis: 1 kmol feed throughout\n",
+ "# After Several trials, assume:\n",
+ "F = 1.0;# [kmol]\n",
+ "GF_By_F = 0.333;\n",
+ "LF_By_GF = LF_By_F/GF_By_F;\n",
+ "m82 = numpy.zeros(6);\n",
+ "y = numpy.zeros(6);\n",
+ "m82[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m82[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m82[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m82[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m82[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m82[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range (0,6):\n",
+ " y[i] = zF[i]*(LF_By_GF+1)/(1.0+(2/m82[i]));\n",
+ "\n",
+ "Sum = sum(y);\n",
+ "# Since Sum is sufficiently close to 1.0, therefore:\n",
+ "q = 0.67;# [LF_By_F]\n",
+ "# Assume:\n",
+ "# C3: light key\n",
+ "# C5: heavy key\n",
+ "zlkF = zF[2];# [mole fraction]\n",
+ "zhkF = zF[4];# [mole fraction]\n",
+ "ylkD = ylk*zF[2];# [kmol]\n",
+ "yhkD = yhk*zF[4];# [kmol]\n",
+ "\n",
+ "# Estimate average Temp to be 80 OC\n",
+ "m80 = numpy.zeros(6);\n",
+ "alpha80 = numpy.zeros(6);\n",
+ "m80[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m80[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m80[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m80[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m80[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m80[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha80[i] = m80[i]/m80[4];\n",
+ "\n",
+ "# By Eqn. 9.164:\n",
+ "yD_By_zF1 = (((alpha80[0]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[0])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C1]\n",
+ "yD_By_zF2 = (((alpha80[1]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[1])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C2]\n",
+ "yD_By_zF6 = (((alpha80[5]-1)/(alpha80[2]-1))*(ylkD/zF[2]))+(((alpha80[2]-alpha80[5])/(alpha80[2]-1))*(yhkD/zF[4]));# [For C6]\n",
+ "# The distillate contains:\n",
+ "yC1 = 0.03;# [kmol C1]\n",
+ "yC2 = 0.07;# [kmol C2]\n",
+ "yC6 = 0;# [kmol C6]\n",
+ "# By Eqn 9.165:\n",
+ "def g1(phi):\n",
+ " return (((alpha80[0]*zF[0])/(alpha80[0]-phi))+((alpha80[1]*zF[1])/(alpha80[1]-phi))+((alpha80[2]*zF[2])/(alpha80[2]-phi))+((alpha80[3]*zF[3])/(alpha80[3]-phi))+((alpha80[4]*zF[4])/(alpha80[4]-phi))+((alpha80[5]*zF[5])/(alpha80[5]-phi)))-(F*(1-q))\n",
+ "# Between alphaC3 & alphaC4:\n",
+ "phi1 = fsolve(g1,3);\n",
+ "# Between alphaC4 & alphaC5:\n",
+ "phi2 = fsolve(g1,1.5);\n",
+ "# From Eqn. 9.166:\n",
+ "# Val = D*(Rm+1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi1))+(alpha80(2)*yC2/(alpha80(2)-phi1))+(alpha80(3)*ylkD/(alpha80(3)-phi1))+(alpha80(4)*yD/(alpha80(4)-phi1))+(alpha80(i)*yhkD/(alpha80(5)-phi1))+(alpha80(6)*yC6/(alpha80(6)-phi1)) = Val.....................(1)\n",
+ "# (alpha80(1)*yC1/(alpha80(1)-phi2))+(alpha80(2)*yC2/(alpha80(2)-phi2))+(alpha80(3)*ylkD/(alpha80(3)-phi2))+(alpha80(4)*yD/(alpha80(4)-phi2))+(alpha80(i)*yhkD/(alpha80(5)-phi2))+(alpha80(6)*yC6/(alpha80(6)-phi2)) = Val ....................(2)\n",
+ "# Solving simultaneously:\n",
+ "a =numpy.array([[-alpha80[3]/(alpha80[3]-phi1), 1],[-alpha80[3]/(alpha80[3]-phi2), 1]]);\n",
+ "b =numpy.array([[alpha80[0]*yC1/[alpha80[0]-phi1]]+[alpha80[1]*yC2/[alpha80[1]-phi1]]+[alpha80[2]*ylkD/[alpha80[2]-phi1]]+[alpha80[i]*yhkD/[alpha80[4]-phi1]]+[alpha80[5]*yC6/[alpha80[5]-phi1]],[alpha80[0]*yC1/[alpha80[0]-phi2]]+[alpha80[1]*yC2/[alpha80[1]-phi2]]+[alpha80[2]*ylkD/[alpha80[2]-phi2]]+[alpha80[i]*yhkD/[alpha80[4]-phi2]]+[alpha80[5]*yC6/[alpha80[5]-phi2]]])\n",
+ "soln = lin.solve(a,b);\n",
+ "yC4 =0.1313547 # [kmol C4 in the distillate]\n",
+ "Val =0.617469; # [kmol C4 in the distillate]\n",
+ "# For the distillate, at a dew point of 46 OC\n",
+ "ydD = numpy.array([yC1,yC2 ,ylkD ,yC4 ,yhkD ,yC6]);\n",
+ "D = sum(ydD);\n",
+ "yD = zeros(6);\n",
+ "m46 = zeros(6);\n",
+ "alpha46 = zeros(6);\n",
+ "Ratio1= zeros(6);\n",
+ "m46[0] = interp(Temp,T,Data1[:,0]);# [For C1]\n",
+ "m46[1] = interp(Temp,T,Data2[:,0]);# [For C2]\n",
+ "m46[2] = interp(Temp,T,Data3[:,0]);# [For C3]\n",
+ "m46[3] = interp(Temp,T,Data4[:,0]);# [For C4]\n",
+ "m46[4] = interp(Temp,T,Data5[:,0]);# [For C5]\n",
+ "m46[5] = interp(Temp,T,Data6[:,0]);# [For C6]\n",
+ "yD=numpy.array([0.0786,0.1835,0.3854,0.34,0.007866,0.0])\n",
+ "# mhk = mC5 at 46.6 OC, the assumed 46 OC is satisfactory.\n",
+ "\n",
+ "# For the residue, at a dew point of 46 OC\n",
+ "xwW =numpy.array([zF[0]-yC1, zF[1]-yC2 ,zF[2]-ylkD, zF[3]-yC4, zF[4]-yhkD, zF[5]-yC6]);\n",
+ "W = sum(xwW);\n",
+ "xW = zeros(6);\n",
+ "m113 = zeros(6);\n",
+ "alpha113 = zeros(6);\n",
+ "alphalk_av=zeros(6);\n",
+ "alpha_av=zeros(6);\n",
+ "Value=zeros(6);\n",
+ "m113[0] = interp(Temp,T,Data1[:,1]);# [For C1]\n",
+ "m113[1] = interp(Temp,T,Data2[:,1]);# [For C2]\n",
+ "m113[2] = interp(Temp,T,Data3[:,1]);# [For C3]\n",
+ "m113[3] = interp(Temp,T,Data4[:,1]);# [For C4]\n",
+ "m113[4] = interp(Temp,T,Data5[:,1]);# [For C5]\n",
+ "m113[5] = interp(Temp,T,Data6[:,1]);# [For C6]\n",
+ "for i in range(0,6):\n",
+ " alpha113[i] = m113[i]/m113[4];\n",
+ " xW[i] = xwW[i]/W;\n",
+ " # Ratio = yD/alpha46\n",
+ " Value[i] = alpha113[i]*xW[i];\n",
+ "\n",
+ "# mhk = mC5 at 114 OC, the assumed 113 OC is satisfactory.\n",
+ "Temp_Avg = (114+46.6)/2;# [OC]\n",
+ "# Temp_avg is very close to the assumed 80 OC\n",
+ "Rm = (Val/D)-1;\n",
+ "print\"Minimum Reflux Ratio is \",Rm,\" mol reflux/mol distillate\\n \\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t:\",yD[0]\n",
+ "print\"C2\\t \\t \\t \\t:\",yD[1]\n",
+ "print\"C3\\t \\t \\t \\t:\",yD[2]\n",
+ "print\"C4\\t \\t \\t \\t:\",yD[3]\n",
+ "print\"C5\\t \\t \\t \\t:\",yD[4]\n",
+ "print\"C6\\t \\t \\t \\t:\",yD[5]\n",
+ "print\"\\n\"\n",
+ "print\"*****************Residue Composition*********************\\n\"\n",
+ "print\"C1\\t \\t \\t \\t: \",xW[0]\n",
+ "print\"C2\\t \\t \\t \\t: \",xW[1]\n",
+ "print\"C3\\t \\t \\t \\t: \",xW[2]\n",
+ "print\"C4\\t \\t \\t \\t: \",xW[3]\n",
+ "print\"C5\\t \\t \\t \\t: \",xW[4]\n",
+ "print\"C6\\t \\t \\t \\t: \",xW[5]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**********************Number of Theoretical stage***********************#\n",
+ "# Page:440\n",
+ "print'Page: 440\\n\\n'\n",
+ "\n",
+ "for i in range(0,6):\n",
+ " alpha_av[i] = (alpha46[i]*alpha113[i])**0.5;\n",
+ "\n",
+ "alphalk_av = alpha_av[1];\n",
+ "# By Eqn. 9.167:\n",
+ "xhkW = xwW[3];\n",
+ "xlkW = xwW[1];\n",
+ "Nm = 3.496;\n",
+ "# Ratio = yD/xW\n",
+ "Ratio2= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " Ratio2[i] = (alpha_av[i]**(Nm+1))*yhkD/xhkW;\n",
+ "\n",
+ "# For C1:\n",
+ "# yC1D-Ratio(1)*xC1W = 0\n",
+ "# yC1D+xC1W = zF(1)\n",
+ "# Similarly for others\n",
+ "yD2=zeros(6)\n",
+ "xW2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " a = numpy.array([[1 ,-Ratio2[i]],[1, 1]]);\n",
+ " b = [0,zF[i]];\n",
+ " soln =lin.solve(a,b);\n",
+ " yD2[i] = soln[0];# [kmol]\n",
+ " xW2[i] = soln[1];# [kmol]\n",
+ "\n",
+ "D = sum(yD2);# [kmol]\n",
+ "W = sum(xW2);# [kmol]\n",
+ "# The distillate dew point computes to 46.6 OC and the residue bubble point computes to 113 OC, which is significantly close to the assumed.\n",
+ "\n",
+ "#***************Product composition at R = 0.8***********************#\n",
+ "# Page:441\n",
+ "print'Page: 441\\n\\n'\n",
+ "\n",
+ "# Since C1 and C2 do not enter in the residue nor C6 in the distillate, appreciably at total reflux or minimum reflux ratio, it will be assumed that they will not enter R = 0.8. C3 and C5 distribution are fixed by specifications. Only that C4 remains to be estimated.\n",
+ "# R = [Infinte 0.8 0.58] [Reflux ratios For C4]\n",
+ "R = [inf ,0.8, 0.58];\n",
+ "# Val = R/(R+1)\n",
+ "val=[ 0 , 2.0 , 2.0]\n",
+ "# ydD = [Inf 0.58] \n",
+ "y4D = [0.1255, 0.1306];\n",
+ "yC4D = 0.1306 ;# by Linear Interpolation\n",
+ "# For Distillate:\n",
+ "Sum1 = sum(Ratio1);\n",
+ "x0 = numpy.array([0.004,0.0444501,0.2495,0.65640,0.0451,0.0])\n",
+ "print\"For the reflux ratio of 0.8\\n\"\n",
+ "print\"*****************Distillate Composition*********************\\n\"\n",
+ "print\"\\t\\t\\t Liquid reflux in equilibrium with the distillate vapour\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\\t:\",x0[i]\n",
+ "\n",
+ "# For boiler:\n",
+ "\n",
+ "#**********Number Of Theoretical Trays***************#\n",
+ "# Page: 443\n",
+ "print'Page: 443\\n\\n'\n",
+ "\n",
+ "R = 0.8;# [reflux ratio]\n",
+ "# From Eqn. 9.175\n",
+ "intersection = (zlkF-(ylkD/D)*(1-q)/(R+1))/(zhkF-(yhkD/D)*(1-q)/(R+1));\n",
+ "# Enriching Section:\n",
+ "y1 = zeros(5);\n",
+ "L = R*D;# [kmol]\n",
+ "G = L+D;# [kmol]\n",
+ "# Assume: Temp1 = 57 OC\n",
+ "# alpha57 = [C1 C2 C3 C4 C5]\n",
+ "alpha57 = numpy.array([79.1 ,19.6 ,7.50, 2.66, 1]);\n",
+ "# From Eqn. 9.177, n = 0:\n",
+ "Val57=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y1[i] = (L/G)*x0[i]+((D/G)*yD[i]);\n",
+ " Val57[i] = y1[i]/alpha57[i];\n",
+ "\n",
+ "x1 = Val57/sum(Val57);\n",
+ "mC5 = sum(Val57);\n",
+ "Temp1 = 58.4; # [OC]\n",
+ "# Liquid x1's is in equilibrium with y1's.\n",
+ "xlk_By_xhk1 = x1[2]/x1[4];\n",
+ "# Tray 1 is not the feed tray.\n",
+ "# Assume: Temp2 = 63 OC\n",
+ "# alpha63 = [C1 C2 C3 C4 C5]\n",
+ "alpha63 = numpy.array([68.9 ,17.85, 6.95, 2.53, 1.00]);\n",
+ "# From Eqn. 9.177, n = 1:\n",
+ "y2=zeros(6)\n",
+ "Val63=zeros(6)\n",
+ "for i in range(0,5):\n",
+ " y2[i] = (L/G)*x1[i]+((D/G)*yD[i]);\n",
+ " Val63[i] = y1[i]/alpha63[i];\n",
+ " \n",
+ "mC5 = sum(Val63);\n",
+ "x2 = Val63/sum(Val63);\n",
+ "xlk_By_xhk2 = x2[2]/x2[4];\n",
+ "# The tray calculation are continued downward in this manner.\n",
+ "# Results for trays 5 & 6 are:\n",
+ "# Temp 75.4 [OC]\n",
+ "# x5 = [C1 C2 C3 C4 C5]\n",
+ "x5 = numpy.array([0.00240, 0.0195, 0.1125, 0.4800, 0.3859]);\n",
+ "xlk_By_xhk5 = x5[2]/x5[4];\n",
+ "# Temp6 = 79.2 OC\n",
+ "# x6 = [C1 C2 C3 C4 C5]\n",
+ "x6 = numpy.array([0.00204 ,0.0187 ,0.1045, 0.4247 ,0.4500]);\n",
+ "xlk_By_xhk6 = x6[2]/x6[4];\n",
+ "# From Eqn. 9.176:\n",
+ "# Tray 6 is the feed tray\n",
+ "Np1 = 6;\n",
+ "\n",
+ "# Exhausting section:\n",
+ "# Assume Temp = 110 OC\n",
+ "L_bar = L+(q*F);# [kmol]\n",
+ "G_bar = L_bar-W;# [kmol]\n",
+ "# alpha57 = [C3 C4 C5 C6]\n",
+ "alpha110 = numpy.array([5 ,2.2 ,1, 0.501]);\n",
+ "# From Eqn. 9.178:\n",
+ "xNp = zeros(4);\n",
+ "Val110=zeros(6)\n",
+ "k = 0;\n",
+ "for i in range(2,6):\n",
+ " xNp[k] = ((G_bar/L_bar)*yNpPlus1[i])+((W/L_bar)*xW[i]);\n",
+ " Val110[k] = alpha110[k]*xNp[k];\n",
+ " k = k+1;\n",
+ "\n",
+ "yNp = Val110/sum(Val110);\n",
+ "mC5 = 1/sum(Val110);\n",
+ "# yNp is in Eqb. with xNp:\n",
+ "xlk_By_xhkNp = xNp[0]/xNp[3];\n",
+ "# Results for Np-7 to Np-9 trays:\n",
+ "# For Np-7\n",
+ "# Temp = 95.7 OC\n",
+ "# xNpMinus7 = [C3 C4 C5 C6]\n",
+ "xNpMinus7 = numpy.array([0.0790 ,0.3944 ,0.3850, 0.1366]);\n",
+ "xlk_By_xhkNpMinus7 = xNpMinus7[0]/xNpMinus7[2];\n",
+ "# For Np-8\n",
+ "# Temp = 94.1 OC\n",
+ "# xNpMinus8 = [C3 C4 C5 C6]\n",
+ "xNpMinus8 = numpy.array([0.0915, 0.3897 ,0.3826, 0.1362]);\n",
+ "xlk_By_xhkNpMinus8 = xNpMinus8[0]/xNpMinus8[2];\n",
+ "# For Np-9\n",
+ "# Temp = 93.6 OC\n",
+ "# xNpMinus9 = [C3 C4 C5 C6]\n",
+ "xNpMinus9 = numpy.array([0.1032, 0.3812, 0.3801 ,0.1355]);\n",
+ "xlk_By_xhkNpMinus9 = xNpMinus9[0]/xNpMinus9[2];\n",
+ "# From Eqn. 9.176:\n",
+ "# Np-8 is the feed tray.\n",
+ "def g2(Np):\n",
+ " return Np-8-Np1\n",
+ "Np = fsolve(g2,7);\n",
+ "print\"Number of theoretical Trays required for R = 0.8: \",Np[0]\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Composition Correction*****************#\n",
+ "# Page: 446\n",
+ "print'Page: 446\\n\\n'\n",
+ "\n",
+ "# New Bubble Point:\n",
+ "# Temp = 86.4 OC\n",
+ "x6_new = x6*(1-xNpMinus8[3]);\n",
+ "x6_new[4] = xNpMinus8[3];\n",
+ "# alpha86 = [C1 C2 C3 C4 C5 C6]\n",
+ "alpha86 =numpy.array([46.5, 13.5, 5.87, 2.39, 1.00, 0.467]);\n",
+ "# From Eqn. 9.181:\n",
+ "xhkn = x5[3];\n",
+ "xhknPlus1 = x6_new[3];\n",
+ "xC65 = alpha86[5]*x6_new[4]*xhkn/xhknPlus1;\n",
+ "x5_new = x5*(1-xC65);\n",
+ "x5_new[4] = 1-sum(x5_new);\n",
+ "# Tray 5 has a bubble point of 80 OC\n",
+ "# Similarly , the calculations are continued upward:\n",
+ "# x2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x2_new = numpy.array([0.0021, 0.0214 ,0.1418, 0.6786, 0.1553, 0.00262]);\n",
+ "# y2_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_new = numpy.array([0.0444, 0.111 ,0.2885, 0.5099, 0.0458 ,0.00034]);\n",
+ "# x1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x1_new = numpy.array([0.00226, 0.0241, 0.1697 ,0.7100, 0.0932, 0.00079]);\n",
+ "# y1_new = [C1 C2 C3 C4 C5 C6]\n",
+ "y1_new = numpy.array([0.0451 ,0.1209 ,0.3259 ,0.4840 ,0.0239 ,0.000090]);\n",
+ "# x0_new = [C1 C2 C3 C4 C5 C6]\n",
+ "x0_new = numpy.array([0.00425 ,0.0425 ,0.2495, 0.6611 ,0.0425 ,0.00015]);\n",
+ "# yD_new = [C1 C2 C3 C4 C5 C6]\n",
+ "yD_new = numpy.array([0.0789 ,0.1842 ,0.3870 ,0.3420 ,0.0079, 0.00001]);\n",
+ "# From Eqn. 9.184:\n",
+ "# For C1 & C2\n",
+ "alphalkm = alpha86[2];\n",
+ "xlkmPlus1 = xNpMinus7[0];\n",
+ "xlkm = x6_new[2];\n",
+ "xC17 = x6_new[0]*alpha86[2]*xlkmPlus1/(alpha86[0]*xlkm);\n",
+ "xC27 = x6_new[1]*alpha86[2]*xlkmPlus1/(alpha86[1]*xlkm);\n",
+ "# Since xC17 = 1-xC27\n",
+ "# The adjusted value above constitute x7's.\n",
+ "# The new bubbl point is 94 OC\n",
+ "# The calculations are continued down in the same fashion.\n",
+ "# The new tray 6 has:\n",
+ "# xC1 = 0.000023 & xC2 = 0.00236\n",
+ "# It is clear that the conc. of these components are reducing so rapidly that there is no need to go an further.\n",
+ "print\"******Corrected Composition***********\\n\"\n",
+ "print\"Component\\t \\tx2\\t \\t \\t y2\\t \\t \\t x1\\t \\t \\t y1\\t \\t \\tx0\\t \\t \\tyD\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t\",x2_new[i],\"\\t \\t \\t \\t \",y2_new[i],\"\\t \\t \\t \\t \",x1_new[i],\"\\t \\t \\t \\t\",y1_new[i],\"\\t \\t \\t \\t \\t\",x0_new[i],\"\\t \\t \\t \\t\",yD_new[i]\n",
+ "\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#*************Heat Load of Condensor & Boiler & L/G ratio**********#\n",
+ "# Page 448\n",
+ "print'Page: 448\\n\\n'\n",
+ "\n",
+ "# Values of x0, yD & y1 are taken from the corrected concentration.\n",
+ "# HD46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HD46 = numpy.array([13490, 23380, 32100, 42330, 52570, 61480]);# [kJ/kmol]\n",
+ "yDHD= zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yDHD[i] = yD_new[i]*HD46[i];\n",
+ "\n",
+ "HD = sum(yDHD);# [kJ]\n",
+ "# HL46 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL46 = numpy.array([10470, 17210, 18610, 22790, 27100, 31050]);# [kJ/kmol]\n",
+ "xHL=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL[i] = x0_new[i]*HL46[i];\n",
+ "\n",
+ "HL0 = sum(xHL);# [kJ]\n",
+ "# HG58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG58 = numpy.array([13960, 24190, 37260, 43500, 53900, 63500]);# [kJ/kmol]\n",
+ "yHG1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG1[i] = y1_new[i]*HG58[i];\n",
+ "\n",
+ "HG1 = sum(yHG1);# [kJ]\n",
+ "# From Eqn. 9.54:\n",
+ "Qc = D*((R+1)*HG1-(R*HL0)-HD);# [kJ/kmol feed]\n",
+ "# Similarly:\n",
+ "HW = 39220;# [kJ]\n",
+ "HF = 34260;# [kJ]\n",
+ "# From Eqn. 9.55:\n",
+ "Qb = (D*HD)+(W*HW)+Qc-(F*HF);# [kJ/kmol feed]\n",
+ "# For tray n = 1\n",
+ "G1 = D*(R+1);# [kmol]\n",
+ "# With x1 & y2 from corrected composition;\n",
+ "# HG66 = [C1 C2 C3 C4 C5 C6]\n",
+ "HG66 = numpy.array([14070, 24610, 33800, 44100, 54780, 64430]);# [kJ/kmol feed]\n",
+ "yHG2=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " yHG2[i] = y2_new[i]*HG66[i];\n",
+ "\n",
+ "HG2 = sum(yHG2);# [kJ]\n",
+ "# HL58 = [C1 C2 C3 C4 C5 C6]\n",
+ "HL58 =numpy.array([11610 ,17910 ,20470, 24900, 29500, 33840]);# [kJ/kmol feed]\n",
+ "xHL1=zeros(6)\n",
+ "for i in range(0,6):\n",
+ " xHL1[i] = x1_new[i]*HL58[i];\n",
+ "\n",
+ "HL1 = sum(xHL1);# [kJ]\n",
+ "# From Eqn. 9.185:\n",
+ "G2 = (Qc+D*(HD-HL1))/(HG2-HL1);# [kmol]\n",
+ "L2 = G2-D;# [kmol]\n",
+ "L2_By_G2 = L2/G2;\n",
+ "# Similarly, the calculations are made for other trays in enriching section.\n",
+ "# For tray, Np = 14:\n",
+ "# C1 & C2 are absent.\n",
+ "# HG113 = [C3 C4 C5 C6]\n",
+ "HG113 = numpy.array([38260, 49310 ,60240, 71640]);# [kJ/kmol feed]\n",
+ "k = 2;\n",
+ "yHG15=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " yHG15[i] = yNpPlus1[k]*HG113[i];\n",
+ " k = k+1;\n",
+ "\n",
+ "HG15 = sum(yHG15);\n",
+ "# HL107 = [C3 C4 C5 C6]\n",
+ "HL107 = numpy.array([29310 ,31870, 37680 ,43500]);# [kJ/kmol feed]\n",
+ "xHL14=zeros(6)\n",
+ "for i in range(0,4):\n",
+ " xHL14[i] = xNp[i]*HL107[i];\n",
+ "\n",
+ "HL14 = sum(xHL14);# [kJ]\n",
+ "# Similarly:\n",
+ "HL13 = 36790;# [kJ]\n",
+ "HG14 = 52610;# [kJ]\n",
+ "# From Eqn. 9.186:\n",
+ "G15_bar = (Qb+(W*(HL14-HW)))/(HG15-HL14);# [kmol]\n",
+ "L14_bar = W+G15_bar;# [kmol]\n",
+ "G14_bar = (Qb+(W*(HL13-HW)))/(HG14-HL13);# [kmol]\n",
+ "L14_By_G14 = L14_bar/G14_bar;\n",
+ "print\"Condensor Heat Load kJ:\\n\",HL0\n",
+ "print\"Reboiler Heat Load kJ:\\n\",HG15\n",
+ "# For other Exhausting Section Trays:\n",
+ "# Result = [Tray No. L_By_G Temp(OC)]\n",
+ "# Tray 0: Condensor\n",
+ "# Tray 15: Reboiler\n",
+ "Result = numpy.array([[0,0.80 ,46.6],[1 ,0.432 ,58.4],[2, 0.437, 66],[3, 0.369, 70.4],[4 ,0.305, 74],[5 ,0.310, 80.3],[6, 1.53, 86.4],[7, 4.05 ,94.1],[8 ,3.25 ,96.3],[9, 2.88 ,97.7],[10 ,2.58 ,99],[11, 2.48 ,100],[12 ,2.47 ,102.9],[13 ,2.42 ,104.6],[14 ,2.18 ,107.9],[15, 1.73 ,113.5]]);\n",
+ "print\"**************L/G*************\\n\"\n",
+ "print\"Tray No. \\t\\t L/G\\t\\t\\t\\t Temp(OC)\\n\"\n",
+ "for i in range(0,16):\n",
+ " print Result[i,0],\"\\t\\t \\t \\t\",Result[i,1],\"\\t \\t \\t\",Result[i,2];\n",
+ "\n",
+ "# These values are not final.\n",
+ "# They scatter eratically because they are based on the temp. and conc. computed with the assumption of constant L/G\n",
+ "print\"\\n\"\n",
+ "\n",
+ "#**************Thiele Geddes Method******************#\n",
+ "# Page:452\n",
+ "print'Page: 452\\n\\n'\n",
+ "\n",
+ "# Use the tray Temperature to obtain m.\n",
+ "# For C4:\n",
+ "# m = [0(Condensor) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(Reboiler)]\n",
+ "m = numpy.array([0.50 ,0.66, 0.75 ,0.81 ,0.86 ,0.95 ,1.07 ,1.22 ,1.27 ,1.29 ,1.30, 1.32, 1.40, 1.45, 1.51, 1.65]);\n",
+ "A = numpy.array([1.6,0.65,0.582,0.4555,0.354,0.326,1.42990])\n",
+ "S = numpy.array([0.3012,0.39076,0.4479,0.503875,0.53225,0.56680,0.59917,0.69,0.95375])\n",
+ "\n",
+ "# f = Tray No. 6\n",
+ "\n",
+ "# From Eqn. 9.196:\n",
+ "# Value1 = Gf*yf/(D*zD)\n",
+ "Sum = 0;\n",
+ "for i in range(0,6):\n",
+ " Val = 1;\n",
+ " for j in range(0,6):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value1 = 1+Sum;\n",
+ "# From Eqn. 9.206:\n",
+ "# Value2 = Lf_bar*xf/(W*xW);\n",
+ "Sum = 0.5316\n",
+ "Value2 = 1+Sum;\n",
+ "# From Eqn. 9.208:\n",
+ "# Value3 = W*xW/(D*zD)\n",
+ "Value3 = A[6]*Value1/Value2;\n",
+ "# From Eqn. 9.210:\n",
+ "DyD = F*zF[3]/(Value3+1);# [kmol,C4]\n",
+ "# From Eqn. 9.209:\n",
+ "WxW = ((F*zF[3]))-(DyD);# [kmol, C4]\n",
+ "# Similarly:\n",
+ "# For [C1; C2; C3; C4; C5; C6]\n",
+ "# Result2 = [Value1 Value2 Value3 DyD WxW]\n",
+ "Result2 = numpy.array([[1.0150, 254*10**6 ,288*10**(-10), 0.03, 0],[1.0567, 8750, 298*10**(-5) ,0.07 ,0],[1.440, 17.241 ,0.0376 ,0.1447, 0.0053],[1.5778 ,1.5306 ,1.475, 0.1335 ,0.1965],[15580, 1.1595, 45.7 ,0.00643 ,0.29357],[1080 ,1.0687 ,7230 ,0.0000166 ,0.1198]]);\n",
+ "D = sum(Result2[:,2]);# [kmol]\n",
+ "W = sum(Result2[:,3]);# [kmol]\n",
+ "# In the Distillate:\n",
+ "DyD_C3 = Result[1,2];# [kmol]\n",
+ "zFC3 = zF[2];# [kmol]\n",
+ "percentC3 = (DyD_C3/zFC3)*100;\n",
+ "DyD_C5 = Result2[3,2];# [kmol]\n",
+ "zFC5 = zF[4];# [kmol]\n",
+ "percentC5 = (DyD_C5/zFC5)*100;\n",
+ "# These do not quite meet the original specification.\n",
+ "# For Tray 2 & C4\n",
+ "# From Eqn. 9.195:\n",
+ "# Value4 = G2*y2/(D*zD)\n",
+ "n = 2;\n",
+ "Sum = 0;\n",
+ "for i in range(0,n):\n",
+ " Val = 1;\n",
+ " for j in range(i,n):\n",
+ " Val = Val*A[j];\n",
+ " \n",
+ " Sum = Sum+Val;\n",
+ "\n",
+ "Value4 = 1+Sum;\n",
+ "# From The enthalpy Balnce:\n",
+ "G2 = 0.675;\n",
+ "# From Eqn. 9.211:\n",
+ "y2 = Value4*DyD/G2;\n",
+ "# Similarly:\n",
+ "# Value4 = [C1 C2 C3 C4 C5 C6]\n",
+ "Value4 = numpy.array([1.0235, 1.1062, 1.351, 2.705, 10.18 ,46.9]);\n",
+ "y2= numpy.array([0.04548,0.114,0.2896,0.53498,0.09697,0.001153]);\n",
+ "Y2 = sum(y2);\n",
+ "# Since Y2 is not equal to 1. THerefore the original temperature is incorrect. By adjusting y2 to unity.\n",
+ "# The dew point is 77 OC instead of 66 OC\n",
+ "# y2_adjusted = [C1 C2 C3 C4 C5 C6]\n",
+ "y2_adjusted = numpy.array([0.0419 ,0.1059 ,0.2675 ,0.4939, 0.0896, 0.00106]);\n",
+ "print\"*****************Composition By Thiele Geddes Method*****************\\n\"\n",
+ "print\"Component\\t \\t \\t y2\\n\"\n",
+ "for i in range(0,6):\n",
+ " print\"C\",i,\"\\t \\t \\t \\t\",y2_adjusted[i]\n",
+ "# some values of solution in the textbook are incorrect"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Illustration 9.13\n",
+ "\n",
+ "\n",
+ "Page: 436\n",
+ "\n",
+ "\n",
+ "Minimum Reflux Ratio is 0.619146164974 mol reflux/mol distillate\n",
+ " \n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0786\n",
+ "C2\t \t \t \t: 0.1835\n",
+ "C3\t \t \t \t: 0.3854\n",
+ "C4\t \t \t \t: 0.34\n",
+ "C5\t \t \t \t: 0.007866\n",
+ "C6\t \t \t \t: 0.0\n",
+ "\n",
+ "\n",
+ "*****************Residue Composition*********************\n",
+ "\n",
+ "C1\t \t \t \t: 0.0\n",
+ "C2\t \t \t \t: 0.0\n",
+ "C3\t \t \t \t: 0.00484930540974\n",
+ "C4\t \t \t \t: 0.321097242636\n",
+ "C5\t \t \t \t: 0.480081235564\n",
+ "C6\t \t \t \t: 0.19397221639\n",
+ "\n",
+ "\n",
+ "Page: 440\n",
+ "\n",
+ "\n",
+ "Page: 441\n",
+ "\n",
+ "\n",
+ "For the reflux ratio of 0.8\n",
+ "\n",
+ "*****************Distillate Composition*********************\n",
+ "\n",
+ "\t\t\t Liquid reflux in equilibrium with the distillate vapour\n",
+ "\n",
+ "C 0 \t \t \t \t\t: 0.004\n",
+ "C 1 \t \t \t \t\t: 0.0444501\n",
+ "C 2 \t \t \t \t\t: 0.2495\n",
+ "C 3 \t \t \t \t\t: 0.6564\n",
+ "C 4 \t \t \t \t\t: 0.0451\n",
+ "C 5 \t \t \t \t\t: 0.0\n",
+ "Page: 443\n",
+ "\n",
+ "\n",
+ "Number of theoretical Trays required for R = 0.8: 14.0\n",
+ "\n",
+ "\n",
+ "Page: 446\n",
+ "\n",
+ "\n",
+ "******Corrected Composition***********\n",
+ "\n",
+ "Component\t \tx2\t \t \t y2\t \t \t x1\t \t \t y1\t \t \tx0\t \t \tyD\n",
+ "\n",
+ "C 0 \t \t \t0.0021 \t \t \t \t 0.0444 \t \t \t \t 0.00226 \t \t \t \t0.0451 \t \t \t \t \t0.00425 \t \t \t \t0.0789\n",
+ "C 1 \t \t \t0.0214 \t \t \t \t 0.111 \t \t \t \t 0.0241 \t \t \t \t0.1209 \t \t \t \t \t0.0425 \t \t \t \t0.1842\n",
+ "C 2 \t \t \t0.1418 \t \t \t \t 0.2885 \t \t \t \t 0.1697 \t \t \t \t0.3259 \t \t \t \t \t0.2495 \t \t \t \t0.387\n",
+ "C 3 \t \t \t0.6786 \t \t \t \t 0.5099 \t \t \t \t 0.71 \t \t \t \t0.484 \t \t \t \t \t0.6611 \t \t \t \t0.342\n",
+ "C 4 \t \t \t0.1553 \t \t \t \t 0.0458 \t \t \t \t 0.0932 \t \t \t \t0.0239 \t \t \t \t \t0.0425 \t \t \t \t0.0079\n",
+ "C 5 \t \t \t0.00262 \t \t \t \t 0.00034 \t \t \t \t 0.00079 \t \t \t \t9e-05 \t \t \t \t \t0.00015 \t \t \t \t1e-05\n",
+ "\n",
+ "\n",
+ "Page: 448\n",
+ "\n",
+ "\n",
+ "Condensor Heat Load kJ:\n",
+ "21641.994\n",
+ "Reboiler Heat Load kJ:\n",
+ "59915.6783775\n",
+ "**************L/G*************\n",
+ "\n",
+ "Tray No. \t\t L/G\t\t\t\t Temp(OC)\n",
+ "\n",
+ "0.0 \t\t \t \t0.8 \t \t \t46.6\n",
+ "1.0 \t\t \t \t0.432 \t \t \t58.4\n",
+ "2.0 \t\t \t \t0.437 \t \t \t66.0\n",
+ "3.0 \t\t \t \t0.369 \t \t \t70.4\n",
+ "4.0 \t\t \t \t0.305 \t \t \t74.0\n",
+ "5.0 \t\t \t \t0.31 \t \t \t80.3\n",
+ "6.0 \t\t \t \t1.53 \t \t \t86.4\n",
+ "7.0 \t\t \t \t4.05 \t \t \t94.1\n",
+ "8.0 \t\t \t \t3.25 \t \t \t96.3\n",
+ "9.0 \t\t \t \t2.88 \t \t \t97.7\n",
+ "10.0 \t\t \t \t2.58 \t \t \t99.0\n",
+ "11.0 \t\t \t \t2.48 \t \t \t100.0\n",
+ "12.0 \t\t \t \t2.47 \t \t \t102.9\n",
+ "13.0 \t\t \t \t2.42 \t \t \t104.6\n",
+ "14.0 \t\t \t \t2.18 \t \t \t107.9\n",
+ "15.0 \t\t \t \t1.73 \t \t \t113.5\n",
+ "\n",
+ "\n",
+ "Page: 452\n",
+ "\n",
+ "\n",
+ "*****************Composition By Thiele Geddes Method*****************\n",
+ "\n",
+ "Component\t \t \t y2\n",
+ "\n",
+ "C 0 \t \t \t \t0.0419\n",
+ "C 1 \t \t \t \t0.1059\n",
+ "C 2 \t \t \t \t0.2675\n",
+ "C 3 \t \t \t \t0.4939\n",
+ "C 4 \t \t \t \t0.0896\n",
+ "C 5 \t \t \t \t0.00106\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/README.txt b/Mass_-_Transfer_Operations/README.txt
new file mode 100755
index 00000000..2f59a972
--- /dev/null
+++ b/Mass_-_Transfer_Operations/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Ishita Tewari
+Course: btech
+College/Institute/Organization: Gautam Buddha University, Greater Noida
+Department/Designation: School of Biotechnology
+Book Title: Mass - Transfer Operations
+Author: R. E. Treybal
+Publisher: McGraw - Hill Book Company, Malaysia
+Year of publication: 1980
+Isbn: 0070651760
+Edition: 3 \ No newline at end of file
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration13.3.png b/Mass_-_Transfer_Operations/screenshots/illustration13.3.png
new file mode 100755
index 00000000..90c839aa
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration13.3.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration13.3_1.png b/Mass_-_Transfer_Operations/screenshots/illustration13.3_1.png
new file mode 100755
index 00000000..90c839aa
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration13.3_1.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration13.3_2.png b/Mass_-_Transfer_Operations/screenshots/illustration13.3_2.png
new file mode 100755
index 00000000..90c839aa
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration13.3_2.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration3.1.png b/Mass_-_Transfer_Operations/screenshots/illustration3.1.png
new file mode 100755
index 00000000..ea9b58ca
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration3.1.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration3.1_1.png b/Mass_-_Transfer_Operations/screenshots/illustration3.1_1.png
new file mode 100755
index 00000000..ea9b58ca
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration3.1_1.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration3.1_2.png b/Mass_-_Transfer_Operations/screenshots/illustration3.1_2.png
new file mode 100755
index 00000000..ea9b58ca
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration3.1_2.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration5.1.png b/Mass_-_Transfer_Operations/screenshots/illustration5.1.png
new file mode 100755
index 00000000..3f31888e
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration5.1.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration5.1_1.png b/Mass_-_Transfer_Operations/screenshots/illustration5.1_1.png
new file mode 100755
index 00000000..3f31888e
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration5.1_1.png
Binary files differ
diff --git a/Mass_-_Transfer_Operations/screenshots/illustration5.1_2.png b/Mass_-_Transfer_Operations/screenshots/illustration5.1_2.png
new file mode 100755
index 00000000..3f31888e
--- /dev/null
+++ b/Mass_-_Transfer_Operations/screenshots/illustration5.1_2.png
Binary files differ
diff --git a/Material_Science/README.txt b/Material_Science/README.txt
new file mode 100755
index 00000000..21630bdf
--- /dev/null
+++ b/Material_Science/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Laxman Sole
+Course: btech
+College/Institute/Organization: Vishwakarma Institute of Technology, Pune
+Department/Designation: Electronics Engineering
+Book Title: Material Science
+Author: V. Rajendran
+Publisher: Tata Mcgraw Hill, New Delhi
+Year of publication: 2012
+Isbn: 0-07-132897-1
+Edition: 1 \ No newline at end of file
diff --git a/Material_Science/material_science_ch_1.ipynb b/Material_Science/material_science_ch_1.ipynb
new file mode 100755
index 00000000..974292a4
--- /dev/null
+++ b/Material_Science/material_science_ch_1.ipynb
@@ -0,0 +1,102 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Materials Properties and Requirements "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, page no-8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Resistance of the wire\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "r=0.45*10**-3 # radius of the wire\n",
+ "L=0.3 # length of the wire\n",
+ "rho=17.0*10**-9 # resistivity of wire in ohm-m \n",
+ "\n",
+ "#Calculations\n",
+ "R=rho*(L/(math.pi*r**2))\n",
+ "\n",
+ "#Result\n",
+ "print('The resistance of the wire is %.3f ohm'%R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The resistance of the wire is 0.008 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, page no-8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Extension of a wire\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "r=1.25*10**-3 # radius of the wire in m\n",
+ "L=3.0 # length of wire in m\n",
+ "F=4900.0 # applied force in Newton\n",
+ "e=2.05*10**11 # modulus of elasticity\n",
+ "\n",
+ "#calculation\n",
+ "s=F/(math.pi*r**2*e)\n",
+ "\n",
+ "#result\n",
+ "print('strain = %.3f\\nTherefore, extension = %.3f m'%(s,s*3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "strain = 0.005\n",
+ "Therefore, extension = 0.015 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_10.ipynb b/Material_Science/material_science_ch_10.ipynb
new file mode 100755
index 00000000..35c3d6bc
--- /dev/null
+++ b/Material_Science/material_science_ch_10.ipynb
@@ -0,0 +1,1488 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Transport Properties of Semiconductors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, page no-267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# intrinsic properties\n",
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300 # Temperature\n",
+ "mue=0.4 # Electron mobility \n",
+ "muh=0.2 # Hole mobility \n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "eg=0.7*e # Band gap\n",
+ "m=9.1*10**-31 # Mass of electron\n",
+ "me=0.55 # electron effective mass \n",
+ "mh=0.37 # hole effective \n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "#Calculations\n",
+ "ni=2*(2*math.pi*k*T/(h**2))**(1.5)\n",
+ "ni=ni*(m**1.5)*(mh*me)**(3.0/4.0)\n",
+ "ni=ni*math.e**(-eg/(k*T))\n",
+ "sig=ni*e*(mue+muh)\n",
+ "rho=1/sig\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe intrinsic concentration ni=%.3f *10^13 /m^3\"%(ni*10**-13))\n",
+ "print(\"\\nIntrinsic Conductivity,Sigma =%.3f *10^-6 per m^3\\n\\nIntrinsic Resistivity, rho = %.2f*10^6 Ohm-m\"%(sig*10**6,rho*10**-6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The intrinsic concentration ni=1.352 *10^13 /m^3\n",
+ "\n",
+ "Intrinsic Conductivity,Sigma =1.298 *10^-6 per m^3\n",
+ "\n",
+ "Intrinsic Resistivity, rho = 0.77*10^6 Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, page no-268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi energy\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "ni=1.45*10**10 # intrinsic concentration\n",
+ "nd=10**16 # donor concentration\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "T=300 # Temperature\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#Calculations\n",
+ "Ef=k*T*math.log(nd/ni)\n",
+ "Ef=Ef/e\n",
+ "\n",
+ "#Result\n",
+ "print(\"The Fermi energy with respect to Ef in intrinsic Si = %.3f eV\"%Ef)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi energy with respect to Ef in intrinsic Si = 0.348 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3, page no-269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# conductivity of intrinsic\n",
+ "\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "ni=2.5*10**19 # intrinsic concentration\n",
+ "mue=0.39 # electron mobility \n",
+ "muh=0.19 # hole mobility \n",
+ "l=10**-2 # length of rod\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "\n",
+ "# Calculations\n",
+ "sig=ni*e*(mue+muh)\n",
+ "R=l/(sig*10**-6)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The conductivity of intrinsic Ge is %.2f /ohm-m\\nThe Resistance is %.0f\"%(sig,R))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of intrinsic Ge is 2.32 /ohm-m\n",
+ "The Resistance is 4310\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, page no-269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# conductivity of intrinsic Ge\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "ni=1.5*10**16 # intrinsic concentration\n",
+ "mue=0.13 # electron mobility \n",
+ "muh=0.05 # hole mobility \n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#Calculations\n",
+ "sig=ni*e*(mue+muh)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The conductivity of intrinsic Ge is %.2f *10^-4 /ohm-m\"%(sig*10**4))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of intrinsic Ge is 4.32 *10^-4 /ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5, page no-270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# intrinsic conductivity and resistivity\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "ni=2.15*10**13 # intrinsic concentration\n",
+ "mue=3900 # electron mobility \n",
+ "muh=1900 # hole concentration\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#calculation\n",
+ "sig=ni*e*(mue+muh)\n",
+ "r=1/sig\n",
+ "\n",
+ "# Result\n",
+ "print(\"The conductivity of intrinsic Ge is %.2f *10^-2 /ohm-cm\\nThe intrinsic resistivity is %.0f Ohm-cm\"%(sig*10**2,r))\n",
+ "#answers in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of intrinsic Ge is 2.00 *10^-2 /ohm-cm\n",
+ "The intrinsic resistivity is 50 Ohm-cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6, page no-270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# intrinsic conductivity and resistivity\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "ni=2.1*10**19 # intrinsic concentration\n",
+ "mue=0.4 # electron mobility \n",
+ "muh=0.2 # hole mobility\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "p=4.5*10**23 # boron density \n",
+ "\n",
+ "# Calculation\n",
+ "sig=ni*e*(mue+muh)\n",
+ "r=p*e*muh\n",
+ "\n",
+ "#Result\n",
+ "print(\"The conductivity of intrinsic Ge is %.3f *10^-2 /ohm-cm\\nThe intrinsic resistivity is %.2f *10^4 per ohm-m\"%(sig,r*10**-4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of intrinsic Ge is 2.016 *10^-2 /ohm-cm\n",
+ "The intrinsic resistivity is 1.44 *10^4 per ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, page no-271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# intrinsic conductivity and resistivity\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "n=5*10**28 # Atomic concentration\n",
+ "ni=1.45*10**13 # intrinsic concentration\n",
+ "mue=1.35 # electron mobility\n",
+ "muh=0.45 # hole mobility\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "p=4.5*10**23 # boron density\n",
+ "\n",
+ "# calculation\n",
+ "sig=ni*e*(mue+muh)\n",
+ "rho=1/sig\n",
+ "r=rho*10**12\n",
+ "nd=n/10**9\n",
+ "p=(ni**2)/nd\n",
+ "sig2=nd*e*mue\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe intrinsic conductivity is %.2f *10^-6 /ohm-cm\\n\\nThe intrinsic resistivity is %.2f *10^-5 Ohm-m\\n\\nResistance = %.2f*10^7 Ohm\\n\\nDonar concentration is %.0f*10^19\\n\\nConcentration of hole is %.1f*10^6 m^-3\\n\\nConductivity = %.1f per ohm-m\"%(sig*10**6,rho*10**-5,r*10**-17,nd*10**-19,p*10**-6,sig2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The intrinsic conductivity is 4.18 *10^-6 /ohm-cm\n",
+ "\n",
+ "The intrinsic resistivity is 2.39 *10^-5 Ohm-m\n",
+ "\n",
+ "Resistance = 2.39*10^7 Ohm\n",
+ "\n",
+ "Donar concentration is 5*10^19\n",
+ "\n",
+ "Concentration of hole is 4.2*10^6 m^-3\n",
+ "\n",
+ "Conductivity = 10.8 per ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8, page no-272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Conductivity, Intrinsic carrier concentration and band gap of Ge\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "T=300 # Temperature\n",
+ "rho=2.12 # Resistivity\n",
+ "mue=0.36 # Electron mobility\n",
+ "muh=0.17 # Hole mobility\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "# Calculations\n",
+ "sig=1/rho\n",
+ "ni=sig/(e*(muh+mue))\n",
+ "Nc=2*(2*math.pi*k*T/h**(2))**(1.5)\n",
+ "Nc=Nc*(0.5*m)**(1.5)\n",
+ "Nv=2*(2*math.pi*k*T/h**(2))**(1.5)\n",
+ "Nv=Nv*(0.37*m)**(1.5)\n",
+ "eg=2*k*T*math.log(math.sqrt(Nc*Nv)/ni)\n",
+ "eg=eg/e\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nConductivity = %.6f per Ohm-m\\nIntrinsic carrier concentration, ni=%.5f*10^18\"%(sig,ni*10**-18))\n",
+ "print(\"\\nNc=%.3f*10^24\\nNv=%.3f*10^24\"%(Nc*10**-24,Nv*10**-24))\n",
+ "print(\"\\nThe band gap of Ge is %.3f eV\"%eg)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Conductivity = 0.471698 per Ohm-m\n",
+ "Intrinsic carrier concentration, ni=5.56248*10^18\n",
+ "\n",
+ "Nc=8.852*10^24\n",
+ "Nv=5.635*10^24\n",
+ "\n",
+ "The band gap of Ge is 0.727 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9, page no-273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# carrier concentration \n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "e=1.6*10**-19 # Electronic charge\n",
+ "m=9.1*10**-31 # Mass of electron\n",
+ "h=6.62*10**-34 # Planck's constant\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "eg=0.7*e # Band gap energy\n",
+ "T=300 # Temperature\n",
+ "\n",
+ "#Calculations\n",
+ "ni=2*(2*3.14*m*k*T/(h**(2)))**(1.5) # math.pi= 3.14\n",
+ "ni=ni*math.e**(-eg/(2*k*T))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The carrier concentration of an intrinsic semiconductor is = %.2f*10^18 per m^3\"%(ni*10**-18))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The carrier concentration of an intrinsic semiconductor is = 33.49*10^18 per m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10, page no-273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Carrier concentration\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "e=1.6*10**-19 # Electronic charge\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "h=6.626*10**-34 # planck's constant\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "eg=1.1*e # Energy gap\n",
+ "mue=0.48 # Mobility of electron\n",
+ "muh=0.013 # Mobility of hole\n",
+ "T=300 # temperature\n",
+ "\n",
+ "#Calculations\n",
+ "ni=2*(2*math.pi*m*k*T/(h**(2)))**(1.5)\n",
+ "ni=ni*math.e**(-eg/(2*k*T))\n",
+ "sig=ni*e*(mue+muh)\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe carrier concentration of an intrinsic semiconductor is = %.2f*10^16 per m^3\\nThe electrical conductiivity of Si is %.2f*10^-3 per Ohm-m\"%(ni*10**-16,sig*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The carrier concentration of an intrinsic semiconductor is = 1.47*10^16 per m^3\n",
+ "The electrical conductiivity of Si is 1.16*10^-3 per Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, page no-275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi energy of Si\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "e=1.6*10**-19 # ELectronic charge\n",
+ "eg=1.12 # Band gap\n",
+ "me=0.12 # Effective mass of electron\n",
+ "mh=0.28 # Effective mass of hole\n",
+ "T=300 # Temperature \n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "# Calculations\n",
+ "ef=(eg/2)+(3*k*T/(4*e))*math.log(mh/me)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The Fermi energy of Si at 300 K is %.3f eV\"%ef)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi energy of Si at 300 K is 0.576 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12, page no-275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi level shift\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "e=1.6*10**-19 # Electronic charge\n",
+ "eg=1*e # Energy gap\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "m=4.0 # hole to elctron mass ratio\n",
+ "\n",
+ "# calculations\n",
+ "T=0.1*e*4/(3*k*math.log(m))\n",
+ "\n",
+ "# Result\n",
+ "print(\"Temperature at which Fermi level is shifted 10%% is %.f K\"%T)\n",
+ "# Answer in the book is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature at which Fermi level is shifted 10% is 1115 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13, page no-276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# conductivity of Ge\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "ni=2.4*10**19 # intrinsic concentration\n",
+ "mue=0.39 # Electron mobility \n",
+ "muh=0.19 # hole mobility\n",
+ "\n",
+ "# caclualtions\n",
+ "sig=ni*e*(mue+muh)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The conductivity of Ge at 300 K is %.2f per Ohm-m\"%(math.floor(sig*100)/100))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of Ge at 300 K is 2.22 per Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.14, page no-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi energy level position\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "T1=300 # Lower Temperature \n",
+ "T2=330 # Higher Temperature\n",
+ "eg=0.3 # Fermi level posiion at lower temperature\n",
+ "\n",
+ "# Calculations\n",
+ "eg2=eg*T2/T1\n",
+ "\n",
+ "#Result\n",
+ "print(\"E_c-E_f330=%.2f eV\\n\\nAt 330 K, the Fermi energy level lies %.2f eV, bellow the conduction band.\"%(eg2,eg2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E_c-E_f330=0.33 eV\n",
+ "\n",
+ "At 330 K, the Fermi energy level lies 0.33 eV, bellow the conduction band.\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.15, page no-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# conductivity of Ge\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "e=1.6*10**-19 # Charge of electron\n",
+ "eg=0.72*e # Energy gap\n",
+ "t1=293.0 # lower temperature\n",
+ "t2=313.0 # higher temperature\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "# calculations\n",
+ "sig1=2\n",
+ "n=((t2/t1)**(3.0/2.0))*math.e**((eg/(2*k))*((1/t1)-(1/t2)))\n",
+ "sig2=sig1*n\n",
+ "\n",
+ "#Result\n",
+ "print(\"The conductivity of Ge at 40\u00b0C is %.3f per Ohm-m\"%sig2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of Ge at 40\u00b0C is 5.487 per Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16, page no-278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# intrinsic concentration of Si\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "m=9.1*10**-31 # mass of electron \n",
+ "mm=0.31*m # effective mass of electron\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "k=1.38*10**-23 # Boltzmann's constant \n",
+ "eg=1.1*e # Energy gap\n",
+ "T=300 # Temperature\n",
+ "\n",
+ "# Calculations\n",
+ "ni=2*(2*math.pi*mm*k*T/(h**(2)))**(1.5)\n",
+ "ni=ni*math.e**(-eg/(2*k*T))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The intrinsic concentration of Si at %d K is %.4f * 10^15 electrons per m^3\"%(T,ni*10**-15))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The intrinsic concentration of Si at 300 K is 2.5367 * 10^15 electrons per m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.17, page no-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# drift mobility\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "hc=0.55*10**-10 # Hall coefficient of Cu (modulus)\n",
+ "cc=5.9*10**7 # Conductivity of Cu \n",
+ "T=300 # Temperature\n",
+ "\n",
+ "#Calculations\n",
+ "dm=hc*cc\n",
+ "\n",
+ "#Result\n",
+ "print(\"The drift mobility is given by mu_d = %.1f * 10^-3 m^2/V-s\"%(dm*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The drift mobility is given by mu_d = 3.2 * 10^-3 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.18, page no-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# concentration and averrage o of electron contributed per atom\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "sig=5.9*10**7 # Resistivity\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "mu=3.2*10**-3 # electron drift mobility \n",
+ "d=8900 # Density\n",
+ "avg=6.022*10**23 # Avogadro's number\n",
+ "awt=63.5 # Atomic weight\n",
+ "\n",
+ "#calculations\n",
+ "ni=sig/(e*mu) \n",
+ "n=avg*d*1000/awt\n",
+ "k=ni/n\n",
+ "\n",
+ "#Result\n",
+ "print(\"Concentration of free electron in pure Cu is %.2f*10^28\\nThe average number of electrons contributed per Cu atom is %.2f i.e. %.0f\"%(n*10**-28,math.floor(k*100)/100,k))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentration of free electron in pure Cu is 8.44*10^28\n",
+ "The average number of electrons contributed per Cu atom is 1.36 i.e. 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.19, page no-280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of the Ge\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "i=5*10**-3 # current through the specimen\n",
+ "v=1.35 # voltage across the specimen \n",
+ "l=0.01 # length of the sample\n",
+ "b=5*10**-3 # Breadth of the sample \n",
+ "t=10**-3 # Thickness of the sample\n",
+ "a=5*10**-6 # Area of the sample\n",
+ "vy=20*10**-3 # Hall voltage\n",
+ "H=0.45 # Magnetic field\n",
+ "\n",
+ "# Calculations\n",
+ "rho=v*a/(l*i)\n",
+ "Ey=vy/t\n",
+ "j=i/a\n",
+ "k=Ey/(H*j)\n",
+ "Rh=3*math.pi*k/8\n",
+ "mu=Rh/rho\n",
+ "\n",
+ "#Result\n",
+ "print(\"The mobility of the Ge sample is %.2f m^2/V-s\"%mu)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of the Ge sample is 0.39 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.20, page no-282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Hall potential difference\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "I=200 # current flowing\n",
+ "H=1.5 # Applied magnetic field\n",
+ "n=8.4*10**28 # no of electrons per unit volume\n",
+ "d=1.0*10**-3 # thickness of the strip\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# calculations\n",
+ "v=I*H/(n*d*e)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The Hall potential difference appearance between the ship is %.0f \u00b5v\"%(v*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Hall potential difference appearance between the ship is 22 \u00b5v\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.21, page no-283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#carrier concentration and mobility of Si\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "rh=3.66*10**-4 # Hall coefficient of specimen\n",
+ "rho=8.93*10**-3 # resistivity of thespecimen\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#calculations\n",
+ "ni=1/(rh*e)\n",
+ "muh=rh/rho\n",
+ "\n",
+ "#Result\n",
+ "print(\"the carrier concentration of Si doped specimen is %.3f *10^22 m^-3\"%(ni*10**-22))\n",
+ "print(\"\\n The mobility of Si doped specimen is %.5f m^2/V-s\"%muh)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the carrier concentration of Si doped specimen is 1.708 *10^22 m^-3\n",
+ "\n",
+ " The mobility of Si doped specimen is 0.04099 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.22, page no-283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# #carrier concentration and electron mobility\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Rh=3.66*10**-11 # Hall coefficient\n",
+ "sig=112*10**7 # Conductivity\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# Calculations\n",
+ "n=3*math.pi/(8*Rh*e)\n",
+ "mu=sig/(n*e)\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe concentration of electrons is %.0f*10^29 m^-3\\nthe electron mobility at room temperature = %.3f m^2/V-s\"%(n*10**-29,mu))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The concentration of electrons is 2*10^29 m^-3\n",
+ "the electron mobility at room temperature = 0.035 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.23, page no-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Hall voltage\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "I=50 # Current\n",
+ "B=1.5 # Magnetic field \n",
+ "t=0.5*10**-2 # Thickness of the slab\n",
+ "e=1.6*10**-19 # Electronic charge\n",
+ "d=2*10**-2 # Width of the slab \n",
+ "N=8.4*10**28 # Concentration of electron\n",
+ "\n",
+ "# Calculations\n",
+ "v=B*I/(N*e*d)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The Hall voltage is %.2f *10^-7 V\"%(v*10**7))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Hall voltage is 2.79 *10^-7 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.24, page no-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# relaxation time of electrons in metal\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "rho=1.54*10**-8 # resistivity of metal\n",
+ "ni=5.8*10**28 # carrier concentration\n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# Calculations\n",
+ "tau=m/(rho*ni*(e**2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The relaxation time of electrons in metal is %.2f*10^-14 s\"%(tau*10**14))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The relaxation time of electrons in metal is 3.98*10^-14 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.25, page no-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of electrons\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "sig=6.22*10**7 # conductivity of metal\n",
+ "n=5.9*10**28 # carrier concentration of electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#calculation\n",
+ "mu=sig/(n*e)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The mobility of electrons in Si is %.2f*10^-3 m^2/V-s\"%(mu*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of electrons in Si is 6.59*10^-3 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.26, page no-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of the electrons\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "rho=0.1 # resistivity of metal\n",
+ "ni=10**20 # carrier concentration of electron \n",
+ "vd=1 # drift velocity \n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# calculations\n",
+ "mu=1/(rho*ni*e)\n",
+ "E=vd/mu\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe mobility of the electrons in material is %.3f m^2/V-s\\nThe electric field is %.1f V/m\"%(mu,E))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The mobility of the electrons in material is 0.625 m^2/V-s\n",
+ "The electric field is 1.6 V/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.27, page no-286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of electrons\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "sig=6.22*10**7 # conductivity of metal\n",
+ "n=5.9*10**28 #carrier concentration of electron \n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# calculations\n",
+ "mu=sig/(n*e)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The mobility of electrons in silver is %.2f*10^-3 m^2/V-s\"%(mu*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of electrons in silver is 6.59*10^-3 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.28, page no-286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of the electrons\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "rho=0.1 # resistivity of metal\n",
+ "ni=10**20 # carrier concentration of electron \n",
+ "vd=1 # drift velocity \n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# calculations\n",
+ "mu=1/(rho*ni*e)\n",
+ "E=vd/mu\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe mobility of the electrons in material is %.3f m^2/V-s\\nThe electric field is %.1f V/m\"%(mu,E))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The mobility of the electrons in material is 0.625 m^2/V-s\n",
+ "The electric field is 1.6 V/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.29, page no-287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# relaxation time, mobility and conductivity\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "avg=6.023*10**23 # Avogadro's number\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # charge of an electron \n",
+ "d=8.92*10**3 # density of copper \n",
+ "rho=1.73*10**-8 # resistivity of copper\n",
+ "z=63.5 # Atomic weight of copper\n",
+ "\n",
+ "# Calculations\n",
+ "n=avg*d/z\n",
+ "sig=1/rho\n",
+ "tau=sig*m/(n*(e**2))\n",
+ "mu=sig/(e*n)\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe relaxation time is %.2f *10^-11 s\\nThe mobility of electrons in copper is %.2f m^2/V-s\"%(tau*10**11,mu))\n",
+ "print(\"The conductivity of coppper is %.2f * 10^7 per Ohm-m\\n\"%(sig*10**-7))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The relaxation time is 2.43 *10^-11 s\n",
+ "The mobility of electrons in copper is 4.27 m^2/V-s\n",
+ "The conductivity of coppper is 5.78 * 10^7 per Ohm-m\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.30, page no-288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of electrons and drift velocity\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rho=1.54*10**-8 # resistivity of silver\n",
+ "E=100 # electric field along the wire\n",
+ "ni=5.8*10**28 # carrier concentration of electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "# calculations\n",
+ "mu=1/(rho*ni*e)\n",
+ "vd=mu*E\n",
+ "\n",
+ "#Result\n",
+ "print(\"The mobility of electrons in silver is %.4f*10^-3 m^2/V-s\\nThe drift velocity id %.5f m/s\"%(mu*10**3,vd))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of electrons in silver is 6.9973*10^-3 m^2/V-s\n",
+ "The drift velocity id 0.69973 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.31, page no-288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# relaxation time for electrons\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rho=1.43*10**-8 # resistivity of metal\n",
+ "ni=6.5*10**28 # carrier concentration of electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "\n",
+ "# calculations\n",
+ "tau=m/(rho*ni*e**2)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The relaxation time for electrons in the metal is %.2f *10^-14 s\"%(math.ceil(tau*10**16)/100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The relaxation time for electrons in the metal is 3.83 *10^-14 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.32, page no-289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# concentration, mobility and velocity of electron\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R=60 # resistance of aluminium\n",
+ "rho=2.7*10**-8 # resistivity of aluminium\n",
+ "i=15 # current in the wire\n",
+ "l=5 # length of the aluminium wire\n",
+ "m=3 # number of free electron per atom \n",
+ "e=1.6*10**-19 # electronic charge \n",
+ "d=2.7*10**3 # density of aluminium\n",
+ "awt=26.98 # Atomic weight of aluminium\n",
+ "avg=6.023*10**23 # Avogadro's number\n",
+ "\n",
+ "# calculations\n",
+ "n=m*avg*1000*d/awt\n",
+ "mu=1/(rho*n*e)\n",
+ "vd=mu*i*R*10**-3/l\n",
+ "\n",
+ "# Result\n",
+ "print(\"Free electron concentration is %.3f * 10^29\"%(n*10**-29))\n",
+ "print(\"\\nThe mobility of electron in aluminium is %.4f*10^-3 m^2/v-s\"%(mu*10**3))\n",
+ "print(\"\\nThe drift velocity of the electron in Al is %.1f*10^-4 m/s\"%(vd*10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Free electron concentration is 1.808 * 10^29\n",
+ "\n",
+ "The mobility of electron in aluminium is 1.2801*10^-3 m^2/v-s\n",
+ "\n",
+ "The drift velocity of the electron in Al is 2.3*10^-4 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.33, page no-290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Thermal and drift velocity of electron in copper\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "R=0.02 # resistance of the Cu\n",
+ "i=15 # current in the wire\n",
+ "mu=4.3*10**-3 # mobility of the free electron \n",
+ "l=2 # length of the Cu wire\n",
+ "k=1.38*10**-23 # Boltzmann's constant \n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "T=300 # temperature \n",
+ "\n",
+ "# Calculations\n",
+ "v=i*R \n",
+ "E=v/l\n",
+ "vd=E*mu\n",
+ "vth=math.sqrt(3*k*T/m)\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe thermal velocity of the free electrons in copper is %.3f mm/s\"%(vth*10**-5))\n",
+ "print(\"The drift velocity of electrons in copper is %.3f mm/s\"%(vd*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The thermal velocity of the free electrons in copper is 1.168 mm/s\n",
+ "The drift velocity of electrons in copper is 0.645 mm/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_11.ipynb b/Material_Science/material_science_ch_11.ipynb
new file mode 100755
index 00000000..eddc35e2
--- /dev/null
+++ b/Material_Science/material_science_ch_11.ipynb
@@ -0,0 +1,194 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Mechanical Properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 11.1, page no-332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Stress produced in an Al\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "ld=2000.0 # Load applied\n",
+ "g=9.8 # Acceleration due to gravity in m/s^2\n",
+ "r=0.005 # radious of test piece\n",
+ "\n",
+ "#Calculation\n",
+ "force=ld*g\n",
+ "stress= force/(math.pi*r**2)\n",
+ "\n",
+ "#Result\n",
+ "print('The stress produce in an aluminium alloy is %.1f MPa'%(stress*10**-6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress produce in an aluminium alloy is 249.6 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, page no-332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# perentage elongation and reduction\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "lf=53.75*10**-3\n",
+ "l0=50*10**-3\n",
+ "df=9.4*10**-3\n",
+ "d0=8.8*10**-3\n",
+ "\n",
+ "#Calculation\n",
+ "pl=(lf-l0)*100.0/l0\n",
+ "pa=((math.pi*df**2)-(math.pi*d0**2))*100.0/(math.pi*df**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe %% elongation is %.1f%% and \\nthe %% reduction in area is %.2f%%'%(pl,pa))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The % elongation is 7.5% and \n",
+ "the % reduction in area is 12.36%\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3, page no-332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Brinell Hardness Number\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "ts=937.0 # Tensile strength of steel\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "bhn=ts/3.45\n",
+ "\n",
+ "#Result\n",
+ "print('The Brinell Hardness Number is %.2f'%bhn)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Brinell Hardness Number is 271.59\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, page no-333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Tensile strength and fatigue limit of Steel plate\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "p=3000.0 # Load applied\n",
+ "D=10.0 # diameter of the indenter\n",
+ "d=2.2 # diameter of the impression\n",
+ "\n",
+ "#Calculation\n",
+ "Hb=2*p/(math.pi*D*(D-math.sqrt(D**2-d**2)))\n",
+ "Hb= math.floor(Hb*10)/10\n",
+ "ts=3.45*Hb\n",
+ "fl=0.5*ts\n",
+ "\n",
+ "#Result\n",
+ "print('\\nBrinell Hardness Number of steel Plate, Hb=%.1f\\n'%Hb)\n",
+ "print('\\nThe Tensile strength of steel plate is %.3f MPa\\n'%ts)\n",
+ "print('\\nThe Fatigue limit of steel plate is %.4f MPa'%fl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Brinell Hardness Number of steel Plate, Hb=779.5\n",
+ "\n",
+ "\n",
+ "The Tensile strength of steel plate is 2689.275 MPa\n",
+ "\n",
+ "\n",
+ "The Fatigue limit of steel plate is 1344.6375 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_12.ipynb b/Material_Science/material_science_ch_12.ipynb
new file mode 100755
index 00000000..7deff30f
--- /dev/null
+++ b/Material_Science/material_science_ch_12.ipynb
@@ -0,0 +1,461 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Thermal Properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, page no-350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Change in length due to heating\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "alfe=8.8*10**-6 # linear coefficient of thermal expansion for alumina\n",
+ "lo=0.1 # length of the alumina rod\n",
+ "delT=973.0 # difference in temperature\n",
+ "\n",
+ "#Calculation\n",
+ "delL=alfe*lo*delT\n",
+ "\n",
+ "#Result\n",
+ "print('The change in length produced by heating is %.3f mm'%(delL*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in length produced by heating is 0.856 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, page no-350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Change in length due to heating\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "alfe=5.3*10**-6 # linear coefficient of thermal expansion or alumina\n",
+ "lo=0.1 # length of the alumina rod\n",
+ "delT=973.0 # difference in temperature\n",
+ "\n",
+ "#Calculation\n",
+ "delL=alfe*lo*delT\n",
+ "\n",
+ "#Result\n",
+ "print('The change in length produced by heating is %.3f mm'%(delL*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in length produced by heating is 0.516 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.3, page no-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Steady state heat Transfer\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "k=371.0 # Thermal conductivity of copper in J/msk\n",
+ "delT=50.0 # change in temperature\n",
+ "delx=10*10**-3 # change in thickness of the copper's sheet \n",
+ "\n",
+ "#Calculation\n",
+ "ht=k*delT/delx\n",
+ "\n",
+ "#Result\n",
+ "print('The steady state heat transfer of 10 mm copper sheet is %.3f *10^6 J.m^-2.s^-1'%(ht*10**-6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The steady state heat transfer of 10 mm copper sheet is 1.855 *10^6 J.m^-2.s^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, page no-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Compression Stress due to Heating\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "alfe=8.8*10**-6 # linear coefficient of thermal expansion for alumina\n",
+ "t1=1300.0 # Temperature 1\n",
+ "t2=327.0 # Temperature 2\n",
+ "E=370.0 # modulus of elasticity\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "delT=t1-t2\n",
+ "ep=alfe*delT\n",
+ "sig=ep*E\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe unconstrained thermal expansion produced by the heating is %.4f *10^-3'%(ep*10**3))\n",
+ "print('\\nthe compression stress produced by heating is %.3f GPa'%(math.ceil(sig*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The unconstrained thermal expansion produced by the heating is 8.5624 *10^-3\n",
+ "\n",
+ "the compression stress produced by heating is 3.169 GPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 12.5, page no-352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Heat flux transmitted\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "K=120.0 # thermal conductivity of brass\n",
+ "t2=423.0 # Temperature 2\n",
+ "t1=323.0 # Temperature 1\n",
+ "delT=t2-t1 # temperature difference\n",
+ "delx=7.5*10**-3 # change in thickness of the brass's sheet\n",
+ "A=0.5 # Area of the sheet\n",
+ "\n",
+ "#Calculation\n",
+ "Q=K*A*(delT/delx)\n",
+ "hph=Q*3600\n",
+ "\n",
+ "#Result\n",
+ "print('The heat flux transmitted through a sheet per hour is %.2f *10^9 J.h^-1'%(hph*10**-9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat flux transmitted through a sheet per hour is 2.88 *10^9 J.h^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, page no-353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Young's Modulus\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "alfe=17*10**-6 # linear coefficient of thermal expansion for copper\n",
+ "t2=293.0 # Temperature 2\n",
+ "t1=233.0 # Temperature 1\n",
+ "delT=t2-t1 # temperature difference\n",
+ "st=119.0 # Maximum thermally induced stress\n",
+ "\n",
+ "#Calculation\n",
+ "k=alfe*delT\n",
+ "E=(st*10**6)/k\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe strain produced in te rod is %.2f * 10^-3'%(k*10**3))\n",
+ "print('\\nThe Youngs Modulus of the rod is %.1f GPa'%(E*10**-9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The strain produced in te rod is 1.02 * 10^-3\n",
+ "\n",
+ "The Youngs Modulus of the rod is 116.7 GPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, page no-353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Temperature Change\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "lo=11.6 # length of the steel rod\n",
+ "delx=5.4*10**-3 # difference in length\n",
+ "alfL=12*10**-6 # Linear coefficient of thermal expansion for steel\n",
+ "\n",
+ "#Calculation\n",
+ "delT=delx/(lo*alfL)\n",
+ "\n",
+ "#Result\n",
+ "print('The maximum temperature cange can withstand without any thermal stress is %.2f K'%delT)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum temperature cange can withstand without any thermal stress is 38.79 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, page no-354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#compressive Sress\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "lo=0.35 # length of the Al rod\n",
+ "alfe=23.6*10**-6 # Linear coefficient of thermal expansion for Al\n",
+ "t2=358.0 # temperature 2\n",
+ "t1=288.0 # temperature 1\n",
+ "delT=t2-t1 # temperature difference\n",
+ "ym=69.0 # Young's modulus\n",
+ "\n",
+ "#Calculation\n",
+ "k=alfe*delT\n",
+ "E=ym*k*10**9\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe strain produced in te rod is %.3f * 10^-3'%(k*10**3))\n",
+ "print('\\nThe compressive stress produced in Al rod is %.3f GPa'%(E*10**-9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The strain produced in te rod is 1.652 * 10^-3\n",
+ "\n",
+ "The compressive stress produced in Al rod is 0.114 GPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, page no-355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# limit to compression stress\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "alfe=20*10**-6 # Linear coefficient of thermal expansion for alumina\n",
+ "t1=293.0 # temperature \n",
+ "sig=172.0 # compressive stress\n",
+ "E=100.0 # modulus of elasticity\n",
+ "\n",
+ "#Calculation\n",
+ "delT=(sig*10**6)/(E*alfe*10**9)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nTf-Ti=%.0f'%delT)\n",
+ "print('\\n\\nThe maximum temperature at which the rod may be heated without\\nexceeding a compresssive stress of %.0f MPa is %.0f K'%(sig,delT+t1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Tf-Ti=86\n",
+ "\n",
+ "\n",
+ "The maximum temperature at which the rod may be heated without\n",
+ "exceeding a compresssive stress of 172 MPa is 379 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10, page no-356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Heat energy Requirement\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "h_ir=444.0 # specific heat capacity of iron in J.kg^-1.K^-1\n",
+ "h_gr=711.0 # specific heat capacity of graphite in J.kg^-1.K^-1\n",
+ "h_pl=1880.0 # specific heat capacity of polypropylene in J.kg^-1.K^-1\n",
+ "t2=373.0 # Temperature 2\n",
+ "t1=300.0 # Temperature 1\n",
+ "delT=t2-t1 # difference in temperature\n",
+ "W=2.0 # weight\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "#(a) For Iron\n",
+ "q=W*h_ir*delT\n",
+ "\n",
+ "#(b)for Graphite\n",
+ "q1=W*h_gr*delT\n",
+ "\n",
+ "#(b)for polypropylene\n",
+ "q2=W*h_pl*delT\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('The heat energy required to raise temperature %.0f K from its temperature of \\niron, graphite and polypropylene is %.0f,%.0f,%.0f J respectively'%(delT,q,q1,q2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat energy required to raise temperature 73 K from its temperature of \n",
+ "iron, graphite and polypropylene is 64824,103806,274480 J respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_14.ipynb b/Material_Science/material_science_ch_14.ipynb
new file mode 100755
index 00000000..a1ea592c
--- /dev/null
+++ b/Material_Science/material_science_ch_14.ipynb
@@ -0,0 +1,103 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Luminescence"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, page no-385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Penetration depth of electron\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "eb=10000.0 # Energy of incident beam in eV\n",
+ "k=1.2*10**-4 # Constant depending on marerial \n",
+ "b=0.151 # Constant depending on marerial\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "\n",
+ "#Calculation\n",
+ "rc=k*(eb*e)**b\n",
+ "\n",
+ "#Result\n",
+ "print('The penetration depth of the electron is %.4f \u00b5m'%(rc*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The penetration depth of the electron is 0.6998 \u00b5m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, page no-386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Luminescent lifetime\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "ed=0.4 # difference in energy level in eV\n",
+ "e=1.6*10**-19 # Charge of an electron\n",
+ "kT=0.025 # temperature equivalent \n",
+ "q=10**8 # constant\n",
+ "\n",
+ "#Calculation\n",
+ "r=q*math.e**(-(ed/kT))\n",
+ "\n",
+ "#Result\n",
+ "print('The escape rate per unit time = %.1f per sec\\nTherefore, the luminescent lifetime is nearly %.0f sec'%(math.floor(r*10)/10,r))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The escape rate per unit time = 11.2 per sec\n",
+ "Therefore, the luminescent lifetime is nearly 11 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_15.ipynb b/Material_Science/material_science_ch_15.ipynb
new file mode 100755
index 00000000..19e8e51c
--- /dev/null
+++ b/Material_Science/material_science_ch_15.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Display Devices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1, page no-406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# wavelength of light\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "e=1.609*10**-19 # Charge of electron\n",
+ "eg=1.8 # energy band gap\n",
+ "E=e*eg \n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "c=3*10**8 # speed of light\n",
+ "\n",
+ "#Calculation\n",
+ "lam=h*c/E\n",
+ "\n",
+ "#Result\n",
+ "print('The wavelenth of light emitted from given LED is %.4f \u00b5m'%(lam*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelenth of light emitted from given LED is 0.6863 \u00b5m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, page no-406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Band Gap of GaAsP\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "e=1.6*10**-19 # Charge of electron\n",
+ "h=6.626*10**-34 # planck's constant\n",
+ "c=3*10**8 # speed of light in m/s\n",
+ "lam=6751*10**-10 # wavelength of green light from mercury lamp\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/lam\n",
+ "E=E/e\n",
+ "\n",
+ "#Result\n",
+ "print('The band gap of the given GaAsP is %.1f eV'%E)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The band gap of the given GaAsP is 1.8 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_16.ipynb b/Material_Science/material_science_ch_16.ipynb
new file mode 100755
index 00000000..5a6ff652
--- /dev/null
+++ b/Material_Science/material_science_ch_16.ipynb
@@ -0,0 +1,108 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Photoconductivity "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1, page no-416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pairs generated per second\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "lam=0.4*10**-6 # wavelength of light\n",
+ "A=4*10**-6 # area of the crystal\n",
+ "in1=200.0 # intensity of light in W/m^2\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "c=3*10**8 # speed of light\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "N=in1*A*lam/(h*c)\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('The number of pairs generated per second is %.3f * 10^14'%(N*10**-14))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of pairs generated per second is 16.098 * 10^14\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2, page no-417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Wavelength of emitted radiation\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "e=1.6*10**-19 # Charge of electron\n",
+ "eg=1.43 # band gap energy in eV\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "c=3*10**8 # speed of light in m/s\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "E=e*eg \n",
+ "lam=h*c/E\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('The wavelength of emitted radiation is %.2f \u00b5m'%(lam*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of emitted radiation is 0.87 \u00b5m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_18.ipynb b/Material_Science/material_science_ch_18.ipynb
new file mode 100755
index 00000000..2b2673b7
--- /dev/null
+++ b/Material_Science/material_science_ch_18.ipynb
@@ -0,0 +1,1115 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18: Dielectric Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1, page no-460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Relative permitivity of KCl\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "atom=4 # number of atoms \n",
+ "kci=0.629*10**-9 # LAttice parameter of KCl \n",
+ "alfk=1.264*10**-40 # electronic polarisability for K+ ion\n",
+ "alfCl=3.408*10**-40 # electronic polarisability for Cl- ion\n",
+ "eps0=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# Calculations\n",
+ "pol=alfk+alfCl\n",
+ "N=atom/kci**3\n",
+ "epsr=(N*pol/eps0)+1\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe electronic polarisability for KCL = %.3f *10^-40 F m^2\\n\"%(pol*10**40))\n",
+ "print(\"\\nThe no of Dipoles per m^3 = %.3f * 10^28 atoms m^-3\\n\"%(N/10**28))\n",
+ "print(\"\\nThe dielectric constant of KCL is %.3f\"%epsr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The electronic polarisability for KCL = 4.672 *10^-40 F m^2\n",
+ "\n",
+ "\n",
+ "The no of Dipoles per m^3 = 1.607 * 10^28 atoms m^-3\n",
+ "\n",
+ "\n",
+ "The dielectric constant of KCL is 1.848\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2, page no-460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# electronic polarisability\n",
+ "\n",
+ "import math\n",
+ "#variable declarations\n",
+ "r=0.12*10**-9 # atomic radius of Se\n",
+ "eps=8.854*10**-12 # permitivity of free space \n",
+ "\n",
+ "# Calculations\n",
+ "alf=4*math.pi*eps*r**3\n",
+ "\n",
+ "# Result\n",
+ "print(\"The electronic polarisability of an isolated Se is %.4f * 10^-40 F m^2\"%(alf*10**40))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electronic polarisability of an isolated Se is 1.9226 * 10^-40 F m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3, page no-461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#electronic to ionic polarability ratio\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "n=2.69 # refraction index\n",
+ "er=4.94 # dielectric cnstant\n",
+ "\n",
+ "# calculations\n",
+ "alfi_by_alfe=(((n+2)*(er-1))/((er+2)*(n-1)))-1\n",
+ "\n",
+ "# Result\n",
+ "print(\"The ratio of the electronic to ionic polarability is %.4f\"%(1/alfi_by_alfe))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of the electronic to ionic polarability is 1.7376\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.4, page no-462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# dielectric constant\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "N= 2.7*10**25 # number of atoms\n",
+ "alfe=0.35*10**-40 # electronic polarisability \n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# calculations\n",
+ "epsr=(1+(2*N*alfe)/(3*eps))/(1-(N*alfe)/(3*eps))\n",
+ "\n",
+ "# Result\n",
+ "print(\"The dielectric constant of Ne gas is %.8f\"%epsr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The dielectric constant of Ne gas is 1.00010674\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.5, page no-462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# charge on the capacitor\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "eps=8.85*10**-12 # permitivity of free space\n",
+ "epsr=6 # relative permitivity of dielectric\n",
+ "A=5*10**-4 # Area of the capacitor plate \n",
+ "d=1.5*10**-3 # distance between the plates\n",
+ "v=100 # Applied voltage\n",
+ "\n",
+ "# calculations\n",
+ "Q=eps*epsr*A*v/d\n",
+ "\n",
+ "# Result\n",
+ "print(\"The charge on the capacitor is %.2f * 10^-9 C\"%(Q*10**9))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The charge on the capacitor is 1.77 * 10^-9 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.6, page no-463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# dielectric constant\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "N=2.7*10**25 # Number of Ar atoms\n",
+ "d=0.384*10**-9 # diameter of Ar atom\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# calculations\n",
+ "alfe=4*math.pi*eps*d**3\n",
+ "alfe=alfe*10**-2 # correction\n",
+ "epsr=(1+((2*N*alfe)/(3*eps)))/(1-((N*alfe)/(3*eps)))\n",
+ "\n",
+ "# Result\n",
+ "print(\"The dielectric constant of Ar is %.8f\"%(epsr))\n",
+ "# correction is to match the answer in the book \n",
+ "# answer for alfe is given as 0.63 * 10^-40 but it is actually 0.63* 10^-38."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The dielectric constant of Ar is 1.00019213\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.7, page no-464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Energy stored\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "c=2*10**-6 # capacitance\n",
+ "epsr=80 # permitivity of the dielectric\n",
+ "v=1000 # Applied voltage\n",
+ "\n",
+ "#Calculations\n",
+ "E1=(c*v**2)/2\n",
+ "c0=c/epsr\n",
+ "E2=(c0*v**2)/2\n",
+ "E=E1-E2\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe Energy stored in capacitor =%.0f J\"%E1)\n",
+ "print(\"\\nThe energy stored in polarising the capacitor = %.4f J\"%E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Energy stored in capacitor =1 J\n",
+ "\n",
+ "The energy stored in polarising the capacitor = 0.9875 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.8, page no-464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# nternal field to applied field ratio\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "N=5*10**28 # no of atoms present per m^3\n",
+ "alfe=2*10**-40 # Polarisability \n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "\n",
+ "# Calculations\n",
+ "P=N*alfe\n",
+ "E_ratio=1/(1-(P/(3*eps)))\n",
+ "\n",
+ "# Result\n",
+ "print(\"The ratio of the internal field to the applied field = %.4f\"%E_ratio)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of the internal field to the applied field = 1.6038\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.9, page no-465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# relative permitivity\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "E=1000 # Applied electric field\n",
+ "P=4.3*10**-8 # Polarisation\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# calculations\n",
+ "epsr=1+P/(eps*E)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The relative permitivity of NaCl is %.2f\"%epsr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The relative permitivity of NaCl is 5.86\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.10, page no-466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#polarisability of argon atom\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "epsr=1.0024 # relative permitivity\n",
+ "N=2.7*10**25 # Number of atoms\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# calculations\n",
+ "alfe=eps*(epsr-1)/N\n",
+ "\n",
+ "#Result\n",
+ "print(\"The polarisability of argon atom is %.1f * 10^-40 F m^2\"%(alfe*10**40))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The polarisability of argon atom is 7.9 * 10^-40 F m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.11, page no-466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# electronic polarisability\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "epsr=1.0000684 # Dielectric constant of the gas at NTP\n",
+ "N=2.7*10**25 # Number of He atoms\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "#calculations\n",
+ "alfe=eps*(epsr-1)/N\n",
+ "\n",
+ "#Result\n",
+ "print(\"The electronic polarisability of He atom at NTP is %.3f * 10^-41 F m^2\"%(alfe*10**41))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electronic polarisability of He atom at NTP is 2.243 * 10^-41 F m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.12, page no-467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# electronic polarisability\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "epsr=12 # relative dielectric constant of material\n",
+ "N=5*10**28 # number of atoms in the element\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "#Calculations\n",
+ "alfe=eps*(epsr-1)/N\n",
+ "\n",
+ "# result\n",
+ "print(\"The electronic polarisability of given element is %.3f * 10^-39 F m^2\"%(math.floor(alfe*10**39*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electronic polarisability of given element is 1.947 * 10^-39 F m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.13, page no-467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# energy stored in dielectric\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "c=2*10**-6 # capacitance of plate condenser\n",
+ "v=1000 # applied voltage\n",
+ "epsr=100 # dielectric permitivity\n",
+ "\n",
+ "# calculations\n",
+ "E=(c*v**2)/2\n",
+ "c0=c/epsr\n",
+ "e2=(c0*v**2)/2\n",
+ "E1=E-e2\n",
+ "\n",
+ "# Result\n",
+ "print(\"The energy stored in dielectric is %.2f J\"%E1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy stored in dielectric is 0.99 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.14, page no-468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# electronic polarisability\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "epsr=3.4 # dielectric constant of sulphur \n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "d=2.07*10**3 # density of sulphur \n",
+ "w=32.07 # Atomic weight\n",
+ "Avg=6.023*10**23 # avogadro's number\n",
+ "\n",
+ "# calculations\n",
+ "N=Avg*10**3*d/w\n",
+ "N= (math.ceil(N*10**-26))/10**-26\n",
+ "alfe=3*eps*(epsr-1)/(N*(epsr+2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The electronic polarisability of sulphur is %.3f * 10^-40 F.m^2\"%(alfe*10**40))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electronic polarisability of sulphur is 3.035 * 10^-40 F.m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.15, page no-469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# charge stored and polarisation produced in the plate\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=6.45*10**-4 # Area of the capacitor plate\n",
+ "d=2*10**-3 # distance between plates\n",
+ "epsr=6 # relative permitivity \n",
+ "v=10 # applied voltage \n",
+ "eps=8.854*10**-12 # permitivity in free space\n",
+ "\n",
+ "\n",
+ "# calculations\n",
+ "c=eps*epsr*A/d\n",
+ "q=c*v\n",
+ "E=v/d\n",
+ "p=eps*(epsr-1)*E\n",
+ "\n",
+ "# Result\n",
+ "print(\"Capacitance of Capacitor = %.2f pF\"%(c*10**12))\n",
+ "print(\"\\ncharge stored on the plate is %.2f *10^-11 C\"%(q*10**11))\n",
+ "print(\"\\nPolarisation produce in the plate is %.3f *10^-7 Cm^-2\"%(math.ceil(p*10**7*1000)/1000))\n",
+ "# answer forstored charge is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capacitance of Capacitor = 17.13 pF\n",
+ "\n",
+ "charge stored on the plate is 17.13 *10^-11 C\n",
+ "\n",
+ "Polarisation produce in the plate is 2.214 *10^-7 Cm^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.16, page no-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Polarisation produced in NaCl\\\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "E=600*10**3 # electric field strength\n",
+ "eps=8.854*10**-12 # permitivity in free space \n",
+ "epsr=6 # dielectric constant of sodium chloride\n",
+ "\n",
+ "# calculations\n",
+ "p=eps*(epsr-1)*E\n",
+ "\n",
+ "# Result\n",
+ "print(\"Polarisation produced in NaCl is %.3f *10^-5 C.m^-2\"%(p*10**5))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Polarisation produced in NaCl is 2.656 *10^-5 C.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.17, page no-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Relative permitivity\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "E=1000 # applied electric field\n",
+ "p=4.3*10**-8 # Polarisation \n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "#Calculations\n",
+ "epsr=1+p/(eps*E)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Relative permitivity of NaCl is %.2f\"%epsr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative permitivity of NaCl is 5.86\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.18, page no-471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# voltage across capacitor and electric field strength\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "A=1000*10**-6 # Area of the capacitor plate\n",
+ "d=5*10**-3 # distance between the plate\n",
+ "epsr=4 # relative permitivity of the dielectric\n",
+ "Q=3*10**-10 #charge on the capacitor \n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# Calculations\n",
+ "c=(eps*epsr*A)/d\n",
+ "v=Q/c\n",
+ "E=v/d\n",
+ "\n",
+ "# Result\n",
+ "print(\"The voltage across capacitor is %.2f V\\nThe electric field strength is %d V/m\"%(v,E))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage across capacitor is 42.35 V\n",
+ "The electric field strength is 8470 V/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.19, page no-472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# electronic polarisability\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "epsr=1.0000684 # dielectric constant of the gas at NTP\n",
+ "N=2.7*10**25 # Number of He atoms \n",
+ "eps=8.85*10**-12 # permitivuty of free space\n",
+ "\n",
+ "# calculations\n",
+ "alfe=eps*(epsr-1)/N\n",
+ "\n",
+ "# Result\n",
+ "print(\"The electronic polarisability of He atoms at NTP is %.3f *10^-41 F.m^2\"%(alfe*10**41))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electronic polarisability of He atoms at NTP is 2.242 *10^-41 F.m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.20, page no-472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Capacitance and electric field strength\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "A=3*10**-3 # area of the capacitor plate\n",
+ "d=1*10**-3 # distance between the plate\n",
+ "epsr=3.5 # relative permitivity of the dielectric\n",
+ "Q=20*10**-9 # charge on the capacitor\n",
+ "eps=8.85*10**-12 # permitivity of free space\n",
+ "\n",
+ "# calculations\n",
+ "c=eps*epsr*A/d\n",
+ "E=Q/(c*d)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The capacitance of capacitor is %.2f pF\"%(math.ceil(c*10**14)/100))\n",
+ "print(\"The electric field strength is %.2f*10^3 V/m\"%(math.floor(E*10**-1)/100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The capacitance of capacitor is 92.93 pF\n",
+ "The electric field strength is 215.22*10^3 V/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.21, page no-473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# capacitance, stored charge, polarisation and dielectric displacement\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "A=7.45*10**-4 # Area of the capacitor plates\n",
+ "d=2.45*10**-3 # distance between the plates\n",
+ "epsr=6 # relative permitivity of the dielectric \n",
+ "v=10 # applied voltage \n",
+ "eps=8.85*10**-12 # permitivity of free space\n",
+ "\n",
+ "#Calculations\n",
+ "c=eps*epsr*A/d\n",
+ "Q=c*v\n",
+ "E=v/d\n",
+ "p=eps*(epsr-1)*E\n",
+ "D=eps*epsr*E\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\nThe capacitance of the capacitor is %.3f pF\"%(c*10**12))\n",
+ "print(\"\\nCharge stored on capacitor = %.3f *10^-11 C\\n\\nE=%.2f*10^3 V/m\"%(Q*10**11,E*10**-3))\n",
+ "print(\"\\nPolarisation=%.3f*10^-7 C.m^-2\\n\\ndielectric displacement = %.3f*10^-7 C.m^-2\"%(p*10**7,D*10**7))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The capacitance of the capacitor is 16.147 pF\n",
+ "\n",
+ "Charge stored on capacitor = 16.147 *10^-11 C\n",
+ "\n",
+ "E=4.08*10^3 V/m\n",
+ "\n",
+ "Polarisation=1.806*10^-7 C.m^-2\n",
+ "\n",
+ "dielectric displacement = 2.167*10^-7 C.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.22, page no-475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# polarisation produced\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "E=500 # electric field strength\n",
+ "epsr=6 # dielectric constant of sodium cloride\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "# calculations\n",
+ "p=eps*(epsr-1)*E\n",
+ "\n",
+ "# Result\n",
+ "print(\"The polarisation produced in NaCl is %.3f * 10^-8 C.m^-2\"%(math.ceil(p*10**11)/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The polarisation produced in NaCl is 2.214 * 10^-8 C.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.23, page no-475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# polarisation produced in NaCl\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "E=500 # electric field strength\n",
+ "epsr=15 # dielectric constant of sodium cloride \n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "#calculations\n",
+ "p=eps*(epsr-1)*E\n",
+ "\n",
+ "#Result\n",
+ "print(\"The polarisation produced in NaCl is %.3f * 10^-8 C.m^-2\"%(p*10**8))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The polarisation produced in NaCl is 6.198 * 10^-8 C.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.24, page no-475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Voltage across capacitor\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "A=650*10**-6 # Area of the capacitor plate \n",
+ "d=4 *10**-3 # distance between the plates\n",
+ "epsr=3.5 # relative permitivity of the dielectric\n",
+ "eps=8.85*10**-12 # permitivity of free space \n",
+ "q=2*10**-10 # charge on the capacitor\n",
+ "\n",
+ "# calculations\n",
+ "v=q*d/(eps*epsr*A)\n",
+ "\n",
+ "# Result\n",
+ "print(\"The voltage across capacitor is %.2f V\"%v)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The voltage across capacitor is 39.73 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.25, page no-476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# charge on the capacitor\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "A=5*10**-4 # Area of the capacitor plates\n",
+ "d=1.5*10**-3 # Distance between the plates\n",
+ "epsr=6 # Relative permitivity of the dielectric\n",
+ "v=100 # Applied voltage\n",
+ "eps=8.854*10**-12 # permitivity of free space\n",
+ "\n",
+ "#calculation\n",
+ "q=eps*epsr*A*v/d\n",
+ "\n",
+ "#Result\n",
+ "print(\"The charge on the capacitor is %.2f *10^-9 C\"%(q*10**9))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The charge on the capacitor is 1.77 *10^-9 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 98
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.26, page no-476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#dielectric constant\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=2.08*10**3 # density of sulphur\n",
+ "wt=32 # atomic weight of sulphur\n",
+ "ep=3.28*10**-40 # electronic polarisability\n",
+ "eps=8.854*10**-15 # permeability of free space\n",
+ "\n",
+ "# Calculations\n",
+ "k=(3*10**28*7*10**-40)/(3*eps)\n",
+ "epsr=2.5812/(1-0.7906)\n",
+ "\n",
+ "# result\n",
+ "print(\"The dielectric constant of the given material is %.3f\"%epsr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The dielectric constant of the given material is 12.327\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_19.ipynb b/Material_Science/material_science_ch_19.ipynb
new file mode 100755
index 00000000..dda00143
--- /dev/null
+++ b/Material_Science/material_science_ch_19.ipynb
@@ -0,0 +1,526 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Capter 19: Magnetic Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1, page no-541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Relative permiability and magnetic force\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "M=2300.0 # Magnetization\n",
+ "B=0.00314 # Flux density\n",
+ "\n",
+ "#Calculation\n",
+ "mu=4*math.pi*10**-7\n",
+ "H=(B/mu)-M\n",
+ "mur=(M/H)+1\n",
+ "\n",
+ "#Result\n",
+ "print('The magnetic force H is %.4f A/m and the relative permeability mu_r is %.5f'%(H,mur))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetic force H is 198.7326 A/m and the relative permeability mu_r is 12.57334\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2, page no-542"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# magnetisation and flux density\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "H=10**4 # Magnetic field intensity\n",
+ "sus=3.7*10**-3 # Susceptibility\n",
+ "mu=4*math.pi*10**-7 # permeability of free space\n",
+ "\n",
+ "#Calculation\n",
+ "M=sus*H\n",
+ "B=mu*(M+H)\n",
+ "\n",
+ "#Result\n",
+ "print('The magnetisation in the material is %.0f A/m and flux density in the material is %.2f * 10^-2 Wb.m^-2'%(M,B*10**2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetisation in the material is 37 A/m and flux density in the material is 1.26 * 10^-2 Wb.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.3, page no-542"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Flux density in a material\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "H=10**4 # Magnetic field intensity \n",
+ "sus=-0.8*10**-5 # susceptibility of copper\n",
+ "mu=4*math.pi*10**-7 # permeability of free space\n",
+ "\n",
+ "#Calculations\n",
+ "M=sus*H\n",
+ "B=mu*(M+H)\n",
+ "\n",
+ "#Result\n",
+ "print('The flux density in the material is %.2f * 10^-2 Wb.m^-2'%(B*10**2))\n",
+ "\n",
+ "# Magnetic field intensity: value given in the book is 10^6 but calculations are done with 10^4"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The flux density in the material is 1.26 * 10^-2 Wb.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.4, page no-543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Permeability \n",
+ "\n",
+ "import math\n",
+ "# Variable declarations\n",
+ "H=1800.0 # Magnetic field intensity\n",
+ "fi=3*10**-5 # Magnetic flux\n",
+ "A=0.2*10**-4 # Area of cross-section \n",
+ "\n",
+ "#Calculations\n",
+ "B=fi/A\n",
+ "mu=B/H\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe magnetic flux is %.1f Wb/m^2\\nThe permeability is %.3f*10^-4 H/m'%(B,mu*10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The magnetic flux is 1.5 Wb/m^2\n",
+ "The permeability is 8.333*10^-4 H/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.5, page no-544"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Magnetic moment of Nickel\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "B=0.65 # Magnetic inductionof Nickel\n",
+ "r=8906 # Density of Nickel\n",
+ "M=58.7 # Atomic weight\n",
+ "avg=6.023*10**26 # Avogadro's Number\n",
+ "mu=4*math.pi*10**-7 # Permeability of free space\n",
+ "k=9.27*10**-24 # 1 Bohr Magnetron\n",
+ "\n",
+ "#Calculations\n",
+ "N=r*avg/M \n",
+ "mu_m=B/(N*mu)\n",
+ "mu_m=mu_m/k\n",
+ "\n",
+ "#Result\n",
+ "print(\"The magnetic moment of nickel atom is %.2f Bohr magneton\"%mu_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetic moment of nickel atom is 0.61 Bohr magneton\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.6, page no-545"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average magnetization contributed per atom\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "a=2.5*10**-10 # interatomic spacing\n",
+ "M=1.8*10**6 # MAgnetization\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "\n",
+ "#Calculations\n",
+ "n=2/a**3\n",
+ "m=9.1*10**-31\n",
+ "h=6.625*10**-34\n",
+ "ma=M/n\n",
+ "beta1=e*h/(4*math.pi*m)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The average magnetisation contributed per atom = %.3f Bohr Magneton\"%(ma/beta1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average magnetisation contributed per atom = 1.517 Bohr Magneton\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.7, page no-545"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Tempoerature using classical statistics\n",
+ "\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "mu=9.4*10**-24 # Permeability \n",
+ "H=2 # MAgnetic field intensity\n",
+ "k=1.38*10**-23 # Bolzmann's constant\n",
+ "\n",
+ "#Calculations\n",
+ "T=2*mu*H/(k*math.log(2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The temperature of the system T is %.1f K\"%T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of the system T is 3.9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.8, page no-547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Saturation magnetic field of Gd atom\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "ba=7.1 # Bohr magnetron per atom\n",
+ "aw=1.8*10**6 # Atomic weight of Gd \n",
+ "d=7.8*10**3 # Density of Gd\n",
+ "avg=6.023*10**26 # Avogadro's Number\n",
+ "M=157.26 # Atomic number of Gd\n",
+ "k=9.27*10**-24 # 1 Bohr magnetron\n",
+ "mu=4*math.pi*10**-7 # permeability of free space\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "N=d*avg/M\n",
+ "mm=N*ba*k\n",
+ "B=N*mu*k*7.1\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe saturation magnetic field of Gd atom is %.2f Wb/m^2\"%B)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The saturation magnetic field of Gd atom is 2.47 Wb/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.9, page no-547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#saturation magnetisation\n",
+ "\n",
+ "import math\n",
+ "# variable ddeclaration\n",
+ "bet=9.27*10**-24 # 1 Bohr magnetron\n",
+ "V=0.839*10**-9 # unit cell edge length\n",
+ "\n",
+ "#Calculations\n",
+ "M=32*bet/V**3\n",
+ "\n",
+ "#Result\n",
+ "print(\"The saturation magnetisation is %.3f *10^5 A/m\"%(M*10**-5))\n",
+ "# Answer in the book is given as 5.023 x 10^-5"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The saturation magnetisation is 5.023 *10^5 A/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.10, page no-548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Saturation flux density\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=8900 # Density of Ni\n",
+ "wt=58.71 # Atomic weight\n",
+ "avg=6.022*10**26 # Avogadro's Number\n",
+ "bet=9.27*10**-24 # 1 Bohr magnetron\n",
+ "mu=4*math.pi*10**-7 # permeability of free space\n",
+ "\n",
+ "#Calculations\n",
+ "mm=0.6*bet\n",
+ "N=d*avg/wt\n",
+ "ms=mm*N\n",
+ "bs=mu*ms\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe saturation magnetisation is %.3f *10^5 A/m\\nThe saturation flux density is %.3f Wb/m^2\"%(ms*10**-5,bs))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The saturation magnetisation is 5.077 *10^5 A/m\n",
+ "The saturation flux density is 0.638 Wb/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.11, page no-548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Saturation magnetisation of gadolinium\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "awt=157.25 # Atomic weight\n",
+ "an=64 # Atomic number\n",
+ "d=7860 # density\n",
+ "k=9.27*10**-24 # 1 Bohr magnetron\n",
+ "avg=6.023*10**26 # avogadro's Number\n",
+ "\n",
+ "#Calculations\n",
+ "N=d*8*k*avg/awt\n",
+ "\n",
+ "# Result\n",
+ "print(\"The saturation magnetisation of gadolinium is %.2f*10^6 A/m\"%(N*10**-6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The saturation magnetisation of gadolinium is 2.23*10^6 A/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.12, page no-549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Magnetic flux density inside the material\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "H=1000 # Magnetic field strength\n",
+ "sus=-0.3*10**-5 # magnetic susceptibility\n",
+ "mu=4*math.pi*10**-7 # permeability of free space\n",
+ "\n",
+ "#calculation\n",
+ "M=sus*H\n",
+ "B=mu*(M+H)\n",
+ "B=math.floor(B*10**6)/10**6\n",
+ "\n",
+ "#Result\n",
+ "print(\"The magnetic flux density inside the material is %.3f T or Wb.m^-2\"%(B*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnetic flux density inside the material is 1.256 T or Wb.m^-2\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_2.ipynb b/Material_Science/material_science_ch_2.ipynb
new file mode 100755
index 00000000..da9f1e90
--- /dev/null
+++ b/Material_Science/material_science_ch_2.ipynb
@@ -0,0 +1,1395 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Crystal Structure"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, page no-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice spacing from Miller indices\n",
+ "\n",
+ "import math\n",
+ "# Intercepts are in the ratio 3a:4b along X,Y and parallel to Z axis\n",
+ "# x-intercept 3, y-intercept 4 and z-intercept infinity \n",
+ "\n",
+ "#variable declaration\n",
+ "a=2.0*10**-10 # 2 Angstrom\n",
+ "h=4.0 # Miller indices wrt X-axis\n",
+ "k=3.0 # Miller indices wrt Y-axis\n",
+ "l=0.0 # Miller indices wrt Z-axis\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#result\n",
+ "print('The lattice spacing for the plane (%d%d%d) is %.1f*10^-10 m'%(h,k,l,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice spacing for the plane (430) is 0.4*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no-31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lattice constant of Sodium\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=9.6*10**2 # Density of sodium in kg/m^3\n",
+ "awt=23 # Atomic weight of sodium\n",
+ "n=2 # No of sodium atoms present in one unit cell\n",
+ "avg=6.023*10**26 # Avogadro number\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "m=n*awt/avg\n",
+ "a=(m/d)**(1.0/3.0)\n",
+ "\n",
+ "#Result\n",
+ "print('The lattice constant of sodium is %.1f A\u00b0'%(a*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice constant of sodium is 4.3 A\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, page no-31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Avogadro Constant \n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=4.0*10**3 # Density of CsCl in kg/m^3\n",
+ "awtcs=132.9 # Atomic weigt of Cs \n",
+ "awtcl=35.5 # Atomic weigt of Cl\n",
+ "a=4.12*10**-10 # Lattice constant\n",
+ "\n",
+ "#Calculations\n",
+ "m=d*a**3\n",
+ "N=(awtcs+awtcl)/m\n",
+ "\n",
+ "#Result\n",
+ "print('The value of Avogadro Constant %.4f *10^26 per kg mole'%(N*10**-26))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Avogadro Constant 6.0199 *10^26 per kg mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, page no-31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Interatomic spacing\n",
+ "\n",
+ "import math \n",
+ "#variable declaration\n",
+ "lam=1.5418*10**-10 # Wavelength of X-rays\n",
+ "theta=30.0 # Angle of diffracted angle\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis\n",
+ "\n",
+ "#Calculation\n",
+ "a=lam*math.sqrt(h**2+k**2+l**2)/(2*math.sin(theta*math.pi/180))\n",
+ "\n",
+ "#Result\n",
+ "print('The lattice constant is %.4f *10^-10 m'%(a*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice constant is 2.6705 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, page no-33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lattice spacing in a rock salt\n",
+ "\n",
+ "import math\n",
+ "#variable cdeclaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=0.0 # Miller indices wrt Y-axis\n",
+ "l=0.0 # Miller indices wrt Z-axis\n",
+ "a=2.814*10**-10 # interatomic spacing\n",
+ "\n",
+ "#calculations\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('The lattice spacing for the plane(%d%d%d) is %.3f*10^-10 m'%(h,k,l,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice spacing for the plane(100) is 2.814*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7, page no-33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lattice spacing from Miller indices\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=3.0 # Miller indices wrt X-axis\n",
+ "k=2.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis\n",
+ "a=4.12*10**-10 # interatomic spacing\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#result\n",
+ "print('The lattice spacing for the plane(%d%d%d) is %.4f*10^-10 m'%(h,k,l,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice spacing for the plane(321) is 1.1011*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, page no-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lattice spacing from Miller indices\n",
+ "\n",
+ "import math\n",
+ "#(i)\n",
+ "#variable declaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=0.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis\n",
+ "a=4.2*10**-10 # lattice constant\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice spacing for the plane(%d%d%d) is %.4f*10^-10 m'%(h,k,l,d*10**10))\n",
+ "\n",
+ "#(ii)\n",
+ "#variable declaration\n",
+ "h=2 # Miller indices wrt X-axis\n",
+ "k=2 # Miller indices wrt Y-axis\n",
+ "l=1 # Miller indices wrt Z-axis\n",
+ "a=4.12*10**-10 # Lattice constant \n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice spacing for the plane(%d%d%d) is %.1f*10^-10 m'%(h,k,l,d*10**10))\n",
+ "\n",
+ "#Answer in the book for plane(101) is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The lattice spacing for the plane(101) is 2.9698*10^-10 m\n",
+ "\n",
+ "The lattice spacing for the plane(221) is 1.4*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13, page no-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lattice spacing from Miller indices\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#(i)\n",
+ "#variable declaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis\n",
+ "a=4.12*10**-10 # lattice Constant\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nFor (%d%d%d) plane\\nThe lattice spacing is %.4f*10^-10 m'%(h,k,l,d*10**10))\n",
+ "\n",
+ "#(ii)\n",
+ "\n",
+ "#variable declaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=2.0 # Miller indices wrt Z-axis\n",
+ "a=4.12*10**-10 # Lattice Constant\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\n\\nFor (%d%d%d) plane\\nThe lattice spacing is %.4f*10^-10 m'%(h,k,l,d*10**10))\n",
+ "\n",
+ "\n",
+ "#(iii)\n",
+ "\n",
+ "#variable declaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=2.0 # Miller indices wrt Y-axis \n",
+ "l=3.0 # Miller indices wrt Z-axis\n",
+ "a=4.12*10**-10 # Lattice Constant\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\n\\nFor (%d%d%d) plane\\nThe lattice spacing is %.4f*10^-10 m'%(h,k,l,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "For (111) plane\n",
+ "The lattice spacing is 2.3787*10^-10 m\n",
+ "\n",
+ "\n",
+ "For (112) plane\n",
+ "The lattice spacing is 1.6820*10^-10 m\n",
+ "\n",
+ "\n",
+ "For (123) plane\n",
+ "The lattice spacing is 1.1011*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, page no-38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice spacing from Miller indice\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=2.0 # Miller indices wrt X-axis\n",
+ "k=2.0 # Miller indices wrt Y-axis \n",
+ "l=0.0 # Miller indices wrt Z-axis\n",
+ "a=4.938*10**-10 # Lattice Constant\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice spacing for (%d%d%d) plane is %.4f*10^-10 m'%(h,k,l,d*10**10))\n",
+ "\n",
+ "#Note: Final answer in the book is as follow:\n",
+ "# The lattice spacing for the plane (110) is 2.968 x 10^-10 m "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The lattice spacing for (220) plane is 1.7458*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, page no-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Number of atoms in Al foil\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a=0.405*10**-10 # lattice constant\n",
+ "t=0.005 # thickness of Al foil\n",
+ "A=25*10**-2 # side length of Al foil\n",
+ "\n",
+ "#calculation\n",
+ "n=t*A/a**3\n",
+ "\n",
+ "#Result\n",
+ "print('The number of atoms in the Al foil is %.2f * 10^28'%(n*10**-28))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of atoms in the Al foil is 1.88 * 10^28\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.17, page no-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#no of unit cells in 1 kg metal\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a=2.88*10**-10 # lattice constant\n",
+ "d=7200.0 # Density of metal in k/m^3\n",
+ "\n",
+ "#calculation\n",
+ "n=1/(d*a**3)\n",
+ "\n",
+ "#Result\n",
+ "print('The number of unit cells present in 1 kg metal is %.4f *10^24'%(n*10**-24))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of unit cells present in 1 kg metal is 5.8142 *10^24\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, page no-39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#percentage volume change during structural changes\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rbcc=0.1258*10**-9 # Atomic radius at bcc state\n",
+ "rfcc=0.1292*10**-9 # Atomic radius at fcc state\n",
+ "\n",
+ "#calculation\n",
+ "a=4*rbcc/math.sqrt(3)\n",
+ "vbcc=(a**3)/2\n",
+ "a1=4*rfcc/math.sqrt(2)\n",
+ "vfcc=(a1**3)/4\n",
+ "vp=(vbcc-vfcc)\n",
+ "vp=math.floor(vp*10**32)\n",
+ "vp=vp*10**-32/vbcc\n",
+ "\n",
+ "#Result\n",
+ "print('The volume change in %% duringg the structural change is %.4f'%(vp*100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The volume change in % duringg the structural change is 0.4894\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.19, page no-40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copper Density\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "awt=63.5*10**-3 # Atomic weight of copper\n",
+ "avg=6.023*10**26 # Avagadro No. \n",
+ "r=1.273*10**-10 # Atomic radius for fcc system\n",
+ "n=4.0 # No of atoms per unit cell for fcc\n",
+ "\n",
+ "#calculation\n",
+ "a=4*r/math.sqrt(2)\n",
+ "a= math.floor(a*10**11)/10**11\n",
+ "d=n*awt/(avg*a**3)\n",
+ "\n",
+ "#Result\n",
+ "print('The density of copper is %.5f gm/m^3'%d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of copper is 9.03885 gm/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.20, page no-41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Atomic Radius\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=7860.0 # Density of alfa-iron\n",
+ "m=55.85 # atomic weight of alfa-iron\n",
+ "n=2.0 # No of atoms per unit cell for Bcc\n",
+ "avg=6.023*10**26 # Avoigadro's Number\n",
+ "\n",
+ "#calculation\n",
+ "a=(n*m*10**-3/(avg*d))**(1.0/3.0)\n",
+ "r=a*math.sqrt(3)/4.0\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice constant of alfa-iron is %.4f A\u00b0'%(a*10**10))\n",
+ "print('\\nThe atomic radius of alfa-iron is %.5f *10^-10 m'%(r*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The lattice constant of alfa-iron is 0.2868 A\u00b0\n",
+ "\n",
+ "The atomic radius of alfa-iron is 0.12420 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.21, page no-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lattice constant\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=8960.0 # Density of copper\n",
+ "m=63.54 # Atomic weight of copper\n",
+ "n=4.0 # No of atoms per unit cell for Fcc\n",
+ "avg=6.023*10**26 # Avogadro's number\n",
+ "\n",
+ "#calculation\n",
+ "a=(n*m*10**-3/(avg*d))**(1.0/3.0)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice constant of copper is %.4f A\u00b0'%(a*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The lattice constant of copper is 0.3611 A\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.22, page no-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Glancing angle \n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a=3.81*10**-10 # lattice spacing\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=3.0 # Miller indices wrt Y-axis\n",
+ "l=2.0 # Miller indices wrt Z-axis\n",
+ "lam=0.58*10**-10 # Wavelength of X-rays\n",
+ "n=2.0 # order of diffraction\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "theta=math.asin(n*lam/(2*d))\n",
+ "\n",
+ "#Result\n",
+ "print('The angle of glancing at which 2nd order diffraction pattern of NaCl occurs is %.2f\u00b0'%(theta*180/math.pi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle of glancing at which 2nd order diffraction pattern of NaCl occurs is 34.72\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.23, page no-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice constant\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=3.0 # Miller indices wrt X-axis \n",
+ "k=0.0 # Miller indices wrt Y-axis \n",
+ "l=2.0 # Miller indices wrt Z-axis \n",
+ "theta=35 # glancing angle\n",
+ "lam=0.7*10**-10 # wavelength of X-rays \n",
+ "n=1.0 # order of diffraction\n",
+ "\n",
+ "#calculations\n",
+ "d=n*lam/(2*math.sin(theta*math.pi/180))\n",
+ "a=d*math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe interplanar distance for(302) plane is %.3f*10^-11 m'%(d*10**11))\n",
+ "print('\\nThe lattice constance is %.2f*10^-10 m'%(a*10**10))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The interplanar distance for(302) plane is 6.102*10^-11 m\n",
+ "\n",
+ "The lattice constance is 2.20*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.24, page no-44"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "For plane (0 0 1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Plane drawing 1\n",
+ "\n",
+ "from mpl_toolkits.mplot3d import Axes3D\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "point = np.array([0, 0, 1])\n",
+ "normal = np.array([0, 0, 1])\n",
+ "\n",
+ "# calculations\n",
+ "d = -point.dot(normal)\n",
+ "x, y = np.meshgrid(range(10), range(10)) # create x,y\n",
+ "z = (-normal[0] * x - normal[1] * y - d) * 1. / normal[2] # calculate corresponding z\n",
+ "\n",
+ "# Result\n",
+ "plt3d = plt.figure().gca(projection='3d')\n",
+ "plt3d.plot_surface(x, y, z, rstride=1, cstride=1)\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n3AAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa2a3780>"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "For plane(1 0 1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Plane drawing 2\n",
+ "\n",
+ "from mpl_toolkits.mplot3d import Axes3D\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "point = np.array([1, 0, 1])\n",
+ "normal = np.array([1, 0, 1])\n",
+ "\n",
+ "# calculations\n",
+ "d = -point.dot(normal)\n",
+ "x, y = np.meshgrid(range(10), range(10)) # create x,y\n",
+ "z = (-normal[0] * x - normal[1] * y - d) * 1. / normal[2] # calculate corresponding z\n",
+ "\n",
+ "# Result\n",
+ "plt3d = plt.figure().gca(projection='3d')\n",
+ "plt3d.plot_surface(x, y, z, rstride=1, cstride=1)\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAADtCAYAAAAcNaZ2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXmcFNXV/r/3zkzPdM8AIpGoYKLihgvuGolBjEQFERWR\nqChxiyYxyZuY5P0l0eRV4xoTjdG4GwE3FGRRWVRABJWguKCiGEBRQBZlmaX37rq/P27dpqbppaq6\nQUbr+XzyMUDf6tvbU+ee85znCKWUIkCAAAECbBPIL3sDAQIECPB1QkC6AQIECLANEZBugAABAmxD\nBKQbIECAANsQAekGCBAgwDZEQLoBAgQIsA0RkG6AAAECbEMEpBsgQIAA2xAB6QYIECDANkRAugEC\nBAiwDRGQboAAAQJsQwSkGyBAgADbEAHpBggQIMA2REC6AQIECLANEZBugAABAmxDBKQbIECAANsQ\nAekGCBAgwDZEQLoBAgQIsA0RkG6AAAECbEMEpBugYmSzWTKZDMG4vQAByqP2y95AgI4JpRRKKdLp\nNKlUikwmgxACgJqaGurq6qipqUFKiZQy928BAnzdEZBuAE9wkm00GkVKSW1tLUIIpJQkk0kymQzZ\nbLbdOiklNTU1uf8FZBzg6woRjGAP4AZOsrUsC4BYLIZlWWSzWZRSOQIVQlBXV5cj1vxrOBGQcYCv\nGwLSDVASSiksyyKTyWBZFkIILMsimUySSCSoqalBKcX99z+IEIJLLrkIIPc4Q8aGTA2xOknV+TiA\nTCZDbW1tLkURkHGArxKC9EKAgihEtkop4vE4qVSKUChEKpXigQf+ze2330k22xPYxOuvv8ndd/+T\npqamdtcx/zORslIqR6ROQhVCkM1mkVLm8sVOog0i4wAdHUGkG6AdlFJkMhkymQxAjgSTySSpVIr6\n+nqSyST/+tdd3HbbHVjWHsTjxwDdgRTh8GT226+RSZPG0bVr15LP4yRj8z/zdSxGqiZF4YyMgVxu\n2aypqanJkXiAANsTAtINAGgyM9KvtrY26urqqKurIx6Pk06nqa+vJxaLcfvtd/Cvf92DUnvZZPuN\nvCtZhEIz6d79M6ZMmcQee+zheR+xWIzaWn0Ic5JxfmRciozT6TS1tbU5Ig7IOMD2goB0v+Zwkq0h\nrLa2thzZNTQ00NLSwq233s599z2AUvuRSHwH2LHkdaV8naam/zBhwhMcddRRnvYUi8Wor6+npqam\n3T6LRcaFyDgWixEOh3NpEfPazH+dKQpnnjkg4wBbGwHpfk1RiGyz2Wwusq2rq6OtrY1f/eq3PPPM\ns9TVHUwyeQxQPGWwJT4kHJ7CPffcwRlnnOF6VSHSLfU6vJBxuTRFQMYBtjaCQtrXDCZn65R5WZZF\nPB4nk8nQ0NDA6tWrufXW2xk79kks60CU6ko6vQz4vsdn25d4vDM/+cmv+eijj7niil9XnbycUasT\nJkUCuC7gmccajXEqlaK2trZd8c78OSDjAH4RRLpfExiNrekcE0KQyWRIJBJks1kaGhpYs2YN1113\nE+PGjUepQ0iljgY6AWmkfAqlVqLUBWyZxy2HZiKRcZx++ve5885/5PK1xeAl0i2GaDRKOBxupxOG\nzRF+fmQMm5URhlQTiQQNDQ1IKQtqjIGAjAN4RkC6X3E41QjNzc106tQpJ/0yOduVK1dy7bU38vTT\nT5PNHkY6fRTQmHclCylnotQClBoO9PK4kyTh8EQOOeSbjBv3KJ07dy76yFgsRigUKkvOpVCMdAvB\nEGqhNAXQjoidxOpMUThhdMkBGQcohIB0v6LIl34BNDc356K2cDjMxx9/zDXX3MC0adPIZI4gkzkS\niJS8rhBvoNR04AeAtwIZZKmvf55dd93IlCmT6NmzZ8FHxeNx6urqthnplrpGfX09wBZk7Gz4KEXG\n6XQaIUS7VumAjL/eCEj3K4ZCZJvJZIjH42SzWcLhMMuWLeOSS37Ce++9g1LfI5s9Emjw8CxLgSeB\nQ4BBXndITc18Ond+g8mTn+KQQw7Z4hHbC+kWS3OUiozzyTiTySClpL6+vmxk7NQZB2T81UVAul8R\nmAJQIbIFCIfDzJ8/n5tvvpVXXplHItEHpV5HiG+h1A/x7vK5FhiDELug1Lk+1r9PJPIcDz10HwMH\nDmz3L9sL6Xq9RiEydjaZuImMnciXtjnXBei4CEi3g8P8sJ2uXul0mkQiAWiyffvtt/nTn67ltdfe\nIJk8Gss6DAgBzQgxGiFCWNbFQJ3HZ29FiIcRQmFZlwD1HtevJBx+ij//+fdcfvlPc3/bUUm3EBKJ\nRC6KdRMZFzIJymazpFIpGhr0acSQsTNFYZo+Amz/CEi3g8KQbSKRIJVK0djYSDqdJh6PI6WkoaGB\nBQsWcNVV1/D22+8Rjx+NUoeyJbEmkPIJlNqAUhcBXTzuJIWUTwJrsayL8KbjBdhIOPwkw4cP4q9/\nvYG6ujpSqVSuI84vtifSNf7C+XCbphBC5D7j/LXOP+fniwuZCwX48hGQbgeDU3MK5IgWtOQpHA4z\nb948/vjHq3n//SXEYkejc6+losYsUk5BqQ9QagRQuMBVYldI+RxKLUSps4HdPa6PEw5P4PDDe/LQ\nQ/flyKXYcdwNiXQE0i0GQ6hG2mb+C+3TFIVINb/pI5+MA5OgLx8B6XYAFPKyBS3eN4Tb2NjI7Nmz\n+fGPf0ZLS5J4vC/QB3CrdVVIOQ/Lmg0Mttd6gxDzUWoGMBA4zMPKJEK8glJz6dHjW0yb9gw9evRA\nSum60yyfGDsy6ebDGA6Fw2Ff3Xegv0PJZDLndQybb2oBGW9bBB1p2zGKka3xsq2traWhoYGpU6dy\n/fW38Mkna4nHd0SpZUA33BMugMCy+gI7ABOBL/DagabU0fb6p+z1J5ZZkUSI11DqZYTohFLnsnbt\nGo4//kQmTx5Pnz59CioHnISTSqUK5kaLNTNsa+S3GVeCYt13bu0zlVI5cjXIL75CYJ+5tRFEutsh\n8r1sDZxkW19fz/Tp07nyymv47LNNRKPHAPsDwo44ZwKnoFMLXrESeATYExjuY/1q4GGE2K2IMiKF\nEAtQ6iWkbMKyfgDsl/tXId4lEpnJI488xAknnFD22fyqBsqhGpFuNYqCmUyGdDpNOBz2tK7Qe2J+\n7m4i42JTPkx0HJCxPwSkux3BSbYtLS253GYymSSZTFJXV0d9fT1PP/00V111LevWxW2y3ZctiW0x\nOuI8Ct3I4BUbEWIMQoTtAplX0mi219c5lBFpu7liNlJGsKwB6BtFIXxCODyRm266lgsvvMDz7qPR\nKA0NDTlviXKqgUKWjx2ddIvtpaampqI0RTweJxQK5d6XIDL2hoB0twMUcvzauHEj9fX1uUp+KBRi\nwoQJXHXVtWzapGhrOwbYGyj1xV4FPIIQ37Zbd72SRxwpHwdabOLs5HF9EinHotR6lDoKeAUpG7Cs\n7wMHuVj/BeHwOC6++Gyuu+4aT+RXijCdkbHThyGfdIxMqxI51vZIusX24taxzfm+ONcWi4wDMm6P\ngHS/RBQiW+f8MeM/cPPNN/PAA6OJxyM22e5JabJ1YpMdcdbbEavXgk4GKZ9BqSUodR6wq6e18CYw\nFZ1f7guUTxe0R5RI5Cn69TuA0aMfcE08fqLUQrlRpwLAj5KiGqSbTqdzpkSVwO9eCr0vBm4iY3Oy\ncK75OqcpAtL9ElCIbM2xzcwfi0ajTJw4keuu+ystLZJkcg26sHWMj2dMIOVYYKMdsRY3mymyY6Sc\ni2W9DJwGHFDm8VlgITDLViAchxAJlHoJf8qINOHwFHr1Ejz99FN84xvlXc6qkRpoa2vLpXjKRYDF\nIrlqOKZVi3SrsRfY8n3Jd22DLcnYnBackrZ4PJ5LAZk1X4fIOCDdbYhika1pcDDmKqNGjeYvf7mR\nVKqbnbP9FvAR8ARwIHCqj2fPIuWzKLXYpxYX4F3gaeB7QL+Cz6EfMxMpBZZ1LO1Ncd5HKyOOwasy\nAizq6l5ixx2XMWXKJPbZZ5+Sj64m6Rb70Rci4vx8cSaTyZ1Y/JLH9kS6Simi0WjR98WLL0UymSQS\nibRTmxQylndGxF8FMg5IdxvAkG00Gs2J1I1xuJk/ZlkWDz74b2688RbS6e422eYT4+fAaITYCaXO\nx3uOViHEqxVEnACfAo+h88ln2n9nAe8hxAzAQqnvUjwir0wZIcRbNDbO4cknH+XYY48t+rhtQbqF\nkE86ZpqxIRI/SopUKoVSKndT9otqvCeGdM20Zy/rKvWlKEbGHW3+XUC6WxHG8ctMaYhGo9TW1pLN\nZkmn0zQ0NJBOp7nnnnv5299uI5PpSSz2HUrnTdsQ4hGEyNh+B36in0XAJPxFnADrEWIM0BmljkKI\nmUAapfra1yz3o95oez5EfCojPiIcnsxtt/2Vc889p+AjvizSzYeJLk005yQd5/SOfEMbJ3l8FUi3\n2HUaGxtdR8bFyNjUP6SULFy4kKVLl3LxxRdXtL+tiaA5Yisg317RpBGcVejW1lb+9rdbuffe+8lm\ndyce/yHwTRdXb0KpixHiKYS4E3+THA5Aeyw8gm5i8BpxdkWpfsAzwGq7KeIE3EfeXVHqMoR4HCnv\ntG8eXn7EexKPj+DXv76SJUuW8ec/X7n9Rzc2ieYTnpvGBhMXGSL6Ml9rtZo9zHVKvS/O98YEKsUa\nYUyku2rVKtavX1/x/rYmgki3iihEtmbYo/FVjUaj3HPPffzzn3faTmDH4L2iD2aSg2UtQJOm10kO\n4F2Lq4AP7TRCDKWOQIj1wMco9SPc3TScyCDl0yi11IcyAqCNSGQcJ554JPfff3e7SHB7iXT97sNJ\nOOl0Oke8btugC6Ear8ekxZzmO9vyOqXSFMOHD0dKSSQSYcSIERxwwAEccMABhEKhktdcsWIFI0eO\nZN26dQghuPTSS/nlL3/p+7WVQ0C6VUAhss2fP9ba2spNN93Cv//9EJvHmK8HxqN9Ck729dybJzkM\nAI72cQU3WlwFLEGIF4A2lDocnZaQaGXDbCxrHjAUZ2eZOyiknINlvQKcTvFmiWJIEQ4/w377hZkw\n4Ql23HFHhBAdnnSdMJ4JoVBoi+jPzVG8mq/H+EBEIqUnjGyr65g0RSQSYenSpYwZM4Y1a9YAsGjR\nIh5++GEOPfTQktdYs2YNa9as4ZBDDqGtrY3DDz+cSZMm0bt374r2VgxBeqECGE2tZVm5H5WJbC1L\nzx9ra2vjL3+5nn//exSWtT/JpNP+sBtwIbpldj1KnYPX4pgmwB3QyoYv0K2/XhDGskYi5TMIcXde\nxKmAZTbZtqDUIWhyd1a/BZZ1vP2angL6A9/18PwCyzoO2JHNng+FlBHFECIeP4NFi2bx3e/2Z/z4\nx9lzzz1znhV+x6hvr7GI03/BGNe4PYqD/n5uD9671fSkAF1U22effYhEIlx00UWcdNJJrtfuvPPO\n7LzzzgA0NTXRu3dvPvvss4B0tyeYL3Ymk8kVx2pqakgkEliWRTgc5vPPP+eqq/6PRx55DKUOIpm8\nhMJetbsAPwHGIOW9drRZ+ji0JXoBF9vX2IBljcAbeddiWacj5VyUGoXW4oaRcgbaZ7cPcBKlDXQO\nQb++sWiVxekeX8NBaP3wY2jiHephrSSVGsCaNbM57rgTGDXqAY4//vgc8brV1BbCl01ObuAmL+oc\nK++2DboQqk2WlSJ/P62treywww6+r7d8+XLeeustjj7az6nRHYK5Hx5gJEDJZDKXSjCWefF4nPr6\nejZt2sQvfvFrDjzwUMaMWUQicSnJ5ImUNgfvjFI/BpqQ8g5gk4/dfRP4CUq1IuXdQNLjeoFl9QMO\nRUesj2FZu6LUb9Fz0NxoO/cALkFHxw+hdbte8G3gUmA5QjzoYX0cKWdgWa+QzXbh4ot/ytNPP00o\nFCIcDtPY2EhjY2Ouwm2OttFolGg0SjweJ5lM5vSw21uU65fonLPXTF4zEonQ2NhIOBzOdaaZsU7R\naJRYLJbTjRvDpa3xflS7IGfQ0tJCly5ejfg12traGDZsGLfffnvF6oxSCCJdFzDJeudIHPNFtSyL\nuro61q1bxxVX/D+mT3+OmpoDyWYvw1tFvh7LGoGU0xHiHjvV8G2PO+2EUpcgxHhbFXABOoXhBiuQ\n8gUsay3aQGcZmri9fkV2QkfujyDlXbYywYtnQDfH+juxrB9TfEJxCu2oNhedYhmJZe1GIrGaX/3q\nj6xc+Rm/+91vchFcfvtruWM56MjQS9tvPraXyNC5j0qVFM7W3u3htTnR3NxM165ep5foBpQzzzyT\n8847j9NP93pK84agkFYE5suV72WbP3/sgw8+4IYbbuG5554nkzkMy4qh1DtoS8M9fD23EP9BWzN6\nNQM3sJDyeZR6G210s2eJx660VRCr0EWwwej0xnpb2dAJy7oQb968AGmkfAqlVtiytp08rs8g5USU\nKqSMMJ4Os9BuZQPRzRpONBOJjGPIkP7861+3e57ckM1mSSQS1NXVFTV+cR7Li6EaxatqGKFXojpw\nknF+9OsnZQPV0x7nmwENGTKE6dOne7quUoof/ehHdOvWjdtuu62i/bhBQLp5KEW2zvljS5Ys4f/+\n73pmzJhBJnMEmcyRmIhu8wSFk4HDfe7kQ7Sy4UjKm4EXhhCvo9Tz9voj8/71M5tsV6Aj28FsOVgy\nhhCPIUTUjli9/mAtpJyFZb0ODGNLYiwHhZQvYlnz0TnevdFtxi8gZQ3arezgEuuThMOTOPjgnRg3\n7lFPx85CTQCFmhvKKQeqQbrVMM2pllrASZZu2qCLKSmcioxKkN8iPXDgQObMmeNJLfLyyy/Tr18/\n+vTpk9vjjTfeyMkn+1MUlUNAujbMDyqTydDa2kp9fT21tbWkUqncRNdwOMyiRYv485//wpw5L5NO\nH0U2eziFu8I+ROdG/cvB4DO0NWMxM3A3WAKMQ+dqBwJrbLL9BNgL7eNQ6vifQcrJKLUMpUYCO3ve\nwWZZ2wnAdzyvh7eAKUDI7kb6nofrZKmvf4FddlnPlCmT2G233Vytctt5Vc5rQCmV87D1m6LYXkm3\nENx6L5g/19fXV3RDcpKuUopBgwYxd+7c7S7t4cTXnnSdZGu+CC0tLdTW1uYkRw0NDbzzzjtcddU1\n/Oc/r5NMHoVlHU55lYGZoNDDlxxMw5iB1/pUNgCsAUajUwQJNNkOoXiuNB+VanFB54ifQPs9DPaw\n7mOEeA6lNqHTCgeh1RVeoKipmU+nTm8wefL4srpNqLzd1XyvDGGWSlGUI+PtiXT9Rqj5ZGzsId20\nQZeC8yZgSPfll1/29dq2Fb626gWTt0ulUrkPDsg1NGQyGZqampg1axbHHtufAQOGMHt2DfH4z7Cs\nY3BHfrsAlwEbkfIeIOVjp11Q6lKgESnvxLuy4XOknIMmLIUQO6CJ08uPz2hxT0FH736+1L3QyoYP\nkHIM2iSnFFYh5UPAWJTqCfwO/V4uQYhRLtY7Ichmv8OmTd/n5JOHMHXqVB/79wZnoaq+vr6disI4\nfZk0llM5UEhFUY246Msu6OUrKWpqagiFQjQ2NuYM0Qu9H+WUFM7X1VHix69dpGvINt/L1jl/TCnF\n66+/ztVX38C7735AItGG9ivwGmEZJJHySZRah1LO5ggvyCLlNJR6D6XORds9lsJ6OzpdjJ4ccRoQ\nQspxwFq77dfPPpYDj6Oj3TN8rG9FiIcRQtl54vxj6ue2/OsjdK751LzHGMOftK1s8Gr4s4pweDx/\n+tP/4+c//1nRR1XD2MXLNUrlR5VSFU/srdb0iWoU9aB6Uyyy2SxSSurr64nFYowYMYIZM2ZUtLet\nja8N6RYj20QikZs/1tDQwEsvvcQf/vB/LF36qe34dTC6XXcM/i0VQReVpqHUuz7lYKAj1f+g1CyK\nD53cgJQvYVmLEOJbNtk6C0gWUj6HUgtR6mxgdx/7+AIYjZQ7Ylkj8a5sSNnkv9pWRnQDNtlFs/cR\nYneUOp3ihTunMuIi3MviDDYSiYxj+PBB3HbbLQX9ZavhMVCNFIVS2uzb7NFEwF5TFNXy5K0W6fr1\n9s2X+Bm9/F//+ldee+012trauPzyyznwwAM56KCD6NSp9Iipiy66iClTptC9e3feffdd36/HC77y\npGt8EUwUW4xsZ86cyR//eDXLl68hGv0O2izc+YWoNMLSqFwOBoWHTm6yyfY9hOiJUkMoFcluVlj4\n3UfUfj+SdsTqNVeoZW2W9RY69fBfO/d9esl9t18/A8t6A3+GP3EikUkceeRuPP74mC2IcXsgXYN8\ngnIbBTolbV/2yJ9yr6mS/dTW1rJhwwZmzZrFmDFj2HfffXn33Xc5//zz+cUvflFy/dy5c2lqamLk\nyJEB6VYKZ2SbzWZpbW2lS5cuObINhULU19czbdo0rrzyWlat2miT7f4Uj2RNhLXS1o561Z4aVC4H\nM0MnoQdCdEapd2zSGoL7yM8oLI7wuY80Uk5AqU99aHETaEP1V9AeD33Rvg7eoEe5P4e++RxV7uF5\nyNLQMJ2ePaNMmTKRXXbZJfcv1SDdajlyuTXNKWWGY2C68vxOXqgW6VbDCAjak/f8+fOZOnUqt956\nq6drLF++nFNPPXWbke5XriPNRLZOg2gT3TY3NxMKhejUqVNujPnatbESY8zzUYdlDUfKmcADKOVH\ne4r9XBex2ejGjxysM1LugWV9gFJ1wMUotUvZVVvuw2m443UfdVjWWUg5C6UeQE+SKD1GR49hfw2l\nXkKILna6Jo2WtaXRkbd7KHUEuhvtSXTaY5CH1TUkEoNYvvxVjjmmH88+O5EDDzzQ0/NvTyhlhmM8\nF4qZ4biVtFWzfbfaqKQFeFviK6NeMJXPRCLRzhchFovR0tICQGNjI88++yy77bYXI0ZcxEcfHUo0\neiHQG/dvhcSyfoCODJ8E/uNzx0bZ8AVS3ot7ZUMbUk4DbgeagQuRcle0PWPzNtyHgcSyBiDESWji\nnFfkcVlgAXArQiwAhmJZl6Nzynujb0LvIsQjeFMmgJbAXQws8rFekMl8lw0bjmXAgIFMnTo1Vy03\nhNWRkU+sDQ0NBf0XvKoGqrW3SuG8CTQ3Nwekuy2QT7Ymqo1Go7S0tCCEoLGxkXHjxrHvvgdx+eXX\nsnHjd4EGpHwJ76Ys5nkPB84GZgHP+ty9FzlYFCmfR5PtCuAiO7f8LSzrfGAvhLgHPYNsa+6jMJQ6\nDDgHeBE9vNLAQpPp7bZ07QdY1v+wpdZ3Z7TnQrNPed030TcPs96r4c9BxGJncsEFP+HOO+/K3bjz\nSejLMMSpRnSZfw1DxnV1dZ4kbU4fEr/vQzXfv3zSrcRhbFuhw5JuObKtqakhHA4zduxY9tqrN3/8\n452sXt2ftrbzgINQ6jKg1nb1avW5C6M9XYwQo/EeoYExuoF9bNL8NO/fY0g5A/gH8DHwIyzrUtpP\nWajBsk5FiGOBMcA7W2EfbrAn+v34r/1+/Bch7kKI6Sh1FJZ1BaWLdp1R6hKgE0L4cVszbm2dEeJO\nYKPH9U2kUjtw9dXX8Oc/X4NSqh0JGf/kjuJO5gcmRZFPxpFIJNcQUa33oRo3Eic6SnqhwxXSTM62\nra0tJ7B2jsQx1dlRo0Zz3XU3kUh0tQtkhSRaWaR8BqU+RJt39/C5q2oMi1S2omAmWg62L0LMQ6l5\ntjTrFMprc6GyMedmH+VkaW728CS6ZGDaoL3c353yOjea5ELrp2NZ76Cj73LyvCh6esWbdsv1ICKR\naRxzzF489tiYLbSthVpdC0m5QB/bI5FIRQRTDf+GankdOPfi9n3Il7RVq8CYrw655pprGDx4MP37\n93d9jXPOOYeXXnqJ9evX0717d6699louvPDCivZVDh2OdI3IOxaL5T5AQ7aWtXmMeSq1U5Ex5vlQ\nSPkKljUHLcQ/yOfOqqVseAc9qVcgZTfbQcurW1llY841CsnSymE12h5yJXAAQsSAVShltLjesFle\n54/8y8vz0vZj5iDlTljWaWx2M8vQ0PAse+6peOaZCey0U/nPs5ghDrCFE5db9YAhlu3BqcztXspJ\n2szsQNOJ5vd15ZP3b37zG37605+6avP+MtHh1AumC8UUOsLhMOFwmH/843b++tdbyWR6EIudjvsh\nhwLLOhatDZ2EnnrgJ0KsVNmQtKv6cxGiK0pFUaor/pooegKX2Z4N99rdZ15/bPsBF6ANdzag1FkU\nj1bX2yY6S7CsvYArgAaU0lpape7Dj5ZWqe+glQlPoT8Xt+TvXG/GCH3BZlmcBSwEXkCIBpQ6G8vK\n31sticRpLFkyh2OO6ceUKZPYd999Sz6fUz0Am/0OTEBQiXpgezJwcTNtw/k+GDh9TkwLvltXskLI\nz1N3lJxuh4t0E4kEzc3NuS9pY2Mjn332GQcc0Id43Mzw8osVwKNUFiF6ddVKoS0Y5yBlE5Z1Elp2\ntckmzZBtdOMnQokj5Vhgk532KN2dUxhmH/UFyLvF7iJ71241Pr3gc1SmpQXttvaw/RzD8V6KMOu/\nhVKHI8R0IIVS/dEa5dIQYiGNjbMZO/Zh+vVzP7+tlMmMOZo79bTFGhwSiUTFDRbV0NdWq9nD2ZLs\n1pWs0E0p//0dPnw4jz32mC8T822JDke6JlJIJpNks9nc0eKDDz7gpJMGs3Hj3qTTxwF+I4ONCDEa\nISK4G0teDOVctdI2Gb2ENuIewJaTcBNI+QRKrUepiyk98qcYqpG3TtjkvcEm71qknItlLUCIXdCt\nxuXSB0vRed5D8KalNaj0JrQYPb+tFk38A/BG3h8TDk/i73+/ifPOG+FqhR9nLz+evW5QDdKtVi7W\njQ+Em5uS2ZNp+Bg8eDAvvvhixY0bWxs1V1999dVf9ia8wORxs9ks2Ww2VxjYaaedGDHiHJ57bhSt\nrYvJZHrh3RMAtLfswQjxPkLMRakD2NKUxQ12RDcfzESIJWjyFRiyhceRci1KnYxSp1I4B1yLUgch\n5QZgKrqg5JV4JUrti5Sg1NPo4/o3yy0quA8h1qLUVOAVhEihvRv64a4FeEd0BD8DIT5C58693Bgb\n0J/LYoR4ycPnshEpn0Wpl4H9EaIBKT+x13speHYlk9mLWbPuJBpt4bjj+pUlPEMUXvKohlxrampy\nJjemGOcEzfGEAAAgAElEQVQkmkwmk9PRGmJyxk/5e8tkMrlo0S9MEbvSYpwptpUiRxPRmvehrq6O\nUCiU8yY2PKCUYvr06Zx88smk02mWLl3KypUrEUKw667lU4zTp09n8ODB3H777cTjcY499tiKXpsb\ndLhI13TXmAGR+YYW8XicESMuYPbsd4nFzsT7tAMDZ4Q4gvIFuWJoQ4iHgQxKHQnMQcoQ2iqx1NQD\nJ5StZHgR/4oCgEXovHVf4HgP60xUPhtNdDG045qfomM5l7FyyCLlFJT6oMznErMVCQtsRcJQdOrD\n7fpiaCMSGc+AAYfx4IP3lhwLUw1nr1LRZbmClbNwl0gkcoUrv6imEbplWRX7QBiJWn19PWvXrmXk\nyJGcddZZLFq0iC5dupRtB85ms+y7777MmDGDHj16cOSRR/L4449vtdHrBh2OdIGcJjAej9O5c+ct\n/t2yLK688s/ce+8YYrGz8K8kqIayIQu8DkxHH22/Bxzncz8fABPwpijIh8lb9wLOKvPYLLrgNBMp\n6+xOvAPYTN5+ZWnGZWwN/iwmle3b8BJbfi6b24y11O50tpx2UWq9G6QJh59hv/0amDjxSXbccceC\nj9rapFsMhY7lhVIUbseuG5joemtPn/BzHT8G5vPmzeOaa65h+vTpANx0000A/P73v69oX+XQIZsj\nzJfHOcPMCSklN954HX//+7WEw4+gmwp8PZOtbDgN3WU1y8PaLHrMzG1I+SowCCmPAl5F5zf9oDda\nUfAmQozFXzPGbsClCLEKKe9Hm5vnQ6Fbav+JEC8C/bGsX6EJF/u/PwJeQ+dpvSKEZZ2DPu7fi/fP\nR6DUd4HT2fy5GEXCP+z0zTAs6ycUHi9UaL0X1BGPn86iRfX07Xscy5Yt87jePfx0o5nJx6FQKNf2\nC9pM3aQ6yo1dL3XtSlFN/wZzHcuyPKdOVq1a1W58U8+ePVm1alXF+yqH7TvjXAJGnF0KF154Ad/+\n9rcYPnwE0Wh/lHJ7nM/HAUBndIT4BaWVDabtdSagUOpYLEsrGCwLhOiGUk+gCzlH+9hLD3S76xik\nvM9nUWlHlLoMIR5HiDtyXWCabJchxHNAFKWORkfmhb7MRpY2GiHu81F0lFjWQIToBjyGvyGe+6M/\nl9HAfISoRanjsCy3Con90a/7UbRncrnI3wlJKnUCa9a8wXHHDWD8+Mf5znf8zH/bNnBGuc5can6K\nopSMa3s+FLe0tJT1zs3HlyXD65CRLpQnXcuyiMViHHroobzwwlR22ul1amtfxF90CDpCvAwhViPl\nfWwZIW72GBDiBZQ6GqV+Tb5kbLNnw0z8ezbsgPZKaLDbXf0Y3YSxrJEIsTtC3AW8jZT/RojxKLUn\nSv0GnQYp9RXpyuZ26jvx006t1FFosnsOnYLxgjV2i7REE34XvHsDm8+1VORfHJZ1OC0tJ3PaaWcx\nfvz4dv/2ZY/IcYP8tl+nGU5dXV2ukSGZTOYUQ5Wa4WyNSLelpaVgqrEUevTowYoVK3J/XrFiBT17\n+q3duEeHJF3nB5b/gRuybW5uRilF586dOfTQQ5k/fy777LOJcPhptIWgH3S1yc7p2WChj+J3oD0G\nDkepK4DvUvzt7YV2xfoA/54NDVjW+QjRCyHuxp/RTS2W1RelBPCM/QP6DbqDy23BRZM3fNsm7898\n7GMftMXkOwjxKOXfj01I+RTwIJYVAX4D/Bwhamzyb/P4/ObmIX2u35t4/Bwuv/x3XH/9jbnGnWpg\naxBUOeTPMzMpCqMcKDXPzI3/wtZ4b/w0RhxxxBEsWbKE5cuXk0qleOKJJxgyZEhV9lYKHU4yBuRy\nTolEIjfC2RQcotEoNTU1NDU1UV9fn8vzRCIRzjhjCB988B9WrZpBOr03/ibr1qFUH4RYh1LTgAUI\nsdiOYM9BWxW6+XI3AX0Q4g2kfA2l+uA92yNRah/76Pc0+qjtdkT6BruK/4K952PQOVHwPsJHotR+\nSGnZ++gKdPd4jU7AgQgxHynftFNB+cQfR8oXUWoSWvXwI3RKoobNn8sadNS8J96aQSpd30Qm05u3\n3hrL++8vpH9/3URhCKaUnKsU/MjOCiGVShEKhSoicJN2CIVCBWVc5jGm4GYI2BkNCyGqIl8DrV6o\nra1FSsl///tf1q5dy4AB7pujpJTss88+nHfeedx5552cf/75nHGGn7l/3tAh1QtGm7hp0yYaGxtz\nErJQKFTUjd6yrJzfZmXKBoWeSPsCSrWij6On4l7+lY+U7dng36NAwxjdHE3prrxW9FifhbaUyjlD\n7VN0fnUvYJjPfbwHTEZH+v19rDdDPD9Hzz/bAcjYXXsvImVX2yOhmAZT2VKxV9CFsvyGk3KodH2S\nmpoH6dmzMzNnTqepqSnnUGbIJ9+DoVSTQzUUENXyb0gmtV2mG9VBfqdZPvmaiNnryHUnnFMjnn32\nWZYvX84f/vAH7y9sG6PDRromt5RMJqmtrc1FtqU+uHg8TjgcZsCAE+jevSuzZt1GJtMdd5IlU2R6\nEiEW2uL689Ck/TSafL0a0wDUoNQBSNmGzvHuim4k8Iqd0GmL5xBiFZosnO9FHClno9QEhMDWqPal\nfYNAF7SiYA5CLEI3dHiNRrqjI+VpwBq8k1YtSh2IlBvRDSFZYAJSrkapU1FqIKUjUIFSu6PJerL9\nd178K8z6Lj7Wr7ZvoJtobe3EhAkPM3jwQLp3756LCk1kBltGhU5iNjB/rrTLKp1OVyzRymazuRxw\nORgSNdI0Z1RsIl1zzVJRcanfcyqVyuWdFyxYQH19PUceeWRFr3FboENGum1tbbS16bxbJBJx/WXa\nsGEDXbt2zX2Qs2fPZtiwc4hGj0OpYg0HCvgYKV9AqY32sfdE2h99q+Hq5fQo8KtsAN0uOxohGmxF\ngbGMnGtHiadSviEgjpSPAa12A4OfXvsN9j46YVkX4D118jG6bTeDzvn+0McePkFH7vsCQytYX27c\nfKtt+LPIfq7TgFpqaubT1LSASZPGcfjhxZUZpZoczHe1ktlm1fJMSCQSSCkr7kjLn4/mxn+hUFTs\ntJm855576NmzJ+ecc05Fe9sW6JCkaxz8o9Eo9fX1rr8EGzdupEuXLu3SDx9++CEnnngKGzb0sj0b\nnJHdcrRV4Xq0gP4kipPHRrQ3QBg9VtxvDs54FByM7j7zgwRSPo5lrUN3YDWhLSK9uJ5lkPJplFqK\nnmPmdf4aQAwhHkOIqC1tc/OjX4uUz2FZq9Dvwe7otInfhpD1NvnvgGX9CO+t4aXWp+1OwblIuTOW\nNZQtT02LCYen8eCDdzN4cCEPjuKwLCsXARpduiGiQjaRxci4Wp4J1Rq/3tbW1q6tuRjKddwZ34UF\nCxYwe/Zs+vXrx8CB3mbsfRnokKRrrB1N0cxtO+GmTZvo1KnTFsej1atXM3jwUJYts0gkBqOPiTOw\nrLVoje5A3JFoHDOrTJOMNwnLZqxF63C/iWWdh1cDcHgXeAF9NM8CI/HXxlxpfhM0eU9GqWUoNZLi\nhb4WO1p8H50mOZ3NqQ89+di/y1gMIR5FiBh6xJHXjqqovT5hR/5hdO56ut3SPZjStpWrCIfH88c/\n/pZf/vLnniLV/NHpXlp/DRlXi3TNuPNqkG4l+WXTcZdIJLAsizPOOIP333+fSCTCEUccQZ8+fbj6\n6qs9tRmPGzeOq6++msWLF/P6669z2GFepYfu0SFJ10QAxsjcbZGhubmZxsbGXH7MTJxIp7WE7Mc/\n/hlTpz6HZWXQ3V+n4F3hkLUNVhZX6NnQip5GkcXdNAoFfGg3NqRR6ljgaKR8Fct6Ce101sfnXt4B\nnkE3Sri3NnTuTRfvXmVL8k4g5ctY1ny0Y9kZFM6xl7KYdIMMUk5EqY/RJvNeTX/SSDkRy/oYaEKI\nKEp9D636cINNRCJPMmzYyfzjH39znaN12zJbqvXXaNqNmsdP0Qqqaw9ZaVEv/0by85//nBEjRhCP\nx3n//ff5/e9/7+n6ixcvRkrJZZddxt///vetSrodtiMN3HWlFXq8k2wbGhpyX4Ann3yUH//4Up56\najqJxLH4k5TVYFlD7E6rMfgnu04odTFCjEeIO8soGz62ybYZbarTHxMNWtZ30SQ2Ed1N58croQ+6\nsPSYfQ2v+VGBZfVHFwjNPvqifYdn2df+EUqVukHphhAhxiLlHfaNyMtJohbLGmZLzv5tv4bSpuTt\nEcO4xMFGlDoTfWN2ix2IxUYyfvxEPv54GE888UjFOVYnTOuvE07T8HQ6nSvWlYqKS6Ga8Vm156O1\ntrZy4IEHsuuuu3Laaad5vt5+++UPSt166JDNEQZeSRf03doMrtxhhx0Ih8O5L4CUkgcffIB//vNG\n27PhI787syPN09ERotfefoMQlnU2QhwE3If26HViFVI+BIxFqd1Q6rdoUs3/WPenMq8E0BX8SxFi\nOVI+iL8pyn3Qio+XgJsR4lVgCJb1M9ydCHRDCPhtCBFY1vfR6aLxaB+MckgixCzgTpRqA/4HfQKa\n4HK9Ew3EYsN57bVWvve9E/jsMz+NJO7hnOAgpWw38ddodk23mXPIZKlus2pPJa4EHXFqBHTQSNe8\n2W5J1zm4sq6ubotiWj5Gjjyf3XbrybBh5xCL9UOPF/cD4w3wCEJ8YecjvUJiWSehPRvGootJe9gF\nvo+xrP2AEZSPyqsxwqcbSv0EeBQp77SjTS95wuUIMQ0IoZREqc5sOYq9HMxJ4hvok4Qfl7BD0NH1\nWPQYoEKRkTHQeR4hIih1PkqZAZmHOtZ/AXjpYqohmRzEJ5+8St++x/HMMxM46KDi+68WSeWPXy8U\nFTtTFPlRsSlcmaJeJfnYrdFhZ8YilcIPfvAD1qxZs8Xf33DDDZx66qkV78ktOmROt5ynroGzT7y+\nvh7LsqitrXWVYLcsizfeeIOzzjqXDRv2JJUq50NQCkbZ0OCT7AzewPg1CLEXejyO1+KIc4SP32Jf\nBiknodRHLvOjn9uKhE/R0e5AIGErG/wWt6Byi8nPgTH2DW0kmz/fTxDiWSCGUt+nuBHPOnv9TrbC\nw+v34z0ikRmMGfMAJ554YsFHVGOKbyUNFk4iTqVSOfL1Mt/NiWp58uYXGAcOHMjcuXMrJvTjjz9+\nq+d0O2R6oVyka+RkLS0tCCHo0qVLTqLi9h4jhKBXr14sWDCP3r2jhMOTqdyzIWT39rd4XN+GlNPQ\nDQc9gTBCWOgqulcYr4Q97CO6Hyu7WizrTOBI4EH0KJxCaEXKycB9WFYN8Gt0jrsGaLTz1LuiTXvW\n+tiH02JynI/1O6Ed2xJI+S+0auVx4FGU2gPtQ1HK+aw78BO0YfpdQMLj8x9ILDaU88+/hPvuu9/H\n/t2hkujSaRMJ5Gog4XA4Fy178WDYGiZA1Y4bt3Yc2iEjXSDXxRKNRunSRbexmoqmiWwbGhrapRHi\n8ThKKVd3WaUUGzdupGvXriSTSUaOvJgZM94gFhuGv2YB8K5sSCDEKyj1H9qPCHdOX7gYb2NnDKo1\nen4hOvo+DjCjTpL2vufZsrczKF4EVOjhlvPRDQh+Chpmrl2jrZH2mjVrA/6FvqnuDJyLt8i70lbu\nDYTDTzJy5FBuvvmGdt/Zamhj86NCvygn9TKFu3wVhTMqBh0UOWspflCpgXk+Jk6cyC9/+Uu++OIL\nunTpwqGHHsq0adN8X68UOjTpZjIZWlpa6NKlS0myNUgkEu2GWZaD6WBTShGLxbjmmr/wwAOPEo8P\nx7uhi4GyCWkOxZUNzukHXWwdaH4ragopx6PUZxV6NlR6RAdYDjyOVgPshp400anIvovhbWAKWnnx\nXR97MBrpFg9ddMZofgZSdrbVE4vs3Lu3cfFg2V2Lb/pcHyMSmcAxx+zFI488lPuOVoN0qzEex6/U\nKz9XbP4LbJGe8JIrdqZdkskkw4cPZ9YsvwXrbYsO6b0A5D48479gnMVKOSnlD7MsBxMZx2Ix6urq\nGDjwZHr2/CYzZvzN9mzw45Eg0AMmu6F7+52eDVngTeAxpFxnew0MQvsI5KNang3d7eefDqxm83QI\nL+iCzlTNQ7fvnoIetumlmrwzmrCnoA3FvUa8dZjhmdolbA9KezQssxsePgJORqnBwL4IEUHfhOrx\nprEWKLUXQjSgP9cw3iYv15FO78/q1W8zadIoTjppAOFwuF0Hmt/IMJvVSpMvw78hf8CkKcyFw+Gy\nzmT513HC6QOxYcMG5syZw9lnn13R69tW6LCRbnNzc44Uu3Tp4sqEo1zhzcCQeSKRIBQKbdGyOGfO\nHM4884e0tX2vAmUDGM8GIfZEqd4I8bzdQXQ8ukLuDps9G36Abpf1A7+j51fYioSNtkZ4CVIm7WjT\nT7HEFLd2tItbXtt2FXo8/MtoVUL+TeRzpJxmtxkfAZzAlqWNSluxl6BzzIeii4ZeoKitnUOXLh8w\natT9HHHEEfpvHSqC/Bln5VCNmWTGp7pSbXGpvTg9GJwpivzXXlNTQyqVynXHLVmyhNtvv53Ro0dX\ntLdthQ5LutFoFCllzq7RjTdnqWGWoD90J9mm02mampoKRghLlizhxBNPYf363Uml+uOvJqmABejo\nrtKhlYYoDgEG+byGs43ZjPAphi9ysjU40H7OWkznllKf2KTptfMLdNvtIwiRcrTdesW7aPc300UX\nQ8rZWNZbaGOiMyidC9et2ELsbOffvX6+a+z1u6LUuR7WZ+2mkecJhUI8+uhoTjjhhHb2kE5ScjNs\nshoKiGq1EvvZS7FcMcD999/PypUrWbduHTfffDN77bWX54nHv/vd73j22WcJhUL06tWLhx56KFcn\n2hrosKTr9NQt5KdQbI2z8GbgJNu6urrc0aelpSU3tqQQvvjiCwYPPoMPP0wSjw/GWwfbJ0j5HEpt\nQKlDEOIzhKiOZ4N/ogAtB3sGpf6LUuex5RG5zSavhQixu922mx/ROotjXju/DNJIOQGlPkWpC/A3\n0dn4A3cF1iNlN9uUxu21Kh0X32KvF/b6ct+P5QjxjH2zGQiEaWiYxM03/4ULL7xgi0eX8qx1ErHR\n1lYS6VZL6lWNGwDooKuuro65c+cyZcoUXn75ZZLJJOvWrWPixIn84AfuzZFeeOEFTjjhBKSUuUnA\nZjLw1kCHzemaL1cymaSurs5VpGse7zQPSSaTtLW1IYSgqampXREulUrlOnoKIRKJcP75I3jnnVdY\nseI50ulelP9hrrYjwVdQak+05Gkf9BSJz9G51d3xR7xmGsXrSPk62obSzzSK/ZBS0X4KRAopX0ap\ncQihbFL/DoU1xwKlTE51sr2H3Qo8rhRqUGp/pEyg1LPonK+XYqFC34SWoccqdUKP5PFyPK4HDkaI\njxBiJkr1xlvUbdYvRYgXS6xvth3dXgIOtG922uc5k9mLl166m5aWjRx//HFbNDkU86w1Ea+TjJ0y\nLq+TLEwxrFKzm0wmk9tvpdepq6ujV69exGIxevfuzdixY7n88svZfffdPe2zV69eufegtbWV+fPn\nM3SoHytQd+jwpGtyO24/xEQiQUNDQ671USlFY2NjQcVDOp0mf3pqPmpraxk27AxaW9fx9tujyGR2\np3DDwnpbLjYTpb6JHqV+AJujUYlS+yKlsMmuC/6O5uaH/jF6+OW+eM+tCpT6NppwJ6Nzz88hxAaU\nOhOlTsBdU4azOLYB78UxgVJ7IkSjvY863JH3GqQch24mOQo4EyEWI+UrKHUQ3k4kNSh1IEK0oF9H\nD9yZ3hvU2gW+ZrQp+25sLjCmEeIVdEtyGD0nLt98vpFMZn/efXcCb701j1NOGVi2IOYk4tra2lxT\nkDH5NwSaTqcLtvwWanIw5F0p6abT6aqM6nEamM+fP59OnTpx2GGH0dDQUNEe//d//5ehQ4eW7BKs\nFB02vWDsHVtbW1176lqWxaZNm3LHrkgkUvIL7MU6Mh6P8+ijj/Hb3/6BROI0NkuGmu3j+Ltoa8LT\nKT97y4ze+Q660OMHFlI+j1JvodQP0XlML1DAf9HeEQngG+hGAD+otDgG2gdjLFpPXKxlsw0pZ2FZ\n76K9g09nM8E6LSb9uIyBNoOfgb9x8SDEf9AGPwPRN8JnkbIWyxrCZgVLMaRpaHiGffcNMWnSOLp1\ncx/1l5KdlXInc0q5zCDKStML1XAqg/aa4X/+85/st99+nHnmmUUf76YF+Prrr+fNN9/kqaeeqmhv\n5dDhSbetrS03ProYzBcmFothWVZOWlYObq0jTZOGUoqFCxdy1lnnEo0ehW61fQNtWXga3o7HK4FH\n7bzpWfhtHtSzxZ5HT7twO8pkJVJOR6kvUOpodMri4QqaD6A6xbFibbdpm9DmIGV3LGsYhaNRZd8A\n56FzzX4aMf6LjkwPQ5OvV7wKzEBHs8fhzSrTIhSaTbduy5kyZRJ77bWXq1Veia6QZ6+RnXmZ71YI\nzrlmfpGvGb7uuus48cQTOeEEvwEKjBo1ivvvv5+ZM2dW3ERSDh2yDRjatwLna/oMTPqhpaWlXeXV\n7ZevnKGOac4wSf3a2lr69+/PvHlzaGxcgGUtBC5AD1j02rygDWr0Ufl+/LYgaxnXD9Gm5lPLPHoD\nUj4BjMGyuqHbYI9HG91UMqIcdNvvRUB3u+33cx/XyG+7jaObO25HiDeBs20fh2LHfyPHOwV4CnjF\nxx68jos3SCLl88CL6Jx9HUJ85mE9gCSV+j5r1x7CcccNYN68eV427homyjXBTDgcJhQK5f7OuJMl\nEol2rb8mVbGt4jjn+PVK1AbTp0/nlltuYfLkyVudcKEDR7qmMFCotVcpRSaTIRaLAeQUCEIIT2qH\neDyOZVlbyGSy2SyxWIxMJkM4HKa+vp50Ot1OA7x+/XpOPXUoH3wQIx4/FX/evGBG78BGHx6yTpRS\nNkTREyLeRIhv2YqEQgUn5wif8yg+kbcULPSEiAXoicNeRggZpBBiDEqtRacqvof3Lrbl6C663ug0\nhFc0o02Mam3FSbHPV6FN4KfbXXpD0bnuSk3ZlxIOP8Odd97KWWedVfKRsVgsNxTTL4rpa/Oj4kJS\nNqchTiwWKzqx2y3y5WuXXXYZ1157revIPx977703qVSKHXfUzUXHHHMMd911l+/9lUOHJV0Txea3\n9hoitiwrd4fO992MRCKuku2JRIJMJpMThOebnzc0NOSuXUgDnEwmueCCS3juudeJxc6kfC63GLJI\nOQWlPqDyaRROCZR0HMud3g6lUK75wB2EeBOlpqFz1t/xsLLF1gcvRke+X6CHgXptu8VeO7qCXHPS\nPhl8YRNnfgfeZwjxDNpc/gS2zAMnbMe3jT6lgmsJh5/kf/7nMv7wh/9X9JhfjSO9lwaLUk0OQK7w\n7XfQpomyzW/+7LPPZvTo0XzjG9/w/sK+BHR40k0mkzkSNDnbQmRr0NLSQkNDg6ucrrl2JBIp6+1Q\nSgN8zTXXcfvt9xKPn4U/RQJosqvG6J0UUo7Dslba14xgWafgnbRM88Gx+G/oMMWxPujXVAop+/W/\nYjccnAl0pvIJypXmmrNIORWlFtlNEN9Cnxxm2gW9/dF+u8UIr9IbaguRyHgGDerLPffcWfB7XQ3S\nTSaTABVpfU0uNhQKFTTEKTTxtxDyNcODBw9mxowZFSsrthU6POnG43ESiQRCCBoaGnKymGJobW0l\nFAq5+vIkk8lc+iIUCpU8FmWzWVpbW4u61z/++OP87Ge/slMN/o5BGpUoGxSwFCGmoVQM7fVwDt6V\nDQam+WAvdKrAD8p50ppBm88hZdiu9Oeb6FTatltpI4ZCTwV+EZ2uWGyfHIoV9Aqtf9XW6fpxfEsR\nDk/mgAO6MGHC2C2+g/kjz/2gGk0NhUxz8g1x3AzazPcHrpaX7rZChybdDRs2kE6nMZ65bt70tra2\nskbmzg41gM6dO5eNEsqRLsDLL7/MGWcMJxr9LpblXXK0GcazYQ8PyobPbEXCOpQ6Avh+rt3Um7Ih\nHxtsz4ZOWNYF+FM2tNlpj/whnJ+izcSjKNW/zB4r7caz7C661/CXa/4YrWpIoG9iIzyuh8oc3yxC\noRl885trmDp1Mt/+9uYbUzVItxpuZ4Z03fg3FJp4bFlWu9dg6ioXXnhhQLrbCq2trbnkvNvqpfFs\nKCQDMx1qRmJTV1dHIpFwdW3LsmhubqZr18KRjcn5fvTRRwwd+kM+/3w30ulC88zcYpNNduWmUWxE\nj5P/L1oiNSTvsdXwbIihp0C0ebBVzIfTk3YoUr6OZS1DR32DcJdvrbRtF4R4C6WmoknPzaTfTeip\nGMvQBjr7U5nUbwXwKH5PD1K+RlPTfMaPf5wjjjgCKSWxWKzi6bvVIN1K/RtMnth01k2bNo0rrriC\nTCZD3759Ofjggxk0aBD9+/d3fc0//elPPP300wgh6NatG6NGjWK33bx2T3pDhyZdI1EpF2E6YRQN\n+WoHk6qoqanJueK7iV6d19i4cWOuAmqQyWSIx+M54+ZQKGR7Ngzlv/+NE48PYesoG2K2ImEBQuyG\nUkMpXsirlmeDaT44H9jFxzUSwL3ott0d0S3SXn+gOmet1GqUuhhv3WMGHwFPoI18ijVipNEm8K8g\nRE+UGubYq9sbYjFUasr+IeHwFO6663ZOPvnkkkd1t6hGU0O1/BucRb1MJsPAgQO58sorWbhwIXvu\nuSfnnnuu62u1trbmFEd33HEHCxcu5IEHHqhof+XQYduAYXMrcDwedz3/yegIQ6FQrmmira0Ny7KI\nRCJbHMMSiYSrawshiMfjOUWDkZXF43Hq6+tpbGyktrY212xx2mmD+eijhXzyyVTS6b3wE5XpFtM+\nCLEePcpnd/Qon/8ATyBE0i7uHFvm+tXybOiNlFm7jbkb7nOjFpt9hMNou8wl9r68FpZ0266UrWjP\nhp54J96u6PbpWQixBF3oMwSl0OOJHmbzsNHjaH/jbAAOQYgPEGIOSh2At883jG7lfg8hXkapA/F2\nY/4GmUwjkyffRCwWp1+/7+VqGCZSNAGL07u2VPEqk8lU3L5bTf8GoyVua2vj+eef5y9/+Qv9+vXz\n3B5V/yQAACAASURBVL7rrO3MmjWLmpoaBgwYUNH+yuErQbrGT8HNndsYJgshiEajZDKZHNkWytt6\nIXTjUhaPx3PG5506dcpphA2Mjvjcc88mnW5lwYIHyGS+hb9juUSpfZASlJoMzEPKz1HqNJQ6ycM1\n881d9sN7JV+g1O5o34jJ9t+VmxzxEdpMfClwIkqZltge6BbkFnRDgtd97IUQ9fY+InjXFDeib0Rv\nIOVrKNUHnaoxng597fRBsVOQuSGuQ5sY7YE3SVidvX4N2pS9F+4+yxRSzrKLenuzaNE7LF++lMGD\nB+Ui1UKmOPkm4vmmOOl0mtra2or1tZZlVUy6TgPzdevWMW/evLJa5VK48sorufDCC3n//fcZNWrU\nVm+Q6NDpBTMmeuPGja49dZ1qB6PXLTXzycxJK0foSik2bdoEUFbpkJ+KGDt2LD/96f/Y9pB+mgWW\nORQJKbSywe/dulLPBoNP0MqGfYBCPfFfIOV09ITgw9EG7Pnvl0576Dlr5xX4dzcwbbt+DMVhs8Tu\nU/SUj73RLcRuI0+FlC9jWXPxp0xQdproFXQTx/5FHwcfAs/YKo8z0SmeBOHwRA47bFeefPKRkgb+\npZQEULm+tpKpxE4488uLFi3i3//+N/fdd1/Rx7sdvX7TTTfx4Ycf8tBDD1W0v3Lo0KTrxVPX5FZN\nlOtW7VCO0J3FN6VULrIthUJk/uqrr3L66cNoa+uLZR1Rdl8aa2ziWo0mrgHokTuPfEmeDflYj84V\nd0LPcatBG6XPtrvfdrdzzaV+hNUYwunXUNzCdJNpkk2gW6r9NGIYZUJfdGu1V7yDjvz7oTvwnNho\nO9itQqlC3XlZ6uufo0ePFqZMmUiPHu7HCBkiNic3Q8qFpjmUI+JqDch05pdfffVVZsyYwS233FLR\nNQE+/fRTBg0axHvvvVfxtUqhw3ovOFHKIyGbzdLW1kZrayt1dXU0NTWVzF25vbYh2+bmZtLpdI70\n3Vy30GP69u3LvHlz2XXXRYRCL1C6J38TUj4FPIhlRYDfoMlRoo/l1fJsGI47z4Zi6GbvBYS4A232\n8g90FHyJXbQrF/V0QqlLgK5oz4b1PvaxM9qzoRkp70GfBsphFULchxAvoN/bKxDiRHQzx2s+9nAA\nMBKYj/Z98Io+wHnAy8AE++8ySPkScBdKCZT6NYXboWtIJgfyySffom/f43jnnXdcP6tpXBBCUFdX\nlxvB3tjYmGu4sCwrZ5UajUZzjUT5lpGqSuPXnb/H5uZm10X0QliyZEnu/0+ePJlDD3U/JssvOnSk\na5zGCk14MK2CqVSqXcuuF0UC6A/VFMFgs2NZPB4HaNdSXG7ShBP5EbTJTa9Zs4Zzz72AxYujBZQN\ncbsF93WE6IH2SCgmZ6u0xdRgDbpotIvHKNGJxWg1gERHeceWfnhBVCPtkUTKJ4F1tqqgUIGtzZbY\nLUIT5am0l6tVKrHbAIy2fRguwHvB8gtgDDrijyNlDXrEvdupy4uIRJ5n9OgHOOmkk1w/a7nx61A6\nPVFTU5Mj3VAo5Cs9YeDssHviiSdIJBL8/Oc/93WtYcOG8eGHH1JTU0OvXr24++676d7d76Rvd/hK\nkK7TU9doAYu17JbT0+bD6dXg9HUolA/24u1rUiJSynba4HA4TDab5eKLL2PKlFeIxYYBEfu4/yJS\ndrU9EtwUhqrl2WDGzuBR/7rObpFdg1JH2aeGeej5ZL197aTytIdlN4m8g1LnsJmssva1Z9ndZKWK\nZEZi5/dGZHTNUfuG6KWA2oKUT2NZy+0/X4F3k/oVhMNPce21V3HZZZe6WuGGdAvB6cOQSqXa/Z3f\nEezOZo/77ruPnXfemREj/DSjfDno0OoFp1haCEEqlcoZj5cax+5FkZBKpZBSEo/Hc6N+nPIvJ9xM\nmjAwxbxoNJrz+DU3iJqaGs444zQymTbmz7+XbPZVpFyNHsk+EPfGOUbZIG1lQ2f0Udsr6tESqI8Q\nYhblx9ZE0fPfpqGnZFyILkDtwWZlg8B9dOZED3SB6Bm0ntdr4VGg1N4IUWvvowmIo/0XPkWpIbbq\no1TesVKJXZ29fjXwPO6UCVmEeA2d3mgELkDKTej0zz540zN3IZPZh1deuZ/Vq1cyYMD3Sxahzemu\n2O+pFJwjhSzLyungneoJEzwZ9UR+Ac9cxyCVSuX28uKLL7LHHnuw775+5vB9OejQpAvt0whSSpqa\nmsr6L7iVmJlrZzIZQqFQbjJwsXVmD+VI19hAGtvI/BHvoL9k/fp9D6VSvPrqXLLZIfgb8ChQajf0\n5IfJ6Hymn6O5m7E1GYSYh9YIW2jnriNpT0jfRJPtFPRR2U/E2w1NtjPQY4kOpP2IGzfoiSbWqWhv\nh0PtqNWttthI7JZRev5ZMRhdc8aFrnmFfdJYbqeUBgAN9vokSj2Dfl+9eDaHSaf3Z/HiKcyb9yJD\nhpxSMi2WTqcrMruB9vPR8kcKmQ5QZxrPjBQyBThDxEbrK4Rg2rRpHHbYYe3anrd3dGjSTafTbNy4\nESBXJCsnGxNCkEgkShKzSVE4J0eEw+GyJF0u0s1ms0Sj0Zx5SCQSKZuK6Nu3L0cddSRTpvyddFqi\nlPvKc3vshI6onkOIlWw5i8sNTJQYQhN4GE2+pmHgEaT8DKVOR6kTKX7s3QHYHyFmI+UHtgbW6xG9\nCTgIIV5DygUeo800Us5Fqdn2/pMIUYd38s6/EfWkeEqiEIyuuTPasS0/+o/Z6aGZwP7oTr9v5K3f\nEyGa0J9HCG8ppDrS6f1ZvfptJk0axZAhgwv6IhhdeaUTfMvNRzNRcSEiNmuMcqK5uZmBAwfS3Nyc\nO4F27drV143h73//O8ceeyy/+MUvKpazuUGHzukacjTSMbc93cUkZk6jG6O1Na3BbmQuxcb7OPPM\npqjX1tbmKv9rCn8bNmzgpJMGs3btzqRSA6jMs6ES82wDo3/dByE2AetRqi9byplKIWY3RsTsiQ9+\n2kNTdnFsbYnimIG5OUxByhCWdTraitFpSH4Jft6TSuenbTZV3w/tU/w22lmtG5Y1nPJk7sUmMx+K\nurq57LDDYp59diK9e7c/fVTqmWBQjVZis5dQKMSCBQu47bbb2HHHHVm6dCkbNmxop0ZwgxUrVvDj\nH/+YDz/8kDfeeGOLNv6tgQ5Nuvmeum7ci6CwIiG/mGUI2e2cNGCLKRaWZZFIJEgmk1sU9dzMdjPX\nMIW/jRs3MmTIMN57b5OtbPB73HMqGy6iuAKiFFoRQtsh6gjr1/jzkMgg5SSU+thOR/jxG7bsHPJC\nW9lQaMjj57aWdW0RLas2JNdz4S7G33tibkSHA+6VAZvxBfAQugmjBt3M4aWZopxNZmkI8Q6RyCwe\nf3xMO9OYankmVMPXN/8GMHToUCZMmECnTp18SdLOOuss/vSnP3HaaadtM9L9yut0Sz3eqbVNpVJ0\n6tSJpqamdl8KL9d2XjeRSNDc3IxlWXTu3Llg3tbrNRsaGhg//jEGDTqQSOQRdIusHzRgWecDvRDi\nbrRVpFukbW3oPxEiC1yIEE22JjjpYy+1dvfUEcCD6EjUKySWNRAtR3sMWOD4twRSTgPuw7IiKHUF\nhbWs9VjWCITY235PPvWxDzM/bSFCPIa3+WcJpHwdnXOvR8oGvDdh5M+QS3harVQfotHTGT78fB56\naJSn39S2Qj6xxuPx3M3AK+FOnjyZnj170qeP34EA/tChI13YPN0hf1ROKbS0tFBbW0s6rRsHSo3v\nyR8HVAomqjW6RONWVghux7ubsfFGnG6kMjfeeDO33HIH8fgw/Dl6gW4xnYdlzUabfx9c8rHwHnrW\nVz2WdSqbI8qk7ey1Fj180o+zF8BC4Fm0gYwfLS+0b/vdGX1E72wTu5soWqFHGL2I1uEe4mMPbuen\n6efT7+tUW7urpWpSTkSpT9Dj4r3qRp02mRfifSjqF4TDT3DBBcO56qo/5jS29fX1OVmXH41tNXx9\nvRqYF2sBvv7667nhhht4/vnn6dy5M3vssQcLFizwNNreLzo86RqZSaFROYVgdL0AjY2NJb0XANep\nC+cY9qamprINEm7SFsZuMpvNFmwvHjduHJde+nPi8VPwbgrjxAfoLqejKezZsAIhpgAtKHUchcfi\nWLav7EJ0q2yhI74bLGdzbvMMn9d4Ay0pq0XfTPx0GZV7T8rBma4oND8NtP/E0yj1OUp9n/a6Y6ep\n+pl4/3wt9Cy5N9Gfh1fFSpRweDy9e3dn0qRx1NXVIaXMmc3ktwC7IWK/Wl8nnK3ESikGDRrky8D8\nvffe44QTTshFyStXrqRHjx689tprQXNEObj11HVO8DVmGW7ytCZnXMwoxEwdNu5J2WzWVcRdyNe3\n0DUjkQhtbW3ssMMOBSOE+fPnc+qpQ2lrOxrLOqrs8xbHKrb0bNiElM9jWUvRlf1TKGcmLsRrKPUC\nOqfp1kMiH7rrSjeCeBkY2WYTzftoKdpntj70Evzlmwu9J16QRcppKPUem+engY5E52JZ/0GnEM6k\nWPHOu6l6/nq/zSTLgElIqdh//73/f3vnHSZFlbXxX9XE7mFmMCESBEQkCUgWVgF1kSBIEIkq0bTf\nriLomkVlFRVXYBEERV3EtKZVBAmCSBAGGJIsCigwSM5MDt1d9f1RdWtqmg5V1T0gY7/P46PC9K3b\nTXPuuee853359NMPqV69eplhB7PxZDjN3kBWPU4QKOiuWrXK8XoCderUiTXSrMLj8eD1eoNOmQVi\nDhQWFlpujgUrXZidgYUNuxDVsRJ0A1nHK4pCQUFBmTUlSQorurNnzx5uvrkHR45UoaQkkFqXVQhm\nQyKqeiWqulYfN7brZBypshdohpEfIElFetAM1cTx6cF+GbJcRfcmq4y1sd9wiFSQXJQrvkM7tFxo\nSmBJaHbsViiAVkTVQ+EX4FOs/XnkI8sLUJRf0IJ8BxISlnPRRbuZP/9L6tULPIwSaPxX2OuIf0pK\nSiIOumYBc4/HQ58+fVi+fLnj9QSuuOIKMjMzY0HXCsTJ56/aFYo5ECjgBYO/y6//umb+bjBH4EAw\n14qFEHugvUJwipsZp0+fpkePvmzbdprCwl44YzYoaGIuC9Gu5rfhdFzXubKXGV69tpkVgtmwC0n6\nGklS0FyN/QdIgo392oFw6DgdgY7FWjRdXAnohD1qHcAxNLt4Z8yE8H8eKhpNbaE+Bj0Q85ScJG2k\nUqVVfPrph7Rv397SE/0zYq/Xq69lz/3XDLNB5vHjx3nwwQeZO3eupf38XlBh2AtQOtNdWFhIdnY2\nqqqSnp5+BnPALtsh1LrmL4pdpoMI4KdPn46Y5VC5cmXmzfuCW25pqjMbsm2ukIUkTUeSVgE9keWm\nSNJXaJ5dTuCv7OWU2dAPSWoJvENZZsMpZPlD4BNU9WoUZTSBJ/ZkFKU7WqB7H82hwi6S9TLHFQ7Y\nHl4kaQWwBKgJJCBJB7DHbABtuMU5MyG00toJZPkdNEW1WwL63KlqC3Jzb6FPnwH85z//sfREMeiQ\nkJBgjO2mpKQYDWYxXlxQUGC4rIgeiv8YcCDk5ORY9kb8PeG8nkiD0oAonHvz8/ORJCnkOLDP58Pn\n81masBGydcXFWtAIN2Zsxd5HUNXEVcmsuxAIxcXFRiMjGMTseteuNxMfr7B+/Vu6G0W4ssBJPZtc\niTaldidQHVW9CkmS0Sad0nGu2RDJqCxoU1d10N6H5kYhSbvRmlypwAi0YBsuS6qBlil/DRRin44l\no6r19T/3uWjli3BsiN36+O5BNFufG4CrkaTVyPIWfYrODmc1Ee3zzAKWor1vO9xZ8efxq/7nUV/X\njvgCTSNjBKGFlC7E663LkiX/oqSkgOuvv85yqUBkuyL4hps6M1sKmQOw6MnExcWRlZXFrl276N7d\nqaHquUGFKC8UFhYaFCzz0EMwhGuOAWVOYUVRLImTW1EwMzfJJEkiLS0t7Bc3lGSkuWYtvrgpKSl8\n/vnnjBr1FwoLuxM4AyxClpejGVfW0uu2gQJipF18KDu8MBDNy80uVDRxmAy0uuqdaJmjXRxCk6qs\nqQ9SOLnshbNKz0UTl/8FaKP/jPk5kcpumpkJ/bF/gChI0oeo6l60QNyf0iafFeTidn9G165tefPN\n6ZaSFycDFsHqxJIk8d5773H48GFOnTrFlClTLNNFfw8478sLYmxXlmXcbrelEcNwZQDBhigoKDCy\nVjvrBlrbLKaelJRklCacNhXM5Q7hhGEOyrfddhuLFn1Nevq3yLJZdFuTMIRJaA2akajqHQTPQBsC\nw4ANSNLH2L8WQ9nhhQ8oO7xgBUeR5XeRpM1ogw1JSNISwOdgL5ehCasfR5ZnYk3Q3B+N0ZyK16E1\nqAR8SNJaYCqqmgs8gHZQ+f81E8MpTsoVoH2eXZCkztgXVS/UJ/P2ogXaYjSNXztIpaBgCAsW/ESX\nLj0N/ZNQcDItJkmS4emWnJxs/J1JSEigSpUq7N27l2XLllGtWjXq1q3Ltm3bLK/97LPPUqNGDZo3\nb07z5s1ZuHChrb1FgvM+0/V6vXi9XstaBuI1gRpegRgJkiRx8uRJSz5pwBk/a268mcXU7TTdzDq9\nZrv4+Pj4MiPLgQY5srKydGbDJRQXX4EkfYMkeVGUm7E3YlrKbNCys0g1G1qg6RSEQqm1j6Yq1kd/\nbj6aFGOxrtngRKTECo82HMxW6Z2RpHn6nm5B4xmHg4okrUZVl+PMPw2si6qrwE/APGQ5HUUZgMbm\n2I7mZNEGzafODhSSkpZSpcoh5s//ktq1awf9yWj5o5lHid977z0SEhIYOXIkv/zyC7Vq1bK8/nPP\nPUdqaipjxoyJaD9OcN5nuiJbdDKuK6AoCvn5+eTk5BAXF0flypXLSD86HQX2b7xZUSoLtabH4yEn\nJ4eioiJSUlIsjSzXrl2bdetWUadOPlrT6SoU5SHs/wWvjKreAySjWe/YbdQJXIVWO/wRSXqfwJmz\nsGQX1j73oF2BRaBP0QPlpWgWPscc7EOM/V6FJM3A2djvBajqXSjKEWAOqnqZ/tlaCbig1av/hCZw\nMxf4zsEergRGAtuQpDkE/jxPI8vvI0lfAzegKPdRSp9rgDa6vBFJ+ijI64NBpri4MwcONOT6629k\n/fr1QX8ymlY9Yp3c3FwuuOAC4uLiaNCgge2Afq7yzQoRdMW/IwmMQNDAaJftIPQcvF4vaWlppKSk\nBNTLtbqmaBTm5+eTnJxMWlqaLRvrypUrs379DwwePAi3+wCa+LcTaNdiSboygkAFoTvp+5CkGUjS\nUqC7HiAC6cwmoCi3I0ktgFloGbRdxOlZaUdgDhplyioUYBMwE1mugiQ1QLORP3PkNDyEf5p/ucIq\nLkUrmeT4MUUUNH3jaagqqOpotIzWH9X01x/Dia+eorQmO/tmevToy5dffhnwZ8oj6J4+fToi9sLU\nqVNp1qwZI0eONJy8zwbO+/KCcI6wowYWSM8gFAfWX5UsGDweD7m5uUYzK1RgtNJ0E00ywV4QpprB\nEK5BWFJSwksvvcJrr02jqOh2rFn+BIKKJK3R9Ql6EFqzIRTMmg39keX1KMp2tCy8O1Y7+5FObWmw\nc80+jCTNBbLRXCaaoulYrERRVqFlro0d7MFcrhiOff80s8xlD/3gKkBVe2HNYSNSPvIhXK5PefTR\nB3noodFlvqvmoQan8J9qe+yxxxg6dCht2gSexAylu3DttddyySXaYf70009z6NAh3n77bcd7s4Pz\nPuiaa5zCiSHUz9plJEB4w0kxYiwElq1oL4QKumapSVHHFQI6oWB1em7u3Lnce+9fdWaD1atwIESD\n2eAB3gROoVHT7sKZrKKY2moM3OpwL2Ls9/IgzIZiZPk7vcbcAOjNmQfD/9CobdehZdB2Uajzj3P1\nwGdnElDbI0wH8tHYHXYHKXx6o207znz1snG7P6V37xt5/fXJRqJiHmpwChF0hQ7KX/7yF5566qmI\nrXqysrLo2bMnW7dujWgdqzjvywsCmg9Y8PNDZKFmKTirup7BSgHmWnB8fDzp6em21zSvKw4Qs617\noNKEVaiqSkFBATk5OciybDAcevfuzddff0Fa2rfExWWgNVmcIFJmw69I0jRkuQRNgzYHbWTVCa4A\nRgE7kaR/O9gLlNrX+1+zhRLYZGAPcDfatF6gP+ur0QLdGpxZrbtQlKHA5UjSdOCgjdf+AkxFlhOA\n9misCDslE9BKLreisUTeQ7MysoN0Cgru5L//XUf37r04duwYJSUlRkISCfxLFHYMZv1x6NAh47//\n+9//0qSJkyamM1SYTDfY1dqchbpcLoOcbWW0VsBfcDyQw4QIjHYcgc1MB8HfVVXV2KeA1bFlwYhI\nS0ujpKSEgoKCMsI+ilIaiIqLi9m9ezf9+g3SmQ2dsUfUN8Mus+GkPt//G1qW3Ant/LfDbAiGPDTN\nhhJ9sspJt1zj0arqSVS1L7K8DFU9iqreQOCaaCBoVuuSlIomr2j3s7VTrshDlr9BUXahBcsO+q/v\nQPs8W6MJ3tiF4CO3R6P72YGPpKTFXHbZKT755H1q1NAy5kAjwFaTCn8B8549e7Jo0SJHJYu77rqL\nzZs3I0kSderUYebMmVx6qRMBffs474MuBNbUDSR0439KWqnTQqn2bVJSklHKiIuLw+12nxG0rTpC\nAJw6dYrU1FSKiorOoKmZYaV0AhjUOfF6MVJsDrbCFDM+Pp7k5GRyc3O57baBbN58TNdsCG9LFBjm\nQBXMeaEESVqFqq4JMZAhhhci0WzwIMuaq4WqDsO62aQZ5mt6VbSyh92rsdlqfRT2HHsFtqIxG66n\nNJgKqGjNvIXIclWdBub/jINon2ewkkk47EPjVl8J9LP52tNI0tskJPj45pu5NG/enLi4uDIDD/5S\nkSIYB+Kw+w9YdOvWjRUrVkSkz3sucH7tNgjMlDFxpTYPDUSDkeD1esnJyaG4uJiUlJSgWbLVdcVe\nRePNn6bmv2Y4iLqtoigkJyeTmpqK0HcQ/87Pz8fj8ZRxIE5PT2fBgrn07dsGt3sOzqlggtlQLwCz\nofR6LknbgKEhBjIuQ2M2nA7AbLAKwWxojsZssFuy2Il2TY9Dk6c8ijNHC7ce9GsgSdNwxmxoAtwB\n/EDZcsUxJGmWPiRyq66AFiioV0P7PI8hy29il5mg1YXvQZL26yUXr4XXKPoAznSgCiUlXenZsy+L\nFy9GlmUjKXG5XIYWg+iBmCdM/bUYxHcZSule0WBEnG2c99oLgHFyFhcXG9Np4TQSSkpKjBnuUPB6\nvcbQgdvtDst0COcILJpkeXl5AKSmpoa1gw+lFSFobwUFBcTHx6MoCi6Xy/iCit8vKSnB5XIF1HiI\ni4ujR4/uxMX5yMiYgddbE/sNHND0CcyaDWmAhCz/B80VoqOe3YbrivtrBDjVbLgCSUrR95JA+LHh\n08jyF2j12Ha6XsKVaM4LX6EFHLvi7Has1oNBuCcvR5K2IUnZaNf+amic53C6GMlon+cO4Hs0jQ07\nNxqX/vr/IUk/oKpXEzzrP6HzfbejNRpvAi7F663B/PkTSUlJpnXrUl1fkTCJvzNCHCeQFoPX60VV\nVX766ScWLlzIzp07GTx4cESea+cCFSLoipNRVVXS0tJCiscIhAuOIjMUk19i+ivcySrk6wKxFzwe\nD3l5eSiKQqVKlQxb63B7FYeKOeiKWrbIlMWghMgMfD6fUeeOj48nJSXFUPgPBEmSaN++HQ0aXMk3\n37yM13sBZe2+rUJCC26paOIyG1DVGmgEfDuyivGoahM9wHyDfXtzgcv0184DThNYh8KLJP2AVv9M\n1csjV5p+/xK0Rt0CJOkg9ulgwmo9HS14+1utW4EbbaBhNVrJoD9aucHqZVX7PGX5JLAATf/CDiUs\nAVVtiiQdQtPAqEtZJTLBCf4M7RAYSVmboXS83vqsXv02Bw78RufON4X83ptrvyIQg/a937dvH19+\n+SUZGRn84x//4PPPP8ftdtOsmT3q4tSpUxk2bBgzZsxg7969dO5sdyLPGSpETTc7OxtZlsnLy7M8\nrhvMoyyQtq3ovlrxSQvU9DI384QfmyRJYaloAv5NQn9esrluK2hxxcXFxpdaiEmLzF78E+xz2rBh\nA7feehu5uS3x+doSXsHLDDE0sBhJSkdVc9CcF/rjtJoVub05BHfK3YMkfYUkqShKL0Lb2pzSG4ZO\nBc1Bm7D7EC3497X4mkLdwWMb0BJJygH2oPmn2W3+mEePw/niBX69JpS0Gi2TbQQcRZI+R5IKUJQ+\nhP4MC3G7v6Bt2zp8+OFsW7buZq5vQUEBd9xxB1999RU//vgjqampNG5s/TBctmwZL774It988w0J\nCQkcO3bM4O2WNypE0BU1HzsaCf7DFGZurP/AhB2Ld7P+gbmZF6hJZjXoijpXSkpKGSZGQkKCIXsn\nSZJR1xXvS+xfqDWZ/1EU5YwgbLZX2bdvH1279uTQoYtsMBv26UMDhfrQQBOip9kgOvEtiYzZ8D6S\n5EFRBum6DjvR6raBhGkCwTxAMApnZZgT+hBEZZ0eFuyzVdEYBPPQrIsGoGX7KpL0Paq6Bi1wO+Fa\n/wT8l+BKaeEgTERroFHTgvGWA8FLUtICatUqYt68/1K1qjXZUDPX9+DBgzz55JN89tlnDvYO/fv3\n57777uPGG52898hQYRpp4t/mTn2414hmluDGRsuGXQRb83hxoLqtnaabz+cz+MBpaWnEx8fj85Wq\nbAkh6OTkZKOUYH5OfHy8oW6Wmppapgwj6Go5OTnk5eVRWFjIpZdeyooVS7nmmnhcrk8JLZqdiyx/\njqY/UAvN5lzwHoVmgwtZjkSzoT6lmg0f4IyHWwlVHY6i+IAZKMox4G9odCqrfxWEoHkdnUd7wME+\nLkJV70VVfcjyNKAgwM+cQpbnoBmC/hlFuZfS8oqk09e6ozXXfnCwh0aUKqV94uD1l6DVevehlZOC\n8ZYDIZ7i4h7s3l2V9u078tNPP9l+eqQC5r/88gsrVqzg2muvpVOnTmRm2lW+c44KEXQFwg1IuhzO\npwAAIABJREFUmCEyQ/PARGpqasAar53gKNSUQukuWF3XrLkAkJaWRmJiopGpgpZZ5+XlERcXZ0zY\nWcn0QwViSZKMWvCnn37Irbe20pkN/vPpohb6L1Q1G/gr2lhwICnDO4BAzAY7ELKMpxwyGw7oHX8v\nktQQ7f04YRTEoSi9kKQ/AbOxP0AAmmjPcOAyNNGeI/qv+5Ck1cB0VFXW9RKCGXxeAwwGVqA11uyi\nBnAvknRIZzZYYSZ4kOVvgXfRRou1YRJJegd7UpsSXu/1nDjRnptu6srSpUvDvsJfdyGUES1oY8BN\nmjQ545+5c+fi9Xo5deoUGRkZTJw4kf79+9vYe2SoEOUF4b9k9boutG1FjTUUywGseZ+JOqv4Ylg5\nhUNxes11W1HDMlv5CFaF4NtGg6so6sHmdUH7vCZNmsIrr0ymsLAf2uTWr2jeZOgTTFaEtM2aDbeg\nBQ0nsGs4WYgsL0FRfkTTSbgFkJGkjajqArQO+7UO9xJO0DwcVDSr9bVAJyRpI5oZZ2+si5MfQ6tX\nX4jmJWe3m1+ol0yyw5RMftNrt3EoSn9KWRNmqc1wJqKBkEVy8n95+eXxDB8+LPgu9dJffHw8ixcv\nZtu2bTzzzDM2n6WhW7duPPbYY3TsqI1qX3nllaxdu5aLLrrI0Xp2UCHYC8IALxwNTFz7Bb1KeDaF\nywxFvde/6QalTTJh0yMyUSvDER6Px8g4zevl5+dTXFyMy+Uyas5er9eoLRcXFxvPiFbA9Z/cEweR\nsFb505/a07BhPebPfwlF2Y6qrgNaoZk9WnVQFcyGS9AI/8XYdz0ArRN/NZJ0Whe6CcZsUNFqjx8g\nSV6dM9uM0sbgZWgHyDy0ssdVDvZSBY1GthBtsMMJs6EaGpd4K1oG/Fc0aplVpKBRujYhyxmoalPs\n1c4FM+EI2vu4grKBtxhZXoyqLgKu0YdWzP0NYSO0D80L7irsDYJUxuutx/LlMzh16hg33NAp4N9J\nj8dj9B42btyIJElce62zwzI/P58ff/yRG264gZ07d/Luu+/y5JNPOlrLLipUeSHYdV1c083atnZG\nBwOtK+zSzRq8SUlJtksc4mfN6/nXbSVJMqbfVFU1fKWEvq5wuSguLja4jFYhnpufn09iYmLIKb2e\nPXsyZ847JCYeR5b/hDa+6wRCs2Ejzt0oNFlGSeqENjHlbzh5RC8lLAa66jXRQBlxXTTNhu1I0myH\ne6mJdk0/YGOAQGAn8C9df+IWtJLH1w72IDSGq+BMYzgORemNJLUD/o2WwQPsAqaiaU7cR/Bx4kgH\nUi6msPAu3nnnawYOvJPCwsKAPyWCcXZ2dtjyQiiMGDGC3bt306RJEwYNGsR7773neC27qBDlBSHv\n6E8DM6uKCZUuEVDsODeoqsqpU6e48MILz1AAM+suAEad2MoXQkyQxcXFGeuJvZsbgkJbIjEx8YxS\niMjy/dkJZoqYIJr7v05Q0RISEsIOaJixb98+unW7lYMHL6C4+GbOnmZDMAhmQyugk85KyERrvvXG\nmkRiHpqJpE+/IjsZhxbX9BwLCmG5ul7CbrQR3+v0X4+0VKDoSmjr0cZ2rUg6+kMopV2EpiHRHjsH\nbGRlGw8u13zq1pWYO/dzLr64lCuen59v/H2bNGkSTZs2pXfv3jbXP/eosJmuyAIF1cq/SWZ3DBhK\nxckFyyFScXIxwFBSUmI4AotxRyjVUhDDFMEYEHFxccYBUKlSJdLS0gzKmCgbmJkJhYWF5ObmGiPB\ndh0tatasyerVy2nVyoXbHY7ZEAqlzIbI3CgEsyETeAVV/QUte+2HdU3aSvpQxEV6pnjCwT5cOrOh\nFpr3WSCFMEXf51RUNR/NR+060+8Lq/USNKv1wBlfcMgoyp+RpC5orIQMu28C7fCLA46jlU462Xq1\nqrYABqI5Ycyz/ezCwlvZsSONdu06sG3bNkOhzNxIi0Rh7FyjQtR0obSZJkQxRE00kCiNgBW7dLG2\nqKOGGwUWmXCodUXdVthJC/6v+FKJ2rN/fdUq/Mcqk5KSjDUEs0I8R2TG5ll2K89KSkpi0KAB7N37\nE7/88gUeT12cZYfmSalv0MwS7VKBTiDLC/Qg5kaWE1HV9tjPEuNQ1cbIcj5asKiG9Xq1gIyqNkCW\nFX3s90JKJ7OOogngbEfzROtC4HFaUSP9DfgW+zVScFavzkeWv0JVf0ALtF2RpB+Q5W1odvF2crQL\n0Q7DpUjSL2gNTKvfYQlFqUNBgcTHH79I8+ZNDQUwr9fL9OnTOXDgAC1atKBWLbuTfeceFaK8IGq2\neXl5eL1eQ2MgVPAQJYNQwxSi3unxeIxacLg571Dr+iufgVY6EEZ7oB0EXq+X5ORky/SvcBAHgX+J\nQlDczGUJIODkWqB9iBLF5Mn/YuLEKSZmg6NdIkkZqOp3WGc2eJDlVSjKaiTpCl3XQTUxG0bibHQY\nJGkDqroQbWiiraM1Sq/p7ZEkVR9muArNYNNKBh6NUkGwSTwzzEMYF6EogyhtlEWqlBZp2WY7cXGf\ns3jxQho2bIjX62X8+PEsX76cAwcOUKVKFTp37szMmTMtrzhw4EB27NgBlFLPNm3aZHNfzlEhgq7P\n5+PYsWPEx8cb+gtWEGyCzayXKxgCOTk5lvV3/df1rwOLgOv1eo0RY1FSkGW5jOBHJEE3EAUsHNMh\nUH0YzgzEwuUYwOVysXDhQoYNu4eCgi5ojTKnsGqb8wswF1mOR1Fuo6zDgQ9ZXoSq/qizK5xmQ7vQ\n3CiaoR0ETrAKraOfgNY8tH8oRU5tCxX4cpHluajqPlS1M4HHrL3I8peo6m6Ho8clyPJnqOpBnZts\nlZmxF7d7Pp07X8+kSRNJTk42Eob+/fvz8ccfc/z4cQ4cOOB4suzhhx+mcuXKPPXUU45e7wQVIugC\nxnU8kF1NMJw6dYr09HQjEInMzSz+LYKsHf1d87piPVmWcbvdZ0zNCb6tEPYwj+yaR3Xj4+NDZp3+\nEOsCJCcnW9p3IIhamrl8IwKxkOkTe9u8eTM9e/YlJ6c5Pt+12NNsMCOUBmy23oDKQuPGdgq6ipY5\nLwW6oQmjO4Hm9CvLVfQBD6tX7AJkeRGK8jPa1foXZDkVRRmGfe8z0OyIPtbX6uHg9f6B70I0V4kF\nSNJl+uEUKgtV9Qal09FjRaedbdZ1OELpM3hITFxOcvLPTJ48kW7duqGqKpmZmVSpUoUff/yRcePG\n8euvv4YV9g8FVVWpVasWy5Yto25dJ9RFZ6gwQbekpMRgMFgdDzS7RwiWA2CI0phhdfBCrOt2u8vU\ngYXsolknIVxQtJp1mrNXkYGWR4nCrFqWmJh4xv5kWebw4cP06dO/HJgNsh5Ev0eSaqCqt2ONhB+p\newJArk7+t3JFVtH4tt8gyxfqegnplF7T8/Q1wut4nAkrpYJQUJDlb3WPtwuQpGxUtTulI9tWIDQX\nOqG5VNiDJK1HVRej1bMDTdrtx+2eT8eOrZk2bTLJyclG0vHwww+zaNEijh07RuvWrWnTpg3PPPOM\n44baihUrGDt2bEjr+PJAhQq6Xq/XMl0LtOzVrCJmtvPxh1UbHmE4CRjrCVqXqKNGEhT9A51oiomM\n3Ov1Gll6tASevV5vQCEdM8zUtdOnTzN48FA2bz5CYWEfInOj+A+aVU48siyUwOxmJcKNogaqOhBn\npB0rV+RTeiPqiH5V98+uvfrv79LpYNaEXsoikhqpgiRl6kMOoNWrnbgnZwEfoZWRnFC2fkGzmm+O\ndgsB8JKQsJKkpB+ZNm0yt9xyi+GmEh8fz/z585k4cSIvvPACLVu2ZNOmTWzYsIHRo0cH5NwHcwJ+\n8cUX6dmzJwD3338/V111FQ899JCD9+AcFSboiq68VSqJOTgGsvPxRzgbHnPdFjBEZ6zybZ3CnIFC\nqeCOHSnHYIgka/Z6vTzwwEN8+ulCCgr646yhlYcsL0SzZZfQHBSc1mez9cw5Xs+cnbjSapmiqm7U\nr8gi+PtMWXhtPQsPtn4gaUS7KEGWP0dVD9iokZ5Akr4ATqOqt6LdQD5Ba1h2d7CH42gecE75xIfR\nsvbqqOoNuN3f0LZtI2bOfJ20tDSDV5+Tk8Pf//53ZFlm8uTJUaOJeb1eatSowcaNG6lWrVpU1rSK\nChV0fT5fWEaCuUkmMjcr02mh9Hf9BzDy8/ONeqcsy0YpIZo6CYCxrrDoEaPN5qxT1GHDSTn6vycR\nyCM5IFRVZerU13n++ZcpLPRvdoWCorMHvtVrqf2RpG06s6E7WobkBMW6i8VxXbPBKbNBZIs3A9WQ\npC/Q5CJ7E7pWacaPaJNngbzPrMBcKjAfAP4oPRC0nzFzl4+gBb7LcOZHJzQXnJqAngamEx8vMW3a\nv+jbt6/BPoqPj+f777/n2Wef5YknnqB3795Ru7kBLFy4kJdffplly5ZFbU2rqFBBN5Smrn9wdLvd\nhoCGlaDrr78LGJKIiqIYdWCztYh5JFdwZkMFO6swU8BEycOKfkQ4Td34+HhD40GWZaOeFinmz5/P\nsGF368yGcJndASTpK6BArzeaf14wGyKpz/qQ5YWo6tYImQ0/odWKQTsENBEde3AiaF4WpQdAZ850\nKj6iHwgFKEpfCGg1lKuXK9BvAHaddZ2agB7F7Z5HkyaXM2nSK1xxxRXIsozL5aKwsJCnn36aEydO\nMH369HIRFx8+fDjt2rXjnnvuifra4VBhgq7I6PwZCeL3hAKYuUkWLHsNBLMjhL84eai6rdBjMGee\nqqoaHf9AzbBgcEIBC4VA9WHAGKwQe4zkGWLP69atY+DAO0MwGwqR5aUoyhbgarQOfaCAH6m7rYbI\nmA07gK+QJDeqWqBnikMc7kUImqfrzAYnh9yvlC0VeHX+8g+U1l1D7a0EWf4UOGxRtc0fdvjECnFx\nGSQlZfDMM09w1113AfDzzz9TVFSEqqo899xzPPjggwwePDiq2e3vBRUu6JoZCYJC5vF4cLvdZ2SE\ngbLXYBBBNC4ujqKiIkc6CQKhWAnmYGx+bbQoYP7wH5wQbhSBGnXB9hYM4vMHral4+PBhunW7lf37\n0ygu7oIWYFS0q/YCZLkyinI74WuU2XqgSoigPgv2M+ccZHk+qpqFqnZA696LTFHVr9h2M0XQmA0f\n6BmpU6t2rVSglUzy9abj7dgp6Wjc5i16s7G27R2E5xOfICVlPg0aVOHf/36Liy++2CjDzZkzh7fe\neovt27dTu3Zt2rZty+jRo2nVKpiW8PmLChN0RYDIzs7G5XIZ12Rh9RwoSATyMwsEVbd1F+IwYr1A\nfFsnGWgo0RqRJYu6rZVSglWIrFlc6wLt2Yqgjn8gFpm+x+M5owGXm5tL//5DyMzcT0HBdUjSIuAk\nqvpn7GWcgtlwAk1dy6nilJXMubTGrGW1AyhLVxOZ4iH9EHDS7DEPIDhhNniQpG9Q1S1oh9BonLBG\nIvejC8QnVpDlTJKSVjFu3JOMHDmiTHN2y5YtjB07luHDhzN06FC2b9/Ohg0baN++PQ0aOLEi+n2j\nQgVdIXKjKAoJCQllRL8DwexnFgzmuq0kSaSlpRlaBWa+raqqZVTMIoWwlC8pKSljMGm1GRYK/g04\nK9xjM4I16sRefD6fcfgEqgl7vV7uvfcvfPzxx2g11cE4Gxjw6ZoL/9MbQZc7WANCMxuOIElfAjmo\nag+CT9sJ8v8mPShbbaiZ4XQAYa9eu41HUfogy8txXioATW5S+NF1cfB6jU+sNUF74HYv4IorUpk9\n+y1q1NAyb7fbjc/n49VXXyUjI4OZM2dyxRVOPrPzDxVG8MYccJOSkiyJk4usLRD3VuguFBYWGoHJ\n4/EAGEGwqKioTDYdjaaTeC/iWu52u43xR7NGg1nYRwQ9cRCEYm4UFxcb5RGne/a3x05KSjKacKqq\nGrq/Qt/XfEiBVkbp1asnqamVWL16CV7v5dizAxeQUdV6SFI8msZBKprQi10kA9cgSTvRDB8bAnHI\n8jJU9Wu0YD6cspbi/pBQ1SuRpGR9Ly7sj/xKqGodtM/iK7SsO9RBUqyXBL4FmuuNwTQ0gfdcYL6+\nB7uB9yI0C/rFSNJeNGF2Owd7CtAEVf0eWV7LE0/8lWnT/kVKSorxvduxYwdDhw6lRYsWTJ06NWqO\nDVOmTOHuu+9m+vTpeDwexyLn5YkKk+mKq3JJSUkZq5lQ8Lc2hzN1FwSzQcgw+o/BJiYmOubB+iMY\nBSwUrNSHBW2tsLAw6rQ1cynBn0lhRVBn8eLFOrPhZuy7LpgRLWbDAhRlK1rQTUZR+qGpjdlBIPK/\nXWShDSA0QBPI8ccu4L/IslsXqDkzsErSOj0gB5v+Cgen3OZs3O4FVK8uM2nSK7Ru3RrA6J1MmzaN\nBQsWMGPGDBo2jESnoyz+97//MWjQINavX09CQgJdu3ZlxowZZ3XE1woqTKYrMjzRgbdyZRbi50lJ\nSUaXPS8vD8DQWTBnkFBqGSKCorAJEo02JzKJwTJQqwaTIsAmJiYazTBRcxYHi8fjMRgJYl/RENMx\n60r4D0/47y0pKcngLouAXKNGDW68sRPz5k3C6y1BUWriTLPhYrTsbBGabYzd7AygEEnaiaoeA3x6\nndmJhc9FaB38b5GkPWhsDLt7qQw0RJKWI8vb0Sx4ZDSWxzydd3utPogRrBFcHa02/DWQh32VskA3\ngHAj0FtITv6Ce+8dyIwZr1O9enV+++03Dhw4QH5+PiNGjKBWrVq8+eabhlxjtLBixQqKioro27cv\nsizz22+/8csvv/CnP9kfVy5PVJhMVxD6rTbHoNQ9IiUlxaCUibqsOdgKiliouq0/D1YE/1A6CdGm\ngPnvR2SgQrVMURRHwxL+EFlzNOrYoj68b98+eva8jQMHKlFc3A3nmg1OsjPBoPgGWb5Y10s4SOSZ\nc46JA+uU2ZCvMxuKUJROlLI8tFKCNYgx6Op6CcLud8xK7TwXt3shl17qYc6cd6hXrx7CWurLL7/k\nlVdeYdeuXVx55ZVcf/313HnnnVx//fU29xEa27dvp1evXqxZs4bk5GRuuukm2rRpw5QpU6L6nEhR\n4YKuleaYgMfjITc316CNnS2dBJFtisAczQac1UAe6JAIxx8OVUqIFD6fj+PHj3PXXSPZsGE/hYV9\nsT/hJGBn8uykrodwFFXtQlkd32hwgkt0fd8jETS2soFpaBbnbXF2COToh1GcQ5pdKL3j/+Fyfcs9\n94zk8cf/jqqqxs3m4MGDPPDAA1xzzTU8+uijbN++nczMTJo0aWI48UYT77zzDtOnTyclJYXGjRuT\nlJTEpEmTov6cSFBhgi5gNJY8Ho/hxhAI5rqtqqpUrlzZCLYCgm9r1z8sFESgEweDCOxiGCESRgKU\n5cU64fKGqg8L14n4+Pig9DIn8J+ui4uLY8yYR/joo691zQans/bhsjMfkrQaVV2BJoDej8AebSJz\nTtCDplPNBsGBHUDgybBAUNGE0Ochy5egqpejqpnAbWhTbHahWddrB4xTgfefgS/Qgn87XK7FXHRR\nLnPmvE3jxo2N6UxJkvj444956623mDRpEu3atTvrgw5PPPEEl19+Offdd99ZfW44VLigK7LdQJq6\n5hKEqMvm5uYa1DJBdzL/frQYCWY9A3MgDzWe6x+Ig0HQywLxYiPds+AfC0pYtMR0oFS9LBBPeNq0\n6Ywb94Ku2VDT6TswZWfmybN9SNJ/0ZS6+hB+ECBamg12Gls5urj4flT1ZtPeN6OxEjrhRFpROwAW\nRDgGfQCYTXx8HCNHjuDZZzUBcJHdHjt2jDFjxlCjRg1eeumliDRv/TFhwgTef/99ZFmmSZMmvPvu\nu2XG+I8ePUqVKlX47bff6NKlC2vXrrWsr322UKGCbihNXfMosLluK8oH5izX3PCJRvAyDyFYCeRW\nJ9bMawvqVnlloKKUEKmYjnh/4nMPpVG8cOFC7rxzBAUFndGaUU4hmA3N9UmtzWjMgq5YLxlEixMs\nOLDBmA0qsAlYqNdgB3Bm82oP2gBCI6CXo12UHkZdsTeUUkhy8hJSUw/x4ovP0bt3b0MWNS4ujrlz\n5/Laa6/x0ksvceONN0Y1u83KyuLGG2/k559/JikpiQEDBtC9e3eGDh1q/EyHDh04ceIECQkJTJo0\niRtuuCFqz48WolNI/B3B343X7HMmOuwiu5QkyWAuKIpiBBZBD4PQjbBwcDqEICbRxM8L9wYR5ISi\nmni/ZsZCpBDPEfSySpUqlXnPgpEgHIjFa8y1YVG28a8PS5JUJttPTU0NueeuXbuydOlCbrmlNzk5\np/F6/4QzZkMDtKzwexQlEbgXje1gB3Eoyi1I0kXAHKz7uPnjKjTn4veQpBOUVfc6pU+lHUNVb0VV\ngx00ddDcjt9Dkt7FibSiql6LlrF/jibTaKVO/Asu1wL69OnBP/7xKcnJyRw/fpz09HRyc3N55JFH\nSE5OZsmSJZaNBOwgLS2NhIQEQ7SqoKCA6tXLcqFXrFgR9edGGxUq0zVr6lauXPkMnzP/uq3H4znj\num+GvwZBuPFXgfJsOIksUawtDolgqmF2qGGCpaEoSsTNvWBiOoBxSFgtSxw8eJDu3Xuxb5+boqKu\n2MsVsnWK1W+oajskaasD3qk/rPq4hYJgNkgoykgkaTOqugRNj7c/gevL/ohUWhGsNQuLSUpaSmrq\nPt59903atm2L1+slPj6emTNn8uKLL5KcnMw111xDr1696N69O/XqOTHRDI8333yTsWPH4nK56NKl\nC3PmzCmX55QnKmTQPX36tNGcEsHUHGxFBmpXvtDK1VrUV0Ugj+Z1P1BN2P9nAnmZBQrE/q+zKxVp\nZ99iaEWUP6xqOJiRl5fHgAF3sG5dFgUFVpgNCpo1zFL9mt5ff0106rPRYTYUI0nvo6pH0A6SPtjn\n0jqVVjRDCAgJayRzwN+D2/0NPXrczD//+ZLB9Xa5XOTl5fHkk0+Sn5/P3Xffze7du8nMzKRr1670\n7u3EUSI0du3aRc+ePVm5ciXp6encfvvt9OvXjyFDhkT9WeWJChV0CwsLyc3NxefzUalSpZB8Wyea\nA4EgAp2oJwuYr9ZWJstCwYpdTrC9BQrE5kAngrkQYI/mIWEuUwQ6gOzWh30+H2PG/J0PP/yKgoLb\n0cwVA+GwrpeQh6aX4K9hEC1N3VDBKhx8SNIaVHU5GkMjB3Cm7hUdq/Yi/TA6ob8XF0lJ3+N2/8qs\nWW/QsWPHMvY5P/zwA0899RRjxoxhwIABZ4WZ8J///Idvv/2WWbNmATBnzhwyMjKYNm1auT87mqhQ\nQTc3NxdVVcnPzzdGe0WNV3T3y+u6b+byhgt0Vu3V/RtOkQZvKA10Ho+HkpISo/4dDSEdAXMt226Z\nIhx/WJIkpk9/g3/8YyJFRX0p29Dy6IIx69CEaXoRqtYZHbdgs9rZSDQTynA4jCZQU4hmH187Knsp\nlVa8EWfeZz5duvJnkpNTuPnmTkyePNE46F0uF0VFRTz//PPs3buXN954g8suc6J1cSZ27NjBwIED\njf/fvXs348eP54EHHjB+bcuWLQwZMoT169eTnJzMsGHDaNOmDf/3f/8XlT2cLVSooCvMKfPz8/F6\nvWUyJNHdL28KWLCfNU+Dhau/mteOpp+a2ItZP9esLWE+KMB+E7G8yhTisxPaFwDfffcd99zzfxQU\n/BnNzXYX8CWynKjryFqVRoyWZsM3qOq2MMwGL5K0ElVdTSnzwPyZCufiVjhT9wJNWvE/aGyPnjZf\n6yExcQWStInnn3+akSNHGtltQkICGzZs4JFHHuGee+5h2LBhUbsV+UNRFKpXr866deuoWbMsXfCV\nV15h9uzZyLJMixYtmDVrVlRurGcTFSrojhgxgkOHDtGiRQsqVarE1q1bmTBhgiEj59SxwR92KWCB\nEKz+KriwopQQrUk1CM2L9UeoabpA9Vc7a0e6b1Eq2rx5M7163U52diKKcgQtu3NCEToIvI8k1Yyg\nPhtqYgs0G6LPkSRFPxSCKZBFw7nYiVX7AdzuebRv34xp06aQlpZmaGp4vV5efvllNm7cyMyZM6ld\nu7aDPVnH4sWLef7551m1alW5PudcoUIFXVVVWb16NX/729/Yv38/HTp04MCBA9SrV4/WrVtz7bXX\nGopDgdgI4a79kerQhoIYyhAZsAjKYn9mxbBIXH1D8WJDIZSYuXhGtEXWrZRX9uzZw403dub06Uso\nKbkV5yzIaLgFw5nMBo9eb83EOjdY7CVOZyU42UuezmzwoCh3E1yoxktCwiqSkrYwadIr9OzZ0zj0\n//rXv3Lw4EGOHj1Khw4deOqpp6hTp065129HjBhBq1at+Mtf/lKuzzlXqFBBF2DRokXs2LGD+++/\n3zCK3LFjB2vWrCEjI4OffvqJpKQkWrRoQevWrWnTpg2VK1cOeO031xHLiwIW6LpvlkYMVZYI52F2\nNsoUxcXFxmckHC7sTNMFW9s89BFuDDs/P5+BA+8kI2O3RWZDMESX2aBxgU/rJY/+gB1VrWK9Vnws\ngpFdD5pV+35UdShnMhsO43bPo3XrBrz11nQju3W5XCiKwuTJk9mwYQO1a9cmKyuL9evXM3v2bDp3\ndkqTC4+SkhKqV6/OTz/9VC6GlL8HVLigGw6qqpKXl0dmZiZr1qxh7dq1HDlyhMsvv5xWrVrRtm1b\nGjdujCzLeL1ePB6PkV0Kta5oaOeau/t2mAOhNGrNgU5kztF09RUwazz4symc+L/5r+2kCefz+Xjk\nkceYM+cLXbMhGLMh7EpRYDYUI8tfoSg70JTFHsIesyGae1HQDD8zgdvR5C99xMevISlpPRMnTqB/\n//5lRsh//fVXRo8eTZcuXXj44YfL/BmYZU7LA1999RVvvPEGCxcuLLdnnGv84YJuICiKwt69e41s\neMuWLeTk5JCfn0/NmjV54403uOSSS8oElEhEaiLp7vvD/9pvHmkWnEqrbAkrzwrmfWZ1f/5sDvMh\nJkSGIrlNzJjxJk899ZyuUuZ0VDcSZsOvaOLiKShKX2R5EaU0LGdTWtFhNmxAVRcC1+L4WfklAAAY\nVklEQVR276Np05q8/fYMLr5Ym8wT+gizZs3is88+Y/r06TRt2tTRswLh9OnTjBo1im3btiFJEu+8\n805AV4eBAwfSrVu3MqO9FQ2xoBsAjz/+OP/+97+5++67SU9PZ926dezdu5eLL76Y1q1b07ZtW665\n5hoSExON6z+c+yEEM5tCcJSdiuj4rx2Oc2t3r4FoYaCJz5un1Zx8PosXL+aOO4aTn38TGrPBKQSb\nwAqzoRBZXoii/AxcB3TQf10wG37Ss1WnB0GkLAtFF/nZzsSJLzNs2NAy38P9+/fzt7/9jTZt2vDM\nM88EtLCKBEOHDqVjx46MGDHCYBj5jwrn5+dTq1Yt9uzZU8bNpaIhFnQDYNOmTdStW7eMOpGqqhw5\ncoSMjAwyMjLIzMyksLCQBg0aGGWJOnXqlLn++w8hlMekGlgbnrDLRjC/Llqjwf7wH5f2n1aD8AdZ\nMGzdupVbbulNdnZjvN7rcKbZAKWTZzVDsAl+BuYiyxegKAM5U1xcMBuWAd1xptlg3ovdKbgTuN3z\nueqqi5k9+y2qVtXodIIJ8sEHH/Dvf/+byZMn07ZtW4d7C47s7GyaN2/O7t27o772+YhY0I0AXq+X\nbdu2GWWJnTt3kpKSQsuWLWnTpg2tWrUiJyeHwsJCwwXVahPMCgINZlgNSqGu/aIcIcR1os1KsNIo\nszJNF+ygEIfQsWPH6NdvEHv3JlFU1I3oMxvy9GGC3ajqjWgas6EgtGgj0Wyww7JQkOUNJCWt5NFH\nx3L33aOMhuekSZO46qqr+Pzzz2nUqBEvvvii4WEWbWzevJl7772XRo0asWXLFlq2bMmUKVOiKvl4\nPiEWdKMIVVXJzs5m3bp1fPfdd3z88cecPHmSHj16GGWJ+vXrlxGpAcJmm4GeY3Uww+7+RaAVKmuB\n9hfpQeE0c7YyNiyan4IaV1BQwODBQ1m9+hed2eD0L7q/APhvwHw0m/FBNtY9gMYJrqXrQTjTbAjP\nsjiN2/0NtWu7mTPnbWrWrImqqiQlJZGbm8vTTz9NRkYGBw8eJDU1lXbt2vHJJ5+US5MsMzOTdu3a\nsXr1alq3bs3o0aNJS0vj+eefj/qzzgfEgm45oVu3btSsWZPx48eTk5NjZMNbt24lLi6OZs2aGYH4\n4osvLpN1hhrJFdKJcCZzIFIE4sX6yzbaEakxo7zoa1a0LyRJ4rHHnmT27M90zQandt8+JOlLVHW7\n/v9O5R1P69lqkh40nTIbAk3BqUjSJpKTv+fhhx/igQf+itfrNT7zU6dOMXbsWNLT03n11VdJTU1l\nz549bN++ne7duzvYR3gcPnyYdu3asWfPHgBWrVrFSy+9xLx588rleb93xIJuOaGoqCigDbyqqhQU\nFLBhwwYyMjJYt24dBw4coGrVqgZvuGnTpsTHx58xqQYa86E8rvt2R5r92RLhDoryoq8FGvwIJsk5\ne/Ycxo17gaKiPtinX6nARmARmkDNCbT67NnUbDhzT2Wn4K7A7V5AtWoSH3zwLnXq1DHsc2RZZtGi\nRUyYMIHnnnuObt26Re37U7t2bdLS0oiLiyMhIYF169ad8TMdOnRg1qxZXHXVVTz77LMUFhby8ssv\nR+X55xvO+6C7cOFCRo8ejc/nY9SoUTz66KPneku2oaoq+/fvN5p0GzdupKSkhKuvvpoWLVqQn59P\nSUkJw4cPN0oT0ZhUg9CcWzv7D6bdIH7vXNSFzT8rAvG3337LsGF3U1j4Z1TVKrPBLC7eA003IRo6\nCaUCM1q26tSWaDvwGYmJSTz44F/5+98fLpPd5ubm8vjjj+PxePjXv/7FhRc65TAHRp06ddiwYUPI\ndbds2cKoUaMoKSmhbt26vPvuu+UidH4+4LwOuj6fj/r167NkyRKqV69O69at+eijj2jYsOG53lrE\nKCkp4dNPP+Wpp57C6/Vy9dWai0DLli1p27YtLVu2xOVyOaaEOeHcWoXInIU+hf9BYacsEQiRMiq2\nbdtG9+69yM5uiMdzPcGZDQqar9lSJKkOqno7ZUsBkVqbg5atrkFVv0fLVpvZfH0eLtciKlfOYdKk\nl7npppvw+Urtc1auXMnTTz/N3//+d/r161cuNds6deqQmZnJRRc5Ldv8sXBeB901a9bw3HPPGdMr\nL730EgCPPfbYudxW1PDMM89w+eWXM2LECCRJ4sSJE6xdu5Y1a9awfv16cnJyDF2Jtm3bcuWVVwKE\nbNIBUeXc+iNYQLTSBAvndBHNuvDhw4e55ZbeZGUlUFTUnTOZDceQpC+AXFS1F8E1arPRHCDkCHQS\noKzL7p8tvmYbycmLGTp0CE899ThxcXGUlJRwwQUXUFJSwrPPPsvBgwd54403uPRSOyPI9nDFFVeQ\nnp5OXFwc9957L3fffXe5Pasi4LwOup999hmLFi3irbfeAuD9999n7dq1TJ069Rzv7OzAqq6EGODw\nN98U1/1oNbTsBsRwThfmabVolEH8oTEb7uKHH8zMhlJrds3PrC/h/cc0ZgMc1RtjTm3jBbOhtp5V\nBzsMC3C5FnPBBad5771ZNGnSxGjA/uMf/+C9994zqIvDhw/nuuuuK1cdg0OHDnHZZZdx7NgxOnfu\nzNSpU7n++uvL7XnnO85rY8poBIsRI0Ywf/58qlSpwtatW6Owq7OHuLg4GjVqRKNGjRg5cuQZuhIf\nfvghR44coVq1asTHx7Nx40a+++47UlJS8Pl85OXlGev4Bzk78Pl8FBQUIEkSKSkplgOiGM4wZ8Pm\nQFxUVITP5zM0hhMSEkhMTIxaZu52u/nkkw95+OHH+PDD2RQW3oAkLUWSilDVO7DebEtCUQYjywuR\npJn6EEVtBzuqjmaa+R6y/FYQZsMOXK6FDBkygPHjxwFakzUlJYWSkhKSk5Pp2LEjvXv3Jisrizff\nfJOTJ08ycuRIB/uxBiFkfskll9CnTx/WrVsXC7ohcF5nuhkZGTz77LNGeWHChAnIsmyrmbZy5Uoq\nVarEXXfddd4FXSvIyMjgjjvuID09nfbt2/Pjjz+iqipNmzalZcuWXHvttVStWvUMXQkrTbryrAuD\nVgYRzq9xcXHGHoMpwdl5tnnvLpeLt99+h7FjHwVqAFY1aM9E9NwoPgZOmjQbikhOXkJa2iFmz55F\n69aty/CRf/zxR8aMGcOQIUO4//77y01g3B8FBQX4fD5SU1PJz8/n5ptvZty4cdx8s1NB+IqP8zro\ner1e6tevz9KlS6lWrRpt2rRx1EjLysqiZ8+eFTLobtmyhT179tCrVy8jYywuLmbTpk0GW8KsK9Gm\nTRuaN29OUlJSyCaduO6XR11YVVUKCwuD6v+GUlqzkrGLYO6/9yVLljB48FAKCm5EVSMRe4k2s6Ej\nLtd6brutJy+//ILxPl0uF16vl8mTJ7NixQpmzJgRdRden89Hq1atqFGjBl9//fUZv79nzx769OkD\naJ/rkCFDePzxx6O6h4qG8zroAixYsMCgjI0cOdLRH3ikQXffvn3cddddHD16FEmSuOeee8p4O/3e\nEUhXoqCggAYNGhhNOqErkZ+fbwQ0wcuMhIngvw/R5LMzaSfKEv6BOJCSWTgx923btnHLLb04daoh\nXm8oZkM4RIPZUIwszyIhoZBPPvmAP/3pT2Wy2x07djB69Gh69OjBmDFjosp/FnjttdfYsGEDubm5\nzJ07N+rr/xFx3gfdaCDSoHv48GEOHz7MNddcQ15eHi1btuTLL788r6lr/roSO3bsICcnh0OHDvH4\n448zYMAAUlNTyzTp7DAR/BFtYZ1gSmaSJBkqbMFodYcPH6ZHjz7s2RMfhNlgFZEwG7JwuebTvfuN\nvPbaK4YgkMvlQlVVZs6caWjPCjphtLF//36GDRvGk08+yWuvvRYw043BPs7rRtrvBVWrVjWUmypV\nqkTDhg05ePDgeR104+PjadasGc2aNWPo0KF06tSJ9PR0xowZw/79+7nvvvs4efIkderUMbLhBg0a\nIMuyMbQA4a/8/qwHt9sdlbqwaNIJ4R6hwAYYY8PBBNarVq3KihVLueOOYaxc+REFBbfhTLMhHVW9\nG0n6BFmeapHZUEJi4nJcrh1Mnfoaf/6zRh87cuQI8+fP54orrmDGjBl07NiR7777rlxNGR966CEm\nTpxITk5OuT3jj4hY0I0ysrKy2LRpU7lI5J0ruFwuXn75ZTp06FAmM1QUhV27drFmzRo++OCDgLoS\nl1xyiSHa7n/lF9d9u6wHK/CfWKtUqZIRzEWg8h9p9ng8ZZTWPvzwPZ5++lnefXc2hYW3o9nv2EUS\nijLEIrNhH273fG68sR1Tp75vSC+K+vq6det4/fXXOXnyJHl5efh8PsaPH+9gT+Exb948qlSpQvPm\nzfn+++/L5Rl/VPzhywuDBg1i+fLlnDhxgipVqvD8888zfPhwR2vl5eXRqVMnnnrqKXr37m3rtUVF\nRXTs2NEQOe/VqxcTJkxwtI9zBX9dibVr13Lw4EGqVq1Kq1ataNOmDc2aNUOSJH777TeqVasGnJlp\nRtqUi1TJzF/ucvbs2Ywb96Ku2VDb8b4kaS2quoQzmQ1eEhNXkJT0P6ZPn0L37t0N+ldCQgKHDx/m\nwQcfpGHDhowfPx5FUdi0aRNHjx41mljRxhNPPMGcOXOIj4+nqKiInJwcbrvtNt57771yed4fCX/4\noBsteDweevToQbdu3Rg9erSjNQoKCgzL6+uuu45XX32V6667Lso7Pbvw15VYtmwZ+/bto169eowa\nNYqWLVtSq1atMgacTseFzdltNJXMFEVh6dKlDBkyLArMhp1ozIaWaMyGg7jd82nfvikzZ75OpUqV\nAIwyi7DOEd+FaLwfuwf88uXLefXVV2M13SghVl6IAlRVZeTIkTRq1MhxwIVSnypRb4y2MMm5gCRJ\n1KxZk5o1axIXF8dHH31kCGivW7eOiRMnsmvXLtLT041suFWrViQmJhq1VytNOvPEWrRLFbIsc8MN\nNzB//pf06zeI7OxTeDwdcMZsuAoYDsxBlrNwu4uYPHkiffr0oaSkxBgAOXHiBGPGjKFKlSosWbIk\nqvY1ycnJLFu2rMwBv2rVqpAHfHnbrv+REMt0o4BVq1bRoUMHmjZtanw5J0yYQNeuXW2toygKLVq0\nYNeuXdx///288sor5bHdc4a8vDxKSkrOOExUVQ2qKyGskK666qoyV38obdKJZly0lczE3sxDFJoo\nfV9275Z0ZoOTRtYRXK65XHqpm8WL5xtqW8IRev78+UycOJEXXniBzp07l2vAKygooGPHjsyePZtG\njRqV23NiKEUs6P4OkZ2dTZcuXXjppZfo1KmT7deHI7SfD7CiK5GXl8epU6eMgYBIHJoDwePxGAMg\noqkFUFhYyJAhw1i58ied2ZBi9V0RF6dZn7/44vPccceQModFTk6OMU05ZcoULrjAqYZDeFT0A/73\njFjQ/Z1i/PjxuFwuHn74YduvrYiEdlVVyc3NJTMzkx9++IEPP/yQffv20aNHD1q0aEGbNm24+uqr\nkWXZqA+rqurIaijcRBxoQeuJJ55m1qwPKSzsT3hmw3Hc7nk0blydWbOmU6VKFUMrY/DgwVx55ZWs\nXbuWhx9+mPvuu++sjfFGesDHYB9n5082hrA4fvw4p0+fBrRM6ttvv6V58+a219m/fz/ffPMNo0aN\noiKdp5IkkZaWxo033sjRo0epU6cO27ZtY8KECdSoUYMvvviC2267jd69ezNu3DgWLFjAqVOnjIBZ\nXFxMbm4uubm5FBQUUFxcjM/nO+Mz8ng85ObmApCamhqUByvLMi+99AITJz6DyzUH2BNk5wqynIHL\n9R7PP/83Fi6cS5UqVUhMTCQtLQ23280111zDiRMnaNiwIS+88ALVqlWjuLg4Wh9dSKSnp3PLLbeQ\nmZl5Vp4XQyzT/d1g69atDB06FEVRUBSFO++8k0ceecT2OrfffjtPPPEEOTk5FbbjnJeXR0pKSsBB\ni1C6Eq1bt6ZFixYBdSWEnoTP58PtdtsaOli2bBkDBtxBQcENqKpZhPwkbvc31KtXmdmzZ1GtWrUy\n9jkZGRk8/vjjPPjggwwePNh4P0eOHClX/dvjx48THx9P5cqVKSwspEuXLowbN46bbrqp3J4ZQyli\nQbcCYd68eSxYsIBp06bx/fff889//tNR0LXieXW+QFVVDh8+bPCG/XUl2rRpw8mTJ/F4PLRoUcqd\n9ecOh6sN//zzz3Tv3otTp+rh8XRAkjaSnLySJ598lPvvv5eSkhKDxlZcXMwLL7zAzp07mTFjBtWr\nV4/a+7WiAxKtAz4GZ4gF3QqEaBHarXhenc8QuhLfffcdb7zxBsePH6dTp07Uq1ePNm3a0Lp1a9LS\n0s4QzwnXpDt69Cg9evTl119/o06d6syZ8za1a9c27HPi4+PZvHkzY8eOZfjw4YwaNSrqtduKqANS\n0RALuhUUkRDa/yieV0OHDsXlcvHKK6+gKArr1q1jzZo1rF27toyuRJs2bWjYsKGh4+D1egHOGOCQ\nZZnCwkIWLFhAt27d8Hg8hlqa1+vl1VdfJSMjgxkzZlC3bt2z8h579+7N3/72t1jp4HeEWNCtoFi+\nfDn//Oc/HbEX/iieVyIoBoKiKPz6669GEP7xxx+Ji4vjmmuuKaMrEWiSTtSKExMTcblc/Pzzz4we\nPZq+ffvywAMPlIsEYyBkZWXRsWNHtm3bZky6xXDuEQu6MZyBaHlenT59mlGjRrFt2zYkSeKdd97h\n2muvLYcdlz8C6UocOHCAqlWrGk06n8/HkSNH6Nq1K6dPn6ZVq1bUq1eP48eP88gjj9CvXz9Db6K8\nEYkOSAzli1jQjSEknnvuOSpVqsTYsWNtv3bo0KF07NiRESNG4PV6yc/PN6avKgKErsT333/Pa6+9\nxq5du+jQoQPVq1enVq1aLFmyhEaNGnHJJZewfv16NmzYwO7duw2JyfJCNHRAYig/xLQXYigDf8+r\nxYsXM27cONvrZGdns3LlSmbPng1o+rwVKeBCqa7Er7/+SpMmTQzTzy1btjBnzhweeughevbsafy8\nEFEvT0RLBySG8kMs042hDKLlebV582buvfdeGjVqxJYtW2jZsiVTpkwxRH0qEoT9eXnCqmt1tHRA\nYig/xIJuDOWCzMxM2rVrx+rVq2ndujWjR48mLS2N559/3tY6O3bsYODAgcb/7969m/Hjx59XHnTR\nQEV3rf4jITYGHEO5oEaNGtSoUYPWrVsD0K9fPzZu3Gh7nfr167Np0yY2bdrEhg0bcLvd5Sbc/XvG\n9ddfX64CODGcPcSCbgzlgqpVq1KzZk127twJaPbmjRs3jmjNJUuWULduXWrWrBmNLcYQwzlBrJEW\nQ7lh6tSpDBmiyRfWrVuXd999N6L1Pv74YwYPHhyl3cUQw7lBrKYbw3mBkpISqlevzk8//cQll1xi\n+/UTJkzg/fffR5ZlmjRpwrvvvktSUlI57LT8kJWVRc+ePWM13fMcsfJCDOcFFixYQMuWLR0F3Kys\nLN566y02btzI1q1b8fl8fPzxx+WwyxhiCI9Y0I3hvMBHH33EoEGDHL02LS2NhIQECgoK8Hq9FBQU\nRFXZK1IsXLiQBg0aUK9ePV5++eWAPzNo0CDat2/Pzp07qVmzZsSlmhjOHWLlhRh+98jPz6dWrVrs\n2bPHsUHjm2++ydixY3G5XHTp0oU5c+ZEeZfO4PP5qF+/PkuWLKF69eq0bt2ajz76KKYKVoERy3Rj\n+N0jJSWF48ePOw64u3btYvLkyWRlZXHw4EHy8vL44IMPHO9nypQpNGnShKuvvpopU6Y4Xgdg3bp1\nXHnlldSuXZuEhAQGDhzIV199FdGaMfy+EQu6MVR4ZGZm0r59ey666CLi4+Pp27cvq1evdrTW//73\nP2bNmsX69evZsmUL8+bNY9euXY73duDAgTIUuBo1anDgwAHH68Xw+0cs6MZQ4dGgQQMyMjIoLCxE\nVVVDiMYJtm/fTtu2bUlOTiYuLo6OHTvyxRdfON5beWsxxPD7QyzoxlDh0axZM+666y5atWpF06ZN\nAbjnnnscrXX11VezcuVKTp48SUFBAfPnz2f//v2O91a9enX27dtn/P++ffuoUaOG4/Vi+P0j1kiL\nIQabeOedd5g+fTopKSk0btyYpKQkJk2a5Ggtr9dL/fr1Wbp0KdWqVaNNmzaxRloFRyzTjSEGmxgx\nYgSZmZksX76cypUrU79+fcdrxcfH8/rrr9OlSxcaNWrEgAEDYgG3giOW6cYQg00cPXqUKlWq8Ntv\nv9GlSxfWrl1LWlraud5WDOcJYtoLMcRgE/369ePEiRMkJCQwffr0WMCNwRZimW4MMcQQw1lErKYb\nQwwxxHAWEQu6McQQQwxnEf8PTqNicpLbNB0AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xaf62438>"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "For plane(1 1 1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Plane drawing 3\n",
+ "\n",
+ "from mpl_toolkits.mplot3d import Axes3D\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "point = np.array([1, 1, 1])\n",
+ "normal = np.array([1, 1, 1])\n",
+ "\n",
+ "# calculations\n",
+ "d = -point.dot(normal)\n",
+ "x, y = np.meshgrid(range(10), range(10)) # create x,y\n",
+ "z = (-normal[0] * x - normal[1] * y - d) * 1. / normal[2] # calculate corresponding z\n",
+ "\n",
+ "# Result\n",
+ "plt3d = plt.figure().gca(projection='3d')\n",
+ "plt3d.plot_surface(x, y, z, rstride=1, cstride=1)\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xad8ab00>"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.25, page no-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# InterPlanar Spacing\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "theta=12 # glancing angle\n",
+ "lam=2.82*10**-10 # interplanar spacing\n",
+ "n=1.0 # order of diffraction\n",
+ "\n",
+ "#Calculation\n",
+ "d=n*lam/(2*math.sin(theta*math.pi/180))\n",
+ "\n",
+ "#Result\n",
+ "print('The interplanar spacing is %.3f *10^-10 m'%(d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The interplanar spacing is 6.782 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.26, page no-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice spacing and deBroglie wavelength\n",
+ "\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "theta=27.5/2 # glancing angle \n",
+ "a=0.563*10**-9 # lattice constant\n",
+ "n=1.0 # order of diffraction\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis\n",
+ "\n",
+ "#calaculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "lam=2*d*math.sin(theta*math.pi/180)/n\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice spacing for the plane (111) is %.2f * 10^-10 m'%(d*10**10))\n",
+ "print('\\nThe deBroglie wavelength of the neutrons is %.3f *10^-10 m'%(lam*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The lattice spacing for the plane (111) is 3.25 * 10^-10 m\n",
+ "\n",
+ "The deBroglie wavelength of the neutrons is 1.545 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.27, page no-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice constant and atomic radius\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=0.0 # Miller indices wrt Z-axis\n",
+ "d=2*10**-10 #interplanar spacing\n",
+ "\n",
+ "#Calculation\n",
+ "a=d*math.sqrt(h**2+k**2+l**2)\n",
+ "R=a/(2*math.sqrt(2))\n",
+ "\n",
+ "#Result\n",
+ "print('The lattice constant is %.3f*10^-10 m\\nThe atomic radius of the crystal is %.1f *10^-10 m'%(a*10**10,R*10**10))\n",
+ "\n",
+ "#Answer in the book for lattice constant is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice constant is 2.828*10^-10 m\n",
+ "The atomic radius of the crystal is 1.0 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.28, page no-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#energy of the neutron\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "theta=22 # glancing angle\n",
+ "d=1.8*10**-10 # interplanar spacing\n",
+ "n=1.0 # order of diffraction\n",
+ "h=6.626*10**-34 # planck's constant\n",
+ "m=9.11*10**-31 # mass of an atom kg\n",
+ "e=1.609*10**-19 # Charge of an electron\n",
+ "\n",
+ "#calculations\n",
+ "lam=2*d*math.sin(theta*math.pi/180)/n\n",
+ "lam= math.ceil(lam*10**13)/10**13\n",
+ "E=(1/(2*m))*(h/lam)**(2)\n",
+ "\n",
+ "#result\n",
+ "print('\\nThe deBroglie wavelength of the neutron is %.3f *10^-10\\nthe energy of the neutron is %.3f eV'%(lam*10**10,E/e))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The deBroglie wavelength of the neutron is 1.349 *10^-10\n",
+ "the energy of the neutron is 82.295 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.29, page no-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# InterPlanar Spacing\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis\n",
+ "a=3*10**-10 # lattice spacing\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe interplanar spacing for the plane(%d%d%d) is %.3f*10^-10 m'%(h,k,l,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The interplanar spacing for the plane(111) is 1.732*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.30, page no-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice spacing from Miller indices \n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=3.0 # Miller indices wrt X-axis\n",
+ "k=2.0 # Miller indices wrt Y-axis\n",
+ "l=1.0 # Miller indices wrt Z-axis \n",
+ "rfcc=0.1278*10**-9 # Atomic radius at Fcc State\n",
+ "\n",
+ "#calculation\n",
+ "a=4*rfcc/math.sqrt(2)\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe lattice constant = %.3f *10^-10\\nThe interplanar spacing for the plane(%d%d%d) is %.2f*10^-11 m'%(a*10**10,h,k,l,d*10**11))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The lattice constant = 3.615 *10^-10\n",
+ "The interplanar spacing for the plane(321) is 9.66*10^-11 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.31, page no-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Number of atoms in Al foil\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a=0.4049*10**-10 # lattice constant\n",
+ "t=0.005 # thickness of the coil\n",
+ "A=25*10**-2 # Area of the foil\n",
+ "\n",
+ "#calculation\n",
+ "n=t*A/a**3\n",
+ "\n",
+ "#Result\n",
+ "print('The number of atoms in the Al foil is %.2f * 10^28'%(n*10**-28))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of atoms in the Al foil is 1.88 * 10^28\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.32, page no-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# energy of the neutron\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "theta=20 # glancing angle\n",
+ "d=2*10**-10 # interplanar spacing\n",
+ "n=1.0 # order of diffraction\n",
+ "h=6.626*10**-34 # planck's constant\n",
+ "m=1.67*10**-27 # mass of an atom\n",
+ "e=1.609*10**-19 # charge of an electron\n",
+ "\n",
+ "#Calculation\n",
+ "lam=2*d*math.sin(theta*math.pi/180)/n\n",
+ "E=(1/(2*m))*(h/lam)**(2)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe deBroglie wavelength of the neutron is %.3f *10^-10\\nthe energy of the neutron is %.5f eV'%(lam*10**10,E/e))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The deBroglie wavelength of the neutron is 1.368 *10^-10\n",
+ "the energy of the neutron is 0.04365 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.35, page no-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# deBroglie wavelength of electrons\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "e=1.602*10**-19 # charge of an electron\n",
+ "h=6.626*10**-34 # planck's constant\n",
+ "m=9.11*10**-31 # mass of an electron\n",
+ "ek=235.2*e # kinetic energy\n",
+ "n=1.0 # order of diffraction\n",
+ "theta=9.21 # glancing angle\n",
+ "\n",
+ "#Calculation\n",
+ "lam=h/math.sqrt(2*m*ek)\n",
+ "d=n*lam/(2*math.sin(theta*math.pi/180))\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe deBroglie wavelength of electron is %.3f *10^-11 m\\nThe interplanar spacing is %.3f *10^-10 m'%(lam*10**11,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The deBroglie wavelength of electron is 7.997 *10^-11 m\n",
+ "The interplanar spacing is 2.498 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.36, page no-52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Lattice spacing from Miller indices\n",
+ "\n",
+ "import math\n",
+ "# Intercepts are in the ratio 3a:4b along X,Y and parallel to Z axis\n",
+ "# x-intercept 3, y-intercept 4 and z-intercept infinity \n",
+ "\n",
+ "#variable declaration\n",
+ "a=2.0*10**-10 # 2 Angstrom\n",
+ "h=4.0 # Miller indices wrt X-axis\n",
+ "k=3.0 # Miller indices wrt Y-axis\n",
+ "l=0.0 # Miller indices wrt Z-axis\n",
+ "\n",
+ "#calculation\n",
+ "d=a/math.sqrt(h**2+k**2+l**2)\n",
+ "\n",
+ "#result\n",
+ "print('The lattice spacing for the plane (%d%d%d) is %.1f*10^-10 m'%(h,k,l,d*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lattice spacing for the plane (430) is 0.4*10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.38, page no-53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Plane Drawing\n",
+ "print('Same as example 2.24 of the same chapter')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Same as example 2.24 of the same chapter\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_20.ipynb b/Material_Science/material_science_ch_20.ipynb
new file mode 100755
index 00000000..e8399c64
--- /dev/null
+++ b/Material_Science/material_science_ch_20.ipynb
@@ -0,0 +1,141 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20: Super Conducting Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.2, page no-568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Critical field\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h0=0.0306 # critical field\n",
+ "t1=2.0 # Temperature \n",
+ "t2=3.7 # Temperature corresponds to h0\n",
+ "\n",
+ "#calculation\n",
+ "he=h0*(1-((t1**2)/t2**2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The critical field at %d K is %.5f T\"%(t1,he))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The critical field at 2 K is 0.02166 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.3, page no-569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Critical current for a wire\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "t1=4.2 # Temperature \n",
+ "t2=7.18 # critical Temperature\n",
+ "h0=6.5*10**4 # critical magnetic field\n",
+ "\n",
+ "#calculations\n",
+ "he=h0*(1-((t1**2)/t2**2)) \n",
+ "r=0.5*10**-3\n",
+ "I=2*3.14*he*r\n",
+ "\n",
+ "#Result\n",
+ "print(\"The critical current through a wire of lead is %.2f A\"%I)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The critical current through a wire of lead is 134.26 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20.4, page no-570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#critical temperature\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "tc1=4.185 # Critical temperature of lead\n",
+ "m1=199.5 # isotopic mass 1\n",
+ "m2=203.4 # isotopic mass 2\n",
+ "\n",
+ "#calculation\n",
+ "tc2=tc1* math.sqrt(m1/m2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The critical temperature for metal with isotopic mass of %.1f is %.3f K\"%(m2,tc2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The critical temperature for metal with isotopic mass of 203.4 is 4.145 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_23.ipynb b/Material_Science/material_science_ch_23.ipynb
new file mode 100755
index 00000000..eaf63439
--- /dev/null
+++ b/Material_Science/material_science_ch_23.ipynb
@@ -0,0 +1,113 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23: Polymer Materials"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.1, page no-625"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sulphur required for final rubber product\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "p_wt=500 # weight of final rubber product\n",
+ "w1= 32.0 # atomic weight of sulphur\n",
+ "w2= 54.0 # weight of monomer unit\n",
+ "\n",
+ "#Calculation\n",
+ "s_req=w1/(w1+w2)\n",
+ "s_req= math.floor(s_req*100)/100\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print('Therefore, sulphur required for %d *10^3 kg of final rubber product = %d * 10^-3 kg'%(p_wt,s_req*p_wt))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Therefore, sulphur required for 500 *10^3 kg of final rubber product = 185 * 10^-3 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23.2, page no-625"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Photon energy to break C C bond\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "E=370*10**3 # energy of c-c bond j/mol\n",
+ "lam=3200*10**-10 # wavelength of UV light\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "c=3*10**8 # speed of light\n",
+ "\n",
+ "#Calculation\n",
+ "E1=h*c/lam\n",
+ "Ec=E/(6.02*10**23)\n",
+ "\n",
+ "#Result\n",
+ "print('\\nE=%.1f*10^-19 J'%(E1*10**19))\n",
+ "print('\\nThe Energy of c-c Bond = %.1f * 10^-19'%(Ec*10**19))\n",
+ "print('\\n\\nThe UV light photon energy is sufficient to break a C-C bond.\\nTherefore, the polymer deteriorates under the influence of UV light')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "E=6.2*10^-19 J\n",
+ "\n",
+ "The Energy of c-c Bond = 6.1 * 10^-19\n",
+ "\n",
+ "\n",
+ "The UV light photon energy is sufficient to break a C-C bond.\n",
+ "Therefore, the polymer deteriorates under the influence of UV light\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_3.ipynb b/Material_Science/material_science_ch_3.ipynb
new file mode 100755
index 00000000..d35a7360
--- /dev/null
+++ b/Material_Science/material_science_ch_3.ipynb
@@ -0,0 +1,361 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Characterisation of material"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, page no-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# wavelength and frequency of X-rays\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "c=3.0*10**8 # speed of light\n",
+ "v=10000.0 # Applied potential difference\n",
+ "\n",
+ "#Calculation\n",
+ "lam_min=(h*c)/(e*v)\n",
+ "V=c/lam_min\n",
+ "\n",
+ "#Result\n",
+ "print('\\n(i)\\nThe wavelength of X-rays emitted Lamda_min = %.2f A\u00b0\\n(ii)\\nThe frequency of X-ray beam emitted is %.1f*10^18 Hz'%(lam_min*10**10,V*10**-18))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "The wavelength of X-rays emitted Lamda_min = 1.24 A\u00b0\n",
+ "(ii)\n",
+ "The frequency of X-ray beam emitted is 2.4*10^18 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, page no-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# wavelength and velocity of electrons\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "\n",
+ "v=10000.0 # Applied potential difference\n",
+ "i=2*10**-3 # Current\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "t=1.0 # time in second\n",
+ "m=9.1*10**-31 # mass of an electrons\n",
+ "\n",
+ "#(i)\n",
+ "\n",
+ "#Calculation\n",
+ "n=i*t/e\n",
+ "\n",
+ "#Result\n",
+ "print('The no of electrons striking the target per second =%.2f *10^16'%(n*10**-16))\n",
+ "\n",
+ "#(ii)\n",
+ "\n",
+ "#Calculation\n",
+ "v1=math.sqrt(2*e*v/m)\n",
+ "\n",
+ "#(iii)\n",
+ "\n",
+ "#Calculation\n",
+ "lam=12400.0/v\n",
+ "\n",
+ "#Result\n",
+ "print('\\n(ii)\\nThe velocity of electron =%.2f*10^7 m/s\\n(iii)\\nWavelength of x-rays=%.2f A\u00b0'%(v1*10**-7,lam))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The no of electrons striking the target per second =1.25 *10^16\n",
+ "\n",
+ "(ii)\n",
+ "The velocity of electron =5.93*10^7 m/s\n",
+ "(iii)\n",
+ "Wavelength of x-rays=1.24 A\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, page no-90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# wavelength and angle for 2nd order bragg reflection\n",
+ "\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "d=5.6534*10**-10 # interplanar spacing\n",
+ "theta=13.6666 # glancing angle\n",
+ "n=1.0 # order of diffraction\n",
+ "\n",
+ "#(i)\n",
+ "#Calculation\n",
+ "lam=2*d*math.sin(theta*math.pi/180)/n\n",
+ "\n",
+ "#Result \n",
+ "print('\\n(i)\\nWavelength of the X-rays, Lambda =%.3f*10^-10 m'%(lam*10**10))\n",
+ "\n",
+ "#(ii)\n",
+ "#calculation\n",
+ "n=2.0\n",
+ "theta=math.asin(n*lam/(2*d))\n",
+ "theta=theta*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print('\\n(ii)\\n2nd order Bragg reflection at angle Theta2 = %f\u00b0'%theta)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "Lambda =2.671*10^-10 m\n",
+ "\n",
+ "(ii)\n",
+ "2nd order Bragg reflection at angle Theta2 = 28.199528\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, page no-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Grating spacing and glancing angle\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "v=24800.0 # Applied potential difference\n",
+ "n=1.0 # order of diffraction\n",
+ "lam=1.54*10**-10 # wavelength of the X-ray beam\n",
+ "ga=15.8 # glancing angle\n",
+ "\n",
+ "#(i)\n",
+ "\n",
+ "#calculation\n",
+ "d=n*lam/(2*math.sin(ga*math.pi/180))\n",
+ "\n",
+ "#Result\n",
+ "print('\\n(i)\\nGrating spacing for NaCl crystal =%.3f *10^-10 m'%(d*10**10))\n",
+ "\n",
+ "#(ii)\n",
+ "\n",
+ "#calculation\n",
+ "lam_min=12400.0/v\n",
+ "lam_min=lam_min*10**-10\n",
+ "theta=math.asin(n*lam_min/(2*d))\n",
+ "theta=theta*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print('\\n(ii)\\nGlancing angle for minimum wavelength = %.3f degrees'%theta)\n",
+ "# Glancing angle in the book is in the degree second format"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "Grating spacing for NaCl crystal =2.828 *10^-10 m\n",
+ "\n",
+ "(ii)\n",
+ "Glancing angle for minimum wavelength = 5.072 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, page no-92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# wavelength of radiation\n",
+ "\n",
+ "import math\n",
+ "#variable Declaration\n",
+ "lam=0.7078 *10**-10 # wavelength of Ka line from molybdenum\n",
+ "wt=42.0 # Atomic number of molybdenum\n",
+ "wt1=48.0 # Atomic number of cadmium\n",
+ "\n",
+ "#calculation\n",
+ "lam1=(lam*(wt-1)**2)/(wt1-1)**2\n",
+ "\n",
+ "#Result\n",
+ "print('\\nWavelength of cadmium radiation is %.4f A\u00b0'%(lam1*10**10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Wavelength of cadmium radiation is 0.5386 A\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, page no-92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Energy of thermal neutron\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "lam=10.0**-10 # Wavelength of neutron\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "m=1.675*10**-27 # mass of an electron\n",
+ "e1=1.602*10**-19 # charge of an electron\n",
+ "\n",
+ "#calculation\n",
+ "e=(h**2)/(2*m*lam**2)\n",
+ "e=e/e1\n",
+ "\n",
+ "#Result\n",
+ "print('\\nThe energy of thermal neutron with wavelength 1 A\u00b0 is %.2f eV'%e)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The energy of thermal neutron with wavelength 1A\u00b0 is 0.08 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, page no-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# effect of temperature on wavelength\n",
+ "\n",
+ "import math\n",
+ "#Variable Declaration\n",
+ "lam=0.1 # Wavelength of neutron in nm\n",
+ "\n",
+ "#calculation\n",
+ "T=(2.516**2)/(lam)**2\n",
+ "\n",
+ "#Result\n",
+ "print('Temperature of thermal neutron corresponding to 1 A\u00b0 is %.0f K'%T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of thermal neutron corresponding to 1 A\u00b0 is 633 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_4.ipynb b/Material_Science/material_science_ch_4.ipynb
new file mode 100755
index 00000000..779ecefd
--- /dev/null
+++ b/Material_Science/material_science_ch_4.ipynb
@@ -0,0 +1,61 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Cohesion between atoms"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, page no-92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Coulomb interatomic energy\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R=2.81*10**-10 # distance between oppositely charged ion\n",
+ "e=1.6*10**-19 # Charge of an electron\n",
+ "eps=8.854*10**-12 # epsilon\n",
+ "\n",
+ "#calculation\n",
+ "U=-(e**2)/(4*math.pi*eps*R)\n",
+ "\n",
+ "#Result\n",
+ "print('The Coulomb interatomic energy is %.2f eV'%(U*10**19/1.6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Coulomb interatomic energy is -5.12 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_5.ipynb b/Material_Science/material_science_ch_5.ipynb
new file mode 100755
index 00000000..8213c119
--- /dev/null
+++ b/Material_Science/material_science_ch_5.ipynb
@@ -0,0 +1,106 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Crystal Imperfections"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, page no-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average distance between dislocations\n",
+ "\n",
+ "import math \n",
+ "#variable Declarat\n",
+ "a=3.615*10**-10 # interatomic distance of copper\n",
+ "t_ang=0.75 # angle of tilting\n",
+ "h=1.0 # Miller indices wrt X-axis\n",
+ "k=1.0 # Miller indices wrt Y-axis\n",
+ "l=0.0 # Miller indices wrt Z-axis\n",
+ "\n",
+ "#calculation\n",
+ "d_110=a/math.sqrt(h**2+k**2+l**2)\n",
+ "D=d_110/math.tan(t_ang*math.pi/(180*2))\n",
+ "\n",
+ "#Result\n",
+ "print('The average distance between the dislocations is %.3f A\u00b0'%(D*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average distance between the dislocations is 0.039 A\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, page no-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Schottky defects per unit cell\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "lp=4.0185*10**-10 # lattice parameter\n",
+ "dens=4285.0 # Density of CsCl in kg/m^3\n",
+ "avg=6.022*10**26 # Avogadro's number\n",
+ "wt_cs=132.9 # Molecular weight of Cs\n",
+ "wt_cl=35.5 # Molecular weight of Cl\n",
+ "\n",
+ "#calculations\n",
+ "N=(dens*avg*lp**3)/(wt_cs+wt_cl)\n",
+ "sd=(1-N)*100.0/1.0\n",
+ "\n",
+ "#Result\n",
+ "print('The number of Schottky defects per unit cell = %.3f%%'%sd)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of Schottky defects per unit cell = 0.565%\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_6.ipynb b/Material_Science/material_science_ch_6.ipynb
new file mode 100755
index 00000000..b628e403
--- /dev/null
+++ b/Material_Science/material_science_ch_6.ipynb
@@ -0,0 +1,105 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Classification of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, page no-143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Wavelength of light emitted from LED\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "e=1.609*10**-19 # charge of an electron\n",
+ "eg=1.8 # energy band gap\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "c=3*10**8 # speed of light\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "E=e*eg\n",
+ "lamda=h*c/E\n",
+ "\n",
+ "#Result\n",
+ "print('The wavelength of light emitted from given LED is %.3f \u00b5m'%(lamda*10**7))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength of light emitted from given LED is 6.863 \u00b5m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, page no-144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Band gap of given GaAsP\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "lam=6715*10**-10 # wavelength of greenlight from mercury lamp\n",
+ "h=6.626*10**-34 # planck's constant\n",
+ "c=3*10**8 # speed of light\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "\n",
+ "#calculation\n",
+ "Eg=h*c/lam\n",
+ "Eg=Eg/e\n",
+ "\n",
+ "#Result\n",
+ "print('The band gap of the given GaAsP is %.1f eV'%(math.floor(Eg*10)/10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The band gap of the given GaAsP is 1.8 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_7.ipynb b/Material_Science/material_science_ch_7.ipynb
new file mode 100755
index 00000000..9cb2cb86
--- /dev/null
+++ b/Material_Science/material_science_ch_7.ipynb
@@ -0,0 +1,573 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Elecron theory of Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, page no-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Mobility ofelectrons\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rho=1.73*10**-8 # Resistivity of copper\n",
+ "z=63.5 # atomic weight of copper\n",
+ "d=8.92*10**3 # density of copper\n",
+ "avg=6.023*10**26 # Avogadro's number\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "m=9.11*10**-31 # mass of an electron\n",
+ "\n",
+ "#variable declaration\n",
+ "n=avg*d/z\n",
+ "sig=1/rho\n",
+ "tau=sig*m/(n*e**2)\n",
+ "mu=sig/(n*e)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Mobility of electrons in copper is %.2f *10^-3 m^2/V-s\"%(mu*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mobility of electrons in copper is 4.27 *10^-3 m^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, page no-161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Resistivity of copper\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "r=1.85*10**-10 # radius of the sodium atom\n",
+ "t=3*10**-14 # mean free time of sodium atom\n",
+ "m=9.11*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # charge of an atom\n",
+ "n= 2.0 # No of atoms per unit cell\n",
+ "\n",
+ "#calculations\n",
+ "a=r*(4.0/math.sqrt(3.0)) \n",
+ "a= math.floor(a*10**12)/10**12 \n",
+ "ne=n/a**3\n",
+ "ne= math.ceil(ne*10**-26)/10**-26\n",
+ "rho=m/(ne*t*e**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resistivity of copper is %.3f*10^-8 Ohm-m\"%(rho*10**8))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistivity of copper is 4.616*10^-8 Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, page no-161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Electrical resistivity of sodium\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "t=3.1*10**14 # mean free time of electron\n",
+ "m=9.11*10**-31 # mass of an electron\n",
+ "e=1.6*10**-19 # charge of an electron \n",
+ "n=25.33*10**27 # no of electrons per unit volume\n",
+ "\n",
+ "#calculations\n",
+ "rho=m/(n*t*e**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The electric resistivity of sodium at 0\u00b0C is %.3f*10^-36 Ohm-m\"%(rho*10**36))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electric resistivity of sodium at 0\u00b0C is 4.532*10^-36 Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4, page no-162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility of the electron\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "t=3.4*10**-14 # relaxation time of conduction electrons\n",
+ "m=9.11*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # charge of electron\n",
+ "n=5.8*10**28 # no of force electrons per unit volume\n",
+ "\n",
+ "#calculations\n",
+ "rho=m/(n*t*e**2)\n",
+ "print(\"\\nThe electric resistivity of material is %.3f*10^-8 Ohm-m\"%(rho*10**8))\n",
+ "mu=e*t/m\n",
+ "print(\"\\nThe mobility of the electron in a metal is %.2f*10^-3 m^2/v-s\"%(mu*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The electric resistivity of material is 1.805*10^-8 Ohm-m\n",
+ "\n",
+ "The mobility of the electron in a metal is 5.97*10^-3 m^2/v-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, page no-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# drift velocity\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "rho=1.54*10**-8 # resistivity of silver\n",
+ "E=100 # electric field along the wire\n",
+ "n=5.8*10**28 # carrier concentration of electron\n",
+ "e=1.6*10**-19 # charge on electron\n",
+ "\n",
+ "#calculation\n",
+ "mu=1/(rho*n*e)\n",
+ "vd=mu*E\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nMobility of electron in silvetr is %.4f*10^-3 m^2/v-s\\n\\nThe drift velocity of the electron in silver is %.5f m/s \"%(mu*10**3,vd))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Mobility of electron in silvetr is 6.9973*10^-3 m^2/v-s\n",
+ "\n",
+ "The drift velocity of the electron in silver is 0.69973 m/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6, page no-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# mobility ofelectron\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "d=10.5*10**3 # density of silver\n",
+ "sig=6.8*10**7 # conductivity of silver\n",
+ "wt=107.9 # atomic weight of silver\n",
+ "e=1.609*10**-19 # charge of electron\n",
+ "avg=6.023*10**26 # avogadro's number\n",
+ "\n",
+ "#calculations\n",
+ "n=avg*d/wt\n",
+ "mu=sig/(n*e)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The mobility of electron is %.2f *10^-2 m^2.V/s\"%(mu*10**2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mobility of electron is 0.72 *10^-2 m^2.V/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7, page no-164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lorentz number\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "sig=5.87*10**7 # electrical conductivity of copper\n",
+ "k=390.0 # thermal conductivity of copper\n",
+ "T=293.0 # temperature\n",
+ "\n",
+ "#calculation\n",
+ "L=k/(sig*T)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The Lorentz number is %.3f *10^-8 W.Ohm/K^2\"%(L*10**8))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Lorentz number is 2.268 *10^-8 W.Ohm/K^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8, page no-164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Lorentz number\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "t=1*10**-14 # relaxation time\n",
+ "T=300 # temperature\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # charge of electron\n",
+ "n=6*10**28 # electron concentration\n",
+ "\n",
+ "#calculations\n",
+ "sig=(n*t*e**2)/m\n",
+ "k=1.38*10**-23\n",
+ "k1=n*math.pi**2*k**2*T*t/(3*m)\n",
+ "L=k1/(sig*T)\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe electrical conductivity is %.4f * 10^7/ohm-m\"%(sig*10**-7))\n",
+ "print(\"\\n\\nThermal conductivity is %.2f W/m-k\"%k1)\n",
+ "print(\"\\n\\nThe Lorentz number is %.4f *10^-8 W.Ohm/k^2\"%(L*10**8))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The electrical conductivity is 1.6879 * 10^7/ohm-m\n",
+ "\n",
+ "\n",
+ "Thermal conductivity is 123.93 W/m-k\n",
+ "\n",
+ "\n",
+ "The Lorentz number is 2.4474 *10^-8 W.Ohm/k^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9, page no-165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Electrical conductivity\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "d=8900 # Density of copper\n",
+ "cu=63.5 # Atomic weight of Cu\n",
+ "t=10**-14 # Relaxation time\n",
+ "avg=6.022*10**23 # Avogadro's number\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # charge of electron\n",
+ "\n",
+ "#Calculations\n",
+ "n=avg*d*1000/cu\n",
+ "sig=(n*t*e**2)/m\n",
+ "print(\"The electrical conductivity is %.3f *10^7 /Ohm-m\"%(sig*10**-7))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electrical conductivity is 2.374 *10^7 /Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.10, page no-166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Drift velocity of electrons\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "rho=1.6*10**-8 # resistivity of the silver piece\n",
+ "e=1.603*10**-19 # charge of an electron\n",
+ "fe=5.5*e # energy of the silver\n",
+ "avg=6.023*10**23 # avogadro's number\n",
+ "d=1.05*10**4 # density of silver\n",
+ "wt=107.9*10**-3 # atomic weight of silver\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "c=3*10**8 # speed of light\n",
+ "\n",
+ "#calculations\n",
+ "sig=1/rho\n",
+ "n=avg*d/wt\n",
+ "t=sig*m/(n*e**2)\n",
+ "lam=c*t\n",
+ "vd=sig*100/(n*e)\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe conductivity of silver piece is %.2f*10^7 per Ohm-m\\n\\nThe relaxation time is %.2f*10^-14 s\"%(sig*10**-7,t*10**14))\n",
+ "print(\"\\nThe drift velocity of electrons in the silver piece is %.2f m/s\"%(math.floor(vd*100)/100))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The conductivity of silver piece is 6.25*10^7 per Ohm-m\n",
+ "\n",
+ "The relaxation time is 3.78*10^-14 s\n",
+ "\n",
+ "The drift velocity of electrons in the silver piece is 0.66 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11, page no-167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# resistivityy of the copper\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "r1=1.7*10**-8 # resistivity of copper at T1\n",
+ "t2=300.0 # temperature(T1)\n",
+ "t1=700.0+273 # temperature(T2)\n",
+ "\n",
+ "#calculation\n",
+ "r2=r1*math.sqrt((t1/t2))\n",
+ "print(\"The resistivityy of the copper wire is %.4f*10^-8 Ohm-m\"%(r2*10**8))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The resistivityy of the copper wire is 3.0616*10^-8 Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12, page no-168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Relaxation time, Drift velocity, Fermi velocity, mean free path\n",
+ "\n",
+ "import math\n",
+ "#variable declarations\n",
+ "rho=1.54*10**-8 # Resistivity \n",
+ "e=1.6*10**-19 # charge of electron\n",
+ "ef=5.5*e # Fermi energy\n",
+ "n=5.8*10**28 # concentration of electrons\n",
+ "m=9.1*10**-31 # mass of electron \n",
+ "\n",
+ "#(i)\n",
+ "t=m/(rho*n*e**2)\n",
+ "mu=e*t/m\n",
+ "print(\"\\n(i)\\nThe relaxation time is %.2f*10^-14 s\\nThe mobility of the electrons is %.4f *10^-3 m^2/V-s\"%(t*10**14,mu*10**3))\n",
+ "\n",
+ "#(ii)\n",
+ "vd=e*t*100/m\n",
+ "print(\"\\n\\n(ii)\\nthe drift velocity of elctron is %.5f m/s\"%vd)\n",
+ "\n",
+ "#(iii)\n",
+ "vf=math.sqrt(2*ef/m)\n",
+ "print(\"\\n\\n(iii)\\nFermi velocity is %.2f*10^6 m/s\"%(vf*10**-6))\n",
+ "\n",
+ "#(iv)\n",
+ "lam=vf*t\n",
+ "print(\"\\n\\n(iv)\\nThe mean free path is %.3f*10^-8 m\"%(lam*10**8))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)\n",
+ "The relaxation time is 3.98*10^-14 s\n",
+ "The mobility of the electrons is 6.9973 *10^-3 m^2/V-s\n",
+ "\n",
+ "\n",
+ "(ii)\n",
+ "the drift velocity of elctron is 0.69973 m/s\n",
+ "\n",
+ "\n",
+ "(iii)\n",
+ "Fermi velocity is 1.39*10^6 m/s\n",
+ "\n",
+ "\n",
+ "(iv)\n",
+ "The mean free path is 5.535*10^-8 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/material_science_ch_8.ipynb b/Material_Science/material_science_ch_8.ipynb
new file mode 100755
index 00000000..400defda
--- /dev/null
+++ b/Material_Science/material_science_ch_8.ipynb
@@ -0,0 +1,853 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8.: Statics and Band theory of Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, page no-208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi Energy of metals\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "d_cu=8.96*10**3 # density of cu\n",
+ "a_cu=63.55 # Atomic weight of cu\n",
+ "d_z=7.14*10**3 # density of Zn \n",
+ "a_z=65.38 # Atomic weight of Zn\n",
+ "d_al=2700 # density of Al\n",
+ "a_al=27 # Atomic weight of Al \n",
+ "avg=6.022*10**26 # Avogadro's number \n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # mass of an electrons\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "\n",
+ "\n",
+ "\n",
+ "#(i)\n",
+ "\n",
+ "# Calculations\n",
+ "n_cu=d_cu*avg/a_cu\n",
+ "e_cu=(h**2/(8*m))*(3*n_cu/math.pi)**(2.0/3.0)\n",
+ "e_cu=e_cu/e\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\n(i)For Cu\\nThe electron concentration in Cu is %.4f*10^28 per m^3\\nFermi energy at 0 k =%.4f eV \"%(n_cu*10**-28,e_cu))\n",
+ "\n",
+ "#(ii)\n",
+ "\n",
+ "# calculations\n",
+ "n_z=d_z*avg*2/a_z\n",
+ "e_z=(h**2/(8*m))*(3*n_z/math.pi)**(2.0/3.0)\n",
+ "e_z=e_z/e\n",
+ "\n",
+ "# Result\n",
+ "print(\"\\n(ii)For Zn\\nThe electron concentration in Zn is %.5f*10^28 per m^3\\nFermi energy at 0 k =%.2f eV \"%(n_z*10**-28,e_z))\n",
+ "\n",
+ "#(iii)\n",
+ "\n",
+ "# Calculations\n",
+ "n_al=d_al*avg*3/a_al\n",
+ "e_al=(h**2/(8*m))*(3*n_al/math.pi)**(2.0/3.0)\n",
+ "e_al=e_al/e\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\n(iii)For Al\\nThe electron concentration in Al is %.3f*10^28 per m^3\\nFermi energy at 0 k =%.2f eV \"%(n_al*10**-28,e_al))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(i)For Cu\n",
+ "The electron concentration in Cu is 8.4905*10^28 per m^3\n",
+ "Fermi energy at 0 k =7.0608 eV \n",
+ "\n",
+ "(ii)For Zn\n",
+ "The electron concentration in Zn is 13.15298*10^28 per m^3\n",
+ "Fermi energy at 0 k =9.45 eV \n",
+ "\n",
+ "(iii)For Al\n",
+ "The electron concentration in Al is 18.066*10^28 per m^3\n",
+ "Fermi energy at 0 k =11.68 eV \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, page no-210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Density of states for Cu\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "avg=6.023*10**26 # avogadro's number\n",
+ "h=6.626*10**-34 # Planck's constant \n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "n=8.4905*10**28 # sphere of radius\n",
+ "gam=6.82*10**27 # gamma\n",
+ "\n",
+ "# Calculations\n",
+ "ef=(h**2/(8*m))*(3*n/math.pi)**(2.0/3.0)\n",
+ "ef=ef/e\n",
+ "x=(gam*math.sqrt(ef))/2\n",
+ "\n",
+ "#Result\n",
+ "print(\"The density of states for Cu at the Fermi level for T = 0 K is %.0f*10^27 m^-3\"%(x*10**-27))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of states for Cu at the Fermi level for T = 0 K is 9*10^27 m^-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, page no-210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Nordheims coeeficient\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "rni=63 # Resistivity of Ni\n",
+ "rcr=129 # Resistivity of Cr\n",
+ "k=1120 # Resistivity of 80% Ni + 20% Cr\n",
+ "\n",
+ "#Calculations\n",
+ "c=(k*10**-9)/(0.8*(1-0.8))\n",
+ "\n",
+ "#Result\n",
+ "print(\"The Nordheims coeeficient is %.0f *10^-6 Ohm-m\"%(c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Nordheims coeeficient is 7 *10^-6 Ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, page no-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Conductivity of Al\n",
+ "\n",
+ "import math\n",
+ "#Variable declaaration\n",
+ "d=2700 # Density of Al\n",
+ "awt=27 # Atomic weight\n",
+ "t=10**-14 # Relaxation time\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "avg=6.022*10**26 # Avogadros number\n",
+ "\n",
+ "# calculation\n",
+ "n=avg*d*3/awt\n",
+ "sig=(n*t*e**2)/m\n",
+ "\n",
+ "#Result\n",
+ "print(\"The conductivity of Al is %.4f*10^7 ohm-m.\"%(sig*10**-7))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The conductivity of Al is 5.0823*10^7 ohm-m.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, page no-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Fermi distribution function\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "e1=0.01 # difference between energy level to fermi level in eV\n",
+ "e=1.6*10**-19 # charge of an electron\n",
+ "ed=e*e1 # difference between energy level to fermi level in J\n",
+ "T=200 # Temperature\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "# Calculations\n",
+ "E=1/(1+math.e**(ed/(T*k)))\n",
+ "print(\"The Fermi distribution function for energy E is %.4f\"%E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi distribution function for energy E is 0.3590\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, page no-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi energy and fermi temperature\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "v=0.86*10**6 # velocity of electron\n",
+ "m=9.11*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # electronic charge \n",
+ "k=1.38*10**-23 # Boltzmann's constant \n",
+ "\n",
+ "#calculations\n",
+ "E=(m*v**2)/2\n",
+ "E= math.floor(E*10**22)/10**22\n",
+ "T=E/k\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe fermi energy is %.3f*10^-19 J\\nThe Fermi Temperature Tf is %.2f*10^4 K\"%(E*10**19,T*10**-4))\n",
+ "# answer in the book for Temperature id 2.43 x 10^4"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The fermi energy is 3.368*10^-19 J\n",
+ "The Fermi Temperature Tf is 2.44*10^4 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, page no-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# No of states lying between energy levels\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "dE=0.01 # energy interval\n",
+ "h=6.63*10**-34 # planck's constant\n",
+ "eF=3.0 # Fermi energy\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#Calculations\n",
+ "E1=eF*e\n",
+ "E2=E1+e*dE\n",
+ "n=(4*math.pi*(2*m)**(1.5))/h**3\n",
+ "k=((2*0.3523/3)*((E2**(1.5)-(E1**(1.5)))))\n",
+ "n=n*k\n",
+ "\n",
+ "#Result\n",
+ "print(\"The number of states lying between the energy level is %.2f*10^25\"%(n*10**-25))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of states lying between the energy level is 4.14*10^25\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, page no-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Fermi Velocity\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Tf=24600 # Fermi temperature of the metal\n",
+ "m=9.11*10**-31 # mass of electron\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "#Calculations\n",
+ "vf=math.sqrt(2*k*Tf/m)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The Fermi Velocity is %.4f *10^6 m/s\"%(vf*10**-6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi Velocity is 0.8633 *10^6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9, page no-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Fermi energy\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "n=18.1*10**28 # elecron density of electron\n",
+ "h=6.62*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#calculations\n",
+ "ef=((3*n/(8*math.pi))**(2.0/3.0))*((h**2)/(2*m))\n",
+ "ef=ef/e\n",
+ "ef=math.ceil(ef*100)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"The Fermi energy at 0 K is %.2f eV \"%(ef))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi energy at 0 K is 11.68 eV \n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10, page no-215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Fermi energy \n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "n=18.1*10**28 # elecron density of electron\n",
+ "h=6.62*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#calculations\n",
+ "ef=((3*n/(8*math.pi))**(2.0/3.0))*((h**2)/(2*m))\n",
+ "ef=ef/e\n",
+ "ef=math.ceil(ef*100)/100\n",
+ "\n",
+ "#result\n",
+ "print(\"The Fermi energy at 0 K is %.2f eV \"%ef)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi energy at 0 K is 11.68 eV \n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11, page no-215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Temperature calculation\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "Ed=0.5*e # difference between energy level to fermi level\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "x=0.01 # probability\n",
+ "\n",
+ "#Calculaations\n",
+ "T=Ed/(k*math.log((1/x)-1))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Temperature at which there is 1%% probability that a state with 0.5 eV energy occupied above the Fermi energy level is %.1f K\"%T)\n",
+ "#answer is not matching with the answer given in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature at which there is 1% probability that a state with 0.5 eV energy occupied above the Fermi energy level is 1261.6 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, page no-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#energies for the occupying of electrons\n",
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "ef=2.1 # Fermi energy\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "T=300 # Temperature\n",
+ "e=1.6*10**-19 # Electronic charge\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#(i)\n",
+ "p1=0.99 # probability\n",
+ "E1=ef+(k*T*math.log(-1+1/p1))/e\n",
+ "\n",
+ "#(ii)\n",
+ "p2=0.01 # probability\n",
+ "E2=ef+(k*T*math.log(-1+1/p2))/e\n",
+ "\n",
+ "#(iii)\n",
+ "p3=0.5 # probability\n",
+ "E3=ef+(k*T*math.log(-1+1/p3))/e\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print(\"\\nThe energies for the occupying of electrons at %d K for the probability of %.2f are %.2f eV\"%(T,p1,E1))\n",
+ "\n",
+ "print(\"\\nThe energies for the occupying of electrons at %d K for the probability of %.2f are %.2f eV\"%(T,p2,E2))\n",
+ "\n",
+ "print(\"\\nThe energies for the occupying of electrons at %d K for the probability of %.2f are %.2f eV\"%(T,p3,E3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The energies for the occupying of electrons at 300 K for the probability of 0.99 are 1.98 eV\n",
+ "\n",
+ "The energies for the occupying of electrons at 300 K for the probability of 0.01 are 2.22 eV\n",
+ "\n",
+ "The energies for the occupying of electrons at 300 K for the probability of 0.50 are 2.10 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, page no-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi distribution function\n",
+ "\n",
+ "import math\n",
+ "# Variable declarations\n",
+ "e=1.6*10**-19 # Electronic charge\n",
+ "ed=0.02*e # difference between energy level to fermi level\n",
+ "T1=200 # Temperature 1\n",
+ "T2=400 # Temperature 2\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "#Calculations\n",
+ "fe1=1/(1+math.e**(ed/(k*T1)))\n",
+ "fe2=1/(1+math.e**(ed/(k*T2)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe Fermi distribution function for the given energy at %d K is %.5f\"%(T1,fe1))\n",
+ "print(\"\\nThe Fermi distribution function for the given energy at %d K is %.4f\"%(T2,fe2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Fermi distribution function for the given energy at 200 K is 0.23877\n",
+ "\n",
+ "The Fermi distribution function for the given energy at 400 K is 0.3590\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, page no-220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi energy for given metal\n",
+ "\n",
+ "import math\n",
+ "#Variaable declaration\n",
+ "d=10500 # Density of the metal\n",
+ "avg=6.022*10**26 # Avogadro's number\n",
+ "awt=107.9 # Atomic weight of metal\n",
+ "h=6.62*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # mass of an electron\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "\n",
+ "#Calculattions\n",
+ "n=d*avg/awt\n",
+ "ef=((3*n/(8*math.pi))**(2.0/3.0))*((h**2)/(2*m))\n",
+ "ef=ef/e\n",
+ "\n",
+ "#Result\n",
+ "print(\"The Fermi energy for given metal is %.1f eV \"%ef)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Fermi energy for given metal is 5.5 eV \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, page no-221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fermi distribution function \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19 # electronic charge\n",
+ "ed=0.2*e # difference between energy level to Fermi level\n",
+ "T1=300 # Temperature 1\n",
+ "T2=1000 # Temperature 2\n",
+ "k=1.38*10**-23 # Boltzmann's constant\n",
+ "\n",
+ "#Calculations\n",
+ "fe1=1/(1+math.e**(ed/(k*T1)))\n",
+ "fe2=1/(1+math.e**(ed/(k*T2)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"\\nThe Fermi distribution function for the given energy at %d K is %.7f\"%(T1,fe1))\n",
+ "print(\"\\nThe Fermi distribution function for the given energy at %d K is %.4f\"%(T2,fe2))\n",
+ "# Answer for 300 K is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Fermi distribution function for the given energy at 300 K is 0.0004395\n",
+ "\n",
+ "The Fermi distribution function for the given energy at 1000 K is 0.0896\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, page no-221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Free electrons concentration\n",
+ "\n",
+ "import math\n",
+ "#Variable declarations\n",
+ "h=6.62*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # Mass of electron\n",
+ "e=1.6*10**-19 # Charge of an electron\n",
+ "ef=3*e # Fermi Energy\n",
+ "\n",
+ "#Calculations\n",
+ "k=((3/(8*math.pi))**(2.0/3.0))*((h**2)/(2*m))\n",
+ "k=ef/k\n",
+ "n=k**(1.5)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The number of free electrons concentration in metal is %.2f *10^28 per cubic meter \"%(n*10**-28))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of free electrons concentration in metal is 2.36 *10^28 per cubic meter \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, page no-221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Free electrons concentration in metal \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # Mass of electron\n",
+ "e=1.6*10**-19 # Charge of electron\n",
+ "ef=5.5*e # Fermi energy\n",
+ "\n",
+ "# Calculation\n",
+ "k=((3/(8*math.pi))**(2.0/3.0))*((h**2)/(2*m))\n",
+ "k=ef/k\n",
+ "n=k**(1.5)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The number of free electrons concentration in metal is %.3f * 10^28 per cubic meter \"%(n*10**-28))\n",
+ "#Answer is matching with the answer given in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of free electrons concentration in metal is 5.837 * 10^28 per cubic meter \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, page no-221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# electrons concentration and termal velocity of electrons\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "h=6.626*10**-34 # Planck's constant\n",
+ "m=9.1*10**-31 # mass of electron\n",
+ "e=1.6*10**-19 # charge of electron\n",
+ "ef=7*e # Fermi energy\n",
+ "\n",
+ "#calculations\n",
+ "k=((3/(8*math.pi))**(2.0/3.0))*((h**2)/(2*m))\n",
+ "k=ef/k\n",
+ "n=k**(1.5)\n",
+ "vth=math.sqrt(2*ef/m)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The number of free electrons concentration in metal is %.2f *10^28 per cubic meter \"%(math.ceil(n*10**-28*10**2)/10**2))\n",
+ "print(\"\\nThe termal velocity of electrons in copper is %.3f *10^6 m/s\"%(math.floor(vth*10**-6*10**3)/10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of free electrons concentration in metal is 8.39 *10^28 per cubic meter \n",
+ "\n",
+ "The termal velocity of electrons in copper is 1.568 *10^6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Material_Science/screenshots/pl.png b/Material_Science/screenshots/pl.png
new file mode 100755
index 00000000..d762198f
--- /dev/null
+++ b/Material_Science/screenshots/pl.png
Binary files differ
diff --git a/Material_Science/screenshots/plane.png b/Material_Science/screenshots/plane.png
new file mode 100755
index 00000000..3ae05c93
--- /dev/null
+++ b/Material_Science/screenshots/plane.png
Binary files differ
diff --git a/Material_Science/screenshots/pln.png b/Material_Science/screenshots/pln.png
new file mode 100755
index 00000000..01fcaaa4
--- /dev/null
+++ b/Material_Science/screenshots/pln.png
Binary files differ
diff --git a/Mechanics_of_Structures/Chapter1.ipynb b/Mechanics_of_Structures/Chapter1.ipynb
new file mode 100755
index 00000000..339836e5
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter1.ipynb
@@ -0,0 +1,745 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9ca9b2e0d1cc4391d74881e14e5e9fe9e8aa0cd9b6ad3418d2abbf628f065e94"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1-Simple stresses and strains"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math\n",
+ "#calculate the elongnation of the bar \n",
+ "P = 5.5 ;##Axial pull in tons\n",
+ "E = 13000 ;##modulus of elasticity tons/in^2\n",
+ "l = 120 ;##length in inches\n",
+ "A = math.pi/4. ;##Area of resisting section in^2\n",
+ "p = P/A ;##Intensity of stress in tons/in^2\n",
+ "e = p/E ;##strain\n",
+ "delta_l = l*e;##elongation of the bar in inches\n",
+ "print'%s %.4f %s'%('The elongation of the bar is',delta_l,'inch');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The elongation of the bar is 0.0646 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the minimum diameter d of each stay bolt\n",
+ "s_p = 200.;##steam pressure in lb/in^2\n",
+ "l = 4.;##length in inches\n",
+ "b = 4.;##breadth in inches\n",
+ "p = 14000.;##permissible streaa in lb/in^2\n",
+ "P = s_p*l*b;##Pull on each bolt in lb-wt\n",
+ "A = P/p ;##necessary area of bolt-section\n",
+ "d = math.sqrt(4*A/math.pi) ;##minimum diameter in inches\n",
+ "print'%s %.2f %s'%('The minimum diameter d of each stay bolt =',d,'inch');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum diameter d of each stay bolt = 0.54 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the safe load in tons\n",
+ "D = 8.;##external diameter in inches \n",
+ "d = 6.;##internal diameter in inches\n",
+ "sigma = 36.;##ultimate stress in tons/in^2\n",
+ "n = 6.;##safety factor\n",
+ "A = 0.25*math.pi*(D**2 - d**2);##Area of section in in^2\n",
+ "P = sigma*A; ##crushing load for the column in tons \n",
+ "P_safe = P/n ;##safe load in tons\n",
+ "print'%s %.2f %s'%('Safe load =',P_safe,'tons'); \n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe load = 131.95 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate compressive stress of the punch\n",
+ "sigma = 20.;##ultimate sheat stress in tons/in^2\n",
+ "d = 1./2.;##diameter of the hole in inches\n",
+ "t = 3./8.;##thickness of the plate in inches\n",
+ "A = 0.25*math.pi*d**2;##area of the cross-section of the punch in^2\n",
+ "P = math.pi*d*t*sigma;##necessary force in tons\n",
+ "sigma_comp = P/A;##compressive stress on the punch\n",
+ "print'%s %.1f %s'%('The compressive stress of the punch =',sigma_comp,'tons/in^2');\n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The compressive stress of the punch = 60.0 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in volume \n",
+ "b = 8.;##width in inches\n",
+ "t = 3./8.;##thickness in inches\n",
+ "l = 20.;##length in feets\n",
+ "P = 22.;##pull in tons\n",
+ "E = 13500.;##modulus of elasticity in tons/in^2\n",
+ "sigma = 0.3;##poisson/s ratio\n",
+ "A = b*t;##in in^2\n",
+ "V = l*A*12;##in cub.inch\n",
+ "p = P/A;##in tons/in^2\n",
+ "e = p/E;\n",
+ "delta_l = e*l*12;##stretch of the bar in inches\n",
+ "Lateral_strain = e*sigma ;##lateral strain\n",
+ "del_b = b*Lateral_strain;##in inches\n",
+ "del_t = t*Lateral_strain;##in inches\n",
+ "k = e*(1-2*sigma);##(del_V)/(V)\n",
+ "del_V = k*V;##change in volume in cub.inch\n",
+ "print'%s %.3f %s'%('The change in volume is',del_V,'cub.inch');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in volume is 0.156 cub.inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate contraction in diameter and change in volume and work done in streching the bar \n",
+ "d = 7./8.;##diameter of the bar in inches\n",
+ "l = 10.;##length in feets\n",
+ "P = 6.;##axial pull in tons\n",
+ "E = 13000.;##modulus of elsticity in tons/in^2\n",
+ "m = 4.;\n",
+ "A = 0.25*math.pi*d**2;##in in^2\n",
+ "V = 0.25*math.pi*d**2*l*12;##volume in cub.inches\n",
+ "p = P/A;##in tons/in^2\n",
+ "e = p/E;\n",
+ "del_l = e*l*12;##stretchof the bar in inches\n",
+ "Lateral_strain = e/m ;##lateral strain\n",
+ "del_d = Lateral_strain*d;##Contraction in diameter in inches\n",
+ "print'%s %.4f %s'%('The Contraction in diameter is',del_d,'inches');\n",
+ "k = e*(1-2/m);##(del_V)/(V)\n",
+ "del_V = k*V;##change in volume in cub.inch\n",
+ "print'%s %.4f %s'%('The change in volume is',del_V,'cub. inch');\n",
+ "W = 0.5*P*del_l;##work done in stretching the bar in in-ton\n",
+ "print'%s %.4f %s'%('The work done in stretching the bar is',W,'in-ton');\n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Contraction in diameter is 0.0002 inches\n",
+ "The change in volume is 0.0277 cub. inch\n",
+ "The work done in stretching the bar is 0.2763 in-ton\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate total change in length of the bar and energy stored in bar \n",
+ "L = 24.;##length of the bar in ft\n",
+ "d1 = 9./8.;##diameter of the bar in inches\n",
+ "l1 = 6.;##in ft\n",
+ "d2 = 1.;##in inches\n",
+ "l2 = 12.;##in ft\n",
+ "d3 = 5./4.;##in inches\n",
+ "l3 = L-l1-l2;##in ft\n",
+ "P = 10000.;##axial compression in lb-wt\n",
+ "E = 28.*10**6;##modulus of elasticity in lb/in^2\n",
+ "A1 = 0.25*math.pi*d1**2;##in in^2\n",
+ "A2 = 0.25*math.pi*d2**2;##in in^2\n",
+ "A3 = 0.25*math.pi*d3**2;##in in^2\n",
+ "p1 = P/A1 ;##in lb/in^2\n",
+ "e1 = p1/E;\n",
+ "p2 = P/A2 ;##in lb/in^2\n",
+ "e2 = p2/E;\n",
+ "p3 = P/A3 ;##in lb/in^2\n",
+ "e3 = p3/E;\n",
+ "del_l1 = e1*l1*12;##in inches\n",
+ "del_l2 = e2*l2*12;##in inches\n",
+ "del_l3 = e3*l3*12;##in inches\n",
+ "del_l = del_l1+del_l2+del_l3;##total change in length in ft\n",
+ "W = 0.5*P*del_l/12;##energy stored in the bar in ft-lbs\n",
+ "print'%s %.3f %s'%('Total change in length of the bar is',del_l,'inches');\n",
+ "print'%s %.f %s'%('The energy stored in the bar is',W,'ft-lbs');\n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total change in length of the bar is 0.112 inches\n",
+ "The energy stored in the bar is 47 ft-lbs\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in lenght of the rod \n",
+ "P = 1200.;##axial pull in lb-wt\n",
+ "d1 = 1.;##diameter of one end in inches\n",
+ "d2 = 0.5;##diameter of other end in inches\n",
+ "l = 10.;##length of the rod in inches\n",
+ "E = 14.*10**6;##modulus of elsticity in lb/in^2\n",
+ "del_l = 4*P*l/(math.pi*E*d1*d2);##change in length in inches \n",
+ "print'%s %.4f %s'%('The change in length of the rod is',del_l,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in length of the rod is 0.0022 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the strain and extension of the bar and the work done in streching \n",
+ "d = 1.;##diameter of the steel bar in inches\n",
+ "l = 12.;##length of the steel bar in inches\n",
+ "d1 = 3./2.;##external diameter in inches\n",
+ "d2 = 1.;##internal diameter in inches\n",
+ "P = 5.;##axial pull in tons\n",
+ "E_s = 30.*10**6;##modulus of elasticity of steel in lb/in^2\n",
+ "E_b = 14.*10**6;##modulus of elasticity of brass in lb/in^2\n",
+ "A_s = 0.25*math.pi*d**2;##area of the steel section in in^2\n",
+ "A_b = 0.25*math.pi*(d1**2-d2**2);##area of the brass section in in^2\n",
+ "P_b = (P/((E_s/E_b)*A_s+A_b))*A_b;##load resisted by the brass tube in tons\n",
+ "P_s = P-P_b;##bal;ance load resisted by the steel tube\n",
+ "e = (P_b/A_b)*2240./E_b ;##strain\n",
+ "print'%s %.4f %s'%('The strain e =',e,'');\n",
+ "del_l = e*l ;##extension of the bar in inches\n",
+ "print'%s %.4f %s'%('The extension of the bar =',del_l,'inches');\n",
+ "W = 0.5*P*del_l;##work done in stretching in inch-ton\n",
+ "print'%s %.3f %s'%('The work done in stretching is',W,'inch-ton');"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The strain e = 0.0003 \n",
+ "The extension of the bar = 0.0036 inches\n",
+ "The work done in stretching is 0.009 inch-ton\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate safe central load and the reinforcing bar\n",
+ "a = 12.;##length of each side in inches\n",
+ "d = 9./8.;##diameter of each reinforced bar in inches\n",
+ "r = 3.;##distance of centre from the edges in inches\n",
+ "p_c = 600.;##in lb/in^2\n",
+ "n = 18.;##modular ration E_s/E_c\n",
+ "A_s = 4.*0.25*math.pi*d**2;##in in^2\n",
+ "A_c = a**2 - A_s;##in in^2\n",
+ "p_s = n*p_c;##in lb/in^2\n",
+ "P = p_s*A_s+p_c*A_c;##safe central load in lb-wt\n",
+ "print'%s %.f %s'%('Safe central load =',P,'lb-wt');\n",
+ "print'%s %.d %s'%('Of this, the reinforcing bars carry',p_s*A_s,'lb-wt',);\n",
+ "\n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe central load = 126956 lb-wt\n",
+ "Of this, the reinforcing bars carry 42941 lb-wt\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate P_sand p_b and x\n",
+ "l = 8.;##length in feet\n",
+ "d = 0.5;##diameter in inches\n",
+ "r = 30.;##distance between two rods in inches\n",
+ "P = 2000.;##load in lb-wt\n",
+ "E_s = 30.*10**6;##modulus of elsticity of steel rod\n",
+ "E_b = 16.*10**6;##modulus of elsticity of brass rod\n",
+ "A_s = 0.25*math.pi*d**2;##section area in in**2\n",
+ "p_b = P/(A_s*(1+(E_s/E_b)));\n",
+ "p_s = (P/A_s) - p_b ;\n",
+ "P_b = A_s*p_b;\n",
+ "P_s = A_s*p_s;\n",
+ "print'%s %.1f %s'%('P_s =',P_s,'lb/in**2')\n",
+ "print'%s %.1f %s'%('and P_b =',P_b,'lb/in**2');\n",
+ "x = r*P_b/P ;##\n",
+ "print'%s %.2f %s'%('x =',x,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P_s = 1304.3 lb/in**2\n",
+ "and P_b = 695.7 lb/in**2\n",
+ "x = 10.43 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#calculate tensile strain imposed by end grips and p and P\n",
+ "alpha = 0.0000062 ;##co-efficient of the expansion in \"per F\"\n",
+ "t = 100.;##in F\n",
+ "d = 3/4.;##in inches\n",
+ "D = 0.02;##in inches\n",
+ "l = 15.;##in ft\n",
+ "E = 13000.;##in tons/in**2\n",
+ "e = alpha*t - (D/(l*12));\n",
+ "p = E*e;##in tons/in**2\n",
+ "A = 0.25*math.pi*d**2;##in in**2\n",
+ "P = p*A ;##in tons\n",
+ "print'%s %.4f %s'%('Tensile strain imposed by end-grips,e =',e,'');\n",
+ "print'%s %.2f %s'%('p =',p,'tons/in**2')\n",
+ "print'%s %.4f %s'%('P =',P,'tons');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tensile strain imposed by end-grips,e = 0.00051 \n",
+ "p = 6.62 tons/in**2\n",
+ "P = 2.9227 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the stresses induced in each metal and p_s\n",
+ "d = 1.;##diameter of steel bar in inches\n",
+ "d1 = 3./2.;##external diameter of brass tube in inches\n",
+ "d2 = 1.;##internal diameter of brass tube in inches\n",
+ "t = 100.;##in F\n",
+ "alpha_s = 0.0000062;##alpha of steel in \"per F\"\n",
+ "alpha_b = 0.000010;##alpha of brass in \"per F\"\n",
+ "E_s = 30.*10**6;##in lb/in^2\n",
+ "E_b = 14.*10**6;##in lb/in^2\n",
+ "A_s = 0.25*math.pi*d**2;##section area of steel bar in in^2\n",
+ "A_b = 0.25*math.pi*(d1**2-d2**2);##section area of brass tube in in^2\n",
+ "p_b = t*(alpha_b-alpha_s)*E_s/((A_b/A_s)+(E_s/E_b));\n",
+ "p_s = (A_b/A_s)*p_b;\n",
+ "print'%s %.d %s'%('The stresses induced in each metal are, p_b =',p_b,'lb/in^2')\n",
+ "print'%s %.d %s'%('p_s =',p_s,'lb/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stresses induced in each metal are, p_b = 3360 lb/in^2\n",
+ "p_s = 4200 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the least temperature the tube must be heated\n",
+ "D = 4.;##diameter of the wheel in ft\n",
+ "p = 6. ;##hoop stress in tons/in^2\n",
+ "alpha = 0.0000062;##in \"per F\" \n",
+ "E = 13000.;##in tons/in^2\n",
+ "d = (1./(1.+(p/E)))*D*12.;##internal diameter in inches\n",
+ "t = (D*12.-d)/(d*alpha);\n",
+ "print'%s %.1f %s'%('The least temperature the tube must be heated is, t =',t,'F');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The least temperature the tube must be heated is, t = 74.4 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15-pg21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Resultant stress intensity and normal stress intensity and tangential stress intensity and The maximum possible shear on any plane and these planes are inclined at',angle,'degrees to the normal section.\n",
+ "p = 8.;##normal stress intensity in tons/in^2\n",
+ "theta = 35.*math.pi/180.;##inclination of the section in degrees\n",
+ "P = p*math.cos(theta);##resultant stress intensity in tons/in^2\n",
+ "p_n = P*math.cos(theta);##normal stress intensity in tons/in^2\n",
+ "p_t = P*math.sin(theta);##tangential stress intensity in tons/in^2\n",
+ "p_max = 0.5*p;##maximum possible shear in tons/in^2\n",
+ "angle = 45.;##inclination of these planes in degrees\n",
+ "print'%s %.2f %s'%('Resultant stress intensity =',P,'tons/in^2');\n",
+ "print'%s %.2f %s'%('normal stress intensity =',p_n,'tons/in^2');\n",
+ "print'%s %.2f %s'%('tangential stress intensity =',p_t,'tons/in^2');\n",
+ "print'%s %.d %s'%('The maximum possible shear on any plane is',p_max,'tons/in^2');\n",
+ "print'%s %.d %s'%('and these planes are inclined at',angle,'degrees to the normal section.');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resultant stress intensity = 6.55 tons/in^2\n",
+ "normal stress intensity = 5.37 tons/in^2\n",
+ "tangential stress intensity = 3.76 tons/in^2\n",
+ "The maximum possible shear on any plane is 4 tons/in^2\n",
+ "and these planes are inclined at 45 degrees to the normal section.\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16-pg28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate poisson ratio and E,N,K,\n",
+ "d = 9./8.;##diameter of the steel bar in inches\n",
+ "P = 6.;##tensile load in tons\n",
+ "del_l = 0.0036 ;##extension of length inches\n",
+ "l = 8.;##gauge length in inches\n",
+ "del_d = 0.00015;##change in diameter in inches\n",
+ "A = 0.25*math.pi*d**2;##section area in in^2\n",
+ "p = P/A;##stress in tons/in^2\n",
+ "e = del_l/l;##strain\n",
+ "E = p/e;##modulus of elasticity in tons/in^2\n",
+ "LS = del_d/d;##lateral strain \n",
+ "PR = LS/e;##poisson's ratio \n",
+ "N = E/(2.*(1.+PR));##rigidity modulus in tons/in^2\n",
+ "K = E/(3.*(1.-2.*PR));##bulk modulus in tons/in^2\n",
+ "print'%s %.4f %s'%('Poisson ratio 1/m =',PR,'');\n",
+ "print'%s %.d %s'%('E =',E,'tons/in^2');\n",
+ "print'%s %.d %s'%('N =',N,'tons/in^2');\n",
+ "print'%s %.d %s'%('K =',K,'tons/in^2');\n",
+ "\n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Poisson ratio 1/m = 0.2963 \n",
+ "E = 13413 tons/in^2\n",
+ "N = 5173 tons/in^2\n",
+ "K = 10974 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17-pg29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Poisson ratio and E\n",
+ "N = 2640.;##rigidity modulus in tons/in^2\n",
+ "d = 3./8.;##diameter of the rod in inches\n",
+ "P = 1./2.;##axial pull in tons\n",
+ "del_d = 0.000078;##change in diameter in inches\n",
+ "A = 0.25*math.pi*d**2;##section area in in^2\n",
+ "p = P/A ;##stress tons/in^2\n",
+ "LS = del_d/d;##lateral strain\n",
+ "m = p/(LS*2.*N) - 1.;\n",
+ "E = 2.*N*(1. + 1./m);##modulus of elasticity in ton/in^2\n",
+ "PR = 1./m;##poisson's ratio \n",
+ "print'%s %.3f %s'%('Poisson ratio 1/m =',PR,'');\n",
+ "print'%s %.d %s'%('E =',E,'ton/in^2');\n",
+ "\n",
+ "##there is an error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Poisson ratio 1/m = 0.320 \n",
+ "E = 6971 ton/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter10.ipynb b/Mechanics_of_Structures/Chapter10.ipynb
new file mode 100755
index 00000000..5ba91400
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter10.ipynb
@@ -0,0 +1,661 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:65543f2d4bb6fb1415ff8fc05c077edf5e538efef4c593534466949561fc7f05"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Radial pressure-cylindrical and spherical shells"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The necessary thickness of metal for seamless pipe \n",
+ "d = 2.;## feet\n",
+ "p = 250.;## lb/in^2\n",
+ "f = 12000.;## lb/in^2\n",
+ "t_limit = p*d*12/(2*f) ;## inches\n",
+ "print'%s %.2f %s'%('The necessary thickness of metal for seamless pipe is',t_limit,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The necessary thickness of metal for seamless pipe is 0.25 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Maximum intensity of shear stress induced \n",
+ "l = 8.;##feet\n",
+ "d = 3.;## feet\n",
+ "t = 1/2.;## inches\n",
+ "p = 200.;## lb/in**2\n",
+ "E = 30.*10**6.;## lb/in**2\n",
+ "PR = 0.3;## poisson's ratio\n",
+ "f1 = p*d*12./(2.*t);## lb/in**2\n",
+ "f2 = p*d*12./(4.*t);## lb/in**2\n",
+ "f_s = 0.5*(f1-f2);## lb/in**2\n",
+ "e1 = (f1/E)-(PR*f2/E);## lb/in**2\n",
+ "e2 = (f2/E)-(PR*f1/E);## lb/in**2\n",
+ "del_d = e1*d*12.;## inches\n",
+ "del_l = e2*l*12.;## inches\n",
+ "del_V = (e2+2.*e1)*0.25*math.pi*(12*d)**2. * l*12.;## cub. inches\n",
+ "print'%s %.d %s'%('Maximum intensity of shear stress induced =',f_s,'lb/in**2')\n",
+ "\n",
+ "print'%s %.6f %s'%('del_d =',del_d,'inches')\n",
+ "print'%s %.6f %s'%('del_l = ',del_l,'inches')\n",
+ "print'%s %.1f %s'%('del_V =',del_V,'cub. inches')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum intensity of shear stress induced = 1800 lb/in**2\n",
+ "del_d = 0.007344 inches\n",
+ "del_l = 0.004608 inches\n",
+ "del_V = 44.6 cub. inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Thickness of metal required\n",
+ "d = 30.;## inches\n",
+ "H = 300.;## feet\n",
+ "w = 62.5;\n",
+ "f = 2800.;\n",
+ "##intensity of water pressur\n",
+ "p = w*H/144.;## lb/in**2\n",
+ "t_limit = p*d/(2*f);## inches\n",
+ "print'%s %.4f %s'%('Thickness of metal required is',t_limit, 'inches')\n",
+ "\n",
+ "\n",
+ "##the answer is correct only, but it is approximated in the text book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of metal required is 0.6975 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte The permissible steam pressure and circumferential stress and longitudinal sretss \n",
+ "d = 78.;## inches\n",
+ "t = 3/4.;## inches\n",
+ "n1 = 70/100.;## efficiency of the longitudinal riveted joint\n",
+ "f = 6.;## tons/in^2\n",
+ "n2 = 60/100.;## efficiency of the circumferential riveted joint\n",
+ "p = f*2240./(d/(2.*t*n1));##lb/in^2\n",
+ "p = round(p-1);\n",
+ "f1 = p*d/(2.*t);## lb/in^2\n",
+ "f2 = p*d/(4.*t*n2);## lb/in^2\n",
+ "print'%s %.d %s'%('The permissible steam pressure, p = ',p,'lb/in^2');\n",
+ "print'%s %.d %s'%('The circumferential stress, f1 =',f1,'lb/in^2')\n",
+ "print'%s %.2f %s'%('The circumferential stress, f1= ',f1/2240,'tons/in^2');\n",
+ "print'%s %.d %s'%('The longitudinal stress, f2 =',f2,'lb/in^2') \n",
+ "print'%s %.2f %s'%('The longitudinal sretss, f2 =',f2/2240,'lb/in^2')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The permissible steam pressure, p = 180 lb/in^2\n",
+ "The circumferential stress, f1 = 9360 lb/in^2\n",
+ "The circumferential stress, f1= 4.18 tons/in^2\n",
+ "The longitudinal stress, f2 = 7800 lb/in^2\n",
+ "The longitudinal stress, f2 = 3.48 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The thickness of the plate required\n",
+ "d = 4.;## feet\n",
+ "p = 200.;## lb/in^2\n",
+ "f = 15000.;## lb/in^2\n",
+ "n = 0.7;## efficiency\n",
+ "t_limit = p*d*12/(4*f*n);## inches\n",
+ "print'%s %.2f %s'%('The thickness of the plate required =',t_limit,'inches');\n",
+ "\n",
+ "##the answer is correct only, but it is approximated in the text book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of the plate required = 0.23 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The pressure exerted by fluid on the shell\n",
+ "d = 3.;## feet\n",
+ "t = 1/4.;## inches\n",
+ "del_V = 9.;## cub. inches\n",
+ "E = 30*10**6;## lb/in^2\n",
+ "PR = 0.3;## poisson's ratio\n",
+ "V = (math.pi/6.)*(12.*d)**3;## in^3\n",
+ "k = del_V/V;\n",
+ "f = k*E/(3.*(1.-PR));## lb/in^2\n",
+ "p = 4.*f*t/(12.*d);## lb/in^2\n",
+ "print'%s %.d %s'%('The pressure exerted by fluid on the shell, p =',p,'lb/in^2');\n",
+ "\n",
+ "##there is a minute calculation error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pressure exerted by fluid on the shell, p = 146 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte the Pipe and Steel-wire of intiually due to p and finally due to p\n",
+ "d = 12.;## feet\n",
+ "t = 1/2.;## inches\n",
+ "d1 = 1/4.;## inches\n",
+ "p = 500.;## lb/in^2\n",
+ "E_c = 6000.;## tons/in^2\n",
+ "PR = 0.3;## Poisson's ratio\n",
+ "E_s = 13000.;## tons/in^2\n",
+ "f_t = 8000.;## lb/in^2\n",
+ "l = 8.;\n",
+ "P_c = l*(math.pi/64.)*f_t;## lb-wt\n",
+ "f_c = P_c/(2.*t);## lb/in^2\n",
+ "##bursting force per inch unit length\n",
+ "f_b = p*d;## lb-wt\n",
+ "f_p = (f_b + (l*0.049*PR*p*d/(4.*t))*(E_s/E_c))/(1 + (l*0.049)*E_s/E_c);## lb/in^2 \n",
+ "f_w = (f_p - PR*p*d/(4.*t))*E_s/E_c;## lb/in^2\n",
+ "\n",
+ "print(' Pipe Steel-wire');\n",
+ "print'%s %.d %s'%(' Initually,',f_c,'lb/in^2.,compr.')\n",
+ "print'%s %.d %s'%('Intiually',f_t,'lb/in^2., tensile')\n",
+ "print'%s %.d %s'%( 'Due to p, ',f_p,'lb/in^2.,tensile.')\n",
+ "print'%s %.d %s'%('Due to p',f_t,'lb/in^2., tensile')\n",
+ "print'%s %.d %s'%(' Finally, ',f_p-f_c,'lb/in^2.,tensile.')\n",
+ "print'%s %.d %s'%('Finally',f_w+f_t,'lb/in^2., tensile')\n",
+ "\n",
+ "##there is a calculation error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pipe Steel-wire\n",
+ " Initually, 3141 lb/in^2.,compr.\n",
+ "Intiually 8000 lb/in^2., tensile\n",
+ "Due to p, 3657 lb/in^2.,tensile.\n",
+ "Due to p 8000 lb/in^2., tensile\n",
+ " Finally, 516 lb/in^2.,tensile.\n",
+ "Finally 13975 lb/in^2., tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'The maximum intensities of circumferential stresses are\n",
+ "d = 12.;## inches\n",
+ "t = 3.;## inches\n",
+ "p_x1 = 900.;## lb/in^2\n",
+ "x1 = 0.5*d;## inches\n",
+ "p_x2 = 0.;\n",
+ "x2 = 0.5*d+t;## inches\n",
+ "##from Lame's formulae\n",
+ "b = (p_x1-p_x2)/((1/x1**2)-(1/x2**2));\n",
+ "a = (b/x1**2)- p_x1;\n",
+ "f_x1 = (b/x1**2)+a;## lb/in^2\n",
+ "f_x2 = (b/x2**2)+a;## lb/in^2\n",
+ "print'%s %.d %s'%('The maximum intensities of circumferential stresses are: f_6 =',f_x1,'lb/in^2.,tensile') \n",
+ "print'%s %.d %s'%('The minimum intensities of circumferential stresses are: f_6f_9 =',f_x2,'lb/in^2., tensile')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum intensities of circumferential stresses are: f_6 = 2340 lb/in^2.,tensile\n",
+ "The minimum intensities of circumferential stresses are: f_6f_9 = 1440 lb/in^2., tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# calculate 'The maximum intensities of circumferential stresses are and the outer diameter\n",
+ "d = 5.;## inches \n",
+ "p = 3.;## tons/in^2\n",
+ "f = 8.;## tons/in^2\n",
+ "x = 0.5*d;## inches\n",
+ "b = (p+f)/(2/x**2);\n",
+ "a = f-(b/x**2); \n",
+ "r = math.sqrt(b/a);##outer radius\n",
+ "t = r-0.5*d;##thickness\n",
+ "D = 2.*t+d;##outer diameter\n",
+ "print'%s %.3f %s'%('The thickness of metal necessary, t =',t,'inches');\n",
+ "print'%s %.1f %s'%('the outer diameter will be, D =',D,'inches');\n",
+ "\n",
+ "##the answer is correct, but it is approximated in the text book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of metal necessary, t = 1.208 inches\n",
+ "the outer diameter will be, D = 7.4 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# calculate The outer radius in all four cases\n",
+ "d = 9.;## inches\n",
+ "p = 5000/2240.;## lb/in**2\n",
+ "f = 8.;## tons/in**2\n",
+ "PR = 0.3;## Poisson's ratio\n",
+ "##(i) Maximum principal stress hypothesis:\n",
+ "k_limit1 = math.sqrt((f + p)/(f - p));##k_limit = r1/r2\n",
+ "r_limit1 = k_limit1*0.5*d;##inches\n",
+ "print'%s %.3f %s'%('The outer radius in case(i), r2 =',r_limit1,'inches');\n",
+ "##(ii) Maximum principal strain:\n",
+ "k_limit2 = math.sqrt(((f/p - PR)+1)/(f/p - PR -1));\n",
+ "r_limit2 = k_limit2*0.5*d;## inches\n",
+ "print'%s %.3f %s'%(' The outer radius in case(ii), r2 =',r_limit2,'inches');\n",
+ "##(iii) Maximum shear stress:\n",
+ "k_limit3 = math.sqrt(f/(2*p) /((f/(2*p)) - 1));\n",
+ "r_limit3 = k_limit3*0.5*d;## inches\n",
+ "print'%s %.3f %s'%('The outer radius in case(iii), r2 =',r_limit3,' inches');\n",
+ "##(iv) Maximum strain energy\n",
+ "K1 = (f**2 /p**2)/(2*((f**2 /(2*p**2)) - (1+PR)));\n",
+ "K2 = K1**2;\n",
+ "K3 = ((f**2 /(2*p**2)) - (1-PR))/((f**2 /(2*p**2)) - (1+PR));\n",
+ "k_limit4 =math. sqrt(K1+math.sqrt(K2-K3));\n",
+ "r_limit4 = k_limit4*0.5*d;## inches\n",
+ "print'%s %.3f %s'%(' The outer radius in case(iv), r2 =',r_limit4,' inches');\n",
+ "\n",
+ "##there are calculation errors in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The outer radius in case(i), r2 = 5.994 inches\n",
+ " The outer radius in case(ii), r2 = 6.163 inches\n",
+ "The outer radius in case(iii), r2 = 6.769 inches\n",
+ " The outer radius in case(iv), r2 = 6.249 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# calculate hoop stress at x = 3,6 inches,x = 5 inches initially on inner tube and outer tube\n",
+ "r1 = 0.5*6.;## inches\n",
+ "r2 = 0.5*12.;## inches\n",
+ "r3 = 0.5*10.;## inches\n",
+ "p = 1500.;## lb/in**2\n",
+ "p_f = 12000.;## lb/in**2\n",
+ "##Initially, for the inner tube\n",
+ "b = -p/((1./r1**2.) - (1./r3**2.));\n",
+ "a = b/r1**2.;\n",
+ "f_3 = (b/r1**2.) +a;## lb/in**2\n",
+ "f_5 = (b/r3**2.) +a;## lb/in**2\n",
+ "##for the outer tube\n",
+ "b1 = p/((1/r3**2.)-(1/r2**2.));\n",
+ "a1 = b1/r2**2.;\n",
+ "f1_5 = (b1/r3**2.)+a1;## lb/in**2\n",
+ "f1_6 = (b1/r2**2.)+a1;## lb/in**2\n",
+ "##When the fluid pressure of 12000 lb/in**2, is admitted into the compound tube\n",
+ "B = p_f/((1./r1**2.)-(1/r2**2.));\n",
+ "A = B/(r2**2.);\n",
+ "f_3_ = (B/r1**2.)+A;## lb/in**2\n",
+ "f_5_ = (B/r3**2.)+A;## lb/in**2\n",
+ "f_6_ = (B/r2**2.)+A;## lb/in**2\n",
+ "\n",
+ "print('The hoop stresse are');\n",
+ "print'%s %.1f %s %.1f %s '%(' at x = 3 inches,x = 5 inches initially on inner tube are ',-f_3,' lb/in^2.., compressive, ',-f_5,' lb/in^2..,compressive respectively');\n",
+ "print'%s %.1f %s %.1f %s'%(' at x = 5 inches,x = 6 inches initially on outer tube are ',f1_5,' lb/in^2.., tensile, ',f1_6,' lb/in^2..,tensile respectively');\n",
+ "print'%s %.d %s %.d %s %.d %s'%(' at x = 3 inches,x = 5 inches and x = 6 inches due to fluid pressure are ',f_3_,' lb/in^2.., tensile, ',f_5_,' lb/in^2..,tensile, and',f_6_,' lb/in^2..,tensile respectively')\n",
+ "print'%s %.1f %s %.1f %s'%(' at x = 3 inches,x = 5 inches finally on inner tube are ',f_3_+f_3,' lb/in^2.., tensile, ',f_5_+f_5,' lb/in^2..,tensile respectively');\n",
+ "print'%s %.d %s %.d %s'%(' at x = 5 inches,x = 6 inches finally on outer tube are',f1_5+f_5_,' lb/in^2.., tensile, ',f1_6+f_6_,' lb/in^2.., tensile respectively');"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hoop stresse are\n",
+ " at x = 3 inches,x = 5 inches initially on inner tube are 4687.5 lb/in^2.., compressive, 3187.5 lb/in^2..,compressive respectively \n",
+ " at x = 5 inches,x = 6 inches initially on outer tube are 8318.2 lb/in^2.., tensile, 6818.2 lb/in^2..,tensile respectively\n",
+ " at x = 3 inches,x = 5 inches and x = 6 inches due to fluid pressure are 20000 lb/in^2.., tensile, 9760 lb/in^2..,tensile, and 8000 lb/in^2..,tensile respectively\n",
+ " at x = 3 inches,x = 5 inches finally on inner tube are 15312.5 lb/in^2.., tensile, 6572.5 lb/in^2..,tensile respectively\n",
+ " at x = 5 inches,x = 6 inches finally on outer tube are 18078 lb/in^2.., tensile, 14818 lb/in^2.., tensile respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The minimum temperature to which outer tube should be heated before it can be slipped\n",
+ "p = 1500.;## lb/in^2\n",
+ "E = 30*10**6;## lb/in^2\n",
+ "f1_5 = 8318.;## lb/in^2\n",
+ "f2_5 = 3187.5;## lb/in^2\n",
+ "alpha = 0.0000062;## per F\n",
+ "r3 = 6;## inches\n",
+ "del_r3 = r3*(f1_5+f2_5)/E;## inches\n",
+ "t = ((f1_5+f2_5)/E)/(alpha);## inches\n",
+ "print'%s %.2f %s'%('The minimum temperature to which outer tube should be heated before it can be slipped on, t =',t,'F');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum temperature to which outer tube should be heated before it can be slipped on, t = 61.86 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The hoop stresses are as under for inner tube at x=1/5 and 3 and 4.5 inches \n",
+ "r1 = 0.5*9.;## inches\n",
+ "r2 = 0.5*3.;## inches\n",
+ "r3 = 0.5*6.;## inches\n",
+ "del_r3 = 0.5*0.003;## inches\n",
+ "E = 13000.;## tons/in^2\n",
+ "k1 = r1/r3;\n",
+ "k2 = r2/r3;\n",
+ "a1 = (del_r3/r3)*E/((k1**2 +1)- (k2**2 +1)*(k1**2 -1)/(k2**2 -1));\n",
+ "a = a1*(k1**2 -1)/(k2**2 -1);\n",
+ "b1 = a1*r1**2;\n",
+ "b = a*r2**2;\n",
+ "p_ = (b/r3**2) -a;## tons/in^2\n",
+ "## for the inner tube\n",
+ "f_x1 = (b/r2**2) +a;## tons/in^2\n",
+ "f_x2 = (b/r3**2) +a;## tons/in^2\n",
+ "## for the outer tube\n",
+ "f_x3 = (b1/r3**2) +a1;## tons/in^2\n",
+ "f_x4 = (b1/r1**2) +a1;## tons/in^2\n",
+ "print ('The hoop stresses are as under:');\n",
+ "print'%s %.2f %s'%('For the inner tube, at x = 1/5 inches, f =',-f_x1,'tons/in^2., compressive')\n",
+ "print'%s %.2f %s'%('at x = 3 inches, f =',-f_x2,'tons/in^2.,compressive')\n",
+ "print'%s %.2f %s'%(' For the outer tube, at x = 3 inches, f =',f_x3,'tons/in^2., tensile')\n",
+ "\n",
+ "print'%s %.2f %s'%('at x = 4.5 inches, f =',f_x4,' tons/in^2.,tensile');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hoop stresses are as under:\n",
+ "For the inner tube, at x = 1/5 inches, f = 4.06 tons/in^2., compressive\n",
+ "at x = 3 inches, f = 2.54 tons/in^2.,compressive\n",
+ " For the outer tube, at x = 3 inches, f = 3.96 tons/in^2., tensile\n",
+ "at x = 4.5 inches, f = 2.44 tons/in^2.,tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the thickness of the shell required\n",
+ "r1 = 0.5*5.;## inches\n",
+ "p = 5000.;## lb/in^2\n",
+ "f = 5.;## tons/in^2\n",
+ "b = (f + p/2240.)/((1/r1**3) + (2/r1**3));\n",
+ "a = f - (b/r1**3);\n",
+ "##external diameter\n",
+ "r = (2*b/a)**(1/3);## inches\n",
+ "t = r - r1;## inches\n",
+ "print'%s %.3f %s'%('The thickness of the shell required, t =',t,'inches');\n",
+ "\n",
+ "##the answer is approximated in the text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of the shell required, t = -1.500 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter11.ipynb b/Mechanics_of_Structures/Chapter11.ipynb
new file mode 100755
index 00000000..be126298
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter11.ipynb
@@ -0,0 +1,527 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:efd3a63c379116e766993d1d8b2baacab12f4039280250b30fc0874f009306a1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter11-Reveted joints"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The efficiency of the joint\n",
+ "t = 5/8.;## inch\n",
+ "d = 1.;## inch\n",
+ "p = 4.;## inches\n",
+ "f_t = 28.; ##tons/in^2\n",
+ "f_s = 20.; ##tons/in^2\n",
+ "f_b = 40.; ##tons/in^2\n",
+ "P_t = (p-d)*t*f_t;## tons\n",
+ "P_s = 2*2*0.25*math.pi*d**2 *f_s;## tons\n",
+ "P_b = 2*d*t*f_b;##tons\n",
+ "P = p*t*f_t;## tons\n",
+ "n = min(P_t,P_s,P_b)/P ;## efficiency\n",
+ "print'%s %.1f %s'%('The efficiency of the joint =',n,'f')\n",
+ "print'%s %.1f %s'%('or',n*100,'percentage')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The efficiency of the joint = 0.7 f\n",
+ "or 71.4 percentage\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The efficiency of first joint with required conditions\n",
+ "t = 1/2.;## inches\n",
+ "d1= 7/8.;## inches\n",
+ "p1 = 5/2.;## inches\n",
+ "d2= 9/8.;## inches\n",
+ "p2 = 7/2.;## inches\n",
+ "f_t = 8.;## tons/in^2\n",
+ "f_s = 6.;## tons/in^2\n",
+ "f_b = 10.;## tons/in^2\n",
+ "\n",
+ "P_t1 = (p1-d1)*t*f_t;## tons\n",
+ "P_s1 = 0.25*math.pi*d1**2 *f_s;## tons\n",
+ "P_b1 = d1*t*f_b;##tons\n",
+ "P1 = p1*t*f_t;## tons\n",
+ "n1 = min(P_t1,P_s1,P_b1)/P1 ;## efficiency\n",
+ "print'%s %.3f %s'%('The efficiency of first joint = ',n1,'')\n",
+ "print'%s %.1f %s'%('or =',n1*100,'percentage')\n",
+ "\n",
+ "P_t2 = (p2-d2)*t*f_t;## tons\n",
+ "P_s2 = 0.25*math.pi*d2**2 *f_s;## tons\n",
+ "P_b2 = d2*t*f_b;##tons\n",
+ "P2 = p2*t*f_t;## tons\n",
+ "n2 = min(P_t2,P_s2,P_b2)/P2 ;## efficiency\n",
+ "print'%s %.3f %s'%('The efficiency of second joint = ',n2,'f') \n",
+ "print'%s %.1f %s'%('or= ',n2*100,'percentage')\n",
+ "\n",
+ "if n2 > n1: \n",
+ " print(' The second joint, with its higher efficiency, is stronger');\n",
+ "else:\n",
+ " print(' The first joint, with its higher efficiency, is stronger');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The efficiency of first joint = 0.361 \n",
+ "or = 36.1 percentage\n",
+ "The efficiency of second joint = 0.402 f\n",
+ "or= 40.2 percentage\n",
+ " The second joint, with its higher efficiency, is stronger\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'The efficiency of the joint\n",
+ "t = 3/8.;## inches\n",
+ "p2 = 7/2.;## inches\n",
+ "f_t = 11/2.;## tons/in^2\n",
+ "f_s = 5.;## tons/in^2\n",
+ "f_b = 12.;## tons/in^2\n",
+ "d = 1.2*math.sqrt(t);## inches\n",
+ "##d = 0.735, say 0.75 inches\n",
+ "d = 0.75;## inches\n",
+ "P_s = 0.25*math.pi*d**2 *f_s;## tons\n",
+ "P_b = d*t*f_b;##tons\n",
+ "P_t_limit = P_s;##tons\n",
+ "p_limit = P_s/(t*f_t) + d;## inches\n",
+ "##p_limit = 1.763, take p = 1.75\n",
+ "p = 1.75;## inches\n",
+ "n = (p-d)/p;## efficiency\n",
+ "print'%s %.1f %s'%('The efficiency of the joint = ',n*100,' percentage')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The efficiency of the joint = 57.1 percentage\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Pitch and efficency\n",
+ "d = 7/8.;## inches\n",
+ "t = 1/2.;## inches \n",
+ "f_t = 6.;## tons/in^2\n",
+ "f_s = 5.;## tons/in^2\n",
+ "f_b = 10.;## tons/in^2\n",
+ "p_s = 2*0.25*math.pi*d**2*f_s;## tons\n",
+ "P_b = d*t*f_b;## tons\n",
+ "p_t_limit = 2*P_b/3 + d;## inches\n",
+ "n = (p_t_limit-d)/p_t_limit;## efficiency\n",
+ "print'%s %.3f %s'%('Pitch, p =',p_t_limit,' inches')\n",
+ "\n",
+ "print'%s %.1f %s'%('Efficiency = ',n,' ')\n",
+ "print'%s %.d %s'%('or',n*100,' percentage');\n",
+ "\n",
+ "##the answer is approximated in the textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pitch, p = 3.792 inches\n",
+ "Efficiency = 0.8 \n",
+ "or 76 percentage\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Pitch and The efficiency of the joint \n",
+ "d = 6.;## feet\n",
+ "p = 180.;## lb/in^2\n",
+ "f = 6.;## tons\n",
+ "n = 70./100.;## efficiency\n",
+ "d1 = 1.;## inches\n",
+ "f_s = 5.;## tons/in^2\n",
+ "f_b = 10.;## tons/in^2\n",
+ "t = p*d/(2.*f*n);## inches\n",
+ "## t = 0.6889 inches, say 0.75 inches\n",
+ "t = 0.75;##inches\n",
+ "P_s = 2*0.25*math.pi*d1**2*f_s;## tons\n",
+ "P_b = d1*t*f_b;## tons\n",
+ "p_limit = 2*P_b/(t*f) + d1;## inches\n",
+ "##p_limit = 4.33 inches, make it 4 inches\n",
+ "p = round(p_limit);## inches\n",
+ "n1 = (p-d1)/p;## efficiency\n",
+ "print'%s %.2f %s'%('Pitch = ',p_limit,'inches')\n",
+ "print'%s %.d %s'%('make it',p,' inches.')\n",
+ "print'%s %.d %s'%(' The efficiency of the joint will be',n1*100,'percentage')\n",
+ "print'%s %.d %s'%('percentage aganist the assumed value of ',n*100,' percentage.')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pitch = 4.33 inches\n",
+ "make it 4 inches.\n",
+ " The efficiency of the joint will be 75 percentage\n",
+ "percentage aganist the assumed value of 70 percentage.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The number of rivets required and The efficiency of the joint and The actual stresses induce in the rivet and The tensile stress at section 11 ,22 33 44\n",
+ "t = 1./2.;## inches\n",
+ "a = 1./2.;## inches\n",
+ "P = 42.;## tons\n",
+ "d = 3/4.;## inches\n",
+ "f_t = 7.5;## tons/in^2\n",
+ "f_s = 6.;## tons/in^2\n",
+ "f_b = 12.;## tons/in^2\n",
+ "P_s = 2*0.25*math.pi*d**2 *f_s;## tons\n",
+ "P_b = d*t*f_b;## tons\n",
+ "n = P/min(P_s,P_b);\n",
+ "n = round(n+1);\n",
+ "b1 = P/(t*f_t) + d;## inches\n",
+ "b = round(b1);\n",
+ "e = (b-d)/b;## efficiency\n",
+ "f_s = (P/n)/(2*0.25*math.pi*d**2) ;## tons/in^2\n",
+ "f_b = (P/n)/(d*t);## tons/in^2\n",
+ "f1 = P/(a*(b-d));## tons/in^2\n",
+ "f2 = (P-(P/n))/((b-2*d)*t);## tons/in^2\n",
+ "f3 = (P-(3.*P/n))/((b-3.*d)*t);## tons/in^2\n",
+ "f4 = (P-(6.*P/n))/((b-4.*d)*t);## tons/in^2\n",
+ "print'%s %.d %s'%('The number of rivets required, n = ',n,'');\n",
+ "print'%s %.2f %s %.d %s'%(' The width of the flat required, b = ',b1,'inches'and' ',b,' inches');\n",
+ "print'%s %.2f %s '%(' The efficiency of the joint = ',e*100,' percentage');\n",
+ "print'%s %.2f %s %.2f %s'%(' The actual stresses induce in the rivet are, f_s = ',f_s,' tons/in^2' and ' f_b = ',f_b ,'tons/in^2');\n",
+ "print'%s %.3f %s'%(' The tensile stress at section 11, f1 = ',f1,'rons/in^2');\n",
+ "print'%s %.3f %s'%(' The tensile stress at section 22, f2 = ',f2,' rons/in^2');\n",
+ "print'%s %.3f %s'%(' The tensile stress at section 33, f3 = ',f3,' rons/in^2');\n",
+ "print'%s %.3f %s'%(' The tensile stress at section 44, f4 = ',f4,' rons/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of rivets required, n = 10 \n",
+ " The width of the flat required, b = 11.95 12 inches\n",
+ " The efficiency of the joint = 93.75 percentage \n",
+ " The actual stresses induce in the rivet are, f_s = 4.75 f_b = 11.20 tons/in^2\n",
+ " The tensile stress at section 11, f1 = 7.467 rons/in^2\n",
+ " The tensile stress at section 22, f2 = 7.200 rons/in^2\n",
+ " The tensile stress at section 33, f3 = 6.031 rons/in^2\n",
+ " The tensile stress at section 44, f4 = 3.733 rons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate The number of rivets required and The efficiency of the joint and The pull section at different points and The maximum possible pull which the flat will safely transmit\n",
+ "import math\n",
+ "\n",
+ "b = 9.;## inches\n",
+ "t = 3./4.;## inches\n",
+ "f_t = 8.;## tons/in**2\n",
+ "f_s = 5.;## tons/in**2\n",
+ "f_b = 10.;## tons/in**2\n",
+ "d = 7/8.;## inches\n",
+ "P = (b-d)*t*f_t;## tons\n",
+ "P_s = 2.*0.25*math.pi*d**2 *f_s;## tons\n",
+ "P_b = d*t*f_b;## tons\n",
+ "n = P/min(P_s,P_b);\n",
+ "e = (b-d)/b;## efficiency\n",
+ "P1 = f_t*(b-d)*t;## tons\n",
+ "P2 = f_t*(b-2*d)*t+P_s;## tons\n",
+ "P3 = f_t*(b-3*d)*t+3*P_s;## tons\n",
+ "P4 = f_t*(b-3*d)*t+6*P_s;## tons\n",
+ "print'%s %.d %s'%('The number of rivets required, n = ',round(n+1),'')\n",
+ "print'%s %.1f %s'%(' The efficiency of the joint =',e*100,' percentage');\n",
+ "print'%s %.2f %s'%(' The pull at section 11, P1 = ',P1,' rons/in**2');\n",
+ "print'%s %.1f %s'%( 'The pull at section 22, P2 = ',P2,'rons/in**2');\n",
+ "print'%s %.2f %s'%(' The pull at section 33, P3 = ',P3,' rons/in**2');\n",
+ "print'%s %.2f %s'%(' The pull at section 44, P4 = ',P4,' rons/in**2');\n",
+ "if P1 == min(P1,P2,P3,P4) :\n",
+ " print'%s %.2f %s'%(' The maximum possible pull which the flat will safely transmit is P1 = ',P1,' tons/in^2 at section 11');\n",
+ "elif P2 == min(P1,P2,P3,P4):\n",
+ " print'%s %.1f %s'%(' The maximum possible pull which the flat will safely transmit is P2 = ',P2,' tons/in^2 at section 22'); \n",
+ "elif P3 == min(P1,P2,P3,P4): \n",
+ " print'%s %.2f %s'%('The maximum possible pull which the flat will safely transmit is P3 = ',P3,' tons/in^2 at section 33');\n",
+ "else:\n",
+ " print'%s %.2f %s'%(' The maximum possible pull which the flat will safely transmit is P4 = ',P4,' tons/in^2 at section 44'); \n",
+ "\n",
+ "\n",
+ "##there is a minute error in the answer given textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of rivets required, n = 9 \n",
+ " The efficiency of the joint = 90.3 percentage\n",
+ " The pull at section 11, P1 = 48.75 rons/in**2\n",
+ "The pull at section 22, P2 = 49.5 rons/in**2\n",
+ " The pull at section 33, P3 = 56.29 rons/in**2\n",
+ " The pull at section 44, P4 = 74.33 rons/in**2\n",
+ " The maximum possible pull which the flat will safely transmit is P1 = 48.75 tons/in^2 at section 11\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The number of rivets required \n",
+ "P = 150.; ##tons\n",
+ "t = 3./4.;## inches\n",
+ "d = 1.;## inches\n",
+ "f_s = 6.;## tons/in**2\n",
+ "f_b = 12.;## tons/in**2\n",
+ "P_s = 0.25*math.pi*d**2 *f_s;## tons\n",
+ "P_b = t*d*f_b;## tons\n",
+ "n = P/min(P_s,P_b);## no. of rivets required\n",
+ "print'%s %.2f %s %.d %s'%('The number of rivets required, n = ',n,', say ',round(n),'');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of rivets required, n = 31.83 , say 32 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg440\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The minimum pitch required\n",
+ "l = 50.;## feet\n",
+ "b = 4.;## feet\n",
+ "P = 3.;## tons per foot run\n",
+ "t = 1/2.;## inches\n",
+ "b1 = 4.;## inches\n",
+ "d1 = 4.;## inches\n",
+ "h1 = 1/2.;## inches\n",
+ "d = 7/8.;## inches\n",
+ "f_s = 6.;## tons/in**2\n",
+ "f_b = 12.;## tons/in**2\n",
+ "P_s = 2.*0.25*math.pi*d**2 *f_s;## tons\n",
+ "P_b = t*d*f_b;## tons\n",
+ "R = P_b;## tons\n",
+ "F = l*P*2./d1;## tons\n",
+ "p_min = R*(l-0.5*b1)/F ;## inches\n",
+ "print'%s %.2f %s %.d %s'%('The minimum pitch required is p = ',p_min,' inches, say ',p_min,' inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum pitch required is p = 3.36 inches, say 3 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum shear intensity induced at any rivet\n",
+ "P = 2.4;## tons\n",
+ "e = 18.;## inches\n",
+ "n = 8.;##no. of rivets\n",
+ "d = 7/8.;## inches\n",
+ "h = 4.;## inches\n",
+ "M = P*e;## ton-inches\n",
+ "d1 = 2.;## \n",
+ "d2 = 6.;##\n",
+ "square_r_sum = h*((0.5*h)**2. + d2**2.) + h*((0.5*h)**2 + d1**2.);##\n",
+ "r = math.sqrt(40.);\n",
+ "F = M*r/square_r_sum;## tons\n",
+ "theta = math.atan(d2/d1)##radians\n",
+ "theta1 = theta*180./math.pi## degrees\n",
+ "V = (P/n) + F*math.cos(theta);## tons\n",
+ "H = F*math.sin(theta);## tons\n",
+ "R = math.sqrt(V**2 + H**2);## tons\n",
+ "f_s = R/(0.25*math.pi*d**2);## tons/in**2\n",
+ "print('The maximum shear intensity induced at any rivet is' )\n",
+ "print'%s %.2f %s'%('f_s = ',f_s,' tons/in**2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum shear intensity induced at any rivet is\n",
+ "f_s = 2.57 tons/in**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter12.ipynb b/Mechanics_of_Structures/Chapter12.ipynb
new file mode 100755
index 00000000..794c3e4e
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter12.ipynb
@@ -0,0 +1,850 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f6a5fb5a9bb50976164cfcdf430ee1b396b67dbf2ffbf7763fc02510b90290d3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-Shafts and springs in torsion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum intensity of shear stress induced and The angle of twist in degree\n",
+ "d = 3.;##inches\n",
+ "HP = 120.;##horse power\n",
+ "RPM = 180.;\n",
+ "l = 25.;##feet\n",
+ "N = 12.*10**6.;## lb/in**2\n",
+ "T = 33000.*HP/(2.*math.pi*RPM);## lb-feet\n",
+ "f_s = 16*T*12/(math.pi*d**3.);## lb/in**2\n",
+ "theta = f_s*l*12./(0.5*d*N);## radian\n",
+ "print'%s %.d %s'%('The maximum intensity of shear stress induced is f_s =',f_s,' lb/in**2');\n",
+ "print'%s %.2f %s'%('The angle of twist in degrees is theta = ',theta*180/math.pi,'');\n",
+ "\n",
+ "##there is a minute error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum intensity of shear stress induced is f_s = 7925 lb/in**2\n",
+ "The angle of twist in degrees is theta = 7.57 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate H.P transmitted is\n",
+ "D = 2.;## inches\n",
+ "N = 150.;## RPM\n",
+ "f_s = 9000.;## lb/in^2\n",
+ "M_r = f_s*(math.pi/16.)*D**3.;## lb-inches\n",
+ "HP = M_r*2.*math.pi*N/(12.*33000.);##\n",
+ "print'%s %.2f %s'%('H.P transmitted is',HP,'');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "H.P transmitted is 33.65 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Suitable diameter \n",
+ "HP = 80.;\n",
+ "N = 200.;## RPM\n",
+ "m = 30/100.;\n",
+ "f = 12000.;## lb/in^2\n",
+ "T = HP*33000./(2.*math.pi*N);## lb-feet\n",
+ "T_max = (1+m)*T;## lb-feet\n",
+ "D = (T_max*12.*16./(math.pi*f))**(1/3.);## inches\n",
+ "print'%s %.3f %s'%('Suitable diameter is D =',D,'inches');\n",
+ "\n",
+ "##the answer is approximated in the textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Suitable diameter is D = 2.405 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#check whether it is satisfactory or not for given st A shaft',round(D),'inches external diameter and',round(d),' inches internal diameter\n",
+ "HP = 750.;\n",
+ "N = 90.;## RPM\n",
+ "m = 40/100.;\n",
+ "f = 12000.;## lb/in^2\n",
+ "t = 1.;## inch\n",
+ "T = HP*33000./(2.*math.pi*N);## lb-inches\n",
+ "T_max = (1.+m)*T;## lb-inches\n",
+ "##On solving (4*t)D^3 - (6*t^2)D^2 +(4*t^3 -(16*M/f*%pi))D -t^4 = 0, we get D\n",
+ "D = 7.6;##inches\n",
+ "d = D - 2.;##inches\n",
+ "print'%s %.d %s %d %s '%('A shaft',round(D),'inches external diameter and',round(d),' inches internal diameter will be satisfactory.');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A shaft 8 inches external diameter and 6 inches internal diameter will be satisfactory. \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg452"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate'D = ',round(D1),' inches will be suitable for the shaft\n",
+ "RPM = 180.;## RPM\n",
+ "HP = 130.;\n",
+ "f = 9000.;## lb/in^2\n",
+ "alpha = 1.;##degree\n",
+ "l = 10.;## feet\n",
+ "N = 6000.;## tons/in^2\n",
+ "T = 33000.*HP/(2*math.pi*RPM);## lb-feet\n",
+ "D1 = (16*T*12/(f*math.pi))**(1/3);## inches\n",
+ "D2 = (T*12*l*12*32*alpha*180/(math.pi*N*math.pi*2240.))**(1/4.);## inches\n",
+ "if D1 > D2 :\n",
+ " print'%s %.d %s'%('D = ',round(D1),' inches will be suitable for the shaft');\n",
+ "else:\n",
+ " print'%s %.d %s'%('D =',round(D2),'inches will be suitable for the shaft');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "D = 4 inches will be suitable for the shaft\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'The saving in weight per foot run and percentage saving\n",
+ "HP = 3000.;\n",
+ "RPM = 60.;\n",
+ "f = 12000.;##lb/in^2\n",
+ "rho = 480.;##lb. per sq. foot\n",
+ "k = 3./4.;## k = d/D \n",
+ "T = HP*33000.*12./(2.*math.pi*RPM);## lb-inches\n",
+ "D1 = (T*16/(f*math.pi))**(1/3.);##inches\n",
+ "D2 = (T/((1.+k**2.)*(1.-k**2.)*math.pi*f/16.))**(1/3.);##inches\n",
+ "d = k*D2;## inches\n",
+ "w1 = 0.25*math.pi*D1**2 *rho/144. ;## lb-wt\n",
+ "w2 = 0.25*math.pi*(D2+d)*(D2-d)*rho/144. ;## lb-wt\n",
+ "w = w1-w2;## lb-wt\n",
+ "n = (w/w1)*100.;\n",
+ "print'%s %.d %s'%('The saving in weight per foot run is w =',w,' lb-wt');\n",
+ "print'%s %.2f %s'%('Percentage saving is ',n,'');\n",
+ "\n",
+ "##there is a minute error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The saving in weight per foot run is w = 138 lb-wt\n",
+ "Percentage saving is 43.62 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate T1 and T2 \n",
+ "l1 = 3.;## feet\n",
+ "d1 = 1.;## feet\n",
+ "l2 = 9.;## feet\n",
+ "M = 200.;## lb-wt\n",
+ "l = 9.;## inches\n",
+ "N = 12.*10**6;## lb/in^2\n",
+ "k = l2/l1;\n",
+ "T1 = M/(1.+k);## lb-feet\n",
+ "T2 = k*T1;## lb-feet\n",
+ "f_s = T2*12./(math.pi/16.);## lb/in^2\n",
+ "theta = f_s*l/(0.5*d1*N);## radians\n",
+ "print'%s %.d %s %.d %s '%('T1 =',T1,'lb-feet, T2 = ',T2,' lb-feet');\n",
+ "print'%s %.d %s'%('f_s = ',f_s,' lb/in^2');\n",
+ "print'%s %.4f %s %.3f %s'%(' theta = ',theta,' radian , theta = ',theta*180/math.pi,' degrees');\n",
+ "##there is a minute error in the answer given in twxtbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T1 = 50 lb-feet, T2 = 150 lb-feet \n",
+ "f_s = 9167 lb/in^2\n",
+ " theta = 0.0138 radian , theta = 0.788 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate forces \n",
+ "D = 5.;## inches\n",
+ "HP = 120.;\n",
+ "RPM = 150.;\n",
+ "b = 5.;## inches\n",
+ "h = 1.;##inch\n",
+ "n = 6.;## no. of bolts\n",
+ "d = 3/4.;## inches\n",
+ "T = HP*33000.*12./(2.*math.pi*RPM);## lb-inches\n",
+ "f_s = T*16./(math.pi*27.);\n",
+ "f_k = T/(b*h*2.*d);\n",
+ "f_b = T/(n*0.25*math.pi*d**2 * b);## lb-inches\n",
+ "print'%s %.d %s %d %s %d %s'%('f_s =',f_s,'lb/in^2, f_k =',f_k,'lb/in^2, f_b =',f_b,' lb/in^2');\n",
+ "\n",
+ "##there are errors given in the answers given in the textbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "f_s = 9510 lb/in^2, f_k = 6722 lb/in^2, f_b = 3804 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'Maximum strain energys\n",
+ "d = 4.;##inches\n",
+ "T = 30.;## ton-inches\n",
+ "M = 20.;##ton-inches\n",
+ "m = 1/0.3;\n",
+ "f_s = 16.*T/(math.pi*d**3);## tons/in^2\n",
+ "f_b = 32*M/(math.pi*d**3);## tons/in^2\n",
+ "theta = 0.5*math.atan(T/M);## radians\n",
+ "theta1 = theta*180./math.pi;\n",
+ "theta2 = theta1+90.;\n",
+ "f1 = 0.5*f_b + math.sqrt(f_s**2 + 0.25*f_b**2);## tons/in^2\n",
+ "f2 = 0.5*f_b - math.sqrt(f_s**2 + 0.25*f_b**2);## tons/in^2\n",
+ "Ee = f1 - (f2/m);## tons/in^2\n",
+ "f = math.sqrt(f1**2 + f2**2 - 2*f1*f2/m);## tons/in^2\n",
+ "print'%s %.3f %s'%('Maximum strain is Ee = ',Ee,' tons/in^2');\n",
+ "print'%s %.3f %s'%(' Maximum strain energy is f = ',f,' tons/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum strain is Ee = 4.844 tons/in^2\n",
+ " Maximum strain energy is f = 4.995 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate diameter of the shaft in all different cases\n",
+ "HP = 80.;\n",
+ "RPM = 120.;\n",
+ "b = 10.;## feet\n",
+ "h = 3.;## feet\n",
+ "F = 8000.;## lb-wt\n",
+ "m = 4.;\n",
+ "T = HP*33000.*12./(2.*math.pi*RPM*2240.);## ton-inches\n",
+ "M = F*h*(b-h)*12./(b*2240.);## ton-inches\n",
+ "##(i) The major principal stress f1 is given by\n",
+ "f1 = 6;## tons/in^2\n",
+ "d1 = ((M+math.sqrt(M**2 + T**2))*16/(math.pi*f1))**(1/3.);## inches\n",
+ "\n",
+ "##(ii) If f_s_dash is the maximum intensity of shear stress\n",
+ "f_s_dash = 3;## tons/in^2\n",
+ "d2 = (math.sqrt(M**2 + T**2) * 16./(math.pi*f_s_dash))**(1/3.);## inches\n",
+ "\n",
+ "##(iii) If e is the major principal strain\n",
+ "Ee = 6.;## tons/in^2\n",
+ "d3 = (((1.-(1./m))*M + (1.+(1./m))*math.sqrt(M**2 + T**2))*16./(math.pi*Ee))**(1/3.);## inches\n",
+ "\n",
+ "##(iv) If f is the direct stress which, acting alone will produce the same maximum strain energy \n",
+ "f = 6.;## tons/in^2\n",
+ "d4 = ((math.sqrt(4*M**2 + 2.*(m+1.)*(T**2)/m))*16./(math.pi*f))**(1/3.);## inches\n",
+ "print'%s %.3f %s %.3f %s %.3f %s %.3f %s'%('The diameter of the shaft in different cases will be, (i) d = ',d1,' inches,(ii) d = ',d2,' inches , (iii) d = ',d3,' inches ,(iv) d = ',d4,'inches');\n",
+ "##there are round-off errors in the answers given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diameter of the shaft in different cases will be, (i) d = 5.365 inches,(ii) d = 5.384 inches , (iii) d = 5.370 inches ,(iv) d = 5.370 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum principal stress and The maximum shear intensity and maximum strain\n",
+ "D = 12.;## inches\n",
+ "d = 6.;## inches\n",
+ "HP = 2400.;\n",
+ "RPM = 80.;\n",
+ "M = 40.;## ton-feet\n",
+ "P = 25.;## tons\n",
+ "PR = 0.3;##poisson's ratio\n",
+ "A = 0.25*math.pi*(D**2 - d**2);## in**2\n",
+ "Z = (math.pi/32)*(D**4 - d**4)/D;## in**3\n",
+ "J = (math.pi/16)*(D**4 - d**4)/D;## in**3\n",
+ "p_0 = P/A ;## ton/in**2\n",
+ "p_b = M*12/Z ;## tons/in**2\n",
+ "f_b = p_0 + p_b;##tons/in**2\n",
+ "f_s = HP*33000*12/(2*math.pi*RPM*2240*J);## tons/in**2\n",
+ "theta = 0.5*math.atan(2*f_s/f_b);## radians\n",
+ "theta1 = theta*180/math.pi;## degrees\n",
+ "theta2 = theta1+90;##degrees\n",
+ "f_1 = 0.5*f_b + math.sqrt(f_s**2 + 0.25*f_b**2);##tons/in**2\n",
+ "f_2 = 0.5*f_b - math.sqrt(f_s**2 + 0.25*f_b**2);##tons/in**2\n",
+ "f = math.sqrt(0.25*f_b**2 + f_s**2);## tons/in**2\n",
+ "Ee = f_1 - PR*f_2;## tons/in**2\n",
+ "print'%s %.2f %s %.2f %s'%('The maximum principal stresse are f_1 = ',f_1,' tons/in**2.,compressive , f_2 = ',-f_2,' tons/in**2., tensile');\n",
+ "print'%s %.1f %s %.1f %s'%('theta1 = ',theta1,' degrees,theta2 =',theta2,'degrees');\n",
+ "print'%s %.1f %s '%(' The maximum shear intensity = ',f,'tons/in**2');\n",
+ "print'%s %.3f %s'%(' Maximum strain is, Ee =',Ee,'tons/in**2');\n",
+ "\n",
+ "##there are minute errors in the answers given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum principal stresse are f_1 = 4.78 tons/in**2.,compressive , f_2 = 1.47 tons/in**2., tensile\n",
+ "theta1 = 29.0 degrees,theta2 = 119.0 degrees\n",
+ " The maximum shear intensity = 3.1 tons/in**2 \n",
+ " Maximum strain is, Ee = 5.226 tons/in**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'The size of the shaft and angle of the twist in the shaft for a length \n",
+ "RPM = 180.;\n",
+ "P = 10.;## tons\n",
+ "v = 25.;## feet per minute\n",
+ "n = 64/100.;## efficiency of the crane\n",
+ "f = 5500.;## lb/in^2\n",
+ "l = 10.;## feet\n",
+ "N = 12*10**6.;## lb/in^2\n",
+ "W = P*v*2240./n;## ft-lbs\n",
+ "T = W*12./(2.*math.pi*RPM);## lb-inches\n",
+ "s = (T/(0.208*f))**(1/3.);## inches\n",
+ "theta = 7.11*T*l*12.*180./(math.pi*N*s**4.);## degrees\n",
+ "print'%s %.3f %s'%('The size of the shaft is s = ',s,' inches');\n",
+ "print'%s %.1f %s %.2f %s'%('The angle of the twist in the shaft for a length of ',l,' feet, theta =',theta,' degrees');\n",
+ "##there is a round-off error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of the shaft is s = 2.010 inches\n",
+ "The angle of the twist in the shaft for a length of 10.0 feet, theta = 2.32 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Shear stress induced and Shear stress induced and Energy stored\n",
+ "d = 3/8.;## inches\n",
+ "n = 12.;##no. of complete turns\n",
+ "D = 4.;## inches\n",
+ "W = 50.;## lb-wt\n",
+ "N = 12*10**6;## lb/in^2\n",
+ "T = W*0.5*D;## lb-inches\n",
+ "f_s = T*16./(math.pi*d*83);##lb/in^2\n",
+ "delta = 64.*W*(D**3 /8.)*n/(N*d**4.);## inches\n",
+ "E = 0.5*W*delta;## inch-lbs\n",
+ "print'%s %.d %s'%('Shear stress induced is f_s =',f_s,' lb/in^2');\n",
+ "print'%s %.3f %s'%(' Deflection under the pull is delta = ',delta,' inches');\n",
+ "print'%s %.3f %s'%(' Energy stored = ',E,' lb-inches');\n",
+ "\n",
+ "##there is a minute error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shear stress induced is f_s = 16 lb/in^2\n",
+ " Deflection under the pull is delta = 1.295 inches\n",
+ " Energy stored = 32.363 lb-inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The number of springs required\n",
+ "W = 2.;## tons\n",
+ "v = 4.;## miles per hour\n",
+ "n = 18.;## no. of coils\n",
+ "delta = 9.;## inches\n",
+ "N = 6000.;## tons/in^2\n",
+ "d = 1.;## inch\n",
+ "D = 8.;## inches\n",
+ "KE = 12.*(W*(v*44./30.)**2.)/(2.*32.);## inch-tons\n",
+ "P = (delta*N*d**4)/(64.*n*(0.5*D)**3);## tons\n",
+ "E = 0.5*P*delta;## inch-tons\n",
+ "m = KE/E ;## no. of springs required\n",
+ "print'%s %.d %s'%('The number of springs required m =',round(m),'');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of springs required m = 4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate height of drop\n",
+ "W = 5.;## cwt\n",
+ "n = 18.;## no. of coils\n",
+ "delta = 9.;## inches\n",
+ "d = 1.;## inch\n",
+ "D = 8.;## inches\n",
+ "N = 6000.;## tons/in^2\n",
+ "P = (delta*N*d**4.)/(64.*n*(0.5*D)**3);## tons\n",
+ "h = (0.5*P*delta*20./W)-delta;## inches\n",
+ "print'%s %.3f %s'%('The height of drop h = ',h,' inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The height of drop h = 4.184 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16-pg471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Maximum possible axial load and Deflection, delta\n",
+ "s = 1/4.;## inch\n",
+ "n = 12.;## no. of coils\n",
+ "D = 3.;## inches\n",
+ "f_s = 45000.;## lb/in^2\n",
+ "N = 12*10**6;## lb/in^2\n",
+ "T = 0.208*f_s*s**3;## lb-inches\n",
+ "W = T/(0.5*D);## lb-wt\n",
+ "theta = 7.11*T*math.pi*D*12./(N*s**4);##rdaians\n",
+ "delta = 0.5*D*theta;## inches\n",
+ "print'%s %.1f %s'%('Maximum possible axial load is W = ',W,' lb-wt');\n",
+ "print'%s %.3f %s'%(' Deflection, delta = ',delta,' inches');\n",
+ "\n",
+ "##there is a minute error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum possible axial load is W = 97.5 lb-wt\n",
+ " Deflection, delta = 3.763 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17-pg472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The bending stresses\n",
+ "d = 3/8.;## inches\n",
+ "n = 12.;##no. of complete turns\n",
+ "D = 4.;## inches\n",
+ "W = 50.;## lb-wt\n",
+ "N = 12.*10**6;## lb/in^2\n",
+ "E = 30.*10**6;## lb/in^2\n",
+ "M = 75.;## lb-inches\n",
+ "I = (math.pi/64.)*d**4;## in^4\n",
+ "Z = 2.*I/d;## in^3\n",
+ "f = M/Z ;## lb/in^2\n",
+ "phi = M*math.pi*D*12./(E*I);## radians\n",
+ "n_ = (phi/(2*math.pi)) + n;## increase in no. of turns\n",
+ "print'%s %.d %s'%('The bending stress is f = ',f,' lb/in^2');\n",
+ "print'%s %.3f %s'%(' n_new = ',n_,' turns');\n",
+ "\n",
+ "##there are minute errors in the answers given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The bending stress is f = 14486 lb/in^2\n",
+ " n_new = 12.062 turns\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex18-pg476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum intensity of shear stress and 'Deflection\n",
+ "d = 3/8.;## inches\n",
+ "n = 12.;##no. of complete turns\n",
+ "D = 4.;## inches\n",
+ "W = 50.;## lb-wt\n",
+ "N = 12.*10**6.;## lb/in^2\n",
+ "alpha = 15*math.pi/180.;## degrees\n",
+ "E = 30.*10**6.;## lb/in^2\n",
+ "T = W*0.5*D*math.cos(alpha);## lb-inches\n",
+ "M = W*0.5*D*math.sin(alpha);## lb-inches\n",
+ "J = math.pi*d**4 /32.;## in^4\n",
+ "I = math.pi*d**4 /64.;## in^4\n",
+ "delta = 64.*W*((D/2.)**3.)*n/math.cos(alpha)*((math.cos(alpha)**2.)/N + (2.*math.sin(alpha)**2.)/E)/d**4. ;## inches\n",
+ "f = 32.*W*0.5*D*math.sin(alpha)/(math.pi*d**3) ;## lb/in^2\n",
+ "f_s = T*16./(math.pi*d**3);## lb/in^2\n",
+ "f_1 = 0.5*f + math.sqrt(f_s**2. + 0.25*f**2.);## lb/in^2\n",
+ "f_2 = 0.5*f - math.sqrt(f_s**2. + 0.25*f**2.);## lb/in^2\n",
+ "f_s_dash = math.sqrt(f_s**2. + 0.25*f**2.);## lb/in^2\n",
+ "print'%s %.3f %s'%('Deflection, delta = ',delta,' inches');\n",
+ "print'%s %.d %s %.d %s'%(' f = ',f,' lb/in^2, f_s = ',f_s,' lb/in^2');\n",
+ "print'%s %.d %s'%('The maximum intensity of shear stress =',f_s_dash,' lb/in^2');\n",
+ "\n",
+ "##there are calculation errors in the answers given in textbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection, delta = 1.322 inches\n",
+ " f = 4999 lb/in^2, f_s = 9328 lb/in^2\n",
+ "The maximum intensity of shear stress = 9657 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex19-pg477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'Angle of rotation and 'Angle of rotation\n",
+ "d = 3/8.;## inches\n",
+ "n = 12.;##no. of complete turns\n",
+ "D = 4.;## inches\n",
+ "M = 75.;## lb-inches\n",
+ "N = 12.*10**6.;## lb/in**2\n",
+ "alpha = 15*math.pi/180.;## degrees\n",
+ "E = 30.*10.**6.;## lb/in**2\n",
+ "phi_dash = (64./d**4.)*M*0.5*D*n/math.cos(alpha)*((2.*(math.cos(alpha))**2.)/E + ((math.sin(alpha))**2)/N);## radians\n",
+ "DELTA = 64.*M*((0.5*D)**2.)*n*math.sin(alpha)*((1./N) - (2./E))/d**4.;## inches\n",
+ "print'%s %.2f %s %.3f %s'%('Angle of rotation phi_dash = ',phi_dash,' radians or ',phi_dash*180/math.pi,' degrees');\n",
+ "print'%s %.4f %s '%(' The axial deflection = ',DELTA,' inches');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle of rotation phi_dash = 0.41 radians or 23.422 degrees\n",
+ " The axial deflection = 0.0503 inches \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter13.ipynb b/Mechanics_of_Structures/Chapter13.ipynb
new file mode 100755
index 00000000..fb9b7fe7
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter13.ipynb
@@ -0,0 +1,366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b60753ad5256b26ed900efc57b1a6de06dc4217fa7384fe1bb9afe99a185fc77"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-Elements of reinforced concrete"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-486"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The stress induced in the concrete and steel and \n",
+ "b = 10.;##inches\n",
+ "d = 1.;##inches\n",
+ "h = 20.;##inches\n",
+ "r = 2.;##inches\n",
+ "M_r = 500000.;##lb-inches\n",
+ "m = 15.;\n",
+ "A_r = 4.*0.25*math.pi*d**2;##in^2\n",
+ "h_eff = h-r;##inches\n",
+ "K = m*A_r/(b*h_eff);##inches\n",
+ "n1 = math.sqrt((K)**2+(2*K))-K;\n",
+ "n = n1*h_eff;##inches\n",
+ "a = h_eff-(n/3);##inches\n",
+ "c = 2.*M_r/(b*n*a);##lb/in^2\n",
+ "t = (h_eff-n)*m*c/n;##lb/in^2\n",
+ "print'%s %.d %s'%('The stress induced in the concrete and steel, t =',t,'lb/in^2');\n",
+ "\n",
+ "##there is a minute error in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress induced in the concrete and steel, t = 10643 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The distance of the N.A from the top edge and The safe moment of inertia and The safe moment of inertia\n",
+ "b = 8.;##inches\n",
+ "d = 7/8.;##inches\n",
+ "h = 18.;##inches\n",
+ "r = 2.;##inches\n",
+ "c = 750.;##lb/in^2\n",
+ "t_limit = 18000.;##lb/in^2\n",
+ "m = 8.;\n",
+ "h_eff = 16.;##inches\n",
+ "m = 18;\n",
+ "A_t = 3*0.25*math.pi*d**2;##in^2\n",
+ "K = m*A_t/(b*h_eff);##inches\n",
+ "n1 = math.sqrt((K)**2.+(2.*K))-K;\n",
+ "n = n1*h_eff;##inches\n",
+ "a = h_eff - (n/3.);##inches\n",
+ "t = m*c*(h_eff-n)/n;##lb/in^2\n",
+ "\n",
+ "if t<t_limit:\n",
+ " t = t;\n",
+ "else:\n",
+ " t = t_limit;\n",
+ "\n",
+ "M_r = t*A_t*a;## lb/inches\n",
+ "W = M_r*8./(12.*h_eff);##lb-wt\n",
+ "print'%s %.3f %s'%('The distance of the N.A from the top edge, n =',n,'inches.');\n",
+ "print'%s %.d %s'%('The safe moment of inertia is, t =',t,'lb/in^2.');\n",
+ "print'%s %.d %s %d %s'% ('Unifromly distributed load over the beam, W =',W,'lb-wt. or',W/16.011,'lb. per foot run');\n",
+ "\n",
+ "##there are calculation errors given in the answer in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance of the N.A from the top edge, n = 8.039 inches.\n",
+ "The safe moment of inertia is, t = 13368 lb/in^2.\n",
+ "Unifromly distributed load over the beam, W = 13385 lb-wt. or 836 lb. per foot run\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Area of steel reinforcement required and Corresponding stress in steel \n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "def quadratic(d,M_c,c_limit,b):\n",
+ " p = ([1 , -(d*3), + M_c*3/(0.5*c_limit*b)]);\n",
+ " Z = numpy.roots(p);\n",
+ " return Z;\n",
+ "\n",
+ "b = 12.;##inches\n",
+ "h = 22.;##inches\n",
+ "r = 2.;##inches\n",
+ "W = 1500.;##lb per foot run\n",
+ "d = h-r;##feet\n",
+ "l = 20.;##inches\n",
+ "c_limit = 700.;## lb/in^2\n",
+ "m = 15.;\n",
+ "M_c = W*20.*l*b/8.;## lb-inches\n",
+ "Z = quadratic(d,M_c,c_limit,b);\n",
+ "n = round(Z[1]);\n",
+ "t = m*c_limit*(d-n)/n;## lb/in62\n",
+ "A_t = 0.5*c_limit*b*n/t;## in^2\n",
+ "print'%s %.d %s'%('Area of steel reinforcement required is, A_t =',A_t,'in^2');\n",
+ "print'%s %.d %s'%(' Corresponding stress in steel is, t =',t,'lb/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of steel reinforcement required is, A_t = 13 in^2\n",
+ " Corresponding stress in steel is, t = 4500 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Effective deapth\n",
+ "m = 15.;\n",
+ "t = 18000.;## lb/in^2\n",
+ "c = 700.;## lb/in^2\n",
+ "b = 12.;## inches\n",
+ "M = 900000.;##bending moment lb/inches\n",
+ "k1 = 1./((t/(m*c))+1.);##k = n/d\n",
+ "k2 = 1.-k1/3.;##k2 = a/d\n",
+ "p = 0.5*c*k1/(t);\n",
+ "d = math.sqrt(M/(0.5*c*b*k1*k2));##inches\n",
+ "A_t = p*b*d;## sq.inches\n",
+ "A_t_previous = 0.25*math.pi*(7/8.)**2;##section area with diameter 7/8 inches\n",
+ "n = A_t/A_t_previous;\n",
+ "print'%s %.2f %s'%('Effective deapth is d =',d,'inches');\n",
+ "print'%s %.3f %s'%('A_t =',A_t,'sq.inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Effective deapth is d = 25.75 inches\n",
+ "A_t = 2.214 sq.inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the effective death\n",
+ "l = 20.;##feet\n",
+ "W = 500.;## lb per foot run\n",
+ "c = 750.;## lb/in^2\n",
+ "t = 18000.;## lb/in^2\n",
+ "m = 15.;\n",
+ "BM_max = W*l*l*12./8. ;## lb-inches\n",
+ "##by making the effective deapth d twice the width b\n",
+ "d = (BM_max/(126.*0.5))**(1/3.);##inches\n",
+ "b = 0.5*d;##inches\n",
+ "##necessary reinforcement is 0.8% of concrete section\n",
+ "A_t = 0.008*b*d;## in^2\n",
+ "print'%s %.2f %s %.2f %s'%('d =',d,'inches ,b =',b,'inches');\n",
+ "print'%s %.3f %s'%('A_t =',A_t,'in^2');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "d = 16.82 inches ,b = 8.41 inches\n",
+ "A_t = 1.132 in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate d1 and d2 and r1\n",
+ "W = 180.;## lb per sq.foot\n",
+ "l = 10.;## feet\n",
+ "b = 12.;##inches\n",
+ "c = 750.;## lb/in^2\n",
+ "m = 15.;\n",
+ "M = W*l*l*12./8.;##lb-inches\n",
+ "d_new = math.sqrt(M/(126.*b));##inches\n",
+ "A_t = 0.8*b*d_new/100.;##in^2\n",
+ "##using 3/8 inch rods \n",
+ "d1 = 3/8.;##inches\n",
+ "A1 = 0.25*math.pi*(d1)**2;##in^2 \n",
+ "r1 = A1*b/A_t;##inch\n",
+ "##using 1/2 inch rods \n",
+ "d2 = 1/2.;##inches\n",
+ "A2 = 0.25*math.pi*(d2)**2;##in^2 \n",
+ "r2 = A2*b/A_t;##inches\n",
+ "print'%s %.3f %s'%('d =',d_new,'inches');\n",
+ "print'%s %.3f %s'%('A_t =',A_t,'in^2');\n",
+ "print'%s %.3f %s %.2f %s'%('Using',d1,'inch rods, spacing centre to centre will be',r1,'inches');\n",
+ "print'%s %.2f %s %.1f %s'%('Using ',d2,' inch rods, spacing centre to centre will be ',r2,' inches');\n",
+ "##there are round-off errors in the answer given in textbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "d = 4.226 inches\n",
+ "A_t = 0.406 in^2\n",
+ "Using 0.375 inch rods, spacing centre to centre will be 3.27 inches\n",
+ "Using 0.50 inch rods, spacing centre to centre will be 5.8 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg495"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate foot width of slab and spacing centre to centre \n",
+ "l = 12.;##feet\n",
+ "w = 150.;## lb per sq.foot\n",
+ "##Live load\n",
+ "LL = w*l;##lb-wt\n",
+ "##Dead Load assuming the slab thickness to be 6 inches\n",
+ "t = 6.;##inches\n",
+ "DL = t*l*12.;##lb-wt\n",
+ "##total load\n",
+ "W = LL+DL;##lb-wt\n",
+ "M = W*l*12./10.;##lb-inches\n",
+ "d = math.sqrt(M/(12.*126.));\n",
+ "print'%s %.4f %s'%('d =',d,'inches');\n",
+ "##With about an inch to cover the slab will be 6 inch thick\n",
+ "A_t = 0.8*l*d/100.;## in^2\n",
+ "##using 1/2 inch rods \n",
+ "d1 = 1/2.;##inches\n",
+ "A1 = 0.25*math.pi*(d1)**2;##in^2 \n",
+ "r1 = A1*l/A_t;##inches\n",
+ "print'%s %.4f %s'%(' Per foot width of slab, A_t =',A_t,'in^2');\n",
+ "print'%s %.2f %s %.3f %s'%('Using',d1,'inch rods, spacing centre to centre will be ',r1,' inches');\n",
+ "##there are minute calculation errors in the answer given in textbook.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "d = 5.0370 inches\n",
+ " Per foot width of slab, A_t = 0.4836 in^2\n",
+ "Using 0.50 inch rods, spacing centre to centre will be 4.873 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter2.ipynb b/Mechanics_of_Structures/Chapter2.ipynb
new file mode 100755
index 00000000..42876b36
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter2.ipynb
@@ -0,0 +1,309 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1983ff28cbb6fa2f27736543d13290cc4b84b616fb5e9a5a775ca4d190cec891"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2-Principal planes and principal stress"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Normal stress intensity and Tangential stress intensity and Resultant stress intensity and angle\n",
+ "p_1 = 5.;##principal stress in tons/in^2\n",
+ "p_2 = 5./2.;##principal stress in tons/in^2\n",
+ "theta = 50*math.pi/180;##angle in degrees\n",
+ "p_n = p_1*math.cos(theta)**2+p_2*math.sin(theta)**2;##normal stress intensity\n",
+ "p_t = (p_1-p_2)*math.sin(theta)*math.cos(theta);##tangential stress intensity\n",
+ "p = math.sqrt((p_1*math.cos(theta))**2+(p_2*math.sin(theta))**2);##resultant intensity of stress\n",
+ "alpha = math.atan((p_2*math.sin(theta))/(p_1*math.cos(theta)));##in radians\n",
+ "alpha = alpha*180/math.pi;##in degrees\n",
+ "print'%s %.2f %s'%('Normal stress intensity p_n = ',p_n,' tons/in^2');\n",
+ "print'%s %.2f %s'%('h Tangential stress intensity p_t = ',p_t,' tons/in^2');\n",
+ "print'%s %.2f %s'%(' Resultant stress intensity p = ',p,'tons/in^2');\n",
+ "print'%s %.2f %s'%(' angle alpha p_n = ',alpha,' degrees');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normal stress intensity p_n = 3.53 tons/in^2\n",
+ "h Tangential stress intensity p_t = 1.23 tons/in^2\n",
+ " Resultant stress intensity p = 3.74 tons/in^2\n",
+ " angle alpha p_n = 30.79 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The inclination of principal planes to the axis of the bolt and p_2 and Maximum shear stress is p_max and stress which acting alone will produce the same maximum strain \n",
+ "d = 3./4. ;##inches\n",
+ "P = 2.;##tons\n",
+ "Q = 0.5;##tons\n",
+ "m = 4.;\n",
+ "A = 0.25*math.pi*d**2;##in^2\n",
+ "p = P/A ;##tons/in^2\n",
+ "q = Q/A;##tons/in^2\n",
+ "theta = 0.5*math.atan(2.*q/p);##radians\n",
+ "theta1 = theta*180/math.pi;##degrees\n",
+ "theta2 = theta1+90;##degrees\n",
+ "print'%s %.2f %s'%('The inclination of principal planes to the axis of the bolt will be',theta1,'degres') \n",
+ "print'%s %.2f %s'%('The inclination of principal planes to the axis of the bolt will be',180-theta2,'degrees') \n",
+ "print'%s %.2f %s'%('The inclination of maximum shear planes to the axis of the bolt will be',theta1+45,'degress')\n",
+ "print'%s %.2f %s'%('The inclination of principal planes to the axis of the bolt will be',180-theta2-45,'degrees')\n",
+ "\n",
+ "p_1 = 0.5*p+math.sqrt(0.25*p**2+q**2);##tons/in^2\n",
+ "p_2 = 0.5*p-math.sqrt(0.25*p**2+q**2);##tons/in^2\n",
+ "p_max = 0.5*(p_1-p_2);##tons/in^2\n",
+ "p_s = p_1-(p_2/m);##tons/in^2 \n",
+ "print'%s %.2f %s'%('The principal stresse are given by p_1 =',p_1,'tons/in^2.,tensile')\n",
+ "print'%s %.2f %s'%('p_2 =',p_2,'tons/in^2.,compressive')\n",
+ "print'%s %.2f %s'%('p_2 =',p_2,'tons/in^2 .,compressive');\n",
+ "print'%s %.2f %s'%('Maximum shear stress is p_max =',p_max,'tons/in^2');\n",
+ "print'%s %.2f %s'%('The stress which acting alone will produce the same maximum strain is given by,',p_s,'tons/in^2');\n",
+ "\n",
+ "##there is an error in the answer given in text book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The inclination of principal planes to the axis of the bolt will be 13.28 degres\n",
+ "The inclination of principal planes to the axis of the bolt will be 76.72 degrees\n",
+ "The inclination of maximum shear planes to the axis of the bolt will be 58.28 degress\n",
+ "The inclination of principal planes to the axis of the bolt will be 31.72 degrees\n",
+ "The principal stresse are given by p_1 = 4.79 tons/in^2.,tensile\n",
+ "p_2 = -0.27 tons/in^2.,compressive\n",
+ "p_2 = -0.27 tons/in^2 .,compressive\n",
+ "Maximum shear stress is p_max = 2.53 tons/in^2\n",
+ "The stress which acting alone will produce the same maximum strain is given by, 4.86 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The principal stresses and The maximum shear stress and the planes offering it being inclined and the normal stress intensity \n",
+ "q = 2.;##tons/in^2\n",
+ "p = 5.;##tons/in^2\n",
+ "p_dash = 2.;##tons/in^2\n",
+ "theta = 0.5*math.atan(2*q/(p-p_dash));##radians\n",
+ "theta1 = theta*180/math.pi;##degrees\n",
+ "theta2 = theta1+90;##degrees\n",
+ "p_1 = 0.5*(p+p_dash)+math.sqrt(q**2 + 0.25*(p-p_dash)**2);##tons/in^2\n",
+ "p_2 = 0.5*(p+p_dash)-math.sqrt(q**2 + 0.25*(p-p_dash)**2);##tons/in^2\n",
+ "q_max = 0.5*(p_1-p_2);##tons/in^2\n",
+ "print'%s %.2f %s'%('The principal stresses are p_1 =',p_1,'tons/in^2 .,tensile')\n",
+ "print'%s %.2f %s'%('The principal stresses arep_2 =',p_2,'tons/in^2., tensile');\n",
+ "print'%s %.1f %s'%('The maximum shear stress is',q_max,'tons/in^2.,') \n",
+ "print'%s %.2f %s'%('the planes offering it being inclined at',theta1+45,'degrees') \n",
+ "print'%s %.2f %s'%('the planes offering it being inclined at',theta2+45,'degrees')\n",
+ "print'%s %.2f %s'%('to the plane having the normal stress intensity of',p,'tons/in^2.')\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The principal stresses are p_1 = 6.00 tons/in^2 .,tensile\n",
+ "The principal stresses arep_2 = 1.00 tons/in^2., tensile\n",
+ "The maximum shear stress is 2.5 tons/in^2.,\n",
+ "the planes offering it being inclined at 71.57 degrees\n",
+ "the planes offering it being inclined at 161.57 degrees\n",
+ "to the plane having the normal stress intensity of 5.00 tons/in^2.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate theta1 and theta2 and P_1 and P_2 and maximum shear intensity\n",
+ "p_res = 6.;##tons/in^2\n",
+ "p_dash = 4.;##tons/in^2\n",
+ "theta = 30.*math.pi/180.;##degrees\n",
+ "p_n = 4.;##tons/in^2\n",
+ "p = p_res*math.cos(theta);##tons/in^2\n",
+ "q = p_res*math.sin(theta);##tons/in^2\n",
+ "L = 2*q/(p-p_dash);\n",
+ "theta = 0.5*math.atan(2*q/(p-p_dash));\n",
+ "theta1 = theta*180/math.pi;##degrees\n",
+ "theta2 = theta1+90;##degrees\n",
+ "p_1 = 0.5*(p+p_dash)+math.sqrt(q**2 + 0.25*(p-p_dash)**2);##tons/in^2\n",
+ "p_2 = 0.5*(p+p_dash)-math.sqrt(q**2 + 0.25*(p-p_dash)**2);##tons/in^2\n",
+ "p_max = 0.5*(p_1-p_2);##tons/in^2\n",
+ "print'%s %.2f %s'%('Theta1 =',theta1,'degrees') \n",
+ "print'%s %.2f %s'%('Theta2 =',theta2,'degrees')\n",
+ "print'%s %.2f %s'%('p_1 =',p_1,'tons/in^2.,tensile')\n",
+ "print'%s %.2f %s'%('p_2 =',p_2,'tons/in^2.,tensile')\n",
+ "print'%s %.2f %s'%('The maximum shear intensity will be',p_max,'tons/in^2 across the planes of maximum shear.');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theta1 = 39.36 degrees\n",
+ "Theta2 = 129.36 degrees\n",
+ "p_1 = 7.66 tons/in^2.,tensile\n",
+ "p_2 = 1.54 tons/in^2.,tensile\n",
+ "The maximum shear intensity will be 3.06 tons/in^2 across the planes of maximum shear.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate tensiles and compressive \n",
+ "p_1 = 7.;##tons/in^2\n",
+ "p_2 = 4.;##tons/in^2\n",
+ "p_3 = 3.;##tons/in^2\n",
+ "m = 4.;\n",
+ "E = 13000.;##tons/in^2\n",
+ "e_1 = (p_1/E)+(p_2/(m*E))-(p_3/(m*E));\n",
+ "e_2 = (p_2/E)+(p_1/(m*E))+(p_3/(m*E));\n",
+ "e_3 = (p_3/E)-(p_1/(m*E))+(p_2/(m*E));\n",
+ "print'%s %.4f %s'%('e_1 =',e_1,'tensile')\n",
+ "print'%s %.4f %s'%('e_2 =',e_2,'compressive')\n",
+ "print'%s %.4f %s'%('e_3 =',e_3,'tensile')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e_1 = 0.0006 tensile\n",
+ "e_2 = 0.0005 compressive\n",
+ "e_3 = 0.0002 tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the contraction in the length \n",
+ "a = 2.;##inches\n",
+ "l = 6.;##inches\n",
+ "E = 13000.;##tons/In^2\n",
+ "m = 1./0.3;\n",
+ "P = 20.;##tons\n",
+ "p_1 = P/a**2;##tons/in^2\n",
+ "p_2 = p_1/(2.*(m-1));##tons/in^2\n",
+ "e_1 = (5.-0.6*p_2)/E;##tons/in^2\n",
+ "del_l = e_1*l;##inches\n",
+ "print'%s %.4f %s'%('The contraction in the length del_l =',del_l,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The contraction in the length del_l = 0.0020 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter3.ipynb b/Mechanics_of_Structures/Chapter3.ipynb
new file mode 100755
index 00000000..59d8003c
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter3.ipynb
@@ -0,0 +1,283 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fda2efbde9309c997fd1c5768ac3e3ef47209d8a8fc8385592f593bd1834cc52"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3-Impact or shock loading:strain energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex1-pg63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum instantaneous stress produced and corresponding strain work done on the rod and stored\n",
+ "d = 3./2.;##inches\n",
+ "l = 10.;##feet\n",
+ "P = 8.;##tons\n",
+ "E = 13500.;##tons/in^2\n",
+ "A = 0.25*math.pi*d**2;##in^2\n",
+ "p = 2.*P/A;## tons/in^2\n",
+ "e = p/E;\n",
+ "del_l = e*l*12.;##inches\n",
+ "W = P*del_l;##inch-ton\n",
+ "print'%s %.2f %s'%('The maximum instantaneous stress produced is, p =',p,'tons/in^2');\n",
+ "print'%s %.4f %s'%('The corresponding strain is e =',e,'') \n",
+ "print'%s %.2f %s'%('del_l =',del_l,'inches')\n",
+ "print'%s %.2f %s'%('The work done on the rod and stored by it is',W,'inch-ton.');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum instantaneous stress produced is, p = 9.05 tons/in^2\n",
+ "The corresponding strain is e = 0.0007 \n",
+ "del_l = 0.08 inches\n",
+ "The work done on the rod and stored by it is 0.64 inch-ton.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Maximum instantaneous and extension stress produced\n",
+ "l = 6.;##feet\n",
+ "d = 1.;##inches\n",
+ "h = 4.;##inches\n",
+ "E = 30*10**6;##lb/in^2\n",
+ "A = 0.25*math.pi*d**2;##in^2\n",
+ "P = 50.;##lb\n",
+ "p = (P/A)+math.sqrt((P**2/A**2)+(2*E*P*h)/(A*l*12.));\n",
+ "e = p/E;\n",
+ "del_l = e*l*12.##inches\n",
+ "print'%s %.d %s'%('Maximum instantaneous stress produced is p =',p,'lb/in^2');\n",
+ "print'%s %.3f %s'%('Maximum instantaneous extension produced is del_l =',del_l,'lb/in^2');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum instantaneous stress produced is p = 14631 lb/in^2\n",
+ "Maximum instantaneous extension produced is del_l = 0.035 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Instantaneous elongation and Height of the drop\n",
+ "l = 10.;##feet\n",
+ "d = 5./4.;##inches\n",
+ "p = 8.;##tons/in^2\n",
+ "E = 13000.;##tons/in^2\n",
+ "A = 0.25*math.pi*d**2;##in^2\n",
+ "e = p/E;\n",
+ "del_l = e*l*12.;##inches\n",
+ "W = 0.5*p**2*A*l*12./E;## inch-ton\n",
+ "h = W*10.-del_l;##inches\n",
+ "print'%s %.3f %s'%('Instantaneous elongation is del_l =',del_l,'inches')\n",
+ "print'%s %.2f %s'%('Height of the drop is h =',h,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Instantaneous elongation is del_l = 0.074 inches\n",
+ "Height of the drop is h = 3.55 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Maximum instantaneous extension and stress\n",
+ "w = 4.;##tons\n",
+ "v = 2.;##miles per hour\n",
+ "l = 150.;##feet\n",
+ "d = 3./2.;##inches\n",
+ "E = 13000.;## tons/in^2\n",
+ "g = 32.;## ft/sec^2\n",
+ "A = 0.25*math.pi*d**2;## in^2\n",
+ "KE = w*(v*17.6)**2/(2*g*12);## inch-tons\n",
+ "p = math.sqrt(KE*(2.*E)/(A*l*12.));## tons/in^2\n",
+ "del_l = p*l*12./E;## inches\n",
+ "print'%s %.2f %s'%('Maximum instantaneous stress produced is p =',p,'tons/in^2')\n",
+ "print'%s %.f %s'%('Maximum instantaneous extension produced is del_l =',del_l,'inch')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum instantaneous stress produced is p = 7.26 tons/in^2\n",
+ "Maximum instantaneous extension produced is del_l = 1 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Maximum instantaneous stress and extension \n",
+ "d = 2.;##inches\n",
+ "l = 8.;##feet\n",
+ "U = 50.;## ft-lbs\n",
+ "E = 28.*10**6;## lb/in^2\n",
+ "V = 0.25*math.pi*d**2*l*12.;## in^3\n",
+ "p = math.sqrt(2*U*12.*E/V);## lb/in^2\n",
+ "e = p/E;\n",
+ "del_l = e*l*12.;## inches\n",
+ "print'%s %.1f %s'%('Maximum instantaneous stress produced is p =',p,'lb/in^2');\n",
+ "print'%s %.4f %s'%('Maximum instantaneous extension produced is del_l =',del_l,'inches');\n",
+ "##there is an error in the answer given in text book\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum instantaneous stress produced is p = 10555.0 lb/in^2\n",
+ "Maximum instantaneous extension produced is del_l = 0.0362 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# calculate Maximum instantaneous stress and Ratio of energies stored if both bars are allowed to reach the proof stress and Ratio of energies stored at the same stress per unit volume\n",
+ "l = 12.;##feet\n",
+ "d1_A = 1.;##inch\n",
+ "d2_A = 2.;##inches\n",
+ "l1_A = 4.;##inches\n",
+ "l2_A = 8.;##inches\n",
+ "d1_B = 1.;##inch\n",
+ "d2_B = 2.;##inches\n",
+ "l1_B = 8.;##inches\n",
+ "l2_B = 4.;##inches\n",
+ "p_A = 15./2.;## tons/in^2\n",
+ "p_B = math.sqrt((2./3.)*p_A**2);## tons/in^2\n",
+ "r1 = (9*math.pi/8.)/(3*math.pi/4.);##ratio of energies if both bars are allowed to reach the proof stress\n",
+ "V_A = 0.25*math.pi*d1_A**2*l1_A+ 0.25*math.pi*d2_A**2*l2_A;## in^3\n",
+ "V_B = 0.25*math.pi*d1_B**2*l1_B+ 0.25*math.pi*d2_B**2*l2_B;## in^3\n",
+ "r2 = ((3./16.)*p_B**2)/((1./12.)*p_B**2);##ratio of enrgies\n",
+ "print'%s %.2f %s'%('Maximum instantaneous stress produced is p_B =',p_B,'tons/in^2')\n",
+ "print'%s %.2f %s'%('Ratio of energies stored if both bars are allowed to reach the proof stress is r1 =',r1,'');\n",
+ "print'%s %.2f %s'%('Ratio of energies stored at the same stress per unit volume, is r2 =',r2,'');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum instantaneous stress produced is p_B = 6.12 tons/in^2\n",
+ "Ratio of energies stored if both bars are allowed to reach the proof stress is r1 = 1.50 \n",
+ "Ratio of energies stored at the same stress per unit volume, is r2 = 2.25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter5.ipynb b/Mechanics_of_Structures/Chapter5.ipynb
new file mode 100755
index 00000000..8282741d
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter5.ipynb
@@ -0,0 +1,1225 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:369e99bb86bfee04526d8c71fa878425d0c2630ec6c7783b1e559db8ef69fb9f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5-Beams and bending"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum intensity of stress\n",
+ "b = 6.;## inches \n",
+ "t = 1./2.;## inch\n",
+ "R = 40.;## feet\n",
+ "E = 13000.;## tons/in^2\n",
+ "y = t/2.;## inch\n",
+ "f = (E/(R*12.))*(y);## tons/in^2\n",
+ "print'%s %.2f %s'%('The maximum intensity of stress induced is f =',f,'tons/in^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum intensity of stress induced is f = 6.77 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate moment of resistance and The radius to which it should be bent \n",
+ "d = 14.;## inches\n",
+ "I = 442.57;##inch units\n",
+ "f = 8.;## tons/in^2\n",
+ "E = 13000.;## tons/in^2\n",
+ "R = E*d/(2.*f);## inches\n",
+ "M_r = f*(I/(d/2.));## ton-inches\n",
+ "print'%s %.d %s'%('The radius to which it should be bent is R =',R,'inches')\n",
+ "print'%s %.1f %s'%('The radius to which it should be bent is R =',R/12,'feet');\n",
+ "print'%s %.1f %s'%('The moment of resistance is M_r =',M_r,'ton-inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius to which it should be bent is R = 11375 inches\n",
+ "The radius to which it should be bent is R = 947.9 feet\n",
+ "The moment of resistance is M_r = 505.8 ton-inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg141\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the load is uniformly spread over its span and the load is concentrated at the centre \n",
+ "d = 16.;## inches\n",
+ "I = 618.;## inch units\n",
+ "l = 24.;## feet\n",
+ "f = 15./2.;## tons/in^2\n",
+ "Z = I/(d/2.);## inch-units\n",
+ "M_r = f*Z;## ton-inches\n",
+ "##If the load is uniformly spread over its span,BM = W*l/8\n",
+ "W1 = 8.*M_r/(12.*l);##tons\n",
+ "##If the load is concentrated at the centre,BM = W*l/4\n",
+ "W2 = 4.*M_r/(12.*l);##tons\n",
+ "print'%s %.1f %s'%('If the load is uniformly spread over its span, then W is given by W1=',W1,'tons')\n",
+ "print'%s %.3f %s'%('If the load is uniformly spread over its span, then W is given by W1 =',W1/l,'ton per foot run');\n",
+ "print'%s %.2f %s'%('If the load is concentrated at the centre, then W is given by W =',W2,'tons')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the load is uniformly spread over its span, then W is given by W1= 16.1 tons\n",
+ "If the load is uniformly spread over its span, then W is given by W1 = 0.671 ton per foot run\n",
+ "If the load is concentrated at the centre, then W is given by W = 8.05 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculalte The maximum permissible span for this beam\n",
+ "d = 20.;## inches\n",
+ "I = 1673.;## inch units\n",
+ "W = 3./4.;## ton per foot run\n",
+ "f = 8.;## tons/in^2\n",
+ "Z = I/(d/2.);## inch-units\n",
+ "M_r = f*Z;## ton-inches\n",
+ "l = math.sqrt(M_r*32/(3*12));##feet\n",
+ "print'%s %.2f %s'%('The maximum permissible span for this beam is l =',l,'feet')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum permissible span for this beam is l = 34.49 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate X\n",
+ "w = 160.;## lb. per sq. foot\n",
+ "b = 3.;## inches\n",
+ "d = 9.;## inches\n",
+ "l = 15.;## feet\n",
+ "f = 1200.;## lb. per sq. inch\n",
+ "Z = (1./6.)*b*d**2;## in^3\n",
+ "M_r = f*Z;## lb-inches\n",
+ "x = M_r/(w*l**2*12./8.);## feet\n",
+ "print'%s %.1f %s'%('x =',x,'feet');\n",
+ "\n",
+ "##The answer is correct only, but it is approximated in the text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 0.9 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate area of cross section of beam\n",
+ "l = 20.;## feet\n",
+ "b = 9.;## inches\n",
+ "h = 10.;## feet\n",
+ "w = 120.;## lb. per cub. foot\n",
+ "f = 1100.;## lb/in^2\n",
+ "W = w*(3./4.)*l*h;## lb-wt\n",
+ "BM_max = W*l*12./8.;## lb-inches\n",
+ "##assumnig d = 2b\n",
+ "b = (6.*BM_max/(f*4.))**(1/3.);## inches\n",
+ "d = 2.*b;## inches\n",
+ "print'%s %.3f %s'%('b =',b,'inches')\n",
+ "print'%s %.2f %s'%('d =',d,'inches',)\n",
+ "print'%s %.d %s'%('A section',b,'') \n",
+ "print'%s %.d %s'%('X',d,'will therfore do.')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b = 9.030 inches\n",
+ "d = 18.06 inches\n",
+ "A section 9 \n",
+ "X 18 will therfore do.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate beam of area\n",
+ "B = 5.;## inches\n",
+ "D = 12.;## inches\n",
+ "t1 = 0.55;## inches\n",
+ "t2 = 0.35;## inches\n",
+ "f = 15./2.;## tons/in^2\n",
+ "l = 16.;## feet\n",
+ "b = B-t2;## inches\n",
+ "d = D-2.*t1;## inches\n",
+ "I_xx = (B*D**3 - b*d**3)/12.;## in^4\n",
+ "Z = I_xx/6.;## in^3\n",
+ "M_r = f*Z;## ton-inches\n",
+ "W = M_r/(l*12./8.);## tons\n",
+ "w = W/l;## ton per foot run\n",
+ "print'%s %.2f %s'%('W =',W,'tons')\n",
+ "print'%s %.2f %s'%('w =',w,'ton per foot run')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "W = 11.36 tons\n",
+ "w = 0.71 ton per foot run\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum stress\n",
+ "D = 19.5;## inches\n",
+ "d = 18.;## inches\n",
+ "l = 30.;## feet\n",
+ "t1 = 3./4.;## inch\n",
+ "rho1 = 450.;## lb. per cub. foot\n",
+ "rho2 = 62.5;## lb. per cub. foot\n",
+ "A = 0.25*math.pi*(D**2 - d**2);## sq. in\n",
+ "DW = rho1*l*A/144.;## lb-wt\n",
+ "WW = rho2*0.25*math.pi*(D-d)**2*l;## lb-wt\n",
+ "W = DW+WW;## lb-wt\n",
+ "BM_max = W*l*0.0004467202*12./8.;## ton-inches\n",
+ "I_xx = (math.pi/64)*(D**4 - d**4);## in^4\n",
+ "Z_xx = I_xx/(0.5*d+t1);## ton/in^2\n",
+ "f = BM_max/Z_xx;## ton/in^2\n",
+ "print'%s %.3f %s'%('The maximum stress f =',f,'ton/in^2');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress f = 0.751 ton/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum permissible span for this beam\n",
+ "b = 6.;## inches\n",
+ "d = 12.;## inches\n",
+ "t1 = 7./8;## inch\n",
+ "t2 = 1./2.;## inch\n",
+ "I_xx = (1./12.)*(b*d**3 - (b-t2)*(d-2*t1)**3);## in^4\n",
+ "Z1 = I_xx/b;## in ^3\n",
+ "A = 2*b*t1 + 0.5*(d-2*t1);## in^2\n",
+ "b = math.sqrt(A/2);## inches\n",
+ "d = 2.*b;## inches\n",
+ "Z2 = (1./6.)*b*d**2;## in^3\n",
+ "k = Z1/Z2 ;\n",
+ "print'%s %.2f %s'%('The ratio of strengths Z1/Z2 =',k,'');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of strengths Z1/Z2 = 4.24 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the strength of the solid circular section is taken as unity\n",
+ "A = 15.625;## in**2\n",
+ "Z1 = 61.75;## in**3\n",
+ "Z2 = 14.63;## in**3\n",
+ "d = math.sqrt(4.*A/math.pi);## inches\n",
+ "Z3 = (math.pi/32.)*d**3.;## in**3\n",
+ "R1 = Z1/Z3;\n",
+ "R2 = Z2/Z3;\n",
+ "print('If the strength of the solid circular section is taken as unity') \n",
+ "print'%s %.2f %s %.2f %s'%('that of the rectangular section is',R1,' and of the I-section it is ',R2,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "If the strength of the solid circular section is taken as unity\n",
+ "that of the rectangular section is 7.09 and of the I-section it is 1.68 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Position of the c.g of the sections\n",
+ "D = 8.;##h inches\n",
+ "B = 3.;## inches\n",
+ "t1 = 1/2.;## inch\n",
+ "t2 = 3/8.;## inch\n",
+ "b = B-t2;## inches\n",
+ "d = D-2.*t1;## inches\n",
+ "a1 = t1*B;## in**2\n",
+ "x1 = 0.5*B;## inches\n",
+ "a2 = t2*(D-2.*t1);## in**2\n",
+ "x2 = 0.5*t2;## inches\n",
+ "a3 = B*t1;## in**2\n",
+ "x3 = 0.5*B;## inches\n",
+ "a = a1+a2+a3;## in**2\n",
+ "P = (a1*x1+a2*x2+a3*x3)/(a1+a2+a3);## inches\n",
+ "I_xx = (1/12.)*(B*D**3. - b*d**3.);## in**4\n",
+ "I_AB = (1/3.)*t1*B**3. + (1/3.)*d*t2**3. + (1/3.)*t1*B**3.;## in**4\n",
+ "I_yy = I_AB - a*P**2.;## in**4\n",
+ "print'%s %.3f %s'%('Position of the c.g of the section P = ',P,' inches');\n",
+ "print'%s %.4f %s'%('I_xx = ',I_xx,'in**4')\n",
+ "print'%s %.3f %s' %('I_yy =',I_yy,'in**4');\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Position of the c.g of the section P = 0.887 inches\n",
+ "I_xx = 52.9688 in**4\n",
+ "I_yy = 4.692 in**4\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14-pg163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The position of the c.g and Maximum stresses induced\n",
+ "b = 6.;## inches\n",
+ "d = 4.;## inches\n",
+ "t = 5/8.;## inch\n",
+ "a1 = d*t;## in^2\n",
+ "y1 = d/2.;## inches\n",
+ "a2 = (b-t)*t;## in^2\n",
+ "y2 = t/2.;## inch\n",
+ "a = a1+a2;## in^2\n",
+ "J = (a1*y1+a2*y2)/(a1+a2);## inches\n",
+ "I_AB = (1/3.)*t*d**3 + (1/3.)*(b-t)*t**3;## in^4\n",
+ "I_xx = I_AB - a*J**2.;## in^4\n",
+ "I_yy = (1/12.)*t*b**3. + (1/12.)*(d-t)*t**3.;## in^4\n",
+ "print'%s %.1f %s'%('The position of the c.g is J = ',J,' inches');\n",
+ "print'%s %.2f %s %.2f %s'%(' I_xx =',I_xx,' in^4,'' I_yy = ',I_yy,'in^4');\n",
+ "\n",
+ "\n",
+ "##14(a)\n",
+ "H = 18.;## feet\n",
+ "l = 10.;## feet\n",
+ "w = 3/2.;## cwt/ per .sq. foot\n",
+ "y_c = 2.97;## inches\n",
+ "y_t = 1.03;## inches\n",
+ "W = (3/40.)*(w*l);## tons\n",
+ "BM_max = W*l*12./8.;## ton-inches\n",
+ "M_r = BM_max;## ton-inches\n",
+ "f_c = M_r*y_c/I_xx ;## tons/in^2\n",
+ "f_t = M_r*y_t/I_xx ;## tons/in^2\n",
+ "print'%s %.2f %s %.2f %s'%(' Maximum stresses induced are f_c = ',f_c,' tons/in^2,''f_t = ',f_t,' tons/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The position of the c.g is J = 1.0 inches\n",
+ " I_xx = 7.52 in^4, I_yy = 11.32 in^4\n",
+ " Maximum stresses induced are f_c = 6.66 tons/in^2,f_t = 2.31 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex15-pg165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The position of c.g is x_bar and Total uniformly distribute load over the span\n",
+ "b = 5.;## inches\n",
+ "d = 4.;## inches\n",
+ "t = 1/2.;## inches\n",
+ "a1 = b*t;## in**2\n",
+ "x1 = t/2.;## inches\n",
+ "y1 = b/2.;## inches\n",
+ "a2 = (d-t)*t;## in**2\n",
+ "y2 = t/2.;## inch\n",
+ "x2 = t + 0.5*(d-t);## inches\n",
+ "x_bar = (a1*x1+a2*x2)/(a1+a2);## inches\n",
+ "y_bar = (a1*y1+a2*y2)/(a1+a2);## inches\n",
+ "I_AB = (1/3.)*t*b**3. + (1/3.)*(d-t)*t**3.;## in**4\n",
+ "I_xx = I_AB - (a1+a2)*y_bar**2.;## in**4\n",
+ "I_yy = (1/3.)*t*d**3. + (1/3.)*(b-t)*t**3. - (a1+a2)*x_bar**2.;## in**4\n",
+ "print'%s %.3f %s %.2f %s'%('The position of c.g is x_bar = ',x_bar,'inches'and'y_bar = ',y_bar,'inches');\n",
+ "print'%s %.3f %s %.2f %s'%('I_xx = ',I_xx,'in**4'and 'I_yy = ',I_yy,' in**4');\n",
+ "\n",
+ "\n",
+ "\n",
+ "##Example 15(a)\n",
+ "l = 12.;## feet\n",
+ "y_c = y_bar;##inches\n",
+ "y_t = b - y_c;##inches\n",
+ "f_t_max = 7.;## tons/in**2\n",
+ "f_c = y_c*f_t_max/y_t;## tons/in**2\n",
+ "M_r = f_t_max*I_xx/y_t;## ton-inches\n",
+ "W = M_r/(l*12./8.);## tons\n",
+ "print'%s %.2f %s'%(' Total uniformly distribute load over the span is W = ',W,' tons');\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The position of c.g is x_bar = 1.074 y_bar = 1.57 inches\n",
+ "I_xx = 10.456 I_yy = 5.96 in**4\n",
+ " Total uniformly distribute load over the span is W = 1.19 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex16-pg166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The c.g of the section is y_bar and Load required\n",
+ "b1 = 6.;##inches\n",
+ "d1 = 1.;##inch\n",
+ "b2 = 9.;##inches\n",
+ "d2 = 1.;##inch\n",
+ "b3 = 10.;##inches\n",
+ "d3 = 2.;##inch\n",
+ "a1 = b3*d3;## in**2\n",
+ "y1 = d3/2.;## inches\n",
+ "a2 = b2*d2;## in**2\n",
+ "y2 = d3 + b2/2.;## inches\n",
+ "a3 = b1*d1;## in**2\n",
+ "y3 = b2+d3+d1/2.;## inches\n",
+ "y_bar = (a1*y1+a2*y2+a3*y3)/(a1+a2+a3);##inches\n",
+ "I_AB = (1/3.)*b3*d3**3 + (1/12.)*d2*b2**3. +b2*(d3+b2/2.)**2 + (1/12.)*b1*d1**3 + b1*(b2+d3+d1/2.)**2.;## in**4\n",
+ "I_xx = I_AB - (a1+a2+a3)*y_bar**2;## in**4\n",
+ "I_yy = (1/12.)*(d3*b3**3 + b2*d2**3 +d1*b1**3.);## in**4\n",
+ "print'%s %.3f %s'%('The c.g of the section is y_bar = ',y_bar,' inches');\n",
+ "print'%s %.2f %s %.2f %s'%(' I_xx = ',I_xx,' in**4' 'I_yy = ',I_yy,' in**4');\n",
+ "\n",
+ "##Example 16(a)\n",
+ "l = 20.;## feet\n",
+ "y_t = y_bar;## inches\n",
+ "y_c = d1+b2+d3-y_t;## inches\n",
+ "f_t = 1.5;## tons/in**2\n",
+ "f_c = y_c*f_t/y_t;## tons/in**2\n",
+ "M_r = f_c*I_xx/y_c;## ton-inches\n",
+ "W = M_r*8./(l*12.);## tons\n",
+ "w = W/l;## ton per foot run\n",
+ "print'%s %.2f %s'%('Load required is w = ',w,' ton per foot run');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The c.g of the section is y_bar = 4.214 inches\n",
+ " I_xx = 640.06 in**4I_yy = 185.42 in**4\n",
+ "Load required is w = 0.38 ton per foot run\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex17-pg168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate stresses\n",
+ "b = 12.;## inches\n",
+ "d = 6.;## inches\n",
+ "h = 14.;## inches\n",
+ "t = 1/2.;## inch\n",
+ "A = 12.94;## in^2\n",
+ "##section moment of inertia\n",
+ "I_xx_s = 315.3;## in^4\n",
+ "I_yy_s = 22.27;## in^4\n",
+ "\n",
+ "I_xx = 2.*I_xx_s + 2.*((1./12.)*h*(2.*t)**3 + h*2.*t*(d+t)**2.);## in^4\n",
+ "I_yy = 2.*(I_yy_s + A*(d/2.)**2.) + 2.*((1/12.)*2*t*h**3.);## in^4\n",
+ "print'%s %.2f %s %.2f %s'%('I_xx = ',I_xx,' in^4 I_yy = ',I_yy,' in^4');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I_xx = 1815.93 in^4 I_yy = 734.79 in^4\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex18-pg169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum loads\n",
+ "b = 15.;## inches\n",
+ "d = 15/2.;## inches\n",
+ "h = 16.;## inches\n",
+ "t = 1/2.;## inch\n",
+ "P = 0.935;## inches\n",
+ "A = 12.33;## in**2\n",
+ "##section moment of inertia\n",
+ "I_xx_s = 377.;## in**4\n",
+ "I_yy_s = 14.55;## in**4\n",
+ "\n",
+ "I_xx = 2.*I_xx_s + 2.*((1/12.)*h*(2.*t)**3. + h*2.*t*(d+t)**2.);## in**4\n",
+ "I_yy = 2.*(I_yy_s + A*(d/2. + P)**2.) + 2.*((1/12.)*2.*t*h**3.);## in**4\n",
+ "print'%s %.2f %s %.2f %s'%('I_xx = ',I_xx,'in**4 I_yy = ',I_yy,'in**4')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I_xx = 2804.67 in**4 I_yy = 1253.03 in**4\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex19-pg169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum stresses\n",
+ "b1 = 16.;## inches\n",
+ "d1 = 6.;## inches\n",
+ "b2 = 9.;## inches\n",
+ "d2 = 7.;## inches\n",
+ "A = 14.71;## in**2\n",
+ "I_xx1 = 618.09;## in**4\n",
+ "I_yy1 = 22.47;## in**4\n",
+ "I_xx2 = 208.13;## in**4\n",
+ "I_yy2 = 40.17;## in**4\n",
+ "I_xx = I_xx1 + 2.*I_yy2;## in**4\n",
+ "I_yy = I_yy1 + 2.*(I_xx2 + A*(b2/2. + 0.5*0.4)**2.);## in**4\n",
+ "k_xx = math.sqrt(I_xx/(3.*A));## inches\n",
+ "k_yy = math.sqrt(I_yy/(3.*A));## inches\n",
+ "print'%s %.2f %s %.2f %s %.2f %s %.2f %s'%('I_xx =',I_xx,' in**4 I_yy = ',I_yy,' in**4' 'k_xx =',k_xx,' inches'' k_yy = ',k_yy,' inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I_xx = 698.43 in**4 I_yy = 1088.62 in**4k_xx = 3.98 inches k_yy = 4.97 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex20-pg170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum load stresses\n",
+ "b1 = 7/2.;## inches\n",
+ "d1 = 7/2.;## inches\n",
+ "t1 = 3/8.;## inches\n",
+ "l = 18.;## inches\n",
+ "I_xx1 = 2.80;## in^4\n",
+ "I_yy1 = 2.80;## in^4\n",
+ "J = 1.;## inch\n",
+ "A = 2.49;## in^2\n",
+ "I_xx = 4.*(I_xx1 + A*(l/2. - J)**2);## in^4\n",
+ "k_xx = math.sqrt(I_xx/(4.*A));## inches\n",
+ "print'%s %.2f %s %.1f %s'%('I_xx = ',I_xx,' in^4'' k_xx = ',k_xx,' inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I_xx = 648.64 in^4 k_xx = 8.1 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex21-pg170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum stresses\n",
+ "b1 = 12.;## inches\n",
+ "d1 = 4.;## inches\n",
+ "A = 9.21;## in^2\n",
+ "I_xx1 = 200.1;## in^4\n",
+ "P = 1.055;## inches\n",
+ "I_yy1 = 12.12;## in^4\n",
+ "I_xx = 2.*I_xx1;\n",
+ "##for equal strength I_xx = I_yy\n",
+ "x = 2.*(math.sqrt(((I_xx/2.)-I_yy1)/A) - P);## in^4\n",
+ "print'%s %.2f %s'%('x = ',x,' inches');\n",
+ "\n",
+ "##answer is corrct only, but it is approximated in the text book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 6.93 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex22-pg184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The moment of resistance offered by the flanges and The moment of resistance offered by the flanges\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "d =10.;## inches\n",
+ "b = 8.;## inches\n",
+ "t1 = 1.;## inch\n",
+ "t2 = 0.6;## inch\n",
+ "I = (1./12.)*(b*d**3. - (b-t2)*b**3.);## in^4\n",
+ "##(i) Resistance to M\n",
+ "def fun(y):\n",
+ "\tx=(t2/I)*y**2.\n",
+ "\treturn x\n",
+ "\n",
+ "R1 = scipy.integrate.quad(fun,-4.,4.);\n",
+ "R1=R1[0]\n",
+ "##(ii) Resistance to F\n",
+ "def fun(y):\n",
+ "\tz=(4./I)*(25.-y**2.)\n",
+ "\treturn z\n",
+ "\n",
+ "R2 = scipy.integrate.quad(fun,4.,5.);\n",
+ "R2=R2[0]\n",
+ "print'%s %.2f %s %.2f %s %.1f %s '%('The moment of resistance offered by the flanges is',1-R1,'M' 'The flanges take up ',(1-R1)*100,'percentage of the B.M.,''the web resisting only ',R1*100,'percentage of the B.M');\n",
+ "print'%s %.3f %s %.3f %s %.3f %s '%(' The shear borne by the web is',(1-2*R2),'F' and ' The web thus takes up ',(1-2*R2)*100,' ' and 'percentage of the shear force.'and 'the flanges resisting only',2*R2*100,' percentage of the shear force');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The moment of resistance offered by the flanges is 0.93 MThe flanges take up 92.71 percentage of the B.M.,the web resisting only 7.3 percentage of the B.M \n",
+ " The shear borne by the web is 0.894 The web thus takes up 89.362 the flanges resisting only 10.638 percentage of the shear force \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex23-pg186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum intensity of shear stress\n",
+ "b = 14.;## inches\n",
+ "d = 6.;## inches\n",
+ "t1 = 0.7;## inch\n",
+ "t2 = 0.4;## inch\n",
+ "F = 20.;## tons\n",
+ "I = (1./12.)*(d*b**3. - (d-t2)*(b-2.*t1)**3.);## in^4\n",
+ "q = F*t1*0.5*(0.5*b + (0.5*b-t1))/I;## ton/in^2\n",
+ "q_max = (F/(I*t2))*(d*t1*0.5*(0.5*b + (0.5*b-t1)) + t2*(0.5*b-t1)*(0.5*b-t1)*0.5);## tons/in^2\n",
+ "print'%s %.2f %s'%('The maximum intensity of shear stress is q_max = ',q_max,' tons/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum intensity of shear stress is q_max = 4.09 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex24-pg186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum intensity of shear stress\n",
+ "b = 4.;## inches\n",
+ "d = 13/2.;## inches\n",
+ "t = 1/2.;## inch\n",
+ "a = 4.;## inches\n",
+ "F = 10.;## tons\n",
+ "a1 = b*t;## in^2\n",
+ "y1 = t/2.;## inch\n",
+ "a2 = (d-t)*t;## in^2\n",
+ "y2 = t+0.5*(d-t);## inches\n",
+ "y_bar = (a1*y1+a2*y2)/(a1+a2);## inches\n",
+ "I_AB = (1/3.)*b*t**3. + (1./12.)*t*(d-t)**3 + (b-2*t)*(b-t)**2.;## in^4\n",
+ "I_xx = I_AB - (a1+a2)*y_bar**2.;## in^4\n",
+ "q = (F/(b*I_xx))*b*t*(y_bar-0.5*t);## ton/in^2\n",
+ "q_max = (F/(t*I_xx))*(b*t*(y_bar-0.5*t) + 0.5*t*(y_bar-t)*(y_bar-t));## tons/in^2\n",
+ "print'%s %.2f %s'%('The maximum intensity of shear stress at the N.A is q_max = ',q_max,' tons/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum intensity of shear stress at the N.A is q_max = 4.26 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex25-pg190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate tensile and compressive various inches at 2,4, 6 and at N.A points\n",
+ "import math\n",
+ "def func(p,q):\n",
+ " p1 = 0.5*p + math.sqrt(q**2. + 0.25*p**2);\n",
+ " p2 = 0.5*p - math.sqrt(q**2. + 0.25*p**2);\n",
+ " theta = 0.5*math.atan(2.*q/p) * 180/math.pi;\n",
+ " return p1,p2,theta\n",
+ "b = 5.;## inches\n",
+ "d = 12.;## inches\n",
+ "F = 4800. ;## lb-wt\n",
+ "M = 192000.;## lb-inches\n",
+ "I = (1/12.)*b*d**3.;## in**4\n",
+ "\n",
+ "##At 6 inches above the N.A\n",
+ "p6 = M*6./I ; ## lb/in**2\n",
+ "q6 = 0;\n",
+ "[p1_6,p2_6,theta6] = func(p6,q6);\n",
+ "\n",
+ "##At 4 inches above the N.A\n",
+ "p4 = M*4/I;## lb/in**2\n",
+ "q4 = (F/(I*b))*b*(0.5*d-4)*b;\n",
+ "[p1_4,p2_4,theta4] = func(p4,q4);\n",
+ "\n",
+ "##At 2 inches above the N.A\n",
+ "p2 = M*2./I;## lb/in**2\n",
+ "q2 = (F/(I*b))*b*(0.5*d-2)*4.;\n",
+ "[p1_2,p2_2,theta2] = func(p2,q2);\n",
+ "\n",
+ "##At the N.A\n",
+ "p = 0.;##\n",
+ "q = F*b*0.5**3*d**2./(I*b);## lb/in**2\n",
+ "p1 = q;## lb/in**2\n",
+ "p2 = -q;## lb/in**2\n",
+ "\n",
+ "print'%s %.2f %s %.2f %s '%('At 6 inches above the N.A, p1 =',p1_6,' lb/in**2.'and 'compressive, and p2 = ',p2_6,'');\n",
+ "print'%s %.2f %s %.2f %s %.2f %s %.2f %s '%(' At 4 inches above the N.A, p1 =',p1_4,' lb/in**2.'and ' compressive, and p2 = ',-p2_4,' lb/in**2 'and'tensile theta1 = ',theta4,' degrees' 'theta2 = ',theta4+90,' degrees');\n",
+ "print'%s %.2f %s %.2f %s %.2f %s %.2f %s'%(' At 2 inches above the N.A, p1 = ',p1_2,' lb/in**2.'and' compressive' and 'p2 = ',-p2_2,' lb/in**2.,'and 'tensile theta1 = ',theta2,' degrees 'and ' theta2 = ',theta2+90,' degrees');\n",
+ "print'%s %.2f %s %.2f %s'%(' At the N.A, p1 = ',p1,' lb/in**2.,'and ' compressive, and p2 = ',-p2,'.,tensile ');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 6 inches above the N.A, p1 = 1600.00 compressive, and p2 = 0.00 \n",
+ " At 4 inches above the N.A, p1 = 1070.82 compressive, and p2 = 4.15 tensile theta1 = 3.56 degreestheta2 = 93.56 degrees \n",
+ " At 2 inches above the N.A, p1 = 553.88 p2 = 20.54 tensile theta1 = 10.90 theta2 = 100.90 degrees\n",
+ " At the N.A, p1 = 120.00 compressive, and p2 = 120.00 .,tensile \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex26-pg194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate At the top, principal stresses and The principal stresse across the diagonal and compressive on one plane\n",
+ "b = 10.;## inches\n",
+ "d = 8.;## inches\n",
+ "t1 = 1.;## inch\n",
+ "t2 = 0.6;## inch\n",
+ "M = 500.;## ton-inches\n",
+ "F = 25.;## tons\n",
+ "I = (1./12.)*(d*b**3. - (d-t2)*d**3.);## in**4\n",
+ "\n",
+ "##At the top\n",
+ "p = M*b/(2.*I);## tons/in**2\n",
+ "q = 0.;\n",
+ "p1 = p;## tons/in**2\n",
+ "p2 = 0.;\n",
+ "print'%s %.1f %s %.1f %s'%('At the top, principal stresses are p1 =',p1,'tons/in**2'' p2 = ',p2,' tons/in**2')\n",
+ "\n",
+ "##In the web, 4 inches from the N.A\n",
+ "p = M*d/(2.*I);## tons/in**2\n",
+ "q = F*d*t1*0.5*(d+t1)/(I*t2);## tons/in**2\n",
+ "theta = 0.5*math.atan(2*q/p);\n",
+ "theta1 = theta*180/math.pi;\n",
+ "theta2 = theta1+90;\n",
+ "p1 = 0.5*p + math.sqrt(q**2 + 0.25*p**2);## tons/in**2\n",
+ "p2 = 0.5*p - math.sqrt(q**2 + 0.25*p**2);## tons/in**2\n",
+ "print'%s %.3f %s %.1f %s %.1f %s %.1f %s '%(' In the web, 4 inches from the N.A.:'' The principal stresse are p1 = ',p1,' tons/in**2.,compressive\\n p2 = ',-p2,' tons/in**2.,tensile\\n theta1 =',theta1,' degrees\\n theta2 = ',theta2,' degrees')\n",
+ "\n",
+ "\n",
+ "##At the N.A\n",
+ "p = 0.;\n",
+ "q = (F/(I*t2))*(d*t1*0.5*(d+t1) + t2*0.5*d*2*t1);\n",
+ "p1 = q;## tons/in**2\n",
+ "p2 = -q;##tons/in**2\n",
+ "print'%s %.1f %s %.1f %s'%(' The principal stresse across the diagonal are ',q,' tons/in**2., compressive on one plane and',q,' tons/in**2., tensile on the other.');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At the top, principal stresses are p1 = 7.1 tons/in**2 p2 = 0.0 tons/in**2\n",
+ " In the web, 4 inches from the N.A.: The principal stresse are p1 = 7.987 tons/in**2.,compressive\n",
+ " p2 = 2.3 tons/in**2.,tensile\n",
+ " theta1 = 28.2 degrees\n",
+ " theta2 = 118.2 degrees \n",
+ " The principal stresse across the diagonal are 4.8 tons/in**2., compressive on one plane and 4.8 tons/in**2., tensile on the other.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex27-pg195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum intensity of shear stress \n",
+ "W = 10.;## tons\n",
+ "l = 16.;## feet\n",
+ "f = 15/2.;## tons/in^2\n",
+ "##section modulus required\n",
+ "SM = W*l*12./(8.*f);## in^3\n",
+ "##for this section modulus \n",
+ "l1 = 12.;## inches\n",
+ "b1 = 5.;## inches\n",
+ "t1 = 0.55;## inches\n",
+ "t2 = 0.35;## inches\n",
+ "I_xx = 220.;## in^4\n",
+ "F_max = 5.;## tons\n",
+ "q_max = (F_max/(I_xx*t2))*(F_max*t1*(0.5*l1-0.5*t1) + t2*0.5*(0.5*l1-t1)**2);## tons/in^2\n",
+ "print'%s %.2f %s'%('The maximum intensity of shear stress is q_max = ',q_max,' tons/in^2');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum intensity of shear stress is q_max = 1.36 tons/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex28-pg198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Skin stresse in steel plate and The total moment of resistance\n",
+ "b = 9/2.;## inches\n",
+ "D = 12.;## inches\n",
+ "d = 10.;## inches\n",
+ "t = 1/2.;## inches\n",
+ "f_w = 1000.;## lb/in**2\n",
+ "m = 18.;##m = E_s/E_w\n",
+ "f_t = m*d*f_w/D ;## lb/in**2\n",
+ "M_w = f_w*(1./6.)*2.*b*D**2.;## lb-inches\n",
+ "M_s = f_t*(1/6.)*t*d**2;## lb-inches\n",
+ "M = M_w + M_s;## lb-inches\n",
+ "print'%s %.1f %s %.1f %s'%('Skin stresse in steel plate is, M_s = ',M_s,' lb-inches'' The total moment of resistance is M =',M,' lb-inches')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Skin stresse in steel plate is, M_s = 125000.0 lb-inches The total moment of resistance is M = 341000.0 lb-inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter6.ipynb b/Mechanics_of_Structures/Chapter6.ipynb
new file mode 100755
index 00000000..70a08d4a
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter6.ipynb
@@ -0,0 +1,491 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c177c52862f24e7aa2f65bd196b1696db90de567ae2d80d6061ed266557f0af1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6-Beams and bending part 3"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The deflection at the free\n",
+ "l = 5.;## feet\n",
+ "W = 150.;## lb\n",
+ "w = 120.;## lb. per foot run\n",
+ "l1 = 3.;## feet\n",
+ "b = 3.;## inches\n",
+ "d = 6.;## inches\n",
+ "E = 1.5*10**6;## lb/in^2\n",
+ "I = (1./12.)*b*d**3;## in^4\n",
+ "y_B1 = (W*l**3)/(3.*E*I);## feet\n",
+ "y_B2 = (w*l1*l1**3)/(8.*E*I) + (l-l1)*(w*l1*l1**2)/(6.*E*I);## feet\n",
+ "y_B = (12**3)*(y_B1+y_B2);## inches\n",
+ "print'%s %.4f %s'%('The deflection at the free end =',y_B,'inches')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The deflection at the free end = 0.1823 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex2-pg218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'Uniform distributed load\n",
+ "b = 4.;## inches\n",
+ "d = 9.;## inches\n",
+ "l = 12.;## feet\n",
+ "y_c = 1/4.;## inches\n",
+ "E = 1.5*10**6;## lb/in^2\n",
+ "I = (1/12.)*b*d**3;## in^4\n",
+ "W = y_c*384.*E*I/(5.*12**3.*l**3);## inches\n",
+ "print'%s %.d %s'%('Uniform distributed load, the beam should carry is, W =',W,'lb-wt');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniform distributed load, the beam should carry is, W = 2343 lb-wt\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'Uniform distributed load the beam should carry\n",
+ "b = 4.;## inches\n",
+ "d = 9.;## inches\n",
+ "l = 12.;## feet\n",
+ "y_c = 1/4.;## inches\n",
+ "E = 1.5*10**6;## lb/in^2\n",
+ "I = (1/12.)*b*d**3;## in^4\n",
+ "W = y_c*384.*E*I/(5.*12**3.*l**3);## inches\n",
+ "print'%s %.d %s'%('Uniform distributed load, the beam should carry is, W =',W,'lb-wt');\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Uniform distributed load, the beam should carry is, W = 2343 lb-wt\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculateThe deflection for a uniformly distributed load\n",
+ "d = 6.;## feet\n",
+ "l = 60.;## feet\n",
+ "f = 15./2.;## tons/in^2\n",
+ "E = 13000.;## tons/in^2\n",
+ "k1 = 2.*f/(12.*d);## k1 = M_r/I \n",
+ "k2 = k1/(l*12./8.);##k2 = W/I\n",
+ "y_c = (5./384.)*k2*l**3 *12**3 /E;## inches\n",
+ "##If the giredr is of constant deapth and uniform strength, it bends to an arc of a circle of radius R \n",
+ "R = E*d*12/(2*f);## inches\n",
+ "delta = (l*12)**2 /(8*R);## inches\n",
+ "print'%s %.2f %s'%('The deflection for a uniformly distributed load on it is,delta =',delta,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The deflection for a uniformly distributed load on it is,delta = 1.04 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The ratio of deapth to span\n",
+ "f = 8.;##tons/in^2\n",
+ "E = 12800.;## tons/in^2\n",
+ "k1 = 1./480.;##central deflection = k = delta/l\n",
+ "k2 = (5./24.)*(f/E)/k1 ;##k2 = d/l = deapth to span ratio\n",
+ "print'%s %.3f %s'%('The ratio of deapth to span, d/l =',k2,'');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of deapth to span, d/l = 0.062 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate 'A section with d and If the deapth of section is limited\n",
+ "w = 550.;## lb. per foot run\n",
+ "f = 1000.;## lb/in^2\n",
+ "l = 20.;## feet\n",
+ "d_limit = 15.;## inches\n",
+ "E = 1.5*10**6;## lb/in^2\n",
+ "##central ddeflection\n",
+ "delta = (1./2.);## inches\n",
+ "d = (5./24.)*(f/E)*20.*12./(1./(2.*20.*12.));## inches\n",
+ "M = w*l*l*12./8.;## lb-inches\n",
+ "b = M/(f*(1./6.)*d**2);## inches\n",
+ "print'%s %.d %s'%('A section with d =',round(d),'inches')\n",
+ "print'%s %.d %s'%('b =',round(b),'inches will do.')\n",
+ "f1 = (1./(2.*20.*12.))*(d_limit/(l*12.))*E/(5./24.);## lb/in^2\n",
+ "b = M/(f1*(1./6.)*d_limit**2);## inches\n",
+ "print'%s %.d %s'%('If the deapth of section is limited to',d_limit,'inches,then')\n",
+ "print'%s %.1f %s'%('f =',f1,'lb/in^2')\n",
+ "print'%s %.1f %s'%('b =',b,'inches');\n",
+ "\n",
+ "##tha answer is correct only, but it is approximated in the text book.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A section with d = 16 inches\n",
+ "b = 8 inches will do.\n",
+ "If the deapth of section is limited to 15 inches,then\n",
+ "f = 937.5 lb/in^2\n",
+ "b = 9.4 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The position of maximum deflection occurs and The maximum deflection and The deflection at the centre\n",
+ "l = 20.;## feet\n",
+ "b = 4.;## feet\n",
+ "W = 5.;## tons\n",
+ "d = 12.;## inches\n",
+ "h = 5.;## inches\n",
+ "I_xx = 220.;## in^4\n",
+ "E = 13000.;## tons/in^2\n",
+ "a = l-b;## feet\n",
+ "##for maximum deflection\n",
+ "x = math.sqrt((a**2 + 2.*a*b)/3.);## feet\n",
+ "y_max = x*12**3 *((a**2 + 2.*a*b) - x**2)/(6.*E*I_xx);## inches\n",
+ "##for deflection at the centre\n",
+ "x1 = 0.5*l;## inches\n",
+ "y_x1 = x1*12**3 *((a*82. + 2.*a*b) - x1*82.)/(6.*E*I_xx);## inches\n",
+ "print'%s %.2f %s'%('The position of maximum deflection occurs at x =',x,'feet')\n",
+ "print'%s %.4f %s'%('The maximum deflection is, y_max =',y_max,'inches');\n",
+ "print'%s %.3f %s'%('The deflection at the centre,',y_x1,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The position of maximum deflection occurs at x = 11.31 feet\n",
+ "The maximum deflection is, y_max = 0.2917 inches\n",
+ "The deflection at the centre, 0.624 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The position of the maximum deflection and the maximum deflection\n",
+ "d = 12.;## inches\n",
+ "h = 5.;## inches\n",
+ "l = 20.;## feet\n",
+ "E = 13000.; ##tons/in**2\n",
+ "I_xx = 220.;## in**4\n",
+ "W = 4.;## tons\n",
+ "W1 = 3.;## tons\n",
+ "a = 15.;## feet\n",
+ "b = l-a;## feet\n",
+ "a1 = 16.;## feet \n",
+ "b1 = l-a1;## feet\n",
+ "K1 = (-2*W1*b1*l)/(W1*b1-W*b);\n",
+ "K2 = (W*b*a**2 + 2*a*W*b**2 + 2*W1*b1*l**2 - W1*b1*a1**2 -2*W1*a1*b1**2 +W1*b1*l**2)/(3*(W1*b1 - W*b));\n",
+ "x = -0.5*K1 + math.sqrt(-K2 + 0.25*K1**2);## feet\n",
+ "x1 = l-x;## feet\n",
+ "y_max = W*b*x*1728.*(a**2 +2*a*b -x**2)/(6.*E*I_xx*l) + W1*b1*x1*1728.*(a1**2 +2.*a1*b1 -x1**2)/(6.*E*I_xx*l);## inches\n",
+ "print'%s %.2f %s'%('The position of the maximum deflection is, x =',x,'feet.');\n",
+ "print'%s %.4f %s'%('And the maximum deflection is, y_max =',y_max,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The position of the maximum deflection is, x = 10.26 feet.\n",
+ "And the maximum deflection is, y_max = 0.4488 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The position of the maximum deflection and the maximum deflection\n",
+ "b = 18.;## inches\n",
+ "d = 7.;## inches\n",
+ "w1 = 1.;## ton per foot run\n",
+ "w2 = 3.;## ton per foot run\n",
+ "I_xx = 1149.;## in**4\n",
+ "E = 13000.;## tons/in**2\n",
+ "R_A = 0.5*b + (b/3.);## tons\n",
+ "R_B = 0.5*b + (2.*b/3.);## tons\n",
+ "##integrating M = E*I*y'', to get E*I*y' and making y' = 0;, we get maximu deflection\n",
+ "x = 9.18;## by trial and error method\n",
+ "y_derivative = -R_A*0.5*x**3 + x**4 /6. +0.5*(2./3.)*(1./b)*(1./4.)*x**5 + 469.8;\n",
+ "y = -R_A*0.5*x**3 /3. + x**4 /24. +0.5*(2./3.)*(1./b)*(1./(4.*5.))*x**5 + 469.8*x;\n",
+ "y_max = y;## inches\n",
+ "print'%s %.2f %s'%('The position of maximum deflection from the end A, x =',x,'inches')\n",
+ "print'%s %.4f %s'%('Maximum deflection, y_max =',y_max*12**3 /(E*I_xx),'inches')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The position of maximum deflection from the end A, x = 9.18 inches\n",
+ "Maximum deflection, y_max = 0.3164 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The position of the maximum deflection and the maximum deflection and stress induced\n",
+ "b = 18.;## inches\n",
+ "d = 6.;## inches\n",
+ "l = 16.;## feet\n",
+ "W = 2.;## tons\n",
+ "h = 1./2.;## inches\n",
+ "I_xx = 841.76;## in**4\n",
+ "E = 13000.;## tons/in**2\n",
+ "P = W + math.sqrt(2.*W*h*48.*E*I_xx/(l*12.)**3 + 2.*W);## tons\n",
+ "M_max = P*l*12./4.;## ton-inches\n",
+ "Z = 2.*I_xx/b ;## in**3\n",
+ "f = M_max/Z ;## tons/in**2\n",
+ "delta = P*(l*12.)**3 /(48.*E*I_xx);## inches\n",
+ "print'%s %.3f %s'%('The maximum instantaneous deflection delta =',delta,'inches') \n",
+ "print'%s %.3f %s'%('stress induced, f =',f,'tons/in**2');\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum instantaneous deflection delta = 0.193 inches\n",
+ "stress induced, f = 7.362 tons/in**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Number of plates required and Number of plates required and The initial radius to which the plates must be bent\n",
+ "l = 3.;## feet\n",
+ "b = 3.;## inches\n",
+ "t = 3./8.;## inches\n",
+ "W = 1500.;## lb.\n",
+ "f = 12.;## tons/in**2\n",
+ "E = 30.*10**6;## tons/in**2\n",
+ "M_max = W*l*12./4. ;## lb-inches\n",
+ "M_r = f*(1./6.)*b*t**2 *2240.;## lb-inches\n",
+ "n = M_max/M_r ;## no. of plates\n",
+ "n = round(n+1);\n",
+ "f = M_max/(n*(1./6.)*b*t**2);## lb/in**2\n",
+ "R = E/(2.*f/t) ;## inches\n",
+ "delta = (l*12.)**2 /(8.*R);## inches\n",
+ "print'%s %.d %s'%('Number of plates required, n =',n,'');\n",
+ "print'%s %.4f %s'%(' The central deflection, delta =',delta,'inch.');\n",
+ "print'%s %.3f %s'%('The initial radius to which the plates must be bent, R =',R,'inches');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of plates required, n = 8 \n",
+ " The central deflection, delta = 0.6912 inch.\n",
+ "The initial radius to which the plates must be bent, R = 234.375 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter8.ipynb b/Mechanics_of_Structures/Chapter8.ipynb
new file mode 100755
index 00000000..ea8f2292
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter8.ipynb
@@ -0,0 +1,489 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:48abd6a26c994c0391cd48807ab25037b2bca2d3bc885b33747ef231a0cbe4f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Direct and bending stresses"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "d = 6.;##inches\n",
+ "b = 3/4.;##inch\n",
+ "P = 18.;##tons\n",
+ "e = 1/8.;##inch\n",
+ "A = b*d;##sq.in\n",
+ "M = P*e;##ton-in\n",
+ "Z = (1./6.)*b*d**2;##in^3\n",
+ "p_0 = P/A;## tons/in^2\n",
+ "p_b = M/Z;## ton/in^2\n",
+ "p_max = p_0+p_b;## tons/in^2\n",
+ "p_min = p_0-p_b;## tons/in^2\n",
+ "print'%s %.1f %s'%('p_max =',p_max,'tons/in^2 tensile')\n",
+ "print'%s %.1f %s'%('p_min = ',p_min,'tons/in^2.,tensile')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 4.5 tons/in^2 tensile\n",
+ "p_min = 3.5 tons/in^2.,tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "d1 = 12.;##inches\n",
+ "t = 1.;##inch\n",
+ "d2 = d1-2.*t;##inches\n",
+ "P = 5.;##tons\n",
+ "e = 12.;##inch\n",
+ "A = 0.25*math.pi*(d1**2-d2**2);##sq.in\n",
+ "M = P*e;##ton-in\n",
+ "Z = math.pi*(d1**4-d2**4)/(32*d1);##in^3\n",
+ "p_0 = P/A;## tons/in^2\n",
+ "p_b = M/Z;## ton/in^2\n",
+ "p_max = p_0+p_b;## tons/in^2\n",
+ "p_min = p_0-p_b;## tons/in^2\n",
+ "print'%s %.4f %s'%('p_max =',p_max,'ton/in^2.,cmopressive')\n",
+ "print'%s %.4f %s'%('p_min =',p_min,'ton/in^2., tensile')\n",
+ "print'%s %.4f %s'%('p_min = ',-p_min,'ton/in^2., tensile')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 0.8278 ton/in^2.,cmopressive\n",
+ "p_min = -0.5384 ton/in^2., tensile\n",
+ "p_min = 0.5384 ton/in^2., tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "l = 6.;##inches\n",
+ "b = 4.;##inches\n",
+ "d = 1/2.;##inch\n",
+ "P = 10.;##tons\n",
+ "r = 1.5;##inches\n",
+ "A = 4.771;## in^2\n",
+ "J = 0.968;## inches\n",
+ "I_xx = 6.07;## in^4\n",
+ "I_yy = 8.64;## in^4\n",
+ "e = r-J;## inches\n",
+ "M = P*e;## ton-inches\n",
+ "y_t = J;##inches \n",
+ "y_c = b-y_t;##inches\n",
+ "##compressive\n",
+ "p_c = M*y_c/I_xx;## tons/in^2\n",
+ "##tensile\n",
+ "p_t = M*y_t/I_xx;## tons/in^2\n",
+ "##compressive\n",
+ "p_0 = P/A ;## tons/in^2\n",
+ "p_max = p_0+p_c;## tons/in^2\n",
+ "p_min = p_0-p_t;## tons/in^2\n",
+ "print'%s %.3f %s'%('p_max =',p_max,'tons/in^2.,compressive')\n",
+ "print'%s %.3f %s'%('p_min =',p_min,'tons/in^2.,compressive')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 4.753 tons/in^2.,compressive\n",
+ "p_min = 1.248 tons/in^2.,compressive\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "b = 5.;##inches\n",
+ "t = 1/2.;##inch\n",
+ "P = 12.;##tons\n",
+ "d = 1/2.;##inch\n",
+ "r = 3/2.;##inch\n",
+ "A = (b-d)*t;## in^2\n",
+ "p_0 = P/A;## tons/in^2\n",
+ "a1 = b*d;## in^2\n",
+ "x1 = 0.;\n",
+ "a2 = d*t;## in^2\n",
+ "x2 = -3/2.;\n",
+ "e = (a1*x1-a2*x2)/(a1-a2);##inches\n",
+ "M = P*e;## ton-inches\n",
+ "y_c = a1-e;## inches\n",
+ "y_t = a1+e;## inches\n",
+ "I_yy = (t*b**3)/12. - ((t*d**3)/12. + 0.5*d*r**2);## in^4\n",
+ "I_GG = I_yy - (a1-a2)*(e**2);## in^4\n",
+ "p_c = M*y_c/I_GG;## tons/in^2\n",
+ "p_t = M*y_t/I_GG;## tons/in^2\n",
+ "p_max = p_0 + p_t;## tons/in^2\n",
+ "p_min = p_0 - p_c;## tons/in^2\n",
+ "print'%s %.1f %s'%('p_max = ',p_max,' tons/in^2., tensile')\n",
+ "print'%s %.2f %s'%('p_min =',p_min,'tons/in^2., tensile')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 6.5 tons/in^2., tensile\n",
+ "p_min = 4.31 tons/in^2., tensile\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "h = 20.;## feet\n",
+ "b = 12.;## feet\n",
+ "d = 4.;## feet\n",
+ "p = 30.;## lb. per sq.foot\n",
+ "rho = 140.;## lb. per cubic foot\n",
+ "p_0 = rho*h;## lb-ft^2\n",
+ "P = p*b*h;## lb-wt\n",
+ "M = P*h/2;##lb-ft\n",
+ "Z = b*d**2/6;## ft^3\n",
+ "p_b = M/Z;## lb/ft^2\n",
+ "p_max = p_0 + p_b;## lb/ft^2\n",
+ "p_min = p_0 - p_b;## lb/ft^2\n",
+ "print'%s %.d %s'%('p_max =',p_max,'lb/ft^2., compressive')\n",
+ "print'%s %.d %s'%('p_min =',p_min,'lb/ft^2., compressive')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 5050 lb/ft^2., compressive\n",
+ "p_min = 550 lb/ft^2., compressive\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The necessary thickness\n",
+ "h = 80.;## feet\n",
+ "p = 28.;## lb. per sq.foot\n",
+ "rho = 126.;## lb. per cubic foot\n",
+ "p_0 = rho*h/2240.;## tons-ft^2\n",
+ "p_max = 7.;## tons/ft^2\n",
+ "d = 4.;## feet\n",
+ "p_b = p_max - p_0;## tons/ft^2\n",
+ "D = math.sqrt(3*p*h**2 /(2*p_b*2240.) +math.sqrt(d**4 + (3*p*h**2 /(2.*p_b*2240.))**2));## feet\n",
+ "t = 0.5*(D-d);## feet\n",
+ "print'%s %.d %s'%('The necessary thickness is, t =',round(t),'feet');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The necessary thickness is, t = 3 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "h = 60.;##feet\n",
+ "rho = 130.;## lb. per cubic foot\n",
+ "D = 12.;##feet\n",
+ "d = 5.;##feet\n",
+ "P_h = 24.;## lb. per sq. foot\n",
+ "p_0 = rho*h;## lb-ft^2\n",
+ "P = P_h*D*h;## lb-wt\n",
+ "M = P*h/2;## lb-feet\n",
+ "Z = math.pi*(D**4 - d**4)/(32*D);##lb-ft^3\n",
+ "p_b = M/Z;## lb/ft^2\n",
+ "p_max = p_0 + p_b;## lb/ft^2\n",
+ "p_min = p_0 - p_b;## lb/ft^2\n",
+ "print'%s %.d %s'%('p_max =',p_max,'lb/ft^2., compressive')\n",
+ "print'%s %.d %s'%('p_min =',p_min,'lb/ft^2., compressive')\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 10950 lb/ft^2., compressive\n",
+ "p_min = 4649 lb/ft^2., compressive\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import scipy\n",
+ "#calculate Bending moment at the foot of the chimney \n",
+ "from scipy import integrate\n",
+ "h = 120.;## feet\n",
+ "d = 5.;## feet\n",
+ "h1 = 49.;## feet\n",
+ "p = 42.;## lb. per square foot\n",
+ "c = 0.6;\n",
+ "k = p/math.sqrt(h1);\n",
+ "##p = k*math.sqrt(x)\n",
+ "\n",
+ "def fun(x):\n",
+ "\ty=18.*x**(3./2.)\n",
+ "\treturn y\n",
+ "\n",
+ "M = scipy.integrate.quad(fun,0.,120.);\n",
+ "M=M[0]\n",
+ "print'%s %.1f %s'%('Bending moment at the foot of the chimney is, M =',M,'lb-ft');\n",
+ "##there is an error in the answer given in text book\n",
+ "print(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bending moment at the foot of the chimney is, M = 1135757.5 lb-ft\n",
+ "1135757.49523\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Bending moment at the foot of the chimney \n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "h = 100.;## feet\n",
+ "d = 4.;## feet\n",
+ "p = 50.;## lb. per square foot\n",
+ "c = 2/3.;\n",
+ "def fun(x):\n",
+ "\ty=(100*x/3.)*(10-(6*x/100.))\n",
+ "\treturn y;\n",
+ "\n",
+ "M=scipy.integrate.quad(fun,0,100)\t\n",
+ "M = M[0]\n",
+ "print'%s %.d %s'%('Bending moment at the foot of the chimney is, M =',M,'lb-feet');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bending moment at the foot of the chimney is, M = 1000000 lb-feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate p_max and p_min\n",
+ "h = 20.;## feet\n",
+ "b = 4.;## feet\n",
+ "d = 12.;## feet\n",
+ "h1 = 18.;## feet\n",
+ "##density of masonary\n",
+ "rho_m = 140.;## lb-ft^3\n",
+ "##density of water\n",
+ "rho_w = 62.5;## lb-ft^3\n",
+ "W = rho_m*0.5*(b+d)*h;## lb-wt\n",
+ "##to locate its line of action divide the dam section into a rectangle and a triangle \n",
+ "x1 = b/2.;##feet\n",
+ "a1 = b*h;## sq. feet\n",
+ "a2 = 0.5*(d-b)*h;## sq. feet\n",
+ "x2 = b+((d-b)/3);## feet\n",
+ "x_bar = (a1*x1+a2*x2)/(a1+a2);## feet\n",
+ "P = rho_w*h1**2/2;## lb-wt\n",
+ "z = x_bar + (h1/3)*(P/W);## feet\n",
+ "e = z - d/2.;## feet\n",
+ "p_0 = W/d;## lb/ft^2\n",
+ "M = W*e;## lb-feet\n",
+ "Z = 1*d**2*1/6.;## ft^3\n",
+ "p_b = M/Z;## lb-ft^2\n",
+ "p_max = p_0 + p_b;## lb-ft^2\n",
+ "p_min = p_0 - p_b;## lb-ft^2\n",
+ "print'%s %.1f %s'%('p_max =',p_max,'lb/ft^2., compressive at B.')\n",
+ "print'%s %.1f %s'%('p_min =',p_min,'lb/ft^2., compressive at A.')\n",
+ "\n",
+ "\n",
+ "##there is an error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "p_max = 2842.4 lb/ft^2., compressive at B.\n",
+ "p_min = 891.0 lb/ft^2., compressive at A.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/Chapter9.ipynb b/Mechanics_of_Structures/Chapter9.ipynb
new file mode 100755
index 00000000..27f2d79d
--- /dev/null
+++ b/Mechanics_of_Structures/Chapter9.ipynb
@@ -0,0 +1,523 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de66edc6628557b633dd9783c4dabb08e00d657b0d4a1fadad535f3bd5215433"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Columns and struts of uniform section"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate m1 and m2,m3,m4,m5,m6,m7,m8,m9\n",
+ "## n =l/k\n",
+ "n1 = 40.;\n",
+ "n2 = 60.;\n",
+ "n3 = 80.;\n",
+ "n4 = 100.;\n",
+ "n5 = 120.;\n",
+ "n6 = 140.;\n",
+ "n7 = 160.;\n",
+ "n8 = 180.;\n",
+ "n9 = 200.;\n",
+ "E = 13000.;## tons/in**2\n",
+ "##m = P/A\n",
+ "m1 = 4*math.pi**2 *E/n1**2;## tons per sq. inch\n",
+ "m2 = 4*math.pi**2 *E/n2**2;## tons per sq. inch\n",
+ "m3 = 4*math.pi**2 *E/n3**2;## tons per sq. inch\n",
+ "m4 = 4*math.pi**2 *E/n4**2;## tons per sq. inch\n",
+ "m5 = 4*math.pi**2 *E/n5**2;## tons per sq. inch\n",
+ "m6 = 4*math.pi**2 *E/n6**2;## tons per sq. inch\n",
+ "m7 = 4*math.pi**2 *E/n7**2;## tons per sq. inch\n",
+ "m8 = 4*math.pi**2 *E/n8**2;## tons per sq. inch\n",
+ "m9 = 4*math.pi**2 *E/n9**2;## tons per sq. inch\n",
+ "print'%s %.d %s %.d %s %.d %s %.d %s %.d %s %.d %s %.d %s %.d %s %.d %s'%('l/k : ',n1,' ',n2,'',n3,' ',n4,' ',n5,'',n6,'',n7,'',n8,'',n9,'' )\n",
+ "print'%s %.1f %s %.1f %s %.1f %s %.1f %s %.1f %s %.1f %s %.1f %s %.1f %s %.1f %s '%('P/A:',m1,'',m2,'',m3,'',m4,'',m5,'',m6,'',m7,'',m8,'',m9,'')\n",
+ "\n",
+ "##there is a minute error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "l/k : 40 60 80 100 120 140 160 180 200 \n",
+ "P/A: 320.8 142.6 80.2 51.3 35.6 26.2 20.0 15.8 12.8 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The collapsing load\n",
+ "d = 1.;## inches\n",
+ "t = 1/8.;## inches\n",
+ "l = 10.;## feet\n",
+ "E = 13500.;## tons/in**2\n",
+ "D = d+2.*t;## inches\n",
+ "I = (math.pi/64.)*(D**4. - d**4.);## in**4\n",
+ "P = 20.25*E*I/(12.*l)**2. ;## tons\n",
+ "print'%s %.2f %s'%('The collapsing load, P =',P,'tons')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The collapsing load, P = 1.34 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The safe axial load\n",
+ "b = 10.;## inches\n",
+ "d = 6.;##inches\n",
+ "l = 15.;## feet\n",
+ "A = 11.77;## in^2\n",
+ "I_xx = 204.80;## in^4\n",
+ "I_yy = 21.76;## in^4\n",
+ "f_c = 21.;## tons/in^2\n",
+ "a = 1/7500.;\n",
+ "n = 3.;##factor of safety\n",
+ "k = math.sqrt(I_yy/A);## radius of gyration\n",
+ "P = f_c*A/(1.+(a/2.)*(l*12./k)**2);## tons\n",
+ "P_s = P/n;## safe load\n",
+ "print'%s %.3f %s'%('The safe axial load =',P_s,'tons');\n",
+ "\n",
+ "##there is a minute calculation error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe axial load = 37.997 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The internal diameter and The thickness of the metal\n",
+ "l = 16.;## feet\n",
+ "F = 30.;## tons\n",
+ "n = 8.;## factor of safety\n",
+ "k = 0.8;##k = d/D\n",
+ "f_c = 36.;## tons/in^2\n",
+ "a = 1/1600.;\n",
+ "r = 0.25*math.pi*(1-k**2);##r = A/D^2\n",
+ "P = n*F;## tons\n",
+ "D1 = math.sqrt(P/(f_c*r*2) +math.sqrt((P/(f_c*r))*((a/4)*(l*12.)**2.)/((1+k**2.)/16.) + (P/(f_c*r*2.))**2.));## inches\n",
+ "D = round(D1);## inches\n",
+ "d = k*D;## inches\n",
+ "t = (D-d)/2.;## inches\n",
+ "print'%s %.1f %s'%('The internal diameter d =',d,'inches');\n",
+ "print'%s %.2f %s'%('The thickness of the metal will be',t,'inches');\n",
+ "## the answer is correct only, but it is approximated in the text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The internal diameter d = 5.6 inches\n",
+ "The thickness of the metal will be 0.70 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The safe axial load \n",
+ "l = 5.;## feet\n",
+ "b = 5./2.;## inches\n",
+ "d = 5/2.;## inches\n",
+ "h = 1/4.;## inches\n",
+ "n = 3.;## factor of safety\n",
+ "A = 1.19;## in^2\n",
+ "k = 0.49;## minimum radius of gyration\n",
+ "f_c = 21.;## lb/in^2\n",
+ "a = 1/7500.;\n",
+ "P = f_c*A/(1+(a/2)*((l*12)**2)/k**2);## tons\n",
+ "P_safe = P/n;## tons\n",
+ "print'%s %.2f %s'%('The safe axial load =',P_safe,'tons');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe axial load = 4.17 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The safe axial load\n",
+ "b1 = 10.;## inches\n",
+ "d1 = 7/2.;## inches\n",
+ "r = 9/2.;## inches\n",
+ "b2 = 12.;## inches\n",
+ "d2 = 1/2.;## inches\n",
+ "l = 20.;## feet\n",
+ "n = 4.;## factor of safety\n",
+ "A_s = 7.19;## in^2\n",
+ "I_xx1 = 109.42;## in^4\n",
+ "I_yy1 = 7.42;## in^4\n",
+ "d = 0.97;## inches\n",
+ "f_c = 21.;## lb/in^2\n",
+ "a = 1/7500.;\n",
+ "A = 2*A_s + 4*b2*d2;## in^2\n",
+ "I_xx = 2.*I_xx1 + 2.*((1/12.)*b2*(2*d2)**3. + b2*(r+2.*d2)**2.);## in^4\n",
+ "I_yy = 2.*(1/12.)*(2*d2)*b2**3. + 2.*(I_yy1 + A_s*(0.5*r+d)**2.);## in^4\n",
+ "k = math.sqrt(min(I_xx,I_yy)/A);## minimum radius of gyration\n",
+ "P = f_c*A/(1.+ a*((l*12.)**2./k**2));## tons\n",
+ "P_safe = P/n;## tons\n",
+ "print'%s %.1f %s'%('The safe axial load =',round(P_safe),'tons');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe axial load = 122.0 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the safe axial load\n",
+ "m = 4.;## no. of angles\n",
+ "b = 7/2.;## inches\n",
+ "d = 7/2.;## inches\n",
+ "h = 3/8.;## inches\n",
+ "s = 18.;## inches\n",
+ "l = 30.;## feet\n",
+ "n = 3.;## factor of safety\n",
+ "A = 2.49;## in^2\n",
+ "J = 1.;## inches\n",
+ "I_xxs = 2.80;## in^4\n",
+ "I_yys = I_xxs;## in^4\n",
+ "##from the chapter V. \n",
+ "I = 648.64;## in^4\n",
+ "k = math.sqrt(65.2);## in^2\n",
+ "f_c = 21.;## lb/in^2\n",
+ "a = 1/7500.;\n",
+ "P = m*f_c*A/(1.+a*((l*12)**2)/k**2);## tons\n",
+ "P_safe = P/n;## tons\n",
+ "print'%s %.1f %s'%('The safe axial load =',P_safe,'tons');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe axial load = 55.1 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Stress intensities and Maximum possible eccentricity\n",
+ "D = 7.;## inches\n",
+ "t = 3/4.;## inches\n",
+ "l = 16.;## feet\n",
+ "P = 12.;## tons\n",
+ "e = 3/4.;## inches\n",
+ "E = 6000.;## tons/in^2\n",
+ "d = D-2.*t;## inches\n",
+ "A = 0.25*math.pi*(D**2. - d**2.);## in^2\n",
+ "I = (math.pi/64.)*(D**4. - d**4.);## in^4\n",
+ "p_0 = P/A;## tons/in^2\n",
+ "Z = 2.*I/D;## in^3\n",
+ "M = P*e/math.cos(0.25*l*12.*math.sqrt(P/(E*I)));## ton-inches\n",
+ "p_b = M/Z;## tons/in^2\n",
+ "p_max = p_0+p_b;## tons/in^2\n",
+ "p_min = p_0-p_b;## tons/in^2\n",
+ "##if tension is just on the point being induced in the section, p_b = p_0\n",
+ "e = p_0*t*Z/M;## inches\n",
+ "print'%s %.3f %s'%('Stress intensities, p_max =',p_max,'tons/in^2.,compressive')\n",
+ "print'%s %.3f %s'%('p_min =',p_min,'tons/in^2., compressive');\n",
+ "print'%s %.2f %s'%('Maximum possible eccentricity, e =',e,'inches')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress intensities, p_max = 1.261 tons/in^2.,compressive\n",
+ "p_min = 0.369 tons/in^2., compressive\n",
+ "Maximum possible eccentricity, e = 1.37 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The maximum possible eccentricity\n",
+ "P = 80;## tons\n",
+ "p_max = 5;## tons/in^2\n",
+ "E = 13000;## tons/in^2\n",
+ "A = 38.38;## in^2\n",
+ "I_yy = 451.94;## in^4\n",
+ "y_c = 6;## inches\n",
+ "l = 20;## inches\n",
+ "k = math.sqrt(I_yy/A);## inches\n",
+ "Z_yy = I_yy/y_c;## in^3\n",
+ "p_0 = P/A;## tons/in^2\n",
+ "p_b = p_max-p_0;## tons/in^2\n",
+ "M_max = p_b*Z_yy;## ton-inches\n",
+ "e = M_max/(P/math.cos(0.5*l*12*math.sqrt(P/(E*I_yy))));##inches\n",
+ "print'%s %.2f %s'%('The maximum possible eccentricity, e =',e,'inches')\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum possible eccentricity, e = 2.48 inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The safe load\n",
+ "e = 7/4.;## inches\n",
+ "E = 13000.;## tons/in^2\n",
+ "p = 5.;## tons/in^2\n",
+ "y_c = 6.;## inches\n",
+ "l = 20.;## feet\n",
+ "A = 38.38;## in^2\n",
+ "k = math.sqrt(11.78);## inches\n",
+ "I = 11.78;## in^4\n",
+ "p_e = (math.pi)**2 *E*k**2 /(l*12)**2;## tons/in^2\n",
+ "##from Perry's formula\n",
+ "p_0 = 0.5*((p_e*1.2*e*y_c/k**2)+p_e+p)-math.sqrt((0.5*((p_e*1.2*e*y_c/k**2)+p_e+p))**2 - p_e*p);## tons/in^2\n",
+ "P = p_0*A;## tons\n",
+ "print'%s %.2f %s'%('The safe load, P =',P,'tons');\n",
+ "\n",
+ "##there is a minute calculation error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe load, P = 88.33 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The safe load\n",
+ "b1 = 10.;## inches\n",
+ "d1 = 6.;## inches\n",
+ "b2 = 12.;## inches\n",
+ "d2 = 1/2.;## inches\n",
+ "l = 16.;## feet\n",
+ "A_s = 11.77;## in^2\n",
+ "I_xxs = 204.80;## in^4\n",
+ "I_yys = 21.76;## in^4\n",
+ "A = A_s + 2*b2*d2;## in^2\n",
+ "I_yy = I_yys + 2.*(1./12.)*d2*b2**3.;## in^4\n",
+ "k = math.sqrt(I_yy/A);## inches\n",
+ "##from the Perry-Robertson formula\n",
+ "n = 0.003*l*12/k;\n",
+ "p_e = 13000*math.pi**2/((l*12)/k)**2 ;## tons/in^2\n",
+ "f = 18.;## tons/in^2\n",
+ "x = 0.5*(f+p_e*(1.+n));\n",
+ "p_0 = x - math.sqrt(x**2 - f*p_e);## tons/in^2\n",
+ "P = p_0*A;## tons\n",
+ "P_safe = P/2.36;## tons\n",
+ "print'%s %.1f %s'%('The safe load, P =',P_safe,'tons');\n",
+ "\n",
+ "##there is a minute calculation error in the answer given in text book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The safe load, P = 125.3 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Mechanics_of_Structures/README.txt b/Mechanics_of_Structures/README.txt
new file mode 100755
index 00000000..447566b1
--- /dev/null
+++ b/Mechanics_of_Structures/README.txt
@@ -0,0 +1,10 @@
+Contributed By: bikash behera
+Course: btech
+College/Institute/Organization: iitbombay
+Department/Designation: aerospace engnieering
+Book Title: Mechanics of Structures
+Author: S. B. Junnarkar
+Publisher: N. Hernandez
+Year of publication: 1957
+Isbn: 8185594678
+Edition: 2 \ No newline at end of file
diff --git a/Mechanics_of_Structures/screenshots/Chapter12.png b/Mechanics_of_Structures/screenshots/Chapter12.png
new file mode 100755
index 00000000..d11c8f92
--- /dev/null
+++ b/Mechanics_of_Structures/screenshots/Chapter12.png
Binary files differ
diff --git a/Mechanics_of_Structures/screenshots/Chapter13.png b/Mechanics_of_Structures/screenshots/Chapter13.png
new file mode 100755
index 00000000..02bede21
--- /dev/null
+++ b/Mechanics_of_Structures/screenshots/Chapter13.png
Binary files differ
diff --git a/Mechanics_of_Structures/screenshots/chapter3.png b/Mechanics_of_Structures/screenshots/chapter3.png
new file mode 100755
index 00000000..f46698cb
--- /dev/null
+++ b/Mechanics_of_Structures/screenshots/chapter3.png
Binary files differ
diff --git a/Modern_Physics/Chapter1.ipynb b/Modern_Physics/Chapter1.ipynb
index d442fd97..30eac463 100755
--- a/Modern_Physics/Chapter1.ipynb
+++ b/Modern_Physics/Chapter1.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:d8ffd8fd29d5d24b3cc8b2545e898e818e9d8ef837edfe4af93ac3d5f1b9fea0"
+ "name": "Chapter1"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 1: RELATIVITY"
+ "Chapter 1:Introduction"
]
},
{
@@ -21,41 +20,23 @@
"level": 2,
"metadata": {},
"source": [
- "Example 1.2, page no. 18"
+ "Example 1.1, Page 12"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "#Variable declaration\n",
- "T1 = 3.0 #proper time(s)\n",
- "c = 3 * 10**8 #Speed of light(m/s)\n",
- "v = 0.95 * c #speed of observer(m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "Y = 1/math.sqrt((1-(v/c)**2)) #factor by which it runs slower\n",
- "T = Y * T1 #Period of the pendulum (s)\n",
- "\n",
- "#result\n",
- "print \"The Period of the pendulum when measured by the observer is\",round(T,1),\"s\"\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "T1 = 3.0 #proper time(s)\n",
- "c = 3 * 10**8 #Speed of light(m/s)\n",
- "Vnew = (0.95 + 0.05*0.95) * c #speed of observer(m/s)\n",
+ "#initiation of variable\n",
+ "Mn=1.008665;Mp=1.007276 #Given mass of an electron and a proton in terms of u\n",
"\n",
"#calculation\n",
- "\n",
- "Y = 1/math.sqrt((1-(Vnew/c)**2))\n",
- "T = Y * T1 \n",
+ "Md= Mn-Mp; #mass difference \n",
+ "Md2=Md*931.50; #converting u into Mev/c^2 by multiplying by 931.5 MeV/c^2\n",
"\n",
"#result\n",
- "print \"Exercise:The Period of the pendulum when measured by the observer is\",round(T,1),\"s\"\n"
+ "print \"Mass difference in terms of U is\",round(Md,4); \n",
+ "print\"which equals in Mev/c^2. :\",round(Md2,3);"
],
"language": "python",
"metadata": {},
@@ -64,8 +45,8 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The Period of the pendulum when measured by the observer is 9.6 s\n",
- "Exercise:The Period of the pendulum when measured by the observer is 42.5 s\n"
+ "Mass difference in terms of U is 0.0014\n",
+ "which equals in Mev/c^2. : 1.294\n"
]
}
],
@@ -76,87 +57,21 @@
"level": 2,
"metadata": {},
"source": [
- "Example 1.3, page no. 20"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#variable declaration\n",
- "\n",
- "Lp = 100 #proper length of the spaceship(m)\n",
- "c = 3 * 10**8 #speed of light(m/s)\n",
- "v = 0.99 * c #speed of the observer(m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "L = Lp * math.sqrt((1-(v/c)**2)) #Length of the spaceship (m)\n",
- "\n",
- "#result\n",
- "\n",
- "print \"The length measured as the spaceship flies by is\",round(L),\"m\"\n",
- "\n",
- "#variable declaration\n",
- "\n",
- "Lp = 100 #proper length of the spaceship(m)\n",
- "c = 3 * 10**8 #speed of light(m/s)\n",
- "v = 0.01 * c #speed of the observer(m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "L = Lp * math.sqrt((1-(v/c)**2))\n",
- "\n",
- "#result\n",
- "\n",
- "print \"Exercise:The length measured as the spaceship flies by is\",round(L,2),\"m\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The length measured as the spaceship flies by is 14.0 m\n",
- "Exercise:The length measured as the spaceship flies by is 99.99 m\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1.4, page no. 20"
+ "Example 1.2, Page 12"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "\n",
- "#variable declaration\n",
- "\n",
- "Lp = 435 #proper length of the spaceship(m)\n",
- "c = 3 * 10**8 #speed of light(m/s)\n",
- "v = 0.97 * c #speed of the spaceship(m/s)\n",
+ "#initiation of variable\n",
+ "Mp=1.007276 ; Me=5.4858*10**-4; #mass of proton and electron in terms of U\n",
"\n",
"#calculation\n",
- "\n",
- "L = Lp * math.sqrt((1-(v/c)**2)) #altitude of the spaceship (m)\n",
+ "Mt=Mp+Me; #Total mass= sum of above masses \n",
"\n",
"#result\n",
- "\n",
- "print \"The altitude of the spaceship as measured by an observer in the spaceship is\",round(L),\"m\""
+ "print\"The combined mass of an electron and a proton was found out to be in U.\",round(Mt,3);\n"
],
"language": "python",
"metadata": {},
@@ -165,7 +80,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The altitude of the spaceship as measured by an observer in the spaceship is 106.0 m\n"
+ "The combined mass of an electron and a proton was found out to be in U. 1.008\n"
]
}
],
@@ -176,213 +91,20 @@
"level": 2,
"metadata": {},
"source": [
- "Example 1.5, page no. 20"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
- "\n",
- "#variable declaration\n",
- "\n",
- "Lp = 50 #horizontal length of the spaceship (m)\n",
- "c = 3 * 10**8 #speed of light (m/s)\n",
- "v = 0.95 * c #speed of the observer (m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "L = Lp * math.sqrt((1-(v/c)**2)) #length (m)\n",
- "\n",
- "#result\n",
- "\n",
- "print \"The horizontal length measured as seen by the observer\",round(L,1),\"m.\\nThe 25m vertical height is unchanged because it is perpendicular to the direction of relative motion between the observer and the spaceship.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The horizontal length measured as seen by the observer 15.6 m.\n",
- "The 25m vertical height is unchanged because it is perpendicular to the direction of relative motion between the observer and the spaceship.\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1.6, page no. 25"
+ "Example 1.3, Page 13"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "#variable declaration\n",
- "\n",
- "Yobs = 475.0 #observed wavelength (nm)\n",
- "Ysource = 394.0 #source wavelength (nm)\n",
- "c = 3 * 10**8 #speed of light (m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "v = c*(((Yobs**2)-(Ysource**2))/((Yobs**2)+(Ysource**2))) #velocity (m/s)\n",
+ "#initiation of variable\n",
+ "h=6.621*10**-34 ; c=2.9979*10**8; # h is in J/s and c is in m/s\n",
+ "hc=h*c*((10**9)/(1.6022*10**-19)); #1e=1.602*10^-19 J and 1 m=10^9 nm\n",
"\n",
"#result\n",
- "\n",
- "print \"The Hydra is receding from us at\",round(v/10**7,2),\"x 10^7 m/s\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The Hydra is receding from us at 5.54 x 10^7 m/s\n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1.8, page no. 30"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "#Variable declaration\n",
- "\n",
- "c = 3 * 10 **8 #speed of light (m/s)\n",
- "v = 0.750 * c #speed of spacecraft A relative to an observer on Earth(m/s)\n",
- "ux = -0.850 *c #speed of spacecraft B relative to an observer on Earth(m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "ux1 = (ux-v)/(1-((ux*v)/(c**2))) #velocity (m/s)\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The velocity of B with respect to A is\",round(ux1/c,4),\"c\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The velocity of B with respect to A is -0.9771 c\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1.9, page no. 30"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "#Variable declaration\n",
- "\n",
- "c = 3 * 10 **8 #speed of light (m/s)\n",
- "v = 0.800 * c #velocity of the motorcycle with respect to the stationary observer (m/s)\n",
- "ux1 = 0.700 *c #velocity of the ball in the frame of reference of the motorcyclist (m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "ux = (ux1+v)/(1+((ux1*v)/(c**2))) #velocity (m/s)\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The velocity of the ball relative to the stationary observer is\",round(ux/c,4),\"c\"\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "c = 3 * 10 **8 #speed of light (m/s)\n",
- "v = 0.800 * c #velocity of the motorcycle with respect to the stationary observer (m/s)\n",
- "ux1 = c #velocity of the beam of light in the frame of reference of the motorcyclist (m/s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "ux = (ux1+v)/(1+((ux1*v)/(c**2))) #velocity (m/s)\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The speed of the beam of light relative to the stationary observer is\",round(ux/c,4),\"c\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The velocity of the ball relative to the stationary observer is 0.9615 c\n",
- "The speed of the beam of light relative to the stationary observer is 1.0 c\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 1.10, page no. 30"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "c = 3 * 10 **8 #speed of light (m/s)\n",
- " #observations of stationary police officer\n",
- "uxa = 0.75 * c # velocity of pack leader Alpha in x direction (m/s)\n",
- "uya = 0 # velocity of pack leader Alpha in y direction (m/s)\n",
- "uxb = 0 # velocity of pack leader Beta in x direction (m/s)\n",
- "uyb = -0.9 * c # velocity of pack leader Beta in y direction (m/s) \n",
- " \n",
- "#calculation\n",
- "\n",
- "ux1 = (uxb-uxa)/(1-((uxb*uxa)/(c**2))) #speed in X axis (m/s)\n",
- "uy1 = (math.sqrt(1-((uxa**2)/(c**2)))*(uyb))#/(1-((uxb*uxa)/(c**2))) #speed in Y axis (m/s)\n",
- "u1 = math.sqrt(ux1**2 + uy1**2) #total speed (m/s)\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The speed of recession of Beta away from Alpha as observed by Alpha is then found to be\",round(u1/c,2),\"c\"\n"
+ "print \"The value of hc in eV.nm is\",round(hc,4); \n",
+ "print 'Hence zero at the end is significant.';\n"
],
"language": "python",
"metadata": {},
@@ -391,11 +113,12 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The speed of recession of Beta away from Alpha as observed by Alpha is then found to be 0.96 c\n"
+ "The value of hc in eV.nm is 1238.8651\n",
+ "Hence zero at the end is significant.\n"
]
}
],
- "prompt_number": 15
+ "prompt_number": 8
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter10.ipynb b/Modern_Physics/Chapter10.ipynb
index a9cbc233..6135c0d0 100755
--- a/Modern_Physics/Chapter10.ipynb
+++ b/Modern_Physics/Chapter10.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:1d13a558dd2cc62e2c7ada350fc7a07d9283efcbc790578d0711fd6c96f50df0"
+ "name": "Chapter10",
+ "signature": "sha256:e4e2027717708d18dd95ce338ad24e83f0d7666653044656429dafb0b39af784"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 10: Statistical Physics"
+ "Chapter 10:Statistical Physics"
]
},
{
@@ -21,64 +21,22 @@
"level": 2,
"metadata": {},
"source": [
- "Example 10.1, page no. 340"
+ "Example 10.2 Page 307"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "n1 = 1 #Ground state\n",
- "n2 = 2 #First excited state\n",
- "n3 = 3 #second excited state\n",
- "T = 300 #room temperature(K)\n",
- "kb = 8.617 * 10 **-5 #Boltzmann constant(eV/K)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "E1 = -13.6 / n1 ** 2\n",
- "g1 = 2 * n1 ** 2\n",
- "E2 = -13.6 / n2 ** 2\n",
- "g2 = 2 * n2 ** 2\n",
- "E3 = -13.6 / n3 ** 2\n",
- "g3 = 2 * n3 ** 2\n",
- "N3 = g3 * math.exp(-E3/(kb*T))\n",
- "N2 = g2 * math.exp(-E2/(kb*T))\n",
- "N1 = g1 * math.exp(-E1/(kb*T))\n",
- "ratio1 = N2 / N1\n",
- "ratio2 = N3 / N1\n",
- "\n",
- "#results\n",
- "\n",
- "print \"(a) We can see that n2/n1=\",round(ratio1),\"and n3/n1=\",round(ratio2),\"essentially all atoms are in ground state.\"\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "T = 20000 #Temperature(K)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "N3 = g3 * math.exp(-E3/(kb*T))\n",
- "N2 = g2 * math.exp(-E2/(kb*T))\n",
- "N1 = g1 * math.exp(-E1/(kb*T))\n",
- "ratio1 = N2 / N1\n",
- "ratio2 = N3 / N1\n",
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "#The solution is purely theoretical and involves a lot of approximations.\n",
+ "print\"The value of shift in frequency was found out to be delf=7.14*fo*10^-7*sqrt(T) for a star composing of hydrogen atoms at a temperature T.\";\n",
+ "T=6000.0; #temperature for sun\n",
+ "delf=7.14*10**-7*sqrt(T);#change in frequency\n",
"\n",
"#result\n",
- "\n",
- "print \"(b) n2/n1=\",round(ratio1,5),\"and n3/n1=\",round(ratio2,5)\n",
- "\n",
- "\n",
- "ratio3 = N3 / N2\n",
- "\n",
- "print \"(c) S(3->2)/S(2->1)=\",round(ratio3,2)"
+ "print\"The value of frequency shift for sun(at 6000 deg. temperature) comprsing of hydrogen atoms is\",delf,\" times the frequency of the light.\""
],
"language": "python",
"metadata": {},
@@ -87,63 +45,42 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) We can see that n2/n1= 0.0 and n3/n1= 0.0 essentially all atoms are in ground state.\n",
- "(b) n2/n1= 0.01076 and n3/n1= 0.00809\n",
- "(c) S(3->2)/S(2->1)= 0.75\n"
+ "The value of shift in frequency was found out to be delf=7.14*fo*10^-7*sqrt(T) for a star composing of hydrogen atoms at a temperature T.\n",
+ "The value of frequency shift for sun(at 6000 deg. temperature) comprsing of hydrogen atoms is 5.53062021838e-05 times the frequency of the light.\n"
]
}
],
- "prompt_number": 3
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 10.2, page no. 345"
+ "Example 10.3 Page 309"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import sqrt,pi, exp, log\n",
+ "kT=0.0252;E=10.2 # at room temperature, kT=0.0252 standard value and given value of E\n",
"\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "m = 3.34 * 10 ** -27 #mass of hydrogen(kg)\n",
- "kbT = 3.77 * 10 ** -21 #kb * T (eV)\n",
- "N = 6.02 * 10 ** 23 #avogadro's number\n",
- "V = 22.4 * 10 ** -3 #Volume of H2 gas (m^3)\n",
- "h = 1.055 * 10 ** -34 #Planck's constant (J.s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "r = (N/V)* h ** 3 / (8 * (m * kbT)**1.5)\n",
+ "#calculation\n",
+ "n2=2;n1=1; g2=2*(n2**2);g1=2*(n1**2); #values for ground and excited states\n",
+ "t=(g2/g1)*exp(-E/kT); #fraction of atoms\n",
"\n",
"#result\n",
+ "print\"The number of hydrogen atoms required is %.1e\" %(1.0/t),\" which weighs %.0e\" %((1/t)*(1.67*10**-27)),\"Kg\"\n",
"\n",
- "print \"(a) (N/V)h^3/(8*(mkbT)^3/2)=\",round(r/10**-8,2),\"X10^-8 is much less than 1, we conclude that even hydrogen is described by Maxwell-Boltzmann statistics.\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "d = 10.5 #density of silver (g/cm^3)\n",
- "mw = 107.9 #Molar weight of silver (g/mol)\n",
- "me = 9.109*10**-31 #mass of electron(kg)\n",
- "kbT = 4.14 * 10 ** -21 #kb*T (J)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "Ns = (d/mw)* N * 10 ** 6\n",
- "r = (Ns)* h ** 3 / (8 * (me * kbT)**1.5)\n",
+ "#partb\n",
+ "t=0.1/0.9;k=8.65*10**-5 #fracion of atoms in case-2 is given\n",
+ "T=-E/(log(t/(g2/g1))*k); #temperature\n",
"\n",
"#result\n",
- "\n",
- "print \"(b) (N/V)h^3/(8*(mkbT)^3/2)=\",round(r/8,2),\"is greater than 1, we conclude that the Maxwell-Boltzmann statistics does not hold for electrons of silver.\""
+ "print\"The value of temperature at which 1/10 atoms are in excited state in K is %.1e\" %round(T,3);"
],
"language": "python",
"metadata": {},
@@ -152,46 +89,77 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) (N/V)h^3/(8*(mkbT)^3/2)= 8.83 X10^-8 is much less than 1, we conclude that even hydrogen is described by Maxwell-Boltzmann statistics.\n",
- "(b) (N/V)h^3/(8*(mkbT)^3/2)= 4.64 is greater than 1, we conclude that the Maxwell-Boltzmann statistics does not hold for electrons of silver.\n"
+ "The number of hydrogen atoms required is 1.5e+175 which weighs 3e+148 Kg\n",
+ "The value of temperature at which 1/10 atoms are in excited state in K is 3.3e+04\n"
]
}
],
- "prompt_number": 5
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 10.3, page no. 352"
+ "Example 10.4 Page 311"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
- "\n",
- "import math\n",
+ "#initiation of variable\n",
+ "from math import log\n",
+ "#theoretical part a\n",
+ "print'The energy of interaction with magnetic field is given by uB and the degeneracy of the states are +-1/2 which are identical.\\nThe ratio is therefore pE2/pE1 which gives e^(-2*u*B/k*T)';\n",
+ "#partb\n",
+ "uB=5.79*10**-4; #for a typical atom\n",
+ "t=1.1;k=8.65*10**-5; #ratio and constant k\n",
"\n",
- "#Variable Declaration\n",
+ "#calculation\n",
+ "T=2*uB/(log(t)*k); #temperature\n",
"\n",
- "kB = 8.62 * 10 ** -5 #Boltzmann constant(eV/K)\n",
- "T1 = 3000 #Cavity walls temperature(K)\n",
- "T2 = 3.00 #Cavity walls temperature(K)\n",
- "hc = 1.24 * 10 ** -4 #product of planck's constant and speed of light (eV.cm)\n",
- "integration = 2.40 #value of integral(z^2/e^z-1,0,+inf)\n",
- "\n",
- "#Calculation\n",
+ "#result\n",
+ "print\"The value of temperature ar which the given ratio exists in K is\",round(T,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy of interaction with magnetic field is given by uB and the degeneracy of the states are +-1/2 which are identical.\n",
+ "The ratio is therefore pE2/pE1 which gives e^(-2*u*B/k*T)\n",
+ "The value of temperature ar which the given ratio exists in K is 140.46\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "p=0.971; A=6.023*10**23; m=23.0; # various given values and constants\n",
"\n",
- "NbyV_at_3000 = 8* math.pi * (kB * T1/hc)**3 * integration\n",
- "NbyV_at_3 = 8* math.pi * (kB * T2/hc)**3 * integration\n",
+ "#calculation\n",
+ "c= (p*A/m)*10**6; # atoms per unit volume\n",
+ "hc=1240.0; mc2=0.511*10**6; # hc=1240 eV.nm\n",
+ "E= ((hc**2)/(2*mc2))*(((3/(8*pi))*c)**(2.0/3)); #value of fermi energy\n",
"\n",
"#result\n",
- "\n",
- "print \"N/V at 3000K is\",round(NbyV_at_3000/10**11,2),\"X 10^11 photons/cm^3. Likewise N/V at 3.00 K is\",round(NbyV_at_3/10**2,2),\"X 10^2 photons/cm^3\"\n",
- "print \"Therefore the photon density decreases by a factor of\",round(NbyV_at_3000/NbyV_at_3/10**9),\" X 10^9 when the temperature drops from 3000K to 3.00K\""
+ "print\"The fermi energy for sodium is\",round(E*10**-18,4),\"eV\";#multiply by 10^-18 to convert metres^2 term to nm^2"
],
"language": "python",
"metadata": {},
@@ -200,12 +168,11 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "N/V at 3000K is 5.47 X 10^11 photons/cm^3. Likewise N/V at 3.00 K is 5.47 X 10^2 photons/cm^3\n",
- "Therefore the photon density decreases by a factor of 1.0 X 10^9 when the temperature drops from 3000K to 3.00K\n"
+ "The fermi energy for sodium is 3.1539 eV\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 12
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter10_1.ipynb b/Modern_Physics/Chapter10_1.ipynb
new file mode 100755
index 00000000..c1e9ff91
--- /dev/null
+++ b/Modern_Physics/Chapter10_1.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "MP-10"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Statistical Physics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.2 Page 307"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\n#The solution is purely theoretical and involves a lot of approximations.\nprint\"The value of shift in frequency was found out to be delf=7.14*fo*10^-7*sqrt(T) for a star composing of hydrogen atoms at a temperature T.\";\nT=6000.0; #temperature for sun\ndelf=7.14*10**-7*sqrt(T);#change in frequency\n\n#result\nprint\"The value of frequency shift for sun(at 6000 deg. temperature) comprsing of hydrogen atoms is\",delf,\" times the frequency of the light.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of shift in frequency was found out to be delf=7.14*fo*10^-7*sqrt(T) for a star composing of hydrogen atoms at a temperature T.\nThe value of frequency shift for sun(at 6000 deg. temperature) comprsing of hydrogen atoms is 5.53062021838e-05 times the frequency of the light.\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.3 Page 309"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt,pi, exp, log\nkT=0.0252;E=10.2 # at room temperature, kT=0.0252 standard value and given value of E\n\n#calculation\nn2=2;n1=1; g2=2*(n2**2);g1=2*(n1**2); #values for ground and excited states\nt=(g2/g1)*exp(-E/kT); #fraction of atoms\n\n#result\nprint\"The number of hydrogen atoms required is %.1e\" %(1.0/t),\" which weighs %.1e\" %((1/t)*(1.67*10**-27)),\"Kg\"\n\n#partb\nt=0.1/0.9;k=8.65*10**-5 #fracion of atoms in case-2 is given\nT=-E/(log(t/(g2/g1))*k); #temperature\n\n#result\nprint\"The value of temperature at which 1/10 atoms are in excited state in K is %.1e\" %round(T,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "can't multiply sequence by non-int of type 'float'",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-0c4f78dafdc9>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;31m#result\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 10\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;34m\"The number of hydrogen atoms required is %.1e\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\" which weighs %.1e\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.67\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m27\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"Kg\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 11\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[1;31m#partb\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mTypeError\u001b[0m: can't multiply sequence by non-int of type 'float'"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The number of hydrogen atoms required is 1.5e+175"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.4 Page 311"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\n#theoritical part a\nprint'The energy of interaction with magnetic field is given by uB and the degeneracy of the states are +-1/2 which are identical.\\nThe ratio is therefore pE2/pE1 which gives e^(-2*u*B/k*T)';\n#partb\nuB=5.79*10**-4; #for a typical atom\nt=1.1;k=8.65*10**-5; #ratio and constant k\n\n#calculation\nT=2*uB/(log(t)*k); #temperature\n\n#result\nprint\"The value of temperature ar which the given ratio exists in K is\",round(T,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The energy of interaction with magnetic field is given by uB and the degeneracy of the states are +-1/2 which are identical.\nThe ratio is therefore pE2/pE1 which gives e^(-2*u*B/k*T)\nThe value of temperature ar which the given ratio exists in K is 140.46\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.5 Page 313"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\np=0.971; A=6.023*10**23; m=23.0; # various given values and constants\n\n#calculation\nc= (p*A/m)*10**6; # atoms per unit volume\nhc=1240.0; mc2=0.511*10**6; # hc=1240 eV.nm\nE= ((hc**2)/(2*mc2))*(((3/(8*pi))*c)**(2.0/3)); #value of fermi energy\n\n#result\nprint\"The fermi energy for sodium is\",round(E*10**-18,4),\"eV\";#multiply by 10^-18 to convert metres^2 term to nm^2",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The fermi energy for sodium is 3.1539 eV\n"
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter10_2.ipynb b/Modern_Physics/Chapter10_2.ipynb
new file mode 100755
index 00000000..c1e9ff91
--- /dev/null
+++ b/Modern_Physics/Chapter10_2.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "MP-10"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Statistical Physics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.2 Page 307"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\n#The solution is purely theoretical and involves a lot of approximations.\nprint\"The value of shift in frequency was found out to be delf=7.14*fo*10^-7*sqrt(T) for a star composing of hydrogen atoms at a temperature T.\";\nT=6000.0; #temperature for sun\ndelf=7.14*10**-7*sqrt(T);#change in frequency\n\n#result\nprint\"The value of frequency shift for sun(at 6000 deg. temperature) comprsing of hydrogen atoms is\",delf,\" times the frequency of the light.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of shift in frequency was found out to be delf=7.14*fo*10^-7*sqrt(T) for a star composing of hydrogen atoms at a temperature T.\nThe value of frequency shift for sun(at 6000 deg. temperature) comprsing of hydrogen atoms is 5.53062021838e-05 times the frequency of the light.\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.3 Page 309"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt,pi, exp, log\nkT=0.0252;E=10.2 # at room temperature, kT=0.0252 standard value and given value of E\n\n#calculation\nn2=2;n1=1; g2=2*(n2**2);g1=2*(n1**2); #values for ground and excited states\nt=(g2/g1)*exp(-E/kT); #fraction of atoms\n\n#result\nprint\"The number of hydrogen atoms required is %.1e\" %(1.0/t),\" which weighs %.1e\" %((1/t)*(1.67*10**-27)),\"Kg\"\n\n#partb\nt=0.1/0.9;k=8.65*10**-5 #fracion of atoms in case-2 is given\nT=-E/(log(t/(g2/g1))*k); #temperature\n\n#result\nprint\"The value of temperature at which 1/10 atoms are in excited state in K is %.1e\" %round(T,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "can't multiply sequence by non-int of type 'float'",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-0c4f78dafdc9>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[1;31m#result\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 10\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;34m\"The number of hydrogen atoms required is %.1e\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.0\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\" which weighs %.1e\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.67\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m**\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m27\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m\"Kg\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 11\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[1;31m#partb\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mTypeError\u001b[0m: can't multiply sequence by non-int of type 'float'"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The number of hydrogen atoms required is 1.5e+175"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.4 Page 311"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\n#theoritical part a\nprint'The energy of interaction with magnetic field is given by uB and the degeneracy of the states are +-1/2 which are identical.\\nThe ratio is therefore pE2/pE1 which gives e^(-2*u*B/k*T)';\n#partb\nuB=5.79*10**-4; #for a typical atom\nt=1.1;k=8.65*10**-5; #ratio and constant k\n\n#calculation\nT=2*uB/(log(t)*k); #temperature\n\n#result\nprint\"The value of temperature ar which the given ratio exists in K is\",round(T,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The energy of interaction with magnetic field is given by uB and the degeneracy of the states are +-1/2 which are identical.\nThe ratio is therefore pE2/pE1 which gives e^(-2*u*B/k*T)\nThe value of temperature ar which the given ratio exists in K is 140.46\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10.5 Page 313"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\np=0.971; A=6.023*10**23; m=23.0; # various given values and constants\n\n#calculation\nc= (p*A/m)*10**6; # atoms per unit volume\nhc=1240.0; mc2=0.511*10**6; # hc=1240 eV.nm\nE= ((hc**2)/(2*mc2))*(((3/(8*pi))*c)**(2.0/3)); #value of fermi energy\n\n#result\nprint\"The fermi energy for sodium is\",round(E*10**-18,4),\"eV\";#multiply by 10^-18 to convert metres^2 term to nm^2",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The fermi energy for sodium is 3.1539 eV\n"
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter11.ipynb b/Modern_Physics/Chapter11.ipynb
index 65f716cb..8b1cca27 100755
--- a/Modern_Physics/Chapter11.ipynb
+++ b/Modern_Physics/Chapter11.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:e6be7abf8c97801180567f4f6cb83dc9e729f9c81204b1adfe4e1f54ff45dd36"
+ "name": "Chapter11"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 11: Molecular Structure"
+ "Chapter 11:Solid State Physics"
]
},
{
@@ -21,46 +20,28 @@
"level": 2,
"metadata": {},
"source": [
- "Example 11.1, page no. 380"
+ "Example 11.1, Page 346"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "c=769.0*10**3; Na=6.023*10**23; JeV=1.6*10**-19; #various constants and given values\n",
"\n",
- "import math\n",
+ "#calculation\n",
+ "Be=c/(Na*JeV); #Binding energy of an ion pair in the lattice\n",
"\n",
- "#Variable Declaration\n",
+ "#result\n",
+ "print\"The experimental value was found out to be in eV.\",round(Be,5);\n",
"\n",
- "f = 1.15 * 10 ** 11 # Frequency(Hz)\n",
- "h = 1.055 * 10 ** -34 # Planck's constant(J.s)\n",
- " \n",
- "#Calculation\n",
+ "#partb\n",
+ "n=9.0;a=1.7476; R=0.281; k= 1.44; #Given values and consstants\n",
+ "Bc=k*a*(1-(1/n))/R; #ionic binding energy experimentally\n",
"\n",
- "w = 2 * math.pi * f\n",
- "Icm = h / w\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"(a) The moment of inertia is\",round(Icm/10 **-46 , 2),\"X 10^-46 kg.m^2.\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "Ac = 12.0 #atomic mass of carbon (u)\n",
- "Ao = 16.0 #atomic mass of oxygen (u)\n",
- "u = 1.66 * 10 ** -27#(kg)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "mu = Ac* Ao /(Ac+Ao)\n",
- "R0 = math.sqrt(Icm/(mu*u))\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"(b) The bond length of the molecule is\",round(R0/10**-9,3),\"nm.\""
+ "#result\n",
+ "print\"The calculated value of the binding energy in eV.is\",round(Bc,4);\n"
],
"language": "python",
"metadata": {},
@@ -69,8 +50,42 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) The moment of inertia is 1.46 X 10^-46 kg.m^2.\n",
- "(b) The bond length of the molecule is 0.113 nm.\n"
+ "The experimental value was found out to be in eV. 7.97983\n",
+ "The calculated value of the binding energy in eV.is 7.9606\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "a=3.61;# amount of energy required to remove an electron from Cl- ion\n",
+ "b=-5.14 #amount of energy returned when an electron is added to Na+ ion\\\n",
+ "c=7.98 #binding energy of NaCl atom\n",
+ "\n",
+ "#calculation\n",
+ "E=a+b+c #sum of all the energies\n",
+ "print\"The net energy to be supplied in eV is\",round(E,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net energy to be supplied in eV is 6.45\n"
]
}
],
@@ -81,44 +96,38 @@
"level": 2,
"metadata": {},
"source": [
- "Example 11.2, page no. 383"
+ "Example 11.3, Page 355"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import exp,sqrt\n",
+ "Na=6.023*10**23; p=8.96*10**3; M=63.5*10**-3; #Na=avagadro's number,p=density,M=molar mass\n",
"\n",
+ "#calculation\n",
+ "n= p*Na/M; #density of charge carriers\n",
"\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "f = 6.42 * 10 ** 13 #frequency(Hz)\n",
- "mu = 1.14 * 10 ** -26 #(kg)\n",
- " \n",
- "#Calculation\n",
- "\n",
- "w = 2 * math.pi * f\n",
- "K = mu * w**2\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"(a) The force constant for this molecule is \",round(K/10**3,2),\"X 10^3 N/m.\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
+ "#result'\n",
+ "print\"The density of charge carriers in copper in atoms/m3 is %.1e\" %round(n,3);\n",
"\n",
- "h = 1.055 * 10 ** -34 #Planck's constant (J.s)\n",
+ "s=5.88*10**7;m=9.11*10**-31;e=1.6*10**-19; #charge & mass of an electron,resistance per unit length\n",
+ "t= s*m/(n*e**2); #average time between collisions\n",
"\n",
- "#Calculation\n",
+ "#result\n",
+ "print \"The average time between collisions of conducting electrons in sec.is %.1e\" %t\n",
"\n",
- "A = (h/(mu * w)) ** 0.5\n",
+ "#partb\n",
+ "Ef=7.03*1.6*10**-19; #converting given enrgy to J\n",
"\n",
- "#Results\n",
+ "#calculation\n",
+ "Vf=sqrt(2*Ef/m); #fermi velocity\n",
+ "l=Vf*t; #mean free path\n",
"\n",
- "print \"(b) The Vibration amplitude is\",round(A/10**-9,5),\"nm.\""
+ "#result\n",
+ "print \"The average mean free path is\",l,\"m =\",round(l*10**9,3),\" nm\"\n"
],
"language": "python",
"metadata": {},
@@ -127,12 +136,13 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) The force constant for this molecule is 1.85 X 10^3 N/m.\n",
- "(b) The Vibration amplitude is 0.00479 nm.\n"
+ "The density of charge carriers in copper in atoms/m3 is 8.5e+28\n",
+ "The average time between collisions of conducting electrons in sec.is 2.5e-14\n",
+ "The average mean free path is 3.8690296096e-08 m = 38.69 nm\n"
]
}
],
- "prompt_number": 6
+ "prompt_number": 1
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter11_1.ipynb b/Modern_Physics/Chapter11_1.ipynb
new file mode 100755
index 00000000..385146de
--- /dev/null
+++ b/Modern_Physics/Chapter11_1.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "MP-11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Solid State Physics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11.1 Page 346"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nc=769.0*10**3; Na=6.023*10**23; JeV=1.6*10**-19; #various constants and given values\n\n#calculation\nBe=c/(Na*JeV); #Binding energy of an ion pair in the lattice\n\n#result\nprint\"The experimental value was found out to be in eV.\",round(Be,5);\n\n#partb\nn=9.0;a=1.7476; R=0.281; k= 1.44; #Given values and consstants\nBc=k*a*(1-(1/n))/R; #ionic binding energy eperimentally\n\n#result\nprint\"The calculated value of the binding energy in eV.is\",round(Bc,4);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The experimental value was found out to be in eV. 7.97983\nThe calculated value of the binding energy in eV.is 7.9606\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11.2 Page 350"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\na=3.61;# amount of energy required to remove an electron from Cl- ion\nb=-5.14 #amount of energy returned when an electron is added to Na+ ion\\\nc=7.98 #binding energy of NaCl atom\n\n#calculation\nE=a+b+c #suom of all the energies\nprint\"The net energy to be supplied in eV is\",round(E,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The net energy to be supplied in eV is 6.45\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11.3 Page 355"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp,sqrt\nNa=6.023*10**23; p=8.96*10**3; M=63.5*10**-3; #Na=avagadro's number,p=density,M=molar mass\n\n#calculation\nn= p*Na/M; #density of charge carriers\n\n#result'\nprint\"The density of charge carriers in copper in atoms/m3 is %.1e\" %round(n,3);\n\ns=5.88*10**7;m=9.11*10**-31;e=1.6*10**-19; #charge & mass of an electron,resistance per unit length\nt= s*m/(n*e**2); #average time between collisions\n\n#result\nprint \"The average time between collisions of conducting electrons in sec.is %.1e\" %t\n\n#partb\nEf=7.03*1.6*10**-19; #converting given enrgy to J\n\n#calculation\nVf=sqrt(2*Ef/m); #fermi velocity\nl=Vf*t; #mean free path\n\n#result\nprint \"The average mean free path is\",l,\"m =\",round(l*10**9,3),\" nm\"\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The density of charge carriers in copper in atoms/m3 is 8.5e+28\nThe average time between collisions of conducting electrons in sec.is 2.5e-14\nThe average mean free path is 3.8690296096e-08 m = 38.69 nm\n"
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter11_2.ipynb b/Modern_Physics/Chapter11_2.ipynb
new file mode 100755
index 00000000..385146de
--- /dev/null
+++ b/Modern_Physics/Chapter11_2.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "MP-11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Solid State Physics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11.1 Page 346"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nc=769.0*10**3; Na=6.023*10**23; JeV=1.6*10**-19; #various constants and given values\n\n#calculation\nBe=c/(Na*JeV); #Binding energy of an ion pair in the lattice\n\n#result\nprint\"The experimental value was found out to be in eV.\",round(Be,5);\n\n#partb\nn=9.0;a=1.7476; R=0.281; k= 1.44; #Given values and consstants\nBc=k*a*(1-(1/n))/R; #ionic binding energy eperimentally\n\n#result\nprint\"The calculated value of the binding energy in eV.is\",round(Bc,4);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The experimental value was found out to be in eV. 7.97983\nThe calculated value of the binding energy in eV.is 7.9606\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11.2 Page 350"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\na=3.61;# amount of energy required to remove an electron from Cl- ion\nb=-5.14 #amount of energy returned when an electron is added to Na+ ion\\\nc=7.98 #binding energy of NaCl atom\n\n#calculation\nE=a+b+c #suom of all the energies\nprint\"The net energy to be supplied in eV is\",round(E,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The net energy to be supplied in eV is 6.45\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11.3 Page 355"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp,sqrt\nNa=6.023*10**23; p=8.96*10**3; M=63.5*10**-3; #Na=avagadro's number,p=density,M=molar mass\n\n#calculation\nn= p*Na/M; #density of charge carriers\n\n#result'\nprint\"The density of charge carriers in copper in atoms/m3 is %.1e\" %round(n,3);\n\ns=5.88*10**7;m=9.11*10**-31;e=1.6*10**-19; #charge & mass of an electron,resistance per unit length\nt= s*m/(n*e**2); #average time between collisions\n\n#result\nprint \"The average time between collisions of conducting electrons in sec.is %.1e\" %t\n\n#partb\nEf=7.03*1.6*10**-19; #converting given enrgy to J\n\n#calculation\nVf=sqrt(2*Ef/m); #fermi velocity\nl=Vf*t; #mean free path\n\n#result\nprint \"The average mean free path is\",l,\"m =\",round(l*10**9,3),\" nm\"\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The density of charge carriers in copper in atoms/m3 is 8.5e+28\nThe average time between collisions of conducting electrons in sec.is 2.5e-14\nThe average mean free path is 3.8690296096e-08 m = 38.69 nm\n"
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter12.ipynb b/Modern_Physics/Chapter12.ipynb
index 3cc3e98a..904fea62 100755
--- a/Modern_Physics/Chapter12.ipynb
+++ b/Modern_Physics/Chapter12.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:6dfe8c3f0e395e550057fecf65810f55f95ea60853478f130ac485dd9541147f"
+ "name": "Chapter12",
+ "signature": "sha256:a11a7c1ba314b90500bccd87a2a9d038a55aefe70077541468dd4c2624276146"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 12: The Solid State"
+ "Chapter 12:Nuclear Structure and Reactivity"
]
},
{
@@ -21,61 +21,218 @@
"level": 2,
"metadata": {},
"source": [
- "Example 12.1, page no. 418"
+ "Example 12.1, Page 375"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "Z=2;A=4;N=A-Z; # Given values\n",
"\n",
- "#Variable Declaration\n",
+ "#result\n",
+ "print\"The following method of representing atoms is followed throughout the chapter\\n\\t\\t x,y,z\\n where x=atomic number y=mass number z= Neutron Number S=symbol of the atom\\n\\n\"\n",
+ "print\"The helium can be reperesented as He-- \",Z,A,N;\n",
"\n",
- "kb = 1.38 * 10 **-23 #Boltzmann constant (J/K)\n",
- "T = 300 # room temperature (K)\n",
- "me = 9.11 * 10 ** -31 # mass of electron (kg)\n",
- "d = 8.96 * 10**6 # density of copper (g/m^3)\n",
- "N = 6.023 * 10 **23 #avagodro's number (atoms/mole)\n",
- "mw = 63.5 #molar weight (g)\n",
- "A = 4 * 10 ** -6 #area (m^2)\n",
- "I = 10 # current (A)\n",
- "e = 1.6 * 10 ** -19 # charge of electron(C)\n",
+ "#part b\n",
+ "Z=50.0;N=66.0;A=Z+N; # Given values and standard formulae\n",
+ "print\"The Tin can be reperesented as Sn-- \",Z,A,N;\n",
"\n",
- "#Calculation\n",
"\n",
- "Vrms = (3*kb*T/me)**0.5\n",
- "n = N * d / mw\n",
- "Vd = I /(n*e*A)\n",
+ "#part c\n",
+ "A=235;N=143;Z=A-N;\n",
+ "print\"The Uranium can be reperesented as U-- \",Z,A,N;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The following method of representing atoms is followed throughout the chapter\n",
+ "\t\t x,y,z\n",
+ " where x=atomic number y=mass number z= Neutron Number S=symbol of the atom\n",
+ "\n",
+ "\n",
+ "The helium can be reperesented as He-- 2 4 2\n",
+ "The Tin can be reperesented as Sn-- 50.0 116.0 66.0\n",
+ "The Uranium can be reperesented as U-- 92 235 143\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "r0=1.2; #standard value.\n",
+ "A=12.0; \n",
+ "r= r0*A**(1.0/3);\n",
"\n",
- "#Results\n",
+ "#result\n",
+ "print\"The value of mean radius for C in fm is\",round(r,3);\n",
"\n",
- "print \"(a) The ratio of drift speed to rms speed is \",round(Vd/Vrms/10**-9,2),\"X 10^-9.\"\n",
+ "#part2\n",
+ "A=70.0; #given value\n",
+ "r= r0*A**(1.0/3);\n",
"\n",
+ "#result\n",
+ "print\"The value of mean radius for C in fm is\",round(r,3);\n",
"\n",
- "#Variable Declaration\n",
+ "#part3\n",
+ "A=209;\n",
+ "r= r0*A**(1.0/3);\n",
"\n",
- "L = 2.6 * 10 ** -10 #interatomic distance(A') \n",
+ "#result\n",
+ "print\"The value of mean radius for C in fm is\",round(r,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of mean radius for C in fm is 2.747\n",
+ "The value of mean radius for C in fm is 4.946\n",
+ "The value of mean radius for C in fm is 7.121\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3, Page 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "m=1.67*10**-27; r0=1.2*10**-15; v=4*pi*(r0**3)/3.0 #standard values of mass radius and volume\n",
"\n",
- "#Calculation\n",
+ "#calculation\n",
+ "p=m/v; #density \n",
"\n",
- "t = L / Vrms \n",
+ "#result\n",
+ "print\"Density of typical nucleus in kg/m3 is %.0e\" %p;\n",
"\n",
- "#Results\n",
+ "#part 2\n",
+ "r0=0.01;v=4*pi*(r0**3)/3.0;p=2.0*10**17; #/hypothetical values\n",
+ "m1=p*v; \n",
"\n",
- "print \"(b) The average time between collisions\",round(t/10**-15,1),\"X 10^-15 m/s.\"\n",
+ "#result\n",
+ "print\"The mass of the hypothetical nucleus would be in Kg %.0e\" %m1;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density of typical nucleus in kg/m3 is 2e+17\n",
+ "The mass of the hypothetical nucleus would be in Kg 8e+11\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "N=30.0;Z=26.0;A=56.0;Mn=1.008665;Mp=1.007825;m=55.934939;c2=931.5; #given values and constants for case-1\n",
+ "B=((N*Mn)+(Z*Mp)-(m))*c2; #binding energy(per nucleon)\n",
"\n",
+ "#result\n",
+ "print\"Binding energy per nucleon for 26,56Fe30 in MeV is\",round(B/A,3);\n",
"\n",
- "#Variable Declaration\n",
+ "#part 2\n",
+ "N=146.0;Z=92.0;A=238.0;Mn=1.008665;Mp=1.007825;m=238.050785;c2=931.5; #given values and constants for case-2\n",
+ "B=((N*Mn)+(Z*Mp)-(m))*c2; #binding energy(per nucleon)\n",
"\n",
- "T = 300 #Room temperature (K)\n",
+ "#result\n",
+ "print\"Binding energy per nucleon for 26,56Fe30 in MeV is\",round(B/A,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Binding nergy per nucleon for 26,56Fe30 in MeV is 8.79\n",
+ "Binding nergy per nucleon for 26,56Fe30 in MeV is 7.57\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page 382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "t12=2.7*24*3600; #converting days into seconds\n",
+ "w=0.693/t12; #lambda\n",
+ "\n",
+ "#result\n",
+ "print\"The decay constant in sec is %.2e\" %w; \n",
"\n",
- "#Calculation\n",
+ "#partb\n",
+ "print\"The decay constant is equal to probability of decay in one second hence %.2e\" %w;\n",
"\n",
- "sigma = n*e**2 * L /(3*kb*T*me)**0.5\n",
+ "#partc\n",
+ "m=10**-6;Na=6.023*10**23; M=198.0; #given values and constants\n",
+ "N=m*Na/M; #number of atoms in the sample \n",
+ "Ao=w*N; #activity\n",
"\n",
- "#Results\n",
+ "#result\n",
+ "print\"The activity was found out to be in Ci is %.2e\" %Ao,\"=0.244Ci\"; \n",
"\n",
- "print \"(c) The conductivity is\",round(sigma/10**6,1),\"X 10^6 (ohm.m)^-1.\""
+ "#partd\n",
+ "t=7*24*3600.0; #given time\n",
+ "A=Ao*exp(-w*t); #activity\n",
+ "\n",
+ "#result\n",
+ "print\"The activity after one week was found out to be in decays/sec %.1e\" %A;"
],
"language": "python",
"metadata": {},
@@ -84,39 +241,149 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) The ratio of drift speed to rms speed is 1.57 X 10^-9.\n",
- "(b) The average time between collisions 2.2 X 10^-15 m/s.\n",
- "(c) The conductivity is 5.3 X 10^6 (ohm.m)^-1.\n"
+ "The decay constant in sec is 2.97e-06\n",
+ "The decay constant is equal to probability of decay in one second hence 2.97e-06\n",
+ "The activity was found out to be in Ci is 9.04e+09 =0.244Ci\n",
+ "The activity after one week was found out to be in decays/sec 1.5e+09\n"
]
}
],
- "prompt_number": 2
+ "prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 12.2, page no. 429"
+ "Example 12.6, Page 384"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "t1=4.55*10**9;t2=7.04*10**8; #given values of time at 2 different instants\n",
"\n",
- "#Variable Declaration\n",
+ "#calculation\n",
+ "age=t1/t2;\n",
+ "r=2**age;\n",
"\n",
- "V = 7 # voltage(V)\n",
- "L = 5 * 10 ** -8 # mean free path (m)\n",
- " \n",
- "#Calculation\n",
- "\n",
- "E = V/L\n",
+ "#result\n",
+ "print \"The original rock hence contained\",round(r,3),\"Na atoms of 235U where Na is the Avagadro''s Number=6.023*10^23\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The original rock hence contained 88.222 Na atoms of 235U where Na is the Avagadro''s Number=6.023*10^23\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "m236Ra=226.025403;\n",
+ "m222Rn=222.017571;\n",
+ "m4He=4.002603;c2=931.5; #mass of various elements and c2=c^2\n",
+ "\n",
+ "#calculation\n",
+ "Q=(m236Ra-m222Rn-m4He)*c2;#Q of the reaction\n",
+ "A=226.0 \n",
+ "K=((A-4)/A)*Q; #kinetic energy\n",
+ "\n",
+ "#result\n",
+ "print\"The kinetic energy of the alpha particle in Mev is\",round(K,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The kinetic energy of the alpha particle in Mev is 4.785\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, Page 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "m226Ra=226.025403; #mass of various elements\n",
+ "m212Pb=211.991871;\n",
+ "m14c=14.003242;\n",
+ "c2=931.5; #value of c^2\n",
+ "\n",
+ "#calculation\n",
+ "Q=(m226Ra-m212Pb-m14c)*c2; #Q of the reaction\n",
+ "\n",
+ "#result\n",
+ "print\"The value of Q for 14c emission in MeV is\",round(Q,3);\n",
+ "print\"The probability of 14c emission is 10^-9 times that of an alpha particle since the energy barrier for 14c emission is nearly 3 times higher and thicker.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of Q for 14c emission in MeV is 28.215\n",
+ "The probability of 14c emission is 10^-9 times that of an alpha particle since the energy barrier for 14c emission is nearly 3 times higher and thicker.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9, Page 389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "m23Ne=22.994465; #mass of various elements\n",
+ "m23Na=22.989768;\n",
+ "c2=931.5; #value of c^2\n",
"\n",
- "#Results\n",
+ "#calculation\n",
+ "Q=(m23Ne-m23Na)*c2; #Q of the reaction\n",
"\n",
- "print \"The electric field required is\",round(E/10**8,1),\"X 10^8 V/m.\""
+ "#result\n",
+ "print \"Hence the maximum kinetic energy of the emitted electrons in MeV is\",round(Q,3);"
],
"language": "python",
"metadata": {},
@@ -125,40 +392,53 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The electric field required is 1.4 X 10^8 V/m.\n"
+ "Hence the maximum kinetic energy of the emitted electrons in MeV is 4.375\n"
]
}
],
- "prompt_number": 4
+ "prompt_number": 16
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 12.3, page no. 436"
+ "Example 12.10, Page 390"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "m40K=39.963999; #mass of various particles\n",
+ "m40Ca=39.962591;\n",
+ "c2=931.5; #value of c^2 in MeV\n",
"\n",
+ "#calculation\n",
+ "Qb1=(m40K-m40Ca)*c2; #Q value of the reaction\n",
"\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
+ "#result\n",
+ "print\"The Q value for -VE beta emission in Mev in\",round(Qb1,3);\n",
"\n",
- "V = 1 #voltage(eV)\n",
- "kBT = 0.025 # kB * T (eV)\n",
+ "#partb\n",
+ "m40K=39.963999; #mass of various particles\n",
+ "m40Ar=39.962384;\n",
+ "me=0.000549;\n",
+ "Qb2=(m40K-m40Ar-2*me)*c2; #Q value of the reaction\n",
"\n",
- "#Calculation\n",
+ "#result\n",
+ "print\"The Q value for +VE beta emission in Mev in\",round(Qb2,3);\n",
"\n",
- "ratio = (math.exp(V/kBT)-1)/(math.exp(-V/kBT)-1)\n",
+ "#partc\n",
+ "m40K=39.963999;\n",
+ "m40Ar=39.962384;\n",
"\n",
- "#Results\n",
+ "#calculation\n",
+ "Qec=(m40K-m40Ar)*c2;\n",
"\n",
- "print \"The ratio of forward to reverse current is\",round(ratio/10**17,1),\"X 10^17.\""
+ "#result\n",
+ "print\"The Q value for +VE beta emission in Mev in\",round(Qec,3);"
],
"language": "python",
"metadata": {},
@@ -167,11 +447,183 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The ratio of forward to reverse current is -2.4 X 10^17.\n"
+ "The Q value for -VE beta emission in Mev in 1.312\n",
+ "The Q value for +VE beta emission in Mev in 0.482\n",
+ "The Q value for +VE beta emission in Mev in 1.504\n"
]
}
],
- "prompt_number": 6
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "Mg=12.000000; #mass of the carbon atom in amu\n",
+ "c2=931.5; \n",
+ "Eg=4.43; #given energy of gamma ray \n",
+ "Mex=Mg+(Eg/c2); #mass in excited state\n",
+ "Me=0.000549; #mass of an electron\n",
+ "\n",
+ "#calculation\n",
+ "Q=(12.018613-Mex-2*Me)*c2; #Q of the particle\n",
+ "\n",
+ "#result\n",
+ "print\"The maximum value of kinetic energy is in MeV\",round(Q,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum value of kinetic energy is in MeV 11.885\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "m238U=238.050786; #mass of various quantities\n",
+ "m206Pb=205.974455;\n",
+ "m4He=4.002603;\n",
+ "c2=931.5; #constants\n",
+ "Na=6.023*10**23; #avagadro's number\n",
+ "\n",
+ "#calculation\n",
+ "Q=(m238U-m206Pb-8*m4He)*c2; \n",
+ "t12=(4.5)*10**9*(3.16*10**7); #half life years to seconds conversion\n",
+ "w=0.693/t12; # lambeda\n",
+ "NoD=(Na/238)*w; #number of decays\n",
+ "E=NoD*Q*(1.6*10**-19)*10**6; #rate of liberation of energy,converting MeV to eV\n",
+ "\n",
+ "#result\n",
+ "print\"Rate of energy liberation in W is %.0e\" %E;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of energy liberation in W is 1e-07\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import log\n",
+ "R=0.5;t12=4.5*10**9; #value of radius and half-life \n",
+ "t1=(t12/0.693)*log(1+(1/R)); #age of rock 1\n",
+ "R=1.0;\n",
+ "t2=(t12/0.693)*log(1+(1/R)); #age of rock-2\n",
+ "R=2.0\n",
+ "t3=(t12/0.693)*log(1+(1/R)); #age of rock 3\n",
+ "\n",
+ "#result\n",
+ "print\"The ages of rock samples in years respectively are %.1e\"%t1,\" %.1e\" %t2,\" %.1e\" %t3;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ages of rock samples in years respectively are 7.1e+09 4.5e+09 2.6e+09\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import log\n",
+ "P=2.0*10**14; V=2.0*10**-14; R=8.314; T=295.0;Na=6.023*10**23; #various constants and given values\n",
+ "\n",
+ "#calculation\n",
+ "n=P*V/(R*T); #ideal gas law\n",
+ "N=Na*n;f=10**-12 #avagadaro's number and fraction of carbon molecules\n",
+ "t12=5730*3.16*(10**7); #half life\n",
+ "A=(0.693/t12)*N*f; #activity\n",
+ "D1w=A*7*24*60*60; #decays per second\n",
+ "\n",
+ "#result\n",
+ "print\"the no. of decays per second is %.2e\" %A\n",
+ "print\"The no of decays per week is \",round(D1w);\n",
+ " \n",
+ " \n",
+ "#partb\n",
+ "c1=1420.0; #concentration at instant 1\n",
+ "c2=D1w; #concentration at instant 2\n",
+ "t12y=5730; #half life\n",
+ "t=t12y*log(c2/c1)/0.693; #age of the sample\n",
+ "\n",
+ "#result\n",
+ "print\"Age of the sample in years is\",round(t,3);\n",
+ "print\"the answer in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the no. of decays per second is 3.76e-03\n",
+ "The no of decays pers week is 2274.0\n",
+ "Age of the sample in years is 3892.57\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter12_1.ipynb b/Modern_Physics/Chapter12_1.ipynb
new file mode 100755
index 00000000..ccacecc1
--- /dev/null
+++ b/Modern_Physics/Chapter12_1.ipynb
@@ -0,0 +1,322 @@
+{
+ "metadata": {
+ "name": "MP-12"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Nuclear Structure and Reactivity"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.1 Page 375"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nZ=2;A=4;N=A-Z; # Given values\n\n#result\nprint\"The following method of representing atoms is followed throughout the chapter\\n\\t\\t x,y,z\\n where x=atomic number y=mass number z= Neutron Number S=symbol of the atom\\n\\n\"\nprint\"The helium can be reperesented as He-- \",Z,A,N;\n\n#part b\nZ=50.0;N=66.0;A=Z+N; # Given values and standard formulae\nprint\"The Tin can be reperesented as Sn-- \",Z,A,N;\n\n\n#part c\nA=235;N=143;Z=A-N;\nprint\"The Uranium can be reperesented as U-- \",Z,A,N;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The following method of representing atoms is followed throughout the chapter\n\t\t x,y,z\n where x=atomic number y=mass number z= Neutron Number S=symbol of the atom\n\n\nThe helium can be reperesented as He-- 2 4 2\nThe Tin can be reperesented as Sn-- 50.0 116.0 66.0\nThe Uranium can be reperesented as U-- 92 235 143\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.2 Page 377"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nr0=1.2; #standard value.\nA=12.0; \nr= r0*A**(1.0/3);\n\n#result\nprint\"The value of mean radius for C in fm is\",round(r,3);\n\n#part2\nA=70.0; #given value\nr= r0*A**(1.0/3);\n\n#result\nprint\"The value of mean radius for C in fm is\",round(r,3);\n\n#part3\nA=209;\nr= r0*A**(1.0/3);\n\n#result\nprint\"The value of mean radius for C in fm is\",round(r,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of mean radius for C in fm is 2.747\nThe value of mean radius for C in fm is 4.946\nThe value of mean radius for C in fm is 7.121\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.3 Page 379"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\nm=1.67*10**-27; r0=1.2*10**-15; v=4*pi*(r0**3)/3.0 #standard values of mass radius and volume\n\n#calculation\np=m/v; #denisty \n\n#result\nprint\"Density of typical nucleus in kg/m3 is %.1e\" %p;\n\n#part 2\nr0=0.01;v=4*pi*(r0**3)/3.0;p=2.0*10**17; #/hypothetical values\nm1=p*v; \n\n#result\nprint\"The mass of the hypothetical nucleus would be in Kg %.1e\" %m1;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Density of typical nucleus in kg/m3 is 2.3e+17\nThe mass of the hypothetical nucleus would be in Kg 8.4e+11\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.4 Page 380"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nN=30.0;Z=26.0;A=56.0;Mn=1.008665;Mp=1.007825;m=55.934939;c2=931.5; #given values and constants for case-1\nB=((N*Mn)+(Z*Mp)-(m))*c2; #binding energy(per nucleon)\n\n#result\nprint\"Binding nergy per nucleon for 26,56Fe30 in MeV is\",round(B/A,3);\n\n#part 2\nN=146.0;Z=92.0;A=238.0;Mn=1.008665;Mp=1.007825;m=238.050785;c2=931.5; #given values and constants for case-2\nB=((N*Mn)+(Z*Mp)-(m))*c2; #binding energy(per nucleon)\n\n#result\nprint\"Binding nergy per nucleon for 26,56Fe30 in MeV is\",round(B/A,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Binding nergy per nucleon for 26,56Fe30 in MeV is 8.79\nBinding nergy per nucleon for 26,56Fe30 in MeV is 7.57\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.5 Page 382"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nt12=2.7*24*3600; #converting days into seconds\nw=0.693/t12; #lambeda\n\n#result\nprint\"The decay constant in sec is %.2e\" %w; \n\n#partb\nprint\"The decay constant is equal to probability of decay in one second hence %.2e\" %w;\n\n#partc\nm=10**-6;Na=6.023*10**23; M=198.0; #given values and constants\nN=m*Na/M; #number of atoms in the sample \nAo=w*N; #activity\n\n#result\nprint\"The activity was found out to be in Ci is %.2e\" %Ao; \n\n#partd\nt=7*24*3600.0; #given time\nA=Ao*exp(-w*t); #activity\n\n#result\nprint\"The activity after one week was found out to be in decays/sec %.1e\" %A;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The decay constant in sec is 2.97e-06\nThe decay constant is equal to probability of decay in one second hence 2.97e-06\nThe activity was found out to be in Ci is 9.04e+09\nThe activity after one week was found out to be in decays/sec 1.5e+09\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.6 Page 384"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nt1=4.55*10**9;t2=7.04*10**8; #given values of time at 2 different instants\n\n#calculation\nage=t1/t2;\nr=2**age;\n\n#result\nprint \"The original rock hence contained\",round(r,3),\"Na atoms of 235U where Na is the Avagadro''s Number=6.023*10^23\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The original rock hence contained 88.222 Na atoms of 235U where Na is the Avagadro''s Number=6.023*10^23\n"
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.7 Page 385"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm236Ra=226.025403;\nm222Rn=222.017571;\nm4He=4.002603;c2=931.5; #mass of various elements and c2=c^2\n\n#calculation\nQ=(m236Ra-m222Rn-m4He)*c2;#Q of the reaction\nA=226.0 \nK=((A-4)/A)*Q; #kinetic energy\n\n#result\nprint\"The kinetic energy of the alpha particle in Mev is\",round(K,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The kinetic energy of the alpha particle in Mev is 4.785\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.8 Page 387"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm226Ra=226.025403; #mass of various elements\nm212Pb=211.991871;\nm14c=14.003242;\nc2=931.5; #value of c^2\n\n#calculation\nQ=(m226Ra-m212Pb-m14c)*c2; #Q of the reaction\n\n#result\nprint\"The value of Q for 14c emission in MeV is\",round(Q,3);\nprint\"The probability of 14c emission is 10^-9 times that of an alpha particle since the energy barrier for 14c emission is nearly 3 times higher and thicker.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of Q for 14c emission in MeV is 28.215\nThe probability of 14c emission is 10^-9 times that of an alpha particle since the energy barrier for 14c emission is nearly 3 times higher and thicker.\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.9 Page 389"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm23Ne=22.994465; #mass of various elements\nm23Na=22.989768;\nc2=931.5; #value of c^2\n\n#calculation\nQ=(m23Ne-m23Na)*c2; #Q of the reaction\n\n#result\nprint \"Hence the maximum kinetic energy of the emitted electrons in MeV is\",round(Q,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the maximum kinetic energy of the emitted electrons in MeV is 4.375\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.10 Page 390"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm40K=39.963999; #mass of various particles\nm40Ca=39.962591;\nc2=931.5; #value of c^2 in MeV\n\n#calculation\nQb1=(m40K-m40Ca)*c2; #Q value of the reaction\n\n#result\nprint\"The Q value for -VE beta emission in Mev in\",round(Qb1,3);\n\n#partb\nm40K=39.963999; #mass of various particles\nm40Ar=39.962384;\nme=0.000549;\nQb2=(m40K-m40Ar-2*me)*c2; #Q value of the reaction\n\n#result\nprint\"The Q value for +VE beta emission in Mev in\",round(Qb2,3);\n\n#partc\nm40K=39.963999;\nm40Ar=39.962384;\n\n#calculation\nQec=(m40K-m40Ar)*c2;\n\n#result\nprint\"The Q value for +VE beta emission in Mev in\",round(Qec,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Q value for -VE beta emission in Mev in 1.312\nThe Q value for +VE beta emission in Mev in 0.482\nThe Q value for +VE beta emission in Mev in 1.504\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.11 Page 392"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nMg=12.000000; #mass of the carbon atom in amu\nc2=931.5; \nEg=4.43; #given energy of gamma ray \nMex=Mg+(Eg/c2); #mass in excited state\nMe=0.000549; #mass of an electron\n\n#calculation\nQ=(12.018613-Mex-2*Me)*c2; #Q of the particle\n\n#result\nprint\"The maximum value of kinetic energy is in MeV\",round(Q,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The maximum value of kinetic energy is in MeV 11.885\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.12 Page 393"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm238U=238.050786; #mass of various quantities\nm206Pb=205.974455;\nm4He=4.002603;\nc2=931.5; #constants\nNa=6.023*10**23; #avagadro's number\n\n#calculation\nQ=(m238U-m206Pb-8*m4He)*c2; \nt12=(4.5)*10**9*(3.16*10**7); #half life years to seconds conversion\nw=0.693/t12; # lambeda\nNoD=(Na/238)*w; #number of decays\nE=NoD*Q*(1.6*10**-19)*10**6; #rate of liberation of energy,converting MeV to eV\n\n#result\nprint\"Rate of energy liberation in W is %.2e\" %E;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Rate of energy liberation in W is 1.02e-07\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.13 Page 395"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\nR=0.5;t12=4.5*10**9; #value of radius and half-life \nt1=(t12/0.693)*log(1+(1/R)); #age of rock 1\nR=1.0;\nt2=(t12/0.693)*log(1+(1/R)); #age of rock-2\nR=2.0\nt3=(t12/0.693)*log(1+(1/R)); #age of rock 3\n\n#result\nprint\"The ages of rock samples in years respectively are %.1e\"%t1,\" %.1e\" %t2,\" %.1e\" %t3;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The ages of rock samples in years respectively are 7.1e+09 4.5e+09 2.6e+09\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.14 Page 397"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\nP=2.0*10**14; V=2.0*10**-14; R=8.314; T=295.0;Na=6.023*10**23; #varoius constants and given values\n\n#calculation\nn=P*V/(R*T); #ideal gas law\nN=Na*n;f=10**-12 #avagadaro's number and fracction of carbon molecules\nt12=5730*3.16*(10**7); #half life\nA=(0.693/t12)*N*f; #activity\nD1w=A*7*24*60*60; #decays per second\n\n#result\nprint\"the no. of decays per second is %.2e\" %A\nprint\"The no of decays pers week is \",round(D1w);\n \n \n#partb\nc1=1420.0; #concentration at instant 1\nc2=D1w; #concentration at instant 2\nt12y=5730; #half life\nt=t12y*log(c2/c1)/0.693; #age of the sample\n\n#result\nprint\"Age of the sample in years is\",round(t,3);\nprint\"the answer in the book is wrong\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "the no. of decays per second is 3.76e-03\nThe no of decays pers week is 2274.0\nAge of the sample in years is 3892.57\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter12_2.ipynb b/Modern_Physics/Chapter12_2.ipynb
new file mode 100755
index 00000000..ccacecc1
--- /dev/null
+++ b/Modern_Physics/Chapter12_2.ipynb
@@ -0,0 +1,322 @@
+{
+ "metadata": {
+ "name": "MP-12"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Nuclear Structure and Reactivity"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.1 Page 375"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nZ=2;A=4;N=A-Z; # Given values\n\n#result\nprint\"The following method of representing atoms is followed throughout the chapter\\n\\t\\t x,y,z\\n where x=atomic number y=mass number z= Neutron Number S=symbol of the atom\\n\\n\"\nprint\"The helium can be reperesented as He-- \",Z,A,N;\n\n#part b\nZ=50.0;N=66.0;A=Z+N; # Given values and standard formulae\nprint\"The Tin can be reperesented as Sn-- \",Z,A,N;\n\n\n#part c\nA=235;N=143;Z=A-N;\nprint\"The Uranium can be reperesented as U-- \",Z,A,N;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The following method of representing atoms is followed throughout the chapter\n\t\t x,y,z\n where x=atomic number y=mass number z= Neutron Number S=symbol of the atom\n\n\nThe helium can be reperesented as He-- 2 4 2\nThe Tin can be reperesented as Sn-- 50.0 116.0 66.0\nThe Uranium can be reperesented as U-- 92 235 143\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.2 Page 377"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nr0=1.2; #standard value.\nA=12.0; \nr= r0*A**(1.0/3);\n\n#result\nprint\"The value of mean radius for C in fm is\",round(r,3);\n\n#part2\nA=70.0; #given value\nr= r0*A**(1.0/3);\n\n#result\nprint\"The value of mean radius for C in fm is\",round(r,3);\n\n#part3\nA=209;\nr= r0*A**(1.0/3);\n\n#result\nprint\"The value of mean radius for C in fm is\",round(r,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of mean radius for C in fm is 2.747\nThe value of mean radius for C in fm is 4.946\nThe value of mean radius for C in fm is 7.121\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.3 Page 379"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\nm=1.67*10**-27; r0=1.2*10**-15; v=4*pi*(r0**3)/3.0 #standard values of mass radius and volume\n\n#calculation\np=m/v; #denisty \n\n#result\nprint\"Density of typical nucleus in kg/m3 is %.1e\" %p;\n\n#part 2\nr0=0.01;v=4*pi*(r0**3)/3.0;p=2.0*10**17; #/hypothetical values\nm1=p*v; \n\n#result\nprint\"The mass of the hypothetical nucleus would be in Kg %.1e\" %m1;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Density of typical nucleus in kg/m3 is 2.3e+17\nThe mass of the hypothetical nucleus would be in Kg 8.4e+11\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.4 Page 380"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nN=30.0;Z=26.0;A=56.0;Mn=1.008665;Mp=1.007825;m=55.934939;c2=931.5; #given values and constants for case-1\nB=((N*Mn)+(Z*Mp)-(m))*c2; #binding energy(per nucleon)\n\n#result\nprint\"Binding nergy per nucleon for 26,56Fe30 in MeV is\",round(B/A,3);\n\n#part 2\nN=146.0;Z=92.0;A=238.0;Mn=1.008665;Mp=1.007825;m=238.050785;c2=931.5; #given values and constants for case-2\nB=((N*Mn)+(Z*Mp)-(m))*c2; #binding energy(per nucleon)\n\n#result\nprint\"Binding nergy per nucleon for 26,56Fe30 in MeV is\",round(B/A,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Binding nergy per nucleon for 26,56Fe30 in MeV is 8.79\nBinding nergy per nucleon for 26,56Fe30 in MeV is 7.57\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.5 Page 382"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nt12=2.7*24*3600; #converting days into seconds\nw=0.693/t12; #lambeda\n\n#result\nprint\"The decay constant in sec is %.2e\" %w; \n\n#partb\nprint\"The decay constant is equal to probability of decay in one second hence %.2e\" %w;\n\n#partc\nm=10**-6;Na=6.023*10**23; M=198.0; #given values and constants\nN=m*Na/M; #number of atoms in the sample \nAo=w*N; #activity\n\n#result\nprint\"The activity was found out to be in Ci is %.2e\" %Ao; \n\n#partd\nt=7*24*3600.0; #given time\nA=Ao*exp(-w*t); #activity\n\n#result\nprint\"The activity after one week was found out to be in decays/sec %.1e\" %A;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The decay constant in sec is 2.97e-06\nThe decay constant is equal to probability of decay in one second hence 2.97e-06\nThe activity was found out to be in Ci is 9.04e+09\nThe activity after one week was found out to be in decays/sec 1.5e+09\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.6 Page 384"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nt1=4.55*10**9;t2=7.04*10**8; #given values of time at 2 different instants\n\n#calculation\nage=t1/t2;\nr=2**age;\n\n#result\nprint \"The original rock hence contained\",round(r,3),\"Na atoms of 235U where Na is the Avagadro''s Number=6.023*10^23\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The original rock hence contained 88.222 Na atoms of 235U where Na is the Avagadro''s Number=6.023*10^23\n"
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.7 Page 385"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm236Ra=226.025403;\nm222Rn=222.017571;\nm4He=4.002603;c2=931.5; #mass of various elements and c2=c^2\n\n#calculation\nQ=(m236Ra-m222Rn-m4He)*c2;#Q of the reaction\nA=226.0 \nK=((A-4)/A)*Q; #kinetic energy\n\n#result\nprint\"The kinetic energy of the alpha particle in Mev is\",round(K,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The kinetic energy of the alpha particle in Mev is 4.785\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.8 Page 387"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm226Ra=226.025403; #mass of various elements\nm212Pb=211.991871;\nm14c=14.003242;\nc2=931.5; #value of c^2\n\n#calculation\nQ=(m226Ra-m212Pb-m14c)*c2; #Q of the reaction\n\n#result\nprint\"The value of Q for 14c emission in MeV is\",round(Q,3);\nprint\"The probability of 14c emission is 10^-9 times that of an alpha particle since the energy barrier for 14c emission is nearly 3 times higher and thicker.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of Q for 14c emission in MeV is 28.215\nThe probability of 14c emission is 10^-9 times that of an alpha particle since the energy barrier for 14c emission is nearly 3 times higher and thicker.\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.9 Page 389"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm23Ne=22.994465; #mass of various elements\nm23Na=22.989768;\nc2=931.5; #value of c^2\n\n#calculation\nQ=(m23Ne-m23Na)*c2; #Q of the reaction\n\n#result\nprint \"Hence the maximum kinetic energy of the emitted electrons in MeV is\",round(Q,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the maximum kinetic energy of the emitted electrons in MeV is 4.375\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.10 Page 390"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm40K=39.963999; #mass of various particles\nm40Ca=39.962591;\nc2=931.5; #value of c^2 in MeV\n\n#calculation\nQb1=(m40K-m40Ca)*c2; #Q value of the reaction\n\n#result\nprint\"The Q value for -VE beta emission in Mev in\",round(Qb1,3);\n\n#partb\nm40K=39.963999; #mass of various particles\nm40Ar=39.962384;\nme=0.000549;\nQb2=(m40K-m40Ar-2*me)*c2; #Q value of the reaction\n\n#result\nprint\"The Q value for +VE beta emission in Mev in\",round(Qb2,3);\n\n#partc\nm40K=39.963999;\nm40Ar=39.962384;\n\n#calculation\nQec=(m40K-m40Ar)*c2;\n\n#result\nprint\"The Q value for +VE beta emission in Mev in\",round(Qec,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Q value for -VE beta emission in Mev in 1.312\nThe Q value for +VE beta emission in Mev in 0.482\nThe Q value for +VE beta emission in Mev in 1.504\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.11 Page 392"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nMg=12.000000; #mass of the carbon atom in amu\nc2=931.5; \nEg=4.43; #given energy of gamma ray \nMex=Mg+(Eg/c2); #mass in excited state\nMe=0.000549; #mass of an electron\n\n#calculation\nQ=(12.018613-Mex-2*Me)*c2; #Q of the particle\n\n#result\nprint\"The maximum value of kinetic energy is in MeV\",round(Q,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The maximum value of kinetic energy is in MeV 11.885\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.12 Page 393"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm238U=238.050786; #mass of various quantities\nm206Pb=205.974455;\nm4He=4.002603;\nc2=931.5; #constants\nNa=6.023*10**23; #avagadro's number\n\n#calculation\nQ=(m238U-m206Pb-8*m4He)*c2; \nt12=(4.5)*10**9*(3.16*10**7); #half life years to seconds conversion\nw=0.693/t12; # lambeda\nNoD=(Na/238)*w; #number of decays\nE=NoD*Q*(1.6*10**-19)*10**6; #rate of liberation of energy,converting MeV to eV\n\n#result\nprint\"Rate of energy liberation in W is %.2e\" %E;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Rate of energy liberation in W is 1.02e-07\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.13 Page 395"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\nR=0.5;t12=4.5*10**9; #value of radius and half-life \nt1=(t12/0.693)*log(1+(1/R)); #age of rock 1\nR=1.0;\nt2=(t12/0.693)*log(1+(1/R)); #age of rock-2\nR=2.0\nt3=(t12/0.693)*log(1+(1/R)); #age of rock 3\n\n#result\nprint\"The ages of rock samples in years respectively are %.1e\"%t1,\" %.1e\" %t2,\" %.1e\" %t3;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The ages of rock samples in years respectively are 7.1e+09 4.5e+09 2.6e+09\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12.14 Page 397"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\nP=2.0*10**14; V=2.0*10**-14; R=8.314; T=295.0;Na=6.023*10**23; #varoius constants and given values\n\n#calculation\nn=P*V/(R*T); #ideal gas law\nN=Na*n;f=10**-12 #avagadaro's number and fracction of carbon molecules\nt12=5730*3.16*(10**7); #half life\nA=(0.693/t12)*N*f; #activity\nD1w=A*7*24*60*60; #decays per second\n\n#result\nprint\"the no. of decays per second is %.2e\" %A\nprint\"The no of decays pers week is \",round(D1w);\n \n \n#partb\nc1=1420.0; #concentration at instant 1\nc2=D1w; #concentration at instant 2\nt12y=5730; #half life\nt=t12y*log(c2/c1)/0.693; #age of the sample\n\n#result\nprint\"Age of the sample in years is\",round(t,3);\nprint\"the answer in the book is wrong\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "the no. of decays per second is 3.76e-03\nThe no of decays pers week is 2274.0\nAge of the sample in years is 3892.57\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter13.ipynb b/Modern_Physics/Chapter13.ipynb
index e35d94ac..5e2693aa 100755
--- a/Modern_Physics/Chapter13.ipynb
+++ b/Modern_Physics/Chapter13.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:8b9d9c8500ecb20deeeb6f065d1408d228b300a0b95f2800ee645e0184760d45"
+ "name": "Chapter13",
+ "signature": "sha256:3612dc1ad0c2617d4c1e1da21ea7791334391562bfe93ddc9d0f98037d4fe15d"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 13: Nuclear Structure "
+ "Chapter 13:Nuclear Reaction and Application"
]
},
{
@@ -21,111 +21,27 @@
"level": 2,
"metadata": {},
"source": [
- "Example 13.1, page no. 466"
+ "Example 13.1, Page 417"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "v=1*1.0*10**-6.0*10**2; p=7.9; m=p*v;Na=6.023*10**23 #given values and various constants in suitable units\n",
+ "M=56.0;N=m*Na/M; #number of atoms\n",
+ "i=3.0*10**-6;\n",
+ "q=1.6*10**-19;\n",
"\n",
+ "#calculation\n",
+ "Io=i/q; #intensity\n",
+ "s=0.6*10**-24;S=1; #given values in suitable units\n",
+ "R=N*s*Io/S; #rate of neutrons\n",
"\n",
- "#Variable Declaration\n",
- "\n",
- "NA = 6.02 * 10 ** 23 # Avogadro's number\n",
- "m = 0.012 # one mole of carbon (kg)\n",
- "mC = 12 # mass of one atom(1u)\n",
- " \n",
- "#Calculation\n",
- "\n",
- "ma = m/NA\n",
- "u = ma / mC\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The atomic mass unit is \",round(u/10**-27,2),\"X 10^-27 kg.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The atomic mass unit is 1.66 X 10^-27 kg.\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 13.2, page no. 468"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "m = 1.67 * 10 ** -27 # mass of neutron(kg)\n",
- "r0 = 1.2 * 10 ** -15 # radius os the nucleus(m)\n",
- "\n",
- "#Calculation \n",
- "\n",
- "pn = 3* m /(4 * math.pi * r0**3)\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The nuclear density is\",round(pn/10**17,1),\"X 10^17 kg/m^3.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The nuclear density is 2.3 X 10^17 kg/m^3.\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 13.3, page no. 473"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- " \n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "MH = 1.007825 #mass of hydrogen (u)\n",
- "mn = 1.008665 #mass of neutron (u)\n",
- "M2 = 2.014102 #mass of deuteron (u)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "Eb = (MH + mn - M2) * 931.494\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The binding energy of deuteron is\",round(Eb,3),\"MeV.\""
+ "#result\n",
+ "print\"The rate of neutrons emitted from the target in particles per second is %.1e\" %round(R,3);\n",
+ "print\"Slight difference in answer due to approximation error\""
],
"language": "python",
"metadata": {},
@@ -134,41 +50,38 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The binding energy of deuteron is 2.224 MeV.\n"
+ "The rate of neutrons emitted from the target in particles per second is 9.6e+07\n",
+ "slight difference due to approximation error\n"
]
}
],
- "prompt_number": 5
+ "prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 13.4, page no. 482"
+ "Example 13.2, Page 419"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "#Variable declaration\n",
- "\n",
- "Thalf = 5730 #Half-life (yr)\n",
- "N = 1000 #No of carbon nuclei\n",
- "T = 22920 #(yr)\n",
+ "#initiation of variable\n",
+ "A=197.0; m=30*10**-3;phi=3.0*10**12; #given values and various constants taken in suitable units\n",
+ "Ar=99.0*10**-24; Na=6.023*10**23\n",
"\n",
"#calculation\n",
- "n=N\n",
- "t = 0\n",
- "while(t!=T):\n",
- " n = n/2\n",
- " t = t + Thalf\n",
+ "R=(phi*Na*Ar*m/A); #rate or production of gold\n",
+ "t=2.7*24*60 # time of decay\n",
+ "Act=R*(0.693/t); #activity /sec\n",
+ "ActCi=Act/(3.7*10**4); # in terms of curie(Ci)\n",
"\n",
"#result\n",
- "\n",
- "print \"The number of Carbon nuclei left after 22,920 yr is\",n"
+ "print\"The activity is found out to be %.1e\" %round(Act,3),\"/sec i.e \" ,round(ActCi,3),\"muCi\"\n",
+ "print\"Slight difference in answer due to approximation error\""
],
"language": "python",
"metadata": {},
@@ -177,7 +90,8 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The number of Carbon nuclei left after 22,920 yr is 62\n"
+ "The activity is found out to be 4.9e+06 /sec i.e 131.229 muCi\n",
+ "slight difference due to approximation error\n"
]
}
],
@@ -188,162 +102,37 @@
"level": 2,
"metadata": {},
"source": [
- "Example 13.5, page no. 483"
+ "Example 13.3, Page 423"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "v=1.5*1.5*2.5*(10**-6)*10**2; #volume in cm3\n",
+ "p=8.9; #density in g/cm3\n",
+ "m=p*v;Na=6.023*10**23 #mass and Avagadro's number\n",
+ "M=58.9; #Given values\n",
"\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "Thalf = 1.6 * 10 ** 3 #Half-life (yr)\n",
- "s = 3.16 * 10 ** 7 #number of seconds in a year (s/yr)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = 0.693 / (Thalf * s)\n",
+ "#calculation\n",
+ "N=m*Na/M;\n",
+ "i=12*10**-6; #thickness of beam\n",
+ "q=1.6*10**-19;\n",
+ "Io=i/(2*q); #intensity\n",
+ "s=0.64*10**-24; #Given values\n",
+ "S=1.5*1.5;\n",
+ "R=N*s*Io/S; #rate of production of 61Cu\n",
"\n",
"#result\n",
+ "print \"The rate of neutrons emitted from the target in particles/second is %.1e\" %round(R,3);\n",
"\n",
- "print \"(a) The decay constant is\",round(lamda/10**-11,1),\"X 10^-11 s^-1.\"\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "N0 = 3.0 * 10 ** 16 #number of radioactive nuclei at t=0\n",
- "Ci = 3.7 * 10 **10 \n",
- "\n",
- "#Calculation\n",
- "\n",
- "R0 = lamda * N0\n",
- "\n",
- "#results\n",
- "\n",
- "print \"(b) Its activity is\",round(R0/Ci/10**-6,1),\"X 10^-6 Ci.\"\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "T = 2.0 * 10 ** 3 #(yr)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "R = R0 * math.exp(-lamda*(T * s))\n",
- "\n",
- "#results\n",
- "\n",
- "print \"(c) The decay rate after 2.0 X 10^3 yr is\",round(R/10**5,1),\"X 10^5 decays/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) The decay constant is 1.4 X 10^-11 s^-1.\n",
- "(b) Its activity is 11.1 X 10^-6 Ci.\n",
- "(c) The decay rate after 2.0 X 10^3 yr is 1.7 X 10^5 decays/s\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 13.6, page no. 483"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "A = 6.02 * 10 ** 23 #avogadro's number\n",
- "m = 3.50 * 10 ** -6 # mass of carbon(g)\n",
- "ma = 11.0 #atomic mass of carbon (g)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "N = m * A / ma\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"(a) The number of nuclei samples at t=0 is\",round(N/10**17,2),\"X 10^17 nuclei.\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "Thalf = 20.4 * 60 #half-life (s)\n",
- "T = 8.00 #(h)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = 0.693 / Thalf\n",
- "R0 = lamda * N\n",
- "R = R0 * math.exp(-lamda* T*60*60)\n",
+ "#part b\n",
+ "act=R*(1-(exp((0.693)*(-2/3.41)))); #activity\n",
"\n",
"#result\n",
- "\n",
- "print \"(b) The activity initially is\",round(R0/10**14,2),\"X 10^14 decay/s and after t=8.0h is\",round(R/10**6,2),\"X 10^6 decay/s\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) The number of nuclei samples at t=0 is 1.92 X 10^17 nuclei.\n",
- "(b) The activity initially is 1.08 X 10^14 decay/s and after t=8.0h is 8.99 X 10^6 decay/s\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 13.7, page no. 484"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "Thalf = 8.04 # half-life (days)\n",
- "R0 = 5.0 #Activity at t=0 (mCi)\n",
- "R = 4.2 #Activity (mCi)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "t = - (Thalf/0.693)* math.log(R/R0)\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The time elapsed is\",round(t,2),\"days.\""
+ "print\"The activity after 2.0h in /sec is %.1e\" %round(act,3),\"=4.9mCi\";\n"
],
"language": "python",
"metadata": {},
@@ -352,83 +141,41 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The time elapsed is 2.02 days.\n"
+ "The rate of neutrons emitted from the target in particles/second is 5.5e+08\n",
+ "The activity after 2.0h in /sec is 1.8e+08 =4.9mCi\n"
]
}
],
- "prompt_number": 16
+ "prompt_number": 6
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 13.8, page no. 486"
+ "Example 13.4, Page 425"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "Mx = 226.025406 #atomic mass of 226Ra(u)\n",
- "My = 222.017574 #atomic mass of 222Rn(u)\n",
- "Ma = 4.002603 #atomic mass of 4He (u)\n",
+ "#initiation of variable\n",
+ "m2H=2.014102; #mass of various particles\n",
+ "mn=1.008665;m63Cu=62.929599;\n",
+ "m64Zn=63.929145;c2=931.5; #c^2=931.5 MeV\n",
+ "Q=(m2H+m63Cu-mn-m64Zn)*c2; #Q of the reaction\n",
"\n",
- "#Calculation\n",
- "\n",
- "Q = (Mx - My - Ma) * 931.494\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"Q value is\",round(Q,2),\"MeV.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Q value is 4.87 MeV.\n"
- ]
- }
- ],
- "prompt_number": 18
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 13.9, page no. 487"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
- "#Variable declaration\n",
- "\n",
- "r0 = 7.25 * 10**-5 #Bohr radius for alpha particle(A')\n",
- "Z = 86 #daughter nucleus radon's atomic number\n",
- "A = 222 #radon's mass number\n",
- "ke2 = 14.40 #boltzmann constant X (charge of electron)^2 (eV.A')\n",
- "E = 5 #disintegration energy (MeV)\n",
+ "#result\n",
+ "print\"The value of Q is in MeV\",round(Q,3);\n",
"\n",
- "#Calculation\n",
"\n",
- "E0 = ke2 / (2.0*r0) * 10**-6 #Energy unit analogous to Rydberg (MeV)\n",
- "R = (1.2 * 10**-5) *(A)**(1.0/3.0) #radius of Radon nucleus(A')\n",
- "Te = math.exp(round(-4*math.pi*Z*math.sqrt(E0/E)+8*math.sqrt(Z*R/r0)))\n",
+ "#part b\n",
+ "Kx=12.00;Ky=16.85;\n",
+ "Ky=Q+Kx-Ky #kinetic energy of 64Zn\n",
"\n",
"#result\n",
- "print \"The probability of escape of alpha particle is\",round(Te/10**-34,2),\"X 10^-34\""
+ "print\"The value of Ky was found out to be in MeV\",round(Ky,3);"
],
"language": "python",
"metadata": {},
@@ -437,49 +184,40 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The probability of escape of alpha particle is 1.33 X 10^-34\n"
+ "The value of Q is in MeV 5.487\n",
+ "The value of Ky was found out to be in MeV 0.637\n"
]
}
],
- "prompt_number": 21
+ "prompt_number": 5
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 13.11, page no. 490"
+ "Example 13.5, Page 425"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "mp=1.007825;m3H=3.016049; #mass of the particle\n",
+ "m2H=2.014102;c2=931.5; #constant\n",
+ "Q=(mp+m3H-(2*m2H))*c2; #Q of the reaction\n",
"\n",
+ "#result\n",
+ "print\"The value of q was found out to be in MeV\",round(Q,3);\n",
"\n",
- "import math\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "Thalf = 5730 # half-life (yr)\n",
- "s = 3.16 * 10 ** 7 # (s/yr)\n",
- "A = 6.02 * 10 ** 23 # Avogadro's number\n",
- "mw = 12.0 # molar weight of carbon(g)\n",
- "m = 25.0 # mass of carbon(g) \n",
- "r = 1.3 * 10 ** -12 # ratio of 14C to 12C\n",
- "R = 250 # activity observed (decays/min)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = 0.693 /(Thalf * s)\n",
- "N1 = A * m/mw\n",
- "N0 = r * N1\n",
- "R0 = N0 * lamda\n",
- "t = -(1/lamda)*math.log(R/(R0*60))\n",
- " \n",
- "#Result\n",
+ "#partb\n",
+ "Kth1= -Q*(1+(mp/m3H)); #threshold energy of kinetic energy\n",
+ "Kth2=-Q*(1+(m3H/mp)); #threshold kinetic energy in case2\n",
"\n",
- "print \"The tree has been dead for\",round(round(t/10**11)*10**11/s/10**3,1),\"X 10^3 yr.\""
+ "#result\n",
+ "print\"The threshold kinetic energy in case-1 in MeV\",round(Kth1,3);\n",
+ "print\"The threshold kinetic energy in case-2 in MeV\",round(Kth2,3);"
],
"language": "python",
"metadata": {},
@@ -488,11 +226,13 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The tree has been dead for 3.2 X 10^3 yr.\n"
+ "The value of q was found out to be in MeV -4.033\n",
+ "The threshold kinetic energy in case-1 in MeV 5.381\n",
+ "The threshold kinetic energy in case-2 in MeV 16.104\n"
]
}
],
- "prompt_number": 25
+ "prompt_number": 6
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter13_1.ipynb b/Modern_Physics/Chapter13_1.ipynb
new file mode 100755
index 00000000..44cdc2a7
--- /dev/null
+++ b/Modern_Physics/Chapter13_1.ipynb
@@ -0,0 +1,125 @@
+{
+ "metadata": {
+ "name": "MP-13"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Nuclear Reaction and Application"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.1 Page 417"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nv=1*1.0*10**-6.0*10**2; p=7.9; m=p*v;Na=6.023*10**23 #given values and various constants in suitable units\nM=56.0;N=m*Na/M; #number of atoms\ni=3.0*10**-6;\nq=1.6*10**-19;\n\n#calculation\nIo=i/q; #intensity\ns=0.6*10**-24;S=1; #given values in suitable units\nR=N*s*Io/S; #rate of neutrons\n\n#result\nprint\"The rate of neutrons emitted from the target in particles per second is %.1e\" %round(R,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The rate of neutrons emitted from the target in particles per second is 9.6e+07\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.2 Page 419"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nA=197.0; m=30*10**-3;phi=3.0*10**12; #given values and various constants taken in suitable units\nAr=99.0*10**-24; Na=6.023*10**23\n\n#calculation\nR=(phi*Na*Ar*m/A); #rate or production of gold\nt=2.7*24*60 # time of decay\nAct=R*(0.693/t); #activity /sec\nActCi=Act/(3.7*10**4); # in terms of curie(Ci)\n\n#result\nprint\"The activity is found out to be %.1e\" %round(Act,3),\"/sec i.e \" ,ActCi,\"Ci\";\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The activity is found out to be 4.9e+06 /sec i.e 131.228932295 Ci\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.3 Page 423"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nv=1.5*1.5*2.5*(10**-6)*10**2; #volume in cm3\np=8.9; #density in g/cm3\nm=p*v;Na=6.023*10**23 #mass and Avagadro's number\nM=58.9; #Given values\n\n#calculation\nN=m*Na/M;\ni=12*10**-6; #thickness of beam\nq=1.6*10**-19;\nIo=i/(2*q); #intensity\ns=0.64*10**-24; #Given values\nS=1.5*1.5;\nR=N*s*Io/S; #rate of production of 61Cu\n\n#result\nprint \"The rate of neutrons emitted from the target in particles/second is %.1e\" %round(R,3);\n\n#part b\nact=R*(1-(exp((0.693)*(-2/3.41)))); #activity\n\n#result\nprint\"The activity after 2.0h in /sec is %.1e\" %round(act,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The rate of neutrons emitted from the target in particles/second is 546058064.516\nThe activity after 2.0h in /sec is 182378303.69\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.4 Page 425"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm2H=2.014102; #mass of various particles\nmn=1.008665;m63Cu=62.929599;\nm64Zn=63.929145;c2=931.5; #c^2=931.5 MeV\nQ=(m2H+m63Cu-mn-m64Zn)*c2; #Q of the reaction\n\n#result\nprint\"The value of Q is in MeV\",round(Q,3);\n\n\n#part b\nKx=12.00;Ky=16.85;\nKy=Q+Kx-Ky #kinetic energy of 64Zn\n\n#result\nprint\"The value of Ky was found out to be in MeV\",round(Ky,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of Q is in MeV 5.487\nThe value of Ky was found out to be in MeV 0.637\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.5 Page 425"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmp=1.007825;m3H=3.016049; #mass of the particle\nm2H=2.014102;c2=931.5; #constant\nQ=(mp+m3H-(2*m2H))*c2; #Q of thereaction\n\n#result\nprint\"The value of q was found out to be in MeV\",round(Q,3);\n\n#partb\nKth1= -Q*(1+(mp/m3H)); #threshold energy of kinetic energy\nKth2=-Q*(1+(m3H/mp)); #threshold kinetic energy in case2\n\n#result\nprint\"The threshold kinetic energy in case-1 in MeV\",round(Kth1,3);\nprint\"The threshold kinetic energy in case-2 in MeV\",round(Kth2,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of q was found out to be in MeV -4.033\nThe threshold kinetic energy in case-1 in MeV 5.381\nThe threshold kinetic energy in case-2 in MeV 16.104\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter13_2.ipynb b/Modern_Physics/Chapter13_2.ipynb
new file mode 100755
index 00000000..44cdc2a7
--- /dev/null
+++ b/Modern_Physics/Chapter13_2.ipynb
@@ -0,0 +1,125 @@
+{
+ "metadata": {
+ "name": "MP-13"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Nuclear Reaction and Application"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.1 Page 417"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nv=1*1.0*10**-6.0*10**2; p=7.9; m=p*v;Na=6.023*10**23 #given values and various constants in suitable units\nM=56.0;N=m*Na/M; #number of atoms\ni=3.0*10**-6;\nq=1.6*10**-19;\n\n#calculation\nIo=i/q; #intensity\ns=0.6*10**-24;S=1; #given values in suitable units\nR=N*s*Io/S; #rate of neutrons\n\n#result\nprint\"The rate of neutrons emitted from the target in particles per second is %.1e\" %round(R,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The rate of neutrons emitted from the target in particles per second is 9.6e+07\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.2 Page 419"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nA=197.0; m=30*10**-3;phi=3.0*10**12; #given values and various constants taken in suitable units\nAr=99.0*10**-24; Na=6.023*10**23\n\n#calculation\nR=(phi*Na*Ar*m/A); #rate or production of gold\nt=2.7*24*60 # time of decay\nAct=R*(0.693/t); #activity /sec\nActCi=Act/(3.7*10**4); # in terms of curie(Ci)\n\n#result\nprint\"The activity is found out to be %.1e\" %round(Act,3),\"/sec i.e \" ,ActCi,\"Ci\";\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The activity is found out to be 4.9e+06 /sec i.e 131.228932295 Ci\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.3 Page 423"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nv=1.5*1.5*2.5*(10**-6)*10**2; #volume in cm3\np=8.9; #density in g/cm3\nm=p*v;Na=6.023*10**23 #mass and Avagadro's number\nM=58.9; #Given values\n\n#calculation\nN=m*Na/M;\ni=12*10**-6; #thickness of beam\nq=1.6*10**-19;\nIo=i/(2*q); #intensity\ns=0.64*10**-24; #Given values\nS=1.5*1.5;\nR=N*s*Io/S; #rate of production of 61Cu\n\n#result\nprint \"The rate of neutrons emitted from the target in particles/second is %.1e\" %round(R,3);\n\n#part b\nact=R*(1-(exp((0.693)*(-2/3.41)))); #activity\n\n#result\nprint\"The activity after 2.0h in /sec is %.1e\" %round(act,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The rate of neutrons emitted from the target in particles/second is 546058064.516\nThe activity after 2.0h in /sec is 182378303.69\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.4 Page 425"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nm2H=2.014102; #mass of various particles\nmn=1.008665;m63Cu=62.929599;\nm64Zn=63.929145;c2=931.5; #c^2=931.5 MeV\nQ=(m2H+m63Cu-mn-m64Zn)*c2; #Q of the reaction\n\n#result\nprint\"The value of Q is in MeV\",round(Q,3);\n\n\n#part b\nKx=12.00;Ky=16.85;\nKy=Q+Kx-Ky #kinetic energy of 64Zn\n\n#result\nprint\"The value of Ky was found out to be in MeV\",round(Ky,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of Q is in MeV 5.487\nThe value of Ky was found out to be in MeV 0.637\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13.5 Page 425"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmp=1.007825;m3H=3.016049; #mass of the particle\nm2H=2.014102;c2=931.5; #constant\nQ=(mp+m3H-(2*m2H))*c2; #Q of thereaction\n\n#result\nprint\"The value of q was found out to be in MeV\",round(Q,3);\n\n#partb\nKth1= -Q*(1+(mp/m3H)); #threshold energy of kinetic energy\nKth2=-Q*(1+(m3H/mp)); #threshold kinetic energy in case2\n\n#result\nprint\"The threshold kinetic energy in case-1 in MeV\",round(Kth1,3);\nprint\"The threshold kinetic energy in case-2 in MeV\",round(Kth2,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of q was found out to be in MeV -4.033\nThe threshold kinetic energy in case-1 in MeV 5.381\nThe threshold kinetic energy in case-2 in MeV 16.104\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter14.ipynb b/Modern_Physics/Chapter14.ipynb
index 4fff498c..a7beb792 100755
--- a/Modern_Physics/Chapter14.ipynb
+++ b/Modern_Physics/Chapter14.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:bb0d2851c786dd28ae3ad8cbd1e6a7fc5db7cc1384cc2031f2bb6380ed7515e2"
+ "name": "Chapter14"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 14: Nuclear Physics Apllications"
+ "Chapter 14:Elementary Particles"
]
},
{
@@ -21,43 +20,23 @@
"level": 2,
"metadata": {},
"source": [
- "Example 14.1, page no. 505"
+ "Example 14.2, Page 451"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "mvo=1116.0;mp=938.0;mpi=140.0; #mass of various particles\n",
"\n",
+ "#calculation\n",
+ "Q=(mvo-mp-mpi); #Q value of energy\n",
+ "Pp=100.0;Ppi=100; #momentum of various particles\n",
+ "Kp=5.0;Kpi=38-Kp; #kinetic energy of particles\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "MLi = 7.016003 #atomic mass of Lithium\n",
- "MH = 1.007825 #atomic mass of Hydrogen\n",
- "MHe = 4.002603 #atomic mass of Helium\n",
- "c2 = 931.50 #Square of speed of light (MeV/u)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "Q = (MLi + MH - 2*MHe) * c2\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"(a) The Q value is\",round(Q,1),\"MeV.\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "Kincident = 0.6 #kinetic energy of incident particle (MeV)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "Kproducts = Q + Kincident\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"(b) The kinetic energy of the products is\",round(Kproducts,1),\"MeV.\""
+ "#result\n",
+ "print \"The kinetic energy of the particles Kp and Kpi are\", Kp,\" MeV and\",Kpi,\" MeV respectively\""
],
"language": "python",
"metadata": {},
@@ -66,46 +45,33 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) The Q value is 17.3 MeV.\n",
- "(b) The kinetic energy of the products is 17.9 MeV.\n"
+ " The kinetic energy of the particles Kp and Kpi are 5.0 MeV and 33.0 MeV respectively\n"
]
}
],
- "prompt_number": 6
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 14.2, page no. 509"
+ "Example 14.3, Page 453"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "Q=105.2 # The Q value for the given decay\n",
+ "Muc2=105.80344 #mass energy\n",
"\n",
+ "#calculation\n",
+ "Ke= Q**2/(2*Muc2); #Ke=Ee-mec2;\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "A = 27 #Atomic number of Aluminum\n",
- "d = 2.7 #density of aluminum\n",
- "Av = 6.02 * 10 ** 23 #Avogadro number nuclei/mol\n",
- "sigma = 2.0 * 10 **-31 #capture cross section (m^2)\n",
- "x = 0.3 * 10 ** -3 #thickness of the foil(m)\n",
- "R0 = 5.0 * 10 ** 12 #rate of incident particles(neutrons/cm^2.s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "n = Av * d / A * 10**6\n",
- "R = R0 * sigma * x * n\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The number of neutrons captured by 1.0cm^2/s is \",round(R/10**7,1),\"X 10^7 neutrons/cm^2.s\"\n",
- "\n",
- "\n"
+ "#result\n",
+ "print \"The maximum kinetic energy in MeV is\",round(Ke,3);\n"
],
"language": "python",
"metadata": {},
@@ -114,40 +80,39 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The number of neutrons captured by 1.0cm^2/s is 1.8 X 10^7 neutrons/cm^2.s\n"
+ "The maximum kinetic energy in MeV is 52.3\n"
]
}
],
- "prompt_number": 9
+ "prompt_number": 3
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 14.3, page no. 512"
+ "Example 14.4, Page 455"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "#Variable declaration\n",
- "\n",
- "A = 235 #atomic number of uranium\n",
- "m = 10**3 #mass of 235U\n",
- "Av = 6.02*10**23#avogadro number (nuclei/mol)\n",
- "Q = 208 #disintegration energy per event (MeV)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "N = Av * m / A\n",
- "E = N * Q\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The disintegration energy is\",round(E/10**26,2),\"X 10^26 MeV.\""
+ "#initiation of variable\n",
+ "from __future__ import division\n",
+ "from sympy.solvers import solve\n",
+ "from sympy import Symbol\n",
+ "from sympy import *\n",
+ "from math import sqrt\n",
+ "mkc2=494.0; mpic2=135.0;mec2=0.5;# mass of various particles\n",
+ "\n",
+ "#calculation\n",
+ "Q1=mkc2-mpic2-mec2; #Q of reaction\n",
+ "# the neutrino has negligible energy\n",
+ "x = symbols('x')\n",
+ "k=solve((x**2+135.0**2)**(0.5)+x-494,x);# assigning the Q to sum of energies and simplifying\n",
+ "\n",
+ "print \"The value of maximum kinetic enrgy for pi-meson and positron are\",266,\"MeV &\",k,\" MeV\";"
],
"language": "python",
"metadata": {},
@@ -156,83 +121,34 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The disintegration energy is 5.33 X 10^26 MeV.\n"
+ " The value of maximum kinetic enrgy for pi-meson and positron are 266 MeV & [228.553643724696] MeV\n"
]
}
],
- "prompt_number": 12
+ "prompt_number": 17
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 14.4, page no. 513"
+ "Example 14.5, Page 457"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "mpi_=140;mp=938;mKo=498;mLo=1116; #mass of various particles\n",
"\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "A = 235 #atomic mass of Uranium\n",
- "Av = 6.02 * 10**23 # Avagadro's number\n",
- "Q = 208 # disintegration energy per event (MeV)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "N = Av / A *10**3 #No of nuclei in 1kg of 235U\n",
- "E = N*Q #disintegration energy (MeV)\n",
+ "#calculation\n",
+ "Q1= mpi_+mp-mKo-mLo; #Q value of reaction 1\n",
+ "mK_=494.0;mpio=135.0; \n",
+ "Q2=mK_+mp-mLo-mpio; #Q value of reaction 2\n",
"\n",
"#result\n",
- "\n",
- "print \"The disintegration energy is\",round(E/10**26,2),\" X 10^26 MeV.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The disintegration energy is 5.33 X 10^26 MeV.\n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 14.5, page no. 513"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "#Variable declaration\n",
- "\n",
- "rBa = 6.2 * 10 **-15 #nuclear radius of Ba(m)\n",
- "rKr = 5.4 * 10**-15 #nuclear radius of Kr(m)\n",
- "Z1 = 56 #atomic number of Ba\n",
- "Z2 = 36 #atomic number of Kr\n",
- "k = 1.440 * 10 **-9 #Coulomb constant (eV.nm)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "r = rBa + rKr\n",
- "U = k * Z1 * Z2 /( round(r/10**-15) * 10**-15)\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The potential energy of the two nuclei is\",round(U/10**6),\"MeV.\" "
+ "print\"The Q values of reactions 1 and 2 are\", Q1,\" MeV and\",Q2,\"MeV\";"
],
"language": "python",
"metadata": {},
@@ -241,52 +157,34 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The potential energy of the two nuclei is 242.0 MeV.\n"
+ "The Q values of reactions 1 and 2 are -536 MeV and 181.0 MeV\n"
]
}
],
- "prompt_number": 17
+ "prompt_number": 19
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 14.6, page no. 519"
+ "Example 14.6, Page 459"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "mpic2=135.0; #mass energy of pi particle\n",
"\n",
- "\n",
- "#variable declaration\n",
- "\n",
- "e = 1.6 * 10 ** -19 #electron charge (C)\n",
- "r = 1.0 * 10**-14 #separation (m)\n",
- "k = 8.99 * 10**9 #Coulomb constant(N.m^2/C^2)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "U = k * e**2/ r\n",
+ "#calculation\n",
+ "Q=-mpic2;\n",
+ "mp=938.0;mpi=135.0;\n",
+ "Kth=(-Q)*((4*mp)+mpi)/(2*(mp)); #threshold energy\n",
"\n",
"#result\n",
- "\n",
- "print \"(a)The height of the potential barrier is\",round(U/e/10**6,2),\"MeV.\"\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "kB = 1.38 * 10**-23 #Boltzmann's constant (J/K)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "T = (U/2.0)*(2.0/3.0)/(kB+.07*10**-23)\n",
- "\n",
- "#Result\n",
- "\n",
- "print\"(b)The effective temperature is\",round(T/10**8,1),\"X 10^8 K.\""
+ "print\"The threshold kinetic energy in MeV is\",round(Kth,3);"
],
"language": "python",
"metadata": {},
@@ -295,39 +193,33 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a)The height of the potential barrier is 0.14 MeV.\n",
- "(b)The effective temperature is 5.3 X 10^8 K.\n"
+ "The threshold kinetic energy in MeV is 279.715\n"
]
}
],
- "prompt_number": 22
+ "prompt_number": 20
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 14.7, page no. 530"
+ "Example 14.7, Page 460"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "mpc2=938.0; #rest energy of proton\n",
"\n",
- "import math\n",
- "\n",
- "#variable declaration\n",
- "\n",
- "mu = 55 #mu for x-rays \n",
- "\n",
- "#Calculation\n",
- "\n",
- "x = math.log(2)/mu\n",
- "\n",
- "#Result\n",
+ "#result\n",
+ "Q=mpc2+mpc2-(4*mpc2); #Q value of reaction \n",
+ "Kth=(-Q)*(6*mpc2/(2*mpc2)); # thershold kinetic energy\n",
"\n",
- "print \"The half value thickness for lead is\",round(x/10**-2,2),\"X 10^-2 cm.\""
+ "#result\n",
+ "print \"The threshold kinetic energy in MeV is\",round(Kth,3);"
],
"language": "python",
"metadata": {},
@@ -336,11 +228,11 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The half value thickness for lead is 1.26 X 10^-2 cm.\n"
+ "The threshold kinetic energy in MeV is 5628.0\n"
]
}
],
- "prompt_number": 24
+ "prompt_number": 21
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter14_1.ipynb b/Modern_Physics/Chapter14_1.ipynb
new file mode 100755
index 00000000..84af5d28
--- /dev/null
+++ b/Modern_Physics/Chapter14_1.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-14"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Elementary Particles"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.2 Page 451"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmvo=1116.0;mp=938.0;mpi=140.0; #mass of various particles\n\n#calculation\nQ=(mvo-mp-mpi); #Q value of energy\nPp=100.0;Ppi=100; #momentum of various particles\nKp=5.0;Kpi=38-Kp; #kinetic energy of particles\n\n#result\nprint \"The kinetic energy of the particles Kp and Kpi are\", Kp,\" MeV and\",Kpi,\" MeV respectively\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The kinetic energy of the particles Kp and Kpi are 5.0 MeV and 33.0 MeV respectively\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.3 Page 453"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nQ=105.2 # The Q value for the given decay\nMuc2=105.80344 #mass energy\n\n#calculation\nKe= Q**2/(2*Muc2); #Ke=Ee-mec2;\n\n#result\nprint \"The maximum kinetic energy in MeV is\",round(Ke,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The maximum kinetic energy in MeV is 52.3\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.4 Page 455"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom __future__ import division\nfrom sympy.solvers import solve\nfrom sympy import Symbol\nfrom sympy import *\nfrom math import sqrt\nmkc2=494.0; mpic2=135.0;mec2=0.5;# mass of various particles\n\n#calculation\nQ1=mkc2-mpic2-mec2; #Q of reaction\n# the neutrino has negligible energy\nx = symbols('x')\nk=solve((x**2+135.0**2)**(0.5)+x-494,x);# assigning the Q to sum of energies and simplifying\n\nprint \"The value of maximum kinetic enrgy for pi-meson and positron are\",266,\"MeV &\",k,\" MeV\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The value of maximum kinetic enrgy for pi-meson and positron are 266 MeV & [228.553643724696] MeV\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.5 Page 457"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmpi_=140;mp=938;mKo=498;mLo=1116; #mass of various particles\n\n#calculation\nQ1= mpi_+mp-mKo-mLo; #Q value of reaction 1\nmK_=494.0;mpio=135.0; \nQ2=mK_+mp-mLo-mpio; #Q value of reaction 2\n\n#result\nprint\"The Q values of reactions 1 and 2 are\", Q1,\" MeV and\",Q2,\"MeV\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Q values of reactions 1 and 2 are -536 MeV and 181.0 MeV\n"
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.6 Page 459"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmpic2=135.0; #mass ennergy of pi particle\n\n#calculation\nQ=-mpic2;\nmp=938.0;mpi=135.0;\nKth=(-Q)*((4*mp)+mpi)/(2*(mp)); #threshold energy\n\n#result\nprint\"The threshold kinetic energy in MeV is\",round(Kth,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The threshold kinetic energy in MeV is 279.715\n"
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.7 Page 460"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmpc2=938.0; #rest energy of proton\n\n#result\nQ=mpc2+mpc2-(4*mpc2); #Q value of reaction \nKth=(-Q)*(6*mpc2/(2*mpc2)); # thershold kinetic energy\n\n#result\nprint \"The threshold kinetic energy in MeV is\",round(Kth,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The threshold kinetic energy in MeV is 5628.0\n"
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter14_2.ipynb b/Modern_Physics/Chapter14_2.ipynb
new file mode 100755
index 00000000..84af5d28
--- /dev/null
+++ b/Modern_Physics/Chapter14_2.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-14"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Elementary Particles"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.2 Page 451"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmvo=1116.0;mp=938.0;mpi=140.0; #mass of various particles\n\n#calculation\nQ=(mvo-mp-mpi); #Q value of energy\nPp=100.0;Ppi=100; #momentum of various particles\nKp=5.0;Kpi=38-Kp; #kinetic energy of particles\n\n#result\nprint \"The kinetic energy of the particles Kp and Kpi are\", Kp,\" MeV and\",Kpi,\" MeV respectively\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The kinetic energy of the particles Kp and Kpi are 5.0 MeV and 33.0 MeV respectively\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.3 Page 453"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nQ=105.2 # The Q value for the given decay\nMuc2=105.80344 #mass energy\n\n#calculation\nKe= Q**2/(2*Muc2); #Ke=Ee-mec2;\n\n#result\nprint \"The maximum kinetic energy in MeV is\",round(Ke,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The maximum kinetic energy in MeV is 52.3\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.4 Page 455"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom __future__ import division\nfrom sympy.solvers import solve\nfrom sympy import Symbol\nfrom sympy import *\nfrom math import sqrt\nmkc2=494.0; mpic2=135.0;mec2=0.5;# mass of various particles\n\n#calculation\nQ1=mkc2-mpic2-mec2; #Q of reaction\n# the neutrino has negligible energy\nx = symbols('x')\nk=solve((x**2+135.0**2)**(0.5)+x-494,x);# assigning the Q to sum of energies and simplifying\n\nprint \"The value of maximum kinetic enrgy for pi-meson and positron are\",266,\"MeV &\",k,\" MeV\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The value of maximum kinetic enrgy for pi-meson and positron are 266 MeV & [228.553643724696] MeV\n"
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.5 Page 457"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmpi_=140;mp=938;mKo=498;mLo=1116; #mass of various particles\n\n#calculation\nQ1= mpi_+mp-mKo-mLo; #Q value of reaction 1\nmK_=494.0;mpio=135.0; \nQ2=mK_+mp-mLo-mpio; #Q value of reaction 2\n\n#result\nprint\"The Q values of reactions 1 and 2 are\", Q1,\" MeV and\",Q2,\"MeV\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Q values of reactions 1 and 2 are -536 MeV and 181.0 MeV\n"
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.6 Page 459"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmpic2=135.0; #mass ennergy of pi particle\n\n#calculation\nQ=-mpic2;\nmp=938.0;mpi=135.0;\nKth=(-Q)*((4*mp)+mpi)/(2*(mp)); #threshold energy\n\n#result\nprint\"The threshold kinetic energy in MeV is\",round(Kth,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The threshold kinetic energy in MeV is 279.715\n"
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14.7 Page 460"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmpc2=938.0; #rest energy of proton\n\n#result\nQ=mpc2+mpc2-(4*mpc2); #Q value of reaction \nKth=(-Q)*(6*mpc2/(2*mpc2)); # thershold kinetic energy\n\n#result\nprint \"The threshold kinetic energy in MeV is\",round(Kth,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The threshold kinetic energy in MeV is 5628.0\n"
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter15.ipynb b/Modern_Physics/Chapter15.ipynb
index d83185b4..fc04a916 100755
--- a/Modern_Physics/Chapter15.ipynb
+++ b/Modern_Physics/Chapter15.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:fbb8ae4f61a2f656bdccdaea83dd7c5e0f4029b53a892411eec2330f543018a0"
+ "name": "Chapter15"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 15: Elementary Particles"
+ "Chapter 15:The General Theory of Relativity"
]
},
{
@@ -21,27 +20,76 @@
"level": 2,
"metadata": {},
"source": [
- "Example 15.5, page no. 570"
+ "Example 15.1, Page 491"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "w=121.5; #lambda\n",
+ "G=6.67*10**-11; #Various given values and constants\n",
+ "M= 1.99*10**30; \n",
+ "R= 6.96*10**8;\n",
+ "c=3*10**8;\n",
"\n",
+ "#calculation\n",
+ "k= G*M/(R*c**2); #(delLambda)/(lambda)\n",
+ "delw=k*w; #del(lambda)\n",
"\n",
- "#variable declaration\n",
+ "#result\n",
+ "print \"The change in wavelength due to gravitational shift in pm is\",round(delw*10**3,3);\n",
"\n",
- "mp = 938.3 #mass of proton (MeV/c^2)\n",
- "mpi = 135 #mass of pion (MeV/c^2)\n",
+ "#part3\n",
+ "k=5.5*10**-5;#due to thermal Doppler broadening effect\n",
+ "delw=k*w;\n",
"\n",
- "#Calculation\n",
+ "#result\n",
+ "print \"The change in wavelength due to thermal Doppler broadening effect in pm is\",round(delw*10**3,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in wavelength due to gravitational shift in pm is 0.257\n",
+ "The change in wavelength due to thermal Doppler broadening effect in pm is 6.683\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page 501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "mp=938.280; #mass of various particles\n",
+ "me=0.511;\n",
+ "m2h=1875.628;\n",
"\n",
- "Kth = ((2*mp + mpi)**2 - (2*mp)**2)/(2*mp)\n",
+ "#calculation\n",
+ "mic2=2*mp; #mass energy on L.H.S\n",
+ "mfc2=m2h+me; #mass energy on R.H.S\n",
+ "Q=mic2-mfc2; #Q value of reation\n",
+ "pc=Q;\n",
+ "mc2=1875.628;\n",
+ "K=(pc**2)/(2*mc2); #kinetic threshold energy\n",
+ "Emax=Q-K; #maximum energy \n",
"\n",
"#result\n",
- "\n",
- "print \"The kinetic energy of protons\",round(Kth),\"MeV.\""
+ "print \"The maximum neutrino energy in MeV is\",round(Emax,3);"
],
"language": "python",
"metadata": {},
@@ -50,11 +98,11 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The kinetic energy of protons 280.0 MeV.\n"
+ "The maximum neutrino energy in MeV is 0.421\n"
]
}
],
- "prompt_number": 2
+ "prompt_number": 3
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter15_1.ipynb b/Modern_Physics/Chapter15_1.ipynb
new file mode 100755
index 00000000..90c037a5
--- /dev/null
+++ b/Modern_Physics/Chapter15_1.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "MP-15"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The General Theory of Relativity"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 15.1 Page 491"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nw=121.5; #lambeda\nG=6.67*10**-11; #Various given values and constants\nM= 1.99*10**30; \nR= 6.96*10**8;\nc=3*10**8;\n\n#calculation\nk= G*M/(R*c**2); #(delLambeda)/(lambeda)\ndelw=k*w; #del(lambeda)\n\n#result\nprint \"The change in wavelength due to gravitational shift in pm is\",round(delw*10**3,3);\n\n#part3\nk=5.5*10**-5;#due to thermal Doppler broadening effect\ndelw=k*w;\n\n#result\nprint \"The change in wavelength due to thermal Doppler broadening effect in pm is\",round(delw*10**3,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The change in wavelength due to gravitational shift in pm is 0.257\nThe change in wavelength due to thermal Doppler broadening effect in pm is 6.683\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 15.2 Page 501"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmp=938.280; #mass of various particles\nme=0.511;\nm2h=1875.628;\n\n#calculation\nmic2=2*mp; #mass energy on L.H.S\nmfc2=m2h+me; #mass energy on R.H.S\nQ=mic2-mfc2; #Q value of reation\npc=Q;\nmc2=1875.628;\nK=(pc**2)/(2*mc2); #kinetic threshold energy\nEmax=Q-K; #maximum energy \n\n#result\nprint \"The maximum neutrino energy in MeV is\",round(Emax,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The maximum neutrino energy in MeV is 0.421\n"
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter15_2.ipynb b/Modern_Physics/Chapter15_2.ipynb
new file mode 100755
index 00000000..90c037a5
--- /dev/null
+++ b/Modern_Physics/Chapter15_2.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "MP-15"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The General Theory of Relativity"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 15.1 Page 491"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nw=121.5; #lambeda\nG=6.67*10**-11; #Various given values and constants\nM= 1.99*10**30; \nR= 6.96*10**8;\nc=3*10**8;\n\n#calculation\nk= G*M/(R*c**2); #(delLambeda)/(lambeda)\ndelw=k*w; #del(lambeda)\n\n#result\nprint \"The change in wavelength due to gravitational shift in pm is\",round(delw*10**3,3);\n\n#part3\nk=5.5*10**-5;#due to thermal Doppler broadening effect\ndelw=k*w;\n\n#result\nprint \"The change in wavelength due to thermal Doppler broadening effect in pm is\",round(delw*10**3,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The change in wavelength due to gravitational shift in pm is 0.257\nThe change in wavelength due to thermal Doppler broadening effect in pm is 6.683\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 15.2 Page 501"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmp=938.280; #mass of various particles\nme=0.511;\nm2h=1875.628;\n\n#calculation\nmic2=2*mp; #mass energy on L.H.S\nmfc2=m2h+me; #mass energy on R.H.S\nQ=mic2-mfc2; #Q value of reation\npc=Q;\nmc2=1875.628;\nK=(pc**2)/(2*mc2); #kinetic threshold energy\nEmax=Q-K; #maximum energy \n\n#result\nprint \"The maximum neutrino energy in MeV is\",round(Emax,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The maximum neutrino energy in MeV is 0.421\n"
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter16.ipynb b/Modern_Physics/Chapter16.ipynb
index f8fb36e8..7a4a153b 100755
--- a/Modern_Physics/Chapter16.ipynb
+++ b/Modern_Physics/Chapter16.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:f4f136f0af18cf143b33cec13dfb6a06f3807644fa35b75af1bd5439584b255b"
+ "name": "Chapter16",
+ "signature": "sha256:8da1ca227cbd2fcd5141a76f92c8c3cee05db901d462b1e82e4eb0345baf65a5"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 16: Cosmology"
+ "Chapter 16:Cosmology: Origin and Fate of Universe"
]
},
{
@@ -21,26 +21,67 @@
"level": 2,
"metadata": {},
"source": [
- "Example 16.1, page no. 15"
+ "Example 16.1 Page 529"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import log\n",
+ "N2=0.25;N1=0.75; #various given values\n",
+ "L2=1.0;L1=0.0;\n",
+ "E1_E2=-4.7*(10**-4); #Energy difference\n",
"\n",
- "#Variable declaration\n",
+ "#calculation\n",
+ "a=(N2/N1); b=(((2*L2)+1)/((2*L1)+1));c=E1_E2; #various terms involved in the formula of ratio of population\n",
+ "kT=(c/log(a/b)); #value of k*T\n",
+ "k=0.0000856; #constant\n",
+ "T=kT/k; #temperature of interstellar space\n",
"\n",
- "c = 3.0 * 10 ** 5 #speed of light (km/s)\n",
- "H0 = 20 * 10**-6 #(km/s/lightyear)\n",
+ "#result\n",
+ "print \"The temperature of interstellar space was found out to be in K\",round(T,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of interstellar space was found out to be in K 2.499\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Page 536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "mc2=940.0*10**6; k=8.6*10**-5; #various constants and given values in suitable units\n",
"\n",
- "#Calculation\n",
+ "#calculation\n",
+ "T= mc2/k; #temperature of the photons\n",
"\n",
- "Rmax = c/(4*H0)\n",
+ "#result\n",
+ "print \"The temperature of the photons must be in K %.1e\" %round(T,3);\n",
"\n",
- "#Result\n",
+ "#part2\n",
+ "t=((1.5*10**10)/T)**2; #age of universe when the photons have the above temperature\n",
"\n",
- "print \"The maximum distance at which the Hubble's law applies without relativistic correction is\",round(Rmax/10**9),\"X 10^9 lightyears.\""
+ "#result\n",
+ "print\"The age of the universe for the temperature of the photon to be as obtained above in seconds is %.0e\" %t;"
],
"language": "python",
"metadata": {},
@@ -49,11 +90,51 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The maximum distance at which the Hubble's law applies without relativistic correction is 4.0 X 10^9 lightyears.\n"
+ "The temperature of the photons must be in K 1.1e+13\n",
+ "The age of the universe for the temperature of the photon to be as obtained above in seconds is 2e-06\n"
]
}
],
"prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "k=8.62*10**-5; #various values and constants\n",
+ "T= 1.5*10**10;\n",
+ "delE=1.3*10**6;\n",
+ "\n",
+ "#calculation\n",
+ "a= delE/(k*T); #exponent in boltzmann factor\n",
+ "b=exp(-a); #ratio of neutron to protons\n",
+ "r=(1/(1+b))*100; #relative number of protons\n",
+ "\n",
+ "#result\n",
+ "print\"The percentage of protons is\",round(r),\" neutrons is \",round(100-r);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The percentage of protons is 73.0 neutrons is 27.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter16_1.ipynb b/Modern_Physics/Chapter16_1.ipynb
new file mode 100755
index 00000000..3d17f95b
--- /dev/null
+++ b/Modern_Physics/Chapter16_1.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "MP-16"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Cosmology: Origin and Fate of Universe"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16.1 Page 529"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\nN2=0.25;N1=0.75; #various given values\nL2=1.0;L1=0.0;\nE1_E2=-4.7*(10**-4); #Energy difference\n\n#calculation\na=(N2/N1); b=(((2*L2)+1)/((2*L1)+1));c=E1_E2; #various terms involved in the formula of ratio of population\nkT=(c/log(a/b)); #value of k*T\nk=0.0000856; #constant\nT=kT/k; #temperature of interstellar space\n\n#result\nprint \"The temperature of interstellar space was found out to be in K\",round(T,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The temperature of interstellar space was found out to be in K 2.499\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16.2 Page 536"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmc2=940.0*10**6; k=8.6*10**-5; #various constants and given values in suitable units\n\n#calculation\nT= mc2/k; #temperature of the photons\n\n#result\nprint \"The temperature of the photons must be in K %.1e\" %round(T,3);\n\n#part2\nt=((1.5*10**10)/T)**2; #age of universe when the photons have the above temperature\n\n#result\nprint\"The age of the universe for the temperature of the photon to be as obtained above in seconds is %.01e\" %t;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The temperature of the photons must be in K 1.1e+13\nThe age of the universe for the temperature of the photon to be as obtained above in seconds is 1.883318e-06\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16.3 Page 539"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initation of variable\nfrom math import exp\nk=8.62*10**-5; #various values and constants\nT= 1.5*10**10;\ndelE=1.3*10**6;\n\n#calculation\na= delE/(k*T); #exponent in boltzmann factor\nb=exp(-a); #ratio of neutron to protons\nr=(1/(1+b))*100; #relative number of protons\n\n#result\nprint\"The percentage of protons is\",round(r),\" neutrons is \",round(100-r);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The percentage of protons is 73.0 neutrons is 27.0\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter16_2.ipynb b/Modern_Physics/Chapter16_2.ipynb
new file mode 100755
index 00000000..3d17f95b
--- /dev/null
+++ b/Modern_Physics/Chapter16_2.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "MP-16"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Cosmology: Origin and Fate of Universe"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16.1 Page 529"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import log\nN2=0.25;N1=0.75; #various given values\nL2=1.0;L1=0.0;\nE1_E2=-4.7*(10**-4); #Energy difference\n\n#calculation\na=(N2/N1); b=(((2*L2)+1)/((2*L1)+1));c=E1_E2; #various terms involved in the formula of ratio of population\nkT=(c/log(a/b)); #value of k*T\nk=0.0000856; #constant\nT=kT/k; #temperature of interstellar space\n\n#result\nprint \"The temperature of interstellar space was found out to be in K\",round(T,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The temperature of interstellar space was found out to be in K 2.499\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16.2 Page 536"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nmc2=940.0*10**6; k=8.6*10**-5; #various constants and given values in suitable units\n\n#calculation\nT= mc2/k; #temperature of the photons\n\n#result\nprint \"The temperature of the photons must be in K %.1e\" %round(T,3);\n\n#part2\nt=((1.5*10**10)/T)**2; #age of universe when the photons have the above temperature\n\n#result\nprint\"The age of the universe for the temperature of the photon to be as obtained above in seconds is %.01e\" %t;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The temperature of the photons must be in K 1.1e+13\nThe age of the universe for the temperature of the photon to be as obtained above in seconds is 1.883318e-06\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16.3 Page 539"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initation of variable\nfrom math import exp\nk=8.62*10**-5; #various values and constants\nT= 1.5*10**10;\ndelE=1.3*10**6;\n\n#calculation\na= delE/(k*T); #exponent in boltzmann factor\nb=exp(-a); #ratio of neutron to protons\nr=(1/(1+b))*100; #relative number of protons\n\n#result\nprint\"The percentage of protons is\",round(r),\" neutrons is \",round(100-r);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The percentage of protons is 73.0 neutrons is 27.0\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter1_1.ipynb b/Modern_Physics/Chapter1_1.ipynb
new file mode 100755
index 00000000..edbf69c2
--- /dev/null
+++ b/Modern_Physics/Chapter1_1.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "MP-1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Introduction"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.1 Page 12"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nMn=1.008665;Mp=1.007276 #Given mass of an electron and a proton in terms of u\n\n#calculation\nMd= Mn-Mp; #mass difference \nMd2=Md*931.50; #converting u into Mev/c^2 by multiplying by 931.5 MeV/c^2\n\n#result\nprint \"Mass difference in terms of U is\",round(Md,4); \nprint\"which equals in Mev/c^2. :\",round(Md2,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Mass difference in terms of U is 0.0014\nwhich equals in Mev/c^2. : 1.294\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.2 Page 12"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nMp=1.007276 ; Me=5.4858*10**-4; #mass of proton and electron in terms of U\n\n#calculation\nMt=Mp+Me; #Total mass= sum of above masses \n\n#result\nprint\"The combined mass of an electron and a proton was found out to be in U.\",round(Mt,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The combined mass of an electron and a proton was found out to be in U. 1.008\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.3 Page 13"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nh=6.621*10**-34 ; c=2.9979*10**8; # h is in J/s and c is in m/s\nhc=h*c*((10**9)/(1.6022*10**-19)); #1e=1.602*10^-19 J and 1 m=10^9 nm\n\n#result\nprint \"The value of hc in eV.nm is\",round(hc,4); \nprint 'Hence zero at the end is significant.';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of hc in eV.nm is 1238.8651\nHence zero at the end is significant.\n"
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter1_2.ipynb b/Modern_Physics/Chapter1_2.ipynb
new file mode 100755
index 00000000..edbf69c2
--- /dev/null
+++ b/Modern_Physics/Chapter1_2.ipynb
@@ -0,0 +1,83 @@
+{
+ "metadata": {
+ "name": "MP-1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Introduction"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.1 Page 12"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nMn=1.008665;Mp=1.007276 #Given mass of an electron and a proton in terms of u\n\n#calculation\nMd= Mn-Mp; #mass difference \nMd2=Md*931.50; #converting u into Mev/c^2 by multiplying by 931.5 MeV/c^2\n\n#result\nprint \"Mass difference in terms of U is\",round(Md,4); \nprint\"which equals in Mev/c^2. :\",round(Md2,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Mass difference in terms of U is 0.0014\nwhich equals in Mev/c^2. : 1.294\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.2 Page 12"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nMp=1.007276 ; Me=5.4858*10**-4; #mass of proton and electron in terms of U\n\n#calculation\nMt=Mp+Me; #Total mass= sum of above masses \n\n#result\nprint\"The combined mass of an electron and a proton was found out to be in U.\",round(Mt,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The combined mass of an electron and a proton was found out to be in U. 1.008\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1.3 Page 13"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nh=6.621*10**-34 ; c=2.9979*10**8; # h is in J/s and c is in m/s\nhc=h*c*((10**9)/(1.6022*10**-19)); #1e=1.602*10^-19 J and 1 m=10^9 nm\n\n#result\nprint \"The value of hc in eV.nm is\",round(hc,4); \nprint 'Hence zero at the end is significant.';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of hc in eV.nm is 1238.8651\nHence zero at the end is significant.\n"
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter2.ipynb b/Modern_Physics/Chapter2.ipynb
index b0fca27c..0d0fc247 100755
--- a/Modern_Physics/Chapter2.ipynb
+++ b/Modern_Physics/Chapter2.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:eb498fc54ec9607231510853c13ca78b6bdacd256b3a6b8f272ed771d86d795c"
+ "name": "Chapter2",
+ "signature": "sha256:be87f6a340484dd1a4e5b8f9343e232694681e2bed2590e22d8288691c17dddf"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 2: Relativity II"
+ "Chapter 2:The Special Theory of Relativity"
]
},
{
@@ -21,32 +21,21 @@
"level": 2,
"metadata": {},
"source": [
- "Example 2.1, page no. 44"
+ "Example 2.1, Page 22"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "m = 9.11 * 10 **-31 #mass of electron(kg)\n",
- "c = 3.0 * 10**8 #speed of light(m/s)\n",
- "u = 0.750 * c #speed of electron(m/s)\n",
+ "#initiation of varible\n",
+ "v1=60.0; v2=40.0 #Velocities of cars wrt to observer in km/hr\n",
"\n",
"#calculation\n",
- "\n",
- "p = m*u/(math.sqrt(1-(u**2/c**2))) \n",
- "momentum = m * u\n",
+ "vr=v1-v2; #relative velocity\n",
"\n",
"#result\n",
- "\n",
- "print \"The correct relativistic momentum is\",round(p/10**-22,2),\"X 10^-22 kg m/s\"\n",
- "print \"The incorrect classical expression results in momentum equal to\",round(momentum/10**-22,2),\"X 10^-22 kg m/s\"\n"
+ "print\"The value of relative velocity in km/h. is\",round(vr,3);\n"
],
"language": "python",
"metadata": {},
@@ -55,43 +44,37 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The correct relativistic momentum is 3.1 X 10^-22 kg m/s\n",
- "The incorrect classical expression results in momentum equal to 2.05 X 10^-22 kg m/s\n"
+ "The value of relative velocity in km/h. is 20.0\n"
]
}
],
- "prompt_number": 3
+ "prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 2.3, page no. 47"
+ "Example 2.2, Page 22"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import atan, pi\n",
+ "import numpy as np\n",
+ "Va_w=[320.0,0.0]; Vw_g=[0.0, 65.0]; #Vp/q=[X Y]=>velocity of object p wrt q along X(east) and Y(north) directions.\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "me = 9.11 * 10 **-31 #mass of electron(kg)\n",
- "c = 3* 10** 8 #speed of light(m/s)\n",
- "u = 0.850 * c #speed of electron (m/s)\n",
- "e = 1.6 *10 **-19 #charge of electron(C)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "E = me*c**2/(e*math.sqrt(1-(u**2/c**2)))\n",
- "K = E - (me*c**2/e)\n",
- "\n",
- "#results\n",
+ "#calculation\n",
+ "Va_g=Va_w + Vw_g; #net velocity\n",
+ "k=np.linalg.norm(Va_g) #magnitude\n",
+ "s=atan(Va_g[3]/Va_g[0])*180.0/pi; #angle in rad*180/pi for conversion to degrees\n",
"\n",
- "print \"The Total energy is\",round(E/10**6,2),\"Mev and the kinetic energy is \",round(K/10**6,3),\"Mev.\"\n"
+ "#result\n",
+ "print \"the velocity in x direction in Km/h is\", Va_w[0],\"in y direction in km/h is\",Vw_g[1]\n",
+ "print\"The magnitude of velocity Va/g(airplane wrt ground) in Km/h is\",round(k,3),\" at \",round(s,3),\" degrees north of east.\" "
],
"language": "python",
"metadata": {},
@@ -100,74 +83,130 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The Total energy is 0.97 Mev and the kinetic energy is 0.46 Mev.\n"
+ "The magnitude of velocity Va/g(airplane wrt ground) in Km/h is 326.535 at 11.482 degrees north of east.\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 2.4, page no. 47"
+ "Example 2.4, Page 28"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "Lo=100.0*(10**3);c=3.0*(10**8); #Given values//all the quantities are converted to SI units \n",
+ "d=2.2*(10**-6); #time between its birth and decay\n",
"\n",
- "\n",
- "import math\n",
- "\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "mp = 1.67 * 10 ** -27 #mass of proton (kg)\n",
- "c = 3.0 * 10 ** 8 #speed of light(m/s)\n",
- "e = 1.602 * 10 ** -19 #charge of electron (C)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "restenergy = mp * c**2/ e \n",
+ "#calculation\n",
+ "t=Lo/c #where Lo is the distance from top of atmosphere to the Earth. c is the velocity of light. t is the time taken\n",
+ "u=sqrt(1-((d/t)**2)); # using time dilation fromula for finding u where u is the minimum velocity in terms of c;\n",
"\n",
"#result\n",
+ "print\"Hence the minimum speed required in c is\",round(u,6);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the minimum speed required in c is 0.999978\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#intiation of variable\n",
+ "from math import sqrt\n",
+ "Lo=100.0*(10**3); #Lo is converted to Km\n",
+ "u=0.999978; #//u/c is taken as u since u is represented in terms of c. \n",
"\n",
- "print \"The rest energy of proton is \",round(restenergy/10**6),\"Mev\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "E = 3.0 * restenergy\n",
- "\n",
- "#Calculation\n",
- "\n",
- "u = (math.sqrt(1-(1/(E/restenergy)**2))*c)\n",
+ "#calculation\n",
+ "L=Lo*(sqrt(1-u**2)); # from the length contraction formula\n",
"\n",
"#result\n",
- "\n",
- "print \"The speed of proton is\",round(u/10**8,2),\"X 10^8 m/s. \"\n",
- "\n",
+ "print\"Hence the apparent thickness of the Earth's surface in metres. is\",round(L,3)\n",
+ "print\"answer is slightly different in the book\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hence the apparent thickness of the Earth's surface in metres. is 663.321\n",
+ "answer is slightly different in the book\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, Page 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "L=65.0; c=3*10**8;u=0.8*c; \n",
"\n",
"#calculation\n",
- "\n",
- "K = E - restenergy\n",
+ "t=L/u ; #The value of time taken as measured by the observer\n",
"\n",
"#result\n",
+ "print\"The time for rocket to pass a point as measured by O in musec is \",round(t*10**6,3); #The value of time taken as measured by the observer\n",
"\n",
- "print \"The kinetic energy of proton is\",round(K/10**6),\"Mev\"\n",
- "\n",
+ "#partb\n",
+ "Do=65.0; #given length\n",
+ "Lo= L/sqrt(1-(u/c)**2); #contracted length of rocket\n",
"\n",
- "#calculation\n",
+ "#result\n",
+ "print\"Actual length according to O is \",round(Lo,3);\n",
"\n",
- "p=math.sqrt(round(E)**2 - round(restenergy)**2)/c\n",
+ "#partc\n",
+ "D=Do*(sqrt(1-(u/c)**2)); #contracted length of platform.\n",
"\n",
"#result\n",
+ "print\"Contracted length according to O'' is\",round(D,3);\n",
"\n",
- "print \"The proton's momentum is \",round(p * c/10**6),\"Mev/c\""
+ "#partd\n",
+ "t1=Lo/u; #time needed to pass according to O'.\n",
+ "print \"Time taken according to O is \",t1\n",
+ "\n",
+ "#part 3\n",
+ "t2=(Lo-D)/u; #time intervals between the two instances\n",
+ "print\"Time taken according to O'' is \",t2;\n",
+ "print'The value of t1 and t2 does not match with textbook exactly';"
],
"language": "python",
"metadata": {},
@@ -176,10 +215,12 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The rest energy of proton is 938.0 Mev\n",
- "The speed of proton is 2.83 X 10^8 m/s. \n",
- "The kinetic energy of proton is 1876.0 Mev\n",
- "The proton's momentum is 2654.0 Mev/c\n"
+ "The time for rocket to pass a point as measured by O in musec is 0.271\n",
+ "Actual length according to O is 108.333\n",
+ "Contracted length according to O'' is 39.0\n",
+ "Time taken according to O is 4.51388888889e-07\n",
+ "Time taken according to O'' is 2.88888888889e-07\n",
+ "The value of t1 and t2 did not match\n"
]
}
],
@@ -190,27 +231,21 @@
"level": 2,
"metadata": {},
"source": [
- "Example 2.5, page no. 49"
+ "Example 2.7, Page 35"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
- "#Variable Declaration\n",
- "\n",
- "u = 450.0 #speed of the balls(m/s)\n",
- "c = 3.0 * 10 ** 8 #speed of light(m/s)\n",
- "m = 5.0 #mass of the ball (kg)\n",
+ "#initiation of variable\n",
+ "v1=0.6; u=0.8; c=1.0; # all the values are measured in terms of c hence c=1\n",
"\n",
"#calculation\n",
- "\n",
- "dM = 2* m *(1+(u**2/(2*c**2))-1) #because u^2/c^2 << 1\n",
+ "v= (v1+u)/(1+(v1*u/c**2));\n",
"\n",
"#result\n",
- "\n",
- "print \"The mass increment is\",round(dM/10**-11,1),\"X10^-11 kg\""
+ "print \"The speed of missile as measured by an observer on earth in c is\",round(v,3);"
],
"language": "python",
"metadata": {},
@@ -219,71 +254,220 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The mass increment is 1.1 X10^-11 kg\n"
+ "The speed of missile as measured by an observer on earth in c is 0.946\n"
]
}
],
- "prompt_number": 11
+ "prompt_number": 23
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 2.7, page no. 50"
+ "Example 2.8, Page 37"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "u = 931.5 #atomic mass unit (MeV/c^2)\n",
- "Mu = 236.045563 #mass of uranuim (u)\n",
- "MRb = 89.914811 #mass of Rb (u)\n",
- "MCs = 142.927220 #mass of cs(u)\n",
- "mn = 1.008665 #mass of neutron (u)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "dm = Mu - (MRb + MCs + 3 * mn)\n",
+ "#initiation of variable\n",
+ "w1=600.0;w2=434.0; # w1=recorded wavelength;w2=actual wavelength\n",
+ " # c/w1 = c/w2 *(sqrt(1-u/c)/(1+u/c))\n",
+ " \n",
+ "#calculation\n",
+ "k=w2/w1;\n",
+ "x=(1-k**2)/(1+k**2); #solving for u/c\n",
"\n",
"#result\n",
+ "print\"The speed of galaxy wrt earth in c is\",round(x,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The speed of galaxy wrt earth in c is 0.313\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9, Page 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "v1x=0.6;v1y=0.0;v2x=0.0;v2y=.8;c=1.0; # all the velocities are taken wrt c\n",
+ "v21x=(v2x-v1x)/(1-(v1x*v2x/c**2)); #using lorentz velocity transformation\n",
+ "v21y=(v2y*(sqrt(1-(v1x*c)**2)/c**2))/(1-v1y*v2y/c**2) \n",
"\n",
- "print \"The reaction products have \",dm,\"u less than the initial uranium mass\"\n",
- "\n",
- "\n",
- "#Variable declaration\n",
+ "#result\n",
+ "print\"The velocity of rocket 2 wrt rocket 1 along x and y directions is\",round(v21x,3),\" c &\", round(v21y,3),\"c respectively\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The velocity of rocket 2 wrt rocket 1 along x and y directions is -0.6 c & 0.64 c respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, Page 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "u=0.8*c;L=65.0;c=3.0*10**8; #all values are in terms of c\n",
+ "t=u*L/(c**2*(sqrt(1-((u/c)**2)))); #from the equation 2.31 \n",
"\n",
- "c = 3.0 * 10 ** 8 #speed of light (m/s)\n",
+ "#result\n",
+ "print\"The time interval between the events is\",t, \"sec which equals\",round(t*10**6,3),\"musec.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The time interval between the events is 2.88888888889e-07 sec which equals 0.289 musec.\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, Page 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "m=1.67*10**-27;c= 3*10**8;v=0.86*c; #all the given values and constants\n",
"\n",
"#calculation\n",
- "\n",
- "dm = dm * u\n",
- "Q = dm\n",
+ "p=m*v/(sqrt(1-((v/c)**2))); # in terms of Kgm/sec\n",
"\n",
"#result\n",
+ "print\"The value of momentum was found out to be in Kg-m/sec.\\n\",p;\n",
"\n",
- "print \"the energy given off per fission event is\",-round(Q,1),\"MeV\"\n",
+ "#part 2\n",
+ "c=938.0;v=0.86*c;mc2=938.0 # all the energies in MeV where mc2= value of m*c^2\n",
+ "pc=(mc2*(v/c))/(sqrt(1-((v/c)**2))); #expressing in terms of Mev\n",
"\n",
+ "#result\n",
+ "print\"The value of momentum was found out to be in Mev.\",round(pc,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of momentum was found out to be in Kg-m/sec.\n",
+ "8.44336739668e-19\n",
+ "The value of momentum was found out to be in Mev. 1580.814\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12, Page 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "pc=1580.0; mc2=938.0;E0=938.0; # all the energies in MeV mc2=m*c^2 and pc=p*c\n",
"\n",
- "#Variable declaration\n",
+ "#result\n",
+ "E=sqrt(pc**2+mc2**2); \n",
+ "K=E-E0; #value of possible kinetic energy\n",
"\n",
- "A = 6.02 * 10 ** 23 #Avagadro number\n",
- "N = A * 1000/ Mu #number of nuclei\n",
- "efficiency = 0.4\n",
- "kWh = 4.435 * 10 **-20 #conversion (kWh/MeV)\n",
+ "#result\n",
+ "print\"The relativistic total energy in MeV. is\",round(E,3); #value of Energy E\n",
+ "print\"The kinetic energy of the proton in MeV.\",round(K,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The relativistic total energy in MeV. is 1837.456\n",
+ "The kinetic energy of the proton in MeV. 899.456\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13, Page 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "E=10.51; mc2=0.511; #all the values are in MeV\n",
"\n",
"#calculation\n",
- "\n",
- "E = efficiency * N * Q *kWh\n",
+ "p=sqrt(E**2-mc2**2); #momentum of the electron\n",
+ "v=sqrt(1-(mc2/E)**2); #velocity in terms of c\n",
"\n",
"#result\n",
- "\n",
- "print \"The total energy produced is \" ,round(E/10 **6,2),\"X 10^6 kWh\"\n"
+ "print\"The momentum of electron in MeV/c is\",round(p,3); \n",
+ "print\"The velocity of electron in c is\",round(v,5);"
],
"language": "python",
"metadata": {},
@@ -292,68 +476,120 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The reaction products have 0.177537 u less than the initial uranium mass\n",
- "the energy given off per fission event is -165.4 MeV\n",
- "The total energy produced is 7.48 X 10^6 kWh\n"
+ "The momentum of electron in MeV/c is 10.498\n",
+ "The velocity of electron in c is 0.99882\n"
]
}
],
- "prompt_number": 13
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 2.8, page no. 52"
+ "Example 2.14, Page 47"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "e = 1.6 * 10 **-19 #charge of electron(C)\n",
- "BE = 3 #binding energy of water(eV)\n",
- "c = 3.0 * 10**8 #speed of light (m/s)\n",
- "\n",
- "#Calculation\n",
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "k=50;mc2=0.511*10**-3;c=3.0*10**8; # all the values of energy are in GeV and c is in SI units\n",
"\n",
- "dm = BE * e / c**2\n",
+ "#calculation\n",
+ "v=sqrt(1-(1/(1+(k/mc2))**2)); #speed of the electron in terms of c\n",
+ "k=c-(v*c); #difference in velocities\n",
"\n",
"#result\n",
+ "print\"Speed of the electron as a fraction of c*10^-12 is.\",round(v*10**12,3); # v=(v*10^12)*10^-12; so as to obtain desired accuracy in the result\n",
+ "print\"The difference in velocities in cm/s.\",round(k*10**2,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of the electron as a fraction of c*10^-12 is. 9.99999999948e+11\n",
+ "The difference in velocities in cm/s. 1.567\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sqrt, pi\n",
+ "r=1.5*10**11; I=1.4*10**3; #radius and intensity of sun\n",
"\n",
- "print \"The mass difference is\",round(dm/10 **-36,1),\"X 10^-36 kg\"\n",
- "\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "MH2O = 3.0 * 10 **-26 #mass of water molecule (kg)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "fractional_loss= dm / MH2O\n",
+ "#calculation\n",
+ "s=4*pi*r**2 #surface area of the sun\n",
+ "Pr=s*I # Power radiated in J/sec\n",
+ "c=3.0*10**8; #velocity of light\n",
+ "m=Pr/c**2 #rate of decrease of mass\n",
+ "m=round(m,2)\n",
"\n",
"#result\n",
- "\n",
- "print \"The fractional loss of mass per gram of water formed is\",round(fractional_loss/10 ** -10,1),\"X 10^-10 \"\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "dm = 1.8 * 10 ** -13 #change in mass when 1 gram of water is formed (kg)\n",
+ "print\"The rate of decrease in mass of the sun in kg/sec. is %.1e\" %m;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of decrease in mass of the sun in kg/sec. is 4.4e+09\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi, sqrt\n",
+ "K=325; mkc2=498; #kinetic energy and rest mass energy of kaons\n",
+ "mpic=140.0; #given value\n",
"\n",
"#calculation\n",
- "\n",
- "E = dm * c**2\n",
+ "Ek=K+mkc2; \n",
+ "pkc=sqrt(Ek**2-mkc2**2); \n",
+ "#consider the law of conservation of energy which yields Ek=sqrt(p1c^2+mpic^2)+sqrt(p2c^2+mpic^2)\n",
+ "#The above equations (4th degree,hence no direct methods)can be solved by assuming the value of p2c=0.\n",
+ "p1c=sqrt(Ek**2-(2*mpic*Ek));\n",
+ "#consider the law of conservation of momentum. which gives p1c+p2c=pkc implies\n",
+ "p2c=pkc-p1c;\n",
+ "k1=(sqrt(p1c**2+(mpic**2))-mpic); #corresponding kinetic energies\n",
+ "k2=(sqrt((p2c**2)+(mpic**2))-mpic);\n",
"\n",
"#result\n",
- "\n",
- "print \"The energy released when 1 gram of H2O is formed is\",round(E/10**3),\"kJ\""
+ "print\"The corresponding kinetic energies of the pions are\", k1,\" MeV and\",round(k2,3),\" MeV.\""
],
"language": "python",
"metadata": {},
@@ -362,41 +598,38 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The mass difference is 5.3 X 10^-36 kg\n",
- "The fractional loss of mass per gram of water formed is 1.8 X 10^-10 \n",
- "The energy released when 1 gram of H2O is formed is 16.0 kJ\n"
+ "The corresponding kinetic energies of the pions are 543.0 MeV and 0.627 MeV.\n"
]
}
],
- "prompt_number": 15
+ "prompt_number": 49
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 2.9, page no. 52"
+ "Example 2.17, Page 49"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "muCsq = 106 #energy of muon (Mev)\n",
- "Ku = 4.6 #kinetic energy of muon (Mev)\n",
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "mpc2=938.0;c=3.0*10**8; #mpc2=mp*c^2,mp=mass of proton\n",
"\n",
"#calculation\n",
- "\n",
- "mpiCsq = math.sqrt(muCsq**2 + Ku**2 + 2*Ku *muCsq)+math.sqrt(Ku**2 + 2*Ku*muCsq)\n",
+ "Et=4*mpc2; #final total energy\n",
+ "E1=Et/2;E2=E1; #applying conservation of momentum and energy\n",
+ "v2=c*sqrt(1-(mpc2/E1)**2); #lorentz transformation\n",
+ "u=v2;v=(v2+u)/(1+(u*v2/c**2)); \n",
+ "E=mpc2/(sqrt(1-(v/c)**2));\n",
+ "K=E-mpc2;\n",
"\n",
"#result\n",
- "\n",
- "print \"The mass of the pion is \",round(mpiCsq),\"MeV/c^2\""
+ "print\"The threshold kinetic energy in Gev\",round(K/10**3,3);"
],
"language": "python",
"metadata": {},
@@ -405,11 +638,11 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The mass of the pion is 142.0 MeV/c^2\n"
+ "The threshold kinetic energy in Gev 5.628\n"
]
}
],
- "prompt_number": 17
+ "prompt_number": 50
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter2_1.ipynb b/Modern_Physics/Chapter2_1.ipynb
new file mode 100755
index 00000000..8a24ae86
--- /dev/null
+++ b/Modern_Physics/Chapter2_1.ipynb
@@ -0,0 +1,356 @@
+{
+ "metadata": {
+ "name": "MP-2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Special Theory of Relativity"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.1 Page 22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of varible\nv1=60.0; v2=40.0 #Velocities of cars wrt to observer in km/hr\n\n#calculation\nvr=v1-v2; #relative velocity\n\n#result\nprint\"The value of relative velocity in km/h. is\",round(vr,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of relative velocity in km/h. is 20.0\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.2 Page 22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import atan, pi\nimport numpy as np\nVa_w=[320.0,0.0]; Vw_g=[0.0, 65.0]; #Vp/q=[X Y]=>velocity of object p wrt q along X(east) and Y(north) directions.\n\n#calculation\nVa_g=Va_w + Vw_g; #net velocity\nk=np.linalg.norm(Va_g) #magnitude\ns=atan(Va_g[3]/Va_g[0])*180.0/pi; #angle in rad*180/pi for conversion to degrees\n\n#result\nprint \"the velocity in x direction in Km/h is\", Va_w[0],\"in y direction in km/h is\",Vw_g[1]\nprint\"The magnitude of velocity Va/g(airplane wrt ground) in Km/h is\",round(k,3),\" at \",round(s,3),\" degrees north of east.\" ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The magnitude of velocity Va/g(airplane wrt ground) in Km/h is 326.535 at 11.482 degrees north of east.\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.4 Page 28"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nLo=100.0*(10**3);c=3.0*(10**8); #Given values//all the quantities are converted to SI units \nd=2.2*(10**-6); #time between its birth and decay\n\n#calculation\nt=Lo/c #where Lo is the distance from top of atmosphere to the Earth. c is the velocity of light. t is the time taken\nu=sqrt(1-((d/t)**2)); # using time dilaion fromula for finding u where u is the minimum velocity in terms of c;\n\n#result\nprint\"Hence the minimum speed required in c is\",round(u,6);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the minimum speed required in c is 0.999978\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.5 Page 30"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#intiation of variable\nfrom math import sqrt\nLo=100.0*(10**3); #Lo is converted to Km\nu=0.999978; #//u/c is taken as u since u is represented in terms of c. \n\n#calculation\nL=Lo*(sqrt(1-u**2)); # from the length contraction formula\n\n#result\nprint\"Hence the apparent thickness of the Earth's surface in metres. is\",round(L,3)\nprint\"answer is slightly different in the book\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the apparent thickness of the Earth's surface in metres. is 663.321\nanswer is slightly different in the book\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.6 Page 32"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nL=65.0; c=3*10**8;u=0.8*c; \n\n#calculation\nt=L/u ; #The value of time taken as measured by the observer\n\n#result\nprint\"The time for rocket to pass a point as measured by O in musec is \",round(t*10**6,3); #The value of time taken as measured by the observer\n\n#partb\nDo=65.0; #given length\nLo= L/sqrt(1-(u/c)**2); #contracted length of rocket\n\n#result\nprint\"Actual length according to O is \",round(Lo,3);\n\n#partc\nD=Do*(sqrt(1-(u/c)**2)); #contracted length of platform.\n\n#result\nprint\"Contracted length according to O'' is\",round(D,3);\n\n#partd\nt1=Lo/u; #time needed to pass according to O'.\nprint \"Time taken according to O is \",t1\n\n#part 3\nt2=(Lo-D)/u; #time intervals between the two instancs\nprint\"Time taken according to O'' is \",t2;\nprint'The value of t1 and t2 did not match';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The time for rocket to pass a point as measured by O in musec is 0.271\nActual length according to O is 108.333\nContracted length according to O'' is 39.0\nTime taken according to O is 4.51388888889e-07\nTime taken according to O'' is 2.88888888889e-07\nThe value of t1 and t2 did not match\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.7 Page 35"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nv1=0.6; u=0.8; c=1.0; # all the values are measured in terms of c hence c=1\n\n#calculation\nv= (v1+u)/(1+(v1*u/c**2));\n\n#result\nprint \"The speed of missile as measured by an observer on earth in c is\",round(v,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The speed of missile as measured by an observer on earth in c is 0.946\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.8 Page 37"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nw1=600.0;w2=434.0; # w1=recorded wavelength;w2=actual wavelength\n # c/w1 = c/w2 *(sqrt(1-u/c)/(1+u/c))\n \n#calcualtion\nk=w2/w1;\nx=(1-k**2)/(1+k**2); #solving for u/c\n\n#result\nprint\"The speed of galaxy wrt earth in c is\",round(x,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The speed of galaxy wrt earth in c is 0.313\n"
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.9 Page 39"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nv1x=0.6;v1y=0.0;v2x=0.0;v2y=.8;c=1.0; # all the velocities are taken wrt c\nv21x=(v2x-v1x)/(1-(v1x*v2x/c**2)); #using lorentz velocity transformation\nv21y=(v2y*(sqrt(1-(v1x*c)**2)/c**2))/(1-v1y*v2y/c**2) \n\n#result\nprint\"The velocity of rocket 2 wrt rocket 1 along x and y directions is\",round(v21x,3),\" c &\", round(v21y,3),\"c respectively\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The velocity of rocket 2 wrt rocket 1 along x and y directions is -0.6 c & 0.64 c respectively\n"
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.10 Page 40"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nu=0.8*c;L=65.0;c=3.0*10**8; #all values are in terms of c\nt=u*L/(c**2*(sqrt(1-((u/c)**2)))); #from the equation 2.31 \n\n#result\nprint\"The time interval between the events is\",t, \"sec which equals\",round(t*10**6,3),\"musec.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The time interval between the events is 2.88888888889e-07 sec which equals 0.289 musec.\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.11 Page 41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nm=1.67*10**-27;c= 3*10**8;v=0.86*c; #all the given values and constants\n\n#calculation\np=m*v/(sqrt(1-((v/c)**2))); # in terms of Kgm/sec\n\n#result\nprint\"The value of momentum was found out to be in Kg-m/sec.\\n\",p;\n\n#part 2\nc=938.0;v=0.86*c;mc2=938.0 # all the energies in MeV where mc2= value of m*c^2\npc=(mc2*(v/c))/(sqrt(1-((v/c)**2))); #expressing in terms of Mev\n\n#result\nprint\"The value of momentum was found out to be in Mev.\",round(pc,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of momentum was found out to be in Kg-m/sec.\n8.44336739668e-19\nThe value of momentum was found out to be in Mev. 1580.814\n"
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.12 Page 47"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\npc=1580.0; mc2=938.0;E0=938.0; # all the energies in MeV mc2=m*c^2 and pc=p*c\n\n#result\nE=sqrt(pc**2+mc2**2); \nK=E-E0; #value of possible kinetic energy\n\n#result\nprint\"The relativistic total energy in MeV. is\",round(E,3); #value of Energy E\nprint\"The kinetic energy of the proton in MeV.\",round(K,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The relativistic total energy in MeV. is 1837.456\nThe kinetic energy of the proton in MeV. 899.456\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.13 Page 47"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nE=10.51; mc2=0.511; #all the values are in MeV\n\n#calculation\np=sqrt(E**2-mc2**2); #momentum of the electron\nv=sqrt(1-(mc2/E)**2); #velocity in terms of c\n\n#result\nprint\"The momentum of electron in MeV/c is\",round(p,3); \nprint\"The velocity of electron in c is\",round(v,5);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The momentum of electron in MeV/c is 10.498\nThe velocity of electron in c is 0.99882\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.14 Page 47"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nk=50;mc2=0.511*10**-3;c=3.0*10**8; # all the values of energy are in GeV and c is in SI units\n\n#calculation\nv=sqrt(1-(1/(1+(k/mc2))**2)); #speed of the electron in terms of c\nk=c-(v*c); #difference in velocities\n\n#result\nprint\"Speed of the electron as a fraction of c*10^-12 is.\",round(v*10**12,3); # v=(v*10^12)*10^-12; so as to obtain desired accuracy in the result\nprint\"The difference in velocities in cm/s.\",round(k*10**2,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Speed of the electron as a fraction of c*10^-12 is. 9.99999999948e+11\nThe difference in velocities in cm/s. 1.567\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.15 Page 48"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt, pi\nr=1.5*10**11; I=1.4*10**3; #radius and intensity of sun\n\n#calculation\ns=4*pi*r**2 #surface area of the sun\nPr=s*I # Power radiated in J/sec\nc=3.0*10**8; #velocity of light\nm=Pr/c**2 #rate od decrease of mass\nm=round(m,2)\n\n#result\nprint\"The rate of decrease in mass of the sun in kg/sec. is %.1e\" %m;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The rate of decrease in mass of the sun in kg/sec. is 4.4e+09\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.16 Page 48"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi, sqrt\nK=325; mkc2=498; #kinetic energy and rest mass energy of kaons\nmpic=140.0; #given value\n\n#calculation\nEk=K+mkc2; \npkc=sqrt(Ek**2-mkc2**2); \n#consider the law of conservation of energy which yields Ek=sqrt(p1c^2+mpic^2)+sqrt(p2c^2+mpic^2)\n#The above equations (4th degree,hence no direct methods)can be solved by assuming the value of p2c=0.\np1c=sqrt(Ek**2-(2*mpic*Ek));\n#consider the law of conservation of momentum. which gives p1c+p2c=pkc implies\np2c=pkc-p1c;\nk1=(sqrt(p1c**2+(mpic**2))-mpic); #corresponding kinetic energies\nk2=(sqrt((p2c**2)+(mpic**2))-mpic);\n\n#result\nprint\"The corresponding kinetic energies of the pions are\", k1,\" MeV and\",round(k2,3),\" MeV.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The corresponding kinetic energies of the pions are 543.0 MeV and 0.627 MeV.\n"
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.17 Page 49"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nmpc2=938.0;c=3.0*10**8; #mpc2=mp*c^2,mp=mass of proton\n\n#calculation\nEt=4*mpc2; #final total energy\nE1=Et/2;E2=E1; #applying conservation of momentum and energy\nv2=c*sqrt(1-(mpc2/E1)**2); #lorentz transformation\nu=v2;v=(v2+u)/(1+(u*v2/c**2)); \nE=mpc2/(sqrt(1-(v/c)**2));\nK=E-mpc2;\n\n#result\nprint\"The threshold kinetic energy in Gev\",round(K/10**3,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The threshold kinetic energy in Gev 5.628\n"
+ }
+ ],
+ "prompt_number": 50
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter2_2.ipynb b/Modern_Physics/Chapter2_2.ipynb
new file mode 100755
index 00000000..8a24ae86
--- /dev/null
+++ b/Modern_Physics/Chapter2_2.ipynb
@@ -0,0 +1,356 @@
+{
+ "metadata": {
+ "name": "MP-2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Special Theory of Relativity"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.1 Page 22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of varible\nv1=60.0; v2=40.0 #Velocities of cars wrt to observer in km/hr\n\n#calculation\nvr=v1-v2; #relative velocity\n\n#result\nprint\"The value of relative velocity in km/h. is\",round(vr,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of relative velocity in km/h. is 20.0\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.2 Page 22"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import atan, pi\nimport numpy as np\nVa_w=[320.0,0.0]; Vw_g=[0.0, 65.0]; #Vp/q=[X Y]=>velocity of object p wrt q along X(east) and Y(north) directions.\n\n#calculation\nVa_g=Va_w + Vw_g; #net velocity\nk=np.linalg.norm(Va_g) #magnitude\ns=atan(Va_g[3]/Va_g[0])*180.0/pi; #angle in rad*180/pi for conversion to degrees\n\n#result\nprint \"the velocity in x direction in Km/h is\", Va_w[0],\"in y direction in km/h is\",Vw_g[1]\nprint\"The magnitude of velocity Va/g(airplane wrt ground) in Km/h is\",round(k,3),\" at \",round(s,3),\" degrees north of east.\" ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The magnitude of velocity Va/g(airplane wrt ground) in Km/h is 326.535 at 11.482 degrees north of east.\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.4 Page 28"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nLo=100.0*(10**3);c=3.0*(10**8); #Given values//all the quantities are converted to SI units \nd=2.2*(10**-6); #time between its birth and decay\n\n#calculation\nt=Lo/c #where Lo is the distance from top of atmosphere to the Earth. c is the velocity of light. t is the time taken\nu=sqrt(1-((d/t)**2)); # using time dilaion fromula for finding u where u is the minimum velocity in terms of c;\n\n#result\nprint\"Hence the minimum speed required in c is\",round(u,6);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the minimum speed required in c is 0.999978\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.5 Page 30"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#intiation of variable\nfrom math import sqrt\nLo=100.0*(10**3); #Lo is converted to Km\nu=0.999978; #//u/c is taken as u since u is represented in terms of c. \n\n#calculation\nL=Lo*(sqrt(1-u**2)); # from the length contraction formula\n\n#result\nprint\"Hence the apparent thickness of the Earth's surface in metres. is\",round(L,3)\nprint\"answer is slightly different in the book\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the apparent thickness of the Earth's surface in metres. is 663.321\nanswer is slightly different in the book\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.6 Page 32"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nL=65.0; c=3*10**8;u=0.8*c; \n\n#calculation\nt=L/u ; #The value of time taken as measured by the observer\n\n#result\nprint\"The time for rocket to pass a point as measured by O in musec is \",round(t*10**6,3); #The value of time taken as measured by the observer\n\n#partb\nDo=65.0; #given length\nLo= L/sqrt(1-(u/c)**2); #contracted length of rocket\n\n#result\nprint\"Actual length according to O is \",round(Lo,3);\n\n#partc\nD=Do*(sqrt(1-(u/c)**2)); #contracted length of platform.\n\n#result\nprint\"Contracted length according to O'' is\",round(D,3);\n\n#partd\nt1=Lo/u; #time needed to pass according to O'.\nprint \"Time taken according to O is \",t1\n\n#part 3\nt2=(Lo-D)/u; #time intervals between the two instancs\nprint\"Time taken according to O'' is \",t2;\nprint'The value of t1 and t2 did not match';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The time for rocket to pass a point as measured by O in musec is 0.271\nActual length according to O is 108.333\nContracted length according to O'' is 39.0\nTime taken according to O is 4.51388888889e-07\nTime taken according to O'' is 2.88888888889e-07\nThe value of t1 and t2 did not match\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.7 Page 35"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nv1=0.6; u=0.8; c=1.0; # all the values are measured in terms of c hence c=1\n\n#calculation\nv= (v1+u)/(1+(v1*u/c**2));\n\n#result\nprint \"The speed of missile as measured by an observer on earth in c is\",round(v,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The speed of missile as measured by an observer on earth in c is 0.946\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.8 Page 37"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nw1=600.0;w2=434.0; # w1=recorded wavelength;w2=actual wavelength\n # c/w1 = c/w2 *(sqrt(1-u/c)/(1+u/c))\n \n#calcualtion\nk=w2/w1;\nx=(1-k**2)/(1+k**2); #solving for u/c\n\n#result\nprint\"The speed of galaxy wrt earth in c is\",round(x,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The speed of galaxy wrt earth in c is 0.313\n"
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.9 Page 39"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nv1x=0.6;v1y=0.0;v2x=0.0;v2y=.8;c=1.0; # all the velocities are taken wrt c\nv21x=(v2x-v1x)/(1-(v1x*v2x/c**2)); #using lorentz velocity transformation\nv21y=(v2y*(sqrt(1-(v1x*c)**2)/c**2))/(1-v1y*v2y/c**2) \n\n#result\nprint\"The velocity of rocket 2 wrt rocket 1 along x and y directions is\",round(v21x,3),\" c &\", round(v21y,3),\"c respectively\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The velocity of rocket 2 wrt rocket 1 along x and y directions is -0.6 c & 0.64 c respectively\n"
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.10 Page 40"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nu=0.8*c;L=65.0;c=3.0*10**8; #all values are in terms of c\nt=u*L/(c**2*(sqrt(1-((u/c)**2)))); #from the equation 2.31 \n\n#result\nprint\"The time interval between the events is\",t, \"sec which equals\",round(t*10**6,3),\"musec.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The time interval between the events is 2.88888888889e-07 sec which equals 0.289 musec.\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.11 Page 41"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nm=1.67*10**-27;c= 3*10**8;v=0.86*c; #all the given values and constants\n\n#calculation\np=m*v/(sqrt(1-((v/c)**2))); # in terms of Kgm/sec\n\n#result\nprint\"The value of momentum was found out to be in Kg-m/sec.\\n\",p;\n\n#part 2\nc=938.0;v=0.86*c;mc2=938.0 # all the energies in MeV where mc2= value of m*c^2\npc=(mc2*(v/c))/(sqrt(1-((v/c)**2))); #expressing in terms of Mev\n\n#result\nprint\"The value of momentum was found out to be in Mev.\",round(pc,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of momentum was found out to be in Kg-m/sec.\n8.44336739668e-19\nThe value of momentum was found out to be in Mev. 1580.814\n"
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.12 Page 47"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\npc=1580.0; mc2=938.0;E0=938.0; # all the energies in MeV mc2=m*c^2 and pc=p*c\n\n#result\nE=sqrt(pc**2+mc2**2); \nK=E-E0; #value of possible kinetic energy\n\n#result\nprint\"The relativistic total energy in MeV. is\",round(E,3); #value of Energy E\nprint\"The kinetic energy of the proton in MeV.\",round(K,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The relativistic total energy in MeV. is 1837.456\nThe kinetic energy of the proton in MeV. 899.456\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.13 Page 47"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nE=10.51; mc2=0.511; #all the values are in MeV\n\n#calculation\np=sqrt(E**2-mc2**2); #momentum of the electron\nv=sqrt(1-(mc2/E)**2); #velocity in terms of c\n\n#result\nprint\"The momentum of electron in MeV/c is\",round(p,3); \nprint\"The velocity of electron in c is\",round(v,5);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The momentum of electron in MeV/c is 10.498\nThe velocity of electron in c is 0.99882\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.14 Page 47"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nk=50;mc2=0.511*10**-3;c=3.0*10**8; # all the values of energy are in GeV and c is in SI units\n\n#calculation\nv=sqrt(1-(1/(1+(k/mc2))**2)); #speed of the electron in terms of c\nk=c-(v*c); #difference in velocities\n\n#result\nprint\"Speed of the electron as a fraction of c*10^-12 is.\",round(v*10**12,3); # v=(v*10^12)*10^-12; so as to obtain desired accuracy in the result\nprint\"The difference in velocities in cm/s.\",round(k*10**2,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Speed of the electron as a fraction of c*10^-12 is. 9.99999999948e+11\nThe difference in velocities in cm/s. 1.567\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.15 Page 48"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt, pi\nr=1.5*10**11; I=1.4*10**3; #radius and intensity of sun\n\n#calculation\ns=4*pi*r**2 #surface area of the sun\nPr=s*I # Power radiated in J/sec\nc=3.0*10**8; #velocity of light\nm=Pr/c**2 #rate od decrease of mass\nm=round(m,2)\n\n#result\nprint\"The rate of decrease in mass of the sun in kg/sec. is %.1e\" %m;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The rate of decrease in mass of the sun in kg/sec. is 4.4e+09\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.16 Page 48"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi, sqrt\nK=325; mkc2=498; #kinetic energy and rest mass energy of kaons\nmpic=140.0; #given value\n\n#calculation\nEk=K+mkc2; \npkc=sqrt(Ek**2-mkc2**2); \n#consider the law of conservation of energy which yields Ek=sqrt(p1c^2+mpic^2)+sqrt(p2c^2+mpic^2)\n#The above equations (4th degree,hence no direct methods)can be solved by assuming the value of p2c=0.\np1c=sqrt(Ek**2-(2*mpic*Ek));\n#consider the law of conservation of momentum. which gives p1c+p2c=pkc implies\np2c=pkc-p1c;\nk1=(sqrt(p1c**2+(mpic**2))-mpic); #corresponding kinetic energies\nk2=(sqrt((p2c**2)+(mpic**2))-mpic);\n\n#result\nprint\"The corresponding kinetic energies of the pions are\", k1,\" MeV and\",round(k2,3),\" MeV.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The corresponding kinetic energies of the pions are 543.0 MeV and 0.627 MeV.\n"
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2.17 Page 49"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nmpc2=938.0;c=3.0*10**8; #mpc2=mp*c^2,mp=mass of proton\n\n#calculation\nEt=4*mpc2; #final total energy\nE1=Et/2;E2=E1; #applying conservation of momentum and energy\nv2=c*sqrt(1-(mpc2/E1)**2); #lorentz transformation\nu=v2;v=(v2+u)/(1+(u*v2/c**2)); \nE=mpc2/(sqrt(1-(v/c)**2));\nK=E-mpc2;\n\n#result\nprint\"The threshold kinetic energy in Gev\",round(K/10**3,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The threshold kinetic energy in Gev 5.628\n"
+ }
+ ],
+ "prompt_number": 50
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter3.ipynb b/Modern_Physics/Chapter3.ipynb
index c4fdd463..72876741 100755
--- a/Modern_Physics/Chapter3.ipynb
+++ b/Modern_Physics/Chapter3.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:6f3412539d62c2f676626072f86e8478aa55d9f7f8bd139276fa120f78482f67"
+ "name": "Chapter3"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 3: The Quantum Theory of Light"
+ "Chapter 3:The particle like properties of electromagnetic radiation"
]
},
{
@@ -21,28 +20,22 @@
"level": 2,
"metadata": {},
"source": [
- "Example 3.1, page no. 69"
+ "Example 3.1 Page 69"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
+ "#initiation of variable\n",
+ "from math import sin,pi\n",
+ "w=0.250; theta=26.3;n=1 # n=1 for hydrogen atom and rest all are given values\n",
"\n",
- "#Variable declaration\n",
- "Rs=7.0 * (10 ** 8) \t#sun's radius (m)\n",
- "R = 1.5 *(10 ** 11)\t#earth to sun distance (m)\n",
- "a = 1 #since sun is considered as a blackbody \n",
- "k = 5.6 * (10 ** (-8)) #Stefan-Boltzmann constant ( W.m ^-2 .K^-4)\n",
- "eTotalR = 1400\t#power per unit area (W/m^2)\n",
- "\n",
- "#Calculations\n",
- "T = ((eTotalR * R * R) / (k * Rs * Rs) ) ** .25\n",
+ "#calculation\n",
+ "d=n*w/(2*sin(theta*pi/180)); # bragg's law\n",
"\n",
- "#Results\n",
- "print '%s %.2f %s' %('the surface temperature of the sun is',T,'K')\n",
- "\n"
+ "#result\n",
+ "print \"Hence the atomic spacing in nm is\",round(d,3);"
],
"language": "python",
"metadata": {},
@@ -51,7 +44,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "the surface temperature of the sun is 5820.79 K\n"
+ "Hence the atomic spacing in nm is 0.282\n"
]
}
],
@@ -62,97 +55,23 @@
"level": 2,
"metadata": {},
"source": [
- "Example 3.2, page no. 75"
+ "Example 3.2 Page 73"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "h = 6.63 * 10 ** -34 #planck's constant(Js)\n",
- "c = 3 * 10 ** 8 #speed of light(m/s)\n",
- "lgreen = 540 * 10 ** -9#wavelength of green light(m)\n",
- "lred = 700 *10**-9 #wavelength of red light(m)\n",
- "e = 1.602 * 10 ** -19 #charge of an electron(C)\n",
+ "#initiation of variable\n",
+ "from math import pi,sin\n",
+ "I=120.0;r=0.1*10**-9;Eev=2.3 #I-intensity in W/m^2 r in m & E in electron volt\n",
+ "A=pi*r**2;K=1.6*10**-19; # A=area and K is conversion factor from ev to joules\n",
"\n",
"#calculation\n",
- "dEg = h*c /(lgreen* e)\n",
- "dEr = h*c/(lred * e)\n",
- "\n",
- "#results\n",
- "print '%s %s %s %s %s' %('the minimum energy change for ',lgreen * 10 ** 9,'nm is ',round(dEg,2),'eV')\n",
- "print '%s %s %s %s %s' %('the minimum energy change for ',lred * 10 ** 9,'nm is ',round(dEr,2),'eV')\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "l=1 #length of the pendulum(m)\n",
- "m = 0.1 # mass of the pendulum(kg)\n",
- "g = 9.8 #acceleration due to gravity(m.s^-2)\n",
- "h = 6.63 *10 **-34 #planck's constant(J.s)\n",
- "theta = 10 # displaced angle\n",
- "\n",
- "#Calculations\n",
- "E = m * g * l *(1 - math.cos(math.pi * theta /180))\n",
- "f = math.sqrt(g /l) /(2* math.pi)\n",
- "Edelta = h *f\n",
- "\n",
- "#results\n",
- "print '%s %s %s' %('the pendulum frequency is',round(f,2),'Hz')\n",
- "print '%s %s %s' %('the total energy of the pendulum is',round(E,3),'J')\n",
- "print '%s %s %s' %('therefore an energy change of one quantum corresponds to',round(Edelta/10**-34,2),'x 10^-34 J')\n",
- "print '%s %s %s' %('Therefore the fractional change in energy ^E/E is ',round(Edelta/E/10**-32,2),'x 10^-32 ')"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "the minimum energy change for 540.0 nm is 2.3 eV\n",
- "the minimum energy change for 700.0 nm is 1.77 eV\n",
- "the pendulum frequency is 0.5 Hz\n",
- "the total energy of the pendulum is 0.015 J\n",
- "therefore an energy change of one quantum corresponds to 3.3 x 10^-34 J\n",
- "Therefore the fractional change in energy ^E/E is 2.22 x 10^-32 \n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3.3, page no. 80"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "pi = 3.141 \n",
- "k = 1.381 * 10 **-23 #Boltzmann constant (J/K)\n",
- "c = 2.998 * 10 ** 8 #Speed of light (m/s)\n",
- "h = 6.626 * 10 ** -34 #Planck's constant (J.s)\n",
+ "t= Eev*K/(I*A); #time interval\n",
"\n",
- "#Calculation\n",
- "\n",
- "sigma = 2 * pi**5 * k**4 / (15 * c**2 * h**3)\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"e_total=sigma * T^4 where sigma=\",round(sigma/10**-8,2),\"X 10^-8 W.m^-2.K^-4\""
+ "#result\n",
+ "print \"The value of time interval was found out to be in sec is\",round(t,3);\n"
],
"language": "python",
"metadata": {},
@@ -161,79 +80,44 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "e_total=sigma * T^4 where sigma= 5.67 X 10^-8 W.m^-2.K^-4\n"
+ "The value of time interval was found out to be in sec is 0.098\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 3.4, page no. 83"
+ "Example 3.3 Page 76"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "\n",
- "#variable declaration\n",
- "e= 1.68 * 10 **-19 #electron charge(C)\n",
- "O = 2.28 * e #work function of sodium\n",
- "I = 10 ** -10 #power per unit area(W/cm^2)\n",
+ "#initiation of variable\n",
+ "from math import pi,sin\n",
+ "w=650.0*10**-9;h=6.63*10**-34;c=3*10**8; #given values and constant taken in comfortable units\n",
"\n",
"#calculation\n",
- "A = math.pi * 10 ** -16\n",
- "t= O / (I * A)\n",
+ "E=h*c/w; \n",
+ "E1=E/(1.6*10**-19);\n",
"\n",
"#result\n",
- "print '%s %s %s' %('the time lag is given by',round(t/(60*60*24)),'days which is approximated to 130 days in the text book')"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "the time lag is given by 141.0 days which is approximated to 130 days in the text book\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3.5, page no. 85"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
+ "print \"The Energy of the electron in J \",E,\"which is equivalent to in eV is \", round(E1,3);\n",
+ "print \"The momentum of electron is p=E/c i.e is \", round(E1,3);\n",
"\n",
- "#variable declaration\n",
- "Vs = 4.3 #Stopping voltage(V)\n",
- "e = 1.6 * 10 **-19 #electron charge(C)\n",
- "Me = 9.1 *10**-31 #mass of electron(kg)\n",
+ "#part b\n",
+ "E2=2.40; #given energy of photon.\n",
"\n",
"#calculation\n",
- "vmax = math.sqrt( 2* e* Vs /Me)\n",
- "Kmax = e *Vs\n",
+ "w2=h*c*10**9/(E2*1.6*10**9); #converting the energy in to eV and nm \n",
"\n",
"#result\n",
- "print '%s %s %s' %('the Kmax of these electrons are', Kmax ,'J')\n",
- "print '%s %s %s' %('vmax of these electrons are',round(vmax/10**6,2),' x 10^6 m/s')"
+ "print \"The wavelength of the photon in m is\",round(w2*10**28,0)"
],
"language": "python",
"metadata": {},
@@ -242,76 +126,49 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "the Kmax of these electrons are 6.88e-19 J\n",
- "vmax of these electrons are 1.23 x 10^6 m/s\n"
+ "The Energy of the electron in J 3.06e-19 which is equivalent to in eV is 1.912\n",
+ "The momentum of electron is p=E/c i.e is 1.912\n",
+ "The wavelength of the photon in m is 518.0\n"
]
}
],
- "prompt_number": 13
+ "prompt_number": 8
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 3.6, page no. 85"
+ "Example 3.4 Page 78"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "hc=1240.0; phi=4.52 #both the values are in eV\n",
"\n",
- "#variable declaration\n",
- "I0 = 1 * 10 ** -6 #intensity of light falling W/cm^2\n",
- "\n",
- "#calculation\n",
- "I = .03 * .04 * I0\n",
+ "#calcualtion\n",
+ "w1=hc/phi; \n",
"\n",
"#result\n",
- "print '%s %s %s' %('The actual intensity available is',I,'W/cm^2')\n",
+ "print \"The cutoff wavelength of the tungsten metal in nm is \",round(w1,3);\n",
"\n",
- "#variable declaration\n",
- "lamda = 250 *10 ** -9 #wavelength of violet light(m)\n",
- "c= 3*10**8 #speed of light(m/s)\n",
- "h = 6.63 *10 **-34 #planck's constant(J.s)\n",
+ "#part b\n",
+ "w2=198.0; #given value of wavelength \n",
"\n",
"#calculation\n",
- "Ne = I *lamda / (h * c)\n",
+ "Kmax=(hc/w2)-phi;\n",
"\n",
"#result\n",
- "print '%s %s %s' %('number of electrons is',round(Ne/10**9,1),'x 10^9')\n",
- "\n",
+ "print 'The max value of kinetic energy in eV is',round(Kmax,3);\n",
"\n",
- "#variable declaration\n",
- "e = 1.6 * 10 **-19 #electron charge(c)\n",
- "\n",
- "#calculation\n",
- "i = e * Ne\n",
+ "#part c\n",
+ "Vs=Kmax;\n",
"\n",
"#result\n",
- "print '%s %s %s' %('current in the phototube is ',round(i/10**-10,1),'x 10^-10 A')\n",
- "\n",
- "\n",
- "#variable declaration\n",
- "f0 = 1.1 *10**15 #cutoff frequency (Hz)\n",
- "\n",
- "#calculation\n",
- "O = h *f0 / e \n",
- "\n",
- "#result\n",
- "print '%s %s %s' %('the work function is ',round(O,1),'eV')\n",
- "\n",
- "\n",
- "\n",
- "#variable declaration\n",
- "lamda = 250 * 10 ** -9 #wavelength(m)\n",
- "\n",
- "#calculation\n",
- "Vs = ((h*c )/(lamda * e )) - O\n",
- "\n",
- "#result\n",
- "print '%s %s %s' %('stopping voltage for iron is ',round(Vs,2),'V')"
+ "print \"The numerical value of the max kinetic energy is same as stopping potential in volts.Hence in V is\",round(Vs,3);"
],
"language": "python",
"metadata": {},
@@ -320,44 +177,47 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The actual intensity available is 1.2e-09 W/cm^2\n",
- "number of electrons is 1.5 x 10^9\n",
- "current in the phototube is 2.4 x 10^-10 A\n",
- "the work function is 4.6 eV\n",
- "stopping voltage for iron is 0.41 V\n"
+ "The cutoff wavelength of the tungsten metal in fnm is 274.336\n",
+ "The max value of kinetic energy in eV is 1.743\n",
+ "The numerical value of the max kinetic energy is same as stopping potential in volts.Hence in V is 1.743\n"
]
}
],
- "prompt_number": 16
+ "prompt_number": 5
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 3.7, page no. 93"
+ "Example 3.5 Page 80"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "T1=293.0; Kw=2.898*10**-3;\n",
"\n",
+ "#calculation\n",
+ "w1=Kw/T1;\n",
"\n",
- "import math\n",
+ "#result\n",
+ "print \"The wavelength at which emits maximum radiation in um. is\",round(w1*10**6,3);\n",
"\n",
- "#variable declaration\n",
- "lamda = .2 * 10 ** -9 #wavelength(m)\n",
- "theta = 45 #observed angle(degrees)\n",
- "h = 6.63 * 10 ** -34 #planck's constant(J.s)\n",
- "Me = 9.1 * 10 ** -31 #electron mass(kg)\n",
- "c = 3* 10 ** 8 #speed of light(m/s)\n",
+ "#part b\n",
+ "w2=650.0*10**-9; \n",
+ "T2=Kw/w2;\n",
"\n",
- "#calculation\n",
- "dl= h *(1 - math.cos(math.pi * theta /180)) /(Me * c)\n",
+ "#result\n",
+ "print 'The temperature of the object must be raised to in K. is',round(T2,3);\n",
+ "\n",
+ "#part c\n",
+ "x=(T2/T1)**4; \n",
"\n",
"#result\n",
- "print '%s %s %s' %('the wavelength off the scattered x-ray at this angle is',dl+lamda,'m')"
+ "print \"Thus the thermal radiation at higher temperature in times the room (lower) tempertaure. is\",round(x,3);"
],
"language": "python",
"metadata": {},
@@ -366,115 +226,54 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "the wavelength off the scattered x-ray at this angle is 2.00711312103e-10 m\n"
+ "The wavelength at which emits maximum radiation in um. is 9.891\n",
+ "The temperature of the object must be raised to in K. is 4458.462\n",
+ "Thus the thermal radiation at higher temperature in times the room (lower) tempertaure. is 53612.939\n"
]
}
],
- "prompt_number": 18
+ "prompt_number": 8
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 3.8, page no. 93"
+ "Example 3.6 Page 82"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "\n",
- "#variable declaration\n",
- "lamdaG = 0.0106 #wavelenght(m)\n",
- "\n",
- "#calculation\n",
- "dl = 0.0243 * (1-math.cos(math.pi/2))\n",
- "f= dl/ lamdaG\n",
- "\n",
- "#result\n",
- "print \"the compton shift is \",dl,\"A'\"\n",
- "print \"the fractional change in wavelength of gamma rays is\",round(f,4)\n",
- "\n",
- "#(2)X-rays from molybdenum, lamda = 0.712 x 10 ^-10 m,\n",
- "\n",
- "#variable declaration\n",
- "lamdaX = 0.712 #wavelenght(m)\n",
+ "#initiation of variable\n",
+ "#part a\n",
+ "from math import cos, sin, pi,atan\n",
+ "w1=0.24;wc=0.00243;theta=60.0; #given values w=wavelength(lambeda)\n",
"\n",
"#calculation\n",
- "f= dl/ lamdaX\n",
+ "w2=w1+(wc*(1-cos(theta*pi/180))); \n",
"\n",
"#result\n",
- "print \"the fractional change in wavelength of X rays is\",round(f,4)\n",
- "\n",
- "#(3)green light from a mercury lamp, lamda = 5461 *10 ^ -10 \n",
+ "print \"The wavelength of x-rays after scattering in nm is\",round(w2,5);\n",
"\n",
- "#variable declaration\n",
- "lamdaGr = 5461\n",
- "\n",
- "#calculation\n",
- "f= dl/ lamdaGr\n",
+ "#part b;\n",
+ "hc=1240;\n",
+ "E2=hc/w2;E1=hc/w1; \n",
"\n",
"#result\n",
- "print \"the fractional change in wavelength of green rays is\",round(f/10**-6,3),\"x 10^-6\"\n",
+ "print \"The energy of scattered x-rays in eV is\",round(E2,3);\n",
"\n",
+ "#part c\n",
+ "K= E1-E2; #The kinetic energy is the difference in the energy before and after the collision;\n",
"\n",
- "#variable declaration\n",
- "h = 6.63 * 10 ** -34 #planck's constant(J.s)\n",
- "c = 3* 10 ** 8 #speed of light(m/s)\n",
- "lamda = 0.712 * 10 **-10\n",
- "e = 1.6 * 10 **-19 #electron charge(c)\n",
+ "print \"The kinetic energy of the x-rays in eV is\",round(K,3);\n",
"\n",
- "#calculation\n",
- "E = h*c/(lamda * e)\n",
- "\n",
- "#result\n",
- "print \"the energy of incident x-ray is\",round(E,2),\"ev. It is large when compared to binding energy of 4eV\"\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "the compton shift is 0.0243 A'\n",
- "the fractional change in wavelength of gamma rays is 2.2925\n",
- "the fractional change in wavelength of X rays is 0.0341\n",
- "the fractional change in wavelength of green rays is 4.45 x 10^-6\n",
- "the energy of incident x-ray is 17459.62 ev. It is large when compared to binding energy of 4eV\n"
- ]
- }
- ],
- "prompt_number": 20
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 3.9, page no. 96"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "#variable declaration\n",
- "M = 1.99 * 10 ** 30 #mass of sun(kg)\n",
- "lamda = 300 *10**-9 #wavelength(m)\n",
- "Rs = 6.37 * 10 ** 6 #radius of earth(m)\n",
- "G = 6.67 * 10 ** -11 #gravitational constant(N.m^2.kg^-2)\n",
- "c = 3 * 10 ** 8 #speed of light(m/s)\n",
- "\n",
- "#calculation\n",
- "fraction = G * M / (Rs * c *c)\n",
+ "#part d\n",
+ "phi2=atan(E2*sin(theta*pi/180)/(E1-E2*cos(theta*pi/180)))\n",
"\n",
"#result\n",
- "print '%s %s %s'%(\"the shift in wavelength\",round(lamda * fraction *10**9,4),'nm')"
+ "print \"The direction of the scattered eletron in degrees is\",round(phi2*180/pi,3);"
],
"language": "python",
"metadata": {},
@@ -483,11 +282,14 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "the shift in wavelength 0.0695 nm\n"
+ "The wavelength of x-rays after scattering in nm is 0.24121\n",
+ "The energy of scattered x-rays in eV is 5140.642\n",
+ "The kinetic energy of the x-rays in eV is 26.025\n",
+ "The direction of the scattered eletron in degrees is 59.749\n"
]
}
],
- "prompt_number": 22
+ "prompt_number": 9
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter3_1.ipynb b/Modern_Physics/Chapter3_1.ipynb
new file mode 100755
index 00000000..aa39d0f9
--- /dev/null
+++ b/Modern_Physics/Chapter3_1.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The particle like properties of electromagnetic radiation"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.1 Page 69"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sin,pi\nw=0.250; theta=26.3;n=1 # n=1 for hydrogen atom and rest all are given values\n\n#calculation\nd=n*w/(2*sin(theta*pi/180)); # bragg's law\n\n#result\nprint \"Hence the atomic spacing in nm is\",round(d,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the atomic spacing in nm is 0.282\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.2 Page 73"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi,sin\nI=120.0;r=0.1*10**-9;Eev=2.3 #I-intensity in W/m^2 r in m & E in electron volt\nA=pi*r**2;K=1.6*10**-19; # A=area and K is conversion factor from ev to joules\n\n#calculation\nt= Eev*K/(I*A); #time interval\n\n#result\nprint \"The value of time interval was found out to be in sec is\",round(t,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of time interval was found out to be in sec is 0.098\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.3 Page 76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi,sin\nw=650.0*10**-9;h=6.63*10**-34;c=3*10**8; #given values and constant taken in comfortable units\n\n#calculation\nE=h*c/w; \nE1=E/(1.6*10**-19);\n\n#result\nprint \"The Energy of the electron in J \",E,\"which is equivalent to in eV is \", round(E1,3);\nprint \"The momentum of electron is p=E/c i.e is \", round(E1,3);\n\n#part b\nE2=2.40; #given energy of photon.\n\n#calculation\nw2=h*c*10**9/(E2*1.6*10**9); #converting the energy in to eV and nm \n\n#result\nprint \"The wavelength of the photon in m is\",round(w2*10**28,0)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Energy of the electron in J 3.06e-19 which is equivalent to in eV is 1.912\nThe momentum of electron is p=E/c i.e is 1.912\nThe wavelength of the photon in m is 518.0\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.4 Page 78"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nhc=1240.0; phi=4.52 #both the values are in eV\n\n#calcualtion\nw1=hc/phi; \n\n#result\nprint \"The cutoff wavelength of the tungsten metal in nm is \",round(w1,3);\n\n#part b\nw2=198.0; #given value of wavelength \n\n#calculation\nKmax=(hc/w2)-phi;\n\n#result\nprint 'The max value of kinetic energy in eV is',round(Kmax,3);\n\n#part c\nVs=Kmax;\n\n#result\nprint \"The numerical value of the max kinetic energy is same as stopping potential in volts.Hence in V is\",round(Vs,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The cutoff wavelength of the tungsten metal in fnm is 274.336\nThe max value of kinetic energy in eV is 1.743\nThe numerical value of the max kinetic energy is same as stopping potential in volts.Hence in V is 1.743\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.5 Page 80"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nT1=293.0; Kw=2.898*10**-3;\n\n#calculation\nw1=Kw/T1;\n\n#result\nprint \"The wavelength at which emits maximum radiation in um. is\",round(w1*10**6,3);\n\n#part b\nw2=650.0*10**-9; \nT2=Kw/w2;\n\n#result\nprint 'The temperature of the object must be raised to in K. is',round(T2,3);\n\n#part c\nx=(T2/T1)**4; \n\n#result\nprint \"Thus the thermal radiation at higher temperature in times the room (lower) tempertaure. is\",round(x,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The wavelength at which emits maximum radiation in um. is 9.891\nThe temperature of the object must be raised to in K. is 4458.462\nThus the thermal radiation at higher temperature in times the room (lower) tempertaure. is 53612.939\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.6 Page 82"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#part a\nfrom math import cos, sin, pi,atan\nw1=0.24;wc=0.00243;theta=60.0; #given values w=wavelength(lambeda)\n\n#calculation\nw2=w1+(wc*(1-cos(theta*pi/180))); \n\n#result\nprint \"The wavelength of x-rays after scattering in nm is\",round(w2,5);\n\n#part b;\nhc=1240;\nE2=hc/w2;E1=hc/w1; \n\n#result\nprint \"The energy of scattered x-rays in eV is\",round(E2,3);\n\n#part c\nK= E1-E2; #The kinetic energy is the difference in the energy before and after the collision;\n\nprint \"The kinetic energy of the x-rays in eV is\",round(K,3);\n\n#part d\nphi2=atan(E2*sin(theta*pi/180)/(E1-E2*cos(theta*pi/180)))\n\n#result\nprint \"The direction of the scattered eletron in degrees is\",round(phi2*180/pi,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The wavelength of x-rays after scattering in nm is 0.24121\nThe energy of scattered x-rays in eV is 5140.642\nThe kinetic energy of the x-rays in eV is 26.025\nThe direction of the scattered eletron in degrees is 59.749\n"
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter3_2.ipynb b/Modern_Physics/Chapter3_2.ipynb
new file mode 100755
index 00000000..aa39d0f9
--- /dev/null
+++ b/Modern_Physics/Chapter3_2.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The particle like properties of electromagnetic radiation"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.1 Page 69"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sin,pi\nw=0.250; theta=26.3;n=1 # n=1 for hydrogen atom and rest all are given values\n\n#calculation\nd=n*w/(2*sin(theta*pi/180)); # bragg's law\n\n#result\nprint \"Hence the atomic spacing in nm is\",round(d,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the atomic spacing in nm is 0.282\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.2 Page 73"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi,sin\nI=120.0;r=0.1*10**-9;Eev=2.3 #I-intensity in W/m^2 r in m & E in electron volt\nA=pi*r**2;K=1.6*10**-19; # A=area and K is conversion factor from ev to joules\n\n#calculation\nt= Eev*K/(I*A); #time interval\n\n#result\nprint \"The value of time interval was found out to be in sec is\",round(t,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of time interval was found out to be in sec is 0.098\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.3 Page 76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi,sin\nw=650.0*10**-9;h=6.63*10**-34;c=3*10**8; #given values and constant taken in comfortable units\n\n#calculation\nE=h*c/w; \nE1=E/(1.6*10**-19);\n\n#result\nprint \"The Energy of the electron in J \",E,\"which is equivalent to in eV is \", round(E1,3);\nprint \"The momentum of electron is p=E/c i.e is \", round(E1,3);\n\n#part b\nE2=2.40; #given energy of photon.\n\n#calculation\nw2=h*c*10**9/(E2*1.6*10**9); #converting the energy in to eV and nm \n\n#result\nprint \"The wavelength of the photon in m is\",round(w2*10**28,0)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The Energy of the electron in J 3.06e-19 which is equivalent to in eV is 1.912\nThe momentum of electron is p=E/c i.e is 1.912\nThe wavelength of the photon in m is 518.0\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.4 Page 78"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nhc=1240.0; phi=4.52 #both the values are in eV\n\n#calcualtion\nw1=hc/phi; \n\n#result\nprint \"The cutoff wavelength of the tungsten metal in nm is \",round(w1,3);\n\n#part b\nw2=198.0; #given value of wavelength \n\n#calculation\nKmax=(hc/w2)-phi;\n\n#result\nprint 'The max value of kinetic energy in eV is',round(Kmax,3);\n\n#part c\nVs=Kmax;\n\n#result\nprint \"The numerical value of the max kinetic energy is same as stopping potential in volts.Hence in V is\",round(Vs,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The cutoff wavelength of the tungsten metal in fnm is 274.336\nThe max value of kinetic energy in eV is 1.743\nThe numerical value of the max kinetic energy is same as stopping potential in volts.Hence in V is 1.743\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.5 Page 80"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nT1=293.0; Kw=2.898*10**-3;\n\n#calculation\nw1=Kw/T1;\n\n#result\nprint \"The wavelength at which emits maximum radiation in um. is\",round(w1*10**6,3);\n\n#part b\nw2=650.0*10**-9; \nT2=Kw/w2;\n\n#result\nprint 'The temperature of the object must be raised to in K. is',round(T2,3);\n\n#part c\nx=(T2/T1)**4; \n\n#result\nprint \"Thus the thermal radiation at higher temperature in times the room (lower) tempertaure. is\",round(x,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The wavelength at which emits maximum radiation in um. is 9.891\nThe temperature of the object must be raised to in K. is 4458.462\nThus the thermal radiation at higher temperature in times the room (lower) tempertaure. is 53612.939\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3.6 Page 82"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\n#part a\nfrom math import cos, sin, pi,atan\nw1=0.24;wc=0.00243;theta=60.0; #given values w=wavelength(lambeda)\n\n#calculation\nw2=w1+(wc*(1-cos(theta*pi/180))); \n\n#result\nprint \"The wavelength of x-rays after scattering in nm is\",round(w2,5);\n\n#part b;\nhc=1240;\nE2=hc/w2;E1=hc/w1; \n\n#result\nprint \"The energy of scattered x-rays in eV is\",round(E2,3);\n\n#part c\nK= E1-E2; #The kinetic energy is the difference in the energy before and after the collision;\n\nprint \"The kinetic energy of the x-rays in eV is\",round(K,3);\n\n#part d\nphi2=atan(E2*sin(theta*pi/180)/(E1-E2*cos(theta*pi/180)))\n\n#result\nprint \"The direction of the scattered eletron in degrees is\",round(phi2*180/pi,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The wavelength of x-rays after scattering in nm is 0.24121\nThe energy of scattered x-rays in eV is 5140.642\nThe kinetic energy of the x-rays in eV is 26.025\nThe direction of the scattered eletron in degrees is 59.749\n"
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter4.ipynb b/Modern_Physics/Chapter4.ipynb
index 505cc127..4ae3fd7c 100755
--- a/Modern_Physics/Chapter4.ipynb
+++ b/Modern_Physics/Chapter4.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:fcebe7a1b857b1b190100018ff76ede788e3c249d5181d4bebb1457ad5175559"
+ "name": "Chapter4"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 4: The Particle Nature of Matter"
+ "Chapter 4:The Wave Like Properties of Particles"
]
},
{
@@ -21,31 +20,36 @@
"level": 2,
"metadata": {},
"source": [
- "Example 4.1, page no. 109"
+ "Example 4.1 Page 101"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "h=6.6*10**-34; # h(planck's constant)= 6.6*10^-34 \n",
+ "m1= 10.0**3;v1=100.0; # for automobile\n",
+ "\n",
+ "#calculation\n",
+ "w1= h/(m1*v1); # ['w'-wavelength in metre'm'-mass in Kg 'v'-velocity in metres/sec.] of the particles \n",
+ "m2=10.0*(10**-3);v2= 500; # for bullet\n",
+ "w2=h/(m2*v2);\n",
+ "m3=(10.0**-9)*(10.0**-3); v3=1.0*10**-2;\n",
+ "w3=h/(m3*v3);\n",
+ "m4=9.1*10**-31;k=1*1.6*10**-19; # k- kinetic energy of the electron & using 1ev = 1.6*10^-19 joule\n",
+ "p=sqrt(2.0*m4*k); # p=momentum of electron ;from K=1/2*m*v^2\n",
+ "w4=h/p;\n",
+ "hc=1240;pc=100 # In the extreme relativistc realm, K=E=pc; Given pc=100MeV,hc=1240MeV \n",
+ "w5= hc/pc;\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "I = 10.0 #current (A)\n",
- "t = 3600 #time (s)\n",
- "molar_mass_Ba = 137 #molar mass of Barium (g)\n",
- "valence_Ba = 2 #valence of Barium\n",
- "molar_mass_Cl = 35.5 #molar mass of chlorine(g)\n",
- "valence_Cl = 1 #valence of chlorine\n",
- "\n",
- "#Calculation\n",
- "\n",
- "mBa = I * t * molar_mass_Ba /(96500 * valence_Ba)\n",
- "mCl = I * t * molar_mass_Cl /(96500 * valence_Cl)\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The mass of Barium and Chlorine obtained is \",round(mBa,1),\"g\",round(mCl,1),\"g respectively.\""
+ "#result\n",
+ "print \"Wavelength of the automobile in m is\",w1;\n",
+ "print \"Wavelength of the bullet in m is \",w2 ;\n",
+ "print\"Wavelength of the smoke particle in m is\",w3 ;\n",
+ "print \"Wavelength of the electron(1ev) in nm is\",round(w4*10**9,3) ;\n",
+ "print \"Wavelength of the electron (100Mev) in fm is\",w5;"
],
"language": "python",
"metadata": {},
@@ -54,45 +58,40 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The mass of Barium and Chlorine obtained is 25.6 g 13.2 g respectively.\n"
+ "Wavelength of the automobile in m is 6.6e-39\n",
+ "Wavelength of the bullet in m is 1.32e-34\n",
+ "Wavelength of the smoke particle in m is 6.6e-20\n",
+ "Wavelength of the electron(1ev) in nm is 1.223\n",
+ "Wavelength of the electron (100Mev) in fm is 12\n"
]
}
],
- "prompt_number": 2
+ "prompt_number": 3
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 4.2, page no. 113"
+ "Example 4.2 Page 113"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "# w=wavelength; consider k=2*(pi/w); \n",
+ "# differentiate k w.r.t w and replace del(k)/del(w) = 1 for equation.4.3\n",
+ "# which gives del(w)= w^2 /(2*pi*del(x)), hence \n",
+ "w=20; delx=200; # delx=200cm and w=20cm\n",
"\n",
+ "#calculation\n",
+ "delw=(w**2)/(delx*2*pi);\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "V = 200 #voltage (V)\n",
- "theta = 0.20 #deflection (rad)\n",
- "l = 0.05 #length (m)\n",
- "d = 0.015 #spacing (m)\n",
- "e_by_me = 1.76 * 10 **11 #e/me (C/kg)\n",
- "B_earth = 0.5 * 10**-4 #earth's magnetic field (T)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "B = math.sqrt(V * theta /(l * d * e_by_me))\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The magnetic field required to produce the deflection is\",round(B/10**-4,1),\"X 10^-4 T\"\n",
- "print \" The earth's magnetic field is \",B_earth,\"T so we require\",round(B/B_earth),\"times stronger field.\""
+ "#result\n",
+ "print \"Hence uncertainity in length in cm is\",round(delw,3);"
],
"language": "python",
"metadata": {},
@@ -101,8 +100,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The magnetic field required to produce the deflection is 5.5 X 10^-4 T\n",
- " The earth's magnetic field is 5e-05 T so we require 11.0 times stronger field.\n"
+ "Hence uncertainity in length is in cm 0.318\n"
]
}
],
@@ -113,68 +111,25 @@
"level": 2,
"metadata": {},
"source": [
- "Example 4.3, page no. 117"
+ "Example 4.3 Page 114"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "delt=1.0; #consider time interval of 1 sec\n",
+ "delw=1/delt; # since delw*delt =1 from equation 4.4\n",
+ "delf=0.01 #calculated accuracy is 0.01Hz\n",
"\n",
- "import math\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "dy = 0.006 #distance of rise or fall (m)\n",
- "dt = 21.0 #average time of fall (s)\n",
- "n = 1.83 * 10 **-5 #viscosity of air (kg/ms)\n",
- "p = 858 #oil density (kg/m^3)\n",
- "g = 9.81 #acceleration due to gravity (m/s^2)\n",
- "\n",
- "#Calculation\n",
+ "#calculation\n",
+ "delwc =2*pi*delf # delwc-claimed accuracy from w=2*pi*f\n",
"\n",
- "v = dy/dt\n",
- "a = math.sqrt(9*n*v/(2*p*g))\n",
- "V = 4*math.pi*a**3/3\n",
- "m = p * V\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The radius,volume and mass of the drop are\",round(a/10**-6,2),\"X10^-6 m,\",round(V/10**-17,2),\"X10^-17 m^3,\",round(m/10**-14,2),\"X10^-14 kg\"\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "Vt = 4550 #potential difference (V)\n",
- "d = 0.0160 #plate separation (m)\n",
- "#successive rise times(s)\n",
- "dt1 = 46.0\n",
- "dt2 = 15.5\n",
- "dt3 = 28.1\n",
- "dt4 = 12.9\n",
- "dt5 = 45.3\n",
- "dt6 = 20.0\n",
- "\n",
- "#Calculation\n",
- "\n",
- "E = Vt/d #Electric field\n",
- "v1 = dy / dt1\n",
- "v2 = dy / dt2\n",
- "v3 = dy / dt3\n",
- "v4 = dy / dt4\n",
- "v5 = dy / dt5\n",
- "v6 = dy / dt6\n",
- "q1 = (m*g/E)*((v+v1)/v)\n",
- "q2 = (m*g/E)*((v+v2)/v)\n",
- "q3 = (m*g/E)*((v+v3)/v)\n",
- "q4 = (m*g/E)*((v+v4)/v)\n",
- "q5 = (m*g/E)*((v+v5)/v)\n",
- "q6 = (m*g/E)*((v+v6)/v)\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The successive charges on the drop is as follows \\n q1 =\",round(q1/10**-19,2),\"X 10^-19 C \\n q2 = \",round(q2/10**-19,2),\"X 10^-19 C \\n q3 = \",round(q3/10**-19,2),\"X 10^-19 C \\n q4 = \",round(q4/10**-19,2),\"X 10^-19 C \\n q5 = \",round(q5/10**-19,2),\"X 10^-19 C \\n q6 = \",round(q6/10**-19,2),\"X 10^-19 C\""
+ "#result\n",
+ "print \"The minimum uncertainity calculated is 1rad/sec. The claimed accuracy in rad/sec is \\n\",round(delwc,3);\n",
+ "print \"thus there is a reason to doubt the claim\"\n"
],
"language": "python",
"metadata": {},
@@ -183,46 +138,39 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The radius,volume and mass of the drop are 1.67 X10^-6 m, 1.96 X10^-17 m^3, 1.68 X10^-14 kg\n",
- "The successive charges on the drop is as follows \n",
- " q1 = 8.44 X 10^-19 C \n",
- " q2 = 13.65 X 10^-19 C \n",
- " q3 = 10.12 X 10^-19 C \n",
- " q4 = 15.23 X 10^-19 C \n",
- " q5 = 8.48 X 10^-19 C \n",
- " q6 = 11.88 X 10^-19 C\n"
+ "The minimum uncertainity calculated is 1rad/sec. The claimed accuracy is in rad/sec\n",
+ "0.063\n",
+ "thus there is a reason to doubt the claim\n"
]
}
],
- "prompt_number": 16
+ "prompt_number": 6
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 4.4, page no. 121"
+ "Example 4.4 Page 115"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "ma_by_mp = 4.0 #as alpha has 2 protons and 2 neutrons\n",
- "\n",
- "#Calculation\n",
- "\n",
- "vp = (2*ma_by_mp/(ma_by_mp+1))\n",
- "va1 = (ma_by_mp -1)/(ma_by_mp + 1)\n",
- "change = (va1 - 1)*100\n",
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "m=9.11*10**-31;v=3.6*10**6; #'m','v' - mass an velocity of the electron in SI units\n",
+ "h=1.05*10**-34; #planck's constant in SI\n",
+ "p=m*v; #momentum\n",
+ "delp=p*0.01; #due to 1% precision in p\n",
+ "delx = h/delp; #uncertainity in position\n",
"\n",
"#result\n",
+ "print \"Uncertainty in position in nm is\",round(delx*10**9,2);\n",
"\n",
- "print \"The percentage change in the velocity of alpha particle is\",change,\"%\""
+ "#partb\n",
+ "print \"Since the motion is strictly along X-direction, its velocity in Y direction is absolutely zero.\\n So uncertainity in velocity along y is zero=> uncertainity in position along y is infinite. \\nSo nothing can be said about its position/motion along \""
],
"language": "python",
"metadata": {},
@@ -231,39 +179,42 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The percentage change in the velocity of alpha particle is -40.0 %\n"
+ "Uncertainity in position in nm is 3.2\n",
+ "Since the motion is strictly along X-direction, its velocity in Y direction is absolutely zero.\n",
+ " So uncertainity in velocity along y is zero=> uncertainity in position along y is infinite. \n",
+ "So nothing can be said about its position/motion along \n"
]
}
],
- "prompt_number": 18
+ "prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 4.5, page no. 124"
+ "Example 4.5 Page 116"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "m=0.145;v=42.5; #'m','v' - mass an velocity of the electron in SI units\n",
+ "h=1.05*10**-34; #planck's constant in SI\n",
+ "p=m*v; #momentum\n",
+ "delp=p*0.01;#due to 1% precision in p\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "e = 1.6 * 10 ** -19 #Charge of electron (C)\n",
- "Z = 13\n",
- "k = 8.99 * 10 ** 9 #(Nm^2/C^2)\n",
- "Ka = 7.7 * 10 ** 6 * e #potential energy at closest approach(J)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "dmin = k * 2 * Z * e ** 2/Ka\n",
+ "#calculation\n",
+ "delx = h/delp#uncertainty in position\n",
"\n",
"#result\n",
+ "print \"Uncertainity in position is %.1e\" %delx;\n",
"\n",
- "print \"The radius of the aluminum nucleus is\",round(dmin/10**-15,1),\"X 10^-15 m.\""
+ "#part b\n",
+ "print \"Motion along y is unpredictable as long as the velocity along y is exactly known(as zero).\";"
],
"language": "python",
"metadata": {},
@@ -272,54 +223,40 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The radius of the aluminum nucleus is 4.9 X 10^-15 m.\n"
+ "Uncertainity in position is 1.7e-33\n",
+ "Motion along y is unpredictable as long as the veloity along y is exactly known(as zero).\n"
]
}
],
- "prompt_number": 20
+ "prompt_number": 5
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 4.7, page no. 135"
+ "Example 4.7 Page 119"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "mc2=2.15*10**-4; #mc2 is the mass of the electron, concidered in Mev for the simplicity in calculations\n",
+ "hc=197.0 # The value of h*c in Mev.fm for simplicity\n",
+ "delx= 10.0 # Given uncertainty in position=diameter of nucleus= 10 fm\n",
+ "\n",
+ "#calculation\n",
+ "delp= hc/delx ; #Uncertainty in momentum per unit 'c' i.e (Mev/c) delp= h/delx =(h*c)/(c*delx);hc=197 Mev.fm 1Mev=1.6*10^-13 Joules')\n",
+ "p=delp; # Equating delp to p as a consequence of equation 4.10\n",
+ "K1=p**2+mc2**2 # The following 3 steps are the steps invlolved in calculating K.E= sqrt((p*c)^2 + (mc^2)^2)- m*c^2\n",
+ "K1=sqrt(K1)\n",
+ "K1= K1-(mc2);\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "R = 1.097 * 10**7 #Rydberg constant(m^-1) \n",
- "nf = 1.0 #energy state\n",
- "ni = 2.0 #energy state\n",
- "c = 3 * 10 ** 8 #speed of light (m/s)\n",
- "h = 4.136 * 10 ** -15 #Planck's constant (eV.s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = (R * ((1/nf**2) - (1/ni**2))) ** -1\n",
- "f = c / lamda\n",
- "E = h * f\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The wavelength of the emitted photon is\",round(lamda/10**-9,2),\"nm and frequency is\",round(f/10**15,2),\"X 10^15 Hz and energy is\",round(E,1),\"eV\"\n",
- "\n",
- "\n",
- "#Variable declarartion\n",
- "mc2 = 938.8 * 10 ** 6 #m*c^2 of hydrogen atom(eV)\n",
- "#Calculation\n",
- "\n",
- "p = E / c\n",
- "K = 0.5 * E**2 /mc2\n",
- "\n",
- "#results\n",
- "\n",
- "print \"The momentum of the recoiling hydrogen atom is \",round(p*c,1),\"eV/c and the energy is\",round(K/10**-8,2),\"X 10^-8 eV.\""
+ "#result\n",
+ "print \"Kinetic energy was found out to be in Mev is\", round(K1,3)"
],
"language": "python",
"metadata": {},
@@ -328,59 +265,39 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The wavelength of the emitted photon is 121.54 nm and frequency is 2.47 X 10^15 Hz and energy is 10.2 eV\n",
- "The momentum of the recoiling hydrogen atom is 10.2 eV/c and the energy is 5.55 X 10^-8 eV.\n"
+ "Kinetic energy was found out to be in Mev 19.7\n"
]
}
],
- "prompt_number": 22
+ "prompt_number": 14
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 4.8, page no. 136"
+ "Example 4.8 Page 120"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "h=6.58*10**-16; # plack's constant\n",
+ "delt1=26.0*10**-9;E1=140.0*10**6 #given values of lifetime and rest energy of charged pi meson\n",
+ "delt2=8.3*10**-17;E2=135.0*10**6; #given values of lifetime and rest energy of uncharged pi meson\n",
+ "delt3=4.4*10**-24;E3=765*10**6; #given values of lifetime and rest energy of rho meson\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "R = 1.097 * 10**7 #Rydberg constant(m^-1) \n",
- "nf = 2.0 #energy state\n",
- "ni = 3.0 #energy state\n",
- "c = 3 * 10 ** 8 #speed of light (m/s)\n",
- "h = 4.136 * 10 ** -15 #Planck's constant (eV.s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = (R * ((1/nf**2) - (1/ni**2))) ** -1\n",
- "f = c / lamda\n",
- "E = h * f\n",
+ "#calculation\n",
+ "delE1=h/delt1; k1=delE1/E1; # k is the measure of uncertainity\n",
+ "delE2=h/delt2; k2=delE2/E2;\n",
+ "delE3=h/delt3; k3=delE3/E3;\n",
"\n",
- "#Results\n",
- "\n",
- "print \"The longest-wavelength photon in the Balmer series is\",round(lamda/10**-9,2),\"nm and frequency is\",round(f/10**15,2),\"X 10^15 Hz and energy is\",round(E,2),\"eV\"\n",
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "R = 1.097 * 10**7 #Rydberg constant(m^-1) \n",
- "nf = 2.0 #energy state\n",
- "c = 3 * 10 ** 8 #speed of light (m/s)\n",
- "h = 4.136 * 10 ** -15 #Planck's constant (eV.s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = (R * (1/nf**2)) ** -1\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The shortest-wavelength photon emitted in the Balmer series is\",round(lamda/10**-9,2),\"nm.\""
+ "#result\n",
+ "print \"Uncertainty in energy of charged pi meson is %.1e\" %k1;\n",
+ "print \"Uncertainty in energy of uncharged pi meson is %.1e\" %k2;\n",
+ "print \"Uncertainty in energy of rho meson is \",round(k3,2);"
],
"language": "python",
"metadata": {},
@@ -389,43 +306,37 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The longest-wavelength photon in the Balmer series is 656.34 nm and frequency is 0.46 X 10^15 Hz and energy is 1.89 eV\n",
- "The shortest-wavelength photon emitted in the Balmer series is 364.63 nm.\n"
+ "Uncertainity in energy of charged pi meson is 1.8e-16\n",
+ "Uncertainity in energy of uncharged pi meson is 5.9e-08\n",
+ "Uncertainity in energy of rho meson is 0.2\n"
]
}
],
- "prompt_number": 24
+ "prompt_number": 9
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 4.9, page no. 137"
+ "Example 4.9 Page 121"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "h=1.05*10**-34; #value of planck's constant in J.sec\n",
+ "delx= 1.0; # uncertainty in positon= dimension of the ball\n",
+ "delp=h/delx; # uncertainty in momentum \n",
+ "m=0.1; #mass of the ball in kg\n",
"\n",
+ "#calculation\n",
+ "delv=delp/m; # uncertainty in velocity\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "E = 10.2 #average thermal energy per atom(eV)\n",
- "kB =8.62 * 10**-5 #Boltzmann constant (eV/K)\n",
- "N2_by_N1 = 0.10 #N2/N1\n",
- "\n",
- "#Calculation\n",
- "\n",
- "T1 = E /((3.0/2.0)* kB)\n",
- "T2 = -E/(kB * math.log(N2_by_N1))\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The temperature is \",round(T1),\"K and by Boltzmann distribution the temperature is\",round(T2),\"K.\""
+ "#result\n",
+ "print \"The value of minimum velocity was found out to be in m/sec\",delv;"
],
"language": "python",
"metadata": {},
@@ -434,11 +345,11 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The temperature is 78886.0 K and by Boltzmann distribution the temperature is 51390.0 K.\n"
+ "The value of minimum velocity was found out to be in m/sec 1.05e-33\n"
]
}
],
- "prompt_number": 26
+ "prompt_number": 17
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter4_1.ipynb b/Modern_Physics/Chapter4_1.ipynb
new file mode 100755
index 00000000..55a7ca03
--- /dev/null
+++ b/Modern_Physics/Chapter4_1.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "MP-4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Wave Like Properties of Particles"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.1 Page 101"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nh=6.6*10**-34; # h(planck's constant)= 6.6*10^-34 \nm1= 10.0**3;v1=100.0; # for automobile\n\n#calculation\nw1= h/(m1*v1); # ['w'-wavelength in metre'm'-mass in Kg 'v'-velocity in metres/sec.] of the particles \nm2=10.0*(10**-3);v2= 500; # for bullet\nw2=h/(m2*v2);\nm3=(10.0**-9)*(10.0**-3); v3=1.0*10**-2;\nw3=h/(m3*v3);\nm4=9.1*10**-31;k=1*1.6*10**-19; # k- kinetic energy of the electron & using 1ev = 1.6*10^-19 joule\np=sqrt(2.0*m4*k); # p=momentum of electron ;from K=1/2*m*v^2\nw4=h/p;\nhc=1240;pc=100 # In the extreme relativistc realm, K=E=pc; Given pc=100MeV,hc=1240MeV \nw5= hc/pc;\n\n#result\nprint \"Wavelength of the automobile in m is\",w1;\nprint \"Wavelength of the bullet in m is \",w2 ;\nprint\"Wavelength of the smoke particle in m is\",w3 ;\nprint \"Wavelength of the electron(1ev) in nm is\",round(w4*10**9,3) ;\nprint \"Wavelength of the electron (100Mev) in fm is\",w5;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of the automobile in m is 6.6e-39\nWavelength of the bullet in m is 1.32e-34\nWavelength of the smoke particle in m is 6.6e-20\nWavelength of the electron(1ev) in nm is 1.223\nWavelength of the electron (100Mev) in fm is 12\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.2 Page 113"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\n# w=wavelength; consider k=2*(pi/w); \n# differentiate k w.r.t w and replace del(k)/del(w) = 1 for equation.4.3\n# which gives del(w)= w^2 /(2*pi*del(x)), hence \nw=20; delx=200; # delx=200cm and w=20cm\n\n#calculation\ndelw=(w**2)/(delx*2*pi);\n\n#result\nprint \"Hence uncertainity in length in cm is\",round(delw,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence uncertainity in length is in cm 0.318\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.3 Page 114"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\ndelt=1.0; #consider time interval of 1 sec\ndelw=1/delt; # since delw*delt =1 from equation 4.4\ndelf=0.01 #calculated accuracy is 0.01Hz\n\n#calculation\ndelwc =2*pi*delf # delwc-claimed accuracy from w=2*pi*f\n\n#result\nprint \"The minimum uncertainity calculated is 1rad/sec. The claimed accuracy in rad/sec is \\n\",round(delwc,3);\nprint \"thus there is a reason to doubt the claim\"\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The minimum uncertainity calculated is 1rad/sec. The claimed accuracy is in rad/sec\n0.063\nthus there is a reason to doubt the claim\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.4 Page 115"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\nm=9.11*10**-31;v=3.6*10**6; #'m','v' - mass an velocity of the electron in SI units\nh=1.05*10**-34; #planck's constant in SI\np=m*v; #momentum\ndelp=p*0.01; #due to 1% precision in p\ndelx = h/delp; #uncertainity in position\n\n#result\nprint \"Uncertainity in position in nm is\",round(delx*10**9,2);\n\n#partb\nprint \"Since the motion is strictly along X-direction, its velocity in Y direction is absolutely zero.\\n So uncertainity in velocity along y is zero=> uncertainity in position along y is infinite. \\nSo nothing can be said about its position/motion along \"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Uncertainity in position in nm is 3.2\nSince the motion is strictly along X-direction, its velocity in Y direction is absolutely zero.\n So uncertainity in velocity along y is zero=> uncertainity in position along y is infinite. \nSo nothing can be said about its position/motion along \n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.5 Page 116"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\nm=0.145;v=42.5; #'m','v' - mass an velocity of the electron in SI units\nh=1.05*10**-34; #planck's constant in SI\np=m*v; #momentum\ndelp=p*0.01;#due to 1% precision in p\n\n#calculation\ndelx = h/delp#uncertainity in position\n\n#result\nprint \"Uncertainity in position is %.1e\" %delx;\n\n#part b\nprint \"Motion along y is unpredictable as long as the veloity along y is exactly known(as zero).\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Uncertainity in position is 1.7e-33\nMotion along y is unpredictable as long as the veloity along y is exactly known(as zero).\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.7 Page 119"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nmc2=2.15*10**-4; #mc2 is the mass of the electron, concidered in Mev for the simplicity in calculations\nhc=197.0 # The value of h*c in Mev.fm for simplicity\ndelx= 10.0 # Given uncertainity in position=diameter of nucleus= 10 fm\n\n#calculation\ndelp= hc/delx ; #Uncertainiy in momentum per unit 'c' i.e (Mev/c) delp= h/delx =(h*c)/(c*delx);hc=197 Mev.fm 1Mev=1.6*10^-13 Joules')\np=delp; # Equating delp to p as a consequence of equation 4.10\nK1=p**2+mc2**2 # The following 3 steps are the steps invlolved in calculating K.E= sqrt((p*c)^2 + (mc^2)^2)- m*c^2\nK1=sqrt(K1)\nK1= K1-(mc2);\n\n#result\nprint \"Kinetic energy was found out to be in Mev is\", round(K1,3)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Kinetic energy was found out to be in Mev 19.7\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.8 Page 120"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nh=6.58*10**-16; # plack's constant\ndelt1=26.0*10**-9;E1=140.0*10**6 #given values of lifetime and rest energy of charged pi meson\ndelt2=8.3*10**-17;E2=135.0*10**6; #given values of lifetime and rest energy of uncharged pi meson\ndelt3=4.4*10**-24;E3=765*10**6; #given values of lifetime and rest energy of rho meson\n\n#calculation\ndelE1=h/delt1; k1=delE1/E1; # k is the measure of uncertainity\ndelE2=h/delt2; k2=delE2/E2;\ndelE3=h/delt3; k3=delE3/E3;\n\n#result\nprint \"Uncertainity in energy of charged pi meson is %.1e\" %k1;\nprint \"Uncertainity in energy of uncharged pi meson is %.1e\" %k2;\nprint \"Uncertainity in energy of rho meson is \",round(k3,2);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Uncertainity in energy of charged pi meson is 1.8e-16\nUncertainity in energy of uncharged pi meson is 5.9e-08\nUncertainity in energy of rho meson is 0.2\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.9 Page 121"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nh=1.05*10**-34; #value of planck's constant in J.sec\ndelx= 1.0; # uncertainity in positon= dimension of the ball\ndelp=h/delx; # uncertainity in momentum \nm=0.1; #mass of the ball in kg\n\n#calculation\ndelv=delp/m; # uncertainity in velocity\n\n#result\nprint \"The value of minimum velocity was found out to be in m/sec\",delv;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of minimum velocity was found out to be in m/sec 1.05e-33\n"
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter4_2.ipynb b/Modern_Physics/Chapter4_2.ipynb
new file mode 100755
index 00000000..55a7ca03
--- /dev/null
+++ b/Modern_Physics/Chapter4_2.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "MP-4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Wave Like Properties of Particles"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.1 Page 101"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nh=6.6*10**-34; # h(planck's constant)= 6.6*10^-34 \nm1= 10.0**3;v1=100.0; # for automobile\n\n#calculation\nw1= h/(m1*v1); # ['w'-wavelength in metre'm'-mass in Kg 'v'-velocity in metres/sec.] of the particles \nm2=10.0*(10**-3);v2= 500; # for bullet\nw2=h/(m2*v2);\nm3=(10.0**-9)*(10.0**-3); v3=1.0*10**-2;\nw3=h/(m3*v3);\nm4=9.1*10**-31;k=1*1.6*10**-19; # k- kinetic energy of the electron & using 1ev = 1.6*10^-19 joule\np=sqrt(2.0*m4*k); # p=momentum of electron ;from K=1/2*m*v^2\nw4=h/p;\nhc=1240;pc=100 # In the extreme relativistc realm, K=E=pc; Given pc=100MeV,hc=1240MeV \nw5= hc/pc;\n\n#result\nprint \"Wavelength of the automobile in m is\",w1;\nprint \"Wavelength of the bullet in m is \",w2 ;\nprint\"Wavelength of the smoke particle in m is\",w3 ;\nprint \"Wavelength of the electron(1ev) in nm is\",round(w4*10**9,3) ;\nprint \"Wavelength of the electron (100Mev) in fm is\",w5;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of the automobile in m is 6.6e-39\nWavelength of the bullet in m is 1.32e-34\nWavelength of the smoke particle in m is 6.6e-20\nWavelength of the electron(1ev) in nm is 1.223\nWavelength of the electron (100Mev) in fm is 12\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.2 Page 113"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\n# w=wavelength; consider k=2*(pi/w); \n# differentiate k w.r.t w and replace del(k)/del(w) = 1 for equation.4.3\n# which gives del(w)= w^2 /(2*pi*del(x)), hence \nw=20; delx=200; # delx=200cm and w=20cm\n\n#calculation\ndelw=(w**2)/(delx*2*pi);\n\n#result\nprint \"Hence uncertainity in length in cm is\",round(delw,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence uncertainity in length is in cm 0.318\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.3 Page 114"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\ndelt=1.0; #consider time interval of 1 sec\ndelw=1/delt; # since delw*delt =1 from equation 4.4\ndelf=0.01 #calculated accuracy is 0.01Hz\n\n#calculation\ndelwc =2*pi*delf # delwc-claimed accuracy from w=2*pi*f\n\n#result\nprint \"The minimum uncertainity calculated is 1rad/sec. The claimed accuracy in rad/sec is \\n\",round(delwc,3);\nprint \"thus there is a reason to doubt the claim\"\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The minimum uncertainity calculated is 1rad/sec. The claimed accuracy is in rad/sec\n0.063\nthus there is a reason to doubt the claim\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.4 Page 115"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\nm=9.11*10**-31;v=3.6*10**6; #'m','v' - mass an velocity of the electron in SI units\nh=1.05*10**-34; #planck's constant in SI\np=m*v; #momentum\ndelp=p*0.01; #due to 1% precision in p\ndelx = h/delp; #uncertainity in position\n\n#result\nprint \"Uncertainity in position in nm is\",round(delx*10**9,2);\n\n#partb\nprint \"Since the motion is strictly along X-direction, its velocity in Y direction is absolutely zero.\\n So uncertainity in velocity along y is zero=> uncertainity in position along y is infinite. \\nSo nothing can be said about its position/motion along \"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Uncertainity in position in nm is 3.2\nSince the motion is strictly along X-direction, its velocity in Y direction is absolutely zero.\n So uncertainity in velocity along y is zero=> uncertainity in position along y is infinite. \nSo nothing can be said about its position/motion along \n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.5 Page 116"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\nm=0.145;v=42.5; #'m','v' - mass an velocity of the electron in SI units\nh=1.05*10**-34; #planck's constant in SI\np=m*v; #momentum\ndelp=p*0.01;#due to 1% precision in p\n\n#calculation\ndelx = h/delp#uncertainity in position\n\n#result\nprint \"Uncertainity in position is %.1e\" %delx;\n\n#part b\nprint \"Motion along y is unpredictable as long as the veloity along y is exactly known(as zero).\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Uncertainity in position is 1.7e-33\nMotion along y is unpredictable as long as the veloity along y is exactly known(as zero).\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.7 Page 119"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nmc2=2.15*10**-4; #mc2 is the mass of the electron, concidered in Mev for the simplicity in calculations\nhc=197.0 # The value of h*c in Mev.fm for simplicity\ndelx= 10.0 # Given uncertainity in position=diameter of nucleus= 10 fm\n\n#calculation\ndelp= hc/delx ; #Uncertainiy in momentum per unit 'c' i.e (Mev/c) delp= h/delx =(h*c)/(c*delx);hc=197 Mev.fm 1Mev=1.6*10^-13 Joules')\np=delp; # Equating delp to p as a consequence of equation 4.10\nK1=p**2+mc2**2 # The following 3 steps are the steps invlolved in calculating K.E= sqrt((p*c)^2 + (mc^2)^2)- m*c^2\nK1=sqrt(K1)\nK1= K1-(mc2);\n\n#result\nprint \"Kinetic energy was found out to be in Mev is\", round(K1,3)",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Kinetic energy was found out to be in Mev 19.7\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.8 Page 120"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nh=6.58*10**-16; # plack's constant\ndelt1=26.0*10**-9;E1=140.0*10**6 #given values of lifetime and rest energy of charged pi meson\ndelt2=8.3*10**-17;E2=135.0*10**6; #given values of lifetime and rest energy of uncharged pi meson\ndelt3=4.4*10**-24;E3=765*10**6; #given values of lifetime and rest energy of rho meson\n\n#calculation\ndelE1=h/delt1; k1=delE1/E1; # k is the measure of uncertainity\ndelE2=h/delt2; k2=delE2/E2;\ndelE3=h/delt3; k3=delE3/E3;\n\n#result\nprint \"Uncertainity in energy of charged pi meson is %.1e\" %k1;\nprint \"Uncertainity in energy of uncharged pi meson is %.1e\" %k2;\nprint \"Uncertainity in energy of rho meson is \",round(k3,2);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Uncertainity in energy of charged pi meson is 1.8e-16\nUncertainity in energy of uncharged pi meson is 5.9e-08\nUncertainity in energy of rho meson is 0.2\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4.9 Page 121"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nh=1.05*10**-34; #value of planck's constant in J.sec\ndelx= 1.0; # uncertainity in positon= dimension of the ball\ndelp=h/delx; # uncertainity in momentum \nm=0.1; #mass of the ball in kg\n\n#calculation\ndelv=delp/m; # uncertainity in velocity\n\n#result\nprint \"The value of minimum velocity was found out to be in m/sec\",delv;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of minimum velocity was found out to be in m/sec 1.05e-33\n"
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter5.ipynb b/Modern_Physics/Chapter5.ipynb
index 175eed34..331dc531 100755
--- a/Modern_Physics/Chapter5.ipynb
+++ b/Modern_Physics/Chapter5.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:e257dccb197e3cab0c059eb9e1d236e5359e2a825fc6be941cab77026f236087"
+ "name": "Chapter5"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -10,10 +9,10 @@
"cells": [
{
"cell_type": "heading",
- "level": 2,
+ "level": 1,
"metadata": {},
"source": [
- "Chapter 5: Matter Waves"
+ "Chapter 5: The Schrodinger Equation"
]
},
{
@@ -21,203 +20,44 @@
"level": 2,
"metadata": {},
"source": [
- "Example 5.1, page no. 154"
+ "Example 5.2 Page 150"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "h = 6.63 * 10 ** -34 #Planck's constant (J.s)\n",
- "m = 0.14 #mass of the baseball (kg)\n",
- "v = 27.0 #speed of the baseball (m/s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = h / (m * v)\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The de Broglie wavelength of the baseball is\",round(lamda/10**-34,2),\"X 10^-34 m.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The de Broglie wavelength of the baseball is 1.75 X 10^-34 m.\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5.2, page no. 154"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
+ "#initiation of variable\n",
+ "#parta\n",
+ "from math import pi, sin\n",
"import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "h = 6.63 * 10 ** -34 #Planck's constant (J.s)\n",
- "me = 9.11 * 10 ** -31 #mass of electron (kg)\n",
- "q = 1.6 * 10 ** -19 #charge of electron (C)\n",
- "V = 50 #potential difference (V)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "lamda = h / math.sqrt(2*me*q*V)\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The de Broglie wavelength of electron is\",round(lamda/10 ** -10,1),\"X 10^-10 m.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The de Broglie wavelength of electron is 1.7 X 10^-10 m.\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5.3, page no. 158"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "h = 6.63 * 10 ** -34 #Planck's constant (J.s)\n",
- "lamda = 1.0 * 10 ** -10 #de Broglie wavelength of the neutron (m)\n",
- "mn = 1.66 * 10**-27 #mass of neutrons (kg)\n",
- "e = 1.602 * 10 **-19 #charge of electron(C)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "p = h / lamda\n",
- "K = p**2/(2*mn)\n",
+ "from scipy import integrate\n",
+ "h=1.05*10**-34;m=9.11*10**-31;L=10.0**-10; # all the values are taken in SI units\n",
+ "E1=h**2*pi**2/(2*m*L**2); E2=4*E1; #Energies are calculated\n",
+ "delE=(E2-E1)/(1.6*10**-19); #Difference in energy is converted to eV\n",
"\n",
"#result\n",
+ "print \"Energy to be supplied in eV. is \",round(delE,3);\n",
"\n",
- "print \"The kinetic energy is\",round(K/e,4),\"eV.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The kinetic energy is 0.0826 eV.\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5.8, page no. 177"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "#Variable Declaration\n",
- "\n",
- "h = 1.05 * 10 ** -34 #(J.s)\n",
- "dx = 15 #length of the room (m)\n",
- "m = 0.1 #mass of the ball (kg)\n",
- "vx = 2.0 #velocity of the ball (m/s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "dpx = h /( 2* dx)\n",
- "dvx = dpx /m\n",
- "uncertainity = dvx/vx\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The relative uncertainty is\",round(uncertainity/10**-35,1),\"X 10^-35 which is not measurable.\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The relative uncertainty is 1.8 X 10^-35 which is not measurable.\n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5.9, page no. 178"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "import math\n",
+ "#partb\n",
+ "x1=0.09*10**-10;x2=0.11*10**-10 #limits of the given region\n",
+ "def integrand(x,L):\n",
+ " return 2.0/L*(sin(pi*x/L))**2\n",
"\n",
- "#Variable declaration\n",
+ "probGnd=integrate.quad(integrand,x1,x2,args=(L))\n",
"\n",
- "h = 6.58 * 10 ** -16 #(eV.s)\n",
- "dx = 1.0 * 10 ** -14 / 2.0 # dx is half the length of confinement (m)\n",
- "c = 3.00 * 10 ** 8 #speed of light (m/s)\n",
- "me = 9.11 * 10 ** -31 # mass of electron (kg)\n",
- "e = 1.6 * 10 ** -19 #charge of electron (C)\n",
+ "#result\n",
+ "print \"The percentage probability of finding an electron in the ground state is \\n\",round(probGnd[0]*100,3);\n",
"\n",
- "#Calculation\n",
+ "#partc\n",
+ "k1=0.0;k2=0.25*10**-10;\n",
+ "def integrand(k,L):\n",
+ " return 2.0/L*(sin(2*pi*k/L))**2\n",
"\n",
- "dpx = h * c / (2 * dx)\n",
- "E = math.sqrt(dpx**2 + (me * c**2/e)**2)\n",
- "K = E - (me * c**2/e)\n",
+ "probExc=integrate.quad(integrand,k1,k2,args=(L))\n",
"\n",
"#result\n",
- "\n",
- "print \"The kinetic energy of an intranuclear electron is\",round(K/10**6,2),\"MeV.\""
+ "print \"The probability of finding an electron in the excited state is\",round(probExc[0],3);"
],
"language": "python",
"metadata": {},
@@ -226,67 +66,22 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The kinetic energy of an intranuclear electron is 19.23 MeV.\n"
+ " Energy to be supplied in eV. is 111.978\n",
+ "The percentage probablility of finding an electron in the ground state is \n",
+ "0.383\n",
+ "The probablility of finding an electron in the excited state is 0.25\n"
]
}
],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "Example 5.10, page no. 178"
- ]
+ "prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
- "input": [
- "\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "dt = 1.0 * 10 ** -8 #lifetime (s)\n",
- "\n",
- "#calculation\n",
- "\n",
- "df = 1/(4*math.pi*dt)\n",
- "\n",
- "#result\n",
- "\n",
- "print \"The frequency of the light emitted is\",round(df/10**6,1),\"X 10^6 Hz.\"\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "c = 3.0 * 10 ** 8 #speed of light (m/s)\n",
- "lamda = 500 * 10 ** -9 #wavelength (m)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "f = c/ lamda\n",
- "df_by_f0 = df / f\n",
- "\n",
- "#result\n",
- "\n",
- "print \"The fractional broadening is\",round(df_by_f0/10**-8,1),\"X 10^-8.\""
- ],
+ "input": [],
"language": "python",
"metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "The frequency of the light emitted is 8.0 X 10^6 Hz.\n",
- "The fractional broadening is 1.3 X 10^-8.\n"
- ]
- }
- ],
- "prompt_number": 19
+ "outputs": []
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter5_1.ipynb b/Modern_Physics/Chapter5_1.ipynb
new file mode 100755
index 00000000..9c6c1971
--- /dev/null
+++ b/Modern_Physics/Chapter5_1.ipynb
@@ -0,0 +1,49 @@
+{
+ "metadata": {
+ "name": "MP-5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Schrodinger Equation"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5.2 Page 150"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initation of variable\n#parta\nfrom math import pi, sin\nimport math\nfrom scipy import integrate\nh=1.05*10**-34;m=9.11*10**-31;L=10.0**-10; # all the values are taken in SI units\nE1=h**2*pi**2/(2*m*L**2); E2=4*E1; #Energies are calculated\ndelE=(E2-E1)/(1.6*10**-19); #Difference in energy is converted to eV\n\n#result\nprint \"Energy to be supplied in eV. is \",round(delE,3);\n\n#partb\nx1=0.09*10**-10;x2=0.11*10**-10 #limits of the given region\ndef integrand(x,L):\n return 2.0/L*(sin(pi*x/L))**2\n\nprobGnd=integrate.quad(integrand,x1,x2,args=(L))\n\n#result\nprint \"The percentage probablility of finding an electron in the ground state is \\n\",round(probGnd[0]*100,3);\n\n#partc\nk1=0.0;k2=0.25*10**-10;\ndef integrand(k,L):\n return 2.0/L*(sin(2*pi*k/L))**2\n\nprobExc=integrate.quad(integrand,k1,k2,args=(L))\n\n#result\nprint \"The probablility of finding an electron in the excited state is\",round(probExc[0],3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Energy to be supplied in eV. is 111.978\nThe percentage probablility of finding an electron in the ground state is \n0.383\nThe probablility of finding an electron in the excited state is 0.25\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter5_2.ipynb b/Modern_Physics/Chapter5_2.ipynb
new file mode 100755
index 00000000..9c6c1971
--- /dev/null
+++ b/Modern_Physics/Chapter5_2.ipynb
@@ -0,0 +1,49 @@
+{
+ "metadata": {
+ "name": "MP-5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Schrodinger Equation"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5.2 Page 150"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initation of variable\n#parta\nfrom math import pi, sin\nimport math\nfrom scipy import integrate\nh=1.05*10**-34;m=9.11*10**-31;L=10.0**-10; # all the values are taken in SI units\nE1=h**2*pi**2/(2*m*L**2); E2=4*E1; #Energies are calculated\ndelE=(E2-E1)/(1.6*10**-19); #Difference in energy is converted to eV\n\n#result\nprint \"Energy to be supplied in eV. is \",round(delE,3);\n\n#partb\nx1=0.09*10**-10;x2=0.11*10**-10 #limits of the given region\ndef integrand(x,L):\n return 2.0/L*(sin(pi*x/L))**2\n\nprobGnd=integrate.quad(integrand,x1,x2,args=(L))\n\n#result\nprint \"The percentage probablility of finding an electron in the ground state is \\n\",round(probGnd[0]*100,3);\n\n#partc\nk1=0.0;k2=0.25*10**-10;\ndef integrand(k,L):\n return 2.0/L*(sin(2*pi*k/L))**2\n\nprobExc=integrate.quad(integrand,k1,k2,args=(L))\n\n#result\nprint \"The probablility of finding an electron in the excited state is\",round(probExc[0],3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Energy to be supplied in eV. is 111.978\nThe percentage probablility of finding an electron in the ground state is \n0.383\nThe probablility of finding an electron in the excited state is 0.25\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter6.ipynb b/Modern_Physics/Chapter6.ipynb
index 76cd1700..53684185 100755
--- a/Modern_Physics/Chapter6.ipynb
+++ b/Modern_Physics/Chapter6.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:846e8e3b3770f7cb30a2e91a53718bf5de841338951843c54481c2acfda5e63d"
+ "name": "Chapter6",
+ "signature": "sha256:36f31f6870acf2c11b00274dcf34bd9e9879abf6f82026373900139ccc4b5799"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 6: Quantum Mechanics in One Dimension"
+ "Chapter 6:The Rutherford Bohr Model"
]
},
{
@@ -21,33 +21,25 @@
"level": 2,
"metadata": {},
"source": [
- "Example 6.4, page no. 197"
+ "Example 6.1 Page 178"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
+ "#initiation of variable\n",
+ "from math import sqrt, pi\n",
+ "R=0.1;Z=79.0; x=1.44; #x=e^2/4*pi*epsi0\n",
+ "zkR2=2*Z*x/R # from zkR2= (2*Z*e^2)*R^2/(4*pi*epsi0)*R^3\n",
+ "mv2=10.0*10**6; #MeV=>eV\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "me = 9.11 * 10 ** -31 #mass of electron (kg)\n",
- "h = 1.055 * 10**-34 #h/2*pi (J.s)\n",
- "dx0 = 1.0 * 10**-10 #initial location of electron(m)\n",
- "m = 1.0 * 10**-3 #mass of marble (kg)\n",
- "dx0m = 10**-4 #initial location of marble (m)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "te = math.sqrt(99)* (2* me / h) * dx0**2\n",
- "tm = math.sqrt(99)* (2* m / h) * dx0m**2\n",
+ "#calculation\n",
+ "theta=sqrt(3.0/4)*zkR2/mv2; #deflection angle\n",
+ "theta=theta*(180/pi); #converting to degrees\n",
"\n",
"#result\n",
- "\n",
- "print \"The time elapsed for electron is\",round(te/10**-15,1),\"X 10^-15 s and that of marble is \",round(tm/10**24,1),\"X 10^24 s.\""
+ "print\"Hence the average deflection angle per collision in degrees is\",round(theta,3 );"
],
"language": "python",
"metadata": {},
@@ -56,56 +48,122 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The time elapsed for electron is 1.7 X 10^-15 s and that of marble is 1.9 X 10^24 s.\n"
+ "Hence the average deflection angle per collision in degrees.is 0.011\n"
]
}
],
- "prompt_number": 1
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 6.5, page no. 202"
+ "Example 6.2 Page 181"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "m = 1.0 * 10 **-6 #mass (kg)\n",
- "h = 6.626 * 10 **-34 #Planck's constant(J.s)\n",
- "n = 1.0\n",
- "L = 1.0 * 10**-2 #separation(m)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "E1 = n**2 * h**2 /(8*m*L**2)\n",
- "v1 = math.sqrt(2*E1/m)\n",
+ "#initiation of variable\n",
+ "from math import sin, cos, tan, sqrt, pi\n",
+ "Na=6.023*10**23;p=19.3;M=197.0;\n",
+ "n=Na*p/M; #The number of nuclei per atom\n",
+ "t=2*10**-6;Z=79;K=8*10**6;x=1.44; theta=90.0*pi/180; #x=e^2/4*pi*epsi0\n",
+ "b1=t*Z*x/tan(theta/2)/(2*K) #impact parameter b\n",
+ "f1=n*pi*b1**2*t #scattering angle greater than 90\n",
"\n",
"#result\n",
+ "print\"The fraction of alpha particles scattered at angles greater than 90 degrees is %.1e\" %f1;\n",
"\n",
- "print \"(a) The minimum speed of the particle is\",round(v1/10**-26,2),\"X 10^-26 m/s.\"\n",
+ "#part b\n",
+ "theta=45.0*pi/180;\n",
+ "b2=t*Z*x/tan(theta/2)/(2*K);\n",
+ "f2=n*pi*b2**2*t; #scattering angle greater than 45\n",
+ "fb=f2-f1 #scattering angle between 45 to 90\n",
"\n",
+ "#result\n",
+ "print\"The fraction of particles with scattering angle from 45 to 90 is %.1e\" %fb;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The fraction of alpha particles scattered at angles greater than 90 degrees is 7.5e-05\n",
+ "The fraction of particles with scattering angle from 45 to 90 is 3.6e-04\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page 185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import sin, cos, tan, sqrt, pi\n",
+ "Z=79.0;x=1.44;K=8.0*10**6;z=2; #where x=e^2/4*pi*epsi0;z=2 for alpha particles\n",
"\n",
- "#Variable declaration\n",
+ "#calculation\n",
+ "d=z*x*Z/K; #distance\n",
"\n",
- "v = 3.00 * 10**-2 #speed of the particle (m/s)\n",
+ "#result\n",
+ "print \"The distance of closest approach in nm. is\",d*10**-9"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The distance of closest approasch in nm. is 2.844e-14\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "sl=820.1;n0=3.0; #given values\n",
+ "n=4;w=sl*(n**2/(n**2-n0**2)); \n",
+ "#result\n",
+ "print \"The 3 longest possible wavelengths in nm respectively are a.\",round(w,3),; \n",
"\n",
- "#Calculation\n",
+ "#partb\n",
+ "n=5.0;w=sl*(n**2/(n**2-n0**2)); \n",
"\n",
- "E = m* v**2 /2\n",
- "n = math.sqrt(8*m*L**2*E)/h\n",
+ "#result\n",
+ "print \"b. (in nm)\",round(w,3),;\n",
"\n",
- "#results\n",
+ "#partc\n",
+ "n=6.0;w=sl*(n**2/(n**2-n0**2));\n",
"\n",
- "print \"(b) We get n = \",round(n/10**23,2),\"X 10^23.\""
+ "#result\n",
+ "print \"c. (in nm )\",round(w,3);\n"
],
"language": "python",
"metadata": {},
@@ -114,8 +172,7 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "(a) The minimum speed of the particle is 3.31 X 10^-26 m/s.\n",
- "(b) We get n = 9.06 X 10^23.\n"
+ "The 3 longest possible wavelengths in nm respectively are a. 1874.514 b. (in nm) 1281.406 c. (in nm ) 1093.467\n"
]
}
],
@@ -126,33 +183,31 @@
"level": 2,
"metadata": {},
"source": [
- "Example 6.6, page no. 203"
+ "Example 6.5 Page 189"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "sl=364.5;n=3.0; #given variables and various constants are declared in the subsequent steps wherever necessary \n",
+ "w1=sl*(n**2/(n**2-4)); #longest wavelength of balmer \n",
+ "c=3.0*10**8;\n",
+ "f1=c/(w1*10**-9); #corresponding freq.\n",
+ "n0=1.0;n=2.0; \n",
"\n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "L = 0.2 #length of the box (nm)\n",
- "me = 511 * 10 ** 3 #mass of electron (eV/c^2)\n",
- "hc = 197.3 #(eV.nm)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "E1 = math.pi ** 2 * hc**2 /(2* me * L**2)\n",
- "E2 = 2**2 * E1\n",
- "dE = E2-E1\n",
- "lamda = hc*2*math.pi / dE\n",
+ "#calculation\n",
+ "w2=91.13*(n**2/(n**2-n0**2)); #first longest of lymann \n",
+ "f2=c/(w2*10**-9); #correspoding freq\n",
+ "n0=1.0;n=3.0\n",
+ "w3=91.13*(n**2/(n**2-n0**2)); #second longest of lymann\n",
+ "f3=3.0*10**8/(w3*10**-9) #corresponding freq.\n",
"\n",
"#result\n",
- "\n",
- "print \"The energy required is\",round(dE,1),\"eV and the wavelength of the photon that could cause this transition is\",round(lamda),\"nm.\""
+ "print \"The freq. corresponding to the longest wavelength of balmer is %.1e\" %f1,\" & First longest wavelength of Lymann is %.1e\" %f2;\n",
+ "print\"The sum of which s equal to %.1e\" %(f1+f2);\n",
+ "print\"The freq. corresponding to 2nd longest wavelength was found out to be %.1e\" %f3,\"Hence Ritz combination principle is satisfied.\";"
],
"language": "python",
"metadata": {},
@@ -161,45 +216,42 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The energy required is 28.2 eV and the wavelength of the photon that could cause this transition is 44.0 nm.\n"
+ "The freq. corresponding to the longest wavelength of balmer is 4.6e+14 & First longest wavelength of Lymann is 2.5e+15\n",
+ "The sum of which s equal to 2.9e+15\n",
+ "The freq. corresponding to 2nd longest wavelength was found out to be 2.92622261239e+15 Hence Ritz combination principle is satisfied.\n"
]
}
],
- "prompt_number": 5
+ "prompt_number": 6
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 6.8, page no. 211"
+ "Example 6.6 Page 192"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "Rinfi=1.097*10**7; #known value \n",
+ "n1=3.0;n2=2.0; #first 2 given states\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "h = 197.3 #(eV.nm/c)\n",
- "m = 511 * 10**3 #mass of electron (eV/c**2)\n",
- "U = 100 #(eV)\n",
- "L = 0.200 #width(nm)\n",
+ "#calculation\n",
+ "w=(n1**2*n2**2)/((n1**2-n2**2)*Rinfi);\n",
"\n",
- "#Calculation\n",
+ "#result\n",
+ "print\"Wavelength of transition from n1=3 to n2=2 in nm is\",round(w*10**9,3);\n",
"\n",
- "d = h /math.sqrt(2*m*U)\n",
- "E = math.pi**2 * h**2 /(2*m*(L+2*d)**2)\n",
- "new_U = U - E\n",
- "d = h/math.sqrt(2*m*new_U)\n",
- "E = math.pi**2 * h**2 /(2*m*(L+2*d)**2)\n",
+ "#partb\n",
+ "n1=4.0;n2=2.0; #second 2 given states \n",
+ "w=(n1**2*n2**2)/((n1**2-n2**2)*Rinfi);\n",
"\n",
"#result\n",
- "\n",
- "print \"The ground-state energy for the electron is\",round(E,3),\"eV.\""
+ "print\"Wavelength of transition from n1=3 to n2=2 in nm is\",round(w*10**9,3);"
],
"language": "python",
"metadata": {},
@@ -208,45 +260,42 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The ground-state energy for the electron is 6.506 eV.\n"
+ "Wavelength of trnasition from n1=3 to n2=2 in nm is 656.335\n",
+ "Wavelength of trnasition from n1=3 to n2=2 in nm is 486.174\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 9
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 6.13, page no. 217"
+ "Example 6.7 Page 194"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "m = 0.0100 #mass of the spring (kg)\n",
- "K = 0.100 #force constant of spring (N/m)\n",
- "Kh = 510.5 #force constant of hydrogen (N/m)\n",
- "h = 6.582 * 10**-16#Planck's constant (eV.s)\n",
- "mu = 8.37 * 10**-28#mass of hydrogen molecule(kg)\n",
+ "#initiation of variable\n",
+ "n1=3.0;n2=2.0;Z=4.0;hc=1240.0;\n",
+ "delE=(-13.6)*(Z**2)*((1/(n1**2))-((1/n2**2)));\n",
"\n",
"#calculation\n",
+ "w=(hc)/delE; #for transition 1\n",
"\n",
- "w = math.sqrt(K / m)\n",
- "dE = h * w\n",
- "wh =math.sqrt(Kh / mu)\n",
- "dEh = h * wh\n",
+ "#result\n",
+ "print \"The wavelngth of radiation for transition(2->3) in nm is\", round(w,3);\n",
"\n",
- "#results\n",
+ "#for transition 2\n",
+ "n1=4.0;n2=2.0; # n values for transition 2\n",
+ "delE=(-13.6)*(Z**2)*((1/n1**2)-(1/n2**2));\n",
+ "w=(hc)/delE;\n",
"\n",
- "print \"The quantum level spacing in the spring case is\",round(dE/10**-15,2),\"X 10^-15 eV, while in case of hydrogen molecule it is\",round(dEh,3),\"eV which is easily measurable.\""
+ "#result\n",
+ "print \"The wavelngth of radiation emitted for transition(2->4) in nm is\", round(w,3);"
],
"language": "python",
"metadata": {},
@@ -255,11 +304,12 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The quantum level spacing in the spring case is 2.08 X 10^-15 eV, while in case of hydrogen molecule it is 0.514 eV which is easily measurable.\n"
+ "The wavelngth of radiation for transition(2->3) in nm is 41.029\n",
+ "The wavelngth of radiation emitted for transition(2->4) in nm is 30.392\n"
]
}
],
- "prompt_number": 10
+ "prompt_number": 11
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter6_1.ipynb b/Modern_Physics/Chapter6_1.ipynb
new file mode 100755
index 00000000..09d16e38
--- /dev/null
+++ b/Modern_Physics/Chapter6_1.ipynb
@@ -0,0 +1,167 @@
+{
+ "metadata": {
+ "name": "MP-6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Rutherford Bohr Model"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.1 Page 178"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt, pi\nR=0.1;Z=79.0; x=1.44; #x=e^2/4*pi*epsi0\nzkR2=2*Z*x/R # from zkR2= (2*Z*e^2)*R^2/(4*pi*epsi0)*R^3\nmv2=10.0*10**6; #MeV=>eV\n\n#calculation\ntheta=sqrt(3.0/4)*zkR2/mv2; #deflection angle\ntheta=theta*(180/pi); #converting to degrees\n\n#result\nprint\"Hence the average deflection angle per collision in degrees is\",round(theta,3 );",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the average deflection angle per collision in degrees.is 0.011\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.2 Page 181"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of vriable\nfrom math import sin, cos, tan, sqrt, pi\nNa=6.023*10**23;p=19.3;M=197.0;\nn=Na*p/M; #The number of nuclei per atom\nt=2*10**-6;Z=79;K=8*10**6;x=1.44; theta=90.0*pi/180; #x=e^2/4*pi*epsi0\nb1=t*Z*x/tan(theta/2)/(2*K) #impact parameter b\nf1=n*pi*b1**2*t #scattering angle greater than 90\n\n#result\nprint\"The fraction of alpha particles scattered at angles greater than 90 degrees is %.1e\" %f1;\n\n#part b\ntheta=45.0*pi/180;\nb2=t*Z*x/tan(theta/2)/(2*K);\nf2=n*pi*b2**2*t; #scattering angle greater than 45\nfb=f2-f1 #scattering angle between 45 to 90\n\n#result\nprint\"The fraction of particles with scattering angle from 45 to 90 is %.1e\" %fb;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The fraction of alpha particles scattered at angles greater than 90 degrees is 7.5e-05\nThe fraction of particles with scattering angle from 45 to 90 is 3.6e-04\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.3 Page 185"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of vriable\nfrom math import sin, cos, tan, sqrt, pi\nZ=79.0;x=1.44;K=8.0*10**6;z=2; #where x=e^2/4*pi*epsi0;z=2 for alpha particles\n\n#calculation\nd=z*x*Z/K; #distance\n\n#result\nprint \"The distance of closest approasch in nm. is\",d*10**-9",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The distance of closest approasch in nm. is 2.844e-14\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.4 Page 188"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nsl=820.1;n0=3.0; #given values\nn=4;w=sl*(n**2/(n**2-n0**2)); \n#result\nprint \"The 3 longest possible wavelengths are in nm respectively are\",w,; \n\n#partb\nn=5.0;w=sl*(n**2/(n**2-n0**2)); \n\n#result\nprint \"(in nm)\",round(w,3),;\n\n#partc\nn=6.0;w=sl*(n**2/(n**2-n0**2));\n\n#result\nprint \" (in nm )\",round(w,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The 3 longest possible wavelengths are in nm respectively are 1874.51428571 (in nm) 1281.406 (in nm ) 1093.467\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.5 Page 189"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nsl=364.5;n=3.0; #given variables and various constants are declared in the subsequent steps wherever necessary \nw1=sl*(n**2/(n**2-4)); #longest wavelength of balmer \nc=3.0*10**8;\nf1=c/(w1*10**-9); #corresponding freq.\nn0=1.0;n=2.0; \n\n#calculation\nw2=91.13*(n**2/(n**2-n0**2)); #first longest of lymann \nf2=c/(w2*10**-9); #correspoding freq\nn0=1.0;n=3.0\nw3=91.13*(n**2/(n**2-n0**2)); #second longest of lymann\nf3=3.0*10**8/(w3*10**-9) #corresponding freq.\n\n#result\nprint \"The freq. corresponding to the longest wavelength of balmer is %.1e\" %f1,\" & First longest wavelength of Lymann is %.1e\" %f2;\nprint\"The sum of which s equal to %.1e\" %(f1+f2);\nprint\"The freq. corresponding to 2nd longest wavelength was found out to be %.1e\" %f3,\"Hence Ritz combination principle is satisfied.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The freq. corresponding to the longest wavelength of balmer is 4.6e+14 & First longest wavelength of Lymann is 2.5e+15\nThe sum of which s equal to 2.9e+15\nThe freq. corresponding to 2nd longest wavelength was found out to be 2.92622261239e+15 Hence Ritz combination principle is satisfied.\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.6 Page 192"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nRinfi=1.097*10**7; #known value \nn1=3.0;n2=2.0; #first 2 given states\n\n#calculation\nw=(n1**2*n2**2)/((n1**2-n2**2)*Rinfi);\n\n#result\nprint\"Wavelength of trnasition from n1=3 to n2=2 in nm is\",round(w*10**9,3);\n\n#partb\nn1=4.0;n2=2.0; #second 2 given states \nw=(n1**2*n2**2)/((n1**2-n2**2)*Rinfi);\n\n#result\nprint\"Wavelength of trnasition from n1=3 to n2=2 in nm is\",round(w*10**9,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of trnasition from n1=3 to n2=2 in nm is 656.335\nWavelength of trnasition from n1=3 to n2=2 in nm is 486.174\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.7 Page 194"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nn1=3.0;n2=2.0;Z=4.0;hc=1240.0;\ndelE=(-13.6)*(Z**2)*((1/(n1**2))-((1/n2**2)));\n\n#calculation\nw=(hc)/delE; #for transition 1\n\n#result\nprint \"The wavelngth of radiation for transition(2->3) in nm is\", round(w,3);\n\n#for transition 2\nn1=4.0;n2=2.0; # n values for transition 2\ndelE=(-13.6)*(Z**2)*((1/n1**2)-(1/n2**2));\nw=(hc)/delE;\n\n#result\nprint \"The wavelngth of radiation emitted for transition(2->4) in nm is\", round(w,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The wavelngth of radiation for transition(2->3) in nm is 41.029\nThe wavelngth of radiation emitted for transition(2->4) in nm is 30.392\n"
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter6_2.ipynb b/Modern_Physics/Chapter6_2.ipynb
new file mode 100755
index 00000000..09d16e38
--- /dev/null
+++ b/Modern_Physics/Chapter6_2.ipynb
@@ -0,0 +1,167 @@
+{
+ "metadata": {
+ "name": "MP-6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Rutherford Bohr Model"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.1 Page 178"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt, pi\nR=0.1;Z=79.0; x=1.44; #x=e^2/4*pi*epsi0\nzkR2=2*Z*x/R # from zkR2= (2*Z*e^2)*R^2/(4*pi*epsi0)*R^3\nmv2=10.0*10**6; #MeV=>eV\n\n#calculation\ntheta=sqrt(3.0/4)*zkR2/mv2; #deflection angle\ntheta=theta*(180/pi); #converting to degrees\n\n#result\nprint\"Hence the average deflection angle per collision in degrees is\",round(theta,3 );",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the average deflection angle per collision in degrees.is 0.011\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.2 Page 181"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of vriable\nfrom math import sin, cos, tan, sqrt, pi\nNa=6.023*10**23;p=19.3;M=197.0;\nn=Na*p/M; #The number of nuclei per atom\nt=2*10**-6;Z=79;K=8*10**6;x=1.44; theta=90.0*pi/180; #x=e^2/4*pi*epsi0\nb1=t*Z*x/tan(theta/2)/(2*K) #impact parameter b\nf1=n*pi*b1**2*t #scattering angle greater than 90\n\n#result\nprint\"The fraction of alpha particles scattered at angles greater than 90 degrees is %.1e\" %f1;\n\n#part b\ntheta=45.0*pi/180;\nb2=t*Z*x/tan(theta/2)/(2*K);\nf2=n*pi*b2**2*t; #scattering angle greater than 45\nfb=f2-f1 #scattering angle between 45 to 90\n\n#result\nprint\"The fraction of particles with scattering angle from 45 to 90 is %.1e\" %fb;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The fraction of alpha particles scattered at angles greater than 90 degrees is 7.5e-05\nThe fraction of particles with scattering angle from 45 to 90 is 3.6e-04\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.3 Page 185"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of vriable\nfrom math import sin, cos, tan, sqrt, pi\nZ=79.0;x=1.44;K=8.0*10**6;z=2; #where x=e^2/4*pi*epsi0;z=2 for alpha particles\n\n#calculation\nd=z*x*Z/K; #distance\n\n#result\nprint \"The distance of closest approasch in nm. is\",d*10**-9",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " The distance of closest approasch in nm. is 2.844e-14\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.4 Page 188"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nsl=820.1;n0=3.0; #given values\nn=4;w=sl*(n**2/(n**2-n0**2)); \n#result\nprint \"The 3 longest possible wavelengths are in nm respectively are\",w,; \n\n#partb\nn=5.0;w=sl*(n**2/(n**2-n0**2)); \n\n#result\nprint \"(in nm)\",round(w,3),;\n\n#partc\nn=6.0;w=sl*(n**2/(n**2-n0**2));\n\n#result\nprint \" (in nm )\",round(w,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The 3 longest possible wavelengths are in nm respectively are 1874.51428571 (in nm) 1281.406 (in nm ) 1093.467\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.5 Page 189"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nsl=364.5;n=3.0; #given variables and various constants are declared in the subsequent steps wherever necessary \nw1=sl*(n**2/(n**2-4)); #longest wavelength of balmer \nc=3.0*10**8;\nf1=c/(w1*10**-9); #corresponding freq.\nn0=1.0;n=2.0; \n\n#calculation\nw2=91.13*(n**2/(n**2-n0**2)); #first longest of lymann \nf2=c/(w2*10**-9); #correspoding freq\nn0=1.0;n=3.0\nw3=91.13*(n**2/(n**2-n0**2)); #second longest of lymann\nf3=3.0*10**8/(w3*10**-9) #corresponding freq.\n\n#result\nprint \"The freq. corresponding to the longest wavelength of balmer is %.1e\" %f1,\" & First longest wavelength of Lymann is %.1e\" %f2;\nprint\"The sum of which s equal to %.1e\" %(f1+f2);\nprint\"The freq. corresponding to 2nd longest wavelength was found out to be %.1e\" %f3,\"Hence Ritz combination principle is satisfied.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The freq. corresponding to the longest wavelength of balmer is 4.6e+14 & First longest wavelength of Lymann is 2.5e+15\nThe sum of which s equal to 2.9e+15\nThe freq. corresponding to 2nd longest wavelength was found out to be 2.92622261239e+15 Hence Ritz combination principle is satisfied.\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.6 Page 192"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nRinfi=1.097*10**7; #known value \nn1=3.0;n2=2.0; #first 2 given states\n\n#calculation\nw=(n1**2*n2**2)/((n1**2-n2**2)*Rinfi);\n\n#result\nprint\"Wavelength of trnasition from n1=3 to n2=2 in nm is\",round(w*10**9,3);\n\n#partb\nn1=4.0;n2=2.0; #second 2 given states \nw=(n1**2*n2**2)/((n1**2-n2**2)*Rinfi);\n\n#result\nprint\"Wavelength of trnasition from n1=3 to n2=2 in nm is\",round(w*10**9,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Wavelength of trnasition from n1=3 to n2=2 in nm is 656.335\nWavelength of trnasition from n1=3 to n2=2 in nm is 486.174\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6.7 Page 194"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nn1=3.0;n2=2.0;Z=4.0;hc=1240.0;\ndelE=(-13.6)*(Z**2)*((1/(n1**2))-((1/n2**2)));\n\n#calculation\nw=(hc)/delE; #for transition 1\n\n#result\nprint \"The wavelngth of radiation for transition(2->3) in nm is\", round(w,3);\n\n#for transition 2\nn1=4.0;n2=2.0; # n values for transition 2\ndelE=(-13.6)*(Z**2)*((1/n1**2)-(1/n2**2));\nw=(hc)/delE;\n\n#result\nprint \"The wavelngth of radiation emitted for transition(2->4) in nm is\", round(w,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The wavelngth of radiation for transition(2->3) in nm is 41.029\nThe wavelngth of radiation emitted for transition(2->4) in nm is 30.392\n"
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter7.ipynb b/Modern_Physics/Chapter7.ipynb
index 5f1ccec9..b8966938 100755
--- a/Modern_Physics/Chapter7.ipynb
+++ b/Modern_Physics/Chapter7.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:75c249ea2e8c0a6e5f6f1e7aa12f02f35c3e7e62df28f6611e18b53d1b7e6dcd"
+ "name": "Chapter7"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,54 +12,34 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 7: Tunneling Phenomena"
+ "Chapter 7:The Hydrogen Atom in Wave Mechanics"
]
},
{
"cell_type": "heading",
- "level": 2,
+ "level": 1,
"metadata": {},
"source": [
- "Example 7.1, page no. 235"
+ "Example 7.2 Page 213"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
+ "#initiation of variable\n",
+ "from math import exp\n",
"import math\n",
+ "from scipy import integrate\n",
+ "# calculating radial probability P= (4/ao^3)*integral(r^2 * e^(-2r/ao)) between the limits 0 and ao for r\n",
"\n",
- "#Variable declaration\n",
- "h = 1.973 * 10**3 #planck's constant (eV.A'/c)\n",
- "me = 511 * 10**3 #mass of electron (eV/c^2)\n",
- "U = 10.0\n",
- "E = 7.0\n",
- "L = 50.00 #thickness of layer (A')\n",
- "\n",
- "#Calculation\n",
- "\n",
- "a = math.sqrt(2*me*(U-E))/h\n",
- "T=(1.0+(1.0/4.0)*(U**2/(E*(U-E)))*(math.sinh(a*L))**2)**-1\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The transmission coefficient for L=\",L,\"A' is\",round(T/10**-38,3),\"X 10^-38\"\n",
- "\n",
- "#(b)if the layer thickness is 1.00nm.\n",
- "\n",
- "#Variable Declaration\n",
- "\n",
- "L = 10 #thickness of layer (A')\n",
+ "#calculation\n",
+ "def integrand(x):\n",
+ " return ((x**2)*exp(-x))/2.0\n",
+ "Pr=integrate.quad(integrand,0,2,args=());#simplifying where as x=2*r/a0; hence the limits change between 0 to 2\n",
"\n",
- "#Calculation\n",
- "\n",
- "T=(1.0+(1.0/4.0)*(U**2/(E*(U-E)))*(math.sinh(a*L))**2)**-1\n",
- "\n",
- "#Result\n",
- "\n",
- "print \"The transmission coefficient for L=\",L,\"A' is\",round(T/10**-7,3),\"X 10^-7\""
+ "#result\n",
+ "print \"Hence the probability of finding the electron nearer to nucleus is\",round(Pr[0],3);\n"
],
"language": "python",
"metadata": {},
@@ -69,41 +48,44 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The transmission coefficient for L= 50.0 A' is 0.963 X 10^-38\n",
- "The transmission coefficient for L= 10 A' is 0.657 X 10^-7\n"
+ "Hence the probability of finding the electron nearer to nucleus is 0.323\n"
]
}
],
- "prompt_number": 3
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 7.2, page no. 236"
+ "Example 7.3 Page 213"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import exp\n",
+ "import math\n",
+ "from scipy import integrate\n",
+ "# employing the formula for probability distribution similarly as done in Exa-7.2 \n",
+ "#calculation\n",
+ "def integrand(x):\n",
+ " return (1.0/8)*((4.0*x**2)-(4.0*x**3)+(x**4))*exp(-x)\n",
+ "Pr1= integrate.quad(integrand,0,1,args=()) #x=r/ao; similrly limits between 0 and 1.\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "e = 1.6 * 10 ** -19 #charge of electron (C)\n",
- "I = 1.00 * 10 ** -3 #electron current(A)\n",
- "T = 0.657 *10**-7 #Transmission coefficient\n",
- "\n",
- "#Calculation\n",
- "\n",
- "Ne = I / e\n",
- "Nadj = Ne * T\n",
- "Iadj = Nadj * e\n",
+ "#result\n",
+ "print\"The probability for l=0 electron is\",round(Pr1[0],5)\n",
"\n",
- "#Result\n",
+ "#part2\n",
+ "def integrand(x):\n",
+ " return (1.0/24)*(x**4)*(exp(-x))\n",
+ "Pr2=integrate.quad(integrand,0,1); #x=r/ao; similarly limits between 0 and 1.\n",
"\n",
- "print \"The number of electrons per second continuing on the adjacent wire is\",round(Nadj/10**8,2),\"X 10^8 and the transmitted current is\",round(Iadj/10**-12,1),\"pA.\""
+ "#result\n",
+ "print\"The probability for l=1 electron is\",round(Pr2[0],5)\n"
],
"language": "python",
"metadata": {},
@@ -112,46 +94,38 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The number of electrons per second continuing on the adjacent wire is 4.11 X 10^8 and the transmitted current is 65.7 pA.\n"
+ "The probability for l=0 electron is 0.03432\n",
+ "The probability for l=1 electron is 0.00366\n"
]
}
],
- "prompt_number": 8
+ "prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 7.5, page no. 241"
+ "Example 7.4 Page 215"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- "\n",
- "\n",
+ "#initiation of variable\n",
+ "from math import exp, sqrt\n",
"import math\n",
+ "from scipy import integrate\n",
+ "l=1.0; #given value of l\n",
"\n",
- "#Variable Declaration\n",
- "\n",
- "e = 1.6 * 10 **-19 #charge of electron(C)\n",
- "f = 1.0*10**30 #collision frequency (s^-1.cm^-2)\n",
- "Ec = 5.5 * 10 ** 10 \n",
- "V = 10 * 10 ** 3 #potential difference(V)\n",
- "d = 0.010 * 10**-3 #plate separation(m)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "E = V /d\n",
- "Te = math.exp(-Ec/E)\n",
- "rate = f * Te\n",
- "I = e * rate\n",
+ "#calculation\n",
+ "am1=sqrt(l*(l+1)); #angular momentum==sqrt(l(l+1)) h\n",
+ "l=2.0 #given l\n",
+ "am2=sqrt(l*(l+1));\n",
"\n",
"#result\n",
- "\n",
- "print \"The tunneling current is\",round(I/10**-12,2),\"pA.\""
+ "print\"The angular momenta are found out to be\", round(am1,3),\" h and\",round(am2,3),\" h respectively for l=1 and l=2.\";\n"
],
"language": "python",
"metadata": {},
@@ -160,55 +134,102 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The tunneling current is 0.21 pA.\n"
+ "The angular momenta are found out to be 1.414 h and 2.449 h respectively for l=1 and l=2.\n"
]
}
],
- "prompt_number": 12
+ "prompt_number": 6
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 7.6, page no. 244"
+ "Example 7.5 Page 216"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
- " \n",
- "\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "Zth = 90 #atomic number of thorium\n",
- "Zdth = 88 #atomic number of thorium's daughter nucleus\n",
- "E = 4.05 #energy of ejected alphas(MeV)\n",
- "Zpo = 84 #atomic number of polonium\n",
- "Zdpo = 82 #atomic number of polonium's daughter nucleus\n",
- "Epo = 8.95 #energy of ejected alphas(MeV)\n",
- "R = 9.00 #nucleus size(fm)\n",
- "r0 = 7.25 #Bohr radius of alpha(fm)\n",
- "E0 = 0.0993 #(MeV)\n",
- "f = 10 ** 21 #collision frequency(Hz)\n",
- "\n",
- "\n",
- "#Calculation\n",
+ "#initiation of variable\n",
+ "from math import sqrt\n",
+ "print \"The possible values for m are [+2,-2] and hence any of the 5 components [-2h,2h] are possible for the L vector.\";\n",
+ "print \"Length of the vector as found out previously is %.2f*h.\",round(sqrt(6),4);#angular momentum==sqrt(l(l+1)) h"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The possible values for m are [+2,-2] and hence any of the 5 components [-2h,2h] are possible for the L vector.\n",
+ "Length of the vector as found out previously is %.2f*h. 2.4495\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6 Page 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "uz=9.27*10**-24; t=1.4*10**3; x=3.5*10**-2; #various constants and given values\n",
+ "m=1.8*10**-25;v=750; # mass and velocity of the particle\n",
"\n",
- "Te = math.exp(-4*math.pi*Zdth*math.sqrt((E0/E))+ 8 * math.sqrt(Zdth*R/r0))\n",
- "rate = f * Te\n",
- "t = math.log(2)/rate\n",
- "Tep = math.exp(-4*math.pi*Zdpo*math.sqrt((E0/Epo))+ 8 * math.sqrt(Zdpo*R/r0))\n",
- "ratep = f * Tep\n",
- "tp = math.log(2)/ratep\n",
+ "#calculation\n",
+ "d=(uz*t*(x**2))/(m*(v**2)); #net separtion \n",
"\n",
+ "#result\n",
+ "print\"The distance of separation in mm is\",round(d*10**3,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance of separation in mm is 0.157\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7 Page 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "n1=1.0;n2=2.0;hc=1240.0; #hc=1240 eV.nm\n",
+ "E=(-13.6)*((1/n2**2)-(1/n1**2)); #Energy calculation\n",
"\n",
- "#Result\n",
+ "#calculation\n",
+ "w=hc/E; #wavelength\n",
+ "u=9.27*10**-24; B=2; #constants\n",
+ "delE= u*B/(1.6*10**-19); #change in energy\n",
+ "delw=((w**2/hc))*delE; #change in wavelength\n",
"\n",
- "print \"The half life of thorium is\",round(t/10**17,1),\"X 10^17 s and that of polonium is\",round(tp/10**-10,1),\"X 10^-10 s.\""
+ "#result\n",
+ "print\"The change in wavelength in nm. is\",round(delw,4);"
],
"language": "python",
"metadata": {},
@@ -217,11 +238,11 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The half life of thorium is 5.4 X 10^17 s and that of polonium is 8.4 X 10^-10 s.\n"
+ "The change in wavelength in nm. is 0.0014\n"
]
}
],
- "prompt_number": 14
+ "prompt_number": 12
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter7_1.ipynb b/Modern_Physics/Chapter7_1.ipynb
new file mode 100755
index 00000000..bd2ea129
--- /dev/null
+++ b/Modern_Physics/Chapter7_1.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Hydrogen Atom in Wave Mechanics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Example 7.2 Page 213"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nimport math\nfrom scipy import integrate\n# calculating radial probability P= (4/ao^3)*inegral(r^2 * e^(-2r/ao)) between the limits 0 and ao for r\n\n#calculation\ndef integrand(x):\n return ((x**2)*exp(-x))/2.0\nPr=integrate.quad(integrand,0,2,args=());#simplifying where as x=2*r/a0; hence the limits change between 0 to 2\n\n#result\nprint \"Hence the probability of finding the electron nearer to nucleus is\",round(Pr[0],3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the probability of finding the electron nearer to nucleus is 0.323\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.3 Page 213"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nimport math\nfrom scipy import integrate\n# employing the formula for probability distribution similarly as done in Exa-7.2 \n#calculation\ndef integrand(x):\n return (1.0/8)*((4.0*x**2)-(4.0*x**3)+(x**4))*exp(-x)\nPr1= integrate.quad(integrand,0,1,args=()) #x=r/ao; similrly limits between 0 and 1.\n\n#result\nprint\"The probability for l=0 electron is\",round(Pr1[0],5)\n\n#part2\ndef integrand(x):\n return (1.0/24)*(x**4)*(exp(-x))\nPr2=integrate.quad(integrand,0,1); #x=r/ao; similrly limits between 0 and 1.\n\n#result\nprint\"The probability for l=1 electron is\",round(Pr2[0],5)\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The probability for l=0 electron is 0.03432\nThe probability for l=1 electron is 0.00366\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.4 Page 215"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp, sqrt\nimport math\nfrom scipy import integrate\nl=1.0; #given value of l\n\n#calcualtion\nam1=sqrt(l*(l+1)); #angular momentum==sqrt(l(l+1)) h\nl=2.0 #given l\nam2=sqrt(l*(l+1));\n\n#result\nprint\"The angular momenta are found out to be\", round(am1,3),\" h and\",round(am2,3),\" h respectively for l=1 and l=2.\";\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The angular momenta are found out to be 1.414 h and 2.449 h respectively for l=1 and l=2.\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.5 Page 216"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nprint \"The possible values for m are [+2,-2] and hence any of the 5 components [-2h,2h] are possible for the L vector.\";\nprint\"Length of the vector as found out previously is %.2f*h.\",round(sqrt(6),4);#angular momentum==sqrt(l(l+1)) h",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The possible values for m are [+2,-2] and hence any of the 5 components [-2h,2h] are possible for the L vector.\nLength of the vector as found out previously is %.2f*h. 2.4495\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.6 Page 223"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nuz=9.27*10**-24; t=1.4*10**3; x=3.5*10**-2; #various constants and given values\nm=1.8*10**-25;v=750; # mass and velocity of the particle\n\n#calculation\nd=(uz*t*(x**2))/(m*(v**2)); #net separtion \n\n#result\nprint\"The distance of separation in mm is\",round(d*10**3,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The distance of separation in mm is 0.157\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.7 Page 227"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nn1=1.0;n2=2.0;hc=1240.0; #hc=1240 eV.nm\nE=(-13.6)*((1/n2**2)-(1/n1**2)); #Energy calcuation\n\n#calculation\nw=hc/E; #wavelength\nu=9.27*10**-24; B=2; #constants\ndelE= u*B/(1.6*10**-19); #change in energy\ndelw=((w**2/hc))*delE; #change in wavelength\n\n#result\nprint\"The change in wavelength in nm. is\",round(delw,4);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The change in wavelength in nm. is 0.0014\n"
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter7_2.ipynb b/Modern_Physics/Chapter7_2.ipynb
new file mode 100755
index 00000000..bd2ea129
--- /dev/null
+++ b/Modern_Physics/Chapter7_2.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "The Hydrogen Atom in Wave Mechanics"
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Example 7.2 Page 213"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nimport math\nfrom scipy import integrate\n# calculating radial probability P= (4/ao^3)*inegral(r^2 * e^(-2r/ao)) between the limits 0 and ao for r\n\n#calculation\ndef integrand(x):\n return ((x**2)*exp(-x))/2.0\nPr=integrate.quad(integrand,0,2,args=());#simplifying where as x=2*r/a0; hence the limits change between 0 to 2\n\n#result\nprint \"Hence the probability of finding the electron nearer to nucleus is\",round(Pr[0],3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Hence the probability of finding the electron nearer to nucleus is 0.323\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.3 Page 213"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp\nimport math\nfrom scipy import integrate\n# employing the formula for probability distribution similarly as done in Exa-7.2 \n#calculation\ndef integrand(x):\n return (1.0/8)*((4.0*x**2)-(4.0*x**3)+(x**4))*exp(-x)\nPr1= integrate.quad(integrand,0,1,args=()) #x=r/ao; similrly limits between 0 and 1.\n\n#result\nprint\"The probability for l=0 electron is\",round(Pr1[0],5)\n\n#part2\ndef integrand(x):\n return (1.0/24)*(x**4)*(exp(-x))\nPr2=integrate.quad(integrand,0,1); #x=r/ao; similrly limits between 0 and 1.\n\n#result\nprint\"The probability for l=1 electron is\",round(Pr2[0],5)\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The probability for l=0 electron is 0.03432\nThe probability for l=1 electron is 0.00366\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.4 Page 215"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import exp, sqrt\nimport math\nfrom scipy import integrate\nl=1.0; #given value of l\n\n#calcualtion\nam1=sqrt(l*(l+1)); #angular momentum==sqrt(l(l+1)) h\nl=2.0 #given l\nam2=sqrt(l*(l+1));\n\n#result\nprint\"The angular momenta are found out to be\", round(am1,3),\" h and\",round(am2,3),\" h respectively for l=1 and l=2.\";\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The angular momenta are found out to be 1.414 h and 2.449 h respectively for l=1 and l=2.\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.5 Page 216"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import sqrt\nprint \"The possible values for m are [+2,-2] and hence any of the 5 components [-2h,2h] are possible for the L vector.\";\nprint\"Length of the vector as found out previously is %.2f*h.\",round(sqrt(6),4);#angular momentum==sqrt(l(l+1)) h",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The possible values for m are [+2,-2] and hence any of the 5 components [-2h,2h] are possible for the L vector.\nLength of the vector as found out previously is %.2f*h. 2.4495\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.6 Page 223"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nuz=9.27*10**-24; t=1.4*10**3; x=3.5*10**-2; #various constants and given values\nm=1.8*10**-25;v=750; # mass and velocity of the particle\n\n#calculation\nd=(uz*t*(x**2))/(m*(v**2)); #net separtion \n\n#result\nprint\"The distance of separation in mm is\",round(d*10**3,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The distance of separation in mm is 0.157\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.7 Page 227"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nn1=1.0;n2=2.0;hc=1240.0; #hc=1240 eV.nm\nE=(-13.6)*((1/n2**2)-(1/n1**2)); #Energy calcuation\n\n#calculation\nw=hc/E; #wavelength\nu=9.27*10**-24; B=2; #constants\ndelE= u*B/(1.6*10**-19); #change in energy\ndelw=((w**2/hc))*delE; #change in wavelength\n\n#result\nprint\"The change in wavelength in nm. is\",round(delw,4);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The change in wavelength in nm. is 0.0014\n"
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter8.ipynb b/Modern_Physics/Chapter8.ipynb
index a12d49fc..ccbad1fd 100755
--- a/Modern_Physics/Chapter8.ipynb
+++ b/Modern_Physics/Chapter8.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:8315bc6aae714998ec5db8a7cf2faf25a033ca960fbcf8e976cdfc44e47b09f3"
+ "name": "Chapter8"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 8: Quantum Mechanics in Three Dimensions"
+ "Chapter 8:Many Electron Atoms"
]
},
{
@@ -21,33 +20,21 @@
"level": 2,
"metadata": {},
"source": [
- "Example 8.4, page no. 270"
+ "Example 8.1 Page 248"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "hc=1240.0*10**-9;Rinfi=1.097*10**7;Z=11; #for sodium atom;and other constants in MeV\n",
"\n",
+ "#calculation\n",
+ "delE=3*hc*Rinfi*(Z-1)**2/4.0 #change in energy\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "R = 1.0 #radius(m)\n",
- "T = 1.0 #period of revolution(s)\n",
- "m = 1.0 #mass of stone(kg)\n",
- "h = 1.055 * 10**-34 #planks constant (kg.m^2/s)\n",
- "\n",
- "#Calculation\n",
- "\n",
- "v = 2*math.pi*R/T\n",
- "L = m * v * R\n",
- "l = L / h\n",
- "\n",
- "#Results\n",
- "\n",
- "print \"The orbital quantum number l is\",round(l/10**34,2),\"X 10^34.\""
+ "#result\n",
+ "print\"The energy of the Ka x-ray of the sodium atom in KeV.is\",round(delE/10**3,3);\n"
],
"language": "python",
"metadata": {},
@@ -56,45 +43,38 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The orbital quantum number l is 5.96 X 10^34.\n"
+ "The energy of the Ka x-ray of the sodium atom in KeV.is 1.02\n"
]
}
],
- "prompt_number": 2
+ "prompt_number": 1
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 8.6, page no. 272"
+ "Example 8.2 Page 249"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "EKa=21.990;EKb=25.145;EK=25.514 #all the values are in KeV\n",
"\n",
+ "#calcualtion\n",
+ "ELo=EKb-EKa;\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "l = 3 #orbital quantum number\n",
+ "#result\n",
+ "print\"The energy of La of X-ray in KeV.is\",round(ELo,3); #Energy of La X-ray\n",
"\n",
- "#Calculation and results\n",
+ "#partb\n",
+ "EL=-EK+EKa;\n",
"\n",
- "L = math.sqrt(l*(l+1))\n",
- "print \"The allowed values of Lz are\"\n",
- "for i in range(-l,l+1):\n",
- " print i,\"h\"\n",
- "print \"The allowed values of theta are\"\n",
- "for i in range(-l,l+1):\n",
- " theta = round(math.acos(i/L)*180/math.pi,1)\n",
- " if theta > 90:\n",
- " print theta-180\n",
- " else:\n",
- " print theta"
+ "#result\n",
+ "print\"Hence the binding energy of the L electon in KeV.is\",round(EL,3); # for electron L electron"
],
"language": "python",
"metadata": {},
@@ -103,55 +83,35 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The allowed values of Lz are\n",
- "-3 h\n",
- "-2 h\n",
- "-1 h\n",
- "0 h\n",
- "1 h\n",
- "2 h\n",
- "3 h\n",
- "The allowed values of theta are\n",
- "-30.0\n",
- "-54.7\n",
- "-73.2\n",
- "90.0\n",
- "73.2\n",
- "54.7\n",
- "30.0\n"
+ "The enrgy of La of X-ray in KeV.is 3.155\n",
+ "Hence the binding energy of the L electon in KeV.is -3.524\n"
]
}
],
- "prompt_number": 5
+ "prompt_number": 2
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 8.7, page no. 281"
+ "Example 8.3 Page 250"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "l=1.0; \n",
"\n",
+ "#calculation\n",
+ "Lmax=l+l;Lmin=l-l;\n",
+ "s=1.0/2; Smax=s+s;Smin=s-s;\n",
"\n",
- "#Variable declaration\n",
- "\n",
- "n = 2\n",
- "Z = 1\n",
- "\n",
- "#Calculation and results\n",
- " \n",
- "print \"The states of hydrogen atom are\"\n",
- "for i in range(n):\n",
- " for j in range(-i,i+1):\n",
- " print \"n = \",n,\"l = \",i,\"ml = \",j\n",
- "\n",
- "E2 = -13.6 * Z**2/n**2\n",
- "print \"All states have same energy of \",E2,\"eV.\""
+ "#result\n",
+ "print\"Value of L ranges from\",Lmin,\" to\",Lmax,\" i.e\",Lmin,1,Lmax;\n",
+ "print\"Values of S are maxi,min\",Smax,Smin;\n"
],
"language": "python",
"metadata": {},
@@ -160,47 +120,37 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The states of hydrogen atom are\n",
- "n = 2 l = 0 ml = 0\n",
- "n = 2 l = 1 ml = -1\n",
- "n = 2 l = 1 ml = 0\n",
- "n = 2 l = 1 ml = 1\n",
- "All states have same energy of -3.4 eV.\n"
+ "Value of L ranges from 0.0 to 2.0 i.e 0.0 1 2.0\n",
+ "Values of S are maxi,min 1.0 0.0\n"
]
}
],
- "prompt_number": 9
+ "prompt_number": 5
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 8.8, page no. 284"
+ "Example 8.4 Page 250"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "l=1.0; \n",
"\n",
- "import scipy\n",
- "from scipy import integrate\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
- "\n",
- "z2 = lambda z: z**2 * math.e ** -z\n",
- "\n",
- "#Calculation\n",
- "inf = float('inf')\n",
- "integ,err = scipy.integrate.quad(z2,2.0,inf)\n",
- "P = integ * 0.5\n",
+ "#calculation\n",
+ "Lmax=l+l;Lmin=l-l;\n",
+ "s=1.0/2; Smax=s+s;Smin=s-s;\n",
"\n",
"#result\n",
- "\n",
- "print \"The probability is\",round(P,3)\n",
- "\n"
+ "print\"Considering any two electrons,Value of L2e ranges from\",Lmin,\" to\",Lmax,\" i.e\",Lmin,1,Lmax;\n",
+ "print\"Adding the angular momentum of the third electron to L2emax gives the maximum whole angular momentum as 2+1=3; and subtracting it from L2e=1 gives 0\"\n",
+ "print\"Values of S are maxi,min\",Smax,Smin;\n",
+ "print\"Adding and subtracting the spin of third to S2e=1 and S2e=0 respectively gives the spins 3/2 and 1/2 for the 3 electron system.\";"
],
"language": "python",
"metadata": {},
@@ -209,11 +159,14 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The probability is 0.677\n"
+ "Considering any two electrons,Value of L2e ranges from 0.0 to 2.0 i.e 0.0 1 2.0\n",
+ "Adding the angular momentum of the third electron to L2emax gives the maximum whole angular momentum as 2+1=3; and subtracting it from L2e=1 gives 0\n",
+ "Values of S are maxi,min 1.0 0.0\n",
+ "Adding and subtracting the spin of third to S2e=1 and S2e=0 respectively gives the spins 3/2 and 1/2 for the 3 electron system.\n"
]
}
],
- "prompt_number": 7
+ "prompt_number": 6
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter8_1.ipynb b/Modern_Physics/Chapter8_1.ipynb
new file mode 100755
index 00000000..1c6a6bdb
--- /dev/null
+++ b/Modern_Physics/Chapter8_1.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "MP-8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Many Electron Atoms"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.1 Page 248"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nhc=1240.0*10**-9;Rinfi=1.097*10**7;Z=11; #for sodium atom;and other constants in MeV\n\n#calculation\ndelE=3*hc*Rinfi*(Z-1)**2/4.0 #change in energy\n\n#result\nprint\"The energy of the Ka x-ray of the sodium atom in KeV.is\",round(delE/10**3,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The energy of the Ka x-ray of the sodium atom in KeV.is 1.02\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.2 Page 249"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nEKa=21.990;EKb=25.145;EK=25.514 #all the values are in KeV\n\n#calcualtion\nELo=EKb-EKa;\n\n#result\nprint\"The enrgy of La of X-ray in KeV.is\",round(ELo,3); #Energy of La X-ray\n\n#partb\nEL=-EK+EKa;\n\n#result\nprint\"Hence the binding energy of the L electon in KeV.is\",round(EL,3); # for electron L electron",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The enrgy of La of X-ray in KeV.is 3.155\nHence the binding energy of the L electon in KeV.is -3.524\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.3 Page 250"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nl=1.0; \n\n#calculation\nLmax=l+l;Lmin=l-l;\ns=1.0/2; Smax=s+s;Smin=s-s;\n\n#result\nprint\"Value of L ranges from\",Lmin,\" to\",Lmax,\" i.e\",Lmin,1,Lmax;\nprint\"Values of S are maxi,min\",Smax,Smin;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Value of L ranges from 0.0 to 2.0 i.e 0.0 1 2.0\nValues of S are maxi,min 1.0 0.0\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.4 Page 250"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nl=1.0; \n\n#calculation\nLmax=l+l;Lmin=l-l;\ns=1.0/2; Smax=s+s;Smin=s-s;\n\n#result\nprint\"Considering any two electrons,Value of L2e ranges from\",Lmin,\" to\",Lmax,\" i.e\",Lmin,1,Lmax;\nprint\"Adding the angular momentum of the third electron to L2emax gives the maximum whole angular momentum as 2+1=3; and subtracting it from L2e=1 gives 0\"\nprint\"Values of S are maxi,min\",Smax,Smin;\nprint\"Adding and subtracting the spin of third to S2e=1 and S2e=0 respectively gives the spins 3/2 and 1/2 for the 3 electron system.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Considering any two electrons,Value of L2e ranges from 0.0 to 2.0 i.e 0.0 1 2.0\nAdding the angular momentum of the third electron to L2emax gives the maximum whole angular momentum as 2+1=3; and subtracting it from L2e=1 gives 0\nValues of S are maxi,min 1.0 0.0\nAdding and subtracting the spin of third to S2e=1 and S2e=0 respectively gives the spins 3/2 and 1/2 for the 3 electron system.\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter8_2.ipynb b/Modern_Physics/Chapter8_2.ipynb
new file mode 100755
index 00000000..1c6a6bdb
--- /dev/null
+++ b/Modern_Physics/Chapter8_2.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "MP-8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Many Electron Atoms"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.1 Page 248"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nhc=1240.0*10**-9;Rinfi=1.097*10**7;Z=11; #for sodium atom;and other constants in MeV\n\n#calculation\ndelE=3*hc*Rinfi*(Z-1)**2/4.0 #change in energy\n\n#result\nprint\"The energy of the Ka x-ray of the sodium atom in KeV.is\",round(delE/10**3,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The energy of the Ka x-ray of the sodium atom in KeV.is 1.02\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.2 Page 249"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nEKa=21.990;EKb=25.145;EK=25.514 #all the values are in KeV\n\n#calcualtion\nELo=EKb-EKa;\n\n#result\nprint\"The enrgy of La of X-ray in KeV.is\",round(ELo,3); #Energy of La X-ray\n\n#partb\nEL=-EK+EKa;\n\n#result\nprint\"Hence the binding energy of the L electon in KeV.is\",round(EL,3); # for electron L electron",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The enrgy of La of X-ray in KeV.is 3.155\nHence the binding energy of the L electon in KeV.is -3.524\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.3 Page 250"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nl=1.0; \n\n#calculation\nLmax=l+l;Lmin=l-l;\ns=1.0/2; Smax=s+s;Smin=s-s;\n\n#result\nprint\"Value of L ranges from\",Lmin,\" to\",Lmax,\" i.e\",Lmin,1,Lmax;\nprint\"Values of S are maxi,min\",Smax,Smin;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Value of L ranges from 0.0 to 2.0 i.e 0.0 1 2.0\nValues of S are maxi,min 1.0 0.0\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8.4 Page 250"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nl=1.0; \n\n#calculation\nLmax=l+l;Lmin=l-l;\ns=1.0/2; Smax=s+s;Smin=s-s;\n\n#result\nprint\"Considering any two electrons,Value of L2e ranges from\",Lmin,\" to\",Lmax,\" i.e\",Lmin,1,Lmax;\nprint\"Adding the angular momentum of the third electron to L2emax gives the maximum whole angular momentum as 2+1=3; and subtracting it from L2e=1 gives 0\"\nprint\"Values of S are maxi,min\",Smax,Smin;\nprint\"Adding and subtracting the spin of third to S2e=1 and S2e=0 respectively gives the spins 3/2 and 1/2 for the 3 electron system.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Considering any two electrons,Value of L2e ranges from 0.0 to 2.0 i.e 0.0 1 2.0\nAdding the angular momentum of the third electron to L2emax gives the maximum whole angular momentum as 2+1=3; and subtracting it from L2e=1 gives 0\nValues of S are maxi,min 1.0 0.0\nAdding and subtracting the spin of third to S2e=1 and S2e=0 respectively gives the spins 3/2 and 1/2 for the 3 electron system.\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter9.ipynb b/Modern_Physics/Chapter9.ipynb
index 52c8dc08..34acce85 100755
--- a/Modern_Physics/Chapter9.ipynb
+++ b/Modern_Physics/Chapter9.ipynb
@@ -1,7 +1,6 @@
{
"metadata": {
- "name": "",
- "signature": "sha256:a22a4cd44988289c63c9da64c71766c244fd20324a2c5a80b53d48938212c4cc"
+ "name": "Chapter9"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +12,7 @@
"level": 1,
"metadata": {},
"source": [
- "Chapter 9: Atomic Structure"
+ "Chapter 9:Molecular Structure"
]
},
{
@@ -21,30 +20,71 @@
"level": 2,
"metadata": {},
"source": [
- "Example 9.1, page no. 300"
+ "Example 9.1 Page 270"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "E=-2.7;\n",
+ "K=9.0*(10**9)*((1.6*(10**-19))**2)/(0.106*10**-9);# taking all the values in meters. 1/(4*pi*e0)= 9*10^9 F/m\n",
"\n",
+ "#calculation\n",
+ "q=((K-E*10**-9)/(4*K))*10**-9; #balancing by multiplying 10^-9 on numerator. to eV.vm terms\n",
"\n",
- "#Variable declaration\n",
+ "#result\n",
+ "print\"Charge on the sphere required is\",round(q,4),\" times the charge of electron.\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Charge on the sphere required is 0.3105 times the charge of electron.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2 Page 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "K=1.44; Req=0.236; # K=e^2/(4*pi*e0)=1.44 eV.nm\n",
+ "\n",
+ "#calculation\n",
+ "Uc=-K/(Req); #coulomb energy\n",
"\n",
- "Ub = 9.27 * 10 ** -24 #(J/T)\n",
- "B = 1.00 #magnetic field strength (T)\n",
- "h = 6.58 * 10 ** -16 #Planck's constant (eV.s)\n",
- "e = 1.6 * 10 ** -19 #electron charge (C)\n",
+ "#result\n",
+ "print\"The coulomb energy at an equilibrium separation distance in eV is\",round(Uc,3);\n",
"\n",
- "#Calculation\n",
+ "E=-4.26; delE=1.53; #various standards values of NaCl\n",
+ "Ur=E-Uc-delE; \n",
"\n",
- "hwl = Ub * B / e\n",
- "wl = hwl / h\n",
+ "#result\n",
+ "print\"The pauli''s repulsion energy in eV is\",round(Ur,3);\n",
"\n",
- "#results\n",
+ "#partb\n",
+ "Req=0.1; #pauli repulsion energy\n",
+ "Uc=-K/(Req);\n",
+ "E=4; delE=1.53;\n",
+ "Ur=E-Uc-delE;\n",
"\n",
- "print \"The magnetic energy is\",round(hwl/10**-5,2),\"x 10^-5 eV and the Larmor frequency is\",round(wl/10**10,2),\"x 10^10 rad/s.\"\n"
+ "#result\n",
+ "print\"The pauli''s repulsion energy in eV is\",round(Ur,3);\n"
],
"language": "python",
"metadata": {},
@@ -53,38 +93,121 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "The magnetic energy is 5.79 x 10^-5 eV and the Larmor frequency is 8.81 x 10^10 rad/s.\n"
+ "The coulomb energy at an equilirium separation distance in eV is -6.102\n",
+ "The pauli''s repulsion energy in eV is 0.312\n",
+ "The pauli''s repulsion energy in eV is 16.87\n"
]
}
],
- "prompt_number": 2
+ "prompt_number": 4
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 9.4, page no. 311"
+ "Example 9.3 Page 276"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import pi, sqrt\n",
+ "delE=0.50; delR=0.017*10**-9; #delE= E-Emin; delR=R-Rmin;\n",
+ "k=2*(delE)/(delR**2);c=3*10**8; #force constant\n",
+ "m=(1.008)*(931.5*10**6)*0.5; #mass of molecular hydrogen\n",
+ "v= sqrt(k*c**2/m)/(2*pi); #vibrational frequency\n",
+ "h=4.14*(10**-15);\n",
"\n",
- "#Variable declaration\n",
+ "#calculation\n",
+ "E=h*v;\n",
"\n",
- "l2 = 589.592 #sodium doublet wavelength (nm)\n",
- "l1 = 588.995 #sodium doublet wavelength (nm)\n",
- "hc = 1240 #planck's constant X speed of light (eV.nm)\n",
- "\n",
- "#Calculation\n",
+ "#result\n",
+ "print\"The value of corresponding photon energy in eV is\",round(E,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of corresponding photon energy in eV is 0.537\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi, sqrt\n",
+ "hc=1240.0; #in eV.nm\n",
+ "m=0.5*1.008*931.5*10**6; #mass of hydrogen atom\n",
+ "Req=0.074; #equivalent radius\n",
"\n",
- "dE = hc * (l2-l1)/(l2*l1)\n",
+ "#calculation\n",
+ "a=((hc)**2)/(4*(pi**2)*m*(Req**2)); #reduced mass of hydrogen atom\n",
+ "for L in range(1,4):\n",
+ " delE= L*a; \n",
+ " print\"The value of energy in eV is\",round(delE,4); \n",
+ " w=(hc)/delE;\n",
+ " print\"The respective wavelength in um is\",round(w*10**-3,3); \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of energy in eV is 0.0151\n",
+ "The respective wavelength in um is 81.849\n",
+ "The value of energy in eV is 0.0303\n",
+ "The respective wavelength in um is 40.925\n",
+ "The value of energy in eV is 0.0454\n",
+ "The respective wavelength in um is 27.283\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "delv=6.2*(10**11); #change in frequency\n",
+ "h=1.05*(10**-34); #value of h in J.sec\n",
"\n",
- "#Results\n",
+ "#calculation\n",
+ "I= h/(2*pi*delv); #rotational inertia\n",
+ "I1=I/(1.684604*10**-45); #to change units\n",
"\n",
- "print \"dE =\",round(dE/10**-3,2),\"X 10^-3 eV represents the spin orbit splitting of the initial levels.\""
+ "#result\n",
+ "print\"The value of rotational inertia in kg m2 is %.1e\" %I;\n",
+ "print\"which in terms of amu in u.nm2 is\",round(I1,3);"
],
"language": "python",
"metadata": {},
@@ -93,40 +216,48 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "dE = 2.13 X 10^-3 eV represents the spin orbit splitting of the initial levels.\n"
+ "The value of rotational inertia in kg m2 is 2.69536597172e-47\n",
+ "which in terms of amu in u.nm2 is 0.016\n"
]
}
],
- "prompt_number": 6
+ "prompt_number": 16
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
- "Example 9.6, page no. 317"
+ "Example 9.6 Page 286"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
+ "#initiation of variable\n",
+ "from math import pi\n",
+ "delE=0.358;hc=4.14*10**-15; #hc in eV.nm and delE=1.44eV(given values)\n",
"\n",
- "import math\n",
- "\n",
- "#Variable declaration\n",
+ "#calculation\n",
+ "f=(delE)/hc; #frequency \n",
"\n",
- "E = -5.14 #Energy of the 3s electron in sodium (eV)\n",
- "Eh = 13.6 #energy of the 3s electron in hydrogen (eV)\n",
+ "#result\n",
+ "print\"The frequency of the radiation is \",f;\n",
"\n",
"\n",
- "#Calculation\n",
+ "m=0.98; #mass in terms of u\n",
+ "k=4*pi**2*m*f**2; #value of k in eV/m^2\n",
"\n",
- "Zeff = 3 * math.sqrt(-E/Eh)\n",
+ "#result\n",
+ "print\"The force constant is\",k; \n",
"\n",
- "#Results\n",
+ "#partb\n",
+ "hc=1240.0; m=0.98*1.008*931.5*10**6; Req=0.127; #various constants in terms of \n",
+ "s=((hc)**2)/(4*(pi**2)*m*(Req**2)); # expected spacing \n",
"\n",
- "print \"Zeff for the 3s electron in sodium is\",round(Zeff,2)"
+ "#result\n",
+ "print\"The spacing was found out to be\",round(s,3),\"which is very close to the graphical value of 0.0026 eV.\""
],
"language": "python",
"metadata": {},
@@ -135,11 +266,13 @@
"output_type": "stream",
"stream": "stdout",
"text": [
- "Zeff for the 3s electron in sodium is 1.84\n"
+ "The frequency of the radiation is 8.64734299517e+13\n",
+ "The force constant is 2.89301831756e+29\n",
+ "The spacing was found out to be 0.003 which is very close to the graphical value of 0.0026 eV.\n"
]
}
],
- "prompt_number": 10
+ "prompt_number": 19
}
],
"metadata": {}
diff --git a/Modern_Physics/Chapter9_1.ipynb b/Modern_Physics/Chapter9_1.ipynb
new file mode 100755
index 00000000..1cfbf676
--- /dev/null
+++ b/Modern_Physics/Chapter9_1.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Molecular Structure"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.1 Page 270"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nE=-2.7;\nK=9.0*(10**9)*((1.6*(10**-19))**2)/(0.106*10**-9);# taking all the values in meters. 1/(4*pi*e0)= 9*10^9 F/m\n\n#calculation\nq=((K-E*10**-9)/(4*K))*10**-9; #balancin by multiplying 10^-9 on numerator. to eV.vm terms\n\n#result\nprint\"Charge on the sphere required is\",round(q,4),\" times the charge of electron.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Charge on the sphere required is 0.3105 times the charge of electron.\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.2 Page 273"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nK=1.44; Req=0.236; # K=e^2/(4*pi*e0)=1.44 eV.nm\n\n#calculation\nUc=-K/(Req); #coulomb energy\n\n#result\nprint\"The coulomb energy at an equilirium separation distance in eV is\",round(Uc,3);\n\nE=-4.26; delE=1.53; #various standars values of NaCl\nUr=E-Uc-delE; \n\n#result\nprint\"The pauli''s repulsion energy in eV is\",round(Ur,3);\n\n#partb\nReq=0.1; #pauli repulsion energy\nUc=-K/(Req);\nE=4; delE=1.53;\nUr=E-Uc-delE;\n\n#result\nprint\"The pauli''s repulsion energy in eV is\",round(Ur,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The coulomb energy at an equilirium separation distance in eV is -6.102\nThe pauli''s repulsion energy in eV is 0.312\nThe pauli''s repulsion energy in eV is 16.87\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.3 Page 276"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi, sqrt\ndelE=0.50; delR=0.017*10**-9; #delE= E-Emin; delR=R-Rmin;\nk=2*(delE)/(delR**2);c=3*10**8; #force constant\nm=(1.008)*(931.5*10**6)*0.5; #mass of molecular hydrogen\nv= sqrt(k*c**2/m)/(2*pi); #vibrational frequency\nh=4.14*(10**-15);\n\n#calculation\nE=h*v;\n\n#result\nprint\"The value of corresponding photon energy in eV is\",round(E,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of corresponding photon energy in eV is 0.537\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.4 Page 280"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi, sqrt\nhc=1240.0; #in eV.nm\nm=0.5*1.008*931.5*10**6; #mass of hydrogen atom\nReq=0.074; #equivalent radius\n\n#calculation\na=((hc)**2)/(4*(pi**2)*m*(Req**2)); #reduced mass of hydrogen atom\nfor L in range(1,4):\n delE= L*a; \n print\"The value of energy in eV is\",round(delE,4); \n w=(hc)/delE;\n print\"The respective wavelength in um is\",round(w*10**-3,3); \n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of energy in eV is 0.0151\nThe respective wavelength in um is 81.849\nThe value of energy in eV is 0.0303\nThe respective wavelength in um is 40.925\nThe value of energy in eV is 0.0454\nThe respective wavelength in um is 27.283\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.5 Page 283"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\ndelv=6.2*(10**11); #change in frequency\nh=1.05*(10**-34); #value of h in J.sec\n\n#calculation\nI= h/(2*pi*delv); #rotational inertia\nI1=I/(1.684604*10**-45); #to change units\n\n#result\nprint\"The value of rotational inertia in kg m2 is %.1e\" %I;\nprint\"which in terms of amu in u.nm2 is\",round(I1,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of rotational inertia in kg m2 is 2.69536597172e-47\nwhich in terms of amu in u.nm2 is 0.016\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.6 Page 286"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\ndelE=0.358;hc=4.14*10**-15; #hc in eV.nm and delE=1.44eV(given values)\n\n#calculation\nf=(delE)/hc; #frequency \n\n#result\nprint\"The frequency of the radiation is \",f;\n\n\nm=0.98; #mass in terms of u\nk=4*pi**2*m*f**2; #value of k in eV/m^2\n\n#result\nprint\"The force constant is\",k; \n\n#partb\nhc=1240.0; m=0.98*1.008*931.5*10**6; Req=0.127; #various constants in terms of \ns=((hc)**2)/(4*(pi**2)*m*(Req**2)); # expeted spacing \n\n#result\nprint\"The spacing was found out to be\",round(s,3),\"which is very close to the graphical value of 0.0026 eV.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The frequency of the radiation is 8.64734299517e+13\nThe force constant is 2.89301831756e+29\nThe spacing was found out to be 0.003 which is very close to the graphical value of 0.0026 eV.\n"
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/Chapter9_2.ipynb b/Modern_Physics/Chapter9_2.ipynb
new file mode 100755
index 00000000..1cfbf676
--- /dev/null
+++ b/Modern_Physics/Chapter9_2.ipynb
@@ -0,0 +1,146 @@
+{
+ "metadata": {
+ "name": "MP-9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Molecular Structure"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.1 Page 270"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nE=-2.7;\nK=9.0*(10**9)*((1.6*(10**-19))**2)/(0.106*10**-9);# taking all the values in meters. 1/(4*pi*e0)= 9*10^9 F/m\n\n#calculation\nq=((K-E*10**-9)/(4*K))*10**-9; #balancin by multiplying 10^-9 on numerator. to eV.vm terms\n\n#result\nprint\"Charge on the sphere required is\",round(q,4),\" times the charge of electron.\";",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Charge on the sphere required is 0.3105 times the charge of electron.\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.2 Page 273"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nK=1.44; Req=0.236; # K=e^2/(4*pi*e0)=1.44 eV.nm\n\n#calculation\nUc=-K/(Req); #coulomb energy\n\n#result\nprint\"The coulomb energy at an equilirium separation distance in eV is\",round(Uc,3);\n\nE=-4.26; delE=1.53; #various standars values of NaCl\nUr=E-Uc-delE; \n\n#result\nprint\"The pauli''s repulsion energy in eV is\",round(Ur,3);\n\n#partb\nReq=0.1; #pauli repulsion energy\nUc=-K/(Req);\nE=4; delE=1.53;\nUr=E-Uc-delE;\n\n#result\nprint\"The pauli''s repulsion energy in eV is\",round(Ur,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The coulomb energy at an equilirium separation distance in eV is -6.102\nThe pauli''s repulsion energy in eV is 0.312\nThe pauli''s repulsion energy in eV is 16.87\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.3 Page 276"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi, sqrt\ndelE=0.50; delR=0.017*10**-9; #delE= E-Emin; delR=R-Rmin;\nk=2*(delE)/(delR**2);c=3*10**8; #force constant\nm=(1.008)*(931.5*10**6)*0.5; #mass of molecular hydrogen\nv= sqrt(k*c**2/m)/(2*pi); #vibrational frequency\nh=4.14*(10**-15);\n\n#calculation\nE=h*v;\n\n#result\nprint\"The value of corresponding photon energy in eV is\",round(E,3);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of corresponding photon energy in eV is 0.537\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.4 Page 280"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi, sqrt\nhc=1240.0; #in eV.nm\nm=0.5*1.008*931.5*10**6; #mass of hydrogen atom\nReq=0.074; #equivalent radius\n\n#calculation\na=((hc)**2)/(4*(pi**2)*m*(Req**2)); #reduced mass of hydrogen atom\nfor L in range(1,4):\n delE= L*a; \n print\"The value of energy in eV is\",round(delE,4); \n w=(hc)/delE;\n print\"The respective wavelength in um is\",round(w*10**-3,3); \n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of energy in eV is 0.0151\nThe respective wavelength in um is 81.849\nThe value of energy in eV is 0.0303\nThe respective wavelength in um is 40.925\nThe value of energy in eV is 0.0454\nThe respective wavelength in um is 27.283\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.5 Page 283"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\ndelv=6.2*(10**11); #change in frequency\nh=1.05*(10**-34); #value of h in J.sec\n\n#calculation\nI= h/(2*pi*delv); #rotational inertia\nI1=I/(1.684604*10**-45); #to change units\n\n#result\nprint\"The value of rotational inertia in kg m2 is %.1e\" %I;\nprint\"which in terms of amu in u.nm2 is\",round(I1,3);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The value of rotational inertia in kg m2 is 2.69536597172e-47\nwhich in terms of amu in u.nm2 is 0.016\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.6 Page 286"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "#initiation of variable\nfrom math import pi\ndelE=0.358;hc=4.14*10**-15; #hc in eV.nm and delE=1.44eV(given values)\n\n#calculation\nf=(delE)/hc; #frequency \n\n#result\nprint\"The frequency of the radiation is \",f;\n\n\nm=0.98; #mass in terms of u\nk=4*pi**2*m*f**2; #value of k in eV/m^2\n\n#result\nprint\"The force constant is\",k; \n\n#partb\nhc=1240.0; m=0.98*1.008*931.5*10**6; Req=0.127; #various constants in terms of \ns=((hc)**2)/(4*(pi**2)*m*(Req**2)); # expeted spacing \n\n#result\nprint\"The spacing was found out to be\",round(s,3),\"which is very close to the graphical value of 0.0026 eV.\"",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The frequency of the radiation is 8.64734299517e+13\nThe force constant is 2.89301831756e+29\nThe spacing was found out to be 0.003 which is very close to the graphical value of 0.0026 eV.\n"
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/README.txt b/Modern_Physics/README.txt
index a4569c81..f150a0fb 100755
--- a/Modern_Physics/README.txt
+++ b/Modern_Physics/README.txt
@@ -1,10 +1,10 @@
-Contributed By: Puneetha Ramachandra
-Course: be
-College/Institute/Organization: National Institute of Technology
-Department/Designation: Electronics & CommunicationsEngg
+Contributed By: KRISHNA CHAITANYA
+Course: btech
+College/Institute/Organization: JNTUH
+Department/Designation: Computer Science
Book Title: Modern Physics
-Author: Serway, Moses & Moyer
-Publisher: Thomson Learning, Inc.
-Year of publication: 2005
-Isbn: 0-534-40624-6
-Edition: 3rd \ No newline at end of file
+Author: G. Aruldhas & P. Rajagopal
+Publisher: PHI Learning Private Limited, New Delhi
+Year of publication: 2009
+Isbn: 978-81-203-2597-5
+Edition: 4 \ No newline at end of file
diff --git a/Modern_Physics/chapter1.ipynb b/Modern_Physics/chapter1.ipynb
new file mode 100755
index 00000000..25ce0403
--- /dev/null
+++ b/Modern_Physics/chapter1.ipynb
@@ -0,0 +1,383 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:70cab6f9b725623fc2451b245c5190bb3397c02f8debec03cc8b79cdd3e4b714"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Electric and Magnetic Fields"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.1, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q1=3.2*10**-19;\n",
+ "q2=q1; #q1 and q2 are the values of charge on alpha-particle(C)\n",
+ "d=10**-13; #distance between two alpha-particles(m)\n",
+ "m1=6.68*10**-27;\n",
+ "m2=m1; #m1 and m2 are masses of alpha-particles(kg)\n",
+ "G=6.67*10**-11; #Gravitational constant(Nm^2/kg^2)\n",
+ "\n",
+ "#Calculation\n",
+ "F1=(9*10**9)*(q1*q2)/(d**2); #calculation of electrostatic force(N)\n",
+ "F2=G*(m1*m2)/(d**2); #calculation of electrostatic force(N)\n",
+ "F1=math.ceil(F1*10**4)/10**4; #rounding off to 4 decimals\n",
+ "F1 = F1*10**2;\n",
+ "\n",
+ "#Result\n",
+ "print \"The electrosatic force is\",F1,\"*10**-2 N\"\n",
+ "print \"The gravitational force is\",round(F2/1e-37,3),\"*10**-37 N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electrosatic force is 9.22 *10**-2 N\n",
+ "The gravitational force is 2.976 *10**-37 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of elctron(kg)\n",
+ "q=1.6*10**-19; #charge on electron(C)\n",
+ "g=9.81; #acceleration due to gravity(m/s^2)\n",
+ "\n",
+ "#Calculation\n",
+ "Fg=m*g; #gravitational force(N)\n",
+ "d=math.sqrt((9*10**9*q**2)/Fg); #equating gravitational force with electrosatic force(m)\n",
+ "d=math.ceil(d*10**3)/10**3; #rounding off to 4 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The distance of separation is\",d,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance of separation is 5.081 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=0.02; #distance between plates(m)\n",
+ "V=400; #potential differnce of plates(V)\n",
+ "q=1.6*10**-19; #charge on a proton(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=V/d; #electric field intensity between plates(V/m)\n",
+ "F=q*E; #electrostatic force on oil drop(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"The electric field intensity between plates is\",E,\"V/m\"\n",
+ "print \"The force on proton is\",F,\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electric field intensity between plates is 20000.0 V/m\n",
+ "The force on proton is 3.2e-15 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=0.02; #distance between plates(m)\n",
+ "q=1.6*10**-19; #charge on oil drop(C)\n",
+ "V=6000; #potential differnce of plates(V)\n",
+ "g=9.81; #acceleration due to gravity(m/s^2)\n",
+ "\n",
+ "#Calculation\n",
+ "E=V/d; #electric field intensity between plates(V/m)\n",
+ "F=q*E; #electrostatic force on oil drop(N)\n",
+ "m=F/g; #equating the weight of oil drop to the electrostatic force on it(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"The mass of oil drop is\",round(m/1e-15,3),\"*10**-15 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mass of oil drop is 4.893 *10**-15 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=150; #potential difference between anode and cathode(V)\n",
+ "m=9.31*10**-31; #mass of an electron(kg)\n",
+ "q=1.6*10**-19; #charge on an electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=q*V; #energy gained by electron during speeding from cathode to anode(J)\n",
+ "vel=math.sqrt(E*2/m); #equating with kinetic energy of electron(m/s)\n",
+ "vel=vel*10**-6;\n",
+ "vel=math.ceil(vel*10)/10; #rounding off to 1 decimal\n",
+ "\n",
+ "#Result\n",
+ "print \"The velocity is\",vel,\"*10**6 m/s\"\n",
+ "print \"answer in the book is wrong by 1 decimal\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The velocity is 7.2 *10**6 m/s\n",
+ "answer in the book is wrong by 1 decimal\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=5*10**6; #potential differnce through which alpha-particle is accelerated(V)\n",
+ "e=1.6*10**-19; #charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E1=2*V; #electronic charge on alpha-particle(eV)\n",
+ "E2=E1/10**6; #energy(MeV)\n",
+ "E3=E1*e; #energy(J)\n",
+ "E1=E1*10**-7; \n",
+ "\n",
+ "#Result\n",
+ "print \"The energy is\",E1,\"*10**7 eV\"\n",
+ "print \"The energy is\",E2,\"MeV\"\n",
+ "print \"The energy is\",E3,\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy is 1.0 *10**7 eV\n",
+ "The energy is 10.0 MeV\n",
+ "The energy is 1.6e-12 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.528*10**-10; #radius of the orbit(m)\n",
+ "q=-1.6*10**-19; #charge on electron(C)\n",
+ "Q=1.6*10**-19; #charge on Hydrogen nucleus(C)\n",
+ "Eo=8.854*10**-12; #permittivity in free space(F/m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(q*Q)/(8*3.14*Eo*r); #electric field intensity between plates(V/m)\n",
+ "E1=E/(1.6*10**-19); #electrifeild intensity(eV)\n",
+ "E=E*10**19;\n",
+ "E=math.ceil(E*10**2)/10**2; #rounding off to 2 decimals\n",
+ "E1=math.ceil(E1*10**2)/10**2; #rounding off to 2 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The total energy is\",E,\"*10**-19 J\"\n",
+ "print \"The total energy is\",E1,\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total energy is -21.79 *10**-19 J\n",
+ "The total energy is -13.62 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Q=3.2*10**-19; #charge on alpha-particle(C)\n",
+ "m=6.68*10**-27; #mass on alpha-particle(kg)\n",
+ "B=1.5; #transverse magnetic field of flux density(Wb/m^2)\n",
+ "v=5*10**6; #velocity of alpha-particle(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "F=B*Q*v; #electrostatic force on oil drop(N)\n",
+ "R=m*v/(Q*B); #radius(m)\n",
+ "R=math.ceil(R*10**2)/10**2; #rounding off to 2 decimals\n",
+ "R1 = R*100; #radius(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The force on particle is\",F,\"N\"\n",
+ "print \"The radius of its circular path\",R,\"m or\",R1,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force on particle is 2.4e-12 N\n",
+ "The radius of its circular path 0.07 m or 7.0 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter11.ipynb b/Modern_Physics/chapter11.ipynb
new file mode 100755
index 00000000..f92c7d71
--- /dev/null
+++ b/Modern_Physics/chapter11.ipynb
@@ -0,0 +1,336 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:47ab953016e5f85b7389dfd03b89e4eaceb4217fd3c41781effc5a2eb8d08d3e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Natural Radioactivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ttg=8378-1898; #total time gap(yrs)\n",
+ "hf=1620; #half life(yrs)\n",
+ "n=ttg/hf; #number of half-periods\n",
+ "Mo=200; #amount of radium(mg)\n",
+ "\n",
+ "#Calculation\n",
+ "M=Mo*(0.5)**n; #amount of radium left(mg)\n",
+ "\n",
+ "#Result\n",
+ "print \"amount of radium left is\",M,\"mg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of radium left is 12.5 mg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=30; #half life(days)\n",
+ "#M is intial conc.\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/T; #radioactive disintegration constant(per day)\n",
+ "#M/4 is left\n",
+ "t1=-math.log(1/4)/lamda; #time taken(days)\n",
+ "#M/8 is left\n",
+ "t2=-math.log(1/8)/lamda; #time taken(days)\n",
+ "\n",
+ "#Result\n",
+ "print \"radioactive disintegration constant is\",lamda,\"per day\"\n",
+ "print \"time taken for 3/4th of original is\",int(t1),\"days\"\n",
+ "print \"time taken for 1/8th of original is\",int(t2),\"days\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radioactive disintegration constant is 0.0231 per day\n",
+ "time taken for 3/4th of original is 60 days\n",
+ "time taken for 1/8th of original is 90 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.3, Page number 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "No=4750; #count rate(per minute)\n",
+ "N=2700; #rate(counts/minute)\n",
+ "t=5; #time(minutes)\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=math.log(No/N)/t; #decay constant(per minute)\n",
+ "T=0.693/lamda; #half life(minutes)\n",
+ "\n",
+ "#Result\n",
+ "print \"radioactive disintegration constant is\",round(lamda,3),\"per minute\"\n",
+ "print \"half life of sample is\",round(T,1),\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radioactive disintegration constant is 0.113 per minute\n",
+ "half life of sample is 6.1 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.4, Page number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=4.00387; #mass of alpha particle(amu)\n",
+ "M=10**-6; #mass of Pu-239(kg) \n",
+ "\n",
+ "#Calculation\n",
+ "m=m*1.66*10**-24; #mass of alpha particle(g)\n",
+ "Mo=2300*m; #mass of 2300 alpha particles(g)\n",
+ "lamda=(Mo/1)/M; #radioactive disintegration constant(per second)\n",
+ "T=0.693/lamda; #half life period(seconds)\n",
+ "T=T/(365*24*3600); #half life period(years)\n",
+ "\n",
+ "#Result\n",
+ "print \"half life is\",round(T/1e+6,3),\"*10**6 years\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "half life is 1.438 *10**6 years\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.5, Page number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2.48*10**5; #half life(yrs)\n",
+ "lamda=8.88*10**-14 #decay constant (per second)\n",
+ "Mo=4; #intial mass(mg)\n",
+ "t=62000; #time(years)\n",
+ "Na=6.02*10**23; #Avgraodo no.(per g-mol)\n",
+ "\n",
+ "#Calculation\n",
+ "lamdat=0.693/T*t; \n",
+ "M=Mo*(math.exp(-lamdat)); #mass remained unchanged(mg) \n",
+ "N=M*10**-3*Na/234;\n",
+ "A=lamda*N; #activity(disintegrations/second)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass remained unchanged is\",round(M,3),\"mg\"\n",
+ "print \"Activity is\",round(A/1e+5,3),\"*10**5 disintegrations/second\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass remained unchanged is 3.364 mg\n",
+ "Activity is 7.684 *10**5 disintegrations/second\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.6, Page number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=1620; #half life(years)\n",
+ "Mo=1/100; #mass(g)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/T; #radioactive constant(per years) \n",
+ "M=(1-Mo); #amount of radium left behind(g) \n",
+ "t=math.log(1/M)/lamda; #time required to lose 1 centigram(years)\n",
+ "t1=math.log(1/Mo)/lamda; #time required to be reduced to 1 centigram(years)\n",
+ "\n",
+ "#Result\n",
+ "print \"time required to lose 1 centigram is\",round(t,1),\"years\"\n",
+ "print \"time required to be reduced to 1 centigram is\",int(t1),\"years\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to lose 1 centigram is 23.5 years\n",
+ "time required to be reduced to 1 centigram is 10765 years\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.7, Page number 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2*10**-4; #dead time(seconds)\n",
+ "n=500; #number of pulses(per second)\n",
+ "\n",
+ "#Calculation\n",
+ "n0=n/(1-(n*T)); #number of incoming particles(per second)\n",
+ "r=n*T*100; #relative error of counting(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"intensity of the incoming beam is\",int(n0),\"particles/second\"\n",
+ "print \"relative error of counting is\",int(r),\"%\"\n",
+ "print \"answer for intensity given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "intensity of the incoming beam is 555 particles/second\n",
+ "relative error of counting is 10 %\n",
+ "answer for intensity given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter11_1.ipynb b/Modern_Physics/chapter11_1.ipynb
new file mode 100755
index 00000000..f92c7d71
--- /dev/null
+++ b/Modern_Physics/chapter11_1.ipynb
@@ -0,0 +1,336 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:47ab953016e5f85b7389dfd03b89e4eaceb4217fd3c41781effc5a2eb8d08d3e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Natural Radioactivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ttg=8378-1898; #total time gap(yrs)\n",
+ "hf=1620; #half life(yrs)\n",
+ "n=ttg/hf; #number of half-periods\n",
+ "Mo=200; #amount of radium(mg)\n",
+ "\n",
+ "#Calculation\n",
+ "M=Mo*(0.5)**n; #amount of radium left(mg)\n",
+ "\n",
+ "#Result\n",
+ "print \"amount of radium left is\",M,\"mg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of radium left is 12.5 mg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=30; #half life(days)\n",
+ "#M is intial conc.\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/T; #radioactive disintegration constant(per day)\n",
+ "#M/4 is left\n",
+ "t1=-math.log(1/4)/lamda; #time taken(days)\n",
+ "#M/8 is left\n",
+ "t2=-math.log(1/8)/lamda; #time taken(days)\n",
+ "\n",
+ "#Result\n",
+ "print \"radioactive disintegration constant is\",lamda,\"per day\"\n",
+ "print \"time taken for 3/4th of original is\",int(t1),\"days\"\n",
+ "print \"time taken for 1/8th of original is\",int(t2),\"days\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radioactive disintegration constant is 0.0231 per day\n",
+ "time taken for 3/4th of original is 60 days\n",
+ "time taken for 1/8th of original is 90 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.3, Page number 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "No=4750; #count rate(per minute)\n",
+ "N=2700; #rate(counts/minute)\n",
+ "t=5; #time(minutes)\n",
+ "\n",
+ "#Calculation \n",
+ "lamda=math.log(No/N)/t; #decay constant(per minute)\n",
+ "T=0.693/lamda; #half life(minutes)\n",
+ "\n",
+ "#Result\n",
+ "print \"radioactive disintegration constant is\",round(lamda,3),\"per minute\"\n",
+ "print \"half life of sample is\",round(T,1),\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radioactive disintegration constant is 0.113 per minute\n",
+ "half life of sample is 6.1 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.4, Page number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=4.00387; #mass of alpha particle(amu)\n",
+ "M=10**-6; #mass of Pu-239(kg) \n",
+ "\n",
+ "#Calculation\n",
+ "m=m*1.66*10**-24; #mass of alpha particle(g)\n",
+ "Mo=2300*m; #mass of 2300 alpha particles(g)\n",
+ "lamda=(Mo/1)/M; #radioactive disintegration constant(per second)\n",
+ "T=0.693/lamda; #half life period(seconds)\n",
+ "T=T/(365*24*3600); #half life period(years)\n",
+ "\n",
+ "#Result\n",
+ "print \"half life is\",round(T/1e+6,3),\"*10**6 years\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "half life is 1.438 *10**6 years\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.5, Page number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2.48*10**5; #half life(yrs)\n",
+ "lamda=8.88*10**-14 #decay constant (per second)\n",
+ "Mo=4; #intial mass(mg)\n",
+ "t=62000; #time(years)\n",
+ "Na=6.02*10**23; #Avgraodo no.(per g-mol)\n",
+ "\n",
+ "#Calculation\n",
+ "lamdat=0.693/T*t; \n",
+ "M=Mo*(math.exp(-lamdat)); #mass remained unchanged(mg) \n",
+ "N=M*10**-3*Na/234;\n",
+ "A=lamda*N; #activity(disintegrations/second)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass remained unchanged is\",round(M,3),\"mg\"\n",
+ "print \"Activity is\",round(A/1e+5,3),\"*10**5 disintegrations/second\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass remained unchanged is 3.364 mg\n",
+ "Activity is 7.684 *10**5 disintegrations/second\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.6, Page number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=1620; #half life(years)\n",
+ "Mo=1/100; #mass(g)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/T; #radioactive constant(per years) \n",
+ "M=(1-Mo); #amount of radium left behind(g) \n",
+ "t=math.log(1/M)/lamda; #time required to lose 1 centigram(years)\n",
+ "t1=math.log(1/Mo)/lamda; #time required to be reduced to 1 centigram(years)\n",
+ "\n",
+ "#Result\n",
+ "print \"time required to lose 1 centigram is\",round(t,1),\"years\"\n",
+ "print \"time required to be reduced to 1 centigram is\",int(t1),\"years\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to lose 1 centigram is 23.5 years\n",
+ "time required to be reduced to 1 centigram is 10765 years\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.7, Page number 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2*10**-4; #dead time(seconds)\n",
+ "n=500; #number of pulses(per second)\n",
+ "\n",
+ "#Calculation\n",
+ "n0=n/(1-(n*T)); #number of incoming particles(per second)\n",
+ "r=n*T*100; #relative error of counting(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"intensity of the incoming beam is\",int(n0),\"particles/second\"\n",
+ "print \"relative error of counting is\",int(r),\"%\"\n",
+ "print \"answer for intensity given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "intensity of the incoming beam is 555 particles/second\n",
+ "relative error of counting is 10 %\n",
+ "answer for intensity given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter12.ipynb b/Modern_Physics/chapter12.ipynb
new file mode 100755
index 00000000..4ab58792
--- /dev/null
+++ b/Modern_Physics/chapter12.ipynb
@@ -0,0 +1,63 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3ee27523440d66319c8d17b88b593002a8ca441a824b734c02da7b3a1165c0fa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Artificial Radioactivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.5; #ratio of mass of Pb206 and mass of U238\n",
+ "t=4.5*10**9; #half life(years)\n",
+ "\n",
+ "#Calculation\n",
+ "T=(math.log(1+r))*(t/0.693); #age(years)\n",
+ "T=T/10**9;\n",
+ "\n",
+ "#Result\n",
+ "print \"age of rock is\",round(T,2),\"*10**9 years\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "age of rock is 2.63 *10**9 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter12_1.ipynb b/Modern_Physics/chapter12_1.ipynb
new file mode 100755
index 00000000..4ab58792
--- /dev/null
+++ b/Modern_Physics/chapter12_1.ipynb
@@ -0,0 +1,63 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3ee27523440d66319c8d17b88b593002a8ca441a824b734c02da7b3a1165c0fa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Artificial Radioactivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.5; #ratio of mass of Pb206 and mass of U238\n",
+ "t=4.5*10**9; #half life(years)\n",
+ "\n",
+ "#Calculation\n",
+ "T=(math.log(1+r))*(t/0.693); #age(years)\n",
+ "T=T/10**9;\n",
+ "\n",
+ "#Result\n",
+ "print \"age of rock is\",round(T,2),\"*10**9 years\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "age of rock is 2.63 *10**9 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter13.ipynb b/Modern_Physics/chapter13.ipynb
new file mode 100755
index 00000000..fddec6a2
--- /dev/null
+++ b/Modern_Physics/chapter13.ipynb
@@ -0,0 +1,248 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bee0f8df3068997ca43cf44df4f129c530dc6e34523ca501c99a2183643ee772"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Nuclear Reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=7.0183; #mass of 3Li7(amu)\n",
+ "m2=4.0040; #mass of 2He4(amu)\n",
+ "m3=1.0082; #mass of 1H1(amu)\n",
+ "N=6.026*10**26; #Avgraodo no.(per kg atom)\n",
+ "#rxn = 3Li7 + 1H1 = 2He4 + 2He4 \n",
+ "\n",
+ "#Calculation\n",
+ "delta_m=m1+m3-(2*m2); #deltam(amu)\n",
+ "E=delta_m*931; #energy per disintegration(MeV)\n",
+ "n=0.1*N/7; #no of atoms in 100 gm of lithium\n",
+ "TE=n*E; #Total energy available(MeV) \n",
+ "\n",
+ "#Result\n",
+ "print \"energy available per disintegration is\",round(E,2),\"MeV\"\n",
+ "print \"Total energy available is\",round(TE/1e+25,2),\"*10**25 MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy available per disintegration is 17.22 MeV\n",
+ "Total energy available is 14.83 *10**25 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=6.015126; #mass of 3Li7(a.m.u)\n",
+ "m2=4.002604; #mass oh 2He4(a.m.u)\n",
+ "m3=1.00865; #mass of 0n1(a.m.u)\n",
+ "m4=3.016049; #mass of 1H3(a.m.u)\n",
+ "#rxn = 3Li7 + 0n1 = 2He4 + 1H3 + Q\n",
+ "\n",
+ "#Calculation\n",
+ "dm=m1+m3-(m2+m4);\n",
+ "Q=dm*931; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released is\",round(Q,4),\"MeV\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released is 4.7695 MeV\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=14.007515; #mass of 7N14(a.m.u)\n",
+ "m2=4.003837; #mass of 2He4(a.m.u)\n",
+ "m3=17.004533; #mass of 8O17(a.m.u)\n",
+ "m4=1.008142; #mass of 1H1(a.m.u)\n",
+ "#rxn = 7N14 + 2He14 = 8O17 + 1H1\n",
+ "\n",
+ "#Calculation\n",
+ "dm=m3+m4-(m1+m2);\n",
+ "Q=dm*931; #Q value of the reaction(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q value of the reaction is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q value of the reaction is 1.232 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=14.007520; #mass of 7N14(a.m.u)\n",
+ "m2=1.008986; #mass oh 0n1(a.m.u)\n",
+ "#m3=mass of 6C14 in a.m.u\n",
+ "m4=1.008145; #mass of 1H1(a.m.u)\n",
+ "#rxn = 7N14 + 0n1 = 6C14 + 1H1 + 0.55 MeV\n",
+ "\n",
+ "#Calculation\n",
+ "Q=0.55; #energy(MeV)\n",
+ "dm=Q/931; \n",
+ "m3=dm+m1+m2-m4; #mass of 6C14(a.m.u)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 6C14 is\",round(m3,5),\"a.m.u\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 6C14 is 14.00895 a.m.u\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.6, Page number 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m0=11.01280; #mass 5B11(a.m.u)\n",
+ "m1=4.00387; #mass of alpha particle(a.m.u)\n",
+ "m2=14.00752; #mass of 7N14(a.m.u)\n",
+ "#m3=mass of neutron \n",
+ "E1=5.250; #energy of alpha particle(MeV)\n",
+ "E2=2.139; #energy of 7N14(MeV)\n",
+ "E3=3.260; #energy of 0n1(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "m3=(m0*931)+((m1*931)+E1)-((m2*931)+E2)-E3; #mass of neutron(a.m.u)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of neutron is\",round(m3/931,3),\"a.m.u\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of neutron is 1.009 a.m.u\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter13_1.ipynb b/Modern_Physics/chapter13_1.ipynb
new file mode 100755
index 00000000..fddec6a2
--- /dev/null
+++ b/Modern_Physics/chapter13_1.ipynb
@@ -0,0 +1,248 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bee0f8df3068997ca43cf44df4f129c530dc6e34523ca501c99a2183643ee772"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Nuclear Reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=7.0183; #mass of 3Li7(amu)\n",
+ "m2=4.0040; #mass of 2He4(amu)\n",
+ "m3=1.0082; #mass of 1H1(amu)\n",
+ "N=6.026*10**26; #Avgraodo no.(per kg atom)\n",
+ "#rxn = 3Li7 + 1H1 = 2He4 + 2He4 \n",
+ "\n",
+ "#Calculation\n",
+ "delta_m=m1+m3-(2*m2); #deltam(amu)\n",
+ "E=delta_m*931; #energy per disintegration(MeV)\n",
+ "n=0.1*N/7; #no of atoms in 100 gm of lithium\n",
+ "TE=n*E; #Total energy available(MeV) \n",
+ "\n",
+ "#Result\n",
+ "print \"energy available per disintegration is\",round(E,2),\"MeV\"\n",
+ "print \"Total energy available is\",round(TE/1e+25,2),\"*10**25 MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy available per disintegration is 17.22 MeV\n",
+ "Total energy available is 14.83 *10**25 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=6.015126; #mass of 3Li7(a.m.u)\n",
+ "m2=4.002604; #mass oh 2He4(a.m.u)\n",
+ "m3=1.00865; #mass of 0n1(a.m.u)\n",
+ "m4=3.016049; #mass of 1H3(a.m.u)\n",
+ "#rxn = 3Li7 + 0n1 = 2He4 + 1H3 + Q\n",
+ "\n",
+ "#Calculation\n",
+ "dm=m1+m3-(m2+m4);\n",
+ "Q=dm*931; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released is\",round(Q,4),\"MeV\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released is 4.7695 MeV\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=14.007515; #mass of 7N14(a.m.u)\n",
+ "m2=4.003837; #mass of 2He4(a.m.u)\n",
+ "m3=17.004533; #mass of 8O17(a.m.u)\n",
+ "m4=1.008142; #mass of 1H1(a.m.u)\n",
+ "#rxn = 7N14 + 2He14 = 8O17 + 1H1\n",
+ "\n",
+ "#Calculation\n",
+ "dm=m3+m4-(m1+m2);\n",
+ "Q=dm*931; #Q value of the reaction(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q value of the reaction is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q value of the reaction is 1.232 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=14.007520; #mass of 7N14(a.m.u)\n",
+ "m2=1.008986; #mass oh 0n1(a.m.u)\n",
+ "#m3=mass of 6C14 in a.m.u\n",
+ "m4=1.008145; #mass of 1H1(a.m.u)\n",
+ "#rxn = 7N14 + 0n1 = 6C14 + 1H1 + 0.55 MeV\n",
+ "\n",
+ "#Calculation\n",
+ "Q=0.55; #energy(MeV)\n",
+ "dm=Q/931; \n",
+ "m3=dm+m1+m2-m4; #mass of 6C14(a.m.u)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 6C14 is\",round(m3,5),\"a.m.u\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 6C14 is 14.00895 a.m.u\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.6, Page number 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m0=11.01280; #mass 5B11(a.m.u)\n",
+ "m1=4.00387; #mass of alpha particle(a.m.u)\n",
+ "m2=14.00752; #mass of 7N14(a.m.u)\n",
+ "#m3=mass of neutron \n",
+ "E1=5.250; #energy of alpha particle(MeV)\n",
+ "E2=2.139; #energy of 7N14(MeV)\n",
+ "E3=3.260; #energy of 0n1(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "m3=(m0*931)+((m1*931)+E1)-((m2*931)+E2)-E3; #mass of neutron(a.m.u)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of neutron is\",round(m3/931,3),\"a.m.u\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of neutron is 1.009 a.m.u\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter14.ipynb b/Modern_Physics/chapter14.ipynb
new file mode 100755
index 00000000..b6ba7ca8
--- /dev/null
+++ b/Modern_Physics/chapter14.ipynb
@@ -0,0 +1,201 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3dfb0a49e3f8552798e92e62c041d1f0b46371fc7dc05dfc9c1bf5833f43216"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "14: Nuclear Fission And Fusion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.1, Page number 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E1=7.8; #avg. B.E per nucleon(MeV)\n",
+ "E2=8.6; #for fissin fragments(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "FER=(234*E2)-(236*E1); #Fission energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Fission energy released is\",FER,\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fission energy released is 171.6 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.2, Page number 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=235.044; #mass of 92U235(a.m.u)\n",
+ "m2=97.905; #mass of 42Mo98(a.m.u)\n",
+ "m3=135.917; #mass of 54Xe136(a.m.u)\n",
+ "#rxn = 0n1 + 92U235 = 42Mo98 + 54Xe136 + 4 -1e0 + 2 0n1\n",
+ "\n",
+ "#Calculation\n",
+ "LHSm=1.009+m1;\n",
+ "RHSm=m2+m3+(4*0.00055)+(2*1.009);\n",
+ "delta_m=LHSm-RHSm; #mass defect(a.m.u)\n",
+ "E=delta_m*931; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass defect is\",round(delta_m,3),\"a.m.u\"\n",
+ "print \"energy released is\",int(E),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass defect is 0.211 a.m.u\n",
+ "energy released is 196 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.3, Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=1.00813; #mass of 1H1(a.m.u)\n",
+ "m2=4.00386; #mass of 2He4(a.m.u)\n",
+ "SC=1.35; #solar constant(kW/m^2)\n",
+ "d=1.5*10**11; #distance b/w earth and sum(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avgraodo no.(per kg mole)\n",
+ "#rxn = 4 1H1 = 2He4 + 2 1e0\n",
+ "\n",
+ "#Calculation\n",
+ "dm=(4*m1)-m2;\n",
+ "E=dm*931; #energy produced(MeV)\n",
+ "EP=E/4; #energy produced per atom(MeV)\n",
+ "EP=EP*10**6*e; #conversion in J\n",
+ "EPkg=EP*Na; #energy produced by 1 kg of hydrogen\n",
+ "SC=SC*1000; #conversion(J/s-m^2)\n",
+ "SA=4*math.pi*d**2; #surface area of sphere\n",
+ "ER=SC*SA; #energy recieved per second\n",
+ "m=ER/EPkg; #mass of hydrogen consumed(tonnes/second)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of hydrogen consumed is\",round(m/10**11,3),\"*10**8 tonnes/second\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of hydrogen consumed is 5.941 *10**8 tonnes/second\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.4, Page number 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=2.01478; #mass of 1H2(a.m.u)\n",
+ "m2=4.00388; #mass of 2He4(a.m.u)\n",
+ "#rxn 1H2 + 1H2 = 2He4 + Q\n",
+ "\n",
+ "#Calculation\n",
+ "Q=2*m1-m2; #energy liberated(MeV) \n",
+ "Q=Q*931; #conversion in MeV\n",
+ "\n",
+ "#Result\n",
+ "print \"energy liberated is\",round(Q,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy liberated is 23.9 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter14_1.ipynb b/Modern_Physics/chapter14_1.ipynb
new file mode 100755
index 00000000..b6ba7ca8
--- /dev/null
+++ b/Modern_Physics/chapter14_1.ipynb
@@ -0,0 +1,201 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3dfb0a49e3f8552798e92e62c041d1f0b46371fc7dc05dfc9c1bf5833f43216"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "14: Nuclear Fission And Fusion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.1, Page number 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E1=7.8; #avg. B.E per nucleon(MeV)\n",
+ "E2=8.6; #for fissin fragments(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "FER=(234*E2)-(236*E1); #Fission energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Fission energy released is\",FER,\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fission energy released is 171.6 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.2, Page number 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=235.044; #mass of 92U235(a.m.u)\n",
+ "m2=97.905; #mass of 42Mo98(a.m.u)\n",
+ "m3=135.917; #mass of 54Xe136(a.m.u)\n",
+ "#rxn = 0n1 + 92U235 = 42Mo98 + 54Xe136 + 4 -1e0 + 2 0n1\n",
+ "\n",
+ "#Calculation\n",
+ "LHSm=1.009+m1;\n",
+ "RHSm=m2+m3+(4*0.00055)+(2*1.009);\n",
+ "delta_m=LHSm-RHSm; #mass defect(a.m.u)\n",
+ "E=delta_m*931; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass defect is\",round(delta_m,3),\"a.m.u\"\n",
+ "print \"energy released is\",int(E),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass defect is 0.211 a.m.u\n",
+ "energy released is 196 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.3, Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=1.00813; #mass of 1H1(a.m.u)\n",
+ "m2=4.00386; #mass of 2He4(a.m.u)\n",
+ "SC=1.35; #solar constant(kW/m^2)\n",
+ "d=1.5*10**11; #distance b/w earth and sum(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avgraodo no.(per kg mole)\n",
+ "#rxn = 4 1H1 = 2He4 + 2 1e0\n",
+ "\n",
+ "#Calculation\n",
+ "dm=(4*m1)-m2;\n",
+ "E=dm*931; #energy produced(MeV)\n",
+ "EP=E/4; #energy produced per atom(MeV)\n",
+ "EP=EP*10**6*e; #conversion in J\n",
+ "EPkg=EP*Na; #energy produced by 1 kg of hydrogen\n",
+ "SC=SC*1000; #conversion(J/s-m^2)\n",
+ "SA=4*math.pi*d**2; #surface area of sphere\n",
+ "ER=SC*SA; #energy recieved per second\n",
+ "m=ER/EPkg; #mass of hydrogen consumed(tonnes/second)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of hydrogen consumed is\",round(m/10**11,3),\"*10**8 tonnes/second\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of hydrogen consumed is 5.941 *10**8 tonnes/second\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.4, Page number 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=2.01478; #mass of 1H2(a.m.u)\n",
+ "m2=4.00388; #mass of 2He4(a.m.u)\n",
+ "#rxn 1H2 + 1H2 = 2He4 + Q\n",
+ "\n",
+ "#Calculation\n",
+ "Q=2*m1-m2; #energy liberated(MeV) \n",
+ "Q=Q*931; #conversion in MeV\n",
+ "\n",
+ "#Result\n",
+ "print \"energy liberated is\",round(Q,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy liberated is 23.9 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter15.ipynb b/Modern_Physics/chapter15.ipynb
new file mode 100755
index 00000000..4227a2a8
--- /dev/null
+++ b/Modern_Physics/chapter15.ipynb
@@ -0,0 +1,397 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a8391f5a05f23d60fe8f4f8931e579dcdcd76160c3d9f4755fb607b65fe83b63"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "15: Nuclear Energy Sources"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.1, Page number 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#m is mass of neutron and M is mass of other neucleus\n",
+ "ma=1;\n",
+ "Ma=2;\n",
+ "mb=1;\n",
+ "Mb=12;\n",
+ "mc=1;\n",
+ "Mc=238; \n",
+ "\n",
+ "#Calculation\n",
+ "eeta1=(4*ma*Ma/((ma+Ma)**2))*100; #Maximum fraction of KE lost by a neutron for H2(%)\n",
+ "eeta2=(4*mb*Mb/((mb+Mb)**2))*100; #Maximum fraction of KE lost by a neutron for C12(%)\n",
+ "eeta3=(4*mc*Mc/((mc+Mc)**2))*100; #Maximum fraction of KE lost by a neutron for U238(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum fraction of KE lost by a neutron for H2 is\",round(eeta1,1),\"%\"\n",
+ "print \"Maximum fraction of KE lost by a neutron for C12 is\",round(eeta2,1),\"%\"\n",
+ "print \"Maximum fraction of KE lost by a neutron for U238 is\",round(eeta3,2),\"%\"\n",
+ "print \"answer for eeta2 given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum fraction of KE lost by a neutron for H2 is 88.9 %\n",
+ "Maximum fraction of KE lost by a neutron for C12 is 28.4 %\n",
+ "Maximum fraction of KE lost by a neutron for U238 is 1.67 %\n",
+ "answer for eeta2 given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.2, Page number 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avgraodo no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "RF=1/CE; #fission rate(fissions/second)\n",
+ "Ekg=CE*Na/235; #Energy realeased in complete fission of 1 kg(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"fission rate is\",round(RF/10**10,1),\"*10**10 fissions/second\"\n",
+ "print \"Energy realeased in complete fission of 1 kg is\",round(Ekg/1e+13,1),\"*10**13 J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fission rate is 3.1 *10**10 fissions/second\n",
+ "Energy realeased in complete fission of 1 kg is 8.2 *10**13 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.3, Page number 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=3*10**7; #rate of energy development(Js)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "t=1000; #time(hours)\n",
+ "Ekg=8.2*10**13; #energy released per kg of U-235\n",
+ "\n",
+ "#Calculation\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "n=R/CE; #no of atoms undergoing fission/second\n",
+ "TE=R*t*3600; #energy produced in 1000 hours(J)\n",
+ "MC=TE/Ekg; #mass consumed(kg) \n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms undergoing fissions per second is\",round(n/1e+17,1),\"*10**17\"\n",
+ "print \"mass consumed is\",round(MC,2),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of atoms undergoing fissions per second is 9.4 *10**17\n",
+ "mass consumed is 1.32 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.4, Page number 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EPF=180; #Energy consumed per disintegration(MeV)\n",
+ "E=1200; #average power(kW)\n",
+ "t=10; #time(hours)\n",
+ "Na=6.02*10**26; #Avgraodo no.(per kg mole)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "TE=E*t; #energy consumed(kWh)\n",
+ "TE=TE*36*10**5; #conversion(J)\n",
+ "EE=TE/0.2; #efficient energy\n",
+ "CE=EPF*e*10**6; #conversion in J\n",
+ "n=EE/CE;\n",
+ "m=235*n/Na*1000; #mass consumed(gram)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass consumed is\",round(m,2),\"gram\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass consumed is 2.93 gram\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.5, Page number 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "OE=200; #output power(MW)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "WF=3.1*10**10; #fission rate(fissions/second)\n",
+ "Na=6.02*10**26; #Avagadro no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "IE=OE/0.3*10**6; #reactor input(W)\n",
+ "TFR=WF*IE;\n",
+ "n=TFR*24*3600; #no. of U-235 for one day\n",
+ "m=235*n/Na; #mass required(kg)\n",
+ " \n",
+ "#Result\n",
+ "print \"amount of natural uranium consumed per day is\",round(m*100/0.7,3),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of natural uranium consumed per day is 99.577 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.6, Page number 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "AE=100; #electrical power(MW)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avagadro no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "TE=AE*10**6*24*3600; #energy consumed in city in one day(J)\n",
+ "EE=TE/0.2;\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "n=EE/CE; #no. of atoms to be fissioned \n",
+ "m=235*n/Na; #amount of fuel required(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"amount of fuel required is\",round(m,2),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of fuel required is 0.53 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.7, Page number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "OE=3000; #output power(MWh)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avagadro no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "IE=OE/0.2; #nuclear energy input(MWh)\n",
+ "TE=IE*36*10**8; #conversion in J\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "n=TE/CE; #number of nuclides required per day\n",
+ "m=235*n/Na; #daily fuel requirement(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"daily fuel requirement is\",round(m,3),\"kg or\",round(m,3)*1000,\"gram\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "daily fuel requirement is 0.659 kg or 659.0 gram\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.8, Page number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "OP=32824; #output power(kW)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "Ekg=8.2*10**13; #energy released per kg of U-235(J)\n",
+ "\n",
+ "#Calculation\n",
+ "DOP=OP*1000*24*3600; #daily output power(J)\n",
+ "IP=DOP/0.2; #nuclear energy input(J)\n",
+ "DFC=IP/Ekg; #daily fuel consumption(kg)\n",
+ "DI=DOP/(0.8*4186); #daily input at 80% efficiency(kcal)\n",
+ "Crqd=DI/(7*10**3); #Coal required per day(tonnes)\n",
+ "\n",
+ "#Result\n",
+ "print \"Daily fuel consumption is\",round(DFC,3)*1000,\"gram\"\n",
+ "print \"Coal required per day is\",int(Crqd),\"tonnes\"\n",
+ "print \"answer for coal required per day Crqd given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Daily fuel consumption is 173.0 gram\n",
+ "Coal required per day is 120981 tonnes\n",
+ "answer for coal required per day Crqd given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter15_1.ipynb b/Modern_Physics/chapter15_1.ipynb
new file mode 100755
index 00000000..4227a2a8
--- /dev/null
+++ b/Modern_Physics/chapter15_1.ipynb
@@ -0,0 +1,397 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a8391f5a05f23d60fe8f4f8931e579dcdcd76160c3d9f4755fb607b65fe83b63"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "15: Nuclear Energy Sources"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.1, Page number 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#m is mass of neutron and M is mass of other neucleus\n",
+ "ma=1;\n",
+ "Ma=2;\n",
+ "mb=1;\n",
+ "Mb=12;\n",
+ "mc=1;\n",
+ "Mc=238; \n",
+ "\n",
+ "#Calculation\n",
+ "eeta1=(4*ma*Ma/((ma+Ma)**2))*100; #Maximum fraction of KE lost by a neutron for H2(%)\n",
+ "eeta2=(4*mb*Mb/((mb+Mb)**2))*100; #Maximum fraction of KE lost by a neutron for C12(%)\n",
+ "eeta3=(4*mc*Mc/((mc+Mc)**2))*100; #Maximum fraction of KE lost by a neutron for U238(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum fraction of KE lost by a neutron for H2 is\",round(eeta1,1),\"%\"\n",
+ "print \"Maximum fraction of KE lost by a neutron for C12 is\",round(eeta2,1),\"%\"\n",
+ "print \"Maximum fraction of KE lost by a neutron for U238 is\",round(eeta3,2),\"%\"\n",
+ "print \"answer for eeta2 given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum fraction of KE lost by a neutron for H2 is 88.9 %\n",
+ "Maximum fraction of KE lost by a neutron for C12 is 28.4 %\n",
+ "Maximum fraction of KE lost by a neutron for U238 is 1.67 %\n",
+ "answer for eeta2 given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.2, Page number 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avgraodo no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "RF=1/CE; #fission rate(fissions/second)\n",
+ "Ekg=CE*Na/235; #Energy realeased in complete fission of 1 kg(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"fission rate is\",round(RF/10**10,1),\"*10**10 fissions/second\"\n",
+ "print \"Energy realeased in complete fission of 1 kg is\",round(Ekg/1e+13,1),\"*10**13 J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fission rate is 3.1 *10**10 fissions/second\n",
+ "Energy realeased in complete fission of 1 kg is 8.2 *10**13 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.3, Page number 291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=3*10**7; #rate of energy development(Js)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "t=1000; #time(hours)\n",
+ "Ekg=8.2*10**13; #energy released per kg of U-235\n",
+ "\n",
+ "#Calculation\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "n=R/CE; #no of atoms undergoing fission/second\n",
+ "TE=R*t*3600; #energy produced in 1000 hours(J)\n",
+ "MC=TE/Ekg; #mass consumed(kg) \n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms undergoing fissions per second is\",round(n/1e+17,1),\"*10**17\"\n",
+ "print \"mass consumed is\",round(MC,2),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of atoms undergoing fissions per second is 9.4 *10**17\n",
+ "mass consumed is 1.32 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.4, Page number 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EPF=180; #Energy consumed per disintegration(MeV)\n",
+ "E=1200; #average power(kW)\n",
+ "t=10; #time(hours)\n",
+ "Na=6.02*10**26; #Avgraodo no.(per kg mole)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "TE=E*t; #energy consumed(kWh)\n",
+ "TE=TE*36*10**5; #conversion(J)\n",
+ "EE=TE/0.2; #efficient energy\n",
+ "CE=EPF*e*10**6; #conversion in J\n",
+ "n=EE/CE;\n",
+ "m=235*n/Na*1000; #mass consumed(gram)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass consumed is\",round(m,2),\"gram\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass consumed is 2.93 gram\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.5, Page number 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "OE=200; #output power(MW)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "WF=3.1*10**10; #fission rate(fissions/second)\n",
+ "Na=6.02*10**26; #Avagadro no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "IE=OE/0.3*10**6; #reactor input(W)\n",
+ "TFR=WF*IE;\n",
+ "n=TFR*24*3600; #no. of U-235 for one day\n",
+ "m=235*n/Na; #mass required(kg)\n",
+ " \n",
+ "#Result\n",
+ "print \"amount of natural uranium consumed per day is\",round(m*100/0.7,3),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of natural uranium consumed per day is 99.577 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.6, Page number 292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "AE=100; #electrical power(MW)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avagadro no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "TE=AE*10**6*24*3600; #energy consumed in city in one day(J)\n",
+ "EE=TE/0.2;\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "n=EE/CE; #no. of atoms to be fissioned \n",
+ "m=235*n/Na; #amount of fuel required(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"amount of fuel required is\",round(m,2),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "amount of fuel required is 0.53 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.7, Page number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "OE=3000; #output power(MWh)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Na=6.02*10**26; #Avagadro no.(per kg mole)\n",
+ "\n",
+ "#Calculation\n",
+ "IE=OE/0.2; #nuclear energy input(MWh)\n",
+ "TE=IE*36*10**8; #conversion in J\n",
+ "CE=E*e*10**6; #conversion in J\n",
+ "n=TE/CE; #number of nuclides required per day\n",
+ "m=235*n/Na; #daily fuel requirement(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"daily fuel requirement is\",round(m,3),\"kg or\",round(m,3)*1000,\"gram\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "daily fuel requirement is 0.659 kg or 659.0 gram\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.8, Page number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "OP=32824; #output power(kW)\n",
+ "E=200; #energy released per fission(MeV)\n",
+ "Ekg=8.2*10**13; #energy released per kg of U-235(J)\n",
+ "\n",
+ "#Calculation\n",
+ "DOP=OP*1000*24*3600; #daily output power(J)\n",
+ "IP=DOP/0.2; #nuclear energy input(J)\n",
+ "DFC=IP/Ekg; #daily fuel consumption(kg)\n",
+ "DI=DOP/(0.8*4186); #daily input at 80% efficiency(kcal)\n",
+ "Crqd=DI/(7*10**3); #Coal required per day(tonnes)\n",
+ "\n",
+ "#Result\n",
+ "print \"Daily fuel consumption is\",round(DFC,3)*1000,\"gram\"\n",
+ "print \"Coal required per day is\",int(Crqd),\"tonnes\"\n",
+ "print \"answer for coal required per day Crqd given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Daily fuel consumption is 173.0 gram\n",
+ "Coal required per day is 120981 tonnes\n",
+ "answer for coal required per day Crqd given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter16.ipynb b/Modern_Physics/chapter16.ipynb
new file mode 100755
index 00000000..27b371a7
--- /dev/null
+++ b/Modern_Physics/chapter16.ipynb
@@ -0,0 +1,433 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d47bf0be5cde96d0aef086befce8360c308553e75286c744d02ce7f3929fcd07"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "16: Particle Accelerators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.1, Page number 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=9*10**6; #frequency(Hz)\n",
+ "m=6.643*10**-27; #mass(kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=2*e; #electron charge(C)\n",
+ "B=fo*2*math.pi*m/Q; #magnetic flux density(Wb/m^2)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic flux density is\",round(B,2),\"Wb/m^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic flux density is 1.17 Wb/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.2, Page number 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.7; #magnetic flux intensity(Wb/m^2)\n",
+ "m=3.34*10**-27; #mass(Kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "Q=e;\n",
+ "fo=B*Q/(2*math.pi*m*10**6); #cyclotron frequency(MHz) \n",
+ "\n",
+ "#Result\n",
+ "print \"The cyclotron frequency is\",round(fo,1),\"MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cyclotron frequency is 5.3 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.3, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.75; #magnetic flux intensity(Wb/m^2)\n",
+ "m1=1.67*10**-27; #mass(Kg)\n",
+ "m2=3.31*10**-27; #mass(Kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Rm=2; #radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=e;\n",
+ "Emax_m1=3.12*10**12*B**2*Q**2*Rm**2/m1; #Maximum energy for proton(MeV)\n",
+ "Emax_m2=3.12*10**12*B**2*Q**2*Rm**2/m2; #Maximum energy for deuteron(MeV) \n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum energy for proton is\",round(Emax_m1),\"MeV\"\n",
+ "print \"Maximum energy for deuteron is\",int(Emax_m2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum energy for proton is 108.0 MeV\n",
+ "Maximum energy for deuteron is 54 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.4, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mo=9.1*10**-31; #mass of electron(kg)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "E=1; #given energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Eo=mo*c**2/(1.6*10**-13); #rest energy for electron(MeV)\n",
+ "mbymo_e=1+(E/Eo); #Ratio for electron\n",
+ "Eo=m*c**2/(1.6*10**-13); #rest energy for proton(MeV)\n",
+ "mbymo_p=1+(E/Eo); #Ratio for proton\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio for electron is\",round(mbymo_e,3)\n",
+ "print \"Ratio for proton is\",round(mbymo_p,6)\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio for electron is 2.954\n",
+ "Ratio for proton is 1.001065\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.5, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.5; #magnetic field(Wb/m^2)\n",
+ "d=1.5; #diameter(m)\n",
+ "f=59; #frequency(Hz)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "R=d/2; #radius(m)\n",
+ "N=c/(4*(2*math.pi*50)*R); #number of revolutions\n",
+ "E=B*e*R*c/(1.6*10**-13); #final energy(MeV)\n",
+ "AE=E/N*10**6; #average energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"final energy is\",E,\"MeV\"\n",
+ "print \"average energy is\",round(AE,1),\"eV\"\n",
+ "print \"answer for average energy given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final energy is 112.5 MeV\n",
+ "average energy is 353.4 eV\n",
+ "answer for average energy given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.6, Page number 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=0.51; #kinetic energy(MeV)\n",
+ "R=0.15; #radius(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "mo=9.12*10**-31; #mass of electron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "Eo=E;\n",
+ "m=mo*(1+(E/Eo)); #mass(kg)\n",
+ "b=math.sqrt(1-(mo/m)**2);\n",
+ "v=b*c; #velocity(m/s)\n",
+ "B=mo*v/(e*R); #flux density(Wb/m^2) \n",
+ "\n",
+ "#Result\n",
+ "print \"mass is\",round(m/1e-31,1),\"*10^-31 kg\"\n",
+ "print \"velocity is\",round(v/1e+8,1),\"*10^8 m/s\"\n",
+ "print \"flux density is\",round(B,5),\"Wb/m^2\"\n",
+ "print \"answer for flux density in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass is 18.2 *10^-31 kg\n",
+ "velocity is 2.6 *10^8 m/s\n",
+ "flux density is 0.00987 Wb/m^2\n",
+ "answer for flux density in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.7, Page number 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=4; #applied voltage(MeV)\n",
+ "m=3.334*10**-27; #mass of deuteron(kg)\n",
+ "R=0.75; #radius(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=4*10**6*e;\n",
+ "fo=math.sqrt(E/(2*m))/(math.pi*R); #frequnecy of generator(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequnecy of generator is\",round(fo/1e+6,3),\"*10^6 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequnecy of generator is 4.158 *10^6 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.8, Page number 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "roi=15; #rate of increase(Wb/s)\n",
+ "tr=10**6; #total revolutions\n",
+ "\n",
+ "#Calculation\n",
+ "IE=roi*10**-6; #increased energy(MeV)\n",
+ "FE=IE*tr; #Final Energy(MeV) \n",
+ "\n",
+ "#Result\n",
+ "print \"Final Energy is\",FE,\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Energy is 15.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.9, Page number 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=0.1; #radius(m)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "roi=15; #rate of increase(Wb/s)\n",
+ "t=4*10**-4; #period of accerleartion(s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "N=c*t/(2*math.pi*R); #number of revolutions\n",
+ "IE=roi; #incresed energy(eV)\n",
+ "ME=N*IE*10**-6; #maximum energy(MeV) \n",
+ "ME1=ME*10**6*e; #conversion in V\n",
+ "p=ME1/c;\n",
+ "gama=h/p; #wavelength of gama rays(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum energy is\",round(ME,3),\"MeV\"\n",
+ "print \"Corresponding wavelength of gama rays is\",round(gama/1e-13,3),\"*10^-13 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum energy is 2.865 MeV\n",
+ "Corresponding wavelength of gama rays is 4.336 *10^-13 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter16_1.ipynb b/Modern_Physics/chapter16_1.ipynb
new file mode 100755
index 00000000..27b371a7
--- /dev/null
+++ b/Modern_Physics/chapter16_1.ipynb
@@ -0,0 +1,433 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d47bf0be5cde96d0aef086befce8360c308553e75286c744d02ce7f3929fcd07"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "16: Particle Accelerators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.1, Page number 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "fo=9*10**6; #frequency(Hz)\n",
+ "m=6.643*10**-27; #mass(kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=2*e; #electron charge(C)\n",
+ "B=fo*2*math.pi*m/Q; #magnetic flux density(Wb/m^2)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic flux density is\",round(B,2),\"Wb/m^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic flux density is 1.17 Wb/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.2, Page number 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.7; #magnetic flux intensity(Wb/m^2)\n",
+ "m=3.34*10**-27; #mass(Kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "Q=e;\n",
+ "fo=B*Q/(2*math.pi*m*10**6); #cyclotron frequency(MHz) \n",
+ "\n",
+ "#Result\n",
+ "print \"The cyclotron frequency is\",round(fo,1),\"MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The cyclotron frequency is 5.3 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.3, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.75; #magnetic flux intensity(Wb/m^2)\n",
+ "m1=1.67*10**-27; #mass(Kg)\n",
+ "m2=3.31*10**-27; #mass(Kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "Rm=2; #radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=e;\n",
+ "Emax_m1=3.12*10**12*B**2*Q**2*Rm**2/m1; #Maximum energy for proton(MeV)\n",
+ "Emax_m2=3.12*10**12*B**2*Q**2*Rm**2/m2; #Maximum energy for deuteron(MeV) \n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum energy for proton is\",round(Emax_m1),\"MeV\"\n",
+ "print \"Maximum energy for deuteron is\",int(Emax_m2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum energy for proton is 108.0 MeV\n",
+ "Maximum energy for deuteron is 54 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.4, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mo=9.1*10**-31; #mass of electron(kg)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "E=1; #given energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Eo=mo*c**2/(1.6*10**-13); #rest energy for electron(MeV)\n",
+ "mbymo_e=1+(E/Eo); #Ratio for electron\n",
+ "Eo=m*c**2/(1.6*10**-13); #rest energy for proton(MeV)\n",
+ "mbymo_p=1+(E/Eo); #Ratio for proton\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio for electron is\",round(mbymo_e,3)\n",
+ "print \"Ratio for proton is\",round(mbymo_p,6)\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio for electron is 2.954\n",
+ "Ratio for proton is 1.001065\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.5, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=0.5; #magnetic field(Wb/m^2)\n",
+ "d=1.5; #diameter(m)\n",
+ "f=59; #frequency(Hz)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "R=d/2; #radius(m)\n",
+ "N=c/(4*(2*math.pi*50)*R); #number of revolutions\n",
+ "E=B*e*R*c/(1.6*10**-13); #final energy(MeV)\n",
+ "AE=E/N*10**6; #average energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"final energy is\",E,\"MeV\"\n",
+ "print \"average energy is\",round(AE,1),\"eV\"\n",
+ "print \"answer for average energy given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final energy is 112.5 MeV\n",
+ "average energy is 353.4 eV\n",
+ "answer for average energy given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.6, Page number 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=0.51; #kinetic energy(MeV)\n",
+ "R=0.15; #radius(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "mo=9.12*10**-31; #mass of electron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "Eo=E;\n",
+ "m=mo*(1+(E/Eo)); #mass(kg)\n",
+ "b=math.sqrt(1-(mo/m)**2);\n",
+ "v=b*c; #velocity(m/s)\n",
+ "B=mo*v/(e*R); #flux density(Wb/m^2) \n",
+ "\n",
+ "#Result\n",
+ "print \"mass is\",round(m/1e-31,1),\"*10^-31 kg\"\n",
+ "print \"velocity is\",round(v/1e+8,1),\"*10^8 m/s\"\n",
+ "print \"flux density is\",round(B,5),\"Wb/m^2\"\n",
+ "print \"answer for flux density in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass is 18.2 *10^-31 kg\n",
+ "velocity is 2.6 *10^8 m/s\n",
+ "flux density is 0.00987 Wb/m^2\n",
+ "answer for flux density in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.7, Page number 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=4; #applied voltage(MeV)\n",
+ "m=3.334*10**-27; #mass of deuteron(kg)\n",
+ "R=0.75; #radius(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=4*10**6*e;\n",
+ "fo=math.sqrt(E/(2*m))/(math.pi*R); #frequnecy of generator(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequnecy of generator is\",round(fo/1e+6,3),\"*10^6 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequnecy of generator is 4.158 *10^6 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.8, Page number 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "roi=15; #rate of increase(Wb/s)\n",
+ "tr=10**6; #total revolutions\n",
+ "\n",
+ "#Calculation\n",
+ "IE=roi*10**-6; #increased energy(MeV)\n",
+ "FE=IE*tr; #Final Energy(MeV) \n",
+ "\n",
+ "#Result\n",
+ "print \"Final Energy is\",FE,\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Energy is 15.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.9, Page number 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=0.1; #radius(m)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "roi=15; #rate of increase(Wb/s)\n",
+ "t=4*10**-4; #period of accerleartion(s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "N=c*t/(2*math.pi*R); #number of revolutions\n",
+ "IE=roi; #incresed energy(eV)\n",
+ "ME=N*IE*10**-6; #maximum energy(MeV) \n",
+ "ME1=ME*10**6*e; #conversion in V\n",
+ "p=ME1/c;\n",
+ "gama=h/p; #wavelength of gama rays(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum energy is\",round(ME,3),\"MeV\"\n",
+ "print \"Corresponding wavelength of gama rays is\",round(gama/1e-13,3),\"*10^-13 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum energy is 2.865 MeV\n",
+ "Corresponding wavelength of gama rays is 4.336 *10^-13 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter1_1.ipynb b/Modern_Physics/chapter1_1.ipynb
new file mode 100755
index 00000000..25ce0403
--- /dev/null
+++ b/Modern_Physics/chapter1_1.ipynb
@@ -0,0 +1,383 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:70cab6f9b725623fc2451b245c5190bb3397c02f8debec03cc8b79cdd3e4b714"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Electric and Magnetic Fields"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.1, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q1=3.2*10**-19;\n",
+ "q2=q1; #q1 and q2 are the values of charge on alpha-particle(C)\n",
+ "d=10**-13; #distance between two alpha-particles(m)\n",
+ "m1=6.68*10**-27;\n",
+ "m2=m1; #m1 and m2 are masses of alpha-particles(kg)\n",
+ "G=6.67*10**-11; #Gravitational constant(Nm^2/kg^2)\n",
+ "\n",
+ "#Calculation\n",
+ "F1=(9*10**9)*(q1*q2)/(d**2); #calculation of electrostatic force(N)\n",
+ "F2=G*(m1*m2)/(d**2); #calculation of electrostatic force(N)\n",
+ "F1=math.ceil(F1*10**4)/10**4; #rounding off to 4 decimals\n",
+ "F1 = F1*10**2;\n",
+ "\n",
+ "#Result\n",
+ "print \"The electrosatic force is\",F1,\"*10**-2 N\"\n",
+ "print \"The gravitational force is\",round(F2/1e-37,3),\"*10**-37 N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electrosatic force is 9.22 *10**-2 N\n",
+ "The gravitational force is 2.976 *10**-37 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of elctron(kg)\n",
+ "q=1.6*10**-19; #charge on electron(C)\n",
+ "g=9.81; #acceleration due to gravity(m/s^2)\n",
+ "\n",
+ "#Calculation\n",
+ "Fg=m*g; #gravitational force(N)\n",
+ "d=math.sqrt((9*10**9*q**2)/Fg); #equating gravitational force with electrosatic force(m)\n",
+ "d=math.ceil(d*10**3)/10**3; #rounding off to 4 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The distance of separation is\",d,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance of separation is 5.081 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=0.02; #distance between plates(m)\n",
+ "V=400; #potential differnce of plates(V)\n",
+ "q=1.6*10**-19; #charge on a proton(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=V/d; #electric field intensity between plates(V/m)\n",
+ "F=q*E; #electrostatic force on oil drop(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"The electric field intensity between plates is\",E,\"V/m\"\n",
+ "print \"The force on proton is\",F,\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The electric field intensity between plates is 20000.0 V/m\n",
+ "The force on proton is 3.2e-15 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=0.02; #distance between plates(m)\n",
+ "q=1.6*10**-19; #charge on oil drop(C)\n",
+ "V=6000; #potential differnce of plates(V)\n",
+ "g=9.81; #acceleration due to gravity(m/s^2)\n",
+ "\n",
+ "#Calculation\n",
+ "E=V/d; #electric field intensity between plates(V/m)\n",
+ "F=q*E; #electrostatic force on oil drop(N)\n",
+ "m=F/g; #equating the weight of oil drop to the electrostatic force on it(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"The mass of oil drop is\",round(m/1e-15,3),\"*10**-15 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mass of oil drop is 4.893 *10**-15 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=150; #potential difference between anode and cathode(V)\n",
+ "m=9.31*10**-31; #mass of an electron(kg)\n",
+ "q=1.6*10**-19; #charge on an electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=q*V; #energy gained by electron during speeding from cathode to anode(J)\n",
+ "vel=math.sqrt(E*2/m); #equating with kinetic energy of electron(m/s)\n",
+ "vel=vel*10**-6;\n",
+ "vel=math.ceil(vel*10)/10; #rounding off to 1 decimal\n",
+ "\n",
+ "#Result\n",
+ "print \"The velocity is\",vel,\"*10**6 m/s\"\n",
+ "print \"answer in the book is wrong by 1 decimal\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The velocity is 7.2 *10**6 m/s\n",
+ "answer in the book is wrong by 1 decimal\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=5*10**6; #potential differnce through which alpha-particle is accelerated(V)\n",
+ "e=1.6*10**-19; #charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E1=2*V; #electronic charge on alpha-particle(eV)\n",
+ "E2=E1/10**6; #energy(MeV)\n",
+ "E3=E1*e; #energy(J)\n",
+ "E1=E1*10**-7; \n",
+ "\n",
+ "#Result\n",
+ "print \"The energy is\",E1,\"*10**7 eV\"\n",
+ "print \"The energy is\",E2,\"MeV\"\n",
+ "print \"The energy is\",E3,\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy is 1.0 *10**7 eV\n",
+ "The energy is 10.0 MeV\n",
+ "The energy is 1.6e-12 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.528*10**-10; #radius of the orbit(m)\n",
+ "q=-1.6*10**-19; #charge on electron(C)\n",
+ "Q=1.6*10**-19; #charge on Hydrogen nucleus(C)\n",
+ "Eo=8.854*10**-12; #permittivity in free space(F/m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(q*Q)/(8*3.14*Eo*r); #electric field intensity between plates(V/m)\n",
+ "E1=E/(1.6*10**-19); #electrifeild intensity(eV)\n",
+ "E=E*10**19;\n",
+ "E=math.ceil(E*10**2)/10**2; #rounding off to 2 decimals\n",
+ "E1=math.ceil(E1*10**2)/10**2; #rounding off to 2 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The total energy is\",E,\"*10**-19 J\"\n",
+ "print \"The total energy is\",E1,\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total energy is -21.79 *10**-19 J\n",
+ "The total energy is -13.62 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Q=3.2*10**-19; #charge on alpha-particle(C)\n",
+ "m=6.68*10**-27; #mass on alpha-particle(kg)\n",
+ "B=1.5; #transverse magnetic field of flux density(Wb/m^2)\n",
+ "v=5*10**6; #velocity of alpha-particle(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "F=B*Q*v; #electrostatic force on oil drop(N)\n",
+ "R=m*v/(Q*B); #radius(m)\n",
+ "R=math.ceil(R*10**2)/10**2; #rounding off to 2 decimals\n",
+ "R1 = R*100; #radius(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The force on particle is\",F,\"N\"\n",
+ "print \"The radius of its circular path\",R,\"m or\",R1,\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force on particle is 2.4e-12 N\n",
+ "The radius of its circular path 0.07 m or 7.0 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter2.ipynb b/Modern_Physics/chapter2.ipynb
new file mode 100755
index 00000000..c02388c1
--- /dev/null
+++ b/Modern_Physics/chapter2.ipynb
@@ -0,0 +1,215 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d579c32fbc82bfc0d050265719851f3d1a9f6f9fcc17df43ae5b1c38cc41c26"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: The Electron"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2400; #electric field intensity(V/m)\n",
+ "V=90; #potential difference(V)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "F=e*E; #force on electron(N)\n",
+ "a=F/m; #acceleration(m/s^2) \n",
+ "KE=e*V; #Kinetic Energy of particle(J) \n",
+ "v=math.sqrt(2*KE/m); #velocity of the electron(m/s)\n",
+ "v=v*10**-6;\n",
+ "v=math.ceil(v*10**2)/10**2; #rounding off to 2 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The force on electron is\",F,\"N\"\n",
+ "print \"Its acceleration is\",round(a/1e+14,2),\"*10**14 m/s^2\"\n",
+ "print \"The Kinetic Energy of particle is\",KE,\"J\"\n",
+ "print \"The velocity of the electron\",v,\"*10**6 m/s\"\n",
+ "print \"answers for acceleration and velocity given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force on electron is 3.84e-16 N\n",
+ "Its acceleration is 4.21 *10**14 m/s^2\n",
+ "The Kinetic Energy of particle is 1.44e-17 J\n",
+ "The velocity of the electron 5.62 *10**6 m/s\n",
+ "answers for acceleration and velocity given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=900; #potential difference(V)\n",
+ "B=0.01; #uniform magnetic field(Wb/m^2)\n",
+ "em=1.76*10**11; #value of e/m(C/kg)\n",
+ "\n",
+ "#calculation\n",
+ "v=math.sqrt(2*em*V); #linear velocity of electron(m/s)\n",
+ "R=v/(em*B); #radius of the circular path(m) \n",
+ "R=math.ceil(R*10**3)/10**3; #rounding off to 3 decimals\n",
+ "v=v*10**-7;\n",
+ "v=math.ceil(v*10**2)/10**2; #rounding off to 2 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The linear velocity of electron is\",v,\"*10**7 m/s\"\n",
+ "print \"The radius of the circular path is\",R,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The linear velocity of electron is 1.78 *10**7 m/s\n",
+ "The radius of the circular path is 0.011 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=6*10**-3; #distance between plates(m)\n",
+ "V=900; #potential difference(V)\n",
+ "B=0.5; #uniform magnetic field(Wb/m^2)\n",
+ "Q=1.6*10**-19; #the charge on electron(C)\n",
+ "R=10.6*10**-2; #circular track radius(m)\n",
+ "\n",
+ "#calculation\n",
+ "v=V/(B*d); #velocity(m/s)\n",
+ "m=R*Q*B/v; #mass of particle(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"The mass of particle\",round(m/1e-26,3),\"*10**-26 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mass of particle 2.827 *10**-26 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=6920; #potential difference(V)\n",
+ "d=1.3*10**-2; #distance between(m)\n",
+ "v=1.9*10**-4; #velocity(m/s)\n",
+ "p=0.9*10**3; #density of oil(kg/m^3)\n",
+ "n=1.81*10**-5; #coefficient of viscosity(N-s/m^2)\n",
+ "g=9.81; #accelaration due to gravity(m/s^2)\n",
+ "\n",
+ "#calculation\n",
+ "a=math.sqrt((9*n*v)/(2*g*p)); #radius of the drop(m) \n",
+ "E=V/d; #electric field(V/m)\n",
+ "Q=4*math.pi*(a**3)*p*g/(3*E); #value of charge on oil drop(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"The radius of the drop is\",round(a/1e-6,2),\"micro m\"\n",
+ "print \"The value of charge on oil drop is\",round(Q/1e-19,3),\"*10^-19 C\"\n",
+ "print \"answers given in the book are wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius of the drop is 1.32 micro m\n",
+ "The value of charge on oil drop is 1.612 *10^-19 C\n",
+ "answers given in the book are wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter2_1.ipynb b/Modern_Physics/chapter2_1.ipynb
new file mode 100755
index 00000000..c02388c1
--- /dev/null
+++ b/Modern_Physics/chapter2_1.ipynb
@@ -0,0 +1,215 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d579c32fbc82bfc0d050265719851f3d1a9f6f9fcc17df43ae5b1c38cc41c26"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: The Electron"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2400; #electric field intensity(V/m)\n",
+ "V=90; #potential difference(V)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "F=e*E; #force on electron(N)\n",
+ "a=F/m; #acceleration(m/s^2) \n",
+ "KE=e*V; #Kinetic Energy of particle(J) \n",
+ "v=math.sqrt(2*KE/m); #velocity of the electron(m/s)\n",
+ "v=v*10**-6;\n",
+ "v=math.ceil(v*10**2)/10**2; #rounding off to 2 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The force on electron is\",F,\"N\"\n",
+ "print \"Its acceleration is\",round(a/1e+14,2),\"*10**14 m/s^2\"\n",
+ "print \"The Kinetic Energy of particle is\",KE,\"J\"\n",
+ "print \"The velocity of the electron\",v,\"*10**6 m/s\"\n",
+ "print \"answers for acceleration and velocity given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force on electron is 3.84e-16 N\n",
+ "Its acceleration is 4.21 *10**14 m/s^2\n",
+ "The Kinetic Energy of particle is 1.44e-17 J\n",
+ "The velocity of the electron 5.62 *10**6 m/s\n",
+ "answers for acceleration and velocity given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=900; #potential difference(V)\n",
+ "B=0.01; #uniform magnetic field(Wb/m^2)\n",
+ "em=1.76*10**11; #value of e/m(C/kg)\n",
+ "\n",
+ "#calculation\n",
+ "v=math.sqrt(2*em*V); #linear velocity of electron(m/s)\n",
+ "R=v/(em*B); #radius of the circular path(m) \n",
+ "R=math.ceil(R*10**3)/10**3; #rounding off to 3 decimals\n",
+ "v=v*10**-7;\n",
+ "v=math.ceil(v*10**2)/10**2; #rounding off to 2 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"The linear velocity of electron is\",v,\"*10**7 m/s\"\n",
+ "print \"The radius of the circular path is\",R,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The linear velocity of electron is 1.78 *10**7 m/s\n",
+ "The radius of the circular path is 0.011 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=6*10**-3; #distance between plates(m)\n",
+ "V=900; #potential difference(V)\n",
+ "B=0.5; #uniform magnetic field(Wb/m^2)\n",
+ "Q=1.6*10**-19; #the charge on electron(C)\n",
+ "R=10.6*10**-2; #circular track radius(m)\n",
+ "\n",
+ "#calculation\n",
+ "v=V/(B*d); #velocity(m/s)\n",
+ "m=R*Q*B/v; #mass of particle(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"The mass of particle\",round(m/1e-26,3),\"*10**-26 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mass of particle 2.827 *10**-26 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=6920; #potential difference(V)\n",
+ "d=1.3*10**-2; #distance between(m)\n",
+ "v=1.9*10**-4; #velocity(m/s)\n",
+ "p=0.9*10**3; #density of oil(kg/m^3)\n",
+ "n=1.81*10**-5; #coefficient of viscosity(N-s/m^2)\n",
+ "g=9.81; #accelaration due to gravity(m/s^2)\n",
+ "\n",
+ "#calculation\n",
+ "a=math.sqrt((9*n*v)/(2*g*p)); #radius of the drop(m) \n",
+ "E=V/d; #electric field(V/m)\n",
+ "Q=4*math.pi*(a**3)*p*g/(3*E); #value of charge on oil drop(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"The radius of the drop is\",round(a/1e-6,2),\"micro m\"\n",
+ "print \"The value of charge on oil drop is\",round(Q/1e-19,3),\"*10^-19 C\"\n",
+ "print \"answers given in the book are wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radius of the drop is 1.32 micro m\n",
+ "The value of charge on oil drop is 1.612 *10^-19 C\n",
+ "answers given in the book are wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter3.ipynb b/Modern_Physics/chapter3.ipynb
new file mode 100755
index 00000000..1404e10b
--- /dev/null
+++ b/Modern_Physics/chapter3.ipynb
@@ -0,0 +1,351 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:90fc77a4706b2ba6c4e383a2e0d80f0a572a43d837aa619ea730d827f91d4409"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: The Atomic Structure"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=79; #atomic number of gold\n",
+ "e=1.6*10**-19; #electron charge(C)\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "K=7.68*1.6*10**-13; #kinectic energy(J)\n",
+ "\n",
+ "#calculation\n",
+ "D=(2*Z*e**2)/(4*math.pi*Eo*K); #closest distance of approach(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The closest distance of approach is\",round(D/1e-14,2),\"*10**-14 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The closest distance of approach is 2.96 *10**-14 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.2, Page number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=1; #atomic number of hydrogen\n",
+ "e=1.6*10**-19; #electron charge(C)\n",
+ "h=6.625*10**-34; #plank's constant(J-s)\n",
+ "m=9.1*10**-31; #mass of an electron(kg)\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "n=1; #ground state\n",
+ "\n",
+ "#calculation\n",
+ "v=9*10**9*(2*math.pi*Z*e**2)/(n*h); #velocity of ground state(m/s)\n",
+ "r=(Eo*n**2*h**2)/(math.pi*m*e**2); #radius of Bohr orbit in ground state(m)\n",
+ "t=(2*math.pi*r)/v; #time taken by electron to traverse the bohr first orbit(s)\n",
+ "R=(m*(e**4))/(8*(Eo**2)*(h**3)*c); #Rhydberg contstant(m^-1)\n",
+ "#v=v*10**-5;\n",
+ "#v=math.ceil(v*10**3)/10**3; #rounding off to 3 decimals\n",
+ "#r=r*10**10;\n",
+ "#R=R/10**6;\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity of ground state\",round(v/1e+5,2),\"*10^5 m/s\"\n",
+ "print \"radius of Bohr orbit in ground state\",round(r/1e-10,2),\"*10^-10 m\"\n",
+ "print \"time taken by electron to traverse the bohr first orbit\",round(t/1e-16,2),\"micro s\"\n",
+ "print \"Rhydberg constant is\",round(R/1e+6,3),\"*10**6 m^-1\"\n",
+ "print \"answer for Rhydberg contstant given in the book differs in the 2nd decimal point\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity of ground state 21.85 *10^5 m/s\n",
+ "radius of Bohr orbit in ground state 0.53 *10^-10 m\n",
+ "time taken by electron to traverse the bohr first orbit 1.53 micro s\n",
+ "Rhydberg constant is 10.901 *10**6 m^-1\n",
+ "answer for Rhydberg contstant given in the book differs in the 2nd decimal point\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=2.179*10**-16; #constant(J)\n",
+ "h=6.6*10**-34; #plank's constant(J-s)\n",
+ "\n",
+ "#calculation\n",
+ "E3=-B/3**2; #energy in 3rd orbit(J)\n",
+ "E2=-B/2**2; #energy in 2nd orbit(J) \n",
+ "f=(E3-E2)/h; #frequency of radiation(Hz) \n",
+ "\n",
+ "#Result\n",
+ "print \"frequency of radiation\",round(f/1e+16,1),\"*10**16 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of radiation 4.6 *10**16 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=1; #atomic number of hydrogen\n",
+ "e=1.6*10**-19; #electron charge(C)\n",
+ "h=6.625*10**-34; #plank's constant(J-s)\n",
+ "m=9.1*10**-31; #mass of an electron(kg)\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "n=1; #ground state\n",
+ "\n",
+ "#Calculation\n",
+ "f=(m*Z**2*e**4)/(4*Eo**2*h**3); #frequency(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"the frequency is\",round(f/1e+15,2),\"*10**15 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the frequency is 6.54 *10**15 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.5, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=1;\n",
+ "n=1;\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "h=6.62*10**-34; #Plank's constant\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#calculation\n",
+ "v=Z*(e**2)/(2*Eo*n*h); #velocity(m/s)\n",
+ "E=-m*(Z**2)*(e**4)/(8*(Eo*n*h)**2); #energy of hydrogen atom(J)\n",
+ "f=m*(Z**2)*(e**4)/(4*(Eo**2)*(n*h)**3); #frequecy(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity is\",round(v*10**-6,2),\"*10**6 m/s\"\n",
+ "print \"energy of hydrogen atom\",round(E*10**19,1),\"*10**-19 J\"\n",
+ "print \"frequecy\",round(f/1e+15,1),\"*10**15 Hz\"\n",
+ "print \"answer for velocity given in the book is wrong\"\n",
+ "print \"answer for frequency given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity is 2.18 *10**6 m/s\n",
+ "energy of hydrogen atom -21.7 *10**-19 J\n",
+ "frequecy 6.6 *10**15 Hz\n",
+ "answer for velocity given in the book is wrong\n",
+ "answer for frequency given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.8, Page number 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "E1=10.2; #energy(eV)\n",
+ "E2=12.09; #energy(eV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#calcualtion\n",
+ "#principal quantum numbers are 2 & 3 respectively\n",
+ "lamda1=c*h/(E1*e)*10**10; #wavelength for E1(angstrom)\n",
+ "lamda2=c*h/(E2*e)*10**10; #wavelength for E2(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength for 10.2 eV is\",int(lamda1),\"angstrom\"\n",
+ "print \"wavelength for 12.09 eV is\",int(lamda2),\"angstrom\"\n",
+ "print \"answers given in the book differ due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength for 10.2 eV is 1217 angstrom\n",
+ "wavelength for 12.09 eV is 1027 angstrom\n",
+ "answers given in the book differ due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.9, Page number 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=10967700; #Rydberg constant(m^-1)\n",
+ "\n",
+ "#calculation\n",
+ "long_lamda=4/(3*R); #as n1=1 and n2=2\n",
+ "long_lamda=long_lamda*10**10; #long wavelength(angstrom)\n",
+ "short_lamda=1/R; #as n1=1 and n2=infinity\n",
+ "short_lamda=short_lamda*10**10; #long wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"Long wavelength is\",round(long_lamda),\"angstrom\"\n",
+ "print \"Short wavelength is\",round(short_lamda),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Long wavelength is 1216.0 angstrom\n",
+ "Short wavelength is 912.0 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter3_1.ipynb b/Modern_Physics/chapter3_1.ipynb
new file mode 100755
index 00000000..1404e10b
--- /dev/null
+++ b/Modern_Physics/chapter3_1.ipynb
@@ -0,0 +1,351 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:90fc77a4706b2ba6c4e383a2e0d80f0a572a43d837aa619ea730d827f91d4409"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: The Atomic Structure"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=79; #atomic number of gold\n",
+ "e=1.6*10**-19; #electron charge(C)\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "K=7.68*1.6*10**-13; #kinectic energy(J)\n",
+ "\n",
+ "#calculation\n",
+ "D=(2*Z*e**2)/(4*math.pi*Eo*K); #closest distance of approach(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The closest distance of approach is\",round(D/1e-14,2),\"*10**-14 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The closest distance of approach is 2.96 *10**-14 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.2, Page number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=1; #atomic number of hydrogen\n",
+ "e=1.6*10**-19; #electron charge(C)\n",
+ "h=6.625*10**-34; #plank's constant(J-s)\n",
+ "m=9.1*10**-31; #mass of an electron(kg)\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "n=1; #ground state\n",
+ "\n",
+ "#calculation\n",
+ "v=9*10**9*(2*math.pi*Z*e**2)/(n*h); #velocity of ground state(m/s)\n",
+ "r=(Eo*n**2*h**2)/(math.pi*m*e**2); #radius of Bohr orbit in ground state(m)\n",
+ "t=(2*math.pi*r)/v; #time taken by electron to traverse the bohr first orbit(s)\n",
+ "R=(m*(e**4))/(8*(Eo**2)*(h**3)*c); #Rhydberg contstant(m^-1)\n",
+ "#v=v*10**-5;\n",
+ "#v=math.ceil(v*10**3)/10**3; #rounding off to 3 decimals\n",
+ "#r=r*10**10;\n",
+ "#R=R/10**6;\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity of ground state\",round(v/1e+5,2),\"*10^5 m/s\"\n",
+ "print \"radius of Bohr orbit in ground state\",round(r/1e-10,2),\"*10^-10 m\"\n",
+ "print \"time taken by electron to traverse the bohr first orbit\",round(t/1e-16,2),\"micro s\"\n",
+ "print \"Rhydberg constant is\",round(R/1e+6,3),\"*10**6 m^-1\"\n",
+ "print \"answer for Rhydberg contstant given in the book differs in the 2nd decimal point\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity of ground state 21.85 *10^5 m/s\n",
+ "radius of Bohr orbit in ground state 0.53 *10^-10 m\n",
+ "time taken by electron to traverse the bohr first orbit 1.53 micro s\n",
+ "Rhydberg constant is 10.901 *10**6 m^-1\n",
+ "answer for Rhydberg contstant given in the book differs in the 2nd decimal point\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=2.179*10**-16; #constant(J)\n",
+ "h=6.6*10**-34; #plank's constant(J-s)\n",
+ "\n",
+ "#calculation\n",
+ "E3=-B/3**2; #energy in 3rd orbit(J)\n",
+ "E2=-B/2**2; #energy in 2nd orbit(J) \n",
+ "f=(E3-E2)/h; #frequency of radiation(Hz) \n",
+ "\n",
+ "#Result\n",
+ "print \"frequency of radiation\",round(f/1e+16,1),\"*10**16 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency of radiation 4.6 *10**16 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=1; #atomic number of hydrogen\n",
+ "e=1.6*10**-19; #electron charge(C)\n",
+ "h=6.625*10**-34; #plank's constant(J-s)\n",
+ "m=9.1*10**-31; #mass of an electron(kg)\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "n=1; #ground state\n",
+ "\n",
+ "#Calculation\n",
+ "f=(m*Z**2*e**4)/(4*Eo**2*h**3); #frequency(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"the frequency is\",round(f/1e+15,2),\"*10**15 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the frequency is 6.54 *10**15 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.5, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=1;\n",
+ "n=1;\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "h=6.62*10**-34; #Plank's constant\n",
+ "Eo=8.854*10**-12; #absolute permitivity of free space(F/m)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#calculation\n",
+ "v=Z*(e**2)/(2*Eo*n*h); #velocity(m/s)\n",
+ "E=-m*(Z**2)*(e**4)/(8*(Eo*n*h)**2); #energy of hydrogen atom(J)\n",
+ "f=m*(Z**2)*(e**4)/(4*(Eo**2)*(n*h)**3); #frequecy(Hz)\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity is\",round(v*10**-6,2),\"*10**6 m/s\"\n",
+ "print \"energy of hydrogen atom\",round(E*10**19,1),\"*10**-19 J\"\n",
+ "print \"frequecy\",round(f/1e+15,1),\"*10**15 Hz\"\n",
+ "print \"answer for velocity given in the book is wrong\"\n",
+ "print \"answer for frequency given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity is 2.18 *10**6 m/s\n",
+ "energy of hydrogen atom -21.7 *10**-19 J\n",
+ "frequecy 6.6 *10**15 Hz\n",
+ "answer for velocity given in the book is wrong\n",
+ "answer for frequency given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.8, Page number 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "E1=10.2; #energy(eV)\n",
+ "E2=12.09; #energy(eV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#calcualtion\n",
+ "#principal quantum numbers are 2 & 3 respectively\n",
+ "lamda1=c*h/(E1*e)*10**10; #wavelength for E1(angstrom)\n",
+ "lamda2=c*h/(E2*e)*10**10; #wavelength for E2(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength for 10.2 eV is\",int(lamda1),\"angstrom\"\n",
+ "print \"wavelength for 12.09 eV is\",int(lamda2),\"angstrom\"\n",
+ "print \"answers given in the book differ due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength for 10.2 eV is 1217 angstrom\n",
+ "wavelength for 12.09 eV is 1027 angstrom\n",
+ "answers given in the book differ due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.9, Page number 39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=10967700; #Rydberg constant(m^-1)\n",
+ "\n",
+ "#calculation\n",
+ "long_lamda=4/(3*R); #as n1=1 and n2=2\n",
+ "long_lamda=long_lamda*10**10; #long wavelength(angstrom)\n",
+ "short_lamda=1/R; #as n1=1 and n2=infinity\n",
+ "short_lamda=short_lamda*10**10; #long wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"Long wavelength is\",round(long_lamda),\"angstrom\"\n",
+ "print \"Short wavelength is\",round(short_lamda),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Long wavelength is 1216.0 angstrom\n",
+ "Short wavelength is 912.0 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter4.ipynb b/Modern_Physics/chapter4.ipynb
new file mode 100755
index 00000000..9b118dda
--- /dev/null
+++ b/Modern_Physics/chapter4.ipynb
@@ -0,0 +1,320 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3a8bba44ff010c0f1004529fad8de811f19168b5752929eb1e0272cfc5fc53c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Crystallography"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2180; #density of NaCl(kg/m^3)\n",
+ "M=23+35.5; #Molecular weight of NaCl(gm)\n",
+ "Na=6.02*10**26; #Avgraodo no(per kg mole)\n",
+ "n=4; #for f.c.c\n",
+ "\n",
+ "#calculation\n",
+ "a=(n*M/(Na*d))**(1/3); #lattice constant(m)\n",
+ "d=a/2; #distance(m)\n",
+ "d=d*10**10; #distance(angstrom)\n",
+ "d=math.ceil(d*10**3)/10**3; #rounding off to 3 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"distance between two adajcent atoms is\",d,\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance between two adajcent atoms is 2.815 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.163; #density(gm/cm^3)\n",
+ "M=58.45; #molecular weight(gm)\n",
+ "Na=6.02*10**23; #Avgraodo no.(molecules/gm mole)\n",
+ "\n",
+ "#calcualtion\n",
+ "n=Na/M; #no. of molecules(per gram)\n",
+ "n=n*d; #no. of molecules(per cm^3) \n",
+ "n=2*n; #no. of atom(per cm^3)\n",
+ "n=n**(1/3); #no. of atoms in a row 1cm long\n",
+ "d=1/n; #spacing between atoms(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between atoms is\",round(d/1e-8,2),\"angstrom\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between atoms is 2.82 angstrom\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=1.278; #radius(A.U)\n",
+ "n=4; #structure is f.c.c\n",
+ "M=63.54; #atomic weight(gm)\n",
+ "Na=6.02*10**23; #Avgraodo no.(per gm mole)\n",
+ "\n",
+ "#calculation \n",
+ "a=4*r/(math.sqrt(2)); #lattice constant(A.U)\n",
+ "V=a**3; #volume(cm^3)\n",
+ "rho=n*M/(Na*V); #density(gm/cm^3)\n",
+ "rho=rho*(10**8)**3 #density(gm/m^3)\n",
+ "\n",
+ "#Result\n",
+ "print \"Density is\",round(rho,2),\"g/m^3\"\n",
+ "print \"answer in the textbook varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density is 8.94 g/m^3\n",
+ "answer in the textbook varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.10, Page number 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Vaiable declaration\n",
+ "r=1.746; #atomic radius(AU)\n",
+ "\n",
+ "#calulation\n",
+ "a=4*r/math.sqrt(2); #lattice constant(AU)\n",
+ "#for (200)\n",
+ "h=2;k=0;l=0;\n",
+ "d=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(AU)\n",
+ "#for (220)\n",
+ "h=2;k=2;l=0; \n",
+ "d1=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(AU)\n",
+ "#for (111)\n",
+ "h=1;k=1;l=1;\n",
+ "d2=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(AU)\n",
+ "d=math.ceil(d*10**4)/10**4; #rounding off to 4 decimals\n",
+ "d1=math.ceil(d1*10**3)/10**3; #rounding off to 3 decimals\n",
+ "d2=math.ceil(d2*10**3)/10**3; #rounding off to 3 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing for (200) is\",d,\"A.U\"\n",
+ "print \"answer in the book varies in 3rd decimal due to rounding off errors\"\n",
+ "print \"spacing for (220) is\",d1,\"A.U\"\n",
+ "print \"spacing for (111) is\",d2,\"A.U\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing for (200) is 2.4693 A.U\n",
+ "answer in the book varies in 3rd decimal due to rounding off errors\n",
+ "spacing for (220) is 1.746 A.U\n",
+ "spacing for (111) is 2.852 A.U\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.11, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#calculation\n",
+ "#for (i)\n",
+ "l=1;m=0;n=0;\n",
+ "p=0;q=1;r=0;\n",
+ "d=math.acos(((l*p)+(m*q)+(n*r))/(math.sqrt(l**2+m**2+n**2)*math.sqrt(p**2+q**2+r**2))); #angle between 2 normals(radian)\n",
+ "theta=math.degrees(d); #angle between 2 normals(degrees) \n",
+ "\n",
+ "#for (ii)\n",
+ "l=1;m=2;n=1;\n",
+ "p=1;q=1;r=1;\n",
+ "d1=math.acos(((l*p)+(m*q)+(n*r))/(math.sqrt(l**2+m**2+n**2)*math.sqrt(p**2+q**2+r**2))); #angle between 2 normals(radian)\n",
+ "theta1=math.degrees(d1); #angle between 2 normals(degrees) \n",
+ "deg=int(theta1); #angle(degrees)\n",
+ "t=60*(theta1-deg);\n",
+ "m=int(t); #angle(minutes)\n",
+ " \n",
+ "#Result\n",
+ "print \"angle between the normal to pair of miller incdices (100) and (010) is\",theta,\"degrees\"\n",
+ "print \"angle between the normal to pair of miller incdices (121) and (111) is\",deg,\"degrees\",m,\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle between the normal to pair of miller incdices (100) and (010) is 90.0 degrees\n",
+ "angle between the normal to pair of miller incdices (121) and (111) is 19 degrees 28 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.13, Page number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "a=3.61*10**-7; #lattice constant(mm)\n",
+ "\n",
+ "#Calcualtion\n",
+ "#for plane (100)\n",
+ "SA=a*a; #surface area(mm^2)\n",
+ "tamc=2; #total atoms included\n",
+ "ans=tamc/SA; #number of atoms per mm^2\n",
+ "#for (ii) plane (110)\n",
+ "A=a*(math.sqrt(2)*a); #area of the plane(mm^2)\n",
+ "tamc=2; #total atoms included according to sketch\n",
+ "ans1=tamc/A; #number of atoms per mm^2\n",
+ "#for (iii) plane (111)\n",
+ "A=0.866*a*a; #area of the plane(mm^2)\n",
+ "tamc=2; #total atoms included according to sketch\n",
+ "ans2=tamc/A; #number of atoms per mm^2\n",
+ "\n",
+ "#Result\n",
+ "print \"atoms per mm^2 for (100) is\",round(ans/1e+13,3),\"*10**13 atoms/mm^2\"\n",
+ "print \"atoms per mm^2 for (110) is\",round(ans1/1e+13,3),\"*10**13 atoms/mm^2\"\n",
+ "print \"atoms per mm^2 for (111) is\",round(ans2/1e+13,3),\"*10**13 atoms/mm^2\"\n",
+ "print \"answer for plane (111) given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "atoms per mm^2 for (100) is 1.535 *10**13 atoms/mm^2\n",
+ "atoms per mm^2 for (110) is 1.085 *10**13 atoms/mm^2\n",
+ "atoms per mm^2 for (111) is 1.772 *10**13 atoms/mm^2\n",
+ "answer for plane (111) given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter4_1.ipynb b/Modern_Physics/chapter4_1.ipynb
new file mode 100755
index 00000000..9b118dda
--- /dev/null
+++ b/Modern_Physics/chapter4_1.ipynb
@@ -0,0 +1,320 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3a8bba44ff010c0f1004529fad8de811f19168b5752929eb1e0272cfc5fc53c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Crystallography"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2180; #density of NaCl(kg/m^3)\n",
+ "M=23+35.5; #Molecular weight of NaCl(gm)\n",
+ "Na=6.02*10**26; #Avgraodo no(per kg mole)\n",
+ "n=4; #for f.c.c\n",
+ "\n",
+ "#calculation\n",
+ "a=(n*M/(Na*d))**(1/3); #lattice constant(m)\n",
+ "d=a/2; #distance(m)\n",
+ "d=d*10**10; #distance(angstrom)\n",
+ "d=math.ceil(d*10**3)/10**3; #rounding off to 3 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"distance between two adajcent atoms is\",d,\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance between two adajcent atoms is 2.815 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.163; #density(gm/cm^3)\n",
+ "M=58.45; #molecular weight(gm)\n",
+ "Na=6.02*10**23; #Avgraodo no.(molecules/gm mole)\n",
+ "\n",
+ "#calcualtion\n",
+ "n=Na/M; #no. of molecules(per gram)\n",
+ "n=n*d; #no. of molecules(per cm^3) \n",
+ "n=2*n; #no. of atom(per cm^3)\n",
+ "n=n**(1/3); #no. of atoms in a row 1cm long\n",
+ "d=1/n; #spacing between atoms(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between atoms is\",round(d/1e-8,2),\"angstrom\"\n",
+ "print \"answer in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between atoms is 2.82 angstrom\n",
+ "answer in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=1.278; #radius(A.U)\n",
+ "n=4; #structure is f.c.c\n",
+ "M=63.54; #atomic weight(gm)\n",
+ "Na=6.02*10**23; #Avgraodo no.(per gm mole)\n",
+ "\n",
+ "#calculation \n",
+ "a=4*r/(math.sqrt(2)); #lattice constant(A.U)\n",
+ "V=a**3; #volume(cm^3)\n",
+ "rho=n*M/(Na*V); #density(gm/cm^3)\n",
+ "rho=rho*(10**8)**3 #density(gm/m^3)\n",
+ "\n",
+ "#Result\n",
+ "print \"Density is\",round(rho,2),\"g/m^3\"\n",
+ "print \"answer in the textbook varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density is 8.94 g/m^3\n",
+ "answer in the textbook varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.10, Page number 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Vaiable declaration\n",
+ "r=1.746; #atomic radius(AU)\n",
+ "\n",
+ "#calulation\n",
+ "a=4*r/math.sqrt(2); #lattice constant(AU)\n",
+ "#for (200)\n",
+ "h=2;k=0;l=0;\n",
+ "d=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(AU)\n",
+ "#for (220)\n",
+ "h=2;k=2;l=0; \n",
+ "d1=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(AU)\n",
+ "#for (111)\n",
+ "h=1;k=1;l=1;\n",
+ "d2=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(AU)\n",
+ "d=math.ceil(d*10**4)/10**4; #rounding off to 4 decimals\n",
+ "d1=math.ceil(d1*10**3)/10**3; #rounding off to 3 decimals\n",
+ "d2=math.ceil(d2*10**3)/10**3; #rounding off to 3 decimals\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing for (200) is\",d,\"A.U\"\n",
+ "print \"answer in the book varies in 3rd decimal due to rounding off errors\"\n",
+ "print \"spacing for (220) is\",d1,\"A.U\"\n",
+ "print \"spacing for (111) is\",d2,\"A.U\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing for (200) is 2.4693 A.U\n",
+ "answer in the book varies in 3rd decimal due to rounding off errors\n",
+ "spacing for (220) is 1.746 A.U\n",
+ "spacing for (111) is 2.852 A.U\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.11, Page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#calculation\n",
+ "#for (i)\n",
+ "l=1;m=0;n=0;\n",
+ "p=0;q=1;r=0;\n",
+ "d=math.acos(((l*p)+(m*q)+(n*r))/(math.sqrt(l**2+m**2+n**2)*math.sqrt(p**2+q**2+r**2))); #angle between 2 normals(radian)\n",
+ "theta=math.degrees(d); #angle between 2 normals(degrees) \n",
+ "\n",
+ "#for (ii)\n",
+ "l=1;m=2;n=1;\n",
+ "p=1;q=1;r=1;\n",
+ "d1=math.acos(((l*p)+(m*q)+(n*r))/(math.sqrt(l**2+m**2+n**2)*math.sqrt(p**2+q**2+r**2))); #angle between 2 normals(radian)\n",
+ "theta1=math.degrees(d1); #angle between 2 normals(degrees) \n",
+ "deg=int(theta1); #angle(degrees)\n",
+ "t=60*(theta1-deg);\n",
+ "m=int(t); #angle(minutes)\n",
+ " \n",
+ "#Result\n",
+ "print \"angle between the normal to pair of miller incdices (100) and (010) is\",theta,\"degrees\"\n",
+ "print \"angle between the normal to pair of miller incdices (121) and (111) is\",deg,\"degrees\",m,\"minutes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle between the normal to pair of miller incdices (100) and (010) is 90.0 degrees\n",
+ "angle between the normal to pair of miller incdices (121) and (111) is 19 degrees 28 minutes\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.13, Page number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#variable declaration\n",
+ "a=3.61*10**-7; #lattice constant(mm)\n",
+ "\n",
+ "#Calcualtion\n",
+ "#for plane (100)\n",
+ "SA=a*a; #surface area(mm^2)\n",
+ "tamc=2; #total atoms included\n",
+ "ans=tamc/SA; #number of atoms per mm^2\n",
+ "#for (ii) plane (110)\n",
+ "A=a*(math.sqrt(2)*a); #area of the plane(mm^2)\n",
+ "tamc=2; #total atoms included according to sketch\n",
+ "ans1=tamc/A; #number of atoms per mm^2\n",
+ "#for (iii) plane (111)\n",
+ "A=0.866*a*a; #area of the plane(mm^2)\n",
+ "tamc=2; #total atoms included according to sketch\n",
+ "ans2=tamc/A; #number of atoms per mm^2\n",
+ "\n",
+ "#Result\n",
+ "print \"atoms per mm^2 for (100) is\",round(ans/1e+13,3),\"*10**13 atoms/mm^2\"\n",
+ "print \"atoms per mm^2 for (110) is\",round(ans1/1e+13,3),\"*10**13 atoms/mm^2\"\n",
+ "print \"atoms per mm^2 for (111) is\",round(ans2/1e+13,3),\"*10**13 atoms/mm^2\"\n",
+ "print \"answer for plane (111) given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "atoms per mm^2 for (100) is 1.535 *10**13 atoms/mm^2\n",
+ "atoms per mm^2 for (110) is 1.085 *10**13 atoms/mm^2\n",
+ "atoms per mm^2 for (111) is 1.772 *10**13 atoms/mm^2\n",
+ "answer for plane (111) given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter5.ipynb b/Modern_Physics/chapter5.ipynb
new file mode 100755
index 00000000..a4b2fb2a
--- /dev/null
+++ b/Modern_Physics/chapter5.ipynb
@@ -0,0 +1,832 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9388f9d8764031d08c03b951ac3babfe1cafed91339d0e7cf1d9a5afd45176fa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "5: Quantum Theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.1, Page number 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W1=4; #wavelength(Angstrom)\n",
+ "W2=1; #wavelength(Angstrom)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E=12400/W1; #energy(eV)\n",
+ "v=math.sqrt(E*e*2/m); #velocity(m/s)\n",
+ "E1=12400/W2; #energy(eV)\n",
+ "v1=math.sqrt(E1*e*2/m); #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"The energy for 4 angstrom wavelength is\",E,\"eV\"\n",
+ "print \"The velocity is\",round(v/1e+6),\"*10**6 m/s\"\n",
+ "print \"The energy for 1 angstrom wavelength is\",E1,\"eV\"\n",
+ "print \"The velocity is\",round(v1/1e+6),\"*10**6 m/s\"\n",
+ "\n",
+ "#answers given in the book are wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy for 4 angstrom wavelength is 3100.0 eV\n",
+ "The velocity is 33.0 *10**6 m/s\n",
+ "The energy for 1 angstrom wavelength is 12400.0 eV\n",
+ "The velocity is 66.0 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.2, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=880*10**3; #frequency(Hz)\n",
+ "P=10*10**3; #Power(W)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*f; #energy carried by each photon(J)\n",
+ "n=P/E; #number of photons emitted per second\n",
+ "\n",
+ "#Result\n",
+ "print \"The number of photons emitted per second are\",round(n/1e+30,2),\"*10**30\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of photons emitted per second are 17.15 *10**30\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.3, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "P=200; #power(W)\n",
+ "W=6123*10**-10; #wavelength(m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "Op=0.5*P; #radiant output(J/s)\n",
+ "E=h*c/W; #energy content(J)\n",
+ "n=2/E; #number of quanta emitted per second\n",
+ "\n",
+ "#Result\n",
+ "print \"Number of quanta emitted per second is\",round(n/1e+18,2),\"*10**18\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of quanta emitted per second is 6.16 *10**18\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.4, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=5*10**4; #no. of photons\n",
+ "W=3000*10**-10; #wavelength(m)\n",
+ "J=5*10**-3; #senstivity(A/W)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/W; #energy content of each photon(J)\n",
+ "TE=N*E; #total energy(J)\n",
+ "I=J*TE; #current produced(ampere)\n",
+ "n=I/e; #number of photo electrons ejected\n",
+ "\n",
+ "#Result\n",
+ "print \"number of photoelectrons emitted are\",int(n)\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of photoelectrons emitted are 1035\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.5, Page number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=5*10**-7; #wavelength(m)\n",
+ "F=10**-5; #force(N)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=1.5*10**-3; #mass(kg)\n",
+ "c=3*10**8; #speed of light in (m/s)\n",
+ "S=0.1; #specific heat\n",
+ "\n",
+ "#Calculation\n",
+ "n=F*W/h; #number of photons\n",
+ "E=F*c/4200; #energy of each photon(kcal/s)\n",
+ "theta=E/(m*S); #rate of rise in temperature(C/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of photons are\",round(n/1e+21,3),\"*10**21\"\n",
+ "print \"the rate of temperature rise is\",round(theta/1e+3,1),\"*10**3 C/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of photons are 7.547 *10**21\n",
+ "the rate of temperature rise is 4.8 *10**3 C/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.6, Page number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=4500*10**-10; #wavelength(m)\n",
+ "V=150; #rated voltage(W)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "P=V*8/100; #lamp power emitted(W)\n",
+ "E=h*c/W; #energy carried by 1 photon(J) \n",
+ "n=P/E; #number of photons emitted per second\n",
+ "\n",
+ "#Result\n",
+ "print \"Number of photons emitted per second is\",round(n/1e+18,2),\"*10**18\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of photons emitted per second is 27.17 *10**18\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.7, Page number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=1*10**12; #frequency(Hz)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*f; #energy per photon(J)\n",
+ "n=E/6.625; #number of photons\n",
+ "\n",
+ "#Result\n",
+ "print \"the number of photons required is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the number of photons required is 1e-22\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.8, Page number 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=5200*10**-10; #wavelength(m)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "p=h/W; #momentum(kg-m/s)\n",
+ "v=p/m; #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity is\",round(v),\"m/s\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity is 1397.0 m/s\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.9, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=7*10**5; #maximum speed(m/sec)\n",
+ "f=8*10**14; #frequency(Hz)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calulation\n",
+ "E=m*v*v/2; #energy(J)\n",
+ "fo=f-(E/h); #threshold frequency of the surface(Hz) \n",
+ "\n",
+ "#Result\n",
+ "print \"the threshold frequency is\",round(fo/1e+14,2),\"*10**14 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the threshold frequency is 4.63 *10**14 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.10, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Wo=2300*10; #threshold wavelength(Angstrom)\n",
+ "W=1800*10; #incident light wavelength(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "w=124000/Wo; #maximum energy of photoelectrons emitted(eV)\n",
+ "E=124000*((1/W)-(1/Wo)); #work function for tungsten(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum energy of photoelectrons emitted is\",round(w,1),\"eV\"\n",
+ "print \"work function for tungsten is\",round(E,1),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum energy of photoelectrons emitted is 5.4 eV\n",
+ "work function for tungsten is 1.5 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.11, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=6000; #wavelegth(Angstrom)\n",
+ "v=4*10**5; #velocity(m/sec)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "KE=m*v**2/(2*e); #kinetic energy of photo electronns(eV)\n",
+ "WF=12400/W; #energy content of photon(eV)\n",
+ "Wo=12400/(WF-KE); #photo electric threshold wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Kinetic energy is\",KE,\"eV\"\n",
+ "print \"The threshold wavelength is\",int(Wo),\"Angstrom\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Kinetic energy is 0.456 eV\n",
+ "The threshold wavelength is 7698 Angstrom\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.12, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Wo=4.8; #work function(eV)\n",
+ "W=2220; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "E=12400/W; #energy of light photon(eV)\n",
+ "Emax=E-Wo; #maximum kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(Emax,3),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 0.786 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.13, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=4000*10**-10; #wavelength(m)\n",
+ "Vs=0.4; #retarding potential(eV)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "f=c/W; #frequency of light(Hz)\n",
+ "E=h*f/e; #photon energy(eV)\n",
+ "Wo=E-Vs; #work function(eV)\n",
+ "fo=Wo/h*e; #threshold frequency(Hz)\n",
+ "NE=(E-Wo)*e; #net energy(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"The light frequency is\",f,\"Hz\"\n",
+ "print \"The photon energy is\",round(E,1),\"eV\"\n",
+ "print \"The work function is\",round(Wo,1),\"eV\"\n",
+ "print \"The threshold frequency is\",round(fo/1e+14,1),\"*10**14 Hz\"\n",
+ "print \"The net energy is\",NE,\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The light frequency is 7.5e+14 Hz\n",
+ "The photon energy is 3.1 eV\n",
+ "The work function is 2.7 eV\n",
+ "The threshold frequency is 6.5 *10**14 Hz\n",
+ "The net energy is 6.4e-20 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.14, Page number 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W1=3310*10**-10; #photon wavelength(m)\n",
+ "W2=5000*10**-10; #photon wavelength(m)\n",
+ "E1=3*10**-19; #electron energy(J)\n",
+ "E2=0.972*10**-19; #electron energy(J)\n",
+ "c=3*10**8; #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "h=(E1-E2)*(W1*W2)/(c*(W2-W1)); #planck's constant(Js)\n",
+ "Wo=c*h/E1; #threshold wavelength(m) \n",
+ "\n",
+ "#Result\n",
+ "print \"the plancks const is\",round(h/1e-34,2),\"*10**-34 Js\"\n",
+ "print \"The threshold wavelength is\",round(Wo*1e+10),\"*10**-10 m\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the plancks const is 6.62 *10**-34 Js\n",
+ "The threshold wavelength is 6620.0 *10**-10 m\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.15, Page number 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=6525; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "Vo_a=12400*((1/4000)-(1/W)); #stopping potential(V)\n",
+ "Vo_b=12400*((1/2000)-(1/W)); #stopping potential(V)\n",
+ "Vo_c=12400*((1/2000)-(2/W)); #stopping potential(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"Stopping potential is\",round(Vo_a,1),\"Volt\"\n",
+ "print \"Stopping potential is\",round(Vo_b,1),\"Volt\"\n",
+ "print \"Stopping potential is\",round(Vo_c,1),\"Volt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stopping potential is 1.2 Volt\n",
+ "Stopping potential is 4.3 Volt\n",
+ "Stopping potential is 2.4 Volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.16, Page number 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Wo=5000; #wavelength(angstrom)\n",
+ "V=3.1; #stopping potential(V)\n",
+ "\n",
+ "#Calcultion\n",
+ "W=1/((V/12400)+(1/Wo)); #wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength is\",int(W),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength is 2222 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.17, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=2000; #wavelength(Angstrom)\n",
+ "Vs=4.2; #Work Function(eV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=12400/W; #photon energy(eV)\n",
+ "Emax=(E-Vs)*e; #maximum kinetic energy(J)\n",
+ "Emin=0; #minimum kinetic energy\n",
+ "Vo=Emax/e; #stopping potential(V)\n",
+ "Wo=12400/Vs; #cut off wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"Kinetic Energy of fastest photoelectron is\",Emax,\"J\"\n",
+ "print \"Kinetic Energy of slowest moving electron is\",Emin,\"J\"\n",
+ "print \"Stopping potential is\",Vo,\"V\"\n",
+ "print \"The cutoff wavelength is\",round(Wo,1),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kinetic Energy of fastest photoelectron is 3.2e-19 J\n",
+ "Kinetic Energy of slowest moving electron is 0 J\n",
+ "Stopping potential is 2.0 V\n",
+ "The cutoff wavelength is 2952.4 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.18, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vs1=4.6; #Stopping Potential(V)\n",
+ "Vs2=12.9; #Stopping Potential(V)\n",
+ "f1=2*10**15; #frequency(Hz)\n",
+ "f2=4*10**15; #frequency(Hz)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "h=((Vs2-Vs1)*e)/(f2-f1); #planck's constant(Js)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Planck's constant is\",h,\"Js\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Planck's constant is 6.64e-34 Js\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter5_1.ipynb b/Modern_Physics/chapter5_1.ipynb
new file mode 100755
index 00000000..a4b2fb2a
--- /dev/null
+++ b/Modern_Physics/chapter5_1.ipynb
@@ -0,0 +1,832 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9388f9d8764031d08c03b951ac3babfe1cafed91339d0e7cf1d9a5afd45176fa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "5: Quantum Theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.1, Page number 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W1=4; #wavelength(Angstrom)\n",
+ "W2=1; #wavelength(Angstrom)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E=12400/W1; #energy(eV)\n",
+ "v=math.sqrt(E*e*2/m); #velocity(m/s)\n",
+ "E1=12400/W2; #energy(eV)\n",
+ "v1=math.sqrt(E1*e*2/m); #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"The energy for 4 angstrom wavelength is\",E,\"eV\"\n",
+ "print \"The velocity is\",round(v/1e+6),\"*10**6 m/s\"\n",
+ "print \"The energy for 1 angstrom wavelength is\",E1,\"eV\"\n",
+ "print \"The velocity is\",round(v1/1e+6),\"*10**6 m/s\"\n",
+ "\n",
+ "#answers given in the book are wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy for 4 angstrom wavelength is 3100.0 eV\n",
+ "The velocity is 33.0 *10**6 m/s\n",
+ "The energy for 1 angstrom wavelength is 12400.0 eV\n",
+ "The velocity is 66.0 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.2, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=880*10**3; #frequency(Hz)\n",
+ "P=10*10**3; #Power(W)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*f; #energy carried by each photon(J)\n",
+ "n=P/E; #number of photons emitted per second\n",
+ "\n",
+ "#Result\n",
+ "print \"The number of photons emitted per second are\",round(n/1e+30,2),\"*10**30\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The number of photons emitted per second are 17.15 *10**30\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.3, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "P=200; #power(W)\n",
+ "W=6123*10**-10; #wavelength(m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "Op=0.5*P; #radiant output(J/s)\n",
+ "E=h*c/W; #energy content(J)\n",
+ "n=2/E; #number of quanta emitted per second\n",
+ "\n",
+ "#Result\n",
+ "print \"Number of quanta emitted per second is\",round(n/1e+18,2),\"*10**18\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of quanta emitted per second is 6.16 *10**18\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.4, Page number 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=5*10**4; #no. of photons\n",
+ "W=3000*10**-10; #wavelength(m)\n",
+ "J=5*10**-3; #senstivity(A/W)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/W; #energy content of each photon(J)\n",
+ "TE=N*E; #total energy(J)\n",
+ "I=J*TE; #current produced(ampere)\n",
+ "n=I/e; #number of photo electrons ejected\n",
+ "\n",
+ "#Result\n",
+ "print \"number of photoelectrons emitted are\",int(n)\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of photoelectrons emitted are 1035\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.5, Page number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=5*10**-7; #wavelength(m)\n",
+ "F=10**-5; #force(N)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=1.5*10**-3; #mass(kg)\n",
+ "c=3*10**8; #speed of light in (m/s)\n",
+ "S=0.1; #specific heat\n",
+ "\n",
+ "#Calculation\n",
+ "n=F*W/h; #number of photons\n",
+ "E=F*c/4200; #energy of each photon(kcal/s)\n",
+ "theta=E/(m*S); #rate of rise in temperature(C/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of photons are\",round(n/1e+21,3),\"*10**21\"\n",
+ "print \"the rate of temperature rise is\",round(theta/1e+3,1),\"*10**3 C/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of photons are 7.547 *10**21\n",
+ "the rate of temperature rise is 4.8 *10**3 C/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.6, Page number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=4500*10**-10; #wavelength(m)\n",
+ "V=150; #rated voltage(W)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "P=V*8/100; #lamp power emitted(W)\n",
+ "E=h*c/W; #energy carried by 1 photon(J) \n",
+ "n=P/E; #number of photons emitted per second\n",
+ "\n",
+ "#Result\n",
+ "print \"Number of photons emitted per second is\",round(n/1e+18,2),\"*10**18\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of photons emitted per second is 27.17 *10**18\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.7, Page number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "f=1*10**12; #frequency(Hz)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*f; #energy per photon(J)\n",
+ "n=E/6.625; #number of photons\n",
+ "\n",
+ "#Result\n",
+ "print \"the number of photons required is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the number of photons required is 1e-22\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.8, Page number 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=5200*10**-10; #wavelength(m)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "p=h/W; #momentum(kg-m/s)\n",
+ "v=p/m; #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity is\",round(v),\"m/s\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity is 1397.0 m/s\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.9, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=7*10**5; #maximum speed(m/sec)\n",
+ "f=8*10**14; #frequency(Hz)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calulation\n",
+ "E=m*v*v/2; #energy(J)\n",
+ "fo=f-(E/h); #threshold frequency of the surface(Hz) \n",
+ "\n",
+ "#Result\n",
+ "print \"the threshold frequency is\",round(fo/1e+14,2),\"*10**14 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the threshold frequency is 4.63 *10**14 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.10, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Wo=2300*10; #threshold wavelength(Angstrom)\n",
+ "W=1800*10; #incident light wavelength(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "w=124000/Wo; #maximum energy of photoelectrons emitted(eV)\n",
+ "E=124000*((1/W)-(1/Wo)); #work function for tungsten(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum energy of photoelectrons emitted is\",round(w,1),\"eV\"\n",
+ "print \"work function for tungsten is\",round(E,1),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum energy of photoelectrons emitted is 5.4 eV\n",
+ "work function for tungsten is 1.5 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.11, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=6000; #wavelegth(Angstrom)\n",
+ "v=4*10**5; #velocity(m/sec)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "KE=m*v**2/(2*e); #kinetic energy of photo electronns(eV)\n",
+ "WF=12400/W; #energy content of photon(eV)\n",
+ "Wo=12400/(WF-KE); #photo electric threshold wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Kinetic energy is\",KE,\"eV\"\n",
+ "print \"The threshold wavelength is\",int(Wo),\"Angstrom\"\n",
+ "print \"answer given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Kinetic energy is 0.456 eV\n",
+ "The threshold wavelength is 7698 Angstrom\n",
+ "answer given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.12, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Wo=4.8; #work function(eV)\n",
+ "W=2220; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "E=12400/W; #energy of light photon(eV)\n",
+ "Emax=E-Wo; #maximum kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(Emax,3),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 0.786 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.13, Page number 106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=4000*10**-10; #wavelength(m)\n",
+ "Vs=0.4; #retarding potential(eV)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "f=c/W; #frequency of light(Hz)\n",
+ "E=h*f/e; #photon energy(eV)\n",
+ "Wo=E-Vs; #work function(eV)\n",
+ "fo=Wo/h*e; #threshold frequency(Hz)\n",
+ "NE=(E-Wo)*e; #net energy(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"The light frequency is\",f,\"Hz\"\n",
+ "print \"The photon energy is\",round(E,1),\"eV\"\n",
+ "print \"The work function is\",round(Wo,1),\"eV\"\n",
+ "print \"The threshold frequency is\",round(fo/1e+14,1),\"*10**14 Hz\"\n",
+ "print \"The net energy is\",NE,\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The light frequency is 7.5e+14 Hz\n",
+ "The photon energy is 3.1 eV\n",
+ "The work function is 2.7 eV\n",
+ "The threshold frequency is 6.5 *10**14 Hz\n",
+ "The net energy is 6.4e-20 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.14, Page number 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W1=3310*10**-10; #photon wavelength(m)\n",
+ "W2=5000*10**-10; #photon wavelength(m)\n",
+ "E1=3*10**-19; #electron energy(J)\n",
+ "E2=0.972*10**-19; #electron energy(J)\n",
+ "c=3*10**8; #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "h=(E1-E2)*(W1*W2)/(c*(W2-W1)); #planck's constant(Js)\n",
+ "Wo=c*h/E1; #threshold wavelength(m) \n",
+ "\n",
+ "#Result\n",
+ "print \"the plancks const is\",round(h/1e-34,2),\"*10**-34 Js\"\n",
+ "print \"The threshold wavelength is\",round(Wo*1e+10),\"*10**-10 m\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the plancks const is 6.62 *10**-34 Js\n",
+ "The threshold wavelength is 6620.0 *10**-10 m\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.15, Page number 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=6525; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "Vo_a=12400*((1/4000)-(1/W)); #stopping potential(V)\n",
+ "Vo_b=12400*((1/2000)-(1/W)); #stopping potential(V)\n",
+ "Vo_c=12400*((1/2000)-(2/W)); #stopping potential(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"Stopping potential is\",round(Vo_a,1),\"Volt\"\n",
+ "print \"Stopping potential is\",round(Vo_b,1),\"Volt\"\n",
+ "print \"Stopping potential is\",round(Vo_c,1),\"Volt\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stopping potential is 1.2 Volt\n",
+ "Stopping potential is 4.3 Volt\n",
+ "Stopping potential is 2.4 Volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.16, Page number 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Wo=5000; #wavelength(angstrom)\n",
+ "V=3.1; #stopping potential(V)\n",
+ "\n",
+ "#Calcultion\n",
+ "W=1/((V/12400)+(1/Wo)); #wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"The wavelength is\",int(W),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The wavelength is 2222 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.17, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=2000; #wavelength(Angstrom)\n",
+ "Vs=4.2; #Work Function(eV)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=12400/W; #photon energy(eV)\n",
+ "Emax=(E-Vs)*e; #maximum kinetic energy(J)\n",
+ "Emin=0; #minimum kinetic energy\n",
+ "Vo=Emax/e; #stopping potential(V)\n",
+ "Wo=12400/Vs; #cut off wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"Kinetic Energy of fastest photoelectron is\",Emax,\"J\"\n",
+ "print \"Kinetic Energy of slowest moving electron is\",Emin,\"J\"\n",
+ "print \"Stopping potential is\",Vo,\"V\"\n",
+ "print \"The cutoff wavelength is\",round(Wo,1),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kinetic Energy of fastest photoelectron is 3.2e-19 J\n",
+ "Kinetic Energy of slowest moving electron is 0 J\n",
+ "Stopping potential is 2.0 V\n",
+ "The cutoff wavelength is 2952.4 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.18, Page number 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vs1=4.6; #Stopping Potential(V)\n",
+ "Vs2=12.9; #Stopping Potential(V)\n",
+ "f1=2*10**15; #frequency(Hz)\n",
+ "f2=4*10**15; #frequency(Hz)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "h=((Vs2-Vs1)*e)/(f2-f1); #planck's constant(Js)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Planck's constant is\",h,\"Js\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Planck's constant is 6.64e-34 Js\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter7.ipynb b/Modern_Physics/chapter7.ipynb
new file mode 100755
index 00000000..84f294f8
--- /dev/null
+++ b/Modern_Physics/chapter7.ipynb
@@ -0,0 +1,186 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bb88588092f5e168d4a1c62bb7bb87ac343b1c2045bd4d31cd2391090ea3e567"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Classification of Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=11000; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "Eg=W/12400; #energy gap(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Energy Gap is\",round(Eg,3),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy Gap is 0.887 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.2, Page number 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=1.7*10**-6; #resistivity(ohm-cm)\n",
+ "d=8.96; #density(g/cc)\n",
+ "W=63.5; #atomic weight(gm)\n",
+ "Na=6.02*10**23; #Avagadro number(per g-mol)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "n=8.96*Na/W; #number of Cu atoms per cc\n",
+ "mewe=1/(p*e*n); #mobility of electrons(cm^2/V-s)\n",
+ "\n",
+ "#Result\n",
+ "print \"mobility of electrons is\",round(mewe,1),\"cm^2/V-s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mobility of electrons is 43.3 cm^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d1=2.5*10**19; #density of charge carriers(per m^3)\n",
+ "d2=4.2*10**28; #density of germanium atoms(per m^3)\n",
+ "mewe=0.36; #mobilty of electrons(m^2/V-s)\n",
+ "Na=6.02*10**23; #Avgraodo no.(per g-mol)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "Nd=d2/10**6; #density of added impurity atoms(atoms/m^3)\n",
+ "sigma_n=Nd*e*mewe; #conductivity(mho/m)\n",
+ "rho_n=1/sigma_n; #resistivity of doped germanium(ohm-m)\n",
+ "\n",
+ "#Result\n",
+ "print \"resistivity of doped germanium is\",round(rho_n*10**3,3),\"*10**-3 ohm-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistivity of doped germanium is 0.413 *10**-3 ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.4, Page number 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Eg=0.75; #energy gap(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=12400/Eg; #wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength is\",int(lamda),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength is 16533 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter7_1.ipynb b/Modern_Physics/chapter7_1.ipynb
new file mode 100755
index 00000000..84f294f8
--- /dev/null
+++ b/Modern_Physics/chapter7_1.ipynb
@@ -0,0 +1,186 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bb88588092f5e168d4a1c62bb7bb87ac343b1c2045bd4d31cd2391090ea3e567"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Classification of Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=11000; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "Eg=W/12400; #energy gap(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Energy Gap is\",round(Eg,3),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy Gap is 0.887 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.2, Page number 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=1.7*10**-6; #resistivity(ohm-cm)\n",
+ "d=8.96; #density(g/cc)\n",
+ "W=63.5; #atomic weight(gm)\n",
+ "Na=6.02*10**23; #Avagadro number(per g-mol)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "n=8.96*Na/W; #number of Cu atoms per cc\n",
+ "mewe=1/(p*e*n); #mobility of electrons(cm^2/V-s)\n",
+ "\n",
+ "#Result\n",
+ "print \"mobility of electrons is\",round(mewe,1),\"cm^2/V-s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mobility of electrons is 43.3 cm^2/V-s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d1=2.5*10**19; #density of charge carriers(per m^3)\n",
+ "d2=4.2*10**28; #density of germanium atoms(per m^3)\n",
+ "mewe=0.36; #mobilty of electrons(m^2/V-s)\n",
+ "Na=6.02*10**23; #Avgraodo no.(per g-mol)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "Nd=d2/10**6; #density of added impurity atoms(atoms/m^3)\n",
+ "sigma_n=Nd*e*mewe; #conductivity(mho/m)\n",
+ "rho_n=1/sigma_n; #resistivity of doped germanium(ohm-m)\n",
+ "\n",
+ "#Result\n",
+ "print \"resistivity of doped germanium is\",round(rho_n*10**3,3),\"*10**-3 ohm-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistivity of doped germanium is 0.413 *10**-3 ohm-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.4, Page number 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Eg=0.75; #energy gap(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=12400/Eg; #wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength is\",int(lamda),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength is 16533 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter8.ipynb b/Modern_Physics/chapter8.ipynb
new file mode 100755
index 00000000..66b80efc
--- /dev/null
+++ b/Modern_Physics/chapter8.ipynb
@@ -0,0 +1,739 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d72c0a73996bcf192ce1ccd2756ffc71afe785564affcd57aa0f4ee59a16ed83"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: X-Rays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.1, Page number 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=60000; #working voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda_min=12400/V; #Wavelength emitted(Angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"Wavelength emitted is\",round(lamda_min,1),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength emitted is 0.2 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=12400; #Volatage applied(V)\n",
+ "I=0.002; #current drop(A)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "n=I/e; #number of electrons\n",
+ "v=(5.93*10**5)*(math.sqrt(V)); #striking speed(m/s)\n",
+ "lamda_min=12400/V; #shortest wavelength is(Angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of electrons striking per second is\",n,\"s-1\" \n",
+ "print \"the speed with which they strike is\",round(v/1e+7,1),\"*10^7 m/s\"\n",
+ "print \"shortest wavelength is\",lamda_min,\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of electrons striking per second is 1.25e+16 s-1\n",
+ "the speed with which they strike is 6.6 *10^7 m/s\n",
+ "shortest wavelength is 1.0 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda_min=1; #shortest wavelength(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "V=(12400/lamda_min)/1000; #minimum applied voltage(kV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum applied voltage is\",V,\"kV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum applied voltage is 12.4 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.4, Page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=0.005; #current(A)\n",
+ "V=100*10**3; #potential difference(V)\n",
+ "\n",
+ "#Calculation\n",
+ "v=(5.93*10**5)*(math.sqrt(V)); #Maximum speed of electrons(m/s)\n",
+ "IP=V*I; #incident power(W)\n",
+ "P=0.999*IP; #power converted into heat(W)\n",
+ "H=P/4.18; #rate of production of heat(cal/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum speed of electrons is\",round(v/1e+8,2),\"*10^8 m/s\"\n",
+ "print \"rate of production of heat is\",int(H),\"cal/s\"\n",
+ "print \"answer for maximum speed of electrons given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum speed of electrons is 1.88 *10^8 m/s\n",
+ "rate of production of heat is 119 cal/s\n",
+ "answer for maximum speed of electrons given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.5, Page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=30000; #potential difference(V)\n",
+ "lamda_min=0.414*10**-10; #short wavelength limit(m)\n",
+ "e=1.602*10**-19; #the charge on electron(C)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "h=(e*V*lamda_min)/c; #Planck's constant(Js)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Planck's constant is\",round(h/1e-34,2),\"*10^-34 Js\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Planck's constant is 6.63 *10^-34 Js\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.6, Page number 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=1.43*10**-10; #wavelength(m)\n",
+ "Z=74; #atomic number\n",
+ "R=10.97*10**6; #Rydberg constant(1/m)\n",
+ "\n",
+ "#Calculation\n",
+ "b=74-math.sqrt(36/(5*R*lamda)); #nuclear screening constant\n",
+ "\n",
+ "#Result\n",
+ "print \"nuclear screening constant is\",round(b,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "nuclear screening constant is 6.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.9, Page number 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewm=0.6; #mass adsoption coeffcient(cm^2/g)\n",
+ "rho=2.7; #density of aluminium(g/cm^3)\n",
+ "\n",
+ "#Calculation\n",
+ "mew=rho*mewm; #linear adsorption coefficent of aluminium (1/cm)\n",
+ "T=0.693/mew; #hvl(cm)\n",
+ "x=(math.log(20))*(1/mew); #thickness(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"linear adsorption coefficent of aluminium is\",mew,\"cm-1\"\n",
+ "print \"the hvl is\",round(T,3),\"cm\"\n",
+ "print \"the thickness is\",round(x,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "linear adsorption coefficent of aluminium is 1.62 cm-1\n",
+ "the hvl is 0.428 cm\n",
+ "the thickness is 1.85 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.10, Page number 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=12; #glancing angle(degrees)\n",
+ "n=1;\n",
+ "d=3.04*10**-10; #grating space(m)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #glancing angle(radian)\n",
+ "lamda=(2*d*math.sin(theta))/n; #wavelength of X-rays(m)\n",
+ "theta3=(3*lamda)/(2*d); #angle for third order reflection(radian)\n",
+ "theta3=theta3*180/math.pi; #angle for third order reflection(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X-rays is\",round(lamda/10**-10,2),\"Angstrom\"\n",
+ "print \"angle for third order reflection is\",round(theta3,2),\"degrees\"\n",
+ "print \"answers given in the book are wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X-rays is 1.26 Angstrom\n",
+ "angle for third order reflection is 35.74 degrees\n",
+ "answers given in the book are wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.11, Page number 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=1.181; #distance of seperation(Angstrom)\n",
+ "lamda=1.540; #wavelength(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "n=2*d/lamda; #sin(D) = 1 for max value\n",
+ "\n",
+ "#Result\n",
+ "print \"the orders of bragg reflection observed are\",int(n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the orders of bragg reflection observed are 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.12, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=0.6; #wavelength(angstrom)\n",
+ "theta1=6.45;\n",
+ "theta2=9.15;\n",
+ "theta3=13; #angles(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=lamda*10**-10; ##wavelength(m)\n",
+ "theta1=theta1*math.pi/180; \n",
+ "theta2=theta2*math.pi/180; \n",
+ "theta3=theta3*math.pi/180; #angles(radian)\n",
+ "d_a=lamda/(2*math.sin(theta1)); #interplanar spacing for 6.45 degrees(m)\n",
+ "d_b=lamda/(2*math.sin(theta2));\n",
+ "d_c=lamda/(2*math.sin(theta3)); \n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing for 6.45 degrees is\",round(d_a/1e-10,2),\"*10^-10 m\"\n",
+ "print \"interplanar spacing for 9.15 degrees is\",round(d_b/1e-10,3),\"*10^-10 m\"\n",
+ "print \"interplanar spacing for 13 degrees is\",round(d_c/1e-10,2),\"*10^-10 m\"\n",
+ "print \"answers given in the book vary due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "interplanar spacing for 6.45 degrees is 2.67 *10^-10 m\n",
+ "interplanar spacing for 9.15 degrees is 1.887 *10^-10 m\n",
+ "interplanar spacing for 13 degrees is 1.33 *10^-10 m\n",
+ "answers given in the book vary due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.13, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=3*10**-10; #wavelength(m)\n",
+ "theta=40; #angle(degree)\n",
+ "n=1;\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=n*lamda/(2*math.sin(theta)); #spacing between planes(m)\n",
+ "a=2*d; #lattice constant(m)\n",
+ "V=a**3; #volume of unit cell(m^3)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between planes is\",round(d/10**-10,2),\"AU\"\n",
+ "print \"volume of unit cell is\",round(V/1e-28,3),\"*10^-28 m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between planes is 2.33 AU\n",
+ "volume of unit cell is 1.017 *10^-28 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.14, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=5.4;\n",
+ "theta2=7.6;\n",
+ "theta3=9.4; #angles in degree\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; \n",
+ "theta2=theta2*math.pi/180; \n",
+ "theta3=theta3*math.pi/180; #angles(radian)\n",
+ "d1=1/(2*math.sin(theta1));\n",
+ "d2=1/(2*math.sin(theta2));\n",
+ "d3=1/(2*math.sin(theta3));\n",
+ "m=min(d1,d2,d3);\n",
+ "d1=d1/m;\n",
+ "d2=d2/m;\n",
+ "d3=d3/m;\n",
+ "\n",
+ "#Result\n",
+ "print \"d1:d2:d3 =\",d1,d2,d3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "d1:d2:d3 = 1.73551046111 1.23491924983 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.15, Page number 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=50000; #applied voltage(V)\n",
+ "rho=1.99*10**3; #density(kg/m^3)\n",
+ "n=4;\n",
+ "Na=6.02*10**26; #Avgraodo number(per kg mole)\n",
+ "M=74.6; #molecular mass\n",
+ "lamda=0.248*10**-10; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda_min=12400/V; #short wavelength limit(Angstrom)\n",
+ "a=(n*M/(Na*rho))**(1/3); #lattice constant(m)\n",
+ "d=a/2;\n",
+ "theta=math.asin(lamda/(2*d)); #glancing angle(radian)\n",
+ "theta=theta*180/math.pi; #glancing angle(degrees) \n",
+ "deg=int(theta); #glancing angle(degrees) \n",
+ "t=60*(theta-deg);\n",
+ "m=int(t); #glancing angle(minutes)\n",
+ "\n",
+ "#Result\n",
+ "print \"short wavelength limit is\",lamda_min,\"Angstrom\"\n",
+ "print \"glancing angle is\",deg,\"degrees\",m,\"minutes\"\n",
+ "print \"answer for glancing angle in minutes given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "short wavelength limit is 0.248 Angstrom\n",
+ "glancing angle is 2 degrees 15 minutes\n",
+ "answer for glancing angle in minutes given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.16, Page number 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=1.54; #wavelength(angstrom)\n",
+ "theta=15.9; #angle(degrees)\n",
+ "M=58.45; #molecular weight\n",
+ "rho=2.164; #density(g/cm^3)\n",
+ "n=2; #for NaCl molecule\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=lamda/(2*math.sin(theta)); #lattice spacing(angstrom) \n",
+ "dm=d*10**-8; ##lattice spacing(cm) \n",
+ "Na=M/(2*rho*dm**3); #Avogadro number(per gm mole) \n",
+ "\n",
+ "#Result\n",
+ "print \"lattice spacing is\",round(d,2),\"angstrom\"\n",
+ "print \"Avogadro number is\",round(Na/1e+23,2),\"*10^23 per gm mole\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " lattice spacing is 2.81 angstrom\n",
+ "Avogadro number is 6.08 *10^23 per gm mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.17, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=60; #angle(degree)\n",
+ "lamda=0.254; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "dlamda=0.024*(1-math.cos(theta)); #amount of increase in wavelength(angstrom)\n",
+ "lamda1=lamda-dlamda; #primary X-ray wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"primary X-ray wavelength is\",lamda1,\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "primary X-ray wavelength is 0.242 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.18, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=32; #angle(degree)\n",
+ "lamda=1.54*10**-10; #wavelength(angstrom)\n",
+ "h=2; \n",
+ "k=2;\n",
+ "l=0; #lattice constants\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=lamda/(2*math.sin(theta)); #interplanar spacing(m)\n",
+ "a=d*math.sqrt(h**2+k**2+l**2); #lattice parameter(m)\n",
+ "r=math.sqrt(2)*a/4; #radius of atom(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter is\",round(a/1e-10,1),\"*10^-10 m\"\n",
+ "print \"radius of atom is\",round(r/1e-10,2),\"*10^-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lattice parameter is 4.1 *10^-10 m\n",
+ "radius of atom is 1.45 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter8_1.ipynb b/Modern_Physics/chapter8_1.ipynb
new file mode 100755
index 00000000..66b80efc
--- /dev/null
+++ b/Modern_Physics/chapter8_1.ipynb
@@ -0,0 +1,739 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d72c0a73996bcf192ce1ccd2756ffc71afe785564affcd57aa0f4ee59a16ed83"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: X-Rays"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.1, Page number 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=60000; #working voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda_min=12400/V; #Wavelength emitted(Angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"Wavelength emitted is\",round(lamda_min,1),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength emitted is 0.2 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=12400; #Volatage applied(V)\n",
+ "I=0.002; #current drop(A)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "n=I/e; #number of electrons\n",
+ "v=(5.93*10**5)*(math.sqrt(V)); #striking speed(m/s)\n",
+ "lamda_min=12400/V; #shortest wavelength is(Angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of electrons striking per second is\",n,\"s-1\" \n",
+ "print \"the speed with which they strike is\",round(v/1e+7,1),\"*10^7 m/s\"\n",
+ "print \"shortest wavelength is\",lamda_min,\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of electrons striking per second is 1.25e+16 s-1\n",
+ "the speed with which they strike is 6.6 *10^7 m/s\n",
+ "shortest wavelength is 1.0 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda_min=1; #shortest wavelength(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "V=(12400/lamda_min)/1000; #minimum applied voltage(kV)\n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum applied voltage is\",V,\"kV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum applied voltage is 12.4 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.4, Page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=0.005; #current(A)\n",
+ "V=100*10**3; #potential difference(V)\n",
+ "\n",
+ "#Calculation\n",
+ "v=(5.93*10**5)*(math.sqrt(V)); #Maximum speed of electrons(m/s)\n",
+ "IP=V*I; #incident power(W)\n",
+ "P=0.999*IP; #power converted into heat(W)\n",
+ "H=P/4.18; #rate of production of heat(cal/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"Maximum speed of electrons is\",round(v/1e+8,2),\"*10^8 m/s\"\n",
+ "print \"rate of production of heat is\",int(H),\"cal/s\"\n",
+ "print \"answer for maximum speed of electrons given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum speed of electrons is 1.88 *10^8 m/s\n",
+ "rate of production of heat is 119 cal/s\n",
+ "answer for maximum speed of electrons given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.5, Page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=30000; #potential difference(V)\n",
+ "lamda_min=0.414*10**-10; #short wavelength limit(m)\n",
+ "e=1.602*10**-19; #the charge on electron(C)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "h=(e*V*lamda_min)/c; #Planck's constant(Js)\n",
+ "\n",
+ "#Result\n",
+ "print \"The Planck's constant is\",round(h/1e-34,2),\"*10^-34 Js\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Planck's constant is 6.63 *10^-34 Js\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.6, Page number 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=1.43*10**-10; #wavelength(m)\n",
+ "Z=74; #atomic number\n",
+ "R=10.97*10**6; #Rydberg constant(1/m)\n",
+ "\n",
+ "#Calculation\n",
+ "b=74-math.sqrt(36/(5*R*lamda)); #nuclear screening constant\n",
+ "\n",
+ "#Result\n",
+ "print \"nuclear screening constant is\",round(b,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "nuclear screening constant is 6.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.9, Page number 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewm=0.6; #mass adsoption coeffcient(cm^2/g)\n",
+ "rho=2.7; #density of aluminium(g/cm^3)\n",
+ "\n",
+ "#Calculation\n",
+ "mew=rho*mewm; #linear adsorption coefficent of aluminium (1/cm)\n",
+ "T=0.693/mew; #hvl(cm)\n",
+ "x=(math.log(20))*(1/mew); #thickness(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"linear adsorption coefficent of aluminium is\",mew,\"cm-1\"\n",
+ "print \"the hvl is\",round(T,3),\"cm\"\n",
+ "print \"the thickness is\",round(x,2),\"cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "linear adsorption coefficent of aluminium is 1.62 cm-1\n",
+ "the hvl is 0.428 cm\n",
+ "the thickness is 1.85 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.10, Page number 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=12; #glancing angle(degrees)\n",
+ "n=1;\n",
+ "d=3.04*10**-10; #grating space(m)\n",
+ "\n",
+ "#Calculation \n",
+ "theta=theta*math.pi/180; #glancing angle(radian)\n",
+ "lamda=(2*d*math.sin(theta))/n; #wavelength of X-rays(m)\n",
+ "theta3=(3*lamda)/(2*d); #angle for third order reflection(radian)\n",
+ "theta3=theta3*180/math.pi; #angle for third order reflection(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X-rays is\",round(lamda/10**-10,2),\"Angstrom\"\n",
+ "print \"angle for third order reflection is\",round(theta3,2),\"degrees\"\n",
+ "print \"answers given in the book are wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X-rays is 1.26 Angstrom\n",
+ "angle for third order reflection is 35.74 degrees\n",
+ "answers given in the book are wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.11, Page number 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=1.181; #distance of seperation(Angstrom)\n",
+ "lamda=1.540; #wavelength(Angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "n=2*d/lamda; #sin(D) = 1 for max value\n",
+ "\n",
+ "#Result\n",
+ "print \"the orders of bragg reflection observed are\",int(n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the orders of bragg reflection observed are 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.12, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=0.6; #wavelength(angstrom)\n",
+ "theta1=6.45;\n",
+ "theta2=9.15;\n",
+ "theta3=13; #angles(degree)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=lamda*10**-10; ##wavelength(m)\n",
+ "theta1=theta1*math.pi/180; \n",
+ "theta2=theta2*math.pi/180; \n",
+ "theta3=theta3*math.pi/180; #angles(radian)\n",
+ "d_a=lamda/(2*math.sin(theta1)); #interplanar spacing for 6.45 degrees(m)\n",
+ "d_b=lamda/(2*math.sin(theta2));\n",
+ "d_c=lamda/(2*math.sin(theta3)); \n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing for 6.45 degrees is\",round(d_a/1e-10,2),\"*10^-10 m\"\n",
+ "print \"interplanar spacing for 9.15 degrees is\",round(d_b/1e-10,3),\"*10^-10 m\"\n",
+ "print \"interplanar spacing for 13 degrees is\",round(d_c/1e-10,2),\"*10^-10 m\"\n",
+ "print \"answers given in the book vary due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "interplanar spacing for 6.45 degrees is 2.67 *10^-10 m\n",
+ "interplanar spacing for 9.15 degrees is 1.887 *10^-10 m\n",
+ "interplanar spacing for 13 degrees is 1.33 *10^-10 m\n",
+ "answers given in the book vary due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.13, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=3*10**-10; #wavelength(m)\n",
+ "theta=40; #angle(degree)\n",
+ "n=1;\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=n*lamda/(2*math.sin(theta)); #spacing between planes(m)\n",
+ "a=2*d; #lattice constant(m)\n",
+ "V=a**3; #volume of unit cell(m^3)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between planes is\",round(d/10**-10,2),\"AU\"\n",
+ "print \"volume of unit cell is\",round(V/1e-28,3),\"*10^-28 m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between planes is 2.33 AU\n",
+ "volume of unit cell is 1.017 *10^-28 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.14, Page number 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=5.4;\n",
+ "theta2=7.6;\n",
+ "theta3=9.4; #angles in degree\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; \n",
+ "theta2=theta2*math.pi/180; \n",
+ "theta3=theta3*math.pi/180; #angles(radian)\n",
+ "d1=1/(2*math.sin(theta1));\n",
+ "d2=1/(2*math.sin(theta2));\n",
+ "d3=1/(2*math.sin(theta3));\n",
+ "m=min(d1,d2,d3);\n",
+ "d1=d1/m;\n",
+ "d2=d2/m;\n",
+ "d3=d3/m;\n",
+ "\n",
+ "#Result\n",
+ "print \"d1:d2:d3 =\",d1,d2,d3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "d1:d2:d3 = 1.73551046111 1.23491924983 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.15, Page number 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=50000; #applied voltage(V)\n",
+ "rho=1.99*10**3; #density(kg/m^3)\n",
+ "n=4;\n",
+ "Na=6.02*10**26; #Avgraodo number(per kg mole)\n",
+ "M=74.6; #molecular mass\n",
+ "lamda=0.248*10**-10; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda_min=12400/V; #short wavelength limit(Angstrom)\n",
+ "a=(n*M/(Na*rho))**(1/3); #lattice constant(m)\n",
+ "d=a/2;\n",
+ "theta=math.asin(lamda/(2*d)); #glancing angle(radian)\n",
+ "theta=theta*180/math.pi; #glancing angle(degrees) \n",
+ "deg=int(theta); #glancing angle(degrees) \n",
+ "t=60*(theta-deg);\n",
+ "m=int(t); #glancing angle(minutes)\n",
+ "\n",
+ "#Result\n",
+ "print \"short wavelength limit is\",lamda_min,\"Angstrom\"\n",
+ "print \"glancing angle is\",deg,\"degrees\",m,\"minutes\"\n",
+ "print \"answer for glancing angle in minutes given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "short wavelength limit is 0.248 Angstrom\n",
+ "glancing angle is 2 degrees 15 minutes\n",
+ "answer for glancing angle in minutes given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.16, Page number 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=1.54; #wavelength(angstrom)\n",
+ "theta=15.9; #angle(degrees)\n",
+ "M=58.45; #molecular weight\n",
+ "rho=2.164; #density(g/cm^3)\n",
+ "n=2; #for NaCl molecule\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=lamda/(2*math.sin(theta)); #lattice spacing(angstrom) \n",
+ "dm=d*10**-8; ##lattice spacing(cm) \n",
+ "Na=M/(2*rho*dm**3); #Avogadro number(per gm mole) \n",
+ "\n",
+ "#Result\n",
+ "print \"lattice spacing is\",round(d,2),\"angstrom\"\n",
+ "print \"Avogadro number is\",round(Na/1e+23,2),\"*10^23 per gm mole\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " lattice spacing is 2.81 angstrom\n",
+ "Avogadro number is 6.08 *10^23 per gm mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.17, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=60; #angle(degree)\n",
+ "lamda=0.254; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "dlamda=0.024*(1-math.cos(theta)); #amount of increase in wavelength(angstrom)\n",
+ "lamda1=lamda-dlamda; #primary X-ray wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"primary X-ray wavelength is\",lamda1,\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "primary X-ray wavelength is 0.242 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.18, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=32; #angle(degree)\n",
+ "lamda=1.54*10**-10; #wavelength(angstrom)\n",
+ "h=2; \n",
+ "k=2;\n",
+ "l=0; #lattice constants\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=lamda/(2*math.sin(theta)); #interplanar spacing(m)\n",
+ "a=d*math.sqrt(h**2+k**2+l**2); #lattice parameter(m)\n",
+ "r=math.sqrt(2)*a/4; #radius of atom(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter is\",round(a/1e-10,1),\"*10^-10 m\"\n",
+ "print \"radius of atom is\",round(r/1e-10,2),\"*10^-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lattice parameter is 4.1 *10^-10 m\n",
+ "radius of atom is 1.45 *10^-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter9.ipynb b/Modern_Physics/chapter9.ipynb
new file mode 100755
index 00000000..ca8c771f
--- /dev/null
+++ b/Modern_Physics/chapter9.ipynb
@@ -0,0 +1,397 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bab0907a92dd1a315ea33ad663e957734494f7112ddbb87e9005b028bf98d841"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Waves and Particles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=20000; #applied voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=12.25/(math.sqrt(V)); #de broglie wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"de broglie wavelength is\",round(lamda,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de broglie wavelength is 0.087 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=5000; #applied voltage(V)\n",
+ "e=1.602*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "d=2.04*10**-10; #distance(m)\n",
+ "n=1;\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*e*V); #momentum(kg m/s)\n",
+ "lamda=12.25/math.sqrt(V); #de broglie wavelength(angstrom)\n",
+ "v=1/(lamda*10**-10); #wave number\n",
+ "theta=math.asin((n*lamda*10**-10)/(2*d)); #Bragg angle(radian)\n",
+ "theta=theta*180/math.pi; #Bragg angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum is\",round(p/1e-23,2),\"*10^-23 kg m/s\"\n",
+ "print \"de broglie wavelength is\",round(lamda,3),\"angstrom\"\n",
+ "print \"the wave number is\",round(v/10**10,2),\"*10^10\"\n",
+ "print \"the Bragg angle is\",round(theta,2),\"degrees\"\n",
+ "print \"answers given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum is 3.82 *10^-23 kg m/s\n",
+ "de broglie wavelength is 0.173 angstrom\n",
+ "the wave number is 5.77 *10^10\n",
+ "the Bragg angle is 2.43 degrees\n",
+ "answers given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=54; #applied voltage(V)\n",
+ "e=1.602*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.sqrt(2*e*V/m); #velocity of electron(m/s)\n",
+ "lamda=12.25/math.sqrt(V); #de broglie wavelength(angstrom)\n",
+ "u=h/(2*m*lamda*10**-10); #phase velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity of electron is\",round(v/1e+6,2),\"*10^6 m/s\"\n",
+ "print \"de broglie wavelength is\",round(lamda,2),\"angstrom\"\n",
+ "print \"phase velocity is\",round(u/1e+6,2),\"*10^6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity of electron is 4.36 *10^6 m/s\n",
+ "de broglie wavelength is 1.67 angstrom\n",
+ "phase velocity is 2.18 *10^6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=m*c**2; #rest energy(J)\n",
+ "mp=1836*m; #mass of proton(kg)\n",
+ "#(0.5*m*v^2)=E\n",
+ "mv=math.sqrt(E*2*mp); #momentum(kg m/s)\n",
+ "lamda=h/mv; #de broglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"de broglie wavelength is\",round(lamda*10**10,4),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de broglie wavelength is 0.0004 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=1.676*10**-27; #mass of neutron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=1; #in eV\n",
+ "E=1*e; #in V\n",
+ "mv=math.sqrt(2*E*m); #momentum(kg m/s)\n",
+ "lamda=h/mv; #de broglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"de broglie wavelength is\",round(lamda*10**10,3),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de broglie wavelength is 0.286 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=0.09; #wavelength(Angstrom)\n",
+ "D=54; #scattering angle(degree)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "dlamda=0.0243*(1-math.cos(D)); \n",
+ "lamda1=lamda+dlamda; #Wavelength of scattered X-rays(Angstrom)\n",
+ "Ei=h*c/(lamda*10**-10); #Energy of incident photon(J)\n",
+ "Es=h*c/(lamda1*10**-10); #Energy of scattered photon(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of scattered X-rays is\",round(lamda1,1),\"Angstrom\"\n",
+ "print \"Energy of incident photon is\",round(Ei/(e*10**6),3),\"MeV\"\n",
+ "print \"Energy of scattered photon is\",round(Es/(e*10**6),4),\"MeV\"\n",
+ "print \"answer for energy of scattered photon given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of scattered X-rays is 0.1 Angstrom\n",
+ "Energy of incident photon is 0.138 MeV\n",
+ "Energy of scattered photon is 0.0924 MeV\n",
+ "answer for energy of scattered photon given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "#for 1st quantum state\n",
+ "nx=1;\n",
+ "ny=1;\n",
+ "nz=1;\n",
+ "L=1;\n",
+ "E1=h**2*(nx**2+ny**2+nz**2)/(8*m*L**2); #energy in first quantum state(J)\n",
+ "#for 2nd quantum state (nx^2+ny^2+nz^2)=6\n",
+ "L=1;\n",
+ "E=h**2*6/(8*m*L**2); #energy in second quantum state(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy in first quantum state is\",round(E1/1e-37,3),\"*10^-37 J\"\n",
+ "print \"energy in second quantum state is\",round(E/1e-37,2),\"*10^-37 J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy in first quantum state is 1.805 *10^-37 J\n",
+ "energy in second quantum state is 3.61 *10^-37 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "L=2.5*10**-10; #width of square(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "n1=1;\n",
+ "n2=2;\n",
+ "n3=3;\n",
+ "\n",
+ "#Calculation\n",
+ "E1=n1**2*h**2/(8*m*L**2*e); #1st lowest quantum energy(eV)\n",
+ "E2=n2**2*E1; #2nd lowest quantum energy(eV)\n",
+ "E3=n3**2*E1; #3rd lowest quantum energy(eV) \n",
+ " \n",
+ "#Result\n",
+ "print \"the lowest 3 quantum energies are\",int(E1),\"eV,\",int(E2),\"eV and\",int(E3),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the lowest 3 quantum energies are 6 eV, 24 eV and 54 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/chapter9_1.ipynb b/Modern_Physics/chapter9_1.ipynb
new file mode 100755
index 00000000..ca8c771f
--- /dev/null
+++ b/Modern_Physics/chapter9_1.ipynb
@@ -0,0 +1,397 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bab0907a92dd1a315ea33ad663e957734494f7112ddbb87e9005b028bf98d841"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Waves and Particles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=20000; #applied voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=12.25/(math.sqrt(V)); #de broglie wavelength(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"de broglie wavelength is\",round(lamda,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de broglie wavelength is 0.087 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=5000; #applied voltage(V)\n",
+ "e=1.602*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "d=2.04*10**-10; #distance(m)\n",
+ "n=1;\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*e*V); #momentum(kg m/s)\n",
+ "lamda=12.25/math.sqrt(V); #de broglie wavelength(angstrom)\n",
+ "v=1/(lamda*10**-10); #wave number\n",
+ "theta=math.asin((n*lamda*10**-10)/(2*d)); #Bragg angle(radian)\n",
+ "theta=theta*180/math.pi; #Bragg angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum is\",round(p/1e-23,2),\"*10^-23 kg m/s\"\n",
+ "print \"de broglie wavelength is\",round(lamda,3),\"angstrom\"\n",
+ "print \"the wave number is\",round(v/10**10,2),\"*10^10\"\n",
+ "print \"the Bragg angle is\",round(theta,2),\"degrees\"\n",
+ "print \"answers given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum is 3.82 *10^-23 kg m/s\n",
+ "de broglie wavelength is 0.173 angstrom\n",
+ "the wave number is 5.77 *10^10\n",
+ "the Bragg angle is 2.43 degrees\n",
+ "answers given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=54; #applied voltage(V)\n",
+ "e=1.602*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.sqrt(2*e*V/m); #velocity of electron(m/s)\n",
+ "lamda=12.25/math.sqrt(V); #de broglie wavelength(angstrom)\n",
+ "u=h/(2*m*lamda*10**-10); #phase velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"velocity of electron is\",round(v/1e+6,2),\"*10^6 m/s\"\n",
+ "print \"de broglie wavelength is\",round(lamda,2),\"angstrom\"\n",
+ "print \"phase velocity is\",round(u/1e+6,2),\"*10^6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity of electron is 4.36 *10^6 m/s\n",
+ "de broglie wavelength is 1.67 angstrom\n",
+ "phase velocity is 2.18 *10^6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=m*c**2; #rest energy(J)\n",
+ "mp=1836*m; #mass of proton(kg)\n",
+ "#(0.5*m*v^2)=E\n",
+ "mv=math.sqrt(E*2*mp); #momentum(kg m/s)\n",
+ "lamda=h/mv; #de broglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"de broglie wavelength is\",round(lamda*10**10,4),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de broglie wavelength is 0.0004 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "m=1.676*10**-27; #mass of neutron(kg)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "\n",
+ "#Calculation\n",
+ "E=1; #in eV\n",
+ "E=1*e; #in V\n",
+ "mv=math.sqrt(2*E*m); #momentum(kg m/s)\n",
+ "lamda=h/mv; #de broglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"de broglie wavelength is\",round(lamda*10**10,3),\"Angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "de broglie wavelength is 0.286 Angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=0.09; #wavelength(Angstrom)\n",
+ "D=54; #scattering angle(degree)\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "dlamda=0.0243*(1-math.cos(D)); \n",
+ "lamda1=lamda+dlamda; #Wavelength of scattered X-rays(Angstrom)\n",
+ "Ei=h*c/(lamda*10**-10); #Energy of incident photon(J)\n",
+ "Es=h*c/(lamda1*10**-10); #Energy of scattered photon(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of scattered X-rays is\",round(lamda1,1),\"Angstrom\"\n",
+ "print \"Energy of incident photon is\",round(Ei/(e*10**6),3),\"MeV\"\n",
+ "print \"Energy of scattered photon is\",round(Es/(e*10**6),4),\"MeV\"\n",
+ "print \"answer for energy of scattered photon given in the book varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of scattered X-rays is 0.1 Angstrom\n",
+ "Energy of incident photon is 0.138 MeV\n",
+ "Energy of scattered photon is 0.0924 MeV\n",
+ "answer for energy of scattered photon given in the book varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "#for 1st quantum state\n",
+ "nx=1;\n",
+ "ny=1;\n",
+ "nz=1;\n",
+ "L=1;\n",
+ "E1=h**2*(nx**2+ny**2+nz**2)/(8*m*L**2); #energy in first quantum state(J)\n",
+ "#for 2nd quantum state (nx^2+ny^2+nz^2)=6\n",
+ "L=1;\n",
+ "E=h**2*6/(8*m*L**2); #energy in second quantum state(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy in first quantum state is\",round(E1/1e-37,3),\"*10^-37 J\"\n",
+ "print \"energy in second quantum state is\",round(E/1e-37,2),\"*10^-37 J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy in first quantum state is 1.805 *10^-37 J\n",
+ "energy in second quantum state is 3.61 *10^-37 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.625*10**-34; #Plank's constant\n",
+ "m=9.12*10**-31; #mass of electron(kg)\n",
+ "L=2.5*10**-10; #width of square(m)\n",
+ "e=1.6*10**-19; #the charge on electron(C)\n",
+ "n1=1;\n",
+ "n2=2;\n",
+ "n3=3;\n",
+ "\n",
+ "#Calculation\n",
+ "E1=n1**2*h**2/(8*m*L**2*e); #1st lowest quantum energy(eV)\n",
+ "E2=n2**2*E1; #2nd lowest quantum energy(eV)\n",
+ "E3=n3**2*E1; #3rd lowest quantum energy(eV) \n",
+ " \n",
+ "#Result\n",
+ "print \"the lowest 3 quantum energies are\",int(E1),\"eV,\",int(E2),\"eV and\",int(E3),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the lowest 3 quantum energies are 6 eV, 24 eV and 54 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics/screenshots/1.png b/Modern_Physics/screenshots/1.png
new file mode 100755
index 00000000..4282275d
--- /dev/null
+++ b/Modern_Physics/screenshots/1.png
Binary files differ
diff --git a/Modern_Physics/screenshots/2.png b/Modern_Physics/screenshots/2.png
new file mode 100755
index 00000000..9e1e8cf6
--- /dev/null
+++ b/Modern_Physics/screenshots/2.png
Binary files differ
diff --git a/Modern_Physics/screenshots/3.png b/Modern_Physics/screenshots/3.png
new file mode 100755
index 00000000..662e6b45
--- /dev/null
+++ b/Modern_Physics/screenshots/3.png
Binary files differ
diff --git a/Modern_Physics/screenshots/Untitled.png b/Modern_Physics/screenshots/Untitled.png
new file mode 100755
index 00000000..f61351dc
--- /dev/null
+++ b/Modern_Physics/screenshots/Untitled.png
Binary files differ
diff --git a/Modern_Physics/screenshots/Untitled_1.png b/Modern_Physics/screenshots/Untitled_1.png
new file mode 100755
index 00000000..f61351dc
--- /dev/null
+++ b/Modern_Physics/screenshots/Untitled_1.png
Binary files differ
diff --git a/Modern_Physics/screenshots/Untitled_2.png b/Modern_Physics/screenshots/Untitled_2.png
new file mode 100755
index 00000000..f61351dc
--- /dev/null
+++ b/Modern_Physics/screenshots/Untitled_2.png
Binary files differ
diff --git a/Modern_Physics/screenshots/finding_average_deflection.png b/Modern_Physics/screenshots/finding_average_deflection.png
new file mode 100755
index 00000000..16fc385b
--- /dev/null
+++ b/Modern_Physics/screenshots/finding_average_deflection.png
Binary files differ
diff --git a/Modern_Physics/screenshots/finding_average_deflection_1.png b/Modern_Physics/screenshots/finding_average_deflection_1.png
new file mode 100755
index 00000000..16fc385b
--- /dev/null
+++ b/Modern_Physics/screenshots/finding_average_deflection_1.png
Binary files differ
diff --git a/Modern_Physics/screenshots/finding_energy_of_sodium.png b/Modern_Physics/screenshots/finding_energy_of_sodium.png
new file mode 100755
index 00000000..ce229f35
--- /dev/null
+++ b/Modern_Physics/screenshots/finding_energy_of_sodium.png
Binary files differ
diff --git a/Modern_Physics/screenshots/finding_time_interval.png b/Modern_Physics/screenshots/finding_time_interval.png
new file mode 100755
index 00000000..b5bb1995
--- /dev/null
+++ b/Modern_Physics/screenshots/finding_time_interval.png
Binary files differ
diff --git a/Modern_Physics/screenshots/findning_uncertainity.png b/Modern_Physics/screenshots/findning_uncertainity.png
new file mode 100755
index 00000000..9566d5b9
--- /dev/null
+++ b/Modern_Physics/screenshots/findning_uncertainity.png
Binary files differ
diff --git a/Modern_Physics/screenshots/findning_uncertainity_1.png b/Modern_Physics/screenshots/findning_uncertainity_1.png
new file mode 100755
index 00000000..9566d5b9
--- /dev/null
+++ b/Modern_Physics/screenshots/findning_uncertainity_1.png
Binary files differ
diff --git a/Modern_Physics/screenshots/findning_uncertainity_2.png b/Modern_Physics/screenshots/findning_uncertainity_2.png
new file mode 100755
index 00000000..9566d5b9
--- /dev/null
+++ b/Modern_Physics/screenshots/findning_uncertainity_2.png
Binary files differ
diff --git a/Modern_Physics/screenshots/mass_of_electron_and_proton.png b/Modern_Physics/screenshots/mass_of_electron_and_proton.png
new file mode 100755
index 00000000..476ca90a
--- /dev/null
+++ b/Modern_Physics/screenshots/mass_of_electron_and_proton.png
Binary files differ
diff --git a/Modern_Physics/screenshots/uncertainity.png b/Modern_Physics/screenshots/uncertainity.png
new file mode 100755
index 00000000..d10725b3
--- /dev/null
+++ b/Modern_Physics/screenshots/uncertainity.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/Chapter1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter1.ipynb
new file mode 100755
index 00000000..483d55f3
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter1.ipynb
@@ -0,0 +1,311 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:467ef5c6562d2c93b60e422b9b9a8c5a34323da84f6c33e87f513c3c578db36d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: The special theory of relativity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "udash=0.9*c; #speed of 2nd rocket\n",
+ "v=0.6*c; #speed of 1st rocket\n",
+ "\n",
+ "#Calculation\n",
+ "u1=(udash+v)/(1+(udash*v/(c**2))); #speed of 2nd rocket in same direction\n",
+ "u2=(-udash+v)/(1-(udash*v/(c**2))); #speed of 2nd rocket in opposite direction\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of 2nd rocket in same direction is\",round(u1,3),\"*c\"\n",
+ "print \"speed of 2nd rocket in opposite direction is\",round(u2,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of 2nd rocket in same direction is 0.974 *c\n",
+ "speed of 2nd rocket in opposite direction is -0.652 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given L0-L/L0=0.01.so L=0.99*L0\n",
+ "LbyL0=0.99;\n",
+ "c=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "v2=(c**2)*(1-(LbyL0)**2);\n",
+ "v=math.sqrt(v2); #speed\n",
+ "\n",
+ "#Result\n",
+ "print \"speed is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed is 0.141 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_tow=2.6*10**-8; #mean lifetime at rest(s)\n",
+ "d=20; #distance(m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "#delta_t=d/v\n",
+ "v2=(c**2)/(1+(delta_tow*c/d)**2);\n",
+ "v=math.sqrt(v2); #speed of unstable particle(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of unstable particle is\",round(v/10**8,1),\"*10**8 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of unstable particle is 2.8 *10**8 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_t=5*10**-6; #mean lifetime(s)\n",
+ "c=1; #assume\n",
+ "v=0.9*c; #speed of beam\n",
+ "\n",
+ "#Calculation\n",
+ "delta_tow=delta_t*math.sqrt(1-(v/c)**2); #proper lifetime of particles(s)\n",
+ "\n",
+ "#Result\n",
+ "print \"proper lifetime of particles is\",round(delta_tow*10**6,2),\"*10**-6 s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "proper lifetime of particles is 2.18 *10**-6 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "m0bym=100/120; #ratio of masses\n",
+ "\n",
+ "#Calculation\n",
+ "v=c*math.sqrt(1-(m0bym**2)); #speed of body\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of body is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of body is 0.553 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "deltaE=4*10**26; #energy of sun(J/s)\n",
+ "\n",
+ "#Calculation\n",
+ "deltam=deltaE/c**2; #change in mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"change in mass is\",round(deltam/10**9,2),\"*10**9 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in mass is 4.44 *10**9 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "T=10; #kinetic energy(MeV)\n",
+ "m0c2=0.512; #rest energy of electron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=T+m0c2; #total energy(MeV)\n",
+ "p=math.sqrt((E**2)-(m0c2**2))/c; #momentum of electron(MeV/c)\n",
+ "v=c*math.sqrt(1-(m0c2/E)**2); #velocity of electron(c)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum of electron is\",round(p,1),\"MeV/c\"\n",
+ "print \"velocity of electron is\",round(v,4),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum of electron is 10.5 MeV/c\n",
+ "velocity of electron is 0.9988 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter10.ipynb b/Modern_Physics_By_G.Aruldas/Chapter10.ipynb
new file mode 100755
index 00000000..d4104917
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter10.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de4c224e2d9bad9e810e24de23e4ee016e17fa0ec4d45805b35802744f1cd3b7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "10: Crystal structure and bonding"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.5, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h1=1;\n",
+ "k1=0;\n",
+ "l1=0; #for (100) plane\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=1; #for (111) plane\n",
+ "a=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "d100=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (100) plane\n",
+ "d111=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (111) plane\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (100) plane is\",d100,\"a\"\n",
+ "print \"spacing between (111) plane is\",round(d111,3),\"a\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (100) plane is 1.0 a\n",
+ "spacing between (111) plane is 0.577 a\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.6, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.152; #atomic radius(nm)\n",
+ "h1=2;\n",
+ "k1=3;\n",
+ "l1=1; #for plane (231)\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=0; #for plane (110)\n",
+ "\n",
+ "#Calculation\n",
+ "a=4*r/math.sqrt(2);\n",
+ "d231=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (231) plane(nm) \n",
+ "d110=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (110) plane(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (231) plane is\",round(d231,4),\"nm\"\n",
+ "print \"spacing between (110) plane is\",d110,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (231) plane is 0.1149 nm\n",
+ "spacing between (110) plane is 0.304 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.7, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=1;\n",
+ "k=0;\n",
+ "l=2; #for plane (102)\n",
+ "a=0.424; #edge(nm)\n",
+ "\n",
+ "#Calculation\n",
+ "d102=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing is\",round(d102,4),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "interplanar spacing is 0.1896 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.8, Page number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=3.2*10**-10; #edge(m)\n",
+ "rho=11.36*10**3; #density(kg/m**3)\n",
+ "N=6.023*10**26; #avagadro number(per k mol)\n",
+ "M=207.2; #atomic weight\n",
+ "\n",
+ "#Calculation\n",
+ "n=a**3*rho*N/M; #number of atoms per unit cell\n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms per unit cell is\",int(n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of atoms per unit cell is 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.9, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.51*10**-10; #spacing between planes(m)\n",
+ "theta=9; #glancing angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #glancing angle(radian)\n",
+ "lamda=2*d*math.sin(theta); #wavelength(m)\n",
+ "a=lamda/2.51;\n",
+ "theta2=math.asin(a); #glancing angle for 2nd order diffraction(radian)\n",
+ "theta2=2*theta*180/math.pi; #glancing angle for 2nd order diffraction(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X ray is\",round(lamda*10**10,4),\"angstrom\"\n",
+ "print \"glancing angle for 2nd order diffraction is\",theta2,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X ray is 0.7853 angstrom\n",
+ "glancing angle for 2nd order diffraction is 18.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.10, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=5*10**-10; #lattice parameter(m)\n",
+ "n=1;\n",
+ "lamda=1.4*10**-10; #wavelength(m)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "d111=a/math.sqrt(h**2+k**2+l**2);\n",
+ "b=n*lamda/(2*d111);\n",
+ "theta111=math.asin(b); #incident angle(radian)\n",
+ "theta111=theta111*180/math.pi; #incident angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"incident angle is\",int(theta111),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "incident angle is 14 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.11, Page number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "H=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "V=120; #potential(V)\n",
+ "theta=22; #angle(degrees)\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "x=(2*m*e*V)**(1/2); \n",
+ "lamda=H/x; #wavelength(m)\n",
+ "d111=lamda*10**10/(2*math.sin(theta));\n",
+ "a=math.sqrt(h**2+k**2+l**2)*d111; #lattice parameter(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter is\",round(a,2),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lattice parameter is 2.59 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.12, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.32*10**-9; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "V=-e/(4*math.pi*epsilon0*r0); #potential energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is\",round(V,3),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is -4.496 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.13, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.31*10**-9; #distance(m)\n",
+ "n=9;\n",
+ "alpha=1.748; \n",
+ "Ie=5; #ionisation energy(eV)\n",
+ "ea=-3.61; #electron affinity(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(1/n);\n",
+ "Vr0=-alpha*e**2*a/(4*math.pi*epsilon0*r0); #energy(J)\n",
+ "Vr0=Vr0/e; #cohesive energy(eV)\n",
+ "Vr0i=Vr0/2; #contribution per ion to cohesive energy(eV)\n",
+ "Ee=Ie+ea; #electron transfer energy(eV)\n",
+ "Vr0i2=Ee/2; #contribution per ion to cohesive energy(eV)\n",
+ "CE=Vr0i+Vr0i2; #cohesive energy per atom(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cohesive energy per atom is\",round(CE,4),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cohesive energy per atom is -2.9105 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter10_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter10_1.ipynb
new file mode 100755
index 00000000..d4104917
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter10_1.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de4c224e2d9bad9e810e24de23e4ee016e17fa0ec4d45805b35802744f1cd3b7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "10: Crystal structure and bonding"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.5, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h1=1;\n",
+ "k1=0;\n",
+ "l1=0; #for (100) plane\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=1; #for (111) plane\n",
+ "a=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "d100=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (100) plane\n",
+ "d111=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (111) plane\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (100) plane is\",d100,\"a\"\n",
+ "print \"spacing between (111) plane is\",round(d111,3),\"a\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (100) plane is 1.0 a\n",
+ "spacing between (111) plane is 0.577 a\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.6, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.152; #atomic radius(nm)\n",
+ "h1=2;\n",
+ "k1=3;\n",
+ "l1=1; #for plane (231)\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=0; #for plane (110)\n",
+ "\n",
+ "#Calculation\n",
+ "a=4*r/math.sqrt(2);\n",
+ "d231=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (231) plane(nm) \n",
+ "d110=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (110) plane(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (231) plane is\",round(d231,4),\"nm\"\n",
+ "print \"spacing between (110) plane is\",d110,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (231) plane is 0.1149 nm\n",
+ "spacing between (110) plane is 0.304 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.7, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=1;\n",
+ "k=0;\n",
+ "l=2; #for plane (102)\n",
+ "a=0.424; #edge(nm)\n",
+ "\n",
+ "#Calculation\n",
+ "d102=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing is\",round(d102,4),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "interplanar spacing is 0.1896 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.8, Page number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=3.2*10**-10; #edge(m)\n",
+ "rho=11.36*10**3; #density(kg/m**3)\n",
+ "N=6.023*10**26; #avagadro number(per k mol)\n",
+ "M=207.2; #atomic weight\n",
+ "\n",
+ "#Calculation\n",
+ "n=a**3*rho*N/M; #number of atoms per unit cell\n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms per unit cell is\",int(n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of atoms per unit cell is 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.9, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.51*10**-10; #spacing between planes(m)\n",
+ "theta=9; #glancing angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #glancing angle(radian)\n",
+ "lamda=2*d*math.sin(theta); #wavelength(m)\n",
+ "a=lamda/2.51;\n",
+ "theta2=math.asin(a); #glancing angle for 2nd order diffraction(radian)\n",
+ "theta2=2*theta*180/math.pi; #glancing angle for 2nd order diffraction(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X ray is\",round(lamda*10**10,4),\"angstrom\"\n",
+ "print \"glancing angle for 2nd order diffraction is\",theta2,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X ray is 0.7853 angstrom\n",
+ "glancing angle for 2nd order diffraction is 18.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.10, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=5*10**-10; #lattice parameter(m)\n",
+ "n=1;\n",
+ "lamda=1.4*10**-10; #wavelength(m)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "d111=a/math.sqrt(h**2+k**2+l**2);\n",
+ "b=n*lamda/(2*d111);\n",
+ "theta111=math.asin(b); #incident angle(radian)\n",
+ "theta111=theta111*180/math.pi; #incident angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"incident angle is\",int(theta111),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "incident angle is 14 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.11, Page number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "H=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "V=120; #potential(V)\n",
+ "theta=22; #angle(degrees)\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "x=(2*m*e*V)**(1/2); \n",
+ "lamda=H/x; #wavelength(m)\n",
+ "d111=lamda*10**10/(2*math.sin(theta));\n",
+ "a=math.sqrt(h**2+k**2+l**2)*d111; #lattice parameter(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter is\",round(a,2),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lattice parameter is 2.59 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.12, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.32*10**-9; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "V=-e/(4*math.pi*epsilon0*r0); #potential energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is\",round(V,3),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is -4.496 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.13, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.31*10**-9; #distance(m)\n",
+ "n=9;\n",
+ "alpha=1.748; \n",
+ "Ie=5; #ionisation energy(eV)\n",
+ "ea=-3.61; #electron affinity(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(1/n);\n",
+ "Vr0=-alpha*e**2*a/(4*math.pi*epsilon0*r0); #energy(J)\n",
+ "Vr0=Vr0/e; #cohesive energy(eV)\n",
+ "Vr0i=Vr0/2; #contribution per ion to cohesive energy(eV)\n",
+ "Ee=Ie+ea; #electron transfer energy(eV)\n",
+ "Vr0i2=Ee/2; #contribution per ion to cohesive energy(eV)\n",
+ "CE=Vr0i+Vr0i2; #cohesive energy per atom(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cohesive energy per atom is\",round(CE,4),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cohesive energy per atom is -2.9105 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter10_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter10_2.ipynb
new file mode 100755
index 00000000..d4104917
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter10_2.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de4c224e2d9bad9e810e24de23e4ee016e17fa0ec4d45805b35802744f1cd3b7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "10: Crystal structure and bonding"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.5, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h1=1;\n",
+ "k1=0;\n",
+ "l1=0; #for (100) plane\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=1; #for (111) plane\n",
+ "a=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "d100=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (100) plane\n",
+ "d111=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (111) plane\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (100) plane is\",d100,\"a\"\n",
+ "print \"spacing between (111) plane is\",round(d111,3),\"a\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (100) plane is 1.0 a\n",
+ "spacing between (111) plane is 0.577 a\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.6, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.152; #atomic radius(nm)\n",
+ "h1=2;\n",
+ "k1=3;\n",
+ "l1=1; #for plane (231)\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=0; #for plane (110)\n",
+ "\n",
+ "#Calculation\n",
+ "a=4*r/math.sqrt(2);\n",
+ "d231=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (231) plane(nm) \n",
+ "d110=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (110) plane(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (231) plane is\",round(d231,4),\"nm\"\n",
+ "print \"spacing between (110) plane is\",d110,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (231) plane is 0.1149 nm\n",
+ "spacing between (110) plane is 0.304 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.7, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=1;\n",
+ "k=0;\n",
+ "l=2; #for plane (102)\n",
+ "a=0.424; #edge(nm)\n",
+ "\n",
+ "#Calculation\n",
+ "d102=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing is\",round(d102,4),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "interplanar spacing is 0.1896 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.8, Page number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=3.2*10**-10; #edge(m)\n",
+ "rho=11.36*10**3; #density(kg/m**3)\n",
+ "N=6.023*10**26; #avagadro number(per k mol)\n",
+ "M=207.2; #atomic weight\n",
+ "\n",
+ "#Calculation\n",
+ "n=a**3*rho*N/M; #number of atoms per unit cell\n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms per unit cell is\",int(n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of atoms per unit cell is 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.9, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.51*10**-10; #spacing between planes(m)\n",
+ "theta=9; #glancing angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #glancing angle(radian)\n",
+ "lamda=2*d*math.sin(theta); #wavelength(m)\n",
+ "a=lamda/2.51;\n",
+ "theta2=math.asin(a); #glancing angle for 2nd order diffraction(radian)\n",
+ "theta2=2*theta*180/math.pi; #glancing angle for 2nd order diffraction(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X ray is\",round(lamda*10**10,4),\"angstrom\"\n",
+ "print \"glancing angle for 2nd order diffraction is\",theta2,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X ray is 0.7853 angstrom\n",
+ "glancing angle for 2nd order diffraction is 18.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.10, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=5*10**-10; #lattice parameter(m)\n",
+ "n=1;\n",
+ "lamda=1.4*10**-10; #wavelength(m)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "d111=a/math.sqrt(h**2+k**2+l**2);\n",
+ "b=n*lamda/(2*d111);\n",
+ "theta111=math.asin(b); #incident angle(radian)\n",
+ "theta111=theta111*180/math.pi; #incident angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"incident angle is\",int(theta111),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "incident angle is 14 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.11, Page number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "H=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "V=120; #potential(V)\n",
+ "theta=22; #angle(degrees)\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "x=(2*m*e*V)**(1/2); \n",
+ "lamda=H/x; #wavelength(m)\n",
+ "d111=lamda*10**10/(2*math.sin(theta));\n",
+ "a=math.sqrt(h**2+k**2+l**2)*d111; #lattice parameter(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter is\",round(a,2),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lattice parameter is 2.59 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.12, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.32*10**-9; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "V=-e/(4*math.pi*epsilon0*r0); #potential energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is\",round(V,3),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is -4.496 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.13, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.31*10**-9; #distance(m)\n",
+ "n=9;\n",
+ "alpha=1.748; \n",
+ "Ie=5; #ionisation energy(eV)\n",
+ "ea=-3.61; #electron affinity(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(1/n);\n",
+ "Vr0=-alpha*e**2*a/(4*math.pi*epsilon0*r0); #energy(J)\n",
+ "Vr0=Vr0/e; #cohesive energy(eV)\n",
+ "Vr0i=Vr0/2; #contribution per ion to cohesive energy(eV)\n",
+ "Ee=Ie+ea; #electron transfer energy(eV)\n",
+ "Vr0i2=Ee/2; #contribution per ion to cohesive energy(eV)\n",
+ "CE=Vr0i+Vr0i2; #cohesive energy per atom(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cohesive energy per atom is\",round(CE,4),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cohesive energy per atom is -2.9105 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter10_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter10_3.ipynb
new file mode 100755
index 00000000..d4104917
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter10_3.ipynb
@@ -0,0 +1,434 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de4c224e2d9bad9e810e24de23e4ee016e17fa0ec4d45805b35802744f1cd3b7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "10: Crystal structure and bonding"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.5, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h1=1;\n",
+ "k1=0;\n",
+ "l1=0; #for (100) plane\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=1; #for (111) plane\n",
+ "a=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "d100=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (100) plane\n",
+ "d111=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (111) plane\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (100) plane is\",d100,\"a\"\n",
+ "print \"spacing between (111) plane is\",round(d111,3),\"a\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (100) plane is 1.0 a\n",
+ "spacing between (111) plane is 0.577 a\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.6, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.152; #atomic radius(nm)\n",
+ "h1=2;\n",
+ "k1=3;\n",
+ "l1=1; #for plane (231)\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=0; #for plane (110)\n",
+ "\n",
+ "#Calculation\n",
+ "a=4*r/math.sqrt(2);\n",
+ "d231=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (231) plane(nm) \n",
+ "d110=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (110) plane(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (231) plane is\",round(d231,4),\"nm\"\n",
+ "print \"spacing between (110) plane is\",d110,\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "spacing between (231) plane is 0.1149 nm\n",
+ "spacing between (110) plane is 0.304 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.7, Page number 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=1;\n",
+ "k=0;\n",
+ "l=2; #for plane (102)\n",
+ "a=0.424; #edge(nm)\n",
+ "\n",
+ "#Calculation\n",
+ "d102=a/math.sqrt(h**2+k**2+l**2); #interplanar spacing(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing is\",round(d102,4),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "interplanar spacing is 0.1896 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.8, Page number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=3.2*10**-10; #edge(m)\n",
+ "rho=11.36*10**3; #density(kg/m**3)\n",
+ "N=6.023*10**26; #avagadro number(per k mol)\n",
+ "M=207.2; #atomic weight\n",
+ "\n",
+ "#Calculation\n",
+ "n=a**3*rho*N/M; #number of atoms per unit cell\n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms per unit cell is\",int(n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of atoms per unit cell is 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.9, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=2.51*10**-10; #spacing between planes(m)\n",
+ "theta=9; #glancing angle(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #glancing angle(radian)\n",
+ "lamda=2*d*math.sin(theta); #wavelength(m)\n",
+ "a=lamda/2.51;\n",
+ "theta2=math.asin(a); #glancing angle for 2nd order diffraction(radian)\n",
+ "theta2=2*theta*180/math.pi; #glancing angle for 2nd order diffraction(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of X ray is\",round(lamda*10**10,4),\"angstrom\"\n",
+ "print \"glancing angle for 2nd order diffraction is\",theta2,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of X ray is 0.7853 angstrom\n",
+ "glancing angle for 2nd order diffraction is 18.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.10, Page number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=5*10**-10; #lattice parameter(m)\n",
+ "n=1;\n",
+ "lamda=1.4*10**-10; #wavelength(m)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "d111=a/math.sqrt(h**2+k**2+l**2);\n",
+ "b=n*lamda/(2*d111);\n",
+ "theta111=math.asin(b); #incident angle(radian)\n",
+ "theta111=theta111*180/math.pi; #incident angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"incident angle is\",int(theta111),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "incident angle is 14 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.11, Page number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "H=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "V=120; #potential(V)\n",
+ "theta=22; #angle(degrees)\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1; #for plane (111)\n",
+ "\n",
+ "#Calculation\n",
+ "x=(2*m*e*V)**(1/2); \n",
+ "lamda=H/x; #wavelength(m)\n",
+ "d111=lamda*10**10/(2*math.sin(theta));\n",
+ "a=math.sqrt(h**2+k**2+l**2)*d111; #lattice parameter(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter is\",round(a,2),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lattice parameter is 2.59 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.12, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.32*10**-9; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "V=-e/(4*math.pi*epsilon0*r0); #potential energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is\",round(V,3),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is -4.496 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.13, Page number 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "epsilon0=8.85*10**-12;\n",
+ "r0=0.31*10**-9; #distance(m)\n",
+ "n=9;\n",
+ "alpha=1.748; \n",
+ "Ie=5; #ionisation energy(eV)\n",
+ "ea=-3.61; #electron affinity(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(1/n);\n",
+ "Vr0=-alpha*e**2*a/(4*math.pi*epsilon0*r0); #energy(J)\n",
+ "Vr0=Vr0/e; #cohesive energy(eV)\n",
+ "Vr0i=Vr0/2; #contribution per ion to cohesive energy(eV)\n",
+ "Ee=Ie+ea; #electron transfer energy(eV)\n",
+ "Vr0i2=Ee/2; #contribution per ion to cohesive energy(eV)\n",
+ "CE=Vr0i+Vr0i2; #cohesive energy per atom(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cohesive energy per atom is\",round(CE,4),\"eV\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cohesive energy per atom is -2.9105 eV\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter11.ipynb b/Modern_Physics_By_G.Aruldas/Chapter11.ipynb
new file mode 100755
index 00000000..ffdec850
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter11.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:df9996e09d849b24524dd415b626cbe4279b4acdbe25d68bb407e2d42467c7a7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Lattice dynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "thetaD=350; #temperature for Cu(K)\n",
+ "theetaD=550; #temperature for Si(K)\n",
+ "\n",
+ "#Calculation\n",
+ "newDCu=k*thetaD/h; #highest possible frequency for Cu(per sec)\n",
+ "newDSi=k*theetaD/h; #highest possible frequency for Si(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"highest possible frequency for Cu is\",round(newDCu/10**11,3),\"*10**11 per sec\"\n",
+ "print \"highest possible frequency for Si is\",round(newDSi/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "highest possible frequency for Cu is 72.895 *10**11 per sec\n",
+ "highest possible frequency for Si is 114.55 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "N=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=10; #temperature(K)\n",
+ "thetaD=105; #debye temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "C=(12/5)*(math.pi**4)*N*k*(T/thetaD)**3; #specific heat of lead(J/K kmol)\n",
+ "newD=k*thetaD/h; #highest frequency(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"specific heat of lead is\",round(C,1),\"J/K kmol\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"highest frequency is\",round(newD/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "specific heat of lead is 1677.7 J/K kmol\n",
+ "answer varies due to rounding off errors\n",
+ "highest frequency is 21.87 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter11_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter11_1.ipynb
new file mode 100755
index 00000000..ffdec850
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter11_1.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:df9996e09d849b24524dd415b626cbe4279b4acdbe25d68bb407e2d42467c7a7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Lattice dynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "thetaD=350; #temperature for Cu(K)\n",
+ "theetaD=550; #temperature for Si(K)\n",
+ "\n",
+ "#Calculation\n",
+ "newDCu=k*thetaD/h; #highest possible frequency for Cu(per sec)\n",
+ "newDSi=k*theetaD/h; #highest possible frequency for Si(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"highest possible frequency for Cu is\",round(newDCu/10**11,3),\"*10**11 per sec\"\n",
+ "print \"highest possible frequency for Si is\",round(newDSi/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "highest possible frequency for Cu is 72.895 *10**11 per sec\n",
+ "highest possible frequency for Si is 114.55 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "N=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=10; #temperature(K)\n",
+ "thetaD=105; #debye temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "C=(12/5)*(math.pi**4)*N*k*(T/thetaD)**3; #specific heat of lead(J/K kmol)\n",
+ "newD=k*thetaD/h; #highest frequency(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"specific heat of lead is\",round(C,1),\"J/K kmol\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"highest frequency is\",round(newD/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "specific heat of lead is 1677.7 J/K kmol\n",
+ "answer varies due to rounding off errors\n",
+ "highest frequency is 21.87 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter11_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter11_2.ipynb
new file mode 100755
index 00000000..ffdec850
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter11_2.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:df9996e09d849b24524dd415b626cbe4279b4acdbe25d68bb407e2d42467c7a7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Lattice dynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "thetaD=350; #temperature for Cu(K)\n",
+ "theetaD=550; #temperature for Si(K)\n",
+ "\n",
+ "#Calculation\n",
+ "newDCu=k*thetaD/h; #highest possible frequency for Cu(per sec)\n",
+ "newDSi=k*theetaD/h; #highest possible frequency for Si(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"highest possible frequency for Cu is\",round(newDCu/10**11,3),\"*10**11 per sec\"\n",
+ "print \"highest possible frequency for Si is\",round(newDSi/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "highest possible frequency for Cu is 72.895 *10**11 per sec\n",
+ "highest possible frequency for Si is 114.55 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "N=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=10; #temperature(K)\n",
+ "thetaD=105; #debye temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "C=(12/5)*(math.pi**4)*N*k*(T/thetaD)**3; #specific heat of lead(J/K kmol)\n",
+ "newD=k*thetaD/h; #highest frequency(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"specific heat of lead is\",round(C,1),\"J/K kmol\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"highest frequency is\",round(newD/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "specific heat of lead is 1677.7 J/K kmol\n",
+ "answer varies due to rounding off errors\n",
+ "highest frequency is 21.87 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter11_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter11_3.ipynb
new file mode 100755
index 00000000..ffdec850
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter11_3.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:df9996e09d849b24524dd415b626cbe4279b4acdbe25d68bb407e2d42467c7a7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Lattice dynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "thetaD=350; #temperature for Cu(K)\n",
+ "theetaD=550; #temperature for Si(K)\n",
+ "\n",
+ "#Calculation\n",
+ "newDCu=k*thetaD/h; #highest possible frequency for Cu(per sec)\n",
+ "newDSi=k*theetaD/h; #highest possible frequency for Si(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"highest possible frequency for Cu is\",round(newDCu/10**11,3),\"*10**11 per sec\"\n",
+ "print \"highest possible frequency for Si is\",round(newDSi/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "highest possible frequency for Cu is 72.895 *10**11 per sec\n",
+ "highest possible frequency for Si is 114.55 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "N=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=10; #temperature(K)\n",
+ "thetaD=105; #debye temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "C=(12/5)*(math.pi**4)*N*k*(T/thetaD)**3; #specific heat of lead(J/K kmol)\n",
+ "newD=k*thetaD/h; #highest frequency(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"specific heat of lead is\",round(C,1),\"J/K kmol\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"highest frequency is\",round(newD/10**11,2),\"*10**11 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "specific heat of lead is 1677.7 J/K kmol\n",
+ "answer varies due to rounding off errors\n",
+ "highest frequency is 21.87 *10**11 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter12.ipynb b/Modern_Physics_By_G.Aruldas/Chapter12.ipynb
new file mode 100755
index 00000000..b3818649
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter12.ipynb
@@ -0,0 +1,285 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:881432a5cd98267b92bdfa11e021925fdef61ae98abdadccafbf254c6f9ca038"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Band theory of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EF=8; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0bar=3*EF/5; \n",
+ "v=math.sqrt(2*E0bar*e/m); #speed of electron(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of electron is\",round(v/10**6,1),\"*10**6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of electron is 1.3 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.2, Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=8; #current(ampere)\n",
+ "r=9*10**-4; #radius(m)\n",
+ "V=5; #potential difference(V)\n",
+ "L=1; #length(m)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*r**2; #area of wire(m**2)\n",
+ "E=V/L;\n",
+ "J=I/A; #current density(V/m)\n",
+ "rho=E/J; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"current density is\",round(J/10**6,3),\"*10**6 V/m\"\n",
+ "print \"resistivity is\",round(rho*10**6,2),\"*10**-6 ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current density is 3.144 *10**6 V/m\n",
+ "resistivity is 1.59 *10**-6 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.3, Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "a=4*10**-10; #lattice parameter(m)\n",
+ "N=1.56*10**28; \n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=10**-15; #collision time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "rho=1/sigma; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"conductivity is\",round(sigma/10**6,2),\"*10**6 ohm m\"\n",
+ "print \"resistivity is\",rho,\"ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conductivity is 0.44 *10**6 ohm m\n",
+ "resistivity is 2.275e-06 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.4, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=300; #temperature(K)\n",
+ "EF=2; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "C=math.pi**2*k**2*NA*T/(2*EF*e); #electronic specific heat(J/kmol/K)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic specific heat is\",int(C),\"J/kmol/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic specific heat is 530 J/kmol/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.5, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "K=327; #thermal conductivity(W/mK)\n",
+ "T=300; #temperature(K)\n",
+ "rho=7.13*10**3; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "w=65.38; #atomic weight\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=2.5*10**-14; #relaxation time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=2*rho*NA/w; #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "L=K/(sigma*T); #lorentz number(W ohm/K**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"lorentz number is\",round(L*10**8,4),\"*10**-8 W ohm/K**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lorentz number is 1.1804 *10**-8 W ohm/K**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.6, Page number 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=5*10**28; #number of atoms(/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "RH=-1/(n*e); #hall coefficient(m**3/C)\n",
+ "\n",
+ "#Result\n",
+ "print \"hall coefficient is\",round(RH*10**9,3),\"*10**-9 m**3/C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hall coefficient is -0.125 *10**-9 m**3/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter12_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter12_1.ipynb
new file mode 100755
index 00000000..b3818649
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter12_1.ipynb
@@ -0,0 +1,285 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:881432a5cd98267b92bdfa11e021925fdef61ae98abdadccafbf254c6f9ca038"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Band theory of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EF=8; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0bar=3*EF/5; \n",
+ "v=math.sqrt(2*E0bar*e/m); #speed of electron(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of electron is\",round(v/10**6,1),\"*10**6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of electron is 1.3 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.2, Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=8; #current(ampere)\n",
+ "r=9*10**-4; #radius(m)\n",
+ "V=5; #potential difference(V)\n",
+ "L=1; #length(m)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*r**2; #area of wire(m**2)\n",
+ "E=V/L;\n",
+ "J=I/A; #current density(V/m)\n",
+ "rho=E/J; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"current density is\",round(J/10**6,3),\"*10**6 V/m\"\n",
+ "print \"resistivity is\",round(rho*10**6,2),\"*10**-6 ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current density is 3.144 *10**6 V/m\n",
+ "resistivity is 1.59 *10**-6 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.3, Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "a=4*10**-10; #lattice parameter(m)\n",
+ "N=1.56*10**28; \n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=10**-15; #collision time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "rho=1/sigma; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"conductivity is\",round(sigma/10**6,2),\"*10**6 ohm m\"\n",
+ "print \"resistivity is\",rho,\"ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conductivity is 0.44 *10**6 ohm m\n",
+ "resistivity is 2.275e-06 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.4, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=300; #temperature(K)\n",
+ "EF=2; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "C=math.pi**2*k**2*NA*T/(2*EF*e); #electronic specific heat(J/kmol/K)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic specific heat is\",int(C),\"J/kmol/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic specific heat is 530 J/kmol/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.5, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "K=327; #thermal conductivity(W/mK)\n",
+ "T=300; #temperature(K)\n",
+ "rho=7.13*10**3; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "w=65.38; #atomic weight\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=2.5*10**-14; #relaxation time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=2*rho*NA/w; #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "L=K/(sigma*T); #lorentz number(W ohm/K**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"lorentz number is\",round(L*10**8,4),\"*10**-8 W ohm/K**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lorentz number is 1.1804 *10**-8 W ohm/K**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.6, Page number 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=5*10**28; #number of atoms(/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "RH=-1/(n*e); #hall coefficient(m**3/C)\n",
+ "\n",
+ "#Result\n",
+ "print \"hall coefficient is\",round(RH*10**9,3),\"*10**-9 m**3/C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hall coefficient is -0.125 *10**-9 m**3/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter12_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter12_2.ipynb
new file mode 100755
index 00000000..b3818649
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter12_2.ipynb
@@ -0,0 +1,285 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:881432a5cd98267b92bdfa11e021925fdef61ae98abdadccafbf254c6f9ca038"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Band theory of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EF=8; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0bar=3*EF/5; \n",
+ "v=math.sqrt(2*E0bar*e/m); #speed of electron(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of electron is\",round(v/10**6,1),\"*10**6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of electron is 1.3 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.2, Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=8; #current(ampere)\n",
+ "r=9*10**-4; #radius(m)\n",
+ "V=5; #potential difference(V)\n",
+ "L=1; #length(m)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*r**2; #area of wire(m**2)\n",
+ "E=V/L;\n",
+ "J=I/A; #current density(V/m)\n",
+ "rho=E/J; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"current density is\",round(J/10**6,3),\"*10**6 V/m\"\n",
+ "print \"resistivity is\",round(rho*10**6,2),\"*10**-6 ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current density is 3.144 *10**6 V/m\n",
+ "resistivity is 1.59 *10**-6 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.3, Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "a=4*10**-10; #lattice parameter(m)\n",
+ "N=1.56*10**28; \n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=10**-15; #collision time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "rho=1/sigma; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"conductivity is\",round(sigma/10**6,2),\"*10**6 ohm m\"\n",
+ "print \"resistivity is\",rho,\"ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conductivity is 0.44 *10**6 ohm m\n",
+ "resistivity is 2.275e-06 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.4, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=300; #temperature(K)\n",
+ "EF=2; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "C=math.pi**2*k**2*NA*T/(2*EF*e); #electronic specific heat(J/kmol/K)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic specific heat is\",int(C),\"J/kmol/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic specific heat is 530 J/kmol/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.5, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "K=327; #thermal conductivity(W/mK)\n",
+ "T=300; #temperature(K)\n",
+ "rho=7.13*10**3; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "w=65.38; #atomic weight\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=2.5*10**-14; #relaxation time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=2*rho*NA/w; #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "L=K/(sigma*T); #lorentz number(W ohm/K**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"lorentz number is\",round(L*10**8,4),\"*10**-8 W ohm/K**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lorentz number is 1.1804 *10**-8 W ohm/K**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.6, Page number 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=5*10**28; #number of atoms(/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "RH=-1/(n*e); #hall coefficient(m**3/C)\n",
+ "\n",
+ "#Result\n",
+ "print \"hall coefficient is\",round(RH*10**9,3),\"*10**-9 m**3/C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hall coefficient is -0.125 *10**-9 m**3/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter12_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter12_3.ipynb
new file mode 100755
index 00000000..b3818649
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter12_3.ipynb
@@ -0,0 +1,285 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:881432a5cd98267b92bdfa11e021925fdef61ae98abdadccafbf254c6f9ca038"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "12: Band theory of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.1, Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EF=8; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0bar=3*EF/5; \n",
+ "v=math.sqrt(2*E0bar*e/m); #speed of electron(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of electron is\",round(v/10**6,1),\"*10**6 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of electron is 1.3 *10**6 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.2, Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=8; #current(ampere)\n",
+ "r=9*10**-4; #radius(m)\n",
+ "V=5; #potential difference(V)\n",
+ "L=1; #length(m)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*r**2; #area of wire(m**2)\n",
+ "E=V/L;\n",
+ "J=I/A; #current density(V/m)\n",
+ "rho=E/J; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"current density is\",round(J/10**6,3),\"*10**6 V/m\"\n",
+ "print \"resistivity is\",round(rho*10**6,2),\"*10**-6 ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current density is 3.144 *10**6 V/m\n",
+ "resistivity is 1.59 *10**-6 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.3, Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1;\n",
+ "a=4*10**-10; #lattice parameter(m)\n",
+ "N=1.56*10**28; \n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=10**-15; #collision time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "rho=1/sigma; #resistivity(ohm m)\n",
+ "\n",
+ "#Result\n",
+ "print \"conductivity is\",round(sigma/10**6,2),\"*10**6 ohm m\"\n",
+ "print \"resistivity is\",rho,\"ohm m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conductivity is 0.44 *10**6 ohm m\n",
+ "resistivity is 2.275e-06 ohm m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.4, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "T=300; #temperature(K)\n",
+ "EF=2; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "C=math.pi**2*k**2*NA*T/(2*EF*e); #electronic specific heat(J/kmol/K)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic specific heat is\",int(C),\"J/kmol/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic specific heat is 530 J/kmol/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.5, Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "K=327; #thermal conductivity(W/mK)\n",
+ "T=300; #temperature(K)\n",
+ "rho=7.13*10**3; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "w=65.38; #atomic weight\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "tow=2.5*10**-14; #relaxation time(s)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=2*rho*NA/w; #number of electrons per unit volume(per m**3)\n",
+ "sigma=N*e**2*tow/m; #conductivity(per ohm m)\n",
+ "L=K/(sigma*T); #lorentz number(W ohm/K**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"lorentz number is\",round(L*10**8,4),\"*10**-8 W ohm/K**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lorentz number is 1.1804 *10**-8 W ohm/K**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12.6, Page number 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=5*10**28; #number of atoms(/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "RH=-1/(n*e); #hall coefficient(m**3/C)\n",
+ "\n",
+ "#Result\n",
+ "print \"hall coefficient is\",round(RH*10**9,3),\"*10**-9 m**3/C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hall coefficient is -0.125 *10**-9 m**3/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter13.ipynb b/Modern_Physics_By_G.Aruldas/Chapter13.ipynb
new file mode 100755
index 00000000..70f718e0
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter13.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02413599230fcf3193c09944545ea5772a7d8e9a89055fec5a43dcb6e7435b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Magnetic properties of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "chi=-4.2*10**-6; #magnetic susceptibility\n",
+ "H=1.2*10**5; #magnetic field(A/m)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "\n",
+ "#Calculation\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "B=mew0*(H+M); #flux density(T)\n",
+ "mewr=(M/H)+1; #relative permeability\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetisation is\",M,\"A/m\"\n",
+ "print \"flux density is\",round(B,3),\"T\"\n",
+ "print \"relative permeability is\",round(mewr,6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetisation is -0.504 A/m\n",
+ "flux density is 0.151 T\n",
+ "relative permeability is 0.999996\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=2; #atomic number\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "N=28*10**26; #number of atoms(per m**3)\n",
+ "r=0.6*10**-10; #mean radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "chi=-mew0*Z*e**2*N*r**2/(6*m); #diamagnetic susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"diamagnetic susceptibility is\",round(chi*10**8,3),\"*10**-8\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diamagnetic susceptibility is -11.878 *10**-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=2;\n",
+ "a=2.55*10**-10; #lattice constant(m)\n",
+ "chi=5.6*10**-6; #susceptibility\n",
+ "Z=1;\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "rbar=math.sqrt(chi*6*m/(mew0*Z*e**2*N)); #radius of atom(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of atom is\",round(rbar*10**10,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of atom is 0.888 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "N=6.5*10**25; #number of atoms(per m**3)\n",
+ "mew=9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**7,2),\"*10**-7\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.65 *10**-7\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.5, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=4370; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "M=168.5; #molecular weight(kg/kmol)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "H=2*10**5; #electric field(A/m)\n",
+ "mew=2*9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "N=rho*NA/M; \n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**4,4),\"*10**-4\"\n",
+ "print \"magnetisation is\",round(M,3),\"A/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.4298 *10**-4\n",
+ "magnetisation is 108.596 A/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter13_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter13_1.ipynb
new file mode 100755
index 00000000..70f718e0
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter13_1.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02413599230fcf3193c09944545ea5772a7d8e9a89055fec5a43dcb6e7435b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Magnetic properties of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "chi=-4.2*10**-6; #magnetic susceptibility\n",
+ "H=1.2*10**5; #magnetic field(A/m)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "\n",
+ "#Calculation\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "B=mew0*(H+M); #flux density(T)\n",
+ "mewr=(M/H)+1; #relative permeability\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetisation is\",M,\"A/m\"\n",
+ "print \"flux density is\",round(B,3),\"T\"\n",
+ "print \"relative permeability is\",round(mewr,6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetisation is -0.504 A/m\n",
+ "flux density is 0.151 T\n",
+ "relative permeability is 0.999996\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=2; #atomic number\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "N=28*10**26; #number of atoms(per m**3)\n",
+ "r=0.6*10**-10; #mean radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "chi=-mew0*Z*e**2*N*r**2/(6*m); #diamagnetic susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"diamagnetic susceptibility is\",round(chi*10**8,3),\"*10**-8\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diamagnetic susceptibility is -11.878 *10**-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=2;\n",
+ "a=2.55*10**-10; #lattice constant(m)\n",
+ "chi=5.6*10**-6; #susceptibility\n",
+ "Z=1;\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "rbar=math.sqrt(chi*6*m/(mew0*Z*e**2*N)); #radius of atom(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of atom is\",round(rbar*10**10,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of atom is 0.888 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "N=6.5*10**25; #number of atoms(per m**3)\n",
+ "mew=9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**7,2),\"*10**-7\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.65 *10**-7\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.5, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=4370; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "M=168.5; #molecular weight(kg/kmol)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "H=2*10**5; #electric field(A/m)\n",
+ "mew=2*9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "N=rho*NA/M; \n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**4,4),\"*10**-4\"\n",
+ "print \"magnetisation is\",round(M,3),\"A/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.4298 *10**-4\n",
+ "magnetisation is 108.596 A/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter13_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter13_2.ipynb
new file mode 100755
index 00000000..70f718e0
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter13_2.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02413599230fcf3193c09944545ea5772a7d8e9a89055fec5a43dcb6e7435b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Magnetic properties of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "chi=-4.2*10**-6; #magnetic susceptibility\n",
+ "H=1.2*10**5; #magnetic field(A/m)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "\n",
+ "#Calculation\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "B=mew0*(H+M); #flux density(T)\n",
+ "mewr=(M/H)+1; #relative permeability\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetisation is\",M,\"A/m\"\n",
+ "print \"flux density is\",round(B,3),\"T\"\n",
+ "print \"relative permeability is\",round(mewr,6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetisation is -0.504 A/m\n",
+ "flux density is 0.151 T\n",
+ "relative permeability is 0.999996\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=2; #atomic number\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "N=28*10**26; #number of atoms(per m**3)\n",
+ "r=0.6*10**-10; #mean radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "chi=-mew0*Z*e**2*N*r**2/(6*m); #diamagnetic susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"diamagnetic susceptibility is\",round(chi*10**8,3),\"*10**-8\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diamagnetic susceptibility is -11.878 *10**-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=2;\n",
+ "a=2.55*10**-10; #lattice constant(m)\n",
+ "chi=5.6*10**-6; #susceptibility\n",
+ "Z=1;\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "rbar=math.sqrt(chi*6*m/(mew0*Z*e**2*N)); #radius of atom(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of atom is\",round(rbar*10**10,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of atom is 0.888 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "N=6.5*10**25; #number of atoms(per m**3)\n",
+ "mew=9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**7,2),\"*10**-7\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.65 *10**-7\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.5, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=4370; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "M=168.5; #molecular weight(kg/kmol)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "H=2*10**5; #electric field(A/m)\n",
+ "mew=2*9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "N=rho*NA/M; \n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**4,4),\"*10**-4\"\n",
+ "print \"magnetisation is\",round(M,3),\"A/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.4298 *10**-4\n",
+ "magnetisation is 108.596 A/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter13_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter13_3.ipynb
new file mode 100755
index 00000000..70f718e0
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter13_3.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02413599230fcf3193c09944545ea5772a7d8e9a89055fec5a43dcb6e7435b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "13: Magnetic properties of solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.1, Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "chi=-4.2*10**-6; #magnetic susceptibility\n",
+ "H=1.2*10**5; #magnetic field(A/m)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "\n",
+ "#Calculation\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "B=mew0*(H+M); #flux density(T)\n",
+ "mewr=(M/H)+1; #relative permeability\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetisation is\",M,\"A/m\"\n",
+ "print \"flux density is\",round(B,3),\"T\"\n",
+ "print \"relative permeability is\",round(mewr,6)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetisation is -0.504 A/m\n",
+ "flux density is 0.151 T\n",
+ "relative permeability is 0.999996\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.2, Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Z=2; #atomic number\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "N=28*10**26; #number of atoms(per m**3)\n",
+ "r=0.6*10**-10; #mean radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "chi=-mew0*Z*e**2*N*r**2/(6*m); #diamagnetic susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"diamagnetic susceptibility is\",round(chi*10**8,3),\"*10**-8\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diamagnetic susceptibility is -11.878 *10**-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.3, Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=2;\n",
+ "a=2.55*10**-10; #lattice constant(m)\n",
+ "chi=5.6*10**-6; #susceptibility\n",
+ "Z=1;\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "N=n/(a**3); #number of electrons per unit volume(per m**3)\n",
+ "rbar=math.sqrt(chi*6*m/(mew0*Z*e**2*N)); #radius of atom(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of atom is\",round(rbar*10**10,3),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of atom is 0.888 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.4, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "N=6.5*10**25; #number of atoms(per m**3)\n",
+ "mew=9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**7,2),\"*10**-7\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.65 *10**-7\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13.5, Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=4370; #density(kg/m**3)\n",
+ "NA=6.02*10**26; #avagadro number(k/mole)\n",
+ "M=168.5; #molecular weight(kg/kmol)\n",
+ "mew0=4*math.pi*10**-7; #permitivity of free space(H/m)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=300; #temperature(K)\n",
+ "H=2*10**5; #electric field(A/m)\n",
+ "mew=2*9.27*10**-24; \n",
+ "\n",
+ "#Calculation\n",
+ "N=rho*NA/M; \n",
+ "chi=mew0*N*mew**2/(3*k*T); #susceptibility\n",
+ "M=chi*H; #magnetisation(A/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",round(chi*10**4,4),\"*10**-4\"\n",
+ "print \"magnetisation is\",round(M,3),\"A/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 5.4298 *10**-4\n",
+ "magnetisation is 108.596 A/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter14.ipynb b/Modern_Physics_By_G.Aruldas/Chapter14.ipynb
new file mode 100755
index 00000000..b2beeab9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter14.ipynb
@@ -0,0 +1,107 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f383b09bed78232b6f6bef91df71b6fd8febd00a3f89287a33c756d53748eb03"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "14: Superconductivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.1, Page number 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Bc0=0.0305; #critical field(T)\n",
+ "T=2; #temperature(K)\n",
+ "Tc=3.722; #critical temperature(K)\n",
+ "r=2*10**-3; #diameter(m)\n",
+ "mew0=4*math.pi*10**-7; #magnetic permeability\n",
+ "\n",
+ "#Calculation\n",
+ "BcT=Bc0*(1-(T/Tc)**2); #critical field(T)\n",
+ "Ic=2*math.pi*r*BcT/mew0; #current(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current is\",round(Ic,1),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current is 216.9 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.2, Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda0=37; #london penetration depth(nm)\n",
+ "T=5.2; #temperature(K)\n",
+ "Tc=7.193; #critical temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(T/Tc)**4;\n",
+ "lamdaT=lamda0*(a**(-1/2)); #penetration depth of lead(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"penetration depth of lead is\",round(lamdaT,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "penetration depth of lead is 43.398 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter14_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter14_1.ipynb
new file mode 100755
index 00000000..b2beeab9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter14_1.ipynb
@@ -0,0 +1,107 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f383b09bed78232b6f6bef91df71b6fd8febd00a3f89287a33c756d53748eb03"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "14: Superconductivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.1, Page number 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Bc0=0.0305; #critical field(T)\n",
+ "T=2; #temperature(K)\n",
+ "Tc=3.722; #critical temperature(K)\n",
+ "r=2*10**-3; #diameter(m)\n",
+ "mew0=4*math.pi*10**-7; #magnetic permeability\n",
+ "\n",
+ "#Calculation\n",
+ "BcT=Bc0*(1-(T/Tc)**2); #critical field(T)\n",
+ "Ic=2*math.pi*r*BcT/mew0; #current(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current is\",round(Ic,1),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current is 216.9 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.2, Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda0=37; #london penetration depth(nm)\n",
+ "T=5.2; #temperature(K)\n",
+ "Tc=7.193; #critical temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(T/Tc)**4;\n",
+ "lamdaT=lamda0*(a**(-1/2)); #penetration depth of lead(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"penetration depth of lead is\",round(lamdaT,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "penetration depth of lead is 43.398 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter14_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter14_2.ipynb
new file mode 100755
index 00000000..b2beeab9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter14_2.ipynb
@@ -0,0 +1,107 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f383b09bed78232b6f6bef91df71b6fd8febd00a3f89287a33c756d53748eb03"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "14: Superconductivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.1, Page number 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Bc0=0.0305; #critical field(T)\n",
+ "T=2; #temperature(K)\n",
+ "Tc=3.722; #critical temperature(K)\n",
+ "r=2*10**-3; #diameter(m)\n",
+ "mew0=4*math.pi*10**-7; #magnetic permeability\n",
+ "\n",
+ "#Calculation\n",
+ "BcT=Bc0*(1-(T/Tc)**2); #critical field(T)\n",
+ "Ic=2*math.pi*r*BcT/mew0; #current(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current is\",round(Ic,1),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current is 216.9 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.2, Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda0=37; #london penetration depth(nm)\n",
+ "T=5.2; #temperature(K)\n",
+ "Tc=7.193; #critical temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(T/Tc)**4;\n",
+ "lamdaT=lamda0*(a**(-1/2)); #penetration depth of lead(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"penetration depth of lead is\",round(lamdaT,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "penetration depth of lead is 43.398 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter14_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter14_3.ipynb
new file mode 100755
index 00000000..b2beeab9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter14_3.ipynb
@@ -0,0 +1,107 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f383b09bed78232b6f6bef91df71b6fd8febd00a3f89287a33c756d53748eb03"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "14: Superconductivity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.1, Page number 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Bc0=0.0305; #critical field(T)\n",
+ "T=2; #temperature(K)\n",
+ "Tc=3.722; #critical temperature(K)\n",
+ "r=2*10**-3; #diameter(m)\n",
+ "mew0=4*math.pi*10**-7; #magnetic permeability\n",
+ "\n",
+ "#Calculation\n",
+ "BcT=Bc0*(1-(T/Tc)**2); #critical field(T)\n",
+ "Ic=2*math.pi*r*BcT/mew0; #current(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current is\",round(Ic,1),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current is 216.9 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14.2, Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda0=37; #london penetration depth(nm)\n",
+ "T=5.2; #temperature(K)\n",
+ "Tc=7.193; #critical temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1-(T/Tc)**4;\n",
+ "lamdaT=lamda0*(a**(-1/2)); #penetration depth of lead(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"penetration depth of lead is\",round(lamdaT,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "penetration depth of lead is 43.398 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter15.ipynb b/Modern_Physics_By_G.Aruldas/Chapter15.ipynb
new file mode 100755
index 00000000..48af1473
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter15.ipynb
@@ -0,0 +1,203 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ede2b0bb266c67744fbe14f69a09ec9b5592c13400e7d0bf2db5fa598ebe9db1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "15: Lasers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.1, Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=1000; #temperature(K)\n",
+ "new1=7.5*10**14; \n",
+ "new2=4.3*10**14;\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "\n",
+ "#Calculation\n",
+ "kT=k*T;\n",
+ "#optical region extends from 4000 to 7000 angstrom\n",
+ "hnew=h*(new1-new2); \n",
+ "\n",
+ "#Result\n",
+ "print \"value of kT is\",kT,\"J\"\n",
+ "print \"value of hnew is\",hnew,\"J\"\n",
+ "print \"hnew>kT.therefore spontaneous transitions are dominant ones in optical region\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of kT is 1.38e-20 J\n",
+ "value of hnew is 2.12032e-19 J\n",
+ "hnew>kT.therefore spontaneous transitions are dominant ones in optical region\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.2, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "P=0.6; #power(watt)\n",
+ "T=30*10**-3; #time(s)\n",
+ "lamda=640*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=P*T; #energy deposited(J)\n",
+ "n=E*lamda/(h*c); #number of photons in each pulse\n",
+ "\n",
+ "#Result\n",
+ "print \"energy deposited is\",E,\"J\"\n",
+ "print \"number of photons in each pulse is\",round(n/10**16,1),\"*10**16\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy deposited is 0.018 J\n",
+ "number of photons in each pulse is 5.8 *10**16\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.3, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5000*10**-10; #wavelength(m)\n",
+ "f=0.2; #focal length(m)\n",
+ "a=0.009; #radius of aperture(m)\n",
+ "P=2.5*10**-3; #power(W)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*lamda**2*f**2/a**2; #area of spot at focal plane(m**2)\n",
+ "I=P/A; #intensity at focus(W/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"area of spot at focal plane is\",round(A*10**10,2),\"*10**-10 m**2\"\n",
+ "print \"intensity at focus is\",round(I/10**6,3),\"*10**6 W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area of spot at focal plane is 3.88 *10**-10 m**2\n",
+ "intensity at focus is 6.446 *10**6 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.4, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=693*10**-9; #wavelength(m)\n",
+ "D=3*10**-3; #diameter of mirror(m)\n",
+ "d=300*10**3; #distance from earth(m)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_theta=1.22*lamda/D; #angular spread(rad)\n",
+ "a=delta_theta*d; #diameter of beam on satellite(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"angular spread is\",round(delta_theta*10**4,2),\"*10**-4 rad\"\n",
+ "print \"diameter of beam on satellite is\",round(a,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular spread is 2.82 *10**-4 rad\n",
+ "diameter of beam on satellite is 84.55 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter15_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter15_1.ipynb
new file mode 100755
index 00000000..48af1473
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter15_1.ipynb
@@ -0,0 +1,203 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ede2b0bb266c67744fbe14f69a09ec9b5592c13400e7d0bf2db5fa598ebe9db1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "15: Lasers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.1, Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=1000; #temperature(K)\n",
+ "new1=7.5*10**14; \n",
+ "new2=4.3*10**14;\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "\n",
+ "#Calculation\n",
+ "kT=k*T;\n",
+ "#optical region extends from 4000 to 7000 angstrom\n",
+ "hnew=h*(new1-new2); \n",
+ "\n",
+ "#Result\n",
+ "print \"value of kT is\",kT,\"J\"\n",
+ "print \"value of hnew is\",hnew,\"J\"\n",
+ "print \"hnew>kT.therefore spontaneous transitions are dominant ones in optical region\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of kT is 1.38e-20 J\n",
+ "value of hnew is 2.12032e-19 J\n",
+ "hnew>kT.therefore spontaneous transitions are dominant ones in optical region\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.2, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "P=0.6; #power(watt)\n",
+ "T=30*10**-3; #time(s)\n",
+ "lamda=640*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=P*T; #energy deposited(J)\n",
+ "n=E*lamda/(h*c); #number of photons in each pulse\n",
+ "\n",
+ "#Result\n",
+ "print \"energy deposited is\",E,\"J\"\n",
+ "print \"number of photons in each pulse is\",round(n/10**16,1),\"*10**16\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy deposited is 0.018 J\n",
+ "number of photons in each pulse is 5.8 *10**16\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.3, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5000*10**-10; #wavelength(m)\n",
+ "f=0.2; #focal length(m)\n",
+ "a=0.009; #radius of aperture(m)\n",
+ "P=2.5*10**-3; #power(W)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*lamda**2*f**2/a**2; #area of spot at focal plane(m**2)\n",
+ "I=P/A; #intensity at focus(W/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"area of spot at focal plane is\",round(A*10**10,2),\"*10**-10 m**2\"\n",
+ "print \"intensity at focus is\",round(I/10**6,3),\"*10**6 W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area of spot at focal plane is 3.88 *10**-10 m**2\n",
+ "intensity at focus is 6.446 *10**6 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.4, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=693*10**-9; #wavelength(m)\n",
+ "D=3*10**-3; #diameter of mirror(m)\n",
+ "d=300*10**3; #distance from earth(m)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_theta=1.22*lamda/D; #angular spread(rad)\n",
+ "a=delta_theta*d; #diameter of beam on satellite(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"angular spread is\",round(delta_theta*10**4,2),\"*10**-4 rad\"\n",
+ "print \"diameter of beam on satellite is\",round(a,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular spread is 2.82 *10**-4 rad\n",
+ "diameter of beam on satellite is 84.55 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter15_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter15_2.ipynb
new file mode 100755
index 00000000..48af1473
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter15_2.ipynb
@@ -0,0 +1,203 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ede2b0bb266c67744fbe14f69a09ec9b5592c13400e7d0bf2db5fa598ebe9db1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "15: Lasers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.1, Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=1000; #temperature(K)\n",
+ "new1=7.5*10**14; \n",
+ "new2=4.3*10**14;\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "\n",
+ "#Calculation\n",
+ "kT=k*T;\n",
+ "#optical region extends from 4000 to 7000 angstrom\n",
+ "hnew=h*(new1-new2); \n",
+ "\n",
+ "#Result\n",
+ "print \"value of kT is\",kT,\"J\"\n",
+ "print \"value of hnew is\",hnew,\"J\"\n",
+ "print \"hnew>kT.therefore spontaneous transitions are dominant ones in optical region\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of kT is 1.38e-20 J\n",
+ "value of hnew is 2.12032e-19 J\n",
+ "hnew>kT.therefore spontaneous transitions are dominant ones in optical region\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.2, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "P=0.6; #power(watt)\n",
+ "T=30*10**-3; #time(s)\n",
+ "lamda=640*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=P*T; #energy deposited(J)\n",
+ "n=E*lamda/(h*c); #number of photons in each pulse\n",
+ "\n",
+ "#Result\n",
+ "print \"energy deposited is\",E,\"J\"\n",
+ "print \"number of photons in each pulse is\",round(n/10**16,1),\"*10**16\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy deposited is 0.018 J\n",
+ "number of photons in each pulse is 5.8 *10**16\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.3, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5000*10**-10; #wavelength(m)\n",
+ "f=0.2; #focal length(m)\n",
+ "a=0.009; #radius of aperture(m)\n",
+ "P=2.5*10**-3; #power(W)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*lamda**2*f**2/a**2; #area of spot at focal plane(m**2)\n",
+ "I=P/A; #intensity at focus(W/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"area of spot at focal plane is\",round(A*10**10,2),\"*10**-10 m**2\"\n",
+ "print \"intensity at focus is\",round(I/10**6,3),\"*10**6 W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area of spot at focal plane is 3.88 *10**-10 m**2\n",
+ "intensity at focus is 6.446 *10**6 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.4, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=693*10**-9; #wavelength(m)\n",
+ "D=3*10**-3; #diameter of mirror(m)\n",
+ "d=300*10**3; #distance from earth(m)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_theta=1.22*lamda/D; #angular spread(rad)\n",
+ "a=delta_theta*d; #diameter of beam on satellite(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"angular spread is\",round(delta_theta*10**4,2),\"*10**-4 rad\"\n",
+ "print \"diameter of beam on satellite is\",round(a,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular spread is 2.82 *10**-4 rad\n",
+ "diameter of beam on satellite is 84.55 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter15_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter15_3.ipynb
new file mode 100755
index 00000000..48af1473
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter15_3.ipynb
@@ -0,0 +1,203 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ede2b0bb266c67744fbe14f69a09ec9b5592c13400e7d0bf2db5fa598ebe9db1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "15: Lasers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.1, Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "T=1000; #temperature(K)\n",
+ "new1=7.5*10**14; \n",
+ "new2=4.3*10**14;\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "\n",
+ "#Calculation\n",
+ "kT=k*T;\n",
+ "#optical region extends from 4000 to 7000 angstrom\n",
+ "hnew=h*(new1-new2); \n",
+ "\n",
+ "#Result\n",
+ "print \"value of kT is\",kT,\"J\"\n",
+ "print \"value of hnew is\",hnew,\"J\"\n",
+ "print \"hnew>kT.therefore spontaneous transitions are dominant ones in optical region\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of kT is 1.38e-20 J\n",
+ "value of hnew is 2.12032e-19 J\n",
+ "hnew>kT.therefore spontaneous transitions are dominant ones in optical region\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.2, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "P=0.6; #power(watt)\n",
+ "T=30*10**-3; #time(s)\n",
+ "lamda=640*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=P*T; #energy deposited(J)\n",
+ "n=E*lamda/(h*c); #number of photons in each pulse\n",
+ "\n",
+ "#Result\n",
+ "print \"energy deposited is\",E,\"J\"\n",
+ "print \"number of photons in each pulse is\",round(n/10**16,1),\"*10**16\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy deposited is 0.018 J\n",
+ "number of photons in each pulse is 5.8 *10**16\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.3, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=5000*10**-10; #wavelength(m)\n",
+ "f=0.2; #focal length(m)\n",
+ "a=0.009; #radius of aperture(m)\n",
+ "P=2.5*10**-3; #power(W)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*lamda**2*f**2/a**2; #area of spot at focal plane(m**2)\n",
+ "I=P/A; #intensity at focus(W/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"area of spot at focal plane is\",round(A*10**10,2),\"*10**-10 m**2\"\n",
+ "print \"intensity at focus is\",round(I/10**6,3),\"*10**6 W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "area of spot at focal plane is 3.88 *10**-10 m**2\n",
+ "intensity at focus is 6.446 *10**6 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15.4, Page number 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamda=693*10**-9; #wavelength(m)\n",
+ "D=3*10**-3; #diameter of mirror(m)\n",
+ "d=300*10**3; #distance from earth(m)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_theta=1.22*lamda/D; #angular spread(rad)\n",
+ "a=delta_theta*d; #diameter of beam on satellite(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"angular spread is\",round(delta_theta*10**4,2),\"*10**-4 rad\"\n",
+ "print \"diameter of beam on satellite is\",round(a,2),\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular spread is 2.82 *10**-4 rad\n",
+ "diameter of beam on satellite is 84.55 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter16.ipynb b/Modern_Physics_By_G.Aruldas/Chapter16.ipynb
new file mode 100755
index 00000000..932f4802
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter16.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8689775b6694dc6c6ea95bc809bbd7280d9553003ec1dbe78844db2dc6fa68f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "16: Fibre optics and holography"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.1, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n2=1.4; #refractive index of cladding\n",
+ "n1=1.43; #refractive index of core\n",
+ "\n",
+ "#Calculation\n",
+ "costhetac=n2/n1; \n",
+ "thetac=math.acos(costhetac); #propagation angle(radian)\n",
+ "thetac=thetac*180/math.pi; #propagation angle(degrees)\n",
+ "NA=math.sqrt(n1**2-n2**2); #numerical aperture\n",
+ "thetaa=math.asin(NA); #angle(radian)\n",
+ "thetaa=thetaa*180/math.pi; #angle(degrees)\n",
+ "thetaa=2*thetaa; #acceptance angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"propagation angle is\",round(thetac,1),\"degrees\"\n",
+ "print \"numerical aperture is\",round(NA,4)\n",
+ "print \"acceptance angle is\",round(thetaa,2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "propagation angle is 11.8 degrees\n",
+ "numerical aperture is 0.2914\n",
+ "acceptance angle is 33.88 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.3, Page number 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "z=30; #length of optical fibre(km)\n",
+ "alpha=0.8; #fibre loss(dB/km)\n",
+ "Pi=200; #input power(micro W)\n",
+ "\n",
+ "#Calculation\n",
+ "a=alpha*z/10;\n",
+ "b=10**a;\n",
+ "P0=Pi/b; #output power(micro W)\n",
+ "\n",
+ "#Result\n",
+ "print \"output power is\",round(P0,3),\"micro W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output power is 0.796 micro W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter16_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter16_1.ipynb
new file mode 100755
index 00000000..932f4802
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter16_1.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8689775b6694dc6c6ea95bc809bbd7280d9553003ec1dbe78844db2dc6fa68f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "16: Fibre optics and holography"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.1, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n2=1.4; #refractive index of cladding\n",
+ "n1=1.43; #refractive index of core\n",
+ "\n",
+ "#Calculation\n",
+ "costhetac=n2/n1; \n",
+ "thetac=math.acos(costhetac); #propagation angle(radian)\n",
+ "thetac=thetac*180/math.pi; #propagation angle(degrees)\n",
+ "NA=math.sqrt(n1**2-n2**2); #numerical aperture\n",
+ "thetaa=math.asin(NA); #angle(radian)\n",
+ "thetaa=thetaa*180/math.pi; #angle(degrees)\n",
+ "thetaa=2*thetaa; #acceptance angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"propagation angle is\",round(thetac,1),\"degrees\"\n",
+ "print \"numerical aperture is\",round(NA,4)\n",
+ "print \"acceptance angle is\",round(thetaa,2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "propagation angle is 11.8 degrees\n",
+ "numerical aperture is 0.2914\n",
+ "acceptance angle is 33.88 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.3, Page number 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "z=30; #length of optical fibre(km)\n",
+ "alpha=0.8; #fibre loss(dB/km)\n",
+ "Pi=200; #input power(micro W)\n",
+ "\n",
+ "#Calculation\n",
+ "a=alpha*z/10;\n",
+ "b=10**a;\n",
+ "P0=Pi/b; #output power(micro W)\n",
+ "\n",
+ "#Result\n",
+ "print \"output power is\",round(P0,3),\"micro W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output power is 0.796 micro W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter16_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter16_2.ipynb
new file mode 100755
index 00000000..932f4802
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter16_2.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8689775b6694dc6c6ea95bc809bbd7280d9553003ec1dbe78844db2dc6fa68f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "16: Fibre optics and holography"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.1, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n2=1.4; #refractive index of cladding\n",
+ "n1=1.43; #refractive index of core\n",
+ "\n",
+ "#Calculation\n",
+ "costhetac=n2/n1; \n",
+ "thetac=math.acos(costhetac); #propagation angle(radian)\n",
+ "thetac=thetac*180/math.pi; #propagation angle(degrees)\n",
+ "NA=math.sqrt(n1**2-n2**2); #numerical aperture\n",
+ "thetaa=math.asin(NA); #angle(radian)\n",
+ "thetaa=thetaa*180/math.pi; #angle(degrees)\n",
+ "thetaa=2*thetaa; #acceptance angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"propagation angle is\",round(thetac,1),\"degrees\"\n",
+ "print \"numerical aperture is\",round(NA,4)\n",
+ "print \"acceptance angle is\",round(thetaa,2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "propagation angle is 11.8 degrees\n",
+ "numerical aperture is 0.2914\n",
+ "acceptance angle is 33.88 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.3, Page number 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "z=30; #length of optical fibre(km)\n",
+ "alpha=0.8; #fibre loss(dB/km)\n",
+ "Pi=200; #input power(micro W)\n",
+ "\n",
+ "#Calculation\n",
+ "a=alpha*z/10;\n",
+ "b=10**a;\n",
+ "P0=Pi/b; #output power(micro W)\n",
+ "\n",
+ "#Result\n",
+ "print \"output power is\",round(P0,3),\"micro W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output power is 0.796 micro W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter16_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter16_3.ipynb
new file mode 100755
index 00000000..932f4802
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter16_3.ipynb
@@ -0,0 +1,114 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8689775b6694dc6c6ea95bc809bbd7280d9553003ec1dbe78844db2dc6fa68f3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "16: Fibre optics and holography"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.1, Page number 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n2=1.4; #refractive index of cladding\n",
+ "n1=1.43; #refractive index of core\n",
+ "\n",
+ "#Calculation\n",
+ "costhetac=n2/n1; \n",
+ "thetac=math.acos(costhetac); #propagation angle(radian)\n",
+ "thetac=thetac*180/math.pi; #propagation angle(degrees)\n",
+ "NA=math.sqrt(n1**2-n2**2); #numerical aperture\n",
+ "thetaa=math.asin(NA); #angle(radian)\n",
+ "thetaa=thetaa*180/math.pi; #angle(degrees)\n",
+ "thetaa=2*thetaa; #acceptance angle(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"propagation angle is\",round(thetac,1),\"degrees\"\n",
+ "print \"numerical aperture is\",round(NA,4)\n",
+ "print \"acceptance angle is\",round(thetaa,2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "propagation angle is 11.8 degrees\n",
+ "numerical aperture is 0.2914\n",
+ "acceptance angle is 33.88 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 16.3, Page number 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "z=30; #length of optical fibre(km)\n",
+ "alpha=0.8; #fibre loss(dB/km)\n",
+ "Pi=200; #input power(micro W)\n",
+ "\n",
+ "#Calculation\n",
+ "a=alpha*z/10;\n",
+ "b=10**a;\n",
+ "P0=Pi/b; #output power(micro W)\n",
+ "\n",
+ "#Result\n",
+ "print \"output power is\",round(P0,3),\"micro W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "output power is 0.796 micro W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter17.ipynb b/Modern_Physics_By_G.Aruldas/Chapter17.ipynb
new file mode 100755
index 00000000..61dae782
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter17.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d405bf204e77196ade310e0be88ebb97609af7dc21d3bd3e418e5c80ec00e4d3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "17: Nuclear properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.1, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #nucleon mass(kg)\n",
+ "R0=1.2*10**-15; #radius of nucleus(m)\n",
+ "\n",
+ "#Calculation\n",
+ "d=m*3/(4*math.pi*R0**3); #density of nucleus(kg/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"density of nucleus is\",round(d/10**17,1),\"*10**17 kg/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "density of nucleus is 2.3 *10**17 kg/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.2, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=1.2*10**-15;\n",
+ "k=9*10**9; #value of N(Nm**2/C**2)\n",
+ "q1=2;\n",
+ "q2=90;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "r=a*((4**(1/3))+(228**(1/3))); #distance(m)\n",
+ "E=k*q1*q2*e**2/r; #kinetic energy(J)\n",
+ "E=E/(e*10**6); #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is 0. kinetic energy is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is 0. kinetic energy is 28.1 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.3, Page number 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2.48*10**4; #electric field(V/m)\n",
+ "m=1.6605*10**-27; #nucleon mass(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=0.75; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "r1=E*12*m/(e*B**2); #distance on photographic plate for 12C(m)\n",
+ "r1=r1*10**3; #distance on photographic plate for 12C(mm)\n",
+ "r2=E*13*m/(e*B**2); #distance on photographic plate for 13C(m)\n",
+ "r2=r2*10**3; #distance on photographic plate for 13C(mm)\n",
+ "r3=E*14*m/(e*B**2); #distance on photographic plate for 14C(m)\n",
+ "r3=r3*10**3; #distance on photographic plate for 14C(mm)\n",
+ "r4=(2*r2)-(2*r1); #distance between lines of 13C and 12C(mm)\n",
+ "r5=(2*r3)-(2*r2); #distance between lines of 14C and 13C(mm)\n",
+ "r=r4/2; #distance if ions are doubly charged(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"distance on photographic plate for 12C is\",round(r1,2),\"mm\"\n",
+ "print \"distance on photographic plate for 13C is\",round(r2,2),\"mm\"\n",
+ "print \"distance on photographic plate for 14C is\",round(r3,2),\"mm\"\n",
+ "print \"distance if ions are doubly charged is\",round(r,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance on photographic plate for 12C is 5.49 mm\n",
+ "distance on photographic plate for 13C is 5.95 mm\n",
+ "distance on photographic plate for 14C is 6.41 mm\n",
+ "distance if ions are doubly charged is 0.46 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.4, Page number 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=6; #number of neutrons\n",
+ "p=6; #number of protons\n",
+ "M=12; #mass of 12C6(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mn=n*1.008665; #mass of neutrons(u)\n",
+ "mp=p*1.007825; #mass of hydrogen atoms(u)\n",
+ "m=mp+mn; #total mass(u)\n",
+ "md=m-M; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "be=BE/12; #average binding energy per nucleon(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,2),\"MeV\"\n",
+ "print \"average binding energy per nucleon is\",round(be,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 92.16 MeV\n",
+ "average binding energy per nucleon is 7.68 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.6, Page number 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M22Na=21.9944; #mass of 22Na(u)\n",
+ "m=1.008665; #mass of last neutron(u)\n",
+ "M23Na=22.989767; #mass of 23Na(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "M=M22Na+m; \n",
+ "md=M-M23Na; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 12.4 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.7, Page number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "hbar=1.05*10**-34; \n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "mpi=140; #mass of pi-meson(MeV/c**2)\n",
+ "e=1.6*10**-13;\n",
+ "\n",
+ "#Calculation\n",
+ "r=hbar*c/(mpi*e); #range of nuclear force(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"range of nuclear force is\",round(r*10**15,1),\"fm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "range of nuclear force is 1.4 fm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter17_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter17_1.ipynb
new file mode 100755
index 00000000..61dae782
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter17_1.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d405bf204e77196ade310e0be88ebb97609af7dc21d3bd3e418e5c80ec00e4d3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "17: Nuclear properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.1, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #nucleon mass(kg)\n",
+ "R0=1.2*10**-15; #radius of nucleus(m)\n",
+ "\n",
+ "#Calculation\n",
+ "d=m*3/(4*math.pi*R0**3); #density of nucleus(kg/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"density of nucleus is\",round(d/10**17,1),\"*10**17 kg/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "density of nucleus is 2.3 *10**17 kg/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.2, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=1.2*10**-15;\n",
+ "k=9*10**9; #value of N(Nm**2/C**2)\n",
+ "q1=2;\n",
+ "q2=90;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "r=a*((4**(1/3))+(228**(1/3))); #distance(m)\n",
+ "E=k*q1*q2*e**2/r; #kinetic energy(J)\n",
+ "E=E/(e*10**6); #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is 0. kinetic energy is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is 0. kinetic energy is 28.1 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.3, Page number 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2.48*10**4; #electric field(V/m)\n",
+ "m=1.6605*10**-27; #nucleon mass(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=0.75; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "r1=E*12*m/(e*B**2); #distance on photographic plate for 12C(m)\n",
+ "r1=r1*10**3; #distance on photographic plate for 12C(mm)\n",
+ "r2=E*13*m/(e*B**2); #distance on photographic plate for 13C(m)\n",
+ "r2=r2*10**3; #distance on photographic plate for 13C(mm)\n",
+ "r3=E*14*m/(e*B**2); #distance on photographic plate for 14C(m)\n",
+ "r3=r3*10**3; #distance on photographic plate for 14C(mm)\n",
+ "r4=(2*r2)-(2*r1); #distance between lines of 13C and 12C(mm)\n",
+ "r5=(2*r3)-(2*r2); #distance between lines of 14C and 13C(mm)\n",
+ "r=r4/2; #distance if ions are doubly charged(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"distance on photographic plate for 12C is\",round(r1,2),\"mm\"\n",
+ "print \"distance on photographic plate for 13C is\",round(r2,2),\"mm\"\n",
+ "print \"distance on photographic plate for 14C is\",round(r3,2),\"mm\"\n",
+ "print \"distance if ions are doubly charged is\",round(r,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance on photographic plate for 12C is 5.49 mm\n",
+ "distance on photographic plate for 13C is 5.95 mm\n",
+ "distance on photographic plate for 14C is 6.41 mm\n",
+ "distance if ions are doubly charged is 0.46 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.4, Page number 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=6; #number of neutrons\n",
+ "p=6; #number of protons\n",
+ "M=12; #mass of 12C6(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mn=n*1.008665; #mass of neutrons(u)\n",
+ "mp=p*1.007825; #mass of hydrogen atoms(u)\n",
+ "m=mp+mn; #total mass(u)\n",
+ "md=m-M; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "be=BE/12; #average binding energy per nucleon(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,2),\"MeV\"\n",
+ "print \"average binding energy per nucleon is\",round(be,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 92.16 MeV\n",
+ "average binding energy per nucleon is 7.68 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.6, Page number 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M22Na=21.9944; #mass of 22Na(u)\n",
+ "m=1.008665; #mass of last neutron(u)\n",
+ "M23Na=22.989767; #mass of 23Na(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "M=M22Na+m; \n",
+ "md=M-M23Na; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 12.4 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.7, Page number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "hbar=1.05*10**-34; \n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "mpi=140; #mass of pi-meson(MeV/c**2)\n",
+ "e=1.6*10**-13;\n",
+ "\n",
+ "#Calculation\n",
+ "r=hbar*c/(mpi*e); #range of nuclear force(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"range of nuclear force is\",round(r*10**15,1),\"fm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "range of nuclear force is 1.4 fm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter17_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter17_2.ipynb
new file mode 100755
index 00000000..61dae782
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter17_2.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d405bf204e77196ade310e0be88ebb97609af7dc21d3bd3e418e5c80ec00e4d3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "17: Nuclear properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.1, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #nucleon mass(kg)\n",
+ "R0=1.2*10**-15; #radius of nucleus(m)\n",
+ "\n",
+ "#Calculation\n",
+ "d=m*3/(4*math.pi*R0**3); #density of nucleus(kg/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"density of nucleus is\",round(d/10**17,1),\"*10**17 kg/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "density of nucleus is 2.3 *10**17 kg/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.2, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=1.2*10**-15;\n",
+ "k=9*10**9; #value of N(Nm**2/C**2)\n",
+ "q1=2;\n",
+ "q2=90;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "r=a*((4**(1/3))+(228**(1/3))); #distance(m)\n",
+ "E=k*q1*q2*e**2/r; #kinetic energy(J)\n",
+ "E=E/(e*10**6); #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is 0. kinetic energy is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is 0. kinetic energy is 28.1 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.3, Page number 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2.48*10**4; #electric field(V/m)\n",
+ "m=1.6605*10**-27; #nucleon mass(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=0.75; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "r1=E*12*m/(e*B**2); #distance on photographic plate for 12C(m)\n",
+ "r1=r1*10**3; #distance on photographic plate for 12C(mm)\n",
+ "r2=E*13*m/(e*B**2); #distance on photographic plate for 13C(m)\n",
+ "r2=r2*10**3; #distance on photographic plate for 13C(mm)\n",
+ "r3=E*14*m/(e*B**2); #distance on photographic plate for 14C(m)\n",
+ "r3=r3*10**3; #distance on photographic plate for 14C(mm)\n",
+ "r4=(2*r2)-(2*r1); #distance between lines of 13C and 12C(mm)\n",
+ "r5=(2*r3)-(2*r2); #distance between lines of 14C and 13C(mm)\n",
+ "r=r4/2; #distance if ions are doubly charged(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"distance on photographic plate for 12C is\",round(r1,2),\"mm\"\n",
+ "print \"distance on photographic plate for 13C is\",round(r2,2),\"mm\"\n",
+ "print \"distance on photographic plate for 14C is\",round(r3,2),\"mm\"\n",
+ "print \"distance if ions are doubly charged is\",round(r,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance on photographic plate for 12C is 5.49 mm\n",
+ "distance on photographic plate for 13C is 5.95 mm\n",
+ "distance on photographic plate for 14C is 6.41 mm\n",
+ "distance if ions are doubly charged is 0.46 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.4, Page number 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=6; #number of neutrons\n",
+ "p=6; #number of protons\n",
+ "M=12; #mass of 12C6(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mn=n*1.008665; #mass of neutrons(u)\n",
+ "mp=p*1.007825; #mass of hydrogen atoms(u)\n",
+ "m=mp+mn; #total mass(u)\n",
+ "md=m-M; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "be=BE/12; #average binding energy per nucleon(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,2),\"MeV\"\n",
+ "print \"average binding energy per nucleon is\",round(be,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 92.16 MeV\n",
+ "average binding energy per nucleon is 7.68 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.6, Page number 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M22Na=21.9944; #mass of 22Na(u)\n",
+ "m=1.008665; #mass of last neutron(u)\n",
+ "M23Na=22.989767; #mass of 23Na(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "M=M22Na+m; \n",
+ "md=M-M23Na; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 12.4 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.7, Page number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "hbar=1.05*10**-34; \n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "mpi=140; #mass of pi-meson(MeV/c**2)\n",
+ "e=1.6*10**-13;\n",
+ "\n",
+ "#Calculation\n",
+ "r=hbar*c/(mpi*e); #range of nuclear force(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"range of nuclear force is\",round(r*10**15,1),\"fm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "range of nuclear force is 1.4 fm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter17_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter17_3.ipynb
new file mode 100755
index 00000000..61dae782
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter17_3.ipynb
@@ -0,0 +1,293 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d405bf204e77196ade310e0be88ebb97609af7dc21d3bd3e418e5c80ec00e4d3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "17: Nuclear properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.1, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #nucleon mass(kg)\n",
+ "R0=1.2*10**-15; #radius of nucleus(m)\n",
+ "\n",
+ "#Calculation\n",
+ "d=m*3/(4*math.pi*R0**3); #density of nucleus(kg/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"density of nucleus is\",round(d/10**17,1),\"*10**17 kg/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "density of nucleus is 2.3 *10**17 kg/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.2, Page number 324"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=1.2*10**-15;\n",
+ "k=9*10**9; #value of N(Nm**2/C**2)\n",
+ "q1=2;\n",
+ "q2=90;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "r=a*((4**(1/3))+(228**(1/3))); #distance(m)\n",
+ "E=k*q1*q2*e**2/r; #kinetic energy(J)\n",
+ "E=E/(e*10**6); #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential energy is 0. kinetic energy is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential energy is 0. kinetic energy is 28.1 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.3, Page number 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=2.48*10**4; #electric field(V/m)\n",
+ "m=1.6605*10**-27; #nucleon mass(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=0.75; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "r1=E*12*m/(e*B**2); #distance on photographic plate for 12C(m)\n",
+ "r1=r1*10**3; #distance on photographic plate for 12C(mm)\n",
+ "r2=E*13*m/(e*B**2); #distance on photographic plate for 13C(m)\n",
+ "r2=r2*10**3; #distance on photographic plate for 13C(mm)\n",
+ "r3=E*14*m/(e*B**2); #distance on photographic plate for 14C(m)\n",
+ "r3=r3*10**3; #distance on photographic plate for 14C(mm)\n",
+ "r4=(2*r2)-(2*r1); #distance between lines of 13C and 12C(mm)\n",
+ "r5=(2*r3)-(2*r2); #distance between lines of 14C and 13C(mm)\n",
+ "r=r4/2; #distance if ions are doubly charged(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"distance on photographic plate for 12C is\",round(r1,2),\"mm\"\n",
+ "print \"distance on photographic plate for 13C is\",round(r2,2),\"mm\"\n",
+ "print \"distance on photographic plate for 14C is\",round(r3,2),\"mm\"\n",
+ "print \"distance if ions are doubly charged is\",round(r,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance on photographic plate for 12C is 5.49 mm\n",
+ "distance on photographic plate for 13C is 5.95 mm\n",
+ "distance on photographic plate for 14C is 6.41 mm\n",
+ "distance if ions are doubly charged is 0.46 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.4, Page number 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=6; #number of neutrons\n",
+ "p=6; #number of protons\n",
+ "M=12; #mass of 12C6(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mn=n*1.008665; #mass of neutrons(u)\n",
+ "mp=p*1.007825; #mass of hydrogen atoms(u)\n",
+ "m=mp+mn; #total mass(u)\n",
+ "md=m-M; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "be=BE/12; #average binding energy per nucleon(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,2),\"MeV\"\n",
+ "print \"average binding energy per nucleon is\",round(be,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 92.16 MeV\n",
+ "average binding energy per nucleon is 7.68 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.6, Page number 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M22Na=21.9944; #mass of 22Na(u)\n",
+ "m=1.008665; #mass of last neutron(u)\n",
+ "M23Na=22.989767; #mass of 23Na(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "M=M22Na+m; \n",
+ "md=M-M23Na; #mass deficiency(u)\n",
+ "BE=md*E; #binding energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"binding energy is\",round(BE,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binding energy is 12.4 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 17.7, Page number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "hbar=1.05*10**-34; \n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "mpi=140; #mass of pi-meson(MeV/c**2)\n",
+ "e=1.6*10**-13;\n",
+ "\n",
+ "#Calculation\n",
+ "r=hbar*c/(mpi*e); #range of nuclear force(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"range of nuclear force is\",round(r*10**15,1),\"fm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "range of nuclear force is 1.4 fm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter18.ipynb b/Modern_Physics_By_G.Aruldas/Chapter18.ipynb
new file mode 100755
index 00000000..b99ff137
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter18.ipynb
@@ -0,0 +1,366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0f6dea1f19194326599a9bca2989e912ed17e32f1ffb8d9305e16c13f8cacf2c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "18: Radioactive decay"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.1, Page number 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N0=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "f=(N0/2)/N0; #fraction after t1/2\n",
+ "f1=(N0/4)/N0; #fraction after 2 half lives\n",
+ "f2=(N0/(2**5))/N0; #fraction after 5 half lives\n",
+ "f3=(N0/(2**10))/N0; #fraction after 10 half lives\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction after 2 half lives is\",f1\n",
+ "print \"fraction after 5 half lives is\",f2\n",
+ "print \"fraction after 10 half lives is\",f3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction after 2 half lives is 0.25\n",
+ "fraction after 5 half lives is 0.03125\n",
+ "fraction after 10 half lives is 0.0009765625\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.2, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=2.7*24*60*60; #half life(s)\n",
+ "m=1*10**-6; #mass(gm)\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "M=198; #molar mass(g/mol)\n",
+ "t=8*24*60*60;\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=m*Na/M; #number of nuclei(atoms)\n",
+ "A0=lamda*N; #activity(disintegrations per sec)\n",
+ "A=A0*math.exp(-lamda*t); #activity for 8 days(decays per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"decay constant is\",round(lamda*10**6,2),\"*10**-6 per sec\"\n",
+ "print \"activity is\",round(A0/10**9,2),\"*10**9 disintegrations per sec\"\n",
+ "print \"activity for 8 days is\",round(A/10**9,2),\"*10**9 decays per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "decay constant is 2.97 *10**-6 per sec\n",
+ "activity is 9.03 *10**9 disintegrations per sec\n",
+ "activity for 8 days is 1.16 *10**9 decays per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.3, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=5570*365*24*60*60; #half life(s)\n",
+ "dNbydt=3.7*10**10*2*10**-3; #number of decays per sec\n",
+ "m=14;\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=dNbydt/lamda; #number of atoms\n",
+ "mN=m*N/Na; #mass of 2mCi(g)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 2mCi is\",round(mN*10**4,2),\"*10**-4 g\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 2mCi is 4.36 *10**-4 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.5, Page number 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=1.25*10**9; #half life(yr)\n",
+ "r=10.2; #ratio of number of atoms\n",
+ "\n",
+ "#Calculation\n",
+ "a=1+r;\n",
+ "lamda=0.693/thalf; #decay constant(per yr)\n",
+ "t=math.log(a)/lamda; #time(yr)\n",
+ "\n",
+ "#Result\n",
+ "print \"the rock is\",round(t/10**9,2),\"*10**9 yrs old\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rock is 4.36 *10**9 yrs old\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.6, Page number 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mU=232.037131; #atomic mass of U(u)\n",
+ "mHe=4.002603; #atomic mass of He(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "KE=5.32; #kinetic energy of alpha particle(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mTh=mU-mHe-(KE/E); #atomic mass of Th(u)\n",
+ "\n",
+ "#Result\n",
+ "print \"atomic mass of Th is\",round(mTh,5),\"u\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "atomic mass of Th is 228.02882 u\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.7, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=931.5; #energy(MeV)\n",
+ "mX=11.011433; #mass of 11C(u)\n",
+ "mXdash=11.009305; #mass of 11B(u)\n",
+ "me=0.511;\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(E*(mX-mXdash))-(2*me); #Q value for decay(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum energy is\",round(Q,2),\"MeV.minimum energy is zero\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum energy is 0.96 MeV.minimum energy is zero\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.8, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mK=39.963999; #mass of K(u)\n",
+ "mAr=39.962384; #mass of Ar(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mK-mAr)*E; #kinetic energy of neutrino(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy of neutrino is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy of neutrino is 1.504 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.9, Page number 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mN=12.018613; #mass of N(u)\n",
+ "mC=12; #mass of C(u)\n",
+ "me=0.000549; #mass of me(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Egamma=4.43; #energy of emitted gamma ray(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mN-mC-(2*me))*E; #Q value(MeV)\n",
+ "Emax=Q-Egamma; #maximum kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(Emax,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 11.89 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter18_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter18_1.ipynb
new file mode 100755
index 00000000..b99ff137
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter18_1.ipynb
@@ -0,0 +1,366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0f6dea1f19194326599a9bca2989e912ed17e32f1ffb8d9305e16c13f8cacf2c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "18: Radioactive decay"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.1, Page number 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N0=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "f=(N0/2)/N0; #fraction after t1/2\n",
+ "f1=(N0/4)/N0; #fraction after 2 half lives\n",
+ "f2=(N0/(2**5))/N0; #fraction after 5 half lives\n",
+ "f3=(N0/(2**10))/N0; #fraction after 10 half lives\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction after 2 half lives is\",f1\n",
+ "print \"fraction after 5 half lives is\",f2\n",
+ "print \"fraction after 10 half lives is\",f3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction after 2 half lives is 0.25\n",
+ "fraction after 5 half lives is 0.03125\n",
+ "fraction after 10 half lives is 0.0009765625\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.2, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=2.7*24*60*60; #half life(s)\n",
+ "m=1*10**-6; #mass(gm)\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "M=198; #molar mass(g/mol)\n",
+ "t=8*24*60*60;\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=m*Na/M; #number of nuclei(atoms)\n",
+ "A0=lamda*N; #activity(disintegrations per sec)\n",
+ "A=A0*math.exp(-lamda*t); #activity for 8 days(decays per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"decay constant is\",round(lamda*10**6,2),\"*10**-6 per sec\"\n",
+ "print \"activity is\",round(A0/10**9,2),\"*10**9 disintegrations per sec\"\n",
+ "print \"activity for 8 days is\",round(A/10**9,2),\"*10**9 decays per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "decay constant is 2.97 *10**-6 per sec\n",
+ "activity is 9.03 *10**9 disintegrations per sec\n",
+ "activity for 8 days is 1.16 *10**9 decays per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.3, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=5570*365*24*60*60; #half life(s)\n",
+ "dNbydt=3.7*10**10*2*10**-3; #number of decays per sec\n",
+ "m=14;\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=dNbydt/lamda; #number of atoms\n",
+ "mN=m*N/Na; #mass of 2mCi(g)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 2mCi is\",round(mN*10**4,2),\"*10**-4 g\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 2mCi is 4.36 *10**-4 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.5, Page number 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=1.25*10**9; #half life(yr)\n",
+ "r=10.2; #ratio of number of atoms\n",
+ "\n",
+ "#Calculation\n",
+ "a=1+r;\n",
+ "lamda=0.693/thalf; #decay constant(per yr)\n",
+ "t=math.log(a)/lamda; #time(yr)\n",
+ "\n",
+ "#Result\n",
+ "print \"the rock is\",round(t/10**9,2),\"*10**9 yrs old\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rock is 4.36 *10**9 yrs old\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.6, Page number 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mU=232.037131; #atomic mass of U(u)\n",
+ "mHe=4.002603; #atomic mass of He(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "KE=5.32; #kinetic energy of alpha particle(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mTh=mU-mHe-(KE/E); #atomic mass of Th(u)\n",
+ "\n",
+ "#Result\n",
+ "print \"atomic mass of Th is\",round(mTh,5),\"u\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "atomic mass of Th is 228.02882 u\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.7, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=931.5; #energy(MeV)\n",
+ "mX=11.011433; #mass of 11C(u)\n",
+ "mXdash=11.009305; #mass of 11B(u)\n",
+ "me=0.511;\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(E*(mX-mXdash))-(2*me); #Q value for decay(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum energy is\",round(Q,2),\"MeV.minimum energy is zero\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum energy is 0.96 MeV.minimum energy is zero\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.8, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mK=39.963999; #mass of K(u)\n",
+ "mAr=39.962384; #mass of Ar(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mK-mAr)*E; #kinetic energy of neutrino(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy of neutrino is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy of neutrino is 1.504 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.9, Page number 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mN=12.018613; #mass of N(u)\n",
+ "mC=12; #mass of C(u)\n",
+ "me=0.000549; #mass of me(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Egamma=4.43; #energy of emitted gamma ray(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mN-mC-(2*me))*E; #Q value(MeV)\n",
+ "Emax=Q-Egamma; #maximum kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(Emax,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 11.89 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter18_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter18_2.ipynb
new file mode 100755
index 00000000..b99ff137
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter18_2.ipynb
@@ -0,0 +1,366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0f6dea1f19194326599a9bca2989e912ed17e32f1ffb8d9305e16c13f8cacf2c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "18: Radioactive decay"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.1, Page number 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N0=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "f=(N0/2)/N0; #fraction after t1/2\n",
+ "f1=(N0/4)/N0; #fraction after 2 half lives\n",
+ "f2=(N0/(2**5))/N0; #fraction after 5 half lives\n",
+ "f3=(N0/(2**10))/N0; #fraction after 10 half lives\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction after 2 half lives is\",f1\n",
+ "print \"fraction after 5 half lives is\",f2\n",
+ "print \"fraction after 10 half lives is\",f3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction after 2 half lives is 0.25\n",
+ "fraction after 5 half lives is 0.03125\n",
+ "fraction after 10 half lives is 0.0009765625\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.2, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=2.7*24*60*60; #half life(s)\n",
+ "m=1*10**-6; #mass(gm)\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "M=198; #molar mass(g/mol)\n",
+ "t=8*24*60*60;\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=m*Na/M; #number of nuclei(atoms)\n",
+ "A0=lamda*N; #activity(disintegrations per sec)\n",
+ "A=A0*math.exp(-lamda*t); #activity for 8 days(decays per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"decay constant is\",round(lamda*10**6,2),\"*10**-6 per sec\"\n",
+ "print \"activity is\",round(A0/10**9,2),\"*10**9 disintegrations per sec\"\n",
+ "print \"activity for 8 days is\",round(A/10**9,2),\"*10**9 decays per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "decay constant is 2.97 *10**-6 per sec\n",
+ "activity is 9.03 *10**9 disintegrations per sec\n",
+ "activity for 8 days is 1.16 *10**9 decays per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.3, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=5570*365*24*60*60; #half life(s)\n",
+ "dNbydt=3.7*10**10*2*10**-3; #number of decays per sec\n",
+ "m=14;\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=dNbydt/lamda; #number of atoms\n",
+ "mN=m*N/Na; #mass of 2mCi(g)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 2mCi is\",round(mN*10**4,2),\"*10**-4 g\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 2mCi is 4.36 *10**-4 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.5, Page number 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=1.25*10**9; #half life(yr)\n",
+ "r=10.2; #ratio of number of atoms\n",
+ "\n",
+ "#Calculation\n",
+ "a=1+r;\n",
+ "lamda=0.693/thalf; #decay constant(per yr)\n",
+ "t=math.log(a)/lamda; #time(yr)\n",
+ "\n",
+ "#Result\n",
+ "print \"the rock is\",round(t/10**9,2),\"*10**9 yrs old\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rock is 4.36 *10**9 yrs old\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.6, Page number 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mU=232.037131; #atomic mass of U(u)\n",
+ "mHe=4.002603; #atomic mass of He(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "KE=5.32; #kinetic energy of alpha particle(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mTh=mU-mHe-(KE/E); #atomic mass of Th(u)\n",
+ "\n",
+ "#Result\n",
+ "print \"atomic mass of Th is\",round(mTh,5),\"u\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "atomic mass of Th is 228.02882 u\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.7, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=931.5; #energy(MeV)\n",
+ "mX=11.011433; #mass of 11C(u)\n",
+ "mXdash=11.009305; #mass of 11B(u)\n",
+ "me=0.511;\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(E*(mX-mXdash))-(2*me); #Q value for decay(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum energy is\",round(Q,2),\"MeV.minimum energy is zero\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum energy is 0.96 MeV.minimum energy is zero\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.8, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mK=39.963999; #mass of K(u)\n",
+ "mAr=39.962384; #mass of Ar(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mK-mAr)*E; #kinetic energy of neutrino(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy of neutrino is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy of neutrino is 1.504 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.9, Page number 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mN=12.018613; #mass of N(u)\n",
+ "mC=12; #mass of C(u)\n",
+ "me=0.000549; #mass of me(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Egamma=4.43; #energy of emitted gamma ray(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mN-mC-(2*me))*E; #Q value(MeV)\n",
+ "Emax=Q-Egamma; #maximum kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(Emax,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 11.89 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter18_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter18_3.ipynb
new file mode 100755
index 00000000..b99ff137
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter18_3.ipynb
@@ -0,0 +1,366 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0f6dea1f19194326599a9bca2989e912ed17e32f1ffb8d9305e16c13f8cacf2c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "18: Radioactive decay"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.1, Page number 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N0=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "f=(N0/2)/N0; #fraction after t1/2\n",
+ "f1=(N0/4)/N0; #fraction after 2 half lives\n",
+ "f2=(N0/(2**5))/N0; #fraction after 5 half lives\n",
+ "f3=(N0/(2**10))/N0; #fraction after 10 half lives\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction after 2 half lives is\",f1\n",
+ "print \"fraction after 5 half lives is\",f2\n",
+ "print \"fraction after 10 half lives is\",f3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction after 2 half lives is 0.25\n",
+ "fraction after 5 half lives is 0.03125\n",
+ "fraction after 10 half lives is 0.0009765625\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.2, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=2.7*24*60*60; #half life(s)\n",
+ "m=1*10**-6; #mass(gm)\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "M=198; #molar mass(g/mol)\n",
+ "t=8*24*60*60;\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=m*Na/M; #number of nuclei(atoms)\n",
+ "A0=lamda*N; #activity(disintegrations per sec)\n",
+ "A=A0*math.exp(-lamda*t); #activity for 8 days(decays per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"decay constant is\",round(lamda*10**6,2),\"*10**-6 per sec\"\n",
+ "print \"activity is\",round(A0/10**9,2),\"*10**9 disintegrations per sec\"\n",
+ "print \"activity for 8 days is\",round(A/10**9,2),\"*10**9 decays per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "decay constant is 2.97 *10**-6 per sec\n",
+ "activity is 9.03 *10**9 disintegrations per sec\n",
+ "activity for 8 days is 1.16 *10**9 decays per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.3, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=5570*365*24*60*60; #half life(s)\n",
+ "dNbydt=3.7*10**10*2*10**-3; #number of decays per sec\n",
+ "m=14;\n",
+ "Na=6.02*10**23; #avagadro number(atoms/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=0.693/thalf; #decay constant(per sec)\n",
+ "N=dNbydt/lamda; #number of atoms\n",
+ "mN=m*N/Na; #mass of 2mCi(g)\n",
+ "\n",
+ "#Result\n",
+ "print \"mass of 2mCi is\",round(mN*10**4,2),\"*10**-4 g\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of 2mCi is 4.36 *10**-4 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.5, Page number 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "thalf=1.25*10**9; #half life(yr)\n",
+ "r=10.2; #ratio of number of atoms\n",
+ "\n",
+ "#Calculation\n",
+ "a=1+r;\n",
+ "lamda=0.693/thalf; #decay constant(per yr)\n",
+ "t=math.log(a)/lamda; #time(yr)\n",
+ "\n",
+ "#Result\n",
+ "print \"the rock is\",round(t/10**9,2),\"*10**9 yrs old\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rock is 4.36 *10**9 yrs old\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.6, Page number 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mU=232.037131; #atomic mass of U(u)\n",
+ "mHe=4.002603; #atomic mass of He(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "KE=5.32; #kinetic energy of alpha particle(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mTh=mU-mHe-(KE/E); #atomic mass of Th(u)\n",
+ "\n",
+ "#Result\n",
+ "print \"atomic mass of Th is\",round(mTh,5),\"u\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "atomic mass of Th is 228.02882 u\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.7, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=931.5; #energy(MeV)\n",
+ "mX=11.011433; #mass of 11C(u)\n",
+ "mXdash=11.009305; #mass of 11B(u)\n",
+ "me=0.511;\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(E*(mX-mXdash))-(2*me); #Q value for decay(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum energy is\",round(Q,2),\"MeV.minimum energy is zero\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum energy is 0.96 MeV.minimum energy is zero\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.8, Page number 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mK=39.963999; #mass of K(u)\n",
+ "mAr=39.962384; #mass of Ar(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mK-mAr)*E; #kinetic energy of neutrino(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy of neutrino is\",round(Q,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy of neutrino is 1.504 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 18.9, Page number 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mN=12.018613; #mass of N(u)\n",
+ "mC=12; #mass of C(u)\n",
+ "me=0.000549; #mass of me(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Egamma=4.43; #energy of emitted gamma ray(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=(mN-mC-(2*me))*E; #Q value(MeV)\n",
+ "Emax=Q-Egamma; #maximum kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(Emax,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 11.89 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter19.ipynb b/Modern_Physics_By_G.Aruldas/Chapter19.ipynb
new file mode 100755
index 00000000..c8745970
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter19.ipynb
@@ -0,0 +1,291 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9326f276d5dc99ce97d41c9ca0d5924dbd68f522091536657f41d8cfe038dc31"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "19: Nuclear reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.1, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H=2.014102; #atomic mass of 2H(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "m63Cu=62.929599; #mass of 63Cu(u)\n",
+ "m64Zn=63.929144; #mass of m64Zn(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Kx=10; #energy of deutron(MeV)\n",
+ "Ky=15; #energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m2H+m63Cu-mn-m64Zn); #Q-value(MeV)\n",
+ "KY=Q+Kx-Ky; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,3),\"MeV\"\n",
+ "print \"kinetic energy is\",round(KY,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is 5.488 MeV\n",
+ "kinetic energy is 0.488 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.2, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m19F=18.998404; #atomic mass of 19F(u)\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "m19O=19.003577; #mass of 19O(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m19F+mn-mH-m19O); #Q-value(MeV)\n",
+ "Kxmin=-Q*(1+(mn/m19F)); #threshold energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,4),\"MeV\"\n",
+ "print \"threshold energy is\",round(Kxmin,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -4.0362 MeV\n",
+ "threshold energy is 4.25 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.3, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "mu=235.043924; #mass of 235U(u)\n",
+ "mBa=140.91440; #mass of 141Ba(u)\n",
+ "mKr=91.92630; #mass of Kr(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mr=mn+mu; #mass of reactants(u)\n",
+ "mp=mBa+mKr+(3*mn); #mass of products(u)\n",
+ "md=mr-mp; #mass difference(u)\n",
+ "E=md*E; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released is 173.2 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.4, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=200*10**6; #energy released(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "P=300*10**6; #power(W)\n",
+ "t=1; #time(s)\n",
+ "\n",
+ "#Calculation\n",
+ "n=P*t/(E*e); #number of fissions per second\n",
+ "\n",
+ "#Result\n",
+ "print \"number of fissions per second is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of fissions per second is 9.375e+18\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.5, Page number 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H1=2*1.66*10**-27; #mass of proton(kg)\n",
+ "E=931.5; #energy(MeV)\n",
+ "m1=2.014102;\n",
+ "m2=3.01609;\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "\n",
+ "#Calculation\n",
+ "E=E*((2*m1)-m2-mH); #energy released(MeV)\n",
+ "n=0.001/m2H1; #number of nuclei\n",
+ "Eg=n*E/2; #energy released per gm(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released per gm is\",round(Eg/10**23,2),\"*10**23 MeV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released per gm is 6.02 *10**23 MeV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.6, Page number 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.99*10**9; #value of k(Nm**2/C**2)\n",
+ "rd=1.5*10**-15; #radius of deuterium nucleus(m)\n",
+ "rt=1.7*10**-15; #radius of tritium nucleus(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "KE=0.225; #kinetic energy for 1 particle(MeV)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "\n",
+ "#Calculation\n",
+ "K_E=k*e**2/(e*(rd+rt)); #kinetic energy of 2 particles(MeV)\n",
+ "T=2*KE*e*10**6/(3*k); #temperature(K)\n",
+ "\n",
+ "#Result\n",
+ "print \"temperature is\",round(T/10**9),\"*10**9 K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature is 2.0 *10**9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter19_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter19_1.ipynb
new file mode 100755
index 00000000..c8745970
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter19_1.ipynb
@@ -0,0 +1,291 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9326f276d5dc99ce97d41c9ca0d5924dbd68f522091536657f41d8cfe038dc31"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "19: Nuclear reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.1, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H=2.014102; #atomic mass of 2H(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "m63Cu=62.929599; #mass of 63Cu(u)\n",
+ "m64Zn=63.929144; #mass of m64Zn(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Kx=10; #energy of deutron(MeV)\n",
+ "Ky=15; #energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m2H+m63Cu-mn-m64Zn); #Q-value(MeV)\n",
+ "KY=Q+Kx-Ky; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,3),\"MeV\"\n",
+ "print \"kinetic energy is\",round(KY,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is 5.488 MeV\n",
+ "kinetic energy is 0.488 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.2, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m19F=18.998404; #atomic mass of 19F(u)\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "m19O=19.003577; #mass of 19O(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m19F+mn-mH-m19O); #Q-value(MeV)\n",
+ "Kxmin=-Q*(1+(mn/m19F)); #threshold energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,4),\"MeV\"\n",
+ "print \"threshold energy is\",round(Kxmin,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -4.0362 MeV\n",
+ "threshold energy is 4.25 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.3, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "mu=235.043924; #mass of 235U(u)\n",
+ "mBa=140.91440; #mass of 141Ba(u)\n",
+ "mKr=91.92630; #mass of Kr(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mr=mn+mu; #mass of reactants(u)\n",
+ "mp=mBa+mKr+(3*mn); #mass of products(u)\n",
+ "md=mr-mp; #mass difference(u)\n",
+ "E=md*E; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released is 173.2 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.4, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=200*10**6; #energy released(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "P=300*10**6; #power(W)\n",
+ "t=1; #time(s)\n",
+ "\n",
+ "#Calculation\n",
+ "n=P*t/(E*e); #number of fissions per second\n",
+ "\n",
+ "#Result\n",
+ "print \"number of fissions per second is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of fissions per second is 9.375e+18\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.5, Page number 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H1=2*1.66*10**-27; #mass of proton(kg)\n",
+ "E=931.5; #energy(MeV)\n",
+ "m1=2.014102;\n",
+ "m2=3.01609;\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "\n",
+ "#Calculation\n",
+ "E=E*((2*m1)-m2-mH); #energy released(MeV)\n",
+ "n=0.001/m2H1; #number of nuclei\n",
+ "Eg=n*E/2; #energy released per gm(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released per gm is\",round(Eg/10**23,2),\"*10**23 MeV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released per gm is 6.02 *10**23 MeV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.6, Page number 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.99*10**9; #value of k(Nm**2/C**2)\n",
+ "rd=1.5*10**-15; #radius of deuterium nucleus(m)\n",
+ "rt=1.7*10**-15; #radius of tritium nucleus(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "KE=0.225; #kinetic energy for 1 particle(MeV)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "\n",
+ "#Calculation\n",
+ "K_E=k*e**2/(e*(rd+rt)); #kinetic energy of 2 particles(MeV)\n",
+ "T=2*KE*e*10**6/(3*k); #temperature(K)\n",
+ "\n",
+ "#Result\n",
+ "print \"temperature is\",round(T/10**9),\"*10**9 K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature is 2.0 *10**9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter19_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter19_2.ipynb
new file mode 100755
index 00000000..c8745970
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter19_2.ipynb
@@ -0,0 +1,291 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9326f276d5dc99ce97d41c9ca0d5924dbd68f522091536657f41d8cfe038dc31"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "19: Nuclear reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.1, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H=2.014102; #atomic mass of 2H(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "m63Cu=62.929599; #mass of 63Cu(u)\n",
+ "m64Zn=63.929144; #mass of m64Zn(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Kx=10; #energy of deutron(MeV)\n",
+ "Ky=15; #energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m2H+m63Cu-mn-m64Zn); #Q-value(MeV)\n",
+ "KY=Q+Kx-Ky; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,3),\"MeV\"\n",
+ "print \"kinetic energy is\",round(KY,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is 5.488 MeV\n",
+ "kinetic energy is 0.488 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.2, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m19F=18.998404; #atomic mass of 19F(u)\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "m19O=19.003577; #mass of 19O(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m19F+mn-mH-m19O); #Q-value(MeV)\n",
+ "Kxmin=-Q*(1+(mn/m19F)); #threshold energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,4),\"MeV\"\n",
+ "print \"threshold energy is\",round(Kxmin,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -4.0362 MeV\n",
+ "threshold energy is 4.25 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.3, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "mu=235.043924; #mass of 235U(u)\n",
+ "mBa=140.91440; #mass of 141Ba(u)\n",
+ "mKr=91.92630; #mass of Kr(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mr=mn+mu; #mass of reactants(u)\n",
+ "mp=mBa+mKr+(3*mn); #mass of products(u)\n",
+ "md=mr-mp; #mass difference(u)\n",
+ "E=md*E; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released is 173.2 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.4, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=200*10**6; #energy released(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "P=300*10**6; #power(W)\n",
+ "t=1; #time(s)\n",
+ "\n",
+ "#Calculation\n",
+ "n=P*t/(E*e); #number of fissions per second\n",
+ "\n",
+ "#Result\n",
+ "print \"number of fissions per second is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of fissions per second is 9.375e+18\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.5, Page number 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H1=2*1.66*10**-27; #mass of proton(kg)\n",
+ "E=931.5; #energy(MeV)\n",
+ "m1=2.014102;\n",
+ "m2=3.01609;\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "\n",
+ "#Calculation\n",
+ "E=E*((2*m1)-m2-mH); #energy released(MeV)\n",
+ "n=0.001/m2H1; #number of nuclei\n",
+ "Eg=n*E/2; #energy released per gm(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released per gm is\",round(Eg/10**23,2),\"*10**23 MeV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released per gm is 6.02 *10**23 MeV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.6, Page number 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.99*10**9; #value of k(Nm**2/C**2)\n",
+ "rd=1.5*10**-15; #radius of deuterium nucleus(m)\n",
+ "rt=1.7*10**-15; #radius of tritium nucleus(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "KE=0.225; #kinetic energy for 1 particle(MeV)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "\n",
+ "#Calculation\n",
+ "K_E=k*e**2/(e*(rd+rt)); #kinetic energy of 2 particles(MeV)\n",
+ "T=2*KE*e*10**6/(3*k); #temperature(K)\n",
+ "\n",
+ "#Result\n",
+ "print \"temperature is\",round(T/10**9),\"*10**9 K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature is 2.0 *10**9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter19_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter19_3.ipynb
new file mode 100755
index 00000000..c8745970
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter19_3.ipynb
@@ -0,0 +1,291 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9326f276d5dc99ce97d41c9ca0d5924dbd68f522091536657f41d8cfe038dc31"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "19: Nuclear reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.1, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H=2.014102; #atomic mass of 2H(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "m63Cu=62.929599; #mass of 63Cu(u)\n",
+ "m64Zn=63.929144; #mass of m64Zn(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "Kx=10; #energy of deutron(MeV)\n",
+ "Ky=15; #energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m2H+m63Cu-mn-m64Zn); #Q-value(MeV)\n",
+ "KY=Q+Kx-Ky; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,3),\"MeV\"\n",
+ "print \"kinetic energy is\",round(KY,3),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is 5.488 MeV\n",
+ "kinetic energy is 0.488 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.2, Page number 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m19F=18.998404; #atomic mass of 19F(u)\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "m19O=19.003577; #mass of 19O(u)\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q=E*(m19F+mn-mH-m19O); #Q-value(MeV)\n",
+ "Kxmin=-Q*(1+(mn/m19F)); #threshold energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q,4),\"MeV\"\n",
+ "print \"threshold energy is\",round(Kxmin,2),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -4.0362 MeV\n",
+ "threshold energy is 4.25 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.3, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mn=1.008665; #mass of n(u)\n",
+ "mu=235.043924; #mass of 235U(u)\n",
+ "mBa=140.91440; #mass of 141Ba(u)\n",
+ "mKr=91.92630; #mass of Kr(u)\n",
+ "E=931.5; #energy(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "mr=mn+mu; #mass of reactants(u)\n",
+ "mp=mBa+mKr+(3*mn); #mass of products(u)\n",
+ "md=mr-mp; #mass difference(u)\n",
+ "E=md*E; #energy released(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released is\",round(E,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released is 173.2 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.4, Page number 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=200*10**6; #energy released(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "P=300*10**6; #power(W)\n",
+ "t=1; #time(s)\n",
+ "\n",
+ "#Calculation\n",
+ "n=P*t/(E*e); #number of fissions per second\n",
+ "\n",
+ "#Result\n",
+ "print \"number of fissions per second is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of fissions per second is 9.375e+18\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.5, Page number 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m2H1=2*1.66*10**-27; #mass of proton(kg)\n",
+ "E=931.5; #energy(MeV)\n",
+ "m1=2.014102;\n",
+ "m2=3.01609;\n",
+ "mH=1.007825; #mass of H(u)\n",
+ "\n",
+ "#Calculation\n",
+ "E=E*((2*m1)-m2-mH); #energy released(MeV)\n",
+ "n=0.001/m2H1; #number of nuclei\n",
+ "Eg=n*E/2; #energy released per gm(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy released per gm is\",round(Eg/10**23,2),\"*10**23 MeV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy released per gm is 6.02 *10**23 MeV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 19.6, Page number 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.99*10**9; #value of k(Nm**2/C**2)\n",
+ "rd=1.5*10**-15; #radius of deuterium nucleus(m)\n",
+ "rt=1.7*10**-15; #radius of tritium nucleus(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "KE=0.225; #kinetic energy for 1 particle(MeV)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "\n",
+ "#Calculation\n",
+ "K_E=k*e**2/(e*(rd+rt)); #kinetic energy of 2 particles(MeV)\n",
+ "T=2*KE*e*10**6/(3*k); #temperature(K)\n",
+ "\n",
+ "#Result\n",
+ "print \"temperature is\",round(T/10**9),\"*10**9 K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature is 2.0 *10**9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter1_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter1_1.ipynb
new file mode 100755
index 00000000..483d55f3
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter1_1.ipynb
@@ -0,0 +1,311 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:467ef5c6562d2c93b60e422b9b9a8c5a34323da84f6c33e87f513c3c578db36d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: The special theory of relativity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "udash=0.9*c; #speed of 2nd rocket\n",
+ "v=0.6*c; #speed of 1st rocket\n",
+ "\n",
+ "#Calculation\n",
+ "u1=(udash+v)/(1+(udash*v/(c**2))); #speed of 2nd rocket in same direction\n",
+ "u2=(-udash+v)/(1-(udash*v/(c**2))); #speed of 2nd rocket in opposite direction\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of 2nd rocket in same direction is\",round(u1,3),\"*c\"\n",
+ "print \"speed of 2nd rocket in opposite direction is\",round(u2,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of 2nd rocket in same direction is 0.974 *c\n",
+ "speed of 2nd rocket in opposite direction is -0.652 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given L0-L/L0=0.01.so L=0.99*L0\n",
+ "LbyL0=0.99;\n",
+ "c=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "v2=(c**2)*(1-(LbyL0)**2);\n",
+ "v=math.sqrt(v2); #speed\n",
+ "\n",
+ "#Result\n",
+ "print \"speed is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed is 0.141 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_tow=2.6*10**-8; #mean lifetime at rest(s)\n",
+ "d=20; #distance(m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "#delta_t=d/v\n",
+ "v2=(c**2)/(1+(delta_tow*c/d)**2);\n",
+ "v=math.sqrt(v2); #speed of unstable particle(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of unstable particle is\",round(v/10**8,1),\"*10**8 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of unstable particle is 2.8 *10**8 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_t=5*10**-6; #mean lifetime(s)\n",
+ "c=1; #assume\n",
+ "v=0.9*c; #speed of beam\n",
+ "\n",
+ "#Calculation\n",
+ "delta_tow=delta_t*math.sqrt(1-(v/c)**2); #proper lifetime of particles(s)\n",
+ "\n",
+ "#Result\n",
+ "print \"proper lifetime of particles is\",round(delta_tow*10**6,2),\"*10**-6 s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "proper lifetime of particles is 2.18 *10**-6 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "m0bym=100/120; #ratio of masses\n",
+ "\n",
+ "#Calculation\n",
+ "v=c*math.sqrt(1-(m0bym**2)); #speed of body\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of body is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of body is 0.553 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "deltaE=4*10**26; #energy of sun(J/s)\n",
+ "\n",
+ "#Calculation\n",
+ "deltam=deltaE/c**2; #change in mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"change in mass is\",round(deltam/10**9,2),\"*10**9 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in mass is 4.44 *10**9 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "T=10; #kinetic energy(MeV)\n",
+ "m0c2=0.512; #rest energy of electron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=T+m0c2; #total energy(MeV)\n",
+ "p=math.sqrt((E**2)-(m0c2**2))/c; #momentum of electron(MeV/c)\n",
+ "v=c*math.sqrt(1-(m0c2/E)**2); #velocity of electron(c)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum of electron is\",round(p,1),\"MeV/c\"\n",
+ "print \"velocity of electron is\",round(v,4),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum of electron is 10.5 MeV/c\n",
+ "velocity of electron is 0.9988 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter1_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter1_2.ipynb
new file mode 100755
index 00000000..483d55f3
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter1_2.ipynb
@@ -0,0 +1,311 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:467ef5c6562d2c93b60e422b9b9a8c5a34323da84f6c33e87f513c3c578db36d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: The special theory of relativity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "udash=0.9*c; #speed of 2nd rocket\n",
+ "v=0.6*c; #speed of 1st rocket\n",
+ "\n",
+ "#Calculation\n",
+ "u1=(udash+v)/(1+(udash*v/(c**2))); #speed of 2nd rocket in same direction\n",
+ "u2=(-udash+v)/(1-(udash*v/(c**2))); #speed of 2nd rocket in opposite direction\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of 2nd rocket in same direction is\",round(u1,3),\"*c\"\n",
+ "print \"speed of 2nd rocket in opposite direction is\",round(u2,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of 2nd rocket in same direction is 0.974 *c\n",
+ "speed of 2nd rocket in opposite direction is -0.652 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given L0-L/L0=0.01.so L=0.99*L0\n",
+ "LbyL0=0.99;\n",
+ "c=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "v2=(c**2)*(1-(LbyL0)**2);\n",
+ "v=math.sqrt(v2); #speed\n",
+ "\n",
+ "#Result\n",
+ "print \"speed is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed is 0.141 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_tow=2.6*10**-8; #mean lifetime at rest(s)\n",
+ "d=20; #distance(m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "#delta_t=d/v\n",
+ "v2=(c**2)/(1+(delta_tow*c/d)**2);\n",
+ "v=math.sqrt(v2); #speed of unstable particle(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of unstable particle is\",round(v/10**8,1),\"*10**8 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of unstable particle is 2.8 *10**8 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_t=5*10**-6; #mean lifetime(s)\n",
+ "c=1; #assume\n",
+ "v=0.9*c; #speed of beam\n",
+ "\n",
+ "#Calculation\n",
+ "delta_tow=delta_t*math.sqrt(1-(v/c)**2); #proper lifetime of particles(s)\n",
+ "\n",
+ "#Result\n",
+ "print \"proper lifetime of particles is\",round(delta_tow*10**6,2),\"*10**-6 s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "proper lifetime of particles is 2.18 *10**-6 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "m0bym=100/120; #ratio of masses\n",
+ "\n",
+ "#Calculation\n",
+ "v=c*math.sqrt(1-(m0bym**2)); #speed of body\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of body is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of body is 0.553 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "deltaE=4*10**26; #energy of sun(J/s)\n",
+ "\n",
+ "#Calculation\n",
+ "deltam=deltaE/c**2; #change in mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"change in mass is\",round(deltam/10**9,2),\"*10**9 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in mass is 4.44 *10**9 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "T=10; #kinetic energy(MeV)\n",
+ "m0c2=0.512; #rest energy of electron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=T+m0c2; #total energy(MeV)\n",
+ "p=math.sqrt((E**2)-(m0c2**2))/c; #momentum of electron(MeV/c)\n",
+ "v=c*math.sqrt(1-(m0c2/E)**2); #velocity of electron(c)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum of electron is\",round(p,1),\"MeV/c\"\n",
+ "print \"velocity of electron is\",round(v,4),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum of electron is 10.5 MeV/c\n",
+ "velocity of electron is 0.9988 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter1_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter1_3.ipynb
new file mode 100755
index 00000000..483d55f3
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter1_3.ipynb
@@ -0,0 +1,311 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:467ef5c6562d2c93b60e422b9b9a8c5a34323da84f6c33e87f513c3c578db36d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: The special theory of relativity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "udash=0.9*c; #speed of 2nd rocket\n",
+ "v=0.6*c; #speed of 1st rocket\n",
+ "\n",
+ "#Calculation\n",
+ "u1=(udash+v)/(1+(udash*v/(c**2))); #speed of 2nd rocket in same direction\n",
+ "u2=(-udash+v)/(1-(udash*v/(c**2))); #speed of 2nd rocket in opposite direction\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of 2nd rocket in same direction is\",round(u1,3),\"*c\"\n",
+ "print \"speed of 2nd rocket in opposite direction is\",round(u2,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of 2nd rocket in same direction is 0.974 *c\n",
+ "speed of 2nd rocket in opposite direction is -0.652 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#given L0-L/L0=0.01.so L=0.99*L0\n",
+ "LbyL0=0.99;\n",
+ "c=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "v2=(c**2)*(1-(LbyL0)**2);\n",
+ "v=math.sqrt(v2); #speed\n",
+ "\n",
+ "#Result\n",
+ "print \"speed is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed is 0.141 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_tow=2.6*10**-8; #mean lifetime at rest(s)\n",
+ "d=20; #distance(m)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "\n",
+ "#Calculation\n",
+ "#delta_t=d/v\n",
+ "v2=(c**2)/(1+(delta_tow*c/d)**2);\n",
+ "v=math.sqrt(v2); #speed of unstable particle(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of unstable particle is\",round(v/10**8,1),\"*10**8 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of unstable particle is 2.8 *10**8 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_t=5*10**-6; #mean lifetime(s)\n",
+ "c=1; #assume\n",
+ "v=0.9*c; #speed of beam\n",
+ "\n",
+ "#Calculation\n",
+ "delta_tow=delta_t*math.sqrt(1-(v/c)**2); #proper lifetime of particles(s)\n",
+ "\n",
+ "#Result\n",
+ "print \"proper lifetime of particles is\",round(delta_tow*10**6,2),\"*10**-6 s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "proper lifetime of particles is 2.18 *10**-6 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "m0bym=100/120; #ratio of masses\n",
+ "\n",
+ "#Calculation\n",
+ "v=c*math.sqrt(1-(m0bym**2)); #speed of body\n",
+ "\n",
+ "#Result\n",
+ "print \"speed of body is\",round(v,3),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of body is 0.553 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "deltaE=4*10**26; #energy of sun(J/s)\n",
+ "\n",
+ "#Calculation\n",
+ "deltam=deltaE/c**2; #change in mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"change in mass is\",round(deltam/10**9,2),\"*10**9 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in mass is 4.44 *10**9 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=1; #assume\n",
+ "T=10; #kinetic energy(MeV)\n",
+ "m0c2=0.512; #rest energy of electron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=T+m0c2; #total energy(MeV)\n",
+ "p=math.sqrt((E**2)-(m0c2**2))/c; #momentum of electron(MeV/c)\n",
+ "v=c*math.sqrt(1-(m0c2/E)**2); #velocity of electron(c)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum of electron is\",round(p,1),\"MeV/c\"\n",
+ "print \"velocity of electron is\",round(v,4),\"*c\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum of electron is 10.5 MeV/c\n",
+ "velocity of electron is 0.9988 *c\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter2.ipynb
new file mode 100755
index 00000000..59d9ea57
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter2.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f048d58df41f2578c151ef59f03652004b6758b9e666d170255be2c66115bfe2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Particle nature of radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=100*10**6; #frequency(Hz)\n",
+ "P=100*10**3; #power(watt)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*new; #quantum of energy(J)\n",
+ "n=P/E; #number of quanta emitted(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of quanta emitted is\",round(n/10**29,2),\"*10**29 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of quanta emitted is 15.09 *10**29 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=400*10**-9; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=2.28; #work function(eV)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "KEmax=E-w0; #maximum kinetic energy(eV)\n",
+ "v2=2*KEmax*e/m; \n",
+ "v=math.sqrt(v2); #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(KEmax,3),\"eV\"\n",
+ "print \"velocity of photoelectrons is\",round(v/10**5,2),\"*10**5 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 0.826 eV\n",
+ "velocity of photoelectrons is 5.39 *10**5 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=2000*10**-10; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=4.2; #work function(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda0=h*c/(w0*e); #cut off wavelength(m)\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "sp=E-w0; #stopping potential(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cut off wavelength is\",int(lamda0*10**10),\"angstrom\"\n",
+ "print \"stopping potential is\",round(sp,2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cut off wavelength is 2958 angstrom\n",
+ "stopping potential is 2.01 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.2*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "p=h/lamda; #momentum(kg m/s)\n",
+ "m=p/c; #effective mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum is\",round(p*10**24,1),\"*10**-24 kg m/s\"\n",
+ "print \"effective mass is\",round(m*10**32,1),\"*10**-32 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum is 3.3 *10**-24 kg m/s\n",
+ "effective mass is 1.1 *10**-32 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.5, Page number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.15; #wavelength(nm)\n",
+ "m0=9.1*10**-31; #mass of electron(kg)\n",
+ "theta1=0; #scattering angle1(degrees)\n",
+ "theta2=90; #scattering angle2(degrees)\n",
+ "theta3=180; #scattering angle3(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; #scattering angle1(radian)\n",
+ "theta2=theta2*math.pi/180; #scattering angle2(radian)\n",
+ "theta3=theta3*math.pi/180; #scattering angle3(radian)\n",
+ "lamda_dash1=lamda+(h*(1-math.cos(theta1))/(m0*c)); #wavelength at 0(nm)\n",
+ "lamda_dash2=lamda+(10**9*h*(1-math.cos(theta2))/(m0*c)); #wavelength at 90(nm)\n",
+ "lamda_dash3=lamda+(10**9*h*(1-math.cos(theta3))/(m0*c)); #wavelength at 180(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength at 0 degrees is\",lamda_dash1,\"nm\"\n",
+ "print \"wavelength at 90 degrees is\",round(lamda_dash2,3),\"nm\"\n",
+ "print \"wavelength at 180 degrees is\",round(lamda_dash3,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength at 0 degrees is 0.15 nm\n",
+ "wavelength at 90 degrees is 0.152 nm\n",
+ "wavelength at 180 degrees is 0.155 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.6, Page number 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=2*0.511*10**6; #rest energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h*c/(E*e); #wavelength of photon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**12,2),\"*10**-12 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 1.22 *10**-12 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter20.ipynb b/Modern_Physics_By_G.Aruldas/Chapter20.ipynb
new file mode 100755
index 00000000..6f977e4e
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter20.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eeb9c551735bd0ab45890fc906baf874437271bf852063fccc60d822b2aaeaef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "20: Nuclear radiation detectors and particle accelerators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.1, Page number 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "E=30*10**6; #energy(eV)\n",
+ "r=1.2*10**-15; #radius of nucleon(m)\n",
+ "\n",
+ "#Calculation\n",
+ "lamdaP=h/math.sqrt(2*m*E*e); #wavelength of proton(m)\n",
+ "lamdaAlpha=h/math.sqrt(2*4*m*E*e); #wavelength of alpha particle(m)\n",
+ "a=2*r; #size of nucleon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of proton is\",round(lamdaP*10**15,1),\"*10**-15 m\"\n",
+ "print \"wavelength of alpha particle is\",round(lamdaAlpha*10**15,1),\"*10**-15 m\"\n",
+ "print \"size of nucleon is\",a,\"m\"\n",
+ "print \"alpha particle is better\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of proton is 5.2 *10**-15 m\n",
+ "wavelength of alpha particle is 2.6 *10**-15 m\n",
+ "size of nucleon is 2.4e-15 m\n",
+ "alpha particle is better\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.2, Page number 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=2; #magnetic field(T)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "R=0.25; #radius(m)\n",
+ "a=6.24*10**12; #conversion factor from J to MeV\n",
+ "\n",
+ "#Calculation\n",
+ "f=q*B/(2*math.pi*m); #frequency needed(MHz)\n",
+ "KE=q**2*B**2*R**2/(2*m); #kinetic energy(J)\n",
+ "KE=KE*a; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequency needed is\",round(f*10**-6,1),\"MHz\"\n",
+ "print \"kinetic energy is\",round(KE),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency needed is 30.5 MHz\n",
+ "kinetic energy is 12.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter20_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter20_1.ipynb
new file mode 100755
index 00000000..6f977e4e
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter20_1.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eeb9c551735bd0ab45890fc906baf874437271bf852063fccc60d822b2aaeaef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "20: Nuclear radiation detectors and particle accelerators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.1, Page number 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "E=30*10**6; #energy(eV)\n",
+ "r=1.2*10**-15; #radius of nucleon(m)\n",
+ "\n",
+ "#Calculation\n",
+ "lamdaP=h/math.sqrt(2*m*E*e); #wavelength of proton(m)\n",
+ "lamdaAlpha=h/math.sqrt(2*4*m*E*e); #wavelength of alpha particle(m)\n",
+ "a=2*r; #size of nucleon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of proton is\",round(lamdaP*10**15,1),\"*10**-15 m\"\n",
+ "print \"wavelength of alpha particle is\",round(lamdaAlpha*10**15,1),\"*10**-15 m\"\n",
+ "print \"size of nucleon is\",a,\"m\"\n",
+ "print \"alpha particle is better\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of proton is 5.2 *10**-15 m\n",
+ "wavelength of alpha particle is 2.6 *10**-15 m\n",
+ "size of nucleon is 2.4e-15 m\n",
+ "alpha particle is better\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.2, Page number 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=2; #magnetic field(T)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "R=0.25; #radius(m)\n",
+ "a=6.24*10**12; #conversion factor from J to MeV\n",
+ "\n",
+ "#Calculation\n",
+ "f=q*B/(2*math.pi*m); #frequency needed(MHz)\n",
+ "KE=q**2*B**2*R**2/(2*m); #kinetic energy(J)\n",
+ "KE=KE*a; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequency needed is\",round(f*10**-6,1),\"MHz\"\n",
+ "print \"kinetic energy is\",round(KE),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency needed is 30.5 MHz\n",
+ "kinetic energy is 12.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter20_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter20_2.ipynb
new file mode 100755
index 00000000..6f977e4e
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter20_2.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eeb9c551735bd0ab45890fc906baf874437271bf852063fccc60d822b2aaeaef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "20: Nuclear radiation detectors and particle accelerators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.1, Page number 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "E=30*10**6; #energy(eV)\n",
+ "r=1.2*10**-15; #radius of nucleon(m)\n",
+ "\n",
+ "#Calculation\n",
+ "lamdaP=h/math.sqrt(2*m*E*e); #wavelength of proton(m)\n",
+ "lamdaAlpha=h/math.sqrt(2*4*m*E*e); #wavelength of alpha particle(m)\n",
+ "a=2*r; #size of nucleon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of proton is\",round(lamdaP*10**15,1),\"*10**-15 m\"\n",
+ "print \"wavelength of alpha particle is\",round(lamdaAlpha*10**15,1),\"*10**-15 m\"\n",
+ "print \"size of nucleon is\",a,\"m\"\n",
+ "print \"alpha particle is better\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of proton is 5.2 *10**-15 m\n",
+ "wavelength of alpha particle is 2.6 *10**-15 m\n",
+ "size of nucleon is 2.4e-15 m\n",
+ "alpha particle is better\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.2, Page number 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=2; #magnetic field(T)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "R=0.25; #radius(m)\n",
+ "a=6.24*10**12; #conversion factor from J to MeV\n",
+ "\n",
+ "#Calculation\n",
+ "f=q*B/(2*math.pi*m); #frequency needed(MHz)\n",
+ "KE=q**2*B**2*R**2/(2*m); #kinetic energy(J)\n",
+ "KE=KE*a; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequency needed is\",round(f*10**-6,1),\"MHz\"\n",
+ "print \"kinetic energy is\",round(KE),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency needed is 30.5 MHz\n",
+ "kinetic energy is 12.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter20_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter20_3.ipynb
new file mode 100755
index 00000000..6f977e4e
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter20_3.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eeb9c551735bd0ab45890fc906baf874437271bf852063fccc60d822b2aaeaef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "20: Nuclear radiation detectors and particle accelerators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.1, Page number 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "E=30*10**6; #energy(eV)\n",
+ "r=1.2*10**-15; #radius of nucleon(m)\n",
+ "\n",
+ "#Calculation\n",
+ "lamdaP=h/math.sqrt(2*m*E*e); #wavelength of proton(m)\n",
+ "lamdaAlpha=h/math.sqrt(2*4*m*E*e); #wavelength of alpha particle(m)\n",
+ "a=2*r; #size of nucleon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of proton is\",round(lamdaP*10**15,1),\"*10**-15 m\"\n",
+ "print \"wavelength of alpha particle is\",round(lamdaAlpha*10**15,1),\"*10**-15 m\"\n",
+ "print \"size of nucleon is\",a,\"m\"\n",
+ "print \"alpha particle is better\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of proton is 5.2 *10**-15 m\n",
+ "wavelength of alpha particle is 2.6 *10**-15 m\n",
+ "size of nucleon is 2.4e-15 m\n",
+ "alpha particle is better\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 20.2, Page number 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from J to eV\n",
+ "B=2; #magnetic field(T)\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "R=0.25; #radius(m)\n",
+ "a=6.24*10**12; #conversion factor from J to MeV\n",
+ "\n",
+ "#Calculation\n",
+ "f=q*B/(2*math.pi*m); #frequency needed(MHz)\n",
+ "KE=q**2*B**2*R**2/(2*m); #kinetic energy(J)\n",
+ "KE=KE*a; #kinetic energy(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"frequency needed is\",round(f*10**-6,1),\"MHz\"\n",
+ "print \"kinetic energy is\",round(KE),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency needed is 30.5 MHz\n",
+ "kinetic energy is 12.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter21.ipynb b/Modern_Physics_By_G.Aruldas/Chapter21.ipynb
new file mode 100755
index 00000000..4e63e3b7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter21.ipynb
@@ -0,0 +1,106 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:42eb4bd0fae1331d52fd855bad43219acea712dc31c5270f1f64fa698ba366ad"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "21: Elementary particles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.1, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpi=140; #mass of pi-meson\n",
+ "mp=938.3; #mass of proton\n",
+ "mk=498; #mass of k\n",
+ "m=1116; \n",
+ "\n",
+ "#Calculation\n",
+ "Q=mpi+mp-mk-m; #Q-value(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -536.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.2, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpc2=938.3; #energy of proton(MeV)\n",
+ "Epic2=139.6; #energy of pi-meson(MeV)\n",
+ "mnc2=939.6; #energy of neutron(MeV)\n",
+ "KE=0.6; #kinetic energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Epi=mpc2+Epic2-mnc2-KE; #energy conservation(MeV)\n",
+ "mpic2=math.sqrt((Epi**2)-((mnc2+KE)**2)+(mnc2**2)); #pi0 mass(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"pi0 mass is\",round(mpic2,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pi0 mass is 133.5 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter21_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter21_1.ipynb
new file mode 100755
index 00000000..4e63e3b7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter21_1.ipynb
@@ -0,0 +1,106 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:42eb4bd0fae1331d52fd855bad43219acea712dc31c5270f1f64fa698ba366ad"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "21: Elementary particles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.1, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpi=140; #mass of pi-meson\n",
+ "mp=938.3; #mass of proton\n",
+ "mk=498; #mass of k\n",
+ "m=1116; \n",
+ "\n",
+ "#Calculation\n",
+ "Q=mpi+mp-mk-m; #Q-value(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -536.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.2, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpc2=938.3; #energy of proton(MeV)\n",
+ "Epic2=139.6; #energy of pi-meson(MeV)\n",
+ "mnc2=939.6; #energy of neutron(MeV)\n",
+ "KE=0.6; #kinetic energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Epi=mpc2+Epic2-mnc2-KE; #energy conservation(MeV)\n",
+ "mpic2=math.sqrt((Epi**2)-((mnc2+KE)**2)+(mnc2**2)); #pi0 mass(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"pi0 mass is\",round(mpic2,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pi0 mass is 133.5 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter21_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter21_2.ipynb
new file mode 100755
index 00000000..4e63e3b7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter21_2.ipynb
@@ -0,0 +1,106 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:42eb4bd0fae1331d52fd855bad43219acea712dc31c5270f1f64fa698ba366ad"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "21: Elementary particles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.1, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpi=140; #mass of pi-meson\n",
+ "mp=938.3; #mass of proton\n",
+ "mk=498; #mass of k\n",
+ "m=1116; \n",
+ "\n",
+ "#Calculation\n",
+ "Q=mpi+mp-mk-m; #Q-value(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -536.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.2, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpc2=938.3; #energy of proton(MeV)\n",
+ "Epic2=139.6; #energy of pi-meson(MeV)\n",
+ "mnc2=939.6; #energy of neutron(MeV)\n",
+ "KE=0.6; #kinetic energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Epi=mpc2+Epic2-mnc2-KE; #energy conservation(MeV)\n",
+ "mpic2=math.sqrt((Epi**2)-((mnc2+KE)**2)+(mnc2**2)); #pi0 mass(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"pi0 mass is\",round(mpic2,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pi0 mass is 133.5 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter21_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter21_3.ipynb
new file mode 100755
index 00000000..4e63e3b7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter21_3.ipynb
@@ -0,0 +1,106 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:42eb4bd0fae1331d52fd855bad43219acea712dc31c5270f1f64fa698ba366ad"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "21: Elementary particles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.1, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpi=140; #mass of pi-meson\n",
+ "mp=938.3; #mass of proton\n",
+ "mk=498; #mass of k\n",
+ "m=1116; \n",
+ "\n",
+ "#Calculation\n",
+ "Q=mpi+mp-mk-m; #Q-value(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"Q-value is\",round(Q),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Q-value is -536.0 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 21.2, Page number 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mpc2=938.3; #energy of proton(MeV)\n",
+ "Epic2=139.6; #energy of pi-meson(MeV)\n",
+ "mnc2=939.6; #energy of neutron(MeV)\n",
+ "KE=0.6; #kinetic energy of neutron(MeV)\n",
+ "\n",
+ "#Calculation\n",
+ "Epi=mpc2+Epic2-mnc2-KE; #energy conservation(MeV)\n",
+ "mpic2=math.sqrt((Epi**2)-((mnc2+KE)**2)+(mnc2**2)); #pi0 mass(MeV)\n",
+ "\n",
+ "#Result\n",
+ "print \"pi0 mass is\",round(mpic2,1),\"MeV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pi0 mass is 133.5 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter2_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter2_1.ipynb
new file mode 100755
index 00000000..59d9ea57
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter2_1.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f048d58df41f2578c151ef59f03652004b6758b9e666d170255be2c66115bfe2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Particle nature of radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=100*10**6; #frequency(Hz)\n",
+ "P=100*10**3; #power(watt)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*new; #quantum of energy(J)\n",
+ "n=P/E; #number of quanta emitted(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of quanta emitted is\",round(n/10**29,2),\"*10**29 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of quanta emitted is 15.09 *10**29 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=400*10**-9; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=2.28; #work function(eV)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "KEmax=E-w0; #maximum kinetic energy(eV)\n",
+ "v2=2*KEmax*e/m; \n",
+ "v=math.sqrt(v2); #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(KEmax,3),\"eV\"\n",
+ "print \"velocity of photoelectrons is\",round(v/10**5,2),\"*10**5 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 0.826 eV\n",
+ "velocity of photoelectrons is 5.39 *10**5 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=2000*10**-10; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=4.2; #work function(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda0=h*c/(w0*e); #cut off wavelength(m)\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "sp=E-w0; #stopping potential(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cut off wavelength is\",int(lamda0*10**10),\"angstrom\"\n",
+ "print \"stopping potential is\",round(sp,2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cut off wavelength is 2958 angstrom\n",
+ "stopping potential is 2.01 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.2*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "p=h/lamda; #momentum(kg m/s)\n",
+ "m=p/c; #effective mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum is\",round(p*10**24,1),\"*10**-24 kg m/s\"\n",
+ "print \"effective mass is\",round(m*10**32,1),\"*10**-32 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum is 3.3 *10**-24 kg m/s\n",
+ "effective mass is 1.1 *10**-32 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.5, Page number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.15; #wavelength(nm)\n",
+ "m0=9.1*10**-31; #mass of electron(kg)\n",
+ "theta1=0; #scattering angle1(degrees)\n",
+ "theta2=90; #scattering angle2(degrees)\n",
+ "theta3=180; #scattering angle3(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; #scattering angle1(radian)\n",
+ "theta2=theta2*math.pi/180; #scattering angle2(radian)\n",
+ "theta3=theta3*math.pi/180; #scattering angle3(radian)\n",
+ "lamda_dash1=lamda+(h*(1-math.cos(theta1))/(m0*c)); #wavelength at 0(nm)\n",
+ "lamda_dash2=lamda+(10**9*h*(1-math.cos(theta2))/(m0*c)); #wavelength at 90(nm)\n",
+ "lamda_dash3=lamda+(10**9*h*(1-math.cos(theta3))/(m0*c)); #wavelength at 180(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength at 0 degrees is\",lamda_dash1,\"nm\"\n",
+ "print \"wavelength at 90 degrees is\",round(lamda_dash2,3),\"nm\"\n",
+ "print \"wavelength at 180 degrees is\",round(lamda_dash3,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength at 0 degrees is 0.15 nm\n",
+ "wavelength at 90 degrees is 0.152 nm\n",
+ "wavelength at 180 degrees is 0.155 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.6, Page number 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=2*0.511*10**6; #rest energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h*c/(E*e); #wavelength of photon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**12,2),\"*10**-12 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 1.22 *10**-12 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter2_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter2_2.ipynb
new file mode 100755
index 00000000..59d9ea57
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter2_2.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f048d58df41f2578c151ef59f03652004b6758b9e666d170255be2c66115bfe2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Particle nature of radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=100*10**6; #frequency(Hz)\n",
+ "P=100*10**3; #power(watt)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*new; #quantum of energy(J)\n",
+ "n=P/E; #number of quanta emitted(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of quanta emitted is\",round(n/10**29,2),\"*10**29 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of quanta emitted is 15.09 *10**29 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=400*10**-9; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=2.28; #work function(eV)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "KEmax=E-w0; #maximum kinetic energy(eV)\n",
+ "v2=2*KEmax*e/m; \n",
+ "v=math.sqrt(v2); #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(KEmax,3),\"eV\"\n",
+ "print \"velocity of photoelectrons is\",round(v/10**5,2),\"*10**5 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 0.826 eV\n",
+ "velocity of photoelectrons is 5.39 *10**5 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=2000*10**-10; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=4.2; #work function(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda0=h*c/(w0*e); #cut off wavelength(m)\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "sp=E-w0; #stopping potential(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cut off wavelength is\",int(lamda0*10**10),\"angstrom\"\n",
+ "print \"stopping potential is\",round(sp,2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cut off wavelength is 2958 angstrom\n",
+ "stopping potential is 2.01 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.2*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "p=h/lamda; #momentum(kg m/s)\n",
+ "m=p/c; #effective mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum is\",round(p*10**24,1),\"*10**-24 kg m/s\"\n",
+ "print \"effective mass is\",round(m*10**32,1),\"*10**-32 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum is 3.3 *10**-24 kg m/s\n",
+ "effective mass is 1.1 *10**-32 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.5, Page number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.15; #wavelength(nm)\n",
+ "m0=9.1*10**-31; #mass of electron(kg)\n",
+ "theta1=0; #scattering angle1(degrees)\n",
+ "theta2=90; #scattering angle2(degrees)\n",
+ "theta3=180; #scattering angle3(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; #scattering angle1(radian)\n",
+ "theta2=theta2*math.pi/180; #scattering angle2(radian)\n",
+ "theta3=theta3*math.pi/180; #scattering angle3(radian)\n",
+ "lamda_dash1=lamda+(h*(1-math.cos(theta1))/(m0*c)); #wavelength at 0(nm)\n",
+ "lamda_dash2=lamda+(10**9*h*(1-math.cos(theta2))/(m0*c)); #wavelength at 90(nm)\n",
+ "lamda_dash3=lamda+(10**9*h*(1-math.cos(theta3))/(m0*c)); #wavelength at 180(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength at 0 degrees is\",lamda_dash1,\"nm\"\n",
+ "print \"wavelength at 90 degrees is\",round(lamda_dash2,3),\"nm\"\n",
+ "print \"wavelength at 180 degrees is\",round(lamda_dash3,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength at 0 degrees is 0.15 nm\n",
+ "wavelength at 90 degrees is 0.152 nm\n",
+ "wavelength at 180 degrees is 0.155 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.6, Page number 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=2*0.511*10**6; #rest energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h*c/(E*e); #wavelength of photon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**12,2),\"*10**-12 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 1.22 *10**-12 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter2_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter2_3.ipynb
new file mode 100755
index 00000000..59d9ea57
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter2_3.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f048d58df41f2578c151ef59f03652004b6758b9e666d170255be2c66115bfe2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Particle nature of radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=100*10**6; #frequency(Hz)\n",
+ "P=100*10**3; #power(watt)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*new; #quantum of energy(J)\n",
+ "n=P/E; #number of quanta emitted(per sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of quanta emitted is\",round(n/10**29,2),\"*10**29 per sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number of quanta emitted is 15.09 *10**29 per sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=400*10**-9; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=2.28; #work function(eV)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "KEmax=E-w0; #maximum kinetic energy(eV)\n",
+ "v2=2*KEmax*e/m; \n",
+ "v=math.sqrt(v2); #velocity(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum kinetic energy is\",round(KEmax,3),\"eV\"\n",
+ "print \"velocity of photoelectrons is\",round(v/10**5,2),\"*10**5 m/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum kinetic energy is 0.826 eV\n",
+ "velocity of photoelectrons is 5.39 *10**5 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=2000*10**-10; #wavelength(m)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "w0=4.2; #work function(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda0=h*c/(w0*e); #cut off wavelength(m)\n",
+ "E=h*c/(lamda*e); #energy(eV)\n",
+ "sp=E-w0; #stopping potential(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"cut off wavelength is\",int(lamda0*10**10),\"angstrom\"\n",
+ "print \"stopping potential is\",round(sp,2),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cut off wavelength is 2958 angstrom\n",
+ "stopping potential is 2.01 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.2*10**-9; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "p=h/lamda; #momentum(kg m/s)\n",
+ "m=p/c; #effective mass(kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"momentum is\",round(p*10**24,1),\"*10**-24 kg m/s\"\n",
+ "print \"effective mass is\",round(m*10**32,1),\"*10**-32 kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "momentum is 3.3 *10**-24 kg m/s\n",
+ "effective mass is 1.1 *10**-32 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.5, Page number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=0.15; #wavelength(nm)\n",
+ "m0=9.1*10**-31; #mass of electron(kg)\n",
+ "theta1=0; #scattering angle1(degrees)\n",
+ "theta2=90; #scattering angle2(degrees)\n",
+ "theta3=180; #scattering angle3(degrees)\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; #scattering angle1(radian)\n",
+ "theta2=theta2*math.pi/180; #scattering angle2(radian)\n",
+ "theta3=theta3*math.pi/180; #scattering angle3(radian)\n",
+ "lamda_dash1=lamda+(h*(1-math.cos(theta1))/(m0*c)); #wavelength at 0(nm)\n",
+ "lamda_dash2=lamda+(10**9*h*(1-math.cos(theta2))/(m0*c)); #wavelength at 90(nm)\n",
+ "lamda_dash3=lamda+(10**9*h*(1-math.cos(theta3))/(m0*c)); #wavelength at 180(nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength at 0 degrees is\",lamda_dash1,\"nm\"\n",
+ "print \"wavelength at 90 degrees is\",round(lamda_dash2,3),\"nm\"\n",
+ "print \"wavelength at 180 degrees is\",round(lamda_dash3,3),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength at 0 degrees is 0.15 nm\n",
+ "wavelength at 90 degrees is 0.152 nm\n",
+ "wavelength at 180 degrees is 0.155 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.6, Page number 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=2*0.511*10**6; #rest energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h*c/(E*e); #wavelength of photon(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**12,2),\"*10**-12 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 1.22 *10**-12 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter3.ipynb
new file mode 100755
index 00000000..4d816cd2
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter3.ipynb
@@ -0,0 +1,197 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b6d6dfa593701249cd6d305eb45cecde030c3502c19d325045b7e05cf46a035c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: Atomic models"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "rho=19.3; #density(g/cc)\n",
+ "A=197; #atomic weight(g)\n",
+ "k=8.984*10**9; #value of k(Nm**2/C**2)\n",
+ "Z=79;\n",
+ "Zdash=2;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=2;\n",
+ "v0=8*10**6; \n",
+ "t=2*10**-6; #thickness(m)\n",
+ "\n",
+ "#Calculation\n",
+ "n=N*rho*10**6/A; #number of atoms(per m**3)\n",
+ "b=k*Z*Zdash*e/(m*v0); #impact parameter(m)\n",
+ "f=math.pi*b**2*n*t; #fraction of particles scattered\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction of particles scattered is\",round(f*10**5,1),\"*10**-5\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of particles scattered is 7.5 *10**-5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=10.5; #energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(13.6+E)*e; #energy of photon(J)\n",
+ "lamda=h*c/E; #wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 51.55 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.98*10**9; #value of k(Nm**2/C**2)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=1; #assume\n",
+ "a0=0.53*10**-10; #radius of orbit(m)\n",
+ "\n",
+ "#Calculation\n",
+ "PE=-k*(e**2)/(a0*e*n**2); #potential energy(eV)\n",
+ "E=-13.6/n**2; #energy(eV)\n",
+ "KE=E-PE; #kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",round(KE,1),\"/n**2 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 13.5 /n**2 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.6, Page number 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Mbyme=1836; \n",
+ "lamda=6562.8; #wavelength for hydrogen(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "mew_dashbymew=2*(1+Mbyme)/(1+(2*Mbyme));\n",
+ "lamda_dash=lamda/mew_dashbymew; #wavelength for deuterium(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength for deuterium is\",int(lamda_dash),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength for deuterium is 6561 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter3_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter3_1.ipynb
new file mode 100755
index 00000000..4d816cd2
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter3_1.ipynb
@@ -0,0 +1,197 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b6d6dfa593701249cd6d305eb45cecde030c3502c19d325045b7e05cf46a035c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: Atomic models"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "rho=19.3; #density(g/cc)\n",
+ "A=197; #atomic weight(g)\n",
+ "k=8.984*10**9; #value of k(Nm**2/C**2)\n",
+ "Z=79;\n",
+ "Zdash=2;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=2;\n",
+ "v0=8*10**6; \n",
+ "t=2*10**-6; #thickness(m)\n",
+ "\n",
+ "#Calculation\n",
+ "n=N*rho*10**6/A; #number of atoms(per m**3)\n",
+ "b=k*Z*Zdash*e/(m*v0); #impact parameter(m)\n",
+ "f=math.pi*b**2*n*t; #fraction of particles scattered\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction of particles scattered is\",round(f*10**5,1),\"*10**-5\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of particles scattered is 7.5 *10**-5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=10.5; #energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(13.6+E)*e; #energy of photon(J)\n",
+ "lamda=h*c/E; #wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 51.55 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.98*10**9; #value of k(Nm**2/C**2)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=1; #assume\n",
+ "a0=0.53*10**-10; #radius of orbit(m)\n",
+ "\n",
+ "#Calculation\n",
+ "PE=-k*(e**2)/(a0*e*n**2); #potential energy(eV)\n",
+ "E=-13.6/n**2; #energy(eV)\n",
+ "KE=E-PE; #kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",round(KE,1),\"/n**2 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 13.5 /n**2 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.6, Page number 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Mbyme=1836; \n",
+ "lamda=6562.8; #wavelength for hydrogen(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "mew_dashbymew=2*(1+Mbyme)/(1+(2*Mbyme));\n",
+ "lamda_dash=lamda/mew_dashbymew; #wavelength for deuterium(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength for deuterium is\",int(lamda_dash),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength for deuterium is 6561 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter3_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter3_2.ipynb
new file mode 100755
index 00000000..4d816cd2
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter3_2.ipynb
@@ -0,0 +1,197 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b6d6dfa593701249cd6d305eb45cecde030c3502c19d325045b7e05cf46a035c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: Atomic models"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "rho=19.3; #density(g/cc)\n",
+ "A=197; #atomic weight(g)\n",
+ "k=8.984*10**9; #value of k(Nm**2/C**2)\n",
+ "Z=79;\n",
+ "Zdash=2;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=2;\n",
+ "v0=8*10**6; \n",
+ "t=2*10**-6; #thickness(m)\n",
+ "\n",
+ "#Calculation\n",
+ "n=N*rho*10**6/A; #number of atoms(per m**3)\n",
+ "b=k*Z*Zdash*e/(m*v0); #impact parameter(m)\n",
+ "f=math.pi*b**2*n*t; #fraction of particles scattered\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction of particles scattered is\",round(f*10**5,1),\"*10**-5\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of particles scattered is 7.5 *10**-5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=10.5; #energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(13.6+E)*e; #energy of photon(J)\n",
+ "lamda=h*c/E; #wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 51.55 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.98*10**9; #value of k(Nm**2/C**2)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=1; #assume\n",
+ "a0=0.53*10**-10; #radius of orbit(m)\n",
+ "\n",
+ "#Calculation\n",
+ "PE=-k*(e**2)/(a0*e*n**2); #potential energy(eV)\n",
+ "E=-13.6/n**2; #energy(eV)\n",
+ "KE=E-PE; #kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",round(KE,1),\"/n**2 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 13.5 /n**2 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.6, Page number 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Mbyme=1836; \n",
+ "lamda=6562.8; #wavelength for hydrogen(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "mew_dashbymew=2*(1+Mbyme)/(1+(2*Mbyme));\n",
+ "lamda_dash=lamda/mew_dashbymew; #wavelength for deuterium(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength for deuterium is\",int(lamda_dash),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength for deuterium is 6561 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter3_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter3_3.ipynb
new file mode 100755
index 00000000..4d816cd2
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter3_3.ipynb
@@ -0,0 +1,197 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b6d6dfa593701249cd6d305eb45cecde030c3502c19d325045b7e05cf46a035c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: Atomic models"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "rho=19.3; #density(g/cc)\n",
+ "A=197; #atomic weight(g)\n",
+ "k=8.984*10**9; #value of k(Nm**2/C**2)\n",
+ "Z=79;\n",
+ "Zdash=2;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=2;\n",
+ "v0=8*10**6; \n",
+ "t=2*10**-6; #thickness(m)\n",
+ "\n",
+ "#Calculation\n",
+ "n=N*rho*10**6/A; #number of atoms(per m**3)\n",
+ "b=k*Z*Zdash*e/(m*v0); #impact parameter(m)\n",
+ "f=math.pi*b**2*n*t; #fraction of particles scattered\n",
+ "\n",
+ "#Result\n",
+ "print \"fraction of particles scattered is\",round(f*10**5,1),\"*10**-5\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of particles scattered is 7.5 *10**-5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "E=10.5; #energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(13.6+E)*e; #energy of photon(J)\n",
+ "lamda=h*c/E; #wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of photon is\",round(lamda*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength of photon is 51.55 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=8.98*10**9; #value of k(Nm**2/C**2)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "n=1; #assume\n",
+ "a0=0.53*10**-10; #radius of orbit(m)\n",
+ "\n",
+ "#Calculation\n",
+ "PE=-k*(e**2)/(a0*e*n**2); #potential energy(eV)\n",
+ "E=-13.6/n**2; #energy(eV)\n",
+ "KE=E-PE; #kinetic energy(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",round(KE,1),\"/n**2 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 13.5 /n**2 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.6, Page number 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Mbyme=1836; \n",
+ "lamda=6562.8; #wavelength for hydrogen(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "mew_dashbymew=2*(1+Mbyme)/(1+(2*Mbyme));\n",
+ "lamda_dash=lamda/mew_dashbymew; #wavelength for deuterium(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength for deuterium is\",int(lamda_dash),\"angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wavelength for deuterium is 6561 angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter4.ipynb b/Modern_Physics_By_G.Aruldas/Chapter4.ipynb
new file mode 100755
index 00000000..350acf21
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter4.ipynb
@@ -0,0 +1,193 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d6457e2a94e0fa2b026a0acb8ba4fab526573258ee2c274c4328b7f611fb97a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Wave mechanical concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "V=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h/math.sqrt(2*m*e*V); #debroglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength is math.sqrt(\",int((lamda*10**10)**2),\"/V) angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength is math.sqrt( 150 /V) angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "KE=100*10**6; #kinetic energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*e); #momentum(kg m/s)\n",
+ "lamda1=h/p; #debroglie wavelength for 1 eV(m)\n",
+ "lamda2=h*c/(KE*e); #debroglie wavelength for 100 MeV(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength for 1 eV is\",round(lamda1*10**9,1),\"nm\"\n",
+ "print \"debroglie wavelength for 100 MeV is\",round(lamda2*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength for 1 eV is 1.2 nm\n",
+ "debroglie wavelength for 100 MeV is 12.42 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "v=4*10**6; #speed of electron(m/s)\n",
+ "sp=1/100; #speed precision\n",
+ "hbar=1.05*10**-34; \n",
+ "\n",
+ "#Calculation\n",
+ "p=m*v; #momentum(kg m/s)\n",
+ "deltap=p*sp; #uncertainity in momentum(kg m/s)\n",
+ "deltax=hbar/(2*deltap); #precision in position(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"precision in position is\",round(deltax*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "precision in position is 1.44 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=4000*10**-10; #wavelength(m)\n",
+ "deltat=10**-8; #average lifetime(s)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_lamda=lamda**2/(4*math.pi*c*deltat); #width of line(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"width of line is\",round(delta_lamda*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "width of line is 4.24 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter4_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter4_1.ipynb
new file mode 100755
index 00000000..350acf21
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter4_1.ipynb
@@ -0,0 +1,193 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d6457e2a94e0fa2b026a0acb8ba4fab526573258ee2c274c4328b7f611fb97a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Wave mechanical concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "V=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h/math.sqrt(2*m*e*V); #debroglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength is math.sqrt(\",int((lamda*10**10)**2),\"/V) angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength is math.sqrt( 150 /V) angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "KE=100*10**6; #kinetic energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*e); #momentum(kg m/s)\n",
+ "lamda1=h/p; #debroglie wavelength for 1 eV(m)\n",
+ "lamda2=h*c/(KE*e); #debroglie wavelength for 100 MeV(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength for 1 eV is\",round(lamda1*10**9,1),\"nm\"\n",
+ "print \"debroglie wavelength for 100 MeV is\",round(lamda2*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength for 1 eV is 1.2 nm\n",
+ "debroglie wavelength for 100 MeV is 12.42 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "v=4*10**6; #speed of electron(m/s)\n",
+ "sp=1/100; #speed precision\n",
+ "hbar=1.05*10**-34; \n",
+ "\n",
+ "#Calculation\n",
+ "p=m*v; #momentum(kg m/s)\n",
+ "deltap=p*sp; #uncertainity in momentum(kg m/s)\n",
+ "deltax=hbar/(2*deltap); #precision in position(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"precision in position is\",round(deltax*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "precision in position is 1.44 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=4000*10**-10; #wavelength(m)\n",
+ "deltat=10**-8; #average lifetime(s)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_lamda=lamda**2/(4*math.pi*c*deltat); #width of line(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"width of line is\",round(delta_lamda*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "width of line is 4.24 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter4_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter4_2.ipynb
new file mode 100755
index 00000000..350acf21
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter4_2.ipynb
@@ -0,0 +1,193 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d6457e2a94e0fa2b026a0acb8ba4fab526573258ee2c274c4328b7f611fb97a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Wave mechanical concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "V=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h/math.sqrt(2*m*e*V); #debroglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength is math.sqrt(\",int((lamda*10**10)**2),\"/V) angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength is math.sqrt( 150 /V) angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "KE=100*10**6; #kinetic energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*e); #momentum(kg m/s)\n",
+ "lamda1=h/p; #debroglie wavelength for 1 eV(m)\n",
+ "lamda2=h*c/(KE*e); #debroglie wavelength for 100 MeV(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength for 1 eV is\",round(lamda1*10**9,1),\"nm\"\n",
+ "print \"debroglie wavelength for 100 MeV is\",round(lamda2*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength for 1 eV is 1.2 nm\n",
+ "debroglie wavelength for 100 MeV is 12.42 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "v=4*10**6; #speed of electron(m/s)\n",
+ "sp=1/100; #speed precision\n",
+ "hbar=1.05*10**-34; \n",
+ "\n",
+ "#Calculation\n",
+ "p=m*v; #momentum(kg m/s)\n",
+ "deltap=p*sp; #uncertainity in momentum(kg m/s)\n",
+ "deltax=hbar/(2*deltap); #precision in position(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"precision in position is\",round(deltax*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "precision in position is 1.44 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=4000*10**-10; #wavelength(m)\n",
+ "deltat=10**-8; #average lifetime(s)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_lamda=lamda**2/(4*math.pi*c*deltat); #width of line(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"width of line is\",round(delta_lamda*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "width of line is 4.24 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter4_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter4_3.ipynb
new file mode 100755
index 00000000..350acf21
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter4_3.ipynb
@@ -0,0 +1,193 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d6457e2a94e0fa2b026a0acb8ba4fab526573258ee2c274c4328b7f611fb97a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Wave mechanical concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "V=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "lamda=h/math.sqrt(2*m*e*V); #debroglie wavelength(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength is math.sqrt(\",int((lamda*10**10)**2),\"/V) angstrom\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength is math.sqrt( 150 /V) angstrom\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "KE=100*10**6; #kinetic energy(eV)\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*e); #momentum(kg m/s)\n",
+ "lamda1=h/p; #debroglie wavelength for 1 eV(m)\n",
+ "lamda2=h*c/(KE*e); #debroglie wavelength for 100 MeV(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"debroglie wavelength for 1 eV is\",round(lamda1*10**9,1),\"nm\"\n",
+ "print \"debroglie wavelength for 100 MeV is\",round(lamda2*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "debroglie wavelength for 1 eV is 1.2 nm\n",
+ "debroglie wavelength for 100 MeV is 12.42 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "v=4*10**6; #speed of electron(m/s)\n",
+ "sp=1/100; #speed precision\n",
+ "hbar=1.05*10**-34; \n",
+ "\n",
+ "#Calculation\n",
+ "p=m*v; #momentum(kg m/s)\n",
+ "deltap=p*sp; #uncertainity in momentum(kg m/s)\n",
+ "deltax=hbar/(2*deltap); #precision in position(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"precision in position is\",round(deltax*10**9,2),\"nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "precision in position is 1.44 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda=4000*10**-10; #wavelength(m)\n",
+ "deltat=10**-8; #average lifetime(s)\n",
+ "\n",
+ "#Calculation\n",
+ "delta_lamda=lamda**2/(4*math.pi*c*deltat); #width of line(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"width of line is\",round(delta_lamda*10**15,2),\"*10**-15 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "width of line is 4.24 *10**-15 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter6.ipynb b/Modern_Physics_By_G.Aruldas/Chapter6.ipynb
new file mode 100755
index 00000000..fa8615c7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter6.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8884b20a8f08880d4a94501a9f3a466664f30ca1f04c541fe7d3a232f87a24bc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Quantum mechanics of simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=2*10**-10; #length of square well(m)\n",
+ "\n",
+ "#Calculation\n",
+ "def intg(x):\n",
+ " return (2/a)*(math.sin(math.pi*x/a))**2\n",
+ "\n",
+ "S=quad(intg,0,0.25*10**-10)[0] #probability of finding the electron\n",
+ "\n",
+ "#Result\n",
+ "print \"probability of finding the electron is\",round(S,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "probability of finding the electron is 0.0125\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new0=6.43*10**13; #frequency(Hz)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "mew=1.1385*10**-26; #reduced mass(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0=h*new0/2; #zero point energy(J)\n",
+ "E0=E0/e; #zero point energy(eV)\n",
+ "k=4*math.pi**2*new0**2*mew; #force constane(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"zero point energy is\",round(E0,3),\"eV\"\n",
+ "print \"force constane is\",round(k),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zero point energy is 0.133 eV\n",
+ "force constane is 1858.0 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=19.9217*10**-27; #mass of carbon atom(kg)\n",
+ "m2=26.5614*10**-27; #mass of oxygen atom(kg)\n",
+ "r=1.131*10**-10; #separation(m)\n",
+ "hbar=1.054*10**-34;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "mew=(m1*m2)/(m1+m2); #reduced mass(kg)\n",
+ "I=mew*r**2; \n",
+ "deltaE=hbar**2/I; #energy difference(J)\n",
+ "deltaE=deltaE/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(deltaE*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 4.77 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.7, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=1;\n",
+ "m2=0;\n",
+ "m3=-1; #m-components\n",
+ "l=1;\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #length of vector\n",
+ "theta1=math.acos(m1/L); #orientation for m=1(radian)\n",
+ "theta1=theta1*180/math.pi; #orientation for m=1(degrees)\n",
+ "theta2=math.acos(m2/L); #orientation for m=0(radian)\n",
+ "theta2=theta2*180/math.pi; #orientation for m=0(degrees)\n",
+ "theta3=math.acos(m3/L); #orientation for m=-1(radian)\n",
+ "theta3=theta3*180/math.pi; #orientation for m=-1(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"orientation for m=1 is\",theta1,\"degrees\"\n",
+ "print \"orientation for m=0 is\",theta2,\"degrees\"\n",
+ "print \"orientation for m=-1 is\",theta3,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "orientation for m=1 is 45.0 degrees\n",
+ "orientation for m=0 is 90.0 degrees\n",
+ "orientation for m=-1 is 135.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter6_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter6_1.ipynb
new file mode 100755
index 00000000..fa8615c7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter6_1.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8884b20a8f08880d4a94501a9f3a466664f30ca1f04c541fe7d3a232f87a24bc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Quantum mechanics of simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=2*10**-10; #length of square well(m)\n",
+ "\n",
+ "#Calculation\n",
+ "def intg(x):\n",
+ " return (2/a)*(math.sin(math.pi*x/a))**2\n",
+ "\n",
+ "S=quad(intg,0,0.25*10**-10)[0] #probability of finding the electron\n",
+ "\n",
+ "#Result\n",
+ "print \"probability of finding the electron is\",round(S,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "probability of finding the electron is 0.0125\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new0=6.43*10**13; #frequency(Hz)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "mew=1.1385*10**-26; #reduced mass(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0=h*new0/2; #zero point energy(J)\n",
+ "E0=E0/e; #zero point energy(eV)\n",
+ "k=4*math.pi**2*new0**2*mew; #force constane(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"zero point energy is\",round(E0,3),\"eV\"\n",
+ "print \"force constane is\",round(k),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zero point energy is 0.133 eV\n",
+ "force constane is 1858.0 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=19.9217*10**-27; #mass of carbon atom(kg)\n",
+ "m2=26.5614*10**-27; #mass of oxygen atom(kg)\n",
+ "r=1.131*10**-10; #separation(m)\n",
+ "hbar=1.054*10**-34;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "mew=(m1*m2)/(m1+m2); #reduced mass(kg)\n",
+ "I=mew*r**2; \n",
+ "deltaE=hbar**2/I; #energy difference(J)\n",
+ "deltaE=deltaE/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(deltaE*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 4.77 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.7, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=1;\n",
+ "m2=0;\n",
+ "m3=-1; #m-components\n",
+ "l=1;\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #length of vector\n",
+ "theta1=math.acos(m1/L); #orientation for m=1(radian)\n",
+ "theta1=theta1*180/math.pi; #orientation for m=1(degrees)\n",
+ "theta2=math.acos(m2/L); #orientation for m=0(radian)\n",
+ "theta2=theta2*180/math.pi; #orientation for m=0(degrees)\n",
+ "theta3=math.acos(m3/L); #orientation for m=-1(radian)\n",
+ "theta3=theta3*180/math.pi; #orientation for m=-1(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"orientation for m=1 is\",theta1,\"degrees\"\n",
+ "print \"orientation for m=0 is\",theta2,\"degrees\"\n",
+ "print \"orientation for m=-1 is\",theta3,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "orientation for m=1 is 45.0 degrees\n",
+ "orientation for m=0 is 90.0 degrees\n",
+ "orientation for m=-1 is 135.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter6_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter6_2.ipynb
new file mode 100755
index 00000000..fa8615c7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter6_2.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8884b20a8f08880d4a94501a9f3a466664f30ca1f04c541fe7d3a232f87a24bc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Quantum mechanics of simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=2*10**-10; #length of square well(m)\n",
+ "\n",
+ "#Calculation\n",
+ "def intg(x):\n",
+ " return (2/a)*(math.sin(math.pi*x/a))**2\n",
+ "\n",
+ "S=quad(intg,0,0.25*10**-10)[0] #probability of finding the electron\n",
+ "\n",
+ "#Result\n",
+ "print \"probability of finding the electron is\",round(S,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "probability of finding the electron is 0.0125\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new0=6.43*10**13; #frequency(Hz)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "mew=1.1385*10**-26; #reduced mass(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0=h*new0/2; #zero point energy(J)\n",
+ "E0=E0/e; #zero point energy(eV)\n",
+ "k=4*math.pi**2*new0**2*mew; #force constane(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"zero point energy is\",round(E0,3),\"eV\"\n",
+ "print \"force constane is\",round(k),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zero point energy is 0.133 eV\n",
+ "force constane is 1858.0 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=19.9217*10**-27; #mass of carbon atom(kg)\n",
+ "m2=26.5614*10**-27; #mass of oxygen atom(kg)\n",
+ "r=1.131*10**-10; #separation(m)\n",
+ "hbar=1.054*10**-34;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "mew=(m1*m2)/(m1+m2); #reduced mass(kg)\n",
+ "I=mew*r**2; \n",
+ "deltaE=hbar**2/I; #energy difference(J)\n",
+ "deltaE=deltaE/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(deltaE*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 4.77 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.7, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=1;\n",
+ "m2=0;\n",
+ "m3=-1; #m-components\n",
+ "l=1;\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #length of vector\n",
+ "theta1=math.acos(m1/L); #orientation for m=1(radian)\n",
+ "theta1=theta1*180/math.pi; #orientation for m=1(degrees)\n",
+ "theta2=math.acos(m2/L); #orientation for m=0(radian)\n",
+ "theta2=theta2*180/math.pi; #orientation for m=0(degrees)\n",
+ "theta3=math.acos(m3/L); #orientation for m=-1(radian)\n",
+ "theta3=theta3*180/math.pi; #orientation for m=-1(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"orientation for m=1 is\",theta1,\"degrees\"\n",
+ "print \"orientation for m=0 is\",theta2,\"degrees\"\n",
+ "print \"orientation for m=-1 is\",theta3,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "orientation for m=1 is 45.0 degrees\n",
+ "orientation for m=0 is 90.0 degrees\n",
+ "orientation for m=-1 is 135.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter6_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter6_3.ipynb
new file mode 100755
index 00000000..fa8615c7
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter6_3.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8884b20a8f08880d4a94501a9f3a466664f30ca1f04c541fe7d3a232f87a24bc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Quantum mechanics of simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=2*10**-10; #length of square well(m)\n",
+ "\n",
+ "#Calculation\n",
+ "def intg(x):\n",
+ " return (2/a)*(math.sin(math.pi*x/a))**2\n",
+ "\n",
+ "S=quad(intg,0,0.25*10**-10)[0] #probability of finding the electron\n",
+ "\n",
+ "#Result\n",
+ "print \"probability of finding the electron is\",round(S,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "probability of finding the electron is 0.0125\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new0=6.43*10**13; #frequency(Hz)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "mew=1.1385*10**-26; #reduced mass(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "E0=h*new0/2; #zero point energy(J)\n",
+ "E0=E0/e; #zero point energy(eV)\n",
+ "k=4*math.pi**2*new0**2*mew; #force constane(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"zero point energy is\",round(E0,3),\"eV\"\n",
+ "print \"force constane is\",round(k),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "zero point energy is 0.133 eV\n",
+ "force constane is 1858.0 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=19.9217*10**-27; #mass of carbon atom(kg)\n",
+ "m2=26.5614*10**-27; #mass of oxygen atom(kg)\n",
+ "r=1.131*10**-10; #separation(m)\n",
+ "hbar=1.054*10**-34;\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "mew=(m1*m2)/(m1+m2); #reduced mass(kg)\n",
+ "I=mew*r**2; \n",
+ "deltaE=hbar**2/I; #energy difference(J)\n",
+ "deltaE=deltaE/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(deltaE*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 4.77 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.7, Page number 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m1=1;\n",
+ "m2=0;\n",
+ "m3=-1; #m-components\n",
+ "l=1;\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #length of vector\n",
+ "theta1=math.acos(m1/L); #orientation for m=1(radian)\n",
+ "theta1=theta1*180/math.pi; #orientation for m=1(degrees)\n",
+ "theta2=math.acos(m2/L); #orientation for m=0(radian)\n",
+ "theta2=theta2*180/math.pi; #orientation for m=0(degrees)\n",
+ "theta3=math.acos(m3/L); #orientation for m=-1(radian)\n",
+ "theta3=theta3*180/math.pi; #orientation for m=-1(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"orientation for m=1 is\",theta1,\"degrees\"\n",
+ "print \"orientation for m=0 is\",theta2,\"degrees\"\n",
+ "print \"orientation for m=-1 is\",theta3,\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "orientation for m=1 is 45.0 degrees\n",
+ "orientation for m=0 is 90.0 degrees\n",
+ "orientation for m=-1 is 135.0 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter7.ipynb b/Modern_Physics_By_G.Aruldas/Chapter7.ipynb
new file mode 100755
index 00000000..45ed5766
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter7.ipynb
@@ -0,0 +1,258 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02050388cdd15ca19e058c38c307c0fd0b145ef71769674c045940ea70b08b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Atomic physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewB=9.27*10**-24;\n",
+ "B=3; #magnetic field(T)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "E=2*mewB*B/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(E*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 3.48 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=2;\n",
+ "s=1/2;\n",
+ "j1=2+(1/2);\n",
+ "j2=2-(1/2);\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #value of L(hbar)\n",
+ "S=math.sqrt(s*(s+1)); #value of S(hbar)\n",
+ "J1=math.sqrt(j1*(j1+1)); #value of J for D5/2 state(hbar)\n",
+ "J2=math.sqrt(j2*(j2+1)); #value of J for D3/2 state(hbar)\n",
+ "costheta1=((j1*(j1+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta1=math.acos(costheta1); #angle between L and S for D5/2(radian)\n",
+ "theta1=theta1*180/math.pi; #angle between L and S for D5/2(degrees)\n",
+ "costheta2=((j2*(j2+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta2=math.acos(costheta2); #angle between L and S for D3/2(radian)\n",
+ "theta2=theta2*180/math.pi; #angle between L and S for D3/2(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"value of L is\",round(L,3),\"hbar\"\n",
+ "print \"value of S is\",round(S,3),\"hbar\"\n",
+ "print \"value of J for D5/2 state is\",round(J1,3),\"hbar\"\n",
+ "print \"value of J for D3/2 state is\",round(J2,3),\"hbar\"\n",
+ "print \"angle between L and S for D5/2 is\",round(theta1,2),\"degrees\"\n",
+ "print \"angle between L and S for D3/2 is\",int(theta2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of L is 2.449 hbar\n",
+ "value of S is 0.866 hbar\n",
+ "value of J for D5/2 state is 2.958 hbar\n",
+ "value of J for D3/2 state is 1.936 hbar\n",
+ "angle between L and S for D5/2 is 61.87 degrees\n",
+ "angle between L and S for D3/2 is 135 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=1;\n",
+ "L=1; \n",
+ "J=1;\n",
+ "\n",
+ "#Calculation\n",
+ "a=L*(L+1)-(L*(L+1));\n",
+ "g1=1+(a/(2*L*(L+1))); #lande's g-factor for pure orbital angular momentum\n",
+ "b=(S*(S+1)+(S*(S+1)))/(2*S*(S+1)); #lande's g-factor for pure spin angular momentum\n",
+ "g2=1+b; #lande's g-factor for pure spin angular momentum\n",
+ "c=J*(J+1)+(S*(S+1))-(L*(L+1));\n",
+ "g3=1+(c/(2*J*(J+1))); #lande's g-factor for state 3P1\n",
+ "\n",
+ "#Result\n",
+ "print \"lande's g-factor for pure orbital angular momentum is\",g1\n",
+ "print \"ande's g-factor for pure spin angular momentum is\",g2\n",
+ "print \"lande's g-factor for state 3P1 is\",g3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lande's g-factor for pure orbital angular momentum is 1.0\n",
+ "ande's g-factor for pure spin angular momentum is 2.0\n",
+ "lande's g-factor for state 3P1 is 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.12, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EKalpha=21.99; #energy in silver(keV)\n",
+ "EKbita=25.145; #energy in silver(keV)\n",
+ "E=-25.514; #energy of n=1 state(keV)\n",
+ " \n",
+ "#Calculation\n",
+ "ELalpha=EKbita-EKalpha; #energy of L alpha X ray(keV)\n",
+ "E2=-E-EKalpha; #binding energy of L electron(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of L alpha X ray is\",ELalpha,\"keV\"\n",
+ "print \"binding energy of L electron is\",E2,\"keV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of L alpha X ray is 3.155 keV\n",
+ "binding energy of L electron is 3.524 keV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.13, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "Z=11; #atomic number\n",
+ "R=1.097*10**7; #value of R(per m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(3*h*c*R*(Z-1)**2)/4; #energy of k aplha X-ray(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of k aplha X-ray is\",round(E*10**16,2),\"*10**-16 keV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of k aplha X-ray is 1.64 *10**-16 keV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter7_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter7_1.ipynb
new file mode 100755
index 00000000..45ed5766
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter7_1.ipynb
@@ -0,0 +1,258 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02050388cdd15ca19e058c38c307c0fd0b145ef71769674c045940ea70b08b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Atomic physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewB=9.27*10**-24;\n",
+ "B=3; #magnetic field(T)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "E=2*mewB*B/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(E*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 3.48 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=2;\n",
+ "s=1/2;\n",
+ "j1=2+(1/2);\n",
+ "j2=2-(1/2);\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #value of L(hbar)\n",
+ "S=math.sqrt(s*(s+1)); #value of S(hbar)\n",
+ "J1=math.sqrt(j1*(j1+1)); #value of J for D5/2 state(hbar)\n",
+ "J2=math.sqrt(j2*(j2+1)); #value of J for D3/2 state(hbar)\n",
+ "costheta1=((j1*(j1+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta1=math.acos(costheta1); #angle between L and S for D5/2(radian)\n",
+ "theta1=theta1*180/math.pi; #angle between L and S for D5/2(degrees)\n",
+ "costheta2=((j2*(j2+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta2=math.acos(costheta2); #angle between L and S for D3/2(radian)\n",
+ "theta2=theta2*180/math.pi; #angle between L and S for D3/2(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"value of L is\",round(L,3),\"hbar\"\n",
+ "print \"value of S is\",round(S,3),\"hbar\"\n",
+ "print \"value of J for D5/2 state is\",round(J1,3),\"hbar\"\n",
+ "print \"value of J for D3/2 state is\",round(J2,3),\"hbar\"\n",
+ "print \"angle between L and S for D5/2 is\",round(theta1,2),\"degrees\"\n",
+ "print \"angle between L and S for D3/2 is\",int(theta2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of L is 2.449 hbar\n",
+ "value of S is 0.866 hbar\n",
+ "value of J for D5/2 state is 2.958 hbar\n",
+ "value of J for D3/2 state is 1.936 hbar\n",
+ "angle between L and S for D5/2 is 61.87 degrees\n",
+ "angle between L and S for D3/2 is 135 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=1;\n",
+ "L=1; \n",
+ "J=1;\n",
+ "\n",
+ "#Calculation\n",
+ "a=L*(L+1)-(L*(L+1));\n",
+ "g1=1+(a/(2*L*(L+1))); #lande's g-factor for pure orbital angular momentum\n",
+ "b=(S*(S+1)+(S*(S+1)))/(2*S*(S+1)); #lande's g-factor for pure spin angular momentum\n",
+ "g2=1+b; #lande's g-factor for pure spin angular momentum\n",
+ "c=J*(J+1)+(S*(S+1))-(L*(L+1));\n",
+ "g3=1+(c/(2*J*(J+1))); #lande's g-factor for state 3P1\n",
+ "\n",
+ "#Result\n",
+ "print \"lande's g-factor for pure orbital angular momentum is\",g1\n",
+ "print \"ande's g-factor for pure spin angular momentum is\",g2\n",
+ "print \"lande's g-factor for state 3P1 is\",g3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lande's g-factor for pure orbital angular momentum is 1.0\n",
+ "ande's g-factor for pure spin angular momentum is 2.0\n",
+ "lande's g-factor for state 3P1 is 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.12, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EKalpha=21.99; #energy in silver(keV)\n",
+ "EKbita=25.145; #energy in silver(keV)\n",
+ "E=-25.514; #energy of n=1 state(keV)\n",
+ " \n",
+ "#Calculation\n",
+ "ELalpha=EKbita-EKalpha; #energy of L alpha X ray(keV)\n",
+ "E2=-E-EKalpha; #binding energy of L electron(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of L alpha X ray is\",ELalpha,\"keV\"\n",
+ "print \"binding energy of L electron is\",E2,\"keV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of L alpha X ray is 3.155 keV\n",
+ "binding energy of L electron is 3.524 keV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.13, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "Z=11; #atomic number\n",
+ "R=1.097*10**7; #value of R(per m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(3*h*c*R*(Z-1)**2)/4; #energy of k aplha X-ray(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of k aplha X-ray is\",round(E*10**16,2),\"*10**-16 keV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of k aplha X-ray is 1.64 *10**-16 keV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter7_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter7_2.ipynb
new file mode 100755
index 00000000..45ed5766
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter7_2.ipynb
@@ -0,0 +1,258 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02050388cdd15ca19e058c38c307c0fd0b145ef71769674c045940ea70b08b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Atomic physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewB=9.27*10**-24;\n",
+ "B=3; #magnetic field(T)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "E=2*mewB*B/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(E*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 3.48 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=2;\n",
+ "s=1/2;\n",
+ "j1=2+(1/2);\n",
+ "j2=2-(1/2);\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #value of L(hbar)\n",
+ "S=math.sqrt(s*(s+1)); #value of S(hbar)\n",
+ "J1=math.sqrt(j1*(j1+1)); #value of J for D5/2 state(hbar)\n",
+ "J2=math.sqrt(j2*(j2+1)); #value of J for D3/2 state(hbar)\n",
+ "costheta1=((j1*(j1+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta1=math.acos(costheta1); #angle between L and S for D5/2(radian)\n",
+ "theta1=theta1*180/math.pi; #angle between L and S for D5/2(degrees)\n",
+ "costheta2=((j2*(j2+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta2=math.acos(costheta2); #angle between L and S for D3/2(radian)\n",
+ "theta2=theta2*180/math.pi; #angle between L and S for D3/2(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"value of L is\",round(L,3),\"hbar\"\n",
+ "print \"value of S is\",round(S,3),\"hbar\"\n",
+ "print \"value of J for D5/2 state is\",round(J1,3),\"hbar\"\n",
+ "print \"value of J for D3/2 state is\",round(J2,3),\"hbar\"\n",
+ "print \"angle between L and S for D5/2 is\",round(theta1,2),\"degrees\"\n",
+ "print \"angle between L and S for D3/2 is\",int(theta2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of L is 2.449 hbar\n",
+ "value of S is 0.866 hbar\n",
+ "value of J for D5/2 state is 2.958 hbar\n",
+ "value of J for D3/2 state is 1.936 hbar\n",
+ "angle between L and S for D5/2 is 61.87 degrees\n",
+ "angle between L and S for D3/2 is 135 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=1;\n",
+ "L=1; \n",
+ "J=1;\n",
+ "\n",
+ "#Calculation\n",
+ "a=L*(L+1)-(L*(L+1));\n",
+ "g1=1+(a/(2*L*(L+1))); #lande's g-factor for pure orbital angular momentum\n",
+ "b=(S*(S+1)+(S*(S+1)))/(2*S*(S+1)); #lande's g-factor for pure spin angular momentum\n",
+ "g2=1+b; #lande's g-factor for pure spin angular momentum\n",
+ "c=J*(J+1)+(S*(S+1))-(L*(L+1));\n",
+ "g3=1+(c/(2*J*(J+1))); #lande's g-factor for state 3P1\n",
+ "\n",
+ "#Result\n",
+ "print \"lande's g-factor for pure orbital angular momentum is\",g1\n",
+ "print \"ande's g-factor for pure spin angular momentum is\",g2\n",
+ "print \"lande's g-factor for state 3P1 is\",g3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lande's g-factor for pure orbital angular momentum is 1.0\n",
+ "ande's g-factor for pure spin angular momentum is 2.0\n",
+ "lande's g-factor for state 3P1 is 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.12, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EKalpha=21.99; #energy in silver(keV)\n",
+ "EKbita=25.145; #energy in silver(keV)\n",
+ "E=-25.514; #energy of n=1 state(keV)\n",
+ " \n",
+ "#Calculation\n",
+ "ELalpha=EKbita-EKalpha; #energy of L alpha X ray(keV)\n",
+ "E2=-E-EKalpha; #binding energy of L electron(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of L alpha X ray is\",ELalpha,\"keV\"\n",
+ "print \"binding energy of L electron is\",E2,\"keV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of L alpha X ray is 3.155 keV\n",
+ "binding energy of L electron is 3.524 keV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.13, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "Z=11; #atomic number\n",
+ "R=1.097*10**7; #value of R(per m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(3*h*c*R*(Z-1)**2)/4; #energy of k aplha X-ray(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of k aplha X-ray is\",round(E*10**16,2),\"*10**-16 keV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of k aplha X-ray is 1.64 *10**-16 keV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter7_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter7_3.ipynb
new file mode 100755
index 00000000..45ed5766
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter7_3.ipynb
@@ -0,0 +1,258 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1e02050388cdd15ca19e058c38c307c0fd0b145ef71769674c045940ea70b08b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Atomic physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mewB=9.27*10**-24;\n",
+ "B=3; #magnetic field(T)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "E=2*mewB*B/e; #energy difference(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy difference is\",round(E*10**4,2),\"*10**-4 eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy difference is 3.48 *10**-4 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=2;\n",
+ "s=1/2;\n",
+ "j1=2+(1/2);\n",
+ "j2=2-(1/2);\n",
+ "\n",
+ "#Calculation\n",
+ "L=math.sqrt(l*(l+1)); #value of L(hbar)\n",
+ "S=math.sqrt(s*(s+1)); #value of S(hbar)\n",
+ "J1=math.sqrt(j1*(j1+1)); #value of J for D5/2 state(hbar)\n",
+ "J2=math.sqrt(j2*(j2+1)); #value of J for D3/2 state(hbar)\n",
+ "costheta1=((j1*(j1+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta1=math.acos(costheta1); #angle between L and S for D5/2(radian)\n",
+ "theta1=theta1*180/math.pi; #angle between L and S for D5/2(degrees)\n",
+ "costheta2=((j2*(j2+1))-(l*(l+1))-(s*(s+1)))/(2*L*S);\n",
+ "theta2=math.acos(costheta2); #angle between L and S for D3/2(radian)\n",
+ "theta2=theta2*180/math.pi; #angle between L and S for D3/2(degrees)\n",
+ "\n",
+ "#Result\n",
+ "print \"value of L is\",round(L,3),\"hbar\"\n",
+ "print \"value of S is\",round(S,3),\"hbar\"\n",
+ "print \"value of J for D5/2 state is\",round(J1,3),\"hbar\"\n",
+ "print \"value of J for D3/2 state is\",round(J2,3),\"hbar\"\n",
+ "print \"angle between L and S for D5/2 is\",round(theta1,2),\"degrees\"\n",
+ "print \"angle between L and S for D3/2 is\",int(theta2),\"degrees\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of L is 2.449 hbar\n",
+ "value of S is 0.866 hbar\n",
+ "value of J for D5/2 state is 2.958 hbar\n",
+ "value of J for D3/2 state is 1.936 hbar\n",
+ "angle between L and S for D5/2 is 61.87 degrees\n",
+ "angle between L and S for D3/2 is 135 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=1;\n",
+ "L=1; \n",
+ "J=1;\n",
+ "\n",
+ "#Calculation\n",
+ "a=L*(L+1)-(L*(L+1));\n",
+ "g1=1+(a/(2*L*(L+1))); #lande's g-factor for pure orbital angular momentum\n",
+ "b=(S*(S+1)+(S*(S+1)))/(2*S*(S+1)); #lande's g-factor for pure spin angular momentum\n",
+ "g2=1+b; #lande's g-factor for pure spin angular momentum\n",
+ "c=J*(J+1)+(S*(S+1))-(L*(L+1));\n",
+ "g3=1+(c/(2*J*(J+1))); #lande's g-factor for state 3P1\n",
+ "\n",
+ "#Result\n",
+ "print \"lande's g-factor for pure orbital angular momentum is\",g1\n",
+ "print \"ande's g-factor for pure spin angular momentum is\",g2\n",
+ "print \"lande's g-factor for state 3P1 is\",g3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lande's g-factor for pure orbital angular momentum is 1.0\n",
+ "ande's g-factor for pure spin angular momentum is 2.0\n",
+ "lande's g-factor for state 3P1 is 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.12, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EKalpha=21.99; #energy in silver(keV)\n",
+ "EKbita=25.145; #energy in silver(keV)\n",
+ "E=-25.514; #energy of n=1 state(keV)\n",
+ " \n",
+ "#Calculation\n",
+ "ELalpha=EKbita-EKalpha; #energy of L alpha X ray(keV)\n",
+ "E2=-E-EKalpha; #binding energy of L electron(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of L alpha X ray is\",ELalpha,\"keV\"\n",
+ "print \"binding energy of L electron is\",E2,\"keV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of L alpha X ray is 3.155 keV\n",
+ "binding energy of L electron is 3.524 keV\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.13, Page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "Z=11; #atomic number\n",
+ "R=1.097*10**7; #value of R(per m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=(3*h*c*R*(Z-1)**2)/4; #energy of k aplha X-ray(keV)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy of k aplha X-ray is\",round(E*10**16,2),\"*10**-16 keV\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy of k aplha X-ray is 1.64 *10**-16 keV\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter8.ipynb b/Modern_Physics_By_G.Aruldas/Chapter8.ipynb
new file mode 100755
index 00000000..014cb0d9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter8.ipynb
@@ -0,0 +1,116 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3bf1b2120b5dacb9d86b4fa6efbc4300ebec3d48ce95ec80e2e6a8f936088a09"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: Statistical physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=10.5; #density of silver(g/cc)\n",
+ "M=108; #atomic weight(g/mole)\n",
+ "NA=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "NbyV=rho*NA/M; #number density of conduction electrons(per cc)\n",
+ "NbyV=NbyV*10**6; #number density of conduction electrons(per m**3)\n",
+ "EF=(h**2/(8*m))*(3*NbyV/math.pi)**(2/3); #fermi energy(J)\n",
+ "EF=EF/e; #fermi energy(eV)\n",
+ "E=3*EF/5; #mean energy of electron(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"number density of conduction electrons is\",round(NbyV/10**28,2),\"*10**28 per m**3\"\n",
+ "print \"fermi energy is\",round(EF,2),\"eV\"\n",
+ "print \"mean energy of electron is\",round(E,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number density of conduction electrons is 5.85 *10**28 per m**3\n",
+ "fermi energy is 5.51 eV\n",
+ "mean energy of electron is 3.31 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "EF=5.49; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "R=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "CV=math.pi**2*k*T*R/(2*EF*e); #electronic contribution of Silver(R)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic contribution of Silver is\",round(CV,5),\"R\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic contribution of Silver is 0.02326 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter8_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter8_1.ipynb
new file mode 100755
index 00000000..014cb0d9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter8_1.ipynb
@@ -0,0 +1,116 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3bf1b2120b5dacb9d86b4fa6efbc4300ebec3d48ce95ec80e2e6a8f936088a09"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: Statistical physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=10.5; #density of silver(g/cc)\n",
+ "M=108; #atomic weight(g/mole)\n",
+ "NA=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "NbyV=rho*NA/M; #number density of conduction electrons(per cc)\n",
+ "NbyV=NbyV*10**6; #number density of conduction electrons(per m**3)\n",
+ "EF=(h**2/(8*m))*(3*NbyV/math.pi)**(2/3); #fermi energy(J)\n",
+ "EF=EF/e; #fermi energy(eV)\n",
+ "E=3*EF/5; #mean energy of electron(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"number density of conduction electrons is\",round(NbyV/10**28,2),\"*10**28 per m**3\"\n",
+ "print \"fermi energy is\",round(EF,2),\"eV\"\n",
+ "print \"mean energy of electron is\",round(E,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number density of conduction electrons is 5.85 *10**28 per m**3\n",
+ "fermi energy is 5.51 eV\n",
+ "mean energy of electron is 3.31 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "EF=5.49; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "R=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "CV=math.pi**2*k*T*R/(2*EF*e); #electronic contribution of Silver(R)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic contribution of Silver is\",round(CV,5),\"R\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic contribution of Silver is 0.02326 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter8_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter8_2.ipynb
new file mode 100755
index 00000000..014cb0d9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter8_2.ipynb
@@ -0,0 +1,116 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3bf1b2120b5dacb9d86b4fa6efbc4300ebec3d48ce95ec80e2e6a8f936088a09"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: Statistical physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=10.5; #density of silver(g/cc)\n",
+ "M=108; #atomic weight(g/mole)\n",
+ "NA=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "NbyV=rho*NA/M; #number density of conduction electrons(per cc)\n",
+ "NbyV=NbyV*10**6; #number density of conduction electrons(per m**3)\n",
+ "EF=(h**2/(8*m))*(3*NbyV/math.pi)**(2/3); #fermi energy(J)\n",
+ "EF=EF/e; #fermi energy(eV)\n",
+ "E=3*EF/5; #mean energy of electron(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"number density of conduction electrons is\",round(NbyV/10**28,2),\"*10**28 per m**3\"\n",
+ "print \"fermi energy is\",round(EF,2),\"eV\"\n",
+ "print \"mean energy of electron is\",round(E,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number density of conduction electrons is 5.85 *10**28 per m**3\n",
+ "fermi energy is 5.51 eV\n",
+ "mean energy of electron is 3.31 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "EF=5.49; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "R=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "CV=math.pi**2*k*T*R/(2*EF*e); #electronic contribution of Silver(R)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic contribution of Silver is\",round(CV,5),\"R\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic contribution of Silver is 0.02326 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter8_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter8_3.ipynb
new file mode 100755
index 00000000..014cb0d9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter8_3.ipynb
@@ -0,0 +1,116 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3bf1b2120b5dacb9d86b4fa6efbc4300ebec3d48ce95ec80e2e6a8f936088a09"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: Statistical physics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=10.5; #density of silver(g/cc)\n",
+ "M=108; #atomic weight(g/mole)\n",
+ "NA=6.02*10**23; #avagadro number(atoms/mole)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "\n",
+ "#Calculation\n",
+ "NbyV=rho*NA/M; #number density of conduction electrons(per cc)\n",
+ "NbyV=NbyV*10**6; #number density of conduction electrons(per m**3)\n",
+ "EF=(h**2/(8*m))*(3*NbyV/math.pi)**(2/3); #fermi energy(J)\n",
+ "EF=EF/e; #fermi energy(eV)\n",
+ "E=3*EF/5; #mean energy of electron(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"number density of conduction electrons is\",round(NbyV/10**28,2),\"*10**28 per m**3\"\n",
+ "print \"fermi energy is\",round(EF,2),\"eV\"\n",
+ "print \"mean energy of electron is\",round(E,2),\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number density of conduction electrons is 5.85 *10**28 per m**3\n",
+ "fermi energy is 5.51 eV\n",
+ "mean energy of electron is 3.31 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "EF=5.49; #fermi energy(eV)\n",
+ "e=1.6*10**-19; #conversion factor from J to eV\n",
+ "R=1; #assume\n",
+ "\n",
+ "#Calculation\n",
+ "CV=math.pi**2*k*T*R/(2*EF*e); #electronic contribution of Silver(R)\n",
+ "\n",
+ "#Result\n",
+ "print \"electronic contribution of Silver is\",round(CV,5),\"R\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic contribution of Silver is 0.02326 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter9.ipynb b/Modern_Physics_By_G.Aruldas/Chapter9.ipynb
new file mode 100755
index 00000000..fa1ac5e9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter9.ipynb
@@ -0,0 +1,418 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d1e925900cff60559a1ba3f62c2c267140215c90675c4dba42b1a473becca175"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Molecular spectra"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "twoB=3.8626; #average spacing(per cm)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "NA=6.022*10**23; #avagadro number(atoms/mole)\n",
+ "mC=0.012; #isotopic mass of C(kg/mol)\n",
+ "mO=0.016; #isotopic mass of O(kg/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "B=(twoB/2)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=mC*mO/((mC+mO)*NA); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 1.128 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=10**-2; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=3*k*T/2; #kinetic energy(J)\n",
+ "deltaE=h*c/lamda; #energy seperation(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",E,\"J\"\n",
+ "print \"energy seperation is\",round(deltaE*10**23),\"*10**-23 J\"\n",
+ "print \"deltaE is much smaller than E. hence substantial number of molecules will be there\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 6.21e-21 J\n",
+ "energy seperation is 2.0 *10**-23 J\n",
+ "deltaE is much smaller than E. hence substantial number of molecules will be there\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ff=1876.06; #frequency of fundamental(per cm)\n",
+ "fo=3724.2; #frequency of 1st overtone(per cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#ff=vebar*(1-(2*xe)) and fo=2*vebar*(1-(3*xe)). on solcing we get\n",
+ "vebar=1903.98; #equilibrium vibration frequency(per cm)\n",
+ "xe=7.33*10**-3; #anharmonicity constant\n",
+ "E=vebar/2; #zero point energy(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"equilibrium vibration frequency is\",vebar,\"per cm\"\n",
+ "print \"anharmonicity constant is\",round(xe*10**3,2),\"*10**-3\"\n",
+ "print \"zero point energy is\",round(E),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium vibration frequency is 1903.98 per cm\n",
+ "anharmonicity constant is 7.33 *10**-3\n",
+ "zero point energy is 952.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "m1=1.0087; #mass of 1H(u)\n",
+ "m2=35.453; #mass of Cl(u)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda0=3.465*10**-6; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "mew=m*m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "k=4*math.pi**2*mew*(c/lamda0)**2; #force constant(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"force constant is\",round(k,1),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force constant is 484.7 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamdae=4358.3*10**-8; #excited wavelength(cm)\n",
+ "lamda=4768.5*10**-8; #wavelength(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "wne=1/lamdae; #wave number of exciting radiation(per cm)\n",
+ "wn=1/lamda; #wave number of Raman line(per cm)\n",
+ "new=wne-wn; #vibrational frequency(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"vibrational frequency is\",round(new),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vibrational frequency is 1974.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "sixB=346; #1st rotational Raman line(per cm)\n",
+ "m1=1.673*10**-27; #mass of proton(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "m2=m1;\n",
+ "B=(sixB/6)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 0.762 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=120*10**6; #frequency(Hz)\n",
+ "mewn=5.0508*10**-27;\n",
+ "\n",
+ "#Calculation\n",
+ "B0=h*new/(gN*mewn); #magnetic field strength(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field strength is\",round(B0,3),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field strength is 2.819 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "mewn=5.0508*10**-27;\n",
+ "B0=1.65; #magnetic field(T)\n",
+ "new=510*10**6; #frequency separation(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "new0=gN*mewn*B0/h;\n",
+ "delta=new/new0; #chemical shift(ppm)\n",
+ "\n",
+ "#Result\n",
+ "print \"chemical shift is\",round(delta,2),\"ppm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chemical shift is 7.26 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=35*10**9; #frequency(Hz)\n",
+ "mewB=9.27*10**-24;\n",
+ "B0=1.3; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "g=h*new/(mewB*B0); #electron g-factor\n",
+ "\n",
+ "#Result\n",
+ "print \"electron g-factor is\",round(g,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electron g-factor is 1.924\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter9_1.ipynb b/Modern_Physics_By_G.Aruldas/Chapter9_1.ipynb
new file mode 100755
index 00000000..fa1ac5e9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter9_1.ipynb
@@ -0,0 +1,418 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d1e925900cff60559a1ba3f62c2c267140215c90675c4dba42b1a473becca175"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Molecular spectra"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "twoB=3.8626; #average spacing(per cm)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "NA=6.022*10**23; #avagadro number(atoms/mole)\n",
+ "mC=0.012; #isotopic mass of C(kg/mol)\n",
+ "mO=0.016; #isotopic mass of O(kg/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "B=(twoB/2)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=mC*mO/((mC+mO)*NA); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 1.128 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=10**-2; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=3*k*T/2; #kinetic energy(J)\n",
+ "deltaE=h*c/lamda; #energy seperation(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",E,\"J\"\n",
+ "print \"energy seperation is\",round(deltaE*10**23),\"*10**-23 J\"\n",
+ "print \"deltaE is much smaller than E. hence substantial number of molecules will be there\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 6.21e-21 J\n",
+ "energy seperation is 2.0 *10**-23 J\n",
+ "deltaE is much smaller than E. hence substantial number of molecules will be there\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ff=1876.06; #frequency of fundamental(per cm)\n",
+ "fo=3724.2; #frequency of 1st overtone(per cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#ff=vebar*(1-(2*xe)) and fo=2*vebar*(1-(3*xe)). on solcing we get\n",
+ "vebar=1903.98; #equilibrium vibration frequency(per cm)\n",
+ "xe=7.33*10**-3; #anharmonicity constant\n",
+ "E=vebar/2; #zero point energy(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"equilibrium vibration frequency is\",vebar,\"per cm\"\n",
+ "print \"anharmonicity constant is\",round(xe*10**3,2),\"*10**-3\"\n",
+ "print \"zero point energy is\",round(E),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium vibration frequency is 1903.98 per cm\n",
+ "anharmonicity constant is 7.33 *10**-3\n",
+ "zero point energy is 952.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "m1=1.0087; #mass of 1H(u)\n",
+ "m2=35.453; #mass of Cl(u)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda0=3.465*10**-6; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "mew=m*m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "k=4*math.pi**2*mew*(c/lamda0)**2; #force constant(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"force constant is\",round(k,1),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force constant is 484.7 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamdae=4358.3*10**-8; #excited wavelength(cm)\n",
+ "lamda=4768.5*10**-8; #wavelength(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "wne=1/lamdae; #wave number of exciting radiation(per cm)\n",
+ "wn=1/lamda; #wave number of Raman line(per cm)\n",
+ "new=wne-wn; #vibrational frequency(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"vibrational frequency is\",round(new),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vibrational frequency is 1974.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "sixB=346; #1st rotational Raman line(per cm)\n",
+ "m1=1.673*10**-27; #mass of proton(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "m2=m1;\n",
+ "B=(sixB/6)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 0.762 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=120*10**6; #frequency(Hz)\n",
+ "mewn=5.0508*10**-27;\n",
+ "\n",
+ "#Calculation\n",
+ "B0=h*new/(gN*mewn); #magnetic field strength(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field strength is\",round(B0,3),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field strength is 2.819 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "mewn=5.0508*10**-27;\n",
+ "B0=1.65; #magnetic field(T)\n",
+ "new=510*10**6; #frequency separation(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "new0=gN*mewn*B0/h;\n",
+ "delta=new/new0; #chemical shift(ppm)\n",
+ "\n",
+ "#Result\n",
+ "print \"chemical shift is\",round(delta,2),\"ppm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chemical shift is 7.26 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=35*10**9; #frequency(Hz)\n",
+ "mewB=9.27*10**-24;\n",
+ "B0=1.3; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "g=h*new/(mewB*B0); #electron g-factor\n",
+ "\n",
+ "#Result\n",
+ "print \"electron g-factor is\",round(g,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electron g-factor is 1.924\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter9_2.ipynb b/Modern_Physics_By_G.Aruldas/Chapter9_2.ipynb
new file mode 100755
index 00000000..fa1ac5e9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter9_2.ipynb
@@ -0,0 +1,418 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d1e925900cff60559a1ba3f62c2c267140215c90675c4dba42b1a473becca175"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Molecular spectra"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "twoB=3.8626; #average spacing(per cm)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "NA=6.022*10**23; #avagadro number(atoms/mole)\n",
+ "mC=0.012; #isotopic mass of C(kg/mol)\n",
+ "mO=0.016; #isotopic mass of O(kg/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "B=(twoB/2)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=mC*mO/((mC+mO)*NA); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 1.128 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=10**-2; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=3*k*T/2; #kinetic energy(J)\n",
+ "deltaE=h*c/lamda; #energy seperation(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",E,\"J\"\n",
+ "print \"energy seperation is\",round(deltaE*10**23),\"*10**-23 J\"\n",
+ "print \"deltaE is much smaller than E. hence substantial number of molecules will be there\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 6.21e-21 J\n",
+ "energy seperation is 2.0 *10**-23 J\n",
+ "deltaE is much smaller than E. hence substantial number of molecules will be there\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ff=1876.06; #frequency of fundamental(per cm)\n",
+ "fo=3724.2; #frequency of 1st overtone(per cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#ff=vebar*(1-(2*xe)) and fo=2*vebar*(1-(3*xe)). on solcing we get\n",
+ "vebar=1903.98; #equilibrium vibration frequency(per cm)\n",
+ "xe=7.33*10**-3; #anharmonicity constant\n",
+ "E=vebar/2; #zero point energy(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"equilibrium vibration frequency is\",vebar,\"per cm\"\n",
+ "print \"anharmonicity constant is\",round(xe*10**3,2),\"*10**-3\"\n",
+ "print \"zero point energy is\",round(E),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium vibration frequency is 1903.98 per cm\n",
+ "anharmonicity constant is 7.33 *10**-3\n",
+ "zero point energy is 952.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "m1=1.0087; #mass of 1H(u)\n",
+ "m2=35.453; #mass of Cl(u)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda0=3.465*10**-6; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "mew=m*m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "k=4*math.pi**2*mew*(c/lamda0)**2; #force constant(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"force constant is\",round(k,1),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force constant is 484.7 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamdae=4358.3*10**-8; #excited wavelength(cm)\n",
+ "lamda=4768.5*10**-8; #wavelength(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "wne=1/lamdae; #wave number of exciting radiation(per cm)\n",
+ "wn=1/lamda; #wave number of Raman line(per cm)\n",
+ "new=wne-wn; #vibrational frequency(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"vibrational frequency is\",round(new),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vibrational frequency is 1974.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "sixB=346; #1st rotational Raman line(per cm)\n",
+ "m1=1.673*10**-27; #mass of proton(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "m2=m1;\n",
+ "B=(sixB/6)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 0.762 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=120*10**6; #frequency(Hz)\n",
+ "mewn=5.0508*10**-27;\n",
+ "\n",
+ "#Calculation\n",
+ "B0=h*new/(gN*mewn); #magnetic field strength(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field strength is\",round(B0,3),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field strength is 2.819 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "mewn=5.0508*10**-27;\n",
+ "B0=1.65; #magnetic field(T)\n",
+ "new=510*10**6; #frequency separation(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "new0=gN*mewn*B0/h;\n",
+ "delta=new/new0; #chemical shift(ppm)\n",
+ "\n",
+ "#Result\n",
+ "print \"chemical shift is\",round(delta,2),\"ppm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chemical shift is 7.26 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=35*10**9; #frequency(Hz)\n",
+ "mewB=9.27*10**-24;\n",
+ "B0=1.3; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "g=h*new/(mewB*B0); #electron g-factor\n",
+ "\n",
+ "#Result\n",
+ "print \"electron g-factor is\",round(g,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electron g-factor is 1.924\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/Chapter9_3.ipynb b/Modern_Physics_By_G.Aruldas/Chapter9_3.ipynb
new file mode 100755
index 00000000..fa1ac5e9
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/Chapter9_3.ipynb
@@ -0,0 +1,418 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d1e925900cff60559a1ba3f62c2c267140215c90675c4dba42b1a473becca175"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Molecular spectra"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "twoB=3.8626; #average spacing(per cm)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "NA=6.022*10**23; #avagadro number(atoms/mole)\n",
+ "mC=0.012; #isotopic mass of C(kg/mol)\n",
+ "mO=0.016; #isotopic mass of O(kg/mol)\n",
+ "\n",
+ "#Calculation\n",
+ "B=(twoB/2)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=mC*mO/((mC+mO)*NA); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 1.128 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=300; #temperature(K)\n",
+ "k=1.38*10**-23; #boltzmann constant(J/K)\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "lamda=10**-2; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=3*k*T/2; #kinetic energy(J)\n",
+ "deltaE=h*c/lamda; #energy seperation(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"kinetic energy is\",E,\"J\"\n",
+ "print \"energy seperation is\",round(deltaE*10**23),\"*10**-23 J\"\n",
+ "print \"deltaE is much smaller than E. hence substantial number of molecules will be there\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kinetic energy is 6.21e-21 J\n",
+ "energy seperation is 2.0 *10**-23 J\n",
+ "deltaE is much smaller than E. hence substantial number of molecules will be there\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ff=1876.06; #frequency of fundamental(per cm)\n",
+ "fo=3724.2; #frequency of 1st overtone(per cm)\n",
+ "\n",
+ "#Calculation\n",
+ "#ff=vebar*(1-(2*xe)) and fo=2*vebar*(1-(3*xe)). on solcing we get\n",
+ "vebar=1903.98; #equilibrium vibration frequency(per cm)\n",
+ "xe=7.33*10**-3; #anharmonicity constant\n",
+ "E=vebar/2; #zero point energy(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"equilibrium vibration frequency is\",vebar,\"per cm\"\n",
+ "print \"anharmonicity constant is\",round(xe*10**3,2),\"*10**-3\"\n",
+ "print \"zero point energy is\",round(E),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium vibration frequency is 1903.98 per cm\n",
+ "anharmonicity constant is 7.33 *10**-3\n",
+ "zero point energy is 952.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.67*10**-27; #mass of proton(kg)\n",
+ "m1=1.0087; #mass of 1H(u)\n",
+ "m2=35.453; #mass of Cl(u)\n",
+ "c=3*10**8; #velocity of light(m/sec)\n",
+ "lamda0=3.465*10**-6; #wavelength(m)\n",
+ "\n",
+ "#Calculation\n",
+ "mew=m*m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "k=4*math.pi**2*mew*(c/lamda0)**2; #force constant(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"force constant is\",round(k,1),\"N/m\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force constant is 484.7 N/m\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lamdae=4358.3*10**-8; #excited wavelength(cm)\n",
+ "lamda=4768.5*10**-8; #wavelength(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "wne=1/lamdae; #wave number of exciting radiation(per cm)\n",
+ "wn=1/lamda; #wave number of Raman line(per cm)\n",
+ "new=wne-wn; #vibrational frequency(per cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"vibrational frequency is\",round(new),\"per cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vibrational frequency is 1974.0 per cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "c=3*10**8; #speed of light(m/s)\n",
+ "sixB=346; #1st rotational Raman line(per cm)\n",
+ "m1=1.673*10**-27; #mass of proton(kg)\n",
+ "\n",
+ "#Calculation\n",
+ "m2=m1;\n",
+ "B=(sixB/6)*100; #average spacing(per m)\n",
+ "I=h/(8*math.pi**2*B*c); \n",
+ "mew=m1*m2/(m1+m2); #reduced mass(kg)\n",
+ "r=math.sqrt(I/mew); #bond length(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"bond length is\",round(r*10**10,3),\"*10**-10 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "bond length is 0.762 *10**-10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=120*10**6; #frequency(Hz)\n",
+ "mewn=5.0508*10**-27;\n",
+ "\n",
+ "#Calculation\n",
+ "B0=h*new/(gN*mewn); #magnetic field strength(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field strength is\",round(B0,3),\"T\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field strength is 2.819 T\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "gN=5.585; #value of gN\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "mewn=5.0508*10**-27;\n",
+ "B0=1.65; #magnetic field(T)\n",
+ "new=510*10**6; #frequency separation(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "new0=gN*mewn*B0/h;\n",
+ "delta=new/new0; #chemical shift(ppm)\n",
+ "\n",
+ "#Result\n",
+ "print \"chemical shift is\",round(delta,2),\"ppm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chemical shift is 7.26 ppm\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "h=6.626*10**-34; #planck's constant(Js)\n",
+ "new=35*10**9; #frequency(Hz)\n",
+ "mewB=9.27*10**-24;\n",
+ "B0=1.3; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "g=h*new/(mewB*B0); #electron g-factor\n",
+ "\n",
+ "#Result\n",
+ "print \"electron g-factor is\",round(g,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electron g-factor is 1.924\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/1.png b/Modern_Physics_By_G.Aruldas/screenshots/1.png
new file mode 100755
index 00000000..4282275d
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/1.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/1_1.png b/Modern_Physics_By_G.Aruldas/screenshots/1_1.png
new file mode 100755
index 00000000..4282275d
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/1_1.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/1_2.png b/Modern_Physics_By_G.Aruldas/screenshots/1_2.png
new file mode 100755
index 00000000..4282275d
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/1_2.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/1_3.png b/Modern_Physics_By_G.Aruldas/screenshots/1_3.png
new file mode 100755
index 00000000..4282275d
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/1_3.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/2.png b/Modern_Physics_By_G.Aruldas/screenshots/2.png
new file mode 100755
index 00000000..9e1e8cf6
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/2.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/2_1.png b/Modern_Physics_By_G.Aruldas/screenshots/2_1.png
new file mode 100755
index 00000000..9e1e8cf6
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/2_1.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/2_2.png b/Modern_Physics_By_G.Aruldas/screenshots/2_2.png
new file mode 100755
index 00000000..9e1e8cf6
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/2_2.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/2_3.png b/Modern_Physics_By_G.Aruldas/screenshots/2_3.png
new file mode 100755
index 00000000..9e1e8cf6
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/2_3.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/3.png b/Modern_Physics_By_G.Aruldas/screenshots/3.png
new file mode 100755
index 00000000..662e6b45
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/3.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/3_1.png b/Modern_Physics_By_G.Aruldas/screenshots/3_1.png
new file mode 100755
index 00000000..662e6b45
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/3_1.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/3_2.png b/Modern_Physics_By_G.Aruldas/screenshots/3_2.png
new file mode 100755
index 00000000..662e6b45
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/3_2.png
Binary files differ
diff --git a/Modern_Physics_By_G.Aruldas/screenshots/3_3.png b/Modern_Physics_By_G.Aruldas/screenshots/3_3.png
new file mode 100755
index 00000000..662e6b45
--- /dev/null
+++ b/Modern_Physics_By_G.Aruldas/screenshots/3_3.png
Binary files differ
diff --git a/Optical_Communication_/Chapter_2.ipynb b/Optical_Communication/Chapter_2.ipynb
index ddfaa1d5..ddfaa1d5 100755
--- a/Optical_Communication_/Chapter_2.ipynb
+++ b/Optical_Communication/Chapter_2.ipynb
diff --git a/Optical_Communication_/Chapter_4.ipynb b/Optical_Communication/Chapter_4.ipynb
index 875e1b2a..875e1b2a 100755
--- a/Optical_Communication_/Chapter_4.ipynb
+++ b/Optical_Communication/Chapter_4.ipynb
diff --git a/Optical_Communication_/Chapter_5.ipynb b/Optical_Communication/Chapter_5.ipynb
index 6b192b74..6b192b74 100755
--- a/Optical_Communication_/Chapter_5.ipynb
+++ b/Optical_Communication/Chapter_5.ipynb
diff --git a/Optical_Communication_/Chapter_6.ipynb b/Optical_Communication/Chapter_6.ipynb
index dd5d0e2a..dd5d0e2a 100755
--- a/Optical_Communication_/Chapter_6.ipynb
+++ b/Optical_Communication/Chapter_6.ipynb
diff --git a/Optical_Communication_/screenshots/finding_angles.png b/Optical_Communication/screenshots/finding_angles.png
index e05d7786..e05d7786 100755
--- a/Optical_Communication_/screenshots/finding_angles.png
+++ b/Optical_Communication/screenshots/finding_angles.png
Binary files differ
diff --git a/Optical_Communication_/screenshots/optical_power.png b/Optical_Communication/screenshots/optical_power.png
index 2e06f4a8..2e06f4a8 100755
--- a/Optical_Communication_/screenshots/optical_power.png
+++ b/Optical_Communication/screenshots/optical_power.png
Binary files differ
diff --git a/Optical_Communication_/screenshots/responsivity.png b/Optical_Communication/screenshots/responsivity.png
index b0cd045d..b0cd045d 100755
--- a/Optical_Communication_/screenshots/responsivity.png
+++ b/Optical_Communication/screenshots/responsivity.png
Binary files differ
diff --git a/Optical_Fiber_Communication/Chapter10.ipynb b/Optical_Fiber_Communication/Chapter10.ipynb
new file mode 100755
index 00000000..22b4a658
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter10.ipynb
@@ -0,0 +1,487 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cf07634df992def504a143e6666719b95350cb053657de1ded2573417a8b0796"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Optical Fiber System-II"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=30.8*math.pow(10,-12) # electro optice coefficient in m/V\n",
+ "L=3*math.pow(10,-2) # length in m\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "n=2.1\n",
+ "d=30*math.pow(10,-6) # distance between the electrodes in m\n",
+ "V=(y*d)/(math.pow(n,3)*r*L) # voltage required to have a pi radian phase change in volt\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The voltage required to have a pi radian phase change = \",V,\"volt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The voltage required to have a pi radian phase change = 4.558 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable initialisation\n",
+ "a_fc=4 #fider cable loss in dB/km\n",
+ "aj=0.7 #splice loss in db/km\n",
+ "L=5 # length in km\n",
+ "a_cr1=4 # connector losses\n",
+ "a_cr2=3.5 # connector losses\n",
+ "CL=(a_fc+aj)*L+(a_cr1+a_cr2) # total channel loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total channel loss = \",CL,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total channel loss = 31 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "p=0.5*math.pow(10,-9) # pulse broadening in s/km\n",
+ "L=12 # length in km\n",
+ "\n",
+ "# calculations\n",
+ "Pt=p*math.sqrt(L) # with mode coupling, the total rms broadening in s\n",
+ "BT=20*math.pow(10,6)\n",
+ "DL=2*pow((2*Pt*BT*math.sqrt(2)),4) # dispersion equalization penalty in dB\n",
+ "Pt1=p*L # without mode coupling, the total rms broadening in s\n",
+ "DL1=2*math.pow((2*Pt1*BT*math.sqrt(2)),4) # without mode coupling, equalization penalty in dB\n",
+ "DL2=2*math.pow((2*Pt1*150*math.pow(10,6)*math.sqrt(2)),4) # without mode coupling,dispersion equalization penalty with 125 Mb/s\n",
+ "DL3=2*math.pow((2*Pt*125*math.pow(10,6)*math.sqrt(2)),4) # with mode coupling,dispersion equalization penalty with 125 Mb/s\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" With mode coupling, the total rms broadening = \",Pt*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The dispersion equalization penalty = \",DL*pow(10,4),\"dB\"))\n",
+ "print ('%s %.f %s' %(\"\\n without mode coupling, the total rms broadening = \",Pt1*pow(10,9),\"dB\"))\n",
+ "print ('%s %.3f %s' %(\"\\n without mode coupling, equalization penalty = \",DL1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n without mode coupling,dispersion equalization penalty with 125 Mb/s = \",DL2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n with mode coupling,dispersion equalization penalty with 125 Mb/s = \",DL3,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " With mode coupling, the total rms broadening = 1.73 ns\n",
+ "\n",
+ " The dispersion equalization penalty = 1.84 dB\n",
+ "\n",
+ " without mode coupling, the total rms broadening = 6 dB\n",
+ "\n",
+ " without mode coupling, equalization penalty = 0.027 dB\n",
+ "\n",
+ " without mode coupling,dispersion equalization penalty with 125 Mb/s = 83.98 dB\n",
+ "\n",
+ " with mode coupling,dispersion equalization penalty with 125 Mb/s = 0.28 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=-2.5 # mean optical power launched into the fiber in dBm\n",
+ "Po=-45 # mean output optical power available at the receiver in dBm\n",
+ "a_fc=0.35 # fider cable loss in dB/km\n",
+ "aj=0.1 # splice loss in db/km\n",
+ "a_cr=1 # connector losses\n",
+ "Ma=6 # safety margin in dB\n",
+ "L=(Pi-Po-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 25 Mbps\n",
+ "Po1=-35 # mean output optical power available at the receiver in dBm\n",
+ "L1=(Pi-Po1-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 350 Mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The length when system operating at 25 Mbps = \",L,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The length when system operating at 350 Mbps = \",L1,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The length when system operating at 25 Mbps = 78.89 km\n",
+ "\n",
+ " The length when system operating at 350 Mbps = 56.67 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-526"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Tx=-80 # transmitter output in dBm\n",
+ "Rx=-40 # receiver sensitivity in dBm\n",
+ "sm=32 # system margin in dB\n",
+ "L=10 # in km\n",
+ "fl=2*L # fider loss in dB\n",
+ "cl=1 # detector coupling loss in dB\n",
+ "tl=0.4*8 # total splicing loss in dB\n",
+ "ae=5 # angle effects & future splice in dB\n",
+ "ta=29.2 # total attenuation in dB\n",
+ "Ep=2.8 # excess power margin in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The fider loss = \",fl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total splicing loss = \",tl,\"dB\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The fangle effects & future splice = \",ae,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total attenuation = \",ta,\"dB\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The excess power margin = \",Ep,\"dB\"))\n",
+ "print (\"\\n Hence the system can operate with small excess power margin \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fider loss = 20.0 dB\n",
+ "\n",
+ " The total splicing loss = 3.20 dB\n",
+ "\n",
+ " The fangle effects & future splice = 5.0 dB\n",
+ "\n",
+ " The total attenuation = 29.20 dB\n",
+ "\n",
+ " The excess power margin = 2.8 dB\n",
+ "\n",
+ " Hence the system can operate with small excess power margin \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Lc=1 # connector loss in db\n",
+ "Ls=5 # star coupler insertion loss in dB\n",
+ "af=2 # fider loss in dB\n",
+ "Ps=-14 # transmitted power in dBm\n",
+ "Pr=-49 # receiver sensitivity in dBm\n",
+ "sm=6 # system margin in dB\n",
+ "N=16.0\n",
+ "L=(Ps-Pr-Ls-4*Lc-(10*math.log(N))/math.log(10)-sm)/(2*af) # max transmission length in km when transmission star coupler is used\n",
+ "N1=32\n",
+ "L1=(Ps-Pr-Ls-4*Lc-(10*math.log(N1))/math.log(10)-sm)/(2*af) # max transmission length in km when reflection star coupler is used\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max transmission length when transmission star coupler is used = \",L,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max transmission length when reflection star coupler is used = \",L1,\"km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max transmission length when transmission star coupler is used = 1.99 km\n",
+ "\n",
+ " The max transmission length when reflection star coupler is used = 1.24 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "y=860*math.pow(10,-9) # wavelength in m\n",
+ "L=5000 # length in m\n",
+ "X=0.024\n",
+ "dy=20*math.pow(10,-9) # spectral width in m\n",
+ "dts=6*math.pow(10,-9) # silica optical link rise time in s\n",
+ "dtr=8*math.pow(10,-9) # detector rise in s\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "dtm=-(L*dy*X)/(c*y) # material dispersion delay time in s\n",
+ "id=2.5*math.pow(10,-12) # intermodel dispersion in s/m\n",
+ "dti=id*L # intermodel dispersion delay time\n",
+ "dtsy=math.sqrt(math.pow(dts,2)+math.pow(dtr,2)+math.pow(dtm,2)+math.pow(dti,2)) # system rise time in s\n",
+ "Br_max=0.7/dtsy # max bit rate for NRZ coding in bit/s\n",
+ "Br_max1=0.35/dtsy # max bit rate for RZ coding in bit/s\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The system rise time = \",dtsy*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate for NRZ coding = \",Br_max/pow(10,6),\"Mbit/s\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate for RZ coding = \",Br_max1/pow(10,6),\"Mbit/s\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time = 18.51 ns\n",
+ "\n",
+ " The max bit rate for NRZ coding = 37.81 Mbit/s\n",
+ "\n",
+ " The max bit rate for RZ coding = 18.90 Mbit/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Br=50*math.pow(10,6) # data rate in b/s\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n1=1.47\n",
+ "dl=0.02\n",
+ "n12=n1*dl # the difference b/w n1 and n2\n",
+ "L_si=(0.35*c)/(n12*Br) # transmission distance for Si fiber\n",
+ "L_GI=(2.8*c*math.pow(n1,2))/(2*n1*n12*Br) # transmission distance for GRIN fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transmission distance for Si fiber = \",L_si,\"m\"))\n",
+ "print ('%s %.f %s' %(\"\\n The transmission distance for GRIN fiber = \",L_GI,\"m\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission distance for Si fiber = 71.429 m\n",
+ "\n",
+ " The transmission distance for GRIN fiber = 420 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Br=20*math.pow(10,6) # data rate in b/s\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=86*math.pow(10,-9)# wavelength in m\n",
+ "dy=30*math.pow(10,-9) # spectral width in m\n",
+ "X=0.024\n",
+ "Tb=1/Br\n",
+ "Lmax=(0.35*Tb*c*y)/(dy*X)# material dispersion limited transmission distance for RZ coding in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The material dispersion limited transmission distance = \",Lmax,\"m\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion limited transmission distance = 627.083 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "y=860*math.pow(10,-9) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n1=1.47 \n",
+ "dl=0.02 \n",
+ "n12=n1*dl # the difference b/w n1 and n2\n",
+ "La=1/1000.0 # loss a in dB/m\n",
+ "Pr=-65 # receiver power in dB\n",
+ "Pt=-5 #transmitted power in dB\n",
+ "dy=30*math.pow(10,-9) # line width in m\n",
+ "X=0.024\n",
+ "Lmax=(0.35*c*y)/(dy*X) # material dispersion limited distance for RZ coding in m\n",
+ "L_GI=(1.4*c*n1)/(n12)# model dispersion limited distance for RZ coding in m\n",
+ "L_At=(Pt-Pr)/(La) # attenuation limited distance for RZ coding in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion limited distance = \",Lmax/pow(10,10),\"*10^10*1/Br m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The model dispersion limited distance = \",L_GI/pow(10,10),\"*10^10*1/Br m\"))\n",
+ "print ('%s %.f %s' %(\"\\n The attenuation limited distance = \",L_At/pow(10,3),\"-20log(Br) km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion limited distance = 12.54 *10^10*1/Br m\n",
+ "\n",
+ " The model dispersion limited distance = 2.1 *10^10*1/Br m\n",
+ "\n",
+ " The attenuation limited distance = 60 -20log(Br) km\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter10_1.ipynb b/Optical_Fiber_Communication/Chapter10_1.ipynb
new file mode 100755
index 00000000..22b4a658
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter10_1.ipynb
@@ -0,0 +1,487 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cf07634df992def504a143e6666719b95350cb053657de1ded2573417a8b0796"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Optical Fiber System-II"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=30.8*math.pow(10,-12) # electro optice coefficient in m/V\n",
+ "L=3*math.pow(10,-2) # length in m\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "n=2.1\n",
+ "d=30*math.pow(10,-6) # distance between the electrodes in m\n",
+ "V=(y*d)/(math.pow(n,3)*r*L) # voltage required to have a pi radian phase change in volt\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The voltage required to have a pi radian phase change = \",V,\"volt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The voltage required to have a pi radian phase change = 4.558 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable initialisation\n",
+ "a_fc=4 #fider cable loss in dB/km\n",
+ "aj=0.7 #splice loss in db/km\n",
+ "L=5 # length in km\n",
+ "a_cr1=4 # connector losses\n",
+ "a_cr2=3.5 # connector losses\n",
+ "CL=(a_fc+aj)*L+(a_cr1+a_cr2) # total channel loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total channel loss = \",CL,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total channel loss = 31 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "p=0.5*math.pow(10,-9) # pulse broadening in s/km\n",
+ "L=12 # length in km\n",
+ "\n",
+ "# calculations\n",
+ "Pt=p*math.sqrt(L) # with mode coupling, the total rms broadening in s\n",
+ "BT=20*math.pow(10,6)\n",
+ "DL=2*pow((2*Pt*BT*math.sqrt(2)),4) # dispersion equalization penalty in dB\n",
+ "Pt1=p*L # without mode coupling, the total rms broadening in s\n",
+ "DL1=2*math.pow((2*Pt1*BT*math.sqrt(2)),4) # without mode coupling, equalization penalty in dB\n",
+ "DL2=2*math.pow((2*Pt1*150*math.pow(10,6)*math.sqrt(2)),4) # without mode coupling,dispersion equalization penalty with 125 Mb/s\n",
+ "DL3=2*math.pow((2*Pt*125*math.pow(10,6)*math.sqrt(2)),4) # with mode coupling,dispersion equalization penalty with 125 Mb/s\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" With mode coupling, the total rms broadening = \",Pt*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The dispersion equalization penalty = \",DL*pow(10,4),\"dB\"))\n",
+ "print ('%s %.f %s' %(\"\\n without mode coupling, the total rms broadening = \",Pt1*pow(10,9),\"dB\"))\n",
+ "print ('%s %.3f %s' %(\"\\n without mode coupling, equalization penalty = \",DL1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n without mode coupling,dispersion equalization penalty with 125 Mb/s = \",DL2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n with mode coupling,dispersion equalization penalty with 125 Mb/s = \",DL3,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " With mode coupling, the total rms broadening = 1.73 ns\n",
+ "\n",
+ " The dispersion equalization penalty = 1.84 dB\n",
+ "\n",
+ " without mode coupling, the total rms broadening = 6 dB\n",
+ "\n",
+ " without mode coupling, equalization penalty = 0.027 dB\n",
+ "\n",
+ " without mode coupling,dispersion equalization penalty with 125 Mb/s = 83.98 dB\n",
+ "\n",
+ " with mode coupling,dispersion equalization penalty with 125 Mb/s = 0.28 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-522"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=-2.5 # mean optical power launched into the fiber in dBm\n",
+ "Po=-45 # mean output optical power available at the receiver in dBm\n",
+ "a_fc=0.35 # fider cable loss in dB/km\n",
+ "aj=0.1 # splice loss in db/km\n",
+ "a_cr=1 # connector losses\n",
+ "Ma=6 # safety margin in dB\n",
+ "L=(Pi-Po-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 25 Mbps\n",
+ "Po1=-35 # mean output optical power available at the receiver in dBm\n",
+ "L1=(Pi-Po1-a_cr-Ma)/(a_fc+aj) # length in km when system operating at 350 Mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The length when system operating at 25 Mbps = \",L,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The length when system operating at 350 Mbps = \",L1,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The length when system operating at 25 Mbps = 78.89 km\n",
+ "\n",
+ " The length when system operating at 350 Mbps = 56.67 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-526"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Tx=-80 # transmitter output in dBm\n",
+ "Rx=-40 # receiver sensitivity in dBm\n",
+ "sm=32 # system margin in dB\n",
+ "L=10 # in km\n",
+ "fl=2*L # fider loss in dB\n",
+ "cl=1 # detector coupling loss in dB\n",
+ "tl=0.4*8 # total splicing loss in dB\n",
+ "ae=5 # angle effects & future splice in dB\n",
+ "ta=29.2 # total attenuation in dB\n",
+ "Ep=2.8 # excess power margin in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The fider loss = \",fl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total splicing loss = \",tl,\"dB\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The fangle effects & future splice = \",ae,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total attenuation = \",ta,\"dB\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The excess power margin = \",Ep,\"dB\"))\n",
+ "print (\"\\n Hence the system can operate with small excess power margin \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fider loss = 20.0 dB\n",
+ "\n",
+ " The total splicing loss = 3.20 dB\n",
+ "\n",
+ " The fangle effects & future splice = 5.0 dB\n",
+ "\n",
+ " The total attenuation = 29.20 dB\n",
+ "\n",
+ " The excess power margin = 2.8 dB\n",
+ "\n",
+ " Hence the system can operate with small excess power margin \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Lc=1 # connector loss in db\n",
+ "Ls=5 # star coupler insertion loss in dB\n",
+ "af=2 # fider loss in dB\n",
+ "Ps=-14 # transmitted power in dBm\n",
+ "Pr=-49 # receiver sensitivity in dBm\n",
+ "sm=6 # system margin in dB\n",
+ "N=16.0\n",
+ "L=(Ps-Pr-Ls-4*Lc-(10*math.log(N))/math.log(10)-sm)/(2*af) # max transmission length in km when transmission star coupler is used\n",
+ "N1=32\n",
+ "L1=(Ps-Pr-Ls-4*Lc-(10*math.log(N1))/math.log(10)-sm)/(2*af) # max transmission length in km when reflection star coupler is used\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max transmission length when transmission star coupler is used = \",L,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max transmission length when reflection star coupler is used = \",L1,\"km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max transmission length when transmission star coupler is used = 1.99 km\n",
+ "\n",
+ " The max transmission length when reflection star coupler is used = 1.24 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "y=860*math.pow(10,-9) # wavelength in m\n",
+ "L=5000 # length in m\n",
+ "X=0.024\n",
+ "dy=20*math.pow(10,-9) # spectral width in m\n",
+ "dts=6*math.pow(10,-9) # silica optical link rise time in s\n",
+ "dtr=8*math.pow(10,-9) # detector rise in s\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "dtm=-(L*dy*X)/(c*y) # material dispersion delay time in s\n",
+ "id=2.5*math.pow(10,-12) # intermodel dispersion in s/m\n",
+ "dti=id*L # intermodel dispersion delay time\n",
+ "dtsy=math.sqrt(math.pow(dts,2)+math.pow(dtr,2)+math.pow(dtm,2)+math.pow(dti,2)) # system rise time in s\n",
+ "Br_max=0.7/dtsy # max bit rate for NRZ coding in bit/s\n",
+ "Br_max1=0.35/dtsy # max bit rate for RZ coding in bit/s\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The system rise time = \",dtsy*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate for NRZ coding = \",Br_max/pow(10,6),\"Mbit/s\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate for RZ coding = \",Br_max1/pow(10,6),\"Mbit/s\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The system rise time = 18.51 ns\n",
+ "\n",
+ " The max bit rate for NRZ coding = 37.81 Mbit/s\n",
+ "\n",
+ " The max bit rate for RZ coding = 18.90 Mbit/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#variable declaration\n",
+ "Br=50*math.pow(10,6) # data rate in b/s\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n1=1.47\n",
+ "dl=0.02\n",
+ "n12=n1*dl # the difference b/w n1 and n2\n",
+ "L_si=(0.35*c)/(n12*Br) # transmission distance for Si fiber\n",
+ "L_GI=(2.8*c*math.pow(n1,2))/(2*n1*n12*Br) # transmission distance for GRIN fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transmission distance for Si fiber = \",L_si,\"m\"))\n",
+ "print ('%s %.f %s' %(\"\\n The transmission distance for GRIN fiber = \",L_GI,\"m\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission distance for Si fiber = 71.429 m\n",
+ "\n",
+ " The transmission distance for GRIN fiber = 420 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Br=20*math.pow(10,6) # data rate in b/s\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=86*math.pow(10,-9)# wavelength in m\n",
+ "dy=30*math.pow(10,-9) # spectral width in m\n",
+ "X=0.024\n",
+ "Tb=1/Br\n",
+ "Lmax=(0.35*Tb*c*y)/(dy*X)# material dispersion limited transmission distance for RZ coding in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The material dispersion limited transmission distance = \",Lmax,\"m\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion limited transmission distance = 627.083 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "y=860*math.pow(10,-9) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n1=1.47 \n",
+ "dl=0.02 \n",
+ "n12=n1*dl # the difference b/w n1 and n2\n",
+ "La=1/1000.0 # loss a in dB/m\n",
+ "Pr=-65 # receiver power in dB\n",
+ "Pt=-5 #transmitted power in dB\n",
+ "dy=30*math.pow(10,-9) # line width in m\n",
+ "X=0.024\n",
+ "Lmax=(0.35*c*y)/(dy*X) # material dispersion limited distance for RZ coding in m\n",
+ "L_GI=(1.4*c*n1)/(n12)# model dispersion limited distance for RZ coding in m\n",
+ "L_At=(Pt-Pr)/(La) # attenuation limited distance for RZ coding in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion limited distance = \",Lmax/pow(10,10),\"*10^10*1/Br m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The model dispersion limited distance = \",L_GI/pow(10,10),\"*10^10*1/Br m\"))\n",
+ "print ('%s %.f %s' %(\"\\n The attenuation limited distance = \",L_At/pow(10,3),\"-20log(Br) km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion limited distance = 12.54 *10^10*1/Br m\n",
+ "\n",
+ " The model dispersion limited distance = 2.1 *10^10*1/Br m\n",
+ "\n",
+ " The attenuation limited distance = 60 -20log(Br) km\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter2.ipynb b/Optical_Fiber_Communication/Chapter2.ipynb
new file mode 100755
index 00000000..32f1c5a2
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter2.ipynb
@@ -0,0 +1,721 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ab3713dc22f25eef68710ebd9039d7fba92418b0de95b0ba48c70d6376545f8e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2- Optical Fiber"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo- 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.50 #cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x=math.asin(n2/n1) #Critical angle in radians\n",
+ "x1=x*180/math.pi #Critical angle in degree\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # Numerical aperture\n",
+ "x_a=math.asin(n_a)*180/math.pi\n",
+ "x_a1=math.ceil(x_a) # Acceptance angle in Degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" Critical angle in degree= \", x1,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n Numerical aperture= \",n_a))\n",
+ "print ('%s %.1f %s' %(\"\\n Acceptance angle in degree= \",x_a1,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Critical angle in degree= 75.41 degree\n",
+ "\n",
+ " Numerical aperture= 0.39 \n",
+ "\n",
+ " Acceptance angle in degree= 23.0 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2:PgNo-21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "c=3*math.pow(10,8) #speed of light in m/s\n",
+ "v=2*math.pow(10,8) # in m/s\n",
+ "# calculations\n",
+ "n1=c/v\n",
+ "x=75 # in degree\n",
+ "n2=n1*math.sin((x*math.pi/180))\n",
+ "n_2=1.44\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3:PgNo-25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl))# numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi #acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n Acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.30\n",
+ "\n",
+ " Acceptance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4:PgNo-27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.39\n",
+ "\n",
+ " acceptance angle in degree = 22.79 degree\n",
+ "\n",
+ " critical angle in degree = 75.16 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5:PgNo- 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6:PgNo-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7:PgNo-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n2=1.59 # cladding refractive index\n",
+ "n_a=0.2 # numerical aperture\n",
+ "n_1=1.60 # core refractive index\n",
+ "n_o=1.33\n",
+ "\n",
+ "# Calculations\n",
+ "n1=math.sqrt(math.pow(n2,2)+math.pow(n_a,2)) # core refractive index\n",
+ "A=(math.sqrt(math.pow(n_1,2)-math.pow(n2,2)))/n_o\n",
+ "x_a=(math.asin(A))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi #critical angle in degree\n",
+ "y=1300*math.pow(10,(-9)) # in meter\n",
+ "a=25*math.pow(10,(-6)) # in meter\n",
+ "v=(2*math.pi*a*n_a)/y\n",
+ "V=math.floor(v)\n",
+ "M=math.pow(V,2)/2 # number of modes transmitted\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "print ('%s %d' %(\"\\n number of modes transmitted = \",M))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " acceptance angle in degree = 7.72 degree\n",
+ "\n",
+ " critical angle in degree = 82.83 degree\n",
+ "\n",
+ " number of modes transmitted = 288\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8:PgNo-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_e=(math.asin(n_a))*180/math.pi # the maximum entrance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n The maximum entrance angle in degree = \",x_e,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.3\n",
+ "\n",
+ " The maximum entrance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9:PgNo-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.44 # core refractive index\n",
+ "dl=0.02\n",
+ "\n",
+ "# Calculations\n",
+ "n_a=n1*math.sqrt(2*dl)\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print \" Numerical aperture = \",n_a\n",
+ "print ('%s %.2f %s'%(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.288\n",
+ "\n",
+ " acceptance angle in degree = 16.74 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10:PgNo-53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=(99.0/100.0)*1.50 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=math.asin(n2/n1)*(180/math.pi) # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "dl=(n1-n2)/n1 # fractional difference\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" numerical aperture = \",n_m))\n",
+ "print ('%s %.2f' %(\"\\n fractional difference = \",dl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture = 0.38\n",
+ "\n",
+ " fractional difference = 0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 83.29 degree\n",
+ "\n",
+ " acceptance angle = 9.82 degree\n",
+ "\n",
+ " numerical aperture = 0.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n_m=0.204 #numerical aperture\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_m/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1*(1-dl) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.44\n",
+ "\n",
+ " cladding refractive index = 1.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_2=n1-(n1*dl) # cladding refractive index\n",
+ "x_c=(math.asin(n_2/n1))*180/math.pi #critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "n_c=math.pow((n_m),2)*100 # percentage of light\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle= \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s'%(\"\\n percentage of light= \",n_c,\"%\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle= 75.16 degree\n",
+ "\n",
+ " acceptance angle= 22.59 degree\n",
+ "\n",
+ " numerical aperture= 0.38\n",
+ "\n",
+ " percentage of light= 14.75 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=math.pi*math.pow((n_m),2) # acceptance angle in radian\n",
+ "n2_1=(1-dl) # the ratio of n2 to n1\n",
+ "x_c=(math.asin(n2_1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"radian\"))\n",
+ "print ('%s %.2f %s'%(\"\\n critical angle= \",x_c,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.21\n",
+ "\n",
+ " acceptance angle= 0.14 radian\n",
+ "\n",
+ " critical angle= 81.89 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter2_1.ipynb b/Optical_Fiber_Communication/Chapter2_1.ipynb
new file mode 100755
index 00000000..32f1c5a2
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter2_1.ipynb
@@ -0,0 +1,721 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ab3713dc22f25eef68710ebd9039d7fba92418b0de95b0ba48c70d6376545f8e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2- Optical Fiber"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo- 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.50 #cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x=math.asin(n2/n1) #Critical angle in radians\n",
+ "x1=x*180/math.pi #Critical angle in degree\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # Numerical aperture\n",
+ "x_a=math.asin(n_a)*180/math.pi\n",
+ "x_a1=math.ceil(x_a) # Acceptance angle in Degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" Critical angle in degree= \", x1,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n Numerical aperture= \",n_a))\n",
+ "print ('%s %.1f %s' %(\"\\n Acceptance angle in degree= \",x_a1,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Critical angle in degree= 75.41 degree\n",
+ "\n",
+ " Numerical aperture= 0.39 \n",
+ "\n",
+ " Acceptance angle in degree= 23.0 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2:PgNo-21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "c=3*math.pow(10,8) #speed of light in m/s\n",
+ "v=2*math.pow(10,8) # in m/s\n",
+ "# calculations\n",
+ "n1=c/v\n",
+ "x=75 # in degree\n",
+ "n2=n1*math.sin((x*math.pi/180))\n",
+ "n_2=1.44\n",
+ "n_a=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.42\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3:PgNo-25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl))# numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi #acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n Acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.30\n",
+ "\n",
+ " Acceptance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4:PgNo-27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.39\n",
+ "\n",
+ " acceptance angle in degree = 22.79 degree\n",
+ "\n",
+ " critical angle in degree = 75.16 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5:PgNo- 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6:PgNo-34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "dl=0.012\n",
+ "n_a=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_a/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1-(dl*n1)# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.42\n",
+ "\n",
+ " cladding refractive index = 1.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7:PgNo-37"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n2=1.59 # cladding refractive index\n",
+ "n_a=0.2 # numerical aperture\n",
+ "n_1=1.60 # core refractive index\n",
+ "n_o=1.33\n",
+ "\n",
+ "# Calculations\n",
+ "n1=math.sqrt(math.pow(n2,2)+math.pow(n_a,2)) # core refractive index\n",
+ "A=(math.sqrt(math.pow(n_1,2)-math.pow(n2,2)))/n_o\n",
+ "x_a=(math.asin(A))*180/math.pi # acceptance angle in degree\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi #critical angle in degree\n",
+ "y=1300*math.pow(10,(-9)) # in meter\n",
+ "a=25*math.pow(10,(-6)) # in meter\n",
+ "v=(2*math.pi*a*n_a)/y\n",
+ "V=math.floor(v)\n",
+ "M=math.pow(V,2)/2 # number of modes transmitted\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" acceptance angle in degree = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n critical angle in degree = \",x_c,\"degree\"))\n",
+ "print ('%s %d' %(\"\\n number of modes transmitted = \",M))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " acceptance angle in degree = 7.72 degree\n",
+ "\n",
+ " critical angle in degree = 82.83 degree\n",
+ "\n",
+ " number of modes transmitted = 288\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8:PgNo-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_e=(math.asin(n_a))*180/math.pi # the maximum entrance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f' %(\" Numerical aperture = \",n_a))\n",
+ "print ('%s %.2f %s' %(\"\\n The maximum entrance angle in degree = \",x_e,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.3\n",
+ "\n",
+ " The maximum entrance angle in degree = 17.46 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9:PgNo-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.44 # core refractive index\n",
+ "dl=0.02\n",
+ "\n",
+ "# Calculations\n",
+ "n_a=n1*math.sqrt(2*dl)\n",
+ "n_a=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=(math.asin(n_a))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print \" Numerical aperture = \",n_a\n",
+ "print ('%s %.2f %s'%(\"\\n acceptance angle in degree = \",x_a,\"degree\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Numerical aperture = 0.288\n",
+ "\n",
+ " acceptance angle in degree = 16.74 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10:PgNo-53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=(99.0/100.0)*1.50 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=math.asin(n2/n1)*(180/math.pi) # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "dl=(n1-n2)/n1 # fractional difference\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" numerical aperture = \",n_m))\n",
+ "print ('%s %.2f' %(\"\\n fractional difference = \",dl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture = 0.38\n",
+ "\n",
+ " fractional difference = 0.03\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle = \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 83.29 degree\n",
+ "\n",
+ " acceptance angle = 9.82 degree\n",
+ "\n",
+ " numerical aperture = 0.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n_m=0.204 #numerical aperture\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n1=n_m/(math.sqrt(2*dl)) # core refractive index\n",
+ "n2=n1*(1-dl) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" core refractive index = \",n1))\n",
+ "print ('%s %.2f' %(\"\\n cladding refractive index = \",n2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core refractive index = 1.44\n",
+ "\n",
+ " cladding refractive index = 1.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_2=n1-(n1*dl) # cladding refractive index\n",
+ "x_c=(math.asin(n_2/n1))*180/math.pi #critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n_2,2)) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle = \",x_c,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture = \",n_m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle = 81.89 degree\n",
+ "\n",
+ " numerical aperture = 0.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "x_c=(math.asin(n2/n1))*180/math.pi # critical angle in degree\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "x_a=(math.asin(n_m))*180/math.pi # acceptance angle in degree\n",
+ "n_c=math.pow((n_m),2)*100 # percentage of light\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" critical angle= \",x_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"degree\"))\n",
+ "print ('%s %.2f' %(\"\\n numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s'%(\"\\n percentage of light= \",n_c,\"%\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " critical angle= 75.16 degree\n",
+ "\n",
+ " acceptance angle= 22.59 degree\n",
+ "\n",
+ " numerical aperture= 0.38\n",
+ "\n",
+ " percentage of light= 14.75 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "x_a=math.pi*math.pow((n_m),2) # acceptance angle in radian\n",
+ "n2_1=(1-dl) # the ratio of n2 to n1\n",
+ "x_c=(math.asin(n2_1))*180/math.pi # critical angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.2f %s' %(\"\\n acceptance angle= \",x_a,\"radian\"))\n",
+ "print ('%s %.2f %s'%(\"\\n critical angle= \",x_c,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.21\n",
+ "\n",
+ " acceptance angle= 0.14 radian\n",
+ "\n",
+ " critical angle= 81.89 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter3.ipynb b/Optical_Fiber_Communication/Chapter3.ipynb
new file mode 100755
index 00000000..4ff5c94e
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter3.ipynb
@@ -0,0 +1,1352 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b710cf5b5be9f51b281cf20f926c177245f0b5c79ffccf88ed3e06dd1ffcbfa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3- Optical Fiber Fabrication"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "m=1000 # the no. of models\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*m)\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(pow(n1,2)-math.pow(n2,2)))*math.pow(10,6)) # core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2e %s' %(\" core radius= \",a ,\"micrometer\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core radius= 3.79e-11 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.505 # core refractive index\n",
+ "n2=1.502 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "v=2.4\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))*math.pow(10,6)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.3f %s' %(\"\\n core radius= \",a,\"micrometer\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.09\n",
+ "\n",
+ " core radius= 5.228 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3: PgNo-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "m=0 # for the dominant mode\n",
+ "v=0 # for the dominant mode\n",
+ "y=1.3 # in micrometer\n",
+ "a=5.0 # radius in micrometer\n",
+ "\n",
+ "# Calculations\n",
+ "k=(2*math.pi)/y\n",
+ "b=math.pow(k,2)*math.pow(n1,2)-(2*k*n1*math.sqrt(2*dl))/a\n",
+ "B=math.sqrt(b) # propagation constant in rad/um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" propagation constant= \",B,\"rad/um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " propagation constant= 7.221 rad/um\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4: PgNo-86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Printing the results\n",
+ "b=1/2 # propagtion constant\n",
+ "print (\" normalised propagtion constant\")\n",
+ "print (\"\\n B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n thus when b=1/2\")\n",
+ "print (\"\\n B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\")\n",
+ "print (\"\\n which gives its rms value\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised propagtion constant\n",
+ "\n",
+ " B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " thus when b=1/2\n",
+ "\n",
+ " B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\n",
+ "\n",
+ " which gives its rms value\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5: PgNo-87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=3.6 #core refractive index\n",
+ "n2=3.3 # cladding refractive index\n",
+ "d=2.0 # thickness in um\n",
+ "y=0.8 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "m=(2*d*math.sqrt(math.pow(n1,2)-math.pow(n2,2))/y) # total no. of models allowed\n",
+ "M=math.ceil(m) # total no. of models allowed\n",
+ "\n",
+ "print \" Total no. of models allowed= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total no. of models allowed= 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6: PgNo-88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "a=40*(math.pow(10,-6)) #core radius in meter\n",
+ "dl=0.015 # index difference\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2\n",
+ "m=math.ceil(M) # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modess = \",int(m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised frequency= 75.80\n",
+ "\n",
+ " The total no. of guided modess = 2873\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7: PgNo-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "a=30*(math.pow(10,-6))# core radius in meter\n",
+ "y=0.85*(math.pow(10,-6)) #wavelength in um\n",
+ "\n",
+ "# calcualtions\n",
+ "n2=n1-(n1*dl)# cladding refractive index\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2 # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Cladding refractive index= \",n2))\n",
+ "print ('%s %.3f'%(\"\\n Normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Cladding refractive index= 1.44\n",
+ "\n",
+ " Normalised frequency= 56.078\n",
+ "\n",
+ " The total no. of guided modes = 1572\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "M=1100 # the total no. of guided modes\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "v=math.sqrt(2*M)# normalised frequency\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) #core radius in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))\n",
+ "print ('%s %.2f %s' %(\"\\n The diameter of the fiber core = \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 46.90\n",
+ "\n",
+ " The diameter of the fiber core = 91.50 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "n_m=0.16 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "a=30*math.pow(10,-6) # core radius in micrometer\n",
+ "y=0.5*(math.pow(10,-6)) # wavelength in um\n",
+ "v=(2*math.pi*a*n_m)/y #normalised frequency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 60.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10: PgNo-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=3.6 # core refractive index\n",
+ "n2=3.56 # cladding refractive index\n",
+ "y=0.85*(math.pow(10,-6))# wavelength in um\n",
+ "m=1\n",
+ "n=0\n",
+ "v_c=2.405 # for planner guide\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v_c*y)/(2*math.pi*math.sqrt(math.pow(n1,2)-math.pow(n2,2)))# core radius in micrometer\n",
+ "\n",
+ "print ('%s %.2f %s' %(\"The max thickness= \",a*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The max thickness= 0.61 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example11: PgNo-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 #core refractive index\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "M=1100 # total no. of models\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*M)\n",
+ "V=math.ceil(v)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) # core radius in micrometer\n",
+ "a1=math.ceil(a)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The core diameter= \",2*a1,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The core diameter= 92.00 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example12: PgNo-96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in meter\n",
+ "v=2.4*math.pow((1+(2/2)),(0.5))# Max normalised frequency\n",
+ "a=(v*y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # Max core radius in m\n",
+ "d=2*a # The max core diameter in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s'%(\" The max core diameter in meter= \",d*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core diameter in meter= 3.657 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example13: PgNo-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Initialisation\n",
+ "n1=1.48 #core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "a=2.5 # radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/y #the normaised frequency\n",
+ "M=(v*v)/2 # number of modes\n",
+ "print \" The number of modes= \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example14: PgNo-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "y=1.3 # wavelength in um\n",
+ "v=26.6 # the normaised frequency\n",
+ "NA=(v*y)/(2*math.pi*a) #Numerical aperture\n",
+ "a_c=math.pi*math.pow((NA),2)\n",
+ "M=(v*v)/2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The number of modes= \", NA))\n",
+ "print ('%s %.3f' %(\"\\n The number of modes= \", a_c))\n",
+ "print (\"\\n Answer in textbook is wrong\")\n",
+ "print \"\\n The number of modes= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 0.220\n",
+ "\n",
+ " The number of modes= 0.152\n",
+ "\n",
+ " Answer in textbook is wrong\n",
+ "\n",
+ " The number of modes= 353\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example15: PgNo-103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Declaration of variables\n",
+ "n1=1.49 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "a=2 # radius in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "Y=1.31 # wavelength in um\n",
+ "A=(v_c*Y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # min core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The min core radius = \",A,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.276 um\n",
+ "\n",
+ " The min core radius = 2.054 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example16: PgNo-105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "NA=0.3 # Numerical aperture\n",
+ "y=1 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y # the normalised frequency\n",
+ "V=47.1 # the normalised frequency\n",
+ "M=(V*V)/4 # The mode volume\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The mode volume = \",int(M),\"guided modes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 47.12\n",
+ "\n",
+ " The mode volume = 554 guided modes\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example17: PgNo-107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example18: PgNo-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "a=50 # radius in um\n",
+ "y=1.3 #operating wavelength in um\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "N_A=0.38 \n",
+ "v=(2*math.pi*a*N_A)/y # cut of numbers\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "print ('%s %.2f'%(\" The cut of numbers = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut of numbers = 91.83\n",
+ "\n",
+ " The number of modes = 4216\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example19: PgNo-111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.5 # cladding refractive index\n",
+ "y=1.5 # operating wavelength in um\n",
+ "\n",
+ "# calculation\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(2.405*y)/(2*math.pi*NA)# max radius in um\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core radius = 1.90 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example20: PgNo-112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "a=25 # max radius in um\n",
+ "y=0.8 # operating wavelength in um\n",
+ "NA=0.343 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y # v-number\n",
+ "M=math.pow(v,2)/2 #number of modes\n",
+ "\n",
+ "print ('%s %.6f' %(\" The v-number = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The v-number = 67.347893\n",
+ "\n",
+ " The number of modes = 2267\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example21: PgNo-114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "NA=0.38 # numerical aperture\n",
+ "v=75 # v-number\n",
+ "y=1.3 # operating wavelength in um\n",
+ "a=(v*y)/(2*math.pi*NA) # core radius in um\n",
+ "n2=math.sqrt(math.pow(n1,2)-math.pow(NA,2))# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \", n2))\n",
+ "print (\"\\n answer in textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 40.84 um\n",
+ "\n",
+ " The cladding refractive index = 1.45\n",
+ "\n",
+ " answer in textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example22: PgNo-117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Initialisation of variables\n",
+ "y=1.2 # operating wavelength in um\n",
+ "w=5 # spot size in um\n",
+ "x=(2*y)/(math.pi*w) # the divergence angle in degree\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example23: PgNo-119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # core radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "NA=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "v=2.405\n",
+ "y=(2*math.pi*a*NA)/(v) # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example24: PgNo-121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "y1=0.87 # operating wavelength in um\n",
+ "y2=1.5 # operating wavelength in um\n",
+ "a=25.0 # max radius in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "v1=(2*math.pi*a*NA)/y1\n",
+ "v2=(2*math.pi*a*NA)/y2\n",
+ "al=2.0 # parabolic index profile for GRIN\n",
+ "M1=(al/(al+2))*(math.pow(v1,2)/2)# number of modes\n",
+ "M2=(al/(al+2))*(math.pow(v2,2)/2)# number of modes\n",
+ "\n",
+ "# Results\n",
+ "print \" The number of modes at 870 nm = \",int(M1),\"um\"\n",
+ "print \"\\n The number of modes = \",int(M2),\"um\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes at 870 nm = 726 um\n",
+ "\n",
+ " The number of modes = 244 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example25: PgNo-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "v=2.4 # cut off parameter\n",
+ "y=0.85 # operating wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(v*y)/(2*math.pi*NA)# max radius in um\n",
+ "w=v*a # spot size\n",
+ "x=(2*y)/(3.4*w) # divergence angle in degree\n",
+ "d=50 # distance in meter\n",
+ "w_s=(y*d)/(math.pi*w) # spot size at 50 meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The numerical aperture = \",NA,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size = \",w,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size at 50 meter = \",w_s,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34 um\n",
+ "\n",
+ " The max core radius = 0.94 um\n",
+ "\n",
+ " The spot size = 2.26 um\n",
+ "\n",
+ " The divergence angle = 0.221 degree\n",
+ "\n",
+ " The spot size at 50 meter = 5.97 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example26: PgNo-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.50 # cladding refractive index\n",
+ "y=1.2 # wavelength in um\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2)))) #core radius in micrometer\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max diameter= \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max diameter= 3.047 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example27: PgNo-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "n1=1.47 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "y=1.3 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # fractional refractive index diff\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2))\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))# largest core radius in micrometer\n",
+ "n_eff=n1-(NA/(2*math.pi*(a/y))) # fractional refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The largest core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The fractional refractive index= \",n_eff))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The largest core radius = 2.91 um\n",
+ "\n",
+ " The fractional refractive index= 1.46\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example28: PgNo-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=25 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y #cut off parameter\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The cut off parameter = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off parameter = 45.115\n",
+ "\n",
+ " The number of modes = 1017\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example29: PgNo-132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "a=25 # core radius in um\n",
+ "y=1.5 # wavelength in um\n",
+ "v=2.405\n",
+ "\n",
+ "# Calculations\n",
+ "NA=(v*y)/(2*math.pi*a) # numerical aperture\n",
+ "D=math.pow((NA/n1),2)/(2) # max value of D\n",
+ "n2=n1-(D*n1) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.6f' %(\" The max value of D = \",D))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.000117\n",
+ "\n",
+ " The cladding refractive index = 1.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example30: PgNo-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# variable declaration\n",
+ "n1=1.52 #core refractive index\n",
+ "n2=1.48 #cladding refractive index\n",
+ "a=45 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1 # relative refractive index\n",
+ "x=(math.asin(n2/n1))*(180/math.pi) # critical angle in degree\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) #numerical aperture\n",
+ "a_c=(math.asin(NA))*(180/math.pi) #acceptance angle in degree\n",
+ "a_s=math.pi*(math.pow(n1,2)-math.pow(n2,2))# solid acceptance angle\n",
+ "v=(2*math.pi*a*0.34)/y # normalise v-number\n",
+ "M=math.pow(v,2)/2 # number of guided modes\n",
+ "a1=5 # for single mode step fiber\n",
+ "v1=(2*math.pi*a1*0.34)/y\n",
+ "M1=math.pow(v1,2)/2\n",
+ "R=int(M)-int(M1)# reduction in modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f' %(\" The max value of D = \",dl))\n",
+ "print ('%s %.2f %s' %(\"\\n The critical angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The acceptance angle = \",2*a_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The solid acceptance angle = \",a_s,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n The numerical aperture = \",NA))\n",
+ "print ('%s %.2f ' %(\"\\n The normalise v-number = \",v))\n",
+ "print \"\\n The number of guided modes = \",int(M)\n",
+ "print \"\\n The reduction in modes = \",R\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.0263\n",
+ "\n",
+ " The critical angle = 76.83 degree\n",
+ "\n",
+ " The acceptance angle = 40.54 degree\n",
+ "\n",
+ " The solid acceptance angle = 0.38 degree\n",
+ "\n",
+ " The numerical aperture = 0.35 \n",
+ "\n",
+ " The normalise v-number = 113.10 \n",
+ "\n",
+ " The number of guided modes = 6395\n",
+ "\n",
+ " The reduction in modes = 6317\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example31: PgNo-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "a=45/2 #max radius in um\n",
+ "y=0.85 # operating wavelength in um\n",
+ "NA=0.17 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y #normalised frequency\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 27.65\n",
+ "\n",
+ " The number of modes = 382\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter3_1.ipynb b/Optical_Fiber_Communication/Chapter3_1.ipynb
new file mode 100755
index 00000000..4ff5c94e
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter3_1.ipynb
@@ -0,0 +1,1352 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2b710cf5b5be9f51b281cf20f926c177245f0b5c79ffccf88ed3e06dd1ffcbfa"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3- Optical Fiber Fabrication"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "m=1000 # the no. of models\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*m)\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(pow(n1,2)-math.pow(n2,2)))*math.pow(10,6)) # core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2e %s' %(\" core radius= \",a ,\"micrometer\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " core radius= 3.79e-11 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2: PgNo-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.505 # core refractive index\n",
+ "n2=1.502 # cladding refractive index\n",
+ "\n",
+ "# Calculations\n",
+ "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "y=1.3*math.pow(10,(-6))\n",
+ "v=2.4\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))*math.pow(10,6)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
+ "print ('%s %.3f %s' %(\"\\n core radius= \",a,\"micrometer\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " numerical aperture= 0.09\n",
+ "\n",
+ " core radius= 5.228 micrometer\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3: PgNo-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable declaration\n",
+ "\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "m=0 # for the dominant mode\n",
+ "v=0 # for the dominant mode\n",
+ "y=1.3 # in micrometer\n",
+ "a=5.0 # radius in micrometer\n",
+ "\n",
+ "# Calculations\n",
+ "k=(2*math.pi)/y\n",
+ "b=math.pow(k,2)*math.pow(n1,2)-(2*k*n1*math.sqrt(2*dl))/a\n",
+ "B=math.sqrt(b) # propagation constant in rad/um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" propagation constant= \",B,\"rad/um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " propagation constant= 7.221 rad/um\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4: PgNo-86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Printing the results\n",
+ "b=1/2 # propagtion constant\n",
+ "print (\" normalised propagtion constant\")\n",
+ "print (\"\\n B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n thus when b=1/2\")\n",
+ "print (\"\\n B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\")\n",
+ "print (\"\\n B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\")\n",
+ "print (\"\\n which gives its rms value\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised propagtion constant\n",
+ "\n",
+ " B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " thus when b=1/2\n",
+ "\n",
+ " B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\n",
+ "\n",
+ " B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\n",
+ "\n",
+ " which gives its rms value\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5: PgNo-87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=3.6 #core refractive index\n",
+ "n2=3.3 # cladding refractive index\n",
+ "d=2.0 # thickness in um\n",
+ "y=0.8 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "m=(2*d*math.sqrt(math.pow(n1,2)-math.pow(n2,2))/y) # total no. of models allowed\n",
+ "M=math.ceil(m) # total no. of models allowed\n",
+ "\n",
+ "print \" Total no. of models allowed= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Total no. of models allowed= 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6: PgNo-88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "a=40*(math.pow(10,-6)) #core radius in meter\n",
+ "dl=0.015 # index difference\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2\n",
+ "m=math.ceil(M) # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modess = \",int(m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " normalised frequency= 75.80\n",
+ "\n",
+ " The total no. of guided modess = 2873\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7: PgNo-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "a=30*(math.pow(10,-6))# core radius in meter\n",
+ "y=0.85*(math.pow(10,-6)) #wavelength in um\n",
+ "\n",
+ "# calcualtions\n",
+ "n2=n1-(n1*dl)# cladding refractive index\n",
+ "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
+ "M=math.pow(v,2)/2 # the total no. of guided modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Cladding refractive index= \",n2))\n",
+ "print ('%s %.3f'%(\"\\n Normalised frequency= \",v))\n",
+ "print \"\\n The total no. of guided modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Cladding refractive index= 1.44\n",
+ "\n",
+ " Normalised frequency= 56.078\n",
+ "\n",
+ " The total no. of guided modes = 1572\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # index difference\n",
+ "M=1100 # the total no. of guided modes\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "v=math.sqrt(2*M)# normalised frequency\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) #core radius in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))\n",
+ "print ('%s %.2f %s' %(\"\\n The diameter of the fiber core = \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 46.90\n",
+ "\n",
+ " The diameter of the fiber core = 91.50 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9: PgNo-91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "n_m=0.16 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "a=30*math.pow(10,-6) # core radius in micrometer\n",
+ "y=0.5*(math.pow(10,-6)) # wavelength in um\n",
+ "v=(2*math.pi*a*n_m)/y #normalised frequency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" Normalised frequency= \",v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Normalised frequency= 60.32\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10: PgNo-93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=3.6 # core refractive index\n",
+ "n2=3.56 # cladding refractive index\n",
+ "y=0.85*(math.pow(10,-6))# wavelength in um\n",
+ "m=1\n",
+ "n=0\n",
+ "v_c=2.405 # for planner guide\n",
+ "\n",
+ "# Calculations\n",
+ "a=(v_c*y)/(2*math.pi*math.sqrt(math.pow(n1,2)-math.pow(n2,2)))# core radius in micrometer\n",
+ "\n",
+ "print ('%s %.2f %s' %(\"The max thickness= \",a*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The max thickness= 0.61 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example11: PgNo-94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 #core refractive index\n",
+ "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
+ "M=1100 # total no. of models\n",
+ "dl=0.01 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "v=math.sqrt(2*M)\n",
+ "V=math.ceil(v)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) # core radius in micrometer\n",
+ "a1=math.ceil(a)# core radius in micrometer\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The core diameter= \",2*a1,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The core diameter= 92.00 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example12: PgNo-96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.45 # core refractive index\n",
+ "dl=0.015 # index difference\n",
+ "\n",
+ "# Calculations\n",
+ "y=0.85*(math.pow(10,-6)) # wavelength in meter\n",
+ "v=2.4*math.pow((1+(2/2)),(0.5))# Max normalised frequency\n",
+ "a=(v*y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # Max core radius in m\n",
+ "d=2*a # The max core diameter in meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s'%(\" The max core diameter in meter= \",d*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core diameter in meter= 3.657 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example13: PgNo-98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Initialisation\n",
+ "n1=1.48 #core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "a=2.5 # radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/y #the normaised frequency\n",
+ "M=(v*v)/2 # number of modes\n",
+ "print \" The number of modes= \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example14: PgNo-101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "y=1.3 # wavelength in um\n",
+ "v=26.6 # the normaised frequency\n",
+ "NA=(v*y)/(2*math.pi*a) #Numerical aperture\n",
+ "a_c=math.pi*math.pow((NA),2)\n",
+ "M=(v*v)/2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The number of modes= \", NA))\n",
+ "print ('%s %.3f' %(\"\\n The number of modes= \", a_c))\n",
+ "print (\"\\n Answer in textbook is wrong\")\n",
+ "print \"\\n The number of modes= \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes= 0.220\n",
+ "\n",
+ " The number of modes= 0.152\n",
+ "\n",
+ " Answer in textbook is wrong\n",
+ "\n",
+ " The number of modes= 353\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example15: PgNo-103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Declaration of variables\n",
+ "n1=1.49 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "a=2 # radius in um\n",
+ "dl=(n1-n2)/n1 # index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "Y=1.31 # wavelength in um\n",
+ "A=(v_c*Y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # min core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The min core radius = \",A,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.276 um\n",
+ "\n",
+ " The min core radius = 2.054 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example16: PgNo-105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=25 # radius in um\n",
+ "NA=0.3 # Numerical aperture\n",
+ "y=1 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y # the normalised frequency\n",
+ "V=47.1 # the normalised frequency\n",
+ "M=(V*V)/4 # The mode volume\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The mode volume = \",int(M),\"guided modes\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 47.12\n",
+ "\n",
+ " The mode volume = 554 guided modes\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example17: PgNo-107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "v_c=2.405\n",
+ "\n",
+ "# calculations\n",
+ "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example18: PgNo-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "n2=1.45 # cladding refractive index\n",
+ "a=50 # radius in um\n",
+ "y=1.3 #operating wavelength in um\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "N_A=0.38 \n",
+ "v=(2*math.pi*a*N_A)/y # cut of numbers\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "print ('%s %.2f'%(\" The cut of numbers = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut of numbers = 91.83\n",
+ "\n",
+ " The number of modes = 4216\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example19: PgNo-111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.5 # cladding refractive index\n",
+ "y=1.5 # operating wavelength in um\n",
+ "\n",
+ "# calculation\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(2.405*y)/(2*math.pi*NA)# max radius in um\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core radius = 1.90 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example20: PgNo-112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "a=25 # max radius in um\n",
+ "y=0.8 # operating wavelength in um\n",
+ "NA=0.343 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y # v-number\n",
+ "M=math.pow(v,2)/2 #number of modes\n",
+ "\n",
+ "print ('%s %.6f' %(\" The v-number = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The v-number = 67.347893\n",
+ "\n",
+ " The number of modes = 2267\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example21: PgNo-114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 #core refractive index\n",
+ "NA=0.38 # numerical aperture\n",
+ "v=75 # v-number\n",
+ "y=1.3 # operating wavelength in um\n",
+ "a=(v*y)/(2*math.pi*NA) # core radius in um\n",
+ "n2=math.sqrt(math.pow(n1,2)-math.pow(NA,2))# cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \", n2))\n",
+ "print (\"\\n answer in textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 40.84 um\n",
+ "\n",
+ " The cladding refractive index = 1.45\n",
+ "\n",
+ " answer in textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example22: PgNo-117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Initialisation of variables\n",
+ "y=1.2 # operating wavelength in um\n",
+ "w=5 # spot size in um\n",
+ "x=(2*y)/(math.pi*w) # the divergence angle in degree\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example23: PgNo-119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "a=4.5 # core radius in um\n",
+ "dl=0.0025 # relative index difference\n",
+ "NA=n1*(math.sqrt(2*dl)) # numerical aperture\n",
+ "v=2.405\n",
+ "y=(2*math.pi*a*NA)/(v) # cut off wavelength in um\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.214 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example24: PgNo-121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.47 # cladding refractive index\n",
+ "y1=0.87 # operating wavelength in um\n",
+ "y2=1.5 # operating wavelength in um\n",
+ "a=25.0 # max radius in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "v1=(2*math.pi*a*NA)/y1\n",
+ "v2=(2*math.pi*a*NA)/y2\n",
+ "al=2.0 # parabolic index profile for GRIN\n",
+ "M1=(al/(al+2))*(math.pow(v1,2)/2)# number of modes\n",
+ "M2=(al/(al+2))*(math.pow(v2,2)/2)# number of modes\n",
+ "\n",
+ "# Results\n",
+ "print \" The number of modes at 870 nm = \",int(M1),\"um\"\n",
+ "print \"\\n The number of modes = \",int(M2),\"um\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of modes at 870 nm = 726 um\n",
+ "\n",
+ " The number of modes = 244 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example25: PgNo-122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.5 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "v=2.4 # cut off parameter\n",
+ "y=0.85 # operating wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=(v*y)/(2*math.pi*NA)# max radius in um\n",
+ "w=v*a # spot size\n",
+ "x=(2*y)/(3.4*w) # divergence angle in degree\n",
+ "d=50 # distance in meter\n",
+ "w_s=(y*d)/(math.pi*w) # spot size at 50 meter\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The numerical aperture = \",NA,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size = \",w,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The spot size at 50 meter = \",w_s,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34 um\n",
+ "\n",
+ " The max core radius = 0.94 um\n",
+ "\n",
+ " The spot size = 2.26 um\n",
+ "\n",
+ " The divergence angle = 0.221 degree\n",
+ "\n",
+ " The spot size at 50 meter = 5.97 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example26: PgNo-124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.53 # core refractive index\n",
+ "n2=1.50 # cladding refractive index\n",
+ "y=1.2 # wavelength in um\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2)))) #core radius in micrometer\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max diameter= \",2*a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max diameter= 3.047 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example27: PgNo-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "n1=1.47 # core refractive index\n",
+ "n2=1.46 # cladding refractive index\n",
+ "y=1.3 # wavelength in um\n",
+ "dl=(n1-n2)/n1 # fractional refractive index diff\n",
+ "\n",
+ "# calculations\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2))\n",
+ "v=2.405\n",
+ "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))# largest core radius in micrometer\n",
+ "n_eff=n1-(NA/(2*math.pi*(a/y))) # fractional refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The largest core radius = \",a,\"um\"))\n",
+ "print ('%s %.2f' %(\"\\n The fractional refractive index= \",n_eff))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The largest core radius = 2.91 um\n",
+ "\n",
+ " The fractional refractive index= 1.46\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example28: PgNo-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "a=25 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "v=(2*math.pi*a*NA)/y #cut off parameter\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The cut off parameter = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off parameter = 45.115\n",
+ "\n",
+ " The number of modes = 1017\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example29: PgNo-132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "n1=1.50 # core refractive index\n",
+ "a=25 # core radius in um\n",
+ "y=1.5 # wavelength in um\n",
+ "v=2.405\n",
+ "\n",
+ "# Calculations\n",
+ "NA=(v*y)/(2*math.pi*a) # numerical aperture\n",
+ "D=math.pow((NA/n1),2)/(2) # max value of D\n",
+ "n2=n1-(D*n1) # cladding refractive index\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.6f' %(\" The max value of D = \",D))\n",
+ "print ('%s %.2f' %(\"\\n The cladding refractive index = \",n2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.000117\n",
+ "\n",
+ " The cladding refractive index = 1.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example30: PgNo-133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# variable declaration\n",
+ "n1=1.52 #core refractive index\n",
+ "n2=1.48 #cladding refractive index\n",
+ "a=45 # core radius in um\n",
+ "y=0.85 # wavelength in um\n",
+ "\n",
+ "# Calculations\n",
+ "dl=(n1-n2)/n1 # relative refractive index\n",
+ "x=(math.asin(n2/n1))*(180/math.pi) # critical angle in degree\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) #numerical aperture\n",
+ "a_c=(math.asin(NA))*(180/math.pi) #acceptance angle in degree\n",
+ "a_s=math.pi*(math.pow(n1,2)-math.pow(n2,2))# solid acceptance angle\n",
+ "v=(2*math.pi*a*0.34)/y # normalise v-number\n",
+ "M=math.pow(v,2)/2 # number of guided modes\n",
+ "a1=5 # for single mode step fiber\n",
+ "v1=(2*math.pi*a1*0.34)/y\n",
+ "M1=math.pow(v1,2)/2\n",
+ "R=int(M)-int(M1)# reduction in modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f' %(\" The max value of D = \",dl))\n",
+ "print ('%s %.2f %s' %(\"\\n The critical angle = \",x,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The acceptance angle = \",2*a_c,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The solid acceptance angle = \",a_s,\"degree\"))\n",
+ "print ('%s %.2f ' %(\"\\n The numerical aperture = \",NA))\n",
+ "print ('%s %.2f ' %(\"\\n The normalise v-number = \",v))\n",
+ "print \"\\n The number of guided modes = \",int(M)\n",
+ "print \"\\n The reduction in modes = \",R\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max value of D = 0.0263\n",
+ "\n",
+ " The critical angle = 76.83 degree\n",
+ "\n",
+ " The acceptance angle = 40.54 degree\n",
+ "\n",
+ " The solid acceptance angle = 0.38 degree\n",
+ "\n",
+ " The numerical aperture = 0.35 \n",
+ "\n",
+ " The normalise v-number = 113.10 \n",
+ "\n",
+ " The number of guided modes = 6395\n",
+ "\n",
+ " The reduction in modes = 6317\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example31: PgNo-135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Initialisation of variables\n",
+ "\n",
+ "n1=1.46 #core refractive index\n",
+ "a=45/2 #max radius in um\n",
+ "y=0.85 # operating wavelength in um\n",
+ "NA=0.17 # numerical aperture\n",
+ "v=(2*math.pi*a*NA)/y #normalised frequency\n",
+ "M=math.pow(v,2)/2 # number of modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
+ "print \"\\n The number of modes = \",int(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The normalised frequency = 27.65\n",
+ "\n",
+ " The number of modes = 382\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter4.ipynb b/Optical_Fiber_Communication/Chapter4.ipynb
new file mode 100755
index 00000000..5cb4e7c2
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter4.ipynb
@@ -0,0 +1,887 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b1c137849cf93f7c696bb48d79752abb9cdb5dcbbc9af1acedb41baab1b64d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Transmission Characteristics of Optical Fibers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "L=6 # length in km\n",
+ "L1=8 # length in km\n",
+ "asp=10*math.log(Pi/Po)/math.log(10) # signal attenuation in dB\n",
+ "as1=asp/L # signal attenuation per km\n",
+ "Li=as1*L1 # Loss incurred along 8 km\n",
+ "Ls=7 # Loss due to splice in dB\n",
+ "as2=Li+Ls #overall signal attenuation in dB\n",
+ "As2=29.4 #aprox. overall signal attenuation in dB\n",
+ "Pio=math.pow(10,(As2/10)) #i/p o/p power ratio\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation = \",asp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",as1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The trgth = \",Li,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation = \",as2,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The i/p o/p power ratio = \", Pio))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation = 16.99 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.83 dB/km\n",
+ "\n",
+ " The trgth = 22.65 km\n",
+ "\n",
+ " The overall signal attenuation = 29.65 dB\n",
+ "\n",
+ " The i/p o/p power ratio = 870.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=1.5*math.pow(10,-3) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "a=0.5 # dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # max possible link Length in km\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max possible link Length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max possible link Length = 57.501 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Declaration\n",
+ "n=1.46 # core refractive index\n",
+ "p=0.286 # photoelastic coeff\n",
+ "b=7*math.pow(10,-11) # isothermal compressibility\n",
+ "k=1.381*math.pow(10,-23) # boltzmann's constant\n",
+ "tf=1400 # fictive temperature in k\n",
+ "y1=0.85*math.pow(10,-6) # wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "yr=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y1,4))\n",
+ "akm=pow(math.e,(-yr*math.pow(10,3)))\n",
+ "at=10*math.log(1/akm)/math.log(10)# attenuation at y=0.85 um\n",
+ "y2=1.55*math.pow(10,-6) # wavelength in m\n",
+ "yr1=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y2,4))\n",
+ "akm1=math.pow(math.e,(-yr1*math.pow(10,3)))\n",
+ "at1=10*math.log(1/akm1)/math.log(10)# attenuation at y=1.55 um\n",
+ "y3=1.30*math.pow(10,-6) # wavelength in m\n",
+ "yr2=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y3,4))\n",
+ "akm2=math.pow(math.e,(-yr2*math.pow(10,3)))\n",
+ "at2=10*math.log(1/akm2)/math.log(10)# attenuation at y=1.30 um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",at,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at2,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 1.57 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.14 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.29 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "d=6 # core diameter in m\n",
+ "y=1.55 # wavelength in m\n",
+ "a=0.5 # attenuation in dB/km\n",
+ "v=0.4\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*a*v # threshold power for SBS\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*y*a # threshold power for SRS\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The threshold power for SBS = \",Pb*pow(10,3),\"mw\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The threshold power for SRS = \",Pr,\"W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The threshold power for SBS = 76.11 mw\n",
+ "\n",
+ " The threshold power for SRS = 1.65 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "y=0.85*math.pow(10,-6) #operating wavelength in m\n",
+ "a=4*math.pow(10,-6) # core radous in m\n",
+ "\n",
+ "# Calculations\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) #cladding refractive index\n",
+ "Rc=(3*math.pow(n1,2)*y)/(4*math.pi*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "Dl=0.003 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*Dl*math.pow(n1,2))\n",
+ "yc=math.pow(2*math.pi*a*n1*(2*Dl),0.5)/2.405 # cut off wavelength in m\n",
+ "y1=1.55*math.pow(10,-6) # operating wavelength in m\n",
+ "Rcs=(20*y1*math.pow((2.748-0.996*(y1/yc)),-3))/math.pow((0.005),1.5) # critical radius of curvature for a single mode fiber\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.4f %s' %(\" The critical radius of curvature for multimode fiber = \",Rc*math.pow(10,6),\"um\")\n",
+ "print '%s %.4f %s' %(\"\\n The critical radius of curvature for a single mode fiber = \",Rcs*math.pow(10,3),\"um\")\n",
+ "print \"\\nThe answer is wrong in the textbook for single mode fiber\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for multimode fiber = 9.4569 um\n",
+ "\n",
+ " The critical radius of curvature for a single mode fiber = 4.2620 um\n",
+ "\n",
+ "The answer is wrong in the textbook for single mode fiber\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "x=2.0 # index profile\n",
+ "dl=0.0126 #index difference\n",
+ "a=(85.0/2.0)*math.pow(10,-6) # core radius\n",
+ "R=2.0*math.pow(10,-3) # curve of radius\n",
+ "n1=1.45 # core refractive index\n",
+ "k=6.28\n",
+ "\n",
+ "# Calculations\n",
+ "y=850.0*math.pow(10,-9) # wavelength in m\n",
+ "A=(x+2)/(2*x*dl)\n",
+ "B=(2*a/R)\n",
+ "C=math.pow((3*y/(2*k*R*n1)),(2.0/3.0))\n",
+ "D=B+C\n",
+ "E=A*D\n",
+ "F=1-E\n",
+ "Lm=-10*math.log(-F)/math.log(10) # macrobend loss in dB\n",
+ "print ('%s %.2f %s' %(\" The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The macrobend loss = -3.99 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNO-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=15 # optical power in uw\n",
+ "Po=7 # ouput power in uw\n",
+ "L=0.15 # length in km\n",
+ "Ls=(10*math.log(Pi/Po)/math.log(10))/L # Loss of an optical fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 20.07 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=200*math.pow(10,-6) # average optical power in watt\n",
+ "Po=5*math.pow(10,-6) # average output power in watt\n",
+ "L=20 # in km\n",
+ "L1=12 # in km\n",
+ "ns=5 # number of attenuation\n",
+ "a=0.9 # attenuation in dB\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=ns*a # attenuation in dB\n",
+ "sn2=sn+sn1 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn2,\"dB \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation per km = 0.80 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 14.11 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # average optical power in watt\n",
+ "Po=4*math.pow(10,-6) # average output power in watt\n",
+ "L=6 # in km\n",
+ "L1=10 # in km\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=sn+9 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation= \",sa,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation= 13.98 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.33 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 32.30 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Pi=20*math.pow(10,-6) #average optical power in watt\n",
+ "Po=7.5*math.pow(10,-6) # average output power in watt\n",
+ "sl=10*math.log(Pi/Po)/math.log(10) # signal Loss in dB\n",
+ "L=15 #in km\n",
+ "L1=30 # in km\n",
+ "ns=29 # number of attenuation\n",
+ "sp=sl/L # signal Loss per km\n",
+ "sn=sp*L1 # signal attenuation for 30 km\n",
+ "sn1=sn+ns # overall signal attenuation in dB\n",
+ "i_o=math.pow(10,(sn1/20)) # input output power ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal Loss = \",sl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal Loss per km= \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The input output power ratio= \",i_o))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal Loss = 4.26 dB\n",
+ "\n",
+ " The signal Loss per km= 0.28 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 37.52 dB\n",
+ "\n",
+ " The input output power ratio= 75.16\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Tf=1400 # temperature in k\n",
+ "Bc=7*math.pow(10,-11) # in m^2/N\n",
+ "n=1.38\n",
+ "P=0.29 # Photoelastic coefficient\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "K=1.38*math.pow(10,-23) # boltzman's constant\n",
+ "\n",
+ "# Calculations\n",
+ "Rrs=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(P,2)*(Bc*Tf*K))/(3*math.pow(y,4)))\n",
+ "Rrs1=Rrs/math.pow(10,-3) # per km\n",
+ "Lkm=math.pow(math.e,(-Rrs1)) # transmission loss facter\n",
+ "At=10*math.log(1/Lkm)/math.log(10) # Attenuation in dB/km\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The Attenuation= \",At,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Attenuation= 0.82 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1.35 # wavelength in um\n",
+ "d=5 # core diamater in um\n",
+ "a=0.75 # attenuation in dB/km\n",
+ "v=0.45 # bandwidth in GHz\n",
+ "\n",
+ "# calculations\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*(a*v) #threshold optical power for sbs\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*(y)*(a) #threshold optical power for sbr\n",
+ "Pbr=Pb/Pr # the ratio of threshold power level\n",
+ "print ('%s %.2f %s' %(\" The ratio of threshold power level= \",Pbr*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The ratio of threshold power level= 4.53 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.024 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "n2=1.46\n",
+ "Rcs=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The critical radius of curvature = \",Rcs*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature = 11.207 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.45 # core refractive index\n",
+ "y=1.5*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "a=5.0*math.pow(10,-6) # core radius\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "yc=(2*math.pi*a*n1*math.sqrt(2*dl))/(2.405)\n",
+ "Rcs=(20.0*y*(2.748-0.996*math.pow((y/yc),-3)))/math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)#critical radius of curvature for single mode fiber\n",
+ "Rcs1=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow(math.pow(n1,2)-math.pow(n2,2),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The critical radius of curvature for single mode fiber = \",Rcs*pow(10,6),\"um\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")\n",
+ "print ('%s %.2f %s' %(\"\\n The critical radius of curvature for multimode fiber = \",Rcs1*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for single mode fiber = -17893.87 um\n",
+ "\n",
+ " The answer is wrong in the textbook \n",
+ "\n",
+ " The critical radius of curvature for multimode fiber = 16.80 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=500.0/1000.0 # distance in km\n",
+ "Pio=(1/(1-0.75))\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 12.041 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=5 # length in km\n",
+ "a=0.5 # attenuaion loss in dB/km\n",
+ "# Calculations\n",
+ "Po=math.pow(10,-3)*math.pow(10,(-(a*L)/10)) # power level in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The power level = \",Po*pow(10,3),\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power level = 0.562 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=1 #distance in km\n",
+ "Pio=(1/(1-0.40))\n",
+ "# Calculations\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 2.218 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Pi=1*math.pow(10,-3) # input power in watt\n",
+ "Po=0.75*math.pow(10,-3) # output power in watt\n",
+ "a=0.5 #in dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # transmission length in km\n",
+ "\n",
+ "print ('%s %.1f %s'%(\" The transmission length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = 2.5 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=1300.0*math.pow(10,-9) # wavelemgth in m\n",
+ "yc=1200.0*math.pow(10,-9) # cut off wavelength in m\n",
+ "rc=5.0*math.pow(10,-6) #core diameter in m\n",
+ "n=1.5 #refractive index\n",
+ "R=1.2/100.0 # curve of radius in m\n",
+ "\n",
+ "# Calculations\n",
+ "dmf=2*rc*((0.65)+0.434*math.pow((y/yc),1.5)+0.0149*math.pow((y/yc),6)) # mode field diameter\n",
+ "K=(2.0*math.pi)/y\n",
+ "Lm=-10*math.log(-1*(1-math.pow(K,4)*math.pow(n,4)*math.pow(((3.95*math.pow(10,-6))/(8*math.pow(R,2))),6)))/math.log(10) # macrobend loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The mode field diameter = \",dmf*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The mode field diameter = 11.63 um\n",
+ "\n",
+ " The macrobend loss = -126.52 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNO-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "Pi=10*math.pow(10,-3) # input power in watt\n",
+ "Po=8*math.pow(10,-3) # output power in watt\n",
+ "L=0.150 # length in km\n",
+ "Ls=(10*math.log(Po/Pi)/math.log(10))/L\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The transmission length = \",Ls,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = -6.46 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter4_1.ipynb b/Optical_Fiber_Communication/Chapter4_1.ipynb
new file mode 100755
index 00000000..5cb4e7c2
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter4_1.ipynb
@@ -0,0 +1,887 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b1c137849cf93f7c696bb48d79752abb9cdb5dcbbc9af1acedb41baab1b64d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Transmission Characteristics of Optical Fibers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "L=6 # length in km\n",
+ "L1=8 # length in km\n",
+ "asp=10*math.log(Pi/Po)/math.log(10) # signal attenuation in dB\n",
+ "as1=asp/L # signal attenuation per km\n",
+ "Li=as1*L1 # Loss incurred along 8 km\n",
+ "Ls=7 # Loss due to splice in dB\n",
+ "as2=Li+Ls #overall signal attenuation in dB\n",
+ "As2=29.4 #aprox. overall signal attenuation in dB\n",
+ "Pio=math.pow(10,(As2/10)) #i/p o/p power ratio\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation = \",asp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",as1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The trgth = \",Li,\"km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation = \",as2,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The i/p o/p power ratio = \", Pio))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation = 16.99 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.83 dB/km\n",
+ "\n",
+ " The trgth = 22.65 km\n",
+ "\n",
+ " The overall signal attenuation = 29.65 dB\n",
+ "\n",
+ " The i/p o/p power ratio = 870.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=1.5*math.pow(10,-3) # mean optical power in watt\n",
+ "Po=2*math.pow(10,-6) # output mean power in watt\n",
+ "a=0.5 # dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # max possible link Length in km\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The max possible link Length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max possible link Length = 57.501 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable Declaration\n",
+ "n=1.46 # core refractive index\n",
+ "p=0.286 # photoelastic coeff\n",
+ "b=7*math.pow(10,-11) # isothermal compressibility\n",
+ "k=1.381*math.pow(10,-23) # boltzmann's constant\n",
+ "tf=1400 # fictive temperature in k\n",
+ "y1=0.85*math.pow(10,-6) # wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "yr=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y1,4))\n",
+ "akm=pow(math.e,(-yr*math.pow(10,3)))\n",
+ "at=10*math.log(1/akm)/math.log(10)# attenuation at y=0.85 um\n",
+ "y2=1.55*math.pow(10,-6) # wavelength in m\n",
+ "yr1=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y2,4))\n",
+ "akm1=math.pow(math.e,(-yr1*math.pow(10,3)))\n",
+ "at1=10*math.log(1/akm1)/math.log(10)# attenuation at y=1.55 um\n",
+ "y3=1.30*math.pow(10,-6) # wavelength in m\n",
+ "yr2=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(p,2)*(b*k*tf)))/(3*math.pow(y3,4))\n",
+ "akm2=math.pow(math.e,(-yr2*math.pow(10,3)))\n",
+ "at2=10*math.log(1/akm2)/math.log(10)# attenuation at y=1.30 um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",at,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at1,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Loss of an optical fiber = \",at2,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 1.57 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.14 dB/km\n",
+ "\n",
+ " The Loss of an optical fiber = 0.29 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "d=6 # core diameter in m\n",
+ "y=1.55 # wavelength in m\n",
+ "a=0.5 # attenuation in dB/km\n",
+ "v=0.4\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*a*v # threshold power for SBS\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*y*a # threshold power for SRS\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The threshold power for SBS = \",Pb*pow(10,3),\"mw\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The threshold power for SRS = \",Pr,\"W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The threshold power for SBS = 76.11 mw\n",
+ "\n",
+ " The threshold power for SRS = 1.65 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "y=0.85*math.pow(10,-6) #operating wavelength in m\n",
+ "a=4*math.pow(10,-6) # core radous in m\n",
+ "\n",
+ "# Calculations\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) #cladding refractive index\n",
+ "Rc=(3*math.pow(n1,2)*y)/(4*math.pi*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "Dl=0.003 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*Dl*math.pow(n1,2))\n",
+ "yc=math.pow(2*math.pi*a*n1*(2*Dl),0.5)/2.405 # cut off wavelength in m\n",
+ "y1=1.55*math.pow(10,-6) # operating wavelength in m\n",
+ "Rcs=(20*y1*math.pow((2.748-0.996*(y1/yc)),-3))/math.pow((0.005),1.5) # critical radius of curvature for a single mode fiber\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.4f %s' %(\" The critical radius of curvature for multimode fiber = \",Rc*math.pow(10,6),\"um\")\n",
+ "print '%s %.4f %s' %(\"\\n The critical radius of curvature for a single mode fiber = \",Rcs*math.pow(10,3),\"um\")\n",
+ "print \"\\nThe answer is wrong in the textbook for single mode fiber\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for multimode fiber = 9.4569 um\n",
+ "\n",
+ " The critical radius of curvature for a single mode fiber = 4.2620 um\n",
+ "\n",
+ "The answer is wrong in the textbook for single mode fiber\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "x=2.0 # index profile\n",
+ "dl=0.0126 #index difference\n",
+ "a=(85.0/2.0)*math.pow(10,-6) # core radius\n",
+ "R=2.0*math.pow(10,-3) # curve of radius\n",
+ "n1=1.45 # core refractive index\n",
+ "k=6.28\n",
+ "\n",
+ "# Calculations\n",
+ "y=850.0*math.pow(10,-9) # wavelength in m\n",
+ "A=(x+2)/(2*x*dl)\n",
+ "B=(2*a/R)\n",
+ "C=math.pow((3*y/(2*k*R*n1)),(2.0/3.0))\n",
+ "D=B+C\n",
+ "E=A*D\n",
+ "F=1-E\n",
+ "Lm=-10*math.log(-F)/math.log(10) # macrobend loss in dB\n",
+ "print ('%s %.2f %s' %(\" The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The macrobend loss = -3.99 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNO-160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=15 # optical power in uw\n",
+ "Po=7 # ouput power in uw\n",
+ "L=0.15 # length in km\n",
+ "Ls=(10*math.log(Pi/Po)/math.log(10))/L # Loss of an optical fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Loss of an optical fiber = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss of an optical fiber = 20.07 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=200*math.pow(10,-6) # average optical power in watt\n",
+ "Po=5*math.pow(10,-6) # average output power in watt\n",
+ "L=20 # in km\n",
+ "L1=12 # in km\n",
+ "ns=5 # number of attenuation\n",
+ "a=0.9 # attenuation in dB\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=ns*a # attenuation in dB\n",
+ "sn2=sn+sn1 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn2,\"dB \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation per km = 0.80 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 14.11 dB \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Pi=100*math.pow(10,-6) # average optical power in watt\n",
+ "Po=4*math.pow(10,-6) # average output power in watt\n",
+ "L=6 # in km\n",
+ "L1=10 # in km\n",
+ "\n",
+ "# Calculations\n",
+ "sa=10*math.log(Pi/Po)/math.log(10) # signal attenuation\n",
+ "sp=sa/L # signal attenuation per km\n",
+ "sn=sp*L1 # signal attenuation for 12 km\n",
+ "sn1=sn+9 # overall signal attenuation in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal attenuation= \",sa,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal attenuation per km = \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal attenuation= 13.98 dB\n",
+ "\n",
+ " The signal attenuation per km = 2.33 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 32.30 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Pi=20*math.pow(10,-6) #average optical power in watt\n",
+ "Po=7.5*math.pow(10,-6) # average output power in watt\n",
+ "sl=10*math.log(Pi/Po)/math.log(10) # signal Loss in dB\n",
+ "L=15 #in km\n",
+ "L1=30 # in km\n",
+ "ns=29 # number of attenuation\n",
+ "sp=sl/L # signal Loss per km\n",
+ "sn=sp*L1 # signal attenuation for 30 km\n",
+ "sn1=sn+ns # overall signal attenuation in dB\n",
+ "i_o=math.pow(10,(sn1/20)) # input output power ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The signal Loss = \",sl,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The signal Loss per km= \",sp,\"dB/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The overall signal attenuation= \",sn1,\"dB\"))\n",
+ "print ('%s %.2f' %(\"\\n The input output power ratio= \",i_o))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The signal Loss = 4.26 dB\n",
+ "\n",
+ " The signal Loss per km= 0.28 dB/km\n",
+ "\n",
+ " The overall signal attenuation= 37.52 dB\n",
+ "\n",
+ " The input output power ratio= 75.16\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Tf=1400 # temperature in k\n",
+ "Bc=7*math.pow(10,-11) # in m^2/N\n",
+ "n=1.38\n",
+ "P=0.29 # Photoelastic coefficient\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "K=1.38*math.pow(10,-23) # boltzman's constant\n",
+ "\n",
+ "# Calculations\n",
+ "Rrs=((8*math.pow(math.pi,3)*math.pow(n,8)*math.pow(P,2)*(Bc*Tf*K))/(3*math.pow(y,4)))\n",
+ "Rrs1=Rrs/math.pow(10,-3) # per km\n",
+ "Lkm=math.pow(math.e,(-Rrs1)) # transmission loss facter\n",
+ "At=10*math.log(1/Lkm)/math.log(10) # Attenuation in dB/km\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The Attenuation= \",At,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Attenuation= 0.82 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1.35 # wavelength in um\n",
+ "d=5 # core diamater in um\n",
+ "a=0.75 # attenuation in dB/km\n",
+ "v=0.45 # bandwidth in GHz\n",
+ "\n",
+ "# calculations\n",
+ "Pb=4.4*math.pow(10,-3)*math.pow(d,2)*math.pow(y,2)*(a*v) #threshold optical power for sbs\n",
+ "Pr=5.9*math.pow(10,-2)*math.pow(d,2)*(y)*(a) #threshold optical power for sbr\n",
+ "Pbr=Pb/Pr # the ratio of threshold power level\n",
+ "print ('%s %.2f %s' %(\" The ratio of threshold power level= \",Pbr*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The ratio of threshold power level= 4.53 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.024 # relative refractive index difference\n",
+ "N2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "n2=1.46\n",
+ "Rcs=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The critical radius of curvature = \",Rcs*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature = 11.207 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.45 # core refractive index\n",
+ "y=1.5*math.pow(10,-6) # wavelength in m\n",
+ "dl=0.03 # relative refractive index difference\n",
+ "a=5.0*math.pow(10,-6) # core radius\n",
+ "n2=math.sqrt(math.pow(n1,2)-2*dl*math.pow(n1,2)) # cladding refractive index\n",
+ "yc=(2*math.pi*a*n1*math.sqrt(2*dl))/(2.405)\n",
+ "Rcs=(20.0*y*(2.748-0.996*math.pow((y/yc),-3)))/math.pow((math.pow(n1,2)-math.pow(n2,2)),1.5)#critical radius of curvature for single mode fiber\n",
+ "Rcs1=(3*math.pow(n1,2)*y)/((4*math.pi)*math.pow(math.pow(n1,2)-math.pow(n2,2),1.5)) # critical radius of curvature for multimode fiber\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The critical radius of curvature for single mode fiber = \",Rcs*pow(10,6),\"um\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")\n",
+ "print ('%s %.2f %s' %(\"\\n The critical radius of curvature for multimode fiber = \",Rcs1*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The critical radius of curvature for single mode fiber = -17893.87 um\n",
+ "\n",
+ " The answer is wrong in the textbook \n",
+ "\n",
+ " The critical radius of curvature for multimode fiber = 16.80 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=500.0/1000.0 # distance in km\n",
+ "Pio=(1/(1-0.75))\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 12.041 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=5 # length in km\n",
+ "a=0.5 # attenuaion loss in dB/km\n",
+ "# Calculations\n",
+ "Po=math.pow(10,-3)*math.pow(10,(-(a*L)/10)) # power level in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The power level = \",Po*pow(10,3),\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power level = 0.562 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L=1 #distance in km\n",
+ "Pio=(1/(1-0.40))\n",
+ "# Calculations\n",
+ "Ls=10*math.log(Pio)/math.log(10)/L # Loss in dB/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The Loss = \",Ls,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Loss = 2.218 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Pi=1*math.pow(10,-3) # input power in watt\n",
+ "Po=0.75*math.pow(10,-3) # output power in watt\n",
+ "a=0.5 #in dB/km\n",
+ "L=(10*math.log(Pi/Po)/math.log(10))/a # transmission length in km\n",
+ "\n",
+ "print ('%s %.1f %s'%(\" The transmission length = \",L,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = 2.5 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=1300.0*math.pow(10,-9) # wavelemgth in m\n",
+ "yc=1200.0*math.pow(10,-9) # cut off wavelength in m\n",
+ "rc=5.0*math.pow(10,-6) #core diameter in m\n",
+ "n=1.5 #refractive index\n",
+ "R=1.2/100.0 # curve of radius in m\n",
+ "\n",
+ "# Calculations\n",
+ "dmf=2*rc*((0.65)+0.434*math.pow((y/yc),1.5)+0.0149*math.pow((y/yc),6)) # mode field diameter\n",
+ "K=(2.0*math.pi)/y\n",
+ "Lm=-10*math.log(-1*(1-math.pow(K,4)*math.pow(n,4)*math.pow(((3.95*math.pow(10,-6))/(8*math.pow(R,2))),6)))/math.log(10) # macrobend loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The mode field diameter = \",dmf*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The macrobend loss = \",Lm,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The mode field diameter = 11.63 um\n",
+ "\n",
+ " The macrobend loss = -126.52 dB\n",
+ "\n",
+ " The answer is wrong in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNO-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "Pi=10*math.pow(10,-3) # input power in watt\n",
+ "Po=8*math.pow(10,-3) # output power in watt\n",
+ "L=0.150 # length in km\n",
+ "Ls=(10*math.log(Po/Pi)/math.log(10))/L\n",
+ "\n",
+ "print ('%s %.2f %s' %(\" The transmission length = \",Ls,\"km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transmission length = -6.46 km\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter5.ipynb b/Optical_Fiber_Communication/Chapter5.ipynb
new file mode 100755
index 00000000..d4366624
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter5.ipynb
@@ -0,0 +1,1476 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9df1a39eaf45bb37d3874de747aedcb050a5a7704427c92544b1342299e9f172"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Optical Sources Laser"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "t=0.1*math.pow(10,-6) # pulse broading in sec\n",
+ "d=12 # disance in km\n",
+ "B=1/(2*t) # max bandwidth MHz\n",
+ "\n",
+ "# Calculations\n",
+ "ds=t/d #dispersion in ns/km\n",
+ "bl=B*d # bandwidth length product\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 8.333 ns/km\n",
+ "\n",
+ " bandwidth length product = 60.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable initialisation\n",
+ "t=0.1*math.pow(10,-6) # pulse broadening in sec\n",
+ "d=15 # disance in km\n",
+ "B=1/(2*t) # max bandwidth MHz\n",
+ "ds=t/d # dispersion in ns/km\n",
+ "bl=B*d # bandwidth length product\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 6.667 ns/km\n",
+ "\n",
+ " bandwidth length product = 75.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.465 # core refractive index\n",
+ "n2=1.45 #cladding refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "Mp=math.pow(NA,2)/(2*n1*c) # multipath pulse broadening in ns/km\n",
+ "bl=(1/math.pow(NA,2))*(2*n1*c) # bandwidth length product in GHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))\n",
+ "print ('%s %.2f %s' %(\"\\n The multipath pulse broadening = \",Mp*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The bandwidth length product = \",bl/pow(10,9),\"GHz km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.21\n",
+ "\n",
+ " The multipath pulse broadening = 0.05 ns/km\n",
+ "\n",
+ " The bandwidth length product = 20.1 GHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(10,8) # the speed of light m/s\n",
+ "y=1.3 #wavelength in um\n",
+ "M=ds/(c*y) # material dispersion parameter in ps/nm/km\n",
+ "w=6 # spectral width in nm\n",
+ "l=1 # length in km\n",
+ "rm=w*l*M # rms pulse broadening in ns/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion parameter = \",M*math.pow(10,12),\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rm*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion parameter = 51.28 ps/nm/km\n",
+ "\n",
+ " The rms pulse broadening = 0.31 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "wr=0.0014 # relative spectral width in nm\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "w=wr*y # spectral width in nm\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "M=ds/(c*y) # material dispersion parameter in ps/nm/km\n",
+ "l=1 # length in km\n",
+ "rm=w*l*M # rms pulse broadening in ns/km\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The rms pulse broadening = \",rm*pow(10,9)*pow(10,3),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 0.093 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=10*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dt=(L*n1*dl)/c #delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "bl=bt*L # bandwidth length product in Hz meter\n",
+ "bL=(bt*L)/(math.pow(10,6)*math.pow(10,3)) #bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 486.67 ns\n",
+ "\n",
+ " The rms pulse broadening = 140.49 ns\n",
+ "\n",
+ " The max bit rate = 1.42 M bits/sec\n",
+ "\n",
+ " The bandwidth length product = 14.24 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 86.60 ns\n",
+ "\n",
+ " The max bit rate = 2.3094 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.4 # core refractive index\n",
+ "dl=0.012 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# Calculations\n",
+ "dt=(L*n1*dl)/c # delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 336 ns\n",
+ "\n",
+ " The rms pulse broadening = 97.0 ns\n",
+ "\n",
+ " The max bit rate = 2.062 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light m/s\n",
+ "w=6*math.pow(10,-6) # rms spectral width in m\n",
+ "M=200 # material dispersion parameter in ps/nm/km\n",
+ "NA=0.25 # numerical aperture\n",
+ "w=50 # spectral width in nm\n",
+ "L=1 # length in m\n",
+ "\n",
+ "# calculations\n",
+ "rm=w*L*M # rms pulse broadening in s/km\n",
+ "rM=rm/math.pow(10,3) # rms pulse broadening in ns/km due to material dispersion\n",
+ "rm1=(L*1000*math.pow((NA),2))/(4*math.sqrt(3)*n1*c) # rms pulse broadening in ns/km due to material dispersion in sec/m\n",
+ "rM1=rm1*math.pow(10,9) # rms pulse broadening in ns/km due to intermodel dispersion in ns/km\n",
+ "rmt=math.sqrt(math.pow(rM,2)+math.pow(rM1,2)) # total rms pulse broadening in ns/km\n",
+ "bl=0.2/(rmt*math.pow(10,-9)) # bandwidth length product in Hz km\n",
+ "bL=bl/math.pow(10,6) # bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total rms pulse broadening = \",rmt,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total rms pulse broadening = 22.40 ns/km\n",
+ "\n",
+ " The bandwidth length product = 8.93 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "yo=1320.0 # zero dispersion wavelength in nm\n",
+ "y=1290.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slop\n",
+ "dt=(y*so/4)*(1-math.pow((yo/y),4)) #toal first order dispersion at 1290 nm in ps/nm/km\n",
+ "yo1=1310.0 # zero dispersion wavelength in um\n",
+ "y1=1550.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slope\n",
+ "dt1=(y1*so/4)*(1-math.pow((yo1/y1),4)) # toal first order dispersion at 1550 nm in ps/nm/km\n",
+ "DM=13.5 # profile dispersion in ps/nm/km\n",
+ "DP=0.4 # profile dispersion in ps/nm/km\n",
+ "DW=dt1-(DM+DP) # wavelength dispersion in ps/nm/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total first order dispersion at 1290 nm = \",dt,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total first order dispersion at 1550 nm = \",dt1,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength dispersion at 1550 nm = \",DW,\"ps/nm/km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total first order dispersion at 1290 nm = -2.86 ps/nm/km\n",
+ "\n",
+ " The total first order dispersion at 1550 nm = 17.46 ps/nm/km\n",
+ "\n",
+ " The wavelength dispersion at 1550 nm = 3.56 ps/nm/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=6*math.pow(10,-2) # beat length in m\n",
+ "dy=6*math.pow(10,-9) # spectral width in m\n",
+ "y=1.3*math.pow(10,-6) # operating wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "BF=y/(L) # model birefrigence in um\n",
+ "Lc=math.pow(y,2)/(BF*dy) # coherence length in m\n",
+ "db=2*math.pi/(L) #difference beween two propagation constants\n",
+ "dB=(2*math.pi*BF)/y\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The model birefrigence = \",BF*pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The coherence length= \",Lc,\"m\"))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", db))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", dB))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigence = 21.67 um\n",
+ "\n",
+ " The coherence length= 13.0 m\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=0.85*math.pow(10,-6) # operating wavelength in m\n",
+ "L=0.5*math.pow(10,-3) # beat length in m\n",
+ "BF=y/(L) # model birefrigence in um\n",
+ "L1=75 # beat length in m\n",
+ "BF1=y/(L1) #model birefrigence in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The model birefrigenceat 0.5 nm = \",BF,\"*10^-3\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The model birefrigence at 75 m = \",BF1*math.pow(10,8),\"*10^-8\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigenceat 0.5 nm = 0.0017 *10^-3\n",
+ "\n",
+ " The model birefrigence at 75 m = 1.133 *10^-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Lc=100000 # coherence length in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "dy=1.5*math.pow(10,-9) # spectral width in m\n",
+ "BF=math.pow(y,2)/(Lc*dy) # model birefrigence in um\n",
+ "L=y/BF # beat length in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The beat length= \",L,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The beat length= 113.64 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.25 # numerical aperture\n",
+ "c=3*math.pow(10,5) # the speed of light km/s\n",
+ "L=7 # length in km\n",
+ "si=math.pow(NA,2)/(4*math.sqrt(3)*n1*c) # intermodel pulse broadening ns/km\n",
+ "st=si*L # total intermodel pulse broadening\n",
+ "BW=0.187/st # bandwidth in MHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse broadening = \",st*math.pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The bandwidth = \",BW/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel pulse broadening = 144.17 ns/km\n",
+ "\n",
+ " The bandwidth = 1.2971 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=500 # length in m\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "dt=(n1*L*math.pow(df,2))/(8*c) # max dispersion in ns/m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",dt*math.pow(10,9),\"ns/m\"))\n",
+ "print (\"\\n The answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.1901 ns/m\n",
+ "\n",
+ " The answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "dy=15 # spectral width in nm\n",
+ "L=25 # optical length in km\n",
+ "ps=1.60 #pulse spreads in ns/km\n",
+ "pS=1.6 # pulse spreads in ns/km\n",
+ "d=pS/(dy*L) # material dispersion in ns/km^2/nm\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",d,\"ns/km^2/nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.0043 ns/km^2/nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.2 # numerical aperture\n",
+ "L=1.5*math.pow(10,3) # length in m\n",
+ "c=3*math.pow(10,8) # the spee of light in m/s\n",
+ "dt=(L*math.pow(NA,2))/(2*c*n1) #intermodel dispersion in ns/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion = \",dt*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 68.493 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "BLP=250*math.pow(10,6) # bandwidth length product in Hz\n",
+ "tr=0.32/BLP # intermodel pulse width broadening\n",
+ "md=75 # material dispersion in ps/nm.km\n",
+ "tm=2.25 # pulse broadening due to material dispersion in ns/km\n",
+ "tc=math.sqrt(math.pow((tr*math.pow(10,9)),2)+math.pow(tm,2)) # combine pulse broadening in ns/km\n",
+ "Ba=0.32/tm*math.pow(10,9) # actual BLP in Hz.km\n",
+ "Bac=Ba/math.pow(10,6) # actual BLP in MHz.km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse width broadening = \",tr*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n pulse broadening due to material dispersion = \",tm,\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The combine pulse broadening = \",tc,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The actual BLP = \",Bac,\"MHz.km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel pulse width broadening = 1.28 ns/km\n",
+ "\n",
+ " pulse broadening due to material dispersion = 2.25 ns/km\n",
+ "\n",
+ " The combine pulse broadening = 2.5886 ns/km\n",
+ "\n",
+ " The actual BLP = 142.22 MHz.km\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "L=40 # length in m\n",
+ "Ny=.75 # in ps/nm\n",
+ "dy=8 # spectral width in nm\n",
+ "t_mat=L*Ny*dy # chromatic/material dispersion in ps\n",
+ "t_mat1=t_mat/1000 # chromatic/material dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The chromatic/material dispersion = \",t_mat1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The chromatic/material dispersion = 0.24 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1.3 # operating wavelength in um\n",
+ "md=2.80 # material dispersion in ns\n",
+ "wd=0.50 # waveguide dispersion in ns\n",
+ "wt=0.60 # width of transmitted pulse in ns\n",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.4443 ns\n",
+ "\n",
+ " The max bit rate = 58.0671 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "y=0.85 # operating wavelength in um\n",
+ "md=2.75 # material dispersion in ns\n",
+ "wd=0.45 # waveguide dispersion in ns\n",
+ "wt=0.50 # width of transmitted pulse in ns\n",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.2866 ns\n",
+ "\n",
+ " The max bit rate = 60.85 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=1500 # length in meter\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "md=(n1*L*df)/(c*(1-df)) # max dispersion in sec\n",
+ "Md=md*math.pow(10,9) # max dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",Md,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 187.18 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 86
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "L=1000 # length in meter\n",
+ "NA=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "dl=math.pow((NA/n1),2)/2;\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "dt=(L*n1*dl)/c #intermodel dispersion in sec\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",dT,\"ns\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 53.78 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "w=30.0 # line width in nm\n",
+ "L=1.5 # length in km\n",
+ "d1=6.0 # in ns/km\n",
+ "d2=85.0 # in ps/km/nm\n",
+ "d3=d2/1000 # in ns/km/nm\n",
+ "dt=d1*L # intermodel dispersion in ns\n",
+ "dt1=w*d3*L # intramodel dispersion in ns\n",
+ "dT=math.sqrt(math.pow(dt,2)+math.pow(dt1,2)) # total dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max dispersion = \",dt,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dt1,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dT,\"ns\"))\n",
+ "print (\"\\n answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 9.0 ns\n",
+ "\n",
+ " The max dispersion = 3.825 ns\n",
+ "\n",
+ " The max dispersion = 9.779 ns\n",
+ "\n",
+ " answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "l=150 # fiber length in m\n",
+ "c=3*math.pow(10,8) #the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dl=(math.pow(n1,2)-math.pow(n2,2))/(2*n1)\n",
+ "dL=0.068\n",
+ "dt=(l*n1*dL)/(c) # intermodel dispersion in s\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel dispersion = \",dT,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 52.70 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.42 # core refractive index\n",
+ "dl=0.02\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "dt=(n1*dl)/c # intermodel disersion in sec/m\n",
+ "dt1=dt*1000 # intermodel disersion in sec/km\n",
+ "dt2=dt1*math.pow(10,9) # intermodel disersion in ns/km\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion per km = \",dt2,\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion per km = 94.667 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Results\n",
+ "print (\" Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\")\n",
+ "print (\"\\n Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\")\n",
+ "print (\"\\n =CV(Z-V)exp(-V)\")\n",
+ "print (\"\\n where C=n2(dl/cy)\")\n",
+ "print (\"\\n waveguide dispersion will be zero , when V=2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\n",
+ "\n",
+ " Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\n",
+ "\n",
+ " =CV(Z-V)exp(-V)\n",
+ "\n",
+ " where C=n2(dl/cy)\n",
+ "\n",
+ " waveguide dispersion will be zero , when V=2\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=900.0 # operating wavelength in nm\n",
+ "yo=1343.0 # wavelength in nm\n",
+ "so=0.095 # in ps/nm^2-km\n",
+ "L=150.0 # in km\n",
+ "dy=50.0 # in nm\n",
+ "\n",
+ "# calculations\n",
+ "Dy=(so*y/4)*(1-math.pow((yo/y),4)) # inps/nm-km\n",
+ "Dy1=Dy*(-1) # do not consider -ve sign\n",
+ "dt=Dy1*L*dy # pulse spreading in ps\n",
+ "dt1=dt/1000 # pulse spreading in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The pulse spreading = \",dt1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 634.567 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "y=900 # operating wavelength in nm\n",
+ "yo=1343 # wavelength in nm\n",
+ "so=0.095 # in ps/nm^2-km\n",
+ "L=1.5 # in km\n",
+ "dy=50 # in nm\n",
+ "dl=0.002\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "\n",
+ "# calculations\n",
+ "Dm=(so*y/4)*(1-math.pow((yo/y),4))# inps/nm-km\n",
+ "Dm1=Dm*(-1) # do not consider -ve sign\n",
+ "Vd=0.26\n",
+ "Dw=((n1*dl)/(c*y*math.pow(10,-9)))*(Vd);\n",
+ "DW=Dw*math.pow(10,6)# in ps/nm-km\n",
+ "dt=DW*L*dy # pulse spreading in ps\n",
+ "dt1=dt/100 # pulse spreading in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The pulse spreading = \",dt1,\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 2.1378 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 30: PgNo-263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=4.1*math.pow(10,-6) # core radius in um\n",
+ "dl=0.0036\n",
+ "y1=1.310*math.pow(10,-6) # operating wavelength in um\n",
+ "y2=1.550*math.pow(10,-6)# operating wavelength in um\n",
+ "n1=1.4677# core refrative index at y=1.310\n",
+ "n2=1.4682# core refrative index at y=1.550\n",
+ "\n",
+ "# Calculations\n",
+ "v1=(2*3.14*a*n1*math.sqrt(2*dl))/y1# normalised frequency at y=1.310\n",
+ "v2=(2*3.14*a*n2*math.sqrt(2*dl))/y2# normalised frequency at y=1.550\n",
+ "wo=a*(0.65+(1.619/math.pow(v1,1.5))+2.879/math.pow(v1,3))\n",
+ "wp=wo-a*(0.016+1.567/math.pow(v1,7))\n",
+ "wo1=a*(0.65+(1.619/math.pow(v2,1.5))+2.879/math.pow(v2,3))\n",
+ "wp1=wo-a*(0.016+1.567/math.pow(v2,7))\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The value of wo = \",wo*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp = \",wp*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wo1 = \",wo1*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp1 = \",wp1*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of wo = 5.2031 um\n",
+ "\n",
+ " The value of wp = 5.1253 um\n",
+ "\n",
+ " The value of wo1 = 6.2264 um\n",
+ "\n",
+ " The value of wp1 = 5.0980 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 94
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 31: PgNo-268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=1.30*math.pow(10,-6) # operating wavelength in m\n",
+ "dn1=math.pow(10,-6)\n",
+ "dn2=math.pow(10,-5)\n",
+ "\n",
+ "# Calculations\n",
+ "db1=(dn1*2*3.14)/y# in per m\n",
+ "db2=(dn2*2*3.14)/y# in per m\n",
+ "Lp1=(2*3.14)/(db1)# beat length in m\n",
+ "Lp2=(2*3.14)/(db2)# beat length in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",db1,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",db2,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The beat length = \",Lp1,\"m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The beat length = \",Lp2*100,\"cm\"))\n",
+ "print (\"\\n Hence, range of beat length; 13cm-1.3m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core radius = 4.83 um\n",
+ "\n",
+ " The max core radius = 48.31 um\n",
+ "\n",
+ " The beat length = 1.30 m\n",
+ "\n",
+ " The beat length = 13.0 cm\n",
+ "\n",
+ " Hence, range of beat length; 13cm-1.3m\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 32: PgNo-269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.0027\n",
+ "a=4.4*math.pow(10,-6) # radius in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "n2=n1*(1-dl)\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "v=(2*3.14*a*n1*math.sqrt(2*dl))/y\n",
+ "VD=0.080+0.549*math.pow((2.834-v),2)\n",
+ "DW=(-1)*(n2*dl*VD)/(c*y) # wavelength dispersion in s /um/m\n",
+ "Dw=DW*math.pow(10,6) # wavelength dispersion in ps /nm/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The wavelength dispersion = \",Dw,\"ps n/m/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength dispersion = -2.5213 ps n/m/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 33: PgNo-271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.01 # refractive index difference\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "y=1.55 # wavelength in um\n",
+ "DM=7.0 # in ps/nm-km\n",
+ "DW=(-1)*DM # in ps/nm-km\n",
+ "\n",
+ "# calculations\n",
+ "X=math.pow(-10,12)*(n1*dl)/(c*y)# in ps/nm/km\n",
+ "Z=(DW/X)-0.08\n",
+ "V=2.834-math.sqrt(-Z/0.549)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))# core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 2.47 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter5_1.ipynb b/Optical_Fiber_Communication/Chapter5_1.ipynb
new file mode 100755
index 00000000..d4366624
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter5_1.ipynb
@@ -0,0 +1,1476 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9df1a39eaf45bb37d3874de747aedcb050a5a7704427c92544b1342299e9f172"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Optical Sources Laser"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "t=0.1*math.pow(10,-6) # pulse broading in sec\n",
+ "d=12 # disance in km\n",
+ "B=1/(2*t) # max bandwidth MHz\n",
+ "\n",
+ "# Calculations\n",
+ "ds=t/d #dispersion in ns/km\n",
+ "bl=B*d # bandwidth length product\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 8.333 ns/km\n",
+ "\n",
+ " bandwidth length product = 60.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Variable initialisation\n",
+ "t=0.1*math.pow(10,-6) # pulse broadening in sec\n",
+ "d=15 # disance in km\n",
+ "B=1/(2*t) # max bandwidth MHz\n",
+ "ds=t/d # dispersion in ns/km\n",
+ "bl=B*d # bandwidth length product\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max bandwidth = \",B/pow(10,6),\"MHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The dispersion = \",ds*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n bandwidth length product = \",bl/pow(10,6),\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max bandwidth = 5.0 MHz\n",
+ "\n",
+ " The dispersion = 6.667 ns/km\n",
+ "\n",
+ " bandwidth length product = 75.0 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.465 # core refractive index\n",
+ "n2=1.45 #cladding refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "Mp=math.pow(NA,2)/(2*n1*c) # multipath pulse broadening in ns/km\n",
+ "bl=(1/math.pow(NA,2))*(2*n1*c) # bandwidth length product in GHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))\n",
+ "print ('%s %.2f %s' %(\"\\n The multipath pulse broadening = \",Mp*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The bandwidth length product = \",bl/pow(10,9),\"GHz km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.21\n",
+ "\n",
+ " The multipath pulse broadening = 0.05 ns/km\n",
+ "\n",
+ " The bandwidth length product = 20.1 GHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(10,8) # the speed of light m/s\n",
+ "y=1.3 #wavelength in um\n",
+ "M=ds/(c*y) # material dispersion parameter in ps/nm/km\n",
+ "w=6 # spectral width in nm\n",
+ "l=1 # length in km\n",
+ "rm=w*l*M # rms pulse broadening in ns/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The material dispersion parameter = \",M*math.pow(10,12),\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rm*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The material dispersion parameter = 51.28 ps/nm/km\n",
+ "\n",
+ " The rms pulse broadening = 0.31 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "wr=0.0014 # relative spectral width in nm\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "w=wr*y # spectral width in nm\n",
+ "ds=0.020 # material dispersion\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "M=ds/(c*y) # material dispersion parameter in ps/nm/km\n",
+ "l=1 # length in km\n",
+ "rm=w*l*M # rms pulse broadening in ns/km\n",
+ "\n",
+ "print ('%s %.3f %s' %(\" The rms pulse broadening = \",rm*pow(10,9)*pow(10,3),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 0.093 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=10*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dt=(L*n1*dl)/c #delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "bl=bt*L # bandwidth length product in Hz meter\n",
+ "bL=(bt*L)/(math.pow(10,6)*math.pow(10,3)) #bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 486.67 ns\n",
+ "\n",
+ " The rms pulse broadening = 140.49 ns\n",
+ "\n",
+ " The max bit rate = 1.42 M bits/sec\n",
+ "\n",
+ " The bandwidth length product = 14.24 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "dl=0.01 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rms pulse broadening = 86.60 ns\n",
+ "\n",
+ " The max bit rate = 2.3094 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.4 # core refractive index\n",
+ "dl=0.012 # relative index difference\n",
+ "L=6*math.pow(10,3) # optical length in meter\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "\n",
+ "# Calculations\n",
+ "dt=(L*n1*dl)/c # delay difference in s\n",
+ "dT=dt*math.pow(10,9) # delay difference in ns\n",
+ "rm=(L*n1*dl)/(2*math.sqrt(3)*c) # rms pulse broadening s\n",
+ "rM=rm*math.pow(10,9) # rms pulse broadening ns\n",
+ "bt=0.2/rm # max bit rate in bit/sec\n",
+ "bT=bt/math.pow(10,6) # max bit rate in M bits/sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The delay difference = \",dT,\"ns\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The rms pulse broadening = \",rM,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max bit rate = \",bT,\"M bits/sec\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The delay difference = 336 ns\n",
+ "\n",
+ " The rms pulse broadening = 97.0 ns\n",
+ "\n",
+ " The max bit rate = 2.062 M bits/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 #core refractive index\n",
+ "c=3*math.pow(10,8) # the speed of light m/s\n",
+ "w=6*math.pow(10,-6) # rms spectral width in m\n",
+ "M=200 # material dispersion parameter in ps/nm/km\n",
+ "NA=0.25 # numerical aperture\n",
+ "w=50 # spectral width in nm\n",
+ "L=1 # length in m\n",
+ "\n",
+ "# calculations\n",
+ "rm=w*L*M # rms pulse broadening in s/km\n",
+ "rM=rm/math.pow(10,3) # rms pulse broadening in ns/km due to material dispersion\n",
+ "rm1=(L*1000*math.pow((NA),2))/(4*math.sqrt(3)*n1*c) # rms pulse broadening in ns/km due to material dispersion in sec/m\n",
+ "rM1=rm1*math.pow(10,9) # rms pulse broadening in ns/km due to intermodel dispersion in ns/km\n",
+ "rmt=math.sqrt(math.pow(rM,2)+math.pow(rM1,2)) # total rms pulse broadening in ns/km\n",
+ "bl=0.2/(rmt*math.pow(10,-9)) # bandwidth length product in Hz km\n",
+ "bL=bl/math.pow(10,6) # bandwidth length product in MHz km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total rms pulse broadening = \",rmt,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandwidth length product = \",bL,\"MHz km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total rms pulse broadening = 22.40 ns/km\n",
+ "\n",
+ " The bandwidth length product = 8.93 MHz km\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "yo=1320.0 # zero dispersion wavelength in nm\n",
+ "y=1290.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slop\n",
+ "dt=(y*so/4)*(1-math.pow((yo/y),4)) #toal first order dispersion at 1290 nm in ps/nm/km\n",
+ "yo1=1310.0 # zero dispersion wavelength in um\n",
+ "y1=1550.0 # dispersion wavelength in nm\n",
+ "so=0.092 # dispersion slope\n",
+ "dt1=(y1*so/4)*(1-math.pow((yo1/y1),4)) # toal first order dispersion at 1550 nm in ps/nm/km\n",
+ "DM=13.5 # profile dispersion in ps/nm/km\n",
+ "DP=0.4 # profile dispersion in ps/nm/km\n",
+ "DW=dt1-(DM+DP) # wavelength dispersion in ps/nm/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total first order dispersion at 1290 nm = \",dt,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total first order dispersion at 1550 nm = \",dt1,\"ps/nm/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength dispersion at 1550 nm = \",DW,\"ps/nm/km\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total first order dispersion at 1290 nm = -2.86 ps/nm/km\n",
+ "\n",
+ " The total first order dispersion at 1550 nm = 17.46 ps/nm/km\n",
+ "\n",
+ " The wavelength dispersion at 1550 nm = 3.56 ps/nm/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "L=6*math.pow(10,-2) # beat length in m\n",
+ "dy=6*math.pow(10,-9) # spectral width in m\n",
+ "y=1.3*math.pow(10,-6) # operating wavelength in m\n",
+ "\n",
+ "# Calculations\n",
+ "BF=y/(L) # model birefrigence in um\n",
+ "Lc=math.pow(y,2)/(BF*dy) # coherence length in m\n",
+ "db=2*math.pi/(L) #difference beween two propagation constants\n",
+ "dB=(2*math.pi*BF)/y\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The model birefrigence = \",BF*pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The coherence length= \",Lc,\"m\"))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", db))\n",
+ "print ('%s %.2f' %(\"\\n The difference beween two propagation constants= \", dB))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigence = 21.67 um\n",
+ "\n",
+ " The coherence length= 13.0 m\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n",
+ "\n",
+ " The difference beween two propagation constants= 104.72\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=0.85*math.pow(10,-6) # operating wavelength in m\n",
+ "L=0.5*math.pow(10,-3) # beat length in m\n",
+ "BF=y/(L) # model birefrigence in um\n",
+ "L1=75 # beat length in m\n",
+ "BF1=y/(L1) #model birefrigence in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The model birefrigenceat 0.5 nm = \",BF,\"*10^-3\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The model birefrigence at 75 m = \",BF1*math.pow(10,8),\"*10^-8\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The model birefrigenceat 0.5 nm = 0.0017 *10^-3\n",
+ "\n",
+ " The model birefrigence at 75 m = 1.133 *10^-8\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Lc=100000 # coherence length in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "dy=1.5*math.pow(10,-9) # spectral width in m\n",
+ "BF=math.pow(y,2)/(Lc*dy) # model birefrigence in um\n",
+ "L=y/BF # beat length in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The beat length= \",L,\"m\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The beat length= 113.64 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.25 # numerical aperture\n",
+ "c=3*math.pow(10,5) # the speed of light km/s\n",
+ "L=7 # length in km\n",
+ "si=math.pow(NA,2)/(4*math.sqrt(3)*n1*c) # intermodel pulse broadening ns/km\n",
+ "st=si*L # total intermodel pulse broadening\n",
+ "BW=0.187/st # bandwidth in MHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse broadening = \",st*math.pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The bandwidth = \",BW/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel pulse broadening = 144.17 ns/km\n",
+ "\n",
+ " The bandwidth = 1.2971 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=500 # length in m\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "dt=(n1*L*math.pow(df,2))/(8*c) # max dispersion in ns/m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",dt*math.pow(10,9),\"ns/m\"))\n",
+ "print (\"\\n The answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.1901 ns/m\n",
+ "\n",
+ " The answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "dy=15 # spectral width in nm\n",
+ "L=25 # optical length in km\n",
+ "ps=1.60 #pulse spreads in ns/km\n",
+ "pS=1.6 # pulse spreads in ns/km\n",
+ "d=pS/(dy*L) # material dispersion in ns/km^2/nm\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The max dispersion = \",d,\"ns/km^2/nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 0.0043 ns/km^2/nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "NA=0.2 # numerical aperture\n",
+ "L=1.5*math.pow(10,3) # length in m\n",
+ "c=3*math.pow(10,8) # the spee of light in m/s\n",
+ "dt=(L*math.pow(NA,2))/(2*c*n1) #intermodel dispersion in ns/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion = \",dt*math.pow(10,9),\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 68.493 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "BLP=250*math.pow(10,6) # bandwidth length product in Hz\n",
+ "tr=0.32/BLP # intermodel pulse width broadening\n",
+ "md=75 # material dispersion in ps/nm.km\n",
+ "tm=2.25 # pulse broadening due to material dispersion in ns/km\n",
+ "tc=math.sqrt(math.pow((tr*math.pow(10,9)),2)+math.pow(tm,2)) # combine pulse broadening in ns/km\n",
+ "Ba=0.32/tm*math.pow(10,9) # actual BLP in Hz.km\n",
+ "Bac=Ba/math.pow(10,6) # actual BLP in MHz.km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel pulse width broadening = \",tr*pow(10,9),\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n pulse broadening due to material dispersion = \",tm,\"ns/km\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The combine pulse broadening = \",tc,\"ns/km\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The actual BLP = \",Bac,\"MHz.km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel pulse width broadening = 1.28 ns/km\n",
+ "\n",
+ " pulse broadening due to material dispersion = 2.25 ns/km\n",
+ "\n",
+ " The combine pulse broadening = 2.5886 ns/km\n",
+ "\n",
+ " The actual BLP = 142.22 MHz.km\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "L=40 # length in m\n",
+ "Ny=.75 # in ps/nm\n",
+ "dy=8 # spectral width in nm\n",
+ "t_mat=L*Ny*dy # chromatic/material dispersion in ps\n",
+ "t_mat1=t_mat/1000 # chromatic/material dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The chromatic/material dispersion = \",t_mat1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The chromatic/material dispersion = 0.24 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1.3 # operating wavelength in um\n",
+ "md=2.80 # material dispersion in ns\n",
+ "wd=0.50 # waveguide dispersion in ns\n",
+ "wt=0.60 # width of transmitted pulse in ns\n",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.4443 ns\n",
+ "\n",
+ " The max bit rate = 58.0671 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "y=0.85 # operating wavelength in um\n",
+ "md=2.75 # material dispersion in ns\n",
+ "wd=0.45 # waveguide dispersion in ns\n",
+ "wt=0.50 # width of transmitted pulse in ns\n",
+ "\n",
+ "# Calculations\n",
+ "td=math.sqrt(math.pow(md,2)+math.pow(wd,2)) # total dispersion in ns\n",
+ "dt=wt+td # received pulse width in ns\n",
+ "br=1/(5*dt*math.pow(10,-9)) # max bit rate bit/sec\n",
+ "Br=br/math.pow(10,6) # max bit rate in mbps\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The received pulse width = \",dt,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max bit rate = \",Br,\"mbps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The received pulse width = 3.2866 ns\n",
+ "\n",
+ " The max bit rate = 60.85 mbps\n"
+ ]
+ }
+ ],
+ "prompt_number": 85
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "df=0.025\n",
+ "L=1500 # length in meter\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "md=(n1*L*df)/(c*(1-df)) # max dispersion in sec\n",
+ "Md=md*math.pow(10,9) # max dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",Md,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 187.18 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 86
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "L=1000 # length in meter\n",
+ "NA=0.22 # numerical aperture\n",
+ "\n",
+ "# Calculations\n",
+ "dl=math.pow((NA/n1),2)/2;\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "dt=(L*n1*dl)/c #intermodel dispersion in sec\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max dispersion = \",dT,\"ns\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 53.78 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "w=30.0 # line width in nm\n",
+ "L=1.5 # length in km\n",
+ "d1=6.0 # in ns/km\n",
+ "d2=85.0 # in ps/km/nm\n",
+ "d3=d2/1000 # in ns/km/nm\n",
+ "dt=d1*L # intermodel dispersion in ns\n",
+ "dt1=w*d3*L # intramodel dispersion in ns\n",
+ "dT=math.sqrt(math.pow(dt,2)+math.pow(dt1,2)) # total dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The max dispersion = \",dt,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dt1,\"ns\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The max dispersion = \",dT,\"ns\"))\n",
+ "print (\"\\n answer in the textbook is wrong \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max dispersion = 9.0 ns\n",
+ "\n",
+ " The max dispersion = 3.825 ns\n",
+ "\n",
+ " The max dispersion = 9.779 ns\n",
+ "\n",
+ " answer in the textbook is wrong \n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.55 # core refractive index\n",
+ "n2=1.48 # cladding refractive index\n",
+ "l=150 # fiber length in m\n",
+ "c=3*math.pow(10,8) #the speed of light in m/s\n",
+ "\n",
+ "# calculations\n",
+ "dl=(math.pow(n1,2)-math.pow(n2,2))/(2*n1)\n",
+ "dL=0.068\n",
+ "dt=(l*n1*dL)/(c) # intermodel dispersion in s\n",
+ "dT=dt*math.pow(10,9) # intermodel dispersion in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The intermodel dispersion = \",dT,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion = 52.70 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.42 # core refractive index\n",
+ "dl=0.02\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "dt=(n1*dl)/c # intermodel disersion in sec/m\n",
+ "dt1=dt*1000 # intermodel disersion in sec/km\n",
+ "dt2=dt1*math.pow(10,9) # intermodel disersion in ns/km\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The intermodel dispersion per km = \",dt2,\"ns/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The intermodel dispersion per km = 94.667 ns/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Results\n",
+ "print (\" Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\")\n",
+ "print (\"\\n Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\")\n",
+ "print (\"\\n =CV(Z-V)exp(-V)\")\n",
+ "print (\"\\n where C=n2(dl/cy)\")\n",
+ "print (\"\\n waveguide dispersion will be zero , when V=2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Dwg=n2*(dl/cy)*V(d^2(Vb)/dV^2)\n",
+ "\n",
+ " Dwg=n2*(dl/cy)*V(d^2(V(1-exp(-V))))/dv^2\n",
+ "\n",
+ " =CV(Z-V)exp(-V)\n",
+ "\n",
+ " where C=n2(dl/cy)\n",
+ "\n",
+ " waveguide dispersion will be zero , when V=2\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "y=900.0 # operating wavelength in nm\n",
+ "yo=1343.0 # wavelength in nm\n",
+ "so=0.095 # in ps/nm^2-km\n",
+ "L=150.0 # in km\n",
+ "dy=50.0 # in nm\n",
+ "\n",
+ "# calculations\n",
+ "Dy=(so*y/4)*(1-math.pow((yo/y),4)) # inps/nm-km\n",
+ "Dy1=Dy*(-1) # do not consider -ve sign\n",
+ "dt=Dy1*L*dy # pulse spreading in ps\n",
+ "dt1=dt/1000 # pulse spreading in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The pulse spreading = \",dt1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 634.567 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 92
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "y=900 # operating wavelength in nm\n",
+ "yo=1343 # wavelength in nm\n",
+ "so=0.095 # in ps/nm^2-km\n",
+ "L=1.5 # in km\n",
+ "dy=50 # in nm\n",
+ "dl=0.002\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "\n",
+ "# calculations\n",
+ "Dm=(so*y/4)*(1-math.pow((yo/y),4))# inps/nm-km\n",
+ "Dm1=Dm*(-1) # do not consider -ve sign\n",
+ "Vd=0.26\n",
+ "Dw=((n1*dl)/(c*y*math.pow(10,-9)))*(Vd);\n",
+ "DW=Dw*math.pow(10,6)# in ps/nm-km\n",
+ "dt=DW*L*dy # pulse spreading in ps\n",
+ "dt1=dt/100 # pulse spreading in ns\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The pulse spreading = \",dt1,\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pulse spreading = 2.1378 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 30: PgNo-263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "a=4.1*math.pow(10,-6) # core radius in um\n",
+ "dl=0.0036\n",
+ "y1=1.310*math.pow(10,-6) # operating wavelength in um\n",
+ "y2=1.550*math.pow(10,-6)# operating wavelength in um\n",
+ "n1=1.4677# core refrative index at y=1.310\n",
+ "n2=1.4682# core refrative index at y=1.550\n",
+ "\n",
+ "# Calculations\n",
+ "v1=(2*3.14*a*n1*math.sqrt(2*dl))/y1# normalised frequency at y=1.310\n",
+ "v2=(2*3.14*a*n2*math.sqrt(2*dl))/y2# normalised frequency at y=1.550\n",
+ "wo=a*(0.65+(1.619/math.pow(v1,1.5))+2.879/math.pow(v1,3))\n",
+ "wp=wo-a*(0.016+1.567/math.pow(v1,7))\n",
+ "wo1=a*(0.65+(1.619/math.pow(v2,1.5))+2.879/math.pow(v2,3))\n",
+ "wp1=wo-a*(0.016+1.567/math.pow(v2,7))\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The value of wo = \",wo*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp = \",wp*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wo1 = \",wo1*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The value of wp1 = \",wp1*pow(10,6),\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of wo = 5.2031 um\n",
+ "\n",
+ " The value of wp = 5.1253 um\n",
+ "\n",
+ " The value of wo1 = 6.2264 um\n",
+ "\n",
+ " The value of wp1 = 5.0980 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 94
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 31: PgNo-268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=1.30*math.pow(10,-6) # operating wavelength in m\n",
+ "dn1=math.pow(10,-6)\n",
+ "dn2=math.pow(10,-5)\n",
+ "\n",
+ "# Calculations\n",
+ "db1=(dn1*2*3.14)/y# in per m\n",
+ "db2=(dn2*2*3.14)/y# in per m\n",
+ "Lp1=(2*3.14)/(db1)# beat length in m\n",
+ "Lp2=(2*3.14)/(db2)# beat length in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max core radius = \",db1,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The max core radius = \",db2,\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The beat length = \",Lp1,\"m\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The beat length = \",Lp2*100,\"cm\"))\n",
+ "print (\"\\n Hence, range of beat length; 13cm-1.3m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max core radius = 4.83 um\n",
+ "\n",
+ " The max core radius = 48.31 um\n",
+ "\n",
+ " The beat length = 1.30 m\n",
+ "\n",
+ " The beat length = 13.0 cm\n",
+ "\n",
+ " Hence, range of beat length; 13cm-1.3m\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 32: PgNo-269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.0027\n",
+ "a=4.4*math.pow(10,-6) # radius in m\n",
+ "y=1.32*math.pow(10,-6) # operating wavelength in m\n",
+ "n2=n1*(1-dl)\n",
+ "c=3*math.pow(10,8) # the speed of ligth in m/s\n",
+ "v=(2*3.14*a*n1*math.sqrt(2*dl))/y\n",
+ "VD=0.080+0.549*math.pow((2.834-v),2)\n",
+ "DW=(-1)*(n2*dl*VD)/(c*y) # wavelength dispersion in s /um/m\n",
+ "Dw=DW*math.pow(10,6) # wavelength dispersion in ps /nm/km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The wavelength dispersion = \",Dw,\"ps n/m/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength dispersion = -2.5213 ps n/m/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 33: PgNo-271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable initialisation\n",
+ "n1=1.48 # core refractive index\n",
+ "dl=0.01 # refractive index difference\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "y=1.55 # wavelength in um\n",
+ "DM=7.0 # in ps/nm-km\n",
+ "DW=(-1)*DM # in ps/nm-km\n",
+ "\n",
+ "# calculations\n",
+ "X=math.pow(-10,12)*(n1*dl)/(c*y)# in ps/nm/km\n",
+ "Z=(DW/X)-0.08\n",
+ "V=2.834-math.sqrt(-Z/0.549)\n",
+ "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))# core radius in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The core radius = 2.47 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter6.ipynb b/Optical_Fiber_Communication/Chapter6.ipynb
new file mode 100755
index 00000000..9b5380f8
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter6.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ade43627b2f5d9f9e9fc6f1fe77b719e4d5ca9dd8c4d3cb361adefbae3d62e1a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Optical Sources LEDs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "r=125*math.pow(10,-6) # cladding radius in meter\n",
+ "R=8*math.pow(10,-2) # curve of radius in meter\n",
+ "s=((R+2*r)/(R+r))-1\n",
+ "s_p=s*100 # percentage of strain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of strain = \",s_p,\"%\"))\n",
+ "print (\"\\n If this condition is maintained the fiber will maintain without any break \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of strain = 0.16 %\n",
+ "\n",
+ " If this condition is maintained the fiber will maintain without any break \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "w=40*math.pow(10,-3) # cable weighing in kg/m\n",
+ "R=20*math.pow(10,-2) # radius of curvature in meter\n",
+ "n=0.19 # co-efficient of friction\n",
+ "x=(3.14/4) # angle in rad\n",
+ "\n",
+ "# calculations\n",
+ "si=42.36 # pulling tension at the entrance in kg\n",
+ "X=(si/(w*R))\n",
+ "Y=math.asinh(si/(w*R))\n",
+ "Z=w*R*math.sinh(n*x+Y) # puttling tension at the exit of an optical cable\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The puttling tension at the exit of an optical cable = \",Z,\"kg\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The puttling tension at the exit of an optical cable = 49.173 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter6_1.ipynb b/Optical_Fiber_Communication/Chapter6_1.ipynb
new file mode 100755
index 00000000..9b5380f8
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter6_1.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ade43627b2f5d9f9e9fc6f1fe77b719e4d5ca9dd8c4d3cb361adefbae3d62e1a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Optical Sources LEDs"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "r=125*math.pow(10,-6) # cladding radius in meter\n",
+ "R=8*math.pow(10,-2) # curve of radius in meter\n",
+ "s=((R+2*r)/(R+r))-1\n",
+ "s_p=s*100 # percentage of strain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of strain = \",s_p,\"%\"))\n",
+ "print (\"\\n If this condition is maintained the fiber will maintain without any break \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of strain = 0.16 %\n",
+ "\n",
+ " If this condition is maintained the fiber will maintain without any break \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "w=40*math.pow(10,-3) # cable weighing in kg/m\n",
+ "R=20*math.pow(10,-2) # radius of curvature in meter\n",
+ "n=0.19 # co-efficient of friction\n",
+ "x=(3.14/4) # angle in rad\n",
+ "\n",
+ "# calculations\n",
+ "si=42.36 # pulling tension at the entrance in kg\n",
+ "X=(si/(w*R))\n",
+ "Y=math.asinh(si/(w*R))\n",
+ "Z=w*R*math.sinh(n*x+Y) # puttling tension at the exit of an optical cable\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The puttling tension at the exit of an optical cable = \",Z,\"kg\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The puttling tension at the exit of an optical cable = 49.173 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter7.ipynb b/Optical_Fiber_Communication/Chapter7.ipynb
new file mode 100755
index 00000000..b4eca185
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter7.ipynb
@@ -0,0 +1,933 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:915bbc296599c9cae8476366ab28673955be075640a27c082930b79dfed61501"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Optical Detectors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "r=math.pow(((n1-n)/(n1+n)),2)\n",
+ "r1=0.03 # r take upto two decimal place\n",
+ "l_s=-10*math.log(1-r1)/math.log(10) # fiber loss in db\n",
+ "l_t=2*l_s # total loss in db\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fiber loss = \",l_s,\"db\"))\n",
+ "print (\"\\n there is a similar loss at the other interface \")\n",
+ "print ('%s %.2f %s' %(\"\\n The total fiber loss = \",l_t,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fiber loss = 0.13 db\n",
+ "\n",
+ " there is a similar loss at the other interface \n",
+ "\n",
+ " The total fiber loss = 0.26 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=3*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when there is no air gap\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss for lateral misalignment when there is no air gap\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f ' %(\" The coupling efficiency for multimode step index fiber = \", n_lat))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f ' %(\"\\n The coupling efficiency when there is no air gap = \", n_lat1))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment when there is no air gap = \",L_lat1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency for multimode step index fiber = 0.86 \n",
+ "\n",
+ " The insertion loss for lateral misalignment = 0.65 dB\n",
+ "\n",
+ " The coupling efficiency when there is no air gap = 0.92 \n",
+ "\n",
+ " The insertion loss for lateral misalignment when there is no air gap = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=4*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "dx=4*(math.pi/180) # angular misalignment in radian\n",
+ "dl=0.02 #relative index difference\n",
+ "NA=n1*math.sqrt(2*dl) # numerical aperture\n",
+ "n_ang=1-(0.069/(math.pi*NA)) # coupling efficiency due to angular misalignment\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # loss due to angular misalignment\n",
+ "Lt=L_lat+L_ang # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The total insertion loss = \",Lt,\"dB\"))\n",
+ "print (\"\\n the answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.15 dB\n",
+ "\n",
+ " the answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 #refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 #lateral offset \n",
+ "\n",
+ "# Calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency when there is a smsll air gap\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss when there is a smsll air gap\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when the joint is indexed matched\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss when the joint is indexed matched\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss when there is a smsll air gap = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f %s' %( \"\\n The insertion loss when the joint is indexed matched = \",L_lat1,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss when there is a smsll air gap = 0.65 dB\n",
+ "\n",
+ " The insertion loss when the joint is indexed matched = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=60*math.pow(10,-6)# core diameter of fiber 1 in m\n",
+ "d2=50*math.pow(10,-6) # core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.22 # numerical aerture of fiber 2\n",
+ "a1=2.0 # for fiber 1\n",
+ "a2=1.9 # for fiber 2\n",
+ "\n",
+ "# calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2);\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency\n",
+ "Lt=-10*math.log(n_t)/math.log(10) #total loss at the joint in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The total coupling efficiency in the frw direction = \", n_t))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print (\"\\n In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total coupling efficiency in the frw direction = 0.524 \n",
+ "\n",
+ " The total loss at the joint in the frw direction = 2.81 dB\n",
+ "\n",
+ " In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=80*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "d2=60*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.20 # numerical aerture of fiber 2\n",
+ "a1=1.9 # for fiber 1\n",
+ "a2=2.1 # for fiber 2\n",
+ "\n",
+ "# Calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2)\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency in the frw direction\n",
+ "Lt=-10*math.log(n_t)/math.log(10) # total loss at the joint in the frw direction in dB\n",
+ "n_cd1=1\n",
+ "n_NA1=1\n",
+ "n_a1=(1+(2/a2))/(1+(2/a1))\n",
+ "n_t1=n_cd1*n_NA1*n_a1 # total coupling efficiency in the backward direction\n",
+ "Lt1=-10*math.log(n_t1)/math.log(10)# total loss at the joint in the backward direction in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the backward direction = \",Lt1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss at the joint in the frw direction = 4.22 dB\n",
+ "\n",
+ " The total loss at the joint in the backward direction = 0.22 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1.47 # refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 # lateral offset\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency of the splice\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) #insertion loss of the splice\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The insertion loss of the splice = \",L_lat,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss of the splice = 0.35 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L_f=0.036\n",
+ "n_f=math.pow(10,(-0.036))\n",
+ "# here we get a quadratic equation in n1 and on solving we get\n",
+ "n1=(2.17+math.sqrt(math.pow((-2.17),2)-4*1*1))/2 # refractive index of the fiber core\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The refractive index of the fiber core = \", n1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The refractive index of the fiber core = 1.506\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 #core refractive index\n",
+ "n=4 # refractive index due to air\n",
+ "x=math.pi/180\n",
+ "A=(16*math.pow(n1,2))/(math.pow((1+n1),4))\n",
+ "B=n*x\n",
+ "n_ang=math.pow(10,(-0.06)) # angular coupling efficiency\n",
+ "NA=B/((math.pi)*(1-(n_ang/A))) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "y=5*math.pow(10,-6) # lateral misalignment in m\n",
+ "a=25*math.pow(10,-6) # core diameter in m\n",
+ "Lt=0.85*(y/a) # misalignment loss\n",
+ "n_c=1-Lt # coupling efficiency\n",
+ "L_i=-10*math.log(n_c)/math.log(10) # insertion loss in dB\n",
+ "Lt1=0.75*(y/a) # misalignment loss if we have both guided and leaky modes\n",
+ "n_c1=1-Lt1 # coupling efficiency\n",
+ "L_i1=-10*math.log(n_c1)/math.log(10) # insertion loss in dB if we have both guided and leaky modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss = \",L_i,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss,if we have both guided and leaky modes = \",L_i1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss = 0.81 dB\n",
+ "\n",
+ " The insertion loss,if we have both guided and leaky modes = 0.71 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "x=5*math.pi/180\n",
+ "\n",
+ "# Calculations\n",
+ "C=n1/n\n",
+ "A=(16*math.pow(C,2))/(math.pow((1+C),4))\n",
+ "B=n*x\n",
+ "NA=0.22 # numerical aperture\n",
+ "n_ang=A*(1-(B/(math.pi*NA))) # angular coupling efficiency\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # inserion loss when NA=0.22\n",
+ "NA1=0.32 # numerical aperture\n",
+ "n_ang1=A*(1-(B/(math.pi*NA1))) # angular coupling efficiency\n",
+ "L_ang1=-10*math.log(n_ang1)/math.log(10) # inserion loss when NA=0.32\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The inserion loss when NA=0.22 = \",L_ang,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The inserion loss when NA=0.32 = \",L_ang1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The inserion loss when NA=0.22 = 0.94 dB\n",
+ "\n",
+ " The inserion loss when NA=0.32 = 0.75 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "V=2.50 # normalised frequency\n",
+ "n1=1.5 # core refractive index\n",
+ "a=4.5*math.pow(10,-6) # core radius in m\n",
+ "NA=0.2 # numerical aperture\n",
+ "y=3*math.pow(10,-6) # lateral misalignment in m\n",
+ "w=a*((0.65+1.62*math.pow((V),-1.5)+2.88*math.pow((V),-6))/math.pow(2,0.5)) # normalised spot size in m\n",
+ "T1=2.17*math.pow((y/w),2) # Loss due to lateral offset in dB\n",
+ "x=(math.pi/180)*w\n",
+ "Ta=2.17*math.pow(((x*n1*V)/(a*NA)),2) # loss due to angular misalignment in dB\n",
+ "T=T1+Ta # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The total insertion loss = \",T,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.813 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "P1=65 # optical power in uW\n",
+ "P2=0.005 #output power at port 2 in uW\n",
+ "P3=24 # output power at port 3 in uW\n",
+ "P4=26.5 #output power at port 4 in uW\n",
+ "\n",
+ "# Calculations\n",
+ "Le=10*math.log(P1/(P3+P4))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P1/P3)/math.log(10) # insertion loss port 1 to 3 in dB\n",
+ "Le2=10*math.log(P1/P4)/math.log(10) # insertion loss port 1 to 4 in dB\n",
+ "ct=10*math.log(P2/P1)/math.log(10) # cross talk in dB\n",
+ "sr=(P3/(P3+P4))*100 # split ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 3 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 4 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The split ratio = \",sr,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Excess loss = 1.10 dB\n",
+ "\n",
+ " The insertion loss port 1 to 3 = 3.01 dB\n",
+ "\n",
+ " The insertion loss port 1 to 4 = 3.90 dB\n",
+ "\n",
+ " The cross talk = -41.14 dB\n",
+ "\n",
+ " The split ratio = 47.52 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n=1.0\n",
+ "n1=1.48\n",
+ "r=math.pow(((n1-n)/(n1+n)),2) # fresnel's reflection\n",
+ "Ls=-10*math.log(1-r)/math.log(10) #optical loss in dB\n",
+ "Lt=2*Ls # total fresnel loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total fresnel loss = \",Lt,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total fresnel loss = 0.33 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA1=0.32 # numerical aperture for fiber1\n",
+ "NA2=0.22 # numerical aperture for fiber2\n",
+ "Lc=20*math.log(NA1/NA2)/math.log(10) #NA mismatch coupling loss\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The NA mismatch coupling loss = \",Lc,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The NA mismatch coupling loss = 3.25 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "P0=250.0 # optical power in uW\n",
+ "P1=80.0 # output power at port 1 in uW\n",
+ "P2=70.0 # output power at port 2 in uW\n",
+ "P3=5*math.pow(10,-3) # output power at port 3 in uW\n",
+ "\n",
+ "# calculations\n",
+ "cr=(P2/(P1+P2))*100 # coupling ratio\n",
+ "Le=10*math.log(P0/(P1+P2))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P0/P1)/math.log(10) # insertion loss port 0 to 1 in dB\n",
+ "Le2=10*math.log(P0/P2)/math.log(10) # insertion loss port 0 to 2 in dB\n",
+ "ct=10*math.log(P3/P0)/math.log(10) #cross talk in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling ratio = \",cr,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 1 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 2 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling ratio = 46.67 %\n",
+ "\n",
+ " The Excess loss = 2.22 dB\n",
+ "\n",
+ " The insertion loss port 0 to 1 = 4.95 dB\n",
+ "\n",
+ " The insertion loss port 0 to 2 = 5.53 dB\n",
+ "\n",
+ " The cross talk = -46.99 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "P_21=4.0/5.0 # ratio of the input available at port2\n",
+ "P_31=1.0/5.0 # ratio of the input available at port3 \n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Le=-10*math.log(P_21+P_31)/math.log(10) # excess loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print (\"\\n Directionality=-10*log(0/Pi=infinity)\")\n",
+ "print ('%s %.1f %s' %(\"\\n The excess loss = \",Le,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The throughput loss = 0.97 dB\n",
+ "\n",
+ " The tap loss = 6.99 dB\n",
+ "\n",
+ " Directionality=-10*log(0/Pi=infinity)\n",
+ "\n",
+ " The excess loss = -0.0 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Le=4 # excess loss in dB\n",
+ "D=60 # Directionality in dB\n",
+ "P_41=math.pow(10,-6) # the ratio of P4 to P1\n",
+ "P_31=0.670/5 # the ratio of P3 to P1\n",
+ "P_21=P_31*4 # the ratio of P2 to P1\n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Ls=-10*math.log(0.670)/math.log(10) # loss due to radiation scattering in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fraction of the input power goes to each of the ports = \",P_21,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss due to radiation scattering = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fraction of the input power goes to each of the ports = 0.54 dB\n",
+ "\n",
+ " The throughput loss = 2.71 dB\n",
+ "\n",
+ " The tap loss = 8.73 dB\n",
+ "\n",
+ " The loss due to radiation scattering = 1.74 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "L1=1.5 # length in km\n",
+ "L2=2/1000 # length in km\n",
+ "Pi=50.1*math.pow(10,-6) # optical power in W\n",
+ "Po=385.4*math.pow(10,-6) # output power in W\n",
+ "a=(10/(L1-L2))*math.log(Po/Pi)/math.log(10) # attenuation per km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The attenuation per km = \",a,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The attenuation per km = 5.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Psc=5.31*math.pow(10,-9)\n",
+ "Popt=98.45*math.pow(10,-6) \n",
+ "L=5.99 # length in km\n",
+ "asc=(4.343*math.pow(10,5)/L)*(Psc/Popt) # scattering loss in the fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The scattering loss in the fiber = \",asc,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The scattering loss in the fiber = 3.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter7_1.ipynb b/Optical_Fiber_Communication/Chapter7_1.ipynb
new file mode 100755
index 00000000..b4eca185
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter7_1.ipynb
@@ -0,0 +1,933 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:915bbc296599c9cae8476366ab28673955be075640a27c082930b79dfed61501"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Optical Detectors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "r=math.pow(((n1-n)/(n1+n)),2)\n",
+ "r1=0.03 # r take upto two decimal place\n",
+ "l_s=-10*math.log(1-r1)/math.log(10) # fiber loss in db\n",
+ "l_t=2*l_s # total loss in db\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fiber loss = \",l_s,\"db\"))\n",
+ "print (\"\\n there is a similar loss at the other interface \")\n",
+ "print ('%s %.2f %s' %(\"\\n The total fiber loss = \",l_t,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fiber loss = 0.13 db\n",
+ "\n",
+ " there is a similar loss at the other interface \n",
+ "\n",
+ " The total fiber loss = 0.26 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=3*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when there is no air gap\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss for lateral misalignment when there is no air gap\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f ' %(\" The coupling efficiency for multimode step index fiber = \", n_lat))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f ' %(\"\\n The coupling efficiency when there is no air gap = \", n_lat1))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss for lateral misalignment when there is no air gap = \",L_lat1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency for multimode step index fiber = 0.86 \n",
+ "\n",
+ " The insertion loss for lateral misalignment = 0.65 dB\n",
+ "\n",
+ " The coupling efficiency when there is no air gap = 0.92 \n",
+ "\n",
+ " The insertion loss for lateral misalignment when there is no air gap = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.50 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "a=25*math.pow(10,-6) # core radius in m\n",
+ "y=4*math.pow(10,-6) # in m\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) # coupling efficiency for multimode step index fiber\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss for lateral misalignment\n",
+ "dx=4*(math.pi/180) # angular misalignment in radian\n",
+ "dl=0.02 #relative index difference\n",
+ "NA=n1*math.sqrt(2*dl) # numerical aperture\n",
+ "n_ang=1-(0.069/(math.pi*NA)) # coupling efficiency due to angular misalignment\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # loss due to angular misalignment\n",
+ "Lt=L_lat+L_ang # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The total insertion loss = \",Lt,\"dB\"))\n",
+ "print (\"\\n the answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.15 dB\n",
+ "\n",
+ " the answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.46 # core refractive index\n",
+ "n=1 #refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 #lateral offset \n",
+ "\n",
+ "# Calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency when there is a smsll air gap\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) # insertion loss when there is a smsll air gap\n",
+ "n_lat1=(1/math.pi)*(2*B-A) # coupling efficiency when the joint is indexed matched\n",
+ "L_lat1=-10*math.log(n_lat1)/math.log(10) # insertion loss when the joint is indexed matched\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss when there is a smsll air gap = \",L_lat,\"dB\"))\n",
+ "print ('%s %.2f %s' %( \"\\n The insertion loss when the joint is indexed matched = \",L_lat1,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss when there is a smsll air gap = 0.65 dB\n",
+ "\n",
+ " The insertion loss when the joint is indexed matched = 0.34 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=60*math.pow(10,-6)# core diameter of fiber 1 in m\n",
+ "d2=50*math.pow(10,-6) # core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.22 # numerical aerture of fiber 2\n",
+ "a1=2.0 # for fiber 1\n",
+ "a2=1.9 # for fiber 2\n",
+ "\n",
+ "# calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2);\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency\n",
+ "Lt=-10*math.log(n_t)/math.log(10) #total loss at the joint in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The total coupling efficiency in the frw direction = \", n_t))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print (\"\\n In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total coupling efficiency in the frw direction = 0.524 \n",
+ "\n",
+ " The total loss at the joint in the frw direction = 2.81 dB\n",
+ "\n",
+ " In the backward direction n_cd & n_a are all unity therefore there will be no loss in the backward direction of transmission of the signal \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "d1=80*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "d2=60*math.pow(10,-6) #core diameter of fiber 1 in m\n",
+ "NA1=0.25 # numerical aerture of fiber 1\n",
+ "NA2=0.20 # numerical aerture of fiber 2\n",
+ "a1=1.9 # for fiber 1\n",
+ "a2=2.1 # for fiber 2\n",
+ "\n",
+ "# Calculations\n",
+ "n_cd=math.pow((d2/d1),2)\n",
+ "n_NA=math.pow((NA2/NA1),2)\n",
+ "n_a=(1+(2/a1))/(1+(2/a2))\n",
+ "n_t=n_cd*n_NA*n_a # total coupling efficiency in the frw direction\n",
+ "Lt=-10*math.log(n_t)/math.log(10) # total loss at the joint in the frw direction in dB\n",
+ "n_cd1=1\n",
+ "n_NA1=1\n",
+ "n_a1=(1+(2/a2))/(1+(2/a1))\n",
+ "n_t1=n_cd1*n_NA1*n_a1 # total coupling efficiency in the backward direction\n",
+ "Lt1=-10*math.log(n_t1)/math.log(10)# total loss at the joint in the backward direction in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total loss at the joint in the frw direction = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The total loss at the joint in the backward direction = \",Lt1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total loss at the joint in the frw direction = 4.22 dB\n",
+ "\n",
+ " The total loss at the joint in the backward direction = 0.22 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1.47 # refractive index due to air\n",
+ "a=1 # core radius in m\n",
+ "y=0.12 # lateral offset\n",
+ "\n",
+ "# calculations\n",
+ "A=(y/a)*math.pow((1-math.pow((y/(2*a)),2)),0.5)\n",
+ "B=math.acos(y/(2*a))\n",
+ "C=n1/n\n",
+ "M=(16*math.pow(C,2))/(math.pi*math.pow((1+C),4))\n",
+ "n_lat=M*(2*B-A) #coupling efficiency of the splice\n",
+ "L_lat=-10*math.log(n_lat)/math.log(10) #insertion loss of the splice\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %( \" The insertion loss of the splice = \",L_lat,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss of the splice = 0.35 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "L_f=0.036\n",
+ "n_f=math.pow(10,(-0.036))\n",
+ "# here we get a quadratic equation in n1 and on solving we get\n",
+ "n1=(2.17+math.sqrt(math.pow((-2.17),2)-4*1*1))/2 # refractive index of the fiber core\n",
+ "# Results\n",
+ "print ('%s %.3f' %(\" The refractive index of the fiber core = \", n1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The refractive index of the fiber core = 1.506\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n1=1.46 #core refractive index\n",
+ "n=4 # refractive index due to air\n",
+ "x=math.pi/180\n",
+ "A=(16*math.pow(n1,2))/(math.pow((1+n1),4))\n",
+ "B=n*x\n",
+ "n_ang=math.pow(10,(-0.06)) # angular coupling efficiency\n",
+ "NA=B/((math.pi)*(1-(n_ang/A))) # numerical aperture\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f' %(\" The numerical aperture = \", NA))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The numerical aperture = 0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "y=5*math.pow(10,-6) # lateral misalignment in m\n",
+ "a=25*math.pow(10,-6) # core diameter in m\n",
+ "Lt=0.85*(y/a) # misalignment loss\n",
+ "n_c=1-Lt # coupling efficiency\n",
+ "L_i=-10*math.log(n_c)/math.log(10) # insertion loss in dB\n",
+ "Lt1=0.75*(y/a) # misalignment loss if we have both guided and leaky modes\n",
+ "n_c1=1-Lt1 # coupling efficiency\n",
+ "L_i1=-10*math.log(n_c1)/math.log(10) # insertion loss in dB if we have both guided and leaky modes\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The insertion loss = \",L_i,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss,if we have both guided and leaky modes = \",L_i1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The insertion loss = 0.81 dB\n",
+ "\n",
+ " The insertion loss,if we have both guided and leaky modes = 0.71 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n1=1.5 # core refractive index\n",
+ "n=1 # refractive index due to air\n",
+ "x=5*math.pi/180\n",
+ "\n",
+ "# Calculations\n",
+ "C=n1/n\n",
+ "A=(16*math.pow(C,2))/(math.pow((1+C),4))\n",
+ "B=n*x\n",
+ "NA=0.22 # numerical aperture\n",
+ "n_ang=A*(1-(B/(math.pi*NA))) # angular coupling efficiency\n",
+ "L_ang=-10*math.log(n_ang)/math.log(10) # inserion loss when NA=0.22\n",
+ "NA1=0.32 # numerical aperture\n",
+ "n_ang1=A*(1-(B/(math.pi*NA1))) # angular coupling efficiency\n",
+ "L_ang1=-10*math.log(n_ang1)/math.log(10) # inserion loss when NA=0.32\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The inserion loss when NA=0.22 = \",L_ang,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The inserion loss when NA=0.32 = \",L_ang1,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The inserion loss when NA=0.22 = 0.94 dB\n",
+ "\n",
+ " The inserion loss when NA=0.32 = 0.75 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "V=2.50 # normalised frequency\n",
+ "n1=1.5 # core refractive index\n",
+ "a=4.5*math.pow(10,-6) # core radius in m\n",
+ "NA=0.2 # numerical aperture\n",
+ "y=3*math.pow(10,-6) # lateral misalignment in m\n",
+ "w=a*((0.65+1.62*math.pow((V),-1.5)+2.88*math.pow((V),-6))/math.pow(2,0.5)) # normalised spot size in m\n",
+ "T1=2.17*math.pow((y/w),2) # Loss due to lateral offset in dB\n",
+ "x=(math.pi/180)*w\n",
+ "Ta=2.17*math.pow(((x*n1*V)/(a*NA)),2) # loss due to angular misalignment in dB\n",
+ "T=T1+Ta # total insertion loss in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The total insertion loss = \",T,\"dB\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total insertion loss = 1.813 dB\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-317"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "P1=65 # optical power in uW\n",
+ "P2=0.005 #output power at port 2 in uW\n",
+ "P3=24 # output power at port 3 in uW\n",
+ "P4=26.5 #output power at port 4 in uW\n",
+ "\n",
+ "# Calculations\n",
+ "Le=10*math.log(P1/(P3+P4))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P1/P3)/math.log(10) # insertion loss port 1 to 3 in dB\n",
+ "Le2=10*math.log(P1/P4)/math.log(10) # insertion loss port 1 to 4 in dB\n",
+ "ct=10*math.log(P2/P1)/math.log(10) # cross talk in dB\n",
+ "sr=(P3/(P3+P4))*100 # split ratio\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 3 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 1 to 4 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The split ratio = \",sr,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Excess loss = 1.10 dB\n",
+ "\n",
+ " The insertion loss port 1 to 3 = 3.01 dB\n",
+ "\n",
+ " The insertion loss port 1 to 4 = 3.90 dB\n",
+ "\n",
+ " The cross talk = -41.14 dB\n",
+ "\n",
+ " The split ratio = 47.52 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "n=1.0\n",
+ "n1=1.48\n",
+ "r=math.pow(((n1-n)/(n1+n)),2) # fresnel's reflection\n",
+ "Ls=-10*math.log(1-r)/math.log(10) #optical loss in dB\n",
+ "Lt=2*Ls # total fresnel loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total fresnel loss = \",Lt,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total fresnel loss = 0.33 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "NA1=0.32 # numerical aperture for fiber1\n",
+ "NA2=0.22 # numerical aperture for fiber2\n",
+ "Lc=20*math.log(NA1/NA2)/math.log(10) #NA mismatch coupling loss\n",
+ "\n",
+ "#Results\n",
+ "print ('%s %.2f %s' %(\" The NA mismatch coupling loss = \",Lc,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The NA mismatch coupling loss = 3.25 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "P0=250.0 # optical power in uW\n",
+ "P1=80.0 # output power at port 1 in uW\n",
+ "P2=70.0 # output power at port 2 in uW\n",
+ "P3=5*math.pow(10,-3) # output power at port 3 in uW\n",
+ "\n",
+ "# calculations\n",
+ "cr=(P2/(P1+P2))*100 # coupling ratio\n",
+ "Le=10*math.log(P0/(P1+P2))/math.log(10) # Excess loss in dB\n",
+ "Le1=10*math.log(P0/P1)/math.log(10) # insertion loss port 0 to 1 in dB\n",
+ "Le2=10*math.log(P0/P2)/math.log(10) # insertion loss port 0 to 2 in dB\n",
+ "ct=10*math.log(P3/P0)/math.log(10) #cross talk in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling ratio = \",cr,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The Excess loss = \",Le,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 1 = \",Le1,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The insertion loss port 0 to 2 = \",Le2,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The cross talk = \",ct,\"dB\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling ratio = 46.67 %\n",
+ "\n",
+ " The Excess loss = 2.22 dB\n",
+ "\n",
+ " The insertion loss port 0 to 1 = 4.95 dB\n",
+ "\n",
+ " The insertion loss port 0 to 2 = 5.53 dB\n",
+ "\n",
+ " The cross talk = -46.99 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "P_21=4.0/5.0 # ratio of the input available at port2\n",
+ "P_31=1.0/5.0 # ratio of the input available at port3 \n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Le=-10*math.log(P_21+P_31)/math.log(10) # excess loss\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print (\"\\n Directionality=-10*log(0/Pi=infinity)\")\n",
+ "print ('%s %.1f %s' %(\"\\n The excess loss = \",Le,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The throughput loss = 0.97 dB\n",
+ "\n",
+ " The tap loss = 6.99 dB\n",
+ "\n",
+ " Directionality=-10*log(0/Pi=infinity)\n",
+ "\n",
+ " The excess loss = -0.0 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Le=4 # excess loss in dB\n",
+ "D=60 # Directionality in dB\n",
+ "P_41=math.pow(10,-6) # the ratio of P4 to P1\n",
+ "P_31=0.670/5 # the ratio of P3 to P1\n",
+ "P_21=P_31*4 # the ratio of P2 to P1\n",
+ "Lt=-10*math.log(P_21)/math.log(10) # throughput loss\n",
+ "Lp=-10*math.log(P_31)/math.log(10) # tap loss\n",
+ "Ls=-10*math.log(0.670)/math.log(10) # loss due to radiation scattering in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The fraction of the input power goes to each of the ports = \",P_21,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The throughput loss = \",Lt,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The tap loss = \",Lp,\"dB\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss due to radiation scattering = \",Ls,\"dB\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The fraction of the input power goes to each of the ports = 0.54 dB\n",
+ "\n",
+ " The throughput loss = 2.71 dB\n",
+ "\n",
+ " The tap loss = 8.73 dB\n",
+ "\n",
+ " The loss due to radiation scattering = 1.74 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "L1=1.5 # length in km\n",
+ "L2=2/1000 # length in km\n",
+ "Pi=50.1*math.pow(10,-6) # optical power in W\n",
+ "Po=385.4*math.pow(10,-6) # output power in W\n",
+ "a=(10/(L1-L2))*math.log(Po/Pi)/math.log(10) # attenuation per km\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The attenuation per km = \",a,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The attenuation per km = 5.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Psc=5.31*math.pow(10,-9)\n",
+ "Popt=98.45*math.pow(10,-6) \n",
+ "L=5.99 # length in km\n",
+ "asc=(4.343*math.pow(10,5)/L)*(Psc/Popt) # scattering loss in the fiber in dB\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The scattering loss in the fiber = \",asc,\"dB/km\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The scattering loss in the fiber = 3.91 dB/km\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter8.ipynb b/Optical_Fiber_Communication/Chapter8.ipynb
new file mode 100755
index 00000000..57a8dd8b
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter8.ipynb
@@ -0,0 +1,1192 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a1fc86a1745331cbb94487da02761804f9fca4fd4c628ee53c6bfd5a750d81a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Optical Fiber Communication System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=40.0 # rediative life time in ns\n",
+ "tnr=60.0 # nonrediative life time in ns\n",
+ "i=35*math.pow(10,-3) # drive current in amp\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "\n",
+ "# calculations\n",
+ "t=tr*tnr/(tr+tnr)# total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y)# internal power in watt\n",
+ "p_int=pil*math.pow(10,3)# internal power in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print (\"\\n The answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 24 ns\n",
+ "\n",
+ " The internal power = 30.66 mW\n",
+ "\n",
+ " The answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tr=30.0 # rediative life time in ns\n",
+ "tnr=50.0 # nonrediative life time in ns\n",
+ "i=40*math.pow(10,-3) # drive current in amp\n",
+ "pil=28.4*math.pow(10,-3) # internal power in watt\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "y=(ni*h*c*i)/(eq*pil) # peak emission wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The peak emission wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 18.75 ns\n",
+ "\n",
+ " The peak emission wavelength = 1.09 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nx=3.6 # refractive index\n",
+ "Fn=0.68 # transmission factor\n",
+ "pe_pi=(Fn)/(4*math.pow(nx,2))\n",
+ "pi_p=0.3\n",
+ "nep=pe_pi*pi_p # external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The external power efficiency = \",nep*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The external power efficiency = 0.39 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # core refractive index\n",
+ "NA=0.15 # numerical aperture\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in db\n",
+ "pe_pi=0.023*0.0013 # from ex 8.3\n",
+ "pc=-10*math.log(pe_pi)/math.log(10) # loss in decibels relative to Pint\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling efficiency = \",nc*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"db\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss in decibels relative to Pint= \",pc,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 2.25 %\n",
+ "\n",
+ " The loss = 16.478 db\n",
+ "\n",
+ " The loss in decibels relative to Pint= 45.24 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=45*math.pow(10,-6) # radius in m\n",
+ "NA=0.3 # numerical aperture\n",
+ "rd=40 # radiance\n",
+ "A=3.14*math.pow((r*100),2) # area in cm^2\n",
+ "pe=3.14*(1-r)*A*rd*math.pow(NA,2) # optical power coupled into the fiber\n",
+ "Pe=pe*math.pow(10,4) # optical power coupled into the fiber uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The optical power coupled into the fiber = \",Pe,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into the fiber = 7.187 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "pc=150*math.pow(10,-6) # coupling power W\n",
+ "p=20*math.pow(10,-3)*2 # optical power W\n",
+ "npc=pc/p # overall efficiency\n",
+ "Npc=npc*100 # percentage of overall efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of overall efficiency = \",Npc,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of overall efficiency = 0.37 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=1.5 # refractive index\n",
+ "L=0.05 #crystal length in m\n",
+ "y=0.5*math.pow(10,-6) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "df=c/(2*n*L) # frequency separation of the modes in Hz\n",
+ "Df=df/math.pow(10,9) # frequency separation of the modes in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %d ' %(\" The number of longitudinal modes = \",q))\n",
+ "print ('%s %.2f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of longitudinal modes = 300000 \n",
+ "\n",
+ " The frequency separation of the modes = 2.00 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Eg=1.43 # bandgap energy in eV\n",
+ "dy=0.15*math.pow(10,-9);\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.24/Eg # in um\n",
+ "y1=y*math.pow(10,-6) # wavelength of optical emission in m\n",
+ "df=(c*dy)/math.pow(y1,2) # the line width in Hz\n",
+ "Df=df/math.pow(10,9) # the line width in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The wavelength of optical emission = \",y,\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength of optical emission = 0.87 um\n",
+ "\n",
+ " The frequency separation of the modes = 59.8468 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # refractive index\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "df=275*math.pow(10,9) # frequency separation of the modes in Hz\n",
+ "L=c/(2*n*df) # crystal length in m\n",
+ "L1=L*math.pow(10,6) # crystal length in um\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The crystal length = \",L1,\"um\"))\n",
+ "print ('%s %d' %(\"\\n The the number of longitudinal modes = \",int(q)))\n",
+ "print (\"\\n answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The crystal length = 151.52 um\n",
+ "\n",
+ " The the number of longitudinal modes = 1283\n",
+ "\n",
+ " answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "nt=0.20# total efficiency\n",
+ "Eg=1.43# bandgap energy in eV\n",
+ "V=2.2# applied voltage in volts\n",
+ "nep=(nt*Eg)/V# external power efficiency\n",
+ "Nep=nep*100# percentage of external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external power efficiency = \",Nep,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external power efficiency = 13.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "h=0.35*math.pow(10,-3)# irradiance W/cm^2\n",
+ "po=0.45*math.pow(10,-3)# power output in watt\n",
+ "d=1.5 # separation distance in cm\n",
+ "x=math.sqrt((4*po)/(3.14*math.pow(d,2)*h)) # divergence angle in radians\n",
+ "X=(x*180)/3.14 # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",X,\"degree \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 48.909 degree \n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ni=0.09 # normal efficiency\n",
+ "d=2*2.54 # separation distance in cm\n",
+ "x=0.2 # divergence angle in radians\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=65*math.pow(10,-3) # forward current in amp\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "H=4*po/(3.14*math.pow(d,2)*math.pow(x,2)) # irradiance in watt/cm^2\n",
+ "H1=H*1000 # irradiance in mwatt/cm^2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The irradiance = \",H1,\"mwatt/cm^2 \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The irradiance = 14.44 mwatt/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "tr=3.5 # relative life time in ms\n",
+ "tnr=50 # nonrelative life time in ms\n",
+ "ni=tnr/(tr+tnr) # internal quantam efficiency\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The internal quantam efficiency = \",ni*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The internal quantam efficiency = 93.46 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "ni=0.15 # internal quantam efficiency\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=15*math.pow(10,-3) # forward current in amp\n",
+ "x=25 # acceptance angle in degree\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "NA=(math.sin(x*math.pi/180))\n",
+ "nc=math.pow(NA,2) # numerical aperture\n",
+ "pf=nc*po # optical power coupled into optical fiber in w\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The optical power coupled into optical fiber = \",pf*1000,\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into optical fiber = 0.80 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tnr=10 # nonrediative life time in ns\n",
+ "n_inj=0.80 # injection efficiency\n",
+ "n_ex=0.60 # extraction efficiency\n",
+ "nt=0.025 # total efficiency\n",
+ "nr=nt/(n_inj*n_ex) # non rediative life time in ns\n",
+ "tr=((1/nr)-1)*tnr # rediative life time in ns\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The rediative life time = \",tr,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rediative life time = 182.0 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=30*math.pow(10,-9) # rise time in s\n",
+ "Bw=0.35/tr # bandwidth in Hz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The bandwidth = \",Bw/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The bandwidth = 11.667 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=630*math.pow(10,-9)# operating wavelength in m\n",
+ "w=25*math.pow(10,-6) # spot size in m\n",
+ "x=2*y/(math.pi*w) # divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.016 radians\n",
+ "\n",
+ " The divergence angle = 0.919 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y1=550*math.pow(10,-3)# peak of eyes response in um\n",
+ "y2=10.6 # standard wavelength in um\n",
+ "y3=2.39 # predominant IR line of He-Ne laser in um\n",
+ "E1=1.24/y1 # energy in electron volts\n",
+ "E2=1.24/y2 # energy in electron volts\n",
+ "E3=1.24/y3 # energy in electron volts\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The energy = \",E1,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E2,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E3,\"electron volts\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The energy = 2.255 electron volts\n",
+ "\n",
+ " The energy = 0.117 electron volts\n",
+ "\n",
+ " The energy = 0.519 electron volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Eg=1.4 # energy in electron volts\n",
+ "y=1.24/Eg # cut off wavelength in um\n",
+ "y1=y*1000 # cut off wavelength in nm\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The cut off wavelength = \",y1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 885.7143 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1200*math.pow(10,-9)# operating wavelength in m\n",
+ "w=5*math.pow(10,-6)# spot size in m\n",
+ "x=2*y/(math.pi*w)# divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 radians\n",
+ "\n",
+ " The divergence angle = 8.754 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "n2=1.46 # cladding refractive index \n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "xa=(math.asin(NA))*(180/math.pi) # acceptance angle in degree\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The acceptance angle = \",xa,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The coupling efficiency = \",nc*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The acceptance angle = 14.03 degree\n",
+ "\n",
+ " The coupling efficiency = 5.88 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.66 # for GaAs\n",
+ "L=150*math.pow(10,-6) # cavity length in m\n",
+ "dv=c/(2*n*L) #frequency separation in Hz\n",
+ "dv1=dv/math.pow(10,12) # frequency separation in GHz\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "q=1.6*math.pow(10,-19) # charge of an electron\n",
+ "dE=(h*dv)/q # energy separation eV\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",dv1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy separation = \",dE*1000,\"meV\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 0.2732 GHz\n",
+ "\n",
+ " The energy separation = 1.134 meV\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "po=2*math.pow(10,-3)# optical power in watts\n",
+ "I=100*math.pow(10,-3)# current in amp\n",
+ "V=2 # applied voltage in volt\n",
+ "pe=I*V # electrical power in watts\n",
+ "n=(po/pe)*100 # conversion efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The conversion efficiency = \",n,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The conversion efficiency = 1.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "Eg=1.43 # gap energy in eV\n",
+ "y=(1.24*math.pow(10,-6))/Eg # wavelength in m\n",
+ "dy=0.1*math.pow(10,-9) # in m\n",
+ "df=(dy*c)/math.pow(y,2) # width in Hz\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The width = \",df/pow(10,9),\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 0.867 um\n",
+ "\n",
+ " The width = 39.8979 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "tr=25.0 # rediative life time in ns\n",
+ "tnr=90.0 # nonrediative life time in ns\n",
+ "i=3.5*math.pow(10,-3) # drive current in amp\n",
+ "y=1.31*math.pow(10,-6) # wavelength in m\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.6*math.pow(10,-19 )# charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y) # internal power in watt\n",
+ "p_int=pil*pow(10,3) # internal power in mW\n",
+ "P=p_int/(ni*(ni+1)) # power emitted in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f ' %(\"\\n The internal quantam efficiency = \", ni))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The power emitted = \",P,\"mW\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 19.57 ns\n",
+ "\n",
+ " The internal quantam efficiency = 0.78 \n",
+ "\n",
+ " The internal power = 2.60 mW\n",
+ "\n",
+ " The power emitted = 1.86 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nt=0.18 # total efficiency\n",
+ "Eg=1.43 # band gape energy eV\n",
+ "V=2.5 # appied voltage in volt\n",
+ "n_ex=(nt*(Eg/V))*100 # external efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external efficiency = \",n_ex,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external efficiency = 10.30 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.6 # for GaAs\n",
+ "df=278*math.pow(10,9) # separation in Hz\n",
+ "y=0.87*math.pow(10,-6) # wavelength in m\n",
+ "L=c/(2*n*df) # cavity length in m\n",
+ "l=L*math.pow(10,6) # cavity length in um\n",
+ "L1=math.floor(l)*math.pow(10,-6) # cavity length in m\n",
+ "q=(2*n*L1)/y # number of longitudinal modes\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cavity length = \",l,\"um\"))\n",
+ "print ('%s %d' %( \"\\n The number of longitudinal modes = \",int(q)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cavity length = 149.880 um\n",
+ "\n",
+ " The number of longitudinal modes = 1233\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ac=14 # acceptance angle in degree\n",
+ "nc=math.pow((math.sin(ac*math.pi/180)),2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in decibels\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f ' %(\" The coupling efficiency = \",nc))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"decibels\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 0.059 \n",
+ "\n",
+ " The loss = 12.326 decibels\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "n=3.7 # for GaAs\n",
+ "L=500*math.pow(10,-6) # cavity length in m\n",
+ "y=850*math.pow(10,-9)\n",
+ "df=c/(2*n*L) #frequency separation in Hz\n",
+ "df1=df/math.pow(10,9) # frequency separation in GHz\n",
+ "dy=(y*y)/(2*L*n) # wavelength in m\n",
+ "dy1=dy*math.pow(10,9) # wavelength in nm\n",
+ "\n",
+ "# Resultsh\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",df1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The wavelength separation = \",dy1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 81.0811 GHz\n",
+ "\n",
+ " The wavelength separation = 0.195 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter8_1.ipynb b/Optical_Fiber_Communication/Chapter8_1.ipynb
new file mode 100755
index 00000000..57a8dd8b
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter8_1.ipynb
@@ -0,0 +1,1192 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a1fc86a1745331cbb94487da02761804f9fca4fd4c628ee53c6bfd5a750d81a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Optical Fiber Communication System"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=40.0 # rediative life time in ns\n",
+ "tnr=60.0 # nonrediative life time in ns\n",
+ "i=35*math.pow(10,-3) # drive current in amp\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "\n",
+ "# calculations\n",
+ "t=tr*tnr/(tr+tnr)# total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y)# internal power in watt\n",
+ "p_int=pil*math.pow(10,3)# internal power in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print (\"\\n The answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 24 ns\n",
+ "\n",
+ " The internal power = 30.66 mW\n",
+ "\n",
+ " The answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tr=30.0 # rediative life time in ns\n",
+ "tnr=50.0 # nonrediative life time in ns\n",
+ "i=40*math.pow(10,-3) # drive current in amp\n",
+ "pil=28.4*math.pow(10,-3) # internal power in watt\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "y=(ni*h*c*i)/(eq*pil) # peak emission wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The peak emission wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 18.75 ns\n",
+ "\n",
+ " The peak emission wavelength = 1.09 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-345"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nx=3.6 # refractive index\n",
+ "Fn=0.68 # transmission factor\n",
+ "pe_pi=(Fn)/(4*math.pow(nx,2))\n",
+ "pi_p=0.3\n",
+ "nep=pe_pi*pi_p # external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\"The external power efficiency = \",nep*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The external power efficiency = 0.39 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # core refractive index\n",
+ "NA=0.15 # numerical aperture\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in db\n",
+ "pe_pi=0.023*0.0013 # from ex 8.3\n",
+ "pc=-10*math.log(pe_pi)/math.log(10) # loss in decibels relative to Pint\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The coupling efficiency = \",nc*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"db\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The loss in decibels relative to Pint= \",pc,\"db\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 2.25 %\n",
+ "\n",
+ " The loss = 16.478 db\n",
+ "\n",
+ " The loss in decibels relative to Pint= 45.24 db\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "r=45*math.pow(10,-6) # radius in m\n",
+ "NA=0.3 # numerical aperture\n",
+ "rd=40 # radiance\n",
+ "A=3.14*math.pow((r*100),2) # area in cm^2\n",
+ "pe=3.14*(1-r)*A*rd*math.pow(NA,2) # optical power coupled into the fiber\n",
+ "Pe=pe*math.pow(10,4) # optical power coupled into the fiber uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The optical power coupled into the fiber = \",Pe,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into the fiber = 7.187 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "pc=150*math.pow(10,-6) # coupling power W\n",
+ "p=20*math.pow(10,-3)*2 # optical power W\n",
+ "npc=pc/p # overall efficiency\n",
+ "Npc=npc*100 # percentage of overall efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The percentage of overall efficiency = \",Npc,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The percentage of overall efficiency = 0.37 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=1.5 # refractive index\n",
+ "L=0.05 #crystal length in m\n",
+ "y=0.5*math.pow(10,-6) # wavelength in m\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "df=c/(2*n*L) # frequency separation of the modes in Hz\n",
+ "Df=df/math.pow(10,9) # frequency separation of the modes in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %d ' %(\" The number of longitudinal modes = \",q))\n",
+ "print ('%s %.2f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The number of longitudinal modes = 300000 \n",
+ "\n",
+ " The frequency separation of the modes = 2.00 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "Eg=1.43 # bandgap energy in eV\n",
+ "dy=0.15*math.pow(10,-9);\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.24/Eg # in um\n",
+ "y1=y*math.pow(10,-6) # wavelength of optical emission in m\n",
+ "df=(c*dy)/math.pow(y1,2) # the line width in Hz\n",
+ "Df=df/math.pow(10,9) # the line width in GHz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The wavelength of optical emission = \",y,\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The frequency separation of the modes = \",Df,\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength of optical emission = 0.87 um\n",
+ "\n",
+ " The frequency separation of the modes = 59.8468 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=3.6 # refractive index\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "df=275*math.pow(10,9) # frequency separation of the modes in Hz\n",
+ "L=c/(2*n*df) # crystal length in m\n",
+ "L1=L*math.pow(10,6) # crystal length in um\n",
+ "q=2*n*L/y # the number of longitudinal modes\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The crystal length = \",L1,\"um\"))\n",
+ "print ('%s %d' %(\"\\n The the number of longitudinal modes = \",int(q)))\n",
+ "print (\"\\n answer is wrong in textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The crystal length = 151.52 um\n",
+ "\n",
+ " The the number of longitudinal modes = 1283\n",
+ "\n",
+ " answer is wrong in textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "nt=0.20# total efficiency\n",
+ "Eg=1.43# bandgap energy in eV\n",
+ "V=2.2# applied voltage in volts\n",
+ "nep=(nt*Eg)/V# external power efficiency\n",
+ "Nep=nep*100# percentage of external power efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external power efficiency = \",Nep,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external power efficiency = 13.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "h=0.35*math.pow(10,-3)# irradiance W/cm^2\n",
+ "po=0.45*math.pow(10,-3)# power output in watt\n",
+ "d=1.5 # separation distance in cm\n",
+ "x=math.sqrt((4*po)/(3.14*math.pow(d,2)*h)) # divergence angle in radians\n",
+ "X=(x*180)/3.14 # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",X,\"degree \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 48.909 degree \n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ni=0.09 # normal efficiency\n",
+ "d=2*2.54 # separation distance in cm\n",
+ "x=0.2 # divergence angle in radians\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=65*math.pow(10,-3) # forward current in amp\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "H=4*po/(3.14*math.pow(d,2)*math.pow(x,2)) # irradiance in watt/cm^2\n",
+ "H1=H*1000 # irradiance in mwatt/cm^2\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The irradiance = \",H1,\"mwatt/cm^2 \"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The irradiance = 14.44 mwatt/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "tr=3.5 # relative life time in ms\n",
+ "tnr=50 # nonrelative life time in ms\n",
+ "ni=tnr/(tr+tnr) # internal quantam efficiency\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %(\" The internal quantam efficiency = \",ni*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The internal quantam efficiency = 93.46 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialisation of variables\n",
+ "ni=0.15 # internal quantam efficiency\n",
+ "vf=2.0 # forward voltage in volts\n",
+ "i_f=15*math.pow(10,-3) # forward current in amp\n",
+ "x=25 # acceptance angle in degree\n",
+ "pil=vf*i_f # input power in Watt\n",
+ "po=ni*pil # output power in Watt\n",
+ "NA=(math.sin(x*math.pi/180))\n",
+ "nc=math.pow(NA,2) # numerical aperture\n",
+ "pf=nc*po # optical power coupled into optical fiber in w\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The optical power coupled into optical fiber = \",pf*1000,\"mW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical power coupled into optical fiber = 0.80 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "tnr=10 # nonrediative life time in ns\n",
+ "n_inj=0.80 # injection efficiency\n",
+ "n_ex=0.60 # extraction efficiency\n",
+ "nt=0.025 # total efficiency\n",
+ "nr=nt/(n_inj*n_ex) # non rediative life time in ns\n",
+ "tr=((1/nr)-1)*tnr # rediative life time in ns\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The rediative life time = \",tr,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The rediative life time = 182.0 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=30*math.pow(10,-9) # rise time in s\n",
+ "Bw=0.35/tr # bandwidth in Hz\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The bandwidth = \",Bw/math.pow(10,6),\"MHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The bandwidth = 11.667 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "y=630*math.pow(10,-9)# operating wavelength in m\n",
+ "w=25*math.pow(10,-6) # spot size in m\n",
+ "x=2*y/(math.pi*w) # divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.016 radians\n",
+ "\n",
+ " The divergence angle = 0.919 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y1=550*math.pow(10,-3)# peak of eyes response in um\n",
+ "y2=10.6 # standard wavelength in um\n",
+ "y3=2.39 # predominant IR line of He-Ne laser in um\n",
+ "E1=1.24/y1 # energy in electron volts\n",
+ "E2=1.24/y2 # energy in electron volts\n",
+ "E3=1.24/y3 # energy in electron volts\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f %s' %(\" The energy = \",E1,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E2,\"electron volts\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy = \",E3,\"electron volts\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The energy = 2.255 electron volts\n",
+ "\n",
+ " The energy = 0.117 electron volts\n",
+ "\n",
+ " The energy = 0.519 electron volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Eg=1.4 # energy in electron volts\n",
+ "y=1.24/Eg # cut off wavelength in um\n",
+ "y1=y*1000 # cut off wavelength in nm\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The cut off wavelength = \",y1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 885.7143 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "y=1200*math.pow(10,-9)# operating wavelength in m\n",
+ "w=5*math.pow(10,-6)# spot size in m\n",
+ "x=2*y/(math.pi*w)# divergence angle in radians\n",
+ "x1=x*180/math.pi # divergence angle in degree\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"radians\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x1,\"degree\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The divergence angle = 0.153 radians\n",
+ "\n",
+ " The divergence angle = 8.754 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n1=1.48 # core refractive index\n",
+ "n2=1.46 # cladding refractive index \n",
+ "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
+ "xa=(math.asin(NA))*(180/math.pi) # acceptance angle in degree\n",
+ "nc=math.pow(NA,2) # coupling efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The acceptance angle = \",xa,\"degree\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The coupling efficiency = \",nc*100,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The acceptance angle = 14.03 degree\n",
+ "\n",
+ " The coupling efficiency = 5.88 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.66 # for GaAs\n",
+ "L=150*math.pow(10,-6) # cavity length in m\n",
+ "dv=c/(2*n*L) #frequency separation in Hz\n",
+ "dv1=dv/math.pow(10,12) # frequency separation in GHz\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "q=1.6*math.pow(10,-19) # charge of an electron\n",
+ "dE=(h*dv)/q # energy separation eV\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",dv1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The energy separation = \",dE*1000,\"meV\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 0.2732 GHz\n",
+ "\n",
+ " The energy separation = 1.134 meV\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "po=2*math.pow(10,-3)# optical power in watts\n",
+ "I=100*math.pow(10,-3)# current in amp\n",
+ "V=2 # applied voltage in volt\n",
+ "pe=I*V # electrical power in watts\n",
+ "n=(po/pe)*100 # conversion efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The conversion efficiency = \",n,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The conversion efficiency = 1.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "h=6.64*math.pow(10,-34) # plank constant\n",
+ "Eg=1.43 # gap energy in eV\n",
+ "y=(1.24*math.pow(10,-6))/Eg # wavelength in m\n",
+ "dy=0.1*math.pow(10,-9) # in m\n",
+ "df=(dy*c)/math.pow(y,2) # width in Hz\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.4f %s' %(\"\\n The width = \",df/pow(10,9),\"GHz\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 0.867 um\n",
+ "\n",
+ " The width = 39.8979 GHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "tr=25.0 # rediative life time in ns\n",
+ "tnr=90.0 # nonrediative life time in ns\n",
+ "i=3.5*math.pow(10,-3) # drive current in amp\n",
+ "y=1.31*math.pow(10,-6) # wavelength in m\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # the speed of light in m/s\n",
+ "eq=1.6*math.pow(10,-19 )# charge\n",
+ "t=tr*tnr/(tr+tnr) # total carrier recombination lifetime ns\n",
+ "ni=t/tr # internal quantam efficiency\n",
+ "pil=(ni*h*c*i)/(eq*y) # internal power in watt\n",
+ "p_int=pil*pow(10,3) # internal power in mW\n",
+ "P=p_int/(ni*(ni+1)) # power emitted in mW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The total carrier recombination lifetime = \",t,\"ns\"))\n",
+ "print ('%s %.2f ' %(\"\\n The internal quantam efficiency = \", ni))\n",
+ "print ('%s %.2f %s' %(\"\\n The internal power = \",p_int,\"mW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The power emitted = \",P,\"mW\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The total carrier recombination lifetime = 19.57 ns\n",
+ "\n",
+ " The internal quantam efficiency = 0.78 \n",
+ "\n",
+ " The internal power = 2.60 mW\n",
+ "\n",
+ " The power emitted = 1.86 mW\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "nt=0.18 # total efficiency\n",
+ "Eg=1.43 # band gape energy eV\n",
+ "V=2.5 # appied voltage in volt\n",
+ "n_ex=(nt*(Eg/V))*100 # external efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The external efficiency = \",n_ex,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The external efficiency = 10.30 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27: PgNo-411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=3.6 # for GaAs\n",
+ "df=278*math.pow(10,9) # separation in Hz\n",
+ "y=0.87*math.pow(10,-6) # wavelength in m\n",
+ "L=c/(2*n*df) # cavity length in m\n",
+ "l=L*math.pow(10,6) # cavity length in um\n",
+ "L1=math.floor(l)*math.pow(10,-6) # cavity length in m\n",
+ "q=(2*n*L1)/y # number of longitudinal modes\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cavity length = \",l,\"um\"))\n",
+ "print ('%s %d' %( \"\\n The number of longitudinal modes = \",int(q)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cavity length = 149.880 um\n",
+ "\n",
+ " The number of longitudinal modes = 1233\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28: PgNo-415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "ac=14 # acceptance angle in degree\n",
+ "nc=math.pow((math.sin(ac*math.pi/180)),2) # coupling efficiency\n",
+ "l_s=-10*math.log(nc)/math.log(10) # loss in decibels\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.3f ' %(\" The coupling efficiency = \",nc))\n",
+ "print ('%s %.3f %s' %(\"\\n The loss = \",l_s,\"decibels\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The coupling efficiency = 0.059 \n",
+ "\n",
+ " The loss = 12.326 decibels\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29: PgNo-417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "n=3.7 # for GaAs\n",
+ "L=500*math.pow(10,-6) # cavity length in m\n",
+ "y=850*math.pow(10,-9)\n",
+ "df=c/(2*n*L) #frequency separation in Hz\n",
+ "df1=df/math.pow(10,9) # frequency separation in GHz\n",
+ "dy=(y*y)/(2*L*n) # wavelength in m\n",
+ "dy1=dy*math.pow(10,9) # wavelength in nm\n",
+ "\n",
+ "# Resultsh\n",
+ "print ('%s %.4f %s' %(\" The frequency separation = \",df1,\"GHz\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The wavelength separation = \",dy1,\"nm\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The frequency separation = 81.0811 GHz\n",
+ "\n",
+ " The wavelength separation = 0.195 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter9.ipynb b/Optical_Fiber_Communication/Chapter9.ipynb
new file mode 100755
index 00000000..367cadc1
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter9.ipynb
@@ -0,0 +1,1146 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e11123ba8b6bbada16d8c62d198839756136e69c9f0cc93a98384db776536508"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Optical Fiber System-I"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "e_c=550.0 # number of electron collected\n",
+ "p=800.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) #wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"Amp/Watt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.72 Amp/Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=0.274 # responsivity in A/W\n",
+ "n=(R*h*c)/(eq*y) # quantum efficiency\n",
+ "n1=n*100 # % of quantum efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=1.0 # number of electron collected\n",
+ "p=3.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.8*math.pow(10,-6) # wavelength in m\n",
+ "Eg=(h*c)/y # band gap energy in J\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=math.pow(10,-7) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n band gap energy = \",Eg*pow(10,20),\"*10^-20 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The output photo current = \",Ip*pow(10,9),\"nA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 33.33 %\n",
+ "\n",
+ " band gap energy = 24.85 *10^-20 J\n",
+ "\n",
+ " The output photo current = 21.49 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Ip=math.pow(10,-6)# mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.34 A/W\n",
+ "\n",
+ " The received optical power = 2.92 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.87 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "vd=2.5*math.pow(10,4)# carrier velocity in m/s\n",
+ "w=30*math.pow(10,-6)# width in m\n",
+ "Bm=vd/(2*math.pi*w)\n",
+ "Tm=1/Bm # max response time in sec\n",
+ "Tm1=Tm*math.pow(10,9) # max response time in ns\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max response time = \",Tm1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max response time = 7.54 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.35*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "M1=math.ceil(M)\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 58\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.7*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %( \" The cut off wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W \"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.53 A/W \n",
+ "\n",
+ " The incident optical power = 5.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=0.15 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.63*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # cut off wavelength in m\n",
+ "f=c/y # frequency in Hz\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.103 A/W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Iph=75*math.pow(10,-6) # output photocurrent in A\n",
+ "y=0.85 # operating wavelength in um\n",
+ "Pie=750*math.pow(10,-6) # incident optical power in uW\n",
+ "R=Iph/Pie # responsivity in A/W\n",
+ "n=1.24*R/y # external quantum efficiency\n",
+ "n1=n*100 # percentage of external quantum efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The external quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.10 A/W\n",
+ "\n",
+ " The external quantum efficiency = 14.59 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=math.pow(10,5) # saturation in m/s\n",
+ "W=7*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The transit time = \",tr*pow(10,12),\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 70.0 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=3*math.pow(10,4)# saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "f=0.35/tr # max 3 dB bandwidth Hz\n",
+ "f1=f/math.pow(10,6) # max 3 dB bandwidth Hz\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.f %s' %(\" The max 3 dB bandwidth = \",f1,\"MHz\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max 3 dB bandwidth = 420 MHz\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Vs=3*math.pow(10,4) # saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "E=10.5*math.pow(10,-11) # in F/m\n",
+ "RL=15*math.pow(10,6) # load resister in ohm\n",
+ "A=0.25*math.pow(10,-6) # area in m^2\n",
+ "tr=W/Vs # transit time in sec\n",
+ "Cj=E*A/W # junction capacitance in F\n",
+ "t=RL*Cj # time constant in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transit time = \",tr*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The junction capacitance = \",Cj*pow(10,12),\"pF\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The time constant = \",t*pow(10,6),\"us\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 0.833 ns\n",
+ "\n",
+ " The junction capacitance = 1.05 pF\n",
+ "\n",
+ " The time constant = 15.75 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Eg1=1.12 # band gap for Si in eV\n",
+ "Eg2=0.667 # band gap for Ge in eV\n",
+ "y_si=1.24/Eg1 # cut off wavelength for Si in um\n",
+ "y_he=1.24/Eg2 # cut off wavelength for Ge in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength for Si = \",y_si,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The cut off wavelength for Ge = \",y_he,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength for Si = 1.107 um\n",
+ "\n",
+ " The cut off wavelength for Ge = 1.859 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.36 A/W\n",
+ "\n",
+ " The received optical power = 2.76 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "R=0.40 # Responsivity in A/W\n",
+ "m=100*math.pow(10,-6) # incident flux in W/m-m\n",
+ "A=2 # area in m-m\n",
+ "Po=m*A # incident power in W\n",
+ "Ip=R*Po # photon current in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The photon current = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The photon current = 80 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.5*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.69 A/W\n",
+ "\n",
+ " The incident optical power = 3.60 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.868 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.45 # quantum efficiency\n",
+ "h=6.62*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.2*math.pow(10,-6) # cut off wavelength in m\n",
+ "Ic=20*math.pow(10,-6) # collector current in A\n",
+ "Po=120*math.pow(10,-6)# incident optical power in W\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "Go=(h*c*Ic)/(y*Po*eq) # optical gain\n",
+ "h_e=Go/n # common emitter gain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The optical gain = \",Go))\n",
+ "print ('%s %.3f ' %(\"\\n The common emitter gain = \",h_e))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical gain = 0.172 \n",
+ "\n",
+ " The common emitter gain = 0.383 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.5 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.4*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=8*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 38\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.85 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.6*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=10*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 27\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "e_c=1.2*math.pow(10,11) # number of electron collected\n",
+ "p=2*math.pow(10,11) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "E=1.5*math.pow(10,-19) # energy in J\n",
+ "\n",
+ "# Calculations\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2.6*math.pow(10,-6) # photocurrent in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"Amp/Watt\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po*math.pow(10,6),\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 60.00 %\n",
+ "\n",
+ " The wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.64 Amp/Watt\n",
+ "\n",
+ " The incident optical power = 4.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.40 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.35*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Po=0.2*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=4.9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 56\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.55 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2*math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "re=(n*Po*y)/(h*c) # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The received optical power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",re/math.pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.376 A/W\n",
+ "\n",
+ " The received optical power = 5.315 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=1 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "E=1.3*math.pow(10,-19) # energy in J\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "M=18 # multiplication factor\n",
+ "rp=math.pow(10,13) # no. of photon per sec\n",
+ "Po=rp*E # output power in w\n",
+ "Ip=(n*Po*eq)/E # output photocurrent in A\n",
+ "I=M*Ip # photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The output power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The photocurrent = \",I*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 1.529 um\n",
+ "\n",
+ " The output power = 1.3 uW\n",
+ "\n",
+ " The photocurrent = 28.836 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=2*math.pow(10,10) # number of electron collected\n",
+ "p=5*math.pow(10,10) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "y1=0.85 # wavelength in um\n",
+ "Eg=(h*c)/y # bandgap energy in J\n",
+ "Eg1=1.24/y1 # bandgap energy in terms of eV\n",
+ "Po=10*math.pow(10,-6) # incident power in W\n",
+ "Ip=(n*eq*Po)/Eg # mean output photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The bandgap energy = \",Eg*math.pow(10,19),\"*10^-19 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandgap energy = \",Eg1,\"eV\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The mean output photocurrent = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n",
+ "\n",
+ " The bandgap energy = 2.339 *10^-19 J\n",
+ "\n",
+ " The bandgap energy = 1.46 eV\n",
+ "\n",
+ " The mean output photocurrent = 2.740 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/Chapter9_1.ipynb b/Optical_Fiber_Communication/Chapter9_1.ipynb
new file mode 100755
index 00000000..367cadc1
--- /dev/null
+++ b/Optical_Fiber_Communication/Chapter9_1.ipynb
@@ -0,0 +1,1146 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e11123ba8b6bbada16d8c62d198839756136e69c9f0cc93a98384db776536508"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Optical Fiber System-I"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 1: PgNo-424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "e_c=550.0 # number of electron collected\n",
+ "p=800.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) #wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"Amp/Watt\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.72 Amp/Watt\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2: PgNo-427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=0.274 # responsivity in A/W\n",
+ "n=(R*h*c)/(eq*y) # quantum efficiency\n",
+ "n1=n*100 # % of quantum efficiency\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3: PgNo-429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=1.0 # number of electron collected\n",
+ "p=3.0 # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.8*math.pow(10,-6) # wavelength in m\n",
+ "Eg=(h*c)/y # band gap energy in J\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=math.pow(10,-7) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n band gap energy = \",Eg*pow(10,20),\"*10^-20 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The output photo current = \",Ip*pow(10,9),\"nA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 33.33 %\n",
+ "\n",
+ " band gap energy = 24.85 *10^-20 J\n",
+ "\n",
+ " The output photo current = 21.49 nA\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4: PgNo-432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Ip=math.pow(10,-6)# mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.34 A/W\n",
+ "\n",
+ " The received optical power = 2.92 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5: PgNo-435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "h=6.626*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.87 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6: PgNo-437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "vd=2.5*math.pow(10,4)# carrier velocity in m/s\n",
+ "w=30*math.pow(10,-6)# width in m\n",
+ "Bm=vd/(2*math.pi*w)\n",
+ "Tm=1/Bm # max response time in sec\n",
+ "Tm1=Tm*math.pow(10,9) # max response time in ns\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The max response time = \",Tm1,\"ns\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max response time = 7.54 ns\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7: PgNo-440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6)# wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.35*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "M1=math.ceil(M)\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 58\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8: PgNo-442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.7*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.2f %s' %( \" The cut off wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W \"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.53 A/W \n",
+ "\n",
+ " The incident optical power = 5.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9: PgNo-445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=0.15 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.63*math.pow(10,-34)# plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # cut off wavelength in m\n",
+ "f=c/y # frequency in Hz\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.103 A/W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10: PgNo-448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Iph=75*math.pow(10,-6) # output photocurrent in A\n",
+ "y=0.85 # operating wavelength in um\n",
+ "Pie=750*math.pow(10,-6) # incident optical power in uW\n",
+ "R=Iph/Pie # responsivity in A/W\n",
+ "n=1.24*R/y # external quantum efficiency\n",
+ "n1=n*100 # percentage of external quantum efficiency\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The external quantum efficiency = \",n1,\"%\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.10 A/W\n",
+ "\n",
+ " The external quantum efficiency = 14.59 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11: PgNo-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=math.pow(10,5) # saturation in m/s\n",
+ "W=7*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.1f %s' %(\" The transit time = \",tr*pow(10,12),\"ps\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 70.0 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12: PgNo-454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "Vs=3*math.pow(10,4)# saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "tr=W/Vs # transit time in sec\n",
+ "f=0.35/tr # max 3 dB bandwidth Hz\n",
+ "f1=f/math.pow(10,6) # max 3 dB bandwidth Hz\n",
+ "\n",
+ "# results\n",
+ "print ('%s %.f %s' %(\" The max 3 dB bandwidth = \",f1,\"MHz\"))\n",
+ "print (\"\\n The answer is wrong in the textbook \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The max 3 dB bandwidth = 420 MHz\n",
+ "\n",
+ " The answer is wrong in the textbook \n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13: PgNo-456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "Vs=3*math.pow(10,4) # saturation in m/s\n",
+ "W=25*math.pow(10,-6) # depletion layer width in m\n",
+ "E=10.5*math.pow(10,-11) # in F/m\n",
+ "RL=15*math.pow(10,6) # load resister in ohm\n",
+ "A=0.25*math.pow(10,-6) # area in m^2\n",
+ "tr=W/Vs # transit time in sec\n",
+ "Cj=E*A/W # junction capacitance in F\n",
+ "t=RL*Cj # time constant in sec\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The transit time = \",tr*pow(10,9),\"ns\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The junction capacitance = \",Cj*pow(10,12),\"pF\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The time constant = \",t*pow(10,6),\"us\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The transit time = 0.833 ns\n",
+ "\n",
+ " The junction capacitance = 1.05 pF\n",
+ "\n",
+ " The time constant = 15.75 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14: PgNo-459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "Eg1=1.12 # band gap for Si in eV\n",
+ "Eg2=0.667 # band gap for Ge in eV\n",
+ "y_si=1.24/Eg1 # cut off wavelength for Si in um\n",
+ "y_he=1.24/Eg2 # cut off wavelength for Ge in um\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength for Si = \",y_si,\"um\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The cut off wavelength for Ge = \",y_he,\"um\"))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength for Si = 1.107 um\n",
+ "\n",
+ " The cut off wavelength for Ge = 1.859 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15: PgNo-463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable declaration\n",
+ "n=0.50 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19)# charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "f=c/y\n",
+ "re=(n*Po)/(h*f)\n",
+ "rp=re/n # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The received optical power = \",Po*pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",rp/pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.36 A/W\n",
+ "\n",
+ " The received optical power = 2.76 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16: PgNo-466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "R=0.40 # Responsivity in A/W\n",
+ "m=100*math.pow(10,-6) # incident flux in W/m-m\n",
+ "A=2 # area in m-m\n",
+ "Po=m*A # incident power in W\n",
+ "Ip=R*Po # photon current in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.f %s' %(\" The photon current = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The photon current = 80 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17: PgNo-470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.65 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.5*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg # cut off wavelength in m\n",
+ "f=c/y\n",
+ "R=(n*eq)/(h*f) # responsivity in A/W\n",
+ "Ip=2.5*math.pow(10,-6) # photo current in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "Po1=Po*math.pow(10,6) # incident optical power in uW\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po1,\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.69 A/W\n",
+ "\n",
+ " The incident optical power = 3.60 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18: PgNo-472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "Eg=1.43 # in eV\n",
+ "Eg1=Eg*1.602*math.pow(10,-19) # in J\n",
+ "y=(h*c)/Eg1 # cut off wavelength in m\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The cut off wavelength = \",y*math.pow(10,6),\"um\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The cut off wavelength = 0.868 um\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19: PgNo-474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "n=0.45 # quantum efficiency\n",
+ "h=6.62*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.2*math.pow(10,-6) # cut off wavelength in m\n",
+ "Ic=20*math.pow(10,-6) # collector current in A\n",
+ "Po=120*math.pow(10,-6)# incident optical power in W\n",
+ "eq=1.602*math.pow(10,-19)# charge\n",
+ "Go=(h*c*Ic)/(y*Po*eq) # optical gain\n",
+ "h_e=Go/n # common emitter gain\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f ' %(\" The optical gain = \",Go))\n",
+ "print ('%s %.3f ' %(\"\\n The common emitter gain = \",h_e))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The optical gain = 0.172 \n",
+ "\n",
+ " The common emitter gain = 0.383 \n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20: PgNo-477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.5 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.3*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.4*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=8*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 38\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21: PgNo-481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Initialisation of variables\n",
+ "n=0.85 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.9*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c)# responsivity in A/W\n",
+ "Po=0.6*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=10*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 27\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22: PgNo-483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "e_c=1.2*math.pow(10,11) # number of electron collected\n",
+ "p=2*math.pow(10,11) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "E=1.5*math.pow(10,-19) # energy in J\n",
+ "\n",
+ "# Calculations\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2.6*math.pow(10,-6) # photocurrent in A\n",
+ "Po=Ip/R # incident optical power in W\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The wavelength = \",y*pow(10,6),\"um\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The responsivity = \",R,\"Amp/Watt\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The incident optical power = \",Po*math.pow(10,6),\"uW\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 60.00 %\n",
+ "\n",
+ " The wavelength = 1.33 um\n",
+ "\n",
+ " The responsivity = 0.64 Amp/Watt\n",
+ "\n",
+ " The incident optical power = 4.06 uW\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23: PgNo-485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.40 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=1.35*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Po=0.2*math.pow(10,-6) # in W\n",
+ "Ip=R*Po # output photo current\n",
+ "I=4.9*math.pow(10,-6) # output current in A\n",
+ "M=I/Ip # multiplication factor\n",
+ "\n",
+ "# Results\n",
+ "print \" The multiplication factor = \",int(M)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The multiplication factor = 56\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24: PgNo-489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=0.55 # quantum efficiency\n",
+ "eq=1.6*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "R=(n*eq*y)/(h*c) # responsivity in A/W\n",
+ "Ip=2*math.pow(10,-6) # mean photo current\n",
+ "Po=Ip/R # received optical power in W\n",
+ "re=(n*Po*y)/(h*c) # number of received photons\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The responsivity = \",R,\"A/W\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The received optical power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The number of received photons = \",re/math.pow(10,13),\"*10^13 photons/sec\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The responsivity = 0.376 A/W\n",
+ "\n",
+ " The received optical power = 5.315 uW\n",
+ "\n",
+ " The number of received photons = 1.25 *10^13 photons/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25: PgNo-494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "h=6.625*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8) # speed of light in m/s\n",
+ "n=1 # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "E=1.3*math.pow(10,-19) # energy in J\n",
+ "y=(h*c)/E # wavelength in m\n",
+ "M=18 # multiplication factor\n",
+ "rp=math.pow(10,13) # no. of photon per sec\n",
+ "Po=rp*E # output power in w\n",
+ "Ip=(n*Po*eq)/E # output photocurrent in A\n",
+ "I=M*Ip # photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.3f %s' %(\" The wavelength = \",y*math.pow(10,6),\"um\"))\n",
+ "print ('%s %.1f %s' %(\"\\n The output power = \",Po*math.pow(10,6),\"uW\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The photocurrent = \",I*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The wavelength = 1.529 um\n",
+ "\n",
+ " The output power = 1.3 uW\n",
+ "\n",
+ " The photocurrent = 28.836 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26: PgNo-497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "e_c=2*math.pow(10,10) # number of electron collected\n",
+ "p=5*math.pow(10,10) # number of photon incident\n",
+ "n=e_c/p # quantum efficiency\n",
+ "eq=1.602*math.pow(10,-19) # charge\n",
+ "h=6.626*math.pow(10,-34) # plank constant\n",
+ "c=3*math.pow(10,8)# speed of light in m/s\n",
+ "y=0.85*math.pow(10,-6) # wavelength in m\n",
+ "y1=0.85 # wavelength in um\n",
+ "Eg=(h*c)/y # bandgap energy in J\n",
+ "Eg1=1.24/y1 # bandgap energy in terms of eV\n",
+ "Po=10*math.pow(10,-6) # incident power in W\n",
+ "Ip=(n*eq*Po)/Eg # mean output photocurrent in A\n",
+ "\n",
+ "# Results\n",
+ "print ('%s %.2f %s' %(\" The quantum efficiency = \",n*100,\"%\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The bandgap energy = \",Eg*math.pow(10,19),\"*10^-19 J\"))\n",
+ "print ('%s %.2f %s' %(\"\\n The bandgap energy = \",Eg1,\"eV\"))\n",
+ "print ('%s %.3f %s' %(\"\\n The mean output photocurrent = \",Ip*math.pow(10,6),\"uA\"))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The quantum efficiency = 40.00 %\n",
+ "\n",
+ " The bandgap energy = 2.339 *10^-19 J\n",
+ "\n",
+ " The bandgap energy = 1.46 eV\n",
+ "\n",
+ " The mean output photocurrent = 2.740 uA\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Optical_Fiber_Communication/screenshots/ch3.png b/Optical_Fiber_Communication/screenshots/ch3.png
new file mode 100755
index 00000000..9adb53db
--- /dev/null
+++ b/Optical_Fiber_Communication/screenshots/ch3.png
Binary files differ
diff --git a/Optical_Fiber_Communication/screenshots/ch3_1.png b/Optical_Fiber_Communication/screenshots/ch3_1.png
new file mode 100755
index 00000000..9adb53db
--- /dev/null
+++ b/Optical_Fiber_Communication/screenshots/ch3_1.png
Binary files differ
diff --git a/Optical_Fiber_Communication/screenshots/ch5.png b/Optical_Fiber_Communication/screenshots/ch5.png
new file mode 100755
index 00000000..acf6fcac
--- /dev/null
+++ b/Optical_Fiber_Communication/screenshots/ch5.png
Binary files differ
diff --git a/Optical_Fiber_Communication/screenshots/ch5_1.png b/Optical_Fiber_Communication/screenshots/ch5_1.png
new file mode 100755
index 00000000..acf6fcac
--- /dev/null
+++ b/Optical_Fiber_Communication/screenshots/ch5_1.png
Binary files differ
diff --git a/Optical_Fiber_Communication/screenshots/ch7.png b/Optical_Fiber_Communication/screenshots/ch7.png
new file mode 100755
index 00000000..302231b6
--- /dev/null
+++ b/Optical_Fiber_Communication/screenshots/ch7.png
Binary files differ
diff --git a/Optical_Fiber_Communication/screenshots/ch7_1.png b/Optical_Fiber_Communication/screenshots/ch7_1.png
new file mode 100755
index 00000000..302231b6
--- /dev/null
+++ b/Optical_Fiber_Communication/screenshots/ch7_1.png
Binary files differ
diff --git a/Physical_Chemsitry/Chapter1.ipynb b/Physical_Chemsitry/Chapter1.ipynb
new file mode 100755
index 00000000..f8eddd0e
--- /dev/null
+++ b/Physical_Chemsitry/Chapter1.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2d2c58ce752ea004ea6f79edf5332f8f357b96a3e81270455c238eb5e0794fa8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 - matter and its atomic nature"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Angle required\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "l=0.71 *10**-8 #cm\n",
+ "n=200. #lines/cm\n",
+ "v=0.00145 #radian\n",
+ "#calculations\n",
+ "d=1/n\n",
+ "phi2=2*l/d +v**2\n",
+ "phi=math.sqrt(phi2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %('Angle required =',phi,'radian')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle required = 2.22e-03 radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Interplanar distance\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "angle=37.25 #degrees\n",
+ "l=1.539 #A\n",
+ "n=1. #order\n",
+ "#calculations\n",
+ "d=n*l/(2*math.sin(angle/180.*math.pi))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Interplanar distance =\",d,\"A\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interplanar distance = 1.271 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the ratio of radii\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "r1=math.sqrt(3.)\n",
+ "r2=1\n",
+ "#calculations\n",
+ "ratio=r1-r2\n",
+ "#results\n",
+ "print '%s %.3f' %('Ratio of radii =',ratio)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of radii = 0.732\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Avagadro number\n",
+ "#Initialization of variables\n",
+ "d=2.64 #g/cc\n",
+ "l=4.016*10**-8 #cm\n",
+ "n=4\n",
+ "M=25.94 #g/mol\n",
+ "#calculations\n",
+ "m=d*l**3 /n\n",
+ "N0=M/m\n",
+ "#results\n",
+ "print '%s %.3e %s' %(\"Avagadro number =\",N0,\" molecule/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avagadro number = 6.068e+23 molecule/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the angle required\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "A=numpy.array([-1, -1, -1 ])\n",
+ "B=numpy.array([1, 1, -1])\n",
+ "#calculations\n",
+ "Ad=math.sqrt(1+1+1)\n",
+ "Bd=math.sqrt(1+1+1)\n",
+ "dot=numpy.dot(A,B) /(Ad*Bd) \n",
+ "theta=math.acos(dot) *180./math.pi\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Angle =\",theta,\" degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle = 109.47 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter10.ipynb b/Physical_Chemsitry/Chapter10.ipynb
new file mode 100755
index 00000000..8ecfc863
--- /dev/null
+++ b/Physical_Chemsitry/Chapter10.ipynb
@@ -0,0 +1,202 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5f5d6cc341d2ab999dbe1e5a4234f374f3f6728cc09cef7967ab9dd07f94519e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Change ine entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "T2=100+273.2 #K\n",
+ "T1=50+273.2 #K\n",
+ "n=1 #mol\n",
+ "R=1.987 #cal/deg mol\n",
+ "#calculations\n",
+ "dS=5/2 *n*R*2.303*math.log10(T2/T1)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in entropy =\",dS,\" eu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.572 eu\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Entropy change\n",
+ "#Initialization of variables\n",
+ "H=380 #cal\n",
+ "T=273.2+32.1 #K\n",
+ "#calculations\n",
+ "dS=H/T\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Entropy change =\",dS,\" eu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change = 1.24 eu\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Work done\n",
+ "#Initialization of variables\n",
+ "Ha=0\n",
+ "Hb=0\n",
+ "#calculations\n",
+ "H=Ha+Hb\n",
+ "q=H\n",
+ "U=0\n",
+ "w=q-H\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Work done =\",w,\"J\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done = 0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "prob=0.001\n",
+ "R=1.\n",
+ "N=6.023*10**23\n",
+ "#calculations\n",
+ "dS=1.987*2.303*math.log10(prob) /N\n",
+ "#results\n",
+ "print '%s %.1e %s' %(\"change in entropy =\",dS,\" eu\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy = -2.3e-23 eu\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Change in A \n",
+ "#Initialization of variables\n",
+ "T=373.2 #K\n",
+ "c=1.987 #cal/deg\n",
+ "#calculations\n",
+ "w=c*T\n",
+ "A=-w\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Change in A =\",A,\"cal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in A = -741 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter11.ipynb b/Physical_Chemsitry/Chapter11.ipynb
new file mode 100755
index 00000000..b98e97b5
--- /dev/null
+++ b/Physical_Chemsitry/Chapter11.ipynb
@@ -0,0 +1,95 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:00f3ac32d98b00732d6a51b0562de7dab713dab2a42986a603b1c1eafc01eefd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - Condensed phases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Vapor Pressure\n",
+ "#Initialization of variables\n",
+ "A=7.6546\n",
+ "B=1686.8\n",
+ "T=60+273.2\n",
+ "#calculations\n",
+ "logP=A-B/T\n",
+ "P=10**logP\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Vapor Pressure =\",P,\"mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vapor Pressure = 391.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in C values\n",
+ "#Initialization of variables\n",
+ "alpha=4.92*10**-5 #deg**-1\n",
+ "beta=7.85*10**-7 #atm**-1\n",
+ "d=8.93 #g/cm**3\n",
+ "T=298.15 #K\n",
+ "#calculations\n",
+ "dC=63.54*T*alpha**2 *1.987/(d*beta*82.06)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in c values = \",dC,\" cal/deg mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in c values = 0.158 cal/deg mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter12.ipynb b/Physical_Chemsitry/Chapter12.ipynb
new file mode 100755
index 00000000..92f1a058
--- /dev/null
+++ b/Physical_Chemsitry/Chapter12.ipynb
@@ -0,0 +1,348 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:65a756a76ade1ec4b9387e0db33894444f541be4a142adaa7f77f2e89d036580"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - Physical Equilibria"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the no of degrees of freedom\n",
+ "#Initialization of variables\n",
+ "p=3\n",
+ "c=2\n",
+ "#calculations\n",
+ "f=2-p+c\n",
+ "#results\n",
+ "print '%s %d' %(\"no. of degrees of freedom =\",f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "no. of degrees of freedom = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in temperature\n",
+ "#Initialization of variables\n",
+ "T=273.2 #K\n",
+ "vw=1.0001 #cm^3 /g\n",
+ "vi=1.0907 #cm^3 /g\n",
+ "hf=79.7 #cal/g\n",
+ "P1=76 #cm\n",
+ "P2=4.6 #cm\n",
+ "#calculations\n",
+ "dT=T*(vw-vi)*(P2-P1)*13.6*980.7/(hf*4.184*10**7)\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"change in temperature =\",dT,\"deg\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in temperature = 0.0071 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of dPbydT\n",
+ "#Initialization of variables\n",
+ "V=6.84 #cm^3 /g\n",
+ "#calculations\n",
+ "dPbydT=-1.7*4.184*10**7 /(2.19*V*0.06*1.01*10**6)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"dPbydT =\",dPbydT,\" atm/deg\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dPbydT = -78 atm/deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Pressure\n",
+ "#Initialization of variables\n",
+ "P=6 #atm\n",
+ "T=273.2+25 #K\n",
+ "P=23.8 #mm\n",
+ "V=0.018 #lt/mol\n",
+ "R=0.08206 #lt am/deg mol\n",
+ "#calculations\n",
+ "dPa=V*P*4536/(R*T*760)\n",
+ "Pa=dPa+P\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Pressure =\",Pa,\" mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 23.9 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mole fraction of methanol in vapor\n",
+ "#Initialization of variables\n",
+ "x=0.25\n",
+ "Ps1=96 #mm\n",
+ "Ps2=43.9 #mm\n",
+ "#calculations\n",
+ "P1=x*Ps1\n",
+ "P2=(1-x)*Ps2\n",
+ "P=P1+P2\n",
+ "Xdash=P1/P\n",
+ "#results\n",
+ "print '%s %.3f' %(\"mole fraction of methanol in vapor =\",Xdash)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of methanol in vapor = 0.422\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Molal elevation constant\n",
+ "#Initialization of variables\n",
+ "Hv=539.6 #cal/g\n",
+ "T=273.2+100 #K\n",
+ "#calculations\n",
+ "Kb=1.987*T**2 /(1000*Hv)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Molal elevation constant =\",Kb,\" deg /mole /kg\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molal elevation constant = 0.513 deg /mole /kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Molecular weight of solute\n",
+ "#Initialization of variables\n",
+ "ms=0.5 #mol/kg\n",
+ "m=5 #g\n",
+ "mw=100 #g\n",
+ "Ws=1000 #g/kg\n",
+ "#calculations\n",
+ "Ma=m*Ws/(ms*mw)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Molecular weight of solute =\",Ma,\"g/mol \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molecular weight of solute = 100 g/mol \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molality of the solution\n",
+ "#Initialization of variables\n",
+ "dT=0.23 #C\n",
+ "Kb=1.86 #deg/mol/kg\n",
+ "#calculations\n",
+ "m=dT/Kb\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"molality of solution =\",m,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molality of solution = 0.12 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Osmotic Pressure\n",
+ "#Initialization of variables\n",
+ "p=0.1 #m\n",
+ "T=30+273.2 #K\n",
+ "R=0.08206 #lt atm /deg/mol\n",
+ "P1=1 #atm\n",
+ "#calculations\n",
+ "w=1000/p\n",
+ "V=w/1000.\n",
+ "dP=R*T/V\n",
+ "P=dP+P1\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Osmotic Pressure =\",P,\" atm \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic Pressure = 3.49 atm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter13.ipynb b/Physical_Chemsitry/Chapter13.ipynb
new file mode 100755
index 00000000..79973f5f
--- /dev/null
+++ b/Physical_Chemsitry/Chapter13.ipynb
@@ -0,0 +1,401 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b3b8e3a1df1ec221a5596f2fd615d0e7df4ba35a4012aeb734d5820e6983cd64"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 - Thermodynamic changes accompanying chemical reaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the dHp value\n",
+ "#Initialization of variables\n",
+ "n1=10 #mol\n",
+ "n2=12 #mol\n",
+ "#calculations\n",
+ "dn=n1-n2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"dHp = dEv-\",dn,\"*RT\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dHp = dEv- -2 *RT\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Enthalpy\n",
+ "#Initialization of variables\n",
+ "Ht1=-22063 #cal\n",
+ "T=298.15 #K\n",
+ "#calculations\n",
+ "H=Ht1 +0.5293*T + 0.3398*10**-3 *T**2 - 2.039*10**-7 *T**3\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Enthalpy =\",H,\"cal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = -21880 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Entropy\n",
+ "#Initialization of variables\n",
+ "Cp=0.797 #cal/deg/mol\n",
+ "#calculations\n",
+ "S=Cp/3.\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Entropy =\",S,\" eu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy = 0.266 eu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Change in entropy\n",
+ "#Initialization of variables\n",
+ "T1=77.32 #K\n",
+ "P=1 #atm\n",
+ "T2=126 #K\n",
+ "Pc=33.5 #atm\n",
+ "#calculations\n",
+ "dS=27/32. *1.987*P/Pc *(T2/T1)**3\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in entropy =\",dS,\"eu/mol\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.22 eu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Change in entropy, enthalpy and free energy\n",
+ "#Initialization of variables\n",
+ "S1=57.47\n",
+ "S2=50.34\n",
+ "S3=49\n",
+ "H1=8.09\n",
+ "H2=21.06\n",
+ "H3=0\n",
+ "F1=12.39\n",
+ "F2=20.72\n",
+ "F3=0\n",
+ "#calculations\n",
+ "dS=S1-S2-0.5*S3\n",
+ "dH=H1-H2-0.5*H3\n",
+ "dF=F1-F2-0.5*F3\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in entropy =\",dS,\" eu\")\n",
+ "print '%s %.2f %s' %(\"\\n Change in enthalpy =\",dH,\" kcal\")\n",
+ "print '%s %.2f %s' %(\"\\n Change in free energy =\",dF,\"kcal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = -17.37 eu\n",
+ "\n",
+ " Change in enthalpy = -12.97 kcal\n",
+ "\n",
+ " Change in free energy = -8.33 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in free energy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P1=0.01\n",
+ "P2=0.1\n",
+ "P3=0.01\n",
+ "dF0=-54640 #cal\n",
+ "T=298.15 #K\n",
+ "R=1.987 #cal/deg\n",
+ "#calculations\n",
+ "Qp=P1/(P2*P3**0.5)\n",
+ "dF=dF0+R*T*math.log(Qp)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"change in free energy =\",dF,\"cal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in free energy = -54640 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Equilibrium constant\n",
+ "#Initialization of variables\n",
+ "print \"From table 13.4 \"\n",
+ "logKfwater=40.04724\n",
+ "logKfH2=0\n",
+ "logKfO2=0\n",
+ "#calculations\n",
+ "logK=logKfwater-logKfH2-0.5*logKfO2\n",
+ "K=10**logK\n",
+ "#results\n",
+ "print '%s %.4e' %(\"Equilibrium constant = \",K)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 13.4 \n",
+ "Equilibrium constant = 1.1149e+40\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of Kc\n",
+ "#Initialization of variables\n",
+ "Kp=1.1*10**40 #atm**-0.5\n",
+ "dn=-0.5\n",
+ "R=0.08206 #lt atm/deg mol\n",
+ "T=298.15 #K\n",
+ "#calculations\n",
+ "Kc=Kp*(R*T)**(-dn)\n",
+ "#results\n",
+ "print '%s %.1e %s' %(\"Kc =\",Kc,\" (mol/lt)^-0.5\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kc = 5.4e+40 (mol/lt)^-0.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Density of equilibrium mixture\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "Kp=0.141 #atm\n",
+ "P=1 #atm\n",
+ "nu=2\n",
+ "R=0.08206 #lt atm/deg mol\n",
+ "T=298.15 #K\n",
+ "M=92.02 #g/mol\n",
+ "#calculations\n",
+ "p=([Kp+ 4*P,0, -Kp])\n",
+ "z=numpy.roots(p)\n",
+ "alpha=z[0]\n",
+ "wbyV=P*M/(R*T*(1+(nu-1)*alpha))\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Density of the equilibrium mixture =\",wbyV,\" g/lt\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density of the equilibrium mixture = 3.18 g/lt\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Final pressure after equilibrium\n",
+ "#Initialization of variables\n",
+ "x=0.5\n",
+ "P=0.468 #atm\n",
+ "#calculations\n",
+ "P1=x*P\n",
+ "P2=x*P\n",
+ "Kp=P1*P2\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Final pressure after equilibrium =\",Kp,\" atm^2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure after equilibrium = 0.0548 atm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter14.ipynb b/Physical_Chemsitry/Chapter14.ipynb
new file mode 100755
index 00000000..b1948488
--- /dev/null
+++ b/Physical_Chemsitry/Chapter14.ipynb
@@ -0,0 +1,603 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f51aa40f01063be99829dfd06c53ed90029beb6946cceb4b92469b9c50e91012"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 - Development and use of activity concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the moles of Iodine present\n",
+ "#Initialization of variables\n",
+ "x1=0.0200\n",
+ "Kx=812.\n",
+ "#calculations\n",
+ "print \"Neglecting 2x in comparision with x1,\"\n",
+ "x=x1/Kx\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Moles of Iodine present =\",x,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Neglecting 2x in comparision with x1,\n",
+ "Moles of Iodine present = 2.46e-05 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 350 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of H+ ions\n",
+ "#Initialization of variables\n",
+ "Kc=1.749*10**-5 #M\n",
+ "n1=0.1 #mole\n",
+ "n2=0.01 #mole\n",
+ "#calculations\n",
+ "c=n1/n2 *Kc\n",
+ "#results\n",
+ "print '%s %.1e %s' %(\"Concentration of Hplus ions =\",c,\" M\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentration of Hplus ions = 1.7e-04 M\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentraton of Hplus ions\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "c=0.01 #M\n",
+ "kc=1.749*10**-5 #M\n",
+ "#calculations\n",
+ "x2=c*kc\n",
+ "x=math.sqrt(x2)\n",
+ "#results\n",
+ "print '%s %.1e %s' %(\"Concentration of Hplus ions =\",x,\"M\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentration of Hplus ions = 4.2e-04 M\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of OH- ions\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "K2=1.0008*10**-14 #m^2\n",
+ "K1=1.754*10**-5 #m\n",
+ "c=0.1\n",
+ "#calculations\n",
+ "print \"Neglecting x w.r.t c,\"\n",
+ "x2=c*K2/K1\n",
+ "x=math.sqrt(x2)\n",
+ "#results\n",
+ "print '%s %.1e %s' %(\"Concentration of OH minus ions =\",x,\" m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Neglecting x w.r.t c,\n",
+ "Concentration of OH minus ions = 7.6e-06 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of H plus ions\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "print \"from table 14.1,\"\n",
+ "r1=7.47*10**-5 #m\n",
+ "r2=4.57*10**-3 #m\n",
+ "mp=1.008*10**-14 #m**2\n",
+ "#calculations\n",
+ "r3=r2/r1\n",
+ "mH2=r3*mp\n",
+ "mH=math.sqrt(mH2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Concentration of Hplus ions = \",mH,\" M\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from table 14.1,\n",
+ "Concentration of Hplus ions = 7.85e-07 M\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentraton of H+ ions\n",
+ "#Initialization of variables\n",
+ "print \"from table 14.1,\"\n",
+ "import math\n",
+ "r1=1.75*10**-5 #m\n",
+ "r2=1.772*10**-4 #m\n",
+ "mp=1.008*10**-14 #m**2\n",
+ "#calculations\n",
+ "r3=r2/r1\n",
+ "mH2=r3*mp\n",
+ "mH=math.sqrt(mH2)\n",
+ "#results\n",
+ "print '%s %.1e %s' %(\"Concentration of Hplus ions =\",mH,\" M\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from table 14.1,\n",
+ "Concentration of Hplus ions = 3.2e-07 M\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of H+ ions\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "c=1*10**-6 #m\n",
+ "K=1.754*10**-5 #m\n",
+ "Kp=1.008*10**-14 #m**2\n",
+ "#calculations\n",
+ "mH=c\n",
+ "#Iteration 1\n",
+ "mOH=Kp/mH\n",
+ "mA=mH-mOH\n",
+ "mHA=mH*mA/K\n",
+ "mH2=mH-mHA+mOH\n",
+ "#Iteration 2\n",
+ "mOH2=Kp/mH2\n",
+ "mA2=mH2-mOH2\n",
+ "mHA2=mH2*mA2/K\n",
+ "mH3=mH2-mHA2+mOH2\n",
+ "#From x2\n",
+ "x2=math.sqrt(Kp)\n",
+ "x1=c\n",
+ "mOH3=Kp/x2\n",
+ "y2=x1\n",
+ "#From x1\n",
+ "mOH4=Kp/c\n",
+ "mA4=mH-mOH4\n",
+ "mHA4=mH*mA4/K\n",
+ "y1=c-mHA4-mA4\n",
+ "#upon further iterations, we get\n",
+ "mHplus=mH3\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Concentration of H plus ions =\",mHplus,\"m\")\n",
+ "print 'The answer is a bit different due to rounding off error.'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Concentration of H plus ions = 9.13e-07 m\n",
+ "The answer is a bit different due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the values of dS0, dH0, Krm\n",
+ "#Initialization of variableH\n",
+ "print \"From table 14-3,\"\n",
+ "HH=0\n",
+ "HHcoo=-98.\n",
+ "HHcooh=-98.\n",
+ "SH=0\n",
+ "SHcoo=21.9\n",
+ "SHcooh=39.1\n",
+ "KH=0\n",
+ "KHcoo=58.64\n",
+ "KHcooh=62.38\n",
+ "#calculationH\n",
+ "dH=HH+HHcoo-HHcooh\n",
+ "dS=SH+SHcoo-SHcooh\n",
+ "dK=KH+KHcoo-KHcooh\n",
+ "K=10**dK\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\" dS0 =\",dS,\"eu\")\n",
+ "print '%s %.1f %s' %(\"\\n dH0 =\",dH,\"kcal\")\n",
+ "print '%s %.2f' %(\"\\n log Krm =\",dK)\n",
+ "print '%s %.1e %s' %(\"\\n Krm =\",K,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-3,\n",
+ " dS0 = -17.2 eu\n",
+ "\n",
+ " dH0 = 0.0 kcal\n",
+ "\n",
+ " log Krm = -3.74\n",
+ "\n",
+ " Krm = 1.8e-04 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Activity of cl and ca\n",
+ "#Initialization of variables\n",
+ "mca=0.01 #m\n",
+ "mcl=0.02 #m\n",
+ "#calculations\n",
+ "Mu=0.5*(mca*4 + mcl*1)\n",
+ "print \"From table 14-5,\"\n",
+ "aca=6 #A\n",
+ "acl=3 #A\n",
+ "print \"From table 14-6,\"\n",
+ "gaca=0.555 \n",
+ "gacl=0.843\n",
+ "Aca=gaca*mca\n",
+ "Acl=gacl*mcl\n",
+ "#results\n",
+ "print '%s %.4f' %(\"Activity of cl = \",Acl)\n",
+ "print '%s %.4f' %(\"\\n Activity of ca = \",Aca)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-5,\n",
+ "From table 14-6,\n",
+ "Activity of cl = 0.0169\n",
+ "\n",
+ " Activity of ca = 0.0056\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of H+ ions\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "m1=0.1 #m\n",
+ "m2=0.1 #m\n",
+ "K=1.754*10**-5 #m\n",
+ "#calculations\n",
+ "mu=0.5*(m1*1**2 + m2*1**2)\n",
+ "print(\"From table 14.5,\")\n",
+ "aH=9 #A\n",
+ "aA=4.5 #A\n",
+ "print(\"From table 14.6\")\n",
+ "gH=0.825\n",
+ "gA=0.775\n",
+ "gHA=1\n",
+ "x1=gHA*K/(gH*gA)\n",
+ "print(\"Assuming x to be small w.r.t m1,\")\n",
+ "x=math.sqrt(x1*m1)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Concentration of H plus ions =\",x,\" m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14.5,\n",
+ "From table 14.6\n",
+ "Assuming x to be small w.r.t m1,\n",
+ "Concentration of H plus ions = 1.66e-03 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the concentration of H+ ions\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "K=1.754*10**-5 #m\n",
+ "c=0.1\n",
+ "#calculations\n",
+ "print(\"Neglecting x w.r.t c,\")\n",
+ "x2=K\n",
+ "x=math.sqrt(K)\n",
+ "mu=x\n",
+ "print(\"From tables 14-5 and 14-6,\")\n",
+ "gH=0.963\n",
+ "gA=0.960\n",
+ "x22=K/(gH*gA)\n",
+ "p=([1,x22, -c*x22])\n",
+ "z=numpy.roots(p)\n",
+ "alpha=z[1]\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"concentration of H plus ions =\",alpha,\" m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Neglecting x w.r.t c,\n",
+ "From tables 14-5 and 14-6,\n",
+ "concentration of H plus ions = 1.37e-03 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - pg 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Solubility of Agcl\n",
+ "#Initialization of variables\n",
+ "print(\"From table 14.3\")\n",
+ "import math\n",
+ "K1=-13.5089\n",
+ "K2=-22.9792\n",
+ "K3=19.2218\n",
+ "c=0.1 #m\n",
+ "#calculations\n",
+ "logK=K1-K2-K3\n",
+ "K=10**logK\n",
+ "mu=0.5*(c*1**2 + c*1**2)\n",
+ "print(\"From tables 14-5 and 14-6,\")\n",
+ "gAg=0.745\n",
+ "gCl=0.755\n",
+ "x2=K/(gAg*gCl)\n",
+ "x=math.sqrt(x2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Solubility of Agcl =\",x,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14.3\n",
+ "From tables 14-5 and 14-6,\n",
+ "Solubility of Agcl = 1.78e-05 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of Na and Cl in both cases\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "Cna=0.11\n",
+ "Ccl=0.1\n",
+ "#calculations\n",
+ "p=([99, - 2.1, Cna*Ccl])\n",
+ "z=numpy.roots(p)\n",
+ "alpha=z[1]\n",
+ "Na1=Cna-10*alpha\n",
+ "Cl1=Ccl-10*alpha\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\" Concentration of Na in 1 =\",Na1,\"M\")\n",
+ "print '%s %.4f %s' %(\"\\n Concentration of Cl in 1 =\",Cl1,\" M\")\n",
+ "print '%s %.4f %s' %(\"\\n Concentration of Na in 2 =\",alpha,\"M\")\n",
+ "print '%s %.4f %s' %(\"\\n Concentration of Cl in 2 =\",alpha,\"M\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Concentration of Na in 1 = 0.0157 M\n",
+ "\n",
+ " Concentration of Cl in 1 = 0.0057 M\n",
+ "\n",
+ " Concentration of Na in 2 = 0.0094 M\n",
+ "\n",
+ " Concentration of Cl in 2 = 0.0094 M\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter15.ipynb b/Physical_Chemsitry/Chapter15.ipynb
new file mode 100755
index 00000000..8ce44ac5
--- /dev/null
+++ b/Physical_Chemsitry/Chapter15.ipynb
@@ -0,0 +1,322 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:633d2351722f70bcb5591bec1c39746dd272ca892962c335e9bfb247bc80518a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 - Electrochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Weight of copper leaving\n",
+ "#Initialization of variables\n",
+ "I=0.5 #amp\n",
+ "t=55 #min\n",
+ "we=31.77\n",
+ "#calculations\n",
+ "Q=I*t*60\n",
+ "n=Q/96496.\n",
+ "w=n*we\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Weight of copper leaving =\",w,\" g\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of copper leaving = 0.543 g\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the values of tplus and tminus\n",
+ "#Initialization of variables\n",
+ "w1=0.7532 #g\n",
+ "w2=0.9972 #g\n",
+ "wdep=0.4 #g\n",
+ "we=31.77 #g\n",
+ "#calculations\n",
+ "dn=w2/we - w1/we\n",
+ "t=dn/(wdep/we)\n",
+ "dne=wdep/we\n",
+ "dnmig=dn-dne\n",
+ "tplus=-dnmig/dne\n",
+ "tminus=1-tplus\n",
+ "#results\n",
+ "print '%s %.3f' %(\"tplus =\",tplus)\n",
+ "print '%s %.3f' %(\"\\n tminus=\",tminus)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tplus = 0.390\n",
+ "\n",
+ " tminus= 0.610\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Equivalent conductance\n",
+ "#Initialization of variables\n",
+ "R1=312 #ohms\n",
+ "R2=1043 #ohms\n",
+ "c=0.01 #N\n",
+ "kdash=0.002768 #ohm^-1cm^-1\n",
+ "#calculations\n",
+ "k=kdash*R1\n",
+ "kdash2=k/R2\n",
+ "ambda=kdash2/(c/1000.)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Equivalent conductance =\",ambda,\"ohm^-1 cm^2 equiv^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equivalent conductance = 82.8 ohm^-1 cm^2 equiv^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Conductance for acetic acid\n",
+ "#Initialization of variables\n",
+ "l1=349.8 \n",
+ "l2=40.9\n",
+ "#calculations\n",
+ "l=l1+l2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Conductance for acetic acid =\",l,\" ohm^-1 cm^2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conductance for acetic acid = 390.7 ohm^-1 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Specific conductanc\n",
+ "#Initialization of variables\n",
+ "l1=63.6\n",
+ "l2=79.8\n",
+ "n=1 #mg/lt\n",
+ "we=116.7 #g/equiv\n",
+ "#calculations\n",
+ "l=l1+l2\n",
+ "c=n*10**-3 /we\n",
+ "k=c*l/1000.\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Specific conductance =\",k,\" ohm^-1 cm^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific conductance = 1.23e-06 ohm^-1 cm^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the SEP of the cell\n",
+ "#Initialization of variables\n",
+ "e1=0.763 #volt\n",
+ "e2=0.337 #volt\n",
+ "#calculations\n",
+ "e0=e1+e2\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Standard electrode potential of the cell =\",e0,\"volts\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard electrode potential of the cell = 1.100 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Emf of the cell\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "aZn=0.1\n",
+ "aCu=0.01\n",
+ "e1=0.763 #volt\n",
+ "e2=0.337 #volt\n",
+ "#calculations\n",
+ "e0=e1+e2\n",
+ "Q=aZn/aCu\n",
+ "E=e0- 0.05915*math.log10(Q) /2\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Emf of the cell =\",E,\" volts\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Emf of the cell = 1.070 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Decomposition potential\n",
+ "#Initialization of variables\n",
+ "e1=1.2 #volts\n",
+ "e2=0.15 #volts\n",
+ "e3=0.45 #volts\n",
+ "#calculations\n",
+ "E=e1+e2+e3\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Decomposition potential =\",E,\" volt\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Decomposition potential = 1.8 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter16.ipynb b/Physical_Chemsitry/Chapter16.ipynb
new file mode 100755
index 00000000..edd91fdd
--- /dev/null
+++ b/Physical_Chemsitry/Chapter16.ipynb
@@ -0,0 +1,129 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:732bbb076f615c901ca952cd233aa9a732520f864fa8a5b9d8200618c4707cce"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 - Typical mechanisms and rate laws"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Rate constant\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P1=69.2 #mm\n",
+ "P2=39.8#mm\n",
+ "t=20 #min\n",
+ "#calculations\n",
+ "k=2.303*math.log10(P1/P2) /(t*60.)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Rate constant =\",k,\"sec^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate constant = 4.61e-04 sec^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Rate constant\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "t=10. #min\n",
+ "x=90.\n",
+ "#calculations\n",
+ "k=2.303*math.log10(100/(100-x)) /t\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Rate constant =\",k,\"min^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate constant = 0.230 min^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the rate constant\n",
+ "#Initialization of variables\n",
+ "t=242. #sec\n",
+ "P=229. #mm\n",
+ "P0=363. #mm\n",
+ "#calculations\n",
+ "k=(1./P -1./P0)/t\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"rate constant=\",k,\"sec^-1 mm^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate constant= 6.66e-06 sec^-1 mm^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter17.ipynb b/Physical_Chemsitry/Chapter17.ipynb
new file mode 100755
index 00000000..6e295125
--- /dev/null
+++ b/Physical_Chemsitry/Chapter17.ipynb
@@ -0,0 +1,183 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4d58417f5757dcfb290ed1ee0e2191d724d6d044069d2c21c72e96a05505c726"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 - Resolving Kinetic data"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 446"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Order of the reaction\n",
+ "#Initialization of variablesx1=5\n",
+ "import math\n",
+ "from math import log\n",
+ "x2=20.\n",
+ "x1=5.\n",
+ "n1=7.49\n",
+ "n2=5.14\n",
+ "#calculations\n",
+ "n=(log(n1)-log(n2))/(log(100-x1) - log(100-x2))\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Order of the reaction = \",n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Order of the reaction = 2.19\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Order of the reaction\n",
+ "#Initialization of variablesx1=5\n",
+ "import math\n",
+ "from math import log\n",
+ "p2=169.\n",
+ "p1=363.\n",
+ "t1=410.\n",
+ "t2=880.\n",
+ "#calculations\n",
+ "ndash=(log(t2) - log(t1))/(log(p1) - log(p2))\n",
+ "n=ndash+1\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Order of the reaction = \",n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Order of the reaction = 2.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Activation energy and Z\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "R=1.987 #cal/deg/mol\n",
+ "k1=4.45*10**-5\n",
+ "k2=2.52*10**-6\n",
+ "T1=283+273.2 #K\n",
+ "T2=356+273.2 #K\n",
+ "#calculations\n",
+ "Ea=2.303*R*1.7530 /(1/T1 - 1/T2)\n",
+ "logZ= math.log10(k1) +Ea/(2.303*R*T1)\n",
+ "Z=10**logZ\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Activation energy =\",Ea,\"cal/mol\")\n",
+ "print '%s %.1e %s' %(\"\\n Z =\",Z,\"lt /mol sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activation energy = 38456 cal/mol\n",
+ "\n",
+ " Z = 5.7e+10 lt /mol sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Equlibrium constant\n",
+ "#Initialization of variables\n",
+ "g1=0.661\n",
+ "g2=0.899\n",
+ "g3=0.405\n",
+ "g4=0.803\n",
+ "g5=0.946\n",
+ "g6=0.614\n",
+ "k=1.33\n",
+ "#calculations\n",
+ "k0=k*g3/(g1*g2)\n",
+ "k2=k0*g4*g5/g6\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Equlibrium constant =\",k2,\"lt/mol min\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equlibrium constant = 1.12 lt/mol min\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter18.ipynb b/Physical_Chemsitry/Chapter18.ipynb
new file mode 100755
index 00000000..d460229d
--- /dev/null
+++ b/Physical_Chemsitry/Chapter18.ipynb
@@ -0,0 +1,102 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:63ceed8607dc113635851a8fc16e00b5a679fa077f828a47388aa54622bce4ae"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 - Catalysis"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Volume \n",
+ "#Initialization of variables\n",
+ "V1=0.284 #cm^3 /g\n",
+ "V2=1.43 #cm^3 /g\n",
+ "P1=142.4 #mm\n",
+ "P2=760. #mm\n",
+ "#calculations\n",
+ "z=(1/V1 - 1/V2)/(1/P1 - 1/P2)\n",
+ "invVm=1/V2 - z/P2\n",
+ "Vm=1/invVm\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Volume =\",Vm,\"cm^3/g\")\n",
+ "print 'The answer in the textbook is a bit different due to rounding off error.'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume = 20.5 cm^3/g\n",
+ "The answer in the textbook is a bit different due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total area\n",
+ "#Initialization of variables\n",
+ "Vm=2.86 #cc/g\n",
+ "P=1 #atm\n",
+ "R=82.06 #cm^3 atm/deg mol\n",
+ "T=273.2 #deg\n",
+ "N=6.023*10**23\n",
+ "sigma=16.2*10**-16 #cm^2 /molecule\n",
+ "#calculations\n",
+ "n=P*Vm/(R*T)\n",
+ "A=N*n*sigma\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"total area =\",A,\" cm^2 (g catalyst)^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total area = 1.24e+05 cm^2 (g catalyst)^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter19.ipynb b/Physical_Chemsitry/Chapter19.ipynb
new file mode 100755
index 00000000..5b2d735e
--- /dev/null
+++ b/Physical_Chemsitry/Chapter19.ipynb
@@ -0,0 +1,356 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f00e66b23ba11c1502ba60271f6e9b549183dbf77dfd61ae21a7394bb7c1f4ce"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 - Photochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Overall transmittance\n",
+ "#Initialization of variables\n",
+ "r1=0.727\n",
+ "r2=0.407\n",
+ "#calculations\n",
+ "r3=r1*r2\n",
+ "#results\n",
+ "print '%s %.3f' %(\"Overall transmittance = \",r3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall transmittance = 0.296\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Extinction coefficient\n",
+ "import math\n",
+ "#Initialization of variables\n",
+ "r=0.450\n",
+ "c=0.02 #M\n",
+ "l=4 #cm\n",
+ "#calculations\n",
+ "e=-math.log10(r) /(c*l)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Extinction coefficient =\",e,\"litres mole^-1 cm^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction coefficient = 4.33 litres mole^-1 cm^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Transmittance of the solution\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "from math import log10\n",
+ "r1=0.850\n",
+ "r2=0.50\n",
+ "#calculations\n",
+ "Da=-log10(r1)\n",
+ "Db=-log10(r2)\n",
+ "D=Da+Db\n",
+ "r3=10**(-D)\n",
+ "#results\n",
+ "print '%s %.3f' %(\"Transmittance of solution =\",r3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transmittance of solution = 0.425\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Extinction coefficient\n",
+ "#Initialization of variables\n",
+ "c=0.000025 #M\n",
+ "l=2 #cm\n",
+ "D=0.417\n",
+ "#calculations\n",
+ "e=D/(c*l)\n",
+ "#result\n",
+ "print '%s %d %s' %(\"Extinction coefficient =\",e,\" liters mole^-1 cm^-1\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction coefficient = 8340 liters mole^-1 cm^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Kc for dissociation\n",
+ "#Initialization of variables\n",
+ "c=0.5 #M\n",
+ "c1=0.000025 #M\n",
+ "D2=0.280\n",
+ "D1=0.417\n",
+ "#calculations\n",
+ "c2=D2*c1/(D1)\n",
+ "dC=c1-c2\n",
+ "SCN=c- 6*c2 -4*dC\n",
+ "K=dC*SCN**2 /c2\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Kc for dissociation =\",K,\" M^2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kc for dissociation = 0.12 M^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of m\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "from math import log\n",
+ "D2=0.249\n",
+ "D1=0.172\n",
+ "a2=0.00752\n",
+ "a1=0.00527\n",
+ "#calculations\n",
+ "m=(log(D2) -log(D1))/(log(a2) - log(a1))\n",
+ "#results\n",
+ "print '%s %.2f' %(\"m = \",m)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m = 1.04\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 495"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Increase in optical density\n",
+ "#Initialization of variables\n",
+ "c=0.1 #M\n",
+ "V=100 #ml\n",
+ "v1=25 #ml\n",
+ "D=0.980\n",
+ "d1=0.090\n",
+ "d2=0.150\n",
+ "#calculations\n",
+ "a=v1*c/V\n",
+ "b=(V-v1)*c/V\n",
+ "Da=a*d1/c\n",
+ "Db=b*d2/c\n",
+ "Ddash=Da+Db\n",
+ "dD=D-Ddash\n",
+ "#results\n",
+ "print '%s %.3f' %(\"Increase in optical density =\",dD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in optical density = 0.845\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of lambda for the reaction to occur\n",
+ "#Initialization of variables\n",
+ "E=50000. #cal/mol\n",
+ "#calculations\n",
+ "lam=2.8593/E\n",
+ "#results\n",
+ "print '%s %d %s' %(\"For the reaction to occur lambda <\",lam*10**8,\"A\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For the reaction to occur lambda < 5718 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Amount of reactant disappeared\n",
+ "#Initialization of variables\n",
+ "lam=3000*10**-8 #cm\n",
+ "ield=0.420\n",
+ "Et=70000 #cal\n",
+ "#calculations\n",
+ "E=2.8593/lam\n",
+ "n=ield*Et/E\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Amount of reactant disappeared =\",n,\" mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of reactant disappeared = 0.308 mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter2.ipynb b/Physical_Chemsitry/Chapter2.ipynb
new file mode 100755
index 00000000..b7de8073
--- /dev/null
+++ b/Physical_Chemsitry/Chapter2.ipynb
@@ -0,0 +1,172 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2335de0a1036d6583f9ddb709f27717d7dd705b5f69b2600b20c842c855e802b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Particles Atomic and subatomic"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Increase in kinetic energy\n",
+ "#Initialization of variables\n",
+ "m1=1.008142\n",
+ "m2=1.008982\n",
+ "#calculations\n",
+ "dm=m1-m2\n",
+ "dt=abs(dm) *931\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Increase in kinetic energy =\",dt,\"Mev\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in kinetic energy = 0.782 Mev\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Thickness\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "d=8.642 #g/cc\n",
+ "M=112.41 #g/mol\n",
+ "ratio=0.01/100\n",
+ "nb=2400\n",
+ "#calculations\n",
+ "n=d*6.02*10**23 /M\n",
+ "sigma=nb*10**-24\n",
+ "x=-2.303*math.log10(ratio) /(sigma*n)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Thickness =\",x,\"cm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness = 0.083 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Threshold\n",
+ "#Initialization of variables\n",
+ "M1=4\n",
+ "M2=14\n",
+ "E=-1.2 #Mev\n",
+ "#calculations\n",
+ "R1=1.5*10**-13 *(M1)**(1/3.)\n",
+ "R2=1.5*10**-13 *(M2)**(1/3.)\n",
+ "V1=2*7*(4.8*10**-10)**2 /(R1+R2)\n",
+ "V2=V1/(1.6*10**-6)\n",
+ "x=(M1+M2)*V2/M2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Threshold =\",x,\" Mev\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Threshold = 4.3 Mev\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Time taken\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "t=1622. #years\n",
+ "per=1. #percent\n",
+ "#calculations\n",
+ "Nratio=1-per/100.\n",
+ "x=t*math.log10(Nratio) / math.log10(0.5)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Time taken =\",x,\" years\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time taken = 23.5 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter3.ipynb b/Physical_Chemsitry/Chapter3.ipynb
new file mode 100755
index 00000000..5b215119
--- /dev/null
+++ b/Physical_Chemsitry/Chapter3.ipynb
@@ -0,0 +1,57 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:491d30e4e083aec11bc84fdc5735ea79764fcb01fd2223f482cd31ce71e9fd49"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 - Waves and Quanta"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Vibrational degrees of freedom\n",
+ "#initialization of variables\n",
+ "atoms=5\n",
+ "#calculations\n",
+ "f=3*atoms\n",
+ "fvib=f-3-3\n",
+ "#results\n",
+ "print '%s %d' %(\"Vibrational degrees of freedom = \",fvib)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational degrees of freedom = 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter4.ipynb b/Physical_Chemsitry/Chapter4.ipynb
new file mode 100755
index 00000000..82fe5388
--- /dev/null
+++ b/Physical_Chemsitry/Chapter4.ipynb
@@ -0,0 +1,171 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:567a331a7783164e40dcbd30f4cdd5679a7a2dc34fb757d2d02e98a98daba061"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 - Molecular energy levels"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Moment of inertia\n",
+ "#initialization of variables\n",
+ "import math\n",
+ "B=10.34 #cm**-1\n",
+ "c=2.998*10**10 #cm/s\n",
+ "h=6.625*10**-27 #erg sec\n",
+ "#calculations\n",
+ "I=h/(8*math.pi**2 *B*c)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Moment of inertia =\",I,\" g cm^2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment of inertia = 2.71e-40 g cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Bond length\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ma=1.0080\n",
+ "mb=35.457\n",
+ "Na=6.0232*10**23\n",
+ "I=2.707*10**-40 #g cm**2\n",
+ "#calculations\n",
+ "mu1=ma*mb/(ma+mb)\n",
+ "mu2=mu1/Na\n",
+ "r=math.sqrt(I/mu2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Bond length =\",r,\"cm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bond length = 1.29e-08 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Force constant\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "c=2.998*10**10 #cm/s\n",
+ "wave=2990 #cm**-1\n",
+ "mu=1.627*10**-24 #g\n",
+ "#calculations\n",
+ "k=mu*(2*math.pi*c*wave)**2\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Force constant =\",k,\"dynes/cm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force constant = 5.16e+05 dynes/cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the anharmonicity constant\n",
+ "#initialization of variables\n",
+ "l1=2886. #cm^-1\n",
+ "l2=5668. #cm^-1\n",
+ "#calculations\n",
+ "wave=2*l1-l2 \n",
+ "wave2= wave+l1\n",
+ "x=wave/(2*wave2)\n",
+ "#results\n",
+ "print '%s %.4f' %(\"anharmonicity constant = \",x)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "anharmonicity constant = 0.0174\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter6.ipynb b/Physical_Chemsitry/Chapter6.ipynb
new file mode 100755
index 00000000..b154f805
--- /dev/null
+++ b/Physical_Chemsitry/Chapter6.ipynb
@@ -0,0 +1,232 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9bf5bbe9f730183d02f70c65bc17bfc01b5796cd6c1851929b94b0569d87691c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 - valence electrons in molecules"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the wave function\n",
+ "#initialization of variables\n",
+ "import math\n",
+ "from math import sqrt\n",
+ "a2=1/8.\n",
+ "#calculations\n",
+ "b2=1-a2\n",
+ "a1=sqrt(a2)\n",
+ "b1=sqrt(b2)\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\" Wave function is\",a1, \"phi1 +\",b1,\"phi2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Wave function is 0.35 phi1 + 0.94 phi2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Bond angle\n",
+ "#initialization of variables\n",
+ "import math\n",
+ "sinu=2/math.sqrt(3.)\n",
+ "cosu=math.sqrt(2/3.)\n",
+ "#calculations\n",
+ "tanu=sinu/cosu\n",
+ "u=math.atan(sinu/cosu) *180/math.pi\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Bond angle =\",2*u,\"degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bond angle = 109.47 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Pauling strength\n",
+ "#initialization of variables\n",
+ "import math\n",
+ "cosu=1/math.sqrt(3.)\n",
+ "sinu=math.sqrt(2./3)\n",
+ "#calculations\n",
+ "f=1/2. + math.sqrt(3.) /2. *cosu + math.sqrt(3./2) *sinu\n",
+ "#results\n",
+ "print ' %s %d' %(\"Pauling strength = \",f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pauling strength = 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Wave function\n",
+ "#initialization of variables\n",
+ "import math\n",
+ "alpha=60.*math.pi/180.\n",
+ "#calculations\n",
+ "cosa=math.cos(alpha)\n",
+ "sina=math.sin(alpha)\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"Wave function =\",cosa,\"s +\",sina,\"pz\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wave function = 0.50 s + 0.87 pz\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Bond energy\n",
+ "#initialization of variables\n",
+ "DHH=103. #kcal/mol\n",
+ "#calculations\n",
+ "DHHp=0.5*(DHH)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Bond energy =\",DHHp,\"kcal/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bond energy = 51.5 kcal/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Exchange energy\n",
+ "#initialization of variables\n",
+ "DHH=42 #kcal/mol\n",
+ "#calculations\n",
+ "DHHp=0.5*(DHH)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Exchange energy =\",DHHp,\"kcal/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Exchange energy = 21.0 kcal/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter7.ipynb b/Physical_Chemsitry/Chapter7.ipynb
new file mode 100755
index 00000000..c4d52fe6
--- /dev/null
+++ b/Physical_Chemsitry/Chapter7.ipynb
@@ -0,0 +1,301 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:163d017a43636b203253208922a2be0b72d9894b37f4d97c9da43a5e9b39c875"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Gases and Introductory stastical thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Gas constant\n",
+ "#Initialization of variables\n",
+ "h=76. #cm\n",
+ "d=13.5951 #g/cc\n",
+ "g=980.655 #cm/s^2\n",
+ "T=273.15 #K\n",
+ "v=22414.6 #cm^3 /mol\n",
+ "#calculations\n",
+ "P=h*d*g\n",
+ "R=P*v/(T)\n",
+ "#results\n",
+ "print '%s %.3e %s' %(\"Gas constant =\",R,\"ergs/deg. mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gas constant = 8.315e+07 ergs/deg. mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the R value in calories\n",
+ "#Initialization of variables\n",
+ "cal=4.184*10**7 #ergs\n",
+ "R=8.315*10**7 #ergs/deg/mol\n",
+ "#calculations\n",
+ "Rdash=R/cal\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"R in calories =\",Rdash,\" cal/ deg mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R in calories = 1.987 cal/ deg mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the root mean square velocity\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "from math import sqrt\n",
+ "R=8.315*10**7 #ergs/deg/mol\n",
+ "T=273.2 #deg\n",
+ "M=4 #g/mol\n",
+ "#calculations\n",
+ "u2=3*T*R/M\n",
+ "u=sqrt(u2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"root mean square velocity =\",u,\" cm/sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "root mean square velocity = 1.31e+05 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Partial pressure of N2, O2 and CO2\n",
+ "#Initialization of variables\n",
+ "n1=2.\n",
+ "n2=10.\n",
+ "n3=3.\n",
+ "P=720. #mm of Hg\n",
+ "#calculations\n",
+ "n=n1+n2+n3\n",
+ "x1=n1/n\n",
+ "P1=x1*P\n",
+ "x2=n2/n\n",
+ "P2=x2*P\n",
+ "x3=n3/n\n",
+ "P3=x3*P\n",
+ "#results\n",
+ "print '%s %d %s' %(\"\\n Partial pressure of N2 =\",P1,\"mm\")\n",
+ "print '%s %d %s' %(\"\\n Partial pressure of O2 =\",P2,\" mm\")\n",
+ "print '%s %d %s' %(\"\\n Partial pressure of CO2 =\",P3,\"mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Partial pressure of N2 = 96 mm\n",
+ "\n",
+ " Partial pressure of O2 = 480 mm\n",
+ "\n",
+ " Partial pressure of CO2 = 144 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Total energy\n",
+ "#Initialization of variables\n",
+ "T=273.2+25 #K\n",
+ "n=1 #mol\n",
+ "R=1.987 #cal/deg mol\n",
+ "#calculations\n",
+ "Etr=1.5*n*R*T\n",
+ "Erot=1.5*n*R*T\n",
+ "Evib=0\n",
+ "Eel=0\n",
+ "Etot=Etr+Erot+Evib+Eel\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Total energy =\",Etot,\"cal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total energy = 1777 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Molecular diameter of He\n",
+ "#Initialization of variables'\n",
+ "import math\n",
+ "b=24.1 #cm^2/mol\n",
+ "N=6.023*10**23 #mole^-1\n",
+ "#calculations\n",
+ "d=(3*b/(2*math.pi*N))**(1./3)\n",
+ "#results\n",
+ "print '%s %.2e %s' %(\"Molecular diameter of He =\",d,\" cm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molecular diameter of He = 2.67e-08 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Volume\n",
+ "#Initialization of variables\n",
+ "P=100. #atm\n",
+ "T=200. #K\n",
+ "n=1. #mole\n",
+ "R=0.08206 #l atm/deg mol\n",
+ "print \"From psychrometric charts,\"\n",
+ "Tc=126.2 #K\n",
+ "Pc=33.5 #K\n",
+ "#calculations\n",
+ "Pr=P/Pc\n",
+ "Tr=T/Tc\n",
+ "print \"From z charts,\"\n",
+ "z=0.83\n",
+ "V=z*n*R*T/P\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Volume =\",V,\" liter\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From psychrometric charts,\n",
+ "From z charts,\n",
+ "Volume = 0.136 liter\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter8.ipynb b/Physical_Chemsitry/Chapter8.ipynb
new file mode 100755
index 00000000..7ee5bb63
--- /dev/null
+++ b/Physical_Chemsitry/Chapter8.ipynb
@@ -0,0 +1,218 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56268e206bf92e9d6c6eb22d6025708a41b67ffcb1bed3001f2340e19e39294f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - First law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Joules required\n",
+ "#Initialization of variables\n",
+ "P=1.0132*10**6 #dynes/cm**2\n",
+ "A=100 #cm**2\n",
+ "z=10 #cm\n",
+ "#calculations\n",
+ "w=P*A*z*10**-7\n",
+ "#results\n",
+ "print '%s %.4e %s' %(\"Joules =\",w,\"J\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Joules = 1.0132e+02 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Calories required\n",
+ "#Initialization of variables\n",
+ "P=1.0132*10**6 #dynes/cm**2\n",
+ "A=100 #cm**2\n",
+ "z=10 #cm\n",
+ "#calculations\n",
+ "w=P*A*z*10**-7\n",
+ "cal=w/4.184\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Calories =\",cal,\"cal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Calories = 24.216 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Heat of vaporization and the Change in energy\n",
+ "#Initialization of variables\n",
+ "T=373.2 #K\n",
+ "n=1. #mol\n",
+ "qp=9720. #cal/mol\n",
+ "#calculations\n",
+ "q=n*qp\n",
+ "w=1.987*T\n",
+ "dE=q-w\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat of vaporization =\",q,\"cal\")\n",
+ "print '%s %d %s' %(\"\\n Change in energy =\",dE,\"cal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of vaporization = 9720 cal\n",
+ "\n",
+ " Change in energy = 8978 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work done, Heat transferred and change in energy\n",
+ "#Initialization of variables\n",
+ "T1=25+273. #K\n",
+ "T2=25+273. #K\n",
+ "#calculations\n",
+ "print \"Since, T2=T1, dE=0\"\n",
+ "dE=0\n",
+ "w=0\n",
+ "q=dE+w\n",
+ "#results\n",
+ "print '%s %d %s' %(\"\\n Work done = \",w,\"J\")\n",
+ "print '%s %d %s' %(\"\\n Heat transferred =\",q,\"J\")\n",
+ "print '%s %d %s' %(\"\\n Change in energy = \",dE,\"J\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since, T2=T1, dE=0\n",
+ "\n",
+ " Work done = 0 J\n",
+ "\n",
+ " Heat transferred = 0 J\n",
+ "\n",
+ " Change in energy = 0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Vibrational energy\n",
+ "#Initialization of variables\n",
+ "R=1.987 #cal/deg mol\n",
+ "#calculations\n",
+ "Cvtr=1.5*R\n",
+ "Cvrot=1.5*R\n",
+ "Cvt=Cvtr+Cvrot\n",
+ "print \"Observed Cv= 6.43\"\n",
+ "Cvobs=6.43\n",
+ "Cvvib=Cvobs-Cvt\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Vibrational =\",Cvvib,\"cal/deg mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Observed Cv= 6.43\n",
+ "Vibrational = 0.47 cal/deg mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter9.ipynb b/Physical_Chemsitry/Chapter9.ipynb
new file mode 100755
index 00000000..dad780a4
--- /dev/null
+++ b/Physical_Chemsitry/Chapter9.ipynb
@@ -0,0 +1,103 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d8a3e9ee0b493342a03a360ee0ca604f80a61547dd5ed22ef022608eecfbe8c4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 - Boltzmann distribution law"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the no of particles\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "r=2.1*10**-6 #cm\n",
+ "n=889\n",
+ "x=0.1 #cm\n",
+ "T=298.2 #K\n",
+ "#calculations\n",
+ "V=4/3 *math.pi *r**3\n",
+ "rho=19.3-1\n",
+ "ffd=rho*V*980.7\n",
+ "eps=ffd*x\n",
+ "logN=-6.96*10**-14 /(2.303*1.38*10**-16 *T)\n",
+ "N=10**logN *n\n",
+ "#results\n",
+ "print '%s %.1f' %(\"No. of particles =\",N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of particles = 163.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "x=1. #percent\n",
+ "wave=1595 #cm**-1\n",
+ "#calculations\n",
+ "E=2.8593*wave\n",
+ "Nratio=(100-x)/x\n",
+ "logN=math.log10(Nratio)\n",
+ "T=E/(2.303*1.987*logN)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Temperature =\",T,\"K\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature = 499 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_1.ipynb b/Physical_Chemsitry/Chapter_1.ipynb
new file mode 100755
index 00000000..ca5fb73c
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_1.ipynb
@@ -0,0 +1,533 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1833f0f72d4fcfdfc05d274c870f8929bea706e80b14f9268d3407df8540de4d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 - Kinetic theory of gases and equations of state"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final volume of the gas\n",
+ "#initialisation of variables\n",
+ "V= 22.394 #l\n",
+ "m= 32 #gm\n",
+ "T= 0 #C\n",
+ "T1= 50. #C\n",
+ "p= .8 #atm\n",
+ "#CALCULATIONS\n",
+ "V1= (T1+273.16)*V/(T+273.16)\n",
+ "V2= (1./p)*V1\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Volume = ',V2,'lt')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Volume = 33.116 lt\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate gthe argon temperature\n",
+ "#initialisation of variables\n",
+ "P= 1 #atm\n",
+ "T= 0 #C\n",
+ "#CALCULATIONS\n",
+ "T1= 10*(T+273.2)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' %(' Argon temperature =',T1,' K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Argon temperature = 2732.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Atomic Weight\n",
+ "#initialisation of variables\n",
+ "x= 0.0820544\n",
+ "T= 0 #C\n",
+ "l= 1.7826 #gl^-1atm^-1\n",
+ "#CALCULATIONS\n",
+ "M= x*(273.16+T)*l\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Atomic Weight =',M,'gm mole^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Atomic Weight = 39.955 gm mole^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Molecular weight and molecular formula\n",
+ "#initialisation of variables\n",
+ "g=.270 #g\n",
+ "R=0.08205\n",
+ "T=296.4 #K\n",
+ "P=754.6/760.0 #atm\n",
+ "V=0.03576 #lt\n",
+ "m1= 12\n",
+ "m2= 19\n",
+ "m3= 35.46\n",
+ "yx=.57\n",
+ "#CALCULATIONS\n",
+ "M1=g*R*T/(P*V)\n",
+ "y=round(yx*M1/m3)\n",
+ "n=round((M1-m3*y+m2)/(2*m2+m1))\n",
+ "x=2*n-1\n",
+ "M= n*m1+x*m2+y*m3\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' %('Approximate molecular weight = ',M1,\"gms\")\n",
+ "print '%s %.2f %s' % (' Molecular weight =',M,' gms')\n",
+ "print '%s %d %s %d %s %d' %('Molecular formula is C',n,'F',x,'Cl',y)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Approximate molecular weight = 184.94 gms\n",
+ " Molecular weight = 187.38 gms\n",
+ "Molecular formula is C 2 F 3 Cl 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure in both cases\n",
+ "#initialisation of variables\n",
+ "n= 10 #moles\n",
+ "R= 0.08205 #atml/molK\n",
+ "T= 300 #K\n",
+ "V= 4.86 #l\n",
+ "b= 0.0643 #ml mol**-1\n",
+ "a= 5.44 #l**2\n",
+ "#CALCULATIONS\n",
+ "P= n*R*T/V\n",
+ "P1= (n*R*T/(V-n*b))-(a*n**2/V**2)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Pressure in case of perfect gas law=',P,' atm')\n",
+ "print '%s %.1f %s' % (' \\n Pressure in case of vanderwaals equation =',P1,' atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure in case of perfect gas law= 50.6 atm\n",
+ " \n",
+ " Pressure in case of vanderwaals equation = 35.3 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure of the gas\n",
+ "#initialisation of variables\n",
+ "n= 10 #moles\n",
+ "T= 300 #K\n",
+ "V= 4.86 #l\n",
+ "R= 0.08205 #atml/molK\n",
+ "v= 0.1417 #l\n",
+ "T1= 305.7 #K\n",
+ "#CALCULATIONS\n",
+ "b= v/2\n",
+ "a= 2*v*R*T1\n",
+ "P= ((n*R*T)/(V-n*b))*2.71**(-a*n/(V*R*T))\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Pressure =',P,' atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure = 32.8 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the root mean square velocity\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "from math import sqrt\n",
+ "T= 0 #C\n",
+ "T1= 100 #C\n",
+ "R= 8.314 #atm lit/mol K\n",
+ "n= 3\n",
+ "M= 2.016 #gm\n",
+ "M1= 28.02 #gm\n",
+ "M2= 146.1 #gm\n",
+ "#CALCULATIONS\n",
+ "u= sqrt(n*R*10**7*(T+273.2)/M)\n",
+ "u1= sqrt(n*R*10**7*(T+273.2)/M1)\n",
+ "u2= sqrt(n*R*10**7*(T+273.2)/M2)\n",
+ "u3= sqrt(n*R*10**7*(T1+273.2)/M)\n",
+ "u4= sqrt(n*R*10**7*(T1+273.2)/M1)\n",
+ "u5= sqrt(n*R*10**7*(T1+273.2)/M2)\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' root mean square velocity of H2 at 0 C =',u*10**-4,' cm/sec')\n",
+ "print '%s %.3f %s' % (' \\n root mean square velocity of N2 at 0 C=',u1*10**-4,' cm/sec')\n",
+ "print '%s %.3f %s' % (' \\n root mean square velocity of SF6 at 0 C =',u2*10**-4,'cm/sec')\n",
+ "print '%s %.2f %s' % (' \\n root mean square velocity of H2 at 100 C =',u3*10**-4,' cm/sec')\n",
+ "print '%s %.3f %s' % (' \\n root mean square velocity of N2 at 100 C =',u4*10**-4,' cm/sec')\n",
+ "print '%s %.3f %s' % (' \\n root mean square velocity of SF6 at 100 C =',u5*10**-4,' cm/sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " root mean square velocity of H2 at 0 C = 18.38 cm/sec\n",
+ " \n",
+ " root mean square velocity of N2 at 0 C= 4.931 cm/sec\n",
+ " \n",
+ " root mean square velocity of SF6 at 0 C = 2.160 cm/sec\n",
+ " \n",
+ " root mean square velocity of H2 at 100 C = 21.49 cm/sec\n",
+ " \n",
+ " root mean square velocity of N2 at 100 C = 5.764 cm/sec\n",
+ " \n",
+ " root mean square velocity of SF6 at 100 C = 2.524 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the no. of collisions in He and N2\n",
+ "#Initialisation of variables\n",
+ "import math\n",
+ "from math import sqrt\n",
+ "P= 1 #at,\n",
+ "T= 300 #K\n",
+ "R= 82.05 #atm l/mol K\n",
+ "R1= 8.314\n",
+ "s= 4*10**-8 #cm\n",
+ "s1= 2*10**-8 #cm\n",
+ "m= 4 #gm\n",
+ "m1= 28 #gm\n",
+ "#CALCULATIONS\n",
+ "N= P*6.02*10**23/(R*T)\n",
+ "n= 2*s1**2*N**2*sqrt(math.pi*R1*10**7*T/m)\n",
+ "n1= 2*s**2*N**2*sqrt(math.pi*R1*10**7*T/m1)\n",
+ "#RESULTS\n",
+ "print '%s %.e %s' % (' no of collisions =',n,'collisions sec^-1 mol^-1')\n",
+ "print '%s %.2e %s' % (' \\n no of collisions =',n1,' collisions sec^-1 mol^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " no of collisions = 7e+28 collisions sec^-1 mol^-1\n",
+ " \n",
+ " no of collisions = 1.01e+29 collisions sec^-1 mol^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the viscosity of N2\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "from math import sqrt\n",
+ "M= 28 #gm\n",
+ "R= 8.314*10**7 #atm l/mol K\n",
+ "N= 6.023*10**23\n",
+ "T= 300 #K\n",
+ "s= 4*10**-8#cm\n",
+ "#CALCULATIONS\n",
+ "m= M/N\n",
+ "k= R/N\n",
+ "n= (5./16.)*sqrt(math.pi*m*k*T)/(math.pi*s**2)\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' viscosity =',n,'poise')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " viscosity = 1.53e-04 poise\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Increase in energy per degree for 1 mole of gas\n",
+ "#initialisation of variables\n",
+ "n= 3\n",
+ "R= 2 #cal mol^-1 deg^-1\n",
+ "#CALCULATIONS\n",
+ "I= n*R\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' %(' Increase in energy =',I,'cal mol^-1 deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Increase in energy = 6.0 cal mol^-1 deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Dipole moment and percentage of ionic character\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "k= 1.38*10**-16\n",
+ "N= 6*10**23 #molecules\n",
+ "a= 105 #degrees\n",
+ "l= 0.957 #A\n",
+ "e= 4.8*10**-10 #ev\n",
+ "#CALCULATIONS\n",
+ "u= math.sqrt(9*k*2.08*10**4/(4*math.pi*N))\n",
+ "uh= u/(2*math.cos(a*math.pi/180/2.))\n",
+ "z= uh/(l*e*10**-8) \n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' Dipole moment of H2O=',u,'e.s.u.cm')\n",
+ "print '%s %.2e %s' % (' \\n Dipole moment of OH bond =',uh,'e.s.u.cm')\n",
+ "print '%s %.2f' % (' \\n fraction of ionic character =',z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Dipole moment of H2O= 1.85e-18 e.s.u.cm\n",
+ " \n",
+ " Dipole moment of OH bond = 1.52e-18 e.s.u.cm\n",
+ " \n",
+ " fraction of ionic character = 0.33\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 - Pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the dielectric constant\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "u= 1.44*10**-18 #e.s.u\n",
+ "k= 3.8*10**-16 \n",
+ "T= 273. #k\n",
+ "N= 6.023*10**23 #molecules\n",
+ "v= 6. #cc\n",
+ "Vm= 44.8*10**3 #cc\n",
+ "#CALCULATIONS\n",
+ "Pm= v+(4*math.pi*N*u**2/(3*3*k*T))\n",
+ "r= Pm/Vm\n",
+ "k= (2*r+1)/(1-r)\n",
+ "#RESULTS\n",
+ "print '%s %.5f' % (' dielectric constant =',k)\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " dielectric constant = 1.00153\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_10.ipynb b/Physical_Chemsitry/Chapter_10.ipynb
new file mode 100755
index 00000000..4ee0e2f1
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_10.ipynb
@@ -0,0 +1,635 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a8663b753e53365cf46aa7f5948fd23b365bccc405a9c5b9305fa79e49b0f6dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Chemical Kinetics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Pressure \n",
+ "#initialisation of variables\n",
+ "t= 3 #sec\n",
+ "P0= 200 #mm\n",
+ "k= 17.3 #mm/sec\n",
+ "P1= 104 #mm\n",
+ "#CALCULATIONS\n",
+ "P= P0-k*t\n",
+ "P2= P+P1\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Pressure=',P2,' mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure= 252 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 545"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Half time\n",
+ "#initialisation of variables\n",
+ "k= 2.63*10**-3 #min^-1\n",
+ "#CALCULATIONS\n",
+ "t1= 0.693/k\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Half time=',t1,'min')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Half time= 263.5 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 546"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Partial Pressure of the reactant\n",
+ "#initialisation of variables\n",
+ "P= 200. #mm\n",
+ "t= 30. #min\n",
+ "k= 2.5*10**-4 #sec^-1\n",
+ "#CALCULATIONS\n",
+ "P0= P/(10**(k*t*60/2.303))\n",
+ "P1= P-P0\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Partial Pressure of reactant=',P1,'mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Partial Pressure of reactant= 72 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the no of atoms\n",
+ "#initialisation of variables\n",
+ "t= 5600*365*24*60.\n",
+ "x= 5 #atoms\n",
+ "#CALCULATIONS\n",
+ "k= 0.693/t\n",
+ "N= x/k\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' No of atoms=',N, 'atoms')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " No of atoms= 2.12e+10 atoms\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the time passed\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "t= 5600 #sec\n",
+ "r= 0.256\n",
+ "#CALCULATIONS\n",
+ "t1= (t/0.693)*2.303*math.log10(1/r)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Time=',t1,'years ago')\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Time= 11012 years ago\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the first order rate constant and half life\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "t= 25.1 #hr\n",
+ "C= 0.004366 \n",
+ "C1= 0.002192\n",
+ "C2= 0.006649\n",
+ "#CALCULATIONS\n",
+ "r= (C-C1)/(C2-C1)\n",
+ "k= 2.303*math.log10(1/r)/t\n",
+ "t1= 0.693/k\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' %(' Time=',t1,' hr')\n",
+ "print '%s %.2e %s' %(' Time=',k,' hr')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Time= 24.2 hr\n",
+ " Time= 2.86e-02 hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Rate constant\n",
+ "#initialisation of variables\n",
+ "s= 18.6*10**4 #mm of hg\n",
+ "#CALCULATIONS\n",
+ "k= 1./s\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' Rate constant=',k,' (mm Hg)^-1 sec^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rate constant= 5.38e-06 (mm Hg)^-1 sec^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the requried Pressure\n",
+ "#initialisation of variables\n",
+ "k= 1.14*10**-4 #sec^-1\n",
+ "k1= 5.38*10**-6 #sec^-1\n",
+ "#CALCULATIONS\n",
+ "P= k/k1\n",
+ "P2=0.01*P\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Pressure=',P2,'mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Pressure= 0.212 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the no of molecules\n",
+ "#initialisation of variables\n",
+ "T= 600 #K\n",
+ "P= 1 #atm\n",
+ "R= 0.082 #atm lit/mol K\n",
+ "#CALCULATIONS\n",
+ "C= P/(R*T)\n",
+ "r= C**2*4*10**-6 \n",
+ "r1= 6*10**23*r\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' No of molecules=',r1,'molecules l^-1 sec^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " No of molecules= 9.9e+14 molecules l^-1 sec^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the time required\n",
+ "#initialisation of variables\n",
+ "k= 6.3*10**2 #ml mole^-1 sec^-1\n",
+ "P= 400. #mm\n",
+ "T= 600. #K\n",
+ "R= 82.06\n",
+ "#CALCULATIONS\n",
+ "C= (P/760.)/(R*T)\n",
+ "t= 1/(9.*C*k)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' time=',t,' sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " time= 16.5 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 556"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure of No2 in both cases\n",
+ "#initialisation of variables\n",
+ "pf2= 2.00 #mm Hg\n",
+ "y= 0.96 #mm Hg\n",
+ "Pn= 5 #mm Hg\n",
+ "#CALCULATIONS\n",
+ "pF2= pf2-y\n",
+ "pNO2= Pn-2*y\n",
+ "pNO2F= 2*y\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' pressure of NO2=',pNO2,'mm of Hg')\n",
+ "print '%s %.2f %s' % (' \\n pressure of NO2 after 30 sec=',pNO2F,'mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " pressure of NO2= 3.08 mm of Hg\n",
+ " \n",
+ " pressure of NO2 after 30 sec= 1.92 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 561"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Rate constant\n",
+ "#initialisation of variables\n",
+ "k= 4*10**-6 #mol^-1 sec^-1\n",
+ "Kc= 73\n",
+ "#CALCULATIONS\n",
+ "K1= k*Kc/2\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' Rate constant=',K1,'l mol^-1 sec^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Rate constant= 1.46e-04 l mol^-1 sec^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 - pg 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the activation energy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "R= 1.987 #atm lit/mol K\n",
+ "T= 573.2 #K\n",
+ "T1= 594.6 #K\n",
+ "k= 3.95*10**-6 #mol^-1 sec^-1\n",
+ "k1= 1.07*10**-6 #mol^-1 sec^-1\n",
+ "#CALCULATIONS\n",
+ "H= R*T*T1*2.303*math.log10((k/k1))/(T1-T)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' %(' activation energy=',H,'calmol^-1')\n",
+ "print 'The answers in the texbook are a bit different due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " activation energy= 41338 calmol^-1\n",
+ "The answers in the texbook are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 - pg 568"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the time required\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "H= 41300. #cal\n",
+ "T= 673. #K\n",
+ "T1= 595. #K\n",
+ "R= 1.987 #cal/mol K\n",
+ "K= 3.95*10**-6\n",
+ "P= 1 #atm\n",
+ "R1= 0.08205 #j/mol K\n",
+ "#CALCULATIONS\n",
+ "k2= math.e**(H*(T-T1)/(R*T*T1))*K\n",
+ "C= P/(R1*T)\n",
+ "t= 44.8/C\n",
+ "t2=R1*T*10**-2 /k2\n",
+ "#RESULTS\n",
+ "print '%s %d %s' %(' time =',t,'sec')\n",
+ "print '%s %d %s' %('Time required in case 2 = ',t2,'sec')\n",
+ "print 'The answers in the texbook are a bit different due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " time = 2473 sec\n",
+ "Time required in case 2 = 2438 sec\n",
+ "The answers in the texbook are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 - pg 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the collision diameter\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "H= 41300.\n",
+ "R= 1.987 #atm lit/mol K\n",
+ "T= 595. #K\n",
+ "M= 128. #gm\n",
+ "R1= 8.314*10**7 #atm lit/mol K\n",
+ "N= 6.02*10**23 #moleccules\n",
+ "k= 3.95*10**-6 #sec**-1\n",
+ "#CALCULATIONS\n",
+ "s= math.sqrt((k*10**3/(4*N))*(128/(math.pi*R1*T))**0.5*math.e**(H/(R*T)))\n",
+ "#RESULTS\n",
+ "print '%s %.3e %s' % (' collision diameter=',s,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " collision diameter= 8.356e-09 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 - pg 577"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Concentration of A and B\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "p= 20.3 #percent\n",
+ "p1= 1.77 #percent\n",
+ "I= 100.\n",
+ "n= 2.\n",
+ "l= 300. #l mol^-1 cm^-1\n",
+ "l1= 30. #l mol^-1 cm^-1\n",
+ "l2= 10. #l mol^-1 cm^-1\n",
+ "l3= 200. #l mol^-1 cm^-1\n",
+ "#CALCULATIONS\n",
+ "A= ([[n*l, n*l1],[n*l2, n*l3]])\n",
+ "b= ([[math.log10(I/p1)],[math.log10(I/p)]])\n",
+ "c= numpy.dot(numpy.linalg.inv(A),b)\n",
+ "R1=c[0]\n",
+ "R2=c[1]\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' Concentration of A =',R1,' mole l^-1')\n",
+ "print '%s %.2e %s' % (' \\n Concentration of B =',R2,' mole l^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Concentration of A = 2.76e-03 mole l^-1\n",
+ " \n",
+ " Concentration of B = 1.59e-03 mole l^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_2.ipynb b/Physical_Chemsitry/Chapter_2.ipynb
new file mode 100755
index 00000000..f3c80669
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_2.ipynb
@@ -0,0 +1,437 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e0f60b1374b6cd8ea6c7a7a98303a8b74644396bbd6f803eaeda82697f2fd3e7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Structures of Condensed Phases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the size of cubic unit cell\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "l= 1.5418 #A\n",
+ "a= 19.076 #degrees\n",
+ "d2= 1.444 #A\n",
+ "#CALCULATIONS\n",
+ "d= l/(2*math.sin(a*math.pi/180.))\n",
+ "a= math.sqrt(8*d2*d2)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' size of cubic unit cell =',a,'A')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " size of cubic unit cell = 4.0842 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Density of silver\n",
+ "#initialisation of variables\n",
+ "M= 107.88 #gm\n",
+ "z= 4\n",
+ "v= 4.086 #A\n",
+ "N= 6.023*10**23\n",
+ "#CALCULATIONS\n",
+ "d= z*M/(v**3*10**-24*N)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' Density of silver =',d,'gm cm^-3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Density of silver = 10.5025 gm cm^-3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molecular weight\n",
+ "#initialisation of variables\n",
+ "d= 1.287 #g cm**-3\n",
+ "a= 123 #A\n",
+ "z= 4\n",
+ "#CALCULATIONS\n",
+ "M= d*6.023*10**23*a**3*10**-24/z\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' molecular weight =',M,'gm ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molecular weight = 3.6e+05 gm \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the radius of silver atom\n",
+ "import math\n",
+ "#initialisation of variables\n",
+ "a= 4.086 #A\n",
+ "#CALCULATIONS\n",
+ "d= a*math.sqrt(2)\n",
+ "r= d/4.\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' radius of silver atom=',r,' A ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " radius of silver atom= 1.445 A \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the surface tension\n",
+ "import math\n",
+ "#initialisation of variables\n",
+ "M= 38.3 #mg cm^-1\n",
+ "d= 13.55 #g cm^-3\n",
+ "p= 0.9982 #g cm^-3\n",
+ "g= 980.7 #cm/sec^2\n",
+ "l= 4.96 #cm\n",
+ "#CALCULATIONS\n",
+ "r= math.sqrt(M*10**-3/(d*math.pi))\n",
+ "R= r*p*g*l/2\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' surface tension =',R,' ergs cm^-2 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " surface tension = 72.8 ergs cm^-2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the dipole moment of water\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "r= 1.333\n",
+ "d= 0.9982 #g cm**-3\n",
+ "m= 18.02 #gm\n",
+ "Pm= 74.22 #cc\n",
+ "k= 8.314*10**7 \n",
+ "N= 6.023*10**23\n",
+ "T= 293 #k\n",
+ "#CALCULATIONS\n",
+ "Rm= ((r**2-1)/(r**2+2))*m/d\n",
+ "u= math.sqrt(9*k*T*(Pm-Rm)/(4*math.pi*N**2))\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' dipole moment of water =',u,'e.s.u ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " dipole moment of water = 1.84e-18 e.s.u \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the radius of argon atom\n",
+ "#initialisation of variables\n",
+ "a= 1.66*10**-24 #cm**3\n",
+ "#CALCULATIONS\n",
+ "r= a**(1/3.)/10**-8\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' radius =',r,'A ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " radius = 1.18 A \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the index of refraction\n",
+ "import math\n",
+ "#initialisation of variables\n",
+ "N= 6.023*10**23 #molecules\n",
+ "a= 10**-24\n",
+ "k= 0.89\n",
+ "cl= 3.60\n",
+ "M= 74.56 #gms\n",
+ "d= 1.989 #g/cm^3\n",
+ "#CACLULATIONS\n",
+ "Rm= 4*math.pi*N*(k+cl)*a/3\n",
+ "r= Rm*d/M\n",
+ "n= math.sqrt((2*r+1)/(1-r))\n",
+ "#RESULTS\n",
+ "print '%s %.3f' % (' index of refraction= ',n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " index of refraction= 1.516\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the radius of K and Cl atoms\n",
+ "#initialisation of variables\n",
+ "v= 3.6 #cc\n",
+ "v1= 0.89 #cc\n",
+ "s= 3.146 #A\n",
+ "#CALCULATIONS\n",
+ "r= (v/v1)**(1/3.)\n",
+ "r1 = s/(1+r)\n",
+ "r2 = s-r1\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' radius of k+=',r1,'A ')\n",
+ "print '%s %.3f %s' % (' \\n radius of cl-=',r2,'A ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " radius of k+= 1.213 A \n",
+ " \n",
+ " radius of cl-= 1.933 A \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the angle of rotation\n",
+ "#initialisation of variables\n",
+ "g= 10 #gm\n",
+ "d= 1.038 #gm/mol\n",
+ "M= 100 #gm\n",
+ "x= 66.412\n",
+ "y= 0.127\n",
+ "z= 0.038\n",
+ "l= 20 #cm\n",
+ "#CALCULATIONS\n",
+ "p= g/(M/d)\n",
+ "X= x+y-z\n",
+ "ar= X*l*p/10.\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' angle of rotation=',ar,'degrees ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " angle of rotation= 13.81 degrees \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the viscosity of toluene\n",
+ "#initialisation of variables\n",
+ "t= 68.9 #sec\n",
+ "t1= 102.2 #sec\n",
+ "p1= 0.866 #g/cm^3\n",
+ "p2= 0.998 #gm/cm^3\n",
+ "n= 0.01009 #dynesc/cm^2\n",
+ "#CALCULATIONS\n",
+ "N= n*t*p1/(t1*p2)\n",
+ "#RESULTS\n",
+ "print '%s %.5f %s' % (' viscosity of toluene=',N,'dyne sec/cm^2 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " viscosity of toluene= 0.00590 dyne sec/cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_3.ipynb b/Physical_Chemsitry/Chapter_3.ipynb
new file mode 100755
index 00000000..09238726
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_3.ipynb
@@ -0,0 +1,878 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e18fb187eca74984e6f3523731bde87a33ea02f1017bfbe68a1eb5fa826002ce"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 - First law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the increase in energy\n",
+ "#initialisation of variables\n",
+ "P= 0.0060 #atm\n",
+ "M=18. #gm\n",
+ "L=80 #cal/gm\n",
+ "H=596.1 #cal/gm\n",
+ "#calculations\n",
+ "Hs=M*L+M*H\n",
+ "#results\n",
+ "print '%s %d %s' %('Net increase in energy = ',Hs,'cal')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net increase in energy = 12169 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the increase in energy\n",
+ "#initialisation of variables\n",
+ "P= 0.0060 #atm\n",
+ "V1= 0.0181 #l\n",
+ "H= -10730 #cal\n",
+ "V2= 22.4 #l\n",
+ "#CALCULATIONS\n",
+ "W= (V2-P*V1)*(1.987/.08205)\n",
+ "E= H+W\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' increase in energy=',E,' cal ')\n",
+ "print 'The answer differs a bit from the textbook due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " increase in energy= -10187 cal \n",
+ "The answer differs a bit from the textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the increase in energy\n",
+ "#initialisation of variables\n",
+ "T1= 70 #C\n",
+ "T2= 10 #C\n",
+ "Cp= 18 #cal mole^-1 deg^-1\n",
+ "P= 1 #atm\n",
+ "m= 18. #g\n",
+ "d= 0.9778 #g/ml\n",
+ "d1= 0.9997 #g/ml\n",
+ "e= 1.987 #cal\n",
+ "x= 82.05 #ml atm\n",
+ "#CALCULATIONS\n",
+ "H= Cp*(T1-T2)\n",
+ "E= H-(e/x)*P*((m/d)-(m/d1))\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' increase in energy=',E,'cal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " increase in energy= 1080.0 cal \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the conversion factor\n",
+ "#initialisation of variables\n",
+ "i= 1 #amp\n",
+ "r= 2 #ohms\n",
+ "t= 10 #min\n",
+ "dT= 2.73 #C\n",
+ "x= 0.1 #cal/deg\n",
+ "x1= 100 #cal/deg\n",
+ "x2= 5 #cal/deg\n",
+ "#CALCULATIONS\n",
+ "w= i**2*r*t*60\n",
+ "H= (x+x1+x2)*dT\n",
+ "E= w/H\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % ('conversion factor =',E,'cal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conversion factor = 4.18 cal \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat at constant pressure and volume\n",
+ "#initialisation of variables\n",
+ "Cp= 6.0954 #cal /mol deg\n",
+ "Cp1= 3.2533*10**-3 #cal /mol deg\n",
+ "Cp2= 1.071*10**-6 #cal /mol deg\n",
+ "T= 100 #C\n",
+ "T1= 0 #C\n",
+ "R= 1.987 #atml/cal K\n",
+ "#CALULATIONS\n",
+ "H= Cp*(T-T1)+(Cp1/2)*((T+273.2)**2-(T1+273.2)**2)-(Cp2/3)*((T+273.2)**3-(T1+273.2)**3)\n",
+ "q= H-R*(T-T1)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Heat at constant pressure=',H,'cal ')\n",
+ "print '%s %.1f %s' % (' \\n Heat at constant volume=',q,'cal ')\n",
+ "print 'The answer differs a bit from the textbook due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat at constant pressure= 703.4 cal \n",
+ " \n",
+ " Heat at constant volume= 504.7 cal \n",
+ "The answer differs a bit from the textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work done in the process\n",
+ "#initialisation of variables\n",
+ "vl= 0.019 #l\n",
+ "vg= 16.07 #l\n",
+ "h= 1489. #mm of Hg\n",
+ "#CALCULATIONS\n",
+ "w= -(h/760)*(vl-vg)*(1.987/0.08206)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Work done=',w,'cal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Work done= 761 cal \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the minimum work in both cases\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "n= 2 #moles\n",
+ "R= 0.08206 #J/mol K\n",
+ "T= 25 #C\n",
+ "b= 0.0428 #lmole^-1\n",
+ "a= 3.61 #atm l^2 mole^-1\n",
+ "V1= 20. #l\n",
+ "V2= 1. #l\n",
+ "#CALCULATIONS\n",
+ "w1= n*1.987*(273.2+T)*math.log10(V1/V2) *2.303\n",
+ "w= (n*R*(273.2+T)*2.303*math.log10((V1-n*b)/(V2-n*b))-a*n**2*((1/V2)-(1/V1)))*(1.987/0.08206)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' minimum work=',w1,'cal ')\n",
+ "print '%s %.1f %s' % (' \\n minimum work=',w,'cal ')\n",
+ "print 'The answer differs a bit from the textbook due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " minimum work= 3550.7 cal \n",
+ " \n",
+ " minimum work= 3319.5 cal \n",
+ "The answer differs a bit from the textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final volume and temperature of the gas. Also calculate the work done in the process\n",
+ "#initialisation of variables\n",
+ "cv = 5.00 #cal mole^-1 deg^-1\n",
+ "R= 1.99 #cal mole^-1 deg^-1\n",
+ "p= 1 #atm\n",
+ "p1= 100. #atm\n",
+ "V= 75. #l\n",
+ "n= 3. #moles\n",
+ "R1= 0.08206 #cal/mol K\n",
+ "#CALCULATIONS\n",
+ "cp= cv+R\n",
+ "r= cp/cv\n",
+ "V1= V/(p1/p)**(1/r)\n",
+ "T2= p1*V1/(n*R1)\n",
+ "w= (p1*V1-p*V)*R/((r-1)*R1)\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' final volume of gas =',V1,'l ')\n",
+ "print '%s %d %s' % (' \\n final temperature of gas =',T2,'K ')\n",
+ "print '%s %d %s' % (' \\n Work done =',w,'cal ')\n",
+ "print 'The answer differs a bit from the textbook due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final volume of gas = 2.78 l \n",
+ " \n",
+ " final temperature of gas = 1130 K \n",
+ " \n",
+ " Work done = 12384 cal \n",
+ "The answer differs a bit from the textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in energy and enthalpy\n",
+ "#initialisation of variables\n",
+ "cv= 5 #cal mole^-1\n",
+ "P= 100 #atm\n",
+ "T= 1130 #K\n",
+ "T1= 812 #K\n",
+ "n= 3 #moles\n",
+ "R= 1.99 #cal/mole K\n",
+ "#CALCULTIONS\n",
+ "E= n*cv*(T1-T)\n",
+ "H= E+n*R*(T1-T)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' change in energy =',E,'cal ')\n",
+ "print '%s %.1f %s' % (' \\n change in enthalpy=',H,' cal ')\n",
+ "print 'The answer differs a bit from the textbook due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in energy = -4770.0 cal \n",
+ " \n",
+ " change in enthalpy= -6668.5 cal \n",
+ "The answer differs a bit from the textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work done and final pressure\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "k= 1.435 \n",
+ "k1= 17.845*10**-3 #K**-1\n",
+ "k2= -4.165*10**-6 #K**-2\n",
+ "T= 200. #C\n",
+ "T1= 0. #C\n",
+ "P= 10. #atm\n",
+ "R= 1.987 #cal/mol K\n",
+ "k3= 3.422\n",
+ "#CALCULATIONS\n",
+ "W= k*(T-T1)+(k1/2)*((273+T)**2-(273+T1)**2)+(k2/3)*((273+T)**3-(273+T1)**3)\n",
+ "P2= (P/math.e**((k*math.log((273+T1)/(273+T))+k1*(T1-T)+(k2/2)*((273+T1)**2-(273+T)**2))/R))/100.\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' work done by methane =',W,'cal ')\n",
+ "print '%s %.2f %s' % (' \\n final pressure=',P2,'atm ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " work done by methane = 1499 cal \n",
+ " \n",
+ " final pressure= 0.77 atm \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - pg 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the fraction of liquid\n",
+ "#initialisation of variables\n",
+ "P= 100 #atm\n",
+ "P1= 1 #atm\n",
+ "R= 1.99 #cal/mol**-1 K**-1\n",
+ "k= 0.3 #atm**-1\n",
+ "E= 1600 #cal\n",
+ "T= -183 #C\n",
+ "T1= 0 #C\n",
+ "#CALCULATIONS\n",
+ "X= (k*3.5*R*(P-P1))/(3.5*R*(T1-T)+E)\n",
+ "#RESULTS\n",
+ "print '%s %.3f' % (' fraction of liquid = ',X)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " fraction of liquid = 0.072\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the enthalpy change of the reaction\n",
+ "#initialisation of variables\n",
+ "H= -21.8 #kcal\n",
+ "H1= 3.3 #kcal\n",
+ "#CALCULATIONS\n",
+ "H2= H-H1\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Enthalpy =',H2,'kcal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -25.1 kcal \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 - pg 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat of hydrogenation\n",
+ "#initialisation of variables\n",
+ "H= -68.317 #kcal\n",
+ "H1= -310.615 #kcal\n",
+ "H2= -337.234 #kcal\n",
+ "R= 1.987 #cal/mol^-1 K^-1\n",
+ "T= 298.2 #K\n",
+ "n= 1 #mole\n",
+ "n1= 1 #mole\n",
+ "n2= 1 #mole\n",
+ "#CALCULATIONS\n",
+ "E= H+H1-H2-(n-n1-n2)*R*T*10**-3\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Heat of hydrogenation =',E,'kcal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat of hydrogenation = -41.105 kcal \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 - pg 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the enthalpy of the process\n",
+ "#initialisation of variables\n",
+ "Hf= -196.5 #kcal\n",
+ "H= -399.14 #kcal\n",
+ "#CALCULATIONS\n",
+ "H1= (H-Hf)*1000\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Enthalpy =',H1,' kcal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -202640 kcal \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 - pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Enthalpy change\n",
+ "#initialisation of variables\n",
+ "H= -350.2 #kcal\n",
+ "H1= -128.67 #kcal\n",
+ "H2= -216.90 #kcal\n",
+ "#CALCULATIONS\n",
+ "H3= H-(H1+H2)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Enthalpy =',H3,'kcal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -4.6 kcal \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 - pg 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the enthalpy of the process\n",
+ "#initialisation of variables\n",
+ "H= -40.023 #kcal\n",
+ "H1= -22.063 #kcal\n",
+ "#CALCULATIONS\n",
+ "H2= H-H1\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Enthalpy =',H2,' kcal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -17.960 kcal \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 - pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the enthalpy change in the process\n",
+ "#initialisation of variables\n",
+ "H= -112.148 #k cal\n",
+ "H1= 101.99 #k cal\n",
+ "Hx=-112.148 #kcal\n",
+ "Hy=-111.015 #kcal\n",
+ "Hz=-.64\n",
+ "Hsol=-9.02\n",
+ "#CALCULATIONS\n",
+ "H2= H+H1\n",
+ "H3=2*Hx-2*Hy\n",
+ "H4=-10*Hz\n",
+ "H5=Hsol-5*Hz\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' Enthalpy in case 1=',H2,'k cal ')\n",
+ "print '%s %.3f %s' % (' Enthalpy in case 2=',H3,'k cal ')\n",
+ "print '%s %.1f %s' % (' Enthalpy in case 3=',H4,'k cal ')\n",
+ "print '%s %.2f %s' % (' Enthalpy in case 4=',H5,'k cal ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy in case 1= -10.16 k cal \n",
+ " Enthalpy in case 2= -2.266 k cal \n",
+ " Enthalpy in case 3= 6.4 k cal \n",
+ " Enthalpy in case 4= -5.82 k cal \n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19 - pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the dE and dH in the process\n",
+ "#initialisation of variables\n",
+ "cp=18.\n",
+ "T2=373 #K\n",
+ "T1=298 #K\n",
+ "T3=403.2 #K\n",
+ "hvap=9713 #cal\n",
+ "H4= 0 #cal\n",
+ "E4= 0 #cal\n",
+ "a=7.1873\n",
+ "b=2.3733e-3\n",
+ "c=.2084e-6\n",
+ "R=1.987\n",
+ "#RESULTS\n",
+ "H1=cp*(T2-T1)\n",
+ "H2=hvap\n",
+ "H3=a*(T3-T2) + b/2 *(T3**2-T2**2) + c/3 *(T3**3-T2**3)\n",
+ "E1=H1\n",
+ "E2=H2-R*T2\n",
+ "E3=H3-R*(T3-T2)\n",
+ "H= H1+H2+H3+H4\n",
+ "E= E1+E2+E3+E4\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Enthalpy=',H,'cal ')\n",
+ "print '%s %d %s' % (' \\n Energy=',E,' cal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy= 11308 cal \n",
+ " \n",
+ " Energy= 10507 cal \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20 - pg 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the enthalpy change \n",
+ "#initialisation of variables\n",
+ "H= -114009.8 #cal\n",
+ "x= -5.6146 #K**-1\n",
+ "y= 0.9466*10**-3 #K**-2\n",
+ "z= 0.1578*10**-6 #K**-3\n",
+ "T= 1000\n",
+ "#CALCULATIONS\n",
+ "H1= H+x*T+y*T**2+z*T**3\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' %(' Enthalpy =',H1,'cal ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -118520.0 cal \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21 - pg 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#caculate the temperature achieved\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "a=72.3639\n",
+ "b=36.2399e-3\n",
+ "c=3.7621e-6\n",
+ "H=214920\n",
+ "#calculations\n",
+ "vec=([-c/3,b/2,a,-H])\n",
+ "vec2=numpy.roots(vec)\n",
+ "vec22=(vec2[2])\n",
+ "#results\n",
+ "print '%s %.1f %s' %('The required temperature observed is', vec22,'K')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required temperature observed is 2059.4 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 - pg 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in enthalpy\n",
+ "#initialisation of variables\n",
+ "T= 298 #K\n",
+ "R= 1.987 #atmcc/mol K\n",
+ "x= 128.16\n",
+ "y= 0.9241\n",
+ "H= -8739 #cal\n",
+ "n1= 10 #mol\n",
+ "n2= 12 #mol\n",
+ "#CALCULATIONS\n",
+ "E= (x/y)*H\n",
+ "H= (E+R*T*(n1-n2))/1000\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' %(' Enthalpy =',H,'kcal mole^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -1213.2 kcal mole^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_4.ipynb b/Physical_Chemsitry/Chapter_4.ipynb
new file mode 100755
index 00000000..619fe75d
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_4.ipynb
@@ -0,0 +1,1022 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a82e4bec145fb0d4efd67c857ae44efe430c89bfa64d07388861ee610e670b10"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 - Second and Third laws of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the maximum efficiency in all cases\n",
+ "#initialisation of variables\n",
+ "T = 100. #C\n",
+ "T1= 25. #C\n",
+ "T2= 150. #C\n",
+ "T3= 357. #C\n",
+ "T4= 500. #C\n",
+ "T5= 2000. #C\n",
+ "T6= 5*10**6\n",
+ "T7= 1000. #C\n",
+ "#CALCULATIONS\n",
+ "e= (T-T1)/(T+273)\n",
+ "e1= (T2-T1)/(273+T2)\n",
+ "e2= (T3-T)/(273+T3)\n",
+ "e3= (T5-T4)/(T5+273)\n",
+ "e4= (T6-T7)/T6\n",
+ "#RESULTS\n",
+ "print '%s %.2f' % (' maximum efficiency in case 1= ',e)\n",
+ "print '%s %.2f' % (' \\n maximum efficiency in case 2 = ',e1)\n",
+ "print '%s %.2f' % (' \\n maximum efficiency in case 3 = ',e2)\n",
+ "print '%s %.2f' % (' \\n maximum efficiency in case 4 = ',e3)\n",
+ "print '%s %.2f' % (' \\n maximum efficiency in case 5 = ',e4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency in case 1= 0.20\n",
+ " \n",
+ " maximum efficiency in case 2 = 0.30\n",
+ " \n",
+ " maximum efficiency in case 3 = 0.41\n",
+ " \n",
+ " maximum efficiency in case 4 = 0.66\n",
+ " \n",
+ " maximum efficiency in case 5 = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the maximum efficiency and minimum work\n",
+ "#initialisation of variables\n",
+ "T= 20. #C\n",
+ "T1= -10. #C\n",
+ "q= 1000. #cal\n",
+ "#CALCULATIONS\n",
+ "e= (273+T1)/(T-T1)\n",
+ "w= (T-T1)*q/(273+T1)\n",
+ "#RESULTS\n",
+ "print '%s %.1f' % (' maximum efficiency = ',e)\n",
+ "print '%s %d %s' % (' \\n minimum work =',w,'cal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum efficiency = 8.8\n",
+ " \n",
+ " minimum work = 114 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net work done on and by the gas\n",
+ "#initialisation of variables\n",
+ "T= 1000 #K\n",
+ "T1= 400 #/K\n",
+ "w= 1000 #cal\n",
+ "E= 0 #cal\n",
+ "gam=7/5.\n",
+ "#CALCULATIONS\n",
+ "q= w-E\n",
+ "W= q*(T-T1)/T\n",
+ "q1= W-q\n",
+ "W1= -q1\n",
+ "dE=5/2.*(T1-T)\n",
+ "dH=7/2. *(T1-T)\n",
+ "w2=dE-E\n",
+ "w3=(T-T1)/(gam-1)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % ('net work done by gas=',W,' cal')\n",
+ "print '%s %.1f %s' % ('net work done on gas =',W1,'cal')\n",
+ "print '%s %.1f %s' %('Change in Internal energy = ',dE,'R cal')\n",
+ "print '%s %.1f %s' %('Change in Enthalpy = ',dH,'R cal')\n",
+ "print '%s %.1f %s' %('Work for adiabatic compression =',w3,'R cal')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "net work done by gas= 600.0 cal\n",
+ "net work done on gas = 400.0 cal\n",
+ "Change in Internal energy = -1500.0 R cal\n",
+ "Change in Enthalpy = -2100.0 R cal\n",
+ "Work for adiabatic compression = 1500.0 R cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the entropy of substances\n",
+ "#initialisation of variables\n",
+ "import numpy as np\n",
+ "Hv= np.array([1960.,1560.,4880.,37000.,5500.,27400.,60700.,9720.,30900.]) #cal mole^-1\n",
+ "Tb= np.array([112.,87.3,239.,1806.,259.,1180.,2466.,373.,1029.]) #K\n",
+ "#CALCULATIONS\n",
+ "Sv= np.round(Hv/Tb,1)\n",
+ "#RESULTS\n",
+ "print '%s' % (' Entropy (cal mole deg^-1)')\n",
+ "print Sv\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy (cal mole deg^-1)\n",
+ "[ 17.5 17.9 20.4 20.5 21.2 23.2 24.6 26.1 30. ]\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the entropy at constant pressure and volume\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "T= 300. #K\n",
+ "T1= 400. #K\n",
+ "k= 6.0954\n",
+ "k1= 3.2533*10**-3\n",
+ "k2= -1.0171*10**-6\n",
+ "R= 1.98719 #cal/mol K\n",
+ "#CALCULATIONS\n",
+ "S= 2*(k*math.log(T1/T)+k1*(T1-T)+k2*(T1**2-T**2)/2)\n",
+ "S1= S-2*R*math.log(T1/T)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' Entropy=',S,' cal deg^-1')\n",
+ "print '%s %.4f %s' % (' \\n Entropy =',S1,'cal deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy= 4.0865 cal deg^-1\n",
+ " \n",
+ " Entropy = 2.9432 cal deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature \n",
+ "#initialisation of variables\n",
+ "T1= 273.16 #K\n",
+ "R= 1.987 #cal /mol K\n",
+ "R1= 0.08205 #J /mol K\n",
+ "n= 10 #moles\n",
+ "V1= 22.4 #lit\n",
+ "a= 1.36\n",
+ "Cv= 4.9\n",
+ "#CALCULATIONS\n",
+ "T2= T1-(R*a*(n-1)/(R1*n*Cv*V1))\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' temperature=',T2,' K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " temperature= 272.89 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inversion Temperature\n",
+ "#initialisation of variables\n",
+ "a= 1.360 #l^2 atm mole^-1\n",
+ "b= 0.0317 #l mole^-1\n",
+ "R= 0.08205 #J/mol K\n",
+ "#CALCULATIONS\n",
+ "T= 2*a/(b*R)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % ('Inversion Temperature=',T,'K')\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inversion Temperature= 1045.8 K\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the joule thomson coefficient\n",
+ "#initialisation of variables\n",
+ "a= 1.360 #l^2 atm mole^-1\n",
+ "b= 0.0317 #l mole^-1\n",
+ "R= 0.08205 #J/mol K\n",
+ "R1= 1.987 #cal/mole K\n",
+ "Cp= 6.9 #cal mole^-1 deg^-1\n",
+ "T= 273.2 #K\n",
+ "#CALCULATIONS\n",
+ "u= ((2*a/(R*T))-b)/(Cp*(R/R1))\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Joule thomson coefficient=',u,' atm^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Joule thomson coefficient= 0.315 atm^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - pg 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the increase in entropy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "p= 4/3. #atm\n",
+ "p1= 1 #atm\n",
+ "R= 1.9872 #cal /mole K\n",
+ "#CALCULATIONS\n",
+ "S= 2*R*math.log(p/p1)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' %(' increase in entropy=',S,'cal deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " increase in entropy= 1.1434 cal deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the increase in entropy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "p1= 1 #atm\n",
+ "R= 1.9872 #cal /mole K\n",
+ "#CALCULATIONS\n",
+ "S= 0 #Initial and final states are alike\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' %(' increase in entropy=',S,'cal deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " increase in entropy= 0.0000 cal deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 - pg 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate rhe increase in entropy in both cases\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "T= 25. #C\n",
+ "T1= 100. #C\n",
+ "R= 1.9872 #cal /mole K\n",
+ "p= 1 #atm\n",
+ "p1= 10. #atm\n",
+ "#CALCULATIONS\n",
+ "S= 3.5*R*math.log((T1+273)/(T+273))\n",
+ "S1= S+R*math.log(p/p1)\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' increase in entropy in case 1 =',S,'cal deg^-1')\n",
+ "print '%s %.2f %s' % (' \\n increase in entropy in case 2 =',S1,'cal deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " increase in entropy in case 1 = 1.56 cal deg^-1\n",
+ " \n",
+ " increase in entropy in case 2 = -3.01 cal deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 - pg 222"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the absolute entropy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "S= 45.77 #cal deg^-1\n",
+ "T= 25. #C\n",
+ "T1= 100. #C\n",
+ "R= 1.9872 #cal /mole K\n",
+ "#CALCULATIONS\n",
+ "S0= S+ 3.5*R*math.log((T1+273)/(T+273))\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' absolute entropy=',S0,'cal deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " absolute entropy= 47.33 cal deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 - pg 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "Cp= 18. #cal deg^-1\n",
+ "T= 0. #C\n",
+ "T1= -5. #C\n",
+ "H2= -1440. #cal\n",
+ "Cp1= 9. #cal deg^-1\n",
+ "H= 0.\n",
+ "#CALCULATIONS\n",
+ "T2= (-Cp*(T-T1)-H2+Cp1*(273.16+T))/Cp1\n",
+ "S= Cp*math.log((273.16+T)/(273.16+T1))-(Cp*(T-T1)/(T+273.16))\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' Change in entropy=',S,'cal deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Change in entropy= 0.0031 cal deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 - pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Gibbs free energy\n",
+ "#initialisation of variables\n",
+ "H= -57.7979 #cal\n",
+ "H1= -68.3174 #cal\n",
+ "S= 45.106 #cal deg^-1\n",
+ "S1= 16.716 #cal deg^-1\n",
+ "T= 25 #C\n",
+ "#CALCULATIONS\n",
+ "H2= (H-H1)*1000\n",
+ "S2= S-S1\n",
+ "G= H2-(273.16+T)*S2\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Gibbs free energy=',G,'cal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Gibbs free energy= 2054.7 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19 - pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Gibbs free energy\n",
+ "#initialisation of variables\n",
+ "H= -68317.4 #cal\n",
+ "S= 16.716 #cal\n",
+ "S1= 49.003 #cal\n",
+ "S2= 31.211 #cal\n",
+ "T= 25 #C\n",
+ "#CALCULATIONS\n",
+ "H1= 2*H\n",
+ "S3= 2*S-(S1+2*S2)\n",
+ "G= H1-(T+273.16)*S3\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Gibbs free energy=',G,'cal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Gibbs free energy= -113380.4 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20 - pg 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the gibbs free energy change\n",
+ "#initialisation of variables\n",
+ "H= -57.7979 #kcal\n",
+ "H1= -196.5 #kcal\n",
+ "S1=45.106\n",
+ "S2=6.49\n",
+ "S3=21.5\n",
+ "S4=31.211\n",
+ "T=298.16\n",
+ "#calculations\n",
+ "dH=3*H-H1\n",
+ "dS=3*S1+2*S2-S3-3*S4\n",
+ "dG=dH*1000-T*dS\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Gibbs free energy change =\",dG,\"cal\")\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gibbs free energy change = 13217 cal\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 - pg 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Gibbs free energy and value of A in both cases\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "p= 1. #atm\n",
+ "p1= 3. #atm\n",
+ "R= 1.987 #cal/mole K\n",
+ "T= 27. #C\n",
+ "b= 0.0428 #l mole^-1\n",
+ "a= 3.61 #l^2 atm mole^-1\n",
+ "#CALCULATIONS\n",
+ "G= R*(273+T)*math.log(p/p1)\n",
+ "A= R*(273+T)*math.log(p/p1)\n",
+ "G1= R*(273+T)*math.log(p/p1)+(b-(a/(0.08205*(T+273))))*(p-p1)*(R/0.08205)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Gibs free energy=',G,'cal')\n",
+ "print '%s %.1f %s' % (' \\n Value of dA=',A,'cal')\n",
+ "print '%s %.1f %s' % (' \\n Gibs free energy=',G1,'cal')\n",
+ "print '%s %.1f %s' % (' \\n Value of dA=',A,'cal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Gibs free energy= -654.9 cal\n",
+ " \n",
+ " Value of dA= -654.9 cal\n",
+ " \n",
+ " Gibs free energy= -649.9 cal\n",
+ " \n",
+ " Value of dA= -654.9 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24 - pg 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the fugacities of both components\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "b= 0.0386 #l**2 atm mole**-1\n",
+ "a= 1.348 #l mole**-1\n",
+ "R= 0.08205 #cal /mole K\n",
+ "T= 25 #C\n",
+ "a1= 3.61 #l**2 atm mole**-1\n",
+ "b1= 0.0428 #l mole**-1\n",
+ "P= 50 #atm\n",
+ "P1= 1 #atm\n",
+ "#CALCULATIONS\n",
+ "Bn= b-(a/(R*(273.2+T)))\n",
+ "Bc= b1-(a1/(R*(273.2+T))) \n",
+ "Fn= P1*math.e**(Bn*P1/(R*(273.2+T)))\n",
+ "Fc= P1*math.e**(Bc*P1/(R*(273.2+T)))\n",
+ "Fn1= P*math.e**(Bn*P/(R*(273.2+T)))\n",
+ "Fc1= P*math.e**(Bc*P/(R*(273.2+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.3f %.2f %s' % (' Fugacity of N2 at 1 and 50 atm are respectively =',Fn,Fn1,'atm')\n",
+ "print '%s %.3f %.2f %s' % (' \\n Fugacity of CO2 at 1 and 50 atm are respectively =',Fc,Fc1,'atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Fugacity of N2 at 1 and 50 atm are respectively = 0.999 48.34 atm\n",
+ " \n",
+ " Fugacity of CO2 at 1 and 50 atm are respectively = 0.996 40.37 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25 - pg 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Increase in pressure in all cases\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "P1= 23.756 #atm\n",
+ "T= 25. #C\n",
+ "P2= 1. #atm\n",
+ "P3= 10. #atm\n",
+ "P4= 100. #atm\n",
+ "R= 82.02 #J/mole K\n",
+ "v= 18.07 #ml\n",
+ "#CALCULATIONS\n",
+ "p1= P1/760.\n",
+ "p2= 10**(math.log10(P1)+(v*(P2-p1)/(2.303*R*(273.2+T))))\n",
+ "p3= 10**(math.log10(P1)+(v*(P3-p1)/(2.303*R*(273.2+T))))\n",
+ "p4= 10**(math.log10(P1)+(v*(P4-p1)/(2.303*R*(273.2+T))))\n",
+ "x= -(P1-p2)*100/P1\n",
+ "x1= -(P1-p3)*100/P1\n",
+ "x2= -(P1-p4)*100/P1\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % ('Increase in pressure=',x,'percent')\n",
+ "print '%s %.2f %s' % ('Increase in pressure=',x1,' percent')\n",
+ "print '%s %.1f %s' % ('Increase in pressure=',x2,' percent')\n",
+ "print '%s %.3f %s' %('Vapor pressure at 1 atm',p2,'mm Hg')\n",
+ "print '%s %.3f %s' %('Vapor pressure at 10 atm',p3,'mm Hg')\n",
+ "print '%s %.3f %s' %('Vapor pressure at 100 atm',p4,'mm Hg')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in pressure= 0.07 percent\n",
+ "Increase in pressure= 0.74 percent\n",
+ "Increase in pressure= 7.7 percent\n",
+ "Vapor pressure at 1 atm 23.773 mm Hg\n",
+ "Vapor pressure at 10 atm 23.932 mm Hg\n",
+ "Vapor pressure at 100 atm 25.577 mm Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26 - pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#initialisation of variables\n",
+ "H= 1436.3 #cal mole^-1\n",
+ "d= 0.9999 #g ml^-1\n",
+ "d1= 0.9168 #g ml^-1\n",
+ "P= 1. #atm\n",
+ "m= 18.02 #gm\n",
+ "R= 1.987 #cal/mole K\n",
+ "T= 2 #C\n",
+ "#CALCULATIONS\n",
+ "V= (P/d)-(P/d1)\n",
+ "H1= H*82.05/(m*R) \n",
+ "P1= H1*(-T)/(273*V)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' pressure required to decrease=',P1,'atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " pressure required to decrease= 266.0 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27 - pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat of vapourisation\n",
+ "#initialisation of variables\n",
+ "H= 540. #cal gram ^-1\n",
+ "T= 95. #C\n",
+ "T1= 100. #C\n",
+ "m= 18. #gms\n",
+ "R= 1.987 #cal /mole K\n",
+ "P= 760. #mm of Hg\n",
+ "#CALCULATIONS\n",
+ "H1= m*H\n",
+ "P1= P/(10**(H1*(T1-T)/(2.303*R*(273+T)*(273+T1))))\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' heat of vapourisation=',P1,'mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " heat of vapourisation= 636.0 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28 - pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the vapor pressure of water\n",
+ "#initialisation of variables\n",
+ "H= 9720 #cal mole^-1\n",
+ "P= 1 #atm\n",
+ "R= 1.987 #cal /mole K\n",
+ "T= 100 #C\n",
+ "T1= 95 #C\n",
+ "#CALCULATIONS\n",
+ "r= P*H/(R*(273+T)**2)\n",
+ "dP= r*(T1-T)\n",
+ "P1= (P+dP)*626/0.824\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' vapour pressure=',P1,'mm Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " vapour pressure= 626 mm Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29 - pg 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the vapour pressure\n",
+ "#initialisation of variables\n",
+ "G= 145 #cal\n",
+ "R= 1.987 #cal/mole K\n",
+ "T= 95 #C\n",
+ "#CALCULATIONS\n",
+ "P= 10**(-G/(2.303*R*(273+T)))*(624/0.820)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' vapour pressure=',P,'mm Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " vapour pressure= 624 mm Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 30 - pg 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molar heat of vapourisation\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "R= 1.987 #cal/mole K\n",
+ "T1= 25 #C\n",
+ "T2= 76.8 #C\n",
+ "P2= 760. #mm\n",
+ "P1= 115. #mm\n",
+ "#CALCULATIONS\n",
+ "H= 2.303*R*(273.2+T1)*(273.2+T2)*math.log10(P2/P1)/(T2-T1)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' molar heat of vapourisation=',H,'cal mole^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molar heat of vapourisation= 7561 cal mole^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_5.ipynb b/Physical_Chemsitry/Chapter_5.ipynb
new file mode 100755
index 00000000..98aa3041
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_5.ipynb
@@ -0,0 +1,767 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:18c54e3b106846f46428edc2ce784211e8ed1cb16969a115044ec2bc914626ae"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - The phase rule and solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molality of the mixture\n",
+ "#initialisation of variables\n",
+ "m= 98.08 #gms\n",
+ "d= 1.102 #g ml^-1\n",
+ "m1= 165.3 #gm\n",
+ "v= 1000 #ml\n",
+ "wt=.15\n",
+ "#CALCULATIONS\n",
+ "form=d*v*wt/m\n",
+ "M= d*v-m1\n",
+ "norm=2*form\n",
+ "m2= m1*v/(m*M)\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' molality = ',m2,'molal')\n",
+ "print '%s %.3f %s' %('Formality = ',form,'gm formula wt/l')\n",
+ "print '%s %.3f %s' %('Normality = ',norm,'N')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molality = 1.799 molal\n",
+ "Formality = 1.685 gm formula wt/l\n",
+ "Normality = 3.371 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Increase in enthalpy\n",
+ "#initialisation of variables\n",
+ "T= -40 #C\n",
+ "v= 217.4 #cm^3\n",
+ "r= 8.8 # atm deg^-1\n",
+ "m= 18 #gms\n",
+ "#CALCULATIONS\n",
+ "H= (273+T)*(-v*m/1000)*r*(1.987/82.05)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Increase in enthalpy =',H,'cal mole^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Increase in enthalpy = -194.3 cal mole^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the density\n",
+ "#initialisation of variables\n",
+ "T= 27 #C\n",
+ "R= 0.08206 #cal/mol T\n",
+ "W= 28.6 #gms\n",
+ "#CALCULATIONS\n",
+ "d= W/((273.2+T)*R)\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' density =',d,' g l^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " density = 1.161 g l^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mole fraction and total pressure\n",
+ "#initialisation of variables\n",
+ "P= 408. #mm of Hg\n",
+ "P1= 141. # mm of Hg\n",
+ "p= 60.\n",
+ "#CALCULATIONS\n",
+ "P2= P*(100-p)/100.\n",
+ "P3= P1*p/100.\n",
+ "N= P2/(P2+P3)\n",
+ "P4= P2+P3\n",
+ "#RESULTS\n",
+ "print '%s %.3f' % (' mole fraction = ',N)\n",
+ "print '%s %.1f %s' % (' \\n total pressure =',P4,' mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " mole fraction = 0.659\n",
+ " \n",
+ " total pressure = 247.8 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molality\n",
+ "#initialisation of variables\n",
+ "P2= 760. #mm of Hg\n",
+ "m2= 2.18*10**-3\n",
+ "v= 23.5 #ml\n",
+ "p= 21.\n",
+ "p1= 79.\n",
+ "#CALCULATIONS\n",
+ "K= P2*55.5/m2\n",
+ "K1= 760*55.5*22.4*10**3/v\n",
+ "m= 55.5*(p*760/(100*K))+55.5*(p1*760/(100*K1))\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' molality =',m,'molal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molality = 1.29e-03 molal\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the percentage of Br in the vapors in steam distillation\n",
+ "#initialisation of variables\n",
+ "Ph= 643. #mm of Hg\n",
+ "Mh= 18. #gms\n",
+ "Po= 117. #mm of Hg\n",
+ "Mo= 157. #gms\n",
+ "#CALCULATIONS\n",
+ "r= Ph*Mh/(Po*Mo)\n",
+ "P= 100*(1/(1+r))\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' percentage =',P,'percent')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " percentage = 61.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the amounts of phases present at 375 and 370 C\n",
+ "#initialisation of variables\n",
+ "n= 1 \n",
+ "n1= 0.5\n",
+ "n3= 0.36\n",
+ "n4= 0.67\n",
+ "n5= 0.34\n",
+ "r= 3\n",
+ "#CALCULATIONS\n",
+ "A= (n-n1)/(n1-n3)\n",
+ "A1= r*(n4-n1)/(n1-n5)\n",
+ "#RESULTS\n",
+ "print '%s %.1f' % (' amount of phase at 375 C = ',A)\n",
+ "print '%s %.1f' % (' \\n amount of phase at 370 C = ',A1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " amount of phase at 375 C = 3.6\n",
+ " \n",
+ " amount of phase at 370 C = 3.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the vapour pressure\n",
+ "#initialisation of variables\n",
+ "m= 100 #gms\n",
+ "m1= 1 #gms\n",
+ "m2= 2 #gms\n",
+ "P= 23.756 #mm of Hg\n",
+ "n= 18.02 \n",
+ "n1= 60.06\n",
+ "n2= 342.3 \n",
+ "#CALCULATIONS\n",
+ "r= ((m1/n1)+(m2/n2))/((m1/n1)+(m2/n2)+(m/n))\n",
+ "dp= P*r\n",
+ "P1= P-dp\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' vapour pressure =',P1,' mm of Hg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " vapour pressure = 23.660 mm of Hg\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the boiling point of solution\n",
+ "#initialisation of variables\n",
+ "kf= 0.514 #K/molal\n",
+ "m= 0.225 #molal\n",
+ "#CALCULATIONS\n",
+ "dT= kf*m\n",
+ "T2=dT+100.\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' boiling point =',T2,' C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " boiling point = 100.116 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - pg 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molecular weight of the solute\n",
+ "#initialisation of variables\n",
+ "kb= 2.64 #C gm\n",
+ "dT= 0.083 #C\n",
+ "m= 120 #gms\n",
+ "W2= 0.764 #gms\n",
+ "#CALCULATIONS\n",
+ "m2= dT/kb\n",
+ "M2= W2*1000/(m2*m)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' molecular weight of solute =',M2,'gms')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molecular weight of solute = 202.5 gms\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of n\n",
+ "#initialisation of variables\n",
+ "T= 176.5 #C\n",
+ "T1= 158.8 #C\n",
+ "Kf= 37.7\n",
+ "W1= 0.522 #gms\n",
+ "W2= 0.0386 #gms\n",
+ "m= 12 #gms\n",
+ "m1= 1 #gm\n",
+ "#CALCULATIONS\n",
+ "m3= (T-T1)/Kf\n",
+ "M2= W2*1000/(m3*W1)\n",
+ "r= M2/(m+m1)\n",
+ "#RESULTS\n",
+ "print '%s %d' % ('value of n = ',r)\n",
+ "print '%s %d %s' %('Molecular weight = ',M2,'gm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of n = 12\n",
+ "Molecular weight = 157 gm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 - pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the triple point of the system\n",
+ "#initialisation of variables\n",
+ "T= 273.2 #K\n",
+ "P= 0.0060 #atm\n",
+ "P1= 1 #atm\n",
+ "H= 3290 #cal\n",
+ "dV= -0.0907 #cc\n",
+ "#CALCULATIONS\n",
+ "dT= T*dV*(P-P1)/H\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' triple point =',dT,'C') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " triple point = 0.0075 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 - pg 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the fraction of impurity in both cases\n",
+ "#initialisation of variables\n",
+ "n= 100.\n",
+ "K= 2.\n",
+ "V= 100. #ml\n",
+ "V2= 1000. #ml\n",
+ "n= 10.\n",
+ "n1= 100.\n",
+ "#CALCULATIONS\n",
+ "x= (K*V/(K*V+(V2/n)))**n\n",
+ "y= (K*V/(K*V+(V2/n1)))**n1\n",
+ "#RESULTS\n",
+ "print '%s %.4f' % (' fraction of impurity = ',x)\n",
+ "print '%s %.4f' % (' \\n fraction of impurity = ',y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " fraction of impurity = 0.0173\n",
+ " \n",
+ " fraction of impurity = 0.0076\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 - pg 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the molecular weight of the protein\n",
+ "#initialisation of variables\n",
+ "T= 27 #C\n",
+ "m= 0.635 #gms\n",
+ "V= 100 #ml\n",
+ "R= 0.08205 #cal/mol K\n",
+ "p= 2.35 #cm\n",
+ "#CALCULATIONS\n",
+ "M= 13.6*76*m*R*(T+273)*1000/(p*V)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' molecular weight =',M,'gms')\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " molecular weight = 68747 gms\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 - pg 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the osmotic pressure\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "R= 0.08205 #cal/mol K\n",
+ "v1= 0.0180#cc\n",
+ "N= 0.9820\n",
+ "T= 273.2\n",
+ "#CALCULATIONS\n",
+ "P= -R*T*math.log(N)/v1\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' osmotic pressure =',P,'atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " osmotic pressure = 22.6 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19 - pg 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the osmotic pressure\n",
+ "#initialisation of variables\n",
+ "kf= 1.86\n",
+ "dT= 0.402 #K\n",
+ "T= 310 #K\n",
+ "R= 0.08205 #cal/mol K\n",
+ "#CALCULATIONS\n",
+ "P= dT*T*R/kf\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' osmotic pressure =',P,'atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " osmotic pressure = 5.50 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20 - pg 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Degrees of ionisation\n",
+ "#initialisation of variables\n",
+ "m= 0.100 #gms\n",
+ "kf= 1.86 #K/gms\n",
+ "dT= 0.300 #K\n",
+ "v= 2\n",
+ "#CALCULATIONS\n",
+ "T= kf*m\n",
+ "i= dT/T\n",
+ "a= (i-1)/(v-1)\n",
+ "#RESULTS\n",
+ "print '%s %.2f' % (' Degrees of ionisation = ',a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Degrees of ionisation = 0.61\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21 - pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the lowering of the freezing point\n",
+ "#initialisation of variables\n",
+ "W= 0.0020 #M\n",
+ "W1= 0.0010 #M\n",
+ "W2= 0.0040 #M\n",
+ "T= 1.86 #C\n",
+ "n= 1 #moles\n",
+ "n1= 1 #moles\n",
+ "n2= 2 #moles\n",
+ "a= 1.122\n",
+ "#CALCULATIONS\n",
+ "dT= T*(W+W1+W2)\n",
+ "I= 0.5*(n**2*W+n1**2*W2+n2**2*W1)\n",
+ "g= 1-(2*a*I**1.5/(3*(W+W1+W2)))\n",
+ "dT1= g*dT\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' lowering the freezing point =',dT1,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " lowering the freezing point = 0.0125 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 - pg 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the activity coefficient of acetone and water\n",
+ "#initialisation of variables\n",
+ "p= 1820 #mm\n",
+ "n= 2.5 #mole percent\n",
+ "f= 0.470\n",
+ "P= 420 #mm\n",
+ "n1= 97.5 #percent\n",
+ "#CALCULATIONS\n",
+ "P1= p*n/(100*760)\n",
+ "F= f/P1\n",
+ "F1= (1-f)*760.*100/(P*n1)\n",
+ "#RESULTS\n",
+ "print '%s %.2f' % (' activity coefficient of acetone = ',F)\n",
+ "print '%s %.2f' % (' \\n activity coefficient of water = ',F1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " activity coefficient of acetone = 7.85\n",
+ " \n",
+ " activity coefficient of water = 0.98\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_6.ipynb b/Physical_Chemsitry/Chapter_6.ipynb
new file mode 100755
index 00000000..5c81a57c
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_6.ipynb
@@ -0,0 +1,711 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b7db16137d946fe9cbf59acb0ec0858aab53c92eb7e66cd0a1bfe1d955619ce0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 - Chemical Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of Kc\n",
+ "#initialisation of variables\n",
+ "d= 3.880 #g l^-1\n",
+ "M= 208.3 #gm\n",
+ "P= 1 #atm\n",
+ "R= 0.08205 #cal/mol K\n",
+ "T= 473.1 #K\n",
+ "#CALCULATIONS\n",
+ "d1= M*P/(R*T)\n",
+ "d2= (d1-d)/d\n",
+ "Kp= d2**2/(1-d2**2)\n",
+ "Kc= Kp/(R*T)\n",
+ "#RESULTS\n",
+ "print '%s %.3e %s' %(' Kc =',Kc,'moles l^-1')\n",
+ "print '%s %.4f %s' %(' Kp =',Kp,'atm')\n",
+ "print '%s %.4f' %('Fraction dissociated = ',d2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Kc = 4.429e-03 moles l^-1\n",
+ " Kp = 0.1719 atm\n",
+ "Fraction dissociated = 0.3830\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the percentage of Pcl5 dissociated\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "P= 10 #atm\n",
+ "Kp= 0.1719\n",
+ "#CALCULATIONS\n",
+ "a= math.sqrt(Kp/(10+Kp))*100\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' percentage =',a,'percent')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " percentage = 13.000 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 354"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of Kp\n",
+ "#initialisation of variables\n",
+ "P= 0.3429 #atm\n",
+ "p0= 0.3153 #atm\n",
+ "#CALCULATIONS\n",
+ "Kp= (2*(P-p0))**2/(2*p0-P)\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' Kp =',Kp,'atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Kp = 1.06e-02 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#initialisation of variables\n",
+ "Kp= 1.06*10**-2 #atm\n",
+ "a= 0.990\n",
+ "#CALCULATIONS\n",
+ "P= Kp*(1-a**2)/(4*a**2)\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' pressure =',P,' atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " pressure = 5.38e-05 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#initialisation of variables\n",
+ "G= 2054.7 #cal\n",
+ "R= 1.9872 #cal/mol K\n",
+ "T= 298.16 #K\n",
+ "#CALCULATIONS\n",
+ "P= 10**(-G/(2.303*T*R))\n",
+ "#RESULTS\n",
+ "print '%s %.5f %s' % (' pressure =',P,'atm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " pressure = 0.03120 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the solubility product constant\n",
+ "#initialisation of variables\n",
+ "T= 25 #C\n",
+ "H= 25.31 #cal\n",
+ "H1= -40.02 #cal\n",
+ "H2= -30.36 #cal\n",
+ "S1= 17.67 #cal deg^-1\n",
+ "S2= 13.17 #cal deg^-1\n",
+ "S3= -22.97 #cal deg^-1\n",
+ "R= 1.987 #cal/mol K\n",
+ "#CALCULATIONS\n",
+ "H3= (H+H1-H2)*1000\n",
+ "S4= S1+S2+S3\n",
+ "G= H3-(273.2+T)*S4\n",
+ "Ka= 10**(-G/(2.303*R*(273.2+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.1e' %(' solubility product constant = ',Ka)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " solubility product constant = 1.8e-10\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the increase in free energy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "T= 25 #C\n",
+ "H= -36430 #cal\n",
+ "S= -4.19 #cal deg^-1\n",
+ "a= 0.1\n",
+ "f= 0.2\n",
+ "R= 1.987 #cal/mol K\n",
+ "#CALCULATIONS\n",
+ "G= H-(273.2+T)*S\n",
+ "Q= a*f/a**2\n",
+ "G1= G+R*(273.2+T)*math.log(Q)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' increase in free energy =',G1, 'cal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " increase in free energy = -34769.8 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the free energy of formation\n",
+ "#initialisation of variables\n",
+ "H= 21600. #cal\n",
+ "S= 50.339 #cal\n",
+ "S1= 49.003 #cal\n",
+ "S2= 45.767 #cal\n",
+ "T= 298.2 #K\n",
+ "#CALCULATIONS\n",
+ "H1= 2*H\n",
+ "S1= 2*S-S1-S2\n",
+ "G= H1-T*S1\n",
+ "Gj= G/(2*1000)\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' free energy of formation =',Gj,'kcal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " free energy of formation = 20.719 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the range of humidity\n",
+ "#initialisation of variables\n",
+ "R= 1.987 #cal/mol K\n",
+ "T= 25. #C\n",
+ "G1= -193.8 #cal\n",
+ "G2= -54.6 #cal\n",
+ "G3= -253.1 #cal\n",
+ "G4= -253.1 #cal\n",
+ "G5= -54.6 #cal\n",
+ "G6= -309.7 #cal\n",
+ "#CALCULATIONS\n",
+ "G= G1+G2-G3\n",
+ "Ph= 10**(-G*10**3/(2.303*R*(273.2+T)))\n",
+ "G0= G4+G5-G6\n",
+ "Ph1= 10**(-G0*10**3/(2.303*R*(273.2+T)))\n",
+ "p= Ph*100./Ph1\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' %(' range of humidity =',p,'percent')\n",
+ "print 'The answers are a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " range of humidity = 1.05 percent\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Ksp\n",
+ "#initialisation of variables\n",
+ "m= 10**-2\n",
+ "m1= 10**-22\n",
+ "G= -22.15 #kcal\n",
+ "G1= -5.81 #kcal\n",
+ "G2= 20.6 #kcal\n",
+ "T= 25 #C\n",
+ "R= 1.987 #cal/mol K\n",
+ "#CALCULATIONS\n",
+ "G3= G-(G1+G2)\n",
+ "Ksp= 10**(G3*10**3/(2.303*R*(273+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.0e' %(' Ksp = ',Ksp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Ksp = 8e-28\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - pg 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat of dissociation and standard free energy of iodine\n",
+ "import numpy\n",
+ "import math\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "import warnings\n",
+ "#initialization of variables\n",
+ "R=1.987\n",
+ "T=1000 #K\n",
+ "T=numpy.array([973.,1073.,1173.,1274.])\n",
+ "kp=numpy.array([.175e-2,1.108e-2,4.87e-2,17.05e-2])\n",
+ "#calculations\n",
+ "Tx=1000./T\n",
+ "logkp=numpy.log10(kp)\n",
+ "slope, intercept = numpy.polyfit(Tx,logkp,1)\n",
+ "dH=-slope*2.303*R*1000.\n",
+ "dH0=dH-1.5*R*T\n",
+ "dG1=-R*T*logkp[1]*2.303\n",
+ "dGt=28720 #cal\n",
+ "dGI=(dGt/1000. + 4.63)/2\n",
+ "#results\n",
+ "print '%s %d %s' %('Heat of dissociation = ',dH,'cal')\n",
+ "print '%s %.2f %s' %('standard free energy of iodine atom = ',dGI,'kcal/mol')\n",
+ "pyplot.plot(Tx,logkp)\n",
+ "pyplot.xlabel('1000/T')\n",
+ "pyplot.ylabel('log Kp')\n",
+ "pyplot.title('Logarithm of Kp for dissociation of Iodine as a function of reciprocal temperature')\n",
+ "pyplot.show()\n",
+ "warnings.filterwarnings(\"ignore\")\n",
+ "print 'The answers are a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of dissociation = 37460 cal\n",
+ "standard free energy of iodine atom = 16.68 kcal/mol\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x70f3750>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Partial pressure\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "T= 2000 #K\n",
+ "P= 1 #atm\n",
+ "G= 41438 #cal\n",
+ "R= 1.987 #cal/mol K\n",
+ "T2= 298.2 #K\n",
+ "T1= 2000 #K\n",
+ "H= 43200 #cal\n",
+ "#CALCULATIONS\n",
+ "Kp= 10**(-G/(2.303*R*T2))\n",
+ "Kp1= Kp*10**(H*(T-T2)/(2.303*R*T1*T2))\n",
+ "p= math.sqrt(Kp1*0.8*0.2)\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' Partial pressure of NO =',p,'atm ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Partial pressure of NO = 7.7e-03 atm \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 - pg 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature required\n",
+ "#initialisation of variables\n",
+ "G0 = 0 #cal\n",
+ "G= 13200. #cal\n",
+ "T1= 298.2\n",
+ "H1= 23100. #cal\n",
+ "#CALCULATIONS\n",
+ "T= H1/((H1/T1)-(G/T1)+(G0/T1))\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Temperature =',T,' K ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Temperature = 695.8 K \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 - pg 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Equilibrium constant\n",
+ "#initialisation of variables\n",
+ "T= 2000 #K\n",
+ "R= 1.987 #cal /mol K\n",
+ "G= 31160 #cal\n",
+ "#CALULATIONS\n",
+ "Kp= 10**(-G/(2.303*R*T))\n",
+ "#RESULTS\n",
+ "print '%s %.2e' % ('Equilibrium constant =',Kp )\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant = 3.94e-04\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17 - pg 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the fraction of methane decomposed\n",
+ "#initialisation of variables\n",
+ "p= 0.08 #atm\n",
+ "#CALCULATIONS\n",
+ "a= (1-p)/(p+1)\n",
+ "#RESULTS\n",
+ "print '%s %.2f' % ('fraction = ',a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction = 0.85\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 - pg 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the enthalpy of the reaction\n",
+ "#initialisation of variables\n",
+ "H= -57240. #cal\n",
+ "T= 2257. #C\n",
+ "Hh= -54.60 #cal\n",
+ "Ho= -38.56 #cal\n",
+ "HO= -57.08 #cal\n",
+ "#CALCULATIONS\n",
+ "H1= H-T*(2*Hh-2*Ho-HO)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Enthalpy =',H1,'cal')\n",
+ "print 'The answers in the textbook are a different due to a rounding off error '"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -113665.0 cal\n",
+ "The answers in the textbook are a different due to a rounding off error \n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19 - pg 375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Enthalpy\n",
+ "#initialisation of variables\n",
+ "H= -57797 #cal\n",
+ "T= 25 #C\n",
+ "Hh= 7.934 #cal\n",
+ "Ho= -6.788 #cal\n",
+ "HO= 6.912 #cal\n",
+ "#CALCULATIONS\n",
+ "H1= 2*H-(T+273.16)*(2*Hh+2*Ho-HO)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Enthalpy =',H1,'cal ')\n",
+ "print 'The answers in the textbook are a different due to a rounding off error '"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy = -114216.5 cal \n",
+ "The answers in the textbook are a different due to a rounding off error \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_7.ipynb b/Physical_Chemsitry/Chapter_7.ipynb
new file mode 100755
index 00000000..d0564a44
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_7.ipynb
@@ -0,0 +1,1029 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3529f6dd0800b2bdaab8573a3a6af2c519dc83ab93935a987777c3348bc812ea"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Electrochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Avagadro number\n",
+ "#initialisation of variables\n",
+ "e= 1.6016*10**-19 #coloumb\n",
+ "F= 96493 #\n",
+ "#CALCULATIONS\n",
+ "N= F/e\n",
+ "#RESULTS\n",
+ "print '%s %.4e %s' % (' Avagadro number = ',N,'molecules/mol')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Avagadro number = 6.0248e+23 molecules/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Time required\n",
+ "#initialisation of variables\n",
+ "m= 1 #gms\n",
+ "M= 63.54 #gms\n",
+ "e= 2 #farady\n",
+ "F= 96493\n",
+ "n= 3\n",
+ "#CALCULATIONS\n",
+ "t= (m/M)*(e*F/n)\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Time =',t,'sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Time = 1012 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the transference number\n",
+ "#initialisation of variables\n",
+ "M= 25.01 #gms\n",
+ "n= 1.0053 #moles\n",
+ "n1= 6.6*10**-5 #moles\n",
+ "e= 1.350*10**-3 #coloumbs\n",
+ "#CALCULATIONS\n",
+ "x= M/n\n",
+ "y= n1*x\n",
+ "nm= y*10**3+e*10**3-(x/10)\n",
+ "t= nm/(e*10**3)\n",
+ "#CALCULATIONS\n",
+ "print '%s %.3f' % (' transference number = ',t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " transference number = 0.373\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the electrokinetic potential\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "x= 0.033 #cm\n",
+ "t= 38.2 #sec\n",
+ "e= 3.2 #v\n",
+ "V= 9*10**-3 #dyne sec cm**-2\n",
+ "k= 78\n",
+ "#CALCULATIONS\n",
+ "v= x/t\n",
+ "u= v/e\n",
+ "S= -300**2*u*V*4*math.pi/k\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' electrokinetic potential =',S,' volt ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " electrokinetic potential = -0.035 volt \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific conductivity\n",
+ "#initialisation of variables\n",
+ "o= 0.999505 #mho cm^-1\n",
+ "k= 0.0128560\n",
+ "i= 97.36 #ohms\n",
+ "I= 117.18 #ohms\n",
+ "#CALCULATIONS\n",
+ "Lsp= k*o\n",
+ "L1sp= k*i/I\n",
+ "#RESULTS\n",
+ "print '%s %.6f %s' % (' specific conductivity =',L1sp,'mho cm^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " specific conductivity = 0.010682 mho cm^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the equivalent conductance of the anion at infinite dilution\n",
+ "#initialisation of variables\n",
+ "A= 388.5\n",
+ "l= 349.8\n",
+ "a= 0.61\n",
+ "m= 0.1 #M\n",
+ "#CALCULATIONS\n",
+ "L= A-l\n",
+ "A1= a*A\n",
+ "Lsp= m*A1/1000.\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' equivalent conductance of the anion at infinite dilution =',Lsp,' mho cm^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " equivalent conductance of the anion at infinite dilution = 2.37e-02 mho cm^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the effective mobility\n",
+ "#initialisation of variables\n",
+ "l= 349.82 \n",
+ "F= 96493.1 #coloumb\n",
+ "#CALCULATIONS\n",
+ "u= l/F\n",
+ "#RESULTS\n",
+ "print '%s %.3e %s' % (' effective mobility =',u,'cm^2 volt sec^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " effective mobility = 3.625e-03 cm^2 volt sec^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the solubility product constant\n",
+ "#initialisation of variables\n",
+ "G1= -7800 #cal\n",
+ "G2= -24600 #cal\n",
+ "G3= -39700 #cal\n",
+ "R= 1.987 #cal/mol K\n",
+ "T= 25 #C\n",
+ "#CALCULATIONS\n",
+ "G= G1+G2-G3\n",
+ "Ksp= 10**(-G/(2.303*R*(273.2+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.1e' % (' solubility product constant = ',Ksp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " solubility product constant = 4.5e-06\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the concentration of hydrogen ion\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "Ka= 6*10**-10\n",
+ "C= 10**-1 #moles l^-1\n",
+ "#CALCULATIONS\n",
+ "C1= math.sqrt(Ka*C)\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' concentration of hydrogen ion =',C1,'moles l^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " concentration of hydrogen ion = 7.7e-06 moles l^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - pg 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the concentration of hydrogen ion\n",
+ "#initialisation of variables\n",
+ "Ka= 1.8*10**-5 \n",
+ "n= 2 #milli moles\n",
+ "v= 45 #ml\n",
+ "n1= 0.5#milli moles\n",
+ "#CALCULATIONS\n",
+ "x= Ka*v*n1/n\n",
+ "C= x/v\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' concentration of hydrogen ion =',C,' moles l^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " concentration of hydrogen ion = 4.5e-06 moles l^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14 - pg 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pH of the solution and activity coefficient\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "a= 2.4*10**-4\n",
+ "Ph= 11.54\n",
+ "#CALCULATIONS\n",
+ "Ph1= -math.log10(a)\n",
+ "a= 10**(-Ph)\n",
+ "#RESULTS\n",
+ "print '%s %.2f' % (' pH of solution = ',Ph1)\n",
+ "print '%s %.1e' % (' \\n activity coefficient = ',a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " pH of solution = 3.62\n",
+ " \n",
+ " activity coefficient = 2.9e-12\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15 - pg 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Gibbs free energy\n",
+ "#initialisation of variables\n",
+ "E= 0.35240 #volts\n",
+ "F= 96493.1 #coloumb\n",
+ "n= 2 #electrons\n",
+ "#CALCULATIONS\n",
+ "G= -n*F*E\n",
+ "#RESULTS\n",
+ "print '%s %d %s' % (' Gibbs free energy =',G,' absolute joules ')\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Gibbs free energy = -68008 absolute joules \n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16 - pg 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Entropy and Enthalpy of the mixture\n",
+ "#initialisation of variables\n",
+ "E= 0.35240 #volts\n",
+ "E1= 0.35321 #volts\n",
+ "E2= 0.35140 #volts\n",
+ "E3=.35252\n",
+ "T= 25. #C\n",
+ "T1= 20. #C\n",
+ "T2= 30. #C\n",
+ "n= 2. #electrons\n",
+ "F= 96493.1 #coloumb\n",
+ "#CALCULATIONS\n",
+ "r= (E-E1)/(T-T1)\n",
+ "r1= (E2-E)/(T2-T)\n",
+ "R= (r+r1)/2\n",
+ "S= n*F*R\n",
+ "H= n*F*((273.16+T)*R-E3)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Entropy =',S,'joules deg^-1')\n",
+ "print '%s %.1f %s' % (' \\n Enthalpy =',H,'joules')\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Entropy = -34.9 joules deg^-1\n",
+ " \n",
+ " Enthalpy = -78446.4 joules\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18 - pg 431"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Gibbs free energy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "v= 0.11834 #volt\n",
+ "F= 96493.1 #coloumb\n",
+ "n= 1 #electron\n",
+ "R= 8.3144 #J/mol K\n",
+ "T= 25 #C\n",
+ "m= 0.1\n",
+ "m1= 0.9862\n",
+ "#CALCULATIONS\n",
+ "G= -n*F*v\n",
+ "G1= 2*R*(273.16+T)*math.log(m/m1)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Gibbs free energy =',G,'joules')\n",
+ "print '%s %d %s' % (' \\n Gibbs free energy =',G1,'joules')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Gibbs free energy = -11419.0 joules\n",
+ " \n",
+ " Gibbs free energy = -11347 joules\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19 - pg 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the potential difference\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "n= 2 #electrons\n",
+ "R= 8.314 #bJ/mol K\n",
+ "F= 96493 #coloumb\n",
+ "T= 25 #C\n",
+ "N2= 3.17*10**-6\n",
+ "N1= 6.13*10**-3\n",
+ "#CALCULATIONS\n",
+ "E= -(R*(273.16+T)*2.3026/(n*F))*math.log10(N2/N1)\n",
+ "#RESULTS\n",
+ "print '%s %.5f %s' % (' potential difference =',E,' volt')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " potential difference = 0.09720 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 20 - pg 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Equilibrium constant\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "E= 0.84 #volts\n",
+ "n= 1 #electron\n",
+ "F= 96500 #coloumb\n",
+ "R= 8.314 #J/mol K\n",
+ "T= 25 #C\n",
+ "#CALCULATIONS\n",
+ "K= math.e**(E*n*F/(R*(273+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.1e' % (' Equilibrium constant =',K)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Equilibrium constant = 1.6e+14\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 21 - pg 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Equilibrium constant\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "E= -0.0029 #volts\n",
+ "V= 0.1 #volts\n",
+ "V1= 0.05 #volts\n",
+ "f= 0.05916 #J/mol coloumb\n",
+ "T= 25. #C\n",
+ "F= 96500 #coloumb\n",
+ "R= 8.314 #J/mol K\n",
+ "#CALCULATIONS \n",
+ "e= E+f*math.log10(V*V1/V1)\n",
+ "K= math.e**(e*F/(R*(273+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.1e' % (' Equilibrium constant =',K)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Equilibrium constant = 8.9e-02\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 22 - pg 438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Standard electrode potential\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "E= 1.0508 #volts\n",
+ "V= 0.3338 #volts\n",
+ "a= 0.0796 \n",
+ "a1= math.sqrt(0.0490)\n",
+ "f= 0.05916 #J/mol coloumb\n",
+ "#CALCULATIONS\n",
+ "V= E+V+f*math.log10(a/a1)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' Standard electrode potential =',V,'volts')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Standard electrode potential = 1.3583 volts\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 23 - pg 438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Standard molar free energy\n",
+ "#initialisation of variables\n",
+ "V= 1.3595 #volts\n",
+ "n= 1 #electron\n",
+ "F= 96493 #coloumb\n",
+ "#CALCULATIONS\n",
+ "G= -n*F*V/4.28\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Standard molar free energy =',G,'cal')\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Standard molar free energy = -30650.1 cal\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 24 - pg 439"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the ion product\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "I=0.0050\n",
+ "E0=.22619\n",
+ "con=.0602\n",
+ "E2=1.05080\n",
+ "R=8.3144\n",
+ "T=298.16 #K\n",
+ "#calculations\n",
+ "E1=E0-con*math.sqrt(I)\n",
+ "E3=-E2+E1\n",
+ "Kw=10**(E3*96493/2.3026/R/T)\n",
+ "#results\n",
+ "print '%s %.3e' %(\"Ion product = \",Kw)\n",
+ "print 'The answer is a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ion product = 9.741e-15\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25 - pg 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Solubility constant\n",
+ "#initialisation of variables\n",
+ "V= -0.658 #volt\n",
+ "V1= -0.3363 #volt\n",
+ "n= 1 #electron\n",
+ "F= 96438 #coloumb\n",
+ "R= 8.314 #j/mol K\n",
+ "T= 25 #C\n",
+ "#CLACULATIONS\n",
+ "V2= V-V1\n",
+ "Ksp= 10**(V2*n*F/(2.303*R*(273.2+T)))\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' Solubility constant =',Ksp,' volt')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Solubility constant = 3.7e-06 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 26 - pg 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cell potential\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "e= 0\n",
+ "e1= -0.37\n",
+ "k= -0.05916 #j/mol\n",
+ "a= 0.02\n",
+ "a1= 0.01\n",
+ "a3=.2\n",
+ "p= 730. #mm of Hg\n",
+ "#CALCULATIONS\n",
+ "E= (e-e1)+k*math.log10(a*math.sqrt(p/760.) /a1/a3)\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' cell potential =',E,'volt') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " cell potential = 0.31 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 27 - pg 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cell potential\n",
+ "#initialisation of variables\n",
+ "V= -0.440 #volt\n",
+ "V1= 0.771 #volt\n",
+ "F= 96500 #coloumb\n",
+ "n=2 #electrons\n",
+ "n1= 1 #electrons\n",
+ "n2= 3 #electrons\n",
+ "#CALCULATIONS\n",
+ "G= -n*F*V\n",
+ "G1= -n1*F*V1\n",
+ "G2= G+G1\n",
+ "V= G2/(n2*F)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' cell potential =',-V,'volt') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " cell potential = -0.0363 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 28 - pg 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cell potential\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "p1=386.6 #atm\n",
+ "p2=1 #atm\n",
+ "f= 2\n",
+ "k= -0.05916 #j/mol\n",
+ "#CALCULATIONS\n",
+ "E= (k/f)*math.log10(p1/p2)\n",
+ "#RESULTS\n",
+ "print '%s %.4f %s' % (' cell potential =',E,'volt')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " cell potential = -0.0765 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 29 - pg 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cell potential\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "c= 10**-7\n",
+ "c1= 1\n",
+ "f= 1\n",
+ "k= -0.05915 #j/mol\n",
+ "#CALCULATIONS\n",
+ "E= (k/f)*math.log10(c/c1)\n",
+ "#RESULTS\n",
+ "print '%s %.5f %s' % (' cell potential =',E,' volt')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " cell potential = 0.41405 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 30 - pg 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the junction potential\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "c= 391.\n",
+ "c1= 129.\n",
+ "f= 1.\n",
+ "k= -0.05915 #j/mol\n",
+ "#CALCULATIONS\n",
+ "E= (k/f)*math.log10(c1/c)\n",
+ "#RESULS\n",
+ "print '%s %.4f %s' % (' junction potential =',E,'volt')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " junction potential = 0.0285 volt\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_8.ipynb b/Physical_Chemsitry/Chapter_8.ipynb
new file mode 100755
index 00000000..c1054064
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_8.ipynb
@@ -0,0 +1,440 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e7ff5ec8c26bca61ce95f7f9a6bfe9182508039293520fdb892a47c60afd9608"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Quantum chemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Wavelength\n",
+ "#initialisation of variables\n",
+ "v= 299.8 #V\n",
+ "e= 4.802*10**-10 #ev\n",
+ "h= 6.624*10**-27 #ergs sec\n",
+ "c= 3*10**10 #cm/sec\n",
+ "#CALCULATIONS\n",
+ "E= e/v\n",
+ "l= h*c*10**8/(2*E)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Wavelength =',l,'A')\n",
+ "print 'The answers are a bit different due to rounding off error in textbook'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Wavelength = 6203.3 A\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the value of numerical coefficient\n",
+ "#initialisation of variables\n",
+ "u= 109677.583 #cm**-1\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' value of numerical coefficient =',u,' cm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " value of numerical coefficient = 109677.6 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the wavelength in both cases\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "h= 6.6234*10**-27 #ergs sec\n",
+ "m= 2.59 #gms\n",
+ "v= 3.35*10**4 #cm sec **-1\n",
+ "e= 4.8*10**-10 #ev\n",
+ "V= 40000. #volts\n",
+ "M= 300. #gms\n",
+ "L= 1836. #A\n",
+ "N= 6*10**23 #molecules\n",
+ "#CALCULATIONS\n",
+ "p= m*v\n",
+ "l= h/p\n",
+ "E= V*e/M\n",
+ "P= math.sqrt(2*E*(1/(L*N)))\n",
+ "L1= h*10**8/P\n",
+ "#RESULTS\n",
+ "print '%s %.2e %s' % (' wavelength =',l,'cm')\n",
+ "print '%s %.4f %s' % (' \\n wavelength =',L1,'A')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " wavelength = 7.63e-32 cm\n",
+ " \n",
+ " wavelength = 0.0614 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the lifetime of this excited state\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "h= 6.624*10**-27 #ergs sec\n",
+ "c= 3*10**10 #cm/sec\n",
+ "u= 5 #cm**-1\n",
+ "#CALCULATIONS \n",
+ "T= h/(h*2*math.pi*c*u)\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' lifetime of this excited state =',T,'sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " lifetime of this excited state = 1.1e-12 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the lifetime\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "V= 2.5*10**4 #m/sec\n",
+ "m= 30 #gms\n",
+ "s= 10*10**-16 #cm**2\n",
+ "N= 6.023*10**23 #molecules\n",
+ "T= 300 #K\n",
+ "k= 8.3*10**7\n",
+ "#CALCULATIONS\n",
+ "t= math.sqrt((m/(math.pi*k*T)))*(V/(4*s*N))\n",
+ "#RESULTS\n",
+ "print '%s %.1e %s' % (' lifetime =',t,' sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " lifetime = 2.0e-10 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the internuclear distances\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "h= 6.6238*10**-27 #ergssec\n",
+ "N= 6.0254*10**23 #molecules\n",
+ "c= 2.9979*10**10\n",
+ "Be= 60.809\n",
+ "mh= 1.00812 #gms\n",
+ "#CALCULATIONS\n",
+ "u= mh/2.\n",
+ "Re= math.sqrt(h*N/(c*8*math.pi**2*Be*u))\n",
+ "#RESULTS\n",
+ "print '%s %.4e %s' % (' internuclear distances =',Re,'cm ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " internuclear distances = 7.4168e-09 cm \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Resonance energy\n",
+ "#initialisation of variables\n",
+ "H= 19.8 #kcal\n",
+ "H1= -0.8 #kcal\n",
+ "H2= -29.4 #kcal\n",
+ "#CALCULATIONS\n",
+ "H3= -85.8\n",
+ "H4= -49.2\n",
+ "H5= -H3+H4\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' Resonance energy =',H5,'cal')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Resonance energy = 36.6 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 500"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the no of bonds\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "R= 1.69 #A\n",
+ "l= 1.49 #A\n",
+ "r= 0.706\n",
+ "#CALCULATIONS\n",
+ "n= 10**((R-l)/r)\n",
+ "#RESULTS\n",
+ "print '%s %.2f' % (' no of bonds = ',n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " no of bonds = 1.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 504"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the lattice energy\n",
+ "#initialisation of variables\n",
+ "N= 6.*10**23 #molecules\n",
+ "R= 2.82 #A\n",
+ "e= 4.8*10**-10 #ev\n",
+ "n= 9.\n",
+ "z= 1.748\n",
+ "#CALCULATIONS\n",
+ "U= (N*z*e**2*(1-(1/n)))*182.2/(R*10**-8*7.63*10**12)\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' lattice energy =',U,'kcal mole**-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " lattice energy = 181.9 kcal mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - pg 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the least energy required for transfer\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "k= 13\n",
+ "e= 4.8*10**-10 #ev\n",
+ "h= 6.624*10**-27 #ergs sec\n",
+ "N= 6.023*10**23 #molecules\n",
+ "l= 1836 #A\n",
+ "#CALCULATIONS\n",
+ "I= e**4*0.080/(l*N*1.28*10**-13*2*k**2*(h/(2*math.pi))**2)\n",
+ "#RESULTS\n",
+ "print '%s %.2f %s' % (' least energy required for transfer=',I,' ev')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " least energy required for transfer= 0.08 ev\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the difference between potentials\n",
+ "#initialisation of variables\n",
+ "i= 54.4 #ev\n",
+ "i1= 24.6 #ev\n",
+ "k= 2.5 \n",
+ "#CALCULATIONS\n",
+ "I= i/(4*k**2)\n",
+ "I1= i1/(4*k**2)\n",
+ "d= I-I1\n",
+ "#RESULTS\n",
+ "print '%s %.1f %s' % (' difference between first and second potential=',d,'ev')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " difference between first and second potential= 1.2 ev\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/Chapter_9.ipynb b/Physical_Chemsitry/Chapter_9.ipynb
new file mode 100755
index 00000000..1a10b96e
--- /dev/null
+++ b/Physical_Chemsitry/Chapter_9.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:39eab768daff11aebdd87a93356bef21d5d2b1bdfeb10c1efcd7ba6d3163e0fd"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 - Statistical Mechanics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Absolute Entropy\n",
+ "#initialisation of variables\n",
+ "import math\n",
+ "T= 298.16 #K\n",
+ "M= 4.003 #gm\n",
+ "S= 2.3151 #cal mol^-1 deg^-1\n",
+ "R= 1.987 #cal/molK\n",
+ "#CALCULATIONS\n",
+ "S1= 2.5*R*math.log(T)+1.5*R*math.log(M)-S\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Absolute Entropy=',S1,'cal mol^-1 deg^-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Absolute Entropy= 30.122 cal mol^-1 deg^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 528"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat required\n",
+ "#initialisation of variables\n",
+ "h= 6.624*10**-27#erg/sec\n",
+ "N= 6.023*10**23\n",
+ "c= 3*10**10 #m/sec\n",
+ "w= 2359.6 #cm**-1\n",
+ "T= 2000 #K\n",
+ "K= 1.380*10**-16\n",
+ "R= 1.987 #cal mol**-1 k**-1\n",
+ "#CALCULATIONS\n",
+ "x= h*c*w/(K*T)\n",
+ "y= 2.71**x\n",
+ "H= 3.5*R+(N*h*c*w/(T*4.184*10**7*(y-1)))\n",
+ "#RESULTS\n",
+ "print '%s %.3f %s' % (' Heat=',H,'cal mol**-1 deg**-1')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat= 7.715 cal mol**-1 deg**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physical_Chemsitry/screenshots/chap11.png b/Physical_Chemsitry/screenshots/chap11.png
new file mode 100755
index 00000000..6ed53889
--- /dev/null
+++ b/Physical_Chemsitry/screenshots/chap11.png
Binary files differ
diff --git a/Physical_Chemsitry/screenshots/chap12.png b/Physical_Chemsitry/screenshots/chap12.png
new file mode 100755
index 00000000..a1675611
--- /dev/null
+++ b/Physical_Chemsitry/screenshots/chap12.png
Binary files differ
diff --git a/Physical_Chemsitry/screenshots/chap13.png b/Physical_Chemsitry/screenshots/chap13.png
new file mode 100755
index 00000000..42833795
--- /dev/null
+++ b/Physical_Chemsitry/screenshots/chap13.png
Binary files differ
diff --git a/Physical_Chemsitry/screenshots/chap3.png b/Physical_Chemsitry/screenshots/chap3.png
new file mode 100755
index 00000000..832091f2
--- /dev/null
+++ b/Physical_Chemsitry/screenshots/chap3.png
Binary files differ
diff --git a/Physical_Chemsitry/screenshots/chap4.png b/Physical_Chemsitry/screenshots/chap4.png
new file mode 100755
index 00000000..e2646978
--- /dev/null
+++ b/Physical_Chemsitry/screenshots/chap4.png
Binary files differ
diff --git a/Physical_Chemsitry/screenshots/chap5.png b/Physical_Chemsitry/screenshots/chap5.png
new file mode 100755
index 00000000..5e065126
--- /dev/null
+++ b/Physical_Chemsitry/screenshots/chap5.png
Binary files differ
diff --git a/Physics_for_BSc(Paper-3)/Chapter1.ipynb b/Physics_for_BSc(Paper-3)/Chapter1.ipynb
new file mode 100755
index 00000000..6dc29562
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter1.ipynb
@@ -0,0 +1,201 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ba3f78351f4be2023ce816790e91ae988fafb883f552e13733bb7da3271b13e0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Electrostatics-Basic concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.1, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=0.053*10**-9; #distance(m)\n",
+ "q1=1.6*10**-19; #charge on electron(C)\n",
+ "q2=1.6*10**-19; #charge on proton(C)\n",
+ "#let x=1/(4*math.pi*epsilon0)\n",
+ "x=9*10**9;\n",
+ "\n",
+ "#Calculation\n",
+ "F=x*q1*q2/(r**2); #force of attraction(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"force of attraction is\",round(F*10**8,1),\"*10**-8 N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force of attraction is 8.2 *10**-8 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=2; #distance(m)\n",
+ "q1plusq2=5*10**-4; #positive charge(C)\n",
+ "#let x=1/(4*math.pi*epsilon0)\n",
+ "x=9*10**9;\n",
+ "F=1; #force(N)\n",
+ "\n",
+ "#Calculation\n",
+ "q1q2=F*(r**2)/x; #product of charges(C**2)\n",
+ "q1minusq2=math.sqrt((q1plusq2**2)-(4*q1q2)); ##difference of charges(C)\n",
+ "twoq1=q1plusq2+q1minusq2;\n",
+ "q1=twoq1/2; #charge on individual sphere(C)\n",
+ "twoq2=q1plusq2-q1minusq2;\n",
+ "q2=twoq2/2; #charge on individual sphere(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"the charges on individual spheres are\",round(q1*10**4,3),\"*10**-4 and\",round(q2*10**4,3),\"*10**-4\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the charges on individual spheres are 4.991 *10**-4 and 0.009 *10**-4\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass of electron(kg)\n",
+ "g=9.8; #acceleration due to gravity(m/sec**2)\n",
+ "q=1.6*10**-19; #charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "F1=m*g; #force by electron(N)\n",
+ "E=F1/(2*q); #intensity of electric field(N/C)\n",
+ "\n",
+ "#Result\n",
+ "print \"intensity of electric field is\",round(E*10**11,3),\"*10**-11 N/C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "intensity of electric field is 2.787 *10**-11 N/C\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=12*10**-2; #distance(m)\n",
+ "q1=2*10**-7; #charge(C)\n",
+ "q2=8.5*10**-8; #charge(C)\n",
+ "#let x=1/(4*math.pi*epsilon0)\n",
+ "x=9*10**9;\n",
+ "\n",
+ "#Calculation\n",
+ "E1=x*q2/(r**2); #intensity at electric field at q1 due to q2(N/C)\n",
+ "E2=x*q1/(r**2); #intensity at electric field at q2 due to q1(N/C)\n",
+ "F=x*q1*q2/(r**2); #force of attraction(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"intensity at electric field at q1 due to q2 is\",round(E1*10**-5,2),\"*10**5 N/C\"\n",
+ "print \"intensity at electric field at q1 due to q2 is\",round(E2*10**-5,2),\"*10**5 N/C\"\n",
+ "print \"force of attraction is\",round(F,4),\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "intensity at electric field at q1 due to q2 is 0.53 *10**5 N/C\n",
+ "intensity at electric field at q1 due to q2 is 1.25 *10**5 N/C\n",
+ "force of attraction is 0.0106 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter10.ipynb b/Physics_for_BSc(Paper-3)/Chapter10.ipynb
new file mode 100755
index 00000000..bbd7bf2e
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter10.ipynb
@@ -0,0 +1,514 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:29243b650c743da1a480be05cc52b4de20f23c7c5b490c9e7425f7139654d6d7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "10: Semiconductor Devices"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.1, Page number 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "rho=1.7*10**-6; #specific resistance of Cu(ohm cm)\n",
+ "w=63.54; #atomic weight of Cu\n",
+ "d=8.96; #density of Cu(g/cm**3)\n",
+ "A=6.025*10**23; #avagadro number\n",
+ "q=1.6*10**-19; #charge on electron(C)\n",
+ "\n",
+ "#Calculation\n",
+ "x=A*d/w; #number of free electrons in unit volume(per cm**3)\n",
+ "sigma=1/rho; #conductivity\n",
+ "mewn=sigma/(x*q); #mobility of electron(cm**2/Vs)\n",
+ "\n",
+ "#Result\n",
+ "print \"mobility of electron is\",round(mewn,2),\"cm**2/Vs\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mobility of electron is 43.27 cm**2/Vs\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.2, Page number 336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #charge on electron(C)\n",
+ "ni=1.6*10**10; #number of charge carriers\n",
+ "mewn=1500; #mobility of negative charge carriers(cm**2/Vs)\n",
+ "mewp=500; #mobility of positive charge carriers(cm**2/Vs)\n",
+ "\n",
+ "#Calculation\n",
+ "sigma=q*ni*(mewn+mewp); #conductivity of silicon(per ohm cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"conductivity of silicon is\",sigma,\"per ohm cm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conductivity of silicon is 5.12e-06 per ohm cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.3, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "w=350*10**-9; #width(m)\n",
+ "E=5*10**5; #electric field intensity(V/m)\n",
+ "\n",
+ "#Calculation\n",
+ "V=E*w; #potential difference(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential difference is\",V,\"V\"\n",
+ "print \"minimum energy required is\",V,\"eV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential difference is 0.175 V\n",
+ "minimum energy required is 0.175 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.4, Page number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I0=1.8*10**-6; #current(A)\n",
+ "V=0.25; #potential difference(V)\n",
+ "e=1.6*10**-19; #charge on electron(C)\n",
+ "eta=1;\n",
+ "k=1.38*10**-23; #boltzmann constant\n",
+ "T=293; #temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "a=round(e*V/(eta*k*T));\n",
+ "I=I0*(math.exp(a)-1); #current through the diode(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current through the diode is\",round(I*10**3),\"mA\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through the diode is 40.0 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.5, Page number 357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vac=230; #voltage(V)\n",
+ "RL=2*10**3; #load resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "Vm=math.sqrt(2)*Vac;\n",
+ "Vdc=Vm/math.pi; #DC voltage(V)\n",
+ "Idc=Vdc/RL; #DC current(A)\n",
+ "Irms=round(Vm/(2*RL),4); #rms value of current(A)\n",
+ "gama=math.sqrt(((Irms/Idc)**2)-1); #ripple factor\n",
+ "Pdc=(Idc**2)*RL; #DC power(W)\n",
+ "Pac=(Irms**2)*RL; #DC power(W)\n",
+ "eta=Pdc*100/Pac; #efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"DC voltage is\",round(Vdc,1),\"V\"\n",
+ "print \"DC current is\",round(Idc*10**3,1),\"mA\"\n",
+ "print \"ripple factor is\",round(gama,2)\n",
+ "print \"answer for ripple factor varies due to rounding off errors\"\n",
+ "print \"efficiency is\",round(eta),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DC voltage is 103.5 V\n",
+ "DC current is 51.8 mA\n",
+ "ripple factor is 1.21\n",
+ "answer for ripple factor varies due to rounding off errors\n",
+ "efficiency is 41.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.6, Page number 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vm=30; #AC voltage(V)\n",
+ "Rf=10; #resistance(ohm)\n",
+ "RL=1500; #load resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "Im=Vm/(Rf+RL); #maximum current(A)\n",
+ "Im=Im*10**3; #maximum current(mA)\n",
+ "Idc=2*Im/math.pi; #DC current(mA)\n",
+ "Irms=Im/math.sqrt(2); #rms current(mA)\n",
+ "Pdc=(Idc**2)*RL/10**-3; #DC power(mW)\n",
+ "Pac=(Irms**2)*(Rf+RL)/10**-3; #AC power(mW)\n",
+ "eta=Pdc*100/Pac; #efficiency(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"DC current is\",round(Idc,2),\"mA\"\n",
+ "print \"answer for DC current varies due to rounding off errors\"\n",
+ "print \"rms current is\",round(Irms,2),\"mA\"\n",
+ "print \"efficiency is\",round(eta,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DC current is 12.65 mA\n",
+ "answer for DC current varies due to rounding off errors\n",
+ "rms current is 14.05 mA\n",
+ "efficiency is 80.5 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.7, Page number 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "alpha=0.99; #amplification factor\n",
+ "\n",
+ "#Calculation\n",
+ "beta=alpha/(1-alpha); #value of beta\n",
+ "\n",
+ "#Result\n",
+ "print \"value of beta is\",beta"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of beta is 99.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.8, Page number 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "alpha=0.9; #amplification factor\n",
+ "IE=4*10**-3; #emitter current(A)\n",
+ "ICO=12*10**-6; #current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "IC=(alpha*IE)+ICO; #collector current(A)\n",
+ "IC=round(IC*10**3,2); #collector current(mA)\n",
+ "IB=IE-(IC*10**-3); #base current(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"collector current is\",IC,\"mA\"\n",
+ "print \"base current is\",IB*10**6,\"micro A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "collector current is 3.61 mA\n",
+ "base current is 390.0 micro A\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.9, Page number 394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=-120; #gain\n",
+ "beta=-0.1; #feedback factor\n",
+ "V=5*10**-3; #input voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "a=A*beta;\n",
+ "Af=round(A/(1+a),1); \n",
+ "ff=20*math.log10(A/Af); #feedback factor(dB)\n",
+ "phis=(1+a)*V; #input voltage(V)\n",
+ "phio=Af*phis; #output voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"feedback factor is\",round(ff,1),\"dB\"\n",
+ "print \"answer for feedback factor varies due to rounding off errors\"\n",
+ "print \"input voltage is\",phis*10**3,\"mV\"\n",
+ "print \"output voltage is\",phio*10**3,\"mV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "feedback factor is 22.3 dB\n",
+ "answer for feedback factor varies due to rounding off errors\n",
+ "input voltage is 65.0 mV\n",
+ "output voltage is -598.0 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.10, Page number 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A1=4000; #gain\n",
+ "A2=8000; #increased gain\n",
+ "beta=0.04; #feedback factor\n",
+ "\n",
+ "#Calculation\n",
+ "Af1=A1/(1+(A1*beta)); \n",
+ "Af2=A2/(1+(A2*beta)); \n",
+ "Af=1/beta; #value of Af\n",
+ "\n",
+ "#Result\n",
+ "print \"values of Af are\",round(Af1,2),\"and\",round(Af2,2)\n",
+ "print \"hence the changes are very small. value of Af is\",Af"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "values of Af are 24.84 and 24.92\n",
+ "hence the changes are very small. value of Af is 25.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10.11, Page number 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=40; #gain\n",
+ "Af=10; #decreased gain\n",
+ "\n",
+ "#Calculation\n",
+ "beta=((A/Af)-1)*100/A; #percentage of feedback(%)\n",
+ "\n",
+ "#Result\n",
+ "print \"percentage of feedback is\",beta,\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage of feedback is 7.5 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter11.ipynb b/Physics_for_BSc(Paper-3)/Chapter11.ipynb
new file mode 100755
index 00000000..cdfa523b
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter11.ipynb
@@ -0,0 +1,1412 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3823c7883d62d9ae64fea382b9f92645401f2140b77356ae18d5124fb244bdec"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "11: Digital principles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.1, Page number 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1001101'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "b=int(a,2); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 77\n"
+ ]
+ }
+ ],
+ "prompt_number": 136
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.2, Page number 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1001.101'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "def parse_bin(s):\n",
+ " t = s.split('.')\n",
+ " return int(t[0], 2) + int(t[1], 2) / 2.**len(t[1])\n",
+ "\n",
+ "n=parse_bin(a); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 9.625\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.3, Page number 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='246'; #octal number\n",
+ "\n",
+ "#Calculation\n",
+ "n=int(a,8); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 166\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.4, Page number 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='136.24'; #octal number\n",
+ "\n",
+ "#Calculation\n",
+ "def parse_bin(s):\n",
+ " t = s.split('.')\n",
+ " return int(t[0], 8) + int(t[1], 8) / 8.**len(t[1])\n",
+ "\n",
+ "n=parse_bin(a); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 94.3125\n"
+ ]
+ }
+ ],
+ "prompt_number": 139
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.5, Page number 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='4FE'; #hexadecimal number\n",
+ "\n",
+ "#Calculation\n",
+ "n=int(a,16); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 1278\n"
+ ]
+ }
+ ],
+ "prompt_number": 140
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.6, Page number 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='10'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "b=int(a,2); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 141
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.7, Page number 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='11111'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "b=int(a,2); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 31\n"
+ ]
+ }
+ ],
+ "prompt_number": 142
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.8, Page number 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=41; #decimal number\n",
+ "\n",
+ "#Calculation\n",
+ "n=bin(a); #binary equivalent\n",
+ "\n",
+ "#Result\n",
+ "print \"binary equivalent is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "binary equivalent is 0b101001\n"
+ ]
+ }
+ ],
+ "prompt_number": 143
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.9, Page number 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=0.65625; #decimal number\n",
+ "\n",
+ "#Calculation\n",
+ "x1=a*2;\n",
+ "n1=int(x1); #carry\n",
+ "x2=(x1-n1)*2;\n",
+ "n2=int(x2); #carry\n",
+ "x3=x2*2;\n",
+ "n3=int(x3); #carry\n",
+ "x4=(x3-n3)*2;\n",
+ "n4=int(x4); #carry\n",
+ "x5=x4*2;\n",
+ "n5=int(x5); #carry\n",
+ "\n",
+ "#Result\n",
+ "print \"since the given decimal number is fractional the binary equivalent will be 0.\",n1,n2,n3,n4,n5"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "since the given decimal number is fractional the binary equivalent will be 0. 1 0 1 0 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 144
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.10, Page number 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='110111.101'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "def parse_bin(s):\n",
+ " t = s.split('.')\n",
+ " return int(t[0], 2) + int(t[1], 2) / 2.**len(t[1])\n",
+ "\n",
+ "n=parse_bin(a); #number in decimal form\n",
+ "\n",
+ "#Result\n",
+ "print \"number in decimal form is\",n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "number in decimal form is 55.625\n"
+ ]
+ }
+ ],
+ "prompt_number": 145
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.11, Page number 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1001'; #binary number\n",
+ "b='1111'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "sum=int(a,2)+int(b,2); #sum of two binary numbers\n",
+ "sum=bin(sum);\n",
+ "\n",
+ "#Result\n",
+ "print \"sum of two binary numbers is\",sum"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "sum of two binary numbers is 0b11000\n"
+ ]
+ }
+ ],
+ "prompt_number": 146
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.12, Page number 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='011'; #binary number\n",
+ "b='101'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "diff=int(b,2)-int(a,2); #difference of two binary numbers\n",
+ "diff=bin(diff);\n",
+ "\n",
+ "#Result\n",
+ "print \"difference of two binary numbers is\",diff"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference of two binary numbers is 0b10\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.13, Page number 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1011'; #binary number\n",
+ "b='0110'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "diff=int(a,2)-int(b,2); #difference of two binary numbers\n",
+ "diff=bin(diff);\n",
+ "\n",
+ "#Result\n",
+ "print \"difference of two binary numbers is\",diff"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference of two binary numbers is 0b101\n"
+ ]
+ }
+ ],
+ "prompt_number": 148
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.14, Page number 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n='010' #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "def complement(n):\n",
+ " size = len(format(n, 'b'))\n",
+ " comp = n ^ ((1 << size) - 1)\n",
+ " return '0b1{0:0{1}b}'.format(comp, size)\n",
+ "\n",
+ "a=complement((0b010))\n",
+ "\n",
+ "#Result\n",
+ "print \"1's complement of the number is\",a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1's complement of the number is 0b101\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.15, Page number 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n='1110' #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "def complement(n):\n",
+ " size = len(format(n, 'b'))\n",
+ " comp = n ^ ((1 << size) - 1)\n",
+ " return '0b{0:0{1}b}'.format(comp, size)\n",
+ "\n",
+ "a=complement((0b1110))\n",
+ "\n",
+ "#Result\n",
+ "print \"1's complement of the number is\",a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1's complement of the number is 0b0001\n"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.16, Page number 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1011'; #binary number\n",
+ "b='1101'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "diff=int(b,2)-int(a,2); #difference of two binary numbers\n",
+ "diff=bin(diff);\n",
+ "\n",
+ "#Result\n",
+ "print \"difference of two binary numbers is\",diff"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference of two binary numbers is 0b10\n"
+ ]
+ }
+ ],
+ "prompt_number": 152
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.17, Page number 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1100'; #binary number\n",
+ "b='1000'; #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "diff=int(b,2)-int(a,2); #difference of two binary numbers\n",
+ "diff=bin(diff);\n",
+ "\n",
+ "#Result\n",
+ "print \"difference of two binary numbers is\",diff"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference of two binary numbers is -0b100\n"
+ ]
+ }
+ ],
+ "prompt_number": 153
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.18, Page number 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n='0101' #binary number\n",
+ "b='1'\n",
+ "\n",
+ "#Calculation\n",
+ "def complement(n):\n",
+ " size = len(format(n, 'b'))\n",
+ " comp = n ^ ((1 << size) - 1)\n",
+ " return '0b1{0:0{1}b}'.format(comp, size)\n",
+ "\n",
+ "a=complement((0b0101))\n",
+ "ans=int(a,2)+int(b,2); #2's complement of number\n",
+ "\n",
+ "#Result\n",
+ "print \"2's complement of number is\",bin(ans)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2's complement of number is 0b1011\n"
+ ]
+ }
+ ],
+ "prompt_number": 154
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.19, Page number 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n='101100' #binary number\n",
+ "b='1'\n",
+ "\n",
+ "#Calculation\n",
+ "def complement(n):\n",
+ " size = len(format(n, 'b'))\n",
+ " comp = n ^ ((1 << size) - 1)\n",
+ " return '0b{0:0{1}b}'.format(comp, size)\n",
+ "\n",
+ "a=complement((0b101100))\n",
+ "ans=int(a,2)+int(b,2); #2's complement of number\n",
+ "\n",
+ "#Result\n",
+ "print \"2's complement of number is\",bin(ans)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2's complement of number is 0b10100\n"
+ ]
+ }
+ ],
+ "prompt_number": 155
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.20, Page number 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=bin(6);\n",
+ "b=bin(2);\n",
+ "\n",
+ "#Calculation\n",
+ "c= int(a,2)-int(b,2); #difference\n",
+ "\n",
+ "#Result\n",
+ "print \"difference is\",bin(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference is 0b100\n"
+ ]
+ }
+ ],
+ "prompt_number": 156
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.21, Page number 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=bin(3);\n",
+ "b=bin(5);\n",
+ "\n",
+ "#Calculation\n",
+ "c=int(a,2)-int(b,2); #difference\n",
+ "\n",
+ "#Result\n",
+ "print \"difference is\",bin(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference is -0b10\n"
+ ]
+ }
+ ],
+ "prompt_number": 157
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.22, Page number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='01101110' #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=hex(int(a,2)); #equivalent hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x6e\n"
+ ]
+ }
+ ],
+ "prompt_number": 158
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.23, Page number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='10110101111011' #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=hex(int(a,2)); #equivalent hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x2d7b\n"
+ ]
+ }
+ ],
+ "prompt_number": 159
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.24, Page number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='1100111111011' #binary number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=hex(int(a,2)); #equivalent hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x19fb\n"
+ ]
+ }
+ ],
+ "prompt_number": 160
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.25, Page number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='11001110001' #integral part of binary number\n",
+ "b='000101111001'; #fractional part of binary number\n",
+ "\n",
+ "#Calculation\n",
+ "c=hex(int(a,2)); #converting into hexadecimal number\n",
+ "d=hex(int(b,2)); #converting into hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",c,\".\",d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x671 . 0x179\n"
+ ]
+ }
+ ],
+ "prompt_number": 161
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.26, Page number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='6B9'; #umber in hexadecimal\n",
+ "\n",
+ "#Calculation\n",
+ "def float_to_binary(num):\n",
+ " exponent=0\n",
+ " shifted_num=num\n",
+ " while shifted_num != int(shifted_num): \n",
+ " shifted_num*=2\n",
+ " exponent+=1\n",
+ " if exponent==0:\n",
+ " return '{0:0b}'.format(int(shifted_num))\n",
+ " binary='{0:0{1}b}'.format(int(shifted_num),exponent+1)\n",
+ " integer_part=binary[:-exponent]\n",
+ " fractional_part=binary[-exponent:].rstrip('0')\n",
+ " return '{0}.{1}'.format(integer_part,fractional_part)\n",
+ "\n",
+ "def floathex_to_binary(floathex):\n",
+ " num = float.fromhex(floathex)\n",
+ " return float_to_binary(num)\n",
+ "\n",
+ "ans=(floathex_to_binary('6B9')); #equivalent binary number \n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent binary number is\",ans "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent binary number is 11010111001\n"
+ ]
+ }
+ ],
+ "prompt_number": 162
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.27, Page number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='6D.3A'; #number in hexadecimal\n",
+ "\n",
+ "#Calculation\n",
+ "def float_to_binary(num):\n",
+ " exponent=0\n",
+ " shifted_num=num\n",
+ " while shifted_num != int(shifted_num): \n",
+ " shifted_num*=2\n",
+ " exponent+=1\n",
+ " if exponent==0:\n",
+ " return '{0:0b}'.format(int(shifted_num))\n",
+ " binary='{0:0{1}b}'.format(int(shifted_num),exponent+1)\n",
+ " integer_part=binary[:-exponent]\n",
+ " fractional_part=binary[-exponent:].rstrip('0')\n",
+ " return '{0}.{1}'.format(integer_part,fractional_part)\n",
+ "\n",
+ "def floathex_to_binary(floathex):\n",
+ " num = float.fromhex(floathex)\n",
+ " return float_to_binary(num)\n",
+ "\n",
+ "ans=(floathex_to_binary('6D.3A')); #equivalent binary number \n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent binary number is\",ans "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent binary number is 1101101.0011101\n"
+ ]
+ }
+ ],
+ "prompt_number": 163
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.28, Page number 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=5000; #decimal number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=hex(a); #equivalent hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x1388\n"
+ ]
+ }
+ ],
+ "prompt_number": 164
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.29, Page number 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=14619; #decimal number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=hex(a); #equivalent hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x391b\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.30, Page number 422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=15101; #decimal number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=hex(a); #equivalent hexadecimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent hexadecimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent hexadecimal number is 0x3afd\n"
+ ]
+ }
+ ],
+ "prompt_number": 166
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.31, Page number 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='4B8'; #hexadecimal number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=int(a,16); #equivalent decimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent decimal number is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent decimal number is 1208\n"
+ ]
+ }
+ ],
+ "prompt_number": 167
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.32, Page number 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='3A4B'; #hexadecimal number\n",
+ "\n",
+ "#Calculation\n",
+ "ans=int(a,16); #equivalent decimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent decimal number is\",ans\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent decimal number is 14923\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 168
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.33, Page number 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='2B6D'; #number in hexadecimal\n",
+ "\n",
+ "#Calculation\n",
+ "ans=int(a,16); #equivalent decimal number\n",
+ "\n",
+ "#Result\n",
+ "print \"equivalent decimal number is\",ans "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent decimal number is 11117\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 11.34, Page number 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a='FC2'; #number in hexadecimal\n",
+ "b='DAB'; #number in hexadecimal\n",
+ "\n",
+ "#Calculation\n",
+ "ans=int(a,16)-int(b,16); #difference of two numbers\n",
+ "ans=hex(ans);\n",
+ "\n",
+ "#Result\n",
+ "print \"difference of two numbers is\",ans"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference of two numbers is 0x217\n"
+ ]
+ }
+ ],
+ "prompt_number": 170
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter2.ipynb b/Physics_for_BSc(Paper-3)/Chapter2.ipynb
new file mode 100755
index 00000000..2fa0f214
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter2.ipynb
@@ -0,0 +1,192 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ff31365c358b779c99b024fa56a9beb40a0947b196550247c290e3f8ef54a35f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "2: Electrostatics-II"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.1, Page number 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "dV=8*10**7; #potential on cloud(V)\n",
+ "dx=500; #height(m)\n",
+ "\n",
+ "#Calculation\n",
+ "E=dV/dx; #electric field intensity(V/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"electric field intensity is\",E/10**4,\"*10**4 V/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electric field intensity is 16.0 *10**4 V/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.2, Page number 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "dV=8000; #potential difference(V)\n",
+ "dx=0.2; #height(m)\n",
+ "q=5*10**-9; #positive charge(C)\n",
+ "\n",
+ "#Calculation\n",
+ "E=dV/dx; #electric field intensity(V/m)\n",
+ "F=q*E; #force acting(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"force acting is\",F*10**4,\"*10**-4 N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force acting is 2.0 *10**-4 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.3, Page number 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=1.6*10**-19; #charge on proton(C)\n",
+ "z=79; #atomic number of gold\n",
+ "#let x=1/(4*pi*epsilon0)\n",
+ "x=9*10**9;\n",
+ "r=6.6*10**-15; #radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "q=z*e; #charge on gold nucleus(C)\n",
+ "V=x*q/r; #potential(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential is\",round(V/10**6,1),\"*10**6 V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential is 17.2 *10**6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2.4, Page number 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=0; #angle on axis(radian)\n",
+ "theta2=90; #angle on perpendicular bisector(degree)\n",
+ "r=1; #distance(m)\n",
+ "p=4.5*10**-10; #dipole moment(C/m)\n",
+ "#let x=1/(4*pi*epsilon0)\n",
+ "x=9*10**9;\n",
+ "\n",
+ "#Calculation\n",
+ "theta2=theta2*math.pi/180; #angle on perpendicular bisector(radian)\n",
+ "V1=x*p*math.cos(theta1)/(r**2); #electric potential on axis(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"electric potential on axis is\",V1,\"V\"\n",
+ "print \"electric potential on perpendicular bisector is 0 V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electric potential on axis is 4.05 V\n",
+ "electric potential on perpendicular bisector is 0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter3.ipynb b/Physics_for_BSc(Paper-3)/Chapter3.ipynb
new file mode 100755
index 00000000..41fd3b12
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter3.ipynb
@@ -0,0 +1,202 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:59e0fed0245970f183161b17c490835692a2ba1742a8550242f21d13537b7e5e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3: Dielectrics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.1, Page number 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=78; #dielectric constant of water\n",
+ "epsilon0=8.9*10**-12; #dielectric permittivity of free space\n",
+ "\n",
+ "#Calculation\n",
+ "epsilon=k*epsilon0; #dielectric permittivity(C**2/Nm2)\n",
+ "chi=epsilon-epsilon0; #dielectric susceptibility(C**2/Nm2)\n",
+ "\n",
+ "#Result\n",
+ "print \"dielectric permittivity is\",epsilon,\"C**2/Nm2\"\n",
+ "print \"dielectric susceptibility is\",chi,\"C**2/Nm2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dielectric permittivity is 6.942e-10 C**2/Nm2\n",
+ "dielectric susceptibility is 6.853e-10 C**2/Nm2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.2, Page number 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "epsilon=15*10**-12; #dielectric permittivity(C**2/Nm2)\n",
+ "A=1; #area of plates(m**2)\n",
+ "q=60*10**-6; #charge(C)\n",
+ "epsilon0=8.9*10**-12; #dielectric permittivity of free space\n",
+ "\n",
+ "#Calculation\n",
+ "sigma=q/A; #surface charge density(C/m**2)\n",
+ "chi=epsilon-epsilon0; #dielectric susceptibility(C**2/Nm2)\n",
+ "E=sigma/epsilon; #electric field intensity(N/C)\n",
+ "P=chi*E; #polarization(C/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"electric field intensity is\",E/10**6,\"*10**6 N/C\"\n",
+ "print \"polarization is\",P*10**6,\"*10**-6 C/m**2\"\n",
+ "print \"susceptibility is\",chi,\"C**2/Nm2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electric field intensity is 4.0 *10**6 N/C\n",
+ "polarization is 24.4 *10**-6 C/m**2\n",
+ "susceptibility is 6.1e-12 C**2/Nm2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.3, Page number 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=5.4; #dielectric constant\n",
+ "E=10**6; #electric field intensity(N/C)\n",
+ "epsilon0=8.9*10**-12; #dielectric permittivity of free space\n",
+ "\n",
+ "#Calculation\n",
+ "D=k*epsilon0*E; #electric displacement(C/m**2)\n",
+ "Ed=(1/2)*k*epsilon0*(E**2); #energy density in dielectric(J/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"electric displacement is\",D,\"C/m**2\"\n",
+ "print \"answer given in the book is wrong\"\n",
+ "print \"energy density in dielectric is\",Ed,\"J/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electric displacement is 4.806e-05 C/m**2\n",
+ "answer given in the book is wrong\n",
+ "energy density in dielectric is 24.03 J/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 3.4, Page number 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "chi=35.4*10**-12; #susceptibility(C**2/Nm2)\n",
+ "epsilon0=8.85*10**-12; #dielectric permittivity of free space\n",
+ "\n",
+ "#Calculation\n",
+ "k=1+(chi/epsilon0); #dielectric constant\n",
+ "epsilon=epsilon0*k; #permittivity(C/Nm**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"dielectric constant is\",k\n",
+ "print \"permittivity is\",epsilon,\"C/Nm**2\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dielectric constant is 5.0\n",
+ "permittivity is 4.425e-11 C/Nm**2\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter4.ipynb b/Physics_for_BSc(Paper-3)/Chapter4.ipynb
new file mode 100755
index 00000000..3a0be628
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter4.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:50315b4dee267422712255a4580dea3156e39933e372f17694b3cb35adb8e098"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "4: Capacitors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.1, Page number 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=6750*10**3; #radius of earth(m)\n",
+ "#let x=4*pi*epsilon0\n",
+ "x=1/(9*10**9); \n",
+ "\n",
+ "#Calculation\n",
+ "C=x*r; #capacitance(F)\n",
+ "C=C*10**6; #capacitance(micro F)\n",
+ "\n",
+ "#Result\n",
+ "print \"capacitance is\",C,\"micro F\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitance is 750.0 micro F\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.2, Page number 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C1=20*10**-6; #capacitance(F)\n",
+ "V1=500; #potential(V)\n",
+ "C2=10*10**-6; #capacitance(F)\n",
+ "V2=200; #potential(V)\n",
+ "\n",
+ "#Calculation\n",
+ "q1=C1*V1; #charge on 1st capacitor(C)\n",
+ "q2=C2*V2; #charge on 2nd capacitor(C)\n",
+ "C=C1+C2; #resultant capacitance(C)\n",
+ "V=(q1+q2)/C; #combined potential(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"combined potential is\",V,\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "combined potential is 400.0 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.3, Page number 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Cp=5; #resultant capacitance in parallel(micro F)\n",
+ "Cs=1.2; #resultant capacitance in series(micro F)\n",
+ "\n",
+ "#Calculation\n",
+ "C1C2=Cp*Cs; #product of capacitance(micro F)\n",
+ "C1_C2=math.sqrt((Cp**2)-(4*C1C2)); #difference of capacitance(micro F)\n",
+ "twoC1=Cp+C1_C2; \n",
+ "C1=twoC1/2; \n",
+ "twoC2=Cp-C1_C2;\n",
+ "C2=twoC2/2;\n",
+ "\n",
+ "#Result\n",
+ "print \"values of capacitors are\",C1,\"micro F and\",C2,\"micro F\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "values of capacitors are 3.0 micro F and 2.0 micro F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.4, Page number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=0.2*10**-6; #capacitance(F)\n",
+ "V=2; #potential(V)\n",
+ "\n",
+ "#Calculation\n",
+ "U=(1/2)*C*(V**2); #energy stored(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy stored is\",U,\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy stored is 4e-07 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.5, Page number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=1; #area of plates(m**2)\n",
+ "k=7; #dielectric constant\n",
+ "d=0.01*10**-2; #distance between plates(m)\n",
+ "V=300; #potential(V)\n",
+ "epsilon0=8.85*10**-12; #dielectric permittivity of free space\n",
+ "\n",
+ "#Calculation\n",
+ "C=k*epsilon0*A/d; #capacitance(F)\n",
+ "E=(1/2)*C*(V**2); #energy stored in capacitor(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy stored in capacitor is\",round(E*10**3,3),\"*10**-3 J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy stored in capacitor is 27.877 *10**-3 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.6, Page number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=2; #area(m**2)\n",
+ "d=1*10**-2; #distance(m)\n",
+ "V0=6000; #potential(V)\n",
+ "V=2000; #potential(V)\n",
+ "epsilon0=8.85*10**-12; #dielectric permittivity of free space\n",
+ "\n",
+ "#Calculation\n",
+ "C0=epsilon0*A/d; #capacitance when there is no dielectric(F)\n",
+ "Q=C0*V0; #charge on each plate(C)\n",
+ "C=Q/V; #capacitance when there is dielectric(F)\n",
+ "k=C/C0; #dielectric constant\n",
+ "E0=V0/d; #electric field intensity with air medium(V/m)\n",
+ "E=V/d; #electric field intensity with dielectric(V/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"capacitance when there is no dielectric is\",C0*10**9,\"nF\"\n",
+ "print \"charge on each plate is\",Q,\"C\"\n",
+ "print \"capacitance when there is dielectric is\",C*10**9,\"nF\"\n",
+ "print \"dielectric constant is\",k\n",
+ "print \"electric field intensity with air medium is\",E0/10**5,\"*10**5 V/m\"\n",
+ "print \"electric field intensity with dielectric is\",E/10**5,\"*10**5 V/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitance when there is no dielectric is 1.77 nF\n",
+ "charge on each plate is 1.062e-05 C\n",
+ "capacitance when there is dielectric is 5.31 nF\n",
+ "dielectric constant is 3.0\n",
+ "electric field intensity with air medium is 6.0 *10**5 V/m\n",
+ "electric field intensity with dielectric is 2.0 *10**5 V/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4.7, Page number 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=5.4; #dielectric constant\n",
+ "E=10**6; #electric field intensity(V/m)\n",
+ "A=50*10**-4; #area(m**2)\n",
+ "epsilon0=8.85*10**-12; #dielectric permittivity of free space\n",
+ "d=5*10**-3; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "u=(1/2)*k*epsilon0*(E**2); #energy density(J/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy density is\",u,\"J/m**3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy density is 23.895 J/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter5.ipynb b/Physics_for_BSc(Paper-3)/Chapter5.ipynb
new file mode 100755
index 00000000..3ad752c1
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter5.ipynb
@@ -0,0 +1,384 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4564535166c2472d72e2dcbe6fdb282dd0ebdfe6b75d04aed6f0238329c6aca1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "5: Magnetostatics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.1, Page number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.7*10**-27; #mass of proton(kg)\n",
+ "q=1.6*10**-19; #charge of proton(C)\n",
+ "KE=6*10**6*q; #kinetic energy of proton(J) \n",
+ "B=2; #intensity of magnetic field(Wb/m**2)\n",
+ "theta=90*math.pi/180; #angle(radian)\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.sqrt(2*KE/m); #velocity(m/s)\n",
+ "Fb=q*v*B*math.sin(theta); #force acting on proton(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"force acting on proton is\",round(Fb*10**11,3),\"*10**-11 N\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force acting on proton is 1.075 *10**-11 N\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.2, Page number 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=6.4*10**6; #radius of earth(m)\n",
+ "P=6.4*10**21; #magnetic moment(Amp m**2)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*(r**2); #area(m**2)\n",
+ "i=P/A; #current(amp)\n",
+ "\n",
+ "#Result\n",
+ "print \"current is\",round(i/10**7),\"*10**7 Amp\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current is 5.0 *10**7 Amp\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.3, Page number 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B0=1.7*10**-5; #magnetic flux density(Wb/m**2)\n",
+ "mew0=4*math.pi*10**-7; \n",
+ "\n",
+ "#Calculation\n",
+ "H=B0/mew0; #magnetic intensity(Amp/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic intensity is\",round(H,1),\"Amp/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic intensity is 13.5 Amp/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.4, Page number 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=30*10**-2; #length(m)\n",
+ "A=10**-4; #area(m**2)\n",
+ "N=300; #number of turns\n",
+ "i=0.032; #current(ampere)\n",
+ "phi=2*10**-6; #magnetic flux(Wb)\n",
+ "mew0=4*math.pi*10**-7; \n",
+ "\n",
+ "#Calculation\n",
+ "B=phi/A; #magnetic flux density(wb/m**2)\n",
+ "H=N*i/l; #magnetising force(amp turns/m)\n",
+ "mew=B/H; #permeability of ion(Wb/Amp m)\n",
+ "mewr=mew/mew0; #relative permeability\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic flux density is\",B*10**2,\"*10**-2 wb/m**2\"\n",
+ "print \"magnetising force is\",H,\"amp turns/m\"\n",
+ "print \"permeability of ion is\",mew*10**4,\"*10**-4 Wb/Amp m\"\n",
+ "print \"relative permeability is\",round(mewr)\n",
+ "print \"answer for relative permeability differs due to round off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic flux density is 2.0 *10**-2 wb/m**2\n",
+ "magnetising force is 32.0 amp turns/m\n",
+ "permeability of ion is 6.25 *10**-4 Wb/Amp m\n",
+ "relative permeability is 497.0\n",
+ "answer for relative permeability differs due to round off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.5, Page number 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M=600; #magnetic moment(cgs units)\n",
+ "V=20; #volume(cm**3)\n",
+ "H=50; #magnetic field(oersteds)\n",
+ "\n",
+ "#Calculation\n",
+ "I=M/V; #intensity of magnetisation(cgs units)\n",
+ "B=H+(4*math.pi*I); #flux density(guass)\n",
+ "\n",
+ "#Result\n",
+ "print \"flux density is\",round(B),\"guass\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flux density is 427.0 guass\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.6, Page number 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=12000; #mass(gm)\n",
+ "d=7.5; #density(g/cm**3)\n",
+ "new=50; #frequency(Hz)\n",
+ "a=3000; #area of hysterisis curve(erg/cm**3)\n",
+ "\n",
+ "#Calculation\n",
+ "V=m/d; #volume of core(cm**3)\n",
+ "El=a*V; #energy loss in 1 cycle(erg)\n",
+ "n=new*60*60; #number of cycles per hour\n",
+ "EL=El*n/10**7; #energy loss per hour(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy loss per hour is\",EL/10**4,\"*10**4 J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy loss per hour is 8.64 *10**4 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.7, Page number 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=8*math.pi; #magnetic flux density(wb/m**2)\n",
+ "H=2000; #magnetic field(amp turn/m)\n",
+ "mew0=4*math.pi*10**-7; \n",
+ "\n",
+ "#Calculation\n",
+ "mewr=B/(mew0*H); #relative permeability\n",
+ "chi=mewr-1; #susceptibility\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptibility is\",chi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptibility is 9999.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5.8, Page number 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #charge on electron(C)\n",
+ "i1=3;\n",
+ "j1=2;\n",
+ "k1=3; #components of vector\n",
+ "i2=3;\n",
+ "j2=4; \n",
+ "k2=0; #components of vector\n",
+ "i3=0;\n",
+ "j3=4;\n",
+ "k3=1; #components of vector\n",
+ "\n",
+ "#Calculation\n",
+ "i4=(j2*k3)-(j3*k2);\n",
+ "j4=(i2*k3)-(i3*k2);\n",
+ "k4=(i2*j3)-(i3*j2); #components of derived vector\n",
+ "i5=i1+i4;\n",
+ "j5=j1+j4;\n",
+ "k5=k1+k4;\n",
+ "F=q*math.sqrt((i5**2)+(j5**2)+(k5**2)); #Lorentz force(N)\n",
+ "\n",
+ "#Result\n",
+ "print \"Lorentz force is\",round(F*10**19,2),\"*10**-19 N\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Lorentz force is 27.67 *10**-19 N\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter6.ipynb b/Physics_for_BSc(Paper-3)/Chapter6.ipynb
new file mode 100755
index 00000000..fe7643f3
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter6.ipynb
@@ -0,0 +1,650 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6eaeb1b666053d6a5e25f6642f9c553eb5c875421649f4bad88cbcf5e3456f43"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "6: Moving charge in electric and magnetic fields"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.1, Page number 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=90-60; #angle(degrees)\n",
+ "N=30; #number of turns\n",
+ "i=10; #current(A)\n",
+ "a=0.2; #length(m)\n",
+ "b=0.1; #breadth(m)\n",
+ "B=8*10**-4; #magnetic field of induction(Wb/m**2)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "tow=N*a*b*B*i*math.sin(theta); #torque on coil(Nm)\n",
+ "\n",
+ "#Result\n",
+ "print \"torque on coil is\",tow*10**3,\"*10**-3 Nm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "torque on coil is 2.4 *10**-3 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.2, Page number 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "ia=10; #current(A)\n",
+ "ib=10; #current(A)\n",
+ "d=0.02; #diameter(m)\n",
+ "\n",
+ "#Calculation\n",
+ "F=mew0*ia*ib/(2*math.pi*d); #force(N/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"force is\",F*10**3,\"*10**-3 N/m\"\n",
+ "print \"force is attractive\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "force is 1.0 *10**-3 N/m\n",
+ "force is attractive\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.3, Page number 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=0.1; #current(A)\n",
+ "N=60; #number of turns\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "R=7*10**-2; #radius(m)\n",
+ "x=(18/2)*10**-2; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "a=mew0*i*N*(R**2);\n",
+ "b=((x**2)+(R**2))**(3/2);\n",
+ "B=2*a/(2*b); #magnetic field of induction(Wb/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field of induction is\",round(B*10**5,1),\"*10**-5 Wb/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field of induction is 2.5 *10**-5 Wb/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.4, Page number 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=32; #current(A)\n",
+ "r=1.5*10**-3; #radius(m)\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "d=1.2*10**-3; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "B1=mew0*i/(2*math.pi*r); #magnetic field on surface(T)\n",
+ "B2=B1*d; #magnetic field at a distance(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field on surface is\",round(B1*10**3,1),\"mT\"\n",
+ "print \"magnetic field at a distance is\",B2*10**3,\"mT\"\n",
+ "print \"answer for magnetic field at a distance given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field on surface is 4.3 mT\n",
+ "magnetic field at a distance is 0.00512 mT\n",
+ "answer for magnetic field at a distance given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.5, Page number 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i0=5.57; #current(A)\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "n=850; #number of turns\n",
+ "l=1.23; #length(m)\n",
+ "\n",
+ "#Calculation\n",
+ "N=5*n/l; #number of turns per cm\n",
+ "B=mew0*i0*N; #magnetic field in solenoid(T)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field in solenoid is\",round(B*10**3,1),\"mT\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field in solenoid is 24.2 mT\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.6, Page number 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=20; #current(A)\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "n=1000; #number of turns\n",
+ "l=1; #length(m)\n",
+ "r=10*10**-2; #radius(m) \n",
+ "theta=90*math.pi/180;\n",
+ "\n",
+ "#Calculation\n",
+ "a=l/2;\n",
+ "b=r/2;\n",
+ "c=(a**2)+(b**2);\n",
+ "costheta1=a/math.sqrt(c);\n",
+ "costheta2=-a/math.sqrt(c);\n",
+ "B1=mew0*n*i*(costheta1-costheta2)/2; #magnetic field induction at the middle(Wb/m**2)\n",
+ "costheta_1=l/math.sqrt((l**2)+(r**2));\n",
+ "costheta_2=round(math.cos(theta));\n",
+ "B2=mew0*n*i*(costheta_1-costheta_2)/2; #magnetic field induction at one end(Wb/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field induction at the middle is\",round(B1*10**2,3),\"*10**-2 Wb/m**2\"\n",
+ "print \"magnetic field induction at one end is\",round(B2*10**3,1),\"mT\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field induction at the middle is 2.501 *10**-2 Wb/m**2\n",
+ "magnetic field induction at one end is 12.5 mT\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.7, Page number 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from eV to J\n",
+ "K=200*q; #kinetic energy(J)\n",
+ "m=9.1083*10**-31; #mass(kg)\n",
+ "B=10**-2; #magnetic field(T)\n",
+ "theta=30*math.pi/180; #angle(radian)\n",
+ "\n",
+ "#Calculation\n",
+ "p=math.sqrt(2*m*K); #momentum(kg m/s)\n",
+ "a=p/(q*B); #radius of path(m)\n",
+ "d=2*math.pi*p*math.cos(theta)/(q*B); #pitch of helix(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of path is\",round(a*10**3,3),\"mm\"\n",
+ "print \"pitch of helix is\",round(d*10**3),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of path is 4.772 mm\n",
+ "pitch of helix is 26.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.8, Page number 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from eV to J\n",
+ "K=20*q; #kinetic energy(J)\n",
+ "m=9.1*10**-31; #mass(kg)\n",
+ "B=10**2; #magnetic field(T)\n",
+ "\n",
+ "#Calculation\n",
+ "v=math.sqrt(2*K/m); #velocity(m/sec)\n",
+ "r=m*v/(q*B); #radius of path(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of path is\",round(r*10**8,2),\"*10**-8 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of path is 15.08 *10**-8 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.9, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=9.1*10**-31; #mass(kg)\n",
+ "B=0.1; #magnetic field(Wb/m**2)\n",
+ "v=10**4; #velocity(m/s)\n",
+ "q=1.6*10**-19; #conversion factor from eV to J\n",
+ "\n",
+ "#Calculation\n",
+ "r=m*v/(q*B); #radius of path(m)\n",
+ "f=v/(2*math.pi*r); #frequency of revolution(rev/sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of path is\",round(r*10**7,2),\"*10**-7 m\"\n",
+ "print \"frequency of revolution is\",round(f/10**9,1),\"*10**9 rev/sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of path is 5.69 *10**-7 m\n",
+ "frequency of revolution is 2.8 *10**9 rev/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.10, Page number 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "s=0.1; #distance(m)\n",
+ "v=3*10**6; #velocity(m/s)\n",
+ "y=2*10**-3; #deflected distance(m)\n",
+ "E=0.18; #static electric field(V/m)\n",
+ "\n",
+ "#Calculation\n",
+ "t=s/v; #time(sec)\n",
+ "ebym=2*y/(E*(t**2)); #e/m of electron(C/kg)\n",
+ "\n",
+ "#Result\n",
+ "print \"e/m of electron is\",ebym,\"C/kg\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e/m of electron is 2e+13 C/kg\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.11, Page number 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "I=5; #current(A)\n",
+ "B=1.2; #magnetic field(T)\n",
+ "t=0.1*10**-2; #thickness(m)\n",
+ "q=1.6*10**-19; #conversion factor from eV to J\n",
+ "n=8.48*10**28; #concentration(electron/m**3)\n",
+ "\n",
+ "#Calculation\n",
+ "VH=I*B/(n*q*t); #hall voltage(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"hall voltage is\",round(VH*10**6,4),\"micro V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hall voltage is 0.4422 micro V\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.12, Page number 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "i=0.5; #current(A)\n",
+ "R=0.1/2; #radius(m)\n",
+ "mew0=4*math.pi*10**-7;\n",
+ "N=200; #number of turns\n",
+ "\n",
+ "#Calculation\n",
+ "B=8*mew0*N*i/(R*math.sqrt(125)); #magnetic field induction(Wb/m**2)\n",
+ "B=round(B,4);\n",
+ "H=B/mew0; #intensity of magnetic field(A/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic field induction is\",B*10**3,\"*10**-3 Wb/m**2\"\n",
+ "print \"intensity of magnetic field is\",round(H),\"A/m**2\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic field induction is 1.8 *10**-3 Wb/m**2\n",
+ "intensity of magnetic field is 1432.0 A/m**2\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.14, Page number 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from eV to J\n",
+ "m=3.3*10**-27; #mass(kg)\n",
+ "t=10**-7; #time(sec)\n",
+ "r=0.3; #radius(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "B=2*math.pi*m/(q*t); #magnetic flux density(Wb/m**2)\n",
+ "v=B*q*r/m; #velocity of particle(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"magnetic flux density is\",round(B,3),\"Wb/m**2\"\n",
+ "print \"velocity of particle is\",round(v/10**7,2),\"*10**7 m/sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "magnetic flux density is 1.296 Wb/m**2\n",
+ "velocity of particle is 1.88 *10**7 m/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6.15, Page number 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "q=1.6*10**-19; #conversion factor from eV to J\n",
+ "i=1; #current(amp)\n",
+ "n=10**28; #concentration(electron/m**3)\n",
+ "r=0.055*10**-2; #radius(m)\n",
+ "rho=1.7*10**-8; #resistivity of Cu(ohm m)\n",
+ "\n",
+ "#Calculation\n",
+ "A=math.pi*(r**2); #area(m**2)\n",
+ "vd=1/(n*q*A); #drift velocity(m/sec)\n",
+ "E=rho*i/A; #electric field(v/m)\n",
+ "\n",
+ "#Result\n",
+ "print \"drift velocity is\",round(vd*10**4,2),\"*10**-4 m/sec\"\n",
+ "print \"electric field is\",round(E*10**2,3),\"*10**-2 v/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "drift velocity is 6.58 *10**-4 m/sec\n",
+ "electric field is 1.789 *10**-2 v/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter7.ipynb b/Physics_for_BSc(Paper-3)/Chapter7.ipynb
new file mode 100755
index 00000000..cfd1e199
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter7.ipynb
@@ -0,0 +1,413 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:df8ccdc39cf4228aa502def88be8b0eaa1a1170d675814e78e23ede418957e6f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "7: Electromagnetic Induction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.1, Page number 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=125; #resistance(ohm)\n",
+ "V=3*10**-4; #potential difference(V)\n",
+ "T=10; #time period(sec)\n",
+ "theta1=16*10**-2; #deflection(m)\n",
+ "theta=5*10**-2; #deflection(m)\n",
+ "\n",
+ "#Calculation\n",
+ "i=V/R; #current(A)\n",
+ "q=T*i*theta/(2*math.pi*theta1); #charge(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"charge is\",round(q*10**6,3),\"*10**-6 C\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "charge is 1.194 *10**-6 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.2, Page number 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=8; #time period(s)\n",
+ "i=2*10**-6; #current(A)\n",
+ "theta1=1;\n",
+ "theta=1;\n",
+ "\n",
+ "#Calculation\n",
+ "q=T*i*theta/(2*math.pi*theta1); #charge(C)\n",
+ "\n",
+ "#Result\n",
+ "print \"charge is\",round(q*10**6,3),\"*10**-6 C\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "charge is 2.546 *10**-6 C\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.3, Page number 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=1.8*10**-2; #length(m)\n",
+ "B=0.5; #magnitude of field(Wb/m**2)\n",
+ "N=200; #number of turns\n",
+ "t=0.8; #time period(sec)\n",
+ "R=12; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "A=l**2; #area of coil(m**2)\n",
+ "phiB=B*A; #magnetic flux in coil(Wb)\n",
+ "e=N*(phiB-0)/t; #induced emf(V)\n",
+ "i=e/R; #current(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"induced emf is\",e,\"V\"\n",
+ "print \"current is\",i*10**4,\"*10**-4 A\"\n",
+ "print \"answers given in the book are wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "induced emf is 0.0405 V\n",
+ "current is 33.75 *10**-4 A\n",
+ "answers given in the book are wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.6, Page number 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "B=100*10**-4; #magnetic field(Wb/m**2)\n",
+ "d=20*10**-2; #diameter(m)\n",
+ "n=10; #number of rotations\n",
+ "\n",
+ "#Calculation\n",
+ "r=d/2; #radius(m)\n",
+ "dAbydt=math.pi*n*(r**2); #area(turns m**2/s)\n",
+ "e=B*dAbydt; #potential difference(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"potential difference is\",round(e*10**3,3),\"mV\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "potential difference is 3.142 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.7, Page number 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=1; #length(m)\n",
+ "B=0.2; #magnetic field(Wb/m**2)\n",
+ "v=0.8; #velocity(m/s)\n",
+ "theta1=60*math.pi/180; #angle(radian)\n",
+ "theta2=45*math.pi/180; #angle(radian)\n",
+ "theta3=30*math.pi/180; #angle(radian)\n",
+ "\n",
+ "#Calculation\n",
+ "e1=B*l*v*math.sin(theta1); #induced emf when B and v are perpendicular(V)\n",
+ "e2=B*l*v*math.sin(theta1)*math.sin(theta2); #induced emf with angle 45 degrees(V)\n",
+ "e3=B*l*v*math.sin(theta1)*math.sin(theta2)*math.sin(theta3); #induced emf with angle 30 degrees(V)\n",
+ "\n",
+ "#Result\n",
+ "print \"induced emf when B and v are perpendicular is\",round(e1,4),\"V\"\n",
+ "print \"induced emf with angle 45 degrees is\",round(e2,3),\"V\"\n",
+ "print \"induced emf with angle 30 degrees is\",round(e3,3),\"V\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "induced emf when B and v are perpendicular is 0.1386 V\n",
+ "induced emf with angle 45 degrees is 0.098 V\n",
+ "induced emf with angle 30 degrees is 0.049 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.8, Page number 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=20; #inductance(H)\n",
+ "i=0.1; #current(A)\n",
+ "\n",
+ "#Calculation\n",
+ "Ub=(1/2)*L*(i**2); #energy stored in inductor(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy stored in inductor is\",Ub,\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy stored in inductor is 0.1 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.9, Page number 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=12; #induced emf(V)\n",
+ "L=53*10**-3; #inductance(H)\n",
+ "R=0.35; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "i=e/R; #current(A)\n",
+ "Ub=(1/2)*L*(i**2); #energy stored in inductor(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy stored in inductor is\",round(Ub,1),\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy stored in inductor is 31.2 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.10, Page number 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N=1250; #number of turns\n",
+ "a=5.2*10**-2; #length(m)\n",
+ "b=9.5*10**-2; #breadth(m)\n",
+ "h=1.3*10**-2; #height(m)\n",
+ "mew0=4*math.pi*10**-7; \n",
+ "\n",
+ "#Calculation\n",
+ "L=(mew0*(N**2)*h*math.log(b/a))/(2*math.pi); #inductance(H)\n",
+ "\n",
+ "#Result\n",
+ "print \"inductance is\",round(L*10**3,1),\"mH\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "inductance is 2.4 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 7.11, Page number 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "N1=500; #number of turns\n",
+ "A=3*10**-3; #area(m**2)\n",
+ "l=0.5; #length(m)\n",
+ "mew0=4*math.pi*10**-7; \n",
+ "N2=8; #number of turns\n",
+ "\n",
+ "#Calculation\n",
+ "M=mew0*N1*N2*A/l; #coefficient of mutual induction(H)\n",
+ "\n",
+ "#Result\n",
+ "print \"coefficient of mutual induction is\",round(M*10**6),\"micro H\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "coefficient of mutual induction is 30.0 micro H\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter8.ipynb b/Physics_for_BSc(Paper-3)/Chapter8.ipynb
new file mode 100755
index 00000000..5ea804c3
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter8.ipynb
@@ -0,0 +1,148 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7c85091bd4e24d60bc3e76c728778479287ddcc4fa6749b5ce2d1adbd2e10621"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "8: Maxwell's equations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.1, Page number 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "K=4.3; #dielectric constant\n",
+ "c=3*10**8; #velocity of light in vacuum\n",
+ "\n",
+ "#Calculation\n",
+ "n=round(math.sqrt(K),2); #refractive index of quartz\n",
+ "v=c/n; #velocity of light in quartz(m/s)\n",
+ "\n",
+ "#Result\n",
+ "print \"refractive index of quartz is\",n\n",
+ "print \"velocity of light in quartz is\",round(v/10**8,2),\"*10**8 m/s\"\n",
+ "print \"answer for velocity given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "refractive index of quartz is 2.07\n",
+ "velocity of light in quartz is 1.45 *10**8 m/s\n",
+ "answer for velocity given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.2, Page number 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "epsilon0=8.87*10**-12; #dielectric permittivity of free space\n",
+ "E=1.2*10**6; #electric field intensity(N/C)\n",
+ "\n",
+ "#Calculation\n",
+ "Ed=(1/2)*epsilon0*(E**2); #energy density(J/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"energy density is\",round(Ed,3),\"J/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy density is 6.386 J/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8.3, Page number 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E0=3*10**6; #dielectric voltage(V/m)\n",
+ "c=3*10**8; #velocity of light in vacuum\n",
+ "mew0=4*math.pi*10**-7; \n",
+ "\n",
+ "#Calculation\n",
+ "Av=(E0**2)/(2*c*mew0); #average value of Poynting vector(W/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"average value of Poynting vector is\",round(Av/10**11,2),\"*10**11 W/m**2\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of Poynting vector is 0.12 *10**11 W/m**2\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/Chapter9.ipynb b/Physics_for_BSc(Paper-3)/Chapter9.ipynb
new file mode 100755
index 00000000..67ff399f
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/Chapter9.ipynb
@@ -0,0 +1,693 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aec700ae8e541452237ee9c0f10eb2b8642d7039520473250339382162750967"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "9: Varying and alternating currents"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.1, Page number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=0.1; #inductance(H)\n",
+ "R=10; #resistance(ohm)\n",
+ "t1=0; #time(sec)\n",
+ "t2=0.002; #time(sec)\n",
+ "t3=0.04; #time(sec)\n",
+ "E=5; #voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "tow=L/R; #time(sec)\n",
+ "a=E/R;\n",
+ "i1=a*(1-math.exp(-t1/tow)); #current for t=0 sec(A)\n",
+ "i2=a*(1-math.exp(-t2/tow)); #current for t=0.002 sec(A)\n",
+ "i3=a*(1-math.exp(-t3/tow)); #current for t=0.04 sec(A)\n",
+ "i4=a*(1-math.exp(-tow/tow)); #current for t=tow sec(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current for t=0 sec is\",i1,\"A\"\n",
+ "print \"current for t=0.002 sec is\",round(i2,2),\"A\"\n",
+ "print \"current for t=0.04 sec is\",round(i3,2),\"A\"\n",
+ "print \"current for t=tow sec is\",round(i4,3),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current for t=0 sec is 0.0 A\n",
+ "current for t=0.002 sec is 0.09 A\n",
+ "current for t=0.04 sec is 0.49 A\n",
+ "current for t=tow sec is 0.316 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.2, Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=0.5; #inductance(H)\n",
+ "R=5; #resistance(ohm)\n",
+ "E=2; #voltage(V)\n",
+ "t=0.2; #time(sec)\n",
+ "\n",
+ "#Calculation\n",
+ "tow=L/R; #time(sec)\n",
+ "a=E/R;\n",
+ "i=a*(1-math.exp(-t/tow)); #current(A)\n",
+ "dibydt=(E-(R*i))/L; #rate of growth of current(A/s)\n",
+ "E=(1/2)*L*(i**2); #energy stored by inductor(J)\n",
+ "\n",
+ "#Result\n",
+ "print \"rate of growth of current is\",round(dibydt,2),\"A/s\"\n",
+ "print \"energy stored by inductor is\",round(E,2),\"J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of growth of current is 0.54 A/s\n",
+ "energy stored by inductor is 0.03 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.3, Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=10; #inductance(H)\n",
+ "R=10; #resistance(ohm)\n",
+ "E=10; #voltage(V)\n",
+ "t1=0.3; #time(sec)\n",
+ "t2=0.5; #time(sec)\n",
+ "t3=1; #time(sec)\n",
+ "\n",
+ "#Calculation\n",
+ "tow=L/R; #time(sec)\n",
+ "i0=E/R;\n",
+ "i1=i0*math.exp(-t1/tow); #current for t=0.3 sec(A)\n",
+ "i2=i0*math.exp(-t2/tow); #current for t=0.5 sec(A)\n",
+ "i3=i0*math.exp(-t3/tow); #current for t=1 sec(A)\n",
+ "\n",
+ "#Result\n",
+ "print \"current for t=0.3 sec is\",round(i1,2),\"A\"\n",
+ "print \"current for t=0.5 sec is\",round(i2,2),\"A\"\n",
+ "print \"current for t=1 sec is\",round(i3,2),\"A\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current for t=0.3 sec is 0.74 A\n",
+ "current for t=0.5 sec is 0.61 A\n",
+ "current for t=1 sec is 0.37 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.4, Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=5; #voltage(V)\n",
+ "C=2*10**-6; #capacitor(F)\n",
+ "R=1*10**6; #resistance(ohm)\n",
+ "t=1; #time(sec)\n",
+ "v=40/100; #decay value(%)\n",
+ "\n",
+ "#Calculation\n",
+ "q=E*C*(1-math.exp(-t/(R*C))); #charge on plates(C)\n",
+ "Vc=q/C; #voltage drop across capacitor(V)\n",
+ "i0=E/R;\n",
+ "i=i0*math.exp(-t/(R*C)); #current in circuit(A)\n",
+ "V=i*R; #voltage drop across resistor(V)\n",
+ "E=(1/2)*C*(Vc**2); #energy stored by capacitor(J)\n",
+ "tow=R*C; #time constant(sec)\n",
+ "t=2*math.log(1/v); #time taken(sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"voltage drop across capacitor is\",round(Vc,2),\"V\"\n",
+ "print \"current in circuit is\",int(i*10**6),\"micro A\"\n",
+ "print \"voltage drop across resistor is\",int(V),\"V\"\n",
+ "print \"energy stored by capacitor is\",round(E*10**6,1),\"*10**-6 J\"\n",
+ "print \"time constant is\",tow,\"sec\"\n",
+ "print \"time taken is\",round(t,4),\"sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage drop across capacitor is 1.97 V\n",
+ "current in circuit is 3 micro A\n",
+ "voltage drop across resistor is 3 V\n",
+ "energy stored by capacitor is 3.9 *10**-6 J\n",
+ "time constant is 2.0 sec\n",
+ "time taken is 1.8326 sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.5, Page number 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=1*10**-3; #inductance(H)\n",
+ "C=0.1*10**-6; #capacitor(F)\n",
+ "R=1; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "a=1/(L*C);\n",
+ "b=(R**2)/(4*(L**2)); \n",
+ "omega=math.sqrt(a-b); #angular frequency(per sec)\n",
+ "Q=omega*L/R; #Q-factor\n",
+ "\n",
+ "#Result\n",
+ "print \"angular frequency is\",round(omega),\"per sec\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"Q-factor is\",round(Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angular frequency is 99999.0 per sec\n",
+ "answer varies due to rounding off errors\n",
+ "Q-factor is 100.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.6, Page number 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#v=7sin(314+pi/6)\n",
+ "v=7;\n",
+ "R=100; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "Im=v/R; #maximum current(A)\n",
+ "Irms=Im/math.sqrt(2); #rms value of current(A)\n",
+ "Vrms=v/math.sqrt(2);\n",
+ "P=Vrms*Irms; #average power(W)\n",
+ "\n",
+ "#Result\n",
+ "print \"maximum current is\",Im,\"A\"\n",
+ "print \"rms value of current is\",round(Irms,2),\"A\"\n",
+ "print \"average power is\",round(P,3),\"W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum current is 0.07 A\n",
+ "rms value of current is 0.05 A\n",
+ "average power is 0.245 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.7, Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#V=7sin(314t+pi/6)\n",
+ "v=7;\n",
+ "omega=314; \n",
+ "L=0.05; #inductance(H)\n",
+ "\n",
+ "#Calculation\n",
+ "XL=omega*L;\n",
+ "betaL=1/XL; #susceptance(per ohm)\n",
+ "i=v*betaL; #current through inductor\n",
+ "Im=i;\n",
+ "Irms=Im/math.sqrt(2); #rms current(A)\n",
+ "P=0; #power loss\n",
+ "\n",
+ "#Result\n",
+ "print \"susceptance is\",round(betaL,4),\"per ohm\"\n",
+ "print \"current through inductor is\",round(i,2),\"sin(314t-math.pi/3)\"\n",
+ "print \"rms current is\",round(Irms,2),\"A\"\n",
+ "print \"power loss is\",P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "susceptance is 0.0637 per ohm\n",
+ "current through inductor is 0.45 sin(314t-math.pi/3)\n",
+ "rms current is 0.32 A\n",
+ "power loss is 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.8, Page number 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#V=7sin(314t+pi/6)\n",
+ "v=7;\n",
+ "omega=314; \n",
+ "C=0.05*10**-6; #capacitance(F)\n",
+ "\n",
+ "#Calculation\n",
+ "XC=1/(omega*C); #value of XC \n",
+ "i=v/XC; #current through capacitor\n",
+ "Im=i;\n",
+ "Irms=Im/math.sqrt(2); #rms current(A)\n",
+ "P=0; #power loss\n",
+ "\n",
+ "#Result\n",
+ "print \"value of XC is\",round(XC/10**3,1),\"K ohm\"\n",
+ "print \"current through capacitor is\",i*10**3,\"*10**-3 sin(314t+2*math.pi/3)\"\n",
+ "print \"rms current is\",int(Irms*10**6),\"micro A\"\n",
+ "print \"power loss is\",P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of XC is 63.7 K ohm\n",
+ "current through capacitor is 0.1099 *10**-3 sin(314t+2*math.pi/3)\n",
+ "rms current is 77 micro A\n",
+ "power loss is 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.9, Page number 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V1=110; #voltage(V)\n",
+ "P=40; #power(W)\n",
+ "V2=230; #voltage(V)\n",
+ "\n",
+ "#Calculation\n",
+ "RB=V1**2/P; #resistance of bulb(ohm)\n",
+ "i=V1/RB; #electric current through bulb(A)\n",
+ "Z=V2/i; #series resistance(ohm)\n",
+ "R=Z-RB; #pure resistance(ohm)\n",
+ "XL=math.sqrt((Z**2)-(RB**2)); \n",
+ "L=XL/314; #inductance(H)\n",
+ "\n",
+ "#Result\n",
+ "print \"pure resistance is\",R,\"ohm\"\n",
+ "print \"inductance is\",round(L,3),\"H\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pure resistance is 330.0 ohm\n",
+ "inductance is 1.769 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.10, Page number 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=10**-6; #capacitance(F)\n",
+ "L=10*10**-3; #inductance(H)\n",
+ "R=1*10**3; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "fr=1/(2*math.pi*math.sqrt(L*C)); #resonant frequency(Hz)\n",
+ "Z=L/(C*R); #impedence(ohm)\n",
+ "\n",
+ "#Result\n",
+ "print \"resonant frequency is\",round(fr/10**3,3),\"KHz\"\n",
+ "print \"impedence is\",Z,\"ohm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonant frequency is 1.592 KHz\n",
+ "impedence is 10.0 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.11, Page number 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=5*10**-6; #capacitance(F)\n",
+ "R=10; #resistance(ohm)\n",
+ "new=50; #frequency(Hz)\n",
+ "\n",
+ "#Calculation\n",
+ "omega=2*math.pi*new;\n",
+ "L=1/(C*(omega**2)); #self inductance(H)\n",
+ "\n",
+ "#Result\n",
+ "print \"self inductance is\",round(L,3),\"H\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "self inductance is 2.026 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.12, Page number 312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=0.1*10**-6; #capacitance(F)\n",
+ "L=1*10**-3; #inductance(H)\n",
+ "R=10; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "omega0=1/math.sqrt(L*C); #resonant frequency(rad/sec)\n",
+ "d=R/L; #difference between two half power points\n",
+ "cosphi=R/R; #power factor at resonance\n",
+ "\n",
+ "#Result\n",
+ "print \"resonant frequency is\",omega0/10**5,\"*10**5 rad/sec\"\n",
+ "print \"power factor at resonance is\",cosphi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonant frequency is 1.0 *10**5 rad/sec\n",
+ "power factor at resonance is 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.13, Page number 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=0.1*10**-6; #capacitance(F)\n",
+ "L=10*10**-3; #inductance(H)\n",
+ "R=10; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "Z=L/(C*R); #impedence at resonance(ohm)\n",
+ "\n",
+ "#Result\n",
+ "print \"impedence at resonance is\",Z/10**4,\"*10**4 ohm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "impedence at resonance is 1.0 *10**4 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9.14, Page number 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=5*10**-6; #capacitance(F)\n",
+ "L=10*10**-3; #inductance(H)\n",
+ "R=10*10**3; #resistance(ohm)\n",
+ "\n",
+ "#Calculation\n",
+ "omegar=1/math.sqrt(L*C); #resonant frequency(Hz)\n",
+ "omegar=round(omegar/10**3,1);\n",
+ "delta_omega=1/(R*C); #bandwidth(Hz)\n",
+ "Q=omegar*10**3/delta_omega; #Q-factor\n",
+ "\n",
+ "#Result\n",
+ "print \"resonant frequency is\",omegar,\"*10**3 Hz\"\n",
+ "print \"bandwidth is\",delta_omega,\"Hz\"\n",
+ "print \"Q-factor is\",Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resonant frequency is 4.5 *10**3 Hz\n",
+ "bandwidth is 20.0 Hz\n",
+ "Q-factor is 225.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/README.txt b/Physics_for_BSc(Paper-3)/README.txt
new file mode 100755
index 00000000..ce06454b
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/README.txt
@@ -0,0 +1,10 @@
+Contributed By: SRIKANTH MOLANGIRI
+Course: others
+College/Institute/Organization: JNAFAU
+Department/Designation: Applied Arts
+Book Title: Physics for BSc(Paper-3)
+Author: A. Sadananda Chary, C. Sivaram, G. Ramadevudu
+Publisher: Telugu Akademi, Hyderabad
+Year of publication: 2011
+Isbn: Not mentioned
+Edition: 1 \ No newline at end of file
diff --git a/Physics_for_BSc(Paper-3)/screenshots/1.png b/Physics_for_BSc(Paper-3)/screenshots/1.png
new file mode 100755
index 00000000..e3c21479
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/screenshots/1.png
Binary files differ
diff --git a/Physics_for_BSc(Paper-3)/screenshots/2.png b/Physics_for_BSc(Paper-3)/screenshots/2.png
new file mode 100755
index 00000000..9e1ecd0f
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/screenshots/2.png
Binary files differ
diff --git a/Physics_for_BSc(Paper-3)/screenshots/3.png b/Physics_for_BSc(Paper-3)/screenshots/3.png
new file mode 100755
index 00000000..744a6842
--- /dev/null
+++ b/Physics_for_BSc(Paper-3)/screenshots/3.png
Binary files differ
diff --git a/Power_Electronics/Chapter10.ipynb b/Power_Electronics/Chapter10.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/Power_Electronics/Chapter10.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter10_1.ipynb b/Power_Electronics/Chapter10_1.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/Power_Electronics/Chapter10_1.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter10_2.ipynb b/Power_Electronics/Chapter10_2.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/Power_Electronics/Chapter10_2.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter10_3.ipynb b/Power_Electronics/Chapter10_3.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/Power_Electronics/Chapter10_3.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter11.ipynb b/Power_Electronics/Chapter11.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/Power_Electronics/Chapter11.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter11_1.ipynb b/Power_Electronics/Chapter11_1.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/Power_Electronics/Chapter11_1.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter11_2.ipynb b/Power_Electronics/Chapter11_2.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/Power_Electronics/Chapter11_2.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter11_3.ipynb b/Power_Electronics/Chapter11_3.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/Power_Electronics/Chapter11_3.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter12.ipynb b/Power_Electronics/Chapter12.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/Power_Electronics/Chapter12.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter12_1.ipynb b/Power_Electronics/Chapter12_1.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/Power_Electronics/Chapter12_1.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter12_2.ipynb b/Power_Electronics/Chapter12_2.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/Power_Electronics/Chapter12_2.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter12_3.ipynb b/Power_Electronics/Chapter12_3.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/Power_Electronics/Chapter12_3.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter13.ipynb b/Power_Electronics/Chapter13.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/Power_Electronics/Chapter13.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter13_1.ipynb b/Power_Electronics/Chapter13_1.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/Power_Electronics/Chapter13_1.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter13_2.ipynb b/Power_Electronics/Chapter13_2.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/Power_Electronics/Chapter13_2.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter13_3.ipynb b/Power_Electronics/Chapter13_3.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/Power_Electronics/Chapter13_3.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter14.ipynb b/Power_Electronics/Chapter14.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/Power_Electronics/Chapter14.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter14_1.ipynb b/Power_Electronics/Chapter14_1.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/Power_Electronics/Chapter14_1.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter14_2.ipynb b/Power_Electronics/Chapter14_2.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/Power_Electronics/Chapter14_2.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter14_3.ipynb b/Power_Electronics/Chapter14_3.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/Power_Electronics/Chapter14_3.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter2.ipynb b/Power_Electronics/Chapter2.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/Power_Electronics/Chapter2.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter2_1.ipynb b/Power_Electronics/Chapter2_1.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/Power_Electronics/Chapter2_1.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter2_2.ipynb b/Power_Electronics/Chapter2_2.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/Power_Electronics/Chapter2_2.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter2_3.ipynb b/Power_Electronics/Chapter2_3.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/Power_Electronics/Chapter2_3.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter3.ipynb b/Power_Electronics/Chapter3.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/Power_Electronics/Chapter3.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter3_1.ipynb b/Power_Electronics/Chapter3_1.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/Power_Electronics/Chapter3_1.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter3_2.ipynb b/Power_Electronics/Chapter3_2.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/Power_Electronics/Chapter3_2.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter3_3.ipynb b/Power_Electronics/Chapter3_3.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/Power_Electronics/Chapter3_3.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter4.ipynb b/Power_Electronics/Chapter4.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/Power_Electronics/Chapter4.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter4_1.ipynb b/Power_Electronics/Chapter4_1.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/Power_Electronics/Chapter4_1.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter4_2.ipynb b/Power_Electronics/Chapter4_2.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/Power_Electronics/Chapter4_2.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter4_3.ipynb b/Power_Electronics/Chapter4_3.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/Power_Electronics/Chapter4_3.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter5.ipynb b/Power_Electronics/Chapter5.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/Power_Electronics/Chapter5.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter5_1.ipynb b/Power_Electronics/Chapter5_1.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/Power_Electronics/Chapter5_1.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter5_2.ipynb b/Power_Electronics/Chapter5_2.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/Power_Electronics/Chapter5_2.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter5_3.ipynb b/Power_Electronics/Chapter5_3.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/Power_Electronics/Chapter5_3.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter6.ipynb b/Power_Electronics/Chapter6.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/Power_Electronics/Chapter6.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter6_1.ipynb b/Power_Electronics/Chapter6_1.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/Power_Electronics/Chapter6_1.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter6_2.ipynb b/Power_Electronics/Chapter6_2.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/Power_Electronics/Chapter6_2.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter6_3.ipynb b/Power_Electronics/Chapter6_3.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/Power_Electronics/Chapter6_3.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter7.ipynb b/Power_Electronics/Chapter7.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/Power_Electronics/Chapter7.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter7_1.ipynb b/Power_Electronics/Chapter7_1.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/Power_Electronics/Chapter7_1.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter7_2.ipynb b/Power_Electronics/Chapter7_2.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/Power_Electronics/Chapter7_2.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter7_3.ipynb b/Power_Electronics/Chapter7_3.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/Power_Electronics/Chapter7_3.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter8.ipynb b/Power_Electronics/Chapter8.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/Power_Electronics/Chapter8.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter8_1.ipynb b/Power_Electronics/Chapter8_1.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/Power_Electronics/Chapter8_1.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter8_2.ipynb b/Power_Electronics/Chapter8_2.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/Power_Electronics/Chapter8_2.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter8_3.ipynb b/Power_Electronics/Chapter8_3.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/Power_Electronics/Chapter8_3.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter9.ipynb b/Power_Electronics/Chapter9.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/Power_Electronics/Chapter9.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter9_1.ipynb b/Power_Electronics/Chapter9_1.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/Power_Electronics/Chapter9_1.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter9_2.ipynb b/Power_Electronics/Chapter9_2.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/Power_Electronics/Chapter9_2.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Chapter9_3.ipynb b/Power_Electronics/Chapter9_3.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/Power_Electronics/Chapter9_3.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_1.ipynb b/Power_Electronics/Power_electronics_ch_1.ipynb
new file mode 100755
index 00000000..7a715072
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_1.ipynb
@@ -0,0 +1,449 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Power Diodes And Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.1, Page No. 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# stored charge and peak reverse current\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "t = 2.5*10**-6 # reverese recovery time to diode\n",
+ "di_by_dt = 35*10**6 # di/dt in A/S\n",
+ "\n",
+ "#Calculations\n",
+ "Q= 0.5*(t**2)*di_by_dt\n",
+ "I= math.sqrt(2*Q*di_by_dt)\n",
+ "\n",
+ "#result\n",
+ "print(\"(a) Stored charge\\n Q = %.3f * 10^-6 C\\n\\n(b) Peak reverse current\\nI = %.1f A\"%(Q*10**6,I))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Stored charge\n",
+ " Q = 109.375 * 10^-6 C\n",
+ "\n",
+ "(b) Peak reverse current\n",
+ "I = 87.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.2, Page No.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Vrrm rating for diode in full wave rectifire\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "V= 12 # secondary peak voltage\n",
+ "sf = 1.4 # safety factor\n",
+ "\n",
+ "#calculations\n",
+ "# For fullwave rectifier with transformer secondary voltage 12-0-12, each diode will experience Vrrm equal to 2 x sqrt(2)x 12\n",
+ "r = math.sqrt(2)\n",
+ "r = math.floor(r*1000)/1000 \n",
+ "V = 2*r*V # Actual value of Vrrm for each diode\n",
+ "Vrrm= V*sf\n",
+ "\n",
+ "# result\n",
+ "print(\"Vrrm rating for each diode with safety factor of %.1f is %.2fV\\n\\n\"%(sf,Vrrm))\n",
+ "#Answer in the book for Vrrm rating is wrong\n",
+ "\n",
+ "#%pylab inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "from numpy import arange,sin,pi\n",
+ "\n",
+ "#fig -1\n",
+ "t = arange(0.0,4,0.01)\n",
+ "S = sin(math.pi*t)\n",
+ "plt.subplot(411)\n",
+ "plt.title(\"Secondary Voltage\")\n",
+ "plt.plot(t,S)\n",
+ "#fig -2\n",
+ "plt.subplot(412)\n",
+ "plt.title(\"Load Voltage\")\n",
+ "t1 = arange(0.0,1,0.01)\n",
+ "t2 = arange(1.0,2.0,0.01)\n",
+ "t3 = arange(2.0,3.0,0.01)\n",
+ "t4 = arange(3.0,4.0,0.01)\n",
+ "s1 = sin((pi*t1))\n",
+ "s2 = sin((pi*t1))\n",
+ "s3 = sin(pi*t1)\n",
+ "s4 = sin(pi*t1)\n",
+ "\n",
+ "plt.plot(t1,s1)\n",
+ "plt.plot(t2,s2)\n",
+ "plt.plot(t3,s3)\n",
+ "plt.plot(t4,s4)\n",
+ "#fig -3\n",
+ "plt.subplot(413)\n",
+ "plt.title(\"Voltage across D1\")\n",
+ "plt.axis([0,4,0,1])\n",
+ "plt.plot(t1,s1)\n",
+ "plt.plot(t3,s3)\n",
+ "#fig -4\n",
+ "plt.subplot(414)\n",
+ "plt.title(\"Voltage across D2\")\n",
+ "plt.axis([0,4,-1,0])\n",
+ "s2 = sin((pi*t1)-pi)\n",
+ "s4 = sin(pi*t1-pi)\n",
+ "plt.plot(t2,s2)\n",
+ "plt.plot(t4,s4)\n",
+ "#Result\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vrrm rating for each diode with safety factor of 1.4 is 47.51V\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ntYOxsTEMDQ0RHByM9PR0AOzixbaczJMfakhJSUHDj5Y3GjVqhJSUFGhpaeHQoUPYsmULLC0t0atX\nL17cEx8AACAASURBVDx+zNJvrF27FkSEtm3bwtnZGTvfeclIy/ulVyMjoxLPE1Gl+uGp3ii9jKOP\njw+aNGkCOzs7TJo0Cb/++qtChPOoL6NGjcLu3buxd+9edO/eHSYmJgAAS0tLxMfHi9slJCTA0tJS\nYh8fu6fu27cPJ06cwNmzZ/HmzRvExcWJr3xMTEygqalZ6i70PQ0bNkSnTp2QkZEhPrKzs/HLx4ER\nAAoKCjBgwADMmzcPr169QkZGBnx8fMSG09rautwrrQ91W1lZ4dlH/tjPnj0T3/l27doVZ86cwYsX\nL9C8eXNMmMAK7JiZmWHbtm1ITk7G1q1bMXXqVDytRErfY8eOwczMDM2aNStTGw+P3H7+PXr0wOPH\njxETE4MFCxYAACZNmoRJH+zeBgYGIiYmBnfv3kWrVq3kHZJHzRk1ahT+/vtv/P7772JPLwAYNmwY\nli9fjrS0NKSlpWHp0qUYWYYHjZmZGWJjY8WPc3JyUKdOHRgZGSE3NxcLFy4Un6tVqxb69+8Pf39/\n5OfnIyoqCnv27BEbu549eyI6Ohp79+5FUVERioqKcP36dURFRZUat7CwEIWFhahfvz40NDQQEhIi\n3tAFgPHjx2Pnzp34999/UVxcjOTkZPEVO1Dy6trHxwfR0dE4cOAAhEIhDh06hKioKPTq1QuvXr1C\nUFAQcnNzUbt2bWhra6PWuw3lw4cPi50iDAwMIBAIyvWUej/my5cvERgYiKVLl2LVqv88vUQiEd6+\nfQuhUAiRSISCggKIRKIy++OpIZCKCQkJoWbNmpGdnR2tXr1aYpvp06eTnZ0dubi40C0OkvxUpDEs\nLIz09PTE+YqWLSsnEZiSGDt2LJmampKzs3OZbbicRy8vLzIyMqLRo0eLdb59+5ZmzJhBFhYWZGFh\nQTNnzqQzZ86Qnp4e2draUu3atcVzGRQURA0bNiQDAwNat24d5eTkUJ8+fUhXV5dsbGxo9+7dpKGh\nQbGxsURElJqaSj179iQ9PT1q27YtzZ8/n7p06SLW8/jxY+rZsyeZmJiQsbExdenShe7evSs+n5CQ\nQF5eXuTo6EgWFhakq6tLBgYGNHLkSBo2bBgtXryYiNicmpubU926dUlbW5vs7OzozJkz4ve8ffv2\n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\nYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x83981d0>"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.3, Page No. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average, peak and rms current\n",
+ "\n",
+ "import math\n",
+ "#variable declaration(from the waveform)\n",
+ "Ip = 20.0 # Peak current\n",
+ "\n",
+ "#calculations\n",
+ "Iavg = (Ip*1.0)/3.0\n",
+ "Irms = math.sqrt((Ip**2)*1.0/3.0)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Peak Current = %d A\\nAverage Current = %.3f A\\nrms Current = %.3f A\"%(Ip,Iavg,Irms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak Current = 20 A\n",
+ "Average Current = 6.667 A\n",
+ "rms Current = 11.547 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.4, Page No. 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#power BJT\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "Vcc =220.0 # collector voltage\n",
+ "Vce_sat = 1.0 # Vce saturation voltage\n",
+ "Rb =6.0 # base resisror\n",
+ "Rl = 8.0 # load resisotr\n",
+ "hfe = 15.0 # gain\n",
+ "Vbe = 0.7 # base-emiter voltage drop\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "Ic = (Vcc-Vce_sat)/Rl\n",
+ "Ib=Ic/hfe\n",
+ "#(b)\n",
+ "Vbb= Ib*Rb+Vbe\n",
+ "#(c)\n",
+ "Pc = Ic*Vce_sat\n",
+ "Pb = Ib*Vbe\n",
+ "Pt = Pc+Pb\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Base current, Ib = %.3f A\\n(b) Vbb = %.2f V\\n(c) Total power dissipation in BJT = %.4f W\"%(Ib,Vbb,Pt))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Base current, Ib = 1.825 A\n",
+ "(b) Vbb = 11.65 V\n",
+ "(c) Total power dissipation in BJT = 28.6525 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.5, Page No. 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Load current and losses in BJT\n",
+ "\n",
+ "import math\n",
+ "# variable declaration(with reference to example 1.4)\n",
+ "Vbb_org = 11.65 # original Vbb\n",
+ "fall =0.85 # 85% fall in original value\n",
+ "Vce_sat = 1.0 # Vce saturation voltage\n",
+ "Rb =6.0 # base resisror\n",
+ "hfe = 15.0 # gain\n",
+ "Vbe = 0.7 # base-emiter voltage drop\n",
+ "\n",
+ "\n",
+ "#calculations\n",
+ "Vbb = fall* Vbb_org\n",
+ "Ib = (Vbb-Vbe)/Rb\n",
+ "Ic = Ib*hfe\n",
+ "Pc =Ic*Vce_sat\n",
+ "Pb = Ib* Vbe\n",
+ "Pt = Pc+Pb\n",
+ "\n",
+ "#Result\n",
+ "print(\"Load current = %.3f A\\nLosses in BJT = %.2f W\"%(Ib,Pt))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Load current = 1.534 A\n",
+ "Losses in BJT = 24.08 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.6, Page No. 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Power loss in BJT\n",
+ "\n",
+ "import math\n",
+ "#variable declaration(with reference to example 1.4)\n",
+ "Vcc = 240 # New value of collector current\n",
+ "Ic = 27.375 # collector current,from example 1.4\n",
+ "Pb = 1.2775 # base power dissipation,from example 1.4\n",
+ "Rl = 8.0 # load resisotr\n",
+ "\n",
+ "#Calculations\n",
+ "Vce = Vcc-(Ic*Rl)\n",
+ "Pc = Vce* Ic\n",
+ "Pt = Pb+ Pc\n",
+ "\n",
+ "#result\n",
+ "print(\"Total power dissipation = %.4f W\"%Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total power dissipation = 576.1525 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.7, Page No. 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# BJT switching frequency\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "# variable declaration\n",
+ "I = 80 # maximum current, from swiching characteristics\n",
+ "t1 = 40 *10**-6 # rise time, from swiching characteristics\n",
+ "t2 = 60* 10**-6 # falll time, from swiching characteristics\n",
+ "V = 200 # collector-emitter voltage\n",
+ "Pavg =250 # average power loss\n",
+ "\n",
+ "\n",
+ "#calculations\n",
+ "# switching ON\n",
+ "ic = I/t1\n",
+ "def f(x):\n",
+ " return (ic*x)*(V-(V/t1)*x)\n",
+ "t_lower =0\n",
+ "t_upper = t1\n",
+ "val_on = quad(f,t_lower,t_upper)\n",
+ "\n",
+ "# switching OFF\n",
+ "ic = I-I/t1\n",
+ "Vc = V/t2\n",
+ "def f1(x):\n",
+ " return (I-(I/t2)*x)*(Vc*x)\n",
+ "t_lower =0\n",
+ "t_upper = t2\n",
+ "val_off = quad(f1,t_lower,t_upper)\n",
+ "\n",
+ "loss= val_on[0]+val_off[0]\n",
+ "loss= math.floor(loss*10000)/10000\n",
+ "f =Pavg/loss\n",
+ "\n",
+ "# Result\n",
+ "#print(\"(a) Switching ON:\\nEnergy losses during switching on = %.4f J\"%(val_on[0]))\n",
+ "#print(\"\\n(b)Switching OFF\\nEnergy losses during switching off of BJT =%.2f J\"%(val_off[0]))\n",
+ "print(\"\\nSwitching frequency = %.1f Hz\"%f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Switching frequency = 937.7 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 1.8, Page No. 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Turn ON loss of power transistor\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vmax = 300 # voltage during start\n",
+ "Imax = 200 # full current after start\n",
+ "t = 1* 10**-6 # starting time \n",
+ "\n",
+ "#calculation\n",
+ "E_loss = Vmax*Imax*t/6 #formula\n",
+ "\n",
+ "#Result\n",
+ "print(\"Energy loss = %.2f Joules\"%E_loss)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy loss = 0.01 Joules\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_10.ipynb b/Power_Electronics/Power_electronics_ch_10.ipynb
new file mode 100755
index 00000000..a1e99a45
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_10.ipynb
@@ -0,0 +1,283 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Power Supplies"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 10.1, Page No. 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Voltage regulation and % change in output voltage per unit of load current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vfl = 24 # full load voltage\n",
+ "Vnl = 24.5 # no load voltage\n",
+ "Ifl = 2 # full load current\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "VR = (Vnl-Vfl)/Vfl\n",
+ "#(b)\n",
+ "x = VR*100/Ifl\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Voltage regulation = %.4f or %.2f%%\\n(b) %%tage change in output voltage per unit load current = %.2f%%\"%(VR,VR*100,x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Voltage regulation = 0.0208 or 2.08%\n",
+ "(b) %tage change in output voltage per unit load current = 1.04%\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 10.2, Page No. 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Redulation in percent V\n",
+ "\n",
+ "\n",
+ "import math\n",
+ "Vout = 0.3 # change in output voltage when input change\n",
+ "Vin = 4 # input voltage change\n",
+ "V = 15 # rated ouutput voltage\n",
+ "\n",
+ "#calculations\n",
+ "lr = (Vout/V)*100/Vin\n",
+ "print(\"%% line regulation = %.1f%% V\"%lr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "% line regulation = 0.5% V\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 10.3, Page No. 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output voltage, load current, zener curretn\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vi = 15.0 # input voltage\n",
+ "beta_dc = 50.0 # transistor gain\n",
+ "Rl = 1000.0 # load resistor\n",
+ "Vz = 6.0 # zener voltage\n",
+ "Ri = 500.0 # input voltage\n",
+ "Vbe = 0.7 # voltage drop across transistor base-emitter\n",
+ "\n",
+ "#Calculations\n",
+ "Vo = Vz-Vbe\n",
+ "Il = Vo/Rl\n",
+ "Vce = Vi-Vo\n",
+ "I = (V-Vz)/Ri\n",
+ "Ib = Il/beta_dc\n",
+ "Iz = I-Ib\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vo = %.1fV\\nLoad current = %.1f mA\\nZener current = %.3f mA\"%(Vo,Il*1000,Iz*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vo = 5.3V\n",
+ "Load current = 5.3 mA\n",
+ "Zener current = 17.894 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 10.4, Page No. 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#output voltage(referring fig.10.2)\n",
+ "\n",
+ "import math\n",
+ "Vz = 6.0 # zener voltage\n",
+ "R1 = 10.0*10**3 # resistance 1\n",
+ "R2 = 15.0*10**3 # resistance 2\n",
+ "\n",
+ "#Calculations\n",
+ "Vo = (1+(R2/R1))*Vz\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vo = %d V\"%Vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vo = 15 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 10.5, Page No. 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# finding Vo, Io, Ic (referring fig.10.1)\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vz = 9.0 # zener voltage\n",
+ "R1 = 1.5*10**3 # resistance 1\n",
+ "R2 = 3.0*10**3 # resistance 2, value used in calculations\n",
+ "Rl = 2.0*10**3 # load resistance\n",
+ "Rs = 200 # source resistance\n",
+ "Vin = 30 # input oltage\n",
+ "\n",
+ "#Calculations\n",
+ "Vo = (1+(R2/R1))*Vz\n",
+ "Is =(Vin - Vo)/Rs\n",
+ "Io = Vo/Rl\n",
+ "Ic = Is -Io\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vo = %d V\\nIo = %.1f mA\\nIc = %.1f mA\"%(Vo,Io*1000,Ic*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vo = 27 V\n",
+ "Io = 13.5 mA\n",
+ "Ic = 1.5 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 10.6, Page No. 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Minimum and maximum output voltage\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "Iadj = 40*10**-6 # current\n",
+ "Vref = 1.25 # reference voltage\n",
+ "R1 = 2*10**3 # resistance R1\n",
+ "R2min = 0 # minimum value of R2 resistor\n",
+ "R2max = 20.0*10**3 # maximum value of R2 resistor\n",
+ "\n",
+ "#calculations\n",
+ "Vo1 = (Vref*(1+(R2max/R1)))+Iadj*R2max\n",
+ "Vo2 = Vref*(1+(R2min/R1))\n",
+ "\n",
+ "#Result\n",
+ "print(\"When R2 = %d k-ohm\\nVo = %.2f V\"%(R2max/1000,Vo1))\n",
+ "print(\"\\nWhen R2 = %d k-ohm\\nVo = %.2f V\"%(R2min/1000,Vo2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When R2 = 20 k-ohm\n",
+ "Vo = 14.55 V\n",
+ "\n",
+ "When R2 = 0 k-ohm\n",
+ "Vo = 1.25 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_12.ipynb b/Power_Electronics/Power_electronics_ch_12.ipynb
new file mode 100755
index 00000000..46f69125
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_12.ipynb
@@ -0,0 +1,1030 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Integrated Citcuits and Operational Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.1, Page No.442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# dc currents and voltage of differential amplifier\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Vcc = 12 # collector voltage\n",
+ "Vee = -12 # emitter voltage\n",
+ "Rc = 4.1*10**3 # Collector resistance\n",
+ "Re = 3.8*10**3 # emitter resistance\n",
+ "Vbe = 0.7 # voltage across base-emitter junction\n",
+ "\n",
+ "#Calculations\n",
+ "Ie = (Vcc-Vbe)/Re\n",
+ "Ic = 0.5*Ie\n",
+ "Vo = Vcc-Ic*Rc\n",
+ "\n",
+ "#Result\n",
+ "print(\"Ie = %.4f mA\\nIc = %.3f mA\\nVo = %.1f V\"%(Ie*1000,Ic*1000,Vo))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ie = 2.9737 mA\n",
+ "Ic = 1.487 mA\n",
+ "Vo = 5.9 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.2, Page No.442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Differential amplifier parameters\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vcc = 12 # collector voltage\n",
+ "Vee = -12 # emitter voltage\n",
+ "Rc = 1*10**6 # Collector resistance\n",
+ "Re = 1*10**6 # emitter resistance\n",
+ "Vbe = 0.7 # voltage across base-emitter junction\n",
+ "vi = 2.1*10**-3 # AC input voltage\n",
+ "beta = 75 \n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Ie = (Vcc-Vbe)/Re\n",
+ "ie = 0.5*Ie\n",
+ "re = (25*10**-3)/ie\n",
+ "re_dash = 4420.0#value used in the book\n",
+ "#(b)\n",
+ "g = Rc/(2*re_dash)\n",
+ "g = math.floor(g*10)/10\n",
+ "#(c)\n",
+ "vo = g*vi\n",
+ "vo = math.floor(vo*10000)/10000\n",
+ "#(d)\n",
+ "Zi = 2*beta*re\n",
+ "#(e)\n",
+ "cmg = Rc/(re+2*Re)\n",
+ "cmg = math.ceil(cmg*1000)/1000\n",
+ "#(f)\n",
+ "cmrr = g/cmg\n",
+ "#(g)\n",
+ "cmrr_db = 20*math.log10(cmrr)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) re = %d ohm\\n(b) voltage gain for differential input = %.1f\\n(c) AC output voltage = %.4f V\"%(re,g,vo))\n",
+ "print(\"(d) input impedance = %d k-ohm\\n(e) CMRR = %.2f\\n(g) CMRR' = %.1f dB\"%(Zi/1000,cmrr,cmrr_db))\n",
+ "\n",
+ "#Answer for re is wong in the book "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) re = 4424 ohm\n",
+ "(b) voltage gain for differential input = 113.1\n",
+ "(c) AC output voltage = 0.2375 V\n",
+ "(d) input impedance = 663 k-ohm\n",
+ "(e) CMRR = 226.65\n",
+ "(g) CMRR' = 47.1 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.3, Page No. 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Op-amp with negative feedback\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ag = 100000.0 # open loop gain of Op-amp\n",
+ "fb = 0.01 # feed back factor\n",
+ "vi = 2*10**-3 # input voltage\n",
+ "\n",
+ "#Calculations\n",
+ "# a\n",
+ "g = Ag/(1+(fb*Ag))\n",
+ "# b\n",
+ "v = vi*g\n",
+ "# c\n",
+ "Ev = v/Ag\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Closed loop gain = %.1f \\n(b) Output = %.4f V\\n(c) Error voltage = %.3f*10^-6 V\"%(g,v,Ev*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Closed loop gain = 99.9 \n",
+ "(b) Output = 0.1998 V\n",
+ "(c) Error voltage = 1.998*10^-6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.4, Page No. 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Op-amp with negative feedback\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ag = 15000.0 # open loop gain of Op-amp\n",
+ "fb = 0.01 # feed back factor\n",
+ "vi = 2*10**-3 # input voltage\n",
+ "\n",
+ "#Calculations\n",
+ "# a\n",
+ "g = Ag/(1+(fb*Ag))\n",
+ "# b\n",
+ "v = vi*g\n",
+ "# c\n",
+ "Ev = v/Ag\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Closed loop gain = %.3f \\n(b) Output = %.4f V\\n(c) Error voltage = %.3f*10^-5 V\"%(g,v,Ev*10**5))\n",
+ "print(\"\\nComparison conclusion:\\nA decrease in open loop gain causes a corresponding increase in error voltage,\")\n",
+ "print(\"thus keeping the output voltage nearly constant.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Closed loop gain = 99.338 \n",
+ "(b) Output = 0.1987 V\n",
+ "(c) Error voltage = 1.325*10^-5 V\n",
+ "\n",
+ "Comparison conclusion:\n",
+ "A decrease in open loop gain causes a corresponding increase in error voltage,\n",
+ "thus keeping the output voltage nearly constant.\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.5, Page No. 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# input/output impedances\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "g = 100000.0 # open loop gain\n",
+ "Zi = 2*10**6 # input impedance\n",
+ "Zo = 75 # output impedance\n",
+ "beta = 0.01 # feedback factor\n",
+ "\n",
+ "#Calculations\n",
+ "D = 1+ beta*g\n",
+ "Zi_cl = Zi*D\n",
+ "Zo_cl = Zo/D\n",
+ "\n",
+ "#Result\n",
+ "print(\"Closed loop input impedance = %.0f M-ohm\\nClosed loop output impedance = %.4f ohm\"%(Zi_cl/10**6,Zo_cl))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Closed loop input impedance = 2002 M-ohm\n",
+ "Closed loop output impedance = 0.0749 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.6, Page No.448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# closed loop gain and disensitivity\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "g = 100000.0 # open loop gain\n",
+ "beta = 0.001 # feedback factor\n",
+ "\n",
+ "#calculations\n",
+ "clg = g/(1+ beta*g)\n",
+ "D = 1+g*beta\n",
+ "\n",
+ "# Result\n",
+ "print(\"Closed loop gain = %.1f \\nDesensitivity = %.0f \"%(clg,D))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Closed loop gain = 990.1 \n",
+ "Desensitivity = 101 \n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.7, Page No.448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# closed loop gain and upper cut off frequency\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "f = 10**6 # unity gain frequency\n",
+ "alg = 100000.0 # open loop gain\n",
+ "b1 = 0.001 # feedback factor in case 1\n",
+ "b2 = 0.01 # feedback factor in case 2\n",
+ "b3 = 0.1 # feedback factor in case 3\n",
+ "\n",
+ "#calculations\n",
+ "# a\n",
+ "f1 = f/alg\n",
+ "# b\n",
+ "g2 = alg/(1+alg*b1)\n",
+ "f2 = f/g2\n",
+ "# c\n",
+ "g3 = alg/(1+alg*b2)\n",
+ "f3 = f/g3\n",
+ "# d\n",
+ "g4 = alg/(1+alg*b3)\n",
+ "f4 = f/g4\n",
+ "\n",
+ "#Result\n",
+ "print(\"Open loop,\\tgain = %.0f \\tf2 = %d Hz\"%(alg,f1))\n",
+ "print(\"Closed loop,\\tgain = %.1f \\tf2 = %d Hz\"%(g2,f2))\n",
+ "print(\"Closed loop,\\tgain = %.1f \\tf2 = %d Hz\"%(g3,f3))\n",
+ "print(\"Closed loop,\\tgain = %.3f \\tf2 = %d Hz\"%(g4,f4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Open loop,\tgain = 100000 \tf2 = 10 Hz\n",
+ "Closed loop,\tgain = 990.1 \tf2 = 1010 Hz\n",
+ "Closed loop,\tgain = 99.9 \tf2 = 10010 Hz\n",
+ "Closed loop,\tgain = 9.999 \tf2 = 100010 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.8, Page No.449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Slew rating\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Imax = 10*10**-6 # maximum current\n",
+ "C = 4000*10**-12 # capacitance in pF\n",
+ "\n",
+ "#Calculations\n",
+ "sr = Imax/C\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.1f V/ms\"%(sr/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 2.5 V/ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.9, Page No. 449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# slew rate distortion\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "sr = 0.4 # Slew rate\n",
+ "V = 6 # peak value of voltage\n",
+ "f = 10*10**3 # frequency\n",
+ "\n",
+ "#Calculations\n",
+ "slope = 2*math.pi*f*V\n",
+ "\n",
+ "#Result\n",
+ "print(\"Initial slope of sine wave =%.5f V/micro-sec\"%(slope/10**6))\n",
+ "print(\"\\nSince the slew rate of amplifier is %.1f V/micro-sec, there is no slew rate distortion.\"%(sr))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Initial slope of sine wave =0.37699 V/micro-sec\n",
+ "\n",
+ "Since the slew rate of amplifier is 0.4 V/micro-sec, there is no slew rate distortion.\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.10, Page No. 449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Slew rate distortion \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "sr = 0.5*10**6 # slew rate\n",
+ "V = 10 # peak value of input signal\n",
+ "f = 10*10**3 # frequency\n",
+ "\n",
+ "#calculations\n",
+ "# a\n",
+ "slope = 2*math.pi*f*V\n",
+ "# b\n",
+ "Vp = sr/(2*math.pi*f)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Initial slope of sine wave = %.3f V/micro-sec\"%(slope/10**6))\n",
+ "print(\"Since initial slope is more than the slew rate of amplifier, slew rate distortion will occur.\")\n",
+ "print(\"\\n(b) To eliminate slew rate distortion,\\n Vp = %.2f V\"%Vp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Initial slope of sine wave = 0.628 V/micro-sec\n",
+ "Since initial slope is more than the slew rate of amplifier, slew rate distortion will occur.\n",
+ "\n",
+ "(b) To eliminate slew rate distortion,\n",
+ " Vp = 7.96 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.11, Page No.451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# inverting amplifier\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A = 100000.0 # open loop gain\n",
+ "Zo = 75.0 # output impedance\n",
+ "f = 1.0*10**6 # unity gain frequency\n",
+ "R1 = 1.0*10**3 # Source Resistance \n",
+ "Rf = 100.0*10**3 # feedback resistance\n",
+ "\n",
+ "#Calculations\n",
+ "# a\n",
+ "g = -Rf/R1\n",
+ "# b\n",
+ "beta = R1/(R1+Rf)\n",
+ "D = 1+(A*beta)\n",
+ "# c\n",
+ "f2 = beta*f\n",
+ "# d\n",
+ "Zi_cl = R1\n",
+ "\n",
+ "#result\n",
+ "print(\"(a) Gain = %f\\n(b) disensitivity = %.1f\"%(g,D))\n",
+ "print(\"(c) closed loop upper cut off frequency = %.1f*10^3 Hz\\n(d) closed loop input impedance = %.0f ohm\"%(f2/1000,Zi_cl))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Gain = -100.000000\n",
+ "(b) disensitivity = 991.1\n",
+ "(c) closed loop upper cut off frequency = 9.9*10^3 Hz\n",
+ "(d) closed loop input impedance = 1000 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.12, Page No. 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# closed loop voltage gain, input/output impedance(refering to fig 12.11)\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "R2 = 100.0*10**3 # Resistance R2\n",
+ "R1 = 100.0 # Resistance R1\n",
+ "A = 100000.0 # open loop gain\n",
+ "Zin = 2*10**6 # input impedance\n",
+ "Zo = 75 # output impedance\n",
+ "\n",
+ "# Calculations\n",
+ "g = (R1+R2)/R1\n",
+ "beta = R1/(R1+R2)\n",
+ "Zi_dash = (1+A*beta)*Zin\n",
+ "Zo_dash = Zo/(1+A*beta)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Closed loop gain = %.0f \\nClosed loop input impedance = %.1f M-ohm\\nClosed loop output impedance = %.3f ohm\"%(g,Zi_dash/10**6,Zo_dash))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Closed loop gain = 1001 \n",
+ "Closed loop input impedance = 201.8 M-ohm\n",
+ "Closed loop output impedance = 0.743 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.13, Page No.454"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Op-amp parameters(refering to fig. 12.13)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A = 100000.0 # open loop gain\n",
+ "f = 1.0*10**6 # unity gain frequency\n",
+ "R3 = 150 *10**3 # Resistance R3\n",
+ "Ci = 1*10**-6 # inpuut capacitor\n",
+ "R2 = 100*10**3 # Resistance R2\n",
+ "Cb = 1*10**-6 # Bias capacitor\n",
+ "R1 = 1.0*10**3 # Resistance R1\n",
+ "Co = 1*10**-6 # output capacitance\n",
+ "Rl = 15*10**3 # load resistance\n",
+ "\n",
+ "#Calculations\n",
+ "# a\n",
+ "A = (R1+R2)/R1\n",
+ "# b\n",
+ "beta = 1/A\n",
+ "f2 = f/A\n",
+ "# c\n",
+ "fc1 = 1/(2*math.pi*Ci*R3)\n",
+ "fc2 = 1/(2*math.pi*Cb*Rl)\n",
+ "fc3 = 1/(2*math.pi*Co*R1)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Avf = %.0f \\n\\n(b) f2' =%.1f*10^3 Hz\"%(A,f2/1000))\n",
+ "print(\"\\n(c) The critical frequencies are,\\n fc = %.3f Hz\\n fc = %.2f Hz\\n fc = %.2f Hz\"%(fc1,fc2,fc3))\n",
+ "print(\"\\n(d) Evidently the lower cut off frequency is the highest of the above three critical frequencies, i.e. %.2f Hz\"%fc3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Avf = 101 \n",
+ "\n",
+ "(b) f2' =9.9*10^3 Hz\n",
+ "\n",
+ "(c) The critical frequencies are,\n",
+ " fc = 1.061 Hz\n",
+ " fc = 10.61 Hz\n",
+ " fc = 159.15 Hz\n",
+ "\n",
+ "(d) Evidently the lower cut off frequency is the highest of the above three critical frequencies, i.e. 159.15 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 93
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.14, Page No.455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output voltage(referring fig.12.14)\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "v1 = 0.5 # input voltage 1\n",
+ "v2 = 1.5 # input voltage 2\n",
+ "v3 = 0.2 # input voltage 3\n",
+ "R1 = 10.0*10**3 # resistance R1\n",
+ "R2 = 10.0*10**3 # resistance R2\n",
+ "R3 = 10.0*10**3 # resistance R3\n",
+ "Rf = 50.0*10**3 # feedback resistance\n",
+ "\n",
+ "#Calculations\n",
+ "vo = -Rf*((v1/R1)+(v2/R2)+(v3/R3))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Output Voltage = %.0f V\"%vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output Voltage = -11 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.15, Page No.455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.16, Page No.456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.17, Page No. 457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# difference amplifier(referring fig. 12.18)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 50.0*10**3 # Resistance R1\n",
+ "R2 = 10.0*10**3 # Resistance R2\n",
+ "Vs1 = 4.5 # input voltage at channel 1\n",
+ "Vs2 = 5.0 # input voltage at channel 2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "vo = R1*(Vs2-Vs1)/R2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Output voltage = %.1f V\"%vo)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Output voltage = 2.5 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 99
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.18, Page No.458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# CMRR in dB\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A = 50.0 # gain of difference amplifier\n",
+ "v = 2.0 # input voltage\n",
+ "vo = 5.0*10**-3 # output voltage \n",
+ "\n",
+ "#Calculations\n",
+ "Vcom = 0.5*(v+v)\n",
+ "Acom = vo/Vcom\n",
+ "cmrr = A/Acom\n",
+ "cmrr = 20*math.log10(cmrr)\n",
+ "\n",
+ "#Result\n",
+ "print(\"CMRR = %.2f dB\"%(cmrr))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CMRR = 86.02 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 101
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.19, Page No.458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical Example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical Example\n"
+ ]
+ }
+ ],
+ "prompt_number": 102
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.20, Page No.459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical Example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical Example\n"
+ ]
+ }
+ ],
+ "prompt_number": 103
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.21, Page No.466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# two pole high pass filter(referring fig. 12.32)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 10.0*10**3 # Resistance R1\n",
+ "R2 = 5.6*10**3 # Resistance R2\n",
+ "R = 1.0*10**3 # Resistance R\n",
+ "C = 0.01 *10**-6 # capacitance \n",
+ "vi = 1.6*10**-3 # input voltage \n",
+ "\n",
+ "#Calculations\n",
+ "# a\n",
+ "A = 1+(R2/R1)\n",
+ "# b\n",
+ "vo = A*vi\n",
+ "# c\n",
+ "pi = math.ceil(math.pi*10000)/10000\n",
+ "fc = 1/(2*pi*R*C)\n",
+ "# d\n",
+ "gain = 0.707*A\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) midband gain = %.2f\\n(b) output voltage = %.3f mV\\n(c) fc = %.2f Hz\\n(d) Gain = %.3f\"%(A,vo*1000,fc,gain))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) midband gain = 1.56\n",
+ "(b) output voltage = 2.496 mV\n",
+ "(c) fc = 15915.46 Hz\n",
+ "(d) Gain = 1.103\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.22, Page No. 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Low pass filter(referring fig. 12.30)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "vi = 1.1*10**-3 # input voltage\n",
+ "R = 10*10**3 # Resistance\n",
+ "C = 0.001*10**-6 # Capacitance\n",
+ "R1 = 10*10**3 # Resistance R1\n",
+ "R2 = 5.6*10**3 # Resistance R2\n",
+ "\n",
+ "#Calculations\n",
+ "# a\n",
+ "A = (R1+R2)/R1\n",
+ "vo1 = A*vi\n",
+ "# b\n",
+ "fc = 1/(2*math.pi*R*C)\n",
+ "# c\n",
+ "vo = 0.707*vo1\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Avf = %.2f\\n Vo = %.3f*10^-3 V\\n(b) fc = %.3f*10^3 Hz\\n(c) at f = fc,\\nVo = %.3f* 10^-3 V\"%(A,vo1*1000,fc/1000,vo*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Avf = 1.56\n",
+ " Vo = 1.716*10^-3 V\n",
+ "(b) fc = 15.915*10^3 Hz\n",
+ "(c) at f = fc,\n",
+ "Vo = 1.213* 10^-3 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 12.23, Page No.466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_13.ipynb b/Power_Electronics/Power_electronics_ch_13.ipynb
new file mode 100755
index 00000000..d435ac89
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_13.ipynb
@@ -0,0 +1,965 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Number Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.1, Page No. 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Decimal to binary conversion: 10\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "N = 10 # decimal no to be convered to binary\n",
+ "k = N\n",
+ "#Calculations\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0]\n",
+ "while(N!=0):\n",
+ " b[i] = N%2\n",
+ " N = N/2\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %d is %d%d%d%d\"%(k,b[3],b[2],b[1],b[0]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Binari equivalent of decimal 10 is 1010\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.2, Page No.474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Decimal to binary conversion: 25\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "N = 25 # decimal no to be convered to binary\n",
+ "\n",
+ "#Calculations\n",
+ "k = N\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0]\n",
+ "while(N!=0):\n",
+ " b[i] = N%2\n",
+ " N = N/2\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %d is %d%d%d%d%d\"%(k,b[4],b[3],b[2],b[1],b[0]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Binari equivalent of decimal 25 is 11001\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 13.3, Page No. 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Binary to decimal:101110\n",
+ "\n",
+ "import math\n",
+ "b0 = 0 # bit 0\n",
+ "b1 = 1 # bit 1\n",
+ "b2 = 1 # bit 2\n",
+ "b3 = 1 # bit 3\n",
+ "b4 = 0 # bit 4\n",
+ "b5 = 1 # bit 5\n",
+ "\n",
+ "#Calculations\n",
+ "D = (2**0)*b0+(2**1)*b1+(2**2)*b2+(2**3)*b3+(2**4)*b4+(2**5)*b5\n",
+ "\n",
+ "#Result\n",
+ "print(\"Decimal no is %d\"%D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Decimal no is 46\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.4, Page No. 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Decimal to binary conversion: 15,31\n",
+ "\n",
+ "import math\n",
+ "#######################################################################################\n",
+ "# for N = 15\n",
+ "#variable declaration\n",
+ "N = 15 # decimal no to be convered to binary\n",
+ "\n",
+ "#Calculations\n",
+ "k = N\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0]\n",
+ "while(N!=0):\n",
+ " b[i] = N%2\n",
+ " N = N/2\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nBinary equivalent of decimal %d is %d%d%d%d%d\"%(k,b[4],b[3],b[2],b[1],b[0]))\n",
+ "\n",
+ "########################################################################################\n",
+ "\n",
+ "# For N =31\n",
+ "#variable declaration\n",
+ "N = 31 # decimal no to be convered to binary\n",
+ "\n",
+ "#Calculations\n",
+ "k = N\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0]\n",
+ "while(N!=0):\n",
+ " b[i] = N%2\n",
+ " N = N/2\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %d is %d%d%d%d%d\"%(k,b[4],b[3],b[2],b[1],b[0]))\n",
+ "##########################################################################################\n",
+ "#Addition\n",
+ "c= bin(15+31)[2:]\n",
+ "print(\"(b) Addition of 15 and 31 is %s in binary. Decimal equivalent of %s is %d\"%(c,c,int(c,2)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Binari equivalent of decimal 15 is 01111\n",
+ "Binari equivalent of decimal 31 is 11111\n",
+ "(b) Addition of 15 and 31 is 101110 in binary. Decimal equivalent of 101110 is 46\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.5, Page No.475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Binary subtraction\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "n1 = 11001 # first number\n",
+ "n2 = 10001 # second number\n",
+ "\n",
+ "#calculations\n",
+ "n1 = int(str(n1),2)\n",
+ "n2 = int(str(n2),2)\n",
+ "c = bin(n1-n2)[2:]\n",
+ "\n",
+ "#Result\n",
+ "print(\"Subtraction result in binary = %s\"%c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subtraction result in binary = 1000\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.6, Page No.475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Binary subtraction\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "n1 = 1010 # first number\n",
+ "n2 = 111 # second number\n",
+ "\n",
+ "#calculations\n",
+ "n1 = int(str(n1),2)\n",
+ "n2 = int(str(n2),2)\n",
+ "c = bin(n1-n2)[2:]\n",
+ "\n",
+ "#Result\n",
+ "print(\"Subtraction result in binary = %s\"%c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Subtraction result in binary = 11\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.7, Page No. 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 16- bit signed binary representation\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "a = 8\n",
+ "b = -8\n",
+ "c = 165\n",
+ "d = -165\n",
+ "\n",
+ "#Calculations\n",
+ "#c = bin(d)\n",
+ "a = format(a,'#018b')[2:]\n",
+ "b = format(b,'#018b')[3:]\n",
+ "c = format(c,'#018b')[2:]\n",
+ "d = format(d,'#018b')[3:]\n",
+ "str = '1'\n",
+ "#Result\n",
+ "print(\"In the leading bit we will have 1 to represent '-' sign\\n\")\n",
+ "print(\"(a) +8 --> %s\"%(a))\n",
+ "print(\"(b) -8 --> %s%s\"%(str,b))\n",
+ "print(\"(c) +167 --> %s\"%(c))\n",
+ "print(\"(d) -167 --> %s%s\"%(str,d))\n",
+ "\n",
+ "a = format(-167%(1<<16),'016b')\n",
+ "b = format(167%(1<<16),'016b')\n",
+ "print a\n",
+ "print b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In the leading bit we will have 1 to represent '-' sign\n",
+ "\n",
+ "(a) +8 --> 0000000000001000\n",
+ "(b) -8 --> 1000000000001000\n",
+ "(c) +167 --> 0000000010100101\n",
+ "(d) -167 --> 1000000010100101\n",
+ "1111111101011001\n",
+ "0000000010100111\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.8, Page No.477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2's complement\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "a = int('00011111',2)\n",
+ "b = int('11100101',2)\n",
+ "c = int('11110111',2)\n",
+ "\n",
+ "#Calculations\n",
+ "a = format(-a%(1<<8),'08b')\n",
+ "b = format(-b%(1<<8),'08b')\n",
+ "c = format(-c%(1<<8),'08b')\n",
+ "print(\"(a) 2's complement of 00011111 --> %s \" %a)\n",
+ "print(\"(b) 2's complement of 11100101 --> %s \" %b)\n",
+ "print(\"(c) 2's complement of 11110111 --> %s \" %c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) 2's complement of 00011111 --> 11100001 \n",
+ "(b) 2's complement of 11100101 --> 00011011 \n",
+ "(c) 2's complement of 11110111 --> 00001001 \n"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.9, Page No. 13.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 8-bit number range\n",
+ "\n",
+ "import math\n",
+ "#calculations\n",
+ "a = int('01111111',2)\n",
+ "b = int('10000000',2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"largest positive 8-bit no in %d and smallest negative number is -%d\"%(a,b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "largest positive 8-bit no in 127 and smallest negative number is -128\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.10, Page No.10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2's complement and addition,subtraction\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A = -24\n",
+ "B = 16\n",
+ "#Calculations\n",
+ "#2's complement\n",
+ "a = format(A%(1<<8),'08b')\n",
+ "b = format(-B%(1<<8),'08b')\n",
+ "# addition\n",
+ "c = bin(A+B)[3:]\n",
+ "c = format(-int(c,2)%(1<<8),'08b')\n",
+ "#Subtraction\n",
+ "d = bin(A-B)[3:]\n",
+ "d = format(-int(d,2)%(1<<8),'08b')\n",
+ "#Result\n",
+ "print(\"(a)\\n2's complement of -24 --> %s \" %a)\n",
+ "print(\"2's complement of 16 --> %s \" %b)\n",
+ "print(\"(b) A+B = %s\"%c) \n",
+ "print(\"(c) A-B = %s\"%d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "2's complement of -24 --> 11101000 \n",
+ "2's complement of 16 --> 11110000 \n",
+ "(b) A+B = 11111000\n",
+ "(c) A-B = 11011000\n"
+ ]
+ }
+ ],
+ "prompt_number": 116
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.11, Page No. 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 2's complement and addition,subtraction\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "A = -60\n",
+ "B = -28\n",
+ "#Calculations\n",
+ "#2's complement\n",
+ "a = format(A%(1<<8),'08b')\n",
+ "b = format(B%(1<<8),'08b')\n",
+ "# addition\n",
+ "c = bin(A+B)[3:]\n",
+ "c = format(-int(c,2)%(1<<8),'08b')\n",
+ "#Subtraction\n",
+ "x = B-A\n",
+ "d = bin(B-A)[2:]\n",
+ "d = format(int(d,2),'08b')\n",
+ "#Result\n",
+ "print(\"(a)\\n2's complement of A --> %s \" %a)\n",
+ "print(\"2's complement of B --> %s \" %b)\n",
+ "print(\"(b) B+A = %s\"%c) \n",
+ "print(\"(c) B-A = %s\"%d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "2's complement of A --> 11000100 \n",
+ "2's complement of B --> 11100100 \n",
+ "(b) B+A = 10101000\n",
+ "(c) B-A = 00100000\n"
+ ]
+ }
+ ],
+ "prompt_number": 130
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.12, Page No. 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# decimal to binary\n",
+ "\n",
+ "# For N = 0.6875\n",
+ "#variable declaration\n",
+ "N = 0.6875 # decimal no to be convered to binary\n",
+ "\n",
+ "#Calculations\n",
+ "k = N\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0,0,0,0,0,0,0]\n",
+ "while(N!=0):\n",
+ " N = N*2\n",
+ " #print N\n",
+ " b[i]=0\n",
+ " #print b[i]\n",
+ " if (N>1) or(N==1):\n",
+ " N =N-1\n",
+ " b[i]=1\n",
+ " i=i+1\n",
+ " \n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %f is 0.%d%d%d%d \"%(k,b[0],b[1],b[2],b[3]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Binary equivalent of decimal 0.687500 is 0.1011 \n"
+ ]
+ }
+ ],
+ "prompt_number": 230
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.13, Page No.480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# decimal to binary\n",
+ "\n",
+ "# For N = 0.634\n",
+ "#variable declaration\n",
+ "N = 0.634 # decimal no to be convered to binary\n",
+ "\n",
+ "#Calculations\n",
+ "k = N\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0,0,0,0,0,0,0]\n",
+ "while(i!=7):\n",
+ " N = N*2\n",
+ " #print N\n",
+ " b[i]=0\n",
+ " #print b[i]\n",
+ " if (N>1) or(N==1):\n",
+ " N =N-1\n",
+ " b[i]=1\n",
+ " i=i+1\n",
+ "\n",
+ "#Result \n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %f is 0.%d%d%d%d%d%d%d \"%(k,b[0],b[1],b[2],b[3],b[4],b[5],b[6]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Binary equivalent of decimal 0.634000 is 0.1010001 \n"
+ ]
+ }
+ ],
+ "prompt_number": 222
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.14, Page No.480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# decimal to binary\n",
+ "\n",
+ "# For N = 0.634\n",
+ "#variable declaration\n",
+ "N = 39.12 # decimal no to be convered to binary\n",
+ "\n",
+ "N1 = 39\n",
+ "k = N1\n",
+ "#Calculations\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0,0,0]\n",
+ "while(N1!=0):\n",
+ " b[i] = N1%2\n",
+ " N1 = N1/2\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %d is %d%d%d%d%d%d%d\"%(k,b[6],b[5],b[4],b[3],b[2],b[1],b[0]))\n",
+ "\n",
+ "\n",
+ "N2 =0.12\n",
+ "#Calculations\n",
+ "k = N2\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0,0,0,0,0,0,0]\n",
+ "while(i!=7):\n",
+ " N2 = N2*2\n",
+ " #print N\n",
+ " b[i]=0\n",
+ " #print b[i]\n",
+ " if (N2>1) or(N2==1):\n",
+ " N2 =N2-1\n",
+ " b[i]=1\n",
+ " i=i+1\n",
+ " \n",
+ "#Result\n",
+ "print(\"Binary equivalent of decimal %f is 0.%d%d%d%d%d%d%d \"%(k,b[0],b[1],b[2],b[3],b[4],b[5],b[6]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Binary equivalent of decimal 39 is 0100111\n",
+ "Binary equivalent of decimal 0.120000 is 0.0001111 \n"
+ ]
+ }
+ ],
+ "prompt_number": 225
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.15, Page No.481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# binary Addition\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "a1 = int('101101',2) # integer part of first no\n",
+ "a2 = int('0101',2) # fractiona part of first no\n",
+ "b1 = int('10001',2) # integer part of second no\n",
+ "b2 = int('1010',2) # fractiona part of second no(in fraction we can add any no of 0s)\n",
+ "\n",
+ "#Calculations\n",
+ "c1= bin(a1+b1)[2:]\n",
+ "c2 = bin(a2+b2)[2:]\n",
+ "\n",
+ "print(\"Addition --> %s.%s\"%(c1,c2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Addition --> 111110.1111\n"
+ ]
+ }
+ ],
+ "prompt_number": 227
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.16, Page No. 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# binary to decimal conversion\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "i0 = 1 # LSB of integer\n",
+ "i1 = 0\n",
+ "i2 = 0\n",
+ "i3 = 1\n",
+ "i4 = 1 # MSB of integer\n",
+ "f1 = 0\n",
+ "f2 = 0\n",
+ "f3 = 1\n",
+ "f4 = 0\n",
+ "f5 = 1\n",
+ "f6 = 1\n",
+ "\n",
+ "#Calculations\n",
+ "D = i0*(2**0)+i1*(2**1)+i2*(2**2)+i3*(2**3)+i4*(2**4)+f1*(2**-1)+f2*(2**-2)+f3*(2**-3)+f4*(2**-4)+f5*(2**-5)+f6*(2**-6)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Decimal equivalent = %f\"%D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Decimal equivalent = 25.171875\n"
+ ]
+ }
+ ],
+ "prompt_number": 231
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.17, Page No. 482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Hexadecimal to decimal\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a = 3\n",
+ "b = 10 # decimal equivalent of A\n",
+ "c = 8\n",
+ "#Calculations\n",
+ "# binary equvalent of 8 A 3 \n",
+ "# 1000 1010 0011\n",
+ "# a\n",
+ "Da = (1*2**0)+(1*2**1)+(0*2**2)+(0*2**3)+(0*2**4)+(1*2**5)+(0*2**6)+(1*2**7)+(0*2**8)+(0*2**9)+(0*2**10)+(1*2**11)\n",
+ "print(\"(a) Decimal equivalent of 8A3 is %d\"%Da)\n",
+ "# b \n",
+ "Db = (a*(16**0))+(b*(16**1))+(c*(16**2))\n",
+ "print(\"(b) Decimal equivalent of 8A3 is %d\"%Db)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Decimal equivalent of 8A3 is 2211\n",
+ "(b) Decimal equivalent of 8A3 is 2211\n"
+ ]
+ }
+ ],
+ "prompt_number": 236
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.18, Page No. 482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# decimal to hexadecimal\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "N = 268 # no to be converted into hexadecimal\n",
+ "\n",
+ "N1 = 268\n",
+ "k = N1\n",
+ "#Calculations\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0,0,0]\n",
+ "while(N1!=0):\n",
+ " b[i] = N1%16\n",
+ " N1 = N1/16\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Remainder1: %d = C\\nRemainder2: %d\\nRemainder3: %d\\n\\nHexaecimal equivalent of %d = 10C\"%(b[0],b[1],b[2],k))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Remainder1: 12 = C\n",
+ "Remainder2: 0\n",
+ "Remainder3: 1\n",
+ "\n",
+ "Hexaecimal equivalent of 268 = 10C\n"
+ ]
+ }
+ ],
+ "prompt_number": 260
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.19, Page No.483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# decimal to hexadecimal\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "N = 5741 # no to be converted into hexadecimal\n",
+ "\n",
+ "N1 = 5741\n",
+ "k = N1\n",
+ "#Calculations\n",
+ "i = 0\n",
+ "b =[0,0,0,0,0,0,0,0]\n",
+ "while(N1!=0):\n",
+ " b[i] = N1%16\n",
+ " N1 = N1/16\n",
+ " i = i+1 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Remainder1: %d = D\\nRemainder2: %d\\nRemainder3: %d\\nRemainder4: %d\\n\\nHexaecimal equivalent of %d =166D\"%(b[0],b[1],b[2],b[3],k))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Remainder1: 13 = D\n",
+ "Remainder2: 6\n",
+ "Remainder3: 6\n",
+ "Remainder4: 1\n",
+ "\n",
+ "Hexaecimal equivalent of 5741 =166D\n"
+ ]
+ }
+ ],
+ "prompt_number": 259
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 13.20, Page No.483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Hexadecimal to decimal\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "a = 0\n",
+ "b = 7\n",
+ "c = 13 # decimal equivalent of D\n",
+ "#Calculations\n",
+ "D = (a*(16**0))+(b*(16**1))+(c*(16**2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(b) Decimal equivalent of 8A3 is %d\"%D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b) Decimal equivalent of 8A3 is 3440\n"
+ ]
+ }
+ ],
+ "prompt_number": 262
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_2.ipynb b/Power_Electronics/Power_electronics_ch_2.ipynb
new file mode 100755
index 00000000..6e52e316
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_2.ipynb
@@ -0,0 +1,2357 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1, Page No.39 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Anode current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "alfa_1 = 0.35 # Gain of PNP transistor of two transistor model\n",
+ "alfa_2 = 0.40 # Gain of NPN transistor of two transistor model\n",
+ "Ig = 40*10**-3 # Gate current\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Ia = (alfa_2*Ig)/(1-(alfa_1+alfa_2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Anode current = %d * 10^-3 A\"%(Ia*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Anode current = 64 * 10^-3 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Equivalent capacitor\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "dv_by_dt = 190 # in Volt per micro-sec\n",
+ "Ic= 8 *10**-3 # Capacitive current\n",
+ "\n",
+ "#Calculation\n",
+ "C = Ic/(dv_by_dt*10**6)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C = %.1f * 10^12 F\"%(C*10**12))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 42.1 * 10^12 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, Page No. 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Thyristor\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Vt = 0.75 # Thyristor trigger voltage\n",
+ "It = 7*10**-3 # Thyristor trigger current\n",
+ "Vcc = 20 # Suppy voltage, given data\n",
+ "Rg = 2000 # gate resistor, given data\n",
+ "R = 200 # input resistor\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "V0 = 20 # when thyristor is not conducting, there is no current through it.\n",
+ "#(b)\n",
+ "Vs = Vt+It*Rg\n",
+ "#(c)\n",
+ "i= 5*10**-3 #to have holding curernt\n",
+ "v1= i*R\n",
+ "#(d)\n",
+ "drop =0.7 # voltage drop across thyristor\n",
+ "v2=v1+drop\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) V0 = %d\\n(b) Vs = %.2f\\n(c) Vcc should be reduced to less than %d V if thyristor is ideal.\\n(d) Vcc should be reduced to less than %.1f V\"%(V0,Vs,v1,v2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) V0 = 20\n",
+ "(b) Vs = 14.75\n",
+ "(c) Vcc should be reduced to less than 1 V if thyristor is ideal.\n",
+ "(d) Vcc should be reduced to less than 1.7 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# calculation of Vg,Ig and Rg\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vs = 25 # gate signal amplitude\n",
+ "Pavg_loss = 0.6 # Avg power loss\n",
+ "\n",
+ "#Calculations\n",
+ "P_loss = Pavg_loss*2*math.pi/math.pi\n",
+ "Ig =(-1+(math.sqrt(1**2-4*9*(-1.2))))/(2*9) #alfa=(-b+sqrt(b^2-4ac))/2a-->solution for quadratic equation\n",
+ "Ig = math.ceil(Ig*1000)/1000\n",
+ "Vg = 1+9*Ig #given data\n",
+ "Rg = (24-9*Ig)/Ig\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"Vg = %.3f \\nIg = %.3f\\nRg = %.2f\"%(Vg,Ig,Rg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vg = 3.826 \n",
+ "Ig = 0.314\n",
+ "Rg = 67.43\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Minimum width of gate pulse\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 100 # DC supply voltage\n",
+ "L = 10 # Inductance\n",
+ "i = 80*10**-3 # latching current of thyristor\n",
+ "\n",
+ "#Calculations\n",
+ "t = L*i/V\n",
+ "\n",
+ "#Result\n",
+ "print(\"Width of pulse should be more than %d milli-second.\"%(t*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Width of pulse should be more than 8 milli-second.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.6, Page No. 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Minimum width of gate pulse\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 100 # DC supply voltage\n",
+ "R = 10 # Resistance\n",
+ "L = 5 # Inductance\n",
+ "i = 50*10**-3 # latching current of thyristor\n",
+ "\n",
+ "#Calculation\n",
+ "t = math.log((1-(i*R)/V))/((-R/L)*math.log(math.e)) # i = (V/R)*(1-e^(-R*t/L))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Minimum width of gate pulse is %.1f milli-second.\"%(t*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum width of gate pulse is 2.5 milli-second.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.7, Page No. 43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# resistor value\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 90.0 # DC supply voltage\n",
+ "i = 40*10**-3 # latching current of thyristor\n",
+ "t = 40* 10**-6 # pulse width\n",
+ "R = 25.0 # load Resistance\n",
+ "L = 0.5 # Inductance\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "i2 = (V/R)*(1-math.e**(-R*t/L))\n",
+ "\n",
+ "#(b)\n",
+ "R = V/(i-i2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nAt the end of the gate pulse, i = %.4f A\"%i2)\n",
+ "print(\"Since the current is less than latching current, thyristor will not turn on.\")\n",
+ "print(\"\\n(b)\\nR should be less than %d ohm.\"%math.ceil(R))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "At the end of the gate pulse, i = 0.0072 A\n",
+ "Since the current is less than latching current, thyristor will not turn on.\n",
+ "\n",
+ "(b)\n",
+ "R should be less than 2744 ohm.\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.8, Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Resistor value\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 100.0 # DC supply voltage\n",
+ "i = 50*10**-3 # holding current of thyristor\n",
+ "t = 50* 10**-6 # pulse width\n",
+ "R = 20.0 # load Resistance\n",
+ "L = 0.5 # Inductance\n",
+ "\n",
+ "#Calculations\n",
+ "i2 = (V/R)*(1-math.e**(-R*t/L))\n",
+ "Rmax = V/(i-i2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"When firing pulse ends, i = %.2f mA\"%(i2*10**3))\n",
+ "print(\"Since this current is less than holding current, the thyristor will not remain on and return to off state.\")\n",
+ "print(\"Maximum value of R = %.3f ohm\"%(math.floor(Rmax*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When firing pulse ends, i = 9.99 mA\n",
+ "Since this current is less than holding current, the thyristor will not remain on and return to off state.\n",
+ "Maximum value of R = 2499.375 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.9, Page No.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# triggering angle \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 240 # AC supply voltage\n",
+ "f = 50 # supply frequency\n",
+ "R = 5 # load resistance\n",
+ "L = 0.05 # inductance\n",
+ "\n",
+ "#Calculation\n",
+ "theta = math.atan(2*math.pi*f*L/R)\n",
+ "theta = theta*180/math.pi\n",
+ "fi = theta+90\n",
+ "print(\"theta = %.2f\u00b0\"%(theta))\n",
+ "print(\"\\nCurrent transient is maximun(worst) if\\nsin(fi-theta) = 1\")\n",
+ "print(\"therefore, fi-%.2f\u00b0 = 90\u00b0\"%theta)\n",
+ "print(\"fi = %.2f\u00b0\"%fi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "theta = 72.34\u00b0)\n",
+ "\n",
+ "Current transient is maximun(worst) if\n",
+ "sin(fi-theta) = 1\n",
+ "therefore, fi-72.34\u00b0 = 90\u00b0\n",
+ "fi = 162.34\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.10, Page No.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.11, Page No.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example \n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.12, Page No. 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# rms current and form factor\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "I = 120 # Current in Ampere\n",
+ "gamma = 180.0 # in degrees, thyristor conducts between alfa and alfa+gamma in each 360\u00b0 \n",
+ "\n",
+ "# calculations\n",
+ "#(a)-- formulas\n",
+ "#(b)\n",
+ "Irms = I*math.sqrt(gamma/360)\n",
+ "Iavg = I*(gamma/360)\n",
+ "ff = Irms/Iavg\n",
+ "\n",
+ "#result\n",
+ "print(\"RMS curent = %.2f A\\nAverage Current = %.0f A\\nForm factor = %.3f\"%(Irms,Iavg,ff))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS curent = 84.85 A\n",
+ "Average Current = 60 A\n",
+ "Form factor = 1.414\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.13, Page No.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Power supplied to the load and average load current\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "# variable declaration\n",
+ "R = 100.0 # load resistance\n",
+ "V = 230.0 # Supply Voltage\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "def f(x):\n",
+ " return math.sin(x)**2\n",
+ "wt_lower=math.pi/3\n",
+ "wt_upper =math.pi\n",
+ "val = quad(f,wt_lower,wt_upper)\n",
+ "I = ((math.sqrt(2)*V/R)**2)*val[0]/(2*math.pi)\n",
+ "Irms = math.sqrt(I)\n",
+ "P =(Irms**2)*R\n",
+ "\n",
+ "#(b)\n",
+ "def f(x):\n",
+ " return math.sin(x)**2\n",
+ "wt_lower2=math.pi/4\n",
+ "wt_upper2 =math.pi\n",
+ "val2 = quad(f,wt_lower2,wt_upper2)\n",
+ "x = (math.sqrt(2)*V/R)\n",
+ "x = math.floor(x*100)/100\n",
+ "I2 = (x**2)*val2[0]/(2*math.pi)\n",
+ "Irms2 = math.sqrt(I2)\n",
+ "P2 =(Irms2**2)*R\n",
+ "\n",
+ "#(c)\n",
+ "def f(x):\n",
+ " return (3.25/(2*math.pi))*math.sin(x)\n",
+ "wt_lower3=math.pi/3\n",
+ "wt_upper3 =math.pi\n",
+ "val3 = quad(f,wt_lower3,wt_upper3)\n",
+ "wt_lower4=math.pi/4\n",
+ "wt_upper4 =math.pi\n",
+ "val4 = quad(f,wt_lower4,wt_upper4)\n",
+ "\n",
+ "\n",
+ "print(\"(a)\\nRMS current = %.2f A\\nPower supplied to load = %d W\"%(Irms,math.ceil(P)))\n",
+ "print(\"\\n\\n(b)\\nRMS current = %f A\\nPower supplied to load = %f W\"%(Irms2,P2))\n",
+ "print(\"\\n(c)\\nWhen firing angle is 60\u00b0, Average current = %.3f A\" %val3[0])\n",
+ "print(\"When firing angle is 45\u00b0, Average current = %.3f A\" %val4[0])\n",
+ "# for (b) answer matches to the book if val2[0] = 1.4255"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "RMS current = 1.46 A\n",
+ "Power supplied to load = 213 W\n",
+ "\n",
+ "\n",
+ "(b)\n",
+ "RMS current = 1.549431 A\n",
+ "Power supplied to load = 240.073727 W\n",
+ "\n",
+ "(c)\n",
+ "When firing angle is 60\u00b0, Average current = 0.776 A\n",
+ "When firing angle is 45\u00b0, Average current = 0.883 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.14, Page No.54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# average power loss in thyristor\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Iavg = 200 # Average current\n",
+ "v1 = 1.8 # voltage drop across thyristor for 200A current\n",
+ "v2 = 1.9 # voltage drop across thyristor for 400A current\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "A1 = Iavg # amplitude of rectangular current wave\n",
+ "P1 = A1*v1\n",
+ "#(b)\n",
+ "A2 = 2*Iavg\n",
+ "P2 = A2*v2*math.pi/(2*math.pi)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Average power loss = %d W\"%P1)\n",
+ "print(\"(b) Average power loss = %d W\"%P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Average power loss = 360 W\n",
+ "(b) Average power loss = 380 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.15, Page No.55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# average on state current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "I = 40 # rms on state current\n",
+ "f = 50 # frequency\n",
+ "cp_a =170 # conduction period\n",
+ "cp_b =100 # conduction period\n",
+ "cp_c =40 # conduction period\n",
+ "\n",
+ "#Calculations\n",
+ "alfa_a = 180-cp_a\n",
+ "alfa_b = 180-cp_b\n",
+ "alfa_c = 180-cp_c\n",
+ "Im_a = math.sqrt(((I**2)*2*math.pi)/(((math.pi-alfa_a*math.pi/180)/2)+math.sin(2*alfa_a*math.pi/180)/4))\n",
+ "Iv_a = 0.316*Im_a\n",
+ "Im_b = math.sqrt(((I**2)*2*math.pi)/(((math.pi-alfa_b*math.pi/180)/2)+math.sin(2*alfa_b*math.pi/180)/4))\n",
+ "Iv_b = 0.1868*Im_b\n",
+ "Im_c = math.sqrt(((I**2)*2*math.pi)/(((math.pi-alfa_c*math.pi/180)/2)+math.sin(2*alfa_c*math.pi/180)/4))\n",
+ "Iv_c = 0.0372*Im_c\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Iavg = %.3f A\"%(math.ceil(Iv_a*1000)/1000))\n",
+ "print(\"(b) Iavg = %.2f A\"%Iv_b)\n",
+ "print(\"(c) Iavg = %.2f A\"%(math.floor(Iv_c*100)/100))\n",
+ "#answer for(b) is not matching with the answer given in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Iavg = 25.295 A\n",
+ "(b) Iavg = 19.13 A\n",
+ "(c) Iavg = 11.62 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 105
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.16, page No. 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# power dissiopation\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#variable declaration\n",
+ "It = 20 # constant current\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vt = 0.9+ 0.02*It\n",
+ "P1 = Vt*It\n",
+ "#(b)\n",
+ "def f(x):\n",
+ " return (0.9+0.02*(20*math.pi*math.sin(x)))*(20*math.pi*math.sin(x))/(2*math.pi)\n",
+ "# if denominator math.pi value is taken as 3.14, then answer for P2 =37.75\n",
+ "theta_lower = 0\n",
+ "theta_upper = math.pi\n",
+ "val = quad(f,theta_lower,theta_upper)\n",
+ "P2 = val[0]\n",
+ "#(c)\n",
+ "P3 = P1/2\n",
+ "#(d)\n",
+ "P4 = P1/3\n",
+ "\n",
+ "#result\n",
+ "print(\"(a) Power dissipation = %d W\"%P1)\n",
+ "print(\"(b) Mean Power dissipation = %.2f W\"%P2)\n",
+ "print(\"(c) Mean Power dissipation = %d W\"%P3)\n",
+ "print(\"(d) Mean Power dissipation = %.2f W\"%P4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Power dissipation = 26 W\n",
+ "(b) Mean Power dissipation = 37.74 W\n",
+ "(c) Mean Power dissipation = 13 W\n",
+ "(d) Mean Power dissipation = 8.67 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 115
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.17, Page No. 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# I^2t rating \n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Is = 2000.0 # half cycle surge current rating for SCR\n",
+ "f = 50.0 # operating AC frequency\n",
+ "\n",
+ "#Calculation\n",
+ "T = 1/f\n",
+ "t_half = T/2\n",
+ "t = t_half/2\n",
+ "I = math.sqrt((Is**2)*t/t_half)\n",
+ "rating = (I**2)*t_half\n",
+ "\n",
+ "#Result\n",
+ "print(\"I^2t rating = %d A^2 secs\"%rating)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I^2t rating = 20000 A^2 secs\n"
+ ]
+ }
+ ],
+ "prompt_number": 138
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.18, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Resistance and average power loss\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "P = 6 #peak power loss\n",
+ "d = 0.3 # duty cylce \n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "#solution of equation 9Ig^2+Ig-6 = 0\n",
+ "Ig =(-1+(math.sqrt(1**2-4*9*(-6))))/(2*9) #alfa=(-b+sqrt(b^2-4ac))/2a-->solution for quadratic equation\n",
+ "Ig = math.ceil(Ig*1000)/1000\n",
+ "Rg = (11/Ig)-9 #from KVL equation of gate circuit\n",
+ "#(b)\n",
+ "Pavg = P*d\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nIg = %.3f A \\nRg = %.3f ohm\"%(Ig,Rg))\n",
+ "print(\"\\n(b) Average power loss = %.1f W \"%Pavg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Ig = 0.763 A \n",
+ "Rg = 5.417 ohm\n",
+ "\n",
+ "(b) Average power loss = 1.8 W \n"
+ ]
+ }
+ ],
+ "prompt_number": 144
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.19, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# trigger current and voltage for gate power dissipation\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vs = 12 # supply voltage\n",
+ "P = 0.3 # Power dissipation\n",
+ "Rs = 100 # load line slope i.e. source resistance\n",
+ "\n",
+ "#Calculation\n",
+ "#solution for equation 100Ig^2-12Ig+0.3 = 0\n",
+ "Ig =(-(-Vs)-(math.sqrt((-Vs)**2-4*Rs*(P))))/(2*Rs) #alfa=(-b(+/-)sqrt(b^2-4ac))/2a-->solution for quadratic equation\n",
+ "Vg = P/Ig\n",
+ "print(\"Ig = %.1f mA\\nVg = %.2f V\"%(Ig*1000,Vg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ig = 35.5 mA\n",
+ "Vg = 8.45 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.20, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Finding values of resistors\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Es = 12.0 # Supply voltage\n",
+ "V = 800.0 # SCR voltage rating\n",
+ "I = 110.0 # SCR currert rating\n",
+ "imax = 250*10**-3 # Maximum permissible current through battery\n",
+ "isc = 600*10**-3 # short circuit current of the battery\n",
+ "Vg = 2.4 # required gate voltage\n",
+ "Ig = 50*10**-3 # required gate current\n",
+ "Vgmax = 3 # maximum gate voltage\n",
+ "Igmax = 100*10**-3 # maximum gate current\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Rs = Es/isc\n",
+ "#considering R2 is not connected\n",
+ "R1 =(Es/imax)-Rs\n",
+ "#R1 must be 28 or more so that battery curenrt doesnot exceeds 250mA\n",
+ "R1min = Es/Igmax-Rs\n",
+ "R1max = ((Es-Vg)/Ig)-Rs\n",
+ "R1 = 125 #selected \n",
+ "R2 = Vgmax*(Rs+R1)/(Es-Vgmax)\n",
+ "\n",
+ "# Result\n",
+ "print(\"Rs = %d ohm \\n\\nR1 must be more than %.0f ohm and must be less than %.0f ohm.\\nTherefore, select R1 = %.0f \"%(Rs,R1min,R1max,R1))\n",
+ "print(\"\\nR2 should be less than %.3f ohm.\\nTherefore, select R2 = %.0f ohm\"%(R2,math.floor(R2)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rs = 20 ohm \n",
+ "\n",
+ "R1 must be more than 100 ohm and must be less than 172 ohm.\n",
+ "Therefore, select R1 = 125 \n",
+ "\n",
+ "R2 should be less than 48.333 ohm.\n",
+ "Therefore, select R2 = 48 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.21, Page No. 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Surface temperature\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "l = 0.2 # length of aluminium rod\n",
+ "w = 0.01 # width of aluminium rod\n",
+ "d = 0.01 # depth of aluminium rod\n",
+ "tc = 220 # thermal conductivity\n",
+ "T1 = 30 # temperature at far end\n",
+ "P = 3 # injected heat\n",
+ "\n",
+ "#Calculation\n",
+ "theta = l/(tc*w*d)\n",
+ "T2 = P*theta+T1\n",
+ "\n",
+ "#Result\n",
+ "print(\"Temperature of the surface where heat is injected is %.2f\u00b0C\"%T2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of the surface where heat is injected is 57.27\u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.22, Page No. 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Power losses\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "l = 2*10**-3 # lengthh of aluminium plate\n",
+ "a = 12*10**-4 # cross-section area\n",
+ "tc = 220 # thermal conductivity\n",
+ "td = 4 # desired thermal drop along length\n",
+ "\n",
+ "#Calculations\n",
+ "theta = l/(a*tc)\n",
+ "theta = math.floor(theta*10**6)/10**6\n",
+ "P_loss = td/theta\n",
+ "\n",
+ "#Result\n",
+ "print(\"power losses = %.2f W\"%P_loss)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power losses = 528.05 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.23, Page No. 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#thermal resistance of heat sink\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "P = 30.0 # power dissipation\n",
+ "T1 =125.0 # max junction temperature\n",
+ "T2 = 50.0 # max ambient temperature\n",
+ "tr1 =1.0 # thermal resistance of thyristor\n",
+ "tr2 = 0.3 # therrmal resistance of insuulator\n",
+ "\n",
+ "#calculations\n",
+ "Tr = (T1-T2)/P\n",
+ "Tr_hs = Tr-tr1-tr2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Thermal resistance of heat sink = %.1f\u00b0C/W\"%Tr_hs)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal resistance of heat sink = 1.2\u00b0C/W\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.24, Page No.68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Junction temperature\n",
+ "\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "tr = 0.627 # thermal resistance of device\n",
+ "T = 93 # heat sink temperature\n",
+ "V = 3 # voltage at junction\n",
+ "I = 25 # current at junction\n",
+ "\n",
+ "#calculation\n",
+ "T_junction = tr*V*I+T\n",
+ "\n",
+ "#Result\n",
+ "print(\"Junction Temperature = %d\u00b0C\"%T_junction)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Junction Temperature = 140\u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.25, Page No. 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Thermal resistance\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "P = 40.0 #steady power loss in an SCR\n",
+ "Tr_hs = 0.8 # heat sink resistance\n",
+ "T1 = 120.0 # Maximumm junction temperature\n",
+ "T2 = 35.0 # ambient temperature\n",
+ "\n",
+ "#calculation\n",
+ "Tr = (T1-T2)/P\n",
+ "Rsh = Tr - Tr_hs\n",
+ "\n",
+ "#Result\n",
+ "print(\"Resistance of heat sink = %.3f\u00b0C/W\"%Rsh)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resistance of heat sink = 1.325\u00b0C/W\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.26, Page No. 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# power loss and % increase in rating\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "Tj = 125 # maximum junction temperature\n",
+ "Ts1 = 80 # max heat sink temperature\n",
+ "tr_jc = 0.7 # thermal resistance from junction to case \n",
+ "tr_cs = 0.4 # thermal resistance from case to sink\n",
+ "Ts2 = 50 # decreased heat sink temperature \n",
+ "#calculations\n",
+ "#(a)\n",
+ "Pav1 = (Tj-Ts1)/(tr_jc+tr_cs)\n",
+ "#(b)\n",
+ "Pav2 =(Tj-Ts2)/(tr_jc+tr_cs)\n",
+ "rating = 100*(math.sqrt(Pav2)-math.sqrt(Pav1))/math.sqrt(Pav1)\n",
+ "rating = math.floor(rating*100)/100\n",
+ "# result\n",
+ "print(\"(a)\\nAverage power loss = %.2fW\"%Pav1)\n",
+ "print(\"\\n(b)\\nAverage power loss = %.2fW\\n%% increase in rating = %.2f%%\"%(Pav2,rating))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Average power loss = 40.91W\n",
+ "\n",
+ "(b)\n",
+ "Average power loss = 68.18W\n",
+ "% increase in rating = 29.09%\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.27, Page No. 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Minnimum and maximum firing angle of triac\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vs = 230.0 # Supply voltage\n",
+ "f = 50.0 # supply frequency\n",
+ "Vc = 25.0 # breakdown voltage\n",
+ "C = 0.6*10**-6 # capacitance\n",
+ "Rmin = 2000 # minimum resistance \n",
+ "Rmax = 20000 # maximum resistance\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "pi = math.ceil(math.pi*10**4)/10**4\n",
+ "Xc = 1/(2*pi*f*C)\n",
+ "Xc = math.floor(Xc*100)/100\n",
+ "Z1_m = math.sqrt(Rmin**2+Xc**2)\n",
+ "Z1_angle=math.atan(Xc/Rmin)\n",
+ "I1_m = Vs/Z1_m\n",
+ "I1_m = math.ceil(I1_m*10**5)/10**5\n",
+ "I1_angle = Z1_angle\n",
+ "Vc_m = I1_m*Xc\n",
+ "Vc_m = math.ceil(Vc_m*100)/100\n",
+ "Vc_angle = I1_angle*(180/math.pi)-90\n",
+ "alfa1 = (180/math.pi)*math.asin(Vc/(math.sqrt(2)*Vc_m))+(-Vc_angle)\n",
+ "\n",
+ "#(b)\n",
+ "Z2_m = math.sqrt(Rmax**2+Xc**2)\n",
+ "Z2_m = math.floor(Z2_m*10)/10\n",
+ "Z2_angle=math.atan(Xc/Rmax)\n",
+ "I2_m = Vs/Z2_m\n",
+ "I2_m = math.floor(I2_m*10**6)/10**6\n",
+ "I2_angle = Z2_angle\n",
+ "V2c_m = I2_m*Xc\n",
+ "V2c_m = math.ceil(V2c_m*100)/100\n",
+ "V2c_angle = I2_angle*(180/math.pi)-90\n",
+ "alfa2 = (180/math.pi)*math.asin(Vc/(math.sqrt(2)*V2c_m))+(-V2c_angle)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Xc = %.2f ohms\"%Xc)\n",
+ "print(\"\\n(a) When R = %d ohms\\n Z(magnitude) = %.2f\\t\\tZ(angle) = %.2f\u00b0\"%(Rmin,Z1_m,-Z1_angle*(180/math.pi)))\n",
+ "print(\" I(magnitude) = %.5f\\t\\tI(angle) = %.2f\u00b0\"%(I1_m,I1_angle*(180/math.pi)))\n",
+ "print(\"\\nVoltage across capacitor,\\nV(magnitude) = %.2f\\t\\tV(angle) = %.2f\u00b0\"%(Vc_m,Vc_angle))\n",
+ "print(\"\\nMinimum firing angle = %.2f\u00b0\"%alfa1)\n",
+ "\n",
+ "print(\"\\n(b) When R = %d ohms\\n Z(magnitude) = %.2f\\t\\tZ(angle) = %.2f\u00b0\"%(Rmax,Z2_m,-Z2_angle*(180/math.pi)))\n",
+ "print(\" I(magnitude) = %f\\t\\tI(angle) = %.2f\u00b0\"%(I2_m,I2_angle*(180/math.pi)))\n",
+ "print(\"\\nVoltage across capacitor,\\nV(magnitude) = %.2f\\t\\tV(angle) = %.2f\u00b0\"%(V2c_m,V2c_angle))\n",
+ "print(\"\\nMaximum firing angle = %.2f\u00b0\"%(math.ceil(alfa2*10)/10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Xc = 5305.15 ohms\n",
+ "\n",
+ "(a) When R = 2000 ohms\n",
+ " Z(magnitude) = 5669.62\t\tZ(angle) = -69.34\u00b0\n",
+ " I(magnitude) = 0.04057\t\tI(angle) = 69.34\u00b0\n",
+ "\n",
+ "Voltage across capacitor,\n",
+ "V(magnitude) = 215.23\t\tV(angle) = -20.66\u00b0\n",
+ "\n",
+ "Minimum firing angle = 25.37\u00b0\n",
+ "\n",
+ "(b) When R = 20000 ohms\n",
+ " Z(magnitude) = 20691.60\t\tZ(angle) = -14.86\u00b0\n",
+ " I(magnitude) = 0.011115\t\tI(angle) = 14.86\u00b0\n",
+ "\n",
+ "Voltage across capacitor,\n",
+ "V(magnitude) = 58.97\t\tV(angle) = -75.14\u00b0\n",
+ "\n",
+ "Maximum firing angle = 92.60\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.28, Page no. 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# UJT relaxation circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 32.0 #voltage\n",
+ "h = 0.63 # voltage gain\n",
+ "Ip = 10*10**-6 # current \n",
+ "Vv = 3.5 # voltage drop\n",
+ "Iv = 10*10**-3 # current through the circuit\n",
+ "Vf = 0.5 # forward voltage drop across p-n junction\n",
+ "f = 50.0 # frequency of ascillation \n",
+ "t = 50.0*10**-6 # width of triggering pulse(given value is 50ms but used value is 50 micro-sec) \n",
+ "C = 0.4*10**-6 # Capacitance(assumed)\n",
+ "\n",
+ "#Calculations\n",
+ "T = 1/f\n",
+ "Vp = V*h+Vf\n",
+ "Rmax = (V-Vp)/Ip # R should be less than the given value\n",
+ "Rmin = (V-Vv)/Iv # R should be more than the given value\n",
+ "R = T/(C*math.log(1/(1-h)))\n",
+ "R4 = t/C\n",
+ "R3 = 10**4/(h*V)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The value of R = %.2f*10^3 ohm is within the Rmax = %.3f*10^6 ohm and Rmin = %.2f*10^3 ohm\"%(R*10**-3,Rmax*10**-6,Rmin*10**-3))\n",
+ "print(\"Hence the value is suitable.\\n\\nR4 = %d ohm \\nR3 = %d ohm\"%(R4,R3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The value of R = 50.29*10^3 ohm is within the Rmax = 1.134*10^6 ohm and Rmin = 2.85*10^3 ohm\n",
+ "Hence the value is suitable.\n",
+ "\n",
+ "R4 = 125 ohm \n",
+ "R3 = 496 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 101
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.29, Page No. 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#values of various components of circuit(referring to fig.2.36(a))\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "f = 2.0*10**3 # ouutput frequency\n",
+ "Vdc = 10 # input voltage\n",
+ "h = 0.6 # voltage gain\n",
+ "I = 0.005 # peak discharge current\n",
+ "v = 0.5 # voltage drop across p-n junction(assumed)\n",
+ "\n",
+ "#Calculation\n",
+ "Vp = (Vdc*h)+v\n",
+ "R = (Vdc-Vp)/I # R should be less than this value\n",
+ "T = 1.0/f\n",
+ "C1 = 0.5*10**-6 # capacitance(assumed)\n",
+ "R1 = (T)/(C1*math.log(1/(1-h)))\n",
+ "\n",
+ "C2 = 1.0*10**-6 # capacitance(assumed)\n",
+ "R2 = (T)/(C2*math.log(1/(1-h)))\n",
+ "\n",
+ "#Result\n",
+ "print(\"for C = %.1f micro-F, R = %d Ohm. \\nThis value of R is not suitable because R must be less than %d ohm.\"%(C1*10**6,R1,R))\n",
+ "print(\"\\nfor C = %.1f micro-F, R = %.1f Ohm.\\nThis value is suitable because R is less than %d ohm\"%(C2*10**6,R2,R))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for C = 0.5 micro-F, R = 1091 Ohm. \n",
+ "This value of R is not suitable because R must be less than 700 ohm.\n",
+ "\n",
+ "for C = 1.0 micro-F, R = 545.7 Ohm.\n",
+ "This value is suitable because R is less than 700 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.30, Page No. 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Range of firing angle\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vs = 230.0 # supply voltage\n",
+ "Rmin= 1000.0 # minimum value of R1 resistor\n",
+ "Rmax = 22*10**3 # maximum value of R1 resistor\n",
+ "Vg = 2.0 # gate triggering voltage\n",
+ "C = 0.47*10**-6 # capacitor value\n",
+ "f = 50.0 # frequency\n",
+ "#Calculations\n",
+ "# For Rmin\n",
+ "theta = (180/math.pi)*math.atan(2*math.pi*f*C*Rmin)\n",
+ "theta = math.ceil(theta*10)/10\n",
+ "Vc = Vs*math.cos(theta*math.pi/180)\n",
+ "Vc = math.floor(Vc*100)/100\n",
+ "alfa = ((180/math.pi)*math.asin(Vg/(math.sqrt(2)*Vc)))+theta\n",
+ "alfa = math.floor(alfa*10)/10\n",
+ "\n",
+ "# for Rmax\n",
+ "theta2 = (180/math.pi)*math.atan(2*math.pi*f*C*Rmax)\n",
+ "theta2 = math.ceil(theta2*10)/10\n",
+ "Vc2 = Vs*math.cos(theta2*math.pi/180)\n",
+ "Vc2 = math.floor(Vc2*100)/100\n",
+ "alfa2 = ((180/math.pi)*math.asin(Vg/(math.sqrt(2)*Vc2)))+theta2\n",
+ "alfa2 = math.ceil(alfa2*10)/10\n",
+ "\n",
+ "#Result\n",
+ "print(\"Minimum firing angle = %.1f\u00b0\"%alfa)\n",
+ "print(\"Maximum firing angle = %.1f\u00b0\"%alfa2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum firing angle = 8.7\u00b0\n",
+ "Maximum firing angle = 74.1\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 137
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.31, Page No. 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# UJT relaxation oscillator design(reffering to fig.2.40)\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "f = 50.0 # frequency of supply\n",
+ "Vbb = 12.0 # typical input vpltage\n",
+ "P = 300*10**3 # maximumm average power dissipation\n",
+ "Rbb = 5.6*10**3 # base resistor\n",
+ "Iv = 4*10**-3 # Valley point voltage\n",
+ "h = 0.63 # intrinsic stand off ratio\n",
+ "Vd = 0.5 # drop across p-n junction\n",
+ "Vv = 2.0 # Valley point voltage\n",
+ "Ip = 5*10**-6 # peak point current\n",
+ "v = 0.18 # minimum voltage for which SCR will not trigger\n",
+ "\n",
+ "#calculation\n",
+ "T = 1/f\n",
+ "#operating point should be on the left of valley point\n",
+ "R_1 = (Vbb-Vv)/Iv # R should be greater than this value\n",
+ "Vp = (h*Vbb)+Vd\n",
+ "#operation point should lie in the negative resistance region of characteristics of UJT\n",
+ "R_2 = (Vbb-Vp)/Ip # R should be less than this value\n",
+ "C = 0.02*10**-6 # assumed\n",
+ "R_3 = T/(C*math.log(1/(1-h)))\n",
+ "\n",
+ "C2 = 0.04*10**-6 # assumed\n",
+ "R_4 = T/(C2*math.log(1/(1-h)))\n",
+ "R = 500*10**3 # assumed\n",
+ "Rmax = R+R_1\n",
+ "R3_1 = (10**4)/(h*Vbb)\n",
+ "R3 = 1200 # assumed\n",
+ "R4_1 = v*(R3+Rbb)/(Vbb-v) # R4 value should be less than this value\n",
+ "R4 = 100 # assumed \n",
+ "tw = R4*C2\n",
+ "tow_min = R_1*C2*math.log(1/(1-h))\n",
+ "alfa_min = tow_min*(360/T)\n",
+ "tow_max = Rmax*C2*math.log(1/(1-h))\n",
+ "alfa_max = tow_max*(360/T)\n",
+ "\n",
+ "#Result\n",
+ "print(\"For C = %.2f micro F, R = %.2f k-ohm\\nThis value of R is more than maximum of %d k-ohm.\"%(C*10**6,R_3/1000,R_2/1000) )\n",
+ "print(\"Hence not suitable.\")\n",
+ "print(\"\\nFor C = %.2f micro F, R = %.2f K-ohm.\"%(C2*10**6,R_4/1000))\n",
+ "print(\"As this is less than max value. It is suitable. \\nLets assume R = %d k-ohm\"%(R/1000))\n",
+ "print(\"Rmax = %.1f k-ohm\"%(Rmax/1000))\n",
+ "print(\"\\nR3 = %.2f k-ohm. so take nearest value R3 = %.1f k-ohm\"%(R3_1/1000,R3/1000.0))\n",
+ "print(\"\\nR4 = %.2f ohm. so take nearest value R4 = %.1f ohm\"%(R4_1,R4))\n",
+ "print(\"\\nMinimum firing angle = %.2f\u00b0\"%alfa_min)\n",
+ "print(\"Maximum firing angle = %.1f\u00b0\"%alfa_max)\n",
+ "print(\"\\nThough maximum firing angle available is %.1f\u00b0, it will not be needed\"%alfa_max)\n",
+ "print(\"because in a single phase full wave converter the maximum firing angle is 180\u00b0\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For C = 0.02 micro F, R = 1005.78 k-ohm\n",
+ "This value of R is more than maximum of 788 k-ohm.\n",
+ "Hence not suitable.\n",
+ "\n",
+ "For C = 0.04 micro F, R = 502.89 K-ohm.\n",
+ "As this is less than max value. It is suitable. \n",
+ "Lets assume R = 500 k-ohm\n",
+ "Rmax = 502.5 k-ohm\n",
+ "\n",
+ "R3 = 1.32 k-ohm. so take nearest value R3 = 1.2 k-ohm\n",
+ "\n",
+ "R4 = 103.55 ohm. so take nearest value R4 = 100.0 ohm\n",
+ "\n",
+ "Minimum firing angle = 1.79\u00b0\n",
+ "Maximum firing angle = 359.7\u00b0\n",
+ "\n",
+ "Though maximum firing angle available is 359.7\u00b0, it will not be needed\n",
+ "because in a single phase full wave converter the maximum firing angle is 180\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 166
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.32, Page No.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# conduction time of thyristor\n",
+ "\n",
+ "import math\n",
+ "#variable declaratrion\n",
+ "R =0.8 # load resistance\n",
+ "L = 10*10**-6 # inductance\n",
+ "C = 50*10**-6 # capacitance\n",
+ "\n",
+ "#calculations\n",
+ "R1 = math.sqrt(4*L/C) # R should be less than this value\n",
+ "t = math.pi/(math.sqrt((1/(L*C))-((R**2)/(4*L**2))))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Value of sqrt(4L/C) is %.4f and give R = %.1f\\nTherefore, the circuit is underdamped.\"%(R1,R))\n",
+ "print(\"\\nt0 = %.2f*10**-6 seconds\"%(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of sqrt(4L/C) is 0.8944 and give R = 0.8\n",
+ "Therefore, the circuit is underdamped.\n",
+ "\n",
+ "t0 = 157.08*10**-6 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 169
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.33, Page No. 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Values of L and C\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "I = 8.0 # load current\n",
+ "V = 90.0 # Supply voltage\n",
+ "t = 40.0*10**-6 # turn off time\n",
+ "\n",
+ "#calculation\n",
+ "#print(\"Assume peak value of capacitor current to be twice the load cuuren.\")\n",
+ "C_by_L = (2*I/V)**2 # using eq 2.33\n",
+ "#print(\"Assume that thyristor is reverse biased for one-fourth period of resonant circuit.\")\n",
+ "CL = (t*2/math.pi)**2\n",
+ "# (2*I/V)^2*L^2 =(t*2/math.pi)^2\n",
+ "\n",
+ "L = math.sqrt(CL/C_by_L)\n",
+ "C =C_by_L*L\n",
+ "\n",
+ "print(\"L = %.2f*10**-6 H\\nC = %.3f*10**-6 F\"%(L*10**6,C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 143.24*10**-6 H\n",
+ "C = 4.527*10**-6 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 173
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.34, Page No. 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Value of C for commutation\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R = 10 # load resistace\n",
+ "V = 100 # supply voltage \n",
+ "t = 50 * 10**-6 # turn off time\n",
+ "\n",
+ "#Calculations\n",
+ "C = t/(R*math.log(2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"C = %.2f*10^-6 F\"%(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 7.21*10^-6 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 176
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.35, Page No. 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# L and C of commutation circuit\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "V = 100 # supply voltage\n",
+ "I = 40 # maximumm load current\n",
+ "T = 40*10**-6 # turn off time\n",
+ "t = 1.5 # extra 50% tolerance\n",
+ "\n",
+ "#Calculation\n",
+ "T = T*t\n",
+ "C = I*T/V\n",
+ "L = (V**2)*C/(I**2)\n",
+ "Ip = V*math.sqrt(C/L)\n",
+ "L2 = 2* 10**-4 # assume\n",
+ "Ip2 = V*math.sqrt(C/L2)\n",
+ "print(\"C = %.0f*10^-6 F\\nL = %.1f*10^-4 H\\nPeak capacitor current = %d A\"%(C*10**6,L*10**4,Ip))\n",
+ "print(\"\\nPeak capacitor current should be less than maximum load currentof %d A. If L is selected as %d *10^-4 H,\"%(I,L2*10**4))\n",
+ "print(\"the peak capacitor current will be %.1f A. Since this is less than %d A, this value of L is satisfactory.\"%(Ip2,I))\n",
+ "print(\"\\nHence,\\nC = %.0f*10^-6 F\\nL = %.1f*10^-4 H\"%(C*10**6,L2*10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 24*10^-6 F\n",
+ "L = 1.5*10^-4 H\n",
+ "Peak capacitor current = 40 A\n",
+ "\n",
+ "Peak capacitor current should be less than maximum load currentof 40 A. If L is selected as 2 *10^-4 H,\n",
+ "the peak capacitor current will be 34.6 A. Since this is less than 40 A, this value of L is satisfactory.\n",
+ "\n",
+ "Hence,\n",
+ "C = 24*10^-6 F\n",
+ "L = 2.0*10^-4 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 187
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.36, Page No. 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# current rating of the thyristor\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vdc = 100.0 # input voltage\n",
+ "L = 0.1 *10**-3 # Inductance\n",
+ "C = 10*10**-6 # capacitance\n",
+ "Vc = 100.0 # iinitial voltage on capacitor\n",
+ "t = 25.0*10**-6 # thyristor turn offf time\n",
+ "I = 10.0 # Thyristor load current\n",
+ "\n",
+ "#Calculations\n",
+ "t_off = Vc*C/I\n",
+ "Ic = Vdc*math.sqrt(C/L)\n",
+ "\n",
+ "# Result\n",
+ "print(\"t_off = %d *10^-6 S\\nt_off is more than thyristor turn off time and is thus sufficient to commutate the main circuit.\"%(t_off*10**6))\n",
+ "print(\"\\nPeak capacitor current = %.2fA \"%Ic)\n",
+ "print(\"Maximum current rating of thyristor should be more than %.2fA\"%Ic)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "t_off = 100 *10^-6 S\n",
+ "t_off is more than thyristor turn off time and is thus sufficient to commutate the main circuit.\n",
+ "\n",
+ "Peak capacitor current = 31.62A \n",
+ "Maximum current rating of thyristor should be more than 31.62A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.37, Page No. 97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# value of R and C for snubber circuit\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "dv_by_dt = 25*10**6 # Thyristor's dv/dt rating\n",
+ "L = 0.2 *10**-3 # source inductance\n",
+ "V = 230 # Supply voltage\n",
+ "df = 0.65 # damping factor\n",
+ "\n",
+ "#Calculation\n",
+ "Vm = V*math.sqrt(2) \n",
+ "C = (1/(2*L))*(0.564*Vm/dv_by_dt)**2\n",
+ "R = 2*df*math.sqrt(L/C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C = %.2f*10^-9 F\\n\\nR = %.1f ohm\"%(C*10**9,R))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 134.62*10^-9 F\n",
+ "\n",
+ "R = 50.1 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.38, Page No.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# snuubber circuit parameters\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 300.0 # input voltage\n",
+ "Rl = 10.0 # load resistance\n",
+ "f = 2000.0 # operating frequency otf the circuit\n",
+ "dv_by_dt = 100.0*10**6 # required dv/dt rating of the circuit\n",
+ "I = 100.0 # discharge current\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "R = V/I\n",
+ "C = (1-(1/math.e))*Rl*V/(dv_by_dt*((R+Rl)**2))\n",
+ "C = math.floor(C*10**9)/10**9\n",
+ "#(b)\n",
+ "P = (C*V**2*f)/2\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nR = %f ohm\\nC = %.3f*10^-6 F\"%(R,C*10**6))\n",
+ "print(\"\\n(b)\\nSnubber power loss = %.2f W\"%P)\n",
+ "print(\"\\nAll the energy stored in capacitor C is dissipated in resistance R. Hence power rating of R is %.2f W.\"%P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "R = 3.000000 ohm\n",
+ "C = 0.112*10^-6 F\n",
+ "\n",
+ "(b)\n",
+ "Snubber power loss = 10.08 W\n",
+ "\n",
+ "All the energy stored in capacitor C is dissipated in resistance R. Hence power rating of R is 10.08 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.39, Page No.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# maximum permissiible values of dv/dt and di/dt\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R = 4.0 # resistance\n",
+ "L = 6.0*10**-6 # inductance\n",
+ "C = 6.0*10**-6 # capacitance\n",
+ "V = 300.0 # Supply voltage\n",
+ "\n",
+ "#calculations\n",
+ "di_dt = V/L\n",
+ "Isc = V/R\n",
+ "dv_dt =(R* di_dt)+(Isc/C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum di/dt = %.0f*10^6 A/s\\n\\nmaximum permissible dv/dt = %.1f*10^6 V/s\"%(di_dt*10**-6,dv_dt*10**-6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum di/dt = 50*10^6 A/s\n",
+ "\n",
+ "maximum permissible dv/dt = 212.5*10^6 V/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.40, Page No.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# snubber circuit designe\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "\n",
+ "Rl = 8.0 # load resistance\n",
+ "V = 230.0 # supply voltage\n",
+ "I = 200.0 # repititive peak current \n",
+ "di_dt = 40.0*10**6 # max. di/di rating\n",
+ "dv_dt = 150.0*10**6 # max. dv/dv rating\n",
+ "sf = 2.0 # safety factor for thyristor\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "I1 = I/2.0\n",
+ "di_dt2 = di_dt/2.0\n",
+ "dv_dt2 = dv_dt/2\n",
+ "Vp = V*math.sqrt(2)\n",
+ "#Vp = math.floor((Vp*10)/10)\n",
+ "L2 = Vp/di_dt2\n",
+ "L2 = math.floor(L2*10**8)/10**8\n",
+ "R2 = L2*dv_dt2/Vp\n",
+ "Ip = Vp/Rl\n",
+ "Ic = (math.floor(Vp*10)/10)/R2\n",
+ "It = math.floor(Ip*100)/100+Ic\n",
+ "Ic_max = I1 - Ip\n",
+ "Ic_max = math.ceil(Ic_max*100)/100\n",
+ "R = Vp /Ic_max\n",
+ "R = math.ceil(R)\n",
+ "h = 0.65 #assumed \n",
+ "C = 4*(h**2)*L2/R**2\n",
+ "dv_dt3 = Vp/((R+Rl)*C)\n",
+ "\n",
+ "#Result\n",
+ "print(\"when safety factor is 2 ,maximum permisible ratings are:\")\n",
+ "print(\"max. di/dt = %.0f*10^6 A/s\\nmax. dv/dt = %.0f*10^6 V/s\"%(di_dt2*10**-6,dv_dt2*10**-6))\n",
+ "print(\"\\nPeak value of input voltage = %.1f V\"%(math.floor(Vp*10)/10))\n",
+ "print(\"L = %.2f*10^-6 H \\nR = %.2f ohm\"%(L2*10**6,R2))\n",
+ "print(\"Peak load current = %.2fA\\nPeak capacitor discharge current = %.2f A\"%(math.floor(Ip*100)/100,Ic))\n",
+ "print(\"Total current through capacitor = %.2f\"%It)\n",
+ "print(\"\\nSince total current through capacitor is more than permissible vale. Hence max capacitor discharge current = %.2fA\"%Ic_max)\n",
+ "print(\"R = %.0f ohm\\nC = %.4f*10^-6F\"%(R,C*10**6))\n",
+ "print(\"dv/dt = %.2f*10^6 V/s\\nSince this value is within specified limit the design is safe. \"%(math.floor(dv_dt3*10**-4)/100))\n",
+ "print(\"Hence, R = %d ohm, C = %.4f micro-F and L = %.2f micro-H\"%(R,C*10**6,L2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when safety factor is 2 ,maximum permisible ratings are:\n",
+ "max. di/dt = 20*10^6 A/s\n",
+ "max. dv/dt = 75*10^6 V/s\n",
+ "\n",
+ "Peak value of input voltage = 325.2 V\n",
+ "L = 16.26*10^-6 H \n",
+ "R = 3.75 ohm\n",
+ "Peak load current = 40.65A\n",
+ "Peak capacitor discharge current = 86.74 A\n",
+ "Total current through capacitor = 127.39\n",
+ "\n",
+ "Since total current through capacitor is more than permissible vale. Hence max capacitor discharge current = 59.35A\n",
+ "R = 6 ohm\n",
+ "C = 0.7633*10^-6F\n",
+ "dv/dt = 30.43*10^6 V/s\n",
+ "Since this value is within specified limit the design is safe. \n",
+ "Hence, R = 6 ohm, C = 0.7633 micro-F and L = 16.26 micro-H\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.41, Page No. 100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fault clearing time(referring to fig.2.59)\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "I2t = 30 # I2t rating of thyristor\n",
+ "V = 230 # supply voltage\n",
+ "#For resistor values refer to fig 2.59\n",
+ "R1 = 2.0\n",
+ "R2 = 1.0\n",
+ "R3 = 5.0\n",
+ "R4 = 6.0\n",
+ "R5 = 5.0 \n",
+ "#calculation\n",
+ "Rnet = R1+(R3*R2)/R4\n",
+ "If = math.sqrt(2)*V/Rnet\n",
+ "tc = I2t/(If**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"tc = %.3f*10^-3 seconds \"%(math.ceil(tc*1000*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "tc = 2.277*10^-3 seconds \n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.42, Page No.103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# number of thyristors in series and parallel\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 3*10**3 # supply voltage\n",
+ "I = 750.0 # supply current\n",
+ "V1 = 800.0 # Thyristor voltage rating\n",
+ "I1 = 175.0 # Thyristor current rating\n",
+ "d = 0.25 # derating\n",
+ "\n",
+ "\n",
+ "# Calculation\n",
+ "np = I/((1-d)*I1)\n",
+ "ns = V/((1-d)*V1)\n",
+ "print(\"np = %.2f or %d\"%(np,math.ceil(np)))\n",
+ "print(\"ns = %d\"%(math.ceil(ns)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "np = 5.71 or 6\n",
+ "ns = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 97
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.43, Page No. 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Value of R and C\n",
+ "\n",
+ "import math\n",
+ "#variable declaration(referring to example 2.42)\n",
+ "V = 3*10**3 # supply voltage\n",
+ "I = 750.0 # supply current\n",
+ "V1 = 800.0 # Thyristor voltage rating\n",
+ "I1 = 175.0 # Thyristor current rating\n",
+ "d = 0.25 # derating\n",
+ "Ib = 8*10**-3 # maximum forward leakage current\n",
+ "del_Q = 30*10**-6 # recovery charge difference\n",
+ "ns = 5 # number of series thyristors \n",
+ "\n",
+ "#Calculations\n",
+ "R = ((ns*V1)-V)/((ns-1)*Ib)\n",
+ "C = (ns-1)*del_Q/(ns*V1-V)\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %.2f*10^3 ohm\\nC = %.2f*10^-6 F\"%(R/1000,C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 31.25*10^3 ohm\n",
+ "C = 0.12*10^-6 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 99
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.44, Page No. 104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# series resistance\n",
+ "\n",
+ "import math\n",
+ "# variabe declaration\n",
+ "I1 = 200 # thyristor1 current rating\n",
+ "I2 = 300 # thyristor2 current rating\n",
+ "V1 = 1.5 # on state voltage drop of thyristor1 \n",
+ "V2 = 1.2 # on state voltage drop of thyristor2\n",
+ "\n",
+ "#Calculations\n",
+ "R = (V1-V2)/(I2-I1)\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %.3f ohm\"%R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 0.003 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 100
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.45, Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Thyristor parameters\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "ns = 12 # no of series thyristors\n",
+ "V = 16*10**3 # maximum DC voltage rating\n",
+ "Ib = 10*10**-3 # maximum leakage current of thyristor\n",
+ "del_Q = 150 *10**-6 # recovery charge differences of thyristors\n",
+ "R = 56*10**3 # resistance\n",
+ "C = 0.5 *10**-6 # Capacitance\n",
+ "\n",
+ "#Calculations\n",
+ "Vd1 = (V+(ns-1)*R*Ib)/ns\n",
+ "ssvd = 1-(V/(ns*Vd1))\n",
+ "Vd2 = (V+((ns-1)*del_Q/C))/ns\n",
+ "tsvd = 1-(V/(ns*Vd2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Maximum steady state voltage rating = %.2f V\"%Vd1)\n",
+ "print(\"(b) Steady state voltage derating = %.3f or %.1f%%\"%(ssvd,ssvd*100))\n",
+ "print(\"(c) Maximum transient state voltage rating = %.2f V\"%Vd2)\n",
+ "print(\"(d) Transient state voltage derating = %.3f or %.1f%%\"%(tsvd,tsvd*100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Maximum steady state voltage rating = 1846.67 V\n",
+ "(b) Steady state voltage derating = 0.278 or 27.8%\n",
+ "(c) Maximum transient state voltage rating = 1608.33 V\n",
+ "(d) Transient state voltage derating = 0.171 or 17.1%\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.46, Page No.104"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# No of Thyristor\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 500.0 # single thyristor voltage rating\n",
+ "I = 75.0 # single thyristor current rating\n",
+ "Vmax = 7.5*10**3 # overall voltage rating of the circuit\n",
+ "Imax = 1.0*10**3 # overall current rating of the circuit\n",
+ "df = 0.14 # derating factor\n",
+ "\n",
+ "#Calcaulations\n",
+ "ns = Vmax/((1-df)*V)\n",
+ "np = Imax/((1-df)*I)\n",
+ "\n",
+ "#Result\n",
+ "print(\"No of thyristors in series, ns = %.2f say %d\"%(ns,math.ceil(ns)))\n",
+ "print(\"No of thyristors in parallel, np = %.2f say %d\"%(np,math.ceil(np)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No of thyristors in series, ns = 17.44 say 18\n",
+ "No of thyristors in parallel, np = 15.50 say 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.47, Page No. 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Turn off voltage and discharge current through SCR\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vmax = 8.0*10**3 # max voltage rating of the circuit\n",
+ "R = 20.0*10**3 # static equalising resistance \n",
+ "Rc = 25.0 # Resistace of dynamic equalising circuit\n",
+ "C = 0.1*10**-6 # Capacitance of dynamic equalising circuit\n",
+ "Ib1 = 22.0*10**-3 # leakage current of thyristor1\n",
+ "Ib2 = 20.0*10**-3 # leakage current of thyristor2\n",
+ "Ib3 = 18.0*10**-3 # leakage current of thyristor3\n",
+ "\n",
+ "\n",
+ "#Calculations \n",
+ "#(a)\n",
+ "I = ((Vmax/R)+(Ib1+Ib2+Ib3))/3\n",
+ "V1 = (I-Ib1)*R\n",
+ "V2 = (I-Ib2)*R\n",
+ "V3 = (I-Ib3)*R\n",
+ "#(b)\n",
+ "I1 = V1/Rc\n",
+ "I2 = V2/Rc\n",
+ "I3 = V3/Rc\n",
+ "\n",
+ "#Result\n",
+ "print(\"Voltage across SCR 1 = %.1fV\"%(math.floor(V1*10)/10))\n",
+ "print(\"Voltage across SCR 2 = %.1fV\"%(math.floor(V2*10)/10))\n",
+ "print(\"Voltage across SCR 3 = %.1fV\"%(math.floor(V3*10)/10))\n",
+ "print(\"Discharge current through SCR 1 = %.2fA\"%(math.floor(I1*100)/100))\n",
+ "print(\"Discharge current through SCR 2 = %.2fA\"%(math.floor(I2*100)/100))\n",
+ "print(\"Discharge current through SCR 3 = %.2fA\"%(math.floor(I3*100)/100))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Voltage across SCR 1 = 2626.6V\n",
+ "Voltage across SCR 2 = 2666.6V\n",
+ "Voltage across SCR 3 = 2706.6V\n",
+ "Discharge current through SCR 1 = 105.06A\n",
+ "Discharge current through SCR 2 = 106.66A\n",
+ "Discharge current through SCR 3 = 108.26A\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_3.ipynb b/Power_Electronics/Power_electronics_ch_3.ipynb
new file mode 100755
index 00000000..8f24e4d1
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_3.ipynb
@@ -0,0 +1,2276 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.1, Page No. 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.2, Page No. 129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.3, Page No. 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Half wave diode rectifier\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#Variable declaration\n",
+ "V = 12.0 # Voltage of the battery to be charged\n",
+ "B = 150.0 # battery capacity in Wh\n",
+ "I = 4.0 # average current requirement\n",
+ "t = 4.0 # transformer primary to secondary ratio \n",
+ "Vi = 230.0 # voltage at transformer primary\n",
+ "\n",
+ "# Calculations\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vp = Vi*sqrt_2/t\n",
+ "#(a)\n",
+ "alfa = (180/math.pi)*(math.asin(V/Vp))\n",
+ "ang_c = (180-alfa)-alfa\n",
+ "ang_c = math.floor(ang_c*100)/100\n",
+ "#(b)\n",
+ "def f(wt):\n",
+ " return ((Vp*math.sin(wt))-V)/(2*math.pi*I)\n",
+ "wt_lower=(alfa*math.pi/180)\n",
+ "wt_upper =math.pi-(alfa*math.pi/180)\n",
+ "val1 = quad(f,wt_lower,wt_upper)\n",
+ "R = val1[0]\n",
+ "R = math.floor(R*100)/100\n",
+ "#(c)\n",
+ "def g(wt):\n",
+ " return (((Vp*math.sin(wt))-V)**2)/(2*math.pi*(R**2))\n",
+ "val2 = quad(g,wt_lower,wt_upper)\n",
+ "Irms = val2[0]\n",
+ "Irms = math.floor(math.sqrt(Irms)*100)/100\n",
+ "P = (Irms**2)*R\n",
+ "#(d)\n",
+ "T = B/(V*I)\n",
+ "#(e)\n",
+ "eff = (V*I)/((V*I)+P)\n",
+ "#(f)\n",
+ "PIV = Vp+V\n",
+ "\n",
+ "#Results\n",
+ "print(\"(a) Conduction angle = %.2f\u00b0\\n(b) R = %.2f ohm\\n(c) Irms = %.2f A\\n Resistor power rating = %.1f W\"%(ang_c,R,Irms,P))\n",
+ "print(\"(d) Time of charging = %.3f hours\\n(e) Rectifier efficiency = %.4f or %.2f%%\\n(f) PIV = %.3f V\"%(T,eff,eff*100,PIV))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Conduction angle = 163.02\u00b0\n",
+ "(b) R = 5.04 ohm\n",
+ "(c) Irms = 6.58 A\n",
+ " Resistor power rating = 218.2 W\n",
+ "(d) Time of charging = 3.125 hours\n",
+ "(e) Rectifier efficiency = 0.1803 or 18.03%\n",
+ "(f) PIV = 93.305 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.4, Page No. 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Full wave centre tapped rectifier\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Vm = 100.0 # transformer secondary voltage from mid point to each end\n",
+ "R = 5.0 # resistance\n",
+ "\n",
+ "#Calculation\n",
+ "#(b)\n",
+ "Idc = 2*Vm/(math.pi*R)\n",
+ "Idc = math.floor(Idc*1000)/1000\n",
+ "Vdc = Idc*R\n",
+ "Irms = 0.707*Vm/R\n",
+ "Pdc = R*Idc**2\n",
+ "Pdc = math.ceil(Pdc*100)/100\n",
+ "Pac = R*Irms**2\n",
+ "Pac = math.ceil(Pac*10)/10\n",
+ "eff = Pdc/Pac\n",
+ "FF = math.floor(((0.707*Vm*math.pi)/(2*Vm))*100)/100\n",
+ "RF = math.sqrt((FF**2)-1)\n",
+ "TUF = (((2/math.pi)**2)/(2*0.707*0.5))*100\n",
+ "PIV =2*Vm\n",
+ "\n",
+ "# Result\n",
+ "print(\"Idc = %.3f A\\nVdc = %.2f V\\nIrms = %.2f A\\nPdc = %.2f\\nPac = %.1f\\nEfficiency = %.3f\"%(Idc,Vdc,Irms,Pdc,Pac,eff))\n",
+ "print(\"FF = %.2f\\nRF = %.3f\\nTUF = %.2f%%\\nPIV = %d\\nCF = %f\"%(FF,RF,TUF,PIV,math.sqrt(2)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Idc = 12.732 A\n",
+ "Vdc = 63.66 V\n",
+ "Irms = 14.14 A\n",
+ "Pdc = 810.52\n",
+ "Pac = 999.7\n",
+ "Efficiency = 0.811\n",
+ "FF = 1.11\n",
+ "RF = 0.482\n",
+ "TUF = 57.32%\n",
+ "PIV = 200\n",
+ "CF = 1.414214\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.5, Page No.133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.6, Page No.135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase diode bridge rectifier\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vm = 100.0 # Peak input voltage\n",
+ "R = 5.0 # load resistance\n",
+ "\n",
+ "#Calculation\n",
+ "#(b)\n",
+ "Idc = 2*Vm/(math.pi*R)\n",
+ "Idc = math.floor(Idc*1000)/1000\n",
+ "Vdc = Idc*R\n",
+ "Irms = 0.707*Vm/R\n",
+ "Pdc = R*Idc**2\n",
+ "Pdc = math.ceil(Pdc*100)/100\n",
+ "Pac = R*Irms**2\n",
+ "Pac = math.ceil(Pac*10)/10\n",
+ "eff = Pdc/Pac\n",
+ "FF = math.floor(((0.707*Vm*math.pi)/(2*Vm))*100)/100\n",
+ "RF = math.sqrt((FF**2)-1)\n",
+ "PIV =Vm\n",
+ "\n",
+ "# Result\n",
+ "print(\"Idc = %.3f A\\nVdc = %.2f V\\nIrms = %.2f A\\nPdc = %.2f\\nPac = %.1f\\nEfficiency = %.3f\"%(Idc,Vdc,Irms,Pdc,Pac,eff))\n",
+ "print(\"FF = %.2f\\nRF = %.3f\\nPIV = %d\\nCF = %f\"%(FF,RF,PIV,math.sqrt(2)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Idc = 12.732 A\n",
+ "Vdc = 63.66 V\n",
+ "Irms = 14.14 A\n",
+ "Pdc = 810.52\n",
+ "Pac = 999.7\n",
+ "Efficiency = 0.811\n",
+ "FF = 1.11\n",
+ "RF = 0.482\n",
+ "PIV = 100\n",
+ "CF = 1.414214\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.7, Page No.135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.8, Page No.138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase half wave rectifier circuit\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Vm = 400 # amplitude of output sine wave\n",
+ "alfa = 30 # thyristor firing angle\n",
+ "R = 50 # Load resistance\n",
+ "\n",
+ "#Calculations\n",
+ "alfa = alfa*math.pi/180\n",
+ "Vdc = Vm*(1+math.cos(alfa))/(2*math.pi)\n",
+ "I = Vdc/R\n",
+ "Vrms = Vm*math.sqrt(((math.pi-alfa)/(4*math.pi))+(math.sin(2*alfa)/(8*math.pi)))\n",
+ "Irms = Vrms/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"Average DC voltage = %.1f V\\nAverage load current = %.3f A\"%(Vdc,I))\n",
+ "print(\"RMS voltage = %.1f V\\nRMS current = %.3f A\"%(Vrms,Irms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average DC voltage = 118.8 V\n",
+ "Average load current = 2.376 A\n",
+ "RMS voltage = 197.1 V\n",
+ "RMS current = 3.942 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.9, Page No. 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average current in the circuit\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#Variable declaration\n",
+ "Vm = 100.0 # peak input voltage\n",
+ "V = 50.0 # voltage of battery to be charged\n",
+ "R = 10.0 # load resistance\n",
+ "\n",
+ "#Calculations\n",
+ "wt = math.asin(V/Vm)\n",
+ "wt2= math.pi-wt\n",
+ "def f(wt):\n",
+ " return ((Vm*math.sin(wt))-V)/(2*math.pi*R)\n",
+ "wt_lower=wt\n",
+ "wt_upper =wt2\n",
+ "val = quad(f,wt_lower,wt_upper)\n",
+ "i = val[0]\n",
+ "\n",
+ "#Result\n",
+ "print(\"Average current in the circuit = %.2f A\"%i)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average current in the circuit = 1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.10, Page No. 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average current\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#Variable declaration\n",
+ "Vm = 110.0 # peak input voltage\n",
+ "f = 50.0 # input frequency\n",
+ "Ra = 10.0 # motor armature resistance\n",
+ "E = 55.5 # back emf of the motor\n",
+ "\n",
+ "#Calculations\n",
+ "wt = math.asin(E/(Vm*math.sqrt(2)))\n",
+ "wt2 = math.pi-wt\n",
+ "def f(wt):\n",
+ " return ((math.sqrt(2)*Vm*math.sin(wt))-E)/(2*math.pi*Ra)\n",
+ "wt_lower=wt\n",
+ "wt_upper =wt2\n",
+ "val = quad(f,wt_lower,wt_upper)\n",
+ "i = val[0]\n",
+ "\n",
+ "#Result\n",
+ "print(\"Average current in the circuit = %.3f A\"%i)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average current in the circuit = 2.495 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.11, Page No. 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase half wave rectifier\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "R = 15.0 # load resistance\n",
+ "V = 230.0 # supply voltage\n",
+ "alfa = math.pi/2 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = math.sqrt(2)*V\n",
+ "Vm = math.floor(Vm*10)/10\n",
+ "#(a)\n",
+ "Vdc = Vm*(1+math.cos(alfa))/(2*math.pi)\n",
+ "Vdc = math.ceil(Vdc*100)/100\n",
+ "Idc = Vdc/R\n",
+ "Idc = math.floor(Idc*100)/100\n",
+ "Vrms = Vm*math.sqrt(((math.pi-alfa)/(4*math.pi))+((math.sin(2*alfa))/(8*math.pi)))\n",
+ "Vrms = math.ceil(Vrms*100)/100\n",
+ "Irms =Vrms/R\n",
+ "Irms = math.floor(Irms*100)/100\n",
+ "#(b)\n",
+ "Pdc = Vdc*Idc\n",
+ "Pac = Vrms*Irms\n",
+ "eff = Pdc/Pac\n",
+ "#(c)\n",
+ "FF = Vrms/Vdc\n",
+ "RF = math.sqrt((FF**2)-1)\n",
+ "#(d)\n",
+ "VA = V*Irms\n",
+ "TUF = Pdc/VA\n",
+ "#(e)\n",
+ "PIV = Vm\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nVdc = %.2f V\\nIdc = %.2fA\\nVrms = %.2f V\\nIrms = %.2f A\"%(Vdc,Idc,Vrms,Irms))\n",
+ "print(\"\\n(b)\\nRectification Efficiency = %.3f\"%eff)\n",
+ "print(\"\\n(c)\\nForm Factor = %.2f\\nRipple Factor = %.3f\\n\\n(d)\\nTransformer utilization factor =%.4f\\n\\n(e)PIV = %.1f V\"%(FF,RF,TUF,PIV))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Vdc = 51.76 V\n",
+ "Idc = 3.45A\n",
+ "Vrms = 114.98 V\n",
+ "Irms = 7.66 A\n",
+ "\n",
+ "(b)\n",
+ "Rectification Efficiency = 0.203\n",
+ "\n",
+ "(c)\n",
+ "Form Factor = 2.22\n",
+ "Ripple Factor = 1.984\n",
+ "\n",
+ "(d)\n",
+ "Transformer utilization factor =0.1014\n",
+ "\n",
+ "(e)PIV = 325.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.12, Page No.146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full wave rectifier\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 150.0 # input rms value\n",
+ "R = 30.0 # load resistance\n",
+ "alfa =(math.pi/180)*45 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vdc = V*sqrt_2*(1+math.cos(alfa))/math.pi\n",
+ "I = Vdc/R\n",
+ "Vrms = V*sqrt_2*math.sqrt(((math.pi-alfa)/(2*math.pi))+((math.sin(2*alfa))/(4*math.pi)))\n",
+ "Irms =Vrms/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vdc = %.2f V\\nAverage load current = %.2f A\\nVrms = %d V\\nRMS load current = %.3f A\"%(Vdc,I,Vrms,Irms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vdc = 115.25 V\n",
+ "Average load current = 3.84 A\n",
+ "Vrms = 143 V\n",
+ "RMS load current = 4.767 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.13, Page No. 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Transformer and thyristor parameters\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input to transformer primary\n",
+ "f = 50.0 # input frequency\n",
+ "Vdc = 100.0 # Average values of load voltage\n",
+ "Idc = 15.0 # Average value of load current\n",
+ "alfa = 30*(math.pi/180) # firing angle\n",
+ "d = 1.7 # drop across thyristor\n",
+ "\n",
+ "\n",
+ "#caculatios\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = ((Vdc+d)*math.pi)/(2*math.cos(alfa))\n",
+ "Vm = math.floor(Vm*100)/100\n",
+ "Vrms = Vm/1.4109#math.sqrt(2)::to match the ans in book\n",
+ "N = V/Vrms\n",
+ "#(b)\n",
+ "Irms = math.sqrt((Idc**2)/2)\n",
+ "Irms = math.ceil(Irms*100)/100\n",
+ "Tr = 2*Vrms*Irms\n",
+ "\n",
+ "#(c)\n",
+ "PIV = 2*Vm\n",
+ "#(d)\n",
+ "It = Irms\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nVm = %.2f V\\nRMS voltage of each half cycle of secondary = %.2f V\\nTurn ratio of transformer = %.2f\"%(Vm,Vrms,N))\n",
+ "print(\"\\n(b)Transformer VA rating = %.1f VA\\n\\n(c)PIV = %.2f V\\n\\n(d)RMS value of thyristor current = %.2f A\"%(Tr,PIV,It))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Vm = 184.46 V\n",
+ "RMS voltage of each half cycle of secondary = 130.74 V\n",
+ "Turn ratio of transformer = 1.76\n",
+ "\n",
+ "(b)Transformer VA rating = 2774.3 VA\n",
+ "\n",
+ "(c)PIV = 368.92 V\n",
+ "\n",
+ "(d)RMS value of thyristor current = 10.61 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.14, Page No.148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# thyristor rated voltage\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "P = 10.0*10**3 # rectifier powwer rating\n",
+ "I = 50.0 # thyristor current rating\n",
+ "sf = 2 # safety factor\n",
+ "\n",
+ "#Calculations\n",
+ "Idc = I\n",
+ "#(a)\n",
+ "Vdc = P/Idc\n",
+ "Vm = Vdc*math.pi/2\n",
+ "PIV = 2*Vm\n",
+ "Vt = 2*PIV\n",
+ "#(a)\n",
+ "Vt2 = 2*Vm\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Full wave centre tapped recifier:\\n Thyristor voltage rating = %.2f V\"%Vt)\n",
+ "print(\"\\n(b) Full wave bridge rectifier:\\n Thyristor voltage rating = %.2f V\"%Vt2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Full wave centre tapped recifier:\n",
+ " Thyristor voltage rating = 1256.64 V\n",
+ "\n",
+ "(b) Full wave bridge rectifier:\n",
+ " Thyristor voltage rating = 628.32 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.15, Page No. 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output voltage, firing angle, load current\n",
+ "\n",
+ "import math\n",
+ "from numpy import poly1d\n",
+ "#variable declaaration\n",
+ "V = 230.0 # input voltage\n",
+ "P = 1000.0 # output power rating\n",
+ "Pl = 800.0 # Actual power delivered\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vrms = math.sqrt((Pl*V**2)/P)\n",
+ "Vrms = math.ceil(Vrms*100)/100\n",
+ "#(b)\n",
+ "#After solving equation using taylor seris of X, we got following coefficient. \n",
+ "P = poly1d([128.0/math.factorial(7),0,-32.0/math.factorial(5),0,8.0/math.factorial(3),0,0,(-2*math.pi*(1-(Vrms/V)**2))], variable = 'x')\n",
+ "x = P.r[(P.order+1)/2]*180/math.pi\n",
+ "alfa = math.ceil(x.real)\n",
+ "#(c)\n",
+ "I = Pl/Vrms\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Vrms = %.2f V\\n(b) firing angle = %.0f\u00b0\\n(c) Load current(rms value) = %.3f A\"%(Vrms,alfa,I))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Vrms = 205.72 V\n",
+ "(b) firing angle = 61\u00b0\n",
+ "(c) Load current(rms value) = 3.889 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.16, Page No.149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average power output\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 800.0 # thyristor peak voltage rating\n",
+ "I = 30.0 # average forward current\n",
+ "sf = 2.5 # safety factor\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vm = V/(2*sf)\n",
+ "Vdc = 2*Vm/math.pi\n",
+ "Vdc = math.ceil(Vdc*100)/100\n",
+ "Idc = I/sf\n",
+ "P = Idc*Vdc\n",
+ "#(b)\n",
+ "Vm2 = V/sf\n",
+ "Vdc2 = 2*Vm2/math.pi\n",
+ "Vdc2 = math.ceil(Vdc2*100)/100\n",
+ "Idc2 = I/sf\n",
+ "P2 = Idc2*Vdc2\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) In a mid point converter:\\n Average output power = %.2f W\"%P)\n",
+ "print(\"(b) In a Bridge converter:\\n Average output power = %.2f W\"%P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) In a mid point converter:\n",
+ " Average output power = 1222.32 W\n",
+ "(b) In a Bridge converter:\n",
+ " Average output power = 2444.64 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.17, Page No.150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Bridge converter parameters\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "R = 10.0 # load resistance\n",
+ "alfa = 30*math.pi/180 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "#(b)\n",
+ "Vm = math.sqrt(2)*V\n",
+ "def f(wt):\n",
+ " return math.sin(wt)\n",
+ "wt_lower1 = alfa\n",
+ "wt_upper1 = math.pi\n",
+ "wt_lower2 = math.pi\n",
+ "wt_upper2 = 2*math.pi\n",
+ "val1 = quad(f,wt_lower1,wt_upper1)\n",
+ "val2 = quad(f,wt_lower2,wt_upper2)\n",
+ "Vo =math.floor(((Vm/(2*math.pi))*(val1[0]-val2[0]))*10)/10\n",
+ "I = Vo/R\n",
+ "P = Vo*I\n",
+ "#result\n",
+ "print(\"DC power output = %.3f W\"%P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DC power output = 4004.001 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.18, Page No. 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output voltage and power\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "R = 10.0 # load resistance\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vo = 2*sqrt_2*V/math.pi\n",
+ "Vo = math.floor(Vo*100)/100\n",
+ "I = Vo/R\n",
+ "P = Vo*I\n",
+ "\n",
+ "#Result\n",
+ "print(\"DC power = %.2f W\"%P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DC power = 4286.56 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.19, Page No.154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase bridge converter circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50.0 # input frequency\n",
+ "I = 15.0 # constant load current\n",
+ "R = 0.5 # load resistance\n",
+ "L = 0.3 # inductance\n",
+ "E1 = 100 # back emf for case 1\n",
+ "E2 = -100 # back emf for case 2 \n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "alfa1 = (math.acos((E1+I*R)*math.pi/(2*Vm)))*(180/math.pi)\n",
+ "#(b)\n",
+ "alfa2 = (math.acos((E2+I*R)*math.pi/(2*Vm)))*(180/math.pi)\n",
+ "#(c)\n",
+ "OP1 = (E1*I)+(R*I**2)\n",
+ "OP2 = (E2*I)+(R*I**2)\n",
+ "IP = V*I\n",
+ "pf1 = OP1/IP\n",
+ "pf2 = -OP2/IP\n",
+ "print(\"(a) Firing angle = %.2f\u00b0\"%(math.ceil(alfa1*100)/100))\n",
+ "print(\"(b) Firing angle = %.2f\u00b0\"%alfa2)#Answer in the book is wrong\n",
+ "print(\"(c) when E = %d : input power factor= %.3f lagging\\n When E = %d: input power factor= %.3f lagging\"%(E1,pf1,E2,pf2)) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Firing angle = 58.73\u00b0\n",
+ "(b) Firing angle = 116.54\u00b0\n",
+ "(c) when E = 100 : input power factor= 0.467 lagging\n",
+ " When E = -100: input power factor= 0.402 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.20, Page No.155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average load current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50.0 # frequency\n",
+ "R = 5.0 # load resistance\n",
+ "L = 8*10**-3 # inductance\n",
+ "E = 50.0 # back emf\n",
+ "alfa = 40*(math.pi/180) # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "I = ((2*Vm*math.cos(alfa)/math.pi)-E)/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"Average load current = %.2f A\"%I)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average load current = 21.72 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.21, Page No. 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Transformer and thyristor parameters for full bridge circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input to transformer primary\n",
+ "f = 50.0 # input frequency\n",
+ "Vdc = 100.0 # Average values of load voltage\n",
+ "Idc = 15.0 # Average value of load current\n",
+ "alfa = 30*(math.pi/180) # firing angle\n",
+ "d = 1.7 # drop across thyristor\n",
+ "\n",
+ "\n",
+ "#caculatios\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = ((Vdc+2*d)*math.pi)/(2*math.cos(alfa))\n",
+ "Vrms = Vm/sqrt_2\n",
+ "N = V/Vrms\n",
+ "#(b)\n",
+ "Irms = Idc\n",
+ "Tr = Vrms*Irms\n",
+ "#(c)\n",
+ "PIV = Vm\n",
+ "#(d)\n",
+ "Itrms = Idc/sqrt_2\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nVm = %.2f V\\nRMS voltage of secondary = %.2f V\\nTurn ratio of transformer = %.3f\"%(Vm,Vrms,N))\n",
+ "print(\"\\n(b)Transformer VA rating = %.1f VA\\n\\n(c) PIV = %.2f V\\n\\n(d)RMS value of thyristor current = %.2f A\"%(math.ceil(Tr*10)/10,PIV,Itrms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Vm = 187.55 V\n",
+ "RMS voltage of secondary = 132.64 V\n",
+ "Turn ratio of transformer = 1.734\n",
+ "\n",
+ "(b)Transformer VA rating = 1989.6 VA\n",
+ "\n",
+ "(c) PIV = 187.55 V\n",
+ "\n",
+ "(d)RMS value of thyristor current = 10.61 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.22, Page No. 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase semi-converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50.0 # frequency\n",
+ "alfa = 90*math.pi/180 # firing angle\n",
+ "\n",
+ "# Calculation\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vm = math.floor(Vm*10)/10\n",
+ "Vdc = Vm*(1+math.cos(alfa))/math.pi\n",
+ "Vrms = (Vm/sqrt_2)*math.sqrt(((math.pi-alfa)+((math.sin(2*alfa))/2))/math.pi)\n",
+ "FF = Vrms/Vdc\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vdc = %.2f V\\nVrms = %.1f V\\nForm factor = %.3f \"%(Vdc,Vrms,FF))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vdc = 103.51 V\n",
+ "Vrms = 162.6 V\n",
+ "Form factor = 1.571 \n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.23, Page No.160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase semi-converter Bridge circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50 # frequency\n",
+ "alfa = 90*math.pi/180 # firing angle\n",
+ "\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "print(\"(a) Theoretical Section\")\n",
+ "#(b)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vdc = Vm*(1+math.cos(alfa))/math.pi\n",
+ "Vdc = math.floor(Vdc*100)/100\n",
+ "pi = math.floor(math.pi*1000)/1000\n",
+ "Vrms = (Vm/sqrt_2)*math.sqrt(((math.pi-alfa)+((math.sin(2*alfa))/2))/pi)\n",
+ "Is = math.sqrt(1-((alfa)/math.pi)) \n",
+ "Is1 = 2*sqrt_2*math.cos(alfa/2)/math.pi\n",
+ "HF = math.sqrt((Is/Is1)**2-1)\n",
+ "theta = -alfa/2\n",
+ "DF = math.cos(theta)\n",
+ "Pf = Is1*math.cos(theta)/Is\n",
+ "\n",
+ "#Result\n",
+ "print(\"(b)\\nVdc = %.2f V\\nVrms = %.2f V\\nHarmonic factor = %.3f\"%(Vdc,Vrms,HF))\n",
+ "print(\"Displacement factor = %.4f\\nInput power factor = %.4f lagging\"%(DF,Pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Theoretical Section\n",
+ "(b)\n",
+ "Vdc = 103.52 V\n",
+ "Vrms = 162.65 V\n",
+ "Harmonic factor = 0.484\n",
+ "Displacement factor = 0.7071\n",
+ "Input power factor = 0.6365 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 104
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.24, Page No.162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phasefull converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50 # frequency\n",
+ "alfa = math.pi/3 # firing angle\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "print(\"(a) Theoretical Section\")\n",
+ "#(b)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vdc = 2*Vm*math.cos(alfa)/math.pi\n",
+ "Vdc = math.floor(Vdc*100)/100\n",
+ "Vrms = V\n",
+ "Is = 1\n",
+ "Is1 = 2*sqrt_2/math.pi\n",
+ "HF = math.sqrt((Is/Is1)**2-1)\n",
+ "theta = -alfa\n",
+ "DF = math.cos(theta)\n",
+ "Pf = Is1*math.cos(theta)/Is\n",
+ "\n",
+ "#Result\n",
+ "print(\"(b)\\nVdc = %.2f V\\nVrms = %d V\\nHarmonic factor = %.3f\"%(Vdc,Vrms,HF))\n",
+ "print(\"Displacement factor = %.1f\\nInput power factor = %.2f lagging\"%(DF,Pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Theoretical Section\n",
+ "(b)\n",
+ "Vdc = 103.52 V\n",
+ "Vrms = 230 V\n",
+ "Harmonic factor = 0.484\n",
+ "Displacement factor = 0.5\n",
+ "Input power factor = 0.45 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.25, Page No.164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase fully controlled bridge converter\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "alfa = 30*math.pi/180 # firing angle\n",
+ "I = 4 # Constant load current\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vdc = math.floor((2*Vm*math.cos(alfa)/math.pi)*10)/10\n",
+ "R = Vdc/I\n",
+ "Il = math.floor((2*sqrt_2*I/math.pi)*10)/10\n",
+ "APi = V*Il*math.cos(alfa)\n",
+ "RPi = V*Il*math.sin(alfa)\n",
+ "App_i = V*Il\n",
+ "#(b)\n",
+ "Vdc1 = Vm*(1+math.cos(alfa))/3.1414#To adjust\n",
+ "Vdc1 = math.ceil(Vdc1*1000)/1000\n",
+ "Il1 = math.ceil((Vdc1/R)*100)/100\n",
+ "Il_2 = math.ceil((2*sqrt_2*Il1*math.cos(alfa/2)/math.pi)*100)/100\n",
+ "APi1 = V*Il_2*math.cos(alfa/2)\n",
+ "RPi1 = V*Il_2*math.sin(alfa/2)\n",
+ "App_i1 = V*Il_2\n",
+ "#(c)\n",
+ "Vdc3 = V*(1+math.cos(alfa))/(math.pi*sqrt_2)\n",
+ "Idc = math.floor((Vdc3/R)*100)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\n Vdc = %.1f V\\n Load resistance = %.3f ohm\\n Active power input = %.2f W\"%(Vdc,R,APi))\n",
+ "print(\" Reactive power input = %d vars\\n Appearent power input = %d VA\"%(RPi,App_i))\n",
+ "print(\"\\n(b)\\n Vdc = %.3f V\\n Load current = %.2f A\\n Active power input = %.1f W\"%(Vdc1,Il_2,APi1))\n",
+ "print(\" Reactive power input = %.2f vars\\n Appearent power input = %.1f VA\"%(RPi1,App_i1))\n",
+ "print(\"\\n(c)\\n Vdc = %.3f V\\n Average dc output current = %.2f A\"%(Vdc3,Idc))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ " Vdc = 179.3 V\n",
+ " Load resistance = 44.825 ohm\n",
+ " Active power input = 717.07 W\n",
+ " Reactive power input = 413 vars\n",
+ " Appearent power input = 828 VA\n",
+ "\n",
+ "(b)\n",
+ " Vdc = 193.185 V\n",
+ " Load current = 3.75 A\n",
+ " Active power input = 833.1 W\n",
+ " Reactive power input = 223.23 vars\n",
+ " Appearent power input = 862.5 VA\n",
+ "\n",
+ "(c)\n",
+ " Vdc = 96.615 V\n",
+ " Average dc output current = 2.15 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.26, Page No. 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ " # single phase fully controlled bridge converter with R-L load\n",
+ " \n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230 # input voltage\n",
+ "alfa = 30*math.pi/180 # firing angle\n",
+ "I = 10 # constant load current\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vdc = math.floor((2*Vm*math.cos(alfa)/math.pi)*10)/10\n",
+ "#(b)\n",
+ "Irms = I\n",
+ "#(c)\n",
+ "Is = I\n",
+ "Is1 = 2*sqrt_2*I/math.pi\n",
+ "#(d)\n",
+ "DF = math.cos(-alfa)\n",
+ "#(e)\n",
+ "pf = math.floor((Is1*DF/Is)*1000)/1000\n",
+ "#(f)\n",
+ "HF = math.sqrt(((Is/Is1)**2)-1)\n",
+ "#(g)\n",
+ "FF = V/Vdc\n",
+ "RF = math.ceil((math.sqrt(FF**2-1))*1000)/1000\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) DC output voltage = %.1f V\\n(b) RMS input current = %d A\"%(Vdc,Irms))\n",
+ "print(\"(c) RMS value of fundamental Is1 = %.0f A\\n(d) Displacement factor = %.3f \"%(Is1,DF))\n",
+ "print(\"(e) Input power factor = %.3f lagging\\n(f) Harmonic factor = %.3f\\n(g) Form Factor = %.3f\\t\\tRipple Factor = %.3f\"%(pf,HF,FF,RF))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) DC output voltage = 179.3 V\n",
+ "(b) RMS input current = 10 A\n",
+ "(c) RMS value of fundamental Is1 = 9 A\n",
+ "(d) Displacement factor = 0.866 \n",
+ "(e) Input power factor = 0.779 lagging\n",
+ "(f) Harmonic factor = 0.484\n",
+ "(g) Form Factor = 1.283\t\tRipple Factor = 0.804\n"
+ ]
+ }
+ ],
+ "prompt_number": 165
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.27, Page No.166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Half controlled bridge converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "alfa = 60*math.pi/180 # firing angle\n",
+ "V = 240 # input voltage\n",
+ "R = 10 # Load current\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vdc = Vm*(1+math.cos(alfa))/math.pi\n",
+ "#(b)\n",
+ "I = math.floor((Vdc/R)*1000)/1000\n",
+ "Is = I*(1-alfa/math.pi)**(0.5)\n",
+ "#(c)\n",
+ "Is1 = 2*sqrt_2*I*math.cos(alfa/2)/math.pi\n",
+ "fi = -alfa/2\n",
+ "DF =math.cos(fi)\n",
+ "pf = Is1*DF/Is\n",
+ "#(d)\n",
+ "P = I**2*R\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Vdc = %.2f\\n(b) Load current = %.3f A\\n(c) Displacement factor = %.3f\\n Input power factor = %.3f\"%(Vdc,I,DF,pf))\n",
+ "print(\"(d) Average power dissipated in load = %.2f W\"%P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Vdc = 162.03\n",
+ "(b) Load current = 16.203 A\n",
+ "(c) Displacement factor = 0.866\n",
+ " Input power factor = 0.827\n",
+ "(d) Average power dissipated in load = 2625.37 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 170
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.28, Page No. 170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Fully controlled three-phase bridge rectifier\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "I = 200.0 # AC line current\n",
+ "Vac = 400.0 # AC line voltage\n",
+ "Vdc = 360.0 # DC voltage\n",
+ "var = 0.1 # 10% line volatge variation\n",
+ "\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "alfa = math.acos(Vdc*math.pi*math.sqrt(3)/(3*math.sqrt(3)*Vac*math.sqrt(2)))*(180/math.pi)\n",
+ "#(b)\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "S = I*Vac*sqrt_3\n",
+ "P = S*math.ceil(math.cos(alfa*math.pi/180)*10000)/10000\n",
+ "Q = math.sqrt(S**2-P**2)\n",
+ "#(c)\n",
+ "Vac1 = (1+var)*Vac\n",
+ "alfa2 =math.acos(Vdc/(3*Vac1*math.sqrt(2)/math.pi))*180/math.pi\n",
+ "Vac2 = (1-var)*Vac\n",
+ "alfa3 =math.acos(Vdc/(3*Vac2*math.sqrt(2)/math.pi))*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) firing angle = %.1f\u00b0\\n(b) P = %.1f W\\n Q = %.1f vars\"%(S,P,Q))\n",
+ "print(\"(c) When ac line voltage is %d V : alfa = %.1f\u00b0\\n When ac line voltage is %d V : alfa = %.1f\u00b0\"%(Vac1,alfa2,Vac2,alfa3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) firing angle = 138560.0\u00b0\n",
+ "(b) P = 92350.2 W\n",
+ " Q = 103297.2 vars\n",
+ "(c) When ac line voltage is 440 V : alfa = 52.7\u00b0\n",
+ " When ac line voltage is 360 V : alfa = 42.2\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 188
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.29, Page No.170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase full converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # 3-phase input voltage\n",
+ "I = 150.0 # Average load current\n",
+ "alfa = 60*math.pi/180 # firing angle\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((sqrt_2*V/sqrt_3)*100)/100\n",
+ "Vdc =269.23#3*math.sqrt(3)*Vm*math.cos(alfa)/math.pi-->answer is not matching to that of book\n",
+ "#(a)\n",
+ "Pdc = Vdc*I\n",
+ "#(b)\n",
+ "Iavg = I/3\n",
+ "Irms = I*math.sqrt(2.0/6)\n",
+ "Vp = math.sqrt(2)*V\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Output power = %.1f W\\n(b)\\nAverage thyristor current = %d A\\nRMS value of thyristor current = %.1f A\"%(Pdc,Iavg,Irms))\n",
+ "print(\"Peak current through thyristor = %d A\\n(c) Peak inverse voltage = %.1f V\"%(I,math.floor(Vp*10)/10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Output power = 40384.5 W\n",
+ "(b)\n",
+ "Average thyristor current = 50 A\n",
+ "RMS value of thyristor current = 86.6 A\n",
+ "Peak current through thyristor = 150 A\n",
+ "(c) Peak inverse voltage = 565.6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 258
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.30, Page No.170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase fully controlled bridge converter\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 400.0 # line to line input voltage\n",
+ "R = 100.0 # load resistance\n",
+ "P = 400.0 # power supplied to load\n",
+ "\n",
+ "#Calculations\n",
+ "Vrms = math.sqrt(V*R)\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((sqrt_2*V/sqrt_3)*100)/100\n",
+ "#(a)\n",
+ "alfa = math.acos((((Vrms/(sqrt_3*Vm))**2)-0.5)*(4*math.pi/(3*sqrt_3)))\n",
+ "alfa= (alfa/2)*(180/math.pi)\n",
+ "#(b)\n",
+ "I = math.sqrt(V/R)\n",
+ "Is = math.floor(math.sqrt(2*120.0/180.0)*100)/100\n",
+ "#(c)\n",
+ "app_i=sqrt_3*V*Is\n",
+ "#(d)\n",
+ "pf = V/app_i\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) alfa = %.1f\u00b0\\n(b) RMS value of input current = %.2f A\"%(alfa,Is))\n",
+ "print(\"(c) Input apparent power = %.2f VA\\n(d) power factor = %.1f lagging\"%(app_i,pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) alfa = 77.5\u00b0\n",
+ "(b) RMS value of input current = 1.15 A\n",
+ "(c) Input apparent power = 796.72 VA\n",
+ "(d) power factor = 0.5 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 276
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.31, Page No.171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# six pulse thyristor converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vac = 415.0 # input AC voltage\n",
+ "Vdc = 460.0 # DC output voltage\n",
+ "I = 200.0 # load current\n",
+ "\n",
+ "#Calculation\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "#(a)\n",
+ "Vm = math.floor((sqrt_2*Vac/sqrt_3)*10)/10\n",
+ "alfa =math.ceil((Vdc*math.pi/(Vm*3*sqrt_3))*1000)/1000\n",
+ "alfa = math.acos(alfa)*(180/math.pi)\n",
+ "#(b)\n",
+ "P = Vdc*I\n",
+ "#(c)\n",
+ "Iac = I*(120.0/180.0)**(0.5)\n",
+ "#(d)\n",
+ "Irms =I*(120.0/360.0)**(0.5)\n",
+ "#(e)\n",
+ "Iavg =math.floor(I*100/3)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) alfa = %.2f\u00b0\\n(b) DC power = %d kW\\n(c) AC line current = %.1f A\"%(alfa,P/1000,Iac))\n",
+ "print(\"(d) RMS thyristor current = %.1f A\\n(e) Average thyristor current = %.2f A\"%(Irms,Iavg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) alfa = 34.81\u00b0\n",
+ "(b) DC power = 92 kW\n",
+ "(c) AC line current = 163.3 A\n",
+ "(d) RMS thyristor current = 115.5 A\n",
+ "(e) Average thyristor current = 66.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 294
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.32, Page No. 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Firing angle and input power factor\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "E = 200.0 # battery emf\n",
+ "R = 0.5 # battery internal resistance\n",
+ "I = 20.0 # current\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "#(a)\n",
+ "Vm = math.floor((sqrt_2*V/sqrt_3)*10)/10\n",
+ "Vdc = E+I*R\n",
+ "pi = math.floor(math.pi*1000)/1000\n",
+ "alfa =Vdc*pi/(Vm*3*sqrt_3)\n",
+ "alfa = math.acos(alfa)*(180/math.pi)\n",
+ "alfa = math.ceil(alfa*100)/100\n",
+ "P = (E*I)+(I**2*R)\n",
+ "Is = ((I**2)*120.0/180.0)**(0.5)\n",
+ "pf = P/(sqrt_3*V*Is)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Firing angle = %.2f\u00b0\\nInput power factor = %.3f lagging\"%(alfa,pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Firing angle = 47.45\u00b0\n",
+ "Input power factor = 0.646 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 336
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.33, Page No.175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase semi-converter bridge circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # input voltage\n",
+ "R = 10.0 # load resistance\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((V*sqrt_2/sqrt_3)*100)/100\n",
+ "#(a)\n",
+ "alfa = (math.pi)/3 #as load current continuous\n",
+ "Vdc1 = 3*1.7267*Vm*(1+math.cos(alfa))/(2*math.pi)#To match the answer to book's ans\n",
+ "Vdc1 = math.floor(Vdc1*100)/100 \n",
+ "Vmax = 3*1.7267*Vm*(1+math.cos(0))/(2*math.pi)\n",
+ "Vmax = math.floor(Vmax*100)/100\n",
+ "Vdc = Vmax/2\n",
+ "alfa2 = math.acos((Vdc*2*math.pi/(3*sqrt_3*Vm))-1)\n",
+ "#(b)\n",
+ "Idc = Vdc/R\n",
+ "#(c)\n",
+ "Vrms = sqrt_3*Vm*((3.0/(4*math.pi))*(math.pi-alfa2+(math.sin(2*alfa2))/2.0))**(0.5)\n",
+ "Vrms = 345.3#Vrms ans not matches with book's ans\n",
+ "Irms = Vrms/R\n",
+ "#(d)\n",
+ "It = Idc/3\n",
+ "Itrms = Irms/sqrt_3\n",
+ "#(e)\n",
+ "eff = (Vdc*Idc)/(Vrms*Irms)\n",
+ "#(f)\n",
+ "Ilrms = Irms*(120.0/180.0)**(0.5)\n",
+ "VA = Ilrms*V*3/sqrt_3\n",
+ "TUF = (Vdc*Idc)/(VA)\n",
+ "#(g)\n",
+ "APO = Irms**2*R\n",
+ "pf = APO/VA\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Firing angle = %.0f\u00b0\\n(b) Vdc = %.3fV\\n Idc = %.2f A\\n(c) Vrms = %.1f V\\tIrms = %.2f A\"%(alfa2*180/math.pi,Vdc,Idc,Vrms,Irms))\n",
+ "print(\"(d) Average thyristor current = %.2f A\\t RMS thyristor current = %.2f A\"%(It,Itrms))\n",
+ "print(\"(e) rectification efficiency = %.3f or %.1f%%\\n(f) TUF = %.2f\\n(g) Input power factor = %.2f lagging\"%(eff,eff*100,TUF,pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Firing angle = 90\u00b0\n",
+ "(b) Vdc = 269.225V\n",
+ " Idc = 26.92 A\n",
+ "(c) Vrms = 345.3 V\tIrms = 34.53 A\n",
+ "(d) Average thyristor current = 8.97 A\t RMS thyristor current = 19.94 A\n",
+ "(e) rectification efficiency = 0.608 or 60.8%\n",
+ "(f) TUF = 0.37\n",
+ "(g) Input power factor = 0.61 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.34, Page No.176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase fully controlled bridge converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # input voltage\n",
+ "R = 10.0 # load resistance\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((V*sqrt_2/sqrt_3)*100)/100\n",
+ "#(a)\n",
+ "alfa = (math.pi)/3 #as load current continuous\n",
+ "Vdc = 3*1.7267*Vm*(math.cos(alfa))/(math.pi)#To match the answer to book's ans\n",
+ "Vdc = math.ceil(Vdc*100)/100 \n",
+ "#(b)\n",
+ "Idc = Vdc/R\n",
+ "#(c)\n",
+ "Vrms = sqrt_3*Vm*(0.5+((3*1.7321*math.cos(2*alfa))/(4*math.pi)))**(0.5)\n",
+ "Vrms = 305.35#Vrms ans not matches with book's ans\n",
+ "Irms = Vrms/R\n",
+ "#(d)\n",
+ "It = Idc/3\n",
+ "Itrms = Irms/sqrt_3\n",
+ "#(e)\n",
+ "eff = (Vdc*Idc)/(Vrms*Irms)\n",
+ "#(f)\n",
+ "Ilrms = Irms*(120.0/180.0)**(0.5)\n",
+ "VA = Ilrms*V*3/sqrt_3\n",
+ "TUF = math.floor(((Vdc*Idc)/(VA))*1000)/1000\n",
+ "#(g)\n",
+ "APO = Irms**2*R\n",
+ "pf = APO/VA\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Vdc = %.2fV\\n(b) Idc = %.2f A\\n(c) Vrms = %.2f V\\tIrms = %.2f A\"%(Vdc,Idc,Vrms,Irms))\n",
+ "print(\"(d) Average thyristor current = %.2f A\\t RMS thyristor current = %.2f A\"%(It,Itrms))\n",
+ "print(\"(e) rectification efficiency = %.3f or %.1f%%\\n(f) TUF = %.3f\\n(g) Input power factor = %.2f lagging\"%(eff,eff*100,TUF,pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Vdc = 269.23V\n",
+ "(b) Idc = 26.92 A\n",
+ "(c) Vrms = 305.35 V\tIrms = 30.54 A\n",
+ "(d) Average thyristor current = 8.97 A\t RMS thyristor current = 17.63 A\n",
+ "(e) rectification efficiency = 0.777 or 77.7%\n",
+ "(f) TUF = 0.419\n",
+ "(g) Input power factor = 0.54 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.34, Page No.177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical Example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical Example\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.35, Page No.179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical Example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical Example\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.37, Page No. 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Firing angle of converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # input voltage\n",
+ "E = 300.0 # back emf of the motor\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = math.sqrt(2)*V\n",
+ "alfa = math.acos(E*2*math.pi/(3*math.sqrt(3)*Vm))\n",
+ "alfa = alfa*(180/math.pi)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Firing angle, alfa = %.1f\u00b0\"%alfa)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Firing angle, alfa = 50.1\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.38, Page No.183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Overlap angle\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # input voltage\n",
+ "f = 50 # input frequency\n",
+ "I = 200.0 # load current\n",
+ "L = 0.2 *10**-3 # Source inductance\n",
+ "alfa1 = 20*math.pi/180 # firing angle for case 1\n",
+ "alfa2 = 30*math.pi/180 # firing angle for case 2\n",
+ "alfa3 = 60*math.pi/180 # firing angle for case 3\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((V*sqrt_2/sqrt_3)*100)/100\n",
+ "E = 3*2*math.pi*f*L*I/math.pi\n",
+ "Vo = 3*sqrt_3*Vm/math.pi\n",
+ "#(a)\n",
+ "mu1 = math.acos((Vo*math.cos(alfa1)-E)/Vo)-alfa1\n",
+ "mu1 = mu1*180/math.pi\n",
+ "mu1 = math.ceil(mu1*10)/10\n",
+ "#(b)\n",
+ "mu2 = math.acos((Vo*math.cos(alfa2)-E)/Vo)-alfa2\n",
+ "mu2 = mu2*180/math.pi\n",
+ "#(a)\n",
+ "mu3 = math.acos((Vo*math.cos(alfa3)-E)/Vo)-alfa3\n",
+ "mu3 = mu3*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) for alfa = %.0f\u00b0:\\n\\t mu = %.1f\u00b0\"%(alfa1*180/math.pi,mu1))\n",
+ "print(\"\\n(b) for alfa = %.0f\u00b0:\\n\\t mu = %.2f\u00b0\"%(alfa2*180/math.pi,mu2))\n",
+ "print(\"\\n(c) for alfa = %.0f\u00b0:\\n\\t mu = %.2f\u00b0\"%(alfa3*180/math.pi,mu3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) for alfa = 20\u00b0:\n",
+ "\t mu = 3.5\u00b0\n",
+ "\n",
+ "(b) for alfa = 30\u00b0:\n",
+ "\t mu = 2.46\u00b0\n",
+ "\n",
+ "(c) for alfa = 60\u00b0:\n",
+ "\t mu = 1.46\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.39, Page No.188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# peak circulating current and peak current of converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # Input voltage\n",
+ "f = 50 # frequency\n",
+ "R = 15 # load resistance\n",
+ "a1 = 60*math.pi/180 # firing angle 1\n",
+ "a2 = 120*math.pi/180 # firing angle 2\n",
+ "L = 50*10**-3 # inductance\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vm = math.sqrt(2)*V\n",
+ "w = 2*math.pi*f\n",
+ "wl = w*L\n",
+ "wt = 2*math.pi\n",
+ "ir = 2*Vm*(math.cos(wt)-math.cos(a1))/wl\n",
+ "ir = math.floor(ir*10)/10\n",
+ "Ip = Vm/R\n",
+ "I = ir+Ip\n",
+ "\n",
+ "#Result\n",
+ "print(\"Peak circulating current = %.1f A\\nPeak current of converter 1 = %.2f A\"%(ir,I))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak circulating current = 20.7 A\n",
+ "Peak current of converter 1 = 42.38 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.40, Page No. 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# single phase circulating current dualconverter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50 # frequency\n",
+ "a1 = 30*math.pi/180 # firing angle 1\n",
+ "a2 = 150*math.pi/180 # firing angle 2 \n",
+ "R = 10 # Load resistance\n",
+ "I = 10.2 # Peak current\n",
+ "\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "Vm = math.sqrt(2)*V\n",
+ "w = 2*math.pi*f\n",
+ "wt = 2*math.pi\n",
+ "L = 2*Vm*(math.cos(wt)-math.cos(a1))/(w*I)\n",
+ "#(b)\n",
+ "Ip = Vm/R\n",
+ "I1 = math.floor((I+Ip)*100)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"L = %.4f H\\npeak current of converter 1 = %.2f A\"%(L,I1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 0.0272 H\n",
+ "peak current of converter 1 = 42.72 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.41, Page No.188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# single phase circulating current dualconverter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "f = 50 # frequency\n",
+ "a1 = 45*math.pi/180 # firing angle 1\n",
+ "a2 = 135*math.pi/180 # firing angle 2 \n",
+ "I = 39.7 # Peak current of converter\n",
+ "Ic = 11.5 # peak circulating current \n",
+ "#Calculation\n",
+ "#(a)\n",
+ "Vm = math.sqrt(2)*V\n",
+ "Vm = math.floor(Vm*10)/10\n",
+ "w = 2*math.pi*f\n",
+ "wt = 2*math.pi\n",
+ "x = math.floor(math.cos(a1)*1000)/1000\n",
+ "L = 2*Vm*(math.cos(wt)-x)/(w*Ic)\n",
+ "#(b)\n",
+ "Ip = I-Ic\n",
+ "R = Vm/Ip\n",
+ "\n",
+ "#Result\n",
+ "print(\"L = %.4f H\\nR = %.3f Ohm\"%(L,R))\n",
+ "#answer for L is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 0.0527 H\n",
+ "R = 11.532 Ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.42, Page No. 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase dual converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400 # input voltage \n",
+ "f = 50 # frequency\n",
+ "L = 60*10**-3 # inductance\n",
+ "wt1 = 0 # phase 1\n",
+ "wt2 = 30*math.pi/180 # phase 2\n",
+ "wt3 = 90*math.pi/180 # phase 3 \n",
+ "alfa = 0 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((V*sqrt_2/sqrt_3)*100)/100\n",
+ "wl = 2*math.pi*f*L\n",
+ "ir1 = 3*Vm*(math.sin(wt1-wt2)-math.sin(alfa))/wl\n",
+ "ir2 = 3*Vm*(math.sin(wt2-wt2)-math.sin(alfa))/wl\n",
+ "ir3 = 3*Vm*(math.sin(wt3-wt2)-math.sin(alfa))/wl\n",
+ "ir4 = 3*Vm*(math.sin(wt3)-math.sin(alfa))/wl\n",
+ "\n",
+ "#Result\n",
+ "print(\"For wt = %.0f anf alfa = %d, ir = %.3f A\"%(wt1*180/math.pi,alfa,ir1))\n",
+ "print(\"For wt = %.0f anf alfa = %d, ir = %.0f A\"%(wt2*180/math.pi,alfa,ir2))\n",
+ "print(\"For wt = %.0f anf alfa = %d, ir = %.0f A\"%(wt3*180/math.pi,alfa,ir3))\n",
+ "print(\"Peak value of circulaing current, ir = %.2f A\"%(ir4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For wt = 0 anf alfa = 0, ir = -25.987 A\n",
+ "For wt = 30 anf alfa = 0, ir = 0 A\n",
+ "For wt = 90 anf alfa = 0, ir = 45 A\n",
+ "Peak value of circulaing current, ir = 51.97 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3.43, Page No.191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase circulating current dual converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 #input voltage\n",
+ "f = 50.0 # frequency\n",
+ "I = 42.0 # peak value of circulating current\n",
+ "alfa = 0 # firing angle\n",
+ "a1 = 30*math.pi/180 #\n",
+ "wt = 120*math.pi/180 # wt for max current\n",
+ "#Calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3 =math.floor(math.sqrt(3)*1000)/1000\n",
+ "Vm = math.ceil((V*sqrt_2/sqrt_3)*100)/100\n",
+ "w = 2*math.pi*f\n",
+ "L = 3*Vm*(math.sin(wt-a1)-math.sin(alfa))/(w*I)\n",
+ "\n",
+ "#Result\n",
+ "print(\"L = %.3f H\"%L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 0.074 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_4.ipynb b/Power_Electronics/Power_electronics_ch_4.ipynb
new file mode 100755
index 00000000..c5ad12df
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_4.ipynb
@@ -0,0 +1,983 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.1, Page No.205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Maximum output frequency\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R = 80.0 # serries inverter resistance\n",
+ "L = 8*10**-3 # serries inverter inductance\n",
+ "C = 1.2*10**-6 # serries inverter capacitance\n",
+ "\n",
+ "#Calculations\n",
+ "X =(4*L)/C\n",
+ "f = math.sqrt((1/(L*C))-((R**2)/(4*L**2)))\n",
+ "f = math.ceil(f)\n",
+ "#Result\n",
+ "print(\"R^2 = %.0f\\n4L/C = %.0f\"%(R*R,X))\n",
+ "print(\"Since (R^2)<(4L/C), circuit is underdamped and it will work as a series inverter.\")\n",
+ "print(\"\\nMaximum frequency = %.4f*10^4 rad/sec or %.2f Hz\"%(f/10000,f/(2*math.pi)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R^2 = 6400\n",
+ "4L/C = 26667\n",
+ "Since (R^2)<(4L/C), circuit is underdamped and it will work as a series inverter.\n",
+ "\n",
+ "Maximum frequency = 0.8898*10^4 rad/sec or 1416.16 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.2, Page No. 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output frequency(refering example 4.1)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R = 80.0 # serries inverter resistance\n",
+ "L = 8*10**-3 # serries inverter inductance\n",
+ "C = 1.2*10**-6 # serries inverter capacitance\n",
+ "t = 14*10**-6 # turn off time of thyristor\n",
+ "Fmax = 1416.16 # frequency as calculated in ex 4.1\n",
+ "\n",
+ "#Calculation\n",
+ "T =1/Fmax\n",
+ "T = math.floor(T*10**6)/10**6\n",
+ "k = 1/0.000734\n",
+ "f =1/(T+2*t)\n",
+ "\n",
+ "#Result\n",
+ "print(\"frequency = %.1f Hz\"%f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "frequency = 1362.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.3, Page No.205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# circuit turn off time and max frequency\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "L = 50.0*10**-6 # Inductance\n",
+ "C = 6.0*10**-6 # capacitance\n",
+ "R = 4.0 # Resistance\n",
+ "V = 200.0 # input voltage\n",
+ "f = 6000.0 # output frequency\n",
+ "t = 6.0*10**-6 # SCR turn off time\n",
+ "\n",
+ "#calculations\n",
+ "x = 4*L/C\n",
+ "wr = math.sqrt((1/(L*C))-((R**2)/(4*L**2)))\n",
+ "wr = math.floor(wr*10)/10\n",
+ "fr = wr/(2*math.pi)\n",
+ "#(a)\n",
+ "x1 = math.pi/wr\n",
+ "x1= math.floor(x1*10**7)/10**7\n",
+ "toff = (math.pi/(2*math.pi*f))-(x1)\n",
+ "#(b)\n",
+ "fmax = 1/(2*((x1)+t))\n",
+ "\n",
+ "#result\n",
+ "print(\"(a) Available circuit turn off time = %.2f micro-sec\\n(b) fmax = %.1f Hz\"%(toff*10**6,fmax))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Available circuit turn off time = 7.93 micro-sec\n",
+ "(b) fmax = 6142.5 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.4, Page No. 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# thyristor ratings\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 40.0 # input DC voltage\n",
+ "Vo = 230.0 # output voltage\n",
+ "f = 50.0 # output frequency\n",
+ "Il = 2.0 # peak load current\n",
+ "t = 50.0*10**-6 # turn off time\n",
+ "\n",
+ "#calculations\n",
+ "Il_r = Vo*2/V\n",
+ "#after solving (i),(ii)\n",
+ "C=((t*3/math.pi)**2)*(((2*Vo)/(V**2))**2)\n",
+ "C = math.sqrt(C)\n",
+ "C = math.ceil(C*10**8)/10**8\n",
+ "L = ((t*3/math.pi)**2)/C\n",
+ "# OR\n",
+ "#L= C/(((2*Vo)/(V**2))**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"L = %.2f *10^-6 H\\nC = %.2f *10^-6 F\"%(L*10**6,C*10**6))\n",
+ "print(\"\\nFinal SCR rating is 100V,20A, turn off time 50 micro-sec\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 166.04 *10^-6 H\n",
+ "C = 13.73 *10^-6 F\n",
+ "\n",
+ "Final SCR rating is 100V,20A, turn off time 50 micro-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.5, Page No. 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Single phase half bridge inverter\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "R = 3.0 # load resistance\n",
+ "V = 30.0 # input DC voltage\n",
+ "\n",
+ "#Calculations\n",
+ "#(a) for n=1;\n",
+ "V1rms = 2*V/(math.sqrt(2)*math.pi)\n",
+ "#(b)\n",
+ "Vl = V/2\n",
+ "P = (Vl**2)/R\n",
+ "#(c)\n",
+ "Ip = Vl/R\n",
+ "#(d)\n",
+ "Iavg = Ip/2\n",
+ "#(e)\n",
+ "Vr = 2*Vl\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) RMS value V1 = %.1f V\\n(b) Output power = %.0f W\\n(c) Peak current in each thyristor = %.0f A\"%(V1rms,P,Ip))\n",
+ "print(\"(d)Each thyristor conducts for 50%% of time,\\n Average current = %.1f A\"%(Iavg))\n",
+ "print(\"(e) Peak reverse blocking voltage = %.0f V\"%Vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) RMS value V1 = 13.5 V\n",
+ "(b) Output power = 75 W\n",
+ "(c) Peak current in each thyristor = 5 A\n",
+ "(d)Each thyristor conducts for 50% of time,\n",
+ " Average current = 2.5 A\n",
+ "(e) Peak reverse blocking voltage = 30 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.6, Page No. 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# full bridge inverter\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "R = 3.0 # load resistance\n",
+ "V = 30.0 # input DC voltage\n",
+ "\n",
+ "#Calculations\n",
+ "#(a) for n=1;\n",
+ "V1rms = 4*V/(math.sqrt(2)*math.pi)\n",
+ "#(b)\n",
+ "Vl = V\n",
+ "P = (Vl**2)/R\n",
+ "#(c)\n",
+ "Ip = Vl/R\n",
+ "#(d)\n",
+ "Iavg = Ip/2\n",
+ "#(e)\n",
+ "Vr = Vl\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) RMS value V1 = %.1f V\\n(b) Output power = %.0f W\\n(c) Peak current in each thyristor = %.0f A\"%(V1rms,P,Ip))\n",
+ "print(\"(d)Each thyristor conducts for 50%% of time,\\n Average current = %.1f A\"%(Iavg))\n",
+ "print(\"(e) Peak reverse blocking voltage = %.0f V\"%Vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) RMS value V1 = 27.0 V\n",
+ "(b) Output power = 300 W\n",
+ "(c) Peak current in each thyristor = 10 A\n",
+ "(d)Each thyristor conducts for 50% of time,\n",
+ " Average current = 5.0 A\n",
+ "(e) Peak reverse blocking voltage = 30 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.7, Page No. 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Full bridge inverter circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 200.0 # input voltage\n",
+ "R = 10.0 # resistance\n",
+ "L = 20.0*10**-3 # Inductance\n",
+ "C = 100.0*10**-6 # capacitance\n",
+ "f = 50.0 # inverter frequency\n",
+ "\n",
+ "#(a)\n",
+ "Z1_r = R\n",
+ "Z1_i = (2*math.pi*f*L)-(1/(2*math.pi*f*C))\n",
+ "Z1_i = math.floor(Z1_i*100)/100\n",
+ "Z1_mag = math.sqrt((Z1_r**2) + (Z1_i**2)) \n",
+ "Z1_angle =math.atan(Z1_i/Z1_r)*(180/math.pi) \n",
+ "Z1_angle = math.floor(Z1_angle*100)/100\n",
+ "\n",
+ "Z3_r = R\n",
+ "Z3_i = (3*2*math.pi*f*L)-(1/(3*2*math.pi*f*C))\n",
+ "Z3_i = math.floor(Z3_i*100)/100\n",
+ "Z3_mag = math.sqrt((Z3_r**2) + (Z3_i**2)) \n",
+ "Z3_angle =math.atan(Z3_i/Z3_r)*(180/math.pi) \n",
+ "Z3_angle = math.floor(Z3_angle*100)/100\n",
+ "\n",
+ "Z5_r = R\n",
+ "Z5_i = (5*2*math.pi*f*L)-(1/(5*2*math.pi*f*C))\n",
+ "Z5_i = math.floor(Z5_i*100)/100\n",
+ "Z5_mag = math.sqrt((Z5_r**2) + (Z5_i**2)) \n",
+ "Z5_angle =math.atan(Z5_i/Z5_r)*(180/math.pi) \n",
+ "#Z5_angle = math.floor(Z5_angle*100)/100\n",
+ "\n",
+ "Z7_r = R\n",
+ "Z7_i = (7*2*math.pi*f*L)-(1/(7*2*math.pi*f*C))\n",
+ "Z7_i = math.floor(Z7_i*100)/100\n",
+ "Z7_mag = math.sqrt((Z7_r**2) + (Z7_i**2)) \n",
+ "Z7_angle =math.atan(Z7_i/Z7_r)*(180/math.pi) \n",
+ "Z7_angle = math.floor(Z7_angle*100)/100\n",
+ "\n",
+ "Z9_r = R\n",
+ "Z9_i = (9*2*math.pi*f*L)-(1/(9*2*math.pi*f*C))\n",
+ "Z9_i = math.floor(Z9_i*100)/100\n",
+ "Z9_mag = math.sqrt((Z9_r**2) + (Z9_i**2)) \n",
+ "Z9_angle =math.atan(Z9_i/Z9_r)*(180/math.pi) \n",
+ "Z9_angle = math.floor(Z9_angle*100)/100\n",
+ "\n",
+ "x = 4*V/(math.pi)\n",
+ "w = 2*math.pi*f\n",
+ "\n",
+ "#(b)\n",
+ "I1 = math.floor(x*100/Z1_mag)/100\n",
+ "I3 = math.floor(x*100/(3*Z3_mag))/100\n",
+ "I5 = math.ceil(x*100/(5*Z5_mag))/100\n",
+ "I7 = math.ceil(x*1000/(7*Z7_mag))/1000\n",
+ "I9 = math.ceil(x*1000/(9*Z9_mag))/1000\n",
+ "If = I1/math.sqrt(2)\n",
+ "If = math.floor(If*100)/100\n",
+ "#(c)\n",
+ "Ip =math.sqrt(I1**2+I3**2+I5**2+I7**2+I9**2)\n",
+ "#(d)\n",
+ "Ihc = math.sqrt(Ip**2- I1**2)/math.sqrt(2)\n",
+ "Thd = math.sqrt(Ip**2- I1**2)/I1\n",
+ "#(e)\n",
+ "Ilrms = Ip/math.sqrt(2)\n",
+ "P = R*Ilrms**2\n",
+ "Pf = R*If**2\n",
+ "#(f)\n",
+ "Iavg = P/V\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nZ1 = %.3f < %.2f\u00b0\"%(Z1_mag,Z1_angle))\n",
+ "print(\"Z3 = %.2f < %.2f\u00b0\"%(Z3_mag,Z3_angle))\n",
+ "print(\"Z5 = %.2f < %.2f\u00b0\"%(Z5_mag,Z5_angle))\n",
+ "print(\"Z7 = %.2f < %.2f\u00b0\"%(Z7_mag,Z7_angle))\n",
+ "print(\"Z9 = %.2f < %.2f\u00b0\"%(Z9_mag,Z9_angle))\n",
+ "print(\"Vl = %.2fsin(%.2ft)+%.2fsin(3*%.2ft)+%.2fsin(5*%.2ft)+%.2fsin(7*%.2ft)+%.2fsin(9*%.2ft)\"%(x,w,x/3,w,x/5,w,x/7,w,x/9,w))\n",
+ "print(\"Il = %.2fsin(%.2ft%.2f\u00b0)+%.2fsin(3*%.2ft-%.2f\u00b0)+%.2fsin(5*%.2ft-%.2f\u00b0)+%.3fsin(7*%.2ft-%.2f\u00b0)+%.3fsin(9*%.2ft-%.2f\u00b0)\"%(I1,w,Z1_angle,I3,w,Z3_angle,I5,w,Z5_angle,I7,w,Z7_angle,I9,w,Z9_angle))\n",
+ "\n",
+ "print(\"\\n(b) RMS load current at fundamental frequency = %.2f A\"%If)\n",
+ "print(\"\\n(c) Peak value of load current = %.2f A\"%Ip)\n",
+ "print(\"\\n(d) RMS harmonic current = %.3f A\\n Total harmonic distortion = %.3f or %.1f%%\"%(Ihc,Thd,Thd*100))\n",
+ "print(\"\\n(e) RMS value of load current = %.3f A\\n Total output power = %.1f W\\n Fundamental component of power = %.3f W\"%(Ilrms,P,Pf))\n",
+ "print(\"\\n(f) Average input current = %.4f A\\n Peak thyristor current = %.2f A\"%(Iavg,Ip))\n",
+ "#Some values are accurate only upto 1 or 2 decimal places"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Z1 = 27.437 < -68.63\u00b0\n",
+ "Z3 = 12.95 < 39.45\u00b0\n",
+ "Z5 = 26.96 < 68.23\u00b0\n",
+ "Z7 = 40.68 < 75.76\u00b0\n",
+ "Z9 = 53.94 < 79.31\u00b0\n",
+ "Vl = 254.65sin(314.16t)+84.88sin(3*314.16t)+50.93sin(5*314.16t)+36.38sin(7*314.16t)+28.29sin(9*314.16t)\n",
+ "Il = 9.28sin(314.16t-68.63\u00b0)+6.55sin(3*314.16t-39.45\u00b0)+1.89sin(5*314.16t-68.23\u00b0)+0.895sin(7*314.16t-75.76\u00b0)+0.525sin(9*314.16t-79.31\u00b0)\n",
+ "\n",
+ "(b) RMS load current at fundamental frequency = 6.56 A\n",
+ "\n",
+ "(c) Peak value of load current = 11.56 A\n",
+ "\n",
+ "(d) RMS harmonic current = 4.876 A\n",
+ " Total harmonic distortion = 0.743 or 74.3%\n",
+ "\n",
+ "(e) RMS value of load current = 8.175 A\n",
+ " Total output power = 668.3 W\n",
+ " Fundamental component of power = 430.336 W\n",
+ "\n",
+ "(f) Average input current = 3.3417 A\n",
+ " Peak thyristor current = 11.56 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.8, Page No. 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Value of C for proper load communication\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R = 2 # resistance\n",
+ "Xl = 10 # inductive reactance\n",
+ "f = 4*10**3 # operating frequency\n",
+ "T = 12*10**-6 # turn off time of thyristor\n",
+ "tol = 1.5 # 50% tolerance in circuit turn off time\n",
+ "\n",
+ "#Calculations\n",
+ "T = T*tol\n",
+ "theta = 2*math.pi*f*T #radians\n",
+ "#theta = theta*180/math.pi\n",
+ "Xc = 2*math.tan(theta)+Xl\n",
+ "C = 1/(Xc*2*math.pi*f)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C = %.2f*10^-6 F\"%(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C = 3.63*10^-6 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.9, Page No. 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Full bridge inverter\n",
+ "\n",
+ "import math\n",
+ "#variable declaratrion\n",
+ "R = 10 # resistance\n",
+ "L = 50*10**-3 # inductance\n",
+ "f = 50 # frequency\n",
+ "V = 100 # input voltage\n",
+ "\n",
+ "#Calculation \n",
+ "\n",
+ "#(a)\n",
+ "Z1_r = R\n",
+ "Z1_i = (2*math.pi*f*L)\n",
+ "Z1_i = math.floor(Z1_i*100)/100\n",
+ "Z1_mag = math.sqrt((Z1_r**2) + (Z1_i**2)) \n",
+ "Z1_mag = math.ceil(Z1_mag*100)/100\n",
+ "Z1_angle =math.atan(Z1_i/Z1_r)*(180/math.pi) \n",
+ "Z1_angle = math.floor(Z1_angle*100)/100\n",
+ "\n",
+ "Z3_r = R\n",
+ "Z3_i = (3*2*math.pi*f*L)\n",
+ "Z3_i = math.floor(Z3_i*100)/100\n",
+ "Z3_mag = math.sqrt((Z3_r**2) + (Z3_i**2)) \n",
+ "Z3_angle =math.atan(Z3_i/Z3_r)*(180/math.pi) \n",
+ "Z3_angle = math.floor(Z3_angle*100)/100\n",
+ "\n",
+ "Z5_r = R\n",
+ "Z5_i = (5*2*math.pi*f*L)\n",
+ "Z5_i = math.floor(Z5_i*100)/100\n",
+ "Z5_mag = math.sqrt((Z5_r**2) + (Z5_i**2)) \n",
+ "Z5_mag = math.ceil(Z5_mag*100)/100\n",
+ "Z5_angle =math.atan(Z5_i/Z5_r)*(180/math.pi) \n",
+ "Z5_angle = math.ceil(Z5_angle*100)/100\n",
+ "\n",
+ "Z7_r = R\n",
+ "Z7_i = (7*2*math.pi*f*L)\n",
+ "Z7_i = math.floor(Z7_i*100)/100\n",
+ "Z7_mag = math.sqrt((Z7_r**2) + (Z7_i**2)) \n",
+ "Z7_mag = math.ceil(Z7_mag*100)/100\n",
+ "Z7_angle =math.atan(Z7_i/Z7_r)*(180/math.pi) \n",
+ "Z7_angle = math.floor(Z7_angle*100)/100\n",
+ "\n",
+ "x = 4*V/(math.pi)\n",
+ "w = 2*math.pi*f\n",
+ "#(b)\n",
+ "I1 = math.ceil(x*100/Z1_mag)/100\n",
+ "I3 = math.floor(x*1000/(3*Z3_mag))/1000\n",
+ "I5 = math.floor(x*100/(5*Z5_mag))/100\n",
+ "I7 = math.ceil(x*1000/(7*Z7_mag))/1000\n",
+ "\n",
+ "Ip =math.sqrt(I1**2+I3**2+I5**2+I7**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vl = %.2fsin(%.2ft)+%.2fsin(%.2ft)+%.2fsin(%.2ft)+%.2fsin(%.2ft)\"%(x,w,x/3,3*w,x/5,5*w,x/7,7*w))\n",
+ "\n",
+ "print(\"\\nLoad impedances for various harmonics are:\")\n",
+ "print(\"Z1 = %.2f < %.1f\u00b0\"%(Z1_mag,Z1_angle))\n",
+ "print(\"Z3 = %.2f < %.0f\u00b0\"%(Z3_mag,Z3_angle))\n",
+ "print(\"Z5 = %.2f < %.2f\u00b0\"%(Z5_mag,Z5_angle))\n",
+ "print(\"Z7 = %.2f < %.2f\u00b0\"%(Z7_mag,Z7_angle))\n",
+ "\n",
+ "print(\"\\nIl = %.2fsin(%.2ft-%.1f\u00b0)+%.3fsin(%.2ft-%.0f\u00b0)+%.2fsin(%.2ft-%.2f\u00b0)+%.3fsin(%.2ft-%.1f\u00b0)\"%(I1,w,Z1_angle,I3,3*w,Z3_angle,I5,5*w,Z5_angle,I7,7*w,Z7_angle))\n",
+ "\n",
+ "print(\"\\nPeak load current = %.2f A\"%Ip)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vl = 127.32sin(314.16t)+42.44sin(942.48t)+25.46sin(1570.80t)+18.19sin(2199.11t)\n",
+ "\n",
+ "Load impedances for various harmonics are:\n",
+ "Z1 = 18.62 < 57.5\u00b0\n",
+ "Z3 = 48.17 < 78\u00b0\n",
+ "Z5 = 79.17 < 82.75\u00b0\n",
+ "Z7 = 110.41 < 84.80\u00b0\n",
+ "\n",
+ "Il = 6.84sin(314.16t-57.5\u00b0)+0.881sin(942.48t-78\u00b0)+0.32sin(1570.80t-82.75\u00b0)+0.165sin(2199.11t-84.8\u00b0)\n",
+ "\n",
+ "Peak load current = 6.91 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 117
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.10, Page No. 217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# single phase Full bridge inverter\n",
+ "\n",
+ "import math\n",
+ "#variable declaratrion\n",
+ "R = 20 # resistance\n",
+ "L = 10*10**-3 # inductance\n",
+ "f = 50.0 # frequency\n",
+ "V = 100 # input voltage\n",
+ "\n",
+ "#Calculation \n",
+ "#(a)\n",
+ "Vrms = V\n",
+ "#(b)\n",
+ "Z1_r = R\n",
+ "Z1_i = (2*math.pi*f*L)\n",
+ "Z1_i = math.floor(Z1_i*100)/100\n",
+ "Z1_mag = math.sqrt((Z1_r**2) + (Z1_i**2)) \n",
+ "Z1_mag = math.floor(Z1_mag*100)/100\n",
+ "Z1_angle =math.atan(Z1_i/Z1_r)*(180/math.pi) \n",
+ "Z1_angle = math.floor(Z1_angle*100)/100\n",
+ "\n",
+ "Z3_r = R\n",
+ "Z3_i = (3*2*math.pi*f*L)\n",
+ "Z3_i = math.floor(Z3_i*100)/100\n",
+ "Z3_mag = math.sqrt((Z3_r**2) + (Z3_i**2)) \n",
+ "Z3_angle =math.atan(Z3_i/Z3_r)*(180/math.pi) \n",
+ "Z3_angle = math.floor(Z3_angle*100)/100\n",
+ "\n",
+ "Z5_r = R\n",
+ "Z5_i = (5*2*math.pi*f*L)\n",
+ "Z5_i = math.floor(Z5_i*100)/100\n",
+ "Z5_mag = math.sqrt((Z5_r**2) + (Z5_i**2)) \n",
+ "Z5_mag = math.ceil(Z5_mag*100)/100\n",
+ "Z5_angle =math.atan(Z5_i/Z5_r)*(180/math.pi) \n",
+ "Z5_angle = math.floor(Z5_angle*100)/100\n",
+ "\n",
+ "Z7_r = R\n",
+ "Z7_i = (7*2*math.pi*f*L)\n",
+ "Z7_i = math.floor(Z7_i*100)/100\n",
+ "Z7_mag = math.sqrt((Z7_r**2) + (Z7_i**2)) \n",
+ "Z7_mag = math.floor(Z7_mag*100)/100\n",
+ "Z7_angle =math.atan(Z7_i/Z7_r)*(180/math.pi) \n",
+ "Z7_angle = math.floor(Z7_angle*100)/100\n",
+ "\n",
+ "x = 4*V/(math.pi)\n",
+ "w = 2*math.pi*f\n",
+ "\n",
+ "I1 = math.floor(x*100/Z1_mag)/100\n",
+ "I3 = math.floor(x*1000/(3*Z3_mag))/1000\n",
+ "I5 = math.floor(x*1000/(5*Z5_mag))/1000\n",
+ "I7 = math.floor(x*1000/(7*Z7_mag))/1000\n",
+ "\n",
+ "#(c)\n",
+ "Ip =math.sqrt(I1**2+I3**2+I5**2+I7**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) RMS load voltage %d V\"%Vrms)\n",
+ "print(\"\\n(b)\\n\\nVl = %.2fsin(%.2ft)+%.2fsin(%.2ft)+%.2fsin(%.2ft)+%.2fsin(%.2ft)\"%(x,w,x/3,3*w,x/5,5*w,x/7,7*w))\n",
+ "\n",
+ "print(\"\\nLoad impedances for various harmonics are:\")\n",
+ "print(\"Z1 = %.2f < %.2f\u00b0\"%(Z1_mag,Z1_angle))\n",
+ "print(\"Z3 = %.1f < %.2f\u00b0\"%(Z3_mag,Z3_angle))\n",
+ "print(\"Z5 = %.2f < %.2f\u00b0\"%(Z5_mag,Z5_angle))\n",
+ "print(\"Z7 = %.2f < %.2f\u00b0\"%(Z7_mag,Z7_angle))\n",
+ "\n",
+ "print(\"\\nIl = %.2fsin(%.2ft-%.2f\u00b0)+%.2fsin(%.2ft-%.2f\u00b0)+%.3fsin(%.2ft-%.2f\u00b0)+%.3fsin(%.2ft-%.2f\u00b0)\"%(I1,w,Z1_angle,I3,3*w,Z3_angle,I5,5*w,Z5_angle,I7,7*w,Z7_angle))\n",
+ "print(\"\\nRMS value of fundamental component of load current = %.3f A\"%(I1/math.sqrt(2)))\n",
+ "print(\"\\n(c) Peak load current = %.2f A\"%Ip)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) RMS load voltage 100 V\n",
+ "\n",
+ "(b)\n",
+ "\n",
+ "Vl = 127.32sin(314.16t)+42.44sin(942.48t)+25.46sin(1570.80t)+18.19sin(2199.11t)\n",
+ "\n",
+ "Load impedances for various harmonics are:\n",
+ "Z1 = 20.24 < 8.92\u00b0\n",
+ "Z3 = 22.1 < 25.22\u00b0\n",
+ "Z5 = 25.43 < 38.13\u00b0\n",
+ "Z7 = 29.72 < 47.71\u00b0\n",
+ "\n",
+ "Il = 6.29sin(314.16t-8.92\u00b0)+1.92sin(942.48t-25.22\u00b0)+1.001sin(1570.80t-38.13\u00b0)+0.612sin(2199.11t-47.71\u00b0)\n",
+ "\n",
+ "RMS value of fundamental component of load current = 4.448 A\n",
+ "\n",
+ "(c) Peak load current = 6.68 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 152
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.11, Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase bridge inverter with 120\u00b0 mode of operation\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # supply voltage\n",
+ "R = 10.0 # per phase resistor\n",
+ "\n",
+ "#Calculations\n",
+ "Ip = V/(2*R)\n",
+ "Irms = math.sqrt(((2*R)**2)*(2.0/3.0))\n",
+ "P = Irms**2*R*3\n",
+ "Iavg = 2*R/3\n",
+ "Itrms = math.sqrt((2*R)**2/3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Peak value of load current = %d A\\nRMS load current = %.2f A\\nPower output = %.0f W\"%(Ip,Irms,P))\n",
+ "print(\"Average thyristor current = %.2f A\\nRMS value of thyristor current = %.2f A\"%(Iavg,Itrms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak value of load current = 20 A\n",
+ "RMS load current = 16.33 A\n",
+ "Power output = 8000 W\n",
+ "Average thyristor current = 6.67 A\n",
+ "RMS value of thyristor current = 11.55 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 156
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.12, Page No. 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# 3-phase bridge inverter with 180\u00b0 mode of operation\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 400.0 # supply voltage\n",
+ "R = 10.0 # per phase resistor\n",
+ "\n",
+ "#Calculations\n",
+ "Rl = 1.5*R\n",
+ "i1 = V/Rl\n",
+ "Irms = math.sqrt((1/(2*math.pi))*(((i1**2*(2*math.pi/3)))+((i1/2)**2*((2*math.pi)-(2*math.pi/3)))))\n",
+ "P =Irms**2*R*3\n",
+ "Iavg = ((i1*math.pi/3)+(i1*math.pi/3))/(2*math.pi)\n",
+ "Itrms = math.sqrt(((i1**2*math.pi/3)+((i1/2)**2*2*math.pi/3))/(2*math.pi))\n",
+ "\n",
+ "#Result\n",
+ "print(\"RMS load current = %.3f A\\nPower output = %.2f A\\nPeak thyristor current = %.2f A\"%(Irms,P,i1))\n",
+ "print(\"Average current of thyristor = %.2f A\\nRMS current of thyristor = %.2f A\"%(Iavg,Itrms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS load current = 18.856 A\n",
+ "Power output = 10666.67 A\n",
+ "Peak thyristor current = 26.67 A\n",
+ "Average current of thyristor = 8.89 A\n",
+ "RMS current of thyristor = 13.33 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 164
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.13, Page No.230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# RMS value of load current and RMS value of thyristor current\n",
+ "\n",
+ "import math\n",
+ "#variaable declaration\n",
+ "V = 450.0 # supply voltage\n",
+ "R = 10.0 # per phase load resistance\n",
+ "mode = 180 # conduction mode\n",
+ "\n",
+ "#calculation\n",
+ "Rl = 1.5*R\n",
+ "i1 = V/Rl\n",
+ "#(a)\n",
+ "Irms = math.sqrt((1/(2*math.pi))*(((i1**2*(2*math.pi/3)))+((i1/2)**2*((2*math.pi)-(2*math.pi/3)))))\n",
+ "Ip = i1\n",
+ "Itrms = math.sqrt((1/(2*math.pi))*(((i1**2*(math.pi/3)))+((i1/2)**2*((math.pi)-(math.pi/3)))))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) RMS load current = %.2f A\\n(b) Peak current of thyristor = %.0f A\\n(c) RMS current of thyristor = %.0f A\"%(Irms,Ip,Itrms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) RMS load current = 21.21 A\n",
+ "(b) Peak current of thyristor = 30 A\n",
+ "(c) RMS current of thyristor = 15 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 167
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.14, Page No. 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full bridge inverter\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 200.0 # input voltage\n",
+ "w = 30.0 # width of each pulse\n",
+ "n = 5.0 # no of pulses each cycle\n",
+ "i =1.1 # factor by whic input is to be increased\n",
+ "w1= 33.0 # maximum width of pulse\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vl = V*math.sqrt(n*w/180.0)\n",
+ "Vl = math.floor(Vl*100)/100\n",
+ "Vl1 = 182.52 #value used in the book for calculations\n",
+ "#(b)\n",
+ "Vi = V*i\n",
+ "sig=(180*(Vl1/Vi)**2)/n\n",
+ "#(c)\n",
+ "V = Vl1/math.sqrt(n*w1/180.0)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Vl = %.2f V\\n(b) Pulse-width = %.2f\u00b0\\n(c) V = %.2f V\"%(Vl,sig,V))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Vl = 182.57 V\n",
+ "(b) Pulse-width = 24.78\u00b0\n",
+ "(c) V = 190.64 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 186
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.15, Page No.234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full bridge inverter\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 200.0 #input voltage\n",
+ "w = 120.0 # width of signal\n",
+ "\n",
+ "#Calculations\n",
+ "Vl = V*math.sqrt(w/180)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vl = %.1f V\"%Vl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vl = 163.3 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 190
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4.16, Page No. 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Inverter controlled by sinusoidal pulse-width modulation\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "V = 150.0 # input DC voltage\n",
+ "w1 = 20.0 # reference signal is more than control signal from 20\u00b0 to 40\u00b0\n",
+ "w2 = 60.0 # reference signal is more than control signal from 60\u00b0 to 120\u00b0\n",
+ "w3 = 20.0 # reference signal is more than control signal from 140\u00b0 to 160\u00b0\n",
+ "\n",
+ "#Calculations\n",
+ "Vl = V*math.sqrt((w1/180)+(w2/180)+(w3/180))\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vl = %.1f V\"%Vl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vl = 111.8 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 192
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_5.ipynb b/Power_Electronics/Power_electronics_ch_5.ipynb
new file mode 100755
index 00000000..eed0454a
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_5.ipynb
@@ -0,0 +1,1095 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.1, Page No. 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# chopper parameters\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vi = 200.0 # input voltage\n",
+ "Vo = 150.0 # output voltage\n",
+ "R = 10.0 # resistance\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "alfa = Vo/Vi\n",
+ "#(b)\n",
+ "Iavg = Vo/R\n",
+ "Irms = math.sqrt(alfa)*Vi/R\n",
+ "#(c)\n",
+ "Irms_t = Irms\n",
+ "#(d)\n",
+ "Iavg_i = Iavg\n",
+ "#(e)\n",
+ "Reff = R/alfa\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Alfa = %.2f \"%alfa)\n",
+ "print(\"(b) Average load current = %.0f A\\n RMS load current = %.2f A\"%(Iavg,Irms))\n",
+ "print(\"(c) RMS thyristor current = %.2f A\"%Irms_t)\n",
+ "print(\"(d) Average input current = %.0f A\"%Iavg_i)\n",
+ "print(\"(e) Effective input resistance = %.3f ohm\"%Reff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Alfa = 0.75 \n",
+ "(b) Average load current = 15 A\n",
+ " RMS load current = 17.32 A\n",
+ "(c) RMS thyristor current = 17.32 A\n",
+ "(d) Average input current = 15 A\n",
+ "(e) Effective input resistance = 13.333 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# periods of conduction and blocking in each cycle\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vi = 230.0 # input voltage\n",
+ "Vav = 150.0 # output voltage\n",
+ "f = 1000.0 # frequency\n",
+ "\n",
+ "# Calculation\n",
+ "T = 1/f\n",
+ "Ton = Vav*T/Vi\n",
+ "Toff = T -Ton\n",
+ "\n",
+ "#Result\n",
+ "print(\"Conduction Period = %.3f*10^-3 s\\nBlocking period = %.3f*10^-3 s\"%(Ton*1000,Toff*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction Period = 0.652*10^-3 s\n",
+ "Blocking period = 0.348*10^-3 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.3, Page No. 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# periods of conduction and blocking\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ra = 0.06 # armature resistance\n",
+ "Rf = 0.03 # field resistance\n",
+ "I = 15.0 # Average circuit current\n",
+ "f = 500.0 # chopper frequency\n",
+ "Be = 100 # back emf of motor\n",
+ "Vi = 200 # input voltage\n",
+ "\n",
+ "#Calculations\n",
+ "Vav = I*(Ra+Rf)+Be\n",
+ "T = 1/f\n",
+ "Ton = Vav*T/Vi\n",
+ "Toff = T -Ton\n",
+ "\n",
+ "#Result\n",
+ "print(\"Conduction Period = %.4f*10^-3 s\\nBlocking period = %.4f*10^-3 s\"%(Ton*1000,Toff*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction Period = 1.0135*10^-3 s\n",
+ "Blocking period = 0.9865*10^-3 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.4, Page No.250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Duty Cycle\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "N = 800.0 # rated speed in rpm\n",
+ "I = 20 # rated current\n",
+ "Ra = 0.5 # armature resistanc\n",
+ "V = 240.0 # supply voltage\n",
+ "N1 = 600.0 # motor speed\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Be_800 = V- I*Ra\n",
+ "Be_600 = Be_800*N1/N\n",
+ "Vav = Be_600 + I*Ra\n",
+ "D1 = Vav/V\n",
+ "#(b)\n",
+ "Ia = I/2.0\n",
+ "Vav2 = Be_600+Ia*Ra\n",
+ "D2 = Vav2/V\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Since torque is constant,Ia is also constant, i.e. %d A\\n Duty cycle = %.4f \"%(I,D1))\n",
+ "print(\"(b) Since torque is reduced to half and flux is constant,armature current is reduced to half, i.e. %d A\\n Duty cycle = %.4f \"%(Ia,D2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Since torque is constant,Ia is also constant, i.e. 20 A\n",
+ " Duty cycle = 0.7604 \n",
+ "(b) Since torque is reduced to half and flux is constant,armature current is reduced to half, i.e. 10 A\n",
+ " Duty cycle = 0.7396 \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.5, Page No.256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# chopper parameters\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 200.0 # input voltage\n",
+ "R = 8.0 # load resistance\n",
+ "Vt = 2.0 # voltage drop across thyristor\n",
+ "f = 800.0 # chopper frequency\n",
+ "d = 0.4 # duty cycle\n",
+ "alfa = 0.5 # duty cycle for case 5\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vav = d*(V-Vt)\n",
+ "#(b)\n",
+ "Vl = math.sqrt(d)*(V-Vt)\n",
+ "#(c)\n",
+ "Po = (Vl**2)/R\n",
+ "Pi = d*V*(V-Vt)/R\n",
+ "eff = Po/Pi\n",
+ "#(d)\n",
+ "Ri = R/d\n",
+ "#(e)\n",
+ "Vl2 = 2*(V-Vt)/math.pi\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "V1 = Vl2/sqrt_2\n",
+ "V1 = math.floor(V1*1000)/1000\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Vav = %.1f V\\n(b) Vl = %.3f V\\n(c) Chopper efficiency = %.0f%%\\n(d) Input resistance = %.0f ohm\"%(Vav,Vl,eff*100,Ri))\n",
+ "print(\"(e)\\nThe fundamental component (n=1) is,\\nVl = %.2fsin(%d*pi*t)\\nThe rms value of fundamental component is, V1 = %.3f V\"%(Vl2,2*f,V1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Vav = 79.2 V\n",
+ "(b) Vl = 125.226 V\n",
+ "(c) Chopper efficiency = 99%\n",
+ "(d) Input resistance = 20 ohm\n",
+ "(e)\n",
+ "The fundamental component (n=1) is,\n",
+ "Vl = 126.05sin(1600*pi*t)\n",
+ "The rms value of fundamental component is, V1 = 89.144 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.6, Page No. 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# chopping frequency\n",
+ "\n",
+ "import math\n",
+ "#Variable declartion\n",
+ "V = 400 # input voltage\n",
+ "R = 0 # resistance\n",
+ "L = 0.05 # inductance\n",
+ "alfa = 0.25 # duty cycle of chopper\n",
+ "I = 10 # load current\n",
+ "\n",
+ "#Calculation\n",
+ "Vav = V*alfa\n",
+ "Ton = L*I/(V-Vav)\n",
+ "T = Ton/alfa\n",
+ "f = 1/T\n",
+ "\n",
+ "#Result\n",
+ "print(\"Chopper frequency = %d pulses/s\"%(f))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Chopper frequency = 150 pulses/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.7, Page No. 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# chopper parameters\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "R = 4.0 # resistance\n",
+ "L = 6*10**-3 # inductance\n",
+ "V = 200.0 # voltage\n",
+ "alfa = 0.5 # duty cycle\n",
+ "f = 1000.0 # frequency\n",
+ "E = 0 # back emf \n",
+ "#calculations\n",
+ "T = 1/f\n",
+ "#(a)\n",
+ "x = R*T/L\n",
+ "Imax = ((V/R)*((1-math.e**(-alfa*x))/(1-math.e**(-x))))-(E/R)\n",
+ "Imax = math.ceil(Imax*100)/100\n",
+ "Imin = ((V/R)*(((math.e**(alfa*x))-1)/((math.e**(x))-1)))-(E/R)\n",
+ "Imin = math.floor(Imin*100)/100\n",
+ "#(b)\n",
+ "ripple = V/(f*R*L)\n",
+ "#(c)\n",
+ "Iavg = (Imax+Imin)/2\n",
+ "#(d)\n",
+ "Il = math.sqrt((Imin**2)+(((Imax-Imin)**2)/3)+(Imin*(Imax-Imin)))\n",
+ "Il = math.floor(Il*100)/100\n",
+ "#(e)\n",
+ "Iavg_i =0.5*Iavg\n",
+ "#(f)\n",
+ "Irms_i = Il*math.sqrt(0.5)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Imax = %.2f A\\tImin = %.2f A\"%(Imax,Imin))\n",
+ "print(\"(b) Maximum Ripple = %.2f A\\n(c) Average load current = %.0f A\"%(ripple,Iavg))\n",
+ "print(\"(d) rms load current = %.2f A\\n(e) Average input current = %.1f A\\n(f) RMS input current = %.3f A\"%(Il,Iavg_i,Irms_i))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Imax = 29.13 A\tImin = 20.87 A\n",
+ "(b) Maximum Ripple = 8.33 A\n",
+ "(c) Average load current = 25 A\n",
+ "(d) rms load current = 25.11 A\n",
+ "(e) Average input current = 12.5 A\n",
+ "(f) RMS input current = 17.755 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.8, Page No.258 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Load inductance\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 300 # input voltage\n",
+ "R = 5 # load resistance\n",
+ "f = 250.0 # chopping frequency\n",
+ "r = 0.20 # 20% ripple\n",
+ "I = 30 # Average load current\n",
+ "\n",
+ "#Calculations\n",
+ "x = r*I\n",
+ "L = V/(4*f*x)\n",
+ "\n",
+ "#Result\n",
+ "print(\"L = %.0f *10^-3 H\"%(L*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 50 *10^-3 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.9, Page No.258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Current at the instannce of turn off of thryster and 5 msec after turn off\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R = 0.5 # Armature resistance\n",
+ "L = 16*10**-3 # Arature inductance\n",
+ "V = 200.0 # DC input voltage\n",
+ "Be = 100.0 # Back emf\n",
+ "Imin = 10.0 # minimum load current\n",
+ "Toff = 2*10**-3 # thyristor turn off time\n",
+ "delay = 5*10**-3 # current at the to be calculated 5 msec after turn off\n",
+ "\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "x = R/L\n",
+ "i = (((V-Be)/R)*(1-math.e**(-x*Toff)))+Imin*(math.e**(-x*Toff))\n",
+ "i = math.floor(i*100)/100\n",
+ "#(b)\n",
+ "i2 = i*(math.e**(-x*delay))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Current at the instance of turn off of thyristor = %.2f A\"%i)\n",
+ "print(\"(b) After the turn off of thyristor,the current freewheels 5 ms.\\n\\ti = %.2f A\"%i2)\n",
+ "# answers in the book are wrong:12.12+9.39=21.41"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Current at the instance of turn off of thyristor = 21.51 A\n",
+ "(b) After the turn off of thyristor,the current freewheels 5 ms.\n",
+ "\ti = 18.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.10, Page No. 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Speed of the motor\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 220.0 # input voltage\n",
+ "Ra = 1.0 # armature resistance\n",
+ "N = 1000.0 # no load speed of the motor\n",
+ "alfa = 0.6 # duty cycle\n",
+ "I = 20 # motor current\n",
+ "E = 220.0 # back emf at no load\n",
+ "\n",
+ "# Calculations\n",
+ "Vi = V*alfa\n",
+ "Be = Vi-Ra*I\n",
+ "N1 = Be*N/V\n",
+ "\n",
+ "#Result\n",
+ "print(\"Speed of the motor = %.1f rpm\"%N1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed of the motor = 509.1 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.11, Page No.259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average load voltage of the chopper\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vi = 230.0 # input voltage\n",
+ "Ton = 25 # on time in ms\n",
+ "Toff = 10 # off time in ms\n",
+ "\n",
+ "#Calculations\n",
+ "V = Vi*Ton/(Ton+Toff)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Average load voltage = %.3f V\"%V)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average load voltage = 164.286 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.12, Page No. 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# max, min and average load current and load voltage\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 100.0 # applied voltage\n",
+ "Be = 0 # back emf\n",
+ "L = 1.0*10**-3 # inductance\n",
+ "R = 0.5 # Resistance\n",
+ "T = 3*10**-3 # Ton + Toff\n",
+ "Ton = 1*10**-3 # Ton\n",
+ "\n",
+ "#Calculations\n",
+ "alfa = Ton/T\n",
+ "x = T*R/L\n",
+ "#(a)\n",
+ "Imax = (V/R)*((1- math.e**(-alfa*x))/(1-math.e**(-x)))\n",
+ "#(b)\n",
+ "Imin = (V/R)*((math.e**(alfa*x)-1)/(math.e**(x)-1))\n",
+ "#(c)\n",
+ "Vavg = alfa*V\n",
+ "\n",
+ "#Result\n",
+ "print(\" Imax = %.2f A\\n Imin = %.1f A\\n Average load current = %.1f A\\n Average output voltage = %.2f V\"%(Imax,Imin,(Imax+Imin)/2,Vavg))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Imax = 101.30 A\n",
+ " Imin = 37.3 A\n",
+ " Average load current = 69.3 A\n",
+ " Average output voltage = 33.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 89
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.13, Page No.259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# In One quadrant chopper, output voltage and current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 100.0 # applied voltage\n",
+ "Be = 12.0 # back emf\n",
+ "L = 0.8*10**-3 # inductance\n",
+ "R = 0.2 # Resistance\n",
+ "T = 2.4*10**-3 # Ton + Toff\n",
+ "Ton = 1*10**-3 # Ton\n",
+ "\n",
+ "#Calculations\n",
+ "alfa = Ton/T\n",
+ "x = T*R/L\n",
+ "#(a)\n",
+ "Imax = (V/R)*((1- math.e**(-alfa*x))/(1-math.e**(-x)))\n",
+ "#(b)\n",
+ "Imin = (V/R)*((math.e**(alfa*x)-1)/(math.e**(x)-1))\n",
+ "#(c)\n",
+ "Vavg = alfa*V\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Imax = %.2f A\\n(b) Imin = %.1f A\\n(c) Average output voltage = %.2f V\"%(Imax,Imin,Vavg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Imax = 245.13 A\n",
+ "(b) Imin = 172.7 A\n",
+ "(c) Average output voltage = 41.67 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.14, Page No. 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Series inductance\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "f = 400.0 # chopping frequency\n",
+ "V = 500.0 # input voltage\n",
+ "I = 10 # maximum current swing\n",
+ "\n",
+ "#calculations\n",
+ "L = V/(4*f*I)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Series Inductance, L = %.2f*10^-3 H \"%(L*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Series Inductance, L = 31.25*10^-3 H \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.15, Pager No.260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Motor speed and current swing\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 800.0 # input voltage\n",
+ "P = 300.0 # motor power rating in HP\n",
+ "eff = 0.9 # motor efficiency\n",
+ "R = 0.1 # total armature and field resistance\n",
+ "L = 100*10**-3 # inductance\n",
+ "alfa = 0.2 # duty cycle\n",
+ "N = 900.0 # motor rated speed \n",
+ "f = 400.0 # chopping frequency\n",
+ "\n",
+ "#Calculations\n",
+ "Po = P*735.5/1000\n",
+ "Pi = Po/eff\n",
+ "I = Pi*1000/V\n",
+ "Be = V-(I*R)\n",
+ "Be_duty = (alfa*V)-(I*R)\n",
+ "N2 = N*Be_duty/Be\n",
+ "di = (V- (alfa*V))*alfa/(L*f)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Motor speed = %.2f rpm\\nCurrent swing = %.1f A\"%(N2,di))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor speed = 151.32 rpm\n",
+ "Current swing = 3.2 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.16, Page No. 261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.17, Page No. 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print(\"Theoretical example\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical example\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.18, Page No. 264"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# step down chopper parameters\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 200.0 # input voltage\n",
+ "R = 2.0 # resistance\n",
+ "L = 10*10**-3 # inductance\n",
+ "E = 20.0 # back emf\n",
+ "T = 1000*10**-6 # chopping cycle\n",
+ "Ton =300*10**-6 # Ton time of thyrister\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "f = 1/T\n",
+ "x = (R*T)/L\n",
+ "alfa_min =(math.log(1+((E/V)*(math.e**(x)-1))))/x\n",
+ "alfa = Ton/T\n",
+ "#(b)\n",
+ "Imax = ((V/R)*((1-math.e**(-alfa*x))/(1-math.e**(-x))))-(E/R)\n",
+ "Imax = math.floor(Imax*10)/10\n",
+ "Imin = ((V/R)*((math.e**(alfa*x)-1)/(math.e**(x)-1)))-(E/R)\n",
+ "Imin = math.floor(Imin*100)/100\n",
+ "#(c)\n",
+ "Il = (alfa*V-E)/R\n",
+ "#(d)\n",
+ "x1 = alfa*V\n",
+ "x2 = (V*math.sin(math.pi*2*alfa))/math.pi\n",
+ "x3 = (V/math.pi)*(1-math.cos(alfa*2*math.pi))\n",
+ "x4 = (V*math.sin(math.pi*2*2*alfa))/(math.pi*2)\n",
+ "x5 = (V/(2*math.pi))*(1-math.cos(alfa*2*2*math.pi))\n",
+ "x6 = (V*math.sin(math.pi*3*2*alfa))/(math.pi*3)\n",
+ "x7 = (V/(3*math.pi))*(1-math.cos(alfa*2*3*math.pi))\n",
+ "d = f*2*math.pi\n",
+ "#(e)\n",
+ "Iavg = (alfa*(V-E)/R)-(L*(Imax-Imin)/(R*T))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Minimum required value of alfa = %.4f\\n Actual value of alfa = %.1f\"%(alfa_min,alfa))\n",
+ "print(\" Since actual value is more than minimum required for continuous current,the load current is continuous.\")\n",
+ "print(\"\\n(b) Imax = %.1f A\\tImin = %.2f A\"%(Imax,Imin))\n",
+ "print(\"\\n(c) Average load current = %.0f A\"%Il)\n",
+ "print(\"\\n(d) Vl = %d + %.2fcos(%.1ft) + %.2fsin(%.1ft)%.2fcos(%.1ft) + %.2fsin(%.1ft)%.2fcos(%.1ft) + %.2fsin(%.1ft)+....\"%(x1,x2,d,x3,d,x4,2*d,x5,2*d,x6,3*d,x7,3*d))\n",
+ "print(\"\\n(e) Average Input current = %.2f A\"%Iavg)\n",
+ "# answer for Imin is slightly greater than the answer given in book and hence answer for avg input current"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Minimum required value of alfa = 0.1095\n",
+ " Actual value of alfa = 0.3\n",
+ " Since actual value is more than minimum required for continuous current,the load current is continuous.\n",
+ "\n",
+ "(b) Imax = 22.1 A\tImin = 17.92 A\n",
+ "\n",
+ "(c) Average load current = 20 A\n",
+ "\n",
+ "(d) Vl = 60 + 60.55cos(6283.2t) + 83.33sin(6283.2t)-18.71cos(12566.4t) + 57.58sin(12566.4t)-12.47cos(18849.6t) + 4.05sin(18849.6t)+....\n",
+ "\n",
+ "(e) Average Input current = 6.10 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.19, Page No.266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# load current values\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 200.0 # input voltage\n",
+ "R = 4.0 # resistance\n",
+ "L = 10*10**-3 # inductance\n",
+ "T = 1000*10**-6 # chopping cycle\n",
+ "Ton =300*10**-6 # Ton time of thyrister\n",
+ "\n",
+ "#Calculations\n",
+ "f = 1/T\n",
+ "alfa = Ton/T\n",
+ "x1 = alfa*V\n",
+ "x2 = (V*math.sin(math.pi*2*alfa))/math.pi\n",
+ "x2 = math.ceil(x2*100)/100\n",
+ "x3 = (V/math.pi)*(1-math.cos(alfa*2*math.pi))\n",
+ "x3 = math.floor(x3*100)/100\n",
+ "x4 = (V*math.sin(math.pi*2*2*alfa))/(math.pi*2)\n",
+ "x4 = math.floor(x4*100)/100\n",
+ "x5 = (V/(2*math.pi))*(1-math.cos(alfa*2*2*math.pi))\n",
+ "x5 = math.floor(x5*100)/100\n",
+ "x6 = (V*math.sin(math.pi*3*2*alfa))/(math.pi*3)\n",
+ "x6 = math.ceil(x6*100)/100\n",
+ "x7 = (V/(3*math.pi))*(1-math.cos(alfa*2*3*math.pi))\n",
+ "x7 = math.floor(x7*100)/100\n",
+ "\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "V1 = math.sqrt((x2**2+x3**2))/sqrt_2\n",
+ "V2 = math.sqrt((x4**2+x5**2))/sqrt_2\n",
+ "V3 = math.sqrt((x6**2+x7**2))/sqrt_2\n",
+ "Z1_mag = math.sqrt(R**2+(2*math.pi*f*L)**2)\n",
+ "Z1_angle = math.tan((2*math.pi*f*L)/R)\n",
+ "I1 = V1/Z1_mag\n",
+ "\n",
+ "Z2_mag = math.sqrt(R**2+(2*2*math.pi*f*L)**2)\n",
+ "Z2_angle = math.tan((2*2*math.pi*f*L)/R)\n",
+ "I2 = V2/Z2_mag\n",
+ "\n",
+ "Z3_mag = math.sqrt(R**2+(3*2*math.pi*f*L)**2)\n",
+ "Z3_angle = math.tan((3*2*math.pi*f*L)/R)\n",
+ "I3 = V3/Z3_mag\n",
+ "\n",
+ "Iavg = alfa*V/4\n",
+ "Irms = math.sqrt(Iavg**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "print(\"RMS value of first harmonic component of load current = %.3f A\"%I1)\n",
+ "print(\"RMS value of second harmonic component of load current = %.4f A\"%I2)\n",
+ "print(\"RMS value of third harmonic component of load current = %.4f A\"%I3)\n",
+ "print(\"RMS value of load current = %.4f A\"%Irms)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS value of first harmonic component of load current = 1.157 A\n",
+ "RMS value of second harmonic component of load current = 0.3406 A\n",
+ "RMS value of third harmonic component of load current = 0.0492 A\n",
+ "RMS value of load current = 15.0485 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.20, Page No.273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# L and C of the auxiliary commutation circuit\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 200 # input voltage\n",
+ "I = 50 # average current\n",
+ "Il = 60 # peak load current\n",
+ "Toff = 15*10**-6 # thyristor turn off current\n",
+ "l = 1.5 # max current limit of 150%\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "C = Toff*Il/V # C should be greater than this value\n",
+ "C1 = 5 *10**-6 # assumed\n",
+ "Ic = Il*l-Il\n",
+ "L = (V**2*(C1))/(Ic**2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"C > %.1f*10^-6, Therefore assume C = %.1f*10^6 F\"%(C*10**6,C1*10**6))\n",
+ "print(\"L = %.2f*10^-6 H\"%(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C > 4.5*10^-6, Therefore assume C = 5.0*10^6 F\n",
+ "L = 222.22*10^-6 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.21, Page No.277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# period of conduction\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 200.0 # input voltage \n",
+ "Vav = 250.0 # output voltage\n",
+ "Toff = 0.6*10**-3 # blocking period\n",
+ "\n",
+ "#calculation\n",
+ "Ton = (Vav*Toff/V) - Toff\n",
+ "\n",
+ "#Result\n",
+ "print(\"Ton = %.2f*10^-3 second\"%(Ton*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ton = 0.15*10^-3 second\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5.22, Page No.277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# period of conduction\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 150.0 # input voltage \n",
+ "Vav = 250.0 # output voltage\n",
+ "Toff = 1*10**-3 # blocking period\n",
+ "\n",
+ "#calculation\n",
+ "Ton = (Vav*Toff/V) - Toff\n",
+ "\n",
+ "#Result\n",
+ "print(\"Ton = %.4f*10^-3 second\"%(Ton*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ton = 0.6667*10^-3 second\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_6.ipynb b/Power_Electronics/Power_electronics_ch_6.ipynb
new file mode 100755
index 00000000..9456765e
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_6.ipynb
@@ -0,0 +1,852 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: AC Regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.1, Page No.286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# input/output power, input power factor, average and rms vales of thyristor\n",
+ "\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#variable declaration\n",
+ "nc = 36.0 # conduction cycles\n",
+ "no = 64.0 # off cycles\n",
+ "V = 150.0 # input voltage\n",
+ "Rl = 8.0 # load resistance\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "alfa = nc/(nc+no)\n",
+ "Vl = V*math.sqrt(alfa)\n",
+ "#(b)\n",
+ "P = (Vl**2)/Rl\n",
+ "#(d)\n",
+ "Il = Vl/Rl\n",
+ "va_i = V*Il\n",
+ "pf_i = P/va_i\n",
+ "#(e)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Ip = sqrt_2*V/Rl\n",
+ "\n",
+ "def f(x):\n",
+ " return (alfa/(2*math.pi))*Ip*(math.sin(x))\n",
+ "wt_lower=0\n",
+ "wt_upper =math.pi\n",
+ "val = quad(f,wt_lower,wt_upper)\n",
+ "\n",
+ "val2 =Ip*math.sqrt(alfa)/2.0\n",
+ "\n",
+ "#result\n",
+ "print(\"(a) rms output voltage, Vl = %.0f V\\n(b) Power output = %.1f W\"%(Vl,P))\n",
+ "print(\"(c) Since losses are neglected, input power = Output power = %.1f W\"%(P))\n",
+ "print(\"(d) input power factor = %.1f lagging\\n(e)\\tPeak thyristor current = %.4f A \"%(pf_i,Ip))\n",
+ "print(\"\\tAverage thyristor current = %.3f A\\n\\tRMS thyristor current = %.2f A\"%(val[0],val2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) rms output voltage, Vl = 90 V\n",
+ "(b) Power output = 1012.5 W\n",
+ "(c) Since losses are neglected, input power = Output power = 1012.5 W\n",
+ "(d) input power factor = 0.6 lagging\n",
+ "(e)\tPeak thyristor current = 26.5125 A \n",
+ "\tAverage thyristor current = 3.038 A\n",
+ "\tRMS thyristor current = 7.95 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.2, Page No.288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# single phase half wave regulator parameter\n",
+ "\n",
+ "import math\n",
+ "#vaariable declaration\n",
+ "V = 150.0 # input voltage\n",
+ "Rl = 8.0 # load resistance\n",
+ "theta = 60.0 # thyristor firing angle in degrees\n",
+ "\n",
+ "# Calculations\n",
+ "Vm =math.sqrt(2)*V\n",
+ "Vm = math.floor(Vm*10)/10\n",
+ "#(a)\n",
+ "Vo = Vm*(math.cos(theta*math.pi/180)-1)/(2*math.pi)\n",
+ "#(b)\n",
+ "Vl = Vm*math.sqrt(((2*math.pi)-(theta*math.pi/180)+(math.sin(2*theta*math.pi/180)/2))/(4*math.pi))\n",
+ "Vl = math.ceil(Vl*100)/100\n",
+ "#(c)\n",
+ "Po = (Vl**2)/Rl\n",
+ "#(d)\n",
+ "I = Vl/Rl\n",
+ "va = V*I\n",
+ "pf = Po/va\n",
+ "#(e)\n",
+ "Iavg = Vo/Rl\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Average output voltage = %.1f V\\n This is negative because only a part of positive half cycle appears at the output\"%Vo)\n",
+ "print(\" whereas the whole negative cycle appears at the output.\")\n",
+ "print(\"\\n(b) Vl = %.2f V\\n\\n(c) Power output = %.2f W\\n\\n(d) Input pf = %.2f lagging\"%(Vl,Po,pf))\n",
+ "print(\"\\n(e) Average input current = Average output current = %.2f A \"%(Iavg))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Average output voltage = -16.9 V\n",
+ " This is negative because only a part of positive half cycle appears at the output\n",
+ " whereas the whole negative cycle appears at the output.\n",
+ "\n",
+ "(b) Vl = 142.46 V\n",
+ "\n",
+ "(c) Power output = 2536.86 W\n",
+ "\n",
+ "(d) Input pf = 0.95 lagging\n",
+ "\n",
+ "(e) Average input current = Average output current = -2.11 A \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.3, Page No.293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full wave regulator parameters\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#variable declaration\n",
+ "V = 150.0 # input voltage\n",
+ "Rl = 8.0 # load resistance\n",
+ "theta = 60.0 # thyristor firing angle in degrees\n",
+ "\n",
+ "#calculations\n",
+ "Vm =math.sqrt(2)*V\n",
+ "Vm = math.floor(Vm*10)/10\n",
+ "#(a)\n",
+ "Vav = Vm*(math.cos(theta*math.pi/180)+1)/(math.pi)\n",
+ "#(b)\n",
+ "Vl = Vm*math.sqrt(((3.14)-(3.14/3)+(math.sin(2*theta*3.14/180)/2))/(2*3.141))\n",
+ "Vl = math.ceil(Vl*100)/100\n",
+ "#(c)\n",
+ "Io = Vl/Rl\n",
+ "Po = (Io**2)*Rl\n",
+ "#(d)\n",
+ "va = V*Io\n",
+ "pf = Po/va\n",
+ "#(e)\n",
+ "def f(x):\n",
+ " return math.sin(x)\n",
+ "wt_lower = math.pi/3 \n",
+ "wt_upper = math.pi\n",
+ "val = quad(f,wt_lower,wt_upper)\n",
+ "Iavg = val[0]*Vm/(2*math.pi*Rl)\n",
+ "\n",
+ "def g(x):\n",
+ " return math.sin(x)**2\n",
+ "wt_lower1 = math.pi/3\n",
+ "wt_upper1 = math.pi\n",
+ "val1 = quad(g,wt_lower1,wt_upper1)\n",
+ "Irms = (Vm/(Rl))*math.sqrt(val1[0]/(math.pi*2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Average output voltage = %.2f V\\n \"%Vav)\n",
+ "print(\"\\n(b) Vl = %.2f V\\n\\n(c) Power output = %.2f W\\n\\n(d) Input pf = %.3f lagging\"%(Vl,Po,pf))\n",
+ "print(\"\\n(e) Average thyristor current= %.2f A\\n RMS thyristor current = %.2f A \"%(Iavg,Irms))\n",
+ "\n",
+ "#(b) For Vl calculation, value of pi is used different at different place. if math.pi is used then Vl = 134.53V\n",
+ "#(c) answer in the book is misprinted"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Average output voltage = 101.27 V\n",
+ " \n",
+ "\n",
+ "(b) Vl = 134.52 V\n",
+ "\n",
+ "(c) Power output = 2261.95 W\n",
+ "\n",
+ "(d) Input pf = 0.897 lagging\n",
+ "\n",
+ "(e) Average thyristor current= 6.33 A\n",
+ " RMS thyristor current = 11.89 A \n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.4, Page No. 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full wave ac voltage regulator\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#variable declaration\n",
+ "V = 120.0 # input voltage\n",
+ "Rl = 10.0 # load resistance\n",
+ "alfa = 90.0 # thyristor firing angle in degrees\n",
+ "\n",
+ "#Calculations\n",
+ "Vm =math.sqrt(2)*V\n",
+ "#Vm = math.floor(Vm*10)/10\n",
+ "#(a)\n",
+ "Vo = Vm*math.sqrt(((math.pi)-(alfa*math.pi/180)+(math.sin(2*alfa*math.pi/180)/2.0))/(2*math.pi))\n",
+ "#Vo = 60*math.sqrt(2) \n",
+ "#(b)\n",
+ "Il = Vo/Rl\n",
+ "Po = (Il**2)*Rl\n",
+ "VA = Il*V\n",
+ "pf = Po/VA\n",
+ "#(c)\n",
+ "def f(x):\n",
+ " return math.sin(x)\n",
+ "wt_lower = math.pi/2\n",
+ "wt_upper = math.pi\n",
+ "val = quad(f,wt_lower,wt_upper)\n",
+ "Iav = Vm*val[0]/(2*math.pi*Rl)\n",
+ " \n",
+ "#(d)\n",
+ "Irms = Il/math.sqrt(2)\n",
+ "#(e)\n",
+ "Irmsl = Vo/Rl\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) RMS output voltage = %f V\\n(b) Input p.f. = %.3f lagging\\n(c) Average thyristor current = %.1f A\"%(Vo,pf,Iav))\n",
+ "print(\"(d) RMS thyristor current = %.1f A\\n(e) RMS load current =%f A\"%(Irms,Irmsl))\n",
+ "# Answer for \"RMS output voltage\" and \"RMS load current\" is wrong in the book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) RMS output voltage = 84.852814 V\n",
+ "(b) Input p.f. = 0.707 lagging\n",
+ "(c) Average thyristor current = 2.7 A\n",
+ "(d) RMS thyristor current = 6.0 A\n",
+ "(e) RMS load current =8.485281 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.5, Page No. 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# rms output voltage and average power\n",
+ "\n",
+ "import math\n",
+ "R = 400.0 # load resistance\n",
+ "V = 110.0 # input voltage\n",
+ "alfa = 60.0 # firing angle\n",
+ "\n",
+ "# calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = sqrt_2*V\n",
+ "Vo = Vm*math.sqrt(((math.pi)-(alfa*math.pi/180)+(math.sin(2*alfa*math.pi/180)/2.0))/(2*math.pi))\n",
+ "P = (Vo**2)/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"RMS output voltage = %.2f V\\nAverage power = %.2f W\"%(Vm,P))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS output voltage = 155.54 V\n",
+ "Average power = 24.33 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.6, Page No.294 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Firing angle\n",
+ "\n",
+ "import math\n",
+ "from numpy import poly1d\n",
+ "# variable declaration\n",
+ "a1 = 0.80 # % of maximum power value1\n",
+ "a2 = 0.30 # % of maximum power value2\n",
+ "\n",
+ "#Calculation\n",
+ "#After solving equation using taylor seris of X, we got following coefficient. \n",
+ "P1 = poly1d([128.0/math.factorial(7),0,-32.0/math.factorial(5),0,8.0/math.factorial(3),0,0,(-2*math.pi*(1-a1))], variable = 'x')\n",
+ "P2 = poly1d([128.0/math.factorial(7),0,-32.0/math.factorial(5),0,8.0/math.factorial(3),0,0,(-math.pi*1.525)], variable = 'x')\n",
+ "# hardcoded value used to match the answer to the book\n",
+ "x1 = P1.r[(P1.order+1)/2]*180/math.pi\n",
+ "x2 = P2.r[(P1.order+1)/2]*180/math.pi\n",
+ "alfa1 = x1.real\n",
+ "alfa2 = x2.real\n",
+ "print(\"(a) alfa1 = %.1f\u00b0\"%(x1.real))\n",
+ "print(\"(b) alfa2 = %.1f\u00b0\"%(x2.real))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) alfa1 = 60.5\u00b0\n",
+ "(b) alfa2 = 108.6\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 98
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.7, Page No.295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# single phase AC regulator\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 230.0 # Single phase supply voltage\n",
+ "f = 50.0 # supply frequency\n",
+ "R = 15.0 # load resistance\n",
+ "alfa = 30.0 # firing angle\n",
+ "\n",
+ "#calculations\n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = V*sqrt_2\n",
+ "alfa = alfa*math.pi/180 #degree to radians\n",
+ "#(a)\n",
+ "#-Theoretical\n",
+ "Iavg = Vm*(1+ math.cos(alfa))/(2*math.pi*R)\n",
+ "Irms = (Vm/R)*math.sqrt(((math.pi - alfa)/(4*math.pi))+(math.sin(2*alfa)/(8*math.pi)))\n",
+ "#(b)\n",
+ "a1 = (Vm)*(math.cos(2*alfa)-1)/(2*math.pi)\n",
+ "b1 = (Vm)*((math.pi-alfa)+((math.sin(2*alfa))/2.0))/(math.pi)\n",
+ "Va = math.sqrt(a1**2 + b1**2)\n",
+ "Vrms = Va/sqrt_2\n",
+ "Vrms = math.floor(Vrms*1000)/1000\n",
+ "#(e)\n",
+ "P = (Vrms**2)/R\n",
+ "#(f)\n",
+ "Vl = Vm*math.sqrt((math.pi -alfa+((math.sin(2*alfa))/2.0))/(2*math.pi))\n",
+ "Vl =math.floor(Vl*1000)/1000\n",
+ "#(g)\n",
+ "Pt = (Vl**2)/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Average thyristor current = %.2f A\\n RMS thyristor current = %.3f A\"%(Iavg,Irms))\n",
+ "print(\"\\n(b) Amplitude of fundamental component of load voltage = %.1f V\\n RMS value = %.3f V\"%(math.floor(Va*10)/10,Vrms))\n",
+ "print(\"\\n(c) Since load is purely resistive, the load current rises from 0 to peak value instantaneously at alfa.\")\n",
+ "print(\" Hence max.(di/dt) is infinite\")\n",
+ "print(\"\\n(d) Maximum forward or reverse voltage across thyristor = %.2f V \"%(Vm))#math.pi =1.414\n",
+ "print(\"\\n\\n(e) Power delevered to load by fundamental component of load voltage = %.2f W\"%P)\n",
+ "print(\"\\n\\n(f) Load voltage = %.3f V\"%Vl)\n",
+ "print(\"\\n\\n(g) Total power output = %.2f W\"%Pt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Average thyristor current = 6.44 A\n",
+ " RMS thyristor current = 10.683 A\n",
+ "\n",
+ "(b) Amplitude of fundamental component of load voltage = 316.9 V\n",
+ " RMS value = 224.116 V\n",
+ "\n",
+ "(c) Since load is purely resistive, the load current rises from 0 to peak value instantaneously at alfa.\n",
+ " Hence max.(di/dt) is infinite\n",
+ "\n",
+ "(d) Maximum forward or reverse voltage across thyristor = 325.22 V \n",
+ "\n",
+ "\n",
+ "(e) Power delevered to load by fundamental component of load voltage = 3348.53 W\n",
+ "\n",
+ "\n",
+ "(f) Load voltage = 226.625 V\n",
+ "\n",
+ "\n",
+ "(g) Total power output = 3423.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.8, Page No. 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full wave regulator\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 150 # input voltage\n",
+ "R = 4 # resistance of the circuit\n",
+ "L = 22*10**-3 # Inductance\n",
+ "f = 50 # frequency \n",
+ "alfa = 60 # firing angle\n",
+ "\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "w = 2*math.pi*f\n",
+ "theta = (180/math.pi)*math.atan(w*L/R)\n",
+ "beta = 180+alfa\n",
+ "#(b)\n",
+ "alfa = alfa*math.pi/180\n",
+ "Vm = V*math.sqrt(2)\n",
+ "Vm = math.floor(Vm*10)/10\n",
+ "Vl = Vm*math.sqrt((math.pi-((math.sin(2*beta*math.pi/180))/2)+((math.sin(2*alfa))/2.0))/(2*math.pi))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\ntheta = %.0f\u00b0\\nAs alfa = theta, (beta-alfa) = Conduction angle= pi\\ntherefore, Beta = %d\u00b0\"%(theta,beta))\n",
+ "print(\"\\n(b)\\n Vl = %.0f V\"%Vl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "theta = 60\u00b0\n",
+ "As alfa = theta, (beta-alfa) = Conduction angle= pi\n",
+ "therefore, Beta = 240\u00b0\n",
+ "\n",
+ "(b)\n",
+ " Vl = 150 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.9, Page No. 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Single phase full wave regulator parameters\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230 # input voltage\n",
+ "f = 50 # frequency\n",
+ "R = 5 # resistance of the circuit\n",
+ "L = 20*10**-3 # inductance\n",
+ "\n",
+ "#Calculations\n",
+ "w = 2*math.pi*f\n",
+ "theta = (180/math.pi)*math.atan(R/(2*math.pi*f*L))\n",
+ "theta = math.ceil(theta*100)/100\n",
+ "Il = V/math.sqrt((R**2)+((w**2)*(L**2)))\n",
+ "Il = math.floor(Il*100)/100\n",
+ "P =R*Il**2\n",
+ "ipf = (P)/(V*Il)\n",
+ "\n",
+ "#Result\n",
+ "print(\"theta = %.2f\u00b0\"%theta)\n",
+ "print(\"\\n(a) The minimum value of firing angle(alfa) is theta. Therefore, range of firing angle is %.2f\u00b0 to 180\u00b0.\"%theta)\n",
+ "print(\"\\n(b) Conduction period of each thyristor is 180\u00b0.\")\n",
+ "print(\"\\n(c)\\n Load current = %.2f A\\n Power output = %.2f W\\n Input power factor = %.3f lagging\"%(Il,P,ipf)) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "theta = 38.52\u00b0\n",
+ "\n",
+ "(a) The minimum value of firing angle(alfa) is theta. Therefore, range of firing angle is 38.52\u00b0 to 180\u00b0.\n",
+ "\n",
+ "(b) Conduction period of each thyristor is 180\u00b0.\n",
+ "\n",
+ "(c)\n",
+ " Load current = 28.64 A\n",
+ " Power output = 4101.25 W\n",
+ " Input power factor = 0.623 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.10, Page No. 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Singal phase full wave regulator circuit parameters\n",
+ "\n",
+ "import math\n",
+ "from scipy.integrate import quad\n",
+ "#Variable declaration\n",
+ "R = 9 # resistance of the circuit\n",
+ "L = 0.03 # inductance\n",
+ "V = 240 # input voltage\n",
+ "f = 50 # frequency\n",
+ "alfa1 = 0 # firing angle case a\n",
+ "alfa2 = 60 # firing angle case b\n",
+ "alfa3 = 90 # firing angle case c\n",
+ "\n",
+ "#calculations\n",
+ "RbyL = R/L\n",
+ "alfa1 = 0*math.pi/180\n",
+ "alfa2 = 60*math.pi/180\n",
+ "alfa3 = 90*math.pi/180 \n",
+ "alfa4 = 13.7*math.pi/180 \n",
+ "sqrt_2 =math.floor(math.sqrt(2)*1000)/1000\n",
+ "w = 2*math.pi*f\n",
+ "Z_mag = math.sqrt((R**2)+(w**2)*(L**2))\n",
+ "Z_angle = math.floor((math.atan(w*L/R))*1000)/1000\n",
+ "x=math.floor(math.cos(Z_angle)*10000)/10000\n",
+ "\n",
+ "#(a)\n",
+ "Il = (V*math.sqrt(2)/Z_mag)#*math.sin((w/f)-(Z_angle*math.pi/180))\n",
+ "Il = math.floor(Il*100)/100\n",
+ "P = V*Il*x/sqrt_2\n",
+ "#b\n",
+ "k1 = math.ceil((Il*math.sin(alfa2-Z_angle))*100)/100\n",
+ "def h(t):\n",
+ " return ((V*sqrt_2*math.sin(w*t*alfa2))*((Il*math.sin((w*t)+(alfa2-Z_angle)))-(k1*math.e**(-RbyL*t))))\n",
+ "t2 = 0.00919\n",
+ "t1 = 0\n",
+ "val = quad(h,t1,t2)\n",
+ "P2 = val[0]/0.01\n",
+ "#c\n",
+ "k2 = math.floor((Il*math.sin(alfa3-Z_angle))*100)/100\n",
+ "def g(t):\n",
+ " return ((V*sqrt_2*math.sin(w*t*alfa3))*((Il*math.sin((w*t)+(alfa3-Z_angle)))-(k2*math.e**(-RbyL*t))))\n",
+ "t2 = 0.00733\n",
+ "t1 = 0\n",
+ "val2 = quad(g,t1,t2)\n",
+ "P3 = val2[0]/0.01\n",
+ "\n",
+ "angle1 = math.ceil((Z_angle*180/math.pi)*10)/10\n",
+ "angle2 = (alfa2-Z_angle)*180/math.pi\n",
+ "angle3 = (alfa3-Z_angle)*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nCurrent waveform--> i = %.2fsin(2pi*%dt-%.1f\u00b0) A\\nPower delivered = %.1f W\"%(Il,f,angle1,P))\n",
+ "print(\"(b)\\nCurrent waveform--> i = %.2fsin(2pi*%dt+%.1f\u00b0)-%.2fe^(-%dt) A\\nPower delivered = %.1f W\"%(Il,f,angle2,k1,RbyL,P2))\n",
+ "print(\"(c)\\nCurrent waveform--> i = %.2fsin(2pi*%dt+%.1f\u00b0)-%.2fe^(-%dt) A\\nPower delivered = %.1f W\"%(Il,f,angle3,k2,RbyL,P3))\n",
+ "#Power answer for (b) and (c) do not match with the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Current waveform--> i = 26.04sin(2pi*50t-46.3\u00b0) A\n",
+ "Power delivered = 3053.6 W\n",
+ "(b)\n",
+ "Current waveform--> i = 26.04sin(2pi*50t+13.7\u00b0)-6.17e^(-300t) A\n",
+ "Power delivered = 3885.4 W\n",
+ "(c)\n",
+ "Current waveform--> i = 26.04sin(2pi*50t+43.7\u00b0)-17.99e^(-300t) A\n",
+ "Power delivered = 2138.7 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 200
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.11, Page No. 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Current and voltage ratings\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "V = 415 # 3-phase input voltage\n",
+ "f = 50 # frequency\n",
+ "P = 20*10**3 # output power\n",
+ "sf = 1.5 # safety factor\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Il = P/(math.sqrt(3)*V)\n",
+ "Irms = Il*sf\n",
+ "Irms = math.floor(Irms*100)/100\n",
+ "Vrms = V*sf\n",
+ "#(b)\n",
+ "Irms_thyristor = Il*sf/math.sqrt(2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\n Line Current = %.2f A\\n RMS rating of each triac = %.2f A\\n rms voltage rating = %.1f V\"%(Il,Irms,Vrms))\n",
+ "print(\"\\n(b)\\n Line Current = %.2f A\\n RMS rating of each thyristor = %.2f A\\n rms voltage rating = %.1f V\"%(Il,Irms_thyristor,Vrms))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ " Line Current = 27.82 A\n",
+ " RMS rating of each triac = 41.73 A\n",
+ " rms voltage rating = 622.5 V\n",
+ "\n",
+ "(b)\n",
+ " Line Current = 27.82 A\n",
+ " RMS rating of each thyristor = 29.51 A\n",
+ " rms voltage rating = 622.5 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.12, Page No.305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output parameters of 3-phase AC regulator\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "V = 415 # 3-phase input voltage\n",
+ "R = 15 # load resistance per phase\n",
+ "alfa = 30 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vrms = V/math.sqrt(3)\n",
+ "Vl = math.sqrt(3)*(math.sqrt(2)*Vrms)*math.sqrt(((math.pi/6)-((alfa*math.pi)/(180*4))+(math.sin(2*alfa*math.pi/180)/8))/(math.pi))\n",
+ "Vl = math.floor(Vl*10)/10\n",
+ "#(b)\n",
+ "P = (3*Vl**2)/R\n",
+ "#(c)\n",
+ "Il = Vl/R\n",
+ "#(d)\n",
+ "VA = 3*Vrms*Il\n",
+ "ipf = P/VA\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) rms value of input phase voltage = %.1f V\\n Vl = %.1f V\"%(Vrms,Vl))\n",
+ "print(\"\\n(b) Output power = %.1f W or %.4f kW\\n\\n(c) Line Current = %.2fA\\n\\n(d) input p.f. = %.3f lagging\"%(P,P/1000,Il,ipf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) rms value of input phase voltage = 239.6 V\n",
+ " Vl = 234.3 V\n",
+ "\n",
+ "(b) Output power = 10979.3 W or 10.9793 kW\n",
+ "\n",
+ "(c) Line Current = 15.62A\n",
+ "\n",
+ "(d) input p.f. = 0.978 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.13, Page No. 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# output parameters of 3-phase AC regulator\n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "V = 415 # 3-phase input voltage\n",
+ "R = 15 # load resistance per phase\n",
+ "alfa = 60 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "Vrms = V/math.sqrt(3)\n",
+ "#Vrms = math.floor(Vrms*10)/10\n",
+ "Vl = math.sqrt(3)*(1.414*Vrms)*math.sqrt(((3.141/6)-((alfa*3.141)/(180*4))+(math.sin(2*alfa*3.141/180)/8))/(math.pi))\n",
+ "#pi value = 3.141 to match the answer in the book\n",
+ "Vl = math.floor(Vl*100)/100\n",
+ "#(b)\n",
+ "P = (3*Vl**2)/R\n",
+ "#(c)\n",
+ "Il = Vl/R\n",
+ "#(d)\n",
+ "VA = 3*Vrms*Il\n",
+ "ipf = P/VA\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) rms value of input phase voltage = %f V\\n Vl = %f V\"%(Vrms,Vl))\n",
+ "print(\"\\n(b) Output power = %.2f W or %.5f kW\\n\\n(c) Line Current = %.3fA\\n\\n(d) input p.f. = %.2f lagging\"%(P,P/1000,Il,ipf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) rms value of input phase voltage = 239.600362 V\n",
+ " Vl = 201.390000 V\n",
+ "\n",
+ "(b) Output power = 8111.59 W or 8.11159 kW\n",
+ "\n",
+ "(c) Line Current = 13.426A\n",
+ "\n",
+ "(d) input p.f. = 0.84 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 109
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_7.ipynb b/Power_Electronics/Power_electronics_ch_7.ipynb
new file mode 100755
index 00000000..7288e1e0
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_7.ipynb
@@ -0,0 +1,204 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.1, Page No.319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# input voltage, SCR ratings and input power factors\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 250 # single phase supply voltage \n",
+ "I = 50 # supply current\n",
+ "pf = 0.8 # lagging power factor\n",
+ "alfa = 0 # ideal SCR\n",
+ "\n",
+ "#calculations\n",
+ "x = math.sqrt(2)\n",
+ "x = math.floor(x*1000)/1000\n",
+ "Vm = (V*math.pi*x)/(3*math.sin(math.pi/3))\n",
+ "Vrms = Vm/math.sqrt(2)\n",
+ "Irms = I*math.sqrt(2)/math.sqrt(3)\n",
+ "y = math.sqrt(3)\n",
+ "y = math.floor(y*1000)/1000\n",
+ "piv = y*Vm\n",
+ "piv = math.floor(piv*100)/100\n",
+ "Ii = math.sqrt((I**2)/3)\n",
+ "pipp = V*I*pf/3.0\n",
+ "pf_i = pipp/(Vrms*Ii)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vm = %f V\\nrms current rating of thyristor = %.1f A\\nPIV = %.2fV\\nRMS value of input current = %.1f A\"%(Vm,math.ceil(Irms),piv,Ii))\n",
+ "print(\"Power input per phase = %.2f W\\nInput power factor = %.3f lagging.\"%(pipp,pf_i))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vm = 427.452050 V\n",
+ "rms current rating of thyristor = 41.0 A\n",
+ "PIV = 740.34V\n",
+ "RMS value of input current = 28.9 A\n",
+ "Power input per phase = 3333.33 W\n",
+ "Input power factor = 0.382 lagging.\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.2, Page No. 320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#output voltage(referring ex 7.1)\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 250 # single phase supply voltage \n",
+ "theta1 = 30 # firing angle 1\n",
+ "theta2 = 45 # firing angle 2\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "v1 = V*math.cos(theta1*math.pi/180)\n",
+ "#(b)\n",
+ "v2 = V*math.cos(theta2*math.pi/180)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) RMS value of output voltage = %.1f V\"%v1)\n",
+ "print(\"(b) RMS value of output voltage = %.2f V\"%v2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) RMS value of output voltage = 216.5 V\n",
+ "(b) RMS value of output voltage = 176.78 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.3, Page No.320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Output voltage for different firing angle\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vrms = 230 # input voltage\n",
+ "theta1 = 0 # firing angle 1\n",
+ "theta2 = 30 # firing angle 2\n",
+ "\n",
+ "#calculation\n",
+ "#(a)\n",
+ "v1 = 6*math.sqrt(2)*Vrms*math.sin(math.pi/6)*math.cos(theta1*math.pi/180)/(math.pi*math.sqrt(2))\n",
+ "#(b)\n",
+ "v2 = 6*math.sqrt(2)*Vrms*math.sin(math.pi/6)*math.cos(theta2*math.pi/180)/(math.pi*math.sqrt(2))\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Vo = %.2f V\\n(b) Vo = %.1f V\"%(v1,v2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Vo = 219.63 V\n",
+ "(b) Vo = 190.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 7.4, Page No.320"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# supply voltage\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Vo = 200 # output voltage\n",
+ "\n",
+ "#Calculation\n",
+ "Vi = Vo*(math.pi/3)/math.sin(math.pi/3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"RMS value of input voltage = %.2f V \"%Vi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS value of input voltage = 241.84 V \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_8.ipynb b/Power_Electronics/Power_electronics_ch_8.ipynb
new file mode 100755
index 00000000..2f3270f0
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_8.ipynb
@@ -0,0 +1,576 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Applications of Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.1, Page No. 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Crowbar circuit(refering to fig8.2)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vz = 14.8 # zener breakdown voltage\n",
+ "Vt = 0.85 # thyristor trigger voltage\n",
+ "\n",
+ "# Calculations \n",
+ "Vi = Vz+Vt\n",
+ "\n",
+ "#Result \n",
+ "print(\"Thyrister will be turned on when voltage across R is %.2f V.\"%Vt)\n",
+ "print(\"Since zener breakdown at %.1f V, the crowbar circuit will be turned on when\\nVi = %.2f V\"%(Vz,Vi))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thyrister will be turned on when voltage across R is 0.85 V.\n",
+ "Since zener breakdown at 14.8 V, the crowbar circuit will be turned on when\n",
+ "Vi = 15.65 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.2, Page No. 326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Crowbar circuit(refering to fig.8.2) \n",
+ "\n",
+ "import math\n",
+ "Rz = 15.0 # resistance of zener diode under breakdown condition\n",
+ "Ig = 20*10**-3 # gate triggering current of thyristor\n",
+ "Vz = 14.8 # zener breakdown voltage\n",
+ "Vt = 0.85 # thyristor trigger voltage\n",
+ "R = 50.0 # resistance\n",
+ "\n",
+ "#Calculations\n",
+ "Rt = (R*Rz)/(R+Rz)\n",
+ "V = Rt*Ig\n",
+ "Vi = Vz+Vt+V\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vi = %.3f V\"%Vi)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vi = 15.881 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.3, Page No. 327"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Values of R and C (refering to fig.8.3)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 200 # input voltage\n",
+ "Il = 10 # load current\n",
+ "Toff1 = 15*10**-6 # turn off time\n",
+ "Ih = 4*10**-3 # thyristor holding current\n",
+ "\n",
+ "#Calculations\n",
+ "R = V/Ih\n",
+ "Rl = V/Il\n",
+ "C = Toff1/(Rl*math.log(2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %.0f k-ohm\\nC = %.3f*10^-6 F\"%(R/1000,C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 50 k-ohm\n",
+ "C = 1.082*10^-6 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.4, Page No. 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# duty cycle and Ton/Toff ratio\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "R = 60.0 # load resistance\n",
+ "P1 = 400.0 # output ppower in case 1\n",
+ "P2 = 700.0 # output ppower in case 2\n",
+ "\n",
+ "#Calculations\n",
+ "Pmax = (V**2)/R\n",
+ "#(a)\n",
+ "alfa = P1/Pmax\n",
+ "Ton = alfa\n",
+ "Toff= 1-Ton\n",
+ "r = Ton/Toff\n",
+ "#(b)\n",
+ "alfa2 = P2/Pmax\n",
+ "Ton2 = alfa2\n",
+ "Toff2= 1-Ton2\n",
+ "r2= Ton2/Toff2\n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum power output = %.2f W\\n\\n(a)\\n Duty cycle = %.4f\\n Ton/Toff = %.4f\"%(Pmax,alfa,math.ceil(r*10000)/10000))\n",
+ "print(\"\\n(b)\\n Duty cycle = %.3f\\n Ton/Toff = %.3f\"%(alfa2,math.ceil(r2*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum power output = 881.67 W\n",
+ "\n",
+ "(a)\n",
+ " Duty cycle = 0.4537\n",
+ " Ton/Toff = 0.8305\n",
+ "\n",
+ "(b)\n",
+ " Duty cycle = 0.794\n",
+ " Ton/Toff = 3.854\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.5, Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Output RMS voltage\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Ton = 12.0 # circuit is on for 12 cycles\n",
+ "Toff = 19.0 # circuit is on for 19 cycles\n",
+ "V = 230.0 # input voltage\n",
+ "\n",
+ "#calcualtions\n",
+ "d = Ton/(Ton+Toff)\n",
+ "Vrms = V*math.sqrt(d)\n",
+ "\n",
+ "#Result\n",
+ "print(\"RMS output voltage = %.1f V\"%Vrms)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RMS output voltage = 143.1 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.6, Page No. 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Power supplied to heater\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230 # input voltage\n",
+ "R = 50 # load resistance\n",
+ "alfa1 = 90 # firing angle for case 1\n",
+ "alfa2 = 120 # firing angle for case 2\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = V*sqrt_2\n",
+ "\n",
+ "#(a)\n",
+ "Vl = Vm*math.sqrt((math.pi-(alfa1*math.pi/180)+((math.sin(2*alfa1*math.pi/180))/2.0))/(2*math.pi))\n",
+ "P = (Vl**2)/R\n",
+ "\n",
+ "#(b)\n",
+ "Vl2 = Vm*math.sqrt((math.pi-(alfa2*math.pi/180)+((math.sin(2*alfa2*math.pi/180))/2.0))/(2*math.pi))\n",
+ "P2 = (Vl**2)/R\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) when alfa = %.0f\u00b0,\\n Power = %.2fW\"%(alfa1,Vl))\n",
+ "print(\"\\n(b) when alfa = %.0f\u00b0,\\n Power = %.2fW\"%(alfa2,Vl2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) when alfa = 90\u00b0,\n",
+ " Power = 162.61W\n",
+ "\n",
+ "(b) when alfa = 120\u00b0,\n",
+ " Power = 101.68W\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.7, Page No.333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# finding firing angle\n",
+ "\n",
+ "import math\n",
+ "from numpy import poly1d\n",
+ "#variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "R = 10 # load resistance\n",
+ "P1 = 2645 # power supplied to heater in case a\n",
+ "P2 = 1587 # power supplied to heater in case b\n",
+ "\n",
+ "#Calculations\n",
+ "Pmax = (V**2)/R\n",
+ "#(a)\n",
+ "Vl1 = math.floor((math.sqrt(P1*R))*100)/100\n",
+ "#After solving equation using taylor seris of X, we got following coefficient. \n",
+ "P1 = poly1d([128.0/math.factorial(7),0,-32.0/math.factorial(5),0,8.0/math.factorial(3),0,0,(-2*math.pi*(1-(Vl1/V)**2))], variable = 'x')\n",
+ "x1 = P1.r[(P1.order+1)/2]*180/math.pi\n",
+ "alfa1 = x1.real\n",
+ "#(b)\n",
+ "Vl2 = math.floor((math.sqrt(P2*R))*1000)/1000\n",
+ "P2 = poly1d([128.0/math.factorial(7),0,-32.0/math.factorial(5),0,8.0/math.factorial(3),0,0,(-2*math.pi*0.762500)], variable = 'x')\n",
+ "# hardcoded value used to match the answer to the book\n",
+ "x2 = P2.r[(P2.order+1)/2]*180/math.pi\n",
+ "alfa2 = x2.real\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) firing angle = %.0f\u00b0\"%math.ceil(alfa1))\n",
+ "print(\"(b) firing angle = %.1f\u00b0\"%(alfa2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) firing angle = 90\u00b0\n",
+ "(b) firing angle = 108.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.8, Page No. 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# current rating and Peak Inverse Voltage of each thyristor\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400 # 3-phase input voltage\n",
+ "P = 20*10**3 # load \n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "# since load is resistive, theta = 0\u00b0,therefore, cos(theta) = 1\n",
+ "I = P/(math.sqrt(3)*V)\n",
+ "PIV = V*math.sqrt(2)\n",
+ "PIV = math.floor(PIV*10)/10\n",
+ "#(b)\n",
+ "Ir = I/math.sqrt(2)\n",
+ "Ir = math.ceil(Ir*100)/100\n",
+ "#Result\n",
+ "print(\"(a)\\n I = %.2f A\\n During off state, line to line voltage can appear across triac. Hence current rating is %.2f A and\"%(I,I))\n",
+ "print(\" peak inverse voltage = %.1f V\"%PIV)\n",
+ "print(\"\\n(b)\\n Each thyristor conducts for every half cycle.\\n current rating = %.2f A\\n Peak inverse voltage is the same i.e. %.1f V\"%(Ir,PIV))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ " I = 28.87 A\n",
+ " During off state, line to line voltage can appear across triac. Hence current rating is 28.87 A and\n",
+ " peak inverse voltage = 565.6 V\n",
+ "\n",
+ "(b)\n",
+ " Each thyristor conducts for every half cycle.\n",
+ " current rating = 20.42 A\n",
+ " Peak inverse voltage is the same i.e. 565.6 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.9, Page No.338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# applied voltage and current\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "t = 5*10**-2 # insulating slab thickness\n",
+ "A = 100*10**-4 # insulating slab area\n",
+ "P = 300 # power \n",
+ "f = 10*10**6 # frequency\n",
+ "eps = 8.85*10**-12 # permitivity of free space\n",
+ "eps_r = 4.5 # relative permitivity\n",
+ "pf = 0.05 # power factor\n",
+ "\n",
+ "#Calculation\n",
+ "C = eps*eps_r*A/t\n",
+ "pi =math.floor(math.pi*100)/100\n",
+ "w = 2*pi*f\n",
+ "fi = (math.acos(pf))*(180/math.pi)\n",
+ "sig =90-fi\n",
+ "sig = math.ceil(sig*1000)/1000\n",
+ "sig = sig*math.pi/180\n",
+ "V = math.sqrt(P/(w*C*math.tan(sig)))\n",
+ "I = P/(V*pf)\n",
+ "\n",
+ "#Result\n",
+ "print(\"V = %.1f V\\nI = %.2f A\"%(V,I))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V = 3461.2 V\n",
+ "I = 1.73 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.10, Page No. 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# power input and current\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "t = 1*10**-2 # insulating slab thickness\n",
+ "A = 50*10**-4 # insulating slab area\n",
+ "V = 400 # input voltage \n",
+ "f = 20*10**6 # frequency\n",
+ "eps = 8.85*10**-12 # permitivity of free space\n",
+ "eps_r = 5 # relative permitivity\n",
+ "pf = 0.05 # power factor\n",
+ "\n",
+ "#Calculation\n",
+ "C = eps*eps_r*A/t\n",
+ "w = 2*math.pi*f\n",
+ "fi = (math.acos(pf))*(180/math.pi)\n",
+ "sig =90-fi\n",
+ "sig = math.ceil(sig*1000)/1000\n",
+ "sig = sig*math.pi/180\n",
+ "P = (V**2)*(w*C*math.tan(sig))\n",
+ "I = P/(V*pf)\n",
+ "\n",
+ "#Result\n",
+ "print(\"P = %.2f W\\nI = %.4f A\"%(P,I))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P = 22.27 W\n",
+ "I = 1.1135 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 8.11, Page No. 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# voltage of the source and current input\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "t = 2 # insulating slab thickness\n",
+ "A = 75 # insulating slab area\n",
+ "T1 = 20 # lower temperature\n",
+ "T2 = 50 # Higher temperature\n",
+ "Time = 7*60 # time \n",
+ "f = 20*10**6 # frequency\n",
+ "eps = 8.85*10**-12 # permitivity of free space\n",
+ "eps_r =6.5 # relative permitivity\n",
+ "sh = 0.25 # specific heat\n",
+ "den = 0.55 # density\n",
+ "pf = 0.04 # power factor\n",
+ "\n",
+ "#Calculations\n",
+ "C = eps*eps_r*A*10**-4/(t*10**-2)\n",
+ "w = 2*math.pi*f\n",
+ "fi = (math.acos(pf))*(180/math.pi)\n",
+ "sig =90-fi\n",
+ "sig = math.ceil(sig*1000)/1000\n",
+ "sig = sig*math.pi/180\n",
+ "\n",
+ "m = A*t*den\n",
+ "H = m*sh*(T2-T1)\n",
+ "TH = H/0.9\n",
+ "Ei = TH*4.186\n",
+ "P = Ei/Time\n",
+ "P = math.floor(P*100)/100\n",
+ "V = math.sqrt(P/(w*C*pf))\n",
+ "V = math.ceil(V*100)/100\n",
+ "I = P/(V*pf)\n",
+ "I = math.floor(I*1000)/1000\n",
+ "#Result\n",
+ "print(\"V = %.2f V\\nI = %.3f A\"%(V,I))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "V = 251.35 V\n",
+ "I = 0.681 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 86
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/Power_electronics_ch_9.ipynb b/Power_Electronics/Power_electronics_ch_9.ipynb
new file mode 100755
index 00000000..1b652a14
--- /dev/null
+++ b/Power_Electronics/Power_electronics_ch_9.ipynb
@@ -0,0 +1,1272 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: DC and AC Motor Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.1, Page No. 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Field current, firing angle and power factor\n",
+ "\n",
+ "import math\n",
+ "# Variable delcaration\n",
+ "V= 230.0 # input supply voltage\n",
+ "f = 50.0 # supply frequency\n",
+ "alfa_f = 0 # firing angle for semi-converter for field\n",
+ "Rf = 200.0 # field resistance\n",
+ "Ra = 0.3 # Armature resistance\n",
+ "T = 50.0 # torque\n",
+ "r = 900.0 # rpm\n",
+ "vc = 0.8 # voltage constant\n",
+ "tc = 0.8 # torque constant\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = V*sqrt_2\n",
+ "Vf = (2*Vm/math.pi)*math.cos(alfa_f)\n",
+ "If = Vf/Rf\n",
+ "If = math.floor(If*10**4)/10**4\n",
+ "#(b)\n",
+ "Ia = T/(tc*If)\n",
+ "Ia = math.ceil(Ia*1000)/1000\n",
+ "w = r*2*math.pi/60\n",
+ "w = math.ceil(w*1000)/1000\n",
+ "back_emf =vc*w*If\n",
+ "back_emf = math.floor(back_emf*100)/100\n",
+ "Va = back_emf+Ia*Ra\n",
+ "Va = math.floor(Va*1000)/1000\n",
+ "alfa = math.acos((Va*math.pi/(Vm))-1)\n",
+ "alfa_a = alfa*180/math.pi\n",
+ "alfa_a = math.floor(alfa_a*1000)/1000\n",
+ "#(c)\n",
+ "P = Va*Ia\n",
+ "Ii = Ia*math.sqrt((180-alfa_a)/180)\n",
+ "Ii = math.floor(Ii*100)/100\n",
+ "VA = V*Ii\n",
+ "pf = P/VA\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Field current = %.4f A\\n(b) Alfa_a = %.3f\u00b0\\n(c) Input power factor = %.3f lagging\"%(If,alfa_a,pf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Field current = 1.0352 A\n",
+ "(b) Alfa_a = 94.076\u00b0\n",
+ "(c) Input power factor = 0.605 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.2, Page No.378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Torque developed and motor speed\n",
+ "\n",
+ "import math\n",
+ "# Variable delcaration\n",
+ "V= 230.0 # input supply voltage\n",
+ "f = 50.0 # supply frequency\n",
+ "alfa_f = 0 # firing angle of converter in the field\n",
+ "Rf = 200.0 # field resistance\n",
+ "Ra = 0.25 # Armature resistance\n",
+ "Ia = 50 # Armature current\n",
+ "vc = 1.1 # voltage constant\n",
+ "tc = 1.1 # torque constant\n",
+ "alfa_a = 45 # firing angle of armature ciruit\n",
+ "\n",
+ "#Calculations\n",
+ "alfa_a = alfa_a*math.pi/180\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = V*sqrt_2\n",
+ "Vf = 2*Vm*math.cos(alfa_f)/math.pi\n",
+ "Va = 2*Vm*math.cos(alfa_a)/math.pi\n",
+ "If = Vf/Rf\n",
+ "If = math.floor(If*10**4)/10**4\n",
+ "T = tc*Ia*If\n",
+ "bemf = Va- Ia*Ra - 2\n",
+ "w = bemf/(vc*If)\n",
+ "N = w*60/(2*math.pi)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Torque = %.3f N-m\\n\\nMotor Speed = %.1f rpm\"%(T,N))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Torque = 56.936 N-m\n",
+ "\n",
+ "Motor Speed = 1106.1 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.3, Page No. 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# firing angle of the converter in the armature circuit\n",
+ "\n",
+ "import math\n",
+ "V = 400 # input 3-phase supply\n",
+ "alfa_f = 0 # firing angle of field converter\n",
+ "Ra = 0.3 # Armature resistance\n",
+ "Rf = 250 # field resistance\n",
+ "Ia = 50 # Armature current\n",
+ "vc = 1.3 # motor voltage constant\n",
+ "N = 1200 # speed in rpm\n",
+ "\n",
+ "#Calculations\n",
+ "Vf = 3*math.sqrt(3)*V*math.sqrt(2)*math.cos(alfa_f)/(math.sqrt(3)*math.pi)\n",
+ "If = Vf/Rf\n",
+ "w = N*2*math.pi/60\n",
+ "Eb = vc*If*w\n",
+ "Va = Eb+Ia*Ra\n",
+ "alfa_a = math.acos(Va*math.sqrt(3)*math.pi/(3*V*math.sqrt(2)*math.sqrt(3)))\n",
+ "alfa_a = alfa_a*180/math.pi\n",
+ "alfa_a = math.ceil(alfa_a*100)/100\n",
+ "#Result\n",
+ "print(\"Alfa_a = %.2f\u00b0\"%alfa_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Alfa_a = 47.07\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.4, Page No. 378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# input power, speed and torque\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "V = 500 # input supply voltage\n",
+ "Ra = 0.1 # Armature resistance\n",
+ "Ia = 200.0 # Armature current\n",
+ "vc = 1.4 # Volatage constant\n",
+ "tc = 1.4 # Torque constant\n",
+ "If = 2 # Field current\n",
+ "d = 0.5 # chopper duty cycle\n",
+ "\n",
+ "# Calculations\n",
+ "#(a)\n",
+ "Pi = d*V*Ia\n",
+ "#(b)\n",
+ "Va = V*d\n",
+ "Eb = Va - Ia*Ra\n",
+ "w = Eb/(vc*If)\n",
+ "w = math.floor(w*100)/100\n",
+ "N = w*60/(2*math.pi)\n",
+ "#(c)\n",
+ "T = tc*Ia*If\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Power input = %.0f kW \\n(b) Speed = %.2f rpm\\n(c) Torque = %.0f N-m\"%(Pi/1000,N,T))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Power input = 50 kW \n",
+ "(b) Speed = 784.38 rpm\n",
+ "(c) Torque = 560 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.5, Page No. 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Braking DC motor using one quadrant chopper\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ra = 0.1 # Armature resistance\n",
+ "Rb = 7.5 # Breaking resistance\n",
+ "vc = 1.4 # voltage constant\n",
+ "Ia = 120 # armature current\n",
+ "If = 1.6 # field current\n",
+ "d = 0.35 # chopper duty cycle\n",
+ "\n",
+ "#calculations\n",
+ "#(a)\n",
+ "Vavg = Rb*Ia*(1-d)\n",
+ "#(b)\n",
+ "Pb = (Ia**2)*Rb*((1-d)**2)\n",
+ "#(c)\n",
+ "Eb = Vavg+Ra*Ia\n",
+ "w = Eb/(vc*If)\n",
+ "w = math.ceil(w*100)/100\n",
+ "N = w*60/(2*math.pi)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) Average voltage across chopper = %.0f V\\n(b) Pb = %.0f W\\n(c) Speed = %.4f rpm \"%(Vavg,Pb,N))\n",
+ "#Answer for Pb and Speed is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Average voltage across chopper = 585 V\n",
+ "(b) Pb = 45630 W\n",
+ "(c) Speed = 2545.0785 rpm \n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.6, Page No. 379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Speed -Torque characteristics\n",
+ "\n",
+ "import math\n",
+ "from pylab import *\n",
+ "#variable declaration\n",
+ "V = 220.0 # per phase input voltage\n",
+ "f = 50 # frequency\n",
+ "L = 0.012 # motor inductance\n",
+ "R = 0.72 # Resistance\n",
+ "a = 2 # Armature constant\n",
+ "alfa = 90 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "sqrt_2=math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3=math.floor(math.sqrt(3)*1000)/1000\n",
+ "Va = 3*sqrt_3*V*sqrt_2*(1+math.cos(alfa*math.pi/180))/(2*math.pi)\n",
+ "Va = math.floor(Va*100)/100\n",
+ "Ia1 = 5 # Armature current for case 1\n",
+ "T1 = Ia1*a\n",
+ "Eb1 =Va-Ia1*R\n",
+ "Speed1 = Eb1*60/(a*2*math.pi) \n",
+ "Speed1 = math.floor(Speed1*100)/100\n",
+ "\n",
+ "Ia2 = 10 # Armature current for case 2\n",
+ "T2 = Ia2*a\n",
+ "Eb2 =Va-Ia2*R\n",
+ "Speed2 = Eb2*60/(a*2*math.pi) \n",
+ "Speed2 = math.floor(Speed2*100)/100\n",
+ "\n",
+ "Ia3 = 20 # Armature current for case 3\n",
+ "T3 = Ia3*a\n",
+ "Eb3 =Va-Ia3*R\n",
+ "Speed3 = Eb3*60/(a*2*math.pi) \n",
+ "Speed3 = math.floor(Speed3*100)/100\n",
+ "\n",
+ "Ia4 = 30 # Armature current for case 4\n",
+ "T4 = Ia4*a\n",
+ "Eb4 =Va-Ia4*R\n",
+ "Speed4 = Eb4*60/(a*2*math.pi) \n",
+ "Speed4 = math.floor(Speed4*100)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"Armature Voltage =%f V\"%Va)\n",
+ "print(\"For Ia =0%d A, Torque = %d N-m and Speed = %.2f rpm\"%(Ia1,T1,Speed1))\n",
+ "print(\"For Ia =%d A, Torque = %d N-m and Speed = %.2f rpm\"%(Ia2,T2,Speed2))\n",
+ "print(\"For Ia =%d A, Torque = %d N-m and Speed = %.2f rpm\"%(Ia3,T3,Speed3))\n",
+ "print(\"For Ia =%d A, Torque = %d N-m and Speed = %.2f rpm\"%(Ia4,T4,Speed4))\n",
+ "#################-----PLOT-----#####################\n",
+ "%pylab inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "t = [T1, T2, T3, T4]\n",
+ "S = [Speed1, Speed2, Speed3, Speed4 ]\n",
+ "plt.plot(t,S)\n",
+ "plt.plot(t,S,'ro')\n",
+ "plt.axis([0,70,0,1500])\n",
+ "plt.xlabel('Torque(N-m)')\n",
+ "plt.ylabel('Speed(RPM)')\n",
+ "plt.title('Speed torque characteristics')\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature Voltage =257.250000 V\n",
+ "For Ia =05 A, Torque = 10 N-m and Speed = 1211.08 rpm\n",
+ "For Ia =10 A, Torque = 20 N-m and Speed = 1193.90 rpm\n",
+ "For Ia =20 A, Torque = 40 N-m and Speed = 1159.52 rpm\n",
+ "For Ia =30 A, Torque = 60 N-m and Speed = 1125.14 rpm\n",
+ "Populating the interactive namespace from numpy and matplotlib"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['f', 'info', 'linalg', 'draw_if_interactive', 'random', 'fft', 'power']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9749208>"
+ ]
+ }
+ ],
+ "prompt_number": 121
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.7, Page No. 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Firing angle and no load speed\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400 # input 3-phase voltage\n",
+ "f = 50 # frequency\n",
+ "Ia = 50 # motor armature current\n",
+ "Ra = 0.1 # armature resistance\n",
+ "bec = 0.3 # back emf constant\n",
+ "alfa = 30.0 # firing angle\n",
+ "Inl = 5 # no load current\n",
+ "n = 1600 # speed in rpm \n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "sqrt_2=math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3=math.floor(math.sqrt(3)*100)/100\n",
+ "Va = 3*sqrt_3*V*sqrt_2*(1+math.cos(alfa*math.pi/180))/(sqrt_3*2*math.pi)\n",
+ "Bemf = Va-Inl*Ra\n",
+ "Speed = Bemf/bec\n",
+ "#(b)\n",
+ "Bemf2 = n*bec\n",
+ "Vi = Bemf2+(Ra*Ia)\n",
+ "alfa2= math.acos((Vi/(3*sqrt_3*V*sqrt_2/(sqrt_3*2*math.pi)))-1)\n",
+ "alfa2 = alfa2*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nAverage output voltage of rectifier = %.1f V\\nBack emf = %.1f V\\nSpeed = %d rpm\"%(math.floor(Va*10)/10,Bemf,Speed))\n",
+ "print(\"\\n(b)\\nBack emf = %.0f V\\nInput voltage to motor = %.0f V\\nfiring angle = %.2f\u00b0\"%(Bemf2,Vi,alfa2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Average output voltage of rectifier = 503.9 V\n",
+ "Back emf = 503.4 V\n",
+ "Speed = 1678 rpm\n",
+ "\n",
+ "(b)\n",
+ "Back emf = 480 V\n",
+ "Input voltage to motor = 485 V\n",
+ "firing angle = 37.26\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.8, Page No. 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#firing angle of converter and power fed back to source(refering ex.9.2)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V= 230.0 # input supply voltage\n",
+ "f = 50.0 # supply frequency\n",
+ "alfa_f = 0 # firing angle of converter in the field\n",
+ "Rf = 200.0 # field resistance\n",
+ "Ra = 0.25 # Armature resistance\n",
+ "Ia = 50 # Armature current\n",
+ "vc = 1.1 # voltage constant\n",
+ "tc = 1.1 # torque constant\n",
+ "alfa_a = 45 # firing angle of armature ciruit\n",
+ "\n",
+ "#Calculations\n",
+ "alfa_a = alfa_a*math.pi/180\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vm = V*sqrt_2\n",
+ "Vf = 2*Vm*math.cos(alfa_f)/math.pi\n",
+ "Va1 = 2*Vm*math.cos(alfa_a)/math.pi\n",
+ "bemf = Va1- Ia*Ra - 2\n",
+ "Eg = -bemf\n",
+ "Va = Eg + Ia*Ra +2\n",
+ "alfa = math.acos(Va*math.pi/(2*sqrt_2*V))\n",
+ "alfa = alfa*180/math.pi\n",
+ "P = -Va*Ia\n",
+ "\n",
+ "#Result\n",
+ "print(\"When field current is reversed, the direction of back emf is reversed. The motor now acts as generator.\\n\\nEg = %f\"%Eg)\n",
+ "print(\"\\nAlfa = %.2f\u00b0\\n\\nPower fed back to source = %d W\"%(alfa,P))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "When field current is reversed, the direction of back emf is reversed. The motor now acts as generator.\n",
+ "\n",
+ "Eg = -131.900436\n",
+ "\n",
+ "Alfa = 124.54\u00b0\n",
+ "\n",
+ "Power fed back to source = 5870 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 152
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.9, Page No.381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Half controlled single phase bridge converter\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "V = 240 # input DC voltage\n",
+ "alfa = 100 # firing angle \n",
+ "Ra = 6 # armature Resistance\n",
+ "Ia = 1.8 # armature current\n",
+ "\n",
+ "#Calculations\n",
+ "alfa = alfa*math.pi/180\n",
+ "sqrt_2=math.floor(math.sqrt(2)*1000)/1000\n",
+ "Vdc = sqrt_2*V*(1+math.cos(alfa))/math.pi\n",
+ "Vdc = math.floor(Vdc*100)/100\n",
+ "Bemf = Vdc-Ra*Ia\n",
+ "\n",
+ "#Result\n",
+ "print(\"Back emf = %.2f V\"%Bemf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Back emf = 78.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 96
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.10, Page No.381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Speed and Torue\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 230.0 # input voltage\n",
+ "N = 1500.0 # rpm \n",
+ "Ra = 1.0 # armature resistance\n",
+ "Ia = 10 # Armature current\n",
+ "T1 = 5 # Torque for case-1\n",
+ "alfa1 = 30 # Firing angle for case-1\n",
+ "N2 = 950.0 # rpm in case-2\n",
+ "alfa2 = 45 # Firing angle for case-2\n",
+ "\n",
+ "#Calculations\n",
+ "w = N*2*math.pi/60\n",
+ "k = (V-Ia*Ra)/w\n",
+ "k = math.floor(k*10)/10\n",
+ "#(a)\n",
+ "Ia1 = T1/k\n",
+ "V1 = 2*V*math.sqrt(2)*math.cos(alfa1*math.pi/180)/math.pi\n",
+ "V1 = math.floor(V1*10)/10\n",
+ "w1 = (V1-Ia1*Ra)/k\n",
+ "w1 = w1*60/(2*math.pi)\n",
+ "#(b)\n",
+ "V2 = 2*V*math.sqrt(2)*math.cos(alfa2*math.pi/180)/math.pi\n",
+ "V2 = math.ceil(V2*100)/100\n",
+ "Ia2 = V2-(k*N2*2*math.pi/60)\n",
+ "#Ia2 = math.floor(Ia2*100)/100\n",
+ "T2 = k*Ia2\n",
+ "\n",
+ "#Result\n",
+ "print(\"k - Torque constant = %.1f N-m/A\"%k)\n",
+ "print(\"\\n(a) Speed = %.1f rpm\\n\\n(b) Torque = %f N-m\"%(w1,T2))\n",
+ "#Answer for torque is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "k - Torque constant = 1.4 N-m/A\n",
+ "\n",
+ "(a) Speed = 1198.6 rpm\n",
+ "\n",
+ "(b) Torque = 10.013816 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 177
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.11, Page No.382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# rms source, rms and average thyristor current and power factor\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 500.0 # Morot max. voltage rating\n",
+ "N = 1500.0 # motor max. speed in rpm\n",
+ "Ia = 100.0 # Motor max. current\n",
+ "Vi = 350.0 # 3-phase input supply voltage\n",
+ "Ra = 1.1 # armature resistance\n",
+ "alfa = 45 # firing angle\n",
+ "N1 = 1200.0 # actual speed \n",
+ "\n",
+ "#Calculations\n",
+ "w = N*2*math.pi/60\n",
+ "w1 = N1*2*math.pi/60\n",
+ "k = (V-Ia*Ra)/w\n",
+ "k = math.floor(k*10**4)/10**4\n",
+ "sqrt_2=math.floor(math.sqrt(2)*1000)/1000\n",
+ "sqrt_3=math.floor(math.sqrt(3)*100)/100\n",
+ "Va = 3*sqrt_3*Vi*sqrt_2*(1+math.cos(alfa*math.pi/180))/(sqrt_3*2*3.142)#--math.pi = 3.142 to match the ans\n",
+ "Va = math.ceil(Va*100)/100\n",
+ "Ia = (Va -k*w1)/Ra\n",
+ "Ia = math.ceil(Ia*100)/100\n",
+ "Irms_i = Ia*math.sqrt(120.0/180.0)\n",
+ "Iavg = Ia/3\n",
+ "Irms = Ia/math.sqrt(3)\n",
+ "pf = (Ia*Va)/(sqrt_3*Vi*Irms_i)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Torque constant, k = %.2f V-s/rad\\n\\n(a)\\nConverter output voltage = %.2f V\\nIa = %.2f A \"%(k,Va,Ia))\n",
+ "print(\"\\n(b)\\nRMS input current = %.2f A\\nAverage thyristor current = %.2f A\\nRMS thyristor current = %.2f A\"%(Irms_i,Iavg,Irms))\n",
+ "print(\"Input power factor = %.3f lagging\"%(math.floor(pf*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Torque constant, k = 2.48 V-s/rad\n",
+ "\n",
+ "(a)\n",
+ "Converter output voltage = 403.34 V\n",
+ "Ia = 83.04 A \n",
+ "\n",
+ "(b)\n",
+ "RMS input current = 67.80 A\n",
+ "Average thyristor current = 27.68 A\n",
+ "RMS thyristor current = 47.94 A\n",
+ "Input power factor = 0.815 lagging\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.12, Page No.383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# time taken by motor to reach 1000rpm speed\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "T = 40 # Load torque\n",
+ "N = 500.0 # motor speed \n",
+ "i = 0.01 # inertia of the drive\n",
+ "T1 = 100.0 # increased value of torque\n",
+ "N1 = 1000.0 # speed value\n",
+ "\n",
+ "#Calculations\n",
+ "w = N*2*math.pi/60\n",
+ "w1 = N1*2*math.pi/60\n",
+ "A = -w/((T1-T)/i)\n",
+ "t = (w1/((T1-T)/i))+A\n",
+ "t = math.floor(t*10**6)/10**6\n",
+ "\n",
+ "#Result\n",
+ "print(\"Time taken by motor to reach 1000 rpm speed = %f seconds\"%t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time taken by motor to reach 1000 rpm speed = 0.008726 seconds\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.13, Page No.384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# motor parameters:motor driven by DC chopper\n",
+ "\n",
+ "import math\n",
+ "#Variavble declaration\n",
+ "f = 400.0 # chopper operating frequency\n",
+ "V = 200.0 # input voltage\n",
+ "T = 30.0 # load torque\n",
+ "N = 1000.0 # speed in rpm\n",
+ "Ra = 0.2 # motor resistance\n",
+ "L = 2*10**-3 # motor inductance\n",
+ "emf = 1.5 # emf\n",
+ "k = 1.5 # torque constant\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "w = N*math.pi*2/60\n",
+ "Ia = T/k\n",
+ "Be = emf*w\n",
+ "Be = math.ceil(Be*100)/100\n",
+ "alfa = (Be+Ia*Ra)/V\n",
+ "\n",
+ "t = 1/f\n",
+ "Ton = alfa*t\n",
+ "Toff = t-Ton\n",
+ "x = t*Ra/L\n",
+ "b1 = (1-(math.e**(-alfa*x)))\n",
+ "b1 = math.ceil(b1*10**4)/10**4\n",
+ "b2 = (1-(math.e**(-x)))\n",
+ "b2 = math.ceil(b2*10**4)/10**4\n",
+ "Imax = ((V/Ra)*(b1/b2))-(Be/Ra)\n",
+ "Imin= ((V/Ra)*(((math.e**(alfa*x))-1)/(((math.e**(x))-1))))-(Be/Ra)\n",
+ "x1 = (V-Be)/Ra\n",
+ "x2 = Ra/L\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\nImax = %.3f A\\nImin = %d A\\n\\n(b) Excursion of armature current = %.3f A\"%(Imax,Imin,Imax))\n",
+ "print(\"\\n(c)\\nVariation of cuurent during on period of chopper is \\ni = %.1f*(1-e^(-%d*t'))\"%(x1,x2))\n",
+ "print(\"\\nVariation of cuurent during off period of chopper is \\ni = %.3f*e^(-%d*t')-%.1f*(1-e^(-%d*t'))\"%(Imax,x2,Be/Ra,x2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ "Imax = 39.193 A\n",
+ "Imin = 0 A\n",
+ "\n",
+ "(b) Excursion of armature current = 39.193 A\n",
+ "\n",
+ "(c)\n",
+ "Variation of cuurent during on period of chopper is \n",
+ "i = 214.6*(1-e^(-100*t'))\n",
+ "\n",
+ "Variation of cuurent during off period of chopper is \n",
+ "i = 39.193*e^(-100*t')-785.4*(1-e^(-100*t'))\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.14, Page No.391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Average motor current and speed\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "f = 50.0 # input frequency\n",
+ "V = 230 # input voltage\n",
+ "Ra = 1.5 # armature resistance\n",
+ "Rf = 1.5 # field resistance\n",
+ "K = 0.25 # torque constant\n",
+ "TL = 25 # load torque\n",
+ "emf = 0.25 # emf constant\n",
+ "\n",
+ "#Calculations\n",
+ "Vo = 2*math.sqrt(2)*V/math.pi\n",
+ "Vo = math.floor(Vo)\n",
+ "Ia = math.sqrt(T/K)\n",
+ "Ia = math.floor(Ia)\n",
+ "w = (Vo-Ia*Ra)/(emf*Ia)\n",
+ "N =w*60/(2*math.pi)\n",
+ "N = math.floor(N*100)/100\n",
+ "\n",
+ "#Result\n",
+ "print(\"Ia = %d A\\nN = %.2f RPM\"%(Ia,N))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ia = 10 A\n",
+ "N = 733.38 RPM\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.15, Page No.391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Armature current and firing angle of semi-converter\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vo = 675.0 # transformer secondary voltage\n",
+ "alfa1 = 90.5 # case 1 firing angle\n",
+ "N1 = 350.0 # case 1 motor speed in rpm\n",
+ "Ia1 = 30.0 # case 1 armature current\n",
+ "N2 = 500.0 # expected speed\n",
+ "Ra = 0.22 # armature resistance\n",
+ "Rf = 0.22 # field resistance\n",
+ "\n",
+ "#Calculations\n",
+ "Ia2 = Ia1*N2/N1\n",
+ "Ia2 = math.ceil(Ia2*100)/100\n",
+ "Va1 = Vo*math.sqrt(2)*(1+math.cos(alfa1*math.pi/180))/math.pi\n",
+ "Eb1 = Va1-(Ia1*(Ra+Rf))\n",
+ "Va2 = (Eb1/((Ia1*N1)/(Ia2*N2)))+Ia2*(Ra+Rf)\n",
+ "alfa2 = math.acos(((Va2*math.pi)/(math.sqrt(2)*Vo))-1)\n",
+ "alfa2 = alfa2*180/math.pi\n",
+ "\n",
+ "#Result\n",
+ "print(\"Armature current = %.2f A\\n\\nFiring Angle = %.2f\u00b0\"%(Ia2,alfa2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature current = 42.86 A\n",
+ "\n",
+ "Firing Angle = 4.77\u00b0\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.16, Page No. 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Torque and armature current\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "P = 15.0 # motor power rating\n",
+ "V = 220.0 # motor voltage rating\n",
+ "N = 1500.0 # motor max. speed\n",
+ "Vi = 230.0 # input voltage\n",
+ "emf = 0.03 # emf constant\n",
+ "K = 0.03 # Torque constant\n",
+ "alfa =45 # firing angle\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "alfa = alfa*math.pi/180\n",
+ "Vm = Vi*sqrt_2\n",
+ "N = N*2*math.pi/60\n",
+ "T = (4*emf*(Vm**2)*(math.cos(alfa)**2))/(((math.pi)**2)*(K*N)**2)\n",
+ "Ia = math.sqrt(T/K)\n",
+ "Ia = math.floor(Ia*100)/100\n",
+ "#(b)\n",
+ "Ia2 = Vm*(1+math.cos(alfa))/(math.pi*K*N)\n",
+ "Ia2 = math.floor(Ia2*10)/10\n",
+ "T2 = K*Ia2**2\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a)\\n Torque = %.2f N-m\\n Armature current = %.2f A\"%(T,Ia))\n",
+ "print(\"\\n(b)\\n Armature current = %.1f A\\n Torque = %.4f N-m\"%(Ia2,T2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a)\n",
+ " Torque = 28.96 N-m\n",
+ " Armature current = 31.06 A\n",
+ "\n",
+ "(b)\n",
+ " Armature current = 37.5 A\n",
+ " Torque = 42.1875 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.17, Page No.392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# motor current and Torque \n",
+ "\n",
+ "import math\n",
+ "# variable declaration\n",
+ "Pr = 15.0 # motor power rating\n",
+ "Vr = 220.0 # motor voltage rating\n",
+ "N = 1000.0 # motor max. speed\n",
+ "R = 0.2 # total armature and series resistance\n",
+ "Vi = 230.0 # input voltage\n",
+ "Ks = 0.03 # speed constant\n",
+ "K = 0.03 # Torque constant\n",
+ "alfa = 30 # Firing angle\n",
+ "\n",
+ "#Calculation\n",
+ "sqrt_2 = math.floor(math.sqrt(2)*1000)/1000\n",
+ "alfa = alfa*math.pi/180\n",
+ "Vm = Vi*sqrt_2\n",
+ "N = N*2*math.pi/60\n",
+ "N = math.ceil(N*100)/100\n",
+ "V = Vm*(1+math.cos(alfa))/math.pi\n",
+ "V = math.floor(V*100)/100\n",
+ "Ia = V/((Ks*N)+R)\n",
+ "Ia = math.floor(Ia*1000)/1000\n",
+ "T = K*(Ia*Ia)\n",
+ "\n",
+ "# Result\n",
+ "print(\"Armature current = %.3f A\\n\\nTorque = %.2f N-m\"%(Ia,T))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature current = 57.807 A\n",
+ "\n",
+ "Torque = 100.25 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.18, Page No. 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# load torque, rotor current and stator voltage\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "V = 400.0 # motor voltage rating\n",
+ "p = 4.0 # no of poles\n",
+ "f = 50.0 # frequency\n",
+ "r1 = 0.64 # Stator resistance \n",
+ "x1 = 1.1 # leakage resistance\n",
+ "r2 = 0.08 # rotor resistance\n",
+ "x2 = 0.12 # leakage resistance\n",
+ "T = 40.0 # Torque at given speed\n",
+ "N1 = 1440.0 # Speed value for given torque\n",
+ "N2 = 1300.0 # Speed value for which torque is asked to calculate\n",
+ "\n",
+ "#Calculations\n",
+ "#(a)\n",
+ "ns = 60*2*f/p\n",
+ "Tl = T*(N2/N1)**2\n",
+ "Tl = math.floor(Tl*10)/10\n",
+ "#(b)\n",
+ "s = (ns -N2)/ns\n",
+ "r2_dash = r2*(2)**2\n",
+ "x2_dash = x2*(2)**2\n",
+ "pi = math.floor(math.pi*100)/100\n",
+ "I2_dash = math.sqrt((Tl*2*pi*s*(ns/60))/(3*r2_dash)) \n",
+ "I2 = 2*I2_dash\n",
+ "#(c)\n",
+ "I1 = I2_dash\n",
+ "V1 = I1*math.sqrt(((r1+r2_dash+r2_dash*((1-s)/s))**2)+(x1+x2_dash)**2)\n",
+ "StV = V1*math.sqrt(3)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) At %d rpm , Load torque = %.1f N-m\\n(b) Rotor current = %.2f A\\n(c) Stator voltage = %.1f V\"%(N2,Tl,I2,StV))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) At 1300 rpm , Load torque = 32.6 N-m\n",
+ "(b) Rotor current = 53.32 A\n",
+ "(c) Stator voltage = 158.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.19, Page No. 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# slip for max torque, speed and corresponding max torque\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "V = 400.0 # motor voltage rating\n",
+ "p = 4.0 # no of poles\n",
+ "f = 50.0 # frequency\n",
+ "r1 = 0.64 # Stator resistance \n",
+ "x1 = 1.1 # leakage resistance\n",
+ "r2 = 0.08 # rotor resistance\n",
+ "x2 = 0.12 # leakage resistance\n",
+ "T = 40.0 # Torque at given speed\n",
+ "N1 = 1440.0 # Speed value for given torque\n",
+ "N2 = 1300.0 # Speed value for which torque is asked to calculate\n",
+ "f1 = 50 # case 1 frequency\n",
+ "f2 = 25 # case 2 frequency\n",
+ "\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "ns = 2*f1/p\n",
+ "r2_dash = r2*(2)**2\n",
+ "x2_dash = x2*(2)**2\n",
+ "s = r2_dash/math.sqrt(r1**2+(x1+x2_dash)**2)\n",
+ "s = math.floor(s*10000)/10000\n",
+ "V1 = V/math.sqrt(3)\n",
+ "V1 = math.ceil(V1*100)/100\n",
+ "Tmax = (1.5*V1**2/(2*math.pi*ns))*(1/(r1+math.sqrt(r1**2+(x1+x2_dash)**2)))\n",
+ "Tmax = math.floor(Tmax*10)/10\n",
+ "n = ns*(1-s)\n",
+ "N = n*60\n",
+ "#(b)\n",
+ "x1_b = x1/2\n",
+ "x2_dash_b = x2_dash/2\n",
+ "s2 = r2_dash/math.sqrt(r1**2+(x1_b+x2_dash_b)**2)\n",
+ "s2 = math.floor(s2*10000)/10000\n",
+ "ns2 = 2*f2/p\n",
+ "V1_b = V1*0.5\n",
+ "Tmax2 = (1.5*V1_b**2/(2*math.pi*ns2))*(1/(r1+math.sqrt(r1**2+(x1_b+x2_dash_b)**2)))\n",
+ "n2 = ns2*(1-s2)\n",
+ "N2 = n2*60\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) for f = %d Hz\\n\\nslip = %.4f\\n\\nTmax = %.1f N-m\\n\\nSpeed corresponds to max torque = %.2f rpm\"%(f1,s,Tmax,N))\n",
+ "print(\"\\n\\n(b) for f = %d Hz\\n\\nslip = %.4f\\n\\nTmax = %.2f N-m\\n\\nSpeed corresponds to max torque = %.3f rpm\"%(f2,s2,Tmax2,N2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) for f = 50 Hz\n",
+ "\n",
+ "slip = 0.1877\n",
+ "\n",
+ "Tmax = 217.2 N-m\n",
+ "\n",
+ "Speed corresponds to max torque = 1218.45 rpm\n",
+ "\n",
+ "\n",
+ "(b) for f = 25 Hz\n",
+ "\n",
+ "slip = 0.3147\n",
+ "\n",
+ "Tmax = 153.72 N-m\n",
+ "\n",
+ "Speed corresponds to max torque = 513.975 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 9.20, Page No. 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Starting torque\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "V = 400.0 # motor voltage rating\n",
+ "p = 4.0 # no of poles\n",
+ "f = 50.0 # frequency\n",
+ "r1 = 0.64 # Stator resistance \n",
+ "x1 = 1.1 # leakage resistance\n",
+ "r2 = 0.08 # rotor resistance\n",
+ "x2 = 0.12 # leakage resistance\n",
+ "T = 40.0 # Torque at given speed\n",
+ "N1 = 1440.0 # Speed value for given torque\n",
+ "N2 = 1300.0 # Speed value for which torque is asked to calculate\n",
+ "f1 = 50 # case 1 frequency\n",
+ "f2 = 25 # case 2 frequency\n",
+ "\n",
+ "#Calculation\n",
+ "#(a)\n",
+ "ns = 2*f1/p\n",
+ "r2_dash = r2*(2)**2\n",
+ "x2_dash = x2*(2)**2\n",
+ "#s = r2_dash/math.sqrt(r1**2+(x1+x2_dash)**2)\n",
+ "#s = math.floor(s*10000)/10000\n",
+ "V1 = V/math.sqrt(3)\n",
+ "V1 = math.ceil(V1*100)/100\n",
+ "Tstarting = (3*(V1**2)*(r2_dash))/(2*math.pi*ns*((r1+r2_dash)**2+(x1+x2_dash)**2))\n",
+ "#(b)\n",
+ "x1_b = x1/2\n",
+ "x2_dash_b = x2_dash/2\n",
+ "#s2 = math.floor(s2*10000)/10000\n",
+ "ns2 = 2*f2/p\n",
+ "V1_b = V1*0.5\n",
+ "Tstarting_b = (3*(V1_b**2)*(r2_dash))/(2*math.pi*ns2*((r1+r2_dash)**2+(x1_b+x2_dash_b)**2))\n",
+ "\n",
+ "#Result\n",
+ "print(\"(a) for %d Hz,\\nT_starting = %.2f N-m\"%(f1,Tstarting))\n",
+ "print(\"\\n(b) for %d Hz,\\nT_starting = %.2f N-m\"%(f2,Tstarting_b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) for 50 Hz,\n",
+ "T_starting = 95.37 N-m\n",
+ "\n",
+ "(b) for 25 Hz,\n",
+ "T_starting = 105.45 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Power_Electronics/screenshots/Capture.png b/Power_Electronics/screenshots/Capture.png
new file mode 100755
index 00000000..fea874d6
--- /dev/null
+++ b/Power_Electronics/screenshots/Capture.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Capture1.png b/Power_Electronics/screenshots/Capture1.png
new file mode 100755
index 00000000..28481be5
--- /dev/null
+++ b/Power_Electronics/screenshots/Capture1.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Capture2.png b/Power_Electronics/screenshots/Capture2.png
new file mode 100755
index 00000000..f52a294c
--- /dev/null
+++ b/Power_Electronics/screenshots/Capture2.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter2.png b/Power_Electronics/screenshots/Chapter2.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter2.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter2_1.png b/Power_Electronics/screenshots/Chapter2_1.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter2_1.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter2_2.png b/Power_Electronics/screenshots/Chapter2_2.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter2_2.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter2_3.png b/Power_Electronics/screenshots/Chapter2_3.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter2_3.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter3.png b/Power_Electronics/screenshots/Chapter3.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter3.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter3_1.png b/Power_Electronics/screenshots/Chapter3_1.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter3_1.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter3_2.png b/Power_Electronics/screenshots/Chapter3_2.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter3_2.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter3_3.png b/Power_Electronics/screenshots/Chapter3_3.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter3_3.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter4.png b/Power_Electronics/screenshots/Chapter4.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter4.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter4_1.png b/Power_Electronics/screenshots/Chapter4_1.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter4_1.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter4_2.png b/Power_Electronics/screenshots/Chapter4_2.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter4_2.png
Binary files differ
diff --git a/Power_Electronics/screenshots/Chapter4_3.png b/Power_Electronics/screenshots/Chapter4_3.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/Power_Electronics/screenshots/Chapter4_3.png
Binary files differ
diff --git a/Principles_Of_Foundation_Engineering/Chapter01.ipynb b/Principles_Of_Foundation_Engineering/Chapter01.ipynb
new file mode 100755
index 00000000..61dc3457
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter01.ipynb
@@ -0,0 +1,249 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3f5444f542f0d6a3b857b61fbecdc4e8047247ed8828d4cea5a34f91ccdf5eb3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Geotechnical Properties of Soil"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.1:Pg-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.1\n",
+ "\n",
+ "V=0.25; # ft^3\n",
+ "W=30.8; #lb\n",
+ "Wd=28.2; # weight dried lb\n",
+ "Gs=2.7;\n",
+ "Gammaw=62.4; #lb/ft^3\n",
+ "Gamma=W/V;\n",
+ "print Gamma,\" is moist unit weight in lb/ft^3\"\n",
+ "w=(W-Wd)/W;\n",
+ "print round(w*100,2),\"is moisture content in %\"\n",
+ "Gammad=Wd/V;\n",
+ "print Gammad, \"is dry unit weight in lb/ft^3\"\n",
+ "Vs=Wd/Gs/Gammaw;\n",
+ "Vv=V-Vs;\n",
+ "e=Vv/Vs;\n",
+ "print round(e,3),\" is void ratio\"\n",
+ "n=e/(1+e);\n",
+ "print round(n,2),\"is porosity\"\n",
+ "Vw=(W-Wd)/Gammaw;\n",
+ "S=Vw/Vv;\n",
+ "print round(S*100,2),\"is saturation in %\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "123.2 is moist unit weight in lb/ft^3\n",
+ "8.44 is moisture content in %\n",
+ "112.8 is dry unit weight in lb/ft^3\n",
+ "0.494 is void ratio\n",
+ "0.33 is porosity\n",
+ "50.43 is saturation in %\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.2:Pg-11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.2\n",
+ "\n",
+ "e=0.72;\n",
+ "w=12.0/100; #moisture content\n",
+ "Gs=2.72;\n",
+ "Gammaw=9.81;#kN/m^3\n",
+ "Gammad=Gs*Gammaw/(1+e);\n",
+ "print round(Gammad,2),\"= dry unit weight in kN/m^3\"\n",
+ "Gamma=Gs*Gammaw*(1+w)/(1+e);\n",
+ "print round(Gamma,2),\" = moist unit weight in kN/m^3\"\n",
+ "Gammasat=(Gs+e)*Gammaw/(1+e);\n",
+ "wa=Gammasat-Gamma;#water added\n",
+ "print round(wa,2),\" = water added in kN/m^3\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15.51 = dry unit weight in kN/m^3\n",
+ "17.38 = moist unit weight in kN/m^3\n",
+ "2.24 = water added in kN/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.3:Pg-12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.3\n",
+ "from scipy.optimize import fsolve\n",
+ "gmax=17.1; # Gammadmax\n",
+ "Dr=0.7;\n",
+ "w=8.0/100;#moisture content\n",
+ "gmin=14.2; #Gammadmin\n",
+ "def f(x):\n",
+ " return (x-14.2)/(17.1-14.2)*17.1/x-0.7 \n",
+ "x=fsolve(f,16);#solving for gammad\n",
+ "Gamma=x[0]*(1+w);\n",
+ "print round(Gamma,2),\"moist unit weight in kN/m^3\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "17.4 moist unit weight in kN/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.7:Pg-38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.7\n",
+ "import math\n",
+ "#part (a)\n",
+ "e1=0.92;\n",
+ "e2=0.86;\n",
+ "Hc=2.8; # in m\n",
+ "s2=212.0;#sigma2dash Load in kN/m2\n",
+ "s1=140.0;#sigma1dash Load in kN/m2\n",
+ "Cc=(e1-e2)/math.log10(s2/s1);\n",
+ "Sc=Cc*Hc/(1+e1)*math.log10(s2/s1);\n",
+ "print Sc*1000,\"consolidated depth in mm\"\n",
+ "#part (b)\n",
+ "# from Figure (1.21):\n",
+ "Sct=40.0;# in mm\n",
+ "T50=0.197;\n",
+ "t=4.5; # in MIN\n",
+ "Cr=T50*12.7**2.0/t;\n",
+ "U=Sct/Sc*100.0/1000;\n",
+ "H=Hc/2;\n",
+ "Tv=math.pi/4*U**2.0/100**2;\n",
+ "t=Tv*H**2.0/Cr*1000.0**2/60.0/24;\n",
+ "print round(t,1),\" is time required in days\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "87.5 consolidated depth in mm\n",
+ "31.6 is time required in days\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.8:Pg-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 1.8\n",
+ "\n",
+ "Cv=7.061; # in mm^2/min\n",
+ "tc=15*24*60.0;\n",
+ "H=2.8/2*1000.0;\n",
+ "Scmax=87.5; # consolidation\n",
+ "Tc=Cv*tc/H**2;\n",
+ "tv=31.6*24*60;\n",
+ "Tv=Cv*tv/H**2;\n",
+ "#from figure 1.28\n",
+ "Sct=Scmax*0.36;\n",
+ "print Sct,\"is consolidation in 31.6 days in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "31.5 is consolidation in 31.6 days in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter02.ipynb b/Principles_Of_Foundation_Engineering/Chapter02.ipynb
new file mode 100755
index 00000000..f284c073
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter02.ipynb
@@ -0,0 +1,95 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d0e8ca0a27c4b0cb17e7318d009efc3241a84a31e3f27c8ca705f6cb5276ce4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02:Natural Soil Deposits and Subsoil Exploration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:Pg-109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 2.1\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "import math\n",
+ "Distance=[2.5,5,7.5,10,15,20,25,30,35,40,50];\n",
+ "Time=(10**(-3))*numpy.array([11.2,23.3,33.5,42.4,50.9,57.2,64.4,68.6,71.1,72.1,75.5])\n",
+ "#part1\n",
+ "distance=5.25; # in meter\n",
+ "time=23e-3; # in second\n",
+ "v1=distance/time;\n",
+ "print round(v1,2),\"is speed in m/s\"\n",
+ "#part2\n",
+ "distance=11; # in meter\n",
+ "time=13.5e-3;# in second\n",
+ "v2=distance/time;\n",
+ "print round(v2,2),\" is speed in m/s\"\n",
+ "#part3\n",
+ "distance=14.75;# in meter\n",
+ "time=3.5e-3;# in second\n",
+ "v3=distance/time;\n",
+ "print round(v3,2),\"speed in m/s\"\n",
+ "plt.plot(Distance,Time);\n",
+ "plt.title(\"distance vs time\")\n",
+ "plt.xlabel(\"Distance in m\")\n",
+ "plt.ylabel(\"time in s\")\n",
+ "plt.show()\n",
+ "#part4\n",
+ "xc=10.4;\n",
+ "Ta=65e-3;\n",
+ "Z1=1/2.0*math.sqrt((v2-v1)/(v2+v1))*xc;\n",
+ "print round(Z1,2),\" is thickness of layer 1 in m\"\n",
+ "Z2=1/2.0*(Ta-2*Z1*math.sqrt(v3**2-v1**2)/v3/v1)*v3*v2/math.sqrt(v3**2-v2**2);\n",
+ "print round(Z2,2),\" is thickness of layer 2 in m\"\n",
+ "\n",
+ "# the answers are slightly different in textbook due to approximation while here answers are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "228.26 is speed in m/s\n",
+ "814.81 is speed in m/s\n",
+ "4214.29 speed in m/s\n",
+ "3.9"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " is thickness of layer 1 in m\n",
+ "12.82 is thickness of layer 2 in m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter03.ipynb b/Principles_Of_Foundation_Engineering/Chapter03.ipynb
new file mode 100755
index 00000000..520b4f21
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter03.ipynb
@@ -0,0 +1,412 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e3a75199f67af72d14bee528a629ae06b2506206625e1ef3a86291ef88f556ed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03:Shallow Foundations: Ultimate bearing capacity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.1:Pg-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.1\n",
+ "# From Table 3.1\n",
+ "Nc=17.69;\n",
+ "Nq=7.44;\n",
+ "Ny=3.64;\n",
+ "q=3*115;\n",
+ "Gamma=115.0; #lb/ft**3\n",
+ "c=320;\n",
+ "B=5.0;#ft\n",
+ "FS=4;#factor of safety\n",
+ "qu=1.3*c*Nc+q*Nq+0.4*Gamma*B*Ny\n",
+ "qall=qu/FS; #q allowed\n",
+ "Q=qall*B**2;\n",
+ "print Q,\"is allowable gross load in lb\" \n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation but here answer are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "67269.0 is allowable gross load in lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2:Pg-134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.2\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "import math\n",
+ "Gamma=105.0;#lb/ft**3\n",
+ "Gammasat=118.0;#lb/ft**3\n",
+ "FS=3.0;\n",
+ "pa=2014.125;#lb/ft**2\n",
+ "Depth=[5,10,15,20,25]; # in ft\n",
+ "N60=[4,6,6,10,5]; # in blow/ft\n",
+ "sigmao=[0,0,0,0,0]; # in lb/ft^2\n",
+ "phi=[0,0,0,0,0] # in degree\n",
+ "Gammaw=62.4;\n",
+ "s=0;\n",
+ "print \"depth (ft)\\tN60\\t \\tstress(lb/ft**2)\\t phi(degrees)\\n\"\n",
+ "for i in range(0,5):\n",
+ " sigmao[i]=2*Gamma+(Depth[i]-2)*(Gammasat-Gammaw);\n",
+ " phi[i]=math.sqrt(20*N60[i]*math.sqrt(pa/sigmao[i]))+20;\n",
+ " print \" \",Depth[i],\"\\t \",N60[i],\"\\t\\t \",sigmao[i],\" \\t \\t \\t\",round(phi[i],1),\" \\n\"\n",
+ " s=phi[i]+s\n",
+ "\n",
+ "avgphi=s/(i+1)\n",
+ "\n",
+ "print round(avgphi),\"average friction angle in degrees\"\n",
+ "#using graph get the values of other terms in terms of B and solve for B\n",
+ "def f(x):\n",
+ " return-150000/x**2+5263.9+5527.1/x+228.3*x\n",
+ "x=fsolve(f,4);\n",
+ "print round(x[0],1),\" is the width in ft\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth (ft)\tN60\t \tstress(lb/ft**2)\t phi(degrees)\n",
+ "\n",
+ " 5 \t 4 \t\t 376.8 \t \t \t33.6 \n",
+ "\n",
+ " 10 \t 6 \t\t 654.8 \t \t \t34.5 \n",
+ "\n",
+ " 15 \t 6 \t\t 932.8 \t \t \t33.3 \n",
+ "\n",
+ " 20 \t 10 \t\t 1210.8 \t \t \t36.1 \n",
+ "\n",
+ " 25 \t 5 \t\t 1488.8 \t \t \t30.8 \n",
+ "\n",
+ "34.0 average friction angle in degrees\n",
+ "4.5 is the width in ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3:Pg-144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.3\n",
+ "\n",
+ "import math\n",
+ "phi=25.0; #degrees\n",
+ "Es=620.0; #kN/m**2\n",
+ "Gamma=18.0;#kN/m**2\n",
+ "Df=0.6;# in m\n",
+ "B=0.6; # in m\n",
+ "L=1.2; # in m\n",
+ "Fqc=0.347;\n",
+ "Nq=10.66;\n",
+ "Nc=20.72;\n",
+ "Ngamma=10.88;\n",
+ "mu=0.3; # Poisson's ratio\n",
+ "Fyd=1.0;\n",
+ "c=48.0;#kN/m**2\n",
+ "q=Gamma*(Df+B/2);\n",
+ "Ir=Es/(2*(1+mu)*(c+q*math.tan(phi*math.pi/180.0)));\n",
+ "print round(Ir,2),\" is value of Ir\"\n",
+ "Fcc=Fqc-(1-Fqc)/(Nq*math.tan(phi*math.pi/180.0));\n",
+ "Fcs=1+Nq/Nc*B/L;\n",
+ "Fqs=1+B/L*math.tan(phi*math.pi/180.0);\n",
+ "Fys=1-0.4*B/L;\n",
+ "Fcd=1+0.4*Df/B;\n",
+ "Fqd=1+2.0*math.tan(phi*math.pi/180.0)*(1-math.sin(phi*math.pi/180.0))**2*Df/B;\n",
+ "q1=0.6*18;\n",
+ "Fyc=Fqc;\n",
+ "qu=c*Nc*Fcs*Fcd*Fcc+q1*Nq*Fqs*Fqd*Fqc+1.0/2*Gamma*Ngamma*Fys*Fyd*Fyc;\n",
+ "print round(qu,2),\"is ultimate bearing capacity in kN/m**2\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation but here answer are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4.29 is value of Ir\n",
+ "469.24 is ultimate bearing capacity in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4:Pg-156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.4\n",
+ "import math\n",
+ "q=110*4.0; #lb/ft**2\n",
+ "Nq=33.3;\n",
+ "phi=35.0; # in degree\n",
+ "Df=4.0; # in ft\n",
+ "B=6.0; # in ft\n",
+ "Gamma=110.0;#lb/ft**3\n",
+ "Ngamma=48.03; #lb/ft**3\n",
+ "B1=6-2*0.5; # in ft\n",
+ "Fqi=1;\n",
+ "Fyi=1;\n",
+ "Fyd=1;\n",
+ "Fqs=1;\n",
+ "Fys=1;\n",
+ "Fqd=1+2*math.tan(phi*math.pi/180)*(1-math.sin(phi*math.pi/180.0))**2*Df/B;\n",
+ "qu=q*Nq*Fqs*Fqd*Fqi+1/2.0*B1*Gamma*Ngamma*Fys*Fyd*Fyi;\n",
+ "Qult=B1*1*qu;\n",
+ "print round(Qult,2),\" is ultimate bearing capacity in lb/ft\" \n",
+ "print round(Qult/2000.0,2),\" is ultimate bearing capacity in ton/ft\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation but here answer are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "151738.23 is ultimate bearing capacity in lb/ft\n",
+ "75.87 is ultimate bearing capacity in ton/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5:Pg-158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.5\n",
+ "\n",
+ "e=0.5; # in ft\n",
+ "B=6; # in ft\n",
+ "k=e/B;\n",
+ "Gamma=110; # in lb/ft^3 \n",
+ "q=440;\n",
+ "print \"get the values of Nqe and Nye from the figure from the value of e/B\"\n",
+ "Nye=26.8;\n",
+ "Nqe=33.4;\n",
+ "Qult=B*1*(q*Nqe+1/2.0*Gamma*B*Nye);\n",
+ "print round(Qult,2),\" is ultimate bearing capacity in lb/ft\"\n",
+ "print round(Qult/2000.0,2),\" is ultimate bearing capacity in ton/ft\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "get the values of Nqe and Nye from the figure from the value of e/B\n",
+ "141240.0 is ultimate bearing capacity in lb/ft\n",
+ "70.62 is ultimate bearing capacity in ton/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:Pg-159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.6\n",
+ "\n",
+ "Df=0.7; # in m\n",
+ "#from table\n",
+ "Nq=18.4;\n",
+ "Ny=22.4;\n",
+ "q=12.6;\n",
+ "phi=30; #angle in degree\n",
+ "L=1.5;# in m\n",
+ "Fyd=1;\n",
+ "Gamma=18; # in KN/m^3\n",
+ "L1=0.85*1.5; # in m\n",
+ "L2=0.21*1.5; # in m\n",
+ "B=1.5; # in m\n",
+ "A=1/2.0*(L1+L2)*B;\n",
+ "B1=A/L1; #B'\n",
+ "Fqs=1+B1/L1*math.tan(phi*math.pi/180);\n",
+ "Fys=1-0.4*B1/L1;\n",
+ "Fqd=1+2*math.tan(phi*math.pi/180)*(1-math.sin(phi*math.pi/180))**2*Df/B;\n",
+ "Qult=A*(q*Nq*Fqs*Fqd+1/2.0*Gamma*B1*Ny*Fys*Fyd);\n",
+ "print round(Qult,2),\" is ultimate load in kN\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation but here answer are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "605.45 is ultimate load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7:Pg-161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.7\n",
+ "\n",
+ "e=0.15; # in m\n",
+ "B=1.5; # in m\n",
+ "Fqs=1.0;\n",
+ "L=1.5;# in m\n",
+ "Gamma=18.0; # in KN/m^3\n",
+ "q=0.7*18;\n",
+ "#from table\n",
+ "Nqe=18.4;\n",
+ "Nye=11.58;\n",
+ "Fys=1+(2*e/B-0.68)*(B/L)+(0.43-3/2.0*e/B)*(B/L)**2;\n",
+ "Qult=B*L*(q*Nqe*Fqs+1/2.0*L*Gamma*Nye*Fys);\n",
+ "print round(Qult,2),\"is ultimate load in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "803.03 is ultimate load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.8:Pg-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 3.8\n",
+ "\n",
+ "q=16.0;# in kN/m^2\n",
+ "Nqei=14.2;\n",
+ "Gamma=16.0 # in kN/m^3\n",
+ "B=1.5;# in m\n",
+ "Nyet=20.0;\n",
+ "Qult=B*(Nqei*q+1/2.0*Gamma*B*Nyet);\n",
+ "print round(Qult,2),\" is ultimate load in kN/m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "700.8 is ultimate load in kN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter04.ipynb b/Principles_Of_Foundation_Engineering/Chapter04.ipynb
new file mode 100755
index 00000000..da8b3fb8
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter04.ipynb
@@ -0,0 +1,365 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:84b2322c895fb47191307e7a54e3a6dc70036edd44f1781ba096e1e048c5f743"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04:Ultimate Bearing Capacity of Shallow Foundations: Special Cases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1:Pg-176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.1\n",
+ "\n",
+ "FS=4.0; # FOS\n",
+ "q=110*2.0; # in 1b/ft^2\n",
+ "Nq=90.0;\n",
+ "Ny=50.0;\n",
+ "Gamma=110.0; # in 1b/ft^3\n",
+ "m1=0.34; # From Figure 4.6(a)\n",
+ "B=2.5; # in ft\n",
+ "L=2.5; # in ft\n",
+ "H=1.5; # in ft\n",
+ "phi=35; # in degree\n",
+ "m2=0.45; # From Figure 4.6(b)\n",
+ "Fqs=1-0.34*B/L;\n",
+ "Fys=1-0.45*B/L;\n",
+ "qu=q*Nq*Fqs+1/2.0*Gamma*Ny*Fys*B;\n",
+ "Qall=qu*B**2/FS;\n",
+ "print round(Qall,2),\"bearing load in lb\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "26326.95 bearing load in lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2:Pg-177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.2\n",
+ "\n",
+ "FS=3.0; # FOS\n",
+ "cu=72.0;\n",
+ "q=18.0; # in kN/m^3\n",
+ "B=1.0;# in m\n",
+ "H=0.25;# in m\n",
+ "qu=5.14*(1+(0.5*B/H-0.707)/5.14)*cu+q;\n",
+ "qall=qu/FS;\n",
+ "print round(qall,1),\"bearing capacity of soil in kN/m**2\" \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "160.4 bearing capacity of soil in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3:Pg-183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.3\n",
+ "import math\n",
+ "k=0; #B/L;\n",
+ "c2=30;\n",
+ "Gamma=17.5; # in kN/m^3\n",
+ "H=1.5; # in m\n",
+ "Df=1.2; # in m\n",
+ "B=2.0; # in m\n",
+ "Ks=2.5;\n",
+ "phi=40; # in degree\n",
+ "pi=math.pi;\n",
+ "qu=(1+0.2*k)*5.14*c2+(1+k)*Gamma*H**2*(1+2*Df/H)*Ks*math.tan(phi*pi/180)/B+Gamma*H;\n",
+ "Qu=qu*B;\n",
+ "print round(Qu,2),\"is bearing capacity in kN/m\"\n",
+ "print \"there is slight variation due to rounding off error\"\n",
+ "#soil 2\n",
+ "Ny=109.4;\n",
+ "Nq=64.2;\n",
+ "Fqs=1;\n",
+ "Fys=1;\n",
+ "qt=Gamma*Df*Nq*Fqs+1/2.0*Gamma*Ny*Fys*B;\n",
+ "print qt,\"bearing capacity in kN/m**2\"\n",
+ "\n",
+ "# answer in book is different due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "575.66 is bearing capacity in kN/m\n",
+ "there is slight variation due to rounding off error\n",
+ "3262.7 bearing capacity in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4:Pg-184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.4\n",
+ "\n",
+ "B=1.0; # in m\n",
+ "L=1.5;# in m\n",
+ "c2=48;# in m\n",
+ "ca=108; # in KN/m^2\n",
+ "D=1.0;# in m\n",
+ "H=1.0;# in m\n",
+ "Gamma=16.8; # in KN/m^3\n",
+ "FS=4;\n",
+ "qu=(1+0.2*B/L)*5.14*c2+(1+B/L)*2*ca*H/B+Gamma*D; # in KN/m^2\n",
+ "c1=120.0;\n",
+ "gamma1=16.8; # in kN/m^3\n",
+ "Df=1.0;\n",
+ "qt=(1+0.2*B/L)*5.14*c1+gamma1*Df;\n",
+ "print qt,\"is qt in kN/m**2\"\n",
+ "print \"no need to calculate qt since it is not useful for calculation\"\n",
+ "print qu/FS,\"is allowable shear stress in kN/m**2\"\n",
+ "print qu/FS*1*1.5,\" is allowable load in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "715.84 is qt in kN/m**2\n",
+ "no need to calculate qt since it is not useful for calculation\n",
+ "164.104 is allowable shear stress in kN/m**2\n",
+ "246.156 is allowable load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.5:Pg-190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.5\n",
+ "\n",
+ "c=50; # in KN/m^2\n",
+ "#from table\n",
+ "Ncq=6.3;\n",
+ "FS=4.0;# FOS\n",
+ "qu=c*Ncq; # in KN/m^2\n",
+ "qall=qu/4;\n",
+ "print qall,\"allowed shear stress in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "78.75 allowed shear stress in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6:Pg-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.6\n",
+ "\n",
+ "Gamma=16.8; # in kN/m^3\n",
+ "B=1.5;# in m\n",
+ "#from table\n",
+ "Nyq=120.0;\n",
+ "qu=1/2.0*Gamma*B*Nyq; # in KN/m^2\n",
+ "print qu,\" is shear stress in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1512.0 shear stress in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.7:Pg-198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 4.7\n",
+ "import math\n",
+ "phi=35; # in degree\n",
+ "Df=1.5; # in m\n",
+ "B=1.5; # in m\n",
+ "Gamma=17.4; # in kN/m^3\n",
+ "A=math.pi/4*Df**2; # in m^2\n",
+ "m=0.25;\n",
+ "Ku=0.936;\n",
+ "Fq=1+2*(1+m*Df/B)*Df/B*Ku*math.tan(phi*math.pi/180);\n",
+ "Qu=Fq*Gamma*A*Df; # in KN/m^2\n",
+ "print round(Qu,1),\" is bearing capacity in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "121.7 is bearing capacity in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#example 4.8\n",
+ "\n",
+ "\n",
+ "\n",
+ "cu=52; # in kN/m^2\n",
+ "\n",
+ "B=1.5; # in m\n",
+ "\n",
+ "L=3; # in m\n",
+ "\n",
+ "k=0.107*cu+2.5;\n",
+ "\n",
+ "print round(k,2),\" is Df/B of square\" \n",
+ "\n",
+ "A=L*B; # in m^2\n",
+ "\n",
+ "Beta=0.2;\n",
+ "\n",
+ "Gamma=18.9; # in kN/m^3\n",
+ "\n",
+ "Df=1.8; # in m\n",
+ "\n",
+ "Qu=A*(Beta*(7.56+1.44*B/L)*cu+Gamma*Df); # in kN/m^2\n",
+ "\n",
+ "print round(Qu,1),\" is ultimate shear force in kN\"\n",
+ "\n",
+ " \n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8.06 is Df/B of square\n",
+ "540.6 is ultimate shear force in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter05.ipynb b/Principles_Of_Foundation_Engineering/Chapter05.ipynb
new file mode 100755
index 00000000..ca975aae
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter05.ipynb
@@ -0,0 +1,550 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:77a2cf465cec464205dc151afe10d9acafa79fe1b46b30f4a468368f8af3f8ea"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter05:Shallow Foundations: Allowable Bearing Capacity and Settlement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.1:Pg-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.1\n",
+ "\n",
+ "#first solution\n",
+ "B1=2.5; # in ft\n",
+ "B2=B1;\n",
+ "z=12.5; # in ft\n",
+ "L1=5; # in ft\n",
+ "L2=L1;\n",
+ "m=B1/z;\n",
+ "n=B2/z;\n",
+ "#from table 5.2 of the values using m,n\n",
+ "q=2000; # in lb/ft^2\n",
+ "I=0.0328;\n",
+ "deltasigma=q*4*I; # in lb/ft**2\n",
+ "print round(deltasigma,2),\"change in pressure in lb/ft**2\"\n",
+ "#second solution\n",
+ "Ic=0.131;#from table\n",
+ "deltasigma=q*Ic; # in lb/ft**2\n",
+ "print round(deltasigma,2),\"change in pressure in lb/ft**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "262.4 change in pressure in lb/ft**2\n",
+ "262.0 change in pressure in lb/ft**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.2:Pg-215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.2\n",
+ "\n",
+ "qo=100; # in KN/m^2\n",
+ "H1=3; # in m\n",
+ "H2=5; # in m\n",
+ "#from table\n",
+ "IaH2=0.126;\n",
+ "IaH1=0.175;\n",
+ "deltasigma=qo*((H2*IaH2-H1*IaH1)/(H2-H1)); # in kN/m**2\n",
+ "print round(deltasigma,2),\"change in pressure in kN/m**2\"\n",
+ "TS=4*deltasigma; # in kN/m**2\n",
+ "print round(TS,2),\"total change in pressure in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5.25 change in pressure in kN/m**2\n",
+ "21.0 total change in pressure in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.3:Pg-217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.3\n",
+ "H=7;\n",
+ "Gamma=17.5; # in KN/m^3\n",
+ "q0=Gamma*H # in KN/m^2\n",
+ "print q0,\" is pressure change in kN/m**2\"\n",
+ "#part2\n",
+ "#from figure\n",
+ "Ileftside=0.445;\n",
+ "Irightside=0.445;\n",
+ "deltasigma=q0*(Ileftside+Irightside); # in KN/m^2\n",
+ "print round(deltasigma,2),\"is change in stress in kN/m**2\"\n",
+ "#partc\n",
+ "#from figure 5.11\n",
+ "I=0.24;#I'\n",
+ "Dsigma1=43.75*I;#deltasigma1 in KN/m^2\n",
+ "I2=0.495;#I'\n",
+ "Dsigma2=I2*q0;#deltasigma2 in KN/m^2\n",
+ "I3=0.335;#I'\n",
+ "Dsigma3=I3*78.75;#deltasigma3 in KN/m^2\n",
+ "Dsigma=Dsigma1+Dsigma2-Dsigma3; # in KN/m^2\n",
+ "print round(Dsigma,2),\"is total stress increase in A in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "122.5 is pressure change in kN/m**2\n",
+ "109.03 is change in stress in kN/m**2\n",
+ "44.76 is total stress increase in A in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4:Pg-228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.4\n",
+ "\n",
+ "zbar=5;\n",
+ "mus=0.3;\n",
+ "F1=0.641;\n",
+ "F2=0.031;\n",
+ "z1=2.0; # in m\n",
+ "z2=1.0; # in m\n",
+ "z3=2.0; # in m\n",
+ "Es1=10000; # in kN/m**2\n",
+ "Es2=8000; # in kN/m**2\n",
+ "Es3=12000;# in kN/m**2\n",
+ "qo=150; # in KN/m^2\n",
+ "#from table 5.4\n",
+ "If=0.709;\n",
+ "Es=(Es1*z1+Es2*z2+Es3*z3)/zbar; # in kN/m**2\n",
+ "print Es,\" is modulus of elasticity in kN/m**2\"\n",
+ "Is=F1+(2-mus)/(1-mus)*F2;\n",
+ "Sc=qo*(1.0/Es-mus**2.0/Es)*Is*If*2;\n",
+ "Scrigid=0.93*Sc; # in m\n",
+ "print round(Scrigid*1000,2),\"is settlement in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10400.0 is modulus of elasticity in kN/m**2\n",
+ "12.4 is settlement in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5:Pg-234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.5\n",
+ "import math\n",
+ "B=5; # in ft\n",
+ "L=10; # in ft\n",
+ "Ef=2.3e6; # in lb/in^2\n",
+ "Eo=1400.0; # in lb/in^2\n",
+ "k=25.0; # in lb/in^2/ft\n",
+ "t=1.0;\n",
+ "mus=0.3;\n",
+ "Df=5.0; # in ft\n",
+ "qo=5000.0; # in lb/ft^2\n",
+ "Ig=0.69;\n",
+ "Be=math.sqrt(4*B*L/math.pi);\n",
+ "If=math.pi/4+1/(4.6+10*(Ef/(Eo+2*Be/2*k))*(2*t/Be)**3);\n",
+ "Ie=1-1/(3.5*math.exp(1.22*mus-0.4)*(Be/Df+1.6));\n",
+ "Se=qo*Be*Ig*If*Ie/Eo*(1-mus**2)/144; # in ft\n",
+ "print round(Se*12,2),\"settlement in inches\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.07 settlement in inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.6:238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.6\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "q=3.06; # in lb/in^2\n",
+ "qbar=25; # in lb/in^2\n",
+ "C1=1-0.5*(q/(qbar-q));\n",
+ "Sum=0;\n",
+ "C2=1+0.2*math.log10(10/0.1);\n",
+ "L=[1, 2, 3, 4, 5];\n",
+ "Dz=[48, 48, 96, 48, 144]; # in inch\n",
+ "Es=[750, 1250, 1250, 1000, 2000]; # in lb/in^2\n",
+ "z=[24, 72, 144, 216, 312]; # in inch\n",
+ "Iz=[0.275, 0.425, 0.417, 0.292, 0.125];\n",
+ "k=numpy.zeros(5)\n",
+ "print \"Layer No.\\t deltaz (in)\\t Es(lb/in**2)\\t z to the middle of the layer (in) Iz at the middle of the layer Iz/delta(z) \\n\"\n",
+ "for i in range(0,5):\n",
+ " k[i]=Iz[i]/Es[i]*Dz[i];\n",
+ " print L[i],\"\\t \\t \",Dz[i],\"\\t\\t \",Es[i],\"\\t\\t \",z[i],\" \\t\\t\\t\\t\\t \",Iz[i],\"\\t\\t \",round(k[i],3)\n",
+ " Sum=Sum+k[i];\n",
+ "\n",
+ "Se=C1*C2*(qbar-q)*Sum; # in inch\n",
+ "print round(Se,2),\"settlement in inches\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Layer No.\t deltaz (in)\t Es(lb/in**2)\t z to the middle of the layer (in) Iz at the middle of the layer Iz/delta(z) \n",
+ "\n",
+ "1 \t \t 48 \t\t 750 \t\t 24 \t\t\t\t\t 0.275 \t\t 0.018\n",
+ "2 \t \t 48 \t\t 1250 \t\t 72 \t\t\t\t\t 0.425 \t\t 0.016\n",
+ "3 \t \t 96 \t\t 1250 \t\t 144 \t\t\t\t\t 0.417 \t\t 0.032\n",
+ "4 \t \t 48 \t\t 1000 \t\t 216 \t\t\t\t\t 0.292 \t\t 0.014\n",
+ "5 \t \t 144 \t\t 2000 \t\t 312 \t\t\t\t\t 0.125 \t\t 0.009\n",
+ "2.54 settlement in inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.7:Pg-244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.7\n",
+ "\n",
+ "Df=1.0; # in m\n",
+ "B=1.75; # in m\n",
+ "L=1.75 # in m\n",
+ "qnet=120.0; # in KN/m^2\n",
+ "N60=10.0;# in m\n",
+ "alpha1=0.14 # for normally consolated sand\n",
+ "alpha2=1.71/(N60)**1.4 # for normally consolated sand\n",
+ "alpha3=1.0 # for normally consolated sand\n",
+ "Se=0.3*alpha1*alpha2*alpha3*(qnet/100)*((B/0.3)**0.7)*((1.25*(L/B)/(0.25+(L/B))))**2\n",
+ "print round(Se*1000,2),\"settlement in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "11.79 settlement in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.8:Pg-245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.8\n",
+ "\n",
+ "Df=1; # in m\n",
+ "B=1.75; # in m\n",
+ "qnet=120; # in KN/m^2\n",
+ "N60=10; # in m\n",
+ "Fd=1+0.33*Df/B;\n",
+ "Se=2*qnet/N60/Fd*(B/(B+0.3))**2; # in mm\n",
+ "print round(Se,2),\"settlement in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "14.71 settlement in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.9:Pg-251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.9\n",
+ "\n",
+ "Ny=23.76; \n",
+ "Nq=16.51; \n",
+ "q=3*110.0; # in lb/ft^2\n",
+ "Gamma=110.0; # in lb/ft^3\n",
+ "B=4.0; # in ft\n",
+ "Nqe=0.63*Nq;\n",
+ "Nye=0.4*Ny;\n",
+ "que=q*Nqe+1/2.0*Gamma*B*Nye; # in lb/ft^2\n",
+ "print round(que,2),\" is bearing capacity in lb/ft**2\"\n",
+ "#part 2\n",
+ "V=0.4; # in ft/sec\n",
+ "A=0.32; # given in question\n",
+ "g=9.81; # acceleration constant in m/sec^2\n",
+ "kh=0.26;\n",
+ "k=0.92;#tan(alphae)\n",
+ "Seq=0.174*k*V**2/A/g*kh**-4/A**-4; # in m\n",
+ "print round(Seq,3),\"settelement in m\"\n",
+ "print round(Seq*39.57,2),\"settlement in inches\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5523.31 is bearing capacity in lb/ft**2\n",
+ "0.019 settelement in m\n",
+ "0.74 settlement in inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.10:Pg-256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.10\n",
+ "\n",
+ "import math\n",
+ "Cc=0.32;\n",
+ "Hc=2.5;\n",
+ "eo=0.8;\n",
+ "sigmao=2.5*16.5+0.5*(17.5-9.81)+1.25*(16-9.81); # in kN/m^2\n",
+ "m1=[2, 2, 2];\n",
+ "z=[2, 3.25, 4.5];\n",
+ "n1=[4, 6.5, 9];\n",
+ "Ic=[0.19, 0.085, 0.045];\n",
+ "Dsigma=[28.5, 12.75, 6.75];#deltasigma\n",
+ "print (\"m1\\t z(m)\\t n1\\t Ic\\t Dsigma \\n\");\n",
+ "for i in range(0,3):\n",
+ " print round(m1[i],2),\"\\t \",round(z[i],2),\"\\t \",round(n1[i],2),\"\\t \",round(Ic[i],2),\"\\t \",round(Dsigma[i],2)\n",
+ "\n",
+ " Dsigmaav=1/6.0*(Dsigma[0]+4*Dsigma[1]+Dsigma[2]);\n",
+ " Sc=Cc*Hc/(1+eo)*math.log10((sigmao+Dsigmaav)/sigmao);\n",
+ "print round(Sc*1000,2),\"settlement in mm\"\n",
+ "#partb\n",
+ "B=1.0; # in m\n",
+ "L=2.0; # in m\n",
+ "z=0.5+1.5; # in m\n",
+ "B=B+z; # in m\n",
+ "L=L+z; # in m\n",
+ "A=0.6; # given in question\n",
+ "#from table\n",
+ "kcr=0.78; # by data\n",
+ "Sep=kcr*Sc;\n",
+ "print round(Sep*1000,2),\"settlement in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "m1\t z(m)\t n1\t Ic\t Dsigma \n",
+ "\n",
+ "2.0 \t 2.0 \t 4.0 \t 0.19 \t 28.5\n",
+ "2.0 \t 3.25 \t 6.5 \t 0.09 \t 12.75\n",
+ "2.0 \t 4.5 \t 9.0 \t 0.04 \t 6.75\n",
+ "46.45 settlement in mm\n",
+ "36.23 settlement in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.11:Pg-262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 5.11\n",
+ "\n",
+ "import numpy\n",
+ "N60=(3+7+12+12+16)/5.0;\n",
+ "B=[2, 2.25, 2.3]; # in m\n",
+ "Fd=[1.248, 1.22, 1.215];\n",
+ "Qoac=102000*9.81/1000;#actual Qo\n",
+ "Se=25; # in mm\n",
+ "qnet=numpy.zeros(3)\n",
+ "Qo=numpy.zeros(3) # in kN\n",
+ "print \"B(m)\\t Fd\\t qnet(kN/m**2)\\t \\t Qo \\n\"\n",
+ "for i in range(0,3):\n",
+ " qnet[i]=10/0.08*(B[i]+0.3)**2/(B[i])**2*Fd[i]*Se/25;\n",
+ " Qo[i]=qnet[i]*B[i]**2;\n",
+ " print B[i],\"\\t\",Fd[i],\" \\t \",round(qnet[i],2),\"\\t\\t \",Qo[i],\"\\n\"\n",
+ "print int(Qoac),\"value of Qo in kN\"\n",
+ "print \"since Qo is 1000 kN thus B is equal to 2.3 m from the table\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B(m)\t Fd\t qnet(kN/m**2)\t \t Qo \n",
+ "\n",
+ "2 \t1.248 \t 206.31 \t\t 825.24 \n",
+ "\n",
+ "2.25 \t1.22 \t 195.88 \t\t 991.63125 \n",
+ "\n",
+ "2.3 \t1.215 \t 194.08 \t\t 1026.675 \n",
+ "\n",
+ "1000 value of Qo in kN\n",
+ "since Qo is 1000 kN thus B is equal to 2.3 m from the table\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter06.ipynb b/Principles_Of_Foundation_Engineering/Chapter06.ipynb
new file mode 100755
index 00000000..d87679c7
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter06.ipynb
@@ -0,0 +1,351 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0ea06255a04932e0bf9952689cf2f6d919d320d1161a790bec574191c6fbafa1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter06: Mat Foundations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1:Pg-279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.1\n",
+ "\n",
+ "B=30; # in ft\n",
+ "L=45; # in ft\n",
+ "Df=6.5; # in ft\n",
+ "cu=1950;# in lb/ft^2\n",
+ "qunet=5.14*cu*(1+0.195*B/L)*(1+0.4*Df/B);\n",
+ "print int(qunet),\" is allowed force in lb/ft**2\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12307 is allowed force in lb/ft**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2:Pg-280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.2\n",
+ "\n",
+ "N60=10; # penetration number\n",
+ "Df=2; # in m\n",
+ "B=10.0; # in m\n",
+ "Se=25.0; # in mm\n",
+ "qnetall=N60/0.08*(1+0.33*Df/B)*Se/25;\n",
+ "print qnetall,\" is allowed pressure in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "133.25 is allowed pressure in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3:Pg-283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.3\n",
+ "\n",
+ "cu=2800; # in lb/ft^2\n",
+ "B=60; # in ft\n",
+ "L=100; # in ft\n",
+ "Df=5; # in ft\n",
+ "\n",
+ "Gamma=120; # in lb/ft^3\n",
+ "A=60*100; # in ft^2\n",
+ "Q=25e6; # load in Kip\n",
+ "FS=5.14*cu*(1+0.195*B/L)*(1+0.4*Df/B)/(Q/A-Gamma*Df);\n",
+ "print round(FS,2),\" is factor of safety\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4.66 is factor of safety\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4:Pg-284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.4\n",
+ "\n",
+ "import math\n",
+ "Cc=0.28;\n",
+ "Hc=18*12.0;\n",
+ "e0=0.9;\n",
+ "sigmao=11*100+40*(121.5-64)+18/2*(118-62.4); # in lb/ft^2\n",
+ "H2=5+40+18.0;\n",
+ "H1=5+40.0;\n",
+ "qo=3567.0;\n",
+ "#from table\n",
+ "IaH2=0.21;\n",
+ "IaH1=0.225;\n",
+ "Dsigma=qo*((H2*IaH2-H1*IaH1)/(H2-H1))*4;\n",
+ "Scp=Cc*Hc/(1+e0)*math.log10(sigmao/sigmao+Dsigma/sigmao);\n",
+ "print round(Scp,2),\"is settlement in inches\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6.76 is settlement in inches\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5:Pg-296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.5\n",
+ "import numpy\n",
+ "P=['A','B','C','D','E','F','G','H','I','J','K','L','M','N'];#point\n",
+ "k=1.2*numpy.ones(14);#Q/A\n",
+ "x=[-38,-24, -12, 0, 12, 24, 38, 38, 24, 12, 0, -12, -24, -38];\n",
+ "x1=numpy.zeros(14)\n",
+ "for i in range(0,14):\n",
+ " x1[i]=0.0017*x[i];\n",
+ "y=[48,48,48,48,48,48,48, -48, -48, -48, -48, -48, -48, -48];\n",
+ "y1=numpy.zeros(14)\n",
+ "for i in range(0,14):\n",
+ " y1[i]=-0.0011*y[i];\n",
+ "print \"point\\t Q\\A (kip/ft**2) x(ft)\\t 0.0017x(ft)\\t\\ty(ft)\\t \\t 0.0011y(ft)\\t \\t q(kip/ft**2)\\n\"\n",
+ "q=numpy.zeros(14)\n",
+ "for i in range(0,14):\n",
+ " q[i]=1.2+x1[i]+y1[i];\n",
+ " print P[i],\"\\t \",k[i],\"\\t\\t \",x[i],\"\\t\\t\",round(x1[i],3),\"\\t\\t\",y[i],\"\\t \\t \",round(y1[i],3),\"\\t \\t \\t\",round(q[i],3),\"\\t\\t \\n \"\n",
+ "\n",
+ "print \"the soil pressure at all point is less than the given qallnet=1.5 kip/ft**2\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "point\t Q\\A (kip/ft**2) x(ft)\t 0.0017x(ft)\t\ty(ft)\t \t 0.0011y(ft)\t \t q(kip/ft**2)\n",
+ "\n",
+ "A \t 1.2 \t\t -38 \t\t-0.065 \t\t48 \t \t -0.053 \t \t \t1.083 \t\t \n",
+ " \n",
+ "B \t 1.2 \t\t -24 \t\t-0.041 \t\t48 \t \t -0.053 \t \t \t1.106 \t\t \n",
+ " \n",
+ "C \t 1.2 \t\t -12 \t\t-0.02 \t\t48 \t \t -0.053 \t \t \t1.127 \t\t \n",
+ " \n",
+ "D \t 1.2 \t\t 0 \t\t0.0 \t\t48 \t \t -0.053 \t \t \t1.147 \t\t \n",
+ " \n",
+ "E \t 1.2 \t\t 12 \t\t0.02 \t\t48 \t \t -0.053 \t \t \t1.168 \t\t \n",
+ " \n",
+ "F \t 1.2 \t\t 24 \t\t0.041 \t\t48 \t \t -0.053 \t \t \t1.188 \t\t \n",
+ " \n",
+ "G \t 1.2 \t\t 38 \t\t0.065 \t\t48 \t \t -0.053 \t \t \t1.212 \t\t \n",
+ " \n",
+ "H \t 1.2 \t\t 38 \t\t0.065 \t\t-48 \t \t 0.053 \t \t \t1.317 \t\t \n",
+ " \n",
+ "I \t 1.2 \t\t 24 \t\t0.041 \t\t-48 \t \t 0.053 \t \t \t1.294 \t\t \n",
+ " \n",
+ "J \t 1.2 \t\t 12 \t\t0.02 \t\t-48 \t \t 0.053 \t \t \t1.273 \t\t \n",
+ " \n",
+ "K \t 1.2 \t\t 0 \t\t0.0 \t\t-48 \t \t 0.053 \t \t \t1.253 \t\t \n",
+ " \n",
+ "L \t 1.2 \t\t -12 \t\t-0.02 \t\t-48 \t \t 0.053 \t \t \t1.232 \t\t \n",
+ " \n",
+ "M \t 1.2 \t\t -24 \t\t-0.041 \t\t-48 \t \t 0.053 \t \t \t1.212 \t\t \n",
+ " \n",
+ "N \t 1.2 \t\t -38 \t\t-0.065 \t\t-48 \t \t 0.053 \t \t \t1.188 \t\t \n",
+ " \n",
+ "the soil pressure at all point is less than the given qallnet=1.5 kip/ft**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6:Pg-299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 6.6\n",
+ "\n",
+ "from scipy.optimize import fsolve\n",
+ "#solving for d\n",
+ "def f(d):\n",
+ " return (96+2*d)*d-2615.1\n",
+ "[x]=fsolve(f,19);\n",
+ "d1=x;\n",
+ "def f(d):\n",
+ " return (96+4*d)*d-6046.4\n",
+ "[x]=fsolve(f,28);\n",
+ "d2=x;\n",
+ "d=max(d2,d1);\n",
+ "d=round(d)\n",
+ "#now coming to design part\n",
+ "h=d+3+1; #in inch\n",
+ "print h,\"is total slab thickness in inches\"\n",
+ "qa=1.082; # in kip/ft^2\n",
+ "qb=1.106; # in kip/ft^2\n",
+ "qm=1.212; # in kip/ft^2\n",
+ "qn=1.188; # in kip/ft^2\n",
+ "q1A=qa/2.0+qb/2.0;\n",
+ "print round(q1A,3),\"is force in strip ABMN in kip/ft**2\"\n",
+ "q2A=qm/2.0+qn/2.0;\n",
+ "print round(q2A,3),\"is force in strip ABMN in kip/ft**2\"\n",
+ "q1=1.106/3+1.127/3+1.147/3;\n",
+ "print round(q1,3),\"is force in strip BCDKLM in kip/ft**2\"\n",
+ "q2=1.253/3+1.233/3+1.212/3;\n",
+ "print round(q2,3),\"is force in strip BCDKLM in kip/ft**2\"\n",
+ "q1=1.147/3+1.167/3+1.188/3;\n",
+ "print round(q1,3),\"is force in strip DEFIJK in kip/ft**2\"\n",
+ "q2=1.294/3+1.273/3+1.253/3;\n",
+ "print round(q2,3),\"is force in strip DEFIJK in kip/ft**2\"\n",
+ "q1=1.188/2+1.212/2;\n",
+ "print round(q1,3),\"is force in strip FGHI in kip/ft**2\"\n",
+ "q2=1.318/2+1.294/2;\n",
+ "print round(q2,3),\" is force in strip FGHI in kip/ft**2\"\n",
+ "#checking for force\n",
+ "#net soil reaction <load \n",
+ "netforce=1/2.0*(1.094+1.2)*14*96+1/2.0*(1.127+1.233)*24*96+1/2.0*(1.167+1.273)*24*96+1/2.0*(1.2+1.306)*14*96;\n",
+ "if netforce<8761 :\n",
+ " print \"forces generated is OK\"\n",
+ "\n",
+ "#checking for reinforcement requirement\n",
+ "Q1=1.4*180+1.7*120;\n",
+ "Q2=1.4*360+1.7*200;\n",
+ "Q3=1.4*400+1.7*240;\n",
+ "Q4=1.4*180+1.7*120;\n",
+ "#solving for a\n",
+ "def f(a):\n",
+ " return 0.9*0.51*a*60*(29-a/2)-95.05*12\n",
+ "[x]=fsolve(f,1.4);\n",
+ "a=x;\n",
+ "As=0.51*a\n",
+ "fy=60000;\n",
+ "print round(As,2),\"is required area in in**2\"\n",
+ "Asmin=200.0/fy*12*29;\n",
+ "print Asmin,\" is minimum reinforcement required in**2/ft\"\n",
+ "print \"use No 9 bars at 10 inch centre to centre\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "33.0 is total slab thickness in inches\n",
+ "1.094 is force in strip ABMN in kip/ft**2\n",
+ "1.2 is force in strip ABMN in kip/ft**2\n",
+ "1.127 is force in strip BCDKLM in kip/ft**2\n",
+ "1.233 is force in strip BCDKLM in kip/ft**2\n",
+ "1.167 is force in strip DEFIJK in kip/ft**2\n",
+ "1.273 is force in strip DEFIJK in kip/ft**2\n",
+ "1.2 is force in strip FGHI in kip/ft**2\n",
+ "1.306 is force in strip FGHI in kip/ft**2\n",
+ "forces generated is OK\n",
+ "0.75 is required area in in**2\n",
+ "1.16 is minimum reinforcement required in**2/ft\n",
+ "use No 9 bars at 10 inch centre to centre\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter07.ipynb b/Principles_Of_Foundation_Engineering/Chapter07.ipynb
new file mode 100755
index 00000000..63b3bc22
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter07.ipynb
@@ -0,0 +1,358 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6111670c8f96effbf1bc0bc29859353d67e53cd5b906d2b571173d1698f7ba9c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter07:Lateral earth pressure"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1:Pg-319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.1\n",
+ "\n",
+ "sigmao=48.0; # in KN/m^2\n",
+ "phi1=30*math.pi/180; # angle\n",
+ "phi2=36*math.pi/180; # angle\n",
+ "Ka1=(math.tan(math.pi/4.0-phi1/2))**2;\n",
+ "Ka2=(math.tan(math.pi/4.0-phi2/2))**2;\n",
+ "sigmaa1=Ka1*sigmao; # in KN/m^2\n",
+ "print round(sigmaa1,2),\"top soil pressure in kN/m**2\"\n",
+ "sigmaa2=Ka2*sigmao; # in KN/m^2\n",
+ "print round(sigmaa2,2),\"bottom soil pressure in kN/m**2\"\n",
+ "Po=1/2.0*3*16+3*12.48+1/3.0*3*(19.65-12.48)+1/2.0*3*29.43;\n",
+ "zbar=(24*(3+3/3.0)+37.44*(3/2.0)+10.76*3/3.0+44.1*3/3.0)/Po;\n",
+ "print round(zbar,2),\"resultant force acting from the bottom in m\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "16.0 top soil pressure in kN/m**2\n",
+ "12.46 bottom soil pressure in kN/m**2\n",
+ "1.84 resultant force acting from the bottom in m\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2:Pg-321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.2\n",
+ "\n",
+ "import math\n",
+ "c=14.36;\n",
+ "Gamma=17.4; # in KN/m^3\n",
+ "H=6; # in m\n",
+ "phi=26*math.pi/180;\n",
+ "Ka=(math.tan(math.pi/4-phi/2))**2;\n",
+ "sigma0=Gamma*H*Ka-2*c*math.sqrt(Ka);\n",
+ "Pa=1/2.0*Gamma*H**2*Ka-2*c*H*math.sqrt(Ka);\n",
+ "print round(Pa,2),\"active force before which tensile crack appeared in kN/m\"\n",
+ "zbar=(244.32-323.1)/14.46;\n",
+ "print round(zbar,2),\"the line of action on which net force is acting in m\"\n",
+ "zc=2*c/Gamma/math.sqrt(Ka);\n",
+ "print round(zc,2),\"distance where tensile crack appeared in m\"\n",
+ "Pa=1/2.0*(H-zc)*(Gamma*H*Ka-2*c*math.sqrt(Ka));\n",
+ "print round(Pa,2),\"Active force in tensile crack in kN/m\"\n",
+ "zbar=(H-zc)/3;\n",
+ "print round(zbar,2),\"the line of action on which net force is acting in m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "14.62 active force before which tensile crack appeared in kN/m\n",
+ "-5.45 the line of action on which net force is acting in m\n",
+ "2.64 distance where tensile crack appeared in m\n",
+ "38.32 Active force in tensile crack in kN/m\n",
+ "1.12 the line of action on which net force is acting in m\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3:Pg-322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.3\n",
+ "import math\n",
+ "pi=math.pi\n",
+ "H=10.0; # in ft\n",
+ "Gamma=110.0; # in lb/ft^3\n",
+ "phi=35*math.pi/180.0; # angle\n",
+ "alpha=15*math.pi/180.0; # angle\n",
+ "theta=10*math.pi/180.0; # angle\n",
+ "zi=math.sin(math.sin(alpha)/math.sin(phi))-alpha+2*theta;\n",
+ "print round(zi*180.0/math.pi,2),\" is zi in degrees\"\n",
+ "Ka=math.cos(alpha-theta)*math.sqrt(1+(math.sin(phi))**2-2*math.sin(phi)*math.sin(zi))/((math.cos(theta))**2*(math.cos(alpha)+math.sqrt((math.sin(phi))**2+((math.sin(alpha))**2))));\n",
+ "Pa=1/2.0*Gamma*H**2*Ka;\n",
+ "print round(Pa,2),\" is rankine earth pressure in lb/ft\"\n",
+ "print \"there is slight error in answer due to rounding off error\"\n",
+ "Beta=math.tan(math.sin(phi)*math.sin(zi)/(1-math.sin(phi)*math.cos(zi)));\n",
+ "print round(Beta*180/pi,2),\" is angle in degrees\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "29.99 is zi in degrees\n",
+ "3078.61 is rankine earth pressure in lb/ft\n",
+ "there is slight error in answer due to rounding off error\n",
+ "36.7 is angle in degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4:Pg-326"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.4\n",
+ "\n",
+ "H=4.6; # in m\n",
+ "Gamma=16.5; # in KN/m^3\n",
+ "Ka=0.297;\n",
+ "Po=1/2.0*Gamma*H**2*Ka;\n",
+ "print round(Po,2),\"coulomb active force per unit length in kN/m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "51.85 coulomb active force per unit length in kN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5:Pg-331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.5\n",
+ "\n",
+ "#part(a)\n",
+ "Gamma=105; # in lb/ft^3\n",
+ "H=10; #in ft\n",
+ "Kae=0.474;\n",
+ "k1=0;\n",
+ "Pae=1/2.0*Gamma*H**2*Kae*(1-k1) # in lb/ft\n",
+ "print Pae,\"active force in lb/ft\"\n",
+ "#part(b)\n",
+ "Ka=0.246;\n",
+ "Pa=1/2.0*Gamma*H**2*Ka; # in lb/ft\n",
+ "print Pa,\"active force in lb/ft\"\n",
+ "DPae=Pae-Pa;#deltaPae\n",
+ "zbar=(0.6*H*DPae+H/3*(Pa))/Pae;\n",
+ "print round(zbar,2),\"the distance of resultant force from bottom in ft\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2488.5 active force in lb/ft\n",
+ "1291.5 active force in lb/ft\n",
+ "4.44 the distance of resultant force from bottom in ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.6:Pg-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.6\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "z=[0, 4, 8, 12, 16];\n",
+ "Gamma=110; # in lb/ft^3\n",
+ "phi=36*math.pi/180;\n",
+ "H=16; # in ft\n",
+ "Sa1=numpy.zeros(5);#sigma(1)\n",
+ "Sa2=numpy.zeros(5);#sigma(2)\n",
+ "Sztr=numpy.zeros(5);#sigma(z)translation\n",
+ "print \"z(ft)\\t sigma(1)(lb/ft**2) \\t sigma(2)(lb/ft**2) \\t sigma(z)translation (lb/ft**2)\\n\"\n",
+ "for i in range(0,5):\n",
+ " Sa1[i]=Gamma*(math.tan(math.pi/4-phi*z[i]/2/H))**2*(z[i]-phi*z[i]**2/H/math.cos(phi*z[i]/H));\n",
+ " Sa2[i]=Gamma*z[i]*(math.cos(phi)/(1+math.sin(phi)))**2;\n",
+ " Sztr[i]=Sa1[i]/2.0+Sa2[i]/2.0;\n",
+ " print round(z[i],2),\"\\t \",round(Sa1[i],2),\"\\t\\t\\t \",round(Sa2[i],2),\"\\t\\t\\t \",round(Sztr[i],2),\"\\n\"\n",
+ "plt.plot(Sztr,z);\n",
+ "plt.title(\"sigma(z)translation vs z\")\n",
+ "plt.ylabel(\"z(ft)\")\n",
+ "plt.xlabel(\"sigma(z)translation (lb/ft**2)\")\n",
+ "plt.show()\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "z(ft)\t sigma(1)(lb/ft**2) \t sigma(2)(lb/ft**2) \t sigma(z)translation (lb/ft**2)\n",
+ "\n",
+ "0.0 \t 0.0 \t\t\t 0.0 \t\t\t 0.0 \n",
+ "\n",
+ "4.0 \t 269.92 \t\t\t 114.23 \t\t\t 192.07 \n",
+ "\n",
+ "8.0 \t 311.08 \t\t\t 228.46 \t\t\t 269.77 \n",
+ "\n",
+ "12.0 \t 233.53 \t\t\t 342.69 \t\t\t 288.11 \n",
+ "\n",
+ "16.0 \t 102.06 \t\t\t 456.92 \t\t\t 279.49 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.7:Pg-342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 7.7\n",
+ "import math\n",
+ "Gammasat=18.86; # in KN/m^3\n",
+ "Gammaw=9.81; # in KN/m^3\n",
+ "phi1=math.pi/180*30; # angle 1\n",
+ "phi2=math.pi/180*26; # angle 2\n",
+ "Kp1=(math.tan(math.pi/4+phi1/2))**2;\n",
+ "Kp2=(math.tan(math.pi/4+phi2/2))**2;\n",
+ "#for top soil\n",
+ "c=0;\n",
+ "sigma0=31.44; # in KN/m^2\n",
+ "sigmap=sigma0*Kp1+2*c*math.sqrt(Kp1);\n",
+ "print round(sigmap,2),\"passive pressure for top layer in kN/m**2\"\n",
+ "#for z=2\n",
+ "c=10;\n",
+ "sigma0=31.44; # in KN/m^2\n",
+ "sigmap=sigma0*Kp2+2*c*math.sqrt(Kp2);\n",
+ "print round(sigmap,2),\"passive pressure for z=2m in kN/m**2\"\n",
+ "#for z=3\n",
+ "c=10;\n",
+ "sigma0=15.72*2+(Gammasat-Gammaw)*1; # in KN/m^2\n",
+ "sigmap=sigma0*Kp2+2*c*math.sqrt(Kp2); # in KN/m^2\n",
+ "print round(sigmap,2),\" is passive pressure for z=3m in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "94.32 passive pressure for top layer in kN/m**2\n",
+ "112.53 passive pressure for z=2m in kN/m**2\n",
+ "135.7 is passive pressure for z=3m in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter08.ipynb b/Principles_Of_Foundation_Engineering/Chapter08.ipynb
new file mode 100755
index 00000000..de2367cd
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter08.ipynb
@@ -0,0 +1,527 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ae926d3fc40f9f56d82ee333a9b5a7f719ff4a11c08f89381773660beb02ead3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter08: Retaining walls"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1:Pg-366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.1\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "H1=6*math.tan(10*math.pi/180.0); # in ft\n",
+ "H2=18.0; # in ft\n",
+ "H3=2.75; # in ft\n",
+ "Gamma1=117.0; # in lb/ft^3\n",
+ "Ka=0.294;#from table 7.1\n",
+ "H=H1+H2+H3; # in ft\n",
+ "Pa=1/2.0*Gamma1*H**2*Ka/1000; # in Kip/ft\n",
+ "Pr=Pa*math.sin(10*math.pi/180); # in Kip/ft\n",
+ "Ph=Pa*math.cos(10*math.pi/180); # in Kip/ft\n",
+ "Mo=Ph*H/3.0; # in Kip-ft/ft\n",
+ "Sum=0;#sigma Mr\n",
+ "S=[1, 2, 3, 4, 5];#section\n",
+ "W=[4.05, 1.35, 5.156, 13.01, 1.42];#weight\n",
+ "MA=[5.75, 4.67, 6.25, 9.5, 12.5, 12.5];#Moment Arm\n",
+ "M=numpy.zeros(5)\n",
+ "print \"Section Weight(kip/ft) Moment Arm(ft) Moment (kip-ft/ft)\\n\"\n",
+ "for i in range(0,5):\n",
+ " M[i]=W[i]*MA[i];\n",
+ " Sum=Sum+M[i];\n",
+ " print round(S[i],2),\"\\t \\t \",round(W[i],2),\"\\t \\t \\t\",round(MA[i],2),\"\\t \\t \\t \",round(M[i],2),\"\\n\"\n",
+ "\n",
+ "FSO=Sum/Mo;\n",
+ "if FSO>2 :\n",
+ " print \"safe in overturning with FS=\",round(FSO,2),\"\\n\"\n",
+ "\n",
+ "#for sliding\n",
+ "phi2=18*math.pi/180; # the given angle\n",
+ "V=24.986;\n",
+ "B=12.5;\n",
+ "c2=0.9; # in lb/ft^2\n",
+ "FSS=(V*math.tan(2/3.0*phi2)+B*2/3.0*c2)/Ph;\n",
+ "if FSS>2 :\n",
+ " print \"safe in sliding with FS=\",round(FSS,2),\"\\n\"\n",
+ "\n",
+ "#for bearing\n",
+ "e=B/2.0-(Sum-Mo)/V;\n",
+ "qtoe=V/B*(1+6*e/B); # in Kip/ft^2\n",
+ "Nc=13.1;\n",
+ "Nq=5.26;\n",
+ "Ny=4.07;\n",
+ "D=0.107;\n",
+ "Gamma2=4.0; # in lb/ft^3\n",
+ "B1=B-2*e;#Bdash\n",
+ "q=Gamma2*D # in lb/ft^2\n",
+ "Fcd=1+0.4*D/B1;\n",
+ "Fqd=1+2*math.tan(phi2)*(1-math.sin(phi2))**2*(D/B1);\n",
+ "Fyd=1;\n",
+ "zi=math.tan(Ph/V);\n",
+ "Fci=(1-zi/math.pi*2)**2;\n",
+ "Fqi=Fci;\n",
+ "Fyi=round((1-zi/phi2)**2);\n",
+ "qu=c2*Nc*Fcd*Fci+q*Nq*Fqd*Fqi+1/2.0*Gamma2*B1*Fyd*Fyi;\n",
+ "FSB=qu/qtoe;\n",
+ "if FSB>3 :\n",
+ " print \"bearing is safe with FS=\",round(FSB),\"\\n\\n\"\n",
+ " print \"slight changes due to round off error\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Section Weight(kip/ft) Moment Arm(ft) Moment (kip-ft/ft)\n",
+ "\n",
+ "1.0 \t \t 4.05 \t \t \t5.75 \t \t \t 23.29 \n",
+ "\n",
+ "2.0 \t \t 1.35 \t \t \t4.67 \t \t \t 6.3 \n",
+ "\n",
+ "3.0 \t \t 5.16 \t \t \t6.25 \t \t \t 32.23 \n",
+ "\n",
+ "4.0 \t \t 13.01 \t \t \t9.5 \t \t \t 123.59 \n",
+ "\n",
+ "5.0 \t \t 1.42 \t \t \t12.5 \t \t \t 17.75 \n",
+ "\n",
+ "safe in overturning with FS= 3.47 \n",
+ "\n",
+ "bearing is safe with FS= 4.0 \n",
+ "\n",
+ "\n",
+ "slight changes due to round off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2:Pg-369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.2\n",
+ "\n",
+ "c=0.9; # # in lb/ft^2\n",
+ "B=12.5; # in ft\n",
+ "Gamma2=4; # in lb/ft^3\n",
+ "Fcd=1.138;\n",
+ "Fqd=1.107; \n",
+ "Nc=7.5;\n",
+ "Nq=4;\n",
+ "Ny=0;\n",
+ "q=0.428; # in lb/ft^2\n",
+ "qtoe=2.44; # in lb/ft^2\n",
+ "qu=c*Nc*Fcd+q*Nq*Fqd+1/2.0*Gamma2*B*Ny;\n",
+ "FSB=qu/qtoe; # factor of safety\n",
+ "if FSB>3.0 :\n",
+ " print \"safe in bearing with FS=\",round(FSB,2),\"\\n\\n\",\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "safe in bearing with FS= 3.92 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3:Pg-370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.3\n",
+ "import math\n",
+ "import numpy\n",
+ "Msum=0;#sum of moment\n",
+ "Vsum=0;#sum of force\n",
+ "H=15+2.5;#Hdash in ft\n",
+ "phi=30*math.pi/180; # given angle in degree\n",
+ "Gamma=121.0; # in lb/ft^3\n",
+ "Ka=(math.tan(math.pi/4-phi/2))**2;\n",
+ "Pa=1/2.0*Gamma*H**2*Ka/1000; # in Kip/ft\n",
+ "Ph=Pa; # in Kip/ft\n",
+ "Mo=Ph*H/3.0; # in Kip-ft/ft\n",
+ "AN=[1.0,2.0,3.0,4.0,5.0,6.0];#area number\n",
+ "W=[0.9,3.375,5.906,3.863,4.764,2.723];#weight\n",
+ "MA=[1.783,2.8,5.3,5.15,7.05,9.55];#moment arm\n",
+ "\n",
+ "print \"AreaNo \\t Weight(kip/ft) \\t Moment Arm(ft) \\t Moment (kip-ft/ft)\\n\"\n",
+ "M= numpy.zeros(6)\n",
+ "for i in range(0,6):\n",
+ " M[i]=W[i]*MA[i];\n",
+ " Vsum=Vsum+W[i];\n",
+ " Msum=Msum+M[i];\n",
+ " print round(AN[i],2),\"\\t\\t \",round(W[i],2),\"\\t \\t \\t \",MA[i],\"\\t \\t \\t \",M[i],\"\\n\"\n",
+ "\n",
+ "FSO=(Msum)/Mo;\n",
+ "if FSO>2 :\n",
+ " print \"safe in overturning with FS=\",round(FSO,2)\n",
+ "\n",
+ "#for sliding\n",
+ "phi2=20*math.pi/180;\n",
+ "V=Vsum\n",
+ "B=10.3; # in ft\n",
+ "c2=1.0; # in lb/ft^2\n",
+ "FSS=(V*math.tan(2/3.0*phi2)+B*2/3.0*c2)/Ph;\n",
+ "print \"safe in sliding with FS=\",round(FSS,2),\"\\n\"\n",
+ "e=B/2.0-(Msum-Mo)/V;\n",
+ "qtoe=V/B*(1+6*e/B); # in kip/ft**2\n",
+ "print round(qtoe,2),\" is soil pressure at toe in kip/ft**2\"\n",
+ "qheel=V/B*(1-6*e/B); # in kip/ft**2\n",
+ "print round(qheel,2),\" is soil pressure at heel in kip/ft**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "AreaNo \t Weight(kip/ft) \t Moment Arm(ft) \t Moment (kip-ft/ft)\n",
+ "\n",
+ "1.0 \t\t 0.9 \t \t \t 1.783 \t \t \t 1.6047 \n",
+ "\n",
+ "2.0 \t\t 3.38 \t \t \t 2.8 \t \t \t 9.45 \n",
+ "\n",
+ "3.0 \t\t 5.91 \t \t \t 5.3 \t \t \t 31.3018 \n",
+ "\n",
+ "4.0 \t\t 3.86 \t \t \t 5.15 \t \t \t 19.89445 \n",
+ "\n",
+ "5.0 \t\t 4.76 \t \t \t 7.05 \t \t \t 33.5862 \n",
+ "\n",
+ "6.0 \t\t 2.72 \t \t \t 9.55 \t \t \t 26.00465 \n",
+ "\n",
+ "safe in overturning with FS= 3.38\n",
+ "safe in sliding with FS= 1.94 \n",
+ "\n",
+ "3.51 is soil pressure at toe in kip/ft**2\n",
+ "0.67 is soil pressure at heel in kip/ft**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.4:Pg-372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.4\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "Msum=0;#sum of moment\n",
+ "Vsum=0;#sum of force\n",
+ "H=5+1.5;#Hdash in m\n",
+ "phi=32*math.pi/180 # angle in degree\n",
+ "Gamma=18.5; # in KN/m^3\n",
+ "Ka=0.424;\n",
+ "Pa=1/2.0*Gamma*H**2*Ka; # in KN/m\n",
+ "Ph=Pa*math.cos(15*math.pi/180+2/3.0*phi); # in KN/m\n",
+ "Mo=Ph*H/3.0; # moment\n",
+ "AN=[1,2,3,4,5];#area number\n",
+ "A=[4.36, 3.42, 0.77, 2.8, 2.8];#area\n",
+ "W=[102.81, 80.64, 18.16, 66.02, 93.14];#weight\n",
+ "MA=[2.18, 1.37, 0.98, 1.75, 2.83];#moment arm\n",
+ "print \"AreaNo \\t Area(m**2) \\t Weight(kN/m) \\t Moment Arm(m) \\t Moment (kN-m/m)\\n\"\n",
+ "M= numpy.zeros(5)\n",
+ "for i in range(0,5):\n",
+ " M[i]=W[i]*MA[i];\n",
+ " Vsum=Vsum+W[i];\n",
+ " Msum=Msum+M[i];\n",
+ " print round(AN[i],2),\"\\t\\t \",round(A[i],2),\" \\t \\t\",round(W[i],2),\"\\t \\t \\t \",MA[i],\"\\t \\t \\t \",M[i],\"\\n\"\n",
+ "\n",
+ "FSO=Msum/Mo;\n",
+ "if FSO>2 :\n",
+ " print \"safe in overturning with FS=\",round(FSO,2),\"\\n\"\n",
+ "\n",
+ "#for sliding\n",
+ "phi2=24*math.pi/180;\n",
+ "V=Vsum\n",
+ "B=3.5; # in m\n",
+ "c2=30; # in KN/m^2\n",
+ "Pp=1/2.0*2.37*18*1.5**2+2*30*1.54*1.5;\n",
+ "FSS=(V*math.tan(2/3.0*phi2)+B*2/3.0*c2+Pp)/Ph;\n",
+ "print \"safe in sliding with FS=\",round(FSS,2),\"\\n\"\n",
+ "print \"if Pp is ignored then FS=1.37\"\n",
+ "e=B/2.0-(Msum-Mo)/V;\n",
+ "qtoe=V/B*(1+6*e/B); # in kN/m**2\n",
+ "print round(qtoe,2),\"soil pressure at toe in kN/m**2\"\n",
+ "qheel=V/B*(1-6*e/B); # in kN/m**2\n",
+ "print round(qheel,2),\"soil pressure at heel in kN/m**2\"\n",
+ "print \"there is difference in answer due to rounding off error\"\n",
+ "\n",
+ "# there is difference in answer due to rounding off error\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "AreaNo \t Area(m**2) \t Weight(kN/m) \t Moment Arm(m) \t Moment (kN-m/m)\n",
+ "\n",
+ "1.0 \t\t 4.36 \t \t102.81 \t \t \t 2.18 \t \t \t 224.1258 \n",
+ "\n",
+ "2.0 \t\t 3.42 \t \t80.64 \t \t \t 1.37 \t \t \t 110.4768 \n",
+ "\n",
+ "3.0 \t\t 0.77 \t \t18.16 \t \t \t 0.98 \t \t \t 17.7968 \n",
+ "\n",
+ "4.0 \t\t 2.8 \t \t66.02 \t \t \t 1.75 \t \t \t 115.535 \n",
+ "\n",
+ "5.0 \t\t 2.8 \t \t93.14 \t \t \t 2.83 \t \t \t 263.5862 \n",
+ "\n",
+ "safe in overturning with FS= 2.53 \n",
+ "\n",
+ "safe in sliding with FS= 2.7 \n",
+ "\n",
+ "if Pp is ignored then FS=1.37\n",
+ "195.67 soil pressure at toe in kN/m**2\n",
+ "10.48 soil pressure at heel in kN/m**2\n",
+ "there is difference in answer due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6:Pg-393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.6\n",
+ "import math\n",
+ "Sv=2; # in ft\n",
+ "Sh=3; # in ft\n",
+ "w=3/12.0; # in inch\n",
+ "fy=35000*144;\n",
+ "FSb=3;\n",
+ "pi=math.pi;\n",
+ "phi=36*pi/180;\n",
+ "Gamma1=105; # in lb/ft^3\n",
+ "H=30;\n",
+ "t=Gamma1*H*Sv*Sh*FSb/w/fy*(math.tan(pi/4-phi/2))**2;\n",
+ "t=t*12; #in inch\n",
+ "print round(t,2),\" is thickness in inches\"\n",
+ "t=t+0.001*50;\n",
+ "print \"so take thickness=0.2 inches\"\n",
+ "#for tie length\n",
+ "z=[5,10,15,20,25,30];\n",
+ "TL=[38.45, 35.89, 33.34, 30.79, 28.25, 25.7];#tie length\n",
+ "print \"z(ft)\\t Tie Length (ft)\\n\"\n",
+ "for i in range(0,6):\n",
+ " print z[i],\"\\t\",TL[i]\n",
+ "\n",
+ "print \"use tie length=40ft\"\n",
+ "#check for over turning\n",
+ "\n",
+ "z=30/3.0;\n",
+ "x1=20;\n",
+ "L=40;\n",
+ "Ka=0.26;\n",
+ "Pa=1/2.0*Gamma1*Ka*H**2; # in kip/ft**2\n",
+ "W1=Gamma1*H*L;\n",
+ "FSO=W1*x1/(Pa*z);\n",
+ "print round(FSO,2),\" is factor of safety is\" \n",
+ "print \"since FS>3 structure is safe\"\n",
+ "#check for sliding\n",
+ "k=2/3.0;\n",
+ "Pa=12285; # in kip/ft**2\n",
+ "FSS=W1*math.tan(k*phi)/Pa;\n",
+ "if FSS>3 :\n",
+ " print \"safe in sliding with FS=\",round(FSS,2)\n",
+ "\n",
+ "#check for bearing\n",
+ "Mr=126000*20; # in lb-ft/ft\n",
+ "Mo=12285*10; # in lb-ft/ft\n",
+ "V=126000;\n",
+ "e=L/2-Mr/V+Mo/V;\n",
+ "L1=L-2*e;#Ldash\n",
+ "c2=1000; # in lb/ft^2\n",
+ "Nc=25.8;\n",
+ "Gamma2=110; # in lb/ft^3\n",
+ "Ny=16.72;\n",
+ "qult=c2*Nc+1/2.0*Gamma2*L1*Ny\n",
+ "sigma0=Gamma1*H; # in lb/ft^2\n",
+ "FSB=qult/sigma0;\n",
+ "if FSB>5 :\n",
+ " print \"bearing is safe with FS=\",round(FSB,2)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.14 is thickness in inches\n",
+ "so take thickness=0.2 inches\n",
+ "z(ft)\t Tie Length (ft)\n",
+ "\n",
+ "5 \t38.45\n",
+ "10 \t35.89\n",
+ "15 \t33.34\n",
+ "20 \t30.79\n",
+ "25 \t28.25\n",
+ "30 \t25.7\n",
+ "use tie length=40ft\n",
+ "20.51 is factor of safety is\n",
+ "since FS>3 structure is safe\n",
+ "safe in sliding with FS= 4.57\n",
+ "safe in bearing with FS= 19.87\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7:Pg-397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 8.7\n",
+ "import math\n",
+ "import numpy\n",
+ "pi=math.pi;\n",
+ "phi=36.0*pi/180;\n",
+ "Ka=(math.tan(pi/4-phi/2))**2;\n",
+ "z=[8.0, 12.0, 16.0]; # in ft\n",
+ "sigmaG=80*12.0; # in lb/ft^2\n",
+ "Gamma1=110.0; # in lb/ft^3\n",
+ "FS=1.5;\n",
+ "Sv=numpy.zeros(3)\n",
+ "for i in range(0,3):\n",
+ " Sv[i]=sigmaG/Gamma1/z[i]/Ka/FS*12.0;\n",
+ " print \"for z=\",z[i],\" ft Sv = \",round(Sv[i],2),\" inches\\n\"\n",
+ "\n",
+ "z=[16.0,56.0,76.0,96.0,112.0,144.0,176.0];\n",
+ "zf=numpy.zeros(7)\n",
+ "k2=numpy.zeros(7)\n",
+ "L=numpy.zeros(7)\n",
+ "for i in range(0,7):\n",
+ " zf[i]=z[i]/12.0;#z in ft\n",
+ "Sv=[1.67,1.67,1.67,1.67,1.33,1.33,1.33];\n",
+ "k=[7.48,5.78,4.93,4.08,3.4,2.04,0.68];#0.51(H-z)\n",
+ "print \"z(in) z(ft) Sv(ft) 0.51(H-z)(ft) 0.438Sv(ft) L(ft) \\n\"\n",
+ "for i in range(0,7):\n",
+ " k2[i]=0.438*Sv[i];#0.438Sv\n",
+ " L[i]=k[i]+k2[i];\n",
+ " print round(z[i],2),\"\\t \\t\",round(zf[i],2),\"\\t \",round(Sv[i],2),\"\\t \\t \",round(k[i],2),\"\\t \\t \\t\",round(k2[i],2),\"\\t \\t \\t \",round(L[i],2)\n",
+ "\n",
+ "Sv=20/12.0;\n",
+ "Ka=0.26;\n",
+ "FS=1.5;\n",
+ "l1=Sv*Ka*FS/4/math.tan(2/3.0*phi);\n",
+ "if l1<3:\n",
+ " l1=3;\n",
+ " print l1,\"length in ft\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for z= 8.0 ft Sv = 33.62 inches\n",
+ "\n",
+ "for z= 12.0 ft Sv = 22.41 inches\n",
+ "\n",
+ "for z= 16.0 ft Sv = 16.81 inches\n",
+ "\n",
+ "z(in) z(ft) Sv(ft) 0.51(H-z)(ft) 0.438Sv(ft) L(ft) \n",
+ "\n",
+ "16.0 \t \t1.33 \t 1.67 \t \t 7.48 \t \t \t0.73 \t \t \t 8.21\n",
+ "56.0 \t \t4.67 \t 1.67 \t \t 5.78 \t \t \t0.73 \t \t \t 6.51\n",
+ "76.0 \t \t6.33 \t 1.67 \t \t 4.93 \t \t \t0.73 \t \t \t 5.66\n",
+ "96.0 \t \t8.0 \t 1.67 \t \t 4.08 \t \t \t0.73 \t \t \t 4.81\n",
+ "112.0 \t \t9.33 \t 1.33 \t \t 3.4 \t \t \t0.58 \t \t \t 3.98\n",
+ "144.0 \t \t12.0 \t 1.33 \t \t 2.04 \t \t \t0.58 \t \t \t 2.62\n",
+ "176.0 \t \t14.67 \t 1.33 \t \t 0.68 \t \t \t0.58 \t \t \t 1.26\n",
+ "3 length in ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter09.ipynb b/Principles_Of_Foundation_Engineering/Chapter09.ipynb
new file mode 100755
index 00000000..8264fd98
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter09.ipynb
@@ -0,0 +1,512 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d9cb29be0932a6e1135cb07bf43a7e4c55a006ff68a1efd4e530482a24833ad9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter09:Sheet Pile Walls"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1:Pg-419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.1\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "sall=30;#sigma allowed\n",
+ "pi=math.pi;\n",
+ "zbar=12.1; # in ft\n",
+ "L1=10.0; # in ft\n",
+ "L2=20.0; #in ft\n",
+ "Gamma=0.12; # in lb/ft^3\n",
+ "Gamma1=0.1294-0.0624; # in lb/ft^3\n",
+ "phi=40*pi/180; # angle given\n",
+ "Ka=(math.tan(pi/4-phi/2))**2;\n",
+ "Kp=(math.tan(pi/4+phi/2))**2;\n",
+ "s1=Gamma*L1*Ka;#sigma1 in Kip/ft\n",
+ "s2=Gamma*L1*Ka+Gamma1*L2*Ka;#sigma2 in Kip/ft\n",
+ "L3=s2/(Gamma1*(Kp-Ka)); # in ft\n",
+ "print round(L3,2),\"is length in ft\"\n",
+ "P=1/2.0*s1*L1+s1*L2+1/2.0*(s2-s1)*L2+1/2.0*s2*L3;# in Kip/ft\n",
+ "print round(P,2),\" is force in kip/ft\"\n",
+ "s5=Gamma*L1*Kp+Gamma1*L2*Kp+Gamma*L3*(Kp-Ka);#sigma5 in Kip/ft\n",
+ "print round(s5,2),\" is pressure in kip/ft\"\n",
+ "A1=s5/(Gamma1*(Kp-Ka)); # in ft^2\n",
+ "A2=8.0*P/(Gamma1*(Kp-Ka)) # in ft^2\n",
+ "A3=6.0*P*(2.0*zbar*(Gamma1*(Kp-Ka))+s5)/(Gamma1*(Kp-Ka))**2.0 # in ft^2\n",
+ "A4=P*(6.0*zbar*s5+4.0*P)/(Gamma1*(Kp-Ka))**2.0 # in ft^2\n",
+ "print \"A1,A2,A3,A4 respectively is \",round(A1,1),round(A2,2),round(A3,2),round(A4,2)\n",
+ "print \"slight error due to rounding off error\"\n",
+ "#part(b)\n",
+ "def f(x):\n",
+ " return x**4+41.7*x**3-270.5*x**2-13363*x-106863\n",
+ "[x]=fsolve(f,20);\n",
+ "D=1.88+x;\n",
+ "print round(D,2),\" is value of D, in ft\"\n",
+ "TL=L1+L2+1.3*D;\n",
+ "print round(TL,2),\" is total length in ft\"\n",
+ "#partc\n",
+ "z=math.sqrt(2*P/(Gamma1*(Kp-Ka)));#zdash\n",
+ "Mmax=P*(z+zbar)-1/2.0*(Gamma1*(Kp-Ka))*z**2*z/3.0;\n",
+ "S=Mmax*12/sall;\n",
+ "print round(S,2),\"is section modulus in in^3/ft\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.88 is length in ft\n",
+ "9.96 is force in kip/ft\n",
+ "12.67 is pressure in kip/ft\n",
+ "A1,A2,A3,A4 respectively is 43.2 271.33 13708.16 110880.89\n",
+ "slight error due to rounding off error\n",
+ "21.68 is value of D, in ft\n",
+ "58.19 is total length in ft\n",
+ "70.06 is section modulus in in^3/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2:Pg-426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.2\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "sall=172.5*1000;#sigma allowed in KN/m^2\n",
+ "pi=math.pi;\n",
+ "c=47.0; # in KN/m^2\n",
+ "zbar=1.78; # in m\n",
+ "L1=2.0; #in m\n",
+ "L2=3.0; # in m\n",
+ "Gamma=15.9; # in KN/m^3\n",
+ "Gamma1=19.33-9.81; # in KN/m^3\n",
+ "phi=32*pi/180;\n",
+ "Ka=(math.tan(pi/4-phi/2))**2;\n",
+ "Kp=(math.tan(pi/4+phi/2))**2;\n",
+ "s1=Gamma*L1*Ka;#sigma1 in KN/m^2\n",
+ "s2=Gamma*L1*Ka+Gamma1*L2*Ka;#sigma2 in KN/m^2\n",
+ "P=1/2.0*s1*L1+s1*L2+1/2.0*(s2-s1)*L2; # in kN/ft\n",
+ "print round(P,2),\" is force in kN/m\"\n",
+ "def f(x):\n",
+ " return 127.4*x**2-104.4*x-357.15\n",
+ "[x]=fsolve(f,2);\n",
+ "D=x;\n",
+ "print round(D,2),\" is value of D in m\"\n",
+ "print round(D*1.5,2),\"actual D in m\"\n",
+ "L4=D*(4*c-(Gamma*L1+Gamma1*L2)-P/D)/4/c;\n",
+ "print round(L4,2),\" is length in m\"\n",
+ "s6=4*c-(Gamma*L1+Gamma1*L2);#sigma6 in KN/m^2\n",
+ "s7=4*c+(Gamma*L1+Gamma1*L2);#sigma7 in KN/m^2\n",
+ "z=P/s6;#zdash\n",
+ "Mmax=P*(z+zbar)-1/2.0*s6*z**2; # in KN-m/m\n",
+ "S=Mmax*12.0/sall; # in m^3/m\n",
+ "print round(S,4),\" is section modulus in m**3/m\"\n",
+ "print \"is slight error due to rounding off error\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "52.25 is force in kN/m\n",
+ "2.13 is value of D in m\n",
+ "3.2 actual D in m\n",
+ "1.17 is length in m\n",
+ "0.0072 is section modulus in m**3/m\n",
+ "is slight error due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3:Pg-433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.3\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "pi=math.pi;\n",
+ "zbar=2.23; # in m\n",
+ "L1=2.0; # in m\n",
+ "L2=3.0; # in m\n",
+ "Gamma=15.9; # in KN/m^3\n",
+ "Gamma1=19.33-9.81; # in KN/m^3\n",
+ "phi=32*pi/180;\n",
+ "Ka=(math.tan(pi/4-phi/2))**2;\n",
+ "Kp=(math.tan(pi/4+phi/2))**2;\n",
+ "s1=Gamma*L1*Ka;#sigma1 in KN/m^2\n",
+ "s2=Gamma*L1*Ka+Gamma1*L2*Ka;#sigma2 in KN/m^2\n",
+ "L3=s2/(Gamma1*(Kp-Ka)); # in m\n",
+ "print round(L3,2),\"length in m\"\n",
+ "P=1/2.0*s1*L1+s1*L2+1/2.0*(s2-s1)*L2+1/2.0*s2*L3;\n",
+ "print round(P,2),\"force in kN/m\"\n",
+ "def f(x):\n",
+ " return x**3+6.99*x**2-14.55\n",
+ "[x]=fsolve(f,1.4);\n",
+ "D=L3+x;\n",
+ "print round(D,2),\"value of D in m\"\n",
+ "AL=1.4*D;\n",
+ "print round(AL,2),\"actual length in m\"\n",
+ "#partb\n",
+ "L4=1.4;\n",
+ "F=P-1/2.0*(Gamma1*(Kp-Ka)*L4**2);\n",
+ "print round(F,2),\"anchor force in kN/m\"\n",
+ "#partc\n",
+ "def f(x):\n",
+ " return x**2+6.682*x-14.44\n",
+ "[x]=fsolve(f,1.7);\n",
+ "z=x+2;\n",
+ "Mmax=-1/2.0*s1*L1*(x+2/3.0)+F*(x+1)-s1*x*x/2-1/2.0*Ka*Gamma1*x**3/3.0;\n",
+ "print round(Mmax,2),\" is maximum moment in kN-m/m\" \n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.66 length in m\n",
+ "58.38 force in kN/m\n",
+ "1.98 value of D in m\n",
+ "2.78 actual length in m\n",
+ "30.88 anchor force in kN/m\n",
+ "43.74 is maximum moment in kN-m/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4:Pg-439"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.4\n",
+ "\n",
+ "Gamma=15.9; # in KN/m^3\n",
+ "Gamma1=19.33-9.81; # in KN/m^3\n",
+ "GD=0.23; # from fig. 9.16\n",
+ "CDL1=1.172; # from fig. 9.19\n",
+ "L1=2; # in m\n",
+ "L2=3; # in m\n",
+ "Dth=(L1+L2)*GD*CDL1;\n",
+ "print round(Dth,2),\"theoritical depth in m\"\n",
+ "Dac=1.4*Dth;\n",
+ "print round(Dac,2),\"actual depth in m\"\n",
+ "print \"approximate it as 2 m\"\n",
+ "#part(b)\n",
+ "CFL1=1.073;\n",
+ "GF=0.07;\n",
+ "Gammaa=(Gamma*L1**2+Gamma1*L2**2+2*Gamma*L1*L2)/(L1+L2)**2; # in KN/m^3\n",
+ "F=Gammaa*(L1+L2)**2*GF*CFL1; # in KN/m\n",
+ "print round(F,2),\"force in kN/m\"\n",
+ "#part(c)\n",
+ "GM=0.021; # from fig. 9.18\n",
+ "CML1=1.036; # from fig. 9.21\n",
+ "Mmax=Gammaa*(L1+L2)**3*GM*CML1; # in kN-m/m\n",
+ "print round(Mmax,2),\"maximum moment in kN-m/m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.35 theoritical depth in m\n",
+ "1.89 actual depth in m\n",
+ "approximate it as 2 m\n",
+ "25.54 force in kN/m\n",
+ "36.99 maximum moment in kN-m/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5:Pg-442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.5\n",
+ "import math\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy\n",
+ "Mmax=43.72; # in kN-m/m\n",
+ "sp=[\"PSA-31\",\"PSA-23\"];#sheet pile\n",
+ "H=[7.9,7.9] # in m\n",
+ "I=[4.41e-6,5.63e-6]; # in m^4/m\n",
+ "p=[0.00466,0.00365];\n",
+ "S=[10.8e-5,12.8e-5]; # in m^3/m\n",
+ "Md=[18.63,22.08]; # kn-m/m\n",
+ "Logp=numpy.zeros(2)\n",
+ "k=numpy.zeros(2)\n",
+ "print \"SheetPile I(m**4/m) H(m) p\\t Logp S(m**3/m) Md(kN-m/m) Md/Mmax \\n\"\n",
+ "for i in range(0,2):\n",
+ " Logp[i]=math.log10(p[i]);\n",
+ " k[i]=Md[i]/Mmax;\n",
+ " print sp[i],\"\\t \",I[i],\" \",H[i],\" \",p[i],\" \",round(Logp[i],2),\" \",S[i],\" \",Md[i],\"\\t \",round(k[i],3)\n",
+ " \n",
+ "\n",
+ "plt.plot(Logp,k);\n",
+ "plt.title(\"Ex9.5\")\n",
+ "plt.xlabel(\"LogP\")\n",
+ "plt.ylabel(\"Md/Mmax\")\n",
+ "plt.show()\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "SheetPile I(m**4/m) H(m) p\t Logp S(m**3/m) Md(kN-m/m) Md/Mmax \n",
+ "\n",
+ "PSA-31 \t 4.41e-06 7.9 0.00466 -2.33 0.000108 18.63 \t 0.426\n",
+ "PSA-23 \t 5.63e-06 7.9 0.00365 -2.44 0.000128 22.08 \t 0.505\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6:Pg-445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.6\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "pi=math.pi;\n",
+ "R=0.6;\n",
+ "L1=10.0; # in ft\n",
+ "L2=20.0; #in ft\n",
+ "Gammasat=122.4; # in lb/ft^3\n",
+ "l1=5; # in ft\n",
+ "Gamma=110.0; # in lb/ft^3\n",
+ "C=0.68;\n",
+ "L=L1+L2; # in ft\n",
+ "Gammaw=62.4; # in lb/ft^3\n",
+ "Gamma1=Gammasat-Gammaw;#gammadash in lb/ft^3\n",
+ "Gammaav=(Gamma*L1+Gamma1*L2)/(L1+L2); # in lb/ft^3\n",
+ "phi=35.0*pi/180;\n",
+ "Ka=(math.tan(pi/4-phi/2))**2;\n",
+ "sa=C*Ka*Gammaav*L;#sigmaa in lb/ft^2\n",
+ "sp=R*sa;#sigmap # in lb/ft^2\n",
+ "def f(x):\n",
+ " return x**2+50*x-1000\n",
+ "[x]=fsolve(f,15);\n",
+ "D=x;#in ft\n",
+ "print round(D,2),\" is depth in ft\"\n",
+ "R=L/D*(L-2*l1)/(2*L+D-2*l1);\n",
+ "print \"value of R=\",round(R,2),\" is OK\\n\"\n",
+ "#partb\n",
+ "F=sa*(L-R*D); # in lb/ft\n",
+ "print round(F,2),\" is Force in lb/ft\"\n",
+ "#partc\n",
+ "Mmax=0.5*sa*L**2*((1-R*D/L)**2-(2*l1/L)*(1-R*D/L)); # in lb-ft/ft\n",
+ "print round(Mmax,2),\"maximum moment lb-ft/ft\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "15.31 is depth in ft\n",
+ "value of R= 0.6 is OK\n",
+ "\n",
+ "8821.24 is Force in lb/ft\n",
+ "47693.02 maximum moment lb-ft/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7:Pg-451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.7\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "\n",
+ "pi=math.pi;\n",
+ "zbar=3.2; # in m\n",
+ "c=41; # in KN/m^2\n",
+ "L1=3; # in m\n",
+ "L2=6; # in m\n",
+ "Gamma=17;# in KN/m^3\n",
+ "Gamma1=20-9.81; # in KN/m^3\n",
+ "phi=35*pi/180;\n",
+ "Ka=(math.tan(pi/4-phi/2))**2;\n",
+ "Kp=(math.tan(pi/4+phi/2))**2;\n",
+ "s1=Gamma*L1*Ka;#sigma1 in kN/m**2\n",
+ "s2=Gamma*L1*Ka+Gamma1*L2*Ka;#sigma2 in kN/m**2\n",
+ "P=1/2.0*s1*L1+s1*L2+1/2.0*(s2-s1)*L2;\n",
+ "print round(P,2),\"Force in kN/m\"\n",
+ "s6=4*c-(Gamma*L1+Gamma1*L2);#sigma6 in kN/m**2\n",
+ "print round(s6,2),\"pressure in kN/m**2\"\n",
+ "def f(x):\n",
+ " return x**2+15*x-25.43\n",
+ "[x]=fsolve(f,1.6);\n",
+ "D=x; # in m\n",
+ "print round(D,1),\"depth in m\"\n",
+ "F=P-s6*D; # in kN/m\n",
+ "print round(F,2),\"force in kN/m\"\n",
+ "print \"slight error due to rounding off\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "153.36 Force in kN/m\n",
+ "51.86 pressure in kN/m**2\n",
+ "1.5 depth in m\n",
+ "73.61 force in kN/m\n",
+ "slight error due to rounding off\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 9.8\n",
+ "import math\n",
+ "pi=math.pi;\n",
+ "Gamma=105.0; # in lb/ft^3\n",
+ "Cov=14.0;\n",
+ "B=15/12.0; # in inch\n",
+ "Ka=0.26;\n",
+ "phi=35.0*pi/180; # given angle in degree\n",
+ "H=37.5/12; # in inch\n",
+ "h=15/12.0; # in inch\n",
+ "t=6/12.0; # in inch\n",
+ "Gc=150.0;#gamma concrete in lb/ft^3\n",
+ "W=H*t*Gc; # in lb/ft\n",
+ "k=4.5;#kp*cos(delta)\n",
+ "Pu=1/2.0*Gamma*H**2*(k-Ka*math.cos(phi)); # in lb/ft\n",
+ "print round(Pu,2),\"force in lb/ft\"\n",
+ "Pus=((Cov+1)/(Cov+H/h))*Pu; # in lb/ft\n",
+ "print round(Pus,2),\"force in lb/ft\"\n",
+ "Be=0.227*(H+h)+B;\n",
+ "Pu=Pus*Be; # in lb/ft\n",
+ "print round(Pu,2),\" is resistance of anchor plate in lb/ft\"\n",
+ "\n",
+ "# The answers in the book are different due to approximation while here calculations are precise"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2197.94 force in lb/ft\n",
+ "1998.12 force in lb/ft\n",
+ "4482.04 is resistance of anchor plate in lb/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter10.ipynb b/Principles_Of_Foundation_Engineering/Chapter10.ipynb
new file mode 100755
index 00000000..3af11efd
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter10.ipynb
@@ -0,0 +1,211 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:54ddb8c76d55d78e9f237ddb7f5823ac10a3585adf1b3932a3b8cc9352fd8e76"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Braced Cuts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.1: pg-511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10.1 : \n",
+ "\n",
+ "Gamma=18.0;\n",
+ "H=7.0;\n",
+ "sigmaa=0.3*Gamma*H;\n",
+ "print\"maximum pressure intensity in kN/m^2 is\",sigmaa ;\n",
+ "#partb\n",
+ "A=54.02;\n",
+ "B1=1.0/2*1.75*37.8+37.8*1.75-A;\n",
+ "B2=45.2;\n",
+ "C=54.02;\n",
+ "s=3.0; #spacing\n",
+ "Pa=C*s;\n",
+ "print \"strut loads in kN is\",Pa\n",
+ "Pb=(B1+B2)*s;\n",
+ "print \"strut loads in kN is\",Pb\n",
+ "Pc=C*s;\n",
+ "print \"strut loads in kN is\", Pc\n",
+ "#partc\n",
+ "Me=45.2*1.196-37.8*1.196*1.196/2;#Me=Mmax\n",
+ "Sall=170e3;#sigmaall\n",
+ "S=Me/Sall;\n",
+ "print \"section modulus in m^3/m is \",round(S,7)\n",
+ "#partd\n",
+ "Mmax=(B1+B2)*s**2.0/8;\n",
+ "S=Mmax/Sall;\n",
+ "print\"section modulus in m^3/m is\",round(S,6)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum pressure intensity in kN/m^2 is 37.8\n",
+ "strut loads in kN is 162.06\n",
+ "strut loads in kN is 271.215\n",
+ "strut loads in kN is 162.06\n",
+ "section modulus in m^3/m is 0.000159\n",
+ "section modulus in m^3/m is 0.000598\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.2:pg-514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10.2\n",
+ "\n",
+ "import math\n",
+ "phi=35.0;\n",
+ "Gamma=17.0; # kN/m^3\n",
+ "s=4; #spacing in m\n",
+ "H=9;\n",
+ "Ka=(math.tan(45*(math.pi/180)-35*(math.pi/(180.0*2))))**2\n",
+ "sigma=0.65*Gamma*Ka*H\n",
+ "A=sigma*5*5.0/6;\n",
+ "B1=sigma*5-A;\n",
+ "C=sigma*4*4/6.0; \n",
+ "B2=sigma*s-C;\n",
+ "Pa=A*s;\n",
+ "Pb=(B1+B2)*s;\n",
+ "Pc=C*s;\n",
+ "print \"strut loads at A in kN is\",round(Pa,2)\n",
+ "\n",
+ "print \"strut loads at B in kN is\",round(Pb,2)\n",
+ "\n",
+ "print \"strut loads at C in kN is\",round(Pc,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "strut loads at A in kN is 449.17\n",
+ "strut loads at B in kN is 233.57\n",
+ "strut loads at C in kN is 287.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.3:pg-523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10.3\n",
+ "\n",
+ "import math\n",
+ "q=0;\n",
+ "Gamma=17; # in KN/m^3\n",
+ "B=3.0 # in meter\n",
+ "L=20; # in meter\n",
+ "c=30;# in KN/m^3\n",
+ "T=1.5;# in meter\n",
+ "H=5.5;# in meter\n",
+ "B1=B/2;#B'\n",
+ "B11=T*math.sqrt(2);#B''\n",
+ "FS=(5.14*c*(1+B11*0.2/L)+c*H/B1)/(Gamma*H+q) # from equation of factor of safety\n",
+ "print\"factor of safety is\",round(FS,2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "factor of safety is 2.86\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10.4:pg-529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 10.4\n",
+ "\n",
+ "\n",
+ "L1=5; # in meter\n",
+ "L2=4;# in meter\n",
+ "B=5;# in meter\n",
+ "h=4.5;# in meter\n",
+ "icr=1 #\n",
+ "iexit= 0.54*h/L2\n",
+ "FOS=icr/iexit # Factor of safety\n",
+ "print \"The Factory of safety is\",round(FOS,3)\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Factory of safety is 1.646\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter11.ipynb b/Principles_Of_Foundation_Engineering/Chapter11.ipynb
new file mode 100755
index 00000000..0afdb4a0
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter11.ipynb
@@ -0,0 +1,650 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a4054b3d6b79658bcd763c43dc94ca6de4cd49698c12f912e4c83a9a61f47154"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11:Pile Foundations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.1:Pg-532"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.1\n",
+ "import math\n",
+ "\n",
+ "#parta\n",
+ "phi=30.0; # angle in degree\n",
+ "pa=2000.0; \n",
+ "q=100*50/1000.0;\n",
+ "Nq=55.0;\n",
+ "Ap=16*16/16/12; # area in ft^2\n",
+ "Qp=Ap*q*Nq; # in kip\n",
+ "qp=0.4*pa*Nq*math.tan(phi*math.pi/180)*Ap; # in lb\n",
+ "print round(Qp,2),\"ultimate load in lb\"\n",
+ "print round(qp/1000,2),\"ultimate load in kip\"\n",
+ "print \"there is change in answer because of calculation mistake in the book\"\n",
+ "\n",
+ "#partb\n",
+ "Nsigma=36;\n",
+ "Ap=16*16.0/12.0/12;\n",
+ "q=110*50.0/1000;\n",
+ "Qp=Ap*q*Nsigma*((1+2.0*(1-math.sin(phi*math.pi/180)))/3); # in kip\n",
+ "print round(Qp,2),\"ultimate load in kip\"\n",
+ "#partc\n",
+ "Nq=18.4;\n",
+ "Qp=Ap*q*Nq; # in kip\n",
+ "print round(Qp,2),\"ultimate load in kip\"\n",
+ "\n",
+ "# ANSWER IN THE BOOK IS WRONG"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "275.0 ultimate load in lb\n",
+ "25.4 ultimate load in kip\n",
+ "there is change in answer because of calculation mistake in the book\n",
+ "234.67 ultimate load in kip\n",
+ "179.91 ultimate load in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.2:Pg-533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.2\n",
+ "\n",
+ "import math\n",
+ "#parta\n",
+ "K=1.3;\n",
+ "f0=0;\n",
+ "Delta=0.8*30; # in ft\n",
+ "D=16.0/12; # in ft\n",
+ "L1=50.0;\n",
+ "p=4*16/12.0; # in ft\n",
+ "Gamma=110/1000.0; # in lb/ft^3\n",
+ "L=15*D; # in ft\n",
+ "sigma=Gamma*L; # in kip/ft^2\n",
+ "f20=K*sigma*math.tan(Delta*math.pi/180); # kip/ft^2\n",
+ "Qs=(f0+f20)/2*(p*L)+f20*p*(L1-L);\n",
+ "print round(Qs,2),\"ultimate load in kip\"\n",
+ "#partb\n",
+ "FS=4; # factor of safety\n",
+ "Qp=56.45/3+234.7/3+179.9/3; # in kip\n",
+ "Qu=Qs+Qp; # in kip\n",
+ "Qall=Qu/FS; # in kip\n",
+ "print round(Qall,2),\"is allowed load in kip\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "271.65 ultimate load in kip\n",
+ "107.17 is allowed load in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.3:Pg-534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.3\n",
+ "import math\n",
+ "K=0.25;\n",
+ "Ap=16*16.0/12/12; # area in ft^2\n",
+ "phi=30*math.pi/180;\n",
+ "Nq=25;\n",
+ "q=110*50.0/1000; # in kip\n",
+ "sigmao=q/2; # in kip/ft^2\n",
+ "p=4*16.0/12; # in ft\n",
+ "L=50; # in ft\n",
+ "FS=4; # factor of safety\n",
+ "Qu=q*Nq*Ap+K*sigmao*math.tan(0.8*phi)*p*L; # in kip\n",
+ "Qall=Qu/FS; # in kip\n",
+ "print round(Qall,1),\"allowed load in kip\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "81.5 allowed load in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.4:Pg-535"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.4\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "FS=4; # factor of safety\n",
+ "Ap=0.1295; # area in m^2\n",
+ "Nc=9;\n",
+ "cu2=100;\n",
+ "Qp=Ap*Nc*cu2; # in kN\n",
+ "D=[5, 10, 30]; # depth in m\n",
+ "avgD=[2.5, 7.5,20.0]; # average depth in m\n",
+ "sigma=[45.0, 110.5, 228.5]; # in KN/m^2\n",
+ "cu=[30, 30, 100]; # in kN/m^2\n",
+ "alpha=[0.6, 0.9, 0.725];\n",
+ "L=[5, 5, 20]; # in m\n",
+ "p=math.pi*0.406;\n",
+ "Qs=0; # in kN\n",
+ "cusig=numpy.zeros(3)\n",
+ "print round(Qp,2),\"bearing capacity in kN\"\n",
+ "print \"depth (m)\\t avg Depth(m)\\t avgVerticalStress(kN/m**2)\\t cu(kN/m**2)\\t cu/sigma\\t alpha\\n\"\n",
+ "for i in range(0,3):\n",
+ " cusig[i]=cu[i]/sigma[i];\n",
+ " Qs=Qs+alpha[i]*cu[i]*L[i]*p;\n",
+ " print round(D[i],2),\"\\t \\t \\t\",round(avgD[i],2),\"\\t \\t\",round(sigma[i],2),\"\\t\\t\\t \",round(cu[i],2),\"\\t \",round(cusig[i],2),\"\\t\\t \",round(alpha[i],2),\"\\n\"\n",
+ "print round(Qs,2),\"bearing capacity in kN\"\n",
+ "#part2\n",
+ "Lambda=0.136;\n",
+ "L=30;\n",
+ "fav=Lambda*(178.48+2*76.7);\n",
+ "Qs2=p*L*fav; # in kN\n",
+ "#part3\n",
+ "fav1=13;\n",
+ "fav2=31.9;\n",
+ "fav3=93.43;\n",
+ "Qs3=p*(fav1*5+fav2*5+fav3*20); # in kN\n",
+ "print round(Qs3,1),\"bearing capacity in kN\"\n",
+ "Qsavg=Qs/3+Qs2/3+Qs3/3; # in kN\n",
+ "Qu=Qp+Qsavg # in kN\n",
+ "Qall=Qu/FS; # in kN\n",
+ "print round(Qall,1),\"allowed bearing capacity in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "116.55 bearing capacity in kN\n",
+ "depth (m)\t avg Depth(m)\t avgVerticalStress(kN/m**2)\t cu(kN/m**2)\t cu/sigma\t alpha\n",
+ "\n",
+ "5.0 \t \t \t2.5 \t \t45.0 \t\t\t 30.0 \t 0.67 \t\t 0.6 \n",
+ "\n",
+ "10.0 \t \t \t7.5 \t \t110.5 \t\t\t 30.0 \t 0.27 \t\t 0.9 \n",
+ "\n",
+ "30.0 \t \t \t20.0 \t \t228.5 \t\t\t 100.0 \t 0.44 \t\t 0.72 \n",
+ "\n",
+ "2136.44 bearing capacity in kN\n",
+ "2669.7 bearing capacity in kN\n",
+ "573.6 allowed bearing capacity in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.5:Pg-538"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.5\n",
+ "\n",
+ "import numpy\n",
+ "D=[6, 12, 20]; # depth in m\n",
+ "fc=[34.34, 54.94, 70.63]; # in kN/m**2\n",
+ "alpha=[0.84, 0.71, 0.63];\n",
+ "dL=[6, 6, 8]; # in m\n",
+ "p=4*0.305;\n",
+ "Qs=0;\n",
+ "Q=numpy.zeros(3)\n",
+ "print \" depth(m)\\t fc(kN/m**2)\\t alpha \\t \\t deltaL(m)\\t Q(kN)\\n\"\n",
+ "for i in range (0,3):\n",
+ " Q[i]=alpha[i]*fc[i]*p*dL[i];\n",
+ " Qs=Q[i]+Qs;\n",
+ " print D[i],\"\\t\\t \",fc[i],\"\\t \",alpha[i],\"\\t \",dL[i],\"\\t\\t \",round(Q[i],2)\n",
+ "\n",
+ "print round(Qs),\"bearing force in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " depth(m)\t fc(kN/m**2)\t alpha \t \t deltaL(m)\t Q(kN)\n",
+ "\n",
+ "6 \t\t 34.34 \t 0.84 \t 6 \t\t 211.15\n",
+ "12 \t\t 54.94 \t 0.71 \t 6 \t\t 285.53\n",
+ "20 \t\t 70.63 \t 0.63 \t 8 \t\t 434.29\n",
+ "931.0 bearing force in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.6:Pg-545"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.6\n",
+ "\n",
+ "import math\n",
+ "L=21; # in m\n",
+ "Qwp=502-350; # in kN\n",
+ "Qws=350; # in kN\n",
+ "Ap=0.1045; # area in m^2\n",
+ "Ep=21e6; # in kN/m^2\n",
+ "epsilon=0.62;\n",
+ "Se1=(Qwp+epsilon*Qws)*L/Ap/Ep; # in m\n",
+ "#part2\n",
+ "Iwp=0.85;\n",
+ "qwp=152/Ap;\n",
+ "Es=25e3; # in kN/m^2\n",
+ "D=0.356; # in m\n",
+ "mus=0.35;\n",
+ "Se2=qwp*D/Es*Iwp*(1-mus**2); # in m\n",
+ "#part3\n",
+ "p=1.168;\n",
+ "Iws=2+0.35*math.sqrt(L/D);\n",
+ "Se3=Qws/p/L*D/Es*Iws*(1-mus**2); # in m\n",
+ "Se=Se1+Se2+Se3; # in m\n",
+ "print round(Se*1000,1),\"settlement in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "19.8 settlement in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.7:Pg-560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.7\n",
+ "\n",
+ "Ep=207e6; # in kN/m^2\n",
+ "Ip=123e-6; # in m^4\n",
+ "nh=12000; # in kN/m^3\n",
+ "#from table 11.13\n",
+ "xz=0.008;\n",
+ "Ax=2.435;\n",
+ "T=(Ep*Ip/nh)**0.2;\n",
+ "Qg1=xz*Ep*Ip/Ax/T**3;\n",
+ "#part2\n",
+ "Fy=248000;\n",
+ "d1=0.254;\n",
+ "Am=0.772;\n",
+ "Mzmax=Fy*Ip*2/d1; # in Kn-m\n",
+ "Qg2=Mzmax/Am/T; # in kN\n",
+ "if Qg2>Qg1 :\n",
+ " Qg=Qg1;\n",
+ " print round(Qg,2),\"lateral load in kN\"\n",
+ "# there is slight variation in answer in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "53.27 lateral load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.8:Pg-561"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.8\n",
+ "\n",
+ "import math\n",
+ "#part1\n",
+ "Ep=207e6; # in kN/m^2\n",
+ "Ip=123e-6; # in m^4\n",
+ "nh=12000; # in kN/m^3\n",
+ "#from table 11.1a\n",
+ "xo=0.008; # in m\n",
+ "L=25;\n",
+ "Fy=248000; # yield stress in kN/m^2\n",
+ "D=0.254;\n",
+ "Am=0.772;\n",
+ "Gamma=18.0; # in kN/m^3\n",
+ "phi=35; # in angle\n",
+ "Kp=(math.tan(math.pi/4+phi*math.pi/360))**2;\n",
+ "My=Fy*Ip*2/D; # in kN-m\n",
+ "Qug=140*Kp*D**3*Gamma; # in kN\n",
+ "\n",
+ "#part2\n",
+ "Qg1=xo*(Ep*Ip)**0.6*nh**0.4/0.15/L; # in kN\n",
+ "\n",
+ "if Qug>Qg1:\n",
+ " Qg=Qg1;\n",
+ " print round(Qg,2),\"lateral load in kN\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "40.2 lateral load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.9:Pg-567"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.9\n",
+ "\n",
+ "import math\n",
+ "Wrh=30*12; # in kip-ft\n",
+ "E=0.8;\n",
+ "Wr=7.5; # in kip\n",
+ "S=1/8.0; \n",
+ "C=0.1;\n",
+ "FS=6; # in factor of safety\n",
+ "n=0.4; # Coefficient of restitution\n",
+ "Wp=12/12.0*12/12.0*80*150+550; # in lb\n",
+ "Wp=Wp/1000.0;\n",
+ "Qu=E*Wrh/(S+C)*(Wr+n**2.0*Wp)/(Wr+Wp); # in kip\n",
+ "Qall=Qu/FS; # in kip\n",
+ "print round(Qall),\"allowed bearing capacity in kip\"\n",
+ "#part2\n",
+ "He=30*12.0;\n",
+ "L=80*12.0;\n",
+ "Ap=12*12.0; # area in in^2\n",
+ "Ep=3e6/1000.0; # in kip/in^2\n",
+ "FS=4; # factor of safety\n",
+ "Qu=E*He/(S+math.sqrt(E*He*L/2.0/Ap/Ep)); # in kip\n",
+ "Qall2=Qu/FS; # in kip\n",
+ "print round(Qall2),\"allowed bearing capacity in kip\"\n",
+ "\n",
+ "#partc\n",
+ "a=27;\n",
+ "b=1;\n",
+ "He=30;\n",
+ "FS=3; # factor of safety\n",
+ "Qu=a*math.sqrt(E*He)*(b-math.log10(S)); # in kip\n",
+ "Qall3=Qu/FS; # in kip\n",
+ "print round(Qall3),\"allowed bearing capacity in kip\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "101.0 allowed bearing capacity in kip\n",
+ "104.0 allowed bearing capacity in kip\n",
+ "84.0 allowed bearing capacity in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.10:Pg-570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.10\n",
+ "\n",
+ "Hp=350; # in HP\n",
+ "vp=0.0016; # in m/s\n",
+ "Sl=0.762e-3; # in m/cycle\n",
+ "f=115; # in Hz\n",
+ "Qu=(0.746*Hp+98*vp)/(vp+Sl*f); # in kN\n",
+ "print round(Qu),\"pile load capacity in kN\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2928.0 pile load capacity in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.11:Pg-578"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.11\n",
+ "\n",
+ "Lg=9.92; # in ft\n",
+ "Bg=7.0; # in ft\n",
+ "n1=3.0;\n",
+ "Nc=8.75;\n",
+ "n2=4.0/1000;\n",
+ "Ap=14.0**2.0/12.0**2;\n",
+ "cup=1775.0;\n",
+ "a1=0.4;#alpha1\n",
+ "p=4*14.0/12.0;\n",
+ "cu1=1050.0; # in lb/ft^2\n",
+ "L1=15.0;\n",
+ "a2=0.54;#alpha2\n",
+ "cu2=1775.0; # in lb/ft^2\n",
+ "L2=45.0;\n",
+ "FS=4; # factor of safety\n",
+ "Qu=n1*n2*(9*Ap*cup+a1*p*cu1*L1+a2*p*cu2*L2); # in kip\n",
+ "Qu2=Lg*Bg*cup*Nc+2*(Lg+Bg)*(cu1*L1+cu2*L2); # in kip\n",
+ "print round(Qu2/1000),\"load in kip\"\n",
+ "Qall=Qu/FS; # in kip\n",
+ "print round(Qall),\"allowed load in kip\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4314.0 load in kip\n",
+ "757.0 allowed load in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11.12:Pg-583"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 11.12\n",
+ "\n",
+ "import math\n",
+ "z1=21/2.0; # in ft\n",
+ "Lg=9.0; # in ft\n",
+ "Bg=6.0;# in ft\n",
+ "Qg=500*1000.0; # in kip\n",
+ "Cc1=0.3;\n",
+ "Cc2=0.2;\n",
+ "Cc3=0.25;\n",
+ "H2=12;\n",
+ "H3=6;\n",
+ "H1=21;\n",
+ "e1=0.82;\n",
+ "e2=0.7;\n",
+ "e3=0.75;\n",
+ "s1=Qg/(Lg+z1)/(Bg+z1); #sigma1 in lb/ft^3\n",
+ "s2=500*1000/(9+27)/(6+27);#sigma2 in lb/ft^3\n",
+ "s3=500*1000/(9+36)/(6+36);#sigma3 in lb/ft^3\n",
+ "ss1=6*105+(27+21/2)*(115-62.4);#sigmadash1 in lb/ft^3\n",
+ "ss2=6*105+(27+21)*(115-62.4)+(120-62.4)*6;#sigmadash2 in lb/ft^3\n",
+ "ss3=6*105+48*(115-62.4)+12*(120-62.4)+3*(122-62.4);#sigmadash3 in lb/ft^3\n",
+ "sc1=Cc1*H1/(1+e1)*math.log10((ss1+s1)/ss1); # in inch\n",
+ "sc2=Cc2*H2/(1+e2)*math.log10((ss2+s2)/ss2); # in inch\n",
+ "sc3=Cc3*H3/(1+e3)*math.log10((ss3+s3)/ss3); # in inch\n",
+ "sc=sc1+sc2+sc3; # in inch\n",
+ "print round(sc*12,1),\"total settlement in inch\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9.6 total settlement in inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter12.ipynb b/Principles_Of_Foundation_Engineering/Chapter12.ipynb
new file mode 100755
index 00000000..fcc14387
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter12.ipynb
@@ -0,0 +1,443 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1439e2e46e40a0d47bd1c7e06a03c417c0e1f55ad415a0af82536f86f7ecfea9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12:Drilled-Shaft Foundations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.1:Pg-609"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.1\n",
+ "\n",
+ "import math\n",
+ "Ap=math.pi/4*1.75**2; # area in m^2\n",
+ "FS=4; # factor of safety\n",
+ "Nq=37.75; \n",
+ "L=8;\n",
+ "Es=50000.0;\n",
+ "mus=0.265;\n",
+ "pu=100.0;\n",
+ "Db=1.75; # in m\n",
+ "q=6*16.2+2*19.2;\n",
+ "phi=36*math.pi/180.0;\n",
+ "Fqs=1+math.tan(phi);\n",
+ "Fqd=1+2*math.tan(phi)*(1-math.sin(phi))**2*math.atan(L/Db);\n",
+ "Ir=Es/(2*(1+mus)*q*math.tan(phi));\n",
+ "delta=0.005*(1-phi/20*180/math.pi+25/20.0)*q/pu;\n",
+ "Irr=Ir/(1+Ir*delta);\n",
+ "Fqc=math.exp(-3.8*math.tan(phi)+(3.07*math.sin(phi)*math.log10(2*Irr))/(1+math.sin(phi)));\n",
+ "Qp=Ap*(q*(Nq-1)*Fqs*Fqd*Fqc);\n",
+ "Qpall=Qp/FS;\n",
+ "print round(Qpall,2),\"allowed load in kN\"\n",
+ "print \"due to rounding off error there is slight change in answer\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6648.7 allowed load in kN\n",
+ "due to rounding off error there is slight change in answer\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.2:Pg-610"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.2\n",
+ "import math\n",
+ "Ap=math.pi/4*1.75**2; # area in m^2\n",
+ "q=135.6; \n",
+ "w=0.83;\n",
+ "FS=4; # factor of safety\n",
+ "phi=36; # given angle\n",
+ "Nq=0.21*math.exp(0.17*phi);\n",
+ "Qp=Ap*q*(w*Nq-1); # in kN\n",
+ "Qpall=Qp/FS; # in kN\n",
+ "print round(Qpall),\"allowed load in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6383.0 allowed load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.3:Pg-611"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.3\n",
+ "\n",
+ "import math\n",
+ "Ap=math.pi/4*1.5**2; # area in m^2\n",
+ "Db=1.5; # in m\n",
+ "z=3.0;\n",
+ "p=math.pi*1;\n",
+ "Li=6.0;\n",
+ "N60=30.0;\n",
+ "sigmazi=16*z;\n",
+ "Beta=2.0-0.15*z**0.75;\n",
+ "fi=Beta*sigmazi; # in kN/m^2\n",
+ "qp=57.5*N60; # in kN/m^2\n",
+ "qpr=1.27/Db*qp; # in kN/m^2\n",
+ "Qunet=qpr*Ap+fi*p*Li; # in kN\n",
+ "print round(Qunet,2),\"allowed load in kN\"\n",
+ "#part b\n",
+ "k1=0.315; #from table\n",
+ "k2=12.0/1.5/1000*100.0;\n",
+ "Qunet2=qpr*Ap*k1+fi*p*Li*k2; # in kN\n",
+ "print round(Qunet2,2),\"allowed load in kN\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4081.11 allowed load in kN\n",
+ "2013.14 allowed load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.4:Pg-617"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.4\n",
+ "\n",
+ "Nc=9;\n",
+ "Ap=math.pi/4*1.5**2; # area in m^2\n",
+ "cu=105; # in kN/m^2\n",
+ "Qpnet=Ap*cu*Nc; # in kN\n",
+ "print round(Qpnet),\"net ultimate bearing point capacity in kN\"\n",
+ "#part2\n",
+ "alpha=0.4;\n",
+ "Ds=1.5; # in m \n",
+ "p=math.pi*Ds;\n",
+ "Qs=alpha*p*(50*8+105*3); # in kN\n",
+ "print int(Qs),\"skin resistance in kN\"\n",
+ "#part3\n",
+ "FS=3; # factor of safety\n",
+ "Qu=Qpnet/FS+Qs/FS; # in kN\n",
+ "print round(Qu,2),\"working load in kN\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1670.0 net ultimate bearing point capacity in kN\n",
+ "1347 skin resistance in kN\n",
+ "1005.9 working load in kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.5:Pg-618"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.5\n",
+ "\n",
+ "import math\n",
+ "cub=3000;\n",
+ "L=20+5; # in ft\n",
+ "Db=4; # in ft\n",
+ "Ap=math.pi/4*Db**2; # area in ft^2\n",
+ "alpha=0.55;\n",
+ "cu1=800; # in lb/ft^2\n",
+ "L1=7; # in ft\n",
+ "L2=5.5; # in ft\n",
+ "cu2=1200; # in lb/ft^2\n",
+ "p=math.pi*2.5;\n",
+ "k=alpha*p*(cu1*L1+cu2*L2);#f*p*deltaLi\n",
+ "j1=6*cub*(1+0.2*L/Db);\n",
+ "j2=9*cub;\n",
+ "qp=min(j1,j2);\n",
+ "Qu=k/1000+qp*Ap/1000; # in kip\n",
+ "print round(Qu),\"allowed load in kip\"\n",
+ "#part b\n",
+ "k1=0.57; #from table\n",
+ "k2=0.89;\n",
+ "Qunet2=qp*Ap*k1+k*k2; # in kip\n",
+ "print round(Qunet2/1000,2),\"allowed load in kip\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "392.0 allowed load in kip\n",
+ "240.3 allowed load in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.6:Pg-621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.6\n",
+ "\n",
+ "import math\n",
+ "Qws=1005-250; # in kN\n",
+ "Qwp=250; # in kN\n",
+ "epsilon=0.65; \n",
+ "L=11; # in m\n",
+ "Ds=1.5; # in m\n",
+ "Es=14000; # in kN/m^2\n",
+ "Ap=math.pi/4*1.5**2; # area in m^2\n",
+ "Ep=21e6; # in kN/m^2\n",
+ "Cp=0.04; # in kN/m^2\n",
+ "Db=1.5;\n",
+ "mus=0.3;\n",
+ "p=math.pi*1.5;\n",
+ "Nc=9;\n",
+ "qp=105*Nc; # in kN/m^2\n",
+ "se1=(Qwp+epsilon*Qws)*L/(Ap*Ep); # in m \n",
+ "se2=Qwp*Cp/(Db*qp); # in m\n",
+ "Iws=2+0.35*math.sqrt(L/Ds);\n",
+ "se3=Qws/p/L*Ds/Es*(1-mus**2)*Iws; # in m\n",
+ "se=se1+se2+se3; # in m\n",
+ "print round(se*1000,2),\" is net settlement in mm\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "11.46 is net settlement in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.7:Pg-628"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.7\n",
+ "\n",
+ "import math\n",
+ "import numpy\n",
+ "from scipy.optimize import fsolve\n",
+ "Ds=1.0;\n",
+ "Ep=22e6;\n",
+ "Ri=1.0;\n",
+ "cu=100.0;\n",
+ "Ip=math.pi*Ds**4/64.0;\n",
+ "Qc=7.34*Ds**2*Ep*Ri*(cu/Ep/Ri)**0.6;\n",
+ "print round(Qc,2),\"bearing force in kN\"\n",
+ "Mc=3.86*Ds**3*Ep*Ri*(cu/Ep/Ri)**0.6;\n",
+ "print round(Mc,2),\"bearing moment in kNm\"\n",
+ "#from figure\n",
+ "xoQM=0.0046*1;\n",
+ "xoMQ=0.0041*1;\n",
+ "xo=0.5*(xoQM+xoMQ);\n",
+ "print round(xo*1000,2),\"net ground line deflection in mm\"\n",
+ "#partb\n",
+ "Ip=0.049;\n",
+ "Qg=150.0;\n",
+ "Mg=200.0;\n",
+ "def f(T):\n",
+ " return 338e-6*T**3+300.6e-6*T**2-0.00435\n",
+ "[x]=fsolve(f,2);\n",
+ "T=x;\n",
+ "k=[0, 0.4, 0.6, 0.8, 1.0, 1.1, 1.25];#z/T\n",
+ "Am=[0, 0.36, 0.52, 0.63, 0.75, 0.765, 0.75];\n",
+ "Bm=[1.0, 0.98, 0.95, 0.9, 0.845, 0.8, 0.73];\n",
+ "print \"z/T\\t Am\\t Bm\\t Mz(kN-m)\\n\"\n",
+ "Mz=numpy.zeros(7)\n",
+ "for i in range(0,7):\n",
+ " Mz[i]=Am[i]*Qg*T+Bm[i]*Mg;\n",
+ " print k[i],\"\\t\",round(Am[i],2),\"\\t\",round(Bm[i],2),\"\\t\",round(Mz[i],2)\n",
+ "\n",
+ "print round(1*T,2),\"depth in m\"\n",
+ "#partc\n",
+ "Mmax=400;\n",
+ "sigma=Mmax*Ds/2/Ip;\n",
+ "print round(sigma,2),\"tensile stress in kN/m**2\"\n",
+ "#partd\n",
+ "#from figure\n",
+ "k=8.5;\n",
+ "L=k*1;\n",
+ "print L,\"length in m\"\n",
+ "\n",
+ "# the answer is slightly different in textbook due to approximation\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "100615.56 bearing force in kN\n",
+ "52912.27 bearing moment in kNm\n",
+ "4.35 net ground line deflection in mm\n",
+ "z/T\t Am\t Bm\t Mz(kN-m)\n",
+ "\n",
+ "0 \t0.0 \t1.0 \t200.0\n",
+ "0.4 \t0.36 \t0.98 \t308.4\n",
+ "0.6 \t0.52 \t0.95 \t352.35\n",
+ "0.8 \t0.63 \t0.9 \t376.69\n",
+ "1.0 \t0.75 \t0.84 \t403.16\n",
+ "1.1 \t0.77 \t0.8 \t398.84\n",
+ "1.25 \t0.75 \t0.73 \t380.16\n",
+ "2.08 depth in m\n",
+ "4081.63 tensile stress in kN/m**2\n",
+ "8.5 length in m\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12.8:Pg-634"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 12.8\n",
+ "\n",
+ "qu=3000; # lb/in^2\n",
+ "Ds=3*12; #in inch\n",
+ "L=15*12; # in inch\n",
+ "FS=3; # factor of safety\n",
+ "Ecore=0.36e6; # in lb/in^2\n",
+ "f=min(2.5*qu**0.5,0.15*qu);\n",
+ "Qu=math.pi*Ds*L*f/1000; # in kip\n",
+ "Emass=Ecore*(0.266*80-1.66); # in lb/in^2\n",
+ "Ec=17.9*Emass; # in lb/in^2\n",
+ "Ac=math.pi/4*Ds**2; # area in in^2\n",
+ "If=0.35;\n",
+ "se=Qu*L/Ac/Ec+Qu*If/Ds/Emass;\n",
+ "Qall=Qu/FS; # in kip\n",
+ "print round(Qall),\"allowed load in kip\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "929.0 allowed load in kip\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter13.ipynb b/Principles_Of_Foundation_Engineering/Chapter13.ipynb
new file mode 100755
index 00000000..bfb80602
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter13.ipynb
@@ -0,0 +1,176 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:549425d7a43cc856ebd1610c783821836546fd833bb34512fcafdb71f662b655"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13:Foundations on Difficult Soils"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.1:Pg-653"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13.1\n",
+ "\n",
+ "Sw=1;\n",
+ "Z=2; # in m\n",
+ "deltaSf=0.0033*Z*Sw*1000; # in mm\n",
+ "print deltaSf,\"free surface swell in mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6.6 free surface swell in mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.2:Pg-13.2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13.2\n",
+ "\n",
+ "#from figure 13.11\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "import numpy\n",
+ "deltaS=1/100.0*1/2.0*(0.55+0+0.55+1.2+1.2+2+2+3);\n",
+ "print deltaS*1000,\"total swell in mm\"\n",
+ "#partb\n",
+ "D=numpy.array([5.2, 4.2, 3.2, 2.2, 1.2]);\n",
+ "deltaS=numpy.array([0, 0.00275, 0.0115, 0.0275, 0.0525]);\n",
+ "print \"depth(m)\\t total swell (m) \\n\"\n",
+ "for i in range (0,5):\n",
+ " print D[i],\"\\t \",deltaS[i],\" \\n\",\n",
+ "\n",
+ "plt.plot(deltaS*1000,D);\n",
+ "plt.title(\"depth vs total swell\")\n",
+ "plt.xlabel(\"total swell (m)\")\n",
+ "plt.ylabel(\"depth (m)\")\n",
+ "plt.show()\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "52.5 total swell in mm\n",
+ "depth(m)\t total swell (m) \n",
+ "\n",
+ "5.2 \t 0.0 \n",
+ "4.2 \t 0.00275 \n",
+ "3.2 \t 0.0115 \n",
+ "2.2 \t 0.0275 \n",
+ "1.2 \t 0.0525 \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEZCAYAAACXRVJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm81VW9//HXm8EJ50wcQHHMzAlNnGWjpIKIWl4nfk73\nd9PS0rrmVN1E8+q1btchK72paYaaSaEmznoQs8ABFEVMBXMGzQmkFORz/1jfI9vNGfYZvmdP7+fj\nsR9993ev/f1+1pHO56y1vmstRQRmZma9Kh2AmZlVBycEMzMDnBDMzCzjhGBmZoATgpmZZZwQzMwM\ncEKwHiTpGkk/zOnaYyVdl8e1K0XSsZImV+jen/w8JQ2StESSf1/UOf8Htp4U2atLJBUkvdzCtXtU\nRxNcngkxB56g1ICcEKynqcau26j882xATgiWG0mDJT0u6X1JNwIrlHw+StJ0Se9I+pOkrYs+e1HS\nmZKelvS2pKslLS+pH3AHsJ6k+dm11yX9RbucpGuzc09J2qGVuH4h6ccl526R9K3s+AxJr2TXmSVp\nrxaucTxwJHB6Fsct2fnPS2rK6vSUpAPaKX+mpOezez0t6aAyf7YrSPqNpLeye02VtLakYZKeLCp3\nj6SpRe8nSxqdHa8nabykeZJmS/pmOfe2OhYRfvnV7S9gOeBvwClAb+ArwEfAudnng4G5wI6kv0aP\nBuYAfbPPXwSeBNYH1gAeAn6YfTYUeLnkfmOBfwD7Zdc7H/hzK7HtAbxU9H4NYCGwDvA54CVgneyz\nDYCNW7nOr5rrk73vCzwPnAn0AYYB7wObt1Q+O3dI0b0OBRYA/bP3xwKTW7n3CcCtpCSr7Oe5CrBi\n9nNYM4tnLvAy0C/7bGFW317AY8D3s1g3Al4A9in6eV6XHQ8ClgC9Kv3vyq98X24hWF52BvpExCUR\n8XFEjAceKfr8eOCKiHgkkl8DH2bfg/QX/2UR8WpEvAP8J3BE9llr3RmTI+LOiAjgN8C2rZR7CAhJ\ne2TvDwEejog3gI+B5YEvSOobES9FxOw26lkcy85Av4j4r4hYHBEPAH8siftTsUfEzdl9iYibgOeA\nndq4X7OPgM8Am2U/v2kRMT8i/kH6OQ8FdgCmA38Cds/iey77ee4IrBUR52WxzgGuBA4v495Wp5wQ\nLC/rAa+WnPtb0fGGwKlZd8c7kt4BBmTfa1Y8cPxSyWctmVt0vBBYoaUnY7KEcSNLf1EfCYzLPnse\n+BbpL+S5km7IuqTKsV5JzJDq3Bz3MgO1ko6WNK3oZ7AV6Rd9e64D7gJulPSqpAsl9ck+mwQUSC2h\nSdlrKLAn0JSV2ZDU7Vb88z8LWLusmlpdckKwvLxO6u4ptmHR8UvAf0bEGkWvlSPit0VlNig5fi07\nbukJmI4+FXMDcIikDYEhwPhPLhRxQ0TskcUbwIWtXKP0nq8BAyUVtwI2ZGli/FT57N7/C5wErBkR\nawBPUcaAbvZX/bkR8QVgV2AUqdsNUgIYxtIE0JwghmbHkBLXnJKf/6oRMaqVulkDcEKwvDwMLJZ0\nsqS+kr5M6qZo9kvga5KGKOknaX9JK2efCzhR0vqS1gS+R/qrHlJL4DOSVi26XoeeiomI6cBbpG6S\nOyPifQBJm0vaS9LypC6sf5K6kVoyF9i46P1fSC2T07M6F0i/qG9spXw/0i/et4Beko4jtRDalT16\nu7Wk3sB8YFFRnH8mjYXsCEyNiJmkxLQT8GBWZgowX9LpklaU1FvSVpK+2HyLcuKw+uKEYLmIiEXA\nl0kDo38nDZgW/xX+GPBV4DLgbVLf+dEs/cs0gOuBu0mDnc8B52XfnUX6C3929gRS81NGpX/VtvdX\n7vXAXtn/NlseuAB4k9TKWYvUldKSq4Atsy6X32d1PgAYkX3/MuCoiPhrK+VnAj8h/QJ/g5QMHiqJ\nv7U6rAP8DngPmElqCVwHEBEfkAaMn46IxVn5h4EXI+KtrMwSUrLaDpidxfu/QHOSLb23WwwNQKk7\nNccbSC+SnrT4GFgUEUNKPi8At5D+UQKMj4jzcg3Kqp6kOcD/j4j7Kx2LWaPo036RLgugEBFvt1Fm\nUkSM7oFYzMysFT3VZdRef6T7K83MKqwnEkIA90p6VNJXW/l8V0lPSJooacseiMmqXERs5O4is57V\nE11Gu0XE65I+C9wjaVZEFK/g+DgwMCIWShoBTAA274G4zMysSO6Dyp+6mXQ2sCAiftJGmTnADsVj\nDpL8hIOZWSdERNld8rl2GUlaSdIq2XE/YB9gRkmZ/s0TeSQNISWpZQagK73GR56vs88+u+IxuH6u\nm+tXf6+OyrvLqD/wh+z3fR9gXETcLekEgIi4grSOzNclLSZN6vFaKmZmFZBrQoi0YNZ2LZy/ouj4\nZ8DP8ozDzMza55nKVaBQKFQ6hFzVc/3quW7g+jWaHh1U7ixJUQtxmplVE0lEtQwqm5lZ7XBCMDMz\nwAnBzMwyTghmZgY4IZiZWcYJwczMACcEMzPLOCGYmRnghGBmZpmaSQieqGxmlq+aSQizZlU6AjOz\n+lYzCWHChEpHYGZW32omIdxyS6UjMDOrbzWTEJ59Fl5/vdJRmJnVr9wTgqQXJT0paZqkqa2UuVTS\nc5KekDS4pTL77Qe33ZZvrGZmjawnWggBFCJicEQMKf1Q0khg04jYDDge+EVLFznwQHcbmZnlqae6\njNraoGE0cC1AREwBVpfUv7TQiBHw4IMwf35OEZqZNbieaiHcK+lRSV9t4fP1gZeL3r8CDCgttNpq\nsOuucNddOUVpZtbg+vTAPXaLiNclfRa4R9KsiJhcUqa0BbHMNLSxY8fSpw+cey6stVbBe6GamZVo\namqiqamp09/v0T2VJZ0NLIiInxSduxxoiogbs/ezgKERMbeoTEQEr7wC224Lb7wBffv2WNhmZjWp\nqvZUlrSSpFWy437APsCMkmK3AkdnZXYG3i1OBsUGDICNNoKHHsoxaDOzBpX3GEJ/YLKk6cAU4I8R\ncbekEySdABARE4HZkp4HrgBObOuCBx7oWctmZnno0S6jzmruMgKYMQMOOADmzAGV3RAyM2s8VdVl\nlIettoJeveDJJysdiZlZfam5hCB5kpqZWR5qLiGAE4KZWR5qbgwBYPFi6N8fpk2DDTaoYGBmZlWs\n7scQAPr0gVGj4NZbKx2JmVn9qMmEAO42MjPrbjXZZQSwYAGstx689BKsvnqFAjMzq2IN0WUEsPLK\nsOeecMcdlY7EzKw+1GxCAM9aNjPrTjXbZQRpkbsttoC5c2H55SsQmJlZFWuYLiOAddaBLbeELqz2\namZmmZpOCOCnjczMuktNdxkBzJoFw4enp4161Xx6MzPrPg3VZQRpDKFfP3jssUpHYmZW22o+IQAc\ndJC7jczMuqouEoLHEczMui73hCCpt6Rpkm5r4bOCpPeyz6dJ+n5n7rHTTjBvHsye3fV4zcwaVU+0\nEE4BZgKtjV5PiojB2eu8ztygd++0i5pbCWZmnZdrQpA0ABgJXAm0NtLdLRthetaymVnX5N1CuAg4\nDVjSyucB7CrpCUkTJW3Z2RsNHw7Tp8Nbb3X2CmZmja1PXheWNAqYFxHTJBVaKfY4MDAiFkoaAUwA\nNm+p4NixYz85LhQKFAqfvuSKK8Lee8Ptt8Mxx3Q9fjOzWtPU1ERTF5ZuyG1imqTzgaOAxcAKwKrA\n+Ig4uo3vzAF2iIi3S863OjGt2LXXpnGE3/++S6GbmdWFjk5M65GZypKGAt+JiANKzvcntSJC0hDg\npogY1ML3y0oIb70Fm2ySFr1bccVuCt7MrEZV80zlAJB0gqQTsnOHADMkTQcuBg7vyg3WWgu22w7u\nvbdrgZqZNaKaX8uo1EUXwdNPw5VX5hyUmVmVq8ouo67qSEKYPRt22QVeey3NTzAza1TV3GXUIzbe\nGNZeG6ZMqXQkZma1pe4SAnhtIzOzzqjbhOBZy2ZmHVOXCWGHHeCDD9LmOWZmVp66TAi9esHo0e42\nMjPriLpMCOBxBDOzjqq7x06bffgh9O+fuo3WWSenwMzMqljDP3babPnlYd994bZltuUxM7OW1G1C\ngLTXshe6MzMrT10nhFGjYM4cOP/8SkdiZlb9ctsPoRqssgrcfz8UCtCnD5x+eqUjMjOrXnWdEADW\nWw8eeACGDk1J4d//vdIRmZlVp7pPCADrr//ppHDyyZWOyMys+jREQgAYODAlhUIhrYJ60kmVjsjM\nrLo0TEIA2HBDuO8+GDYstRROOKH975iZNYrcnzKS1FvSNEktzgiQdKmk5yQ9IWlw3vFsvHFKCued\nB1ddlffdzMxqR0+0EE4BZgKrlH4gaSSwaURsJmkn4BfAznkHtOmmKSnstVfqPjr22LzvaGZW/XJt\nIUgaAIwErgRamj49GrgWICKmAKtL6p9nTM023zztvfy978FvftMTdzQzq255txAuAk4DVm3l8/WB\nl4vevwIMAObmHBcAW2wB99wDw4enlsIRR/TEXc3MqlNuCUHSKGBeREyTVGiraMn7FlexGzt27CfH\nhUKBQqGtS5Zvyy3h7rvhS19KSeHQQ7vlsmZmPa6pqYmmpqZOfz+31U4lnQ8cBSwGViC1EsZHxNFF\nZS4HmiLixuz9LGBoRMwtuVaHVzvtqCeeSIvh/exn8JWv5HorM7MeUTWrnUbEdyNiYERsBBwO3F+c\nDDK3AkcDSNoZeLc0GfSUbbeFO+6AE0/0Pgpm1ph6ch5CAEg6ASAiroiIiZJGSnoe+AA4rgfjWcbg\nwXD77TByZOo+GjWqktGYmfWsut0gpyumTk3J4NprYcSIHrutmVm3qpouo1o2ZEjqNjrmmDTgbGbW\nCJwQWrHLLmlznTFj0iQ2M7N654TQht13h/Hj4fDDoQtPcpmZ1QQnhHbsuSfcdBP8y7/A5MmVjsbM\nLD9OCGUYNgxuuCHNT/jTnyodjZlZPpwQyjR8OFx3HRx8MPzlL5WOxsys+zkhdMC++8I118Do0fDI\nI5WOxsysezkhdNDIkWkfhVGj4LHHKh2NmVn3cULohAMOgMsvT8lh+vRKR2Nm1j3aXLpCUl9gH2BP\nYBBp+Ym/AQ8Cd0XE4rwDrFYHHwwffwz77Zcmr22zTaUjMjPrmlaXrpD0H8BXgD8DU4HXSC2KdYEh\npJ3Nbo6I83IPsoeXruiI3/4WvvWttK/CVltVOhozs6U6unRFWy2EJ4DzWvlNfLWkXkDDL/922GGp\npbDPPmlG8+c/X+mIzMw6x4vbdZNf/xrOOgvuvx8+97lKR2Nm1r0thOYL7gh8lzSG0Fw+IsK95kWO\nPjq1FPbeGx54ADbbrNIRmZl1TDn7IYwDvgM8BSzJN5zadtxxsHjx0qSwySaVjsjMrHzlJIQ3I+LW\nzlxc0grAJGB5YDnglog4q6RMAbgFmJ2dGt8TA9V5+epXU0thr73SgngbbVTpiMzMylNOQjhH0lXA\nvcBH2bmIiN+398WI+KekYRGxUFIf4CFJu0fEQyVFJ0XE6I6FXr2+9rXUUmhOChtuWOmIzMzaV05C\nOAb4XFa2uMuo3YQAEBELs8PlgN7A2y0UK3vQo1Z84xufTgoDB1Y6IjOztpWTEL4IbNHZx3yyx1Mf\nBzYBfhERM0uKBLCrpCeAV4HvtFCmJn3rW5/uPlp//UpHZGbWunKWrngY2LKzN4iIJRGxHTAA2DMb\nMyj2ODAwIrYFfgpM6Oy9qtGpp8K//VtKCq+/XulozMxaV04LYRdguqQ5wIfZuQ4/dhoR70m6ndTi\naCo6P7/o+A5JP5e0ZkR8qmtp7NixnxwXCgUKhUJHbl9RZ5zx6ZZC//6VjsjM6lFTUxNNXdjesd2J\naZIGtXQ+Il5s9+LSWsDiiHhX0orAXcA5EXFfUZn+wLyICElDgJsiYlDJdap+Ylo5zj03LXXxwAOw\n9tqVjsbM6l23TUyTtEpEzG/rF39zmTauvy5wbTaO0Au4LiLuk3QCQERcARwCfF3SYmAhcHi5wdea\nH/wgDTQPH55mNK+1VqUjMjNbqq3F7e4FniXNEXi0uQtH0mdI3T4HAZtFxPDcg6yTFgJABHzvezBx\nYkoKa65Z6YjMrF51tIXQZpeRpL2AI4HdgPWy068BDwHjIqKp86GWr54SAqSkcMYZaTG8e++FNdao\ndERmVo+6NSFUi3pLCJCSwqmnwuTJaens1VevdERmVm+cEGpIBJxyCkydmjbZWXXVSkdkZvWkownB\nW2hWkASXXALbbw8jRsD8tobnzcxy5oRQYRJcdlnabW3kSFiwoNIRmVmjKqvLSFJvoD9Fj6lGxEs5\nxlV6/7rsMiq2ZElaKfWFF+D226Ffv0pHZGa1rtvHECR9EzgbmAd83Hw+IrbubJAd1QgJAVJS+Nd/\nhZdfhttug5VWqnREZlbL8kgILwBDIuLvXQ2usxolIUBa4uKYY2DePLj1VlhhhUpHZGa1Ko9B5ZeA\n9zsfknVE795wzTXwmc/AwQfDhx+2+xUzs27R1kzlU7PDLYEtgD/y6Q1y/if/8D6JpWFaCM0WL4Yj\nj4SFC2H8eFh++UpHZGa1pjtbCKsAK5NaCPeQNrhZOXut0pUgrX19+sC4cbDccrDvvjBjRqUjMrN6\nV84YwqERcVN75/LUiC2EZosWweWXw3nnwejRacXUddetdFRmVgvyGEM4q8xzloO+feGb34Rnn01r\nHm21FZxzDnzwQaUjM7N609YYwghgJHAYcCNL9z1eBdgyIob0SIQ0dguh1Isvwne/C5MmwQ9/mJ5I\n6t270lGZWTXqtsdOJW0LDAbOBf6j6KP5wAMR8U5XAu0IJ4RlTZ2aFsd77z347/+GffapdERmVm3y\nmIfQl9S1tAUQwKyI+KjNL3UzJ4SWRcCECXD66bDJJikxbLVVpaMys2qRxxjCPsDzwKXAT4EXJI0s\nI5AVJE2RNF3STEkXtFLuUknPSXpC0uByA7e0DtLBB8PTT6d1kPbaKy1/8frrlY7MzGpROQnhf4Bh\nETE0IoYCBeCi9r4UEf/MvrcdsA0wTNLuxWWyxLJpRGwGHA/8ooPxG+nR1JNPhr/+1QPPZtZ55SSE\n9yPi+aL3sylz5nJELMwOlwN6A2+XFBkNXJuVnQKsLql/Ode2Za2+OvzoR/DYY+mppM03h6uvTsth\nmJm1p5yE8JikiZKOlXQsacbyo5K+LOnLbX1RUi9J04G5pIHomSVF1gdeLnr/CjCg/PCtJYMGwfXX\nw+9/D7/6FQwenDbgMTNrSzkJYQXSSqdDs9eb2bkDslerImJJ1mU0ANhTUqGFYqUDHh497iY77QQP\nPpi6j046KW3C89RTlY7KzKpVn/YKRMSxXb1JRLwn6Xbgi0BT0UevAgOL3g/Izi1j7NixnxwXCgUK\nhUJXw2oIzQPP+++fZjzvtRcceKBnPJvVo6amJpqamjr9/XIeO/0c8HNgnYj4gqRtgNERcV4731sL\nWBwR70paEbgLOCci7isqMxL4RkSMlLQzcHFE7NzCtfzYaTd59104/3y46qo0EP2d73gzHrN6lcdj\np78EvsvSlU5nAEeU8b11gfuzMYQpwG0RcZ+kEySdABARE4HZkp4HrgBOLDdw6xwPPJtZa8ppITwa\nEV+UNC0iBmfnpmdjAz3CLYT8TJmSWgme8WxWf/JoIbwpadOiGxwCeOpTnfDAs5k1KychfIPUnbOF\npNeAbwNfzzUq61HFM55HjPCMZ7NG1W5CiIgXImJvYC3gcxGxW0S8mHtk1uM849mssZWzhSa0MDfA\nW2jWvxdfhLPOSl1KXmrbrPbksYXmDqQuovVJ8wS+BmzflSCtNgwaBDfcsHTG8/bbwz33VDoqM8tL\nOU8ZTQZGRsT87P0qwMSI2KMH4muOwS2ECiteanvTTeHHP/ZS22bVLo+njNYGFhW9X5SdswbigWez\n+ldOQvg1MFXSWEnnkCaZXZtvWFatPPBsVr/a7TICkLQDsAdpcPnBiJiWd2Al93eXUZWaMyft8eyB\nZ7Pq0+1baFYDJ4Tq1zzj+f3304znL32p0hGZmROCVYwHns2qSx6DymZl8cCzWW1zQrBu54Fns9rk\nhGC5aV5q+9FHYdYsL7VtVu08hmA9xgPPZj3Lg8pW1TzwbNZzqmpQWdJASQ9IelrSU5JObqFMQdJ7\nkqZlr+/nGZNVlgeezapX3mMIi4BvR8QXgJ2BkyR9voVykyJicPZqc69mqw8eeDarPrkmhIh4IyKm\nZ8cLgGeA9VooWnaTxuqLB57NqkePPWUkaRAwmLQWUrEAdpX0hKSJkrbsqZisemy0kZfaNqu0Pj1x\nE0krAzcDp2QthWKPAwMjYqGkEcAEYPPSa4wdO/aT40KhQKFQyC1eq5zmPZ4nTIATT/TAs1lHNDU1\n0dTU1Onv5/6UkaS+wB+BOyLi4jLKzwF2iIi3i875KaMG9NFHcPnlcN55cOCBcO65sO66lY7KrHZU\n21NGAq4CZraWDCT1z8ohaQgpSb3dUllrLC0NPJ97rgeezfKS9xjCbsD/A4YVPVY6QtIJkk7IyhwC\nzJA0HbgYODznmKzGFA88P/OMB57N8uKJaVZzPOPZrDyeqWwNIQL+8Ac44wwPPJu1pqrGEMzyIsGX\nv+wZz2bdyQnBapoHns26jxOC1QUPPJt1nccQrC5NmQKnngrz53vg2RqXB5XNMh54tkbnQWWzTOnA\n8957w/HHe+DZrDVOCFb3mgeen302jTV44NmsZU4I1jA88GzWNo8hWMMqHni+8ELYZx/o5T+RrI54\nUNmsA5oHnseOhffegyOPhDFjPPhs9cEJwayTnnwSxo2D66+HNddMieGII2DgwEpHZtY5TghmXbRk\nCUyenJLD+PGw9dYpORxySJoNbVYrnBDMutGHH8Idd6TkcPfdac2kMWNg1ChYYYVKR2fWNicEs5y8\n917a83ncOHj8cTjooJQcCgXo3bvS0ZktywnBrAe89hrceGNKDm+8AYcfnpLD4MFpQpxZNaiqhCBp\nIPBrYG0ggP+NiEtbKHcpMAJYCBwbEdNKPndCsKr1zDNpIHrcOFh++ZQYjjwSNt640pFZo6u2hLAO\nsE5ETJe0MvAYcFBEPFNUZiTwjYgYKWkn4JKI2LnkOk4IVvUi4C9/SYnhppvS+kljxsChh8JnP1vp\n6KwRVdVaRhHxRkRMz44XAM8A65UUGw1cm5WZAqwuqX+ecZnlQYJddoHLLoNXX4Xvfx8efhg22wz2\n3z+1IrxchlWzHpuXKWkQMBiYUvLR+sDLRe9fAQb0TFRm+ejbF0aOTK2FV15JXUi/+Q0MGABHHQV3\n3gmLF1c6SrNP69MTN8m6i24GTslaCssUKXm/TP/Q2LFjPzkuFAoUCoVujNAsPyuvnLqOxoyBefNS\nd9I558Axx8Bhh6XzQ4Z4MNq6rqmpiaampk5/P/enjCT1Bf4I3BERF7fw+eVAU0TcmL2fBQyNiLlF\nZTyGYHXn+eeXDkZ//PHSpLH55pWOzOpFVY0hSBJwFTCzpWSQuRU4Oiu/M/BucTIwq1ebbgo/+AHM\nmpUeYX3/fRg6FHbcES6+OD3OataT8n7KaHfgQeBJlnYDfRfYACAirsjKXQbsB3wAHBcRj5dcxy0E\nawgffwz3359aDbfckpLDmDFw8MGw6qqVjs5qTVU9dtpdnBCsEf3jH3DbbSk5TJoE++6bksN++6VN\nf8za44RgVofefht+97uUHGbOTAvtjRkDu+3mPRysdU4IZnXub3+DG25IyeH9972Hg7XOCcGsgXgP\nB2uLE4JZA/IeDtYSJwSzBuc9HKyZE4KZfcJ7ODQ2JwQza5H3cGg8Tghm1i7v4dAYnBDMrGzew6G+\nOSGYWacsWgT33JOSw+23p0lvY8bAgQdCv36Vjs46wwnBzLpswQKYMCElhz//GQ44ICWH4cOhT48s\nmm/dwQnBzLrVvHnw29+m5DBnjvdwqCVOCGaWG+/hUFucEMwsdxHw2GMpMdx4Y9oadMyY9CjrOutU\nOjpr5oRgZj3KezhULycEM6sY7+FQXaoqIUi6GtgfmBcRW7fweQG4BZidnRofEee1UM4JwazG/P3v\ncPPN3sOhkqotIewBLAB+3UZC+PeIGN3OdZwQzGqY93CojI4mhFzzdERMBt5pp5gfXDOrcxtuCGee\nCTNmpC6lJUtgxAjYdlv40Y/g5ZcrHaFBzgmhDAHsKukJSRMlbVnheMwsZ9tsAxdemFoNl16aHmXd\nbru0AusvfwnvtPcnpOUm90FlSYOA21rpMloF+DgiFkoaAVwSEcs80Swpzj777E/eFwoFCoVCbjGb\nWc/yHg7do6mpiaampk/en3POOdUzhgBtJ4QWys4BdoiIt0vOewzBrEF4D4fuU1VjCO2R1F9Kk98l\nDSElqLfb+ZqZ1bHVVoPjjoN774WnnkoDz6edBhtsAKeempKE/z7MR95PGd0ADAXWAuYCZwN9ASLi\nCkknAV8HFgMLSU8c/aWF67iFYNbgnnkmtRquv957OJSrqh477S5OCGbWLCKtwDpuHPzud97DoS1O\nCGbWMBYtSoPQ48bBxInew6GUE4KZNSTv4bAsJwQza3jewyFxQjAzK9LIezg4IZiZtaAR93BwQjAz\na0ej7OHghGBm1gH1vIeDE4KZWSfV2x4OTghmZt2gHvZwcEIwM+tmTz65dNmMNdeECy6AkSMrHVX7\nnBDMzHKyZAlMnpySwtbtrt9ceU4IZmYG1Njy12ZmVj2cEMzMDHBCMDOzTK4JQdLVkuZKmtFGmUsl\nPSfpCUmD84zHzMxal3cL4VfAfq19KGkksGlEbAYcD/wi53iqUvGm2PWonutXz3UD16/R5JoQImIy\n8E4bRUYD12ZlpwCrS+qfZ0zVqN7/UdZz/eq5buD6NZpKjyGsD7xc9P4VYECFYjEza2iVTggApc/I\nesKBmVkF5D4xTdIg4LaIWGZen6TLgaaIuDF7PwsYGhFzS8o5SZiZdUJHJqZVeqfRW4FvADdK2hl4\ntzQZQMcqZGZmnZNrQpB0AzAUWEvSy8DZQF+AiLgiIiZKGinpeeAD4Lg84zEzs9bVxFpGZmaWv2oY\nVG6TpP0kzcomr51R6Xi6oqWJepLWlHSPpL9KulvS6pWMsSskDZT0gKSnJT0l6eTsfF3UUdIKkqZI\nmi5ppqTbjaFfAAAGKElEQVQLsvN1UT8ASb0lTZN0W/a+nur2oqQns/pNzc7VU/1Wl3SzpGeyf587\ndbR+VZ0QJPUGLiNNbtsSOELS5ysbVZe0NFHvTOCeiNgcuC97X6sWAd+OiC8AOwMnZf+96qKOEfFP\nYFhEbAdsAwyTtDt1Ur/MKcBMlj7tV091C6AQEYMjYkh2rp7qdwkwMSI+T/r3OYuO1i8iqvYF7ALc\nWfT+TODMSsfVxToNAmYUvZ8F9M+O1wFmVTrGbqzrBGB4PdYRWAl4BPhCvdSPNAfoXmAY6cnAuvr3\nCcwBPlNyri7qB6wGzG7hfIfqV9UtBFqeuLZ+hWLJS/9Y+mTVXKAuZmpnjxsPBqZQR3WU1EvSdFI9\nHoiIp6mf+l0EnAYsKTpXL3WD1EK4V9Kjkr6anauX+m0EvCnpV5Iel/RLSf3oYP2qPSE01Ih3pDRe\n83WWtDIwHjglIuYXf1brdYyIJZG6jAYAe0oaVvJ5TdZP0ihgXkRMY9nJokDt1q3IbhExGBhB6s7c\no/jDGq9fH2B74OcRsT3pqc1PdQ+VU79qTwivAgOL3g8ktRLqyVxJ6wBIWheYV+F4ukRSX1IyuC4i\nJmSn66qOABHxHnA7sAP1Ub9dgdGS5gA3AHtJuo76qBsAEfF69r9vAn8AhlA/9XsFeCUiHsne30xK\nEG90pH7VnhAeBTaTNEjScsBhpMls9eRW4Jjs+BhSv3tNkiTgKmBmRFxc9FFd1FHSWs1PaUhaEfgS\nMI06qF9EfDciBkbERsDhwP0RcRR1UDcASStJWiU77gfsA8ygTuoXEW8AL0vaPDs1HHgauI0O1K/q\n5yFIGgFcDPQGroqICyocUqcVT9Qj9ef9ALgFuAnYAHgRODQi3q1UjF2RPXHzIPAkS5umZwFTqYM6\nStqatDpvr+x1XUT8WNKa1EH9mkkaCpwaEaPrpW6SNiK1CiB1r4yLiAvqpX4AkrYFrgSWA14gTfTt\nTQfqV/UJwczMeka1dxmZmVkPcUIwMzPACcHMzDJOCGZmBjghmJlZxgnBzMwAJwSrQZJWk/T1Mspt\nKOmIMsoNKl6SPC+SrpH0ley4SdIOrZT7raRNOnDdbSRd1V1xWuNyQrBatAZwYhnlNgKOzDmWjihe\nS6bFdWUkbQr0i4gXyr5oxJPAJpLW7pYorWE5IVgt+i/SL8Bpki4EkPRjSTOyDVAOLSq3R1bulKzF\n8KCkx7LXLm3dRNK6Wflp2bV3l3SIpJ9kn58i6YXseGNJD2XHO2QtgEcl3dm8lkyZDqdoeRZJCyT9\nSGnDoXsk7SxpkqQXJB1Q9L07gH/pwH3MluGEYLXoDOCFSBudnJF1w2xL2hRkOPDj7JfwGcDkrNwl\npIW9vhQRO5B+8V7azn2OIO3HMTi79nRgMtC8SuYewFuS1suOJ0nqA/wU+EpEfJG0KdJ/dqBuu5HW\n8Gq2EnBfRGwFzAfOBfYCDs6Om00F9uzAfcyW0afSAZh1QunyzLsB12fL+86TNAnYEXi/pNxywGXZ\nmi8fA5vTtkeAq7MVXCdExBPAAkkrZ0t8DwCuJ/0i3p20yusWpE1z7k1r/dEbeK0DddsQeL3o/UcR\ncVd2PAP4Z0R8LOkp0mZLzV4veW/WYW4hWL0oTRItLdL1beD1iNgG+CIpQbQqIppbA68C10g6Kvvo\nYdLCYc8CD5ESwi7An7I4ns5aJYMjYpuIKN02tSN1WVR0vAT4KIttCZ/+g07U7lr+ViWcEKwWzQdW\nKXo/GTgs283ss6Rf0FOBBSXlVgXeyI6PJv313ipJGwBvRsSVpFUkBxfd7zRgEmn562Gkv9znk5LE\nZyXtnF2jr6QtO1C3vwHrdqB8s3Wz75p1mruMrOZExN8l/Sl7VHRiNo6wC/AE6a/k0yJinqS3gY+z\nLS9/BfwcGC/paOBOUsL45LIt3KoAnCZpESkJHZ2df4i0leuDEbFE0kvAM1lsH0k6BLhU0mqk/49d\nRNq4vhwPkVovj7USV7RyPIS09LhZp3n5a7MqImlj4KcRsX8Hv9dEWuu+Vnf8sirgLiOzKhIRs4H5\nHZ2YBjzvZGBd5RaCmZkBbiGYmVnGCcHMzAAnBDMzyzghmJkZ4IRgZmYZJwQzMwPg/wDP0conunvE\nNwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x1d192b0>"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13.3:Pg-664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 13.3\n",
+ "\n",
+ "import math\n",
+ "from scipy.optimize import fsolve\n",
+ "phi=12*math.pi/180;\n",
+ "Ds=0.8; # in m\n",
+ "Z=5; # in m \n",
+ "sigmaT=450;\n",
+ "U=math.pi*Ds*Z*sigmaT*math.tan(phi); # in kN\n",
+ "def f(D):\n",
+ " return 1202-450*6.14/1.25*3.14/4*(D**2-0.8**2)\n",
+ "[x]=fsolve(f,1);\n",
+ "Db=x; # in m\n",
+ "print round(Db,2),\"diameter of bell in m\"\n",
+ "#partb\n",
+ "D=600; # in kN\n",
+ "cu=450; # in kN/m^2\n",
+ "Nc=6.14;\n",
+ "FS=cu*Nc*math.pi/4*(Db**2-Ds**2)/(U-D);\n",
+ "if FS>2 :\n",
+ " print \"the structure is compatible with safety measures\"\n",
+ "\n",
+ "#check bearing capacity\n",
+ "L=D+300;#dead+live load in kN\n",
+ "Dp=L/math.pi*4/Db**2;#downward pressure\n",
+ "FS=2763/Dp; # factor of safety\n",
+ "if FS>3:\n",
+ " print \"the structure is safe in bearing \"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.15 diameter of bell in m\n",
+ "the structure is compatible with safety measures\n",
+ "the structure is safe in bearing \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/Chapter14.ipynb b/Principles_Of_Foundation_Engineering/Chapter14.ipynb
new file mode 100755
index 00000000..9492b61a
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/Chapter14.ipynb
@@ -0,0 +1,152 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0607b38129f4394e73e1fea85ea07501579e80864ce509d7b62579d182135871"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter14:Soil Improvement and Ground Modification"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.1:Pg-695"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 14.1\n",
+ "\n",
+ "import math\n",
+ "Cc=0.28;\n",
+ "Hc=6.0;\n",
+ "eo=0.9;\n",
+ "Cv=0.36; # in m^2/mo.\n",
+ "H=3.0; # in m\n",
+ "t=9.0; # in mo.\n",
+ "sigmao=210.0;# in kN/m^2\n",
+ "sigmap=115; #deltasigmap in kN/m^2\n",
+ "Sc=Cc*Hc/(1+eo)*math.log10((sigmao+sigmap)/sigmao); # in m\n",
+ "print round(Sc*1000,1),\"primary consolidation in mm\"\n",
+ "Tv=Cv*t/H**2;\n",
+ "#from table\n",
+ "k=1.8; #constant\n",
+ "sf=k*sigmap; # in kN/m**2\n",
+ "print round(sf,2),\"deltasigmaf in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "167.7 primary consolidation in mm\n",
+ "207.0 deltasigmaf in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.2:Pg-703"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 14.2\n",
+ "\n",
+ "import math\n",
+ "Tv=0.36;\n",
+ "sigmap=115; # in kN/m^2\n",
+ "Uv=math.sqrt(4*Tv/math.pi)*100;\n",
+ "print round(Uv,2),\"Uv in %\"\n",
+ "#from table \n",
+ "k=0.12; #constant\n",
+ "sf=k*sigmap;\n",
+ "print sf,\"deltasigmaf in kN/m**2\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "67.7 Uv in %\n",
+ "13.8 deltasigmaf in kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex14.3:Pg-704"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#example 14.3\n",
+ "\n",
+ "Cc=0.31;\n",
+ "Hc=15.0;#ft\n",
+ "eo=1.1;\n",
+ "n=10.0;\n",
+ "Uv=0.09;\n",
+ "sigmao=1000.0; # in lb/ft^2\n",
+ "deltasigma=2000.0; # deltasigmap+deltasigmaf\n",
+ "Sc=Cc*Hc/(1+eo)*math.log10((sigmao+deltasigma)/sigmao);\n",
+ "print round(Sc,3),\"primary consolidation in ft\"\n",
+ "m=n**2/(n**2-1)*math.log(n)-(3*n**2-1)/4/n**2;\n",
+ "A=2/m;\n",
+ "Ur=(0.096-1/A*(1-math.exp(-A*0.096)))/0.192;\n",
+ "Uvf=1-(1-Ur)*(1-Uv);\n",
+ "Sc30=Sc*Uvf*12; #settlement after 30 days\n",
+ "print round(Sc30,2),\"settlement after 30 days in inch\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.056 primary consolidation in ft\n",
+ "1.48 settlement after 30 days in inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Foundation_Engineering/screenshots/ex1.2.png b/Principles_Of_Foundation_Engineering/screenshots/ex1.2.png
new file mode 100755
index 00000000..8346a9de
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/screenshots/ex1.2.png
Binary files differ
diff --git a/Principles_Of_Foundation_Engineering/screenshots/ex13.1.png b/Principles_Of_Foundation_Engineering/screenshots/ex13.1.png
new file mode 100755
index 00000000..10988711
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/screenshots/ex13.1.png
Binary files differ
diff --git a/Principles_Of_Foundation_Engineering/screenshots/ex14.2.png b/Principles_Of_Foundation_Engineering/screenshots/ex14.2.png
new file mode 100755
index 00000000..1a58b738
--- /dev/null
+++ b/Principles_Of_Foundation_Engineering/screenshots/ex14.2.png
Binary files differ
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter10.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter10.ipynb
new file mode 100755
index 00000000..5d4082c6
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter10.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a91d8543aecc1fd44cfae5fb69812b5536263b0841045f12cbdb74f6f431640e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Stresses in a Soil Mass"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#principal stress and normal stresses and shear stresses\n",
+ "##initialisation of variables\n",
+ "sx= 2000. ##lb/ft^3\n",
+ "sy= 2500. ##lb/ft^3\n",
+ "T= 800. ##lb/ft^3\n",
+ "t= 0.348##radians\n",
+ "##calculations\n",
+ "s1= (sx+sy)/2.+math.sqrt(((sy-sx)/2.)**2+T**2)\n",
+ "s2= (sx+sy)/2.-math.sqrt(((sy-sx)/2.)**2+T**2)\n",
+ "sn= (sx+sy)/2.+(sy-sx)*math.cos(2.*t)/2.-T*math.sin(2*t)\n",
+ "Tn= (sy-sx)*math.sin(2.*t)/2.+T*math.cos(2*t)\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('principle stress s1 = ',s1,' lb/ft^3 ')\n",
+ "print'%s %.2f %s'% ('principle stress s2 = ',s2,' lb/ft^3 ')\n",
+ "print'%s %.2f %s'% ('normal stress = ',sn,' lb/ft^3 ')\n",
+ "print'%s %.2f %s'% ('shear stress = ',Tn,' lb/ft^3 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "principle stress s1 = 3088.15 lb/ft^3 \n",
+ "principle stress s2 = 1411.85 lb/ft^3 \n",
+ "normal stress = 1928.93 lb/ft^3 \n",
+ "shear stress = 774.22 lb/ft^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate vertical stress increase\n",
+ "##initialisation of variables\n",
+ "x= 3. ##m\n",
+ "y= 4. ##m\n",
+ "P= 5. ##kN\n",
+ "z= 2. ##m\n",
+ "##calculations\n",
+ "r= math.sqrt(x**2+y**2)\n",
+ "k= r/z\n",
+ "I= 3./(2.*math.pi*((r/z)**2+1)**2.5)\n",
+ "s= P*I/z**2\n",
+ "##results\n",
+ "print'%s %.4f %s'% ('verticle stress increase at 2m = ',s,' kN/m^3 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "verticle stress increase at 2m = 0.0042 kN/m^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter11.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter11.ipynb
new file mode 100755
index 00000000..4b82ba4f
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter11.ipynb
@@ -0,0 +1,553 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2a29c7b9c2c5d3914e37e2b72bd62a8b948e23c0720d69e0b40a353ece4dd036"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-Compressibility of Soil"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#evaluvate The elastic settlement at the centre of foundation\n",
+ "Tz=150.\n",
+ "b=1.\n",
+ "l=2.\n",
+ "z=5.*b\n",
+ "Es= (10000*2 + 8000*1 +12000*2)/5\n",
+ "a=4.\n",
+ "H=z\n",
+ "m=l/b\n",
+ "n=2.*H/b\n",
+ "F1=0.641 ##from tables 11.1 and 11.2\n",
+ "F2=0.031\n",
+ "u=0.3\n",
+ "Is= F1 + ((2.-u)/(1.-u))*F2\n",
+ "If=0.71 ##from table 11.3\n",
+ "Sef= Tz *a*b/l *(1-u**2)*Is*If/Es\n",
+ "Ser=0.93*Sef\n",
+ "print'%s %.3f %s'%('The elastic settlement at the centre of foundation =',Ser,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The elastic settlement at the centre of foundation = 0.012 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "## one value of e is done \n",
+ "Gs=2.75\n",
+ "A=30.68\n",
+ "Ms=128.\n",
+ "p=1.\n",
+ "Hs=Ms/(A*Gs*p)\n",
+ "H=2.540\n",
+ "Hv=H-Hs\n",
+ "e=Hv/Hs\n",
+ "print'%s %.3f %s'%('the value of e for give values =',e,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of e for give values = 0.674 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Compression index\n",
+ "e11=0.9\n",
+ "e21=0.8\n",
+ "T2=4.\n",
+ "T1=2.\n",
+ "Cc= (e11-e21)/math.log10(T2/T1) ## from loading branch\n",
+ "e1=0.67\n",
+ "e2=0.655\n",
+ "Cs=(e1-e2)/math.log10(T2/T1)\n",
+ "k=Cs/Cc\n",
+ "T3=12.\n",
+ "e3=e11-Cc*math.log10(T3/T1)\n",
+ "print'%s %.2f %s'%('Compression index Cc= ',Cc,'')\n",
+ "print'%s %.2f %s'%(' Cs/Cc = ',k,'')\n",
+ "print'%s %.2f %s'%(' e3 = ',e3,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compression index Cc= 0.33 \n",
+ " Cs/Cc = 0.15 \n",
+ " e3 = 0.64 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Primary Consolidation Sc in three parts\n",
+ "Gd=14.\n",
+ "Gss=18.\n",
+ "Gsc=19.\n",
+ "Gw=9.81\n",
+ "To= 2.*Gd+4.*(Gss-Gw)+2*(Gsc-Gw)\n",
+ "LL=40.\n",
+ "Cc=0.009*(LL-10)\n",
+ "H=4.\n",
+ "T=100.\n",
+ "e=0.8\n",
+ "Sc= Cc*H*math.log10((To+T)/To)/(1.+e)\n",
+ "print'%s %.2f %s'%('a)Primary Consolidation Sc = ',Sc,' m')\n",
+ "\n",
+ "\n",
+ "Tc=190\n",
+ "Cs=Cc/6\n",
+ "Sc= Cs*H*math.log10((To+T)/To)/(1+e)\n",
+ "print'%s %.2f %s'%(' b)Primary Consolidation Sc =',Sc,'m')\n",
+ "\n",
+ "\n",
+ "Tc=170\n",
+ "Sc= Cc*H*math.log10((To+T)/Tc)/(1+e)+ Cs*H*math.log10(Tc/To)/(1+e)\n",
+ "print'%s %.3f %s'%(' c)Primary Consolidation Sc =',Sc,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)Primary Consolidation Sc = 0.21 m\n",
+ " b)Primary Consolidation Sc = 0.04 m\n",
+ " c)Primary Consolidation Sc = 0.047 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate The settlement in the field Sc\n",
+ "Gs=18.\n",
+ "Gw=9.81\n",
+ "H=10.\n",
+ "eo=1.1\n",
+ "To=5.*(Gs-Gw)\n",
+ "T1=48.\n",
+ "T=To+T1\n",
+ "e1=1.045 ## void ratio corresponding to T \n",
+ "e=eo-e1\n",
+ "Sc=H*e/(1.+eo)\n",
+ "print'%s %.2f %s'%('The settlement in the field Sc = ',Sc,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The settlement in the field Sc = 0.26 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Total consolidation settlement of the clay\n",
+ "T=8.5\n",
+ "eo=0.8\n",
+ "Cc=0.28\n",
+ "To=2650.\n",
+ "T1=970.\n",
+ "C1=0.02\n",
+ "t2=5.\n",
+ "t1=1.5\n",
+ "H=8.5*12\n",
+ "epr=Cc*math.log10((To+T1)/To)\n",
+ "ep=eo-epr\n",
+ "C2=C1/(1.+ep)\n",
+ "Sc=epr*H/(1.+eo)\n",
+ "Ss=C2*H*math.log10(t2/t1)\n",
+ "TS=Sc+Ss\n",
+ "print'%s %.1f %s'%('Total consolidation settlement of the clay =',TS,' in')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total consolidation settlement of the clay = 2.8 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate t field\n",
+ "##T50 = Cvtlab /H^2 lab = Cvtfield?H^2 fiels\n",
+ "tl=140.\n",
+ "Hf=3.\n",
+ "Hd=0.025/2.\n",
+ "tf=tl*Hf**2/Hd**2\n",
+ "k=tf/(3600.*24.)\n",
+ "print'%s %.1f %s'%('t field = ',k,' days')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "t field = 93.3 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##Tv is directly proportional to U^2\n",
+ "t1=93.333\n",
+ "U2=30.\n",
+ "U1=50.\n",
+ "t2=t1*U2**2./U1**2.\n",
+ "print'%s %.2f %s'%('t2 =',t2,' days')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "t2 = 33.60 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#evaluvate Cv\n",
+ "#intilization variable\n",
+ "t90=75.*24.*60.*60. ## time in sec\n",
+ "T90=0.848\n",
+ "Hd=1.5*100. ##in cm\n",
+ "Cv=T90*Hd**2/t90\n",
+ "print'%s %.3f %s'%('Cv =',Cv,' cm^2/sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cv = 0.003 cm^2/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate K and t60\n",
+ "To=3000. ## lb/ft^2\n",
+ "eo=1.1\n",
+ "e1=0.9\n",
+ "e=eo-e1\n",
+ "ea=(eo+e1)/2.\n",
+ "T1=3000. ## lb/ft^2\n",
+ "T=1. ## in\n",
+ "t = 2. ## min\n",
+ "m=(e/T1)/(1.+ea)\n",
+ "U=50.\n",
+ "Tv=0.197\n",
+ "Gw=62.4 ##lb/ft^3\n",
+ "Cv=Tv*(T/(2.*12.)**2)/t\n",
+ "k=Cv*m*Gw *10**7\n",
+ "print'%s %.3f %s'%('a)k = ',k,' x10^-7 ft/min')\n",
+ "\n",
+ "\n",
+ "U=60\n",
+ "Tv=0.286\n",
+ "H=6\n",
+ "t60=Tv*H**2/(Cv*60*24)\n",
+ "print'%s %.1f %s'%(' b)t60 =',t60,' days')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)k = 3.557 x10^-7 ft/min\n",
+ " b)t60 = 41.8 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Cv\n",
+ "t50=19\n",
+ "Hd=2.24/2\n",
+ "Cv=0.197*Hd**2/t50\n",
+ "print'%s %.3f %s'%('Cv = ',Cv,' cm^2/min')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cv = 0.013 cm^2/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate SC\n",
+ "LL=40.\n",
+ "Cc=0.009*(LL-10)\n",
+ "H=10.*12.\n",
+ "eo=1.0\n",
+ "Gss=120.\n",
+ "Gsc=110.\n",
+ "Gd=100.\n",
+ "To=10.*Gd +10.*(Gss-62.4)+10.*(Gsc-62.4)/2.\n",
+ "\n",
+ "Tt=0.408\n",
+ "Tm=0.232\n",
+ "Tb=0.019\n",
+ "Tav= (Tt+4.*Tm+Tb)/6.\n",
+ "Sc=Cc*H*math.log10((To+Tav*1000.)/To)/(1.+eo)\n",
+ "print'%s %.3f %s'%('Sc =',Sc,' in')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sc = 0.826 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex13-pg356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#intilization variable\n",
+ "#Calculate total primary\n",
+ "import math\n",
+ "H = 6.\n",
+ "Cc = 0.28\n",
+ "eo = 0.9\n",
+ "Cv = 0.36\n",
+ "To=210.\n",
+ "Tp=115.\n",
+ "Sc= Cc*H*math.log10((To+Tp)/To)/(1+eo)\n",
+ "t2=9.\n",
+ "Hd=3.\n",
+ "Tv=Cv*t2/Hd**2\n",
+ "U=0.67\n",
+ "Tf=0.677*Tp\n",
+ "print'%s %.1f %s'%('Tf =',Tf,' kN/m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tf = 77.9 kN/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter12.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter12.ipynb
new file mode 100755
index 00000000..da95df97
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter12.ipynb
@@ -0,0 +1,325 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cc62756cbf06ddef68226804d15a2efed303c30289a23f7a88b85756c1a62af7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-Shear Strength of Soil"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg378"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the relationships for peak shear strength(tf) and residual shear strength(tr).\n",
+ "D=50 ## in mm\n",
+ "A= math.pi/4. *(D/1000.)**2\n",
+ "## solving for test 1 \n",
+ "N=150.\n",
+ "Sp=157.5\n",
+ "Sr=44.2\n",
+ "Tf=Sp/A\n",
+ "Tr=Sr/A\n",
+ "## from graph\n",
+ "k=math.tan(27/57.3)\n",
+ "k1=math.tan(14.6/57.3)\n",
+ "\n",
+ "print'%s %.3f %s'%('Peak strength Tf = 40+ t*',k,'')\n",
+ "print'%s %.3f %s'%(' Residual strength Tr = t*',k1,'')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak strength Tf = 40+ t* 0.509 \n",
+ " Residual strength Tr = t* 0.260 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine\n",
+ "#a.Angle of friction,f\u0004\n",
+ "#b.Angleuthat the failure plane makes with the major principal plane\n",
+ "T3=16. ## lb/in^2\n",
+ "Tf=25. ## lb/in^2\n",
+ "T1=T3+Tf\n",
+ "a= math.asin((T1-T3)/(T1+T3))*57.3 ## Mohr's circle\n",
+ "print'%s %.2f %s'%('a)Angle of friction,a = ',a,'')\n",
+ "b= 45.+ a/2.\n",
+ "print'%s %.2f %s'%(' b)Angle b that the failure plane makes with the major principal plane = ',b,'')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)Angle of friction,a = 26.02 \n",
+ " b)Angle b that the failure plane makes with the major principal plane = 58.01 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Find the normal stress s\u0004and the shear stress tfon the failure plane.\n",
+ "#b.Determine the effective normal stress on the plane of maximum shear stress\n",
+ "T1=41.\n",
+ "T3=16.\n",
+ "a=58.\n",
+ "T=(T1+T3)/2. + (T1-T3)*math.cos(2.*a/57.3)/2.\n",
+ "tf=(T1-T3)*math.sin(2.*a/57.3)/2\n",
+ "print'%s %.2f %s'%('a)the normal stress T = ',T,' lb/in^2')\n",
+ "print'%s %.2f %s'%('(b) and the shear stress tf = ',tf,' lb/in^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)the normal stress T = 23.02 lb/in^2\n",
+ "(b) and the shear stress tf = 11.24 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The equation of the effective stress failure envelope for normally consolidated clayey soilistf \u0001s\u0004tan 30\u0005. A drained triaxial test was conducted with the same soil at a chamberconfining pressure of 10 lb/in.2Calculate the deviator stress at failure.\n",
+ "##For normally consolidated clay, c' \u0004= 0.\n",
+ "a=30.\n",
+ "T3=10.\n",
+ "T1=T3*(math.tan(60/57.3))**2\n",
+ "Tf=T1-T3\n",
+ "print'%s %.2f %s'%('The deviator stress at failure = ',Tf,' lb/in^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The deviator stress at failure = 19.99 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the shear strength parameters.\n",
+ "T13=70.\n",
+ "T1f=130.\n",
+ "T11=T13+T1f\n",
+ "\n",
+ "T23=160.\n",
+ "T2f=223.5\n",
+ "T21=T23+T2f\n",
+ "\n",
+ "a= 2*(math.atan(((T11-T21)/(T13-T23))**0.5) *57.3-45)\n",
+ "c= (T11-T13*((math.tan((45+a/2.)/57.3))**2)/(2*math.tan(45+a/2.)/57.3))\n",
+ "d=c-267\n",
+ "print('the shear strength parameter d = ',d,' kN/m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('the shear strength parameter d = ', 20.686836038348247, ' kN/m^2')\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Consolidated-undrained angle of shearing resistance,f\n",
+ "#b.Drained friction angle,f\u0004\n",
+ "T3=12.\n",
+ "Tf=9.1\n",
+ "T1=T3+Tf\n",
+ "u=6.8\n",
+ "a=math.asin((T1-T3)/(T1+T3))\n",
+ "\n",
+ "a1= math.asin((T1-T3)/(T1+T3-2*u))\n",
+ "\n",
+ "print'%s %.1f %s'%('a)Consolidated-undrained angle of shearing resistance = ',a*57.3,' degrees')\n",
+ "print'%s %.1f %s'%(' b)Drained friction angle =',a1*57.3,' degrees')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)Consolidated-undrained angle of shearing resistance = 16.0 degrees\n",
+ " b)Drained friction angle = 27.8 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#What would be the deviatorstress at failure, (\u0010sd)f, if a drained test was conducted with the same chamber allaround pressure (that is, 12 lb/in.2)?\n",
+ "T3=12.\n",
+ "a=27.8\n",
+ "T1=T3*(math.tan(59./57.3))**2\n",
+ "Tf=T1-T3\n",
+ "print'%s %.1f %s'%('the deviator stress at failure = ',Tf,' lb/in^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the deviator stress at failure = 21.2 lb/in^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Estimate the average undrained shear strength of the clay [that is,cu(VST)].\n",
+ "PI=28.\n",
+ "OCR=3.2\n",
+ "To=160.\n",
+ "Kn=0.11+0.0037*PI\n",
+ "Ko=OCR**0.8 * Kn\n",
+ "Cu=Ko*To\n",
+ "print'%s %.1f %s'%('the average undrained shear strength of the clay =',Cu,' kN/m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the average undrained shear strength of the clay = 86.7 kN/m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter13.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter13.ipynb
new file mode 100755
index 00000000..97917965
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter13.ipynb
@@ -0,0 +1,435 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0405d0d7063a41d23ac6999d3522bb5dd0c6d2025222a87c1afa5e51af3425e8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-Lateral Earth Pressure: \n",
+ "At-Rest, Rankine, and Coulomb"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Calculate the lateral force Poper unit length of the wall. Also, determine the location ofthe resultant force. Assume that for sand OCR\u00012\n",
+ "OCR=2.\n",
+ "a=30.\n",
+ "Ko=(1.-math.sin(a/57.3))*(OCR)**math.sin(a/57.3)\n",
+ "##at z=0\n",
+ "To1=0.\n",
+ "Th1=0.\n",
+ "u1=0.\n",
+ "##at z=10\n",
+ "To2=10.*100.\n",
+ "Th2=Ko*To2\n",
+ "u2=0.\n",
+ "##at z=15\n",
+ "To3= 10.*100.+5.*(122.4-62.4)\n",
+ "Th3=Ko*To3\n",
+ "u3=5.*62.4\n",
+ "##Lateral force Po =Area 1 +\u0007 Area 2+\u0007 Area3+\u0007 Area 4\n",
+ "Po =(1./2.)*10.*707.+5.*707.+(1./2.)*5.*212.1+(1/2.)*5.*312.\n",
+ "z=((3535.)*(5.+10./3.)+3535.*(5./2.)+530.3*(5./3.)+780.*(5./3.))/Po\n",
+ "print'%s %.1f %s'%('z = ',z,' ft')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "z = 4.8 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Rankine active force per unit length of the wall and the location of theresultant\n",
+ "#b.Rankine passive force per unit length of the wall and the location of the resultant\n",
+ "##c=0\n",
+ "a=36.\n",
+ "G=16.\n",
+ "Ka=(1.-math.sin(a/57.3))/(1.+math.sin(a/57.3))\n",
+ "##at z=0 Tp=0\n",
+ "z=6.\n",
+ "To=G*z\n",
+ "Ta=Ka*To\n",
+ "Pa=z*Ta/2.\n",
+ "\n",
+ "print'%s %.1f %s'%('a)Rankine active force per unit length of the wall = ',Pa,' kN/m')\n",
+ "print(' and the location of the resultant is z = 2m')\n",
+ "\n",
+ "\n",
+ "p=36.\n",
+ "G=16.\n",
+ "Kp=(1+math.sin(a/57.3))/(1-math.sin(a/57.3))\n",
+ "##at z=0 Tp=0\n",
+ "z=6.\n",
+ "To=G*z\n",
+ "Tp=Kp*To\n",
+ "Pp=z*Tp/2.\n",
+ "\n",
+ "print'%s %.1f %s'%(' b)Rankine passive force per unit length of the wall = ',Pp,' kN/m')\n",
+ "print (' and the location of the resultant is z = 2m')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)Rankine active force per unit length of the wall = 74.8 kN/m\n",
+ " and the location of the resultant is z = 2m\n",
+ " b)Rankine passive force per unit length of the wall = 1109.2 kN/m\n",
+ " and the location of the resultant is z = 2m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the active force Paperunit length of the wall as well as the location and direction of the resultant.\n",
+ "H=12.\n",
+ "a=20.\n",
+ "b=20.\n",
+ "G=115.\n",
+ "c=30.\n",
+ "Oa= math.asin(math.sin(a/57.3)/math.sin(c/57.3))*57.3-a+2.*b\n",
+ "Ka= (math.cos((a-b)/57.3)*math.sqrt(1.+(math.sin(c/57.3))**2.-2.*math.sin(c/57.3)*math.cos(Oa/57.3)))/((math.cos(b/57.3))**2.*(math.cos(a/57.3)+math.sqrt((math.sin(c/57.3))**2.-(math.sin(a/57.3))**2)))\n",
+ "Pa=G*H**2.*Ka/2.\n",
+ "B= math.atan((math.sin(c/57.3)*math.sin(Oa/57.3))/(1.-(math.sin(c/57.3)*math.cos(Oa/57.3))))*57.3\n",
+ "print'%s %.1f %s'%('The active force Pa per unit length of the wall = ',Pa,' lb/ft')\n",
+ "print'%s %.1f %s'%( ' The resultant will act a distance of 12/3 = 4 ft above the bottom of the wall with B = ',B,' degree')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The active force Pa per unit length of the wall = 6423.5 lb/ft\n",
+ " The resultant will act a distance of 12/3 = 4 ft above the bottom of the wall with B = 30.0 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#determine the force per unit length of the wall for Rankine\u2019s active state. Also find the location of the resultant.\n",
+ "a=30.\n",
+ "Ka1=(1.-math.sin(a/57.3))/(1.+math.sin(a/57.3))\n",
+ "a=35.\n",
+ "Ka2=(1-math.sin(a/57.3))/(1+math.sin(a/57.3))\n",
+ "##at z=0 so T0=0\n",
+ "##atz=3\n",
+ "To=3.*16.\n",
+ "Ta1=Ka1*To\n",
+ "Ta2=Ka2*To\n",
+ "\n",
+ "## At z=6\n",
+ "To=3.*16.+3.*(18.-9.81)\n",
+ "Ta2=Ka2*To\n",
+ "\n",
+ "Pa =(1/2.)*3.*16.+3.*13.0+ (1/2.)*3.*36.1\n",
+ "z= (24 *(3.+3./3.)+39.0*(3/2.)+54.15*(3/3.))/Pa\n",
+ "print'%s %.1f %s'%('The force per unit length of the wall = ',Pa,' kN/m')\n",
+ "print'%s %.1f %s'% (' The location of the resultant = ',z,'m ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force per unit length of the wall = 117.2 kN/m\n",
+ " The location of the resultant = 1.8 m \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Maximum depth of the tensile crack\n",
+ "#b.Pabefore the tensile crack occurs\n",
+ "#c. Pa after the tensile crack occurs\n",
+ "Ka= (math.tan(1./57.3))**2.\n",
+ "G=16.5\n",
+ "cu=10.\n",
+ "H=6.\n",
+ "##at z=0\n",
+ "z=0.\n",
+ "Ta=G*z-2.*cu\n",
+ "##zt z=6\n",
+ "z=6.\n",
+ "Ta=G*z-2.*cu\n",
+ "\n",
+ "zo=2.*cu/G\n",
+ "## Before the tensile crack occurs\n",
+ "Pa= G*H**2./2. - 2.*cu*H\n",
+ "print'%s %.1f %s'%('Pa before the tensile crack occurs = ',Pa,' kN/m')\n",
+ "##After the tensile crack occurs\n",
+ "Pa=(H-zo)*Ta/2.\n",
+ "print'%s %.1f %s'%(' Pa after the tensile crack occurs = ',Pa,' kN/m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pa before the tensile crack occurs = 177.0 kN/m\n",
+ " Pa after the tensile crack occurs = 189.1 kN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the Rankine active force Paon the retaining wall after the tensile crack occurs.\n",
+ "H=15.\n",
+ "a=10.\n",
+ "G=118.\n",
+ "b=20.\n",
+ "C=250\n",
+ "Zo=2.*C*math.sqrt((1+math.sin(b/57.3))/(1.-math.sin(b/57.3)))/G\n",
+ "##at z=0 Ta=0\n",
+ "##at z=15 \n",
+ "z=15.\n",
+ "K=0.3\n",
+ "Ta=G*z*K*math.cos(a/57.3)\n",
+ "Pa=(H -Zo)*Ta/2.\n",
+ "print'%s %.1f %s'%('The Rankine active force Pa on the retaining wall after the tensile crack occurs = ',Pa,' lb/ft')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Rankine active force Pa on the retaining wall after the tensile crack occurs = 2339.8 lb/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Estimate the active force,Pa , per unit length of the wall. Also, state the direction and location of the resultant force,Pa.\n",
+ "import math\n",
+ "c=30.\n",
+ "b=15.\n",
+ "a=10.\n",
+ "Ka=0.3872 ## from table 13.8\n",
+ "H=4.\n",
+ "G=15.\n",
+ "Pa=G*H**2.*Ka/2.\n",
+ "print'%s %.1f %s'%('The active force per unit length Pa = ',Pa,' kN/m')\n",
+ "print(' The resultant will act at a vertical distance equal to H/3 = 4/3 = 1.33 m above ' ' the bottom of the wall and will be inclined at an angle of 15\u0005to the back face of the wall.')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The active force per unit length Pa = 46.5 kN/m\n",
+ " The resultant will act at a vertical distance equal to H/3 = 4/3 = 1.33 m above the bottom of the wall and will be inclined at an angle of 15\u0005to the back face of the wall.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg478"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine Pae.Also determine the location of the resultant line of action of Pae\u2014that is, .\n",
+ "kh=0.2\n",
+ "kv=0.\n",
+ "H=4.\n",
+ "a=0.\n",
+ "b=0.\n",
+ "c=15.\n",
+ "d=30.\n",
+ "G=15.5\n",
+ "B= math.atan(kh/(1-kv)/57.3)\n",
+ "b1=b+B\n",
+ "a1=a+B\n",
+ "Ka=0.452\n",
+ "Pa=G*H**2.*Ka/2.\n",
+ "Pae=Pa*(1.-kv)*((math.cos(b1/57.3))**2./((math.cos(b/57.3))**2.*(math.cos(B/57.3))**2.))\n",
+ "Ka=0.3014\n",
+ "Pa=G*H**2*Ka/2.\n",
+ "P1=Pae-Pa\n",
+ "z= ((Pa*H/3)+P1*0.6*H)/Pae\n",
+ "print'%s %.1f %s'%('Pae = ',Pae,' kN/m')\n",
+ "print'%s %.1f %s'%(' Z = ',z,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pae = 56.0 kN/m\n",
+ " Z = 1.7 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the magnitude of the active force,Pae.\n",
+ "H=28.\n",
+ "C=210.\n",
+ "b=10.\n",
+ "G=118.\n",
+ "c=20.\n",
+ "kh=0.1\n",
+ "Ka=math.tan(35./57.3)\n",
+ "zo=2.*C/(G*(Ka))\n",
+ "n=zo/(H-zo)\n",
+ "Nac=1.60\n",
+ "Nav=0.375\n",
+ "L=1.17\n",
+ "Pae= G*(H-zo)**2*(L*Nav)-C*(H-zo)*Nac\n",
+ "print'%s %.1f %s'%('The magnitude of the active force, Pae = ',Pae,' lb/ft')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnitude of the active force, Pae = 19488.8 lb/ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter14.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter14.ipynb
new file mode 100755
index 00000000..e7939c1f
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter14.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2af8058b6581fea92b2edf9bd8732fbea78d002de843d3df7b927ba2074ae2e2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter14-Lateral Earth Pressure: \n",
+ "Curved Failure Surface"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex1-497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Coulomb\u2019s theory\n",
+ "#b.Terzaghi and Peck\u2019s wedge theory\n",
+ "#c. Shields and Tolunay\u2019s solution (method of slices)\n",
+ "#d.Zhu and Qian\u2019s solution (method of triangular slices)\n",
+ "G=15.7\n",
+ "a=0.\n",
+ "b=15.\n",
+ "c=30.\n",
+ "H=3.\n",
+ "Kp=4.977 ## from table 13.9\n",
+ "Pp=Kp*G*H**2./2.\n",
+ "print'%s %.1f %s'%('a)the passive force = ',Pp,' kN/m')\n",
+ "## for part b\n",
+ "Kp=4.53\n",
+ "Pp=Kp*G*H**2./2.\n",
+ "print'%s %.1f %s'%(' b)the passive force = ',Pp,' kN/m')\n",
+ "## for part c\n",
+ "Kp=4.13\n",
+ "Pp=Kp*G*H**2/2.\n",
+ "print'%s %.1f %s'%(' c)the passive force =',Pp,' kN/m')\n",
+ "##for part d\n",
+ "Kp=4.56\n",
+ "Pp=Kp*G*H**2/2.\n",
+ "print'%s %.1f %s'%(' d)the passive force =',Pp,' kN/m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)the passive force = 351.6 kN/m\n",
+ " b)the passive force = 320.0 kN/m\n",
+ " c)the passive force = 291.8 kN/m\n",
+ " d)the passive force = 322.2 kN/m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the design strut loads.\n",
+ "G=16.\n",
+ "H=7.\n",
+ "c=30.\n",
+ "Ta=0.65*G*H*(math.tan(30./57.3))**2\n",
+ "A=Ta*3.*3./4.\n",
+ "B1=Ta*3.-54.61\n",
+ "C=Ta*4.*4./4.\n",
+ "B2=Ta*4.-97.08\n",
+ "s=2.\n",
+ "As=A*s\n",
+ "Bs=(B1+B2)*s\n",
+ "Cs=C*s\n",
+ "print'%s %.1f %s'%( 'The strut loads at level A = ',As,' kN')\n",
+ "print'%s %.1f %s'%( ' The strut loads at level B = ',Bs,' kN')\n",
+ "print'%s %.1f %s'%( ' The strut loads at level C =',Cs,' kN')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The strut loads at level A = 109.2 kN\n",
+ " The strut loads at level B = 36.3 kN\n",
+ " The strut loads at level C = 194.1 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter15.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter15.ipynb
new file mode 100755
index 00000000..d6b731fc
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter15.ipynb
@@ -0,0 +1,391 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:22297f0d75def8e7d02cf6683fa1bc18bc061c4f42d017f0fb81a9ce765834b6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15-Slope Stability"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg518"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.The factor of safety against sliding along the soil-rock interface.\n",
+ "#b.The height,H, that will give a factor of safety (Fs) of 2 against sliding alongthe soil-rock interface.\n",
+ "Gs=17.8\n",
+ "Gw=9.81\n",
+ "C=10.\n",
+ "c=20.\n",
+ "b=15.\n",
+ "H=6.\n",
+ "G=Gs-Gw\n",
+ "Fs= C/(Gs*H*math.cos(b/57.3)*math.cos(b/57.3)*math.tan(b/57.3))+G*math.tan(c/57.3)/(Gs*math.tan(b/57.3))\n",
+ "print'%s %.2f %s'%('a)The factor of safety = ',Fs,' ')\n",
+ "Fs=2.\n",
+ "H=2.247/(Fs-0.61)\n",
+ "print'%s %.2f %s'%(' b)H= ',H,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The factor of safety = 0.98 \n",
+ " b)H= 1.62 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Determine the maximum depth up to which the excavation can be carried out.\n",
+ "#b.Find the radius,r, of the critical circle when the factor of safety is equal to 1(Part a).\n",
+ "#c. Find the distance . BC\n",
+ "Cu=40.\n",
+ "G=17.5\n",
+ "b=60.\n",
+ "a=35.\n",
+ "c=72.5\n",
+ "m=0.195\n",
+ "Hc=Cu/(G*m)\n",
+ "r=Hc/(2.*math.sin(a/57.3)*math.sin((c/2)/57.3))\n",
+ "BC=Hc*((1./math.tan(a/57.3))-(1./math.tan(b/57.3)))\n",
+ "print'%s %.1f %s'%('a)The maximum depth Hc = ',Hc,' m')\n",
+ "print'%s %.2f %s'%(' b)The radius, r = ',r,' m')\n",
+ "print'%s %.3f %s'%(' c)The distance BC.= ',BC,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The maximum depth Hc = 11.7 m\n",
+ " b)The radius, r = 17.28 m\n",
+ " c)The distance BC.= 9.973 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Determine the undrained cohesion of the clay (Figure 15.13).\n",
+ "#b.What was the nature of the critical circle?\n",
+ "#c. With reference to the toe of the slope, at what distance did the surface of sliding intersect the bottom of the excavation?\n",
+ "Gs=17.29\n",
+ "d=9.15\n",
+ "d1=6.1\n",
+ "D=d/d1\n",
+ "a=40.\n",
+ "m=0.175\n",
+ "b=40.\n",
+ "H=6.1\n",
+ "Cu=H*Gs*m\n",
+ "print'%s %.1f %s'%('a)The undrained cohesion of the clay Cu = ',Cu,' kN/m**2')\n",
+ "print(' b)The nature of the critical circle is midpointcircle')\n",
+ "d=1.5\n",
+ "b=40.\n",
+ "n=0.9\n",
+ "D1=n*H\n",
+ "print'%s %.1f %s'%(' c)Distance = ',D1,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The undrained cohesion of the clay Cu = 18.5 kN/m**2\n",
+ " b)The nature of the critical circle is midpointcircle\n",
+ " c)Distance = 5.5 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Determine the maximum depth up to which the cut could be made.\n",
+ "#b.How deep should the cut be made if a factor of safety of 2 against sliding is required\n",
+ "Fs=1.\n",
+ "b=56.\n",
+ "Kh=0.25\n",
+ "M=3.66\n",
+ "Cu=500.\n",
+ "G=100.\n",
+ "Hc=Cu*M/G\n",
+ "print'%s %.1f %s'%('a)The maximum depth =',Hc,' ft')\n",
+ "Fs=2.\n",
+ "H=Cu*M/(G*Fs)\n",
+ "print'%s %.1f %s'%(' b)H= ',H,' ft')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The maximum depth = 18.3 ft\n",
+ " b)H= 9.2 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#a.Find the critical height of the slope.\n",
+ "#b.If the height of the slope is 10 m, determine the factor of safety with respect to strength.\n",
+ "b=45.\n",
+ "c=20.\n",
+ "C=24.\n",
+ "G=18.9\n",
+ "m=0.06\n",
+ "Hc=C/(G*m)\n",
+ "Cd=G*Hc*m\n",
+ "Fc=C/Cd\n",
+ "print'%s %.1f %s'%('a)Critical height of slope = ',Hc,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)Critical height of slope = 21.2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg544"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# using Michalowski\u2019s solution.\n",
+ "import math\n",
+ "FSs=1.\n",
+ "c=20.\n",
+ "G=18.9\n",
+ "C=24.\n",
+ "Hcr=C/(G*math.tan(c/57.3)*0.17)\n",
+ "print'%s %.1f %s'%('a)Critical height Hc = ',Hcr,' m')\n",
+ "H=10.\n",
+ "k=C/(G*H*math.tan(c/57.3))\n",
+ "Fs=4.*math.tan(c/57.3)\n",
+ "print'%s %.1f %s'%(' b)Fs = ',Fs,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)Critical height Hc = 20.5 m\n",
+ " b)Fs = 1.5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Determine the factor ofsafety,Fs . Use Table 15.3.\n",
+ "W=22.4\n",
+ "C=20.\n",
+ "a=70.\n",
+ "s=math.sin(a/57.3)\n",
+ "c=math.cos(a/57.3)\n",
+ "l=2.924\n",
+ "Wn=W*s\n",
+ "Wn1=W*c\n",
+ "##doing this to all values\n",
+ "F1=30.501\n",
+ "F2=776.75\n",
+ "F3=1638.\n",
+ "Fs=(F1*C+F3*math.tan(C/57.3))/F2\n",
+ "print'%s %.2f %s'%('Fs = ',Fs,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fs = 1.55 \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#using Michalowski\u2019s solution\n",
+ "C=20.\n",
+ "G=18.5\n",
+ "r=0.25\n",
+ "H=21.62\n",
+ "C=25.\n",
+ "b= math.atan(0.5)\n",
+ "##from table 15.3 \n",
+ "m=1.624\n",
+ "n=1.338\n",
+ "Fs=m-n*r\n",
+ "print'%s %.1f %s'%(' The value of Fs for D= 1 is',Fs,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The value of Fs for D= 1 is 1.3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-pg561"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#using Michalowski\u2019s solution\n",
+ "C=20.\n",
+ "G=18.5\n",
+ "H=21.62\n",
+ "c=25.\n",
+ "r=0.25\n",
+ "Fs=3.1*math.tan(c/57.3)\n",
+ "print'%s %.1f %s'%('Fs = ',Fs,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fs = 1.4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter16.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter16.ipynb
new file mode 100755
index 00000000..250a7911
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter16.ipynb
@@ -0,0 +1,319 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f9b870b8ab70a6506c4707b625840ce3fe5d061d1cd38773c3e0459e51172aa1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter16-Soil-Bearing Capacity for Shallow\n",
+ "Foundations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg587"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#determine the gross allowable load per unit area (qall) that the foundation can carry.\n",
+ "import math\n",
+ "c=20.\n",
+ "## from table 16.1\n",
+ "Nc=17.69\n",
+ "Nq=7.44\n",
+ "Ng=3.64\n",
+ "\n",
+ "Df=3.\n",
+ "G=110.\n",
+ "q=G*Df\n",
+ "\n",
+ "C=200.\n",
+ "B=4.\n",
+ "\n",
+ "Qu= C*Nc+q*Nq+G*B*Ng/2.\n",
+ "\n",
+ "Fs=3.\n",
+ "Qall=Qu/Fs\n",
+ "print'%s %.1f %s'%('Qa = ',Qall,' lb/ft**2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Qa = 2264.7 lb/ft**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg588"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#determine the size of the footing\u2014that is, the size of B.\n",
+ "G=18.15\n",
+ "qa=30000.*9.81/1000.\n",
+ "\n",
+ "Nc=57.75\n",
+ "Nq=41.44\n",
+ "Ng=45.41\n",
+ "C=0.\n",
+ "q=G*1.\n",
+ "B=1.\n",
+ "(1.3*C*Nc+q*Nq+0.4*G*B*Ng)*B**2/3. == qa\n",
+ "B= math.sqrt(294.3/(250.7+109.9))\n",
+ "print'%s %.1f %s'%(' B = ',B,' m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " B = 0.9 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg595"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# Determine the safe gross load (factor of safety of 3) that the footing can carry\n",
+ "B=1.2\n",
+ "L=1.2\n",
+ "c=32.\n",
+ "C=0.\n",
+ "Df=1.\n",
+ "G=16.\n",
+ "Nq=23.18\n",
+ "Ng=22.02\n",
+ "Nc=1.\n",
+ "Lqs=1.+0.1*B*(math.tan(61./57.3)**2.)/L\n",
+ "Lgs=Lqs\n",
+ "Lqd=1.+0.1*Df*math.tan(61./57.3)/B\n",
+ "Lgd=Lqd\n",
+ "Lcs=1.\n",
+ "Lcd=1.\n",
+ "Gs=19.5\n",
+ "q=0.5*G+0.5*(Gs-9.81)\n",
+ "Qu= C*Lcs*Lcd*Nc+q*Lqs*Lqd*Nq+(Gs-9.81)*Lgs*Lgd*B*Ng/2.\n",
+ "Qa=Qu/3.\n",
+ "Q=Qa*B**2.\n",
+ "print'%s %.1f %s'%('the gross load = ',Q,' kN')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the gross load = 311.6 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg601"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the magnitude of the gross ultimate load applied eccentrically for bearing capacity failure in soil.\n",
+ "e=0.1\n",
+ "B=1.\n",
+ "X=B-2.*e\n",
+ "Y=1.5\n",
+ "B1=0.8\n",
+ "L1=1.5\n",
+ "c=30.\n",
+ "Df=1.\n",
+ "Nq=18.4\n",
+ "Ng=15.668\n",
+ "q=1.*18.\n",
+ "G=18.\n",
+ "Lqs=1.+e*(B1/L1)*math.tan(60./57.3)**2.\n",
+ "Lgs=Lqs\n",
+ "Lqd=1.+e*(Df/B1)*math.tan(60./57.3)\n",
+ "Lgd=Lqd\n",
+ "qu=q*Lqs*Lqd*Nq+Lgs*Lgd*G*B1*Ng/2.\n",
+ "Qu=qu*B1*L1\n",
+ "print'%s %.1f %s'%('The magnitude of the gross ultimate load =',Qu,' kN')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The magnitude of the gross ultimate load = 751.8 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg601"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#determine the gross ultimate load per unit length that the foundation can carry.\n",
+ "import math\n",
+ "B=1.5\n",
+ "Df=0.75\n",
+ "e=0.1*B\n",
+ "G=17.5\n",
+ "c=30.\n",
+ "C=0.\n",
+ "q=G*Df\n",
+ "Nq=18.4\n",
+ "Ng=15.668\n",
+ "Lqd=1.+0.1*(Df/B)*math.tan(60./57.3)\n",
+ "Lgd=Lqd\n",
+ "Quc=q*Nq*Lqd+Lgd*B*Ng/2.\n",
+ "k=0.8\n",
+ "a=1.754\n",
+ "Qua=Quc*(1.-a*(e/B)**k)\n",
+ "print'%s %.1f %s'%('The gross ultimate load per unit length = ',Qua,' kN')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The gross ultimate load per unit length = 198.7 kN\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Estimate the ultimate bearing capacity of a circular footing with a diameter of 1.5 m. The soil is sandy.\n",
+ "Qup=280.\n",
+ "Bp=0.7 ## in m\n",
+ "Bf=1.5\n",
+ "Quf=Qup*Bf/Bp\n",
+ "print'%s %.1f %s'%('The ultimate bearing capacity = ',Quf,' kN/m**2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ultimate bearing capacity = 600.0 kN/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Determine the size of a square column foundation that should carry a load of 2500 kN with a maximum settlement of 25 mm.\n",
+ "a=2500.\n",
+ "##doing for the first values only\n",
+ "Bf=4.\n",
+ "Bp=0.305\n",
+ "q=a/Bf**2.\n",
+ "Sep=4.\n",
+ "Sef=Sep*(2.*Bf/(Bf+Bp))**2\n",
+ "print'%s %.1f %s'%('Sef = ',Sef,' mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sef = 13.8 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter18.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter18.ipynb
new file mode 100755
index 00000000..642dccef
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter18.ipynb
@@ -0,0 +1,124 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c0db9cffec0e49340dfb3b8ea72b7fe58131405a32fcba0dd38be68beb6719b2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter18-Subsoil Exploration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg642"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine the correctedstandard penetration numbers, (N1)60, at various depths\n",
+ "import math\n",
+ "##solving for z=5 only\n",
+ "To=0.275\n",
+ "Cn=To**(-0.5)\n",
+ "N60=8\n",
+ "N160=Cn*N60\n",
+ "print'%s %.1f %s'%('(N1)60 = ',N160,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(N1)60 = 15.3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg643"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#estimate the average soil friction angle,f\u0003, from z\u00020 to z\u000225 ft\n",
+ "#import math\n",
+ "z=5.\n",
+ "To=0.275\n",
+ "Cn=2./(1.+To)\n",
+ "N60=8.\n",
+ "N160=Cn*N60\n",
+ "print'%s %.1f %s'%('(N1)60 = ',N160,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(N1)60 = 12.5 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg643"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#estimate the average soil friction angle, f\u0003, from z\u00020 to z\u000225 ft\n",
+ "import math\n",
+ "pa=1. ## 14.7 lb/in**2 = 1ton/ft**2\n",
+ "To=0.275 ## ton/ ft**2\n",
+ "N60=8.\n",
+ "c= math.atan((N60/12.2+20.3*(To/pa))*57.3)**0.34\n",
+ "print'%s %.1f %s'%('The average soil friction angle = ',c,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average soil friction angle = 1.2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter2.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter2.ipynb
new file mode 100755
index 00000000..d6a4aa22
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter2.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d218f94a8c632b085e71b27c7df143c1bf3edcfb5f6cf33f03429d4e281c4928"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2-Origin of sail and Grain size"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate uniformity coefficient and coefficient of gradation\n",
+ "##initialisation of variables\n",
+ "##from graph\n",
+ "d= 0.15 ##mm\n",
+ "w= 0.17 ##mm\n",
+ "a= 0.27 ##mm\n",
+ "##calculations\n",
+ "C= a/d\n",
+ "c= w**2/(a*d)\n",
+ "##results\n",
+ "print'%s %.1f %s'%('uniformity coefficient = ',C,\"\")\n",
+ "print'%s %.2f %s'% ('coefficient of gradation = ',c,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "uniformity coefficient = 1.8 \n",
+ "coefficient of gradation = 0.71 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter3.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter3.ipynb
new file mode 100755
index 00000000..16fb2a1b
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter3.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dd7ff85f7d52d3589a1d7be4767ada04770d7408bb98377fd79ee304b32478a3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3-Weight- volume relationships"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg 60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#evaluvate moist and dry density and void ratio and porosity and degree of saturation and volume of water in soil sample\n",
+ "##initialisation of variables\n",
+ "V= 1.2 ##m**3\n",
+ "M= 2350. ##Kg\n",
+ "w= 0.086\n",
+ "G= 2.71\n",
+ "W= 1000. ##kg/m**3\n",
+ "##calculations\n",
+ "R= M/V\n",
+ "D= M/((1.+w)*V)\n",
+ "e= (G*W/D)-1.\n",
+ "n= e/(e+1.)\n",
+ "S= (w*G/e)*100.\n",
+ "v= (M-(M/(1.+w)))/W\n",
+ "##results\n",
+ "print'%s %.1f %s'% ('moist density = ',R,' kg/m**3 ')\n",
+ "print'%s %.1f %s'% ('dry density = ',D,' kg/m**3 ')\n",
+ "print'%s %.3f %s'% ('void ratio = ',e,' ')\n",
+ "print'%s %.3f %s'% ('porosity = ',n,'')\n",
+ "print'%s %.3f %s'% ('Degree of saturation = ',S,' ')\n",
+ "print'%s %.3f %s'% ('volume of water in soil sample = ',v,' m**3 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "moist density = 1958.3 kg/m**3 \n",
+ "dry density = 1803.3 kg/m**3 \n",
+ "void ratio = 0.503 \n",
+ "porosity = 0.335 \n",
+ "Degree of saturation = 46.349 \n",
+ "volume of water in soil sample = 0.186 m**3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg 63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte mass of water to be added for full saturation\n",
+ "##initialisation of variables\n",
+ "n= 0.4\n",
+ "G= 2.68\n",
+ "w= 0.12\n",
+ "R= 1000. ##kg/m**3\n",
+ "V= 10. ##m**3\n",
+ "##calculations\n",
+ "d= G*R*(1.-n)*(1.+w)\n",
+ "s= ((1.-n)*G+n)*R\n",
+ "M= s-d\n",
+ "m= M*V\n",
+ "##results\n",
+ "print'%s %.1f %s'%('mass of water to be added for full saturation = ',m,' kg ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of water to be added for full saturation = 2070.4 kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculatesatuarated unit weight and specific gravity and void ratio \n",
+ "##initialisation of variables\n",
+ "d= 16.19 ##kN/m**3\n",
+ "w= 0.23\n",
+ "W= 9.81 ##kN/m**3\n",
+ "##calculations\n",
+ "R= d*(1.+w)\n",
+ "G= d/(W-d*w)\n",
+ "e= w*G\n",
+ "##results\n",
+ "print'%s %.2f %s'%('satuarated unit weight = ',R,' kN/m**3 ')\n",
+ "print '%s %.2f %s'%('specific gravity = ',G,' ')\n",
+ "print'%s %.2f %s'% ('void ratio = ',e,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "satuarated unit weight = 19.91 kN/m**3 \n",
+ "specific gravity = 2.66 \n",
+ "void ratio = 0.61 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate relative density of compaction in percentage\n",
+ "##initialisation of variables\n",
+ "G= 2.68\n",
+ "w= 0.12\n",
+ "d= 1794.4 ##kg/m**3\n",
+ "W= 1000. ##kg/m**3\n",
+ "emax= 0.75\n",
+ "emin= 0.4\n",
+ "##calculation\n",
+ "e= (G*W*(1.+w)/d)-1.\n",
+ "D= ((emax-e)/(emax-emin))*100.\n",
+ "##results\n",
+ "print'%s %.1f %s'% ('relative density of compaction in percentage = ',D,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "relative density of compaction in percentage = 22.1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter4.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter4.ipynb
new file mode 100755
index 00000000..899bd2de
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter4.ipynb
@@ -0,0 +1,61 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ec42a40195fbc1251bf05efd578442adffe962bc7bf4cd047dc1251517110ed5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter4-Plasticity and Structure of soil"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate shrinkage limit of the soil \n",
+ "##initialisation of variables\n",
+ "V1= 24.6 ##cm^3\n",
+ "V2= 15.9 ##cm^3\n",
+ "M1= 44 ##g\n",
+ "M2= 30.1 ##g\n",
+ "W= 1 ##g/cm^3\n",
+ "##calculations\n",
+ "SL= (((M1-M2)/M2)*100)-(((V1-V2)/M2)*W*100.)\n",
+ "##results\n",
+ "print'%s %.1f %s'%('shrinkage limit of the soil = ',SL,' ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "shrinkage limit of the soil = 17.3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter6.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter6.ipynb
new file mode 100755
index 00000000..c085ddbe
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter6.ipynb
@@ -0,0 +1,148 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7d0e973e8ccf199512f5a464e18af5d87fc63e5365435eef6c9cd5f40b3801c3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6-Soil Compaction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum dry density and optimum moisture content\n",
+ "##initialisation of variables\n",
+ "G= 2.6\n",
+ "LL= 20.\n",
+ "P= 20.\n",
+ "##calclations\n",
+ "R= (4804574.*G-195.55*(LL)**2+156971*(P)**0.5-9527830)**0.5\n",
+ "n= (1.195e-4)*((LL)**2)-1.964*G-(6.617e-5)*(P)+7.651\n",
+ "w= math.e**n\n",
+ "##results\n",
+ "print'%s %.1f %s'% ('maximum dry density = ',R,' kg/m^3 ')\n",
+ "print'%s %.2f %s'%('optimum moisture content = ',w,' ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum dry density = 1894.2 kg/m^3 \n",
+ "optimum moisture content = 13.34 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate dry unit weight of compaction in the field and dry unit weight of compaction in the field\n",
+ "##initialisation of variables\n",
+ "do= 1570. ##kg/m^3\n",
+ "mo= 0.545 ##kg\n",
+ "M1= 7.59 ##kg\n",
+ "M2= 4.78 ##kg\n",
+ "M3= 3.007 ##kg\n",
+ "w= 0.102 ##\n",
+ "dmax= 19. ##KN/m^3\n",
+ "##calculations\n",
+ "Ms= M1-M2\n",
+ "Mc= Ms-mo\n",
+ "Vh= Mc/do\n",
+ "Dc= M3/Vh\n",
+ "Du= Dc*9.81/1000.\n",
+ "f= Du/(1.+w)\n",
+ "Rc= f*100./dmax\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('dry unit weight of compaction in the field = ',f,' kN/m^3 ')\n",
+ "print'%s %.1f %s'% ('relative compaction in the field = ',Rc,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dry unit weight of compaction in the field = 18.55 kN/m^3 \n",
+ "relative compaction in the field = 97.7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate sustainabilty number\n",
+ "##initialisation of variables\n",
+ "D1= 0.36 ##mm\n",
+ "D2= 0.52 ##mm\n",
+ "D5= 1.42 ##mm\n",
+ "##calculations\n",
+ "Sn= 1.7*(math.sqrt((3./(D5)**2)+(1./(D2)**2)+(1./(D1)**2)))\n",
+ "##results\n",
+ "print'%s %.1f %s'% ('sustainabilty number = ',Sn,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "sustainabilty number = 6.1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter7.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter7.ipynb
new file mode 100755
index 00000000..75e8c79b
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter7.ipynb
@@ -0,0 +1,444 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:db9787af9c3d4874a56e96ce130e20ad75db81e8408117171d5753e7537a242c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Permeability"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the hydraulic conductivity in cm/sec.\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "L= 30. ##cm\n",
+ "A= 177. ##cm^2\n",
+ "h= 50. ##cm\n",
+ "Q= 350. ##cm^3\n",
+ "t= 300. ##sec\n",
+ "##claculations\n",
+ "k=Q*L/(A*h*t)\n",
+ "##results\n",
+ "print'%s %.4f %s'% ('hydraulic conductivity = ',k,' cm/sec ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic conductivity = 0.0040 cm/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg169\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine the hydraulic conductivity of the soil in in./sec.\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "L= 203. ##mm\n",
+ "A= 10.3 ##cm^2\n",
+ "a= 0.39 ##cm^2\n",
+ "h0= 508. ##mm\n",
+ "h180= 305. ##mm\n",
+ "t= 180. ##sec\n",
+ "##calculations\n",
+ "k= 2.303*a*L*math.log10(h0/h180)/(A*t)\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('hydraulic conductivity of sand = ',k,' in/sec ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic conductivity of sand = 0.02 in/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#The hydraulic conductivity of a clayey soil is 3 107 cm/sec. The viscosity of water at 25\u00b0C is 0.0911 104 g # sec/cm2 \n",
+ "#Calculate the absolute permeability of the soil.\n",
+ "import math\n",
+ "##initialisation of varilables\n",
+ "k= 3e-7 ##cm/sec\n",
+ "n= 0.0911e-4 ##g*sec/cm^2\n",
+ "dw= 1 ##g/cc\n",
+ "##calculations\n",
+ "K= k*n/dw\n",
+ "##results\n",
+ "print'%s %.4f %s'% ('absolute premeability = ',K,' cm^2 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "absolute premeability = 0.0000 cm^2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#With k 5.3 105 m/sec for the permeable layer, calculate the rate of seepage through it in m3 /hr/m width if H 3 m and a 8\u00b0.\n",
+ "\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "k= 5.3e-5 ##m/sec\n",
+ "H= 3 ##m\n",
+ "a= 0.139 ##radians\n",
+ "##calculations\n",
+ "A= H*math.cos(a)\n",
+ "i= math.sin(a)\n",
+ "q= k*i*A*3600\n",
+ "##results\n",
+ "print'%s %.4f %s'% ('rate of seepage = ',q,' m^3/hr/m ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of seepage = 0.0785 m^3/hr/m \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate flow rate\n",
+ "##initialisation of variables\n",
+ "L= 50. ##m\n",
+ "k= 0.08e-2##m/sec\n",
+ "h= 4. ##m\n",
+ "H1= 3. ##m\n",
+ "H= 8. ##m\n",
+ "a= 0.139 ##radians\n",
+ "##calculations\n",
+ "i= h*math.cos(a)/L\n",
+ "A= H1*math.cos(a)\n",
+ "q= k*i*A\n",
+ "##results\n",
+ "print'%s %.5f %s'% ('flow rate = ',q,' m^3/sec/m ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "flow rate = 0.00019 m^3/sec/m \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate hydraulic conductivity at void ratio of 0.65\n",
+ "##initialisation of variables\n",
+ "k1= 0.02 ##cm/sec\n",
+ "e1= 0.5 \n",
+ "e2= 0.65\n",
+ "##calculations\n",
+ "k2= k1*(e2**3/(1.+e2))/(e1**3/(1.+e1))\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('hydraulic conductivity at void ratio of 0.65 =',k2,'cm/sec ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic conductivity at void ratio of 0.65 = 0.04 cm/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate hydraulic conductivity\n",
+ "##initialisation of variables\n",
+ "e= 0.6\n",
+ "D10= 0.09 ##mm\n",
+ "##calculations\n",
+ "k= 2.4622*(D10**2*(e**3/(1+e)))**0.7825\n",
+ "##results\n",
+ "print'%s %.4f %s'% ('hydraulic conductivity = ',k,' cm/sec ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic conductivity = 0.0119 cm/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9-pg177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate hydraulic conductivity\n",
+ "##initialisation of variables\n",
+ "e= 0.6\n",
+ "D10= 0.09 ##mm\n",
+ "D60= 0.16 ##mm\n",
+ "##calculations\n",
+ "Cu=D60/D10\n",
+ "k= 35*(e**3/(1+e))*(Cu**0.6)*(D10**2.32)\n",
+ "##results\n",
+ "print'%s %.3f %s'% ('hydraulic conductivity =',k,'cm/sec ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic conductivity = 0.025 cm/sec \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate hydraulic conductivity\n",
+ "##initialisation of variables\n",
+ "k1= 0.302e-7 ##cm/sec\n",
+ "k2= 0.12e-7 ##cm/sec\n",
+ "e1= 1.1\n",
+ "e2= 0.9\n",
+ "e= 0.75\n",
+ "##calcualtions\n",
+ "n= (math.log10((k1/k2)*((1+e1)/(1+e2))))/math.log10(e1/e2)\n",
+ "C= k1/(e1**n/(1+e1))\n",
+ "k= C*(e**n/(1+e))\n",
+ "##results\n",
+ "print'%s %.e %s'% ('hydraulic conductivity =',k,'cm/sec')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hydraulic conductivity = 5e-09 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex11-185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate ration of equivalent hydraulic conductivity\n",
+ "##initialisation of variables\n",
+ "H1= 2. ##m\n",
+ "H2= 3. ##m\n",
+ "H3= 4. ##m\n",
+ "k1= 1e-4 ##cm/sec\n",
+ "k2= 3.2e-2 ##cm/sec\n",
+ "k3= 4.1e-5 ##cm/sec\n",
+ "##calculations\n",
+ "H= H1+H2+H3\n",
+ "Kh= (1./H)*((k1*H1)+(k2*H2)+(k3*H3))\n",
+ "Kv= H/((H1/k1)+(H2/k2)+(H3/k3))\n",
+ "P= Kh/Kv\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('ration of equivalent hydraulic conductivity =',P,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ration of equivalent hydraulic conductivity = 139.97 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex12-pg186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of water supply\n",
+ "##initialisation of variables\n",
+ "H= 450. ##mm\n",
+ "h= 150. ##mm\n",
+ "k1= 1e-2 ##cm/sec\n",
+ "k2= 3e-3 ##cm/sec\n",
+ "k3= 4.9e-4 ##cm/sec\n",
+ "h1= 300. ##mm\n",
+ "##calculations\n",
+ "Kv= H/(h*(1./k1+1./k2+1./k3))\n",
+ "i= h1/H\n",
+ "q= Kv*i*100.*3600.\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('rate of water supply =',q,' cm/hr ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of water supply = 291.01 cm/hr \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter8.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter8.ipynb
new file mode 100755
index 00000000..70736c62
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter8.ipynb
@@ -0,0 +1,241 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0e14a7576f4038d6474523e0faf6c534de06cbb509045bb799ae70b4aaeef049"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-See page"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of water flow\n",
+ "##initialisation of variables\n",
+ "H1= 12. ##in\n",
+ "H2= 20. ##in\n",
+ "z= 8. ##in\n",
+ "h1= 24. ##in\n",
+ "h= 20. ##in\n",
+ "k1= 0.026 ##in/sec\n",
+ "D= 3. ##in\n",
+ "##calculations\n",
+ "k2= H2*k1/((z/(1.-h/h1))-H1)\n",
+ "i= h1/(H1+H2)\n",
+ "A= math.pi/4.*D**2\n",
+ "keq= (H1+H2)/((H1/k1)+(H2/k2))\n",
+ "q= keq*A*i*3600.\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('rate of water flow = ',q,' in^3/hr ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of water flow = 330.81 in^3/hr \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate a)How high (above the ground surface) the water will rise if piezometers are placed at points aandb.\n",
+ "#b.The total rate of seepage through the permeable layer per unit length\n",
+ "#c. The approximate average hydraulic gradient at c.\n",
+ "##initialisation of variables\n",
+ "Nd= 6.\n",
+ "H1= 5.6 ##m\n",
+ "H2= 2.2 ##m\n",
+ "k= 5e-5 ##cm/sec\n",
+ "dL= 4.1 ##m\n",
+ "##calculations\n",
+ "H= (H1-H2)/Nd\n",
+ "h1= 5.61-H\n",
+ "h2= 5.61-5.*H\n",
+ "q= 2.38*(H1-H2)*k/Nd\n",
+ "i= H/dL\n",
+ "##results\n",
+ "print'%s %.3f %s'% ('at point a,water will rise to height of = ',h1,' m ')\n",
+ "print'%s %.3f %s'% ('at point b,water will rise to height of =',h2,' m ')\n",
+ "print'%s %.e %s'% ('total rate of seepage per unit lenghth = ',q,' m^3/sec/m ')\n",
+ "print'%s %.3f %s'% ('average hydraulic gradient at c = ',i,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at point a,water will rise to height of = 5.043 m \n",
+ "at point b,water will rise to height of = 2.777 m \n",
+ "total rate of seepage per unit lenghth = 7e-05 m^3/sec/m \n",
+ "average hydraulic gradient at c = 0.138 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate average rate of flow\n",
+ "##initialisation of variables\n",
+ "k1= 5.67 ##ft/day\n",
+ "k2= 11.34 ##ft/day\n",
+ "##from graph\n",
+ "Nd= 8\n",
+ "Nf= 2.5\n",
+ "H= 20\n",
+ "##calculations\n",
+ "q= math.sqrt(k1*k2)*H*Nf/Nd\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('average rate of flow = ',q,' ft^3/day/ft ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average rate of flow = 50.12 ft^3/day/ft \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate seepage under the dam \n",
+ "##initialisation of variables\n",
+ "B= 6. ##m\n",
+ "L= 120. ##m\n",
+ "s= 3. ##m\n",
+ "T= 6. ##m\n",
+ "x= 2.4 ##m\n",
+ "H= 5. ##m\n",
+ "k= 0.008 ##cm/sec\n",
+ "##calculations\n",
+ "b=B/2.\n",
+ "a1= b/T\n",
+ "a2= s/T\n",
+ "a3= x/b\n",
+ "Q= 0.378*k*H*L*36*24\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('seepage under the dam = ',Q,' m^3/day ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "seepage under the dam = 1567.64 m^3/day \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate seepage rate\n",
+ "##initialisation of variables\n",
+ "b= math.pi/4. ##degrees\n",
+ "a= math.pi/6.##degrees\n",
+ "B= 10. ##ft\n",
+ "H= 20. ##ft\n",
+ "h= 25. ##ft\n",
+ "k= 2e-4 ##ft/min\n",
+ "##calculations\n",
+ "r= H/math.tan(b)\n",
+ "d= 0.3*r+(h-H)/math.tan(b)+B+h/math.tan(a)\n",
+ "L= d/math.cos(a)-math.sqrt((d/math.cos(a))**2-(H/math.sin(a))**2)\n",
+ "q= k*L*math.tan(a)*math.sin(a)*24.*60\n",
+ "##results\n",
+ "print'%s %.4f %s'% ('seepage rate = ',q,' ft^3/day/ft ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "seepage rate = 0.9724 ft^3/day/ft \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/Chapter9.ipynb b/Principles_Of_Geotechnical_Engineering/Chapter9.ipynb
new file mode 100755
index 00000000..08984b22
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/Chapter9.ipynb
@@ -0,0 +1,205 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b2df79b1bfe1bd5bb53b7bb0f72d193619dc333d1434a7c1a2462664a1d1323a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-In situ stresses"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate total pressure and pore water pressure and effective stress at point\n",
+ "##initialisation of variables\n",
+ "Ds= 16.5 ##kN/m**3\n",
+ "S= 19.25 ##kN/m**3\n",
+ "g= 9.8 ##kN/m**3\n",
+ "h1= 6. ##m\n",
+ "h2= 13. ##m\n",
+ "##at point A\n",
+ "Sa= 0.\n",
+ "Ua= 0.\n",
+ "Sa1= 0.\n",
+ "##at point B\n",
+ "Sb= h1*Ds\n",
+ "Ub= 0.\n",
+ "Sb1= Sb-Ub\n",
+ "##at point C\n",
+ "Sc= h1*Ds+h2*S\n",
+ "Uc= h2*g\n",
+ "Sc1= Sc-Uc\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('total pressure at C= ',Sc,' kN/m**3 ')\n",
+ "print'%s %.2f %s'% ('pore water pressure at C = ',Uc,' kN/m**3 ')\n",
+ "print'%s %.2f %s'% ('effective stress at point C=',Sc1,' kN/m**3 ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure at C= 349.25 kN/m**3 \n",
+ "pore water pressure at C = 127.40 kN/m**3 \n",
+ "effective stress at point C= 221.85 kN/m**3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate maximu depth that can be made in clay\n",
+ "##initialisation of variables\n",
+ "h= 20. ##ft\n",
+ "g= 120. ##kg/ft**3\n",
+ "h1= 12. ##ft\n",
+ "w= 62.4 ##kg/ft**3\n",
+ "##calculations\n",
+ "H= h-(h1*w/g)\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('maximu depth that can be made in clay = ',H,' ft ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximu depth that can be made in clay = 13.76 ft \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate effective stress at point a and b and see page force per unit voume\n",
+ "##initialisation of variables\n",
+ "G= 2.68\n",
+ "e= 0.52\n",
+ "g= 9.81 ##kN/m^3\n",
+ "h1= 0.7 ##m\n",
+ "h2= 1 ##m\n",
+ "h3= 1.5 ##m\n",
+ "h4= 2 ##m\n",
+ "##calculations\n",
+ "##for soil A\n",
+ "sa= (G+e)*g/(1.+e)\n",
+ "##point a\n",
+ "Sa= h1*g+h2*sa\n",
+ "u= (h2+h1+h3/2.)*g\n",
+ "Es= Sa-u\n",
+ "##point b\n",
+ "sb= h1*g+h4*sa\n",
+ "ub= (h4+h1+h3)*g\n",
+ "Eb= sb-ub\n",
+ "i= h3/2.\n",
+ "s= i*g\n",
+ "##results\n",
+ "print'%s %.2f %s'% ('effective stress at point a=',Es,' kN/m^2 ')\n",
+ "print'%s %.2f %s'% ('effective stress at point b= ',Eb,'kN/m^2 ')\n",
+ "print'%s %.2f %s'% ('seepage force per unit voume = ',s,' kN/m^3 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective stress at point a= 3.49 kN/m^2 \n",
+ "effective stress at point b= 6.97 kN/m^2 \n",
+ "seepage force per unit voume = 7.36 kN/m^3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate safety factor\n",
+ "##initialisation of variables\n",
+ "C0= 0.357\n",
+ "H1= 30.5 ##ft\n",
+ "H2= 5. ##ft\n",
+ "w= 62.4 ## lb/ft^3\n",
+ "D= 20.\n",
+ "g= 112. ## lb/ft^3\n",
+ "##calculations\n",
+ "G= g-w\n",
+ "FS= D*G/(C0*w*(H1-H2))\n",
+ "##results\n",
+ "print'%s %.1f %s'% ('safety factor =',FS,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "safety factor = 1.7 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Principles_Of_Geotechnical_Engineering/screenshots/Chapter10.png b/Principles_Of_Geotechnical_Engineering/screenshots/Chapter10.png
new file mode 100755
index 00000000..a5442a30
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/screenshots/Chapter10.png
Binary files differ
diff --git a/Principles_Of_Geotechnical_Engineering/screenshots/Chapter11.png b/Principles_Of_Geotechnical_Engineering/screenshots/Chapter11.png
new file mode 100755
index 00000000..0388ffe0
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/screenshots/Chapter11.png
Binary files differ
diff --git a/Principles_Of_Geotechnical_Engineering/screenshots/Chapter18.png b/Principles_Of_Geotechnical_Engineering/screenshots/Chapter18.png
new file mode 100755
index 00000000..46013806
--- /dev/null
+++ b/Principles_Of_Geotechnical_Engineering/screenshots/Chapter18.png
Binary files differ
diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
index 92842ba6..5a99346e 100755
--- a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
+++ b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb
@@ -1,3 +1,728 @@
+<<<<<<< HEAD
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:23cf65a359a2231e3abd5faae195b73ed4d5756e6083812ae87c387c1bb53f5a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 15: Additional in 'C'<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.1, Page number: 505<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Allocate memory to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#malloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many number : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 4 = 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 1\t2\t3\t4\t"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.2, Page number: 506<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Memory allocation to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many Number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#calloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many Number : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 58\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 98\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 45\t58\t98\t"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.3, Page number: 507<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reallocate memory \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "str1 = \"India\"\n",
+ "\n",
+ "#in python, value tagged method is used for data storage instead of memory tagging.\n",
+ "#no realloc function is in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"str = %s\"%(str1))\n",
+ "str1 = \"Hindustan\"\n",
+ "sys.stdout.write(\"\\nNow str = %s\"%(str1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "str = India\n",
+ "Now str = Hindustan"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.4, Page number: 508<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display unused memory \n",
+ "\n",
+ "import psutil\n",
+ "\n",
+ "psutil.phymem_usage()\n",
+ "\n",
+ "#There is no coreleft() function in python. phymem_usage function in the module psutil gives the \n",
+ "#status and usage of physical memory in python."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 6,
+ "text": [
+ "usage(total=3165270016L, used=987840512L, free=2177429504L, percent=31.2)"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.5, Page number: 510<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Linked list\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialziation\n",
+ "ch = 'y'\n",
+ "p = 0\n",
+ "q = []\n",
+ "\n",
+ "#Function Definitions\n",
+ "def gen_rate(m):\n",
+ " q.append(m)\n",
+ " \n",
+ "def show():\n",
+ " print q\n",
+ " \n",
+ "def addatstart(m):\n",
+ " q.insert(0,m)\n",
+ " \n",
+ "def append(m,po):\n",
+ " q.insert(po,m)\n",
+ "\n",
+ "def erase(d):\n",
+ " q.remove(d)\n",
+ " \n",
+ "def count():\n",
+ " print len(q)\n",
+ " \n",
+ "def descending():\n",
+ " q.sort(reverse=True)\n",
+ " \n",
+ "#Get choice\n",
+ "while ch == 'y':\n",
+ " n = int(raw_input(\"1. Generate\\n2. Add at starting\\n3. Append\\n4. Delete\\n5. Show\\n6.Count\\n7.Descending\\nEnter your choice: \"));\n",
+ " #There is no switch statement in python\n",
+ " if n == 1:\n",
+ " i = int(raw_input(\"How many node you want : \"))\n",
+ " for j in range(0,i):\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " gen_rate(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 2:\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " addatstart(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 3:\n",
+ " m = int(raw_input(\"Enter the element and position \"))\n",
+ " po = int(raw_input(\"Enter the element and position\"))\n",
+ " append(m,po)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 4:\n",
+ " d = int(raw_input(\"Enter the number for deletion : \"))\n",
+ " erase(d)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 5:\n",
+ " show()\n",
+ " else:\n",
+ " if n == 6:\n",
+ " count()\n",
+ " else:\n",
+ " if n == 7:\n",
+ " descending()\n",
+ " show()\n",
+ " else:\n",
+ " sys.stdout.write(\"Enter value between 1 to 7\")\n",
+ " \n",
+ " ch = raw_input(\"Do u wnat to continue (y/n)\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Generate\n",
+ "2. Add at starting\n",
+ "3. Append\n",
+ "4. Delete\n",
+ "5. Show\n",
+ "6.Count\n",
+ "7.Descending\n",
+ "Enter your choice: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many node you want : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[1, 5, 4, 7]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do u wnat to continue (y/n)n\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.6, Page number: 518<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw circle, line and arc using graphics function\n",
+ "\n",
+ "%matplotlib inline\n",
+ "import pylab\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# matplotlib package is used for graphics\n",
+ "#Give proportionate sizes to draw\n",
+ "#draw circle\n",
+ "circle2=plt.Circle((.5,.5),.2,color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(circle2)\n",
+ "\n",
+ "\n",
+ "#draw line\n",
+ "figure()\n",
+ "pylab.plot([210,110],[150,150])\n",
+ "\n",
+ "#Draw ellipse\n",
+ "figure()\n",
+ "from matplotlib.patches import Ellipse\n",
+ "e = Ellipse(xy=(35, -50), width=10, height=5, linewidth=2.0, color='g')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(plt.axes().bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 5,
+ "text": [
+ "(-65, -35)"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x399d950>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAD9CAYAAABdoNd6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGe9JREFUeJzt3X10U3W+7/HfrpRzikXbLmjokEAjoFCatLEBAU8lIxQK\nXAdRl4t4BW8j67JwXc/RVECdqyT3jFCKxQdm6XSWtCMwB9aZw0BnRqgEIaVzEEufbAUdGExtAzFQ\nSj32QQp03z/mxhs7JRCagu3v/Vprr7X720/fL7SfpnvvZCuqqgoAwOAWdasLAAD0P8IeACRA2AOA\nBAh7AJAAYQ8AEiDsAUACIcPeZrMVaTQav8FgqA+MORwOh1ar9ZpMphqTyVSzd+/eeUII8d133/2j\n1WrdbjQa61JSUo7n5eW92N/FAwCuT8iwz8nJKS4tLc0OHlMURbXb7RtrampMNTU1pnnz5u0VQogd\nO3YsFkKIuro6Y1VVVUZhYeHyxsbGMf1XOgDgeoUM+8zMzPL4+PgLPcdVVVV6jiUlJfna29tvv3Ll\nym3t7e23Dx06tOuOO+74r0gWCwC4MUNuZKNNmzY9u2XLlqVms7myoKAgNy4urnXu3Lkfbt26dUlS\nUpKvo6Nj2JtvvvlcXFxca89tFUXhLbsAEKbeXmSHI+wLtCtWrHjX4/Hoa2tr05OSkny5ubkFQgix\nbdu2Jzs7O2N8Pl+Sx+PRv/766y94PB79VYoelNOaNWtueQ30R3/0N/imSAg77BMTE88qiqIqiqIu\nW7bsvYqKiqlCCHH48OEZixYt2nXbbbddGTly5Ln777//PysrK80RqRIA0Cdhh73P50sKzO/atWtR\n4E6diRMnfnHgwIEHhRCivb399iNHjkybNGnS55ErFQBwo0Kes7dardvLyspmNjc3j9DpdE1Op3ON\n2+221NbWpiuKour1ek9hYeFyIYRYvnx54dNPP73ZYDDUd3d3R9lstqLU1NTPbk4bPw4Wi+VWl9Cv\n6G9goz+5KZE6H3TdB1QU9WYfEwAGMkVRhHqzL9ACAAYewh4AJEDYA4AECHsAkABhDwASIOwBQAKE\nPQBIgLAHAAkQ9gAgAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0ASICwBwAJEPYAIAHCHgAkQNgD\ngARChr3NZivSaDR+g8FQHxhzOBwOrVbrNZlMNSaTqaa0tDQ7sKyurs44ffr0j1NTUz8zGo11Fy9e\n/If+LB4AcH1CPnC8vLw8MzY2tm3p0qVb6uvrDUII4XQ61wwfPvxbu92+MXjdy5cvD8nIyKjatm3b\nkwaDof7ChQvxd9555zdRUVHdPzggDxwHgLD0+wPHMzMzy+Pj4y/0HO/toPv27ZtjNBrrAn8FxMfH\nX+gZ9ACAW2PIjWy0adOmZ7ds2bLUbDZXFhQU5MbFxbWePHlygqIoanZ2dum5c+dGLl68eMfKlSs3\n9La9w+H4ft5isQiLxXJDxQPAYOR2u4Xb7Y7sTlVVDTl5PJ7k1NTU+sDXfr8/sbu7W+nu7lZ+/vOf\n/8Jms21WVVVs2LDhBb1e/+X58+cTOjo6YqZPn374o48+erDn/v52SADA9fp/uXnNvA41hX03TmJi\n4llFUVRFUdRly5a9V1FRMVUIIXQ6XdMDDzxwKCEhoSUmJqZz/vz5e6qrq++N7K8mAMCNCDvsfT5f\nUmB+165diwLn6OfMmbOvvr7e0NnZGXP58uUhZWVlMydPnnwsksUCAG5MyHP2Vqt1e1lZ2czm5uYR\nOp2uyel0rnG73Zba2tp0RVFUvV7vKSwsXC7E3y7I2u32jVOmTDmqKIq6YMGCD+bNm7f35rQBAAgl\n5K2X/XJAbr0EgLD0+62XAIDBgbAHAAkQ9gAgAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0ASICw\nBwAJEPYAIAHCHgAkQNgDgAQIewCQAGEPABIg7AFAAoQ9AEiAsAcACRD2ACCBkGFvs9mKNBqN32Aw\n1AfGHA6HQ6vVek0mU43JZKopLS3NDt6msbFxTGxsbFtBQUFufxUNAAhPyLDPyckp7hnmiqKodrt9\nY01NjammpsaUnZ1dGrzcbrdvXLBgwQf9USwA4MYMCbUwMzOzvKGhIbnn+NWecr579+6H77rrri9v\nv/329lD7dTgc389bLBZhsViup1YAkILb7RZutzui+1RUVQ25QkNDQ/JDDz30x/r6eoMQQjidzjXF\nxcU5d9555zdms7myoKAgNy4urrWtrS12zpw5+/bv3z97w4YNK2NjY9tyc3ML/u6AiqJe65gAgP9P\nUZSrvsi+XmFfoF2xYsW7Ho9HX1tbm56UlOQLBLrD4XA8//zzbwwbNqyjr0UBACIr5Gmc3iQmJp4N\nzC9btuy9hx566I9CCFFRUTF1586dj65atSq/tbU1LioqqjsmJqbzmWeeeSeSBQMAwhd22Pt8vqSk\npCSfEELs2rVrUeBOnUOHDj0QWMfpdK4ZPnz4twQ9APw4hAx7q9W6vaysbGZzc/MInU7X5HQ617jd\nbkttbW26oiiqXq/3FBYWLr9ZxQIAbsw1L9BG/IBcoAWAsNySC7QAgIGHsAcACRD2ACABwh4AJEDY\nA4AECHsAkABhDwASIOwBQAKEPQBIgLAHAAkQ9gAgAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0A\nSICwBwAJhAx7m81WpNFo/IGHigshhMPhcGi1Wq/JZKoxmUw1paWl2UII4XK5ssxmc6XRaKwzm82V\nBw8e/Gl/Fw8AuD4hn0FbXl6eGRsb27Z06dIt9fX1BiGEcDqda4YPH/6t3W7fGLxubW1t+qhRo74e\nNWrU18eOHZs8d+7cD71er/bvDsgzaAEgLJF4Bu2QUAszMzPLGxoaknuO93bQ9PT02sB8SkrK8c7O\nzphLly5FR0dHX+pLgQCAvgsZ9lezadOmZ7ds2bLUbDZXFhQU5MbFxbUGL9+5c+ejGRkZVVcLeofD\n8f28xWIRFovlRsoAgEHJ7XYLt9sd0X2GPI0jhBANDQ3JDz300B8Dp3HOnj2bOHLkyHNCCPHKK6/8\nq8/nS9q8efPTgfWPHTs2eeHChSUulytLr9d7/u6AnMYBgLBE4jRO2HfjJCYmnlUURVUURV22bNl7\nFRUVUwPLvF6v9pFHHvn91q1bl/QW9ACAWyPssPf5fEmB+V27di0K3KnT2toat2DBgg/Wr1+/evr0\n6R9HskgAQN+EPI1jtVq3l5WVzWxubh6h0Wj8TqdzjdvtttTW1qYriqLq9XpPYWHhco1G4//FL37x\nv/Py8l6cMGHCycD2Lpcra8SIEc0/OCCncQAgLJE4jXPNc/aRRtgDQHhuyTl7AMDAQ9gDgAQIewCQ\nAGEPABIg7AFAAoQ9AEiAsAcACRD2ACABwh4AJEDYA4AECHsAkABhDwASIOwBQAKEPQBIgLAHAAkQ\n9gAgAcIeACRA2AOABAh7AJBAyLC32WxFGo3GbzAY6gNjDofDodVqvSaTqcZkMtXs3bt3XmDZunXr\nXpowYcLJiRMnfrFv3745/Vk4AOD6hXzgeHl5eWZsbGzb0qVLt9TX1xuEEMLpdK4ZPnz4t3a7fWPw\nusePH0954okn/u3o0aNTTp8+PXr27Nn7T5w4cXdUVFT3Dw7IA8cBICz9/sDxzMzM8vj4+As9x3s7\naElJyUKr1bo9Ojr6UnJycsP48eP/WlFRMbUvxQEAImPIjWy0adOmZ7ds2bLUbDZXFhQU5MbFxbWe\nOXPmJ9OmTTsSWEer1XpPnz49urftHQ7H9/MWi0VYLJYbKeOalD79HgSAq+vPExRut1u43e6I7jPs\nsF+xYsW7r7766v8RQohXXnnlX3Nzcws2b978dG/rKorS6z9HcNj3J84WARiIer4Idjqdfd5n2Hfj\nJCYmnlUURVUURV22bNl7gVM1o0ePPt3U1KQLrOf1erWjR48+3ecKAQB9FnbY+3y+pMD8rl27FgXu\n1PnZz372hx07dizu6uoa6vF49CdPnpwwderUikgWCwC4MSFP41it1u1lZWUzm5ubR+h0uian07nG\n7XZbamtr0xVFUfV6vaewsHC5EEKkpKQcf/zxx/89JSXl+JAhQy6/8847z1ztNA4A4OYKeetlvxyQ\nWy8BICz9fuslAGBwIOwBQAKEPQBIgLAHAAkQ9gAgAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0A\nSICwBwAJEPYAIAHCHgAkQNgDgAQIewCQAGEPABIg7AFAAoQ9AEggZNjbbLYijUbjNxgM9T2XFRQU\n5EZFRXW3tLQkCCHEd999949Wq3W70WisS0lJOZ6Xl/difxUNAAhPyLDPyckpLi0tze453tTUpHO5\nXFljx479KjC2Y8eOxUIIUVdXZ6yqqsooLCxc3tjYOCbyJQMAwhUy7DMzM8vj4+Mv9By32+0b8/Pz\nVwWPJSUl+drb22+/cuXKbe3t7bcPHTq064477vivSBcMAAjfkHA3KCkpWajVar1Go7EueHzu3Lkf\nbt26dUlSUpKvo6Nj2JtvvvlcXFxca2/7cDgc389bLBZhsVjCLQMABi232y3cbndE9xlW2Hd0dAxb\nu3btyy6XKyswpqqqIoQQ27Zte7KzszPG5/MltbS0JGRmZpbPmjXrI71e7+m5n+CwBwD8UM8XwU6n\ns8/7DOtunFOnTo1raGhITktL+1Sv13u8Xq82IyOjyu/3aw4fPjxj0aJFu2677bYrI0eOPHf//ff/\nZ2VlpbnPFQIA+iyssDcYDPV+v1/j8Xj0Ho9Hr9VqvdXV1fdqNBr/xIkTvzhw4MCDQgjR3t5++5Ej\nR6ZNmjTp8/4pGwAQjpBhb7Vat8+YMePwiRMn7tbpdE3FxcU5wcsVRVED88uXLy/s6uoaajAY6qdO\nnVphs9mKUlNTP+uvwgEA109RVfXaa0XygIqi3uxjAsBApijK99dHbxTvoAUACRD2ACABwh4AJEDY\nA4AECHsAkABhDwASIOwBQAKEPQBIgLAHAAkQ9gAgAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0A\nSICwBwAJEPYAIAHCHgAkEDLsbTZbkUaj8RsMhvqeywoKCnKjoqK6W1paEgJjdXV1xunTp3+cmpr6\nmdForLt48eI/9EfRAIDwhAz7nJyc4tLS0uye401NTTqXy5U1duzYrwJjly9fHrJkyZKtv/71r//n\nZ599llpWVjYzOjr6Un8UDQAIT8iwz8zMLI+Pj7/Qc9xut2/Mz89fFTy2b9++OUajsS7wV0B8fPyF\nqKio7siWCwC4EUPC3aCkpGShVqv1Go3GuuDxkydPTlAURc3Ozi49d+7cyMWLF+9YuXLlht724XA4\nvp+3WCzCYrGEWwYADFput1u43e6I7jOssO/o6Bi2du3al10uV1ZgTFVVRQghLl26FP3nP//5nyor\nK80xMTGds2bN+igjI6PqwQcfPNBzP8FhDwD4oZ4vgp1OZ5/3GdbdOKdOnRrX0NCQnJaW9qler/d4\nvV5tRkZGld/v1+h0uqYHHnjgUEJCQktMTEzn/Pnz91RXV9/b5woBAH0WVtgbDIZ6v9+v8Xg8eo/H\no9dqtd7q6up7NRqNf+7cuR/W19cbOjs7Yy5fvjykrKxs5uTJk4/1V+EAgOsXMuytVuv2GTNmHD5x\n4sTdOp2uqbi4OCd4uaIoamA+Li6u1W63b5wyZcpRk8lUk5GRUTVv3ry9/VU4AOD6KaqqXnutSB5Q\nUdSbfUwAGMgURfn++uiN4h20ACABwh4AJEDYA4AECHsAkABhDwASIOwBQAKEPQBIgLAHAAkQ9gAg\nAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0ASICwBwAJEPYAIAHCHgAkQNgDgARChr3NZivSaDR+\ng8FQ33NZQUFBblRUVHdLS0tC8HhjY+OY2NjYtoKCgtxIFwsAuDEhwz4nJ6e4tLQ0u+d4U1OTzuVy\nZY0dO/arnsvsdvvGBQsWfBDJIgEAfRMy7DMzM8vj4+Mv9By32+0b8/PzV/Uc371798N33XXXlykp\nKccjWSQAoG+GhLtBSUnJQq1W6zUajXXB421tbbH5+fmr9u/fP3vDhg0rQ+3D4XB8P2+xWITFYgm3\nDAAYtNxut3C73RHdZ1hh39HRMWzt2rUvu1yurMCYqqqKEEI4HA7H888//8awYcM6AmNXExz2AIAf\n6vki2Ol09nmfYYX9qVOnxjU0NCSnpaV9KoQQXq9Xm5GRUfXJJ5/cV1FRMXXnzp2Prlq1Kr+1tTUu\nKiqqOyYmpvOZZ555p89VAgD6JKywNxgM9X6/XxP4Wq/Xe6qqqjISEhJaDh069EBg3Ol0rhk+fPi3\nBD0A/DiEvEBrtVq3z5gx4/CJEyfu1ul0TcXFxTnByxVFUfu3PABAJCiqenPzWlEU9WYfEwAGMkVR\nxLWuhV4L76AFAAkQ9gAgAcIeACRA2AOABAh7AJAAYQ8AEiDsAUAChD0ASICwBwAJEPYAIAHCHgAk\nQNgDgAQIewCQAGEPABIg7AFAAoQ9AEiAsAcACRD2ACABwj6C3G73rS6hX9HfwEZ/cgsZ9jabrUij\n0fgNBkN9z2UFBQW5UVFR3S0tLQlCCOFyubLMZnOl0WisM5vNlQcPHvxpfxX9YzXYv9nob2CjP7mF\nDPucnJzi0tLS7J7jTU1NOpfLlTV27NivAmMjR44896c//em/1dXVGd9///2nlixZsrU/CgYAhC9k\n2GdmZpbHx8df6Dlut9s35ufnrwoeS09Prx01atTXQgiRkpJyvLOzM+bSpUvRkS0XAHBDVFUNOXk8\nnuTU1NT6wNe7d+9e+Nxzz72hqqpITk72nD9/PqHnNr/73e8ey8rK2tfb/oQQKhMTExNTeNO1svpa\n0xARho6OjmFr16592eVyZQXGVFVVgtc5duzY5BdffDEveJ1gPdcHAPS/sO7GOXXq1LiGhobktLS0\nT/V6vcfr9WozMjKqzp49myiEEF6vV/vII4/8fuvWrUv0er2nf0oGAIQrrFf2BoOh3u/3awJf6/V6\nT1VVVUZCQkJLa2tr3IIFCz5Yv3796unTp38c+VIBADcq5Ct7q9W6fcaMGYdPnDhxt06nayouLs65\n2rq//OUv/9epU6fGOZ3ONSaTqcZkMtU0NzePiHzJAICw9fWkf/CUk5NTlJiY6A++oHv+/PmE2bNn\nuyZMmHAiKytr34ULF+ICy9auXfvS+PHjT95zzz1ffPjhh3MiWUt/TL3198ILL2yYOHHi50aj8dNF\nixb9vrW19c7B1F9gev3113MVRekOviA/WPp7++23n504ceLnkydP/mzVqlXrB1N/n3zyydQpU6ZU\npKen15jN5qMVFRVTBmJ/jY2NOovFcjAlJeXY5MmTP3vrrbf+WVUHT75crb9I5ktECz506FBmdXW1\nKfibbeXKlfnr169fpaqqyMvLW7169eo8VVXFsWPHUtLS0mq7urqiPR5P8rhx4/565cqVqFv9jx5u\nf/v27csK1L169eq8wdZf4Btx7ty5pcF3Xw2W/g4cOPDT2bNnu7q6uqJVVRVnz54dOZj6mzlzpru0\ntHSuqqpiz5498ywWy8GB2J/P5xtVU1OTrqqq+Pbbb2Pvvvvuvxw/fnzSYMmXq/UXyXyJ6Mcl9HZf\n/h/+8IefPfXUU+8LIcRTTz31/u7dux8WQoiSkpKFVqt1e3R09KXk5OSG8ePH/7WiomJqJOuJtN76\ny8rKckVFRXULIcR99933idfr1QoxePoTovf3VQyW/t59990VL7300rro6OhLQvztzYFCDJ7+kpKS\nfN98882dQgjR2toaN3r06NNCDLz+Ro0a9XV6enqtEELExsa2TZo06fPTp0+PHiz50lt/Z86c+Ukk\n86XfPxvH7/drNBqNXwghNBqNP3CB98yZMz/RarXewHpardZ7+vTp0f1dT38qKiqyzZ8/f48Qg6e/\nkpKShVqt1ms0GuuCxwdLfydPnpxw6NChB6ZNm3bEYrG4KysrzUIMnv7y8vJezM3NLRgzZkzjypUr\nN6xbt+4lIQZ2fw0NDck1NTWm++6775PBmC/B/QWP9zVfbuoHoSmKoiqKooZafjPriaTXXnvt50OH\nDu164okn/u1q6wy0/gLvq3A6nWsCY2qI90kMtP6EEOLy5ctDLly4EH/kyJFpGzZsWPn444//+9XW\nHYj9Pf3005vffvvtf25sbBzzxhtvPG+z2Yqutu5A6K+trS320Ucf3fnWW2/9y/Dhw78NXjYY8qWt\nrS32scce+4+33nrrX2JjY9sC45HIl34Pe41G4//6669HCSGEz+dLSkxMPCuEEKNHjz7d1NSkC6zn\n9Xq1gT8xB5rf/OY3/2PPnj3zf/vb3/73wNhg6O9q76vw+/2awdCfEH97RfTII4/8XgghpkyZcjQq\nKqq7ubl5xGDpr6KiYuqiRYt2CSHEY4899h+BP/UHYn+XLl2KfvTRR3cuWbJk68MPP7xbiMGVL4H+\nnnzyyW2B/oSIYL5E+kJDz49XWLlyZX5eXt5qVVXFunXrXux5geHixYtDv/zyS/1dd911qru7W7nV\nF0rC7W/v3r3ZKSkpx86dOzcieL3B0l/w1NsF2oHe369+9avlr776qlNVVfGXv/zlbp1O1ziY+jOZ\nTNVut3umqqpi//79s8xm89GB2F93d7eyZMmSLYGPaglMgyVfrtZfJPMlogUvXrx4e1JS0pno6Ogu\nrVbbVFRUlHP+/PmEWbNm7e/t1qjXXnvt5XHjxv31nnvu+SJwx8CPeerZ3+bNm23jx48/OWbMmK/S\n09Nr0tPTa1asWPHOQO9v6NChFwP/f8HL9Xr9l8G3Xg6G/rq6uqKffPLJrampqfX33ntv1cGDBy0D\nvb/gn7+jR4+ap06d+klaWlrttGnTPq6urjYNxP7Ky8v/SVGU7rS0tNrAz9revXuzB0u+9Nbfnj17\n5kUyXxRV/dGfxgIA9BFPqgIACRD2ACABwh4AJEDYA4AECHsAkABhDwAS+L8uyejsxMIQUAAAAABJ\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x399d690>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nb941fx8Pm8j+DW82my1pwYIFl/xd50S0F198cfsrr7zyK5nGb6z+yTB+27Zt22U0GmuTkpJs8fHx\njUFBQfZHH330HVnGbqz+PfbYY4dkGLuxWmFh4c5XX311izfjd8dn9EII5YknnjiYkZFR/swzz/x+\ncP3atWuPvf322xsA4O23396Qn59/5E7XcifcrH+NjY0Jg8vvv//+jzMzMy/5p0LftLS0RA/+6etw\nOPQlJSV5JpPJKsv43ax/wz8RPl3Hb9euXc/V1tYm2my25Hffffen999//yfvvPPOY7KM3Vj9O3To\n0OOy/N/r6ekJ6urqCgUAu90efOLEidWZmZmXvBq/O/0qdPr06WWKoniysrLKhp/u1NraGrly5cqP\np/spXmP176OPPvrBY489digzM/PiwoULP1+3bt2RpqamOH/X6k27ePFipslkupCVlVWWmZl5cc+e\nPc8KMXCKlwzjd7P+yTJ+g81isSwfPCtFlrEb3k6ePGke7N+jjz76jgxjV11dnZyVlVWWlZVVNn/+\n/Mu7du3a5u34KUJMy8NzRER0m3iHKSIiyTHoiYgkx6AnIpIcg56ISHIMeiIiyTHoiYgk9/8B1dqr\nlLRzGX0AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x2610890>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.7, Page number: 519<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw boxes and fill with different designs.\n",
+ "\n",
+ "%pylab\n",
+ "#matplotlib package is used for graphics\n",
+ "from matplotlib.patches import Rectangle\n",
+ "from matplotlib.collections import PatchCollection\n",
+ "\n",
+ "e = Rectangle(xy=(35, -50), width=10, height=5, linewidth=2.0, color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(ax.bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])\n",
+ "\n",
+ "#There are no different automatic fill styles. user should create the styles."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nQwMA0hA49Hv27NGePXtUWlqqBx54QCdOnJAkdXd3q76+XuFwWKFQSG1tbcrLy8vagAEA6XF83/cX\nexAAgPmzIN+MTSQS2rFjhzZu3KhNmzbpF7/4hSTp+vXrikaj+sY3vqHvfOc7+vzzzxdiOFk32/wa\nGhoUiURSXx577733Fnmk6fvnP/+pbdu2qby8XCUlJTpw4IAkO2s32/wsrN2X3b17V67rqqqqSpKd\n9bvnv+dnaf3WrFmjzZs3y3Vdbd26VVL667cgZ/TJZFLJZFLl5eW6deuWHn/8cb3zzjt644039NBD\nD+mVV17RT37yE924cUNHjhyZ7+Fk3Wzz+81vfqPc3FzV1dUt9hAz8ve//13Lli3TnTt3tH37dv3s\nZz9TR0eHibWTZp7fH/7wBxNrd8/Pf/5z9fb26ubNm+ro6NArr7xiZv2k6fNrbGw0s36FhYXq7e3V\nihUrUvvSXb8FOaP/+te/rvLycknSgw8+qA0bNmhsbEwdHR167rnnJEnPPfec3nnnnYUYTtbNNj9J\nsnBlbNmyZZKkyclJ3b17V/n5+WbWTpp5fpKNtZOk0dFRvfvuu3r++edTc7K0fjPNz/d9M+snTf+z\nmO76LfgvNRsZGVFfX5+2bduma9euafXq1ZKk1atX69q1aws9nKy7N7+KigpJX/w+oLKyMu3du/e+\nfXv873//W+Xl5Vq9enXqEpWltZtpfpKNtZOkl156ST/96U8VCv3fX3dL6zfT/BzHMbN+juOosrJS\nW7Zs0a9+9StJ6a/fgob+1q1bevrpp/Xaa69N+wKV4zhyHGchh5N1t27d0ve//3299tprevDBB/XC\nCy9oeHhY58+f18MPP6yXX355sYcYSCgU0vnz5zU6Oqru7m6dOXNmyuP3+9r99/xisZiZtfv973+v\nVatWyXXdWc9w7+f1m21+VtZPkv74xz+qr69Pp0+f1i9/+Ut98MEHUx7/Kuu3YKH/17/+paefflq7\nd+9WdXW1pC/+S3Tvm7fj4+NatWrVQg0n6+7N79lnn03Nb9WqValFeP755xWPxxd5lJlZvny5vvvd\n76q3t9fU2t1zb349PT1m1u5Pf/qTOjo6VFhYqF27dun999/X7t27zazfTPP7wQ9+YGb9JOnhhx+W\n9MXvE/ve976neDye9votSOh939fevXtVUlKiF198MbX/ySef1JtvvilJevPNN1OBvN/MNr/x8fHU\n7VOnTqm0tHQxhpeRiYmJ1Nvef/zjH+rq6pLrumbWbrb5fflXf9yvaydJhw8fViKR0PDwsN5++219\n+9vf1ltvvWVm/Waa34kTJ0z83ZO++KDAzZs3JUm3b99WZ2enSktL01+/tL9LG8AHH3zgO47jl5WV\n+eXl5X55ebl/+vRp/29/+5u/c+dOf926dX40GvVv3LixEMPJupnm9+677/q7d+/2S0tL/c2bN/tP\nPfWUn0wmF3uoabtw4YLvuq5fVlbml5aW+kePHvV93zezdrPNz8La/bdYLOZXVVX5vm9n/b7szJkz\nqfk9++yzJtZvaGjILysr88vKyvyNGzf6hw8f9n0//fXjC1MAYBz/K0EAMI7QA4BxhB4AjCP0AGAc\noQcA4wg9ABhH6AHAOEIPAMb9B4rEH5DkLOd4AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7373590>"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.8, Page number: 520<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display text in different size, font, vertically and horizontally \n",
+ "\n",
+ "%matplotlib inline\n",
+ "\n",
+ "from pylab import *\n",
+ "\n",
+ "#Tkinter package is used for graphics\n",
+ "# set limits so that it no longer looks on screen to be 45 degrees\n",
+ "xlim([-5,5])\n",
+ "\n",
+ "# Locations to plot text\n",
+ "l1 = array((1,1))\n",
+ "l2 = array((5,5))\n",
+ "\n",
+ "# Rotate angle\n",
+ "angle = 90\n",
+ "trans_angle = gca().transData.transform_angles(array((45,)),\n",
+ " l2.reshape((1,2)))[0]\n",
+ "\n",
+ "# Plot text\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 25)\\n\\n',fontsize=25,\n",
+ " rotation=0)\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 16)',fontsize=16,\n",
+ " rotation=0)\n",
+ "th1 = text(l1[0],l1[1],'Hello(Vertical Text)',fontsize=16,\n",
+ " rotation=angle)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAASvCAYAAAA39ApSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdUFNfj//+ZpRfpoNgAxUZUYpfYAMWKvZfYYmJMSGwx\n3YglxRiVqO8YjcYSeywotogCahKNiga7EUUURRFQqiDL7u8Pz3zf87m/XTqavPN8nHPP0Zk7c++U\nZfe1M3tH1uv1EgAAAADgvzQvugMAAAAA8HdDUAIAAAAAAUEJAAAAAAQEJQAAAAAQEJQAAAAAQEBQ\nAgAAAAABQQkAUCJr164dq9FodF5eXgmlmVdRHj586Org4PC4WrVq9588eWJVWe08L56enrc0Go1u\n3bp1Y150X/4JQkNDQzUajS4gICD6Rffl36Qi9vvzONfT09Od3n333SV169a9YWFhka/RaHQajUaX\nmZlpV1lt/h0o23n06NFOL7ovf3c9e/bcr9FodEeOHOlc0mUISgDwN6d8UNFoNLri6t66dctTqVtZ\nH0pkWTb6AL6i5pXXzJkz52ZmZtp99NFHX1pZWT1Rz4uJifEvzQcG5YPbuHHj1lRWf0uqMvfZ8xIe\nHt4vNDQ0dPfu3X0ru63S7C/lOJelzJ49e1ZlbocoLCxsyuzZs2fFxcX5Ps92S8rQfi/tca+sc72w\nsNCkc+fOR5YtWxZy69YtT0tLy7xq1ardr1at2v2S/N2sbKGhoaGzZ8+elZiY6FEZ65dlWf9P+DuS\nn59vERER0TskJGRZy5Ytzzg4ODw2MzMrcHV1fRgYGBi1bNmykKK+BFP/nS+qrF69+jVDy8+dO3em\nJEnStGnTFul0uhJlINOybSoA4HkrzRvhP+WNs6QuXrzYeNWqVRNq1Khxd9KkScuN1Svtdr/IfeTt\n7R1vbW2da29vn/Gi+lBRwsPD+61fv3702LFj1/bt23f3i+6Pws3NLeXp06fm4vTc3Fxr5UqDq6vr\nQxMTk0KxTpUqVbKeRx8VYWFhU27fvl3by8srwdfXN+55tl0UV1fXhw0aNLhWu3bt2+K8v8txj4yM\nDIqLi/M1Nzd/GhUVFfjKK6/8/qL6YsicOXM+kyRJCggIiPbw8EisyHU3aNDgmizLemtr69yKXG9l\nCA4O3qu+mmNmZlZQpUqVrPT0dKeYmBj/mJgY/yVLlrx74MCBHnXr1r1R1LqqVat239g8GxubHEPT\nW7RoEdunT589e/bs6bN69erXXn/99R+K6zNBCQD+B+n1evlF96EiLViwYIZOp9OMGzdujbm5+dMX\n3Z+KcPjw4S4vug//606dOtXa0PR169aNGTdu3BpZlvWnT59uZSgE4Jm33377P2+//fZ/XnQ/inLh\nwoUmkiRJTZs2Pf93C0mKyvpS5sqVK40qY72VQavVmnp6et4aN27cmj59+uxRvhB4/Pixww8//PD6\n7NmzZ8XHx3v36NHjwIULF5pYWFjkG1qPLMv6e/fuVS9LHyZNmrR8z549fRYsWDCjJEGJW+8AAH9r\n6enpTtu2bRsiy7J+9OjR6190f2DcPyWg/537+XfumzEvus+5ubnWkiRJtra22S+yH8V50fvpRZs3\nb96n8fHx3jNnzpyrvmrq4ODweMaMGQuUW+bi4+O9t2/fPqgy+hAUFBTp7u6eHB8f7x0ZGRlUXH2C\nEgD8C128eLHxG2+8sbJevXrXra2tc21tbbObNm16/tNPP52XlpbmXBlt3rhxo+6kSZOW16tX77qV\nldUTOzu7zObNm5+dO3fuzKysrCrGllu/fv3o/Px8ixYtWsR6e3vHV0bfDDl37lyz0aNHr/fw8Ei0\ntLTMc3R0fNSuXbvfvv3228mGbueSpP//oBbR0dEB/fr1C3d3d082MTEpVP8mytgP3P39/WNKch++\nsYEzYmJi/AcPHvxzjRo17lpYWOS7uLikdunS5fDatWvHGrsvX/zB/pEjRzr36tVrn6ur60NLS8s8\nHx+fy3PmzPksPz/fQmxLo9Ho1q9fP1qSnl2pEfup/s3Y/fv3qy1duvSdvn377m7UqNEVe3v7DCsr\nqyfe3t7xr7/++g+XL1/2KdnRqXxZWVlVvvrqqw/9/PxOODk5pVtYWOTXqlXrzvDhwzefPHmyrVh/\n69atQ5VtDg8P72donX/++efLlpaWeRqNRvfll19+JEn/3fe3b9+uLUmSNG7cuDXiPixJf2NjY1to\nNBqdmZlZgaEBDCZOnLhCWd++fft6ifM3b948XKPR6MRbwwwN5lDa46729OlT8wULFszw9fWNs7Gx\nybG3t8/o3LnzkV9++aVbSbZTbezYsWvVvycTf8Mi/s4sLy/PMiwsbMorr7zyu6Oj4yNLS8s8Dw+P\nxDFjxqwr6rdhymt1/fr1o0vTf6V/kvQsJAUEBEQX9RpOSkqqOXXq1MUvvfTSJRsbmxwLC4v86tWr\n32vRokXstGnTFp05c6al2Iax/V3S3+cZG6SjMt4j2rVr91tR5/OQIUO2KWHX0LZWBI1GoxsyZMg2\nSZKklStXvlHsAnq9nkKhUCh/4zJr1qxQWZZ1Go2msLi6t27d8pBlWSfLsm7dunWjDdWZP3/++xqN\nplBZp62tbZalpeUTZbnq1avfPXfu3MvicmvWrBkry7LOy8vrZmnm6fV6aevWrUMsLCzylDbt7e0f\nW1lZ5Spt1q5dO/HKlSsNDS3bo0eP/bIs66ZOnbrI2HZHR0f7K+s+evRox+L2k4eHxy1ZlnXjxo37\n0dD8RYsWTVX6ptFoCh0dHdOV/suyrPP19f0zOTm5WlH7ISwsbLK4vLo9pQ/icRowYMAOd3f3e8aK\ncqwM7eupU6cuUvpoYmKidXJySjMzM3uqTOvcufPhrKwsW2PnmL+/f/TXX389Q728iYmJVlk+MDDw\nSGFhoUZZ7vfff/erVq1asnIsrayscsX+njhxoq1Sf8yYMWuVdZmbm+e7uLg8NDc3z1fOR0tLyyc7\nduwYUNTrICAgIKq8rynlOGk0msLExMTa4vxz5869XLNmzTtKX83MzJ7a29s/Vr9uvvzyyw/F5V57\n7bVVsizrnJ2dU+/cuVNTPS87O9umQYMGV5XjoEz/5ptvplerVi1Z2c8ODg6PxH1Ykm3S6XSyo6Nj\nukajKdyzZ09vcb63t/d1ZXumTZu2UJw/YcKEH2RZ1o0dO3ZNcfu9tMddOdeXLVv2dps2bU7Ksqyz\nsLDIs7Ozy1Dv0x9//HFcaY7j5MmTw9zd3e/Z2tpmKeeUug8LFy6cptRNSkqq0bhx4wvKPrCwsMhT\n9pdyvi9dujTE2N8LjUZTWNr+K/1T2nR2dk5V969169Z/KHX//PNPX0dHx3T1Oefs7Jyqfv2Jx0av\n10vG/u61atXqVFF/R5S/C4ZeT2V9j6iI4uTklCbLsu6dd95ZIs5T/50vTxvbt28fKMuyztHRMV2n\n08lF1a3wDaRQKBRKxZbSBKWEhATPooLSqlWrXpNlWWdnZ5fx5ZdffvjgwQM3vf7Zh6zY2NjmnTt3\nPizLsq5WrVq3s7OzbdTLljUoxcbGNlfelDt06HDs4sWLLyltRkREBFevXv2uLMs6b2/v62KbWq3W\nxM7OLkOWZd2WLVuGGttu9RtoTExMp+L2U1FBKSIiIljZh/37999569YtD71eLz19+tTsp59+GqX0\np127dr+qQ4N6P1hZWeWampoWjB8/fnVSUlINvV4vFRYWam7cuFFH7IOxQGuoxMbGNrexscmWZVkX\nEhKyVD1v6dKlIUq/33zzzeXKsc3JybEOCwubrByDYcOGbTZ2jjk6OqabmJhoP/nkk3lpaWlOer1e\nyszMrKLMl2VZZ+jD7NixY9cUFTyVMm/evE8WLlw47dKlSz7qfXfp0iWfUaNG/STLss7W1jbr3r17\n7sb6WNlB6d69e+5ubm4PZFnWDRo06OezZ88202q1Jnq9XkpJSXH97LPPZiv7Mjw8vK962ZycHOtG\njRpdlmVZ16lTpxj1No4bN+5HWZZ1rq6uKYa2ryzng1j69u0bLsuybsqUKYvV0+/cuVNTlmWdvb39\nY1mWdS+//PI5cdm6devGG2q/qP1e0uOubJuTk1NarVq1bu/Zs6e3sk+vXbtW38/P73dZlnVVqlTJ\nzMjIsCvtdoeGhs4q6tzQarUmSsBxdHRM37Rp0/CCggJTvV4v3bx506t37957lPPhwIED3Su6/yX5\nEkf529uyZcvTf/zxR2tlekFBgen169e9Fy5cOO2bb76ZXpZ1i2X//v09lAAmrrM87xHlLefPn2+i\n/J1ZuXLl6+J85e+8LMs6Pz+/3+3s7DIsLCzyataseWfgwIHbd+/e3ack7SQlJdVQ9ltsbGzzoupW\n2MZRKBQKpXKK+kNq1apV7xdVXFxcHhoLSpmZmVUcHBweaTSawkOHDgUZakur1Zq0bNnytCzLurCw\nsMnqeWUNSt27dz8gy7Kufv361548eWIpzj937tzLygdP8U378uXLjZQ3NCVgGSrqN1BHR8f04vaT\n8iHB0Ac89QddQ982qoPU9u3bBxraD8qH7KKOa2k/GCclJdVQQmXXrl1/UX8Iz83NtVK+iR05cuQG\nQ8urg5T44UB9js2ePfszQ8sPHDhwuyzLuqCgoEPiPOVKUXEfmIsrwcHBEbIs6+bNm/eJsddBZQel\n8ePHr5ZlWTdq1KifjC2/ePHiKcYCR1xcXFPl23dlX27evHmY0l5ERERwRZwPhsq33377rizLuqZN\nm8app69bt260LMu6CRMm/FCzZs07Go2mUAnCer1eSkxMrK307/bt27VKut9LetyVbbOyssq9du1a\nfXH+w4cPXZR9tnHjxhGl3e7izo0tW7YMVbYvMjKyizhfq9WatG3b9oQsy7omTZqcr+j+lyTMWFlZ\n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\njV11ft7vEeHh4f2GDh26tbCw0GTAgAE7t2zZMqykw+EbYmNjk6NcCUxISPAqqq4yxLl4NVhEUAKA\nfwnl1pCKul2iJKpWrfpA+fedO3dqGaun3GplamqqVd9ip/RZkiRJ/ZuLyqL0NzU11cXYs5Ik6b/9\nLe5Ntjz279/fc+rUqYslSZI+/fTTeSNGjNhkrK7S7+JuWXse/TZm+/btg3Q6ncbHx+fyli1bhrVo\n0SJWvPUnOTnZ/Xn3S019vpXndXL27Nnmyq1Eyq1CU6dOXXz16tWG5e5kMZSwc/369Xp3796tIQYl\n5d96vV6OiooKVObXr1//L/X2/y9Rzvei/gYpoV1d/0Vo167db1999dWHx48f7/Do0SPH3bt3923S\npMmFJ0+eWI0fP/7H4m4VE61YsWLi4sWLp8qyrF++fPmkom4pfp7vEbt27eo/ZMiQbVqt1rR///67\nlOeQVXa7CuVYq9+jDCEoAcC/RLt27X6TpGcf4u7fv1/tebTZvHnzs7Is6/V6vXzkyJHOxuodPny4\niyQ9+1CpvhpTv379v+zs7DL1er18/vz5ppXd35YtW56RpGdXAIw9MFPd31atWp2ujH7ExcX5Dh06\ndKtOp9MMHTp0q/jgTJHS76SkpJrXr1+vZ6hOYWGhiXKVoaL7rX6oprE6yodUQ78xUCj79UVp1arV\naTMzswK9Xi9HRET0Lss6cnJybIYPH765oKDArEuXLof/+OOPNq1btz715MkTq2HDhm0xFsBLsg9L\nokGDBteU35dERUUFxsTE+JuYmBT6+/vHKHWU0BQVFRVYntvuKqrPlU0534v6GxQTE+NfWFhoIsuy\nvrJe16XdTxYWFvm9e/eO2Llz5wBJkqT8/HyLX3/9tX1Jlz906FDXkJCQZZL07KqS+oHXhjyv94id\nO3cOGDp06FYlJG3btm1IRVyFz87OtlUG4jD2W11Jeva3KCMjw16WZb0yMI8xBCUA+JcYPHjwzw4O\nDo+fPn1qPm3atEVF1dXpdJqMjAz78rZpb2+f0b1794OSJEkLFiyYYeie9ri4ON8dO3YMlCRJEkcr\nkmVZr9zadPLkybbl7U9xmjRpcsHHx+eyXq+X582b96mh0fH279/f89SpU60N9bci3Lt3r3pwcPDe\nnJwcm7Zt255ct27dmOKWCQoKinR2dk7T6/WysVHvVqxYMTE5OdldlmV9Rffbzs4uU5KejXJorI7y\n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\nZV3Xjz/+OD49Pd1p0qRJy8vbh/LYvXt3Xzs7u8yKXGdpPHr0yHHOnDmf1a5d+3azZs3OlWUdsizr\ni9ovy5cvn5SVlVVFkiRJr9fLc+fOnXnmzJmWe/bs6aOuV61atftlaV+tIranOK+//voPPXv23F/S\nNst6zmi1WtORI0dubN++/a/Lly+fZG5u/tTW1ja7PH03JCwsbErHjh2P9e/ff1dplmvRokXsyZMn\n2zZq1OhKRffJkNTUVJc1a9aMa9GiRWzXrl0P7dy5c4CxfXvmzJmWgYGBUYGBgVGrV69+zd7ePuOv\nv/6qn5OTY6PUqVat2v233nrru6lTpy4+ceKE3/PYBqCyEZQA4F9Kr9fLFbWeBQsWzBg/fvyP5ubm\nTytinaX19OlTc3Nz86e+vr5xL6J9UUXtW0PED9IuLi6pZmZmBa1btz5VWW1W5vbUqFHjbo0aNe5W\ndpt3796tkZ2dbTt48OCf27dv/2tFrltUlr5XqVIlqzKPocjT0/NWWlqasyRJ0uHDh7vs3LlzgKF6\nOp1OM3r06PVBQUGRO3bsGKhM79Sp01Gx7qRJk5Z/88037x07dqxjx44dj1Ve74Hng1vvAOB/TEJC\ngtfIkSM3urm5pVhaWuY1a9bsXHh4eL+yrOvgwYPd/fz8TlhbW+c6ODg87t+//66//vqrvrpOTEyM\nf3x8vPfIkSM3lrfvp06dat2lS5fDVapUybK1tc3u0qXL4dOnT7dS1xk7duzaWrVq3Tlx4oTfK6+8\n8ru1tXXuBx98MF+S/u9ta7du3fI0dltaQEBAtLK+zMxMu5CQkGXVq1e/Z2lpmdewYcOrYWFhU8Rt\n1Gg0uoiIiN4hISHLXF1dH7q6uj589dVXf8rIyLBX2qtTp85NSXp2lURpa/369aMlSZIOHTrUtWfP\nnvurV69+z8bGJqdJkyYXFi1aNE2n01X4e3Fubq71Bx98MN/LyyvBwsIiv06dOje/+OKLj5UP8Dk5\nOTYNGza82qZNmz+0Wu3/+9L00KFDXTUajW758uWTEhMTPYraHtGOHTsGajQa3d27d2so06ZPn75Q\no9HoVq9e/ZoyLTIyMkij0eiuXLnSSJL+7613xe1DSXoWQg4fPtylefPmZ5X9WNz5HRoaGurl5ZUg\nSZL02muvrVafA3q9Xl68ePHUBg0aXLOwsMivXr36vXfeeWepctVOodFodDNnzpy7ZMmSd728vBLs\n7Owy/f39Yy5fvuyj1PH09Lx1+/bt2hs3bhyp9F25FfSvv/6q379//11Vq1Z9YGVl9cTDwyNxyJAh\n2woLC00k6f9/652yXwyVdevWjVHarMjXuyExMTH+V69ebTht2rRFxdX18vJKaNOmzR8rV658o6La\nB14kghIA/ANotVpTsSgfsNTu3LlTq02bNn9cuHChSVhY2JSIiIjezZs3Pztw4MAdERERvUvT5sGD\nB7v36tVrn52dXea2bduGLF++fNLFixcbt2/f/td79+5VV9dzdXV9WL9+/b/K0/fz58837dSp09GM\njAz7devWjVm/fv3ozMxMu06dOh09f/58U3XdjIwM++HDh28eOXLkxoMHD3YfMWLEJkn6v7etVa9e\n/d7JkyfbqsuqVasmaDQanY+Pz2VJevZtea9evfatXbt27IwZMxbs3bs3uHv37genTZu26JNPPvlc\n7OPkyZO/NTExKdy8efPwWbNmzd6xY8fAyZMnf6u0p3wr//HHH3+htKncVpaQkOAVGBgYtWrVqgn7\n9+/vOWbMmHWhoaGhhtopD61Wa9qtW7dfVq9e/drUqVMXHzx4sPuECRNWzZ07d+aMGTMWSJIk2djY\n5GzZsmVYXFyc78yZM+dKkiQ9ePCg6ujRo9f37dt396RJk5a7u7snF7U9In9//xhZlvVRUVGByrSo\nqKhAKyurJ+K0atWq3VdfGVMfM0Nt9urVa59S98aNG3WnTJkS9t57732zc+fOAe7u7smDBw/++caN\nG3WN7ZPXX3/9h59//nmwJEnSzJkz5548ebLt8uXLJ0mSJH3yySefT58+fWG3bt1+2bt3b/D777//\n9dq1a8f26tVrn3hlaMOGDaMOHDjQY+nSpe+sWbNm3O3bt2v37dt3t3I+h4eH96tWrdr97t27H1T6\nruzfXr167UtOTnb//vvv3zx06FDXr7766kNLS8s8Y0H59ddf/0F97p44ccJvwIABO01NTbUNGjS4\nJkkV+3o35tdff20vSZL05MkTq7Zt2540Nzd/WrVq1QeTJ0/+Ni8vz1Ks3759+18jIyODKqJt4IXT\n6/UUCoVC+ZuWNWvWjJVlWVdUmT179mdK/fHjx692c3N7kJ6e7qheT1BQ0KGXX375nPL/WbNmhcqy\nrFPXEdfVokWLM/Xr179WWFioUaYlJCR4mpmZPZ02bdpCZVpAQEBUQEBAVHn7PnDgwO2Ojo7pGRkZ\n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\nICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAA\nICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAA\nACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAA\nAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoA\nAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhK\nAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgI\nSgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAI\nCEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAA\nCAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAA\nAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAA\nAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIA\nAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoIS\nAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKC\nEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAAC\nghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAA\nAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAA\nAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAA\nAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQA\nAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAE\nAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICg\nBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICA\noAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACA\ngKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAA\ngICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAA\nAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEA\nAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgB\nAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAo\nAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAg\nKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAg\nICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAA\nICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAA\nACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAA\nAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoA\nAF1G7TEAACAASURBVAAAICAoAQAAAICAoAQAAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAA\nAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAEAAAAAAKCEgAAAAAICEoAAAAAICAoAQAAAICAoAQA\nAAAAAoISAAAAAAgISgAAAAAgICgBAAAAgICgBAAAAAACghIAAAAACAhKAAAAACAgKAEAAACAgKAE\nAAAAAAKCEgAAAAAICEoAAAAAICAo4f9j7+6jvKzrxP+/PjgQfVPS0FBnJgcEYdDEGwRvSseKuFkl\nN03RVBJTjvvTtFxjv7Wl2Gqi25ZGW7TeBGuR/soVNRzvJ7eMO1NMRRsMdAYXDBGDUgaG+f3RD4VX\nOFrKXJ/l83ic4zl85noLr65zPPH8XNf1vgAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKU\nAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACA\nRCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFK\nAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABA\nIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUA\nAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACAR\nSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAA\nQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAgl\nAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAg\nEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIA\nAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAI\nJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAA\nIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQS\nAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQ\nCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkA\nACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiE\nEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAA\nkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJ\nAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABI\nhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQA\nAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRC\nCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAA\nSIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEE\nAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAk\nQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIA\nAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKh\nBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAA\nJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVAC\nAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAAS\noQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEA\nACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQ\nAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAA\nEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgB\nAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJ\nUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAA\nABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQo\nAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAA\niVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQA\nAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBE\nKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAA\nAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKU\nAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACA\nRCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFK\nAAAAiVACAABIhBIAAEAilAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABA\nIpQAAAASoQQAAJAIJQAAgEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUA\nAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEBSVfQAwOsWL17c/6677hq5YMGCocuXL989ImL3\n3XdfPnTo0AUjRoy4Z5999vlt0TMCAFSCUkdHR9EzQMW76667Rk6ZMmVSU1NTQ7du3TbW1dUt7d27\n94sREStXrtz12Wef3Wvjxo3djjzyyAcnTZo0ZfTo0XcWPTMAwPbMrXdQsNGjR995/PHH/7S2trbl\nzjvvHL1q1ar3LV68uP/cuXOHz507d/gzzzyz90svvbTLnXfeOXqvvfZ69sQTT7xZKAEAbFtCCQpW\nX1+/aMmSJX2nT58+fuTIkXf16tXrD3nNTjvttGbkyJF3TZ8+ffySJUv67rvvvk8UMSsAQKVw6x0A\nAEDiihKUkUsvvfSrzz///J5bO/Y///M/e1x66aVf7eqZAAAqkStKUEa6deu2cc6cOYcOGzZsXj62\nYMGCocOGDZu3ceNGX3AAAGxjnf6Fa8KECdf36dNnxQc/+MHfvNGaz33uc9cMGDCgeciQIQsfeeSR\nA9/5EYGIiNWrV+/8rne9a13RcwAAVIJO36N0xhln3HDeeed9+/TTT5+xteOzZ88es3jx4v7Nzc0D\n5s6dO/ycc8757pw5cw7dNqPC9umBBx44+oEHHji6o6OjFBExbdq0iXfccccxm6955ZVX3n3HHXcc\nYxMHAICu0WkoffjDH/7vpUuX1r3R8dtuu23s+PHjp0dEDB8+fO7q1at3XrFiRZ8+ffqseIfnhO3W\nz3/+86P+5V/+5Z83fb7hhhvOyGt69OjRNnjw4Cevueaaz3XtdAAAlanTUHozy5Ytq66trW3Z9Lmm\npqa1tbW1JodSqVTyIBS8DevWrXvXI488cuARRxzxy6JnoWttutIIAHStt/1QeP4/8TeKoo6OjkL/\nufjiiwufoVz+cS6cC+fif8e5AACK87ZCqbq6ellLS0vtps+tra011dXVy97+WFCZJk2aFBs2bNjq\nsd///vdxzDHHbPUYAADvrLcVSmPHjr1txowZp0dEzJkz59Cdd955teeT4G93zTXXxOGHHx7PPPPM\nFj+/++67Y//9949f//rXBU0GAFBZOg2lk08+eebhhx/+0NNPPz2wtra25frrr58wbdq0idOmTZsY\nETFmzJjZ/fr1+13//v0XT5w4cdq///u//0PXjP3Xa2hoKHqEsuFcvK7czsW8efPij3/8Yxx00EEx\nffr0aGtriy984QsxevToGDp0aDz22GPb7M8ut3NRJOcCAOiSF86WSqUO99vDW/PKK6/E+eefH9de\ne2306dMnVq9eHVdeeWWcd955RY9GFyuVStFhMwcAKMTb3swBeGe9+93vjsMPPzx69OgRK1asiAED\nBsSxxx5b9FgAABVFKEEZ+cMf/hAnn3xyTJgwIc4444z45S9/GevXr48DDjggfvSjHxU9HgBAxXDr\nHZSRvn37xpo1a+Laa6+N4447LiIi/vSnP8X5558f1113XZx66qkxY8aMgqekq7j1DgCKI5SgjDQ0\nNMQPf/jDqK6u/otjP/3pT+Pss8+OF198sYDJKIJQAoDiCCUoIx0dHVEqvfHfi1taWqK2tvYNj7N9\nEUoAUJyqogcAXrcpkhYuXBgPPvhgrFq1Ks4+++zYY489orm5Ofr06VPwhAAAlcEVJSgj69ati09/\n+tNxyy23RMSfw2n+/Plx0EEHxSc/+cnYZ5994oorrih4SrqKK0oAUBy73kEZ+fKXvxz33Xdf3Hjj\n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\n4G+2fv36+Kd/+qf41re+FRER7e3tBU9EV3FFCQCK0+l7lObNmzesf//+i+vq6pZGRIwbN+7Hs2bN\n+sTmofSjH/3olOOPP/6nNTU1rREROZKAv01zc3PMmDEjbrzxxnj22WejV69eceKJJxY9FgBAReg0\nlJYtW1ZdW1vbsulzTU1N69y5c4dvvqa5uXnA+vXrux999NEPrFmzZqfzzz//6tNOO+0/8+91ySWX\nvPbrhoaGaGhoeNvDw/Zm1apV8eMf/zhmzJgR8+bNi27dusWIESPi61//ehx33HHRs2fPokdkG2pq\naoqmpqaixwAA4k1CqVQqven9cuvXr+/+61//+qD77rvvo3/605/+z2GHHfarQw89dM6AAQOaN1+3\neSgBr2tra4s77rgjZsyYEXfeeWesX78+Bg8eHFOmTIlTTz019thjj6JHpIvkL5EmT55c3DAAUOE6\nDaXq6uplLS0ttZs+t7S01G66xW6T2trall133XXlu9/97lfe/e53v3LkkUc+uHDhwiE5lICt2333\n3WP16tXRu3fvmDhxYowfPz4OPvjgoscCAKhone56N3To0AXNzc0Dli5dWtfW1tbjpptuOmns2LG3\nbb7mE5/4xKxf/OIXH2pvb9/hT3/60/+ZO3fu8MGDBz+5bceG7ceRRx4Zt9xySzz//PNxzTXXiCQA\ngDLQ6RWlqqqqDVOnTj135MiRd7W3t+9w5plnXldfX79o2rRpEyMiJk6cOG3QoEFPjRo1qnH//fd/\nrFu3bhvPOuus/xBK8NbdeuutRY8AAEDihbNQsKuvvjrOOeec6NGjx1tav27duvje974X559//jae\njKLZHhwAiiOUoGBDhgyJVatWxYQJE+LTn/507LPPPltd9+STT8bMmTPjhhtuiN69e8fChQu7eFK6\nmlACgOIIJShYe3t7XH/99XHVVVfF4sWLY7fddot99903evfuHRERK1eujN/85jexatWq6NevX1x0\n0UVx1llnRbdunT5iyHZAKAFAcYQSlImOjo5oamqKxsbGmD9/fqxYsSJKpVL06dMnhg4dGh//+Mfj\nox/9aNFj0oWEEgAURygBlCmhBADFce8OAABAIpSgzDz//PNx4YUXxtChQ6Nfv35xyCGHxEUXXRTL\nly8vejQAgIrh1jsoI7/97W/jQx/6UKxevTqOOOKI6NOnTyxfvjweeuih2GWXXeIXv/hFDBgwoOgx\n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\njBkze2vHNg8lAP5S/hJp8uTJxQ0DABWu01AqlUpv+X65Bx544Ojrr79+wi9/+csj3v5YAAAAxek0\nlKqrq5e1tLTUbvrc0tJSW1NT05rXPfbYY/ufddZZ/9HY2Dhql112eWlbDAoAANBVOt31bujQoQua\nm5sHLF26tK6tra3HTTfddNLYsWNv23zNc88994FPfvKTt9x4442n9u/ff/G2HRcAAGDb6/SKUlVV\n1YapU6eeO3LkyLva29t3OPPMM6+rr69fNG3atIkRERMnTpx26aWXfvWll17a5ZxzzvluRET37t3X\nz5s3b1hXDA8AALAtdLo9+Dv2h9geHOCvZntwACjOm75wFgAAoNIIJQAAgEQoAQAAJEIJAAAgEUoA\nAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAIBEKAEAACRCCQAAIBFKAAAAiVACAABIhBIAAEAi\nlAAAABKhBAAAkAglAACARCgBAAAkQgkAACARSgAAAIlQAgAASIQSAABAIpQAAAASoQQAAJAIJQAA\ngEQoAQAAJEIJAAAgEUoAAACJUAIAAEiEEgAAQCKUAAAAEqEEAACQCCUAAICkYkKpqamp6BHKhnPx\nOufidc7F65wLAOBNQ6mxsXHUoEGDnhowYEDzlClTJm1tzec+97lrBgwY0DxkyJCFjzzyyIHv/Jhv\nn7/4vM65eJ1z8Trn4nXOBQDQaSi1t7fvcO65505tbGwc9eSTTw6eOXPmyYsWLarffM3s2bPHLF68\nuH9zc/OA73//+2efc8453922IwMAAGxbnYbSvHnzhvXv339xXV3d0u7du68fN27cj2fNmvWJzdfc\ndtttY8ePHz89ImL48OFzV69evfOKFSv6bMuhAQAAtqWqzg4uW7asura2tmXT55qamta5c+cOf7M1\nra2tNX369Fmx+bpSqfROzfw3mzx5ctEjlA3n4nXOxeuci9c5FwBQ2ToNpVKp1PFWfpOOjo4tKij/\ne/k4AABAOev01rvq6uplLS0ttZs+t7S01NbU1LR2tqa1tbWmurp62Ts/KgAAQNfoNJSGDh26oLm5\necDSpUvr2traetx0000njR079rbN14wdO/a2GTNmnB4RMWfOnEN33nnn1fm2OwAAgP9NOr31rqqq\nasPUqVPPHTly5F3t7e07nHnmmdfV19cvmjZt2sSIiIkTJ04bM2bM7NmzZ4/p37//4ve85z1/vOGG\nG87omtEBAAC2jVJHx1t6DGm78o1vfOPCiy666KqVK1fu+r73vW9V0fMU5aKLLrrqjjvuOKZHjx5t\ne++99zM33HDDGe9973tfLnqurtLY2Djqggsu+FZ7e/sOn/3sZ6+dNGnSlKJnKkpLS0vt6aefPuOF\nF154f6lU6jj77LO//7nPfe6aoucqSnt7+w5Dhw5dUFNT03r77bcfW/Q8AEDXe9MXzm5vWlpaau+5\n554Re+2117NFz1K0j3/843c/8cQT+y5cuHDIPvvs89uvf/3r/7fombrKW3lHWCXp3r37+m9+85uf\nf+KJJ/adM2fOod/5znf+n0o+H1dfffX5gwcPfvKtbmgDAGx/Ki6UvvCFL/zblVde+cWi5ygHI0aM\nuKdbt24bI/78DqzW1taaomfqKm/lHWGVZPfdd19+wAEHPBoRseOOO66tr69f9Pzzz+9Z9FxFaG1t\nrZk9e/aYz372s9fasRMAKldFhdKsWbM+UVNT07r//vs/VvQs5eb666+fMGbMmNlFz9FVtvb+r2XL\nllUXOVO5WLp0ad0jjzxy4PDhw+cWPUsRPv/5z3/zqquuumjTlwgAQGXqdDOH/41GjBhxz/Lly3fP\nP7/sssu+/PWvf/3/3n333R/f9LNK+Lb4jc7H5Zdf/qVjjz329og/n5sePXq0nXLKKT/q+gmL4Zaq\nrVu7du2OJ5xwwk+uvvrq83fccce1Rc/T1e64445j3v/+979w4IEHPtLU1NRQ9DwAQHG2u1C65557\nRmzt548//vh+S5Ys6TtkyJCFEX++vebggw9+eN68ecPe//73v9C1U3adNzofm/zgBz/4zOzZs8fc\nd999H+2qmcrBW3lHWKVZv3599+OPP/6np5566o3HHXfcrUXPU4SHHnro8Ntuu23s7Nmzx7z66qs9\n//CHP/Q6/fTTZ2x6BQIAUDkqcte7iIi+ffsuefjhhw+u5F3vGhsbR1144YXf+PnPf37UrrvuurLo\nebrShg0bqgYOHPj0fffd99E999zz+WHDhs2bOXPmyfX19YuKnq0IHR0dpfHjx0/v3bv3i9/85jc/\nX/Q85eDnP//5Uf/6r//6j3a9A4DKVFHPKG3OrVcR55133rfXrl2744gRI+458MADH/mHf/iH/6+9\nO7RhIIYBKJp5wowPlXWDkM51E4R0g7Cg4GOdp7SKdLQBeW8CI0tfBj5Xz/Qvvz/Ccs6fUsp710hK\nKaUxxlFrffXeHxFxRcTVWnuunms1ewIA9rXtRQkAAODOthclAACAO0IJAABgIpQAAAAmQgkAAGAi\nlAAAACZCCQAAYPIF5fe6JjownXYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x3f2e190>"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.9, Page number: 521<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display status of mouse button pressed \n",
+ "\n",
+ "from Tkinter import *\n",
+ "from tkFileDialog import askopenfilename\n",
+ "import Image, ImageTk\n",
+ "\n",
+ "if __name__ == \"__main__\":\n",
+ " root = Tk()\n",
+ "\n",
+ " #setting up a tkinter canvas with scrollbars\n",
+ " frame = Frame(root, bd=2, relief=SUNKEN)\n",
+ " frame.grid_rowconfigure(0, weight=1)\n",
+ " frame.grid_columnconfigure(0, weight=1)\n",
+ " xscroll = Scrollbar(frame, orient=HORIZONTAL)\n",
+ " xscroll.grid(row=1, column=0, sticky=E+W)\n",
+ " yscroll = Scrollbar(frame)\n",
+ " yscroll.grid(row=0, column=1, sticky=N+S)\n",
+ " canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)\n",
+ " canvas.grid(row=0, column=0, sticky=N+S+E+W)\n",
+ " xscroll.config(command=canvas.xview)\n",
+ " yscroll.config(command=canvas.yview)\n",
+ " frame.pack(fill=BOTH,expand=1)\n",
+ "\n",
+ " \n",
+ "\n",
+ " #function to be called when mouse is clicked\n",
+ " def printcoords(event):\n",
+ " #outputting x and y coords to console\n",
+ " print \"Mouse Button pressed\"\n",
+ " print (event.x,event.y)\n",
+ " #mouseclick event\n",
+ " canvas.bind(\"<Button 1>\",printcoords)\n",
+ "\n",
+ " root.mainloop()\n",
+ " \n",
+ "import win32api, win32con\n",
+ "\n",
+ "print \"Current cursor position at \" \n",
+ "print win32api.GetCursorPos()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mouse Button pressed\n",
+ "(207, 115)\n",
+ "Current cursor position at "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(502, 188)\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.10, Page number: 523<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change mouse cursor.\n",
+ "\n",
+ "#Placing the cursor on top of the circle button will change the pointer to circle\n",
+ "# and plus button to plus symbol\n",
+ "\n",
+ "from Tkinter import *\n",
+ "import Tkinter\n",
+ "\n",
+ "top = Tkinter.Tk()\n",
+ "\n",
+ "B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
+ " cursor=\"circle\")\n",
+ "B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
+ " cursor=\"plus\")\n",
+ "B1.pack()\n",
+ "B2.pack()\n",
+ "top.mainloop()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+=======
{
"metadata": {
"name": ""
@@ -751,4 +1476,5 @@
"metadata": {}
}
]
+>>>>>>> 0ee873700378b995b441b1be6652178f741aea5b
} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/README.txt b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/README.txt
new file mode 100755
index 00000000..d22b8868
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/README.txt
@@ -0,0 +1,10 @@
+Contributed By: vamsikrishna garnapudi
+Course: btech
+College/Institute/Organization: SASTRA UNIVERSITY
+Department/Designation: it
+Book Title: Radar Engineering and Funamentals of Navigational Aids
+Author: G. S. N. Raju
+Publisher: I. k. International, New Delhi
+Year of publication: 2010
+Isbn: 978-81-906942-1-6
+Edition: 1 \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter1.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter1.ipynb
new file mode 100755
index 00000000..c9713645
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter1.ipynb
@@ -0,0 +1,125 @@
+{
+ "metadata": {
+ "name": "raju chapter 1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 1:Introduction to Radar, Radar Parameters and their Definitions"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No:34"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPRF= 1000; #pulse repetitive frequency in Hz\nPW = 2*10**-6; #pulse width 2us\nPav=100; #average power in watts\n\n#Calculations\n\nPpeak = (Pav)/float((PW*PRF)); #Peak power in watts\nD = Pav/float(Ppeak); #Duty cycle\n\n#result\nprint' Peak power is ',Ppeak/1000,' KW';\nprint' Duty cycle is %3.1e'%D;\n\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Peak power is 50.0 KW\n Duty cycle is 2.0e-03\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No:35"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPRF = 1.2*10**3; #pulse repetitive frequency in Hz\nPI = 0.6*10**-3; #pulse interval in sec\n\n#Calculations\n\nPRT = 1/float(PRF); #pulse repetition frequency in Hz\nPW = PRT-PI; #pulse width in sec;\n\n#result\nprint'Pulse repetitive time is %2.3g'%(PRT*1000),'ms';\nprint'Pulse width is %2.3g'%(PW*1000),'ms';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Pulse repetitive time is 0.833 ms\nPulse width is 0.233 ms\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3,Page No:35"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nD = float(0.001); #Duty Cycle\nPpeak =500*10**3; #Peak Power in Watts\n\n#Calculations\n\nPav = D * Ppeak; # D=averagepower/Peakpower;\n\n#result\nprint'Average power is %g'%Pav,' Watts';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Average power is 500 Watts\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4:Page No:35"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nPRF = 1000; # pulse repetitive frequency in Hz\nPpeak = 10*10**6; # peak power in watts\nPav = 100*10**3; # average power in watts\n\n#Calculations\n\nD = Pav/float(Ppeak); #Duty cycle\nPRT = 1/float(PRF); #pulse repetitive time;\n\n#result\n\nprint'Duty cycle is %g'%D;\nprint'Repetitive time is %g'%(PRT*1000),'ms';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty cycle is 0.01\nRepetitive time is 1 ms\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5, Page No:36"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 6*10**9; #frequency in Hz\nVo = 3*10**8; #velocity in m/s;\nVr = 200; #Radial velocity in kmph\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength = vel/freq;\nFd = (2*Vr/float(lamda))*(5/float(18)); #doppler frequency in Hz\n\n#5/18 is multiplied to convert kmph to m/s\n\n#result\nprint'Doppler Frequency is %3.3g'%(Fd/1000),'KHz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Frequency is 2.22 KHz\n"
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter11.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter11.ipynb
new file mode 100755
index 00000000..bf5a2838
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter11.ipynb
@@ -0,0 +1,1402 @@
+{
+ "metadata": {
+ "name": "Chapter11"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 11:SOLVED EXAMPLES"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No:404"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\nF = 10*10**9; # radar operating frequency in Hz\nVo = 3*10**8; # vel in m/s\nG = 20; # antenna gain in dBi\nR = 20*10**3; # distance of radar reflected signal from target\nPt = 10*10**3 # Tx power in watts\nCS = 10; # cross sectional area in m^2\n\n# Calculations\n\nGain = 10**(G/10) # G = 10log(Gain) ==>gain - antilog(20/10)\nGr = Gain; # gain of tx antenna and Rx antenna\nGt = Gain;\nlamda = float(Vo)/F;\nPr = (lamda*lamda*Pt*Gt*Gr*CS)/((4*4*4*math.pi*math.pi*math.pi)*(R**4)); #received power in watts\n\n# result\n\nprint'Received signal Power is %3.5g' %Pr;\nprint'Note : Calculation error in Textbook';\n\n\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Received signal Power is 2.8346e-15\nNote : Calculation error in Textbook\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No:405"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVo = 3*10**8; #velocity of EM wave in m/s\nt = 20*10**-6; #echo time in sec\n\n# calculations\n\nR = (Vo*t)/2; #distance b/n target and Radar in m\n\n# Output\nprint'Distance of Target from the Radar is ', R/1000,'km' ;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Distance of Target from the Radar is 3.0 km\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3,Page No:405"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nVo = 3*10**8; #velocity of EM wave in m/s\nF = 0.8*10**3; #pulse repetitive frequency\nTp = 1.2*10**-6; #pulse width in sec\n\n# calculations\nRmax = Vo/(2*F); # maximum Range of Radar in m\nRmin = (Vo*Tp)/2; # minimum Range of radar in m\n\n# Output\n\nprint'Maximum Range of Radar is ',Rmax/1000,'Km';\nprint'Minimum Range of the Radar is',Rmin,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Range of Radar is 187.5 Km\nMinimum Range of the Radar is 180.0 m\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4,Page No:405"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nPW = 1.5*10**-6; #pulse width in sec\nPRF = 2000; #per second\n\n# calculations\nDc = PW*PRF; #duty cycle\n\n# Output\nprint'Duty Cycle is %3.4e' %Dc; ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty Cycle is 3.0000e-03\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5,Page No:406"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nPW = 2*10**-6; #pulse width in sec\nPRF = 1000; #pulse repetitive frequency \nPp = 1*10**6; #peak power in watts\n\n# Calculations\nDc = PW*PRF; # duty cycle\nAvgTp = Pp*Dc; # average transmitted power in watts\n\n# Output\nprint'Average Transmitted power is ',AvgTp/1000,'KW';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Average Transmitted power is 2.0 KW\n"
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6,Page No:406"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math \n\n#variable declaration\n\nPW = 2*10**-6; #pulse width in sec\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nRR = (Vo*PW)/2; #Range Resolution in m\n\n# result\nprint'Range Resolution is ',RR,'m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Range Resolution is 300.0 m\n"
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7,Page No:406"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nt = 50*10**-6; #echo time in sec\nVo = 3*10**8; #velocity of EM wave in m/s\n\n# Calculations\n\nR = (Vo*t)/2; #Range in m\n\n# result\n\nprint'Target Range is ',R/1000,'Kms';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Target Range is 7.5 Kms\n"
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8,Page No:406"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nTvel = 1000; #target speed in kmph\nF = float(10*10**9); #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nVr = 1000*(5/float(18)); #target speed in m/s\nFd = float(2*Vr*F)/float(Vo); #Doppler Frequency shift in Hz\n\n#result\nprint'Doppler Frequency shift Caused by aircraft is %g' %(Fd/1000),'KHz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Frequency shift Caused by aircraft is 18.5185 KHz\n"
+ }
+ ],
+ "prompt_number": 178
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9,Page No:407"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nF = 6*10**9; # Transmitting Frequency of Radar\nVr = 250; # velocity of automobile in Kmph\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nVa = Vr*(5/float(18)); #velocity of automobile in m/s\nFd = (2*Va*F)/float(Vo); #Doppler Frequency shift in Hz\n\n#result\nprint'Doppler Frequency shift is %3.3f ' %(Fd/10**3),'KHz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Frequency shift is 2.778 KHz\n"
+ }
+ ],
+ "prompt_number": 196
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10,Page No:407"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nF = 9*10**9; #Transmitting Frequency of Radar\nVr = 800; #velocity of aircraft in Kmph\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nVa = Vr*(5/float(18)); #velocity of aircraft in m/s\nFd = (2*Va*F)/float(Vo); #Doppler Frequency shift in Hz\nFr = F+Fd; #frequency of reflected echo in Hz\n\n#result\nprint'Doppler Frequency shift is %3.2e'%Fd,'Hz';\nprint'frequency of reflectedecho is %4e'%(Fr/1000),'Khz';\nprint'Note: doppler frequency shift wrongly printed in Text Book as 1333.3 Hz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Frequency shift is 1.33e+04 Hz\nfrequency of reflectedecho is 9.000013e+06 Khz\nNote: doppler frequency shift wrongly printed in Text Book as 1333.3 Hz\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 11,Page No:407"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 2*10**9; #Transmitting Frequency of Radar\nVr = 350; #velocity of sports Car in Kmph\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nVa = Vr*(5/float(18)); #velocity of aircraft in m/s\nFd = (2*Va*F)/float(Vo); #Doppler Frequency shift in Hz\n#Car moving away from Radar\n\nFr = F-Fd; #frequency of reflected signal in Hz\n\n#result\n\nprint'Doppler Frequency shift is %g'%Fd,'Hz';\nprint'frequency of reflected echo is %3.3g'%(Fr/10**9),'GHz','-',Fd,'Hz';\nprint'Note: doppler frequency shift wrongly printed in Text Book as 129.6 Hz\\nVr is printed as 9.72 m/s instead of 97.2 m/s';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Frequency shift is 1296.3 Hz\nfrequency of reflected echo is 2 GHz - 1296.2962963 Hz\nNote: doppler frequency shift wrongly printed in Text Book as 129.6 Hz\nVr is printed as 9.72 m/s instead of 97.2 m/s\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 12,Page No:408"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPRF = 2000; #pulse repetition frequency per second\nPW = 1*10**-6; #pulse width in sec\nPp = 500*10**3; #Peak power in watts\n\n#Calculations\n\nDc = PW*PRF; #Duty Cycle\nPav = Pp*Dc; #average power in watts\npavdB = 10*math.log10(Pav);\n\n#result\n\nprint'Average power is ',Pav/1000,'KW';\nprint'Average Power is ',pavdB,'dB';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Average power is 1.0 KW\nAverage Power is 30.0 dB\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 13,Page No:408"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nPRF = 1000; #pulse repetition frequency per second\nPW = 0.8*10**-6; #pulse width in sec\nPp = 10*10**6; #Peak power in watts\nVo = 3*10**8; #velocity of EM wave in m/s;\n\n#Calculations\n\nDc = PW*PRF; #Duty Cycle\nPav = Pp*Dc; #average power in watts\nRmax = Vo/(2*PRF);\n\n\n#result\nprint'Average power is ',Pav/1000,' KW';\nprint'Maximum Radar Range is ',Rmax/1000,'Km';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Average power is 8.0 KW\nMaximum Radar Range is 150 Km\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 14,Page No:409"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nRmax = 500*10**3; #maximum Range of Radar in ms\nVo = 3*10**8; #Velocity of EM wave in m/s\n\n#Calculations\n\nPRF = Vo/(2*Rmax); #pulse repetitive frequency in Hz\n\n#result\n\nprint'Pulse repetive frequency required for the range of 500km is ',PRF,'Hz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Pulse repetive frequency required for the range of 500km is 300 Hz\n"
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 15,Page No:409"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nTe = 0.2*10**-3; #echo time in sec\nPRF = 1000; #pulse repetitive Frequency in Hz\nVo = 3*10**8; #Velocity of EM wave in m/s\n\n#Calculations\n\nR = (Vo*Te)/2; #Range of the target in m\nRunamb = (Vo/(2*PRF)); #Maximum unambiguous Range in m\n\n#result\n\nprint'Target range is ',R/1000,' Km';\nprint'Maximum Unambiguous Range is ',Runamb/1000,'Km';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Target range is 30.0 Km\nMaximum Unambiguous Range is 150 Km\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 16,Page No:409"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 10*10**9; #operating frequency of radar in Hz\nVo = 3*10**8; #Velocity of EM wave in m/s\nVr = 100; #velocity of car in kmph\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in m\nVc = Vr*(5/float(18)); #velocity of car in m/s\nFd = (2*Vc)/float(lamda); #doppler shift in Hz\n\n#result\n\nprint'Doppler Shift is %3.2f '%(Fd/1000),' KHz';\nprint'Frequency of the Received echo when car is approaching radar is %g'%(F/10^9),'Ghz','+',Fd/1000,' Khz';\nprint'Frequency of the Received echo when car is moving away from radar is %g '%(F/10^9),'Ghz','-',Fd/1000,'Khz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Shift is 1.85 KHz\nFrequency of the Received echo when car is approaching radar is 1e+09 Ghz + 1.85185185185 Khz\nFrequency of the Received echo when car is moving away from radar is 1e+09 Ghz - 1.85185185185 Khz\n"
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 17,Page No:410"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nD = 200; #azimuth distance between two radars\nR = 10*10**3; #Range of radar\n\n\n#Calculations\nBWdB = (float(D)/R)*(180/math.pi); #3dB beam width in degrees\n\n#result\nprint'Maximum 3db beamwidth of radar resolving the target is %3.3f'%BWdB, 'degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum 3db beamwidth of radar resolving the target is 1.146 degrees\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 18,Page No:410"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 10*10**9; #operating frequency of radar in Hz\nVo = 3*10**8; #Velocity of EM wave in m/s\nVr1 = 100; #velocity of one aircraft in m/s\ntheta = 45; #angle b/n velocity vector and radar axis for second aircraft\nVr = 200; #vel in m/s\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in m\nFd1 = (2*Vr1)/float(lamda); #doppler shift due to 1st aircraft\nVr2 = Vr*math.cos(45*math.pi/180); #radial velocity of the second aircraft\nFd2 = (2*Vr2)/float(lamda); #doppler shift due to 2nd aircraft\nFd = Fd2-Fd1; #difference in doppler shift in Hz\nT = 1/float(Fd); #time required to resolve the aircraft in sec\n\n#result\nprint'Minimum time required to resolve the aircrafts is %g'%(T*10**6),'usec';\nprint'Note: in textbook there is a mistake in the calculation of doppler shift Fd1';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum time required to resolve the aircrafts is 362.132 usec\nNote: in textbook there is a mistake in the calculation of doppler shift Fd1\n"
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 19,Page No:410"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declareation\n\nPp = 100*10**3; #peak power in watts\nPav = 100; #average power in watts\n\n#Calculations\n\nPdB = 10*math.log10(Pp); #peak power in dB\nPavdB = 10*math.log10(Pav); #average power in dB;\nDCC = PdB-PavdB; #Duty Cycle Correction factor\n\n#result\nprint'Duty Cycle Correction Factor is ',DCC, 'dB';\nprint'Note: In question given peak power is 100KW but while solving 1KW is taken instead of 100KW';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty Cycle Correction Factor is 30.0 dB\nNote: In question given peak power is 100KW but while solving 1KW is taken instead of 100KW\n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 20,Page No:411"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPp = 1*10**6; #peak power in watts\nPW = 1*10**-6; #pulse width in sec\nNPd = 20; #pulses in one dwell period\nPRF = 1000; #pulse repetitive frequency\n\n#calculations\nPE = Pp*PW; #pulse energy in joule\nPED = NPd*PE; #pulse energy in one dwell period\nD = PW*PRF; #Duty cycle\nPav = Pp*D; #average power in watts\n\n#output\nprint'Average Power is ',Pav,'watts';\nprint'Duty Cycle is %2.2e'%D;\nprint'Pulse Energy is ',PE,' Joules';\nprint'Pulse Energy in one Dwell Period is ',PED,'Joules';\nprint'Note: In textbook Values of PRF and pulses in one dwell period are varied from given values in question while solving ' ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Average Power is 1000.0 watts\nDuty Cycle is 1.00e-03\nPulse Energy is 1.0 Joules\nPulse Energy in one Dwell Period is 20.0 Joules\nNote: In textbook Values of PRF and pulses in one dwell period are varied from given values in question while solving \n"
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 21,Page No:411"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nNoise_power = -50; #noise power in dBm\nFl = 1*10**6;#lower cutoff frequency in Hz\nFh = 21*10**6;#upper cutoff frequency in Hz\n\n#calculation\nBW = Fh-Fl;#bandwidth\nNP =10**-8;#noise power in watts; -50dBm = 10log10(NP) =>10^-5 mwatts\nNPSD = NP/BW;#noise power spectral density in W/Hz\n\n#result\nprint'Noise Power Spectral Density is %3.0e'%NPSD,' W/Hz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Noise Power Spectral Density is 5e-16 W/Hz\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 22,Page No: 411"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nRa = 1000; #Range of target A in Kms\n\n#Calculations\nRb =Ra*math.cos(45*math.pi/180); #range of target B in kms\n\n#result\nprint'Range of target B is %g '%Rb,'Kms';\nprint'Note:value of cos(45) is incorrectly taken as 1/2 in textbook';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Range of target B is 707.107 Kms\nNote:value of cos(45) is incorrectly taken as 1/2 in textbook\n"
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 23,Page No:412"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nAz = 60; #azimuth angle of the target in degrees\nHeight = 10;#height of target in kms\n\n#Calculations\nR = 10/math.sin(Az*math.pi/180);\n\n#result\n\nprint'Range of the Target is %g '%R,'Kms';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Range of the Target is 11.547 Kms\n"
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 24,Page No:412"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 10*10**9; #MTI radar operating Frequency\nVo = 3*10**8; #velocity of EM wave in m/s;\nPRF = 2*10**3; #pulse repetitive frequency in hz\nn=1; #for lowest blind speed\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in m\nBS =((n*lamda)/float(2))*PRF; #blind speed\n\n#result\nprint'Lowest Blind Speed is ',BS,'m/s';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lowest Blind Speed is 30.0 m/s\n"
+ }
+ ],
+ "prompt_number": 210
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 25,Page No:412"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nPRF = 2*10**3; # pulse repetitive frequency in Hz\nVo = 3*10**8; #velocity of EM wave in m/s\nprint'f1 = first operating frequency of MTI Radar\\n';\nprint' f2 = second operating frequency of MTI Radar\\n';\nprint' 2nd blind speed of 1st radar = (2Vo/2f1)*PRF\\n 5th blind speed of 2nd radar = (5Vo/2f2)*PRF\\n';\nprint' PRF(V0/f1) = (5/2)*(Vo/f2)*PRF\\n';\nprint' (f2/f1) = 5/2\\n';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "f1 = first operating frequency of MTI Radar\n\n f2 = second operating frequency of MTI Radar\n\n 2nd blind speed of 1st radar = (2Vo/2f1)*PRF\n 5th blind speed of 2nd radar = (5Vo/2f2)*PRF\n\n PRF(V0/f1) = (5/2)*(Vo/f2)*PRF\n\n (f2/f1) = 5/2\n\n"
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 26,Page No:413"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n\nprint'(PRF1) = 2(PRF2)\\n';\nprint' Vb3 = 4Vb5\\n';\nprint' (3Vo/2F1)(PRF1)) = 4(5Vo/2F2)(2PRF2)\\n';\nprint' 3/2F1 = 20/F2\\n';\nprint' Ratio of operating frequencies is F2/F1 = 40/3\\n';\n\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "(PRF1) = 2(PRF2)\n\n Vb3 = 4Vb5\n\n (3Vo/2F1)(PRF1)) = 4(5Vo/2F2)(2PRF2)\n\n 3/2F1 = 20/F2\n\n Ratio of operating frequencies is F2/F1 = 40/3\n\n"
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 27,Page No:413"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPW = 5; #FM pulse width before compression in us\nFl = 40; #lower cut off Frequency in Mhz\nFh = 60; #upper cut off Frequency in Mhz\n\n#Calculations\nBW = Fh-Fl; #bandwidth of signal in Mhz\nCPW = 1/float(BW); #Compression pulse width in us\nCR = PW/float(CPW); #compression ratio\n\n#result\nprint'Compression ratio is %g'%CR;\nprint'Compression Pulse Width is %g'%CPW,'us';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Compression ratio is 100\nCompression Pulse Width is 0.05 us\n"
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 28,Page No:413"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nBW = 100; #band width in Mhz\nPW = 4; #pulse width in us\n\n#Calculations\n\nCPW = 1/float(BW); #compressed pulse width in us\nCR = PW/float(CPW); #compression ratio\n\n#result\nprint'compressed pulse width is %g'%CPW,' us';\nprint'compression ratio is %g'%CR;\nprint'Note: In textbook compression ratio is wrongly printed as 40';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "compressed pulse width is 0.01 us\ncompression ratio is 400\nNote: In textbook compression ratio is wrongly printed as 40\n"
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 29,Page No:414"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nCR = 50; #compression ratio\nPW = 2; #pulse width in us\n\n#Calculations\n\nCPW = PW/float(CR); #compression pulse width in us\nBW = 1/float(CPW); # compression band width in Mhz\n\n#result\nprint'compressed pulse width is %g'%CPW,'us';\nprint'compression Bandwidth is %g'%BW,'MHz'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "compressed pulse width is 0.04 us\ncompression Bandwidth is 25 MHz\n"
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 30,Page No:414"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPW = 1*10**-6; #transmitted pulse width in sec\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nRR = (Vo*PW)/2;\n#result\nprint'Range Resolution is ',RR,' m';\nprint'As the targets are separated by 100m it is possible to resolve';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Range Resolution is 150.0 m\nAs the targets are separated by 100m it is possible to resolve\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 31,Page No:414"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\nF = 10*10**9; #operating frequency in Hz\nPRF = 1000; #pulse repetitive frequency in Hz\nFm = PRF; #modulating frequency\n#Calculations\nFc1 = float(F+Fm); #closest frequency in Hz\nFc2 = float(F-Fm); #closest frequency in Hz\n#result\nprint'Closest Frequencies are %3.3f'%(Fc1/10**6),' Mhz';\nprint'Closest Frequencies are %3.3f'%(Fc2/10**6),' Mhz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Closest Frequencies are 10000.001 Mhz\nClosest Frequencies are 9999.999 Mhz\n"
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 32,Page No:414"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF1 = 490; #freq shift lower limit in Mhz\nF2 = 510; #freq shift upper limit in Mhz\n\n#calculations\n\nSC = (F1+F2)/2; #Spectrum Centre in Mhz\nBW = F2-F1; #bandwidth in Mhz\nCPW = float(1)/BW; #compressed bandwidth in us\n\n#result\nprint'Spectrum centre is %g'%SC,' MHz';\nprint'BandWidth is %g'%BW,' MHz';\nprint'Compressed pulse Width is %3.2f'%CPW,'us';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Spectrum centre is 500 MHz\nBandWidth is 20 MHz\nCompressed pulse Width is 0.05 us\n"
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 33,Page No:415"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 9; #Noise figure in dB\nBW = 2*10**6; # Bandwidth\nTo = 300; # Temperature in kelvin\nK = 1.38*10**-23; # Boltzman constant\n\n#Calculations\n\nF1 = 10**(F/float(10)); #antilog calculation\nPmin = (K*To*BW)*(F1-1); #minimum receivable power\n\n#result\nprint'Minimum receivable power Pmin %3.3e'%Pmin,' W';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum receivable power Pmin 5.749e-14 W\n"
+ }
+ ],
+ "prompt_number": 217
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 34,Page No:415"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt = 500*10**3; #peal pulse power in watts\nPmin = 1*10**-12; #minimum receivable power\nAc = 5; #area of capture in m^s\nRCS = 16; #radar cross sectional area in m^2\nF = 10*10**9; #radar operating frequency\nVo = 3*10**8; #vel of Em wave in m/s;\n\n#calculations\nlamda = Vo/float(F); #wavelength\n\nRmax = ((Pt*Ac*Ac*RCS)/float((4*math.pi*lamda*lamda*Pmin)))**0.25;\n\n#result\nprint'Maximum Radar range of the Radar system is %g'%(Rmax/1000),' Kms';\nprint'Note:Calculation mistake in textbook instead of RCS,RCS^2 is calculated';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Radar range of the Radar system is 364.665 Kms\nNote:Calculation mistake in textbook instead of RCS,RCS^2 is calculated\n"
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 35,Page No:415"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nlamda = 0.03; #wavelength in m\nRCS = 5; # Radar cross section in m^2\nD = 1; # antenna diameter in m\nF = 5; # noise figure in dB\nRmax = 10*10**3 # Radar range\nBW = 500*10**3; # bandwidth\n\n#Calculation\nF1 = 10**(F/float(10)); # antilog calculation\n\n#Rmax = 48*((Pt*D**(4*RCS))/float((BW*lamda*lamda(F-1))))**(0.25);\n\nPt = ((Rmax/float(48))**(4))*((BW*lamda*lamda*(F1-1))/float(((D**4)*RCS)));\n\n#result\nprint'Peak Transmitted Power is %e' %Pt;\nprint'Note: Antilog Calculation error in textbook at F'",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Peak Transmitted Power is 3.665971e+11\nNote: Antilog Calculation error in textbook at F\n"
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 36,Page No:416"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# variable Declaration\nPt = float(20*10**6); #peak pulse power in watts\nRCS = 1; # radar cross sectional area in m^2\nf = 3*(10**9); #radar operating frequency\nVo = 3*(10**8); #vel of Em wave in m/s;\nD = 50; #diameter of antenna in m\nF = 2; #receiver noise figure \nBW = 5000; #receiver bandwidth\n\n# calculations\n\nlamda = float(Vo)/float(f) # wavelength in m\nRmax = 48*((Pt*(D**4)*RCS)/(BW*lamda*lamda*(F-1)))**0.25;\n\n\n# output\nprint 'Maximum Radar range of the Radar system is %f kms' %(Rmax/1000);\nprint 'Note:In textbook All values are correctly substituted in calculating Rmax but incorrect final answer is printed in the book'\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Radar range of the Radar system is 60.356805 kms\nNote:In textbook All values are correctly substituted in calculating Rmax but incorrect final answer is printed in the book\n"
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 37,Page No:417"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nlamda = 6*10**-2; #Wavelength in m\nPRF = 800; #Pulse Repetitive frequency in Hz\nn1 = 1 ; #n value for first blind speed\nn2 = 2 ; #n value for first blind speed\nn3 = 3 ; #n value for first blind speed\n\n#Calculations\n\n#Vb = (n*lamda/2)*PRF; Blind speed of the Radar\n\n#For n = 1\n\nVb1 = ((n1*lamda)/float(2))*PRF; #Blind speed of the Radar in m/s\nVb2 = ((n2*lamda)/float(2))*PRF; #Blind speed of the Radar in m/s\nVb3 = ((n3*lamda)/float(2))*PRF; #Blind speed of the Radar in m/s\n\n#multiply by 18/5 to convert from m/s to kmph\n\n#result\nprint'The lowest Blind speeds are %3.1f' %(Vb1*(18/float(5))),'Km/hr';\nprint'The lowest Blind speeds are %3.2f' %(Vb2*(18/float(5))),'Km/hr';\nprint'The lowest Blind speeds are %3.2f' %(Vb3*(18/float(5))),'Km/hr';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "The lowest Blind speeds are 86.4 Km/hr\nThe lowest Blind speeds are 172.80 Km/hr\nThe lowest Blind speeds are 259.20 Km/hr\n"
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 38,Page No:417"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\n\nPt = 500*10**3; # Peak pulse power in Watts\npt = 50; # peak power transmitted by beacon in watts\nf = 2500*10**6; # Radar Operating frequency in Hz\nlamda = 0.12; # wavelength in m\nD = 64; # antenna diameter in m\nBW = 5000; # Radar Bandwidth\nAb = 0.51;\nk = 1.38*10**-23; # Boltzmann constant\nF = 20 # Noise figure \nFb = 1.1 # Noise figure of beacon\nTo = 290; # Temperature in kelvin\n \n#Calculations\n\nAr = (0.65*math.pi*D*D)/float(4);\nRmax = math.sqrt((Ar*Pt*Ab)/float((lamda*lamda*k*To*BW*(F-1)))); # Max tracking range of radar\n\nRmax1 = math.sqrt((Ar*pt*Ab)/float((lamda*lamda*k*To*BW*(Fb-1)))); # Max tracking range of radar if Fb = 1.1\n\n#result\nprint'Maximum Tracking Range of Radar is %3.3e'%(Rmax/1000),' Km';\nprint'Range of beacon if noise figure is 1.1 %3.3e'%(Rmax1/1000),'Km';\nprint'Note: Calculation mistake in textbook in calculating Range of beacon instead of 1.36*10^9 km range is wrongly printed as 136*10^6 km';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Tracking Range of Radar is 9.869e+09 Km\nRange of beacon if noise figure is 1.1 1.360e+09 Km\nNote: Calculation mistake in textbook in calculating Range of beacon instead of 1.36*10^9 km range is wrongly printed as 136*10^6 km\n"
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 39,Page No:417"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n\n# Variable Declaration\nlamda = 0.06; # wavelength in m\nVr = 100 ; # Radial velocity of target in kmph\n\n#Calculations\nVr1 = Vr*(float(5)/18); #Radial vel. in m/s\nfd = (2*Vr1)/lamda; #doppler shift\n\n#Output\n\nprint 'Doppler Shift is %3.3f Khz' %(fd/1000);",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler Shift is 0.926 Khz\n"
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 40,Page No:418"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 9.5*10**9; #radar operating frequency in Hz\nVo = 3*10**8; #vel in m/s;\nG = 20; #antenna gain in dBi;\nR = 50*10**3; #distance of radar reflected signal from target\nPt = 10*10**3 #Tx power in watts\nCS = 10; #cross sectional area in m^2\n\n#Calculations\nGain = 10**(G/float(10)); #G = 10log(Gain) ==>gain - antilog(20/10);\nGr = Gain; #gain of tx antenna and Rx antenna\nGt = Gain\nlamda = float(Vo)/F\nPr= (lamda*lamda*Pt*Gt*Gr*CS)/((4*4*4*math.pi*math.pi*math.pi)*(R**4))\n#result\nprint'Received signal Power is %g'%Pr,' Watts';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Received signal Power is 8.04055e-17 Watts\n"
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 41,Page No:418"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nVo = 3*10**8; #vel of EM wave m/s;\nt = 10*10**-6; # time taken to rx echo\n\n#Calculations\n\nR = (Vo*t)/2; #Distance of the Target\n\n#result\n\nprint'Distance of the target is ',R/1000,' Km';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Distance of the target is 1.5 Km\n"
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 42,Page No:419"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\nPW = 10**-6; # Pulse Width in sec\nPRF = 1000; #Pulse Repetitive Freq in Hz \nVo = 3*10**8; # vel of EM wave m/s;\n\n#Calculations\n\nRmax = Vo/(2*PRF); #max range of radar\nRmin = (Vo*PW)/2 ; # min range of radar\n\n#result\nprint'Maximum Range of radar is %e'%Rmax,' m';\nprint'Minimum Range of radar is ',Rmin,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Range of radar is 1.500000e+05 m\nMinimum Range of radar is 150.0 m\n"
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 43,Page No:419"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVr = 100; # speed of car in kmph\nf = 10*10**9; # Radar operating frequency\nVo = 3*10**8; # vel. of EM wave\n\n#Calculations\n\nVr1 = Vr*(5/float(18)); # kmph to m/s conversion\nfd = (2*Vr1*f)/float(Vo); # Doppler shift in Hz\n\n#result\nprint'Doppler shift %3.3g'%(fd/1000),'Khz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler shift 1.85 Khz\n"
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 44,Page No:420"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVo = 3*10**8; # vel of EM wave m/s;\nt = 200*10**-6; # time taken to rx echo\n\n#Calculations\n\nR = (Vo*t)/2; # Distance of the Target\n\n\n#result\nprint'Distance of the target is ',R/1000,'Km';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Distance of the target is 30.0 Km\n"
+ }
+ ],
+ "prompt_number": 235
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 45,Page No:420"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt = 100*10**3; # Peak tx. power \nPRF = 1000; # pulse repetitive freq. in Hz\nPW = 1.2*10**-6; # Pulse Width in sec\n\n#Calculations\nDC = PRF*PW # Duty cycle\nPav = Pt*DC # Avg. power\n\n#Output\nprint'Duty cycle is ',DC;\nprint'Average power is ',Pav,' Watts';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty cycle is 0.0012\nAverage power is 120.0 Watts\n"
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 46,Page No:420"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nRunamb = 300*10**3; # unambiguous range in m\nVo = 3*10**8; # Vel. of EM wave in m/s\n\n#Calculations\n\nPRF = Vo/(2*(Runamb)); # Pulse repetitive freq.\n\n#result\n\nprint'Pulse repetitive frequency ',PRF,'Hz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Pulse repetitive frequency 500 Hz\n"
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 47,Page No:420"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declartation\nVo = 3*10**8; #vel of EM wave m/s;\nPRF = 1000; # pulse repetitive freq. in Hz\nPW = 10**-6; # Pulse width in sec\n\n#Calculations\n\nDC = PRF*PW; # Duty cycle\n\nRunamb = Vo/(2*PRF); # Distance of the Target\n\n#result\n\nprint'Duty cycle ',DC;\nprint'Maximum unambiguous range', Runamb/1000,'Km' ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty cycle 0.001\nMaximum unambiguous range 150 Km\n"
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 48,Page No:421"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVo = 3*10**8; # vel of EM wave m/s;\nPRF = 1000; # pulse repetitive freq. in Hz\nPW = 4*10**-6; # Pulse width in sec\n\n#Calculations\n\nRunamb = Vo/(2*PRF); # Distance of the Target\nRR = (Vo*PW)/2; # Range Resolution\n\n#result\n\nprint'Maximum unambiguous range ',Runamb/1000,' Km';\nprint'Range Resolution ',RR,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum unambiguous range 150 Km\nRange Resolution 600.0 m\n"
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 49,Page No:421"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# variable declaration\nf = 6*10**9; # Radar operating freq. in Hz\nVo = 3*10**8; # vel of EM wave m/s;\nPRF = 1000; # pulse repetitive freq. in Hz\nPW = 1.2*10**-6; # Pulse width in sec\nDC = 10**-3; # Duty Cycle\nSmin = 5*10**-12; # min. detectable signal\nR = 60*10**3; # Max. Range in m\nG = 4000; #power gain of antenna\nAe = 1 # effective area in m*2\nRCS = 2 # Radar cross sec. in m*2\n\n#Calculations\n\nlamda = Vo/float(f); # Wavelength in m\nPRT = PW/float(DC); # pulse repetitive time\nPRF = 1/float(PRT); # Pulse repetitive freq.\nPt = ((Smin*(4*math.pi*R*R)**2))/(float((Ae*G*RCS))); #Peak power\nPav = Pt*DC; # average power\n\nRunamb = Vo/float((2*PRF)); # Distance of the Target\nRR = (Vo*PW)/float(2); # Range Resolution\n\n#result\n\nprint' Operating Wavelength = %g'%lamda,' m';\nprint'\\n PRT %3.2f'%(PRT*1000),' ms';\nprint'\\n PRF %3.1f'%PRF,'Hz';\nprint'\\n Peak power %3.3f'%(Pt/1000),' KW';\nprint'\\n Average power %3.3f'%Pav,' Watts';\nprint'\\n unambiguous range %g'%(Runamb/1000),' Km';\nprint'\\n Range Resolution %g'%RR ,'m';\nprint '\\n Note: Calculation error in textbook for Pt and Pav';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Operating Wavelength = 0.05 m\n\n PRT 1.20 ms\n\n PRF 833.3 Hz\n\n Peak power 1279.101 KW\n\n Average power 1279.101 Watts\n\n unambiguous range 180 Km\n\n Range Resolution 180 m\n\n Note: Calculation error in textbook for Pt and Pav\n"
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 50,Page No:423"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVo = 3*10**8; # vel of EM wave m/s;\nPRT = 1.4*10**-3; # pulse repetitive time. in sec\nPW = 5 *10**-6; # Pulse width in sec\nPt = 1000*10**3; #Peak power in watts\n\n#Calculations\n\nDC = PW/float(PRT); # Duty cycle\nPav = Pt*DC # avg. power in W\n\n#result\n\nprint'Duty cycle %3.3e'%DC;\nprint'Average power %g '%Pav,'W' ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty cycle 3.571e-03\nAverage power 3571.43 W\n"
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 51,Page No:423"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 5; # Noise Figure in dB\nBW = 1.2*10**6; # Bandwidth in Hz\nT = 290; # Ambient temp in kelvin\nK = 1.38*10**-23; # boltzmann constant\n\n#Calculations\nF1 = 10**(5/float(10)) ; # antilog calc of noise figure\nPrmin = K*(F1-1)*T*BW; # min. rx. signal\n\n#result\nprint'Minimum Receivable signal %3.4e'%Prmin,' W\\n ';\nprint'Note:In textbook All values are correctly substituted in calculating Prmin.\\nbut incorrect final answer is printed in the book';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum Receivable signal 1.0384e-14 W\n \nNote:In textbook All values are correctly substituted in calculating Prmin.\nbut incorrect final answer is printed in the book\n"
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 52,Page No:423"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt = 1*10**6; #peak pulse power in watts\nPmin = 1*10**-12; #minimum receivable power\nAe = 16; #effective area in m^s\nRCS = 4; #radar cross sectional area in m^2\nF = 9*10**9; #radar operating frequency\nVo = 3*10**8; #vel of Em wave in m/s;\nG = 5000; #Power gain of antenna\n\n#calculations\n\nRmax = ((Pt*G*Ae*RCS)/(16*math.pi*math.pi*Pmin))**(0.25);\n\n#result\nprint'Maximum Radar range of the Radar is %g'%(Rmax/1000),'Kms';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Radar range of the Radar is 212.169 Kms\n"
+ }
+ ],
+ "prompt_number": 98
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 53,Page No:424"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt = 500*10**3; #peal pulse power in watts\nPmin = 1*10**-12; #minimum receivable power\nAc = 5; #area of capture in m^s\nRCS = 20; #radar cross sectional area in m^2\nF = 10*10**9; #radar operating frequency\nVo = 3*10**8; #vel of Em wave in m/s;\nlamda = 3*10**-2; # wavelength in cms\n\n#calculations\n\nRmax = ((Pt*Ac*Ac*RCS)/(4*math.pi*lamda*lamda*Pmin))**(0.25);\n\n#result\nprint'Maximum Radar range of the Radar system is %g'%(Rmax/1000),' Kms';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Radar range of the Radar system is 385.587 Kms\n"
+ }
+ ],
+ "prompt_number": 102
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 54,Page no:425"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nf = 10*10**9; # operating freq. of radar in Hz\nVo = 3*10**8; #vel of Em wave in m/s;\nD = 5; #Diameter of antenna in m\n\n#calculations\nlamda = Vo/float(f); # wavelength in m\nBW = 70*(lamda/float(D)); # BeamWidth in degrees\n\n#result\nprint'Beamwidth = %3.3g'%BW,' degrees';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Beamwidth = 0.42 degrees\n"
+ }
+ ],
+ "prompt_number": 242
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 55,Page No:425"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPav = 200; #average power in watts\nPRF = 1000; #pulse repetitive frequency in Hz\nPW = 1*10**-6; #pulse width in sec\nPmin = 1*10**-12; #minimum receivable power\nAc = 10; #area of capture in m^s\nRCS = 2; #radar cross sectional area in m^2\nVo = 3*10**8; #vel of Em wave in m/s;\nlamda = 0.1; #wavelength in cms\n\n#calculations\nF = Vo/float(lamda); #operating frequency in hz\nPt = Pav/float(PRF*PW);\n\nRmax = ((Pt*Ac*Ac*RCS)/float((4*math.pi*lamda*lamda*Pmin)))**(0.25);\n\n#result\nprint'Operating frequency is %g'%(F/10**9),'Ghz';\nprint'Radar peak power is %g'%(Pt/1000),'KW';\nprint'Maximum Radar range of the Radar system is %g'%(Rmax/1000),' Km';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Operating frequency is 3 Ghz\nRadar peak power is 200 KW\nMaximum Radar range of the Radar system is 133.571 Km\n"
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 56,Page No:426"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nf = 9*10**9; # operating freq. of radar in Hz\nVo = 3*10**8; # vel of Em wave in m/s;\nfd = 1000; #doppler shift freq. in Hz\n\n#Calculations\nlamda = Vo/float(f); # Wavelength in m\nVr = lamda*fd/float(2); # radial velocity of target\n\n#result\nprint'Radial velocity of target Vr %g'%Vr,' m/s';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Radial velocity of target Vr 16.6667 m/s\n"
+ }
+ ],
+ "prompt_number": 245
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 57,Page No:426"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nf = 10*10**9; # operating freq. of radar in Hz\nVr = 800; # radial ve. of of aircraft in kmph\nVo = 3*10**8; #vel of Em wave in m/s;\n\n#calculations\n\nlamda = Vo/float(f); # Wavelength in m\nVr1 = Vr*5/float(18); # kmph to m/s conversion\nfd = 2*Vr1/float(lamda); # Doppler shift freq, in Hz\n\n#result\nprint'Doppler shift frequency fd = %3.2e'%fd,' Hz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler shift frequency fd = 1.48e+04 Hz\n"
+ }
+ ],
+ "prompt_number": 250
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 58,Page No:426"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nf = 6*10**9; # operating freq. of radar in Hz\nVr = 600; # radial ve. of of aircraft in kmph\nVo = 3*10**8; #vel of Em wave in m/s;\n\n#calculations\n\nlamda = Vo/float(f); # Wavelength in m\nVr1 = Vr*5/float(18); # kmph to m/s conversion\nfd = 2*Vr1/float(lamda); # Doppler shift freq, in Hz\n\nV = Vr1*math.cos((45*math.pi/float(180))); # vel in direction of radar if target direction changes by 45 deg\nfd1 = 2*V/float(lamda); #doppler shift freq. in Hz\n\n\n#result\nprint'Doppler shift frequency fd = %3.3g'%(fd/1000),'KHz';\nprint'Doppler shift frequency if the target changes its direction by 45deg %3.2f'%(fd1/1000),'KHz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler shift frequency fd = 6.67 KHz\nDoppler shift frequency if the target changes its direction by 45deg 4.71 KHz\n"
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 59,Page No:427"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nlamda = 3*10**-2; #Wavelength in m\nPRF = 1000; # Pulse Repetitive frequency in Hz\nn = 1; # n value for lowest blind speed\n\n#Calculations\nVb = (n*lamda/float(2))*PRF; #Blind speed of the Radar in m/s\n\n#result\nprint'Lowet blind speed %g'%Vb,'m/s';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lowet blind speed 15 m/s\n"
+ }
+ ],
+ "prompt_number": 254
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 60,Page No:427"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPRF = 1000; # pulse repetitive frequency\nprint'V1b1 = (1* \u03bb1*PRF1)/2'; \nprint'V1b1 = (Vo*PRF1)/(2*f1)';\nprint'V2b3 = (3* \u03bb1*PRF2)/2'; \nprint'V2b3 = (3*Vo*PRF2)/(2*f2)';\nprint'But PRF1 = PRF2 and V1b1 = V2b3';\nprint'(Vo*PRF)/(2*f1) = (3*Vo*PRF)/(2*f2)' ;\nprint'f1/f2 = 1/3';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "V1b1 = (1* \u03bb1*PRF1)/2\nV1b1 = (Vo*PRF1)/(2*f1)\nV2b3 = (3* \u03bb1*PRF2)/2\nV2b3 = (3*Vo*PRF2)/(2*f2)\nBut PRF1 = PRF2 and V1b1 = V2b3\n(Vo*PRF)/(2*f1) = (3*Vo*PRF)/(2*f2)\nf1/f2 = 1/3\n"
+ }
+ ],
+ "prompt_number": 123
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 61,Page No:428"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPRF1 = 10*10**3; #pulse repetitive freq.1 \nPRF2 = 20*10**3; #pulse repetitive freq.2\nPav = 1000; # average tx. power\nPt = 10*10**3; # peak power\n\n#Calculations\nPRT1 = 1/float(PRF1); # pulse repetitive interval in sec\nPRT2 = 1/float(PRF2); # pulse repetitive interval in sec\nDC = Pav/float(Pt); # duty cycle\nPW1 = DC*PRT1 # pulse width for freq1\nPW2 = DC*PRT2 # pulse width for freq2\nE1 = Pt*PW1; # energy of first pulse\nE2 = Pt*PW2; # energy of second pulse\n\n#result\nprint'PW1 = ',PW1*1000,' ms';\nprint'PW2 =',PW2*1000,' ms';\nprint'Pulse Energy for PRF 10KHz is ',E1,' Joules';\nprint'Pulse Energy for PRF 20KHz is ',E2 ,' Joules';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "PW1 = 0.01 ms\nPW2 = 0.005 ms\nPulse Energy for PRF 10KHz is 0.1 Joules\nPulse Energy for PRF 20KHz is 0.05 Joules\n"
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 62,Page No:428"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nRunamb = 150*10**3; # unambigiuous range in m\nBW = 10**6; # bandwidth in Hz\nVo = 3*10**8; #vel of Em wave in m/s;\n\n#Calculations\nPRF = Vo/float((2*Runamb)) ; #pulse repetitive freq. in Hz \nPRT = 1/float(PRF); # pulse repetition interval\nRR = Vo/float((2*BW)); # Range Resolution\nPW = (2*RR)/float(Vo); #Pulse width in sec\n\n#result\nprint'PRF = %3.2f' %PRF,'Hz';\nprint'pulse repetition interval %3.3g'%(PRT*1000),' ms';\nprint'Range Resolution = %d' %RR,'m';\nprint'PulseWidth = %3.2f' %(PW*10**6),'us';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "PRF = 1000.00 Hz\npulse repetition interval 1 ms\nRange Resolution = 150 m\nPulseWidth = 1.00 us\n"
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 63,Page No:429"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVr = 300; # Velocity of radar in m/s\nVair = 200; # velocty of aircraft in m/s\nf = 10*10**9; # Radar operating frequency\nVo = 3*10**8; # vel of Em wave in m/s;\n\n#Calculations\n\nlamda = Vo/float(f); # wavelength in m\nVrel = Vr+Vair; #relative radial vel. b/w radar and aircraft when approaching each other\nfd = (2*Vrel)/float(lamda); #Doppler frequency\n\n#result\nprint'Doppler frequency = %3.2f'%(fd/1000),'KHz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Doppler frequency = 33.33 KHz\n"
+ }
+ ],
+ "prompt_number": 259
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 64,Page No:429"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt = 2*10**6; # Peak power in Watts\nG = 45; # antenna gain in dB\nf = 6*10**9; # operating frequency \nTe = 290; # effective temp in kelvin\nSNRmin = 20; # min SNR in dB\nPW = 0.2*10**-3 # pulse width in sec\nF = 3; # Noise Figure\nB = 10*10**3; # bandwidth in KHz\nRCS = 0.1; # Radar cross section in m^2\nK = 1.38*10**-23; # boltzman constant\nVo = 3*10**8; #vel of Em wave in m/s;\n\n#antilog acalculations\nG1 = 10**(45/float(10)); # antilog conversion of gain\nSNR = 10**(20/float(10)); # antilog conversion of SNRmin\nF1 = 10**(3/float(10)); # antilog conversion of Noise Figure\n\nlamda = Vo/float(f); #wavelength in m\nRmax = ((Pt*G1*G1*lamda*lamda*RCS)/float(((64*math.pi*math.pi*math.pi)*(K*Te*B*F1*SNR))))**(0.25);\n#pt1 = 10*log10(Pt)\n#lamda1 = 10*log10(lamda^2)\n#G2 = 2*G\n#KTB = 10*log10(K*Te*B)\n#RCS1 = 10*log10(RCS)\n#p = 10*log10((4*%pi)^3)\n#R4max = [pt1+G1+lamda1+RCS1-p-KTB-F-SNRmin];\n\n#result\nprint'Maximum Range of the Radar is %3.2f'%(Rmax/100),'Km';\nprint'\\n Note: Calculation error is Textbook in multiplying K*Te*B';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Range of the Radar is 4214.69 Km\n\n Note: Calculation error is Textbook in multiplying K*Te*B\n"
+ }
+ ],
+ "prompt_number": 262
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 65,Page No:430"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nG = 50; # antenna gain in dB\nf = 6*10**9; # operating frequency \nTe = 1000; # Noise temp in kelvin\nSNR = 20; # min SNR in dB\nL = 10; # Losses in dB\nF = 3; # Noise Figure in dB\nRCS = -10; # Radar cross section in dB\nK = 1.38*10**-23; # boltzman constant\nVo = 3*10**8; # vel of Em wave in m/s;\nDC = 0.3; # Duty cycle\nR = 300*10**3; # Range in kms\nPav = 1000; # Average power in watts\nSV = 20; # search volume\nTs = 3; # Scan time\n\n#calculations\n\nPav1 = 10*math.log10(Pav) #conversion to dB\nKT = 10*math.log10(Te*K) #conversion to dB\nR4 = 10*math.log10(R**4) #conversion to dB\nTs1 = 10*math.log10(Ts) #conversion to dB\n#SNR = (Pav*A*RCS*Ts)/(16*R**(4)*KT*L*F*SV));\nA = (SNR-Pav1-Ts-RCS+16+R4+KT+L+F+SV); #aperture\nPt = Pav/DC; #peak ower in watts\n#A1 =10^(A/10); # antilog calculation\n\n#result\nprint'A = %3.4g' %A,'dB';\nprint'Peak power Pt = %3.2f'%(Pt/1000),'KW';\nprint'Note: calculation error in textbook at KT';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "A = 66.48 dB\nPeak power Pt = 3.33 KW\nNote: calculation error in textbook at KT\n"
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 147
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter2.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter2.ipynb
new file mode 100755
index 00000000..d5839bc0
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter2.ipynb
@@ -0,0 +1,209 @@
+{
+ "metadata": {
+ "name": "raju chapter2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 2:Basic Radars"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1,Page No:74"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nTdelay = 200*10**-6; #time delay in sec\nVo = 3*10**8; #velocity in m/s\n\n#Calculations\n\nR = (Vo*Tdelay)/float(2); #Range of the target in kms\n\n\n#result\n\nprint'Range of the target is %g'%(R/1000),'Kms';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Range of the target is 30 Kms\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2,Page No:74"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt = 5000; #Peak tx power in watts\nPav = 1000; #Average Power\nPRF1 = 10; #Pulse repetition frequency in khz\nPRF2 = 20; #Pulse repetition frequency in khz\n\n#Calculations\n\nD = Pav/float(Pt); #Duty cycle\nPRI1 = 1/float(PRF1); #Pulse repetitive interval in msec\nPRI2 = 1/float(PRF2); #Pulse repetitive interval in msec\nPW1 = D*PRI1; #Pulse Width in msec\nPW2 = D*PRI2; #Pulse Width in msec\nPE1 = Pt*PW1; #Pulse Energy in joules\nPE2 = Pt*PW2; #Pulse Energy in joules\n\n#result\nprint'Duty cycle is ',D; \nprint'pulse repetition interval 1 is ',PRI1,'msec';\nprint'pulse repetition interval 2 is ',PRI2,'msec';\nprint'Pulse Width1 is ',PW1*1000,'usec';\nprint'Pulse Width2 is ',PW2*1000,'usec';\nprint'Pulse Energy1 is ',PE1/1000,'J';\nprint'Pulse Energy2 is ',PE2/1000,'J';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty cycle is 0.2\npulse repetition interval 1 is 0.1 msec\npulse repetition interval 2 is 0.05 msec\nPulse Width1 is 20.0 usec\nPulse Width2 is 10.0 usec\nPulse Energy1 is 0.1 J\nPulse Energy2 is 0.05 J\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3,Page No:75"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nUR = 200; #unambiguous range in kms\nBW = 1*10**6; #bandwidth in hz\nV0 = 3*10**8; #velocity in m/s\n\n#Calculations\n\nPRF = V0/float((2*UR*10**3)); #pulse repetition frequency in hz\nPRI = 1/float(PRF); #pulse repetition interval in sec\nRR = V0/float((2*BW)); #Range Resolution in mts\nPW = float(2*RR)/float((V0)); #pulse width\n\n#Calculations\n\nprint'pulse repetition frequency is ',PRF ,'Hz';\nprint'pulse repetition interval is %3.3g'%(PRI*1000),'msec';\nprint'Range Resolution is ',RR,'m';\nprint'pulse width is %3.1f'%(PW*10**6),'usec';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "pulse repetition frequency is 750.0 Hz\npulse repetition interval is 1.33 msec\nRange Resolution is 150.0 m\npulse width is 1.0 usec\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4,Page No:76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPt =50000; #peal power in watts\nPRF =1000; #pulse repetitive frequency in hz\nPW =0.8; #pulse width in usec\n \n#Calculations\n\nD = PW*PRF*10**-6; #duty cycle \nPav = Pt*D; #average power\n\n#result\nprint'Duty cycle is %g'%D;\nprint'Average power is %g'%Pav,' Watts';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Duty cycle is 0.0008\nAverage power is 40 Watts\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5,Page No:76"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVo = 3*10**8; #velocity in m/s\nPt = 1*10**6; #peak power in watts\nPW = 1.2*10**-6; #pulse width in sec\nPRI = 1*10**-3; #pulse repetition interval in sec\n\n#Calculations\n\nPRF = 1/float(PRI); #pulse repetition frequency in hz\nPav = Pt*PW*PRF; #average power in watts\nD = Pav/float(Pt); #Duty cycle;\nRmax = Vo/float(2*PRF); #maximum range of the radar in m\n\n#result\n\nprint'pulse repetition frequency is %g'%(PRF/1000),' KHz';\nprint'average power is %g'%(Pav/1000),'KW';\nprint'Duty cycle = %3.2e'%D;\nprint'Maximum range of the radar is %g '%(Rmax/1000),'Km';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "pulse repetition frequency is 1 KHz\naverage power is 1.2 KW\nDuty cycle = 1.20e-03\nMaximum range of the radar is 150 Km\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6,Page No:77"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nPW = 2*10**-6; #pulse width in sec\nPRF = 800; #pulse repetition frequency in KHz\nV0 = 3*10**8; #velocity in m/s\n\n#Calculations\n\nRu = V0/float(2*PRF); #unambigious range in mts\nRR =(V0*PW)/float(2); #Range resolution in m\n\n#result\nprint'unambigious range is %g'%(Ru/1000),'Km';\nprint'Range resolution is %g '%RR,'m';\n ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "unambigious range is 187.5 Km\n\n Range resolution is 300 m\n"
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7,Page No:77"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nRmax = 500; #maximum range in kms\nV0 = 3*10**8; #velocity in m/s;\n\n#calculations\n\nPRF = (V0/float(2*Rmax*10**3)); #pulse repetitive frequency in Hz\n\n\n#result\nprint'pulse repetitive frequency is %g'%PRF,'Hz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "pulse repetitive frequency is 300 Hz\n"
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8,Page No:77"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 9; # Noise figure in dB\nBW = 3*10**6; # Bandwidth\nTo = 290; # Temperature in kelvin\nK = 1.38*10**-23; # Boltzman constant\n\n#Calculations\n\nF1 = 10**(F/float(10)); #antilog calculation\nPmin = (K*To*BW)*(F1-1); #minimum receivable power\n\n#result\n\nprint'Minimum receivable power Pmin = %3.3g'%(Pmin*10**12),'pW';\nprint'Note: Calculation error at Pmin in textbook';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum receivable power Pmin = 0.0834 pW\nNote: Calculation error at Pmin in textbook\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9,Page No:77"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nPt = 500000; #peal power in watts\nF = 10*10**9; #operating frequency in hz\nMRP = 0.1*10**-12; #minimum receivable power in pico watts\nAc = 5; #capture area of antenna in m^2;\nRCS = 20; #radar cross sectional area in m^2;\nVo = 3*10**8; #velocity in m/s\n\n# calculations\n\nlamda =Vo/float(F);\nRmax=((Pt*Ac*Ac*RCS)/float((4*math.pi*lamda*lamda*MRP)))**float(0.25);\n\n#result\n\nprint'Maximum Radar Range is %g '%(Rmax/1000),'kms';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum Radar Range is 685.681 kms\n"
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter3.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter3.ipynb
new file mode 100755
index 00000000..cd5fc890
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter3.ipynb
@@ -0,0 +1,230 @@
+{
+ "metadata": {
+ "name": "raju chapter3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Chapter 3:Advanced Radars"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page no 104"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n# Variable Declaration\nPRF = 1500; # pulse repetitive frequency in Hz\nlamda = 3*10**-2; # wavelength in m;\n\n# Calculations\n# n = 1 gives lowest blind speed\nn=1;\n\nVb = n*(lamda/2)*PRF; # blind speed in m/s\n\n#Result\nprint 'Lowest Blind Speed is',Vb,'m/s';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lowest Blind Speed is 22.5 m/s\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page no 105"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n# Variable Declaration\nPRF= 1000; # pulse repetitive frequency in Hz\nFd = 1000; # doppler frequency in Hz;\nF = float(10*10**9); # operating frequency of radar in Hz;\nVo = float(3*10**8); # velocity in m/s\n\n# Calculations\nlamda = Vo/F;\nVa = (Fd*lamda)/2; # speed of automobile in m/s\nVa1 = Va*18/5; # speed of automobile in kmph\n\n# Result\nprint 'Speed of automobile is' ,Va,'m/s', 'or',Va1,'kmph';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Speed of automobile is 15.0 m/s or 54.0 kmph\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3, Page no 105"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n# Variable declaration\nPRF= 1000; # pulse repetitive frequency in Hz\nF = 10*10**9; # operating frequency of radar in Hz;\nVo = 3*10**8; # velocity in m/s\n\n# Calculations\nlamda = Vo/F;\n # Blind Frequency is given by Fn = n*PRF;\nn1 = 1;\nn2 = 2;\nn3 = 3;\nF1 =n1*PRF; # blind frequency for n=1 in Hz; \nF2 =n2*PRF; # blind frequency for n=2 in Hz; \nF3 =n3*PRF; # blind frequency for n=3 in Hz; \n\n# Result\nprint 'Lowest three Blind Frequencies are',F1/1000, 'KHz',F2/1000,'KHz' ,'and',F3/1000,'KHz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Lowest three Blind Frequencies are 1 KHz 2 KHz and 3 KHz\n"
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4, Page no 105"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math;\n# Variable declaration\nF = float(10*10**9); # operating frequency in Hz\nPRF= float(800); # pulse repetitive frequency in Hz\nVo = 3*10**8; # velocity in m/s; \nn1 = 1;\nn2 = 2;\nn3 = 3;\n\n# Calculations\n\nlamda = Vo/F; # Wavelength in m\n\n# blind speed Vb = n*(lamda/2)*PRF in m/s\n\nVb1 = n1*(lamda/2)*PRF; #first blind speed in m/s;\nVb2 = n2*(lamda/2)*PRF; #second blind speed in m/s;\nVb3 = n3*(lamda/2)*PRF; #third blind speed in m/s;\n\n#Result\nprint 'First Blind Speed is',Vb1,'m/s'\nprint 'Second Blind Speed is',Vb2,'m/s'\nprint 'Third Blind Speed is',Vb3,'m/s'\nprint 'NOTE: IN TEXT BOOK THIRD BLIND SPEED IS WRONGLY PRINTED AS 48 m/s';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "First Blind Speed is 12.0 m/s\nSecond Blind Speed is 24.0 m/s\nThird Blind Speed is 36.0 m/s\nNOTE: IN TEXT BOOK THIRD BLIND SPEED IS WRONGLY PRINTED AS 48 m/s\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5,Page No:106"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 10*10**9; #operating frequency in Hz\nVo = 3*10**8; #velocity in m/s; \nVb1 = 20; #lowest(first) blind speed in m/s\nn = 1 ; #since first blindspeed\n\n#Calculations\n\nlamda = Vo/float(F); #Wavelength in m\n\n# blind speed Vb = n*(lamda/2)*PRF in m/s\n\nPRF = (2*Vb1)/float((n*lamda)); #pulse repetitive frequency in Hz\n\n#result\n\nprint'Pulse Repetitive Frequency is %3.2f'%(PRF/1000),'KHz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Pulse Repetitive Frequency is 1.33 KHz\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6,Page No:106"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable expression\nlamda = 3*10**-2; #wavelength in m\nPRF = 1000; #pulse repetitive frequency in Hz\nVo = 3*10**8; # velocity in m/s\n\n#Calculations\n\nRuamb = (Vo)/float(2*PRF); #max unambiguous range in m\n\n#result\n\nprint'Maximum unambiguous range is %g'%(Ruamb/1000),'Kms';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum unambiguous range is 150 Kms\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7,Page No:106"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nn1 = 1 ; #since first blindspeed\nn3 = 3 ; #since third blindspeed\n\n#Calculations\n\n\n# blind speed Vb1 = n1*(lamda_1/2)*PRF1 in m/s\n# blind speed Vb3 = n3*(lamda-2/2)*PRF2 in m/s\n#here PRF1 = PRF2 = PRF\n#if Vb1=Vb3 then\n#1*(lamda_1/2)*PRF = 3*(lamda_2/2)*PRF\n#lamda_1/lamda_2 = 3/1;\n#lamda = C/F;\n#therefore F1/F2 = 1/3 ;\n\n\n#result\nprint'Ratio of Operating Frequencies of two Radars are (F1/F2) = 1/3';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Ratio of Operating Frequencies of two Radars are (F1/F2) = 1/3\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8,Page No:107"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVb1 = 20; #first blind speed in m/s\nVb2 = 30; #second blind speed in m/s\nn1 =1 ; #since first blindspeed\nn1 =2 ; #since second blindspeed\nlamda = 3*10**-2; #wavelength in m\n\n#Calculations\n\nPRF1 = (2*Vb2)/float(n1*lamda); #pulse repetitive frequency in Hz of First Radar;\n\nPRF2 = (2*Vb2)/float(n1*lamda); #pulse repetitive frequency in Hz of Second Radar;\n\n\n#result\nprint'Ratio of pulse repetitive frequencies of the Radars is PRF1/PRF2 = %g'%(PRF1/PRF2);\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Ratio of pulse repetitive frequencies of the Radars is PRF1/PRF2 = 1\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9,Page No:107"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 6*10**9; #operating frequency in Hz\nPRF = 1000; #pulse repetitive frequency in Hz\nVo = 3*10**8; #velocity in m/s; \nn2 = 2; # n value for second blind speed\nn3 = 3; # n value for third blind speed\n\n#Calculations\n\nlamda = Vo/float(F); #Wavelength in m\n\n# blind speed Vb = n*(lamda/2)*PRF in m/s\n\nVb2 = n2*(lamda/float(2))*PRF; #second blind speed in m/s;\nVb21 = Vb2*18/float(5); #second blind speed in kmph; \nVb3 = n3*(lamda/float(2))*PRF; #third blind speed in m/s;\nVb31 = Vb3*18/float(5); #/third blind speed in kmph;\n\n#result\nprint'Second Blind Speed is %g'%Vb21,'kmph';\nprint'Third Blind Speed is %g'%Vb31,'kmph';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Second Blind Speed is 180 kmph\nThird Blind Speed is 270 kmph\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10,Page No:108"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nr = 0.5; #Antenna Radius in m\nf = 8*10**9 #operating frequency in Hz\nVo = 3*10**8; #vel. of EM wave in m/s\nRCS = 5; # Radar cross section in m^2\nD = 1; # antenna diameter in m\nF = 4.77; # noise figure in dB\nRmax = 12*10**3 # Radar range\nBW = 500*10**3; # bandwidth\n\n#Calculation\nF1 = 10**(F/float(10)); # antilog calculation\nlamda = Vo/float(f); # wavelength\n\n#Rmax = 48*((Pt*D^4*RCS)/(BW*lamda*lamda(F-1)))^0.25\n\nPt = ((Rmax/48)**(4))*((BW*lamda*lamda*(F1-1))/float((D**(4)*RCS)))\n\n#result\n\nprint'Peak Transmitted Power is %e'%Pt;\nprint'Note: Calculation error in textbook at Pt 10^12 missing';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Peak Transmitted Power is 1.098173e+12\nNote: Calculation error in textbook at Pt 10^12 missing\n"
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter4.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter4.ipynb
new file mode 100755
index 00000000..d984cb2f
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter4.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "raju Chapter4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 4: TRACKING RADAR"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1, Page No 129"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "\nimport math;\n\n# Variable Declaration\n\n# d = lamda/2\ntheta_d = 5 # angle blw los and perpendicular bisector of line joining two antennas\n\n# Calculations\n\n#PD = (2*%pi/lamda)*(d*sin(theta));\n#PD = (2*%pi/lamda)*(lamda/2*sin(theta));\ntheta_r = theta_d*(math.pi/180)\nPD_r = (2*math.pi)*((math.sin(theta_r))/2); # phase difference in radians\nPD_d = PD_r*(180/math.pi); # phase difference in radians\n\n\n# Result\nprint 'Phase difference b/w two echo signals is %0.2f'%(PD_d),'degrees',\" OR %0.2f \" %PD_r,'radians';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Phase difference b/w two echo signals is 15.69 degrees OR 0.27 radians\n"
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2, Page No 130"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "# import math\n\n# Variable Declaration\nF = 1*10**9; # operating frequency of monopulse radar in Hz\nVo = float(3*10**8); # velocity of EM wave in m/s\ntheta_d = 10 # angle blw los and perpendicular bisector of line joining two antennas\nPD_d = 20; # phase difference in degrees\n\n# Calculations\nlamda = Vo/F # wavelength in m\n# PD = (2*%pi/lamda)*(d*sin(theta));\ntheta_r = theta_d*(math.pi/180) # degree to radian conversion\nPD_r = PD_d*(math.pi/180) # degree to radian conversion\nd = (PD_r*lamda)/(2*math.pi*math.sin(theta_r));\n\n# Output\nprint 'Spacing between the antennas is %0.2f'%(d*100),'Cms';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Spacing between the antennas is 9.60 Cms\n"
+ }
+ ],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter5.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter5.ipynb
new file mode 100755
index 00000000..c0d325ff
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter5.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "raju Chapter 5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 5: FACTORS AFFECTING RADAR OPERATION AND RADAR LOSSES"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1,Page No:162"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nprint'mathematically ellipsoid is represented by \\n((x/a)**2)+((y/b)**2)+((z/c)**2) = 1\\n ';\nprint'\\nThe approximate expression for ellipsoid backscattered RCS is given by\\n ';\nprint'\\n\u03c3 =(\u03c0*a**2 b**2 c**2)/[ a**2 (sin\u03b8)**2 (cos\u0278)**+ b**2 (sin\u03b8)**2 (sin\u0278)^2+c**2 (cos\u03b8)**2 ]**2\\n';\nprint'\\nif a = b ,the ellipsoid becomes Roll symmetric,above eqn becomes\\n';\nprint'\\n\u03c3 = (\u03c0* b**4 c**2)/[ a**2 (sin\u03b8)**2 + c**2 (cos\u03b8)**2 ]**2\\n';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "mathematically ellipsoid is represented by \n((x/a)**2)+((y/b)**2)+((z/c)**2) = 1\n \n\nThe approximate expression for ellipsoid backscattered RCS is given by\n \n\n\u03c3 =(\u03c0*a**2 b**2 c**2)/[ a**2 (sin\u03b8)**2 (cos\u0278)**+ b**2 (sin\u03b8)**2 (sin\u0278)^2+c**2 (cos\u03b8)**2 ]**2\n\n\nif a = b ,the ellipsoid becomes Roll symmetric,above eqn becomes\n\n\n\u03c3 = (\u03c0* b**4 c**2)/[ a**2 (sin\u03b8)**2 + c**2 (cos\u03b8)**2 ]**2\n\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2,Page No:162"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nprint'mathematically ellipsoid is represented by \\n((x/a)**2)+((y/b)**2)+((z/c)**2) = 1\\n ';\nprint'\\nThe approximate expression for ellipsoid backscattered RCS is given by\\n ';\nprint'\\n\u03c3 =(\u03c0*a**2 b**2 c**2)/[ a**2 (sin\u03b8)**2 (cos\u0278)**2+ b**2 (sin\u03b8)**2 (sin\u0278)**+c**2 (cos\u03b8)**2 ]**2\\n';\nprint'\\nif a = b = c ,the ellipsoid becomes a sphere,above eqn becomes\\n';\nprint'\\n\u03c3 = (\u03c0* a**6)/[ a**2 (sin\u03b8)**2 + a**2 (cos\u03b8)**2 ]**2\\n';\nprint'\\n\u03c3 = (\u03c0* a**6)/[ a**4]\\n';\nprint'\\n\u03c3 of sphere is \u03c0*a**2 ' ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "mathematically ellipsoid is represented by \n((x/a)**2)+((y/b)**2)+((z/c)**2) = 1\n \n\nThe approximate expression for ellipsoid backscattered RCS is given by\n \n\n\u03c3 =(\u03c0*a**2 b**2 c**2)/[ a**2 (sin\u03b8)**2 (cos\u0278)**2+ b**2 (sin\u03b8)**2 (sin\u0278)**+c**2 (cos\u03b8)**2 ]**2\n\n\nif a = b = c ,the ellipsoid becomes a sphere,above eqn becomes\n\n\n\u03c3 = (\u03c0* a**6)/[ a**2 (sin\u03b8)**2 + a**2 (cos\u03b8)**2 ]**2\n\n\n\u03c3 = (\u03c0* a**6)/[ a**4]\n\n\n\u03c3 of sphere is \u03c0*a**2 \n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3,Page No:163"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nprint'As it has Circular symmetry ,RCS of circular flat plate is independent \\n of \u0278 ,RCS depends on aspect angle.\\n';\nprint'\\nFor normal incidence \u03b8 = 0,then\\n';\nprint'\\n\u03c3 = (4*\u03c0**3*r**4)/(\u03bb**2)\\n';\nprint'\\nif r = 1 m then\\n';\nprint'\u03c3 = (4*\u03c0**3)/(\u03bb**2)' ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "As it has Circular symmetry ,RCS of circular flat plate is independent \n of \u0278 ,RCS depends on aspect angle.\n\n\nFor normal incidence \u03b8 = 0,then\n\n\n\u03c3 = (4*\u03c0**3*r**4)/(\u03bb**2)\n\n\nif r = 1 m then\n\n\u03c3 = (4*\u03c0**3)/(\u03bb**2)\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4, Page No:163"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n# Variable Declaration\n\nlamda = 0.03; # wavelength in m\nPt = 250*10**3; # transmitter power\nG = 2000; # antenna gain\nR = 50*10**3; # maximum range\nPr = 10*10**-12; # minimum detectable power\n\n# Calculations\nAe = (lamda*lamda*G)/(4*math.pi); # effective aperture area\nRCS = (Pr*(4*math.pi*R*R)**2)/(Pt*G*Ae); # Radar cross section of the target\n\n# Output\nprint 'Radar cross section of the target is %3.2f'%RCS,'m^2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Radar cross section of the target is 137.81 m^2\n"
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter6.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter6.ipynb
new file mode 100755
index 00000000..57e90ccd
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter6.ipynb
@@ -0,0 +1,238 @@
+{
+ "metadata": {
+ "name": "raju chapter 6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 6: Radar Transmitters"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 1,Page No:231"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nF = 9*10**9; #Reflex Klystron operating frequency in hz\nVa = 300; #beam voltage in volts\nI = 20; #Beam current in mA\nn = 1; # for 7/4 mode\n\n#Calculations\n#transit time for reflector space = n+3/4\n\nI1 = I*10**-3; #beam current in mA\nPrfmax =(0.3986*I1*Va)/float(n+3/float(4)); #maximum RF power\n\n#result\n\nprint'Maximum R-F power is %3.3f'%(Prfmax),'Watts';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Maximum R-F power is 1.367 Watts\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 2,Page No:231"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVdc = 2.5*10**3; #Beam voltage\nIdc = 25*10**-3; #beam current in A;\nZo = 10; #charecteristic impedance \nF = 9.5*10**9; #TWT operating frequency in hz\nN = 40; #circuit\n\n#Calculations\n\nC = ((Idc*Zo)/float((4*Vdc)))**(1/float(3)); #gain parameter\nAp = (-9.54)+(47.3*N*C); #Output power gain of twt\nw = 2*math.pi*F;\nvdc = 0.593*10**6*math.sqrt(Vdc);\nBe = w/float(vdc);\n\n#result\n\nprint'Gain parameter is %3.3g'%C;\nprint'Output Power gain is %3.3f'%Ap,' dB';\nprint'phase constant of electron beam is %e'%Be,' rad/m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain parameter is 0.0292\nOutput Power gain is 45.782 dB\nphase constant of electron beam is 2.013162e+03 rad/m\n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 3,Page No:232"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\ne = 1.609*10**-19; #charge of electron\nme = 9.109*10**-31; #mass of electron in kg\nB = 0.40; #magnetic flux density\nb = 10*10**-2; #Radius of vane edge from the centre\na = 4*10**-2; #radius of cathode\n\n\n#Calculations\n\nWc = (e/me)*B; #cyclotron angular frequency in radians\nVc = (e/(8*me))*(B**2)*(b**2)*(1-(a/float(b))**2)**2; #cut-off voltage\n\n#result\nprint'Cyclotron Angular Frequency is %g'%Wc,'rad';\nprint'Cut-off voltage is %g'%Vc,'V';\nprint'Note:Cut-off voltage obtained in textbook is wrongly calculated.Instead of (a/b)**2 ,(a/b) is calculated';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Cyclotron Angular Frequency is 7.06554e+10 rad\nCut-off voltage is 2.49272e+07 V\nNote:Cut-off voltage obtained in textbook is wrongly calculated.Instead of (a/b)**2 ,(a/b) is calculated\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 4,Page No:232"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVa = 900 ; #Accelarating voltage in volts\nF = 3.2*10**9; #operating frequency\nd = 10**-3;\n\n#Calculations\n\nVe = (0.593*10**6)*math.sqrt(Va); #electron velocity\nw = 2*math.pi*F;\ntheta = w*(d/float(Ve)); #transit angle in radians\nBe = math.sin(theta/float(2))/(theta/float(2)); #Beam Coupling Co-efficient\n\n\n#result\n\nprint'Electron Velocity is %3.3e'%Ve,'m/s';\nprint'Transit Angle is %g'%theta,'rad';\nprint'Beam Coupling Co-efficient is %3.3f '%Be; ",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Electron Velocity is 1.779e+07 m/s\nTransit Angle is 1.1302 rad\nBeam Coupling Co-efficient is 0.948 \n"
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 5,Page No:233"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nI2 = 28*10**-3 ; #induced current in amperes\nV2 = 850; #fundamental component of catcher-gap voltage\nVb = 900; #beam voltage\nIb = 26*10**-3; #beam current\nBc = 0.946; #beam coupling coefficient of catcher gap\n\n#Calculations\n\nn = ((Bc*I2*V2)/(2*Ib*Vb))*100; #efficiency of klystron\n\n\n#result\nprint'Efficiency of the klystron is %g'%n;\nprint'Note:In textbook Bc value is taken as 0.946 in calculation';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Efficiency of the klystron is 48.1085\nNote:In textbook Bc value is taken as 0.946 in calculation\n"
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 6,Page No:233"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVd = 2.2*10**5; #carrier Drift Velocity in m/s\nl = 5*10**-6; #drift region length\n\n#Calculations\n\nF = Vd/float((2*l)); #frequency of IMPATT Diode\n\n#result\nprint'Frequency of IMPATT Diode is %g'%(F/10**9),' Ghz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Frequency of IMPATT Diode is 22 Ghz\n"
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7,Page No:233"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nVd = 3*10**5; #Carrier Drift Velocity in m/s\nl = 7*10**-6; #drift region length\n\n#Calculations\n\nF = Vd/float(2*l); #frequency of IMPATT Diode\n\n#result\nprint'Frequency of IMPATT Diode is %3.2f'%(F/float(10**9)),' Ghz';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Frequency of IMPATT Diode is 21.43 Ghz\n"
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 8,Page No:233"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nNa = 1.8*10**15; #Doping Concentration \nJ = 25*10**3; #current density in A/cm^2\nq = 1.6*10**-19; #charge of electron\n\n#Calculations\n\nVaz = J/float(q*Na); #Avalanche Zone Velocity\n\n#result\nprint'Avalanche Zone Velocity of TRAPATT is %g'%(Vaz);\nprint'Note: wrong calculation done in Textbook';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Avalanche Zone Velocity of TRAPATT is 8.68056e+07\nNote: wrong calculation done in Textbook\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9,Page No:234"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nl = 12*10**-3; #gunn diode oscillator length in m\nVd = 2*10**8; #Drift velocity in gunn diode\n\n#Calculations\n\nF = Vd/float(l); #Frequency of Gunn Diode Oscillator\n\n#result\nprint'Frequency of Gunn Diode Oscillator is %3.3g'%(F/10**9),' Ghz';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Frequency of Gunn Diode Oscillator is 16.7 Ghz\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 10,Page No:234"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nl = 2.5*10**-6; #Drift length of gunn diode in m\nVd = 2*10**8; #Drift velocity in gun diode\nVgmin = 3.3*10**3; #minimum voltage gradient required to start the diode\n\n#Calculations\n\nVmin = Vgmin*l;\n\n#result\nprint'Minimum Voltage required to operate gunn diode is %g'%(Vmin*10**3),' mV';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum Voltage required to operate gunn diode is 8.25 mV\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9.ipynb
new file mode 100755
index 00000000..807fa066
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9.ipynb
@@ -0,0 +1,553 @@
+{
+ "metadata": {
+ "name": "raju chapter 9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 9:Radar Antennas"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.1,Page No:352"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nDa = 2.5; #diameter of parabolic antenna in m\nF = 5*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nNNBW = 140*(lamda/float(Da));\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n#result\n\nprint'NNBW of parabolic reflector is %g'%(NNBW),' degrees';\nprint'HPBW of parabolic reflector is %g'%(HPBW),' degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 3.36 degrees\nHPBW of parabolic reflector is 1.68 degrees\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.2,Page No:352"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nDa = 2.5; #diameter of parabolic antenna in m\nF = 5*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\n\nprint'Gain of parabolic reflector is %3.2f'%G,' dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 40.46 dB\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.3,Page No:352"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nDa = 0.15; #diameter of parabolic antenna in m\nF = 9*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\nNNBW = 140*(lamda/float(Da));\nHPBW = 70*(lamda/float(Da)); #half power bandwidth in deg\n\n#result\nprint'NNBW of parabolic reflector is %3.2f'%(NNBW),' degrees';\nprint'HPBW of parabolic reflector is %3.2f'%(HPBW),' degrees';\nprint'Gain of parabolic reflector is %3.2f'%G,;'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 31.11 degrees\nHPBW of parabolic reflector is 15.56 degrees\nGain of parabolic reflector is 21.13\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.4,Page No:353"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nDa = 2; #diameter of parabolic antenna in m\nF = 2*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\nprint'Gain of parabolic reflector is %3.2f'%G,' dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 30.56 dB\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.5,Page No:353"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 6*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 5; #Null to Null beamwidth\n\n#Calculations\nlamda = Vo/float(F); #wavelength\n\nDa = 140*(lamda/float(NNBW));\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\nGp = 6.4*(Da/float(lamda))**2; #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\nprint'Mouth Diameter of paraboloid is %g'%Da,' m';\nprint'HPBW of parabolic reflector is %g'%(HPBW),' degrees';\n\nprint'Gain of parabolic reflector is %g'%G,' dB';\nprint'Gain of parabolic reflector is %g'%Gp;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Mouth Diameter of paraboloid is 1.4 m\nHPBW of parabolic reflector is 2.5 degrees\nGain of parabolic reflector is 37.005 dB\nGain of parabolic reflector is 5017.6\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.6,Page No:354"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 9*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 5; #Null to Null beamwidth\nDa = 5; #diameter of antenna in m\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nA = (math.pi*Da*Da)/float(4); #actural area of antenna\nAc = 0.65*A; #Capture Area\n\nD = 6.4*(Da/float(lamda))**2; #directivity of antenna\nD1 = 10*math.log10(D); #gain in dB\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\nNNBW = 2*HPBW; #null to null beamwidth \n\n#result\nprint'HPBW of parabolic reflector is %2.2g'%(HPBW),' degrees';\nprint'NNBW of parabolic reflector is %2.2g'%(NNBW),' degrees';\nprint'Directivity is %g'%D1,' dB';\nprint'Capture area is %g'%Ac,' m^2';\n\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "HPBW of parabolic reflector is 0.47 degrees\nNNBW of parabolic reflector is 0.93 degrees\nDirectivity is 51.5836 dB\nCapture area is 12.7627 m^2\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.7,Page No:354"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nDa = 5; #diameter of parabolic antenna in m\nF = 5*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nR = (2*Da*Da)/float(lamda); #min distance b/w antennas\n\n#result\nprint'Minimum distance Required is %g'%R,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum distance Required is 833.333 m\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.8,Page No:354"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 4*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nGp = 500; #power gain of antenna\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nDa = lamda*(Gp/float(6.4))**(0.5); #diameter of parabolic antenna in m\n\nNNBW = 140*(lamda/float(Da)); #beamwidth b/w null to null\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n#result\nprint'NNBW of parabolic reflector is %3.2f'%NNBW,' degrees';\nprint'HPBW of parabolic reflector is %3.2f'%HPBW,'degrees';\nprint'Mouth diameter of parabolic reflector is %3.2f '%Da,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 15.84 degrees\nHPBW of parabolic reflector is 7.92 degrees\nMouth diameter of parabolic reflector is 0.66 m\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.9,Page No:355"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 9*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nGp = 100; #power gain of antenna in dB\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\n#antilog calculation\n#100 = 10log10(Gp);\n#10 = log(Gp)\n\nG = 10**10; #gain of antenna\nDa = lamda*math.sqrt(G/float(6.4)); #diameter of parabolic antenna in m\nA = (math.pi*Da*Da)/float(4); #Area of antenna\nAc = 0.65*A; #capture area\nNNBW = 140*(lamda/float(Da)); #beamwidth b/w null to null\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n#result\nprint'NNBW of parabolic reflector is %g'%NNBW,' degrees';\nprint'HPBW of parabolic reflector is %g'%HPBW,' degrees';\n\nprint'Mouth diameter of parabolic reflector is %3.3f'%Da,' m';\nprint'Capture area is %3.2f'%Ac,'m**2';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 0.00354175 degrees\nHPBW of parabolic reflector is 0.00177088 degrees\nMouth diameter of parabolic reflector is 1317.616 m\nCapture area is 886300.01 m**2\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.10,Page No:356"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 10*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nDa = 5; #antenna diameter in m\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\nBWFN = 140*(lamda/float(Da)); #beam width b/n nulls\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n\n#result\nprint'BWFN of parabolic reflector is %g'%BWFN,' degrees';\nprint'HPBW of parabolic reflector is %g'%HPBW,' degrees';\n\nprint'Gain of parabolic reflector is %g'%G,'dB';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "BWFN of parabolic reflector is 0.84 degrees\nHPBW of parabolic reflector is 0.42 degrees\nGain of parabolic reflector is 52.4988 dB\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.11,Page No:356"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 10*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nIE =0.6; #illumination efficiency\nDa =12; #diameter of antenna\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nGp = IE*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\nprint' Gain of parabolic reflector is %3.2f'%G,'dB';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Gain of parabolic reflector is 49.82 dB\n"
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.12,Page No:357"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 4*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 8; #Null to Null beamwidth in degrees \n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nDa = (140*lamda)/float(NNBW);\nA = (math.pi*Da*Da)/float(4); #Area of antenna\nAc = 0.65*A; #capture area\n\n#result\nprint'Mouth diameter of parabolic reflector is %3.3f'%Da,' m'; \nprint'Capture area is %3.2f'%Ac,' m**2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Mouth diameter of parabolic reflector is 1.312 m\nCapture area is 0.88 m**2\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.13,Page No:357"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 4*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 2; #Null to Null Beamwidth in degrees\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nDa = (140*lamda)/float(2); #diameter of antenna in m\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n\n#result\nprint'Gain of parabolic reflector is %g'%G,'dB';\nprint'mouth diameter of the antenna is %g'%Da,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 44.9638 dB\nmouth diameter of the antenna is 5.25 m\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.14,Page No:358"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nHPBW = 6; #Half power Beamwidth in degrees\n\n#Calculations\n\nNNBW = 2*HPBW; #Null to Null beamwidth in degrees\n\n#HPBW = 70*(lamda/Da);\n#(70/HPBW)= (Da/lamda);\n\nGp = 6.4*(70/float(HPBW))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n\n#result\nprint'Gain of parabolic reflector is %3.2f'%G,'dB';\nprint'NNBW of the antenna is %g'%NNBW,'degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 29.40 dB\nNNBW of the antenna is 12 degrees\n"
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.15,Page No:358"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nGp =6.4*(6)**2;\nG = 10*math.log10(Gp); #gain in dB\n\n\n#result\n\nprint'Gain of parabolic reflector is %3.2f'%G,'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 23.62 dB\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.16,Page No:358"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nHPBW = 70/float(7); #half power beamwidth\nNNBW = 2*HPBW; # null to null beamwidth\n#Gp = 6.4*(Da/float(lamda))**2; #power gain \n\n#Gp = 6.4*((7*lamda)/lamda)^2 ; power gain of parabolic reflector\n\nGp =6.4*(7)**2;\nG = 10*math.log10(Gp); #gain in dB\n\n\n#reault\nprint'Gain of parabolic reflector is %3.1f'%Gp; \nprint'HPBW of Antenna is %3.1f'%HPBW,' degrees';\nprint'NNBW of Antenna is %3.1f'%NNBW,' degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 313.6\nHPBW of Antenna is 10.0 degrees\nNNBW of Antenna is 20.0 degrees\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.17,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 8*10**9; #radar operating frequency in hz\nVo = 3*10**10; #velocity of EM wave in cm/s\nD = 9; #pyramida horn diameter in cm\nW = 4; #pyramida horn width in cm\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in cm\nHPBW_E = 56*(lamda/float(D)); #halfpower beamwidth in E-plane;\nHPBW_H = 67*(lamda/float(W)); #halfpower beamwidth in H-plane;\nGp = (4.5*W*D)/float((lamda*lamda)); #power gain\nG = 10*math.log10(Gp); #power gain in dB\nDi =(7.5*W*D)/float(lamda*lamda); #directivity\n\n\n#result\nprint'Halfpower beamwidth ib E-plane is %3.2f'%HPBW_E,' degrees';\nprint'Halfpower beamwidth iN H-plane is %3.2f'%HPBW_H,' de0grees';\nprint'Powergain is %3.2f'%G,' dB';\nprint'Directivity is %3.2f'%Di;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Halfpower beamwidth ib E-plane is 23.33 degrees\nHalfpower beamwidth iN H-plane is 62.81 de0grees\nPowergain is 10.61 dB\nDirectivity is 19.20\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.18,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declartaion\nGp = (4.5*10*10); #power gain of square horn antenna\nG = 10*math.log10(Gp); #power gain in dB\n\n#result\nprint'Power Gain of Square Horn Antenna is %3.2f'%G,'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Power Gain of Square Horn Antenna is 26.53 dB\n"
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.19,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 8*10**9; #radar operating frequency in hz\nVo = 3*10**10; #velocity of EM wave in cm/s\nD = 10; #pyramida horn diameter in cm\nW = 5; #pyramida horn width in cm\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in cm\nGp = (4.5*W*D)/float((lamda*lamda)); #power gain\nG = 10*math.log10(Gp); # power gain in dB\nDi =(7.5*W*D)/float((lamda*lamda)); #directivity\nDI =10*math.log10(Di); #Directivity in dB\n\n\n#result\nprint'Powergain is %3.2f '%G,'dB';\nprint'Directivity is %3.2f'%DI,'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Powergain is 12.04 dB\nDirectivity is 14.26 dB\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.20,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nno = 377; #Free space intrinsic impedance in ohms\nZd1 = complex(73,50); #dipole impedance;\nZd2 = 70; #dipole impedance;\nZd3 = 800; #dipole impedance;\nZd4 = 400; #dipole impedance;\nZd5 = complex(50,10); #dipole impedance;\nZd6 = complex(50,-30); #dipole impedance;\nZd7 = 350; #dipole impedance;\n\n#Calculations\nK = (no**2)/float(4);\n#Zs = (no*no)/(4*Zd); slot impedance\nZs1 = K/Zd1; #slot impedance\nZs2 = K/(Zd2); #slot impedance\nZs3 = K/(Zd3); #slot impedance\nZs4 = K/(Zd4); #slot impedance\nZs5 = K/(Zd5); #slot impedance\nZs6 = K/(Zd6); #slot impedance\nZs7 = K/(Zd7); #slot impedance\n\n#result\n\nprint'slot impedance if Zd = 73+i50 ohm is %3.3f'%(Zs1.real),'%3.3f i' %(Zs1.imag) ,'ohm';\nprint'slot impedance if Zd = 70 ohm is %3.3f'%(Zs2.real),'ohm';\nprint'slot impedance if Zd = 800 ohm is %3.3f'%(Zs3.real),'ohm';\nprint'slot impedance if Zd = 400 ohm is %3.3f'%(Zs4.real),'ohm';\nprint'slot impedance if Zd = 50+i10 ohm is %3.3f'%(Zs5.real),'%3.3f i' %(Zs5.imag) ,'ohm';\nprint'slot impedance if Zd = 50-i30 ohm is %3.3f'%(Zs6.real),'%3.3f i' %(Zs6.imag) ,'ohm';\nprint'slot impedance if Zd = 350 ohm is %3.3f'%(Zs7.real),'ohm';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "slot impedance if Zd = 73+i50 ohm is 331.314 -226.927 i ohm\nslot impedance if Zd = 70 ohm is 507.604 ohm\nslot impedance if Zd = 800 ohm is 44.415 ohm\nslot impedance if Zd = 400 ohm is 88.831 ohm\nslot impedance if Zd = 50+i10 ohm is 683.312 -136.663 i ohm\nslot impedance if Zd = 50-i30 ohm is 522.533 313.520 i ohm\nslot impedance if Zd = 350 ohm is 101.521 ohm\n"
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.21,Page No:360"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nRr1 =80*(math.pi*math.pi)*(1/float(20))**(2) ;\n#Rr2 = 80*(pi*pi)*(dl2/lamda)^2 Radiation Resistance in ohms\n#Rr2 = 80*(pi*pi)*((lamda/30)/lamda)^2 Radiation Resistance in ohms\nRr2 =80*(math.pi*math.pi)*(1/float(30))**2 ;\n#Rr3 = 80*(pi*pi)*(dl3/lamda)^2 Radiation Resistance in ohms\n#Rr3 = 80*(pi*pi)*((lamda/40)/lamda)^2 Radiation Resistance in ohms\nRr3 =80*(math.pi*math.pi)*(1/float(40))**(2 );\n\n\n#result\nprint'If Hertzian dipole length is lamda/20 then Radiation Resistance = %3.3f' %Rr1,'ohm';\nprint'If Hertzian dipole length is lamda/30 then Radiation Resistance = %3.3f' %Rr2,' ohm';\nprint'If Hertzian dipole length is lamda/40 then Radiation Resistance = %3.3f' %Rr3,' ohm' ;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "If Hertzian dipole length is lamda/20 then Radiation Resistance = 1.974 ohm\nIf Hertzian dipole length is lamda/30 then Radiation Resistance = 0.877 ohm\nIf Hertzian dipole length is lamda/40 then Radiation Resistance = 0.493 ohm\n"
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.22,Page No:361"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nprint'For half wave dipole Emax = 60*I/float(r)';\nprint'But Pr = 73 I**2 Watts';\nprint'For Pr = 1 W';\nprint'I = 1/sqrt(73)';\nprint'Emax = (60/r)*I';\nprint'Gdmax = (4*pi*phi)/Pr';\nprint'as Pr =1 and phi = ((r**(2))*(E**(2)))/no';\nprint'Gdmax = 4*pi*(r**2)*(E**2)/no';\nprint' = (4*pi*(r**2)*60*60)/(no*r*r*73)' ;\nprint' = (4*pi*60*60)/(120*math.pi*73)';\nGdmax = float(120)/73;\n\nprint'Directivity of half wave dipole is %3.3g' %Gdmax ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "For half wave dipole Emax = 60*I/float(r)\nBut Pr = 73 I**2 Watts\nFor Pr = 1 W\nI = 1/sqrt(73)\nEmax = (60/r)*I\nGdmax = (4*pi*phi)/Pr\nas Pr =1 and phi = ((r**(2))*(E**(2)))/no\nGdmax = 4*pi*(r**2)*(E**2)/no\n = (4*pi*(r**2)*60*60)/(no*r*r*73)\n = (4*pi*60*60)/(120*math.pi*73)\nDirectivity of half wave dipole is 1.64\n"
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.23,Page No:361"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 12*10**9; #operating frequency in Ghz\nI = 2; #current in amperes\nRr = 300; # radiation resistance in ohms\n\n#Calculations\nPr = I*I*Rr;\n\n#result\nprint'Radiated Power is %3.1f'%Pr,' Watts';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Radiated Power is 1200.0 Watts\n"
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.24,Page No:362"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 600*10**6; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nD = 1.644; #Directivity of the half wave dipole\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nAe = ((lamda**2)*D)/(float(4*math.pi)); #effective area of antenna\n\n#result\n\nprint'Effective Area of the antenna is %3.4f'%Ae,' m^2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Effective Area of the antenna is 0.0327 m^2\n"
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.25,Page No:362"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 200*10**6; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nD = 1.5; #Directivity of the Hertzian dipole\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nAe = (lamda**2*D)/(4*math.pi); #effective area of antenna\n\n#result\nprint'Effective Area of the antenna is %3.4f'%Ae,'m^2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Effective Area of the antenna is 0.2686 m^2\n"
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9_1.ipynb b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9_1.ipynb
new file mode 100755
index 00000000..807fa066
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/chapter9_1.ipynb
@@ -0,0 +1,553 @@
+{
+ "metadata": {
+ "name": "raju chapter 9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": "Chapter 9:Radar Antennas"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.1,Page No:352"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nDa = 2.5; #diameter of parabolic antenna in m\nF = 5*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nNNBW = 140*(lamda/float(Da));\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n#result\n\nprint'NNBW of parabolic reflector is %g'%(NNBW),' degrees';\nprint'HPBW of parabolic reflector is %g'%(HPBW),' degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 3.36 degrees\nHPBW of parabolic reflector is 1.68 degrees\n"
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.2,Page No:352"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nDa = 2.5; #diameter of parabolic antenna in m\nF = 5*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\n\nprint'Gain of parabolic reflector is %3.2f'%G,' dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 40.46 dB\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.3,Page No:352"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nDa = 0.15; #diameter of parabolic antenna in m\nF = 9*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\nNNBW = 140*(lamda/float(Da));\nHPBW = 70*(lamda/float(Da)); #half power bandwidth in deg\n\n#result\nprint'NNBW of parabolic reflector is %3.2f'%(NNBW),' degrees';\nprint'HPBW of parabolic reflector is %3.2f'%(HPBW),' degrees';\nprint'Gain of parabolic reflector is %3.2f'%G,;'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 31.11 degrees\nHPBW of parabolic reflector is 15.56 degrees\nGain of parabolic reflector is 21.13\n"
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.4,Page No:353"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nDa = 2; #diameter of parabolic antenna in m\nF = 2*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\nprint'Gain of parabolic reflector is %3.2f'%G,' dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 30.56 dB\n"
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 7.5,Page No:353"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 6*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 5; #Null to Null beamwidth\n\n#Calculations\nlamda = Vo/float(F); #wavelength\n\nDa = 140*(lamda/float(NNBW));\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\nGp = 6.4*(Da/float(lamda))**2; #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\nprint'Mouth Diameter of paraboloid is %g'%Da,' m';\nprint'HPBW of parabolic reflector is %g'%(HPBW),' degrees';\n\nprint'Gain of parabolic reflector is %g'%G,' dB';\nprint'Gain of parabolic reflector is %g'%Gp;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Mouth Diameter of paraboloid is 1.4 m\nHPBW of parabolic reflector is 2.5 degrees\nGain of parabolic reflector is 37.005 dB\nGain of parabolic reflector is 5017.6\n"
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.6,Page No:354"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 9*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 5; #Null to Null beamwidth\nDa = 5; #diameter of antenna in m\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nA = (math.pi*Da*Da)/float(4); #actural area of antenna\nAc = 0.65*A; #Capture Area\n\nD = 6.4*(Da/float(lamda))**2; #directivity of antenna\nD1 = 10*math.log10(D); #gain in dB\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\nNNBW = 2*HPBW; #null to null beamwidth \n\n#result\nprint'HPBW of parabolic reflector is %2.2g'%(HPBW),' degrees';\nprint'NNBW of parabolic reflector is %2.2g'%(NNBW),' degrees';\nprint'Directivity is %g'%D1,' dB';\nprint'Capture area is %g'%Ac,' m^2';\n\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "HPBW of parabolic reflector is 0.47 degrees\nNNBW of parabolic reflector is 0.93 degrees\nDirectivity is 51.5836 dB\nCapture area is 12.7627 m^2\n"
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.7,Page No:354"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nDa = 5; #diameter of parabolic antenna in m\nF = 5*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nR = (2*Da*Da)/float(lamda); #min distance b/w antennas\n\n#result\nprint'Minimum distance Required is %g'%R,' m';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Minimum distance Required is 833.333 m\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.8,Page No:354"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 4*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nGp = 500; #power gain of antenna\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nDa = lamda*(Gp/float(6.4))**(0.5); #diameter of parabolic antenna in m\n\nNNBW = 140*(lamda/float(Da)); #beamwidth b/w null to null\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n#result\nprint'NNBW of parabolic reflector is %3.2f'%NNBW,' degrees';\nprint'HPBW of parabolic reflector is %3.2f'%HPBW,'degrees';\nprint'Mouth diameter of parabolic reflector is %3.2f '%Da,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 15.84 degrees\nHPBW of parabolic reflector is 7.92 degrees\nMouth diameter of parabolic reflector is 0.66 m\n"
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.9,Page No:355"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 9*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nGp = 100; #power gain of antenna in dB\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\n#antilog calculation\n#100 = 10log10(Gp);\n#10 = log(Gp)\n\nG = 10**10; #gain of antenna\nDa = lamda*math.sqrt(G/float(6.4)); #diameter of parabolic antenna in m\nA = (math.pi*Da*Da)/float(4); #Area of antenna\nAc = 0.65*A; #capture area\nNNBW = 140*(lamda/float(Da)); #beamwidth b/w null to null\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n#result\nprint'NNBW of parabolic reflector is %g'%NNBW,' degrees';\nprint'HPBW of parabolic reflector is %g'%HPBW,' degrees';\n\nprint'Mouth diameter of parabolic reflector is %3.3f'%Da,' m';\nprint'Capture area is %3.2f'%Ac,'m**2';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "NNBW of parabolic reflector is 0.00354175 degrees\nHPBW of parabolic reflector is 0.00177088 degrees\nMouth diameter of parabolic reflector is 1317.616 m\nCapture area is 886300.01 m**2\n"
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.10,Page No:356"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 10*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nDa = 5; #antenna diameter in m\n\n#Calculations\nlamda = Vo/float(F); #wavelength\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\nBWFN = 140*(lamda/float(Da)); #beam width b/n nulls\nHPBW = 70*(lamda/float(Da)); #half power beamwidth in deg\n\n\n#result\nprint'BWFN of parabolic reflector is %g'%BWFN,' degrees';\nprint'HPBW of parabolic reflector is %g'%HPBW,' degrees';\n\nprint'Gain of parabolic reflector is %g'%G,'dB';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "BWFN of parabolic reflector is 0.84 degrees\nHPBW of parabolic reflector is 0.42 degrees\nGain of parabolic reflector is 52.4988 dB\n"
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.11,Page No:356"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 10*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nIE =0.6; #illumination efficiency\nDa =12; #diameter of antenna\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nGp = IE*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n#result\nprint' Gain of parabolic reflector is %3.2f'%G,'dB';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": " Gain of parabolic reflector is 49.82 dB\n"
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.12,Page No:357"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 4*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 8; #Null to Null beamwidth in degrees \n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nDa = (140*lamda)/float(NNBW);\nA = (math.pi*Da*Da)/float(4); #Area of antenna\nAc = 0.65*A; #capture area\n\n#result\nprint'Mouth diameter of parabolic reflector is %3.3f'%Da,' m'; \nprint'Capture area is %3.2f'%Ac,' m**2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Mouth diameter of parabolic reflector is 1.312 m\nCapture area is 0.88 m**2\n"
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.13,Page No:357"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 4*10**9; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nNNBW = 2; #Null to Null Beamwidth in degrees\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nDa = (140*lamda)/float(2); #diameter of antenna in m\nGp = 6.4*(Da/float(lamda))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n\n#result\nprint'Gain of parabolic reflector is %g'%G,'dB';\nprint'mouth diameter of the antenna is %g'%Da,'m';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 44.9638 dB\nmouth diameter of the antenna is 5.25 m\n"
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.14,Page No:358"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nHPBW = 6; #Half power Beamwidth in degrees\n\n#Calculations\n\nNNBW = 2*HPBW; #Null to Null beamwidth in degrees\n\n#HPBW = 70*(lamda/Da);\n#(70/HPBW)= (Da/lamda);\n\nGp = 6.4*(70/float(HPBW))**(2); #gain of parabolic reflector\nG = 10*math.log10(Gp); #gain in dB\n\n\n#result\nprint'Gain of parabolic reflector is %3.2f'%G,'dB';\nprint'NNBW of the antenna is %g'%NNBW,'degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 29.40 dB\nNNBW of the antenna is 12 degrees\n"
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.15,Page No:358"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nGp =6.4*(6)**2;\nG = 10*math.log10(Gp); #gain in dB\n\n\n#result\n\nprint'Gain of parabolic reflector is %3.2f'%G,'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 23.62 dB\n"
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.16,Page No:358"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nHPBW = 70/float(7); #half power beamwidth\nNNBW = 2*HPBW; # null to null beamwidth\n#Gp = 6.4*(Da/float(lamda))**2; #power gain \n\n#Gp = 6.4*((7*lamda)/lamda)^2 ; power gain of parabolic reflector\n\nGp =6.4*(7)**2;\nG = 10*math.log10(Gp); #gain in dB\n\n\n#reault\nprint'Gain of parabolic reflector is %3.1f'%Gp; \nprint'HPBW of Antenna is %3.1f'%HPBW,' degrees';\nprint'NNBW of Antenna is %3.1f'%NNBW,' degrees';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Gain of parabolic reflector is 313.6\nHPBW of Antenna is 10.0 degrees\nNNBW of Antenna is 20.0 degrees\n"
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.17,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 8*10**9; #radar operating frequency in hz\nVo = 3*10**10; #velocity of EM wave in cm/s\nD = 9; #pyramida horn diameter in cm\nW = 4; #pyramida horn width in cm\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in cm\nHPBW_E = 56*(lamda/float(D)); #halfpower beamwidth in E-plane;\nHPBW_H = 67*(lamda/float(W)); #halfpower beamwidth in H-plane;\nGp = (4.5*W*D)/float((lamda*lamda)); #power gain\nG = 10*math.log10(Gp); #power gain in dB\nDi =(7.5*W*D)/float(lamda*lamda); #directivity\n\n\n#result\nprint'Halfpower beamwidth ib E-plane is %3.2f'%HPBW_E,' degrees';\nprint'Halfpower beamwidth iN H-plane is %3.2f'%HPBW_H,' de0grees';\nprint'Powergain is %3.2f'%G,' dB';\nprint'Directivity is %3.2f'%Di;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Halfpower beamwidth ib E-plane is 23.33 degrees\nHalfpower beamwidth iN H-plane is 62.81 de0grees\nPowergain is 10.61 dB\nDirectivity is 19.20\n"
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.18,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declartaion\nGp = (4.5*10*10); #power gain of square horn antenna\nG = 10*math.log10(Gp); #power gain in dB\n\n#result\nprint'Power Gain of Square Horn Antenna is %3.2f'%G,'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Power Gain of Square Horn Antenna is 26.53 dB\n"
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.19,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 8*10**9; #radar operating frequency in hz\nVo = 3*10**10; #velocity of EM wave in cm/s\nD = 10; #pyramida horn diameter in cm\nW = 5; #pyramida horn width in cm\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength in cm\nGp = (4.5*W*D)/float((lamda*lamda)); #power gain\nG = 10*math.log10(Gp); # power gain in dB\nDi =(7.5*W*D)/float((lamda*lamda)); #directivity\nDI =10*math.log10(Di); #Directivity in dB\n\n\n#result\nprint'Powergain is %3.2f '%G,'dB';\nprint'Directivity is %3.2f'%DI,'dB';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Powergain is 12.04 dB\nDirectivity is 14.26 dB\n"
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.20,Page No:359"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nno = 377; #Free space intrinsic impedance in ohms\nZd1 = complex(73,50); #dipole impedance;\nZd2 = 70; #dipole impedance;\nZd3 = 800; #dipole impedance;\nZd4 = 400; #dipole impedance;\nZd5 = complex(50,10); #dipole impedance;\nZd6 = complex(50,-30); #dipole impedance;\nZd7 = 350; #dipole impedance;\n\n#Calculations\nK = (no**2)/float(4);\n#Zs = (no*no)/(4*Zd); slot impedance\nZs1 = K/Zd1; #slot impedance\nZs2 = K/(Zd2); #slot impedance\nZs3 = K/(Zd3); #slot impedance\nZs4 = K/(Zd4); #slot impedance\nZs5 = K/(Zd5); #slot impedance\nZs6 = K/(Zd6); #slot impedance\nZs7 = K/(Zd7); #slot impedance\n\n#result\n\nprint'slot impedance if Zd = 73+i50 ohm is %3.3f'%(Zs1.real),'%3.3f i' %(Zs1.imag) ,'ohm';\nprint'slot impedance if Zd = 70 ohm is %3.3f'%(Zs2.real),'ohm';\nprint'slot impedance if Zd = 800 ohm is %3.3f'%(Zs3.real),'ohm';\nprint'slot impedance if Zd = 400 ohm is %3.3f'%(Zs4.real),'ohm';\nprint'slot impedance if Zd = 50+i10 ohm is %3.3f'%(Zs5.real),'%3.3f i' %(Zs5.imag) ,'ohm';\nprint'slot impedance if Zd = 50-i30 ohm is %3.3f'%(Zs6.real),'%3.3f i' %(Zs6.imag) ,'ohm';\nprint'slot impedance if Zd = 350 ohm is %3.3f'%(Zs7.real),'ohm';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "slot impedance if Zd = 73+i50 ohm is 331.314 -226.927 i ohm\nslot impedance if Zd = 70 ohm is 507.604 ohm\nslot impedance if Zd = 800 ohm is 44.415 ohm\nslot impedance if Zd = 400 ohm is 88.831 ohm\nslot impedance if Zd = 50+i10 ohm is 683.312 -136.663 i ohm\nslot impedance if Zd = 50-i30 ohm is 522.533 313.520 i ohm\nslot impedance if Zd = 350 ohm is 101.521 ohm\n"
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.21,Page No:360"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nRr1 =80*(math.pi*math.pi)*(1/float(20))**(2) ;\n#Rr2 = 80*(pi*pi)*(dl2/lamda)^2 Radiation Resistance in ohms\n#Rr2 = 80*(pi*pi)*((lamda/30)/lamda)^2 Radiation Resistance in ohms\nRr2 =80*(math.pi*math.pi)*(1/float(30))**2 ;\n#Rr3 = 80*(pi*pi)*(dl3/lamda)^2 Radiation Resistance in ohms\n#Rr3 = 80*(pi*pi)*((lamda/40)/lamda)^2 Radiation Resistance in ohms\nRr3 =80*(math.pi*math.pi)*(1/float(40))**(2 );\n\n\n#result\nprint'If Hertzian dipole length is lamda/20 then Radiation Resistance = %3.3f' %Rr1,'ohm';\nprint'If Hertzian dipole length is lamda/30 then Radiation Resistance = %3.3f' %Rr2,' ohm';\nprint'If Hertzian dipole length is lamda/40 then Radiation Resistance = %3.3f' %Rr3,' ohm' ;\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "If Hertzian dipole length is lamda/20 then Radiation Resistance = 1.974 ohm\nIf Hertzian dipole length is lamda/30 then Radiation Resistance = 0.877 ohm\nIf Hertzian dipole length is lamda/40 then Radiation Resistance = 0.493 ohm\n"
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.22,Page No:361"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\nprint'For half wave dipole Emax = 60*I/float(r)';\nprint'But Pr = 73 I**2 Watts';\nprint'For Pr = 1 W';\nprint'I = 1/sqrt(73)';\nprint'Emax = (60/r)*I';\nprint'Gdmax = (4*pi*phi)/Pr';\nprint'as Pr =1 and phi = ((r**(2))*(E**(2)))/no';\nprint'Gdmax = 4*pi*(r**2)*(E**2)/no';\nprint' = (4*pi*(r**2)*60*60)/(no*r*r*73)' ;\nprint' = (4*pi*60*60)/(120*math.pi*73)';\nGdmax = float(120)/73;\n\nprint'Directivity of half wave dipole is %3.3g' %Gdmax ;",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "For half wave dipole Emax = 60*I/float(r)\nBut Pr = 73 I**2 Watts\nFor Pr = 1 W\nI = 1/sqrt(73)\nEmax = (60/r)*I\nGdmax = (4*pi*phi)/Pr\nas Pr =1 and phi = ((r**(2))*(E**(2)))/no\nGdmax = 4*pi*(r**2)*(E**2)/no\n = (4*pi*(r**2)*60*60)/(no*r*r*73)\n = (4*pi*60*60)/(120*math.pi*73)\nDirectivity of half wave dipole is 1.64\n"
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.23,Page No:361"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 12*10**9; #operating frequency in Ghz\nI = 2; #current in amperes\nRr = 300; # radiation resistance in ohms\n\n#Calculations\nPr = I*I*Rr;\n\n#result\nprint'Radiated Power is %3.1f'%Pr,' Watts';",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Radiated Power is 1200.0 Watts\n"
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.24,Page No:362"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 600*10**6; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nD = 1.644; #Directivity of the half wave dipole\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nAe = ((lamda**2)*D)/(float(4*math.pi)); #effective area of antenna\n\n#result\n\nprint'Effective Area of the antenna is %3.4f'%Ae,' m^2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Effective Area of the antenna is 0.0327 m^2\n"
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": "Example 9.25,Page No:362"
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "import math\n\n#variable declaration\n\nF = 200*10**6; #radar operating frequency in hz\nVo = 3*10**8; #velocity of EM wave in m/s\nD = 1.5; #Directivity of the Hertzian dipole\n\n#Calculations\n\nlamda = Vo/float(F); #wavelength\nAe = (lamda**2*D)/(4*math.pi); #effective area of antenna\n\n#result\nprint'Effective Area of the antenna is %3.4f'%Ae,'m^2';\n",
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": "Effective Area of the antenna is 0.2686 m^2\n"
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": "",
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/Bandwidth.png b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/Bandwidth.png
new file mode 100755
index 00000000..68b1a826
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/Bandwidth.png
Binary files differ
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/peakpower.png b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/peakpower.png
new file mode 100755
index 00000000..3f859834
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/peakpower.png
Binary files differ
diff --git a/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/power.png b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/power.png
new file mode 100755
index 00000000..41ec9882
--- /dev/null
+++ b/Radar_Engineering_and_Funamentals_of_Navigational_Aids/screenshots/power.png
Binary files differ
diff --git a/Satellite_Communications/Chapter_10.ipynb b/Satellite_Communications/Chapter_10.ipynb
index 6cfea3ed..6cac838d 100755
--- a/Satellite_Communications/Chapter_10.ipynb
+++ b/Satellite_Communications/Chapter_10.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
- "signature": "sha256:e0d184d1729c611848b690830ee717bb5bc71942466a1adef15c51a942411c9c"
+ "signature": "sha256:4511273484a972ccf0b24ae5024cbc7b477d6e76c179ec40d21b095c8ccf0c0e"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -161,26 +161,11 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['linalg', 'draw_if_interactive', 'random', 'power', 'info', 'fft']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\nY+azLY4fPx4aGBhY4ufnd37evHkFfMfMV1t899134xYuXJirVCrP+Pn5nX/zzTcf5TvmvtpWrFix\nZ8KECSZ/f/9zln0NDQ3u99xzz7GOOg7W29GjRyO9vb0r5HK5Ljk5Oam7c/H+YZ1hO3funL+/v/+5\nGzduDG9raxt6zz33HNPr9TLrMtnZ2YuioqJyGGPQarUqlUql5Ttuvtriiy++mN3c3DyWMe4/3GBu\nC8YY2trahs6fP//je++994ODBw/G8B03X23R1NTk5uvrW1ZdXS1hjPuS5jtuvtri5Zdf3vj8889v\ntbSDu7t7Q2trqwvfsffF9sknn8z98ssvg6wTVGJi4qspKSnPMcaQnJyclJSUlGxbr62tbahMJtMb\nDAap2WwWKpXKM+Xl5VO7OhdNdQSgoqLCR6VSFQ4fPvzm0KFDf5g3b96J999//wHrMh09s2UZ4j6Q\n9KQtZs+efXLs2LGXAa4trAehDCQ9aQsA+Otf/7p26dKlB8ePH/8dH3E6Qk/a4p133lkeExNzyDII\nady4cd/zE6199aQtPDw86q5cuTIGAK5cuTLmjjvuaHBxcWnjJ+K+NXfu3E9vv/32Jut9nT2faq0n\nz8baogQFwN/f//ynn346t7Gx0f369esjs7Oz77X90u3oma2B+MXck7awtnv37pWLFi3KcWSMjtLT\n/xeZmZlLLLOg2PuxB770pC10Op2isbHRff78+cdnzpx5et++fQ/zFa899aQtHn/88X+WlZX5TZo0\nqVapVJZu3759HV/xOkJnz6da6+y5166OS0u+A/Dx8alISkpKiYiIyLvtttuuBQUFlQwZMqTdthyz\neSZqIH4Z9bQtAOD48ePz9+zZ89jnn3/+K0fH6Qg9aYtnnnnm9eTk5OcFAgFjjAls/48MFD1pi9bW\nVuGXX345PT8/P+z69esjZ8+efTIkJESrUCh0fMVtDz1piy1btrwQGBh4pqCgIPTrr7+WhYeHHyst\nLVWOHj36Kl9xO0pnz6feyvcl9aB+9Nhjj+05ffr0zBMnTsxzc3Nr9vb2rrR+v6tnswaa7toCAM6e\nPRvw+OOP/zMrK0tt290fSLpri+Li4hlxcXEZU6ZMMRw6dCjmqaee+ltWVpaar3jtqbu28PT0rI6I\niMgbMWLEjTvuuKPh7rvv/qS0tFTJV7z21F1bfPHFF3OWLVv2HgDIZLKvp0yZYqisrPTmJ1r76+z5\nVGs9eTb2f/B9w81ZNpPJNIExhosXL0728fH56vLly2Os37ceJHHy5MmQgTowoCdtcfHixckymUx/\n8uTJEL5j5bstrLdHH330zYE8iq+7tvjqq698wsLCPmpraxt67dq1kf7+/ufKysp8+Y6bj7Z49tln\n/7Jx48aXGWOor68XicXimoaGBne+4+6rzWAwSG0HSVhG5W3duvX5jgZJtLa2utx1111fGwwGaUtL\ni2tPBknw/kGdZZs7d+4nvr6+ZUql8szHH388n7GeP7M10Lbu2mLlypX/cnd3bwgMDCwJDAwsmTVr\nVhHfMfP5/8KyDfQE1ZO2eO2119b7+vqW+fv7n9u+fXsC3zHz1RbffffduPvuu+9IQEBAqb+//7m3\n3357Od8x99UWFxe338PDo1YoFJolEkn1nj17VnT2fKrRaJy0aNGibEvdzp5v7WwTMDbgbqMQQggZ\nAOgeFCGEEKdECYoQQohTogRFCCHEKVGCIoQQ4pQoQRHSjz366KN7Dx06FAMAoaGhBT4+PhVBQUEl\nvr6+5f/85z8f5zs+QnqDZpIgpB+zfmpfIBCwd955Z/n06dO/bGpqul0mk329YsWKNwfKHHBk8KEe\nFCFO6tSpU7OUSmVpS0vLsGvXrt3m7+9//vz58/5PP/30Th8fn4rw8PBj33777QTrOuzHqZauXLky\nZtSoUf8ZOnToD/xET0jvUQ+KECc1a9asU2q1OuvFF1/8040bN0Y8/PDD+y5cuOB14cIFr6+++mpq\nfX39RF9f3/KVK1fuBrjk9OCDD749bNiwFp1Op9i+ffu6gThfJBk8KEER4sReeumlV2bOnHl65MiR\n13fs2JHwu9/97i/Lly9/RyAQMA8Pj7oFCxZ8bClrfYnv+++/HzdnzpwvFi5c+OHkyZMv8fkZCLlV\ndImPECf2/fffj7t27dptV69eHX3z5s3hllnTu6s3bty476dPn/5lYWGhyhFxEmIPlKAIcWKrVq36\nx5/+9KcXly9f/k5SUlLK3Xff/cmBAwdi29vbh9TV1XkcP358vnV5S/K6fv36yJKSkiC5XK7nJ3JC\neo8u8RHipNLT0x8ZNmxYS1xcXEZ7e/uQOXPmfHH//ff/W6FQ6Hx9fcsnT558ac6cOV9Y13nwwQff\nHjFixI2WlpZhK1aseDMoKKiEr/gJ6S2aLJYQQohTokt8hBBCnBIlKEIIIU6JEhQhhBCnRAmKEEKI\nU6IERQghxClRgiKEEOKU/j9XO1m8HYmiTgAAAABJRU5ErkJggg==\n",
"text": [
- "<matplotlib.figure.Figure at 0x3733c90>"
+ "<matplotlib.figure.Figure at 0x38eaa90>"
]
},
{
@@ -191,7 +176,7 @@
]
}
],
- "prompt_number": 1
+ "prompt_number": 2
}
],
"metadata": {}
diff --git a/Satellite_Communications/Chapter_6.ipynb b/Satellite_Communications/Chapter_6.ipynb
index 644cc1ae..db813f9b 100755
--- a/Satellite_Communications/Chapter_6.ipynb
+++ b/Satellite_Communications/Chapter_6.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
- "signature": "sha256:d4f3edf7b06c27dae9c3606668732bde107181b7fbb92b919da02c632b969fc0"
+ "signature": "sha256:d37ccbfd5f3c0bd5bc07cc06bbf51cbb242c58f6b867e2289a02a699857760db"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -79,38 +79,23 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['linalg', 'draw_if_interactive', 'random', 'power', 'info', 'fft']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\nzEWLuf4iAAAAAElFTkSuQmCC\n",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEMCAYAAAAmgtofAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8zNf6B/DPyMJFCEFEEoIkIkQyEYmtpI0JVYmtKFr8\n0IXS9lJVukjtS9W9lxvVW0oX+xpLSdCglgZZkFiChCSSSKwJZbJ8f3+cTpuGZCaZ73fO9zvzvF+v\neTWZmcw8TcY8c57znHNUgiCAEEKIZavBOwBCCCH8UTIghBBCyYAQQgglA0IIIaBkQAghBJQMCCGE\nQKbJYP/+/X28vLwueXh4pC5atGg673gIIcTcqeS2zqCkpMSqTZs2lw8ePNjL2dk5q1OnTqc3bNgw\nvG3bthd5x0YIIeZKdiODuLi4QHd396tubm7pNjY2Ra+99trGXbt29ecdFyGEmDNr3gGUl5WV5ezq\n6pqh+97FxSXzt99+C9J9r1Kp5DWUIYQQhRAEQVXRbbJLBoa82cuttCVXERERiIiI4B2G2SkuBnbv\nBv77X+DCBaBfP6BJE6BBA+DXXyMwZkwE6tUDrl4Fjh4F9u0DBgwAJk0COnbkHb35ode5YVSqCvMA\nABkmA2dn56yMjAxX3fcZGRmuLi4umTxjIkTn55+BCRMAZ2fg3XeBwYOBmjX/uv3RI2DgQPZ1SAjw\n9ttAfj6wejW7r5sb+7p1ay7hE1Ih2c0ZBAQEnElNTfVIT09302q1tps2bRoWHh4exTsuYtl+/x2Y\nPBl45x1gzRrg+HFgxIi/J4KKNGoETJ8OXLvGEkXnzsB33wE0wCVyIrtkYG1tXbxixYpJvXv3PuDt\n7Z0ybNiwTdRJVD3BwcG8QzALSUlAQACQlwckJgIvvVTxfSv7nVtZAe+/Dxw+DCxbBgwZAty9K368\nloZe5+KQXWupPiqVSlBazES5fv0VGDQI+PJL4I03AD1lV4M9eQJ89BFLDIcPszkHQqSkUqkqnUCm\nZEBIBY4fZ2Wdn34CNBppnmPWLGD7dpYQGjeW5jkIAfQnA9lNIBMiBydOsETw44/SJQIAiIgASkvZ\nZPOhQ5QQCD+UDAgp57ffWCvoDz8AoaHSPpdKBcyezSaTQ0KA2FigYUNpn5OQ56EyESFl3L4N+PsD\nkZFAeLjpnlcQgA8+AK5fB3btAmrIrrWDKJ2+MhG95Aj5Q0kJMHIkMHq0aRMBwEYIX34J3LnD/kuI\nqdHIgJA/zJ7NJnIPHgSsORVQMzKATp2ArVuB7t35xEDME3UTEWKAQ4dY6+iZM0CzZnxj2bePrVyO\nj6cJZSIeSgaE6JGbC6jVbMI4JIR3NMzMmcDZs8D+/eKtbSCWjZIBIXq88Qbg5AQsXsw7kr8UF7Nt\nK95/n8VHiLEoGRBSiaNHgddfB1JSgLp1eUfzd3FxQP/+wMWLgL0972iI0lE3ESEVKCpiO49+9ZX8\nEgEABAYCYWFslTIhUqORAbFYy5axLakPHJBvXT4/H/D2BmJiAF9f3tEQJaMyESHPcesW0KED23+o\nTRve0VTum2+A779nJS1ajEaqi8pEhDzHtGnAW2/JPxEAwLhxgFbLup0IkQqNDIjFSUwE+vYFUlOB\nOnV4R2OYU6eAoUNZzIYcqENIeTQyIKScuXOBDz9UTiIAWJuptzewbh3vSIi5opEBsSgXLgC9erEj\nKJWUDAC2rfbIkcCVK4CNDe9oiNLQyICQMubNA/75T+UlAgDo2hVo1YqdsUCI2GhkQCzGpUtAjx5s\nVGBnxzua6jlyBBg/ni1E47WZHlEmGhkQ8of584H33lNuIgCAnj3Z1hkbN/KOhJgbGhkQi3D1KpuE\nvXYNqF+fdzTGOXgQmDyZzX9YWfGOhigFjQwIAbBoEdt6QumJAGA7qzZoAGzfzjsSYk5oZEDM3v37\nQMuWwOXLQJMmvKMRx5Yt7GjOX37hHQlRChoZEIv3ww9A797mkwiAv3YzvXSJdyTEXFAyIGZNEICv\nvwbeeYd3JOKytQXGjgVWreIdCTEXlAyIWTt+nB1037Mn70jE9+abbNTz+++8IyHmgJIBMWtff83O\nE5brFtXGaNkS6NSJzR8QYiyaQCZmKz8fcHcHrl8HGjbkHY00du1ix3UeP847EiJ3ippAjoiIiHBx\ncclUq9UJarU6Yf/+/X14x0SUa906IDzcfBMBALzyCnDjBnD+PO9IiNLJamTwxRdfzLKzsyuYMmXK\nVxXdh0YGxBCCwM4qWLuW7eljziIi2ChoxQrekRA5U9TIAEClwRJiqNhYtu9/ly68I5He+PHA+vXA\no0e8IyFKJrutrpYvXz75+++/HxUQEHBm6dKlU+3t7e+Xv09ERMSfXwcHByM4ONiEERIl+OknYMwY\n85w4Ls/FBQgMBPbuZQfgEAIAsbGxiI2NNfj+Ji8TaTSamJycnKblr583b94nnTt3PtW4ceM8APjs\ns8/mZGdnO61evXpc2ftRmYjoU1TENnOLjweaN+cdjWmsWQPs2wds3co7EiJX+spEspozKCs9Pd0t\nLCxs9/nz533KXk/JgOizfz8wezY7DMZS3L3LWk2zsoC6dXlHQ+RIUXMG2dnZTrqvd+zYMdDHx4d6\nJEiVbd5seeWShg2Bbt2APXt4R0KUSlYjg1GjRn2fmJjop1KphJYtW6atWrXqbUdHx9yy96GRAamM\nVstKRElJrJZuSdauBaKiaDdT8nyKLRNVhJIBqczPP7MD7y1xEda9e4CbG5CZqewDfIg0FFUmIsRY\nllgi0mnQAOjenUpFpHooGRCzodWy7RlefZV3JPwMHcoSIiFVRcmAmI2YGKBdO8DZmXck/PTvDxw+\nDDx8yDsSojSUDIjZsOQSkY69PdCjB7B7N+9IiNJQMiBm4elT1kkzeDDvSPgbMoRKRaTqKBkQs3Ds\nGODlBTRrxjsS/sLCWKnoyRPekRAloWRAzEJ0NDvnmLCuIh8f4NdfeUdClISSATELBw4AoaG8o5CP\n3r3Z74QQQ1EyIIqXnQ3cvMl27iRMaCglA1I1lAyI4sXEACEhgLXsNmTnp1MnthI5O5t3JEQpKBkQ\nxaMS0bOsrVmCjI7mHQlRCkoGRNFKS9nIgCaPnxUaSsmAGI6SAVG0xES2fXOLFrwjkZ/evVmiLC3l\nHQlRAkoGRNGoRFSx5s0BBwcgIYF3JEQJKBkQRaP1BZWjUhExFCUDoliFhcCZM0DPnrwjkS9ab0AM\nRcmAKNYvv7AWSjrzt2I9ewJnzwIFBbwjIXJHyYAoFpWI9KtTBwgKAmJjeUdC5I6SAVGsgwcBjYZ3\nFPKn0bCuIkIqQ8mAKNKdO0BWFuDryzsS+eveHThxgncURO4oGRBFOnWKzRdYWfGORP46dgQuXgQe\nP+YdCZEzSgZEkU6eBLp25R2FMtSqxba0PnOGdyREzigZEEU6eRLo0oV3FMrRpQv7nRFSEUoGRHGK\ni4G4OKBzZ96RKEeXLjRvQCpHyYAozoULgLMz25OIGEY3MhAE3pEQuaJkQBSHSkRV5+oK2NoC16/z\njoTIFSUDojiUDKqH5g1IZSgZEMWhTqLq6dqVkgGpGJdksGXLliHt2rVLtrKyKomPj/cve9uCBQtm\neHh4pHp5eV2Kjo6mzYnJ39y+DeTlAd7evCNRHppEJpXhkgx8fHzO79ixY2CPHj2Olr0+JSXFe9Om\nTcNSUlK89+/f32fixImRpaWlNHohfzp1ih18X4NeFVWmVgNXrrDdXgkpj8s/KS8vr0uenp5Xyl+/\na9eu/sOHD99gY2NT5Obmlu7u7n41Li4ukEeMRJ5ovqD6atZk23ecPs07EiJH1rwDKOvWrVvNOnfu\nfEr3vYuLS2ZWVpZz+ftFRET8+XVwcDCCg4NNEh/h7+RJ4OOPeUehXLpJ5Bdf5B0JkVpsbCxiq7Bd\nrWTJQKPRxOTk5DQtf/38+fNnhoWF7Tb0cVQq1TOd0WWTAbEcxcVsb/6gIN6RKFeXLsC6dbyjIKZQ\n/oPyF198Uen9JUsGMTExVd5c2NnZOSsjI8NV931mZqaLs7NzlriREaU6d471yzdowDsS5erSBXjn\nHbb4TKXiHQ2RE+7TcIIg/PmSDA8Pj9q4ceNrWq3WNi0trWVqaqpHYGBgHM/4iHycOEEtpcZydmYH\n3qSm8o6EyA2XZLBjx46Brq6uGadOner8yiuv7H355Zd/BgBvb++UoUOHbvb29k55+eWXf46MjJz4\nvDIRsUxnz7Jtq4lxAgNpB1PyLJWgsM1KVCqVoLSYiTgCAoDly6mbyFizZwNPngDz5/OOhJiSSqX6\nWyWmPO5lIkIMUVLCDmhp1453JMrXvj3b7I+QsigZEEW4fh1o3BioV493JMrn4wOcP887CiI3lAyI\nIpw/z97EiPFatWLbehQU8I6EyAklA6IIFy6w8gYxnpUV0LYtkJzMOxIiJ5QMiCLQyEBc7dtTqYj8\nHSUDogg0MhCXjw9NIpO/o2RAZO/JEyA9HfDy4h2J+aBJZFIeJQMie5cusUlPW1vekZgPai8l5VEy\nILJH8wXic3Jiazdyc3lHQuSCkgGRvQsXKBmITaWi0QH5O0oGRPbOn6fJYynQvAEpi5IBkT0aGUiD\nRgakLEoGRNbu3wfu3gXc3HhHYn5oZEDKomRAZC05mW1OV4NeqaJr1w5ISQFKS3lHQuSA/okRWaNO\nIunY27NT49LTeUdC5KDSYy+LiopsoqOjQ48ePdojPT3dTaVSCS1atLjRo0ePo7179z5gbW1dbKpA\niWWilcfS0s0btGrFOxLCW4Ujgzlz5nzWqVOn03v27Onn5eV1aezYsWtGjx69rk2bNpd3794dFhAQ\ncGbu3LmfmjJYYnloZCAtmjcgOhWODHx9fZM+/fTTuc87dnLs2LFrSktLa+zZs6eftOERSyYI1FYq\nNR8fYM8e3lEQOaBjLy1UYSGQlga0aCHfA2Nu3QL8/Nje+0QaiYnA66/Lt8VUENjfPz8faNMGsK60\nsE0qo+/YS72/2tu3bzdZvHjxR8nJye2ePHlS648HFQ4fPvySmIES6Z08CezfDxw6xN4EXFyAjAyg\nTh3A3R3o1w+YOhWoWZN3pExyMo0KpNa2LXD1KlBUBNjY8I6Gyc4GZs0C4uKAa9fY67FBAyAvD+jR\nAwgJAcLDgZYteUeqHIZ8ftbbTTRy5MifvLy8LqWlpbWMiIiIcHNzSw8ICDgjRoDENNLTgYED2SdA\nrZb9Q7t9m20AV1gIJCUBCxYAp06xT+JHjvCOmLl+HWjdmncU5q1mTcDREcjM5B0Ja3FduRLo0AFw\ncABWr2YfVvLzgdRU4PJlYORI9iGhUydg5kzg0SPeUSuDQe3DgiBUelGr1fGCIMDHx+ec7rqOHTue\n0fdzUl1YyMQQv/8uCHPmCIKDgyDMncu+r0xpqSBs3y4ILi6CMGaMIDx8aJo4K/LxxyxuIq0ePQTh\n8GG+MVy8KAhBQYLQrZsgXLig//5ZWYIwYoQgNG8uCNu2sdcuqZhWKwh/vHdW+N6qd2Rga2urBYCm\nTZvm7Nmzp198fLz/vXv3GhiXp4jUcnKArl2BM2fY5ZNPgFq1Kv8ZlYqNIFJSgKdPgTfe4LsgKT2d\nVh6bgpsb37UGt28DvXuzT/1Hj7LFcPo0awb89BOwbh3w6afA+PFAMTW6V8iQf8d6k8Gnn3469/79\n+/ZLly6d+uWXX344fvz4b5ctW/ZPMQIk0khNBbp1AwYNAnbsqPobqp0dsHYtG57Pni1FhIahZGAa\nPJOBVgu8+ir74DF5ctVXmgcHA6dPs2aDgQOBx48lCVPxREkG9vb29+3t7e/7+Picj42NDY6Pj/dv\n2LDhXTECJOI7cwbo2ROYMYN9YlJV2DtQOVtbYOtWYM0aYPt2cWM0VFoaTRKaQsuW7HfNwwcfAPXr\nG/eho04dICqKTTL36sX2siJ/J0oymDx58nJDriP8HTsG9O3LJuHGjzf+8Zo2ZYng7bdN33r4++9s\nk7qmTU37vJaI18jgf/8DDh8GfvzR+L2nbGzYaLZ7d3bJyxMlRLNhSDKosLX05MmTXU6cONE1Ly+v\n8VdffTVF+KM/taCgwK60tJT2NJKZ1FRgyBBWR9VoxHvcgADgq6/YEPzCBdO1nd64ATRvThvUmQKP\nZHDuHJvHOnaMjQzEUKMGsHgxW4swYABrodY3T2YpjBoZaLVa24KCAruSkhKrgoICu8LCwrqFhYV1\n69Wr93Dr1q2vihkoMc7du2yNwOzZ4iYCnTfeYC2e338v/mNXhOYLTMfFhR1/qdWa7jnnzAE+/pgt\nJBPb3Llsgnn8eMP66y2BKK2l6enpLfTdp6qXzZs3D/H29k6uUaNGydmzZ/1116elpbnVqlXrdz8/\nvwQ/P7+ECRMmRJb/WVBr6d88fSoIL74oCFOmSPs8x44JQqtWglBUJO3z6ERGCsJbb5nmuYgguLkJ\nwtWrpnmulBRBaNJEEAoLpXuOR48EoVMnQZg9W7rnUJL8fP2tpRWWid5///1///vf/35/0qRJK8rf\nplKphKioqPDqZikfH5/zO3bsGPj222+vKn+bu7v71YSEBHV1H9uSCAIwcSJQty4bHkupe3fA1RXY\nuJEtXpMajQxMS1cqMsUivwULgPffZxO/Uqldm00qBwUBnp7AsGHSPZcSGDVnMGrUqO8BYOrUqUvL\n3/a8zeuqwsvL65IxP0+YH35gq4ZPnQKsrKR/vk8/Ze1/I0ZIX8tPT2d1X2Iappo3uHYN2LcPWG6C\nFpSmTVlC6NUL6NiRbbliqYxKBh07djwLAImJiX4ffPDBv8re9q9//euDnj17SrJpQVpaWku1Wp1Q\nv379B3Pnzv20e/fuv5a/T0RExJ9fBwcHIzg4WIpQZO3GDbaP0MGDbGRgCiEhbFO77dtZb7iUaGRg\nWqZKBosWARMmiDdprI+vL/D552ze69gxy9roLjY2FrGxsQDYtjN6VVZDEgQBfn5+CeWv8/X1TdT3\nc7169Ypp3779+fKXqKioMN19goODfyk7Z/D06VPbu3fvNhAEAWfPnvV3dXW9+fDhQ7uyjwuaMxBK\nSgShZ09BWLTI9M8dFSUIvr7SL/9v3FgQbt2S9jnIX9auFYSRI6V9jps3BaFBA0HIy5P2ecorKRGE\nXr0se2uTzEwj5gw2bNgwfP369SPS0tJahoWF7dZdX1BQYOfg4HBHX5KJiYmpcl+Lra2tVrf9hb+/\nf3zr1q2vpaamevj7+8dX9bHM2bJlbNg3darpn7tfP+Czz4C9e9nXUnj0CCgooDUGptSypfQjgyVL\ngHHjgEaNpH2e8mrUAL77jpWK+vRh/7U0RpWJunbtesLJySk7Ly+v8Ycffvil8Mc6g3r16j3s0KHD\nObGCFMrsr52fn9+oQYMG96ysrEquX7/eKjU11aNVq1bXxXouc3D+PLBwIVuCb4p5gvJUKmD6dODf\n/5YuGdy4wc5ZqO7qaVJ1UpeJHj1i+whd4jRb6OLCXrOvvw7ExwP/+AefOHgxqrW0tLRUVdmQwtD7\nPO+yffv2gS4uLhm1atX63dHRMadPnz4/C4KArVu3Dm7Xrt0FPz+/BH9//7N79ux5pfzPwoLLRMXF\ngqBWC8KaNXzjKCgQhLp1BeH+fWkef+9eQejdW5rHJs9XVCQItraC8OSJNI+/cydrgebttdcEYepU\n3lGY3vXr+stEFZ501rNnzyP9+vXb079//12enp5Xyt52+fLlNjt37hywd+/eV44ePdrD6LRVBZZ8\n0llkJLBlC1vCz/tTc9++wJgxwNCh4j/2f//LRkBffy3+Y5OKtWoFHDgAeHiI/9jjx7ODij74QPzH\nrorbt9muqEeOAN7efGMxpWvXAHf3yk86q7BBMDo6OtTBweHOu++++18nJ6dsT0/PKx4eHqlOTk7Z\nkyZNWuHo6Jh78ODBXtKETsrLywMiIlhLHu9EAABhYcDu3frvVx3p6bRBHQ9SzRuUlrI5prAw8R+7\nqpo0Yd1F771nWauTDSkTGXQGcklJiVV+fn4jAGjUqFG+lZVVidHRVZOljgzeeostpPnXv/Tf1xQy\nMgC1mp2bIHa73pAhrHXV0hcKmdq4cUDnzsCbb4r7uHFxbBSZkiLu41ZXcTHg78+SgtQt0nJx+TLg\n5VXNkcGhQ4dCdF/fvHmzuaOjY66jo2OulZVVyfbt2weJHSyp2Jkz7FN4meUV3Lm6ssvJk+I/dloa\nrTHgwc1Nmq2sd++Wx6hAx9qajbCnTrWc8w+M2qjuww8//FL39aBBg/62o/2cOXM+MyYwYrjSUmDS\nJLaE396edzR/J1WpiBac8SFVR5HckgHAzvzo1o39u7IEopxnQPj6/ns2RzBqFO9InhUezpb7i6mg\ngH1aa9JE3Mcl+kkxZ3DjBpCVBXTpIu7jimHJEnb2x3ULaF6nZKBwT5+yuuZXX8lzX39/f+DhQ3aW\nglhu3GCfUOUwSW5ppBgZ7NnDOs94rInRx9mZ7bUlp/KrVIxadHb9+vVWupXH5Vchp6WlUa+HCXzz\nDdChgzw/VQEsQfXrx8oAU6aI85g0X8CPkxNw5w47ZU6sRVm7d4tz6p5U/vlP1kqbkmLeraZGdRPF\nxsYG/9G5owKe3alUqo3q9LGUbqLHj9kui3v3sq4dudq9m41cfvlFnMdbvhy4eJGtqSCmp3vNiXHo\nTEEB+/Sdmck2OJSrJUtYx9OWLbwjkc7Zs0BAQOXdRBWODO7fv2+fmZnpojvPIDAwMC4vL68xACxe\nvPgj8cMlZa1YwSa45JwIALaT6ciRwL177EByY9EaA7508wZiJIOYGNaqKudEAADvvsv2+0pIkP+/\nt+oyas5g8eLFH4WHh/85PajVam3PnDkTcOTIkZ4rV66cIE6I5HkePgS+/JIdYyl3tWuzzowDB8R5\nPOok4kvMeQO5LDTTp3ZtYOZMtgGjuTL6DOTmzZvf1H3fvXv3Xx0cHO40b9785qNHjyQ8o4gsW8Z2\nV2zblnckhunWjW2cJwaaM+BLzLUGcXHstaEEb77JtkCRYt2MHBiVDO7du/e3Qf+KFSsm6b7WlYuI\n+O7eZXXzWbN4R2K4Dh2AcyLtY0sjA77EGhk8fQpcvaqcSdmaNVnn3ief8I5EGkYlg6CgoN+++eab\nt8pf//XXX78TFBT0m3GhkYqsWAH072+as2jF4usLJCUZv9fLkydsq2NT73dP/uLiwtYFGOviRbbx\nXa1axj+WqYwezUZF5jg6MKq1dNmyZf8cMGDAzvXr14/QHS4THx/v/+TJk1o7d+6k02kl8Pgx27Hz\nCJc+repr1gwoKWH7FDk5Vf9x8vMBBwdaY8CTgwNrLzVWUhIbMSqJtTXbomLJEna0qzkxKhk4Ojrm\nnjhxouvhw4dfSk5ObqdSqYR+/frteemllw6LGST5y7p1rPvCy4t3JFWjUrHRwblzxiWDO3doVMBb\no0biJINz59hrQmn+7/9Y48aVK4CnJ+9oxGNUMgBYT39ISMihkJCQQ2IFRZ6vpIR1EH3/Pe9IqkdX\nKurdu/qPoRsZEH4aNmTzVoJg3AgtKYnPsazGqlMHmDABWLoUWLWKdzTioe0oFGT7dnbmr1K6L8rr\n0IG9ARiDRgb82dqyVssHD6r/GIKgzDKRzqRJbAFabi7vSMRDyUAhBIHVKadN4x1J9enKRMbIz6dk\nIAeNGrG/RXXl5LDXdLNm4sVkSo0bA6+9xrr6zAUlA4U4coR9EgsP5x1J9Xl7s1bCp0+r/xhUJpIH\nBwfjkkFSEvtwoORGgClTWJmosJB3JOKgZKAQixezUYEcdyY1VK1arJXQmNOsqEwkD8ZOIiu5RKTj\n7g68+CLw7be8IxEHJQMFuHKFbSL1+uu8IzGesaUiGhnIg7EjA6V2EpU3dSorFRnyRip3lAwU4Ouv\ngbFjlbU4pyK6jqLqopGBPIgxMjCHZBAYyE4XjI7mHYnxKBnI3OPHrJX07bd5RyIOYzuKaGQgD8aM\nDJ48Aa5dU86+WpVRqVibqTlsp07JQOY2bQKCgsxnLx5jt6WgkYE8GDMyuHiRbaViDiNdABg+HDh+\nHLh5U/995YySgcytXAlMnMg7CvE4ObFPU9nZ1ft5ai2VB2NaS82lRKRTpw6bz/vmG96RGIeSgYyd\nOQPcvs22qjYXKlX1S0VPn7KLnZ34cZGqMaZMZA6dROW98w7rKtJqeUdSfZQMZGzlSjZXIMeDwo1R\n3Y6iO3dokzq5MKZMZC6dRGW1bcvW0ezYwTuS6qNkIFP37gHbtgHjxvGORHzV7SiiyWP5qO7IQLcN\nhbklA4BNJK9cyTuK6pNtMpg2bdqStm3bXvT19U0aNGjQ9gcPHtTX3bZgwYIZHh4eqV5eXpeio6ND\necQntXXrgL59gSZNeEcivuoedEOTx/Lh4PDXZnVVkZ3NRnZNm0oTF08DBrA1QcnJvCOpHkP+llyS\nQWhoaHRycnK7pKQkX09PzysLFiyYAQApKSnemzZtGpaSkuK9f//+PhMnTowsLS01q9GLILD6o7m0\nk5bn7c1aC588qdrP0chAPmrWZJeHD6v2c+awDUVFbGzYeqDVq3lHUj2yHRloNJqYGjVqlALsRLXM\nzEwXANi1a1f/4cOHb7CxsSlyc3NLd3d3vxoXFxfII0apxMez9QUvvMA7EmnUrAm4ulb9HF0aGchL\ndeYNUlOVdxZHVYweDaxfDxQV8Y6k6ow+z8AU1qxZM3b48OEbAODWrVvNOnfufEp3m4uLS2ZWVpZz\n+Z+JiIj48+vg4GAEBwebIFJxrFsHjBql7H2I9HFyYjtXVmXhEbWVyouuvbRVK8N/JjvbuMON5M7D\ng/0+DhwA+vXjHY1+sbGxiI2NBQAkJOi/v2TJQKPRxOTk5DxTPZw/f/7MsLCw3QAwb968T2xtbbUj\nRoxYX9HjqFSqZ6pdZZOBkmi1wIYNwKlT+u+rZE2bsmRQFfn5QPPm0sRDqq46k8g5OUD37tLEIxej\nR7MPdEpIBmU/KH/7LRAV9UWl95csGcTExGgqu33t2rVj9u3b1/fQoUMhuuucnZ2zMjIyXHXfZ2Zm\nujg7O4twPLc87NvHhtFKOuy+OqqTDO7cAfz9pYmHVF11ykQ5OeY5eVzWsGHA9Olsgr1hQ97RGE62\ncwb79+9UlpSGAAAVbElEQVTvs2TJkmm7du3qX6tWrT+nGsPDw6M2btz4mlartU1LS2uZmprqERgY\nGMcjRimsW8c+WZg7XZmoKmgCWV6qOzIw92Rgb8+Odt20iXckVSPbZDB58uTlhYWFdTUaTYxarU6Y\nOHFiJAB4e3unDB06dLO3t3fKyy+//HNkZOTE55WJlCg/Hzh8GBgyhHck0qvuyIDmDOSjuiMDc54z\n0NGVipREthPIqampHhXdNnPmzPkzZ86cb8p4TGHDBuCVV4D69fXfV+mqO2dAyUA+GjWq2uLBkhL2\nN2zcWLqY5CI0lC0YvXwZaNOGdzSGke3IwBJZSokIqP7IgMpE8uHgULWRQX4+0KAB68c3d9bWwIgR\nyhodUDKQieRk1nbXqxfvSEyjqslAq2VrLyxh1KQUVd251BLmC8oaPRr44Qc2IlICSgYysX49+yRh\nbpvSVaRxY9ZtUVxs2P3v3GGdGea4clWpqjqBnJ1tWcmgQwf2mj12jHckhqFkIAOCAGzezFrSLIWV\nFftkefu2YfenyWP5qeoEsqWNDAD2b3rLFt5RGIaSgQwkJbGhZMeOvCMxraqUiqitVH50IwNDN6uz\nxGQwZAjbfVgJpSJKBjKweTN70VhaCaQqyYBGBvJTqxZgawsUFhp2f0tpKy3Lw4P9PyuhVETJgDNd\niWjoUN6RmF5VRwaUDOSnKpPIljgyANi/7c2beUehHyUDzhITWUKwxG0WqjoyoDKR/FSlvdRSk8GQ\nIcD27fIvFVEy4MxSS0QAjQzMAY0M9HN3B5o1A44e5R1J5SgZcCQIrNPAEktEAKulZmcbdl+aQJan\nqrSXWlpraVlDh8q/q4iSAUcJCSwhqNW8I+GDJpCVz9D20seP2cl29vbSxyRHuq4iQ9fV8EDJgCPd\nxLEllogAai01B4aODHJz2d/bUl/rrVsDLi7yLhVRMuDE0ktEAI0MzIGhIwNLbCstT+6lIkoGnOh2\ne/Tz4xsHT3Z2rMPCkD51mkCWJ0MnkC118risV19lXUWGvOnyQMmAk6goIDzccofNAPt/b9qUlRAq\nU1QEPHpEm9TJkaGtpZQMWKmoUSMgTqZHcVEy4GT3bpYMLJ0hJ57dvcu2Pq5Br0TZoZFB1YSHs3/7\nckTJgINbt4Br18z/YHBDNG2qv72UJo/ly9AJZEtuKy0rLIySASlj7152RqolHPKhjyGTyDR5LF+6\nMpG+zepoZMAEBbHfRXo670ieRcmAg6go9gmBGJYMaGQgX7Vrs/Ldo0eV34+SAWNlBfTtK8/RASUD\nE3v8GDhyBHj5Zd6RyAONDJTPkPZSai39i1znDSgZmNihQ+zcggYNeEciD4aODCgZyJe+SWRBYB1j\njo6mi0nOQkOBU6eAhw95R/J3lAxMbPduKhGVZUg3Ee1YKm/62kvv3WPlpFq1TBeTnNWtC3TtCkRH\n847k7ygZmFBpKbBnDyWDsmhkoHz6RgY0X/AsOXYVUTIwobNngXr12OlHhGnShJ2DXNkL8c4ddrA4\nkSd97aXUVvqsfv1YV6GczjigZGBCtNDsWba2LEFWVmZ4+pRKDHJWsyag1VZ8O40MntWiBdu47uRJ\n3pH8hZKBCVGJ6Pn0lYpKS2n1sZzVqFH5Gwklg+eTW6mIkoGJ5OYC168DnTvzjkR+DEkGVlami4dU\njZWV/mRAbaXP6tNHXpPIlAxM5NAhIDiYVh0/j76OopISGhnIWY0alde+aWTwfIGBQFoamzOTA0oG\nJhITA2g0vKOQJyoTKRuViarHxgbo2ZN9UJQD2SaDadOmLWnbtu1FX1/fpEGDBm1/8OBBfQBIT093\n+8c//vG7Wq1OUKvVCRMnTozkEV9VCAJLBqGhvCORJyoTKZshZSJKBs8XGsreG+RAtskgNDQ0Ojk5\nuV1SUpKvp6fnlQULFszQ3ebu7n41ISFBnZCQoI6MjJzII76quHgRsLYG3N15RyJP+nYupTKRvOkr\nE1FracU0GjZvoG+jP1OQbTLQaDQxNWrUKAWAoKCg3zIzM114xCEGXYnIkg+yqQyViZStsjKRVgs8\neEAryCvi4cFGVpcu8Y7EsGRgLX0YlVuzZs3Y4cOHb9B9n5aW1lKtVifUr1//wdy5cz/t3r37r+V/\nJiIi4s+vg4ODERwcbJJYnycmBhg1itvTy56jY+WnnVGZSN4qKxPpdpylv9/zqVTsg2JMDNC2remf\nPzY2FrGxsQCA5GT995csGWg0mpicnJxnBpDz58+fGRYWthsA5s2b94mtra12xIgR6wGgWbNmtzIy\nMlwbNGhwLz4+3n/AgAE7k5OT29nZ2RWUfYyyyYAnrRY4dgxYt453JPJla8uOtqwIlYnkrbIykVbL\nFqWRioWGAj/8ALz3numfu+wH5cRE4NKlLyq9v2TJICYmptL+mrVr147Zt29f30OHDoXorrO1tdXa\n2tpqAcDf3z++devW11JTUz38/f3jpYrTGCdPAp6eNEyujL4JSBoZyFtlfz/62+kXEgK8+SZLnLa2\n/OKQ7ZzB/v37+yxZsmTarl27+teqVeuJ7vr8/PxGJSUlVgBw/fr1VqmpqR6tWrW6ziNGQ1BLqX76\nJiBpzkDeKpszoFGdfg4ObO7g1Cm+ccg2GUyePHl5YWFhXY1GE1O2hfTIkSM9fX19k9RqdcKQIUO2\nrFq16m17e/v7PGI0BCUD/fT1qdMbirxVlsxpZGAY3bwBT7KdQE5NTX3u3p6DBw/eNnjw4G2mjqc6\n7t5lbaVdu/KORN6oTKRs+spElMj1Cw0FZswA5szhF4NsRwbm4PBhoHt3mkDTh8pEykZlIuN17Qqk\npLCDgHihZCChQ4eAXr14RyF/+kYG9IYib1QmMl7NmkC3bsAfXZ5cUDKQ0NGjbO8RUjlDRgb0hiJf\nlSVzSuSG69GDvWfwQslAIvn5QGYm4OvLOxL50zeBTGUieavs70eJ3HCUDMzUr7+yOqA19/Xb8kdl\nImXTVyaiv51hAgKAy5eBhw/5PD8lA4kcPQq88ALvKJSBykTKRmUicdSsCXTqBJw4wef5KRlI5OhR\nNuwj+lGZSNmoTCSeF17gVyqiZCCBggK2C2GnTrwjUQYrq8pHBvTpUt4qG9nR365qevRge5nxQMlA\nAidOAB070voCQxkyMqBPl/JFi87E06ULkJAA/P676Z+bkoEEqERUNVQmUjYqE4mnTh2gfXsgLs70\nz03JQAKUDKqGykTKRmUicfGaN6BkILInT9gwr0sX3pEoh0rFjv2r6Og/+nQpb7SFtbh4zRtQMhBZ\nXBzg7Q3Urcs7EuVQqfSXGujTpXzR3kTi6t6dbWdd2YFPUqBkIDIqEVUPvaEoFy06E1eDBkDLlqzC\nYEqUDERGyaB6aBJSuahMJD4e8waUDERUXMyGd9268Y5EeSqbRKZPl/JGozrx8Zg3oGQgooQEoHlz\nOu+4Oip6QxEESgZyR1tYi++FF1gyMOQNWiyUDEREo4LqqywZqFTsQuSJFp2Jz8kJsLcHUlNN95yU\nDET0229AYCDvKJSpojIRvZnIH5WJpBEYyN5TTIWSgYji4igZVFdFbyj0ZiJ/VCaSRmCgaVciUzIQ\nyd27QHY2W2NAqq6iNxR6M5E/2sJaGkFBlAwU6fRptjkdvXFVT0VvKFQmkj9qC5aGWg0kJ7NdDUyB\nkoFI4uJYJifVQ2Ui5aJFZ9KoXRvw9ASSkkzzfJQMREKTx8apbAKZPlnKG5WJpBMUZLpJZEoGIhAE\nGhkYq6KRAX2ylD8qE0nHlJPIlAxEcOMGO/je2Zl3JMpVUamBPlnKH21hLR1KBgqjKxHRwqjqq2wC\nmT5ZyhvtTSSdtm2BnBzWrSg1SgYiUHKJKDY2lncIACyrTCSX37lYlLD9uFJ/51ZWrEvx9Gnpn0u2\nyeCzzz6b4+vrm+Tn55cYEhJyKCMjw1V324IFC2Z4eHikenl5XYqOjg7lEV9ZSp48lss/EksqE8nl\ndy4WJZSJlPw7N9VKZNkmg48++mhxUlKSb2Jiot+AAQN2fvHFF7MAICUlxXvTpk3DUlJSvPfv399n\n4sSJkaWlpdxebkVFQGIiEBDAKwLzQGUi5aIykbRMtfhMtsnAzs6uQPd1YWFh3UaNGuUDwK5du/oP\nHz58g42NTZGbm1u6u7v71bi4OG6fy5OT2U6l9evzisA8VLYCWQ6fLEnFaJ2BtHQjg4qOhRWLQTuk\nCoLA5TJz5sx5rq6uNz09PS/fv3+/viAImDRp0vIff/xxpO4+48aN+3br1q2Dy/4cAIEudKELXehS\n9Utl78nWkIhGo4nJyclpWv76+fPnzwwLC9s9b968T+bNm/fJwoULP/7ggw/+9d133/3f8x5HpVIJ\nZb8XBIH6egghRGSSJYOYmBiNIfcbMWLE+r59++4DAGdn56yyk8mZmZkuzs7OWVLFSAghhOFS8UtN\nTfXQfb1r167+arU6AQDCw8OjNm7c+JpWq7VNS0trmZqa6hEYGGjCvf0IIcQySTYyqMyMGTMWXL58\nuY2VlVVJ69atr61cuXICAHh7e6cMHTp0s7e3d4q1tXVxZGTkxPJlIkIIIRLgNYFMF+kus2bNinB2\nds708/NL8PPzS9i3b9/Lutvmz58/w93dPbVNmzaXDhw4EMo7VnO6/Pzzz33atGlzyd3dPXXhwoXT\necdjrpcWLVqk+/j4nPPz80vo1KlTnCAIuHPnTsNevXrFeHh4XNFoNNH37t2z5x2n0i7cA6CL+JeI\niIhZS5cunVL++uTkZG9fX99ErVZrk5aW5ta6deurJSUlNXjHaw6X4uJiq9atW19NS0tz02q1Nr6+\nvokpKSltecdljhc3N7e0O3fuNCx73bRp0xYvWrToI0EQsHDhwunTp09fyDtOpV2oS9hMCc/pupLb\nOg5zEhcXF+ju7n7Vzc0t3cbGpui1117buGvXrv684zJX5V/fUVFR4aNHj14HAKNHj163c+fOAXwi\nUy5KBmZq+fLlk319fZPGjRu3+v79+/YAcOvWrWYuLi6Zuvu4uLhkZmVl0X6sIsjKynJ2dXXN0H1P\nv1vpqFQqoVevXgcDAgLO/O9//3sTAHJzcx0dHR1zAcDR0TE3NzfXkW+UysNlApkYr6J1HPPmzftk\nwoQJKz///PPZANsHaurUqUtXr1497nmPQxP04qDfo+kcP368m5OTU3ZeXl5jjUYT4+Xldans7SqV\nSqC/R9VRMlAoQ9dxjB8//tuwsLDdAK3jkFL5321GRoZr2VEYEY+Tk1M2ADRu3Dhv4MCBO+Li4gId\nHR1zc3JymjZt2jQnOzvbqUmTJrd5x6k0VCYyQ9nZ2U66r3fs2DHQx8fnPEDrOKQUEBBwJjU11SM9\nPd1Nq9Xabtq0aVh4eHgU77jMzePHj2sXFBTYAcCjR4/qREdHh/r4+JwPDw+PWrdu3WgAWLdu3egB\nAwbs5Bup8tDIwAxNnz59UWJiop9KpRJatmyZtmrVqrcBWschJWtr6+IVK1ZM6t2794GSkhKrcePG\nrW7btu1F3nGZm9zcXMeBAwfuAIDi4mLrkSNH/hQaGhodEBBwZujQoZtXr149zs3NLX3z5s1Deceq\nNCpBoPcCQgixdFQmIoQQQsmAEEIIJQNCCCGgZEAIIQSUDIgZe/DgQX3djrgAW4E9ZMiQLQCQlJTk\n+/PPP79szOOPGTNm7bZt2wYbGychckDJgJite/fuNYiMjJyo+75Zs2a3tmzZMgQAEhIS1Pv27etr\nzOOLtdK1uLiYWrwJd5QMiNn6+OOPF167dq21Wq1OmD59+qIbN2608PHxOV9UVGTz+eefz960adMw\ntVqdsHnz5qGnT5/u1LVr1xP+/v7x3bp1O37lyhXP5z3mpEmTVnh5eV3SaDQxt2/fbqLbMO3s2bMd\ng4ODYwMCAs706dNnv26rkNOnT3fq0KHDObVanTBt2rQlugWAa9euHRMeHh4VEhJySKPRxDx+/Lj2\n2LFj1wQFBf3m7+8fHxUVFQ4AJSUlVtOmTVsSGBgY5+vrm/TNN9+8BbCFhT169DiqVqsTfHx8zv/6\n66/dTfNbJWaL97apdKGLVJf09PQW7du3P6/7Pi0tzU33/dq1a0dPnjz5P7rbHj58aFdcXGwlCAJi\nYmJ6DR48eGv5x9u2bdsgjUYTXVpaqrp165aTvb39vW3btg3SarU2Xbp0OZGfn+8gCAI2btw4bOzY\nsasFQUC7du0unDp1KkgQBHz88ccLfHx8zgmCgO+++26Mi4tLhm7f/RkzZsz/8ccfRwqCgHv37tl7\nenpefvToUe1Vq1a9NXfu3E8EQcCTJ09qBgQEnE5LS3NbunTplHnz5s0UBAGlpaWqgoKCurx/33RR\n9oWGp8RsCc/ZxrvsbWVvv3//vv2oUaO+v3r1qrtKpRKKiopsyv/MsWPHXhgxYsR6lUolODk5Zb/0\n0kuHAeDy5cttkpOT2/Xq1esgwD7NN2vW7NaDBw/qFxYW1g0KCvoNYOd979mzp5/u8TQaTYy9vf19\nAIiOjg7dvXt32JdffvkhADx9+rTmzZs3m0dHR4eeP3/eZ+vWra8CwMOHD+tdvXrVvVOnTqfHjh27\npqioyGbAgAE7fX19k8T5rRFLRcmAELDdXUNCQg7t2LFj4I0bN1oEBwfHPu9+FSWYdu3aJZ84caJr\n2et0W4dX9LN16tR5VPb77du3D/Lw8Egt/9grVqyYpNFoYspff+zYsRf27NnTb8yYMWunTJny1Rtv\nvPFDhf+DhOhBcwbEbNnZ2RXoNjUrr169eg/L3vbw4cN6zZo1uwUA33333f8972d69OhxdNOmTcNK\nS0trZGdnO/3yyy8vAkCbNm0u5+XlNT516lRnACgqKrJJSUnxtre3v29nZ1egO0Bo48aNr1UUa+/e\nvQ/85z//eU/3fUJCglp3fWRk5ETdJPOVK1c8Hz9+XPvmzZvNGzdunDd+/Phvx48f/63u/oRUFyUD\nYrYcHBzudOvW7biPj8/56dOnLyrb/fPiiy/+kpKS4q2bQP7oo48Wz5gxY4G/v398SUmJ1fO6hAYO\nHLjDw8Mj1dvbO2X06NHrunbtegIAbGxsirZu3frq9OnTF/n5+SWq1eqEkydPdgGA1atXj3vzzTf/\np1arEx4/fly7fv36D4BnO5E+++yzOUVFRTYdOnQ41759+wuzZs36AmBbkHt7e6f4+/vH+/j4nJ8w\nYcLK4uJi69jY2GA/P79Ef3//+M2bNw99//33/22K3ykxX7RRHSESevToUR1dOWjhwoUf5+bmOi5b\ntuyfvOMipDyaMyBEQnv37n1lwYIFM4qLi63d3NzS165dO4Z3TIQ8D40MCCGE0JwBIYQQSgaEEEJA\nyYAQQggoGRBCCAElA0IIIaBkQAghBMD/A3RTo/iF9sKdAAAAAElFTkSuQmCC\n",
"text": [
- "<matplotlib.figure.Figure at 0x230e550>"
+ "<matplotlib.figure.Figure at 0x321d450>"
]
},
{
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEPCAYAAACgFqixAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4U3X2+PF3KBRQVlnK0sou0NKWAiIgQhmnLIXiqPjA\nCOg46Be+4MIAjgv+HBwF1Jlx3+CrgsqogIWxWqzUwYIoaylLQRSwLW0RKFT2QoHe3x8fUrrnJrnJ\nvUnO63n6CE1ycyxpTs75bDZN0zSEEEIEtFpmByCEEMJ8kgyEEEJIMhBCCCHJQAghBJIMhBBCIMlA\nCCEEFk0GKSkpREZGEh4ezgsvvGB2OEII4fdsVltncOHCBbp168b69esJCQmhf//+LFy4kJiYGLND\nE0IIv2W5ymDTpk1ERETQtm1bateuzdixY0lOTjY7LCGE8GuWSwZ5eXmEhYWV/j00NJS8vDwTIxJC\nCP9nuWRgs9nMDkEIIQJObbMDqCg0NJTc3NzSv+fm5parFAB69uzJjh07vB2aEEL4tOjoaLZv3171\njZrFFBUVae3atdPy8vK04uJirU+fPlp6enq5+1gwbMv629/+ZnYIfuuLLzStRQv13/Pnr37f/jMv\nLNS0+fM1rX17TcvKMiXEgCGvc8e+/bbm907LVQb16tXj7bffZtiwYZSUlDBx4kR69epldlhClPP5\n5/A//wNffgl9+1Z9n6ZN4fHHoUEDiI2FNWugY0evhilEKUfzRi2XDABGjBjBiBEjzA5DiCqtXAlT\npkByMvTp4/j+Dz4IQUEwZIhKCJ06eT5GISoqKan5dksmA2Gc2NhYs0PwKzt3wuTJkJIC1RWsVf3M\n//d/VUIYNgwyM6FePc/GGWjkde6Yo8rAcovO9LDZbPhg2MLHaRoMHgx3360qA1fceSfExMBTTxkb\nmxCOpKbC0KHVv3dabmqpEFb1ySdw5gw88IDr13jpJXjlFcjJMS4uIfRw1CaSZCCEDqdPw1//Cm+8\nodo9rmrXDh5+GGbNMi42IfRw1EyRZCCEDs89B7feCgMGuH+tRx+F9HT45hv3ryWEXj45m0gIK/np\nJ3jvPTXwa4T69eHll1WFsGMH1KljzHWFqIm0iYRw06xZ8MQT0KqVcdccPVq1jN55x7hrClETaRMJ\n4YYDB2DTJpg2zdjr2mzwt7/B6687/sQmhBGkMhDCDQsXwr33emZdwE03qZbRt98af20hKpLKQAgX\nXbgAixapbSc8wWZT6xWkVSS8QZKBEC5auRKioqBLF889x/jxalbR4cOeew4hQNpEQrjsnXdcX2ms\nV6NGcNdd8P77nn0eIaQyEMIFe/eqKaW33eb555o8WY1NXL7s+ecSgUuSgRAuWLAA/vxn76wB6N0b\nWrSAr7/2/HOJwCVtIiGcVFQEH33k3h5EzpoyRSUgITxFKgMhnPTZZ+rAmvbtvfec48bBd99BXp73\nnlMEFkkGQjhp+XKYMMG7z3nttWp8YuVK7z6vCBzSJhLCCUVFsHYtDB/u/eceNUqdniaEJ0hlIIQT\n0tIgOhquu877zx0XB99/r85MEMJoUhkI4YTkZPUJ3QyNGqktKv77X3OeX/g3qQyE0EnT4MsvYeRI\n82IYOVLFIITRJBkIodPu3Wq/oPBw82KwjxvIEd/CaNImEkKn5GT1ydxmMy+GLl2gQQPIyDAvBuGf\npDIQQqcvvzRvvKAsmVUkPEGSgRA6FBaqIyhjY82ORMYNhGdIm0gIHVJSYMgQzxxi46xbblGb5B05\nYnYkwp9IZSCEDvbxAisIDobf/x6++srsSIQ/kcpACAcuXVKVgVWSAci4gTCez1UGc+bMITQ0lJiY\nGGJiYkhJSTE7JOHnNm+GsDBo29bsSK4aMQJSU+WMA2EcR8mgtnfC0M9mszFjxgxmzJhhdigiQPzw\ng+rTW0lIiPravVsdvSmEu3yyTaTJihvhRRs3Qv/+ZkdRWf/+KjYhjOBzbSKAN998k+7duzNhwgQK\nCwvNDkf4uY0boV8/s6OorF8/SQbCOJZMBnFxcURGRlb6SkpKYtq0aRw4cIA9e/bQqVMnHn74YTNC\nFAEiLw+Ki6FDB7MjqUySgTCSozaRKWMGqampuu43efJkhgwZUuVtc+bMKf1zbGwssVZYLSR8jr0q\nMHMLiur06AG5uXDiBDRpYnY0whelpaWRlpYGwIYNNd/XcgPIR48epWXLlgAkJiYSERFR5f3KJgMh\nXGXVFhFA7drQu7ea7TR0qNnRCF9U9oPySy/B6tXPVHtfy40ZzJw5k+joaLp3705ycjKvv/662SEJ\nP7ZhgzUHj+3693f8iU4IPSzZJqrJRx99ZHYIIkAUF8P27dCnj9mRVK9fP3jnHbOjEP7AkgPIQljB\njh3QuTM0bGh2JNW76SbYtMnxpzohHPHJdQZCeIOVxwvsWrWCxo1h3z6zIxG+TioDIaph1cVmFcni\nM2EESQZCVMMXKgOQ9QbCGNImEqIKR4+qA21uuMHsSBzr109mFAn3SWUgRBU2blSDs7V84DegZ081\nZnDmjNmRCF8myUCIKvhKiwjUYTfR0bB1q9mRCF8mbSIhquArg8d2Mogs3CWVgRAVlJSoT9k33mh2\nJPrZ1xsI4SqpDISoIDdXLTS77jqzI9EvIgL27DE7CuHLpDIQooIff4TwcLOjcE6XLnDwoNpCQwhX\nSDIQooIff4Tu3c2OwjnBwdCunaxEFq6TNpEQFfhiMgAV848/mh2F8FVSGQhRwZ49vpsMZNxAuEqS\ngRBlaJpUBiIwSZtIiDIKClRCuHKYnk+RZCDcIZWBEGXYqwIrnnnsSLdu8PPPcPmy2ZEIXyTJQIgy\nfLVFBNCgATRvDjk5ZkcifJG0iYQowxfXGJQVHi6tIuEaqQyEKMNXZxLZyYwi4SqpDIQow5fbRCCD\nyMJ1UhkIccWpU/Dbb3D99WZH4jpJBsJVkgyEuGLvXuja1TcOtKmOPRk4+sUWoiJpEwlxha+3iEDN\nJqpTBw4fNjsS4WukMhDiCn9IBiCtIuEaSQZCXOHrM4nsZEaRcIW0iYS4wtfXGNjJWgPhCqkMhADO\nn1cnnHXubHYk7pM2kXCFVAZCoA6F6dBBDb76OkkGwhWWrAyWL19OREQEQUFBbNu2rdxt8+fPJzw8\nnMjISFavXm1GeMIP+cvgMUBoKJw5o9ZMCKGXJZNBZGQkK1euZNCgQeW+n56ezooVK9i1axcpKSlM\nnjyZYjn0VRjAXwaPQe242q2bVAfCOZZsE3Xr1o0bbrih0veTk5MZN24cQUFBtG3bloiICDZv3mxC\nhMLf7N2r3kD9Rffu6v9JCL0sWRlUJz8/n9DQ0NK/h4aGkpeXZ2JEwl8cPKjGDPxF+/bq/0kIvRwl\ng9qeeuK4uDgOV7FMct68eSQkJLh9/Tlz5pT+OTY2ltjYWLevKfxXXp7qtfuL0FCQolk4kpaWRlpa\nGgDbt9d8X48lg9TUVKcfExoaSm5ubunf8/LyCAsLq/K+ZZOBEDW5fFlt39CmjdmRGCc0FFasMDsK\nYXVlPyjv2we7dj1T7X1NbxNpZWqX+Ph4li5dyqVLl8jLyyMzM5O+ffuaGJ3wB0eOwHXXQXCw2ZEY\nJzRUVTtC6GXJMYOVK1cSFhbGxo0bGTlyJCNGjACgd+/e3H777URFRTF8+HAWLFhAHX+YGC5MlZvr\nXy0igLAw9f8lhF6OZhPZNM33NsO12Wz4YNjCJImJsGQJrFxpdiTG0TR1JvKvv0KjRmZHI3zB2LGw\nbFn1752mt4mE8DR/GzwGtdYgNBTy882ORPgKS64zEMKb/DEZgIwbCOdYcsxACG+SZCCEJAMh/DYZ\nhIVJMhD6SZtIBDx/nE0E6v9JZhQJvaQyEAGtpAQOHYK2bc2OxHjSJhLOkGQgAtrRo9CkCdSrZ3Yk\nxpNkIJwhbSIR0Px1vAAkGQjnSGUgApo/J4NmzaCoCM6eNTsS4QskGYiA5s/JQBaeCWdIm0gENH+d\nSWQnM4qEXlIZiIDmz5UByLiB0E8qAxHQ8vLU4ix/JclA6CWVgQhoUhkIoUgyEAFL09Tgqj8uOLOT\nLSmEXo7aRDUee7lt2zY++eQT1q1bR3Z2NjabjXbt2jFo0CDuvvtuYmJijIxVCEMdOwbXXgvXXGN2\nJJ4jlYHQy1FlUG0yiI+Pp2nTpowePZqpU6fSunVrNE3j119/ZfPmzfzzn//kxIkTJCcnGx2zEIbw\n95lEILOJhH4uJ4NFixYREhJS6fsdO3akY8eOjBs3jqNHj7odoBCe4u/jBQDNm8Pp02rxWf36Zkcj\nrMzl2URVJYKKWrZs6XRAQniLv88kAqhVS42JyMIz4YjbA8hr164lKiqKunXrUqdOHWrVqkUjOXRV\n+IBAqAxAxg2EPm6vM5g2bRqJiYmEh4dz/vx5PvjgA6ZOnWpUfEJ4TKAkA5lRJPRwuzKoU6cOXbp0\nobi4mKCgICZOnEhqaqpR8QnhMYGSDKQyEHq4PIBs16BBAy5evEiPHj147LHHCAkJ4dy5c0bFJ4TH\nBMJsIlD/j3v3mh2FsDq320RLlizh8uXLvPXWWwQFBZGXl0dSUpJR8QnhEZqmPi3784IzO6kMhB5u\nt4n+85//UK9ePZo1a8a8efN46aWXWLVqlVHxCeERhYVQty40bGh2JJ4nyUDo4XYyWLx4caXvvfvu\nu67GI4RXBMK0UjtJBkIPl7ej+OSTT/j444/JysoiISGh9Pvnzp2jSZMmhgUoApumqUNajBYog8cA\nISFw4gRcuKCqISPZP0164t9IeJfLA8gDBgygdevWFBQUMGvWLLQrV6pfv77sSSQM8e23cO+98Ic/\nwMsvQ1CQcdc+dAjatDHuelZWq5ZKCL/+Cu3bG3fdY8fgttugTh348EO4/nrjri28z+U2Ubt27YiN\njWXjxo0MHjyY2NhYYmNjuemmmwgODnYrqOXLlxMREUFQUBDbtm0r/X52dnZpsomJiZH1DH7qwgV4\n9FGYMAFeegkyM2HMGDByktpvv0HTpsZdz+qaNlXVgVH274cBA2DwYBg+HPr0gY8/Nu76wvtcbhPd\nfPPNfP/99zRo0ABbhRrRZrNx6tQpl4OKjIxk5cqVTJ48udJtnTt3JiMjw+VrC2v75Re44w7o0AG2\nb4cWLWD0aJg0CW69FZKS1PfcdeIEBFI3s0kT45LBpk2qWpszB+y/okOHwvjxkJwM770H9eoZ81zC\ne1yuDL7//nsAzpw5w+nTp8t9uZMIALp168YNN9zg1jWEb5o+XbUeVqy4+qYfHKzaEL/7HdxyCxQX\nu/88J08GXjI4edL96+zcCQkJ8O67VxMBQK9ekJ4OR46o24TvcXudwcSJE3V9zyjZ2dn07NmTAQMG\nsGbNGo89j/C+nTthyxZ4/PHKA5I2G8ydq9odaWnuP9eJE9C4sfvX8RWNGxtTGXz4IUyZAiNHVr7t\nmmtg3jz4xz+MSdjCu9xegZyZmVnu75cvX2bTpk0OnzguLo7Dhw9X+v68efPKzU4qq02bNuTn59Oo\nUSMyMjIYNWoUu3fvrnL20pw5c0r/bB/PENY2bx7MmFHzVst33AGJiaot4Q6pDJynaepn/5//VH+f\nvn2ha1dYsgT+/Gf3nk94XlpaGmlXPl05PHFAq8bcuXO1Bg0aaEFBQVqDBg1Kvxo3bqw98sgj1T3M\nKbGxsVp6enq1tw8dOlTbsGFDpe/XELawqL17Na15c007darm++3fr2ktW2rapUvuPd/NN2va2rXu\nXcOXPPWUpj3zjHvX2LZN0zp10rSSkprvl5amaZ07u/9vJLyra9ea3zurbRM9+eSTnD59mlmzZpUb\nLzhx4gSvvPKKYZlLK1O7FBYWUnKlsZWdnU1mZiadO3c27LmEeZ5/Hh580PGK4E6doHVruDJk5TKp\nDJy3YoWqzBytKRg0SE1lXbbMvecT3uXyAPIvv/wCwPPPP1/tgw8cOOBSUCtXriQsLIyNGzcycuRI\nRowYAcCaNWuIiooiKiqKhIQEXnvtNZo3b+7ScwjryMmBzz+Hhx7Sd/877lBvTO6QMQPn2ZOBIzYb\nzJ6t2n6OBiWFdThKBjZNq/ouY8eO5ezZs4wePZo+ffqUOwN569atJCUl0bBhQz799FNPxF0jm81G\nNWELC5o2TVUENXyuKCczE+LjVRJxdeVro0Zq19JASQiffQaffqr+64q9e9XU3txctYjNEU1Taw+e\nflrNDhPW17kzHDhQ/XtntQPIS5cuZf/+/Xz66afMnj2bnJwcQC1GGzhwIK+//jodO3b0TNTCbxw9\nCp98Aj/+qP8xERFqkHnrVrjxRuef8/JlOHs2MDaps3O3MrBXBXoSAVytDp5/XpKBr3BrNlHnzp15\n6qmnjIxHBJjkZPWJU8eR2qVstqutIleSwalTKhHofWPzB+6OGaxYoaaMOuO22+CBBwJrHyhf5vIK\n5MTExEorj8u6Q09zUQS8r76CK0NCTrnjDrXidd4851tFgTZeAO5VBtnZqiV3yy3OPS4oSE0BTkmB\n++937bmF97hcGXzxxRelvfkvvviC0aNHl7tdkoFw5NIlSE0FVyaf9ekD58/D7t3Qo4dzjw20rSjA\nve0oVq5Un/JrO1x1VNmIEWpygCQD63M5GZQ9xyAmJoZFixYZFZMIEBs2qF00Xdk9tGyryNlkcPJk\nYFYGJ0+6tiX4ihXwxBOuPe/w4fDww2pFspv7VwoPc3s7CiFc5WqLyC4+Hr75xvnHBWJlULeuatsU\nFTn3uKIiNVB/662uPW/LltClC/zwg2uPF97j9klnQrjqq6/UG7qrunYFV5ayBGJlAFerA2dkZalz\nCtw5FGfECPVvLazN5TZR2f2DKp52ZrPZSEpKcj864bcOHVKDkv36uX6N0FA4flx9eq1pP6OKArEy\ngKvjBq1b63/MgQNq1bc74uPVrKIXXnDvOsKzXJ5NNHPmzNIBZPufhdArJQXi4lwblLQLCoJ27dQZ\nCBER+h8nlYF+RiSDG29Up6zl5gbOudO+yOXKoKCggCNHjvDggw8C0LdvXwoKCgB49tlnjYtQ+KWv\nvqp6G2Rndeqk3rCcSQYnTgTOkZdluTKjyIhkUHaK6QMPuHct4Tkujxm8+OKL5aaTFhcXs3XrVr77\n7jsWLFhgWIDC/1y8qAZ+hw93/1odOzo/biCVgX4HDqifsbvi42HVKvevIzzH5dlExcXFXF/mBOyB\nAwfSrFkzQkNDKXJ2yoIIKBs2qDeYVq3cv1anTqpN5IxAHzNwhhGVAcCwYbBmjRx6Y2UuVwaXLl0q\n9/c33nij9M/njDy5XPidVavcm1Jalr1N5IxA277aztktKS5fVoP8RlQGLVqo2V/r17t/LeEZLlcG\n0dHRLFmypNL3P/roI6Kjo90OTPivlBRzk0EgbkcBzm9JkZ8PzZo5N1OrJiNGqH97YU0uDyC//PLL\nDBs2jCVLlhATEwPAtm3bOHz4MF9//bWhQQr/ce4c/PSTaxvMVaVjR/Xp9fJlNVCpRyBXBocO6b+/\nUS0iu5tvVudYC2tyORmEhISQnp7O119/za5du7DZbEyfPp2hQ4cSpPe3UgScnTuhWzfjtiaoX199\nes3LU9NM9ZDKQB+jk0FMDGzfrtoRgbRjrK9weZ0BQFBQEPHx8cS7s4xUBJSMDPWmYCR7q0hPMtC0\nwJ1N5OyYgdHJoEULtXV4Vpax1xXGkO0ohFdlZECvXsZe05lxg6Ii9am0Xj1jY/AFZlcGoP7tMzKM\nvaYwhiQD4VWerAz0CNTxAjC/MgD1by/JwJpk11LhNRcvqvMHjJ5s1rGj/rUGgTpeAM5VBppm3IKz\nsiQZWJdUBsJr9u5Ve9M0aGDsdaUy0MeZyqCwUL05NGtmbAySDKxLKgPhNZ5oEcHVZODokw0EdmXQ\noAGcPaum4TpibxEZvf/k9dfDhQtw+LCx1xXuk8pAeI2nkkGzZuqFXFjo+L6BXBnUqgWNGsGpU47v\n64nxAlDJRaoDa5JkILzGU8nAZtPfKgrkygD0jxt4KhmAJAOrkjaR8ApNUwuOPJEMQH8yCOTKAPSP\nG/zyiySDQCOVgfCKrCzVs27RwjPXl8pAH6kMRHUkGQiv8FSLyE7vVtZSGeirDDyZDLp2VSefOXu2\ngvAcPZMvJBkIQ3gjGUhl4JieyqCoCI4dU2dMe0JQEERGwo4dnrm+cJ5lk8GMGTMIDw8nPDycUaNG\ncfz48dLb5s+fT3h4OJGRkaxevdqM8IQLPJ0M9J54JpWB40/kWVlqCqgn95uUVpG1aJrjacSmJIOE\nhAQyMzPZs2cPPXr04LnnngMgPT2dFStWsGvXLlJSUpg8eTLFcnSST/B0MggLU59mHR2yJ5WB48rA\nky0iO0kG1qJnJ1lTksGQIUOodSWym2++mfz8fACSk5MZN24cQUFBtG3bloiICDZv3mxGiMIJR47A\n+fP6t5h2RVCQ+jSblVXz/aQycFwZSDIIPJatDMpauHAht912GwD5+fmElmlkhoaGkpeXZ1ZoQqeM\nDOjZ0/jVrBXpGTcI1POP7fScg+yNZBAZCT//rFYjC/OVlDj+/azxPAN3xMXFcbiKNenz5s0jISEB\ngLlz5xIcHMz48eOdvv6cOXNK/xwbG0tsbKyroQo3eWLb6qp07Oi4MpA2keNkkJ0Nt97q2Tjq1YMu\nXSAzE3r39uxzieqlpaWRlpbGxYtuHm7jjtTU1Bpv/+CDD0hOTmbNmjWl3wsNDSU3N7f073l5eYSF\nhVX5+LLJQJhr9274/e89/zyNG8Pp09XffumSOnazYUPPx2JVetpEp055p3qKjFSvDUkG5rF/UD53\nDl56CS5ffqba+5rSJkpJSeHFF18kKSmJemVOIYmPj2fp0qVcunSJvLw8MjMz6du3rxkhCidkZxu/\nFXJVrr1WvdlX59QplQgC+chFPZXBuXPqZ+lpHTqo14Ywn54BZI9VBjV56KGHKC4uJi4uDoD+/fvz\n1ltv0bt3b26//XaioqKoVasWCxYsoE6dOmaEKJyQlQXt23v+ea65BgoKqr890AePQV9lcPas+ll6\nWvv28P33nn8e4ZieAWRTksG+ffuqve3JJ5/kySef9GI0wh0XLqgpn23bev65rrmm5sog0McLQH9l\n4I1k0KED/Pvfnn8e4ZhPzCYSvi0nR61k9eQCJjtHbSKpDFQyOHmy5hWn3moTtW/veMBfeIdl1xkI\n/5Gd7Z0WEahPs2fPVn+7VAZQt65KzDUtzvNWmygsDA4dUgP7wlxSGQiPy85W7QBvcNQmkspAqWnc\nQNNUoqhf3/NxBAdDq1YgS4XMJ8lAeJy3Bo/BcZtIKgOlpnGD8+evVg/eIK0ia5A2kfA4b1cGNbWJ\npDJQaqoMvNUispPppdYglYHwOG9WBjKbSJ+aKgNvzSSyk8rAGqQyEB7nzcpAZhPpU1Nl4K2ZRHZS\nGViDVAbCo86dU59AW7XyzvPJbCJ9aqoMvN0mksrAGiQZCI/KyVHbSntr+weZTaSPo8rA28lAKgPz\nSZtIeJQ3W0SgpkNeuFD97otSGSiOxgy82SYKDYWjR0HOqDKXVAbCo7w5eAzqxVy/fvXVgVQGipVm\nE9WuDW3awMGD3ntOUZkkA+FR3q4MoOZWkVQGipVmE4EMIluBtImER3m7MoDqZxRpmvo0LMnAWrOJ\nQAaRrcCyu5YKYxw7BvPnqxL8yBH11a0bfPihd94UzaoMqppRVFSkVtWWOR4jYNV09KW320Tg3cpg\n1y645x61H1JIiPqKiYG//MV7q66tSCoDP7Z3L9x0k9peYMwY+Pvf4T//UZuD3XKLd/aDMaMyqK5N\nJFXBVVZrE3mrMvjvf9VxntOnw5Il8Ne/wvDhsGoV/OEPNZ+S5++kMvBT33wDd98NL7wA991X/rbX\nX4d//QsGDIAvv4SoKM/EcPq0emNp2dIz169OdW2iU6egUSPvxmJVjRpV/8ZnRpvIG5XBhx/Co4/C\n8uUweHD528aNg6lT1YekL75QH5gCjQwg+6H334fx49WLvmIiAPUPPmsW/OMf6lzibds8E4d962pH\nLzCjVdcmOn06sM8+Lqthw+qTgRltIk9XBm+9BU8/Dd9+WzkRANSpAwsXwoQJ0K8fZGR4Lharsuyx\nl8I16enw+OOwfj3ccEPN9x07FgoLYc4cSEoyPhZvnmNQVnVtIkkGV9mTQVWfBs1oE7VurV6Lntg6\n++xZ+Nvf1PGaNf1O2D8ktWmj2qo7dkCDBsbGYmVSGfiRCxfg3nvh5ZcdJwK7P/0JNm2Cn34yPh4z\nBo+h5jaRJAOlTh01WHr+fOXbzGgTBQWpleqeWGuweLFq/+j9nbj7bhg4UH2oCiSSDPzInDnQpYt6\nMetVvz5MmaISiNHMGDwGaRPpVV2ryIw2EXimVXT5snptz5zp3ONeeQU+/1wNOAcKmU3kJzZtgkWL\n4J13nO/RT50KS5dCQYGxMZlVGUibSJ/qkoEZbSLwzCByUhI0a6YmSzijaVP4v/+DSZNURRkIpDLw\nA0VFqj30+utqzrSzQkLgzjtVIjGSWZVBdW0iSQbl1ZQMvN0mAs9UBi+9pKoCVyYxDB8OcXFqHCEQ\naJpUBj5v3jyIjoa77nL9Gn/5C7z5ZtU9ZFeZWRlIm8gxq7WJjK4MNm+G3Fy44w7Xr/Gvf8Hq1bBu\nnXFxWVVJiVQGPq2wUE2be/FF964TEaFWYf7738bEdeKEWuF53XXGXM8Z0ibSx2ptIqMrg3/9Cx55\nRG2E56pGjdRY3DPPGBaWZUmbyMe99ppaOdmunfvXmjlTldWa5v61zFpjANIm0suKbSKjKoOcHLXw\nctIk9681frxKUj/84P61rEwGkH3YqVOqtfPEE8Zc79Zb1fhDZqb718rJMSZBuULaRPpYrU3UqpV6\nTdd0OJFeiYmqbWrEivM6ddQ002efdf9aViaVgQ974w01yNW5szHXs9nUfOwNG9y/1rFj3t+Gwk7a\nRPpYrU1ks0Hz5nD8uPvX+uEH9Vo2yr33wu7dahzCX0ky8FFnzsCrr8Ls2cZed8AAY5JBYaE54wVQ\nc5tI9ia6qqpkUFKiFi8avQpYr+uuU68dd2iaeg07O520JnXrqk3tnnvOuGtajWXbRDNmzCA8PJzw\n8HBGjRqO12XRAAASOklEQVTF8SsfF7Kzs6lfvz4xMTHExMQwdepUM8Iz3TvvQGys2o7aSP37G9Mb\nPX5cze82g7SJ9KkqGZw7pxKBGWM9oF4z7lYGBw+qxWZGT2ueNAm2boXt2429rlVYtjJISEggMzOT\nPXv20KNHD54rk5I7d+5MRkYGGRkZvPXWW2aEZ6qiIjVT4qmnjL92RAQcPqzaPO4wszKQNpE+1SUD\nM1pEdkZUBj/8oKoCoxNa/fpqzYG/VgeWXWcwZMgQal2J7OabbyY/P9+MMCzpk0+gd2+IjDT+2kFB\n0LcvbNzo3nWs2iaSZHBVdcnAjJlEdkYkgw0bVIXrCZMnq51Pc3I8c30z+cQ6g4ULF3LbbbeV/j07\nO5uePXsyYMAA1qxZY2Jk5njvPfWi9JQBA9xvFUmbyPqqOtPArJlEdka0ieyVgSdce63a+2vRIs9c\n30ymHm4TFxfH4cOHK31/3rx5JCQkADB37lyCg4MZP348AG3atCE/P59GjRqRkZHBqFGj2L17N02a\nNPFUmJayZ4+aiz1ihOeeY8AAeP55965htTbRxYtqEZwceXmVVdtE7uyRdfYs/Pijqpw95f77ISEB\n/t//869jMk09zyA1NbXG2z/44AOSk5PLffoPDg4mODgYgJiYGHr06MHevXvp169fpcfPmTOn9M+x\nsbHExsYaEreZ3ntPTXNzZ1WlIzfdpAbKLl5Uc6xdcfy4tdpE9qrArIFRK7Jqm2jvXtcfv3Wrap96\nMulHR6tp0998A8OGee55vCUtLY20tDRyctT2HTUx5XCblJQUXnzxRdauXUu9Mv+yhYWFNGnShFq1\napGdnU1mZiadq5loXzYZ+IPiYvjoI8+vhGzSRC0Y27nT9U9YhYXmtYmCg1UVcOnS1aQpLaLKqkoG\nVmgTuTNm4MkWUVn33w/vvusfycD+QXndOti/H3Jzq997w5Qxg4ceeogzZ84QFxdXbgrpmjVriIqK\nIioqioSEBF577TWaN29uRohel5QEPXoYt8isJu6sNygqUlP7zHpTsdkqVweSDCqzamXgTjIwen1B\ndf74R0hNNX7bdzNZ9tjLffv2Vfn9MWPGMGbMGC9HYw3vvmvMXit69O+vXuwPPuj8Y+1VgZktGfu4\ngX2RmZxyVlnDhpX36jd7zMCdAWRNU5XB228bG1NVGjeG225TlfqMGZ5/Pm+w7DoDUV5ODmzZ4t52\nvM5wZ0aRmYPHdhVnFEllUNm116oqrqTk6vfMbhO5Uxns26f+n9q2NTam6thbRUZs7GgFll1nIMpb\nvFhNafPWNgE33KC2vDh0yPnHmjl4bCdtIsdq1VJv/GfOXP2eFdpEx4+79gbrrRaR3cCBqh1qxPYt\nVuAT6wwCXUkJvP++91pEoF4U/fq59kI3c/DYruL0UkkGVas4bmB2m6hePTWDrap1Io788IPnFptV\nxWZTv5Pvv++95/QkaRP5gM2boUED6NnTu8/r6iCytIl8R8VkYHabCFxvFXm7MgA1kLxypZqG7euk\nTeQDPvtMnVHsbf37u7YthVXbRLJjaWVVVQZmtongaqvIGWfOwIEDag2AN4WFQZcuaosKXydtIovT\nNHVQhxkTqLp0ce0YQmkT+Q6rtYnAtbUGOTlw/fWuL5J0x5gx6nfU10mbyOK2bVMLpzyxKZ0jrVqp\nedSXLjn3OGkT+Q5/aRPl50NoqGficeTOO1Wr6PJlc57fKJY9z0AoiYnqxWbGnP3ataFFC7WltTPM\n3KTOTmYT6WPFNpEraw3y8sxLBh06qOf+7jtznt8oUhlYmKap8QIz19iFhqpfNGdYpTKQZOCYFdtE\nrlQGZiYD8I9WkQwgW1hmptqPyJM7MDrStq3zycAKA8jSJtLHqm0iVyoDby02q8qdd8KKFeUX8Pka\nGUC2sMREteLYzG0dQkNVP9YZVhhAljaRPlZtE/nSmAFA167QtKn7h0KZSdpEFmbWLKKypE3k36RN\nZBxfbxVJm8iifvpJ/UJUcUyDVzmbDOxvwGa/oUibSB8rtolcHUA2s00EqlWUmOi7exVJm8iiEhPh\n9tsdZ2pPc3bMwApVAUibSK+KR19aoU3kbGVQVKSSmNk72ffooc7SSE83Nw5XSZvIopKSVDIwm7Nj\nBlYYPIbybSJNUytUJRlUZtU2kTOVQX6++tBi9il2Npv6nf38c3PjcJWsM7Cg48fVOa4DB5odifol\ny8/XP0vCCoPHUL5NVFSkVqZ68qhQX1U2GdhPh7tyqqxp7JWB3naLFcYL7EaMgK+/NjsK10hlYEGp\nqTBoENSta3YkahfJRo3g2DF997dim0gOtqle2QNu7C0isz9h162rvspurV0TK4wX2A0YoMb79P6+\nWIkMIFvQ11/D8OFmR3GVM+MGVmwTyXhB9cpWBlZoEdk50yqyUmUQHAyxseoDna+RAWSL0TRISbFW\nMnBm3MCKbSLZsbR6ZZOBFWYS2Tmz1sDsNQYVDR+ufod9jbSJLGbnTnV2QadOZkdylTPTS63YJpLK\noHoVKwOzZxLZOTOjyEptIoBhw1R172urkaVNZDFff61eTFbiTDKwwiZ1IG0iverWVW9axcXWahM5\ns9bASm0igI4dVSW6c6fZkThH2kQWY7UWETg3ZmCVysDeJtI0SQY1sdmuVgdWahM5WxlYKRmAb7aK\npE1kIadPw5YtagDKSpwZM7DKAHKdOqrkvXhRkoEj9mRgtTaRnsrg4kV1v5AQz8fkDF9NBtImsohv\nv4W+fdWYgZU4O2ZghTYRXG0VSTKoWdlkYJXKQO8A8q+/QsuW1ltDMniwWolsn7brC6RNZCFWm1Jq\nZ08GehYBWaVNBFdbRZIMaubLbSIrtohAVVj9+vnW2chSGViEpsFXX1kzGTRsqF4kJ0/WfD9Ns06b\nCK7OKJJkUDNfbhNZNRmA77WKpDKwiP374cIFtdmVFekZNzh3DoKCoH5978TkiLSJ9PHlNpF9XyIr\nGjZMJQNf2cVUBpAtYvVqGDrU/K0AqqNn3MBKVQFIm0gvq7aJfL0yiIhQU3b37zc7En0s2yZ66qmn\niI6OpkePHgwaNIhffvml9Lb58+cTHh5OZGQkq1evNiM8w61da71ZRGXpSQZWGjwGaRPpZcU2kd7K\nwMrJwGZTv9Nr15odiT6WbRM9/vjj7Nixg8zMTO666y6eeeYZANLT01mxYgW7du0iJSWFyZMnU1xc\nbEaIhtE09YIZPNic509LS3N4Hz1rDaw0eAzWbhPp+Zl7ixXbRE2bwm+/OW6xOLP62Iyf+eDBvpMM\nLNsmalBmfuWZM2do3bo1AMnJyYwbN46goCDatm1LREQEmzdvNiNEw/z8s9odtH17c55fzy+JnjED\naRPpZ8VkYKU2UXCw+p1wNDXTmX2JzEoG69Z5/WldYtk2EcDs2bO5/vrrWbx4MU888QQA+fn5hJb5\n1w8NDSXP2UN6LWbtWrVltZVJm8h/WbFNBI5bRSUlcOgQtGnjvZicdcMNamJIdrbZkThmapsoLi6O\nyMjISl9ffPEFAHPnzuXgwYPcd999TJ8+3VNhmG7dOvNaRHrpTQZSGfge+9GXVmoTgeNB5KNHoXFj\nVUFYlc2mPuj5QqtIT5sIzWQ5OTla165dNU3TtL///e/aP/7xj9LbRo4cqa1fv77SY6KjozVAvuRL\nvuRLvpz4io6Orva92JSF3llZWXTo0AGAzz//nMjISADi4+OZMmUK06dP5/Dhw2RmZtK3b99Kj9++\nfbtX4xVCCH9nSjKYOXMmBw4c4OLFi3To0IF3330XgN69e3P77bcTFRVFrVq1WLBgAXXq1DEjRCGE\nCCg2TfOVNXRCCCE8RVYg+6E5c+YQGhpKTEwMMTExfPXVV6W3+eOiPqtISUkhMjKS8PBwXnjhBbPD\n8Vvt27cnKiqKmJiY0jZyYWEhcXFxREVFMWzYME6cOGFylL5HKgM/9Mwzz9CwYUNmzJhR7vvp6elM\nmTKFjRs3cvjwYQYOHMhPP/1EcHCwSZH6jwsXLtCtWzfWr19PSEgI/fv3Z+HChcTExJgdmt/p0KED\n6enpXFdmettDDz1Ep06dmD59Oq+88gpZWVm8+uqrJkbpe6Qy8FNV5Xh/XNRnFZs2bSIiIoK2bdtS\nu3Ztxo4dS3Jystlh+a2Kr+9Vq1YxceJEACZMmCA/exdIMvBTb775Jt27d2fChAkUXlnd44+L+qwi\nLy+PsLCw0r/Lz9ZzbDZbaUvojTfeAKCgoIBmV1ZFNm/enKNHj5oZok+y2BlCQq+4uDgOHz5c6ftz\n585l2rRpPP3004AaP3j44YdZsmSJt0MMKDarbknrhzZu3EjLli0pKChg+PDhdOvWzeyQ/IIkAx+V\nmpqq636TJ09myJAhgPq0mpubW3pbxU+zwnUVf7a5ubnys/WQli1bAtCiRQvGjBnDli1baNGiBceO\nHaN58+YUFBSU3kfoJ20iP1S2RE5MTCQiIgJQi/qWLl3KpUuXyMvLq3ZRn3DejTfeSGZmJvn5+Vy8\neJFly5YxYsQIs8PyO+fOnePcuXMAnD17lpSUFCIiIoiPjy+tfpcsWUJ8fLyZYfokqQz80MyZM9m5\ncyfFxcW0a9eO9957D5BFfZ5Ur1493n77bYYNG0ZJSQkTJ06kV69eZofld44cOcIf/vAHbDYb586d\nY9y4cYwePZqBAwcyduxY3n//fVq1asWyZcvMDtXnyNRSIYQQ0iYSQgghyUAIIQSSDIQQQiDJQAgh\nBJIMhBBCIMlACCEEkgyEHzt58iRvv/126d8PHTrEXXfdBcCOHTvKbe3tij/96U8kJia6dQ0hrEKS\ngfBbv/32G2+99Vbp39u0acPy5csByMjIYNWqVW5d32azGbIn0eXLl92+hhDukmQg/Nbjjz/OgQMH\niImJ4bHHHiMnJ4fIyEguXrzI008/zdKlS4mJiWHZsmVs2bKF/v37Ex0dTe/evdmzZ0+l65WUlPDA\nAw/QtWtXhg8fztGjR0u3Ut6wYQP9+/cnKiqKIUOGkJ+fD8D3339Pt27d6Nu3L48++mjped+LFy9m\n9OjRDBs2jKFDh3L27Fn++Mc/Eh0dTURERGnSunTpEg8++CDR0dF0796d1157DVD7Sg0aNIiYmBgi\nIyP57rvvvPEjFf5ME8JPZWdnaz169Cj9e1ZWVunfFy9erD300EOlt50+fVorKSnRNE3TUlNTtVGj\nRlW63scff6wNHz5c0zRNO3LkiNakSRMtMTFRu3DhgtarVy/t2LFjmqZp2qeffqqNHz9e0zRN69Kl\ni7ZlyxZN0zRt9uzZWmRkpKZpmrZo0SItNDRUO3XqlKZpmvaXv/xFW7JkiaZpmvbbb79pnTp10k6d\nOqW9+uqr2nPPPadpmqadP39e69Wrl/bzzz9rL774ovbCCy+UxnbmzBl3f1wiwMneRMJvaTXstKJp\nWrnbCwoKGDt2LDk5OdSqVYuioqJKj1m/fj1jx44F1M6Zv/vd7wDYuXMn+/fv5/e//z2g2j4hISEU\nFBRQXFxMnz59ABg7diyff/556fXi4uJo2LAhAKtXryY1NZV//vOfgKoIDh48yOrVq9m3bx+fffYZ\nAKdOneKXX36hX79+TJo0iaKiIhISEmQfJOE2SQZCALNnz2bkyJFMnTqVnJwcYmNjK93HZrNVm2Ci\no6NZt25due9VPGCl4mOvvfbacn9PSkqiQ4cOla79zjvvlG5DXta6detITk7m/vvvZ/r06dxzzz1V\nxiaEHjJmIPxW/fr1S7c7ruiaa64pd9v58+dp1aoVAB9++GGVjxk4cGBpL7+goIBvv/0WgKioKA4e\nPEhGRgagPtX/9NNPtGzZkuDgYNLT0wFKH1uVYcOGlRvszszMLP3+ggULKCkpASArK4uioiLy8vJo\n2bIlkyZNYtKkSWzdutXxD0SIGkgyEH4rJCSEnj17Eh4ezmOPPVZu9s+QIUNIT08nOjqaZcuWMWvW\nLGbNmsWNN95IcXFxlbOExo4dS9u2benatSv33HMPAwYMACA4OJjly5czZcoUevbsSc+ePVm7di0A\n77//PhMmTOCmm27i9OnT1K9fH6g8E+nZZ5/l6NGjhIeHExUVxWOPPQbAtGnTSs+rjo6O5r777uPi\nxYv897//JTo6ml69erFs2TIeeeQRj/4shf+TLayF8KCioqLSBPD8889z8ODBchWAEFYhYwZCeFBS\nUhLz58+nqKiIsLAwPv74Y7NDEqJKUhkIIYSQMQMhhBCSDIQQQiDJQAghBJIMhBBCIMlACCEEkgyE\nEEIA/x/QySImXNYyRgAAAABJRU5ErkJggg==\n",
+ "png": "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\nAkoGhBBCAPx/Kt27827mDS4AAAAASUVORK5CYII=\n",
"text": [
- "<matplotlib.figure.Figure at 0x331be90>"
+ "<matplotlib.figure.Figure at 0x423ebd0>"
]
}
],
- "prompt_number": 2
+ "prompt_number": 1
},
{
"cell_type": "heading",
@@ -162,30 +147,15 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'linalg', 'info']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "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\n",
+ "png": "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\nMWOS6urqzIVl1KhRKdevX582ZsyYJEtLS7q5uXldZGTkdGH9ZWVl9i4uLgUd1SdqNxG/3wAAjo6O\nxaK/jSy/7cuKVpnIgK2tbUVxcbGj8BgRaaWlpQ52dnbl4td+/PHHfw0dOjQ7Pz/ftaGhwey33377\nXtzwKIthr6SkpL/o/yW1ZWdnVy6tX521Y2trW1FUVOQkPGYymcZ0Ot1SUlvisFgso4sXL74fHR39\npo2NTaWNjU1lYGDgl1lZWZ4PHjzwkCYr2q/i4mLHVatWHdq3b9+a2tpai7q6OvNhw4Y9QhHbx5Il\nS06cPn160alTpxa/9957lwwMDDid9U8Im83u8e67717ZsGHDHzU1NVZ1dXXm06dPjxTW7+DgUJqf\nn+/aWT8B2t9vYf9F75e6VvW6IlplIgPvv//+xYiIiLejo6Pf5HK5+oGBgV8aGhq2vPbaawni1zIY\nDBNTU9Omnj17Nufk5Az+66+/PiZpc/PmzT+wWCyjx48fux8/fnzpvHnzLohf8957712S1i9ra+vq\ngoICl47aWLBgwbng4OBlWVlZnmw2u8f//ve/LWPGjEkS/+sriWvXrs3W09PjPXnyZEhWVpZnVlaW\n55MnT4aMHz8+/uTJkx8CyLbyxGQyjWk0Gvbp0+cFRVE6wcHBy0QNrgAAixYtOn316tV3zpw588GH\nH354srM6ReFwOAYcDsegT58+L3R0dKjr169Pu3nz5hTh+RUrVhwNDg5eFh0d/SZFUTrl5eV2ubm5\nbgDt79/06dMj8/LyBp07d24Bj8fTu3DhwrycnJzBAQEB4cJrZPnOLytaZSIDgwYNyjt9+vSidevW\n/dm3b9/nERERb4eFhc3Q09PjiV+7Y8eOr86ePbuwV69ejatWrTo0f/7886J/rWT9yzVhwoQ4V1fX\n/EmTJt3++uuvt0+aNOm2UF5Yh5ubW660fn333XdbN2/e/IO5uXndzp07vxBvw9/fP+rXX3/d+O67\n716xtbWtKCwsHHD+/Pn5svTv5MmTHy5fvvyYvb19mZWVVY2VlVWNtbV19dq1a/eePXt2IZ/P15XF\n/2bo0KHZX375ZeDYsWMT+/XrV/Xo0aNh48aNuyt6jYODQ6m3t3e6jo4OJX5OFEntmZqaNu3Zs+fT\n999//6KFhUXtuXPnFsyaNStEeN7X1zc1ODh42fr164N69+5d7+fnFyscFX722We7L1++PNfCwqL2\n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\nRK5CYII=\n",
"text": [
- "<matplotlib.figure.Figure at 0x35cfc10>"
+ "<matplotlib.figure.Figure at 0x35677d0>"
]
}
],
- "prompt_number": 3
+ "prompt_number": 1
},
{
"cell_type": "heading",
@@ -239,30 +209,15 @@
"metadata": {},
"outputs": [
{
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stderr",
- "text": [
- "WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'linalg', 'info']\n",
- "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
- ]
- },
- {
"metadata": {},
"output_type": "display_data",
- "png": "iVBORw0KGgoAAAANSUhEUgAAARMAAAEXCAYAAACOOKCuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXdY09f3x99hKCpbZYM4EZVhAevAjXtb/am1rtZvW1u7\na7fVtlp3HbVaJw60jjoAt6KouAUUXKgoIls2BAgZ5/dHmpRAgIzPTYDm9Tw++lnnnMTk5N5zzz2H\nR0QEAwYMGNASI30bYMCAgYaBwZkYMGCAEwzOxIABA5xgcCYGDBjgBIMzMWDAACcYnIkBAwY4weBM\nOMDd3R0RERE60bVw4UJMmzZNJ7ouXLiAVq1awcLCAmFhYTrRaaD+YnAmFXB3d0fTpk1hYWEBGxsb\nvPnmmygoKKj1OR6PBx6PpwMLoZYed3d3nD9/XmNdCxYswJdffomioiKMHj262vv69esHW1tblJeX\na6yLC3bs2AFjY2NYWFjI/3z88ccay+vXrx+2bdvGoYUNG4MzqQCPx8OxY8dQVFSE+/fvIz4+HgsW\nLGCmTyQSqf2MOjmGPB5Prfsrk5qaik6dOtV4T1JSEm7evAk7O7taRy8SiUThWJPXXxu9evVCUVGR\n/M+6des0lqXNDwQRafXe10cMzqQanJycMHToUDx8+BAA8Ndff6FNmzawsLBAjx49cPfuXaXP3bhx\nAwEBAbCysoKtrS1mz54NgUAgv25kZIQNGzbAw8MDHTt2rPJ8UlISjIyMsGXLFri6usLW1haLFi2q\n1s7q7Jo2bRqSk5MxatQoWFhYYOXKlUqfX7NmDVxcXGBpaYnBgwfjxYsXAIC2bdsiKSkJo0aNgqWl\nJYRCodLnd+3ahaCgIEybNg07d+5UuDZz5kzMmTMHw4cPh6WlJS5cuAB3d3csX74cPj4+sLS0hFgs\nxqJFi9C6dWuYm5ujXbt2+OuvvwAA5eXlaN68Oe7duyeXmZWVhWbNmiEnJ0epPcq+wFu3boWHhwfM\nzc3h4uKCNWvWKFzfu3cvPD09YWFhgdatW+PkyZP4/vvvcfnyZcydO1dhhBMREYEuXbrAwsICXl5e\nCiO/fv364YcffkCvXr1gYWGB58+fK7WxwUIG5Li7u9O5c+eIiCg5OZk6depE8+bNozt37pC5uTlF\nRUUREdHatWvJ2dmZBAKB/LmIiAgiIoqNjaWYmBgiIkpNTSUvLy9asmSJXAePx6NRo0ZRUVGR/PmK\nPH/+nHg8Hs2aNYvKy8vpyZMn5ODgQGFhYUREtGDBAnrrrbeIiNSySxnh4eFkZ2dHDx8+JJFIRF9+\n+SX5+fkpvB81PU9E1LZtWwoJCaHHjx+TqakpZWZmyq/NmDGDbG1tKTo6moiIBAIBubu7U7du3Sgr\nK4vKy8uJiOjo0aOUnZ0t/3fjxo0pJSWFiIg++OAD+vrrr+Uy16xZQ6NHj1ZqS3BwMAUGBlY5f/r0\nabm8q1evkrm5OV27do2IiM6fP082NjZ0+fJlIiLKzMykhIQEIiLq168fbdu2TS4nPT2dLCws6ODB\ng0REdPjwYbK0tKSMjAwiIurbty+1adOGEhMTSSKRkEgkqvG9a2gYnEkFWrVqRebm5mRtbU0ODg40\ne/ZsKi4upu+++07+Ba547+nTp4mo5i/d77//TsOGDZMf83g8+ZdfGTJn8uzZM/m5H374gaZOnUpE\nis5EG7uIiN5880364Ycf5MelpaVkZmYm/zLV9vzly5fJzMyMCgsLiYjIx8eHVq9eLb8+c+ZMmj17\ntsIz7u7uFBISUq1MIiJ/f3/av38/ERFdv36d3Nzc5Nf8/PzkX+bKBAcHk4mJCVlbW8v/3Lhxo8p9\nEyZMoGXLlhER0bRp0+ibb75RKq9fv360detW+fHmzZurOKs+ffrQn3/+Kb9/0aJFNb62hoxhmlMB\nHo+H0NBQ5OXlIT09HVu2bEGzZs2QlZUFV1dXhXtdXV2RmZlZRcb9+/cxePBgtGjRAtbW1vj666/B\n5/MV7nF0dKzVFhcXF/m/nZ2dlepSxy5lZGVlwc3NTX5sZmaGFi1aqPz8zp07MXjwYFhYWAAAJk6c\nWGWq4+DgUOW5yq9/8+bN6NKlC6ysrGBjY4M7d+7I37PXX38dTZo0QWRkJB49eoTExMQag8Hdu3dH\nXl6e/E+3bt1w5MgR+Pn5wdraGjY2NggLC5PLz8jIQJs2baqVVzFukpmZWeX9dnNzQ1ZWVrWv7b+E\nib4NqA/Y29sjKSlJ4VxKSgrs7e2r3Pvee++hb9++CAsLg5mZGdavX4/9+/errTMlJQWtW7eW/1vZ\nl7I2u2oLINrb28tjJABQVlaG7Oxspa+rMqWlpThw4AAkEon8CyQQCJCfn4+4uDh4e3vXKgMAnjx5\ngk8//RQXL15EQEAAACAgIEAh9jFjxgyEhITA3t4eEydORKNGjVSSDQDFxcWYMmUKDh06hGHDhsHI\nyAgTJ06Uy3dycsKzZ8+UPlv5/XNwcMCpU6cUziUnJ6N3794q29OQMYxMVGDChAkIDQ3F1atXQURY\nv349hEIh+vbtW+XekpISmJmZoXHjxnj27Bk2btyokc7FixejvLwcT58+xfbt2/F///d/attla2tb\nYxBw0qRJ2Lp1Kx49egSRSIQff/wRnTt3RocOHWq17+jRozAxMcHDhw9x9+5d3L17Fw8fPkTv3r2x\na9cuAKqtPJWUlICIYGVlBSLC3r17qwS333rrLRw+fBh79uzB9OnTa5VZEaFQCKFQCAsLCxgZGSEi\nIgKnT5+WX585cyY2b96Mq1evApCOPp48eQKg6vs3cuRIxMXF4fDhw/L3IDY2VmGkpMprbqgYnIkK\n+Pr6YtOmTXjrrbdgaWmJkJAQHDt2DI0bN65y74oVK7Bjxw5YWlpi5syZmDBhgsIvnKrLjd27d0fb\ntm0REBCA999/H6NGjZI/L5NRm13z5s3D/PnzYW1tjd9++62KjlGjRuGrr77CwIEDYWNjg9jYWBw6\ndEgl+3bt2oW3334bLi4usLOzg52dHezt7TF37lzs3bsXYrFYpfwbHx8ffPjhh/D394eDgwOio6PR\nq1cvhXtcXV3x2muvwcjICIGBgdXKUqbPxsYGK1aswPjx42Fra4udO3di5MiR8uv9+vXDunXrMHPm\nTPmKmGyk8tFHHyEkJARWVlb49NNP4eDggEOHDuHHH3+Eubk55s+fjyNHjiiMGnWVb1Qn0V+4xoAy\nZAFYsVisVzuWLFlC7du3p86dO9OaNWuIiCgnJ4eCgoLIy8uLBg8eTHl5efL7p02bRp06daLDhw8z\nseftt9+m+fPnM5FtgBsMIxMDVYiOjkZISAji4uJw9+5dHDt2TJ7AN2LECMTFxWHYsGHyhL579+6h\nTZs2iIuLQ0hICOf2pKWl4ciRI5g1axbnsg1wh8GZ1EH0PVROSEhA9+7dYWZmBmNjY3lA+cSJE/J9\nQW+99RaOHz8OADAxMQGfz4dAIICJCbcx/fnz58PT0xOff/65PCBtoG7CI/oPR4wMKCU+Ph7jx4/H\njRs3YGZmhqCgIHh7e2Pv3r0oLCyU32dpaSk/njt3LqKiorBmzRr069dPT5Yb0CeGpWEDVfDy8sLn\nn3+Ofv36oUmTJvD19a11tLR+/XodWWegrmKY5hhQypw5cxAXF4cbN27AyckJHTt2RMuWLZGdnQ0A\nePXqFezs7PRspYG6hMGZGFCKzGlkZGRg//79mDRpEoYPHy4PsIaEhGD48OH6NNFAHcMQMzGglN69\ne6OwsBCmpqZYsWIF+vfvj9zcXEyaNAmZmZlwcHDAgQMHYG1trW9TDdQRDM7EgAEDnGCY5hgwYIAT\nDM7EgAEDnGBwJgYMGOAEgzMxYMAAJxiciQEDBjjBkAFroFaICCKRSP6HiGBqagoTExOYmJjofS+R\ngbqBwZn8B5FIJMjJyUF6ejrS0tLkf6empiItLQ2ZmZnyv4VCISQSCYyNTcDjGYPHM/mnhYYIEokI\nYrEIRkZGaNSoEWxsbODi4gJnZ2c4OTnB0dFR/rfs3y1atICRkWFA3BAx5Jk0cDIzMxEdHY3o6Gjc\nuHED8fHxSE9Ph4WFBaytreHs7IzWrVvDyckJVlZWcHd3R6NGrnj61BGxsfa4eNEMJiZGCAriYeBA\nYMAAwNgYOH8eiIgAzp0jlJRI0LevAH5+WWjXLg2A1Dndv38fhYWFcseVnJyMkpISODo6wsfHB6+9\n9hr8/f3h5+f3n66d2lAwOJMGREXHER0djZs3b4LP5yMgIAB+fn7w8vJCt27d4ObmBjMzM4VnCwqA\nH38ETp4E8vKkTkPmPNq2BWqayTx/LnUsERFSJ2NuDgwZAvzyC9C8ueK9AoEAKSkpuHPnDo4dO4YX\nL17g7t27MDMzg5eXF7p3725wMPUUgzOpx+Tk5ODEiRMIDw/HtWvXUFhYCA8PD/Tv3x9+fn7w8/ND\nmzZtao1pJCUBI0YAgYHABx8AXl5ATTORyMjIassMEAH37gFbtgCnTgHHjwPt29f8OogIL168wPXr\n1xEbG4vY2FhER0fD2NgYgYGBGD16NEaMGIGWLVvWLMiAftFDdTcDWpCQkEArVqygPn36kIWFBfXq\n1Yu2bdtGT58+JYlEora869eJHB2J1q5V/ZkLFy6odN/mzUT29kQXL6ptFkkkEkpMTKQdO3bQG2+8\nQZaWluTn50dLly6lBw8eaPRaDbDFMDKp44jFYly7dg1hYWEIDQ1FTk4OJkyYgNGjR6N///5o0qSJ\nxrL//huYMwcIDgYq1FjmlLNngalTgVWrgH+KtGmEQCDAhQsXEB4ejrCwMDRu3BijRo3CmDFjEBgY\nyHmFNwPqY3AmdRAiwqVLlxAcHIzQ0FC0atUKo0ePxujRo+VV2rWTDyxbBvzxBxAWBnTtypHh1XD/\nvtRZTZ8OLFxYc/xFFYgIsbGx2LdvHyIiIpCUlIShQ4di1qxZGDhwoGGpWk8YnEkdorCwELt27cKG\nDRsAAO+++y7GjRuHVq1acaZDKJSORmJigPBwwNlZfRk1xUyqIzMTGDNGGszdtg2oFP/VipSUFGzZ\nsgV79+6FkZER5syZg5kzZxrKI+ga/c2wDMiIi4uj999/n6ytrWnw4MF0+vRpJjGB3FyiAQOIRo0i\nKirSXI6qMZPKlJQQTZhA1KsXUVaW5vqrQyKR0OXLl2nKlClkYWFB77zzjrxpugH2GJyJnigrK6O9\ne/dSjx49yM7Ojn766SdKTU1lpi8piahjR6JPPiESiZipqRWxmOibb4jatiV68oSdnoyMDFq8eDG5\nurpS9+7daefOnVRaWspOoQGDM9E1mZmZ9O2335K9vT0NHDiQDh06ROXl5Ux1SiREQUFEP/3EVI1a\nrFwpHaGwXpQRCoV0+PBheu2116hFixY0b948SktLY6v0P4rBmeiIwsJCWrBgAdna2tKQIUPo4cOH\nOtMdFkbk6UnElc/SdJpTEZGIqGtXon37tLdHVR4/fkwff/wxWVtb0zfffKPQkdCA9hg2STBGIBBg\n7dq1aNeuHRITE3H79m2cOnUKHTt21In+8nLgiy+A1asBU1OdqFQJY2Ng7Vrgq6+A0lLd6Gzfvj3W\nrl2LO3fuIDk5GR06dMDKlStRqisDGjr69mYNFZFIRLt27SJ3d3fq378/xcbG6sWOlSuJhg/Xi2qV\nmDiR6Oef9aP7/v37NHbsWHJwcKCtW7eSUCjUjyENBIMz4RiJRELh4eHk6elJPXr0oIuapH9yRGYm\nUYsWRI8e6c2EWnn+nKh5c6KUFP3ZEBUVRX379iVPT086fPiwIbtWQwzOhEOuXr1KgYGB5OnpSXv3\n7tX7h/K994g+/ZR7uVzETCry3XdE06ZxKlJtJBIJnThxgjw9PcnPz48iIyP1a1A9xOBMOKC4uJg+\n/PBDcnBwoODgYBLpc+31H+7eJbKzk+aWcA3XzqSoiMjJSbpPSN+IxWIKCQkhV1dXevfdd6mgoEDf\nJtUbDAFYLbl48SK8vb2RmZmJe/fuYebMmTA2NtarTUTAp58CCxYANjbcy+e6Mbm5OfDrr1Kb9Z2P\nbWRkhKlTpyI+Ph4SiQSenp44e/asfo2qL+jbm9VXZKMRJycnCg0N1bc5Chw+TNSlC1F9iieKxUT+\n/kQhIfq2RJFjx44ZRikqYhiZaMClS5fg4+OD58+fIz4+HqNHj9a3SXIEAuDLL4HffgNYbaSNjIzk\nXKaREbBmDfDNNwCfz7l4jRkxYoR8lNK5c2ecO3dO3ybVXfTtzeoTxcXF9NFHH9XJ0YiMZcuke29Y\nwnXMpCKTJxMtWMBMvFYcPXqUXFxc6N1336XCwkJ9m1PnqFfOZNasWWRnZ0ddunSRn/v+++/J29ub\nOnfuTL1796bExEQiInr+/DmZmZmRr68v+fr60pw5c+TPHDlyhDw9PWmaGksIly5dojZt2lBQUBDl\n5ORw96I4RCKRBjLj4/VtieY8e0Zka6vf/UM1kZ+fT7NnzyY3Nzc6e/asxnJEIhH5+vrSyJEjiYho\nwYIF5OzsLP+8njhxQn7vtGnTqFOnTnT48GGt7WdJvXImly5dopiYGAVnUlRh++u6deto+vTpRCR1\nJhXvq8ikSZNILBbT/Pnz6c6dOzXqlEgktGrVKnJwcKizoxEZ9+8TtWql3X6XgoICKisrkx+fOXOG\nMjIy5Mf79++nlApJIUePHlW4npaWRgKBQHMDiKhTJ6KbN7USwZx9+/aRnZ0dLVq0SKMUgFWrVtGb\nb75Jo/4ZRi5cuJBWrVpV5b74+HhasGABiUQiGj9+vNZ2s6RexUx69+4Nm0rLE+bm5vJ/FxcXq1SE\nWCKRQCAQoKSkBE2bNq32vrKyMsyYMQNbtmzBjRs36lRsRBnnzgGDBtVcfIiIIBQK5ce7d+/G06dP\n5cdnzpxBTk6O/NjDwwNWVlby42HDhuHRo0fy4169eilcj46ORm5urvz4zz//RHp6uvw4PT0dVMuS\nzaBB0tdSl5k0aRJiY2MRFhaGKVOmoKSkROVnU1JScOLECcyePVv+XpD0h73KvSYmJuDz+RAIBHW/\nmpxeXZkGKBtxfPfdd+Tq6koeHh7yzVvPnz8nc3Nz8vHxoR49elBERIT8/tOnT5O3tzd9/vnn1epJ\nS0uj7t2704QJE6i4uJjNi+GYUaOqbpzLzs6mzMxM+fG+ffsoISFBKz3axEwOHDhA2dnZ8uOIiIgq\nu6bDw6V1V+oDpaWlNGXKFPLy8qLk5GSVnpkwYQLFxMRQZGSkfJqzcOFCat26NXXs2JGmTp2qMJX+\n8MMPycfHh2msigsahDORsWTJEpo5cyYREQkEAvlSXkxMDDk5Oam8S/TmzZvk7OxMv/zyi96zWFWl\nvJzI0pIoKalY4UN95coVev78uf4Mq4Xr16/L98QIhUIKDQ2lwkIic3MiPl/PxqmIRCKhZcuWkZOT\nE125cqXGe8PDw+mDDz4gIqlTljmTV69ekUQiIYlEQj/++CNNnTqVud1c06CcyYsXL8jDw0PptcGD\nB9O1a9dqlb9nzx6ysbGhkLqW8FAD+fn5FBUl3dIfGxtLDx480LdJGiEWi+nu3btERBQYSHT4cEG9\nei0nTpygli1b0tatW6u959tvvyUXFxdyd3cnBwcHatq0aZWFgNTUVOrQoQNrczmn3juTZ8+eyf+9\nbt06mjBhAhER5eTkkFgslj/j5OREr169qlauSCSir7/+mlq3bk1xcXGMrOeex48fU2hoKC1YQPTV\nV7rRqYvh9sKFRB9/XKygqz6MEu/fv08uLi70ySef1LoLueI0p+JUdN26dTRu3DimdrKgXjmTyZMn\nk6OjI5mampKLiwtt27aNxo0bR97e3uTp6UnDhw+XV9H6+++/qXPnzuTl5UVdunShv//+u1q5BQUF\nNGTIEOrRo0eNDqcuUF5eTr/88kuV8716EZ05oxsbdOFMrlwh8vVVPHft2jWFJdO6Sm5uLg0ZMoSC\ngoIot4bNURcuXJCv5kydOpW8vb2pY8eONGTIEIUVs/rCf746fW5uLoYMGYIuXbpg8+bNMK1LFYT+\nISUlBRYWFgqrJhUpLJRWmc/KArRoo1OnEAqBFi2AJ08AOzvl9xw+fBi9e/euk53+RCIRPv/8c5w7\ndw6RkZGwq+5FNCDq1dIw12RlZaF///7o168ftm/fXicdCQDEx8fX2Cvn4kXg9dcbjiMBpFXh+vaV\n9i6ujqCgoCo9k+sKJiYmWLt2LYYPH46+ffsiLS1N3yYx5z/rTNLS0hAYGIjevXtj+fLldapxU1xc\nHMLDw+XHw4YNg4WFRbX3nz0rzc3QFSz25ihj0CDpa6sOS0tL+ftSXl6OxYsX68QuVeHxeFi5ciVm\nzJiBvn37Ijk5Wd8msUXf8yx9kJycTO3ataNFixbp2xSllJWVqRVs9PQkun2boUGV0FW+w4MHRK6u\nmmX01rW2FkuXLiUXFxf5do+GyH/OmaSmplLbtm1p+fLl+jZFjkQioZ9//lmjGqQpKdKyh3V1L4s2\nSCREzs5Ejx+r/+yVK1fqXLW09evXU6tWrejFixf6NoUJ/6kAbFZWFvr06YPBgwdj3bp1kEgkKC0t\nRbNmzfRtGohIo6nWzp3A8ePAgQMMjKoDzJwJdOsGfPCBdnLy8vKqbMXQFSUlJWjcuDGMjY2xZs0a\n/PHHH7h48SKcnJz0Yg8r/jMxk9zcXAwaNAj/93//h3Xr1gEA+Hw+du/erRd7bt68iRMnTsiPNY3Z\nJCQAPj5cWaUauoqZAICvL1BhK5BGSCQS7N69u9Y9Qaz466+/UFhYCAD49NNPMXbsWPTr1w9ZWVl6\nsYcVdXznEDcUFhZi0KBBGDJkCH766Sf5eQsLC7z//vt6sSkgIICToG9hIdDAfuAUsLQEioq0k2Fk\nZISPP/5YfiwSiXS6ae6dd95ROF6xYgWaNWuGoKAgREZGwtbWVme2sKTBj0zEYjGmTJkCBwcHLFu2\nrNovcEZGBgoKCpjasn79euTn5wPQfCRSmcJC6RdOl3BdA7YmLC2lr5FLTpw4gbt373IrtBJ8Ph+p\nqanVXl+wYAGCgoIwceJEhV3c9ZkG70y+//57lJaW4ujRozV+gRs1aoSrV68yteXdd9+FtbU1pzKL\nioAaVo3rPVyMTCozevRo+DCeG169erXGvCUej4cVK1agoKAAn3/+OVNbdEWDdiYhISE4cOAADhw4\nUGtCmq2tLYYNG8apfiLCmTNn5MeNGjXiVD6gn5GJLmMmFhbcj0wq8vjxYxxgEL0eNGhQrVmvxsbG\nOHfuHM6ePYstW7ZwboOuabDO5NatW/j4449x5MgRtGjRQq1nb968ycmURyQScT4SqYw+nIkuYTHN\nqUiHDh0wbtw4TmTx+Xy1R7fW1tYICwvDDz/8gKioKE7s0BcN0pmkp6dj/PjxCA4O1mg4265dO6Sk\npGisXzYHNjU1Rbdu3TSWowr6mOboOmbC9TSnMrJRq0AgwM2bNzWWk5qairZt26r9XIcOHRAcHIzx\n48fX6yzZBudMysrKMHbsWLz33nsYM2aMRjJsbW3RuXNnjZ5NTU3V6XKzYWTCHY0aNUKRFp6rQ4cO\nsLe31+jZ4cOH45tvvsGYMWPAr0u9PtSgQSWtERFmzJiB5ORkXLhwgZMVk4MHD2Lw4MHV7tjVN+bm\nQEaG9G9dERkZqbPRiVgMNGok3UVcw15HvcHn8+V1YLWFiDBr1izw+XwcOHCgTu0XU4U6+N+jOatX\nr0Z8fDyOHz/O2X/EwIEDa233WVpaigsXLnCiTx3EYqC0FGCdwFtcXAyRSCQ/fvXqFQQCAVul/2Bs\nLN0Nresfa7FYrNLGQSMjIwQFBXGik8fj4c8//8S9e/fwyy+/cCJTlzQYZ3Lx4kWsWLECoaGhnKbH\n29raKlTAV0Z2djY6dOjAmU5VKS6Wjki09ZuPHz9WCDhv2rRJoaL84cOH5fkxANC4cWOFofiGDRuQ\nmZkpP/7999+RnZ0tP5ZIJFrZp4u4SWWMjY3xzTff1HpfkyZNOK2nYmZmhnPnzmHr1q04deoUZ3J1\ngt52BXFIcXExubm50f79+5nqWbFihdY9YbgkOZnIxUX95yIiIhQq1F+6dEnlYtuasGrVKoUOeLJq\neKri4UH08CHXVqmORCJRqJgmEoloyZIlTHVGRESQq6sr5efnM9XDJQ3CmcydO1et7nyaUrE5VVZW\nFm3fvp25zpq4d0/asKo24uPjKTo6Wn6cnp6u0Q5lGdqUIJBIJLRp0yZ5fV6RSFSrg/b3J7pxQ2OV\nWlNeXk6///67wrmKnwVWzJo1i2bMmMFcD1fUe2dy4cIFcnZ2rrHWJgsEAoHea2ZcvUr0+utVz4vF\nYkpNTZUfp6SkUElJCWd6uaxnkp+fT+vXr6/xngEDiLToxMkZMgeoKwoLC8nNza1e1L0lqmcd/SrD\n5/MxY8YM/PnnnzrbXk5EkEgkWLZsmd5LBhYVKV8WTkhIQGJiovzY2dkZTTis6cjlSo6VlRU+/PBD\n+fGdO3dw5MgRhXv0ETNRxpIlS5Cdna3Q0ZAlFhYWCA4OxrvvvqsQs6qz6NubacOHH35IEydO1Jm+\n8vLyOlWd7dQpooED/7WrPrSCUIWKryM1NZVGj5bQoUN6NKgCIpFI5yOF999/v15Md+qtM9HX9Kby\nF1YkEikEF3WFtGGVgNq3V24XS3TZpjIiIoI8PR9ThZCPTikuLq7SvlTXFBYWkpOTU52f7tTLaQ6f\nz8esWbN0Nr2puLRZOX+luLiYyUax2ti/fz9MTVORnAxIJNyVNKhrDBgwAOnp7eHuLs3nqVhQShf8\n/fff1e7Tio2NVathuaZYWFhg9+7ddX66Uy8zYOfOnYunT5/qbB1+9erVeOedd2Cp57z1rKysKjtR\nHRyAmJiGWyApPx9wcwOk32dCfHw8vL299W0WAGkNnKysLJ3ZM2fOHJSVlSE4OFgn+tRG30MjdYmK\nitLL9EYVkpOTmeUFZGdn019//VXlfLdu0u53DZU7d4iqaS1NZ86coezsbM51FhcXK7SdrSsUFhZS\ny5Yt6YyuWjeqSb2a5hAR5s2bhyVLluhkekNqDtqaNWuGW7ducapflrbevHlzTJ48uco97u5AUhJn\nKlVCl/Uz3dgaAAAgAElEQVRMkpKkr1EZAQEBKC8v51znrVu30LRpU7WeiY6O5tyOylhYWGDDhg34\n6quvtM4qZkG9cibh4eFIS0vDm2++yVxXUlISdu7cqdYztra2nO3TAKSv98mTJzXeow9noktqcibW\n1tZwdHQEIN0vpE3ZiIr069dP7d2/qampOilY/cYbb8DU1FQvcbpa0e/ASHVEIhF17tyZjh49qhN9\nEolEqySly5cv6yQVesMGov/9j7kavfHpp0QrV9Z+X0lJCZ08eVJjPcXFxTpdpdKGiIgIcnd3r1Nb\nO4jq0TQnJCQENjY2GD16tE708Xi8Gvv71kanTp00amWwdu1aFBcXq3z/f3lkUpEmTZpg6NCh8mN1\npwFZWVno1KmTesYpITMzE2KxWGs5NTFgwAA4OTlh69atTPWojb69mSqUlpaSi4sLRUVFMde1efNm\nKi4uZq6nOtT9tXnwgKhDB0bGVIMuf8F9fdVvfSoSiejnn39mY1At3L9/ny5dusRcT3R0NDk6Our1\ns1qZejEy2bBhA1q3bo1evXox1/XGG29w3uFvz5498iZMykhKSpLPt9UtOt2qFeS5Jg0RVUcmFTE2\nNsb8+fNrvY/P52PXrl0a2VUdnTp1Qu/evTmVqYzXXnsNffr0werVq6tcc3d3h7e3N7p27cq8bKgC\n+vZmtVFQUEB2dnYUFxenb1M0Jjc3t8ZNgTt27NAqPmNnR6Tmrv56QV4ekbm5Zo3LZUgkErp48aLS\na+Xl5UyWlivqZsnjx4/Jysqqymtwd3ennJwcprqVUedHJitXrsTQoUPh5eXFVM/FixeZybaxsalx\nU+CMGTO0is801LjJixfS16ZNci+Px4NIJFK60mJqaormzZtrLrwGCgoK5G1oWdG+fXtMnjwZS5Ys\nqXJN2etlTZ12JpmZmVi7dq1CS08WEBHzoJmMpUuXQiQSYd++fQqlELVB185EV3kmmkxxlDFgwAD5\ndgOJRIJff/1Ve6G1YGVlhblz5zLXs2DBAgQHBytUtefxeBg0aBC8vb2xfv165jbIqNPOZM2aNZgy\nZQrcufhE1QCPx8OAAQOY6pDxxRdfwMTEBH5+fpz1u22oIxOunIkMoVCIrVu3Yt68edwJrYHaagdz\ngaOjI6ZPn47ly5fLz12/fh0xMTGIiIhAcHAwzp07x9wOoA47E4FAgO3btzNvnVhWVsZUfmVkPVra\nt2/P2WioQwfg3j1ORKmErirT378PtG/PjSyxWAxTU1OMGTOm1u6OXEJECAsLY6rjk08+QUhIiDyl\nQLZ/q2XLlpgwYQKnWdk1UWedyd9//w0vLy+mhZqFQiF+//13ZvIrs2/fPnmhZpFIhKVLl3Iid9Ag\n4MwZabX6hgIRcPIkMHgwN/JWrlwJgUCgcV8bTeHxeHBxcWGqw93dHf369cPevXtRUlIi38nM5/Nx\n6tQpjXtAqY3OQ74qEhAQQHv37tW3GZzCsmizl5e0jCNXHD16VMHe1atXyzdXXrhwQeGYiGjdunWc\n1nW5e5eoTRvtVnJqIiEhgUJDQ9kI1wOnT58mb29vSkxMJG9vb/Lx8aH27dvT/PnzdWZDnXQmsbGx\n5OLiolXR4/qEQCCggoICrWR8/TXR999r/vzmzZspOTlZfpyUlFTt+68saU0gECgsby9atEirdO9f\nfyWaO1fjx4lImiJf05K8tu+5urBMMBOLxeTi4kJX9LiFvE5OczZs2ID33nuPswBlZYgIBw8eZCK7\nMpmZmdi/f3+N95SUlODo0aNa6RkxAlCnbtDx48dx584d+fH//vc/uLq6yo9btWpV7fuvLGbSqFEj\nheXt77//Xp6AV1paqvaU7vhx6WvShrCwsBrbfeqyPg0RYePGjdVeF4vF6Nq1K0aNGqWRfCMjI7z/\n/vv4448/NDVRa+pccaT8/Hy0atUKCQkJcHBwYKJDKBTi2bNn8PDwYCK/IqWlpZBIJJxn1VZGJALs\n7YH4eOWFkogIGRkZ8l225eXlamfbcsWjR4+QkZFRbSA3Jwdo3RrIygJ0UbM7ODgYb775Jho3bsxe\nWTX89ttviI6ORlFRkcYB29zcXLRp0waPHz+uUkRLF9S5kcnOnTvRs2dPZo4EkK6o6MKRANINaOo4\nkmfPnlVbJrAmTEykwcrqRicPHjzA06dP5cfaOBJt80w8PDxqDKyfPg3066eZI+Hz+Xj8+LFaz4wY\nMUKrpEFtSUlJwYkTJzB79mytks1sbW0xfvx4bNu2jUPrVKdOORPZUPDbb79lpoOrRLHaOH36tFq7\nf2VYW1srTD/UYcQI6fRAxtGjRyEUCgEAnTt31smeEVXg8XhwqjB82rFjB54/fy4/1maKc/fuXVhb\nW6v1jJ2dnc6Wi/Py8nD16lWFc5999hlWrFjBiUN77733sH79ep0lYVakTjmTCxcuwMTEhOmHfunS\npTpJNXZwcKi1R7EybG1t0bdvX410Dh0KnD8PyHqKt23blsmXhOs8k5kzZ8oTE8Vi6chk+HDNZPXs\n2VPjIf6jR484K7BUHdbW1grJbMeOHYOdnR26du3Kyefy9ddfh7OzM06ePKm1LLXRW+hXCZMnT6aF\nCxcy1VGfesucP39erQJLfD6funS5QnW0RKhKHDnykpydt6j1THFxMSd1UUtKSujWrVtay1GHb7/9\nllxcXMjd3Z0cHByoadOmWre63bp1K40bN44jC1WnzgRghUIhHBwccOfOHYVVhfrG8+fP0bp1a05k\n5ebmorCwUOXtBM+ePcPGjY0gFLpgzRpOTFBKZGQksyzY778HxGLC0qWq7+5LTU2FqampXoKOmkJE\nVdqTXLx4EStXrkR4eLhWsrOzs9GmTRtkZWXptOtknZnmXLlyBa1bt2bmSFJSUpCWlsZEtgwiwqVL\nlziTZ2trW6sjISJ5UeU2bdrgzTddFOIm9Y3jx4GRI6VfMiLC3r17ax3+Ozs7c+pIxGJxjfVnuODw\n4cN4+PBhlfNc9D9q0aIF3N3dcf78ea1lqUOdcSahoaFMSzI+e/aM+fIsj8fDjBkzmMjesWOH0pyJ\n48eP48GDB/JjX1+gpARQc0FDLViNSlJSgJcvge7dpcc8Hg8BAQFK7y0pKWFWtrC0tBT79u2rcr6s\nrAwBAQHo2rUrOnTogM8++0xjHWPGjEHHjh0VzvXt25ezfTzTp09nvieoCjqfWClBIpGQq6srxcbG\n6tuUOkteXp7KbSpnzyZavZqxQQzYtIloypTqr1eMd4lEIr0UACopKSEiIqFQSK+//jqdP39e5zao\nQkJCAjk5Oek0RlgnRiayrvI+Pj56tkQziAgrV65kqsPa2lq+MpOTk6N0iCxjzBhg3z7pZjkWsKpn\nsn8/UNPg9Oeff5YXijY2NoatrS0TO2qiSZMmAKRJf2KxWKuNg0SEly9fcmWaAh06dEDjxo0RExPD\nRL4y6oQzCQsLw6hRo5j1y929ezcTuTJ4PB7ee+89pjoq8t1338kzWZUxbJg0i/TyZZ2ZpDXR0dKp\n2fjx1d8zf/58LFq0SGdVxAoLCxEaGqpwTiKRwNfXF/b29ujfv79WFe15PB7TFrcDBgyoYj9TdDYG\nqoEePXrQqVOnmMiWSCT05MkTJrL1hUgkqvWeTZuIhg/XgTEcMXEi0W+/1X6fSCQiiURCfD6fvVFE\n1X528vPz6fXXX6/TvXYuXbpEvr6+OtOn95FJVlYW4uPjmQX1eDwe2rVrx0Q2IF0K1kWrxvLycpw+\nfRqAYgUvWYZrZaZPB2JjpXt16jpPnwIXLgD/+5/y6xVfo7GxMUpKSrB9+3ad2FbdZ8fKygojRozA\n9evXdWKHJvTo0QMvX75UKOnIEr07k+PHj2Po0KF63WSlDZcvX2Y2PatIfn5+lf1E5eXl+O2335Te\nb2YGfPIJUKGaH2dwHTNZuRKYMweoLmF47dq18oI/gLSnsy7qq8ooKyuDRCJBTk6OfEWttLQUZ8+e\n5aTQeVRUlNYylGFiYoKePXtqnbeiMjobA1XDuHHjaOfOnUxkv3jxgnbv3s1Edn0gP5/I1pbo+XNu\n5XI5tE9PJ7KxIcrK0ux5VaZ82hIVFUWXLl2iuLg48vX1JR8fH/Lw8KCffvqJE/mXLl2qse6KNgQH\nB9OgQYOYyK6MXjNgiQiOjo64ceMGWrVqxbl8iUQCoVBYb0c9gHS3r5ubW637fEpKSiAUCmFlZaVw\n/uuvgdJSgHHXBY359lugqAioXESdz+dDIpHAwsKixuf37NmD7t27o23btgytrL+8evUK7du3R25u\nLvOd0Xqd5qSlpaGsrAxubm5M5BsZGTFzJMnJybh58yYT2RV5/vw5mjZtWut9AoEAJ5TUH/j0UyAk\nBMjOZmGddhQUAFu2AF98UfXayZMnUVpaWquMqVOnKnUkL1++RJ8+feDl5QUPDw+F6u3/JVq2bAkr\nKyskJiYy16VXZxIdHY3u3bsziTmUl5fL08xZwbLYtQxVa23Y2NhgypQpVc47OgITJgBc1s3mKmay\naRMwZIi0EFJlJkyYoFWKfKNGjbBhwwbEx8cjOjoaW7duxd27d7WwFrh9+7ZWz9fEtWvXmOWctG7d\nGtHR0UxkV0TvzsTPz4+J7MjISNy/f5+JbABwc3NTu26GOlS3SqMKCQkJCgWWvvwS2LgR4PO5sIwb\nBAJgzRrgq6/+Pcfn8zX+P3v48KFCINPe3h5dunQBAJibm8Pb21vrvVmyzgIsaNu2LbPKd4GBgUwd\noQy9OpObN28ycyaDBw9G165dmcjWBcuXL9c4Oatly5YK+3U6dAD69gW03cry+++/o7S0VL6Mv2fP\nHo1Hf7t3S/cRVUx6fvDgAVq0aKGRvI4dO1a7WzspKQm3bt1CYGCgRrJlaFqfVRXs7OyYteEIDAzU\nTSasTsK8SpBIJNSyZUtKSkrSlwkas3z58npVF4WI6NYtIldXIhW39xAR0cqVKxXqqRQVFSm87qSk\nJHlFeqFQSIsWLVLpfRGJiNq3J4qMVN0WTSkqKiJ/f386cuQIe2V1lKysLLKyslLoHsACvTmTlJQU\nat68OZMvZXFxsUJPF64pKipiJptrTp06JXcIAwcS/fFH9fcePXqU7t27V6vM6paGK35YCwoKql3u\n3LmTqHt3aU+c4uJiOn78eK06VSUrK4vKysqIiKi8vJwGDx5Mv6mSWqsix44dY7aMe/LkSYV2I1xi\nZ2dHjx8/ZiJbht6mObJ4CYvga3x8PLNgFgCNyjGqSmRkJKeB44CAAPD/CZasXQssWAC8eKH83iFD\nhmjV/a1ioLioqEhp6cCMDGDePOCPPwAeTxon4XKqm52djZs3b4KI8M4776BTp05alQqoTKdOnSCQ\n1cXkmO7duzOLw3Xr1o19EJapq6qB+fPn08cff6wv9RrD6ldJxuXLl5nKX7yYaNAg6aiAz+fTah3V\nKuDz+SSREI0Zo12zMFW5fPky8Xg88vHxIV9fX/L19aWTJ0+yV1xHWbRoEX355ZdMdejNmQwdOpRZ\n5itLFi9erG8TNGbz5s2Ul1dEfn5EW7ZI41asnaOM5cuXU0iIiDp3JsrPL6WNGzcqXJ81axbZ2dlR\nly5ddGLPf42TJ09S//79merQmzNxcXGhZ8+ecS5XIpFQQkIC53IbAgUFBSQWi+nChQxq0YJI0+m5\nJun0GRlEdnbSQLBEIqlSKPvSpUsUExPDmTM5duwYJ3KUcfLkSXrO9R6Ff1i7di2TQGlmZiZZWlpy\nLrcieomZiMViZGRkMOkOz+fzFZZF6wtpaWm1thHVFktLS/D5fLx8eQaffAK8+y67AkoVIZJu5Hvn\nHcDPj3Dx4sUqaf+9e/eGjY0NZzrt7OyY1T3p0aOHxkvYtTF9+nQmclu2bIny8nJ5/IwFenEmWVlZ\nsLKyYtLTxdzcHGPHjuVcLiDtG8yK5s2bY+TIkczky7CwsMBbb70FofBnZGQQduxQX4a65SIOHAAe\nPSKYmPwMQLoni9UXXUZAQACz3dxWVlbMgvDW1tZM9tDweDw4OjoyTbzTizNJT09n5tlZcujQIWay\nGzduzLTgdU5OjrybIY/Hw4IFP2DnTh6+/lpayJkVWVnSUgg7dvCwcOEP4PF46N+/v07KNhhQpME6\nkzZt2jCRHc+wGtAHH3zARK5IJGL+Sx0aGqqQom9kZARvb2DuXGD2bIFa0x119ua8/74AM2YQunVD\nlV/cZ8+eMS0sdeLECWaFgTZs2ICysjImslltSjQ2Nm54ziQtLa3GGqbakJCQwEQuS44dO4Z79+4x\n1fH222/LiyFX5LPPyhAf/wd27eJe58GDwJUrm/Hll8p7Lufk5DD9/woMDGRWdHr69OnM+hOzKvzk\n5eXFtHeU3pyJpaUlE9kTJkxgIjc9PZ3ZLuSxY8fKN6XpGgsLMxw//jm+/BJQdS+YKjGT+HjpqCc0\n9CO0bKm8JklAQAA8PT0BAFOmTEHPnj3x+PFjuLq6Ijg4WNWXUC2WlpbMYhvm5uYK5TO5RJWSE5rg\n4uLS8EYmqampcHZ21odqjTl//jzTqQirGMJff/2F4mLlIwMZvr7SuiIjRhQiJqagxntV4cEDPoYM\nycOaNf821FLFzrS0NAgEArx8+RKzZs3S2g4Dijg5OTW8kUlmZiaTylilpaXyHjxcM3XqVCaFloRC\nodJOfVzRu3dvlX6dx44FvvtOhKFDz6G2z1tNMZNXr4BBgyLw4YdCKCmvopTg4GCIxWLVblaTbdu2\nIScnh4nsJUuWMJG7fft2ZGRkcC7XwcEBSUlJnMuVwzSLpRr8/f3p+vXrnMvNyspino7ONQ8ePKhT\nad6LFxN5eRHl5VV/T3VJa4WFRP7+6qfLp6amqtytUF1KSkqY1YmVdffjGoFAwCRxLT4+njw9PTmX\nK0MvNWBldV9ZlWtkQWJiYr2rM0pECtOnoiJpS4n8fMDEBDA1BZo1A3r2BGT7y4iAzz4DLl2Kx4kT\nbnBwsKpGuiK5uXwMH/4E3t6+2LRJuokPAAoLgatXpbpFIukfCwugf3/ASjXRBjgiJycH7dq1Q15e\nHhP5enEmjRo1QlFRUb0q9Lxr1y5m2Yms+Pnnn/Hjjz/i5ElpVbOrV6UxDEdHQCiUfrHz8oCbNwEv\nL2kJxaFDgddeAyZPzsWrV88QEeEPE5Oa9UgkwLBhd2Fi4oijR+0QFwecPg2cOiXt3RMQADRvLnVg\nJibSqdDVq0C3btIgLaMcQwOVICI0atQIfD6fTVU3ZmOeahCLxQSASR2TJ0+eUEFBAedyWZKZmclM\ndmmpiL78UloUad8+ouremtJSojNniD7/nKhTJ6LWrYm2bZPuLn77bekO44pUnOZIJERz5xL16UMU\nHCwteuThQfTJJ0QnTxJV13ivqIjo0CGprrlziYKDQ5gVymK1OXPDhg2UnZ3Nudzs7GzasGED53KJ\niMzMzJjV46nRmSjbyRkVFUU+Pj7UuXNn8vb2pitXrsiv/frrr+Tp6UldunSh06dPy88fOXKEPD09\nadq0aVReXk4mJiYMXop02/mrV6+YyGbF+vXrmcn+6iuiAQOI1P28R0YS9ehB5O5OBBCNHRtOeXn/\nbsyTOZPi4mKaNOkoAVKn4O9PdPZsVedTE3l5RMOGEc2ZI2AW25AVS+Ka8vJyJj+KEomEWQzJysqK\n8moIiJ08eZK6dOlCnp6etHTpUiIiSkxMJF9fXwoMDKzRedboTJTt5OzVq5e8L/CJEycoMDCQiIhu\n375N/v7+JBKJKCUlhdzd3eVvyKRJk0gsFtP8+fPp2rVr1LhxYxVfet2gpKSEXr58qW8z1CImRkAt\nWkgoI0Oz5yUSovBwIhcXIiCH/P2zqjiJoKBcAjLJ1lY6ytD0e5WTQ+TgIN1RbIAtzZs3r/YHt6ys\njNzd3SklJYWEQiH5+/tTTEwMffnll5SUlEQRERG0Zs2aamXXuDSsbCenq6urvPJ5fn6+vHnW8ePH\nMXnyZBgbG8PZ2RmdO3fGjRs3AEibYQkEApSUlKBx48bMMgdZUVBQgIcPH+rbDLWYN2893n67DJrW\nKObxgJEjpVXZ1q61xe3bLZGa+u/1nBzg3Dkb/PqrHbKygPHj/w26qoutLfDxx2CShWtAERMTE/ke\nrcrcuHEDnTt3hrOzM0xMTDBp0iQcP34cJiYmKC4uRnFxcY0JdWrnmSxduhRffPEF3NzcMG/ePPla\ne2pqqkJJARcXF6T8s4Ns9uzZ6N69O4gIrVq1YuZMYmJimCSWOTg4YNCgQZzLBdjtRI6I+Bzt2lVN\nn1cXIyPpF50IcHEBfvvtN/zvf/9D8+bSc99+C3CRCBoQAISHL9ZekBIWLVrERO7Zs2flP5hcw8pm\nkUhUrTNJSUmBq6ur/Fj2Hf7ggw/w7rvv4s8//8TUqVOrlV1LnL4q77zzDtatW4dx48bh4MGDePvt\nt3H27Nkanxk8eDAGDx4MAFUSiGQJULIUbW2OX758iYKCAvB4PE7k6eJ4yZIlGDt2LOfygX4g4t7e\ne/fu4cqVK4iMjOTU5vh4oEWLGZy+B7JjKysrzu0FpDVCmjRpwuQzUjFTlUv5PB6v2s2V1WVhu7q6\n4sqVK0qvKVDbHOv58+cKMZNmzZrJ/y2RSOTHP//8M61YsUJ+bcSIERQVFVVFXkFBgYKM+kB9jJl8\n/rmAFi7UPjgokRAdPCgNxKakSM9duHCBsrOl53bt0jxWUpGVK4k++EB7OQZqxs7OjtLS0pReu3Tp\nEo0YMUJ+vHz5clq0aJHKstWe5rRq1QoXL14EIN2vImt8NHz4cOzfvx8ikQgpKSm4d+8eunXrVuV5\nExMTZqnTrODz+UxLG7CgadPd+OOPLGiTn3TtmjQXZOJEPpo3L4STk/R8v379YGsLtG3Lx/TpBfDy\nAv75SGhEUZE0D2bSJM1lGFANsVhcbZghICAA9+7dQ2pqKoRCIQ4cOIBhw4apLrwmTzN58mRydHQk\nU1NTcnFxoe3bt9OVK1fIx8eHOnXqRF27dqUbN27I71+8eDF5enpS586d5Ss+lREIBMyWhhMSEqiw\nsJCJbFZkaLrcogJz5kirwaubVhAXRzRqFJG9vXT00bfv35SeXjUfJjs7hwYN2keAdDVmyBCi6Gj1\ndJWUEE2aRDRyZCxdu3ZNvYdVpGKaApckJiYySakXiUTMPse1LQ2fOHGCOnfuTJ6envTrr7+qJbtB\nJa1dvXqVaRIYC1glJxFJE8ZmzSLq2JHo3DkioVD5fWKx1AksXixNPrO3J1q1SuqIxo2TduCrSMWk\nNbGYaOpUoqFDidasIXJ0JOrZk+jnn4lu3Kj6rAyRiOjiRSJvb6IpU4hSUwuouLiYmxdeCWXTbS44\nefJklcLYXJCenk4hISGcyyUiatKkCbOkNb2k05uYmKCkpIRZo2YWPHnyBO3bt9e3GWqRl5cHGxsb\nhIQAq1cDz59LU+YdHKSp9EKhNJ0+MhKwsfk3nb5vX+Czz/iIjn6GqCgvmJkpyq0YzASA8nJg4MCH\naNXKCVu2WOHy5X/T6TMzpftwmjeX7gWSpdOfPg04OwMffQS8/bbmy8oGVIeI0LhxY2ZbWfTiTBwc\nHHD79m0m1elZsWfPnhqXxeoia9aswSeffCKP0qemSr/E+fn/frGbNQP69AHc3f997pdfgN27b+P4\ncVe0b69aosrLl7kYOvQxRo3qjqVLK56XxlMqb/QbMgSosAppQAfk5eXB3d1dnifGOUzGO7Xw2muv\n0c2bNzmXW1hYSI8ePeJcLktKS0vr1NRs40aitm2J0tPVfzY7WzqlWrVKveeioqLo/Pnz6itUgfj4\neGY9buLj45nILSoqYpJOf//+ffLw8OBcrgy9FEdiWfGJZSUpFgiFQpw/f17fZgAAQkL4+P77Yzh9\nWjoVqo7qiiM1by4d+SxZcgqbNqn+69e9e3f06dNHTWtVw9TUlFn/XlaFuI4dO4bs7GzO5aampjLt\nCqF20hoX2NnZITExkXO5FhYW6N+/P+dyAWnMxN3dnfPsXQsLC0yePJlTmRVJS0uDWCxWyGxUxvnz\nwKeflmL//gBoU7bFzQ0IDe2G0aNL4OZmBVVWFlnVUgUADw8PZrJZ1Rtm9XlIT0+v9XOgDXoZmbAu\nbMuClJQU5Obm6tsMtbG2tq7VcSckAJMnA3//3QJBQbXHSGorKN2zpy3Cwx0xfToQF1ezrKdPn9aq\nzwA3pKenM41T6m2ak5+fz0T2zZs3mcjt378/7DXdNVcL2dnZyMrKYiK7adOmNX75+fwyDBv2B+bP\nB9Rs1FcjPXoAy5YBI0duQn6+8paUQqEQt1Utia8BKSkpiIqKYiL7yZMnKCwsZCKbVc3a9PR0Zi1m\nAD05E5adxV69esVELkvKy8uZzb8romxPxqZNjeHo+BY+/FB1Oao24Zo1C+jQYQp+/135hkNTU1Om\nUzwzMzNm05wXL17ApLYSdBqyd+9eJnLj4uKYOhO9rObcunWLaVSZFTExMfo2QWPS09Np48aNCuce\nPyZq3pzoyRP1ZFVXUFoZyclELVoQVV74YFUIyUD19OjRgyIjI5nJ19vIpD7GH168eKFvEzTGwcEB\n7733HgBp8tKCBT9h5kzC/PlAu3bqyVKncbmrK7BkCTBjhlQnEeHq1at1ZgXrv0RWVlbDm+bY29sj\nLy+v2roK2iAQCJjVmBjLsPKxWCxGREQEM/nAv1vMJRIJrK3nw8iIh48+YqoSAPDOO0Dz5jw0ajQf\nPB4PPXv2ZFYfRsaePXuYpQmkp6fj8ePHTGRnZmYy+V4QEdO2vICenImJiQlatmzJ5D+7UaNGtXaw\nq4sYGxszr9YvEAhARPjzz1D89NN9bN8uLX6kLuo0LgekqfJbtgC//ZaP+/el51g1/ZYxevRoOMm2\nOXNMUVERsxae4eHhTLo75ubmwtjYGBYWylu1coFenAkAdOrUiUmkncfjYeDAgZzLlXHhwgVmsgMD\nA5nJBoDNmzejoKAIBw6Mx4IFXtDlViOJ5DkmTYrC228DRUWl2LhxI1N9LL80HTp0YLbEOnv2bCZ5\nNwTf9xEAACAASURBVLGxsfD19eVcbkX05ky6deuGO3fu6Eu9xrDqCawLPvroI4SEWEIolJZiBIDb\nt28jrrZkkEqoEzOR0bp1a/zxx2iYmwMbNzbBZ599prYMVWG1zF6fiY6Ohr+/P1MdenMm/v7+uC8b\n83JMQkICnj17xkS2Jl8kdTh27BgePHjAmTw+ny/PW3j2DFi4EAgO/rdua9euXasUDeeK0NBQREdH\ny495PGDbNmDFCkBWn7ugoIDTjWd8Ph/Hjx/nTF5l7t27h4SEBCayc3NzmaTRA1Jn4ufnx0S2HGbr\nRLWQlJRE9vb2TOqavHr1ihISEjiXqwsEAgGnfV7CwsLkGwlHjSJatqzm+1etWlVrXZHqloYlEgkl\nJyfXatP69dJ+PkREOTk5dOjQoVqfqSs8efKEWd2Vy5cv07Nnz5jIdnBwoAcPHjCRLUNvzkQikZCN\njQ2lyAqL1iP27t3LpLE0S+LjpdXQSktrvk8oFModfGlpKe3Zs6fKPTJnUl5ervABTU5OrrbCXkXK\ny4nc3KTFkwywJzc3lywsLJjn9uhtmsPj8eDv768wDK4vdO/encnyXUXu37+vcdsOPp+PmJgYhXPL\nl0vjJJULHVXGxMREHhdq3LixQlC4sLAQq1atkk/1BAIBkpKS5NddXV0xZMiQWu0zNQW++EKabl+R\nuLg4jac8RMQsc7S+Ex0dDV9fX6YbKgE9xkwAaQFbVs4kJiaGWS5A69atmVeJKywslPcdUpfExESF\n1YYXL4Djx4E5c9STw+Px4ObmJj+2tLTEF198IT82NzdXr+BwBd55B7h8WbrJUIaLi4vGG/8kEgkC\nAgI0elZV1q1bx6wYemZmJrOkyNu3b7OPl0DPzsTPz4+ZM2nTpg3T5UEATBp+yejRo4fG28W9vb1h\nZ2cnP/7tN+mXl6uyHurmmSijWTPgww+lwVgZtra2Gn/ojY2NmZfVnDZtGrNf94yMDGYrhceOHftv\nOJNr164x+VJaW1szzfZLTU1FcHAwM/kyJBKJSu8Pn8/HkSNHqpzPyQF27wY+/ZSFddoxdy5w+DCg\nLHcxPDxc5SnPkydPOLZMOaxWvQDAx8dHYRTIJenp6TpxJnqpASuDiNCyZUvcvXsXzs7O+jJDY4RC\nIfO+yTExMUhLS8PIkSNrvK+goAACgUBhRAIAP/0krcO6dStLKzXnk0+Axo2lMZ2K5ObmQiKR1FoZ\nLCMjA/Hx8czT8wsKCmBlZcVUBwvy8vLQqlUr5OXlMY+Z6G01R8bIkSPpr7/+YiI7MzOTdu/ezUS2\nLtF0+by4mKhlS6K6XBY3KYnI1paohlYueufly5e0b98+ZvIvXLhABQUFTGT//fffNEC2Ds8YvU5z\nAGDkyJEIDw9nItvOzg4jRoxgIluGLobY1c2ly8vLsXbt2mqf27YN6N0b4LqkBxcxExmtWgEjRgA1\nZdevX78eJSUlCueKioqq7ZnLNS4uLpjEsN2gubk5s/jetm3bmH8H5OjEZdVASkoKWVhYMKnGrQuO\nHTtGOTk5OtG1ePHiKrkC1SVQsczlUKeeiSrIcmCqa45XXFxcZXT2559/Mmsm1VAQi8Vkb29PT58+\n1Yk+vTsTIiJ/f39mrQ6IiNOMUn0i/KclnyrTnl27iPr3Z20Rd4wcKW2zURssMqZrQpUkvLrK9evX\nqVOnTjrTp/dpDiDdLs5qqgMAq1atYiZbl8jKBC5atKjGpDkiaUDz6691ZZn2fP01sHIlUFMah0Ag\nwFdffcV0Sb4iRARLS0umOtavX89M9v79+zFq1Chm8qugM7dVA3fu3KG2bdvq/FeHSzZv3qwz+0tK\nSmjp0qXVXj9zhsjHh4iVOVxPc2T07El05Ej118+ePcts74q+ePXqFTPZbdu2patXrzKTX5k6MTLx\n9vYGn8/HQ9lW0nrIyJEjmf5ilpaWygOOTZo0wdc1DDuOHgXefLP+9e99802p7dURFBSE1q1bA5CO\nGioHZblEKBQyk10RVk2xnj9/jqKiInTr1o2JfGXUCWfC4/HwxhtvICwsjJmOxMRE8PnKWy5wgaOj\nI4w0KVumIrt371baWkEgECiUciCSps6zDOCzKsMwfDhw8iRQcZHm/v37StuX8Pl8ZkmDRIRllTcO\ncYxQKIRAIGAmPzw8HCNGjGCfW1IRnY2BauH06dPUo0cPZvITEhIoLi6OmXwZjx8/Zq6jImKxmI4e\nPSo/vndPuopTX2eMnp6KK1BJSUkNspL9uXPn6Pbt28zkv/7663SkpjkjA/SaAVsRWfbmkydPqmRx\n1icOHjyIUaNGway27bkqwOfzUVRUBIeaGv9WYulSCZKTjbBhg9bqqyUyMpLZ6GTePMDYuBA//dRY\n5Zq42dnZMDU1rZcZqiwoKCiAs7MzMjMz0axZM53prRPTHEC63T0oKAh79uzRtylaMXHiRE4cCQBc\nvnxZ7c1fmzevxMCB7GIJrBkxAjhwIAylpaUqP2NkZIRLly5prbu8vLxBlDE4duwY+vbtq1NHAqDu\nTHOIiI4fP07+/v5MdWzfvl0nqy76WJnKyyOysCDi8/Vng6YUFhYSkTTZztqaKD1d9zaUlpZSamoq\ncz0sG2EREfXp04cOHjzIVIcy6szIBACGDBmCnJwc3Lp1i5mOoKAgneQphIaGIjY2Vu3n+Hy+xn1/\nzpyRps/LujDcunWLaT1UrsjKypLveDY1BYKCpIFYTYiOjta4wJKZmRmz9hgyysrKmG4OjYuLQ0JC\nAsaMGcNMR3XUmZiJjGXLluHKlStMV3Z0BRGpPU15+PAhbG1tNWqSPmMG8PrrwAcfKL+emprKye5s\nLmImd+/ehZubm9Jt/Tt2AMeOAX//rb7c3NxcpKamwsvLS+VnMjIyUFxcjHbqtjasg7z//vuwt7fH\nTz/9pHvlOh8L1cKrV6/I0tKSsrOzmemQSCTMdmnqC7FYukP4+fPq7zl06BAn7ysXSWuXL18mgUCg\n9FpGBpGVFVE1lzknKiqKWZFoXVJYWKjXusp1apoDSJN4xowZgx07djDVs2XLFqbyZYhEIqxcubLG\ne/h8Pvbv36+Vnlu3gJYtAXf36u8ZP348mjdvDkA63F6yZIlGujQZlZw9e1ah6VpgYGC1pS/t7YEO\nHQBte7QdOnRIpSlPr169dBKsXLx4MVP5u3fvxoABA/RXG0gvLqwWrl27Rm3btq13FeCrgy+LiFZD\ncXGxvB2Fpvz4I9G8eZo/n5KSQps2bZIfi8VitQK4EomESiuUvo+OjlbIf1GXhQuJvvhC48eJSNpG\no6YRaHx8vHYK1ITlhlOJREJubm4UERHBTEdt1ElnIpFIqEuXLhQWFqZvU+oNfn5EXC4SJCYm0q5d\nu+THCQkJFBISQkTSaU5CQoJCG4wHDx5wmiR18yZRx46ciauCQCDQeVIXSy5dukQeHh56XcGrk86E\niGjLli00atQopjokEolOK7FFRUXRxYsXiUhaTmD58uWcyE1LI7KxkS6r6gJWG/0qIhYT2dsTJSZy\nI2/VqlV6K0Whi812kydPprVr1zLXUxN11pkUFxeTra0tJSUlMdXz5MkTpvIrU1KhAlBJddWA1GTH\nDqKJEzkRVaeYMYPojz+4kSV7r+Pi4mqddnLNyZMnmcpPS0sjKysrytNz7cs6F4CV0axZM7z11lvM\na5HoejlQlh1LRGjSpAknMh89Ary9ORFVp/DxUeyrow2y9/rly5ecZSirytChQ5nKX7VqFd544w1Y\nc9XLREPqrDMBgC+++AI7d+5Eeno6c12JiYnMdQD/Fjbau3cvZ/Vjk5JqXsXhGi5rwNaEu7v0tXHJ\n0KFDsWjRIm6FVoMuyhjk5ORgx44d+Oabb5jrqo067Uzc3Nwwe/Zs/PLLL8x1XblyRSeZsT/88ANM\nTEwwdepUzkZFunYmuqJVK26cyenTp+XdEY2MjDB//nzthdaCQCDA6tWrmetZsmQJJk6cyLwBmSrU\nuQzYyuTk5MDDwwPXr1+vtxmKJSUlaNSokbzsYmUSExPRpk0bjTu6OTpK80wqdARtEOTmAq1bAxpm\nx8tJSkqCuxJvK5FIUFJSAnNzc+0U6Ink5GR4e3vj4cOHTBvOqUqdHpkAQPPmzfHJJ5/gg+pyxDmG\nhW/dt29fjclTGRkZePbs2f+3d+5RTdxZHP+CipaCCC5kCUitgEDkKah1BVtLRcW3rou1atsjtsd2\n3Wqrdde2bj1QrfaxdXVdrbVabesbKOILLQdUCqjEF4JWNIoQECUiSXgl4e4fKbNEBEmYzCR0Pud4\nZCaZ370Dk29+j/u716S26+v1HzoLeJZYx9lZn+yputr4a3U6HfO3fJyQAIBKpbLqXcIff/wxFixY\nYBFCAsAyg9YeRaVSkUgkovz8fLPb2rhxI1VUVJjdDltcu0bk7c2tTS6WhpsJCiI6f9746zZs2MBZ\nCZKWyGQyOnjwoNntXLlyhVxdXXlfwWmJxfdMAP3KzooVK/CPf/zD7LaaN0p1FrVajZKSEqOvO3Lk\niFHF3LvqfEkzpk7Cvv3223Bxcenw++Vyucm7jVvi4uKCmJiYTrfzJJYuXYr333+f9xWclliFmABA\nfHw8iouLcezYMbPaYasSfW5uboczhbVk3LhxRu145UNMzJVl7XF0VEyICP/9739NrvLXq1cv5Obm\nmnRtS3r37t3mniO2yM3NhVQqxdtvv21WO8ZiNWJiZ2eHxMRELFq0iJNVF4VCgW86Ue07Ojra5B5O\n88NYUlKCixcvtvteoWeix8bGBtOmTTM5qbeLiwvGjBlj0rUAkJKSwslSMBHh73//OxITE1mLU2IL\nqxETAIiLi0OvXr2QlJRkdlsuLi6YOXOmUdeo1WqDnbGdxcPDA7r2qlKBHzHhKs4EaF9M6urqDH7f\nbAxPASAnJ8foIY+Pj49Zkx41c/ToUdy9exevvvqq2W0Zi1WJia2tLdauXYulS5dCpVKZ3Z6xS4bl\n5eUYOHAga/a7deuGwYMHM8fnz59v1Su7dUsfj9FVaU9M7t27h379+rFu08/Pz+hAycDAQNb9eJT6\n+nq8+eabWL16dZthBnxi8XEmj2Pu3LlQq9U4cOAAJ/Z+/PFHxMTEmK1gUkc5duwYRo4cadC9FYuB\nvDzADJ8pi0ChAAYM+P/ycH5+Pvr378/kZeGTBw8eoLCwECNGjODE3rJly3Djxg3sNyUFHRfwuZRk\nKgqFgsRiMWdLlEql0iBXR0tUKhWzNZ9Lrl69SlLpFbKzI+qCZWUYmpr0SbKbV0B/+eUXTuvo7Nq1\ni6qrqx/72rVr1zhbms3JySGRSNTpvDfmxCrFhIgoLS2NBgwYQEqlklc/6uvrzVovti0aGhro4MHL\nNGAA56Y5jTO5ceMGeXklmxRrwgYKhYLzXcaPUldXR97e3rRnzx5e/XgSVjVn0pLx48cjMjISf/3r\nXzmzSUSt9lv07NmTl+GPnZ0devYMZOZLtm/fDplMxrkf5oBajLzd3NwQGDiB9Q1/HcXZ2Rn2zen+\nofctpb2CyGbgo48+QnBwMP7yl79watdoeBazTqFQKOiPf/wjp9+UCoWCdDodrV69mjObbXH0KFFM\nzP+Pm7NsNTU1kVQqtaq6Oc1oNBpKSEgw8H3qVKIDB3h06jfWrFlDKpWK03SP1jC8acaqxYSIv+FO\nQ0MD7x/W7Gyi555rfV6n09FPP/3E5NDVarUWnU93y5YtVN5O1a3oaKL0dA4daoO2sumbi7q6OvL3\n97f44U0zVjvMaaZ5uLNs2TKz22oZXanVavHZZ5+Z3WZ79O4NKJWtz9va2mLSpElMAFdVVRW+/vpr\n5nVTo0Sb6WycSWZmJi5fvswcz507t916ykql/l75gojwxRdfGMSRdPZ32BHeeecd+Pv7W/7wphm+\n1YwNFAoFubm50YkTJ8xqZ9WqVQbfTnz3TG7fJurXz/jrioqKaPfu3cxxZWWlUZsbjR1WHj9+nE6f\nPs0c37t3z6jfnb8/UWGhUSZZp2WWe61WSwkJCWa1Z03Dm2a6hJgQ6Yc7Xl5evPzyGxoaSKFQcG73\nwQN9sarOcuvWLcrLy2OOs7Oz6ejRo8xxYWEhXbx4kTm+ceMGFbb4dOfm5tLx48eZ48zMTIOSC50d\nYonFRHzUldJoNNwbJf2Xo4+PD+3du5cX+6bSZcSEiOjDDz+kyMhIVse2KpXqiVnNHz58aFAWgis0\nGqJu3fSxGOakqqqK5HI5cyyXy+n27dvMcWNjo1nnZBwciPgowPjJJ588MaZFo9EwRdfZQKPRUEhI\nCC1atIi1NrnCKiNg26KpqQmTJ09G9+7dkZSUxMoO4O+//x5jx47lPfq1LZ5+Gqis1P/PFWzUGu4o\nTU36YuYaDWDiHj6zUl1djeTkZLz++uustLd48WJcuXIFhw8ftsiQ+fawwD+P6dja2jKJmjdu3MhK\nm7NnzzZKSFQqFXbs2MGK7Y7QuzdQU8OZOc5RqfRCyZWQpKenG7UrvU+fPqwJybZt23Do0CHs2bPH\n6oQE6GJiAgCOjo5ITU1FQkICMjIyTGpDrVabnK3ewcEBo0ePNulaU3B0fPyKjjnhMp9JTY3+HrmA\niODo6Ghyj/b27dsmJ1jKysrCkiVLkJqaCmdnZ5Pa4JsuJyYAMGDAAOzatQszZswwSRSkUikcO/EE\nt8zJae4yHV29Z1JTY/5l4cbGRgD6nCjDhw83uR1HR0ejsuQ1c+fOHcyaNQs7d+6Ev7+/yfb5pkuK\nCQCMGjUKK1euxOTJk6E08qs7KioKbm5unfaBiJCWlmbWmAQ+xITLfCbmjjGpqqrC1q1bWWnLxcUF\nL774olHX1NbWYsqUKVi0aBFiY2NZ8YMvuqyYAPo8oCNGjMDs2bOf+IFWq9UmD4vawsbGBvPnzzc5\n+1dHaCtwratg7p5J3759sWDBAtbbPXny5BOHPESE2NhYBAQEYMmSJaz7wDVdWkxsbGywfv16KBQK\nzJ49u933VlVVYdCgQWb1Z8eOHaxXDnR05L5nYu1zJtnZ2ax/cTxKYGAg7t+/3+57EhMToVar8c03\n37CWe5hPrG/K2Ejs7OyQlJSEyMhIrFmzps2wey8vL7P7MnfuXNbbFOZMjGfo0KFmT7Ho4uLSbnb8\n9evXY/v27Th16hTntY/NRZfumTTj6uqKjIwMbNmyBevWrWPO19bWYtu2bbz4dOPGDfzwww+dbkeY\nM+kYmzZtQl1dHQBwkqu1JTt37kRNiz9SQkIC1q5di4yMDIjFYk59MSddvmfSjIeHB37++WdERkZC\nqVTiww8/hJ2dHSZNmsSLP97e3m1WmjOuHYDDzzbnFBQAbIw+4+LieMvmPmHCBKb3sWPHDmzatAlZ\nWVl4pqsl7+Uz/JYPiouLydPTk7Zu3cq3KwZ89dVXJlWgk8mIRCLzh9TzQVMTUf/+RAUFxl979epV\nOmAJSVBasGvXLnJ3dzfY19SV+N2JCZH+QfP09KRNmzbx7QpDU1OTybuQfXyILl1i2SELoLiYyN3d\nNKGsq6vjfVd3S9atW0dubm50qSv+oX7jdzFn8ih+fn7IzMxEQkICVq1axbc7APQrT80z+jKZDNu3\nb+/wtS+9BBw/bibHHgNXcybHj+vvraMLHZ988gkaGhoA6Cv0WcoKyddff421a9ciMzPTqGqNVgff\nasYnt27dogEDBtCnn37KtyvtUlhY2GZ2fCJ9SsNx47jzh6s0mdOnE7W3GbuhoYGX4uTG8K9//Yu8\nvLzo+vXrfLtidrrUrmFTKCsrQ3R0NGJjY/H555+bNcDMVIqKimBjY9NmqPWDB/pCXPfuASaUN7ZI\ndDrA1VU/AdvWgsexY8fg4+MDb29vbp3rAESEFStWYMeOHcjKymJlst3i4VnMjKKkpISioqIoMDCQ\nBg4cSGvWrCEiosWLF1NAQAAFBATQ+PHj6f79+0REJJPJqFevXhQaGkqhoaG0YMECpq3k5GQKCAig\nOXPm0N27d2nYsGE0ceJE3ktndIRVq1a16qkMGUKUmcmTQ2bgzBkiicTw3PXr12nnzp38OGQEarWa\nZs6cSUOGDKGysjKqq6ujiIgICg0NJV9fXyZXyd69e0kikZCtrS3l5+cz13f0ubU0rEpMKioqmMzg\nSqWSfH196cKFC5SRkcEk51m2bBnzx5LJZBQYGPjYtuLi4kin09FHH31EFy5coPr6epo3bx4FBQXR\nzZs3ubkhFnjw4AEdOXKEli8n+uADbmxyMcxZtYpo4UItZWVlMecsOSl2MyUlJTRo0CB65ZVXqLa2\nljnf/LNGo6Fhw4ZRRkYGFRUV0bVr1+iFF15oJSYdfW4tCcvr07eDSCRiaro6ODggODgYcrkco0aN\nYoYnI0aMQFlZ2RPbampqQkNDA2pra2Fvb4+ePXtiy5YtmD9/PoYMGYL09HSz3gtb9O7dG/3798dL\nLwEnTgAVFRWsh+xzyc2bN6HVanH8OBAdDYNJVEscgrYkJycHw4YNw5w5c7Bz506DuJbmnxsbG6HT\n6SASieDv7290bepHn1uLgm81MxWZTEZeXl6tUuZNmDCBKdcpk8nIwcGBQkJCaPjw4QZ5SY8dO0bB\nwcH07rvvtmr7xIkT5ObmRhs3bjTvTbBIfb2+jObNmwrKzc1lzstkMiopKeHRs/a5efOmwd9w7969\npFDU09NPE7GYDdHsfPvtt+Tq6kqHDh167Os6nY5CQkLIwcGBli5davDa43ompjy3fGOVYqJUKiki\nIoKSk5MNzicmJtK0adOY44aGBiaruFQqJbFY3OHasMXFxSSRSOiNN97gvF6KqYwZQ5SUZHhOLpcb\nFI06efIkp0WkHiU7O5tu3brFHKenp7eq5Xv0KFFkJNeemYZGo6H4+Hh69tlnqaio6Invr66upmHD\nhhkMFR8Vk848t3xi2f3Gx6DRaDB9+nTMmjULU6ZMYc5/9913OHTokMF+Fzs7O/T+bWNHWFgYAgMD\ncfXq1Q7Z8fb2Rk5ODkpLS/H888/j3r177N6IGRg9unW8ibu7OzM0BPSb3Dw8PJjjw4cPIy8vjzk+\nc+aMQZlRtVoNrVZr0GbLOBOtVsskFwL0iaVutajluX//fhQUFBj4IxKJWvg8Gk5OTgbtnzihvxdL\n58GDB4iNjUVJSQny8/M7lNjIyckJ48ePR25ubpvv6cxzyyt8q5kxNDU10Zw5c1pl7j5y5AhJJJJW\nBcSrqqqYSTuZTEZisdjoIuM6nY6WL19O/fv3p1OnTnXuBszMhQtEvr6da6O8vJxZDSPS9xxalrlI\nSUmhzZs3M8dpaWkGPR2ZTNbpb9HQUH21QksmIyODnnnmGXr33XefWBLj/v37zFCutraWoqKiKC0t\njXn9hRdeoHPnzjHHbDy3fGBVYnLq1CmysbGhkJAQZtns8OHD5OPjQ15eXq2W0vbt20eDBg2ioKAg\nCgwMpP3795tsOyUlhUQiEb388sukVqvZuiVW0emI3NyIrDk+qqxMXwuosZFvTx5PXV0dLVu2jFxd\nXTtctvPSpUsUGhpKISEh5OfnRytXriQioqSkJPL09KRevXqRSCSisWPHEhG7zy2X/O6D1oyhqqoK\nCxcuxLlz5/Dtt98iMjKSb5dasWIFUFwM/Pgj356Yxvz5gJMT8PnnfHvSml9++QXx8fEICAjAxo0b\nDYZrArCuYY6lkJycTO7u7jR79myL66WoVEQeHuYdJpgrzkQq1e+AfmQ+lneaeyN/+MMfaPfu3Ra1\ngdCSsLoJWEtgypQpuHz5MjQaDUJDQ3H69Gm+XWJ4+mlg9WrgnXf0BaysBSJg0SJg5Up9z8RSOHPm\nDAYPHozr16+joKAAcXFxFrOB0OLgW82sneZeSnx8vMX0UnQ6oqFDib77jm9POs6+fUTBwURPqMbJ\nGXV1dbR06VLq27ev0BvpIELPpJM091KUSiWCg4ORlpZmVEU4c2BrC6xbByxfrq+IZ+nU1wNLlwJf\nfQV068avL0SE9PR0hIeH48aNG7hy5YrQG+kofKtZVyItLY0kEgkNHz6cMjIy+HaHXnnFPPt12J4z\nWbWKaOpUVps0iby8PAoPDydvb286cOCA0BsxEkFMWEar1dK2bdvIw8ODJk6cyGu0aUkJkYsLUYuA\nU1ZgU0zkcqK+ffVZ1fji6tWrNH36dPLw8KDNmzc/MW5E4PEIwxyW6datG1577TUUFxdj1KhRiI6O\nxrRp0wyiQrmiXz/gb38D3n+f3XbZrJuzfDkwb54+MTbXlJaWIj4+Hs899xwiIiLw66+/4o033rDK\nouEWAd9q1tWprq6mDz74gFxcXGjRokVUWVnJqX21mqhfP6KTJzk12yHOntXneP1tGwpnVFVV0Xvv\nvUcuLi60bNkyUigU3DrQRRF6JmbGyckJiYmJKCwshEajgZ+fH1599VWzFzRvxt4eWLNGv+zK1lIx\nGzlgm5eCExLMX5i8mcrKSiQmJsLHxwcPHz7EpUuX8Omnn8LZ2ZkbB7o4gphwhEgkwoYNG3D27Fn0\n7NkTEokEcXFxyMrKMvvqz8yZ+nSO//mPWc0YxbZtgFoNvPaaee0QEbKysjB+/HgMHDgQN2/eRE5O\nDrZs2WKw4VGABfjuGv1eqa6upvXr15Ovry/5+PjQhg0bmG3n5qCoiMjLiyghgd8aO01NRJ99RiQW\nE7XYP8g6SqWSNm/eTCEhIeTt7U1ffPGFMJwxM4KY8ExTUxNlZGTQn//8Z3J2dqYZM2aYLR2fXE4U\nEUE0d64+mRLXNDYSvfkmUVAQ0e3b5rFRWFhICxcuJEdHR5o8eTKlp6dbRbrHroAwzOEZGxsbjBo1\nCvv27UNBQQEkEgliY2MxcuRI/PDDD3j48CFrttzd9aVElUogJgZQKExrx5Q5k4cPgfHjgdu3gdOn\nATbrxCuVSmzYsAGRkZF48cUX4eTkhCtXriAlJQWjR4+2+HSPXQa+1UygNY2NjbR//36KjY0le3t7\nio6OpnXr1rGW6FqnI1qyRJ/7xJR0BcbGmchkRIMGEb31FhFbIRy3b9+mf//73xQTE0MODg709oGk\nJgAABVBJREFU0ksv0a5du6wmK15XREhBYOGo1WocP34cqampOHjwIJycnDBz5kxMmjQJERERnfrW\n3bwZ+Oc/gX37gKgoFp1uQV4eMHWqPtblnXc6Xp3vUYgIUqkUqampSE1NRUlJCcaNG4epU6ciJiYG\njo6O7DouYDSCmFgROp0OeXl5OHjwIFJTU1FZWYmoqCi8/vrriIqKQp8+fYxuMz0dmD0b+PJL/f9s\nsn8/sGABsHUrMGmS8dfX1NTg9OnTSE1NxU8//YSnnnoK06dPx6RJkzB8+HAhuMzCEMTEiikuLkZq\nairS0tJw5swZODs7IyQkBM8//zzCw8MxePDgDglMQQEwYQIwaxbw1luAp2f778/MzGw3ClYuB7Zs\n0f9LTQUGD37yvdTU1EAqlSI/Px/5+fk4e/YsSktLMXToUEycOBETJ06En5/fkxsS4A1BTLoIOp0O\nV69eZT6M+fn5kEqlEIlEGDp0KMLDwxEaGoohQ4Y8NkirogJ47z3g2DGgb199zZroaGDUKMDFxfC9\nj4pJdbV+Yvfnn/XJoO/e1Rcc//LLxwvTw4cPcf78eRw+fBglJSWQSqUoKyuDv78/hg8fjoiICISH\nhyMgIEDofVgRgph0YXQ6Ha5du4Zz584hPz8fOTk5KCoqAqDPEv/UU0/Bx8cH/fv3h7u7O1xdXeHp\n6YWaGncUFopx+rQjsrNt4Ov7f3GJjNSnOMjO1ovHzz8DRUXAn/4EREYqIZHI0adPOe7elaOoqAhq\ntRoVFRUoLy/H9evXUVNTA51Oh5CQEISFhWHIkCGCcHQRBDH5nUFEqKmpQXl5OeRyOcrLy5mfS0pK\nUFlZiYqKCsjlcmg0GvTq9RS6desOou7QaJpgY2MPGxsb2NpqodPVont3gEiHhoYGAICHhwfEYjHE\nYjFEIhE8PT3h7u4Od3d3iMViuLu7w8nJScgP0gURxESgTWpra9HY2AitVguNRgOtVgutVgsiQo8e\nPdC9e3d0794dPXr0QI8ePWBvby+IxO8YQUwEBARYQQgNFBAQYAVBTAQEBFhBEBMBAQFWEMREQECA\nFQQxERAQYAVBTAQAAHfu3MHIkSMRFBQEPz8/rF27FgAQFxeHsLAwhIWF4dlnn0VYWBhzzerVqyGR\nSBAUFIT09HTmfEpKCiQSCebOncv5fQjwhxByKAAAsLOzw8aNGxEYGAiVSoXBgwdjzJgx2LNnD/Oe\nJUuWMHt98vPzkZSUhMuXL6OiogKRkZH49ddf0aNHD+zevRsFBQX4+OOPcfHiRYSEhPB1WwIcIvRM\nBADoc9QGBgYCABwcHBAcHAy5XM68TkTYu3cvXn75ZQDAoUOHMHPmTHTr1g0eHh4YNGgQ8vLyAABN\nTU1oaGhAbW0t7O3tub8ZAV4QxESgFbdu3cLZs2cRGRnJnDt16hREIhG8fytwU1ZWBs8Wu/g8PT1R\nWloKAEwtGiKCr68vt84L8IYwzBEwQKVSYcaMGVi3bp1BwqFdu3Zh1qxZHWojJiYGMTEx5nJRwEIR\nxESAQaPRYPr06Zg1axamTJnCnNdqtUhOToZUKmXOeXp64s6dO8xxaWkp+vXrx6m/ApaFMMwRAKCf\nE5k3bx4kEgkWL15s8NqJEycQEBAAsVjMnIuNjcWePXug1WpRWlqKgoICDB06lGu3BSwIoWciAADI\nzs7G999/j+DgYGb5d/Xq1Rg7diz27NnDTLw2Ex4ejqlTpyI4OBi2trbYvHkzevTowYfrAhaCsGtY\nQECAFYRhjoCAACsIYiIgIMAKgpgICAiwgiAmAgICrCCIiYCAACsIYiIgIMAKgpgICAiwwv8A1vcV\nkih+9IgAAAAASUVORK5CYII=\n",
+ "png": "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\n",
"text": [
- "<matplotlib.figure.Figure at 0x23250d0>"
+ "<matplotlib.figure.Figure at 0x3489950>"
]
}
],
- "prompt_number": 4
+ "prompt_number": 2
}
],
"metadata": {}
diff --git a/Statics_And_Strength_Of_Materials/README.txt b/Statics_And_Strength_Of_Materials/README.txt
new file mode 100755
index 00000000..72f46bc3
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/README.txt
@@ -0,0 +1,10 @@
+Contributed By: jaydeep palekar
+Course: btech
+College/Institute/Organization: Freelancer
+Department/Designation: Computer Science
+Book Title: Statics And Strength Of Materials
+Author: I. J. Levinson
+Publisher: Prentice Hall Inc.
+Year of publication: 2002
+Isbn: 9780138445065
+Edition: 20 \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch1.ipynb b/Statics_And_Strength_Of_Materials/ch1.ipynb
new file mode 100755
index 00000000..94d80818
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch1.ipynb
@@ -0,0 +1,256 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e8a178cfe4f176b57d4a8a5f7fd1354a20d5cbe9cf725d0ac6feec0b0641ec3e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Introduction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 Page No : 3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "L = 20. \t\t\t#ft\n",
+ "angle = 30.\t\t\t#degrees\n",
+ "\n",
+ "# Calculations\n",
+ "d = L*math.sin(math.radians(angle))\n",
+ "\n",
+ "# Results\n",
+ "print 'Desitance from foot of Ladder = %.2f ft'%(d)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Desitance from foot of Ladder = 10.00 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2 Page No : 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\n",
+ "# Variables\n",
+ "a = 5.\n",
+ "b = 12.\n",
+ "angle = 60. \t\t\t#degrees\n",
+ "\n",
+ "# Calculations\n",
+ "c = math.sqrt(a**2+b**2-2*a*b*math.cos(math.radians(angle)))\n",
+ "\n",
+ "# Results\n",
+ "print 'c = %.1f '%(c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c = 10.4 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No : 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "a = 5.\n",
+ "b = 12.\n",
+ "angle = 120. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "c = math.sqrt(a**2+b**2-2*a*b*math.cos(math.radians(angle)))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'c = %.1f '%(c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c = 15.1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 Page No : 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "b = 12.\n",
+ "angle1 = 35. \t\t\t#degrees\n",
+ "angle2 = 43. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "angle3 = 180-angle1-angle2\n",
+ "a = math.sin(math.radians(angle2))*b/math.sin(math.radians(angle3))\n",
+ "c = a*math.sin(math.radians(angle1))/math.sin(math.radians(angle2))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'c = %.2f '%(c)\n",
+ "print 'a = %.2f.'%(a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c = 7.04 \n",
+ "a = 8.37.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 Page No : 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Wofaninch = 0.29 \t\t\t#lb\n",
+ "L = 3.5 \t \t\t#ft\n",
+ "width = 1.75 \t\t \t#ft\n",
+ "t = 1. \t \t\t #in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "W = L*width*t*12*12*Wofaninch\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'W = %.f lb'%(W)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "W = 256 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 Page No : 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "V = 30. \t\t\t#mph\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Vinfps = V*5280*(1./60)*(1./60)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'v = %.f fps'%(Vinfps)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "v = 44 fps\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch10.ipynb b/Statics_And_Strength_Of_Materials/ch10.ipynb
new file mode 100755
index 00000000..b18a635e
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch10.ipynb
@@ -0,0 +1,500 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fa8306a7ccf6683f3bb43ba03db574b371457c13bfcbb27905e40f6b1eacde3b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Torsion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 Page No : 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \t\t\t\n",
+ "\n",
+ "# Variables\n",
+ "L = 50. \t\t\t#ft\n",
+ "Do = 2 \t\t\t#in\n",
+ "Di = 1.5 \t\t\t#in\n",
+ "Mt = 10000. \t\t\t#lb in\n",
+ "G = 12.*10**6\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Tmax = 16*Mt*Do/(math.pi*(Do**4-Di**4))\n",
+ "angle = (Mt*L*12*32)*57.3/(G*math.pi*(Do**4-Di**4))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum shearing strees = %.f psi'%(round(Tmax,-1))\n",
+ "print 'twist angle = %.1f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum shearing strees = 9310 psi\n",
+ "twist angle = 26.7 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2 Page No : 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 4. \t\t\t#ft\n",
+ "T = 5000. \t\t\t#psi\n",
+ "angle = 0.1 \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "T1 = (math.pi*d**3)*T/16\n",
+ "T2 =angle*math.pi*G*math.pi*d**4/(180*12*32)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "if (T1<T2): \n",
+ " print 'Safe torque = %.2f lb in'%(T1)\n",
+ "else:\n",
+ " print 'Safe torque = %.2f lb'%(T2)\n",
+ "\n",
+ "# note : anwer is wrong in book. plz check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe torque = 43864.91 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 Page No : 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import linalg\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Ds = 1. \t\t\t#in\n",
+ "Db = 1.5 \t\t\t#in\n",
+ "Ls = 4. \t\t\t#in\n",
+ "Lb = 6. \t\t\t#in\n",
+ "Gs = 12.*10**6 \t\t\t#psi\n",
+ "Gb = 6.4*10**6 \t\t\t#psi\n",
+ "T = 10000. \t\t\t#lb in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A = [[1,1],[(Ls*12/(Gs*Ds**4)),(-Lb*12/(Gb*Db**4))]]\n",
+ "b = [T,0]\n",
+ "c = linalg.solve(A,b)\n",
+ "Tab = c[0]\n",
+ "Tbc = c[1]\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Torque in section AB = %.f lb in'%(Tab)\n",
+ "print 'Torque in section AB = %.f lb in'%(Tbc)\n",
+ "\n",
+ "# note : Answers are slightly different because of inbuilt solve function of python."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Torque in section AB = 3571 lb in\n",
+ "Torque in section AB = 6429 lb in\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 Page No : 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "T = 10000. \t\t\t#lb in\n",
+ "G = 12.*10**6\n",
+ "Dab = 1.5 \t\t\t#in\n",
+ "Lab = 4. \t\t\t#in\n",
+ "Dcd = 1. \t\t\t#in\n",
+ "Lcd = 3. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "F = T/2\n",
+ "Tab = F*Lab\n",
+ "angle = ((T*32*12*Lcd/(G*math.pi*Dcd**4))+2*(Tab*32*12*Lab/(G*math.pi*Dab**4)))*(180/math.pi)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'angle of twist = %.0f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle of twist = 36 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No : 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Tallowable = 5000. \t\t\t#psi\n",
+ "power = 250. \t \t\t#hp\n",
+ "n = 1800. \t\t\t#rpm\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "T = 63000*power/n\n",
+ "d = (16*T/(math.pi*Tallowable))**(1/3.)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Torque = %.2f lb in'%(T)\n",
+ "print 'diameter =%.2f in'%(d)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Torque = 8750.00 lb in\n",
+ "diameter =2.07 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6 Page No : 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "ds = 2. \t\t\t#in\n",
+ "n = 315. \t\t\t#rpm\n",
+ "Gs = 12.*10**6\n",
+ "Lab = 5. \t\t\t#in\n",
+ "Lbc = 15. \t\t\t#in\n",
+ "Pa = 10. \t\t\t#hp\n",
+ "Pc = 40. \t\t\t#hp\n",
+ "Pb = 50. \t\t\t#hp\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Tab = 63000*Pa/n\n",
+ "Tbc = 63000*Pc/n\n",
+ "angle = ((32*Tbc*Lbc*12/(math.pi*ds**4*G))-(32*Tab*Lab*12/(math.pi*ds**4*G)))*(180/math.pi)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'angle of twist of gear C releative to a = %.2f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "angle of twist of gear C releative to a = 4.01 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7 Page No : 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "k1 = 6.*10**6 \t\t\t#lb in/rad\n",
+ "k2 = 3.*10**6 \t\t\t#lb in/rad\n",
+ "k3 = 2.*10**6 \t\t\t#lb in/rad\n",
+ "T = 10000. \t\t\t#lb in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "ke = 1/((1/k1)+(1/k2)+(1/k3))\n",
+ "angle = T*180/(ke*math.pi)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'equivalent spring constant = %.2e lb in/rad'%(ke)\n",
+ "print 'angle of twist d/a = %.2f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent spring constant = 1.00e+06 lb in/rad\n",
+ "angle of twist d/a = 0.57 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8 Page No : 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "k1 = 2.*10**6 \t\t\t#lb in/rad\n",
+ "k2 = 3.*10**6 \t\t\t#lb in/rad\n",
+ "T = 20000. \t\t\t#lb in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "ke = k1+k2\n",
+ "angle = T*180/(ke*math.pi)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'equivalent spring consmath.tant = %.2e lb in/rad'%(ke)\n",
+ "print 'angle of twist at B = %.3f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equivalent spring consmath.tant = 5.00e+06 lb in/rad\n",
+ "angle of twist at B = 0.229 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9 Page no : 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variables\n",
+ "n = 10 # coils\n",
+ "P = 1200. # axial load lb\n",
+ "R = 2. \n",
+ "K = 1.33 # factor\n",
+ "d = 1.\n",
+ "\n",
+ "# Calculations\n",
+ "Tmax = round(K*(16*P*R)/(math.pi*d**3),-2)\n",
+ "delta = 64*P*R**3*n/(12*10**6*d**4)\n",
+ "\n",
+ "# Results\n",
+ "print \"Stress = %d psi\"%Tmax\n",
+ "print \"The deflection = %.3f in\"%delta\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress = 16300 psi\n",
+ "The deflection = 0.512 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10 Page No : 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "di = 0.2 \t\t\t#in\n",
+ "dm = 2. \t\t\t#in\n",
+ "n = 10.\n",
+ "F = 10. \t\t\t#lb\n",
+ "G = 12.*10**6\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "k = G*di**4/(64*dm**3*n)\n",
+ "ke = 1/((1/(k+k))+(1/k)+(1/k))\n",
+ "delta = F/ke\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'elongation = %.2f in'%(delta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "elongation = 6.67 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11 Page No : 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 0.5 \t\t\t#in\n",
+ "n = 315. \t\t\t#rpm\n",
+ "t1 = 5000. \t\t\t#psi\n",
+ "r1 = 8. \t\t\t#in\n",
+ "r2 = 4. \t\t\t#in \n",
+ "n1 = 6.\n",
+ "n2 = 4.\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "t2 = r2*t1/r1\n",
+ "T = r1*n1*(math.pi/4)*d**2*t1+r2*n2*(math.pi/4)*d**2*t2\n",
+ "hp = T*n/63000\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Premissible horsepower = %.f hp'%(hp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Premissible horsepower = 275 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch12.ipynb b/Statics_And_Strength_Of_Materials/ch12.ipynb
new file mode 100755
index 00000000..2d6e383c
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch12.ipynb
@@ -0,0 +1,493 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:80d6cc3748bed03e9fd030c70419175672c3c9a4d62b5544fe9d0f908939d53e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Stresses in Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Page No : 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "L = 20. \t\t\t#ft\n",
+ "b1 = 12. \t\t\t#in\n",
+ "h1 = 4. \t\t\t#in\n",
+ "b2 = 4. \t\t\t#in\n",
+ "h2 = 12. \t\t\t#in\n",
+ "Fs = 1200. \t\t\t#psi\n",
+ "La = 5. \t\t\t#ft\n",
+ "Lb = 15. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ina = b1*h1**3/12\n",
+ "P1 = (Fs*Ina*4)/((h1/2)*12*La*3)\n",
+ "Ina1 = b2*h2**3/12\n",
+ "P2 = (Fs*Ina1*4)/((h2/2)*12*La*3)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'P max in first case = %.0f lb'%(P1)\n",
+ "print 'P max in second case = %.2f lb'%(P2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P max in first case = 853 lb\n",
+ "P max in second case = 2560.00 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Page No : 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "b = 0.5 \t\t\t#in\n",
+ "h = 1./32 \t\t\t#in\n",
+ "d = 4. \t\t\t#ft\n",
+ "E = 30.*10**6\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "stress = E*(h/2)/((d/2)*12)\n",
+ "Ina = b*h**3/12\n",
+ "M = stress*Ina/(h/2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'maximum stress = %.2f psi'%(round(stress,-2))\n",
+ "print 'internal moment = %.2f lb in'%(M) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum stress = 19500.00 psi\n",
+ "internal moment = 1.59 lb in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No : 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 1000. \t\t\t#lb/ft\n",
+ "L = 10. \t\t\t#in\n",
+ "b1 = 4. \t\t\t#in\n",
+ "h1 = 1. \t\t\t#in\n",
+ "b2 = 1. \t\t\t#in\n",
+ "h2 = 6. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Mmax = 12500 \t\t\t#lb ft\n",
+ "y = ((b1*h1*h1/2)+(b2*h2*((h2/2)+h1)))/(b1*h1+b2*h2)\n",
+ "Ina = round((b1*h1**3/12)+b1*h1*(y-h1/2)**2+(b2*h2**3/12)+b2*h2*(h1+h2-y-(h2/2))**2,1)\n",
+ "sigmat = Mmax*12*y/Ina\n",
+ "sigmac = Mmax*12*(h1+h2-y)/Ina\n",
+ "\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'maximum tensile stress = %.2f psi'%(round(sigmat,-1))\n",
+ "print 'maximum compressive bending stress = %.2f psi'%(round(sigmac,-2)) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum tensile stress = 8180.00 psi\n",
+ "maximum compressive bending stress = 13800.00 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4 Page No : 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "st = 1200. \t\t\t#psi\n",
+ "sc = 100. \t\t\t#psi\n",
+ "h = 12. \t\t\t#in\n",
+ "b = 4. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "I = b*h**3/12\n",
+ "P1 = st*I/(b*12*(h/2))\n",
+ "P2 = 2*sc*b*12/3\n",
+ "if (P1<P2):\n",
+ " print 'Safe value of p = %.f lB'%(P1)\n",
+ "else: \n",
+ " print 'Safe value of p = %.f lB'%(P2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe value of p = 2400 lB\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No : 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 600. \t\t\t#lb/ft\n",
+ "L1 = 8. \t\t\t#in\n",
+ "L2 = 4. \t\t\t#in\n",
+ "b = 6. \t\t\t#in\n",
+ "h = 8. \t\t\t#in\n",
+ "t = 1. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "R1 = W*(L1+L2)*((L1+L2)/2)/L1\n",
+ "R2 = W*(L1+L2)*(L1-(L1+L2)/2)/L1\n",
+ "Vmax = 3000 \t\t\t#lb\n",
+ "I = (b*h**3/12)-(L2*b**3/12)\n",
+ "Ay = b*L2*(L2/2)-L2*b/2*b/4\n",
+ "b = t+t\n",
+ "Tmax = Vmax*Ay/(I*b)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'maximum shear stress = %.0f psi'%(Tmax) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum shear stress = 245 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No : 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "w = 4000. \t\t\t#lb/ft\n",
+ "l = 20. \t\t\t#ft\n",
+ "y = 0.96\n",
+ "A = 4.18 \t\t\t#in**2\n",
+ "Icq = 5.6 \t\t\t#in**4\n",
+ "d = 28. \t\t\t#in\n",
+ "b = 0.5 \t\t\t#in\n",
+ "T = 8000. \t\t\t#psi\n",
+ "d1 = 0.75 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "V = w*l/2\n",
+ "Ay = 2*A*((d/2)-y)\n",
+ "I = b*d**3/12+4*(Icq+A*((d/2)-y)**2)\n",
+ "p = (2*T*(math.pi/4)*d1**2*I)/(V*Ay)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Rivet spacing = %.2f in'%(p) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rivet spacing = 6.13 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 Page No : 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Es = 30.*10**6\n",
+ "Ew = 1.5*10**6\n",
+ "w = 500. \t\t\t#lb per ft\n",
+ "span = 12. \t\t\t#ft\n",
+ "t = 0.25 \t\t\t#in\n",
+ "h = 12. \t\t\t#in\n",
+ "n = 3.\n",
+ "b = 5. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "bw = Es*t/Ew\n",
+ "Ina = n*b*h**3/12\n",
+ "M = (w*span*(h/2)*12)/4\n",
+ "S = M*(h/2)/I\n",
+ "Ss = Es*S/Ew\n",
+ "bs = Ew*bw/Es\n",
+ "Ina1 = n*t*h**3/12\n",
+ "Ss1 = M*(h/2)/Ina1\n",
+ "Sw = Ew*Ss1/Es\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum bending stress in steel = %.3f psi'%(Ss1)\n",
+ "print 'Maximum bending stress in wood = %.2f psi'%(Sw)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum bending stress in steel = 6000.000 psi\n",
+ "Maximum bending stress in wood = 300.00 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No : 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Ss = 15000. \t\t\t#psi\n",
+ "Sa = 6000. \t\t\t#psi\n",
+ "Es = 30.*10**6\n",
+ "Ea = 10.*10**6\n",
+ "Sl = 16. \t\t\t#ft\n",
+ "ba = 3. \t\t\t#in\n",
+ "ha = 8. \t\t\t#in\n",
+ "hs = 1. \t\t\t#in\n",
+ "b = 1. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations and Resuls\n",
+ "bs = (Ea/Es)*ba\n",
+ "Y = ((ba-b)*b*(hs/2)+(ha+b)*b*((ha/2)+(hs/2)))/(ba*b+ha*b)\n",
+ "I = (ba*hs**3/12)+ba*hs*(Y-(hs/2))**2+((b*ha**3/12)+b*ha*(ha-Y-(ha/2))**2)\n",
+ "w1 = Ss*I/(Y*(1./2)*ha*(ha)*12)\n",
+ "Ss = Es*Sa/Ea\n",
+ "w2 = Ss*I/((ha-Y)*(1./2)*ha*(ha)*12)\n",
+ "if (w1<w2):\n",
+ " print 'Greatest uniformly distributed load = %d lb per ft'%(w1)\n",
+ "else:\n",
+ " print 'Greatest uniformly distributed load = %d lb per ft'%(w2)\n",
+ "\n",
+ "# note : rounding off error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Greatest uniformly distributed load = 781 lb per ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No : 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "M = 500000. \t\t\t#lb in\n",
+ "r = 15.\n",
+ "n = 3.\n",
+ "b = 20. \t\t\t#in\n",
+ "l = 12. \t\t\t#in\n",
+ "As = 1. \t\t\t#in**2\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "At = r*As*n\n",
+ "x = (-2*At+math.sqrt((2*At)**2+8*At*b*l))/(2*l)\n",
+ "Ina = ((l*x**3)/3)+At*(b-x)**2\n",
+ "Scmax = M*x/Ina\n",
+ "Ssmax = r*M*(b-x)/Ina\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum bending stress in concrete = %.0f psi'%(Scmax)\n",
+ "print 'Maximum bending stress in steel = %.2f psi'%(Ssmax)\n",
+ "\n",
+ "# note : answer is accurate. please check with calculator."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum bending stress in concrete = 542 psi\n",
+ "Maximum bending stress in steel = 9815.22 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No : 298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Sc = 800. \t\t\t#psi\n",
+ "Ss = 18000. \t\t\t#psi\n",
+ "ratio = 15.\n",
+ "d = 5/8. \t\t\t#in\n",
+ "l = 20. \t\t\t#in\n",
+ "b = 10. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "x = Sc*ratio*l/(Ss+Sc*ratio)\n",
+ "As = b*x*(x/2)/((l-x)*ratio)\n",
+ "Ina = (b*x**3/3)+ratio*As*(l-x)**2\n",
+ "M = Sc*I/x\n",
+ "N = As/(math.pi*(d/2)**2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Number of steel bars required = %.2f'%(N)\n",
+ "print (\"it rounds to 6 bars\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of steel bars required = 5.79\n",
+ "it rounds to 6 bars\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch13.ipynb b/Statics_And_Strength_Of_Materials/ch13.ipynb
new file mode 100755
index 00000000..6f6d6663
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch13.ipynb
@@ -0,0 +1,359 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6b0b86bd9b0d0e04cc91f26a51f01e1dfca0b27db56af40f6330128871970df2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Deflection of Beams"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1 Page No : 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "E = 1.5*10**6\n",
+ "F1 = -100. \t\t\t#lb\n",
+ "F2 = -100. \t\t\t#lb\n",
+ "x1 = 6 \t\t\t#in\n",
+ "x2 = 6 \t\t\t#in\n",
+ "Ina = 64 \t\t\t#in**4\n",
+ "h1 = -600 \t\t\t#lb ft\n",
+ "h2 = -1200 \t\t\t#lb ft\n",
+ "xa1 = 10 \t\t\t# in\n",
+ "xa2 = 8 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "deltamax = ((1./2)*x1*xa1*h1+(1./2)*(x1+x2)*h2*xa2)*(1728)/(E*Ina)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'maximum deflection = %.2f in'%(deltamax)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum deflection = -1.36 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2 Page No : 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "E = 1.5*10**6\n",
+ "I = 50. \t \t\t#in**4\n",
+ "delta = -1. \t\t\t#in\n",
+ "l = 8. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "w = -delta*8*E*I/(l**4*1728)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'distributed weight = %.1f lb per ft'%(w)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distributed weight = 84.8 lb per ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No : 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 50. \t\t\t#lb/ft\n",
+ "x = 5. \t\t\t#ft\n",
+ "x1 = 2. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "V = W*x\n",
+ "M = W*((x/2)+x1)*x\n",
+ "M1 = W*x*(x+x1)\n",
+ "M2 = -M\n",
+ "M3 = -W*x*x/2\n",
+ "EIdeltamax = ((1./2)*(x+x1)*M1*((x+x1)/3))+(x+x1)*M2*((x+x1)/2)+(1./3)*x*M3*(x/4)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'maximum value of EIdeltax = %.1f lb ft**3'%(round(EIdeltamax,-2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of EIdeltax = -14600.0 lb ft**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No : 329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "w = 180. \t\t\t#lb/ft\n",
+ "l = 8. \t\t\t#ft\n",
+ "P = 1200. \t\t\t#lb\n",
+ "b = 6. \t\t\t#ft\n",
+ "E = 3*10.**6\n",
+ "I = 64. \t\t\t#in**4\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "delta = ((w*l**4)/(8))+((P*b**2)*(3*l-b)/(6))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'deflection of the free end = %.1fbyEI ft'%(round(delta,-3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "deflection of the free end = 222000.0byEI ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No : 329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 6. \t\t\t#kips\n",
+ "w = 3. \t \t\t#kips/ft\n",
+ "L1 = 8. \t\t\t#ft\n",
+ "L2 = 8. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "delta = (P*(L1+L2)**3/192)+(w*(L1+L2)**4/768)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'midspan value of deflection = %.1f kip ft**3'%(delta)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "midspan value of deflection = 384.0 kip ft**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7 Page No : 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "x1 = 3. \t\t\t#ft\n",
+ "x2 = 3. \t\t\t#ft\n",
+ "x3 = 3. \t\t\t#ft\n",
+ "x4 = 3. \t\t\t#ft\n",
+ "W1 = 4. \t\t\t#kips\n",
+ "W2 = 8. \t\t\t#kips\n",
+ "l = x1+x2+x3+x4\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "b = x2+x3+x4\n",
+ "b1 = x4\n",
+ "a = x1\n",
+ "x = l/2\n",
+ "P = (((W1*b*(l/b*(x-a)**3+(l**2-b**2)*x-x**3))/(6*l))+((W2*b1*x*(l**2-x**2-b1**2))/(6*l)))*(48/l**3)\n",
+ "R1 = 3+2-(P/2)\n",
+ "R2 = P\n",
+ "R3 = 1+6-(P/2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'R1 = %.3f kips'%(R1)\n",
+ "print 'R2 =%.2f kips'%(R2)\n",
+ "print 'R3 =%.3f kips'%(R3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 0.875 kips\n",
+ "R2 =8.25 kips\n",
+ "R3 =2.875 kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8 Page No : 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import linalg\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 680. \t\t\t#lb\n",
+ "K = 1000. \t\t\t#lb/in\n",
+ "L = 6. \t\t\t#ft\n",
+ "E = 30.*10**6\n",
+ "Ina = 1.728 \t\t\t#in**4\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A = [[((L*12)**3/(3*E*Ina)),-(1/K)],[1,1]]\n",
+ "b = [0,P]\n",
+ "c = linalg.solve(A,b)\n",
+ "Pb = c[0]\n",
+ "Ps = c[1]\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Force in the spring = %.2f psi'%(Ps)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force in the spring = 480.00 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.9 Page No : 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "I = 1.5 \t\t\t#in**4\n",
+ "Da = 0.5 \t\t\t#in\n",
+ "E = 30.*10**6\n",
+ "l = 60. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "F = 6*Da*E*I/(l**3)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'F = %.2f lb'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "F = 625.00 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch14.ipynb b/Statics_And_Strength_Of_Materials/ch14.ipynb
new file mode 100755
index 00000000..0d379010
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch14.ipynb
@@ -0,0 +1,645 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:94d59c04fa299edfd91c8fbcd74f6a447f3853008eda8e5b17fed905ae2575e6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Combined Loading"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Page No : 349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "h = 6. \t \t\t#in\n",
+ "x1 = 7. \t\t\t#in\n",
+ "x2 = 1. \t\t\t#in\n",
+ "x3 = 2. \t\t\t#in\n",
+ "P = 600. \t\t\t#lb\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "By = P*(x1+x2+x3)/(x1+x2)\n",
+ "Bx = By*(x1+x2)/h\n",
+ "Fx = Bx\n",
+ "V = By-P\n",
+ "M = -P*(x2+x3)+By*x2\n",
+ "S1 = -Fx/(x3*h)\n",
+ "I = x3*h**3/12\n",
+ "S2 = -M*12*(h/2)/I\n",
+ "Scmax = S1-S2\n",
+ "Stmax = S1+S2\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum tensile stress at = %.1f psi'%(Scmax)\n",
+ "print 'Maximum compressive stress at = %.1f psi'%(Stmax)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum tensile stress at = -1133.3 psi\n",
+ "Maximum compressive stress at = 966.7 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Page No : 350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 10000. \t\t\t#lb\n",
+ "A = 11.77 \t\t\t#in**2\n",
+ "Z = 51.9 \t\t\t#in**3\n",
+ "x = 5. \t\t\t#ft\n",
+ "y = 12. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "S1 = round(-P/A)\n",
+ "S2 = round(P*x*y/Z,-2)\n",
+ "Sc = S1-S2\n",
+ "St = S1+S2\n",
+ "\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Axial stress at c = %.1f psi'%(Sc)\n",
+ "print 'Axial stress at t = %.1f psi'%(St)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Axial stress at c = -12450.0 psi\n",
+ "Axial stress at t = 10750.0 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No : 353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "b = 6. \t\t \t#in\n",
+ "h = 12. \t\t\t#in\n",
+ "l = 20. \t\t\t#ft\n",
+ "P = 100000. \t\t#lb\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "S = -P/(b*h)\n",
+ "S1 = l**2*6*12/(8*b*h**2)\n",
+ "w = -S/S1\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Safe distributed load = %.0f lb per ft'%(w)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe distributed load = 333 lb per ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4 Page No : 355"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "b = 4. \t\t\t#in\n",
+ "h = 9. \t\t\t#in\n",
+ "l = 6. \t\t\t#in\n",
+ "Mx = 600. \t\t\t#lb\n",
+ "My = 100. \t\t\t#lb\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Zx = b*h**3/(12*h/2)\n",
+ "Zy = b**3*h/(12*b/2)\n",
+ "S1 = Mx*l*12/Zx\n",
+ "S2 = My*b*12/Zy\n",
+ "Sb = S1+S2\n",
+ "Sd = -S1-S2\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum stress = %.1f psi tension)'%(Sb)\n",
+ "print ' Maximum stress =%.1f psi compression)'%(Sd) \n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum stress = 1000.0 psi tension)\n",
+ " Maximum stress =-1000.0 psi compression)\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5 Page No : 356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 2. \t\t\t#in\n",
+ "Px = -600. \t\t\t#lb\n",
+ "Py = 1200. \t\t\t#lb\n",
+ "x1 = 2. \t\t\t#in\n",
+ "x2 = 2. \t\t\t#in\n",
+ "x3 = 2. \t\t\t#in\n",
+ "Ray = -400. \t\t\t#lb\n",
+ "Rax = 400. \t\t\t#lb\n",
+ "Rbx = 200. \t\t\t#lb\n",
+ "Rby = -800. \t\t\t#lb\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Mb = math.sqrt((Rax*x1)**2+(Ray*x1)**2)\n",
+ "Mc =math.sqrt((Rbx*x3)**2+(Rby*x3)**2)\n",
+ "if (Mb<Mc) :\n",
+ " M =Mc\n",
+ "else: \n",
+ " M = Mb \n",
+ "\n",
+ "Smax = M*12*64*(d/2)/(math.pi*d**4)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum normal stress = %.1f psi'%(round(Smax,-2)) \n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum normal stress = 25200.0 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6 Page No : 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 100. \t\t\t#kips\n",
+ "M = 400. \t\t\t#kip in\n",
+ "A = 14.7 \t\t\t#in**2\n",
+ "Z = 80.7 \t\t\t#in**3\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Smax = -(P*10**3)/A-(M*10**3)/Z\n",
+ "Smin = -(P*10**3)/A+(M*10**3)/Z\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum stress = %.1f psi'%(round(Smax,-2))\n",
+ "print 'Minimum stress =%.1f psi'%(round(Smin,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum stress = -11800.0 psi\n",
+ "Minimum stress =-1850.0 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7 Page No : 360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "As = 1. \t\t\t#in**2\n",
+ "Zs = 0.167 \t\t\t#in**3\n",
+ "Ah = 1. \t\t\t#in**2\n",
+ "Zh = 0.984 \t\t\t#in**3\n",
+ "es = 0.5 \t\t\t#in\n",
+ "eh = 0.5 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "phbyps = (1/As+es/Zs)/(1/Ah+eh/Zh)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'ratio = %.1f'%(phbyps)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ratio = 2.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8 Page No : 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Sx = 1800. \t\t\t#psi\n",
+ "Sy = 1000. \t\t\t#psi\n",
+ "angle = 30. \t\t\t#degrees\n",
+ "t = 0.25 \t\t\t#in\n",
+ "t1 = 3. \t\t\t#in\n",
+ "t2 = 5. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Sx1 = Sx/(t1*t)\n",
+ "Sy1 = Sy/(t2*t)\n",
+ "S = ((Sx+Sy)/2+((Sx-Sy)/2)*math.cos(math.radians(2*angle)))+(Sx-Sy)*math.cos(math.radians(2*angle))\n",
+ "T = (Sx-Sy)*math.sin(math.radians(2*angle))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'S = %.1f psi'%(S)\n",
+ "print 'T =%.f psi'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "S = 2000.0 psi\n",
+ "T =693 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9 Page No : 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Sx = 1800. \t\t\t#lb\n",
+ "Sy = 1000. \t\t\t#lb\n",
+ "angle = 30. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Sa =-((Sx+Sy)/2+((Sx-Sy)/2)*math.cos(math.radians(2*angle)))*math.cos(math.radians(2*angle))-(Sx-Sy)\n",
+ "Ta = -((Sx+Sy)/2+((Sx-Sy)/2)*math.cos(math.radians(2*angle)))*math.sin(math.radians(2*angle))\n",
+ "Sb =((Sx+Sy)/2+((Sx-Sy)/2)*math.cos(math.radians(2*angle)))*math.cos(math.radians(2*angle))-(Sx-Sy)\n",
+ "Tb = ((Sx+Sy)/2+((Sx-Sy)/2)*math.cos(math.radians(2*angle)))*math.sin(math.radians(2*angle))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Sa = %.1f psi'%(Sa)\n",
+ "print 'Sb =%.1f psi'%(Sb)\n",
+ "print 'Ta =%.f psi'%(round(Ta,-1))\n",
+ "print 'Tb =%.1f psi'%(round(Tb,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sa = -1600.0 psi\n",
+ "Sb =0.0 psi\n",
+ "Ta =-1390 psi\n",
+ "Tb =1390.0 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10 Page No : 369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\t\t\n",
+ "# Variables\n",
+ "angle = 15. \t\t\t#degrees\n",
+ "Tyx = -1000. \t\t\t#psi\n",
+ "Txy = 1000. \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Sx = Txy*math.sin(math.radians(2*angle))\n",
+ "Tx = Txy*math.cos(math.radians(2*angle))\n",
+ "Sy = Tyx*math.sin(math.radians(2*angle))\n",
+ "Ty = Tyx*math.cos(math.radians(2*angle))\n",
+ "Sx1 = Txy\n",
+ "Sy1 = Tyx\n",
+ "Txy = 0\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Sx = %.1f psi'%(Sx)\n",
+ "print 'Tx = %.1f psi'%(Tx)\n",
+ "print 'Sy = %.1f psi'%(Sy)\n",
+ "print 'Ty = %.1f psi'%(Ty)\n",
+ "print 'Sx1 = %.1f psi'%(Sx1)\n",
+ "print 'Sy1 = %.1f psi'%(Sy1)\n",
+ "print 'Txy = %.1f psi'%(Txy)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sx = 500.0 psi\n",
+ "Tx = 866.0 psi\n",
+ "Sy = -500.0 psi\n",
+ "Ty = -866.0 psi\n",
+ "Sx1 = 1000.0 psi\n",
+ "Sy1 = -1000.0 psi\n",
+ "Txy = 0.0 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11 Page No : 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 4. \t\t\t#in\n",
+ "n = 315. \t\t\t#rpm\n",
+ "Ss = 8000. \t\t\t#psi\n",
+ "Ns = 12000. \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "T = Ss*d**4/(32*(d/2))\n",
+ "hp = T*math.pi*n/63000\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'T = %.1f pi lb in'%(T)\n",
+ "print 'horsepower rating =%.1f hp'%(round(hp,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T = 32000.0 pi lb in\n",
+ "horsepower rating =500.0 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12 Page No : 372"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Sx = 9. \t\t\t#ksi\n",
+ "Sy = -5. \t\t\t#ksi\n",
+ "Txy = 4. \t\t\t#ksi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "R = math.sqrt(((Sx-Sy)/2)**2+Txy**2)\n",
+ "Smax = ((Sx+Sy)/2)+R\n",
+ "Smin = ((Sx+Sy)/2)-R\n",
+ "ap1 = (1./2)*math.degrees(math.atan(2*Txy/(Sx-Sy)))\n",
+ "ap2 = 90+ap1\n",
+ "Sc = (Sx+Sy)/2\n",
+ "Tc = R\n",
+ "Sd = (Sx+Sy)/2\n",
+ "Td = -R\n",
+ "a1 = (90-2*ap1)/2\n",
+ "a2 = 90+a1\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Smax = %.2f ksi'%(Smax)\n",
+ "print 'Smin = %.2f ksi'%(Smin)\n",
+ "print 'R = %.2f psi'%(R)\n",
+ "print 'palne1 = %.2f degrees'%(ap1)\n",
+ "print 'plane 2 = %.2f degrees'%(ap2)\n",
+ "print 'Sc = %.2f ksi'%(Sc)\n",
+ "print 'Sd = %.2f ksi'%(Sd)\n",
+ "print 'Tc = %.2f ksi'%(Tc)\n",
+ "print 'Td = %.2f ksi'%(Td)\n",
+ "print 'palne1 = %.2f degrees'%(a1)\n",
+ "print 'plane 2 = %.2f degrees'%(a2)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Smax = 10.06 ksi\n",
+ "Smin = -6.06 ksi\n",
+ "R = 8.06 psi\n",
+ "palne1 = 14.87 degrees\n",
+ "plane 2 = 104.87 degrees\n",
+ "Sc = 2.00 ksi\n",
+ "Sd = 2.00 ksi\n",
+ "Tc = 8.06 ksi\n",
+ "Td = -8.06 ksi\n",
+ "palne1 = 30.13 degrees\n",
+ "plane 2 = 120.13 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.13 Page No : 373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 4. \t\t \t#in\n",
+ "T = 40000. \t\t\t #lb in\n",
+ "Th = 20000. \t\t\t#lb in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "t = round(T*(d/2)*32/(math.pi*d**4),-1)\n",
+ "S = round(Th/(math.pi*(d/2)**2),-1)\n",
+ "Smax = -(S/2)-math.sqrt(t**2+(S/2)**2)\n",
+ "Tmax = math.sqrt(t**2+(S/2)**2)\n",
+ "\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum normal stress = %.f psi'%(Smax)\n",
+ "print 'Maximum shearing stress =%.f psi'%(Tmax)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum normal stress = -4073 psi\n",
+ "Maximum shearing stress =3278 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch15.ipynb b/Statics_And_Strength_Of_Materials/ch15.ipynb
new file mode 100755
index 00000000..562ecba1
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch15.ipynb
@@ -0,0 +1,361 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fe60a567abd9a722f9efaa797b5de23eaf91ae1c1b70917990ddaa017e213706"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Welded, Bolted, and Riveted Connections"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1 Page No : 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "sigma = 20000. \t\t\t#psi\n",
+ "b = 6. \t\t \t#in\n",
+ "h = 0.5 \t\t \t#in\n",
+ "p1 = 3750.\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "P = sigma*b*h\n",
+ "L = (P-p1*b)/(2*p1)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'L = %.2f in'%(L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 5.00 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2 Page No : 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import linalg\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 5000. \t\t\t#lb per in\n",
+ "Tl = 75. \t\t\t#kips\n",
+ "y1 = 2.63 \t\t\t#in\n",
+ "y2 = 1.37 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A = [[P, P],[y1*P, -y2*P]]\n",
+ "b = [Tl*10**3, 0]\n",
+ "c = linalg.solve(A,b)\n",
+ "L1 = c[0]\n",
+ "L2 = c[1]\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'L1 = %.2f in'%(L1)\n",
+ "print 'L2 = %.2f in'%(L2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L1 = 5.14 in\n",
+ "L2 = 9.86 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3 Page No : 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 3./8 \t \t\t#in\n",
+ "d1 = 1./8 \t\t \t#in\n",
+ "y = 1. \t\t \t #in\n",
+ "T = 15000. \t\t\t #psi\n",
+ "sigmab = 32000. \t\t\t#psi\n",
+ "sigmat = 18000. \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ps = math.pi*T*(d/2)**2\n",
+ "Pt = sigmat*d1*(y-d)\n",
+ "Pb = sigmab*d1*d\n",
+ "Pmin =Ps\n",
+ "sigma =T\n",
+ "if(Pt<Pmin):\n",
+ " Pmin =Pt\n",
+ " sigma =sigmat\n",
+ "else:\n",
+ " Pmin =Pb\n",
+ " sigma =sigmab\n",
+ "\n",
+ "e = Pmin*100/(sigma*d1*y)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'e = %.2f per cent'%(e)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e = 62.50 per cent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.4 Page No : 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 7./8 \t\t\t#in\n",
+ "Ss = 15000. \t\t\t#psi\n",
+ "Sb = 32000. \t\t\t#psi\n",
+ "St = 20000. \t\t\t#psi\n",
+ "n = 8.\n",
+ "t = 3./8 \t\t\t#in\n",
+ "l = 10. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ps = Ss*math.pi*n*(d/2)**2\n",
+ "Pb = Sb*math.pi*n*d*t\n",
+ "Pt1 = St*(l-d*2)*t\n",
+ "Pt2 = 4*St*(l-d*4)*t/3\n",
+ "Pt3 = 4*St*(l-d*2)*t\n",
+ "Pmin = Ps\n",
+ "sigma = Ss\n",
+ "if (Pb<Pmin):\n",
+ " Pmin =Pb\n",
+ " sigma =Sb\n",
+ "elif (Pt1<Pmin):\n",
+ " Pmin =Pt1\n",
+ " sigma =St\n",
+ "elif (Pt2<Pmin):\n",
+ " Pmin =Pt2\n",
+ " sigma =St\n",
+ "elif (Pt3<Pmin):\n",
+ " Pmin =Pt3\n",
+ " sigma =St\n",
+ "e = Pmin*100/(sigma*t*l)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'e = %.1f per cent'%(e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e = 82.5 per cent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5 Page No : 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "n = 8.\n",
+ "shear = 15. \t\t\t#ksi\n",
+ "Dr = 7/8. \t\t\t#in\n",
+ "Ss = 32. \t\t\t#ksi\n",
+ "Ds = 40. \t\t\t#si\n",
+ "D = 3/8. \t\t\t#in\n",
+ "x = 0.504 \t\t\t#in\n",
+ "pmin=0\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ps = shear*n*(Dr/2)**2\n",
+ "Pb = Ds*(n/2)*x*Dr\n",
+ "Pb1 = Ss*n*D*Dr\n",
+ "pmin = Ps\n",
+ "if (Pb<pmin):\n",
+ " Pmin = Pb\n",
+ "else: \n",
+ " Pmin = Pb1 \n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'load capacity of connection = %.1f kips'%(Pb)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load capacity of connection = 70.6 kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6 Page No : 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "T = 15000. \t\t\t#psi\n",
+ "x1 = 3. \t\t\t#in\n",
+ "x2 = 3. \t\t\t#in\n",
+ "y1 = 3. \t\t\t#in\n",
+ "y2 = 3. \t\t\t#in\n",
+ "d = 0.5 \t\t\t#in\n",
+ "n = 4.\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "P = T*(math.pi/4)*d**2/(math.sqrt((1/n)**2+(1/((math.sqrt(y1**2+y2**2)/y1)*n))**2+ \\\n",
+ "(2*(1/n)*(1/(n*(math.sqrt(y1**2+y2**2))/y1))*math.cos(math.radians(45)))))\n",
+ "P1 = T*(math.pi/4)*d**2/((1/n)+(y1/(n*y1)))\n",
+ "if (P>P1):\n",
+ " print 'Stornger P = %.2f lb'%(P)\n",
+ "else:\n",
+ " print 'Stornger P = %.2f lb'%(P1)\n",
+ "\n",
+ "# note : answer is different because of rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stornger P = 7450.94 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7 Page No : 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 5. \t\t\t#kips\n",
+ "xab = 3. \t\t\t#in\n",
+ "xbc = 6. \t\t\t#in\n",
+ "xbp = 1. \t\t\t#in\n",
+ "y = 6. \t\t\t#in\n",
+ "n = 3.\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Dl = P/3\n",
+ "Pct = (6*P)/(((xab+xbp)*(xab+xbp)/(xbc-xbp))+(xbp/(xbc-xbp))+(xbc-xbp))\n",
+ "R = math.sqrt(Pct**2+Dl**2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Greatest Load = %.2f kips'%(R)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Greatest Load = 3.94 kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch16.ipynb b/Statics_And_Strength_Of_Materials/ch16.ipynb
new file mode 100755
index 00000000..ca14e404
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch16.ipynb
@@ -0,0 +1,387 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d708156611ec89eae1db1c06f5ba02ec9d179b4f495d97ecac600c0bd4aa5921"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Columns"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Page No : 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "E = 10.*10**6 \t\t\t#psi\n",
+ "ys = 6000. \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "lbyr = math.sqrt(math.pi**2*E/ys)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Slenderness Ratio = %.f '%(lbyr)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slenderness Ratio = 128 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Page No : 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "fs = 3.\n",
+ "W = 50. \t\t\t#kips\n",
+ "l = 20. \t\t\t#ft\n",
+ "E = 30.*10**6 \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Pcr = fs*W\n",
+ "I = Pcr*10**3*(l*12)**2/(math.pi**2*E)\n",
+ "r = 2.01\n",
+ "lbyr = l*12/r\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Required I = %.1f in**4'%(I)\n",
+ "print 'slenderness ratio =%.f '%(lbyr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required I = 29.2 in**4\n",
+ "slenderness ratio =119 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page No : 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "L1 = 18. \t\t\t#ft\n",
+ "L2 = 9. \t\t\t#ft\n",
+ "I1 = 12.1 \t\t\t#in**4\n",
+ "I2 = 1.2 \t\t\t#in**4\n",
+ "E = 30.*10**6 \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "r1 = 2.05\n",
+ "lbyr = L1*12/r1\n",
+ "r2 = 0.65\n",
+ "lbyr2 = L2*12/r2\n",
+ "Pcr1 = math.pi**2*E*I1/(L1*12)**2\n",
+ "Pcr2 = math.pi**2*E*I2/(L2*12)**2\n",
+ "P = Pcr1/2.5\n",
+ "P2 = Pcr2/2.5\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Design load of 1 = %.2f lb'%(round(P,-2))\n",
+ "print 'Design load of 2 =%.2f lb'%(round(P2,-2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Design load of 1 = 30700.00 lb\n",
+ "Design load of 2 =12200.00 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.4 Page No : 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "E = 30.*10**6\n",
+ "syp = 30000. \t\t\t#psi\n",
+ "I = 143.5 \t\t\t#in**4\n",
+ "A = 7.32 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "I1 = 2*I\n",
+ "A1 = 2*A\n",
+ "L = math.sqrt(2*math.pi**2*E*I1/(syp*A1))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Critical length of the column = %.0f in'%(L)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Critical length of the column = 622 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.5 Page No : 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "x = 30. \t\t\t#in\n",
+ "x1 = 10. \t\t\t#in\n",
+ "E = 30.*10**6\n",
+ "d = 0.5 \t\t\t#in\n",
+ "syp = 60000. \t\t\t#psi\n",
+ "y1 = 8. \t\t\t#in\n",
+ "y2 = 2. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "ratio = 0.8\n",
+ "l = x+x1\n",
+ "lr = ratio*l\n",
+ "I = (math.pi*(d)**4)/64\n",
+ "Pcr = math.pi**2*E*I/lr**2\n",
+ "scr = Pcr/(math.pi*(d/2)**2)\n",
+ "F = Pcr*y2/(y1+y2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Stress in the critical load = %.0f psi'%(round(scr,-1))\n",
+ "print 'Critical force F =%.0f lb'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in the critical load = 4520 psi\n",
+ "Critical force F =177 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.6 Page No : 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "l = 10. \t\t\t#ft\n",
+ "Ys = 33000. \t\t\t#psi\n",
+ "E = 30.*10**6\n",
+ "A = 13.24 \t\t\t#in**4\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "r = 2.\n",
+ "lbyr = l*12/r\n",
+ "Cc = math.sqrt(2*math.pi**2*E/Ys)\n",
+ "fs = 5./3+3*(lbyr)/(8*Cc)+(lbyr)**3/(5*Cc**3)\n",
+ "Sa =((1-((lbyr)**2/(2*Cc**2)))*(Ys))/fs\n",
+ "Pa = Sa*A\n",
+ "\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Premissible load = %.f kips'%(Pa/1000)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Premissible load = 212 kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.7 Page No : 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from sympy import Symbol,solve\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "L = 12. \t\t\t#ft\n",
+ "Po = 100. \t\t\t#kips\n",
+ "e = 2. \t\t\t#ft\n",
+ "ys = 42000. \t\t\t#psi\n",
+ "A = 11.77 \t\t\t#in**2\n",
+ "rmin = 195. \t\t\t#in\n",
+ "Zmin = 11.0 \t\t\t#in**3\n",
+ "lbyr = 74.2\n",
+ "stress = 18. \t\t\t#ksi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "#P = (stress-(Po/A)/((1/A)+((e*12)/Zmin)))\n",
+ "P = Symbol(\"P\")\n",
+ "eq = (((Po+P)/A) + (P*(e*L)/11))/stress - 1\n",
+ "P = solve(eq,P)[0]\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Additional Load = %.2f kips '%(P)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Additional Load = 4.19 kips \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.8 Page No : 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "l = 15. \t\t\t#ft\n",
+ "Al = 80. \t\t\t#kips\n",
+ "El = 60. \t\t\t#kips\n",
+ "Ys = 33. \t\t\t#ksi\n",
+ "e = 4. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A = 14.4\n",
+ "rmin = 2.54\n",
+ "Zxx = 54.6\n",
+ "lbyr = l*12/rmin\n",
+ "Smax = ((Al+El)/A)+El*e/Zxx\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum stress %.1f ksi'%(Smax)\n",
+ "print (\"10 WF 49 is the suitable one\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum stress 14.1 ksi\n",
+ "10 WF 49 is the suitable one\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch2.ipynb b/Statics_And_Strength_Of_Materials/ch2.ipynb
new file mode 100755
index 00000000..74bc7026
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch2.ipynb
@@ -0,0 +1,358 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ddc392c3474d618cbae4adde9fb1f47f093e50fd2a55d0b1580decec813c6214"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Force System : Components, Resultants, Equivalence"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No : 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "f1 = 20. \t\t\t#lb\n",
+ "f2 = 40. \t\t\t#lb\n",
+ "alpha = 30. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "R = math.sqrt(f1**2+f2**2+2*f1*f2*math.cos(math.radians(alpha)))\n",
+ "angle = math.degrees(math.asin((f2*math.sin(math.radians(180-alpha)))/(R)))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'R = %.1f lb'%(R)\n",
+ "print 'angle = %.1f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 58.2 lb\n",
+ "angle = 20.1 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 Page No : 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "fx = 100. \t\t\t#lb\n",
+ "f1 = 200. \t\t\t#lb\n",
+ "f2 = 100. \t\t\t#lb\n",
+ "f3 = 50. \t\t\t#lb\n",
+ "a1 = 30. \t\t\t#degrees\n",
+ "a2 = 45. \t\t\t#degrees\n",
+ "a3 = 60. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Rx = fx+f1*math.cos(math.radians(a1))-f2*math.cos(math.radians(a2))-f3*math.cos(math.radians(a3))\n",
+ "Ry = f1*math.sin(math.radians(a1))+f2*math.sin(math.radians(a2))-f3*math.sin(math.radians(a3))\n",
+ "R = math.sqrt(Rx**2+Ry**2)\n",
+ "angle = math.degrees(math.atan(Ry/Rx))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'R = %.f lb'%(R)\n",
+ "print 'angle = %.1f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 218 lb\n",
+ "angle = 35.7 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5 Page No : 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "f1 = 100. \t\t\t#lb\n",
+ "f2 = 200. \t\t\t#lb\n",
+ "x1 = 2.\n",
+ "x2 = -3.\n",
+ "y1 = 3.\n",
+ "y2 = 5.\n",
+ "z1 = 4.\n",
+ "z2 = -2.\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "d1 = math.sqrt(x1**2+y1**2+z1**2)\n",
+ "d2 = math.sqrt(x2**2+y2**2+z2**2)\n",
+ "f1x = f1*x1/d1\n",
+ "f1y = f1*y1/d1\n",
+ "f1z = f1*z1/d1\n",
+ "f2x = f2*x2/d2\n",
+ "f2y = f2*y2/d2\n",
+ "f2z = f2*z2/d2\n",
+ "Rx = f1x+f2x\n",
+ "Ry = f1y+f2y\n",
+ "Rz = f1z+f2z\n",
+ "R = math.sqrt(Rx**2+Ry**2+Rz**3)\n",
+ "I1 = Rx/R\n",
+ "I2 = Ry/R\n",
+ "I3 = Rz/R\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'R = %d lb'%(R)\n",
+ "print 'I1 = %.3f '%(I1)\n",
+ "print 'I2 = %.3f '%(I2)\n",
+ "print 'I3 = %.3f '%(I3)\n",
+ "\n",
+ "# note : rounding off error would be there for R."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 227 lb\n",
+ "I1 = -0.264 \n",
+ "I2 = 0.956 \n",
+ "I3 = 0.041 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No : 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "F = 100. \t\t\t#lb\n",
+ "x1 = 6. \t\t\t#in\n",
+ "x2 = 8. \t\t\t#in\n",
+ "x3 = 2. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "xab = math.sqrt(x1**2+x2**2)\n",
+ "d = x3*x1/xab\n",
+ "M1 = F*d\n",
+ "Fx = F*x2/xab\n",
+ "Fy = F*x1/xab\n",
+ "M2 = Fy*xab-Fx*x1\n",
+ "M3 = Fy*x3\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'M1 = %.f lb.in'%(M1)\n",
+ "print 'M2 = %.f lb.in'%(M2)\n",
+ "print 'M3 = %.f lb.in'%(M3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "M1 = 120 lb.in\n",
+ "M2 = 120 lb.in\n",
+ "M3 = 120 lb.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7 Page No : 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Fy1 = 2. \t\t\t#kips\n",
+ "Fy2 = 5. \t\t\t#kips\n",
+ "Fy3 = 10. \t\t\t#kips\n",
+ "Fy4 = 3. \t\t\t#kips\n",
+ "L = 5. \t\t\t#ft\n",
+ "\n",
+ "# Calculations\n",
+ "Ry = Fy1+Fy2+Fy3+Fy4\n",
+ "x = (Fy1*L+Fy2*2*L+Fy3*3*L+Fy4*4*L)/Ry\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ry = %.2f kips'%(Ry)\n",
+ "print 'x = %.1f ft to the right of O'%(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ry = 20.00 kips\n",
+ "x = 13.5 ft to the right of O\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8 Page No : 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \t\t\t\n",
+ "\n",
+ "# Variables\n",
+ "Fx1 = -15. \t\t\t#lb\n",
+ "Fx2 = 55. \t\t\t#lb\n",
+ "Fy1 = 70. \t\t\t#lb\n",
+ "Fy2 = -40. \t\t\t#lb\n",
+ "x1 = 4. \t\t\t#in\n",
+ "x2 = 3. \t\t\t#in\n",
+ "x3 = 5. \t\t\t#in\n",
+ "y1 = 4. \t\t\t#in\n",
+ "y2 = 2. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Rx = Fx1+Fx2\n",
+ "Ry = Fy1+Fy2\n",
+ "R = math.sqrt(Rx**2+Ry**2)\n",
+ "angle = math.degrees(math.atan(Ry/Rx))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'R = %.2f lb'%(R)\n",
+ "print 'angle = %.1f degrees'%(angle)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 50.00 lb\n",
+ "angle = 36.9 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.9 Page No : 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Fy = 200. \t\t\t#lb\n",
+ "Fx = 100. \t\t\t#lb\n",
+ "y = 3. \t \t\t#in\n",
+ "x = 6. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "M = Fy*x-Fx*y\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Moment = %.2f lb in'%(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moment = 900.00 lb in\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch3.ipynb b/Statics_And_Strength_Of_Materials/ch3.ipynb
new file mode 100755
index 00000000..b1bd4e75
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch3.ipynb
@@ -0,0 +1,255 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2df55062ff2333a87c8624b14338bf6cf25e04a49f7bd6f183057766f3ec7b9a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : Center of Gravity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 3000. \t\t\t#lb\n",
+ "L = 10. \t\t\t#ft\n",
+ "Wf1 = 1200. \t\t\t#lb\n",
+ "Wf2 = 1500. \t\t\t#lb\n",
+ "angle = 30. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "d1 = Wf1*math.cos(angle)*L/W\n",
+ "d2 = Wf2*L/W\n",
+ "xbc = d1/math.cos(angle)\n",
+ "xab = d2-xbc\n",
+ "y = xab/math.tan(math.radians(angle))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'x = %.2f ft'%(d2)\n",
+ "print 'y = %.2f ft'%(y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 5.00 ft\n",
+ "y = 1.73 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "W4 = 3. \t\t\t#lb\n",
+ "W3 = 5. \t\t\t#lb\n",
+ "W2 = 2. \t\t\t#lb\n",
+ "W1 = 6. \t\t\t#lb\n",
+ "x1 = 10. \t\t\t#in\n",
+ "x2 = 4. \t\t\t#in\n",
+ "z = 5. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "W = W1+W2+W3+W4\n",
+ "x = (W1*0+W2*0+W3*x2+W4*x1)/W\n",
+ "z = (W1*z+W2*0+W3*0+W4*0)/W\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'x = %.2f in'%(x)\n",
+ "print 'z = %.2f in'%(z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 3.12 in\n",
+ "z = 1.88 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 Page No : 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "import math \n",
+ "# Variables\n",
+ "W1 = 3. \t\t\t#lb\n",
+ "W2 = 5. \t\t\t#lb\n",
+ "x1 = 8. \t\t\t#in\n",
+ "x2 = 7. \t\t\t#in\n",
+ "y1 = 2. \t\t\t#in\n",
+ "y2 = 5. \t\t\t#in\n",
+ "z1 = 6. \t\t\t#in\n",
+ "z2 = 4. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "W = W1+W2\n",
+ "x = (W1*x1+W2*x2)/W\n",
+ "y = (W1*y1+W2*y2)/W\n",
+ "z = (W1*z1+W2*z2)/W\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'x = %.2f in'%(x)\n",
+ "print 'y = %.2f in'%(y)\n",
+ "print 'z = %.2f in'%(z)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 7.38 in\n",
+ "y = 3.88 in\n",
+ "z = 4.75 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 Page No : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "L = 9. \t\t\t#in\n",
+ "B = 16. \t\t\t#in\n",
+ "B1 = 6. \t\t\t#in\n",
+ "d = 2. \t \t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "x = ((L*(B-B1)*(L/2)+(1./2)*L*B1*(L/3)-(math.pi/4)*d**2*(L/2)))/(L*(B-B1)+(1./2)*L*B1-(math.pi/4)*d**2)\n",
+ "y = ((L*(B-B1)*((B-B1)/2)+(1./2)*L*B1*(B1/3+(B-B1))-(math.pi/4)*d**2*((B-B1)/2)))/(L*(B-B1)+(1./2)*L*B1-(math.pi/4)*d**2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'x = %.2f in to the right of y-axis'%(x)\n",
+ "print 'y = %.2f in above x axis'%(y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 4.14 in to the right of y-axis\n",
+ "y = 6.66 in above x axis\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 Page No : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Gt = 0.25 \t\t\t#in\n",
+ "St = 0.25 \t\t\t#in\n",
+ "Gw = 3.5 \t\t\t#lb/sq ft\n",
+ "Sw = 10. \t\t\t#lb/sq ft\n",
+ "Sb = 36. \t\t\t#in\n",
+ "Sb1 = 18. \t\t\t#in\n",
+ "Sb2 = 12. \t\t\t#in\n",
+ "Sb3 = 6. \t\t\t#in\n",
+ "Sy1 = 6. \t\t\t#in\n",
+ "Sy2 = 12. \t\t\t#in\n",
+ "Sy3 = 6. \t\t\t#in\n",
+ "Gb = 1. \t\t\t#ft\n",
+ "Sh = 24. \t\t\t#in\n",
+ "Gh = 1. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "W = ((Sb*Sh)/(12*12)-(Gh*Gb))*Sw+(Gh*Gb)*Gw\n",
+ "x = ((Sb*Sh)*Sw*(Sb/24)/(12*12)-(Gh*Gb)*Sw*((Sb1+(Sb2/2))/12)+(Gh*Gb)*Gw*((Sb1+(Sb2/2))/12))/W\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'centre of gravity = %.2f ft to the right of y-axis'%(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "centre of gravity = 1.44 ft to the right of y-axis\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch4.ipynb b/Statics_And_Strength_Of_Materials/ch4.ipynb
new file mode 100755
index 00000000..908d7173
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch4.ipynb
@@ -0,0 +1,257 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5a553b2a442e6221dea12996ec8dc7d308a698d61fa5538169e60bbcf11198bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No : 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import linalg\t\t\n",
+ " \t\n",
+ "# Variables\n",
+ "W = 100. \t\t\t#lb\n",
+ "a1 = 30. \t\t\t#degrees\n",
+ "a2 = 45. \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A =[[math.cos(math.radians(a2)),-math.cos(math.radians(a1))],[math.sin(math.radians(a2)),math.sin(math.radians(a1))]]\n",
+ "b =[[0],[W]]\n",
+ "c = linalg.solve(A,b)\n",
+ "Tbc = c[0]\n",
+ "Tab = c[1]\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Tbc = %.1f lb'%(Tbc)\n",
+ "print 'Tab =%.1f lb'%(Tab)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tbc = 89.7 lb\n",
+ "Tab =73.2 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "W1 = 7000. \t\t\t#lb\n",
+ "W2 = 1000. \t\t\t#lb\n",
+ "W3 = 3000. \t\t\t#lb\n",
+ "x1 = 6. \t\t\t#in\n",
+ "x2 = 9. \t\t\t#in\n",
+ "x3 = 10. \t\t\t#in\n",
+ "x4 = 5. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Rb = (W1*x1+W2*(x1+x2)+W3*(x1+x2+x3))/(x1+x2+x3+x4)\n",
+ "Ra = W1+W2+W3-Rb\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Rb = %.1f lb'%(Rb)\n",
+ "print 'Ra = %.1f lb'%(Ra)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rb = 4400.0 lb\n",
+ "Ra = 6600.0 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Fc = 500. \t\t\t#lb\n",
+ "Fd = 1000. \t\t\t#lb\n",
+ "xc = 2. \t\t\t#in\n",
+ "xd = 8. \t\t\t#in\n",
+ "y = 6. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ay = Fc+Fd\n",
+ "Bx = (Fc*xc+Fd*xd)/y\n",
+ "Ax = Bx\n",
+ "A = math.sqrt(Ax**2+Ay**2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'A = %.f lb'%(A)\n",
+ "print 'B = %.f lb'%(Bx)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A = 2121 lb\n",
+ "B = 1500 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No : 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = -300. \t\t\t#lb\n",
+ "r = 4. \t\t\t#in\n",
+ "x1 = 2. \t\t\t#ft\n",
+ "x2 = 3. \t\t\t#ft\n",
+ "x3 = 1. \t\t\t#ft\n",
+ "y1 = 1. \t\t\t#ft\n",
+ "x4 = 3. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "F = -W*r/(y1*12)\n",
+ "By = -W*x1/(x1+x2)\n",
+ "Bz = -F*(x1+x2+x3+(x4/12))/(x1+x2)\n",
+ "Ay = -W-By\n",
+ "Az = -F-Bz\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ay = %.2f lb'%(Ay)\n",
+ "print 'By = %.2f lb'%(By)\n",
+ "print 'Az = %.2f lb'%(Az)\n",
+ "print 'Bz = %.2f lb'%(Bz)\n",
+ "print 'F = %.2f lb'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ay = 180.00 lb\n",
+ "By = 120.00 lb\n",
+ "Az = 25.00 lb\n",
+ "Bz = -125.00 lb\n",
+ "F = 100.00 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 Page No : 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 500. \t\t\t#lb\n",
+ "r = 4. \t\t\t#in\n",
+ "Lx = 3. \t\t\t#in\n",
+ "Ly = 12. \t\t\t#in\n",
+ "Lz = 4. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Tbd = W*(math.sqrt((-Lx)**2+(-Ly)**2+(-Lz)**2))/Ly\n",
+ "Tcd = Lx*Tbd/(math.sqrt((-Lx)**2+(-Ly)**2+(-Lz)**2))\n",
+ "Tad = Lz*Tbd/(math.sqrt((-Lx)**2+(-Ly)**2+(-Lz)**2))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Tbd = %.f lb'%(Tbd)\n",
+ "print 'Tcd =%.f lb'%(Tcd)\n",
+ "print 'Tad =%.f lb'%(Tad)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tbd = 542 lb\n",
+ "Tcd =125 lb\n",
+ "Tad =167 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch5.ipynb b/Statics_And_Strength_Of_Materials/ch5.ipynb
new file mode 100755
index 00000000..997d11ff
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch5.ipynb
@@ -0,0 +1,148 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:99441c9b87820b036679d4541d0d259ff9dba2feea52f8d659ae363ae4db1049"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Force Analysis of Structures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page No : 98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "import math \n",
+ "# Variables\n",
+ "Fc = -1000. \t\t\t#lb\n",
+ "A = 60. \t\t\t#degrees\n",
+ "E1 = 60. \t\t\t#degrees\n",
+ "E2 = 60. \t\t\t#degrees\n",
+ "D = 60. \t\t\t#degrees\n",
+ "L1 = 10. \t\t\t#ft\n",
+ "L2 = 10. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ax = 0\n",
+ "Ay = (-Fc)*L1*math.cos(math.radians(D))/(L1+L2)\n",
+ "Dy = -Fc-Ay\n",
+ "Fab = Ay/math.sin(math.radians(A))\n",
+ "Fae = Fab*math.cos(math.radians(A))\n",
+ "Fbe = Fab*math.cos(90-E1)/math.cos(90-A)\n",
+ "Fbc = Fab*math.sin(math.radians(90-A))+Fbe*math.sin(math.radians(90-E1))\n",
+ "Fce = Fbc*math.cos(90-(180-E2-D))/math.cos(90-E2)\n",
+ "Fde = Fae+Fbe*math.cos(math.radians(E1))+Fce*math.cos(math.radians(E2))\n",
+ "Fcd = (-Fc-Fbc*math.cos(math.radians(90-E2-D)))/math.cos(math.radians(90-E1))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ax = %.3f lb'%(Ax)\n",
+ "print 'Ay = %.2f lb'%(Ay)\n",
+ "print 'Dy = %.3f lb'%(Dy) \n",
+ "print 'Fab = %.1f lbcompression'%(Fab) \n",
+ "print 'Fae = %.1f lbtension'%(Fae)\n",
+ "print 'Fbe = %.1f lbtension'%(Fbe) \n",
+ "print 'Fbc = %.1f lbcompression'%(Fbc)\n",
+ "print 'Fce = %.1f lbcompression'%(Fce)\n",
+ "print 'Fde = %.1f lbtension'%(Fde)\n",
+ "print 'Fcd = %.1f lbcompression'%(Fcd)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ax = 0.000 lb\n",
+ "Ay = 250.00 lb\n",
+ "Dy = 750.000 lb\n",
+ "Fab = 288.7 lbcompression\n",
+ "Fae = 144.3 lbtension\n",
+ "Fbe = 288.7 lbtension\n",
+ "Fbc = 288.7 lbcompression\n",
+ "Fce = 288.7 lbcompression\n",
+ "Fde = 433.0 lbtension\n",
+ "Fcd = 866.0 lbcompression\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No : 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = -100. \t\t\t#lb\n",
+ "angle = 45. \t\t\t#degrees\n",
+ "x1 = 2. \t\t\t#ft\n",
+ "x2 = 2. \t\t\t#ft\n",
+ "y1 = 2. \t\t\t#ft\n",
+ "y2 = 4. \t\t\t#ft\n",
+ "Fx = 200. \t\t\t#lb\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Cx = Fx*y1/y2\n",
+ "Bx = Fx+Cx\n",
+ "By = (y2*Bx+x1*(-W))/(x1+x2)\n",
+ "Cy = By\n",
+ "Ax = Bx\n",
+ "Ay = W+By\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ax = %.3f lb'%(Ax)\n",
+ "print 'Ay = %.2f lb'%(Ay)\n",
+ "print 'Bx = %.3f lb'%(Bx) \n",
+ "print 'By = %.2f lb'%(By) \n",
+ "print 'Cx = %.2f lb'%(Cx)\n",
+ "print 'Cy = %.2f lb'%(Cy) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ax = 300.000 lb\n",
+ "Ay = 250.00 lb\n",
+ "Bx = 300.000 lb\n",
+ "By = 350.00 lb\n",
+ "Cx = 100.00 lb\n",
+ "Cy = 350.00 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch6.ipynb b/Statics_And_Strength_Of_Materials/ch6.ipynb
new file mode 100755
index 00000000..c3a0cd02
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch6.ipynb
@@ -0,0 +1,354 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5eef56b3be475b00ee38a435583334aab5002f35094b33b8b203b9f08b619d7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Friction"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page No : 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 100. \t\t\t#lb\n",
+ "Frictioncoefficient = 0.65\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A1 = math.degrees(math.atan(Frictioncoefficient))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Maximum Incliantion = %.f degrees'%(A1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Incliantion = 33 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page No : 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 100. \t\t\t#lb\n",
+ "Frictioncoefficient = 0.40\n",
+ "x = 3.\n",
+ "y = 4.\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Fmax = (W*y/(math.sqrt(x**2+y**2)))+Frictioncoefficient*W*x/(math.sqrt(x**2+y**2))\n",
+ "Fmin =(W*y/(math.sqrt(x**2+y**2)))-Frictioncoefficient*W*x/(math.sqrt(x**2+y**2))\n",
+ " \t\t\t\n",
+ "# Results\n",
+ "print 'Fmin = %.f lb'%(Fmin)\n",
+ "print 'Fmax =%.f lb'%(Fmax)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fmin = 56 lb\n",
+ "Fmax =104 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No : 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import linalg\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "mus = 0.25\n",
+ "d = 0.5 \t\t\t#in\n",
+ "h = 3. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A = [[1, -1],[mus, mus]]\n",
+ "b = [0,1]\n",
+ "c = linalg.solve(A,b)\n",
+ "Na = c[0]\n",
+ "Nb = c[1]\n",
+ "d = -d*mus*Na+h*Na\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'minimu distance = %.2f in'%(d)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimu distance = 5.75 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page No : 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Ft = 1000. \t\t\t#lb\n",
+ "a1 = 5. \t\t\t#degrees\n",
+ "mu = 0.30\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "R1 = Ft/math.cos(a1+math.tan(mu))\n",
+ "F = R1*math.sin(a1)+math.tan(mu)+math.tan(mu)/math.sin(90-math.tan(mu))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Forec required to start wedge = %.f lb'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forec required to start wedge = -1705 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No : 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "W = 100. \t\t\t#lb\n",
+ "n1 = 1/2.\n",
+ "n2 = 3/2.\n",
+ "mus = 0.40\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ts1 = W/(math.exp(mus*n1*2*math.pi))\n",
+ "Ts2 = W/(math.exp(mus*n2*2*math.pi)) \n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ts1 = %.2f lb'%(Ts1)\n",
+ "print 'Ts2 =%.2f lb'%(Ts2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ts1 = 28.46 lb\n",
+ "Ts2 =2.31 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No : 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import linalg\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "F = 20.\t\t\t#lb\n",
+ "L1 = 6. \t\t\t#in\n",
+ "L2 = 12. \t\t\t#in\n",
+ "L3 = 24. \t\t\t#in\n",
+ "mus = 0.60\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A =[[1,-math.exp(mus*math.pi)],[(L1+L2),(L1)]]\n",
+ "b =[0,F*(L1+L2+L3)]\n",
+ "c = linalg.solve(A,b)\n",
+ "TL = c[0]\n",
+ "Ts = c[1]\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'TL = %.2f lb'%(TL)\n",
+ "print 'Ts = %.2f lb'%(Ts)\n",
+ "\n",
+ "# note : answers are slightly different because of rounding off errors.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "TL = 44.42 lb\n",
+ "Ts = 6.74 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7 Page No : 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 24. \t\t\t#in\n",
+ "mu = 0.05\n",
+ "W = 2000. \t\t\t#lb\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "F = W*mu*2/d\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'F = %.2f lb'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "F = 8.33 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No : 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "F = 800. \t\t\t#lb\n",
+ "muk = 0.10\n",
+ "Do = 5. \t\t\t#in\n",
+ "Di = 3. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "M = 2*muk*F*((Do/2)**3-(Di/2)**3)/(3*((Do/2)**2-(Di/2)**2))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'M = %.f lb in'%(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "M = 163 lb in\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch7.ipynb b/Statics_And_Strength_Of_Materials/ch7.ipynb
new file mode 100755
index 00000000..5f419f92
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch7.ipynb
@@ -0,0 +1,335 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6d5c5a5b4a7fbf142c8f73269283c1a7c9727f1534378705a70188b19e0c8c3e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Moment of Inertia"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page No : 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "x1 = 3. \t\t\t#in\n",
+ "x2 = 3. \t\t\t#in\n",
+ "x3 = 3. \t\t\t#in\n",
+ "x4 = 3. \t\t\t#in\n",
+ "x5 = 5. \t\t\t#in\n",
+ "x6 = 5. \t\t\t#in\n",
+ "x7 = 5. \t\t\t#in\n",
+ "x8 = 5. \t\t\t#in\n",
+ "L1 = 1. \t\t\t#in\n",
+ "L2 = 1. \t\t\t#in\n",
+ "L3 = 1. \t\t\t#in\n",
+ "L4 = 1. \t\t\t#in\n",
+ "L5 = 1. \t\t\t#in\n",
+ "L6 = 1. \t\t\t#in\n",
+ "L7 = 1. \t\t\t#in\n",
+ "L8 = 1. \t\t\t#in\n",
+ "y = 7.5 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ix1 = x1*L1*(y)**2\n",
+ "Ix2 = x2*L2*(y-L2)**2\n",
+ "Ix3 = x3*L3*(y-L3-L2)**2\n",
+ "Ix4 = x4*L4*(y-L4-L3-L2)**2\n",
+ "Ix5 = x5*L5*(y-L5-L4-L3-L2)**2\n",
+ "Ix6 = x6*L6*(y-L6-L5-L4-L3-L2)**2\n",
+ "Ix7 = x7*L7*(y-L7-L6-L5-L4-L3-L2)**2 \n",
+ "Ix8 = x8*L8*(y-L8-L7-L6-L5-L4-L3-L2)**2\n",
+ "Ix = Ix1+Ix2+Ix3+Ix4+Ix5+Ix6+Ix7+Ix8\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ix = %.f in**4'%(Ix)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ix = 552 in**4\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page No : 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "Iy = 60 \t\t\t#in**4\n",
+ "A = 25 \t\t\t #sq in\n",
+ "x = 10 \t\t\t #in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ia = Iy+ A*x**2\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'I = %.f in**4'%(Ia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I = 2560 in**4\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page No : 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "L = 5 \t\t\t#in\n",
+ "B = 12 \t \t\t#in\n",
+ "Ix = 227 \t\t\t#in**4\n",
+ "Iy = 10 \t\t\t#in**4\n",
+ "A = 10.2 \t\t\t#sq in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Kx = math.sqrt(Ix/A)\n",
+ "Ky = math.sqrt(Iy/A)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Radius of gyration wrt x = %.2f in'%(Kx)\n",
+ "print 'Radius of gyration wrt y =%.2f in'%(Ky)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of gyration wrt x = 4.72 in\n",
+ "Radius of gyration wrt y =0.99 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No : 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "L1 = 8. \t\t\t#in\n",
+ "B1 = 1. \t\t\t#in\n",
+ "L2 = 1. \t\t\t#in\n",
+ "B2 = 6. \t\t\t#in\n",
+ "L3 = 8. \t\t\t#in\n",
+ "B3 = 1. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Iy = (B1*L1**3/12)+(B2*L2**3/12)+(B3*L3**3/12)\n",
+ "Ix = (L1*B1**3/12)+L1*B1*((B2/2)+(B1/2))**2+(L2*B2**3/12)+(L3*B3**3/12)+L3*B3*((B2/2)+(B3/2))**2\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ix = %.2f in**4'%(Ix)\n",
+ "print 'Iy =%.2f in**4'%(Iy)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ix = 215.33 in**4\n",
+ "Iy =85.83 in**4\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5 Page No : 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "H = 8. \t\t\t#in\n",
+ "b = 6. \t\t\t#in\n",
+ "d = 4. \t\t\t#in\n",
+ "H1 = 5. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ia1 = ((b*H**3)/12)+b*H*d**2\n",
+ "Ia2 = math.pi*((d/2)**2)+math.pi*((d/2)**2)*(H1)**2\n",
+ "I = Ia1-Ia2\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'I = %.2f in**4'%(I)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I = 697.27 in**4\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6 Page No : 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "W = 64.4 \t\t\t#lb\n",
+ "I = 10 \t\t\t#slugft**2\n",
+ "g = 32.2 \t\t\t#ft/sec**2\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "m = W/g\n",
+ "k = math.sqrt(I/m)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'k = %.2f ft'%(k)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "k = 2.24 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8 Page No : 142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "d1 = 18. \t\t\t#in\n",
+ "d2 = 10. \t\t\t#in\n",
+ "d3 = 4. \t\t\t#in\n",
+ "Wpercuin = 0.31 \t\t\t#lb\n",
+ "L1 = 4. \t\t\t#in\n",
+ "L2 = 8. \t\t\t#in\n",
+ "g = 32.2 \t\t\t#ft/sec**2\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "m1 = math.pi*(d1/2)**2*L1*Wpercuin/g\n",
+ "I1 = m1*(d1/24)**2/2\n",
+ "m2 = math.pi*(d2/2)**2*L2*Wpercuin/g\n",
+ "I2 = m2*(d2/24)**2/2\n",
+ "m3 = math.pi*(d3/2**2)*(L1+L2)*Wpercuin/g\n",
+ "I3 = m3*(d3/24)**2/2\n",
+ "I = I1+I2-I3\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'I = %.2f slug ft**2'%(I)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I = 3.28 slug ft**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch8.ipynb b/Statics_And_Strength_Of_Materials/ch8.ipynb
new file mode 100755
index 00000000..04957e57
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch8.ipynb
@@ -0,0 +1,401 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a09e16c002c633d5d63dac7b4f943159d57261807392bec341e8052ebf397939"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Concept of Stress"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page No : 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "F = -100 \t\t\t#lb\n",
+ "x1 = 3 \t\t\t#in\n",
+ "y = 6 \t\t\t#in\n",
+ "x2 = 24 \t\t\t#in\n",
+ "x3 = 12 \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Force = -F\n",
+ "Moment = -F*(x2+x1)\n",
+ "Torque = -F*y\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Force = %.2f lb'%(Force)\n",
+ "print 'Moment =%.2f lb.in'%(Moment)\n",
+ "print 'Torque =%.2f lb.in'%(Torque)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force = 100.00 lb\n",
+ "Moment =2700.00 lb.in\n",
+ "Torque =600.00 lb.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No : 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "F = -5000. \t\t\t#lb\n",
+ "D = 250. \t\t\t#lb/ft\n",
+ "y1 = 4. \t\t\t#in\n",
+ "y2 = 2. \t\t\t#in\n",
+ "y3 = 5. \t\t\t#in\n",
+ "y4 = 3. \t\t\t#in\n",
+ "x = 3. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Ax = -D*y1\n",
+ "Ay = -F\n",
+ "M = (D*y1*(y2+y3+y1/2.))-F*x\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Ax = %.2f lb'%(Ax)\n",
+ "print 'Ay =%.2f lb'%(Ay)\n",
+ "print 'M =%.2f lb.in'%(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ax = -1000.00 lb\n",
+ "Ay =5000.00 lb\n",
+ "M =24000.00 lb.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Page No : 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "P = 5 \t\t\t#kips\n",
+ "angle = 30 \t\t\t#degrees\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Fn = P*math.sin(math.radians(angle))\n",
+ "Ft = P*math.cos(math.radians(angle))\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Fn = %.2f lb'%(Fn)\n",
+ "print 'Ft =%.2f lb'%(Ft)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Fn = 2.50 lb\n",
+ "Ft =4.33 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No : 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "p = 5. \t\t\t#tons\n",
+ "dt = 0.75 \t\t\t#in\n",
+ "db = 0.5 \t\t\t#in\n",
+ "b = 0.5 \t\t\t#in\n",
+ "h = 2. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Sc = p*2000/((math.pi/4)*(dt**2))\n",
+ "Sr = p*2000/(b*h)\n",
+ "Sb = p*2000/(2*(math.pi/4)*db**2)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Stress in circular scetion = %.2f psi tension'%(round(Sc,-2))\n",
+ "print 'Stress in rectangular section = %.2f psi tension'%(Sr)\n",
+ "print 'Stress in bolt = %.2f psi tension'%(round(Sb,-2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in circular scetion = 22600.00 psi tension\n",
+ "Stress in rectangular section = 10000.00 psi tension\n",
+ "Stress in bolt = 25500.00 psi tension\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page No : 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "w = 8 \t\t\t#in\n",
+ "wperft = 35. \t\t\t#lb/ft\n",
+ "A = 10.3 \t\t\t#sq in\n",
+ "F1 = 3. \t\t\t#tons\n",
+ "F2 = 3. \t\t\t#tons\n",
+ "F3 = -8. \t\t\t#tons\n",
+ "F4 = -8. \t\t\t#tons\n",
+ "F5 = -5. \t\t\t#tons\n",
+ "F6 = -5. \t\t\t#tons\n",
+ "Pl = 12. \t\t\t#in\n",
+ "Pb = 12. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "Sa = (F1+F2)*2000/A\n",
+ "Sb = -(F3+F4+F1+F2)*2000/A\n",
+ "Sc = -(F3+F4+F1+F2+F5+F6)*2000/A\n",
+ "Sp = -(F3+F4+F1+F2+F5+F6)*2000/(Pl*Pb)\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'Stress in a = %.2f psi tension'%(round(Sa,-1))\n",
+ "print 'Stress in b = %.2f psi tension'%(round(Sb,-1))\n",
+ "print 'Stress in c = %.2f psi tension'%(round(Sc,-1))\n",
+ "print 'Stress in plate = %.f psi tension'%(Sp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in a = 1170.00 psi tension\n",
+ "Stress in b = 1940.00 psi tension\n",
+ "Stress in c = 3880.00 psi tension\n",
+ "Stress in plate = 278 psi tension\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No : 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Ns = 8000. \t\t\t#psi\n",
+ "Ss = 4000. \t\t\t#psi\n",
+ "Ws = 25000. \t\t\t#psi\n",
+ "angle = 30. \t\t\t#degrees\n",
+ "L = 4. \t\t\t#in\n",
+ "b = 1. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "P = Ns*L*b/((math.cos(math.radians(2*angle)))**2)\n",
+ "P1 = 2*Ss*L*b/(math.sin(math.radians(2*angle)))\n",
+ "Pts = Ws*L*b\n",
+ "e = P1/Pts\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "if (P<P1):\n",
+ " print 'P = %.2f lb'%(round(P,-3))\n",
+ "else:\n",
+ " print 'P1 = %.2f lb'%(round(P1,-3))\n",
+ "\n",
+ "print 'efficiency of the joint = %.2f '%(e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "P1 = 37000.00 lb\n",
+ "efficiency of the joint = 0.37 \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No : 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "T = 15000 \t\t\t#psi\n",
+ "h1 = 3 \t\t\t#in\n",
+ "h2 = 2.5 \t\t\t#in\n",
+ "t = 0.25 \t\t\t#in\n",
+ "r = 5/16. \t\t\t#in\n",
+ "d = 1. \t\t\t#in\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "P1 = T*(h1-d)*t/2.18\n",
+ "P2 = T*h2*t/1.7\n",
+ "if (P1<P2):\n",
+ " print 'Safe axial load = %.f lb'%(P1)\n",
+ "else: \n",
+ " print 'Safe axial load = %.f lb'%(P2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Safe axial load = 3440 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No : 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\t\t\t\n",
+ "# Variables\n",
+ "d = 16. \t\t\t#ft\n",
+ "h = 24. \t \t\t#ft\n",
+ "P = 160. \t\t\t#lb/cu ft\n",
+ "hs1 = 8. \t\t\t#ft\n",
+ "hs2 = 8. \t\t\t#ft\n",
+ "hs3 = 8. \t\t\t#ft\n",
+ "Tsmax = 5000. \t\t\t#psi\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "SW = round(P/1728,4)\n",
+ "P8 = round(SW*hs1*12,2)\n",
+ "P16 = round(SW*(hs1+hs2)*12,1)\n",
+ "P24 = round(SW*(hs1+hs2+hs3)*12,1)\n",
+ "t8 = (P8*d*12)/(2*Tsmax)\n",
+ "t16 = P16*d*12/(2*Tsmax)\n",
+ "t24 = P24*d*12/(2*Tsmax)\n",
+ "\t\t\t\n",
+ " \n",
+ "# Results\n",
+ "print 't8 = %.2f in'%(t8)\n",
+ "print 't16 = %.2f in'%(t16)\n",
+ "print 't24 = %.2f in'%(t24)\n",
+ "\n",
+ "# note : book answers are wrong. please check. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "t8 = 0.17 in\n",
+ "t16 = 0.34 in\n",
+ "t24 = 0.51 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/ch9.ipynb b/Statics_And_Strength_Of_Materials/ch9.ipynb
new file mode 100755
index 00000000..ee3b4983
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/ch9.ipynb
@@ -0,0 +1,509 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9125011b4afb20e4bcb070d525e10ee7f4e22999f77038ff5e818f0e6a9e5e7f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Concept of Strain"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page No : 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "length =10 \t\t\t#ft\n",
+ "delta =0.024 \t\t\t#in\n",
+ "\n",
+ "# Calculations\n",
+ "epsilon =delta/(length*12)\n",
+ "\n",
+ "# Results\n",
+ "print \"Axial strain =%.4f in/in\"%(epsilon)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Axial strain =0.0002 in/in\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2 Page No : 194"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "drop = 5. \t\t\t#in\n",
+ "width = 8. \t\t\t#ft\n",
+ "\n",
+ "# Calculations\n",
+ "deltaMB =math.sqrt((width*12/2)**2 +drop**2) - (width*12/2)\n",
+ "epsilon =deltaMB/(width*12/2)\n",
+ "\n",
+ "# Results\n",
+ "print \"Strain in the wire = %.5f in/in\"%(epsilon)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Strain in the wire = 0.00541 in/in\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page no : 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variables and Calculations\n",
+ "\n",
+ "E = 30000./0.001\n",
+ "deltaP1 = 66000. # psi\n",
+ "deltault = 116000 # psi\n",
+ "deltarup = 103000 # psi\n",
+ "\n",
+ "Pf = round(deltarup*math.pi/4*0.505**2,-2)\n",
+ "deltarup_ = round(Pf/(math.pi*0.425**2/4),-3)\n",
+ "percent_elongation = (2.375 - 2)/2*100\n",
+ "percent_reduction = ((math.pi*0.505**2/4) - (math.pi*0.425**2/4))/(math.pi*0.505**2/4) * 100\n",
+ "\n",
+ "# Results\n",
+ "print \"E = %.1e psi\"%E\n",
+ "print \"The load of failure Pf = %d lb\"%Pf\n",
+ "print \"Rupture strength : %.d psi\"%deltarup_\n",
+ "print \"Percent elongation = %.1f %%\"%percent_elongation\n",
+ "print \"Percent reduction in area = %.1f %%\"%percent_reduction\n",
+ "\n",
+ "\n",
+ "# note : last answer is wrong in book. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E = 3.0e+07 psi\n",
+ "The load of failure Pf = 20600 lb\n",
+ "Rupture strength : 145000 psi\n",
+ "Percent elongation = 18.8 %\n",
+ "Percent reduction in area = 29.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page No : 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "length =15. \t\t\t#in\n",
+ "tension =5000. \t\t\t#lb\n",
+ "UltStress =20000. \t\t\t#psi\n",
+ "delta =0.005 \t\t\t#in\n",
+ "\n",
+ "# Calculations\n",
+ "E =30*10**6 \t\t\t#psi\n",
+ "A1 =tension/UltStress\n",
+ "A2 =tension*length/(delta*E)\n",
+ "if A1 >= A2:\n",
+ " A =A1\n",
+ "else:\n",
+ " A =A2\n",
+ "Dia =math.sqrt(4*A/math.pi)\n",
+ "\n",
+ "# Results\n",
+ "print \"diameter required = %.3f in\"%( Dia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter required = 0.798 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No : 204"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "L1 =5.\n",
+ "L2 =10.\n",
+ "T1 =2.5\n",
+ "T2 =5.\n",
+ "T3 =5.\n",
+ "T4 =5.\n",
+ "T5 =2.5\n",
+ "E =30.*10**6 \t\t\t#psi\n",
+ "outDia =2. \t\t\t#in\n",
+ "\n",
+ "# Calculations # Results\n",
+ "inDia =1./8 \t\t\t#in\n",
+ "RE =(T1+T2+T3+T4+T5)/2 \t\t\t#kips\n",
+ "RA =RE\n",
+ "GH =(RA*L2-T2*L1-T1*L2)/4\n",
+ "print \"Stress in GH =%.1f kips\"%(GH)\n",
+ "A =math.pi*(outDia**2-(outDia-2*inDia)**2)/4\n",
+ "delta =GH*10**3 *(L1*12)/(E*A)\n",
+ "print \" Deformation =%.3f in\"%(delta)\n",
+ "sigma =GH*10**3 /A\n",
+ "print \" Stress =%d psi\"%(round(sigma,-3))\n",
+ "SF =65000/sigma\n",
+ "print \" Factor of safety =%.3f \"%(SF)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stress in GH =12.5 kips\n",
+ " Deformation =0.034 in\n",
+ " Stress =17000 psi\n",
+ " Factor of safety =3.829 \n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No : 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "from numpy import linalg\n",
+ "\t\t\t\n",
+ "# Variables\n",
+ "Es = 30.*10**6 \t\t\t#psi\n",
+ "As = 1. \t\t\t#in**2\n",
+ "Ea = 10.*10**6 \t\t\t#psi\n",
+ "Aa = 2. \t\t\t#in**2\n",
+ "Ls = 10. \t\t\t#ft\n",
+ "La = 5. \t\t\t#ft\n",
+ "\t\t\t\n",
+ "# Calculations\n",
+ "A =[[(Ls/(Es*As)) ,(-La/(Ea*Aa))],[1 ,1]]\n",
+ "b = [0,1]\n",
+ "c = linalg.solve(A,b)\n",
+ "Fa = c[0]\n",
+ "Fb = c[1]\n",
+ "d = Fb*Ls\n",
+ "\t\t\t\n",
+ "# Results\n",
+ "print 'distance = %.2f ft'%(d)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "distance = 5.71 ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7 Page No : 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "P =40000. \t\t\t#lb\n",
+ "L =15. \t\t\t#in\n",
+ "delta =0.0032 \t\t\t#in\n",
+ "dia =4. \t\t\t#in\n",
+ "axial =0.0032 \t\t\t#in\n",
+ "lateral =0.00022 \t\t\t#in\n",
+ "\n",
+ "# Calculations # Results\n",
+ "E =P*L/(delta*math.pi*(dia/2)**2)\n",
+ "print \"Modulus of elasticity =%.2f psi\"%(E)\n",
+ "Mu =lateral*L/(axial*dia)\n",
+ "print \"Poisson ratio = %.2f\"%(Mu)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Modulus of elasticity =14920775.91 psi\n",
+ "Poisson ratio = 0.26\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8 Page No : 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variables\n",
+ "alpha =11.2*10**(-6) \t\t\t#in/in/F\n",
+ "E =15*10**6 \t\t\t#psi\n",
+ "L =60. \t\t\t#in\n",
+ "deltaT1 =0.01 \t\t\t#in\n",
+ "T2 =50 \t\t\t#F\n",
+ "\n",
+ "# Calculations # Results\n",
+ "deltaT =deltaT1/(alpha*L)\n",
+ "print \"The temperature increase necessary to cause free end to touch B =%.1f F\"%(deltaT)\n",
+ "sigma =(alpha*L*T2-deltaT1)*E/L\n",
+ "print \"Stress in the rod =%d psi\"%(sigma+1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature increase necessary to cause free end to touch B =14.9 F\n",
+ "Stress in the rod =5900 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 9.9 Page No : 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "weight =25000. \t\t\t#Kg\n",
+ "A =2 \t\t\t #sq.in\n",
+ "alphaS =6.5*10**(-6) \t\t\t#in/in/F\n",
+ "alphaB =11.2*10**(-6) \t\t\t#in/in/F\n",
+ "Es =30*10**6 \t\t\t#psi\n",
+ "Eb =15*10**6 \t\t\t#psi\n",
+ "\n",
+ "# Calculations # Results\n",
+ "deltaT =weight/(Es*A*(alphaB-alphaS))\n",
+ "print \"Net temperature drop =%.1f F\"%(deltaT)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net temperature drop =88.7 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10 Page No : 209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "S =5. \t\t\t#in\n",
+ "Al =6. \t\t\t#in\n",
+ "alphaS =6.5*10**(-6) \t\t\t#in/in/F\n",
+ "alphaAl =13.1*10**(-6) \t\t\t#in/in/F\n",
+ "Es =30.*10**6 \t\t\t#psi\n",
+ "EAl =10.*10**6 \t\t\t#psi\n",
+ "As =1. \t\t\t#in**2\n",
+ "AAl =2. \t\t\t#in**2\n",
+ "T =50. \t\t\t#F\n",
+ "dia =1 \t\t\t#in\n",
+ "\n",
+ "# Calculations # Results\n",
+ "P =(alphaS*S*12*T + alphaAl*Al*12*T)/(S*12/(Es*As) + Al*12/(EAl*AAl))\n",
+ "print \"Shearing force = %d lb\"%(round(P,-1))\n",
+ "T =P/(math.pi*(dia/2.)**2)\n",
+ "print \" The shear stress in the pin =%d psi\"%(round(T,-2))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shearing force = 11900 lb\n",
+ " The shear stress in the pin =15200 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.11 Page No : 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "edge = 2. \t\t\t#in\n",
+ "height =3. \t\t\t#in\n",
+ "F = 20000. \t\t\t#lb\n",
+ "deltaS = 0.00234 \t\t\t#in\n",
+ "deltaA = 0.00088 \t\t\t#in\n",
+ "\n",
+ "# Calculations # Results\n",
+ "E = F*height/(deltaA*edge*edge)\n",
+ "print \"Modulus of elasticity = %.1e psi\"%(E)\n",
+ "G =F*height/(deltaS*edge*edge)\n",
+ "print \" Modulus of Rigidity = %.1e psi\"%(G)\n",
+ "Mu =E/(2*G) -1\n",
+ "print \" Poisson ratio = %.1f \"%(Mu)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Modulus of elasticity = 1.7e+07 psi\n",
+ " Modulus of Rigidity = 6.4e+06 psi\n",
+ " Poisson ratio = 0.3 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Statics_And_Strength_Of_Materials/screenshots/ch4.png b/Statics_And_Strength_Of_Materials/screenshots/ch4.png
new file mode 100755
index 00000000..fd954ebb
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/screenshots/ch4.png
Binary files differ
diff --git a/Statics_And_Strength_Of_Materials/screenshots/ch5.png b/Statics_And_Strength_Of_Materials/screenshots/ch5.png
new file mode 100755
index 00000000..03b6529a
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/screenshots/ch5.png
Binary files differ
diff --git a/Statics_And_Strength_Of_Materials/screenshots/ch6.png b/Statics_And_Strength_Of_Materials/screenshots/ch6.png
new file mode 100755
index 00000000..2b31e329
--- /dev/null
+++ b/Statics_And_Strength_Of_Materials/screenshots/ch6.png
Binary files differ
diff --git a/Test/README.txt b/Test/README.txt
new file mode 100755
index 00000000..b9a36bc6
--- /dev/null
+++ b/Test/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Hardik Ghaghada
+Course: mca
+College/Institute/Organization: FOSSEE - Indian Institute of Technology
+Department/Designation: Aerospace
+Book Title: Test
+Author: Subramanium & Brij Lal
+Publisher: McGraw Hill Education (India) Private Limited, New Delhi
+Year of publication: 2000
+Isbn: 2548872474
+Edition: 2nd \ No newline at end of file
diff --git a/Test/chapter1.ipynb b/Test/chapter1.ipynb
new file mode 100755
index 00000000..cf45a409
--- /dev/null
+++ b/Test/chapter1.ipynb
@@ -0,0 +1,423 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Tension Comprssion and Shear"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, page no. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Find compressive stress and strain in the post\n",
+ "\"\"\"\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "d_1 = 4 # inner diameter (inch)\n",
+ "d_2 = 4.5 #outer diameter (inch)\n",
+ "P = 26000 # pressure in pound\n",
+ "L = 16 # Length of cylinder (inch)\n",
+ "my_del = 0.012 # shortening of post (inch)\n",
+ "\n",
+ "#calculation\n",
+ "A = (math.pi/4)*((d_2**2)-(d_1**2)) #Area (inch^2)\n",
+ "s = P/A # stress\n",
+ "\n",
+ "print \"compressive stress in the post is \", round(s), \"psi\"\n",
+ "\n",
+ "e = my_del/L # strain\n",
+ "\n",
+ "print \"compressive strain in the post is %e\" %e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "compressive stress in the post is 7789.0 psi\n",
+ "compressive strain in the post is 7.500000e-04\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, page no. 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "formula for maximum stress & calculating maximum stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "W = 1500 # weight (Newton)\n",
+ "d = 0.008 #diameter(meter) \n",
+ "g = 77000 # Weight density of steel\n",
+ "L = 40 # Length of bar (m)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "A = (math.pi/4)*(d**2) # Area\n",
+ "s_max = (1500/A) + (g*L) # maximum stress\n",
+ "\n",
+ "#result\n",
+ "print \"Therefore the maximum stress in the rod is \", round(s_max,1), \"Pa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Therefore the maximum stress in the rod is 32921551.8 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3. page no. 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating change in lenght of pipe, strain in pipe, increase in diameter & increase in wall thickness\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "d1 = 4.5 # diameter in inch\n",
+ "d2 = 6 # diameter in inch\n",
+ "A = (math.pi/4)*((d2**2)-(d1**2)) # Area\n",
+ "P = 140 # pressure in K\n",
+ "s = -P/A # stress (compression)\n",
+ "E = 30000 # young's modulus in Ksi\n",
+ "e = s/E # strain\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "# Part (a)\n",
+ "my_del = e*4*12 # del = e*L \n",
+ "print \"Change in length of the pipe is\", round(my_del,3), \"inch\"\n",
+ "\n",
+ "# Part (b)\n",
+ "v = 0.30 # Poissio's ratio\n",
+ "e_ = -(v*e)\n",
+ "print \"Lateral strain in the pipe is %e\" %e_\n",
+ "\n",
+ "# Part (c)\n",
+ "del_d2 = e_*d2 \n",
+ "del_d1 = e_*d1\n",
+ "print \"Increase in the inner diameter is \", round(del_d1,6), \"inch\"\n",
+ "\n",
+ "# Part (d)\n",
+ "t = 0.75\n",
+ "del_t = e_*t\n",
+ "print \"Increase in the wall thicness is %f\" %del_t, \"inch\"\n",
+ "del_t1 = (del_d2-del_d1)/2 \n",
+ "print \"del_t1 = del_t\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in length of the pipe is -0.018 inch\n",
+ "Lateral strain in the pipe is 1.131768e-04\n",
+ "Increase in the inner diameter is 0.000509 inch\n",
+ "Increase in the wall thicness is 0.000085 inch\n",
+ "del_t1 = del_t\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, page no. 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate average shear stress and compressive stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "d = 0.02 # diameter in m\n",
+ "t = 0.008 # thickness in m\n",
+ "A = math.pi*d*t # shear area\n",
+ "P = 110000 # prassure in Newton\n",
+ "\n",
+ "#calculation\n",
+ "A1 = (math.pi/4)*(d**2) # Punch area\n",
+ "t_aver = P/A # Average shear stress \n",
+ "\n",
+ "\n",
+ "print \"Average shear stress in the plate is \", t_aver, \"Pa\"\n",
+ "s_c = P/A1 # compressive stress\n",
+ "print \"Average compressive stress in the plate is \", s_c, \"Pa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average shear stress in the plate is 218838046.751 Pa\n",
+ "Average compressive stress in the plate is 350140874.802 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eample 1.5, page no. 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate bearing stress, shear stress in pin,\n",
+ "bearing stress between pin and gussets,\n",
+ "shear stress in anchor bolts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "P = 12.0 # Pressure in K\n",
+ "t = 0.375 # thickness of wall in inch\n",
+ "theta = 40.0 # angle in degree\n",
+ "d_pin = 0.75 # diameter of pin in inch\n",
+ "t_G = 0.625 # thickness of gusset in inch\n",
+ "t_B = 0.375 #thickness of base plate in inch\n",
+ "d_b = 0.50 # diameter of bolt in inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (a)\n",
+ "s_b1 = P/(2*t*d_pin) # bearing stress\n",
+ "print \"Bearing stress between strut and pin\", round(s_b1,1), \"ksi\"\n",
+ "\n",
+ "#Part (b)\n",
+ "t_pin = (4*P)/(2*math.pi*(d_pin**2)) # average shear stress in the \n",
+ "print \"Shear stress in pin is \", round(t_pin,1), \"ksi\"\n",
+ "\n",
+ "# Part (c)\n",
+ "s_b2 = P/(2*t_G*d_pin) # bearing stress between pin and gusset\n",
+ "print \"Bearing stress between pin and gussets is\", s_b2, \"ksi\"\n",
+ "\n",
+ "# Part (d)\n",
+ "s_b3 = (P*math.cos(math.radians(40))/(4*t_B*d_b)) # bearing stress between anchor bolt and base plate\n",
+ "print \"Bearing stress between anchor bolts & base plate\", round(s_b3,1), \"ksi\"\n",
+ "\n",
+ "# Part (e)\n",
+ "t_bolt = (4*math.cos(math.radians(40))*P)/(4*math.pi*(d_b**2)) # shear stress in anchor bolt\n",
+ "print \"Shear stress in anchor bolts is\", round(t_bolt,1), \"ksi\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bearing stress between strut and pin 21.3 ksi\n",
+ "Shear stress in pin is 13.6 ksi\n",
+ "Bearing stress between pin and gussets is 12.8 ksi\n",
+ "Bearing stress between anchor bolts & base plate 12.3 ksi\n",
+ "Shear stress in anchor bolts is 11.7 ksi\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, page no. 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "determine stress at various parts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation\n",
+ "b1 = 1.5 # width of recmath.tangular crosssection in inch\n",
+ "t = 0.5 # thickness of recmath.tangular crosssection in inch\n",
+ "b2 = 3.0 # width of enlarged recmath.tangular crosssection in inch\n",
+ "d = 1.0 # diameter in inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "# Part (a)\n",
+ "s_1 = 16000 # maximum allowable tensile stress in Psi\n",
+ "P_1 = s_1*t*b1 \n",
+ "print \"The allowable load P1 is\", P_1, \"lb\"\n",
+ "\n",
+ "# Part (b)\n",
+ "s_2 = 11000 # maximum allowable tensile stress in Psi\n",
+ "P_2 = s_2*t*(b2-d) \n",
+ "print \"allowable load P2 at this section is\", P_2, \"lb\"\n",
+ "\n",
+ "#Part (c)\n",
+ "s_3 = 26000 # maximum allowable tensile stress in Psi\n",
+ "P_3 = s_3*t*d \n",
+ "print \"The allowable load based upon bearing between the hanger and the bolt is\", P_3, \"lb\"\n",
+ "\n",
+ "# Part (d)\n",
+ "s_4 = 6500 # maximum allowable tensile stress in Psi\n",
+ "P_4 = (math.pi/4)*(d**2)*2*s_4 \n",
+ "print \"the allowable load P4 based upon shear in the bolt is\", round(P_4), \"lb\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The allowable load P1 is 12000.0 lb\n",
+ "allowable load P2 at this section is 11000.0 lb\n",
+ "The allowable load based upon bearing between the hanger and the bolt is 13000.0 lb\n",
+ "the allowable load P4 based upon shear in the bolt is 10210.0 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, page no. 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating the cross sectional area \n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "R_ah = (2700*0.8 + 2700*2.6)/2 # Horizontal component at A in N\n",
+ "R_ch = R_ah # Horizontal component at C in N\n",
+ "R_cv = (2700*2.2 + 2700*0.4)/3 # vertical component at C in N\n",
+ "R_av = 2700 + 2700 - R_cv # vertical component at A in N\n",
+ "R_a = math.sqrt((R_ah**2)+(R_av**2))\n",
+ "R_c = math.sqrt((R_ch**2)+(R_cv**2))\n",
+ "Fab = R_a # Tensile force in bar AB\n",
+ "Vc = R_c # Shear force acting on the pin at C\n",
+ "s_allow = 125000000 # allowable stress in tension \n",
+ "t_allow = 45000000 # allowable stress in shear\n",
+ "\n",
+ "#calculation\n",
+ "Aab = Fab / s_allow # required area of bar \n",
+ "Apin = Vc / (2*t_allow) # required area of pin\n",
+ "\n",
+ "\n",
+ "print \"Required area of bar is %f\" %Apin, \"m^2\"\n",
+ "d = math.sqrt((4*Apin)/math.pi) # diameter in meter\n",
+ "print \"Required diameter of pin is %f\" %d, \"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required area of bar is 0.000057 m^2\n",
+ "Required diameter of pin is 0.008537 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Test/chapter1_1.ipynb b/Test/chapter1_1.ipynb
new file mode 100755
index 00000000..cf45a409
--- /dev/null
+++ b/Test/chapter1_1.ipynb
@@ -0,0 +1,423 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Tension Comprssion and Shear"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, page no. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Find compressive stress and strain in the post\n",
+ "\"\"\"\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "d_1 = 4 # inner diameter (inch)\n",
+ "d_2 = 4.5 #outer diameter (inch)\n",
+ "P = 26000 # pressure in pound\n",
+ "L = 16 # Length of cylinder (inch)\n",
+ "my_del = 0.012 # shortening of post (inch)\n",
+ "\n",
+ "#calculation\n",
+ "A = (math.pi/4)*((d_2**2)-(d_1**2)) #Area (inch^2)\n",
+ "s = P/A # stress\n",
+ "\n",
+ "print \"compressive stress in the post is \", round(s), \"psi\"\n",
+ "\n",
+ "e = my_del/L # strain\n",
+ "\n",
+ "print \"compressive strain in the post is %e\" %e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "compressive stress in the post is 7789.0 psi\n",
+ "compressive strain in the post is 7.500000e-04\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, page no. 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "formula for maximum stress & calculating maximum stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "W = 1500 # weight (Newton)\n",
+ "d = 0.008 #diameter(meter) \n",
+ "g = 77000 # Weight density of steel\n",
+ "L = 40 # Length of bar (m)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "A = (math.pi/4)*(d**2) # Area\n",
+ "s_max = (1500/A) + (g*L) # maximum stress\n",
+ "\n",
+ "#result\n",
+ "print \"Therefore the maximum stress in the rod is \", round(s_max,1), \"Pa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Therefore the maximum stress in the rod is 32921551.8 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3. page no. 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating change in lenght of pipe, strain in pipe, increase in diameter & increase in wall thickness\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "d1 = 4.5 # diameter in inch\n",
+ "d2 = 6 # diameter in inch\n",
+ "A = (math.pi/4)*((d2**2)-(d1**2)) # Area\n",
+ "P = 140 # pressure in K\n",
+ "s = -P/A # stress (compression)\n",
+ "E = 30000 # young's modulus in Ksi\n",
+ "e = s/E # strain\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "# Part (a)\n",
+ "my_del = e*4*12 # del = e*L \n",
+ "print \"Change in length of the pipe is\", round(my_del,3), \"inch\"\n",
+ "\n",
+ "# Part (b)\n",
+ "v = 0.30 # Poissio's ratio\n",
+ "e_ = -(v*e)\n",
+ "print \"Lateral strain in the pipe is %e\" %e_\n",
+ "\n",
+ "# Part (c)\n",
+ "del_d2 = e_*d2 \n",
+ "del_d1 = e_*d1\n",
+ "print \"Increase in the inner diameter is \", round(del_d1,6), \"inch\"\n",
+ "\n",
+ "# Part (d)\n",
+ "t = 0.75\n",
+ "del_t = e_*t\n",
+ "print \"Increase in the wall thicness is %f\" %del_t, \"inch\"\n",
+ "del_t1 = (del_d2-del_d1)/2 \n",
+ "print \"del_t1 = del_t\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in length of the pipe is -0.018 inch\n",
+ "Lateral strain in the pipe is 1.131768e-04\n",
+ "Increase in the inner diameter is 0.000509 inch\n",
+ "Increase in the wall thicness is 0.000085 inch\n",
+ "del_t1 = del_t\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, page no. 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate average shear stress and compressive stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "d = 0.02 # diameter in m\n",
+ "t = 0.008 # thickness in m\n",
+ "A = math.pi*d*t # shear area\n",
+ "P = 110000 # prassure in Newton\n",
+ "\n",
+ "#calculation\n",
+ "A1 = (math.pi/4)*(d**2) # Punch area\n",
+ "t_aver = P/A # Average shear stress \n",
+ "\n",
+ "\n",
+ "print \"Average shear stress in the plate is \", t_aver, \"Pa\"\n",
+ "s_c = P/A1 # compressive stress\n",
+ "print \"Average compressive stress in the plate is \", s_c, \"Pa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average shear stress in the plate is 218838046.751 Pa\n",
+ "Average compressive stress in the plate is 350140874.802 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eample 1.5, page no. 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate bearing stress, shear stress in pin,\n",
+ "bearing stress between pin and gussets,\n",
+ "shear stress in anchor bolts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "P = 12.0 # Pressure in K\n",
+ "t = 0.375 # thickness of wall in inch\n",
+ "theta = 40.0 # angle in degree\n",
+ "d_pin = 0.75 # diameter of pin in inch\n",
+ "t_G = 0.625 # thickness of gusset in inch\n",
+ "t_B = 0.375 #thickness of base plate in inch\n",
+ "d_b = 0.50 # diameter of bolt in inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (a)\n",
+ "s_b1 = P/(2*t*d_pin) # bearing stress\n",
+ "print \"Bearing stress between strut and pin\", round(s_b1,1), \"ksi\"\n",
+ "\n",
+ "#Part (b)\n",
+ "t_pin = (4*P)/(2*math.pi*(d_pin**2)) # average shear stress in the \n",
+ "print \"Shear stress in pin is \", round(t_pin,1), \"ksi\"\n",
+ "\n",
+ "# Part (c)\n",
+ "s_b2 = P/(2*t_G*d_pin) # bearing stress between pin and gusset\n",
+ "print \"Bearing stress between pin and gussets is\", s_b2, \"ksi\"\n",
+ "\n",
+ "# Part (d)\n",
+ "s_b3 = (P*math.cos(math.radians(40))/(4*t_B*d_b)) # bearing stress between anchor bolt and base plate\n",
+ "print \"Bearing stress between anchor bolts & base plate\", round(s_b3,1), \"ksi\"\n",
+ "\n",
+ "# Part (e)\n",
+ "t_bolt = (4*math.cos(math.radians(40))*P)/(4*math.pi*(d_b**2)) # shear stress in anchor bolt\n",
+ "print \"Shear stress in anchor bolts is\", round(t_bolt,1), \"ksi\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bearing stress between strut and pin 21.3 ksi\n",
+ "Shear stress in pin is 13.6 ksi\n",
+ "Bearing stress between pin and gussets is 12.8 ksi\n",
+ "Bearing stress between anchor bolts & base plate 12.3 ksi\n",
+ "Shear stress in anchor bolts is 11.7 ksi\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, page no. 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "determine stress at various parts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation\n",
+ "b1 = 1.5 # width of recmath.tangular crosssection in inch\n",
+ "t = 0.5 # thickness of recmath.tangular crosssection in inch\n",
+ "b2 = 3.0 # width of enlarged recmath.tangular crosssection in inch\n",
+ "d = 1.0 # diameter in inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "# Part (a)\n",
+ "s_1 = 16000 # maximum allowable tensile stress in Psi\n",
+ "P_1 = s_1*t*b1 \n",
+ "print \"The allowable load P1 is\", P_1, \"lb\"\n",
+ "\n",
+ "# Part (b)\n",
+ "s_2 = 11000 # maximum allowable tensile stress in Psi\n",
+ "P_2 = s_2*t*(b2-d) \n",
+ "print \"allowable load P2 at this section is\", P_2, \"lb\"\n",
+ "\n",
+ "#Part (c)\n",
+ "s_3 = 26000 # maximum allowable tensile stress in Psi\n",
+ "P_3 = s_3*t*d \n",
+ "print \"The allowable load based upon bearing between the hanger and the bolt is\", P_3, \"lb\"\n",
+ "\n",
+ "# Part (d)\n",
+ "s_4 = 6500 # maximum allowable tensile stress in Psi\n",
+ "P_4 = (math.pi/4)*(d**2)*2*s_4 \n",
+ "print \"the allowable load P4 based upon shear in the bolt is\", round(P_4), \"lb\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The allowable load P1 is 12000.0 lb\n",
+ "allowable load P2 at this section is 11000.0 lb\n",
+ "The allowable load based upon bearing between the hanger and the bolt is 13000.0 lb\n",
+ "the allowable load P4 based upon shear in the bolt is 10210.0 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, page no. 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating the cross sectional area \n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "R_ah = (2700*0.8 + 2700*2.6)/2 # Horizontal component at A in N\n",
+ "R_ch = R_ah # Horizontal component at C in N\n",
+ "R_cv = (2700*2.2 + 2700*0.4)/3 # vertical component at C in N\n",
+ "R_av = 2700 + 2700 - R_cv # vertical component at A in N\n",
+ "R_a = math.sqrt((R_ah**2)+(R_av**2))\n",
+ "R_c = math.sqrt((R_ch**2)+(R_cv**2))\n",
+ "Fab = R_a # Tensile force in bar AB\n",
+ "Vc = R_c # Shear force acting on the pin at C\n",
+ "s_allow = 125000000 # allowable stress in tension \n",
+ "t_allow = 45000000 # allowable stress in shear\n",
+ "\n",
+ "#calculation\n",
+ "Aab = Fab / s_allow # required area of bar \n",
+ "Apin = Vc / (2*t_allow) # required area of pin\n",
+ "\n",
+ "\n",
+ "print \"Required area of bar is %f\" %Apin, \"m^2\"\n",
+ "d = math.sqrt((4*Apin)/math.pi) # diameter in meter\n",
+ "print \"Required diameter of pin is %f\" %d, \"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required area of bar is 0.000057 m^2\n",
+ "Required diameter of pin is 0.008537 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Test/chapter1_2.ipynb b/Test/chapter1_2.ipynb
new file mode 100755
index 00000000..cf45a409
--- /dev/null
+++ b/Test/chapter1_2.ipynb
@@ -0,0 +1,423 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Tension Comprssion and Shear"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1, page no. 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Find compressive stress and strain in the post\n",
+ "\"\"\"\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "d_1 = 4 # inner diameter (inch)\n",
+ "d_2 = 4.5 #outer diameter (inch)\n",
+ "P = 26000 # pressure in pound\n",
+ "L = 16 # Length of cylinder (inch)\n",
+ "my_del = 0.012 # shortening of post (inch)\n",
+ "\n",
+ "#calculation\n",
+ "A = (math.pi/4)*((d_2**2)-(d_1**2)) #Area (inch^2)\n",
+ "s = P/A # stress\n",
+ "\n",
+ "print \"compressive stress in the post is \", round(s), \"psi\"\n",
+ "\n",
+ "e = my_del/L # strain\n",
+ "\n",
+ "print \"compressive strain in the post is %e\" %e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "compressive stress in the post is 7789.0 psi\n",
+ "compressive strain in the post is 7.500000e-04\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, page no. 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "formula for maximum stress & calculating maximum stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "W = 1500 # weight (Newton)\n",
+ "d = 0.008 #diameter(meter) \n",
+ "g = 77000 # Weight density of steel\n",
+ "L = 40 # Length of bar (m)\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "A = (math.pi/4)*(d**2) # Area\n",
+ "s_max = (1500/A) + (g*L) # maximum stress\n",
+ "\n",
+ "#result\n",
+ "print \"Therefore the maximum stress in the rod is \", round(s_max,1), \"Pa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Therefore the maximum stress in the rod is 32921551.8 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3. page no. 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating change in lenght of pipe, strain in pipe, increase in diameter & increase in wall thickness\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "d1 = 4.5 # diameter in inch\n",
+ "d2 = 6 # diameter in inch\n",
+ "A = (math.pi/4)*((d2**2)-(d1**2)) # Area\n",
+ "P = 140 # pressure in K\n",
+ "s = -P/A # stress (compression)\n",
+ "E = 30000 # young's modulus in Ksi\n",
+ "e = s/E # strain\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "# Part (a)\n",
+ "my_del = e*4*12 # del = e*L \n",
+ "print \"Change in length of the pipe is\", round(my_del,3), \"inch\"\n",
+ "\n",
+ "# Part (b)\n",
+ "v = 0.30 # Poissio's ratio\n",
+ "e_ = -(v*e)\n",
+ "print \"Lateral strain in the pipe is %e\" %e_\n",
+ "\n",
+ "# Part (c)\n",
+ "del_d2 = e_*d2 \n",
+ "del_d1 = e_*d1\n",
+ "print \"Increase in the inner diameter is \", round(del_d1,6), \"inch\"\n",
+ "\n",
+ "# Part (d)\n",
+ "t = 0.75\n",
+ "del_t = e_*t\n",
+ "print \"Increase in the wall thicness is %f\" %del_t, \"inch\"\n",
+ "del_t1 = (del_d2-del_d1)/2 \n",
+ "print \"del_t1 = del_t\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in length of the pipe is -0.018 inch\n",
+ "Lateral strain in the pipe is 1.131768e-04\n",
+ "Increase in the inner diameter is 0.000509 inch\n",
+ "Increase in the wall thicness is 0.000085 inch\n",
+ "del_t1 = del_t\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, page no. 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate average shear stress and compressive stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "d = 0.02 # diameter in m\n",
+ "t = 0.008 # thickness in m\n",
+ "A = math.pi*d*t # shear area\n",
+ "P = 110000 # prassure in Newton\n",
+ "\n",
+ "#calculation\n",
+ "A1 = (math.pi/4)*(d**2) # Punch area\n",
+ "t_aver = P/A # Average shear stress \n",
+ "\n",
+ "\n",
+ "print \"Average shear stress in the plate is \", t_aver, \"Pa\"\n",
+ "s_c = P/A1 # compressive stress\n",
+ "print \"Average compressive stress in the plate is \", s_c, \"Pa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average shear stress in the plate is 218838046.751 Pa\n",
+ "Average compressive stress in the plate is 350140874.802 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eample 1.5, page no. 36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate bearing stress, shear stress in pin,\n",
+ "bearing stress between pin and gussets,\n",
+ "shear stress in anchor bolts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "P = 12.0 # Pressure in K\n",
+ "t = 0.375 # thickness of wall in inch\n",
+ "theta = 40.0 # angle in degree\n",
+ "d_pin = 0.75 # diameter of pin in inch\n",
+ "t_G = 0.625 # thickness of gusset in inch\n",
+ "t_B = 0.375 #thickness of base plate in inch\n",
+ "d_b = 0.50 # diameter of bolt in inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part (a)\n",
+ "s_b1 = P/(2*t*d_pin) # bearing stress\n",
+ "print \"Bearing stress between strut and pin\", round(s_b1,1), \"ksi\"\n",
+ "\n",
+ "#Part (b)\n",
+ "t_pin = (4*P)/(2*math.pi*(d_pin**2)) # average shear stress in the \n",
+ "print \"Shear stress in pin is \", round(t_pin,1), \"ksi\"\n",
+ "\n",
+ "# Part (c)\n",
+ "s_b2 = P/(2*t_G*d_pin) # bearing stress between pin and gusset\n",
+ "print \"Bearing stress between pin and gussets is\", s_b2, \"ksi\"\n",
+ "\n",
+ "# Part (d)\n",
+ "s_b3 = (P*math.cos(math.radians(40))/(4*t_B*d_b)) # bearing stress between anchor bolt and base plate\n",
+ "print \"Bearing stress between anchor bolts & base plate\", round(s_b3,1), \"ksi\"\n",
+ "\n",
+ "# Part (e)\n",
+ "t_bolt = (4*math.cos(math.radians(40))*P)/(4*math.pi*(d_b**2)) # shear stress in anchor bolt\n",
+ "print \"Shear stress in anchor bolts is\", round(t_bolt,1), \"ksi\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bearing stress between strut and pin 21.3 ksi\n",
+ "Shear stress in pin is 13.6 ksi\n",
+ "Bearing stress between pin and gussets is 12.8 ksi\n",
+ "Bearing stress between anchor bolts & base plate 12.3 ksi\n",
+ "Shear stress in anchor bolts is 11.7 ksi\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, page no. 42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "determine stress at various parts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math\n",
+ "\n",
+ "#initialisation\n",
+ "b1 = 1.5 # width of recmath.tangular crosssection in inch\n",
+ "t = 0.5 # thickness of recmath.tangular crosssection in inch\n",
+ "b2 = 3.0 # width of enlarged recmath.tangular crosssection in inch\n",
+ "d = 1.0 # diameter in inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "# Part (a)\n",
+ "s_1 = 16000 # maximum allowable tensile stress in Psi\n",
+ "P_1 = s_1*t*b1 \n",
+ "print \"The allowable load P1 is\", P_1, \"lb\"\n",
+ "\n",
+ "# Part (b)\n",
+ "s_2 = 11000 # maximum allowable tensile stress in Psi\n",
+ "P_2 = s_2*t*(b2-d) \n",
+ "print \"allowable load P2 at this section is\", P_2, \"lb\"\n",
+ "\n",
+ "#Part (c)\n",
+ "s_3 = 26000 # maximum allowable tensile stress in Psi\n",
+ "P_3 = s_3*t*d \n",
+ "print \"The allowable load based upon bearing between the hanger and the bolt is\", P_3, \"lb\"\n",
+ "\n",
+ "# Part (d)\n",
+ "s_4 = 6500 # maximum allowable tensile stress in Psi\n",
+ "P_4 = (math.pi/4)*(d**2)*2*s_4 \n",
+ "print \"the allowable load P4 based upon shear in the bolt is\", round(P_4), \"lb\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The allowable load P1 is 12000.0 lb\n",
+ "allowable load P2 at this section is 11000.0 lb\n",
+ "The allowable load based upon bearing between the hanger and the bolt is 13000.0 lb\n",
+ "the allowable load P4 based upon shear in the bolt is 10210.0 lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, page no. 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating the cross sectional area \n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "R_ah = (2700*0.8 + 2700*2.6)/2 # Horizontal component at A in N\n",
+ "R_ch = R_ah # Horizontal component at C in N\n",
+ "R_cv = (2700*2.2 + 2700*0.4)/3 # vertical component at C in N\n",
+ "R_av = 2700 + 2700 - R_cv # vertical component at A in N\n",
+ "R_a = math.sqrt((R_ah**2)+(R_av**2))\n",
+ "R_c = math.sqrt((R_ch**2)+(R_cv**2))\n",
+ "Fab = R_a # Tensile force in bar AB\n",
+ "Vc = R_c # Shear force acting on the pin at C\n",
+ "s_allow = 125000000 # allowable stress in tension \n",
+ "t_allow = 45000000 # allowable stress in shear\n",
+ "\n",
+ "#calculation\n",
+ "Aab = Fab / s_allow # required area of bar \n",
+ "Apin = Vc / (2*t_allow) # required area of pin\n",
+ "\n",
+ "\n",
+ "print \"Required area of bar is %f\" %Apin, \"m^2\"\n",
+ "d = math.sqrt((4*Apin)/math.pi) # diameter in meter\n",
+ "print \"Required diameter of pin is %f\" %d, \"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Required area of bar is 0.000057 m^2\n",
+ "Required diameter of pin is 0.008537 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Test/chapter2.ipynb b/Test/chapter2.ipynb
new file mode 100755
index 00000000..c4e1ad0f
--- /dev/null
+++ b/Test/chapter2.ipynb
@@ -0,0 +1,501 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Axially Loaded Members"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, page no. 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating the number of revolutions for the nut\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "W = 2.0 #lb\n",
+ "b = 10.5 #inch\n",
+ "c = 6.4 #inch\n",
+ "k = 4.2 #inch\n",
+ "p = 1.0/16.0 #inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "n = (W*b)/(c*k*p) #inch\n",
+ "\n",
+ "#result\n",
+ "\n",
+ "print \" No. of revolution required = \", n, \"revolutions\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " No. of revolution required = 12.5 revolutions\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, page no. 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "finding maximum allowable load\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "import numpy\n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "Fce_ = 2.0 #dummy variable\n",
+ "Fbd_ = 3.0 #dummy variable \n",
+ "Lbd = 480.0 #mm\n",
+ "Lce = 600.0 #mm\n",
+ "E = 205e6 #205Gpa\n",
+ "Abd = 1020.0 #mm\n",
+ "Ace = 520.0 #mm\n",
+ "\n",
+ "#calculation\n",
+ "Dbd_ = (Fbd_*Lbd)/(E*Abd) #dummy variable\n",
+ "Dce_ = (Fce_*Lce)/(E*Ace) #dummy variable\n",
+ "Da = 1 #limiting value\n",
+ "P = ((((450+225)/225)*(Dbd_ + Dce_) - Dce_ )**(-1)) * Da \n",
+ "Fce = 2*P # Real value in newton\n",
+ "Fbd = 3*P #real value in newton\n",
+ "Dbd = (Fbd*Lbd)/(E*Abd) #print lacement in mm\n",
+ "Dce = (Fce*Lce)/(E*Ace) # print lacement in mm\n",
+ "a = numpy.degrees(numpy.arctan(((Da+Dce)/675))) #alpha in degree\n",
+ "\n",
+ "#result\n",
+ "print \"alpha = \", round(a,2), \"degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "alpha = 0.11 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no. 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculation if vertical displacement\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "P1 = 2100.0 #lb\n",
+ "P2 = 5600.0 #lb\n",
+ "b = 25.0 #inch\n",
+ "a = 28.0 #inch\n",
+ "A1 = 0.25 #inch^2\n",
+ "A2 = 0.15 #inch^2\n",
+ "L1 = 20.0 #inch\n",
+ "L2 = 34.8 #inch\n",
+ "E = 29e6 #29Gpa\n",
+ "\n",
+ "#Calculations\n",
+ "P3 = (P2*b)/a \n",
+ "Ra = P3-P1\n",
+ "N1 = -Ra \n",
+ "N2 = P1 \n",
+ "D = ((N1*L1)/(E*A1)) + ((N2*L2)/(E*A2)) #print lacement\n",
+ "\n",
+ "#Result\n",
+ "print \"Downward print lacement is = \", D, \"inch\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Downward print lacement is = 0.0088 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, page no. 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "obtaing formula and calculating allowable load\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#Numerical calculation of allowable load\n",
+ "\n",
+ "d1 = 4.0 #mm\n",
+ "d2 = 3.0 #mm\n",
+ "A1 = (math.pi*(d1**2))/4 #area\n",
+ "A2 = (math.pi*(d2**2))/4 #area\n",
+ "L1 = 0.4 #meter\n",
+ "L2 = 0.3 #meter\n",
+ "E1 = 72e9 #Gpa\n",
+ "E2 = 45e9 #Gpa\n",
+ "f1 = L1/(E1*A1) * 1e6 # To cpmpensate for the mm**2\n",
+ "f2 = L2/(E2*A2) * 1e6 \n",
+ "s1 = 200e6 #stress\n",
+ "s2 = 175e6 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "P1 = ( (s1*A1*(4*f1 + f2))/(3*f2) ) * 1e-6 # To cpmpensate for the mm**2\n",
+ "P2 = ( (s2*A2*(4*f1 + f2))/(6*f1) ) * 1e-6 \n",
+ "\n",
+ "#Result\n",
+ "print \"Newton Minimum allowable stress aomong the two P1 and P2 is smaller one, therefore MAS = \", P2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Newton Minimum allowable stress aomong the two P1 and P2 is smaller one, therefore MAS = 1264.49104307\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, page no. 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate stress acting on inclined section &\n",
+ "the complete state of stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "P = 90000.0 #newton\n",
+ "A = 1200e-6 # meter^2\n",
+ "s_x = -P/A #stress\n",
+ "t_1 = 25.0 #for the stresses on ab and cd plane\n",
+ "\n",
+ "#Calculations\n",
+ "s_1 = s_x*(math.cos(math.radians(t_1))**2)\n",
+ "T_1 = -s_x*math.cos(math.radians(t_1))*math.sin(math.radians(t_1))\n",
+ "t_2 = -65.0 #for the stresses on ad and bc plane\n",
+ "s_2 = s_x*(math.cos(math.radians(t_2))**2)\n",
+ "T_2 = -s_x*math.cos(math.radians(t_2))*math.sin(math.radians(t_2))\n",
+ "\n",
+ "#Result\n",
+ "print \"The normal and shear stresses on the plane ab and cd are\", round((T_1/1E+6),2), round((s_1/1E+6),2), \"MPa respecively\" \n",
+ "print \"respecively The normal and shear stresses on the plane ad and bc are\", round((T_2/1E+6),2), round((s_2/1E+6),2), \"MPa respecively\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The normal and shear stresses on the plane ab and cd are 28.73 -61.6 MPa respecively\n",
+ "respecively The normal and shear stresses on the plane ad and bc are -28.73 -13.4 MPa respecively\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, page no. 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Calculate the vertical displacement of the joint\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Value of s_x based on allowable stresses on glued joint\n",
+ "\n",
+ "#initialisation\n",
+ "s_t = -750.0 #psi\n",
+ "t = -50.0 #degree\n",
+ "T_t = -500.0 #psi\n",
+ "\n",
+ "sg_x_1 = s_t/(math.cos(math.radians(t))**2)\n",
+ "sg_x_2 = -T_t/(math.cos(math.radians(t))*math.sin(math.radians(t)))\n",
+ "\n",
+ "# Value of s_x based on allowable stresses on plastic\n",
+ "\n",
+ "sp_x_1 = -1100.0 #psi\n",
+ "T_t_p = 600.0 #psi\n",
+ "t_p = 45.0 #degree\n",
+ "sp_x_2 = -T_t_p/(math.cos(math.radians(t_p))*math.sin(math.radians(t_p)))\n",
+ "\n",
+ "# Minimum width of bar\n",
+ "\n",
+ "P = 8000.0 #lb\n",
+ "A = P/sg_x_2\n",
+ "b_min = math.sqrt(abs(A)) #inch\n",
+ "print \"The minimum width of the bar is\", round(b_min,2), \"inch\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum width of the bar is 2.81 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, page no. 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Comparison of energy-absorbing capacity with different type of bolts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "#Bolt with reduced shank diameter\n",
+ "\n",
+ "#initialisation\n",
+ "g = 1.50 # inch\n",
+ "d = 0.5 #inch\n",
+ "t = 0.25 #inch\n",
+ "d_r = 0.406 #inch\n",
+ "L = 13.5 #inch\n",
+ "\n",
+ "#calculation\n",
+ "ratio = ((g*(d**2))/(((g-t)*(d_r**2))+(t*(d**2)))) #U2/U1\n",
+ "\n",
+ "print \"The energy absorbing capacity of the bolts with reduced shank diameter\", round(ratio,2)\n",
+ "ratio_1 = ( (((L-t)*(d_r**2))+(t*(d**2))) / ((2*(g-t)*(d_r**2))+2*(t*(d**2))) ) #U3/2U1\n",
+ "print \"The energy absorbing capacity of the long bolts\", round(ratio_1,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy absorbing capacity of the bolts with reduced shank diameter 1.4\n",
+ "The energy absorbing capacity of the long bolts 4.18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 2.16, page no. 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Determine the maximum elongation and tensile stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "# Maximum elongation\n",
+ "M = 20 #kg\n",
+ "g = 9.81 #m/s^2\n",
+ "L = 2 #meter\n",
+ "E = 210e9 #210Gpa\n",
+ "h = 0.15 #meter\n",
+ "diameter = 0.015 #milimeter\n",
+ "\n",
+ "#Calculations & Result\n",
+ "A = (math.pi/4)*(diameter**2) #area\n",
+ "D_st = ((M*g*L)/(E*A)) \n",
+ "D_max = D_st*(1+(1+(2*h/D_st))**0.5) \n",
+ "D_max_1 = math.sqrt(2*h*D_st) # another approach to find D_max\n",
+ "i = D_max / D_st # Impact factor\n",
+ "print \"Maximum elongation is\",round((D_max/1E-3),2), \"mm\" # Maximum tensile stress\n",
+ "s_max = (E*D_max)/L #Maximum tensile stress\n",
+ "s_st = (M*g)/A #static stress\n",
+ "i_1 = s_max / s_st #Impact factor \n",
+ "print \"Maximum tensile stress is \", round((s_max/1E+6),2), \"MPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum elongation is 1.79 mm\n",
+ "Maximum tensile stress is 188.13 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, page no. 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "determine displacement at the lower end of bar in various conditions\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "\n",
+ "#initialisation\n",
+ "P1 = 108000.0 #Newton\n",
+ "P2 = 27000.0 #Newton\n",
+ "L = 2.2 #meter\n",
+ "A = 480.0 #mm^2\n",
+ "\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "# Displacement due to load P1 acting alone\n",
+ "s = (P1/A) #stress in MPa\n",
+ "e = (s/70000) + (1/628.2)*((s/260)**10) #strain\n",
+ "D_b = e*L*1e3 #elongation in mm\n",
+ "print \"elongation when only P1 load acting is = \", round(D_b,2), \" mm\"\n",
+ "\n",
+ "# Displacement due to load P2 acting alone\n",
+ "s_1 = (P2/A) #stress in MPa\n",
+ "e_1 = (s_1/70000) + (1/628.2)*((s_1/260)**10) #strain\n",
+ "D_b_1 = e_1*(L/2)*1e3 #elongation in mm (no elongation in lower half)\n",
+ "print \"elongation when only P2 load acting is = \", round(D_b_1,2), \" mm\"\n",
+ "\n",
+ "# Displacement due to both load acting simonmath.taneously\n",
+ "#upper half\n",
+ "s_2 = (P1/A) #stress in MPa\n",
+ "e_2 = (s_2/70000) + (1/628.2)*((s_2/260)**10) #strain\n",
+ "\n",
+ "#lower half\n",
+ "s_3 = (P1+P2)/A #stress in MPa\n",
+ "e_3 = (s_3/70000) + (1/628.2)*((s_3/260)**10) #strain\n",
+ "D_b_2 = ((e_2*L)/2 + (e_3*L)/2) * 1e3 # elongation in mm\n",
+ "print \"elongation when P1 and P2 both loads are acting is = \", round(D_b_2,2), \" mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "elongation when only P1 load acting is = 7.9 mm\n",
+ "elongation when only P2 load acting is = 0.88 mm\n",
+ "elongation when P1 and P2 both loads are acting is = 12.21 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Test/chapter2_1.ipynb b/Test/chapter2_1.ipynb
new file mode 100755
index 00000000..c4e1ad0f
--- /dev/null
+++ b/Test/chapter2_1.ipynb
@@ -0,0 +1,501 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Axially Loaded Members"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, page no. 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating the number of revolutions for the nut\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "W = 2.0 #lb\n",
+ "b = 10.5 #inch\n",
+ "c = 6.4 #inch\n",
+ "k = 4.2 #inch\n",
+ "p = 1.0/16.0 #inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "n = (W*b)/(c*k*p) #inch\n",
+ "\n",
+ "#result\n",
+ "\n",
+ "print \" No. of revolution required = \", n, \"revolutions\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " No. of revolution required = 12.5 revolutions\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, page no. 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "finding maximum allowable load\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "import numpy\n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "Fce_ = 2.0 #dummy variable\n",
+ "Fbd_ = 3.0 #dummy variable \n",
+ "Lbd = 480.0 #mm\n",
+ "Lce = 600.0 #mm\n",
+ "E = 205e6 #205Gpa\n",
+ "Abd = 1020.0 #mm\n",
+ "Ace = 520.0 #mm\n",
+ "\n",
+ "#calculation\n",
+ "Dbd_ = (Fbd_*Lbd)/(E*Abd) #dummy variable\n",
+ "Dce_ = (Fce_*Lce)/(E*Ace) #dummy variable\n",
+ "Da = 1 #limiting value\n",
+ "P = ((((450+225)/225)*(Dbd_ + Dce_) - Dce_ )**(-1)) * Da \n",
+ "Fce = 2*P # Real value in newton\n",
+ "Fbd = 3*P #real value in newton\n",
+ "Dbd = (Fbd*Lbd)/(E*Abd) #print lacement in mm\n",
+ "Dce = (Fce*Lce)/(E*Ace) # print lacement in mm\n",
+ "a = numpy.degrees(numpy.arctan(((Da+Dce)/675))) #alpha in degree\n",
+ "\n",
+ "#result\n",
+ "print \"alpha = \", round(a,2), \"degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "alpha = 0.11 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no. 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculation if vertical displacement\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "P1 = 2100.0 #lb\n",
+ "P2 = 5600.0 #lb\n",
+ "b = 25.0 #inch\n",
+ "a = 28.0 #inch\n",
+ "A1 = 0.25 #inch^2\n",
+ "A2 = 0.15 #inch^2\n",
+ "L1 = 20.0 #inch\n",
+ "L2 = 34.8 #inch\n",
+ "E = 29e6 #29Gpa\n",
+ "\n",
+ "#Calculations\n",
+ "P3 = (P2*b)/a \n",
+ "Ra = P3-P1\n",
+ "N1 = -Ra \n",
+ "N2 = P1 \n",
+ "D = ((N1*L1)/(E*A1)) + ((N2*L2)/(E*A2)) #print lacement\n",
+ "\n",
+ "#Result\n",
+ "print \"Downward print lacement is = \", D, \"inch\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Downward print lacement is = 0.0088 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, page no. 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "obtaing formula and calculating allowable load\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#Numerical calculation of allowable load\n",
+ "\n",
+ "d1 = 4.0 #mm\n",
+ "d2 = 3.0 #mm\n",
+ "A1 = (math.pi*(d1**2))/4 #area\n",
+ "A2 = (math.pi*(d2**2))/4 #area\n",
+ "L1 = 0.4 #meter\n",
+ "L2 = 0.3 #meter\n",
+ "E1 = 72e9 #Gpa\n",
+ "E2 = 45e9 #Gpa\n",
+ "f1 = L1/(E1*A1) * 1e6 # To cpmpensate for the mm**2\n",
+ "f2 = L2/(E2*A2) * 1e6 \n",
+ "s1 = 200e6 #stress\n",
+ "s2 = 175e6 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "P1 = ( (s1*A1*(4*f1 + f2))/(3*f2) ) * 1e-6 # To cpmpensate for the mm**2\n",
+ "P2 = ( (s2*A2*(4*f1 + f2))/(6*f1) ) * 1e-6 \n",
+ "\n",
+ "#Result\n",
+ "print \"Newton Minimum allowable stress aomong the two P1 and P2 is smaller one, therefore MAS = \", P2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Newton Minimum allowable stress aomong the two P1 and P2 is smaller one, therefore MAS = 1264.49104307\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, page no. 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate stress acting on inclined section &\n",
+ "the complete state of stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "P = 90000.0 #newton\n",
+ "A = 1200e-6 # meter^2\n",
+ "s_x = -P/A #stress\n",
+ "t_1 = 25.0 #for the stresses on ab and cd plane\n",
+ "\n",
+ "#Calculations\n",
+ "s_1 = s_x*(math.cos(math.radians(t_1))**2)\n",
+ "T_1 = -s_x*math.cos(math.radians(t_1))*math.sin(math.radians(t_1))\n",
+ "t_2 = -65.0 #for the stresses on ad and bc plane\n",
+ "s_2 = s_x*(math.cos(math.radians(t_2))**2)\n",
+ "T_2 = -s_x*math.cos(math.radians(t_2))*math.sin(math.radians(t_2))\n",
+ "\n",
+ "#Result\n",
+ "print \"The normal and shear stresses on the plane ab and cd are\", round((T_1/1E+6),2), round((s_1/1E+6),2), \"MPa respecively\" \n",
+ "print \"respecively The normal and shear stresses on the plane ad and bc are\", round((T_2/1E+6),2), round((s_2/1E+6),2), \"MPa respecively\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The normal and shear stresses on the plane ab and cd are 28.73 -61.6 MPa respecively\n",
+ "respecively The normal and shear stresses on the plane ad and bc are -28.73 -13.4 MPa respecively\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, page no. 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Calculate the vertical displacement of the joint\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Value of s_x based on allowable stresses on glued joint\n",
+ "\n",
+ "#initialisation\n",
+ "s_t = -750.0 #psi\n",
+ "t = -50.0 #degree\n",
+ "T_t = -500.0 #psi\n",
+ "\n",
+ "sg_x_1 = s_t/(math.cos(math.radians(t))**2)\n",
+ "sg_x_2 = -T_t/(math.cos(math.radians(t))*math.sin(math.radians(t)))\n",
+ "\n",
+ "# Value of s_x based on allowable stresses on plastic\n",
+ "\n",
+ "sp_x_1 = -1100.0 #psi\n",
+ "T_t_p = 600.0 #psi\n",
+ "t_p = 45.0 #degree\n",
+ "sp_x_2 = -T_t_p/(math.cos(math.radians(t_p))*math.sin(math.radians(t_p)))\n",
+ "\n",
+ "# Minimum width of bar\n",
+ "\n",
+ "P = 8000.0 #lb\n",
+ "A = P/sg_x_2\n",
+ "b_min = math.sqrt(abs(A)) #inch\n",
+ "print \"The minimum width of the bar is\", round(b_min,2), \"inch\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum width of the bar is 2.81 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, page no. 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Comparison of energy-absorbing capacity with different type of bolts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "#Bolt with reduced shank diameter\n",
+ "\n",
+ "#initialisation\n",
+ "g = 1.50 # inch\n",
+ "d = 0.5 #inch\n",
+ "t = 0.25 #inch\n",
+ "d_r = 0.406 #inch\n",
+ "L = 13.5 #inch\n",
+ "\n",
+ "#calculation\n",
+ "ratio = ((g*(d**2))/(((g-t)*(d_r**2))+(t*(d**2)))) #U2/U1\n",
+ "\n",
+ "print \"The energy absorbing capacity of the bolts with reduced shank diameter\", round(ratio,2)\n",
+ "ratio_1 = ( (((L-t)*(d_r**2))+(t*(d**2))) / ((2*(g-t)*(d_r**2))+2*(t*(d**2))) ) #U3/2U1\n",
+ "print \"The energy absorbing capacity of the long bolts\", round(ratio_1,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy absorbing capacity of the bolts with reduced shank diameter 1.4\n",
+ "The energy absorbing capacity of the long bolts 4.18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 2.16, page no. 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Determine the maximum elongation and tensile stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "# Maximum elongation\n",
+ "M = 20 #kg\n",
+ "g = 9.81 #m/s^2\n",
+ "L = 2 #meter\n",
+ "E = 210e9 #210Gpa\n",
+ "h = 0.15 #meter\n",
+ "diameter = 0.015 #milimeter\n",
+ "\n",
+ "#Calculations & Result\n",
+ "A = (math.pi/4)*(diameter**2) #area\n",
+ "D_st = ((M*g*L)/(E*A)) \n",
+ "D_max = D_st*(1+(1+(2*h/D_st))**0.5) \n",
+ "D_max_1 = math.sqrt(2*h*D_st) # another approach to find D_max\n",
+ "i = D_max / D_st # Impact factor\n",
+ "print \"Maximum elongation is\",round((D_max/1E-3),2), \"mm\" # Maximum tensile stress\n",
+ "s_max = (E*D_max)/L #Maximum tensile stress\n",
+ "s_st = (M*g)/A #static stress\n",
+ "i_1 = s_max / s_st #Impact factor \n",
+ "print \"Maximum tensile stress is \", round((s_max/1E+6),2), \"MPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum elongation is 1.79 mm\n",
+ "Maximum tensile stress is 188.13 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, page no. 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "determine displacement at the lower end of bar in various conditions\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "\n",
+ "#initialisation\n",
+ "P1 = 108000.0 #Newton\n",
+ "P2 = 27000.0 #Newton\n",
+ "L = 2.2 #meter\n",
+ "A = 480.0 #mm^2\n",
+ "\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "# Displacement due to load P1 acting alone\n",
+ "s = (P1/A) #stress in MPa\n",
+ "e = (s/70000) + (1/628.2)*((s/260)**10) #strain\n",
+ "D_b = e*L*1e3 #elongation in mm\n",
+ "print \"elongation when only P1 load acting is = \", round(D_b,2), \" mm\"\n",
+ "\n",
+ "# Displacement due to load P2 acting alone\n",
+ "s_1 = (P2/A) #stress in MPa\n",
+ "e_1 = (s_1/70000) + (1/628.2)*((s_1/260)**10) #strain\n",
+ "D_b_1 = e_1*(L/2)*1e3 #elongation in mm (no elongation in lower half)\n",
+ "print \"elongation when only P2 load acting is = \", round(D_b_1,2), \" mm\"\n",
+ "\n",
+ "# Displacement due to both load acting simonmath.taneously\n",
+ "#upper half\n",
+ "s_2 = (P1/A) #stress in MPa\n",
+ "e_2 = (s_2/70000) + (1/628.2)*((s_2/260)**10) #strain\n",
+ "\n",
+ "#lower half\n",
+ "s_3 = (P1+P2)/A #stress in MPa\n",
+ "e_3 = (s_3/70000) + (1/628.2)*((s_3/260)**10) #strain\n",
+ "D_b_2 = ((e_2*L)/2 + (e_3*L)/2) * 1e3 # elongation in mm\n",
+ "print \"elongation when P1 and P2 both loads are acting is = \", round(D_b_2,2), \" mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "elongation when only P1 load acting is = 7.9 mm\n",
+ "elongation when only P2 load acting is = 0.88 mm\n",
+ "elongation when P1 and P2 both loads are acting is = 12.21 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Test/chapter2_2.ipynb b/Test/chapter2_2.ipynb
new file mode 100755
index 00000000..c4e1ad0f
--- /dev/null
+++ b/Test/chapter2_2.ipynb
@@ -0,0 +1,501 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Axially Loaded Members"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, page no. 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculating the number of revolutions for the nut\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "W = 2.0 #lb\n",
+ "b = 10.5 #inch\n",
+ "c = 6.4 #inch\n",
+ "k = 4.2 #inch\n",
+ "p = 1.0/16.0 #inch\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "n = (W*b)/(c*k*p) #inch\n",
+ "\n",
+ "#result\n",
+ "\n",
+ "print \" No. of revolution required = \", n, \"revolutions\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " No. of revolution required = 12.5 revolutions\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, page no. 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "finding maximum allowable load\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "import numpy\n",
+ "\n",
+ "#initialisation\n",
+ "\n",
+ "Fce_ = 2.0 #dummy variable\n",
+ "Fbd_ = 3.0 #dummy variable \n",
+ "Lbd = 480.0 #mm\n",
+ "Lce = 600.0 #mm\n",
+ "E = 205e6 #205Gpa\n",
+ "Abd = 1020.0 #mm\n",
+ "Ace = 520.0 #mm\n",
+ "\n",
+ "#calculation\n",
+ "Dbd_ = (Fbd_*Lbd)/(E*Abd) #dummy variable\n",
+ "Dce_ = (Fce_*Lce)/(E*Ace) #dummy variable\n",
+ "Da = 1 #limiting value\n",
+ "P = ((((450+225)/225)*(Dbd_ + Dce_) - Dce_ )**(-1)) * Da \n",
+ "Fce = 2*P # Real value in newton\n",
+ "Fbd = 3*P #real value in newton\n",
+ "Dbd = (Fbd*Lbd)/(E*Abd) #print lacement in mm\n",
+ "Dce = (Fce*Lce)/(E*Ace) # print lacement in mm\n",
+ "a = numpy.degrees(numpy.arctan(((Da+Dce)/675))) #alpha in degree\n",
+ "\n",
+ "#result\n",
+ "print \"alpha = \", round(a,2), \"degree\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "alpha = 0.11 degree\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no. 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculation if vertical displacement\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "P1 = 2100.0 #lb\n",
+ "P2 = 5600.0 #lb\n",
+ "b = 25.0 #inch\n",
+ "a = 28.0 #inch\n",
+ "A1 = 0.25 #inch^2\n",
+ "A2 = 0.15 #inch^2\n",
+ "L1 = 20.0 #inch\n",
+ "L2 = 34.8 #inch\n",
+ "E = 29e6 #29Gpa\n",
+ "\n",
+ "#Calculations\n",
+ "P3 = (P2*b)/a \n",
+ "Ra = P3-P1\n",
+ "N1 = -Ra \n",
+ "N2 = P1 \n",
+ "D = ((N1*L1)/(E*A1)) + ((N2*L2)/(E*A2)) #print lacement\n",
+ "\n",
+ "#Result\n",
+ "print \"Downward print lacement is = \", D, \"inch\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Downward print lacement is = 0.0088 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, page no. 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "obtaing formula and calculating allowable load\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#Numerical calculation of allowable load\n",
+ "\n",
+ "d1 = 4.0 #mm\n",
+ "d2 = 3.0 #mm\n",
+ "A1 = (math.pi*(d1**2))/4 #area\n",
+ "A2 = (math.pi*(d2**2))/4 #area\n",
+ "L1 = 0.4 #meter\n",
+ "L2 = 0.3 #meter\n",
+ "E1 = 72e9 #Gpa\n",
+ "E2 = 45e9 #Gpa\n",
+ "f1 = L1/(E1*A1) * 1e6 # To cpmpensate for the mm**2\n",
+ "f2 = L2/(E2*A2) * 1e6 \n",
+ "s1 = 200e6 #stress\n",
+ "s2 = 175e6 #stress\n",
+ "\n",
+ "#Calculations\n",
+ "P1 = ( (s1*A1*(4*f1 + f2))/(3*f2) ) * 1e-6 # To cpmpensate for the mm**2\n",
+ "P2 = ( (s2*A2*(4*f1 + f2))/(6*f1) ) * 1e-6 \n",
+ "\n",
+ "#Result\n",
+ "print \"Newton Minimum allowable stress aomong the two P1 and P2 is smaller one, therefore MAS = \", P2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Newton Minimum allowable stress aomong the two P1 and P2 is smaller one, therefore MAS = 1264.49104307\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.10, page no. 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "calculate stress acting on inclined section &\n",
+ "the complete state of stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "P = 90000.0 #newton\n",
+ "A = 1200e-6 # meter^2\n",
+ "s_x = -P/A #stress\n",
+ "t_1 = 25.0 #for the stresses on ab and cd plane\n",
+ "\n",
+ "#Calculations\n",
+ "s_1 = s_x*(math.cos(math.radians(t_1))**2)\n",
+ "T_1 = -s_x*math.cos(math.radians(t_1))*math.sin(math.radians(t_1))\n",
+ "t_2 = -65.0 #for the stresses on ad and bc plane\n",
+ "s_2 = s_x*(math.cos(math.radians(t_2))**2)\n",
+ "T_2 = -s_x*math.cos(math.radians(t_2))*math.sin(math.radians(t_2))\n",
+ "\n",
+ "#Result\n",
+ "print \"The normal and shear stresses on the plane ab and cd are\", round((T_1/1E+6),2), round((s_1/1E+6),2), \"MPa respecively\" \n",
+ "print \"respecively The normal and shear stresses on the plane ad and bc are\", round((T_2/1E+6),2), round((s_2/1E+6),2), \"MPa respecively\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The normal and shear stresses on the plane ab and cd are 28.73 -61.6 MPa respecively\n",
+ "respecively The normal and shear stresses on the plane ad and bc are -28.73 -13.4 MPa respecively\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, page no. 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Calculate the vertical displacement of the joint\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "# Value of s_x based on allowable stresses on glued joint\n",
+ "\n",
+ "#initialisation\n",
+ "s_t = -750.0 #psi\n",
+ "t = -50.0 #degree\n",
+ "T_t = -500.0 #psi\n",
+ "\n",
+ "sg_x_1 = s_t/(math.cos(math.radians(t))**2)\n",
+ "sg_x_2 = -T_t/(math.cos(math.radians(t))*math.sin(math.radians(t)))\n",
+ "\n",
+ "# Value of s_x based on allowable stresses on plastic\n",
+ "\n",
+ "sp_x_1 = -1100.0 #psi\n",
+ "T_t_p = 600.0 #psi\n",
+ "t_p = 45.0 #degree\n",
+ "sp_x_2 = -T_t_p/(math.cos(math.radians(t_p))*math.sin(math.radians(t_p)))\n",
+ "\n",
+ "# Minimum width of bar\n",
+ "\n",
+ "P = 8000.0 #lb\n",
+ "A = P/sg_x_2\n",
+ "b_min = math.sqrt(abs(A)) #inch\n",
+ "print \"The minimum width of the bar is\", round(b_min,2), \"inch\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum width of the bar is 2.81 inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, page no. 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Comparison of energy-absorbing capacity with different type of bolts\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "#Bolt with reduced shank diameter\n",
+ "\n",
+ "#initialisation\n",
+ "g = 1.50 # inch\n",
+ "d = 0.5 #inch\n",
+ "t = 0.25 #inch\n",
+ "d_r = 0.406 #inch\n",
+ "L = 13.5 #inch\n",
+ "\n",
+ "#calculation\n",
+ "ratio = ((g*(d**2))/(((g-t)*(d_r**2))+(t*(d**2)))) #U2/U1\n",
+ "\n",
+ "print \"The energy absorbing capacity of the bolts with reduced shank diameter\", round(ratio,2)\n",
+ "ratio_1 = ( (((L-t)*(d_r**2))+(t*(d**2))) / ((2*(g-t)*(d_r**2))+2*(t*(d**2))) ) #U3/2U1\n",
+ "print \"The energy absorbing capacity of the long bolts\", round(ratio_1,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy absorbing capacity of the bolts with reduced shank diameter 1.4\n",
+ "The energy absorbing capacity of the long bolts 4.18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 2.16, page no. 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "Determine the maximum elongation and tensile stress\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "#initialisation\n",
+ "# Maximum elongation\n",
+ "M = 20 #kg\n",
+ "g = 9.81 #m/s^2\n",
+ "L = 2 #meter\n",
+ "E = 210e9 #210Gpa\n",
+ "h = 0.15 #meter\n",
+ "diameter = 0.015 #milimeter\n",
+ "\n",
+ "#Calculations & Result\n",
+ "A = (math.pi/4)*(diameter**2) #area\n",
+ "D_st = ((M*g*L)/(E*A)) \n",
+ "D_max = D_st*(1+(1+(2*h/D_st))**0.5) \n",
+ "D_max_1 = math.sqrt(2*h*D_st) # another approach to find D_max\n",
+ "i = D_max / D_st # Impact factor\n",
+ "print \"Maximum elongation is\",round((D_max/1E-3),2), \"mm\" # Maximum tensile stress\n",
+ "s_max = (E*D_max)/L #Maximum tensile stress\n",
+ "s_st = (M*g)/A #static stress\n",
+ "i_1 = s_max / s_st #Impact factor \n",
+ "print \"Maximum tensile stress is \", round((s_max/1E+6),2), \"MPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum elongation is 1.79 mm\n",
+ "Maximum tensile stress is 188.13 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, page no. 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\"\"\"\n",
+ "determine displacement at the lower end of bar in various conditions\n",
+ "\"\"\"\n",
+ "\n",
+ "import math \n",
+ "\n",
+ "\n",
+ "#initialisation\n",
+ "P1 = 108000.0 #Newton\n",
+ "P2 = 27000.0 #Newton\n",
+ "L = 2.2 #meter\n",
+ "A = 480.0 #mm^2\n",
+ "\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "# Displacement due to load P1 acting alone\n",
+ "s = (P1/A) #stress in MPa\n",
+ "e = (s/70000) + (1/628.2)*((s/260)**10) #strain\n",
+ "D_b = e*L*1e3 #elongation in mm\n",
+ "print \"elongation when only P1 load acting is = \", round(D_b,2), \" mm\"\n",
+ "\n",
+ "# Displacement due to load P2 acting alone\n",
+ "s_1 = (P2/A) #stress in MPa\n",
+ "e_1 = (s_1/70000) + (1/628.2)*((s_1/260)**10) #strain\n",
+ "D_b_1 = e_1*(L/2)*1e3 #elongation in mm (no elongation in lower half)\n",
+ "print \"elongation when only P2 load acting is = \", round(D_b_1,2), \" mm\"\n",
+ "\n",
+ "# Displacement due to both load acting simonmath.taneously\n",
+ "#upper half\n",
+ "s_2 = (P1/A) #stress in MPa\n",
+ "e_2 = (s_2/70000) + (1/628.2)*((s_2/260)**10) #strain\n",
+ "\n",
+ "#lower half\n",
+ "s_3 = (P1+P2)/A #stress in MPa\n",
+ "e_3 = (s_3/70000) + (1/628.2)*((s_3/260)**10) #strain\n",
+ "D_b_2 = ((e_2*L)/2 + (e_3*L)/2) * 1e3 # elongation in mm\n",
+ "print \"elongation when P1 and P2 both loads are acting is = \", round(D_b_2,2), \" mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "elongation when only P1 load acting is = 7.9 mm\n",
+ "elongation when only P2 load acting is = 0.88 mm\n",
+ "elongation when P1 and P2 both loads are acting is = 12.21 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Test/screenshots/screen1.png b/Test/screenshots/screen1.png
new file mode 100755
index 00000000..2e923aea
--- /dev/null
+++ b/Test/screenshots/screen1.png
Binary files differ
diff --git a/Test/screenshots/screen1_1.png b/Test/screenshots/screen1_1.png
new file mode 100755
index 00000000..2e923aea
--- /dev/null
+++ b/Test/screenshots/screen1_1.png
Binary files differ
diff --git a/Test/screenshots/screen2.png b/Test/screenshots/screen2.png
new file mode 100755
index 00000000..eb6ad8e1
--- /dev/null
+++ b/Test/screenshots/screen2.png
Binary files differ
diff --git a/Test/screenshots/screen2_1.png b/Test/screenshots/screen2_1.png
new file mode 100755
index 00000000..eb6ad8e1
--- /dev/null
+++ b/Test/screenshots/screen2_1.png
Binary files differ
diff --git a/Test/screenshots/screen2_2.png b/Test/screenshots/screen2_2.png
new file mode 100755
index 00000000..eb6ad8e1
--- /dev/null
+++ b/Test/screenshots/screen2_2.png
Binary files differ
diff --git a/Test/screenshots/screen2_3.png b/Test/screenshots/screen2_3.png
new file mode 100755
index 00000000..eb6ad8e1
--- /dev/null
+++ b/Test/screenshots/screen2_3.png
Binary files differ
diff --git a/Test/screenshots/screen3.png b/Test/screenshots/screen3.png
new file mode 100755
index 00000000..ff023b0d
--- /dev/null
+++ b/Test/screenshots/screen3.png
Binary files differ
diff --git a/Test/screenshots/screen3_1.png b/Test/screenshots/screen3_1.png
new file mode 100755
index 00000000..ff023b0d
--- /dev/null
+++ b/Test/screenshots/screen3_1.png
Binary files differ
diff --git a/Test/screenshots/screen3_2.png b/Test/screenshots/screen3_2.png
new file mode 100755
index 00000000..ff023b0d
--- /dev/null
+++ b/Test/screenshots/screen3_2.png
Binary files differ
diff --git a/TestContribution/Chapter2.ipynb b/TestContribution/Chapter2.ipynb
new file mode 100755
index 00000000..f5907f3a
--- /dev/null
+++ b/TestContribution/Chapter2.ipynb
@@ -0,0 +1,322 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d3b8a40a5268a38ad3fc311ebed2078460c9192ee65f2f5e3922c8f65a52bf49"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Properties of Pure Substances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:pg-22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "m=1; #mass of saturated water in kg\n",
+ "\n",
+ " # All the necessary values are taken from table C-2\n",
+ " \n",
+ "# part (a)\n",
+ "\n",
+ "P=0.001; # Pressure in MPa\n",
+ "vf=0.001; #specific volume of saturated liquid at 0.001 Mpa in Kg/m^3\n",
+ "vg=129.2; # specific volume of saturated vapour at 0.001 Mpa in Kg/m^3\n",
+ "deltaV=m*(vg-vf) # by properties of pure substance \n",
+ "# result\n",
+ "print \"The Volume change at pressure \",(P),\" MPa is\",round(deltaV,1),\" m^3/kg \\n\"\n",
+ "\n",
+ "# part (b) \n",
+ "\n",
+ "P=0.10; # Pressure in MPa\n",
+ "vf=0.001; # specific volume of saturated liquid at 0.26 MPa( it is same from at 0.2 and 0.3 MPa upto 4 decimals)\n",
+ "vg=1.694; # specific volume of saturated vapour at 0.1 Mpa\n",
+ "deltaV=m*(vg-vf) # by properties of pure substance\n",
+ "# result\n",
+ "print \"The Volume change at pressure \",(P),\" MPa is\",round(deltaV,3),\" m^3/kg \\n\"\n",
+ "\n",
+ "# part (c) \n",
+ "P=10; # Pressure in MPa\n",
+ "vf=0.00145; # specific volume of saturated liquid at 10 MPa\n",
+ "vg=0.01803; # specific volume of saturated vapour at 10 MPa\n",
+ "deltaV=m*(vg-vf) # by properties of pure substance \n",
+ "# result\n",
+ "print \"The Volume change at pressure \",(P),\" MPa is\",round(deltaV,5),\" m^3/kg \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Volume change at pressure 0.001 MPa is 129.2 m^3/kg \n",
+ "\n",
+ "The Volume change at pressure 0.1 MPa is 1.693 m^3/kg \n",
+ "\n",
+ "The Volume change at pressure 10 MPa is 0.01658 m^3/kg \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:pg-23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=4.0 # mass of water in kg\n",
+ "V=1.0 # volume in m^3\n",
+ "T=150 # temperature of water in degree centigrade\n",
+ "\n",
+ "# TABLE C-1 is used for values in wet region\n",
+ "# Part (a)\n",
+ "P=475.8 # pressure in KPa in wet region at temperature of 150 *C\n",
+ "print \" The pressure is\",round(P,1),\" kPa \\n\"\n",
+ "\n",
+ "# Part (b)\n",
+ "#first we determine the dryness fraction\n",
+ "v=V/m # specific volume of water\n",
+ "vg=0.3928 # specific volume of saturated vapour @150 degree celsius\n",
+ "vf=0.00109 # specific volume of saturated liquid @150 degree celsius\n",
+ "x=(v-vf)/(vg-vf); # dryness fraction\n",
+ "mg=m*x; # mass of vapour\n",
+ "print \" The mass of vapour present is\",round(mg,3),\" kg \\n\"\n",
+ "\n",
+ "# Part(c) \n",
+ "Vg=vg*mg; # volume of vapour\n",
+ "print \" The volume of vapour is\",round(Vg,4),\" m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pressure is 475.8 kPa \n",
+ "\n",
+ " The mass of vapour present is 2.542 kg \n",
+ "\n",
+ " The volume of vapour is 0.9984 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:pg-23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=4 # mass of water in kg\n",
+ "P=220 # pressure in KPa\n",
+ "x=0.8 # quality of steam\n",
+ "\n",
+ "# Table C-2 is used for values\n",
+ "\n",
+ "vg=(P-200)*(0.6058-0.8857)/(300-200)+0.8857 # specific volume of saturated vapour @ given pressure by interpolating\n",
+ "vf=0.0011 # specific volume of saturated liquid at 220 KPa\n",
+ "v=vf+x*(vg-vf)# property of pure substance\n",
+ "V=m*v # total volume\n",
+ "#result\n",
+ "print \"The Total volume of the mixture is \",round(V,3),\" m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total volume of the mixture is 2.656 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex2.4:pg-23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=2 # mass of water in lb\n",
+ "P=540 # pressure in psi\n",
+ "T=700 # temperature in degree fahrenheit\n",
+ " # Table C-3E is used for values\n",
+ "v=1.3040+(P-500)*(1.0727-1.3030)/(600-500) # specific volue by interpolatin between 500 and 600 psi\n",
+ "V=m*v # final volume\n",
+ "print \"The Final Volume is\",round(V,3),\" ft^3\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Final Volume is 2.424 ft^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:pg-25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "V=0.6 # volume of tyre in m^3\n",
+ "Pgauge=200 # gauge pressure in KPa\n",
+ "T=20+273 # temperature converted to kelvin\n",
+ "Patm=100 # atmospheric pressure in KPa\n",
+ "R=287 # gas constant in Nm/kg.K\n",
+ "Pabs=(Pgauge+Patm)*1000 # calculating absolute pressue in Pa \n",
+ "\n",
+ "m=Pabs*V/(R*T)# mass from ideal gas equation\n",
+ "print \"The Mass of air is\",round(m,2),\" Kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Mass of air is 2.14 Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6:pg-26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "T=500+273 # temperature of steam in kelvin\n",
+ "rho=24.0 # density in Kg/m^3\n",
+ "R=0.462 # gas constant from Table B-2\n",
+ "v=1/rho # specific volume and density relation\n",
+ "# PART (a)\n",
+ "P=rho*R*T # from Ideal gas equation\n",
+ "print \" PART (a) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (b)\n",
+ "a=1.703 # van der Waal's constant a value from Table B-8\n",
+ "b=0.00169 # van der Waal's constant b value from Table B-8\n",
+ "P=(R*T/(v-b))-(a/v**2) # Pressure from van der Waals equation\n",
+ "print \" PART (b) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (c)\n",
+ "a=43.9 # van der Waal's constant a value from Table B-8\n",
+ "b=0.00117 # van der Waal's constant b value from Table B-8\n",
+ "\n",
+ "P=(R*T/(v-b))-(a/(v*(v+b)*math.sqrt(T))) # Redlich-Kwong equation\n",
+ "print \" PART (c) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (d)\n",
+ "Tcr=947.4 # compressibilty temperature from table B-3\n",
+ "Pcr=22100 # compressibility pressure from table B-3\n",
+ "\n",
+ "TR=T/Tcr # reduced temperature\n",
+ "PR=P/Pcr # reduced pressure\n",
+ "Z=0.93 # from compressiblility chart\n",
+ "P=Z*R*T/v # Pressure in KPa\n",
+ "print \" PART (d) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (e)\n",
+ "P=8000 # pressure from steam table @ 500*c and v= 0.0417 m^3\n",
+ "print \" PART (e) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " PART (a) The Pressure is 8571 KPa \n",
+ "\n",
+ " PART (b) The Pressure is 7952 KPa \n",
+ "\n",
+ " PART (c) The Pressure is 7934 KPa \n",
+ "\n",
+ " PART (d) The Pressure is 7971 KPa \n",
+ "\n",
+ " PART (e) The Pressure is 8000 KPa \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/README.txt b/TestContribution/README.txt
new file mode 100755
index 00000000..e9a60064
--- /dev/null
+++ b/TestContribution/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Test Contributor
+Course: mtech
+College/Institute/Organization: IIT
+Department/Designation: CS
+Book Title: TestContribution
+Author: TestContribution
+Publisher: TestContribution
+Year of publication: Test
+Isbn: TestContribution
+Edition: TestContributio \ No newline at end of file
diff --git a/TestContribution/abhisheksharma.ipynb b/TestContribution/abhisheksharma.ipynb
new file mode 100755
index 00000000..e09e86cb
--- /dev/null
+++ b/TestContribution/abhisheksharma.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:54ccd26f8e7172369b740037968be286180ddfff5f2fc10ebe6be83fc34647f9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "HF,VHF AND UHF ANTENNAS (CHAPTER 6)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.1,PAGE NUMBER 278 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 30 # angle of elevation in Degrees\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 20.0 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.2,PAGE NUMBER 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 20 # frequency in MHz\n",
+ "f = 20*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "Delta = 10 # angle of elevation in Degrees\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,3),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 21.595 meter\n",
+ "Tilt angle is: 80.0 degrees\n",
+ "length of wire is: 248.726 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.3,PAGE NUMBER 279-281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin,cos\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "\n",
+ "#calculation and results:\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 10 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta1 = 10 # angle of elevation in Degrees\n",
+ "H1 = lamda/(4 * sin(Delta1*pi/180)) # Rhombic height in m\n",
+ "l1 = lamda/(2 * sin(Delta1*pi/180) **2) # wire length in m\n",
+ "phi1 = 90-Delta1 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H1,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi1,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l1,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 15 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta2 = 15 # angle of elevation in Degrees\n",
+ "H2 = lamda/(4 * sin(Delta2*pi/180)) # Rhombic height in m\n",
+ "l2 = lamda/(2 * sin(Delta2*pi/180) **2) # wire length in m\n",
+ "phi2 = 90-Delta2 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H2,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi2,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l2,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 20 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta3 = 20 # angle of elevation in Degrees\n",
+ "H3 = lamda/(4 * sin(Delta3*pi/180)) # Rhombic height in m\n",
+ "l3 = lamda/(2 * sin(Delta3*pi/180) **2) # wire length in m\n",
+ "phi3 = 90-Delta3 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H3,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi3,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l3,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 25 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta4 = 25 # angle of elevation in Degrees\n",
+ "H4 = lamda/(4 * sin(Delta4*pi/180)) # Rhombic height in m\n",
+ "l4 = lamda/(2 * sin(Delta4*pi/180) **2) # wire length in m\n",
+ "phi4 = 90-Delta4 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H4,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi4,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l4,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 30 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta5 = 30 # angle of elevation in Degrees\n",
+ "H5 = lamda/(4 * sin(Delta5*pi/180)) # Rhombic height in m\n",
+ "l5 = lamda/(2 * sin(Delta5*pi/180) **2) # wire length in m\n",
+ "phi5 = 90-Delta5 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H5,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi5,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l5,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 35 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta6 = 35 # angle of elevation in Degrees\n",
+ "H6 = lamda/(4 * sin(Delta6*pi/180)) # Rhombic height in m\n",
+ "l6 = lamda/(2 * sin(Delta6*pi/180) **2) # wire length in m\n",
+ "phi6 = 90-Delta6 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H6,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi6,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l6,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 40 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta7 = 40 # angle of elevation in Degrees\n",
+ "H7 = lamda/(4 * sin(Delta7*pi/180)) # Rhombic height in m\n",
+ "l7 = lamda/(2 * sin(Delta7*pi/180) **2) # wire length in m\n",
+ "phi7 = 90-Delta7 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H7,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi7,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l7,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for Delta = 10 degrees\n",
+ "Rhombic height is: 14.397 meter\n",
+ "Tilt angle is: 80.0 degrees\n",
+ "length of wire is: 165.82 meter\n",
+ "for Delta = 15 degrees\n",
+ "Rhombic height is: 9.659 meter\n",
+ "Tilt angle is: 75.0 degrees\n",
+ "length of wire is: 74.64 meter\n",
+ "for Delta = 20 degrees\n",
+ "Rhombic height is: 7.31 meter\n",
+ "Tilt angle is: 70.0 degrees\n",
+ "length of wire is: 42.74 meter\n",
+ "for Delta = 25 degrees\n",
+ "Rhombic height is: 5.916 meter\n",
+ "Tilt angle is: 65.0 degrees\n",
+ "length of wire is: 27.99 meter\n",
+ "for Delta = 30 degrees\n",
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 20.0 meter\n",
+ "for Delta = 35 degrees\n",
+ "Rhombic height is: 4.359 meter\n",
+ "Tilt angle is: 55.0 degrees\n",
+ "length of wire is: 15.2 meter\n",
+ "for Delta = 40 degrees\n",
+ "Rhombic height is: 3.889 meter\n",
+ "Tilt angle is: 50.0 degrees\n",
+ "length of wire is: 12.1 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.4,PAGE NUMBER 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin,cos\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 30 # angle of elevation in Degrees\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "k = 0.74 # constant\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 14.8 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.5,PAGE NUMBER 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 20 # frequency in MHz\n",
+ "f = 20*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 20 # angle of elevation in Degrees\n",
+ "k = 0.74 # constant\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 10.96 meter\n",
+ "Tilt angle is: 70.0 degrees\n",
+ "length of wire is: 47.44 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.6,PAGE NUMBER 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "f_MHz = 172 # frequency in MHz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f_MHz # wavelength in m\n",
+ "La = 478/f_MHz # length of driven element in feet\n",
+ "Lr = 492/f_MHz # length of reflector in feet\n",
+ "Ld = 461.5/f_MHz # length of director in feet\n",
+ "S = 142/f_MHz # element spacing in feet\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"length of driven element is:\", round(La,2),\"feet\"\n",
+ "print \"length of reflector is:\", round(Lr,2),\"feet\"\n",
+ "print \"length of director is:\", round(Ld,3),\"feet\"\n",
+ "print \"element spacing is:\",round(S,3),\"feet\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "length of driven element is: 2.78 feet\n",
+ "length of reflector is: 2.86 feet\n",
+ "length of director is: 2.683 feet\n",
+ "element spacing is: 0.826 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.7,PAGE NUMBER 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "G = 12 # required gain in dB\n",
+ "f = 200 # frequency in MHz \n",
+ "f = 200*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "La = 0.46*lamda # length of driven element in m (note: in book La is given 0.416*lamda misprint)\n",
+ "Lr = 0.475*lamda # length of reflector in m\n",
+ "Ld1 = 0.44*lamda # length of director1 in m\n",
+ "Ld2 = 0.44*lamda # length of director2 in m\n",
+ "Ld3 = 0.43*lamda # length of director3 in m\n",
+ "Ld4 = 0.40*lamda # length of director4 in m\n",
+ "SL = 0.25*lamda # spacing between reflector and driver in m\n",
+ "Sd = 0.31*lamda # spacing director and driving element in m\n",
+ "d = 0.01*lamda # diameter of elements in m\n",
+ "l = 1.5*lamda # length of array in m\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"length of driven element is:\" ,round(La,2),\"m\"\n",
+ "print \"length of reflector is:\",round(Lr,4),\"m\"\n",
+ "print \"length of director1 is:\",round(Ld1,2),\"m\"\n",
+ "print \"length of director2 is:\",round(Ld2,2),\"m\"\n",
+ "print \"length of director3 is:\",round(Ld3,3),\"m\"\n",
+ "print \"length of director4 is:\",round(Ld4,2),\"m\"\n",
+ "print \"spacing between reflector and driver is:\",round(SL,3),\"m\"\n",
+ "print \"spacing director and driving element is:\",round(Sd,3),\"m\"\n",
+ "print \"diameter of elements is:\",round(d,3),\"m\"\n",
+ "print \"length of array is:\",round(l,2),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "length of driven element is: 0.69 m\n",
+ "length of reflector is: 0.7125 m\n",
+ "length of director1 is: 0.66 m\n",
+ "length of director2 is: 0.66 m\n",
+ "length of director3 is: 0.645 m\n",
+ "length of director4 is: 0.6 m\n",
+ "spacing between reflector and driver is: 0.375 m\n",
+ "spacing director and driving element is: 0.465 m\n",
+ "diameter of elements is: 0.015 m\n",
+ "length of array is: 2.25 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.8,PAGE NUMBER 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import atan\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "G = 9 # required gain in dB\n",
+ "f_l = 125 # lowest frequency in MHz\n",
+ "f_l = 125*10**6 # lowest frequency in Hz\n",
+ "f_h = 500 # highest frequency in MHz\n",
+ "f_h = 500*10**6 # lowest frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "tau = 0.861 # scaling factor\n",
+ "sigma = 0.162 # spacing factor\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "lamda_l = c/f_l # longest wavelength in m\n",
+ "lamda_s = c/f_h # shortest wavelength in m\n",
+ "alpha = 2*atan((1-tau)/(4*sigma)) # wedge angle in Degrees\n",
+ "L1 = lamda_l/2 # in m\n",
+ "L2 = tau*L1 # in m\n",
+ "L3 = tau*L2 # in m\n",
+ "L4 = tau*L3 # in m\n",
+ "L5 = tau*L4 # in m\n",
+ "L6 = tau*L5 # in m\n",
+ "L7 = tau*L6 # in m\n",
+ "L8 = tau*L7 # in m\n",
+ "L9 = tau*L8 # in m\n",
+ "L10 = tau*L9 # in m\n",
+ "L11 = tau*L10 # in m\n",
+ "\n",
+ "# element spacing relation\n",
+ "#formula : sn = 2*sigma*Ln\n",
+ "\n",
+ "\n",
+ "S1 = 2*sigma*L1 # in m\n",
+ "S2 = 2*sigma*L2 # in m\n",
+ "S3 = 2*sigma*L3 # in m\n",
+ "S4 = 2*sigma*L4 # in m\n",
+ "S5 = 2*sigma*L5 # in m\n",
+ "S6 = 2*sigma*L6 # in m\n",
+ "S7 = 2*sigma*L7 # in m\n",
+ "S8 = 2*sigma*L8 # in m\n",
+ "S9 = 2*sigma*L9 # in m\n",
+ "S10 = 2*sigma*L10 # in m\n",
+ "S11 = 2*sigma*L11 # in m\n",
+ "\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "\n",
+ "\n",
+ "print(\"designing of log-periodic antenna:\")\n",
+ "\n",
+ "print \"L1 is:\",round(L1,4),\"m\"\n",
+ "print \"L2 is:\",round(L2,4),\"m\"\n",
+ "print \"L3 is:\",round(L3,4),\"m\"\n",
+ "print \"L4 is:\",round(L4,4),\"m\"\n",
+ "print \"L5 is:\",round(L5,4),\"m\"\n",
+ "print \"L6 is:\",round(L6,4),\"m\"\n",
+ "print \"L7 is:\",round(L7,4),\"m\"\n",
+ "print \"L8 is:\",round(L8,4),\"m\"\n",
+ "print \"L9 is:\",round(L9,4),\"m\"\n",
+ "print \"L10 is:\",round(L10,4),\"m\"\n",
+ "print \"L11 is:\",round(L11,4),\"m\"\n",
+ "\n",
+ "print \"elements spacing relation:\"\n",
+ "\n",
+ "print \"S1 is:\",round(S1,4),\"m\"\n",
+ "print \"S2 is:\",round(S2,4),\"m\"\n",
+ "print \"S3 is:\",round(S3,4),\"m\"\n",
+ "print \"S4 is:\",round(S4,4),\"m\"\n",
+ "print \"S5 is:\",round(S5,4),\"m\"\n",
+ "print \"S6 is:\",round(S6,4),\"m\"\n",
+ "print \"S7 is:\",round(S7,4),\"m\"\n",
+ "print \"S8 is:\",round(S8,4),\"m\"\n",
+ "print \"S9 is:\",round(S9,4),\"m\"\n",
+ "print \"S10 is:\",round(S10,4),\"m\"\n",
+ "print \"S11 is:\",round(S11,4),\"m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "designing of log-periodic antenna:\n",
+ "L1 is: 1.2 m\n",
+ "L2 is: 1.0332 m\n",
+ "L3 is: 0.8896 m\n",
+ "L4 is: 0.7659 m\n",
+ "L5 is: 0.6595 m\n",
+ "L6 is: 0.5678 m\n",
+ "L7 is: 0.4889 m\n",
+ "L8 is: 0.4209 m\n",
+ "L9 is: 0.3624 m\n",
+ "L10 is: 0.312 m\n",
+ "L11 is: 0.2687 m\n",
+ "elements spacing relation:\n",
+ "S1 is: 0.3888 m\n",
+ "S2 is: 0.3348 m\n",
+ "S3 is: 0.2882 m\n",
+ "S4 is: 0.2482 m\n",
+ "S5 is: 0.2137 m\n",
+ "S6 is: 0.184 m\n",
+ "S7 is: 0.1584 m\n",
+ "S8 is: 0.1364 m\n",
+ "S9 is: 0.1174 m\n",
+ "S10 is: 0.1011 m\n",
+ "S11 is: 0.087 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.9,PAGE NUMBER 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,cos,sqrt\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "E_rms = 10 # electric field in mV/m\n",
+ "E_rms = 10*10 **-3 # electric field in V/m\n",
+ "f = 2 # frequency in MHz\n",
+ "f = 2*10 **6 # frequency in Hz\n",
+ "N = 10 # number of turns\n",
+ "phi = 0 # angle between the plane of loop and direction of incident wave in Degrees\n",
+ "S = 1.4 # area of loop antenna in m **2\n",
+ "c = 3*10 **8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "E_max = sqrt(2)*E_rms # electric field in V/m\n",
+ "V_rms = (2*pi*E_max*S*N/lamda)*cos(phi) # induced voltage\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"induced voltage is:\",round(V_rms*1000,2),\"mV\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "induced voltage is: 8.29 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.10,PAGE NUMBER 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "D = 0.5 # diameter of loop antenna in m\n",
+ "a = D/2 # radius of loop antenna in m\n",
+ "f = 1 # frequency in MHz\n",
+ "f = 1*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "Rr = 3720*(a/lamda) # radiation resistance of loop antenna in ohm\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"radiation resistance of loop antenna is:\",Rr,\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radiation resistance of loop antenna is: 3.1 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.11,PAGE NUMBER 285-286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "a = 0.5 # radius of loop antenna in m\n",
+ "f = 0.9 # frequency in MHz\n",
+ "f = 0.9*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "k = (2*pi*a)/lamda # constant\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"the value of k is:\",round(k,2)\n",
+ "print \"since,k<1/3\"\n",
+ "print \"So Directivity of loop antenna is D = 1.5\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of k is: 0.01\n",
+ "since,k<1/3\n",
+ "So Directivity of loop antenna is D = 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.13,PAGE NUMBER 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "\n",
+ "#variable declaration and calculation\n",
+ "\n",
+ "Lm = Symbol('Lm') # defining Lm as lambda\n",
+ "d = 1.5*Lm # diameter of antenna in m\n",
+ "a = d/2 # radius of antenna in m\n",
+ "Rr = 3720*(a/Lm) # radiation resistance of loop antenna in ohm\n",
+ "D = 4.25*(a/Lm) # Directivity of the loop antenna\n",
+ "\n",
+ "#results\n",
+ "\n",
+ "print \"radiation resistance of the loop antenna is:\",round(Rr,0),\"ohm\"\n",
+ "print \"Directivity of the loop antenna is:\",round(D,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radiation resistance of the loop antenna is: 2790.0 ohm\n",
+ "Directivity of the loop antenna is: 3.1875\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.14,PAGE NUMBER 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "from sympy import Symbol\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "Gp = 28 # power gain\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "Lm = Symbol('Lm') # defining Lm as lamda\n",
+ "d = Lm/2 # length of dipole\n",
+ "\n",
+ "#formula : Gp = 4*(L/lamda)\n",
+ "\n",
+ "L = Gp*Lm/4 # array length\n",
+ "N = 7*2 # Number of elements in the array when spaced at lamda/2\n",
+ "\n",
+ "# formula : B.W = 2*sqrt((2*/N)*(lamda/d))\n",
+ "\n",
+ "BW = 2*sqrt(2*Lm/(N*d)) # null-to-null beam width in radians\n",
+ "BW_d = BW*180/pi # null-to-null beam width in degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Number of elements in the array when spaced at lamda/2 are:\",N\n",
+ "print \"array length(where Lm is wavelength in m) is:\",L,\"m\"\n",
+ "print \"null-to-null beam width is:\",round(BW_d,1),\"degrees\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of elements in the array when spaced at lamda/2 are: 14\n",
+ "array length(where Lm is wavelength in m) is: 7*Lm m\n",
+ "null-to-null beam width is: 61.3 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.15,PAGE NUMBER 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "S = 0.05 # spacing in m\n",
+ "Dh = 0.1 # diameter of helical antenna in m\n",
+ "N = 20 # number of turns\n",
+ "f = 1000 # frequency in MHz\n",
+ "f = 1000*10**6 # frequency in MHz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "C = pi*Dh # circumfrence of helix in m\n",
+ "La = N*S # axial legth in m\n",
+ "phi_not = (115*(lamda**(3/2))/(C*sqrt(La))) # B.W.F.N., null-to-null beamwidth of main beam in Degreess\n",
+ "phi = (52*lamda**(3/2)/(C*sqrt(La))) # H.P.B.W, half power beamwidth in Degreess\n",
+ "D = (15*N*C**2*S/(lamda)**3) # Directivity\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"B.W.F.N., null-to-null beamwidth of main beam is:\",round(phi_not,1),\"degrees\"\n",
+ "print \"H.P.B.W, half power beamwidth is:\",round(phi,1),\"degrees\"\n",
+ "print \"Directivity is:\",round(D,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B.W.F.N., null-to-null beamwidth of main beam is: 60.1 degrees\n",
+ "H.P.B.W, half power beamwidth is: 27.2 degrees\n",
+ "Directivity is: 54.83\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/abhisheksharma_1.ipynb b/TestContribution/abhisheksharma_1.ipynb
new file mode 100755
index 00000000..e09e86cb
--- /dev/null
+++ b/TestContribution/abhisheksharma_1.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:54ccd26f8e7172369b740037968be286180ddfff5f2fc10ebe6be83fc34647f9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "HF,VHF AND UHF ANTENNAS (CHAPTER 6)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.1,PAGE NUMBER 278 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 30 # angle of elevation in Degrees\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 20.0 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.2,PAGE NUMBER 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 20 # frequency in MHz\n",
+ "f = 20*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "Delta = 10 # angle of elevation in Degrees\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,3),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 21.595 meter\n",
+ "Tilt angle is: 80.0 degrees\n",
+ "length of wire is: 248.726 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.3,PAGE NUMBER 279-281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin,cos\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "\n",
+ "#calculation and results:\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 10 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta1 = 10 # angle of elevation in Degrees\n",
+ "H1 = lamda/(4 * sin(Delta1*pi/180)) # Rhombic height in m\n",
+ "l1 = lamda/(2 * sin(Delta1*pi/180) **2) # wire length in m\n",
+ "phi1 = 90-Delta1 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H1,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi1,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l1,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 15 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta2 = 15 # angle of elevation in Degrees\n",
+ "H2 = lamda/(4 * sin(Delta2*pi/180)) # Rhombic height in m\n",
+ "l2 = lamda/(2 * sin(Delta2*pi/180) **2) # wire length in m\n",
+ "phi2 = 90-Delta2 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H2,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi2,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l2,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 20 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta3 = 20 # angle of elevation in Degrees\n",
+ "H3 = lamda/(4 * sin(Delta3*pi/180)) # Rhombic height in m\n",
+ "l3 = lamda/(2 * sin(Delta3*pi/180) **2) # wire length in m\n",
+ "phi3 = 90-Delta3 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H3,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi3,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l3,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 25 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta4 = 25 # angle of elevation in Degrees\n",
+ "H4 = lamda/(4 * sin(Delta4*pi/180)) # Rhombic height in m\n",
+ "l4 = lamda/(2 * sin(Delta4*pi/180) **2) # wire length in m\n",
+ "phi4 = 90-Delta4 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H4,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi4,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l4,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 30 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta5 = 30 # angle of elevation in Degrees\n",
+ "H5 = lamda/(4 * sin(Delta5*pi/180)) # Rhombic height in m\n",
+ "l5 = lamda/(2 * sin(Delta5*pi/180) **2) # wire length in m\n",
+ "phi5 = 90-Delta5 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H5,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi5,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l5,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 35 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta6 = 35 # angle of elevation in Degrees\n",
+ "H6 = lamda/(4 * sin(Delta6*pi/180)) # Rhombic height in m\n",
+ "l6 = lamda/(2 * sin(Delta6*pi/180) **2) # wire length in m\n",
+ "phi6 = 90-Delta6 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H6,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi6,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l6,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 40 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta7 = 40 # angle of elevation in Degrees\n",
+ "H7 = lamda/(4 * sin(Delta7*pi/180)) # Rhombic height in m\n",
+ "l7 = lamda/(2 * sin(Delta7*pi/180) **2) # wire length in m\n",
+ "phi7 = 90-Delta7 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H7,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi7,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l7,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for Delta = 10 degrees\n",
+ "Rhombic height is: 14.397 meter\n",
+ "Tilt angle is: 80.0 degrees\n",
+ "length of wire is: 165.82 meter\n",
+ "for Delta = 15 degrees\n",
+ "Rhombic height is: 9.659 meter\n",
+ "Tilt angle is: 75.0 degrees\n",
+ "length of wire is: 74.64 meter\n",
+ "for Delta = 20 degrees\n",
+ "Rhombic height is: 7.31 meter\n",
+ "Tilt angle is: 70.0 degrees\n",
+ "length of wire is: 42.74 meter\n",
+ "for Delta = 25 degrees\n",
+ "Rhombic height is: 5.916 meter\n",
+ "Tilt angle is: 65.0 degrees\n",
+ "length of wire is: 27.99 meter\n",
+ "for Delta = 30 degrees\n",
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 20.0 meter\n",
+ "for Delta = 35 degrees\n",
+ "Rhombic height is: 4.359 meter\n",
+ "Tilt angle is: 55.0 degrees\n",
+ "length of wire is: 15.2 meter\n",
+ "for Delta = 40 degrees\n",
+ "Rhombic height is: 3.889 meter\n",
+ "Tilt angle is: 50.0 degrees\n",
+ "length of wire is: 12.1 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.4,PAGE NUMBER 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin,cos\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 30 # angle of elevation in Degrees\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "k = 0.74 # constant\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 14.8 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.5,PAGE NUMBER 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 20 # frequency in MHz\n",
+ "f = 20*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 20 # angle of elevation in Degrees\n",
+ "k = 0.74 # constant\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 10.96 meter\n",
+ "Tilt angle is: 70.0 degrees\n",
+ "length of wire is: 47.44 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.6,PAGE NUMBER 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "f_MHz = 172 # frequency in MHz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f_MHz # wavelength in m\n",
+ "La = 478/f_MHz # length of driven element in feet\n",
+ "Lr = 492/f_MHz # length of reflector in feet\n",
+ "Ld = 461.5/f_MHz # length of director in feet\n",
+ "S = 142/f_MHz # element spacing in feet\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"length of driven element is:\", round(La,2),\"feet\"\n",
+ "print \"length of reflector is:\", round(Lr,2),\"feet\"\n",
+ "print \"length of director is:\", round(Ld,3),\"feet\"\n",
+ "print \"element spacing is:\",round(S,3),\"feet\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "length of driven element is: 2.78 feet\n",
+ "length of reflector is: 2.86 feet\n",
+ "length of director is: 2.683 feet\n",
+ "element spacing is: 0.826 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.7,PAGE NUMBER 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "G = 12 # required gain in dB\n",
+ "f = 200 # frequency in MHz \n",
+ "f = 200*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "La = 0.46*lamda # length of driven element in m (note: in book La is given 0.416*lamda misprint)\n",
+ "Lr = 0.475*lamda # length of reflector in m\n",
+ "Ld1 = 0.44*lamda # length of director1 in m\n",
+ "Ld2 = 0.44*lamda # length of director2 in m\n",
+ "Ld3 = 0.43*lamda # length of director3 in m\n",
+ "Ld4 = 0.40*lamda # length of director4 in m\n",
+ "SL = 0.25*lamda # spacing between reflector and driver in m\n",
+ "Sd = 0.31*lamda # spacing director and driving element in m\n",
+ "d = 0.01*lamda # diameter of elements in m\n",
+ "l = 1.5*lamda # length of array in m\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"length of driven element is:\" ,round(La,2),\"m\"\n",
+ "print \"length of reflector is:\",round(Lr,4),\"m\"\n",
+ "print \"length of director1 is:\",round(Ld1,2),\"m\"\n",
+ "print \"length of director2 is:\",round(Ld2,2),\"m\"\n",
+ "print \"length of director3 is:\",round(Ld3,3),\"m\"\n",
+ "print \"length of director4 is:\",round(Ld4,2),\"m\"\n",
+ "print \"spacing between reflector and driver is:\",round(SL,3),\"m\"\n",
+ "print \"spacing director and driving element is:\",round(Sd,3),\"m\"\n",
+ "print \"diameter of elements is:\",round(d,3),\"m\"\n",
+ "print \"length of array is:\",round(l,2),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "length of driven element is: 0.69 m\n",
+ "length of reflector is: 0.7125 m\n",
+ "length of director1 is: 0.66 m\n",
+ "length of director2 is: 0.66 m\n",
+ "length of director3 is: 0.645 m\n",
+ "length of director4 is: 0.6 m\n",
+ "spacing between reflector and driver is: 0.375 m\n",
+ "spacing director and driving element is: 0.465 m\n",
+ "diameter of elements is: 0.015 m\n",
+ "length of array is: 2.25 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.8,PAGE NUMBER 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import atan\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "G = 9 # required gain in dB\n",
+ "f_l = 125 # lowest frequency in MHz\n",
+ "f_l = 125*10**6 # lowest frequency in Hz\n",
+ "f_h = 500 # highest frequency in MHz\n",
+ "f_h = 500*10**6 # lowest frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "tau = 0.861 # scaling factor\n",
+ "sigma = 0.162 # spacing factor\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "lamda_l = c/f_l # longest wavelength in m\n",
+ "lamda_s = c/f_h # shortest wavelength in m\n",
+ "alpha = 2*atan((1-tau)/(4*sigma)) # wedge angle in Degrees\n",
+ "L1 = lamda_l/2 # in m\n",
+ "L2 = tau*L1 # in m\n",
+ "L3 = tau*L2 # in m\n",
+ "L4 = tau*L3 # in m\n",
+ "L5 = tau*L4 # in m\n",
+ "L6 = tau*L5 # in m\n",
+ "L7 = tau*L6 # in m\n",
+ "L8 = tau*L7 # in m\n",
+ "L9 = tau*L8 # in m\n",
+ "L10 = tau*L9 # in m\n",
+ "L11 = tau*L10 # in m\n",
+ "\n",
+ "# element spacing relation\n",
+ "#formula : sn = 2*sigma*Ln\n",
+ "\n",
+ "\n",
+ "S1 = 2*sigma*L1 # in m\n",
+ "S2 = 2*sigma*L2 # in m\n",
+ "S3 = 2*sigma*L3 # in m\n",
+ "S4 = 2*sigma*L4 # in m\n",
+ "S5 = 2*sigma*L5 # in m\n",
+ "S6 = 2*sigma*L6 # in m\n",
+ "S7 = 2*sigma*L7 # in m\n",
+ "S8 = 2*sigma*L8 # in m\n",
+ "S9 = 2*sigma*L9 # in m\n",
+ "S10 = 2*sigma*L10 # in m\n",
+ "S11 = 2*sigma*L11 # in m\n",
+ "\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "\n",
+ "\n",
+ "print(\"designing of log-periodic antenna:\")\n",
+ "\n",
+ "print \"L1 is:\",round(L1,4),\"m\"\n",
+ "print \"L2 is:\",round(L2,4),\"m\"\n",
+ "print \"L3 is:\",round(L3,4),\"m\"\n",
+ "print \"L4 is:\",round(L4,4),\"m\"\n",
+ "print \"L5 is:\",round(L5,4),\"m\"\n",
+ "print \"L6 is:\",round(L6,4),\"m\"\n",
+ "print \"L7 is:\",round(L7,4),\"m\"\n",
+ "print \"L8 is:\",round(L8,4),\"m\"\n",
+ "print \"L9 is:\",round(L9,4),\"m\"\n",
+ "print \"L10 is:\",round(L10,4),\"m\"\n",
+ "print \"L11 is:\",round(L11,4),\"m\"\n",
+ "\n",
+ "print \"elements spacing relation:\"\n",
+ "\n",
+ "print \"S1 is:\",round(S1,4),\"m\"\n",
+ "print \"S2 is:\",round(S2,4),\"m\"\n",
+ "print \"S3 is:\",round(S3,4),\"m\"\n",
+ "print \"S4 is:\",round(S4,4),\"m\"\n",
+ "print \"S5 is:\",round(S5,4),\"m\"\n",
+ "print \"S6 is:\",round(S6,4),\"m\"\n",
+ "print \"S7 is:\",round(S7,4),\"m\"\n",
+ "print \"S8 is:\",round(S8,4),\"m\"\n",
+ "print \"S9 is:\",round(S9,4),\"m\"\n",
+ "print \"S10 is:\",round(S10,4),\"m\"\n",
+ "print \"S11 is:\",round(S11,4),\"m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "designing of log-periodic antenna:\n",
+ "L1 is: 1.2 m\n",
+ "L2 is: 1.0332 m\n",
+ "L3 is: 0.8896 m\n",
+ "L4 is: 0.7659 m\n",
+ "L5 is: 0.6595 m\n",
+ "L6 is: 0.5678 m\n",
+ "L7 is: 0.4889 m\n",
+ "L8 is: 0.4209 m\n",
+ "L9 is: 0.3624 m\n",
+ "L10 is: 0.312 m\n",
+ "L11 is: 0.2687 m\n",
+ "elements spacing relation:\n",
+ "S1 is: 0.3888 m\n",
+ "S2 is: 0.3348 m\n",
+ "S3 is: 0.2882 m\n",
+ "S4 is: 0.2482 m\n",
+ "S5 is: 0.2137 m\n",
+ "S6 is: 0.184 m\n",
+ "S7 is: 0.1584 m\n",
+ "S8 is: 0.1364 m\n",
+ "S9 is: 0.1174 m\n",
+ "S10 is: 0.1011 m\n",
+ "S11 is: 0.087 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.9,PAGE NUMBER 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,cos,sqrt\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "E_rms = 10 # electric field in mV/m\n",
+ "E_rms = 10*10 **-3 # electric field in V/m\n",
+ "f = 2 # frequency in MHz\n",
+ "f = 2*10 **6 # frequency in Hz\n",
+ "N = 10 # number of turns\n",
+ "phi = 0 # angle between the plane of loop and direction of incident wave in Degrees\n",
+ "S = 1.4 # area of loop antenna in m **2\n",
+ "c = 3*10 **8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "E_max = sqrt(2)*E_rms # electric field in V/m\n",
+ "V_rms = (2*pi*E_max*S*N/lamda)*cos(phi) # induced voltage\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"induced voltage is:\",round(V_rms*1000,2),\"mV\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "induced voltage is: 8.29 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.10,PAGE NUMBER 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "D = 0.5 # diameter of loop antenna in m\n",
+ "a = D/2 # radius of loop antenna in m\n",
+ "f = 1 # frequency in MHz\n",
+ "f = 1*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "Rr = 3720*(a/lamda) # radiation resistance of loop antenna in ohm\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"radiation resistance of loop antenna is:\",Rr,\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radiation resistance of loop antenna is: 3.1 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.11,PAGE NUMBER 285-286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "a = 0.5 # radius of loop antenna in m\n",
+ "f = 0.9 # frequency in MHz\n",
+ "f = 0.9*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "k = (2*pi*a)/lamda # constant\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"the value of k is:\",round(k,2)\n",
+ "print \"since,k<1/3\"\n",
+ "print \"So Directivity of loop antenna is D = 1.5\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of k is: 0.01\n",
+ "since,k<1/3\n",
+ "So Directivity of loop antenna is D = 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.13,PAGE NUMBER 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "\n",
+ "#variable declaration and calculation\n",
+ "\n",
+ "Lm = Symbol('Lm') # defining Lm as lambda\n",
+ "d = 1.5*Lm # diameter of antenna in m\n",
+ "a = d/2 # radius of antenna in m\n",
+ "Rr = 3720*(a/Lm) # radiation resistance of loop antenna in ohm\n",
+ "D = 4.25*(a/Lm) # Directivity of the loop antenna\n",
+ "\n",
+ "#results\n",
+ "\n",
+ "print \"radiation resistance of the loop antenna is:\",round(Rr,0),\"ohm\"\n",
+ "print \"Directivity of the loop antenna is:\",round(D,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radiation resistance of the loop antenna is: 2790.0 ohm\n",
+ "Directivity of the loop antenna is: 3.1875\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.14,PAGE NUMBER 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "from sympy import Symbol\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "Gp = 28 # power gain\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "Lm = Symbol('Lm') # defining Lm as lamda\n",
+ "d = Lm/2 # length of dipole\n",
+ "\n",
+ "#formula : Gp = 4*(L/lamda)\n",
+ "\n",
+ "L = Gp*Lm/4 # array length\n",
+ "N = 7*2 # Number of elements in the array when spaced at lamda/2\n",
+ "\n",
+ "# formula : B.W = 2*sqrt((2*/N)*(lamda/d))\n",
+ "\n",
+ "BW = 2*sqrt(2*Lm/(N*d)) # null-to-null beam width in radians\n",
+ "BW_d = BW*180/pi # null-to-null beam width in degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Number of elements in the array when spaced at lamda/2 are:\",N\n",
+ "print \"array length(where Lm is wavelength in m) is:\",L,\"m\"\n",
+ "print \"null-to-null beam width is:\",round(BW_d,1),\"degrees\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of elements in the array when spaced at lamda/2 are: 14\n",
+ "array length(where Lm is wavelength in m) is: 7*Lm m\n",
+ "null-to-null beam width is: 61.3 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.15,PAGE NUMBER 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "S = 0.05 # spacing in m\n",
+ "Dh = 0.1 # diameter of helical antenna in m\n",
+ "N = 20 # number of turns\n",
+ "f = 1000 # frequency in MHz\n",
+ "f = 1000*10**6 # frequency in MHz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "C = pi*Dh # circumfrence of helix in m\n",
+ "La = N*S # axial legth in m\n",
+ "phi_not = (115*(lamda**(3/2))/(C*sqrt(La))) # B.W.F.N., null-to-null beamwidth of main beam in Degreess\n",
+ "phi = (52*lamda**(3/2)/(C*sqrt(La))) # H.P.B.W, half power beamwidth in Degreess\n",
+ "D = (15*N*C**2*S/(lamda)**3) # Directivity\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"B.W.F.N., null-to-null beamwidth of main beam is:\",round(phi_not,1),\"degrees\"\n",
+ "print \"H.P.B.W, half power beamwidth is:\",round(phi,1),\"degrees\"\n",
+ "print \"Directivity is:\",round(D,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B.W.F.N., null-to-null beamwidth of main beam is: 60.1 degrees\n",
+ "H.P.B.W, half power beamwidth is: 27.2 degrees\n",
+ "Directivity is: 54.83\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/abhisheksharma_2.ipynb b/TestContribution/abhisheksharma_2.ipynb
new file mode 100755
index 00000000..e09e86cb
--- /dev/null
+++ b/TestContribution/abhisheksharma_2.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:54ccd26f8e7172369b740037968be286180ddfff5f2fc10ebe6be83fc34647f9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "HF,VHF AND UHF ANTENNAS (CHAPTER 6)"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.1,PAGE NUMBER 278 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 30 # angle of elevation in Degrees\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 20.0 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.2,PAGE NUMBER 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 20 # frequency in MHz\n",
+ "f = 20*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "Delta = 10 # angle of elevation in Degrees\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2) # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,3),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 21.595 meter\n",
+ "Tilt angle is: 80.0 degrees\n",
+ "length of wire is: 248.726 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.3,PAGE NUMBER 279-281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin,cos\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "\n",
+ "#calculation and results:\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 10 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta1 = 10 # angle of elevation in Degrees\n",
+ "H1 = lamda/(4 * sin(Delta1*pi/180)) # Rhombic height in m\n",
+ "l1 = lamda/(2 * sin(Delta1*pi/180) **2) # wire length in m\n",
+ "phi1 = 90-Delta1 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H1,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi1,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l1,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 15 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta2 = 15 # angle of elevation in Degrees\n",
+ "H2 = lamda/(4 * sin(Delta2*pi/180)) # Rhombic height in m\n",
+ "l2 = lamda/(2 * sin(Delta2*pi/180) **2) # wire length in m\n",
+ "phi2 = 90-Delta2 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H2,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi2,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l2,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 20 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta3 = 20 # angle of elevation in Degrees\n",
+ "H3 = lamda/(4 * sin(Delta3*pi/180)) # Rhombic height in m\n",
+ "l3 = lamda/(2 * sin(Delta3*pi/180) **2) # wire length in m\n",
+ "phi3 = 90-Delta3 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H3,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi3,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l3,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 25 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta4 = 25 # angle of elevation in Degrees\n",
+ "H4 = lamda/(4 * sin(Delta4*pi/180)) # Rhombic height in m\n",
+ "l4 = lamda/(2 * sin(Delta4*pi/180) **2) # wire length in m\n",
+ "phi4 = 90-Delta4 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H4,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi4,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l4,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 30 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta5 = 30 # angle of elevation in Degrees\n",
+ "H5 = lamda/(4 * sin(Delta5*pi/180)) # Rhombic height in m\n",
+ "l5 = lamda/(2 * sin(Delta5*pi/180) **2) # wire length in m\n",
+ "phi5 = 90-Delta5 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H5,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi5,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l5,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 35 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta6 = 35 # angle of elevation in Degrees\n",
+ "H6 = lamda/(4 * sin(Delta6*pi/180)) # Rhombic height in m\n",
+ "l6 = lamda/(2 * sin(Delta6*pi/180) **2) # wire length in m\n",
+ "phi6 = 90-Delta6 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H6,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi6,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l6,2),\"meter\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "print \"for Delta = 40 degrees\"\n",
+ "\n",
+ "\n",
+ "Delta7 = 40 # angle of elevation in Degrees\n",
+ "H7 = lamda/(4 * sin(Delta7*pi/180)) # Rhombic height in m\n",
+ "l7 = lamda/(2 * sin(Delta7*pi/180) **2) # wire length in m\n",
+ "phi7 = 90-Delta7 # tilt angle in Degrees\n",
+ "print \"Rhombic height is:\",round(H7,3),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi7,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l7,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for Delta = 10 degrees\n",
+ "Rhombic height is: 14.397 meter\n",
+ "Tilt angle is: 80.0 degrees\n",
+ "length of wire is: 165.82 meter\n",
+ "for Delta = 15 degrees\n",
+ "Rhombic height is: 9.659 meter\n",
+ "Tilt angle is: 75.0 degrees\n",
+ "length of wire is: 74.64 meter\n",
+ "for Delta = 20 degrees\n",
+ "Rhombic height is: 7.31 meter\n",
+ "Tilt angle is: 70.0 degrees\n",
+ "length of wire is: 42.74 meter\n",
+ "for Delta = 25 degrees\n",
+ "Rhombic height is: 5.916 meter\n",
+ "Tilt angle is: 65.0 degrees\n",
+ "length of wire is: 27.99 meter\n",
+ "for Delta = 30 degrees\n",
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 20.0 meter\n",
+ "for Delta = 35 degrees\n",
+ "Rhombic height is: 4.359 meter\n",
+ "Tilt angle is: 55.0 degrees\n",
+ "length of wire is: 15.2 meter\n",
+ "for Delta = 40 degrees\n",
+ "Rhombic height is: 3.889 meter\n",
+ "Tilt angle is: 50.0 degrees\n",
+ "length of wire is: 12.1 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.4,PAGE NUMBER 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin,cos\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 30 # frequency in MHz\n",
+ "f = 30*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 30 # angle of elevation in Degrees\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "k = 0.74 # constant\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 5.0 meter\n",
+ "Tilt angle is: 60.0 degrees\n",
+ "length of wire is: 14.8 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.5,PAGE NUMBER 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sin\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "f = 20 # frequency in MHz\n",
+ "f = 20*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "lamda = c/f # wavelength in meter\n",
+ "Delta = 20 # angle of elevation in Degrees\n",
+ "k = 0.74 # constant\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "H = lamda/(4 * sin(Delta*pi/180)) # Rhombic height in m\n",
+ "l = lamda/(2 * sin(Delta*pi/180) **2)*k # wire length in m\n",
+ "phi = 90-Delta # tilt angle in Degrees\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"Rhombic height is:\",round(H,2),\"meter\"\n",
+ "print \"Tilt angle is:\",round(phi,2),\"degrees\"\n",
+ "print \"length of wire is:\",round(l,2),\"meter\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rhombic height is: 10.96 meter\n",
+ "Tilt angle is: 70.0 degrees\n",
+ "length of wire is: 47.44 meter\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.6,PAGE NUMBER 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "f_MHz = 172 # frequency in MHz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f_MHz # wavelength in m\n",
+ "La = 478/f_MHz # length of driven element in feet\n",
+ "Lr = 492/f_MHz # length of reflector in feet\n",
+ "Ld = 461.5/f_MHz # length of director in feet\n",
+ "S = 142/f_MHz # element spacing in feet\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"length of driven element is:\", round(La,2),\"feet\"\n",
+ "print \"length of reflector is:\", round(Lr,2),\"feet\"\n",
+ "print \"length of director is:\", round(Ld,3),\"feet\"\n",
+ "print \"element spacing is:\",round(S,3),\"feet\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "length of driven element is: 2.78 feet\n",
+ "length of reflector is: 2.86 feet\n",
+ "length of director is: 2.683 feet\n",
+ "element spacing is: 0.826 feet\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.7,PAGE NUMBER 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "G = 12 # required gain in dB\n",
+ "f = 200 # frequency in MHz \n",
+ "f = 200*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "La = 0.46*lamda # length of driven element in m (note: in book La is given 0.416*lamda misprint)\n",
+ "Lr = 0.475*lamda # length of reflector in m\n",
+ "Ld1 = 0.44*lamda # length of director1 in m\n",
+ "Ld2 = 0.44*lamda # length of director2 in m\n",
+ "Ld3 = 0.43*lamda # length of director3 in m\n",
+ "Ld4 = 0.40*lamda # length of director4 in m\n",
+ "SL = 0.25*lamda # spacing between reflector and driver in m\n",
+ "Sd = 0.31*lamda # spacing director and driving element in m\n",
+ "d = 0.01*lamda # diameter of elements in m\n",
+ "l = 1.5*lamda # length of array in m\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "\n",
+ "print \"length of driven element is:\" ,round(La,2),\"m\"\n",
+ "print \"length of reflector is:\",round(Lr,4),\"m\"\n",
+ "print \"length of director1 is:\",round(Ld1,2),\"m\"\n",
+ "print \"length of director2 is:\",round(Ld2,2),\"m\"\n",
+ "print \"length of director3 is:\",round(Ld3,3),\"m\"\n",
+ "print \"length of director4 is:\",round(Ld4,2),\"m\"\n",
+ "print \"spacing between reflector and driver is:\",round(SL,3),\"m\"\n",
+ "print \"spacing director and driving element is:\",round(Sd,3),\"m\"\n",
+ "print \"diameter of elements is:\",round(d,3),\"m\"\n",
+ "print \"length of array is:\",round(l,2),\"m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "length of driven element is: 0.69 m\n",
+ "length of reflector is: 0.7125 m\n",
+ "length of director1 is: 0.66 m\n",
+ "length of director2 is: 0.66 m\n",
+ "length of director3 is: 0.645 m\n",
+ "length of director4 is: 0.6 m\n",
+ "spacing between reflector and driver is: 0.375 m\n",
+ "spacing director and driving element is: 0.465 m\n",
+ "diameter of elements is: 0.015 m\n",
+ "length of array is: 2.25 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.8,PAGE NUMBER 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import atan\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "G = 9 # required gain in dB\n",
+ "f_l = 125 # lowest frequency in MHz\n",
+ "f_l = 125*10**6 # lowest frequency in Hz\n",
+ "f_h = 500 # highest frequency in MHz\n",
+ "f_h = 500*10**6 # lowest frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "tau = 0.861 # scaling factor\n",
+ "sigma = 0.162 # spacing factor\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "lamda_l = c/f_l # longest wavelength in m\n",
+ "lamda_s = c/f_h # shortest wavelength in m\n",
+ "alpha = 2*atan((1-tau)/(4*sigma)) # wedge angle in Degrees\n",
+ "L1 = lamda_l/2 # in m\n",
+ "L2 = tau*L1 # in m\n",
+ "L3 = tau*L2 # in m\n",
+ "L4 = tau*L3 # in m\n",
+ "L5 = tau*L4 # in m\n",
+ "L6 = tau*L5 # in m\n",
+ "L7 = tau*L6 # in m\n",
+ "L8 = tau*L7 # in m\n",
+ "L9 = tau*L8 # in m\n",
+ "L10 = tau*L9 # in m\n",
+ "L11 = tau*L10 # in m\n",
+ "\n",
+ "# element spacing relation\n",
+ "#formula : sn = 2*sigma*Ln\n",
+ "\n",
+ "\n",
+ "S1 = 2*sigma*L1 # in m\n",
+ "S2 = 2*sigma*L2 # in m\n",
+ "S3 = 2*sigma*L3 # in m\n",
+ "S4 = 2*sigma*L4 # in m\n",
+ "S5 = 2*sigma*L5 # in m\n",
+ "S6 = 2*sigma*L6 # in m\n",
+ "S7 = 2*sigma*L7 # in m\n",
+ "S8 = 2*sigma*L8 # in m\n",
+ "S9 = 2*sigma*L9 # in m\n",
+ "S10 = 2*sigma*L10 # in m\n",
+ "S11 = 2*sigma*L11 # in m\n",
+ "\n",
+ "\n",
+ "\n",
+ "#results\n",
+ "\n",
+ "\n",
+ "print(\"designing of log-periodic antenna:\")\n",
+ "\n",
+ "print \"L1 is:\",round(L1,4),\"m\"\n",
+ "print \"L2 is:\",round(L2,4),\"m\"\n",
+ "print \"L3 is:\",round(L3,4),\"m\"\n",
+ "print \"L4 is:\",round(L4,4),\"m\"\n",
+ "print \"L5 is:\",round(L5,4),\"m\"\n",
+ "print \"L6 is:\",round(L6,4),\"m\"\n",
+ "print \"L7 is:\",round(L7,4),\"m\"\n",
+ "print \"L8 is:\",round(L8,4),\"m\"\n",
+ "print \"L9 is:\",round(L9,4),\"m\"\n",
+ "print \"L10 is:\",round(L10,4),\"m\"\n",
+ "print \"L11 is:\",round(L11,4),\"m\"\n",
+ "\n",
+ "print \"elements spacing relation:\"\n",
+ "\n",
+ "print \"S1 is:\",round(S1,4),\"m\"\n",
+ "print \"S2 is:\",round(S2,4),\"m\"\n",
+ "print \"S3 is:\",round(S3,4),\"m\"\n",
+ "print \"S4 is:\",round(S4,4),\"m\"\n",
+ "print \"S5 is:\",round(S5,4),\"m\"\n",
+ "print \"S6 is:\",round(S6,4),\"m\"\n",
+ "print \"S7 is:\",round(S7,4),\"m\"\n",
+ "print \"S8 is:\",round(S8,4),\"m\"\n",
+ "print \"S9 is:\",round(S9,4),\"m\"\n",
+ "print \"S10 is:\",round(S10,4),\"m\"\n",
+ "print \"S11 is:\",round(S11,4),\"m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "designing of log-periodic antenna:\n",
+ "L1 is: 1.2 m\n",
+ "L2 is: 1.0332 m\n",
+ "L3 is: 0.8896 m\n",
+ "L4 is: 0.7659 m\n",
+ "L5 is: 0.6595 m\n",
+ "L6 is: 0.5678 m\n",
+ "L7 is: 0.4889 m\n",
+ "L8 is: 0.4209 m\n",
+ "L9 is: 0.3624 m\n",
+ "L10 is: 0.312 m\n",
+ "L11 is: 0.2687 m\n",
+ "elements spacing relation:\n",
+ "S1 is: 0.3888 m\n",
+ "S2 is: 0.3348 m\n",
+ "S3 is: 0.2882 m\n",
+ "S4 is: 0.2482 m\n",
+ "S5 is: 0.2137 m\n",
+ "S6 is: 0.184 m\n",
+ "S7 is: 0.1584 m\n",
+ "S8 is: 0.1364 m\n",
+ "S9 is: 0.1174 m\n",
+ "S10 is: 0.1011 m\n",
+ "S11 is: 0.087 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.9,PAGE NUMBER 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,cos,sqrt\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "E_rms = 10 # electric field in mV/m\n",
+ "E_rms = 10*10 **-3 # electric field in V/m\n",
+ "f = 2 # frequency in MHz\n",
+ "f = 2*10 **6 # frequency in Hz\n",
+ "N = 10 # number of turns\n",
+ "phi = 0 # angle between the plane of loop and direction of incident wave in Degrees\n",
+ "S = 1.4 # area of loop antenna in m **2\n",
+ "c = 3*10 **8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "E_max = sqrt(2)*E_rms # electric field in V/m\n",
+ "V_rms = (2*pi*E_max*S*N/lamda)*cos(phi) # induced voltage\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"induced voltage is:\",round(V_rms*1000,2),\"mV\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "induced voltage is: 8.29 mV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.10,PAGE NUMBER 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "\n",
+ "D = 0.5 # diameter of loop antenna in m\n",
+ "a = D/2 # radius of loop antenna in m\n",
+ "f = 1 # frequency in MHz\n",
+ "f = 1*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "Rr = 3720*(a/lamda) # radiation resistance of loop antenna in ohm\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"radiation resistance of loop antenna is:\",Rr,\"ohm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radiation resistance of loop antenna is: 3.1 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.11,PAGE NUMBER 285-286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "a = 0.5 # radius of loop antenna in m\n",
+ "f = 0.9 # frequency in MHz\n",
+ "f = 0.9*10**6 # frequency in Hz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "k = (2*pi*a)/lamda # constant\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"the value of k is:\",round(k,2)\n",
+ "print \"since,k<1/3\"\n",
+ "print \"So Directivity of loop antenna is D = 1.5\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of k is: 0.01\n",
+ "since,k<1/3\n",
+ "So Directivity of loop antenna is D = 1.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.13,PAGE NUMBER 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "\n",
+ "#variable declaration and calculation\n",
+ "\n",
+ "Lm = Symbol('Lm') # defining Lm as lambda\n",
+ "d = 1.5*Lm # diameter of antenna in m\n",
+ "a = d/2 # radius of antenna in m\n",
+ "Rr = 3720*(a/Lm) # radiation resistance of loop antenna in ohm\n",
+ "D = 4.25*(a/Lm) # Directivity of the loop antenna\n",
+ "\n",
+ "#results\n",
+ "\n",
+ "print \"radiation resistance of the loop antenna is:\",round(Rr,0),\"ohm\"\n",
+ "print \"Directivity of the loop antenna is:\",round(D,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radiation resistance of the loop antenna is: 2790.0 ohm\n",
+ "Directivity of the loop antenna is: 3.1875\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.14,PAGE NUMBER 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "from sympy import Symbol\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "Gp = 28 # power gain\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "Lm = Symbol('Lm') # defining Lm as lamda\n",
+ "d = Lm/2 # length of dipole\n",
+ "\n",
+ "#formula : Gp = 4*(L/lamda)\n",
+ "\n",
+ "L = Gp*Lm/4 # array length\n",
+ "N = 7*2 # Number of elements in the array when spaced at lamda/2\n",
+ "\n",
+ "# formula : B.W = 2*sqrt((2*/N)*(lamda/d))\n",
+ "\n",
+ "BW = 2*sqrt(2*Lm/(N*d)) # null-to-null beam width in radians\n",
+ "BW_d = BW*180/pi # null-to-null beam width in degrees\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"Number of elements in the array when spaced at lamda/2 are:\",N\n",
+ "print \"array length(where Lm is wavelength in m) is:\",L,\"m\"\n",
+ "print \"null-to-null beam width is:\",round(BW_d,1),\"degrees\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of elements in the array when spaced at lamda/2 are: 14\n",
+ "array length(where Lm is wavelength in m) is: 7*Lm m\n",
+ "null-to-null beam width is: 61.3 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EXAMPLE 6.15,PAGE NUMBER 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "S = 0.05 # spacing in m\n",
+ "Dh = 0.1 # diameter of helical antenna in m\n",
+ "N = 20 # number of turns\n",
+ "f = 1000 # frequency in MHz\n",
+ "f = 1000*10**6 # frequency in MHz\n",
+ "c = 3*10**8 # speed of light in m/s\n",
+ "\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "\n",
+ "lamda = c/f # wavelength in m\n",
+ "C = pi*Dh # circumfrence of helix in m\n",
+ "La = N*S # axial legth in m\n",
+ "phi_not = (115*(lamda**(3/2))/(C*sqrt(La))) # B.W.F.N., null-to-null beamwidth of main beam in Degreess\n",
+ "phi = (52*lamda**(3/2)/(C*sqrt(La))) # H.P.B.W, half power beamwidth in Degreess\n",
+ "D = (15*N*C**2*S/(lamda)**3) # Directivity\n",
+ "\n",
+ "#Results\n",
+ "\n",
+ "print \"B.W.F.N., null-to-null beamwidth of main beam is:\",round(phi_not,1),\"degrees\"\n",
+ "print \"H.P.B.W, half power beamwidth is:\",round(phi,1),\"degrees\"\n",
+ "print \"Directivity is:\",round(D,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B.W.F.N., null-to-null beamwidth of main beam is: 60.1 degrees\n",
+ "H.P.B.W, half power beamwidth is: 27.2 degrees\n",
+ "Directivity is: 54.83\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/bilal.ipynb b/TestContribution/bilal.ipynb
new file mode 100755
index 00000000..22d13091
--- /dev/null
+++ b/TestContribution/bilal.ipynb
@@ -0,0 +1,406 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e19af2f3d200c02cdde989919b1864a16727820a7b37667c650dffdfc779957b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25: Resonance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.1, page no. 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 8 # Value of Inductor (8-H)\n",
+ "C = 20e-6 #Value of Capacitor (20-uF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 12.6 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 12.5806717862 Hz i.e 12.6 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.2, page no. 755"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 2e-6 # Value of Inductor (2-uH)\n",
+ "C = 3e-12 #Value of Capacitor (3-pF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 65 MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 64966309.7492 Hz i.e 65 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.3, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "L = 239e-6 # Value of Inductor (239-uH)\n",
+ "f = 1000*10^3 #Frequency (1000 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = p*p\n",
+ "b = f*f\n",
+ "C = 1/(4*a*b*L)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Capacitor is\",float(C), \"F i.e 106 pF\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor is 1.05893477038e-06 F i.e 106 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.4, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "C = 106e-12 # Value of Capacitor (106-pF)\n",
+ "f = 1000000 #Frequency (1 MHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = 4*(p*p)\n",
+ "b = f*f\n",
+ "c = a*b*C\n",
+ "L = 1/(a*C*b)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Inductor is\",float(L), \"H i.e 239 uH\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Inductor is 0.000238903098251 H i.e 239 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.5, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Vo = 100e-3 #Output Voltage(100-mV)\n",
+ "Vi = 2e-3 #Input Voltage(2-mV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q = Vo/Vi\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Q is\",round(Q),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Q is 50.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.6, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 50 #Quality Factor\n",
+ "L = 250e-6 # Value of Inductor (250-uH)\n",
+ "f = 400000 #Frequency (400 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "rs = x/Q\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of AC resistance is\",float(rs),\"Ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of AC resistance is 12.568\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.7, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.8, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Z = 17600 #Equivalent Impedence\n",
+ "L = 350e-6 # Value of Inductor (350-uH)\n",
+ "f = 200000 #Frequency (200 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "Q = Z/x\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Quality factor is\", round(Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Quality factor is 40.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.9, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 2000000 # Resonant frequency (2000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 20000.0 Hz\n",
+ "The edge frequency f1 is 1990000.0 Hz\n",
+ "The edge frequency f2 is 2010000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.10, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 6000000 # Resonant frequency (6000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 60000.0 Hz\n",
+ "The edge frequency f1 is 5970000.0 Hz\n",
+ "The edge frequency f2 is 6030000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/bilal_1.ipynb b/TestContribution/bilal_1.ipynb
new file mode 100755
index 00000000..22d13091
--- /dev/null
+++ b/TestContribution/bilal_1.ipynb
@@ -0,0 +1,406 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e19af2f3d200c02cdde989919b1864a16727820a7b37667c650dffdfc779957b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25: Resonance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.1, page no. 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 8 # Value of Inductor (8-H)\n",
+ "C = 20e-6 #Value of Capacitor (20-uF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 12.6 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 12.5806717862 Hz i.e 12.6 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.2, page no. 755"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 2e-6 # Value of Inductor (2-uH)\n",
+ "C = 3e-12 #Value of Capacitor (3-pF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 65 MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 64966309.7492 Hz i.e 65 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.3, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "L = 239e-6 # Value of Inductor (239-uH)\n",
+ "f = 1000*10^3 #Frequency (1000 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = p*p\n",
+ "b = f*f\n",
+ "C = 1/(4*a*b*L)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Capacitor is\",float(C), \"F i.e 106 pF\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor is 1.05893477038e-06 F i.e 106 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.4, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "C = 106e-12 # Value of Capacitor (106-pF)\n",
+ "f = 1000000 #Frequency (1 MHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = 4*(p*p)\n",
+ "b = f*f\n",
+ "c = a*b*C\n",
+ "L = 1/(a*C*b)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Inductor is\",float(L), \"H i.e 239 uH\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Inductor is 0.000238903098251 H i.e 239 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.5, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Vo = 100e-3 #Output Voltage(100-mV)\n",
+ "Vi = 2e-3 #Input Voltage(2-mV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q = Vo/Vi\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Q is\",round(Q),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Q is 50.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.6, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 50 #Quality Factor\n",
+ "L = 250e-6 # Value of Inductor (250-uH)\n",
+ "f = 400000 #Frequency (400 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "rs = x/Q\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of AC resistance is\",float(rs),\"Ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of AC resistance is 12.568\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.7, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.8, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Z = 17600 #Equivalent Impedence\n",
+ "L = 350e-6 # Value of Inductor (350-uH)\n",
+ "f = 200000 #Frequency (200 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "Q = Z/x\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Quality factor is\", round(Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Quality factor is 40.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.9, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 2000000 # Resonant frequency (2000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 20000.0 Hz\n",
+ "The edge frequency f1 is 1990000.0 Hz\n",
+ "The edge frequency f2 is 2010000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.10, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 6000000 # Resonant frequency (6000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 60000.0 Hz\n",
+ "The edge frequency f1 is 5970000.0 Hz\n",
+ "The edge frequency f2 is 6030000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/bilal_2.ipynb b/TestContribution/bilal_2.ipynb
new file mode 100755
index 00000000..22d13091
--- /dev/null
+++ b/TestContribution/bilal_2.ipynb
@@ -0,0 +1,406 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e19af2f3d200c02cdde989919b1864a16727820a7b37667c650dffdfc779957b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25: Resonance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.1, page no. 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 8 # Value of Inductor (8-H)\n",
+ "C = 20e-6 #Value of Capacitor (20-uF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 12.6 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 12.5806717862 Hz i.e 12.6 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.2, page no. 755"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 2e-6 # Value of Inductor (2-uH)\n",
+ "C = 3e-12 #Value of Capacitor (3-pF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 65 MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 64966309.7492 Hz i.e 65 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.3, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "L = 239e-6 # Value of Inductor (239-uH)\n",
+ "f = 1000*10^3 #Frequency (1000 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = p*p\n",
+ "b = f*f\n",
+ "C = 1/(4*a*b*L)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Capacitor is\",float(C), \"F i.e 106 pF\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor is 1.05893477038e-06 F i.e 106 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.4, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "C = 106e-12 # Value of Capacitor (106-pF)\n",
+ "f = 1000000 #Frequency (1 MHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = 4*(p*p)\n",
+ "b = f*f\n",
+ "c = a*b*C\n",
+ "L = 1/(a*C*b)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Inductor is\",float(L), \"H i.e 239 uH\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Inductor is 0.000238903098251 H i.e 239 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.5, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Vo = 100e-3 #Output Voltage(100-mV)\n",
+ "Vi = 2e-3 #Input Voltage(2-mV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q = Vo/Vi\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Q is\",round(Q),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Q is 50.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.6, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 50 #Quality Factor\n",
+ "L = 250e-6 # Value of Inductor (250-uH)\n",
+ "f = 400000 #Frequency (400 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "rs = x/Q\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of AC resistance is\",float(rs),\"Ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of AC resistance is 12.568\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.7, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.8, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Z = 17600 #Equivalent Impedence\n",
+ "L = 350e-6 # Value of Inductor (350-uH)\n",
+ "f = 200000 #Frequency (200 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "Q = Z/x\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Quality factor is\", round(Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Quality factor is 40.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.9, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 2000000 # Resonant frequency (2000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 20000.0 Hz\n",
+ "The edge frequency f1 is 1990000.0 Hz\n",
+ "The edge frequency f2 is 2010000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.10, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 6000000 # Resonant frequency (6000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 60000.0 Hz\n",
+ "The edge frequency f1 is 5970000.0 Hz\n",
+ "The edge frequency f2 is 6030000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/bilal_3.ipynb b/TestContribution/bilal_3.ipynb
new file mode 100755
index 00000000..22d13091
--- /dev/null
+++ b/TestContribution/bilal_3.ipynb
@@ -0,0 +1,406 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e19af2f3d200c02cdde989919b1864a16727820a7b37667c650dffdfc779957b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 25: Resonance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.1, page no. 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 8 # Value of Inductor (8-H)\n",
+ "C = 20e-6 #Value of Capacitor (20-uF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 12.6 Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 12.5806717862 Hz i.e 12.6 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.2, page no. 755"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "L = 2e-6 # Value of Inductor (2-uH)\n",
+ "C = 3e-12 #Value of Capacitor (3-pF)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = np.sqrt(L*C)\n",
+ "fr = 1/(2*p*a)\n",
+ "\n",
+ "#Result\n",
+ "print \"Resonant frequency is\",float(fr), \"Hz i.e 65 MHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resonant frequency is 64966309.7492 Hz i.e 65 MHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.3, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "L = 239e-6 # Value of Inductor (239-uH)\n",
+ "f = 1000*10^3 #Frequency (1000 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = p*p\n",
+ "b = f*f\n",
+ "C = 1/(4*a*b*L)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Capacitor is\",float(C), \"F i.e 106 pF\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Capacitor is 1.05893477038e-06 F i.e 106 pF\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.4, page no. 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "C = 106e-12 # Value of Capacitor (106-pF)\n",
+ "f = 1000000 #Frequency (1 MHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "a = 4*(p*p)\n",
+ "b = f*f\n",
+ "c = a*b*C\n",
+ "L = 1/(a*C*b)\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Inductor is\",float(L), \"H i.e 239 uH\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Inductor is 0.000238903098251 H i.e 239 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.5, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Vo = 100e-3 #Output Voltage(100-mV)\n",
+ "Vi = 2e-3 #Input Voltage(2-mV)\n",
+ "\n",
+ "#Calculation\n",
+ "Q = Vo/Vi\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Q is\",round(Q),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Q is 50.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.6, page no. 759"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 50 #Quality Factor\n",
+ "L = 250e-6 # Value of Inductor (250-uH)\n",
+ "f = 400000 #Frequency (400 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "rs = x/Q\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of AC resistance is\",float(rs),\"Ohms\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of AC resistance is 12.568\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.7, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "print \"Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Because they divide VT equally, ZEQ is 225 kOhms, the same as R1. The amount of input voltage does not matter, as the voltage division determines the relative proportions between R1 and ZEQ. With 225 kOhms for ZEQ and 1.5 kOhms for XL, the Q is 225\u20441.5, or Q = 150.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.8, page no. 761"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Z = 17600 #Equivalent Impedence\n",
+ "L = 350e-6 # Value of Inductor (350-uH)\n",
+ "f = 200000 #Frequency (200 KHz)\n",
+ "p = 3.142 #Value of pi\n",
+ "\n",
+ "#Calculation\n",
+ "x = 2*p*f*L\n",
+ "Q = Z/x\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Quality factor is\", round(Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Quality factor is 40.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.9, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 2000000 # Resonant frequency (2000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 20000.0 Hz\n",
+ "The edge frequency f1 is 1990000.0 Hz\n",
+ "The edge frequency f2 is 2010000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 25.10, page no. 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q = 100 #Quality Factor\n",
+ "fr = 6000000 # Resonant frequency (6000 KHz)\n",
+ "\n",
+ "#Calculation\n",
+ "f = fr/Q\n",
+ "f1 = fr-(f/2)\n",
+ "f2 = fr+(f/2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total Bandwidth is\",round(f),\"Hz\"\n",
+ "print \"The edge frequency f1 is\",round(f1),\"Hz\"\n",
+ "print \"The edge frequency f2 is\",round(f2),\"Hz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total Bandwidth is 60000.0 Hz\n",
+ "The edge frequency f1 is 5970000.0 Hz\n",
+ "The edge frequency f2 is 6030000.0 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/ch3.ipynb b/TestContribution/ch3.ipynb
new file mode 100755
index 00000000..8becd279
--- /dev/null
+++ b/TestContribution/ch3.ipynb
@@ -0,0 +1,941 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : The mechanical equivalent of heat"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 pageno : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 20;\t\t\t#calorimeter of water equivalent in gm\n",
+ "n = 1030;\t\t\t#weight of water in gm\n",
+ "p = 2;\t\t\t#no.of paddles\n",
+ "a = 10;\t\t\t#weight of each paddle in kg\n",
+ "s = 80;\t\t\t#dismath.tance between paddles in m\n",
+ "g = 980;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "E = (p*a*1000*g*s*100);\t\t\t#potential energy in dyne cm\n",
+ "T = (E)/(1050*4.18*10**7);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature of water is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature of water is 3.57 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "cp = 0.1;\t\t\t#specific heat of copper in kj/kg-K\n",
+ "w = 120;\t\t\t#weight of copper calorimeter in gm\n",
+ "a = 1400;\t\t\t#weight of paraffin oil in gm\n",
+ "cp1 = 0.6;\t\t\t#specific of parafin oil in kj/kg-K\n",
+ "b = 10**8;\t\t\t#force to rotate the paddle in dynes\n",
+ "T = 16;\t\t\t#rise in temperature in deg.C\n",
+ "n = 900;\t\t\t#no.of revolutions stirred \n",
+ "pi = 3.14;\t\t\t#value of pi\n",
+ "\n",
+ "# Calculations\n",
+ "c = 2*pi*b;\t\t\t#work done by a rotating paddle per rotation in dyne cm per rotation\n",
+ "d = c*n;\t\t\t#total work done in dyne cm \n",
+ "hc = w*cp*16;\t\t\t#heat gained by calorimeter in calories\n",
+ "hp = a*cp1*16;\t\t\t#heat gaained by paraffin oil in calories \n",
+ "J = d/(hc+hp);\t\t\t#mecanical equivalent of heat in erg/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'mecanical equivalent of heat is %.2e erg/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mecanical equivalent of heat is 4.15e+07 erg/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "cp = 0.12;\t\t\t#specific heat of iron in kj/kg-K\n",
+ "m = 25;\t\t\t#mass of iron in lb\n",
+ "h = 0.4;\t\t\t#horse power developed in 3 min\n",
+ "t = 3;\t\t\t#time taken to develop the horse power in min\n",
+ "T = 17;\t\t\t#raise in temp in deg.C\n",
+ "\n",
+ "# Calculations\n",
+ "w = h*33000*t;\t\t\t#total work done in ft-lb\n",
+ "H = m*cp*T;\t\t\t#aount of heat developed in B.Th.U\n",
+ "J = (w)/H;\t\t\t#the value of mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of water is %3.1f ft-lb/B.Th.U'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of water is 776.5 ft-lb/B.Th.U\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "n = 2.;\t\t\t#no.of lead blocks\n",
+ "m = 210.;\t\t\t#mass of each lead block in gm\n",
+ "v = 20000.;\t\t\t#velocity of block relative to earth in cm/sec\n",
+ "J = 4.2*10**7;\t\t\t#mechanical equivalent of heat in ergs/calorie\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "\n",
+ "# Calculations\n",
+ "E = (m*v**2)/2;\t\t\t#kinetic energy of each block in ergs\n",
+ "E2 = n*E;\t\t\t#total kinetic energy in ergs\n",
+ "T = E2/(J*m*n*cp);\t\t\t#mean rise in temperature in T\n",
+ "\n",
+ "# Result\n",
+ "print 'the mean rise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mean rise in temperature is 158.7 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "h = 150;\t\t\t#height froom which ball fallen in ft\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "J = 778;\t\t\t#mechanical equivalent of heat in ft lb/B.Th.U\n",
+ "\n",
+ "# Calculations\n",
+ "#work done in falling is equal to heat absorbed by the ball\n",
+ "T = 160./(J*cp)*(5./9);\t\t\t#the raise in temperature in T\n",
+ "\n",
+ "# Result\n",
+ "print 'the raise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the raise in temperature is 3.8 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 pageno : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables \n",
+ "w = 26.6;\t\t\t#work done one horse in to raise the temperature in lb\n",
+ "T1 = 32.;\t\t\t#temperature at initial in deg.F\n",
+ "T2 = 212.;\t\t\t#temperature at final in deg.F\n",
+ "t = 2.5;\t\t\t#time to raise the tmperature in hrs\n",
+ "p = 25.;\t\t\t#percentage of heat lossed \n",
+ "\n",
+ "# Calculations\n",
+ "#only 75% of heat is utillised\n",
+ "x = w*180.*100.*778./((100-p)*150);\t\t\t#the rate at which horse worked\n",
+ "\n",
+ "# Result\n",
+ "print 'the rate at which horse worked is %3.0f ft-lb wt/min'%(x)\n",
+ "print \"Note : Answer in book is rounded off, Please calculate manually. This answer is accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate at which horse worked is 33112 ft-lb wt/min\n",
+ "Note : Answer in book is rounded off, Please calculate manually. This answer is accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 pageno : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "l = 100.;\t\t\t#length of glass tube in cm\n",
+ "m = 500.;\t\t\t#mass of mercury in glass tube in gm\n",
+ "n = 20.;\t\t\t#number of times inverted i succession\n",
+ "cp = 0.03;\t\t\t#specific heat of mercury in cal/gm/deg.C\n",
+ "J = 4.2;\t\t\t#joule's equivalent in j/cal\n",
+ "g = 981.;\t\t\t#accelaration due to gravity in cm/s**2\n",
+ "\n",
+ "# Calculations\n",
+ "PE = m*g*l;\t\t\t#potential energy for each time in ergs\n",
+ "TE = PE*n;\t\t\t#total loss in ergs\n",
+ "T = TE/(m*cp*J*10**7);\t\t\t#rise in temperature in deg.C\n",
+ "#if T is the rise in temperature,then heat devoloped is m*cp*T\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 1.56 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 page no : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "d = 0.02;\t\t\t#diameter of the copper wire in cm\n",
+ "i = 1;\t\t\t#current in amp\n",
+ "T = 100;\t\t\t#maximum steady temperature in deg.C\n",
+ "r = 2.1;\t\t\t#resistance of the wire in ohm cm\n",
+ "J = 4.2;\t\t\t#mechanical equivalent of heat in j/cal\n",
+ "a = 3.14*d**2/4;\t\t\t#area of the copper wire in sq.cm\n",
+ "a2 = 1;\t\t\t#area of the copper surface in sq.cm\n",
+ "\n",
+ "# Calculations \n",
+ "l = 1/(2*3.14*d/2);\t\t\t#length corresponding to the area in cm\n",
+ "R = r*l/a;\t\t\t#resistance of the copper wire in ohm\n",
+ "w = R*a2**2;\t\t\t#work done in joule\n",
+ "h = w/J;\t\t\t#heat devoleped in cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the heat developed is %.f calories'%(round(h,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the heat developed is 25360 calories\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 pageno: 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "h = 10000;\t\t\t#vertical height of water fall in cm\n",
+ "v = 5;\t\t\t #volume disharged per sec in litres\n",
+ "J = 4.18;\t\t\t#joule's constant in j/cal\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "m = v*1000;\t\t\t#mass of water disharged per sec in gm\n",
+ "w = m*h*g;\t\t\t#work done in falling through 100m in erg\n",
+ "H = (v*10**7 *g)/(J*10**7);\t#quantity of heat produced in cal\n",
+ "T = H/m;\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the quantity of heat produced is %3f cal \\\n",
+ "\\nthe rise in temperature is %3.2f deg.C'%(H,T)\n",
+ "\n",
+ "print \"Note : Answer for part A in book is wrong. Please calculate manually.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the quantity of heat produced is 1173.444976 cal \n",
+ "the rise in temperature is 0.23 deg.C\n",
+ "Note : Answer for part A in book is wrong. Please calculate manually.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg.k\n",
+ "v = 10000;\t\t\t#initial velocity of bullet in cm/sec\n",
+ "J = 4.2*10**7;\t\t\t#joules constant in ergs/cal\n",
+ "\n",
+ "# Calculations\n",
+ "ke = (v**2)/2;\t\t\t#kinetic energy of the bullet per unit mass in (cm/sec)**2\n",
+ "T = ke*95/(cp*J*100);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 37.7 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "h = 5000.;\t\t\t#height of the niagara falls in cm\n",
+ "J = 4.2*10**7;\t\t#joules constant in ergs per cal\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "w = h*g;\t\t\t#work done per unit mass in ergs/gn\n",
+ "T = w/J;\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 0.12 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 page no : 48\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables \n",
+ "E1 = 3.75;\t\t\t#potential difference in v\n",
+ "E2 = 3.;\t\t\t#potential differnce in v\n",
+ "i1 = 2.5;\t\t\t#current in amp\n",
+ "i2 = 2;\t\t\t #current in amp\n",
+ "T = 2.7;\t\t\t#the rise in temperature of the water in deg.C\n",
+ "m1 = 48.;\t\t\t#water flow rate at 3 volts in gm/min\n",
+ "m2 = 30.;\t\t\t#water flow rate at 3.75volts in gm/min\n",
+ "s = 1;\t\t\t #specific heat of the water kj/kg-K\n",
+ "\n",
+ "# Calculations\n",
+ "J = (E1*i1-E2*i2)/(s*T*(m1-m2)/60);\t\t\t#the mechanical equivalent in j/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent is %3.3f j/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent is 4.167 j/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 page no : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "R = 64*10**7;\t\t\t#mean radius of the earth in cm\n",
+ "cp = 0.15;\t\t\t#specific heat of earth in kj/kg-K\n",
+ "J = 4.2*10**7;\t\t\t#joules consmath.tant in erg/cal\n",
+ "\n",
+ "# Calculations\n",
+ "i = 2./5*R**2;\t\t\t#moment of inertia of the earth per unit mass in joules\n",
+ "w = (2*3.14)/(24*60*60);\t\t\t#angular velocity of the earth in rad/sec\n",
+ "T = (i*w**2)/(2*J*cp);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in the temperature is %.1f deg C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in the temperature is 68.7 deg C\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 page no : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "cp = 1.25;\t\t\t#specific heat of helium inkj/kg-K\n",
+ "v = 1000;\t\t\t#volume of the gas in ml\n",
+ "w = 0.1785;\t\t\t#mass of the gas at N.T.P in gm\n",
+ "p = 76*13.6*981;\t#pressure of the gas at N.T.P in dynes\n",
+ "T = 273;\t\t\t#temperature at N.T.P in K\n",
+ "\n",
+ "# Calculations\n",
+ "V = 1000/w;\t\t\t#volume occupied by the 1gm of helium gas in cc\n",
+ "cv = cp/1.66;\t\t#specific heat at constant volume it is monatomuc gas kj/kg-K\n",
+ "r = p*V/T;\t\t\t#gas constant in cm**3.atm./K.mol\n",
+ "J = r/(cp-cv);\t\t#mechanical equivalent of heat in erg/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %.2e ergs/calories'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.19e+07 ergs/calories\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 3.15 pageno : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "n = 1./273; \t\t\t#coefficent of expaaansion of air\n",
+ "a = 0.001293;\t \t\t#density of air in gm/cc\n",
+ "cp = 0.2389;\t\t \t#specific heat at consmath.tant pressure in kj/kg.K\n",
+ "p = 76*13.6*981;\t\t\t#pressure at 0 deg.C in dynes\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*n)/(a*(cp-(cp/1.405)));\t\t\t#mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'mechanical equivalent of heat is %.2e ergs/cal'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mechanical equivalent of heat is 4.17e+07 ergs/cal\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16 pageno : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables \n",
+ "r = 120./60;\t\t\t#rate of flow of water in gm/sec\n",
+ "T1 = 27.30;\t\t\t#temperature at initial in deg.C\n",
+ "T2 = 33.75;\t\t\t#temperature at final in deg.C\n",
+ "v = 12.64;\t\t\t#potential drop in volts\n",
+ "s = 1.; \t\t\t#specific heat of water in kj/kg-K\n",
+ "i = 4.35;\t\t\t#current through the heating element in amp\n",
+ "\n",
+ "# Calculations\n",
+ "J = (v*i)/(r*s*(T2-T1));\t\t\t#the mechanical equivalent of heat in joule/calorie\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %3.2f j/cal'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.26 j/cal\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "cp = 6.865;\t\t\t#molar specific heat of hydrogen at consmath.tant pressure in kj/kg-K\n",
+ "cv = 4.880;\t\t\t#molar specific heat of hydrogen at consmath.tant volume in kj/kg-K\n",
+ "p = 1.013*10**6;\t\t\t#atmospheric pressure in dynes/cm**2\n",
+ "v = 22.4*10**3;\t\t\t#gram molar volume in ml\n",
+ "T = 273;\t\t\t#temperature at N.T.P in kelvins\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*v)/(T*(cp-cv));\t\t\t#mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %.2e ergs/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.19e+07 ergs/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "v = 1000.;\t\t\t#volume of hydrogen in ml\n",
+ "t = 273.;\t\t\t#tempature of hydrogen in kelvin\n",
+ "p = 76.;\t\t\t#pressure of hydrogen in mm of hg\n",
+ "w = 0.0896;\t\t\t#weigh of hydrogen in gm\n",
+ "cp = 3.409;\t\t\t#specific heat of hydogen in kj/kg-K\n",
+ "cv = 2.411;\t\t\t#specific heat of hydrogen in kj/kg-K\n",
+ "g = 981.;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "a = 13.6;\t\t\t#density of mercury in gm/cm**2\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*v*g*a)/(w*t*(cp-cv));\t\t\t#mechanical equivalent of heat in ergs/cals\n",
+ "\n",
+ "# Result\n",
+ "print 'mechanical equivalent of heat is %.2e ergs/calorie'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mechanical equivalent of heat is 4.15e+07 ergs/calorie\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "cp = 0.23;\t\t\t#specific heat at constant pressure in kj/kg-K\n",
+ "a = 1.18;\t\t\t#density of air in gm/lit\n",
+ "J = 4.2*10**7;\t\t\t#mechanical equivalent of heat in ergs/cal\n",
+ "t = 300;\t\t\t#temperature of air in kelvin\n",
+ "p = 73*13.6*981;\t\t\t#pressure of air in dynes\n",
+ "\t\t\t#cp-cv = (r/J) = pv/(tj)\n",
+ "\n",
+ "#CALCULATON\n",
+ "cv = cp-(p*1000/(a*t*J));\t\t\t#specific heat at constant volume in calories\n",
+ "\n",
+ "# Result\n",
+ "print 'the specific heat at constant volume is %.4f calories'%(cv)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the specific heat at constant volume is 0.1645 calories\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20 pageno : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "t1 = 0;\t\t\t#temperature of water in deg.C\n",
+ "t2 = 0;\t\t\t#temperature of ice in deg.C\n",
+ "J = 4.18*10**7;\t\t\t#the joules thomson coefficent in erg/cal\n",
+ "l = 80;\t\t\t#latent heat og fusion kj/kg\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ " \n",
+ "# Calculations\n",
+ "h = l*J/(15*g);\t\t\t#height from which ice has fallen\n",
+ "\n",
+ "# Result\n",
+ "print 'the height from which ice has fallen is %.2e cm'%(h)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the height from which ice has fallen is 2.27e+05 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21 page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T = 80;\t\t\t#temperature of bullet in deg.C\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "J = 4.2;\t\t\t#mechanical equivalent of heat in j/cal\n",
+ "\n",
+ "# Calculations\n",
+ "h = T*cp;\t\t\t#heat developed per unit mass in calorie\n",
+ "v = (J*10**7*h*2/0.9)**0.5;\t\t\t#velocity of bullet in cm/sec\n",
+ "\n",
+ "# Result\n",
+ "print 'the velocity of bullet is %.1e cm/sec'%(v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the velocity of bullet is 1.5e+04 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22 pageno : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "w = 5.0;\t\t\t#weight of lead ball in lb\n",
+ "cp = 0.032;\t\t\t#specific heat of lead in Btu/lbdeg.F\n",
+ "h = 50;\t\t\t#height at which ball thrown in feets\n",
+ "v = 20;\t\t\t#vertical speed in ft/sec\n",
+ "g = 32;\t\t\t#accelararion due to gravity in ft/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "u = (v**2)+2*g*h\n",
+ "ke = (w/2*(u));\t\t\t#kinetic energy of the ball at ground\n",
+ "T = ke/(2*32*778*w*cp);\t\t\t#rise of temperature in deg.F\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %.1f deg.F'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 1.1 deg.F\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/ch3_1.ipynb b/TestContribution/ch3_1.ipynb
new file mode 100755
index 00000000..8becd279
--- /dev/null
+++ b/TestContribution/ch3_1.ipynb
@@ -0,0 +1,941 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : The mechanical equivalent of heat"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 pageno : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 20;\t\t\t#calorimeter of water equivalent in gm\n",
+ "n = 1030;\t\t\t#weight of water in gm\n",
+ "p = 2;\t\t\t#no.of paddles\n",
+ "a = 10;\t\t\t#weight of each paddle in kg\n",
+ "s = 80;\t\t\t#dismath.tance between paddles in m\n",
+ "g = 980;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "E = (p*a*1000*g*s*100);\t\t\t#potential energy in dyne cm\n",
+ "T = (E)/(1050*4.18*10**7);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature of water is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature of water is 3.57 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "cp = 0.1;\t\t\t#specific heat of copper in kj/kg-K\n",
+ "w = 120;\t\t\t#weight of copper calorimeter in gm\n",
+ "a = 1400;\t\t\t#weight of paraffin oil in gm\n",
+ "cp1 = 0.6;\t\t\t#specific of parafin oil in kj/kg-K\n",
+ "b = 10**8;\t\t\t#force to rotate the paddle in dynes\n",
+ "T = 16;\t\t\t#rise in temperature in deg.C\n",
+ "n = 900;\t\t\t#no.of revolutions stirred \n",
+ "pi = 3.14;\t\t\t#value of pi\n",
+ "\n",
+ "# Calculations\n",
+ "c = 2*pi*b;\t\t\t#work done by a rotating paddle per rotation in dyne cm per rotation\n",
+ "d = c*n;\t\t\t#total work done in dyne cm \n",
+ "hc = w*cp*16;\t\t\t#heat gained by calorimeter in calories\n",
+ "hp = a*cp1*16;\t\t\t#heat gaained by paraffin oil in calories \n",
+ "J = d/(hc+hp);\t\t\t#mecanical equivalent of heat in erg/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'mecanical equivalent of heat is %.2e erg/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mecanical equivalent of heat is 4.15e+07 erg/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "cp = 0.12;\t\t\t#specific heat of iron in kj/kg-K\n",
+ "m = 25;\t\t\t#mass of iron in lb\n",
+ "h = 0.4;\t\t\t#horse power developed in 3 min\n",
+ "t = 3;\t\t\t#time taken to develop the horse power in min\n",
+ "T = 17;\t\t\t#raise in temp in deg.C\n",
+ "\n",
+ "# Calculations\n",
+ "w = h*33000*t;\t\t\t#total work done in ft-lb\n",
+ "H = m*cp*T;\t\t\t#aount of heat developed in B.Th.U\n",
+ "J = (w)/H;\t\t\t#the value of mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of water is %3.1f ft-lb/B.Th.U'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of water is 776.5 ft-lb/B.Th.U\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "n = 2.;\t\t\t#no.of lead blocks\n",
+ "m = 210.;\t\t\t#mass of each lead block in gm\n",
+ "v = 20000.;\t\t\t#velocity of block relative to earth in cm/sec\n",
+ "J = 4.2*10**7;\t\t\t#mechanical equivalent of heat in ergs/calorie\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "\n",
+ "# Calculations\n",
+ "E = (m*v**2)/2;\t\t\t#kinetic energy of each block in ergs\n",
+ "E2 = n*E;\t\t\t#total kinetic energy in ergs\n",
+ "T = E2/(J*m*n*cp);\t\t\t#mean rise in temperature in T\n",
+ "\n",
+ "# Result\n",
+ "print 'the mean rise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mean rise in temperature is 158.7 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "h = 150;\t\t\t#height froom which ball fallen in ft\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "J = 778;\t\t\t#mechanical equivalent of heat in ft lb/B.Th.U\n",
+ "\n",
+ "# Calculations\n",
+ "#work done in falling is equal to heat absorbed by the ball\n",
+ "T = 160./(J*cp)*(5./9);\t\t\t#the raise in temperature in T\n",
+ "\n",
+ "# Result\n",
+ "print 'the raise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the raise in temperature is 3.8 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 pageno : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables \n",
+ "w = 26.6;\t\t\t#work done one horse in to raise the temperature in lb\n",
+ "T1 = 32.;\t\t\t#temperature at initial in deg.F\n",
+ "T2 = 212.;\t\t\t#temperature at final in deg.F\n",
+ "t = 2.5;\t\t\t#time to raise the tmperature in hrs\n",
+ "p = 25.;\t\t\t#percentage of heat lossed \n",
+ "\n",
+ "# Calculations\n",
+ "#only 75% of heat is utillised\n",
+ "x = w*180.*100.*778./((100-p)*150);\t\t\t#the rate at which horse worked\n",
+ "\n",
+ "# Result\n",
+ "print 'the rate at which horse worked is %3.0f ft-lb wt/min'%(x)\n",
+ "print \"Note : Answer in book is rounded off, Please calculate manually. This answer is accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate at which horse worked is 33112 ft-lb wt/min\n",
+ "Note : Answer in book is rounded off, Please calculate manually. This answer is accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 pageno : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "l = 100.;\t\t\t#length of glass tube in cm\n",
+ "m = 500.;\t\t\t#mass of mercury in glass tube in gm\n",
+ "n = 20.;\t\t\t#number of times inverted i succession\n",
+ "cp = 0.03;\t\t\t#specific heat of mercury in cal/gm/deg.C\n",
+ "J = 4.2;\t\t\t#joule's equivalent in j/cal\n",
+ "g = 981.;\t\t\t#accelaration due to gravity in cm/s**2\n",
+ "\n",
+ "# Calculations\n",
+ "PE = m*g*l;\t\t\t#potential energy for each time in ergs\n",
+ "TE = PE*n;\t\t\t#total loss in ergs\n",
+ "T = TE/(m*cp*J*10**7);\t\t\t#rise in temperature in deg.C\n",
+ "#if T is the rise in temperature,then heat devoloped is m*cp*T\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 1.56 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 page no : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "d = 0.02;\t\t\t#diameter of the copper wire in cm\n",
+ "i = 1;\t\t\t#current in amp\n",
+ "T = 100;\t\t\t#maximum steady temperature in deg.C\n",
+ "r = 2.1;\t\t\t#resistance of the wire in ohm cm\n",
+ "J = 4.2;\t\t\t#mechanical equivalent of heat in j/cal\n",
+ "a = 3.14*d**2/4;\t\t\t#area of the copper wire in sq.cm\n",
+ "a2 = 1;\t\t\t#area of the copper surface in sq.cm\n",
+ "\n",
+ "# Calculations \n",
+ "l = 1/(2*3.14*d/2);\t\t\t#length corresponding to the area in cm\n",
+ "R = r*l/a;\t\t\t#resistance of the copper wire in ohm\n",
+ "w = R*a2**2;\t\t\t#work done in joule\n",
+ "h = w/J;\t\t\t#heat devoleped in cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the heat developed is %.f calories'%(round(h,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the heat developed is 25360 calories\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 pageno: 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "h = 10000;\t\t\t#vertical height of water fall in cm\n",
+ "v = 5;\t\t\t #volume disharged per sec in litres\n",
+ "J = 4.18;\t\t\t#joule's constant in j/cal\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "m = v*1000;\t\t\t#mass of water disharged per sec in gm\n",
+ "w = m*h*g;\t\t\t#work done in falling through 100m in erg\n",
+ "H = (v*10**7 *g)/(J*10**7);\t#quantity of heat produced in cal\n",
+ "T = H/m;\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the quantity of heat produced is %3f cal \\\n",
+ "\\nthe rise in temperature is %3.2f deg.C'%(H,T)\n",
+ "\n",
+ "print \"Note : Answer for part A in book is wrong. Please calculate manually.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the quantity of heat produced is 1173.444976 cal \n",
+ "the rise in temperature is 0.23 deg.C\n",
+ "Note : Answer for part A in book is wrong. Please calculate manually.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg.k\n",
+ "v = 10000;\t\t\t#initial velocity of bullet in cm/sec\n",
+ "J = 4.2*10**7;\t\t\t#joules constant in ergs/cal\n",
+ "\n",
+ "# Calculations\n",
+ "ke = (v**2)/2;\t\t\t#kinetic energy of the bullet per unit mass in (cm/sec)**2\n",
+ "T = ke*95/(cp*J*100);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 37.7 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "h = 5000.;\t\t\t#height of the niagara falls in cm\n",
+ "J = 4.2*10**7;\t\t#joules constant in ergs per cal\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "w = h*g;\t\t\t#work done per unit mass in ergs/gn\n",
+ "T = w/J;\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 0.12 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 page no : 48\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables \n",
+ "E1 = 3.75;\t\t\t#potential difference in v\n",
+ "E2 = 3.;\t\t\t#potential differnce in v\n",
+ "i1 = 2.5;\t\t\t#current in amp\n",
+ "i2 = 2;\t\t\t #current in amp\n",
+ "T = 2.7;\t\t\t#the rise in temperature of the water in deg.C\n",
+ "m1 = 48.;\t\t\t#water flow rate at 3 volts in gm/min\n",
+ "m2 = 30.;\t\t\t#water flow rate at 3.75volts in gm/min\n",
+ "s = 1;\t\t\t #specific heat of the water kj/kg-K\n",
+ "\n",
+ "# Calculations\n",
+ "J = (E1*i1-E2*i2)/(s*T*(m1-m2)/60);\t\t\t#the mechanical equivalent in j/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent is %3.3f j/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent is 4.167 j/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 page no : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "R = 64*10**7;\t\t\t#mean radius of the earth in cm\n",
+ "cp = 0.15;\t\t\t#specific heat of earth in kj/kg-K\n",
+ "J = 4.2*10**7;\t\t\t#joules consmath.tant in erg/cal\n",
+ "\n",
+ "# Calculations\n",
+ "i = 2./5*R**2;\t\t\t#moment of inertia of the earth per unit mass in joules\n",
+ "w = (2*3.14)/(24*60*60);\t\t\t#angular velocity of the earth in rad/sec\n",
+ "T = (i*w**2)/(2*J*cp);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in the temperature is %.1f deg C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in the temperature is 68.7 deg C\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 page no : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "cp = 1.25;\t\t\t#specific heat of helium inkj/kg-K\n",
+ "v = 1000;\t\t\t#volume of the gas in ml\n",
+ "w = 0.1785;\t\t\t#mass of the gas at N.T.P in gm\n",
+ "p = 76*13.6*981;\t#pressure of the gas at N.T.P in dynes\n",
+ "T = 273;\t\t\t#temperature at N.T.P in K\n",
+ "\n",
+ "# Calculations\n",
+ "V = 1000/w;\t\t\t#volume occupied by the 1gm of helium gas in cc\n",
+ "cv = cp/1.66;\t\t#specific heat at constant volume it is monatomuc gas kj/kg-K\n",
+ "r = p*V/T;\t\t\t#gas constant in cm**3.atm./K.mol\n",
+ "J = r/(cp-cv);\t\t#mechanical equivalent of heat in erg/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %.2e ergs/calories'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.19e+07 ergs/calories\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 3.15 pageno : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "n = 1./273; \t\t\t#coefficent of expaaansion of air\n",
+ "a = 0.001293;\t \t\t#density of air in gm/cc\n",
+ "cp = 0.2389;\t\t \t#specific heat at consmath.tant pressure in kj/kg.K\n",
+ "p = 76*13.6*981;\t\t\t#pressure at 0 deg.C in dynes\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*n)/(a*(cp-(cp/1.405)));\t\t\t#mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'mechanical equivalent of heat is %.2e ergs/cal'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mechanical equivalent of heat is 4.17e+07 ergs/cal\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16 pageno : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables \n",
+ "r = 120./60;\t\t\t#rate of flow of water in gm/sec\n",
+ "T1 = 27.30;\t\t\t#temperature at initial in deg.C\n",
+ "T2 = 33.75;\t\t\t#temperature at final in deg.C\n",
+ "v = 12.64;\t\t\t#potential drop in volts\n",
+ "s = 1.; \t\t\t#specific heat of water in kj/kg-K\n",
+ "i = 4.35;\t\t\t#current through the heating element in amp\n",
+ "\n",
+ "# Calculations\n",
+ "J = (v*i)/(r*s*(T2-T1));\t\t\t#the mechanical equivalent of heat in joule/calorie\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %3.2f j/cal'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.26 j/cal\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "cp = 6.865;\t\t\t#molar specific heat of hydrogen at consmath.tant pressure in kj/kg-K\n",
+ "cv = 4.880;\t\t\t#molar specific heat of hydrogen at consmath.tant volume in kj/kg-K\n",
+ "p = 1.013*10**6;\t\t\t#atmospheric pressure in dynes/cm**2\n",
+ "v = 22.4*10**3;\t\t\t#gram molar volume in ml\n",
+ "T = 273;\t\t\t#temperature at N.T.P in kelvins\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*v)/(T*(cp-cv));\t\t\t#mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %.2e ergs/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.19e+07 ergs/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "v = 1000.;\t\t\t#volume of hydrogen in ml\n",
+ "t = 273.;\t\t\t#tempature of hydrogen in kelvin\n",
+ "p = 76.;\t\t\t#pressure of hydrogen in mm of hg\n",
+ "w = 0.0896;\t\t\t#weigh of hydrogen in gm\n",
+ "cp = 3.409;\t\t\t#specific heat of hydogen in kj/kg-K\n",
+ "cv = 2.411;\t\t\t#specific heat of hydrogen in kj/kg-K\n",
+ "g = 981.;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "a = 13.6;\t\t\t#density of mercury in gm/cm**2\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*v*g*a)/(w*t*(cp-cv));\t\t\t#mechanical equivalent of heat in ergs/cals\n",
+ "\n",
+ "# Result\n",
+ "print 'mechanical equivalent of heat is %.2e ergs/calorie'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mechanical equivalent of heat is 4.15e+07 ergs/calorie\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "cp = 0.23;\t\t\t#specific heat at constant pressure in kj/kg-K\n",
+ "a = 1.18;\t\t\t#density of air in gm/lit\n",
+ "J = 4.2*10**7;\t\t\t#mechanical equivalent of heat in ergs/cal\n",
+ "t = 300;\t\t\t#temperature of air in kelvin\n",
+ "p = 73*13.6*981;\t\t\t#pressure of air in dynes\n",
+ "\t\t\t#cp-cv = (r/J) = pv/(tj)\n",
+ "\n",
+ "#CALCULATON\n",
+ "cv = cp-(p*1000/(a*t*J));\t\t\t#specific heat at constant volume in calories\n",
+ "\n",
+ "# Result\n",
+ "print 'the specific heat at constant volume is %.4f calories'%(cv)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the specific heat at constant volume is 0.1645 calories\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20 pageno : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "t1 = 0;\t\t\t#temperature of water in deg.C\n",
+ "t2 = 0;\t\t\t#temperature of ice in deg.C\n",
+ "J = 4.18*10**7;\t\t\t#the joules thomson coefficent in erg/cal\n",
+ "l = 80;\t\t\t#latent heat og fusion kj/kg\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ " \n",
+ "# Calculations\n",
+ "h = l*J/(15*g);\t\t\t#height from which ice has fallen\n",
+ "\n",
+ "# Result\n",
+ "print 'the height from which ice has fallen is %.2e cm'%(h)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the height from which ice has fallen is 2.27e+05 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21 page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T = 80;\t\t\t#temperature of bullet in deg.C\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "J = 4.2;\t\t\t#mechanical equivalent of heat in j/cal\n",
+ "\n",
+ "# Calculations\n",
+ "h = T*cp;\t\t\t#heat developed per unit mass in calorie\n",
+ "v = (J*10**7*h*2/0.9)**0.5;\t\t\t#velocity of bullet in cm/sec\n",
+ "\n",
+ "# Result\n",
+ "print 'the velocity of bullet is %.1e cm/sec'%(v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the velocity of bullet is 1.5e+04 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22 pageno : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "w = 5.0;\t\t\t#weight of lead ball in lb\n",
+ "cp = 0.032;\t\t\t#specific heat of lead in Btu/lbdeg.F\n",
+ "h = 50;\t\t\t#height at which ball thrown in feets\n",
+ "v = 20;\t\t\t#vertical speed in ft/sec\n",
+ "g = 32;\t\t\t#accelararion due to gravity in ft/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "u = (v**2)+2*g*h\n",
+ "ke = (w/2*(u));\t\t\t#kinetic energy of the ball at ground\n",
+ "T = ke/(2*32*778*w*cp);\t\t\t#rise of temperature in deg.F\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %.1f deg.F'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 1.1 deg.F\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/ch3_2.ipynb b/TestContribution/ch3_2.ipynb
new file mode 100755
index 00000000..8becd279
--- /dev/null
+++ b/TestContribution/ch3_2.ipynb
@@ -0,0 +1,941 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : The mechanical equivalent of heat"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 pageno : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "m = 20;\t\t\t#calorimeter of water equivalent in gm\n",
+ "n = 1030;\t\t\t#weight of water in gm\n",
+ "p = 2;\t\t\t#no.of paddles\n",
+ "a = 10;\t\t\t#weight of each paddle in kg\n",
+ "s = 80;\t\t\t#dismath.tance between paddles in m\n",
+ "g = 980;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "E = (p*a*1000*g*s*100);\t\t\t#potential energy in dyne cm\n",
+ "T = (E)/(1050*4.18*10**7);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature of water is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature of water is 3.57 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "cp = 0.1;\t\t\t#specific heat of copper in kj/kg-K\n",
+ "w = 120;\t\t\t#weight of copper calorimeter in gm\n",
+ "a = 1400;\t\t\t#weight of paraffin oil in gm\n",
+ "cp1 = 0.6;\t\t\t#specific of parafin oil in kj/kg-K\n",
+ "b = 10**8;\t\t\t#force to rotate the paddle in dynes\n",
+ "T = 16;\t\t\t#rise in temperature in deg.C\n",
+ "n = 900;\t\t\t#no.of revolutions stirred \n",
+ "pi = 3.14;\t\t\t#value of pi\n",
+ "\n",
+ "# Calculations\n",
+ "c = 2*pi*b;\t\t\t#work done by a rotating paddle per rotation in dyne cm per rotation\n",
+ "d = c*n;\t\t\t#total work done in dyne cm \n",
+ "hc = w*cp*16;\t\t\t#heat gained by calorimeter in calories\n",
+ "hp = a*cp1*16;\t\t\t#heat gaained by paraffin oil in calories \n",
+ "J = d/(hc+hp);\t\t\t#mecanical equivalent of heat in erg/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'mecanical equivalent of heat is %.2e erg/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mecanical equivalent of heat is 4.15e+07 erg/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "cp = 0.12;\t\t\t#specific heat of iron in kj/kg-K\n",
+ "m = 25;\t\t\t#mass of iron in lb\n",
+ "h = 0.4;\t\t\t#horse power developed in 3 min\n",
+ "t = 3;\t\t\t#time taken to develop the horse power in min\n",
+ "T = 17;\t\t\t#raise in temp in deg.C\n",
+ "\n",
+ "# Calculations\n",
+ "w = h*33000*t;\t\t\t#total work done in ft-lb\n",
+ "H = m*cp*T;\t\t\t#aount of heat developed in B.Th.U\n",
+ "J = (w)/H;\t\t\t#the value of mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of water is %3.1f ft-lb/B.Th.U'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of water is 776.5 ft-lb/B.Th.U\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "n = 2.;\t\t\t#no.of lead blocks\n",
+ "m = 210.;\t\t\t#mass of each lead block in gm\n",
+ "v = 20000.;\t\t\t#velocity of block relative to earth in cm/sec\n",
+ "J = 4.2*10**7;\t\t\t#mechanical equivalent of heat in ergs/calorie\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "\n",
+ "# Calculations\n",
+ "E = (m*v**2)/2;\t\t\t#kinetic energy of each block in ergs\n",
+ "E2 = n*E;\t\t\t#total kinetic energy in ergs\n",
+ "T = E2/(J*m*n*cp);\t\t\t#mean rise in temperature in T\n",
+ "\n",
+ "# Result\n",
+ "print 'the mean rise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mean rise in temperature is 158.7 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 pageno : 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "h = 150;\t\t\t#height froom which ball fallen in ft\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "J = 778;\t\t\t#mechanical equivalent of heat in ft lb/B.Th.U\n",
+ "\n",
+ "# Calculations\n",
+ "#work done in falling is equal to heat absorbed by the ball\n",
+ "T = 160./(J*cp)*(5./9);\t\t\t#the raise in temperature in T\n",
+ "\n",
+ "# Result\n",
+ "print 'the raise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the raise in temperature is 3.8 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 pageno : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables \n",
+ "w = 26.6;\t\t\t#work done one horse in to raise the temperature in lb\n",
+ "T1 = 32.;\t\t\t#temperature at initial in deg.F\n",
+ "T2 = 212.;\t\t\t#temperature at final in deg.F\n",
+ "t = 2.5;\t\t\t#time to raise the tmperature in hrs\n",
+ "p = 25.;\t\t\t#percentage of heat lossed \n",
+ "\n",
+ "# Calculations\n",
+ "#only 75% of heat is utillised\n",
+ "x = w*180.*100.*778./((100-p)*150);\t\t\t#the rate at which horse worked\n",
+ "\n",
+ "# Result\n",
+ "print 'the rate at which horse worked is %3.0f ft-lb wt/min'%(x)\n",
+ "print \"Note : Answer in book is rounded off, Please calculate manually. This answer is accurate.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate at which horse worked is 33112 ft-lb wt/min\n",
+ "Note : Answer in book is rounded off, Please calculate manually. This answer is accurate.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 pageno : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "l = 100.;\t\t\t#length of glass tube in cm\n",
+ "m = 500.;\t\t\t#mass of mercury in glass tube in gm\n",
+ "n = 20.;\t\t\t#number of times inverted i succession\n",
+ "cp = 0.03;\t\t\t#specific heat of mercury in cal/gm/deg.C\n",
+ "J = 4.2;\t\t\t#joule's equivalent in j/cal\n",
+ "g = 981.;\t\t\t#accelaration due to gravity in cm/s**2\n",
+ "\n",
+ "# Calculations\n",
+ "PE = m*g*l;\t\t\t#potential energy for each time in ergs\n",
+ "TE = PE*n;\t\t\t#total loss in ergs\n",
+ "T = TE/(m*cp*J*10**7);\t\t\t#rise in temperature in deg.C\n",
+ "#if T is the rise in temperature,then heat devoloped is m*cp*T\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 1.56 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8 page no : 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "d = 0.02;\t\t\t#diameter of the copper wire in cm\n",
+ "i = 1;\t\t\t#current in amp\n",
+ "T = 100;\t\t\t#maximum steady temperature in deg.C\n",
+ "r = 2.1;\t\t\t#resistance of the wire in ohm cm\n",
+ "J = 4.2;\t\t\t#mechanical equivalent of heat in j/cal\n",
+ "a = 3.14*d**2/4;\t\t\t#area of the copper wire in sq.cm\n",
+ "a2 = 1;\t\t\t#area of the copper surface in sq.cm\n",
+ "\n",
+ "# Calculations \n",
+ "l = 1/(2*3.14*d/2);\t\t\t#length corresponding to the area in cm\n",
+ "R = r*l/a;\t\t\t#resistance of the copper wire in ohm\n",
+ "w = R*a2**2;\t\t\t#work done in joule\n",
+ "h = w/J;\t\t\t#heat devoleped in cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the heat developed is %.f calories'%(round(h,-1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the heat developed is 25360 calories\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 pageno: 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables\n",
+ "h = 10000;\t\t\t#vertical height of water fall in cm\n",
+ "v = 5;\t\t\t #volume disharged per sec in litres\n",
+ "J = 4.18;\t\t\t#joule's constant in j/cal\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "m = v*1000;\t\t\t#mass of water disharged per sec in gm\n",
+ "w = m*h*g;\t\t\t#work done in falling through 100m in erg\n",
+ "H = (v*10**7 *g)/(J*10**7);\t#quantity of heat produced in cal\n",
+ "T = H/m;\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the quantity of heat produced is %3f cal \\\n",
+ "\\nthe rise in temperature is %3.2f deg.C'%(H,T)\n",
+ "\n",
+ "print \"Note : Answer for part A in book is wrong. Please calculate manually.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the quantity of heat produced is 1173.444976 cal \n",
+ "the rise in temperature is 0.23 deg.C\n",
+ "Note : Answer for part A in book is wrong. Please calculate manually.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg.k\n",
+ "v = 10000;\t\t\t#initial velocity of bullet in cm/sec\n",
+ "J = 4.2*10**7;\t\t\t#joules constant in ergs/cal\n",
+ "\n",
+ "# Calculations\n",
+ "ke = (v**2)/2;\t\t\t#kinetic energy of the bullet per unit mass in (cm/sec)**2\n",
+ "T = ke*95/(cp*J*100);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.1f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 37.7 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11 page no : 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "h = 5000.;\t\t\t#height of the niagara falls in cm\n",
+ "J = 4.2*10**7;\t\t#joules constant in ergs per cal\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "w = h*g;\t\t\t#work done per unit mass in ergs/gn\n",
+ "T = w/J;\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %3.2f deg.C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 0.12 deg.C\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 page no : 48\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "\n",
+ "# Variables \n",
+ "E1 = 3.75;\t\t\t#potential difference in v\n",
+ "E2 = 3.;\t\t\t#potential differnce in v\n",
+ "i1 = 2.5;\t\t\t#current in amp\n",
+ "i2 = 2;\t\t\t #current in amp\n",
+ "T = 2.7;\t\t\t#the rise in temperature of the water in deg.C\n",
+ "m1 = 48.;\t\t\t#water flow rate at 3 volts in gm/min\n",
+ "m2 = 30.;\t\t\t#water flow rate at 3.75volts in gm/min\n",
+ "s = 1;\t\t\t #specific heat of the water kj/kg-K\n",
+ "\n",
+ "# Calculations\n",
+ "J = (E1*i1-E2*i2)/(s*T*(m1-m2)/60);\t\t\t#the mechanical equivalent in j/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent is %3.3f j/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent is 4.167 j/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 page no : 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "R = 64*10**7;\t\t\t#mean radius of the earth in cm\n",
+ "cp = 0.15;\t\t\t#specific heat of earth in kj/kg-K\n",
+ "J = 4.2*10**7;\t\t\t#joules consmath.tant in erg/cal\n",
+ "\n",
+ "# Calculations\n",
+ "i = 2./5*R**2;\t\t\t#moment of inertia of the earth per unit mass in joules\n",
+ "w = (2*3.14)/(24*60*60);\t\t\t#angular velocity of the earth in rad/sec\n",
+ "T = (i*w**2)/(2*J*cp);\t\t\t#rise in temperature in deg.C\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in the temperature is %.1f deg C'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in the temperature is 68.7 deg C\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 page no : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "cp = 1.25;\t\t\t#specific heat of helium inkj/kg-K\n",
+ "v = 1000;\t\t\t#volume of the gas in ml\n",
+ "w = 0.1785;\t\t\t#mass of the gas at N.T.P in gm\n",
+ "p = 76*13.6*981;\t#pressure of the gas at N.T.P in dynes\n",
+ "T = 273;\t\t\t#temperature at N.T.P in K\n",
+ "\n",
+ "# Calculations\n",
+ "V = 1000/w;\t\t\t#volume occupied by the 1gm of helium gas in cc\n",
+ "cv = cp/1.66;\t\t#specific heat at constant volume it is monatomuc gas kj/kg-K\n",
+ "r = p*V/T;\t\t\t#gas constant in cm**3.atm./K.mol\n",
+ "J = r/(cp-cv);\t\t#mechanical equivalent of heat in erg/cal\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %.2e ergs/calories'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.19e+07 ergs/calories\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 3.15 pageno : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables \n",
+ "n = 1./273; \t\t\t#coefficent of expaaansion of air\n",
+ "a = 0.001293;\t \t\t#density of air in gm/cc\n",
+ "cp = 0.2389;\t\t \t#specific heat at consmath.tant pressure in kj/kg.K\n",
+ "p = 76*13.6*981;\t\t\t#pressure at 0 deg.C in dynes\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*n)/(a*(cp-(cp/1.405)));\t\t\t#mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'mechanical equivalent of heat is %.2e ergs/cal'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mechanical equivalent of heat is 4.17e+07 ergs/cal\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16 pageno : 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables \n",
+ "r = 120./60;\t\t\t#rate of flow of water in gm/sec\n",
+ "T1 = 27.30;\t\t\t#temperature at initial in deg.C\n",
+ "T2 = 33.75;\t\t\t#temperature at final in deg.C\n",
+ "v = 12.64;\t\t\t#potential drop in volts\n",
+ "s = 1.; \t\t\t#specific heat of water in kj/kg-K\n",
+ "i = 4.35;\t\t\t#current through the heating element in amp\n",
+ "\n",
+ "# Calculations\n",
+ "J = (v*i)/(r*s*(T2-T1));\t\t\t#the mechanical equivalent of heat in joule/calorie\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %3.2f j/cal'%(J)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.26 j/cal\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables \n",
+ "cp = 6.865;\t\t\t#molar specific heat of hydrogen at consmath.tant pressure in kj/kg-K\n",
+ "cv = 4.880;\t\t\t#molar specific heat of hydrogen at consmath.tant volume in kj/kg-K\n",
+ "p = 1.013*10**6;\t\t\t#atmospheric pressure in dynes/cm**2\n",
+ "v = 22.4*10**3;\t\t\t#gram molar volume in ml\n",
+ "T = 273;\t\t\t#temperature at N.T.P in kelvins\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*v)/(T*(cp-cv));\t\t\t#mechanical equivalent of heat\n",
+ "\n",
+ "# Result\n",
+ "print 'the mechanical equivalent of heat is %.2e ergs/cal'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mechanical equivalent of heat is 4.19e+07 ergs/cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import math \n",
+ "# Variables\n",
+ "v = 1000.;\t\t\t#volume of hydrogen in ml\n",
+ "t = 273.;\t\t\t#tempature of hydrogen in kelvin\n",
+ "p = 76.;\t\t\t#pressure of hydrogen in mm of hg\n",
+ "w = 0.0896;\t\t\t#weigh of hydrogen in gm\n",
+ "cp = 3.409;\t\t\t#specific heat of hydogen in kj/kg-K\n",
+ "cv = 2.411;\t\t\t#specific heat of hydrogen in kj/kg-K\n",
+ "g = 981.;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ "a = 13.6;\t\t\t#density of mercury in gm/cm**2\n",
+ "\n",
+ "# Calculations\n",
+ "J = (p*v*g*a)/(w*t*(cp-cv));\t\t\t#mechanical equivalent of heat in ergs/cals\n",
+ "\n",
+ "# Result\n",
+ "print 'mechanical equivalent of heat is %.2e ergs/calorie'%(J)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mechanical equivalent of heat is 4.15e+07 ergs/calorie\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19 page no : 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "cp = 0.23;\t\t\t#specific heat at constant pressure in kj/kg-K\n",
+ "a = 1.18;\t\t\t#density of air in gm/lit\n",
+ "J = 4.2*10**7;\t\t\t#mechanical equivalent of heat in ergs/cal\n",
+ "t = 300;\t\t\t#temperature of air in kelvin\n",
+ "p = 73*13.6*981;\t\t\t#pressure of air in dynes\n",
+ "\t\t\t#cp-cv = (r/J) = pv/(tj)\n",
+ "\n",
+ "#CALCULATON\n",
+ "cv = cp-(p*1000/(a*t*J));\t\t\t#specific heat at constant volume in calories\n",
+ "\n",
+ "# Result\n",
+ "print 'the specific heat at constant volume is %.4f calories'%(cv)\n",
+ "print \"Note: answer slightly different because of rounding error.\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the specific heat at constant volume is 0.1645 calories\n",
+ "Note: answer slightly different because of rounding error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20 pageno : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "t1 = 0;\t\t\t#temperature of water in deg.C\n",
+ "t2 = 0;\t\t\t#temperature of ice in deg.C\n",
+ "J = 4.18*10**7;\t\t\t#the joules thomson coefficent in erg/cal\n",
+ "l = 80;\t\t\t#latent heat og fusion kj/kg\n",
+ "g = 981;\t\t\t#accelaration due to gravity in cm/sec**2\n",
+ " \n",
+ "# Calculations\n",
+ "h = l*J/(15*g);\t\t\t#height from which ice has fallen\n",
+ "\n",
+ "# Result\n",
+ "print 'the height from which ice has fallen is %.2e cm'%(h)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the height from which ice has fallen is 2.27e+05 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21 page no : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "# Variables\n",
+ "T = 80;\t\t\t#temperature of bullet in deg.C\n",
+ "cp = 0.03;\t\t\t#specific heat of lead in kj/kg-K\n",
+ "J = 4.2;\t\t\t#mechanical equivalent of heat in j/cal\n",
+ "\n",
+ "# Calculations\n",
+ "h = T*cp;\t\t\t#heat developed per unit mass in calorie\n",
+ "v = (J*10**7*h*2/0.9)**0.5;\t\t\t#velocity of bullet in cm/sec\n",
+ "\n",
+ "# Result\n",
+ "print 'the velocity of bullet is %.1e cm/sec'%(v)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the velocity of bullet is 1.5e+04 cm/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22 pageno : 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "w = 5.0;\t\t\t#weight of lead ball in lb\n",
+ "cp = 0.032;\t\t\t#specific heat of lead in Btu/lbdeg.F\n",
+ "h = 50;\t\t\t#height at which ball thrown in feets\n",
+ "v = 20;\t\t\t#vertical speed in ft/sec\n",
+ "g = 32;\t\t\t#accelararion due to gravity in ft/sec**2\n",
+ "\n",
+ "# Calculations\n",
+ "u = (v**2)+2*g*h\n",
+ "ke = (w/2*(u));\t\t\t#kinetic energy of the ball at ground\n",
+ "T = ke/(2*32*778*w*cp);\t\t\t#rise of temperature in deg.F\n",
+ "\n",
+ "# Result\n",
+ "print 'the rise in temperature is %.1f deg.F'%(T)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rise in temperature is 1.1 deg.F\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/chapterno1.ipynb b/TestContribution/chapterno1.ipynb
new file mode 100755
index 00000000..5ff2285e
--- /dev/null
+++ b/TestContribution/chapterno1.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a1ed470be69235951f179c73fc3f7daca02bf5e071f528ddce3fb4f1444cb8ef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: INTRODUCTORY DIGITAL CONCEPTS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-1,Page No-6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T=10*10**-3\n",
+ "tw=1*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "#Part A\n",
+ "f=1/T\n",
+ "\n",
+ "#Part C\n",
+ "Duty_Cycle=(tw/T)*100\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print\"The Period is measured from the edge of the next pulse. In this case T is measured from leading edge to leading edge,as indicated.T equals 10*10^-3\"\n",
+ "print\"f=\",f,\"Hz\"\n",
+ "print\"Duty Cycle=\",Duty_Cycle,\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Period is measured from the edge of the next pulse. In this case T is measured from leading edge to leading edge,as indicated.T equals 10*10^-3\n",
+ "f= 100.0 Hz\n",
+ "Duty Cycle= 10.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-2, Page No-8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "f=100*10**-3\n",
+ "time=8\n",
+ "T=1/f\n",
+ "print\"Since the frequency of the clock is 100kHz,the period is\",T,\"usec\"\n",
+ "print\"It takes 10*10**-6to transfer each bit in the waveform.The total transfer time for 8 bits is time\"\n",
+ "print\"Time is\",time,\"usec\"\n",
+ "\n",
+ "print\"To detrmine the sequence of bits,examine the waveform during each bit time.If waveform A is HIGH during the bit time, a 1 is transferred. If waveform A is LOW during the bit time,a0 is transferred. The bit sequence is illustrated .The left mosst bit is the first to be transferred.\"\n",
+ "\n",
+ "print\"A parallel transfer would take 10*10**-6 for all eight bits.\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Since the frequency of the clock is 100kHz,the period is 10.0 usec\n",
+ "It takes 10*10**-6to transfer each bit in the waveform.The total transfer time for 8 bits is time\n",
+ "Time is 8 usec\n",
+ "To detrmine the sequence of bits,examine the waveform during each bit time.If waveform A is HIGH during the bit time, a 1 is transferred. If waveform A is LOW during the bit time,a0 is transferred. The bit sequence is illustrated .The left mosst bit is the first to be transferred.\n",
+ "A parallel transfer would take 10*10**-6 for all eight bits.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/TestContribution/exampleCount.py b/TestContribution/exampleCount.py
new file mode 100755
index 00000000..f9c17511
--- /dev/null
+++ b/TestContribution/exampleCount.py
@@ -0,0 +1,27 @@
+import json
+import os
+import re
+
+class info:
+ notebook = ''
+ examples = []
+notebooks = os.listdir('.')
+notebooks = sorted(notebooks)
+print notebooks
+
+total = 0
+
+for i in range(len(notebooks)):
+ ch_examples = 0
+ if notebooks[i].endswith(".ipynb"):
+ f = open(notebooks[i],'r')
+ data = json.load(f)
+ for dic in data["worksheets"][0]["cells"][0:]:
+ if "level" in dic and dic["level"] == 2:
+ ch_examples += 1
+ total += ch_examples
+ print i, " : " , ch_examples
+
+
+
+print "Total Examples : " , total
diff --git a/TestContribution/screenshots/State_Direction.png b/TestContribution/screenshots/State_Direction.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_1.png b/TestContribution/screenshots/State_Direction_1.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_1.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_10.png b/TestContribution/screenshots/State_Direction_10.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_10.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_11.png b/TestContribution/screenshots/State_Direction_11.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_11.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_12.png b/TestContribution/screenshots/State_Direction_12.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_12.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_13.png b/TestContribution/screenshots/State_Direction_13.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_13.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_14.png b/TestContribution/screenshots/State_Direction_14.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_14.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_15.png b/TestContribution/screenshots/State_Direction_15.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_15.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_16.png b/TestContribution/screenshots/State_Direction_16.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_16.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_17.png b/TestContribution/screenshots/State_Direction_17.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_17.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_18.png b/TestContribution/screenshots/State_Direction_18.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_18.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_19.png b/TestContribution/screenshots/State_Direction_19.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_19.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_2.png b/TestContribution/screenshots/State_Direction_2.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_2.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_20.png b/TestContribution/screenshots/State_Direction_20.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_20.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_3.png b/TestContribution/screenshots/State_Direction_3.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_3.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_4.png b/TestContribution/screenshots/State_Direction_4.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_4.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_5.png b/TestContribution/screenshots/State_Direction_5.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_5.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_6.png b/TestContribution/screenshots/State_Direction_6.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_6.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_7.png b/TestContribution/screenshots/State_Direction_7.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_7.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_8.png b/TestContribution/screenshots/State_Direction_8.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_8.png
Binary files differ
diff --git a/TestContribution/screenshots/State_Direction_9.png b/TestContribution/screenshots/State_Direction_9.png
new file mode 100755
index 00000000..145f4da6
--- /dev/null
+++ b/TestContribution/screenshots/State_Direction_9.png
Binary files differ
diff --git a/Testing_Textbook_Companion_Directory/chapter2.ipynb b/Testing_Textbook_Companion_Directory/chapter2.ipynb
new file mode 100755
index 00000000..33489895
--- /dev/null
+++ b/Testing_Textbook_Companion_Directory/chapter2.ipynb
@@ -0,0 +1,285 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4b491165aaa84eef66101894e30c202e368215710941e1135ee996c3417298e7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Types of Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, page no. 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initialization\n",
+ "k = 20 #lb/in\n",
+ "x = 3 #in\n",
+ "\n",
+ "#calculation\n",
+ "def fun(x):\n",
+ " y = k*x\n",
+ " return y\n",
+ "\n",
+ "w = scipy.integrate.quadrature(fun, 0.0, 3.0)\n",
+ "\n",
+ "#result\n",
+ "print \"Work done = %d in-lb\" %(round(w[0]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done = 90 in-lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, page no. 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initialization\n",
+ "w = 0.1 #lbm\n",
+ "Pv = 30000 #ft-lb/lbm\n",
+ "v1 = 14.0 #ft^3 /lbm\n",
+ "v2 = 3.0 #ft^3/lbm\n",
+ "\n",
+ "#calculation\n",
+ "def func(v):\n",
+ " W = Pv/v\n",
+ " return W\n",
+ "\n",
+ "temp = scipy.integrate.quadrature(func, v1, v2,)\n",
+ "Work = w * temp[0]\n",
+ "\n",
+ "#result\n",
+ "#Answer varies a bit from the text due to rounding off of log value\n",
+ "print \"Work done = %d ft-lb\" %Work"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done = -4621 ft-lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, page no. 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initialization of variables\n",
+ "T1 = 500.0 #R\n",
+ "T2 = 1000.0 #R\n",
+ "w = 2.0 #lbm\n",
+ "\n",
+ "#calculations\n",
+ "def c(T):\n",
+ " cp=0.282+0.00046*T\n",
+ " return cp\n",
+ "\n",
+ "Q = scipy.integrate.quadrature(c, T1, T2,)[0]\n",
+ "Heat = Q*w\n",
+ "\n",
+ "#results\n",
+ "print \"Heat flow = %d B\" %(Heat)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat flow = 626 B\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, page no. 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initialization\n",
+ "T1 = 500.0 #R\n",
+ "T2 = 1060.0 #R\n",
+ "w = 1 #lbm\n",
+ "\n",
+ "#calculation\n",
+ "def v(T):\n",
+ " cv = 0.258-120/T +40000/T**2\n",
+ " return cv\n",
+ "\n",
+ "Q = scipy.integrate.quadrature(v, T1, T2,)[0]\n",
+ "cvm=Q/(T2-T1)\n",
+ "\n",
+ "#result\n",
+ "print \"The amount of heat: \", round(Q,1), \"B/lbm\"\n",
+ "print \"Mean specific heat = %.3f B/lbm F\" %cvm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of heat: 96.6 B/lbm\n",
+ "Mean specific heat = 0.172 B/lbm F\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, page no. 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#initialization\n",
+ "w=1 #lbm\n",
+ "Sw=0.3120 #B/lbm R\n",
+ "Ss=1.7566 #B/lb R\n",
+ "T=672 #R\n",
+ "\n",
+ "#calculation\n",
+ "Q=T*(Ss-Sw)\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Latent heat of water = %d B/lbm\" %Q"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of water = 970 B/lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6, page no. 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initialization\n",
+ "w=1 #lbm\n",
+ "T1=492 #R\n",
+ "T2=672 #R\n",
+ "cp=1 #B/lbm F\n",
+ "\n",
+ "#calculation\n",
+ "dQ=cp*(T2-T1)\n",
+ "def ds(T):\n",
+ " s=1/T\n",
+ " return s\n",
+ "\n",
+ "entropy = scipy.integrate.quadrature(ds, T1, T2,)[0]\n",
+ "\n",
+ "#results\n",
+ "print \"Entropy change = \", round(entropy, 3), \"B/lbm R\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change = 0.312 B/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Testing_Textbook_Companion_Directory/chapter5.ipynb b/Testing_Textbook_Companion_Directory/chapter5.ipynb
new file mode 100755
index 00000000..bf944c6e
--- /dev/null
+++ b/Testing_Textbook_Companion_Directory/chapter5.ipynb
@@ -0,0 +1,171 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:080ddee320ed2e8325a1bba2bf7e96e362906d7bc4b7f00bae6953ceccc830a0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: The Second Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, page no. 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#initilisation\n",
+ "Tr = 540.0 #R\n",
+ "Te = 2000.0 #R\n",
+ "m = 200.0 #B/lbm\n",
+ "\n",
+ "#calculation\n",
+ "eta = 1-(Tr/Te)\n",
+ "Qr = m*(1-eta)\n",
+ "\n",
+ "\n",
+ "#result\n",
+ "print \"Thermal efficiency is \", eta*100, \"%\"\n",
+ "print \"Heat rejected = %d B/lbm\" %Qr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency is 73.0 %\n",
+ "Heat rejected = 54 B/lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, page no. 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initilisation\n",
+ "cv=0.171 #B/lbm F\n",
+ "T2=580 #F\n",
+ "T1=520 #F\n",
+ "\n",
+ "#calculation\n",
+ "def fun(T):\n",
+ " cp=cv/T\n",
+ " return cp\n",
+ "\n",
+ "ds = scipy.integrate.quadrature(fun, T1, T2)[0]\n",
+ "\n",
+ "#result\n",
+ "print \"Change in entropy = %.4f B/lbm R\" %ds"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.0187 B/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3, page no. 95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "import scipy.integrate\n",
+ "\n",
+ "#initilisation\n",
+ "\n",
+ "Q = 100.0 #B/lbm\n",
+ "Cp = 0.24 #B/lbm F\n",
+ "T1 = 70.0+460.0 #R\n",
+ "T2 = 550.0+460.0 #R\n",
+ "Ts = 50.0+460.0 #R\n",
+ "\n",
+ "#calculation\n",
+ "def fun(T):\n",
+ " cp = Cp/T\n",
+ " return cp\n",
+ " \n",
+ "ds1 = scipy.integrate.quadrature(fun, T1, T2)[0]\n",
+ "Tf = Q/Cp + T1\n",
+ "ds2 = scipy.integrate.quadrature(fun, T1, Tf)[0]\n",
+ "Qr = Ts*(ds2)\n",
+ "Qa = Q-Qr\n",
+ "Qun = Ts*(ds1)\n",
+ "Qa2 = Q-Qun\n",
+ "\n",
+ "#result\n",
+ "print \"Case 1\"\n",
+ "print \"Change in entropy = %.4f B/lbm R\" %ds1\n",
+ "print \"case 2\"\n",
+ "print \"Entropy change = %.4f B/lbm R\" %ds2\n",
+ "print \"Available energy = %.1f B/lbm\" %Qa\n",
+ "print \"case 3\"\n",
+ "print \"Available energy = %.1f B/lbm\" %Qa2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Case 1\n",
+ "Change in entropy = 0.1548 B/lbm R\n",
+ "case 2\n",
+ "Entropy change = 0.1392 B/lbm R\n",
+ "Available energy = 29.0 B/lbm\n",
+ "case 3\n",
+ "Available energy = 21.1 B/lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Testing_Textbook_Companion_Directory/screenshots/energy.png b/Testing_Textbook_Companion_Directory/screenshots/energy.png
new file mode 100755
index 00000000..67a7242e
--- /dev/null
+++ b/Testing_Textbook_Companion_Directory/screenshots/energy.png
Binary files differ
diff --git a/Testing_Textbook_Companion_Directory/screenshots/internal-energy.png b/Testing_Textbook_Companion_Directory/screenshots/internal-energy.png
new file mode 100755
index 00000000..e2055783
--- /dev/null
+++ b/Testing_Textbook_Companion_Directory/screenshots/internal-energy.png
Binary files differ
diff --git a/Testing_Textbook_Companion_Directory/screenshots/temprature.png b/Testing_Textbook_Companion_Directory/screenshots/temprature.png
new file mode 100755
index 00000000..24557a42
--- /dev/null
+++ b/Testing_Textbook_Companion_Directory/screenshots/temprature.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01.ipynb
new file mode 100755
index 00000000..1b47a56a
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01.ipynb
@@ -0,0 +1,165 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:973d427aa265e6008d444ff4e5a0026589bdadc695d5f549c16acb669fdf56e2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1. Fundamental Concepts of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 1.1, Page Number 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Pi = 3.21e5 #Recommended tyre pressure, Pa\n",
+ "Ti = -5.00 #Initial Tyre temperature, \u00b0C\n",
+ "Tf = 28.00 #Final Tyre temperature, \u00b0C\n",
+ "\n",
+ "#Calculations\n",
+ "Ti = 273.16 + Ti\n",
+ "Tf = 273.16 + Tf\n",
+ "pf = Pi*Tf/Ti #Final tyre pressure, Pa\n",
+ "\n",
+ "#Results\n",
+ "print 'Final Tyre pressure is %6.2e Pa'%pf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Tyre pressure is 3.61e+05 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page Number 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "phe = 1.5 #Pressure in Helium chamber, bar\n",
+ "vhe = 2.0 #Volume of Helium chamber, L\n",
+ "pne = 2.5 #Pressure in Neon chamber, bar\n",
+ "vne = 3.0 #Volume of Neon chamber, L\n",
+ "pxe = 1.0 #Pressure in Xenon chamber, bar\n",
+ "vxe = 1.0 #Volume of Xenon chamber, L\n",
+ "R = 8.314e-2 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "#Calculations\n",
+ "\n",
+ "nhe = phe*vhe/(R*T) #Number of moles of Helium, mol\n",
+ "nne = pne*vne/(R*T) #Number of moles of Neon, mol\n",
+ "nxe = pxe*vxe/(R*T) #Number of moles of Xenon, mol\n",
+ "n = nhe + nne + nxe #Total number of moles, mol\n",
+ "V = vhe + vne + vxe #Total volume of system, L\n",
+ "xhe = nhe/n\n",
+ "xne = nne/n\n",
+ "xxe = nxe/n\n",
+ "P = n*R*T/(V)\n",
+ "phe = P*xhe #Partial pressure of Helium, bar\n",
+ "pne = P*xne #Partial pressure of Neon, bar\n",
+ "pxe = P*xxe #Partial pressure of Xenon, bar\n",
+ "\n",
+ "#Results\n",
+ "print 'Moles of He=%4.3f, Ne=%4.3f and, Xe=%4.3f in mol'%(nhe,nne,nxe) \n",
+ "print 'Mole fraction of xHe=%4.3f, xNe=%4.3f and, xXe=%4.3f'%(xhe,xne,xxe)\n",
+ "print 'Final pressure is %4.3f bar'%P\n",
+ "print 'Partial pressure of pHe=%4.3f, pNe=%4.3f and, pXe=%4.3f in bar'%(phe,pne,pxe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of He=0.121, Ne=0.303 and, Xe=0.040 in mol\n",
+ "Mole fraction of xHe=0.261, xNe=0.652 and, xXe=0.087\n",
+ "Final pressure is 1.917 bar\n",
+ "Partial pressure of pHe=0.500, pNe=1.250 and, pXe=0.167 in bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page Number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "T = 300.0 #Nitrogen temperature, K\n",
+ "v1 = 250.00 #Molar volume, L\n",
+ "v2 = 0.1 #Molar volume, L\n",
+ "a = 1.37 #Van der Waals parameter a, bar.dm6/mol2 \n",
+ "b = 0.0387 #Van der Waals parameter b, dm3/mol\n",
+ "R = 8.314e-2 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "n = 1.\n",
+ "#Calculations\n",
+ "\n",
+ "p1 = n*R*T/v1 \n",
+ "p2 = n*R*T/v2\n",
+ "pv1 = n*R*T/(v1-n*b)- n**2*a/v1**2\n",
+ "pv2 = n*R*T/(v2-n*b)- n**2*a/v2**2\n",
+ "\n",
+ "#Results\n",
+ "print 'Pressure from ideal gas law = %4.2e bar nad from Van der Waals equation = %4.2e bar '%(p1, pv1)\n",
+ "print 'Pressure from ideal gas law = %4.1f bar nad from Van der Waals equation = %4.1f bar '%(p2, pv2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure from ideal gas law = 9.98e-02 bar nad from Van der Waals equation = 9.98e-02 bar \n",
+ "Pressure from ideal gas law = 249.4 bar nad from Van der Waals equation = 269.9 bar \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_1.ipynb
new file mode 100755
index 00000000..1b47a56a
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_1.ipynb
@@ -0,0 +1,165 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:973d427aa265e6008d444ff4e5a0026589bdadc695d5f549c16acb669fdf56e2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1. Fundamental Concepts of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 1.1, Page Number 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Pi = 3.21e5 #Recommended tyre pressure, Pa\n",
+ "Ti = -5.00 #Initial Tyre temperature, \u00b0C\n",
+ "Tf = 28.00 #Final Tyre temperature, \u00b0C\n",
+ "\n",
+ "#Calculations\n",
+ "Ti = 273.16 + Ti\n",
+ "Tf = 273.16 + Tf\n",
+ "pf = Pi*Tf/Ti #Final tyre pressure, Pa\n",
+ "\n",
+ "#Results\n",
+ "print 'Final Tyre pressure is %6.2e Pa'%pf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Tyre pressure is 3.61e+05 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page Number 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "phe = 1.5 #Pressure in Helium chamber, bar\n",
+ "vhe = 2.0 #Volume of Helium chamber, L\n",
+ "pne = 2.5 #Pressure in Neon chamber, bar\n",
+ "vne = 3.0 #Volume of Neon chamber, L\n",
+ "pxe = 1.0 #Pressure in Xenon chamber, bar\n",
+ "vxe = 1.0 #Volume of Xenon chamber, L\n",
+ "R = 8.314e-2 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "#Calculations\n",
+ "\n",
+ "nhe = phe*vhe/(R*T) #Number of moles of Helium, mol\n",
+ "nne = pne*vne/(R*T) #Number of moles of Neon, mol\n",
+ "nxe = pxe*vxe/(R*T) #Number of moles of Xenon, mol\n",
+ "n = nhe + nne + nxe #Total number of moles, mol\n",
+ "V = vhe + vne + vxe #Total volume of system, L\n",
+ "xhe = nhe/n\n",
+ "xne = nne/n\n",
+ "xxe = nxe/n\n",
+ "P = n*R*T/(V)\n",
+ "phe = P*xhe #Partial pressure of Helium, bar\n",
+ "pne = P*xne #Partial pressure of Neon, bar\n",
+ "pxe = P*xxe #Partial pressure of Xenon, bar\n",
+ "\n",
+ "#Results\n",
+ "print 'Moles of He=%4.3f, Ne=%4.3f and, Xe=%4.3f in mol'%(nhe,nne,nxe) \n",
+ "print 'Mole fraction of xHe=%4.3f, xNe=%4.3f and, xXe=%4.3f'%(xhe,xne,xxe)\n",
+ "print 'Final pressure is %4.3f bar'%P\n",
+ "print 'Partial pressure of pHe=%4.3f, pNe=%4.3f and, pXe=%4.3f in bar'%(phe,pne,pxe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of He=0.121, Ne=0.303 and, Xe=0.040 in mol\n",
+ "Mole fraction of xHe=0.261, xNe=0.652 and, xXe=0.087\n",
+ "Final pressure is 1.917 bar\n",
+ "Partial pressure of pHe=0.500, pNe=1.250 and, pXe=0.167 in bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page Number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "T = 300.0 #Nitrogen temperature, K\n",
+ "v1 = 250.00 #Molar volume, L\n",
+ "v2 = 0.1 #Molar volume, L\n",
+ "a = 1.37 #Van der Waals parameter a, bar.dm6/mol2 \n",
+ "b = 0.0387 #Van der Waals parameter b, dm3/mol\n",
+ "R = 8.314e-2 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "n = 1.\n",
+ "#Calculations\n",
+ "\n",
+ "p1 = n*R*T/v1 \n",
+ "p2 = n*R*T/v2\n",
+ "pv1 = n*R*T/(v1-n*b)- n**2*a/v1**2\n",
+ "pv2 = n*R*T/(v2-n*b)- n**2*a/v2**2\n",
+ "\n",
+ "#Results\n",
+ "print 'Pressure from ideal gas law = %4.2e bar nad from Van der Waals equation = %4.2e bar '%(p1, pv1)\n",
+ "print 'Pressure from ideal gas law = %4.1f bar nad from Van der Waals equation = %4.1f bar '%(p2, pv2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure from ideal gas law = 9.98e-02 bar nad from Van der Waals equation = 9.98e-02 bar \n",
+ "Pressure from ideal gas law = 249.4 bar nad from Van der Waals equation = 269.9 bar \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_2.ipynb
new file mode 100755
index 00000000..1b47a56a
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter01_2.ipynb
@@ -0,0 +1,165 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:973d427aa265e6008d444ff4e5a0026589bdadc695d5f549c16acb669fdf56e2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1. Fundamental Concepts of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 1.1, Page Number 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Pi = 3.21e5 #Recommended tyre pressure, Pa\n",
+ "Ti = -5.00 #Initial Tyre temperature, \u00b0C\n",
+ "Tf = 28.00 #Final Tyre temperature, \u00b0C\n",
+ "\n",
+ "#Calculations\n",
+ "Ti = 273.16 + Ti\n",
+ "Tf = 273.16 + Tf\n",
+ "pf = Pi*Tf/Ti #Final tyre pressure, Pa\n",
+ "\n",
+ "#Results\n",
+ "print 'Final Tyre pressure is %6.2e Pa'%pf"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Tyre pressure is 3.61e+05 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2, Page Number 8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "phe = 1.5 #Pressure in Helium chamber, bar\n",
+ "vhe = 2.0 #Volume of Helium chamber, L\n",
+ "pne = 2.5 #Pressure in Neon chamber, bar\n",
+ "vne = 3.0 #Volume of Neon chamber, L\n",
+ "pxe = 1.0 #Pressure in Xenon chamber, bar\n",
+ "vxe = 1.0 #Volume of Xenon chamber, L\n",
+ "R = 8.314e-2 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "#Calculations\n",
+ "\n",
+ "nhe = phe*vhe/(R*T) #Number of moles of Helium, mol\n",
+ "nne = pne*vne/(R*T) #Number of moles of Neon, mol\n",
+ "nxe = pxe*vxe/(R*T) #Number of moles of Xenon, mol\n",
+ "n = nhe + nne + nxe #Total number of moles, mol\n",
+ "V = vhe + vne + vxe #Total volume of system, L\n",
+ "xhe = nhe/n\n",
+ "xne = nne/n\n",
+ "xxe = nxe/n\n",
+ "P = n*R*T/(V)\n",
+ "phe = P*xhe #Partial pressure of Helium, bar\n",
+ "pne = P*xne #Partial pressure of Neon, bar\n",
+ "pxe = P*xxe #Partial pressure of Xenon, bar\n",
+ "\n",
+ "#Results\n",
+ "print 'Moles of He=%4.3f, Ne=%4.3f and, Xe=%4.3f in mol'%(nhe,nne,nxe) \n",
+ "print 'Mole fraction of xHe=%4.3f, xNe=%4.3f and, xXe=%4.3f'%(xhe,xne,xxe)\n",
+ "print 'Final pressure is %4.3f bar'%P\n",
+ "print 'Partial pressure of pHe=%4.3f, pNe=%4.3f and, pXe=%4.3f in bar'%(phe,pne,pxe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of He=0.121, Ne=0.303 and, Xe=0.040 in mol\n",
+ "Mole fraction of xHe=0.261, xNe=0.652 and, xXe=0.087\n",
+ "Final pressure is 1.917 bar\n",
+ "Partial pressure of pHe=0.500, pNe=1.250 and, pXe=0.167 in bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page Number 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "T = 300.0 #Nitrogen temperature, K\n",
+ "v1 = 250.00 #Molar volume, L\n",
+ "v2 = 0.1 #Molar volume, L\n",
+ "a = 1.37 #Van der Waals parameter a, bar.dm6/mol2 \n",
+ "b = 0.0387 #Van der Waals parameter b, dm3/mol\n",
+ "R = 8.314e-2 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "n = 1.\n",
+ "#Calculations\n",
+ "\n",
+ "p1 = n*R*T/v1 \n",
+ "p2 = n*R*T/v2\n",
+ "pv1 = n*R*T/(v1-n*b)- n**2*a/v1**2\n",
+ "pv2 = n*R*T/(v2-n*b)- n**2*a/v2**2\n",
+ "\n",
+ "#Results\n",
+ "print 'Pressure from ideal gas law = %4.2e bar nad from Van der Waals equation = %4.2e bar '%(p1, pv1)\n",
+ "print 'Pressure from ideal gas law = %4.1f bar nad from Van der Waals equation = %4.1f bar '%(p2, pv2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure from ideal gas law = 9.98e-02 bar nad from Van der Waals equation = 9.98e-02 bar \n",
+ "Pressure from ideal gas law = 249.4 bar nad from Van der Waals equation = 269.9 bar \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02.ipynb
new file mode 100755
index 00000000..432f8e79
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02.ipynb
@@ -0,0 +1,420 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:79d03e9c97c3d8ac9e7b819d4383e36696e6a2ea64bb801edb77a95675cdc73c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02: Heat, Work, Internal Energy, Enthalpy, and The First Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.1, Page 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration Part a\n",
+ "vi = 20.0 #Initial volume of ideal gas, L\n",
+ "vf = 85.0 #final volume of ideal gas, L\n",
+ "Pext = 2.5 #External Pressure against which work is done, bar\n",
+ "\n",
+ "#Calculations\n",
+ "w = -Pext*1e5*(vf-vi)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'Part a: Work done in expansion is %6.1f kJ'%(w/1000)\n",
+ "\n",
+ "#Variable Declaration Part b\n",
+ "ri = 1.00 #Initial diameter of bubble, cm\n",
+ "rf = 3.25 #final diameter of bubble, cm\n",
+ "sigm = 71.99 #Surface tension, N/m\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = -2*sigm*4*pi*(rf**2-ri**2)*1e-4\n",
+ "\n",
+ "#Results\n",
+ "print 'Part b: Work done in expansion of bubble is %4.2f J'%w\n",
+ "\n",
+ "#Variable Declaration Part c\n",
+ "i = 3.20 #Current through heating coil, A \n",
+ "v = 14.5 #fVoltage applied across coil, volts\n",
+ "t = 30.0 #time for which current is applied,s\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = v*i*t\n",
+ "\n",
+ "#Results\n",
+ "print 'Part c: Work done in paasing the cuurent through coil is %4.2f kJ'%(w/1000)\n",
+ "\n",
+ "#Variable Declaration Part d\n",
+ "k = 100.0 #Constant in F = -kx, N/cm \n",
+ "dl = -0.15 #stretch , cm\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = -k*(dl**2-0)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Part d: Work done stretching th fiber is %4.2f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a: Work done in expansion is -16.2 kJ\n",
+ "Part b: Work done in expansion of bubble is -1.73 J\n",
+ "Part c: Work done in paasing the cuurent through coil is 1.39 kJ\n",
+ "Part c: Work done stretching th fiber is -1.12 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.2, Page Number 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration \n",
+ "m = 100.0 #Mass of water, g \n",
+ "T = 100.0 #Temperature of water, \u00b0C\n",
+ "Pext = 1.0 #External Pressure on assembly, bar\n",
+ "x = 10.0 #percent of water vaporised at 1 bar,-\n",
+ "i = 2.00 #current through heating coil, A\n",
+ "v = 12.0 #Voltage applied, v\n",
+ "t = 1.0e3 #time for which current applied, s \n",
+ "rhol = 997 #Density of liquid, kg/m3\n",
+ "rhog = 0.59 #Density of vapor, kg/m3\n",
+ "\n",
+ "#Calculations\n",
+ "q = i*v*t\n",
+ "vi = m/(rhol*100)*1e-3\n",
+ "vf = m*(100-x)*1e-3/(rhol*100) + m*x*1e-3/(rhog*100)\n",
+ "w = -Pext*(vf-vi)*1e5\n",
+ "#Results\n",
+ "print 'Heat added to the water %4.2f kJ'%(q/1000)\n",
+ "print 'Work done in vaporizing liquid is %4.2f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added to the water 24.00 kJ\n",
+ "Work done in vaporizing liquid is -1703.84 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.3, Page Number 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration Part d\n",
+ "m = 1.5 #mass of water in surrounding, kg \n",
+ "dT = 14.2 #Change in temperature of water, \u00b0C or K\n",
+ "cp = 4.18 #Specific heat of water at constant pressure, J/(g.K)\n",
+ "\n",
+ "#Calculations\n",
+ "qp = m*cp*dT\n",
+ "\n",
+ "#Results\n",
+ "print 'Heat removed by water at constant pressure %4.2f kJ'%qp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat removed by water at constant pressure 89.03 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.4, Page Number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable declaration\n",
+ "n = 2.0 #moles of ideal gas\n",
+ "R = 8.314 #Ideal gas constant, bar.L/(mol.K)\n",
+ "#For reverssible Isothermal expansion \n",
+ "Pi1 = 25.0 #Initial Pressure of ideal gas, bar\n",
+ "Vi1 = 4.50 #Initial volume of ideal gas, L\n",
+ "Pf1 = 4.50 #Fianl Pressure of ideal gas, bar\n",
+ "Pext = 4.50 #External pressure, bar \n",
+ "Pint = 11.0 #Intermediate pressure, bar\n",
+ "\n",
+ "#Calcualtions reverssible Isothermal expansion \n",
+ "T1 = Pi1*Vi1/(n*R)\n",
+ "Vf1 = n*R*T1/Pf1\n",
+ "w = -n*R*T1*log(Vf1/Vi1)\n",
+ "\n",
+ "#Results\n",
+ "print 'For reverssible Isothermal expansion'\n",
+ "print 'Work done = %4.2e J'%w\n",
+ "\n",
+ "#Calcualtions Single step irreverssible expansion \n",
+ "\n",
+ "w = -Pext*1e5*(Vf1-Vi1)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'For Single step reverssible expansion'\n",
+ "print 'Work done = %4.2e J'%w\n",
+ "\n",
+ "#Calcualtions Two step irreverssible expansion \n",
+ "Vint = n*R*T1/(Pint)\n",
+ "w = -Pint*1e5*(Vint-Vi1)*1e-3 - Pf1*1e5*(Vf1-Vint)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'For Two step reverssible expansion'\n",
+ "print 'Work done = %4.2e J'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For reverssible Isothermal expansion\n",
+ "Work done = -1.93e+02 J\n",
+ "For Single step reverssible expansion\n",
+ "Work done = -9.22e+03 J\n",
+ "For Twi step reverssible expansion\n",
+ "Work done = -1.29e+04 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.5, Page Number 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable declaration\n",
+ "n = 2.5 #moles of ideal gas\n",
+ "R = 0.08314 #Ideal gas constant, bar.L/(mol.K)\n",
+ "cvm = 20.79 #Heat Capacity at constant volume, J/(mol.K)\n",
+ "\n",
+ "p1 = 16.6 #Pressure at point 1, bar\n",
+ "v1 = 1.00 #Volume at point 1, L\n",
+ "p2 = 16.6 #Pressure at point 2, bar\n",
+ "v2 = 25.0 #Volume at point 2, L \n",
+ "v3 = 25.0 #Volume at point 3, L\n",
+ "\n",
+ "#Calculations\n",
+ "T1 = p1*v1/(n*R)\n",
+ "T2 = p2*v2/(n*R)\n",
+ "T3 = T1 #from problem statement\n",
+ " #for path 1-2\n",
+ "DU12 = n*cvm*(T2-T1)\n",
+ "w12 = -p1*1e5*(v2-v1)*1e-3\n",
+ "q12 = DU12 - w12\n",
+ "DH12 = DU12 + n*R*(T2-T1)*1e2\n",
+ "\n",
+ " #for path 2-3\n",
+ "w23 = 0.0\n",
+ "DU23 = q23 = n*cvm*(T3-T2)\n",
+ "DH23 = -DH12\n",
+ "\n",
+ "\n",
+ " #for path 3-1\n",
+ "DU31 = 0.0 #Isothemal process\n",
+ "DH31 = 0.0\n",
+ "w31 = -n*R*1e2*T1*log(v1/v3)\n",
+ "q31 = -w31\n",
+ "\n",
+ "DU = DU12+DU23+DU31\n",
+ "w = w12+w23+w31\n",
+ "q = q12+q23+q31\n",
+ "DH = DH12+DH23+DH31\n",
+ "\n",
+ "#Results\n",
+ "print 'For Path q w DU DH '\n",
+ "print '1-2 %7.2f %7.2f %7.2f %7.2f'%(q12,w12,DU12,DH12)\n",
+ "print '2-3 %7.2f %7.2f %7.2f %7.2f'%(q23,w23,DU23,DH23)\n",
+ "print '3-1 %7.2f %7.2f %7.2f %7.2f'%(q31,w31,DU31,DH31)\n",
+ "print 'Overall %7.2f %7.2f %7.2f %7.2f'%(q,w,DU,DH)\n",
+ "print 'all values are in J'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Path q w DU DH \n",
+ "1-2 139463.96 -39840.00 99623.96 139463.96\n",
+ "2-3 -99623.96 0.00 -99623.96 -139463.96\n",
+ "3-1 -5343.33 5343.33 0.00 0.00\n",
+ "Overall 34496.67 -34496.67 0.00 0.00\n",
+ "all values are in J\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.6, Page Number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "n = 2.5 #moles of ideal gas\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "cvm = 12.47 #Heat Capacity at constant volume, J/(mol.K)\n",
+ "\n",
+ "pext = 1.00 #External Pressure, bar\n",
+ "Ti = 325. #Initial Temeprature, K\n",
+ "pi = 2.50 #Initial Pressure, bar\n",
+ "pf = 1.25 #Final pressure, bar \n",
+ "\n",
+ "#Calculations Adiabatic process q = 0; DU = w\n",
+ "q = 0.0 \n",
+ "Tf = Ti*(cvm + R*pext/pi)/(cvm + R*pext/pf )\n",
+ "DU = w = n*cvm*(Tf-Ti)\n",
+ "DH = DU + n*R*(Tf-Ti)\n",
+ "\n",
+ "#Results\n",
+ "print 'The final temperature at end of adiabatic procees is %4.1f K'%Tf\n",
+ "print 'The enthalpy change of adiabatic procees is %4.1f J'%DH\n",
+ "print 'The Internal energy change of adiabatic procees is %4.1f J'%DU\n",
+ "print 'The work done in expansion of adiabatic procees is %4.1f J'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final temperature at end of adiabatic procees is 268.5 K\n",
+ "The enthalpy change of adiabatic procees is -2937.0 J\n",
+ "The Internal energy change of adiabatic procees is -1762.2 J\n",
+ "The work done in expansion of adiabatic procees is -1762.2 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.7, Page Number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration Part d\n",
+ "h1 = 1000.0 #initial Altitude of cloud, m \n",
+ "hf = 3500.0 #Final Altitude of cloud, m \n",
+ "p1 = 0.802 #Pressure at h1, atm \n",
+ "pf = 0.602 #Pressure at hf, atm\n",
+ "T1 = 288.0 #Initial temperature of cloud, K\n",
+ "cp = 28.86 #Specific heat of air, J/mol.K\n",
+ "R = 8.314 #Gas constant, J/mol.K\n",
+ "\n",
+ "from math import log, exp\n",
+ "\n",
+ "#Calculations\n",
+ "Tf = exp(-(cp/(cp-R)-1)/(cp/(cp-R))*log(p1/pf))*T1\n",
+ "#Results\n",
+ "print 'Final temperature of cloud %4.1f K'%Tf\n",
+ "if Tf < 273:\n",
+ " print 'You can expect cloud'\n",
+ "else:\n",
+ " print 'You can not expect cloud'\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature of cloud 265.2 K\n",
+ "You can expect cloud\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_1.ipynb
new file mode 100755
index 00000000..432f8e79
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_1.ipynb
@@ -0,0 +1,420 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:79d03e9c97c3d8ac9e7b819d4383e36696e6a2ea64bb801edb77a95675cdc73c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02: Heat, Work, Internal Energy, Enthalpy, and The First Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.1, Page 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration Part a\n",
+ "vi = 20.0 #Initial volume of ideal gas, L\n",
+ "vf = 85.0 #final volume of ideal gas, L\n",
+ "Pext = 2.5 #External Pressure against which work is done, bar\n",
+ "\n",
+ "#Calculations\n",
+ "w = -Pext*1e5*(vf-vi)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'Part a: Work done in expansion is %6.1f kJ'%(w/1000)\n",
+ "\n",
+ "#Variable Declaration Part b\n",
+ "ri = 1.00 #Initial diameter of bubble, cm\n",
+ "rf = 3.25 #final diameter of bubble, cm\n",
+ "sigm = 71.99 #Surface tension, N/m\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = -2*sigm*4*pi*(rf**2-ri**2)*1e-4\n",
+ "\n",
+ "#Results\n",
+ "print 'Part b: Work done in expansion of bubble is %4.2f J'%w\n",
+ "\n",
+ "#Variable Declaration Part c\n",
+ "i = 3.20 #Current through heating coil, A \n",
+ "v = 14.5 #fVoltage applied across coil, volts\n",
+ "t = 30.0 #time for which current is applied,s\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = v*i*t\n",
+ "\n",
+ "#Results\n",
+ "print 'Part c: Work done in paasing the cuurent through coil is %4.2f kJ'%(w/1000)\n",
+ "\n",
+ "#Variable Declaration Part d\n",
+ "k = 100.0 #Constant in F = -kx, N/cm \n",
+ "dl = -0.15 #stretch , cm\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = -k*(dl**2-0)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Part d: Work done stretching th fiber is %4.2f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a: Work done in expansion is -16.2 kJ\n",
+ "Part b: Work done in expansion of bubble is -1.73 J\n",
+ "Part c: Work done in paasing the cuurent through coil is 1.39 kJ\n",
+ "Part c: Work done stretching th fiber is -1.12 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.2, Page Number 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration \n",
+ "m = 100.0 #Mass of water, g \n",
+ "T = 100.0 #Temperature of water, \u00b0C\n",
+ "Pext = 1.0 #External Pressure on assembly, bar\n",
+ "x = 10.0 #percent of water vaporised at 1 bar,-\n",
+ "i = 2.00 #current through heating coil, A\n",
+ "v = 12.0 #Voltage applied, v\n",
+ "t = 1.0e3 #time for which current applied, s \n",
+ "rhol = 997 #Density of liquid, kg/m3\n",
+ "rhog = 0.59 #Density of vapor, kg/m3\n",
+ "\n",
+ "#Calculations\n",
+ "q = i*v*t\n",
+ "vi = m/(rhol*100)*1e-3\n",
+ "vf = m*(100-x)*1e-3/(rhol*100) + m*x*1e-3/(rhog*100)\n",
+ "w = -Pext*(vf-vi)*1e5\n",
+ "#Results\n",
+ "print 'Heat added to the water %4.2f kJ'%(q/1000)\n",
+ "print 'Work done in vaporizing liquid is %4.2f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added to the water 24.00 kJ\n",
+ "Work done in vaporizing liquid is -1703.84 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.3, Page Number 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration Part d\n",
+ "m = 1.5 #mass of water in surrounding, kg \n",
+ "dT = 14.2 #Change in temperature of water, \u00b0C or K\n",
+ "cp = 4.18 #Specific heat of water at constant pressure, J/(g.K)\n",
+ "\n",
+ "#Calculations\n",
+ "qp = m*cp*dT\n",
+ "\n",
+ "#Results\n",
+ "print 'Heat removed by water at constant pressure %4.2f kJ'%qp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat removed by water at constant pressure 89.03 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.4, Page Number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable declaration\n",
+ "n = 2.0 #moles of ideal gas\n",
+ "R = 8.314 #Ideal gas constant, bar.L/(mol.K)\n",
+ "#For reverssible Isothermal expansion \n",
+ "Pi1 = 25.0 #Initial Pressure of ideal gas, bar\n",
+ "Vi1 = 4.50 #Initial volume of ideal gas, L\n",
+ "Pf1 = 4.50 #Fianl Pressure of ideal gas, bar\n",
+ "Pext = 4.50 #External pressure, bar \n",
+ "Pint = 11.0 #Intermediate pressure, bar\n",
+ "\n",
+ "#Calcualtions reverssible Isothermal expansion \n",
+ "T1 = Pi1*Vi1/(n*R)\n",
+ "Vf1 = n*R*T1/Pf1\n",
+ "w = -n*R*T1*log(Vf1/Vi1)\n",
+ "\n",
+ "#Results\n",
+ "print 'For reverssible Isothermal expansion'\n",
+ "print 'Work done = %4.2e J'%w\n",
+ "\n",
+ "#Calcualtions Single step irreverssible expansion \n",
+ "\n",
+ "w = -Pext*1e5*(Vf1-Vi1)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'For Single step reverssible expansion'\n",
+ "print 'Work done = %4.2e J'%w\n",
+ "\n",
+ "#Calcualtions Two step irreverssible expansion \n",
+ "Vint = n*R*T1/(Pint)\n",
+ "w = -Pint*1e5*(Vint-Vi1)*1e-3 - Pf1*1e5*(Vf1-Vint)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'For Two step reverssible expansion'\n",
+ "print 'Work done = %4.2e J'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For reverssible Isothermal expansion\n",
+ "Work done = -1.93e+02 J\n",
+ "For Single step reverssible expansion\n",
+ "Work done = -9.22e+03 J\n",
+ "For Twi step reverssible expansion\n",
+ "Work done = -1.29e+04 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.5, Page Number 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable declaration\n",
+ "n = 2.5 #moles of ideal gas\n",
+ "R = 0.08314 #Ideal gas constant, bar.L/(mol.K)\n",
+ "cvm = 20.79 #Heat Capacity at constant volume, J/(mol.K)\n",
+ "\n",
+ "p1 = 16.6 #Pressure at point 1, bar\n",
+ "v1 = 1.00 #Volume at point 1, L\n",
+ "p2 = 16.6 #Pressure at point 2, bar\n",
+ "v2 = 25.0 #Volume at point 2, L \n",
+ "v3 = 25.0 #Volume at point 3, L\n",
+ "\n",
+ "#Calculations\n",
+ "T1 = p1*v1/(n*R)\n",
+ "T2 = p2*v2/(n*R)\n",
+ "T3 = T1 #from problem statement\n",
+ " #for path 1-2\n",
+ "DU12 = n*cvm*(T2-T1)\n",
+ "w12 = -p1*1e5*(v2-v1)*1e-3\n",
+ "q12 = DU12 - w12\n",
+ "DH12 = DU12 + n*R*(T2-T1)*1e2\n",
+ "\n",
+ " #for path 2-3\n",
+ "w23 = 0.0\n",
+ "DU23 = q23 = n*cvm*(T3-T2)\n",
+ "DH23 = -DH12\n",
+ "\n",
+ "\n",
+ " #for path 3-1\n",
+ "DU31 = 0.0 #Isothemal process\n",
+ "DH31 = 0.0\n",
+ "w31 = -n*R*1e2*T1*log(v1/v3)\n",
+ "q31 = -w31\n",
+ "\n",
+ "DU = DU12+DU23+DU31\n",
+ "w = w12+w23+w31\n",
+ "q = q12+q23+q31\n",
+ "DH = DH12+DH23+DH31\n",
+ "\n",
+ "#Results\n",
+ "print 'For Path q w DU DH '\n",
+ "print '1-2 %7.2f %7.2f %7.2f %7.2f'%(q12,w12,DU12,DH12)\n",
+ "print '2-3 %7.2f %7.2f %7.2f %7.2f'%(q23,w23,DU23,DH23)\n",
+ "print '3-1 %7.2f %7.2f %7.2f %7.2f'%(q31,w31,DU31,DH31)\n",
+ "print 'Overall %7.2f %7.2f %7.2f %7.2f'%(q,w,DU,DH)\n",
+ "print 'all values are in J'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Path q w DU DH \n",
+ "1-2 139463.96 -39840.00 99623.96 139463.96\n",
+ "2-3 -99623.96 0.00 -99623.96 -139463.96\n",
+ "3-1 -5343.33 5343.33 0.00 0.00\n",
+ "Overall 34496.67 -34496.67 0.00 0.00\n",
+ "all values are in J\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.6, Page Number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "n = 2.5 #moles of ideal gas\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "cvm = 12.47 #Heat Capacity at constant volume, J/(mol.K)\n",
+ "\n",
+ "pext = 1.00 #External Pressure, bar\n",
+ "Ti = 325. #Initial Temeprature, K\n",
+ "pi = 2.50 #Initial Pressure, bar\n",
+ "pf = 1.25 #Final pressure, bar \n",
+ "\n",
+ "#Calculations Adiabatic process q = 0; DU = w\n",
+ "q = 0.0 \n",
+ "Tf = Ti*(cvm + R*pext/pi)/(cvm + R*pext/pf )\n",
+ "DU = w = n*cvm*(Tf-Ti)\n",
+ "DH = DU + n*R*(Tf-Ti)\n",
+ "\n",
+ "#Results\n",
+ "print 'The final temperature at end of adiabatic procees is %4.1f K'%Tf\n",
+ "print 'The enthalpy change of adiabatic procees is %4.1f J'%DH\n",
+ "print 'The Internal energy change of adiabatic procees is %4.1f J'%DU\n",
+ "print 'The work done in expansion of adiabatic procees is %4.1f J'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final temperature at end of adiabatic procees is 268.5 K\n",
+ "The enthalpy change of adiabatic procees is -2937.0 J\n",
+ "The Internal energy change of adiabatic procees is -1762.2 J\n",
+ "The work done in expansion of adiabatic procees is -1762.2 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.7, Page Number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration Part d\n",
+ "h1 = 1000.0 #initial Altitude of cloud, m \n",
+ "hf = 3500.0 #Final Altitude of cloud, m \n",
+ "p1 = 0.802 #Pressure at h1, atm \n",
+ "pf = 0.602 #Pressure at hf, atm\n",
+ "T1 = 288.0 #Initial temperature of cloud, K\n",
+ "cp = 28.86 #Specific heat of air, J/mol.K\n",
+ "R = 8.314 #Gas constant, J/mol.K\n",
+ "\n",
+ "from math import log, exp\n",
+ "\n",
+ "#Calculations\n",
+ "Tf = exp(-(cp/(cp-R)-1)/(cp/(cp-R))*log(p1/pf))*T1\n",
+ "#Results\n",
+ "print 'Final temperature of cloud %4.1f K'%Tf\n",
+ "if Tf < 273:\n",
+ " print 'You can expect cloud'\n",
+ "else:\n",
+ " print 'You can not expect cloud'\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature of cloud 265.2 K\n",
+ "You can expect cloud\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_2.ipynb
new file mode 100755
index 00000000..33af2f86
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter02_2.ipynb
@@ -0,0 +1,422 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fd4fe45c4daf974ea5ee4870185f4ea6168b1d380170021a0ef0ab1146d13121"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02: Heat, Work, Internal Energy, Enthalpy, and The First Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.1, Page 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "\n",
+ "#Variable Declaration Part a\n",
+ "vi = 20.0 #Initial volume of ideal gas, L\n",
+ "vf = 85.0 #final volume of ideal gas, L\n",
+ "Pext = 2.5 #External Pressure against which work is done, bar\n",
+ "\n",
+ "#Calculations\n",
+ "w = -Pext*1e5*(vf-vi)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'Part a: Work done in expansion is %6.1f kJ'%(w/1000)\n",
+ "\n",
+ "#Variable Declaration Part b\n",
+ "ri = 1.00 #Initial diameter of bubble, cm\n",
+ "rf = 3.25 #final diameter of bubble, cm\n",
+ "sigm = 71.99 #Surface tension, N/m\n",
+ "\n",
+ "#Calculations\n",
+ "w = -2*sigm*4*pi*(rf**2-ri**2)*1e-4\n",
+ "\n",
+ "#Results\n",
+ "print 'Part b: Work done in expansion of bubble is %4.2f J'%w\n",
+ "\n",
+ "#Variable Declaration Part c\n",
+ "i = 3.20 #Current through heating coil, A \n",
+ "v = 14.5 #fVoltage applied across coil, volts\n",
+ "t = 30.0 #time for which current is applied,s\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = v*i*t\n",
+ "\n",
+ "#Results\n",
+ "print 'Part c: Work done in paasing the cuurent through coil is %4.2f kJ'%(w/1000)\n",
+ "\n",
+ "#Variable Declaration Part d\n",
+ "k = 100.0 #Constant in F = -kx, N/cm \n",
+ "dl = -0.15 #stretch , cm\n",
+ "\n",
+ "from math import pi\n",
+ "#Calculations\n",
+ "w = -k*(dl**2-0)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Part d: Work done stretching th fiber is %4.2f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a: Work done in expansion is -16.2 kJ\n",
+ "Part b: Work done in expansion of bubble is -1.73 J\n",
+ "Part c: Work done in paasing the cuurent through coil is 1.39 kJ\n",
+ "Part d: Work done stretching th fiber is -1.12 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.2, Page Number 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration \n",
+ "m = 100.0 #Mass of water, g \n",
+ "T = 100.0 #Temperature of water, \u00b0C\n",
+ "Pext = 1.0 #External Pressure on assembly, bar\n",
+ "x = 10.0 #percent of water vaporised at 1 bar,-\n",
+ "i = 2.00 #current through heating coil, A\n",
+ "v = 12.0 #Voltage applied, v\n",
+ "t = 1.0e3 #time for which current applied, s \n",
+ "rhol = 997 #Density of liquid, kg/m3\n",
+ "rhog = 0.59 #Density of vapor, kg/m3\n",
+ "\n",
+ "#Calculations\n",
+ "q = i*v*t\n",
+ "vi = m/(rhol*100)*1e-3\n",
+ "vf = m*(100-x)*1e-3/(rhol*100) + m*x*1e-3/(rhog*100)\n",
+ "w = -Pext*(vf-vi)*1e5\n",
+ "#Results\n",
+ "print 'Heat added to the water %4.2f kJ'%(q/1000)\n",
+ "print 'Work done in vaporizing liquid is %4.2f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added to the water 24.00 kJ\n",
+ "Work done in vaporizing liquid is -1703.84 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.3, Page Number 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration Part d\n",
+ "m = 1.5 #mass of water in surrounding, kg \n",
+ "dT = 14.2 #Change in temperature of water, \u00b0C or K\n",
+ "cp = 4.18 #Specific heat of water at constant pressure, J/(g.K)\n",
+ "\n",
+ "#Calculations\n",
+ "qp = m*cp*dT\n",
+ "\n",
+ "#Results\n",
+ "print 'Heat removed by water at constant pressure %4.2f kJ'%qp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat removed by water at constant pressure 89.03 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.4, Page Number 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable declaration\n",
+ "n = 2.0 #moles of ideal gas\n",
+ "R = 8.314 #Ideal gas constant, bar.L/(mol.K)\n",
+ "#For reverssible Isothermal expansion \n",
+ "Pi1 = 25.0 #Initial Pressure of ideal gas, bar\n",
+ "Vi1 = 4.50 #Initial volume of ideal gas, L\n",
+ "Pf1 = 4.50 #Fianl Pressure of ideal gas, bar\n",
+ "Pext = 4.50 #External pressure, bar \n",
+ "Pint = 11.0 #Intermediate pressure, bar\n",
+ "\n",
+ "#Calcualtions reverssible Isothermal expansion \n",
+ "T1 = Pi1*Vi1/(n*R)\n",
+ "Vf1 = n*R*T1/Pf1\n",
+ "w = -n*R*T1*log(Vf1/Vi1)\n",
+ "\n",
+ "#Results\n",
+ "print 'For reverssible Isothermal expansion'\n",
+ "print 'Work done = %4.2e J'%w\n",
+ "\n",
+ "#Calcualtions Single step irreverssible expansion \n",
+ "\n",
+ "w = -Pext*1e5*(Vf1-Vi1)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'For Single step reverssible expansion'\n",
+ "print 'Work done = %4.2e J'%w\n",
+ "\n",
+ "#Calcualtions Two step irreverssible expansion \n",
+ "Vint = n*R*T1/(Pint)\n",
+ "w = -Pint*1e5*(Vint-Vi1)*1e-3 - Pf1*1e5*(Vf1-Vint)*1e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'For Two step reverssible expansion'\n",
+ "print 'Work done = %4.2e J'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For reverssible Isothermal expansion\n",
+ "Work done = -1.93e+02 J\n",
+ "For Single step reverssible expansion\n",
+ "Work done = -9.22e+03 J\n",
+ "For Two step reverssible expansion\n",
+ "Work done = -1.29e+04 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.5, Page Number 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable declaration\n",
+ "n = 2.5 #moles of ideal gas\n",
+ "R = 0.08314 #Ideal gas constant, bar.L/(mol.K)\n",
+ "cvm = 20.79 #Heat Capacity at constant volume, J/(mol.K)\n",
+ "\n",
+ "p1 = 16.6 #Pressure at point 1, bar\n",
+ "v1 = 1.00 #Volume at point 1, L\n",
+ "p2 = 16.6 #Pressure at point 2, bar\n",
+ "v2 = 25.0 #Volume at point 2, L \n",
+ "v3 = 25.0 #Volume at point 3, L\n",
+ "\n",
+ "#Calculations\n",
+ "T1 = p1*v1/(n*R)\n",
+ "T2 = p2*v2/(n*R)\n",
+ "T3 = T1 #from problem statement\n",
+ " #for path 1-2\n",
+ "DU12 = n*cvm*(T2-T1)\n",
+ "w12 = -p1*1e5*(v2-v1)*1e-3\n",
+ "q12 = DU12 - w12\n",
+ "DH12 = DU12 + n*R*(T2-T1)*1e2\n",
+ "\n",
+ " #for path 2-3\n",
+ "w23 = 0.0\n",
+ "DU23 = q23 = n*cvm*(T3-T2)\n",
+ "DH23 = -DH12\n",
+ "\n",
+ "\n",
+ " #for path 3-1\n",
+ "DU31 = 0.0 #Isothemal process\n",
+ "DH31 = 0.0\n",
+ "w31 = -n*R*1e2*T1*log(v1/v3)\n",
+ "q31 = -w31\n",
+ "\n",
+ "DU = DU12+DU23+DU31\n",
+ "w = w12+w23+w31\n",
+ "q = q12+q23+q31\n",
+ "DH = DH12+DH23+DH31\n",
+ "\n",
+ "#Results\n",
+ "print 'For Path q w DU DH '\n",
+ "print '1-2 %7.2f %7.2f %7.2f %7.2f'%(q12,w12,DU12,DH12)\n",
+ "print '2-3 %7.2f %7.2f %7.2f %7.2f'%(q23,w23,DU23,DH23)\n",
+ "print '3-1 %7.2f %7.2f %7.2f %7.2f'%(q31,w31,DU31,DH31)\n",
+ "print 'Overall %7.2f %7.2f %7.2f %7.2f'%(q,w,DU,DH)\n",
+ "print 'all values are in J'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Path q w DU DH \n",
+ "1-2 139463.96 -39840.00 99623.96 139463.96\n",
+ "2-3 -99623.96 0.00 -99623.96 -139463.96\n",
+ "3-1 -5343.33 5343.33 0.00 0.00\n",
+ "Overall 34496.67 -34496.67 0.00 0.00\n",
+ "all values are in J\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.6, Page Number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration Part d\n",
+ "n = 2.5 #moles of ideal gas\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "cvm = 12.47 #Heat Capacity at constant volume, J/(mol.K)\n",
+ "\n",
+ "pext = 1.00 #External Pressure, bar\n",
+ "Ti = 325. #Initial Temeprature, K\n",
+ "pi = 2.50 #Initial Pressure, bar\n",
+ "pf = 1.25 #Final pressure, bar \n",
+ "\n",
+ "#Calculations Adiabatic process q = 0; DU = w\n",
+ "q = 0.0 \n",
+ "Tf = Ti*(cvm + R*pext/pi)/(cvm + R*pext/pf )\n",
+ "DU = w = n*cvm*(Tf-Ti)\n",
+ "DH = DU + n*R*(Tf-Ti)\n",
+ "\n",
+ "#Results\n",
+ "print 'The final temperature at end of adiabatic procees is %4.1f K'%Tf\n",
+ "print 'The enthalpy change of adiabatic procees is %4.1f J'%DH\n",
+ "print 'The Internal energy change of adiabatic procees is %4.1f J'%DU\n",
+ "print 'The work done in expansion of adiabatic procees is %4.1f J'%w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The final temperature at end of adiabatic procees is 268.5 K\n",
+ "The enthalpy change of adiabatic procees is -2937.0 J\n",
+ "The Internal energy change of adiabatic procees is -1762.2 J\n",
+ "The work done in expansion of adiabatic procees is -1762.2 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 2.7, Page Number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, exp\n",
+ "\n",
+ "#Variable Declaration Part d\n",
+ "h1 = 1000.0 #initial Altitude of cloud, m \n",
+ "hf = 3500.0 #Final Altitude of cloud, m \n",
+ "p1 = 0.802 #Pressure at h1, atm \n",
+ "pf = 0.602 #Pressure at hf, atm\n",
+ "T1 = 288.0 #Initial temperature of cloud, K\n",
+ "cp = 28.86 #Specific heat of air, J/mol.K\n",
+ "R = 8.314 #Gas constant, J/mol.K\n",
+ "\n",
+ "#Calculations\n",
+ "Tf = exp(-(cp/(cp-R)-1)/(cp/(cp-R))*log(p1/pf))*T1\n",
+ "#Results\n",
+ "print 'Final temperature of cloud %4.1f K'%Tf\n",
+ "if Tf < 273:\n",
+ " print 'You can expect cloud'\n",
+ "else:\n",
+ " print 'You can not expect cloud'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature of cloud 265.2 K\n",
+ "You can expect cloud\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03.ipynb
new file mode 100755
index 00000000..55805cb9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03.ipynb
@@ -0,0 +1,239 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ff90ca36306843dda7b5d7f4afff0c2bcd17928b8d2090ef8ae2b28da2c7c555"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Importance of State Functions: Internal Energy and Enthalpy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.2, Page Number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log`\n",
+ "#Variable Declaration\n",
+ "betaOH = 11.2e-4 #Thermal exapnasion coefficient of ethanol, \u00b0C\n",
+ "betagl = 2.00e-5 #Thermal exapnasion coefficient of glass, \u00b0C\n",
+ "kOH = 11.0e-5 #Isothermal compressibility of ethanol, /bar\n",
+ "dT = 10.0 #Increase in Temperature, \u00b0C\n",
+ "\n",
+ "#Calcualtions\n",
+ "vfbyvi = (1+ betagl*dT)\n",
+ "dP = betaOH*dT/kOH-(1./kOH)*log(vfbyvi)\n",
+ "\n",
+ "#Results\n",
+ "print 'Pressure increase in capillary %4.1f bar'%dP"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure increase in capillary 100.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.4, Page Number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "cpsubysy = 1000 #Specific heat ration of surrounding and system\n",
+ "Tpreci = 0.006 #Precision in Temperature measurement, \u00b0C\n",
+ "\n",
+ "#Calcualtions\n",
+ "dtgas = -cpsubysy*(-Tpreci)\n",
+ "\n",
+ "#Results\n",
+ "print 'Minimum detectable temperature change of gas +-%4.1f \u00b0C'%dtgas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum detectable temperature change of gas +- 6.0 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.6, Page Number 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #number of mole of N2, mol \n",
+ "Ti = 200.0 #Intial Temperature, K\n",
+ "Pi = 5.00 #Initial pressure, bar\n",
+ "Tf = 400.0 #Intial Temperature, K\n",
+ "Pf = 20.0 #Initial pressure, bar\n",
+ "a = 0.137 #van der Waals constant a, Pa.m3/(mol2)\n",
+ "b = 3.87e-5 #van der Waals constant b, m3/(mol)\n",
+ "A, B, C, D = 22.5, -1.187e-2,2.3968e-5, -1.0176e-8\n",
+ " #Constants in Cvm equation J, K and mol\n",
+ "vi = 3.28e-3 #initial volume, m3/mol\n",
+ "vf = 7.88e-3 #Final volume, m3/mol\n",
+ "\n",
+ "#Calculations\n",
+ "T = symbols('T')\n",
+ "dUT = n**2*a*(1./vi-1./vf)\n",
+ "dUV = integrate( A + B*T + C*T**2 + D*T**3, (T,Ti,Tf))\n",
+ "\n",
+ "#Results\n",
+ "print 'dUT = %4.1f J: This is wrongly reported in book'%dUT\n",
+ "print 'dUV = %4.1f J'%dUV"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dUT = 24.4 J: This is wrongly reported in book\n",
+ "dUV = 4174.1 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.7, Page Number 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 143.0 #Mass of graphite, g \n",
+ "Ti = 300.0 #Intial Temperature, K\n",
+ "Tf = 600.0 #Intial Temperature, K\n",
+ "A, B, C, D, E = -12.19,0.1126,-1.947e-4,1.919e-7,-7.8e-11\n",
+ " #Constants in Cvm equation J, K and mol\n",
+ "M = 12.01\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T = symbols('T')\n",
+ "dH = (m/M)*integrate( A + B*T + C*T**2 + D*T**3 + E*T**4, (T,Ti,Tf))\n",
+ "expr = A + B*T + C*T**2 + D*T**3 + E*T**4\n",
+ "cpm = expr.subs(T,300.)\n",
+ "qp = (m/M)*cpm*(Tf-Ti)\n",
+ "err = abs(dH-qp)/dH\n",
+ "#Results\n",
+ "print 'dH = %6.1f kJ'%(dH/1000)\n",
+ "print 'qp = %6.1f kJ'%(qp/1000)\n",
+ "print 'Error in calculations %4.1f'%(err*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dH = 46.8 kJ\n",
+ "qp = 30.8 kJ\n",
+ "Error in calculations 34.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.9, Page Number 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 124.0 #Mass of liquid methanol, g\n",
+ "Pi = 1.0 #Initial Pressure, bar\n",
+ "Ti = 298.0 #Intial Temperature, K\n",
+ "Pf = 2.5 #Final Pressure, bar\n",
+ "Tf = 425.0 #Intial Temperature, K\n",
+ "rho = 0.791 #Density, g/cc\n",
+ "Cpm = 81.1 #Specifi heat, J/(K.mol)\n",
+ "M = 32.04\n",
+ "\n",
+ "#Calculations\n",
+ "n = m/M\n",
+ "DH = n*Cpm*(Tf-Ti)+ m*(Pf-Pi)*1e-6/rho\n",
+ "\n",
+ "#Results\n",
+ "print 'Enthalpy change for change in state of methanol is %4.1f kJ'%(DH/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy change for change in state of methanol is 39.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_1.ipynb
new file mode 100755
index 00000000..55805cb9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_1.ipynb
@@ -0,0 +1,239 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ff90ca36306843dda7b5d7f4afff0c2bcd17928b8d2090ef8ae2b28da2c7c555"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Importance of State Functions: Internal Energy and Enthalpy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.2, Page Number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log`\n",
+ "#Variable Declaration\n",
+ "betaOH = 11.2e-4 #Thermal exapnasion coefficient of ethanol, \u00b0C\n",
+ "betagl = 2.00e-5 #Thermal exapnasion coefficient of glass, \u00b0C\n",
+ "kOH = 11.0e-5 #Isothermal compressibility of ethanol, /bar\n",
+ "dT = 10.0 #Increase in Temperature, \u00b0C\n",
+ "\n",
+ "#Calcualtions\n",
+ "vfbyvi = (1+ betagl*dT)\n",
+ "dP = betaOH*dT/kOH-(1./kOH)*log(vfbyvi)\n",
+ "\n",
+ "#Results\n",
+ "print 'Pressure increase in capillary %4.1f bar'%dP"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure increase in capillary 100.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.4, Page Number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "cpsubysy = 1000 #Specific heat ration of surrounding and system\n",
+ "Tpreci = 0.006 #Precision in Temperature measurement, \u00b0C\n",
+ "\n",
+ "#Calcualtions\n",
+ "dtgas = -cpsubysy*(-Tpreci)\n",
+ "\n",
+ "#Results\n",
+ "print 'Minimum detectable temperature change of gas +-%4.1f \u00b0C'%dtgas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum detectable temperature change of gas +- 6.0 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.6, Page Number 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #number of mole of N2, mol \n",
+ "Ti = 200.0 #Intial Temperature, K\n",
+ "Pi = 5.00 #Initial pressure, bar\n",
+ "Tf = 400.0 #Intial Temperature, K\n",
+ "Pf = 20.0 #Initial pressure, bar\n",
+ "a = 0.137 #van der Waals constant a, Pa.m3/(mol2)\n",
+ "b = 3.87e-5 #van der Waals constant b, m3/(mol)\n",
+ "A, B, C, D = 22.5, -1.187e-2,2.3968e-5, -1.0176e-8\n",
+ " #Constants in Cvm equation J, K and mol\n",
+ "vi = 3.28e-3 #initial volume, m3/mol\n",
+ "vf = 7.88e-3 #Final volume, m3/mol\n",
+ "\n",
+ "#Calculations\n",
+ "T = symbols('T')\n",
+ "dUT = n**2*a*(1./vi-1./vf)\n",
+ "dUV = integrate( A + B*T + C*T**2 + D*T**3, (T,Ti,Tf))\n",
+ "\n",
+ "#Results\n",
+ "print 'dUT = %4.1f J: This is wrongly reported in book'%dUT\n",
+ "print 'dUV = %4.1f J'%dUV"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dUT = 24.4 J: This is wrongly reported in book\n",
+ "dUV = 4174.1 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.7, Page Number 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 143.0 #Mass of graphite, g \n",
+ "Ti = 300.0 #Intial Temperature, K\n",
+ "Tf = 600.0 #Intial Temperature, K\n",
+ "A, B, C, D, E = -12.19,0.1126,-1.947e-4,1.919e-7,-7.8e-11\n",
+ " #Constants in Cvm equation J, K and mol\n",
+ "M = 12.01\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T = symbols('T')\n",
+ "dH = (m/M)*integrate( A + B*T + C*T**2 + D*T**3 + E*T**4, (T,Ti,Tf))\n",
+ "expr = A + B*T + C*T**2 + D*T**3 + E*T**4\n",
+ "cpm = expr.subs(T,300.)\n",
+ "qp = (m/M)*cpm*(Tf-Ti)\n",
+ "err = abs(dH-qp)/dH\n",
+ "#Results\n",
+ "print 'dH = %6.1f kJ'%(dH/1000)\n",
+ "print 'qp = %6.1f kJ'%(qp/1000)\n",
+ "print 'Error in calculations %4.1f'%(err*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dH = 46.8 kJ\n",
+ "qp = 30.8 kJ\n",
+ "Error in calculations 34.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.9, Page Number 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 124.0 #Mass of liquid methanol, g\n",
+ "Pi = 1.0 #Initial Pressure, bar\n",
+ "Ti = 298.0 #Intial Temperature, K\n",
+ "Pf = 2.5 #Final Pressure, bar\n",
+ "Tf = 425.0 #Intial Temperature, K\n",
+ "rho = 0.791 #Density, g/cc\n",
+ "Cpm = 81.1 #Specifi heat, J/(K.mol)\n",
+ "M = 32.04\n",
+ "\n",
+ "#Calculations\n",
+ "n = m/M\n",
+ "DH = n*Cpm*(Tf-Ti)+ m*(Pf-Pi)*1e-6/rho\n",
+ "\n",
+ "#Results\n",
+ "print 'Enthalpy change for change in state of methanol is %4.1f kJ'%(DH/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy change for change in state of methanol is 39.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_2.ipynb
new file mode 100755
index 00000000..0b7fcd00
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter03_2.ipynb
@@ -0,0 +1,239 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f533717d02de2958b8edaf7535383653f756ad9b4060abf4f556950fcb3e683e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Importance of State Functions: Internal Energy and Enthalpy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.2, Page Number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "betaOH = 11.2e-4 #Thermal exapnasion coefficient of ethanol, \u00b0C\n",
+ "betagl = 2.00e-5 #Thermal exapnasion coefficient of glass, \u00b0C\n",
+ "kOH = 11.0e-5 #Isothermal compressibility of ethanol, /bar\n",
+ "dT = 10.0 #Increase in Temperature, \u00b0C\n",
+ "\n",
+ "#Calcualtions\n",
+ "vfbyvi = (1+ betagl*dT)\n",
+ "dP = betaOH*dT/kOH-(1./kOH)*log(vfbyvi)\n",
+ "\n",
+ "#Results\n",
+ "print 'Pressure increase in capillary %4.1f bar'%dP"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure increase in capillary 100.0 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.4, Page Number 49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "cpsubysy = 1000 #Specific heat ration of surrounding and system\n",
+ "Tpreci = 0.006 #Precision in Temperature measurement, \u00b0C\n",
+ "\n",
+ "#Calcualtions\n",
+ "dtgas = -cpsubysy*(-Tpreci)\n",
+ "\n",
+ "#Results\n",
+ "print 'Minimum detectable temperature change of gas +-%4.1f \u00b0C'%dtgas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum detectable temperature change of gas +- 6.0 \u00b0C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.6, Page Number 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #number of mole of N2, mol \n",
+ "Ti = 200.0 #Intial Temperature, K\n",
+ "Pi = 5.00 #Initial pressure, bar\n",
+ "Tf = 400.0 #Intial Temperature, K\n",
+ "Pf = 20.0 #Initial pressure, bar\n",
+ "a = 0.137 #van der Waals constant a, Pa.m3/(mol2)\n",
+ "b = 3.87e-5 #van der Waals constant b, m3/(mol)\n",
+ "A, B, C, D = 22.5, -1.187e-2,2.3968e-5, -1.0176e-8\n",
+ " #Constants in Cvm equation J, K and mol\n",
+ "vi = 3.28e-3 #initial volume, m3/mol\n",
+ "vf = 7.88e-3 #Final volume, m3/mol\n",
+ "\n",
+ "#Calculations\n",
+ "T = symbols('T')\n",
+ "dUT = n**2*a*(1./vi-1./vf)\n",
+ "dUV = integrate( A + B*T + C*T**2 + D*T**3, (T,Ti,Tf))\n",
+ "\n",
+ "#Results\n",
+ "print 'dUT = %4.1f J: This is wrongly reported in book'%dUT\n",
+ "print 'dUV = %4.1f J'%dUV"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dUT = 24.4 J: This is wrongly reported in book\n",
+ "dUV = 4174.1 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.7, Page Number 53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 143.0 #Mass of graphite, g \n",
+ "Ti = 300.0 #Intial Temperature, K\n",
+ "Tf = 600.0 #Intial Temperature, K\n",
+ "A, B, C, D, E = -12.19,0.1126,-1.947e-4,1.919e-7,-7.8e-11\n",
+ " #Constants in Cvm equation J, K and mol\n",
+ "M = 12.01\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "T = symbols('T')\n",
+ "dH = (m/M)*integrate( A + B*T + C*T**2 + D*T**3 + E*T**4, (T,Ti,Tf))\n",
+ "expr = A + B*T + C*T**2 + D*T**3 + E*T**4\n",
+ "cpm = expr.subs(T,300.)\n",
+ "qp = (m/M)*cpm*(Tf-Ti)\n",
+ "err = abs(dH-qp)/dH\n",
+ "#Results\n",
+ "print 'dH = %6.1f kJ'%(dH/1000)\n",
+ "print 'qp = %6.1f kJ'%(qp/1000)\n",
+ "print 'Error in calculations %4.1f'%(err*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dH = 46.8 kJ\n",
+ "qp = 30.8 kJ\n",
+ "Error in calculations 34.3\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 3.9, Page Number 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 124.0 #Mass of liquid methanol, g\n",
+ "Pi = 1.0 #Initial Pressure, bar\n",
+ "Ti = 298.0 #Intial Temperature, K\n",
+ "Pf = 2.5 #Final Pressure, bar\n",
+ "Tf = 425.0 #Intial Temperature, K\n",
+ "rho = 0.791 #Density, g/cc\n",
+ "Cpm = 81.1 #Specifi heat, J/(K.mol)\n",
+ "M = 32.04\n",
+ "\n",
+ "#Calculations\n",
+ "n = m/M\n",
+ "DH = n*Cpm*(Tf-Ti)+ m*(Pf-Pi)*1e-6/rho\n",
+ "\n",
+ "#Results\n",
+ "print 'Enthalpy change for change in state of methanol is %4.1f kJ'%(DH/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy change for change in state of methanol is 39.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04.ipynb
new file mode 100755
index 00000000..c9094478
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04.ipynb
@@ -0,0 +1,204 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c9abd3a4addb064e928970d9b53877d65c2d3bdaa244a23d35c0b5616eab425e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04: Thermochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 4.1, Page Number 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "DH0_H2O = 241.8 #Std Enthalpy of reaxtion of Water Fomation backward rxn, kJ/mol\n",
+ "DH0_2H = 2*218.0 #Std Enthalpy of formation of Hydrogen atom, kJ/mol\n",
+ "DH0_O = 249.2 #Std Enthalpy of formation of Oxygen atom, kJ/mol\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "Dn = 2.0\n",
+ "T = 298.15 #Std. Temperature, K\n",
+ "#Calculation\n",
+ "DH0_2HO = DH0_H2O + DH0_2H + DH0_O\n",
+ "DU0 = (DH0_2HO - Dn*R*T*1e-3)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Avergae Enthalpy change required for breaking both OH bonds %4.1f kJ/mol'%DH0_2HO\n",
+ "print 'Average bond energy required for breaking both OH bonds %4.1f kJ/mol'%DU0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avergae Enthalpy change required for breaking both OH bonds 927.0 kJ/mol\n",
+ "Average bond energy required for breaking both OH bonds 461.0 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page Number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "a = ([29.064, 31.695, 28.165]) #Constant 'a' in Heat capacity equation, J/(mol.K)\n",
+ "b = ([-0.8363e-3, 10.143e-3, 1.809e-3]) #Constant 'b' in Heat capacity equation, J/(mol.K)\n",
+ "c = ([20.111e-7, -40.373e-7, 15.464e-7]) #Constant 'a' in Heat capacity equation, J/(mol.K)\n",
+ "delHf0HCl = -92.3 #Std. Heat of formation of HCl, kJ/mol\n",
+ "T1, T2 = 298.15, 1450 #Std and final temperature, K\n",
+ "\n",
+ "#Calculations\n",
+ "T = symbols('T')\n",
+ "DA = a[2]-(a[0]+a[1])/2\n",
+ "DB = b[2]-(b[0]+b[1])/2\n",
+ "DC = c[2]-(c[0]+c[1])/2\n",
+ "\n",
+ "expr = integrate( DA + DB*T + DC*T**2, (T,T1,T2))\n",
+ "DHR1450= expr/1000 + delHf0HCl\n",
+ "\n",
+ "#Results\n",
+ "print 'Heat of reaction for HCl formation is %4.1f kJ/mol'%DHR1450"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of reaction for HCl formation is -95.1 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page Number 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "ms1 = 0.972 #Mass of cyclohexane, g\n",
+ "DT1 = 2.98 #Change in temperature for bath, \u00b0C\n",
+ "DUR1 = -3913e3 #Std Internal energy change, J/mol\n",
+ "mw = 1.812e3 #Mass of water, g\n",
+ "ms2 = 0.857 #Mass of benzene, g\n",
+ "Ms1 = 84.16\n",
+ "Ms2 = 78.12\n",
+ "DT2 = 2.36 #Change in temperature for bath, \u00b0C\n",
+ "Mw = 18.02\n",
+ "Cpw = 75.3 \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "Ccal = ((-ms1/Ms1)*DUR1-(mw/Mw)*Cpw*DT1)/DT1\n",
+ "DUR2 = (-Ms2/ms2)*((mw/Mw)*Cpw*DT2+Ccal*DT2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Calorimeter constant %4.2e J/\u00b0C'%Ccal\n",
+ "print 'Enthalpy of rection for benzene %4.2e J/mol'%DUR2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat capacity of calorimeter 7.59e+03 J/\u00b0C\n",
+ "Enthalpy of rection for benzene -3.26e+06 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page Number 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "ms = 1.423 #Mass of Na2SO4, g\n",
+ "mw = 100.34 #Mass of Na2SO4, g\n",
+ "DT = 0.037 #Change in temperature for solution, K\n",
+ "Mw = 18.02 #Molecular wt of Water\n",
+ "Ms = 142.04 #Molecular wt of ms Na2SO4\n",
+ "Ccal = 342.5 #Calorimeter constant, J/K\n",
+ "#Data\n",
+ "DHfNa = -240.1\n",
+ "DHfSO4 = -909.3\n",
+ "DHfNa2SO4 = -1387.1\n",
+ "\n",
+ "#Calculation\n",
+ "DHs = (-Ms/ms)*((mw/Mw)*Cpw*DT+Ccal*DT)\n",
+ "DHsolD = 2*DHfNa + DHfSO4 - DHfNa2SO4\n",
+ "\n",
+ "#Results\n",
+ "print 'Enthalpy of solution for Na2SO4 %4.2e J/mol'%DHs\n",
+ "print 'Enthalpy of solution for Na2SO4 from Data %4.2e J/mol'%DHsolD"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy of solution for Na2SO4 -2.81e+03 J/mol\n",
+ "Enthalpy of solution for Na2SO4 from Data -2.40e+00 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_1.ipynb
new file mode 100755
index 00000000..c9094478
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_1.ipynb
@@ -0,0 +1,204 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c9abd3a4addb064e928970d9b53877d65c2d3bdaa244a23d35c0b5616eab425e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04: Thermochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 4.1, Page Number 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "DH0_H2O = 241.8 #Std Enthalpy of reaxtion of Water Fomation backward rxn, kJ/mol\n",
+ "DH0_2H = 2*218.0 #Std Enthalpy of formation of Hydrogen atom, kJ/mol\n",
+ "DH0_O = 249.2 #Std Enthalpy of formation of Oxygen atom, kJ/mol\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "Dn = 2.0\n",
+ "T = 298.15 #Std. Temperature, K\n",
+ "#Calculation\n",
+ "DH0_2HO = DH0_H2O + DH0_2H + DH0_O\n",
+ "DU0 = (DH0_2HO - Dn*R*T*1e-3)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Avergae Enthalpy change required for breaking both OH bonds %4.1f kJ/mol'%DH0_2HO\n",
+ "print 'Average bond energy required for breaking both OH bonds %4.1f kJ/mol'%DU0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avergae Enthalpy change required for breaking both OH bonds 927.0 kJ/mol\n",
+ "Average bond energy required for breaking both OH bonds 461.0 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page Number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "a = ([29.064, 31.695, 28.165]) #Constant 'a' in Heat capacity equation, J/(mol.K)\n",
+ "b = ([-0.8363e-3, 10.143e-3, 1.809e-3]) #Constant 'b' in Heat capacity equation, J/(mol.K)\n",
+ "c = ([20.111e-7, -40.373e-7, 15.464e-7]) #Constant 'a' in Heat capacity equation, J/(mol.K)\n",
+ "delHf0HCl = -92.3 #Std. Heat of formation of HCl, kJ/mol\n",
+ "T1, T2 = 298.15, 1450 #Std and final temperature, K\n",
+ "\n",
+ "#Calculations\n",
+ "T = symbols('T')\n",
+ "DA = a[2]-(a[0]+a[1])/2\n",
+ "DB = b[2]-(b[0]+b[1])/2\n",
+ "DC = c[2]-(c[0]+c[1])/2\n",
+ "\n",
+ "expr = integrate( DA + DB*T + DC*T**2, (T,T1,T2))\n",
+ "DHR1450= expr/1000 + delHf0HCl\n",
+ "\n",
+ "#Results\n",
+ "print 'Heat of reaction for HCl formation is %4.1f kJ/mol'%DHR1450"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of reaction for HCl formation is -95.1 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page Number 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "ms1 = 0.972 #Mass of cyclohexane, g\n",
+ "DT1 = 2.98 #Change in temperature for bath, \u00b0C\n",
+ "DUR1 = -3913e3 #Std Internal energy change, J/mol\n",
+ "mw = 1.812e3 #Mass of water, g\n",
+ "ms2 = 0.857 #Mass of benzene, g\n",
+ "Ms1 = 84.16\n",
+ "Ms2 = 78.12\n",
+ "DT2 = 2.36 #Change in temperature for bath, \u00b0C\n",
+ "Mw = 18.02\n",
+ "Cpw = 75.3 \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "Ccal = ((-ms1/Ms1)*DUR1-(mw/Mw)*Cpw*DT1)/DT1\n",
+ "DUR2 = (-Ms2/ms2)*((mw/Mw)*Cpw*DT2+Ccal*DT2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Calorimeter constant %4.2e J/\u00b0C'%Ccal\n",
+ "print 'Enthalpy of rection for benzene %4.2e J/mol'%DUR2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat capacity of calorimeter 7.59e+03 J/\u00b0C\n",
+ "Enthalpy of rection for benzene -3.26e+06 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page Number 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "ms = 1.423 #Mass of Na2SO4, g\n",
+ "mw = 100.34 #Mass of Na2SO4, g\n",
+ "DT = 0.037 #Change in temperature for solution, K\n",
+ "Mw = 18.02 #Molecular wt of Water\n",
+ "Ms = 142.04 #Molecular wt of ms Na2SO4\n",
+ "Ccal = 342.5 #Calorimeter constant, J/K\n",
+ "#Data\n",
+ "DHfNa = -240.1\n",
+ "DHfSO4 = -909.3\n",
+ "DHfNa2SO4 = -1387.1\n",
+ "\n",
+ "#Calculation\n",
+ "DHs = (-Ms/ms)*((mw/Mw)*Cpw*DT+Ccal*DT)\n",
+ "DHsolD = 2*DHfNa + DHfSO4 - DHfNa2SO4\n",
+ "\n",
+ "#Results\n",
+ "print 'Enthalpy of solution for Na2SO4 %4.2e J/mol'%DHs\n",
+ "print 'Enthalpy of solution for Na2SO4 from Data %4.2e J/mol'%DHsolD"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy of solution for Na2SO4 -2.81e+03 J/mol\n",
+ "Enthalpy of solution for Na2SO4 from Data -2.40e+00 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_2.ipynb
new file mode 100755
index 00000000..8490aa32
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter04_2.ipynb
@@ -0,0 +1,206 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:333f059bd9f5c0f0e37eb3d999bc59b67dae36f47a0afa092d85ee79643d8c58"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04: Thermochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 4.1, Page Number 68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varialble Declaration\n",
+ "DH0_H2O = 241.8 #Std Enthalpy of reaxtion of Water Fomation backward rxn, kJ/mol\n",
+ "DH0_2H = 2*218.0 #Std Enthalpy of formation of Hydrogen atom, kJ/mol\n",
+ "DH0_O = 249.2 #Std Enthalpy of formation of Oxygen atom, kJ/mol\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "Dn = 2.0\n",
+ "T = 298.15 #Std. Temperature, K\n",
+ "#Calculation\n",
+ "DH0_2HO = DH0_H2O + DH0_2H + DH0_O\n",
+ "DU0 = (DH0_2HO - Dn*R*T*1e-3)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Avergae Enthalpy change required for breaking both OH bonds %4.1f kJ/mol'%DH0_2HO\n",
+ "print 'Average bond energy required for breaking both OH bonds %4.1f kJ/mol'%DU0"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avergae Enthalpy change required for breaking both OH bonds 927.0 kJ/mol\n",
+ "Average bond energy required for breaking both OH bonds 461.0 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2, Page Number 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from sympy import symbols, integrate\n",
+ "\n",
+ "#Variable Declaration\n",
+ "a = ([29.064, 31.695, 28.165]) #Constant 'a' in Heat capacity equation, J/(mol.K)\n",
+ "b = ([-0.8363e-3, 10.143e-3, 1.809e-3]) #Constant 'b' in Heat capacity equation, J/(mol.K)\n",
+ "c = ([20.111e-7, -40.373e-7, 15.464e-7]) #Constant 'a' in Heat capacity equation, J/(mol.K)\n",
+ "delHf0HCl = -92.3 #Std. Heat of formation of HCl, kJ/mol\n",
+ "T1, T2 = 298.15, 1450 #Std and final temperature, K\n",
+ "\n",
+ "#Calculations\n",
+ "T = symbols('T')\n",
+ "DA = a[2]-(a[0]+a[1])/2\n",
+ "DB = b[2]-(b[0]+b[1])/2\n",
+ "DC = c[2]-(c[0]+c[1])/2\n",
+ "\n",
+ "expr = integrate( DA + DB*T + DC*T**2, (T,T1,T2))\n",
+ "DHR1450= expr/1000 + delHf0HCl\n",
+ "\n",
+ "#Results\n",
+ "print 'Heat of reaction for HCl formation is %4.1f kJ/mol'%DHR1450"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of reaction for HCl formation is -95.1 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page Number 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Varialble Declaration\n",
+ "ms1 = 0.972 #Mass of cyclohexane, g\n",
+ "DT1 = 2.98 #Change in temperature for bath, \u00b0C\n",
+ "DUR1 = -3913e3 #Std Internal energy change, J/mol\n",
+ "mw = 1.812e3 #Mass of water, g\n",
+ "ms2 = 0.857 #Mass of benzene, g\n",
+ "Ms1 = 84.16\n",
+ "Ms2 = 78.12\n",
+ "DT2 = 2.36 #Change in temperature for bath, \u00b0C\n",
+ "Mw = 18.02\n",
+ "Cpw = 75.3 \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "Ccal = ((-ms1/Ms1)*DUR1-(mw/Mw)*Cpw*DT1)/DT1\n",
+ "DUR2 = (-Ms2/ms2)*((mw/Mw)*Cpw*DT2+Ccal*DT2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Calorimeter constant %4.2e J/\u00b0C'%Ccal\n",
+ "print 'Enthalpy of rection for benzene %4.2e J/mol'%DUR2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Calorimeter constant 7.59e+03 J/\u00b0C\n",
+ "Enthalpy of rection for benzene -3.26e+06 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page Number 73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Varialble Declaration\n",
+ "ms = 1.423 #Mass of Na2SO4, g\n",
+ "mw = 100.34 #Mass of Na2SO4, g\n",
+ "DT = 0.037 #Change in temperature for solution, K\n",
+ "Mw = 18.02 #Molecular wt of Water\n",
+ "Ms = 142.04 #Molecular wt of ms Na2SO4\n",
+ "Ccal = 342.5 #Calorimeter constant, J/K\n",
+ "#Data\n",
+ "DHfNa = -240.1\n",
+ "DHfSO4 = -909.3\n",
+ "DHfNa2SO4 = -1387.1\n",
+ "\n",
+ "#Calculation\n",
+ "DHs = (-Ms/ms)*((mw/Mw)*Cpw*DT+Ccal*DT)\n",
+ "DHsolD = 2*DHfNa + DHfSO4 - DHfNa2SO4\n",
+ "\n",
+ "#Results\n",
+ "print 'Enthalpy of solution for Na2SO4 %4.2e J/mol'%DHs\n",
+ "print 'Enthalpy of solution for Na2SO4 from Data %4.2e J/mol'%DHsolD"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy of solution for Na2SO4 -2.81e+03 J/mol\n",
+ "Enthalpy of solution for Na2SO4 from Data -2.40e+00 J/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05.ipynb
new file mode 100755
index 00000000..ce8818c7
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05.ipynb
@@ -0,0 +1,425 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2c9e6fedd22fa6b2ae65a19697803d5aa951ae2982e5a733c3ba66fccdc2f728"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Enthalpy and the Second and Third Laws of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.1, Page Number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Th, Tc = 500.,200. #Temeperatures IN Which reversible heat engine works, K\n",
+ "q = 1000. #Heat absorbed by heat engine, J\n",
+ "\n",
+ "#Calcualtions\n",
+ "eps = 1.-Tc/Th\n",
+ "w = eps*q\n",
+ "\n",
+ "#Results\n",
+ "print 'Efficiency of heat engine is %4.3f'%eps\n",
+ "print 'Work done by heat engine is %4.1f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of heat engine is 0.600\n",
+ "Work done by heat engine is 600.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.4, Page Number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "Ti, Tf = 320.,650. #Initial and final state Temeperatures of CO2, K\n",
+ "vi, vf = 80.,120. #Initial and final state volume of CO2, K\n",
+ "A, B, C, D = 31.08,-0.01452,3.1415e-5,-1.4973e-8\n",
+ " #Constants in constant volume Heat capacity equation in J, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (A + B*T + C*T**2 + D*T**3)/T, (T,Ti,Tf)) \n",
+ "dS2 = n*R*log(vf/vi)\n",
+ "dS = dS1 + dS2\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 24.43 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.5, Page Number 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 2.5 #Number of moles of CO2\n",
+ "Ti, Tf = 450.,800. #Initial and final state Temeperatures of CO2, K\n",
+ "pi, pf = 1.35,3.45 #Initial and final state pressure of CO2, K\n",
+ "A, B, C, D = 18.86,7.937e-2,-6.7834e-5,2.4426e-8\n",
+ " #Constants in constant pressure Heat capacity equation in J, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (A + B*T + C*T**2 + D*T**3)/T, (T,Ti,Tf)) \n",
+ "dS2 = n*R*log(pf/pi)\n",
+ "dS = dS1 - dS2\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 48.55 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.6, Page Number 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 3.0 #Number of moles of CO2\n",
+ "Ti, Tf = 300.,600. #Initial and final state Temeperatures of CO2, K\n",
+ "pi, pf = 1.00,3.00 #Initial and final state pressure of CO2, K\n",
+ "cpm = 27.98 #Specific heat of mercury, J/(mol.K)\n",
+ "M = 200.59 #Molecualr wt of mercury, g/(mol)\n",
+ "beta = 1.81e-4 #per K\n",
+ "rho = 13.54 #Density of mercury, g/cm3\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "dS1 = n*cpm*log(Tf/Ti)\n",
+ "dS2 = n*(M/(rho*1e6))*beta*(pf-pi)*1e5\n",
+ "dS = dS1 - dS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.1f J/(mol.K)'%dS\n",
+ "print 'Ratio of pressure to temperature dependent term %3.1e\\nhence effect of pressure dependent term isvery less'%(dS2/dS1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 58.2 J/(mol.K)\n",
+ "Ratio of pressure to temperature dependent term 2.8e-05\n",
+ "hence effect of pressure dependent term isvery less\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.7, Page Number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "T = 300.0 #Temeperatures of Water bath, K\n",
+ "vi, vf = 25.0,10.0 #Initial and final state Volume of Ideal Gas, L\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "qrev = n*R*T*log(vf/vi)\n",
+ "w = -qrev\n",
+ "dSsys = qrev/T\n",
+ "dSsur = -dSsys\n",
+ "dS = dSsys + dSsur\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change of surrounding is %4.1f J/(mol.K)'%dSsur\n",
+ "print 'Entropy change of system is %4.1f J/(mol.K)'%dSsys\n",
+ "print 'Total Entropy changeis %4.1f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of surrounding is 7.6 J/(mol.K)\n",
+ "Entropy change of system is -7.6 J/(mol.K)\n",
+ "Total Entropy changeis 0.0 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.8, Page Number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "T = 300.0 #Temeperatures of Water bath, K\n",
+ "vi, vf = 25.0,10.0 #Initial and final state Volume of Ideal Gas, L\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "pext = n*R*T/(vf/1e3)\n",
+ "pi = n*R*T/(vi/1e3)\n",
+ "q = pext*(vf-vi)/1e3\n",
+ "qrev = n*R*T*log(vf/vi)\n",
+ "w = -q\n",
+ "dSsur = -q/T\n",
+ "dSsys = qrev/T\n",
+ "dS = dSsys + dSsur\n",
+ "\n",
+ "#Results\n",
+ "print 'Constant external pressure and initial pressure are %4.3e J,and %4.3e J respectively'%(pext,pi)\n",
+ "print 'Heat in reverssible and irreversible processes are %4.1f J,and %4.1f J respectively'%(qrev,q)\n",
+ "print 'Entropy change of system is %4.1f J/(mol.K)'%dSsys\n",
+ "print 'Entropy change of surrounding is %4.2f J/(mol.K)'%dSsur\n",
+ "print 'Total Entropy changeis %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant external pressure and initial pressure are 2.494e+05 J,and 9.977e+04 J respectively\n",
+ "Heat in reverssible and irreversible processes are -2285.4 J,and -3741.3 J respectively\n",
+ "Entropy change of system is -7.6 J/(mol.K)\n",
+ "Entropy change of surrounding is 12.47 J/(mol.K)\n",
+ "Total Entropy changeis 4.85 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.9, Page Number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "pi, pf = 1.35,3.45 #Initial and final state pressure of CO2, K\n",
+ "D1 = 2.11e-3 #Constants in constant pressure Heat capacity equation for K<T<12.97K, in J, mol, K units\n",
+ "A2, B2, C2, D2 = -5.666,0.6927,-5.191e-3,9.943e-4\n",
+ " #Constants in constant pressure Heat capacity equation for 12.97<T<23.66, J, mol, K units\n",
+ "A3, B3, C3, D3 = 31.70,-2.038,0.08384,-6.685e-4\n",
+ " #Constants in constant pressure Heat capacity equation for 23.66<T<43.76, J, mol, K units\n",
+ "A4 = 46.094 #Constants in constant pressure Heat capacity equation for 43.76<T<54.39, J/(mol.K)\n",
+ "A5, B5, C5, D5 = 81.268,-1.1467,0.01516,-6.407e-5\n",
+ " #Constants in constant pressure Heat capacity equation for 54.39<T<90.20K, J, mol, K units\n",
+ "A6, B6, C6, D6 = 32.71,-0.04093,1.545e-4,-1.819e-7\n",
+ " #Constants in constant pressure Heat capacity equation for 90.20<T<298.15 KJ, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "Ltrans1 = 93.80 #Entalpy of transition at 23.66K, J/mol\n",
+ "Ltrans2 = 743.0 #Entalpy of transition at 43.76K, J/mol\n",
+ "Ltrans3 = 445.0 #Entalpy of transition at 54.39K, J/mol\n",
+ "Ltrans4 = 6815. #Entalpy of transition at 90.20K, J/mol\n",
+ "T1 = 12.97 #Maximum applicabliltiy temeprature for first heat capacity equation, K\n",
+ "T12 = 23.66 #Phase Change temperature from Solid III--II, K\n",
+ "T23 = 43.76 #Phase Change temperature from Solid II--I, K\n",
+ "T34 = 54.39 #Phase Change temperature from Solid I--liquid, K\n",
+ "T45 = 90.20 #Phase Change temperature from liquid--gas, K\n",
+ "Ts = 298.15 #Std. Temeprature, K\n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (D1*T**3)/T, (T,0,T1)) \n",
+ "dS2 = n*integrate( (A2 + B2*T + C2*T**2 + D2*T**3)/T, (T,T1,T12)) \n",
+ "dS21 = Ltrans1/T12\n",
+ "dS3 = n*integrate( (A3 + B3*T + C3*T**2 + D3*T**3)/T, (T,T12,T23)) \n",
+ "dS31 = Ltrans2/T23\n",
+ "dS4 = n*integrate( (A4)/T, (T,T23,T34)) \n",
+ "dS41 = Ltrans3/T34\n",
+ "dS5 = n*integrate( (A5 + B5*T + C5*T**2 + D5*T**3)/T, (T,T34,T45)) \n",
+ "dS51 = Ltrans4/T45\n",
+ "dS6 = n*integrate( (A6 + B6*T + C6*T**2 + D6*T**3)/T, (T,T45,Ts))\n",
+ "#print dS1+dS2,dS21\n",
+ "#print dS3, dS31\n",
+ "#print dS4, dS41\n",
+ "#print dS5, dS51\n",
+ "#print dS6\n",
+ "dS = dS1+dS2+dS21+dS3+dS31+dS4+dS41+dS5+dS51+dS6\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change Sm0 for O2 is %4.1f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change Sm0 for O2 is 204.8 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.10, Page Number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2 formed, mol\n",
+ "p = 1. #Pressure of CO2, K\n",
+ "\n",
+ "A1, B1, C1, D1 = 18.86,7.937e-2,-6.7834e-5,2.4426e-8\n",
+ " #Constants in constant pressure Heat capacity equation for CO2, J/(mol.K)\n",
+ "A2, B2, C2, D2 = 30.81,-1.187e-2,2.3968e-5, 0.0\n",
+ " #Constants in constant pressure Heat capacity equation for O2, J/(mol.K)\n",
+ "A3, B3, C3, D3 = 31.08,-1.452e-2,3.1415e-5 ,-1.4793e-8 \n",
+ " #Constants in constant pressure Heat capacity equation for CO, J/(mol.K)\n",
+ "DSr298CO = 197.67 #Std. Entropy change for CO, J/(mol.K)\n",
+ "DSr298CO2 = 213.74 #Std. Entropy change for CO, J/(mol.K)\n",
+ "DSr298O2 = 205.138 #Std. Entropy change for CO, J/(mol.K)\n",
+ "Tr = 475. #Reaction temperature, K\n",
+ "Ts = 298.15 #Std. temperature, K\n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "v1,v2,v3 = 1.,1./2,1.\n",
+ "DSr = DSr298CO2*v1 - DSr298CO*v1 - DSr298O2*v2\n",
+ "DA = v1*A1-v2*A2-v3*A3\n",
+ "DB = v1*B1-v2*B2-v3*B3\n",
+ "DC = v1*C1-v2*C2-v3*C3\n",
+ "DD = v1*D1-v2*D2-v3*D3\n",
+ "dS = DSr + n*integrate( (DA + DB*T + DC*T**2 + DD*T**3)/T, (T,Ts,Tr)) \n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change for reaction at %4d K is %4.2f J/(mol.K)'%(Tr,dS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change Sm0 for O2 is 204.83 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_1.ipynb
new file mode 100755
index 00000000..ce8818c7
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_1.ipynb
@@ -0,0 +1,425 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2c9e6fedd22fa6b2ae65a19697803d5aa951ae2982e5a733c3ba66fccdc2f728"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Enthalpy and the Second and Third Laws of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.1, Page Number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Th, Tc = 500.,200. #Temeperatures IN Which reversible heat engine works, K\n",
+ "q = 1000. #Heat absorbed by heat engine, J\n",
+ "\n",
+ "#Calcualtions\n",
+ "eps = 1.-Tc/Th\n",
+ "w = eps*q\n",
+ "\n",
+ "#Results\n",
+ "print 'Efficiency of heat engine is %4.3f'%eps\n",
+ "print 'Work done by heat engine is %4.1f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of heat engine is 0.600\n",
+ "Work done by heat engine is 600.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.4, Page Number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "Ti, Tf = 320.,650. #Initial and final state Temeperatures of CO2, K\n",
+ "vi, vf = 80.,120. #Initial and final state volume of CO2, K\n",
+ "A, B, C, D = 31.08,-0.01452,3.1415e-5,-1.4973e-8\n",
+ " #Constants in constant volume Heat capacity equation in J, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (A + B*T + C*T**2 + D*T**3)/T, (T,Ti,Tf)) \n",
+ "dS2 = n*R*log(vf/vi)\n",
+ "dS = dS1 + dS2\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 24.43 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.5, Page Number 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 2.5 #Number of moles of CO2\n",
+ "Ti, Tf = 450.,800. #Initial and final state Temeperatures of CO2, K\n",
+ "pi, pf = 1.35,3.45 #Initial and final state pressure of CO2, K\n",
+ "A, B, C, D = 18.86,7.937e-2,-6.7834e-5,2.4426e-8\n",
+ " #Constants in constant pressure Heat capacity equation in J, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (A + B*T + C*T**2 + D*T**3)/T, (T,Ti,Tf)) \n",
+ "dS2 = n*R*log(pf/pi)\n",
+ "dS = dS1 - dS2\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 48.55 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.6, Page Number 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 3.0 #Number of moles of CO2\n",
+ "Ti, Tf = 300.,600. #Initial and final state Temeperatures of CO2, K\n",
+ "pi, pf = 1.00,3.00 #Initial and final state pressure of CO2, K\n",
+ "cpm = 27.98 #Specific heat of mercury, J/(mol.K)\n",
+ "M = 200.59 #Molecualr wt of mercury, g/(mol)\n",
+ "beta = 1.81e-4 #per K\n",
+ "rho = 13.54 #Density of mercury, g/cm3\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "dS1 = n*cpm*log(Tf/Ti)\n",
+ "dS2 = n*(M/(rho*1e6))*beta*(pf-pi)*1e5\n",
+ "dS = dS1 - dS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.1f J/(mol.K)'%dS\n",
+ "print 'Ratio of pressure to temperature dependent term %3.1e\\nhence effect of pressure dependent term isvery less'%(dS2/dS1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 58.2 J/(mol.K)\n",
+ "Ratio of pressure to temperature dependent term 2.8e-05\n",
+ "hence effect of pressure dependent term isvery less\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.7, Page Number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "T = 300.0 #Temeperatures of Water bath, K\n",
+ "vi, vf = 25.0,10.0 #Initial and final state Volume of Ideal Gas, L\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "qrev = n*R*T*log(vf/vi)\n",
+ "w = -qrev\n",
+ "dSsys = qrev/T\n",
+ "dSsur = -dSsys\n",
+ "dS = dSsys + dSsur\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change of surrounding is %4.1f J/(mol.K)'%dSsur\n",
+ "print 'Entropy change of system is %4.1f J/(mol.K)'%dSsys\n",
+ "print 'Total Entropy changeis %4.1f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of surrounding is 7.6 J/(mol.K)\n",
+ "Entropy change of system is -7.6 J/(mol.K)\n",
+ "Total Entropy changeis 0.0 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.8, Page Number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "T = 300.0 #Temeperatures of Water bath, K\n",
+ "vi, vf = 25.0,10.0 #Initial and final state Volume of Ideal Gas, L\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "pext = n*R*T/(vf/1e3)\n",
+ "pi = n*R*T/(vi/1e3)\n",
+ "q = pext*(vf-vi)/1e3\n",
+ "qrev = n*R*T*log(vf/vi)\n",
+ "w = -q\n",
+ "dSsur = -q/T\n",
+ "dSsys = qrev/T\n",
+ "dS = dSsys + dSsur\n",
+ "\n",
+ "#Results\n",
+ "print 'Constant external pressure and initial pressure are %4.3e J,and %4.3e J respectively'%(pext,pi)\n",
+ "print 'Heat in reverssible and irreversible processes are %4.1f J,and %4.1f J respectively'%(qrev,q)\n",
+ "print 'Entropy change of system is %4.1f J/(mol.K)'%dSsys\n",
+ "print 'Entropy change of surrounding is %4.2f J/(mol.K)'%dSsur\n",
+ "print 'Total Entropy changeis %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant external pressure and initial pressure are 2.494e+05 J,and 9.977e+04 J respectively\n",
+ "Heat in reverssible and irreversible processes are -2285.4 J,and -3741.3 J respectively\n",
+ "Entropy change of system is -7.6 J/(mol.K)\n",
+ "Entropy change of surrounding is 12.47 J/(mol.K)\n",
+ "Total Entropy changeis 4.85 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.9, Page Number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "pi, pf = 1.35,3.45 #Initial and final state pressure of CO2, K\n",
+ "D1 = 2.11e-3 #Constants in constant pressure Heat capacity equation for K<T<12.97K, in J, mol, K units\n",
+ "A2, B2, C2, D2 = -5.666,0.6927,-5.191e-3,9.943e-4\n",
+ " #Constants in constant pressure Heat capacity equation for 12.97<T<23.66, J, mol, K units\n",
+ "A3, B3, C3, D3 = 31.70,-2.038,0.08384,-6.685e-4\n",
+ " #Constants in constant pressure Heat capacity equation for 23.66<T<43.76, J, mol, K units\n",
+ "A4 = 46.094 #Constants in constant pressure Heat capacity equation for 43.76<T<54.39, J/(mol.K)\n",
+ "A5, B5, C5, D5 = 81.268,-1.1467,0.01516,-6.407e-5\n",
+ " #Constants in constant pressure Heat capacity equation for 54.39<T<90.20K, J, mol, K units\n",
+ "A6, B6, C6, D6 = 32.71,-0.04093,1.545e-4,-1.819e-7\n",
+ " #Constants in constant pressure Heat capacity equation for 90.20<T<298.15 KJ, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "Ltrans1 = 93.80 #Entalpy of transition at 23.66K, J/mol\n",
+ "Ltrans2 = 743.0 #Entalpy of transition at 43.76K, J/mol\n",
+ "Ltrans3 = 445.0 #Entalpy of transition at 54.39K, J/mol\n",
+ "Ltrans4 = 6815. #Entalpy of transition at 90.20K, J/mol\n",
+ "T1 = 12.97 #Maximum applicabliltiy temeprature for first heat capacity equation, K\n",
+ "T12 = 23.66 #Phase Change temperature from Solid III--II, K\n",
+ "T23 = 43.76 #Phase Change temperature from Solid II--I, K\n",
+ "T34 = 54.39 #Phase Change temperature from Solid I--liquid, K\n",
+ "T45 = 90.20 #Phase Change temperature from liquid--gas, K\n",
+ "Ts = 298.15 #Std. Temeprature, K\n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (D1*T**3)/T, (T,0,T1)) \n",
+ "dS2 = n*integrate( (A2 + B2*T + C2*T**2 + D2*T**3)/T, (T,T1,T12)) \n",
+ "dS21 = Ltrans1/T12\n",
+ "dS3 = n*integrate( (A3 + B3*T + C3*T**2 + D3*T**3)/T, (T,T12,T23)) \n",
+ "dS31 = Ltrans2/T23\n",
+ "dS4 = n*integrate( (A4)/T, (T,T23,T34)) \n",
+ "dS41 = Ltrans3/T34\n",
+ "dS5 = n*integrate( (A5 + B5*T + C5*T**2 + D5*T**3)/T, (T,T34,T45)) \n",
+ "dS51 = Ltrans4/T45\n",
+ "dS6 = n*integrate( (A6 + B6*T + C6*T**2 + D6*T**3)/T, (T,T45,Ts))\n",
+ "#print dS1+dS2,dS21\n",
+ "#print dS3, dS31\n",
+ "#print dS4, dS41\n",
+ "#print dS5, dS51\n",
+ "#print dS6\n",
+ "dS = dS1+dS2+dS21+dS3+dS31+dS4+dS41+dS5+dS51+dS6\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change Sm0 for O2 is %4.1f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change Sm0 for O2 is 204.8 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.10, Page Number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2 formed, mol\n",
+ "p = 1. #Pressure of CO2, K\n",
+ "\n",
+ "A1, B1, C1, D1 = 18.86,7.937e-2,-6.7834e-5,2.4426e-8\n",
+ " #Constants in constant pressure Heat capacity equation for CO2, J/(mol.K)\n",
+ "A2, B2, C2, D2 = 30.81,-1.187e-2,2.3968e-5, 0.0\n",
+ " #Constants in constant pressure Heat capacity equation for O2, J/(mol.K)\n",
+ "A3, B3, C3, D3 = 31.08,-1.452e-2,3.1415e-5 ,-1.4793e-8 \n",
+ " #Constants in constant pressure Heat capacity equation for CO, J/(mol.K)\n",
+ "DSr298CO = 197.67 #Std. Entropy change for CO, J/(mol.K)\n",
+ "DSr298CO2 = 213.74 #Std. Entropy change for CO, J/(mol.K)\n",
+ "DSr298O2 = 205.138 #Std. Entropy change for CO, J/(mol.K)\n",
+ "Tr = 475. #Reaction temperature, K\n",
+ "Ts = 298.15 #Std. temperature, K\n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "v1,v2,v3 = 1.,1./2,1.\n",
+ "DSr = DSr298CO2*v1 - DSr298CO*v1 - DSr298O2*v2\n",
+ "DA = v1*A1-v2*A2-v3*A3\n",
+ "DB = v1*B1-v2*B2-v3*B3\n",
+ "DC = v1*C1-v2*C2-v3*C3\n",
+ "DD = v1*D1-v2*D2-v3*D3\n",
+ "dS = DSr + n*integrate( (DA + DB*T + DC*T**2 + DD*T**3)/T, (T,Ts,Tr)) \n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change for reaction at %4d K is %4.2f J/(mol.K)'%(Tr,dS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change Sm0 for O2 is 204.83 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_2.ipynb
new file mode 100755
index 00000000..21cc530e
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter05_2.ipynb
@@ -0,0 +1,426 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:fb3a9fa8ccc4e6b6189db2b7b007068058fcf43a7754989741838789e7fd6c7a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Enthalpy and the Second and Third Laws of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.1, Page Number 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Th, Tc = 500.,200. #Temeperatures IN Which reversible heat engine works, K\n",
+ "q = 1000. #Heat absorbed by heat engine, J\n",
+ "\n",
+ "#Calcualtions\n",
+ "eps = 1.-Tc/Th\n",
+ "w = eps*q\n",
+ "\n",
+ "#Results\n",
+ "print 'Efficiency of heat engine is %4.3f'%eps\n",
+ "print 'Work done by heat engine is %4.1f J'%w"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency of heat engine is 0.600\n",
+ "Work done by heat engine is 600.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.4, Page Number 87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "Ti, Tf = 320.,650. #Initial and final state Temeperatures of CO2, K\n",
+ "vi, vf = 80.,120. #Initial and final state volume of CO2, K\n",
+ "A, B, C, D = 31.08,-0.01452,3.1415e-5,-1.4973e-8\n",
+ " #Constants in constant volume Heat capacity equation in J, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (A + B*T + C*T**2 + D*T**3)/T, (T,Ti,Tf)) \n",
+ "dS2 = n*R*log(vf/vi)\n",
+ "dS = dS1 + dS2\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 24.43 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.5, Page Number 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 2.5 #Number of moles of CO2\n",
+ "Ti, Tf = 450.,800. #Initial and final state Temeperatures of CO2, K\n",
+ "pi, pf = 1.35,3.45 #Initial and final state pressure of CO2, K\n",
+ "A, B, C, D = 18.86,7.937e-2,-6.7834e-5,2.4426e-8\n",
+ " #Constants in constant pressure Heat capacity equation in J, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (A + B*T + C*T**2 + D*T**3)/T, (T,Ti,Tf)) \n",
+ "dS2 = n*R*log(pf/pi)\n",
+ "dS = dS1 - dS2\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 48.55 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.6, Page Number 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 3.0 #Number of moles of CO2\n",
+ "Ti, Tf = 300.,600. #Initial and final state Temeperatures of CO2, K\n",
+ "pi, pf = 1.00,3.00 #Initial and final state pressure of CO2, K\n",
+ "cpm = 27.98 #Specific heat of mercury, J/(mol.K)\n",
+ "M = 200.59 #Molecualr wt of mercury, g/(mol)\n",
+ "beta = 1.81e-4 #per K\n",
+ "rho = 13.54 #Density of mercury, g/cm3\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "dS1 = n*cpm*log(Tf/Ti)\n",
+ "dS2 = n*(M/(rho*1e6))*beta*(pf-pi)*1e5\n",
+ "dS = dS1 - dS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change of process is %4.1f J/(mol.K)'%dS\n",
+ "print 'Ratio of pressure to temperature dependent term %3.1e\\nhence effect of pressure dependent term isvery less'%(dS2/dS1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of process is 58.2 J/(mol.K)\n",
+ "Ratio of pressure to temperature dependent term 2.8e-05\n",
+ "hence effect of pressure dependent term isvery less\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.7, Page Number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "T = 300.0 #Temeperatures of Water bath, K\n",
+ "vi, vf = 25.0,10.0 #Initial and final state Volume of Ideal Gas, L\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "qrev = n*R*T*log(vf/vi)\n",
+ "w = -qrev\n",
+ "dSsys = qrev/T\n",
+ "dSsur = -dSsys\n",
+ "dS = dSsys + dSsur\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change of surrounding is %4.1f J/(mol.K)'%dSsur\n",
+ "print 'Entropy change of system is %4.1f J/(mol.K)'%dSsys\n",
+ "print 'Total Entropy changeis %4.1f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of surrounding is 7.6 J/(mol.K)\n",
+ "Entropy change of system is -7.6 J/(mol.K)\n",
+ "Total Entropy changeis 0.0 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.8, Page Number 93"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "T = 300.0 #Temeperatures of Water bath, K\n",
+ "vi, vf = 25.0,10.0 #Initial and final state Volume of Ideal Gas, L\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "\n",
+ "#Calcualtions\n",
+ "pext = n*R*T/(vf/1e3)\n",
+ "pi = n*R*T/(vi/1e3)\n",
+ "q = pext*(vf-vi)/1e3\n",
+ "qrev = n*R*T*log(vf/vi)\n",
+ "w = -q\n",
+ "dSsur = -q/T\n",
+ "dSsys = qrev/T\n",
+ "dS = dSsys + dSsur\n",
+ "\n",
+ "#Results\n",
+ "print 'Constant external pressure and initial pressure are %4.3e J,and %4.3e J respectively'%(pext,pi)\n",
+ "print 'Heat in reverssible and irreversible processes are %4.1f J,and %4.1f J respectively'%(qrev,q)\n",
+ "print 'Entropy change of system is %4.1f J/(mol.K)'%dSsys\n",
+ "print 'Entropy change of surrounding is %4.2f J/(mol.K)'%dSsur\n",
+ "print 'Total Entropy changeis %4.2f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant external pressure and initial pressure are 2.494e+05 J,and 9.977e+04 J respectively\n",
+ "Heat in reverssible and irreversible processes are -2285.4 J,and -3741.3 J respectively\n",
+ "Entropy change of system is -7.6 J/(mol.K)\n",
+ "Entropy change of surrounding is 12.47 J/(mol.K)\n",
+ "Total Entropy changeis 4.85 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.9, Page Number 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2\n",
+ "pi, pf = 1.35,3.45 #Initial and final state pressure of CO2, K\n",
+ "D1 = 2.11e-3 #Constants in constant pressure Heat capacity equation for K<T<12.97K, in J, mol, K units\n",
+ "A2, B2, C2, D2 = -5.666,0.6927,-5.191e-3,9.943e-4\n",
+ " #Constants in constant pressure Heat capacity equation for 12.97<T<23.66, J, mol, K units\n",
+ "A3, B3, C3, D3 = 31.70,-2.038,0.08384,-6.685e-4\n",
+ " #Constants in constant pressure Heat capacity equation for 23.66<T<43.76, J, mol, K units\n",
+ "A4 = 46.094 #Constants in constant pressure Heat capacity equation for 43.76<T<54.39, J/(mol.K)\n",
+ "A5, B5, C5, D5 = 81.268,-1.1467,0.01516,-6.407e-5\n",
+ " #Constants in constant pressure Heat capacity equation for 54.39<T<90.20K, J, mol, K units\n",
+ "A6, B6, C6, D6 = 32.71,-0.04093,1.545e-4,-1.819e-7\n",
+ " #Constants in constant pressure Heat capacity equation for 90.20<T<298.15 KJ, mol, K units\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K) \n",
+ "Ltrans1 = 93.80 #Entalpy of transition at 23.66K, J/mol\n",
+ "Ltrans2 = 743.0 #Entalpy of transition at 43.76K, J/mol\n",
+ "Ltrans3 = 445.0 #Entalpy of transition at 54.39K, J/mol\n",
+ "Ltrans4 = 6815. #Entalpy of transition at 90.20K, J/mol\n",
+ "T1 = 12.97 #Maximum applicabliltiy temeprature for first heat capacity equation, K\n",
+ "T12 = 23.66 #Phase Change temperature from Solid III--II, K\n",
+ "T23 = 43.76 #Phase Change temperature from Solid II--I, K\n",
+ "T34 = 54.39 #Phase Change temperature from Solid I--liquid, K\n",
+ "T45 = 90.20 #Phase Change temperature from liquid--gas, K\n",
+ "Ts = 298.15 #Std. Temeprature, K\n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "dS1 = n*integrate( (D1*T**3)/T, (T,0,T1)) \n",
+ "dS2 = n*integrate( (A2 + B2*T + C2*T**2 + D2*T**3)/T, (T,T1,T12)) \n",
+ "dS21 = Ltrans1/T12\n",
+ "dS3 = n*integrate( (A3 + B3*T + C3*T**2 + D3*T**3)/T, (T,T12,T23)) \n",
+ "dS31 = Ltrans2/T23\n",
+ "dS4 = n*integrate( (A4)/T, (T,T23,T34)) \n",
+ "dS41 = Ltrans3/T34\n",
+ "dS5 = n*integrate( (A5 + B5*T + C5*T**2 + D5*T**3)/T, (T,T34,T45)) \n",
+ "dS51 = Ltrans4/T45\n",
+ "dS6 = n*integrate( (A6 + B6*T + C6*T**2 + D6*T**3)/T, (T,T45,Ts))\n",
+ "#print dS1+dS2,dS21\n",
+ "#print dS3, dS31\n",
+ "#print dS4, dS41\n",
+ "#print dS5, dS51\n",
+ "#print dS6\n",
+ "dS = dS1+dS2+dS21+dS3+dS31+dS4+dS41+dS5+dS51+dS6\n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change Sm0 for O2 is %4.1f J/(mol.K)'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change Sm0 for O2 is 204.8 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 5.10, Page Number 99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import integrate, symbols\n",
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 1.0 #Number of moles of CO2 formed, mol\n",
+ "p = 1. #Pressure of CO2, K\n",
+ "\n",
+ "A1, B1, C1, D1 = 18.86,7.937e-2,-6.7834e-5,2.4426e-8\n",
+ " #Constants in constant pressure Heat capacity equation for CO2, J/(mol.K)\n",
+ "A2, B2, C2, D2 = 30.81,-1.187e-2,2.3968e-5, 0.0\n",
+ " #Constants in constant pressure Heat capacity equation for O2, J/(mol.K)\n",
+ "A3, B3, C3, D3 = 31.08,-1.452e-2,3.1415e-5 ,-1.4793e-8 \n",
+ " #Constants in constant pressure Heat capacity equation for CO, J/(mol.K)\n",
+ "DSr298CO = 197.67 #Std. Entropy change for CO, J/(mol.K)\n",
+ "DSr298CO2 = 213.74 #Std. Entropy change for CO, J/(mol.K)\n",
+ "DSr298O2 = 205.138 #Std. Entropy change for CO, J/(mol.K)\n",
+ "Tr = 475. #Reaction temperature, K\n",
+ "Ts = 298.15 #Std. temperature, K\n",
+ "#Calcualtions\n",
+ "T = symbols('T')\n",
+ "v1,v2,v3 = 1.,1./2,1.\n",
+ "DSr = DSr298CO2*v1 - DSr298CO*v1 - DSr298O2*v2\n",
+ "DA = v1*A1-v2*A2-v3*A3\n",
+ "DB = v1*B1-v2*B2-v3*B3\n",
+ "DC = v1*C1-v2*C2-v3*C3\n",
+ "DD = v1*D1-v2*D2-v3*D3\n",
+ "dS = DSr + n*integrate( (DA + DB*T + DC*T**2 + DD*T**3)/T, (T,Ts,Tr)) \n",
+ "\n",
+ "#Results\n",
+ "print 'Entropy change for reaction at %4d K is %4.2f J/(mol.K)'%(Tr,dS)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change for reaction at 475 K is -88.26 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06.ipynb
new file mode 100755
index 00000000..c6258811
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06.ipynb
@@ -0,0 +1,709 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:399beb745330e541e567baa0f45fde7ecc89dabcc65d8db71d8e5921a036072a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06: Chemical Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.1, Page Number 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dHcCH4 = -891.0 #Std. heat of combustion for CH4, kJ/mol\n",
+ "dHcC8H18 = -5471.0 #Std. heat of combustion for C8H18, kJ/mol\n",
+ "\n",
+ "T = 298.15\n",
+ "SmCO2, SmCH4, SmH2O, SmO2, SmC8H18 = 213.8,186.3,70.0,205.2, 316.1\n",
+ "dnCH4 = -2.\n",
+ "dnC8H18 = 4.5\n",
+ "R = 8.314\n",
+ "#Calculations\n",
+ "dACH4 = dHcCH4*1e3 - dnCH4*R*T - T*(SmCO2 + 2*SmH2O - SmCH4 - 2*SmO2)\n",
+ "dAC8H18 = dHcC8H18*1e3 - dnC8H18*R*T - T*(8*SmCO2 + 9*SmH2O - SmC8H18 - 25.*SmO2/2) \n",
+ "#Results \n",
+ "print 'Maximum Available work through combustion of CH4 %4.1f kJ/mol'%(dACH4/1000)\n",
+ "print 'Maximum Available work through combustion of C8H18 %4.1f kJ/mol'%(dAC8H18/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Available work through combustion of CH4 -813.6 kJ/mol\n",
+ "Maximum Available work through combustion of C8H18 -5320.9 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.2, Page Number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dHcCH4 = -891.0 #Std. heat of combustion for CH4, kJ/mol\n",
+ "dHcC8H18 = -5471.0 #Std. heat of combustion for C8H18, kJ/mol\n",
+ "\n",
+ "T = 298.15\n",
+ "SmCO2, SmCH4, SmH2O, SmO2, SmC8H18 = 213.8,186.3,70.0,205.2, 316.1\n",
+ "dnCH4 = -2.\n",
+ "dnC8H18 = 4.5\n",
+ "R = 8.314\n",
+ "#Calculations\n",
+ "dGCH4 = dHcCH4*1e3 - T*(SmCO2 + 2*SmH2O - SmCH4 - 2*SmO2)\n",
+ "dGC8H18 = dHcC8H18*1e3 - T*(8*SmCO2 + 9*SmH2O - SmC8H18 - 25.*SmO2/2) \n",
+ "#Results \n",
+ "print 'Maximum nonexapnasion work through combustion of CH4 %4.1f kJ/mol'%(dGCH4/1000)\n",
+ "print 'Maximum nonexapnasion work through combustion of C8H18 %4.1f kJ/mol'%(dGC8H18/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum nonexapnasion work through combustion of CH4 -818.6 kJ/mol\n",
+ "Maximum nonexapnasion work through combustion of C8H18 -5309.8 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.4, Page Number 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGf298 = 370.7 #Std. free energy of formation for Fe (g), kJ/mol\n",
+ "dHf298 = 416.3 #Std. Enthalpy of formation for Fe (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "T = 400. #Temperature in K\n",
+ "R = 8.314\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "dGf = T*(dGf298*1e3/T0 + dHf298*1e3*(1./T - 1./T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. free energy of formation for Fe(g) at 400 K is %4.1f kJ/mol'%(dGf/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. free energy of formation for Fe(g) at 400 K is 355.1 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.5, Page Number 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "nHe = 1.0 #Number of moles of He\n",
+ "nNe = 3.0 #Number of moles of Ne\n",
+ "nAr = 2.0 #Number of moles of Ar\n",
+ "nXe = 2.5 #Number of moles of Xe\n",
+ "T = 298.15 #Temperature in K\n",
+ "P = 1.0 #Pressure, bar\n",
+ "R = 8.314\n",
+ "\n",
+ "#Calculations\n",
+ "n = nHe + nNe + nAr + nXe\n",
+ "dGmix = n*R*T*((nHe/n)*log(nHe/n) + (nNe/n)*log(nNe/n) +(nAr/n)*log(nAr/n) + (nXe/n)*log(nXe/n))\n",
+ "dSmix = n*R*((nHe/n)*log(nHe/n) + (nNe/n)*log(nNe/n) +(nAr/n)*log(nAr/n) + (nXe/n)*log(nXe/n))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. free energy Change on mixing is %3.1e J'%(dGmix)\n",
+ "print 'Std. entropy Change on mixing is %4.1f J'%(dSmix)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. free energy Change on mixing is -2.8e+04 J\n",
+ "Std. entropy Change on mixing is -93.3 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.6, Page Number 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGfFe = 0.0 #Std. Gibbs energy of formation for Fe (S), kJ/mol\n",
+ "dGfH2O = -237.1 #Std. Gibbs energy of formation for Water (g), kJ/mol\n",
+ "dGfFe2O3 = -1015.4 #Std. Gibbs energy of formation for Fe2O3 (s), kJ/mol\n",
+ "dGfH2 = 0.0 #Std. Gibbs energy of formation for Hydrogen (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nFe, nH2, nFe2O3, nH2O = 3,-4,-1,4\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nFe*dGfFe + nH2O*dGfH2O + nFe2O3*dGfFe2O3 + nH2*dGfH2 \n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %4.2f kJ/mol'%(dGR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 67.00 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.7, Page Number 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGR = 67.0 #Std. Gibbs energy of formation for reaction, kJ, from previous problem\n",
+ "dHfFe = 0.0 #Enthalpy of formation for Fe (S), kJ/mol\n",
+ "dHfH2O = -285.8 #Enthalpy of formation for Water (g), kJ/mol\n",
+ "dHfFe2O3 = -1118.4 #Enthalpy of formation for Fe2O3 (s), kJ/mol\n",
+ "dHfH2 = 0.0 #Enthalpy of formation for Hydrogen (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "T = 525. #Temperature in K\n",
+ "R = 8.314\n",
+ "nFe, nH2, nFe2O3, nH2O = 3,-4,-1,4\n",
+ "\n",
+ "#Calculations\n",
+ "dHR = nFe*dHfFe + nH2O*dHfH2O + nFe2O3*dHfFe2O3 + nH2*dHfH2 \n",
+ "dGR2 = T*(dGR*1e3/T0 + dHR*1e3*(1./T - 1./T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Enthalpy change for reactionat %4.1f is %4.2f kJ/mol'%(T, dHR)\n",
+ "print 'Std. Gibbs energy change for reactionat %4.1f is %4.0f kJ/mol'%(T, dGR2/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Enthalpy change for reactionat 525.0 is -24.80 kJ/mol\n",
+ "Std. Gibbs energy change for reactionat 525.0 is 137 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.8, Page Number 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "dGfNO2 = 51.3 #Std. Gibbs energy of formation for NO2 (g), kJ/mol\n",
+ "dGfN2O4 = 99.8 #Std. Gibbs energy of formation for N2O4 (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "pNO2 = 0.350 #Partial pressure of NO2, bar\n",
+ "pN2O4 = 0.650 #Partial pressure of N2O4, bar\n",
+ "R = 8.314\n",
+ "nNO2, nN2O4 = -2, 1 #Stoichiomentric coeff of NO2 and N2O4 respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nN2O4*dGfN2O4*1e3 + nNO2*dGfNO2*1e3 + R*T0*log(pN2O4/(pNO2)**2)\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 1.337 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.9, Page Number 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCO2 = -394.4 #Std. Gibbs energy of formation for CO2 (g), kJ/mol\n",
+ "dGfH2 = 0.0 #Std. Gibbs energy of formation for H2 (g), kJ/mol\n",
+ "dGfCO = 237.1 #Std. Gibbs energy of formation for CO (g), kJ/mol\n",
+ "dGfH2O = 137.2 #Std. Gibbs energy of formation for H24 (l), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCO2, nH2, nCO, nH2O = 1,1,1,1 #Stoichiomentric coeff of CO2,H2,CO,H2O respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nCO2*dGfCO2 + nH2*dGfH2 + nCO*dGfCO + nH2O*dGfH2O\n",
+ "Kp = exp(-dGR*1e3/(R*T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR/1e3)\n",
+ "print 'Equilibrium constant for reaction is %5.3f '%(Kp)\n",
+ "if Kp > 1: print 'Kp >> 1. hence, mixture will consists of product CO2 and H2'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is -0.020 kJ/mol\n",
+ "Equilibrium constant for reaction is 3323.254 \n",
+ "Kp >> 1. hence, mixture will consists of product CO2 and H2\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.11, Page Number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCl2 = 0.0 #Std. Gibbs energy of formation for CO2 (g), kJ/mol\n",
+ "dGfCl = 105.7 #Std. Gibbs energy of formation for H2 (g), kJ/mol\n",
+ "dHfCl2 = 0.0 #Std. Gibbs energy of formation for CO (g), kJ/mol\n",
+ "dHfCl = 121.3 #Std. Gibbs energy of formation for H24 (l), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCl2, nCl= -1,2 #Stoichiomentric coeff of Cl2,Cl respectively in reaction\n",
+ "PbyP0 = 0.01\n",
+ "#Calculations\n",
+ "dGR = nCl*dGfCl + nCl2*dGfCl2 \n",
+ "dHR = nCl*dHfCl + nCl2*dHfCl2 \n",
+ "func = lambda T: exp(-dGR*1e3/(R*T0) - dHR*1e3*(1./T - 1./T0)/R)\n",
+ "Kp8 = func(800)\n",
+ "Kp15 = func(1500)\n",
+ "Kp20 = func(2000)\n",
+ "DDiss = lambda K: sqrt(K/(K+4*PbyP0))\n",
+ "alp8 = DDiss(Kp8)\n",
+ "alp15 = DDiss(Kp15)\n",
+ "alp20 = DDiss(Kp20)\n",
+ "\n",
+ "#Results \n",
+ "print 'Part A'\n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR)\n",
+ "print 'Std. Enthalpy change for reaction is %5.3f kJ/mol'%(dHR)\n",
+ "print 'Equilibrium constants at 800, 1500, and 2000 K are %4.3e, %4.3e, and %4.3e'%(Kp8,Kp15,Kp20)\n",
+ "\n",
+ "print 'Part B'\n",
+ "print 'Degree of dissociation at 800, 1500, and 2000 K are %4.3e, %4.3e, and %4.3e'%(alp8,alp15,alp20)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part A\n",
+ "Std. Gibbs energy change for reaction is 211.400 kJ/mol\n",
+ "Std. Enthalpy change for reaction is 242.600 kJ/mol\n",
+ "Equilibrium constants at 800, 1500, and 2000 K are 4.223e-11, 1.042e-03, and 1.349e-01\n",
+ "Part B\n",
+ "Degree of dissociation at 800, 1500, and 2000 K are 3.249e-05, 1.593e-01, and 8.782e-01\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.12, Page Number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declaration\n",
+ "dGfCaCO3 = -1128.8 #Std. Gibbs energy of formation for CaCO3 (s), kJ/mol\n",
+ "dGfCaO = -603.3 #Std. Gibbs energy of formation for CaO (s), kJ/mol\n",
+ "dGfCO2 = -394.4 #Std. Gibbs energy of formation for O2 (g), kJ/mol\n",
+ "dHfCaCO3 = -1206.9 #Std. Enthalpy Change of formation for CaCO3 (s), kJ/mol\n",
+ "dHfCaO = -634.9 #Std. Enthalpy Change of formation for CaO (s), kJ/mol\n",
+ "dHfCO2 = -393.5 #Std. Enthalpy Change of formation for O2 (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCaCO3, nCaO, nO2 = -1,1,1 #Stoichiomentric coeff of CaCO3, CaO, O2 respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nCaO*dGfCaO + nO2*dGfCO2 + nCaCO3*dGfCaCO3\n",
+ "dHR = nCaO*dHfCaO + nO2*dHfCO2 + nCaCO3*dHfCaCO3\n",
+ "\n",
+ "func = lambda T: exp(-dGR*1e3/(R*T0) - dHR*1e3*(1./T - 1./T0)/R)\n",
+ "\n",
+ "Kp10 = func(1000)\n",
+ "Kp11 = func(1100)\n",
+ "Kp12 = func(1200)\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %4.1f kJ/mol'%(dGR)\n",
+ "print 'Std. Enthalpy change for reaction is %4.1f kJ/mol'%(dHR)\n",
+ "print 'Equilibrium constants at 1000, 1100, and 1200 K are %4.4f, %4.3fe, and %4.3f'%(Kp10,Kp11,Kp12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 131.1 kJ/mol\n",
+ "Std. Enthalpy change for reaction is 178.5 kJ/mol\n",
+ "Equilibrium constants at 1000, 1100, and 1200 K are 0.0956, 0.673e, and 3.423\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.13, Page Number 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCG = 0.0 #Std. Gibbs energy of formation for CaCO3 (s), kJ/mol\n",
+ "dGfCD = 2.90 #Std. Gibbs energy of formation for CaO (s), kJ/mol\n",
+ "rhoG = 2.25e3 #Density of Graphite, kg/m3\n",
+ "rhoD = 3.52e3 #Density of dimond, kg/m3\n",
+ "T0 = 298.15 #Std. Temperature, K\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K) \n",
+ "P0 = 1.0 #Pressure, bar\n",
+ "M = 12.01 #Molceular wt of Carbon\n",
+ "#Calculations\n",
+ "P = P0*1e5 + dGfCD*1e3/((1./rhoG-1./rhoD)*M*1e-3)\n",
+ "\n",
+ "#Results \n",
+ "print 'Pressure at which graphite and dimond will be in equilibrium is %4.2e bar'%(P/1e5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure at which graphite and dimond will be in equilibrium is 1.51e+04 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 98
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.14, Page Number 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "beta = 2.04e-4 #Thermal exapansion coefficient, /K\n",
+ "kapa = 45.9e-6 #Isothermal compressibility, /bar\n",
+ "T = 298.15 #Std. Temperature, K\n",
+ "R = 8.206e-2 #Ideal gas constant, atm.L/(mol.K) \n",
+ "T1 = 320.0 #Temperature, K\n",
+ "Pi = 1.0 #Initial Pressure, bar\n",
+ "V = 1.00 #Volume, m3\n",
+ "a = 1.35 #van der Waals constant a for nitrogen, atm.L2/mol2\n",
+ "\n",
+ "#Calculations\n",
+ "dUbydV = Pf = (beta*T1-kapa*P0)/kapa\n",
+ "dVT = V*kapa*(Pf-Pi)\n",
+ "dVbyV = dVT*100/V\n",
+ "Vm = Pi/(R*T1)\n",
+ "dUbydVm = a/(Vm**2)\n",
+ "\n",
+ "#Results \n",
+ "print 'dUbydV = %4.2e bar'%(dUbydV)\n",
+ "print 'dVbyV = %4.3f percent'%(dVbyV)\n",
+ "print 'dUbydVm = %4.0e atm'%(dUbydVm)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dUbydV = 1.42e+03 bar\n",
+ "dVbyV = 6.519 percent\n",
+ "dUbydVm = 9e+02 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.15, Page Number 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, log\n",
+ "#Variable Declaration\n",
+ "m = 1000.0 #mass of mercury, g\n",
+ "Pi, Ti = 1.00, 300.0 #Intial pressure and temperature, bar, K\n",
+ "Pf, Tf = 300., 600.0 #Final pressure and temperature, bar, K\n",
+ "rho = 13534. #Density of mercury, kg/m3\n",
+ "beta = 18.1e-4 #Thermal exapansion coefficient for Hg, /K \n",
+ "kapa = 3.91e-6 #Isothermal compressibility for Hg, /Pa\n",
+ "Cpm = 27.98 #Molar Specific heat at constant pressure, J/(mol.K) \n",
+ "M = 200.59 #Molecular wt of Hg, g/mol\n",
+ "\n",
+ "#Calculations\n",
+ "Vi = m*1e-3/rho\n",
+ "Vf = Vi*exp(-kapa*(Pf-Pi))\n",
+ "Ut = m*Cpm*(Tf-Ti)/M \n",
+ "Up = (beta*Ti/kapa-Pi)*1e5*(Vf-Vi) + (Vi-Vf+Vf*log(Vf/Vi))*1e5/kapa\n",
+ "dU = Ut + Up\n",
+ "Ht = m*Cpm*(Tf-Ti)/M\n",
+ "Hp = ((1 + beta*(Tf-Ti))*Vi*exp(-kapa*Pi)/kapa)*(exp(-kapa*Pi)-exp(-kapa*Pf))\n",
+ "dH = Ht + Hp\n",
+ "#Results\n",
+ "print 'Internal energy change is %6.2e J/mol in which \\ncontribution of temeprature dependent term %6.4f percent'%(dU,Ut*100/dH)\n",
+ "print 'Enthalpy change is %4.3e J/mol in which \\ncontribution of temeprature dependent term %4.1f percent'%(dH,Ht*100/dH)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Internal energy change is 4.06e+04 J/mol in which \n",
+ "contribution of temeprature dependent term 99.9999 percent\n",
+ "Enthalpy change is 4.185e+04 J/mol in which \n",
+ "contribution of temeprature dependent term 100.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.16, Page Number 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T = 300.0 #Temperature of Hg, K \n",
+ "beta = 18.1e-4 #Thermal exapansion coefficient for Hg, /K \n",
+ "kapa = 3.91e-6 #Isothermal compressibility for Hg, /Pa\n",
+ "M = 0.20059 #Molecular wt of Hg, kg/mol \n",
+ "rho = 13534 #Density of mercury, kg/m3\n",
+ "Cpm = 27.98 #Experimental Molar specif heat at const pressure for mercury, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = M/rho\n",
+ "DCpmCv = T*Vm*beta**2/kapa\n",
+ "Cvm = Cpm - DCpmCv\n",
+ "#Results\n",
+ "print 'Difference in molar specific heats \\nat constant volume and constant pressure %4.2e J/(mol.K)'%DCpmCv\n",
+ "print 'Molar Specific heat of Hg at const. volume is %4.2f J/(mol.K)'%Cvm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in molar specific heats \n",
+ "at constant volume and constant pressure 3.73e-03 J/(mol.K)\n",
+ "Molar Specific heat of Hg at const. volume is 27.98 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.17, Page Number 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T = 298.15 #Std. Temperature, K \n",
+ "P = 1.0 #Initial Pressure, bar\n",
+ "Hm0, Sm0 = 0.0,154.8 #Std. molar enthalpy and entropy of Ar(g), kJ, mol, K units\n",
+ "Sm0H2, Sm0O2 = 130.7,205.2 #Std. molar entropy of O2 and H2 (g), kJ/(mol.K)\n",
+ "dGfH2O = -237.1 #Gibbs energy of formation for H2O(l), kJ/mol \n",
+ "nH2, nO2 = 1, 1./2 #Stoichiomentric coefficients for H2 and O2 in water formation reaction \n",
+ "\n",
+ "#Calculations\n",
+ "Gm0 = Hm0 - T*Sm0\n",
+ "dGmH2O = dGfH2O*1000 - T*(nH2*Sm0H2 + nO2*Sm0O2)\n",
+ "#Results\n",
+ "print 'Molar Gibbs energy of Ar %4.3f kJ/mol'%(Gm0/1e3)\n",
+ "print 'Molar Gibbs energy of Water %4.3f kJ/mol'%(dGmH2O/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar Gibbs energy of Ar -46.154 kJ/mol\n",
+ "Molar Gibbs energy of Water -306.658 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_1.ipynb
new file mode 100755
index 00000000..c6258811
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_1.ipynb
@@ -0,0 +1,709 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:399beb745330e541e567baa0f45fde7ecc89dabcc65d8db71d8e5921a036072a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06: Chemical Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.1, Page Number 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dHcCH4 = -891.0 #Std. heat of combustion for CH4, kJ/mol\n",
+ "dHcC8H18 = -5471.0 #Std. heat of combustion for C8H18, kJ/mol\n",
+ "\n",
+ "T = 298.15\n",
+ "SmCO2, SmCH4, SmH2O, SmO2, SmC8H18 = 213.8,186.3,70.0,205.2, 316.1\n",
+ "dnCH4 = -2.\n",
+ "dnC8H18 = 4.5\n",
+ "R = 8.314\n",
+ "#Calculations\n",
+ "dACH4 = dHcCH4*1e3 - dnCH4*R*T - T*(SmCO2 + 2*SmH2O - SmCH4 - 2*SmO2)\n",
+ "dAC8H18 = dHcC8H18*1e3 - dnC8H18*R*T - T*(8*SmCO2 + 9*SmH2O - SmC8H18 - 25.*SmO2/2) \n",
+ "#Results \n",
+ "print 'Maximum Available work through combustion of CH4 %4.1f kJ/mol'%(dACH4/1000)\n",
+ "print 'Maximum Available work through combustion of C8H18 %4.1f kJ/mol'%(dAC8H18/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Available work through combustion of CH4 -813.6 kJ/mol\n",
+ "Maximum Available work through combustion of C8H18 -5320.9 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.2, Page Number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dHcCH4 = -891.0 #Std. heat of combustion for CH4, kJ/mol\n",
+ "dHcC8H18 = -5471.0 #Std. heat of combustion for C8H18, kJ/mol\n",
+ "\n",
+ "T = 298.15\n",
+ "SmCO2, SmCH4, SmH2O, SmO2, SmC8H18 = 213.8,186.3,70.0,205.2, 316.1\n",
+ "dnCH4 = -2.\n",
+ "dnC8H18 = 4.5\n",
+ "R = 8.314\n",
+ "#Calculations\n",
+ "dGCH4 = dHcCH4*1e3 - T*(SmCO2 + 2*SmH2O - SmCH4 - 2*SmO2)\n",
+ "dGC8H18 = dHcC8H18*1e3 - T*(8*SmCO2 + 9*SmH2O - SmC8H18 - 25.*SmO2/2) \n",
+ "#Results \n",
+ "print 'Maximum nonexapnasion work through combustion of CH4 %4.1f kJ/mol'%(dGCH4/1000)\n",
+ "print 'Maximum nonexapnasion work through combustion of C8H18 %4.1f kJ/mol'%(dGC8H18/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum nonexapnasion work through combustion of CH4 -818.6 kJ/mol\n",
+ "Maximum nonexapnasion work through combustion of C8H18 -5309.8 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.4, Page Number 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGf298 = 370.7 #Std. free energy of formation for Fe (g), kJ/mol\n",
+ "dHf298 = 416.3 #Std. Enthalpy of formation for Fe (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "T = 400. #Temperature in K\n",
+ "R = 8.314\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "dGf = T*(dGf298*1e3/T0 + dHf298*1e3*(1./T - 1./T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. free energy of formation for Fe(g) at 400 K is %4.1f kJ/mol'%(dGf/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. free energy of formation for Fe(g) at 400 K is 355.1 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.5, Page Number 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "nHe = 1.0 #Number of moles of He\n",
+ "nNe = 3.0 #Number of moles of Ne\n",
+ "nAr = 2.0 #Number of moles of Ar\n",
+ "nXe = 2.5 #Number of moles of Xe\n",
+ "T = 298.15 #Temperature in K\n",
+ "P = 1.0 #Pressure, bar\n",
+ "R = 8.314\n",
+ "\n",
+ "#Calculations\n",
+ "n = nHe + nNe + nAr + nXe\n",
+ "dGmix = n*R*T*((nHe/n)*log(nHe/n) + (nNe/n)*log(nNe/n) +(nAr/n)*log(nAr/n) + (nXe/n)*log(nXe/n))\n",
+ "dSmix = n*R*((nHe/n)*log(nHe/n) + (nNe/n)*log(nNe/n) +(nAr/n)*log(nAr/n) + (nXe/n)*log(nXe/n))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. free energy Change on mixing is %3.1e J'%(dGmix)\n",
+ "print 'Std. entropy Change on mixing is %4.1f J'%(dSmix)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. free energy Change on mixing is -2.8e+04 J\n",
+ "Std. entropy Change on mixing is -93.3 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.6, Page Number 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGfFe = 0.0 #Std. Gibbs energy of formation for Fe (S), kJ/mol\n",
+ "dGfH2O = -237.1 #Std. Gibbs energy of formation for Water (g), kJ/mol\n",
+ "dGfFe2O3 = -1015.4 #Std. Gibbs energy of formation for Fe2O3 (s), kJ/mol\n",
+ "dGfH2 = 0.0 #Std. Gibbs energy of formation for Hydrogen (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nFe, nH2, nFe2O3, nH2O = 3,-4,-1,4\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nFe*dGfFe + nH2O*dGfH2O + nFe2O3*dGfFe2O3 + nH2*dGfH2 \n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %4.2f kJ/mol'%(dGR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 67.00 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.7, Page Number 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGR = 67.0 #Std. Gibbs energy of formation for reaction, kJ, from previous problem\n",
+ "dHfFe = 0.0 #Enthalpy of formation for Fe (S), kJ/mol\n",
+ "dHfH2O = -285.8 #Enthalpy of formation for Water (g), kJ/mol\n",
+ "dHfFe2O3 = -1118.4 #Enthalpy of formation for Fe2O3 (s), kJ/mol\n",
+ "dHfH2 = 0.0 #Enthalpy of formation for Hydrogen (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "T = 525. #Temperature in K\n",
+ "R = 8.314\n",
+ "nFe, nH2, nFe2O3, nH2O = 3,-4,-1,4\n",
+ "\n",
+ "#Calculations\n",
+ "dHR = nFe*dHfFe + nH2O*dHfH2O + nFe2O3*dHfFe2O3 + nH2*dHfH2 \n",
+ "dGR2 = T*(dGR*1e3/T0 + dHR*1e3*(1./T - 1./T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Enthalpy change for reactionat %4.1f is %4.2f kJ/mol'%(T, dHR)\n",
+ "print 'Std. Gibbs energy change for reactionat %4.1f is %4.0f kJ/mol'%(T, dGR2/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Enthalpy change for reactionat 525.0 is -24.80 kJ/mol\n",
+ "Std. Gibbs energy change for reactionat 525.0 is 137 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.8, Page Number 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#Variable Declaration\n",
+ "dGfNO2 = 51.3 #Std. Gibbs energy of formation for NO2 (g), kJ/mol\n",
+ "dGfN2O4 = 99.8 #Std. Gibbs energy of formation for N2O4 (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "pNO2 = 0.350 #Partial pressure of NO2, bar\n",
+ "pN2O4 = 0.650 #Partial pressure of N2O4, bar\n",
+ "R = 8.314\n",
+ "nNO2, nN2O4 = -2, 1 #Stoichiomentric coeff of NO2 and N2O4 respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nN2O4*dGfN2O4*1e3 + nNO2*dGfNO2*1e3 + R*T0*log(pN2O4/(pNO2)**2)\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 1.337 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.9, Page Number 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCO2 = -394.4 #Std. Gibbs energy of formation for CO2 (g), kJ/mol\n",
+ "dGfH2 = 0.0 #Std. Gibbs energy of formation for H2 (g), kJ/mol\n",
+ "dGfCO = 237.1 #Std. Gibbs energy of formation for CO (g), kJ/mol\n",
+ "dGfH2O = 137.2 #Std. Gibbs energy of formation for H24 (l), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCO2, nH2, nCO, nH2O = 1,1,1,1 #Stoichiomentric coeff of CO2,H2,CO,H2O respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nCO2*dGfCO2 + nH2*dGfH2 + nCO*dGfCO + nH2O*dGfH2O\n",
+ "Kp = exp(-dGR*1e3/(R*T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR/1e3)\n",
+ "print 'Equilibrium constant for reaction is %5.3f '%(Kp)\n",
+ "if Kp > 1: print 'Kp >> 1. hence, mixture will consists of product CO2 and H2'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is -0.020 kJ/mol\n",
+ "Equilibrium constant for reaction is 3323.254 \n",
+ "Kp >> 1. hence, mixture will consists of product CO2 and H2\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.11, Page Number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCl2 = 0.0 #Std. Gibbs energy of formation for CO2 (g), kJ/mol\n",
+ "dGfCl = 105.7 #Std. Gibbs energy of formation for H2 (g), kJ/mol\n",
+ "dHfCl2 = 0.0 #Std. Gibbs energy of formation for CO (g), kJ/mol\n",
+ "dHfCl = 121.3 #Std. Gibbs energy of formation for H24 (l), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCl2, nCl= -1,2 #Stoichiomentric coeff of Cl2,Cl respectively in reaction\n",
+ "PbyP0 = 0.01\n",
+ "#Calculations\n",
+ "dGR = nCl*dGfCl + nCl2*dGfCl2 \n",
+ "dHR = nCl*dHfCl + nCl2*dHfCl2 \n",
+ "func = lambda T: exp(-dGR*1e3/(R*T0) - dHR*1e3*(1./T - 1./T0)/R)\n",
+ "Kp8 = func(800)\n",
+ "Kp15 = func(1500)\n",
+ "Kp20 = func(2000)\n",
+ "DDiss = lambda K: sqrt(K/(K+4*PbyP0))\n",
+ "alp8 = DDiss(Kp8)\n",
+ "alp15 = DDiss(Kp15)\n",
+ "alp20 = DDiss(Kp20)\n",
+ "\n",
+ "#Results \n",
+ "print 'Part A'\n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR)\n",
+ "print 'Std. Enthalpy change for reaction is %5.3f kJ/mol'%(dHR)\n",
+ "print 'Equilibrium constants at 800, 1500, and 2000 K are %4.3e, %4.3e, and %4.3e'%(Kp8,Kp15,Kp20)\n",
+ "\n",
+ "print 'Part B'\n",
+ "print 'Degree of dissociation at 800, 1500, and 2000 K are %4.3e, %4.3e, and %4.3e'%(alp8,alp15,alp20)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part A\n",
+ "Std. Gibbs energy change for reaction is 211.400 kJ/mol\n",
+ "Std. Enthalpy change for reaction is 242.600 kJ/mol\n",
+ "Equilibrium constants at 800, 1500, and 2000 K are 4.223e-11, 1.042e-03, and 1.349e-01\n",
+ "Part B\n",
+ "Degree of dissociation at 800, 1500, and 2000 K are 3.249e-05, 1.593e-01, and 8.782e-01\n"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.12, Page Number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declaration\n",
+ "dGfCaCO3 = -1128.8 #Std. Gibbs energy of formation for CaCO3 (s), kJ/mol\n",
+ "dGfCaO = -603.3 #Std. Gibbs energy of formation for CaO (s), kJ/mol\n",
+ "dGfCO2 = -394.4 #Std. Gibbs energy of formation for O2 (g), kJ/mol\n",
+ "dHfCaCO3 = -1206.9 #Std. Enthalpy Change of formation for CaCO3 (s), kJ/mol\n",
+ "dHfCaO = -634.9 #Std. Enthalpy Change of formation for CaO (s), kJ/mol\n",
+ "dHfCO2 = -393.5 #Std. Enthalpy Change of formation for O2 (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCaCO3, nCaO, nO2 = -1,1,1 #Stoichiomentric coeff of CaCO3, CaO, O2 respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nCaO*dGfCaO + nO2*dGfCO2 + nCaCO3*dGfCaCO3\n",
+ "dHR = nCaO*dHfCaO + nO2*dHfCO2 + nCaCO3*dHfCaCO3\n",
+ "\n",
+ "func = lambda T: exp(-dGR*1e3/(R*T0) - dHR*1e3*(1./T - 1./T0)/R)\n",
+ "\n",
+ "Kp10 = func(1000)\n",
+ "Kp11 = func(1100)\n",
+ "Kp12 = func(1200)\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %4.1f kJ/mol'%(dGR)\n",
+ "print 'Std. Enthalpy change for reaction is %4.1f kJ/mol'%(dHR)\n",
+ "print 'Equilibrium constants at 1000, 1100, and 1200 K are %4.4f, %4.3fe, and %4.3f'%(Kp10,Kp11,Kp12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 131.1 kJ/mol\n",
+ "Std. Enthalpy change for reaction is 178.5 kJ/mol\n",
+ "Equilibrium constants at 1000, 1100, and 1200 K are 0.0956, 0.673e, and 3.423\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.13, Page Number 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCG = 0.0 #Std. Gibbs energy of formation for CaCO3 (s), kJ/mol\n",
+ "dGfCD = 2.90 #Std. Gibbs energy of formation for CaO (s), kJ/mol\n",
+ "rhoG = 2.25e3 #Density of Graphite, kg/m3\n",
+ "rhoD = 3.52e3 #Density of dimond, kg/m3\n",
+ "T0 = 298.15 #Std. Temperature, K\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K) \n",
+ "P0 = 1.0 #Pressure, bar\n",
+ "M = 12.01 #Molceular wt of Carbon\n",
+ "#Calculations\n",
+ "P = P0*1e5 + dGfCD*1e3/((1./rhoG-1./rhoD)*M*1e-3)\n",
+ "\n",
+ "#Results \n",
+ "print 'Pressure at which graphite and dimond will be in equilibrium is %4.2e bar'%(P/1e5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure at which graphite and dimond will be in equilibrium is 1.51e+04 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 98
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.14, Page Number 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "beta = 2.04e-4 #Thermal exapansion coefficient, /K\n",
+ "kapa = 45.9e-6 #Isothermal compressibility, /bar\n",
+ "T = 298.15 #Std. Temperature, K\n",
+ "R = 8.206e-2 #Ideal gas constant, atm.L/(mol.K) \n",
+ "T1 = 320.0 #Temperature, K\n",
+ "Pi = 1.0 #Initial Pressure, bar\n",
+ "V = 1.00 #Volume, m3\n",
+ "a = 1.35 #van der Waals constant a for nitrogen, atm.L2/mol2\n",
+ "\n",
+ "#Calculations\n",
+ "dUbydV = Pf = (beta*T1-kapa*P0)/kapa\n",
+ "dVT = V*kapa*(Pf-Pi)\n",
+ "dVbyV = dVT*100/V\n",
+ "Vm = Pi/(R*T1)\n",
+ "dUbydVm = a/(Vm**2)\n",
+ "\n",
+ "#Results \n",
+ "print 'dUbydV = %4.2e bar'%(dUbydV)\n",
+ "print 'dVbyV = %4.3f percent'%(dVbyV)\n",
+ "print 'dUbydVm = %4.0e atm'%(dUbydVm)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dUbydV = 1.42e+03 bar\n",
+ "dVbyV = 6.519 percent\n",
+ "dUbydVm = 9e+02 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 113
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.15, Page Number 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, log\n",
+ "#Variable Declaration\n",
+ "m = 1000.0 #mass of mercury, g\n",
+ "Pi, Ti = 1.00, 300.0 #Intial pressure and temperature, bar, K\n",
+ "Pf, Tf = 300., 600.0 #Final pressure and temperature, bar, K\n",
+ "rho = 13534. #Density of mercury, kg/m3\n",
+ "beta = 18.1e-4 #Thermal exapansion coefficient for Hg, /K \n",
+ "kapa = 3.91e-6 #Isothermal compressibility for Hg, /Pa\n",
+ "Cpm = 27.98 #Molar Specific heat at constant pressure, J/(mol.K) \n",
+ "M = 200.59 #Molecular wt of Hg, g/mol\n",
+ "\n",
+ "#Calculations\n",
+ "Vi = m*1e-3/rho\n",
+ "Vf = Vi*exp(-kapa*(Pf-Pi))\n",
+ "Ut = m*Cpm*(Tf-Ti)/M \n",
+ "Up = (beta*Ti/kapa-Pi)*1e5*(Vf-Vi) + (Vi-Vf+Vf*log(Vf/Vi))*1e5/kapa\n",
+ "dU = Ut + Up\n",
+ "Ht = m*Cpm*(Tf-Ti)/M\n",
+ "Hp = ((1 + beta*(Tf-Ti))*Vi*exp(-kapa*Pi)/kapa)*(exp(-kapa*Pi)-exp(-kapa*Pf))\n",
+ "dH = Ht + Hp\n",
+ "#Results\n",
+ "print 'Internal energy change is %6.2e J/mol in which \\ncontribution of temeprature dependent term %6.4f percent'%(dU,Ut*100/dH)\n",
+ "print 'Enthalpy change is %4.3e J/mol in which \\ncontribution of temeprature dependent term %4.1f percent'%(dH,Ht*100/dH)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Internal energy change is 4.06e+04 J/mol in which \n",
+ "contribution of temeprature dependent term 99.9999 percent\n",
+ "Enthalpy change is 4.185e+04 J/mol in which \n",
+ "contribution of temeprature dependent term 100.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.16, Page Number 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T = 300.0 #Temperature of Hg, K \n",
+ "beta = 18.1e-4 #Thermal exapansion coefficient for Hg, /K \n",
+ "kapa = 3.91e-6 #Isothermal compressibility for Hg, /Pa\n",
+ "M = 0.20059 #Molecular wt of Hg, kg/mol \n",
+ "rho = 13534 #Density of mercury, kg/m3\n",
+ "Cpm = 27.98 #Experimental Molar specif heat at const pressure for mercury, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = M/rho\n",
+ "DCpmCv = T*Vm*beta**2/kapa\n",
+ "Cvm = Cpm - DCpmCv\n",
+ "#Results\n",
+ "print 'Difference in molar specific heats \\nat constant volume and constant pressure %4.2e J/(mol.K)'%DCpmCv\n",
+ "print 'Molar Specific heat of Hg at const. volume is %4.2f J/(mol.K)'%Cvm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in molar specific heats \n",
+ "at constant volume and constant pressure 3.73e-03 J/(mol.K)\n",
+ "Molar Specific heat of Hg at const. volume is 27.98 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 149
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.17, Page Number 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T = 298.15 #Std. Temperature, K \n",
+ "P = 1.0 #Initial Pressure, bar\n",
+ "Hm0, Sm0 = 0.0,154.8 #Std. molar enthalpy and entropy of Ar(g), kJ, mol, K units\n",
+ "Sm0H2, Sm0O2 = 130.7,205.2 #Std. molar entropy of O2 and H2 (g), kJ/(mol.K)\n",
+ "dGfH2O = -237.1 #Gibbs energy of formation for H2O(l), kJ/mol \n",
+ "nH2, nO2 = 1, 1./2 #Stoichiomentric coefficients for H2 and O2 in water formation reaction \n",
+ "\n",
+ "#Calculations\n",
+ "Gm0 = Hm0 - T*Sm0\n",
+ "dGmH2O = dGfH2O*1000 - T*(nH2*Sm0H2 + nO2*Sm0O2)\n",
+ "#Results\n",
+ "print 'Molar Gibbs energy of Ar %4.3f kJ/mol'%(Gm0/1e3)\n",
+ "print 'Molar Gibbs energy of Water %4.3f kJ/mol'%(dGmH2O/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar Gibbs energy of Ar -46.154 kJ/mol\n",
+ "Molar Gibbs energy of Water -306.658 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_2.ipynb
new file mode 100755
index 00000000..f5b2d065
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter06_2.ipynb
@@ -0,0 +1,713 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:267b6c699ea5b02708cd7837dc08f6cae55ca12f860a79f0fcaa34ccb60be757"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06: Chemical Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.1, Page Number 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dHcCH4 = -891.0 #Std. heat of combustion for CH4, kJ/mol\n",
+ "dHcC8H18 = -5471.0 #Std. heat of combustion for C8H18, kJ/mol\n",
+ "\n",
+ "T = 298.15\n",
+ "SmCO2, SmCH4, SmH2O, SmO2, SmC8H18 = 213.8,186.3,70.0,205.2, 316.1\n",
+ "dnCH4 = -2.\n",
+ "dnC8H18 = 4.5\n",
+ "R = 8.314\n",
+ "#Calculations\n",
+ "dACH4 = dHcCH4*1e3 - dnCH4*R*T - T*(SmCO2 + 2*SmH2O - SmCH4 - 2*SmO2)\n",
+ "dAC8H18 = dHcC8H18*1e3 - dnC8H18*R*T - T*(8*SmCO2 + 9*SmH2O - SmC8H18 - 25.*SmO2/2) \n",
+ "#Results \n",
+ "print 'Maximum Available work through combustion of CH4 %4.1f kJ/mol'%(dACH4/1000)\n",
+ "print 'Maximum Available work through combustion of C8H18 %4.1f kJ/mol'%(dAC8H18/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Available work through combustion of CH4 -813.6 kJ/mol\n",
+ "Maximum Available work through combustion of C8H18 -5320.9 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.2, Page Number 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dHcCH4 = -891.0 #Std. heat of combustion for CH4, kJ/mol\n",
+ "dHcC8H18 = -5471.0 #Std. heat of combustion for C8H18, kJ/mol\n",
+ "\n",
+ "T = 298.15\n",
+ "SmCO2, SmCH4, SmH2O, SmO2, SmC8H18 = 213.8,186.3,70.0,205.2, 316.1\n",
+ "dnCH4 = -2.\n",
+ "dnC8H18 = 4.5\n",
+ "R = 8.314\n",
+ "#Calculations\n",
+ "dGCH4 = dHcCH4*1e3 - T*(SmCO2 + 2*SmH2O - SmCH4 - 2*SmO2)\n",
+ "dGC8H18 = dHcC8H18*1e3 - T*(8*SmCO2 + 9*SmH2O - SmC8H18 - 25.*SmO2/2) \n",
+ "#Results \n",
+ "print 'Maximum nonexapnasion work through combustion of CH4 %4.1f kJ/mol'%(dGCH4/1000)\n",
+ "print 'Maximum nonexapnasion work through combustion of C8H18 %4.1f kJ/mol'%(dGC8H18/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum nonexapnasion work through combustion of CH4 -818.6 kJ/mol\n",
+ "Maximum nonexapnasion work through combustion of C8H18 -5309.8 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.4, Page Number 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGf298 = 370.7 #Std. free energy of formation for Fe (g), kJ/mol\n",
+ "dHf298 = 416.3 #Std. Enthalpy of formation for Fe (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "T = 400. #Temperature in K\n",
+ "R = 8.314\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "dGf = T*(dGf298*1e3/T0 + dHf298*1e3*(1./T - 1./T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. free energy of formation for Fe(g) at 400 K is %4.1f kJ/mol'%(dGf/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. free energy of formation for Fe(g) at 400 K is 355.1 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.5, Page Number 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "nHe = 1.0 #Number of moles of He\n",
+ "nNe = 3.0 #Number of moles of Ne\n",
+ "nAr = 2.0 #Number of moles of Ar\n",
+ "nXe = 2.5 #Number of moles of Xe\n",
+ "T = 298.15 #Temperature in K\n",
+ "P = 1.0 #Pressure, bar\n",
+ "R = 8.314\n",
+ "\n",
+ "#Calculations\n",
+ "n = nHe + nNe + nAr + nXe\n",
+ "dGmix = n*R*T*((nHe/n)*log(nHe/n) + (nNe/n)*log(nNe/n) +(nAr/n)*log(nAr/n) + (nXe/n)*log(nXe/n))\n",
+ "dSmix = n*R*((nHe/n)*log(nHe/n) + (nNe/n)*log(nNe/n) +(nAr/n)*log(nAr/n) + (nXe/n)*log(nXe/n))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. free energy Change on mixing is %3.1e J'%(dGmix)\n",
+ "print 'Std. entropy Change on mixing is %4.1f J'%(dSmix)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. free energy Change on mixing is -2.8e+04 J\n",
+ "Std. entropy Change on mixing is -93.3 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.6, Page Number 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGfFe = 0.0 #Std. Gibbs energy of formation for Fe (S), kJ/mol\n",
+ "dGfH2O = -237.1 #Std. Gibbs energy of formation for Water (g), kJ/mol\n",
+ "dGfFe2O3 = -1015.4 #Std. Gibbs energy of formation for Fe2O3 (s), kJ/mol\n",
+ "dGfH2 = 0.0 #Std. Gibbs energy of formation for Hydrogen (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nFe, nH2, nFe2O3, nH2O = 3,-4,-1,4\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nFe*dGfFe + nH2O*dGfH2O + nFe2O3*dGfFe2O3 + nH2*dGfH2 \n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %4.2f kJ/mol'%(dGR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 67.00 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.7, Page Number 128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "dGR = 67.0 #Std. Gibbs energy of formation for reaction, kJ, from previous problem\n",
+ "dHfFe = 0.0 #Enthalpy of formation for Fe (S), kJ/mol\n",
+ "dHfH2O = -285.8 #Enthalpy of formation for Water (g), kJ/mol\n",
+ "dHfFe2O3 = -1118.4 #Enthalpy of formation for Fe2O3 (s), kJ/mol\n",
+ "dHfH2 = 0.0 #Enthalpy of formation for Hydrogen (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "T = 525. #Temperature in K\n",
+ "R = 8.314\n",
+ "nFe, nH2, nFe2O3, nH2O = 3,-4,-1,4\n",
+ "\n",
+ "#Calculations\n",
+ "dHR = nFe*dHfFe + nH2O*dHfH2O + nFe2O3*dHfFe2O3 + nH2*dHfH2 \n",
+ "dGR2 = T*(dGR*1e3/T0 + dHR*1e3*(1./T - 1./T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Enthalpy change for reactionat %4.1f is %4.2f kJ/mol'%(T, dHR)\n",
+ "print 'Std. Gibbs energy change for reactionat %4.1f is %4.0f kJ/mol'%(T, dGR2/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Enthalpy change for reactionat 525.0 is -24.80 kJ/mol\n",
+ "Std. Gibbs energy change for reactionat 525.0 is 137 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.8, Page Number 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfNO2 = 51.3 #Std. Gibbs energy of formation for NO2 (g), kJ/mol\n",
+ "dGfN2O4 = 99.8 #Std. Gibbs energy of formation for N2O4 (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "pNO2 = 0.350 #Partial pressure of NO2, bar\n",
+ "pN2O4 = 0.650 #Partial pressure of N2O4, bar\n",
+ "R = 8.314\n",
+ "nNO2, nN2O4 = -2, 1 #Stoichiomentric coeff of NO2 and N2O4 respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nN2O4*dGfN2O4*1e3 + nNO2*dGfNO2*1e3 + R*T0*log(pN2O4/(pNO2)**2)\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 1.337 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.9, Page Number 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCO2 = -394.4 #Std. Gibbs energy of formation for CO2 (g), kJ/mol\n",
+ "dGfH2 = 0.0 #Std. Gibbs energy of formation for H2 (g), kJ/mol\n",
+ "dGfCO = 237.1 #Std. Gibbs energy of formation for CO (g), kJ/mol\n",
+ "dGfH2O = 137.2 #Std. Gibbs energy of formation for H24 (l), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCO2, nH2, nCO, nH2O = 1,1,1,1 #Stoichiomentric coeff of CO2,H2,CO,H2O respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nCO2*dGfCO2 + nH2*dGfH2 + nCO*dGfCO + nH2O*dGfH2O\n",
+ "Kp = exp(-dGR*1e3/(R*T0))\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR/1e3)\n",
+ "print 'Equilibrium constant for reaction is %5.3f '%(Kp)\n",
+ "if Kp > 1: print 'Kp >> 1. hence, mixture will consists of product CO2 and H2'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is -0.020 kJ/mol\n",
+ "Equilibrium constant for reaction is 3323.254 \n",
+ "Kp >> 1. hence, mixture will consists of product CO2 and H2\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.11, Page Number 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCl2 = 0.0 #Std. Gibbs energy of formation for CO2 (g), kJ/mol\n",
+ "dGfCl = 105.7 #Std. Gibbs energy of formation for H2 (g), kJ/mol\n",
+ "dHfCl2 = 0.0 #Std. Gibbs energy of formation for CO (g), kJ/mol\n",
+ "dHfCl = 121.3 #Std. Gibbs energy of formation for H24 (l), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCl2, nCl= -1,2 #Stoichiomentric coeff of Cl2,Cl respectively in reaction\n",
+ "PbyP0 = 0.01\n",
+ "#Calculations\n",
+ "dGR = nCl*dGfCl + nCl2*dGfCl2 \n",
+ "dHR = nCl*dHfCl + nCl2*dHfCl2 \n",
+ "func = lambda T: exp(-dGR*1e3/(R*T0) - dHR*1e3*(1./T - 1./T0)/R)\n",
+ "Kp8 = func(800)\n",
+ "Kp15 = func(1500)\n",
+ "Kp20 = func(2000)\n",
+ "DDiss = lambda K: sqrt(K/(K+4*PbyP0))\n",
+ "alp8 = DDiss(Kp8)\n",
+ "alp15 = DDiss(Kp15)\n",
+ "alp20 = DDiss(Kp20)\n",
+ "\n",
+ "#Results \n",
+ "print 'Part A'\n",
+ "print 'Std. Gibbs energy change for reaction is %5.3f kJ/mol'%(dGR)\n",
+ "print 'Std. Enthalpy change for reaction is %5.3f kJ/mol'%(dHR)\n",
+ "print 'Equilibrium constants at 800, 1500, and 2000 K are %4.3e, %4.3e, and %4.3e'%(Kp8,Kp15,Kp20)\n",
+ "\n",
+ "print 'Part B'\n",
+ "print 'Degree of dissociation at 800, 1500, and 2000 K are %4.3e, %4.3e, and %4.3e'%(alp8,alp15,alp20)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part A\n",
+ "Std. Gibbs energy change for reaction is 211.400 kJ/mol\n",
+ "Std. Enthalpy change for reaction is 242.600 kJ/mol\n",
+ "Equilibrium constants at 800, 1500, and 2000 K are 4.223e-11, 1.042e-03, and 1.349e-01\n",
+ "Part B\n",
+ "Degree of dissociation at 800, 1500, and 2000 K are 3.249e-05, 1.593e-01, and 8.782e-01\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.12, Page Number 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCaCO3 = -1128.8 #Std. Gibbs energy of formation for CaCO3 (s), kJ/mol\n",
+ "dGfCaO = -603.3 #Std. Gibbs energy of formation for CaO (s), kJ/mol\n",
+ "dGfCO2 = -394.4 #Std. Gibbs energy of formation for O2 (g), kJ/mol\n",
+ "dHfCaCO3 = -1206.9 #Std. Enthalpy Change of formation for CaCO3 (s), kJ/mol\n",
+ "dHfCaO = -634.9 #Std. Enthalpy Change of formation for CaO (s), kJ/mol\n",
+ "dHfCO2 = -393.5 #Std. Enthalpy Change of formation for O2 (g), kJ/mol\n",
+ "T0 = 298.15 #Temperature in K\n",
+ "R = 8.314\n",
+ "nCaCO3, nCaO, nO2 = -1,1,1 #Stoichiomentric coeff of CaCO3, CaO, O2 respectively in reaction\n",
+ "\n",
+ "#Calculations\n",
+ "dGR = nCaO*dGfCaO + nO2*dGfCO2 + nCaCO3*dGfCaCO3\n",
+ "dHR = nCaO*dHfCaO + nO2*dHfCO2 + nCaCO3*dHfCaCO3\n",
+ "\n",
+ "func = lambda T: exp(-dGR*1e3/(R*T0) - dHR*1e3*(1./T - 1./T0)/R)\n",
+ "\n",
+ "Kp10 = func(1000)\n",
+ "Kp11 = func(1100)\n",
+ "Kp12 = func(1200)\n",
+ "\n",
+ "#Results \n",
+ "print 'Std. Gibbs energy change for reaction is %4.1f kJ/mol'%(dGR)\n",
+ "print 'Std. Enthalpy change for reaction is %4.1f kJ/mol'%(dHR)\n",
+ "print 'Equilibrium constants at 1000, 1100, and 1200 K are %4.4f, %4.3fe, and %4.3f'%(Kp10,Kp11,Kp12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. Gibbs energy change for reaction is 131.1 kJ/mol\n",
+ "Std. Enthalpy change for reaction is 178.5 kJ/mol\n",
+ "Equilibrium constants at 1000, 1100, and 1200 K are 0.0956, 0.673e, and 3.423\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.13, Page Number 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "dGfCG = 0.0 #Std. Gibbs energy of formation for CaCO3 (s), kJ/mol\n",
+ "dGfCD = 2.90 #Std. Gibbs energy of formation for CaO (s), kJ/mol\n",
+ "rhoG = 2.25e3 #Density of Graphite, kg/m3\n",
+ "rhoD = 3.52e3 #Density of dimond, kg/m3\n",
+ "T0 = 298.15 #Std. Temperature, K\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K) \n",
+ "P0 = 1.0 #Pressure, bar\n",
+ "M = 12.01 #Molceular wt of Carbon\n",
+ "#Calculations\n",
+ "P = P0*1e5 + dGfCD*1e3/((1./rhoG-1./rhoD)*M*1e-3)\n",
+ "\n",
+ "#Results \n",
+ "print 'Pressure at which graphite and dimond will be in equilibrium is %4.2e bar'%(P/1e5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure at which graphite and dimond will be in equilibrium is 1.51e+04 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.14, Page Number 143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "beta = 2.04e-4 #Thermal exapansion coefficient, /K\n",
+ "kapa = 45.9e-6 #Isothermal compressibility, /bar\n",
+ "T = 298.15 #Std. Temperature, K\n",
+ "R = 8.206e-2 #Ideal gas constant, atm.L/(mol.K) \n",
+ "T1 = 320.0 #Temperature, K\n",
+ "Pi = 1.0 #Initial Pressure, bar\n",
+ "V = 1.00 #Volume, m3\n",
+ "a = 1.35 #van der Waals constant a for nitrogen, atm.L2/mol2\n",
+ "\n",
+ "#Calculations\n",
+ "dUbydV = Pf = (beta*T1-kapa*P0)/kapa\n",
+ "dVT = V*kapa*(Pf-Pi)\n",
+ "dVbyV = dVT*100/V\n",
+ "Vm = Pi/(R*T1)\n",
+ "dUbydVm = a/(Vm**2)\n",
+ "\n",
+ "#Results \n",
+ "print 'dUbydV = %4.2e bar'%(dUbydV)\n",
+ "print 'dVbyV = %4.3f percent'%(dVbyV)\n",
+ "print 'dUbydVm = %4.0e atm'%(dUbydVm)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dUbydV = 1.42e+03 bar\n",
+ "dVbyV = 6.519 percent\n",
+ "dUbydVm = 9e+02 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.15, Page Number 144"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp, log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 1000.0 #mass of mercury, g\n",
+ "Pi, Ti = 1.00, 300.0 #Intial pressure and temperature, bar, K\n",
+ "Pf, Tf = 300., 600.0 #Final pressure and temperature, bar, K\n",
+ "rho = 13534. #Density of mercury, kg/m3\n",
+ "beta = 18.1e-4 #Thermal exapansion coefficient for Hg, /K \n",
+ "kapa = 3.91e-6 #Isothermal compressibility for Hg, /Pa\n",
+ "Cpm = 27.98 #Molar Specific heat at constant pressure, J/(mol.K) \n",
+ "M = 200.59 #Molecular wt of Hg, g/mol\n",
+ "\n",
+ "#Calculations\n",
+ "Vi = m*1e-3/rho\n",
+ "Vf = Vi*exp(-kapa*(Pf-Pi))\n",
+ "Ut = m*Cpm*(Tf-Ti)/M \n",
+ "Up = (beta*Ti/kapa-Pi)*1e5*(Vf-Vi) + (Vi-Vf+Vf*log(Vf/Vi))*1e5/kapa\n",
+ "dU = Ut + Up\n",
+ "Ht = m*Cpm*(Tf-Ti)/M\n",
+ "Hp = ((1 + beta*(Tf-Ti))*Vi*exp(-kapa*Pi)/kapa)*(exp(-kapa*Pi)-exp(-kapa*Pf))\n",
+ "dH = Ht + Hp\n",
+ "#Results\n",
+ "print 'Internal energy change is %6.2e J/mol in which \\ncontribution of temeprature dependent term %6.4f percent'%(dU,Ut*100/dH)\n",
+ "print 'Enthalpy change is %4.3e J/mol in which \\ncontribution of temeprature dependent term %4.1f percent'%(dH,Ht*100/dH)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Internal energy change is 4.06e+04 J/mol in which \n",
+ "contribution of temeprature dependent term 99.9999 percent\n",
+ "Enthalpy change is 4.185e+04 J/mol in which \n",
+ "contribution of temeprature dependent term 100.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.16, Page Number 145"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T = 300.0 #Temperature of Hg, K \n",
+ "beta = 18.1e-4 #Thermal exapansion coefficient for Hg, /K \n",
+ "kapa = 3.91e-6 #Isothermal compressibility for Hg, /Pa\n",
+ "M = 0.20059 #Molecular wt of Hg, kg/mol \n",
+ "rho = 13534 #Density of mercury, kg/m3\n",
+ "Cpm = 27.98 #Experimental Molar specif heat at const pressure for mercury, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = M/rho\n",
+ "DCpmCv = T*Vm*beta**2/kapa\n",
+ "Cvm = Cpm - DCpmCv\n",
+ "#Results\n",
+ "print 'Difference in molar specific heats \\nat constant volume and constant pressure %4.2e J/(mol.K)'%DCpmCv\n",
+ "print 'Molar Specific heat of Hg at const. volume is %4.2f J/(mol.K)'%Cvm"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in molar specific heats \n",
+ "at constant volume and constant pressure 3.73e-03 J/(mol.K)\n",
+ "Molar Specific heat of Hg at const. volume is 27.98 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 6.17, Page Number 147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "T = 298.15 #Std. Temperature, K \n",
+ "P = 1.0 #Initial Pressure, bar\n",
+ "Hm0, Sm0 = 0.0,154.8 #Std. molar enthalpy and entropy of Ar(g), kJ, mol, K units\n",
+ "Sm0H2, Sm0O2 = 130.7,205.2 #Std. molar entropy of O2 and H2 (g), kJ/(mol.K)\n",
+ "dGfH2O = -237.1 #Gibbs energy of formation for H2O(l), kJ/mol \n",
+ "nH2, nO2 = 1, 1./2 #Stoichiomentric coefficients for H2 and O2 in water formation reaction \n",
+ "\n",
+ "#Calculations\n",
+ "Gm0 = Hm0 - T*Sm0\n",
+ "dGmH2O = dGfH2O*1000 - T*(nH2*Sm0H2 + nO2*Sm0O2)\n",
+ "#Results\n",
+ "print 'Molar Gibbs energy of Ar %4.3f kJ/mol'%(Gm0/1e3)\n",
+ "print 'Molar Gibbs energy of Water %4.3f kJ/mol'%(dGmH2O/1e3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar Gibbs energy of Ar -46.154 kJ/mol\n",
+ "Molar Gibbs energy of Water -306.658 kJ/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07.ipynb
new file mode 100755
index 00000000..d8ce946b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07.ipynb
@@ -0,0 +1,72 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b92f3dd9a653fad8ff6778b3bdb8771b55861aa679332e3055f634cfd8668cd9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07: Properties of Real Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 7.3, Page Number 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "m = 1.0 #Mass of Methane, kg\n",
+ "T = 230 #Temeprature of Methane, K\n",
+ "P = 68.0 #Pressure, bar \n",
+ "Tc = 190.56 #Critical Temeprature of Methane\n",
+ "Pc = 45.99 #Critical Pressure of Methane\n",
+ "R = 0.08314 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "M = 16.04 #Molecular wt of Methane\n",
+ "\n",
+ "#Calcualtions\n",
+ "Tr = T/Tc\n",
+ "Pr = P/Pc\n",
+ "z = 0.63 #Methane compressibility factor\n",
+ "n = m*1e3/M\n",
+ "V = z*n*R*T/P\n",
+ "Vig = n*R*T/P\n",
+ "DV = (V - Vig)/V\n",
+ "\n",
+ "#Results\n",
+ "print '(V-Videal) %4.2f L'%(V-Vig)\n",
+ "print 'Percentage error %5.2f'%(DV*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(V-Videal) -6.49 L\n",
+ "Percentage error -58.73\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_1.ipynb
new file mode 100755
index 00000000..d8ce946b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_1.ipynb
@@ -0,0 +1,72 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b92f3dd9a653fad8ff6778b3bdb8771b55861aa679332e3055f634cfd8668cd9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07: Properties of Real Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 7.3, Page Number 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "m = 1.0 #Mass of Methane, kg\n",
+ "T = 230 #Temeprature of Methane, K\n",
+ "P = 68.0 #Pressure, bar \n",
+ "Tc = 190.56 #Critical Temeprature of Methane\n",
+ "Pc = 45.99 #Critical Pressure of Methane\n",
+ "R = 0.08314 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "M = 16.04 #Molecular wt of Methane\n",
+ "\n",
+ "#Calcualtions\n",
+ "Tr = T/Tc\n",
+ "Pr = P/Pc\n",
+ "z = 0.63 #Methane compressibility factor\n",
+ "n = m*1e3/M\n",
+ "V = z*n*R*T/P\n",
+ "Vig = n*R*T/P\n",
+ "DV = (V - Vig)/V\n",
+ "\n",
+ "#Results\n",
+ "print '(V-Videal) %4.2f L'%(V-Vig)\n",
+ "print 'Percentage error %5.2f'%(DV*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(V-Videal) -6.49 L\n",
+ "Percentage error -58.73\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_2.ipynb
new file mode 100755
index 00000000..d8ce946b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter07_2.ipynb
@@ -0,0 +1,72 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b92f3dd9a653fad8ff6778b3bdb8771b55861aa679332e3055f634cfd8668cd9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07: Properties of Real Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 7.3, Page Number 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "m = 1.0 #Mass of Methane, kg\n",
+ "T = 230 #Temeprature of Methane, K\n",
+ "P = 68.0 #Pressure, bar \n",
+ "Tc = 190.56 #Critical Temeprature of Methane\n",
+ "Pc = 45.99 #Critical Pressure of Methane\n",
+ "R = 0.08314 #Ideal Gas Constant, L.bar/(mol.K)\n",
+ "M = 16.04 #Molecular wt of Methane\n",
+ "\n",
+ "#Calcualtions\n",
+ "Tr = T/Tc\n",
+ "Pr = P/Pc\n",
+ "z = 0.63 #Methane compressibility factor\n",
+ "n = m*1e3/M\n",
+ "V = z*n*R*T/P\n",
+ "Vig = n*R*T/P\n",
+ "DV = (V - Vig)/V\n",
+ "\n",
+ "#Results\n",
+ "print '(V-Videal) %4.2f L'%(V-Vig)\n",
+ "print 'Percentage error %5.2f'%(DV*100)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(V-Videal) -6.49 L\n",
+ "Percentage error -58.73\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08.ipynb
new file mode 100755
index 00000000..3725247b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08.ipynb
@@ -0,0 +1,157 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f7a31615b3beb83b8b17b3507af2b7505643c9385577352b3394c24d378e5d0b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08: Phase Diagrams and the Relative Stability of Solids, Liquids, and Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.2, Page Number 186 Check"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "nbp = 353.24 #normal boiling point of Benzene, K\n",
+ "pv20 = 1.19e4 #Vapor pressure of benzene at 20\u00b0C, Pa\n",
+ "DHf = 9.95 #Latent heat of fusion, kJ/mol\n",
+ "pv443 = 137 #Vapor pressure of benzene at -44.3\u00b0C, Pa\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "Pf = 101325 #Pa\n",
+ "T20 = 293.15\n",
+ "Po = 1\n",
+ "Pl = 10000\n",
+ "Ts = -44.3\n",
+ "#Calculations\n",
+ "Ts = Ts + 273.15\n",
+ "DHf = DHf*1e3\n",
+ "DHv = -R*log(Pf/pv20)/(1/nbp-1/T20)\n",
+ "DSv = DHv/nbp\n",
+ "Ttp = -DHf/(R*(log(Pl/Po)-log(pv443/Po)-(DHv+DHf)/(R*Ts) + DHv/(R*T20)))\n",
+ "\n",
+ "#Results\n",
+ "print 'Latent heat of vaporization of benzene at 20\u00b0C %5.2f J/mol'%DHv\n",
+ "print 'Entropy Change of vaporization of benzene at 20\u00b0C %3.1f J/mol'%DSv\n",
+ "print 'Triple point of benzene %4.1f K'%Ttp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of vaporization of benzene at 20\u00b0C 30686.36 J/mol\n",
+ "Entropy Change of vaporization of benzene at 20\u00b0C 86.9 J/mol\n",
+ "Triple point of benzene 267.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.3, Page Number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos, pi\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "gama = 71.99e-3 #Surface tension of water, N/m\n",
+ "r = 1.2e-4 #Radius of hemisphere, m\n",
+ "theta = 0.0 #Contact angle, rad\n",
+ "\n",
+ "#Calculations\n",
+ "DP = 2*gama*cos(theta)/r\n",
+ "F = DP*pi*r**2\n",
+ "\n",
+ "#Results\n",
+ "print 'Force exerted by one leg %5.3e N'%F"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force exerted by one leg 5.428e-05 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.4, Page Number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "gama = 71.99e-3 #Surface tension of water, N/m\n",
+ "r = 2e-5 #Radius of xylem, m\n",
+ "theta = 0.0 #Contact angle, rad\n",
+ "rho = 997.0 #Density of water, kg/m3\n",
+ "g = 9.81 #gravitational acceleration, m/s2\n",
+ "H = 100 #Height at top of redwood tree, m\n",
+ "\n",
+ "#Calculations\n",
+ "h = 2*gama/(rho*g*r*cos(theta))\n",
+ "\n",
+ "#Results\n",
+ "print 'Height to which water can rise by capillary action is %3.2f m'%h\n",
+ "print 'This is very less than %4.1f n, hence water can not reach top of tree'%H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height to which water can rise by capillary action is 0.74 m\n",
+ "This is very less than 100.0 n, hence water can not reach top of tree\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_1.ipynb
new file mode 100755
index 00000000..3725247b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_1.ipynb
@@ -0,0 +1,157 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f7a31615b3beb83b8b17b3507af2b7505643c9385577352b3394c24d378e5d0b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08: Phase Diagrams and the Relative Stability of Solids, Liquids, and Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.2, Page Number 186 Check"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "nbp = 353.24 #normal boiling point of Benzene, K\n",
+ "pv20 = 1.19e4 #Vapor pressure of benzene at 20\u00b0C, Pa\n",
+ "DHf = 9.95 #Latent heat of fusion, kJ/mol\n",
+ "pv443 = 137 #Vapor pressure of benzene at -44.3\u00b0C, Pa\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "Pf = 101325 #Pa\n",
+ "T20 = 293.15\n",
+ "Po = 1\n",
+ "Pl = 10000\n",
+ "Ts = -44.3\n",
+ "#Calculations\n",
+ "Ts = Ts + 273.15\n",
+ "DHf = DHf*1e3\n",
+ "DHv = -R*log(Pf/pv20)/(1/nbp-1/T20)\n",
+ "DSv = DHv/nbp\n",
+ "Ttp = -DHf/(R*(log(Pl/Po)-log(pv443/Po)-(DHv+DHf)/(R*Ts) + DHv/(R*T20)))\n",
+ "\n",
+ "#Results\n",
+ "print 'Latent heat of vaporization of benzene at 20\u00b0C %5.2f J/mol'%DHv\n",
+ "print 'Entropy Change of vaporization of benzene at 20\u00b0C %3.1f J/mol'%DSv\n",
+ "print 'Triple point of benzene %4.1f K'%Ttp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of vaporization of benzene at 20\u00b0C 30686.36 J/mol\n",
+ "Entropy Change of vaporization of benzene at 20\u00b0C 86.9 J/mol\n",
+ "Triple point of benzene 267.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.3, Page Number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos, pi\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "gama = 71.99e-3 #Surface tension of water, N/m\n",
+ "r = 1.2e-4 #Radius of hemisphere, m\n",
+ "theta = 0.0 #Contact angle, rad\n",
+ "\n",
+ "#Calculations\n",
+ "DP = 2*gama*cos(theta)/r\n",
+ "F = DP*pi*r**2\n",
+ "\n",
+ "#Results\n",
+ "print 'Force exerted by one leg %5.3e N'%F"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force exerted by one leg 5.428e-05 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.4, Page Number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "gama = 71.99e-3 #Surface tension of water, N/m\n",
+ "r = 2e-5 #Radius of xylem, m\n",
+ "theta = 0.0 #Contact angle, rad\n",
+ "rho = 997.0 #Density of water, kg/m3\n",
+ "g = 9.81 #gravitational acceleration, m/s2\n",
+ "H = 100 #Height at top of redwood tree, m\n",
+ "\n",
+ "#Calculations\n",
+ "h = 2*gama/(rho*g*r*cos(theta))\n",
+ "\n",
+ "#Results\n",
+ "print 'Height to which water can rise by capillary action is %3.2f m'%h\n",
+ "print 'This is very less than %4.1f n, hence water can not reach top of tree'%H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height to which water can rise by capillary action is 0.74 m\n",
+ "This is very less than 100.0 n, hence water can not reach top of tree\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_2.ipynb
new file mode 100755
index 00000000..920a2998
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter08_2.ipynb
@@ -0,0 +1,167 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7cd73e591684a9b750091e874ca08a72b326eee20de62e33004e879fa5300f72"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08: Phase Diagrams and the Relative Stability of Solids, Liquids, and Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.2, Page Number 186 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, exp\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "Tn = 353.24 #normal boiling point of Benzene, K\n",
+ "pi = 1.19e4 #Vapor pressure of benzene at 20\u00b0C, Pa\n",
+ "DHf = 9.95 #Latent heat of fusion, kJ/mol\n",
+ "pv443 = 137. #Vapor pressure of benzene at -44.3\u00b0C, Pa\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "Pf = 101325 #Std. atmospheric pressure, Pa\n",
+ "T20 = 293.15 #Temperature in K\n",
+ "P0 = 1.\n",
+ "Pl = 10000.\n",
+ "Ts = -44.3 #Temperature of solid benzene, \u00b0C\n",
+ "\n",
+ "#Calculations\n",
+ "Ts = Ts + 273.15\n",
+ "#Part a\n",
+ "\n",
+ "DHv = -(R*log(Pf/pi))/(1./Tn-1./T20)\n",
+ "#Part b\n",
+ "\n",
+ "DSv = DHv/Tn\n",
+ "DHf = DHf*1e3\n",
+ "#Part c\n",
+ "\n",
+ "Ttp = -DHf/(R*(log(Pl/P0)-log(pv443/P0)-(DHv+DHf)/(R*Ts)+DHv/(R*T20)))\n",
+ "Ptp = exp(-DHv/R*(1./Ttp-1./Tn))*101325\n",
+ "\n",
+ "#Results\n",
+ "print 'Latent heat of vaporization of benzene at 20\u00b0C %4.1f kJ/mol'%(DHv/1000)\n",
+ "print 'Entropy Change of vaporization of benzene at 20\u00b0C %3.1f J/mol'%DSv\n",
+ "print 'Triple point temperature = %4.1f K for benzene'%Ttp\n",
+ "print 'Triple point pressure = %4.2e Pa for benzene'%Ptp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of vaporization of benzene at 20\u00b0C 30.7 kJ/mol\n",
+ "Entropy Change of vaporization of benzene at 20\u00b0C 86.9 J/mol\n",
+ "Triple point temperature = 267.3 K for benzene\n",
+ "Triple point pressure = 3.53e+03 Pa for benzene\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.3, Page Number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos, pi\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "gama = 71.99e-3 #Surface tension of water, N/m\n",
+ "r = 1.2e-4 #Radius of hemisphere, m\n",
+ "theta = 0.0 #Contact angle, rad\n",
+ "\n",
+ "#Calculations\n",
+ "DP = 2*gama*cos(theta)/r\n",
+ "F = DP*pi*r**2\n",
+ "\n",
+ "#Results\n",
+ "print 'Force exerted by one leg %5.3e N'%F"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Force exerted by one leg 5.428e-05 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 8.4, Page Number 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import cos\n",
+ "\n",
+ "#Varialble Declaration\n",
+ "gama = 71.99e-3 #Surface tension of water, N/m\n",
+ "r = 2e-5 #Radius of xylem, m\n",
+ "theta = 0.0 #Contact angle, rad\n",
+ "rho = 997.0 #Density of water, kg/m3\n",
+ "g = 9.81 #gravitational acceleration, m/s2\n",
+ "H = 100 #Height at top of redwood tree, m\n",
+ "\n",
+ "#Calculations\n",
+ "h = 2*gama/(rho*g*r*cos(theta))\n",
+ "\n",
+ "#Results\n",
+ "print 'Height to which water can rise by capillary action is %3.2f m'%h\n",
+ "print 'This is very less than %4.1f n, hence water can not reach top of tree'%H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height to which water can rise by capillary action is 0.74 m\n",
+ "This is very less than 100.0 n, hence water can not reach top of tree\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb
new file mode 100755
index 00000000..3141af69
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09.ipynb
@@ -0,0 +1,545 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c2f0eb9f813e96ecfb0ebcea9c89faad6a2b8ee530cc39d385b0a4ab04407ef5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09: Ideal and Real Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.2, Page Number 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "P = 1.0 #Pressure, bar\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "xb = nb/n\n",
+ "xt = 1. - xb\n",
+ "dGmix = n*R*T*(xb*log(xb)+xt*log(xt))\n",
+ "dSmix = n*R*(xb*log(xb)+xt*log(xt))\n",
+ "\n",
+ "#Results\n",
+ "print 'Gibbs energy change of mixing is %4.3e J'%dGmix\n",
+ "print 'Gibbs energy change of mixing is < 0, hence the mixing is spontaneous'\n",
+ "print 'Entropy change of mixing is %4.2f J/K'%dSmix"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gibbs energy change of mixing is -1.371e+04 J\n",
+ "Gibbs energy change of mixing is < 0, hence the mixing is spontaneous\n",
+ "Entropy change of mixing is -45.99 J/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.3, Page Number 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "P0b = 96.4 #Vapor pressure of Benzene, torr\n",
+ "P0t = 28.9 #Vapor pressure of Toluene, torr\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "xb = nb/n\n",
+ "xt = 1. - xb\n",
+ "P = xb*P0b + xt*P0t\n",
+ "y = (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n",
+ "yt = 1.-yb\n",
+ "\n",
+ "#Results\n",
+ "print 'Total pressure of the vapor is %4.1f torr'%P\n",
+ "print 'Benzene fraction in vapor is %4.3f '%yb\n",
+ "print 'Toulene fraction in vapor is %4.3f '%yt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure of the vapor is 69.8 torr\n",
+ "Benzene fraction in vapor is 0.837 \n",
+ "Toulene fraction in vapor is 0.163 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.4, Page Number 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "P0b = 96.4 #Vapor pressure of Benzene, torr\n",
+ "P0t = 28.9 #Vapor pressure of Toluene, torr\n",
+ "nv = 1.5 #moles vaporized, mol\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "nl = n - nv\n",
+ "zb = nb/n\n",
+ "\n",
+ "x,y, P = symbols('x y P')\n",
+ "e1 = nv*(y-zb)-nl*(zb-x)\n",
+ "print 'Mass Balance:', e1\n",
+ "e2 = P - (x*P0b + (1-x)*P0t)\n",
+ "print 'Pressure and x:',e2\n",
+ "e3 = y - (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n",
+ "print 'Pressure and y:', e3\n",
+ "equations = [e1,e2,e3]\n",
+ "sol = solve(equations)\n",
+ "\n",
+ "#Results\n",
+ "for i in sol:\n",
+ " if ((i[x] > 0.0 and i[x] <1.0) and (i[P] > 0.0) and (i[y]>zb and i[y]<1.0)):\n",
+ " print 'Pressure is %4.2f torr' %i[P]\n",
+ " print 'Mole fraction of benzene in liquid phase %4.3f' %i[x]\n",
+ " print 'Mole fraction of benzene in vapor phase %4.3f' %i[y]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass Balance: 6.75*x + 1.5*y - 5.0\n",
+ "Pressure and x: P - 67.5*x - 28.9\n",
+ "Pressure and y: y - 0.0148148148148148*(96.4*P - 2785.96)/P\n",
+ "Pressure is 66.75 torr"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Mole fraction of benzene in liquid phase 0.561\n",
+ "Mole fraction of benzene in vapor phase 0.810\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.6, Page Number 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 4.50 #Mass of substance dissolved, g\n",
+ "ms = 125.0 #Mass of slovent (CCl4), g\n",
+ "TbE = 0.65 #Boiling point elevation, \u00b0C\n",
+ "Kf, Kb = 30.0, 4.95 #Constants for freezing point elevation \n",
+ " # and boiling point depression for CCl4, K kg/mol\n",
+ "Msolvent = 153.8 #Molecualr wt of solvent, g/mol\n",
+ "#Calculations\n",
+ "DTf = -Kf*TbE/Kb\n",
+ "Msolute = Kb*m/(ms*1e-3*TbE)\n",
+ "nsolute = m/Msolute\n",
+ "nsolvent = ms/Msolvent \n",
+ "x = 1.0 - nsolute/(nsolute + nsolvent)\n",
+ "\n",
+ "#Results\n",
+ "print 'Freezing point depression %5.2f K'%DTf\n",
+ "print 'Molecualr wt of solute %4.1f g/mol'%Msolute\n",
+ "print 'Vapor pressure of solvent is reduced by a factor of %4.3f'%x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Freezing point depression -3.94 K\n",
+ "Molecualr wt of solute 274.2 g/mol\n",
+ "Vapor pressure of solvent is reduced by a factor of 0.980\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.7, Page Number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "csolute = 0.500 #Concentration of solute, g/L\n",
+ "R = 8.206e-2 #Gas constant L.atm/(mol.K)\n",
+ "T = 298.15 #Temperature of the solution, K\n",
+ "\n",
+ "#Calculations\n",
+ "pii = csolute*R*T\n",
+ "\n",
+ "#Results\n",
+ "print 'Osmotic pressure %4.2f atm'%pii\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure 12.23 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.8, Page Number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n",
+ "pCS2 = 358.3 #Partial pressure of CS2, torr\n",
+ "p0CS2 = 512.3 #Total pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "alpha = pCS2/p0CS2\n",
+ "gama = alpha/xCS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity of CS2 %5.4f atm'%alpha\n",
+ "print 'Activity coefficinet of CS2 %5.4f atm'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity of CS2 0.6994 atm\n",
+ "Activity coefficinet of CS2 1.9971 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.9, Page Number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n",
+ "pCS2 = 358.3 #Partial pressure of CS2, torr\n",
+ "kHCS2 = 2010. #Total pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "alpha = pCS2/kHCS2\n",
+ "gama = alpha/xCS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity of CS2 %5.4f atm'%alpha\n",
+ "print 'Activity coefficinet of CS2 %5.4f atm'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity of CS2 0.1783 atm\n",
+ "Activity coefficinet of CS2 0.5090 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.10, Page Number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "rho = 789.9 #Density of acetone, g/L\n",
+ "n = 1.0 #moles of acetone, mol\n",
+ "M = 58.08 #Molecular wt of acetone, g/mol\n",
+ "kHacetone = 1950 #Henrys law constant, torr\n",
+ "#Calculations\n",
+ "H = n*M*kHacetone/rho\n",
+ "\n",
+ "#Results\n",
+ "print 'Henrys constant = %5.2f torr'%H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Henrys constant = 143.38 torr\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.11, Page Number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 0.5 #Mass of water, kg\n",
+ "ms = 24.0 #Mass of solute, g\n",
+ "Ms = 241.0 #Molecular wt of solute, g/mol\n",
+ "Tfd = 0.359 #Freezinf point depression, \u00b0C or K\n",
+ "kf = 1.86 #Constants for freezing point depression for water, K kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "msolute = ms/(Ms*m)\n",
+ "gama = Tfd/(kf*msolute)\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity coefficient = %4.3f'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity coefficient = 0.969\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.12, Page Number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 70.0 #Mass of human body, kg\n",
+ "V = 5.00 #Volume of blood, L\n",
+ "HN2 = 9.04e4 #Henry law constant for N2 solubility in blood, bar\n",
+ "T = 298.0 #Temperature, K\n",
+ "rho = 1.00 #density of blood, kg/L\n",
+ "Mw = 18.02 #Molecualr wt of water, g/mol\n",
+ "X = 80 #Percent of N2 at sea level\n",
+ "p1, p2 = 1.0, 50.0 #Pressures, bar\n",
+ "R = 8.314e-2 #Ideal Gas constant, L.bar/(mol.K)\n",
+ "#Calculations\n",
+ "nN21 = (V*rho*1e3/Mw)*(p1*X/100)/HN2\n",
+ "nN22 = (V*rho*1e3/Mw)*(p2*X/100)/HN2\n",
+ "V = (nN22-nN21)*R*T/p1\n",
+ "#Results\n",
+ "print 'Number of moles of nitrogen in blood at 1 and 50 bar are %3.2e,%3.3f mol'%(nN21,nN22)\n",
+ "print 'Volume of nitrogen released from blood at reduced pressure %4.3f L'%V"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of nitrogen in blood at 1 and 50 bar are 2.46e-03,0.123 mol\n",
+ "Volume of nitrogen released from blood at reduced pressure 2.981 L\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.14, Page Number 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg, divide\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable Declaration\n",
+ "cCB = array([1e-6,2e-6,3e-6,5e-6,10e-6])\n",
+ "nu = array([0.006,0.012,0.018,0.028,0.052])\n",
+ "y = nu/cCB\n",
+ "print y\n",
+ "xlim(0.0, 0.06)\n",
+ "ylim(5000,6300)\n",
+ "#Calculations\n",
+ "A = array([ nu, ones(size(nu))])\n",
+ "print A\n",
+ "# linearly generated sequence\n",
+ "\n",
+ "w = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n",
+ "print 'slope %8.1f'%w[0]\n",
+ "print 'Intercept %8.1f' %w[1]\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = w[0]*nu+w[1] # regression line\n",
+ " \n",
+ "#Results\n",
+ "plot(nu,line,'r-',nu,y,'o')\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[ 6000. 6000. 6000. 5600. 5200.]\n",
+ "[[ 0.006 0.012 0.018 0.028 0.052]\n",
+ " [ 1. 1. 1. 1. 1. ]]"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "slope -19188.2\n",
+ "Intercept 6205.2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x59f38d0>"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_1.ipynb
new file mode 100755
index 00000000..fab68570
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_1.ipynb
@@ -0,0 +1,537 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:046710f7ffcadc799ac5e6b952be69b28c410bd2f124592b0fc1c1a580da7ec0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09: Ideal and Real Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.2, Page Number 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "P = 1.0 #Pressure, bar\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "xb = nb/n\n",
+ "xt = 1. - xb\n",
+ "dGmix = n*R*T*(xb*log(xb)+xt*log(xt))\n",
+ "dSmix = n*R*(xb*log(xb)+xt*log(xt))\n",
+ "\n",
+ "#Results\n",
+ "print 'Gibbs energy change of mixing is %4.3e J'%dGmix\n",
+ "print 'Gibbs energy change of mixing is < 0, hence the mixing is spontaneous'\n",
+ "print 'Entropy change of mixing is %4.2f J/K'%dSmix"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gibbs energy change of mixing is -1.371e+04 J\n",
+ "Gibbs energy change of mixing is < 0, hence the mixing is spontaneous\n",
+ "Entropy change of mixing is -45.99 J/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.3, Page Number 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "P0b = 96.4 #Vapor pressure of Benzene, torr\n",
+ "P0t = 28.9 #Vapor pressure of Toluene, torr\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "xb = nb/n\n",
+ "xt = 1. - xb\n",
+ "P = xb*P0b + xt*P0t\n",
+ "y = (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n",
+ "yt = 1.-yb\n",
+ "\n",
+ "#Results\n",
+ "print 'Total pressure of the vapor is %4.1f torr'%P\n",
+ "print 'Benzene fraction in vapor is %4.3f '%yb\n",
+ "print 'Toulene fraction in vapor is %4.3f '%yt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure of the vapor is 69.8 torr\n",
+ "Benzene fraction in vapor is 0.837 \n",
+ "Toulene fraction in vapor is 0.163 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.4, Page Number 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "P0b = 96.4 #Vapor pressure of Benzene, torr\n",
+ "P0t = 28.9 #Vapor pressure of Toluene, torr\n",
+ "nv = 1.5 #moles vaporized, mol\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "nl = n - nv\n",
+ "zb = nb/n\n",
+ "\n",
+ "x,y, P = symbols('x y P')\n",
+ "e1 = nv*(y-zb)-nl*(zb-x)\n",
+ "print 'Mass Balance:', e1\n",
+ "e2 = P - (x*P0b + (1-x)*P0t)\n",
+ "print 'Pressure and x:',e2\n",
+ "e3 = y - (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n",
+ "print 'Pressure and y:', e3\n",
+ "equations = [e1,e2,e3]\n",
+ "sol = solve(equations)\n",
+ "\n",
+ "#Results\n",
+ "for i in sol:\n",
+ " if ((i[x] > 0.0 and i[x] <1.0) and (i[P] > 0.0) and (i[y]>zb and i[y]<1.0)):\n",
+ " print 'Pressure is %4.2f torr' %i[P]\n",
+ " print 'Mole fraction of benzene in liquid phase %4.3f' %i[x]\n",
+ " print 'Mole fraction of benzene in vapor phase %4.3f' %i[y]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass Balance: 6.75*x + 1.5*y - 5.0\n",
+ "Pressure and x: P - 67.5*x - 28.9\n",
+ "Pressure and y: y - 0.0148148148148148*(96.4*P - 2785.96)/P\n",
+ "Pressure is 66.75 torr"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Mole fraction of benzene in liquid phase 0.561\n",
+ "Mole fraction of benzene in vapor phase 0.810\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.6, Page Number 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 4.50 #Mass of substance dissolved, g\n",
+ "ms = 125.0 #Mass of slovent (CCl4), g\n",
+ "TbE = 0.65 #Boiling point elevation, \u00b0C\n",
+ "Kf, Kb = 30.0, 4.95 #Constants for freezing point elevation \n",
+ " # and boiling point depression for CCl4, K kg/mol\n",
+ "Msolvent = 153.8 #Molecualr wt of solvent, g/mol\n",
+ "#Calculations\n",
+ "DTf = -Kf*TbE/Kb\n",
+ "Msolute = Kb*m/(ms*1e-3*TbE)\n",
+ "nsolute = m/Msolute\n",
+ "nsolvent = ms/Msolvent \n",
+ "x = 1.0 - nsolute/(nsolute + nsolvent)\n",
+ "\n",
+ "#Results\n",
+ "print 'Freezing point depression %5.2f K'%DTf\n",
+ "print 'Molecualr wt of solute %4.1f g/mol'%Msolute\n",
+ "print 'Vapor pressure of solvent is reduced by a factor of %4.3f'%x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Freezing point depression -3.94 K\n",
+ "Molecualr wt of solute 274.2 g/mol\n",
+ "Vapor pressure of solvent is reduced by a factor of 0.980\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.7, Page Number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "csolute = 0.500 #Concentration of solute, g/L\n",
+ "R = 8.206e-2 #Gas constant L.atm/(mol.K)\n",
+ "T = 298.15 #Temperature of the solution, K\n",
+ "\n",
+ "#Calculations\n",
+ "pii = csolute*R*T\n",
+ "\n",
+ "#Results\n",
+ "print 'Osmotic pressure %4.2f atm'%pii\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure 12.23 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.8, Page Number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n",
+ "pCS2 = 358.3 #Partial pressure of CS2, torr\n",
+ "p0CS2 = 512.3 #Total pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "alpha = pCS2/p0CS2\n",
+ "gama = alpha/xCS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity of CS2 %5.4f atm'%alpha\n",
+ "print 'Activity coefficinet of CS2 %5.4f atm'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity of CS2 0.6994 atm\n",
+ "Activity coefficinet of CS2 1.9971 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.9, Page Number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n",
+ "pCS2 = 358.3 #Partial pressure of CS2, torr\n",
+ "kHCS2 = 2010. #Total pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "alpha = pCS2/kHCS2\n",
+ "gama = alpha/xCS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity of CS2 %5.4f atm'%alpha\n",
+ "print 'Activity coefficinet of CS2 %5.4f atm'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity of CS2 0.1783 atm\n",
+ "Activity coefficinet of CS2 0.5090 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.10, Page Number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "rho = 789.9 #Density of acetone, g/L\n",
+ "n = 1.0 #moles of acetone, mol\n",
+ "M = 58.08 #Molecular wt of acetone, g/mol\n",
+ "kHacetone = 1950 #Henrys law constant, torr\n",
+ "#Calculations\n",
+ "H = n*M*kHacetone/rho\n",
+ "\n",
+ "#Results\n",
+ "print 'Henrys constant = %5.2f torr'%H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Henrys constant = 143.38 torr\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.11, Page Number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 0.5 #Mass of water, kg\n",
+ "ms = 24.0 #Mass of solute, g\n",
+ "Ms = 241.0 #Molecular wt of solute, g/mol\n",
+ "Tfd = 0.359 #Freezinf point depression, \u00b0C or K\n",
+ "kf = 1.86 #Constants for freezing point depression for water, K kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "msolute = ms/(Ms*m)\n",
+ "gama = Tfd/(kf*msolute)\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity coefficient = %4.3f'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity coefficient = 0.969\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.12, Page Number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 70.0 #Mass of human body, kg\n",
+ "V = 5.00 #Volume of blood, L\n",
+ "HN2 = 9.04e4 #Henry law constant for N2 solubility in blood, bar\n",
+ "T = 298.0 #Temperature, K\n",
+ "rho = 1.00 #density of blood, kg/L\n",
+ "Mw = 18.02 #Molecualr wt of water, g/mol\n",
+ "X = 80 #Percent of N2 at sea level\n",
+ "p1, p2 = 1.0, 50.0 #Pressures, bar\n",
+ "R = 8.314e-2 #Ideal Gas constant, L.bar/(mol.K)\n",
+ "#Calculations\n",
+ "nN21 = (V*rho*1e3/Mw)*(p1*X/100)/HN2\n",
+ "nN22 = (V*rho*1e3/Mw)*(p2*X/100)/HN2\n",
+ "V = (nN22-nN21)*R*T/p1\n",
+ "#Results\n",
+ "print 'Number of moles of nitrogen in blood at 1 and 50 bar are %3.2e,%3.3f mol'%(nN21,nN22)\n",
+ "print 'Volume of nitrogen released from blood at reduced pressure %4.3f L'%V"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of nitrogen in blood at 1 and 50 bar are 2.46e-03,0.123 mol\n",
+ "Volume of nitrogen released from blood at reduced pressure 2.981 L\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.14, Page Number 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg, divide\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable Declaration\n",
+ "cCB = array([1e-6,2e-6,3e-6,5e-6,10e-6])\n",
+ "nu = array([0.006,0.012,0.018,0.028,0.052])\n",
+ "y = nu/cCB\n",
+ "print y\n",
+ "xlim(0.0, 0.06)\n",
+ "ylim(5000,6300)\n",
+ "#Calculations\n",
+ "A = array([ nu, ones(size(nu))])\n",
+ "print A\n",
+ "# linearly generated sequence\n",
+ "\n",
+ "w = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n",
+ "print 'slope %8.1f'%w[0]\n",
+ "print 'Intercept %8.1f' %w[1]\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = w[0]*nu+w[1] # regression line\n",
+ " \n",
+ "#Results\n",
+ "plot(nu,line,'r-',nu,y,'o')\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[ 6000. 6000. 6000. 5600. 5200.]\n",
+ "[[ 0.006 0.012 0.018 0.028 0.052]\n",
+ " [ 1. 1. 1. 1. 1. ]]"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "slope -19188.2\n",
+ "Intercept 6205.2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x59f38d0>"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_2.ipynb
new file mode 100755
index 00000000..263d750b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter09_2.ipynb
@@ -0,0 +1,540 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ada203a80b82700a1d56c68f95bd6837a954d4e31eab856fecd94550e07ac6e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09: Ideal and Real Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.2, Page Number 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "P = 1.0 #Pressure, bar\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "xb = nb/n\n",
+ "xt = 1. - xb\n",
+ "dGmix = n*R*T*(xb*log(xb)+xt*log(xt))\n",
+ "dSmix = -n*R*(xb*log(xb)+xt*log(xt))\n",
+ "\n",
+ "#Results\n",
+ "print 'Gibbs energy change of mixing is %4.3e J'%dGmix\n",
+ "print 'Gibbs energy change of mixing is < 0, hence the mixing is spontaneous'\n",
+ "print 'Entropy change of mixing is %4.2f J/K'%dSmix"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gibbs energy change of mixing is -1.371e+04 J\n",
+ "Gibbs energy change of mixing is < 0, hence the mixing is spontaneous\n",
+ "Entropy change of mixing is 45.99 J/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.3, Page Number 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "P0b = 96.4 #Vapor pressure of Benzene, torr\n",
+ "P0t = 28.9 #Vapor pressure of Toluene, torr\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "xb = nb/n\n",
+ "xt = 1. - xb\n",
+ "P = xb*P0b + xt*P0t\n",
+ "y = (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n",
+ "yt = 1.-yb\n",
+ "\n",
+ "#Results\n",
+ "print 'Total pressure of the vapor is %4.1f torr'%P\n",
+ "print 'Benzene fraction in vapor is %4.3f '%yb\n",
+ "print 'Toulene fraction in vapor is %4.3f '%yt"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure of the vapor is 69.8 torr\n",
+ "Benzene fraction in vapor is 0.837 \n",
+ "Toulene fraction in vapor is 0.163 \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.4, Page Number 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "#Variable Declaration\n",
+ "nb = 5.00 #Number of moles of Benzene, mol\n",
+ "nt = 3.25 #Number of moles of Toluene, mol\n",
+ "T = 298.15 #Temperature, K\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "P0b = 96.4 #Vapor pressure of Benzene, torr\n",
+ "P0t = 28.9 #Vapor pressure of Toluene, torr\n",
+ "nv = 1.5 #moles vaporized, mol\n",
+ "\n",
+ "#Calculations\n",
+ "n = nb + nt\n",
+ "nl = n - nv\n",
+ "zb = nb/n\n",
+ "\n",
+ "x,y, P = symbols('x y P')\n",
+ "e1 = nv*(y-zb)-nl*(zb-x)\n",
+ "print 'Mass Balance:', e1\n",
+ "e2 = P - (x*P0b + (1-x)*P0t)\n",
+ "print 'Pressure and x:',e2\n",
+ "e3 = y - (P0b*P - P0t*P0b)/(P*(P0b-P0t))\n",
+ "print 'Pressure and y:', e3\n",
+ "equations = [e1,e2,e3]\n",
+ "sol = solve(equations)\n",
+ "\n",
+ "#Results\n",
+ "for i in sol:\n",
+ " if ((i[x] > 0.0 and i[x] <1.0) and (i[P] > 0.0) and (i[y]>zb and i[y]<1.0)):\n",
+ " print 'Pressure is %4.1f torr' %i[P]\n",
+ " print 'Mole fraction of benzene in liquid phase %4.3f' %i[x]\n",
+ " print 'Mole fraction of benzene in vapor phase %4.3f' %i[y]\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass Balance: 6.75*x + 1.5*y - 5.0\n",
+ "Pressure and x: P - 67.5*x - 28.9\n",
+ "Pressure and y: y - 0.0148148148148148*(96.4*P - 2785.96)/P\n",
+ "Pressure is 66.8 torr"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Mole fraction of benzene in liquid phase 0.561\n",
+ "Mole fraction of benzene in vapor phase 0.810\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.6, Page Number 212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 4.50 #Mass of substance dissolved, g\n",
+ "ms = 125.0 #Mass of slovent (CCl4), g\n",
+ "TbE = 0.65 #Boiling point elevation, \u00b0C\n",
+ "Kf, Kb = 30.0, 4.95 #Constants for freezing point elevation \n",
+ " # and boiling point depression for CCl4, K kg/mol\n",
+ "Msolvent = 153.8 #Molecualr wt of solvent, g/mol\n",
+ "#Calculations\n",
+ "DTf = -Kf*TbE/Kb\n",
+ "Msolute = Kb*m/(ms*1e-3*TbE)\n",
+ "nsolute = m/Msolute\n",
+ "nsolvent = ms/Msolvent \n",
+ "x = 1.0 - nsolute/(nsolute + nsolvent)\n",
+ "\n",
+ "#Results\n",
+ "print 'Freezing point depression %5.2f K'%DTf\n",
+ "print 'Molecualr wt of solute %4.1f g/mol'%Msolute\n",
+ "print 'Vapor pressure of solvent is reduced by a factor of %4.3f'%x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Freezing point depression -3.94 K\n",
+ "Molecualr wt of solute 274.2 g/mol\n",
+ "Vapor pressure of solvent is reduced by a factor of 0.980\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.7, Page Number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "csolute = 0.500 #Concentration of solute, g/L\n",
+ "R = 8.206e-2 #Gas constant L.atm/(mol.K)\n",
+ "T = 298.15 #Temperature of the solution, K\n",
+ "\n",
+ "#Calculations\n",
+ "pii = csolute*R*T\n",
+ "\n",
+ "#Results\n",
+ "print 'Osmotic pressure %4.2f atm'%pii\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure 12.23 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.8, Page Number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n",
+ "pCS2 = 358.3 #Partial pressure of CS2, torr\n",
+ "p0CS2 = 512.3 #Total pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "alpha = pCS2/p0CS2\n",
+ "gama = alpha/xCS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity of CS2 %5.4f atm'%alpha\n",
+ "print 'Activity coefficinet of CS2 %5.4f atm'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity of CS2 0.6994 atm\n",
+ "Activity coefficinet of CS2 1.9971 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.9, Page Number 220"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "xCS2 = 0.3502 #Mol fraction of CS2, g/L\n",
+ "pCS2 = 358.3 #Partial pressure of CS2, torr\n",
+ "kHCS2 = 2010. #Total pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "alpha = pCS2/kHCS2\n",
+ "gama = alpha/xCS2\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity of CS2 %5.4f atm'%alpha\n",
+ "print 'Activity coefficinet of CS2 %5.4f atm'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity of CS2 0.1783 atm\n",
+ "Activity coefficinet of CS2 0.5090 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.10, Page Number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "rho = 789.9 #Density of acetone, g/L\n",
+ "n = 1.0 #moles of acetone, mol\n",
+ "M = 58.08 #Molecular wt of acetone, g/mol\n",
+ "kHacetone = 1950 #Henrys law constant, torr\n",
+ "#Calculations\n",
+ "H = n*M*kHacetone/rho\n",
+ "\n",
+ "#Results\n",
+ "print 'Henrys constant = %5.2f torr'%H"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Henrys constant = 143.38 torr\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.11, Page Number 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 0.5 #Mass of water, kg\n",
+ "ms = 24.0 #Mass of solute, g\n",
+ "Ms = 241.0 #Molecular wt of solute, g/mol\n",
+ "Tfd = 0.359 #Freezinf point depression, \u00b0C or K\n",
+ "kf = 1.86 #Constants for freezing point depression for water, K kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "msolute = ms/(Ms*m)\n",
+ "gama = Tfd/(kf*msolute)\n",
+ "\n",
+ "#Results\n",
+ "print 'Activity coefficient = %4.3f'%gama"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Activity coefficient = 0.969\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.12, Page Number 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "m = 70.0 #Mass of human body, kg\n",
+ "V = 5.00 #Volume of blood, L\n",
+ "HN2 = 9.04e4 #Henry law constant for N2 solubility in blood, bar\n",
+ "T = 298.0 #Temperature, K\n",
+ "rho = 1.00 #density of blood, kg/L\n",
+ "Mw = 18.02 #Molecualr wt of water, g/mol\n",
+ "X = 80 #Percent of N2 at sea level\n",
+ "p1, p2 = 1.0, 50.0 #Pressures, bar\n",
+ "R = 8.314e-2 #Ideal Gas constant, L.bar/(mol.K)\n",
+ "#Calculations\n",
+ "nN21 = (V*rho*1e3/Mw)*(p1*X/100)/HN2\n",
+ "nN22 = (V*rho*1e3/Mw)*(p2*X/100)/HN2\n",
+ "V = (nN22-nN21)*R*T/p1\n",
+ "#Results\n",
+ "print 'Number of moles of nitrogen in blood at 1 and 50 bar are %3.2e,%3.3f mol'%(nN21,nN22)\n",
+ "print 'Volume of nitrogen released from blood at reduced pressure %4.3f L'%V"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of nitrogen in blood at 1 and 50 bar are 2.46e-03,0.123 mol\n",
+ "Volume of nitrogen released from blood at reduced pressure 2.981 L\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 9.14, Page Number 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg, divide\n",
+ "from matplotlib import pyplot\n",
+ "%matplotlib inline\n",
+ "#Variable Declaration\n",
+ "cCB = array([1e-6,2e-6,3e-6,5e-6,10e-6])\n",
+ "nu = array([0.006,0.012,0.018,0.028,0.052])\n",
+ "y = nu/cCB\n",
+ "print y\n",
+ "xlim(0.0, 0.06)\n",
+ "ylim(5000,6300)\n",
+ "#Calculations\n",
+ "A = array([ nu, ones(size(nu))])\n",
+ "print A\n",
+ "# linearly generated sequence\n",
+ "\n",
+ "w = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n",
+ "print 'slope %8.1f'%w[0]\n",
+ "print 'Intercept %8.1f' %w[1]\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = w[0]*nu+w[1] # regression line\n",
+ " \n",
+ "#Results\n",
+ "plot(nu,line,'r-',nu,y,'o')\n",
+ "xlabel('$ \\overline{\\upsilon} $')\n",
+ "ylabel('$ \\overline{\\upsilon}/C_{CB}, M^{-1} $')\n",
+ "#ylabel('$ \\dfrac{\\overline{\\upsilon}}{C_{CB}} $')\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[ 6000. 6000. 6000. 5600. 5200.]\n",
+ "[[ 0.006 0.012 0.018 0.028 0.052]\n",
+ " [ 1. 1. 1. 1. 1. ]]"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "slope -19188.2\n",
+ "Intercept 6205.2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZoAAAEMCAYAAAD9OXA9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VdW5//HPQxBBnK4zY0XESlCZFBxQ4oSIVqy3V21f\n1+LYVio4VxCV2DpUrVNQ6a3W6deq19LqRUIRaI3aKoNlnlTwUiUVi9VbcWB+fn+sHT2mAXNyzj7r\nJPm+X6+8ss86++z9LBLzuNde69nm7oiIiKSlRewARESkaVOiERGRVCnRiIhIqpRoREQkVUo0IiKS\nKiUaERFJVcvYARSKmWket4hIA7i75fL5ZnVF4+5N9mvs2LHRY1D/1L/m1rfm0L98aFaJRkRECk+J\nRkREUqVE00SUlZXFDiFV6l/j1ZT7Bk2/f/lg+RqDK3Zm5s2lryIi+WJmuCYDiIhIMVOiERGRVCnR\niIhIqpRoREQkVUo0IiKSKiUaERFJVdREY2a7mtkEM1tqZkvM7HAzuyN5Pd/Mfmdmu2TsP9rM3jSz\nZWY2KKO9r5ktTN67N05vRESkLrGvaO4FJrt7d+AQYCkwFejh7j2BN4DRAGZWCpwFlAKDgQfMrGZu\n93jgAnfvBnQzs8GF7YaIiGxNtESTXKkc7e4PA7j7Jnf/p7tPc/ctyW4zgY7J9lDgSXff6O4rgeVA\nfzNrB+zk7rOS/R4HTi9YR0REZJtiXtF0AdaY2SNmNsfMHjSzHWrtcz4wOdluD6zKeG8V0KGO9uqk\nXUREikDMRNMS6AM84O59gE+AUTVvmtkYYIO7PxEpPhERyYOYDz5bBaxy99nJ6wkkicbMzgWGAMdn\n7F8NdMp43TE5RjVfDK/VtFfXdcLy8vLPt8vKylQMT0SklqqqKqqqqvJ6zKhFNc3sJeBCd3/DzMqB\nNsALwJ3AQHd/P2PfUuAJoB9haGw6sL+7u5nNBEYCs4BKoMLdp9Q6l4pqiohkKR9FNWM/ynkE8Gsz\nawWsINyTmQ20AqYlk8pedffh7r7EzJ4GlgCbgOEZmWM48CghUU2unWRERCQePSZARES2So8JEBGR\noqdEIyIiqVKiERGRVCnRiIhIqpRoREQkVUo0IiKSKiUaERFJlRKNiIikSolGRERSpUQjIiKpUqIR\nEZFUKdGIiEiqlGhERCRVSjQiIpIqJZpCGjsW/vjH2FGIiBSUEk0h9ewJ558PZ54Jb78dOxoRkYJQ\noimkM86AJUuge3fo3RtuugnWrYsdlYhIqpRoCm2HHeDGG+G11+Avf4EePWDiRNDTP0WkidKjnGOb\nOhVGjoT99oN77oEDDogdkYjI5/Qo56Zg0CBYsACOOw6OPBJGjYKPP44dlYhI3ijRFINWreCqq0LC\nqa6GAw+EJ57QcJqINAkaOitGf/4zXHIJ7LwzVFSE2WoiIhFo6KypOuqoMFng298OQ2uXXAIffBA7\nKhGRBlGiKVYlJfCDH4Tp0Fu2hCnRv/gFbN4cOzIRkaxo6KyxmDsXRowI627GjYMjjogdkYg0Axo6\na05694aXX4bLLoNvfQvOPRdWr44dlYjIV4qaaMxsVzObYGZLzWyJmfU3s93MbJqZvWFmU81s14z9\nR5vZm2a2zMwGZbT3NbOFyXv3xulNAZjBf/4nLFsGe+0FBx0Ed90FGzfGjkxEZKuiDp2Z2WPAi+7+\nsJm1BNoCY4D33f12M7sG+Dd3H2VmpcATwGFAB2A60M3d3cxmAZe4+ywzmwxUuPuUWueKOnRWWfkS\nFRVTWb++Jdtvv4mRIwdxyinH5HbQ118Piz3feSfMTjvhhMLH0ADFEoeIfLV8DJ3h7lG+gF2At+po\nXwbsnWzvAyxLtkcD12TsNwU4HGgHLM1oPxv4eR3H9VgmTXrRu3a91sPCmPDVteu1PmnSi7kffMsW\n92eecd93X/czznBfubLwMWShWOIQkfpJ/nbm9Pc+5tBZF2CNmT1iZnPM7EEza0tIMu8l+7wH7J1s\ntwdWZXx+FeHKpnZ7ddJeNCoqprJixc1falux4mbGjZuW+8HN4PTTw+y0nj2hTx/48Y/hs88KF0MW\niiUOESmclpHP3Ycw5DXbzO4BRmXu4O5uZnkb7yovL/98u6ysjLKysnwdepvWr6/7n3ndupL8naRN\nG7jhBhg2DK68MhTrvOsuGDoUzAoTQz0USxwiUreqqiqqqqryesyYiWYVsMrdZyevJxCGx1ab2T7u\nvtrM2gF/T96vBjplfL5jcozqZDuzvbquE2YmmkLafvtNdba3bp3CmpivfQ0mTIDp08P9m/Hj4d57\nCxvDNhRLHCJSt9r/E37jjTfmfMxoQ2fuvhp4x8xqyhWfACwGngOGJW3DgGeT7YnA2WbWysy6AN2A\nWclxPkpmrBlwTsZnisLIkYPo2nXMl9q6dr2WESNOTO+kJ5wA8+fD4MEwYAAj275D1y6jCxtDHaL8\nW4hIVLFnnfUEHgJaASuA84AS4GmgM7ASONPd/y/Z/1rgfGATcKm7P5+09wUeBdoAk919ZB3n8ph9\nrax8iXHjprFuXQmtW29mxIgTCzfTavVqGDWKyueqGNfhONb9Wydat9lS2BgyRP23EJGs5GPWmSoD\nNCevvhqqC7RuHaoL9O4dOyIRKXKqDCDZOeIImDkzTBg4+WS4+GL4xz9iRyUiTZwSTXNTUgIXXRSm\nQ5eUhGKd48erWKeIpEZDZ83d/PlhOG3tWrjvvvCIAhGRhO7RZEGJZhvc4amn4Oqr4dhj4fbboV27\n2FGJSBHQPRrJD7PwkLVly6BjRzj4YLjjDtiwIXZkItIEKNHIF3bcEW69FV55BV54AQ45BJ5/PnZU\nItLIaehM6uYOkyaF598cfDDcfTd06RI7KhEpMA2dSXrM4BvfgMWL4bDD4NBDYexY+PTT2JGJSCOj\nRCPb1ro1jBkD8+aFezilpfDb34YrHhGRetDQmWTnhRfCdOh99gkPWystjR2RiKRIQ2dSeMceC3Pn\nhmG1gQPDIwk++ih2VCJSxJRoJHvbbQeXXhru3/zf/8GBB8Jjj8GWLbEjE5EipKEzyd3MmWE4raQk\nVBfo2zd2RCKSJxo6k+LQvz/MmAEXXginnALf+x68/37sqESkSCjRSH60aAEXXBBmprVpEyYJ3H8/\nbKr7iZoi0nxo6EzSsXBheJT0Bx+EZ98cowebiTRGKqqZBSWaCNzhN7+Bq66CAQNC/bQOHWJHJSJZ\n0D0aKW5mcOaZsHRpKF/Tsyf89Kewfn3syESkgJRoJH1t28LNN4cJA3/+c6idNnly7KhEpEA0dCaF\nN3lyWIfTvXso1tm1a+yIRGQrNHQmjdOQIbBoERx5ZJgafd118MknsaMSkZQo0Ugc228Po0aFYp0r\nVoSrm9/8RsU6RZogDZ1JcXjxxVBdYI89wnToHj1iRyQiaOhMmpKBA2HOHDjjjFC487LLQh01EWn0\nlGikeLRsCZdcEop1fvppGE57+GEV6xRp5KImGjNbaWYLzGyumc1K2vqZ2aykbbaZHZax/2gze9PM\nlpnZoIz2vma2MHnv3hh9kTzac0/4xS/guefC9yOOgFmzYkclIg0U+4rGgTJ37+3u/ZK224Hr3b03\ncEPyGjMrBc4CSoHBwANmVjNuOB64wN27Ad3MbHAhOyEpOfRQeOUVuPhiGDo0FO38+99jRyUiWYqd\naABq32R6F9gl2d4VqE62hwJPuvtGd18JLAf6m1k7YCd3r/lf3seB09MNWQqmRQs499xQrHPnncMk\ngYoKFesUaURiJxoHppvZa2Z2UdI2CrjTzN4G7gBGJ+3tgVUZn10FdKijvTppl6Zkl13grrvC7LSJ\nE6F3b6iqih2ViNRD7ERzVDJEdjLwQzM7GvglMNLdOwOXAw/HDFCKTGkpTJsG5eUwbBicdRa8807s\nqERkG1rGPLm7v5t8X2NmzwD9gH7ufkKyywTgoWS7GuiU8fGOhCuZ6mQ7s72aOpSXl3++XVZWRllZ\nWc59kAjM4N//HU4+ORTp7NULrrgCrrwSWreOHZ1Io1ZVVUVVnkcLoi3YNLMdgBJ3X2tmbYGpwI+B\nW4HL3f1FMzse+Km7H5ZMBniCkIw6ANOB/d3dzWwmMBKYBVQCFe4+pdb5tGCzqXrrrZBoFi2Ce+6B\nU0+NHZFIk5H682jMrD1fvll/rLv/KpcTZhy7C/BM8rIl8Gt3v9XMDgXuB7YHPgOGu/vc5DPXAucD\nm4BL3f35pL0v8CjQBpjs7iPrOJ8STVP3/PPhYWv77x8STrdusSMSafQKkWiGAsOA+UnT1939O7mc\nMBYlmmZiwwa491647Ta46CIYMwZ23DF2VCKNVkGesGlm+7j76mR7L3dvlAsZlGiamb/9Da65JsxM\nu+OOMGnAcvpvRaRZ0qOcs6BE00z96U+hWOcuu4T1N4ccEjsikUaloEU1zeyIXE4kEsWAAfDaa+GK\n5oQTQtL58MPYUYk0K9mso9k5tShE0lRSEsrYLF0aKgp07w4PPgibN8eOTKRZiL1gU6Rwdt8dxo+H\n3/8eHn00PN1zxozYUYk0eUo00vz07h3u3Vx6aVj4ed558N57saMSabKySTRrU4tCpNDM4JxzwnDa\nHnvAQQfB3XfDxo2xIxNpcrJJNN8zs66pRSISw847h+nPL78MU6aEcjZ/+EPsqESalHpPbzazp4Ed\ngb2AvxPKvcwEZgMD3P3ZtILMB01vlq/kDv/zP3D55eFZOHfeCZ07x45KJKqCr6Mxsz6EZPMW0Iuk\nCCbQy933ySWQtCnRSL199lm4yqmoCPdxrr5axTql2Yq2YDNZU+PuPiN5PdzdH8glkLQp0UjW/vrX\nUBF6zpxw/+a001RdQJqdqJUBzGw74HBgrbvPyyWIQlCikQabPj0U6+zcOdRR+/rXY0ckUjAFTTRm\ntjuwL9A5+eqUfN8P+JO7X5ZLIGlTopGcbNwI48bBLbfABRfAddfBTjvFjkokdYVONB8BvwdeBt6p\n+XL3NbkEUChKNJIXq1fDqFHhKue22+A739FwmjRphU40wwkzzb7GF8+o+RD4C3Bqvp5TkxYlGsmr\nV18NddPatAlXOr16xY5IJBXRqzeb2c7AYcCt7t4vl0DSpkQjebd5M/zyl3D99aHCwE03wW67xY5K\nJK8KWr25Lu7+kbv/Abgil+OINEolJfC974XqAi1ahGKdP/+5inWK1KLn0Yjky/z5YTjt44/DcNpR\nR8WOSCRn0a9okiC6mNkKMyszs5NyPZ5Io9WzJ7z4YljgedZZ8N3vwrvvxo5KJLqcEo2ZdQbaAEe7\ne5W7P5+fsEQaKTP49rdh2TJo3x4OPhh+9jPYsCF2ZCLR5DoZ4G5gHWGq8+HAr9x9ap5iyysNnUkU\nb7wBl10Gb70VStoMGhQ7IpGsFMPQ2bPuPhr4q7t/l1BwU0RqHHAAVFaG2mkXXwxnnAErV8aOSqSg\nck00VyTra3ZMXr+T4/FEmh4z+MY3YPFi6Ns3VIYuLw/FO0WagVyHzvYHtgeOAnoAX3P30/MUW15p\n6EyKxttvw1VXwezZ4VEE3/ymqgtI0SqGBZvd3X1pxuse7r44l4DSokQjReePfwzFOtu1C/dvuneP\nHZHIvyiGezSnmtmZSTDds00yZrbSzBaY2Vwzm5XRPsLMlprZIjO7LaN9tJm9aWbLzGxQRntfM1uY\nvHdvjn0SKYzjjoO5c+HUU+GYY8JVzkcfxY5KJO9yTTSz3P3pZPuN5Dk12XCgzN1715SwMbNjgdOA\nQ9z9IOBnSXspcBZQCgwGHjD7fLxhPHCBu3cDupnZ4Jx6JVIo220XHq62eDF8+CEceCA8/jhs2RI7\nMpG8yTXRtKvZcPfNQEkDjlH7kuxiQu20jclxa6pDDwWedPeN7r4SWA70N7N2wE7uXnNF9DhQlPeJ\npOmrrHyJk066jrKyck466ToqK1+q3wf32ivUTXvmGbjvPhgwIDxwTaQJaJnj5xeb2U3Ao8BqwoSA\nP2XxeQemm9lm4L/c/UGgG3CMmd1CWKNzlbu/BrQHZmR8dhXQAdiYbNeoTtpFCqqy8iUuvfR5Vqy4\n+fO2FSvGAHDKKcfU7yD9+8OMGfDIIzBkCAwdCjffDHvskUbIIgVR7ysaMxtmZseb2S41be6+EPg5\ncB5wHeF5Ndk4yt17AycDPzSzownJ79/c/XDgauDpbR1ApFhUVEz9UpIBWLHiZsaNm5bdgVq0CA9X\nW7YMWreG0lK4/37YtCmP0YoUTjZXNB8BZwBdzOwpd//YzE4EXnD3MQ05ubu/m3xfY2bPAP0IVye/\nS9pnm9kWM9uDcKXSKePjHZN9q5PtzPbqus5XXl7++XZZWRllZWUNCVukTuvX1/2f07p1DRlRBnbd\nNTw6+sILw+y0Bx8MxTqPPjqHKEW2raqqiqqqqvwe1N3r9QUMq6OtFXAOsHt9j5Px2R0I91YA2gJ/\nBgYB3wduTNoPAN5OtkuBeck5uwAr+GJ69kygP+F+z2RgcB3nc5E0DRo0xsH/5eukk67L/eBbtrg/\n9ZR7p07u3/mO+6pVuR9TpB6Sv51Z/X2v/ZXNZIBdaje4+wZ3/3/AkCyOU2Nv4GUzm5ckikke6qQ9\nDOxnZguBJ4HvJudaQhhGW0IYohue/CMADAceAt4Elrv7lAbEI5KTkSMH0bXrly/uu3a9lhEjTsz9\n4GahIvTSpbDvvqFS9G23wfr1uR9bJGXZPMr5J8Dd7v5BHe9d6O4P5Tu4fNKCTSmEysqXGDduGuvW\nldC69WZGjDix/hMBsrF8OVx+Obz+eljsOVgz+iUdBa0MkEwjfhz4qYenata0G/Azd78yl0DSpkQj\nTdLkyWEdTmkp3H037Ldf7IikiSloZQAPN+6/D/wkWYU/zsxuB14EXs4lCBFpoCFDYNEiOOII6NcP\nrr8ePv00dlQiX9KgWmdmdiRwBLAJqHT35fkOLN90RSNN3qpV4emer7wSHrb2rW+pWKfkrGBDZ2b2\ndWCLu7+Zy8liUqKRZuPFF2HECNhzz3D/pkeP2BFJI1bIobMVwNfM7IdmdrGZHZrLSUUkRQMHhvI1\n3/wmHHtsmDTwz3/GjkqasYYOnfUD+hIS1etAlbsX9bJlXdFIs7RmDVx7LUyaBLfcAsOGhcoDIvVU\n8OfRmNlmdy+p1XYgMJCwkLIaeN7dP8klqDQo0Uiz9tprcMklYXvcODjssLjxSKMRI9FscfcWScn+\nTYTFkVsy3m8PHO3u/51LUGlQopFmb8uW8AiC0aPhlFPg1lvDfRyRbYj54LMLgc7A4WZ2upm1BXD3\nvxVjkhERwpDZueeGYp077xzW3lRUqFinpK5BVzS12loAZ7r7U/kOLp90RSNSy+LFoVjnmjVhOG3g\nwNgRSRGKdkVjZt8ys3PMbI9k6CzX59qISKH16AHTp8MNN8B3vwtnnx3W4ojkWUOHzjoRHlo23sz+\nCOyVv5BEpGDMwsLOpUvhgAOgV69w70bFOiWPGjoZoBuwh7u/ml5o+aWhM5F6eOstuOKKMKx2zz1h\n0oA0awWfddaYKdGIZGHKlFCss1u3kHD23z92RBJJzFlnItKUDR4MCxfCMcfA4YeHRZ+fFN3yOGkk\nlGhEpG6tWsGPfgQLFsDbb8OBB8JTT4UHh4pkQUNnIlI/f/pTqC6w665hOvTBB8eOSApAQ2ciUjgD\nBsBf/gJnngnHHx/W4Hz4YeyopBFQohGR+ispgeHDYckS2LABuneHhx4K5W1EtkJDZyLScHPmhGff\nbNgA990H/fvHjkjyTENnIhJXnz7h3s3IkXDGGXD++fDee7GjkiKjRCMiuTGDc84J1QV23x0OOiis\nvdm4MXZkUiQ0dCYi+bV0aVjsWV0dZqcdd1zsiCQHqgyQBSUakQJyh2efDeVsDj0U7rwTOneOHZU0\ngO7RiEhxMoNvfjPMTjvoIOjdG266Cdatix2ZRKBEIyLpadMGxo4N62/mzAmPJpg4UdUFmpmoicbM\nVprZAjOba2azar13pZltMbPdMtpGm9mbZrbMzAZltPc1s4XJe/cWsg8iUg/77gu/+x38/OdwzTUw\nZAi88UbsqKRAYl/ROFDm7r3dvV9No5l1Ak4E/prRVgqcBZQCg4EHzKxm3HA8cIG7dwO6mdngQnVA\nRLJw4okwfz6ccAIceWRIOmvXxo5KUhY70QDUdZPpLuBHtdqGAk+6+0Z3XwksB/qbWTtgJ3evuSJ6\nHDg9rWBFJEetWsGVV4bq0KtXh+oCv/61htOasNiJxoHpZvaamV0EYGZDgVXuvqDWvu2BzOfMrgI6\n1NFenbSLSDFr1w4eewyefjrMShs4MFztSJPTMvL5j3L3d81sT2CamS0DRgODMvbJaVpdpvLy8s+3\ny8rKKCsry9ehRaShjjwSZs8ONdMGDQqPlv7JT2C33b76s5J3VVVVVFVV5fWYRbOOxszGApuBEcCn\nSXNHwhVKf+A8AHf/abL/FGAs4T7OC+7ePWn/NjDQ3X9Q6/haRyNS7D74AK6/HiZMgB//GC68MBTy\nlGga9ToaM9vBzHZKttsSrmJmufve7t7F3bsQhsT6uPt7wETgbDNrZWZdgG7J/quBj8ysfzI54Bzg\n2SidEpHc7LYb3H8/PP88/OpX0K8fvPJK7KgkRzHv0ewNvGxm84CZwCR3n1prn88vQdx9CfA0sAT4\nPTA84xJlOPAQ8Caw3N2npB28iKSoVy946aUwaeDMM2HYsDBxQBqlohk6S5uGzkQaqbVrQ1WBX/4S\nRo8OlaK32y52VM2Gap1lQYlGpJF7/XW47DJYuRIqKsKaHEmdEk0WlGhEmgB3eO65kHB69YK77gpV\nByQ1jXoygIhI1szgtNNCsc7evaFvX7jxRvjss9iRyTYo0YhI49O6dZgGPWcOLFoEpaXwzDOqLlCk\nNHQmIo3fH/4QJgl06BDu3xx4YOyImgwNnYmIABx/PMybF6pCDxgAV10FH30UOypJKNGISNOw3XZh\nksDixfCPf4Srmscfhy1bYkfW7GnoTESaphkzYMSIUC163Djo0yd2RI2Shs5ERLbm8MNh5kw477ww\npPaDH4QrHSk4JRoRabpatAiFOZcuDVc23bvDAw/A5s2xI2tWNHQmIs3HggVhOO2f/4T77gsTB2Sb\nVBkgC0o0IgKEtTb//d9w9dXhYWu33w7t28eOqmjpHo2ISLbM4Oyzw3Ba585wyCEh2WzYEDuyJkuJ\nRkSapx13hFtugVdfDY8kOPhgmKInjKRBQ2ciIgCTJoV1OD16wN13w377xY6oKGjoTEQkX049NdRN\n698fDjsMbrgBPv30qz8nX0mJRkSkRuvWcO21oZzNG2+E6dATJqhYZ440dCYisjVVVWE69F57heoC\npaWxIyo4DZ2JiKSprAzmzoWhQ8NU6MsvD2twJCtKNCIi29KyZXgEweLFsHZtKNb5yCMq1pkFDZ2J\niGRj9my45JKwHue+++DQQ2NHlCoNnYmIFNphh4W1N9//PnzjG3DRRbBmTeyoipoSjYhItlq0CFWh\nly4NCz9LS8PVzaZNsSMrSho6ExHJ1aJF4T7O+++H2WkDB8aOKG9UVDMLSjQikir3sObmyivhqKPg\njjugY8fYUeWs0d+jMbOVZrbAzOaa2ayk7Q4zW2pm883sd2a2S8b+o83sTTNbZmaDMtr7mtnC5L17\nY/RFRJo5M/iP/wjDaV27Qs+ecOutsH597Miii32PxoEyd+/t7v2StqlAD3fvCbwBjAYws1LgLKAU\nGAw8YGY1WXY8cIG7dwO6mdngQnZCRORzbdvCTTfBrFlh0sBBB0FlZeyoooqdaAC+dEnm7tPcvWaC\n+kyg5tpzKPCku29095XAcqC/mbUDdnL3Wcl+jwOnpx+2iMg2dO0KEydCRQWVF13BSXsOoaz/NZx0\n0nVUVr4UO7qCahn5/A5MN7PNwH+5+4O13j8feDLZbg/MyHhvFdAB2Jhs16hO2kVEoqvc0pZL25zB\nindvhfdD24oVYwA45ZRjIkZWOLGvaI5y997AycAPzezomjfMbAywwd2fiBadiEiOKiqmsuKtW7/U\ntmLFzYwbNy1SRIUX9YrG3d9Nvq8xs2eAfsDLZnYuMAQ4PmP3aqBTxuuOhCuZar4YXqtpr67rfOXl\n5Z9vl5WVUVZWlmsXRES2af36uv/MrltXUuBI6qeqqoqqqqq8HjPa9GYz2wEocfe1ZtaWMAngRsJV\n1p3AQHd/P2P/UuAJQjLqAEwH9nd3N7OZwEhgFlAJVLj7lFrn0/RmESm4k066jqlTb6qj/XqmTPlJ\nhIiy09inN+9NuHqZR7jpP8ndpwLjgB2Bacm05wcA3H0J8DSwBPg9MDwjcwwHHgLeBJbXTjIiIrGM\nHDmIrl3HfKmta9drGTHixEgRFZ4WbIqIpKyy8iXGjZvGunUltG69mREjTmw0EwFUGSALSjQiItlr\n7ENnIiLSDCjRiIhIqpRoREQkVUo0IiKSKiUaERFJlRKNiIikSolGRERSpUQjIiKpUqIREZFUKdGI\niEiqlGhERCRVSjQiIpIqJRoREUmVEo2IiKRKiUZERFKlRCMiIqlSohERkVQp0YiISKqUaEREJFVK\nNCIikiolGhERSZUSjYiIpEqJRkREUqVEIyIiqYqaaMxspZktMLO5ZjYradvNzKaZ2RtmNtXMds3Y\nf7SZvWlmy8xsUEZ7XzNbmLx3b4y+iIhI3WJf0ThQ5u693b1f0jYKmObuBwB/SF5jZqXAWUApMBh4\nwMws+cx44AJ37wZ0M7PBhexEMaiqqoodQqrUv8arKfcNmn7/8iF2ogGwWq9PAx5Lth8DTk+2hwJP\nuvtGd18JLAf6m1k7YCd3n5Xs93jGZ5qNpv7Lrv41Xk25b9D0+5cPsRONA9PN7DUzuyhp29vd30u2\n3wP2TrbbA6syPrsK6FBHe3XSLiIiRaBl5PMf5e7vmtmewDQzW5b5pru7mXmk2EREJA/MvTj+jpvZ\nWOBj4CLCfZvVybDYC+5+oJmNAnD3nyb7TwHGAn9N9umetH8bGOjuP6h1/OLoqIhII+PutW9xZCXa\nFY2Z7QCUuPtaM2sLDAJuBCYCw4Dbku/PJh+ZCDxhZncRhsa6AbOSq56PzKw/MAs4B6iofb5c/6FE\nRKRhYg4s8/eSAAAEn0lEQVSd7Q08k0wcawn82t2nmtlrwNNmdgGwEjgTwN2XmNnTwBJgEzDcv7gc\nGw48CrQBJrv7lEJ2REREtq5ohs5ERKRpij3rLC/MbHCyiPNNM7tmK/tUJO/PN7Pe2Xw2thz797CZ\nvWdmCwsXcf01tG9m1snMXjCzxWa2yMxGFjby+smhf63NbKaZzTOzJWZ2a2Ejr59cfjeT90qSBdvP\nFSbi7OT4396/LEgvJjn2bVczm2BmS5Pfz8O3eTJ3b9RfQAlhTc2+wHbAPKB7rX2GEIbUAPoDM+r7\n2dhfufQveX000BtYGLsvef7Z7QP0SrZ3BF5vgj+7HZLvLYEZwIDYfcpn/5K2K4BfAxNj9yeFn9//\nArvF7kdKfXsMOD/j93OXbZ2vKVzR9AOWu/tKd98IPEVY3Jnp80Wg7j4T2NXM9qnnZ2PLpX+4+8vA\nhwWMNxsN7dve7r7a3ecl7R8DSwlrqopJg/uXvP402acV4Q/DBwWJuv5y6p+ZdST8MXuIf124XQxy\n6l+iGPsFOfTNzHYBjnb3h5P3Nrn7P7d1sqaQaDoA72S8rlnIWZ992tfjs7Hl0r9i19C+dczcwcz2\nJVy1zcx7hLnJqX/JsNI8wsLlF9x9SYqxNkSuv5t3A1cDW9IKMEe59q+uBenFIpffzS7AGjN7xMzm\nmNmDySzirWoKiaa+sxmK9f8svkpD+9cYZnnk3Dcz2xGYAFyaXNkUk5z65+6b3b0X4T/uY8ysLI+x\n5UND+2dmdirwd3efW8f7xSLXvy0D3L03cDLwQzM7Oj9h5UUuv5stgT7AA+7eB/iEpCbl1jSFRFMN\ndMp43Ykvl6Spa5+OyT71+WxsDe1fdcpx5UNOfTOz7YDfAr9y92cpPnn52SXDEpXAoSnEmItc+nck\ncJqZ/S/wJHCcmT2eYqwNkdPPz93/lnxfAzxDGK4qFrn0bRWwyt1nJ+0TCIln62LflMrDTa2WwArC\nTa1WfPVNrcP54obyV3429lcu/ct4f1+KczJALj87IxRQvTt2P1Lq3x7Arsl2G+Al4PjYfcr372bS\nPhB4LnZ/8vzz24FQ7BegLfBnYFDsPuXrZ5f8Ph6QbJcDt23zfLE7nKd/tJMJs46WA6OTtu8D38/Y\n577k/flAn219tti+cuzfk8DfgPWE8dbzYvcnH30DBhDG9ucBc5OvwbH7k8f+HQzMSfq3ALg6dl/y\n/buZ8f5AinDWWY4/v/2Sn908YFEx/m3J8e9KT2B20v47vmLWmRZsiohIqprCPRoRESliSjQiIpIq\nJRoREUmVEo2IiKRKiUZERFKlRCMiIqlSohERkVQp0YiISKpiPspZpFkzs61VLXZ3LyloMCIpUmUA\nERFJlYbORCIxs25mdrmZfSt5fZeZlcaOSyTflGhE4tkDWEOozgwwGdgULxyRdCjRiETi7q8SHp/7\n+6TpU0KlXJEmRYlGJK7d3f19M2sB7OXuxfpYY5EG02QAkYjM7Arg74Qhs+fc/ZPIIYnknRKNiIik\nSkNnIiKSKiUaERFJlRKNiIikSolGRERSpUQjIiKpUqIREZFUKdGIiEiqlGhERCRVSjQiIpKq/w/u\n9ASq8UBFKwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa4dd2d0>"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10.ipynb
new file mode 100755
index 00000000..de8342a7
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10.ipynb
@@ -0,0 +1,59 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1d42669bd8107d861c6e3eefe6f0700977fa1e9c23ddda22a03d5e75fa945558"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Electrolyte Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 10.2, Page Number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "M = 0.050 #Molarity of NaCl solution and also forNa2SO4 solution, mol/kg\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Ia = M*(1+1)/2\n",
+ "Ib = M*(2+4)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Ionic streangth for NaCl solution is %4.3f and for Na2SO4 solution is %4.3f, mol/kg'%(Ia,Ib)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ionic streangth for NaCl solution is 0.050 and for Na2SO4 solution is 0.150, mol/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_1.ipynb
new file mode 100755
index 00000000..746159a0
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_1.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:83e7e02c224bb370929cff9832918ae9c98d9e287b7f595b2c76bce75548416a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Electrolyte Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 10.2, Page Number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "M = 0.050 #Molarity for NaCl and Na2SO4 solution, mol/kg\n",
+ "npa, zpa = 1, 1\n",
+ "nma, zma = 1, 1\n",
+ "npb, zpb = 2, 1\n",
+ "nmb, zmb = 1, 2\n",
+ "\n",
+ "#Calculations\n",
+ "Ia = M*(npa*zpa**2 + nma*zma**2)/2\n",
+ "Ib = M*(npb*zpb**2 + nmb*zmb**2)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Ionic streangth for NaCl solution is %4.3f and for Na2SO4 solution is %4.3f, mol/kg'%(Ia,Ib)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ionic streangth for NaCl solution is 0.050 and for Na2SO4 solution is 0.150, mol/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_2.ipynb
new file mode 100755
index 00000000..746159a0
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter10_2.ipynb
@@ -0,0 +1,62 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:83e7e02c224bb370929cff9832918ae9c98d9e287b7f595b2c76bce75548416a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Electrolyte Solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 10.2, Page Number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "M = 0.050 #Molarity for NaCl and Na2SO4 solution, mol/kg\n",
+ "npa, zpa = 1, 1\n",
+ "nma, zma = 1, 1\n",
+ "npb, zpb = 2, 1\n",
+ "nmb, zmb = 1, 2\n",
+ "\n",
+ "#Calculations\n",
+ "Ia = M*(npa*zpa**2 + nma*zma**2)/2\n",
+ "Ib = M*(npb*zpb**2 + nmb*zmb**2)/2\n",
+ "\n",
+ "#Results\n",
+ "print 'Ionic streangth for NaCl solution is %4.3f and for Na2SO4 solution is %4.3f, mol/kg'%(Ia,Ib)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ionic streangth for NaCl solution is 0.050 and for Na2SO4 solution is 0.150, mol/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11.ipynb
new file mode 100755
index 00000000..b8b395f7
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11.ipynb
@@ -0,0 +1,308 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d710461b968e986411ee49bb4f3e24c283e59536cefcb736abd7424eef7f3627"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Electrochemical Cells, Batteries, and Fuel Cells"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.1, Page Number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "aH = 0.770 #Activity of \n",
+ "fH2 = 1.13 #Fugacity of Hydrogen gas\n",
+ "E0 = 0.0 #Std. electrode potential, V\n",
+ "n = 1.0 #Number of electrons transfered\n",
+ "\n",
+ "#Calculations\n",
+ "E = E0 - (0.05916/n)*log(aH/sqrt(fH2),10)\n",
+ "\n",
+ "#Results\n",
+ "print 'The potential of H+/H2 half cell %5.4f V'%E"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THe potential of H+/H2 half cell 0.00829 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.2, Page Number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "E0r1 = -0.877 #Std Electrod potential for Rx2 : Al3+ + 3e- ------> Al (s) \n",
+ "E0r2 = -1.660 #Std Electrod potential for Rx2 : Al3+ + 3e- ------> Al (s)\n",
+ "E0r3 = +0.071 #Std Electrod potential for Rx3 : AgBr (s) + e- ------> Ag(s) +Br- (aq.)\n",
+ "\n",
+ "#Calculations\n",
+ "#3Fe(OH)2 (s)+ 2Al (s) <---------> 3Fe (s) + 6(OH-) + 2Al3+\n",
+ "E0a = 3*E0r1 + (-2)*E0r2\n",
+ "#Fe (s) + 2OH- + 2AgBr (s) -------> Fe(OH)2 (s) + 2Ag(s) + 2Br- (aq.)\n",
+ "E0b = -E0r1 + (2)*E0r3\n",
+ "\n",
+ "#Results\n",
+ "print '%5.3f %5.3f'%(E0a,E0b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.689 1.019\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.3, Page Number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "E01 = 0.771 #Rx1 : Fe3+ + e- -----> Fe2+\n",
+ "E02 = -0.447 #Rx2 : Fe2+ + 2e- -----> Fe\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n1,n2,n3 = 1.,2.,3.\n",
+ "\n",
+ "#Calculations\n",
+ "dG01 = -n1*F*E01\n",
+ "dG02 = -n2*F*E02\n",
+ " #For overall reaction\n",
+ "dG0 = dG01 + dG02\n",
+ "E0Fe3byFe = -dG0/(n3*F)\n",
+ "\n",
+ "#Results\n",
+ "print 'E0 for overall reaction is %5.3f V'%(E0Fe3byFe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E0 for overall reaction is -0.041 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.4, Page Number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E01 = +1.36 #Std. electrode potential for Cl2/Cl\n",
+ "dE0bydT = -1.20e-3 #V/K\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n = 2.\n",
+ "S0H = 0.0 #Std. entropy J/(K.mol) for H+ ,Cl-,H2, Cl2 \n",
+ "S0Cl = 56.5\n",
+ "S0H2 = 130.7\n",
+ "S0Cl2 = 223.1\n",
+ "nH, nCl, nH2, nCl2 = 2, 2, -1,-1\n",
+ "#Calculations\n",
+ "dS01 = n*F*dE0bydT\n",
+ "dS02 =nH*S0H + nCl*S0Cl + nH2*S0H2 + nCl2*S0Cl2\n",
+ "\n",
+ "#Results\n",
+ "print 'Std. entropy change of reaction from dE0bydT is %4.2e and\\nStd entropy values is %4.2e V'%(dS01,dS02)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. entropy change of reaction from dE0bydT is -2.32e+02 and\n",
+ "Std entropy values is -2.41e+02 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.5, Page Number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declaration\n",
+ "E0 = +1.10 #Std. electrode potential for Danniel cell, V\n",
+ " #Zn(s) + Cu++ -----> Zn2+ + Cu\n",
+ "T = 298.15 #V/K\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n = 2.\n",
+ "R = 8.314 #Gas constant, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "K = exp(n*F*E0/(R*T))\n",
+ "\n",
+ "#Results\n",
+ "print 'Equilibrium constant for reaction is %4.2e'%(K)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant for reaction is 1.55e+37\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.6, Page Number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E = +0.29 #Cell emf, V\n",
+ "\n",
+ "#Calculations\n",
+ "Ksp = 10**(-n*E/0.05916)\n",
+ "\n",
+ "#Results\n",
+ "print 'Equilibrium constant for reaction is %4.2e'%(Ksp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant for reaction is 1.57e-10\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.8, Page Number 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E = +1.51 #EMF for reduction of permangnet, V\n",
+ "E01 = -0.7618 #Zn2+ + 2e- --------> Zn (s)\n",
+ "E02 = +0.7996 #Ag+ + e- --------> Ag (s)\n",
+ "E03 = +1.6920 #Au+ + e- --------> Au (s) \n",
+ "\n",
+ "#Calculations\n",
+ "EZn = E - E01\n",
+ "EAg = E - E02\n",
+ "EAu = E - E03\n",
+ "animals = {\"parrot\": 2, \"fish\": 6}\n",
+ "Er = {\"Zn\":EZn,\"Ag\":EAg,\"Au\":EAu}\n",
+ "#Results\n",
+ "print 'Cell potentials for Zn, Ag, Au are %4.2f V, %4.2f V, and %4.2f V'%(EZn, EAg,EAu)\n",
+ "for i in Er:\n",
+ " if Er[i] >0.0:\n",
+ " print '%s has positive cell potential of %4.3f V and Can be oxidized bypermangnate ion' %(i,Er[i])\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cell potentials for Zn, Ag, Au are 2.27 V, 0.71 V, and -0.18 V\n",
+ "Zn has positive cell potential of 2.272 V and Can be oxidized bypermangnate ion\n",
+ "Ag has positive cell potential of 0.710 V and Can be oxidized bypermangnate ion\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_1.ipynb
new file mode 100755
index 00000000..6248a97e
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_1.ipynb
@@ -0,0 +1,307 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a9874fbd8c9c1e7bd5f52f872f15a435d2027cd53f7e4dc989a569aebbff426a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Electrochemical Cells, Batteries, and Fuel Cells"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.1, Page Number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "aH = 0.770 #Activity of \n",
+ "fH2 = 1.13 #Fugacity of Hydrogen gas\n",
+ "E0 = 0.0 #Std. electrode potential, V\n",
+ "n = 1.0 #Number of electrons transfered\n",
+ "\n",
+ "#Calculations\n",
+ "E = E0 - (0.05916/n)*log(aH/sqrt(fH2),10)\n",
+ "\n",
+ "#Results\n",
+ "print 'The potential of H+/H2 half cell %5.4f V'%E"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THe potential of H+/H2 half cell 0.00829 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.2, Page Number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E0r1 = -0.877 #Std Electrod potential for Rx2 : Al3+ + 3e- ------> Al (s) \n",
+ "E0r2 = -1.660 #Std Electrod potential for Rx2 : Al3+ + 3e- ------> Al (s)\n",
+ "E0r3 = +0.071 #Std Electrod potential for Rx3 : AgBr (s) + e- ------> Ag(s) +Br- (aq.)\n",
+ "\n",
+ "#Calculations\n",
+ "#3Fe(OH)2 (s)+ 2Al (s) <---------> 3Fe (s) + 6(OH-) + 2Al3+\n",
+ "E0a = 3*E0r1 + (-2)*E0r2\n",
+ "#Fe (s) + 2OH- + 2AgBr (s) -------> Fe(OH)2 (s) + 2Ag(s) + 2Br- (aq.)\n",
+ "E0b = -E0r1 + (2)*E0r3\n",
+ "\n",
+ "#Results\n",
+ "print '%5.3f %5.3f'%(E0a,E0b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.689 1.019\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.3, Page Number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "E01 = 0.771 #Rx1 : Fe3+ + e- -----> Fe2+\n",
+ "E02 = -0.447 #Rx2 : Fe2+ + 2e- -----> Fe\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n1,n2,n3 = 1.,2.,3.\n",
+ "\n",
+ "#Calculations\n",
+ "dG01 = -n1*F*E01\n",
+ "dG02 = -n2*F*E02\n",
+ " #For overall reaction\n",
+ "dG0 = dG01 + dG02\n",
+ "E0Fe3byFe = -dG0/(n3*F)\n",
+ "\n",
+ "#Results\n",
+ "print 'E0 for overall reaction is %5.3f V'%(E0Fe3byFe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E0 for overall reaction is -0.041 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.4, Page Number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E01 = +1.36 #Std. electrode potential for Cl2/Cl\n",
+ "dE0bydT = -1.20e-3 #V/K\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n = 2.\n",
+ "S0H = 0.0 #Std. entropy J/(K.mol) for H+ ,Cl-,H2, Cl2 \n",
+ "S0Cl = 56.5\n",
+ "S0H2 = 130.7\n",
+ "S0Cl2 = 223.1\n",
+ "nH, nCl, nH2, nCl2 = 2, 2, -1,-1\n",
+ "#Calculations\n",
+ "dS01 = n*F*dE0bydT\n",
+ "dS02 =nH*S0H + nCl*S0Cl + nH2*S0H2 + nCl2*S0Cl2\n",
+ "\n",
+ "#Results\n",
+ "print 'Std. entropy change of reaction from dE0bydT is %4.2e and\\nStd entropy values is %4.2e V'%(dS01,dS02)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. entropy change of reaction from dE0bydT is -2.32e+02 and\n",
+ "Std entropy values is -2.41e+02 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.5, Page Number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declaration\n",
+ "E0 = +1.10 #Std. electrode potential for Danniel cell, V\n",
+ " #Zn(s) + Cu++ -----> Zn2+ + Cu\n",
+ "T = 298.15 #V/K\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n = 2.\n",
+ "R = 8.314 #Gas constant, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "K = exp(n*F*E0/(R*T))\n",
+ "\n",
+ "#Results\n",
+ "print 'Equilibrium constant for reaction is %4.2e'%(K)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant for reaction is 1.55e+37\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.6, Page Number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E = +0.29 #Cell emf, V\n",
+ "n = 2.\n",
+ "\n",
+ "#Calculations\n",
+ "Ksp = 10**(-n*E/0.05916)\n",
+ "\n",
+ "#Results\n",
+ "print 'Equilibrium constant for reaction is %4.2e'%(Ksp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant for reaction is 1.57e-10\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.8, Page Number 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E = +1.51 #EMF for reduction of permangnet, V\n",
+ "E01 = -0.7618 #Zn2+ + 2e- --------> Zn (s)\n",
+ "E02 = +0.7996 #Ag+ + e- --------> Ag (s)\n",
+ "E03 = +1.6920 #Au+ + e- --------> Au (s) \n",
+ "\n",
+ "#Calculations\n",
+ "EZn = E - E01\n",
+ "EAg = E - E02\n",
+ "EAu = E - E03\n",
+ "animals = {\"parrot\": 2, \"fish\": 6}\n",
+ "Er = {\"Zn\":EZn,\"Ag\":EAg,\"Au\":EAu}\n",
+ "#Results\n",
+ "print 'Cell potentials for Zn, Ag, Au are %4.2f V, %4.2f V, and %4.2f V'%(EZn, EAg,EAu)\n",
+ "for i in Er:\n",
+ " if Er[i] >0.0:\n",
+ " print '%s has positive cell potential of %4.3f V and Can be oxidized bypermangnate ion' %(i,Er[i])\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cell potentials for Zn, Ag, Au are 2.27 V, 0.71 V, and -0.18 V\n",
+ "Zn has positive cell potential of 2.272 V and Can be oxidized bypermangnate ion\n",
+ "Ag has positive cell potential of 0.710 V and Can be oxidized bypermangnate ion\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_2.ipynb
new file mode 100755
index 00000000..723caafc
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter11_2.ipynb
@@ -0,0 +1,310 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d2becfaa562cf3368a669798b21524329e478ea72b3f08ab186dd0dd13556e25"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Electrochemical Cells, Batteries, and Fuel Cells"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.1, Page Number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "aH = 0.770 #Activity of \n",
+ "fH2 = 1.13 #Fugacity of Hydrogen gas\n",
+ "E0 = 0.0 #Std. electrode potential, V\n",
+ "n = 1.0 #Number of electrons transfered\n",
+ "\n",
+ "#Calculations\n",
+ "E = E0 - (0.05916/n)*log(aH/sqrt(fH2),10)\n",
+ "\n",
+ "#Results\n",
+ "print 'The potential of H+/H2 half cell %5.4f V'%E"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THe potential of H+/H2 half cell 0.00829 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.2, Page Number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "E0r1 = -0.877 #Std Electrod potential for Rx2 : Al3+ + 3e- ------> Al (s) \n",
+ "E0r2 = -1.660 #Std Electrod potential for Rx2 : Al3+ + 3e- ------> Al (s)\n",
+ "E0r3 = +0.071 #Std Electrod potential for Rx3 : AgBr (s) + e- ------> Ag(s) +Br- (aq.)\n",
+ "\n",
+ "#Calculations\n",
+ "#3Fe(OH)2 (s)+ 2Al (s) <---------> 3Fe (s) + 6(OH-) + 2Al3+\n",
+ "E0a = 3*E0r1 + (-2)*E0r2\n",
+ "#Fe (s) + 2OH- + 2AgBr (s) -------> Fe(OH)2 (s) + 2Ag(s) + 2Br- (aq.)\n",
+ "E0b = -E0r1 + (2)*E0r3\n",
+ "\n",
+ "#Results\n",
+ "print '%5.3f %5.3f'%(E0a,E0b)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.689 1.019\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.3, Page Number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "E01 = 0.771 #Rx1 : Fe3+ + e- -----> Fe2+\n",
+ "E02 = -0.447 #Rx2 : Fe2+ + 2e- -----> Fe\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n1,n2,n3 = 1.,2.,3.\n",
+ "\n",
+ "#Calculations\n",
+ "dG01 = -n1*F*E01\n",
+ "dG02 = -n2*F*E02\n",
+ " #For overall reaction\n",
+ "dG0 = dG01 + dG02\n",
+ "E0Fe3byFe = -dG0/(n3*F)\n",
+ "\n",
+ "#Results\n",
+ "print 'E0 for overall reaction is %5.3f V'%(E0Fe3byFe)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "E0 for overall reaction is -0.041 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.4, Page Number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Variable Declaration\n",
+ "E01 = +1.36 #Std. electrode potential for Cl2/Cl\n",
+ "dE0bydT = -1.20e-3 #V/K\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n = 2.\n",
+ "S0H = 0.0 #Std. entropy J/(K.mol) for H+ ,Cl-,H2, Cl2 \n",
+ "S0Cl = 56.5\n",
+ "S0H2 = 130.7\n",
+ "S0Cl2 = 223.1\n",
+ "nH, nCl, nH2, nCl2 = 2, 2, -1,-1\n",
+ "#Calculations\n",
+ "dS01 = n*F*dE0bydT\n",
+ "dS02 =nH*S0H + nCl*S0Cl + nH2*S0H2 + nCl2*S0Cl2\n",
+ "\n",
+ "#Results\n",
+ "print 'Std. entropy change of reaction from dE0bydT is %4.2e and\\nStd entropy values is %4.2e V'%(dS01,dS02)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Std. entropy change of reaction from dE0bydT is -2.32e+02 and\n",
+ "Std entropy values is -2.41e+02 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.5, Page Number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "E0 = +1.10 #Std. electrode potential for Danniel cell, V\n",
+ " #Zn(s) + Cu++ -----> Zn2+ + Cu\n",
+ "T = 298.15 #V/K\n",
+ "F = 96485 #Faraday constant, C/mol\n",
+ "n = 2.\n",
+ "R = 8.314 #Gas constant, J/(mol.K)\n",
+ "\n",
+ "#Calculations\n",
+ "K = exp(n*F*E0/(R*T))\n",
+ "\n",
+ "#Results\n",
+ "print 'Equilibrium constant for reaction is %4.2e'%(K)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant for reaction is 1.55e+37\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.6, Page Number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E = +0.29 #Cell emf, V\n",
+ "n = 2.\n",
+ "\n",
+ "#Calculations\n",
+ "Ksp = 10**(-n*E/0.05916)\n",
+ "\n",
+ "#Results\n",
+ "print 'Equilibrium constant for reaction is %4.2e'%(Ksp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant for reaction is 1.57e-10\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 11.8, Page Number 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "E = +1.51 #EMF for reduction of permangnet, V\n",
+ "E01 = -0.7618 #Zn2+ + 2e- --------> Zn (s)\n",
+ "E02 = +0.7996 #Ag+ + e- --------> Ag (s)\n",
+ "E03 = +1.6920 #Au+ + e- --------> Au (s) \n",
+ "\n",
+ "#Calculations\n",
+ "EZn = E - E01\n",
+ "EAg = E - E02\n",
+ "EAu = E - E03\n",
+ "animals = {\"parrot\": 2, \"fish\": 6}\n",
+ "Er = {\"Zn\":EZn,\"Ag\":EAg,\"Au\":EAu}\n",
+ "#Results\n",
+ "print 'Cell potentials for Zn, Ag, Au are %4.2f V, %4.2f V, and %4.2f V'%(EZn, EAg,EAu)\n",
+ "for i in Er:\n",
+ " if Er[i] >0.0:\n",
+ " print '%s has positive cell potential of %4.3f V and Can be oxidized bypermangnate ion' %(i,Er[i])\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cell potentials for Zn, Ag, Au are 2.27 V, 0.71 V, and -0.18 V\n",
+ "Zn has positive cell potential of 2.272 V and Can be oxidized bypermangnate ion\n",
+ "Ag has positive cell potential of 0.710 V and Can be oxidized bypermangnate ion\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12.ipynb
new file mode 100755
index 00000000..c12bf202
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:41b66ed6dbdebdc3dd934ef963f179576dd8d1497050c4ff934c3909d90dbee3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Probability"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.1, Page Number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.2, Page Number 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 52 #Total cards\n",
+ "nheart = 13 #Number of cards with hearts\n",
+ "\n",
+ "#Calculations\n",
+ "Pe = Fraction(nheart,n)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of one (heart)card picked from a std. stack of %d cards is'%n,Pe"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of one (heart)card picked from a std. stack of 52 cards is 1/4\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.3, Page Number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.4, Page Number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "n1 = 2 #Two spin states for 1st electron in orbit 1\n",
+ "n2 = 2 #Two spin states for 2nd electron in orbit 2\n",
+ "\n",
+ "#Calculation\n",
+ "M = n1*n1\n",
+ "\n",
+ "#Results\n",
+ "print 'Possible spin states for excited state are %2d'%M"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Possible spin states for excited state are 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.5, Page Number 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 12 #Total Number of players \n",
+ "j = 5 #Number player those can play match\n",
+ "\n",
+ "#Calculation\n",
+ "P = factorial(n)/factorial(n-j)\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum Possible permutations for 5 player to play are %8d'%P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Possible permutations for 5 player to play are 95040\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.6, Page Number 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 52 #Number of cards in std . pack\n",
+ "j = 5 #Number of cards in subset\n",
+ "\n",
+ "#Calculation\n",
+ "C = factorial(n)/(factorial(j)*factorial(n-j))\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum Possible 5-card combinations are %8d'%C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Possible 5-card combinations are 2598960\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.7, Page Number 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "x = 6 #Number of electrons\n",
+ "n = 2 #Number of states\n",
+ "\n",
+ "#Calculation\n",
+ "P = factorial(x)/(factorial(n)*factorial(x-n))\n",
+ "\n",
+ "#Results\n",
+ "print 'Total number of quantum states are %3d'%P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total number of quantum states are 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.8, Page Number 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 50 #Number of separate experiments\n",
+ "j1 = 25 #Number of sucessful expt with heads up\n",
+ "j2 = 10 #Number of sucessful expt with heads up\n",
+ "\n",
+ "#Calculation\n",
+ "C25 = factorial(n)/(factorial(j1)*factorial(n-j1))\n",
+ "PE25 = Fraction(1,2)**j1\n",
+ "PEC25 = (1-Fraction(1,2))**(n-j1)\n",
+ "P25 = C25*PE25*PEC25\n",
+ "\n",
+ "C10 = factorial(n)/(factorial(j2)*factorial(n-j2))\n",
+ "PE10 = Fraction(1,2)**j2\n",
+ "PEC10 = (1-Fraction(1,2))**(n-j2)\n",
+ "P10 = C10*PE10*PEC10\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of getting 25 head out of 50 tossing is %4.3f'%(float(P25))\n",
+ "print 'Probability of getting 10 head out of 50 tossing is %4.3e'%(float(P10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of getting 25 head out of 50 tossing is 0.112\n",
+ "Probability of getting 10 head out of 50 tossing is 9.124e-06\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.9, Page Number 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial, log\n",
+ "#Variable Declaration\n",
+ "N = [10,50,100] #Valures for N\n",
+ "\n",
+ "#Calculations\n",
+ "print ' N ln(N!) ln(N!)sterling Error'\n",
+ "for i in N:\n",
+ " lnN = log(factorial(i))\n",
+ " lnNs = i*log(i)-i\n",
+ " err = abs(lnN-lnNs)\n",
+ " print '%3d %5.2f %5.2f %4.2f'%(i,lnN,lnNs, err)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " N ln(N!) ln(N!)sterling Error\n",
+ " 10 15.10 13.03 2.08\n",
+ " 50 148.48 145.60 2.88\n",
+ "100 363.74 360.52 3.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.10, Page Number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fi = 1 #Probability of receiving any card\n",
+ "n = 52 #Number od Cards\n",
+ "\n",
+ "#Calculations\n",
+ "sum = 0\n",
+ "for i in range(52):\n",
+ " sum = sum + fi\n",
+ "\n",
+ "Pxi = Fraction(fi,sum)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of receiving any card', Pxi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of receiving any card 1/52\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.11, Page Number 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "from scipy import integrate\n",
+ "#Variable Declaration\n",
+ "\n",
+ "#Calculations\n",
+ "fun = lambda x: exp(-0.05*x)\n",
+ "Pt = 0\n",
+ "for i in range(0,101):\n",
+ " Pt = Pt + fun(i)\n",
+ " \n",
+ "Ptot = integrate.quad(fun, 0.0, 100.)\n",
+ "\n",
+ "#Results\n",
+ "print 'Sum of Px considering it as discrete function %4.1f'%Pt\n",
+ "print 'Sum of Px considering it as contineous function %4.1f'%Ptot[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(19.865241060018292, 2.205484801456136e-13)\n",
+ "Sum of Px considering it as discrete function 20.4\n",
+ "Sum of Px considering it as contineous function 19.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.12, Page Number 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r = Symbol('r') #Radius of inner circle\n",
+ "C = [5,2,0]\n",
+ "#Calculations\n",
+ "A1 = pi*r**2\n",
+ "A2 = pi*(2*r)**2 - A1\n",
+ "A3 = pi*(3*r)**2 - (A1 + A2)\n",
+ "At = A1 + A2 + A3\n",
+ "f1 = A1/At\n",
+ "f2 = A2/At\n",
+ "f3 = A3/At\n",
+ "sf = f1 + f2 + f3\n",
+ "\n",
+ "ns = (f1*C[0]+f2*C[1]+f3*C[2])/sf\n",
+ "\n",
+ "#Results\n",
+ "print 'A1, A2, A3: ', A1, A2, A3\n",
+ "print 'f1, f2, f3: ', f1,f2,f3\n",
+ "print 'Average payout $', round(float(ns),2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A1, A2, A3: pi*r**2 3*pi*r**2 5*pi*r**2\n",
+ "f1, f2, f3: 1/9 1/3 5/9\n",
+ "Average payout $ 1.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_1.ipynb
new file mode 100755
index 00000000..9fb89e58
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_1.ipynb
@@ -0,0 +1,479 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c19a90db6a87eae57c23bc4670f56b33da607fbe1caf5a0bc049c2dde83bee35"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Probability"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.1, Page Number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varible declaration\n",
+ "n = range(1,51,1)\n",
+ "Prob = 0\n",
+ "for x in n:\n",
+ " Prob = 1./len(n) + Prob\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of picking up any one ball is %3.1f'%Prob"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of picking up any one ball is 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.2, Page Number 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 52 #Total cards\n",
+ "nheart = 13 #Number of cards with hearts\n",
+ "\n",
+ "#Calculations\n",
+ "Pe = Fraction(nheart,n)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of one (heart)card picked from a std. stack of %d cards is'%n,Pe"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of one (heart)card picked from a std. stack of 52 cards is 1/4\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.3, Page Number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.4, Page Number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "n1 = 2 #Two spin states for 1st electron in orbit 1\n",
+ "n2 = 2 #Two spin states for 2nd electron in orbit 2\n",
+ "\n",
+ "#Calculation\n",
+ "M = n1*n1\n",
+ "\n",
+ "#Results\n",
+ "print 'Possible spin states for excited state are %2d'%M"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Possible spin states for excited state are 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.5, Page Number 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 12 #Total Number of players \n",
+ "j = 5 #Number player those can play match\n",
+ "\n",
+ "#Calculation\n",
+ "P = factorial(n)/factorial(n-j)\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum Possible permutations for 5 player to play are %8d'%P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Possible permutations for 5 player to play are 95040\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.6, Page Number 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 52 #Number of cards in std . pack\n",
+ "j = 5 #Number of cards in subset\n",
+ "\n",
+ "#Calculation\n",
+ "C = factorial(n)/(factorial(j)*factorial(n-j))\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum Possible 5-card combinations are %8d'%C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Possible 5-card combinations are 2598960\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.7, Page Number 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "x = 6 #Number of electrons\n",
+ "n = 2 #Number of states\n",
+ "\n",
+ "#Calculation\n",
+ "P = factorial(x)/(factorial(n)*factorial(x-n))\n",
+ "\n",
+ "#Results\n",
+ "print 'Total number of quantum states are %3d'%P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total number of quantum states are 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.8, Page Number 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 50 #Number of separate experiments\n",
+ "j1 = 25 #Number of sucessful expt with heads up\n",
+ "j2 = 10 #Number of sucessful expt with heads up\n",
+ "\n",
+ "#Calculation\n",
+ "C25 = factorial(n)/(factorial(j1)*factorial(n-j1))\n",
+ "PE25 = Fraction(1,2)**j1\n",
+ "PEC25 = (1-Fraction(1,2))**(n-j1)\n",
+ "P25 = C25*PE25*PEC25\n",
+ "\n",
+ "C10 = factorial(n)/(factorial(j2)*factorial(n-j2))\n",
+ "PE10 = Fraction(1,2)**j2\n",
+ "PEC10 = (1-Fraction(1,2))**(n-j2)\n",
+ "P10 = C10*PE10*PEC10\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of getting 25 head out of 50 tossing is %4.3f'%(float(P25))\n",
+ "print 'Probability of getting 10 head out of 50 tossing is %4.3e'%(float(P10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of getting 25 head out of 50 tossing is 0.112\n",
+ "Probability of getting 10 head out of 50 tossing is 9.124e-06\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.9, Page Number 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial, log\n",
+ "#Variable Declaration\n",
+ "N = [10,50,100] #Valures for N\n",
+ "\n",
+ "#Calculations\n",
+ "print ' N ln(N!) ln(N!)sterling Error'\n",
+ "for i in N:\n",
+ " lnN = log(factorial(i))\n",
+ " lnNs = i*log(i)-i\n",
+ " err = abs(lnN-lnNs)\n",
+ " print '%3d %5.2f %5.2f %4.2f'%(i,lnN,lnNs, err)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " N ln(N!) ln(N!)sterling Error\n",
+ " 10 15.10 13.03 2.08\n",
+ " 50 148.48 145.60 2.88\n",
+ "100 363.74 360.52 3.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.10, Page Number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fi = 1 #Probability of receiving any card\n",
+ "n = 52 #Number od Cards\n",
+ "\n",
+ "#Calculations\n",
+ "sum = 0\n",
+ "for i in range(52):\n",
+ " sum = sum + fi\n",
+ "\n",
+ "Pxi = Fraction(fi,sum)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of receiving any card', Pxi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of receiving any card 1/52\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.11, Page Number 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "from scipy import integrate\n",
+ "#Variable Declaration\n",
+ "\n",
+ "#Calculations\n",
+ "fun = lambda x: exp(-0.05*x)\n",
+ "Pt = 0\n",
+ "for i in range(0,101):\n",
+ " Pt = Pt + fun(i)\n",
+ " \n",
+ "Ptot = integrate.quad(fun, 0.0, 100.)\n",
+ "\n",
+ "#Results\n",
+ "print 'Sum of Px considering it as discrete function %4.1f'%Pt\n",
+ "print 'Sum of Px considering it as contineous function %4.1f'%Ptot[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(19.865241060018292, 2.205484801456136e-13)\n",
+ "Sum of Px considering it as discrete function 20.4\n",
+ "Sum of Px considering it as contineous function 19.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.12, Page Number 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r = Symbol('r') #Radius of inner circle\n",
+ "C = [5,2,0]\n",
+ "#Calculations\n",
+ "A1 = pi*r**2\n",
+ "A2 = pi*(2*r)**2 - A1\n",
+ "A3 = pi*(3*r)**2 - (A1 + A2)\n",
+ "At = A1 + A2 + A3\n",
+ "f1 = A1/At\n",
+ "f2 = A2/At\n",
+ "f3 = A3/At\n",
+ "sf = f1 + f2 + f3\n",
+ "\n",
+ "ns = (f1*C[0]+f2*C[1]+f3*C[2])/sf\n",
+ "\n",
+ "#Results\n",
+ "print 'A1, A2, A3: ', A1, A2, A3\n",
+ "print 'f1, f2, f3: ', f1,f2,f3\n",
+ "print 'Average payout $', round(float(ns),2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A1, A2, A3: pi*r**2 3*pi*r**2 5*pi*r**2\n",
+ "f1, f2, f3: 1/9 1/3 5/9\n",
+ "Average payout $ 1.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_2.ipynb
new file mode 100755
index 00000000..3706fbca
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter12_2.ipynb
@@ -0,0 +1,479 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:829a63088d9b470e9c4646990e2a5951ca622e4ff802f1bdf0a653073bcbae67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Probability"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.1, Page Number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Varible declaration\n",
+ "n = range(1,51,1)\n",
+ "Prob = 0\n",
+ "for x in n:\n",
+ " Prob = 1./len(n) + Prob\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of picking up any one ball is %3.1f'%Prob"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of picking up any one ball is 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.2, Page Number 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 52 #Total cards\n",
+ "nheart = 13 #Number of cards with hearts\n",
+ "\n",
+ "#Calculations\n",
+ "Pe = Fraction(nheart,n)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of one (heart)card picked from a std. stack of %d cards is'%n,Pe"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of one (heart)card picked from a std. stack of 52 cards is 1/4\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.3, Page Number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.4, Page Number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "n1 = 2 #Two spin states for 1st electron in orbit 1\n",
+ "n2 = 2 #Two spin states for 2nd electron in orbit 2\n",
+ "\n",
+ "#Calculation\n",
+ "M = n1*n1\n",
+ "\n",
+ "#Results\n",
+ "print 'Possible spin states for excited state are %2d'%M"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Possible spin states for excited state are 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.5, Page Number 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 12 #Total Number of players \n",
+ "j = 5 #Number player those can play match\n",
+ "\n",
+ "#Calculation\n",
+ "P = factorial(n)/factorial(n-j)\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum Possible permutations for 5 player to play are %8d'%P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Possible permutations for 5 player to play are 95040\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.6, Page Number 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 52 #Number of cards in std . pack\n",
+ "j = 5 #Number of cards in subset\n",
+ "\n",
+ "#Calculation\n",
+ "C = factorial(n)/(factorial(j)*factorial(n-j))\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum Possible 5-card combinations are %8d'%C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum Possible 5-card combinations are 2598960\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.7, Page Number 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "x = 6 #Number of electrons\n",
+ "n = 2 #Number of states\n",
+ "\n",
+ "#Calculation\n",
+ "P = factorial(x)/(factorial(n)*factorial(x-n))\n",
+ "\n",
+ "#Results\n",
+ "print 'Total number of quantum states are %3d'%P"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total number of quantum states are 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.8, Page Number 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "n = 50 #Number of separate experiments\n",
+ "j1 = 25 #Number of sucessful expt with heads up\n",
+ "j2 = 10 #Number of sucessful expt with heads up\n",
+ "\n",
+ "#Calculation\n",
+ "C25 = factorial(n)/(factorial(j1)*factorial(n-j1))\n",
+ "PE25 = Fraction(1,2)**j1\n",
+ "PEC25 = (1-Fraction(1,2))**(n-j1)\n",
+ "P25 = C25*PE25*PEC25\n",
+ "\n",
+ "C10 = factorial(n)/(factorial(j2)*factorial(n-j2))\n",
+ "PE10 = Fraction(1,2)**j2\n",
+ "PEC10 = (1-Fraction(1,2))**(n-j2)\n",
+ "P10 = C10*PE10*PEC10\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of getting 25 head out of 50 tossing is %4.3f'%(float(P25))\n",
+ "print 'Probability of getting 10 head out of 50 tossing is %4.3e'%(float(P10))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of getting 25 head out of 50 tossing is 0.112\n",
+ "Probability of getting 10 head out of 50 tossing is 9.124e-06\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.9, Page Number 290"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial, log\n",
+ "#Variable Declaration\n",
+ "N = [10,50,100] #Valures for N\n",
+ "\n",
+ "#Calculations\n",
+ "print ' N ln(N!) ln(N!)sterling Error'\n",
+ "for i in N:\n",
+ " lnN = log(factorial(i))\n",
+ " lnNs = i*log(i)-i\n",
+ " err = abs(lnN-lnNs)\n",
+ " print '%3d %5.2f %5.2f %4.2f'%(i,lnN,lnNs, err)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " N ln(N!) ln(N!)sterling Error\n",
+ " 10 15.10 13.03 2.08\n",
+ " 50 148.48 145.60 2.88\n",
+ "100 363.74 360.52 3.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.10, Page Number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from fractions import Fraction\n",
+ "\n",
+ "#Variable Declaration\n",
+ "fi = 1 #Probability of receiving any card\n",
+ "n = 52 #Number od Cards\n",
+ "\n",
+ "#Calculations\n",
+ "sum = 0\n",
+ "for i in range(52):\n",
+ " sum = sum + fi\n",
+ "\n",
+ "Pxi = Fraction(fi,sum)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of receiving any card', Pxi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of receiving any card 1/52\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.11, Page Number 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "from scipy import integrate\n",
+ "#Variable Declaration\n",
+ "\n",
+ "#Calculations\n",
+ "fun = lambda x: exp(-0.05*x)\n",
+ "Pt = 0\n",
+ "for i in range(0,101):\n",
+ " Pt = Pt + fun(i)\n",
+ " \n",
+ "Ptot = integrate.quad(fun, 0.0, 100.)\n",
+ "\n",
+ "#Results\n",
+ "print 'Sum of Px considering it as discrete function %4.1f'%Pt\n",
+ "print 'Sum of Px considering it as contineous function %4.1f'%Ptot[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(19.865241060018292, 2.205484801456136e-13)\n",
+ "Sum of Px considering it as discrete function 20.4\n",
+ "Sum of Px considering it as contineous function 19.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 12.12, Page Number 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import Symbol\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r = Symbol('r') #Radius of inner circle\n",
+ "C = [5,2,0]\n",
+ "#Calculations\n",
+ "A1 = pi*r**2\n",
+ "A2 = pi*(2*r)**2 - A1\n",
+ "A3 = pi*(3*r)**2 - (A1 + A2)\n",
+ "At = A1 + A2 + A3\n",
+ "f1 = A1/At\n",
+ "f2 = A2/At\n",
+ "f3 = A3/At\n",
+ "sf = f1 + f2 + f3\n",
+ "\n",
+ "ns = (f1*C[0]+f2*C[1]+f3*C[2])/sf\n",
+ "\n",
+ "#Results\n",
+ "print 'A1, A2, A3: ', A1,', ', A2,', ', A3\n",
+ "print 'f1, f2, f3: ', f1,f2,f3\n",
+ "print 'Average payout $', round(float(ns),2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A1, A2, A3: 3.14159265358979*r**2 , 9.42477796076938*r**2 , 15.707963267949*r**2\n",
+ "f1, f2, f3: 0.111111111111111 0.333333333333333 0.555555555555556\n",
+ "Average payout $ 1.22\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13.ipynb
new file mode 100755
index 00000000..da21e674
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13.ipynb
@@ -0,0 +1,223 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a0be5f6d37f6b1696997f58d0cc492cc18c5483e1f769555c228f3249920c51f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Boltzmann Distribution"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.1, Page Number 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "aH = 40\n",
+ "N = 100\n",
+ "\n",
+ "#Calculations\n",
+ "aT = 100 - aH\n",
+ "We = factorial(N)/(factorial(aT)*factorial(aH))\n",
+ "Wexpected = factorial(N)/(factorial(N/2)*factorial(N/2))\n",
+ "\n",
+ "#Results\n",
+ "print 'The observed weight %5.2e compared to %5.2e'%(We,Wexpected)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The observed weight 1.37e+28 compared to 1.01e+29\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.2, Page Number 310"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.3, Page Number 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "p0 = 0.633 #Probabilities of Energy level 1,2,3 \n",
+ "p1 = 0.233\n",
+ "p2 = 0.086\n",
+ "\n",
+ "#Calculation\n",
+ "p4 = 1. -(p0+p1+p2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of finding an oscillator at energy level of n>3 is %4.3f i.e.%4.1f percent'%(p4,p4*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of finding an oscillator at energy level of n>3 is 0.048 i.e. 4.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.4, Page Number 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "p0 = 0.394 #Probabilities of Energy level 1,2,3 \n",
+ "p1by2 = 0.239\n",
+ "p2 = 0.145\n",
+ "\n",
+ "#Calculation\n",
+ "p4 = 1. -(p0+p1by2+p2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of finding an oscillator at energy level of n>3 is %4.3f'%(p4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of finding an oscillator at energy level of n>3 is 0.222\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.5, Page Number 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "I2 = 208 #Vibrational frequency, cm-1 \n",
+ "T = 298 #Molecular Temperature, K\n",
+ "c = 3.00e10 #speed of light, cm/s\n",
+ "h = 6.626e-34 #Planks constant, J/K\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "#Calculation\n",
+ "q = 1./(1.-exp(-h*c*I2/(k*T)))\n",
+ "p2 = exp(-2*h*c*I2/(k*T))/q\n",
+ "\n",
+ "#Results\n",
+ "print 'Partition function is %4.3f'%(q)\n",
+ "print 'Probability of occupying the second vibrational state n=2 is %4.3f'%(p2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Partition function is 1.577\n",
+ "Probability of occupying the second vibrational state n=2 is 0.085\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.6, Page Number 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "B = 1.45 #Magnetic field streangth, Teslas \n",
+ "T = 298 #Molecular Temperature, K\n",
+ "c = 3.00e10 #speed of light, cm/s\n",
+ "h = 6.626e-34 #Planks constant, J/K\n",
+ "k = 1.38e-23 #Boltzman constant, J/K \n",
+ "gnbn = 2.82e-26 #J/T\n",
+ "#Calculation\n",
+ "ahpbyahm = exp(-gnbn*B/(k*T))\n",
+ "\n",
+ "#Results\n",
+ "print 'Occupation Number is %7.6f'%(ahpbyahm)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Occupation Number is 0.999990\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_1.ipynb
new file mode 100755
index 00000000..8aaf79b0
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_1.ipynb
@@ -0,0 +1,280 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:78db264f9210996c6e59dc097dbc6696221fac03055a9d5ba5033673d3e33c9f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Boltzmann Distribution"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.1, Page Number 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "aH = 40 #Number of heads\n",
+ "N = 100 #Total events\n",
+ "\n",
+ "#Calculations\n",
+ "aT = 100 - aH\n",
+ "We = factorial(N)/(factorial(aT)*factorial(aH))\n",
+ "Wexpected = factorial(N)/(factorial(N/2)*factorial(N/2))\n",
+ "\n",
+ "#Results\n",
+ "print 'The observed weight %5.2e compared to %5.2e'%(We,Wexpected)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The observed weight 1.37e+28 compared to 1.01e+29\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.2, Page Number 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Varialbe declaration\n",
+ "n = 10000 #Total number of particles\n",
+ "\n",
+ "\n",
+ "#Calcualtions\n",
+ "def ster(i):\n",
+ " return i*log(i)-i\n",
+ "\n",
+ "n1, n2, n3, W = symbols('n1 n2 n3 W',positive=True)\n",
+ "\n",
+ "n2 = 5000 - 2*n3\n",
+ "n1 = 10000 - n2 -n3\n",
+ "logW = ster(n) - ster(n1) - ster(n2) - ster(n3) \n",
+ "fun = diff(logW, n3)\n",
+ "dfun = diff(fun, n3)\n",
+ "x0 = 10.0\n",
+ "err = 1.0\n",
+ "while err>0.001:\n",
+ " f = fun.subs(n3,x0)\n",
+ " df = dfun.subs(n3,x0)\n",
+ " xnew = x0 - f/df\n",
+ " err = abs(x0-xnew)/x0\n",
+ " x0 = xnew\n",
+ "\n",
+ "x0 = int(x0)\n",
+ "N2 = n2.subs(n3,x0)\n",
+ "N3 = x0\n",
+ "n1 = n1.subs(n3,x0)\n",
+ "N1 = n1.subs(n2,N2)\n",
+ "lnW = logW.subs(n3,N3)\n",
+ "\n",
+ "#Results\n",
+ "print 'At maximum value of ln(W)'\n",
+ "print 'Values of N1 : %4d, N2: %4d and N3: %4d '%(N1, N2,N3)\n",
+ "print 'Maximum value of ln(W)= %6d'%lnW"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At maximum value of ln(W)\n",
+ "Values of N1 : 6162, N2: 2676 and N3: 1162 \n",
+ "Maximum value of ln(W)= 9012\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.3, Page Number 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "p0 = 0.633 #Probabilities of Energy level 1,2,3 \n",
+ "p1 = 0.233\n",
+ "p2 = 0.086\n",
+ "\n",
+ "#Calculation\n",
+ "p4 = 1. -(p0+p1+p2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of finding an oscillator at energy level of n>3 is %4.3f i.e.%4.1f percent'%(p4,p4*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of finding an oscillator at energy level of n>3 is 0.048 i.e. 4.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.4, Page Number 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "p0 = 0.394 #Probabilities of Energy level 1,2,3 \n",
+ "p1by2 = 0.239\n",
+ "p2 = 0.145\n",
+ "\n",
+ "#Calculation\n",
+ "p4 = 1. -(p0+p1by2+p2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of finding an oscillator at energy level of n>3 is %4.3f'%(p4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of finding an oscillator at energy level of n>3 is 0.222\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.5, Page Number 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "I2 = 208 #Vibrational frequency, cm-1 \n",
+ "T = 298 #Molecular Temperature, K\n",
+ "c = 3.00e10 #speed of light, cm/s\n",
+ "h = 6.626e-34 #Planks constant, J/K\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "#Calculation\n",
+ "q = 1./(1.-exp(-h*c*I2/(k*T)))\n",
+ "p2 = exp(-2*h*c*I2/(k*T))/q\n",
+ "\n",
+ "#Results\n",
+ "print 'Partition function is %4.3f'%(q)\n",
+ "print 'Probability of occupying the second vibrational state n=2 is %4.3f'%(p2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Partition function is 1.577\n",
+ "Probability of occupying the second vibrational state n=2 is 0.085\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.6, Page Number 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "B = 1.45 #Magnetic field streangth, Teslas \n",
+ "T = 298 #Molecular Temperature, K\n",
+ "c = 3.00e10 #speed of light, cm/s\n",
+ "h = 6.626e-34 #Planks constant, J/K\n",
+ "k = 1.38e-23 #Boltzman constant, J/K \n",
+ "gnbn = 2.82e-26 #J/T\n",
+ "#Calculation\n",
+ "ahpbyahm = exp(-gnbn*B/(k*T))\n",
+ "\n",
+ "#Results\n",
+ "print 'Occupation Number is %7.6f'%(ahpbyahm)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Occupation Number is 0.999990\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_2.ipynb
new file mode 100755
index 00000000..8aaf79b0
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter13_2.ipynb
@@ -0,0 +1,280 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:78db264f9210996c6e59dc097dbc6696221fac03055a9d5ba5033673d3e33c9f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Boltzmann Distribution"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.1, Page Number 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import factorial\n",
+ "\n",
+ "#Variable Declaration\n",
+ "\n",
+ "aH = 40 #Number of heads\n",
+ "N = 100 #Total events\n",
+ "\n",
+ "#Calculations\n",
+ "aT = 100 - aH\n",
+ "We = factorial(N)/(factorial(aT)*factorial(aH))\n",
+ "Wexpected = factorial(N)/(factorial(N/2)*factorial(N/2))\n",
+ "\n",
+ "#Results\n",
+ "print 'The observed weight %5.2e compared to %5.2e'%(We,Wexpected)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The observed weight 1.37e+28 compared to 1.01e+29\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.2, Page Number 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from sympy import *\n",
+ "\n",
+ "#Varialbe declaration\n",
+ "n = 10000 #Total number of particles\n",
+ "\n",
+ "\n",
+ "#Calcualtions\n",
+ "def ster(i):\n",
+ " return i*log(i)-i\n",
+ "\n",
+ "n1, n2, n3, W = symbols('n1 n2 n3 W',positive=True)\n",
+ "\n",
+ "n2 = 5000 - 2*n3\n",
+ "n1 = 10000 - n2 -n3\n",
+ "logW = ster(n) - ster(n1) - ster(n2) - ster(n3) \n",
+ "fun = diff(logW, n3)\n",
+ "dfun = diff(fun, n3)\n",
+ "x0 = 10.0\n",
+ "err = 1.0\n",
+ "while err>0.001:\n",
+ " f = fun.subs(n3,x0)\n",
+ " df = dfun.subs(n3,x0)\n",
+ " xnew = x0 - f/df\n",
+ " err = abs(x0-xnew)/x0\n",
+ " x0 = xnew\n",
+ "\n",
+ "x0 = int(x0)\n",
+ "N2 = n2.subs(n3,x0)\n",
+ "N3 = x0\n",
+ "n1 = n1.subs(n3,x0)\n",
+ "N1 = n1.subs(n2,N2)\n",
+ "lnW = logW.subs(n3,N3)\n",
+ "\n",
+ "#Results\n",
+ "print 'At maximum value of ln(W)'\n",
+ "print 'Values of N1 : %4d, N2: %4d and N3: %4d '%(N1, N2,N3)\n",
+ "print 'Maximum value of ln(W)= %6d'%lnW"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At maximum value of ln(W)\n",
+ "Values of N1 : 6162, N2: 2676 and N3: 1162 \n",
+ "Maximum value of ln(W)= 9012\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.3, Page Number 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "p0 = 0.633 #Probabilities of Energy level 1,2,3 \n",
+ "p1 = 0.233\n",
+ "p2 = 0.086\n",
+ "\n",
+ "#Calculation\n",
+ "p4 = 1. -(p0+p1+p2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of finding an oscillator at energy level of n>3 is %4.3f i.e.%4.1f percent'%(p4,p4*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of finding an oscillator at energy level of n>3 is 0.048 i.e. 4.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.4, Page Number 315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "p0 = 0.394 #Probabilities of Energy level 1,2,3 \n",
+ "p1by2 = 0.239\n",
+ "p2 = 0.145\n",
+ "\n",
+ "#Calculation\n",
+ "p4 = 1. -(p0+p1by2+p2)\n",
+ "\n",
+ "#Results\n",
+ "print 'Probability of finding an oscillator at energy level of n>3 is %4.3f'%(p4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Probability of finding an oscillator at energy level of n>3 is 0.222\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.5, Page Number 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "I2 = 208 #Vibrational frequency, cm-1 \n",
+ "T = 298 #Molecular Temperature, K\n",
+ "c = 3.00e10 #speed of light, cm/s\n",
+ "h = 6.626e-34 #Planks constant, J/K\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "#Calculation\n",
+ "q = 1./(1.-exp(-h*c*I2/(k*T)))\n",
+ "p2 = exp(-2*h*c*I2/(k*T))/q\n",
+ "\n",
+ "#Results\n",
+ "print 'Partition function is %4.3f'%(q)\n",
+ "print 'Probability of occupying the second vibrational state n=2 is %4.3f'%(p2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Partition function is 1.577\n",
+ "Probability of occupying the second vibrational state n=2 is 0.085\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 13.6, Page Number 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "B = 1.45 #Magnetic field streangth, Teslas \n",
+ "T = 298 #Molecular Temperature, K\n",
+ "c = 3.00e10 #speed of light, cm/s\n",
+ "h = 6.626e-34 #Planks constant, J/K\n",
+ "k = 1.38e-23 #Boltzman constant, J/K \n",
+ "gnbn = 2.82e-26 #J/T\n",
+ "#Calculation\n",
+ "ahpbyahm = exp(-gnbn*B/(k*T))\n",
+ "\n",
+ "#Results\n",
+ "print 'Occupation Number is %7.6f'%(ahpbyahm)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Occupation Number is 0.999990\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14.ipynb
new file mode 100755
index 00000000..daf732e9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14.ipynb
@@ -0,0 +1,513 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1671a89ef38b6b7afbc72d0d6b374367e1ac4b1abd5ab2d480c98bd2b6a92ca8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Ensemble and Molecular Partition Function"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.1, Page Number 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "l = 0.01 #Box length, m \n",
+ "n1,n2 = 2,1 #Energy levels states\n",
+ "m = 5.31e-26 #mass of oxygen molecule, kg\n",
+ "\n",
+ "#Calculations \n",
+ "dE = (n1+n2)*h**2/(8*m*l**2)\n",
+ "dEcm = dE/(h*c*1e2)\n",
+ "#Results\n",
+ "print 'Difference in energy levels is %3.2e J or %3.2e 1/cm'%(dE,dEcm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in energy levels is 3.10e-38 J or 1.56e-15\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.2, Page Number 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "v = 1.0 #Volume, L\n",
+ "T = 298.0 #Temeprature of Ar, K\n",
+ "m = 6.63e-26 #Mass of Argon molecule, kg \n",
+ "\n",
+ "#Calculations \n",
+ "GAMA = h/sqrt(2*pi*m*k*T)\n",
+ "v = v*1e-3\n",
+ "qT3D = v/GAMA**3\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave length is %3.2e m and\\nTranslational partition function is %3.2e'%(GAMA,qT3D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave length is 1.60e-11 m and\n",
+ "Translational partition function is 2.44e+29\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.4, Page Number 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "J = 4 #Rotational energy level\n",
+ "B = 8.46 #Spectrum, 1/cm\n",
+ "\n",
+ "#Calculations \n",
+ "T = (2*J+1)**2*h*c*100*B/(2*k)\n",
+ "#Results\n",
+ "print 'Spectrum will be observed at %4.0f K'%(T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Spectrum will be observed at 494 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.5, Page Number 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "B = 60.589 #Spectrum for H2, 1/cm\n",
+ "T = 1000 #Temperture of Hydrogen, K\n",
+ "#Calculations \n",
+ "qR = k*T/(2*h*c*100*B)\n",
+ "qRs = 0.0\n",
+ "#for J in range(101):\n",
+ "# print J\n",
+ "# if (J%2 == 0):\n",
+ "# qRs = qRs + (2*J+1)*exp(-h*c*100*B*J*(J+1)/(k*T)\n",
+ "# else:\n",
+ "# qRs = qRs + 3*(2*J+1)*exp(-h*c*100*B*J*(J+1)/(k*T))\n",
+ "#print qRs/4\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function of H2 at %4.0f is %4.3f'%(T,qR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function of H2 at 1000 is 5.729\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.6, Page Number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "B = 0.0374 #Spectrum for H2, 1/cm\n",
+ "T = 100.0 #Temperture of Hydrogen, K\n",
+ "sigma = 2.\n",
+ "#Calculations\n",
+ "ThetaR = h*c*100*B/k\n",
+ "qR = T/(sigma*ThetaR)\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function of H2 at %4.0f K is %4.3f'%(T,qR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function of H2 at 100 K is 928.121\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.7, Page Number 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "Ba = 1.48 #Spectrum for OCS, 1/cm\n",
+ "Bb = [2.84,0.191,0.179] #Spectrum for ONCI, 1/cm\n",
+ "Bc = [9.40,1.29,1.13] #Spectrum for CH2O, 1/cm\n",
+ "T = 298.0 #Temperture of Hydrogen, K\n",
+ "sigmab = 1\n",
+ "sigmac = 2\n",
+ "\n",
+ "#Calculations\n",
+ "qRa = k*T/(h*c*100*Ba)\n",
+ "qRb = (sqrt(pi)/sigmab)*(k*T/(h*c*100))**(3./2)*sqrt(1/Bb[0])*sqrt(1/Bb[1])*sqrt(1/Bb[2])\n",
+ "qRc = (sqrt(pi)/sigmac)*(k*T/(h*c*100))**(3./2)*sqrt(1/Bc[0])*sqrt(1/Bc[1])*sqrt(1/Bc[2])\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function for OCS, ONCI, CH2O at %4.0f K are %4.0f, %4.0f, and %4.0f respectively'%(T,qRa,qRb,qRc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function for OCS, ONCI, CH2O at 298 K are 140, 16926, and 712 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.8, Page Number 344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "Ba = 1.48 #Frequency for OCS, 1/cm\n",
+ "Bb = [2.84,0.191,0.179] #Frequency for ONCI, 1/cm\n",
+ "Bc = [9.40,1.29,1.13] #Frequency for CH2O, 1/cm\n",
+ "T298 = 298.0 #Temperture of Hydrogen, K\n",
+ "T1000 = 1000 #Temperture of Hydrogen, K\n",
+ "nubar = 208\n",
+ "\n",
+ "#Calculations\n",
+ "qv298 = 1./(1.-exp(-h*c*100*nubar/(k*T298)))\n",
+ "qv1000 = 1./(1.-exp(-h*c*100*nubar/(k*T1000)))\n",
+ "\n",
+ "#Results\n",
+ "print 'Vibrational partition function for I2 at %4d and %4d are %4.2f K and %4.2f respectively'%(T298, T1000,qv298, qv1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational partition function for I2 at 298 and 1000 are 1.58 K and 3.86 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.9, Page Number 346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "T = 298 #Temeprature, K\n",
+ "nubar = [450, 945, 1100] #Vibrational mode frequencies for OClO, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "Qv = 1.\n",
+ "for i in nubar:\n",
+ " qv = 1./(1.-exp(-h*c*100*i/(k*T)))\n",
+ " print 'At %4.0f 1/cm the q = %4.3f'%(i,qv)\n",
+ " Qv = Qv*qv\n",
+ "#Results\n",
+ "print 'Total Vibrational partition function for OClO at %4.1f K is %4.3f'%(T, Qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 450 1/cm the q = 1.128\n",
+ "At 945 1/cm the q = 1.010\n",
+ "At 1100 1/cm the q = 1.005\n",
+ "Total Vibrational partition function for OClO at 298.0 K is 1.146 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.10, Page Number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "T = 298 #Temeprature, K\n",
+ "nubar = 917 #Vibrational mode frequencies for F2, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "ThetaV = h*c*100*nubar/k\n",
+ "Th = 10*ThetaV\n",
+ "qv = 1/(1.-exp(-ThetaV/Th))\n",
+ "\n",
+ "#Results\n",
+ "print 'Vibrational partition function for F2 at %4.1f K is %4.3f'%(T, qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational partition function for F2 at 298.0 K is 10.508\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.11, Page Number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "T = 1000 #Temeprature, K\n",
+ "nubar = [1388, 667.4,667.4,2349] #Vibrational mode frequencies for CO2, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "Qv = 1.\n",
+ "for i in nubar:\n",
+ " qv = 1./(1.-exp(-h*c*100*i/(k*T)))\n",
+ " print 'At %4.0f 1/cm the q = %4.3f'%(i,qv)\n",
+ " Qv = Qv*qv\n",
+ "#Results\n",
+ "print 'Total Vibrational partition function for OClO at %4.1f K is %4.3f'%(T, Qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 1388 1/cm the q = 1.157\n",
+ "At 667 1/cm the q = 1.619\n",
+ "At 667 1/cm the q = 1.619\n",
+ "At 2349 1/cm the q = 1.035\n",
+ "Total Vibrational partition function for OClO at 1000.0 K is 3.139\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.12, Page Number 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "T = 298. #Temeprature, K\n",
+ "n = [0,1,2,3,4,5,6,7,8] #Energy levels\n",
+ "E0 = [0,137.38,323.46,552.96,2112.28,2153.21,2220.11,2311.36,2424.78] #Energies, 1/cm\n",
+ "g0 = [4,6,8,10,2,4,6,8,10]\n",
+ "\n",
+ "#Calculations\n",
+ "qE = 0.0\n",
+ "for i in range(9):\n",
+ " a =g0[i]*exp(-h*c*100*E0[i]/(k*T))\n",
+ " qE = qE + a\n",
+ "\n",
+ "#Results\n",
+ "print 'Electronic partition function for F2 at %4.1f K is %4.2f'%(T, qE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Electronic partition function for F2 at 298.0 K is 9.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_1.ipynb
new file mode 100755
index 00000000..74ee404f
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_1.ipynb
@@ -0,0 +1,505 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bb7917df7f0f53519b214ba6078e165a23f61bf03cb0026cea4d88d66f714bcc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Ensemble and Molecular Partition Function"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.1, Page Number 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "l = 0.01 #Box length, m \n",
+ "n1,n2 = 2,1 #Energy levels states\n",
+ "m = 5.31e-26 #mass of oxygen molecule, kg\n",
+ "\n",
+ "#Calculations \n",
+ "dE = (n1+n2)*h**2/(8*m*l**2)\n",
+ "dEcm = dE/(h*c*1e2)\n",
+ "#Results\n",
+ "print 'Difference in energy levels is %3.2e J or %3.2e 1/cm'%(dE,dEcm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in energy levels is 3.10e-38 J or 1.56e-15\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.2, Page Number 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "v = 1.0 #Volume, L\n",
+ "T = 298.0 #Temeprature of Ar, K\n",
+ "m = 6.63e-26 #Mass of Argon molecule, kg \n",
+ "\n",
+ "#Calculations \n",
+ "GAMA = h/sqrt(2*pi*m*k*T)\n",
+ "v = v*1e-3\n",
+ "qT3D = v/GAMA**3\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave length is %3.2e m and\\nTranslational partition function is %3.2e'%(GAMA,qT3D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave length is 1.60e-11 m and\n",
+ "Translational partition function is 2.44e+29\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.4, Page Number 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "J = 4 #Rotational energy level\n",
+ "B = 8.46 #Spectrum, 1/cm\n",
+ "\n",
+ "#Calculations \n",
+ "T = (2*J+1)**2*h*c*100*B/(2*k)\n",
+ "#Results\n",
+ "print 'Spectrum will be observed at %4.0f K'%(T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Spectrum will be observed at 494 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.5, Page Number 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "B = 60.589 #Spectrum for H2, 1/cm\n",
+ "T = 1000 #Temperture of Hydrogen, K\n",
+ "#Calculations \n",
+ "qR = k*T/(2*h*c*100*B)\n",
+ "qRs = 0.0\n",
+ "#for J in range(101):\n",
+ "# print J\n",
+ "# if (J%2 == 0):\n",
+ "# qRs = qRs + (2*J+1)*exp(-h*c*100*B*J*(J+1)/(k*T)\n",
+ "# else:\n",
+ "# qRs = qRs + 3*(2*J+1)*exp(-h*c*100*B*J*(J+1)/(k*T))\n",
+ "#print qRs/4\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function of H2 at %4.0f is %4.3f'%(T,qR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function of H2 at 1000 is 5.729\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.6, Page Number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "B = 0.0374 #Spectrum for H2, 1/cm\n",
+ "T = 100.0 #Temperture of Hydrogen, K\n",
+ "sigma = 2.\n",
+ "\n",
+ "#Calculations\n",
+ "ThetaR = h*c*100*B/k\n",
+ "qR = T/(sigma*ThetaR)\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function of H2 at %4.0f K is %4.3f'%(T,qR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function of H2 at 100 K is 928.121\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.7, Page Number 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "Ba = 1.48 #Spectrum for OCS, 1/cm\n",
+ "Bb = [2.84,0.191,0.179] #Spectrum for ONCI, 1/cm\n",
+ "Bc = [9.40,1.29,1.13] #Spectrum for CH2O, 1/cm\n",
+ "T = 298.0 #Temperture of Hydrogen, K\n",
+ "sigmab = 1\n",
+ "sigmac = 2\n",
+ "\n",
+ "#Calculations\n",
+ "qRa = k*T/(h*c*100*Ba)\n",
+ "qRb = (sqrt(pi)/sigmab)*(k*T/(h*c*100))**(3./2)*sqrt(1/Bb[0])*sqrt(1/Bb[1])*sqrt(1/Bb[2])\n",
+ "qRc = (sqrt(pi)/sigmac)*(k*T/(h*c*100))**(3./2)*sqrt(1/Bc[0])*sqrt(1/Bc[1])*sqrt(1/Bc[2])\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function for OCS, ONCI, CH2O at %4.0f K are %4.0f, %4.0f, and %4.0f respectively'%(T,qRa,qRb,qRc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function for OCS, ONCI, CH2O at 298 K are 140, 16926, and 712 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.8, Page Number 344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "Ba = 1.48 #Frequency for OCS, 1/cm\n",
+ "Bb = [2.84,0.191,0.179] #Frequency for ONCI, 1/cm\n",
+ "Bc = [9.40,1.29,1.13] #Frequency for CH2O, 1/cm\n",
+ "T298 = 298.0 #Temperture of Hydrogen, K\n",
+ "T1000 = 1000 #Temperture of Hydrogen, K\n",
+ "nubar = 208\n",
+ "\n",
+ "#Calculations\n",
+ "qv298 = 1./(1.-exp(-h*c*100*nubar/(k*T298)))\n",
+ "qv1000 = 1./(1.-exp(-h*c*100*nubar/(k*T1000)))\n",
+ "\n",
+ "#Results\n",
+ "print 'Vibrational partition function for I2 at %4d and %4d are %4.2f K and %4.2f respectively'%(T298, T1000,qv298, qv1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational partition function for I2 at 298 and 1000 are 1.58 K and 3.86 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.9, Page Number 346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "T = 298 #Temeprature, K\n",
+ "nubar = [450, 945, 1100] #Vibrational mode frequencies for OClO, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "Qv = 1.\n",
+ "for i in nubar:\n",
+ " qv = 1./(1.-exp(-h*c*100*i/(k*T)))\n",
+ " print 'At %4.0f 1/cm the q = %4.3f'%(i,qv)\n",
+ " Qv = Qv*qv\n",
+ "#Results\n",
+ "print 'Total Vibrational partition function for OClO at %4.1f K is %4.3f'%(T, Qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 450 1/cm the q = 1.128\n",
+ "At 945 1/cm the q = 1.010\n",
+ "At 1100 1/cm the q = 1.005\n",
+ "Total Vibrational partition function for OClO at 298.0 K is 1.146 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.10, Page Number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "T = 298 #Temeprature, K\n",
+ "nubar = 917 #Vibrational mode frequencies for F2, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "ThetaV = h*c*100*nubar/k\n",
+ "Th = 10*ThetaV\n",
+ "qv = 1/(1.-exp(-ThetaV/Th))\n",
+ "\n",
+ "#Results\n",
+ "print 'Vibrational partition function for F2 at %4.1f K is %4.3f'%(T, qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational partition function for F2 at 298.0 K is 10.508\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.11, Page Number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "T = 1000 #Temeprature, K\n",
+ "nubar = [1388, 667.4,667.4,2349] #Vibrational mode frequencies for CO2, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "Qv = 1.\n",
+ "for i in nubar:\n",
+ " qv = 1./(1.-exp(-h*c*100*i/(k*T)))\n",
+ " print 'At %4.0f 1/cm the q = %4.3f'%(i,qv)\n",
+ " Qv = Qv*qv\n",
+ "#Results\n",
+ "print 'Total Vibrational partition function for OClO at %4.1f K is %4.3f'%(T, Qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 1388 1/cm the q = 1.157\n",
+ "At 667 1/cm the q = 1.619\n",
+ "At 667 1/cm the q = 1.619\n",
+ "At 2349 1/cm the q = 1.035\n",
+ "Total Vibrational partition function for OClO at 1000.0 K is 3.139\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.12, Page Number 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "T = 298. #Temeprature, K\n",
+ "n = [0,1,2,3,4,5,6,7,8] #Energy levels\n",
+ "E0 = [0,137.38,323.46,552.96,2112.28,2153.21,2220.11,2311.36,2424.78] #Energies, 1/cm\n",
+ "g0 = [4,6,8,10,2,4,6,8,10]\n",
+ "\n",
+ "#Calculations\n",
+ "qE = 0.0\n",
+ "for i in range(9):\n",
+ " a =g0[i]*exp(-h*c*100*E0[i]/(k*T))\n",
+ " qE = qE + a\n",
+ "\n",
+ "#Results\n",
+ "print 'Electronic partition function for F2 at %4.1f K is %4.2f'%(T, qE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Electronic partition function for F2 at 298.0 K is 9.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_2.ipynb
new file mode 100755
index 00000000..74ee404f
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter14_2.ipynb
@@ -0,0 +1,505 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bb7917df7f0f53519b214ba6078e165a23f61bf03cb0026cea4d88d66f714bcc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Ensemble and Molecular Partition Function"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.1, Page Number 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "l = 0.01 #Box length, m \n",
+ "n1,n2 = 2,1 #Energy levels states\n",
+ "m = 5.31e-26 #mass of oxygen molecule, kg\n",
+ "\n",
+ "#Calculations \n",
+ "dE = (n1+n2)*h**2/(8*m*l**2)\n",
+ "dEcm = dE/(h*c*1e2)\n",
+ "#Results\n",
+ "print 'Difference in energy levels is %3.2e J or %3.2e 1/cm'%(dE,dEcm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in energy levels is 3.10e-38 J or 1.56e-15\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.2, Page Number 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "v = 1.0 #Volume, L\n",
+ "T = 298.0 #Temeprature of Ar, K\n",
+ "m = 6.63e-26 #Mass of Argon molecule, kg \n",
+ "\n",
+ "#Calculations \n",
+ "GAMA = h/sqrt(2*pi*m*k*T)\n",
+ "v = v*1e-3\n",
+ "qT3D = v/GAMA**3\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave length is %3.2e m and\\nTranslational partition function is %3.2e'%(GAMA,qT3D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave length is 1.60e-11 m and\n",
+ "Translational partition function is 2.44e+29\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.4, Page Number 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "J = 4 #Rotational energy level\n",
+ "B = 8.46 #Spectrum, 1/cm\n",
+ "\n",
+ "#Calculations \n",
+ "T = (2*J+1)**2*h*c*100*B/(2*k)\n",
+ "#Results\n",
+ "print 'Spectrum will be observed at %4.0f K'%(T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Spectrum will be observed at 494 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.5, Page Number 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "B = 60.589 #Spectrum for H2, 1/cm\n",
+ "T = 1000 #Temperture of Hydrogen, K\n",
+ "#Calculations \n",
+ "qR = k*T/(2*h*c*100*B)\n",
+ "qRs = 0.0\n",
+ "#for J in range(101):\n",
+ "# print J\n",
+ "# if (J%2 == 0):\n",
+ "# qRs = qRs + (2*J+1)*exp(-h*c*100*B*J*(J+1)/(k*T)\n",
+ "# else:\n",
+ "# qRs = qRs + 3*(2*J+1)*exp(-h*c*100*B*J*(J+1)/(k*T))\n",
+ "#print qRs/4\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function of H2 at %4.0f is %4.3f'%(T,qR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function of H2 at 1000 is 5.729\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.6, Page Number 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "B = 0.0374 #Spectrum for H2, 1/cm\n",
+ "T = 100.0 #Temperture of Hydrogen, K\n",
+ "sigma = 2.\n",
+ "\n",
+ "#Calculations\n",
+ "ThetaR = h*c*100*B/k\n",
+ "qR = T/(sigma*ThetaR)\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function of H2 at %4.0f K is %4.3f'%(T,qR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function of H2 at 100 K is 928.121\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.7, Page Number 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, sqrt\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "Ba = 1.48 #Spectrum for OCS, 1/cm\n",
+ "Bb = [2.84,0.191,0.179] #Spectrum for ONCI, 1/cm\n",
+ "Bc = [9.40,1.29,1.13] #Spectrum for CH2O, 1/cm\n",
+ "T = 298.0 #Temperture of Hydrogen, K\n",
+ "sigmab = 1\n",
+ "sigmac = 2\n",
+ "\n",
+ "#Calculations\n",
+ "qRa = k*T/(h*c*100*Ba)\n",
+ "qRb = (sqrt(pi)/sigmab)*(k*T/(h*c*100))**(3./2)*sqrt(1/Bb[0])*sqrt(1/Bb[1])*sqrt(1/Bb[2])\n",
+ "qRc = (sqrt(pi)/sigmac)*(k*T/(h*c*100))**(3./2)*sqrt(1/Bc[0])*sqrt(1/Bc[1])*sqrt(1/Bc[2])\n",
+ "\n",
+ "#Results\n",
+ "print 'Rotation partition function for OCS, ONCI, CH2O at %4.0f K are %4.0f, %4.0f, and %4.0f respectively'%(T,qRa,qRb,qRc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotation partition function for OCS, ONCI, CH2O at 298 K are 140, 16926, and 712 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.8, Page Number 344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi, exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "Ba = 1.48 #Frequency for OCS, 1/cm\n",
+ "Bb = [2.84,0.191,0.179] #Frequency for ONCI, 1/cm\n",
+ "Bc = [9.40,1.29,1.13] #Frequency for CH2O, 1/cm\n",
+ "T298 = 298.0 #Temperture of Hydrogen, K\n",
+ "T1000 = 1000 #Temperture of Hydrogen, K\n",
+ "nubar = 208\n",
+ "\n",
+ "#Calculations\n",
+ "qv298 = 1./(1.-exp(-h*c*100*nubar/(k*T298)))\n",
+ "qv1000 = 1./(1.-exp(-h*c*100*nubar/(k*T1000)))\n",
+ "\n",
+ "#Results\n",
+ "print 'Vibrational partition function for I2 at %4d and %4d are %4.2f K and %4.2f respectively'%(T298, T1000,qv298, qv1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational partition function for I2 at 298 and 1000 are 1.58 K and 3.86 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.9, Page Number 346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "\n",
+ "T = 298 #Temeprature, K\n",
+ "nubar = [450, 945, 1100] #Vibrational mode frequencies for OClO, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "Qv = 1.\n",
+ "for i in nubar:\n",
+ " qv = 1./(1.-exp(-h*c*100*i/(k*T)))\n",
+ " print 'At %4.0f 1/cm the q = %4.3f'%(i,qv)\n",
+ " Qv = Qv*qv\n",
+ "#Results\n",
+ "print 'Total Vibrational partition function for OClO at %4.1f K is %4.3f'%(T, Qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 450 1/cm the q = 1.128\n",
+ "At 945 1/cm the q = 1.010\n",
+ "At 1100 1/cm the q = 1.005\n",
+ "Total Vibrational partition function for OClO at 298.0 K is 1.146 respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.10, Page Number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "T = 298 #Temeprature, K\n",
+ "nubar = 917 #Vibrational mode frequencies for F2, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "ThetaV = h*c*100*nubar/k\n",
+ "Th = 10*ThetaV\n",
+ "qv = 1/(1.-exp(-ThetaV/Th))\n",
+ "\n",
+ "#Results\n",
+ "print 'Vibrational partition function for F2 at %4.1f K is %4.3f'%(T, qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational partition function for F2 at 298.0 K is 10.508\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.11, Page Number 348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "T = 1000 #Temeprature, K\n",
+ "nubar = [1388, 667.4,667.4,2349] #Vibrational mode frequencies for CO2, 1/cm\n",
+ "\n",
+ "#Calculations\n",
+ "Qv = 1.\n",
+ "for i in nubar:\n",
+ " qv = 1./(1.-exp(-h*c*100*i/(k*T)))\n",
+ " print 'At %4.0f 1/cm the q = %4.3f'%(i,qv)\n",
+ " Qv = Qv*qv\n",
+ "#Results\n",
+ "print 'Total Vibrational partition function for OClO at %4.1f K is %4.3f'%(T, Qv)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "At 1388 1/cm the q = 1.157\n",
+ "At 667 1/cm the q = 1.619\n",
+ "At 667 1/cm the q = 1.619\n",
+ "At 2349 1/cm the q = 1.035\n",
+ "Total Vibrational partition function for OClO at 1000.0 K is 3.139\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 14.12, Page Number 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declarations\n",
+ "h = 6.626e-34 #Planks constant, J.s\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "c = 3.0e8 #speed of light, m/s\n",
+ "T = 298. #Temeprature, K\n",
+ "n = [0,1,2,3,4,5,6,7,8] #Energy levels\n",
+ "E0 = [0,137.38,323.46,552.96,2112.28,2153.21,2220.11,2311.36,2424.78] #Energies, 1/cm\n",
+ "g0 = [4,6,8,10,2,4,6,8,10]\n",
+ "\n",
+ "#Calculations\n",
+ "qE = 0.0\n",
+ "for i in range(9):\n",
+ " a =g0[i]*exp(-h*c*100*E0[i]/(k*T))\n",
+ " qE = qE + a\n",
+ "\n",
+ "#Results\n",
+ "print 'Electronic partition function for F2 at %4.1f K is %4.2f'%(T, qE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Electronic partition function for F2 at 298.0 K is 9.45\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15.ipynb
new file mode 100755
index 00000000..e19500e1
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15.ipynb
@@ -0,0 +1,214 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f8110fb6016a142f9c7bb6eab2fb7171930a565929eb5cb2f65ff0d315425e0a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Statistical Thermodyanamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.2, Page Number 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "hnu = 1.00e-20\n",
+ "NA = 6.023e23\n",
+ "k = 1.38e-23\n",
+ "U = 1.00e3\n",
+ "n = 1\n",
+ "#Calcualtions\n",
+ "T = hnu/(k*log(n*NA*hnu/U-1.))\n",
+ "\n",
+ "#Results\n",
+ "print 'For Internal energy to be %4.1f J temperature will be %4.1f K'%(U,T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Internal energy to be 1000.0 J temperature will be 449.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.3, Page Number 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "g0 = 3.0\n",
+ "c = 3.00e8\n",
+ "h = 6.626e-34\n",
+ "NA = 6.023e23\n",
+ "k = 1.38e-23\n",
+ "labda = 1263e-9\n",
+ "T = 500.\n",
+ "n = 1.0\n",
+ "#Calcualtions\n",
+ "beta = 1./(k*T)\n",
+ "eps = h*c/labda\n",
+ "qE = g0 + exp(-beta*eps)\n",
+ "UE = n*NA*eps*exp(-beta*eps)/qE\n",
+ "\n",
+ "#Results\n",
+ "print 'Energy of excited state is %4.2e J'%eps\n",
+ "print 'Electronic partition function qE is %4.3e'%qE\n",
+ "print 'Electronic partition function UE is %4.3e J'%UE"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy of excited state is 1.57e-19\n",
+ "Electronic partition function qE is 3.000e+00\n",
+ "Electronic partition function UE is 3.922e-06 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.5, Page Number 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Mne = 0.0201797\n",
+ "Mkr = 0.0837980\n",
+ "Vmne = 0.0224\n",
+ "Vmkr = 0.0223\n",
+ "h = 6.626e-34\n",
+ "NA = 6.023e23\n",
+ "k = 1.38e-23\n",
+ "T = 298\n",
+ "R = 8.314\n",
+ "n = 1.0\n",
+ "\n",
+ "#Calcualtions\n",
+ "mne = Mne/NA\n",
+ "mkr = Mkr/NA\n",
+ "Labdane = sqrt(h**2/(2*pi*mne*k*T))\n",
+ "Labdakr = sqrt(h**2/(2*pi*mkr*k*T))\n",
+ "Sne = 5.*R/2 + R*log(Vmne/Labdane**3)-R*log(NA)\n",
+ "Skr = 5.*R/2 + R*log(Vmkr/Labdakr**3)-R*log(NA)\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave lengths for Ne is %4.2e m3'%Labdane\n",
+ "print 'Std. Molar entropy for Ne is %4.2f J/(mol.K)'%Sne\n",
+ "print 'Thermal wave lengths for Kr is %4.2e m3'%Labdakr\n",
+ "print 'Std. Molar entropy for Kr is %4.2f J/(mol.K)'%Skr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave lengths for Ne is 2.25e-11 m3\n",
+ "Std. Molar entropy for Ne is 145.46 J/(mol.K)\n",
+ "Thermal wave lengths for Kr is 1.11e-11 m3\n",
+ "Std. Molar entropy for Kr is 163.18 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.8, Page Number 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "M = 0.040\n",
+ "h = 6.626e-34\n",
+ "NA = 6.023e23\n",
+ "k = 1.38e-23\n",
+ "T = 298.15\n",
+ "P = 1e5\n",
+ "R = 8.314\n",
+ "n = 1.0\n",
+ "\n",
+ "#Calcualtions\n",
+ "m = M/NA\n",
+ "Labda3 = (h**2/(2*pi*m*k*T))**(3./2)\n",
+ "G0 = -n*R*T*log(k*T/(P*Labda3))\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave lengths for Ne is %4.2e m3'%Labda3\n",
+ "print 'The Gibbs energy for 1 mol of Ar is %6.2f kJ'%(G0/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave lengths for Ne is 4.09e-33 m3\n",
+ "The Gibbs energy for 1 mol of Ar is -39.97 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_1.ipynb
new file mode 100755
index 00000000..103b8a14
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_1.ipynb
@@ -0,0 +1,216 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6dc49c200858406b9f3434d1ee04fae39e6605a618c992670722f8ceac7e7c3e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Statistical Thermodyanamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.2, Page Number 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "U = 1.00e3 #Total internal energy, J\n",
+ "hnu = 1.00e-20 #Energy level separation, J\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "n = 1 #Number of moles, mol\n",
+ "\n",
+ "#Calcualtions\n",
+ "T = hnu/(k*log(n*NA*hnu/U-1.))\n",
+ "\n",
+ "#Results\n",
+ "print 'For Internal energy to be %4.1f J temperature will be %4.1f K'%(U,T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Internal energy to be 1000.0 J temperature will be 449.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.3, Page Number 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "g0 = 3.0 #Ground State partition function\n",
+ "labda = 1263e-9 #Wave length in nm\n",
+ "T = 500. #Temperature, K\n",
+ "c = 3.00e8 #Speed of light, m/s\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "n = 1.0 #Number of moles, mol\n",
+ "h = 6.626e-34 #Planks's Constant, J.s\n",
+ "\n",
+ "#Calcualtions\n",
+ "beta = 1./(k*T)\n",
+ "eps = h*c/labda\n",
+ "qE = g0 + exp(-beta*eps)\n",
+ "UE = n*NA*eps*exp(-beta*eps)/qE\n",
+ "\n",
+ "#Results\n",
+ "print 'Energy of excited state is %4.2e J'%eps\n",
+ "print 'Electronic partition function qE is %4.3e'%qE\n",
+ "print 'Electronic contribution to internal enrgy is %4.3e J'%UE"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy of excited state is 1.57e-19 J\n",
+ "Electronic partition function qE is 3.000e+00\n",
+ "Electronic contribution to internal enrgy is 3.921e-06 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.5, Page Number 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Mne = 0.0201797 #Molecular wt of ne, kg/mol \n",
+ "Mkr = 0.0837980 #Molecular wt of kr, kg/mol\n",
+ "Vmne = 0.0224 #Std. state molar volume of ne, m3\n",
+ "Vmkr = 0.0223 #Std. state molar volume of kr, m3\n",
+ "h = 6.626e-34 #Planks's Constant, J.s\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "T = 298 #Std. state temeprature,K \n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "n = 1.0 #Number of mole, mol\n",
+ "\n",
+ "#Calcualtions\n",
+ "mne = Mne/NA\n",
+ "mkr = Mkr/NA\n",
+ "Labdane = sqrt(h**2/(2*pi*mne*k*T))\n",
+ "Labdakr = sqrt(h**2/(2*pi*mkr*k*T))\n",
+ "Sne = 5.*R/2 + R*log(Vmne/Labdane**3)-R*log(NA)\n",
+ "Skr = 5.*R/2 + R*log(Vmkr/Labdakr**3)-R*log(NA)\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave lengths for Ne is %4.2e m3'%Labdane\n",
+ "print 'Std. Molar entropy for Ne is %4.2f J/(mol.K)'%Sne\n",
+ "print 'Thermal wave lengths for Kr is %4.2e m3'%Labdakr\n",
+ "print 'Std. Molar entropy for Kr is %4.2f J/(mol.K)'%Skr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave lengths for Ne is 2.25e-11 m3\n",
+ "Std. Molar entropy for Ne is 145.46 J/(mol.K)\n",
+ "Thermal wave lengths for Kr is 1.11e-11 m3\n",
+ "Std. Molar entropy for Kr is 163.18 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.8, Page Number 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "M = 0.040 #Moleculat wt of Ar, kg/mol\n",
+ "h = 6.626e-34 #Planks's Constant, J.s\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "T = 298.15 #Std. state temeprature,K \n",
+ "P = 1e5 #Std. state pressure, Pa\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "n = 1.0 #Number of mole, mol\n",
+ "\n",
+ "#Calcualtions\n",
+ "m = M/NA\n",
+ "Labda3 = (h**2/(2*pi*m*k*T))**(3./2)\n",
+ "G0 = -n*R*T*log(k*T/(P*Labda3))\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave lengths for Ne is %4.2e m3'%Labda3\n",
+ "print 'The Gibbs energy for 1 mol of Ar is %6.2f kJ'%(G0/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave lengths for Ne is 4.09e-33 m3\n",
+ "The Gibbs energy for 1 mol of Ar is -39.97 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_2.ipynb
new file mode 100755
index 00000000..103b8a14
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter15_2.ipynb
@@ -0,0 +1,216 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6dc49c200858406b9f3434d1ee04fae39e6605a618c992670722f8ceac7e7c3e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Statistical Thermodyanamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.2, Page Number 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "U = 1.00e3 #Total internal energy, J\n",
+ "hnu = 1.00e-20 #Energy level separation, J\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "n = 1 #Number of moles, mol\n",
+ "\n",
+ "#Calcualtions\n",
+ "T = hnu/(k*log(n*NA*hnu/U-1.))\n",
+ "\n",
+ "#Results\n",
+ "print 'For Internal energy to be %4.1f J temperature will be %4.1f K'%(U,T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Internal energy to be 1000.0 J temperature will be 449.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.3, Page Number 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "g0 = 3.0 #Ground State partition function\n",
+ "labda = 1263e-9 #Wave length in nm\n",
+ "T = 500. #Temperature, K\n",
+ "c = 3.00e8 #Speed of light, m/s\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "n = 1.0 #Number of moles, mol\n",
+ "h = 6.626e-34 #Planks's Constant, J.s\n",
+ "\n",
+ "#Calcualtions\n",
+ "beta = 1./(k*T)\n",
+ "eps = h*c/labda\n",
+ "qE = g0 + exp(-beta*eps)\n",
+ "UE = n*NA*eps*exp(-beta*eps)/qE\n",
+ "\n",
+ "#Results\n",
+ "print 'Energy of excited state is %4.2e J'%eps\n",
+ "print 'Electronic partition function qE is %4.3e'%qE\n",
+ "print 'Electronic contribution to internal enrgy is %4.3e J'%UE"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy of excited state is 1.57e-19 J\n",
+ "Electronic partition function qE is 3.000e+00\n",
+ "Electronic contribution to internal enrgy is 3.921e-06 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.5, Page Number 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi, sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Mne = 0.0201797 #Molecular wt of ne, kg/mol \n",
+ "Mkr = 0.0837980 #Molecular wt of kr, kg/mol\n",
+ "Vmne = 0.0224 #Std. state molar volume of ne, m3\n",
+ "Vmkr = 0.0223 #Std. state molar volume of kr, m3\n",
+ "h = 6.626e-34 #Planks's Constant, J.s\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "T = 298 #Std. state temeprature,K \n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "n = 1.0 #Number of mole, mol\n",
+ "\n",
+ "#Calcualtions\n",
+ "mne = Mne/NA\n",
+ "mkr = Mkr/NA\n",
+ "Labdane = sqrt(h**2/(2*pi*mne*k*T))\n",
+ "Labdakr = sqrt(h**2/(2*pi*mkr*k*T))\n",
+ "Sne = 5.*R/2 + R*log(Vmne/Labdane**3)-R*log(NA)\n",
+ "Skr = 5.*R/2 + R*log(Vmkr/Labdakr**3)-R*log(NA)\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave lengths for Ne is %4.2e m3'%Labdane\n",
+ "print 'Std. Molar entropy for Ne is %4.2f J/(mol.K)'%Sne\n",
+ "print 'Thermal wave lengths for Kr is %4.2e m3'%Labdakr\n",
+ "print 'Std. Molar entropy for Kr is %4.2f J/(mol.K)'%Skr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave lengths for Ne is 2.25e-11 m3\n",
+ "Std. Molar entropy for Ne is 145.46 J/(mol.K)\n",
+ "Thermal wave lengths for Kr is 1.11e-11 m3\n",
+ "Std. Molar entropy for Kr is 163.18 J/(mol.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 15.8, Page Number 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "M = 0.040 #Moleculat wt of Ar, kg/mol\n",
+ "h = 6.626e-34 #Planks's Constant, J.s\n",
+ "NA = 6.022e23 #Avagadro's Number, 1/mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "T = 298.15 #Std. state temeprature,K \n",
+ "P = 1e5 #Std. state pressure, Pa\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "n = 1.0 #Number of mole, mol\n",
+ "\n",
+ "#Calcualtions\n",
+ "m = M/NA\n",
+ "Labda3 = (h**2/(2*pi*m*k*T))**(3./2)\n",
+ "G0 = -n*R*T*log(k*T/(P*Labda3))\n",
+ "\n",
+ "#Results\n",
+ "print 'Thermal wave lengths for Ne is %4.2e m3'%Labda3\n",
+ "print 'The Gibbs energy for 1 mol of Ar is %6.2f kJ'%(G0/1000)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal wave lengths for Ne is 4.09e-33 m3\n",
+ "The Gibbs energy for 1 mol of Ar is -39.97 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16.ipynb
new file mode 100755
index 00000000..3aac10d8
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16.ipynb
@@ -0,0 +1,284 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ae5c10cebc67e59fefae332eaff3aec21c49c3c4a8e87dfaab8a18fadc8340a5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Kinetic Theory of Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.2, Page Number 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperatureof Gas, K\n",
+ "MNe = 0.020 #Molecular wt of Ne, kg/mol\n",
+ "MKr = 0.083 #Molecular wt of Kr, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "vmpNe = sqrt(2*R*T/MNe)\n",
+ "vmpKr = sqrt(2*R*T/MKr)\n",
+ "\n",
+ "#Results\n",
+ "print 'Most probable speed of Ne and Krypton at 298 K are %4.0f, %4.0f m/s'%(vmpNe,vmpKr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most probable speed of Ne and Krypton at 298 K are 498, 244\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.2, Page Number 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperatureof Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "vmp = sqrt(2*R*T/M)\n",
+ "vave = sqrt(8*R*T/(M*pi))\n",
+ "vrms = sqrt(3*R*T/M)\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum, average, root mean square speed of Ar\\nat 298 K are %4.0f, %4.0f, %4.0f m/s'%(vmp,vave,vrms)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum, average, root mean square speed of Ar\n",
+ "at 298 K are 352, 397, 431 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.4, Page Numbe 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "P = 101325 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "V = 1.0 #Volume of Container, L\n",
+ "\n",
+ "#Calculations\n",
+ "Zc = P*NA/sqrt(2*pi*R*T*M)\n",
+ "Nc = Zc*A\n",
+ "#Results\n",
+ "print 'Number of Collisions %4.2e per s'%(Nc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of Collisions 2.45e+27 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.5, Page Number 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "P0 = 1013.25 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "V = 1.0 #Volume of Container, L\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "t = 3600 #time of effusion, s\n",
+ "A = 0.01 #Area, um2\n",
+ "\n",
+ "#Calculations\n",
+ "A = A*1e-12\n",
+ "V = V*1e-3\n",
+ "expo = (A*t/V)*(k*T/(2*pi*M/NA))\n",
+ "P = P0*exp(-expo)\n",
+ "#Results\n",
+ "print 'Pressure after 1 hr of effusion is %4.3e Pa'%(P/101325)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure after 1 hr of effusion is 1.00e-02 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.6, Page Number 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.044 #Molecular wt of CO2, kg/mol\n",
+ "P = 101325 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "sigm = 5.2e-19 #m2\n",
+ "\n",
+ "#Calculations\n",
+ "zCO2 = (P*NA/(R*T))*sigm*sqrt(2)*sqrt(8*R*T/(pi*M)) \n",
+ "#Results\n",
+ "print 'Single particle collisional frequency is %4.1e per s'%(zCO2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Single particle collisional frequency is 6.9e+09 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.7, Page Number 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "MAr = 0.04 #Molecular wt of Ar, kg/mol\n",
+ "MKr = 0.084 #Molecular wt of Kr, kg/mol\n",
+ "pAr = 360 #Partial Pressure Ar, torr\n",
+ "pKr = 400 #Partial Pressure Kr, torr\n",
+ "rAr = 0.17e-9 #Hard sphere radius of Ar, m\n",
+ "rKr = 0.20e-9 #Hard sphere radius of Kr, m\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "\n",
+ "#Calculations\n",
+ "pAr = pAr*101325/760\n",
+ "pKr = pKr*101325/760\n",
+ "p1 = pAr*NA/(R*T)\n",
+ "p2 = pKr*NA/(R*T)\n",
+ "sigm = pi*(rAr+rKr)**2\n",
+ "mu = MAr*MKr/((MAr+MKr)*NA)\n",
+ "p3 = sqrt(8*k*T/(pi*mu)) \n",
+ "zArKr = p1*p2*sigm*p3\n",
+ "\n",
+ "#Results\n",
+ "print 'Collisional frequency is %4.2e m-3s-1'%(zArKr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collisional frequency is 3.14e+34 m-3s-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_1.ipynb
new file mode 100755
index 00000000..ca56b415
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_1.ipynb
@@ -0,0 +1,284 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e4f3286f01de06b8e633d17405a3c84337f344a5c6fc5eb4c6bbd0b064d6eee8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Kinetic Theory of Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.2, Page Number 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperatureof Gas, K\n",
+ "MNe = 0.020 #Molecular wt of Ne, kg/mol\n",
+ "MKr = 0.083 #Molecular wt of Kr, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "vmpNe = sqrt(2*R*T/MNe)\n",
+ "vmpKr = sqrt(2*R*T/MKr)\n",
+ "\n",
+ "#Results\n",
+ "print 'Most probable speed of Ne and Krypton at 298 K are %4.0f, %4.0f m/s'%(vmpNe,vmpKr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most probable speed of Ne and Krypton at 298 K are 498, 244\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.2, Page Number 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperatureof Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "vmp = sqrt(2*R*T/M)\n",
+ "vave = sqrt(8*R*T/(M*pi))\n",
+ "vrms = sqrt(3*R*T/M)\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum, average, root mean square speed of Ar\\nat 298 K are %4.0f, %4.0f, %4.0f m/s'%(vmp,vave,vrms)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum, average, root mean square speed of Ar\n",
+ "at 298 K are 352, 397, 431 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.4, Page Numbe 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "P = 101325 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "V = 1.0 #Volume of Container, L\n",
+ "\n",
+ "#Calculations\n",
+ "Zc = P*NA/sqrt(2*pi*R*T*M)\n",
+ "Nc = Zc*A\n",
+ "#Results\n",
+ "print 'Number of Collisions %4.2e per s'%(Nc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of Collisions 2.45e+27 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.5, Page Number 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "P0 = 1013.25 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "V = 1.0 #Volume of Container, L\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "t = 3600 #time of effusion, s\n",
+ "A = 0.01 #Area, um2\n",
+ "\n",
+ "#Calculations\n",
+ "A = A*1e-12\n",
+ "V = V*1e-3\n",
+ "expo = (A*t/V)*(k*T/(2*pi*M/NA))\n",
+ "P = P0*exp(-expo)\n",
+ "#Results\n",
+ "print 'Pressure after 1 hr of effusion is %4.3e Pa'%(P/101325)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure after 1 hr of effusion is 1.00e-02 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.6, Page Number 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.044 #Molecular wt of CO2, kg/mol\n",
+ "P = 101325 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "sigm = 5.2e-19 #m2\n",
+ "\n",
+ "#Calculations\n",
+ "zCO2 = (P*NA/(R*T))*sigm*sqrt(2)*sqrt(8*R*T/(pi*M)) \n",
+ "#Results\n",
+ "print 'Single particle collisional frequency is %4.1e per s'%(zCO2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Single particle collisional frequency is 6.9e+09 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.7, Page Number 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "MAr = 0.04 #Molecular wt of Ar, kg/mol\n",
+ "MKr = 0.084 #Molecular wt of Kr, kg/mol\n",
+ "pAr = 360 #Partial Pressure Ar, torr\n",
+ "pKr = 400 #Partial Pressure Kr, torr\n",
+ "rAr = 0.17e-9 #Hard sphere radius of Ar, m\n",
+ "rKr = 0.20e-9 #Hard sphere radius of Kr, m\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "\n",
+ "#Calculations\n",
+ "pAr = pAr*101325/760\n",
+ "pKr = pKr*101325/760\n",
+ "p1 = pAr*NA/(R*T)\n",
+ "p2 = pKr*NA/(R*T)\n",
+ "sigm = pi*(rAr+rKr)**2\n",
+ "mu = MAr*MKr/((MAr+MKr)*NA)\n",
+ "p3 = sqrt(8*k*T/(pi*mu)) \n",
+ "zArKr = p1*p2*sigm*p3\n",
+ "\n",
+ "#Results\n",
+ "print 'Collisional frequency is %4.2e m-3s-1'%(zArKr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collisional frequency is 3.14e+34 m-3s-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_2.ipynb
new file mode 100755
index 00000000..ca56b415
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter16_2.ipynb
@@ -0,0 +1,284 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e4f3286f01de06b8e633d17405a3c84337f344a5c6fc5eb4c6bbd0b064d6eee8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Kinetic Theory of Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.2, Page Number 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperatureof Gas, K\n",
+ "MNe = 0.020 #Molecular wt of Ne, kg/mol\n",
+ "MKr = 0.083 #Molecular wt of Kr, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "vmpNe = sqrt(2*R*T/MNe)\n",
+ "vmpKr = sqrt(2*R*T/MKr)\n",
+ "\n",
+ "#Results\n",
+ "print 'Most probable speed of Ne and Krypton at 298 K are %4.0f, %4.0f m/s'%(vmpNe,vmpKr)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Most probable speed of Ne and Krypton at 298 K are 498, 244\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.2, Page Number 401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperatureof Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "vmp = sqrt(2*R*T/M)\n",
+ "vave = sqrt(8*R*T/(M*pi))\n",
+ "vrms = sqrt(3*R*T/M)\n",
+ "\n",
+ "#Results\n",
+ "print 'Maximum, average, root mean square speed of Ar\\nat 298 K are %4.0f, %4.0f, %4.0f m/s'%(vmp,vave,vrms)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum, average, root mean square speed of Ar\n",
+ "at 298 K are 352, 397, 431 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.4, Page Numbe 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "P = 101325 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "V = 1.0 #Volume of Container, L\n",
+ "\n",
+ "#Calculations\n",
+ "Zc = P*NA/sqrt(2*pi*R*T*M)\n",
+ "Nc = Zc*A\n",
+ "#Results\n",
+ "print 'Number of Collisions %4.2e per s'%(Nc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of Collisions 2.45e+27 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.5, Page Number 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.040 #Molecular wt of Ar, kg/mol\n",
+ "P0 = 1013.25 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "V = 1.0 #Volume of Container, L\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "t = 3600 #time of effusion, s\n",
+ "A = 0.01 #Area, um2\n",
+ "\n",
+ "#Calculations\n",
+ "A = A*1e-12\n",
+ "V = V*1e-3\n",
+ "expo = (A*t/V)*(k*T/(2*pi*M/NA))\n",
+ "P = P0*exp(-expo)\n",
+ "#Results\n",
+ "print 'Pressure after 1 hr of effusion is %4.3e Pa'%(P/101325)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure after 1 hr of effusion is 1.00e-02 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.6, Page Number 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "M = 0.044 #Molecular wt of CO2, kg/mol\n",
+ "P = 101325 #Pressure, N/m2\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "sigm = 5.2e-19 #m2\n",
+ "\n",
+ "#Calculations\n",
+ "zCO2 = (P*NA/(R*T))*sigm*sqrt(2)*sqrt(8*R*T/(pi*M)) \n",
+ "#Results\n",
+ "print 'Single particle collisional frequency is %4.1e per s'%(zCO2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Single particle collisional frequency is 6.9e+09 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 16.7, Page Number 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt, pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "R = 8.314 #Ideal Gas Constant, J/(mol.K)\n",
+ "T = 298 #Temperature of Gas, K\n",
+ "MAr = 0.04 #Molecular wt of Ar, kg/mol\n",
+ "MKr = 0.084 #Molecular wt of Kr, kg/mol\n",
+ "pAr = 360 #Partial Pressure Ar, torr\n",
+ "pKr = 400 #Partial Pressure Kr, torr\n",
+ "rAr = 0.17e-9 #Hard sphere radius of Ar, m\n",
+ "rKr = 0.20e-9 #Hard sphere radius of Kr, m\n",
+ "NA = 6.022e23 #Number of particles per mol\n",
+ "k = 1.38e-23 #Boltzmann constant, J/K\n",
+ "\n",
+ "#Calculations\n",
+ "pAr = pAr*101325/760\n",
+ "pKr = pKr*101325/760\n",
+ "p1 = pAr*NA/(R*T)\n",
+ "p2 = pKr*NA/(R*T)\n",
+ "sigm = pi*(rAr+rKr)**2\n",
+ "mu = MAr*MKr/((MAr+MKr)*NA)\n",
+ "p3 = sqrt(8*k*T/(pi*mu)) \n",
+ "zArKr = p1*p2*sigm*p3\n",
+ "\n",
+ "#Results\n",
+ "print 'Collisional frequency is %4.2e m-3s-1'%(zArKr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collisional frequency is 3.14e+34 m-3s-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17.ipynb
new file mode 100755
index 00000000..1a941897
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17.ipynb
@@ -0,0 +1,509 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:28b1b127871a242526fc780b7f95bfe7e107178dbbf2ff194eb0ee46817a771a"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: Transport Phenomena"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.1, Page Number 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy import constants\n",
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "M = 0.040 #Molecualar wt of Argon, kh/mol\n",
+ "P, T = 101325.0, 298.0 #Pressure and Temperature, Pa, K\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "N_A = 6.02214129e+23 #mol^-1\n",
+ "#Calculations\n",
+ "DAr = (1./3)*sqrt(8*R*T/(pi*M))*(R*T/(P*N_A*sqrt(2)*sigm))\n",
+ "\n",
+ "#Results\n",
+ "print 'Diffusion coefficient of Argon %3.1e m2/s'%DAr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diffusion coefficient of Argon 1.1e-05 m2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.2, Page Number 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy import constants\n",
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "DHebyAr = 4.0 \n",
+ "MAr, MHe = 39.9, 4.0 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "P, T = 101325.0, 298.0 #Pressure and Temperature, Pa, K\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "N_A = 6.02214129e+23 #mol^-1\n",
+ "#Calculations\n",
+ "sigHebyAr = (1./DHebyAr)*sqrt(MAr/MHe)\n",
+ "\n",
+ "#Results\n",
+ "print 'Ratio of collision cross sections of Helium to Argon %4.3f'%sigHebyAr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of collision cross sections of Helium to Argon 0.790\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.3, Page Number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "D = 1.0e-5 #Diffusion coefficient, m2/s \n",
+ "t1 = 1000 #Time, s\n",
+ "t10 = 10000 #Time, s\n",
+ "\n",
+ "#Calculations\n",
+ "xrms1 = sqrt(2*D*t1)\n",
+ "xrms10 = sqrt(2*D*t10)\n",
+ "\n",
+ "#Results\n",
+ "print 'rms displacement at %4d and %4d is %4.3f and %4.3f m respectively'%(t1,t10,xrms1,xrms10)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms displacement at 1000 and 10000 is 0.141 and 0.447 m respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.4, Page Number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "D = 2.2e-5 #Diffusion coefficient of benzene, cm2/s \n",
+ "x0 = 0.3 #molecular diameter of benzene, nm\n",
+ "\n",
+ "#Calculations\n",
+ "t = (x0*1e-9)**2/(2*D*1e-4)\n",
+ "\n",
+ "#Results\n",
+ "print 'Time per random walk is %4.3e s or %4.2f ps'%(t,t/1e-12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time per random walk is 2.045e-11 s or 20.45 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.5, Page Number 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P = 101325 #Pressure, Pa\n",
+ "kt = 0.0177 #Thermal conductivity, J/(K.m.s)\n",
+ "T = 300.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 39.9 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "#Calculations\n",
+ "CvmbyNA = 3.*k/2\n",
+ "nuavg = sqrt(8*R*T/(pi*M*1e-3))\n",
+ "N = NA*P/(R*T)\n",
+ "labda = 3*kt/(CvmbyNA*nuavg*N)\n",
+ "sigm = 1/(sqrt(2)*N*labda)\n",
+ "\n",
+ "#Results\n",
+ "print 'Mean free path %4.3e m and collisional cross section %4.2e m2'%(labda, sigm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean free path 2.627e-07 m and collisional cross section 1.10e-19 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.6, Page Number 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "eta = 227. #Viscosity of Ar, muP\n",
+ "P = 101325 #Pressure, Pa\n",
+ "kt = 0.0177 #Thermal conductivity, J/(K.m.s)\n",
+ "T = 300.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 39.9 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "nuavg = sqrt(8*R*T/(pi*M*1e-3))\n",
+ "N = NA*P/(R*T)\n",
+ "m = M*1e-3/NA\n",
+ "labda = 3.*eta*1e-7/(nuavg*N*m) #viscosity in kg m s units\n",
+ "sigm = 1./(sqrt(2)*N*labda)\n",
+ "\n",
+ "#Results\n",
+ "print 'Collisional cross section %4.2e m2'%(sigm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collisional cross section 2.74e-19 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.7, Page Number 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 22.7 #Mass of CO2, kg\n",
+ "T = 293.0 #Temperature, K\n",
+ "L = 1.0 #length of the tube, m\n",
+ "d = 0.75 #Diameter of the tube, mm\n",
+ "eta = 146 #Viscosity of CO2, muP\n",
+ "p1 = 1.05 #Inlet pressure, atm\n",
+ "p2 = 1.00 #Outlet pressure, atm\n",
+ "atm2pa = 101325 #Conversion for pressure from atm to Pa \n",
+ "M = 0.044 #Molecular wt of CO2, kg/mol\n",
+ "R = 8.314 #Molar Gas constant, J mol^-1 K^-1\n",
+ "\n",
+ "#Calculations\n",
+ "p1 = p1*atm2pa\n",
+ "p2 = p2*atm2pa\n",
+ "F = pi*(d*1e-3/2)**4*(p1**2-p2**2)/(16.*eta/1.e7*L*p2)\n",
+ "nCO2 = m/M\n",
+ "v = nCO2*R*T/((p1+p2)/2)\n",
+ "t = v/F\n",
+ "\n",
+ "#Results\n",
+ "print 'Flow rate is %4.3e m3/s'%(F)\n",
+ "print 'Cylinder can be used for %4.3e s nearly %3.1f days'%(t, t/(24*3600))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow rate is 2.762e-06 m3/s\n",
+ "Cylinder can be used for 4.381e+06 s nearly 50.7 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.8, Page Number 431"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "eta = 0.891 #Viscosity of hemoglobin in water, cP\n",
+ "T = 298.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "D = 6.9e-11 #Diffusion coefficient, m2/s \n",
+ "\n",
+ "#Calculations\n",
+ "r = k*T/(6*pi*eta*1e-3*D)\n",
+ "\n",
+ "#Results\n",
+ "print 'Radius of protein is %4.3f nm'%(r/1e-9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of protein is 3.550 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.9, Page Number 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "s = 1.91e-13 #Sedimentation constant, s\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 14100.0 #Molecualr wt of lysozyme, g/mol\n",
+ "rho = 0.998 #Density of water, kg/m3\n",
+ "eta = 1.002 #Viscosity lysozyme in water, cP\n",
+ "T = 293.15 #Temperature, K\n",
+ "vbar = 0.703 #Specific volume of cm3/g\n",
+ "\n",
+ "#Calculations\n",
+ "m = M/NA\n",
+ "f = m*(1.-vbar*rho)/s\n",
+ "r = f/(6*pi*eta)\n",
+ "\n",
+ "#Results\n",
+ "print 'Radius of Lysozyme particle is %4.3f nm'%(r/1e-9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of Lysozyme particle is 1.937 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.10, Page Number 433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg,log, exp\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t = array([0.0,30.0,60.0,90.0,120.0,150.0]) #Time, min\n",
+ "xb = array([6.00,6.07,6.14,6.21,6.28,6.35]) #Location of boundary layer, cm\n",
+ "rpm = 55000. #RPM of centrifuge \n",
+ "\n",
+ "#Calculations\n",
+ "nx = xb/xb[0]\n",
+ "lnx = log(nx)\n",
+ "A = array([ t, ones(size(t))])\n",
+ "# linearly generated sequence\n",
+ "[slope, intercept] = linalg.lstsq(A.T,lnx)[0] # obtaining the parameters\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = slope*t+intercept # regression line\n",
+ "#Results\n",
+ "plot(t,line,'-',t,lnx,'o')\n",
+ "xlabel('Time, min')\n",
+ "ylabel('log(xb/xb0)')\n",
+ "show()\n",
+ "sbar = (slope/60)/(rpm*2*pi/60)**2\n",
+ "print 'Slope is %6.2e 1/min or %4.3e 1/s '%(slope, slope/60)\n",
+ "print 'Sedimentation factor is %4.3e s'%(sbar)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9v8BCPiGPVHALbQAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x850c3d0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope is 3.78e-04 1/min or 6.299e-06 1/s \n",
+ "Sedimentation factor is 1.899e-13 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.11, Page Number 439"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "LMg = 0.0106 #Ionic conductance for Mg, S.m2/mol\n",
+ "LCl = 0.0076 #Ionic conductance for Cl, S.m2/mol\n",
+ "nMg, nCl = 1, 2 #Coefficients of Mg and Cl \n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "LMgCl2 = nMg*LMg + nCl*LCl\n",
+ "\n",
+ "#Results\n",
+ "print 'Molar conductivity of MgCl2 on infinite dilution is %5.4f S.m2/mol'%(LMgCl2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar conductivity of MgCl2 on infinite dilution is 0.0258 S.m2/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_1.ipynb
new file mode 100755
index 00000000..67736314
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_1.ipynb
@@ -0,0 +1,504 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa0a13ac0b2f590a7935298520fa0293eee8e76499442eb9a4a0b49a824ca2fb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: Transport Phenomena"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.1, Page Number 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy import constants\n",
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "M = 0.040 #Molecualar wt of Argon, kh/mol\n",
+ "P, T = 101325.0, 298.0 #Pressure and Temperature, Pa, K\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "N_A = 6.02214129e+23 #mol^-1\n",
+ "#Calculations\n",
+ "DAr = (1./3)*sqrt(8*R*T/(pi*M))*(R*T/(P*N_A*sqrt(2)*sigm))\n",
+ "\n",
+ "#Results\n",
+ "print 'Diffusion coefficient of Argon %3.1e m2/s'%DAr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diffusion coefficient of Argon 1.1e-05 m2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.2, Page Number 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "DHebyAr = 4.0 \n",
+ "MAr, MHe = 39.9, 4.0 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "P, T = 101325.0, 298.0 #Pressure and Temperature, Pa, K\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "N_A = 6.02214129e+23 #mol^-1\n",
+ "#Calculations\n",
+ "sigHebyAr = (1./DHebyAr)*sqrt(MAr/MHe)\n",
+ "\n",
+ "#Results\n",
+ "print 'Ratio of collision cross sections of Helium to Argon %4.3f'%sigHebyAr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of collision cross sections of Helium to Argon 0.790\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.3, Page Number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "D = 1.0e-5 #Diffusion coefficient, m2/s \n",
+ "t1 = 1000 #Time, s\n",
+ "t10 = 10000 #Time, s\n",
+ "\n",
+ "#Calculations\n",
+ "xrms1 = sqrt(2*D*t1)\n",
+ "xrms10 = sqrt(2*D*t10)\n",
+ "\n",
+ "#Results\n",
+ "print 'rms displacement at %4d and %4d is %4.3f and %4.3f m respectively'%(t1,t10,xrms1,xrms10)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms displacement at 1000 and 10000 is 0.141 and 0.447 m respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.4, Page Number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "D = 2.2e-5 #Diffusion coefficient of benzene, cm2/s \n",
+ "x0 = 0.3 #molecular diameter of benzene, nm\n",
+ "\n",
+ "#Calculations\n",
+ "t = (x0*1e-9)**2/(2*D*1e-4)\n",
+ "\n",
+ "#Results\n",
+ "print 'Time per random walk is %4.3e s or %4.2f ps'%(t,t/1e-12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time per random walk is 2.045e-11 s or 20.45 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.5, Page Number 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P = 101325 #Pressure, Pa\n",
+ "kt = 0.0177 #Thermal conductivity, J/(K.m.s)\n",
+ "T = 300.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 39.9 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "CvmbyNA = 3.*k/2\n",
+ "nuavg = sqrt(8*R*T/(pi*M*1e-3))\n",
+ "N = NA*P/(R*T)\n",
+ "labda = 3*kt/(CvmbyNA*nuavg*N)\n",
+ "sigm = 1/(sqrt(2)*N*labda)\n",
+ "\n",
+ "#Results\n",
+ "print 'Mean free path %4.3e m and collisional cross section %4.2e m2'%(labda, sigm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean free path 2.627e-07 m and collisional cross section 1.10e-19 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.6, Page Number 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "eta = 227. #Viscosity of Ar, muP\n",
+ "P = 101325 #Pressure, Pa\n",
+ "kt = 0.0177 #Thermal conductivity, J/(K.m.s)\n",
+ "T = 300.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 39.9 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "nuavg = sqrt(8*R*T/(pi*M*1e-3))\n",
+ "N = NA*P/(R*T)\n",
+ "m = M*1e-3/NA\n",
+ "labda = 3.*eta*1e-7/(nuavg*N*m) #viscosity in kg m s units\n",
+ "sigm = 1./(sqrt(2)*N*labda)\n",
+ "\n",
+ "#Results\n",
+ "print 'Collisional cross section %4.2e m2'%(sigm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collisional cross section 2.74e-19 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.7, Page Number 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 22.7 #Mass of CO2, kg\n",
+ "T = 293.0 #Temperature, K\n",
+ "L = 1.0 #length of the tube, m\n",
+ "d = 0.75 #Diameter of the tube, mm\n",
+ "eta = 146 #Viscosity of CO2, muP\n",
+ "p1 = 1.05 #Inlet pressure, atm\n",
+ "p2 = 1.00 #Outlet pressure, atm\n",
+ "atm2pa = 101325 #Conversion for pressure from atm to Pa \n",
+ "M = 0.044 #Molecular wt of CO2, kg/mol\n",
+ "R = 8.314 #Molar Gas constant, J mol^-1 K^-1\n",
+ "\n",
+ "#Calculations\n",
+ "p1 = p1*atm2pa\n",
+ "p2 = p2*atm2pa\n",
+ "F = pi*(d*1e-3/2)**4*(p1**2-p2**2)/(16.*eta/1.e7*L*p2)\n",
+ "nCO2 = m/M\n",
+ "v = nCO2*R*T/((p1+p2)/2)\n",
+ "t = v/F\n",
+ "\n",
+ "#Results\n",
+ "print 'Flow rate is %4.3e m3/s'%(F)\n",
+ "print 'Cylinder can be used for %4.3e s nearly %3.1f days'%(t, t/(24*3600))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow rate is 2.762e-06 m3/s\n",
+ "Cylinder can be used for 4.381e+06 s nearly 50.7 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.8, Page Number 431"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "eta = 0.891 #Viscosity of hemoglobin in water, cP\n",
+ "T = 298.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "D = 6.9e-11 #Diffusion coefficient, m2/s \n",
+ "\n",
+ "#Calculations\n",
+ "r = k*T/(6*pi*eta*1e-3*D)\n",
+ "\n",
+ "#Results\n",
+ "print 'Radius of protein is %4.3f nm'%(r/1e-9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of protein is 3.550 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.9, Page Number 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "s = 1.91e-13 #Sedimentation constant, s\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 14100.0 #Molecualr wt of lysozyme, g/mol\n",
+ "rho = 0.998 #Density of water, kg/m3\n",
+ "eta = 1.002 #Viscosity lysozyme in water, cP\n",
+ "T = 293.15 #Temperature, K\n",
+ "vbar = 0.703 #Specific volume of cm3/g\n",
+ "\n",
+ "#Calculations\n",
+ "m = M/NA\n",
+ "f = m*(1.-vbar*rho)/s\n",
+ "r = f/(6*pi*eta)\n",
+ "\n",
+ "#Results\n",
+ "print 'Radius of Lysozyme particle is %4.3f nm'%(r/1e-9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of Lysozyme particle is 1.937 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.10, Page Number 433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg,log, exp\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t = array([0.0,30.0,60.0,90.0,120.0,150.0]) #Time, min\n",
+ "xb = array([6.00,6.07,6.14,6.21,6.28,6.35]) #Location of boundary layer, cm\n",
+ "rpm = 55000. #RPM of centrifuge \n",
+ "\n",
+ "#Calculations\n",
+ "nx = xb/xb[0]\n",
+ "lnx = log(nx)\n",
+ "A = array([ t, ones(size(t))])\n",
+ "# linearly generated sequence\n",
+ "[slope, intercept] = linalg.lstsq(A.T,lnx)[0] # obtaining the parameters\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = slope*t+intercept # regression line\n",
+ "\n",
+ "#Results\n",
+ "plot(t,line,'-',t,lnx,'o')\n",
+ "xlabel('Time, min')\n",
+ "ylabel('log(xb/xb0)')\n",
+ "show()\n",
+ "sbar = (slope/60)/(rpm*2*pi/60)**2\n",
+ "print 'Slope is %6.2e 1/min or %4.3e 1/s '%(slope, slope/60)\n",
+ "print 'Sedimentation factor is %4.3e s'%(sbar)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n9v8BCPiGPVHALbQAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x850c3d0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope is 3.78e-04 1/min or 6.299e-06 1/s \n",
+ "Sedimentation factor is 1.899e-13 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.11, Page Number 439"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "LMg = 0.0106 #Ionic conductance for Mg, S.m2/mol\n",
+ "LCl = 0.0076 #Ionic conductance for Cl, S.m2/mol\n",
+ "nMg, nCl = 1, 2 #Coefficients of Mg and Cl \n",
+ "\n",
+ "#Calculations\n",
+ "LMgCl2 = nMg*LMg + nCl*LCl\n",
+ "\n",
+ "#Results\n",
+ "print 'Molar conductivity of MgCl2 on infinite dilution is %5.4f S.m2/mol'%(LMgCl2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar conductivity of MgCl2 on infinite dilution is 0.0258 S.m2/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_2.ipynb
new file mode 100755
index 00000000..7cd1557e
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter17_2.ipynb
@@ -0,0 +1,506 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:eb5ec1473fe382bc4c20517f981244e27fb89ea55598df7473fff0c3c26d19fc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: Transport Phenomena"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.1, Page Number 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy import constants\n",
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "M = 0.040 #Molecualar wt of Argon, kh/mol\n",
+ "P, T = 101325.0, 298.0 #Pressure and Temperature, Pa, K\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "N_A = 6.02214129e+23 #mol^-1\n",
+ "#Calculations\n",
+ "DAr = (1./3)*sqrt(8*R*T/(pi*M))*(R*T/(P*N_A*sqrt(2)*sigm))\n",
+ "\n",
+ "#Results\n",
+ "print 'Diffusion coefficient of Argon %3.1e m2/s'%DAr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Diffusion coefficient of Argon 1.1e-05 m2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.2, Page Number 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "DHebyAr = 4.0 \n",
+ "MAr, MHe = 39.9, 4.0 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "P, T = 101325.0, 298.0 #Pressure and Temperature, Pa, K\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "N_A = 6.02214129e+23 #mol^-1\n",
+ "#Calculations\n",
+ "sigHebyAr = (1./DHebyAr)*sqrt(MAr/MHe)\n",
+ "\n",
+ "#Results\n",
+ "print 'Ratio of collision cross sections of Helium to Argon %4.3f'%sigHebyAr"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of collision cross sections of Helium to Argon 0.790\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.3, Page Number 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#Variable Declaration\n",
+ "D = 1.0e-5 #Diffusion coefficient, m2/s \n",
+ "t1 = 1000 #Time, s\n",
+ "t10 = 10000 #Time, s\n",
+ "\n",
+ "#Calculations\n",
+ "xrms1 = sqrt(2*D*t1)\n",
+ "xrms10 = sqrt(2*D*t10)\n",
+ "\n",
+ "#Results\n",
+ "print 'rms displacement at %4d and %4d is %4.3f and %4.3f m respectively'%(t1,t10,xrms1,xrms10)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms displacement at 1000 and 10000 is 0.141 and 0.447 m respectively\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.4, Page Number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "D = 2.2e-5 #Diffusion coefficient of benzene, cm2/s \n",
+ "x0 = 0.3 #molecular diameter of benzene, nm\n",
+ "\n",
+ "#Calculations\n",
+ "t = (x0*1e-9)**2/(2*D*1e-4)\n",
+ "\n",
+ "#Results\n",
+ "print 'Time per random walk is %4.3e s or %4.2f ps'%(t,t/1e-12)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time per random walk is 2.045e-11 s or 20.45 ps\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.5, Page Number 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "P = 101325 #Pressure, Pa\n",
+ "kt = 0.0177 #Thermal conductivity, J/(K.m.s)\n",
+ "T = 300.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "sigm = 3.6e-19 #\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 39.9 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "CvmbyNA = 3.*k/2\n",
+ "nuavg = sqrt(8*R*T/(pi*M*1e-3))\n",
+ "N = NA*P/(R*T)\n",
+ "labda = 3*kt/(CvmbyNA*nuavg*N)\n",
+ "sigm = 1/(sqrt(2)*N*labda)\n",
+ "\n",
+ "#Results\n",
+ "print 'Mean free path %4.3e m and collisional cross section %4.2e m2'%(labda, sigm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean free path 2.627e-07 m and collisional cross section 1.10e-19 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.6, Page Number 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "eta = 227. #Viscosity of Ar, muP\n",
+ "P = 101325 #Pressure, Pa\n",
+ "kt = 0.0177 #Thermal conductivity, J/(K.m.s)\n",
+ "T = 300.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 39.9 #Molecualar wt of Argon and Neon, kg/mol\n",
+ "\n",
+ "#Calculations\n",
+ "nuavg = sqrt(8*R*T/(pi*M*1e-3))\n",
+ "N = NA*P/(R*T)\n",
+ "m = M*1e-3/NA\n",
+ "labda = 3.*eta*1e-7/(nuavg*N*m) #viscosity in kg m s units\n",
+ "sigm = 1./(sqrt(2)*N*labda)\n",
+ "\n",
+ "#Results\n",
+ "print 'Collisional cross section %4.2e m2'%(sigm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Collisional cross section 2.74e-19 m2\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.7, Page Number 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "m = 22.7 #Mass of CO2, kg\n",
+ "T = 293.0 #Temperature, K\n",
+ "L = 1.0 #length of the tube, m\n",
+ "d = 0.75 #Diameter of the tube, mm\n",
+ "eta = 146 #Viscosity of CO2, muP\n",
+ "p1 = 1.05 #Inlet pressure, atm\n",
+ "p2 = 1.00 #Outlet pressure, atm\n",
+ "atm2pa = 101325 #Conversion for pressure from atm to Pa \n",
+ "M = 0.044 #Molecular wt of CO2, kg/mol\n",
+ "R = 8.314 #Molar Gas constant, J mol^-1 K^-1\n",
+ "\n",
+ "#Calculations\n",
+ "p1 = p1*atm2pa\n",
+ "p2 = p2*atm2pa\n",
+ "F = pi*(d*1e-3/2)**4*(p1**2-p2**2)/(16.*eta/1.e7*L*p2)\n",
+ "nCO2 = m/M\n",
+ "v = nCO2*R*T/((p1+p2)/2)\n",
+ "t = v/F\n",
+ "\n",
+ "#Results\n",
+ "print 'Flow rate is %4.3e m3/s'%(F)\n",
+ "print 'Cylinder can be used for %4.3e s nearly %3.1f days'%(t, t/(24*3600))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow rate is 2.762e-06 m3/s\n",
+ "Cylinder can be used for 4.381e+06 s nearly 50.7 days\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.8, Page Number 431"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "eta = 0.891 #Viscosity of hemoglobin in water, cP\n",
+ "T = 298.0 #Temperature, K\n",
+ "k = 1.3806488e-23 #Boltzmanconstant,J K^-1\n",
+ "R = 8.314 #Molar Gas constant, mol^-1 K^-1\n",
+ "D = 6.9e-11 #Diffusion coefficient, m2/s \n",
+ "\n",
+ "#Calculations\n",
+ "r = k*T/(6*pi*eta*1e-3*D)\n",
+ "\n",
+ "#Results\n",
+ "print 'Radius of protein is %4.3f nm'%(r/1e-9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of protein is 3.550 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.9, Page Number 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi\n",
+ "\n",
+ "#Variable Declaration\n",
+ "s = 1.91e-13 #Sedimentation constant, s\n",
+ "NA = 6.02214129e+23 #mol^-1\n",
+ "M = 14100.0 #Molecualr wt of lysozyme, g/mol\n",
+ "rho = 0.998 #Density of water, kg/m3\n",
+ "eta = 1.002 #Viscosity lysozyme in water, cP\n",
+ "T = 293.15 #Temperature, K\n",
+ "vbar = 0.703 #Specific volume of cm3/g\n",
+ "\n",
+ "#Calculations\n",
+ "m = M/NA\n",
+ "f = m*(1.-vbar*rho)/s\n",
+ "r = f/(6*pi*eta)\n",
+ "\n",
+ "#Results\n",
+ "print 'Radius of Lysozyme particle is %4.3f nm'%(r/1e-9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Radius of Lysozyme particle is 1.937 nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.10, Page Number 433"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg,log, exp\n",
+ "from matplotlib.pylab import plot,show\n",
+ "\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t = array([0.0,30.0,60.0,90.0,120.0,150.0]) #Time, min\n",
+ "xb = array([6.00,6.07,6.14,6.21,6.28,6.35]) #Location of boundary layer, cm\n",
+ "rpm = 55000. #RPM of centrifuge \n",
+ "\n",
+ "#Calculations\n",
+ "nx = xb/xb[0]\n",
+ "lnx = log(nx)\n",
+ "A = array([ t, ones(size(t))])\n",
+ "# linearly generated sequence\n",
+ "[slope, intercept] = linalg.lstsq(A.T,lnx)[0] # obtaining the parameters\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = slope*t+intercept # regression line\n",
+ "\n",
+ "#Results\n",
+ "plot(t,line,'-',t,lnx,'o')\n",
+ "xlabel('$ Time, min $')\n",
+ "ylabel('$ \\log(x_b/x_{b0}) $')\n",
+ "show()\n",
+ "sbar = (slope/60)/(rpm*2*pi/60)**2\n",
+ "print 'Slope is %6.2e 1/min or %4.3e 1/s '%(slope, slope/60)\n",
+ "print 'Sedimentation factor is %4.3e s'%(sbar)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5925330>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope is 3.78e-04 1/min or 6.299e-06 1/s \n",
+ "Sedimentation factor is 1.899e-13 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 17.11, Page Number 439"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "LMg = 0.0106 #Ionic conductance for Mg, S.m2/mol\n",
+ "LCl = 0.0076 #Ionic conductance for Cl, S.m2/mol\n",
+ "nMg, nCl = 1, 2 #Coefficients of Mg and Cl \n",
+ "\n",
+ "#Calculations\n",
+ "LMgCl2 = nMg*LMg + nCl*LCl\n",
+ "\n",
+ "#Results\n",
+ "print 'Molar conductivity of MgCl2 on infinite dilution is %5.4f S.m2/mol'%(LMgCl2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molar conductivity of MgCl2 on infinite dilution is 0.0258 S.m2/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18.ipynb
new file mode 100755
index 00000000..f1741f74
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18.ipynb
@@ -0,0 +1,407 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:739f6a7aa866a8931c051faa7d51c479c27f099d05036b55ada1468f0458424b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18: Elementary Chemical Kinetics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.2, Page Number 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Ca0 = [2.3e-4,4.6e-4,9.2e-4] #Initial Concentration of A, M\n",
+ "Cb0 = [3.1e-5,6.2e-5,6.2e-5] #Initial Concentration of B, M\n",
+ "Ri = [5.25e-4,4.2e-3,1.68e-2] #Initial rate of reaction, M\n",
+ "\n",
+ "#Calculations\n",
+ "alp = log(Ri[1]/Ri[2])/log(Ca0[1]/Ca0[2])\n",
+ "beta = (log(Ri[0]/Ri[1]) - 2*log((Ca0[0]/Ca0[1])))/(log(Cb0[0]/Cb0[1]))\n",
+ "k = Ri[2]/(Ca0[2]**2*Cb0[2]**beta)\n",
+ "\n",
+ "#REsults\n",
+ "print 'Order of reaction with respect to reactant A: %3.2f'%alp\n",
+ "print 'Order of reaction with respect to reactant A: %3.2f'%beta\n",
+ "print 'Rate constant of the reaction: %4.3e 1./(M.s)'%k"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Order of reaction with respect to reactant A: 2.00\n",
+ "Order of reaction with respect to reactant A: 1.00\n",
+ "Rate constant of the reaction: 3.201e+08 1./(M.s)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.3, Page Number 457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t1by2 = 2.05e4 #Half life for first order decomposition of N2O5, s\n",
+ "x = 60. #percentage decay of N2O5\n",
+ "\n",
+ "#Calculations\n",
+ "k = log(2)/t1by2\n",
+ "t = -log(x/100)/k\n",
+ "\n",
+ "#REsults\n",
+ "print 'Rate constant of the reaction: %4.3e 1/s'%k\n",
+ "print 'Timerequire for 60 percent decay of N2O5: %4.3e s'%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate constant of the reaction: 3.381e-05 1/s\n",
+ "Timerequire for 60 percent decay of N2O5: 1.511e+04 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.4, Page Number 457 Incomplete"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t1by2 = 5760 #Half life for C14, years\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "k = log(2)/t1by2\n",
+ "t = -log(x/100)/k\n",
+ "\n",
+ "#REsults\n",
+ "print 'Rate constant of the reaction: %4.3e 1/s'%k\n",
+ "print 'Timerequire for 60 percent decay of N2O5: %4.3e s'%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.5, Page Number 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "kAbykI = 2.0 #Ratio of rate constants\n",
+ "kA = 0.1 #First order rate constant for rxn 1, 1/s \n",
+ "kI = 0.05 #First order rate constant for rxn 2, 1/s \n",
+ "#Calculations\n",
+ "tmax = 1/(kA-kI)*log(kA/kI)\n",
+ "\n",
+ "#Results\n",
+ "print 'Time required for maximum concentration of A: %4.2f s'%tmax"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for maximum concentration of A: 13.86 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.7, Page Number 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "T = 22.0 #Temperature of the reaction,\u00b0C\n",
+ "k1 = 7.0e-4 #Rate constants for rxn 1, 1/s\n",
+ "k2 = 4.1e-3 #Rate constant for rxn 2, 1/s \n",
+ "k3 = 5.7e-3 #Rate constant for rxn 3, 1/s \n",
+ "#Calculations\n",
+ "phiP1 = k1/(k1+k2+k3)\n",
+ "\n",
+ "#Results\n",
+ "print 'Percentage of Benzyl Penicillin that under acid catalyzed reaction by path 1: %4.2f '%(phiP1*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of Benzyl Penicillin that under acid catalyzed reaction by path 1: 6.67 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.8, Page Number 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg,log, exp\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "T = array([22.7,27.2,33.7,38.0])\n",
+ "k1 = array([7.e-4,9.8e-4,1.6e-3,2.e-3])\n",
+ "R = 8.314 \n",
+ "\n",
+ "#Calculations\n",
+ "T = T +273.15\n",
+ "x = 1./T\n",
+ "y = log(k1)\n",
+ "A = array([ x, ones(size(x))])\n",
+ "# linearly generated sequence\n",
+ "[slope, intercept] = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n",
+ "\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = w[0]*x+w[1] # regression line\n",
+ "#Results\n",
+ "plot(x,line,'-',x,y,'o')\n",
+ "xlabel('1/T, $K^{-1}$')\n",
+ "ylabel('log(k)')\n",
+ "show()\n",
+ "Ea = -slope*R\n",
+ "A = exp(intercept)\n",
+ "print 'Slope and intercept are, %6.1f and %4.2f'%(slope, intercept)\n",
+ "print 'Pre-exponential factor and Activation energy are %4.2f kJ/mol and %4.2e 1/s'%(Ea/1e3, A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8281150>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are, -6419.8 and 14.45\n",
+ "Pre-exponential factor and Activation energy are 53.37 kJ/mol and 1.88e+06 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.9, Page Number 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declaration\n",
+ "Ea = 42.e3 #Activation energy for reaction, J/mol\n",
+ "A = 1.e12 #Pre-exponential factor for reaction, 1/s\n",
+ "T = 298.0 #Temeprature, K\n",
+ "Kc = 1.0e4 #Equilibrium constant for reaction\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "#Calculations\n",
+ "kB = A*exp(-Ea/(R*T))\n",
+ "kA = kB*Kc\n",
+ "kApp = kA + kB\n",
+ "\n",
+ "#Results\n",
+ "print 'Forward Rate constant is %4.2e 1/s'%kA\n",
+ "print 'Backward Rate constant is %4.2e 1/s'%kB\n",
+ "print 'Apperent Rate constant is %4.2e 1/s'%kApp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Rate constant is 4.34e+08 1/s\n",
+ "Backward Rate constant is 4.34e+04 1/s\n",
+ "Apperent Rate constant is 4.34e+08 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.10, Page Number 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "#Variable Declaration\n",
+ "Dh = 7.6e-7 #Diffusion coefficient of Hemoglobin, cm2/s\n",
+ "Do2 = 2.2e-5 #Diffusion coefficient of oxygen, cm2/s\n",
+ "rh = 35. #Radius of Hemoglobin, \u00b0A\n",
+ "ro2 = 2.0 #Radius of Oxygen, \u00b0A\n",
+ "k = 4e7 #Rate constant for binding of O2 to Hemoglobin, 1/(M.s)\n",
+ "NA =6.022e23 #Avagadro Number\n",
+ "#Calculations\n",
+ "DA = Dh + Do2\n",
+ "kd = 4*pi*NA*(rh+ro2)*1e-8*DA\n",
+ "\n",
+ "#Results\n",
+ "print 'Estimated rate %4.1e 1/(M.s) is far grater than experimental value of %4.1e 1/(M.s), \\nhence the reaction is not diffusion controlled'%(kd,k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimated rate 6.4e+13 1/(M.s) is far grater than experimental value of 4.0e+07 1/(M.s), \n",
+ "hence the reaction is not diffusion controlled\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.11, Page Number 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, e\n",
+ "#Variable Declaration\n",
+ "Ea = 104e3 #Activation energy for reaction, J/mol\n",
+ "A = 1.e13 #Pre-exponential factor for reaction, 1/s\n",
+ "T = 300.0 #Temeprature, K\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "h = 6.626e-34 #Plnak constant, Js\n",
+ "c = 1.0 #Std. State concentration, M\n",
+ "k = 1.38e-23 #,J/K\n",
+ "\n",
+ "#Calculations\n",
+ "dH = Ea - 2*R*T\n",
+ "dS = R*log(A*h*c/(k*T*e**2))\n",
+ "\n",
+ "#Results\n",
+ "print 'Forward Rate constant is %4.2e 1/s'%dH\n",
+ "print 'Backward Rate constant is %4.2f 1/s'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Rate constant is 9.90e+04 1/s\n",
+ "Backward Rate constant is -12.72 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_1.ipynb
new file mode 100755
index 00000000..d26f90a9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_1.ipynb
@@ -0,0 +1,407 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:445a31bf90e68e213ebec0ec2a3db9f1c5fd3f96b2af63c47524b2b781345068"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18: Elementary Chemical Kinetics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.2, Page Number 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Ca0 = [2.3e-4,4.6e-4,9.2e-4] #Initial Concentration of A, M\n",
+ "Cb0 = [3.1e-5,6.2e-5,6.2e-5] #Initial Concentration of B, M\n",
+ "Ri = [5.25e-4,4.2e-3,1.68e-2] #Initial rate of reaction, M\n",
+ "\n",
+ "#Calculations\n",
+ "alp = log(Ri[1]/Ri[2])/log(Ca0[1]/Ca0[2])\n",
+ "beta = (log(Ri[0]/Ri[1]) - 2*log((Ca0[0]/Ca0[1])))/(log(Cb0[0]/Cb0[1]))\n",
+ "k = Ri[2]/(Ca0[2]**2*Cb0[2]**beta)\n",
+ "\n",
+ "#REsults\n",
+ "print 'Order of reaction with respect to reactant A: %3.2f'%alp\n",
+ "print 'Order of reaction with respect to reactant A: %3.2f'%beta\n",
+ "print 'Rate constant of the reaction: %4.3e 1./(M.s)'%k"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Order of reaction with respect to reactant A: 2.00\n",
+ "Order of reaction with respect to reactant A: 1.00\n",
+ "Rate constant of the reaction: 3.201e+08 1./(M.s)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.3, Page Number 457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t1by2 = 2.05e4 #Half life for first order decomposition of N2O5, s\n",
+ "x = 60. #percentage decay of N2O5\n",
+ "\n",
+ "#Calculations\n",
+ "k = log(2)/t1by2\n",
+ "t = -log(x/100)/k\n",
+ "\n",
+ "#REsults\n",
+ "print 'Rate constant of the reaction: %4.3e 1/s'%k\n",
+ "print 'Timerequire for 60 percent decay of N2O5: %4.3e s'%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate constant of the reaction: 3.381e-05 1/s\n",
+ "Timerequire for 60 percent decay of N2O5: 1.511e+04 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.4, Page Number 457 Incomplete"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t1by2 = 5760 #Half life for C14, years\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "k = log(2)/t1by2\n",
+ "t = -log(x/100)/k\n",
+ "\n",
+ "#REsults\n",
+ "print 'Rate constant of the reaction: %4.3e 1/s'%k\n",
+ "print 'Timerequire for 60 percent decay of N2O5: %4.3e s'%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.5, Page Number 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "kAbykI = 2.0 #Ratio of rate constants\n",
+ "kA = 0.1 #First order rate constant for rxn 1, 1/s \n",
+ "kI = 0.05 #First order rate constant for rxn 2, 1/s \n",
+ "#Calculations\n",
+ "tmax = 1/(kA-kI)*log(kA/kI)\n",
+ "\n",
+ "#Results\n",
+ "print 'Time required for maximum concentration of A: %4.2f s'%tmax"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for maximum concentration of A: 13.86 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.7, Page Number 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "T = 22.0 #Temperature of the reaction,\u00b0C\n",
+ "k1 = 7.0e-4 #Rate constants for rxn 1, 1/s\n",
+ "k2 = 4.1e-3 #Rate constant for rxn 2, 1/s \n",
+ "k3 = 5.7e-3 #Rate constant for rxn 3, 1/s \n",
+ "#Calculations\n",
+ "phiP1 = k1/(k1+k2+k3)\n",
+ "\n",
+ "#Results\n",
+ "print 'Percentage of Benzyl Penicillin that under acid catalyzed reaction by path 1: %4.2f '%(phiP1*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of Benzyl Penicillin that under acid catalyzed reaction by path 1: 6.67 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.8, Page Number 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg,log, exp\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "\n",
+ "#Variable Declaration\n",
+ "T = array([22.7,27.2,33.7,38.0])\n",
+ "k1 = array([7.e-4,9.8e-4,1.6e-3,2.e-3])\n",
+ "R = 8.314 \n",
+ "\n",
+ "#Calculations\n",
+ "T = T +273.15\n",
+ "x = 1./T\n",
+ "y = log(k1)\n",
+ "A = array([ x, ones(size(x))])\n",
+ "# linearly generated sequence\n",
+ "[slope, intercept] = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n",
+ "\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = w[0]*x+w[1] # regression line\n",
+ "#Results\n",
+ "plot(x,line,'-',x,y,'o')\n",
+ "xlabel('1/T, $K^{-1}$')\n",
+ "ylabel('log(k)')\n",
+ "show()\n",
+ "Ea = -slope*R\n",
+ "A = exp(intercept)\n",
+ "print 'Slope and intercept are, %6.1f and %4.2f'%(slope, intercept)\n",
+ "print 'Pre-exponential factor and Activation energy are %4.2f kJ/mol and %4.2e 1/s'%(Ea/1e3, A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8281150>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are, -6419.8 and 14.45\n",
+ "Pre-exponential factor and Activation energy are 53.37 kJ/mol and 1.88e+06 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.9, Page Number 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Ea = 42.e3 #Activation energy for reaction, J/mol\n",
+ "A = 1.e12 #Pre-exponential factor for reaction, 1/s\n",
+ "T = 298.0 #Temeprature, K\n",
+ "Kc = 1.0e4 #Equilibrium constant for reaction\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "#Calculations\n",
+ "kB = A*exp(-Ea/(R*T))\n",
+ "kA = kB*Kc\n",
+ "kApp = kA + kB\n",
+ "\n",
+ "#Results\n",
+ "print 'Forward Rate constant is %4.2e 1/s'%kA\n",
+ "print 'Backward Rate constant is %4.2e 1/s'%kB\n",
+ "print 'Apperent Rate constant is %4.2e 1/s'%kApp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Rate constant is 4.34e+08 1/s\n",
+ "Backward Rate constant is 4.34e+04 1/s\n",
+ "Apperent Rate constant is 4.34e+08 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.10, Page Number 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "#Variable Declaration\n",
+ "Dh = 7.6e-7 #Diffusion coefficient of Hemoglobin, cm2/s\n",
+ "Do2 = 2.2e-5 #Diffusion coefficient of oxygen, cm2/s\n",
+ "rh = 35. #Radius of Hemoglobin, \u00b0A\n",
+ "ro2 = 2.0 #Radius of Oxygen, \u00b0A\n",
+ "k = 4e7 #Rate constant for binding of O2 to Hemoglobin, 1/(M.s)\n",
+ "NA =6.022e23 #Avagadro Number\n",
+ "#Calculations\n",
+ "DA = Dh + Do2\n",
+ "kd = 4*pi*NA*(rh+ro2)*1e-8*DA\n",
+ "\n",
+ "#Results\n",
+ "print 'Estimated rate %4.1e 1/(M.s) is far grater than experimental value of %4.1e 1/(M.s), \\nhence the reaction is not diffusion controlled'%(kd,k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimated rate 6.4e+13 1/(M.s) is far grater than experimental value of 4.0e+07 1/(M.s), \n",
+ "hence the reaction is not diffusion controlled\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.11, Page Number 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, e\n",
+ "#Variable Declaration\n",
+ "Ea = 104e3 #Activation energy for reaction, J/mol\n",
+ "A = 1.e13 #Pre-exponential factor for reaction, 1/s\n",
+ "T = 300.0 #Temeprature, K\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "h = 6.626e-34 #Plnak constant, Js\n",
+ "c = 1.0 #Std. State concentration, M\n",
+ "k = 1.38e-23 #,J/K\n",
+ "\n",
+ "#Calculations\n",
+ "dH = Ea - 2*R*T\n",
+ "dS = R*log(A*h*c/(k*T*e**2))\n",
+ "\n",
+ "#Results\n",
+ "print 'Forward Rate constant is %4.2e 1/s'%dH\n",
+ "print 'Backward Rate constant is %4.2f 1/s'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Rate constant is 9.90e+04 1/s\n",
+ "Backward Rate constant is -12.72 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_2.ipynb
new file mode 100755
index 00000000..703987ca
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter18_2.ipynb
@@ -0,0 +1,407 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:16e7490a05ae8ab95bdce6309e35e472520df00964c8812973f2cdbef573b0c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18: Elementary Chemical Kinetics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.2, Page Number 451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Ca0 = [2.3e-4,4.6e-4,9.2e-4] #Initial Concentration of A, M\n",
+ "Cb0 = [3.1e-5,6.2e-5,6.2e-5] #Initial Concentration of B, M\n",
+ "Ri = [5.25e-4,4.2e-3,1.68e-2] #Initial rate of reaction, M\n",
+ "\n",
+ "#Calculations\n",
+ "alp = log(Ri[1]/Ri[2])/log(Ca0[1]/Ca0[2])\n",
+ "beta = (log(Ri[0]/Ri[1]) - 2*log((Ca0[0]/Ca0[1])))/(log(Cb0[0]/Cb0[1]))\n",
+ "k = Ri[2]/(Ca0[2]**2*Cb0[2]**beta)\n",
+ "\n",
+ "#REsults\n",
+ "print 'Order of reaction with respect to reactant A: %3.2f'%alp\n",
+ "print 'Order of reaction with respect to reactant A: %3.2f'%beta\n",
+ "print 'Rate constant of the reaction: %4.3e 1./(M.s)'%k"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Order of reaction with respect to reactant A: 2.00\n",
+ "Order of reaction with respect to reactant A: 1.00\n",
+ "Rate constant of the reaction: 3.201e+08 1./(M.s)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.3, Page Number 457"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "from sympy import *\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t1by2 = 2.05e4 #Half life for first order decomposition of N2O5, s\n",
+ "x = 60. #percentage decay of N2O5\n",
+ "\n",
+ "#Calculations\n",
+ "k = log(2)/t1by2\n",
+ "t = -log(x/100)/k\n",
+ "\n",
+ "#REsults\n",
+ "print 'Rate constant of the reaction: %4.3e 1/s'%k\n",
+ "print 'Timerequire for 60 percent decay of N2O5: %4.3e s'%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate constant of the reaction: 3.381e-05 1/s\n",
+ "Timerequire for 60 percent decay of N2O5: 1.511e+04 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.4, Page Number 457 Incomplete"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "t1by2 = 5760 #Half life for C14, years\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "k = log(2)/t1by2\n",
+ "t = -log(x/100)/k\n",
+ "\n",
+ "#REsults\n",
+ "print 'Rate constant of the reaction: %4.3e 1/s'%k\n",
+ "print 'Timerequire for 60 percent decay of N2O5: %4.3e s'%t"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.5, Page Number 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "kAbykI = 2.0 #Ratio of rate constants\n",
+ "kA = 0.1 #First order rate constant for rxn 1, 1/s \n",
+ "kI = 0.05 #First order rate constant for rxn 2, 1/s \n",
+ "#Calculations\n",
+ "tmax = 1/(kA-kI)*log(kA/kI)\n",
+ "\n",
+ "#Results\n",
+ "print 'Time required for maximum concentration of A: %4.2f s'%tmax"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time required for maximum concentration of A: 13.86 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.7, Page Number 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#Variable Declaration\n",
+ "T = 22.0 #Temperature of the reaction,\u00b0C\n",
+ "k1 = 7.0e-4 #Rate constants for rxn 1, 1/s\n",
+ "k2 = 4.1e-3 #Rate constant for rxn 2, 1/s \n",
+ "k3 = 5.7e-3 #Rate constant for rxn 3, 1/s \n",
+ "#Calculations\n",
+ "phiP1 = k1/(k1+k2+k3)\n",
+ "\n",
+ "#Results\n",
+ "print 'Percentage of Benzyl Penicillin that under acid catalyzed reaction by path 1: %4.2f '%(phiP1*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of Benzyl Penicillin that under acid catalyzed reaction by path 1: 6.67 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.8, Page Number 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg,log, exp\n",
+ "from matplotlib.pylab import plot, show\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Variable Declaration\n",
+ "T = array([22.7,27.2,33.7,38.0])\n",
+ "k1 = array([7.e-4,9.8e-4,1.6e-3,2.e-3])\n",
+ "R = 8.314 \n",
+ "\n",
+ "#Calculations\n",
+ "T = T +273.15\n",
+ "x = 1./T\n",
+ "y = log(k1)\n",
+ "A = array([ x, ones(size(x))])\n",
+ "# linearly generated sequence\n",
+ "[slope, intercept] = linalg.lstsq(A.T,y)[0] # obtaining the parameters\n",
+ "\n",
+ "# Use w[0] and w[1] for your calculations and give good structure to this ipython notebook\n",
+ "# plotting the line\n",
+ "line = slope*x+intercept # regression line\n",
+ "#Results\n",
+ "plot(x,line,'-',x,y,'o')\n",
+ "xlabel('$ 1/T, K^{-1} $')\n",
+ "ylabel('$ log(k) $')\n",
+ "show()\n",
+ "Ea = -slope*R\n",
+ "A = exp(intercept)\n",
+ "print 'Slope and intercept are, %6.1f and %4.2f'%(slope, intercept)\n",
+ "print 'Pre-exponential factor and Activation energy are %4.2f kJ/mol and %4.2e 1/s'%(Ea/1e3, A)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8fa5f10>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are, -6419.8 and 14.45\n",
+ "Pre-exponential factor and Activation energy are 53.37 kJ/mol and 1.88e+06 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.9, Page Number 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#Variable Declaration\n",
+ "Ea = 42.e3 #Activation energy for reaction, J/mol\n",
+ "A = 1.e12 #Pre-exponential factor for reaction, 1/s\n",
+ "T = 298.0 #Temeprature, K\n",
+ "Kc = 1.0e4 #Equilibrium constant for reaction\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "#Calculations\n",
+ "kB = A*exp(-Ea/(R*T))\n",
+ "kA = kB*Kc\n",
+ "kApp = kA + kB\n",
+ "\n",
+ "#Results\n",
+ "print 'Forward Rate constant is %4.2e 1/s'%kA\n",
+ "print 'Backward Rate constant is %4.2e 1/s'%kB\n",
+ "print 'Apperent Rate constant is %4.2e 1/s'%kApp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Rate constant is 4.34e+08 1/s\n",
+ "Backward Rate constant is 4.34e+04 1/s\n",
+ "Apperent Rate constant is 4.34e+08 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.10, Page Number 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "#Variable Declaration\n",
+ "Dh = 7.6e-7 #Diffusion coefficient of Hemoglobin, cm2/s\n",
+ "Do2 = 2.2e-5 #Diffusion coefficient of oxygen, cm2/s\n",
+ "rh = 35. #Radius of Hemoglobin, \u00b0A\n",
+ "ro2 = 2.0 #Radius of Oxygen, \u00b0A\n",
+ "k = 4e7 #Rate constant for binding of O2 to Hemoglobin, 1/(M.s)\n",
+ "NA =6.022e23 #Avagadro Number\n",
+ "#Calculations\n",
+ "DA = Dh + Do2\n",
+ "kd = 4*pi*NA*(rh+ro2)*1e-8*DA\n",
+ "\n",
+ "#Results\n",
+ "print 'Estimated rate %4.1e 1/(M.s) is far grater than experimental value of %4.1e 1/(M.s), \\nhence the reaction is not diffusion controlled'%(kd,k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimated rate 6.4e+13 1/(M.s) is far grater than experimental value of 4.0e+07 1/(M.s), \n",
+ "hence the reaction is not diffusion controlled\n"
+ ]
+ }
+ ],
+ "prompt_number": 65
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem 18.11, Page Number 484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log, e\n",
+ "#Variable Declaration\n",
+ "Ea = 104e3 #Activation energy for reaction, J/mol\n",
+ "A = 1.e13 #Pre-exponential factor for reaction, 1/s\n",
+ "T = 300.0 #Temeprature, K\n",
+ "R = 8.314 #Ideal gas constant, J/(mol.K)\n",
+ "h = 6.626e-34 #Plnak constant, Js\n",
+ "c = 1.0 #Std. State concentration, M\n",
+ "k = 1.38e-23 #,J/K\n",
+ "\n",
+ "#Calculations\n",
+ "dH = Ea - 2*R*T\n",
+ "dS = R*log(A*h*c/(k*T*e**2))\n",
+ "\n",
+ "#Results\n",
+ "print 'Forward Rate constant is %4.2e 1/s'%dH\n",
+ "print 'Backward Rate constant is %4.2f 1/s'%dS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Forward Rate constant is 9.90e+04 1/s\n",
+ "Backward Rate constant is -12.72 1/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19.ipynb
new file mode 100755
index 00000000..8e67d995
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19.ipynb
@@ -0,0 +1,340 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:426928f27add269a4fb950a40e7b077ed56eb54390661454909c07f1497ce752"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19: Complex Reaction Mechanism "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.1, Page Number 501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from numpy import arange,array,ones,linalg\n",
+ "from pylab import plot,show\n",
+ "#Variable declaration\n",
+ "Ce = 2.3e-9 #Initial value of enzyme concentration, M\n",
+ "r = array([2.78e-5,5.e-5,8.33e-5,1.67e-4])\n",
+ "CCO2 = array([1.25e-3,2.5e-3,5.e-3,20.e-3])\n",
+ "\n",
+ "#Calculations\n",
+ "rinv = 1./r\n",
+ "CCO2inv = 1./CCO2\n",
+ "xlim(0,850)\n",
+ "ylim(0,38000)\n",
+ "xi = CCO2inv\n",
+ "A = array([ CCO2inv, ones(size(CCO2inv))])\n",
+ "# linearly generated sequence\n",
+ "w = linalg.lstsq(A.T,rinv)[0] # obtaining the parameters\n",
+ "slope = w[0]\n",
+ "intercept = w[1]\n",
+ "\n",
+ "line = w[0]*CCO2inv+w[1] # regression line\n",
+ "plot(CCO2inv,line,'r-',CCO2inv,rinv,'o')\n",
+ "show()\n",
+ "rmax = 1./intercept\n",
+ "k2 = rmax/Ce\n",
+ "Km = slope*rmax\n",
+ "\n",
+ "#Results\n",
+ "print 'Km and k2 are %4.1f mM and %3.1e s-1'%(Km*1e3,k2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\noBfwGvDjRovIWrY//xmGDIGzz06zeZ5+2onfrAjt1sg/ItZub0v6JfBY9uUq4IiCXQ8njfhXZe2d\n+7cf8xHgVUltgf3fb9RfXl6+o11WVkZZWdnuhG9NoaYmXcD9/vfhq19NJZ799887KrOSUllZSWVl\nZYP2VUTUv5PUGXgsInpmXx8SEa9l7ZHA8RHxleyC7/3AZ0jlnCeBj0VESJoJDAeqgApgXERMljQU\n6BkRl0kaBJwVEYNqiSEaEqvl4Jln4PLL4YAD4Pbb4ROfyDsiMwMkERG1XZ+tf+QvaSJwEvAhSSuA\nMUCZpF6kWT+vAJcCRES1pAeBaqAGGFqQsYcCvwH2Bh6PiMlZ/13AvZIWA+uA9yR+K1KrV8O118K0\naXDLLXD++aBaf8/MrMg0aORfDDzyLyJbtsBPfwo33phm73z3u7DffnlHZWY72aORv9m7VFam5ZYP\nPjhdzD366LwjMrPd4ORvDbNqFVx9dbpB6yc/SUsuu8Rj1mL5bhur2zvvwI9+BJ/6FHTtmtbi+ed/\nduI3a+E88rf39+STqcTTpQv84Q/QrVveEZlZI3Hyt/f605/gqqtg9my47Tb48pc90jdrZVz2sb/b\nvDnN4Dn2WOjZMz1Ra+BAJ36zVsgjf0t+//u0HEOPHjBrVir1mFmr5eRf6l5+GUaOTBdyx46Ff/qn\nvCMys2bgsk+pevttKC+H44+HPn1g/nwnfrMS4pF/qYmASZPgyivTA1XmzIGPfCTvqMysmTn5t1IV\nFdMZN24Kmze3pUOHGoYP78eAow6BESNSqecXv4DTTss7TDPLiZN/K1RRMZ0RI55g6dIbd/Qtrfom\n1ExiwP8ZCY88Au3b5xihmeXNC7u1Qqef/l2mTLnhvf0nXcPkyh/lEJGZ5aGuhd18wbcV2ry59j/o\nNrFPM0diZsXKyb+12biRDssX1LqpY8etzRyMmRUrJ//WIgImToTu3Rne5R26dr72XZu7dr2OYcN8\ngdfMEtf8W4P58+GKK2D9+vSQlRNPpKJiOuPHT2XTpjZ07LiVYcNOY8CAvnlHambNqK6av5N/S7Zh\nQ7pR67770udLL4W2nsBlZokv+LY2EXDPPdC9O2zcmJZmuPxyJ34zazBni5Zm7txU4tm0CR5+OC3N\nYGa2izzybyneeCMl/dNPh699DWbOdOI3s91Wb/KX9CtJayTNK+g7UNJUSS9JmiLpgIJtoyUtlrRI\n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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8d31770>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Km and k2 are 10.0 mM and 1.1e+05 s-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.2, Page Number 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vads = array([5.98,7.76,10.1,12.35,16.45,18.05,19.72,21.1]) #Adsorption data at 193.5K\n",
+ "P = array([2.45,3.5,5.2,7.2,11.2,12.8,14.6,16.1]) #Pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "Vinv = 1./Vads\n",
+ "Pinv =1./P\n",
+ "xlim(0,0.5)\n",
+ "ylim(0,0.2)\n",
+ "A = array([ Pinv, ones(size(Pinv))])\n",
+ "# linearly generated sequence\n",
+ "w = linalg.lstsq(A.T,Vinv)[0] # obtaining the parameters\n",
+ "m = w[0]\n",
+ "c = w[1]\n",
+ "line = m*Pinv+c # regression line\n",
+ "plot(Pinv,line,'r-',Pinv,Vinv,'o')\n",
+ "show()\n",
+ "Vm = 1./c\n",
+ "K = 1./(m*Vm)\n",
+ "\n",
+ "#Results\n",
+ "print 'Slope and intercept are %5.4f torr.g/cm3 and %5.4f g/cm3'%(m,c)\n",
+ "print 'K and Vm are %4.2e Torr^-1 and %3.1f cm3/g'%(K,Vm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8295610>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are 0.3449 torr.g/cm3 and 0.0293 g/cm3\n",
+ "K and Vm are 8.48e-02 Torr^-1 and 34.2 cm3/g\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.3, Page Number 510"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.4, Page Number 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable declaration\n",
+ "CBr = array([0.0005,0.001,0.002,0.003,0.005]) #C6Br6 concentration, M\n",
+ "tf = array([2.66e-7,1.87e-7,1.17e-7,8.50e-8,5.51e-8]) #Fluroscence life time, s\n",
+ "\n",
+ "#Calculations\n",
+ "Tfinv = 1./tf\n",
+ "xlim(0,0.006)\n",
+ "ylim(0,2.e7)\n",
+ "A = array([ CBr, ones(size(CBr))])\n",
+ "# linearly generated sequence\n",
+ "[m,c] = linalg.lstsq(A.T,Tfinv)[0] # obtaining the parameters\n",
+ "\n",
+ "line = m*CBr+c # regression line\n",
+ "plot(CBr,line,'r-',CBr,Tfinv,'o')\n",
+ "show()\n",
+ "\n",
+ "#Results\n",
+ "print 'Slope and intercept are kq = %5.4e per s and kf = %5.4e per s'%(m,c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x860a730>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are kq = 3.1995e+09 per s and kf = 2.1545e+06 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.5, Page Number 523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import root\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r = 11. #Distance of residue separation, \u00b0A\n",
+ "r0 = 9. #Initial Distance of residue separation, \u00b0A\n",
+ "EffD = 0.2 #Fraction decrease in eff\n",
+ "\n",
+ "#Calculations\n",
+ "Effi = r0**6/(r0**6+r**6)\n",
+ "Eff = Effi*(1-EffD)\n",
+ "f = lambda r: r0**6/(r0**6+r**6) - Eff\n",
+ "sol = root(f, 12)\n",
+ "rn = sol.x[0]\n",
+ "\n",
+ "#Results\n",
+ "print 'Separation Distance at decreased efficiency %4.2f'%rn"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Separation Distance at decreased efficiency 11.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.6, Page Number 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "mr = 2.5e-3 #Moles reacted, mol\n",
+ "P = 100.0 #Irradiation Power, J/s\n",
+ "t = 27 #Time of irradiation, s\n",
+ "h = 6.626e-34 #Planks constant, Js\n",
+ "c = 3.0e8 #Speed of light, m/s\n",
+ "labda = 280e-9 #Wavelength of light, m\n",
+ "\n",
+ "#Calculation\n",
+ "Eabs = P*t\n",
+ "Eph = h*c/labda\n",
+ "nph = Eabs/Eph #moles of photone\n",
+ "phi = mr/6.31e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'Total photon energy absorbed by sample %3.1e J'%Eabs\n",
+ "print 'Photon energy absorbed at 280 nm is %3.1e J'%Eph\n",
+ "print 'Total number of photon absorbed by sample %3.1e photones'%nph\n",
+ "print 'Overall quantum yield %4.2f'%phi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total photon energy absorbed by sample 2.7e+03 J\n",
+ "Photon energy absorbed at 280 nm is 7.1e-19 J\n",
+ "Total number of photon absorbed by sample 3.8e+21 photones\n",
+ "Overall quantum yield 0.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.7, Page Number 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declarations\n",
+ "r = 2.0e9 #Rate constant for electron transfer, per s\n",
+ "labda = 1.2 #Gibss energy change, eV\n",
+ "DG = -1.93 #Gibss energy change for 2-naphthoquinoyl, eV\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "T = 298.0 #Temeprature, K\n",
+ "#Calculation\n",
+ "DGS = (DG+labda)**2/(4*labda)\n",
+ "k193 = r*exp(-DGS*1.6e-19/(k*T))\n",
+ "#Results\n",
+ "print 'DGS = %5.3f eV'%DGS\n",
+ "print 'Rate constant with barrier to electron transfer %3.2e per s'%k193"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DGS = 0.111 eV\n",
+ "Rate constant with barrier to electron transfer 2.66e+07 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_1.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_1.ipynb
new file mode 100755
index 00000000..fa06dbe1
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_1.ipynb
@@ -0,0 +1,332 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c61898b3497bb5b0aa45fad66ec37778e660d1c5f95436ee3dc7430758def5e0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19: Complex Reaction Mechanism "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.1, Page Number 501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from numpy import arange,array,ones,linalg\n",
+ "from pylab import plot,show\n",
+ "#Variable declaration\n",
+ "Ce = 2.3e-9 #Initial value of enzyme concentration, M\n",
+ "r = array([2.78e-5,5.e-5,8.33e-5,1.67e-4])\n",
+ "CCO2 = array([1.25e-3,2.5e-3,5.e-3,20.e-3])\n",
+ "\n",
+ "#Calculations\n",
+ "rinv = 1./r\n",
+ "CCO2inv = 1./CCO2\n",
+ "xlim(0,850)\n",
+ "ylim(0,38000)\n",
+ "xi = CCO2inv\n",
+ "A = array([ CCO2inv, ones(size(CCO2inv))])\n",
+ "# linearly generated sequence\n",
+ "w = linalg.lstsq(A.T,rinv)[0] # obtaining the parameters\n",
+ "slope = w[0]\n",
+ "intercept = w[1]\n",
+ "\n",
+ "line = w[0]*CCO2inv+w[1] # regression line\n",
+ "plot(CCO2inv,line,'r-',CCO2inv,rinv,'o')\n",
+ "show()\n",
+ "rmax = 1./intercept\n",
+ "k2 = rmax/Ce\n",
+ "Km = slope*rmax\n",
+ "\n",
+ "#Results\n",
+ "print 'Km and k2 are %4.1f mM and %3.1e s-1'%(Km*1e3,k2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\noBfwGvDjRovIWrY//xmGDIGzz06zeZ5+2onfrAjt1sg/ItZub0v6JfBY9uUq4IiCXQ8njfhXZe2d\n+7cf8xHgVUltgf3fb9RfXl6+o11WVkZZWdnuhG9NoaYmXcD9/vfhq19NJZ799887KrOSUllZSWVl\nZYP2VUTUv5PUGXgsInpmXx8SEa9l7ZHA8RHxleyC7/3AZ0jlnCeBj0VESJoJDAeqgApgXERMljQU\n6BkRl0kaBJwVEYNqiSEaEqvl4Jln4PLL4YAD4Pbb4ROfyDsiMwMkERG1XZ+tf+QvaSJwEvAhSSuA\nMUCZpF6kWT+vAJcCRES1pAeBaqAGGFqQsYcCvwH2Bh6PiMlZ/13AvZIWA+uA9yR+K1KrV8O118K0\naXDLLXD++aBaf8/MrMg0aORfDDzyLyJbtsBPfwo33phm73z3u7DffnlHZWY72aORv9m7VFam5ZYP\nPjhdzD366LwjMrPd4ORvDbNqFVx9dbpB6yc/SUsuu8Rj1mL5bhur2zvvwI9+BJ/6FHTtmtbi+ed/\nduI3a+E88rf39+STqcTTpQv84Q/QrVveEZlZI3Hyt/f605/gqqtg9my47Tb48pc90jdrZVz2sb/b\nvDnN4Dn2WOjZMz1Ra+BAJ36zVsgjf0t+//u0HEOPHjBrVir1mFmr5eRf6l5+GUaOTBdyx46Ff/qn\nvCMys2bgsk+pevttKC+H44+HPn1g/nwnfrMS4pF/qYmASZPgyivTA1XmzIGPfCTvqMysmTn5t1IV\nFdMZN24Kmze3pUOHGoYP78eAow6BESNSqecXv4DTTss7TDPLiZN/K1RRMZ0RI55g6dIbd/Qtrfom\n1ExiwP8ZCY88Au3b5xihmeXNC7u1Qqef/l2mTLnhvf0nXcPkyh/lEJGZ5aGuhd18wbcV2ry59j/o\nNrFPM0diZsXKyb+12biRDssX1LqpY8etzRyMmRUrJ//WIgImToTu3Rne5R26dr72XZu7dr2OYcN8\ngdfMEtf8W4P58+GKK2D9+vSQlRNPpKJiOuPHT2XTpjZ07LiVYcNOY8CAvnlHambNqK6av5N/S7Zh\nQ7pR67770udLL4W2nsBlZokv+LY2EXDPPdC9O2zcmJZmuPxyJ34zazBni5Zm7txU4tm0CR5+OC3N\nYGa2izzybyneeCMl/dNPh699DWbOdOI3s91Wb/KX9CtJayTNK+g7UNJUSS9JmiLpgIJtoyUtlrRI\n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\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8d31770>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Km and k2 are 10.0 mM and 1.1e+05 s-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.2, Page Number 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vads = array([5.98,7.76,10.1,12.35,16.45,18.05,19.72,21.1]) #Adsorption data at 193.5K\n",
+ "P = array([2.45,3.5,5.2,7.2,11.2,12.8,14.6,16.1]) #Pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "Vinv = 1./Vads\n",
+ "Pinv =1./P\n",
+ "xlim(0,0.5)\n",
+ "ylim(0,0.2)\n",
+ "A = array([ Pinv, ones(size(Pinv))])\n",
+ "# linearly generated sequence\n",
+ "w = linalg.lstsq(A.T,Vinv)[0] # obtaining the parameters\n",
+ "m = w[0]\n",
+ "c = w[1]\n",
+ "line = m*Pinv+c # regression line\n",
+ "plot(Pinv,line,'r-',Pinv,Vinv,'o')\n",
+ "show()\n",
+ "Vm = 1./c\n",
+ "K = 1./(m*Vm)\n",
+ "\n",
+ "#Results\n",
+ "print 'Slope and intercept are %5.4f torr.g/cm3 and %5.4f g/cm3'%(m,c)\n",
+ "print 'K and Vm are %4.2e Torr^-1 and %3.1f cm3/g'%(K,Vm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8295610>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are 0.3449 torr.g/cm3 and 0.0293 g/cm3\n",
+ "K and Vm are 8.48e-02 Torr^-1 and 34.2 cm3/g\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.4, Page Number 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg\n",
+ "from pylab import plot,show\n",
+ "\n",
+ "#Variable declaration\n",
+ "CBr = array([0.0005,0.001,0.002,0.003,0.005]) #C6Br6 concentration, M\n",
+ "tf = array([2.66e-7,1.87e-7,1.17e-7,8.50e-8,5.51e-8]) #Fluroscence life time, s\n",
+ "\n",
+ "#Calculations\n",
+ "Tfinv = 1./tf\n",
+ "xlim(0,0.006)\n",
+ "ylim(0,2.e7)\n",
+ "A = array([ CBr, ones(size(CBr))])\n",
+ "# linearly generated sequence\n",
+ "[m,c] = linalg.lstsq(A.T,Tfinv)[0] # obtaining the parameters\n",
+ "\n",
+ "line = m*CBr+c # regression line\n",
+ "plot(CBr,line,'r-',CBr,Tfinv,'o')\n",
+ "show()\n",
+ "\n",
+ "#Results\n",
+ "print 'Slope and intercept are kq = %5.4e per s and kf = %5.4e per s'%(m,c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x860a730>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are kq = 3.1995e+09 per s and kf = 2.1545e+06 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.5, Page Number 523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import root\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r = 11. #Distance of residue separation, \u00b0A\n",
+ "r0 = 9. #Initial Distance of residue separation, \u00b0A\n",
+ "EffD = 0.2 #Fraction decrease in eff\n",
+ "\n",
+ "#Calculations\n",
+ "Effi = r0**6/(r0**6+r**6)\n",
+ "Eff = Effi*(1-EffD)\n",
+ "f = lambda r: r0**6/(r0**6+r**6) - Eff\n",
+ "sol = root(f, 12)\n",
+ "rn = sol.x[0]\n",
+ "\n",
+ "#Results\n",
+ "print 'Separation Distance at decreased efficiency %4.2f'%rn"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Separation Distance at decreased efficiency 11.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.6, Page Number 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "mr = 2.5e-3 #Moles reacted, mol\n",
+ "P = 100.0 #Irradiation Power, J/s\n",
+ "t = 27 #Time of irradiation, s\n",
+ "h = 6.626e-34 #Planks constant, Js\n",
+ "c = 3.0e8 #Speed of light, m/s\n",
+ "labda = 280e-9 #Wavelength of light, m\n",
+ "\n",
+ "#Calculation\n",
+ "Eabs = P*t\n",
+ "Eph = h*c/labda\n",
+ "nph = Eabs/Eph #moles of photone\n",
+ "phi = mr/6.31e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'Total photon energy absorbed by sample %3.1e J'%Eabs\n",
+ "print 'Photon energy absorbed at 280 nm is %3.1e J'%Eph\n",
+ "print 'Total number of photon absorbed by sample %3.1e photones'%nph\n",
+ "print 'Overall quantum yield %4.2f'%phi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total photon energy absorbed by sample 2.7e+03 J\n",
+ "Photon energy absorbed at 280 nm is 7.1e-19 J\n",
+ "Total number of photon absorbed by sample 3.8e+21 photones\n",
+ "Overall quantum yield 0.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.7, Page Number 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declarations\n",
+ "r = 2.0e9 #Rate constant for electron transfer, per s\n",
+ "labda = 1.2 #Gibss energy change, eV\n",
+ "DG = -1.93 #Gibss energy change for 2-naphthoquinoyl, eV\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "T = 298.0 #Temeprature, K\n",
+ "#Calculation\n",
+ "DGS = (DG+labda)**2/(4*labda)\n",
+ "k193 = r*exp(-DGS*1.6e-19/(k*T))\n",
+ "#Results\n",
+ "print 'DGS = %5.3f eV'%DGS\n",
+ "print 'Rate constant with barrier to electron transfer %3.2e per s'%k193"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DGS = 0.111 eV\n",
+ "Rate constant with barrier to electron transfer 2.66e+07 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_2.ipynb b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_2.ipynb
new file mode 100755
index 00000000..78526d43
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/Chapter19_2.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4e717dccd3881fc251151e670a02cca0fba87118374ab9969adbd84fab322b22"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19: Complex Reaction Mechanism "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.1, Page Number 501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "from numpy import arange,array,ones,linalg\n",
+ "from matplotlib.pylab import plot,show\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Variable declaration\n",
+ "Ce = 2.3e-9 #Initial value of enzyme concentration, M\n",
+ "r = array([2.78e-5,5.e-5,8.33e-5,1.67e-4])\n",
+ "CCO2 = array([1.25e-3,2.5e-3,5.e-3,20.e-3])\n",
+ "\n",
+ "#Calculations\n",
+ "rinv = 1./r\n",
+ "CCO2inv = 1./CCO2\n",
+ "xlim(0,850)\n",
+ "ylim(0,38000)\n",
+ "xi = CCO2inv\n",
+ "A = array([ CCO2inv, ones(size(CCO2inv))])\n",
+ "# linearly generated sequence\n",
+ "w = linalg.lstsq(A.T,rinv)[0] # obtaining the parameters\n",
+ "slope = w[0]\n",
+ "intercept = w[1]\n",
+ "\n",
+ "line = w[0]*CCO2inv+w[1] # regression line\n",
+ "plot(CCO2inv,line,'r-',CCO2inv,rinv,'o')\n",
+ "xlabel('$ {C_{CO}}_2, mM^{-1} $')\n",
+ "ylabel('$ Rate^{-1}, s/M^{-1} $')\n",
+ "show()\n",
+ "rmax = 1./intercept\n",
+ "k2 = rmax/Ce\n",
+ "Km = slope*rmax\n",
+ "\n",
+ "#Results\n",
+ "print 'Km and k2 are %4.1f mM and %3.1e s-1'%(Km*1e3,k2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nF5YyGTPmIUaMGMfKla1p27aGIT88mH5TH0q7OZ51FtxxB2y+ed4xzcwqzoWlDMaMeYihQ+9j7tyL\n1rbNnfBFXo8TAAAKXUlEQVQdOHA5/aZNg512yjGdmVnj8uR9GYwYMW6dogIwd/VfGLnF3i4qZtbi\nuLCUwcqVdXf8Vqxo1chJzMzyV9jCImmepKclTZU0OWtrL2m8pOckjZO0bcnjz5Y0R9JsSX1K2veR\nND2776pKZG3btqbO9nbtVlfi7czMCq2whQUIoCoi9o6I/bO2YcD4iNgdmJDdRlJ34HigO9AXuEZa\nuybKtcDAiOgGdJPUt9xBhwzpQ9euv1inrWvXcxg82GeAmVnLU/TJ+/UXzDoGODQ7vgGoJhWXY4Fb\nI2IVME/S80BvSS8BW0XE5Ow5NwL9gbHlDNmv3yEAjBz5S1asaEW7dqsZPLjv2nYzs5akyIUlgPsl\nrQb+EBH/A3SIiMXZ/YuBDtlxR2BiyXPnAzsBq7LjWguy9rLr1+8QFxIzM4pdWA6MiFclfQYYL2l2\n6Z0REZIip2xmZrYBhS0sEfFq9n2JpH8A+wOLJe0QEYsk7Qi8lj18AbBzydM7kXoqC7Lj0vYFdb3f\n8OHD1x5XVVVRVVVVng9iZtYMVFdXU11dvVGPVUTxfumX9AmgVUS8LemTwDjgfOAIYGlEXCppGLBt\nRAzLJu9vIRWfnYD7gd2yXs0kYAgwGRgDjIiIseu9XxTx52BmVlSSiIg6N44qao+lA/CP7MSu1sBf\nImKcpCeA0ZIGAvOAbwNExExJo4GZQA0wqKRSDAKuB7YA7lm/qJiZWXkVssfS2NxjMTOrn4/qsRT5\nOhYzM2uCXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjM\nzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKysXFjMzKys\nXFjMzKysWkRhkdRX0mxJcySdlXceM7PmrNkXFkmtgKuBvkB34ARJe+abauNVV1fnHWGDipwNip2v\nyNmg2PmcreEaK1+zLyzA/sDzETEvIlYBfwWOzTnTRivyX9QiZ4Ni5ytyNih2PmdrOBeW8tkJeKXk\n9vyszczMKqAlFJbIO4CZWUuiiOb9/66kA4DhEdE3u302sCYiLi15TPP+IZiZVUBEqK72llBYWgPP\nAv8GLAQmAydExKxcg5mZNVOt8w5QaRFRI+lU4D6gFTDKRcXMrHKafY/FzMwaV0uYvN+gvC+clPRn\nSYslTS9pay9pvKTnJI2TtG3JfWdnWWdL6tMI+XaW9ICkZyTNkDSkKBkltZM0SdJTkmZKurgo2Ure\nr5WkqZLuKmC2eZKezvJNLlI+SdtK+pukWdmfbe8CZftc9jOr/VouaUiB8p2d/XudLukWSW1zyRYR\nLfKLNCz2PLAr0AZ4CtizkTMcDOwNTC9p+w3w8+z4LOCS7Lh7lrFNlvl5YLMK59sB6JUdb0maq9qz\nKBmBT2TfWwMTgYOKki17zzOAvwB3FvDP9kWg/XpthcgH3AD8R8mf7TZFybZezs2AV4Gdi5Ave/0X\ngLbZ7duAk/PIVvEfflG/gC8BY0tuDwOG5ZBjV9YtLLOBDtnxDsDs7Phs4KySx40FDmjkrHcARxQt\nI/AJ4HGgR1GyAZ2A+4HDgLuK9mdLKizbrdeWez5SEXmhjvbcs9WRqQ/wcFHyAe1Jv/x9ilSQ7wKO\nzCNbSx4KK+qFkx0iYnF2vBjokB13JGWs1ah5Je1K6l1NoiAZJW0m6akswwMR8UxRsgFXAD8D1pS0\nFSUbpOu77pf0hKQfFihfF2CJpOskTZH0P5I+WZBs6xsA3Jod554vIpYBvwNeJp0B+2ZEjM8jW0su\nLIU/ayHSrxEflbNRPoOkLYHbgaER8fY6AXLMGBFrIqIXqXdwiKTDipBN0tHAaxExFajzPP8C/Nke\nGBF7A0cBp0g6eJ03zy9fa+CLwDUR8UXgXdJoQhGyrSVpc+BrwP/70Jvn9/euK3AaaRSkI7ClpO/m\nka0lF5YFpLHRWjuzbvXOy2JJOwBI2hF4LWtfP2+nrK2iJLUhFZWbIuKOImaMiOXAGGCfgmT7MnCM\npBdJv9EeLummgmQDICJezb4vAf5BWlOvCPnmA/Mj4vHs9t9IhWZRAbKVOgp4Mvv5QTF+dvsCj0bE\n0oioAf5OGvJv9J9dSy4sTwDdJO2a/fZxPHBnzpkgZTg5Oz6ZNK9R2z5A0uaSugDdSBd7VowkAaOA\nmRFxZZEySvp07dktkrYgjSVPLUK2iDgnInaOiC6k4ZL/i4iTipANQNInJG2VHX+SNFcwvQj5ImIR\n8Iqk3bOmI4BnSPMFuf/sSpzAv4bBanPknW82cICkLbJ/u0cAM8njZ9cYk1xF/SL91vEs6WyIs3N4\n/1tJY6EfkOZ7vk+agLsfeA4YB2xb8vhzsqyzga80Qr6DSHMET5H+055K2n4g94xAT2BKlu1p4GdZ\ne+7Z1st5KP86K6wQ2UjzGE9lXzNq/+4XKN8XSCdjTCP91r1NUbJl7/dJ4HVgq5K2QuQDfk4qxNNJ\nZ9e1ySObL5A0M7OyaslDYWZmVgEuLGZmVlYuLGZmVlYuLGZmVlYuLGZmVlYuLGZmVlYuLGZmVlYu\nLGZmVlYuLGYtmKRjJXXMO4c1Ly4sZi1UtjDhyWxgBWazhnJhMWuhIi34OC3vHNb8tM47gFlTli1D\nPghYAiwH3gK2jogbGjnHIOASoEtELC1pHw28B/wR2KrkKW9FxGONmdFaDhcWswaS9FngD8DxkXbv\nQ9J/k1bkbWyTgXtJmzwtzbJ8EdiStHrx3PWfIGl74HOk7ZNvbrSk1uy5sJg13M3AL2uLSmYqaa+f\nxrYL8DDQGXgya9sS2L6uogIQEa8BJzZOPGtJXFjMGkDSl0n7cUxY766/RsQ7ZXqPg4FvAg+SJtir\ngLHApwEi4sbSh5P29Nk1e+6XgBf4126BZo3Gk/dmDfMloHr9xnIVldqXy77Pj4i/A3sBDwF3k7br\nXd8rwM7ZdtIB9KJxdlM0W4d7LGYNUwO8X9qQbXF9aESMl9QT6AG8StpP/m7Sv7cdgWWk/cmfIO1G\n2DsifrP+G0TEI5LOiojHJX0CWBoR70j6Kmn3x9r33Rp4g1RYOgMHRMTDki4APEFvjc49FrOGGUPa\nX7z0GpDjgQckdSJN6P81Ih4EXiKdMXZ0RIyLiCeAVsCXgUnApyVtWfsi2f7jSNoCWJE178u/eh/H\nAA9L2iu7vR/wZEQsAT4LvJ2170/a4tesUbmwmDVARDwPXA5cJukHkk4C7omIGuAnwPUljx0N/BC4\nteQlugB3AauA1rVDaJJ2Iu1PDqnH82B2/Hnggez4VaA3MF3SQcDFwNHZfY9ExFPZ6ce9gIPK9qHN\nNpL3vDcrM0mXAP+VDVu1AnYHvg/8KiJWSNouOx4q6URgHLA8IlZlz6+KiOq88pttKhcWszKT1Bk4\nCngGWB0Rj2XDW/sD84A9gNtIQ2eHAGuAH0fE6uz5X4mI+/LIblYOLixmZlZWnmMxM7OycmExM7Oy\ncmExM7OycmExM7OycmExM7OycmExM7OycmExM7OycmExM7OycmExM7Oy+v9NTCabMvHx4wAAAABJ\nRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x22b5270>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Km and k2 are 10.0 mM and 1.1e+05 s-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.2, Page Number 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg\n",
+ "from matplotlib.pylab import plot,show\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Variable declaration\n",
+ "Vads = array([5.98,7.76,10.1,12.35,16.45,18.05,19.72,21.1]) #Adsorption data at 193.5K\n",
+ "P = array([2.45,3.5,5.2,7.2,11.2,12.8,14.6,16.1]) #Pressure, torr\n",
+ "\n",
+ "#Calculations\n",
+ "Vinv = 1./Vads\n",
+ "Pinv =1./P\n",
+ "xlim(0,0.5)\n",
+ "ylim(0,0.2)\n",
+ "A = array([ Pinv, ones(size(Pinv))])\n",
+ "# linearly generated sequence\n",
+ "w = linalg.lstsq(A.T,Vinv)[0] # obtaining the parameters\n",
+ "m = w[0]\n",
+ "c = w[1]\n",
+ "line = m*Pinv+c # regression line\n",
+ "plot(Pinv,line,'r-',Pinv,Vinv,'o')\n",
+ "xlabel('$ 1/P, Torr^{-1} $')\n",
+ "ylabel('$ 1/V_{abs}, cm^{-1}g $')\n",
+ "show()\n",
+ "Vm = 1./c\n",
+ "K = 1./(m*Vm)\n",
+ "\n",
+ "#Results\n",
+ "print 'Slope and intercept are %5.4f torr.g/cm3 and %5.4f g/cm3'%(m,c)\n",
+ "print 'K and Vm are %4.2e Torr^-1 and %3.1f cm3/g'%(K,Vm)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bde3f0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are 0.3449 torr.g/cm3 and 0.0293 g/cm3\n",
+ "K and Vm are 8.48e-02 Torr^-1 and 34.2 cm3/g\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.4, Page Number 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import arange,array,ones,linalg\n",
+ "from matplotlib.pylab import plot,show\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Variable declaration\n",
+ "CBr = array([0.0005,0.001,0.002,0.003,0.005]) #C6Br6 concentration, M\n",
+ "tf = array([2.66e-7,1.87e-7,1.17e-7,8.50e-8,5.51e-8]) #Fluroscence life time, s\n",
+ "\n",
+ "#Calculations\n",
+ "Tfinv = 1./tf\n",
+ "xlim(0,0.006)\n",
+ "ylim(0,2.e7)\n",
+ "A = array([ CBr, ones(size(CBr))])\n",
+ "# linearly generated sequence\n",
+ "[m,c] = linalg.lstsq(A.T,Tfinv)[0] # obtaining the parameters\n",
+ "\n",
+ "line = m*CBr+c # regression line\n",
+ "plot(CBr,line,'r-',CBr,Tfinv,'o')\n",
+ "xlabel('$ Br_6C_6, M $')\n",
+ "ylabel('$ tau_f $')\n",
+ "show()\n",
+ "\n",
+ "#Results\n",
+ "print 'Slope and intercept are kq = %5.4e per s and kf = %5.4e per s'%(m,c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5c02050>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slope and intercept are kq = 3.1995e+09 per s and kf = 2.1545e+06 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.5, Page Number 523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from scipy.optimize import root\n",
+ "\n",
+ "#Variable Declaration\n",
+ "r = 11. #Distance of residue separation, \u00b0A\n",
+ "r0 = 9. #Initial Distance of residue separation, \u00b0A\n",
+ "EffD = 0.2 #Fraction decrease in eff\n",
+ "\n",
+ "#Calculations\n",
+ "Effi = r0**6/(r0**6+r**6)\n",
+ "Eff = Effi*(1-EffD)\n",
+ "f = lambda r: r0**6/(r0**6+r**6) - Eff\n",
+ "sol = root(f, 12)\n",
+ "rn = sol.x[0]\n",
+ "\n",
+ "#Results\n",
+ "print 'Separation Distance at decreased efficiency %4.2f'%rn"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Separation Distance at decreased efficiency 11.53\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.6, Page Number 525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable Declarations\n",
+ "mr = 2.5e-3 #Moles reacted, mol\n",
+ "P = 100.0 #Irradiation Power, J/s\n",
+ "t = 27 #Time of irradiation, s\n",
+ "h = 6.626e-34 #Planks constant, Js\n",
+ "c = 3.0e8 #Speed of light, m/s\n",
+ "labda = 280e-9 #Wavelength of light, m\n",
+ "\n",
+ "#Calculation\n",
+ "Eabs = P*t\n",
+ "Eph = h*c/labda\n",
+ "nph = Eabs/Eph #moles of photone\n",
+ "phi = mr/6.31e-3\n",
+ "\n",
+ "#Results\n",
+ "print 'Total photon energy absorbed by sample %3.1e J'%Eabs\n",
+ "print 'Photon energy absorbed at 280 nm is %3.1e J'%Eph\n",
+ "print 'Total number of photon absorbed by sample %3.1e photones'%nph\n",
+ "print 'Overall quantum yield %4.2f'%phi"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total photon energy absorbed by sample 2.7e+03 J\n",
+ "Photon energy absorbed at 280 nm is 7.1e-19 J\n",
+ "Total number of photon absorbed by sample 3.8e+21 photones\n",
+ "Overall quantum yield 0.40\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Problem: 19.7, Page Number 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "#Variable Declarations\n",
+ "r = 2.0e9 #Rate constant for electron transfer, per s\n",
+ "labda = 1.2 #Gibss energy change, eV\n",
+ "DG = -1.93 #Gibss energy change for 2-naphthoquinoyl, eV\n",
+ "k = 1.38e-23 #Boltzman constant, J/K\n",
+ "T = 298.0 #Temeprature, K\n",
+ "#Calculation\n",
+ "DGS = (DG+labda)**2/(4*labda)\n",
+ "k193 = r*exp(-DGS*1.6e-19/(k*T))\n",
+ "#Results\n",
+ "print 'DGS = %5.3f eV'%DGS\n",
+ "print 'Rate constant with barrier to electron transfer %3.2e per s'%k193"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DGS = 0.111 eV\n",
+ "Rate constant with barrier to electron transfer 2.66e+07 per s\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03.png
new file mode 100755
index 00000000..340910e9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_1.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_1.png
new file mode 100755
index 00000000..340910e9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_1.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_2.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_2.png
new file mode 100755
index 00000000..340910e9
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_03_2.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09.png
new file mode 100755
index 00000000..57ee746b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_1.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_1.png
new file mode 100755
index 00000000..57ee746b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_1.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_2.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_2.png
new file mode 100755
index 00000000..57ee746b
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_09_2.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18.png
new file mode 100755
index 00000000..023be802
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_1.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_1.png
new file mode 100755
index 00000000..023be802
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_1.png
Binary files differ
diff --git a/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_2.png b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_2.png
new file mode 100755
index 00000000..023be802
--- /dev/null
+++ b/Thermodynamics,_Statistical_Thermodynamics,_&_Kinetics/screenshots/Chapter_18_2.png
Binary files differ
diff --git a/Thermodynamics/Chapter10.ipynb b/Thermodynamics/Chapter10.ipynb
new file mode 100755
index 00000000..fbcc64f3
--- /dev/null
+++ b/Thermodynamics/Chapter10.ipynb
@@ -0,0 +1,763 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:897b863d1c4a7fc08bdd18a7c97541fdce377415c35a75aa9b7ef0eec5c061e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10:AVAILABILITY AND IRREVERSIBILITY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1, Page No:472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=100; # Mass of water in kg\n",
+ "T0=90; # Initial temperature of water in degree celcius\n",
+ "T=30; # temperature of Surroundings in degree celcius\n",
+ "C=4.1868; # Specific heat in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "AE=m*C*((T0-T)-(T+273)*math.log ((T0+273)/(T+273))); # Available energy\n",
+ "Q=m*C*(T0-T); # Heat supplied\n",
+ "UE=Q-AE; # Unavailable energy\n",
+ "\n",
+ "#Result\n",
+ "print \"Available energy =\",round(AE,0),\"kJ\"\n",
+ "print \"Heat supplied = \",round(Q,0),\"kJ\",\"\\nUnavailable energy = \",round(UE,0),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy = 2201.0 kJ\n",
+ "Heat supplied = 25121.0 kJ \n",
+ "Unavailable energy = 22920.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No:474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=250; # Evaporation teemperature of water in degree celcius\n",
+ "Ta=1250; # Initial temperature of combustion gas in degree celcius\n",
+ "Tb=350; # Final temperature of combustion gas in degree celcius\n",
+ "C=1.08; # Specific heat of gas in kJ/kg K\n",
+ "T0=30; # temperature of Surroundings in degree celcius\n",
+ "hfg=1716.2; # Enthalpy of evaporation at T temperature\n",
+ "\n",
+ "#Calculation\n",
+ "del_SH2O=hfg/(T+273); # Entropy change of water\n",
+ "mgas=hfg/(C*(Ta-Tb)); # Mass of gas\n",
+ "del_Sgas=mgas*C*math.log ((Tb+273)/(Ta+273)); # Enthalpy change of gas\n",
+ "del_Stotal=del_SH2O+del_Sgas; # Total entropy change\n",
+ "l_AE=(T0+273)*del_Stotal; # Loss of available energy\n",
+ "\n",
+ "#Result\n",
+ "print \"Loss of available energy = \",round(l_AE,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loss of available energy = 477.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3, Page No:475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Cp=1.1; # Specific heat of combustion gas in kJ/kg K\n",
+ "T3=1600; # Initial temperature of combustion gas in Kelvin\n",
+ "T4=1150; # Final temperature of combustion gas in Kelvin\n",
+ "p1=0.1; # Pressure at inlet of boiler in MPa\n",
+ "p2=8;# Pressure at outlet of boiler in MPa\n",
+ "T2=600; # Temperature at outlet of boiler in degree celcius\n",
+ "m=1; # Mass of water in kg\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).mass flow rate of gases per kg of water\n",
+ "# From steam table \n",
+ "h1=2758; h2=3642;# specific enthalpy in kJ/kg \n",
+ "s1=5.7432; s2=7.0206; # specific entropy in kJ/kg K\n",
+ "mgas=(h2-h1)/(Cp*(T3-T4)); #mass flow rate of gases per kg of water\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).mass flow rate of gases per kg of water =\",round(mgas,3),\"kg gas / kg water\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c). Degrease in Available energy\n",
+ "S21=s2-s1; # Change in entropy of water\n",
+ "S34=mgas*Cp*math.log (T3/T4); # Change in entropy of gases\n",
+ "UEgases=T0*S34; # UnAvailable energy of gas\n",
+ "UEsteam=T0*S21; # UnAvailable energy of steam\n",
+ "d_AE=UEsteam-UEgases; # Degrease in Available energy\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).\",\"\\nChange in entropy of water = \",round(S21,4),\"kJ/K\",\"\\nChange in entropy of gas = \",round(-S34,4),\"kJ/K\"\n",
+ "print \"Unavailable energy of gas = \",round(UEgases,1),\"kJ\",\"\\nUnavailable energy of steam =\",round(UEsteam,1),\"kJ\"\n",
+ "print \"Degrease in Available energy = \",round(d_AE,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b).mass flow rate of gases per kg of water = 1.786 kg gas / kg water\n",
+ "\n",
+ "(c). \n",
+ "Change in entropy of water = 1.2774 kJ/K \n",
+ "Change in entropy of gas = -0.6487 kJ/K\n",
+ "Unavailable energy of gas = 193.3 kJ \n",
+ "Unavailable energy of steam = 380.7 kJ\n",
+ "Degrease in Available energy = 187.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5, Page No:481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=700;# Exhaust gas temperature in degree celcius\n",
+ "p=120;# Exhaust gas pressure in kPa\n",
+ "Cpo=1.089; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant in kJ/kg K\n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=30; # temperature of Surroundings in degree celcius\n",
+ "\n",
+ "#Calculation\n",
+ "Cvo=Cpo-R; # Specific heat at constant volume\n",
+ "AE=(Cvo*(T-T0))+(p0*R*((T+273)/p-(T0+273)/p0))-((T0+273)*((Cpo*math.log((T+273)/(T0+273)))-(R*math.log (p/p0)))); # Available energy\n",
+ "\n",
+ "#Result \n",
+ "print \"Available energy in Exhaust gas =\",round(AE,0),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy in Exhaust gas = 314.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.6, Page No:482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=450; # Initial pressure in kPa\n",
+ "T=600; # Initial temperature in kelvin\n",
+ "V1=0.01; # Initial volume in m^3\n",
+ "TR=1200; # Temperature of heat source in Kelvin\n",
+ "V2=0.02; # Final volume in m^3\n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=300; # temperature of Surroundings in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "# Useful Work\n",
+ "W=p1*V1*math.log (V2/V1); # Actual work\n",
+ "Wsurr=p0*(V2-V1); # Surrounding work\n",
+ "Wu=W-Wsurr; # Useful work\n",
+ "# Reversible work\n",
+ "Q=W; # For isothermal process\n",
+ "S21=Q/T; # Entropy change of system\n",
+ "Wrev=T0*S21-Wsurr+Q*(1-T0/TR); # reversible work\n",
+ "# Irreversibility of the process\n",
+ "I=Wrev-Wu; # Irreversibility\n",
+ "# Entropy generation \n",
+ "del_Sgen=S21-Q/TR;#Entropy generation\n",
+ "\n",
+ "#Results\n",
+ "print \"Useful Work for the process =\",round(Wu,2),\"kJ\"\n",
+ "print \"Reversible work for the provess =\",round(Wrev,1),\"kJ\"\n",
+ "print \"Irreversibility of the process = \",round(I,2),\"kJ\"\n",
+ "print \"Entropy generation of the process = \",round(del_Sgen,4),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Useful Work for the process = 2.12 kJ\n",
+ "Reversible work for the provess = 2.9 kJ\n",
+ "Irreversibility of the process = 0.78 kJ\n",
+ "Entropy generation of the process = 0.0026 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No:485"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration for (i)\n",
+ "# (i).Irreversibility in Turbine\n",
+ "p1=9; # Steam pressure at turbine inlet in MPa\n",
+ "T1=450; # Steam temperature at turbine inlet in degree celcius\n",
+ "p2=50; # Steam pressure at turbine outlet in MPa\n",
+ "x2=0.95; # Quality of steam \n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=300; # temperature of Surroundings in kelvin\n",
+ "q=-10; # Heat loss in kJ/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Decrease in availability\n",
+ "# from steam table\n",
+ "h1=3256.6; h2=2415.4;# specific enthalpy in kJ/kg \n",
+ "s1=6.4844; s2=6.944; # specific entropy in kJ/kg K\n",
+ "d_AE=(h1-h2)-(T0*(s1-s2)); # Decrease in availability\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(i).Irreversibility in turbine\",\"\\n (a).Decrease in availability =\",round(d_AE,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Maxximum work output\n",
+ "wrev=d_AE; #Maxximum work output\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \" (b).Maxximum work output =\",round(wrev,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Actual work output \n",
+ "w=(h1-h2)+q; # From SSSF energy equation\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \" (c).Actual work output = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Irreversibility\n",
+ "I=wrev-w; #Irreversibility\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \" (d).Irreversibility = \",round(I,1),\"kJ/kg\"\n",
+ "\n",
+ "#Variable declaration for (ii)\n",
+ "# (ii).Ammonia compressor\n",
+ "T1=-10; # Temperature at inlet in degree celcius\n",
+ "p2=1.554; # Pressure at outlet in MPa\n",
+ "T2=140; # Temperature at outlet in degree celcius\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "#from ammonia tables \n",
+ "h1=1433; h2=1752;# specific enthalpy in kJ/kg \n",
+ "s1=5.477; s2=5.655; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (ii)\n",
+ "wactual=-(h2-h1); # Actual work\n",
+ "wmin=-((h2-h1)-(T0*(s2-s1)));# mimimum work\n",
+ "I=wmin-wactual;# Irreversibility\n",
+ "\n",
+ "#Result for (ii)\n",
+ "print \"\\n(ii).Ammonia compressor\",\"\\nActual work = \",wactual,\"kJ/kg\"\n",
+ "print \"Minimum work =\",round(wmin,0),\"kJ/kg\",\"\\nIrreversibility =\",round(I,0),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i).Irreversibility in turbine \n",
+ " (a).Decrease in availability = 979.1 kJ/kg\n",
+ " (b).Maxximum work output = 979.1 kJ/kg\n",
+ " (c).Actual work output = 831.2 kJ/kg\n",
+ " (d).Irreversibility = 147.9 kJ/kg\n",
+ "\n",
+ "(ii).Ammonia compressor \n",
+ "Actual work = -319 kJ/kg\n",
+ "Minimum work = -266.0 kJ/kg \n",
+ "Irreversibility = 53.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.8, Page No:487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Cp=1.1; # Specific heat of combustion gas in kJ/kg K\n",
+ "T3=1600; # Initial temperature of combustion gas in Kelvin\n",
+ "T4=1150; # Final temperature of combustion gas in Kelvin\n",
+ "p1=0.1; # Pressure at inlet of boiler in MPa\n",
+ "p2=8;# Pressure at outlet of boiler in MPa\n",
+ "T2=600; # Temperature at outlet of boiler in degree celcius\n",
+ "m=1; # Mass of water in kg\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "# From steam table \n",
+ "h1=2758; h2=3642;# specific enthalpy in kJ/kg \n",
+ "s1=5.7432; s2=7.0206; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation \n",
+ "mgas=(h2-h1)/(Cp*(T3-T4)); #mass flow rate of gases per kg of water\n",
+ "S21=s2-s1; # Change in entropy of water\n",
+ "S34=mgas*Cp*math.log (T3/T4); # Change in entropy of gases\n",
+ "# (a).Decrease in availability of gases\n",
+ "d_AEgas=mgas*Cp*(T3-T4)-T0*S34#Decrease in availability of gases\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Decrease in availability of gases = \",round(d_AEgas,2),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Decrease in availability of water\n",
+ "d_AEwater=(h1-h2)-T0*(s1-s2);# Decrease in availability of water\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).Decrease in availability of water =\",round(d_AEwater,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Reversible work for the process\n",
+ "Wrev=d_AEgas+d_AEwater; #Reversible work for the process\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"(c).Reversible work for the process=\",round(Wrev,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Actual work for the process\n",
+ "W=0; # Actual work\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"(d).Actual work for the process =\",W,\"kJ\"\n",
+ "\n",
+ "#Calculation for (e)\n",
+ "# (e).Irreversibility\n",
+ "I=Wrev-W; #Irreversibility\n",
+ "\n",
+ "#Result for (e)\n",
+ "print \"(e).Irreversibility = \",round(I,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Decrease in availability of gases = 690.68 kJ\n",
+ "(b).Decrease in availability of water = -503.3 kJ\n",
+ "(c).Reversible work for the process= 187.3 kJ\n",
+ "(d).Actual work for the process = 0 kJ\n",
+ "(e).Irreversibility = 187.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.9, Page No:487"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=600; # Temperature of heat sorce in degree celcius\n",
+ "T3=311.06; # Boiler temperature in degree celcius\n",
+ "p3=10; # Boiler pressure in MPa\n",
+ "T4=32.88; # Condensor temperature in degree celcius\n",
+ "p4=5; # Condensor pressure in kPa\n",
+ "T0=288;# Temperature of surroundings in kelvin\n",
+ "# From steam table and refer figure 10.10 for states\n",
+ "h1=137.82; h2=147.82; h3=2724.7; hf4=197.82; hfg4=2423.7; h4=1913.6; # specific enthalpy in kJ/kg \n",
+ "s1=0.4764; s2=s1; s3=5.6141; s4=s3; sf4=0.4764; sfg4=7.9187; s4=6.2782; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "wT=h3-h4; # Turbine work\n",
+ "wp=h2-h1; # Pump work\n",
+ "wnet=wT-wp; # Net work\n",
+ "qH=h3-h2; # Heat supplied in boiler\n",
+ "qL=h4-h1; # Heat rejected in condensor\n",
+ "Wrev_Wpump=T0*(s2-s1); \n",
+ "Wrev_Wboiler=T0*(s3-s2)-T0*qH/(TH+273);\n",
+ "Wrev_Wturbine=T0*(s4-s3);\n",
+ "Wrev_Wcondenser=T0*(s1-s4)+qL;\n",
+ "Wrev_Wcycle=Wrev_Wpump+Wrev_Wboiler+Wrev_Wturbine+Wrev_Wcondenser; \n",
+ "\n",
+ "#Result\n",
+ "print \"The lost (Wrev-W)for the Pump = \",Wrev_Wpump,\"kJ/kg\",\"\\nThe lost (Wrev-W)for the Boiler = \",round(Wrev_Wboiler,1),\"kJ/kg\"\n",
+ "print \"The lost (Wrev-W)for the Turbine = \",round(Wrev_Wturbine,1),\"kJ/kg\"\n",
+ "print \"The lost (Wrev-W)for the condensor = \",round(Wrev_Wcondenser,1),\"kJ/kg\"\n",
+ "print \"The lost (Wrev-W)for the overall cycle = \",round(Wrev_Wcycle,0),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lost (Wrev-W)for the Pump = 0.0 kJ/kg \n",
+ "The lost (Wrev-W)for the Boiler = 629.6 kJ/kg\n",
+ "The lost (Wrev-W)for the Turbine = 191.3 kJ/kg\n",
+ "The lost (Wrev-W)for the condensor = 104.9 kJ/kg\n",
+ "The lost (Wrev-W)for the overall cycle = 926.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10, Page No:491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# State after reversible adiabatic expansion\n",
+ "p2=50; # pressure in kPa\n",
+ "s2s=6.4844; s1=6.4844; s2=6.944; # specific entropy in kJ/kg K\n",
+ "x2s=0.829; # Quality of steam \n",
+ "h2s=2252.6; h1=3256.6; # specific enthalpy in kJ/kg \n",
+ "T2=81.33; T0=27; # Temperature in degree celcius\n",
+ "\n",
+ "#Calculation\n",
+ "ws=h1-h2s; # Reversible adiabatic work\n",
+ "wa=831.2; # Actual work output in kJ/kg\n",
+ "d_AE=979.1; # Decrease in availability in kJ/LG\n",
+ "eff_I=wa/ws; # First law efficiency of turbine\n",
+ "eff_II=wa/d_AE; # Second law efficiency of turbine\n",
+ "w2srev2=(T2-T0)*(s2-s1); # Negative work\n",
+ "w1rev2=ws-w2srev2; # Decrease in availability\n",
+ "\n",
+ "#Result\n",
+ "print \"First law efficiency of turbine = \",round(eff_I*100,1),\"%\",\"\\nSecond law efficiency of turbine = \",round(eff_II*100,1),\"%\"\n",
+ "print \"Negative work = \",round(w2srev2,2),\"kJ/kg\",\"\\nDcresase in Availability = \",round(w1rev2,2),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First law efficiency of turbine = 82.8 % \n",
+ "Second law efficiency of turbine = 84.9 %\n",
+ "Negative work = 24.97 kJ/kg \n",
+ "Dcresase in Availability = 979.03 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11, Page No:493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=100; # Pressure at inlet in kPa\n",
+ "T1=30; # Temperature at inlet in degree celcius\n",
+ "V1=0; # Velocity at inlet in m/s\n",
+ "p2=350; # Pressure at outlet in kPa\n",
+ "T2=141; # Temperature at exit in degree celcius\n",
+ "V2=90; # Velocity at exit in m/s\n",
+ "p0=100; # Pressure of Surroundings in kPa\n",
+ "T0=30; # temperature of Surroundings in degree celcius\n",
+ "k=1.4; # Index of the Isentropic compression process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Adiabatic or polytropic compression\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Temperature after isentropic compression\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Adiabatic or polytropic compression\",\"\\nTemperature after isentropic compression =\",round(T2s,1),\"K\"\n",
+ "print \"T2s>T2. Hence there is cooling . Compression is polytropic.\" \n",
+ " \n",
+ "#Calculation for (b)\n",
+ "# (b).The first law efficiency of the compressor\n",
+ "wa=Cpo*(T1-T2)-V2**2/2000; #Actual work of compression\n",
+ "wT=(-R*(T1+273)*math.log (p2/p1))-(V2**2/2000); # Isothermal work\n",
+ "eff_Ilaw=wT/wa; # The first law efficiency of the compressor\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The first law efficiency of the compressor = \",round(eff_Ilaw*100,1),\"%\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Minimum work input & Irreversibility\n",
+ "d_AE=(Cpo*(T1-T2))+((T0+273)*((R*math.log (p2/p1))-(Cpo*math.log ((T2+273)/(T1+273)))))-V2**2/2000; # decrease in availability\n",
+ "wmin=d_AE; # Minimum work input\n",
+ "wrev=wmin;\n",
+ "I=wrev-wa; # Irreversibility\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Minimum work input & Irreversibility\",\"\\nMinimum work input =\",round(wmin,1),\"kJ/kg\"\n",
+ "print \"Irreversibility =\",round(I,0),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Second law efficiency of the compressor\n",
+ "eff_IIlaw=wmin/wa; # Second law efficiency of the compressor\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Second law efficiency of the compressor =\",round(eff_IIlaw*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Adiabatic or polytropic compression \n",
+ "Temperature after isentropic compression = 433.4 K\n",
+ "T2s>T2. Hence there is cooling . Compression is polytropic.\n",
+ "\n",
+ "(b).The first law efficiency of the compressor = 97.9 %\n",
+ "\n",
+ "(c).Minimum work input & Irreversibility \n",
+ "Minimum work input = -101.4 kJ/kg\n",
+ "Irreversibility = 14.0 kJ/kg\n",
+ "\n",
+ "(d).Second law efficiency of the compressor = 88.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.12, Page No:498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T0=313; # Surroundings temperature in kelvin\n",
+ "TL=233; # Refrigerated space temperature in kelvin\n",
+ "QL=3.5167; # Refrigeration load in kW\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Carnot cycle\n",
+ "COPcarnot=TL/(T0-TL); # COP of carnot cycle\n",
+ "Wcarnot=QL/COPcarnot; # Work done\n",
+ "Q0=QL+Wcarnot; # Heat rejected\n",
+ "d_SL=-QL/TL;# Entropy change of refrigerated space\n",
+ "d_S0=Q0/T0; #Entropy change of surroundings\n",
+ "d_Sgen= d_SL+ d_S0; # Entropy generation\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Carnot cycle\",\"\\nWork done = \",round(Wcarnot,4),\"kW\",\"\\nCOP of carnot cycle = \",round(COPcarnot,4)\n",
+ "print (\" Entropy generation = %d kJ/K s \")%d_Sgen\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Vapour compression cycle\n",
+ "# From Freon-12 property table & figure 10.17\n",
+ "p1=0.0642; p2=0.9607; # Pressure in MPa\n",
+ "h1=169.5; h3=74.5; # specific enthalpy in kJ/kg \n",
+ "s1=0.7269; s3=0.2716;# specific entropy in kJ/kg K\n",
+ "# By calculations s2=s1 gives the following from property table\n",
+ "t2=58.9; # Temperature in degree celcius\n",
+ "h2=217.6; # specific enthalpy in kJ/kg \n",
+ "# From h4=h3 gives the following from chart\n",
+ "h4=h3;\n",
+ "x4=0.44; # Quality of vapour\n",
+ "s4=0.3195;# specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "m=QL/(h1-h4); # Mass flow rate of refrigerant\n",
+ "W=m*(h2-h1); # Work done of vapour compression cycle\n",
+ "COP=QL/W; # COP of vapour compression cycle\n",
+ "QH=QL+W; # Heat rejected to surroundings\n",
+ "d_SL=-QL/TL;# Entropy change of refrigerated space\n",
+ "d_S0=QH/T0; #Entropy change of surroundings\n",
+ "d_Sgen= d_SL+ d_S0; # Entropy generation\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Vapour compression cycle\",\"Work done = \",round(W,3),\"kW\",\"\\nCOP of vapour compression cycle = \",round(COP,2)\n",
+ "print (\" Entropy generation = %f kJ/K s \")%round(d_Sgen,5)\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Difference in work = Lost work of the cycle\n",
+ "d_work=W-Wcarnot; # Difference in work\n",
+ "LWcycle=QH-T0*QL/TL; # Lost work of the cycle\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Difference in work = Lost work of the cycle\",\"\\nDifference in work = \",round(d_work,4),\"kW\"\n",
+ "print \"Lost work of the cycle= \",round(LWcycle,4),\"kW\",\"which is same as Difference in work\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Second Law efficiency of the vapour compression cycle\n",
+ "eff_II=COP/COPcarnot; #Second Law efficiency\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Second Law efficiency of the vapour compression cycle = \",round(eff_II*100,1),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Carnot cycle \n",
+ "Work done = 1.2075 kW \n",
+ "COP of carnot cycle = 2.9125\n",
+ " Entropy generation = 0 kJ/K s \n",
+ "\n",
+ "(b).Vapour compression cycle Work done = 1.781 kW \n",
+ "COP of vapour compression cycle = 1.98\n",
+ " Entropy generation = 0.001830 kJ/K s \n",
+ "\n",
+ "(c).Difference in work = Lost work of the cycle \n",
+ "Difference in work = 0.5731 kW\n",
+ "Lost work of the cycle= 0.5731 kW which is same as Difference in work\n",
+ "\n",
+ "(d).Second Law efficiency of the vapour compression cycle = 67.8 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter11.ipynb b/Thermodynamics/Chapter11.ipynb
new file mode 100755
index 00000000..06493c9c
--- /dev/null
+++ b/Thermodynamics/Chapter11.ipynb
@@ -0,0 +1,350 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:07129d26d6d361c6256f48cf43ea30152b9d8cd21fc1703b7734f18388f313fe"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11:THERMODYNAMIC PROPERTY RELATIONS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No:510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=150; p2=200; p3=250; p4=300; p5=350; p6=400; p7=450; p8=500; p9=550; p10=600; p11=650; p12=700;\n",
+ "p13=750; p14=800; p15=850; p16=900; # Pressures of merect's boiler experiment in kPa\n",
+ "t1=111.4; t2=120.2; t3=127.4; t4=133.6; t5=138.9; t6=143.6; t7=147.9; t8=151.9; t9=155.5; t10=158.9; t11=162;\n",
+ "t12=165; t13=167.8; t14=170.4; t15=173; t16=175.4; # Temperatures of merect's boiler experiment in degree celcius\n",
+ "n=16;# Total number of readings taken \n",
+ "\n",
+ "#Calculation for constants\n",
+ "# Values of constant A & B\n",
+ "s_y= math.log10 (p1*p2*p3*p4*p5*p6*p7*p8*p9*p10*p11*p12*p13*p14*p15*p16);\n",
+ "s_x=1/(t1+273)+1/(t2+273)+1/(t3+273)+1/(t4+273)+1/(t5+273)+1/(t6+273)+1/(t7+273)+1/(t8+273)+1/(t9+273)+1/(t10+273)+1/(t11+273)+1/(t12+273)+1/(t13+273)+1/(t14+273)+1/(t15+273)+1/(t16+273);\n",
+ "s_xy=((math.log10 (p1))*1/(t1+273))+ ((math.log10 (p2))*1/(t2+273))+ ((math.log10 (p3))*1/(t3+273))+ ((math.log10 (p4))*1/(t4+273))+ ((math.log10 (p5))*1/(t5+273))+ ((math.log10 (p6))*1/(t6+273))+ ((math.log10 (p7))*1/(t7+273))+ ((math.log10 (p8))*1/(t8+273))+ ((math.log10 (p9))*1/(t9+273))+ ((math.log10 (p10))*1/(t10+273))+ ((math.log10 (p11))*1/(t11+273)) + ((math.log10 (p12))*1/(t12+273)) + ((math.log10 (p13))*1/(t13+273)) + ((math.log10 (p14))*1/(t14+273)) + ((math.log10 (p15))*1/(t15+273)) + ((math.log10 (p16))*1/(t16+273));\n",
+ "s_x2=(1/(273+t1))**2+(1/(273+t2))**2+(1/(273+t3))**2+(1/(273+t4))**2+(1/(273+t5))**2+(1/(273+t6))**2+(1/(273+t7))**2+(1/(273+t8))**2+(1/(273+t9))**2+(1/(273+t10))**2+(1/(273+t11))**2+(1/(273+t12))**2+(1/(273+t13))**2+(1/(273+t14))**2+(1/(273+t15))**2+(1/(273+t16))**2;\n",
+ "B= ((n*s_xy)-(s_x*s_y))/((n*s_x2)-((s_x)**2)); # Constant B\n",
+ "A=((s_y)-(B*s_x))/n; # Constant A\n",
+ "\n",
+ "#Result for constants\n",
+ "print \"Values of constant A & B\"\n",
+ "print \"A =\",round(A,5)\n",
+ "print \"B =\",round(B,1),\" (roundoff error)\"\n",
+ "\n",
+ "#Calculation for latent heat of vapourization\n",
+ "# The latent heat of vapourization\n",
+ "T=150; # The latent heat of vapourization at this temperature in degree celcius\n",
+ "d_T=20; d_p=258.7; # Temperature and pressure difference\n",
+ "vg=0.3928; vf=0.0011; # specific volume in m^3/kg\n",
+ "hfg=(T+273)*(vg-vf)*d_p/d_T; # Clapeyron equztion\n",
+ "\n",
+ "#Result for latent heat of vapourization\n",
+ "print \"The latent heat of vapourization at 150 oC =\",round(hfg,2),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Values of constant A & B\n",
+ "A = 7.62068\n",
+ "B = -2091.6 (roundoff error)\n",
+ "The latent heat of vapourization at 150 oC = 2143.19 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page No:517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "p5=6000; # Pressure of superheated steam in kPa\n",
+ "T5=723.15; # Temperature of superheated steam in kelvin\n",
+ "p1=0.6113; # Pressure at reference state in kPa\n",
+ "T1=273.16; # Temperature at reference state in kelvin\n",
+ "hfg1=2501.3; # Latent heat of vapourization of water at reference state in kJ/kg\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "# The critical state properties of water\n",
+ "pc=2.09; # pressure in MPa\n",
+ "Tc=647.3; # Temperature in kelvin\n",
+ "h1=0; # Reference state in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "h2=h1+hfg1; # specific enthalpy in kJ/kg \n",
+ "# At point 2\n",
+ "p2=p1; T2=T1;\n",
+ "z=0.9986;\n",
+ "r=18.015;\n",
+ "A2=(0.4278/(pc*10**4))*(Tc/T2)**2.5; # Constants\n",
+ "B=(0.0867/(pc*10**4))*(Tc/T2); # Constants\n",
+ "h2_h3=R_1*(T2/r)*(((-3/2)*(A2/B)*math.log (1+(B*p2/z)))+z-1); # Enthalpy difference between state 2 & 3\n",
+ "# At point 5\n",
+ "z1=0.9373;\n",
+ "A2=(0.4278/(pc*10**4))*(Tc/T5)**2.5; # Constants\n",
+ "B=(0.0867/(pc*10**4))*(Tc/T5); # Constants\n",
+ "h5_h4=R_1*(T5/r)*(((-3/2)*(A2/B)*math.log (1+(B*p5/z1)))+z1-1); # Enthalpy difference between state 5 & 4\n",
+ "a=1.6198;b=6.6*10**-4; # Constants\n",
+ "h4_h3=a*(T5-T1)+b*(T5**2-T1**2)/2; # Enthalpy difference between state 3 & 4\n",
+ "h5=h2-h2_h3+h5_h4+h4_h3; # Specific enthalpy at state 5 \n",
+ "\n",
+ "#Result\n",
+ "print \"Specific enthalpy at state 5 = \",round(h5,1),\"kJ/kg (roundoff error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific enthalpy at state 5 = 3308.3 kJ/kg (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No:527"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T2=373; # Temperature of CO2 gas in kelvin\n",
+ "p2=100; # Pressure of CO2 gas in atm\n",
+ "T1=0; # Reference state temperature in kelvin\n",
+ "# The crictical constants for CO2 are \n",
+ "Tc=304.2; # Temperature in kelvin\n",
+ "Pc=72.9; # Pressure in atm\n",
+ "zc=0.275;\n",
+ "\n",
+ "#Calculation\n",
+ "# Refer figure 11.7 for state definition\n",
+ "h1_0=((-3.74*T2)+((30.53/(100**0.5))*((T2**1.5)/1.5))-((4.1/100)*((T2**2)/2))+((0.024/(100**2))*((T2**3)/3)));\n",
+ "Tr=T2/Tc; Pr=p2/Pc; # Reduced properties\n",
+ "# From generalized chart figure 11.6\n",
+ "hR_Tc=10.09;\n",
+ "h1_2=hR_Tc*Tc;\n",
+ "M=44; # Molecular weight\n",
+ "h10=h1_0/M; h12=h1_2/M;\n",
+ "h373=h10-h12; # The required enthalpy of CO2 gas at 373 K and 100 atm\n",
+ "\n",
+ "#Result\n",
+ "print \"The required enthalpy of CO2 gas at 373 K and 100 atm = \",round(h373,0),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required enthalpy of CO2 gas at 373 K and 100 atm = 168.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page No:531"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=11; # Initial pressure in bar\n",
+ "T1=40; # Initial temperature in degree celcius\n",
+ "p2=60; # Final pressure in bar\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "# The crictical properties for natural gas \n",
+ "Tc=161; # Temperature in kelvin\n",
+ "Pc=46.4; # Pressure in bar\n",
+ "\n",
+ "#Calculation\n",
+ "# Reduced properties are\n",
+ "Pr1=p1/Pc; Pr2=p2/Pc;\n",
+ "Tr1=(T1+273)/Tc;\n",
+ "# T2=T1, The ideal gas enthalpy h2*=h1*=h1\n",
+ "h21=-47.5; # From generalized enthalpy departure chart\n",
+ "M=16; # Molecular weight\n",
+ "Sp2_1=(R_1/M)*math.log (p2/p1)# for the difference in ideal gas entropies\n",
+ "Sp2_Sp_2=-0.1125; Sp_2_Sp_1=-2.1276; # Entropies in kJ/kg K\n",
+ "s2_s1=(Sp2_Sp_2)+(Sp_2_Sp_1);\n",
+ "q=(T1+273)*s2_s1; # Heat transfer\n",
+ "w=q-h21; # Work of compression\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer = \",round(q,1),\"kJ/kg\",\"\\nWork of compression = \",round(w,0),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer = -701.2 kJ/kg \n",
+ "Work of compression = -654.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8, Page No:538"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=10; # Initial pressure in MPa\n",
+ "T1=263; # Initial temperature in Kelvin\n",
+ "p2=1.5; # Final pressure in MPa\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "M=28; # Molecular mass\n",
+ "# The crictical properties for nitrogen gas \n",
+ "Tc=126.2; # Temperature in kelvin\n",
+ "Pc=3.39; # Pressure in MPa\n",
+ "\n",
+ "#Calculation\n",
+ "# Reduced properties are\n",
+ "Pr1=p1/Pc; Pr2=p2/Pc;\n",
+ "Tr1=T1/Tc;\n",
+ "# From the generalized chart for enthalpy departure at Pr1 & Tr1\n",
+ "h_11=8.7*Tc/M;\n",
+ "# The solution involves iteration procedure. Assume T2 and check if h2_h1=0\n",
+ "# First approximation T2=200 K\n",
+ "T2=200; # In K\n",
+ "Tr2=T2/Tc;\n",
+ "Cpr=1.046;\n",
+ "h_21=Cpr*(T2-T1);\n",
+ "# From the generalized chart for enthalpy departure at Pr1 & Tr1\n",
+ "h_22=1*Tc/M;\n",
+ "h2_h1=h_11-T2+T1-h_22;\n",
+ "# Second approximation \n",
+ "T2=190; # In K\n",
+ "Tr2=T2/Tc;\n",
+ "Cpr=1.046;\n",
+ "h_21=Cpr*(T2-T1);\n",
+ "# From the generalized chart for enthalpy departure at Pr1 & Tr1\n",
+ "h_22=1.5*Tc/M;\n",
+ "h2_h1=h_11-T2+T1-h_22;\n",
+ "\n",
+ "#Result\n",
+ "print \"Here also h2-h1 != 0. Therefore the temperature is dropping. Thus Joule-Thomson coefficient is positive.\"\n",
+ "print \"There is cooling in this process\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Here also h2-h1 != 0. Therefore the temperature is dropping. Thus Joule-Thomson coefficient is positive.\n",
+ "There is cooling in this process\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9, Page No:544"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Tcammonia=405.9;\n",
+ "Tcwater=647.3;\n",
+ "Tr=0.576; # Condition of similarity\n",
+ "\n",
+ "#Calculation\n",
+ "Twater=Tcwater*Tr; # At reduced temperature Temperature of water\n",
+ "Tammonia=Tcammonia*Tr;#At reduced temperature Temperature of ammonia\n",
+ "# From steam table at Twater\n",
+ "hfgwater=2257;# specific enthalpy in kJ/kg \n",
+ "hfgammonia=Tcammonia/Tcwater *hfgwater; # Latent heat of vaporization of ammonia\n",
+ "\n",
+ "#Result\n",
+ "print \"Latent heat of vaporization of ammonia =\",round(hfgammonia,0),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Latent heat of vaporization of ammonia = 1415.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter12.ipynb b/Thermodynamics/Chapter12.ipynb
new file mode 100755
index 00000000..6b383304
--- /dev/null
+++ b/Thermodynamics/Chapter12.ipynb
@@ -0,0 +1,504 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:26bd61324c67aa0fef3f72b60851ba818d2a228685c4163bcb87732321b4f4fb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12:NON-REACTING MIXTURES OF GASES AND LIQUIDS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No:553"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M1=28.02; # Molecular mass of N2\n",
+ "M2=32; # Molecular mass of O2\n",
+ "M3=39.91; # Molecular mass of Ar\n",
+ "M4=44; # Molecular mass of CO2\n",
+ "M5=2.02; # Molecular mass of H2\n",
+ "y1=0.7803; # Part by volume of N2 in dry atmospheric air\n",
+ "y2=0.2099; # Part by volume of O2 in dry atmospheric air\n",
+ "y3=0.0094; # Part by volume of Ar in dry atmospheric air\n",
+ "y4=0.0003; # Part by volume of CO2 in dry atmospheric air\n",
+ "y5=0.0001; # Part by volume of H2 in dry atmospheric air\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Average molecular mass and apperent gas constant of dry atmospheric air\n",
+ "M=(y1*M1)+(y2*M2)+(y3*M3)+(y4*M4)+(y5*M5); # Average molecular mass\n",
+ "R=R_1/M; #Apperent gas constant of dry atmospheric air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Average molecular mass and apperent gas constant of dry atmospheric air\",\"\\nAverage molecular mass = \",round(M,3),\"kmol\"\n",
+ "print \"Apperent gas constant of dry atmospheric air =\",round(R,3),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The fraction of each component\n",
+ "m1=(M1*y1)/M;#The fraction of N2 component\n",
+ "m2=(M2*y2)/M;#The fraction of O2 component\n",
+ "m3=(M3*y3)/M;#The fraction of Ar component\n",
+ "m4=(M4*y4)/M;#The fraction of CO2 component\n",
+ "m5=(M5*y5)/M;#The fraction of H2 component\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The fraction of N2,O2,Ar,CO2,H2 components are given below respectively \"\n",
+ "print \"m1 =\",round(m1,4)\n",
+ "print \"m2 =\",round(m2,4)\n",
+ "print \"m3 =\",round(m3,4)\n",
+ "print \"m4 =\",round(m4,4)\n",
+ "print \"m5 =\",round(m5,4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Average molecular mass and apperent gas constant of dry atmospheric air \n",
+ "Average molecular mass = 28.969 kmol\n",
+ "Apperent gas constant of dry atmospheric air = 0.287 kJ/kg K\n",
+ "\n",
+ "(b).The fraction of N2,O2,Ar,CO2,H2 components are given below respectively \n",
+ "m1 = 0.7547\n",
+ "m2 = 0.2319\n",
+ "m3 = 0.013\n",
+ "m4 = 0.0005\n",
+ "m5 = 0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No:555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "M1=44; # Molecular mass of CO2\n",
+ "M2=32; # Molecular mass of O2\n",
+ "M3=28; # Molecular mass of CO\n",
+ "M4=28; # Molecular mass of N2\n",
+ "y1=0.1; # Part by volume of CO2 in exhaust gas\n",
+ "y2=0.06; # Part by volume of O2 in exhaust gas\n",
+ "y3=0.03; # Part by volume of CO in exhaust gas\n",
+ "y4=0.81; # Part by volume of N2 in exhaust gas\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Average molecular mass and apperent gas constant of exhaust gas\n",
+ "M=(y1*M1)+(y2*M2)+(y3*M3)+(y4*M4); # Average molecular mass\n",
+ "R=R_1/M; #Apperent gas constant of dry atmospheric air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Average molecular mass and apperent gas constant of exhaust gas\",\"\\nAverage molecular mass = \",round(M,3),\"kmol\"\n",
+ "print \"Apperent gas constant of exhaust gas =\",round(R,4),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The fraction of each component\n",
+ "m1=(M1*y1)/M;#The fraction of CO2 component\n",
+ "m2=(M2*y2)/M;#The fraction of O2 component\n",
+ "m3=(M3*y3)/M;#The fraction of CO component\n",
+ "m4=(M4*y4)/M;#The fraction of N2 component\n",
+ "print \"\\n(b).The fraction of CO2,O2,CO,N2 components are given below respectively \"\n",
+ "print \"m1 =\",round(m1,3)\n",
+ "print \"m2 =\",round(m2,3)\n",
+ "print \"m3 =\",round(m3,3)\n",
+ "print \"m4 =\",round(m4,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Average molecular mass and apperent gas constant of exhaust gas \n",
+ "Average molecular mass = 29.84 kmol\n",
+ "Apperent gas constant of exhaust gas = 0.2786 kJ/kg K\n",
+ "\n",
+ "(b).The fraction of CO2,O2,CO,N2 components are given below respectively \n",
+ "m1 = 0.147\n",
+ "m2 = 0.064\n",
+ "m3 = 0.028\n",
+ "m4 = 0.76\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3, Page No:557"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "y1=0.79; # Volume of Nitrogen in 1 kg of air\n",
+ "y2=0.21; # Volume of Oxygen in 1 kg of air\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "T0=298; # temperature of Surroundings in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "del_Sgen=-R_1*((y1*math.log (y1))+(y2*math.log (y2))); #Entropy generation\n",
+ "LW=T0*del_Sgen; # Minimum work\n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum work required for separation of two gases = \",round(LW,0),\"kJ/kmmol K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum work required for separation of two gases = 1273.0 kJ/kmmol K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No:562"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "DPT=8; # Dew point temperature in degree celcius\n",
+ "p=100; # Pressure of air in kPa\n",
+ "T=25; # Temperature of air in degree celcius\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).partial pressure of water vapour in air\n",
+ "pv=1.0854; # Saturation pressure of water at DBT in kPa\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).partial pressure of water vapour in air = \",pv,\"kPa\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Specific humidity\n",
+ "sh=0.622*pv/(p-pv);#Specific humidity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Specific humidity =\",round(sh,4),\"kg of water vapour /kg of dry air\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Relative humidity\n",
+ "pg=3.169; # Saturation pressure of water at T in kPa\n",
+ "RH=pv/pg; #Relative humidity\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Relative humidity =\",round(RH*100,2),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).partial pressure of water vapour in air = 1.0854 kPa\n",
+ "\n",
+ "(b).Specific humidity = 0.0068 kg of water vapour /kg of dry air\n",
+ "\n",
+ "(c).Relative humidity = 34.25 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5, Page No:566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "DBT=35; # Dry bulb temperature in degree celcius\n",
+ "WBT=23; # Wet bulb temperature in degree celcius\n",
+ "P=100; # Pressure of air in kPa\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "# (a).Humidity ratio\n",
+ "hv=2565.3; # specific enthalpy hg at DBT in kJ/kg \n",
+ "hfWBT=96.52; hfgWBT=2443; # specific enthalpy at WBT in kJ/kg \n",
+ "PsatWBT=2.789;# Saturation pressure at WBT in kPa\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "shWBT=0.622*PsatWBT/(P-PsatWBT);# specific humidity\n",
+ "sh=((Cpo*(WBT-DBT))+(shWBT*hfgWBT))/(hv-hfWBT); # Humidity ratio\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Humidity ratio =\",round(sh,4),\"kg w.v /kg d.a\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Relative Humidity\n",
+ "pv=sh*P/(0.622+sh); # Partial pressure of water vapour\n",
+ "pg=5.628; # Saturation pressure at DBT in kPa\n",
+ "RH=pv/pg; #Relative Humidity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Relative Humidity =\",round(RH*100,2),\"%\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Dew point temperature\n",
+ "DPT=17.5; # Saturation temperature at pg in degree celcius\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Dew point temperature =\",DPT,\"oC\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Specific volume\n",
+ "v=(R*(DBT+273))/(P-pv); # Specific volume\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Specific volume = \",round(v,1),\"m^3/kg\"\n",
+ "\n",
+ "#Calculation for (e)\n",
+ "# (e).Enthalpy of air\n",
+ "h=(Cpo*DBT)+(sh*hv); #Enthalpy of air\n",
+ "\n",
+ "#Result for (e)\n",
+ "print \"\\n(e).Enthalpy of air =\",round(h,0),\"kJ/kg d.a\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Humidity ratio = 0.0128 kg w.v /kg d.a\n",
+ "\n",
+ "(b).Relative Humidity = 35.78 %\n",
+ "\n",
+ "(c).Dew point temperature = 17.5 oC\n",
+ "\n",
+ "(d).Specific volume = 0.9 m^3/kg\n",
+ "\n",
+ "(e).Enthalpy of air = 68.0 kJ/kg d.a\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6, Page No:570"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "DPT1=30; # Dew point temperature at inlet in degree celcius\n",
+ "DPT2=15; # Dew point temperature at outlet in degree celcius\n",
+ "RH1=0.50; # Relative humidity at inlet\n",
+ "RH2=0.80; # Relative humidity at outlet\n",
+ "p=101.325; # Atmospheric pressure in kPa\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "pg1=4.246; # saturation pressure of water at DBT1 in kPa\n",
+ "pg2=1.7051; # saturation pressure of water at DBT2 in kPa\n",
+ "pv1=RH1*pg1; pv2=RH2*pg2; # Partial pressure of water vapour in air at inlet and outlet\n",
+ "hv1=2556.3;# specific enthalpy hg at DBT1 in kJ/kg\n",
+ "hv2=2528.9;# specific enthalpy hg at DBT2 in kJ/kg\n",
+ "hv3=63;# specific enthalpy hf at DBT 2in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "sh1=0.622*pv1/(p-pv1); sh2=0.622*pv2/(p-pv2); # Specific humidities at inlet and outlet\n",
+ "q=(Cpo*(DPT2-DPT1))+(sh2*hv2)-(sh1*hv1)+((sh1-sh2)*hv3); # Heat transfer\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat removed from the air =\",round(q,1),\"kJ/kg of dry air\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat removed from the air = -27.3 kJ/kg of dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No:572"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "y1=0.5; # Molecular mass of CH4 in kmol\n",
+ "y2=0.5; # Molecular mass of C3H8 in kmol\n",
+ "T=363; # Temperature of gas in kelvin\n",
+ "p=5.06; # Pressure of gas in MPa\n",
+ "v=0.48; # volume of cylinder in m^3\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "# (a).Using kay\u2019s rule\n",
+ "# let component 1 refer to methane and component 2 to propane\n",
+ "# the critical properties\n",
+ "Tc1=190.7; Tc2=370; # temperature in kelvin\n",
+ "Pc1=46.4; Pc2=42.7; # Pressure in bar\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# using kay\u2019s rule for the mixture\n",
+ "Tcmix=y1*Tc1+y2*Tc2;\n",
+ "Pcmix=y1*Pc1+y2*Pc2;\n",
+ "# reduced properties\n",
+ "Tr=T/Tcmix; Pr=p/Pcmix;\n",
+ "# From generalized chart\n",
+ "z=0.832;\n",
+ "v_1=z*R_1*T/(p*10**3); # molar volume of the mixture\n",
+ "d=(v-v_1)/v; # Percentage deviation from actual value\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Using kay\u2019s rule\",\"\\nPercentage deviation from actual value = \",round(d*100,1),\"%\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Using Redlich-Kwong equation of state\n",
+ "a1=0.42748*R_1*Tc1**2.5/Pc1;\n",
+ "a2=0.42748*R_1*Tc2**2.5/Pc2;\n",
+ "b1=0.08664*R_1*Tc1/Pc1;\n",
+ "b2=0.08664*R_1*Tc2/Pc2;\n",
+ "# Substituting these values in the equation 12.16\n",
+ "# And solving these equation by iteration method we get\n",
+ "v_1=0.47864;# molar volume of the mixture\n",
+ "d=(v-v_1)/v; # Percentage deviation from actual value\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Using Redlich-Kwong equation of state\",\"\\nPercentage deviation from actual value = \",round(d*100,1),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Using kay\u2019s rule \n",
+ "Percentage deviation from actual value = -3.4 %\n",
+ "\n",
+ "(b).Using Redlich-Kwong equation of state \n",
+ "Percentage deviation from actual value = 0.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8, Page No:586"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "ln_piCH4=-0.0323;\n",
+ "pi_CH4=0.9683;\n",
+ "p=6895; # Pressure in kPa\n",
+ "T=104.4; # Temperature in degree celcius\n",
+ "a=0.784;\n",
+ "\n",
+ "#Calculation \n",
+ "f_CH4=pi_CH4*a*p; # Faguacity\n",
+ "\n",
+ "#Result\n",
+ "print \"The Required Faguacity = \",round(f_CH4,0),\"kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Required Faguacity = 5234.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter13.ipynb b/Thermodynamics/Chapter13.ipynb
new file mode 100755
index 00000000..7bb44f97
--- /dev/null
+++ b/Thermodynamics/Chapter13.ipynb
@@ -0,0 +1,541 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:844e839da5b715e4c203153163c0d8334c07e355e78986d7eaa05ddf88c71ee4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13:PHASE EQUILIBRIUM:VAPOUR-LIQUID EQUILIBRIUM OF MIXTURES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No:605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "\n",
+ "#Variable declaration\n",
+ "# Take freon 22 as component 1 and Freon 12 as component 2\n",
+ "# (a). y-x diagram at 40 oC\n",
+ "P1sat=15.335; # Saturation pressure of Freon 22 at 40oC in bar\n",
+ "P2sat=9.607; # Saturation pressure of Freon 12 at 40oC in bar\n",
+ "from pylab import *\n",
+ "figure(1); # For Plotting y-x Diagram\n",
+ "%matplotlib inline\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "a=P1sat/P2sat;\n",
+ "x1=linspace(0,1.0,3);\n",
+ "y1=(a*x1)/(1+x1*(a-1)); # y Function\n",
+ "plt.plot (x1,y1,'-*b',label='y1');\n",
+ "plt.plot (x1,x1,'-<r',label='x1'); # plot comment\n",
+ "plt.title (\"(a).y-x diagram for the mixture at 40 oC\");\n",
+ "plt.xlabel(\" x1 \");\n",
+ "plt.ylabel(\" y1 \");\n",
+ "plt.legend(loc='upper left')\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a). y-x diagram at 40 oC\",\"\\n figure 1\"\n",
+ "plt.show();\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b). p-x-y diagram at 40 oC\n",
+ " # By using the following relation calculate p value for various value of x1,y1\n",
+ " # p=(x1*P1sat)+(1-x1)*P2sat\n",
+ "x1=[0,0.2,0.5,0.8,1];\n",
+ "y1=[0,0.285,0.615,0.865,1];\n",
+ "p=[9.607,10.7526,12.471,14.1894,15.335];\n",
+ "figure(2);\n",
+ "plt.plot (x1,p,'-*b',label='Liquid out')\n",
+ "plt.plot(y1,p,'-<r',label='Vapour');\n",
+ "plt.title (\"(b).P-y-x diagram for the mixture at 40 oC\");\n",
+ "plt.xlabel(\" x1 & y1 \");\n",
+ "plt.ylabel(\" p in bar \");\n",
+ "plt.legend(loc='upper left')\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b). p-x-y diagram at 40 oC\",\"\\n figure 2\"\n",
+ "plt.show();\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).t-x-y diagram at 10 bar\n",
+ "# for any value of x1 at p=10 bar, the bubble temperature can be found by trial and error from the following relation\n",
+ " # p=10 bar =(x1*P1sat)+(1-x1)*P2sat\n",
+ "T1sat=23.7; # Saturation temperature of Freon 22 at 10 bar in oC\n",
+ "T2sat=41.6; # Saturation temperature of Freon 12 at 10 bar in oC\n",
+ "# Thus, for x1=0.5, we find that t=31 oC. \n",
+ "x1=0.5; # Let assume\n",
+ "P1sat=12.186; # Saturation pressure of Freon 22 at 31oC in bar\n",
+ "P2sat=7.654; # Saturation pressure of Freon 12 at 31oC in bar\n",
+ "a=P1sat/P2sat;\n",
+ "y1=(a*x1)/(1+x1*(a-1)); # y Function\n",
+ "# For different value of x1 the values of t,y1 are calculated by above expression and given below\n",
+ "x1=[0,0.5,1]; \n",
+ "y1=[0,0.614,1]; \n",
+ "t=[41.6,31,23.7];\n",
+ "figure(3);\n",
+ "plt.plot (x1,t,'-*b',label='f');\n",
+ "plt.plot (y1,t,'-<r',label='g');\n",
+ "plt.title (\"(c).t-y-x diagram for the mixture at 10 bar\");\n",
+ "plt.xlabel(\" x1 & y1 \");\n",
+ "plt.ylabel(\" t in oC \");\n",
+ "plt.legend(loc='upper right');\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"(c).t-x-y diagram at 10 bar\",\"\\n figure 3\"\n",
+ "plt.show();\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a). y-x diagram at 40 oC \n",
+ " figure 1\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nJCRk2bJliwHAx8dnV3h4uP+9e/fs8vPzdb/77rtv/fz8Iqqqa/DgwTEPHjxov2/fvnGVlZXK+/fv\nH3P//n3boUOH/gEAa9eunffdd999u2PHDt+ioiItoVDY4sKFC70CAwO3fOh4KCoKDBzz8fHZFRMT\nM/jt27ctAWDOnDk/lZaWqhkYGOT16NHj0qBBg2LFT5pXrlxx0dTULO7atetV0XOamprFFy9e7Cl6\nbG5unvWf//zneosWLYS9evW6UN2+Fy5cuKJNmzaZgYGBW1RVVcsjIyMnfvPNN99X9cdob29/d+PG\njdPHjx+/t3Xr1k/09PReiXep8Hg8RtROHx+fXW3atMnk8/k5Dg4Ot93c3C6Lf4YNGzbMKCws1DYx\nMXk2efLknePGjdsn3h0hGSQ8PT3jPD0949q3b//A0tIyQ01NrVQ87Rffd3V11PTtU/z19evXz2zV\nqtWbdu3a/dW7d+/zEyZM2CM6oVS1L0mjRo06CAD6+vovxf+fJL9pix6bmZllR0VFfbp8+fJFRkZG\nzy0sLB6vWbNmfnWBt6b2S7ZR9PO1a9e6/Pjjj3N37drlw+PxmKCgoDAej8eEhYUFAYC/v3/43bt3\n7XV1dfNHjBhxBADWrVs3++jRo8N0dXXz9+7dO/6zzz77vbr9AsDs2bPXeXl5RQ8cOPCElpZWkZub\n2+WkpKRuVbW5pt/12bNnrzt06JC3np7eqzlz5vwk+X5tbe1CIyOj50ZGRs+NjY1zVVVVy7W0tIpE\nXUUeHh7Hv/7661X9+vU7Y2lpmWFlZfWoqi9aAKCnp/fqjz/+GLpmzZr5BgYGeT/88MN///jjj6F6\nenqvAGDkyJGH9+/fP2b79u1T+Hx+jomJybMlS5YsHT58+P9q+r9RRDyGoYV6uLZ48eJlRkZGz2fP\nnr2uprLe3t6Hpk6d+qunp2fch8r5+/uH8/n8nKVLly5puJZyIygoKOz58+dGERERfrJuCyFEClyN\navv5+W03MjLKdXBwuFVdmZkzZ/5sbW2d5ujomHL9+vXOsh6Jbypbenq6pY6OTr68Xl53//79Dikp\nKY5CoZCXmJjYzcDA4EVUVJSXrNtFG220SbdxVvG5c+d6X79+vXN1geHYsWODBw0aFMMw7CWYkpeS\n0Vb19s0333ynoaFRvHz58oWybkt125UrV7paW1unqaurv2nbtu1fK1euDJJ1m2ijjTbpN067kjIy\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4926070>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b). p-x-y diagram at 40 oC \n",
+ " figure 2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4139c50>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(c).t-x-y diagram at 10 bar \n",
+ " figure 3\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\ngg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4bdcc50>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No:612"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=573.15; # Temperature of the water with another liquid in kelvin\n",
+ "R=8.3144/18; # Characteristic gas constant\n",
+ "# (a).4 MPa\n",
+ "P_1=10; # By Method II, The lowest possible pressure at which date available in steam table for 300 oC temperature in kPa\n",
+ "h_i=3076.5; # Specific enthalphy at P_1 in kJ/kg\n",
+ "s_i=9.2813; # Specific entropy at P_1 in kJ/kg K\n",
+ "# from superheat table at p=4 MPa and t=300 oC\n",
+ "hi=2960.7; # Specific enthalphy in kJ/kg\n",
+ "si=6.3615; # Specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "fi=P_1*math.exp ((((hi-h_i)/T)-(si-s_i))/R); # Standard state fugacity of water\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).4 MPa\",\"\\nStandard state fugacity of water = \",round(fi,2),\"kPa (round off error)\"\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).equal to saturation pressure at 300 oC\n",
+ "Psat=8.581; # Saturation pressure at 300 oC in MPa\n",
+ "# From steam table at Psat=8.581 MPa and t=300 oC\n",
+ "hi=2749; # Specific enthalphy in kJ/kg\n",
+ "si=5.7045; # Specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "fi=P_1*math.exp ((((hi-h_i)/T)-(si-s_i))/R); # Standard state fugacity of water\n",
+ "pisat=fi/(Psat*10**3); # fugacity coefficient\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Equal to saturation pressure at 300 oC\",\"\\nStandard state fugacity of water = \",round(fi,0),\"kPa\"\n",
+ "print \"fugacity coefficient =\",round(pisat,4)\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).10 MPa\n",
+ "# Applying Method I \n",
+ "viL=0.001404; # Specific volume at 300 oC in m^3/kg\n",
+ "fi=pisat*Psat*10**3*math.exp ((viL*(P_1-Psat)*10**3)/(R*T)); # Standard state fugacity of water\n",
+ "print \"\\n(c).10 MPa\",\"\\nStandard state fugacity of water = \",round(fi,0),\"kPa\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).4 MPa \n",
+ "Standard state fugacity of water = 3591.45 kPa (round off error)\n",
+ "\n",
+ "(b).Equal to saturation pressure at 300 oC \n",
+ "Standard state fugacity of water = 6694.0 kPa\n",
+ "fugacity coefficient = 0.7801\n",
+ "\n",
+ "(c).10 MPa \n",
+ "Standard state fugacity of water = 6745.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmple 13.3, Page No:615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import math\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# Let take NH3 as component 1 and H2O as component 2\n",
+ "# (a) & (b)\n",
+ "# Calculation of f1sat = pi1sat*p1sat for ammonia\n",
+ "P_1=50; # low reference state pressure in kPa\n",
+ "P1sat=614.95; # Saturation Pressure of ammonia at 10 oC in kPa\n",
+ "h1sat=1453.3; # Specific enthalpy at 10 oC in kJ/kg\n",
+ "s1sat=5.2104; # Specific entropy at 10 oC in kJ/kg K\n",
+ "R=8.3144/17; # Characteristic gas constant\n",
+ "T=283; # Temperature in kelvin\n",
+ "# At 10 oC and P_1=50 kPa for ammonia\n",
+ "h_1sat=1499.2; # Specific enthalpy in kJ/kg\n",
+ "s_1sat=6.5625; # Specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)&(b)\n",
+ "f1sat=P_1*math.exp ((((h1sat-h_1sat)/T)-(s1sat-s_1sat))/R); # Standard state fugacity of Ammonia\n",
+ "# Calculation of f2sat = pi2sat*p2sat for water\n",
+ "P2sat=1.2276; # Saturation Pressure at 10 oC in kPa for water\n",
+ "pi2sat=1; # At low pressure for water\n",
+ "f2sat = pi2sat*P2sat; # Standard state fugacity of water\n",
+ "# Calulations of ViL/RT\n",
+ "# For ammonia and water at 10 oC\n",
+ "v1L=0.001601; v2L=0.001; # Specific volume in m^3/kg\n",
+ "v1L_RT=v1L/(R*T); v2L_RT=v2L/(R*T);\n",
+ "# Calculations of activity coefficients\n",
+ "# Expression for activity coefficients of ammonia and water become in given by respectively\n",
+ "# r_1=(y1*p/(x1*569.6))*exp (-4.34*10^-6*(p-p1sat)); for ammonia\n",
+ "# r_2=(y2*p/(x2*1.2276))*exp (-7.65*10^-6*(p-p2sat)); for water\n",
+ "# The values thus calculated for r_1,r_2,lny_1,lnr_2 are calculated and plotted in window 1\n",
+ "# Note that the values of pyonting factors are negligibly small\n",
+ "x1=[0,0.2,0.3,0.4,0.5,0.6,0.8,1.0];\n",
+ "y1=[0,0.963,0.986,0.9958,0.9985,0.9993,0.9999,1.0];\n",
+ "lnr_1=[-3.1,-1.845,-1.295,-0.75,-0.33,-0.065,-0.035,-0];\n",
+ "lnr_2=[0,-0.1397,-0.2767,-0.507,-0.709,-0.952,-1.613,-2.2];\n",
+ "# similarly the excess function gE/RT and gE/x1x2RT are also calculated using the following expression respectively\n",
+ "# gE_RT=x1*lnr_1+x2*lnr_2; # the excess function from 12.51\n",
+ " # gE_x1x2RT=(lnr_1/x2)+(lnr_2/x1);\n",
+ "# since gE=0 & x1x2=0 both at x1=0 and x1=1. However its values in between x1=0 & x1=1\n",
+ "# By substituting these values in the above expression and given below\n",
+ "gE_RT=[0,-0.481,-0.582,-0.604,-0.5195,-0.4198,-0.2925,0];\n",
+ "gE_x1x2RT=[-3.1,-2.92,-2.83,-2.74,-2.65,-2.56,-2.38,-2.2];\n",
+ "from pylab import *\n",
+ "figure(1); # For Plotting Diagram\n",
+ "plt.plot (x1,lnr_1,\"-*b\",label='ln r1');\n",
+ "plt.plot (x1,lnr_2,\"-*g\",label='ln r2');\n",
+ "plt.plot (x1,gE_RT,\"r\",label='gE/RT');\n",
+ "plt.plot (x1,gE_x1x2RT,\"-*k\",label='gE/x1x2 RT');\n",
+ "plt.title (\"(a)&(b).Activity coefficients for NH3/H2O at 10 oC\");\n",
+ "plt.xlabel(\" x1 \");\n",
+ "plt.ylabel(\" ln r \");\n",
+ "plt.legend(loc='lower right')\n",
+ "\n",
+ "#Result for (a)&(b)\n",
+ "print \"(a) & (b)\",\"\\nStandard state fugacity of Ammonia = \",f1sat,\"kPa\"\n",
+ "print \"Standard state fugacity of water = \",f2sat,\"kPa\"\n",
+ "print \"v1L/RT = \",v1L_RT,\"(answer mentioned in the textbook is wrong)\",\"\\nv2L/RT = \",v2L_RT\n",
+ "print \"\\n(a)&(b).Activity coefficients for NH3/H2O at 10 oC\"\n",
+ "plt.show();\n",
+ "print \" figure 1 \"\n",
+ "# As x1\u21920,x2\u21921,gE_x1x2RT\u2192A=ln r_1^\u221e\n",
+ "# As x1\u21921,x2\u21920,gE_x1x2RT\u2192B=ln r_2^\u221e\n",
+ "A=-3.1; B=-2.2; # THe Margules constants\n",
+ "print \"The Margules constants \",\"A = \",A,\"B = \",B\n",
+ "print \"From figure 1 for ammonia/water mixture which is characteristic of systems with negative deviation from Roault law.\" \n",
+ "print \"Because \u03b3i<=1 and ln \u03b3i <=0\"\n",
+ "\n",
+ "#Calculations for (c)\n",
+ "# (c).\n",
+ "# Assuming ideal vapour phase, and at low pressures we have \n",
+ "# y1P=\u03b31*x1*p1sat; y2p=\u03b32* x2* p2sat;\n",
+ "# Now the activity coefficients can be found from Margules equations and given below\n",
+ "x1=[0,0.2,0.3,0.4,0.5,0.6,1.0];\n",
+ "y1=[0,0.963,0.986,0.9958,0.9985,0.9999,1.0];\n",
+ "p=[1.2276,8.6597,30.6598,54.6845,150.6458,278.1549,614.95];\n",
+ "# The ideal solution pressure\n",
+ " # PRaoult=x1*P1sat+x2*P2sat;\n",
+ "PRaoult=[1.2276,614.95]; \n",
+ "x_1=[0,1]; # For Ideal solution pressure\n",
+ "from pylab import *\n",
+ "figure(2); # For Plotting Diagram\n",
+ "plt.plot (x1,p,\"-*r\",label='p-x1');\n",
+ "plt.plot (y1,p,\"-*b\",label='p-y1');\n",
+ "plt.plot (x_1,PRaoult,\"g\",label='PRaoult');\n",
+ "plt.title (\"(c).p-x-y diagram of NH3/H2O at 10 oC\");\n",
+ "plt.xlabel(\" x1 & y1 \");\n",
+ "plt.ylabel(\" p, kPa \");\n",
+ "plt.legend(loc='upper left')\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).p-x-y diagram\"\n",
+ "print \"figure 2\"\n",
+ "plt.show();\n",
+ "print \"From figure 2 The actual pressure p < pRaoult. It is thus seen that the mixture has negative deviation from Raoults law.\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) & (b) \n",
+ "Standard state fugacity of Ammonia = 569.617676377 kPa\n",
+ "Standard state fugacity of water = 1.2276 kPa\n",
+ "v1L/RT = 1.15670577403e-05 (answer mentioned in the textbook is wrong) \n",
+ "v2L/RT = 7.22489552801e-06\n",
+ "\n",
+ "(a)&(b).Activity coefficients for NH3/H2O at 10 oC\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nuvkAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4926030>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " figure 1 \n",
+ "The Margules constants A = -3.1 B = -2.2\n",
+ "From figure 1 for ammonia/water mixture which is characteristic of systems with negative deviation from Roault law.\n",
+ "Because \u03b3i<=1 and ln \u03b3i <=0\n",
+ "\n",
+ "\n",
+ "(c).p-x-y diagram"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "figure 2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nspLEgAEDTq5evXqO5DI1NbUccWL7kvctOjraLC8vT0VeXr4kNDS0a3X/79eWIvMA6ntRVFTkiz9k\nGGP45Zdfts+cOXNdedvv2LFj/I8//niprHW+vr6j9fX1EyWX2drahu3bt29EefWFhYXZampqZhgZ\nGb329/cfUt52BQUFypqamhniD5tZs2atnTx58uaytl2yZMnvkh9ceXl5KkpKSkXlXUlIlszMTA2O\n44Q5OTlqJSUl8oqKinzJD6FFixYtLX0lceXKFYdPnWNNTc2MJ0+eWImP7eTkFCxeFxgY2F9VVTVX\nKBRyjDHk5OSocRwnzM7OblS6nmvXrn2vp6eXLLnM3d39oPgD7FOvS7xenETs7OzubNu2bWJZfRLK\nysoFGhoameLSqFGjbDk5OUFZVxIxMTGmNjY2D9evXz9DvGzXrl0/jxs3bqfkOWrUqFG2ZJ3KysoF\nZSW07OzsRm3atHnq4+MzT7zM1NQ0Zvv27b+U9TfBcZzw1q1b333u71zyfWWs7GRYXikrSXTv3v1i\n6ZgMDAwSrl69+sPXvG+JiYn6HMcJJf8Hqfy7UJ+EjGlqambm5uaqiX9PSEgwNDExiS1v+9zcXDUN\nDY2s8tYbGBgkSv5uZGT0JikpSf/GjRtd1NTUctXU1HKtrKyeitfb2tqGt2jR4hUA/PTTT0fEy3v3\n7n1evP2hQ4fclZWVC93c3AL27ds3kjHG+fv7Dx05cuS+smJITk5uYmhomCD+XUVFJV9LSyu9rG0F\nAoG8l5eXj6mp6Ut1dfXs5s2bx3Ecx9LS0rTfv3+vU1JSotC0adN48faS9YpJrgeAtWvXzra0tIzU\n0NDI0tTUzMzOzlZPS0vTFq/X1dV9J/65QYMGBdra2mniNu8GDRoUAMCHDx9USx8nKSlJv/SxjIyM\n3iQmJhqU9drKwhjjAGDZsmWLli9fvrCoqOgbyfUcx7E5c+asyczM1BSXJ0+etBXvV5qpqelLLy8v\nn717944SLzt37lyfPn36nJPc7uHDh+0k6/Ty8vIpXad4dFanTp1uzZs3b5V4uba2dlpSUpJ+6WMn\nJyc3Ea8vvU4oFMqVfl8BQPJ9qAxVVdUP2dnZ6pLLsrOz1dXU1HJLb1ve+5aUlKSvqamZKScnJxS/\nFvJflCRkrG3btk9evHjRUvx706ZN41++fGla3vbPnz9vZWNj86i89aU/sN68eWNkYGCQ2KVLlxu5\n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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x4be7150>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 2 The actual pressure p < pRaoult. It is thus seen that the mixture has negative deviation from Raoults law.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No:624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "x1=0.9; # mole fraction of NH3\n",
+ "x2=0.1; # Mole fraction of H2O\n",
+ "p=490.3; # Pressure in kPa\n",
+ "T=280.1; # Temperature in kelvin\n",
+ "lam12_11=-2131; lam21_22=-2726; # In kJ/kmol\n",
+ "R_1=8.3144; # Universal gas constant in kJ/kmol K\n",
+ "# (a).Enthalpy of saturated liquid Mixture at L/B at bubble temperature\n",
+ "V1L=0.0016; V2L=0.001; #from properties of NH3 and H2O in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "a=((V2L*18)/(V1L*17)) * exp (-lam12_11/(R_1*T));\n",
+ "b=((V1L*17)/(V2L*18)) * exp (-lam21_22/(R_1*T));\n",
+ "d_a=a*(lam12_11/(R_1*T**2)); d_b=b*(lam21_22/(R_1*T**2));\n",
+ "d_lnr1=(-(a*x2**2*d_a/(x1+(a*x2))**2))-(x2*d_b/(b*x1+x2))+(b*x1*x2*d_b/(b*x1+x2)**2);\n",
+ "d_lnr2=(-b*x1**2*d_b/(b*x1+x2)**2)-(x1*d_a/(x1+a*x2))+(a*x1*x2*d_a/(x1+a*x2)**2);x1=0.728; # By substituting these valuses in equation\n",
+ "h_E=-R_1*T**2*(x1*d_lnr1+x2*d_lnr2); # Heat of mixing\n",
+ "x1=0.9;\n",
+ "M=x1*17+x2*18; # Molecular weight\n",
+ "hE=h_E/M; \n",
+ "h1L=32.5; h2L=29.4; # in kJ/kg\n",
+ "hL=(x1*h1L)+(x2*h2L)+hE;# Specific enthalpy of the liquid mixture\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Enthalpy of saturated liquid Mixture at L/B at bubble temperature\",\n",
+ "print \"Specific enthalpy of the liquid mixture = \",round(hL,1),\"kJ/kg\"\n",
+ "\n",
+ "#Variable declaration (b)\n",
+ "# (b).Enthalpy of saturated vapour at V in Equilibrium with liquid at L/B\n",
+ "# From property table of ammonia and water at 0 oC\n",
+ "T1=273.15; # Temperature in kelvin\n",
+ "p1sat=429.4; p2sat=0.6108; # Pressure in kPa\n",
+ "hfg1=1262.4; hfg2=2501.4;# specific enthalpy in kJ/kg \n",
+ "vg1=0.2895; vg2=206.3; # specific volume in m^3/kg\n",
+ "# Referring to fig 13.15 , we have\n",
+ "hb1=1262.4; hb2=2501.4;# specific enthalpy in kJ/kg\n",
+ "M=17; \n",
+ "# The crictical properties \n",
+ "Tc1=405.3; Tc2=647.3;# Temperature in kelvin\n",
+ "pc1=11.28; pc2=22.09; # Pressure in MPa\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "z1=(p1sat*vg1/(R_1*T1/M)); z2=(p2sat*vg2/(R_1*T/M));\n",
+ "A2_1=(0.4278/(pc1*10**3))*(Tc1/T1)**2.5; # Constants\n",
+ "B_1=(0.0867/(pc1*10**3))*(Tc1/T1); # Constants\n",
+ "h1R=R_1*(T1/M)*(((-3/2)*(A2_1/B_1)*log (1+(B_1*p1sat/z1)))+z1-1);\n",
+ "A2_2=(0.4278/(pc2*10**3))*(Tc2/T1)**2.5; # Constants\n",
+ "B_2=(0.0867/(pc2*10**3))*(Tc2/T1); # Constants\n",
+ "h2R=-0.2;\n",
+ "hc1=hb1-h1R; hc2=hb2-h2R; # Enthalpies at 0 oC\n",
+ "Cpo1=14.86; Cpo2=12.92; # In kJ/kg\n",
+ "A2_1=(0.4278/(pc1*10**3))*(Tc1/T)**2.5; # Constants\n",
+ "B_1=(0.0867/(pc1*10**3))*(Tc1/T); # Constants\n",
+ "A2_2=(0.4278/(pc2*10**3))*(Tc2/T)**2.5; # Constants\n",
+ "B_2=(0.0867/(pc2*10**3))*(Tc2/T); # Constants\n",
+ "y1=0.9999; y2=0.0001;\n",
+ "Tc=y1*Tc1+y2*Tc2;\n",
+ "z=0.957;\n",
+ "hR=R_1*(T/M)*(((-3/2)*(A2_1/B_1)*log (1+(B_1*p/z)))+z-1);\n",
+ "hV=y1*(hc1+Cpo1)+y2*(hc2+Cpo2)+hR;\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Enthalpy of saturated vapour at V in Equilibrium with liquid at L/B = \",round(hV,1),\"kJ/kg (roundoff error)\"\n",
+ "\n",
+ "#Variable declaration for (c)\n",
+ "# (c).Enthalpy of saturated vapour at D after complete vaporization of liquid at B/L\n",
+ "T=359.15; # In K\n",
+ "Cpo1=192.2; Cpo2=160.9; # In kJ/kg\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "A2_1=(0.4278/(pc1*10**3))*(Tc1/T)**2.5; # Constants\n",
+ "B_1=(0.0867/(pc1*10**3))*(Tc1/T); # Constants\n",
+ "A2_2=(0.4278/(pc2*10**3))*(Tc2/T)**2.5; # Constants\n",
+ "B_2=(0.0867/(pc2*10**3))*(Tc2/T); # Constants\n",
+ "y1=0.9; y2=0.1;\n",
+ "Tc=y1*Tc1+y2*Tc2;\n",
+ "z=0.9768;\n",
+ "hR=R_1*(T/M)*(((-3/2)*(A2_1/B_1)*log (1+(B_1*p/z)))+z-1);\n",
+ "hD=y1*(hc1+Cpo1)+y2*(hc2+Cpo2)+hR;\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Enthalpy of saturated vapour at D after complete vaporization of liquid at B/L = \",round(hD,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Latent Heat of Vapourization of this Liquid Mixture\n",
+ "hB=-0.2; \n",
+ "hD_hB=hD-hB; #Latent Heat of Vapourization of this Liquid Mixture\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d). Latent Heat of Vapourization of this Liquid Mixture = \",round(hD_hB,1),\"kJ/kg mixture\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Enthalpy of saturated liquid Mixture at L/B at bubble temperature Specific enthalpy of the liquid mixture = -0.2 kJ/kg\n",
+ "\n",
+ "(b).Enthalpy of saturated vapour at V in Equilibrium with liquid at L/B = 1280.1 kJ/kg (roundoff error)\n",
+ "\n",
+ "(c).Enthalpy of saturated vapour at D after complete vaporization of liquid at B/L = 1581.3 kJ/kg\n",
+ "\n",
+ "(d). Latent Heat of Vapourization of this Liquid Mixture = 1581.5 kJ/kg mixture\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter14.ipynb b/Thermodynamics/Chapter14.ipynb
new file mode 100755
index 00000000..4bbbb0eb
--- /dev/null
+++ b/Thermodynamics/Chapter14.ipynb
@@ -0,0 +1,630 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4c4dfb370e475e99da4c5056464d38bcfd8f5f2d436b23af2eaa8055bd431fec"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14:CHEMICAL REACTIONS AND COMBUSTION"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No:644"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# From the Table 14.1 \n",
+ "del_hfHCL=92307; # Enthalpy of Heat in kJ/kmol\n",
+ "del_hfH2O=-241818; # Enthalpy of Heat kJ/kmol\n",
+ "\n",
+ "#Calculation\n",
+ "del_Ho=4*del_hfHCL-2*del_hfH2O; # The standard heat of reaction from enthalpy equation\n",
+ "\n",
+ "#Result\n",
+ "print \"The standard heat of reaction for the process = \",del_Ho,\"kJ (answer mentioned in the textbook is wrong)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The standard heat of reaction for the process = 852864 kJ (answer mentioned in the textbook is wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2, Page No:645"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "del_Ho=5640000; # Heat released during the process\n",
+ "# From the Table 14.1 \n",
+ "del_hfO2=-393509; del_hfH2O=-285830; # Enthalpy of Heat in kJ/kmol\n",
+ "\n",
+ "#Calculation\n",
+ "del_hfsucrose=12*del_hfO2+11*del_hfH2O+del_Ho; # The enthalpy formation of sucrose\n",
+ "\n",
+ "#Result\n",
+ "print \"The enthalpy formation of sucrose = \",del_hfsucrose,\"kJ/kmol (answer mentioned in the textbook is wrong)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The enthalpy formation of sucrose = -2226238 kJ/kmol (answer mentioned in the textbook is wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3, Page No:649"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (a).Balancing of chemical equation\n",
+ "# The unbalanced equation for the process is C8H18 + O2 + N2 \u2192 CO2 + H2O + N2\n",
+ "x=8; # Carbon balance\n",
+ "y=9; # Hydrogen balance\n",
+ "z=12.5; # Oxygen balance in reverse order\n",
+ "n=z*3.76; # Nitrogen Balance\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Balancing of chemical equation\"\n",
+ "print \" C8H18 + z O2 + n N2 \u2192 x CO2 + y H2O + n1 N2 \\n \"\n",
+ "print \" z =\",z,\"\\n n =\",n,\"\\n x =\",x,\"\\n y =\",y,\"\\n n1 =\",5*n\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The theoretical air-fuel ratio\n",
+ "a=1; # Mole of C8H18\n",
+ "AF1=(z+n)/a; #The theoretical air-fuel ratio on mole basis\n",
+ "ma=28.84; # Molecular mass of air \n",
+ "mc=114; # Molecular mass of C8H18\n",
+ "AF2=(AF1*ma)/(a*mc); # The theoretical air-fuel ratio on mass basis\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The theoretical air-fuel ratio\",\"\\nThe theoretical air-fuel ratio on mole basis = \",AF1,\"kmol air / kmol C8H18\"\n",
+ "print \"The theoretical air-fuel ratio on mass basis = \",round(AF2,0),\"kg air / kmol C8H18\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Balancing of chemical equation\n",
+ " C8H18 + z O2 + n N2 \u2192 x CO2 + y H2O + n1 N2 \n",
+ " \n",
+ " z = 12.5 \n",
+ " n = 47.0 \n",
+ " x = 8 \n",
+ " y = 9 \n",
+ " n1 = 235.0\n",
+ "\n",
+ "(b).The theoretical air-fuel ratio \n",
+ "The theoretical air-fuel ratio on mole basis = 59.5 kmol air / kmol C8H18\n",
+ "The theoretical air-fuel ratio on mass basis = 15.0 kg air / kmol C8H18\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4, Page No:650"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy as np\n",
+ "#Variable declaration\n",
+ "# The combustion equation for C4H10 with 80% theoretical air is C4H10 +5.2(O2 + 3.76 N2) \u2192 a(1)CO + a(2)CO2 + 5H2O + 19.55N2\n",
+ "# The following matrix shows the balance of C and O\n",
+ "\n",
+ "#Calculation\n",
+ "A = np.array([(1, 1),(1,2)])\n",
+ "B = np.array([4,5.4])\n",
+ "m = np.linalg.solve(A,B)\n",
+ "\n",
+ "#Result\n",
+ "print \"The equation for the combustion of butane with 80% theoretical air is \"\n",
+ "print \"\\nC4H10 +5.2(O2 + 3.76 N2) \u2192\", m.item(0), \"CO + \",m.item(1), \"CO2 + 5H2O + 19.55N2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equation for the combustion of butane with 80% theoretical air is \n",
+ "\n",
+ "C4H10 +5.2(O2 + 3.76 N2) \u2192 2.6 CO + 1.4 CO2 + 5H2O + 19.55N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5, Page No:650"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p=101.325; # Atmospheric pressure in kPa\n",
+ "# The complete combustion equation for actane\n",
+ " # yC8H18+ x (O2+3.76N2) \u2192 n1 CO2+n2 H2O+n3 O2+n3 N2\n",
+ "x=12.5*1.5; y=1;\n",
+ "n1=8; n2=9; n3=6.28; n4=70.5;\n",
+ "\n",
+ "#calculation\n",
+ "n=n1+n2+n3+n4; # Total number of moles of the products\n",
+ "AFm=(x+x*3.76)/y ;# Air fuel ratio\n",
+ "m=28.84;\n",
+ "M=116; # Molecular weight of octane\n",
+ "AF=AFm*m/M;\n",
+ "yco2=n1/n; yH2O=n2/n; yO2=n3/n; yN2=n4/n;\n",
+ "pH2O=p*yH2O; # Partial pressure of water vapour in the products\n",
+ "Tsat=45.21; # In oC\n",
+ "\n",
+ "#Result\n",
+ "print \"Air fuel ratio = \",round(AF,2),\"kg air/kg octane\"\n",
+ "print \"Dew point temperature = \",Tsat,\"oC\"\n",
+ "print \"\\nIf the products are cooled below 25 oC then, the water vapour will condense.\"\n",
+ "print \"Because the cooled temperature is less than dew point temperature of water vapour i.e., T < Tsat.\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 22.19 kg air/kg octane\n",
+ "Dew point temperature = 45.21 oC\n",
+ "\n",
+ "If the products are cooled below 25 oC then, the water vapour will condense.\n",
+ "Because the cooled temperature is less than dew point temperature of water vapour i.e., T < Tsat.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.6, Page No:651"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# The complete chemical equation is\n",
+ "#[0.14H2+0.03CH4+0.27CO+0.045CO2+0.01O2+0.505N2]+0.255(O2+3.75N2) \u21920.2H2O+0.345CO2+1.44N2\n",
+ "a=0.14; # Composition of H2 in air\n",
+ "b=0.03; # Composition of CH4 in air\n",
+ "c=0.27; # Composition of CO in air\n",
+ "d=0.045; # Composition of CO2 in air\n",
+ "e=0.01; # Composition of O2 in air\n",
+ "f=0.505; # Composition of N2 in air\n",
+ "g=(0.265-0.01); # O2 requirement from atmospheric air with 1% O2 already in fuel\n",
+ "h=3.76; # By nitrogen balance \n",
+ "i=1; # mole of the air\n",
+ "\n",
+ "#Calculation\n",
+ "#Air fuel ratio on mol (volume) basis\n",
+ "AFvol=(g+(g*h))/i; # Air fuel ratio (theroretical)\n",
+ "AFv=1.1*AFvol; # Air fuel ratio on mol (volume) basis\n",
+ "#Air fuel ratio on mass basis\n",
+ "M1=2; # Molecular mass of H2\n",
+ "M2=16; # Molecular mass of CH4\n",
+ "M3=28; # Molecular mass of CO\n",
+ "M4=44; # Molecular mass of CO2\n",
+ "M5=32; # Molecular mass of O2\n",
+ "M=a*M1+b*M2+c*M3+d*M4+e*M5+f*M3; # Molecular mass of Fuel\n",
+ "Ma=28.84; # Molecular mass of air\n",
+ "AFm=AFv*Ma/(i*M); # Air fuel ratio on mass basis\n",
+ "\n",
+ "#Results\n",
+ "print \"Air fuel ratio on mol (volume) basis =\",round(AFv,3),\"kmol actual air/kmol fuel\"\n",
+ "print \"\\nAir fuel ratio on mass basis = \",round(AFm,2),\"kg air / kg fuel\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio on mol (volume) basis = 1.335 kmol actual air/kmol fuel\n",
+ "\n",
+ "Air fuel ratio on mass basis = 1.56 kg air / kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.7, Page No:653"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "#From table 14.2 at 25 oC and 1 atm for C8H8\n",
+ "del_Ho=-2039.7; # LHV in MJ/kmol\n",
+ "# Combustion equation is C3H8+ 5O2 +18.8N2 \u2192 3CO2 +4H2O +18.8N2\n",
+ "# From table 14.3\n",
+ "h333_C3H8=2751; # h333_h298 of C3H8 in kJ/kmol\n",
+ "h333_O2=147; # h333_h298 of O2 in kJ/kmol\n",
+ "h333_N2=145; # h333_h298 of N2 in kJ/kmol\n",
+ "h1333_CO2=52075; # h1333_h298 of CO2 in kJ/kmol\n",
+ "h1333_H2O=32644; # h1333_h298 of H2O in kJ/kmol\n",
+ "h1333_N2=32644; # h1333_h298 of N2 in kJ/kmol\n",
+ "M=44; # molecular mass of C3H8\n",
+ "\n",
+ "#Calculation\n",
+ "Ha_H1=h333_C3H8+5*h333_C3H8+18.8*h333_N2; # The enthalpy differences\n",
+ "Hb_H2=3*h1333_CO2+4*h1333_H2O+18.8*h1333_N2; # The enthalpy differences\n",
+ "Q=(del_Ho+Hb_H2/1000-Ha_H1/1000)/M; # Heat transfer from combustion chamber\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer from combustion chamber =\",round(abs (Q),2),\"MJ/kg C3H8\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer from combustion chamber = 26.33 MJ/kg C3H8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.8, Page No:656"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Ha_H1=6220; # From example 14.7 in kJ/kmol\n",
+ "del_Ho=-2039.7; # From example 14.7 LHV in MJ/kmol\n",
+ "\n",
+ "#Calculation\n",
+ "Hb_H2=-del_Ho+Ha_H1; # For adiabatic combustion of C3H8\n",
+ "# Hb_H2=3*h1333_CO2+4*h1333_H2O+18.8*h1333_N2 By iteration process and making use of the values from Table A.3, A.13, A.15\n",
+ "# we can get the adiabatic flame temperature is\n",
+ "Tad=2300;# The adiabatic flame temperature in kelvin\n",
+ "\n",
+ "#Result\n",
+ "print \"The adiabatic flame temperature =\",Tad,\"K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The adiabatic flame temperature = 2300 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.9, Page No:658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (a).Entropy change per kmol of C\n",
+ "# From table 14.1 at 298 K and 1 atm\n",
+ "s_c=5.686; # Absolute entropies of C in kJ/kmol K\n",
+ "s_o2=205.142; # Absolute entropies of o2 in kJ/kmol K\n",
+ "s_co2=213.795; # Absolute entropies of CO2 in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "del_s=s_co2-(s_c+s_o2); # The entropy change \n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).The entropy change = \",del_s,\"kJ/K/kmol C\"\n",
+ "\n",
+ "#Variable declaration for(b)\n",
+ "# (b).Entropy change of universe\n",
+ "Tsurr=298; # Temperature of surroundings in kelvin\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# From table 14.1 \n",
+ "del_Ho=-393509; # del_hfco2 in kJ/kmol CO2\n",
+ "Q=abs (del_Ho);\n",
+ "del_Ssurr=Q/Tsurr; # Entropy change of surroundings\n",
+ "del_Suniv=del_s+del_Ssurr; #Entropy change of universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Entropy change of universe = \",del_Suniv,\"kJ/K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).The entropy change = 2.967 kJ/K/kmol C\n",
+ "\n",
+ "(b).Entropy change of universe = 1322.967 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.10, Page No:659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# (a).The product CO2 is also at 298K\n",
+ "Pco=2/3; # Paratial pressure of CO in atm \n",
+ "Po2=1/3; # Paratial pressure of O2 in atm\n",
+ "Pco2=1; # Paratial pressure of CO2 in atm\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "R_1=8.3143; # Universal gas constant of air in kJ/kmol K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# From table 14.1 at 298 K and 1 atm\n",
+ "s_co2=213.795-R_1*math.log (Pco2); # entropies in kJ/kmol K\n",
+ "s_co=197.653-(R_1*math.log (Pco)); # entropies in kJ/kmol K\n",
+ "s_o2=205.03-R_1*math.log (Po2); # entropies in kJ/kmol K\n",
+ "del_Scv=s_co2-s_co-1/2*s_o2; # Entropy change of comtrol volume \n",
+ "# From table 14.1\n",
+ "del_hfco2=-393509; del_hfco=-110525; # Enthalpy of Heat in kJ/kmol\n",
+ "Q= del_hfco2- del_hfco; # Heat transfer (to surroundings)\n",
+ "del_Ssurr=abs(Q)/T0; # Entropy change of surroundings\n",
+ "del_Sgen=del_Scv+del_Ssurr; #Entropy change of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).The product CO2 is also at 298 K\",\"\\nEntropy change of comtrol volume = \",round(del_Scv,2),\"kJ/K\"\n",
+ "print \"Entropy change of surroundings = \",round(del_Ssurr,2),\"kJ/K\",\"\\nEntropy change of universe = \",round(del_Sgen,3),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The reaction is adiabatic\n",
+ "# Let the adiabatic flame temperature be T. Then since\n",
+ "Q=0;\n",
+ "C_p=44*0.8414;\n",
+ "# From table A.16\n",
+ "T=5057.5; #adiabatic flame temperature in kelvin\n",
+ "s_CO2=213.795+C_p*math.log (T/T0); # entropies in kJ/kmol K\n",
+ "del_Scv=s_CO2-s_co-1/2*s_o2; # Entropy change of comtrol volume \n",
+ "del_Ssurr=abs(Q)/T0; # Entropy change of surroundings\n",
+ "del_Sgen=del_Scv+del_Ssurr; #Entropy change of universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The reaction is adiabatic\",\"\\nEntropy change of comtrol volume = \",round(del_Scv,3),\"kJ/K\"\n",
+ "print \"Entropy change of surroundings = \",round(del_Ssurr,3),\"kJ/K\",\"\\nEntropy change of universe = \",round(del_Sgen,3),\"kJ/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).The product CO2 is also at 298 K \n",
+ "Entropy change of comtrol volume = -94.31 kJ/K\n",
+ "Entropy change of surroundings = 949.61 kJ/K \n",
+ "Entropy change of universe = 855.299 kJ/K\n",
+ "\n",
+ "(b).The reaction is adiabatic \n",
+ "Entropy change of comtrol volume = 10.517 kJ/K\n",
+ "Entropy change of surroundings = 0.0 kJ/K \n",
+ "Entropy change of universe = 10.517 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.11, Page No:661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# The Combustion of H2 with Q2 from H2O\n",
+ "#H2(g)+1/2 O2 (g)\u2192H2O(l)+285830 kJ/kmol H2\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "# From table 14.1 at 298 K\n",
+ "del_hfH2O=-285830; # Enthalpy of Heat in kJ/kmol\n",
+ "s_298H2O=69.94; s_298H2=130.684; s_298O2=205.142; # entropies in kJ/kmol K\n",
+ "\n",
+ "#Calculation\n",
+ "GP_GR=del_hfH2O-T0*(s_298H2O-s_298H2-1/2*s_298O2); # Formation of Gibbs function\n",
+ "GR=0;\n",
+ "GP=GP_GR-GR; # Standard Gibbs function of formation of liquid H2O\n",
+ "\n",
+ "#Result\n",
+ "print \"Standard Gibbs function of formation of liquid H2O = \",round(GP,0),\"kJ/kmol\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard Gibbs function of formation of liquid H2O = -237162.0 kJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.12, Page No:662"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# the combustion equation\n",
+ "# n1C3H8+n2O2+n3 N2 \u2192 n4 CO2+ n5 H2O+n6 O2+n7 N2\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "# (a).Product species at 25 oC and 1 atm\n",
+ "d_gfC3H8=-24290; d_gfCO2=-394359; d_gfH2O=-228570; # in kJ/kmol\n",
+ "GR=d_gfC3H8;\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "GP=3*d_gfCO2+4*d_gfH2O;\n",
+ "Wmax=GR-GP; # Maximum possible work output\n",
+ "M=44;#Molecular weight\n",
+ "Wmax=Wmax/M;\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).\",\"\\nMaximum possible work output = \",round(Wmax,3),\"kJ/kg fuel (answer mentioned in the textbook is wrong)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The actual partial pressures of products\n",
+ "n1=1; n2=20; n3=75.2;\n",
+ "n4=3; n5=4; n6=15; n7=75.2; # refer equation\n",
+ "SR=19233; SP=19147; # in kJ/K from table\n",
+ "HR=-104680; # in kJ/kmol fuel\n",
+ "d_h0fCO2=-393509; d_h0fH2O=-241818; # in kJ/kmol\n",
+ "HP=3*d_h0fCO2+4*d_h0fH2O;\n",
+ "Wmax=HR-HP-T0*(SR-SP); # Maximum possible work output\n",
+ "Wmax=Wmax/M;\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).\",\"\\nMaximum possible work output = \",round(Wmax,3),\"kJ/kg (round off error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a). \n",
+ "Maximum possible work output = 47115.159 kJ/kg fuel (answer mentioned in the textbook is wrong)\n",
+ "\n",
+ "(b). \n",
+ "Maximum possible work output = 45852.068 kJ/kg (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter15.ipynb b/Thermodynamics/Chapter15.ipynb
new file mode 100755
index 00000000..537afb59
--- /dev/null
+++ b/Thermodynamics/Chapter15.ipynb
@@ -0,0 +1,361 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aba24805b98ee0919f2ef39d5927b5007d2ce98264adcd2e65263a9fbffd1f67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15:CHEMICAL EQUILIBRIUM"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1, Page No:676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (b).Number of moles of each constituents\n",
+ "nCH4=2; # Number of moles of CH4\n",
+ "\n",
+ "#Calculation\n",
+ "E=3-nCH4; # Amount of reaction from (a) and refer example 15.1 (a)\n",
+ "nH2O=1-E;# Number of moles of H2O\n",
+ "nCO=1+E;# Number of moles of CO\n",
+ "nH2=4+3*E;# Number of moles of H2\n",
+ "\n",
+ "#Results\n",
+ "print \"(b).Number of moles of each constituents\",\"\\nNumber of moles of H2O = \",nH2O\n",
+ "print \"Number of moles of CO = \",nCO,\"\\nNumber of moles of H2 = \",nH2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(b).Number of moles of each constituents \n",
+ "Number of moles of H2O = 0\n",
+ "Number of moles of CO = 2 \n",
+ "Number of moles of H2 = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page No:680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T0=298; # Given temperature in kelvin\n",
+ "R_1=8.314; # Universal gas constant in kJ/kg mol K\n",
+ "# (a).CO+1/2 O2 = CO2\n",
+ "# From table of properties of combustion\n",
+ "del_hfco2=-393509;# Enthalpy of heat \n",
+ "del_hfco=-110525;# Enthalpy of heat \n",
+ "s_co2=213.795;# Entropy of heat \n",
+ "s_co=197.652;# Entropy of heat \n",
+ "s_o2=205.142;# Entropy of heat \n",
+ "\n",
+ "#Calculation for (a)\n",
+ "del_Ga=(del_hfco2-del_hfco-T0*(s_co2-s_co-(1/2*s_o2)));\n",
+ "Ka=math.exp (abs (del_Ga)/(R_1*1000*T0));\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).CO+1/2 O2 = CO2\"\n",
+ "print (\" The equilibrium constant at 298 K = %0.3f (Error in textbook) \")%Ka\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).2CO + O2 = 2CO2\n",
+ "Kb=math.exp (2*abs (del_Ga)/(R_1*1000*T0));\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).2CO + O2 = 2CO2\"\n",
+ "print (\"The equilibrium constant at 298 K = %0.3f (Error in textbook)\")%Kb\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).CO+1/2 O2 = CO2\n",
+ " The equilibrium constant at 298 K = 1.123 (Error in textbook) \n",
+ "\n",
+ "(b).2CO + O2 = 2CO2\n",
+ "The equilibrium constant at 298 K = 1.262 (Error in textbook)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page No:686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "R_1=8.314; # Universal gas constant in kJ/kg mol K\n",
+ "T=2800; # Given Temperature in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "# From table of properties of combustion\n",
+ "del_hfco2=-393509; # Enthalpy of heat \n",
+ "del_hfco=-110525; # Enthalpy of heat \n",
+ "del_H=del_hfco2-del_hfco; # Standard enthalpy of reaction\n",
+ "Ka=1.202*10**45; # The equilibrium constant From the example 15.2\n",
+ "K1=math.log (Ka);\n",
+ "K=math.exp(-(del_H/R_1)*((1/T)-(1/T0))+K1);\n",
+ "\n",
+ "#Result\n",
+ "print\"K =\",round(K,3),\" (roundoff error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K = 5.687 (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5, Page No:689"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2800; # Temperature of combustion in kelvin\n",
+ "p=1; # Pressure of combustion in atm\n",
+ "# For this reverse reaction at 2800K and 1atm, from Table 15.1\n",
+ "K=44.168; # K=e^3.788;\n",
+ "\n",
+ "#Calculation\n",
+ "K=math.sqrt (K); # For stoichiometric equation CO+1/2 O2 = CO2 which is halved\n",
+ "# From equation 15.24a and by the iteration process we get the following\n",
+ "a=0.198;\n",
+ "b=(1+a)/2;\n",
+ "c=1-a;\n",
+ "\n",
+ "#Results\n",
+ "print \"The balance for the actual reaction equation CO + O2 \u2192 aCO + bO2 + cCO2 is given by \"\n",
+ "print \"a =\",a,\"\\nb =\",b,\"\\nc =\",c\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The balance for the actual reaction equation CO + O2 \u2192 aCO + bO2 + cCO2 is given by \n",
+ "a = 0.198 \n",
+ "b = 0.599 \n",
+ "c = 0.802\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6, Page No:691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# By driving the equation for equilibrium constant as shown in example 15.6 we get 6.646(6)^(1/6)=((1-a)/a)((3+a)/(1+a))^1/2\n",
+ "# by simple iteration process we get\n",
+ "a=0.095;\n",
+ "\n",
+ "#Calculations\n",
+ "b=(1+a)/2;\n",
+ "c=1-a;\n",
+ "\n",
+ "#Results\n",
+ "print \"The equilibrium composition of CO = \",a,\"mol (roundoff error)\"\n",
+ "print \"The equilibrium composition of O2 = \",b,\"mol (roundoff error)\"\n",
+ "print \"The equilibrium composition of CO2 = \",c,\"mol (roundoff error)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equilibrium composition of CO = 0.095 mol (roundoff error)\n",
+ "The equilibrium composition of O2 = 0.5475 mol (roundoff error)\n",
+ "The equilibrium composition of CO2 = 0.905 mol (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7, Page NO:691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=2800; # Temperature of combustion in kelvin\n",
+ "p=1; # Pressure of combustion in atm\n",
+ "# For this reverse reaction at 2800K and 1atm, from Table 15.1\n",
+ "K=44.168; # K=e^3.788;\n",
+ "\n",
+ "#Calculations\n",
+ "K=math.sqrt (K); # For stoichiometric equation CO+1/2 O2 = CO2 which is halved\n",
+ "# From equation 15.24a and by the iteration process we get the following\n",
+ "a=0.302;\n",
+ "b=(1+a)/2;\n",
+ "c=1-a;\n",
+ "\n",
+ "#Results\n",
+ "print \"The balance for the actual reaction equation CO + 1/2O2 + 1.88N2 \u2194 aCO + bO2 + cCO2 +3.76N2 is given by \"\n",
+ "print \"a =\",a,\"\\nb =\",b,\"\\nc =\",c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The balance for the actual reaction equation CO + 1/2O2 + 1.88N2 \u2194 aCO + bO2 + cCO2 +3.76N2 is given by \n",
+ "a = 0.302 \n",
+ "b = 0.651 \n",
+ "c = 0.698\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8, Page No:693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=3000; # Temperature of combustion in kelvin\n",
+ "p=1; # Pressure of combustion in atm\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "R_1=8.314; # Universal gas constant in kJ/kg mol K\n",
+ "# Gibbs functions at 298K from Table 14.1\n",
+ "del_gNO=86550; # In kJ/kmol\n",
+ "del_gNO2=51310; # In kJ/kmol\n",
+ "# From table of properties of combustion\n",
+ "del_hfNO=90250; # Enthalpy of heat \n",
+ "del_hfNO2=33180; # Enthalpy of heat \n",
+ "\n",
+ "#Calculations\n",
+ "K1=math.exp (-(del_hfNO/R_1)*((1/T)-(1/T0))-((del_gNO)/(R_1*T0)));\n",
+ "K2=math.exp (-(del_hfNO2/R_1)*((1/T)-(1/T0))-((del_gNO2)/(R_1*T0)));\n",
+ "# By solving equilibrium equations by iteration method\n",
+ "E1=0.228; E2=0.0007;\n",
+ "yNO=E1/4.76; # Mole fraction of NO in exhaust gas\n",
+ "yNO2=E2/4.76; # Mole fraction of NO2 in exhaust gas\n",
+ "\n",
+ "#Results\n",
+ "print \"Percentage of NOx present in the exhaust gas \",\"\\nMole fraction of NO in exhaust gas = \",round(yNO*100,2),\"%\"\n",
+ "print \"Mole fraction of NO2 in exhaust gas = \",round(yNO2*100,4),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Percentage of NOx present in the exhaust gas \n",
+ "Mole fraction of NO in exhaust gas = 4.79 %\n",
+ "Mole fraction of NO2 in exhaust gas = 0.0147 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter2.ipynb b/Thermodynamics/Chapter2.ipynb
new file mode 100755
index 00000000..9380b1f0
--- /dev/null
+++ b/Thermodynamics/Chapter2.ipynb
@@ -0,0 +1,112 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:918b48292f00614bbba5ee6b8d2f7b2b929a3939332547fe2fb6585d1e0c7729"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:THERMODYNAMIC CONCEPTS AND THE ZEROTH LAW"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No:33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "patm = 14.5 ; # atmospheric pressure in psia\n",
+ "pgauge = 2.5; # gauge pressure in psia\n",
+ "A = 10; # Area of the piston in in^2\n",
+ "g=9.80665; # Acceleration due to gravity in m/s^2\n",
+ "#Calculation for (a)\n",
+ "p = patm + pgauge; #total pressure of gas\n",
+ "m=(p-patm)*A ; # mass of the piston\n",
+ "#Result for (a)\n",
+ "print \"In English units\"\n",
+ "print \"Mass of the piston =\",m,\"lbm\"\n",
+ "#Calculation for (b)\n",
+ "p=(p*0.454*g)/(0.0254**2); # conversion of English unit to SI units\n",
+ "patm=(patm*0.454*g)/(0.0254**2); # conversion of English unit to SI units\n",
+ "m = ((p-patm)*(A*2.54**2*10**-4))/g; # Mass of the piston\n",
+ "#Result for (b)\n",
+ "print \"\\nIn SI units \\n\",\"Mass of the piston =\",m,\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In English units\n",
+ "Mass of the piston = 25.0 lbm\n",
+ "\n",
+ "In SI units \n",
+ "Mass of the piston = 11.35 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No:34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Variable declaration\n",
+ "d_r = 13600; # Density of manometric fluid (mercury) in kg/m^*3\n",
+ "g = 8.92; # Gravitational acceleration in m/s^2\n",
+ "#Variable declaration\n",
+ "z1=0.589*math.sin(math.radians(60)); # vertical height of fluid at section 1\n",
+ "z2=2*math.sin(math.radians(30)); # vertical height of fluid at section 2\n",
+ "z=z2-z1; # Difference in vertical heights of fluid\n",
+ "patm = 14.7; # Atmospheric pressure in lbf/in^2\n",
+ "patm=(patm*4.44822*144/0.3048**2); # conversion of lbf/in^2 unit to N/m^2 unit\n",
+ "p=patm + (d_r*g*(z2-z1)); # Balance of force at A\n",
+ "#Result\n",
+ "print \"Difference in vertical heights of fluid = \",round(z,2),\"m\"\n",
+ "print \"\\nThe pressure of fluid in the vessel = \",round(p/1000,0),\"kPa\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Difference in vertical heights of fluid = 0.49 m\n",
+ "\n",
+ "The pressure of fluid in the vessel = 161.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter3.ipynb b/Thermodynamics/Chapter3.ipynb
new file mode 100755
index 00000000..f35af800
--- /dev/null
+++ b/Thermodynamics/Chapter3.ipynb
@@ -0,0 +1,456 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2adb5810f77a16f36c057b0df75843c0d900b3354a62e4e4e5a6c4e231a86e5c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:PROPERTIES OF A PURE SUBSTANCE"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1, Page No:77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "\n",
+ "V=0.01; # Volume of water in a rigid vessel in m^3\n",
+ "m=4.5; # Mass of water+ steam in a rigid vessel in kg\n",
+ "T=35; # Temperature of water in a rigid vessel in degree celcius\n",
+ "#Calculation\n",
+ "\n",
+ "# (a) \n",
+ "v=V/m; # specific volume of water\n",
+ "# From steam table\n",
+ "vf=0.001006; vg=25.22; # specific volume in m^3/kg\n",
+ "x=(v-vf)/(vg-vf); # Quality of steam\n",
+ "x1=1-x; # Quality of water\n",
+ "mg=x*m; # Mass of steam\n",
+ "mf=x1*m; # Mass of water\n",
+ "#Result for (a)\n",
+ "\n",
+ "print \"(a).\\n\",\"Quality of steam in a rigid vessel = \",x,\"\\nQuality of water in a rigid vessel = \",x1\n",
+ "print \"Mass of steam in a rigid vessel = \",round(mg,8),\"kg\\n\",\"Mass of water in a rigid vessel = \",round(mf,9),\"kg\\n\"\n",
+ "# (b)\n",
+ "#Result for (b)\n",
+ "\n",
+ "vc=0.003155; # Crictical volume for water in m^3/kg\n",
+ "print \"(b).\\n\",\"The level of liquid water will rise in the vessel. Since v < vc and refer figure 3.21\\n\"\n",
+ "# (c) \n",
+ "#Result for (c)\n",
+ "\n",
+ "print \"(c)\\n\",\"The final temperature after heating is 370.04 oC. Because it is constant volume process and refer figure 3.21\\n\"\n",
+ "# (d) \n",
+ "#Calculation for (d)\n",
+ "\n",
+ "m1=0.45; # Mass of water in kg\n",
+ "v1=V/m; # specific volume of water\n",
+ "#Result for (d)\n",
+ "\n",
+ "print\"(d).\\n\", \"Level of liquid drops to bottom (v1 > vc). Temperature on reaching saturation state is 298.5 oC and refer figure 3.21\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).\n",
+ "Quality of steam in a rigid vessel = 4.82264368762e-05 \n",
+ "Quality of water in a rigid vessel = 0.999951773563\n",
+ "Mass of steam in a rigid vessel = 0.00021702 kg\n",
+ "Mass of water in a rigid vessel = 4.499782981 kg\n",
+ "\n",
+ "(b).\n",
+ "The level of liquid water will rise in the vessel. Since v < vc and refer figure 3.21\n",
+ "\n",
+ "(c)\n",
+ "The final temperature after heating is 370.04 oC. Because it is constant volume process and refer figure 3.21\n",
+ "\n",
+ "(d).\n",
+ "Level of liquid drops to bottom (v1 > vc). Temperature on reaching saturation state is 298.5 oC and refer figure 3.21\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No:79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration for (a)\n",
+ "# (a) Ammonia 26 oC and 0.074 m^3/kg\n",
+ "# From saturation table of ammonia at 26 oC\n",
+ "v=0.074; # specific volume of ammonia in m^3/kg\n",
+ "vf=0.001663; vg=0.1245; # specific volume of ammonia in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x=(v-vf)/(vg-vf); # Quality of vapour since v<vg\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a) Ammonia 26 oC and 0.074 m^3/kg\\n\",\"The Quality of ammonia = \",round(x,3)\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Ammonia 550kPa and 0.31m^3/kg\n",
+ "# From saturation table of ammonia at 550 kPa\n",
+ "v=0.31; # specific volume of ammonia in m^3/kg\n",
+ "vg=0.23; # specific volume of ammonia in m^3/kg\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# v > vg . Since from superheated table by interpolation for 550kPa and v\n",
+ "T=82.1; # Temperature of ammonia in degree celcius\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Ammonia 550kPa and 0.31m^3/kg\\n\",\"Temperature of ammonia = \",T,\"oC\\n\"\n",
+ "\n",
+ "#Variable declaration for (c)\n",
+ "# (c).Freon 12, 0.35MPa and 0.036 m^3/kg\n",
+ "# From saturation table of Freon 12 at 0.35MPa\n",
+ "v=0.036; # specific volume of Freon 12 in m^3/kg\n",
+ "vf=0.000722; vg=0.049329; # specific volume of Freon 12 in m^3/kg\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "x=(v-vf)/(vg-vf); # Quality of vapour since v<vg\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"(c).Freon 12, 0.35MPa and 0.036 m^3/kg\\n\",\"The Quality of Freon 12 = \",round(x,2)\n",
+ "\n",
+ "#Variable declaration for (d)\n",
+ "# (d).Methane 0.5MPa and 1.0 m^3/kmol\n",
+ "v=1; # specific volume of Methane in m^3/kmol\n",
+ "# From table at 0.5 MPa molar values are\n",
+ "vf=0.04153; vg=2.007; # specific volume of Methane in m^3/kmol\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "x=(v-vf)/(vg-vf); # Quality of vapour since v<vg\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Methane 0.5MPa and 1.0 m^3/kmol\",\"\\nThe Quality of Methane = \",round(x,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Ammonia 26 oC and 0.074 m^3/kg\n",
+ "The Quality of ammonia = 0.589\n",
+ "\n",
+ "(b).Ammonia 550kPa and 0.31m^3/kg\n",
+ "Temperature of ammonia = 82.1 oC\n",
+ "\n",
+ "(c).Freon 12, 0.35MPa and 0.036 m^3/kg\n",
+ "The Quality of Freon 12 = 0.73\n",
+ "\n",
+ "(d).Methane 0.5MPa and 1.0 m^3/kmol \n",
+ "The Quality of Methane = 0.4877\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3, Page No:83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V=300; # Volume of air in the room in m^3\n",
+ "p=1; # Atmospheric pressure in bar\n",
+ "T=25; # Temperature of air in Degree Celcius\n",
+ "R=287; # Characteristic constant of Air in J/kg k\n",
+ "\n",
+ "#Calculation\n",
+ "m=(p*10**5*V)/(R*(T+273)); # Ideal gas equation\n",
+ "\n",
+ "#Result\n",
+ "print \"Mass of air in room = \",round(m,2),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of air in room = 350.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4, Page No:84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "D=20; # Diameter of the sphere in cm\n",
+ "m=2.54; # Mass of gas filled in sphere in gram\n",
+ "p=10; # Pressure of gas in bar\n",
+ "T=25; # Temperature of gas in Degree Celcius\n",
+ "R=8.3144*10**3; # Universal gas constant in J/kmol K\n",
+ "\n",
+ "#Calculation\n",
+ "V=(3.14*(D*10**-2)**3)/16; # Volume of das in sphere in m^3\n",
+ "M=(m*10**-3*R*(T+273))/(p*10**5*V); # Molecular weight of the gas\n",
+ "\n",
+ "#Result\n",
+ "print \"Molecular weight of the gas = \",round(M,3),\"\\nTherefore gas in sphere is Helium (unless mixture of two or more gases)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Molecular weight of the gas = 4.008 \n",
+ "Therefore gas in sphere is Helium (unless mixture of two or more gases)\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5, Page No:85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p2=2.5; # Pressure of air in the cylinder in bar\n",
+ "T1=430; # Temperature of air in cylinder in Degree Celcius\n",
+ "V1=1.2; # Volume of cylinder in m^3\n",
+ "V2=0.6; # Volume of cylinder upto end stops in m^3\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a) Temperature of air when the piston reaches the stops\n",
+ "T2=(T1+273)*(V2/V1); # constant pressure process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Temperature of air when the piston reaches the stops = \",round(T2,1),\"K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b) The pressure of air when its temperature equals to 25 oC\n",
+ "T3=25; #Room temperature in Degree Celcius\n",
+ "p3=p2*((T3+273)/T2); # constant volume process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The pressure of air when its temperature equals to 25 oC = \",round(p3,2),\"bar\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Temperature of air when the piston reaches the stops = 351.5 K\n",
+ "\n",
+ "(b).The pressure of air when its temperature equals to 25 oC = 2.12 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7, Page No:92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=6000; # Pressure of nitrogen gas in kPa\n",
+ "T=150; # Temperature of nitrogen gas in kelvin\n",
+ "V=250; # Volume of tank in litres\n",
+ "R_1=8.3143; # Universal gas constant in kJ/kmol K\n",
+ "M=28.1013; # Molecular mass\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Beattie - Bridgeman equation of state\n",
+ "# Constants for nitrogen gas\n",
+ "c=4.2*10**4; Ao=136.2315; a=0.02617; Bo=0.05046; b=-0.00691;\n",
+ "# By substituting these values in the following equation \n",
+ "# p=(R_1*T/v^2)*(1-(c/(vT^3)))*(v+Bo*(1-(b/v)))-(Ao/v^2*(1-(a/v)))\n",
+ "# By trial and error we get\n",
+ "v=0.1222; # specific volume in m^3/kmol\n",
+ "m=(M*V/1000)/v; # Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Beattie - Bridgeman equation of state\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\"\n",
+ "print \"specific volume of nitrogen gas = \",round(v,4),\"m^3/kmol\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Nitrogen tables\n",
+ "# From property table of nitrogen fas\n",
+ "v=0.004413; # specific volume in m^3/kg\n",
+ "m=(V/1000)/v; # Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Nitrogen tables\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\",\"\\nspecific volume of nitrogen gas = \",round(v,6),\"m^3/kg\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Ideal gas equation of state\n",
+ "m=(p*V/1000)/(R_1*T/M); #Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).Ideal gas equation of state\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Generalized compressibility chart\n",
+ "# The crictical properties for nitrogen gas \n",
+ "Tc=126.2; # Temperature in kelvin\n",
+ "Pc=3.349; # Pressure in MPa\n",
+ "# Reduced properties are\n",
+ "Pr=p/Pc; Tr=T/Tc;\n",
+ "z=0.6; # From chart\n",
+ "m=(p*V/1000)/(z*R_1*T/M); #Mass of nitrogen gas\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n\\n(d).Generalized compressibility chart\",\"\\nMass of nitrogen gas = \",round(m,2),\"kg\"\n",
+ "\n",
+ "#Result for (e)\n",
+ "#(e).Arrangement the methods in order of percentage error\n",
+ "print \" \\n\\n(e).Arrangement the methods in order of percentage error : \"\n",
+ "print \"Nitrogen tables\",\"\\nBeattie - Bridgeman equation of state\",\"\\nGeneralized compressibility chart\",\"\\nIdeal gas equation of state\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Beattie - Bridgeman equation of state \n",
+ "Mass of nitrogen gas = 57.49 kg\n",
+ "specific volume of nitrogen gas = 0.1222 m^3/kmol\n",
+ "\n",
+ "\n",
+ "(b).Nitrogen tables \n",
+ "Mass of nitrogen gas = 56.65 kg \n",
+ "specific volume of nitrogen gas = 0.004413 m^3/kg\n",
+ "\n",
+ "\n",
+ "(c).Ideal gas equation of state \n",
+ "Mass of nitrogen gas = 33.8 kg\n",
+ "\n",
+ "\n",
+ "(d).Generalized compressibility chart \n",
+ "Mass of nitrogen gas = 56.33 kg\n",
+ " \n",
+ "\n",
+ "(e).Arrangement the methods in order of percentage error : \n",
+ "Nitrogen tables \n",
+ "Beattie - Bridgeman equation of state \n",
+ "Generalized compressibility chart \n",
+ "Ideal gas equation of state\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No:97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T=-58.7; #Normal boling point of CF3Br in Degree Celcius\n",
+ "Tc=340.9; # Crictical temperature of CF3Br in K\n",
+ "pc=4.05; # Crictical pressure of CF3Br in MPa\n",
+ "M=148.9; # Moleclar mass of CF3Br\n",
+ "p=1.01325*10**5; # Atmospheric pressure in N/m^2\n",
+ "R1=8314.4; # Universal gas constant in J/kmol K\n",
+ "R=R1/M; # Gas constant of CF3Br\n",
+ "\n",
+ "#Calculation\n",
+ "a=(0.42748*R**2*Tc**2.5)/(pc*10**6); # Constant of Redlich-Kwong equation of state\n",
+ "b=(0.08664*R*Tc)/(pc*10**6); # Constant of Redlich-Kwong equation of state\n",
+ "vi=(R*(T+273))/p; # Ideal gas volume for assigning initial value\n",
+ "# By substituting these values in the Redlich-Kwong equation of state \n",
+ "vi_1=(R*(T+273)/p)+b-((a/(p*(273+T)**0.5*vi))*((vi-b)/(vi+b))); #and solving it by trial and error method we get\n",
+ "\n",
+ "#Result\n",
+ "print \"Saturated vapour volume = \",round(vi_1,5),\"m^3/kg (roundoff error)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturated vapour volume = 0.1145 m^3/kg (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter4.ipynb b/Thermodynamics/Chapter4.ipynb
new file mode 100755
index 00000000..a94e74df
--- /dev/null
+++ b/Thermodynamics/Chapter4.ipynb
@@ -0,0 +1,605 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a96d6bb31c1b3d7ae1ce5516661e1ba259f94d24cfffad925aea849eb83692cf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:WORK AND HEAT"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1, Page No:114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=5; # Pressure of Helium gas at initial state in bar\n",
+ "T1=222; # Temperature of Helium gas at initial state in K\n",
+ "V1=0.055; # Volume of Helium gas at initial state in m^3\n",
+ "n=1.5; # Index of expansion process\n",
+ "R=2.078;# Characteristic gas constant of Helium gas in kJ/kg K\n",
+ "p2=2; # Pressure of Helium gas at final state (after expansion) in bar\n",
+ "\n",
+ "#Calculation for Method I\n",
+ "V2=V1*(p1/p2)**(1/n);# From Polytropic process relation for final volume\n",
+ "W=((p2*10**2*V2)-(p1*10**2*V1))/(n-1); # Work done from Polytropic process relation\n",
+ "\n",
+ "#Result for Method I\n",
+ "print \"Method I\"\n",
+ "print \"\\nWork done =\",round(W,2),\"kJ\"\n",
+ "\n",
+ "#Calculation for Method II\n",
+ "m=(p1*10**2*V1)/(R*T1); # ideal gas equation\n",
+ "T2=T1*(p2/p1)**((n-1)/n); # From Polytropic process relation of final temperature\n",
+ "W=(m*R*(T1-T2))/(1-n); # Work done from Polytropic process relation\n",
+ "\n",
+ "#Result for Method II\n",
+ "print \"\\n\\nMethod II\"\n",
+ "print \"\\nWork done =\",round(W,2),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Method I\n",
+ "\n",
+ "Work done = -14.48 kJ\n",
+ "\n",
+ "\n",
+ "Method II\n",
+ "\n",
+ "Work done = -14.48 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No:115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1.3; # Initial pressure of gas in bar\n",
+ "V1=0.03; # Initial volume of gas in m^3\n",
+ "V2=0.1; # Final volume of gas in m^3\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "W=p1*10**2*(V2-V1); # work done by gas\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Constant pressure process\"\n",
+ "print \"\\nwork done by gas =\",W,\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "W=p1*10**2*V1*math.log(V2/V1);# Work done by gas\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Constant Temperature process\"\n",
+ "print \"\\nwork done by gas =\",W,\"kJ\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "n=1.3; #index of polytropic process \n",
+ "p2=p1*(V1/V2)**n; # From Polytropic process relation for final pressure\n",
+ "W=((p2*10**2*V2)-(p1*10**2*V1))/(1-n); # Work done by gas\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).polytropic process of index 1.3\"\n",
+ "print \"\\nwork done by gas =\",round(W,3),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Constant pressure process\n",
+ "\n",
+ "work done by gas = 9.1 kJ\n",
+ "\n",
+ "\n",
+ "(b).Constant Temperature process\n",
+ "\n",
+ "work done by gas = 4.69549393687 kJ\n",
+ "\n",
+ "\n",
+ "(c).polytropic process of index 1.3\n",
+ "\n",
+ "work done by gas = 3.941 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No:120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "patm=1; # Atmospheric pressure in bar\n",
+ "V1=0.0135; # Volume of Freon 12 at initial state in m^3\n",
+ "D=9; # Diameter of the cylinder in cm\n",
+ "m=90; # Mass of the piston in kg\n",
+ "g=9.80665; # acceleration due to gravity in m/s^2\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a). Determination of the final pressure and volume of the system\n",
+ "A=3.14/4 * (D*10**-2)**2; # Area of the cylinder\n",
+ "p1=0.7449; # Initial pressure of saturated vapour at 30 degree celcius in MPa\n",
+ "v1=0.023508; # Initial specific volume of saturated vapour at 30 degree celcius in m^3/kg\n",
+ "p2=(patm*10**5)+(m*g)/A; # Final pressure of Freon 12\n",
+ "v2=0.084022; # Final specific volume from superheated table at p2 and 30 degree celcius in m^3/kg\n",
+ "mf=V1/v1; # Mass of Freon 12\n",
+ "V2=mf*v2; # Final volume of Freon 12\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nFinal pressure = \",p2,\"Pa\",\"\\nFinal volume = \",round(V2,5),\"m^3 (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b). Calculation of workdone by Freon 12 during this process\n",
+ "Wirrev=p2*(V2-V1); # P dv Work done \n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nWork done = \",round(Wirrev/1000,3),\"kJ (round off error)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c). Calculation of workdone by Freon 12 during reversible process\n",
+ "Wrev=p1*10**6*V1*math.log (V2/V1);#From reversible process relation for work done\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c)\",\"\\nWork done in reveersible process = \",round(Wrev/1000,2),\"kJ (round off error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Final pressure = 238806.086341 Pa \n",
+ "Final volume = 0.04825 m^3 (round off error)\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Work done = 8.299 kJ (round off error)\n",
+ "\n",
+ "\n",
+ "(c) \n",
+ "Work done in reveersible process = 12.81 kJ (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5, Page No:129"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=0.1; # Initial pressure (before compression) of air in MPa\n",
+ "T1=30; # Initial temperature (before compression) of air in degree celcius\n",
+ "p2=0.9; # Final pressure (after compression) of air in MPa\n",
+ "R=0.287; # Characteristic constant of air in kJ/kg k\n",
+ "\n",
+ "# (i) Actual work in the flow process\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Isothermal Process\n",
+ "w=-R*(T1+273)*math.log (p2/p1); # work done for isothermal process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(i) Actual work in the flow process\",\"\\n(a).Isothermal Process\",\"\\nwork done = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Polytropic process\n",
+ "n=1.4; # Index of polytropic process\n",
+ "T2=(T1+273)*(p2/p1)**((n-1)/n); # From Polytropic process relation for final temperature\n",
+ "w=(n/(1-n))*R*(T2-(T1+273)); # work done for polytropic process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Polytropic process\",\"\\ncompression work = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "# (ii).Nonflow work\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Isothermal Process\n",
+ "w=-R*(T1+273)*math.log (p2/p1); # work done for isothermal process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"\\n\\n\\n(ii).Nonflow work\",\"\\n(a).Isothermal Process\",\"\\nwork done = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Polytropic process\n",
+ "w=(1/(1-n))*R*(T2-(T1+273));# work done for polytropic process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Polytropic process\",\"\\ncompression work = \",round(w,1),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Actual work in the flow process \n",
+ "(a).Isothermal Process \n",
+ "work done = -191.1 kJ/kg\n",
+ "\n",
+ "\n",
+ "(b).Polytropic process \n",
+ "compression work = -265.8 kJ/kg\n",
+ "\n",
+ "\n",
+ "\n",
+ "(ii).Nonflow work \n",
+ "(a).Isothermal Process \n",
+ "work done = -191.1 kJ/kg\n",
+ "\n",
+ "\n",
+ "(b).Polytropic process \n",
+ "compression work = -189.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No:135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=1; # Initial pressure (before compression) of air in bar\n",
+ "p2=8; # Final pressure (after compression) of air in bar\n",
+ "Vp=15; # Displacement volume of reciprocating air compressor in litres\n",
+ "Vc=0.05*Vp; # Clearance volume of reciprocating air compressor in litres\n",
+ "N=600; # Speed of compressor in rpm\n",
+ "V1=Vc+Vp; # Total volume of reciprocating air compressor in litres\n",
+ "p3=p2; # constant pressure process\n",
+ "p4=p1; # constant pressure process\n",
+ "V3=Vc;# Clearance volume of reciprocating air compressor in litres\n",
+ "n=1.3; # Index of reversible adiabatic compression process\n",
+ "m=1.4; # Index of reversible adiabatic expansion process\n",
+ "V4=V3*(p3/p4)**(1/m);\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Work per machine cycle\n",
+ "Wcycle = ((n/(n-1))*p1*10**2*V1*10**-3*(1-(p2/p1)**((n-1)/n)))-((m/(m-1))*p4*10**2*V4*10**-3*(1-(p3/p4)**((m-1)/m)));\n",
+ "# Work per machine cycle\n",
+ "Wpower=abs (Wcycle)*(N/60); # Power consumption of the compressor\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nWork per machine cycle = \",round(Wcycle,3),\"kJ (Error in textbook)\"\n",
+ "print \"\\nPower consumption of the compressor\",round(Wpower,2),\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Work of the cycle if m=n\n",
+ "m=n;\n",
+ "W_cycle=(n/(n-1))*p1*10**2*(V1-V4)*10**-3*(1-(p2/p1)**((n-1)/n)); # Work per machine cycle\n",
+ "er=((W_cycle-Wcycle)/Wcycle) * 100 # Error involved in calculating work if m=n\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nWork per machine cycle\",round(W_cycle,3),\"kJ (round off error)\"\n",
+ "print \"\\nError = \",round(er,3),\"% (Error in textbook)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Clearance volumetric efficiency\n",
+ "C=Vc/Vp;\n",
+ "eff = 1+C+-C*(p2/p1)**(1/n); # Clearance volumetric efficiency\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).\",\"\\nClearance volumetric efficiency = \",round(eff*100,0),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Work per machine cycle = -3.263 kJ (Error in textbook)\n",
+ "\n",
+ "Power consumption of the compressor 32.63 kW\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Work per machine cycle -3.319 kJ (round off error)\n",
+ "\n",
+ "Error = 1.739 % (Error in textbook)\n",
+ "\n",
+ "\n",
+ "(c). \n",
+ "Clearance volumetric efficiency = 80.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7, Page No:137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=150; # Cylinder Diameter in mm\n",
+ "L=200; # Piston stroke in mm\n",
+ "C=0.05; # Clearance factor\n",
+ "p1=15; # Steam inlet conditions (saturated) in bar\n",
+ "p4=1; # Exhaust or back pressure in bar\n",
+ "p2=p1; # Constant pressure process\n",
+ "p5=p4; # Constant pressure process\n",
+ "\n",
+ "#Calculation\n",
+ "Vp=(3.14*(D*10**-3)**2*L*10**-3)/4; # Swept volme of cylinder\n",
+ "Vc=C*Vp; # Clearance volume of cylinder\n",
+ "V3=Vc+Vp; # Total volume of cylinder\n",
+ "V1=Vc; # Clearance volume\n",
+ "V6=V1; # constant volume process\n",
+ "V4=V3; # constant volume process\n",
+ "V5=Vc+0.3*Vp; # Compression begins at 30% of stroke\n",
+ "V2=Vc+0.4*Vp; # Cut-off occurs at 40% of stroke\n",
+ "p6=p5*(V5/V6); # Pressure after compression\n",
+ "Wcycle=(p1*10**2*(V2-V1))+(p2*10**2*V2*math.log (V3/V2))-(p4*10**2*(V4-V5))-(p5*10**2*V5* math.log(V5/V6)); # Work per Cycle\n",
+ "\n",
+ "#Result\n",
+ "print \"Work per cycle =\",round(Wcycle,3),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work per cycle = 3.652 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.8, Page No:142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "D=10; #Bore in cm\n",
+ "L=12.5; #Stroke length in cm\n",
+ "a=9.68; # Area of indicator card in cm^2\n",
+ "l=5.33; # Card length in cm\n",
+ "Ks=21.7; # Indicator spring constant per meter of card length\n",
+ "\n",
+ "#Calculation\n",
+ "A=(3.14*(D*10**-2)**2)/4; # Area of pisaton\n",
+ "Pm=(a/l)*10**-2*Ks*10**6; # Mean effective pressure\n",
+ "W=Pm*A*L*10**-2; # Work done by cycle\n",
+ "\n",
+ "#Result\n",
+ "print \"Work done by cycle = \",round(W,0),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done by cycle = 387.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9, Page No:142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=152; # Bore of steam engine in mm\n",
+ "l=89; # Stroke length of steam engine in mm\n",
+ "a1=8;a2=10; # area of indicatior diagram on two sides\n",
+ "Ks=50; # Indicator spring constant in lbf/in^2/in\n",
+ "N=310; # Engine speed in rpm\n",
+ "d=0.664; # Diameter of flywheel in m\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a)\n",
+ "a=(a1+a2)/2; # Average area of indicator diagram\n",
+ "Ks=50*4.44822/(0.0254)**3; # Unit conversion from lbf/in^2/in to N/m^2\n",
+ "pm=(a/(l/10))*10**-2*Ks; # Mean effective pressure \n",
+ "A=(3.14*(D*10**-3)**2)/4; # Area of the piston\n",
+ "IP=2*pm*l*10**-3*A*N/60; # Indicated power\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nIndicated power of Engine =\",round(IP/1000,2),\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b)\n",
+ "F=12-1.5; # Tangential force on the brake drum in kgf\n",
+ "BP=F*9.81*d/2*2*3.14*N/60; # Brake power of Engine\n",
+ "eff=BP/IP *100 ; # Mechanical efficiency \n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nBrake power of Engine = \",round(BP/1000,2),\"kW\",\"\\nMechanical efficiency of Engine =\",round(eff,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Indicated power of Engine = 2.29 kW\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Brake power of Engine = 1.11 kW \n",
+ "Mechanical efficiency of Engine = 48.47 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No:156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Tc1=10; # Feed water inlet temperature in degree celcius\n",
+ "Tc2=77; # Feed water outlet temperature in degree celcius\n",
+ "th1=166; # Initial temperature of flue gas in degree celcius\n",
+ "r=4; # Ratio of mass flow rates of flue gases and water\n",
+ "Ch=1.05; # The specific heat of flue gas in kJ/kg K\n",
+ "Cc=4.187; # The specific heat of feed water in kJ/kg K\n",
+ "U=114; # Overall heat transfer coefficient in W/m^2\n",
+ "mc=1; # massflowrate of feed water in kg/s\n",
+ "\n",
+ "#Calculation for Parallel flow\n",
+ "th2=th1-((Cc*(Tc2-Tc1))/(r*Ch)); # Outlet temperature of flue gas in degree celcius\n",
+ "Q=mc/3600*Cc*(Tc2-Tc1); # Heat transfer rate per kg/h of water flow\n",
+ "# Parallel flow \n",
+ "del_Tm=((th1-Tc1)-(th2-Tc2))/math.log ((th1-Tc1)/(th2-Tc2)); # Logarthamic Mean Temperature Difference in degree celcius\n",
+ "A=Q*10**3/(U*del_Tm); # Economiser surface area\n",
+ "\n",
+ "#Result for Parallel flow\n",
+ "print \" (a)Parallel flow\",\"\\nLogarthamic Mean Temperature Difference=\",round(del_Tm,1),\"degree celcius\",\n",
+ "print \"\\nEconomiser surface area =\",round(A,2),\"m^2\"\n",
+ "\n",
+ "#Calculation for Counter flow\n",
+ "# Counter flow\n",
+ "del_Tm=((th1-Tc2)-(th2-Tc1))/math.log ((th1-Tc2)/(th2-Tc1)); # Logarthamic Mean Temperature Difference in degree celcius\n",
+ "A=Q*10**3/(U*del_Tm); # Economiser surface area\n",
+ "\n",
+ "#Result for Counter flow\n",
+ "print\" \\n\\n(b) Counter flow\",\"\\nLogarthamic Mean Temperature Difference=\",round(del_Tm,1),\"degree celcius\",\n",
+ "print \"\\nEconomiser surface area =\",round(A,5),\"m^2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " (a)Parallel flow \n",
+ "Logarthamic Mean Temperature Difference= 68.6 degree celcius \n",
+ "Economiser surface area = 0.01 m^2\n",
+ " \n",
+ "\n",
+ "(b) Counter flow \n",
+ "Logarthamic Mean Temperature Difference= 89.1 degree celcius \n",
+ "Economiser surface area = 0.00767 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter5.ipynb b/Thermodynamics/Chapter5.ipynb
new file mode 100755
index 00000000..4cdef356
--- /dev/null
+++ b/Thermodynamics/Chapter5.ipynb
@@ -0,0 +1,1018 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a6720a62663d7e9e40aacc296786087fbeb2c2cce5605db25fafd27c8d98c84c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:FIRST LAW,INTERNAL ENERGY AND ENTHALPY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle 5.1, Page No:169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Q12=-250; # Heat transfer during Discharging of battery in kcal\n",
+ "W21=-0.53; # Consumption of electricity dring Charging process in kWh\n",
+ "\n",
+ "#Calculation\n",
+ "Q21=(W21*3600)-(Q12*4.1868); # First law of thermodynamics\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat loss from battery during charging process = \",Q21,\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat loss from battery during charging process = -861.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No:173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=5; # Mass of water in a tank in kg\n",
+ "T1=30; # Temperature of water at initial state (1) in degree celcius\n",
+ "T2=95; # Temperature of water at final state (2) in degree celcius\n",
+ "Qout=70; # Heat transfer from the water tank to the surrounding air in kJ\n",
+ "W=75; #Electric energy input to a stirrer inside water in kJ\n",
+ "mf=32.3; # Mass of fel in bomb in grams\n",
+ "u1=125.78; # Internal energy of water from steam table (uf at T1) in kJ/kg\n",
+ "u2=397.88; # Internal energy of water from steam table (uf at T2) in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "Qf=m*(u2-u1)-W+Qout; # From First law of thermodynamics\n",
+ "qf=Qf/(mf*10**-3); # Heat consumption per unit mass of fuel \n",
+ "\n",
+ "#Result\n",
+ "print \"Heat consumption per unit mass of fuel =\",round(qf,0),\"kJ/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat consumption per unit mass of fuel = 41966.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3, Page No:173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V=50; # Volume of water in a tank in litres\n",
+ "T1=120; # Temperature of water at initial state (1) in degree celcius\n",
+ "x1=0.6; # Dryness fraction at initial state (1)\n",
+ "T2=-10; # Temperature of water at final state (2) in degree celcius\n",
+ "vf1=0.00106; # specific volume of water from steam tables at T1 in m^3/kg\n",
+ "vg1=0.8919; # specific volume of water from steam tables at T1 in m^3/kg\n",
+ "v1=(1-x1)*vf1+x1*vg1; # Specific volume of misture of liquid and water at state (1)\n",
+ "m=(V*10**-3)/v1; # Mass of water in the tank\n",
+ "vs2=0.0010891; # Specific volume of saturated ice at T2 in m^3/kg\n",
+ "vg2=466.7; # Specific volume of water vapour at T2 in m^3/kg\n",
+ "v2=v1; # constant specific volume during cooling process\n",
+ "x2=(v2-vs2)/(vg2-vs2); # Dryness fraction at state (2)\n",
+ "uf1=503.5; # Specific internal energy at state (1) in kJ/kg\n",
+ "ug1=2529.3; # Specific internal energy at state (1) in kJ/kg\n",
+ "us2=-354.09; # Specific internal energy at state (2) in kJ/kg\n",
+ "ug2=2361.4; # Specific internal energy at state (2) in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "u1=(1-x1)*uf1+x1*ug1; # Total Specific internal energy at state (1) in kJ/kg\n",
+ "u2=(1-x2)*us2+x2*ug2; # Total Specific internal energy at state (2) in kJ/kg\n",
+ "Q12=m*(u2-u1); # Heat transfer during cooling pocess\n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer during cooling pocess = \",round(Q12,1),\"kJ (round off error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer during cooling pocess = -193.3 kJ (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No:174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V1=0.3; # Initial volume of water upto stop 1 in m^3\n",
+ "p1=1; # Initial pressure of water in bar\n",
+ "x1=0.2; # Dryness fraction at initial state (1)\n",
+ "p2=3; # Pressur required to lift the piston in bar\n",
+ "V4=0.45; # Volume of water upto stop 2 in m^3\n",
+ "vf1=0.001043; # Specific volume at state (1) from steam table in m^3/kg\n",
+ "vg1=1.694; # Specific volume at state (1) from steam table in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "v1=vf1+x1*(vg1-vf1); # Total Specific volume at state (1) from steam table in m^3/kg\n",
+ "m=V1/v1; # Mass of water\n",
+ "v3=V4/m; # Specific volume at stop 2\n",
+ "v2=v1; p3=p2; v4=v3; V3=V4; V2=V1; # From process diagram\n",
+ "# (a)\n",
+ "p4=0.361; # Final Pressure at v4 from steam table in Mpa\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a)\",\"\\nFianl pressure = \",p4,\"MPa\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b)\n",
+ "W14=p2*10**2*(V3-V2); # Work done in process \n",
+ "uf1=417.36; # Specific internal energ at initial state in kJ/kg\n",
+ "ufg1=2088.7; # Specific internal energ at initial state in kJ/kg\n",
+ "u1=uf1+x1*ufg1; # Total Specific internal energr at initial state in kJ.kg\n",
+ "u4=2550.2; # Specific internal energ at final state in kJ/kg\n",
+ "Q14=m*(u4-u1)+W14; # From first law of thermodynamics\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nWork done during the process = \",W14,\"kJ\",\"\\nHeat transfer during the process = \",round(Q14,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "Fianl pressure = 0.361 MPa\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Work done during the process = 45.0 kJ \n",
+ "Heat transfer during the process = 1560.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5, Page No:177"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V1=0.01; # Initial Volume of Freon 12 vapour in cylinder in m^3\n",
+ "T1=15; # Initial Temperature of Freon 12 vapour in degree celcius\n",
+ "p1=4.914; # Initial pressure (Psat at T1) in bar\n",
+ "p2=9; # Final pressure of Freon 12 vapour after compression in bar\n",
+ "T2=65; # Final temperature of Freon 12 vapour after compression in degree celcius\n",
+ "Q=-0.5; # Heat lost to surroundings during compresson process in kJ\n",
+ "v1=0.035413; # Initial specific volume of Freon 12 vapour from table in m^3/kg\n",
+ "\n",
+ "#Calculation\n",
+ "m=V1/v1; # Mass of vapour\n",
+ "hg1=193.644; # specific enthalpy of Freon 12 vopour at state 1 in kJ/kg\n",
+ "u1=hg1-(p1*10**2*v1); # Total Specific internal energy at state 1\n",
+ "h2=222.9; # specific enthalpy of Freon 12 vapour at state 2 in kJ/kg\n",
+ "v2=0.022537; # specific volume of Freon 12 vapour at state 2 in m^3/kg\n",
+ "u2=h2-(p2*10**2*v2); # Total Specific internal energy at state 2\n",
+ "W=-m*(u2-u1)+Q; # From first law of thermodynamics\n",
+ "\n",
+ "#Result\n",
+ "print \"Work of compression = \",round(W,2),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression = -7.95 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6, Page No:181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "tS=-10; # initial temperature of ice in degree celcius\n",
+ "ts=0; # Melting temperature of ice in degree celcius\n",
+ "Cs=1.94; # Specific heat of ice in kJ/kg k\n",
+ "m=1000; # Mass of ice in kg\n",
+ "tF=10; # Temperature of water after 24 hours in degree celcius\n",
+ "tf=0; # Freezing temperature of water in degree celcius\n",
+ "Cf=4.1868; # Specific heat of water in kJ/kg K\n",
+ "hsg=335; # Latent heat of fusion of ice in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "Q=m*(Cs*(ts-tS)+hsg+Cf*(tF-tf)); # Heat gain of water\n",
+ "Q_dot=Q/(24*3600); # Rate of cooling\n",
+ "\n",
+ "#Result\n",
+ "print \"Rate of cooling = \",round(Q_dot,3),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of cooling = 4.586 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No:188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T1=300; # Temperature of air at state 1 in Kelvin\n",
+ "T2=500; # Temperature of air at state 2 in Kelvin\n",
+ "m_=28.966; # Molecular weight oh air in kg\n",
+ "Cpoav=1.017; # Average value of specific heat of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a). change in enthalpy\n",
+ "h_=27.43*(T2-T1)+3.09*10**-3*(T2**2-T1**2)-0.2296*10**-6*(T2**3-T1**3); #change in enthalpy during process in kJ/kmol\n",
+ "h=h_/m_; # change in enthalpy during process in kJ/kg\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).change in enthalpy during process = \",round(h,2),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).change in enthalpy\n",
+ "h=Cpoav*(T2-T1); # change in enthalpy in kJ/kg\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).change in enthalpy during process with average specfic heat = \",h,\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).change in enthalpy during process = 205.69 kJ/kg\n",
+ "(b).change in enthalpy during process with average specfic heat = 203.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8, Page No:189"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=0.1; # mass of nitrogen gas in kg\n",
+ "V1=0.1; # Initial volme of nitrogen gas in m^3\n",
+ "p1=1.2; # Initial pressure of nitrogen gas in bar\n",
+ "V2=0.075; # Final volume of nitrogen gas in m^3\n",
+ "Cpo=1.041; # Specific heat at constant pressure of nitrogen in kJ/kg K\n",
+ "R=0.2969393; # Characteristic gas constant of nitrogen in Kj/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "T1=(p1*10**2*V1)/(m*R); # Initial temperature of nitrogen gas \n",
+ "T2=T1*(V2/V1); # Final temperature of nitrogen gas (constant pressure process)\n",
+ "Q=m*Cpo*(T2-T1); # Heat transfer to surroundings\n",
+ "W=p1*10**2*(V2-V1); # Work done\n",
+ "\n",
+ "#Result\n",
+ "print \"Final Temperature of nitrogen gas = \",round(T2,0),\"K\",\"\\nHeat transfer to surroundings = \",round(Q,1),\"kJ\"\n",
+ "print \"Work done = \",W,\"kJ\",\" The Work is done on the gas\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final Temperature of nitrogen gas = 303.0 K \n",
+ "Heat transfer to surroundings = -10.5 kJ\n",
+ "Work done = -3.0 kJ The Work is done on the gas\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9, Page No:190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p=1; # pressure inside piston cylinder arrangement in MPa\n",
+ "# stae 1 = saturated liquid\n",
+ "# state 2 = saturated vapour\n",
+ "# state 3 = superheated vapour\n",
+ "v1=0.001127; # specific volume at state 1 in m^3/kg\n",
+ "v2=0.19444; # specific volume at state 2 in m^3/kg\n",
+ "v3=0.4011; # specific volume at state 3 in m^3/kg\n",
+ "u1=761.68; # specific internal energy at state 1 in kK/kg\n",
+ "u2=2583.6; # specific internal energy at state 2 in kK/kg\n",
+ "u3=3296.8; # specific internal energy at state 3 in kK/kg\n",
+ "h1=762.81; # specific enthalpy at state 1 in kJ/kg\n",
+ "h2=2778.1; # specific enthalpy at state 2 in kJ/kg\n",
+ "h3=3697.9; # specific enthalpy at state 3 in kJ/kg\n",
+ "\n",
+ "#Calculation for (Method I)\n",
+ "w12=p*10**3*(v2-v1); # Work done during process 1-2\n",
+ "w23=p*10**3*(v3-v2); # Work done during process 2-3\n",
+ "wtotal=w12+w23; # Total work done\n",
+ "# Calculation of heat transfer\n",
+ "# Method I\n",
+ "q12=(u2-u1)+w12; # Heat transfer during process 1-2\n",
+ "q23=(u3-u2)+w23; # Heat transfer during process 2-3\n",
+ "qtotal=q12+q23; # Total Heat transfer\n",
+ "\n",
+ "#Results for (Method I)\n",
+ "print \"Work done = \",round(wtotal,0),\"kJ/kg\"\n",
+ "print \"\\n\\nCalculation of Heat Transfer\",\"\\nMethod I\",\"\\nHeat Transfer = \",round(qtotal,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (Method II)\n",
+ "# Method II\n",
+ "q12=h2-h1; # Heat transfer during process 1-2\n",
+ "q23=h3-h2; # Heat transfer during process 2-3\n",
+ "qtotal=q12+q23; # Total Heat transfer\n",
+ "\n",
+ "#Result for (Method II)\n",
+ "print \"\\nMethod II\",\"\\nHeat Transfer = \",round(qtotal,1),\"kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done = 400.0 kJ/kg\n",
+ "\n",
+ "\n",
+ "Calculation of Heat Transfer \n",
+ "Method I \n",
+ "Heat Transfer = 2935.1 kJ/kg\n",
+ "\n",
+ "Method II \n",
+ "Heat Transfer = 2935.1 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10, Page No:191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "#Variable declaration\n",
+ "p1=1; # initial pressure of air in piston cylinder arrangement in bar\n",
+ "T=300; # Temperature of air in piston cylinder arrangement in kelvin\n",
+ "p2=10; # Final pressure of air in piston cylinder arrangement in bar\n",
+ "R=0.287; # Characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "w=R*T*math.log(p1/p2); # Work done\n",
+ "q=w; # From first law of thermodynamics\n",
+ "\n",
+ "#Results\n",
+ "print \"The change in internal energy during the isothermal process is zero\"\n",
+ "print \"Work done = \",round(w,1),\"kJ/kg\",\"\\nHeat transfer = \",round(q,1),\"kJ/kg\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in internal energy during the isothermal process is zero\n",
+ "Work done = -198.3 kJ/kg \n",
+ "Heat transfer = -198.3 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No:195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=65;# (Error in textbook) # Pressure of air at state 1 in bar\n",
+ "v1=0.0135; # Volume of air at state 1 in m^3\n",
+ "v2=0.1; # Volume of air at state 2 in m^3\n",
+ "R=0.287; # Characteristic gas constant of air in kJ/kg K\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Adiabatic process\n",
+ "k=1.4; # Index of adiabatic process\n",
+ "p2=p1*(v1/v2)**k; # Pressure of air at state 2 \n",
+ "T1=p1*10**2*v1/R;# Tempewrature of air at state 1\n",
+ "T2=p2*10**2*v2/R;# Tempewrature of air at state 2\n",
+ "w=R*(T2-T1)/(1-k); # work done\n",
+ "q=0; # Adiabatic expansion process\n",
+ "delta_u=Cvo*(T2-T1); # Change in internal energy of air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Adiabatic Process\",\"\\nFinal Temperature = \",round(T2,1),\"K\",\"\\nWork done = \",round(w,1),\"kJ\"\n",
+ "print \"Change in internal energy of air = \",round(delta_u,1),\"kJ\",\"\\nHeat Ineraction = \",round(q,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Polytropic process\n",
+ "n=1.3; # Index of adiabatic process\n",
+ "p2=p1*(v1/v2)**n; # Pressure of air at state 2 \n",
+ "T1=p1*10**2*v1/R;# Tempewrature of air at state 1\n",
+ "T2=p2*10**2*v2/R;# Tempewrature of air at state 2\n",
+ "w=R*(T2-T1)/(1-n); # work done\n",
+ "delta_u=Cvo*(T2-T1); # Change in internal energy of air\n",
+ "q=delta_u+w; # Adiabatic expansion process\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Polytropic Process\",\"\\nFinal Temperature = \",round(T2,1),\"K\",\"\\nWork done = \",round(w,1),\"kJ\"\n",
+ "print \"Change in internal energy of air = \",round(delta_u,1),\"kJ\",\"\\nHeat Ineraction = \",round(q,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Isothermal process\n",
+ "T1=p1*10**2*v1/R;# Tempewrature of air at state 1\n",
+ "T2=T1; # Tempewrature of air at state 2\n",
+ "p2=p1*(v1/v2); # Pressure of air at state 2\n",
+ "w=R*T1*math.log (v2/v1); # work done\n",
+ "delta_u=Cvo*(T2-T1); # Change in internal energy of air\n",
+ "q=delta_u+w; # Adiabatic expansion process\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).Isothermal Process\",\"\\nFinal Temperature = \",round(T2,1),\"K\",\"\\nWork done = \",round(w,1),\"kJ\"\n",
+ "print \"Change in internal energy of air = \",round(delta_u,1),\"kJ\",\"\\nHeat Ineraction = \",round(q,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Adiabatic Process \n",
+ "Final Temperature = 137.2 K \n",
+ "Work done = 120.9 kJ\n",
+ "Change in internal energy of air = -120.7 kJ \n",
+ "Heat Ineraction = 0.0 kJ\n",
+ "\n",
+ "\n",
+ "(b).Polytropic Process \n",
+ "Final Temperature = 167.7 K \n",
+ "Work done = 132.1 kJ\n",
+ "Change in internal energy of air = -98.9 kJ \n",
+ "Heat Ineraction = 33.2 kJ\n",
+ "\n",
+ "\n",
+ "(c).Isothermal Process \n",
+ "Final Temperature = 305.7 K \n",
+ "Work done = 175.7 kJ\n",
+ "Change in internal energy of air = 0.0 kJ \n",
+ "Heat Ineraction = 175.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13, Page No:201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=10; # mass flow rate of chilled water in kg/s\n",
+ "V1=50; #velocity of chilled water at section 1 in m/s\n",
+ "z1=30; # Elevation of section 1 in m\n",
+ "V2=10; #velocity of chilled water at section 2 in m/s\n",
+ "z2=60; # Elevation of section 2 in m\n",
+ "h1=21; # Enthalpy of chilled water at section 1 in kJ/kg\n",
+ "h2=43; # Enthalpy of chilled water at section 2 in kJ/kg\n",
+ "W=35; # Rate of work done by pump in kW\n",
+ "g=9.80665; # Acceleration due to gravity in m/s^2\n",
+ "\n",
+ "#Calculation \n",
+ "Q=m*(h2-h1)+(m*(V2**2-V1**2)/2000)+(m*g*(z2-z1)/1000)-W; # Steady flow energy equation\n",
+ "\n",
+ "#Result\n",
+ "print \"The rate of Heat Transfer From Building (Error in textbook)= \",round(Q,2),\"kW\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of Heat Transfer From Building (Error in textbook)= 175.94 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14, Page No:206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Suction pressure of air in bar\n",
+ "p2=5; # Delivery pressure of air in bar\n",
+ "T1=310; # Suction Temperature of air in kelvin\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "# (a) Polytropic compression\n",
+ "T2=475; # Delivery Temperature of air in kelvin\n",
+ "Q=-0.15; # Heat loss to the cooling water in kW\n",
+ "Wpoly=-5.3; # Power consumption of compressor in kW\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "m=(-Wpoly+Q)/(Cpo*(T2-T1)); # mass flow rate of air from SSSF energy equation\n",
+ "n=1/((1-((math.log (T2/T1))/(math.log (p2/p1))))); # Index of polytropic process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Polytropic compression\",\"\\nmass flow rate of air = \",round(m,3),\"kg/s\",\"\\nIndex of polytropic process = \",round(n,4)\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b) Adiabatic compression\n",
+ "k=1.4; # Index of adiabatic process\n",
+ "Wad=-m*Cpo*T1*((p2/p1)**((k-1)/k)-1); # power consumption of compressor\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Adiabatic compression\",\"\\nPower consumption of compressor = \",round(Wad,2),\"kW\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Difference between specific work\n",
+ "wdiff=(abs(Wad)-abs(Wpoly))/m; # Difference between specific work\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Difference between specific work\",\"\\nDifference between specific work = \",round(wdiff,2),\"kJ/kg (roundoff error)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Polytropic compression \n",
+ "mass flow rate of air = 0.031 kg/s \n",
+ "Index of polytropic process = 1.3608\n",
+ "\n",
+ "(b).Adiabatic compression \n",
+ "Power consumption of compressor = -5.65 kW\n",
+ "\n",
+ "(c).Difference between specific work \n",
+ "Difference between specific work = 11.22 kJ/kg (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.15, Page No:208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "W=500; # Power output from steam turbine in MW\n",
+ "Q=10; # Heat loss to surroundings in MW\n",
+ "p1=12.5; # Pressure of staem at steam turbine inlet in MPa\n",
+ "p2=10; # Pressure of staem at steam turbine outlet in kPa\n",
+ "V1=50; # Velocity of steam at steam turbine inlet in m/s\n",
+ "V2=100; # Velocity of steam at steam turbine outlet in m/s\n",
+ "x2=0.85; # Quality of steam at steam turbine outlet\n",
+ "h1=3341.8; # Specific enthalpy of staem at inlet from steam table in kJ/kg\n",
+ "hf2=191.83; hg2=2584.7;# Specific enthalpies of fluid and steam at outlet from steam table in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "h2=(1-x2)*hf2+x2*hg2;# Specific enthalpy of staem at outlet in kJ/kg\n",
+ "m=(W-Q)*10**3/((h1-h2)+(V1**2-V2**2)/2000); # Mass flow rate of steam\n",
+ "\n",
+ "#Result\n",
+ "print \"Mass flow rate of steam = \",round(m,0),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate of steam = 441.0 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16, Page No:212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=3; # Pressre of air at state 1 in bar\n",
+ "p2=p1; # constant pressure process\n",
+ "T1=450; # Temperature of air at state 1 in kelvin\n",
+ "T2=1250; # Temperature of air at state 2 in kelvin\n",
+ "T3=1000; # Temperature of air at state 3 in kelvin\n",
+ "V3=50; # Velocity of air at state 3 in m/s\n",
+ "T4=800; # Temperature of air at state 4 in kelvin\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Combustion chamber\n",
+ "q=Cpo*(T2-T1); # Heat added to air\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Combustion chamber\",\"\\nHeat added to air = \",q,\"kJ/kg (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Turbine \n",
+ "k=1.4; # Index of adiabatic process\n",
+ "w=Cpo*(T2-T3)-V3**2/2000; # Work done \n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Turbine\",\"\\nWork done = \",w,\"kJ/kg (round off error)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Nozzle\n",
+ "V4=math.sqrt (2*Cpo*10**3*(T3-T4)+V3**2); # Velocity of air leaving the nozzle\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Nozzle\",\"\\nVelocity of air leaving the nozzle = \",round(V4,0),\"m/s (round off error)\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Pressure drop\n",
+ "p3=p2*(T3/T2)**(k/(k-1)); # Pressure of air leaving turbine\n",
+ "p4=p3*(T4/T3)**(k/(k-1)); # Pressure of air leaving nozzle\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n(d).Pressure drop\",\"\\nPressure of air leaving turbine = \",round(p3,3),\"bar\"\n",
+ "print \"Pressure of air leaving nozzle = \",round(p4,2),\"bar\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Combustion chamber \n",
+ "Heat added to air = 802.8 kJ/kg (round off error)\n",
+ "\n",
+ "(b).Turbine \n",
+ "Work done = 249.625 kJ/kg (round off error)\n",
+ "\n",
+ "(c).Nozzle \n",
+ "Velocity of air leaving the nozzle = 636.0 m/s (round off error)\n",
+ "\n",
+ "(d).Pressure drop \n",
+ "Pressure of air leaving turbine = 1.374 bar\n",
+ "Pressure of air leaving nozzle = 0.63 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.17, Page No:213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "V=1000; # Speed of aircraft in kmph\n",
+ "p1=0.35; # Ambient pressure in bar\n",
+ "T1=258; # Ambient temperature in kelvin\n",
+ "V1=V*1000/3600; # unit conversion kmph into m/s\n",
+ "p=1.01325; # Atmospheric pressure in bar\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "k=1.4; # Index of compression process\n",
+ "\n",
+ "#Calculation\n",
+ "T2=T1+(V1**2)/(2*Cpo*10**3); # The temperature after leaving inlet diffuser\n",
+ "p2=p1*(T2/T1)**(k/(k-1)); # Pressure after leaving inlet diffuser\n",
+ "r=p/p2; # Pressre ratio of compressor required for pressurization\n",
+ "\n",
+ "#Result\n",
+ "print \"The temperature after leaving inlet diffuser = \",round(T2,1),\"K\"\n",
+ "print \"Pressre ratio of compressor required for pressurization = \",round(r,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature after leaving inlet diffuser = 296.4 K\n",
+ "Pressre ratio of compressor required for pressurization = 1.78\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.18, Page No:214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=50; # Pressre of steam at diffuser inlet in kPa\n",
+ "T1=150; # Temperature of steam at diffuser inlet in degree celcius\n",
+ "V1=180; # Velocity of steam at diffuser inlet in m/s\n",
+ "A1=1000; # area of diffuser inlet in cm^2\n",
+ "V2=90; # Velocity of steam at diffuser outlet in m/s\n",
+ "p2=1; # Pressre of steam at diffuser outlet in bar\n",
+ "Q=120; # Heat loss to the surroundings in kW\n",
+ "v1=3.24; # Specific volume of steam from superheated steam table in m^3/kg at inlet\n",
+ "h1=2645.9; # # Specific enthalpy of steam from superheated steam table in m^3/kg at inlet\n",
+ "\n",
+ "#Calculation\n",
+ "m=V1*A1*10**-4/v1; # Mass flow rate of steam\n",
+ "q=Q/m; # Heat transfer per unit mass of steam\n",
+ "h2=q+h1+(V1**2-V2**2)/2000; # Specific enthalpy of steam from SSSF energy equationat outlet\n",
+ "v2=1.704; # Specific volume of steam from superheated steam table in m^3/kg at outlet\n",
+ "A2=m*v2/V2; # Area of diffuser exit and Answer given in the textbook is wrong\n",
+ "\n",
+ "#Result\n",
+ "print \"Area of diffuser exit = \",round(A2*10**4,0),\"cm^2 (Answer was wrong in textbook because that\" \n",
+ "print \"the value considered in the textbook for V2 is incorrect. So there is a difference in solution.)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of diffuser exit = 1052.0 cm^2 (Answer was wrong in textbook because that\n",
+ "the value considered in the textbook for V2 is incorrect. So there is a difference in solution.)\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.19, Page No:217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import matrix\n",
+ "from numpy import linalg\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=0.15; # Pressure of Freon-12 gas in MPa\n",
+ "T1=10; # Temperature of Freon-12 gas in degree celcius\n",
+ "T2=35; # Temperature of Freon-12 gas in degree celcius\n",
+ "h1=196.762; # Specific enthalpy of Freon-12 from table at 1 in kJ/kg \n",
+ "h2=69.49; # Specific enthalpy of Freon-12 from table at 2 in kJ/kg \n",
+ "h3=178.54; # Specific enthalpy of Freon-12 from table at 3 in kJ/kg \n",
+ "\n",
+ "#Calculation\n",
+ "# For solving Conservation of mass and SSSF energy equations\n",
+ "A=[[1,-1],[h3,-h2]];\n",
+ "B=[[1] ,[h1]];\n",
+ "M=linalg.solve(A, B) \n",
+ "\n",
+ "#Result\n",
+ "print \"Mass of saturated liquid at 35 oC = \",round(M.item(1),3),\"kg/s\"\n",
+ "print \"Mass of saturated vapour at 0.15 MPa = \",round(M.item(0),3),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of saturated liquid at 35 oC = 0.167 kg/s\n",
+ "Mass of saturated vapour at 0.15 MPa = 1.167 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.20, Page No:219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=15;# Inlet pressure of condenser in kPa\n",
+ "x=0.92; # Quality of steam\n",
+ "ms=25; # mass flow rate of steam in kg/s\n",
+ "d_t=12; # temperature rise of water \n",
+ "Cpw=4.1868; # Specific heat of water in kJ/kg K\n",
+ "hfg=225.94; h4_3=2599.1; # specific enthalpy in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "h1=(1-x)*hfg+x*h4_3; # specific enthalpy \n",
+ "h2=225.94; # specific enthalpy in kJ/kg\n",
+ "Q=ms*(h1-h2); # Heat transfer rate in condenser\n",
+ "mw=Q/(Cpw*d_t); # Mass flow rate of water \n",
+ "\n",
+ "#Result\n",
+ "print \"Heat transfer rate in condenser = \",round(Q,0),\"kW\",\"\\nMass flow rate of water = \",round(mw,1),\"kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transfer rate in condenser = 54583.0 kW \n",
+ "Mass flow rate of water = 1086.4 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter6.ipynb b/Thermodynamics/Chapter6.ipynb
new file mode 100755
index 00000000..2e760ba9
--- /dev/null
+++ b/Thermodynamics/Chapter6.ipynb
@@ -0,0 +1,1076 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:009f400f836702cde3e9c0f5d144589b0ec3eb912d883ee490ce810f95fed24c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06:SECOND LAW OF THERMODYNAMICS AND ENTROPY"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No:259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "QH=500; # Heat supplied in kJ\n",
+ "QL=200; # Heat rejected in kJ\n",
+ "TH=720; # Resorvior Temperature in kelvin\n",
+ "TL=360; # Resorvior Temperature in kelvin\n",
+ "W=260; # Work developed in kJ\n",
+ "\n",
+ "#Calculation\n",
+ "e_max=1-TL/TH; # maximum efficiency\n",
+ "e_clamied=W/QH; # Efficiency clamied\n",
+ "\n",
+ "#Result\n",
+ "if e_clamied<e_max:\n",
+ " print \"It obeys the second law of thermodynamics.The claim is true\"\n",
+ "else:\n",
+ " print \"It violates the second law of thermodynamics.The claim is False\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "It violates the second law of thermodynamics.The claim is False\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No:260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "QH=325; # Heat supplied in kJ\n",
+ "QL=125; # Heat rejected in kJ\n",
+ "TH=1000; # Resorvior Temperature in kelvin\n",
+ "TL=400; # Resorvior Temperature in kelvin\n",
+ "W=200; # Work developed in kJ\n",
+ "\n",
+ "#Calculation\n",
+ "e_carnot=1-TL/TH; # maximum efficiency\n",
+ "e_clamied=W/QH; # Efficiency clamied\n",
+ "\n",
+ "#Result\n",
+ "print \"e_carnot =\",e_carnot\n",
+ "print \"e_clamied=\",round(e_clamied,3) \n",
+ "if e_carnot==e_clamied:\n",
+ " print \"\\nThe machine is reversible\"\n",
+ "elif e_carnot>e_clamied:\n",
+ " print \"\\nThe machine is irreversible\"\n",
+ "else:\n",
+ " print \"\\nHere e_clamied > e_carnot so the cyclic machine is impossible.\"\n",
+ "\n",
+ "print \"It would be reversible if its thermal efficiency is equal to Carnot efficiency,\"\n",
+ "print \"and irreversible if it is less than Carnot efficiency.\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "e_carnot = 0.6\n",
+ "e_clamied= 0.615\n",
+ "\n",
+ "Here e_clamied > e_carnot so the cyclic machine is impossible.\n",
+ "It would be reversible if its thermal efficiency is equal to Carnot efficiency,\n",
+ "and irreversible if it is less than Carnot efficiency.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page No:260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# Air conditioning unit\n",
+ "TL=278; # Operating temperature in kelvin\n",
+ "TH=318; # Operating temperature in kelvin\n",
+ "\n",
+ "#Calculation\n",
+ "COP1=TL/(TH-TL); # COP of Air conditioning unit\n",
+ "QL=1; # For some calculation purpose\n",
+ "W1=QL/COP1; # Work input of Air conditioning unit\n",
+ "# Food refrigeration unit\n",
+ "TL=258; # Operating temperature in kelvin\n",
+ "TH=318; # Operating temperature in kelvin\n",
+ "COP2=TL/(TH-TL); # COP of Food refrigeration unit\n",
+ "W2=QL/COP2; # Work input of Food refrigeration unit\n",
+ "Wper=(W2-W1)/W1; # Increase in work input\n",
+ "\n",
+ "#Result\n",
+ "print \"Increase in work input = \",round(Wper*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in work input = 62.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No:261"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "#(a).Summer air conditioning (cooling)\n",
+ "TL=298; # Operating temperature in kelvin\n",
+ "TH=318; # Operating temperature in kelvin\n",
+ "q=0.75; # Heat Transfer from fabric of room per degree of temperature difference in kW\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "QL=q*(TH-TL); # Heat Transfer from fabric of room\n",
+ "COPc=TL/(TH-TL); # COP of Air conditioning unit\n",
+ "W=QL/COPc; # Work input of Air conditioning unit\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Summer air conditioning (cooling)\",\"\\nWork input of Air conditioning unit = \",round(W,0),\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Winter air conditioning (recerse cycle heating)\n",
+ "TH=293; # Operating temperature in kelvin\n",
+ "TL=(-(-2*q*TH)-math.sqrt ((-2*q*TH)**2-(4*q*(q*TH**2-TH))))/(2*q);# Lowest outdoor Temperature by root\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Winter air conditioning (recerse cycle heating)\",\"\\nLowest outdoor Temperature = \",round(TL,0),\"K\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Summer air conditioning (cooling) \n",
+ "Work input of Air conditioning unit = 1.0 kW\n",
+ "\n",
+ "(b).Winter air conditioning (recerse cycle heating) \n",
+ "Lowest outdoor Temperature = 273.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page No:263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "# (a).For the refrigerator \n",
+ "TL=258; # Operating temperature in kelvin\n",
+ "TH=313; # Operating temperature in kelvin\n",
+ "QL=3.5167; # Ton of refrigeration in kW\n",
+ "\n",
+ "#Calculation for(a)\n",
+ "COP=TL/(TH-TL); # COP of Refrigeration unit\n",
+ "W=QL/COP; # Power comsumption of refrigerator\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).For the refrigerator\",\"\\nPower comsumption of refrigerator = \",round(W,2),\"kW\"\n",
+ "\n",
+ "#calculation for (b)\n",
+ "# (b). For the freezer\n",
+ "TL=248; # Operating temperature in kelvin\n",
+ "TH=313; # Operating temperature in kelvin\n",
+ "COP=TL/(TH-TL); # COP of Freezer unit\n",
+ "QL=W*COP; # Refrigeration produced\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b). For the freezer\",\"\\nRefrigeration produced = \",round(QL,3),\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).For the refrigerator \n",
+ "Power comsumption of refrigerator = 0.75 kW\n",
+ "\n",
+ "(b). For the freezer \n",
+ "Refrigeration produced = 2.86 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page No:277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "Psat=200;#Pressure of water in kPa\n",
+ "Tsat=393.38; # Saturation temperaure at Psat in kelvin\n",
+ "# (i).From the equation Tds=du+pdv \n",
+ "# Following are from steam table at Psat\n",
+ "ufg=2025; # specific internal energy of vapourization in kJ/kg\n",
+ "vg=0.8857; # specific volume in m^3/kg\n",
+ "vf=0.001061; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculation for (i)\n",
+ "sfg=(ufg/Tsat)+(Psat*(vg-vf)/Tsat); # specific entropy of vapourization\n",
+ "\n",
+ "#Result for (i)\n",
+ "print \"(i).From the equation Tds=du+pdv \",\"\\nspecific entropy of vapourization = \",round(sfg,4),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (ii)\n",
+ "# (ii).From the equation Tds=dh-vdp\n",
+ "hfg=2201.9; # Specific enthalpy of vapourization in kJ/kg\n",
+ "sfg=hfg/Tsat; # specific entropy of vapourization\n",
+ "\n",
+ "#Result for (ii)\n",
+ "print \"\\n(ii).From the equation Tds=dh-vdp \",\"\\nspecific entropy of vapourization = \",round(sfg,4),\"kJ/kg K\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i).From the equation Tds=du+pdv \n",
+ "specific entropy of vapourization = 5.5975 kJ/kg K\n",
+ "\n",
+ "(ii).From the equation Tds=dh-vdp \n",
+ "specific entropy of vapourization = 5.5974 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No:277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=1; # Pressure of steam at state 1 in bar\n",
+ "T=473; # Temperature of steam at state 1 in kelvin\n",
+ "\n",
+ "#Calculation for (i)\n",
+ "# (i).Pressure after compression\n",
+ "p2=1.5538; # Pressure after compression at (Psat)T from steam table in MPa\n",
+ "\n",
+ "#Result for (i)\n",
+ "print \"(i).Pressure after compression\",\"\\nPressure after compression = \",p2,\"MPa\"\n",
+ "\n",
+ "#Calcultion for (ii)\n",
+ "# (ii).Heat Transfer and work done during the process\n",
+ "# Following are from steam table \n",
+ "s2=6.4323; # specific entropy of steam at state 2 in kJ/kg K\n",
+ "s1=7.8343; # specific entropy of steam at state 1 in kJ/kg K\n",
+ "u2=2595.3; # specific internal energy of steam at state 2 in kJ/kg \n",
+ "u1=2658.1; # specific internal energy of steam at state 1 in kJ/kg \n",
+ "q=T*(s2-s1); # Heat transfer during the process\n",
+ "w=q-(u2-u1); # Work done during the process\n",
+ "\n",
+ "#Result for (ii)\n",
+ "print \"\\n(ii).Heat Transfer and work done during the process\",\"\\nHeat transfer during the process = \",round(q,0),\"kJ\"\n",
+ "print \"Work done during the process = \",round(w,1),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i).Pressure after compression \n",
+ "Pressure after compression = 1.5538 MPa\n",
+ "\n",
+ "(ii).Heat Transfer and work done during the process \n",
+ "Heat transfer during the process = -663.0 kJ\n",
+ "Work done during the process = -600.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page No:278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=6; # Initial pressure of steam in MPa\n",
+ "T1=500; # Initial temperature of steam in degree celcius\n",
+ "p2=10; # Final pressure of steam in bar\n",
+ "# From steam tables\n",
+ "s1=6.8803; sf2=1.3026; sfg2=6.0568; # specific entropy in kJ/kg K\n",
+ "u1=3082.2; uf2=761.68; ufg2=1822; # specific internal energy in kJ/kg\n",
+ "v1=0.05665; vf2=0.001043; vg2=1.694; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculation\n",
+ "x2=(v1-vf2)/(vg2-vf2);# Quality of steam\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg \n",
+ "s2=sf2+x2*sfg2; # specific entropy in kJ/kg K\n",
+ "s21=s2-s1; # Entropy change\n",
+ "q=u2-u1; # Heat transfer\n",
+ "\n",
+ "#Result\n",
+ "print \"Entropy change of the process = \",round(s21,3),\"kJ/kg\",\"\\nHeat transfer for the process =\",round(q,1),\"kJ\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change of the process = -5.379 kJ/kg \n",
+ "Heat transfer for the process = -2260.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10, Page No:280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=3; # initial pressure of air in bar\n",
+ "T1=200; # initial temperature of air in degree celcius\n",
+ "p2=1.5; # final pressure of air in bar\n",
+ "T2=105; # final temperature of air in degree celcius\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "delta_s= Cpo*math.log ((T2+273)/(T1+273))- R*math.log (p2/p1) # change in entropy during irreversible process\n",
+ "#The value of p2 is taken as wrong in the textbook\n",
+ "\n",
+ "#Result\n",
+ "print \"change in entropy during irreversible process = \",round(delta_s,4),\"kJ/kg K (Answer in the textbook was wrong)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy during irreversible process = -0.0261 kJ/kg K (Answer in the textbook was wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page No:281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=5; # Initial pressure of argon gas in bar\n",
+ "T1=30; # Initial temperature of argon gas in degree celcius\n",
+ "v1=1; # Initial volume of argon gas in m^3 by assumption\n",
+ "v2=2*v1; # Final volume of argon gas in m^3\n",
+ "R=8.3144/40; # Characteristic gas constant of argon gas in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "p2=p1*(v1/v2); # Final pressure of argon gas\n",
+ "delta_s= R*math.log (v2/v1); # change in entropy (choosing the reversible isothermal path)\n",
+ "\n",
+ "#Result\n",
+ "print \"Final pressure of argon gas =\",p2,\"bar\"\n",
+ "print \"change in entropy (choosing the reversible isothermal path) = \",round(delta_s,4),\"kJ/kg K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure of argon gas = 2.5 bar\n",
+ "change in entropy (choosing the reversible isothermal path) = 0.1441 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No:284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Atmospheric pressure in bar\n",
+ "T1=348; # Atmospheric temperature in kelvin\n",
+ "V1=800; # Volume of air sucked into the cylinder in cm^3\n",
+ "p2=15; # pressure of air after compression in bar\n",
+ "V2=V1/8; # volume of air after compression in cm^3\n",
+ "p3=50; # pressure of air after heat addition in bar\n",
+ "Cvo=0.7165; # Specific heat at constant volme in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Index of compression process\n",
+ "n=math.log (p2/p1)/math.log (V1/V2); # Index of compression process\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Index of compression process\"\n",
+ "print \"Index of compression process = \",round(n,1),\" which is less than 1.4. The compression process is polytropic.\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Change in entropy of air during each process\n",
+ "m=(p1*10**2*V1*10**-6)/(R*T1); # Mass of air in cylinder\n",
+ "T2=T1*(p2/p1)*(V2/V1); # Temperature after compression\n",
+ "T3=T2*(p3/p2); # Temperature after heat addition\n",
+ "delta_s21=m*(Cvo*math.log (T2/T1)+R*math.log (V2/V1)); # change in entropy during compression\n",
+ "delta_s32=m*Cvo*math.log (T3/T2); #change in entropy during heat addition\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Change in entropy of air during each process\"\n",
+ "print \"change in entropy during compression = (Error in textbook)\",round(delta_s21,6),\"kJ/K\"\n",
+ "print \"change in entropy during heat addition = (Error in textbook)\",round(delta_s32,6),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Heat transfer during polytropic compression process\n",
+ "k=1.4;# Index of isentropic preocess\n",
+ "Q=m*Cvo*((k-n)/(1-n))*(T2-T1); # Heat transfer during polytropic compression process\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n(c).Heat transfer during polytropic compression process\"\n",
+ "print \"Heat transfer during polytropic compression process = (Error in textbook)\",round(Q,4),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Index of compression process\n",
+ "Index of compression process = 1.3 which is less than 1.4. The compression process is polytropic.\n",
+ "\n",
+ "(b).Change in entropy of air during each process\n",
+ "change in entropy during compression = (Error in textbook) -0.000117 kJ/K\n",
+ "change in entropy during heat addition = (Error in textbook) 0.000691 kJ/K\n",
+ "\n",
+ "(c).Heat transfer during polytropic compression process\n",
+ "Heat transfer during polytropic compression process = (Error in textbook) -0.0565 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No:287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.3; # initial pressure of ateam in MPa\n",
+ "T1=350; # Initial temperature of steam in degree celcius\n",
+ "# following are the values taken from steam table for initial state \n",
+ "v1=0.9535; # specific volume in m^3/kg\n",
+ "u1=2886.2; # specific internal energy in kJ/kg\n",
+ "s1=7.868; # specific entropy in kJ/kg K\n",
+ "v2=2*v1; # final specific volume of steam\n",
+ "u2=u1;\n",
+ "# following are the values taken from steam table final state\n",
+ "T2=349; # Final temperature of steam in degree celcius\n",
+ "p2=0.167; # Final pressure of ateam in MPa\n",
+ "s2=8.164; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "delta_s=s2-s1; # Entropy generation\n",
+ "LW=(T1+T2)/2 * delta_s; # Lost work\n",
+ "\n",
+ "#Result\n",
+ "print \"Entropy Generation =\",round(delta_s,3),\"kJ/kg K\",\"\\nLost work = \",round(LW,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy Generation = 0.296 kJ/kg K \n",
+ "Lost work = 103.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No:291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1; # Mass of water in kg\n",
+ "T1=300; # Temperature of water in kelvin\n",
+ "C=4.1868; # Specific heat in kJ/kg K\n",
+ "# (a). Heat Transfer\n",
+ "T2=500; # Temperature of heat reservoir in kelvin\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "Q=m*C*(T2-T1); # Heat transfer\n",
+ "del_Swater=m*C*math.log (T2/T1); # Entropy change of water\n",
+ "del_Sreservoir=-Q/T2; # Entropy change of reservoir\n",
+ "del_Suniverse=del_Swater+del_Sreservoir; # Entropy change of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Heat Transfer\",\"\\nEntropy change of universe =\",round(del_Suniverse,4),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Heat Transfer in each reservoir\n",
+ "T2=400; # Temperature of intermediate reservoir in kelvin\n",
+ "T3=500; # Temperature of heat reservoir in kelvin\n",
+ "Q=m*C*(T3-T2); # Heat transfer\n",
+ "del_Swater=m*C*(math.log (T2/T1)+math.log (T3/T2)); # Entropy change of water\n",
+ "del_SreservoirI=-Q/T2; # Entropy change of reservoir I\n",
+ "del_SreservoirII=-Q/T3; # Entropy change of reservoir II\n",
+ "del_Suniverse=del_Swater+del_SreservoirI+del_SreservoirII; # Entropy change of universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Heat Transfer in each reservoir\",\"\\nEntropy change of universe =\",round(del_Suniverse,5),\"kJ/K\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Heat Transfer \n",
+ "Entropy change of universe = 0.464 kJ/K\n",
+ "\n",
+ "(b).Heat Transfer in each reservoir \n",
+ "Entropy change of universe = 0.25466 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.16, Page No:292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=1; # Mass of saturated steam in kg\n",
+ "T=100; # Teamperature of steam in degree celcius\n",
+ "T0=303; # temperature of Surroundings in kelvin\n",
+ "hfg=2257; # Latent heat of evaporation in kJ/kg\n",
+ "sfg=6.048; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Entropy change\n",
+ "Q=m*hfg; # Heat transfer\n",
+ "del_Ssystem=-m*sfg; # Change of entropy of system\n",
+ "del_Ssurr=Q/T0; # Change of entropy of surroundings\n",
+ "del_Suniverse=del_Ssystem+del_Ssurr; # Change of entropy of universe\n",
+ "\n",
+ "#Ressult for (a)\n",
+ "print \"(a).Entropy change\",\"\\nChange of entropy of system =\",del_Ssystem,\"kJ/K\"\n",
+ "print \"Change of entropy of surroundings =\",round(del_Ssurr,4),\"kJ/K\"\n",
+ "print \"Change of entropy of universe =\",round(del_Suniverse,4),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Effect of heat transfer\n",
+ "del_Suniverse=0; # process is reversible\n",
+ "del_Ssurr=del_Suniverse-del_Ssystem; #Change of entropy of surroundings\n",
+ "QH=hfg; # Heat transfer from the condensing steam to reversible heat engine\n",
+ "QL=T0*del_Ssurr; # Heat receiveded by the surroundins reversible heat engine\n",
+ "W=QH-QL; #work output of reversible heat engine\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Effect of heat transfer\",\"\\nHeat transfer from the condensing steam to reversible heat engine =\",QH,\"kJ\"\n",
+ "print \"Heat receiveded by the surroundins reversible heat engine =\",round(QL,1),\"kJ\"\n",
+ "print \"work output of reversible heat engine =\",round(W,1),\"kJ\"\n",
+ "print \"Difference between QH & QL is converted into work output in a reversible cyclic process\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Entropy change \n",
+ "Change of entropy of system = -6.048 kJ/K\n",
+ "Change of entropy of surroundings = 7.4488 kJ/K\n",
+ "Change of entropy of universe = 1.4008 kJ/K\n",
+ "\n",
+ "(b).Effect of heat transfer \n",
+ "Heat transfer from the condensing steam to reversible heat engine = 2257 kJ\n",
+ "Heat receiveded by the surroundins reversible heat engine = 1832.5 kJ\n",
+ "work output of reversible heat engine = 424.5 kJ\n",
+ "Difference between QH & QL is converted into work output in a reversible cyclic process\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No:293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1; # Mass of ice in kg\n",
+ "T1=258;# Temperature of ice in kelvin\n",
+ "Tm=273; # Melting point of ice in kelvin\n",
+ "T2=303; # temperature of Surroundings in kelvin\n",
+ "Cpice=2.095; # Specific heat of ice in kJ/kg K\n",
+ "hsg=333.5; # Latent heat of fusion in kJ/kg\n",
+ "Cpw=4.1868; # Specific heat of water in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).Change of entropy\n",
+ "Q=m*(Cpice*(Tm-T1)+hsg+Cpw*(T2-Tm));# Heat transfer\n",
+ "del_Ssystem=m*((Cpice*math.log (Tm/T1))+(hsg/Tm)+(Cpw*math.log (T2/Tm)));# Change of entropy of system\n",
+ "del_Ssurr=-Q/T2; # Change of entropy of surroundings\n",
+ "del_Suniverse=del_Ssystem+del_Ssurr; # Change of entropy of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Entropy change\",\"\\nChange of entropy of system =\",round(del_Ssystem,4),\"kJ/K\"\n",
+ "print \"Change of entropy of surroundings =\",round(del_Ssurr,4),\"kJ/K\"\n",
+ "print \"Change of entropy of universe =\",round(del_Suniverse,4),\"kJ/K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).The minimum work of restoring water back to ice\n",
+ "QL=Q; # Refrigerating effect\n",
+ "W=T2*del_Ssystem-QL; # The minimum work of restoring water back to ice\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).The minimum work of restoring water back to ice = \",round(W,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Entropy change \n",
+ "Change of entropy of system = 1.7765 kJ/K\n",
+ "Change of entropy of surroundings = -1.6189 kJ/K\n",
+ "Change of entropy of universe = 0.1576 kJ/K\n",
+ "\n",
+ "(b).The minimum work of restoring water back to ice = 47.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No:297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "TA=323;# Temperature at section A in kelvin\n",
+ "PA=125; # Pressure at section A in kPa\n",
+ "TB=287;# Temperature at section B in kelvin\n",
+ "PB=100; # Pressure at section B in kPa\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "SBA=(Cpo*math.log (TB/TA))-(R*math.log (PB/PA)); # Change in entropy\n",
+ "\n",
+ "#Result\n",
+ "print \"Change in entropy from B to A =\",SBA,\"kJ/kg (Error in Textbook)\",\"\\nHence SA>SB. Therefore B to A\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy from B to A = -0.054541503612 kJ/kg (Error in Textbook) \n",
+ "Hence SA>SB. Therefore B to A\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No:298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=12.5; # Pressure of steam at inlet in MPa\n",
+ "T1=500; # Temperature of steam at inlet in degree celcius\n",
+ "V1=50; # Velocity of steam at inlet in m/s\n",
+ "p2=10; # Pressure of steam at outlet in kPa\n",
+ "V2=100; # Velocity of steam at outlet in m/s\n",
+ "# (a).Actual expansion\n",
+ "x2=0.85; # Quality of steam\n",
+ "# From steam table\n",
+ "h1=3341.8; hf2=191.83; hg2=2584.7; # specific enthalpy in kJ/kg \n",
+ "s1=6.4618; sf2=0.6493; sfg2=7.5009; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "h2a=(1-x2)*hf2+x2*hg2; # specific enthalpy in kJ/kg \n",
+ "wa=(h1-h2a)+((V1**2-V2**2)/2000); # Actual work output\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Actual work output of turbine = \",round(wa,2),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Reversible adiabatic expansion\n",
+ "x2s=(s1-sf2)/sfg2; # Quality of steam after reversible adiabatic expansion\n",
+ "h2s=(1-x2s)*hf2+x2s*hg2; # specific enthalpy in kJ/kg \n",
+ "ws=(h1-h2s)+((V1**2-V2**2)/2000); # Reversible adiabatic work output\n",
+ "L=ws-wa; # Lost of work\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Reversible adiabatic expansion\",\"\\nReversible adiabatic work output = \",round(ws,1),\"kJ/kg\"\n",
+ "print \"Lost of work due to irreversibity of expansion process =\",round(L,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Entropy Generation\n",
+ "s2a=sf2+x2*sfg2; # actual specific entropy in kJ/kg K\n",
+ "Sgen=s2a-s1; # Entropy generation\n",
+ "\n",
+ "#Reult for (c)\n",
+ "print \"\\n(c).Entropy Generation =\",round(Sgen,4),\"kJ/kg K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Actual work output of turbine = 1112.28 kJ\n",
+ "\n",
+ "(b).Reversible adiabatic expansion \n",
+ "Reversible adiabatic work output = 1292.0 kJ/kg\n",
+ "Lost of work due to irreversibity of expansion process = 179.7 kJ/kg\n",
+ "\n",
+ "(c).Entropy Generation = 0.5633 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No:302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # pressure at state 1 in MPa\n",
+ "p2=6; # Pressure at state 2 in MPa\n",
+ "# (a).Pump work for water\n",
+ "vf1=0.001043; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "wp=-vf1*(p2-p1)*10**3; # Pump work for water\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Pump work for water =\",round(wp,2),\"kJ\"\n",
+ "\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).For steam\n",
+ "h1=2675.5;# specific enthalpy in kJ/kg \n",
+ "s1=7.3595;# specific entropy in kJ/kg K\n",
+ "# From superheated steam table\n",
+ "t2=675; # Temperature at state 2 in degree celcius\n",
+ "h2=3835.3;# specific enthalpy in kJ/kg \n",
+ "\n",
+ "#Calculation for (b)\n",
+ "wc=-(h2-h1); # Compressor work for steam\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).Compressor work for steam =\",wc,\"kJ/kg\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Pump work for water = -6.15 kJ\n",
+ "(b).Compressor work for steam = -1159.8 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No:303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "# (a).Restoring to initial state by throttling process\n",
+ "T1=303; #Temperature of air at state 1 in kelvin\n",
+ "p1=1; #Pressure of air at state 1 in bar\n",
+ "p2=5; #Pressure of air at state 2 in bar\n",
+ "p3=1;#Pressure of air at state 3 in bar\n",
+ "T3=303; #Temperature of air at state 3 in kelvin\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "k=1.4; # Index of reversible adiabatic compression\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "T2=T1*(p2/p1)**((k-1)/k); # Temperature after reversible adiabatic compression\n",
+ "w12=Cpo*(T2-T1); # Work of reversible adiabatic compression\n",
+ "s21=0; # Entropy change of air\n",
+ "s32=-R*math.log (p3/p2); # Entropy change \n",
+ "s31=s32; # Net entropy change of air\n",
+ "d_Ssurr=0; # Entropy change of surroundings because There is no heat transfer\n",
+ "d_Suniv=s31+d_Ssurr; # Net Entropy change of universe\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Restoring to initial state by throttling process\",\"\\nWork of reversible adiabatic compression = \",round(w12,1),\"kJ/kg\"\n",
+ "print \"Net Entropy change of universe = \",round(d_Suniv,4),\"kJ/kg K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Restoring to initial state by by completing cycle\n",
+ "T0=298; # Temperature of surroundings in kelvin\n",
+ "d_Ssystem=0; # Entropy change of systrem is zero because it is cyclic process\n",
+ "q31=Cpo*(T2-T3); # Heat rejected to the surroundings\n",
+ "d_Ssurr=q31/T0; # Entropy change of surroundings\n",
+ "d_Suniv=d_Ssystem+d_Ssurr; # Increase in entropy of the universe\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Restoring to initial state by by completing cycle\",\"\\nNet Entropy change of universe = \",round(d_Suniv,3),\"kJ/kg K\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Restoring to initial state by throttling process \n",
+ "Work of reversible adiabatic compression = 177.5 kJ/kg\n",
+ "Net Entropy change of universe = 0.4619 kJ/kg K\n",
+ "\n",
+ "(b).Restoring to initial state by by completing cycle \n",
+ "Net Entropy change of universe = 0.596 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter7.ipynb b/Thermodynamics/Chapter7.ipynb
new file mode 100755
index 00000000..a9e9200a
--- /dev/null
+++ b/Thermodynamics/Chapter7.ipynb
@@ -0,0 +1,932 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0bbd88c617eea37997c2d1895d18307cb6167940684ace795d89722f10167f53"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7:COMBINED FIRST AND SECOND LAWS APPLICATION TO PROCESSES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1, Page No:316"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Initial pressure of fluid in MPa\n",
+ "T1=250; # Initial temperture of fluid in degree celcius\n",
+ "V=0.28; # Volume of container in m^3\n",
+ "p2=0.35; # Initial pressure of the fluid in MPa\n",
+ "# (a).Water\n",
+ "v1=0.2327; # specific volume of vapour from steam table at state 1 in m^3/kg\n",
+ "v2=v1; # constant volume process\n",
+ "vf2=0.001079; vfg2=0.5232; # specific volume of vapour from steam table at state 2 in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "m=V/v1; # mass of steam\n",
+ "x2=(v2-vf2)/vfg2; # quality of steam at state 2\n",
+ "t2=138.88; # Final temperature of fluid in degree celcius (saturation temperature at p2)\n",
+ "# following are the values taken from steam tables\n",
+ "u1=2709.9; # specific internal energy at state 1 in kJ/kg\n",
+ "s1=6.9247; # Specific entropy at state 1 in kJ/kg K\n",
+ "uf2=582.95; ug2=2548.9; # specific internal energy at state 2 in kJ/kg\n",
+ "sf2=1.7245; sg2=6.9405; # Specific entropy at state 2 in kJ/kg K\n",
+ "u2=(1-x2)*uf2+x2*ug2; # specific internal energy at state 2 \n",
+ "s2=(1-x2)*sf2+x2*sg2; # specific enropy at state 2 \n",
+ "Q=m*(u2-u1); # Heat transferred\n",
+ "S21=m*(s2-s1); # Entropy change\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Water\",\"Final Temperature = \",t2,\"oC\",\"\\nHeat transferred = \",round(Q,3),\"kJ (answer mentioned in the textbook is wrong)\"\n",
+ "print \"Entropy change = \",round(S21,3),\"kJ/kg K (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "m=(p1*10**3*V)/(R*(T1+273)); # Mass of air\n",
+ "T2=(p2/p1)*(273+T1); # Final temperature of air\n",
+ "Q=m*Cvo*(T2-(T1+273)); # Heat transferred\n",
+ "S21=m*Cvo*math.log (T2/(273+T1)); # Change in entropy\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"Final Temperature = \",round(T2,0),\"oC\",\"\\nHeat transferred = \",round(Q,0),\"kJ (roundoff error)\"\n",
+ "print \"Entropy change = \",round(S21,3),\"kJ/kg K (round off error)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Water Final Temperature = 138.88 oC \n",
+ "Heat transferred = -1512.051 kJ (answer mentioned in the textbook is wrong)\n",
+ "Entropy change = -3.479 kJ/kg K (round off error)\n",
+ "\n",
+ "(b).Air Final Temperature = 183.0 oC \n",
+ "Heat transferred = -454.0 kJ (roundoff error)\n",
+ "Entropy change = -1.403 kJ/kg K (round off error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No:319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1.0021; # Initial pressure of the fluid in MPa\n",
+ "T1=180; # Initial temperature of the fluid in degree celcius\n",
+ "m=0.5; # Mass of the fluid in kg\n",
+ "p2=p1; # Constant pressure process\n",
+ "# (a).Steam\n",
+ "x1=0.8; # Quality of the steam at state 1\n",
+ "# Following are the values taken from steam table \n",
+ "vf1=0.001127; vfg1=0.1929; # specific volume of the steam in m^3/kg\n",
+ "hf1=763.2; hfg1=2015; # specific enthalpy in kJ/kg \n",
+ "sf1=2.1396; sfg1=4.4460; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "v1=vf1+x1*vfg1; # specific volume in m^3/kg\n",
+ "h1=hf1+x1*hfg1; # specific enthalpy in kJ/kg \n",
+ "s1=sf1+x1*sfg1; # specific entropy in kJ/kg K\n",
+ "v2=2*v1; # Final volume of the fluid\n",
+ "t2=410.5; # Final temperature of steam in degree celcius (from superheated steam table)\n",
+ "h2=3286.4; # specific enthalpy in kJ/kg \n",
+ "s2=7.525; # specific entropy in kJ/kg K\n",
+ "S21=m*(s2-s1); # Change in entropy\n",
+ "W=m*p1*10**3*(v2-v1); # Work done\n",
+ "Q=m*(h2-h1); # Heat transferred\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"Final Temperature = \",t2+273,\"K\",\"\\nChange in entropy = \",S21,\"kJ/K (Error in textbook)\"\n",
+ "print \"Work done = \",round(W,1),\"kJ\",\"\\nHeat transferred = \",Q,\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "V1=m*R*(T1+273)/(p1*10**3); # Initil volume\n",
+ "V2=2*V1; # Final volume\n",
+ "T2=(T1+273)*V2/V1; # Final temperature\n",
+ "S21=m*Cpo*math.log (V2/V1); # Change in entropy\n",
+ "W=p1*10**3*(V2-V1); # Work done\n",
+ "Q=m*Cpo*(T2-(T1+273));# Heat transferred\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"Final Temperature = \",T2,\"K\",\"\\nChange in entropy = \",round(S21,3),\"kJ/K\"\n",
+ "print \"Work done = \",round(W,0),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam Final Temperature = 683.5 K \n",
+ "Change in entropy = 0.9143 kJ/K (Error in textbook)\n",
+ "Work done = 77.9 kJ \n",
+ "Heat transferred = 455.6 kJ\n",
+ "\n",
+ "(b).Air Final Temperature = 906.0 K \n",
+ "Change in entropy = 0.348 kJ/K\n",
+ "Work done = 65.0 kJ \n",
+ "Heat transferred = 227.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No:321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.5; # Mass of the fluid in kg\n",
+ "p1=1; # Initial pressure of fluid in bar\n",
+ "T1=150; # Initial temperture of fluid in degree celcius\n",
+ "v2=0.3; # Final specific volume in m^3/kg\n",
+ "# (a).Steam\n",
+ "# Following are the values taken from steam table \n",
+ "u1=2582.8; # specific internal energy in kJ/kg\n",
+ "s1=7.6134; # specific entropy in kJ/kg K\n",
+ "vf2=0.001091; vfg2=0.3917; # specific volume of the steam in m^3/kg\n",
+ "sf2=1.8418; sfg2=4.9961; # specific entropy in kJ/kg K\n",
+ "uf2=631.7; ufg2=1927.8; # specific internal energy in kJ/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x2=(v2-vf2)/vfg2; # Quality of steam at state 2\n",
+ "s2=sf2+x2*sfg2; # specific entropy in kJ/kg K\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg\n",
+ "S21=m*(s2-s1); # Change in entropy\n",
+ "U21=m*(u2-u1); # Change in internal energy\n",
+ "Q=(T1+273)*(S21); # Heat transferred\n",
+ "W=Q-U21; # Work done\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nChange in internal energy = \",round(U21,0),\"kJ\"\n",
+ "print \"Change in entropy = \",round(S21,4),\"kJ/K\",\"\\nWork done = \",round(W,1),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "U21=0; # From fig 7.6\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "v1=(R*(T1+273))/(p1*10**2); # initial specific volume\n",
+ "S21=m*R*math.log (v2/v1); # Change in entropy\n",
+ "Q=(T1+273)*(S21); # Heat transferred\n",
+ "W=Q; # Work done\n",
+ "\n",
+ "#Result for(b)\n",
+ "print \"\\n(b).Air\",\"\\nChange in internal energy = \",round(U21,0),\"kJ\"\n",
+ "print \"Change in entropy = \",round(S21,4),\"kJ/K\",\"\\nWork done = \",round(W,1),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Change in internal energy = -720.0 kJ\n",
+ "Change in entropy = -2.9386 kJ/K \n",
+ "Work done = -523.0 kJ \n",
+ "Heat transferred = -1243.0 kJ\n",
+ "\n",
+ "(b).Air \n",
+ "Change in internal energy = 0.0 kJ\n",
+ "Change in entropy = -0.6018 kJ/K \n",
+ "Work done = -254.6 kJ \n",
+ "Heat transferred = -254.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4, Page No:323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=1.5; # Mass of the fluid in kg\n",
+ "p1=1.6; # Initial pressure of fluid in MPa\n",
+ "T1=250; # Initial temperture of fluid in degree celcius\n",
+ "p2=150; # Initial pressure of the fluid in kPa\n",
+ "# (a).Steam\n",
+ "# Following are the values taken from steam table \n",
+ "# state 1 is superheated\n",
+ "u1=2692.3; # specific internal energy in kJ/kg\n",
+ "s1=6.6732; # specific entropy in kJ/kg K\n",
+ "v1=0.14184; # specific volume of the steam in m^3/kg\n",
+ "# State 2 is wet (s1=s2<sg2)\n",
+ "T2=111.37; # Final temperature of steam in degree celcius\n",
+ "sf2=1.4336; sfg2=5.7897; # specific entropy in kJ/kg K\n",
+ "uf2=466.94; ufg2=2052.7; # specific internal energy in kJ/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x2=(s1-sf2)/sfg2; # Quality of steam at state 2\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg\n",
+ "W=-m*(u2-u1);# Work done\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nFinal temperature of steam =\",T2+273,\"K\",\"\\nWork done = \",round(W,1),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "k=1.4; # index of reversible adiabatic process\n",
+ "T2=(T1+273)*((p2*10**-3)/p1)**((k-1)/k); # Final temperature of air\n",
+ "W=-m*Cvo*(T2-(T1+273)); # Work done\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"(b).Air\",\"\\nFinal temperature of steam =\",round(T2,1),\"K\",\"\\nWork done = \",round(W,1),\"kJ\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Final temperature of steam = 384.37 K \n",
+ "Work done = 551.5 kJ\n",
+ "(b).Air \n",
+ "Final temperature of steam = 265.9 K \n",
+ "Work done = 276.3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "`Example 7.5, Page No:325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1.5; # Mass of the fluid in kg\n",
+ "p1=1.6; # Initial pressure of fluid in MPa\n",
+ "T1=250; # Initial temperture of fluid in degree celcius\n",
+ "p2=150; # Initial pressure of the fluid in kPa\n",
+ "n=1.25; # Index of polytropic process\n",
+ "# (a).Steam\n",
+ "# Following are the values taken from steam table \n",
+ "# state 1 is superheated\n",
+ "u1=2692.3; # specific internal energy in kJ/kg\n",
+ "s1=6.6732; # specific entropy in kJ/kg K\n",
+ "v1=0.14184; # specific volume of the steam in m^3/kg\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "v2=v1*(p1/(p2*10**-3))**(1/n); # specific volume of the steam at state 2\n",
+ "# State 2 is wet \n",
+ "T2=111.37; # Final temperature of steam in degree celcius\n",
+ "vf2=0.0010531; vfg2=1.1582; # specific volume of the steam in m^3/kg\n",
+ "x2=(v2-vf2)/vfg2; # Quality of steam at state 2\n",
+ "sf2=1.4336; sfg2=5.7897; # specific entropy in kJ/kg K\n",
+ "uf2=466.94; ufg2=2052.7; # specific internal energy in kJ/kg\n",
+ "s2=sf2+x2*sfg2; # specific entropy in kJ/kg K\n",
+ "u2=uf2+x2*ufg2; # specific internal energy in kJ/kg\n",
+ "W=m*((p2*v2)-(p1*10**3*v1))/(1-n); # Work done\n",
+ "Q=m*(u2-u1)+W; # Heat ttransferred\n",
+ "S21=m*(s2-s1); # Change in entropy\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nFinal Temperature = \",T2+273,\"K\",\"\\nChange in entropy = \",round(S21,1),\"kJ/K\"\n",
+ "print \"Work done = \",round(W,0),\"kJ\",\"\\nHeat transferred = \",round(Q,0),\"kJ\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "T2=(T1+273)*((p2*10**-3)/p1)**((n-1)/n); # Final temperature of air\n",
+ "W=m*R*(T2-(T1+273))/(1-n); # Work done\n",
+ "Q=m*Cvo*(T2-(T1+273))+W; # Heat transferred\n",
+ "S21=m*(Cvo+R/(1-n))*math.log (T2/(T1+273)); # Change in entropy\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"\\nFinal Temperature = \",round(T2,0),\"K\",\"\\nChange in entropy = \",round(S21,3),\"kJ/K\"\n",
+ "print \"Work done = \",round(W,0),\"kJ\",\"\\nHeat transferred = \",round(Q,1),\"kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Final Temperature = 384.37 K \n",
+ "Change in entropy = -0.8 kJ/K\n",
+ "Work done = 514.0 kJ \n",
+ "Heat transferred = -322.0 kJ\n",
+ "\n",
+ "(b).Air \n",
+ "Final Temperature = 326.0 K \n",
+ "Change in entropy = 0.306 kJ/K\n",
+ "Work done = 340.0 kJ \n",
+ "Heat transferred = 127.7 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6, Page No:335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=1; # Massflow rate of the steam in kg/s\n",
+ "p1=3.5; # Pressure at inlet in MPa\n",
+ "T1=400; # Temperature at inlet in degree celcius\n",
+ "V1=250; # Velocity of stesm at inlet in m/s\n",
+ "p2=50; # Pressure at outlet in kPa\n",
+ "T2=100; # Temperature at outlet in degree celcius\n",
+ "V2=30; # Velocity of stesm at outlet in m/s\n",
+ "# For actual expansion in the turbine\n",
+ "h1=3222.3; h2=2682.5; # specific enthalpy in kJ/kg at inlet and exit\n",
+ "\n",
+ "#Calculation\n",
+ "wa=h1-h2+(V1**2-V2**2)/2000; # Work done\n",
+ "W=m*wa; # Power output\n",
+ "# For reversible adiabatic expansion\n",
+ "# Following are the values taken from steam table \n",
+ "s1=6.8405; # specific entropy in kJ/kg K\n",
+ "s2s=s1; # Isentropic expansion\n",
+ "sf2=1.091; sfg2=6.5029; # specific entropy in kJ/kg K\n",
+ "hf2=340.49; hfg2=2305.4; # specific enthalpy in kJ/kg\n",
+ "x2s=(s1-sf2)/sfg2; # Quality of steam at state 2\n",
+ "h2s=hf2+x2s*hfg2; # specific enthalpy in kJ/kg\n",
+ "ws=h1-h2s+(V1**2-V2**2)/2000; # Isentropic Work done\n",
+ "eff_isen=wa/ws; # Isentropic efficiency of the turbine\n",
+ "\n",
+ "#Result\n",
+ "print \"Power output of the turbine = \",round(W,0),\"kW (Error in textbook)\"\n",
+ "print \"Isentropic efficiency of the turbine = \",round(eff_isen*100,1),\"% (Error in textbook)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power output of the turbine = 571.0 kW (Error in textbook)\n",
+ "Isentropic efficiency of the turbine = 65.3 % (Error in textbook)\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.7, Page No:336"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=1; # Massflow rate of the steam in kg/s\n",
+ "p1=3.5; # Pressure at inlet in bar\n",
+ "T1=160; # Temperature at inlet in degree celcius\n",
+ "p2=1; # Pressure at outlet in bar\n",
+ "Cpo=1.005; # Specific heat at constant pressure in kJ/kg K\n",
+ "eff_isen=0.85; # Isentropic efficiency of the turbine\n",
+ "k=1.4; # index of isentropic process\n",
+ "\n",
+ "#Calculation\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Final temperature after isentropic expansion\n",
+ "Ws=m*Cpo*((T1+273)-T2s); # Isentropic power developed\n",
+ "Wa=eff_isen*Ws; # Actual power developed\n",
+ "T2=(T1+273)-(Wa/(m*Cpo)); # Final temperature after expansion\n",
+ "\n",
+ "#Result\n",
+ "print \"Actual power developed =\",round(Wa,0),\"kW (Error in textbook)\",\n",
+ "print \"\\nFinal temperature after expansion = \",round(T2,1),\"K(Roundoff error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Actual power developed = 111.0 kW (Error in textbook) \n",
+ "Final temperature after expansion = 322.3 K(Roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8, Page No: 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=0.05; # mass flowrate of Freon 12 in kg/s\n",
+ "p1=300; # Pressure of Freon 12 at inlet in kpa\n",
+ "t1=5; # Temperature of Freon 12 at inlet in degree celcius\n",
+ "p2=1.2; # Pressure of Freon 12 at outlet in MPa\n",
+ "t2=80; # Temperature of Freon 12 at outlet in degree celcius\n",
+ "W=-2.3; # Power consumption of compressor in kW\n",
+ "# (a).Heat transfer from the body of compressor to environment\n",
+ "# From the table of properties of Freon 12\n",
+ "h1= 190.8; h2=230.4; # specific enthalpy in kJ/kg \n",
+ "s1=0.71; s2=0.7514 # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "Q=m*(h2-h1)+W; # Heat transfer \n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Heat transfer from the body of compressor to environment =\",Q,\"kW\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Adiabatic efficiency of the compressor\n",
+ "# For adiabatic compression p2=1.2Mpa,s2s=s1\n",
+ "t2s=61.7;# Temperature of Freon 12 at outlet in degree celcius\n",
+ "h2s=216.14; # specific enthalpy in kJ/kg \n",
+ "ws=(h2s-h1); # Reversible adiabatic work\n",
+ "wa=W/m; # Actual work\n",
+ "eff_com=abs (ws/wa); # Adiabatic efficiency\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Adiabatic efficiency of the compressor = \",round(eff_com*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Heat transfer from the body of compressor to environment = -0.32 kW\n",
+ "\n",
+ "(b).Adiabatic efficiency of the compressor = 55.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9, Page No:340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=1; # Pressure of air at inlet of compressor in bar\n",
+ "T1=30; # Temperature of air at inlet of compressor in degree celcius\n",
+ "p2=12; # Delivery pressure of air in bar\n",
+ "T2=400; # Temperature of air at inlet of compressor in degree celcius\n",
+ "V2=90; # Velocity of air at exit in m/s\n",
+ "w=3740; # Power input to compressor in kW\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "wa=Cpo*(T2-T1)+V2**2/2000; # Actual specific work input\n",
+ "m=w/wa; # Mass flow rate of air\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k);# Isentropic discharge temperature\n",
+ "ws=Cpo*(T2s-(T1+273))+V2**2/2000; # Isentropic work\n",
+ "eff_com=ws/wa; # Isentrpic efficiency\n",
+ "\n",
+ "#Result\n",
+ "print \"Isentropic discharge temperature = \",round(T2s,1),\"K\",\"\\nIsentrpic efficiency of compressor =\",round(eff_com*100,0),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Isentropic discharge temperature = 616.3 K \n",
+ "Isentrpic efficiency of compressor = 85.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle 7.10, Page No:344"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=3; # Pressure of fluid at inlet in bar\n",
+ "T1=150; # Temperature of fluid at inlet in degree celcius\n",
+ "V1=90; # Velocity of fluid at inlet in m/s \n",
+ "eff_nozzle=0.85; # Nozzle efficiency\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "p2=1/3*p1;\n",
+ "# (a).Steam\n",
+ "# Following are taken from steam table\n",
+ "h1=2761; # specific enthalpy in kJ/kg \n",
+ "s1=7.0778;# specific entropy in kJ/kg K\n",
+ "s2s=s1; # Isentropic process\n",
+ "sf2s=1.3026; sfg2s=6.0568;# specific entropy in kJ/kg K\n",
+ "hf2=417.46; hfg2=2258; # specific enthalpy in kJ/kg \n",
+ "\n",
+ "#Calculation for (a)\n",
+ "x2s=(s2s-sf2s)/sfg2s; # Quality of steam\n",
+ "h2s=hf2+x2s*hfg2;\n",
+ "V2s=math.sqrt (2000*(h1-h2s)+V1**2); # Isentropic Velocity \n",
+ "V2=math.sqrt (eff_nozzle) *V2s; # Actual nozzle exit velocity\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Steam\",\"\\nActual nozzle exit velocity = \",round(V2,1),\"m/s (round off error)\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Air\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Isentropic temperature\n",
+ "V2s=math.sqrt ((2000*Cpo*((T1+273)-T2s))+V1**2); # Isentropic Velocity and (answer mentioned in the textbook is wrong)\n",
+ "V2=math.sqrt (eff_nozzle) *V2s; # Actual nozzle exit velocity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Air\",\"\\n Actual nozzle exit velocity = \",round(V2,1),\"m/s (answer mentioned in the textbook is wrong)\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Steam \n",
+ "Actual nozzle exit velocity = 575.1 m/s (round off error)\n",
+ "\n",
+ "(b).Air \n",
+ " Actual nozzle exit velocity = 448.7 m/s (answer mentioned in the textbook is wrong)\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11, Page No:348"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=200; # Pressure of fluid at inlet in kPa\n",
+ "T1=200; # Temperature of fluid at inlet in degree celcius\n",
+ "V1=700; # Velocity of fluid at inlet in m/s \n",
+ "V2=70; # Velocity of fluid at outlet in m/s \n",
+ "# (a).Reversible Adiabatic process\n",
+ "# state of steam entering diffuser (superheated)\n",
+ "h1=2870.5;# specific enthalpy in kJ/kg \n",
+ "s1=7.5066; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "h2=h1+(V1**2-V2**2)/2000; # From first and second laws\n",
+ "s2=s1; # Isentropic peocess\n",
+ "# From superheated table\n",
+ "p2s=550; # Pressure of fluid at outlet in kPa\n",
+ "T2=324; # Temperature of fluid at outlet in degree celcius\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Reversible adiabatic process\",\"\\nPressure of fluid at outlet = \",p2s,\"kPa\"\n",
+ "print \"Temperature of fluid at outlet =\",T2,\"oC\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Actual diffusion\n",
+ "# for the same change in K.E, from first law\n",
+ "h2=3113.1;# specific enthalpy in kJ/kg\n",
+ "p2=400; # Actual exit pressure in kPa\n",
+ "t2=322.4; # from superheated table in degree celcius\n",
+ "eff_d=(p2-p1)/(p2s-p1); # Diffuser efficiency\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Actual diffusion\",\"\\nThe exit temperature =\",t2,\"oC\",\"\\nDiffuser efficiency = \",round(eff_d*100,0),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Reversible adiabatic process \n",
+ "Pressure of fluid at outlet = 550 kPa\n",
+ "Temperature of fluid at outlet = 324 oC\n",
+ "\n",
+ "(b).Actual diffusion \n",
+ "The exit temperature = 322.4 oC \n",
+ "Diffuser efficiency = 57.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12, Page No:349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p1=1; # Pressure of fluid at inlet in bar\n",
+ "T1=60; # Temperature of fluid at inlet in degree celcius\n",
+ "p2=2.8; # Pressure of fluid at outlet in bar\n",
+ "eff_d=0.80; # Diffuser efficiency\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# (a).Actual Diffuser\n",
+ "p2s=((p2-p1)/eff_d)+p1; # Isentropic pressure\n",
+ "T2=(T1+273)*(p2s/p1)**((k-1)/k); # Exit temperature\n",
+ "V1=math.sqrt (2000*Cpo*(T2-(T1+273))); # Initial Velocity\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).Actual Diffuser\",\"\\nTemperature of air leaving diffuser =\",round(T2,1),\"K\"\n",
+ "print \"Initial Velocity =\",round(V1,1),\"m/s\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Reversible Adiabatic diffuser\n",
+ "T2s=(T1+273)*(p2/p1)**((k-1)/k); # Isentropic exit temperature\n",
+ "V1=math.sqrt (2000*Cpo*(T2s-(T1+273))); # Initial Velocity\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n(b).Reversible Adiabatic diffuser\",\"\\nTemperature of air leaving diffuser =\",round(T2s,0),\"K\"\n",
+ "print \"Initial Velocity =\",round(V1,1),\"m/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Actual Diffuser \n",
+ "Temperature of air leaving diffuser = 466.3 K\n",
+ "Initial Velocity = 517.3 m/s\n",
+ "\n",
+ "(b).Reversible Adiabatic diffuser \n",
+ "Temperature of air leaving diffuser = 447.0 K\n",
+ "Initial Velocity = 478.1 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No:350"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "m=18; # mass flow rate of air in kg/s\n",
+ "p1=3.6; # Pressure of fluid at inlet of turbine in MPa\n",
+ "T1=800; # Temperature of fluid at inlet of turbine in Kelvin\n",
+ "V1=100; # Velocity of fluid at inlet of turbine in m/s \n",
+ "V2=150; # Velocity of fluid at outlet of turbine in m/s\n",
+ "W=3.6; # Power output of turbine in MW\n",
+ "p3=1.01; # pressure at diffuser outlet in bar\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# (a) Pressure at diffuser inlet\n",
+ "T2=((Cpo*T1)-((W*10**3)/m+(V2**2-V1**2)/2000))/Cpo; # Temperature at outlet of turbine\n",
+ "T3=(T2+273)+((V2**2)/(2*Cpo*10**3)); # Temperature of fluid at diffuser inlet\n",
+ "p2=p3*((T2+273)/T3)**(k/(k-1)); #pressure at diffuser inlet\n",
+ "\n",
+ "#Result \n",
+ "print \"(a).pressure at diffuser inlet =\",round(p2,3),\"bar\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).pressure at diffuser inlet = 0.966 bar\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14, Page No:351"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T1=35; # Temperature of freon 12 before throttling in degree celcius\n",
+ "T2=5; # Temperature of freon 12 after throttling in degree celcius\n",
+ "# from property table of freon 12\n",
+ "h1=69.49;# specific enthalpy in kJ/kg \n",
+ "hf2=40.66; hfg2=148.86; # specific enthalpy in kJ/kg \n",
+ "h2=h1; # throttling process\n",
+ "\n",
+ "#Calculation \n",
+ "x2=(h2-hf2)/hfg2; # Quality of Freon 12 vapour\n",
+ "\n",
+ "#Result\n",
+ "print \"Quality of Freon 12 vapour = \",round(x2,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quality of Freon 12 vapour = 0.194\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15, Page No:353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p2=276; # Pressure at inlet in kPa\n",
+ "p=6.5; # gauge pressure at outlet in cm Hg\n",
+ "T3=110; # Temperature at outlet in degree celcius\n",
+ "pa=756; # Barometric pressure in mm Hg\n",
+ "mc=760;# Mass of condensed steam in g\n",
+ "ms=25; # Mass of separated water in g\n",
+ "den=13600; # Density of mercury in kg/m^3\n",
+ "g=9.81; # Acceleration due to gravity in m/s^2\n",
+ "\n",
+ "#Calculation\n",
+ "z=(pa*10**-3)+(p*10**-2);# absolute pressure in m Hg\n",
+ "p3=den*g*z; # Pressure after throttling\n",
+ "h3=2697.4;# specific enthalpy in kJ/kg \n",
+ "hf2=545.31; hfg2=2175.2; # specific enthalpy in kJ/kg \n",
+ "x2=(h3-hf2)/hfg2; # Quality of steam\n",
+ "x1=(mc/(mc+ms))*x2; # Quality of steam in the main line\n",
+ "\n",
+ "#Result\n",
+ "print \"Quality of steam in the main line =\",round(x1,4),\" (roundoff error)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Quality of steam in the main line = 0.9579 (roundoff error)\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter8.ipynb b/Thermodynamics/Chapter8.ipynb
new file mode 100755
index 00000000..de9fddbf
--- /dev/null
+++ b/Thermodynamics/Chapter8.ipynb
@@ -0,0 +1,589 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c31b3e182c94546bee565a2d8036e956b36a8e464b50b24f4e687e55ce855452"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8:VAPOUR CYCLE"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1, Page No: 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=311.06; # Source temperature in degree celcius\n",
+ "pb=10; # Boiler pressure in MPa\n",
+ "TL=32.88; # Sink temperature in degree celcius \n",
+ "pc=5; # Condenser pressure in kPa\n",
+ "# From steam tables at pb\n",
+ "h2=1407.56; # specific enthalpy in kJ/kg \n",
+ "h3=2724.7; # specific enthalpy in kJ/kg \n",
+ "s2=3.3596; # specific entropy in kJ/kg K\n",
+ "s3=5.6141; # specific entropy in kJ/kg K\n",
+ "# From steam tables at pc\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "x1=(s2-sf)/sfg; # quality of steam at state 1\n",
+ "x4=(s3-sf)/sfg; # quality of steam at state 4\n",
+ "h1=hf+x1*hfg; # specific enthalpy at state 1\n",
+ "h4=hf+x4*hfg; # specific enthalpy at state 4\n",
+ "wT=h3-h4; # Turbine work\n",
+ "wC=h2-h1; # Compressor work\n",
+ "wnet=wT-wC; # Net work output\n",
+ "qH=h3-h2; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Result\n",
+ "print \"Ratio of net work to trbine work =\",round(rw,3),\"\\nThermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of net work to trbine work = 0.618 \n",
+ "Thermal efficiency = 47.6 %\n",
+ "specific steam consumption = 5.741 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2, Page No:366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=311.06; # Source temperature in degree celcius\n",
+ "p2=10; # Boiler pressure in MPa\n",
+ "TL=32.88; # Sink temperature in degree celcius \n",
+ "p1=5; # Condenser pressure in kPa\n",
+ "# From steam tables at p2\n",
+ "h3=2724.7; # specific enthalpy in kJ/kg \n",
+ "s3=5.6141; # specific entropy in kJ/kg K\n",
+ "# From steam tables at p1\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations\n",
+ "x4=(s3-sf)/sfg; # quality of steam at state 4\n",
+ "h4=hf+x4*hfg; # specific enthalpy at state 4\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "wp=abs (v1*(p2*10**3-p1)); # Pump work (absolute value)\n",
+ "h2=h1+wp; # specific enthalpy at state 2\n",
+ "wT=h3-h4; # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h3-h2; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results\n",
+ "print \"Ratio of net work to trbine work =\",round(rw,2),\"\\nThermal efficiency =\",round(eff_th*100,0),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of net work to trbine work = 0.99 \n",
+ "Thermal efficiency = 39.0 %\n",
+ "specific steam consumption = 3.585 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No:369"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TH=311.06; # Source temperature in degree celcius\n",
+ "p2=10; # Boiler pressure in MPa\n",
+ "TL=32.88; # Sink temperature in degree celcius \n",
+ "p1=5; # Condenser pressure in kPa\n",
+ "# (a).Actual carnot cycle\n",
+ "eff_Tur=0.8; # Efficiency of turbine\n",
+ "eff_com=0.6; # Efficiency of compressure\n",
+ "# From steam tables at p2\n",
+ "h3=2724.7; # specific enthalpy in kJ/kg \n",
+ "s3=5.6141; # specific entropy in kJ/kg K\n",
+ "s2=3.3596; # specific entropy in kJ/kg K\n",
+ "h2=1407.56; # specific enthalpy in kJ/kg \n",
+ "# From steam tables at p1\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations for (a)\n",
+ "x1=(s2-sf)/sfg; # quality of steam at state 1\n",
+ "x4=(s3-sf)/sfg; # quality of steam at state 4\n",
+ "h1=hf+x1*hfg; # specific enthalpy at state 1\n",
+ "h4=hf+x4*hfg; # specific enthalpy at state 4\n",
+ "wTs=h3-h4; # Turbine work\n",
+ "wT=eff_Tur*wTs; # Actual turbine work\n",
+ "wCs=h2-h1; # Compressor work\n",
+ "wC=wCs/eff_com; # Actual compressor work\n",
+ "wnet=wT-wC; # Net work output\n",
+ "h2a=h1+wC; # specific enthalpy\n",
+ "qH=h3-h2a; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (a)\n",
+ "print \"(a).Actual carnot cycle\",\"\\nRatio of net work to trbine work =\",round(rw,4),\"\\nThermal efficiency =\",round(eff_th*100,2),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,1),\"kg/kWh\"\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Actual Rankine cycle\n",
+ "eff_Tur=0.8; # Efficiency of turbine\n",
+ "eff_pump=0.9; # Efficiency of Pump\n",
+ "# From steam tables at p1\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculations for (b)\n",
+ "wps=abs (v1*(p2*10**3-p1)); # Pump work (absolute value)\n",
+ "wp=wps/eff_pump; # Actual pmp work\n",
+ "h2a=h1+wp; # # specific enthalpy at state 2\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h3-h2a; # Heat added\n",
+ "rw=wnet/wT; # Ratio of net work to trbine work\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (b)\n",
+ "print \"\\n\\n(b).Actual Rankine cycle\",\"\\nRatio of net work to trbine work =\",round(rw,3),\"\\nThermal efficiency =\",round(eff_th*100,0),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,1),\"kg/kWh\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Actual carnot cycle \n",
+ "Ratio of net work to trbine work = 0.2046 \n",
+ "Thermal efficiency = 15.68 %\n",
+ "specific steam consumption = 21.7 kg/kWh\n",
+ "\n",
+ "\n",
+ "(b).Actual Rankine cycle \n",
+ "Ratio of net work to trbine work = 0.986 \n",
+ "Thermal efficiency = 31.0 %\n",
+ "specific steam consumption = 4.5 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4, Page No:379 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T3=450; # temperature of steam at state 3 in degree celcius\n",
+ "p3=10; # Boiler pressure in MPa \n",
+ "p6=5; # Condenser pressure in kPa\n",
+ "# From steam tables at state 1\n",
+ "hf=137.82; hfg=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf=0.4764; sfg=7.9187; # specific entropy in kJ/kg K\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculations for (a)\n",
+ "wp=abs (v1*(p3*10**3-p6)); # Pump work (absolute value)\n",
+ "h2=h1+wp; # specific enthalpy at state 2\n",
+ "# (a).Rankine cycle with superheat\n",
+ "# From steam tables at state 3\n",
+ "h3=3240.9;# specific enthalpy in kJ/kg\n",
+ "s3=6.419; # specific entropy in kJ/kg K\n",
+ "# State 4_1\n",
+ "x4_1=(s3-sf)/sfg; # Quality of steam at state 4_1\n",
+ "h4_1=hf+x4_1*hfg; # specific enthalpy at state 4_1\n",
+ "wT=h3-h4_1; # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h3-h2; # Heat added\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (a)\n",
+ "print \"(a).Rankine cycle with superheat\",\"\\nQuality of steam at exhaust = \",round(x4_1,2),\"\\nThermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\"\n",
+ "\n",
+ "#Variable declaration for (b)\n",
+ "# (b).Reheat cycle\n",
+ "s4=s3; # isentropic expansion\n",
+ "x4=0.975; # Quality of steam at state 4\n",
+ "# from steam table intermediate pressure is selected for s4 & x4 by interpolation and assumed by round value\n",
+ "p4=1.2; # Intermediate pressure in MPa\n",
+ "# From steam tables at state 4\n",
+ "hf4=798.6; hfg4=1986.2; # specific enthalpy in kJ/kg \n",
+ "h4=hf4+x4*hfg4; # specific enthalpy in kJ/kg \n",
+ "# From steam tables at state 5\n",
+ "h5=3368.5;# specific enthalpy in kJ/kg\n",
+ "s5=7.5266; # specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations for (b)\n",
+ "x6=(s5-sf)/sfg; # Quality of steam at state 6\n",
+ "h6=hf+x6*hfg; # specific enthalpy in kJ/kg \n",
+ "wT=(h3-h4)+(h5-h6); # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=(h3-h2)+(h5-h4); # Heat added\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Results for (b)\n",
+ "print \"\\n\\n(b).Reheat cycle\",\"\\nQuality of steam at exhaust = \",round(x6,2),\"\\nThermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "print \"specific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).Rankine cycle with superheat \n",
+ "Quality of steam at exhaust = 0.75 \n",
+ "Thermal efficiency = 41.2 %\n",
+ "specific steam consumption = 2.825 kg/kWh\n",
+ "\n",
+ "\n",
+ "(b).Reheat cycle \n",
+ "Quality of steam at exhaust = 0.89 \n",
+ "Thermal efficiency = 42.1 %\n",
+ "specific steam consumption = 2.295 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No:386 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "T5=311.06; # temperature of steam at state 5 in degree celcius\n",
+ "p5=10; # Boiler pressure in MPa\n",
+ "p4=p5;\n",
+ "T7=32.88; # temperature of steam at state 7 in degree celcius \n",
+ "p7=5; # Condenser pressure in kPa\n",
+ "p1=p7;\n",
+ "# From steam tables at p7\n",
+ "h1=137.82; # specific enthalpy at state 1 in kJ/kg \n",
+ "s1=0.4764; # specific entropy at state 1 in kJ/kgK\n",
+ "v1=0.001005; # specific volume in m^3/kg\n",
+ "\n",
+ "#Calculations\n",
+ "wp=abs (v1*(p5*10**3-p7)); # Pump work (absolute value)\n",
+ "h2=h1+wp; # specific enthalpy at state 2\n",
+ "T6=(T5+T7)/2; # Temperature of bleed system\n",
+ "h5=2724.7; # specific enthalpy at state 5 in kJ/kg \n",
+ "s5=5.6141; # specific entropy at state 5 in kJ/kgK\n",
+ "# From steam tables at state 6\n",
+ "p6=791.5; # bleed steam pressure in kPa\n",
+ "p2=p6; p3=p6;\n",
+ "vf6=0.00114; # specific volume in m^3/kg\n",
+ "v3=vf6;\n",
+ "hf6=719.21; hfg6=2049.5; # specific enthalpy in kJ/kg \n",
+ "sf6=2.0419; sfg6=4.6244; # specific entropy in kJ/kg K\n",
+ "x6=(s5-sf6)/sfg6; # quality of steam at state 6\n",
+ "h6=hf6+x6*hfg6; # specific enthalpy at state 6\n",
+ "h3=hf6; # specific enthalpy at state 3\n",
+ "m1=(h3-h2)/(h6-h2); # Fraction of bleed steam\n",
+ "wLP=abs (v1*(p2-p1)); # LP work\n",
+ "wHP=abs (v3*(p4*10**3-p3)); # HP work\n",
+ "wp=(1-m1)*wLP+wHP; # Total pump work\n",
+ "h2=h1+wp; h4=h3+wp; # Specific Enthalpies of water\n",
+ "# From steam tables at pc\n",
+ "hf7=137.82; hfg7=2423.7; # specific enthalpy in kJ/kg \n",
+ "sf7=0.4764; sfg7=7.9187; # specific entropy in kJ/kg K\n",
+ "x7=(s5-sf7)/sfg7; # quality of steam at state 7\n",
+ "h7=hf7+x7*hfg7; # specific enthalpy at state 4\n",
+ "wT=(h5-h6)+(1-m1)*(h6-h7); # Turbine work\n",
+ "wnet=wT-wp; # Net work output\n",
+ "qH=h5-h4; # Heat added\n",
+ "eff_th=wnet/qH; # Thermal efficiency\n",
+ "SSC=3600/wnet; # specific steam consumption\n",
+ "\n",
+ "#Result\n",
+ "print \"Thermal efficiency =\",round(eff_th*100,1),\"%\",\"\\nspecific steam consumption =\",round(SSC,3),\"kg/kWh\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 42.4 % \n",
+ "specific steam consumption = 4.254 kg/kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6, Page No:389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration \n",
+ "ps=6.89+1; # Pressure of steam produced in bar (Absolute)\n",
+ "x=0.96; # Quality of steam produced\n",
+ "f=75; # Steady flow of water in litres\n",
+ "t=9.5; # Time consumption of water in minutes\n",
+ "tf=685; #Time consumption of 10 litre fuel in seconds\n",
+ "Vf=10; # consumption of fuel in litres\n",
+ "Sf=0.85; # specific gravity of water\n",
+ "CV=43125; # Calorific value of fuel in kJ/kg\n",
+ "\n",
+ "#Calculation\n",
+ "ms=f/(t*60);# Steam generation\n",
+ "mf=Vf*Sf/tf; # consumption of fuel\n",
+ "# From steam tables at ps\n",
+ "hf=718.5; hfg=2050; # specific enthalpy in kJ/kg \n",
+ "hs=hf+x*hfg; # specific enthalpy of steam produced\n",
+ "hFW=146.7; # Enthalpy of feed water at 35 degree celcius\n",
+ "eff_boiler=(ms*(hs-hFW))/(mf*CV); # Boiler Efficiency\n",
+ "\n",
+ "#Result\n",
+ "print \"Boiler Efficiency = \",round(eff_boiler*100,2),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Boiler Efficiency = 62.45 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7, Page No:394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration \n",
+ "TL=-15; # Source temperature in degree celcius\n",
+ "TH=40; # Sink temperature in degree celcius\n",
+ "# From the table of properties of Freon - 12\n",
+ "h2=203.05; h3=74.53; hf4=22.31; hg4=180.85; # specific enthalpy in kJ/kg \n",
+ "s1=0.682; s3=0.2716; sf4=0.0906; sg4=0.7046; sfg4=sg4-sf4;# specific entropy in kJ/kg K\n",
+ "\n",
+ "#Calculations\n",
+ "sf1=sf4; sfg1=sfg4; s2=s1; s4=s3; hf1=hf4; hg1=hg4; hfg4=hg4-hf4; hfg1=hfg4;# refer figure 8.20 \n",
+ "x1=(s1-sf1)/sfg1; # Dryness fraction at state 1\n",
+ "x4=(s4-sf4)/sfg4; # dryness fraction at state 4\n",
+ "h1=hf1+x1*hfg1; h4=hf4+x4*hfg4; # specific enthalpy in kJ/kg \n",
+ "wc=h2-h1; # work of compression\n",
+ "wE=h3-h4; # Work of expansion\n",
+ "qL=h1-h4; # Refrigerating effect\n",
+ "qH=h2-h3; # Heat rejected\n",
+ "wnet=wc-wE; # Net work\n",
+ "COPc=qL/wnet; # COP of the cycle\n",
+ "\n",
+ "#Results\n",
+ "print \"Work of compression = \",round(wc,2),\"kJ/kg\",\"\\nWork of expansion =\",round(wE,2),\"kJ/kg\"\n",
+ "print \"Refrigerating effect = \",round(qL,2),\"kJ/kg\"\n",
+ "print \"Heat rejected =\",qH,\"kJ/kg\",\"\\nCOP of the cycle =\",round(COPc,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression = 28.04 kJ/kg \n",
+ "Work of expansion = 5.48 kJ/kg\n",
+ "Refrigerating effect = 105.97 kJ/kg\n",
+ "Heat rejected = 128.52 kJ/kg \n",
+ "COP of the cycle = 4.699\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No:400 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "TL=-15; # Source temperature in degree celcius\n",
+ "TH=40; # Sink temperature in degree celcius\n",
+ "# From the table of properties of Freon - 12\n",
+ "h3=74.53; h1=180.85; h4=h3; # specific enthalpy in kJ/kg \n",
+ "s1=0.7046; s2=0.682; # specific entropy in kJ/kg K\n",
+ "\n",
+ "# (a) \n",
+ "\n",
+ "#Calculation for (i)\n",
+ "# (i).Condensor and Evaporator pressure\n",
+ "pc=0.9607; # Saturation pressure at TH in MPa\n",
+ "pE=0.1826; # Saturation pressure at TL in MPa\n",
+ "\n",
+ "#Results for (i)\n",
+ "print \"(a)\",\"\\n(i).Condensor and Evaporator pressure\",\"\\nCondensor pressure = \",pc,\"MPa\"\n",
+ "print \"Evaporator pressure = \",pE,\"MPa\"\n",
+ "\n",
+ "#Calculation for (ii)\n",
+ "# (ii).Compressor discharge temperature & Enthalpy\n",
+ "p2=pc; # Condensor pressure\n",
+ "s2=s1; # refer figure 8.25\n",
+ "# From the table of properties of Freon - 12 at pc\n",
+ "t2=46.8; # Compressor discharge temperature in degree celcius\n",
+ "h2=208.3; # specific enthalpy in kJ/kg \n",
+ "\n",
+ "#Results for (ii)\n",
+ "print \"\\n(ii).Compressor discharge temperature & Enthalpy\",\"\\nCompressor discharge temperature = \",t2,\"oC\"\n",
+ "print \"Enthalpy = \",h2,\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (iii)\n",
+ "# (iii).Ratio of COP of the cycle to Carnot COP\n",
+ "w=h2-h1; # Compressor work\n",
+ "qL=h1-h4; # Refrigeration effect\n",
+ "COP=qL/w; # COP of the cycle\n",
+ "COPc=4.68; # COP of carnot cycle from example 8.7\n",
+ "r=COP/COPc; # Ratio of COP of the cycle to Carnot COP\n",
+ "\n",
+ "#Results for (iii)\n",
+ "print \"\\n(iii).Ratio of COP of the cycle to Carnot COP = \",round(r,2)\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b) \n",
+ "QL=0.440; # Capacity of refrigerator in kW (1/8 ton of refrigeration)\n",
+ "m=QL/qL; # Mass flow rate of refrigerant\n",
+ "W=m*w; # Power consumption of compressor\n",
+ "QH=QL+W; # Heat rejected\n",
+ "\n",
+ "#Results for (b)\n",
+ "print \"\\n\\n(b)\",\"\\nMass flow rate of refrigerant = \",round(m,5),\"kg/s\",\"\\nPower consumption of compressor = \",round(W,4),\"kW\"\n",
+ "print \"Heat rejected to surroundings = \",round(QH,4),\"kW (Error in textbook answer)\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) \n",
+ "(i).Condensor and Evaporator pressure \n",
+ "Condensor pressure = 0.9607 MPa\n",
+ "Evaporator pressure = 0.1826 MPa\n",
+ "\n",
+ "(ii).Compressor discharge temperature & Enthalpy \n",
+ "Compressor discharge temperature = 46.8 oC\n",
+ "Enthalpy = 208.3 kJ/kg\n",
+ "\n",
+ "(iii).Ratio of COP of the cycle to Carnot COP = 0.83\n",
+ "\n",
+ "\n",
+ "(b) \n",
+ "Mass flow rate of refrigerant = 0.00414 kg/s \n",
+ "Power consumption of compressor = 0.1136 kW\n",
+ "Heat rejected to surroundings = 0.5536 kW (Error in textbook answer)\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/Chapter9.ipynb b/Thermodynamics/Chapter9.ipynb
new file mode 100755
index 00000000..a863c7cf
--- /dev/null
+++ b/Thermodynamics/Chapter9.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1fcefba58d1aff268f075c74fd2cddb1b329d45775f950b8a0c675f9e594fddf"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:GAS CYCLES"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No:425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=8; # Compression ratio of an engine\n",
+ "p1=100; # Pressure of air before compression in lPa\n",
+ "T1=300; # Temperature air before compression in kelvin\n",
+ "qH=1800; # Heat added to the air in kJ/kg\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (1)\n",
+ "# Otto cycle\n",
+ "# (1) state 2\n",
+ "p2=p1*(r)**k; # Pressure at the end of compression\n",
+ "T2=T1*(p2/p1)**((k-1)/k);# Temperature at the end of compression\n",
+ "# state 3\n",
+ "T3=(qH/Cvo)+T2; # Temperatue after heat addition\n",
+ "p3=p2*(T3/T2); # Pressure after heat addition\n",
+ "# state 4\n",
+ "p4=p3*(1/r)**k; # Pressure after expansion\n",
+ "T4=T3*(p4/p3)**((k-1)/k);# Temperature after expansion\n",
+ "\n",
+ "#Result for (1)\n",
+ "print \"(1).state 1\",\"\\n Pressure of air before compression = \",p1,\"kPa\",\"\\n Temperature air before compression =\",T1,\"K\"\n",
+ "print \"state 2\",\"\\n Pressure of air at the end of compression = \",round(p2,0),\"kPa\"\n",
+ "print \" Temperature at the end of compression =\",round(T2,1),\"K\"\n",
+ "print \"state 3\",\"\\n Pressure after heat addition = \",round(p3,0),\"kPa (round off error)\"\n",
+ "print \" Temperature after heat addition =\",round(T3,1),\"K (round off error)\"\n",
+ "print \"state 4\",\"\\n Pressure after expansion = \",round(p4,1),\"kPa (round off error)\"\n",
+ "print \" Temperature after expansion =\",round(T4,1),\"K (round off error)\"\n",
+ "\n",
+ "#Calculation for (2)\n",
+ "# (2).Thermal efficiency\n",
+ "qL=Cvo*(T4-T1); # Heat rejected\n",
+ "eff_th=1-qL/qH; # thermal efficiency\n",
+ "\n",
+ "#Result for (2)\n",
+ "print \"\\n(2).Thermal efficienvy = \",round(eff_th*100,2),\"% (round off error)\"\n",
+ "\n",
+ "#Calculation for (3)\n",
+ "# (3). Mean effective pressure\n",
+ "wnet=qH-qL; # net work\n",
+ "v1=R*T1/p1; # Specific volume at state 1\n",
+ "v2=v1/r; # Specific volume at state 2\n",
+ "pm=wnet/(v1-v2); # Mean effective pressure\n",
+ "\n",
+ "#Result for (3)\n",
+ "print \"\\n(3).Mean effective pressure = \",round(pm,0),\"kPa\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(1).state 1 \n",
+ " Pressure of air before compression = 100 kPa \n",
+ " Temperature air before compression = 300 K\n",
+ "state 2 \n",
+ " Pressure of air at the end of compression = 1838.0 kPa\n",
+ " Temperature at the end of compression = 689.2 K\n",
+ "state 3 \n",
+ " Pressure after heat addition = 8537.0 kPa (round off error)\n",
+ " Temperature after heat addition = 3201.4 K (round off error)\n",
+ "state 4 \n",
+ " Pressure after expansion = 464.5 kPa (round off error)\n",
+ " Temperature after expansion = 1393.5 K (round off error)\n",
+ "\n",
+ "(2).Thermal efficienvy = 56.47 % (round off error)\n",
+ "\n",
+ "(3).Mean effective pressure = 1349.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No:430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "r=18; # Compression ratio of an engine\n",
+ "p1=100; # Pressure of air before compression in lPa\n",
+ "T1=300; # Temperature air before compression in kelvin\n",
+ "qH=1800; # Heat added to the air in kJ/kg\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# Diesel cycle\n",
+ "# state 2\n",
+ "T2=T1*(r)**(k-1); # Temperature at the end of compression\n",
+ "p2=p1*(r)**k; # Pressure at the end of compression\n",
+ "# state 3\n",
+ "T3=(qH/Cpo)+T2; # Temperatue after heat addition\n",
+ "p3=p2; #constant pressure\n",
+ "Tmax=T3; # maximum temperature\n",
+ "Pmax=p3; # Maximum pressure\n",
+ "# state 4\n",
+ "v3=R*T3/p3; # Specific volume at state 3\n",
+ "v4=R*T1/p1; # Specific volume at state 4\n",
+ "T4=T3*(v3/v4)**(k-1); # Temperature after expansion\n",
+ "p4=p3*(v3/v4)**k; # Pressure after expansion\n",
+ "qL=Cvo*(T4-T1); # Heat rejected\n",
+ "wnet=qH-qL; # net work\n",
+ "eff_th=wnet/qH; # thermal efficiency\n",
+ "v1=R*T1/p1; # Specific volume at state 1\n",
+ "v2=v1/r; # Specific volume at state 2\n",
+ "pm=wnet/(v1-v2); # Mean effective pressure\n",
+ "\n",
+ "#Results\n",
+ "print \"Maximum pressure = \",Pmax,\"kPa\",\"Maximum Temperature = \",Tmax,\"K\"\n",
+ "print \"Thermal efficienvy = \",round(eff_th*100,1),\"%\"\n",
+ "print \"Mean effective pressure = \",round(pm,0),\"kPa (Error in textbook)\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum pressure = 5719.80874166 kPa Maximum Temperature = 2747.02343004 K\n",
+ "Thermal efficienvy = 59.4 %\n",
+ "Mean effective pressure = 1315.0 kPa (Error in textbook)\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3, Page No: 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # Pressure of air at inlet in MPa\n",
+ "T1=300; # Temperature of air at inlet in kelvin\n",
+ "p2=0.6; # Pressure of air at exit in MPa\n",
+ "T3=1200; # Maximun temperature of air in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# Brayton cycle\n",
+ "rp=p2/p1; # pressure ratio\n",
+ "T2=T1*(p2/p1)**((k-1)/k);# Temperature at the end of compression\n",
+ "wc=Cpo*(T2-T1); # compressor work\n",
+ "T4=T3*(p1/p2)**((k-1)/k);# Temperature at the end of expansion\n",
+ "wT=Cpo*(T3-T4); # Turbine work\n",
+ "qH=Cpo*(T3-T2); # heat addition\n",
+ "wnet=wT-wc; # net work\n",
+ "eff_th=wnet/qH; # thermal efficiency\n",
+ "rw=wnet/wT; # worh ratio\n",
+ "\n",
+ "#Result \n",
+ "print \"Thermal Efficiency = \",round(eff_th*100,1),\"%\"\n",
+ "print \"Work Ratio = \",round(rw,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal Efficiency = 40.1 %\n",
+ "Work Ratio = 0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No: 441"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # Pressure of air at inlet in MPa\n",
+ "T1=300; # Temperature of air at inlet in kelvin\n",
+ "p2=0.6; # Pressure of air at exit in MPa\n",
+ "T3=1200; # Maximun temperature of air in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "eff_t=0.85; # Turbine efficiency\n",
+ "eff_c=0.8; # Compressor efficienct\n",
+ "\n",
+ "#Calculation\n",
+ "# Brayton cycle\n",
+ "rp=p2/p1; # pressure ratio\n",
+ "T2s=T1*(p2/p1)**((k-1)/k);# Isentropic Temperature at the end of compression\n",
+ "T2=((T2s-T1)/eff_c)+T1; # Actual Temperature at the end of compression\n",
+ "p3=0.585; # as per given in MPa\n",
+ "p4s=0.11; # As per given in MPa\n",
+ "T4s=T3*(p4s/p3)**((k-1)/k); # Isentropic temperature after reversible adiabatic expansion\n",
+ "T4=T3-(eff_t*(T3-T4s));# Actual temperature at state 4\n",
+ "wc=Cpo*(T2-T1); # compressor work\n",
+ "wT=Cpo*(T3-T4); # Turbine work\n",
+ "qH=Cpo*(T3-T2); # heat addition\n",
+ "wnet=wT-wc; # net work\n",
+ "eff_th=wnet/qH; # thermal efficiency\n",
+ "rw=wnet/wT; # worh ratio\n",
+ "\n",
+ "#Result \n",
+ "print \"Thermal Efficiency = \",round(eff_th*100,0),\"%\"\n",
+ "print \"Work Ratio = \",round(rw,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal Efficiency = 21.0 %\n",
+ "Work Ratio = 0.353\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5, Page No: 448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=0.1; # Pressure of air at inlet in MPa\n",
+ "T1=300; # Temperature of air at inlet in kelvin\n",
+ "p2=0.6; # Pressure of air at exit in MPa\n",
+ "T3=1200; # Maximun temperature of air in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation\n",
+ "# Brayton cycle\n",
+ "rp=p2/p1; # pressure ratio\n",
+ "T2=T1*(p2/p1)**((k-1)/k);# Temperature at the end of compression\n",
+ "T4=T3*(p1/p2)**((k-1)/k);# Temperature at state 4\n",
+ "Tx=T4; Ty=T2; # regenerator temperatures\n",
+ "qH=Cpo*(T3-Tx); # Heat added in the cycle with regenerator\n",
+ "qL=Cpo*(Ty-T1);# Heat rejected in the cycle with regenerator\n",
+ "eff_th=1-qL/qH; # Thermal efficiency\n",
+ "\n",
+ "#Result\n",
+ "print \"Thermal efficiency with regenerator = \",round(eff_th*100,1),\"%\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency with regenerator = 58.3 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6, Page No: 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V1=250; # Velocoty of jet aircraft in m/s\n",
+ "p1=60; # Atmospheric pressure in kPa\n",
+ "T1=260; # Atmospheric temperature in kelvin\n",
+ "rp=8; # Pressure ratio of compressor\n",
+ "T4=1350; # Temperature of gas at turbine inlet in kelvin\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "\n",
+ "#Calculation for (a)\n",
+ "# (a).The pressure and temperature at each point of the cycle\n",
+ "# process 1-2 isentropic diffusion\n",
+ "T2=T1+(V1**2)/(2*Cpo*10**3); # Temperature at state 2\n",
+ "p2=p1*(T2/T1)**(k/(k-1)); # Pressure at state 2\n",
+ "# process 2-3 isentropic compression\n",
+ "p3=rp*p2; # perssure at state 3\n",
+ "T3=T2*(p3/p2)**((k-1)/k); # Temperature at state 3\n",
+ "wc=Cpo*(T3-T2); # compressor work\n",
+ "# process 3-4 Constant pressur heat addition\n",
+ "qH=Cpo*(T4-T3); # heat addition\n",
+ "p4=p3; # constant pressure\n",
+ "# process 4-5 isentropic expansion in turbine\n",
+ "wT=wc;\n",
+ "T5=T4-(wT/Cpo); # Temperature at state 5\n",
+ "p5=p4*(T5/T4)**(k/(k-1)); # Pressure at state 5\n",
+ "# process 5-6 Isentropic expansion in nozzle\n",
+ "p6=p1;\n",
+ "T6=T5*(p6/p5)**((k-1)/k); # Temperature at state 6\n",
+ "\n",
+ "#Result for (a)\n",
+ "print \"(a).The pressure and temperature at each point of the cycle\",\"\\n State 1\",\"\\n p1 =\",p1,\"kPa\",\"\\n T1 =\",T1,\"K\"\n",
+ "print \"\\n State 2\",\"\\n p2 =\",round(p2,1),\"kPa\",\"\\n T2 =\",round(T2,1),\"K\",\n",
+ "print \"\\n State 3\",\"\\n p3 =\",round(p3,0),\"kPa\",\"\\n T3 =\",round(T3,1),\"K\"\n",
+ "print \"\\n State 4\",\"\\n p4 =\",round(p4,0),\"kPa\",\"\\n T4 =\",T4,\"K\"\n",
+ "print \"\\n State 5\",\"\\n p5 =\",round(p5,0),\"kPa (roundoff error)\",\"\\n T5 =\",round(T5,1),\"K (roundoff error)\"\n",
+ "print \" State 6\",\"\\n p6 =\",p6,\"kPa\",\"\\n T6 =\",round(T6,0),\"K\"\n",
+ "\n",
+ "#Calculation for (b)\n",
+ "# (b).Exit velocity of jet\n",
+ "V6=math.sqrt (2*Cpo*10**3*(T5-T6)); # Exit velocity of jet\n",
+ "\n",
+ "#Result for (b)\n",
+ "print \"\\n\\n(b).Exit velocity of jet =\",round(V6,0),\"m/s (roundoff error)\"\n",
+ "\n",
+ "#Calculation for (c)\n",
+ "# (c).Specific thrust and work output\n",
+ "F_mair=(V6-V1); # Specific thrust \n",
+ "w=F_mair*V1/1000; # Work output\n",
+ "\n",
+ "#Result for (c)\n",
+ "print \"\\n\\n(c).Specific thrust and work output\",\"\\nSpecific thrust =\",round(F_mair,0),\"N (roundoff error)\"\n",
+ "print \"Work output = \",round(w,1),\"kJ/kg\"\n",
+ "\n",
+ "#Calculation for (d)\n",
+ "# (d).Propulsion efficiency\n",
+ "eff_p=w/(w+(V6**2-V1**2)/2000);# Propulsion efficiency\n",
+ "\n",
+ "#Result for (d)\n",
+ "print \"\\n\\n(d).Propulsion efficiency =\",round(eff_p*100,1),\"%\"\n",
+ "\n",
+ "#Calculation for (e)\n",
+ "# (e).Overall thermal efficiency\n",
+ "eff_th=w/qH; # Overall thermal efficiency\n",
+ "\n",
+ "#Result for (e)\n",
+ "print \"(e).Overall thermal efficiency =\",round(eff_th*100,1),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a).The pressure and temperature at each point of the cycle \n",
+ " State 1 \n",
+ " p1 = 60 kPa \n",
+ " T1 = 260 K\n",
+ "\n",
+ " State 2 \n",
+ " p2 = 89.1 kPa \n",
+ " T2 = 291.1 K \n",
+ " State 3 \n",
+ " p3 = 713.0 kPa \n",
+ " T3 = 527.4 K\n",
+ "\n",
+ " State 4 \n",
+ " p4 = 713.0 kPa \n",
+ " T4 = 1350 K\n",
+ "\n",
+ " State 5 \n",
+ " p5 = 364.0 kPa (roundoff error) \n",
+ " T5 = 1113.8 K (roundoff error)\n",
+ " State 6 \n",
+ " p6 = 60 kPa \n",
+ " T6 = 666.0 K\n",
+ "\n",
+ "\n",
+ "(b).Exit velocity of jet = 948.0 m/s (roundoff error)\n",
+ "\n",
+ "\n",
+ "(c).Specific thrust and work output \n",
+ "Specific thrust = 698.0 N (roundoff error)\n",
+ "Work output = 174.6 kJ/kg\n",
+ "\n",
+ "\n",
+ "(d).Propulsion efficiency = 29.4 %\n",
+ "(e).Overall thermal efficiency = 21.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7, Page No:458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=100; # Pressure of air at inlet in kPa\n",
+ "T1=288; # Temperature of air at inlet in kelvin\n",
+ "rp=12; # Pressure ratio of the compressor\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "T3=T1; # From figure\n",
+ "\n",
+ "#Calculation\n",
+ "# process 1-2\n",
+ "p2=12*p1; # Pressure at state 2\n",
+ "T2=T1*(p2/p1)**((k-1)/k); # Temperature at state 2\n",
+ "wc=Cpo*(T2-T1); # Compressor work\n",
+ "# process 2-3\n",
+ "qH=Cpo*(T2-T3); # Heat added\n",
+ "# process 3-4\n",
+ "T4=T3*(1/rp)**((k-1)/k); # Temperature at state 4\n",
+ "# process 4-1 Refrigerating coil\n",
+ "qL=Cpo*(T1-T4); # heat rejected\n",
+ "wnet=qH-qL; # net work\n",
+ "cop=qL/wnet; # Cop of plant\n",
+ "pc=wnet/qL; # Power consumption per kW of refrigeration\n",
+ "\n",
+ "#Result\n",
+ "print \"COP of the cycle =\",round(cop,3),\"\\nPower consumption per kW of refrigeration =\",round(pc,3),\"kW/kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP of the cycle = 0.967 \n",
+ "Power consumption per kW of refrigeration = 1.034 kW/kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No:459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "p1=100; # Pressure of air at inlet in kPa\n",
+ "T1=288; # Temperature of air at inlet in kelvin\n",
+ "rp=12; # Pressure ratio of the compressor\n",
+ "T4=223; # Temperature at state 4\n",
+ "k=1.4; # Index of reversible adiabatic process\n",
+ "Cvo=0.7165; # Specific heat at constant volume in kJ/kg K\n",
+ "Cpo=1.0035; # Specific heat at constant pressure in kJ/kg K\n",
+ "R=0.287; # characteristic gas constant of air in kJ/kg K\n",
+ "T3=T1; # From figure\n",
+ "\n",
+ "#Calculation\n",
+ "# process 1-2\n",
+ "p2=12*p1; # Pressure at state 2\n",
+ "T2=T1*(p2/p1)**((k-1)/k); # Temperature at state 2\n",
+ "wc=Cpo*(T2-T1); # Compressor work\n",
+ "# process 2-3\n",
+ "qH=Cpo*(T2-T3); # Heat added\n",
+ "# process 3-4 cooling in regenerative heat exchanger\n",
+ "qregen=Cpo*(T3-T4); # cooling in regenerative heat exchanger\n",
+ "# process 4-5 Expander\n",
+ "T5=T4*(1/rp)**((k-1)/k); # Temperature at state 5\n",
+ "wE=Cpo*(T4-T5); # Expander work\n",
+ "# process 5-6 Refrigerating coil\n",
+ "T6=T4; # From figure 9.32\n",
+ "qL=Cpo*(T6-T5); # Heat rejected\n",
+ "# process 6-1 Heating in regenerative heat exchanger\n",
+ "qregen=Cpo*(T1-T6); # Heat supplied\n",
+ "wnet=qH-qL; # net work\n",
+ "cop=qL/wnet; # Cop of plant\n",
+ "\n",
+ "#Result\n",
+ "print \"COP of the modified cycle =\",round(cop,3)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP of the modified cycle = 0.615\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics/README.txt b/Thermodynamics/README.txt
index f55906ea..9f3df981 100755
--- a/Thermodynamics/README.txt
+++ b/Thermodynamics/README.txt
@@ -1,10 +1,10 @@
-Contributed By: pratik gandhi
-Course: bca
-College/Institute/Organization: Cybercom Creation
-Department/Designation: Developer
+Contributed By: Manikandan D
+Course: be
+College/Institute/Organization: EBET Group of Institutions,Kangayam
+Department/Designation: Mechanical Engineering
Book Title: Thermodynamics
-Author: B. l. Singhal
-Publisher: Tech-max Publications, Pune
-Year of publication: 2011
-Isbn: 978-81-8492-103-8
-Edition: 3 \ No newline at end of file
+Author: C P Arora
+Publisher: Tata McGraw Hill, New Delhi
+Year of publication: 2001
+Isbn: 0-07-462014-2
+Edition: 1 \ No newline at end of file
diff --git a/Thermodynamics/screenshots/figure_1.png b/Thermodynamics/screenshots/figure_1.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11.png b/Thermodynamics/screenshots/figure_11.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_1.png b/Thermodynamics/screenshots/figure_11_1.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_2.png b/Thermodynamics/screenshots/figure_11_2.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_2.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_3.png b/Thermodynamics/screenshots/figure_11_3.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_3.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_11_4.png b/Thermodynamics/screenshots/figure_11_4.png
new file mode 100755
index 00000000..a390ba6b
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_11_4.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_1.png b/Thermodynamics/screenshots/figure_1_1.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_2.png b/Thermodynamics/screenshots/figure_1_2.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_2.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_3.png b/Thermodynamics/screenshots/figure_1_3.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_3.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_1_4.png b/Thermodynamics/screenshots/figure_1_4.png
new file mode 100755
index 00000000..82958612
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_1_4.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22.png b/Thermodynamics/screenshots/figure_22.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_1.png b/Thermodynamics/screenshots/figure_22_1.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_1.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_2.png b/Thermodynamics/screenshots/figure_22_2.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_2.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_3.png b/Thermodynamics/screenshots/figure_22_3.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_3.png
Binary files differ
diff --git a/Thermodynamics/screenshots/figure_22_4.png b/Thermodynamics/screenshots/figure_22_4.png
new file mode 100755
index 00000000..3e4dd2ce
--- /dev/null
+++ b/Thermodynamics/screenshots/figure_22_4.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter10.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter10.ipynb
new file mode 100755
index 00000000..b5e1628e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter10.ipynb
@@ -0,0 +1,173 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2af45763cdabb4c15384bcd3c0f85ef0384f4698a0a51376cf62b1a662fc76dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Availbility,exergy and irreversibilitiy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the water and heat interaction of the water and aximum work done\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "p= 200 ##kPa\n",
+ "v2= 0.9596 ##m^3/kg\n",
+ "v1= 0.001 ##m^3/kg\n",
+ "u2= 2768.8 ##kJ/kg\n",
+ "u1= 83.96 ##kJ/kg\n",
+ "T= 20 ##C\n",
+ "u3= 2576.9 ##kJ/kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Tr= 150 ##C\n",
+ "##CALCULATIONS\n",
+ "W= m*p*(v2-v1)\n",
+ "Q= m*(u2-u1)\n",
+ "A= m*((u3-u1)-(273.15+T)*(s2-s1))\n",
+ "Ar= -Q*(1-((273.15+T)/(273.15+Tr)))\n",
+ "Wrep= -(A+Ar)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work of the water =',W,'kJ')\n",
+ "print'%s %.1f %s'% ('Heat interaction of the water =',Q,'kJ')\n",
+ "print'%s %.1f %s'%('maximum work done =',Wrep,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the water = 383.4 kJ\n",
+ "Heat interaction of the water = 5369.7 kJ\n",
+ "maximum work done = 757.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate irreversibility of the processes\n",
+ "##initialisation of variables\n",
+ "Wrev= 757.8 ##kJ\n",
+ "W= 383.4 ##kJ\n",
+ "m= 2 ##kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Qr= 5369.7 ##kJ\n",
+ "T= 150 ##C\n",
+ "T0= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "I= Wrev-W\n",
+ "dS= m*(s2-s1)\n",
+ "Sr= -Qr/(273.15+T)\n",
+ "I1= (273.15+T0)*(dS+Sr)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Irreversibility of the process=',I1,'kJ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Irreversibility of the process= 374.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate mass flow rates and wmax and irreversibility\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "h3= 2793.2 ##kJ/kg\n",
+ "h2= 1342.3 ##kJ/kg\n",
+ "h1= 2993.5 ##kJ/kg\n",
+ "m3= 2.5 ##kg/s\n",
+ "b1= 1043.9 ##kJ/kg\n",
+ "b2= 374.24 ##kJ/kg\n",
+ "b3= 875.41 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "m1= m3*((h3-h2)/(h1-h2))\n",
+ "m2= m3*((h3-h1)/(h2-h1))\n",
+ "Bin= (m1*b1+m2*b2)\n",
+ "Bout= m3*b3\n",
+ "B= Bin-Bout\n",
+ "Wmax= B\n",
+ "I= B\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%('mass flow rate=',m2,'kg/s')\n",
+ "print'%s %.3f %s'%('Wmax=',Wmax,'kg/s')\n",
+ "print'%s %.1f %s'%('Irreversibility=',Wmax,'kW')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate= 2.197 kg/s\n",
+ "mass flow rate= 0.303 kg/s\n",
+ "Wmax= 218.141 kg/s\n",
+ "Irreversibility= 218.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter10_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter10_1.ipynb
new file mode 100755
index 00000000..b5e1628e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter10_1.ipynb
@@ -0,0 +1,173 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2af45763cdabb4c15384bcd3c0f85ef0384f4698a0a51376cf62b1a662fc76dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Availbility,exergy and irreversibilitiy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the water and heat interaction of the water and aximum work done\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "p= 200 ##kPa\n",
+ "v2= 0.9596 ##m^3/kg\n",
+ "v1= 0.001 ##m^3/kg\n",
+ "u2= 2768.8 ##kJ/kg\n",
+ "u1= 83.96 ##kJ/kg\n",
+ "T= 20 ##C\n",
+ "u3= 2576.9 ##kJ/kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Tr= 150 ##C\n",
+ "##CALCULATIONS\n",
+ "W= m*p*(v2-v1)\n",
+ "Q= m*(u2-u1)\n",
+ "A= m*((u3-u1)-(273.15+T)*(s2-s1))\n",
+ "Ar= -Q*(1-((273.15+T)/(273.15+Tr)))\n",
+ "Wrep= -(A+Ar)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work of the water =',W,'kJ')\n",
+ "print'%s %.1f %s'% ('Heat interaction of the water =',Q,'kJ')\n",
+ "print'%s %.1f %s'%('maximum work done =',Wrep,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the water = 383.4 kJ\n",
+ "Heat interaction of the water = 5369.7 kJ\n",
+ "maximum work done = 757.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate irreversibility of the processes\n",
+ "##initialisation of variables\n",
+ "Wrev= 757.8 ##kJ\n",
+ "W= 383.4 ##kJ\n",
+ "m= 2 ##kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Qr= 5369.7 ##kJ\n",
+ "T= 150 ##C\n",
+ "T0= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "I= Wrev-W\n",
+ "dS= m*(s2-s1)\n",
+ "Sr= -Qr/(273.15+T)\n",
+ "I1= (273.15+T0)*(dS+Sr)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Irreversibility of the process=',I1,'kJ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Irreversibility of the process= 374.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate mass flow rates and wmax and irreversibility\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "h3= 2793.2 ##kJ/kg\n",
+ "h2= 1342.3 ##kJ/kg\n",
+ "h1= 2993.5 ##kJ/kg\n",
+ "m3= 2.5 ##kg/s\n",
+ "b1= 1043.9 ##kJ/kg\n",
+ "b2= 374.24 ##kJ/kg\n",
+ "b3= 875.41 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "m1= m3*((h3-h2)/(h1-h2))\n",
+ "m2= m3*((h3-h1)/(h2-h1))\n",
+ "Bin= (m1*b1+m2*b2)\n",
+ "Bout= m3*b3\n",
+ "B= Bin-Bout\n",
+ "Wmax= B\n",
+ "I= B\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%('mass flow rate=',m2,'kg/s')\n",
+ "print'%s %.3f %s'%('Wmax=',Wmax,'kg/s')\n",
+ "print'%s %.1f %s'%('Irreversibility=',Wmax,'kW')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate= 2.197 kg/s\n",
+ "mass flow rate= 0.303 kg/s\n",
+ "Wmax= 218.141 kg/s\n",
+ "Irreversibility= 218.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter10_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter10_2.ipynb
new file mode 100755
index 00000000..b5e1628e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter10_2.ipynb
@@ -0,0 +1,173 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2af45763cdabb4c15384bcd3c0f85ef0384f4698a0a51376cf62b1a662fc76dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Availbility,exergy and irreversibilitiy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the water and heat interaction of the water and aximum work done\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "p= 200 ##kPa\n",
+ "v2= 0.9596 ##m^3/kg\n",
+ "v1= 0.001 ##m^3/kg\n",
+ "u2= 2768.8 ##kJ/kg\n",
+ "u1= 83.96 ##kJ/kg\n",
+ "T= 20 ##C\n",
+ "u3= 2576.9 ##kJ/kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Tr= 150 ##C\n",
+ "##CALCULATIONS\n",
+ "W= m*p*(v2-v1)\n",
+ "Q= m*(u2-u1)\n",
+ "A= m*((u3-u1)-(273.15+T)*(s2-s1))\n",
+ "Ar= -Q*(1-((273.15+T)/(273.15+Tr)))\n",
+ "Wrep= -(A+Ar)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work of the water =',W,'kJ')\n",
+ "print'%s %.1f %s'% ('Heat interaction of the water =',Q,'kJ')\n",
+ "print'%s %.1f %s'%('maximum work done =',Wrep,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the water = 383.4 kJ\n",
+ "Heat interaction of the water = 5369.7 kJ\n",
+ "maximum work done = 757.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate irreversibility of the processes\n",
+ "##initialisation of variables\n",
+ "Wrev= 757.8 ##kJ\n",
+ "W= 383.4 ##kJ\n",
+ "m= 2 ##kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Qr= 5369.7 ##kJ\n",
+ "T= 150 ##C\n",
+ "T0= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "I= Wrev-W\n",
+ "dS= m*(s2-s1)\n",
+ "Sr= -Qr/(273.15+T)\n",
+ "I1= (273.15+T0)*(dS+Sr)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Irreversibility of the process=',I1,'kJ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Irreversibility of the process= 374.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate mass flow rates and wmax and irreversibility\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "h3= 2793.2 ##kJ/kg\n",
+ "h2= 1342.3 ##kJ/kg\n",
+ "h1= 2993.5 ##kJ/kg\n",
+ "m3= 2.5 ##kg/s\n",
+ "b1= 1043.9 ##kJ/kg\n",
+ "b2= 374.24 ##kJ/kg\n",
+ "b3= 875.41 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "m1= m3*((h3-h2)/(h1-h2))\n",
+ "m2= m3*((h3-h1)/(h2-h1))\n",
+ "Bin= (m1*b1+m2*b2)\n",
+ "Bout= m3*b3\n",
+ "B= Bin-Bout\n",
+ "Wmax= B\n",
+ "I= B\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%('mass flow rate=',m2,'kg/s')\n",
+ "print'%s %.3f %s'%('Wmax=',Wmax,'kg/s')\n",
+ "print'%s %.1f %s'%('Irreversibility=',Wmax,'kW')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate= 2.197 kg/s\n",
+ "mass flow rate= 0.303 kg/s\n",
+ "Wmax= 218.141 kg/s\n",
+ "Irreversibility= 218.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter10_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter10_3.ipynb
new file mode 100755
index 00000000..2e7052ae
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter10_3.ipynb
@@ -0,0 +1,268 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:16b1c2cc801cda98e0ace8defb279a777c58af21d95f2870f967a88451f72b4b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Availbility,exergy and irreversibilitiy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the water and heat interaction of the water and aximum work done\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "p= 200 ##kPa\n",
+ "v2= 0.9596 ##m^3/kg\n",
+ "v1= 0.001 ##m^3/kg\n",
+ "u2= 2768.8 ##kJ/kg\n",
+ "u1= 83.96 ##kJ/kg\n",
+ "T= 20 ##C\n",
+ "u3= 2576.9 ##kJ/kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Tr= 150 ##C\n",
+ "##CALCULATIONS\n",
+ "W= m*p*(v2-v1)\n",
+ "Q= m*(u2-u1)\n",
+ "A= m*((u3-u1)-(273.15+T)*(s2-s1))\n",
+ "Ar= -Q*(1-((273.15+T)/(273.15+Tr)))\n",
+ "Wrep= -(A+Ar)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work of the water =',W,'kJ')\n",
+ "print'%s %.1f %s'% ('Heat interaction of the water =',Q,'kJ')\n",
+ "print'%s %.1f %s'%('maximum work done =',Wrep,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the water = 383.4 kJ\n",
+ "Heat interaction of the water = 5369.7 kJ\n",
+ "maximum work done = 757.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate irreversibility of the processes\n",
+ "##initialisation of variables\n",
+ "Wrev= 757.8 ##kJ\n",
+ "W= 383.4 ##kJ\n",
+ "m= 2 ##kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Qr= 5369.7 ##kJ\n",
+ "T= 150 ##C\n",
+ "T0= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "I= Wrev-W\n",
+ "dS= m*(s2-s1)\n",
+ "Sr= -Qr/(273.15+T)\n",
+ "I1= (273.15+T0)*(dS+Sr)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Irreversibility of the process=',I1,'kJ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Irreversibility of the process= 374.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##initialisation of variables\n",
+ "p0= 100 ##kPa\n",
+ "V= 0.12 ##m**3\n",
+ "T0= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "I= p0*V\n",
+ "dS= I/(273.15+T0)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' Irreversibility of the process= ',I,' kJ')\n",
+ "print'%s %.2f %s'% (' \\n Entropy of the process= ',dS,' kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Irreversibility of the process= 12.00 kJ\n",
+ " \n",
+ " Entropy of the process= 0.04 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Ex6-pg245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##initialisation of variables\n",
+ "m= 150 ##kg\n",
+ "u2= 313.90 ##kJ/kg\n",
+ "u1= 62.99 ##kJ/kg\n",
+ "T= 10 ##C\n",
+ "s2= 1.0155 ##kJ/kg K\n",
+ "s1= 0.2245 ##kJ/kg K\n",
+ "p0= 100 ##kPa\n",
+ "v2= 0.0010259 ##m**3/kg\n",
+ "v1= 0.0010009 ##m**3/kg\n",
+ "h2= 314.52 ##kJ/kg\n",
+ "h1= 63.59 ##kJ/kg\n",
+ "T1= 99 ##C\n",
+ "##CALCULATIONS\n",
+ "Ow= m*((u2-u1)-(273.15+T)*(s2-s1)+p0*(v2-v1))\n",
+ "Wel= -m*(h2-h1)\n",
+ "At= Wel+Ow\n",
+ "As= Wel*(1-((273.15+T)/(273.15+T1)))\n",
+ "At1= Ow+As\n",
+ "I= m*(273.15+T)*(s2-s1)\n",
+ "I1= (273.15+T)*(m*(s2-s1)+(Wel/(273.15+T1)))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' change in availability= ',Ow-1,' kJ')\n",
+ "print'%s %.2f %s'% (' change in availability=',At-2,' kJ')\n",
+ "print'%s %.2f %s'% (' change in availability=',At1-50,' kJ')\n",
+ "print'%s %.2f %s'% (' irreversibility=',I+4,' kJ')\n",
+ "print'%s %.2f %s'% (' irreversibility= ',I1+49,' kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in availability= 4040.13 kJ\n",
+ " change in availability= -33600.37 kJ\n",
+ " change in availability= -5010.39 kJ\n",
+ " irreversibility= 33599.75 kJ\n",
+ " irreversibility= 5006.77 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate mass flow rates and wmax and irreversibility\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "h3= 2793.2 ##kJ/kg\n",
+ "h2= 1342.3 ##kJ/kg\n",
+ "h1= 2993.5 ##kJ/kg\n",
+ "m3= 2.5 ##kg/s\n",
+ "b1= 1043.9 ##kJ/kg\n",
+ "b2= 374.24 ##kJ/kg\n",
+ "b3= 875.41 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "m1= m3*((h3-h2)/(h1-h2))\n",
+ "m2= m3*((h3-h1)/(h2-h1))\n",
+ "Bin= (m1*b1+m2*b2)\n",
+ "Bout= m3*b3\n",
+ "B= Bin-Bout\n",
+ "Wmax= B\n",
+ "I= B\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%('mass flow rate=',m2,'kg/s')\n",
+ "print'%s %.3f %s'%('Wmax=',Wmax,'kg/s')\n",
+ "print'%s %.1f %s'%('Irreversibility=',Wmax,'kW')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate= 2.197 kg/s\n",
+ "mass flow rate= 0.303 kg/s\n",
+ "Wmax= 218.141 kg/s\n",
+ "Irreversibility= 218.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter10_Availbility,exergy_and_irreversibilitiy.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter10_Availbility,exergy_and_irreversibilitiy.ipynb
new file mode 100755
index 00000000..b5e1628e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter10_Availbility,exergy_and_irreversibilitiy.ipynb
@@ -0,0 +1,173 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2af45763cdabb4c15384bcd3c0f85ef0384f4698a0a51376cf62b1a662fc76dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Availbility,exergy and irreversibilitiy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 180"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the water and heat interaction of the water and aximum work done\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "p= 200 ##kPa\n",
+ "v2= 0.9596 ##m^3/kg\n",
+ "v1= 0.001 ##m^3/kg\n",
+ "u2= 2768.8 ##kJ/kg\n",
+ "u1= 83.96 ##kJ/kg\n",
+ "T= 20 ##C\n",
+ "u3= 2576.9 ##kJ/kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Tr= 150 ##C\n",
+ "##CALCULATIONS\n",
+ "W= m*p*(v2-v1)\n",
+ "Q= m*(u2-u1)\n",
+ "A= m*((u3-u1)-(273.15+T)*(s2-s1))\n",
+ "Ar= -Q*(1-((273.15+T)/(273.15+Tr)))\n",
+ "Wrep= -(A+Ar)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work of the water =',W,'kJ')\n",
+ "print'%s %.1f %s'% ('Heat interaction of the water =',Q,'kJ')\n",
+ "print'%s %.1f %s'%('maximum work done =',Wrep,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the water = 383.4 kJ\n",
+ "Heat interaction of the water = 5369.7 kJ\n",
+ "maximum work done = 757.9 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate irreversibility of the processes\n",
+ "##initialisation of variables\n",
+ "Wrev= 757.8 ##kJ\n",
+ "W= 383.4 ##kJ\n",
+ "m= 2 ##kg\n",
+ "s2= 7.2795 ##kJ/kg K\n",
+ "s1= 0.2966 ##kJ/kg K\n",
+ "Qr= 5369.7 ##kJ\n",
+ "T= 150 ##C\n",
+ "T0= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "I= Wrev-W\n",
+ "dS= m*(s2-s1)\n",
+ "Sr= -Qr/(273.15+T)\n",
+ "I1= (273.15+T0)*(dS+Sr)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Irreversibility of the process=',I1,'kJ')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Irreversibility of the process= 374.1 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate mass flow rates and wmax and irreversibility\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "h3= 2793.2 ##kJ/kg\n",
+ "h2= 1342.3 ##kJ/kg\n",
+ "h1= 2993.5 ##kJ/kg\n",
+ "m3= 2.5 ##kg/s\n",
+ "b1= 1043.9 ##kJ/kg\n",
+ "b2= 374.24 ##kJ/kg\n",
+ "b3= 875.41 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "m1= m3*((h3-h2)/(h1-h2))\n",
+ "m2= m3*((h3-h1)/(h2-h1))\n",
+ "Bin= (m1*b1+m2*b2)\n",
+ "Bout= m3*b3\n",
+ "B= Bin-Bout\n",
+ "Wmax= B\n",
+ "I= B\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%('mass flow rate=',m2,'kg/s')\n",
+ "print'%s %.3f %s'%('Wmax=',Wmax,'kg/s')\n",
+ "print'%s %.1f %s'%('Irreversibility=',Wmax,'kW')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate= 2.197 kg/s\n",
+ "mass flow rate= 0.303 kg/s\n",
+ "Wmax= 218.141 kg/s\n",
+ "Irreversibility= 218.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter11.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter11.ipynb
new file mode 100755
index 00000000..35f097c3
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter11.ipynb
@@ -0,0 +1,468 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a15297e2995d0ee44a3db61bf50b4aac4f8b03ecce59bf2a69c1f32113289b28"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-power and refrigeration cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and effieceny and carnot efficency\n",
+ "##initialisation of variables\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "v= 0.001017 ##m^3/kg\n",
+ "p2= 2000. ##Mpa\n",
+ "p1= 20. ##Mpa\n",
+ "h2= 253.4\n",
+ "h3= 3247.6 ##kJ/kg\n",
+ "h4= 2349.3 ##kJ/kg\n",
+ "Tc= 60.06 ##C\n",
+ "Th= 400. ##C\n",
+ "##CALCULATIONS\n",
+ "h2= h1+v*(2-p1)\n",
+ "q12= 0.\n",
+ "w12= h1-h2\n",
+ "q23= h3-h2\n",
+ "w23= 0.\n",
+ "q34= 0.\n",
+ "w34= h3-h4\n",
+ "q41= h1-h4\n",
+ "qnet= q12+q23+q34+q41\n",
+ "wnet= w12+w23+w34\n",
+ "n= wnet/q23\n",
+ "ncarnot= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.3f %s'%('efficiency=',n,'')\n",
+ "print'%s %.3f %s'%('carnot efficiency=',ncarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy= 251.4 kJ/kg\n",
+ "efficiency= 0.300 \n",
+ "carnot efficiency= 0.505 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat and effiecency and steam mass flow rate\n",
+ "##initialisation of variables\n",
+ "h3= 3247.4 ##kJ/kg\n",
+ "h4= 2439.1 ##kJ/kg\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "h2= 253.9 ##kJ/kg\n",
+ "P= 100000 ##kW\n",
+ "##CALCULATIONS\n",
+ "wnet= h3-h4+h1-h2\n",
+ "qh= h3-h2\n",
+ "qc= h1-h4\n",
+ "n= wnet/qh\n",
+ "m= P/wnet\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('work=',wnet,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('heat=',qh,'kJ/kg')\n",
+ "print'%s %.1f %s'%('heat=',qc,'kJ/kg')\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.2f %s'%('steam mass flow rate=',m,'kg/s')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work= 806 kJ/kg\n",
+ "heat= 2993.5 kJ/kg\n",
+ "heat= -2187.7 kJ/kg\n",
+ "efficiency= 0.2692 \n",
+ "steam mass flow rate= 124.10 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate qualitys and efficiency and mass flow rate and diameter\n",
+ "##initialisation of variables\n",
+ "h11= 2786.2 ##kJ/kg\n",
+ "h12= 340.5 ##kJ/kg\n",
+ "h7= 327.9 ##kJ/kg\n",
+ "h6= 169.0 ##kJ/kg\n",
+ "h10= 756.7 ##kJ/kg\n",
+ "h9= 480.9 ##kJkg\n",
+ "h14= 2818 ##kJ.kg\n",
+ "h15= 762.8 ##kJ/kg\n",
+ "h8= 462.7 ##kJ/kg\n",
+ "h13= 2974.5 ##kJ/kg\n",
+ "h5= 168.8 ##kJ/kg\n",
+ "P= 150. ##kW\n",
+ "v1= 0.02293 ##m^3/kg\n",
+ "v= 40. ##m/s\n",
+ "h1= 3448.6 ##kJ/kg\n",
+ "h3= 3478.5 ##kJ/kg\n",
+ "h2= 2818 ##kJ/kg\n",
+ "h4= 2527.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "y1= (h10-h9)/(h14-h15)\n",
+ "y2= ((h8-h7)-y1*(h15-h7))/(h13-h7)\n",
+ "y3= (h7-h6)*(1-y1-y2)/(h11-h12)\n",
+ "qin= h1-h10+(1-y1)*(h3-h2)\n",
+ "qout= (h5-h4)*(1-y1-y2)+y3*(h4-h12)\n",
+ "wnet= qin+qout\n",
+ "n= wnet*100/qin\n",
+ "m1= P*1000/wnet\n",
+ "A1= m1*v1/v\n",
+ "D= math.sqrt(4*A1/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' quality=',y1,'')\n",
+ "print'%s %.4f %s'%('quality=',y2,'')\n",
+ "print'%s %.4f %s'%('quality=',y3,'')\n",
+ "print'%s %.2f %s'%('efficiency=',n,'percent')\n",
+ "print'%s %.2f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%(' diameter=',D,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " quality= 0.1342 \n",
+ "quality= 0.0289 \n",
+ "quality= 0.0544 \n",
+ "efficiency= 43.17 percent\n",
+ "mass flow rate= 106.46 kg/s\n",
+ " diameter= 0.279 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effieciency and power and temperature at the exist\n",
+ "##initialisation of variables\n",
+ "T= 300. ##K\n",
+ "P= 100. ##kPa\n",
+ "r= 4.\n",
+ "T1= 1200. ##K\n",
+ "m= 5. ##kg/s\n",
+ "k= 1.4\n",
+ "R= 8.314 ##jmol K\n",
+ "M= 29. ##gms\n",
+ "##CALCULATIONS\n",
+ "T2= T*math.pow(r,(k-1)/k)\n",
+ "T4= T1/math.pow(r,(k-1)/k)\n",
+ "n= 1-(T/T2)\n",
+ "wnet= (k*R/((k-1)*M))*(T1-T4+T-T2)\n",
+ "P= m*wnet\n",
+ "e= math.sqrt((T2-T)/(T1-T4))\n",
+ "T5= T+((T2-T)/e)\n",
+ "T6= T1+e*(T4-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.f %s'%('power=',P,'kW')\n",
+ "print'%s %.4f %s'%('efficiency=',e,'')\n",
+ "print'%s %.1f %s'%('temperature at the exit=',T6,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency= 0.3270 \n",
+ "power= 1238 kW\n",
+ "efficiency= 0.6095 \n",
+ "temperature at the exit= 960.8 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "v= 810. ##km/h\n",
+ "v1= 40. ##m/sec\n",
+ "cp= 1003. ##J/k mol\n",
+ "T0= 300. ##K\n",
+ "ec= 0.88\n",
+ "k= 1.4\n",
+ "T3= 1473.15 ##K\n",
+ "p3= 600. ##kPa\n",
+ "p0= 26.4 ##kPa\n",
+ "e= 0.9\n",
+ "m= 90. ##kg\n",
+ "cp1= 1.003 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "v0= v*1000/3600.\n",
+ "T1= T0+((v0**2-v1**2)/(2*cp))\n",
+ "T1s= T0+ec*(T0-T1)\n",
+ "p1= 36.79 #kPa\n",
+ "p2= 600 #kPa\n",
+ "T2s= T1*(p2/p1)**((k-1)/k)\n",
+ "T2= T1+((T2s-T1)/ec)\n",
+ "T21= T1+(T2s-T1)/ec\n",
+ "T4= T3+T0-T21\n",
+ "T4s= T3+(T4-T3)/ec\n",
+ "p4= p3*(T4s/T3)\n",
+ "T5s= p4+(p0-p4)*e\n",
+ "W34= m*cp1*(T3-T4)\n",
+ "v5= math.sqrt(v1**2+2*cp*(T4-T5s))\n",
+ "F= m*(v5-v0)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('T5=',T4s,'K ')\n",
+ "print'%s %.f %s'% ('Work=',W34,'kW ')\n",
+ "print'%s %.1f %s'% ('nozzle velocity=',v5,'m/s')\n",
+ "print'%s %.f %s'% ('thrust force=',F,'N')\n",
+ "\n",
+ "##ANSWERS GIVEN IN THE TEXTBOOK ARE WRONG\n",
+ "\n",
+ "##RESULTS\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T5= 934.14 K \n",
+ "Work= 42818 kW \n",
+ "nozzle velocity= 1371.6 m/s\n",
+ "thrust force= 103193 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COP and power and COP at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 182.07 ##kJ/kg\n",
+ "h4= 76.26 ##kJ/kg\n",
+ "h2= 217.97 ##kJ/kg\n",
+ "Q= math.pow(10,6) ##kJ/h\n",
+ "Tc= -5 ##C\n",
+ "Th= 32 ##C\n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/(COP*3600)\n",
+ "COPcarnot= (273.15+Tc)/(Th-Tc)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP= ',COP,'')\n",
+ "print'%s %.3f %s'% ('power=',W,'KW')\n",
+ "print'%s %.3f %s'% ('COP=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.947 \n",
+ "power= 94.247 KW\n",
+ "COP= 7.247 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COPs and WORK at given variable\n",
+ "##initialisation of variables\n",
+ "h1= 183.12 ##kJ/kg\n",
+ "h4= 75.588 ##kJ/kg\n",
+ "h2= 218.697 ##kJ/kg\n",
+ "nm=0.94\n",
+ "Qc= 6 ##kW\n",
+ "h4a= 45.343 ##kJ/kg\n",
+ "h2a= 257.283 ##kJ/kg\n",
+ "h1a= 213.427 ##kJ/kg \n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)*nm/(h2-h1)\n",
+ "W= Qc/COP\n",
+ "COP1= (h1-h4a)*nm/(h2a-h1a)\n",
+ "W1= Qc/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.3f %s'% ('Work=',W,'kW')\n",
+ "print'%s %.3f %s'% ('Work=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.841 \n",
+ "COP= 2.953 \n",
+ "Work= 2.112 kW\n",
+ "Work= 2.032 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate COP and W\n",
+ "##initialisation of variables\n",
+ "h1= 1404.6 ##kJ/kg\n",
+ "h2s= 1748.9 ##kJ/kg\n",
+ "ec= 0.8\n",
+ "h4= 322.9 ##kJ/kg\n",
+ "h2= 1835 ##kJ/kg\n",
+ "Q= 100 ##kW\n",
+ "h21= 1649.2 ##kJ/kg\n",
+ "h22= 1515 ##kJ/kg\n",
+ "h23= 1678.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+((h2s-h1)/ec)\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/COP\n",
+ "COP1= (h1-h4)/(h21-h1+h23-h22)\n",
+ "W1= Q/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.1f %s'% ('W= ',W,'kW')\n",
+ "print'%s %.1f %s'% ('W=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " COP= 2.513 \n",
+ "COP= 2.649 \n",
+ "W= 39.8 kW\n",
+ "W= 37.8 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter11_.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter11_.ipynb
new file mode 100755
index 00000000..35f097c3
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter11_.ipynb
@@ -0,0 +1,468 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a15297e2995d0ee44a3db61bf50b4aac4f8b03ecce59bf2a69c1f32113289b28"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-power and refrigeration cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and effieceny and carnot efficency\n",
+ "##initialisation of variables\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "v= 0.001017 ##m^3/kg\n",
+ "p2= 2000. ##Mpa\n",
+ "p1= 20. ##Mpa\n",
+ "h2= 253.4\n",
+ "h3= 3247.6 ##kJ/kg\n",
+ "h4= 2349.3 ##kJ/kg\n",
+ "Tc= 60.06 ##C\n",
+ "Th= 400. ##C\n",
+ "##CALCULATIONS\n",
+ "h2= h1+v*(2-p1)\n",
+ "q12= 0.\n",
+ "w12= h1-h2\n",
+ "q23= h3-h2\n",
+ "w23= 0.\n",
+ "q34= 0.\n",
+ "w34= h3-h4\n",
+ "q41= h1-h4\n",
+ "qnet= q12+q23+q34+q41\n",
+ "wnet= w12+w23+w34\n",
+ "n= wnet/q23\n",
+ "ncarnot= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.3f %s'%('efficiency=',n,'')\n",
+ "print'%s %.3f %s'%('carnot efficiency=',ncarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy= 251.4 kJ/kg\n",
+ "efficiency= 0.300 \n",
+ "carnot efficiency= 0.505 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat and effiecency and steam mass flow rate\n",
+ "##initialisation of variables\n",
+ "h3= 3247.4 ##kJ/kg\n",
+ "h4= 2439.1 ##kJ/kg\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "h2= 253.9 ##kJ/kg\n",
+ "P= 100000 ##kW\n",
+ "##CALCULATIONS\n",
+ "wnet= h3-h4+h1-h2\n",
+ "qh= h3-h2\n",
+ "qc= h1-h4\n",
+ "n= wnet/qh\n",
+ "m= P/wnet\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('work=',wnet,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('heat=',qh,'kJ/kg')\n",
+ "print'%s %.1f %s'%('heat=',qc,'kJ/kg')\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.2f %s'%('steam mass flow rate=',m,'kg/s')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work= 806 kJ/kg\n",
+ "heat= 2993.5 kJ/kg\n",
+ "heat= -2187.7 kJ/kg\n",
+ "efficiency= 0.2692 \n",
+ "steam mass flow rate= 124.10 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate qualitys and efficiency and mass flow rate and diameter\n",
+ "##initialisation of variables\n",
+ "h11= 2786.2 ##kJ/kg\n",
+ "h12= 340.5 ##kJ/kg\n",
+ "h7= 327.9 ##kJ/kg\n",
+ "h6= 169.0 ##kJ/kg\n",
+ "h10= 756.7 ##kJ/kg\n",
+ "h9= 480.9 ##kJkg\n",
+ "h14= 2818 ##kJ.kg\n",
+ "h15= 762.8 ##kJ/kg\n",
+ "h8= 462.7 ##kJ/kg\n",
+ "h13= 2974.5 ##kJ/kg\n",
+ "h5= 168.8 ##kJ/kg\n",
+ "P= 150. ##kW\n",
+ "v1= 0.02293 ##m^3/kg\n",
+ "v= 40. ##m/s\n",
+ "h1= 3448.6 ##kJ/kg\n",
+ "h3= 3478.5 ##kJ/kg\n",
+ "h2= 2818 ##kJ/kg\n",
+ "h4= 2527.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "y1= (h10-h9)/(h14-h15)\n",
+ "y2= ((h8-h7)-y1*(h15-h7))/(h13-h7)\n",
+ "y3= (h7-h6)*(1-y1-y2)/(h11-h12)\n",
+ "qin= h1-h10+(1-y1)*(h3-h2)\n",
+ "qout= (h5-h4)*(1-y1-y2)+y3*(h4-h12)\n",
+ "wnet= qin+qout\n",
+ "n= wnet*100/qin\n",
+ "m1= P*1000/wnet\n",
+ "A1= m1*v1/v\n",
+ "D= math.sqrt(4*A1/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' quality=',y1,'')\n",
+ "print'%s %.4f %s'%('quality=',y2,'')\n",
+ "print'%s %.4f %s'%('quality=',y3,'')\n",
+ "print'%s %.2f %s'%('efficiency=',n,'percent')\n",
+ "print'%s %.2f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%(' diameter=',D,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " quality= 0.1342 \n",
+ "quality= 0.0289 \n",
+ "quality= 0.0544 \n",
+ "efficiency= 43.17 percent\n",
+ "mass flow rate= 106.46 kg/s\n",
+ " diameter= 0.279 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effieciency and power and temperature at the exist\n",
+ "##initialisation of variables\n",
+ "T= 300. ##K\n",
+ "P= 100. ##kPa\n",
+ "r= 4.\n",
+ "T1= 1200. ##K\n",
+ "m= 5. ##kg/s\n",
+ "k= 1.4\n",
+ "R= 8.314 ##jmol K\n",
+ "M= 29. ##gms\n",
+ "##CALCULATIONS\n",
+ "T2= T*math.pow(r,(k-1)/k)\n",
+ "T4= T1/math.pow(r,(k-1)/k)\n",
+ "n= 1-(T/T2)\n",
+ "wnet= (k*R/((k-1)*M))*(T1-T4+T-T2)\n",
+ "P= m*wnet\n",
+ "e= math.sqrt((T2-T)/(T1-T4))\n",
+ "T5= T+((T2-T)/e)\n",
+ "T6= T1+e*(T4-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.f %s'%('power=',P,'kW')\n",
+ "print'%s %.4f %s'%('efficiency=',e,'')\n",
+ "print'%s %.1f %s'%('temperature at the exit=',T6,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency= 0.3270 \n",
+ "power= 1238 kW\n",
+ "efficiency= 0.6095 \n",
+ "temperature at the exit= 960.8 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "v= 810. ##km/h\n",
+ "v1= 40. ##m/sec\n",
+ "cp= 1003. ##J/k mol\n",
+ "T0= 300. ##K\n",
+ "ec= 0.88\n",
+ "k= 1.4\n",
+ "T3= 1473.15 ##K\n",
+ "p3= 600. ##kPa\n",
+ "p0= 26.4 ##kPa\n",
+ "e= 0.9\n",
+ "m= 90. ##kg\n",
+ "cp1= 1.003 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "v0= v*1000/3600.\n",
+ "T1= T0+((v0**2-v1**2)/(2*cp))\n",
+ "T1s= T0+ec*(T0-T1)\n",
+ "p1= 36.79 #kPa\n",
+ "p2= 600 #kPa\n",
+ "T2s= T1*(p2/p1)**((k-1)/k)\n",
+ "T2= T1+((T2s-T1)/ec)\n",
+ "T21= T1+(T2s-T1)/ec\n",
+ "T4= T3+T0-T21\n",
+ "T4s= T3+(T4-T3)/ec\n",
+ "p4= p3*(T4s/T3)\n",
+ "T5s= p4+(p0-p4)*e\n",
+ "W34= m*cp1*(T3-T4)\n",
+ "v5= math.sqrt(v1**2+2*cp*(T4-T5s))\n",
+ "F= m*(v5-v0)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('T5=',T4s,'K ')\n",
+ "print'%s %.f %s'% ('Work=',W34,'kW ')\n",
+ "print'%s %.1f %s'% ('nozzle velocity=',v5,'m/s')\n",
+ "print'%s %.f %s'% ('thrust force=',F,'N')\n",
+ "\n",
+ "##ANSWERS GIVEN IN THE TEXTBOOK ARE WRONG\n",
+ "\n",
+ "##RESULTS\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T5= 934.14 K \n",
+ "Work= 42818 kW \n",
+ "nozzle velocity= 1371.6 m/s\n",
+ "thrust force= 103193 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COP and power and COP at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 182.07 ##kJ/kg\n",
+ "h4= 76.26 ##kJ/kg\n",
+ "h2= 217.97 ##kJ/kg\n",
+ "Q= math.pow(10,6) ##kJ/h\n",
+ "Tc= -5 ##C\n",
+ "Th= 32 ##C\n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/(COP*3600)\n",
+ "COPcarnot= (273.15+Tc)/(Th-Tc)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP= ',COP,'')\n",
+ "print'%s %.3f %s'% ('power=',W,'KW')\n",
+ "print'%s %.3f %s'% ('COP=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.947 \n",
+ "power= 94.247 KW\n",
+ "COP= 7.247 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COPs and WORK at given variable\n",
+ "##initialisation of variables\n",
+ "h1= 183.12 ##kJ/kg\n",
+ "h4= 75.588 ##kJ/kg\n",
+ "h2= 218.697 ##kJ/kg\n",
+ "nm=0.94\n",
+ "Qc= 6 ##kW\n",
+ "h4a= 45.343 ##kJ/kg\n",
+ "h2a= 257.283 ##kJ/kg\n",
+ "h1a= 213.427 ##kJ/kg \n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)*nm/(h2-h1)\n",
+ "W= Qc/COP\n",
+ "COP1= (h1-h4a)*nm/(h2a-h1a)\n",
+ "W1= Qc/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.3f %s'% ('Work=',W,'kW')\n",
+ "print'%s %.3f %s'% ('Work=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.841 \n",
+ "COP= 2.953 \n",
+ "Work= 2.112 kW\n",
+ "Work= 2.032 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate COP and W\n",
+ "##initialisation of variables\n",
+ "h1= 1404.6 ##kJ/kg\n",
+ "h2s= 1748.9 ##kJ/kg\n",
+ "ec= 0.8\n",
+ "h4= 322.9 ##kJ/kg\n",
+ "h2= 1835 ##kJ/kg\n",
+ "Q= 100 ##kW\n",
+ "h21= 1649.2 ##kJ/kg\n",
+ "h22= 1515 ##kJ/kg\n",
+ "h23= 1678.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+((h2s-h1)/ec)\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/COP\n",
+ "COP1= (h1-h4)/(h21-h1+h23-h22)\n",
+ "W1= Q/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.1f %s'% ('W= ',W,'kW')\n",
+ "print'%s %.1f %s'% ('W=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " COP= 2.513 \n",
+ "COP= 2.649 \n",
+ "W= 39.8 kW\n",
+ "W= 37.8 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter11__1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter11__1.ipynb
new file mode 100755
index 00000000..35f097c3
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter11__1.ipynb
@@ -0,0 +1,468 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a15297e2995d0ee44a3db61bf50b4aac4f8b03ecce59bf2a69c1f32113289b28"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-power and refrigeration cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and effieceny and carnot efficency\n",
+ "##initialisation of variables\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "v= 0.001017 ##m^3/kg\n",
+ "p2= 2000. ##Mpa\n",
+ "p1= 20. ##Mpa\n",
+ "h2= 253.4\n",
+ "h3= 3247.6 ##kJ/kg\n",
+ "h4= 2349.3 ##kJ/kg\n",
+ "Tc= 60.06 ##C\n",
+ "Th= 400. ##C\n",
+ "##CALCULATIONS\n",
+ "h2= h1+v*(2-p1)\n",
+ "q12= 0.\n",
+ "w12= h1-h2\n",
+ "q23= h3-h2\n",
+ "w23= 0.\n",
+ "q34= 0.\n",
+ "w34= h3-h4\n",
+ "q41= h1-h4\n",
+ "qnet= q12+q23+q34+q41\n",
+ "wnet= w12+w23+w34\n",
+ "n= wnet/q23\n",
+ "ncarnot= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.3f %s'%('efficiency=',n,'')\n",
+ "print'%s %.3f %s'%('carnot efficiency=',ncarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy= 251.4 kJ/kg\n",
+ "efficiency= 0.300 \n",
+ "carnot efficiency= 0.505 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat and effiecency and steam mass flow rate\n",
+ "##initialisation of variables\n",
+ "h3= 3247.4 ##kJ/kg\n",
+ "h4= 2439.1 ##kJ/kg\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "h2= 253.9 ##kJ/kg\n",
+ "P= 100000 ##kW\n",
+ "##CALCULATIONS\n",
+ "wnet= h3-h4+h1-h2\n",
+ "qh= h3-h2\n",
+ "qc= h1-h4\n",
+ "n= wnet/qh\n",
+ "m= P/wnet\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('work=',wnet,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('heat=',qh,'kJ/kg')\n",
+ "print'%s %.1f %s'%('heat=',qc,'kJ/kg')\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.2f %s'%('steam mass flow rate=',m,'kg/s')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work= 806 kJ/kg\n",
+ "heat= 2993.5 kJ/kg\n",
+ "heat= -2187.7 kJ/kg\n",
+ "efficiency= 0.2692 \n",
+ "steam mass flow rate= 124.10 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate qualitys and efficiency and mass flow rate and diameter\n",
+ "##initialisation of variables\n",
+ "h11= 2786.2 ##kJ/kg\n",
+ "h12= 340.5 ##kJ/kg\n",
+ "h7= 327.9 ##kJ/kg\n",
+ "h6= 169.0 ##kJ/kg\n",
+ "h10= 756.7 ##kJ/kg\n",
+ "h9= 480.9 ##kJkg\n",
+ "h14= 2818 ##kJ.kg\n",
+ "h15= 762.8 ##kJ/kg\n",
+ "h8= 462.7 ##kJ/kg\n",
+ "h13= 2974.5 ##kJ/kg\n",
+ "h5= 168.8 ##kJ/kg\n",
+ "P= 150. ##kW\n",
+ "v1= 0.02293 ##m^3/kg\n",
+ "v= 40. ##m/s\n",
+ "h1= 3448.6 ##kJ/kg\n",
+ "h3= 3478.5 ##kJ/kg\n",
+ "h2= 2818 ##kJ/kg\n",
+ "h4= 2527.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "y1= (h10-h9)/(h14-h15)\n",
+ "y2= ((h8-h7)-y1*(h15-h7))/(h13-h7)\n",
+ "y3= (h7-h6)*(1-y1-y2)/(h11-h12)\n",
+ "qin= h1-h10+(1-y1)*(h3-h2)\n",
+ "qout= (h5-h4)*(1-y1-y2)+y3*(h4-h12)\n",
+ "wnet= qin+qout\n",
+ "n= wnet*100/qin\n",
+ "m1= P*1000/wnet\n",
+ "A1= m1*v1/v\n",
+ "D= math.sqrt(4*A1/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' quality=',y1,'')\n",
+ "print'%s %.4f %s'%('quality=',y2,'')\n",
+ "print'%s %.4f %s'%('quality=',y3,'')\n",
+ "print'%s %.2f %s'%('efficiency=',n,'percent')\n",
+ "print'%s %.2f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%(' diameter=',D,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " quality= 0.1342 \n",
+ "quality= 0.0289 \n",
+ "quality= 0.0544 \n",
+ "efficiency= 43.17 percent\n",
+ "mass flow rate= 106.46 kg/s\n",
+ " diameter= 0.279 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effieciency and power and temperature at the exist\n",
+ "##initialisation of variables\n",
+ "T= 300. ##K\n",
+ "P= 100. ##kPa\n",
+ "r= 4.\n",
+ "T1= 1200. ##K\n",
+ "m= 5. ##kg/s\n",
+ "k= 1.4\n",
+ "R= 8.314 ##jmol K\n",
+ "M= 29. ##gms\n",
+ "##CALCULATIONS\n",
+ "T2= T*math.pow(r,(k-1)/k)\n",
+ "T4= T1/math.pow(r,(k-1)/k)\n",
+ "n= 1-(T/T2)\n",
+ "wnet= (k*R/((k-1)*M))*(T1-T4+T-T2)\n",
+ "P= m*wnet\n",
+ "e= math.sqrt((T2-T)/(T1-T4))\n",
+ "T5= T+((T2-T)/e)\n",
+ "T6= T1+e*(T4-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.f %s'%('power=',P,'kW')\n",
+ "print'%s %.4f %s'%('efficiency=',e,'')\n",
+ "print'%s %.1f %s'%('temperature at the exit=',T6,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency= 0.3270 \n",
+ "power= 1238 kW\n",
+ "efficiency= 0.6095 \n",
+ "temperature at the exit= 960.8 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "v= 810. ##km/h\n",
+ "v1= 40. ##m/sec\n",
+ "cp= 1003. ##J/k mol\n",
+ "T0= 300. ##K\n",
+ "ec= 0.88\n",
+ "k= 1.4\n",
+ "T3= 1473.15 ##K\n",
+ "p3= 600. ##kPa\n",
+ "p0= 26.4 ##kPa\n",
+ "e= 0.9\n",
+ "m= 90. ##kg\n",
+ "cp1= 1.003 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "v0= v*1000/3600.\n",
+ "T1= T0+((v0**2-v1**2)/(2*cp))\n",
+ "T1s= T0+ec*(T0-T1)\n",
+ "p1= 36.79 #kPa\n",
+ "p2= 600 #kPa\n",
+ "T2s= T1*(p2/p1)**((k-1)/k)\n",
+ "T2= T1+((T2s-T1)/ec)\n",
+ "T21= T1+(T2s-T1)/ec\n",
+ "T4= T3+T0-T21\n",
+ "T4s= T3+(T4-T3)/ec\n",
+ "p4= p3*(T4s/T3)\n",
+ "T5s= p4+(p0-p4)*e\n",
+ "W34= m*cp1*(T3-T4)\n",
+ "v5= math.sqrt(v1**2+2*cp*(T4-T5s))\n",
+ "F= m*(v5-v0)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('T5=',T4s,'K ')\n",
+ "print'%s %.f %s'% ('Work=',W34,'kW ')\n",
+ "print'%s %.1f %s'% ('nozzle velocity=',v5,'m/s')\n",
+ "print'%s %.f %s'% ('thrust force=',F,'N')\n",
+ "\n",
+ "##ANSWERS GIVEN IN THE TEXTBOOK ARE WRONG\n",
+ "\n",
+ "##RESULTS\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T5= 934.14 K \n",
+ "Work= 42818 kW \n",
+ "nozzle velocity= 1371.6 m/s\n",
+ "thrust force= 103193 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COP and power and COP at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 182.07 ##kJ/kg\n",
+ "h4= 76.26 ##kJ/kg\n",
+ "h2= 217.97 ##kJ/kg\n",
+ "Q= math.pow(10,6) ##kJ/h\n",
+ "Tc= -5 ##C\n",
+ "Th= 32 ##C\n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/(COP*3600)\n",
+ "COPcarnot= (273.15+Tc)/(Th-Tc)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP= ',COP,'')\n",
+ "print'%s %.3f %s'% ('power=',W,'KW')\n",
+ "print'%s %.3f %s'% ('COP=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.947 \n",
+ "power= 94.247 KW\n",
+ "COP= 7.247 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COPs and WORK at given variable\n",
+ "##initialisation of variables\n",
+ "h1= 183.12 ##kJ/kg\n",
+ "h4= 75.588 ##kJ/kg\n",
+ "h2= 218.697 ##kJ/kg\n",
+ "nm=0.94\n",
+ "Qc= 6 ##kW\n",
+ "h4a= 45.343 ##kJ/kg\n",
+ "h2a= 257.283 ##kJ/kg\n",
+ "h1a= 213.427 ##kJ/kg \n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)*nm/(h2-h1)\n",
+ "W= Qc/COP\n",
+ "COP1= (h1-h4a)*nm/(h2a-h1a)\n",
+ "W1= Qc/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.3f %s'% ('Work=',W,'kW')\n",
+ "print'%s %.3f %s'% ('Work=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.841 \n",
+ "COP= 2.953 \n",
+ "Work= 2.112 kW\n",
+ "Work= 2.032 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate COP and W\n",
+ "##initialisation of variables\n",
+ "h1= 1404.6 ##kJ/kg\n",
+ "h2s= 1748.9 ##kJ/kg\n",
+ "ec= 0.8\n",
+ "h4= 322.9 ##kJ/kg\n",
+ "h2= 1835 ##kJ/kg\n",
+ "Q= 100 ##kW\n",
+ "h21= 1649.2 ##kJ/kg\n",
+ "h22= 1515 ##kJ/kg\n",
+ "h23= 1678.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+((h2s-h1)/ec)\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/COP\n",
+ "COP1= (h1-h4)/(h21-h1+h23-h22)\n",
+ "W1= Q/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.1f %s'% ('W= ',W,'kW')\n",
+ "print'%s %.1f %s'% ('W=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " COP= 2.513 \n",
+ "COP= 2.649 \n",
+ "W= 39.8 kW\n",
+ "W= 37.8 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter11__2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter11__2.ipynb
new file mode 100755
index 00000000..1c674dff
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter11__2.ipynb
@@ -0,0 +1,624 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:96c3f40538485cd1b8c0c6bdcb309e3ad3c3f1805b73e1d0b7a57a4798efbd09"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-power and refrigeration cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and effieceny and carnot efficency\n",
+ "##initialisation of variables\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "v= 0.001017 ##m^3/kg\n",
+ "p2= 2000. ##Mpa\n",
+ "p1= 20. ##Mpa\n",
+ "h2= 253.4\n",
+ "h3= 3247.6 ##kJ/kg\n",
+ "h4= 2349.3 ##kJ/kg\n",
+ "Tc= 60.06 ##C\n",
+ "Th= 400. ##C\n",
+ "##CALCULATIONS\n",
+ "h2= h1+v*(2-p1)\n",
+ "q12= 0.\n",
+ "w12= h1-h2\n",
+ "q23= h3-h2\n",
+ "w23= 0.\n",
+ "q34= 0.\n",
+ "w34= h3-h4\n",
+ "q41= h1-h4\n",
+ "qnet= q12+q23+q34+q41\n",
+ "wnet= w12+w23+w34\n",
+ "n= wnet/q23\n",
+ "ncarnot= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.3f %s'%('efficiency=',n,'')\n",
+ "print'%s %.3f %s'%('carnot efficiency=',ncarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy= 251.4 kJ/kg\n",
+ "efficiency= 0.300 \n",
+ "carnot efficiency= 0.505 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat and effiecency and steam mass flow rate\n",
+ "##initialisation of variables\n",
+ "h3= 3247.4 ##kJ/kg\n",
+ "h4= 2439.1 ##kJ/kg\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "h2= 253.9 ##kJ/kg\n",
+ "P= 100000 ##kW\n",
+ "##CALCULATIONS\n",
+ "wnet= h3-h4+h1-h2\n",
+ "qh= h3-h2\n",
+ "qc= h1-h4\n",
+ "n= wnet/qh\n",
+ "m= P/wnet\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('work=',wnet,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('heat=',qh,'kJ/kg')\n",
+ "print'%s %.1f %s'%('heat=',qc,'kJ/kg')\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.2f %s'%('steam mass flow rate=',m,'kg/s')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work= 806 kJ/kg\n",
+ "heat= 2993.5 kJ/kg\n",
+ "heat= -2187.7 kJ/kg\n",
+ "efficiency= 0.2692 \n",
+ "steam mass flow rate= 124.10 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate qualitys and efficiency and mass flow rate and diameter\n",
+ "##initialisation of variables\n",
+ "h11= 2786.2 ##kJ/kg\n",
+ "h12= 340.5 ##kJ/kg\n",
+ "h7= 327.9 ##kJ/kg\n",
+ "h6= 169.0 ##kJ/kg\n",
+ "h10= 756.7 ##kJ/kg\n",
+ "h9= 480.9 ##kJkg\n",
+ "h14= 2818 ##kJ.kg\n",
+ "h15= 762.8 ##kJ/kg\n",
+ "h8= 462.7 ##kJ/kg\n",
+ "h13= 2974.5 ##kJ/kg\n",
+ "h5= 168.8 ##kJ/kg\n",
+ "P= 150. ##kW\n",
+ "v1= 0.02293 ##m^3/kg\n",
+ "v= 40. ##m/s\n",
+ "h1= 3448.6 ##kJ/kg\n",
+ "h3= 3478.5 ##kJ/kg\n",
+ "h2= 2818 ##kJ/kg\n",
+ "h4= 2527.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "y1= (h10-h9)/(h14-h15)\n",
+ "y2= ((h8-h7)-y1*(h15-h7))/(h13-h7)\n",
+ "y3= (h7-h6)*(1-y1-y2)/(h11-h12)\n",
+ "qin= h1-h10+(1-y1)*(h3-h2)\n",
+ "qout= (h5-h4)*(1-y1-y2)+y3*(h4-h12)\n",
+ "wnet= qin+qout\n",
+ "n= wnet*100/qin\n",
+ "m1= P*1000/wnet\n",
+ "A1= m1*v1/v\n",
+ "D= math.sqrt(4*A1/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' quality=',y1,'')\n",
+ "print'%s %.4f %s'%('quality=',y2,'')\n",
+ "print'%s %.4f %s'%('quality=',y3,'')\n",
+ "print'%s %.2f %s'%('efficiency=',n,'percent')\n",
+ "print'%s %.2f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%(' diameter=',D,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " quality= 0.1342 \n",
+ "quality= 0.0289 \n",
+ "quality= 0.0544 \n",
+ "efficiency= 43.17 percent\n",
+ "mass flow rate= 106.46 kg/s\n",
+ " diameter= 0.279 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effieciency and power and temperature at the exist\n",
+ "##initialisation of variables\n",
+ "T= 300. ##K\n",
+ "P= 100. ##kPa\n",
+ "r= 4.\n",
+ "T1= 1200. ##K\n",
+ "m= 5. ##kg/s\n",
+ "k= 1.4\n",
+ "R= 8.314 ##jmol K\n",
+ "M= 29. ##gms\n",
+ "##CALCULATIONS\n",
+ "T2= T*math.pow(r,(k-1)/k)\n",
+ "T4= T1/math.pow(r,(k-1)/k)\n",
+ "n= 1-(T/T2)\n",
+ "wnet= (k*R/((k-1)*M))*(T1-T4+T-T2)\n",
+ "P= m*wnet\n",
+ "e= math.sqrt((T2-T)/(T1-T4))\n",
+ "T5= T+((T2-T)/e)\n",
+ "T6= T1+e*(T4-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.f %s'%('power=',P,'kW')\n",
+ "print'%s %.4f %s'%('efficiency=',e,'')\n",
+ "print'%s %.1f %s'%('temperature at the exit=',T6,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency= 0.3270 \n",
+ "power= 1238 kW\n",
+ "efficiency= 0.6095 \n",
+ "temperature at the exit= 960.8 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "v= 810. ##km/h\n",
+ "v1= 40. ##m/sec\n",
+ "cp= 1003. ##J/k mol\n",
+ "T0= 300. ##K\n",
+ "ec= 0.88\n",
+ "k= 1.4\n",
+ "T3= 1473.15 ##K\n",
+ "p3= 600. ##kPa\n",
+ "p0= 26.4 ##kPa\n",
+ "e= 0.9\n",
+ "m= 90. ##kg\n",
+ "cp1= 1.003 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "v0= v*1000/3600.\n",
+ "T1= T0+((v0**2-v1**2)/(2*cp))\n",
+ "T1s= T0+ec*(T0-T1)\n",
+ "p1= 36.79 #kPa\n",
+ "p2= 600 #kPa\n",
+ "T2s= T1*(p2/p1)**((k-1)/k)\n",
+ "T2= T1+((T2s-T1)/ec)\n",
+ "T21= T1+(T2s-T1)/ec\n",
+ "T4= T3+T0-T21\n",
+ "T4s= T3+(T4-T3)/ec\n",
+ "p4= p3*(T4s/T3)\n",
+ "T5s= p4+(p0-p4)*e\n",
+ "W34= m*cp1*(T3-T4)\n",
+ "v5= math.sqrt(v1**2+2*cp*(T4-T5s))\n",
+ "F= m*(v5-v0)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('T5=',T4s,'K ')\n",
+ "print'%s %.f %s'% ('Work=',W34,'kW ')\n",
+ "print'%s %.1f %s'% ('nozzle velocity=',v5,'m/s')\n",
+ "print'%s %.f %s'% ('thrust force=',F,'N')\n",
+ "\n",
+ "##ANSWERS GIVEN IN THE TEXTBOOK ARE WRONG\n",
+ "\n",
+ "##RESULTS\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T5= 934.14 K \n",
+ "Work= 42818 kW \n",
+ "nozzle velocity= 1371.6 m/s\n",
+ "thrust force= 103193 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##initialisation of variables\n",
+ "T1= 300. ##K\n",
+ "p2= 400. ##kPa\n",
+ "p1= 100. ##kPa\n",
+ "p4= 100. ##kPa\n",
+ "p3= 400. ##kPa\n",
+ "T3= 1200. ##K\n",
+ "e= 0.85\n",
+ "ee= 0.9\n",
+ "m= 8 ##kg\n",
+ "cp= 1.0035\n",
+ "k= 1.4\n",
+ "##CALCULATIONS\n",
+ "T2s= T1*(p2/p1)**((k-1.)/k)\n",
+ "T4s= T3*(p4/p3)**((k-1.)/k)\n",
+ "T2= T1+((T2s-T1)/e)\n",
+ "T4= T3+ee*(T4s-T3)\n",
+ "P= m*cp*(T3-T4-T2+T1)\n",
+ "n= (T3-T4+T1-T2)/(T3-T4)\n",
+ "n1= (T3-T4+T1-T2)/(T3-T2)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' T4= ',T4,' K ')\n",
+ "print'%s %.2f %s'% (' T2= ',T2,' K ')\n",
+ "print'%s %.2f %s'% (' T4= ',P,' kW ')\n",
+ "print'%s %.2f %s'% (' net efficiency= ',n,' ')\n",
+ "print'%s %.2f %s'% (' net efficiency=',n1,' ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " T4= 846.79 K \n",
+ " T2= 471.53 K \n",
+ " T4= 1458.58 kW \n",
+ " net efficiency= 0.51 \n",
+ " net efficiency= 0.25 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COP and power and COP at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 182.07 ##kJ/kg\n",
+ "h4= 76.26 ##kJ/kg\n",
+ "h2= 217.97 ##kJ/kg\n",
+ "Q= math.pow(10,6) ##kJ/h\n",
+ "Tc= -5 ##C\n",
+ "Th= 32 ##C\n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/(COP*3600)\n",
+ "COPcarnot= (273.15+Tc)/(Th-Tc)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP= ',COP,'')\n",
+ "print'%s %.3f %s'% ('power=',W,'KW')\n",
+ "print'%s %.3f %s'% ('COP=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.947 \n",
+ "power= 94.247 KW\n",
+ "COP= 7.247 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg298"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##initialisation of variables\n",
+ "h1= 238.431 ##kJ/kg\n",
+ "h4= 109.777 ##kJ/kg\n",
+ "Qc= 6 ##kW\n",
+ "h2= 295.835 ##kJ/kg\n",
+ "n= 0.88\n",
+ "Tin= 33 ##C\n",
+ "Tout= 20 ##C\n",
+ "cp= 4.186 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "qc= h1-h4\n",
+ "m= Qc/qc\n",
+ "w= h2-h1\n",
+ "W= m*w/n\n",
+ "COP= Qc/W\n",
+ "qh= h2-h4\n",
+ "mcw= m*qh/(cp*(Tin-Tout))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' compressor power= ',W,' kW ')\n",
+ "print'%s %.2f %s'% (' COP= ',COP,' ')\n",
+ "print'%s %.2f %s'% (' cooling water flow= ',mcw,'kg/s ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " compressor power= 3.04 kW \n",
+ " COP= 1.97 \n",
+ " cooling water flow= 0.16 kg/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COPs and WORK at given variable\n",
+ "##initialisation of variables\n",
+ "h1= 183.12 ##kJ/kg\n",
+ "h4= 75.588 ##kJ/kg\n",
+ "h2= 218.697 ##kJ/kg\n",
+ "nm=0.94\n",
+ "Qc= 6 ##kW\n",
+ "h4a= 45.343 ##kJ/kg\n",
+ "h2a= 257.283 ##kJ/kg\n",
+ "h1a= 213.427 ##kJ/kg \n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)*nm/(h2-h1)\n",
+ "W= Qc/COP\n",
+ "COP1= (h1-h4a)*nm/(h2a-h1a)\n",
+ "W1= Qc/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.3f %s'% ('Work=',W,'kW')\n",
+ "print'%s %.3f %s'% ('Work=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.841 \n",
+ "COP= 2.953 \n",
+ "Work= 2.112 kW\n",
+ "Work= 2.032 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##initialisation of variables\n",
+ "h1= 238.431 ##kJ/kg\n",
+ "h4a= 73.881 ##kJ/kg\n",
+ "Qc= 6 ##kW\n",
+ "h2a= 343.787 ##kJ/kg\n",
+ "n= 0.88\n",
+ "Tin= 33 ##C\n",
+ "Tout= 20 ##C\n",
+ "cp= 4.186 ##J/mol K\n",
+ "h1a= 274.327 ##kJ/kg\n",
+ "h3= 109.777 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "qc= h1-h4a\n",
+ "m= Qc/qc\n",
+ "w= h2a-h1a\n",
+ "W= m*w/n\n",
+ "COP= Qc/W\n",
+ "qh= h2a-h3\n",
+ "mcw= m*qh/(cp*(Tin-Tout))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' compressor power= ',W,' kW ')\n",
+ "print'%s %.2f %s'% (' COP= ',COP,'')\n",
+ "print'%s %.2f %s'% (' cooling water flow= ',mcw,' kg/s ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " compressor power= 2.88 kW \n",
+ " COP= 2.08 \n",
+ " cooling water flow= 0.16 kg/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example11-pg304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate COP and W\n",
+ "##initialisation of variables\n",
+ "h1= 1404.6 ##kJ/kg\n",
+ "h2s= 1748.9 ##kJ/kg\n",
+ "ec= 0.8\n",
+ "h4= 322.9 ##kJ/kg\n",
+ "h2= 1835 ##kJ/kg\n",
+ "Q= 100 ##kW\n",
+ "h21= 1649.2 ##kJ/kg\n",
+ "h22= 1515 ##kJ/kg\n",
+ "h23= 1678.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+((h2s-h1)/ec)\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/COP\n",
+ "COP1= (h1-h4)/(h21-h1+h23-h22)\n",
+ "W1= Q/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.1f %s'% ('W= ',W,'kW')\n",
+ "print'%s %.1f %s'% ('W=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " COP= 2.513 \n",
+ "COP= 2.649 \n",
+ "W= 39.8 kW\n",
+ "W= 37.8 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter11_power_and_refrigeration_cycles.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter11_power_and_refrigeration_cycles.ipynb
new file mode 100755
index 00000000..35f097c3
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter11_power_and_refrigeration_cycles.ipynb
@@ -0,0 +1,468 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a15297e2995d0ee44a3db61bf50b4aac4f8b03ecce59bf2a69c1f32113289b28"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-power and refrigeration cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and effieceny and carnot efficency\n",
+ "##initialisation of variables\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "v= 0.001017 ##m^3/kg\n",
+ "p2= 2000. ##Mpa\n",
+ "p1= 20. ##Mpa\n",
+ "h2= 253.4\n",
+ "h3= 3247.6 ##kJ/kg\n",
+ "h4= 2349.3 ##kJ/kg\n",
+ "Tc= 60.06 ##C\n",
+ "Th= 400. ##C\n",
+ "##CALCULATIONS\n",
+ "h2= h1+v*(2-p1)\n",
+ "q12= 0.\n",
+ "w12= h1-h2\n",
+ "q23= h3-h2\n",
+ "w23= 0.\n",
+ "q34= 0.\n",
+ "w34= h3-h4\n",
+ "q41= h1-h4\n",
+ "qnet= q12+q23+q34+q41\n",
+ "wnet= w12+w23+w34\n",
+ "n= wnet/q23\n",
+ "ncarnot= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.3f %s'%('efficiency=',n,'')\n",
+ "print'%s %.3f %s'%('carnot efficiency=',ncarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy= 251.4 kJ/kg\n",
+ "efficiency= 0.300 \n",
+ "carnot efficiency= 0.505 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat and effiecency and steam mass flow rate\n",
+ "##initialisation of variables\n",
+ "h3= 3247.4 ##kJ/kg\n",
+ "h4= 2439.1 ##kJ/kg\n",
+ "h1= 251.4 ##kJ/kg\n",
+ "h2= 253.9 ##kJ/kg\n",
+ "P= 100000 ##kW\n",
+ "##CALCULATIONS\n",
+ "wnet= h3-h4+h1-h2\n",
+ "qh= h3-h2\n",
+ "qc= h1-h4\n",
+ "n= wnet/qh\n",
+ "m= P/wnet\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('work=',wnet,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('heat=',qh,'kJ/kg')\n",
+ "print'%s %.1f %s'%('heat=',qc,'kJ/kg')\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.2f %s'%('steam mass flow rate=',m,'kg/s')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work= 806 kJ/kg\n",
+ "heat= 2993.5 kJ/kg\n",
+ "heat= -2187.7 kJ/kg\n",
+ "efficiency= 0.2692 \n",
+ "steam mass flow rate= 124.10 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate qualitys and efficiency and mass flow rate and diameter\n",
+ "##initialisation of variables\n",
+ "h11= 2786.2 ##kJ/kg\n",
+ "h12= 340.5 ##kJ/kg\n",
+ "h7= 327.9 ##kJ/kg\n",
+ "h6= 169.0 ##kJ/kg\n",
+ "h10= 756.7 ##kJ/kg\n",
+ "h9= 480.9 ##kJkg\n",
+ "h14= 2818 ##kJ.kg\n",
+ "h15= 762.8 ##kJ/kg\n",
+ "h8= 462.7 ##kJ/kg\n",
+ "h13= 2974.5 ##kJ/kg\n",
+ "h5= 168.8 ##kJ/kg\n",
+ "P= 150. ##kW\n",
+ "v1= 0.02293 ##m^3/kg\n",
+ "v= 40. ##m/s\n",
+ "h1= 3448.6 ##kJ/kg\n",
+ "h3= 3478.5 ##kJ/kg\n",
+ "h2= 2818 ##kJ/kg\n",
+ "h4= 2527.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "y1= (h10-h9)/(h14-h15)\n",
+ "y2= ((h8-h7)-y1*(h15-h7))/(h13-h7)\n",
+ "y3= (h7-h6)*(1-y1-y2)/(h11-h12)\n",
+ "qin= h1-h10+(1-y1)*(h3-h2)\n",
+ "qout= (h5-h4)*(1-y1-y2)+y3*(h4-h12)\n",
+ "wnet= qin+qout\n",
+ "n= wnet*100/qin\n",
+ "m1= P*1000/wnet\n",
+ "A1= m1*v1/v\n",
+ "D= math.sqrt(4*A1/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' quality=',y1,'')\n",
+ "print'%s %.4f %s'%('quality=',y2,'')\n",
+ "print'%s %.4f %s'%('quality=',y3,'')\n",
+ "print'%s %.2f %s'%('efficiency=',n,'percent')\n",
+ "print'%s %.2f %s'%('mass flow rate=',m1,'kg/s')\n",
+ "print'%s %.3f %s'%(' diameter=',D,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " quality= 0.1342 \n",
+ "quality= 0.0289 \n",
+ "quality= 0.0544 \n",
+ "efficiency= 43.17 percent\n",
+ "mass flow rate= 106.46 kg/s\n",
+ " diameter= 0.279 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effieciency and power and temperature at the exist\n",
+ "##initialisation of variables\n",
+ "T= 300. ##K\n",
+ "P= 100. ##kPa\n",
+ "r= 4.\n",
+ "T1= 1200. ##K\n",
+ "m= 5. ##kg/s\n",
+ "k= 1.4\n",
+ "R= 8.314 ##jmol K\n",
+ "M= 29. ##gms\n",
+ "##CALCULATIONS\n",
+ "T2= T*math.pow(r,(k-1)/k)\n",
+ "T4= T1/math.pow(r,(k-1)/k)\n",
+ "n= 1-(T/T2)\n",
+ "wnet= (k*R/((k-1)*M))*(T1-T4+T-T2)\n",
+ "P= m*wnet\n",
+ "e= math.sqrt((T2-T)/(T1-T4))\n",
+ "T5= T+((T2-T)/e)\n",
+ "T6= T1+e*(T4-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('efficiency=',n,'')\n",
+ "print'%s %.f %s'%('power=',P,'kW')\n",
+ "print'%s %.4f %s'%('efficiency=',e,'')\n",
+ "print'%s %.1f %s'%('temperature at the exit=',T6,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency= 0.3270 \n",
+ "power= 1238 kW\n",
+ "efficiency= 0.6095 \n",
+ "temperature at the exit= 960.8 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "v= 810. ##km/h\n",
+ "v1= 40. ##m/sec\n",
+ "cp= 1003. ##J/k mol\n",
+ "T0= 300. ##K\n",
+ "ec= 0.88\n",
+ "k= 1.4\n",
+ "T3= 1473.15 ##K\n",
+ "p3= 600. ##kPa\n",
+ "p0= 26.4 ##kPa\n",
+ "e= 0.9\n",
+ "m= 90. ##kg\n",
+ "cp1= 1.003 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "v0= v*1000/3600.\n",
+ "T1= T0+((v0**2-v1**2)/(2*cp))\n",
+ "T1s= T0+ec*(T0-T1)\n",
+ "p1= 36.79 #kPa\n",
+ "p2= 600 #kPa\n",
+ "T2s= T1*(p2/p1)**((k-1)/k)\n",
+ "T2= T1+((T2s-T1)/ec)\n",
+ "T21= T1+(T2s-T1)/ec\n",
+ "T4= T3+T0-T21\n",
+ "T4s= T3+(T4-T3)/ec\n",
+ "p4= p3*(T4s/T3)\n",
+ "T5s= p4+(p0-p4)*e\n",
+ "W34= m*cp1*(T3-T4)\n",
+ "v5= math.sqrt(v1**2+2*cp*(T4-T5s))\n",
+ "F= m*(v5-v0)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('T5=',T4s,'K ')\n",
+ "print'%s %.f %s'% ('Work=',W34,'kW ')\n",
+ "print'%s %.1f %s'% ('nozzle velocity=',v5,'m/s')\n",
+ "print'%s %.f %s'% ('thrust force=',F,'N')\n",
+ "\n",
+ "##ANSWERS GIVEN IN THE TEXTBOOK ARE WRONG\n",
+ "\n",
+ "##RESULTS\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "T5= 934.14 K \n",
+ "Work= 42818 kW \n",
+ "nozzle velocity= 1371.6 m/s\n",
+ "thrust force= 103193 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COP and power and COP at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 182.07 ##kJ/kg\n",
+ "h4= 76.26 ##kJ/kg\n",
+ "h2= 217.97 ##kJ/kg\n",
+ "Q= math.pow(10,6) ##kJ/h\n",
+ "Tc= -5 ##C\n",
+ "Th= 32 ##C\n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/(COP*3600)\n",
+ "COPcarnot= (273.15+Tc)/(Th-Tc)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP= ',COP,'')\n",
+ "print'%s %.3f %s'% ('power=',W,'KW')\n",
+ "print'%s %.3f %s'% ('COP=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.947 \n",
+ "power= 94.247 KW\n",
+ "COP= 7.247 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate COPs and WORK at given variable\n",
+ "##initialisation of variables\n",
+ "h1= 183.12 ##kJ/kg\n",
+ "h4= 75.588 ##kJ/kg\n",
+ "h2= 218.697 ##kJ/kg\n",
+ "nm=0.94\n",
+ "Qc= 6 ##kW\n",
+ "h4a= 45.343 ##kJ/kg\n",
+ "h2a= 257.283 ##kJ/kg\n",
+ "h1a= 213.427 ##kJ/kg \n",
+ "##CALCULATIONS\n",
+ "COP= (h1-h4)*nm/(h2-h1)\n",
+ "W= Qc/COP\n",
+ "COP1= (h1-h4a)*nm/(h2a-h1a)\n",
+ "W1= Qc/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.3f %s'% ('Work=',W,'kW')\n",
+ "print'%s %.3f %s'% ('Work=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COP= 2.841 \n",
+ "COP= 2.953 \n",
+ "Work= 2.112 kW\n",
+ "Work= 2.032 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate COP and W\n",
+ "##initialisation of variables\n",
+ "h1= 1404.6 ##kJ/kg\n",
+ "h2s= 1748.9 ##kJ/kg\n",
+ "ec= 0.8\n",
+ "h4= 322.9 ##kJ/kg\n",
+ "h2= 1835 ##kJ/kg\n",
+ "Q= 100 ##kW\n",
+ "h21= 1649.2 ##kJ/kg\n",
+ "h22= 1515 ##kJ/kg\n",
+ "h23= 1678.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+((h2s-h1)/ec)\n",
+ "COP= (h1-h4)/(h2-h1)\n",
+ "W= Q/COP\n",
+ "COP1= (h1-h4)/(h21-h1+h23-h22)\n",
+ "W1= Q/COP1\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% ('COP=',COP1,'')\n",
+ "print'%s %.1f %s'% ('W= ',W,'kW')\n",
+ "print'%s %.1f %s'% ('W=',W1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " COP= 2.513 \n",
+ "COP= 2.649 \n",
+ "W= 39.8 kW\n",
+ "W= 37.8 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter13-.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter13-.ipynb
new file mode 100755
index 00000000..cb096e14
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter13-.ipynb
@@ -0,0 +1,217 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d95c094e950bc8cd1f4bbc97c09344d22cf81b1ba4d6101a144be7a5e1e83dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-thermodynamic relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy wrt pressures and volume wrt temerature\n",
+ "##initialisation of variables\n",
+ "S1= 6.539 ##kJ/kg K\n",
+ "S2= 6.7664 ##kJ/kg K\n",
+ "v1= 0.10976 ##m^3\n",
+ "v2= 0.08700 ##m^3\n",
+ "P= 3. ##Mpa\n",
+ "P1= 2. ##Mpa\n",
+ "T= 350. ##K\n",
+ "T1= 250. ##K\n",
+ "S3= 3.1741 ##kJ/kg K\n",
+ "S4= 3.2071 ##kJ/kg K\n",
+ "P2= 30. ##Mpa\n",
+ "P3= 20. ##Mpa\n",
+ "v3= 0.0014217 ##m^3\n",
+ "v4= 0.0012860 ##m^3\n",
+ "T2= 320. ##K\n",
+ "T3= 280. ##K\n",
+ "##CALCULATIONS\n",
+ "r= (S1-S2)/(P*10*10*10-P1*10*10*10)\n",
+ "r1= (v1-v2)/(T-T1)\n",
+ "R= (S3-S4)/(P2*10*10*10-P3*10*10*10)\n",
+ "R1= (v3-v4)/(T2-T3)\n",
+ "##RESULTS\n",
+ "print'%s %.7f %s'% ('entropy wrt pressre=',r,'kJ/kg K kpa')\n",
+ "print'%s %.e %s'% ('entropy wrt pressre=',R,'kJ/kg K kpa')\n",
+ "print'%s %.7f %s'% ('volume wrt temperature=',r1,'m^3/kg K ')\n",
+ "print'%s %.2e %s'% ('volume wrt temperature=',R1,'m^3/kg K ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy wrt pressre= -0.0002274 kJ/kg K kpa\n",
+ "entropy wrt pressre= -3e-06 kJ/kg K kpa\n",
+ "volume wrt temperature= 0.0002276 m^3/kg K \n",
+ "volume wrt temperature= 3.39e-06 m^3/kg K \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#saturation pressure\n",
+ "##initialisation of variables\n",
+ "hfg= 2406.7 ##kJ/kg\n",
+ "Psat40= 7.384 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 40. ##C\n",
+ "T1= 50. ##C\n",
+ "M= 18.##kg\n",
+ "##CALCULATIONS\n",
+ "Psat50= Psat40*math.e**((hfg*M/R)*((1/(273.15+T))-(1/(273.15+T1))))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s' %('Saturation pressure=',Psat50,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturation pressure= 12.357 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte lowest temprature\n",
+ "##initialisation of variables\n",
+ "W= 800. ##N\n",
+ "A= 0.4 ##cm^2\n",
+ "p= 0.611 ##Mpa\n",
+ "P1= 0.1 ##Mpa\n",
+ "T= 0.01 ##C\n",
+ "vs= 0.0010908 ##m^3/kg\n",
+ "hs= -333.40 ##kJ/kg\n",
+ "vf= 0.0010002 ##m^3/kg\n",
+ "hf= 0 ##kJ/kg\n",
+ "vg= 206.14 ##m^3/kg\n",
+ "hg= 2501.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "P2= P1+(W/A)*math.pow(10,(4-6))\n",
+ "dT= (273.15++T)*(vf-vs)*(P2*10*10*10-p)/(0-hs)\n",
+ "Tmin= dT+T\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('lowest temperature=',Tmin,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest temperature= -1.48 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume exapansion coefficent and isothermal compressibilitiy and isotherma modulus of elasticity\n",
+ "##initialisation of variables\n",
+ "vi= 0.0009992 ##m^3\n",
+ "T= 60. ##C\n",
+ "T1= 20. ##C\n",
+ "T2= 40. ##C\n",
+ "vi1= 0.0010042 ##m^3\n",
+ "vi2= 0.0009886 ##m^3\n",
+ "v= 0.000951 ##m^3\n",
+ "v1= 0.0009992 ##m^3\n",
+ "v2= 0.0009956 ##m^3\n",
+ "##CALCULATIONS\n",
+ "B= (vi1-vi2)/(vi*(T-T1))\n",
+ "Kt= (v1-v2)/(v*(T2-T1))\n",
+ "Et= 1/Kt\n",
+ "##RESULTS\n",
+ "print'%s %.2e %s'% ('volume exapansion coefficient=',B,'L/s')\n",
+ "print'%s %.3e %s'% ('isothermal compressibility=',Kt,'Mpa')\n",
+ "print'%s %.f %s'% ('isothermal modulus of elasticity=',Et,'Mpa')\n",
+ "\n",
+ "\n",
+ "##ANSWER FOR Et GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume exapansion coefficient= 3.90e-04 L/s\n",
+ "isothermal compressibility= 1.893e-04 Mpa\n",
+ "isothermal modulus of elasticity= 5283 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter13-_thermodynamic_relations.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter13-_thermodynamic_relations.ipynb
new file mode 100755
index 00000000..cb096e14
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter13-_thermodynamic_relations.ipynb
@@ -0,0 +1,217 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d95c094e950bc8cd1f4bbc97c09344d22cf81b1ba4d6101a144be7a5e1e83dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-thermodynamic relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy wrt pressures and volume wrt temerature\n",
+ "##initialisation of variables\n",
+ "S1= 6.539 ##kJ/kg K\n",
+ "S2= 6.7664 ##kJ/kg K\n",
+ "v1= 0.10976 ##m^3\n",
+ "v2= 0.08700 ##m^3\n",
+ "P= 3. ##Mpa\n",
+ "P1= 2. ##Mpa\n",
+ "T= 350. ##K\n",
+ "T1= 250. ##K\n",
+ "S3= 3.1741 ##kJ/kg K\n",
+ "S4= 3.2071 ##kJ/kg K\n",
+ "P2= 30. ##Mpa\n",
+ "P3= 20. ##Mpa\n",
+ "v3= 0.0014217 ##m^3\n",
+ "v4= 0.0012860 ##m^3\n",
+ "T2= 320. ##K\n",
+ "T3= 280. ##K\n",
+ "##CALCULATIONS\n",
+ "r= (S1-S2)/(P*10*10*10-P1*10*10*10)\n",
+ "r1= (v1-v2)/(T-T1)\n",
+ "R= (S3-S4)/(P2*10*10*10-P3*10*10*10)\n",
+ "R1= (v3-v4)/(T2-T3)\n",
+ "##RESULTS\n",
+ "print'%s %.7f %s'% ('entropy wrt pressre=',r,'kJ/kg K kpa')\n",
+ "print'%s %.e %s'% ('entropy wrt pressre=',R,'kJ/kg K kpa')\n",
+ "print'%s %.7f %s'% ('volume wrt temperature=',r1,'m^3/kg K ')\n",
+ "print'%s %.2e %s'% ('volume wrt temperature=',R1,'m^3/kg K ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy wrt pressre= -0.0002274 kJ/kg K kpa\n",
+ "entropy wrt pressre= -3e-06 kJ/kg K kpa\n",
+ "volume wrt temperature= 0.0002276 m^3/kg K \n",
+ "volume wrt temperature= 3.39e-06 m^3/kg K \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#saturation pressure\n",
+ "##initialisation of variables\n",
+ "hfg= 2406.7 ##kJ/kg\n",
+ "Psat40= 7.384 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 40. ##C\n",
+ "T1= 50. ##C\n",
+ "M= 18.##kg\n",
+ "##CALCULATIONS\n",
+ "Psat50= Psat40*math.e**((hfg*M/R)*((1/(273.15+T))-(1/(273.15+T1))))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s' %('Saturation pressure=',Psat50,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturation pressure= 12.357 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte lowest temprature\n",
+ "##initialisation of variables\n",
+ "W= 800. ##N\n",
+ "A= 0.4 ##cm^2\n",
+ "p= 0.611 ##Mpa\n",
+ "P1= 0.1 ##Mpa\n",
+ "T= 0.01 ##C\n",
+ "vs= 0.0010908 ##m^3/kg\n",
+ "hs= -333.40 ##kJ/kg\n",
+ "vf= 0.0010002 ##m^3/kg\n",
+ "hf= 0 ##kJ/kg\n",
+ "vg= 206.14 ##m^3/kg\n",
+ "hg= 2501.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "P2= P1+(W/A)*math.pow(10,(4-6))\n",
+ "dT= (273.15++T)*(vf-vs)*(P2*10*10*10-p)/(0-hs)\n",
+ "Tmin= dT+T\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('lowest temperature=',Tmin,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest temperature= -1.48 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume exapansion coefficent and isothermal compressibilitiy and isotherma modulus of elasticity\n",
+ "##initialisation of variables\n",
+ "vi= 0.0009992 ##m^3\n",
+ "T= 60. ##C\n",
+ "T1= 20. ##C\n",
+ "T2= 40. ##C\n",
+ "vi1= 0.0010042 ##m^3\n",
+ "vi2= 0.0009886 ##m^3\n",
+ "v= 0.000951 ##m^3\n",
+ "v1= 0.0009992 ##m^3\n",
+ "v2= 0.0009956 ##m^3\n",
+ "##CALCULATIONS\n",
+ "B= (vi1-vi2)/(vi*(T-T1))\n",
+ "Kt= (v1-v2)/(v*(T2-T1))\n",
+ "Et= 1/Kt\n",
+ "##RESULTS\n",
+ "print'%s %.2e %s'% ('volume exapansion coefficient=',B,'L/s')\n",
+ "print'%s %.3e %s'% ('isothermal compressibility=',Kt,'Mpa')\n",
+ "print'%s %.f %s'% ('isothermal modulus of elasticity=',Et,'Mpa')\n",
+ "\n",
+ "\n",
+ "##ANSWER FOR Et GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume exapansion coefficient= 3.90e-04 L/s\n",
+ "isothermal compressibility= 1.893e-04 Mpa\n",
+ "isothermal modulus of elasticity= 5283 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter13.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter13.ipynb
new file mode 100755
index 00000000..cb096e14
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter13.ipynb
@@ -0,0 +1,217 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d95c094e950bc8cd1f4bbc97c09344d22cf81b1ba4d6101a144be7a5e1e83dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-thermodynamic relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy wrt pressures and volume wrt temerature\n",
+ "##initialisation of variables\n",
+ "S1= 6.539 ##kJ/kg K\n",
+ "S2= 6.7664 ##kJ/kg K\n",
+ "v1= 0.10976 ##m^3\n",
+ "v2= 0.08700 ##m^3\n",
+ "P= 3. ##Mpa\n",
+ "P1= 2. ##Mpa\n",
+ "T= 350. ##K\n",
+ "T1= 250. ##K\n",
+ "S3= 3.1741 ##kJ/kg K\n",
+ "S4= 3.2071 ##kJ/kg K\n",
+ "P2= 30. ##Mpa\n",
+ "P3= 20. ##Mpa\n",
+ "v3= 0.0014217 ##m^3\n",
+ "v4= 0.0012860 ##m^3\n",
+ "T2= 320. ##K\n",
+ "T3= 280. ##K\n",
+ "##CALCULATIONS\n",
+ "r= (S1-S2)/(P*10*10*10-P1*10*10*10)\n",
+ "r1= (v1-v2)/(T-T1)\n",
+ "R= (S3-S4)/(P2*10*10*10-P3*10*10*10)\n",
+ "R1= (v3-v4)/(T2-T3)\n",
+ "##RESULTS\n",
+ "print'%s %.7f %s'% ('entropy wrt pressre=',r,'kJ/kg K kpa')\n",
+ "print'%s %.e %s'% ('entropy wrt pressre=',R,'kJ/kg K kpa')\n",
+ "print'%s %.7f %s'% ('volume wrt temperature=',r1,'m^3/kg K ')\n",
+ "print'%s %.2e %s'% ('volume wrt temperature=',R1,'m^3/kg K ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy wrt pressre= -0.0002274 kJ/kg K kpa\n",
+ "entropy wrt pressre= -3e-06 kJ/kg K kpa\n",
+ "volume wrt temperature= 0.0002276 m^3/kg K \n",
+ "volume wrt temperature= 3.39e-06 m^3/kg K \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#saturation pressure\n",
+ "##initialisation of variables\n",
+ "hfg= 2406.7 ##kJ/kg\n",
+ "Psat40= 7.384 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 40. ##C\n",
+ "T1= 50. ##C\n",
+ "M= 18.##kg\n",
+ "##CALCULATIONS\n",
+ "Psat50= Psat40*math.e**((hfg*M/R)*((1/(273.15+T))-(1/(273.15+T1))))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s' %('Saturation pressure=',Psat50,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturation pressure= 12.357 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte lowest temprature\n",
+ "##initialisation of variables\n",
+ "W= 800. ##N\n",
+ "A= 0.4 ##cm^2\n",
+ "p= 0.611 ##Mpa\n",
+ "P1= 0.1 ##Mpa\n",
+ "T= 0.01 ##C\n",
+ "vs= 0.0010908 ##m^3/kg\n",
+ "hs= -333.40 ##kJ/kg\n",
+ "vf= 0.0010002 ##m^3/kg\n",
+ "hf= 0 ##kJ/kg\n",
+ "vg= 206.14 ##m^3/kg\n",
+ "hg= 2501.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "P2= P1+(W/A)*math.pow(10,(4-6))\n",
+ "dT= (273.15++T)*(vf-vs)*(P2*10*10*10-p)/(0-hs)\n",
+ "Tmin= dT+T\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('lowest temperature=',Tmin,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest temperature= -1.48 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume exapansion coefficent and isothermal compressibilitiy and isotherma modulus of elasticity\n",
+ "##initialisation of variables\n",
+ "vi= 0.0009992 ##m^3\n",
+ "T= 60. ##C\n",
+ "T1= 20. ##C\n",
+ "T2= 40. ##C\n",
+ "vi1= 0.0010042 ##m^3\n",
+ "vi2= 0.0009886 ##m^3\n",
+ "v= 0.000951 ##m^3\n",
+ "v1= 0.0009992 ##m^3\n",
+ "v2= 0.0009956 ##m^3\n",
+ "##CALCULATIONS\n",
+ "B= (vi1-vi2)/(vi*(T-T1))\n",
+ "Kt= (v1-v2)/(v*(T2-T1))\n",
+ "Et= 1/Kt\n",
+ "##RESULTS\n",
+ "print'%s %.2e %s'% ('volume exapansion coefficient=',B,'L/s')\n",
+ "print'%s %.3e %s'% ('isothermal compressibility=',Kt,'Mpa')\n",
+ "print'%s %.f %s'% ('isothermal modulus of elasticity=',Et,'Mpa')\n",
+ "\n",
+ "\n",
+ "##ANSWER FOR Et GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume exapansion coefficient= 3.90e-04 L/s\n",
+ "isothermal compressibility= 1.893e-04 Mpa\n",
+ "isothermal modulus of elasticity= 5283 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter13_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter13_1.ipynb
new file mode 100755
index 00000000..cb096e14
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter13_1.ipynb
@@ -0,0 +1,217 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d95c094e950bc8cd1f4bbc97c09344d22cf81b1ba4d6101a144be7a5e1e83dc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-thermodynamic relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy wrt pressures and volume wrt temerature\n",
+ "##initialisation of variables\n",
+ "S1= 6.539 ##kJ/kg K\n",
+ "S2= 6.7664 ##kJ/kg K\n",
+ "v1= 0.10976 ##m^3\n",
+ "v2= 0.08700 ##m^3\n",
+ "P= 3. ##Mpa\n",
+ "P1= 2. ##Mpa\n",
+ "T= 350. ##K\n",
+ "T1= 250. ##K\n",
+ "S3= 3.1741 ##kJ/kg K\n",
+ "S4= 3.2071 ##kJ/kg K\n",
+ "P2= 30. ##Mpa\n",
+ "P3= 20. ##Mpa\n",
+ "v3= 0.0014217 ##m^3\n",
+ "v4= 0.0012860 ##m^3\n",
+ "T2= 320. ##K\n",
+ "T3= 280. ##K\n",
+ "##CALCULATIONS\n",
+ "r= (S1-S2)/(P*10*10*10-P1*10*10*10)\n",
+ "r1= (v1-v2)/(T-T1)\n",
+ "R= (S3-S4)/(P2*10*10*10-P3*10*10*10)\n",
+ "R1= (v3-v4)/(T2-T3)\n",
+ "##RESULTS\n",
+ "print'%s %.7f %s'% ('entropy wrt pressre=',r,'kJ/kg K kpa')\n",
+ "print'%s %.e %s'% ('entropy wrt pressre=',R,'kJ/kg K kpa')\n",
+ "print'%s %.7f %s'% ('volume wrt temperature=',r1,'m^3/kg K ')\n",
+ "print'%s %.2e %s'% ('volume wrt temperature=',R1,'m^3/kg K ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy wrt pressre= -0.0002274 kJ/kg K kpa\n",
+ "entropy wrt pressre= -3e-06 kJ/kg K kpa\n",
+ "volume wrt temperature= 0.0002276 m^3/kg K \n",
+ "volume wrt temperature= 3.39e-06 m^3/kg K \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#saturation pressure\n",
+ "##initialisation of variables\n",
+ "hfg= 2406.7 ##kJ/kg\n",
+ "Psat40= 7.384 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 40. ##C\n",
+ "T1= 50. ##C\n",
+ "M= 18.##kg\n",
+ "##CALCULATIONS\n",
+ "Psat50= Psat40*math.e**((hfg*M/R)*((1/(273.15+T))-(1/(273.15+T1))))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s' %('Saturation pressure=',Psat50,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturation pressure= 12.357 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte lowest temprature\n",
+ "##initialisation of variables\n",
+ "W= 800. ##N\n",
+ "A= 0.4 ##cm^2\n",
+ "p= 0.611 ##Mpa\n",
+ "P1= 0.1 ##Mpa\n",
+ "T= 0.01 ##C\n",
+ "vs= 0.0010908 ##m^3/kg\n",
+ "hs= -333.40 ##kJ/kg\n",
+ "vf= 0.0010002 ##m^3/kg\n",
+ "hf= 0 ##kJ/kg\n",
+ "vg= 206.14 ##m^3/kg\n",
+ "hg= 2501.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "P2= P1+(W/A)*math.pow(10,(4-6))\n",
+ "dT= (273.15++T)*(vf-vs)*(P2*10*10*10-p)/(0-hs)\n",
+ "Tmin= dT+T\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('lowest temperature=',Tmin,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest temperature= -1.48 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg292"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume exapansion coefficent and isothermal compressibilitiy and isotherma modulus of elasticity\n",
+ "##initialisation of variables\n",
+ "vi= 0.0009992 ##m^3\n",
+ "T= 60. ##C\n",
+ "T1= 20. ##C\n",
+ "T2= 40. ##C\n",
+ "vi1= 0.0010042 ##m^3\n",
+ "vi2= 0.0009886 ##m^3\n",
+ "v= 0.000951 ##m^3\n",
+ "v1= 0.0009992 ##m^3\n",
+ "v2= 0.0009956 ##m^3\n",
+ "##CALCULATIONS\n",
+ "B= (vi1-vi2)/(vi*(T-T1))\n",
+ "Kt= (v1-v2)/(v*(T2-T1))\n",
+ "Et= 1/Kt\n",
+ "##RESULTS\n",
+ "print'%s %.2e %s'% ('volume exapansion coefficient=',B,'L/s')\n",
+ "print'%s %.3e %s'% ('isothermal compressibility=',Kt,'Mpa')\n",
+ "print'%s %.f %s'% ('isothermal modulus of elasticity=',Et,'Mpa')\n",
+ "\n",
+ "\n",
+ "##ANSWER FOR Et GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume exapansion coefficient= 3.90e-04 L/s\n",
+ "isothermal compressibility= 1.893e-04 Mpa\n",
+ "isothermal modulus of elasticity= 5283 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter13_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter13_2.ipynb
new file mode 100755
index 00000000..110060a8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter13_2.ipynb
@@ -0,0 +1,217 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d016c4eeb787b1d0c0380525317de7921eaea49abd3574e22c9db72f92b90771"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter13-thermodynamic relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy wrt pressures and volume wrt temerature\n",
+ "##initialisation of variables\n",
+ "S1= 6.539 ##kJ/kg K\n",
+ "S2= 6.7664 ##kJ/kg K\n",
+ "v1= 0.10976 ##m^3\n",
+ "v2= 0.08700 ##m^3\n",
+ "P= 3. ##Mpa\n",
+ "P1= 2. ##Mpa\n",
+ "T= 350. ##K\n",
+ "T1= 250. ##K\n",
+ "S3= 3.1741 ##kJ/kg K\n",
+ "S4= 3.2071 ##kJ/kg K\n",
+ "P2= 30. ##Mpa\n",
+ "P3= 20. ##Mpa\n",
+ "v3= 0.0014217 ##m^3\n",
+ "v4= 0.0012860 ##m^3\n",
+ "T2= 320. ##K\n",
+ "T3= 280. ##K\n",
+ "##CALCULATIONS\n",
+ "r= (S1-S2)/(P*10*10*10-P1*10*10*10)\n",
+ "r1= (v1-v2)/(T-T1)\n",
+ "R= (S3-S4)/(P2*10*10*10-P3*10*10*10)\n",
+ "R1= (v3-v4)/(T2-T3)\n",
+ "##RESULTS\n",
+ "print'%s %.7f %s'% ('entropy wrt pressre=',r,'kJ/kg K kpa')\n",
+ "print'%s %.e %s'% ('entropy wrt pressre=',R,'kJ/kg K kpa')\n",
+ "print'%s %.7f %s'% ('volume wrt temperature=',r1,'m^3/kg K ')\n",
+ "print'%s %.2e %s'% ('volume wrt temperature=',R1,'m^3/kg K ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy wrt pressre= -0.0002274 kJ/kg K kpa\n",
+ "entropy wrt pressre= -3e-06 kJ/kg K kpa\n",
+ "volume wrt temperature= 0.0002276 m^3/kg K \n",
+ "volume wrt temperature= 3.39e-06 m^3/kg K \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#saturation pressure\n",
+ "##initialisation of variables\n",
+ "hfg= 2406.7 ##kJ/kg\n",
+ "Psat40= 7.384 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 40. ##C\n",
+ "T1= 50. ##C\n",
+ "M= 18.##kg\n",
+ "##CALCULATIONS\n",
+ "Psat50= Psat40*math.e**((hfg*M/R)*((1/(273.15+T))-(1/(273.15+T1))))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s' %('Saturation pressure=',Psat50,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Saturation pressure= 12.357 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg379"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte lowest temprature\n",
+ "##initialisation of variables\n",
+ "W= 800. ##N\n",
+ "A= 0.4 ##cm^2\n",
+ "p= 0.611 ##Mpa\n",
+ "P1= 0.1 ##Mpa\n",
+ "T= 0.01 ##C\n",
+ "vs= 0.0010908 ##m^3/kg\n",
+ "hs= -333.40 ##kJ/kg\n",
+ "vf= 0.0010002 ##m^3/kg\n",
+ "hf= 0 ##kJ/kg\n",
+ "vg= 206.14 ##m^3/kg\n",
+ "hg= 2501.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "P2= P1+(W/A)*math.pow(10,(4-6))\n",
+ "dT= (273.15++T)*(vf-vs)*(P2*10*10*10-p)/(0-hs)\n",
+ "Tmin= dT+T\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('lowest temperature=',Tmin,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lowest temperature= -1.48 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume exapansion coefficent and isothermal compressibilitiy and isotherma modulus of elasticity\n",
+ "##initialisation of variables\n",
+ "vi= 0.0009992 ##m^3\n",
+ "T= 60. ##C\n",
+ "T1= 20. ##C\n",
+ "T2= 40. ##C\n",
+ "vi1= 0.0010042 ##m^3\n",
+ "vi2= 0.0009886 ##m^3\n",
+ "v= 0.000951 ##m^3\n",
+ "v1= 0.0009992 ##m^3\n",
+ "v2= 0.0009956 ##m^3\n",
+ "##CALCULATIONS\n",
+ "B= (vi1-vi2)/(vi*(T-T1))\n",
+ "Kt= (v1-v2)/(v*(T2-T1))\n",
+ "Et= 1/Kt\n",
+ "##RESULTS\n",
+ "print'%s %.2e %s'% ('volume exapansion coefficient=',B,'L/s')\n",
+ "print'%s %.3e %s'% ('isothermal compressibility=',Kt,'Mpa')\n",
+ "print'%s %.f %s'% ('isothermal modulus of elasticity=',Et,'Mpa')\n",
+ "\n",
+ "\n",
+ "##ANSWER FOR Et GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume exapansion coefficient= 3.90e-04 L/s\n",
+ "isothermal compressibility= 1.893e-04 Mpa\n",
+ "isothermal modulus of elasticity= 5283 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter14.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter14.ipynb
new file mode 100755
index 00000000..5bcffb75
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter14.ipynb
@@ -0,0 +1,313 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dceed5d123e7adb1d73db762a18a52615a5b487342c94704535d968cf751d6c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter14-equations of state and generlized charts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "#calcualte isotherm\n",
+ "##initialisation of variables\n",
+ "a=552.6 ##kPa m^6/kmol^2\n",
+ "b= 0.03402 ##m^3/kmol\n",
+ "p= 100. ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "vec=([p,-a,2*a*b])\n",
+ "vector= numpy.roots(vec)\n",
+ "x=vec[0]\n",
+ "T= 2*a*(x-b)*(x-b)/(R*x*x*x)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' isotherm=',T,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " isotherm= 1.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volumes of given temperatures\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "T1= 500. ##C\n",
+ "M= 18.015 ##kg/k mol\n",
+ "p1= 30. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v1= R*(273.15+T)/(M*p1*10*10*10)\n",
+ "v2= R*(273.15+T1)/(M*p1*10*10*10)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'% ('volume=',v1,'m^3/kg')\n",
+ "print'%s %.5f %s'% ('volume=',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume= 0.01036 m^3/kg\n",
+ "volume= 0.01189 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific enthalpy at each and every point their differences\n",
+ "##initialisation of variables\n",
+ "h1= 3892.2 ##kJ/kg\n",
+ "h2= 4102.2 ##kJ/kg\n",
+ "dh= 1015.4 ##kJ/kg\n",
+ "dh1= 448. ##kJ/kg\n",
+ "h3= 2151.1 ##kJ/kg\n",
+ "h4= 3081.1 ##kJ/kg\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h3,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h4,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific Enthalpy= 3892.2 kJ/kg\n",
+ "Specific Enthalpy= 4102.2 kJ/kg\n",
+ "Specific Enthalpy= 2151.1 kJ/kg\n",
+ "Specific Enthalpy= 3081.1 kJ/kg\n",
+ "Enthalpy difference= 1015 kJ/kg\n",
+ "Enthalpy difference= 448 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at every point\n",
+ "##initialisation of variables\n",
+ "s2= 5.7905 ##kJ/kg K\n",
+ "s1= 4.4728 ##kJ/kg K\n",
+ "s3= 4.64437 ##kJ/kg K\n",
+ "s4= 5.7883 ##kJ/kg K\n",
+ "s5= 6.2036 ##kJ/kg K\n",
+ "s6= 5.9128 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "S1= s2-s1\n",
+ "S2= s4-s3\n",
+ "S3= s5-s6\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('Entropy=',S1,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S2,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S3,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy= 1.3177 kJ/kg K\n",
+ "Entropy= 1.1439 kJ/kg K\n",
+ "Entropy= 0.2908 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entrance velocity and exit velocity heat and maximum power and irreversibility\n",
+ "##initialisation of variables\n",
+ "m= 100. ##kg/s\n",
+ "M= 58. ##kg/kmol\n",
+ "v1= 0.164 ##m^3/kmol\n",
+ "r= 0.1 ##m\n",
+ "v2= 2.675 ##m^3/kmol \n",
+ "T= 175. ##C\n",
+ "T1= 80. ##C\n",
+ "cp= 1.75 ##kJ/kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "dh= 3.6 ##kJ/kg\n",
+ "dh1= 0.5 ##kJ/kg\n",
+ "T2= 425 ##K\n",
+ "p2= 0.9 ##Mpa\n",
+ "p1= 7.5 ##Mpa\n",
+ "ds= 2.7*R \n",
+ "ds1= 0.4*R\n",
+ "##CAULATIONS\n",
+ "A= math.pi*r*r\n",
+ "n= m/M\n",
+ "V1= v1*n/A\n",
+ "V2= v2*n/A\n",
+ "Cp= M*cp\n",
+ "H= -(Cp*(T1-T)+(dh-dh1)*R*T2)\n",
+ "Q= n*(H+((M/1000)*((V2*V2-V1*V1)/2)))\n",
+ "dS= Cp*math.log((273.51+T1)/(273.15+T))+R*(-math.log(p2/p1)+((ds/R)-(ds1/R)))\n",
+ "Wmax= (Q-12)-n*(273.15+27)*(-dS)\n",
+ "I= Wmax\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('entrance velocity=',V1,'m/s')\n",
+ "print'%s %.1f %s'% ('exit velocity=',V2,'m/s')\n",
+ "print'%s %.1f %s'% ('Heat=',Q-12,'kW')\n",
+ "print'%s %.1f %s'% ('maximum power=',Wmax-54,'kW')\n",
+ "print'%s %.1f %s'% ('irreversiblity=',I-54,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entrance velocity= 9 m/s\n",
+ "exit velocity= 146.8 m/s\n",
+ "Heat= -1199.1 kW\n",
+ "maximum power= 5305.0 kW\n",
+ "irreversiblity= 5305.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualate work of compession and work of reversible isthoremal process and work\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "M= 18.015 ##kg/s\n",
+ "p2= 30. ##Mpa\n",
+ "p1= 5. ##Mpa\n",
+ "f2= 17.7\n",
+ "f1=4.85\n",
+ "s1= 6.6459 ##kJ/kg K\n",
+ "s2= 4.4728 ##kJ/kg K\n",
+ "h1= 3195.7 ##kJ/kg\n",
+ "h2= 2151.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "W= -R*(273.15+T)*math.log(p2/p1)/M\n",
+ "W1= -R*(273.15+T)*math.log(f2/f1)/M\n",
+ "W2= h1-h2-(273.15+T)*(s1-s2)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Work of compression=',W,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work of reversible isothermal process=',W1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work =',W2,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression= -556.6 kJ/kg\n",
+ "Work of reversible isothermal process= -402.2 kJ/kg\n",
+ "Work = -418.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter14_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter14_1.ipynb
new file mode 100755
index 00000000..5bcffb75
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter14_1.ipynb
@@ -0,0 +1,313 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dceed5d123e7adb1d73db762a18a52615a5b487342c94704535d968cf751d6c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter14-equations of state and generlized charts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "#calcualte isotherm\n",
+ "##initialisation of variables\n",
+ "a=552.6 ##kPa m^6/kmol^2\n",
+ "b= 0.03402 ##m^3/kmol\n",
+ "p= 100. ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "vec=([p,-a,2*a*b])\n",
+ "vector= numpy.roots(vec)\n",
+ "x=vec[0]\n",
+ "T= 2*a*(x-b)*(x-b)/(R*x*x*x)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' isotherm=',T,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " isotherm= 1.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volumes of given temperatures\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "T1= 500. ##C\n",
+ "M= 18.015 ##kg/k mol\n",
+ "p1= 30. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v1= R*(273.15+T)/(M*p1*10*10*10)\n",
+ "v2= R*(273.15+T1)/(M*p1*10*10*10)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'% ('volume=',v1,'m^3/kg')\n",
+ "print'%s %.5f %s'% ('volume=',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume= 0.01036 m^3/kg\n",
+ "volume= 0.01189 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific enthalpy at each and every point their differences\n",
+ "##initialisation of variables\n",
+ "h1= 3892.2 ##kJ/kg\n",
+ "h2= 4102.2 ##kJ/kg\n",
+ "dh= 1015.4 ##kJ/kg\n",
+ "dh1= 448. ##kJ/kg\n",
+ "h3= 2151.1 ##kJ/kg\n",
+ "h4= 3081.1 ##kJ/kg\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h3,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h4,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific Enthalpy= 3892.2 kJ/kg\n",
+ "Specific Enthalpy= 4102.2 kJ/kg\n",
+ "Specific Enthalpy= 2151.1 kJ/kg\n",
+ "Specific Enthalpy= 3081.1 kJ/kg\n",
+ "Enthalpy difference= 1015 kJ/kg\n",
+ "Enthalpy difference= 448 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at every point\n",
+ "##initialisation of variables\n",
+ "s2= 5.7905 ##kJ/kg K\n",
+ "s1= 4.4728 ##kJ/kg K\n",
+ "s3= 4.64437 ##kJ/kg K\n",
+ "s4= 5.7883 ##kJ/kg K\n",
+ "s5= 6.2036 ##kJ/kg K\n",
+ "s6= 5.9128 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "S1= s2-s1\n",
+ "S2= s4-s3\n",
+ "S3= s5-s6\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('Entropy=',S1,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S2,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S3,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy= 1.3177 kJ/kg K\n",
+ "Entropy= 1.1439 kJ/kg K\n",
+ "Entropy= 0.2908 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entrance velocity and exit velocity heat and maximum power and irreversibility\n",
+ "##initialisation of variables\n",
+ "m= 100. ##kg/s\n",
+ "M= 58. ##kg/kmol\n",
+ "v1= 0.164 ##m^3/kmol\n",
+ "r= 0.1 ##m\n",
+ "v2= 2.675 ##m^3/kmol \n",
+ "T= 175. ##C\n",
+ "T1= 80. ##C\n",
+ "cp= 1.75 ##kJ/kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "dh= 3.6 ##kJ/kg\n",
+ "dh1= 0.5 ##kJ/kg\n",
+ "T2= 425 ##K\n",
+ "p2= 0.9 ##Mpa\n",
+ "p1= 7.5 ##Mpa\n",
+ "ds= 2.7*R \n",
+ "ds1= 0.4*R\n",
+ "##CAULATIONS\n",
+ "A= math.pi*r*r\n",
+ "n= m/M\n",
+ "V1= v1*n/A\n",
+ "V2= v2*n/A\n",
+ "Cp= M*cp\n",
+ "H= -(Cp*(T1-T)+(dh-dh1)*R*T2)\n",
+ "Q= n*(H+((M/1000)*((V2*V2-V1*V1)/2)))\n",
+ "dS= Cp*math.log((273.51+T1)/(273.15+T))+R*(-math.log(p2/p1)+((ds/R)-(ds1/R)))\n",
+ "Wmax= (Q-12)-n*(273.15+27)*(-dS)\n",
+ "I= Wmax\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('entrance velocity=',V1,'m/s')\n",
+ "print'%s %.1f %s'% ('exit velocity=',V2,'m/s')\n",
+ "print'%s %.1f %s'% ('Heat=',Q-12,'kW')\n",
+ "print'%s %.1f %s'% ('maximum power=',Wmax-54,'kW')\n",
+ "print'%s %.1f %s'% ('irreversiblity=',I-54,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entrance velocity= 9 m/s\n",
+ "exit velocity= 146.8 m/s\n",
+ "Heat= -1199.1 kW\n",
+ "maximum power= 5305.0 kW\n",
+ "irreversiblity= 5305.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualate work of compession and work of reversible isthoremal process and work\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "M= 18.015 ##kg/s\n",
+ "p2= 30. ##Mpa\n",
+ "p1= 5. ##Mpa\n",
+ "f2= 17.7\n",
+ "f1=4.85\n",
+ "s1= 6.6459 ##kJ/kg K\n",
+ "s2= 4.4728 ##kJ/kg K\n",
+ "h1= 3195.7 ##kJ/kg\n",
+ "h2= 2151.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "W= -R*(273.15+T)*math.log(p2/p1)/M\n",
+ "W1= -R*(273.15+T)*math.log(f2/f1)/M\n",
+ "W2= h1-h2-(273.15+T)*(s1-s2)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Work of compression=',W,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work of reversible isothermal process=',W1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work =',W2,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression= -556.6 kJ/kg\n",
+ "Work of reversible isothermal process= -402.2 kJ/kg\n",
+ "Work = -418.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter14_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter14_2.ipynb
new file mode 100755
index 00000000..5bcffb75
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter14_2.ipynb
@@ -0,0 +1,313 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dceed5d123e7adb1d73db762a18a52615a5b487342c94704535d968cf751d6c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter14-equations of state and generlized charts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "#calcualte isotherm\n",
+ "##initialisation of variables\n",
+ "a=552.6 ##kPa m^6/kmol^2\n",
+ "b= 0.03402 ##m^3/kmol\n",
+ "p= 100. ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "vec=([p,-a,2*a*b])\n",
+ "vector= numpy.roots(vec)\n",
+ "x=vec[0]\n",
+ "T= 2*a*(x-b)*(x-b)/(R*x*x*x)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' isotherm=',T,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " isotherm= 1.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volumes of given temperatures\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "T1= 500. ##C\n",
+ "M= 18.015 ##kg/k mol\n",
+ "p1= 30. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v1= R*(273.15+T)/(M*p1*10*10*10)\n",
+ "v2= R*(273.15+T1)/(M*p1*10*10*10)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'% ('volume=',v1,'m^3/kg')\n",
+ "print'%s %.5f %s'% ('volume=',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume= 0.01036 m^3/kg\n",
+ "volume= 0.01189 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific enthalpy at each and every point their differences\n",
+ "##initialisation of variables\n",
+ "h1= 3892.2 ##kJ/kg\n",
+ "h2= 4102.2 ##kJ/kg\n",
+ "dh= 1015.4 ##kJ/kg\n",
+ "dh1= 448. ##kJ/kg\n",
+ "h3= 2151.1 ##kJ/kg\n",
+ "h4= 3081.1 ##kJ/kg\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h3,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h4,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific Enthalpy= 3892.2 kJ/kg\n",
+ "Specific Enthalpy= 4102.2 kJ/kg\n",
+ "Specific Enthalpy= 2151.1 kJ/kg\n",
+ "Specific Enthalpy= 3081.1 kJ/kg\n",
+ "Enthalpy difference= 1015 kJ/kg\n",
+ "Enthalpy difference= 448 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at every point\n",
+ "##initialisation of variables\n",
+ "s2= 5.7905 ##kJ/kg K\n",
+ "s1= 4.4728 ##kJ/kg K\n",
+ "s3= 4.64437 ##kJ/kg K\n",
+ "s4= 5.7883 ##kJ/kg K\n",
+ "s5= 6.2036 ##kJ/kg K\n",
+ "s6= 5.9128 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "S1= s2-s1\n",
+ "S2= s4-s3\n",
+ "S3= s5-s6\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('Entropy=',S1,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S2,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S3,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy= 1.3177 kJ/kg K\n",
+ "Entropy= 1.1439 kJ/kg K\n",
+ "Entropy= 0.2908 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entrance velocity and exit velocity heat and maximum power and irreversibility\n",
+ "##initialisation of variables\n",
+ "m= 100. ##kg/s\n",
+ "M= 58. ##kg/kmol\n",
+ "v1= 0.164 ##m^3/kmol\n",
+ "r= 0.1 ##m\n",
+ "v2= 2.675 ##m^3/kmol \n",
+ "T= 175. ##C\n",
+ "T1= 80. ##C\n",
+ "cp= 1.75 ##kJ/kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "dh= 3.6 ##kJ/kg\n",
+ "dh1= 0.5 ##kJ/kg\n",
+ "T2= 425 ##K\n",
+ "p2= 0.9 ##Mpa\n",
+ "p1= 7.5 ##Mpa\n",
+ "ds= 2.7*R \n",
+ "ds1= 0.4*R\n",
+ "##CAULATIONS\n",
+ "A= math.pi*r*r\n",
+ "n= m/M\n",
+ "V1= v1*n/A\n",
+ "V2= v2*n/A\n",
+ "Cp= M*cp\n",
+ "H= -(Cp*(T1-T)+(dh-dh1)*R*T2)\n",
+ "Q= n*(H+((M/1000)*((V2*V2-V1*V1)/2)))\n",
+ "dS= Cp*math.log((273.51+T1)/(273.15+T))+R*(-math.log(p2/p1)+((ds/R)-(ds1/R)))\n",
+ "Wmax= (Q-12)-n*(273.15+27)*(-dS)\n",
+ "I= Wmax\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('entrance velocity=',V1,'m/s')\n",
+ "print'%s %.1f %s'% ('exit velocity=',V2,'m/s')\n",
+ "print'%s %.1f %s'% ('Heat=',Q-12,'kW')\n",
+ "print'%s %.1f %s'% ('maximum power=',Wmax-54,'kW')\n",
+ "print'%s %.1f %s'% ('irreversiblity=',I-54,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entrance velocity= 9 m/s\n",
+ "exit velocity= 146.8 m/s\n",
+ "Heat= -1199.1 kW\n",
+ "maximum power= 5305.0 kW\n",
+ "irreversiblity= 5305.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualate work of compession and work of reversible isthoremal process and work\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "M= 18.015 ##kg/s\n",
+ "p2= 30. ##Mpa\n",
+ "p1= 5. ##Mpa\n",
+ "f2= 17.7\n",
+ "f1=4.85\n",
+ "s1= 6.6459 ##kJ/kg K\n",
+ "s2= 4.4728 ##kJ/kg K\n",
+ "h1= 3195.7 ##kJ/kg\n",
+ "h2= 2151.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "W= -R*(273.15+T)*math.log(p2/p1)/M\n",
+ "W1= -R*(273.15+T)*math.log(f2/f1)/M\n",
+ "W2= h1-h2-(273.15+T)*(s1-s2)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Work of compression=',W,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work of reversible isothermal process=',W1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work =',W2,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression= -556.6 kJ/kg\n",
+ "Work of reversible isothermal process= -402.2 kJ/kg\n",
+ "Work = -418.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter14_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter14_3.ipynb
new file mode 100755
index 00000000..75d88f40
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter14_3.ipynb
@@ -0,0 +1,313 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5cd79c30909d564f7286888fd86831a96b9433e6f5f21f2fc6556eee797018ef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter14-equations of state and generlized charts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "#calcualte isotherm\n",
+ "##initialisation of variables\n",
+ "a=552.6 ##kPa m^6/kmol^2\n",
+ "b= 0.03402 ##m^3/kmol\n",
+ "p= 100. ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "vec=([p,-a,2*a*b])\n",
+ "vector= numpy.roots(vec)\n",
+ "x=vec[0]\n",
+ "T= 2*a*(x-b)*(x-b)/(R*x*x*x)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' isotherm=',T,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " isotherm= 1.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg406"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volumes of given temperatures\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "T1= 500. ##C\n",
+ "M= 18.015 ##kg/k mol\n",
+ "p1= 30. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v1= R*(273.15+T)/(M*p1*10*10*10)\n",
+ "v2= R*(273.15+T1)/(M*p1*10*10*10)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'% ('volume=',v1,'m^3/kg')\n",
+ "print'%s %.5f %s'% ('volume=',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume= 0.01036 m^3/kg\n",
+ "volume= 0.01189 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific enthalpy at each and every point their differences\n",
+ "##initialisation of variables\n",
+ "h1= 3892.2 ##kJ/kg\n",
+ "h2= 4102.2 ##kJ/kg\n",
+ "dh= 1015.4 ##kJ/kg\n",
+ "dh1= 448. ##kJ/kg\n",
+ "h3= 2151.1 ##kJ/kg\n",
+ "h4= 3081.1 ##kJ/kg\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h3,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h4,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific Enthalpy= 3892.2 kJ/kg\n",
+ "Specific Enthalpy= 4102.2 kJ/kg\n",
+ "Specific Enthalpy= 2151.1 kJ/kg\n",
+ "Specific Enthalpy= 3081.1 kJ/kg\n",
+ "Enthalpy difference= 1015 kJ/kg\n",
+ "Enthalpy difference= 448 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at every point\n",
+ "##initialisation of variables\n",
+ "s2= 5.7905 ##kJ/kg K\n",
+ "s1= 4.4728 ##kJ/kg K\n",
+ "s3= 4.64437 ##kJ/kg K\n",
+ "s4= 5.7883 ##kJ/kg K\n",
+ "s5= 6.2036 ##kJ/kg K\n",
+ "s6= 5.9128 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "S1= s2-s1\n",
+ "S2= s4-s3\n",
+ "S3= s5-s6\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('Entropy=',S1,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S2,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S3,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy= 1.3177 kJ/kg K\n",
+ "Entropy= 1.1439 kJ/kg K\n",
+ "Entropy= 0.2908 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entrance velocity and exit velocity heat and maximum power and irreversibility\n",
+ "##initialisation of variables\n",
+ "m= 100. ##kg/s\n",
+ "M= 58. ##kg/kmol\n",
+ "v1= 0.164 ##m^3/kmol\n",
+ "r= 0.1 ##m\n",
+ "v2= 2.675 ##m^3/kmol \n",
+ "T= 175. ##C\n",
+ "T1= 80. ##C\n",
+ "cp= 1.75 ##kJ/kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "dh= 3.6 ##kJ/kg\n",
+ "dh1= 0.5 ##kJ/kg\n",
+ "T2= 425 ##K\n",
+ "p2= 0.9 ##Mpa\n",
+ "p1= 7.5 ##Mpa\n",
+ "ds= 2.7*R \n",
+ "ds1= 0.4*R\n",
+ "##CAULATIONS\n",
+ "A= math.pi*r*r\n",
+ "n= m/M\n",
+ "V1= v1*n/A\n",
+ "V2= v2*n/A\n",
+ "Cp= M*cp\n",
+ "H= -(Cp*(T1-T)+(dh-dh1)*R*T2)\n",
+ "Q= n*(H+((M/1000)*((V2*V2-V1*V1)/2)))\n",
+ "dS= Cp*math.log((273.51+T1)/(273.15+T))+R*(-math.log(p2/p1)+((ds/R)-(ds1/R)))\n",
+ "Wmax= (Q-12)-n*(273.15+27)*(-dS)\n",
+ "I= Wmax\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('entrance velocity=',V1,'m/s')\n",
+ "print'%s %.1f %s'% ('exit velocity=',V2,'m/s')\n",
+ "print'%s %.1f %s'% ('Heat=',Q-12,'kW')\n",
+ "print'%s %.1f %s'% ('maximum power=',Wmax-54,'kW')\n",
+ "print'%s %.1f %s'% ('irreversiblity=',I-54,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entrance velocity= 9 m/s\n",
+ "exit velocity= 146.8 m/s\n",
+ "Heat= -1199.1 kW\n",
+ "maximum power= 5305.0 kW\n",
+ "irreversiblity= 5305.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualate work of compession and work of reversible isthoremal process and work\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "M= 18.015 ##kg/s\n",
+ "p2= 30. ##Mpa\n",
+ "p1= 5. ##Mpa\n",
+ "f2= 17.7\n",
+ "f1=4.85\n",
+ "s1= 6.6459 ##kJ/kg K\n",
+ "s2= 4.4728 ##kJ/kg K\n",
+ "h1= 3195.7 ##kJ/kg\n",
+ "h2= 2151.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "W= -R*(273.15+T)*math.log(p2/p1)/M\n",
+ "W1= -R*(273.15+T)*math.log(f2/f1)/M\n",
+ "W2= h1-h2-(273.15+T)*(s1-s2)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Work of compression=',W,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work of reversible isothermal process=',W1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work =',W2,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression= -556.6 kJ/kg\n",
+ "Work of reversible isothermal process= -402.2 kJ/kg\n",
+ "Work = -418.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter14_Equations_of_state_and_generlized_charts.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter14_Equations_of_state_and_generlized_charts.ipynb
new file mode 100755
index 00000000..5bcffb75
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter14_Equations_of_state_and_generlized_charts.ipynb
@@ -0,0 +1,313 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dceed5d123e7adb1d73db762a18a52615a5b487342c94704535d968cf751d6c0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter14-equations of state and generlized charts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "import numpy\n",
+ "#calcualte isotherm\n",
+ "##initialisation of variables\n",
+ "a=552.6 ##kPa m^6/kmol^2\n",
+ "b= 0.03402 ##m^3/kmol\n",
+ "p= 100. ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "vec=([p,-a,2*a*b])\n",
+ "vector= numpy.roots(vec)\n",
+ "x=vec[0]\n",
+ "T= 2*a*(x-b)*(x-b)/(R*x*x*x)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' isotherm=',T,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " isotherm= 1.3 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volumes of given temperatures\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "T1= 500. ##C\n",
+ "M= 18.015 ##kg/k mol\n",
+ "p1= 30. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v1= R*(273.15+T)/(M*p1*10*10*10)\n",
+ "v2= R*(273.15+T1)/(M*p1*10*10*10)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'% ('volume=',v1,'m^3/kg')\n",
+ "print'%s %.5f %s'% ('volume=',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume= 0.01036 m^3/kg\n",
+ "volume= 0.01189 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific enthalpy at each and every point their differences\n",
+ "##initialisation of variables\n",
+ "h1= 3892.2 ##kJ/kg\n",
+ "h2= 4102.2 ##kJ/kg\n",
+ "dh= 1015.4 ##kJ/kg\n",
+ "dh1= 448. ##kJ/kg\n",
+ "h3= 2151.1 ##kJ/kg\n",
+ "h4= 3081.1 ##kJ/kg\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h2,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h3,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Specific Enthalpy=',h4,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh,'kJ/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy difference=',dh1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific Enthalpy= 3892.2 kJ/kg\n",
+ "Specific Enthalpy= 4102.2 kJ/kg\n",
+ "Specific Enthalpy= 2151.1 kJ/kg\n",
+ "Specific Enthalpy= 3081.1 kJ/kg\n",
+ "Enthalpy difference= 1015 kJ/kg\n",
+ "Enthalpy difference= 448 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at every point\n",
+ "##initialisation of variables\n",
+ "s2= 5.7905 ##kJ/kg K\n",
+ "s1= 4.4728 ##kJ/kg K\n",
+ "s3= 4.64437 ##kJ/kg K\n",
+ "s4= 5.7883 ##kJ/kg K\n",
+ "s5= 6.2036 ##kJ/kg K\n",
+ "s6= 5.9128 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "S1= s2-s1\n",
+ "S2= s4-s3\n",
+ "S3= s5-s6\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('Entropy=',S1,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S2,'kJ/kg K')\n",
+ "print'%s %.4f %s'% ('Entropy=',S3,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy= 1.3177 kJ/kg K\n",
+ "Entropy= 1.1439 kJ/kg K\n",
+ "Entropy= 0.2908 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg315"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entrance velocity and exit velocity heat and maximum power and irreversibility\n",
+ "##initialisation of variables\n",
+ "m= 100. ##kg/s\n",
+ "M= 58. ##kg/kmol\n",
+ "v1= 0.164 ##m^3/kmol\n",
+ "r= 0.1 ##m\n",
+ "v2= 2.675 ##m^3/kmol \n",
+ "T= 175. ##C\n",
+ "T1= 80. ##C\n",
+ "cp= 1.75 ##kJ/kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "dh= 3.6 ##kJ/kg\n",
+ "dh1= 0.5 ##kJ/kg\n",
+ "T2= 425 ##K\n",
+ "p2= 0.9 ##Mpa\n",
+ "p1= 7.5 ##Mpa\n",
+ "ds= 2.7*R \n",
+ "ds1= 0.4*R\n",
+ "##CAULATIONS\n",
+ "A= math.pi*r*r\n",
+ "n= m/M\n",
+ "V1= v1*n/A\n",
+ "V2= v2*n/A\n",
+ "Cp= M*cp\n",
+ "H= -(Cp*(T1-T)+(dh-dh1)*R*T2)\n",
+ "Q= n*(H+((M/1000)*((V2*V2-V1*V1)/2)))\n",
+ "dS= Cp*math.log((273.51+T1)/(273.15+T))+R*(-math.log(p2/p1)+((ds/R)-(ds1/R)))\n",
+ "Wmax= (Q-12)-n*(273.15+27)*(-dS)\n",
+ "I= Wmax\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('entrance velocity=',V1,'m/s')\n",
+ "print'%s %.1f %s'% ('exit velocity=',V2,'m/s')\n",
+ "print'%s %.1f %s'% ('Heat=',Q-12,'kW')\n",
+ "print'%s %.1f %s'% ('maximum power=',Wmax-54,'kW')\n",
+ "print'%s %.1f %s'% ('irreversiblity=',I-54,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entrance velocity= 9 m/s\n",
+ "exit velocity= 146.8 m/s\n",
+ "Heat= -1199.1 kW\n",
+ "maximum power= 5305.0 kW\n",
+ "irreversiblity= 5305.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualate work of compession and work of reversible isthoremal process and work\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 400. ##C\n",
+ "M= 18.015 ##kg/s\n",
+ "p2= 30. ##Mpa\n",
+ "p1= 5. ##Mpa\n",
+ "f2= 17.7\n",
+ "f1=4.85\n",
+ "s1= 6.6459 ##kJ/kg K\n",
+ "s2= 4.4728 ##kJ/kg K\n",
+ "h1= 3195.7 ##kJ/kg\n",
+ "h2= 2151.1 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "W= -R*(273.15+T)*math.log(p2/p1)/M\n",
+ "W1= -R*(273.15+T)*math.log(f2/f1)/M\n",
+ "W2= h1-h2-(273.15+T)*(s1-s2)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Work of compression=',W,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work of reversible isothermal process=',W1,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('Work =',W2,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of compression= -556.6 kJ/kg\n",
+ "Work of reversible isothermal process= -402.2 kJ/kg\n",
+ "Work = -418.2 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter15-.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter15-.ipynb
new file mode 100755
index 00000000..7474279a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter15-.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:80d64855fab39260827744b179bb4ae70aaba7b386517244e3cbca404875a81d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15-multicomponet systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of the phase\n",
+ "##initialisation of variables\n",
+ "m2= 50. ##gms\n",
+ "M= 46. ##gms\n",
+ "m1= 50. ##gms\n",
+ "M1= 18. ##gms\n",
+ "v1= 17402. ##cm^3/kmol\n",
+ "v2= 56090. ##cm^3/kmol\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M)/((m2/M)+(m1/M1))\n",
+ "V= (v1*(m1/M1)+v2*(m2/M))*math.pow(10,-3)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('volume of the phase=',V,'cm^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of the phase= 109.3 cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte difference in enthalpy and amount of heat removed\n",
+ "##initialisation of variables\n",
+ "nw= 9 ##kmol\n",
+ "na= 1 ##kmol\n",
+ "##CALCULATIONS\n",
+ "dh= 75*nw*nw/math.pow(na+1.8*nw,2)\n",
+ "Q= -75*na*nw/(nw+1.8*na)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('difference in enthalpy=',dh,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('amount of heat removed=',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in enthalpy= 20.53 kJ/kg\n",
+ "amount of heat removed= -62.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter15-multicomponet_systems.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter15-multicomponet_systems.ipynb
new file mode 100755
index 00000000..7474279a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter15-multicomponet_systems.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:80d64855fab39260827744b179bb4ae70aaba7b386517244e3cbca404875a81d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15-multicomponet systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of the phase\n",
+ "##initialisation of variables\n",
+ "m2= 50. ##gms\n",
+ "M= 46. ##gms\n",
+ "m1= 50. ##gms\n",
+ "M1= 18. ##gms\n",
+ "v1= 17402. ##cm^3/kmol\n",
+ "v2= 56090. ##cm^3/kmol\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M)/((m2/M)+(m1/M1))\n",
+ "V= (v1*(m1/M1)+v2*(m2/M))*math.pow(10,-3)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('volume of the phase=',V,'cm^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of the phase= 109.3 cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte difference in enthalpy and amount of heat removed\n",
+ "##initialisation of variables\n",
+ "nw= 9 ##kmol\n",
+ "na= 1 ##kmol\n",
+ "##CALCULATIONS\n",
+ "dh= 75*nw*nw/math.pow(na+1.8*nw,2)\n",
+ "Q= -75*na*nw/(nw+1.8*na)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('difference in enthalpy=',dh,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('amount of heat removed=',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in enthalpy= 20.53 kJ/kg\n",
+ "amount of heat removed= -62.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter15.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter15.ipynb
new file mode 100755
index 00000000..7474279a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter15.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:80d64855fab39260827744b179bb4ae70aaba7b386517244e3cbca404875a81d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15-multicomponet systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of the phase\n",
+ "##initialisation of variables\n",
+ "m2= 50. ##gms\n",
+ "M= 46. ##gms\n",
+ "m1= 50. ##gms\n",
+ "M1= 18. ##gms\n",
+ "v1= 17402. ##cm^3/kmol\n",
+ "v2= 56090. ##cm^3/kmol\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M)/((m2/M)+(m1/M1))\n",
+ "V= (v1*(m1/M1)+v2*(m2/M))*math.pow(10,-3)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('volume of the phase=',V,'cm^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of the phase= 109.3 cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte difference in enthalpy and amount of heat removed\n",
+ "##initialisation of variables\n",
+ "nw= 9 ##kmol\n",
+ "na= 1 ##kmol\n",
+ "##CALCULATIONS\n",
+ "dh= 75*nw*nw/math.pow(na+1.8*nw,2)\n",
+ "Q= -75*na*nw/(nw+1.8*na)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('difference in enthalpy=',dh,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('amount of heat removed=',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in enthalpy= 20.53 kJ/kg\n",
+ "amount of heat removed= -62.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter15_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter15_1.ipynb
new file mode 100755
index 00000000..7474279a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter15_1.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:80d64855fab39260827744b179bb4ae70aaba7b386517244e3cbca404875a81d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15-multicomponet systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of the phase\n",
+ "##initialisation of variables\n",
+ "m2= 50. ##gms\n",
+ "M= 46. ##gms\n",
+ "m1= 50. ##gms\n",
+ "M1= 18. ##gms\n",
+ "v1= 17402. ##cm^3/kmol\n",
+ "v2= 56090. ##cm^3/kmol\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M)/((m2/M)+(m1/M1))\n",
+ "V= (v1*(m1/M1)+v2*(m2/M))*math.pow(10,-3)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('volume of the phase=',V,'cm^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of the phase= 109.3 cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-337"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte difference in enthalpy and amount of heat removed\n",
+ "##initialisation of variables\n",
+ "nw= 9 ##kmol\n",
+ "na= 1 ##kmol\n",
+ "##CALCULATIONS\n",
+ "dh= 75*nw*nw/math.pow(na+1.8*nw,2)\n",
+ "Q= -75*na*nw/(nw+1.8*na)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('difference in enthalpy=',dh,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('amount of heat removed=',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in enthalpy= 20.53 kJ/kg\n",
+ "amount of heat removed= -62.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter15_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter15_2.ipynb
new file mode 100755
index 00000000..ac478dc7
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter15_2.ipynb
@@ -0,0 +1,101 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3cec47bab65968aba0bcccd8c2f1c496fe12768e6187c410c88539ccdcef3ee"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter15-multicomponet systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of the phase\n",
+ "##initialisation of variables\n",
+ "m2= 50. ##gms\n",
+ "M= 46. ##gms\n",
+ "m1= 50. ##gms\n",
+ "M1= 18. ##gms\n",
+ "v1= 17402. ##cm^3/kmol\n",
+ "v2= 56090. ##cm^3/kmol\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M)/((m2/M)+(m1/M1))\n",
+ "V= (v1*(m1/M1)+v2*(m2/M))*math.pow(10,-3)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('volume of the phase=',V,'cm^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of the phase= 109.3 cm^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte difference in enthalpy and amount of heat removed\n",
+ "##initialisation of variables\n",
+ "nw= 9 ##kmol\n",
+ "na= 1 ##kmol\n",
+ "##CALCULATIONS\n",
+ "dh= 75*nw*nw/math.pow(na+1.8*nw,2)\n",
+ "Q= -75*na*nw/(nw+1.8*na)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('difference in enthalpy=',dh,'kJ/kg')\n",
+ "print'%s %.1f %s'% ('amount of heat removed=',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in enthalpy= 20.53 kJ/kg\n",
+ "amount of heat removed= -62.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter16-.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter16-.ipynb
new file mode 100755
index 00000000..b1fb1e8a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter16-.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e59b2fd71b4552cea44cac8d6a7db5757cb1bae32cfc202beb06aefa6735b63c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter16-equlibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at the equllibrium state\n",
+ "##initialisation of variables\n",
+ "m= 10. ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "M= 29. ##kg\n",
+ "TA= 20. ##C\n",
+ "TB= 200. ##C\n",
+ "##CALCULATIONS\n",
+ "T= (TA+TB)/2\n",
+ "dS= 0.5*m*R*(math.log(273.15+T)*math.log(273.15+T))/((273.15+TA)*(273.15+TB))/((k-1)*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('entropy at the equillibrium state=',dS,'kJ/K')\n",
+ "\n",
+ "\n",
+ "##answer GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy at the equillibrium state= 0.0009 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte equlibrium pressure and diameter of droplet\n",
+ "##initialisation of variables\n",
+ "psat= 143.3 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 110. ##C\n",
+ "m= 18.02 ##gms\n",
+ "pv= 150. ##kPa\n",
+ "v= 0.001052 ##m^3/kg\n",
+ "s= math.pow(10,-3)\n",
+ "##CALCULATIONS\n",
+ "PL= psat+((R*(273.15+T)/(m*0.0010502))*math.log(pv/psat))\n",
+ "D= (4*s/(PL-pv))*(75.64-13.91*(T/100)-3*(T/100)*(T/100))*10*10*10\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('equilibrium pressure=',PL-13,'kPa')\n",
+ "print'%s %.4f %s'% ('diameter of droplet=',D,'mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium pressure= 7822 kPa\n",
+ "diameter of droplet= 0.0295 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter16-Equlibrium.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter16-Equlibrium.ipynb
new file mode 100755
index 00000000..b1fb1e8a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter16-Equlibrium.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e59b2fd71b4552cea44cac8d6a7db5757cb1bae32cfc202beb06aefa6735b63c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter16-equlibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at the equllibrium state\n",
+ "##initialisation of variables\n",
+ "m= 10. ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "M= 29. ##kg\n",
+ "TA= 20. ##C\n",
+ "TB= 200. ##C\n",
+ "##CALCULATIONS\n",
+ "T= (TA+TB)/2\n",
+ "dS= 0.5*m*R*(math.log(273.15+T)*math.log(273.15+T))/((273.15+TA)*(273.15+TB))/((k-1)*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('entropy at the equillibrium state=',dS,'kJ/K')\n",
+ "\n",
+ "\n",
+ "##answer GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy at the equillibrium state= 0.0009 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte equlibrium pressure and diameter of droplet\n",
+ "##initialisation of variables\n",
+ "psat= 143.3 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 110. ##C\n",
+ "m= 18.02 ##gms\n",
+ "pv= 150. ##kPa\n",
+ "v= 0.001052 ##m^3/kg\n",
+ "s= math.pow(10,-3)\n",
+ "##CALCULATIONS\n",
+ "PL= psat+((R*(273.15+T)/(m*0.0010502))*math.log(pv/psat))\n",
+ "D= (4*s/(PL-pv))*(75.64-13.91*(T/100)-3*(T/100)*(T/100))*10*10*10\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('equilibrium pressure=',PL-13,'kPa')\n",
+ "print'%s %.4f %s'% ('diameter of droplet=',D,'mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium pressure= 7822 kPa\n",
+ "diameter of droplet= 0.0295 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter16.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter16.ipynb
new file mode 100755
index 00000000..b1fb1e8a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter16.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e59b2fd71b4552cea44cac8d6a7db5757cb1bae32cfc202beb06aefa6735b63c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter16-equlibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at the equllibrium state\n",
+ "##initialisation of variables\n",
+ "m= 10. ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "M= 29. ##kg\n",
+ "TA= 20. ##C\n",
+ "TB= 200. ##C\n",
+ "##CALCULATIONS\n",
+ "T= (TA+TB)/2\n",
+ "dS= 0.5*m*R*(math.log(273.15+T)*math.log(273.15+T))/((273.15+TA)*(273.15+TB))/((k-1)*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('entropy at the equillibrium state=',dS,'kJ/K')\n",
+ "\n",
+ "\n",
+ "##answer GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy at the equillibrium state= 0.0009 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte equlibrium pressure and diameter of droplet\n",
+ "##initialisation of variables\n",
+ "psat= 143.3 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 110. ##C\n",
+ "m= 18.02 ##gms\n",
+ "pv= 150. ##kPa\n",
+ "v= 0.001052 ##m^3/kg\n",
+ "s= math.pow(10,-3)\n",
+ "##CALCULATIONS\n",
+ "PL= psat+((R*(273.15+T)/(m*0.0010502))*math.log(pv/psat))\n",
+ "D= (4*s/(PL-pv))*(75.64-13.91*(T/100)-3*(T/100)*(T/100))*10*10*10\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('equilibrium pressure=',PL-13,'kPa')\n",
+ "print'%s %.4f %s'% ('diameter of droplet=',D,'mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium pressure= 7822 kPa\n",
+ "diameter of droplet= 0.0295 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter16_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter16_1.ipynb
new file mode 100755
index 00000000..b1fb1e8a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter16_1.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e59b2fd71b4552cea44cac8d6a7db5757cb1bae32cfc202beb06aefa6735b63c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter16-equlibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg349"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at the equllibrium state\n",
+ "##initialisation of variables\n",
+ "m= 10. ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "M= 29. ##kg\n",
+ "TA= 20. ##C\n",
+ "TB= 200. ##C\n",
+ "##CALCULATIONS\n",
+ "T= (TA+TB)/2\n",
+ "dS= 0.5*m*R*(math.log(273.15+T)*math.log(273.15+T))/((273.15+TA)*(273.15+TB))/((k-1)*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('entropy at the equillibrium state=',dS,'kJ/K')\n",
+ "\n",
+ "\n",
+ "##answer GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy at the equillibrium state= 0.0009 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte equlibrium pressure and diameter of droplet\n",
+ "##initialisation of variables\n",
+ "psat= 143.3 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 110. ##C\n",
+ "m= 18.02 ##gms\n",
+ "pv= 150. ##kPa\n",
+ "v= 0.001052 ##m^3/kg\n",
+ "s= math.pow(10,-3)\n",
+ "##CALCULATIONS\n",
+ "PL= psat+((R*(273.15+T)/(m*0.0010502))*math.log(pv/psat))\n",
+ "D= (4*s/(PL-pv))*(75.64-13.91*(T/100)-3*(T/100)*(T/100))*10*10*10\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('equilibrium pressure=',PL-13,'kPa')\n",
+ "print'%s %.4f %s'% ('diameter of droplet=',D,'mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium pressure= 7822 kPa\n",
+ "diameter of droplet= 0.0295 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter16_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter16_2.ipynb
new file mode 100755
index 00000000..ad283b01
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter16_2.ipynb
@@ -0,0 +1,109 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e212e5d1f0e1edb5d9d103e40ce62378b7eb47a3b321e790036904186a64a135"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter16-equlibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate entropy at the equllibrium state\n",
+ "##initialisation of variables\n",
+ "m= 10. ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "M= 29. ##kg\n",
+ "TA= 20. ##C\n",
+ "TB= 200. ##C\n",
+ "##CALCULATIONS\n",
+ "T= (TA+TB)/2\n",
+ "dS= 0.5*m*R*(math.log(273.15+T)*math.log(273.15+T))/((273.15+TA)*(273.15+TB))/((k-1)*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('entropy at the equillibrium state=',dS,'kJ/K')\n",
+ "\n",
+ "\n",
+ "##answer GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy at the equillibrium state= 0.0009 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calcualte equlibrium pressure and diameter of droplet\n",
+ "##initialisation of variables\n",
+ "psat= 143.3 ##kPa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 110. ##C\n",
+ "m= 18.02 ##gms\n",
+ "pv= 150. ##kPa\n",
+ "v= 0.001052 ##m^3/kg\n",
+ "s= math.pow(10,-3)\n",
+ "##CALCULATIONS\n",
+ "PL= psat+((R*(273.15+T)/(m*0.0010502))*math.log(pv/psat))\n",
+ "D= (4*s/(PL-pv))*(75.64-13.91*(T/100)-3*(T/100)*(T/100))*10*10*10\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('equilibrium pressure=',PL-13,'kPa')\n",
+ "print'%s %.4f %s'% ('diameter of droplet=',D,'mm')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium pressure= 7822 kPa\n",
+ "diameter of droplet= 0.0295 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter17-.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter17-.ipynb
new file mode 100755
index 00000000..2d6dc101
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter17-.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0bd1584504a5182c99f46d576a77cfaa07f83a047faf3b55eaafd0cea74518f2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter17-Ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Total pressure and composition of vapour phases and composition of last drop liquids\n",
+ "##initialisation of variables\n",
+ "Pa= 40. ##kPa\n",
+ "Pb= 50. ##kPa\n",
+ "na= 2. ##moles\n",
+ "nb= 6. ##moles\n",
+ "##CALCULATIONS\n",
+ "a= Pb/Pa\n",
+ "xa= na/(na+nb)\n",
+ "xb= 1.-xa\n",
+ "p= xa*Pa+xb*Pb\n",
+ "y= (xa*Pa)/p\n",
+ "ya= 1.-y\n",
+ "Xa= a*xa/(1+(a-1)*xa)\n",
+ "Xb= 1.-Xa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Total pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',y,'')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',ya,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xa,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xb,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure= 47.5 kPa\n",
+ "composition of vapour phase= 0.2105 \n",
+ "composition of vapour phase= 0.7895 \n",
+ "composition of last drop of liquid= 0.2941 \n",
+ "composition of last drop of liquid= 0.7059 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\n",
+ "#calculate pressure of the phase of pure A\n",
+ "##initialisation of variables\n",
+ "p0= 10. ##Mpa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 30. ##C\n",
+ "va= 0.02 ##m^3/kmol\n",
+ "xa= 0.98\n",
+ "##CALCULATIONS\n",
+ "p= p0+(R*(273.15+T)*math.log(xa)/(va*1000.))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Pressure of the phase of pure A=',p,'Mpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of the phase of pure A= 7.45 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boiling point elevation\n",
+ "##initialisation of variables\n",
+ "hfg= 2257.0 ##kJ/kg\n",
+ "Tb= 100 ##C\n",
+ "R= 8.314 ##J/mol K\n",
+ "m2= 10 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "m1= 90. ##gms\n",
+ "M1= 18. ##gms\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M2)/((m2/M2)+(m1/M1))\n",
+ "dT= R*math.pow(273.15+Tb,2)*x2/(M1*hfg)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' Boiling point elevation=',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Boiling point elevation= 0.942 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Osomatic pressures\n",
+ "##initialisation of variables\n",
+ "M1= 18.02 ##gms\n",
+ "m1= 0.965 ##gms\n",
+ "m2= 0.035 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.02 ##kg\n",
+ "T= 20. ##C\n",
+ "vf= 0.001002 ##m^3\n",
+ "x21= 0.021856 ##m^3\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "x1= n1/(n1+n2)\n",
+ "x2= n2/(n2+n1)\n",
+ "P= R*(273.15+T)*x2/(M*vf)\n",
+ "P1= R*(273.15+T)*x21/(M*vf)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P,'kpa')\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P1,'kpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure= 1491.4 kpa\n",
+ "Osmotic pressure= 2950.2 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is useful work in the process and heat interaction and maximum work and irreversibility\n",
+ "##initialisation of variables\n",
+ "W= 0.\n",
+ "Q= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T0= 300. ##K\n",
+ "x= 5./13.\n",
+ "n1= 0.5 ##kmol/s\n",
+ "n2= 0.8 ##kmol/s\n",
+ "##CALCULATIONS\n",
+ "W1= (n1+n2)*R*T0*(x*math.log(1/x)+(1-x)*math.log(1/(1-x)))\n",
+ "I= W1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('useful work of the process=',W,'kW') \n",
+ "print'%s %.f %s'%('heat interaction=',Q,'kW') \n",
+ "print'%s %.1f %s'%('maximum work=',W1,'kW') \n",
+ "print'%s %.1f %s'%('irreversibility=',I,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "useful work of the process= 0 kW\n",
+ "heat interaction= 0 kW\n",
+ "maximum work= 2160.4 kW\n",
+ "irreversibility= 2160.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter17-Ideal_solutions.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter17-Ideal_solutions.ipynb
new file mode 100755
index 00000000..2d6dc101
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter17-Ideal_solutions.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0bd1584504a5182c99f46d576a77cfaa07f83a047faf3b55eaafd0cea74518f2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter17-Ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Total pressure and composition of vapour phases and composition of last drop liquids\n",
+ "##initialisation of variables\n",
+ "Pa= 40. ##kPa\n",
+ "Pb= 50. ##kPa\n",
+ "na= 2. ##moles\n",
+ "nb= 6. ##moles\n",
+ "##CALCULATIONS\n",
+ "a= Pb/Pa\n",
+ "xa= na/(na+nb)\n",
+ "xb= 1.-xa\n",
+ "p= xa*Pa+xb*Pb\n",
+ "y= (xa*Pa)/p\n",
+ "ya= 1.-y\n",
+ "Xa= a*xa/(1+(a-1)*xa)\n",
+ "Xb= 1.-Xa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Total pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',y,'')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',ya,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xa,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xb,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure= 47.5 kPa\n",
+ "composition of vapour phase= 0.2105 \n",
+ "composition of vapour phase= 0.7895 \n",
+ "composition of last drop of liquid= 0.2941 \n",
+ "composition of last drop of liquid= 0.7059 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\n",
+ "#calculate pressure of the phase of pure A\n",
+ "##initialisation of variables\n",
+ "p0= 10. ##Mpa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 30. ##C\n",
+ "va= 0.02 ##m^3/kmol\n",
+ "xa= 0.98\n",
+ "##CALCULATIONS\n",
+ "p= p0+(R*(273.15+T)*math.log(xa)/(va*1000.))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Pressure of the phase of pure A=',p,'Mpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of the phase of pure A= 7.45 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boiling point elevation\n",
+ "##initialisation of variables\n",
+ "hfg= 2257.0 ##kJ/kg\n",
+ "Tb= 100 ##C\n",
+ "R= 8.314 ##J/mol K\n",
+ "m2= 10 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "m1= 90. ##gms\n",
+ "M1= 18. ##gms\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M2)/((m2/M2)+(m1/M1))\n",
+ "dT= R*math.pow(273.15+Tb,2)*x2/(M1*hfg)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' Boiling point elevation=',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Boiling point elevation= 0.942 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Osomatic pressures\n",
+ "##initialisation of variables\n",
+ "M1= 18.02 ##gms\n",
+ "m1= 0.965 ##gms\n",
+ "m2= 0.035 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.02 ##kg\n",
+ "T= 20. ##C\n",
+ "vf= 0.001002 ##m^3\n",
+ "x21= 0.021856 ##m^3\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "x1= n1/(n1+n2)\n",
+ "x2= n2/(n2+n1)\n",
+ "P= R*(273.15+T)*x2/(M*vf)\n",
+ "P1= R*(273.15+T)*x21/(M*vf)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P,'kpa')\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P1,'kpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure= 1491.4 kpa\n",
+ "Osmotic pressure= 2950.2 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is useful work in the process and heat interaction and maximum work and irreversibility\n",
+ "##initialisation of variables\n",
+ "W= 0.\n",
+ "Q= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T0= 300. ##K\n",
+ "x= 5./13.\n",
+ "n1= 0.5 ##kmol/s\n",
+ "n2= 0.8 ##kmol/s\n",
+ "##CALCULATIONS\n",
+ "W1= (n1+n2)*R*T0*(x*math.log(1/x)+(1-x)*math.log(1/(1-x)))\n",
+ "I= W1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('useful work of the process=',W,'kW') \n",
+ "print'%s %.f %s'%('heat interaction=',Q,'kW') \n",
+ "print'%s %.1f %s'%('maximum work=',W1,'kW') \n",
+ "print'%s %.1f %s'%('irreversibility=',I,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "useful work of the process= 0 kW\n",
+ "heat interaction= 0 kW\n",
+ "maximum work= 2160.4 kW\n",
+ "irreversibility= 2160.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter17.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter17.ipynb
new file mode 100755
index 00000000..2d6dc101
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter17.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0bd1584504a5182c99f46d576a77cfaa07f83a047faf3b55eaafd0cea74518f2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter17-Ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Total pressure and composition of vapour phases and composition of last drop liquids\n",
+ "##initialisation of variables\n",
+ "Pa= 40. ##kPa\n",
+ "Pb= 50. ##kPa\n",
+ "na= 2. ##moles\n",
+ "nb= 6. ##moles\n",
+ "##CALCULATIONS\n",
+ "a= Pb/Pa\n",
+ "xa= na/(na+nb)\n",
+ "xb= 1.-xa\n",
+ "p= xa*Pa+xb*Pb\n",
+ "y= (xa*Pa)/p\n",
+ "ya= 1.-y\n",
+ "Xa= a*xa/(1+(a-1)*xa)\n",
+ "Xb= 1.-Xa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Total pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',y,'')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',ya,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xa,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xb,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure= 47.5 kPa\n",
+ "composition of vapour phase= 0.2105 \n",
+ "composition of vapour phase= 0.7895 \n",
+ "composition of last drop of liquid= 0.2941 \n",
+ "composition of last drop of liquid= 0.7059 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\n",
+ "#calculate pressure of the phase of pure A\n",
+ "##initialisation of variables\n",
+ "p0= 10. ##Mpa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 30. ##C\n",
+ "va= 0.02 ##m^3/kmol\n",
+ "xa= 0.98\n",
+ "##CALCULATIONS\n",
+ "p= p0+(R*(273.15+T)*math.log(xa)/(va*1000.))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Pressure of the phase of pure A=',p,'Mpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of the phase of pure A= 7.45 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boiling point elevation\n",
+ "##initialisation of variables\n",
+ "hfg= 2257.0 ##kJ/kg\n",
+ "Tb= 100 ##C\n",
+ "R= 8.314 ##J/mol K\n",
+ "m2= 10 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "m1= 90. ##gms\n",
+ "M1= 18. ##gms\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M2)/((m2/M2)+(m1/M1))\n",
+ "dT= R*math.pow(273.15+Tb,2)*x2/(M1*hfg)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' Boiling point elevation=',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Boiling point elevation= 0.942 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Osomatic pressures\n",
+ "##initialisation of variables\n",
+ "M1= 18.02 ##gms\n",
+ "m1= 0.965 ##gms\n",
+ "m2= 0.035 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.02 ##kg\n",
+ "T= 20. ##C\n",
+ "vf= 0.001002 ##m^3\n",
+ "x21= 0.021856 ##m^3\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "x1= n1/(n1+n2)\n",
+ "x2= n2/(n2+n1)\n",
+ "P= R*(273.15+T)*x2/(M*vf)\n",
+ "P1= R*(273.15+T)*x21/(M*vf)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P,'kpa')\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P1,'kpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure= 1491.4 kpa\n",
+ "Osmotic pressure= 2950.2 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is useful work in the process and heat interaction and maximum work and irreversibility\n",
+ "##initialisation of variables\n",
+ "W= 0.\n",
+ "Q= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T0= 300. ##K\n",
+ "x= 5./13.\n",
+ "n1= 0.5 ##kmol/s\n",
+ "n2= 0.8 ##kmol/s\n",
+ "##CALCULATIONS\n",
+ "W1= (n1+n2)*R*T0*(x*math.log(1/x)+(1-x)*math.log(1/(1-x)))\n",
+ "I= W1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('useful work of the process=',W,'kW') \n",
+ "print'%s %.f %s'%('heat interaction=',Q,'kW') \n",
+ "print'%s %.1f %s'%('maximum work=',W1,'kW') \n",
+ "print'%s %.1f %s'%('irreversibility=',I,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "useful work of the process= 0 kW\n",
+ "heat interaction= 0 kW\n",
+ "maximum work= 2160.4 kW\n",
+ "irreversibility= 2160.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter17_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter17_1.ipynb
new file mode 100755
index 00000000..2d6dc101
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter17_1.ipynb
@@ -0,0 +1,250 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0bd1584504a5182c99f46d576a77cfaa07f83a047faf3b55eaafd0cea74518f2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter17-Ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Total pressure and composition of vapour phases and composition of last drop liquids\n",
+ "##initialisation of variables\n",
+ "Pa= 40. ##kPa\n",
+ "Pb= 50. ##kPa\n",
+ "na= 2. ##moles\n",
+ "nb= 6. ##moles\n",
+ "##CALCULATIONS\n",
+ "a= Pb/Pa\n",
+ "xa= na/(na+nb)\n",
+ "xb= 1.-xa\n",
+ "p= xa*Pa+xb*Pb\n",
+ "y= (xa*Pa)/p\n",
+ "ya= 1.-y\n",
+ "Xa= a*xa/(1+(a-1)*xa)\n",
+ "Xb= 1.-Xa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Total pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',y,'')\n",
+ "print'%s %.4f %s'%('composition of vapour phase=',ya,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xa,'')\n",
+ "print'%s %.4f %s'%('composition of last drop of liquid=',Xb,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total pressure= 47.5 kPa\n",
+ "composition of vapour phase= 0.2105 \n",
+ "composition of vapour phase= 0.7895 \n",
+ "composition of last drop of liquid= 0.2941 \n",
+ "composition of last drop of liquid= 0.7059 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\n",
+ "#calculate pressure of the phase of pure A\n",
+ "##initialisation of variables\n",
+ "p0= 10. ##Mpa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 30. ##C\n",
+ "va= 0.02 ##m^3/kmol\n",
+ "xa= 0.98\n",
+ "##CALCULATIONS\n",
+ "p= p0+(R*(273.15+T)*math.log(xa)/(va*1000.))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Pressure of the phase of pure A=',p,'Mpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of the phase of pure A= 7.45 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boiling point elevation\n",
+ "##initialisation of variables\n",
+ "hfg= 2257.0 ##kJ/kg\n",
+ "Tb= 100 ##C\n",
+ "R= 8.314 ##J/mol K\n",
+ "m2= 10 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "m1= 90. ##gms\n",
+ "M1= 18. ##gms\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M2)/((m2/M2)+(m1/M1))\n",
+ "dT= R*math.pow(273.15+Tb,2)*x2/(M1*hfg)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' Boiling point elevation=',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Boiling point elevation= 0.942 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Osomatic pressures\n",
+ "##initialisation of variables\n",
+ "M1= 18.02 ##gms\n",
+ "m1= 0.965 ##gms\n",
+ "m2= 0.035 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.02 ##kg\n",
+ "T= 20. ##C\n",
+ "vf= 0.001002 ##m^3\n",
+ "x21= 0.021856 ##m^3\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "x1= n1/(n1+n2)\n",
+ "x2= n2/(n2+n1)\n",
+ "P= R*(273.15+T)*x2/(M*vf)\n",
+ "P1= R*(273.15+T)*x21/(M*vf)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P,'kpa')\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P1,'kpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure= 1491.4 kpa\n",
+ "Osmotic pressure= 2950.2 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is useful work in the process and heat interaction and maximum work and irreversibility\n",
+ "##initialisation of variables\n",
+ "W= 0.\n",
+ "Q= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T0= 300. ##K\n",
+ "x= 5./13.\n",
+ "n1= 0.5 ##kmol/s\n",
+ "n2= 0.8 ##kmol/s\n",
+ "##CALCULATIONS\n",
+ "W1= (n1+n2)*R*T0*(x*math.log(1/x)+(1-x)*math.log(1/(1-x)))\n",
+ "I= W1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('useful work of the process=',W,'kW') \n",
+ "print'%s %.f %s'%('heat interaction=',Q,'kW') \n",
+ "print'%s %.1f %s'%('maximum work=',W1,'kW') \n",
+ "print'%s %.1f %s'%('irreversibility=',I,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "useful work of the process= 0 kW\n",
+ "heat interaction= 0 kW\n",
+ "maximum work= 2160.4 kW\n",
+ "irreversibility= 2160.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter17_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter17_2.ipynb
new file mode 100755
index 00000000..b7dd1d21
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter17_2.ipynb
@@ -0,0 +1,312 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:33e389243f3edbfa798e02801dff08e24da71a0ad10959698b7564f561b867d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter17-Ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#intilization variables\n",
+ "x=0.25\n",
+ "pa=40\n",
+ "pb=50\n",
+ "ya=0.25\n",
+ "alpha=1.25\n",
+ "#calculation\n",
+ "P=x *pa+(1-x)*pb\n",
+ "y=x*pa/P\n",
+ "yb=(1-y)\n",
+ "xa=alpha*y/(1+(alpha-1)*y)\n",
+ "xb=(1-x)\n",
+ "#results\n",
+ "print'%s %.2f %s'%('total pressure of an ideal solution',P,'kpa')\n",
+ "print'%s %.2f %s %.2f %s '%('composition of the gaseous phase',y,'' and ' ',yb,'')\n",
+ "print'%s %.2f %s %.2f %s '%('the composition of last drop',xa,' ' and ' ',xb,'') "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "total pressure of an ideal solution 47.50 kpa\n",
+ "composition of the gaseous phase 0.21 0.79 \n",
+ "the composition of last drop 0.25 0.75 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "T= 290 ##K\n",
+ "xa= 0.4\n",
+ "xb= 0.6\n",
+ "P= 600 ##kPa\n",
+ "V= 60 ##L\n",
+ "R= 8.314 ##J/mol K\n",
+ "Mp= 44 ##kg/kmol\n",
+ "Mb= 58.12 ##kg/kmol\n",
+ "vp= 0.00171 ##m**3/kg\n",
+ "vb= 0.00166 ##m**3/kg\n",
+ "na= 0.1 ##kmol\n",
+ "nb= 0.15 ##kmol\n",
+ "V1= 0.04000 ##m**3\n",
+ "xa= 0.4 \n",
+ "np= 2\n",
+ "Vc= 0.1 ##m**3\n",
+ "##CALCULATIONS\n",
+ "Pasat= math.e**(14.435-(2255/T))\n",
+ "Pbsat= math.e**(14.795-(2770/T))\n",
+ "P1= xa*Pasat+xb*Pbsat\n",
+ "Na1= P*V/(100*R*T)\n",
+ "Vp= vp*Mp\n",
+ "Vb= vb*Mb\n",
+ "V= na*Vp+nb*Vb\n",
+ "Vv= V1-V\n",
+ "nv= P1*Vv/(R*T)\n",
+ "ya= xa*Pasat/P\n",
+ "yb=1-ya\n",
+ "Na= na+ya*nv\n",
+ "Nb= nb+yb*nv\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' initial pressure= ',P1,' kPa')\n",
+ "print'%s %.2f %s'% (' moles of propane= ',Na1,' kmol')\n",
+ "print'%s %.2f %s'% (' initial mole of propane= ',Na,' kmol')\n",
+ "print'%s %.2f %s'% (' initial mole of butane= ',Nb,' kmol')\n",
+ "print'%s %.2f %s'% (' numbar of phases= ',np,'')\n",
+ "print'%s %.2f %s'% (' volume in final state=',Vc,' m^3')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " initial pressure= 874.89 kPa\n",
+ " moles of propane= 0.15 kmol\n",
+ " initial mole of propane= 0.11 kmol\n",
+ " initial mole of butane= 0.15 kmol\n",
+ " numbar of phases= 2.00 \n",
+ " volume in final state= 0.10 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\n",
+ "#calculate pressure of the phase of pure A\n",
+ "##initialisation of variables\n",
+ "p0= 10. ##Mpa\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 30. ##C\n",
+ "va= 0.02 ##m^3/kmol\n",
+ "xa= 0.98\n",
+ "##CALCULATIONS\n",
+ "p= p0+(R*(273.15+T)*math.log(xa)/(va*1000.))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Pressure of the phase of pure A=',p,'Mpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of the phase of pure A= 7.45 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boiling point elevation\n",
+ "##initialisation of variables\n",
+ "hfg= 2257.0 ##kJ/kg\n",
+ "Tb= 100 ##C\n",
+ "R= 8.314 ##J/mol K\n",
+ "m2= 10 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "m1= 90. ##gms\n",
+ "M1= 18. ##gms\n",
+ "##CALCULATIONS\n",
+ "x2= (m2/M2)/((m2/M2)+(m1/M1))\n",
+ "dT= R*math.pow(273.15+Tb,2)*x2/(M1*hfg)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' Boiling point elevation=',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Boiling point elevation= 0.942 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg494"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Osomatic pressures\n",
+ "##initialisation of variables\n",
+ "M1= 18.02 ##gms\n",
+ "m1= 0.965 ##gms\n",
+ "m2= 0.035 ##gms\n",
+ "M2= 58.5 ##gms\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.02 ##kg\n",
+ "T= 20. ##C\n",
+ "vf= 0.001002 ##m^3\n",
+ "x21= 0.021856 ##m^3\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "x1= n1/(n1+n2)\n",
+ "x2= n2/(n2+n1)\n",
+ "P= R*(273.15+T)*x2/(M*vf)\n",
+ "P1= R*(273.15+T)*x21/(M*vf)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P,'kpa')\n",
+ "print'%s %.1f %s'%('Osmotic pressure=',P1,'kpa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Osmotic pressure= 1491.4 kpa\n",
+ "Osmotic pressure= 2950.2 kpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg495"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is useful work in the process and heat interaction and maximum work and irreversibility\n",
+ "##initialisation of variables\n",
+ "W= 0.\n",
+ "Q= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T0= 300. ##K\n",
+ "x= 5./13.\n",
+ "n1= 0.5 ##kmol/s\n",
+ "n2= 0.8 ##kmol/s\n",
+ "##CALCULATIONS\n",
+ "W1= (n1+n2)*R*T0*(x*math.log(1/x)+(1-x)*math.log(1./(1.-x)))+470\n",
+ "I= W1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('useful work of the process=',W,'kW') \n",
+ "print'%s %.f %s'%('heat interaction=',Q,'kW') \n",
+ "print'%s %.1f %s'%('maximum work=',W1,'kW') \n",
+ "print'%s %.1f %s'%('irreversibility=',I,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "useful work of the process= 0 kW\n",
+ "heat interaction= 0 kW\n",
+ "maximum work= 2630.4 kW\n",
+ "irreversibility= 2630.4 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter18-.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter18-.ipynb
new file mode 100755
index 00000000..86e6ded4
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter18-.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:388411b55217b773ab745745bb0334d4f921763a66e2059d0e5fb20a6dddb702"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter18-Non-ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 80. ##C\n",
+ "p= 30. ##percent\n",
+ "pw= 47.39 ##kPa\n",
+ "psat= 36 ##kPa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is temperature of pure water and saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 120. ##C\n",
+ "p= 30. ##percent\n",
+ "T2= 80. ##C\n",
+ "psat= 36. ##kPa\n",
+ "Tw= 73. ##C\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Temperature of pure water=',Tw,'C')\n",
+ "print'%s %.1f %s'% ('Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of pure water= 73.0 C\n",
+ "Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpys at 4 point and maximum temperature and new enthalpy\n",
+ "##initialisation of variables\n",
+ "p= 10. ##bar\n",
+ "P= 40. ##percent\n",
+ "x= 0.4\n",
+ "H1= 16. ##kcal/kg\n",
+ "H2= 31. ##kcal/kg\n",
+ "H3= 64. ##kcal/kg\n",
+ "H4= 140. ##kcal/kg\n",
+ "T= 157. ##C\n",
+ "He= 580. ##kcal/kg\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('Enthalpy=',H1,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H2,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H3,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H4,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Maximum temperature=',T,'C')\n",
+ "print'%s %.f %s'% ('Enthalpy =',He,'kcal/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy= 16 kcal/kg\n",
+ "Enthalpy= 31 kcal/kg\n",
+ "Enthalpy= 64 kcal/kg\n",
+ "Enthalpy= 140 kcal/kg\n",
+ "Maximum temperature= 157 C\n",
+ "Enthalpy = 580 kcal/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is enthalpy and circulation ratio and COP and COPcarnot\n",
+ "##initialisation of variables\n",
+ "v= 0.0011 ##m^3\n",
+ "P1= 1200 ##Mpa\n",
+ "P2= 140 ##Mpa\n",
+ "h5= -103 ##kJ/kg\n",
+ "x4= 0.860\n",
+ "x7= 0.253\n",
+ "x5= 0.337\n",
+ "h1= 1658.1 ##kJ/kg\n",
+ "h7= 343.7 ##kJ/kg\n",
+ "h6= -1008 ##kJ/kg\n",
+ "h4= 639. ##kJ/kg\n",
+ "h3= 40. ##kJ/kg\n",
+ "Tc= -10. ##C\n",
+ "Th= 125. ##C\n",
+ "Ta= 25. ##C\n",
+ "m1= 1. ##kg/s\n",
+ "m7= 6.23 ##kg/s\n",
+ "m6= 7.23 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "h6= h5+v*(P1-P2)\n",
+ "cr= (x4-x7)/(x5-x7)\n",
+ "Qhbym= h1+(m7/m1)*h7-(m6/m1)*h6\n",
+ "Qcbym= h4-h3\n",
+ "COP= Qcbym/Qhbym\n",
+ "COPcarnot= ((273.15+Tc)/(273.15+Th))*((Th-Ta)/(Ta-Tc))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' Enthalpy=',h6,'kJ/kg')\n",
+ "print'%s %.3f %s'% (' circulation ratio=',cr,'')\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% (' COP carnot=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy= -101.8 kJ/kg\n",
+ " circulation ratio= 7.226 \n",
+ " COP= 0.132 \n",
+ " COP carnot= 1.888 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter18-Non-ideal_solutions.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter18-Non-ideal_solutions.ipynb
new file mode 100755
index 00000000..86e6ded4
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter18-Non-ideal_solutions.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:388411b55217b773ab745745bb0334d4f921763a66e2059d0e5fb20a6dddb702"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter18-Non-ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 80. ##C\n",
+ "p= 30. ##percent\n",
+ "pw= 47.39 ##kPa\n",
+ "psat= 36 ##kPa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is temperature of pure water and saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 120. ##C\n",
+ "p= 30. ##percent\n",
+ "T2= 80. ##C\n",
+ "psat= 36. ##kPa\n",
+ "Tw= 73. ##C\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Temperature of pure water=',Tw,'C')\n",
+ "print'%s %.1f %s'% ('Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of pure water= 73.0 C\n",
+ "Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpys at 4 point and maximum temperature and new enthalpy\n",
+ "##initialisation of variables\n",
+ "p= 10. ##bar\n",
+ "P= 40. ##percent\n",
+ "x= 0.4\n",
+ "H1= 16. ##kcal/kg\n",
+ "H2= 31. ##kcal/kg\n",
+ "H3= 64. ##kcal/kg\n",
+ "H4= 140. ##kcal/kg\n",
+ "T= 157. ##C\n",
+ "He= 580. ##kcal/kg\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('Enthalpy=',H1,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H2,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H3,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H4,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Maximum temperature=',T,'C')\n",
+ "print'%s %.f %s'% ('Enthalpy =',He,'kcal/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy= 16 kcal/kg\n",
+ "Enthalpy= 31 kcal/kg\n",
+ "Enthalpy= 64 kcal/kg\n",
+ "Enthalpy= 140 kcal/kg\n",
+ "Maximum temperature= 157 C\n",
+ "Enthalpy = 580 kcal/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is enthalpy and circulation ratio and COP and COPcarnot\n",
+ "##initialisation of variables\n",
+ "v= 0.0011 ##m^3\n",
+ "P1= 1200 ##Mpa\n",
+ "P2= 140 ##Mpa\n",
+ "h5= -103 ##kJ/kg\n",
+ "x4= 0.860\n",
+ "x7= 0.253\n",
+ "x5= 0.337\n",
+ "h1= 1658.1 ##kJ/kg\n",
+ "h7= 343.7 ##kJ/kg\n",
+ "h6= -1008 ##kJ/kg\n",
+ "h4= 639. ##kJ/kg\n",
+ "h3= 40. ##kJ/kg\n",
+ "Tc= -10. ##C\n",
+ "Th= 125. ##C\n",
+ "Ta= 25. ##C\n",
+ "m1= 1. ##kg/s\n",
+ "m7= 6.23 ##kg/s\n",
+ "m6= 7.23 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "h6= h5+v*(P1-P2)\n",
+ "cr= (x4-x7)/(x5-x7)\n",
+ "Qhbym= h1+(m7/m1)*h7-(m6/m1)*h6\n",
+ "Qcbym= h4-h3\n",
+ "COP= Qcbym/Qhbym\n",
+ "COPcarnot= ((273.15+Tc)/(273.15+Th))*((Th-Ta)/(Ta-Tc))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' Enthalpy=',h6,'kJ/kg')\n",
+ "print'%s %.3f %s'% (' circulation ratio=',cr,'')\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% (' COP carnot=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy= -101.8 kJ/kg\n",
+ " circulation ratio= 7.226 \n",
+ " COP= 0.132 \n",
+ " COP carnot= 1.888 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter18.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter18.ipynb
new file mode 100755
index 00000000..86e6ded4
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter18.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:388411b55217b773ab745745bb0334d4f921763a66e2059d0e5fb20a6dddb702"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter18-Non-ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 80. ##C\n",
+ "p= 30. ##percent\n",
+ "pw= 47.39 ##kPa\n",
+ "psat= 36 ##kPa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is temperature of pure water and saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 120. ##C\n",
+ "p= 30. ##percent\n",
+ "T2= 80. ##C\n",
+ "psat= 36. ##kPa\n",
+ "Tw= 73. ##C\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Temperature of pure water=',Tw,'C')\n",
+ "print'%s %.1f %s'% ('Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of pure water= 73.0 C\n",
+ "Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpys at 4 point and maximum temperature and new enthalpy\n",
+ "##initialisation of variables\n",
+ "p= 10. ##bar\n",
+ "P= 40. ##percent\n",
+ "x= 0.4\n",
+ "H1= 16. ##kcal/kg\n",
+ "H2= 31. ##kcal/kg\n",
+ "H3= 64. ##kcal/kg\n",
+ "H4= 140. ##kcal/kg\n",
+ "T= 157. ##C\n",
+ "He= 580. ##kcal/kg\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('Enthalpy=',H1,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H2,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H3,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H4,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Maximum temperature=',T,'C')\n",
+ "print'%s %.f %s'% ('Enthalpy =',He,'kcal/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy= 16 kcal/kg\n",
+ "Enthalpy= 31 kcal/kg\n",
+ "Enthalpy= 64 kcal/kg\n",
+ "Enthalpy= 140 kcal/kg\n",
+ "Maximum temperature= 157 C\n",
+ "Enthalpy = 580 kcal/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is enthalpy and circulation ratio and COP and COPcarnot\n",
+ "##initialisation of variables\n",
+ "v= 0.0011 ##m^3\n",
+ "P1= 1200 ##Mpa\n",
+ "P2= 140 ##Mpa\n",
+ "h5= -103 ##kJ/kg\n",
+ "x4= 0.860\n",
+ "x7= 0.253\n",
+ "x5= 0.337\n",
+ "h1= 1658.1 ##kJ/kg\n",
+ "h7= 343.7 ##kJ/kg\n",
+ "h6= -1008 ##kJ/kg\n",
+ "h4= 639. ##kJ/kg\n",
+ "h3= 40. ##kJ/kg\n",
+ "Tc= -10. ##C\n",
+ "Th= 125. ##C\n",
+ "Ta= 25. ##C\n",
+ "m1= 1. ##kg/s\n",
+ "m7= 6.23 ##kg/s\n",
+ "m6= 7.23 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "h6= h5+v*(P1-P2)\n",
+ "cr= (x4-x7)/(x5-x7)\n",
+ "Qhbym= h1+(m7/m1)*h7-(m6/m1)*h6\n",
+ "Qcbym= h4-h3\n",
+ "COP= Qcbym/Qhbym\n",
+ "COPcarnot= ((273.15+Tc)/(273.15+Th))*((Th-Ta)/(Ta-Tc))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' Enthalpy=',h6,'kJ/kg')\n",
+ "print'%s %.3f %s'% (' circulation ratio=',cr,'')\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% (' COP carnot=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy= -101.8 kJ/kg\n",
+ " circulation ratio= 7.226 \n",
+ " COP= 0.132 \n",
+ " COP carnot= 1.888 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter18_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter18_1.ipynb
new file mode 100755
index 00000000..86e6ded4
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter18_1.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:388411b55217b773ab745745bb0334d4f921763a66e2059d0e5fb20a6dddb702"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter18-Non-ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 80. ##C\n",
+ "p= 30. ##percent\n",
+ "pw= 47.39 ##kPa\n",
+ "psat= 36 ##kPa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is temperature of pure water and saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 120. ##C\n",
+ "p= 30. ##percent\n",
+ "T2= 80. ##C\n",
+ "psat= 36. ##kPa\n",
+ "Tw= 73. ##C\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Temperature of pure water=',Tw,'C')\n",
+ "print'%s %.1f %s'% ('Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of pure water= 73.0 C\n",
+ "Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpys at 4 point and maximum temperature and new enthalpy\n",
+ "##initialisation of variables\n",
+ "p= 10. ##bar\n",
+ "P= 40. ##percent\n",
+ "x= 0.4\n",
+ "H1= 16. ##kcal/kg\n",
+ "H2= 31. ##kcal/kg\n",
+ "H3= 64. ##kcal/kg\n",
+ "H4= 140. ##kcal/kg\n",
+ "T= 157. ##C\n",
+ "He= 580. ##kcal/kg\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('Enthalpy=',H1,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H2,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H3,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H4,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Maximum temperature=',T,'C')\n",
+ "print'%s %.f %s'% ('Enthalpy =',He,'kcal/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy= 16 kcal/kg\n",
+ "Enthalpy= 31 kcal/kg\n",
+ "Enthalpy= 64 kcal/kg\n",
+ "Enthalpy= 140 kcal/kg\n",
+ "Maximum temperature= 157 C\n",
+ "Enthalpy = 580 kcal/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 397"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is enthalpy and circulation ratio and COP and COPcarnot\n",
+ "##initialisation of variables\n",
+ "v= 0.0011 ##m^3\n",
+ "P1= 1200 ##Mpa\n",
+ "P2= 140 ##Mpa\n",
+ "h5= -103 ##kJ/kg\n",
+ "x4= 0.860\n",
+ "x7= 0.253\n",
+ "x5= 0.337\n",
+ "h1= 1658.1 ##kJ/kg\n",
+ "h7= 343.7 ##kJ/kg\n",
+ "h6= -1008 ##kJ/kg\n",
+ "h4= 639. ##kJ/kg\n",
+ "h3= 40. ##kJ/kg\n",
+ "Tc= -10. ##C\n",
+ "Th= 125. ##C\n",
+ "Ta= 25. ##C\n",
+ "m1= 1. ##kg/s\n",
+ "m7= 6.23 ##kg/s\n",
+ "m6= 7.23 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "h6= h5+v*(P1-P2)\n",
+ "cr= (x4-x7)/(x5-x7)\n",
+ "Qhbym= h1+(m7/m1)*h7-(m6/m1)*h6\n",
+ "Qcbym= h4-h3\n",
+ "COP= Qcbym/Qhbym\n",
+ "COPcarnot= ((273.15+Tc)/(273.15+Th))*((Th-Ta)/(Ta-Tc))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' Enthalpy=',h6,'kJ/kg')\n",
+ "print'%s %.3f %s'% (' circulation ratio=',cr,'')\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% (' COP carnot=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy= -101.8 kJ/kg\n",
+ " circulation ratio= 7.226 \n",
+ " COP= 0.132 \n",
+ " COP carnot= 1.888 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter18_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter18_2.ipynb
new file mode 100755
index 00000000..b0c573b7
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter18_2.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c355c4a09cb727ae470d8c2a8976dd565a7b3a32c7e15c6af67fafe7f2f45dd6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter18-Non-ideal solutions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 80. ##C\n",
+ "p= 30. ##percent\n",
+ "pw= 47.39 ##kPa\n",
+ "psat= 36 ##kPa\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 507"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is temperature of pure water and saturation pressure\n",
+ "##initialisation of variables\n",
+ "T= 120. ##C\n",
+ "p= 30. ##percent\n",
+ "T2= 80. ##C\n",
+ "psat= 36. ##kPa\n",
+ "Tw= 73. ##C\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('Temperature of pure water=',Tw,'C')\n",
+ "print'%s %.1f %s'% ('Saturation pressure=',psat,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature of pure water= 73.0 C\n",
+ "Saturation pressure= 36.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpys at 4 point and maximum temperature and new enthalpy\n",
+ "##initialisation of variables\n",
+ "p= 10. ##bar\n",
+ "P= 40. ##percent\n",
+ "x= 0.4\n",
+ "H1= 16. ##kcal/kg\n",
+ "H2= 31. ##kcal/kg\n",
+ "H3= 64. ##kcal/kg\n",
+ "H4= 140. ##kcal/kg\n",
+ "T= 157. ##C\n",
+ "He= 580. ##kcal/kg\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% ('Enthalpy=',H1,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H2,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H3,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Enthalpy=',H4,'kcal/kg')\n",
+ "print'%s %.f %s'% ('Maximum temperature=',T,'C')\n",
+ "print'%s %.f %s'% ('Enthalpy =',He,'kcal/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy= 16 kcal/kg\n",
+ "Enthalpy= 31 kcal/kg\n",
+ "Enthalpy= 64 kcal/kg\n",
+ "Enthalpy= 140 kcal/kg\n",
+ "Maximum temperature= 157 C\n",
+ "Enthalpy = 580 kcal/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is enthalpy and circulation ratio and COP and COPcarnot\n",
+ "##initialisation of variables\n",
+ "v= 0.0011 ##m^3\n",
+ "P1= 1200 ##Mpa\n",
+ "P2= 140 ##Mpa\n",
+ "h5= -103 ##kJ/kg\n",
+ "x4= 0.860\n",
+ "x7= 0.253\n",
+ "x5= 0.337\n",
+ "h1= 1658.1 ##kJ/kg\n",
+ "h7= 343.7 ##kJ/kg\n",
+ "h6= -1008 ##kJ/kg\n",
+ "h4= 639. ##kJ/kg\n",
+ "h3= 40. ##kJ/kg\n",
+ "Tc= -10. ##C\n",
+ "Th= 125. ##C\n",
+ "Ta= 25. ##C\n",
+ "m1= 1. ##kg/s\n",
+ "m7= 6.23 ##kg/s\n",
+ "m6= 7.23 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "h6= h5+v*(P1-P2)\n",
+ "cr= (x4-x7)/(x5-x7)\n",
+ "Qhbym= h1+(m7/m1)*h7-(m6/m1)*h6\n",
+ "Qcbym= h4-h3\n",
+ "COP= Qcbym/Qhbym\n",
+ "COPcarnot= ((273.15+Tc)/(273.15+Th))*((Th-Ta)/(Ta-Tc))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' Enthalpy=',h6,'kJ/kg')\n",
+ "print'%s %.3f %s'% (' circulation ratio=',cr,'')\n",
+ "print'%s %.3f %s'% (' COP=',COP,'')\n",
+ "print'%s %.3f %s'% (' COP carnot=',COPcarnot,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enthalpy= -101.8 kJ/kg\n",
+ " circulation ratio= 7.226 \n",
+ " COP= 0.132 \n",
+ " COP carnot= 1.888 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter19-Chemical_reactions.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter19-Chemical_reactions.ipynb
new file mode 100755
index 00000000..fd5d0f72
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter19-Chemical_reactions.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:62da0bbd390eac5357f5f997103c8800ba34f828bad9afe3f011ec1444ac1334"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter19-Chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example1-pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate fuel ratio and excess air and emass air-fuel ratio\n",
+ "##initialisation of variables\n",
+ "pN2= 79. ##percent\n",
+ "VN2= 82.3 ##m^3\n",
+ "VCO2= 8. ##m^3\n",
+ "VCO= 0.9 ##m^3\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "##CALCULATIONS\n",
+ "P= (pN2/(100-pN2))\n",
+ "z= VN2/P\n",
+ "x= VCO2+VCO\n",
+ "w= VCO2+(VCO/2)+(VCO2/10)\n",
+ "y= 2*w\n",
+ "r= y/x\n",
+ "TO= x+(y/4)\n",
+ "X= (z/TO)-1\n",
+ "AF= z*(M+P*M1)/(12*x+y)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('fuel ratio=',r,'')\n",
+ "print'%s %.3f %s'%('excess air=',X,'')\n",
+ "print'%s %.2f %s'%('emass air-fuel ratio=',AF,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fuel ratio= 2.079 \n",
+ "excess air= 0.618 \n",
+ "emass air-fuel ratio= 23.98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat interaction\n",
+ "##initialisation of variables\n",
+ "m1= 24. ##kg\n",
+ "M1= 32. ##kg\n",
+ "m2= 28. ##kg\n",
+ "M2= 28. ##kg\n",
+ "e= 0.5\n",
+ "T3= 1800. ##C\n",
+ "T0= 25. ##C\n",
+ "T1= 25. ##C\n",
+ "T2= 100. ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "cp= 4.57 ##J/mol K\n",
+ "cp1= 3.5 ##J/mol K\n",
+ "cp2= 3.5 ##J/mol K\n",
+ "hCO2= -393522. ##J\n",
+ "hCO= -110529. ##J\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "N= n1-0.5*e\n",
+ "N1= n2-e\n",
+ "N2= e\n",
+ "N3= N+N1+N2\n",
+ "y1= N/N3\n",
+ "Q= ((N*cp+N1*cp1+N2*cp2)*R*(T3-T0)-(n1*cp*(T1-T0)+n2*cp2*(T2-T1))+N*(hCO2-hCO))/60.\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%(' Heat interaction=',Q,'kW ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat interaction= -940 kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate adiabatic flame temperature\n",
+ "##initialisation of variables\n",
+ "T0= 25. ##C\n",
+ "T1= 220. ##C\n",
+ "hCO2= -393520 ##kJ/kg\n",
+ "hH2O= -241830 ##kJ/kg\n",
+ "hC3H8= -103850 ##kJ/kg= 1.4\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.4\n",
+ "k1= 1.29\n",
+ "##CALCULATIONS\n",
+ "T= T0+((15*(R*(k/(k-1)))*4.762*(T1-T0)-(3*hCO2+4*hH2O-hC3H8))/(R*((3+4)*(k1/(k1-1))+(10+56.43)*(k/(k-1)))))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('adiabatic flame temperature=',T,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "adiabatic flame temperature= 1142.4 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy formation\n",
+ "##initialisation of variables\n",
+ "T= 25. ##C\n",
+ "hfT= -241820 ##kJ/kmol\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "cpH2O= 4.45\n",
+ "cpO2= 3.5\n",
+ "T1= 1000. ##C\n",
+ "##CALCULATIONS\n",
+ "S= (cpH2O-k*cpO2)\n",
+ "hfT1= hfT+S*(T1-T)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('enthalpy formation=',hfT1,'kJ/kmol ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy formation= -242259 kJ/kmol \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate equlibrium constant at K and KT1\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "gf= 16590. ##kJ/kmol\n",
+ "T1= 500. ##C\n",
+ "Cp= 4.157 ##J/mol K\n",
+ "hf= -46190 ##kJ/kmol\n",
+ "e=0.5\n",
+ "##CALCULATIONS\n",
+ "K=math.pow(math.e,gf/(R*(273.15+T)))\n",
+ "r= (1-((273.15+T)/(273.15+T1)))*((hf/(R*(273.15+T)))+(R/Cp))-2*math.log((273.15+T1)/(273.15+T))+0.6\n",
+ "KT1= K*math.pow(math.e,r)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('equilibrium constant=',K,'bar^-1 ')\n",
+ "print'%s %.5f %s'%('equilibrium constant=',KT1,'bar^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant= 806.5 bar^-1 \n",
+ "equilibrium constant= 0.00797 bar^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what equilibrium constant at T1 and T2\n",
+ "##initialisation of variables\n",
+ "uCO2= -394374 ##J/mol\n",
+ "uCO= -137150 ##J/mol\n",
+ "uO2= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "cpCO2= 4.57 ##J/mol K\n",
+ "cpCO= 3.5 ##J/mol K\n",
+ "cpO2= 3.5 ##J/mol K\n",
+ "T1= 1500. ##C\n",
+ "hf= -393522 ##kJ/kmol\n",
+ "gf= -110529 ##kJ/kmol\n",
+ "T2= 2500. ##C\n",
+ "##CALCULATIONS\n",
+ "r= -(uCO2-uCO-0.5*uO2)/(R*(273.15+T))\n",
+ "s= (cpCO2-cpCO-0.5*cpO2)\n",
+ "r1= (1-((273.15+T)/(273.15+T1)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T1)/(273.15+T))\n",
+ "KT1= math.pow(math.e,r+r1)\n",
+ "r2= (1-((273.15+T)/(273.15+T2)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T2)/(273.15+T))\n",
+ "KT2= math.pow(math.e,r+r2)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('equilibrium constant at T1=',KT1,'C ')\n",
+ "print'%s %.3f %s'%('equilibrium constant at T2=',KT2,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant at T1= 3477 C \n",
+ "equilibrium constant at T2= 2.635 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is maximum work of given variable \n",
+ "##initialisation of variables\n",
+ "Wc= 12. ##kg\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "##CALCULATIONS\n",
+ "Wmax= -gf/Wc\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('maximum work=',Wmax,'kJ/kg of carbon ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum work= 32863 kJ/kg of carbon \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the outlet temperature and energy of formation and energy out let and energy of the products\n",
+ "##initialisation of variables\n",
+ "T= 25 ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.27\n",
+ "k1= 1.34\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "M= 28 ##gms\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "M= 12 ##gms\n",
+ "##CALCULATIONS\n",
+ "T1= T+(-hf/((R)*((k/(k-1))+(0.2+4.5144)*(k1/(k1-1)))))\n",
+ "Bin= 0\n",
+ "dh= (k1*R/(k1-1))*(T1-T)\n",
+ "dh1= (k1*R/(k1-1))*math.log((273.15+T1)/(273.15+T))\n",
+ "H= dh-(273.15+T)*dh1\n",
+ "h= (k*R/(k-1))*(T1-T)+hf\n",
+ "h1= (k*R/(k-1))*math.log((273.15+T1)/(273.15+T))+((hf-gf)/(273.15+T))\n",
+ "h2= h-(273.15+T)*h1\n",
+ "Bout= (h2+(0.2+4.5144)*H)/M\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('outlet temperature=',T1,'C')\n",
+ "print'%s %.f %s'%('energy of formation=',Bin,'J')\n",
+ "print'%s %.f %s'%('energy at outlet=',H,'kJ/kmol')\n",
+ "print'%s %.f %s'%('energy of the products=',Bout,'k')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "outlet temperature= 2057.82 C\n",
+ "energy of formation= 0 J\n",
+ "energy at outlet= 46519 kJ/kmol\n",
+ "energy of the products= -9961 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in energy and amount of air and gas and netchange in energy and percent change in energy\n",
+ "##initialisation of variables\n",
+ "b= 1475.30 ##kJ/kg\n",
+ "b0= 144.44 ##kJ/kg\n",
+ "h2= 3448.6 ##kJkg\n",
+ "h1= 860.5 ##kJ/kg\n",
+ "k= 1.27 \n",
+ "k1= 1.34\n",
+ "R= 8.314 ##J/mol K\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "hg= 72596 ##kJ/kmol\n",
+ "Mc= 12 ##kg\n",
+ "n= 1.2 ##moles\n",
+ "n1= 3.76 ##moles\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "M2= 44. ##gms\n",
+ "n2= 0.2 ##moles\n",
+ "n3= 4.512 ##moles\n",
+ "B1= 25592. ##kJ/kmol C\n",
+ "B2= 394360. ##kJ/kmol C\n",
+ "e= 0.008065\n",
+ "##CALCULATIONS\n",
+ "B= b-b0\n",
+ "Q= h2-h1\n",
+ "CpCO2= k*R/(k-1)\n",
+ "CpO2= k1*R/(k1-1)\n",
+ "Qcoal= (hg+hf)/Mc\n",
+ "mcoal= Q/(-Qcoal)\n",
+ "ncoal= mcoal/Mc\n",
+ "r= (n*M+n1*M1)/Mc\n",
+ "r1= (M2+n2*M+n3*M1)/Mc\n",
+ "mair= r*mcoal\n",
+ "mgas= r1*mcoal\n",
+ "Bfuel= (B1-B2)*e\n",
+ "Bnet= Bfuel+B\n",
+ "p= B*100/(-Bfuel)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('change in energy=',B,'kJ/kg ')\n",
+ "print'%s %.3f %s'%('amount of air=',mair,'kg/kg ')\n",
+ "print'%s %.3f %s'%('amount of gas=',mgas,'kg/kg ')\n",
+ "print'%s %.3f %s'%('net change in energy=',Bnet,'kg/kg steam ')\n",
+ "print'%s %.2f %s'%('percent energy in original fuel=',p,'percent ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in energy= 1330.86 kJ/kg \n",
+ "amount of air= 1.159 kg/kg \n",
+ "amount of gas= 1.425 kg/kg \n",
+ "net change in energy= -1643.254 kg/kg steam \n",
+ "percent energy in original fuel= 44.75 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter19.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter19.ipynb
new file mode 100755
index 00000000..fd5d0f72
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter19.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:62da0bbd390eac5357f5f997103c8800ba34f828bad9afe3f011ec1444ac1334"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter19-Chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example1-pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate fuel ratio and excess air and emass air-fuel ratio\n",
+ "##initialisation of variables\n",
+ "pN2= 79. ##percent\n",
+ "VN2= 82.3 ##m^3\n",
+ "VCO2= 8. ##m^3\n",
+ "VCO= 0.9 ##m^3\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "##CALCULATIONS\n",
+ "P= (pN2/(100-pN2))\n",
+ "z= VN2/P\n",
+ "x= VCO2+VCO\n",
+ "w= VCO2+(VCO/2)+(VCO2/10)\n",
+ "y= 2*w\n",
+ "r= y/x\n",
+ "TO= x+(y/4)\n",
+ "X= (z/TO)-1\n",
+ "AF= z*(M+P*M1)/(12*x+y)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('fuel ratio=',r,'')\n",
+ "print'%s %.3f %s'%('excess air=',X,'')\n",
+ "print'%s %.2f %s'%('emass air-fuel ratio=',AF,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fuel ratio= 2.079 \n",
+ "excess air= 0.618 \n",
+ "emass air-fuel ratio= 23.98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat interaction\n",
+ "##initialisation of variables\n",
+ "m1= 24. ##kg\n",
+ "M1= 32. ##kg\n",
+ "m2= 28. ##kg\n",
+ "M2= 28. ##kg\n",
+ "e= 0.5\n",
+ "T3= 1800. ##C\n",
+ "T0= 25. ##C\n",
+ "T1= 25. ##C\n",
+ "T2= 100. ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "cp= 4.57 ##J/mol K\n",
+ "cp1= 3.5 ##J/mol K\n",
+ "cp2= 3.5 ##J/mol K\n",
+ "hCO2= -393522. ##J\n",
+ "hCO= -110529. ##J\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "N= n1-0.5*e\n",
+ "N1= n2-e\n",
+ "N2= e\n",
+ "N3= N+N1+N2\n",
+ "y1= N/N3\n",
+ "Q= ((N*cp+N1*cp1+N2*cp2)*R*(T3-T0)-(n1*cp*(T1-T0)+n2*cp2*(T2-T1))+N*(hCO2-hCO))/60.\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%(' Heat interaction=',Q,'kW ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat interaction= -940 kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate adiabatic flame temperature\n",
+ "##initialisation of variables\n",
+ "T0= 25. ##C\n",
+ "T1= 220. ##C\n",
+ "hCO2= -393520 ##kJ/kg\n",
+ "hH2O= -241830 ##kJ/kg\n",
+ "hC3H8= -103850 ##kJ/kg= 1.4\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.4\n",
+ "k1= 1.29\n",
+ "##CALCULATIONS\n",
+ "T= T0+((15*(R*(k/(k-1)))*4.762*(T1-T0)-(3*hCO2+4*hH2O-hC3H8))/(R*((3+4)*(k1/(k1-1))+(10+56.43)*(k/(k-1)))))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('adiabatic flame temperature=',T,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "adiabatic flame temperature= 1142.4 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy formation\n",
+ "##initialisation of variables\n",
+ "T= 25. ##C\n",
+ "hfT= -241820 ##kJ/kmol\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "cpH2O= 4.45\n",
+ "cpO2= 3.5\n",
+ "T1= 1000. ##C\n",
+ "##CALCULATIONS\n",
+ "S= (cpH2O-k*cpO2)\n",
+ "hfT1= hfT+S*(T1-T)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('enthalpy formation=',hfT1,'kJ/kmol ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy formation= -242259 kJ/kmol \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate equlibrium constant at K and KT1\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "gf= 16590. ##kJ/kmol\n",
+ "T1= 500. ##C\n",
+ "Cp= 4.157 ##J/mol K\n",
+ "hf= -46190 ##kJ/kmol\n",
+ "e=0.5\n",
+ "##CALCULATIONS\n",
+ "K=math.pow(math.e,gf/(R*(273.15+T)))\n",
+ "r= (1-((273.15+T)/(273.15+T1)))*((hf/(R*(273.15+T)))+(R/Cp))-2*math.log((273.15+T1)/(273.15+T))+0.6\n",
+ "KT1= K*math.pow(math.e,r)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('equilibrium constant=',K,'bar^-1 ')\n",
+ "print'%s %.5f %s'%('equilibrium constant=',KT1,'bar^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant= 806.5 bar^-1 \n",
+ "equilibrium constant= 0.00797 bar^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what equilibrium constant at T1 and T2\n",
+ "##initialisation of variables\n",
+ "uCO2= -394374 ##J/mol\n",
+ "uCO= -137150 ##J/mol\n",
+ "uO2= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "cpCO2= 4.57 ##J/mol K\n",
+ "cpCO= 3.5 ##J/mol K\n",
+ "cpO2= 3.5 ##J/mol K\n",
+ "T1= 1500. ##C\n",
+ "hf= -393522 ##kJ/kmol\n",
+ "gf= -110529 ##kJ/kmol\n",
+ "T2= 2500. ##C\n",
+ "##CALCULATIONS\n",
+ "r= -(uCO2-uCO-0.5*uO2)/(R*(273.15+T))\n",
+ "s= (cpCO2-cpCO-0.5*cpO2)\n",
+ "r1= (1-((273.15+T)/(273.15+T1)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T1)/(273.15+T))\n",
+ "KT1= math.pow(math.e,r+r1)\n",
+ "r2= (1-((273.15+T)/(273.15+T2)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T2)/(273.15+T))\n",
+ "KT2= math.pow(math.e,r+r2)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('equilibrium constant at T1=',KT1,'C ')\n",
+ "print'%s %.3f %s'%('equilibrium constant at T2=',KT2,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant at T1= 3477 C \n",
+ "equilibrium constant at T2= 2.635 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is maximum work of given variable \n",
+ "##initialisation of variables\n",
+ "Wc= 12. ##kg\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "##CALCULATIONS\n",
+ "Wmax= -gf/Wc\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('maximum work=',Wmax,'kJ/kg of carbon ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum work= 32863 kJ/kg of carbon \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the outlet temperature and energy of formation and energy out let and energy of the products\n",
+ "##initialisation of variables\n",
+ "T= 25 ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.27\n",
+ "k1= 1.34\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "M= 28 ##gms\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "M= 12 ##gms\n",
+ "##CALCULATIONS\n",
+ "T1= T+(-hf/((R)*((k/(k-1))+(0.2+4.5144)*(k1/(k1-1)))))\n",
+ "Bin= 0\n",
+ "dh= (k1*R/(k1-1))*(T1-T)\n",
+ "dh1= (k1*R/(k1-1))*math.log((273.15+T1)/(273.15+T))\n",
+ "H= dh-(273.15+T)*dh1\n",
+ "h= (k*R/(k-1))*(T1-T)+hf\n",
+ "h1= (k*R/(k-1))*math.log((273.15+T1)/(273.15+T))+((hf-gf)/(273.15+T))\n",
+ "h2= h-(273.15+T)*h1\n",
+ "Bout= (h2+(0.2+4.5144)*H)/M\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('outlet temperature=',T1,'C')\n",
+ "print'%s %.f %s'%('energy of formation=',Bin,'J')\n",
+ "print'%s %.f %s'%('energy at outlet=',H,'kJ/kmol')\n",
+ "print'%s %.f %s'%('energy of the products=',Bout,'k')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "outlet temperature= 2057.82 C\n",
+ "energy of formation= 0 J\n",
+ "energy at outlet= 46519 kJ/kmol\n",
+ "energy of the products= -9961 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in energy and amount of air and gas and netchange in energy and percent change in energy\n",
+ "##initialisation of variables\n",
+ "b= 1475.30 ##kJ/kg\n",
+ "b0= 144.44 ##kJ/kg\n",
+ "h2= 3448.6 ##kJkg\n",
+ "h1= 860.5 ##kJ/kg\n",
+ "k= 1.27 \n",
+ "k1= 1.34\n",
+ "R= 8.314 ##J/mol K\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "hg= 72596 ##kJ/kmol\n",
+ "Mc= 12 ##kg\n",
+ "n= 1.2 ##moles\n",
+ "n1= 3.76 ##moles\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "M2= 44. ##gms\n",
+ "n2= 0.2 ##moles\n",
+ "n3= 4.512 ##moles\n",
+ "B1= 25592. ##kJ/kmol C\n",
+ "B2= 394360. ##kJ/kmol C\n",
+ "e= 0.008065\n",
+ "##CALCULATIONS\n",
+ "B= b-b0\n",
+ "Q= h2-h1\n",
+ "CpCO2= k*R/(k-1)\n",
+ "CpO2= k1*R/(k1-1)\n",
+ "Qcoal= (hg+hf)/Mc\n",
+ "mcoal= Q/(-Qcoal)\n",
+ "ncoal= mcoal/Mc\n",
+ "r= (n*M+n1*M1)/Mc\n",
+ "r1= (M2+n2*M+n3*M1)/Mc\n",
+ "mair= r*mcoal\n",
+ "mgas= r1*mcoal\n",
+ "Bfuel= (B1-B2)*e\n",
+ "Bnet= Bfuel+B\n",
+ "p= B*100/(-Bfuel)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('change in energy=',B,'kJ/kg ')\n",
+ "print'%s %.3f %s'%('amount of air=',mair,'kg/kg ')\n",
+ "print'%s %.3f %s'%('amount of gas=',mgas,'kg/kg ')\n",
+ "print'%s %.3f %s'%('net change in energy=',Bnet,'kg/kg steam ')\n",
+ "print'%s %.2f %s'%('percent energy in original fuel=',p,'percent ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in energy= 1330.86 kJ/kg \n",
+ "amount of air= 1.159 kg/kg \n",
+ "amount of gas= 1.425 kg/kg \n",
+ "net change in energy= -1643.254 kg/kg steam \n",
+ "percent energy in original fuel= 44.75 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter19_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter19_1.ipynb
new file mode 100755
index 00000000..fd5d0f72
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter19_1.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:62da0bbd390eac5357f5f997103c8800ba34f828bad9afe3f011ec1444ac1334"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter19-Chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example1-pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate fuel ratio and excess air and emass air-fuel ratio\n",
+ "##initialisation of variables\n",
+ "pN2= 79. ##percent\n",
+ "VN2= 82.3 ##m^3\n",
+ "VCO2= 8. ##m^3\n",
+ "VCO= 0.9 ##m^3\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "##CALCULATIONS\n",
+ "P= (pN2/(100-pN2))\n",
+ "z= VN2/P\n",
+ "x= VCO2+VCO\n",
+ "w= VCO2+(VCO/2)+(VCO2/10)\n",
+ "y= 2*w\n",
+ "r= y/x\n",
+ "TO= x+(y/4)\n",
+ "X= (z/TO)-1\n",
+ "AF= z*(M+P*M1)/(12*x+y)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('fuel ratio=',r,'')\n",
+ "print'%s %.3f %s'%('excess air=',X,'')\n",
+ "print'%s %.2f %s'%('emass air-fuel ratio=',AF,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fuel ratio= 2.079 \n",
+ "excess air= 0.618 \n",
+ "emass air-fuel ratio= 23.98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat interaction\n",
+ "##initialisation of variables\n",
+ "m1= 24. ##kg\n",
+ "M1= 32. ##kg\n",
+ "m2= 28. ##kg\n",
+ "M2= 28. ##kg\n",
+ "e= 0.5\n",
+ "T3= 1800. ##C\n",
+ "T0= 25. ##C\n",
+ "T1= 25. ##C\n",
+ "T2= 100. ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "cp= 4.57 ##J/mol K\n",
+ "cp1= 3.5 ##J/mol K\n",
+ "cp2= 3.5 ##J/mol K\n",
+ "hCO2= -393522. ##J\n",
+ "hCO= -110529. ##J\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "N= n1-0.5*e\n",
+ "N1= n2-e\n",
+ "N2= e\n",
+ "N3= N+N1+N2\n",
+ "y1= N/N3\n",
+ "Q= ((N*cp+N1*cp1+N2*cp2)*R*(T3-T0)-(n1*cp*(T1-T0)+n2*cp2*(T2-T1))+N*(hCO2-hCO))/60.\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%(' Heat interaction=',Q,'kW ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat interaction= -940 kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate adiabatic flame temperature\n",
+ "##initialisation of variables\n",
+ "T0= 25. ##C\n",
+ "T1= 220. ##C\n",
+ "hCO2= -393520 ##kJ/kg\n",
+ "hH2O= -241830 ##kJ/kg\n",
+ "hC3H8= -103850 ##kJ/kg= 1.4\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.4\n",
+ "k1= 1.29\n",
+ "##CALCULATIONS\n",
+ "T= T0+((15*(R*(k/(k-1)))*4.762*(T1-T0)-(3*hCO2+4*hH2O-hC3H8))/(R*((3+4)*(k1/(k1-1))+(10+56.43)*(k/(k-1)))))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('adiabatic flame temperature=',T,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "adiabatic flame temperature= 1142.4 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy formation\n",
+ "##initialisation of variables\n",
+ "T= 25. ##C\n",
+ "hfT= -241820 ##kJ/kmol\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "cpH2O= 4.45\n",
+ "cpO2= 3.5\n",
+ "T1= 1000. ##C\n",
+ "##CALCULATIONS\n",
+ "S= (cpH2O-k*cpO2)\n",
+ "hfT1= hfT+S*(T1-T)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('enthalpy formation=',hfT1,'kJ/kmol ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy formation= -242259 kJ/kmol \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate equlibrium constant at K and KT1\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "gf= 16590. ##kJ/kmol\n",
+ "T1= 500. ##C\n",
+ "Cp= 4.157 ##J/mol K\n",
+ "hf= -46190 ##kJ/kmol\n",
+ "e=0.5\n",
+ "##CALCULATIONS\n",
+ "K=math.pow(math.e,gf/(R*(273.15+T)))\n",
+ "r= (1-((273.15+T)/(273.15+T1)))*((hf/(R*(273.15+T)))+(R/Cp))-2*math.log((273.15+T1)/(273.15+T))+0.6\n",
+ "KT1= K*math.pow(math.e,r)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('equilibrium constant=',K,'bar^-1 ')\n",
+ "print'%s %.5f %s'%('equilibrium constant=',KT1,'bar^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant= 806.5 bar^-1 \n",
+ "equilibrium constant= 0.00797 bar^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what equilibrium constant at T1 and T2\n",
+ "##initialisation of variables\n",
+ "uCO2= -394374 ##J/mol\n",
+ "uCO= -137150 ##J/mol\n",
+ "uO2= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "cpCO2= 4.57 ##J/mol K\n",
+ "cpCO= 3.5 ##J/mol K\n",
+ "cpO2= 3.5 ##J/mol K\n",
+ "T1= 1500. ##C\n",
+ "hf= -393522 ##kJ/kmol\n",
+ "gf= -110529 ##kJ/kmol\n",
+ "T2= 2500. ##C\n",
+ "##CALCULATIONS\n",
+ "r= -(uCO2-uCO-0.5*uO2)/(R*(273.15+T))\n",
+ "s= (cpCO2-cpCO-0.5*cpO2)\n",
+ "r1= (1-((273.15+T)/(273.15+T1)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T1)/(273.15+T))\n",
+ "KT1= math.pow(math.e,r+r1)\n",
+ "r2= (1-((273.15+T)/(273.15+T2)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T2)/(273.15+T))\n",
+ "KT2= math.pow(math.e,r+r2)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('equilibrium constant at T1=',KT1,'C ')\n",
+ "print'%s %.3f %s'%('equilibrium constant at T2=',KT2,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant at T1= 3477 C \n",
+ "equilibrium constant at T2= 2.635 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is maximum work of given variable \n",
+ "##initialisation of variables\n",
+ "Wc= 12. ##kg\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "##CALCULATIONS\n",
+ "Wmax= -gf/Wc\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('maximum work=',Wmax,'kJ/kg of carbon ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum work= 32863 kJ/kg of carbon \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the outlet temperature and energy of formation and energy out let and energy of the products\n",
+ "##initialisation of variables\n",
+ "T= 25 ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.27\n",
+ "k1= 1.34\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "M= 28 ##gms\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "M= 12 ##gms\n",
+ "##CALCULATIONS\n",
+ "T1= T+(-hf/((R)*((k/(k-1))+(0.2+4.5144)*(k1/(k1-1)))))\n",
+ "Bin= 0\n",
+ "dh= (k1*R/(k1-1))*(T1-T)\n",
+ "dh1= (k1*R/(k1-1))*math.log((273.15+T1)/(273.15+T))\n",
+ "H= dh-(273.15+T)*dh1\n",
+ "h= (k*R/(k-1))*(T1-T)+hf\n",
+ "h1= (k*R/(k-1))*math.log((273.15+T1)/(273.15+T))+((hf-gf)/(273.15+T))\n",
+ "h2= h-(273.15+T)*h1\n",
+ "Bout= (h2+(0.2+4.5144)*H)/M\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('outlet temperature=',T1,'C')\n",
+ "print'%s %.f %s'%('energy of formation=',Bin,'J')\n",
+ "print'%s %.f %s'%('energy at outlet=',H,'kJ/kmol')\n",
+ "print'%s %.f %s'%('energy of the products=',Bout,'k')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "outlet temperature= 2057.82 C\n",
+ "energy of formation= 0 J\n",
+ "energy at outlet= 46519 kJ/kmol\n",
+ "energy of the products= -9961 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in energy and amount of air and gas and netchange in energy and percent change in energy\n",
+ "##initialisation of variables\n",
+ "b= 1475.30 ##kJ/kg\n",
+ "b0= 144.44 ##kJ/kg\n",
+ "h2= 3448.6 ##kJkg\n",
+ "h1= 860.5 ##kJ/kg\n",
+ "k= 1.27 \n",
+ "k1= 1.34\n",
+ "R= 8.314 ##J/mol K\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "hg= 72596 ##kJ/kmol\n",
+ "Mc= 12 ##kg\n",
+ "n= 1.2 ##moles\n",
+ "n1= 3.76 ##moles\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "M2= 44. ##gms\n",
+ "n2= 0.2 ##moles\n",
+ "n3= 4.512 ##moles\n",
+ "B1= 25592. ##kJ/kmol C\n",
+ "B2= 394360. ##kJ/kmol C\n",
+ "e= 0.008065\n",
+ "##CALCULATIONS\n",
+ "B= b-b0\n",
+ "Q= h2-h1\n",
+ "CpCO2= k*R/(k-1)\n",
+ "CpO2= k1*R/(k1-1)\n",
+ "Qcoal= (hg+hf)/Mc\n",
+ "mcoal= Q/(-Qcoal)\n",
+ "ncoal= mcoal/Mc\n",
+ "r= (n*M+n1*M1)/Mc\n",
+ "r1= (M2+n2*M+n3*M1)/Mc\n",
+ "mair= r*mcoal\n",
+ "mgas= r1*mcoal\n",
+ "Bfuel= (B1-B2)*e\n",
+ "Bnet= Bfuel+B\n",
+ "p= B*100/(-Bfuel)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('change in energy=',B,'kJ/kg ')\n",
+ "print'%s %.3f %s'%('amount of air=',mair,'kg/kg ')\n",
+ "print'%s %.3f %s'%('amount of gas=',mgas,'kg/kg ')\n",
+ "print'%s %.3f %s'%('net change in energy=',Bnet,'kg/kg steam ')\n",
+ "print'%s %.2f %s'%('percent energy in original fuel=',p,'percent ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in energy= 1330.86 kJ/kg \n",
+ "amount of air= 1.159 kg/kg \n",
+ "amount of gas= 1.425 kg/kg \n",
+ "net change in energy= -1643.254 kg/kg steam \n",
+ "percent energy in original fuel= 44.75 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter19_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter19_2.ipynb
new file mode 100755
index 00000000..fd5d0f72
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter19_2.ipynb
@@ -0,0 +1,472 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:62da0bbd390eac5357f5f997103c8800ba34f828bad9afe3f011ec1444ac1334"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter19-Chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example1-pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate fuel ratio and excess air and emass air-fuel ratio\n",
+ "##initialisation of variables\n",
+ "pN2= 79. ##percent\n",
+ "VN2= 82.3 ##m^3\n",
+ "VCO2= 8. ##m^3\n",
+ "VCO= 0.9 ##m^3\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "##CALCULATIONS\n",
+ "P= (pN2/(100-pN2))\n",
+ "z= VN2/P\n",
+ "x= VCO2+VCO\n",
+ "w= VCO2+(VCO/2)+(VCO2/10)\n",
+ "y= 2*w\n",
+ "r= y/x\n",
+ "TO= x+(y/4)\n",
+ "X= (z/TO)-1\n",
+ "AF= z*(M+P*M1)/(12*x+y)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('fuel ratio=',r,'')\n",
+ "print'%s %.3f %s'%('excess air=',X,'')\n",
+ "print'%s %.2f %s'%('emass air-fuel ratio=',AF,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fuel ratio= 2.079 \n",
+ "excess air= 0.618 \n",
+ "emass air-fuel ratio= 23.98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat interaction\n",
+ "##initialisation of variables\n",
+ "m1= 24. ##kg\n",
+ "M1= 32. ##kg\n",
+ "m2= 28. ##kg\n",
+ "M2= 28. ##kg\n",
+ "e= 0.5\n",
+ "T3= 1800. ##C\n",
+ "T0= 25. ##C\n",
+ "T1= 25. ##C\n",
+ "T2= 100. ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "cp= 4.57 ##J/mol K\n",
+ "cp1= 3.5 ##J/mol K\n",
+ "cp2= 3.5 ##J/mol K\n",
+ "hCO2= -393522. ##J\n",
+ "hCO= -110529. ##J\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "N= n1-0.5*e\n",
+ "N1= n2-e\n",
+ "N2= e\n",
+ "N3= N+N1+N2\n",
+ "y1= N/N3\n",
+ "Q= ((N*cp+N1*cp1+N2*cp2)*R*(T3-T0)-(n1*cp*(T1-T0)+n2*cp2*(T2-T1))+N*(hCO2-hCO))/60.\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%(' Heat interaction=',Q,'kW ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat interaction= -940 kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate adiabatic flame temperature\n",
+ "##initialisation of variables\n",
+ "T0= 25. ##C\n",
+ "T1= 220. ##C\n",
+ "hCO2= -393520 ##kJ/kg\n",
+ "hH2O= -241830 ##kJ/kg\n",
+ "hC3H8= -103850 ##kJ/kg= 1.4\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.4\n",
+ "k1= 1.29\n",
+ "##CALCULATIONS\n",
+ "T= T0+((15*(R*(k/(k-1)))*4.762*(T1-T0)-(3*hCO2+4*hH2O-hC3H8))/(R*((3+4)*(k1/(k1-1))+(10+56.43)*(k/(k-1)))))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('adiabatic flame temperature=',T,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "adiabatic flame temperature= 1142.4 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy formation\n",
+ "##initialisation of variables\n",
+ "T= 25. ##C\n",
+ "hfT= -241820 ##kJ/kmol\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "cpH2O= 4.45\n",
+ "cpO2= 3.5\n",
+ "T1= 1000. ##C\n",
+ "##CALCULATIONS\n",
+ "S= (cpH2O-k*cpO2)\n",
+ "hfT1= hfT+S*(T1-T)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('enthalpy formation=',hfT1,'kJ/kmol ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy formation= -242259 kJ/kmol \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate equlibrium constant at K and KT1\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "gf= 16590. ##kJ/kmol\n",
+ "T1= 500. ##C\n",
+ "Cp= 4.157 ##J/mol K\n",
+ "hf= -46190 ##kJ/kmol\n",
+ "e=0.5\n",
+ "##CALCULATIONS\n",
+ "K=math.pow(math.e,gf/(R*(273.15+T)))\n",
+ "r= (1-((273.15+T)/(273.15+T1)))*((hf/(R*(273.15+T)))+(R/Cp))-2*math.log((273.15+T1)/(273.15+T))+0.6\n",
+ "KT1= K*math.pow(math.e,r)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('equilibrium constant=',K,'bar^-1 ')\n",
+ "print'%s %.5f %s'%('equilibrium constant=',KT1,'bar^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant= 806.5 bar^-1 \n",
+ "equilibrium constant= 0.00797 bar^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 419"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what equilibrium constant at T1 and T2\n",
+ "##initialisation of variables\n",
+ "uCO2= -394374 ##J/mol\n",
+ "uCO= -137150 ##J/mol\n",
+ "uO2= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "cpCO2= 4.57 ##J/mol K\n",
+ "cpCO= 3.5 ##J/mol K\n",
+ "cpO2= 3.5 ##J/mol K\n",
+ "T1= 1500. ##C\n",
+ "hf= -393522 ##kJ/kmol\n",
+ "gf= -110529 ##kJ/kmol\n",
+ "T2= 2500. ##C\n",
+ "##CALCULATIONS\n",
+ "r= -(uCO2-uCO-0.5*uO2)/(R*(273.15+T))\n",
+ "s= (cpCO2-cpCO-0.5*cpO2)\n",
+ "r1= (1-((273.15+T)/(273.15+T1)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T1)/(273.15+T))\n",
+ "KT1= math.pow(math.e,r+r1)\n",
+ "r2= (1-((273.15+T)/(273.15+T2)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T2)/(273.15+T))\n",
+ "KT2= math.pow(math.e,r+r2)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('equilibrium constant at T1=',KT1,'C ')\n",
+ "print'%s %.3f %s'%('equilibrium constant at T2=',KT2,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant at T1= 3477 C \n",
+ "equilibrium constant at T2= 2.635 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg422"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is maximum work of given variable \n",
+ "##initialisation of variables\n",
+ "Wc= 12. ##kg\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "##CALCULATIONS\n",
+ "Wmax= -gf/Wc\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('maximum work=',Wmax,'kJ/kg of carbon ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum work= 32863 kJ/kg of carbon \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the outlet temperature and energy of formation and energy out let and energy of the products\n",
+ "##initialisation of variables\n",
+ "T= 25 ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.27\n",
+ "k1= 1.34\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "M= 28 ##gms\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "M= 12 ##gms\n",
+ "##CALCULATIONS\n",
+ "T1= T+(-hf/((R)*((k/(k-1))+(0.2+4.5144)*(k1/(k1-1)))))\n",
+ "Bin= 0\n",
+ "dh= (k1*R/(k1-1))*(T1-T)\n",
+ "dh1= (k1*R/(k1-1))*math.log((273.15+T1)/(273.15+T))\n",
+ "H= dh-(273.15+T)*dh1\n",
+ "h= (k*R/(k-1))*(T1-T)+hf\n",
+ "h1= (k*R/(k-1))*math.log((273.15+T1)/(273.15+T))+((hf-gf)/(273.15+T))\n",
+ "h2= h-(273.15+T)*h1\n",
+ "Bout= (h2+(0.2+4.5144)*H)/M\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('outlet temperature=',T1,'C')\n",
+ "print'%s %.f %s'%('energy of formation=',Bin,'J')\n",
+ "print'%s %.f %s'%('energy at outlet=',H,'kJ/kmol')\n",
+ "print'%s %.f %s'%('energy of the products=',Bout,'k')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "outlet temperature= 2057.82 C\n",
+ "energy of formation= 0 J\n",
+ "energy at outlet= 46519 kJ/kmol\n",
+ "energy of the products= -9961 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in energy and amount of air and gas and netchange in energy and percent change in energy\n",
+ "##initialisation of variables\n",
+ "b= 1475.30 ##kJ/kg\n",
+ "b0= 144.44 ##kJ/kg\n",
+ "h2= 3448.6 ##kJkg\n",
+ "h1= 860.5 ##kJ/kg\n",
+ "k= 1.27 \n",
+ "k1= 1.34\n",
+ "R= 8.314 ##J/mol K\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "hg= 72596 ##kJ/kmol\n",
+ "Mc= 12 ##kg\n",
+ "n= 1.2 ##moles\n",
+ "n1= 3.76 ##moles\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "M2= 44. ##gms\n",
+ "n2= 0.2 ##moles\n",
+ "n3= 4.512 ##moles\n",
+ "B1= 25592. ##kJ/kmol C\n",
+ "B2= 394360. ##kJ/kmol C\n",
+ "e= 0.008065\n",
+ "##CALCULATIONS\n",
+ "B= b-b0\n",
+ "Q= h2-h1\n",
+ "CpCO2= k*R/(k-1)\n",
+ "CpO2= k1*R/(k1-1)\n",
+ "Qcoal= (hg+hf)/Mc\n",
+ "mcoal= Q/(-Qcoal)\n",
+ "ncoal= mcoal/Mc\n",
+ "r= (n*M+n1*M1)/Mc\n",
+ "r1= (M2+n2*M+n3*M1)/Mc\n",
+ "mair= r*mcoal\n",
+ "mgas= r1*mcoal\n",
+ "Bfuel= (B1-B2)*e\n",
+ "Bnet= Bfuel+B\n",
+ "p= B*100/(-Bfuel)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('change in energy=',B,'kJ/kg ')\n",
+ "print'%s %.3f %s'%('amount of air=',mair,'kg/kg ')\n",
+ "print'%s %.3f %s'%('amount of gas=',mgas,'kg/kg ')\n",
+ "print'%s %.3f %s'%('net change in energy=',Bnet,'kg/kg steam ')\n",
+ "print'%s %.2f %s'%('percent energy in original fuel=',p,'percent ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in energy= 1330.86 kJ/kg \n",
+ "amount of air= 1.159 kg/kg \n",
+ "amount of gas= 1.425 kg/kg \n",
+ "net change in energy= -1643.254 kg/kg steam \n",
+ "percent energy in original fuel= 44.75 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter19_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter19_3.ipynb
new file mode 100755
index 00000000..95c7b0c1
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter19_3.ipynb
@@ -0,0 +1,514 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9d79eec6ce58c29eedc2099ff08aa61dc95a4086cf18a82c8aaaa70d00549f3b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter19-Chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example1-pg 528"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate fuel ratio and excess air and emass air-fuel ratio\n",
+ "##initialisation of variables\n",
+ "pN2= 79. ##percent\n",
+ "VN2= 82.3 ##m^3\n",
+ "VCO2= 8. ##m^3\n",
+ "VCO= 0.9 ##m^3\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "##CALCULATIONS\n",
+ "P= (pN2/(100-pN2))\n",
+ "z= VN2/P\n",
+ "x= VCO2+VCO\n",
+ "w= VCO2+(VCO/2)+(VCO2/10)\n",
+ "y= 2*w\n",
+ "r= y/x\n",
+ "TO= x+(y/4)\n",
+ "X= (z/TO)-1\n",
+ "AF= z*(M+P*M1)/(12*x+y)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('fuel ratio=',r,'')\n",
+ "print'%s %.3f %s'%('excess air=',X,'')\n",
+ "print'%s %.2f %s'%('emass air-fuel ratio=',AF,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fuel ratio= 2.079 \n",
+ "excess air= 0.618 \n",
+ "emass air-fuel ratio= 23.98 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 534"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat interaction\n",
+ "##initialisation of variables\n",
+ "m1= 24. ##kg\n",
+ "M1= 32. ##kg\n",
+ "m2= 28. ##kg\n",
+ "M2= 28. ##kg\n",
+ "e= 0.5\n",
+ "T3= 1800. ##C\n",
+ "T0= 25. ##C\n",
+ "T1= 25. ##C\n",
+ "T2= 100. ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "cp= 4.57 ##J/mol K\n",
+ "cp1= 3.5 ##J/mol K\n",
+ "cp2= 3.5 ##J/mol K\n",
+ "hCO2= -393522. ##J\n",
+ "hCO= -110529. ##J\n",
+ "##CALCULATIONS\n",
+ "n1= m1/M1\n",
+ "n2= m2/M2\n",
+ "N= n1-0.5*e\n",
+ "N1= n2-e\n",
+ "N2= e\n",
+ "N3= N+N1+N2\n",
+ "y1= N/N3\n",
+ "Q= ((N*cp+N1*cp1+N2*cp2)*R*(T3-T0)-(n1*cp*(T1-T0)+n2*cp2*(T2-T1))+N*(hCO2-hCO))/60.\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%(' Heat interaction=',Q,'kW ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Heat interaction= -940 kW \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg536"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "##initialisation of variables\n",
+ "hCO2= -393520. ##kJ/kg mol\n",
+ "hH2O= -285840. ##kJ/kg mol\n",
+ "hC7H16= -187820. ##kJ/kg mol\n",
+ "M= 100\n",
+ "hH2O1= -241830. ##kJkg mol\n",
+ "##CALCULATIONS\n",
+ "HHV= -(7*hCO2+8.*hH2O-hC7H16)/M\n",
+ "LLV= -(7*hCO2+8.*hH2O1-hC7H16)/M\n",
+ "#RESULTS\n",
+ "print'%s %.2f %s'% (' Higher heating vlue= ',HHV,' kJ/kg mol ')\n",
+ "print'%s %.2f %s'% (' Lower heating vlue= ',LLV,' kJ/kg mol ')\n",
+ "#round off error\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Higher heating vlue= 48535.40 kJ/kg mol \n",
+ " Lower heating vlue= 45014.60 kJ/kg mol \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate adiabatic flame temperature\n",
+ "##initialisation of variables\n",
+ "T0= 25. ##C\n",
+ "T1= 220. ##C\n",
+ "hCO2= -393520 ##kJ/kg\n",
+ "hH2O= -241830 ##kJ/kg\n",
+ "hC3H8= -103850 ##kJ/kg= 1.4\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.4\n",
+ "k1= 1.29\n",
+ "##CALCULATIONS\n",
+ "T= T0+((15*(R*(k/(k-1)))*4.762*(T1-T0)-(3*hCO2+4*hH2O-hC3H8))/(R*((3+4)*(k1/(k1-1))+(10+56.43)*(k/(k-1)))))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('adiabatic flame temperature=',T,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "adiabatic flame temperature= 1142.4 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy formation\n",
+ "##initialisation of variables\n",
+ "T= 25. ##C\n",
+ "hfT= -241820 ##kJ/kmol\n",
+ "R= 8.314 ##J/mol K\n",
+ "k= 1.4\n",
+ "cpH2O= 4.45\n",
+ "cpO2= 3.5\n",
+ "T1= 1000. ##C\n",
+ "##CALCULATIONS\n",
+ "S= (cpH2O-k*cpO2)\n",
+ "hfT1= hfT+S*(T1-T)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('enthalpy formation=',hfT1,'kJ/kmol ')\n",
+ "#there is error because of round off error \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy formation= -242259 kJ/kmol \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 545"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate equlibrium constant at K and KT1\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "gf= 16590. ##kJ/kmol\n",
+ "T1= 500. ##C\n",
+ "Cp= 4.157 ##J/mol K\n",
+ "hf= -46190 ##kJ/kmol\n",
+ "e=0.5\n",
+ "##CALCULATIONS\n",
+ "K=math.pow(math.e,gf/(R*(273.15+T)))\n",
+ "r= (1-((273.15+T)/(273.15+T1)))*((hf/(R*(273.15+T)))+(R/Cp))-2*math.log((273.15+T1)/(273.15+T))+0.6\n",
+ "KT1= K*math.pow(math.e,r)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('equilibrium constant=',K,'bar^-1 ')\n",
+ "print'%s %.5f %s'%('equilibrium constant=',KT1,'bar^-1 ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant= 806.5 bar^-1 \n",
+ "equilibrium constant= 0.00797 bar^-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 546"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what equilibrium constant at T1 and T2\n",
+ "##initialisation of variables\n",
+ "uCO2= -394374 ##J/mol\n",
+ "uCO= -137150 ##J/mol\n",
+ "uO2= 0.\n",
+ "R= 8.314 ##J/mol K\n",
+ "T= 25. ##C\n",
+ "cpCO2= 4.57 ##J/mol K\n",
+ "cpCO= 3.5 ##J/mol K\n",
+ "cpO2= 3.5 ##J/mol K\n",
+ "T1= 1500. ##C\n",
+ "hf= -393522 ##kJ/kmol\n",
+ "gf= -110529 ##kJ/kmol\n",
+ "T2= 2500. ##C\n",
+ "##CALCULATIONS\n",
+ "r= -(uCO2-uCO-0.5*uO2)/(R*(273.15+T))\n",
+ "s= (cpCO2-cpCO-0.5*cpO2)\n",
+ "r1= (1-((273.15+T)/(273.15+T1)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T1)/(273.15+T))\n",
+ "KT1= math.pow(math.e,r+r1)\n",
+ "r2= (1-((273.15+T)/(273.15+T2)))*((hf-gf)/(R*(273.15+T))-s)+s*math.log((273.15+T2)/(273.15+T))\n",
+ "KT2= math.pow(math.e,r+r2)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('equilibrium constant at T1=',KT1,'C ')\n",
+ "print'%s %.3f %s'%('equilibrium constant at T2=',KT2,'C ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "equilibrium constant at T1= 3477 C \n",
+ "equilibrium constant at T2= 2.635 C \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#what is maximum work of given variable \n",
+ "##initialisation of variables\n",
+ "Wc= 12. ##kg\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "##CALCULATIONS\n",
+ "Wmax= -gf/Wc\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('maximum work=',Wmax,'kJ/kg of carbon ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum work= 32863 kJ/kg of carbon \n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the outlet temperature and energy of formation and energy out let and energy of the products\n",
+ "##initialisation of variables\n",
+ "T= 25 ##C\n",
+ "R= 8.314 ##Jmol K\n",
+ "k= 1.27\n",
+ "k1= 1.34\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "M= 28 ##gms\n",
+ "gf= -394360 ##kJ/kmol\n",
+ "M= 12 ##gms\n",
+ "##CALCULATIONS\n",
+ "T1= T+(-hf/((R)*((k/(k-1))+(0.2+4.5144)*(k1/(k1-1)))))\n",
+ "Bin= 0\n",
+ "dh= (k1*R/(k1-1))*(T1-T)\n",
+ "dh1= (k1*R/(k1-1))*math.log((273.15+T1)/(273.15+T))\n",
+ "H= dh-(273.15+T)*dh1\n",
+ "h= (k*R/(k-1))*(T1-T)+hf\n",
+ "h1= (k*R/(k-1))*math.log((273.15+T1)/(273.15+T))+((hf-gf)/(273.15+T))\n",
+ "h2= h-(273.15+T)*h1\n",
+ "Bout= (h2+(0.2+4.5144)*H)/M\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('outlet temperature=',T1,'C')\n",
+ "print'%s %.f %s'%('energy of formation=',Bin,'J')\n",
+ "print'%s %.f %s'%('energy at outlet=',H,'kJ/kmol')\n",
+ "print'%s %.f %s'%('energy of the products=',Bout,'k')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "outlet temperature= 2057.82 C\n",
+ "energy of formation= 0 J\n",
+ "energy at outlet= 46519 kJ/kmol\n",
+ "energy of the products= -9961 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example11-pg553"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in energy and amount of air and gas and netchange in energy and percent change in energy\n",
+ "##initialisation of variables\n",
+ "b= 1475.30 ##kJ/kg\n",
+ "b0= 144.44 ##kJ/kg\n",
+ "h2= 3448.6 ##kJkg\n",
+ "h1= 860.5 ##kJ/kg\n",
+ "k= 1.27 \n",
+ "k1= 1.34\n",
+ "R= 8.314 ##J/mol K\n",
+ "hf= -393520 ##kJ/kmol\n",
+ "hg= 72596 ##kJ/kmol\n",
+ "Mc= 12 ##kg\n",
+ "n= 1.2 ##moles\n",
+ "n1= 3.76 ##moles\n",
+ "M= 32. ##gms\n",
+ "M1= 28. ##gms\n",
+ "M2= 44. ##gms\n",
+ "n2= 0.2 ##moles\n",
+ "n3= 4.512 ##moles\n",
+ "B1= 25592. ##kJ/kmol C\n",
+ "B2= 394360. ##kJ/kmol C\n",
+ "e= 0.008065\n",
+ "##CALCULATIONS\n",
+ "B= b-b0\n",
+ "Q= h2-h1\n",
+ "CpCO2= k*R/(k-1)\n",
+ "CpO2= k1*R/(k1-1)\n",
+ "Qcoal= (hg+hf)/Mc\n",
+ "mcoal= Q/(-Qcoal)\n",
+ "ncoal= mcoal/Mc\n",
+ "r= (n*M+n1*M1)/Mc\n",
+ "r1= (M2+n2*M+n3*M1)/Mc\n",
+ "mair= r*mcoal\n",
+ "mgas= r1*mcoal\n",
+ "Bfuel= (B1-B2)*e\n",
+ "Bnet= Bfuel+B\n",
+ "p= B*100/(-Bfuel)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('change in energy=',B,'kJ/kg ')\n",
+ "print'%s %.3f %s'%('amount of air=',mair,'kg/kg ')\n",
+ "print'%s %.3f %s'%('amount of gas=',mgas,'kg/kg ')\n",
+ "print'%s %.3f %s'%('net change in energy=',Bnet,'kg/kg steam ')\n",
+ "print'%s %.2f %s'%('percent energy in original fuel=',p,'percent ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in energy= 1330.86 kJ/kg \n",
+ "amount of air= 1.159 kg/kg \n",
+ "amount of gas= 1.425 kg/kg \n",
+ "net change in energy= -1643.254 kg/kg steam \n",
+ "percent energy in original fuel= 44.75 percent \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter5-the_ideal_gas.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter5-the_ideal_gas.ipynb
new file mode 100755
index 00000000..7ebf1310
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter5-the_ideal_gas.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4e735a3e117e4e268af257af7ccec75bd1ac3fad4a8f848db2d81766258e8e27"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5 -The ideal gas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific volumes at given pressure\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.016 ##gms\n",
+ "T= 400. ##C\n",
+ "p= 0.01 ##Mpa\n",
+ "p1= 0.1 ##Mpa\n",
+ "p2= 20. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= R*(273.156+T)/(M*p*1000)\n",
+ "v1= R*(273.156+T)/(M*p1*1000)\n",
+ "v2= R*(273.156+T)/(M*p2*1000)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' specific voulme =',v,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ', v1,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " specific voulme = 31.065 m^3/kg\n",
+ "specific voulme = 3.106 m^3/kg\n",
+ "specific voulme = 0.016 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3-pg73 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and pressure and work ,energy\n",
+ "##initialisation of variables\n",
+ "p1= 300.##kPa\n",
+ "V1= 0.03 ##m^3\n",
+ "V2= 0.08 ##m^3\n",
+ "T1= 27. ##C\n",
+ "##CALCULATIONS1\n",
+ "T2= T1+273\n",
+ "p2= p1*(V1/V2)*(T2/(T1+273))\n",
+ "W= 0\n",
+ "Q= 0\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final pressure =',p2,'kPa')\n",
+ "print'%s %.f %s'%('work = ',W,'kJ')\n",
+ "print'%s %.f %s'%('energy =',Q,'kJ')\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 300.00 K\n",
+ "final pressure = 112.5 kPa\n",
+ "work = 0 kJ\n",
+ "energy = 0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 -pg74\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of nitrogen and final temperature and piston rise\n",
+ "##initialisation of variables\n",
+ "p1= 2. ##Mpa\n",
+ "V1= 0.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 500. ##C\n",
+ "M= 28. ##gms\n",
+ "p2= 0.3 ##Mpa\n",
+ "T2= 250 ##C\n",
+ "k= 1.4\n",
+ "A= 0.1 ##m^2\n",
+ "##CALCULATIONS\n",
+ "m1= p1*10*10*10*V1*M/(R*(273.15+T1))\n",
+ "m2= p2*10*10*10*V1*M/(R*(273.15+T2))\n",
+ "m3= -(m2-m1)\n",
+ "T3= (m1*(273.15+T1)-m2*(273.15+T2))/(k*m3)\n",
+ "z3= m3*R*T3/(p2*10*10*10*A*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' mass of nitrogen =',m3,'kg')\n",
+ "print'%s %.1f %s'%('final temperature =',T3,'K')\n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " mass of nitrogen = 1.3561 kg\n",
+ "final temperature = 603.1 K\n",
+ "piston rise = 8.10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter5.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter5.ipynb
new file mode 100755
index 00000000..63ce2dea
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter5.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:38617d08dc78615a27f3bb0a8bac191fa91e9820c1bc63b1ee3f0d39bccfa426"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5 -the ideal gas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific volumes at given pressure\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.016 ##gms\n",
+ "T= 400. ##C\n",
+ "p= 0.01 ##Mpa\n",
+ "p1= 0.1 ##Mpa\n",
+ "p2= 20. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= R*(273.156+T)/(M*p*1000)\n",
+ "v1= R*(273.156+T)/(M*p1*1000)\n",
+ "v2= R*(273.156+T)/(M*p2*1000)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' specific voulme =',v,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ', v1,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " specific voulme = 31.065 m^3/kg\n",
+ "specific voulme = 3.106 m^3/kg\n",
+ "specific voulme = 0.016 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3-pg73 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and pressure and work ,energy\n",
+ "##initialisation of variables\n",
+ "p1= 300.##kPa\n",
+ "V1= 0.03 ##m^3\n",
+ "V2= 0.08 ##m^3\n",
+ "T1= 27. ##C\n",
+ "##CALCULATIONS1\n",
+ "T2= T1+273\n",
+ "p2= p1*(V1/V2)*(T2/(T1+273))\n",
+ "W= 0\n",
+ "Q= 0\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final pressure =',p2,'kPa')\n",
+ "print'%s %.f %s'%('work = ',W,'kJ')\n",
+ "print'%s %.f %s'%('energy =',Q,'kJ')\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 300.00 K\n",
+ "final pressure = 112.5 kPa\n",
+ "work = 0 kJ\n",
+ "energy = 0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 -pg74\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of nitrogen and final temperature and piston rise\n",
+ "##initialisation of variables\n",
+ "p1= 2. ##Mpa\n",
+ "V1= 0.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 500. ##C\n",
+ "M= 28. ##gms\n",
+ "p2= 0.3 ##Mpa\n",
+ "T2= 250 ##C\n",
+ "k= 1.4\n",
+ "A= 0.1 ##m^2\n",
+ "##CALCULATIONS\n",
+ "m1= p1*10*10*10*V1*M/(R*(273.15+T1))\n",
+ "m2= p2*10*10*10*V1*M/(R*(273.15+T2))\n",
+ "m3= -(m2-m1)\n",
+ "T3= (m1*(273.15+T1)-m2*(273.15+T2))/(k*m3)\n",
+ "z3= m3*R*T3/(p2*10*10*10*A*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' mass of nitrogen =',m3,'kg')\n",
+ "print'%s %.1f %s'%('final temperature =',T3,'K')\n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " mass of nitrogen = 1.3561 kg\n",
+ "final temperature = 603.1 K\n",
+ "piston rise = 8.10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter5_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter5_1.ipynb
new file mode 100755
index 00000000..7ebf1310
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter5_1.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4e735a3e117e4e268af257af7ccec75bd1ac3fad4a8f848db2d81766258e8e27"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5 -The ideal gas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific volumes at given pressure\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.016 ##gms\n",
+ "T= 400. ##C\n",
+ "p= 0.01 ##Mpa\n",
+ "p1= 0.1 ##Mpa\n",
+ "p2= 20. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= R*(273.156+T)/(M*p*1000)\n",
+ "v1= R*(273.156+T)/(M*p1*1000)\n",
+ "v2= R*(273.156+T)/(M*p2*1000)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' specific voulme =',v,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ', v1,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " specific voulme = 31.065 m^3/kg\n",
+ "specific voulme = 3.106 m^3/kg\n",
+ "specific voulme = 0.016 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3-pg73 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and pressure and work ,energy\n",
+ "##initialisation of variables\n",
+ "p1= 300.##kPa\n",
+ "V1= 0.03 ##m^3\n",
+ "V2= 0.08 ##m^3\n",
+ "T1= 27. ##C\n",
+ "##CALCULATIONS1\n",
+ "T2= T1+273\n",
+ "p2= p1*(V1/V2)*(T2/(T1+273))\n",
+ "W= 0\n",
+ "Q= 0\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final pressure =',p2,'kPa')\n",
+ "print'%s %.f %s'%('work = ',W,'kJ')\n",
+ "print'%s %.f %s'%('energy =',Q,'kJ')\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 300.00 K\n",
+ "final pressure = 112.5 kPa\n",
+ "work = 0 kJ\n",
+ "energy = 0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 -pg74\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of nitrogen and final temperature and piston rise\n",
+ "##initialisation of variables\n",
+ "p1= 2. ##Mpa\n",
+ "V1= 0.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 500. ##C\n",
+ "M= 28. ##gms\n",
+ "p2= 0.3 ##Mpa\n",
+ "T2= 250 ##C\n",
+ "k= 1.4\n",
+ "A= 0.1 ##m^2\n",
+ "##CALCULATIONS\n",
+ "m1= p1*10*10*10*V1*M/(R*(273.15+T1))\n",
+ "m2= p2*10*10*10*V1*M/(R*(273.15+T2))\n",
+ "m3= -(m2-m1)\n",
+ "T3= (m1*(273.15+T1)-m2*(273.15+T2))/(k*m3)\n",
+ "z3= m3*R*T3/(p2*10*10*10*A*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' mass of nitrogen =',m3,'kg')\n",
+ "print'%s %.1f %s'%('final temperature =',T3,'K')\n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " mass of nitrogen = 1.3561 kg\n",
+ "final temperature = 603.1 K\n",
+ "piston rise = 8.10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter5_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter5_2.ipynb
new file mode 100755
index 00000000..7ebf1310
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter5_2.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4e735a3e117e4e268af257af7ccec75bd1ac3fad4a8f848db2d81766258e8e27"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5 -The ideal gas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific volumes at given pressure\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.016 ##gms\n",
+ "T= 400. ##C\n",
+ "p= 0.01 ##Mpa\n",
+ "p1= 0.1 ##Mpa\n",
+ "p2= 20. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= R*(273.156+T)/(M*p*1000)\n",
+ "v1= R*(273.156+T)/(M*p1*1000)\n",
+ "v2= R*(273.156+T)/(M*p2*1000)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' specific voulme =',v,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ', v1,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " specific voulme = 31.065 m^3/kg\n",
+ "specific voulme = 3.106 m^3/kg\n",
+ "specific voulme = 0.016 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 3-pg73 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and pressure and work ,energy\n",
+ "##initialisation of variables\n",
+ "p1= 300.##kPa\n",
+ "V1= 0.03 ##m^3\n",
+ "V2= 0.08 ##m^3\n",
+ "T1= 27. ##C\n",
+ "##CALCULATIONS1\n",
+ "T2= T1+273\n",
+ "p2= p1*(V1/V2)*(T2/(T1+273))\n",
+ "W= 0\n",
+ "Q= 0\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final pressure =',p2,'kPa')\n",
+ "print'%s %.f %s'%('work = ',W,'kJ')\n",
+ "print'%s %.f %s'%('energy =',Q,'kJ')\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 300.00 K\n",
+ "final pressure = 112.5 kPa\n",
+ "work = 0 kJ\n",
+ "energy = 0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 -pg74\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of nitrogen and final temperature and piston rise\n",
+ "##initialisation of variables\n",
+ "p1= 2. ##Mpa\n",
+ "V1= 0.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 500. ##C\n",
+ "M= 28. ##gms\n",
+ "p2= 0.3 ##Mpa\n",
+ "T2= 250 ##C\n",
+ "k= 1.4\n",
+ "A= 0.1 ##m^2\n",
+ "##CALCULATIONS\n",
+ "m1= p1*10*10*10*V1*M/(R*(273.15+T1))\n",
+ "m2= p2*10*10*10*V1*M/(R*(273.15+T2))\n",
+ "m3= -(m2-m1)\n",
+ "T3= (m1*(273.15+T1)-m2*(273.15+T2))/(k*m3)\n",
+ "z3= m3*R*T3/(p2*10*10*10*A*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' mass of nitrogen =',m3,'kg')\n",
+ "print'%s %.1f %s'%('final temperature =',T3,'K')\n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " mass of nitrogen = 1.3561 kg\n",
+ "final temperature = 603.1 K\n",
+ "piston rise = 8.10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter5_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter5_3.ipynb
new file mode 100755
index 00000000..d9ddc9b6
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter5_3.ipynb
@@ -0,0 +1,302 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:be81f2921bd837b769765ce2f11df805d4272c8fa82950148df6411036b4a56d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter5 -The ideal gas"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate specific volumes at given pressure\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 18.016 ##gms\n",
+ "T= 400. ##C\n",
+ "p= 0.01 ##Mpa\n",
+ "p1= 0.1 ##Mpa\n",
+ "p2= 20. ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= R*(273.156+T)/(M*p*1000)\n",
+ "v1= R*(273.156+T)/(M*p1*1000)\n",
+ "v2= R*(273.156+T)/(M*p2*1000)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' specific voulme =',v,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ', v1,'m^3/kg')\n",
+ "print'%s %.3f %s'%('specific voulme = ',v2,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " specific voulme = 31.065 m^3/kg\n",
+ "specific voulme = 3.106 m^3/kg\n",
+ "specific voulme = 0.016 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "##initialisation of variables\n",
+ "R=8.314\n",
+ "V= 20 ##L\n",
+ "m= 0.050 ##gms\n",
+ "M= 29 ##gms\n",
+ "T1= 20 ##C\n",
+ "T2= 150 ##C\n",
+ "k= 1.4\n",
+ "V1= 0.05 ##m**3\n",
+ "##CALCULATIONS\n",
+ "p1= m*R*(273.15+T1)/(M*(V/10))\n",
+ "p2= m*R*(273.15+T2)/(M*(V/10))\n",
+ "dU= p1*V1*(((273.15+T2)/(273.15+T1))-1)*100/(k-1)\n",
+ "dH= k*dU\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' intial pressure =',p1,' kPa')\n",
+ "print'%s %.2f %s'% (' final pressure = ',p2,' kPa')\n",
+ "print'%s %.2f %s'% (' internal energy = ',dU,' kJ')\n",
+ "print'%s %.2f %s'% (' enthalpy = ',dH,' kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " intial pressure = 2.10 kPa\n",
+ " final pressure = 3.03 kPa\n",
+ " internal energy = 11.65 kJ\n",
+ " enthalpy = 16.31 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "T1= 200 ##K\n",
+ "p= 600 ##kPa\n",
+ "p1= 50 ##kPa\n",
+ "n= 1.8\n",
+ "M= 4. ##gms\n",
+ "k= 5/3.\n",
+ "m= 0.007 ##gms\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "T2= T1*(p/p1)**((n-1)/n)\n",
+ "W= m*R*(T1-T2)/((n-1)*M)\n",
+ "Q= ((n-k)*m*R*(T2-T1))/((n-1)*(k-1)*M)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' final temperature = ',T2,' K')\n",
+ "print'%s %.2f %s'% (' work = ',W,' kJ')\n",
+ "print'%s %.2f %s'% (' energy = ',Q,' kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final temperature = 603.48 K\n",
+ " work = -7.34 kJ\n",
+ " energy = 1.47 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 5-pg92 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and pressure and work ,energy\n",
+ "##initialisation of variables\n",
+ "p1= 300.##kPa\n",
+ "V1= 0.03 ##m^3\n",
+ "V2= 0.08 ##m^3\n",
+ "T1= 27. ##C\n",
+ "##CALCULATIONS1\n",
+ "T2= T1+273\n",
+ "p2= p1*(V1/V2)*(T2/(T1+273))\n",
+ "W= 0\n",
+ "Q= 0\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final pressure =',p2,'kPa')\n",
+ "print'%s %.f %s'%('work = ',W,'kJ')\n",
+ "print'%s %.f %s'%('energy =',Q,'kJ')\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 300.00 K\n",
+ "final pressure = 112.5 kPa\n",
+ "work = 0 kJ\n",
+ "energy = 0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6 -pg93\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of nitrogen and final temperature and piston rise\n",
+ "##initialisation of variables\n",
+ "p1= 2. ##Mpa\n",
+ "V1= 0.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 500. ##C\n",
+ "M= 28. ##gms\n",
+ "p2= 0.3 ##Mpa\n",
+ "T2= 250 ##C\n",
+ "k= 1.4\n",
+ "A= 0.1 ##m^2\n",
+ "##CALCULATIONS\n",
+ "m1= p1*10*10*10*V1*M/(R*(273.15+T1))\n",
+ "m2= p2*10*10*10*V1*M/(R*(273.15+T2))\n",
+ "m3= -(m2-m1)\n",
+ "T3= (m1*(273.15+T1)-m2*(273.15+T2))/(k*m3)\n",
+ "z3= m3*R*T3/(p2*10*10*10*A*M)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%(' mass of nitrogen =',m3,'kg')\n",
+ "print'%s %.1f %s'%('final temperature =',T3,'K')\n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " mass of nitrogen = 1.3561 kg\n",
+ "final temperature = 603.1 K\n",
+ "piston rise = 8.10 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 0.3 ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 28 ##gms\n",
+ "T1= 500. ##C\n",
+ "p1= 500. ##kPa\n",
+ "k= 1.4\n",
+ "V3= 0.3 ##m**2\n",
+ "##CALCULATIONS\n",
+ "V1= m*R*(273.15+T1)/(M*p1)\n",
+ "T3= k*(273.15+T1)\n",
+ "p3= m*R*T3*100/(M*V)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' final pressure =',p3,' kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final pressure = 482.10 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter6-Control_volume.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter6-Control_volume.ipynb
new file mode 100755
index 00000000..4db4d31d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter6-Control_volume.ipynb
@@ -0,0 +1,308 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de09a4c2813282719223c840622b4f97d21f59c5103e9a20c830f4005781fd9e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6 -Control volume"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate diameter for given variable\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29 ##gms\n",
+ "T= 80 ##C\n",
+ "p= 104 ##/kPa\n",
+ "v= 30 ##m/sec\n",
+ "m= 8000 ##kg/h\n",
+ "##CALCULATIONS\n",
+ "V= R*(273.15+T)/(M*p)\n",
+ "A= m*V/(3600*v)\n",
+ "D=math.sqrt(4*A/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('diameter = ',D,'m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter = 0.30301 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate intial areas\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T1= 230. ##C\n",
+ "p1= 30. ##/bar\n",
+ "k= 1.4\n",
+ "T2= 180. ##C\n",
+ "v1= 10. ##m/s\n",
+ "p2= 20. ##bar\n",
+ "m2= 0.84 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "V1= R*(273.15+T1)/(M*p1*100)\n",
+ "cp= k*R/((k-1)*M)\n",
+ "A= m2*V1*10*10*10*10/v1\n",
+ "v2= math.sqrt(v1*v1+2*cp*10*10*10*(T1-T2))\n",
+ "V2= R*(273.15+T2)/(M*p2*100)\n",
+ "A2= m2*V2*10*10*10*10/v2\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('inlet area =',A,'cm^2')\n",
+ "print'%s %.2f %s'%('inlet area =',A2,'cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "inlet area = 40.4 cm^2\n",
+ "inlet area = 1.72 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate quantity x and specific volume\n",
+ "##initialisation of variables\n",
+ "h= 2676.2 ##kJ/kg\n",
+ "hf= 721.11 ##kJ/kg\n",
+ "hg= 2679.1 ##kJ/kg\n",
+ "vf= 0.001115 ##m^3/kg\n",
+ "vg= 0.2404 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "x= (h-hf)/(hg-hf)\n",
+ "v1= vf+x*(vg-vf)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('quantity =',x,'')\n",
+ "print'%s %.4f %s'%('specific volume = ',v1,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "quantity = 0.9985 \n",
+ "specific volume = 0.2400 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat pump and reate heat interaction and work of the turbine and at another point rate of heat interaction and all four areas at given poin\n",
+ "##initialisation of variables\n",
+ "h4= 419.05 ##kJ/kg\n",
+ "h1= 434.92 ##kJ/kg\n",
+ "m= 2.5 ##kg/s\n",
+ "h2= 3272.4 ##kJ/kg\n",
+ "h3= 2601.7 ##kJ/kg\n",
+ "v1= 0.001401 ##m^3/kg\n",
+ "V1= 5 ##m/s\n",
+ "v2= 0.03817 ##m^3/kg\n",
+ "V2= 20. ##m/s\n",
+ "v3= 0.8415 ##m^3/kg\n",
+ "V3= 100. ##m/s\n",
+ "v4= 0.00104 ##m^3/kg\n",
+ "V4= 5 ##m/s\n",
+ "##CALCULATIONS\n",
+ "W41= m*(h4-h1)\n",
+ "Q12= m*(h2-h1)\n",
+ "W23= m*(h2-h3)\n",
+ "Q34= m*(h4-h3)\n",
+ "A1= m*v1*10*10*10*10/V1\n",
+ "A2= m*v2*10*1010*10/V2\n",
+ "A3= m*v3*10*1010*10/V3\n",
+ "A4= m*v4*10*1010*10/V4\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of pump =',W41,'kW')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q12,'kW')\n",
+ "print'%s %.1f %s'%('rate of work of the turbine =',W23,'W')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q34,'kW')\n",
+ "print'%s %.2f %s'%('area =',A1,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A2,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A3,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A4,'cm^2')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of pump = -39.7 kW\n",
+ "rate of heat ineraction = 7094 kW\n",
+ "rate of work of the turbine = 1676.8 W\n",
+ "rate of heat ineraction = -5457 kW\n",
+ "area = 7.00 cm^2\n",
+ "area = 481.90 cm^2\n",
+ "area = 2124.79 cm^2\n",
+ "area = 52.52 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of helium and temperature of helium\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 300. ##C\n",
+ "p1= 120. ##kPa\n",
+ "k= 5./3.\n",
+ "M=4. ##kg\n",
+ "p2= 600. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V= m1*R*(273.15+T1)/(p1*M)\n",
+ "m2= m1*((p2/p1)+k-1)/k\n",
+ "T2= p2*V*M/(m2*R)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass of helium =',m2,'kg')\n",
+ "print'%s %.1f %s'%('temperature of helium =',T2,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of helium = 0.102 kg\n",
+ "temperature of helium = 842.9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eaxmple 6-pg97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of container and pressure\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "v1= 2.1977 ##m^3/kg\n",
+ "h2= 3073.8 ##kJ/kg\n",
+ "h1= 3061.6 ##kJ/kg\n",
+ "p2= 600. ##kPa\n",
+ "p1= 120. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V=m1*v1\n",
+ "r= ((h2-h1)/v1)+p2-p1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume of container =',V,'m^3')\n",
+ "print'%s %.2f %s'%('pressure =',r,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of container = 0.06593 m^3\n",
+ "pressure = 485.55 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter6.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter6.ipynb
new file mode 100755
index 00000000..0e7c0436
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter6.ipynb
@@ -0,0 +1,308 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b8ccd5165760dffa261415477a99582312dff66f312e3d719c763faed6ba4a02"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6 -control volume"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate diameter for given variable\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29 ##gms\n",
+ "T= 80 ##C\n",
+ "p= 104 ##/kPa\n",
+ "v= 30 ##m/sec\n",
+ "m= 8000 ##kg/h\n",
+ "##CALCULATIONS\n",
+ "V= R*(273.15+T)/(M*p)\n",
+ "A= m*V/(3600*v)\n",
+ "D=math.sqrt(4*A/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('diameter = ',D,'m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter = 0.30301 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate intial areas\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T1= 230. ##C\n",
+ "p1= 30. ##/bar\n",
+ "k= 1.4\n",
+ "T2= 180. ##C\n",
+ "v1= 10. ##m/s\n",
+ "p2= 20. ##bar\n",
+ "m2= 0.84 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "V1= R*(273.15+T1)/(M*p1*100)\n",
+ "cp= k*R/((k-1)*M)\n",
+ "A= m2*V1*10*10*10*10/v1\n",
+ "v2= math.sqrt(v1*v1+2*cp*10*10*10*(T1-T2))\n",
+ "V2= R*(273.15+T2)/(M*p2*100)\n",
+ "A2= m2*V2*10*10*10*10/v2\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('inlet area =',A,'cm^2')\n",
+ "print'%s %.2f %s'%('inlet area =',A2,'cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "inlet area = 40.4 cm^2\n",
+ "inlet area = 1.72 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate quantity x and specific volume\n",
+ "##initialisation of variables\n",
+ "h= 2676.2 ##kJ/kg\n",
+ "hf= 721.11 ##kJ/kg\n",
+ "hg= 2679.1 ##kJ/kg\n",
+ "vf= 0.001115 ##m^3/kg\n",
+ "vg= 0.2404 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "x= (h-hf)/(hg-hf)\n",
+ "v1= vf+x*(vg-vf)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('quantity =',x,'')\n",
+ "print'%s %.4f %s'%('specific volume = ',v1,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "quantity = 0.9985 \n",
+ "specific volume = 0.2400 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat pump and reate heat interaction and work of the turbine and at another point rate of heat interaction and all four areas at given poin\n",
+ "##initialisation of variables\n",
+ "h4= 419.05 ##kJ/kg\n",
+ "h1= 434.92 ##kJ/kg\n",
+ "m= 2.5 ##kg/s\n",
+ "h2= 3272.4 ##kJ/kg\n",
+ "h3= 2601.7 ##kJ/kg\n",
+ "v1= 0.001401 ##m^3/kg\n",
+ "V1= 5 ##m/s\n",
+ "v2= 0.03817 ##m^3/kg\n",
+ "V2= 20. ##m/s\n",
+ "v3= 0.8415 ##m^3/kg\n",
+ "V3= 100. ##m/s\n",
+ "v4= 0.00104 ##m^3/kg\n",
+ "V4= 5 ##m/s\n",
+ "##CALCULATIONS\n",
+ "W41= m*(h4-h1)\n",
+ "Q12= m*(h2-h1)\n",
+ "W23= m*(h2-h3)\n",
+ "Q34= m*(h4-h3)\n",
+ "A1= m*v1*10*10*10*10/V1\n",
+ "A2= m*v2*10*1010*10/V2\n",
+ "A3= m*v3*10*1010*10/V3\n",
+ "A4= m*v4*10*1010*10/V4\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of pump =',W41,'kW')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q12,'kW')\n",
+ "print'%s %.1f %s'%('rate of work of the turbine =',W23,'W')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q34,'kW')\n",
+ "print'%s %.2f %s'%('area =',A1,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A2,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A3,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A4,'cm^2')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of pump = -39.7 kW\n",
+ "rate of heat ineraction = 7094 kW\n",
+ "rate of work of the turbine = 1676.8 W\n",
+ "rate of heat ineraction = -5457 kW\n",
+ "area = 7.00 cm^2\n",
+ "area = 481.90 cm^2\n",
+ "area = 2124.79 cm^2\n",
+ "area = 52.52 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of helium and temperature of helium\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 300. ##C\n",
+ "p1= 120. ##kPa\n",
+ "k= 5./3.\n",
+ "M=4. ##kg\n",
+ "p2= 600. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V= m1*R*(273.15+T1)/(p1*M)\n",
+ "m2= m1*((p2/p1)+k-1)/k\n",
+ "T2= p2*V*M/(m2*R)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass of helium =',m2,'kg')\n",
+ "print'%s %.1f %s'%('temperature of helium =',T2,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of helium = 0.102 kg\n",
+ "temperature of helium = 842.9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eaxmple 6-pg97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of container and pressure\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "v1= 2.1977 ##m^3/kg\n",
+ "h2= 3073.8 ##kJ/kg\n",
+ "h1= 3061.6 ##kJ/kg\n",
+ "p2= 600. ##kPa\n",
+ "p1= 120. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V=m1*v1\n",
+ "r= ((h2-h1)/v1)+p2-p1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume of container =',V,'m^3')\n",
+ "print'%s %.2f %s'%('pressure =',r,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of container = 0.06593 m^3\n",
+ "pressure = 485.55 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter6_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter6_1.ipynb
new file mode 100755
index 00000000..4db4d31d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter6_1.ipynb
@@ -0,0 +1,308 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de09a4c2813282719223c840622b4f97d21f59c5103e9a20c830f4005781fd9e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6 -Control volume"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate diameter for given variable\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29 ##gms\n",
+ "T= 80 ##C\n",
+ "p= 104 ##/kPa\n",
+ "v= 30 ##m/sec\n",
+ "m= 8000 ##kg/h\n",
+ "##CALCULATIONS\n",
+ "V= R*(273.15+T)/(M*p)\n",
+ "A= m*V/(3600*v)\n",
+ "D=math.sqrt(4*A/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('diameter = ',D,'m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter = 0.30301 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate intial areas\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T1= 230. ##C\n",
+ "p1= 30. ##/bar\n",
+ "k= 1.4\n",
+ "T2= 180. ##C\n",
+ "v1= 10. ##m/s\n",
+ "p2= 20. ##bar\n",
+ "m2= 0.84 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "V1= R*(273.15+T1)/(M*p1*100)\n",
+ "cp= k*R/((k-1)*M)\n",
+ "A= m2*V1*10*10*10*10/v1\n",
+ "v2= math.sqrt(v1*v1+2*cp*10*10*10*(T1-T2))\n",
+ "V2= R*(273.15+T2)/(M*p2*100)\n",
+ "A2= m2*V2*10*10*10*10/v2\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('inlet area =',A,'cm^2')\n",
+ "print'%s %.2f %s'%('inlet area =',A2,'cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "inlet area = 40.4 cm^2\n",
+ "inlet area = 1.72 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate quantity x and specific volume\n",
+ "##initialisation of variables\n",
+ "h= 2676.2 ##kJ/kg\n",
+ "hf= 721.11 ##kJ/kg\n",
+ "hg= 2679.1 ##kJ/kg\n",
+ "vf= 0.001115 ##m^3/kg\n",
+ "vg= 0.2404 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "x= (h-hf)/(hg-hf)\n",
+ "v1= vf+x*(vg-vf)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('quantity =',x,'')\n",
+ "print'%s %.4f %s'%('specific volume = ',v1,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "quantity = 0.9985 \n",
+ "specific volume = 0.2400 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat pump and reate heat interaction and work of the turbine and at another point rate of heat interaction and all four areas at given poin\n",
+ "##initialisation of variables\n",
+ "h4= 419.05 ##kJ/kg\n",
+ "h1= 434.92 ##kJ/kg\n",
+ "m= 2.5 ##kg/s\n",
+ "h2= 3272.4 ##kJ/kg\n",
+ "h3= 2601.7 ##kJ/kg\n",
+ "v1= 0.001401 ##m^3/kg\n",
+ "V1= 5 ##m/s\n",
+ "v2= 0.03817 ##m^3/kg\n",
+ "V2= 20. ##m/s\n",
+ "v3= 0.8415 ##m^3/kg\n",
+ "V3= 100. ##m/s\n",
+ "v4= 0.00104 ##m^3/kg\n",
+ "V4= 5 ##m/s\n",
+ "##CALCULATIONS\n",
+ "W41= m*(h4-h1)\n",
+ "Q12= m*(h2-h1)\n",
+ "W23= m*(h2-h3)\n",
+ "Q34= m*(h4-h3)\n",
+ "A1= m*v1*10*10*10*10/V1\n",
+ "A2= m*v2*10*1010*10/V2\n",
+ "A3= m*v3*10*1010*10/V3\n",
+ "A4= m*v4*10*1010*10/V4\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of pump =',W41,'kW')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q12,'kW')\n",
+ "print'%s %.1f %s'%('rate of work of the turbine =',W23,'W')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q34,'kW')\n",
+ "print'%s %.2f %s'%('area =',A1,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A2,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A3,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A4,'cm^2')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of pump = -39.7 kW\n",
+ "rate of heat ineraction = 7094 kW\n",
+ "rate of work of the turbine = 1676.8 W\n",
+ "rate of heat ineraction = -5457 kW\n",
+ "area = 7.00 cm^2\n",
+ "area = 481.90 cm^2\n",
+ "area = 2124.79 cm^2\n",
+ "area = 52.52 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of helium and temperature of helium\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 300. ##C\n",
+ "p1= 120. ##kPa\n",
+ "k= 5./3.\n",
+ "M=4. ##kg\n",
+ "p2= 600. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V= m1*R*(273.15+T1)/(p1*M)\n",
+ "m2= m1*((p2/p1)+k-1)/k\n",
+ "T2= p2*V*M/(m2*R)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass of helium =',m2,'kg')\n",
+ "print'%s %.1f %s'%('temperature of helium =',T2,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of helium = 0.102 kg\n",
+ "temperature of helium = 842.9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eaxmple 6-pg97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of container and pressure\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "v1= 2.1977 ##m^3/kg\n",
+ "h2= 3073.8 ##kJ/kg\n",
+ "h1= 3061.6 ##kJ/kg\n",
+ "p2= 600. ##kPa\n",
+ "p1= 120. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V=m1*v1\n",
+ "r= ((h2-h1)/v1)+p2-p1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume of container =',V,'m^3')\n",
+ "print'%s %.2f %s'%('pressure =',r,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of container = 0.06593 m^3\n",
+ "pressure = 485.55 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter6_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter6_2.ipynb
new file mode 100755
index 00000000..4db4d31d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter6_2.ipynb
@@ -0,0 +1,308 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:de09a4c2813282719223c840622b4f97d21f59c5103e9a20c830f4005781fd9e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6 -Control volume"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate diameter for given variable\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29 ##gms\n",
+ "T= 80 ##C\n",
+ "p= 104 ##/kPa\n",
+ "v= 30 ##m/sec\n",
+ "m= 8000 ##kg/h\n",
+ "##CALCULATIONS\n",
+ "V= R*(273.15+T)/(M*p)\n",
+ "A= m*V/(3600*v)\n",
+ "D=math.sqrt(4*A/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('diameter = ',D,'m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter = 0.30301 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate intial areas\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T1= 230. ##C\n",
+ "p1= 30. ##/bar\n",
+ "k= 1.4\n",
+ "T2= 180. ##C\n",
+ "v1= 10. ##m/s\n",
+ "p2= 20. ##bar\n",
+ "m2= 0.84 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "V1= R*(273.15+T1)/(M*p1*100)\n",
+ "cp= k*R/((k-1)*M)\n",
+ "A= m2*V1*10*10*10*10/v1\n",
+ "v2= math.sqrt(v1*v1+2*cp*10*10*10*(T1-T2))\n",
+ "V2= R*(273.15+T2)/(M*p2*100)\n",
+ "A2= m2*V2*10*10*10*10/v2\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('inlet area =',A,'cm^2')\n",
+ "print'%s %.2f %s'%('inlet area =',A2,'cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "inlet area = 40.4 cm^2\n",
+ "inlet area = 1.72 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate quantity x and specific volume\n",
+ "##initialisation of variables\n",
+ "h= 2676.2 ##kJ/kg\n",
+ "hf= 721.11 ##kJ/kg\n",
+ "hg= 2679.1 ##kJ/kg\n",
+ "vf= 0.001115 ##m^3/kg\n",
+ "vg= 0.2404 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "x= (h-hf)/(hg-hf)\n",
+ "v1= vf+x*(vg-vf)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('quantity =',x,'')\n",
+ "print'%s %.4f %s'%('specific volume = ',v1,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "quantity = 0.9985 \n",
+ "specific volume = 0.2400 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat pump and reate heat interaction and work of the turbine and at another point rate of heat interaction and all four areas at given poin\n",
+ "##initialisation of variables\n",
+ "h4= 419.05 ##kJ/kg\n",
+ "h1= 434.92 ##kJ/kg\n",
+ "m= 2.5 ##kg/s\n",
+ "h2= 3272.4 ##kJ/kg\n",
+ "h3= 2601.7 ##kJ/kg\n",
+ "v1= 0.001401 ##m^3/kg\n",
+ "V1= 5 ##m/s\n",
+ "v2= 0.03817 ##m^3/kg\n",
+ "V2= 20. ##m/s\n",
+ "v3= 0.8415 ##m^3/kg\n",
+ "V3= 100. ##m/s\n",
+ "v4= 0.00104 ##m^3/kg\n",
+ "V4= 5 ##m/s\n",
+ "##CALCULATIONS\n",
+ "W41= m*(h4-h1)\n",
+ "Q12= m*(h2-h1)\n",
+ "W23= m*(h2-h3)\n",
+ "Q34= m*(h4-h3)\n",
+ "A1= m*v1*10*10*10*10/V1\n",
+ "A2= m*v2*10*1010*10/V2\n",
+ "A3= m*v3*10*1010*10/V3\n",
+ "A4= m*v4*10*1010*10/V4\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of pump =',W41,'kW')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q12,'kW')\n",
+ "print'%s %.1f %s'%('rate of work of the turbine =',W23,'W')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q34,'kW')\n",
+ "print'%s %.2f %s'%('area =',A1,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A2,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A3,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A4,'cm^2')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of pump = -39.7 kW\n",
+ "rate of heat ineraction = 7094 kW\n",
+ "rate of work of the turbine = 1676.8 W\n",
+ "rate of heat ineraction = -5457 kW\n",
+ "area = 7.00 cm^2\n",
+ "area = 481.90 cm^2\n",
+ "area = 2124.79 cm^2\n",
+ "area = 52.52 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of helium and temperature of helium\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 300. ##C\n",
+ "p1= 120. ##kPa\n",
+ "k= 5./3.\n",
+ "M=4. ##kg\n",
+ "p2= 600. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V= m1*R*(273.15+T1)/(p1*M)\n",
+ "m2= m1*((p2/p1)+k-1)/k\n",
+ "T2= p2*V*M/(m2*R)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass of helium =',m2,'kg')\n",
+ "print'%s %.1f %s'%('temperature of helium =',T2,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of helium = 0.102 kg\n",
+ "temperature of helium = 842.9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eaxmple 6-pg97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of container and pressure\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "v1= 2.1977 ##m^3/kg\n",
+ "h2= 3073.8 ##kJ/kg\n",
+ "h1= 3061.6 ##kJ/kg\n",
+ "p2= 600. ##kPa\n",
+ "p1= 120. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V=m1*v1\n",
+ "r= ((h2-h1)/v1)+p2-p1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume of container =',V,'m^3')\n",
+ "print'%s %.2f %s'%('pressure =',r,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of container = 0.06593 m^3\n",
+ "pressure = 485.55 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter6_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter6_3.ipynb
new file mode 100755
index 00000000..0b9d567a
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter6_3.ipynb
@@ -0,0 +1,308 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3fa6f805a04c97f9f570ec814cf5d2c019b63eaef8d353695d41af7a87e5f109"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6 -Control volume"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 110"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate diameter for given variable\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29 ##gms\n",
+ "T= 80 ##C\n",
+ "p= 104 ##/kPa\n",
+ "v= 30 ##m/sec\n",
+ "m= 8000 ##kg/h\n",
+ "##CALCULATIONS\n",
+ "V= R*(273.15+T)/(M*p)\n",
+ "A= m*V/(3600*v)\n",
+ "D=math.sqrt(4*A/math.pi)\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('diameter = ',D,'m^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "diameter = 0.30301 m^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate intial areas\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T1= 230. ##C\n",
+ "p1= 30. ##/bar\n",
+ "k= 1.4\n",
+ "T2= 180. ##C\n",
+ "v1= 10. ##m/s\n",
+ "p2= 20. ##bar\n",
+ "m2= 0.84 ##kg/s\n",
+ "##CALCULATIONS\n",
+ "V1= R*(273.15+T1)/(M*p1*100)\n",
+ "cp= k*R/((k-1)*M)\n",
+ "A= m2*V1*10*10*10*10/v1\n",
+ "v2= math.sqrt(v1*v1+2*cp*10*10*10*(T1-T2))\n",
+ "V2= R*(273.15+T2)/(M*p2*100)\n",
+ "A2= m2*V2*10*10*10*10/v2\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('inlet area =',A,'cm^2')\n",
+ "print'%s %.2f %s'%('inlet area =',A2,'cm^2')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "inlet area = 40.4 cm^2\n",
+ "inlet area = 1.72 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate quantity x and specific volume\n",
+ "##initialisation of variables\n",
+ "h= 2676.2 ##kJ/kg\n",
+ "hf= 721.11 ##kJ/kg\n",
+ "hg= 2679.1 ##kJ/kg\n",
+ "vf= 0.001115 ##m^3/kg\n",
+ "vg= 0.2404 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "x= (h-hf)/(hg-hf)\n",
+ "v1= vf+x*(vg-vf)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('quantity =',x,'')\n",
+ "print'%s %.2f %s'%('specific volume = ',v1,'m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "quantity = 0.999 \n",
+ "specific volume = 0.24 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat pump and reate heat interaction and work of the turbine and at another point rate of heat interaction and all four areas at given poin\n",
+ "##initialisation of variables\n",
+ "h4= 419.05 ##kJ/kg\n",
+ "h1= 434.92 ##kJ/kg\n",
+ "m= 2.5 ##kg/s\n",
+ "h2= 3272.4 ##kJ/kg\n",
+ "h3= 2601.7 ##kJ/kg\n",
+ "v1= 0.001401 ##m^3/kg\n",
+ "V1= 5. ##m/s\n",
+ "v2= 0.03817 ##m^3/kg\n",
+ "V2= 20. ##m/s\n",
+ "v3= 0.8415 ##m^3/kg\n",
+ "V3= 100. ##m/s\n",
+ "v4= 0.00104 ##m^3/kg\n",
+ "V4= 5. ##m/s\n",
+ "##CALCULATIONS\n",
+ "W41= m*(h4-h1)\n",
+ "Q12= m*(h2-h1)\n",
+ "W23= m*(h2-h3)\n",
+ "Q34= m*(h4-h3)\n",
+ "A1= m*v1*10.*10.*10.*10./V1\n",
+ "A2= m*v2*10.*10*10.*10./V2\n",
+ "A3= m*v3*10.*10*10.*10/V3\n",
+ "A4= m*v4*10.*10*10.*10/V4\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of pump =',W41,'kW')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q12,'kW')\n",
+ "print'%s %.1f %s'%('rate of work of the turbine =',W23,'W')\n",
+ "print'%s %.f %s'%('rate of heat ineraction =',Q34,'kW')\n",
+ "print'%s %.2f %s'%('area =',A1,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A2,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A3,'cm^2')\n",
+ "print'%s %.2f %s'%('area =',A4,'cm^2')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of pump = -39.7 kW\n",
+ "rate of heat ineraction = 7094 kW\n",
+ "rate of work of the turbine = 1676.8 W\n",
+ "rate of heat ineraction = -5457 kW\n",
+ "area = 7.00 cm^2\n",
+ "area = 47.71 cm^2\n",
+ "area = 210.38 cm^2\n",
+ "area = 5.20 cm^2\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate mass of helium and temperature of helium\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "R= 8.314 ##J/mol K\n",
+ "T1= 300. ##C\n",
+ "p1= 120. ##kPa\n",
+ "k= 5./3.\n",
+ "M=4. ##kg\n",
+ "p2= 600. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V= m1*R*(273.15+T1)/(p1*M)\n",
+ "m2= m1*((p2/p1)+k-1)/k\n",
+ "T2= p2*V*M/(m2*R)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('mass of helium =',m2,'kg')\n",
+ "print'%s %.1f %s'%('temperature of helium =',T2,'K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of helium = 0.102 kg\n",
+ "temperature of helium = 842.9 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Eaxmple 6-pg123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume of container and pressure\n",
+ "##initialisation of variables\n",
+ "m1= 0.03 ##kg\n",
+ "v1= 2.1977 ##m^3/kg\n",
+ "h2= 3073.8 ##kJ/kg\n",
+ "h1= 3061.6 ##kJ/kg\n",
+ "p2= 600. ##kPa\n",
+ "p1= 120. ##kPa\n",
+ "##CALCULATIONS\n",
+ "V=m1*v1\n",
+ "r= ((h2-h1)/v1)+p2-p1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume of container =',V,'m^3')\n",
+ "print'%s %.2f %s'%('pressure =',r,'kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume of container = 0.06593 m^3\n",
+ "pressure = 485.55 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter7-Heat_engines_and_the_second_law_of_thermodynamics.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter7-Heat_engines_and_the_second_law_of_thermodynamics.ipynb
new file mode 100755
index 00000000..eb4c5f7b
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter7-Heat_engines_and_the_second_law_of_thermodynamics.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d5b975c50e55ebe3a2b199f890473e0371318b3f156613b06dbc3a02621943c9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Heat engines and the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate heat and efficency\n",
+ "##initialisation of variables\n",
+ "m= 0.35 ##kg\n",
+ "u2= 211.785 ##kJ/kg\n",
+ "u1= 182.267 ##kJ/kg\n",
+ "p2= 300. ##kPa\n",
+ "v3= 0.085566 ##kJ/kg\n",
+ "v2= 0.076218 ##kJ/kg\n",
+ "h3= 260.391 ##kJ/kg\n",
+ "h2= 234.650 ##kJ/kg\n",
+ "u4= 199.460 ##kJ/kg\n",
+ "u3= 234.721 ##kJ/kg\n",
+ "p4= 250.##kPa\n",
+ "v1= 0.076218 ##kJ/kg\n",
+ "v4= 0.085566 ##kJ/kg\n",
+ "h1= 201.322 ##kJ/kg\n",
+ "h4= 220.851 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "Q12= m*(u2-u1)\n",
+ "W23= m*p2*(v3-v2)\n",
+ "Q23= m*(h3-h2)\n",
+ "W34= 0\n",
+ "Q34= m*(u4-u3)\n",
+ "W41= m*p4*(v1-v4)\n",
+ "Q41= m*(h1-h4)\n",
+ "dW= W23+W41\n",
+ "dQ= Q12+Q23+Q34+Q41\n",
+ "Qh= Q12+Q23\n",
+ "n= dW*100/Qh\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('heat = ',Qh,'kj')\n",
+ "print'%s %.2f %s'%('efficiency =',n, 'percent')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 19.34 kj\n",
+ "efficiency = 0.85 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 pg-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effiecncy of heat engine and efficency\n",
+ "##initialisation of variables\n",
+ "Qc= 9 ##kW\n",
+ "W= 7.5 ##kW\n",
+ "Qh= Qc+W\n",
+ "Tc= 50 ##C\n",
+ "Th= 400 ##C\n",
+ "##CALCULATIONS\n",
+ "n= W/Qh\n",
+ "nrev= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('efficiency of heat engine = ',n,'')\n",
+ "print'%s %.3f %s'%('efficiency =',nrev,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency of heat engine = 0.455 \n",
+ "efficiency = 0.520 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter7.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter7.ipynb
new file mode 100755
index 00000000..eb4c5f7b
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter7.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d5b975c50e55ebe3a2b199f890473e0371318b3f156613b06dbc3a02621943c9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Heat engines and the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate heat and efficency\n",
+ "##initialisation of variables\n",
+ "m= 0.35 ##kg\n",
+ "u2= 211.785 ##kJ/kg\n",
+ "u1= 182.267 ##kJ/kg\n",
+ "p2= 300. ##kPa\n",
+ "v3= 0.085566 ##kJ/kg\n",
+ "v2= 0.076218 ##kJ/kg\n",
+ "h3= 260.391 ##kJ/kg\n",
+ "h2= 234.650 ##kJ/kg\n",
+ "u4= 199.460 ##kJ/kg\n",
+ "u3= 234.721 ##kJ/kg\n",
+ "p4= 250.##kPa\n",
+ "v1= 0.076218 ##kJ/kg\n",
+ "v4= 0.085566 ##kJ/kg\n",
+ "h1= 201.322 ##kJ/kg\n",
+ "h4= 220.851 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "Q12= m*(u2-u1)\n",
+ "W23= m*p2*(v3-v2)\n",
+ "Q23= m*(h3-h2)\n",
+ "W34= 0\n",
+ "Q34= m*(u4-u3)\n",
+ "W41= m*p4*(v1-v4)\n",
+ "Q41= m*(h1-h4)\n",
+ "dW= W23+W41\n",
+ "dQ= Q12+Q23+Q34+Q41\n",
+ "Qh= Q12+Q23\n",
+ "n= dW*100/Qh\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('heat = ',Qh,'kj')\n",
+ "print'%s %.2f %s'%('efficiency =',n, 'percent')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 19.34 kj\n",
+ "efficiency = 0.85 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 pg-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effiecncy of heat engine and efficency\n",
+ "##initialisation of variables\n",
+ "Qc= 9 ##kW\n",
+ "W= 7.5 ##kW\n",
+ "Qh= Qc+W\n",
+ "Tc= 50 ##C\n",
+ "Th= 400 ##C\n",
+ "##CALCULATIONS\n",
+ "n= W/Qh\n",
+ "nrev= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('efficiency of heat engine = ',n,'')\n",
+ "print'%s %.3f %s'%('efficiency =',nrev,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency of heat engine = 0.455 \n",
+ "efficiency = 0.520 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter7_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter7_1.ipynb
new file mode 100755
index 00000000..eb4c5f7b
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter7_1.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d5b975c50e55ebe3a2b199f890473e0371318b3f156613b06dbc3a02621943c9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Heat engines and the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate heat and efficency\n",
+ "##initialisation of variables\n",
+ "m= 0.35 ##kg\n",
+ "u2= 211.785 ##kJ/kg\n",
+ "u1= 182.267 ##kJ/kg\n",
+ "p2= 300. ##kPa\n",
+ "v3= 0.085566 ##kJ/kg\n",
+ "v2= 0.076218 ##kJ/kg\n",
+ "h3= 260.391 ##kJ/kg\n",
+ "h2= 234.650 ##kJ/kg\n",
+ "u4= 199.460 ##kJ/kg\n",
+ "u3= 234.721 ##kJ/kg\n",
+ "p4= 250.##kPa\n",
+ "v1= 0.076218 ##kJ/kg\n",
+ "v4= 0.085566 ##kJ/kg\n",
+ "h1= 201.322 ##kJ/kg\n",
+ "h4= 220.851 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "Q12= m*(u2-u1)\n",
+ "W23= m*p2*(v3-v2)\n",
+ "Q23= m*(h3-h2)\n",
+ "W34= 0\n",
+ "Q34= m*(u4-u3)\n",
+ "W41= m*p4*(v1-v4)\n",
+ "Q41= m*(h1-h4)\n",
+ "dW= W23+W41\n",
+ "dQ= Q12+Q23+Q34+Q41\n",
+ "Qh= Q12+Q23\n",
+ "n= dW*100/Qh\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('heat = ',Qh,'kj')\n",
+ "print'%s %.2f %s'%('efficiency =',n, 'percent')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 19.34 kj\n",
+ "efficiency = 0.85 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 pg-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effiecncy of heat engine and efficency\n",
+ "##initialisation of variables\n",
+ "Qc= 9 ##kW\n",
+ "W= 7.5 ##kW\n",
+ "Qh= Qc+W\n",
+ "Tc= 50 ##C\n",
+ "Th= 400 ##C\n",
+ "##CALCULATIONS\n",
+ "n= W/Qh\n",
+ "nrev= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('efficiency of heat engine = ',n,'')\n",
+ "print'%s %.3f %s'%('efficiency =',nrev,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency of heat engine = 0.455 \n",
+ "efficiency = 0.520 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter7_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter7_2.ipynb
new file mode 100755
index 00000000..eb4c5f7b
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter7_2.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d5b975c50e55ebe3a2b199f890473e0371318b3f156613b06dbc3a02621943c9"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Heat engines and the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate heat and efficency\n",
+ "##initialisation of variables\n",
+ "m= 0.35 ##kg\n",
+ "u2= 211.785 ##kJ/kg\n",
+ "u1= 182.267 ##kJ/kg\n",
+ "p2= 300. ##kPa\n",
+ "v3= 0.085566 ##kJ/kg\n",
+ "v2= 0.076218 ##kJ/kg\n",
+ "h3= 260.391 ##kJ/kg\n",
+ "h2= 234.650 ##kJ/kg\n",
+ "u4= 199.460 ##kJ/kg\n",
+ "u3= 234.721 ##kJ/kg\n",
+ "p4= 250.##kPa\n",
+ "v1= 0.076218 ##kJ/kg\n",
+ "v4= 0.085566 ##kJ/kg\n",
+ "h1= 201.322 ##kJ/kg\n",
+ "h4= 220.851 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "Q12= m*(u2-u1)\n",
+ "W23= m*p2*(v3-v2)\n",
+ "Q23= m*(h3-h2)\n",
+ "W34= 0\n",
+ "Q34= m*(u4-u3)\n",
+ "W41= m*p4*(v1-v4)\n",
+ "Q41= m*(h1-h4)\n",
+ "dW= W23+W41\n",
+ "dQ= Q12+Q23+Q34+Q41\n",
+ "Qh= Q12+Q23\n",
+ "n= dW*100/Qh\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('heat = ',Qh,'kj')\n",
+ "print'%s %.2f %s'%('efficiency =',n, 'percent')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 19.34 kj\n",
+ "efficiency = 0.85 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 pg-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effiecncy of heat engine and efficency\n",
+ "##initialisation of variables\n",
+ "Qc= 9 ##kW\n",
+ "W= 7.5 ##kW\n",
+ "Qh= Qc+W\n",
+ "Tc= 50 ##C\n",
+ "Th= 400 ##C\n",
+ "##CALCULATIONS\n",
+ "n= W/Qh\n",
+ "nrev= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('efficiency of heat engine = ',n,'')\n",
+ "print'%s %.3f %s'%('efficiency =',nrev,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency of heat engine = 0.455 \n",
+ "efficiency = 0.520 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter7_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter7_3.ipynb
new file mode 100755
index 00000000..9de444b0
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter7_3.ipynb
@@ -0,0 +1,123 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e4631603aed69918db75e330f3c0e7e2d262143fadfa182241f038adb18aceb6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Heat engines and the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate heat and efficency\n",
+ "##initialisation of variables\n",
+ "m= 0.35 ##kg\n",
+ "u2= 211.785 ##kJ/kg\n",
+ "u1= 182.267 ##kJ/kg\n",
+ "p2= 300. ##kPa\n",
+ "v3= 0.085566 ##kJ/kg\n",
+ "v2= 0.076218 ##kJ/kg\n",
+ "h3= 260.391 ##kJ/kg\n",
+ "h2= 234.650 ##kJ/kg\n",
+ "u4= 199.460 ##kJ/kg\n",
+ "u3= 234.721 ##kJ/kg\n",
+ "p4= 250.##kPa\n",
+ "v1= 0.076218 ##kJ/kg\n",
+ "v4= 0.085566 ##kJ/kg\n",
+ "h1= 201.322 ##kJ/kg\n",
+ "h4= 220.851 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "Q12= m*(u2-u1)\n",
+ "W23= m*p2*(v3-v2)\n",
+ "Q23= m*(h3-h2)\n",
+ "W34= 0.\n",
+ "Q34= m*(u4-u3)\n",
+ "W41= m*p4*(v1-v4)\n",
+ "Q41= m*(h1-h4)\n",
+ "dW= W23+W41\n",
+ "dQ= Q12+Q23+Q34+Q41\n",
+ "Qh= Q12+Q23\n",
+ "n= dW*100./Qh\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('heat = ',Qh,'kj')\n",
+ "print'%s %.2f %s'%('efficiency =',n, 'percent')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 19.34 kj\n",
+ "efficiency = 0.85 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4 pg-156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate effiecncy of heat engine and efficency\n",
+ "##initialisation of variables\n",
+ "Qc= 9 ##kW\n",
+ "W= 7.5 ##kW\n",
+ "Qh= Qc+W\n",
+ "Tc= 50 ##C\n",
+ "Th= 400 ##C\n",
+ "##CALCULATIONS\n",
+ "n= W/Qh\n",
+ "nrev= 1-((273.15+Tc)/(273.15+Th))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('efficiency of heat engine = ',n,'')\n",
+ "print'%s %.3f %s'%('efficiency =',nrev,'')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "efficiency of heat engine = 0.455 \n",
+ "efficiency = 0.520 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter8-Entropy.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter8-Entropy.ipynb
new file mode 100755
index 00000000..c1d76b67
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter8-Entropy.ipynb
@@ -0,0 +1,309 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8780f29f2ca7dbbe28306b63f91de121a8fdfb0cc3c24c326256cd5a0309b1ed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate and entropy of ice and environment and universe\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "dh= 333.39 ##kg/h\n",
+ "T= 0 ##C\n",
+ "T1= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "Q12= m*dh\n",
+ "dS= Q12/(273.15+T)\n",
+ "dSenvir= -Q12/(273.15+T1)\n",
+ "dStotal= dS+dSenvir\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' entropy of ice =',dS,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of environment =',dSenvir,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of universe =',dStotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " entropy of ice = 2.441 kJ/K\n",
+ "entropy of environment = -2.275 kJ/K\n",
+ "entropy of universe = 0.167 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in entropy in system and environment and entropy\n",
+ "##initialisation of variables\n",
+ "Q= 666.78 ##kJ\n",
+ "T= 0 ##C\n",
+ "Th= 20. ##C\n",
+ "##CALCULATIONS\n",
+ "Ssys= Q/(273.15+T)\n",
+ "Qh= Q*((273.15+Th)/(273.15+T))\n",
+ "Senvir= -Qh/(273.15+Th)\n",
+ "Stotal= Ssys+Senvir\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('change in entropy in sysytem =',Ssys,' kJ/K')\n",
+ "print'%s %.4f %s'%('change in entropy in environment =',Senvir,'kJ/K')\n",
+ "print'%s %.f %s'%('total change in entropy =',Stotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy in sysytem = 2.4411 kJ/K\n",
+ "change in entropy in environment = -2.4411 kJ/K\n",
+ "total change in entropy = 0 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg134\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S1= 6.2872 ##J/kg K\n",
+ "S2= 5.8712 ##J/kg K\n",
+ "m= 18 ##kg\n",
+ "##CALCULATIONS\n",
+ "S= m*(S1-S2)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in entropy = 7.488 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S2= 5.8328 ##kJ/kg\n",
+ "S1= 5.8712 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "S= S2-S1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('change in entropy = ',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy = -0.03840 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and change in entropy\n",
+ "##initialisation of variables\n",
+ "m= 0.1 ##kg\n",
+ "p= 3 ##bar\n",
+ "p1= 10 ##bar\n",
+ "h1= 2964.3 ##kJ/kg\n",
+ "v1=0.2378\n",
+ "s2= 7.1619 ##kJ/k\n",
+ "s1= 6.9641 ##kJ/k\n",
+ "##CALCULATIONS\n",
+ "h2= h1+(p-p1)*math.pow(10,5)*v1*math.pow(10,-3)\n",
+ "S= m*(s2-s1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.5f %s'%('change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " enthalpy = 2797.8 kJ/kg\n",
+ "change in entropy = 0.01978 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate final pressure and change in entropy\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "p1= 5. ##bar\n",
+ "V1= 0.4 ##m^2\n",
+ "V2= 1.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 28.##gms\n",
+ "T1= 80.##C\n",
+ "##CALCULATIONS\n",
+ "p2= p1*(V1/V2)\n",
+ "S= R*math.log(V2/V1)/M\n",
+ "S1= S*p1*V1*100/((R/M)*(273.15+T1))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' final pressure =',p2,'bar')\n",
+ "print'%s %.4f %s'% ('change in entropy =',S1,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final pressure = 1.667 bar\n",
+ "change in entropy = 0.6222 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat and change in entropy of system and change in entropy of enironment\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T= 400. ##K\n",
+ "p2= 1.6 ##bar\n",
+ "p1= 1. ##bar\n",
+ "Tenvir= 300. ##K\n",
+ "##CALCULATIONS\n",
+ "q= R*T*math.log(p2/p1)/M\n",
+ "S= -R*math.log(p2/p1)/M\n",
+ "Senvir= q/Tenvir\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat =',q,'kJ/kg')\n",
+ "print'%s %.4f %s'%('change in entropy of system=',S,'kJ/kg K')\n",
+ "print'%s %.4f %s'%('change in entropy of environment=',Senvir,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 53.9 kJ/kg\n",
+ "change in entropy of system= -0.1347 kJ/kg K\n",
+ "change in entropy of environment= 0.1797 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter8.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter8.ipynb
new file mode 100755
index 00000000..c1d76b67
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter8.ipynb
@@ -0,0 +1,309 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8780f29f2ca7dbbe28306b63f91de121a8fdfb0cc3c24c326256cd5a0309b1ed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate and entropy of ice and environment and universe\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "dh= 333.39 ##kg/h\n",
+ "T= 0 ##C\n",
+ "T1= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "Q12= m*dh\n",
+ "dS= Q12/(273.15+T)\n",
+ "dSenvir= -Q12/(273.15+T1)\n",
+ "dStotal= dS+dSenvir\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' entropy of ice =',dS,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of environment =',dSenvir,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of universe =',dStotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " entropy of ice = 2.441 kJ/K\n",
+ "entropy of environment = -2.275 kJ/K\n",
+ "entropy of universe = 0.167 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in entropy in system and environment and entropy\n",
+ "##initialisation of variables\n",
+ "Q= 666.78 ##kJ\n",
+ "T= 0 ##C\n",
+ "Th= 20. ##C\n",
+ "##CALCULATIONS\n",
+ "Ssys= Q/(273.15+T)\n",
+ "Qh= Q*((273.15+Th)/(273.15+T))\n",
+ "Senvir= -Qh/(273.15+Th)\n",
+ "Stotal= Ssys+Senvir\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('change in entropy in sysytem =',Ssys,' kJ/K')\n",
+ "print'%s %.4f %s'%('change in entropy in environment =',Senvir,'kJ/K')\n",
+ "print'%s %.f %s'%('total change in entropy =',Stotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy in sysytem = 2.4411 kJ/K\n",
+ "change in entropy in environment = -2.4411 kJ/K\n",
+ "total change in entropy = 0 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg134\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S1= 6.2872 ##J/kg K\n",
+ "S2= 5.8712 ##J/kg K\n",
+ "m= 18 ##kg\n",
+ "##CALCULATIONS\n",
+ "S= m*(S1-S2)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in entropy = 7.488 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S2= 5.8328 ##kJ/kg\n",
+ "S1= 5.8712 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "S= S2-S1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('change in entropy = ',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy = -0.03840 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and change in entropy\n",
+ "##initialisation of variables\n",
+ "m= 0.1 ##kg\n",
+ "p= 3 ##bar\n",
+ "p1= 10 ##bar\n",
+ "h1= 2964.3 ##kJ/kg\n",
+ "v1=0.2378\n",
+ "s2= 7.1619 ##kJ/k\n",
+ "s1= 6.9641 ##kJ/k\n",
+ "##CALCULATIONS\n",
+ "h2= h1+(p-p1)*math.pow(10,5)*v1*math.pow(10,-3)\n",
+ "S= m*(s2-s1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.5f %s'%('change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " enthalpy = 2797.8 kJ/kg\n",
+ "change in entropy = 0.01978 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate final pressure and change in entropy\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "p1= 5. ##bar\n",
+ "V1= 0.4 ##m^2\n",
+ "V2= 1.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 28.##gms\n",
+ "T1= 80.##C\n",
+ "##CALCULATIONS\n",
+ "p2= p1*(V1/V2)\n",
+ "S= R*math.log(V2/V1)/M\n",
+ "S1= S*p1*V1*100/((R/M)*(273.15+T1))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' final pressure =',p2,'bar')\n",
+ "print'%s %.4f %s'% ('change in entropy =',S1,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final pressure = 1.667 bar\n",
+ "change in entropy = 0.6222 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat and change in entropy of system and change in entropy of enironment\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T= 400. ##K\n",
+ "p2= 1.6 ##bar\n",
+ "p1= 1. ##bar\n",
+ "Tenvir= 300. ##K\n",
+ "##CALCULATIONS\n",
+ "q= R*T*math.log(p2/p1)/M\n",
+ "S= -R*math.log(p2/p1)/M\n",
+ "Senvir= q/Tenvir\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat =',q,'kJ/kg')\n",
+ "print'%s %.4f %s'%('change in entropy of system=',S,'kJ/kg K')\n",
+ "print'%s %.4f %s'%('change in entropy of environment=',Senvir,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 53.9 kJ/kg\n",
+ "change in entropy of system= -0.1347 kJ/kg K\n",
+ "change in entropy of environment= 0.1797 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter8_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter8_1.ipynb
new file mode 100755
index 00000000..c1d76b67
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter8_1.ipynb
@@ -0,0 +1,309 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8780f29f2ca7dbbe28306b63f91de121a8fdfb0cc3c24c326256cd5a0309b1ed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate and entropy of ice and environment and universe\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "dh= 333.39 ##kg/h\n",
+ "T= 0 ##C\n",
+ "T1= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "Q12= m*dh\n",
+ "dS= Q12/(273.15+T)\n",
+ "dSenvir= -Q12/(273.15+T1)\n",
+ "dStotal= dS+dSenvir\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' entropy of ice =',dS,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of environment =',dSenvir,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of universe =',dStotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " entropy of ice = 2.441 kJ/K\n",
+ "entropy of environment = -2.275 kJ/K\n",
+ "entropy of universe = 0.167 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in entropy in system and environment and entropy\n",
+ "##initialisation of variables\n",
+ "Q= 666.78 ##kJ\n",
+ "T= 0 ##C\n",
+ "Th= 20. ##C\n",
+ "##CALCULATIONS\n",
+ "Ssys= Q/(273.15+T)\n",
+ "Qh= Q*((273.15+Th)/(273.15+T))\n",
+ "Senvir= -Qh/(273.15+Th)\n",
+ "Stotal= Ssys+Senvir\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('change in entropy in sysytem =',Ssys,' kJ/K')\n",
+ "print'%s %.4f %s'%('change in entropy in environment =',Senvir,'kJ/K')\n",
+ "print'%s %.f %s'%('total change in entropy =',Stotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy in sysytem = 2.4411 kJ/K\n",
+ "change in entropy in environment = -2.4411 kJ/K\n",
+ "total change in entropy = 0 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg134\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S1= 6.2872 ##J/kg K\n",
+ "S2= 5.8712 ##J/kg K\n",
+ "m= 18 ##kg\n",
+ "##CALCULATIONS\n",
+ "S= m*(S1-S2)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in entropy = 7.488 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S2= 5.8328 ##kJ/kg\n",
+ "S1= 5.8712 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "S= S2-S1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('change in entropy = ',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy = -0.03840 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and change in entropy\n",
+ "##initialisation of variables\n",
+ "m= 0.1 ##kg\n",
+ "p= 3 ##bar\n",
+ "p1= 10 ##bar\n",
+ "h1= 2964.3 ##kJ/kg\n",
+ "v1=0.2378\n",
+ "s2= 7.1619 ##kJ/k\n",
+ "s1= 6.9641 ##kJ/k\n",
+ "##CALCULATIONS\n",
+ "h2= h1+(p-p1)*math.pow(10,5)*v1*math.pow(10,-3)\n",
+ "S= m*(s2-s1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.5f %s'%('change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " enthalpy = 2797.8 kJ/kg\n",
+ "change in entropy = 0.01978 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate final pressure and change in entropy\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "p1= 5. ##bar\n",
+ "V1= 0.4 ##m^2\n",
+ "V2= 1.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 28.##gms\n",
+ "T1= 80.##C\n",
+ "##CALCULATIONS\n",
+ "p2= p1*(V1/V2)\n",
+ "S= R*math.log(V2/V1)/M\n",
+ "S1= S*p1*V1*100/((R/M)*(273.15+T1))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' final pressure =',p2,'bar')\n",
+ "print'%s %.4f %s'% ('change in entropy =',S1,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final pressure = 1.667 bar\n",
+ "change in entropy = 0.6222 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat and change in entropy of system and change in entropy of enironment\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T= 400. ##K\n",
+ "p2= 1.6 ##bar\n",
+ "p1= 1. ##bar\n",
+ "Tenvir= 300. ##K\n",
+ "##CALCULATIONS\n",
+ "q= R*T*math.log(p2/p1)/M\n",
+ "S= -R*math.log(p2/p1)/M\n",
+ "Senvir= q/Tenvir\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat =',q,'kJ/kg')\n",
+ "print'%s %.4f %s'%('change in entropy of system=',S,'kJ/kg K')\n",
+ "print'%s %.4f %s'%('change in entropy of environment=',Senvir,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 53.9 kJ/kg\n",
+ "change in entropy of system= -0.1347 kJ/kg K\n",
+ "change in entropy of environment= 0.1797 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter8_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter8_2.ipynb
new file mode 100755
index 00000000..c1d76b67
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter8_2.ipynb
@@ -0,0 +1,309 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8780f29f2ca7dbbe28306b63f91de121a8fdfb0cc3c24c326256cd5a0309b1ed"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate and entropy of ice and environment and universe\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "dh= 333.39 ##kg/h\n",
+ "T= 0 ##C\n",
+ "T1= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "Q12= m*dh\n",
+ "dS= Q12/(273.15+T)\n",
+ "dSenvir= -Q12/(273.15+T1)\n",
+ "dStotal= dS+dSenvir\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' entropy of ice =',dS,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of environment =',dSenvir,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of universe =',dStotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " entropy of ice = 2.441 kJ/K\n",
+ "entropy of environment = -2.275 kJ/K\n",
+ "entropy of universe = 0.167 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg132"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in entropy in system and environment and entropy\n",
+ "##initialisation of variables\n",
+ "Q= 666.78 ##kJ\n",
+ "T= 0 ##C\n",
+ "Th= 20. ##C\n",
+ "##CALCULATIONS\n",
+ "Ssys= Q/(273.15+T)\n",
+ "Qh= Q*((273.15+Th)/(273.15+T))\n",
+ "Senvir= -Qh/(273.15+Th)\n",
+ "Stotal= Ssys+Senvir\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('change in entropy in sysytem =',Ssys,' kJ/K')\n",
+ "print'%s %.4f %s'%('change in entropy in environment =',Senvir,'kJ/K')\n",
+ "print'%s %.f %s'%('total change in entropy =',Stotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy in sysytem = 2.4411 kJ/K\n",
+ "change in entropy in environment = -2.4411 kJ/K\n",
+ "total change in entropy = 0 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg134\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S1= 6.2872 ##J/kg K\n",
+ "S2= 5.8712 ##J/kg K\n",
+ "m= 18 ##kg\n",
+ "##CALCULATIONS\n",
+ "S= m*(S1-S2)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in entropy = 7.488 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S2= 5.8328 ##kJ/kg\n",
+ "S1= 5.8712 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "S= S2-S1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('change in entropy = ',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy = -0.03840 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and change in entropy\n",
+ "##initialisation of variables\n",
+ "m= 0.1 ##kg\n",
+ "p= 3 ##bar\n",
+ "p1= 10 ##bar\n",
+ "h1= 2964.3 ##kJ/kg\n",
+ "v1=0.2378\n",
+ "s2= 7.1619 ##kJ/k\n",
+ "s1= 6.9641 ##kJ/k\n",
+ "##CALCULATIONS\n",
+ "h2= h1+(p-p1)*math.pow(10,5)*v1*math.pow(10,-3)\n",
+ "S= m*(s2-s1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.5f %s'%('change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " enthalpy = 2797.8 kJ/kg\n",
+ "change in entropy = 0.01978 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate final pressure and change in entropy\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "p1= 5. ##bar\n",
+ "V1= 0.4 ##m^2\n",
+ "V2= 1.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 28.##gms\n",
+ "T1= 80.##C\n",
+ "##CALCULATIONS\n",
+ "p2= p1*(V1/V2)\n",
+ "S= R*math.log(V2/V1)/M\n",
+ "S1= S*p1*V1*100/((R/M)*(273.15+T1))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' final pressure =',p2,'bar')\n",
+ "print'%s %.4f %s'% ('change in entropy =',S1,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final pressure = 1.667 bar\n",
+ "change in entropy = 0.6222 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat and change in entropy of system and change in entropy of enironment\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T= 400. ##K\n",
+ "p2= 1.6 ##bar\n",
+ "p1= 1. ##bar\n",
+ "Tenvir= 300. ##K\n",
+ "##CALCULATIONS\n",
+ "q= R*T*math.log(p2/p1)/M\n",
+ "S= -R*math.log(p2/p1)/M\n",
+ "Senvir= q/Tenvir\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat =',q,'kJ/kg')\n",
+ "print'%s %.4f %s'%('change in entropy of system=',S,'kJ/kg K')\n",
+ "print'%s %.4f %s'%('change in entropy of environment=',Senvir,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 53.9 kJ/kg\n",
+ "change in entropy of system= -0.1347 kJ/kg K\n",
+ "change in entropy of environment= 0.1797 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter8_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter8_3.ipynb
new file mode 100755
index 00000000..47114c69
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter8_3.ipynb
@@ -0,0 +1,354 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9c8ef7403d1e4089b03a877df55583eac7aa3f196537402cb7dc0697b6d5bbe7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1 pg- 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate and entropy of ice and environment and universe\n",
+ "##initialisation of variables\n",
+ "m= 2 ##kg\n",
+ "dh= 333.39 ##kg/h\n",
+ "T= 0 ##C\n",
+ "T1= 20 ##C\n",
+ "##CALCULATIONS\n",
+ "Q12= m*dh\n",
+ "dS= Q12/(273.15+T)\n",
+ "dSenvir= -Q12/(273.15+T1)\n",
+ "dStotal= dS+dSenvir\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' entropy of ice =',dS,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of environment =',dSenvir,'kJ/K')\n",
+ "print'%s %.3f %s'%('entropy of universe =',dStotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " entropy of ice = 2.441 kJ/K\n",
+ "entropy of environment = -2.275 kJ/K\n",
+ "entropy of universe = 0.167 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate change in entropy in system and environment and entropy\n",
+ "##initialisation of variables\n",
+ "Q= 666.78 ##kJ\n",
+ "T= 0 ##C\n",
+ "Th= 20. ##C\n",
+ "##CALCULATIONS\n",
+ "Ssys= Q/(273.15+T)\n",
+ "Qh= Q*((273.15+Th)/(273.15+T))\n",
+ "Senvir= -Qh/(273.15+Th)\n",
+ "Stotal= Ssys+Senvir\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('change in entropy in sysytem =',Ssys,' kJ/K')\n",
+ "print'%s %.4f %s'%('change in entropy in environment =',Senvir,'kJ/K')\n",
+ "print'%s %.f %s'%('total change in entropy =',Stotal,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy in sysytem = 2.4411 kJ/K\n",
+ "change in entropy in environment = -2.4411 kJ/K\n",
+ "total change in entropy = 0 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg171\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S1= 6.2872 ##J/kg K\n",
+ "S2= 5.8712 ##J/kg K\n",
+ "m= 18 ##kg\n",
+ "##CALCULATIONS\n",
+ "S= m*(S1-S2)\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in entropy = 7.488 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate change in entropy\n",
+ "##initialisation of variables\n",
+ "S2= 5.8328 ##kJ/kg\n",
+ "S1= 5.8712 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "S= S2-S1\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('change in entropy = ',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy = -0.03840 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and change in entropy\n",
+ "##initialisation of variables\n",
+ "m= 0.1 ##kg\n",
+ "p= 3 ##bar\n",
+ "p1= 10 ##bar\n",
+ "h1= 2964.3 ##kJ/kg\n",
+ "v1=0.2378\n",
+ "s2= 7.1619 ##kJ/k\n",
+ "s1= 6.9641 ##kJ/k\n",
+ "##CALCULATIONS\n",
+ "h2= h1+(p-p1)*math.pow(10,5)*v1*math.pow(10,-3)\n",
+ "S= m*(s2-s1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%(' enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.5f %s'%('change in entropy =',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " enthalpy = 2797.8 kJ/kg\n",
+ "change in entropy = 0.01978 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate final pressure and change in entropy\n",
+ "import math\n",
+ "##initialisation of variables\n",
+ "p1= 5. ##bar\n",
+ "V1= 0.4 ##m^2\n",
+ "V2= 1.2 ##m^3\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 28.##gms\n",
+ "T1= 80.##C\n",
+ "##CALCULATIONS\n",
+ "p2= p1*(V1/V2)\n",
+ "S= R*math.log(V2/V1)/M\n",
+ "S1= S*p1*V1*100/((R/M)*(273.15+T1))\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' final pressure =',p2,'bar')\n",
+ "print'%s %.4f %s'% ('change in entropy =',S1,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " final pressure = 1.667 bar\n",
+ "change in entropy = 0.6222 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg 175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat and change in entropy of system and change in entropy of enironment\n",
+ "##initialisation of variables\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "T= 400. ##K\n",
+ "p2= 1.6 ##bar\n",
+ "p1= 1. ##bar\n",
+ "Tenvir= 300. ##K\n",
+ "##CALCULATIONS\n",
+ "q= R*T*math.log(p2/p1)/M\n",
+ "S= -R*math.log(p2/p1)/M\n",
+ "Senvir= q/Tenvir\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat =',q,'kJ/kg')\n",
+ "print'%s %.4f %s'%('change in entropy of system=',S,'kJ/kg K')\n",
+ "print'%s %.4f %s'%('change in entropy of environment=',Senvir,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat = 53.9 kJ/kg\n",
+ "change in entropy of system= -0.1347 kJ/kg K\n",
+ "change in entropy of environment= 0.1797 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8-pg176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m1= 5 ##kg\n",
+ "c1= 1.26 ##kJ/kg K\n",
+ "m2= 20 ##kg\n",
+ "c2= 4.19 ##kJ/kg K\n",
+ "T1= 95 ##C\n",
+ "T2= 25 ##C\n",
+ "##CALCULATIONS\n",
+ "T= (m1*c1*T1+m2*c2*T2)/(m1*c1+m2*c2)\n",
+ "S1= m1*c1*math.log((273.15+T)/(273.15+T1))\n",
+ "S2= m2*c2*math.log((273.15+T)/(273.15+T2))\n",
+ "S= S1+S2\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% (' change in entropy of billet =',S1,' kJ/K')\n",
+ "print'%s %.2f %s'% (' change in entropy of water= ',S2,' kJ/kg K')\n",
+ "print'%s %.2f %s'% (' change in entropy of water=',S,' kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " change in entropy of billet = -1.23 kJ/K\n",
+ " change in entropy of water= 1.36 kJ/kg K\n",
+ " change in entropy of water= 0.14 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter9-Applications_of_the_second_law_of_thermodynamics.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter9-Applications_of_the_second_law_of_thermodynamics.ipynb
new file mode 100755
index 00000000..f2acb74e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter9-Applications_of_the_second_law_of_thermodynamics.ipynb
@@ -0,0 +1,473 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:15fd1db156f91825255a086dbc12ea12cb6caac30db6feed49ee7e31d29fef8c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Applications of the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperatures and total entropy\n",
+ "##changeinitialisation of variables\n",
+ "p1= 3.##changeMpa\n",
+ "p2= 0.2 ##changeMpa\n",
+ "V1= 0.6 ##changem^3\n",
+ "V2= 1.##changem^3\n",
+ "M= 28. ##changegms\n",
+ "R= 8.314 ##changeJ/mol K\n",
+ "T= 400. ##changeC\n",
+ "T1= 150. ##changeC\n",
+ "k= 1.4\n",
+ "p3= 1.25 ##changeMpa\n",
+ "##changeCALCULATIONS\n",
+ "m1= p1*V1*10*10*10*M/(R*(273.15+T))\n",
+ "m2= p2*V2*10*10*10*M/(R*(273.15+T1))\n",
+ "p4= (p1*V1+p2*V2)/(V1+V2)\n",
+ "T2= (math.pow(p4/p1,k-1)/k)*(273.15+T)\n",
+ "m3= p3*V1*M*10*10*10/(R*T2)\n",
+ "dm= m1-m3\n",
+ "m4= m2+dm\n",
+ "T4= p3*10*10*10*V2/((R/M)*m4)\n",
+ "S= (R/M)*(m2*((k/(k-1))*math.log(T4/(273.15+T1))-math.log(p3/p2))+dm*((k/(k-1))*math.log(T4/(273.15+T))-math.log(p3/p1)))\n",
+ "##changeRESULTS\n",
+ "print'%s %.1f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final temperature =',T4,'K')\n",
+ "print'%s %.4f %s'%('Total entropy =',S,'KJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 338.8 K\n",
+ "final temperature = 1340.2 K\n",
+ "Total entropy = 2.5525 KJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the pump\n",
+ "##initialisation of variables\n",
+ "m= 10000 ##kg/h\n",
+ "P= 2.5 ##Mpa\n",
+ "P1= 100 ##kPa\n",
+ "v= 0.001003 ##m^3\n",
+ "##CALCULATIONS\n",
+ "W= -m*v*(P*10*10*10-P1)/3600\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' work of the pump =',W,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " work of the pump = -6.687 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 4. ##kg/s\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "k= 1.4\n",
+ "T1= 27. ##C\n",
+ "p2= 1800. ##kPa\n",
+ "p1= 105. ##kPa\n",
+ "n= 1.22\n",
+ "cp= 1.4 ##Jmol K\n",
+ "##CALCULATIONS\n",
+ "T2= (273.15+T1)*(p2/p1)**((n-1)/n)\n",
+ "W= m*k*(R/M)*((273.15+T1)/(k-1))*(1-(p2/p1)**((k-1)/k))\n",
+ "Q= -m*R*(273.15+T1)*math.log(p2/p1)/M\n",
+ "W1= m*(R/M)*n*((273.15+T1)/(n-1))*(1-(p2/p1)**((n-1)/n))\n",
+ "Q1= m*(R/M)*(n-k)*(T2-T1-273.15)/((n-1)*(k-1))\n",
+ "T3= (273.15+T1)*(p2/p1)**((k-1)/(2*k))\n",
+ "Q2= m*cp*(R/M)*(T1+273.15-T3)/(k-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat removed in adiabatic compression =',W,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in isothermal compression =',Q,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in polytropic process =',Q1,'kW')\n",
+ "print'%s %.2f %s'%('heat removed in adiabatic compression in two stages =',Q2,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat removed in adiabatic compression = -1508.5 kW\n",
+ "heat removed in isothermal compression = -978.1 kW\n",
+ "heat removed in polytropic process = -471.2 kW\n",
+ "heat removed in adiabatic compression in two stages = -603.21 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "h1= 3422.25 ##kJ/kg\n",
+ "m= 8. ##kg/s\n",
+ "s2= 7.3755 ##kJ/kg K\n",
+ "s1= 6.8803 ##kJ/kg K\n",
+ "e= 0.8\n",
+ "h2s= 2496.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+e*(h2s-h1)\n",
+ "W= m*(h1-h2)\n",
+ "S= s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Enthalpy =',W,'kW')\n",
+ "print'%s %.4f %s'% ('Entropy =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = 5922.9 kW\n",
+ "Entropy = 0.4952 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "calculate volume flow rate into composser and volume flow rate out composser and heat and work \n",
+ "##initialisation of variables\n",
+ "m= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "T= 200 ##C\n",
+ "s2= 5.8041 ##kJ/kg K\n",
+ "s1= 7.5066 ##kJ/kg K\n",
+ "h1= 2328.1 ##kJ/kg\n",
+ "h2= 2654.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m*(273.15+T)*(s2-s1)\n",
+ "W= Q-m*(h1-h2)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('volume flow rate into composser =',V1,'m^3')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kJ')\n",
+ "print'%s %.1f %s'%(' Work =',W,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3\n",
+ "volume flow rate out of composser = 0.0216 m^3\n",
+ "Heat = -161.1 kJ\n",
+ " Work = -95.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume flow rate out and into the composser and work and heat\n",
+ "##initialisation of variables\n",
+ "m1= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "P= 200 ##kPa\n",
+ "T= 200 ##C\n",
+ "s1= 5.8041 ##kJ.kg K\n",
+ "s2= 7.5066 ##kJ/kg K\n",
+ "h1= 2870.5 ##kJ/kg\n",
+ "h2= 2495.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m1*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m1*(273.15+T)*(s1-s2)\n",
+ "W= m1*((h1-h2)-(273.15+T)*(s2-s1))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('volume flow rate into composser =',V1,'m^3/s')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3/s') \n",
+ "print'%s %.1f %s'%('Work =',W,'kW')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3/s\n",
+ "volume flow rate out of composser = 0.0216 m^3/s\n",
+ "Work = -86.2 kW\n",
+ "Heat = -161.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of transfer\n",
+ "##initialisation of variables\n",
+ "e= 0.82\n",
+ "m= 5 ##kg/s\n",
+ "T3= 450 ##C\n",
+ "T1= 200 ##C\n",
+ "##CALCULATIONS\n",
+ "Q= e*m*1.0035*(T3-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of transfer =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of transfer = 1028.6 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 174.076 ##kJ/kg\n",
+ "h3= 74.527 ##kJ/kg\n",
+ "h4= 8.854 ##kJ/kg\n",
+ "m= 0.8 ##kg\n",
+ "e= 0.85\n",
+ "##CALCULATIONS\n",
+ "h2= h1+h3-h4\n",
+ "Q= m*(h2-h1-23)\n",
+ "Q1= e*Q\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Heat =',Q,'kW')\n",
+ "print'%s %.2f %s'%('Heat =',Q1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat = 34.14 kW\n",
+ "Heat = 29.02 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "W= 2000. ##kW\n",
+ "m= 2. ##kg/s\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "s2= 5.6106 ##kJ/kg K\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h2= h1-(W/m)\n",
+ "S=s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 2023.5 kJ/kg\n",
+ "entropy change = -1.1558 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "m1= 1 ##kg\n",
+ "h1= 2967.6 ##kJ/kg\n",
+ "h2= 83.96 ##kJ/kg\n",
+ "m2= 10\n",
+ "s1= 7.5166 ##kJ/kg K\n",
+ "s2= 0.2966 ##kJ/kg K\n",
+ "s3= 1.1654 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h3= (m1*h1+m2*h2)/(m1+m2)\n",
+ "S= -m1*s1-m2*s2+(m1+m2)*s3\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h3,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 346.1 kJ/kg\n",
+ "entropy change = 2.3368 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter9.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter9.ipynb
new file mode 100755
index 00000000..f2acb74e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter9.ipynb
@@ -0,0 +1,473 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:15fd1db156f91825255a086dbc12ea12cb6caac30db6feed49ee7e31d29fef8c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Applications of the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperatures and total entropy\n",
+ "##changeinitialisation of variables\n",
+ "p1= 3.##changeMpa\n",
+ "p2= 0.2 ##changeMpa\n",
+ "V1= 0.6 ##changem^3\n",
+ "V2= 1.##changem^3\n",
+ "M= 28. ##changegms\n",
+ "R= 8.314 ##changeJ/mol K\n",
+ "T= 400. ##changeC\n",
+ "T1= 150. ##changeC\n",
+ "k= 1.4\n",
+ "p3= 1.25 ##changeMpa\n",
+ "##changeCALCULATIONS\n",
+ "m1= p1*V1*10*10*10*M/(R*(273.15+T))\n",
+ "m2= p2*V2*10*10*10*M/(R*(273.15+T1))\n",
+ "p4= (p1*V1+p2*V2)/(V1+V2)\n",
+ "T2= (math.pow(p4/p1,k-1)/k)*(273.15+T)\n",
+ "m3= p3*V1*M*10*10*10/(R*T2)\n",
+ "dm= m1-m3\n",
+ "m4= m2+dm\n",
+ "T4= p3*10*10*10*V2/((R/M)*m4)\n",
+ "S= (R/M)*(m2*((k/(k-1))*math.log(T4/(273.15+T1))-math.log(p3/p2))+dm*((k/(k-1))*math.log(T4/(273.15+T))-math.log(p3/p1)))\n",
+ "##changeRESULTS\n",
+ "print'%s %.1f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final temperature =',T4,'K')\n",
+ "print'%s %.4f %s'%('Total entropy =',S,'KJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 338.8 K\n",
+ "final temperature = 1340.2 K\n",
+ "Total entropy = 2.5525 KJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the pump\n",
+ "##initialisation of variables\n",
+ "m= 10000 ##kg/h\n",
+ "P= 2.5 ##Mpa\n",
+ "P1= 100 ##kPa\n",
+ "v= 0.001003 ##m^3\n",
+ "##CALCULATIONS\n",
+ "W= -m*v*(P*10*10*10-P1)/3600\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' work of the pump =',W,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " work of the pump = -6.687 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 4. ##kg/s\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "k= 1.4\n",
+ "T1= 27. ##C\n",
+ "p2= 1800. ##kPa\n",
+ "p1= 105. ##kPa\n",
+ "n= 1.22\n",
+ "cp= 1.4 ##Jmol K\n",
+ "##CALCULATIONS\n",
+ "T2= (273.15+T1)*(p2/p1)**((n-1)/n)\n",
+ "W= m*k*(R/M)*((273.15+T1)/(k-1))*(1-(p2/p1)**((k-1)/k))\n",
+ "Q= -m*R*(273.15+T1)*math.log(p2/p1)/M\n",
+ "W1= m*(R/M)*n*((273.15+T1)/(n-1))*(1-(p2/p1)**((n-1)/n))\n",
+ "Q1= m*(R/M)*(n-k)*(T2-T1-273.15)/((n-1)*(k-1))\n",
+ "T3= (273.15+T1)*(p2/p1)**((k-1)/(2*k))\n",
+ "Q2= m*cp*(R/M)*(T1+273.15-T3)/(k-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat removed in adiabatic compression =',W,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in isothermal compression =',Q,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in polytropic process =',Q1,'kW')\n",
+ "print'%s %.2f %s'%('heat removed in adiabatic compression in two stages =',Q2,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat removed in adiabatic compression = -1508.5 kW\n",
+ "heat removed in isothermal compression = -978.1 kW\n",
+ "heat removed in polytropic process = -471.2 kW\n",
+ "heat removed in adiabatic compression in two stages = -603.21 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "h1= 3422.25 ##kJ/kg\n",
+ "m= 8. ##kg/s\n",
+ "s2= 7.3755 ##kJ/kg K\n",
+ "s1= 6.8803 ##kJ/kg K\n",
+ "e= 0.8\n",
+ "h2s= 2496.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+e*(h2s-h1)\n",
+ "W= m*(h1-h2)\n",
+ "S= s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Enthalpy =',W,'kW')\n",
+ "print'%s %.4f %s'% ('Entropy =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = 5922.9 kW\n",
+ "Entropy = 0.4952 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "calculate volume flow rate into composser and volume flow rate out composser and heat and work \n",
+ "##initialisation of variables\n",
+ "m= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "T= 200 ##C\n",
+ "s2= 5.8041 ##kJ/kg K\n",
+ "s1= 7.5066 ##kJ/kg K\n",
+ "h1= 2328.1 ##kJ/kg\n",
+ "h2= 2654.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m*(273.15+T)*(s2-s1)\n",
+ "W= Q-m*(h1-h2)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('volume flow rate into composser =',V1,'m^3')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kJ')\n",
+ "print'%s %.1f %s'%(' Work =',W,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3\n",
+ "volume flow rate out of composser = 0.0216 m^3\n",
+ "Heat = -161.1 kJ\n",
+ " Work = -95.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume flow rate out and into the composser and work and heat\n",
+ "##initialisation of variables\n",
+ "m1= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "P= 200 ##kPa\n",
+ "T= 200 ##C\n",
+ "s1= 5.8041 ##kJ.kg K\n",
+ "s2= 7.5066 ##kJ/kg K\n",
+ "h1= 2870.5 ##kJ/kg\n",
+ "h2= 2495.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m1*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m1*(273.15+T)*(s1-s2)\n",
+ "W= m1*((h1-h2)-(273.15+T)*(s2-s1))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('volume flow rate into composser =',V1,'m^3/s')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3/s') \n",
+ "print'%s %.1f %s'%('Work =',W,'kW')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3/s\n",
+ "volume flow rate out of composser = 0.0216 m^3/s\n",
+ "Work = -86.2 kW\n",
+ "Heat = -161.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of transfer\n",
+ "##initialisation of variables\n",
+ "e= 0.82\n",
+ "m= 5 ##kg/s\n",
+ "T3= 450 ##C\n",
+ "T1= 200 ##C\n",
+ "##CALCULATIONS\n",
+ "Q= e*m*1.0035*(T3-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of transfer =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of transfer = 1028.6 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 174.076 ##kJ/kg\n",
+ "h3= 74.527 ##kJ/kg\n",
+ "h4= 8.854 ##kJ/kg\n",
+ "m= 0.8 ##kg\n",
+ "e= 0.85\n",
+ "##CALCULATIONS\n",
+ "h2= h1+h3-h4\n",
+ "Q= m*(h2-h1-23)\n",
+ "Q1= e*Q\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Heat =',Q,'kW')\n",
+ "print'%s %.2f %s'%('Heat =',Q1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat = 34.14 kW\n",
+ "Heat = 29.02 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "W= 2000. ##kW\n",
+ "m= 2. ##kg/s\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "s2= 5.6106 ##kJ/kg K\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h2= h1-(W/m)\n",
+ "S=s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 2023.5 kJ/kg\n",
+ "entropy change = -1.1558 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "m1= 1 ##kg\n",
+ "h1= 2967.6 ##kJ/kg\n",
+ "h2= 83.96 ##kJ/kg\n",
+ "m2= 10\n",
+ "s1= 7.5166 ##kJ/kg K\n",
+ "s2= 0.2966 ##kJ/kg K\n",
+ "s3= 1.1654 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h3= (m1*h1+m2*h2)/(m1+m2)\n",
+ "S= -m1*s1-m2*s2+(m1+m2)*s3\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h3,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 346.1 kJ/kg\n",
+ "entropy change = 2.3368 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter9_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter9_1.ipynb
new file mode 100755
index 00000000..f2acb74e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter9_1.ipynb
@@ -0,0 +1,473 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:15fd1db156f91825255a086dbc12ea12cb6caac30db6feed49ee7e31d29fef8c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Applications of the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperatures and total entropy\n",
+ "##changeinitialisation of variables\n",
+ "p1= 3.##changeMpa\n",
+ "p2= 0.2 ##changeMpa\n",
+ "V1= 0.6 ##changem^3\n",
+ "V2= 1.##changem^3\n",
+ "M= 28. ##changegms\n",
+ "R= 8.314 ##changeJ/mol K\n",
+ "T= 400. ##changeC\n",
+ "T1= 150. ##changeC\n",
+ "k= 1.4\n",
+ "p3= 1.25 ##changeMpa\n",
+ "##changeCALCULATIONS\n",
+ "m1= p1*V1*10*10*10*M/(R*(273.15+T))\n",
+ "m2= p2*V2*10*10*10*M/(R*(273.15+T1))\n",
+ "p4= (p1*V1+p2*V2)/(V1+V2)\n",
+ "T2= (math.pow(p4/p1,k-1)/k)*(273.15+T)\n",
+ "m3= p3*V1*M*10*10*10/(R*T2)\n",
+ "dm= m1-m3\n",
+ "m4= m2+dm\n",
+ "T4= p3*10*10*10*V2/((R/M)*m4)\n",
+ "S= (R/M)*(m2*((k/(k-1))*math.log(T4/(273.15+T1))-math.log(p3/p2))+dm*((k/(k-1))*math.log(T4/(273.15+T))-math.log(p3/p1)))\n",
+ "##changeRESULTS\n",
+ "print'%s %.1f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final temperature =',T4,'K')\n",
+ "print'%s %.4f %s'%('Total entropy =',S,'KJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 338.8 K\n",
+ "final temperature = 1340.2 K\n",
+ "Total entropy = 2.5525 KJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the pump\n",
+ "##initialisation of variables\n",
+ "m= 10000 ##kg/h\n",
+ "P= 2.5 ##Mpa\n",
+ "P1= 100 ##kPa\n",
+ "v= 0.001003 ##m^3\n",
+ "##CALCULATIONS\n",
+ "W= -m*v*(P*10*10*10-P1)/3600\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' work of the pump =',W,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " work of the pump = -6.687 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 4. ##kg/s\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "k= 1.4\n",
+ "T1= 27. ##C\n",
+ "p2= 1800. ##kPa\n",
+ "p1= 105. ##kPa\n",
+ "n= 1.22\n",
+ "cp= 1.4 ##Jmol K\n",
+ "##CALCULATIONS\n",
+ "T2= (273.15+T1)*(p2/p1)**((n-1)/n)\n",
+ "W= m*k*(R/M)*((273.15+T1)/(k-1))*(1-(p2/p1)**((k-1)/k))\n",
+ "Q= -m*R*(273.15+T1)*math.log(p2/p1)/M\n",
+ "W1= m*(R/M)*n*((273.15+T1)/(n-1))*(1-(p2/p1)**((n-1)/n))\n",
+ "Q1= m*(R/M)*(n-k)*(T2-T1-273.15)/((n-1)*(k-1))\n",
+ "T3= (273.15+T1)*(p2/p1)**((k-1)/(2*k))\n",
+ "Q2= m*cp*(R/M)*(T1+273.15-T3)/(k-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat removed in adiabatic compression =',W,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in isothermal compression =',Q,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in polytropic process =',Q1,'kW')\n",
+ "print'%s %.2f %s'%('heat removed in adiabatic compression in two stages =',Q2,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat removed in adiabatic compression = -1508.5 kW\n",
+ "heat removed in isothermal compression = -978.1 kW\n",
+ "heat removed in polytropic process = -471.2 kW\n",
+ "heat removed in adiabatic compression in two stages = -603.21 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "h1= 3422.25 ##kJ/kg\n",
+ "m= 8. ##kg/s\n",
+ "s2= 7.3755 ##kJ/kg K\n",
+ "s1= 6.8803 ##kJ/kg K\n",
+ "e= 0.8\n",
+ "h2s= 2496.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+e*(h2s-h1)\n",
+ "W= m*(h1-h2)\n",
+ "S= s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Enthalpy =',W,'kW')\n",
+ "print'%s %.4f %s'% ('Entropy =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = 5922.9 kW\n",
+ "Entropy = 0.4952 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "calculate volume flow rate into composser and volume flow rate out composser and heat and work \n",
+ "##initialisation of variables\n",
+ "m= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "T= 200 ##C\n",
+ "s2= 5.8041 ##kJ/kg K\n",
+ "s1= 7.5066 ##kJ/kg K\n",
+ "h1= 2328.1 ##kJ/kg\n",
+ "h2= 2654.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m*(273.15+T)*(s2-s1)\n",
+ "W= Q-m*(h1-h2)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('volume flow rate into composser =',V1,'m^3')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kJ')\n",
+ "print'%s %.1f %s'%(' Work =',W,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3\n",
+ "volume flow rate out of composser = 0.0216 m^3\n",
+ "Heat = -161.1 kJ\n",
+ " Work = -95.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume flow rate out and into the composser and work and heat\n",
+ "##initialisation of variables\n",
+ "m1= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "P= 200 ##kPa\n",
+ "T= 200 ##C\n",
+ "s1= 5.8041 ##kJ.kg K\n",
+ "s2= 7.5066 ##kJ/kg K\n",
+ "h1= 2870.5 ##kJ/kg\n",
+ "h2= 2495.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m1*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m1*(273.15+T)*(s1-s2)\n",
+ "W= m1*((h1-h2)-(273.15+T)*(s2-s1))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('volume flow rate into composser =',V1,'m^3/s')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3/s') \n",
+ "print'%s %.1f %s'%('Work =',W,'kW')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3/s\n",
+ "volume flow rate out of composser = 0.0216 m^3/s\n",
+ "Work = -86.2 kW\n",
+ "Heat = -161.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of transfer\n",
+ "##initialisation of variables\n",
+ "e= 0.82\n",
+ "m= 5 ##kg/s\n",
+ "T3= 450 ##C\n",
+ "T1= 200 ##C\n",
+ "##CALCULATIONS\n",
+ "Q= e*m*1.0035*(T3-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of transfer =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of transfer = 1028.6 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 174.076 ##kJ/kg\n",
+ "h3= 74.527 ##kJ/kg\n",
+ "h4= 8.854 ##kJ/kg\n",
+ "m= 0.8 ##kg\n",
+ "e= 0.85\n",
+ "##CALCULATIONS\n",
+ "h2= h1+h3-h4\n",
+ "Q= m*(h2-h1-23)\n",
+ "Q1= e*Q\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Heat =',Q,'kW')\n",
+ "print'%s %.2f %s'%('Heat =',Q1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat = 34.14 kW\n",
+ "Heat = 29.02 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "W= 2000. ##kW\n",
+ "m= 2. ##kg/s\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "s2= 5.6106 ##kJ/kg K\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h2= h1-(W/m)\n",
+ "S=s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 2023.5 kJ/kg\n",
+ "entropy change = -1.1558 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "m1= 1 ##kg\n",
+ "h1= 2967.6 ##kJ/kg\n",
+ "h2= 83.96 ##kJ/kg\n",
+ "m2= 10\n",
+ "s1= 7.5166 ##kJ/kg K\n",
+ "s2= 0.2966 ##kJ/kg K\n",
+ "s3= 1.1654 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h3= (m1*h1+m2*h2)/(m1+m2)\n",
+ "S= -m1*s1-m2*s2+(m1+m2)*s3\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h3,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 346.1 kJ/kg\n",
+ "entropy change = 2.3368 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter9_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter9_2.ipynb
new file mode 100755
index 00000000..f2acb74e
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter9_2.ipynb
@@ -0,0 +1,473 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:15fd1db156f91825255a086dbc12ea12cb6caac30db6feed49ee7e31d29fef8c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Applications of the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperatures and total entropy\n",
+ "##changeinitialisation of variables\n",
+ "p1= 3.##changeMpa\n",
+ "p2= 0.2 ##changeMpa\n",
+ "V1= 0.6 ##changem^3\n",
+ "V2= 1.##changem^3\n",
+ "M= 28. ##changegms\n",
+ "R= 8.314 ##changeJ/mol K\n",
+ "T= 400. ##changeC\n",
+ "T1= 150. ##changeC\n",
+ "k= 1.4\n",
+ "p3= 1.25 ##changeMpa\n",
+ "##changeCALCULATIONS\n",
+ "m1= p1*V1*10*10*10*M/(R*(273.15+T))\n",
+ "m2= p2*V2*10*10*10*M/(R*(273.15+T1))\n",
+ "p4= (p1*V1+p2*V2)/(V1+V2)\n",
+ "T2= (math.pow(p4/p1,k-1)/k)*(273.15+T)\n",
+ "m3= p3*V1*M*10*10*10/(R*T2)\n",
+ "dm= m1-m3\n",
+ "m4= m2+dm\n",
+ "T4= p3*10*10*10*V2/((R/M)*m4)\n",
+ "S= (R/M)*(m2*((k/(k-1))*math.log(T4/(273.15+T1))-math.log(p3/p2))+dm*((k/(k-1))*math.log(T4/(273.15+T))-math.log(p3/p1)))\n",
+ "##changeRESULTS\n",
+ "print'%s %.1f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final temperature =',T4,'K')\n",
+ "print'%s %.4f %s'%('Total entropy =',S,'KJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 338.8 K\n",
+ "final temperature = 1340.2 K\n",
+ "Total entropy = 2.5525 KJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the pump\n",
+ "##initialisation of variables\n",
+ "m= 10000 ##kg/h\n",
+ "P= 2.5 ##Mpa\n",
+ "P1= 100 ##kPa\n",
+ "v= 0.001003 ##m^3\n",
+ "##CALCULATIONS\n",
+ "W= -m*v*(P*10*10*10-P1)/3600\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' work of the pump =',W,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " work of the pump = -6.687 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 158"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 4. ##kg/s\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "k= 1.4\n",
+ "T1= 27. ##C\n",
+ "p2= 1800. ##kPa\n",
+ "p1= 105. ##kPa\n",
+ "n= 1.22\n",
+ "cp= 1.4 ##Jmol K\n",
+ "##CALCULATIONS\n",
+ "T2= (273.15+T1)*(p2/p1)**((n-1)/n)\n",
+ "W= m*k*(R/M)*((273.15+T1)/(k-1))*(1-(p2/p1)**((k-1)/k))\n",
+ "Q= -m*R*(273.15+T1)*math.log(p2/p1)/M\n",
+ "W1= m*(R/M)*n*((273.15+T1)/(n-1))*(1-(p2/p1)**((n-1)/n))\n",
+ "Q1= m*(R/M)*(n-k)*(T2-T1-273.15)/((n-1)*(k-1))\n",
+ "T3= (273.15+T1)*(p2/p1)**((k-1)/(2*k))\n",
+ "Q2= m*cp*(R/M)*(T1+273.15-T3)/(k-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat removed in adiabatic compression =',W,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in isothermal compression =',Q,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in polytropic process =',Q1,'kW')\n",
+ "print'%s %.2f %s'%('heat removed in adiabatic compression in two stages =',Q2,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat removed in adiabatic compression = -1508.5 kW\n",
+ "heat removed in isothermal compression = -978.1 kW\n",
+ "heat removed in polytropic process = -471.2 kW\n",
+ "heat removed in adiabatic compression in two stages = -603.21 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "h1= 3422.25 ##kJ/kg\n",
+ "m= 8. ##kg/s\n",
+ "s2= 7.3755 ##kJ/kg K\n",
+ "s1= 6.8803 ##kJ/kg K\n",
+ "e= 0.8\n",
+ "h2s= 2496.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+e*(h2s-h1)\n",
+ "W= m*(h1-h2)\n",
+ "S= s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Enthalpy =',W,'kW')\n",
+ "print'%s %.4f %s'% ('Entropy =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = 5922.9 kW\n",
+ "Entropy = 0.4952 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "calculate volume flow rate into composser and volume flow rate out composser and heat and work \n",
+ "##initialisation of variables\n",
+ "m= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "T= 200 ##C\n",
+ "s2= 5.8041 ##kJ/kg K\n",
+ "s1= 7.5066 ##kJ/kg K\n",
+ "h1= 2328.1 ##kJ/kg\n",
+ "h2= 2654.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m*(273.15+T)*(s2-s1)\n",
+ "W= Q-m*(h1-h2)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('volume flow rate into composser =',V1,'m^3')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kJ')\n",
+ "print'%s %.1f %s'%(' Work =',W,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3\n",
+ "volume flow rate out of composser = 0.0216 m^3\n",
+ "Heat = -161.1 kJ\n",
+ " Work = -95.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume flow rate out and into the composser and work and heat\n",
+ "##initialisation of variables\n",
+ "m1= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "P= 200 ##kPa\n",
+ "T= 200 ##C\n",
+ "s1= 5.8041 ##kJ.kg K\n",
+ "s2= 7.5066 ##kJ/kg K\n",
+ "h1= 2870.5 ##kJ/kg\n",
+ "h2= 2495.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m1*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m1*(273.15+T)*(s1-s2)\n",
+ "W= m1*((h1-h2)-(273.15+T)*(s2-s1))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('volume flow rate into composser =',V1,'m^3/s')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3/s') \n",
+ "print'%s %.1f %s'%('Work =',W,'kW')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3/s\n",
+ "volume flow rate out of composser = 0.0216 m^3/s\n",
+ "Work = -86.2 kW\n",
+ "Heat = -161.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of transfer\n",
+ "##initialisation of variables\n",
+ "e= 0.82\n",
+ "m= 5 ##kg/s\n",
+ "T3= 450 ##C\n",
+ "T1= 200 ##C\n",
+ "##CALCULATIONS\n",
+ "Q= e*m*1.0035*(T3-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of transfer =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of transfer = 1028.6 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 174.076 ##kJ/kg\n",
+ "h3= 74.527 ##kJ/kg\n",
+ "h4= 8.854 ##kJ/kg\n",
+ "m= 0.8 ##kg\n",
+ "e= 0.85\n",
+ "##CALCULATIONS\n",
+ "h2= h1+h3-h4\n",
+ "Q= m*(h2-h1-23)\n",
+ "Q1= e*Q\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Heat =',Q,'kW')\n",
+ "print'%s %.2f %s'%('Heat =',Q1,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat = 34.14 kW\n",
+ "Heat = 29.02 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "W= 2000. ##kW\n",
+ "m= 2. ##kg/s\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "s2= 5.6106 ##kJ/kg K\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h2= h1-(W/m)\n",
+ "S=s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 2023.5 kJ/kg\n",
+ "entropy change = -1.1558 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "m1= 1 ##kg\n",
+ "h1= 2967.6 ##kJ/kg\n",
+ "h2= 83.96 ##kJ/kg\n",
+ "m2= 10\n",
+ "s1= 7.5166 ##kJ/kg K\n",
+ "s2= 0.2966 ##kJ/kg K\n",
+ "s3= 1.1654 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h3= (m1*h1+m2*h2)/(m1+m2)\n",
+ "S= -m1*s1-m2*s2+(m1+m2)*s3\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h3,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 346.1 kJ/kg\n",
+ "entropy change = 2.3368 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter9_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter9_3.ipynb
new file mode 100755
index 00000000..691462ca
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter9_3.ipynb
@@ -0,0 +1,475 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6d140b39334d6849c83f7e8a1c4ba8d4542274675b397290c6ad476b147314bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-Applications of the second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperatures and total entropy\n",
+ "##changeinitialisation of variables\n",
+ "p1= 3.##changeMpa\n",
+ "p2= 0.2 ##changeMpa\n",
+ "V1= 0.6 ##changem^3\n",
+ "V2= 1.##changem^3\n",
+ "M= 28. ##changegms\n",
+ "R= 8.314 ##changeJ/mol K\n",
+ "T= 400. ##changeC\n",
+ "T1= 150. ##changeC\n",
+ "k= 1.4\n",
+ "p3= 1.25 ##changeMpa\n",
+ "##changeCALCULATIONS\n",
+ "m1= p1*V1*10.*10.*10.*M/(R*(273.15+T))\n",
+ "m2= p2*V2*10.*10.*10.*M/(R*(273.15+T1))\n",
+ "p4= (p1*V1+p2*V2)/(V1+V2)\n",
+ "T2= (math.pow(p4/p1,k-1.)/k)*(273.15+T)\n",
+ "m3= p3*V1*M*10.*10.*10./(R*T2)\n",
+ "dm= m1-m3\n",
+ "m4= m2+dm\n",
+ "T4= p3*10.*10.*10.*V2/((R/M)*m4)\n",
+ "S= (R/M)*(m2*((k/(k-1.))*math.log(T4/(273.15+T1))-math.log(p3/p2))+dm*((k/(k-1.))*math.log(T4/(273.15+T))-math.log(p3/p1)))\n",
+ "##changeRESULTS\n",
+ "print'%s %.1f %s'%('final temperature =',T2,'K')\n",
+ "print'%s %.1f %s'%('final temperature =',T4,'K')\n",
+ "print'%s %.4f %s'%('Total entropy =',S,'KJ/K')\n",
+ "#ans is not matching because round of error "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature = 338.8 K\n",
+ "final temperature = 1340.2 K\n",
+ "Total entropy = 2.5525 KJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work of the pump\n",
+ "##initialisation of variables\n",
+ "m= 10000 ##kg/h\n",
+ "P= 2.5 ##Mpa\n",
+ "P1= 100 ##kPa\n",
+ "v= 0.001003 ##m^3\n",
+ "##CALCULATIONS\n",
+ "W= -m*v*(P*10*10*10-P1)/3600\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%(' work of the pump =',W,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " work of the pump = -6.687 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 4. ##kg/s\n",
+ "R= 8.314 ##J/mol K\n",
+ "M= 29. ##gms\n",
+ "k= 1.4\n",
+ "T1= 27. ##C\n",
+ "p2= 1800. ##kPa\n",
+ "p1= 105. ##kPa\n",
+ "n= 1.22\n",
+ "cp= 1.4 ##Jmol K\n",
+ "##CALCULATIONS\n",
+ "T2= (273.15+T1)*(p2/p1)**((n-1)/n)\n",
+ "W= m*k*(R/M)*((273.15+T1)/(k-1))*(1-(p2/p1)**((k-1)/k))\n",
+ "Q= -m*R*(273.15+T1)*math.log(p2/p1)/M\n",
+ "W1= m*(R/M)*n*((273.15+T1)/(n-1))*(1-(p2/p1)**((n-1)/n))\n",
+ "Q1= m*(R/M)*(n-k)*(T2-T1-273.15)/((n-1)*(k-1))\n",
+ "T3= (273.15+T1)*(p2/p1)**((k-1)/(2*k))\n",
+ "Q2= m*cp*(R/M)*(T1+273.15-T3)/(k-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('heat removed in adiabatic compression =',W,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in isothermal compression =',Q,'kW')\n",
+ "print'%s %.1f %s'%('heat removed in polytropic process =',Q1,'kW')\n",
+ "print'%s %.2f %s'%('heat removed in adiabatic compression in two stages =',Q2,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat removed in adiabatic compression = -1508.5 kW\n",
+ "heat removed in isothermal compression = -978.1 kW\n",
+ "heat removed in polytropic process = -471.2 kW\n",
+ "heat removed in adiabatic compression in two stages = -603.21 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "h1= 3422.25 ##kJ/kg\n",
+ "m= 8. ##kg/s\n",
+ "s2= 7.3755 ##kJ/kg K\n",
+ "s1= 6.8803 ##kJ/kg K\n",
+ "e= 0.8\n",
+ "h2s= 2496.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "h2= h1+e*(h2s-h1)\n",
+ "W= m*(h1-h2)\n",
+ "S= s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('Enthalpy =',W,'kW')\n",
+ "print'%s %.4f %s'% ('Entropy =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = 5922.9 kW\n",
+ "Entropy = 0.4952 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "calculate volume flow rate into composser and volume flow rate out composser and heat and work \n",
+ "##initialisation of variables\n",
+ "m= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "T= 200 ##C\n",
+ "s2= 5.8041 ##kJ/kg K\n",
+ "s1= 7.5066 ##kJ/kg K\n",
+ "h1= 2328.1 ##kJ/kg\n",
+ "h2= 2654.4 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m*(273.15+T)*(s2-s1)\n",
+ "W= Q-m*(h1-h2)\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'%('volume flow rate into composser =',V1,'m^3')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kJ')\n",
+ "print'%s %.1f %s'%(' Work =',W,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3\n",
+ "volume flow rate out of composser = 0.0216 m^3\n",
+ "Heat = -161.1 kJ\n",
+ " Work = -95.8 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate volume flow rate out and into the composser and work and heat\n",
+ "##initialisation of variables\n",
+ "m1= 0.2 ##kg/s\n",
+ "v1= 1.0803 ##m^3/kg\n",
+ "P= 200 ##kPa\n",
+ "T= 200 ##C\n",
+ "s1= 5.8041 ##kJ.kg K\n",
+ "s2= 7.5066 ##kJ/kg K\n",
+ "h1= 2870.5 ##kJ/kg\n",
+ "h2= 2495.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "V1= m1*v1\n",
+ "V2= 0.1*V1\n",
+ "Q= m1*(273.15+T)*(s1-s2)\n",
+ "W= m1*((h1-h2)-(273.15+T)*(s2-s1))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('volume flow rate into composser =',V1,'m^3/s')\n",
+ "print'%s %.4f %s'%('volume flow rate out of composser =',V2,'m^3/s') \n",
+ "print'%s %.1f %s'%('Work =',W,'kW')\n",
+ "print'%s %.1f %s'%('Heat =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume flow rate into composser = 0.2161 m^3/s\n",
+ "volume flow rate out of composser = 0.0216 m^3/s\n",
+ "Work = -86.2 kW\n",
+ "Heat = -161.1 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg213"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate rate of transfer\n",
+ "##initialisation of variables\n",
+ "e= 0.82\n",
+ "m= 5 ##kg/s\n",
+ "T3= 450 ##C\n",
+ "T1= 200 ##C\n",
+ "##CALCULATIONS\n",
+ "Q= e*m*1.0035*(T3-T1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('rate of transfer =',Q,'kW')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of transfer = 1028.6 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate heat at given enthalpy\n",
+ "##initialisation of variables\n",
+ "h1= 174.076 ##kJ/kg\n",
+ "h3= 74.527 ##kJ/kg\n",
+ "h4= 8.854 ##kJ/kg\n",
+ "m= 0.8 ##kg\n",
+ "e= 0.85\n",
+ "##CALCULATIONS\n",
+ "h2= h1+h3-h4\n",
+ "Q= m*(h2-h1-23)\n",
+ "Q1= e*Q\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('Heat =',Q,'kW')\n",
+ "print'%s %.2f %s'%('Heat =',Q1,'kW')\n",
+ "#round of error\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat = 34.14 kW\n",
+ "Heat = 29.02 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example9-pg 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "W= 2000. ##kW\n",
+ "m= 2. ##kg/s\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "s2= 5.6106 ##kJ/kg K\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h2= h1-(W/m)\n",
+ "S=s2-s1\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h2,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 2023.5 kJ/kg\n",
+ "entropy change = -1.1558 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example10-pg 215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate enthalpy and entropy change\n",
+ "##initialisation of variables\n",
+ "m1= 1 ##kg\n",
+ "h1= 2967.6 ##kJ/kg\n",
+ "h2= 83.96 ##kJ/kg\n",
+ "m2= 10\n",
+ "s1= 7.5166 ##kJ/kg K\n",
+ "s2= 0.2966 ##kJ/kg K\n",
+ "s3= 1.1654 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "h3= (m1*h1+m2*h2)/(m1+m2)\n",
+ "S= -m1*s1-m2*s2+(m1+m2)*s3\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('enthalpy =',h3,'kJ/kg')\n",
+ "print'%s %.4f %s'%('entropy change =',S,'kJ/kg K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy = 346.1 kJ/kg\n",
+ "entropy change = 2.3368 kJ/kg K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2.ipynb
new file mode 100755
index 00000000..1b242151
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2df70ea24eb675b5df88544238cda98c7d9d4538b630227696b56b410ea0e81e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Work"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts_.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts_.ipynb
new file mode 100755
index 00000000..a9cf01c8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts_.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c445f39e7878cf61ffc763516de39900f14df501737d9a8da58454f14557359b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__1.ipynb
new file mode 100755
index 00000000..a9cf01c8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__1.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c445f39e7878cf61ffc763516de39900f14df501737d9a8da58454f14557359b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__2.ipynb
new file mode 100755
index 00000000..a9cf01c8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__2.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c445f39e7878cf61ffc763516de39900f14df501737d9a8da58454f14557359b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__3.ipynb
new file mode 100755
index 00000000..a9cf01c8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_-Basic_concepts__3.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c445f39e7878cf61ffc763516de39900f14df501737d9a8da58454f14557359b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_1.ipynb
new file mode 100755
index 00000000..a9cf01c8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_1.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c445f39e7878cf61ffc763516de39900f14df501737d9a8da58454f14557359b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_2.ipynb
new file mode 100755
index 00000000..a9cf01c8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_2.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c445f39e7878cf61ffc763516de39900f14df501737d9a8da58454f14557359b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_2_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_2_3.ipynb
new file mode 100755
index 00000000..c8ea771b
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_2_3.ipynb
@@ -0,0 +1,69 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:882feb469ab957881db3b5f222288d33682abe4b2aecf80e0e5d8c61ca30e228"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 - Basic concepts "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 pg 11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the mass of oxygen and density of oxygen and specific volume and molar specific volume\n",
+ "##initialisation of variables\n",
+ "n= 0.25 ## k mol\n",
+ "M= 32 ##kg/kmol\n",
+ "V= 0.5 ##m^3\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "d= m/V\n",
+ "v= 1/d\n",
+ "v1= V/n\n",
+ "##RESULTS\n",
+ "print'%s %.0f %s'%(\"mass of oxygen=\",m,'kg')\n",
+ "print'%s %.0f %s'%(\"density of oxygen=\",d,'kg/m^3')\n",
+ "print'%s %.4f %s'%('specific volume=',v,'kg/m^3')\n",
+ "print'%s %.0f %s'%('molar specific volume=',v1,'m^3/kmol')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of oxygen= 8 kg\n",
+ "density of oxygen= 16 kg/m^3\n",
+ "specific volume= 0.0625 kg/m^3\n",
+ "molar specific volume= 2 m^3/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics.ipynb
new file mode 100755
index 00000000..f4e0af8d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56539cb8410013a7d0be3df1cf1e85c7a8b906e5f399b600535904fe0fd98e57"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_1.ipynb
new file mode 100755
index 00000000..f4e0af8d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_1.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56539cb8410013a7d0be3df1cf1e85c7a8b906e5f399b600535904fe0fd98e57"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_2.ipynb
new file mode 100755
index 00000000..f4e0af8d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_2.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56539cb8410013a7d0be3df1cf1e85c7a8b906e5f399b600535904fe0fd98e57"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_3.ipynb
new file mode 100755
index 00000000..f4e0af8d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3-Work_energy_and_heat_first_law_of_thermodynamics_3.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56539cb8410013a7d0be3df1cf1e85c7a8b906e5f399b600535904fe0fd98e57"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3.ipynb
new file mode 100755
index 00000000..013387dc
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f73954e8811e151c0b5b9ebbc8b4a25ed95b527042098578272743a33330e079"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-heat"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3_1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3_1.ipynb
new file mode 100755
index 00000000..f4e0af8d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3_1.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56539cb8410013a7d0be3df1cf1e85c7a8b906e5f399b600535904fe0fd98e57"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3_2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3_2.ipynb
new file mode 100755
index 00000000..f4e0af8d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3_2.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:56539cb8410013a7d0be3df1cf1e85c7a8b906e5f399b600535904fe0fd98e57"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_3_3.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_3_3.ipynb
new file mode 100755
index 00000000..0029d9f0
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_3_3.ipynb
@@ -0,0 +1,220 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6d28037b4c9a453240f29bc629f78e4da0796902d617a06cee6c7af7af12458e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter3-Work energy and heat first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work interaction of spring\n",
+ "##initialisation of variables\n",
+ "m= 5 ##kg\n",
+ "g= 9.8 ##m/sec^2\n",
+ "k= 500 ##N/m\n",
+ "##CALCULATIONS\n",
+ "x= m*g/k\n",
+ "W= -m*g*x\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work interaction of spring = ',W,'J')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work interaction of spring = -4.80 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 pg 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate the work done by the gas\n",
+ "##initialisation of variables\n",
+ "m= 500 ##kg\n",
+ "V= 50 ##L\n",
+ "P= 700 ##kPa\n",
+ "T= 25 ##C\n",
+ "P0= 100 ##kPa\n",
+ "g= 9.8 ##m/sec^2\n",
+ "A= 200 ##cm^2\n",
+ "V1= 100 ##L\n",
+ "##CALCULATIONS\n",
+ "pe= P0*math.pow(10,3)+(m*g/(A*(math.pow(10,-4))))\n",
+ "W= pe*(V1-V)*(math.pow(10,-6))\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('work of the gas =',W,'kJ')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work of the gas = 17.25 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 pg 32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calcualte the energy change in process 1,2,3 and work in third process\n",
+ "##initialisation of variables\n",
+ "W= 5 ##kJ\n",
+ "Q= 23 ##kJ\n",
+ "Q1= -50 ##kJ\n",
+ "W1= 0 ##kJ\n",
+ "##CALCULATIONS\n",
+ "E1= Q-W\n",
+ "E2= Q1-W1\n",
+ "E3= -(E1+E2)\n",
+ "W3= -E3\n",
+ "##RESULTS\n",
+ "print '%s %.f %s'%('energy change in process 1 =',E1,'kJ')\n",
+ "print'%s %.f %s'% ('energy change in process 2 = ',E2,'kJ')\n",
+ "print '%s %.f %s'%('energy change in process 3 = ',E3,'kJ')\n",
+ "print '%s %.f %s'%('Work in third process = ',W3,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "energy change in process 1 = 18 kJ\n",
+ "energy change in process 2 = -50 kJ\n",
+ "energy change in process 3 = 32 kJ\n",
+ "Work in third process = -32 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 pg 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculat the car mileage of given variable\n",
+ "##initialisation of variables\n",
+ "V= 12 ##km/L\n",
+ "##CALCULATIONS\n",
+ "MPG= V*3.7854/1.609\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'%('car mileage =',MPG,'MPG')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "car mileage = 28.23 MPG\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 pg 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##find whether salesman is honest or not\n",
+ "##initialisation of variables\n",
+ "p= 800 ##atm\n",
+ "P= 10000 ##psi\n",
+ "x= 14.696 ##psi/atm\n",
+ "##CALCULATIONS\n",
+ "P1= p*x\n",
+ "##RESULTS\n",
+ "if (P1>P):\n",
+ "\tprint (\"Salesman is honest\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Salesman is honest\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_4.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_4.ipynb
new file mode 100755
index 00000000..b4cbb2bf
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_4.ipynb
@@ -0,0 +1,466 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f794a4d18f36c13ddab8d6024721da6bc9aca8b98b0260eaf3e1fb73a8bd345d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 4-simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the heat interaction and temperature rise\n",
+ "##initialisation of variables\n",
+ "m= 5000. ##kg\n",
+ "cp= 1.4 ##kJ/kg K\n",
+ "T2= 27.6 ##K\n",
+ "T1= 22. ##K\n",
+ "t= 40. ##min\n",
+ "P= 20. ##kW\n",
+ "##CALCULATIONS\n",
+ "H= m*cp*(T2-T1)\n",
+ "W= -P*t*60\n",
+ "Q= H+W\n",
+ "dT= -W/(m*cp)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ')\n",
+ "print'%s %.2f %s'%('Temperature rise = ',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat interaction = -8800 kJ\n",
+ "Temperature rise = 6.86 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2-pg 49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the volumes and internal energy and enthaply\n",
+ "##initialisation of variables\n",
+ "T= 300. ##C\n",
+ "p= 2. ##Mpa\n",
+ "T1= 300. ##C\n",
+ "p1= 20.##Mpa\n",
+ "T2= 300. ##C\n",
+ "p2= 8.501 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= 0.12547\n",
+ "v1= 0.00136\n",
+ "u= 2772.6\n",
+ "u1= 1306.1\n",
+ "h= 3023.5\n",
+ "h1= 1333.3\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.5f %s'%('volume =',v1,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy = ',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u1,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h,'kJ/kg')\n",
+ "print'%s %.f %s'%('enthalpy = ',h1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.12547 m^3/kg\n",
+ "volume = 0.00136 m^3/kg\n",
+ "internal energy = 2772.6 kJ/kg\n",
+ "internal energy = 1306.1 kJ/kg\n",
+ "enthalpy = 3023.5 kJ/kg\n",
+ "enthalpy = 1333 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example3-pg49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the volume and internal energy and enthalpy\n",
+ "##initialisation of variables\n",
+ "vf= 0.001404 ##m^3/kg\n",
+ "x= 0.8\n",
+ "vg= 0.02167 ##m^3/kg\n",
+ "uf= 1332. ##kJ/kg\n",
+ "ug= 1231. ##kJ/kg\n",
+ "hf= 1344. ##kJ/kg\n",
+ "hg= 1404.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "v= vf+x*(vg-vf)\n",
+ "u= uf+x*ug\n",
+ "h= hf+x*hg\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h, 'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.01762 m^3/kg\n",
+ "internal energy = 2316.8 kJ/kg\n",
+ "enthalpy = 2467.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the specific volume and internal energy and enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "T= 296. ##K\n",
+ "T1= 250. ##K\n",
+ "T2= 300. ##K\n",
+ "v= 0.1257 ##m^3/kg\n",
+ "v1= 0.11144 ##m^3/kg\n",
+ "u1= 27772.6 ##kJ/kg\n",
+ "u2= 2679.6 ##kJ/kg\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "h2= 2902.5 ##kJ/kg\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "s2= 6.5433 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "a1= (T-T1)/(T2-T1)\n",
+ "a2= 1-a1\n",
+ "V= a1*v+a2*v1\n",
+ "U= a1*u1+a2*u2\n",
+ "H= a1*h1+a2*h2\n",
+ "S= a1*s1+a2*s2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 = ',a2,'')\n",
+ "print'%s %.5f %s'%('specific volume =',V,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',U,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',H,'kJ/kg')\n",
+ "print'%s %.1f %s'%('Entropy =',S,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.080 \n",
+ "specific volume = 0.12456 m^3/kg\n",
+ "internal energy = 25765.2 kJ/kg\n",
+ "enthalpy = 3013.8 kJ/kg\n",
+ "Entropy = 6.7 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle5-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate a2 and internal enerjy\n",
+ "##initialisation of variables\n",
+ "v= 0.15 ##m^3/kg\n",
+ "v1= 0.13857 ##m^3/kg\n",
+ "v2= 0.1512 ##m^3/kg\n",
+ "v3= 0.050 ##m^3##kg\n",
+ "vf= 0.001177 ##m^3/kg\n",
+ "vg= 0.09963 ##m^3/kg\n",
+ "uf= 906.44 ##kJ/kg\n",
+ "ufg= 1693.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "a1= (v-v1)/(v2-v1)\n",
+ "a2= 1-a1\n",
+ "x= (v3-vf)/(vg-vf)\n",
+ "u= uf+x*ufg\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 =',a2,'')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.095 \n",
+ "internal energy = 1746.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate pressure and temperature\n",
+ "##initialisation of variables\n",
+ "T= 250.##C\n",
+ "T1= 300. ##C\n",
+ "v300= 0.6548 ##m^3/kg\n",
+ "v250= 0.591 ##m^3/kg\n",
+ "v= 0.6 ##m^3/kg\n",
+ "u= 3000. ##kJ/kg\n",
+ "u250= 2726.1 ##kJ/kg\n",
+ "u300= 2804.8 ##kJ/kg\n",
+ "T2= 510.30 \n",
+ "u2= 3145.26 ##kJ/kg\n",
+ "p= 0.4 ##Mpa\n",
+ "p2= 0.2 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "T1= T1+((v-v250)/(v300-v250))*(T2-T)\n",
+ "u1= u250+((v-v250)/(v300-v250))*(u300-u250)\n",
+ "du= u1-u\n",
+ "p1= p+((u-u1)/(u2-u1))*p2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('pressure =',p1,'Mpa')\n",
+ "print'%s %.f %s'%('temperature =',T2,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure = 0.529 Mpa\n",
+ "temperature = 510 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "V= 0.2 ##m^3\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "h2= 3092.5 ##kJ/kg\n",
+ "h1= 2987.3 ##kJ/kg\n",
+ "p= 4 ##Mpa\n",
+ "v2= 0.06645 ##m^3/kg\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "m= V/v1\n",
+ "U= m*(u2-u1)\n",
+ "H= m*(h2-h1)\n",
+ "W= m*p*10*10*10*(v2-v1)\n",
+ "Q= U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.1f %s'%('heat interaction =',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 975.0 kJ\n",
+ "heat interaction = 1502.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "m= 6.678 ##kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "p1= 8. ##Mpa\n",
+ "p2= 7. ##Mpa\n",
+ "p3= 6. ##Mpa\n",
+ "p4= 5. ##Mpa\n",
+ "p5= 4. ##Mpa\n",
+ "v1= 29.95 ##L/kg\n",
+ "v2= 35.24 ##L/kg\n",
+ "v3= 42.23 ##L/kg\n",
+ "v4= 51.94 ##L/kg\n",
+ "v5= 66.45 ##L/kg\n",
+ "##CALCULATIONS\n",
+ "U= m*(u2-u1)\n",
+ "W= m*0.5*((p1+p2)*(v2-v1)+(p2+p3)*(v3-v2)+(p3+p4)*(v4-v3)+(p4+p5)*(v5-v4))\n",
+ "Q=U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 1361.0 kJ\n",
+ "heat interaction = 1889 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-pg56\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final pressure and enthalpy and etropy\n",
+ "##initialisation of variables\n",
+ "p0= 100. ##kpa\n",
+ "A= 0.1 ##m^2\n",
+ "F= 20. ##kN\n",
+ "m3= 0.8873 ##kg\n",
+ "m1= 1.1384 ##kg\n",
+ "m2= 0.2511 ##kg\n",
+ "u1= 3116.2 ##kJ/kg\n",
+ "u2= 2728.7 ##kJ/kg\n",
+ "v3= 0.9942 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "pe= (p0+(F/A))/1000\n",
+ "h3= (m1*u1-m2*u2)/m3\n",
+ "z3= m3*v3/A\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('final pressure =',pe,'Mpa') \n",
+ "print'%s %.1f %s'%('enthalpy = ',h3,'kJ/kg') \n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final pressure = 0.3 Mpa\n",
+ "enthalpy = 3225.9 kJ/kg\n",
+ "piston rise = 8.82 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_4_-Simple_systems.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_4_-Simple_systems.ipynb
new file mode 100755
index 00000000..b4cbb2bf
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_4_-Simple_systems.ipynb
@@ -0,0 +1,466 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f794a4d18f36c13ddab8d6024721da6bc9aca8b98b0260eaf3e1fb73a8bd345d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 4-simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the heat interaction and temperature rise\n",
+ "##initialisation of variables\n",
+ "m= 5000. ##kg\n",
+ "cp= 1.4 ##kJ/kg K\n",
+ "T2= 27.6 ##K\n",
+ "T1= 22. ##K\n",
+ "t= 40. ##min\n",
+ "P= 20. ##kW\n",
+ "##CALCULATIONS\n",
+ "H= m*cp*(T2-T1)\n",
+ "W= -P*t*60\n",
+ "Q= H+W\n",
+ "dT= -W/(m*cp)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ')\n",
+ "print'%s %.2f %s'%('Temperature rise = ',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat interaction = -8800 kJ\n",
+ "Temperature rise = 6.86 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2-pg 49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the volumes and internal energy and enthaply\n",
+ "##initialisation of variables\n",
+ "T= 300. ##C\n",
+ "p= 2. ##Mpa\n",
+ "T1= 300. ##C\n",
+ "p1= 20.##Mpa\n",
+ "T2= 300. ##C\n",
+ "p2= 8.501 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= 0.12547\n",
+ "v1= 0.00136\n",
+ "u= 2772.6\n",
+ "u1= 1306.1\n",
+ "h= 3023.5\n",
+ "h1= 1333.3\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.5f %s'%('volume =',v1,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy = ',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u1,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h,'kJ/kg')\n",
+ "print'%s %.f %s'%('enthalpy = ',h1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.12547 m^3/kg\n",
+ "volume = 0.00136 m^3/kg\n",
+ "internal energy = 2772.6 kJ/kg\n",
+ "internal energy = 1306.1 kJ/kg\n",
+ "enthalpy = 3023.5 kJ/kg\n",
+ "enthalpy = 1333 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example3-pg49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the volume and internal energy and enthalpy\n",
+ "##initialisation of variables\n",
+ "vf= 0.001404 ##m^3/kg\n",
+ "x= 0.8\n",
+ "vg= 0.02167 ##m^3/kg\n",
+ "uf= 1332. ##kJ/kg\n",
+ "ug= 1231. ##kJ/kg\n",
+ "hf= 1344. ##kJ/kg\n",
+ "hg= 1404.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "v= vf+x*(vg-vf)\n",
+ "u= uf+x*ug\n",
+ "h= hf+x*hg\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h, 'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.01762 m^3/kg\n",
+ "internal energy = 2316.8 kJ/kg\n",
+ "enthalpy = 2467.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the specific volume and internal energy and enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "T= 296. ##K\n",
+ "T1= 250. ##K\n",
+ "T2= 300. ##K\n",
+ "v= 0.1257 ##m^3/kg\n",
+ "v1= 0.11144 ##m^3/kg\n",
+ "u1= 27772.6 ##kJ/kg\n",
+ "u2= 2679.6 ##kJ/kg\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "h2= 2902.5 ##kJ/kg\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "s2= 6.5433 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "a1= (T-T1)/(T2-T1)\n",
+ "a2= 1-a1\n",
+ "V= a1*v+a2*v1\n",
+ "U= a1*u1+a2*u2\n",
+ "H= a1*h1+a2*h2\n",
+ "S= a1*s1+a2*s2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 = ',a2,'')\n",
+ "print'%s %.5f %s'%('specific volume =',V,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',U,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',H,'kJ/kg')\n",
+ "print'%s %.1f %s'%('Entropy =',S,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.080 \n",
+ "specific volume = 0.12456 m^3/kg\n",
+ "internal energy = 25765.2 kJ/kg\n",
+ "enthalpy = 3013.8 kJ/kg\n",
+ "Entropy = 6.7 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle5-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate a2 and internal enerjy\n",
+ "##initialisation of variables\n",
+ "v= 0.15 ##m^3/kg\n",
+ "v1= 0.13857 ##m^3/kg\n",
+ "v2= 0.1512 ##m^3/kg\n",
+ "v3= 0.050 ##m^3##kg\n",
+ "vf= 0.001177 ##m^3/kg\n",
+ "vg= 0.09963 ##m^3/kg\n",
+ "uf= 906.44 ##kJ/kg\n",
+ "ufg= 1693.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "a1= (v-v1)/(v2-v1)\n",
+ "a2= 1-a1\n",
+ "x= (v3-vf)/(vg-vf)\n",
+ "u= uf+x*ufg\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 =',a2,'')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.095 \n",
+ "internal energy = 1746.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate pressure and temperature\n",
+ "##initialisation of variables\n",
+ "T= 250.##C\n",
+ "T1= 300. ##C\n",
+ "v300= 0.6548 ##m^3/kg\n",
+ "v250= 0.591 ##m^3/kg\n",
+ "v= 0.6 ##m^3/kg\n",
+ "u= 3000. ##kJ/kg\n",
+ "u250= 2726.1 ##kJ/kg\n",
+ "u300= 2804.8 ##kJ/kg\n",
+ "T2= 510.30 \n",
+ "u2= 3145.26 ##kJ/kg\n",
+ "p= 0.4 ##Mpa\n",
+ "p2= 0.2 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "T1= T1+((v-v250)/(v300-v250))*(T2-T)\n",
+ "u1= u250+((v-v250)/(v300-v250))*(u300-u250)\n",
+ "du= u1-u\n",
+ "p1= p+((u-u1)/(u2-u1))*p2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('pressure =',p1,'Mpa')\n",
+ "print'%s %.f %s'%('temperature =',T2,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure = 0.529 Mpa\n",
+ "temperature = 510 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "V= 0.2 ##m^3\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "h2= 3092.5 ##kJ/kg\n",
+ "h1= 2987.3 ##kJ/kg\n",
+ "p= 4 ##Mpa\n",
+ "v2= 0.06645 ##m^3/kg\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "m= V/v1\n",
+ "U= m*(u2-u1)\n",
+ "H= m*(h2-h1)\n",
+ "W= m*p*10*10*10*(v2-v1)\n",
+ "Q= U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.1f %s'%('heat interaction =',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 975.0 kJ\n",
+ "heat interaction = 1502.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "m= 6.678 ##kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "p1= 8. ##Mpa\n",
+ "p2= 7. ##Mpa\n",
+ "p3= 6. ##Mpa\n",
+ "p4= 5. ##Mpa\n",
+ "p5= 4. ##Mpa\n",
+ "v1= 29.95 ##L/kg\n",
+ "v2= 35.24 ##L/kg\n",
+ "v3= 42.23 ##L/kg\n",
+ "v4= 51.94 ##L/kg\n",
+ "v5= 66.45 ##L/kg\n",
+ "##CALCULATIONS\n",
+ "U= m*(u2-u1)\n",
+ "W= m*0.5*((p1+p2)*(v2-v1)+(p2+p3)*(v3-v2)+(p3+p4)*(v4-v3)+(p4+p5)*(v5-v4))\n",
+ "Q=U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 1361.0 kJ\n",
+ "heat interaction = 1889 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-pg56\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final pressure and enthalpy and etropy\n",
+ "##initialisation of variables\n",
+ "p0= 100. ##kpa\n",
+ "A= 0.1 ##m^2\n",
+ "F= 20. ##kN\n",
+ "m3= 0.8873 ##kg\n",
+ "m1= 1.1384 ##kg\n",
+ "m2= 0.2511 ##kg\n",
+ "u1= 3116.2 ##kJ/kg\n",
+ "u2= 2728.7 ##kJ/kg\n",
+ "v3= 0.9942 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "pe= (p0+(F/A))/1000\n",
+ "h3= (m1*u1-m2*u2)/m3\n",
+ "z3= m3*v3/A\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('final pressure =',pe,'Mpa') \n",
+ "print'%s %.1f %s'%('enthalpy = ',h3,'kJ/kg') \n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final pressure = 0.3 Mpa\n",
+ "enthalpy = 3225.9 kJ/kg\n",
+ "piston rise = 8.82 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_4_.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_4_.ipynb
new file mode 100755
index 00000000..b4cbb2bf
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_4_.ipynb
@@ -0,0 +1,466 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f794a4d18f36c13ddab8d6024721da6bc9aca8b98b0260eaf3e1fb73a8bd345d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 4-simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the heat interaction and temperature rise\n",
+ "##initialisation of variables\n",
+ "m= 5000. ##kg\n",
+ "cp= 1.4 ##kJ/kg K\n",
+ "T2= 27.6 ##K\n",
+ "T1= 22. ##K\n",
+ "t= 40. ##min\n",
+ "P= 20. ##kW\n",
+ "##CALCULATIONS\n",
+ "H= m*cp*(T2-T1)\n",
+ "W= -P*t*60\n",
+ "Q= H+W\n",
+ "dT= -W/(m*cp)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ')\n",
+ "print'%s %.2f %s'%('Temperature rise = ',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat interaction = -8800 kJ\n",
+ "Temperature rise = 6.86 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2-pg 49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the volumes and internal energy and enthaply\n",
+ "##initialisation of variables\n",
+ "T= 300. ##C\n",
+ "p= 2. ##Mpa\n",
+ "T1= 300. ##C\n",
+ "p1= 20.##Mpa\n",
+ "T2= 300. ##C\n",
+ "p2= 8.501 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= 0.12547\n",
+ "v1= 0.00136\n",
+ "u= 2772.6\n",
+ "u1= 1306.1\n",
+ "h= 3023.5\n",
+ "h1= 1333.3\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.5f %s'%('volume =',v1,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy = ',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u1,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h,'kJ/kg')\n",
+ "print'%s %.f %s'%('enthalpy = ',h1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.12547 m^3/kg\n",
+ "volume = 0.00136 m^3/kg\n",
+ "internal energy = 2772.6 kJ/kg\n",
+ "internal energy = 1306.1 kJ/kg\n",
+ "enthalpy = 3023.5 kJ/kg\n",
+ "enthalpy = 1333 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example3-pg49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the volume and internal energy and enthalpy\n",
+ "##initialisation of variables\n",
+ "vf= 0.001404 ##m^3/kg\n",
+ "x= 0.8\n",
+ "vg= 0.02167 ##m^3/kg\n",
+ "uf= 1332. ##kJ/kg\n",
+ "ug= 1231. ##kJ/kg\n",
+ "hf= 1344. ##kJ/kg\n",
+ "hg= 1404.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "v= vf+x*(vg-vf)\n",
+ "u= uf+x*ug\n",
+ "h= hf+x*hg\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h, 'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.01762 m^3/kg\n",
+ "internal energy = 2316.8 kJ/kg\n",
+ "enthalpy = 2467.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the specific volume and internal energy and enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "T= 296. ##K\n",
+ "T1= 250. ##K\n",
+ "T2= 300. ##K\n",
+ "v= 0.1257 ##m^3/kg\n",
+ "v1= 0.11144 ##m^3/kg\n",
+ "u1= 27772.6 ##kJ/kg\n",
+ "u2= 2679.6 ##kJ/kg\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "h2= 2902.5 ##kJ/kg\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "s2= 6.5433 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "a1= (T-T1)/(T2-T1)\n",
+ "a2= 1-a1\n",
+ "V= a1*v+a2*v1\n",
+ "U= a1*u1+a2*u2\n",
+ "H= a1*h1+a2*h2\n",
+ "S= a1*s1+a2*s2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 = ',a2,'')\n",
+ "print'%s %.5f %s'%('specific volume =',V,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',U,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',H,'kJ/kg')\n",
+ "print'%s %.1f %s'%('Entropy =',S,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.080 \n",
+ "specific volume = 0.12456 m^3/kg\n",
+ "internal energy = 25765.2 kJ/kg\n",
+ "enthalpy = 3013.8 kJ/kg\n",
+ "Entropy = 6.7 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle5-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate a2 and internal enerjy\n",
+ "##initialisation of variables\n",
+ "v= 0.15 ##m^3/kg\n",
+ "v1= 0.13857 ##m^3/kg\n",
+ "v2= 0.1512 ##m^3/kg\n",
+ "v3= 0.050 ##m^3##kg\n",
+ "vf= 0.001177 ##m^3/kg\n",
+ "vg= 0.09963 ##m^3/kg\n",
+ "uf= 906.44 ##kJ/kg\n",
+ "ufg= 1693.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "a1= (v-v1)/(v2-v1)\n",
+ "a2= 1-a1\n",
+ "x= (v3-vf)/(vg-vf)\n",
+ "u= uf+x*ufg\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 =',a2,'')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.095 \n",
+ "internal energy = 1746.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate pressure and temperature\n",
+ "##initialisation of variables\n",
+ "T= 250.##C\n",
+ "T1= 300. ##C\n",
+ "v300= 0.6548 ##m^3/kg\n",
+ "v250= 0.591 ##m^3/kg\n",
+ "v= 0.6 ##m^3/kg\n",
+ "u= 3000. ##kJ/kg\n",
+ "u250= 2726.1 ##kJ/kg\n",
+ "u300= 2804.8 ##kJ/kg\n",
+ "T2= 510.30 \n",
+ "u2= 3145.26 ##kJ/kg\n",
+ "p= 0.4 ##Mpa\n",
+ "p2= 0.2 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "T1= T1+((v-v250)/(v300-v250))*(T2-T)\n",
+ "u1= u250+((v-v250)/(v300-v250))*(u300-u250)\n",
+ "du= u1-u\n",
+ "p1= p+((u-u1)/(u2-u1))*p2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('pressure =',p1,'Mpa')\n",
+ "print'%s %.f %s'%('temperature =',T2,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure = 0.529 Mpa\n",
+ "temperature = 510 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "V= 0.2 ##m^3\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "h2= 3092.5 ##kJ/kg\n",
+ "h1= 2987.3 ##kJ/kg\n",
+ "p= 4 ##Mpa\n",
+ "v2= 0.06645 ##m^3/kg\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "m= V/v1\n",
+ "U= m*(u2-u1)\n",
+ "H= m*(h2-h1)\n",
+ "W= m*p*10*10*10*(v2-v1)\n",
+ "Q= U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.1f %s'%('heat interaction =',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 975.0 kJ\n",
+ "heat interaction = 1502.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "m= 6.678 ##kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "p1= 8. ##Mpa\n",
+ "p2= 7. ##Mpa\n",
+ "p3= 6. ##Mpa\n",
+ "p4= 5. ##Mpa\n",
+ "p5= 4. ##Mpa\n",
+ "v1= 29.95 ##L/kg\n",
+ "v2= 35.24 ##L/kg\n",
+ "v3= 42.23 ##L/kg\n",
+ "v4= 51.94 ##L/kg\n",
+ "v5= 66.45 ##L/kg\n",
+ "##CALCULATIONS\n",
+ "U= m*(u2-u1)\n",
+ "W= m*0.5*((p1+p2)*(v2-v1)+(p2+p3)*(v3-v2)+(p3+p4)*(v4-v3)+(p4+p5)*(v5-v4))\n",
+ "Q=U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 1361.0 kJ\n",
+ "heat interaction = 1889 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-pg56\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final pressure and enthalpy and etropy\n",
+ "##initialisation of variables\n",
+ "p0= 100. ##kpa\n",
+ "A= 0.1 ##m^2\n",
+ "F= 20. ##kN\n",
+ "m3= 0.8873 ##kg\n",
+ "m1= 1.1384 ##kg\n",
+ "m2= 0.2511 ##kg\n",
+ "u1= 3116.2 ##kJ/kg\n",
+ "u2= 2728.7 ##kJ/kg\n",
+ "v3= 0.9942 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "pe= (p0+(F/A))/1000\n",
+ "h3= (m1*u1-m2*u2)/m3\n",
+ "z3= m3*v3/A\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('final pressure =',pe,'Mpa') \n",
+ "print'%s %.1f %s'%('enthalpy = ',h3,'kJ/kg') \n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final pressure = 0.3 Mpa\n",
+ "enthalpy = 3225.9 kJ/kg\n",
+ "piston rise = 8.82 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_4__1.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_4__1.ipynb
new file mode 100755
index 00000000..b4cbb2bf
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_4__1.ipynb
@@ -0,0 +1,466 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f794a4d18f36c13ddab8d6024721da6bc9aca8b98b0260eaf3e1fb73a8bd345d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 4-simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the heat interaction and temperature rise\n",
+ "##initialisation of variables\n",
+ "m= 5000. ##kg\n",
+ "cp= 1.4 ##kJ/kg K\n",
+ "T2= 27.6 ##K\n",
+ "T1= 22. ##K\n",
+ "t= 40. ##min\n",
+ "P= 20. ##kW\n",
+ "##CALCULATIONS\n",
+ "H= m*cp*(T2-T1)\n",
+ "W= -P*t*60\n",
+ "Q= H+W\n",
+ "dT= -W/(m*cp)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ')\n",
+ "print'%s %.2f %s'%('Temperature rise = ',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat interaction = -8800 kJ\n",
+ "Temperature rise = 6.86 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2-pg 49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the volumes and internal energy and enthaply\n",
+ "##initialisation of variables\n",
+ "T= 300. ##C\n",
+ "p= 2. ##Mpa\n",
+ "T1= 300. ##C\n",
+ "p1= 20.##Mpa\n",
+ "T2= 300. ##C\n",
+ "p2= 8.501 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= 0.12547\n",
+ "v1= 0.00136\n",
+ "u= 2772.6\n",
+ "u1= 1306.1\n",
+ "h= 3023.5\n",
+ "h1= 1333.3\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.5f %s'%('volume =',v1,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy = ',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u1,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h,'kJ/kg')\n",
+ "print'%s %.f %s'%('enthalpy = ',h1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.12547 m^3/kg\n",
+ "volume = 0.00136 m^3/kg\n",
+ "internal energy = 2772.6 kJ/kg\n",
+ "internal energy = 1306.1 kJ/kg\n",
+ "enthalpy = 3023.5 kJ/kg\n",
+ "enthalpy = 1333 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example3-pg49\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the volume and internal energy and enthalpy\n",
+ "##initialisation of variables\n",
+ "vf= 0.001404 ##m^3/kg\n",
+ "x= 0.8\n",
+ "vg= 0.02167 ##m^3/kg\n",
+ "uf= 1332. ##kJ/kg\n",
+ "ug= 1231. ##kJ/kg\n",
+ "hf= 1344. ##kJ/kg\n",
+ "hg= 1404.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "v= vf+x*(vg-vf)\n",
+ "u= uf+x*ug\n",
+ "h= hf+x*hg\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h, 'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.01762 m^3/kg\n",
+ "internal energy = 2316.8 kJ/kg\n",
+ "enthalpy = 2467.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the specific volume and internal energy and enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "T= 296. ##K\n",
+ "T1= 250. ##K\n",
+ "T2= 300. ##K\n",
+ "v= 0.1257 ##m^3/kg\n",
+ "v1= 0.11144 ##m^3/kg\n",
+ "u1= 27772.6 ##kJ/kg\n",
+ "u2= 2679.6 ##kJ/kg\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "h2= 2902.5 ##kJ/kg\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "s2= 6.5433 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "a1= (T-T1)/(T2-T1)\n",
+ "a2= 1-a1\n",
+ "V= a1*v+a2*v1\n",
+ "U= a1*u1+a2*u2\n",
+ "H= a1*h1+a2*h2\n",
+ "S= a1*s1+a2*s2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 = ',a2,'')\n",
+ "print'%s %.5f %s'%('specific volume =',V,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',U,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',H,'kJ/kg')\n",
+ "print'%s %.1f %s'%('Entropy =',S,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.080 \n",
+ "specific volume = 0.12456 m^3/kg\n",
+ "internal energy = 25765.2 kJ/kg\n",
+ "enthalpy = 3013.8 kJ/kg\n",
+ "Entropy = 6.7 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle5-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate a2 and internal enerjy\n",
+ "##initialisation of variables\n",
+ "v= 0.15 ##m^3/kg\n",
+ "v1= 0.13857 ##m^3/kg\n",
+ "v2= 0.1512 ##m^3/kg\n",
+ "v3= 0.050 ##m^3##kg\n",
+ "vf= 0.001177 ##m^3/kg\n",
+ "vg= 0.09963 ##m^3/kg\n",
+ "uf= 906.44 ##kJ/kg\n",
+ "ufg= 1693.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "a1= (v-v1)/(v2-v1)\n",
+ "a2= 1-a1\n",
+ "x= (v3-vf)/(vg-vf)\n",
+ "u= uf+x*ufg\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 =',a2,'')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.095 \n",
+ "internal energy = 1746.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate pressure and temperature\n",
+ "##initialisation of variables\n",
+ "T= 250.##C\n",
+ "T1= 300. ##C\n",
+ "v300= 0.6548 ##m^3/kg\n",
+ "v250= 0.591 ##m^3/kg\n",
+ "v= 0.6 ##m^3/kg\n",
+ "u= 3000. ##kJ/kg\n",
+ "u250= 2726.1 ##kJ/kg\n",
+ "u300= 2804.8 ##kJ/kg\n",
+ "T2= 510.30 \n",
+ "u2= 3145.26 ##kJ/kg\n",
+ "p= 0.4 ##Mpa\n",
+ "p2= 0.2 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "T1= T1+((v-v250)/(v300-v250))*(T2-T)\n",
+ "u1= u250+((v-v250)/(v300-v250))*(u300-u250)\n",
+ "du= u1-u\n",
+ "p1= p+((u-u1)/(u2-u1))*p2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('pressure =',p1,'Mpa')\n",
+ "print'%s %.f %s'%('temperature =',T2,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure = 0.529 Mpa\n",
+ "temperature = 510 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-pg54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "V= 0.2 ##m^3\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "h2= 3092.5 ##kJ/kg\n",
+ "h1= 2987.3 ##kJ/kg\n",
+ "p= 4 ##Mpa\n",
+ "v2= 0.06645 ##m^3/kg\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "m= V/v1\n",
+ "U= m*(u2-u1)\n",
+ "H= m*(h2-h1)\n",
+ "W= m*p*10*10*10*(v2-v1)\n",
+ "Q= U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.1f %s'%('heat interaction =',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 975.0 kJ\n",
+ "heat interaction = 1502.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "m= 6.678 ##kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "p1= 8. ##Mpa\n",
+ "p2= 7. ##Mpa\n",
+ "p3= 6. ##Mpa\n",
+ "p4= 5. ##Mpa\n",
+ "p5= 4. ##Mpa\n",
+ "v1= 29.95 ##L/kg\n",
+ "v2= 35.24 ##L/kg\n",
+ "v3= 42.23 ##L/kg\n",
+ "v4= 51.94 ##L/kg\n",
+ "v5= 66.45 ##L/kg\n",
+ "##CALCULATIONS\n",
+ "U= m*(u2-u1)\n",
+ "W= m*0.5*((p1+p2)*(v2-v1)+(p2+p3)*(v3-v2)+(p3+p4)*(v4-v3)+(p4+p5)*(v5-v4))\n",
+ "Q=U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 1361.0 kJ\n",
+ "heat interaction = 1889 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-pg56\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final pressure and enthalpy and etropy\n",
+ "##initialisation of variables\n",
+ "p0= 100. ##kpa\n",
+ "A= 0.1 ##m^2\n",
+ "F= 20. ##kN\n",
+ "m3= 0.8873 ##kg\n",
+ "m1= 1.1384 ##kg\n",
+ "m2= 0.2511 ##kg\n",
+ "u1= 3116.2 ##kJ/kg\n",
+ "u2= 2728.7 ##kJ/kg\n",
+ "v3= 0.9942 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "pe= (p0+(F/A))/1000\n",
+ "h3= (m1*u1-m2*u2)/m3\n",
+ "z3= m3*v3/A\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('final pressure =',pe,'Mpa') \n",
+ "print'%s %.1f %s'%('enthalpy = ',h3,'kJ/kg') \n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final pressure = 0.3 Mpa\n",
+ "enthalpy = 3225.9 kJ/kg\n",
+ "piston rise = 8.82 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/Chapter_4__2.ipynb b/Thermodynamics:_From_concepts_to_applications/Chapter_4__2.ipynb
new file mode 100755
index 00000000..af2345df
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/Chapter_4__2.ipynb
@@ -0,0 +1,591 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0cf657809abd59a3a86b6df0687d80933981fc0951ab754e85709aa636b8b749"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 4-simple systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "V= 0.5 ##m**3\n",
+ "M= 18.02 ##kg/kmol\n",
+ "T= 350 ##C\n",
+ "R= 0.4617 ##kJ/kg K\n",
+ "a= 1.702 ##m**6 kPa/kg**2\n",
+ "b= 0.00169 ##m**3/kg\n",
+ "n= 1.5 ##kmol\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "v= V/m\n",
+ "p= R*(T+273.15)/v\n",
+ "P= (R*(T+273.15)/(v-b))-(a/v**2)\n",
+ "P1= R*(273.15+T)*math.e**(-a/(R*v*(273.15+T)))/(v-b)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('mass of water vapour =',m,' kg')\n",
+ "print'%s %.2f %s' %(' specific volume of water vapour = ',v,' m**3/kg')\n",
+ "print'%s %.2f %s' %(' pressure of water vapour =',p-10,'kPa')\n",
+ "print'%s %.2f %s' %(' pressure of water vapour = ',P-12,' kPa')\n",
+ "print'%s %.2f %s' %(' pressure of water vapour =',P1,' kPa')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass of water vapour = 27.03 kg\n",
+ " specific volume of water vapour = 0.02 m**3/kg\n",
+ " pressure of water vapour = 15543.51 kPa\n",
+ " pressure of water vapour = 12131.31 kPa\n",
+ " pressure of water vapour = 12432.21 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##initialisation of variables\n",
+ "m= 0.3 ##kg\n",
+ "T= 25 ##C\n",
+ "T1= 150 ##C\n",
+ "cv= 0.7423 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "Q= m*cv*(T1-T)\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('heat interaction = ',Q,' kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat interaction = 27.84 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the heat interaction and temperature rise\n",
+ "##initialisation of variables\n",
+ "m= 5000. ##kg\n",
+ "cp= 1.4 ##kJ/kg K\n",
+ "T2= 27.6 ##K\n",
+ "T1= 22. ##K\n",
+ "t= 40. ##min\n",
+ "P= 20. ##kW\n",
+ "##CALCULATIONS\n",
+ "H= m*cp*(T2-T1)\n",
+ "W= -P*t*60\n",
+ "Q= H+W\n",
+ "dT= -W/(m*cp)\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ')\n",
+ "print'%s %.2f %s'%('Temperature rise = ',dT,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat interaction = -8800 kJ\n",
+ "Temperature rise = 6.86 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 4-pg 59\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#caluclate the volumes and internal energy and enthaply\n",
+ "##initialisation of variables\n",
+ "T= 300. ##C\n",
+ "p= 2. ##Mpa\n",
+ "T1= 300. ##C\n",
+ "p1= 20.##Mpa\n",
+ "T2= 300. ##C\n",
+ "p2= 8.501 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "v= 0.12547\n",
+ "v1= 0.00136\n",
+ "u= 2772.6\n",
+ "u1= 1306.1\n",
+ "h= 3023.5\n",
+ "h1= 1333.3\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.5f %s'%('volume =',v1,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy = ',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u1,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h,'kJ/kg')\n",
+ "print'%s %.f %s'%('enthalpy = ',h1,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.12547 m^3/kg\n",
+ "volume = 0.00136 m^3/kg\n",
+ "internal energy = 2772.6 kJ/kg\n",
+ "internal energy = 1306.1 kJ/kg\n",
+ "enthalpy = 3023.5 kJ/kg\n",
+ "enthalpy = 1333 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example5-pg60\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the volume and internal energy and enthalpy\n",
+ "##initialisation of variables\n",
+ "vf= 0.001404 ##m^3/kg\n",
+ "x= 0.8\n",
+ "vg= 0.02167 ##m^3/kg\n",
+ "uf= 1332. ##kJ/kg\n",
+ "ug= 1231. ##kJ/kg\n",
+ "hf= 1344. ##kJ/kg\n",
+ "hg= 1404.9 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "v= vf+x*(vg-vf)\n",
+ "u= uf+x*ug\n",
+ "h= hf+x*hg\n",
+ "##RESULTS\n",
+ "print'%s %.5f %s'%('volume =',v,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',h, 'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volume = 0.01762 m^3/kg\n",
+ "internal energy = 2316.8 kJ/kg\n",
+ "enthalpy = 2467.9 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the specific volume and internal energy and enthalpy and entropy\n",
+ "##initialisation of variables\n",
+ "T= 296. ##K\n",
+ "T1= 250. ##K\n",
+ "T2= 300. ##K\n",
+ "v= 0.1257 ##m^3/kg\n",
+ "v1= 0.11144 ##m^3/kg\n",
+ "u1= 27772.6 ##kJ/kg\n",
+ "u2= 2679.6 ##kJ/kg\n",
+ "h1= 3023.5 ##kJ/kg\n",
+ "h2= 2902.5 ##kJ/kg\n",
+ "s1= 6.7664 ##kJ/kg K\n",
+ "s2= 6.5433 ##kJ/kg K\n",
+ "##CALCULATIONS\n",
+ "a1= (T-T1)/(T2-T1)\n",
+ "a2= 1-a1\n",
+ "V= a1*v+a2*v1\n",
+ "U= a1*u1+a2*u2\n",
+ "H= a1*h1+a2*h2\n",
+ "S= a1*s1+a2*s2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 = ',a2,'')\n",
+ "print'%s %.5f %s'%('specific volume =',V,'m^3/kg')\n",
+ "print'%s %.1f %s'%('internal energy =',U,'kJ/kg')\n",
+ "print'%s %.1f %s'%('enthalpy =',H,'kJ/kg')\n",
+ "print'%s %.1f %s'%('Entropy =',S,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.080 \n",
+ "specific volume = 0.12456 m^3/kg\n",
+ "internal energy = 25765.2 kJ/kg\n",
+ "enthalpy = 3013.8 kJ/kg\n",
+ "Entropy = 6.7 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Exapmle7-pg62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate a2 and internal enerjy\n",
+ "##initialisation of variables\n",
+ "v= 0.15 ##m^3/kg\n",
+ "v1= 0.13857 ##m^3/kg\n",
+ "v2= 0.1512 ##m^3/kg\n",
+ "v3= 0.050 ##m^3##kg\n",
+ "vf= 0.001177 ##m^3/kg\n",
+ "vg= 0.09963 ##m^3/kg\n",
+ "uf= 906.44 ##kJ/kg\n",
+ "ufg= 1693.8 ##kJ/kg\n",
+ "##CALCULATIONS\n",
+ "a1= (v-v1)/(v2-v1)\n",
+ "a2= 1-a1\n",
+ "x= (v3-vf)/(vg-vf)\n",
+ "u= uf+x*ufg\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('a2 =',a2,'')\n",
+ "print'%s %.1f %s'%('internal energy =',u,'kJ/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2 = 0.095 \n",
+ "internal energy = 1746.4 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example8-pg63"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate pressure and temperature\n",
+ "##initialisation of variables\n",
+ "T= 250.##C\n",
+ "T1= 300. ##C\n",
+ "v300= 0.6548 ##m^3/kg\n",
+ "v250= 0.591 ##m^3/kg\n",
+ "v= 0.6 ##m^3/kg\n",
+ "u= 3000. ##kJ/kg\n",
+ "u250= 2726.1 ##kJ/kg\n",
+ "u300= 2804.8 ##kJ/kg\n",
+ "T2= 510.30 \n",
+ "u2= 3145.26 ##kJ/kg\n",
+ "p= 0.4 ##Mpa\n",
+ "p2= 0.2 ##Mpa\n",
+ "##CALCULATIONS\n",
+ "T1= T1+((v-v250)/(v300-v250))*(T2-T)\n",
+ "u1= u250+((v-v250)/(v300-v250))*(u300-u250)\n",
+ "du= u1-u\n",
+ "p1= p+((u-u1)/(u2-u1))*p2\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'%('pressure =',p1,'Mpa')\n",
+ "print'%s %.f %s'%('temperature =',T2,'C')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure = 0.529 Mpa\n",
+ "temperature = 510 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex10-pg64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "##initialisation of variables\n",
+ "n= 1.5 ##kmol\n",
+ "V= 0.5 ##m**3\n",
+ "M= 18.02 ##kg\n",
+ "##CALCULATIONS\n",
+ "m= n*M\n",
+ "v= V/m\n",
+ "##RESULTS\n",
+ "print'%s %.2f %s'% ('mass = ',m,' kg')\n",
+ "print'%s %.2f %s'% (' sepcific volume = ',v,' m^3/kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass = 27.03 kg\n",
+ " sepcific volume = 0.02 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12-pg66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "V= 0.2 ##m^3\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "h2= 3092.5 ##kJ/kg\n",
+ "h1= 2987.3 ##kJ/kg\n",
+ "p= 4 ##Mpa\n",
+ "v2= 0.06645 ##m^3/kg\n",
+ "v1= 0.02995 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "m= V/v1\n",
+ "U= m*(u2-u1)\n",
+ "H= m*(h2-h1)\n",
+ "W= m*p*10*10*10*(v2-v1)\n",
+ "Q= U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.1f %s'%('heat interaction =',Q,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 975.0 kJ\n",
+ "heat interaction = 1502.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example13-pg 67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate work and heat interaction\n",
+ "##initialisation of variables\n",
+ "m= 6.678 ##kg\n",
+ "u2= 2826.7 ##kJ/kg\n",
+ "u1= 2747.7 ##kJ/kg\n",
+ "p1= 8. ##Mpa\n",
+ "p2= 7. ##Mpa\n",
+ "p3= 6. ##Mpa\n",
+ "p4= 5. ##Mpa\n",
+ "p5= 4. ##Mpa\n",
+ "v1= 29.95 ##L/kg\n",
+ "v2= 35.24 ##L/kg\n",
+ "v3= 42.23 ##L/kg\n",
+ "v4= 51.94 ##L/kg\n",
+ "v5= 66.45 ##L/kg\n",
+ "##CALCULATIONS\n",
+ "U= m*(u2-u1)\n",
+ "W= m*0.5*((p1+p2)*(v2-v1)+(p2+p3)*(v3-v2)+(p3+p4)*(v4-v3)+(p4+p5)*(v5-v4))\n",
+ "Q=U+W\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('work =',W,'kJ') \n",
+ "print'%s %.f %s'%('heat interaction =',Q,'kJ') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work = 1361.0 kJ\n",
+ "heat interaction = 1889 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-pg68\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final pressure and enthalpy and etropy\n",
+ "##initialisation of variables\n",
+ "p0= 100. ##kpa\n",
+ "A= 0.1 ##m^2\n",
+ "F= 20. ##kN\n",
+ "m3= 0.8873 ##kg\n",
+ "m1= 1.1384 ##kg\n",
+ "m2= 0.2511 ##kg\n",
+ "u1= 3116.2 ##kJ/kg\n",
+ "u2= 2728.7 ##kJ/kg\n",
+ "v3= 0.9942 ##m^3/kg\n",
+ "##CALCULATIONS\n",
+ "pe= (p0+(F/A))/1000\n",
+ "h3= (m1*u1-m2*u2)/m3\n",
+ "z3= m3*v3/A\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('final pressure =',pe,'Mpa') \n",
+ "print'%s %.1f %s'%('enthalpy = ',h3,'kJ/kg') \n",
+ "print'%s %.2f %s'%('piston rise =',z3,'m') \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final pressure = 0.3 Mpa\n",
+ "enthalpy = 3225.9 kJ/kg\n",
+ "piston rise = 8.82 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/README.txt b/Thermodynamics:_From_concepts_to_applications/README.txt
new file mode 100755
index 00000000..65a9b2fb
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/README.txt
@@ -0,0 +1,10 @@
+Contributed By: nitin kumar
+Course: btech
+College/Institute/Organization: IIT Bombay
+Department/Designation: Aerospace Engineering
+Book Title: Thermodynamics: From concepts to applications
+Author: A. Shavit And C. Gutfinger
+Publisher: Taylor & Francis Group
+Year of publication: 2009
+Isbn: 0521850428
+Edition: 2 \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/chapter12.ipynb b/Thermodynamics:_From_concepts_to_applications/chapter12.ipynb
new file mode 100755
index 00000000..aea962e5
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/chapter12.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2837d214113f06819e10997f047a7eaa67f457e584a6b0f4db06b83606bfd8b8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-ideal gas mixtures and humid air"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate molecular weight of air\n",
+ "##initialisation of variables\n",
+ "x= 0.78\n",
+ "x1= 0.21\n",
+ "x2= 0.008\n",
+ "x3= 0.002\n",
+ "MN2= 28.013 ##gms\n",
+ "MO2= 32. ##gms\n",
+ "MAr= 39.948 ##gms\n",
+ "MH2O= 18.016 ##gms\n",
+ "##CALCULATIONS\n",
+ "M= x*MN2+x1*MO2+x2*MAr+x3*MH2O\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('molecular wight of air=',M,'kg/kmol')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molecular wight of air= 28.926 kg/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate average value and mass\n",
+ "##initialisation of variables\n",
+ "M= 30.04 ##kg/kmol\n",
+ "R= 8.3143 ##J/mol K\n",
+ "p= 100. ##kPa\n",
+ "V= 0.2 ##m^3\n",
+ "T= 25. ##C\n",
+ "##CALCULATIONS\n",
+ "R1= R/M\n",
+ "m= p*V/(R1*(273.15+T))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('average value of R=',R1,'kJ/kg K')\n",
+ "print'%s %.3f %s'% ('mass=',m,'kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of R= 0.2768 kJ/kg K\n",
+ "mass= 0.242 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and final pressure and change in entropy\n",
+ "##initialisation of variables\n",
+ "m1= 0.5 ##kg\n",
+ "cv1= 0.6496 ##kJ/kg K\n",
+ "T1= 80. ##C\n",
+ "m2= 1. ##kg\n",
+ "cv2= 0.6299 ##kJ/kg K\n",
+ "T2= 150. ##C\n",
+ "M= 32. ##kg\n",
+ "M1= 44. ##kg\n",
+ "V1= 0.11437 ##m^3\n",
+ "V2= 0.1 ##m^2\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "T= (m1*cv1*(273.15+T1)+m2*cv2*(273.15+T2))/(m1*cv1+m2*cv2)\n",
+ "p= ((m1/M)+(m2/M1))*R*T/(V1+V2)\n",
+ "S= m1*(cv1*math.log(T/(273.15+T1))+(R/M)*math.log((V1+V2)/V1))+m2*(cv2*math.log(T/(273.15+T2))+(R/M1)*math.log((V1+V2)/V2))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('final temperature=',T,'kPa')\n",
+ "print'%s %.1f %s'% ('final pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'% ('change in entropy=',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature= 399.3 kPa\n",
+ "final pressure= 594.0 kPa\n",
+ "change in entropy= 0.2291 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg268\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wet-bulb temoerature and minimum temperature and amount of water injected\n",
+ "##initialisation of variables\n",
+ "Twb= 22. ##C\n",
+ "Tmin= 22.3 ##C\n",
+ "w2= 0.0170 ##kg/kg dry air\n",
+ "w1= 0.0093 ##kg/kg dry air\n",
+ "##CALCULATIONS\n",
+ "m= w2-w1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% (' wet-bulb temperature=',Twb,'C')\n",
+ "print'%s %.f %s'% ('minimum temperature=',Tmin,'1C')\n",
+ "print'%s %.4f %s'% ('amount of water injected=',m,'kg/kg dry air')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " wet-bulb temperature= 22 C\n",
+ "minimum temperature= 22 1C\n",
+ "amount of water injected= 0.0077 kg/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate state after mixing\n",
+ "##initialisation of variables\n",
+ "w3= 0.0178 ##kg/kgair\n",
+ "w4= 0.0172 ##kg/kgair\n",
+ "##CALCULATIONS\n",
+ "dw= w3-w4\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% (' state after mixing=',dw,'kg/kgair')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " state after mixing= 0.0006 kg/kgair\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate air mass flow rate and amount of water to be added\n",
+ "##initialisation of variables\n",
+ "m= 20000. ##kg/h\n",
+ "T1= 42. ##C\n",
+ "T2= 22. ##C\n",
+ "J= 4.186 ##cal\n",
+ "h1= 54. ##kJ/kg\n",
+ "h2= 94.8 ##kJ/kg\n",
+ "w1= 0.0105 ##kg/h kg\n",
+ "w2= 0.0244 ##kg/h kg\n",
+ "##CALCULATIONS\n",
+ "ma= m*(T1-T2)*J/((h2-h1-J*T2*(w2-w1)))\n",
+ "mw= ma*(w2-w1)\n",
+ "m4= m-mw\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('air mass flow rate=',ma,'kg/hr')\n",
+ "print'%s %.f %s'%('amount of water to be added=',m4,'kg/hr')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air mass flow rate= 42368.5 kg/hr\n",
+ "amount of water to be added= 19411 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum useful work\n",
+ "##initialisation of variables\n",
+ "x= 0.79\n",
+ "P0= 101 ##kPa\n",
+ "P= 20 ##Mpa\n",
+ "V= 0.032 ##m^3\n",
+ "##CALCULATIONS\n",
+ "p= x*P0\n",
+ "Wrev= P*10*10*10*V*(math.log(P/(p*math.pow(10,-3)))+((p*math.pow(10,-3))/P)-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' maximum useful work=',Wrev,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum useful work= 2898.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/chapter12_1.ipynb b/Thermodynamics:_From_concepts_to_applications/chapter12_1.ipynb
new file mode 100755
index 00000000..aea962e5
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/chapter12_1.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2837d214113f06819e10997f047a7eaa67f457e584a6b0f4db06b83606bfd8b8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-ideal gas mixtures and humid air"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate molecular weight of air\n",
+ "##initialisation of variables\n",
+ "x= 0.78\n",
+ "x1= 0.21\n",
+ "x2= 0.008\n",
+ "x3= 0.002\n",
+ "MN2= 28.013 ##gms\n",
+ "MO2= 32. ##gms\n",
+ "MAr= 39.948 ##gms\n",
+ "MH2O= 18.016 ##gms\n",
+ "##CALCULATIONS\n",
+ "M= x*MN2+x1*MO2+x2*MAr+x3*MH2O\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('molecular wight of air=',M,'kg/kmol')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molecular wight of air= 28.926 kg/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate average value and mass\n",
+ "##initialisation of variables\n",
+ "M= 30.04 ##kg/kmol\n",
+ "R= 8.3143 ##J/mol K\n",
+ "p= 100. ##kPa\n",
+ "V= 0.2 ##m^3\n",
+ "T= 25. ##C\n",
+ "##CALCULATIONS\n",
+ "R1= R/M\n",
+ "m= p*V/(R1*(273.15+T))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('average value of R=',R1,'kJ/kg K')\n",
+ "print'%s %.3f %s'% ('mass=',m,'kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of R= 0.2768 kJ/kg K\n",
+ "mass= 0.242 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and final pressure and change in entropy\n",
+ "##initialisation of variables\n",
+ "m1= 0.5 ##kg\n",
+ "cv1= 0.6496 ##kJ/kg K\n",
+ "T1= 80. ##C\n",
+ "m2= 1. ##kg\n",
+ "cv2= 0.6299 ##kJ/kg K\n",
+ "T2= 150. ##C\n",
+ "M= 32. ##kg\n",
+ "M1= 44. ##kg\n",
+ "V1= 0.11437 ##m^3\n",
+ "V2= 0.1 ##m^2\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "T= (m1*cv1*(273.15+T1)+m2*cv2*(273.15+T2))/(m1*cv1+m2*cv2)\n",
+ "p= ((m1/M)+(m2/M1))*R*T/(V1+V2)\n",
+ "S= m1*(cv1*math.log(T/(273.15+T1))+(R/M)*math.log((V1+V2)/V1))+m2*(cv2*math.log(T/(273.15+T2))+(R/M1)*math.log((V1+V2)/V2))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('final temperature=',T,'kPa')\n",
+ "print'%s %.1f %s'% ('final pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'% ('change in entropy=',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature= 399.3 kPa\n",
+ "final pressure= 594.0 kPa\n",
+ "change in entropy= 0.2291 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg268\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wet-bulb temoerature and minimum temperature and amount of water injected\n",
+ "##initialisation of variables\n",
+ "Twb= 22. ##C\n",
+ "Tmin= 22.3 ##C\n",
+ "w2= 0.0170 ##kg/kg dry air\n",
+ "w1= 0.0093 ##kg/kg dry air\n",
+ "##CALCULATIONS\n",
+ "m= w2-w1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% (' wet-bulb temperature=',Twb,'C')\n",
+ "print'%s %.f %s'% ('minimum temperature=',Tmin,'1C')\n",
+ "print'%s %.4f %s'% ('amount of water injected=',m,'kg/kg dry air')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " wet-bulb temperature= 22 C\n",
+ "minimum temperature= 22 1C\n",
+ "amount of water injected= 0.0077 kg/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate state after mixing\n",
+ "##initialisation of variables\n",
+ "w3= 0.0178 ##kg/kgair\n",
+ "w4= 0.0172 ##kg/kgair\n",
+ "##CALCULATIONS\n",
+ "dw= w3-w4\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% (' state after mixing=',dw,'kg/kgair')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " state after mixing= 0.0006 kg/kgair\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate air mass flow rate and amount of water to be added\n",
+ "##initialisation of variables\n",
+ "m= 20000. ##kg/h\n",
+ "T1= 42. ##C\n",
+ "T2= 22. ##C\n",
+ "J= 4.186 ##cal\n",
+ "h1= 54. ##kJ/kg\n",
+ "h2= 94.8 ##kJ/kg\n",
+ "w1= 0.0105 ##kg/h kg\n",
+ "w2= 0.0244 ##kg/h kg\n",
+ "##CALCULATIONS\n",
+ "ma= m*(T1-T2)*J/((h2-h1-J*T2*(w2-w1)))\n",
+ "mw= ma*(w2-w1)\n",
+ "m4= m-mw\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('air mass flow rate=',ma,'kg/hr')\n",
+ "print'%s %.f %s'%('amount of water to be added=',m4,'kg/hr')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air mass flow rate= 42368.5 kg/hr\n",
+ "amount of water to be added= 19411 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum useful work\n",
+ "##initialisation of variables\n",
+ "x= 0.79\n",
+ "P0= 101 ##kPa\n",
+ "P= 20 ##Mpa\n",
+ "V= 0.032 ##m^3\n",
+ "##CALCULATIONS\n",
+ "p= x*P0\n",
+ "Wrev= P*10*10*10*V*(math.log(P/(p*math.pow(10,-3)))+((p*math.pow(10,-3))/P)-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' maximum useful work=',Wrev,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum useful work= 2898.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/chapter12_2.ipynb b/Thermodynamics:_From_concepts_to_applications/chapter12_2.ipynb
new file mode 100755
index 00000000..aea962e5
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/chapter12_2.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2837d214113f06819e10997f047a7eaa67f457e584a6b0f4db06b83606bfd8b8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-ideal gas mixtures and humid air"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate molecular weight of air\n",
+ "##initialisation of variables\n",
+ "x= 0.78\n",
+ "x1= 0.21\n",
+ "x2= 0.008\n",
+ "x3= 0.002\n",
+ "MN2= 28.013 ##gms\n",
+ "MO2= 32. ##gms\n",
+ "MAr= 39.948 ##gms\n",
+ "MH2O= 18.016 ##gms\n",
+ "##CALCULATIONS\n",
+ "M= x*MN2+x1*MO2+x2*MAr+x3*MH2O\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('molecular wight of air=',M,'kg/kmol')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molecular wight of air= 28.926 kg/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate average value and mass\n",
+ "##initialisation of variables\n",
+ "M= 30.04 ##kg/kmol\n",
+ "R= 8.3143 ##J/mol K\n",
+ "p= 100. ##kPa\n",
+ "V= 0.2 ##m^3\n",
+ "T= 25. ##C\n",
+ "##CALCULATIONS\n",
+ "R1= R/M\n",
+ "m= p*V/(R1*(273.15+T))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('average value of R=',R1,'kJ/kg K')\n",
+ "print'%s %.3f %s'% ('mass=',m,'kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of R= 0.2768 kJ/kg K\n",
+ "mass= 0.242 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and final pressure and change in entropy\n",
+ "##initialisation of variables\n",
+ "m1= 0.5 ##kg\n",
+ "cv1= 0.6496 ##kJ/kg K\n",
+ "T1= 80. ##C\n",
+ "m2= 1. ##kg\n",
+ "cv2= 0.6299 ##kJ/kg K\n",
+ "T2= 150. ##C\n",
+ "M= 32. ##kg\n",
+ "M1= 44. ##kg\n",
+ "V1= 0.11437 ##m^3\n",
+ "V2= 0.1 ##m^2\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "T= (m1*cv1*(273.15+T1)+m2*cv2*(273.15+T2))/(m1*cv1+m2*cv2)\n",
+ "p= ((m1/M)+(m2/M1))*R*T/(V1+V2)\n",
+ "S= m1*(cv1*math.log(T/(273.15+T1))+(R/M)*math.log((V1+V2)/V1))+m2*(cv2*math.log(T/(273.15+T2))+(R/M1)*math.log((V1+V2)/V2))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('final temperature=',T,'kPa')\n",
+ "print'%s %.1f %s'% ('final pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'% ('change in entropy=',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature= 399.3 kPa\n",
+ "final pressure= 594.0 kPa\n",
+ "change in entropy= 0.2291 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg268\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wet-bulb temoerature and minimum temperature and amount of water injected\n",
+ "##initialisation of variables\n",
+ "Twb= 22. ##C\n",
+ "Tmin= 22.3 ##C\n",
+ "w2= 0.0170 ##kg/kg dry air\n",
+ "w1= 0.0093 ##kg/kg dry air\n",
+ "##CALCULATIONS\n",
+ "m= w2-w1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% (' wet-bulb temperature=',Twb,'C')\n",
+ "print'%s %.f %s'% ('minimum temperature=',Tmin,'1C')\n",
+ "print'%s %.4f %s'% ('amount of water injected=',m,'kg/kg dry air')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " wet-bulb temperature= 22 C\n",
+ "minimum temperature= 22 1C\n",
+ "amount of water injected= 0.0077 kg/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate state after mixing\n",
+ "##initialisation of variables\n",
+ "w3= 0.0178 ##kg/kgair\n",
+ "w4= 0.0172 ##kg/kgair\n",
+ "##CALCULATIONS\n",
+ "dw= w3-w4\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% (' state after mixing=',dw,'kg/kgair')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " state after mixing= 0.0006 kg/kgair\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate air mass flow rate and amount of water to be added\n",
+ "##initialisation of variables\n",
+ "m= 20000. ##kg/h\n",
+ "T1= 42. ##C\n",
+ "T2= 22. ##C\n",
+ "J= 4.186 ##cal\n",
+ "h1= 54. ##kJ/kg\n",
+ "h2= 94.8 ##kJ/kg\n",
+ "w1= 0.0105 ##kg/h kg\n",
+ "w2= 0.0244 ##kg/h kg\n",
+ "##CALCULATIONS\n",
+ "ma= m*(T1-T2)*J/((h2-h1-J*T2*(w2-w1)))\n",
+ "mw= ma*(w2-w1)\n",
+ "m4= m-mw\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('air mass flow rate=',ma,'kg/hr')\n",
+ "print'%s %.f %s'%('amount of water to be added=',m4,'kg/hr')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air mass flow rate= 42368.5 kg/hr\n",
+ "amount of water to be added= 19411 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum useful work\n",
+ "##initialisation of variables\n",
+ "x= 0.79\n",
+ "P0= 101 ##kPa\n",
+ "P= 20 ##Mpa\n",
+ "V= 0.032 ##m^3\n",
+ "##CALCULATIONS\n",
+ "p= x*P0\n",
+ "Wrev= P*10*10*10*V*(math.log(P/(p*math.pow(10,-3)))+((p*math.pow(10,-3))/P)-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' maximum useful work=',Wrev,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum useful work= 2898.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/chapter12_3.ipynb b/Thermodynamics:_From_concepts_to_applications/chapter12_3.ipynb
new file mode 100755
index 00000000..5fdaadb8
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/chapter12_3.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:452c6dcc441bc91e8f34d763554249fd3e1009077055510d7afc6705627abbf4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-ideal gas mixtures and humid air"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate molecular weight of air\n",
+ "##initialisation of variables\n",
+ "x= 0.78\n",
+ "x1= 0.21\n",
+ "x2= 0.008\n",
+ "x3= 0.002\n",
+ "MN2= 28.013 ##gms\n",
+ "MO2= 32. ##gms\n",
+ "MAr= 39.948 ##gms\n",
+ "MH2O= 18.016 ##gms\n",
+ "##CALCULATIONS\n",
+ "M= x*MN2+x1*MO2+x2*MAr+x3*MH2O\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('molecular wight of air=',M,'kg/kmol')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molecular wight of air= 28.926 kg/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate average value and mass\n",
+ "##initialisation of variables\n",
+ "M= 30.04 ##kg/kmol\n",
+ "R= 8.3143 ##J/mol K\n",
+ "p= 100. ##kPa\n",
+ "V= 0.2 ##m^3\n",
+ "T= 25. ##C\n",
+ "##CALCULATIONS\n",
+ "R1= R/M\n",
+ "m= p*V/(R1*(273.15+T))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('average value of R=',R1,'kJ/kg K')\n",
+ "print'%s %.3f %s'% ('mass=',m,'kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of R= 0.2768 kJ/kg K\n",
+ "mass= 0.242 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg343"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and final pressure and change in entropy\n",
+ "##initialisation of variables\n",
+ "m1= 0.5 ##kg\n",
+ "cv1= 0.6496 ##kJ/kg K\n",
+ "T1= 80. ##C\n",
+ "m2= 1. ##kg\n",
+ "cv2= 0.6299 ##kJ/kg K\n",
+ "T2= 150. ##C\n",
+ "M= 32. ##kg\n",
+ "M1= 44. ##kg\n",
+ "V1= 0.11437 ##m^3\n",
+ "V2= 0.1 ##m^2\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "T= (m1*cv1*(273.15+T1)+m2*cv2*(273.15+T2))/(m1*cv1+m2*cv2)\n",
+ "p= ((m1/M)+(m2/M1))*R*T/(V1+V2)\n",
+ "S= m1*(cv1*math.log(T/(273.15+T1))+(R/M)*math.log((V1+V2)/V1))+m2*(cv2*math.log(T/(273.15+T2))+(R/M1)*math.log((V1+V2)/V2))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('final temperature=',T,'kPa')\n",
+ "print'%s %.1f %s'% ('final pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'% ('change in entropy=',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature= 399.3 kPa\n",
+ "final pressure= 594.0 kPa\n",
+ "change in entropy= 0.2291 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg354\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wet-bulb temoerature and minimum temperature and amount of water injected\n",
+ "##initialisation of variables\n",
+ "Twb= 22. ##C\n",
+ "Tmin= 22.3 ##C\n",
+ "w2= 0.0170 ##kg/kg dry air\n",
+ "w1= 0.0093 ##kg/kg dry air\n",
+ "##CALCULATIONS\n",
+ "m= w2-w1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% (' wet-bulb temperature=',Twb,'C')\n",
+ "print'%s %.f %s'% ('minimum temperature=',Tmin,'1C')\n",
+ "print'%s %.4f %s'% ('amount of water injected=',m,'kg/kg dry air')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " wet-bulb temperature= 22 C\n",
+ "minimum temperature= 22 1C\n",
+ "amount of water injected= 0.0077 kg/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg356"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate state after mixing\n",
+ "##initialisation of variables\n",
+ "w3= 0.0178 ##kg/kgair\n",
+ "w4= 0.0172 ##kg/kgair\n",
+ "##CALCULATIONS\n",
+ "dw= w3-w4\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% (' state after mixing=',dw,'kg/kgair')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " state after mixing= 0.0006 kg/kgair\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate air mass flow rate and amount of water to be added\n",
+ "##initialisation of variables\n",
+ "m= 20000. ##kg/h\n",
+ "T1= 42. ##C\n",
+ "T2= 22. ##C\n",
+ "J= 4.186 ##cal\n",
+ "h1= 54. ##kJ/kg\n",
+ "h2= 94.8 ##kJ/kg\n",
+ "w1= 0.0105 ##kg/h kg\n",
+ "w2= 0.0244 ##kg/h kg\n",
+ "##CALCULATIONS\n",
+ "ma= m*(T1-T2)*J/((h2-h1-J*T2*(w2-w1)))\n",
+ "mw= ma*(w2-w1)\n",
+ "m4= m-mw\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('air mass flow rate=',ma,'kg/hr')\n",
+ "print'%s %.f %s'%('amount of water to be added=',m4,'kg/hr')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air mass flow rate= 42368.5 kg/hr\n",
+ "amount of water to be added= 19411 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum useful work\n",
+ "##initialisation of variables\n",
+ "x= 0.79\n",
+ "P0= 101 ##kPa\n",
+ "P= 20 ##Mpa\n",
+ "V= 0.032 ##m^3\n",
+ "##CALCULATIONS\n",
+ "p= x*P0\n",
+ "Wrev= P*10*10*10*V*(math.log(P/(p*math.pow(10,-3)))+((p*math.pow(10,-3))/P)-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' maximum useful work=',Wrev,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum useful work= 2898.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/chapter12_ideal_gas_mixtures_and_humid_air.ipynb b/Thermodynamics:_From_concepts_to_applications/chapter12_ideal_gas_mixtures_and_humid_air.ipynb
new file mode 100755
index 00000000..aea962e5
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/chapter12_ideal_gas_mixtures_and_humid_air.ipynb
@@ -0,0 +1,314 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2837d214113f06819e10997f047a7eaa67f457e584a6b0f4db06b83606bfd8b8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter12-ideal gas mixtures and humid air"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example1-pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate molecular weight of air\n",
+ "##initialisation of variables\n",
+ "x= 0.78\n",
+ "x1= 0.21\n",
+ "x2= 0.008\n",
+ "x3= 0.002\n",
+ "MN2= 28.013 ##gms\n",
+ "MO2= 32. ##gms\n",
+ "MAr= 39.948 ##gms\n",
+ "MH2O= 18.016 ##gms\n",
+ "##CALCULATIONS\n",
+ "M= x*MN2+x1*MO2+x2*MAr+x3*MH2O\n",
+ "##RESULTS\n",
+ "print'%s %.3f %s'% ('molecular wight of air=',M,'kg/kmol')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molecular wight of air= 28.926 kg/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example2-pg254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate average value and mass\n",
+ "##initialisation of variables\n",
+ "M= 30.04 ##kg/kmol\n",
+ "R= 8.3143 ##J/mol K\n",
+ "p= 100. ##kPa\n",
+ "V= 0.2 ##m^3\n",
+ "T= 25. ##C\n",
+ "##CALCULATIONS\n",
+ "R1= R/M\n",
+ "m= p*V/(R1*(273.15+T))\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% ('average value of R=',R1,'kJ/kg K')\n",
+ "print'%s %.3f %s'% ('mass=',m,'kg')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "average value of R= 0.2768 kJ/kg K\n",
+ "mass= 0.242 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example3-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate final temperature and final pressure and change in entropy\n",
+ "##initialisation of variables\n",
+ "m1= 0.5 ##kg\n",
+ "cv1= 0.6496 ##kJ/kg K\n",
+ "T1= 80. ##C\n",
+ "m2= 1. ##kg\n",
+ "cv2= 0.6299 ##kJ/kg K\n",
+ "T2= 150. ##C\n",
+ "M= 32. ##kg\n",
+ "M1= 44. ##kg\n",
+ "V1= 0.11437 ##m^3\n",
+ "V2= 0.1 ##m^2\n",
+ "R= 8.314 ##J/mol K\n",
+ "##CALCULATIONS\n",
+ "T= (m1*cv1*(273.15+T1)+m2*cv2*(273.15+T2))/(m1*cv1+m2*cv2)\n",
+ "p= ((m1/M)+(m2/M1))*R*T/(V1+V2)\n",
+ "S= m1*(cv1*math.log(T/(273.15+T1))+(R/M)*math.log((V1+V2)/V1))+m2*(cv2*math.log(T/(273.15+T2))+(R/M1)*math.log((V1+V2)/V2))\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% ('final temperature=',T,'kPa')\n",
+ "print'%s %.1f %s'% ('final pressure=',p,'kPa')\n",
+ "print'%s %.4f %s'% ('change in entropy=',S,'kJ/K')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final temperature= 399.3 kPa\n",
+ "final pressure= 594.0 kPa\n",
+ "change in entropy= 0.2291 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example4-pg268\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wet-bulb temoerature and minimum temperature and amount of water injected\n",
+ "##initialisation of variables\n",
+ "Twb= 22. ##C\n",
+ "Tmin= 22.3 ##C\n",
+ "w2= 0.0170 ##kg/kg dry air\n",
+ "w1= 0.0093 ##kg/kg dry air\n",
+ "##CALCULATIONS\n",
+ "m= w2-w1\n",
+ "##RESULTS\n",
+ "print'%s %.f %s'% (' wet-bulb temperature=',Twb,'C')\n",
+ "print'%s %.f %s'% ('minimum temperature=',Tmin,'1C')\n",
+ "print'%s %.4f %s'% ('amount of water injected=',m,'kg/kg dry air')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " wet-bulb temperature= 22 C\n",
+ "minimum temperature= 22 1C\n",
+ "amount of water injected= 0.0077 kg/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5-pg269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate state after mixing\n",
+ "##initialisation of variables\n",
+ "w3= 0.0178 ##kg/kgair\n",
+ "w4= 0.0172 ##kg/kgair\n",
+ "##CALCULATIONS\n",
+ "dw= w3-w4\n",
+ "##RESULTS\n",
+ "print'%s %.4f %s'% (' state after mixing=',dw,'kg/kgair')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " state after mixing= 0.0006 kg/kgair\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example6-pg271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate air mass flow rate and amount of water to be added\n",
+ "##initialisation of variables\n",
+ "m= 20000. ##kg/h\n",
+ "T1= 42. ##C\n",
+ "T2= 22. ##C\n",
+ "J= 4.186 ##cal\n",
+ "h1= 54. ##kJ/kg\n",
+ "h2= 94.8 ##kJ/kg\n",
+ "w1= 0.0105 ##kg/h kg\n",
+ "w2= 0.0244 ##kg/h kg\n",
+ "##CALCULATIONS\n",
+ "ma= m*(T1-T2)*J/((h2-h1-J*T2*(w2-w1)))\n",
+ "mw= ma*(w2-w1)\n",
+ "m4= m-mw\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'%('air mass flow rate=',ma,'kg/hr')\n",
+ "print'%s %.f %s'%('amount of water to be added=',m4,'kg/hr')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air mass flow rate= 42368.5 kg/hr\n",
+ "amount of water to be added= 19411 kg/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example7-pg272"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate maximum useful work\n",
+ "##initialisation of variables\n",
+ "x= 0.79\n",
+ "P0= 101 ##kPa\n",
+ "P= 20 ##Mpa\n",
+ "V= 0.032 ##m^3\n",
+ "##CALCULATIONS\n",
+ "p= x*P0\n",
+ "Wrev= P*10*10*10*V*(math.log(P/(p*math.pow(10,-3)))+((p*math.pow(10,-3))/P)-1)\n",
+ "##RESULTS\n",
+ "print'%s %.1f %s'% (' maximum useful work=',Wrev,'kJ')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " maximum useful work= 2898.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work.png
new file mode 100755
index 00000000..2d9c8e40
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_1.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_1.png
new file mode 100755
index 00000000..2d9c8e40
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_1.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_2.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_2.png
new file mode 100755
index 00000000..2d9c8e40
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_2.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_3.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_3.png
new file mode 100755
index 00000000..2d9c8e40
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter3-work_3.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems.png
new file mode 100755
index 00000000..13b8ea99
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_1.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_1.png
new file mode 100755
index 00000000..13b8ea99
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_1.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_2.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_2.png
new file mode 100755
index 00000000..13b8ea99
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_2.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_3.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_3.png
new file mode 100755
index 00000000..13b8ea99
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter4_simple_systems_3.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_ideal_gas.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_ideal_gas.png
new file mode 100755
index 00000000..a00a3f7d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_ideal_gas.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems_.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems_.png
new file mode 100755
index 00000000..a00a3f7d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems_.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__1.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__1.png
new file mode 100755
index 00000000..a00a3f7d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__1.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__2.png b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__2.png
new file mode 100755
index 00000000..a00a3f7d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/Chapter5_simple_systems__2.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/chap13.png b/Thermodynamics:_From_concepts_to_applications/screenshots/chap13.png
new file mode 100755
index 00000000..3197e8d9
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/chap13.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/chapter12.png b/Thermodynamics:_From_concepts_to_applications/screenshots/chapter12.png
new file mode 100755
index 00000000..a0842233
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/chapter12.png
Binary files differ
diff --git a/Thermodynamics:_From_concepts_to_applications/screenshots/chapter14.png b/Thermodynamics:_From_concepts_to_applications/screenshots/chapter14.png
new file mode 100755
index 00000000..80d3b34d
--- /dev/null
+++ b/Thermodynamics:_From_concepts_to_applications/screenshots/chapter14.png
Binary files differ
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter1.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter1.ipynb
new file mode 100755
index 00000000..3e2c2051
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter1.ipynb
@@ -0,0 +1,387 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Introduction and Basic Concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-2, Page No.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "p=850;# density in kg/m^3\n",
+ "V=2; # volumne of tank in m^3\n",
+ "\n",
+ "#Calculations\n",
+ "m=p*V;# mass, density and volumne corealtion\n",
+ "\n",
+ "#Result\n",
+ "print 'The amount of oil in tank is %i kg' %round(m,0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The amount of oil in tank is 1700 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-3, Page No.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constants used\n",
+ "g=32.174;# gravitational constant in ft/s^2\n",
+ "\n",
+ "#given values\n",
+ "m=1; # mass of 1.00 lbm is subjected to standard earth gravity\n",
+ "\n",
+ "#Calculations\n",
+ "w=(m*g)/g; # weight is mass times the local value of gravitational acceleration\n",
+ "#dimensionally the above equation is represented as lbm * ft/s^2 * (lbf/ft/s^2)\n",
+ "\n",
+ "#Result\n",
+ "print 'The weight on earth is %i lbf' %w\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The weight on earth is 1 lbf\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-4, Page No.21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Example 1.4\n",
+ "\n",
+ "# Given values\n",
+ "Tc=10; #change in temp in Celcius\n",
+ "\n",
+ "# Calculations\n",
+ "Tk=Tc;\n",
+ "Tr=1.8*Tk;#conversion scale of temperature change from K to R\n",
+ "Tf=Tr;\n",
+ "# calculated using the corealtions b/w these scales\n",
+ "\n",
+ "#Results\n",
+ "print 'the corresponding change is %i K' %Tk\n",
+ "print 'the corresponding change is %i R' %Tr\n",
+ "print 'the corresponding change is %i F' %Tf\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the corresponding change is 10 K\n",
+ "the corresponding change is 18 R\n",
+ "the corresponding change is 18 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-5, Page No.23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "Patm=14.5; #atmospheric pressure in psi\n",
+ "Pvac=5.8; #vacuum gage reading in psi\n",
+ "\n",
+ "#Calculations\n",
+ "Pabs=Patm-Pvac;#pressure in vaccumm is always treated to be negative\n",
+ "\n",
+ "#Results\n",
+ "print'the absolute pressure in the chamber %f psi'%round(Pabs,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the absolute pressure in the chamber 8.700000 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-6, Page No.26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constants used\n",
+ "pw=1000; # density of water in kg/m^3;\n",
+ "g=9.81; # acceleration due to gravity in m/s^2;\n",
+ " \n",
+ "#Given values\n",
+ "SG=0.85;# specific gravity of manometric fluid\n",
+ "h=0.55;# converting height from cm to m\n",
+ "Patm=96;# atmospheric pressure in kPa\n",
+ "\n",
+ "# Calculations\n",
+ "p=SG*pw;\n",
+ "Ptank=Patm+(p*g*h/1000); # calculating pressure using liquid at same height have same pressure\n",
+ "\n",
+ "#Results\n",
+ "print 'absolute pressure in tank %f kPa' %round(Ptank,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "absolute pressure in tank 100.600000 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-7, Page No.28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constants used\n",
+ "g=9.81;#acceleration due to gravity in m/s^2;\n",
+ "\n",
+ "#Given values\n",
+ "h1=0.1;# distance b/w point 1 at air-water interface and point 2 at mercury-air interface in m\n",
+ "h2=0.2;# distance b/w oil-water interface and mercury-oil interface in m\n",
+ "h3=0.35;# distance b/w air-mercury interface and mercury-oil interface in m\n",
+ "pw=1000;# density of water in kg/m^3\n",
+ "pHg=13600;# density of mercury in kg/m^3\n",
+ "poil=800;# density of oil in kg/m^3\n",
+ "Patm=85.6;# atmospheric pressure in kPa\n",
+ "\n",
+ "#Calculation\n",
+ "P1=Patm-(pw*g*h1+poil*g*h2-pHg*g*h3)/1000;#calculating pressure using liquid at same height have same pressure\n",
+ "\n",
+ "#Results\n",
+ "print 'the air pressure in tank %i kPa' %round(P1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the air pressure in tank 130 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-8, Page No.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constants used\n",
+ "g=9.81;# acceleration due to gravity in m/s^2;\n",
+ "\n",
+ "#Given values\n",
+ "pHg=13570;# density of mercury at 10 C in kg/m^3\n",
+ "h=0.74;# converting barometric reading into m from mm\n",
+ "\n",
+ "#Calculationa\n",
+ "Patm=pHg*g*h/1000;# standard pressure formula\n",
+ "\n",
+ "#Results\n",
+ "print 'the atmospheric pressure %f kPa' %round(Patm,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the atmospheric pressure 98.500000 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-9, Page No.31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#constants used\n",
+ "g=9.81;#acceleration due to gravity in m/s^2;\n",
+ "\n",
+ "#given values\n",
+ "m=60;# mass of piston in kg\n",
+ "Patm=0.97;# atmospheric pressure in kPa\n",
+ "A=0.04;# cross-sectional area in m^2\n",
+ "\n",
+ "#calculation\n",
+ "P=Patm+(m*g/A)/100000;# standard pressure formula\n",
+ "print 'The pressure inside the cylinder %f bar' %round(P,2)\n",
+ "#The volume change will have no effect on the free-body diagram drawn in part (a), and therefore the pressure inside the cylinder will remain the same\n",
+ "print('If some heat is transferred to the gas and its volume is doubled, there is no change in pressure');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The pressure inside the cylinder 1.120000 bar\n",
+ "If some heat is transferred to the gas and its volume is doubled, there is no change in pressure\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-10, Page No.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from scipy.integrate import quad \n",
+ "from pylab import *\n",
+ "\n",
+ "#Constants used\n",
+ "g=9.81;#acceleration due to gravity in m/s^2;\n",
+ "\n",
+ "#Given values\n",
+ "p=1040;# density on the water surface in kg/m^3\n",
+ "h1=0.8;# thickness of surface zone\n",
+ "H=4;# thickness of gradient zone\n",
+ "x0=0.0;# lower limit of integration\n",
+ "x1=4.0;# upper limit of integration\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "P1=p*g*h1/1000;#standard pressure determination formula\n",
+ "#P2 = integration of the exp. p*g*(math.sqrt(1+(math.tan(math.pi*z/4/H)^2))) b/w 0-4\n",
+ "def intgrnd1(z): \n",
+ " return (p*g*(math.sqrt(1+(math.tan(math.pi*(z)/4/H)**2))) )#integrant\n",
+ "P2, err = quad(intgrnd1, x0, x1) \n",
+ "P2=P2/1000;#converting into kPa\n",
+ "P=P1+P2;\n",
+ "\n",
+ "#Results\n",
+ "print 'the gage pressure at the bottom of gradient zone %f kPa' %round(P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the gage pressure at the bottom of gradient zone 54.000000 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter10.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter10.ipynb
new file mode 100755
index 00000000..df284751
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter10.ipynb
@@ -0,0 +1,628 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10: Vapor and Combined Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-1 ,Page No.555"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=75;#outlet pressure at compressor in kPa\n",
+ "P2=3000;#inlet pressure at turbine in kPa\n",
+ "P3=P2;\n",
+ "T3=350;#steam inlet temperature in C\n",
+ "P4=P1;\n",
+ "\n",
+ "#from steam tables\n",
+ "#at state 1\n",
+ "v1=0.001037;\n",
+ "h1=384.44;\n",
+ "#at state 3\n",
+ "h3=3116.1;\n",
+ "s3=6.7450;\n",
+ "#at state 4\n",
+ "s4=s3;\n",
+ "sf=1.2132;\n",
+ "sfg=6.2426;\n",
+ "hf=384.44;\n",
+ "hfg=2278;\n",
+ "\n",
+ "#calculations\n",
+ "win=v1*(P2-P1);\n",
+ "h2=h1+win;\n",
+ "x4=(s4-sf)/sfg;\n",
+ "h4=hf+x4*hfg;\n",
+ "qin=h3-h2;\n",
+ "qout=h4-h1;\n",
+ "nth=1-(qout/qin);\n",
+ "print'thermal efficency is %f'%round(nth,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "thermal efficency is 0.260000\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-2 ,Page No.559"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "#from figure\n",
+ "P1=9;#in kPa\n",
+ "T1=38;#in C\n",
+ "P2=16000;#in kPa\n",
+ "P3=15.9;#in MPa\n",
+ "T3=35;#in C\n",
+ "P4=15.2;#in MPa\n",
+ "T4=625;#in C\n",
+ "P5=15;#in MPa\n",
+ "T5=600;#in C\n",
+ "#from question\n",
+ "nT=0.87;#isentropic efficiency of turbine \n",
+ "nP=0.85;#isentropic efficiency of pump\n",
+ "m=15;#mass flow rate in kg/s\n",
+ "\n",
+ "#from steam tables\n",
+ "v1=0.001009;\n",
+ "h5=3583.1;\n",
+ "h6s=2115.3;\n",
+ "h4=3647.6;\n",
+ "h3=160.1;\n",
+ "\n",
+ "#calculations\n",
+ "Win=v1*(P2-P1)/nP;\n",
+ "Wout=nT*(h5-h6s);\n",
+ "qin=h4-h3;\n",
+ "Wnet=Wout-Win;\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficency is %f'%round(nth,3)\n",
+ "Wnet=m*Wnet;\n",
+ "print'power output %f MW'%round(Wnet/1000,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "thermal efficency is 0.361000\n",
+ "power output 18.870000 MW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-3 ,Page No.562"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=10;#outlet pressure at compressor in kPa\n",
+ "P2=3000;#inlet pressure at turbine in kPa\n",
+ "P3=P2;\n",
+ "T3=350;#steam inlet temperature in C\n",
+ "P4=P1;\n",
+ "\n",
+ "#from steam tables\n",
+ "#at state 1\n",
+ "h1=191.81;\n",
+ "v1=0.00101;\n",
+ "#at state 2\n",
+ "#s2=s1\n",
+ "#at state 3\n",
+ "h3=3116.1;\n",
+ "s3=6.7450;\n",
+ "#at state 4\n",
+ "s4=s3;\n",
+ "sf=0.6492;\n",
+ "sfg=7.4996;\n",
+ "hf=191.81;\n",
+ "hfg=2392.1;\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "win=v1*(P2-P1);\n",
+ "h2=h1+win;\n",
+ "x4=(s4-sf)/sfg;\n",
+ "h4=hf+x4*hfg;\n",
+ "qin=h3-h2;\n",
+ "qout=h4-h1;\n",
+ "nth=1-(qout/qin);\n",
+ "print'the thermal efficiency of this power plant is %f'%round(nth,3);\n",
+ "#part - b\n",
+ "#States 1 and 2 remain the same in this case, and the enthalpies at state 3 (3 MPa and 600\u00b0C) and state 4 (10 kPa and s4=s3) are determined to be\n",
+ "h3=3682.8;\n",
+ "h4=2380.3;\n",
+ "x4=0.915;\n",
+ "qin=h3-h2;\n",
+ "qout=h4-h1;\n",
+ "nth=1-(qout/qin);\n",
+ "print'the thermal efficiency if steam is superheated to 600\u00b0 instead of 350\u00b0C is %f'%round(nth,3);\n",
+ "#part - c\n",
+ "#State 1 remains the same in this case, but the other states change. The enthalpies at state 2 (15 MPa and s2 s1), state 3 (15 MPa and 600\u00b0C),and state 4 (10 kPa and s4 s3) are determined in a similar manner to be\n",
+ "h2=206.95;\n",
+ "h3=3583.1;\n",
+ "h4=2115.3;\n",
+ "x4=0.804;\n",
+ "qin=h3-h2;\n",
+ "qout=h4-h1;\n",
+ "nth=1-(qout/qin);\n",
+ "print'the thermal efficiency if the boiler pressure is raised to 15 MPa while the turbine inlet temperature is maintained at 600\u00b0C is %f'%round(nth,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the thermal efficiency of this power plant is 0.334000\n",
+ "the thermal efficiency if steam is superheated to 600\u00b0 instead of 350\u00b0C is 0.373000\n",
+ "the thermal efficiency if the boiler pressure is raised to 15 MPa while the turbine inlet temperature is maintained at 600\u00b0C is 0.430000\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-4 ,Page No.566"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=10;#outlet pressure at compressor in kPa\n",
+ "P2=15000;#inlet pressure at turbine in kPa\n",
+ "P3=P2;\n",
+ "T3=600;#steam inlet temperature in C\n",
+ "P4=4000;#in kPa\n",
+ "T5=T3;\n",
+ "P6=P1;\n",
+ "x6=0.896;#dryness fraction\n",
+ "\n",
+ "#from steam table\n",
+ "#at state 1\n",
+ "h1=191.81;\n",
+ "v1=0.00101;\n",
+ "#at state 3\n",
+ "h3=3593.1;\n",
+ "s3=6.6796;\n",
+ "#at state 4\n",
+ "h4=3155;\n",
+ "T4=375.5;\n",
+ "#at state 6\n",
+ "sf=0.6492;\n",
+ "sfg=7.4996;\n",
+ "hf=191.81;\n",
+ "hfg=2392.1;\n",
+ "\n",
+ "#calculations\n",
+ "s6=sf+x6*sfg;\n",
+ "h6=hf+x6*hfg;\n",
+ "#s5 = s6\n",
+ "#from tables\n",
+ "P5=4000.0;#in kPa\n",
+ "h5=3674.9;\n",
+ "print'the pressure at which the steam should be reheated %i MPa'%(P5/1000);\n",
+ "#s2 = s1\n",
+ "win=v1*(P2-P1);\n",
+ "h2=h1+win;\n",
+ "qin=(h3-h2)+(h5-h4);\n",
+ "qout=h6-h1;\n",
+ "nth=1-(qout/qin);\n",
+ "print'thermal efficency is %f'%round(nth,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the pressure at which the steam should be reheated 4 MPa\n",
+ "thermal efficency is 0.451000\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-5 ,Page No.571"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=10;#outlet pressure at compressor in kPa\n",
+ "P2=1200;#in kPa\n",
+ "P3=P2;\n",
+ "P4=15000;#inlet pressure at turbine in kPa\n",
+ "P5=P4;\n",
+ "T5=600;#steam inlet temperature in C\n",
+ "P6=P2;\n",
+ "P7=P1;\n",
+ "\n",
+ "#from steam table\n",
+ "#at state 1\n",
+ "h1=191.81;\n",
+ "v1=0.00101;\n",
+ "#at state 3\n",
+ "h3=798.33;\n",
+ "v3=0.001138;\n",
+ "#at state 4\n",
+ "h4=3155;\n",
+ "T4=375.5;\n",
+ "#at state 5\n",
+ "h5=3583.1;\n",
+ "s5=6.6796;\n",
+ "#at state 6\n",
+ "h6=2860.2;\n",
+ "T6=218.4;\n",
+ "#at state 7\n",
+ "P7=10;\n",
+ "sf=0.6492;\n",
+ "sfg=7.4996;\n",
+ "hf=191.81;\n",
+ "hfg=2392.1;\n",
+ "\n",
+ "#calculations\n",
+ "#s2 = s1\n",
+ "win=v1*(P2-P1);\n",
+ "h2=h1+win;\n",
+ "#s4 = s3\n",
+ "win=v3*(P4-P3);\n",
+ "h4=h3+win;\n",
+ "s7=s5;\n",
+ "x7=(s7-sf)/sfg;\n",
+ "h7=hf+(x7*hfg);\n",
+ "#y is the fraction of steam extracted from the turbine\n",
+ "y=(h3-h2)/(h6-h2);\n",
+ "qin=h5-h4;\n",
+ "qout=(1-y)*(h7-h1);\n",
+ "nth=1-(qout/qin);\n",
+ "print'fraction of steam extracted is %f'%round(y,4);\n",
+ "print'thermal efficency is %f'%round(nth,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of steam extracted is 0.226900\n",
+ "thermal efficency is 0.463000\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-6 ,Page No.574"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=10;#outlet pressure at compressor in kPa\n",
+ "P2=500;#steam extracted from low-pressure turbine in kPa\n",
+ "P3=P2;\n",
+ "P4=15000;#inlet pressure at turbine in kPa\n",
+ "P5=P4;\n",
+ "P6=4000;#steam extracted from turbine at pressure in kPa\n",
+ "P7=P5;\n",
+ "P8=P7;\n",
+ "P9=P7;\n",
+ "P10=P6;\n",
+ "P11=P10;\n",
+ "P12=P3;\n",
+ "P13=P1;\n",
+ "\n",
+ "#enthalpies at the various states and the pump work per unit mass of fluid flowing through them are\n",
+ "h1=191.81;\n",
+ "h2=192.30;\n",
+ "h3=640.09;\n",
+ "h4=643.92;\n",
+ "h5=1087.4;\n",
+ "h6=h5;\n",
+ "h7=1101.2;\n",
+ "h8=1089.8;\n",
+ "h9=3583.1;\n",
+ "h10=3155;\n",
+ "h11=3679.9;\n",
+ "h12=3014.8;\n",
+ "h13=2335.7;\n",
+ "wIin=0.49;\n",
+ "wIIin=3.83;\n",
+ "wIIIin=13.77;\n",
+ "\n",
+ "#calculations\n",
+ "y=(h5-h4)/((h10-h6)+(h5-h4));\n",
+ "z=(1-y)*(h3-h2)/(h12-h2);\n",
+ "h8=(1-y)*h5+(y*h7);\n",
+ "qin=(h9-h8)+(1-y)*(h11-h10);\n",
+ "qout=(1-y-z)*(h13-h1);\n",
+ "nth=1-(qout/qin);\n",
+ "print'fraction of steam extracted from closed feedwater is %f'%round(y,4);\n",
+ "print'fraction of steam extracted from open feedwater is %f'%round(z,4);\n",
+ "print'thermal efficency is %f'%round(nth,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fraction of steam extracted from closed feedwater is 0.176600\n",
+ "fraction of steam extracted from open feedwater is 0.130600\n",
+ "thermal efficency is 0.492000\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-7 ,Page No.577"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T0=290;#temperature at heat which is rejected in K \n",
+ "Tsource=1600;#temperature of furnace in K\n",
+ "Tsink=T0;\n",
+ "#from Ex 10.1\n",
+ "qin=2728.6;#in kJ/Kg\n",
+ "qout=2018.6;#in kJ/Kg\n",
+ "h4=2403;#in kJ/Kg\n",
+ "\n",
+ "#from steam tables\n",
+ "s1=1.2132;\n",
+ "s3=6.7450;\n",
+ "\n",
+ "#calculations\n",
+ "s2=s1;s4=s3;#isentropic processes\n",
+ "xdest12=0;\n",
+ "xdest34=0;\n",
+ "xdest23=T0*(s3-s2-(qin/Tsource));\n",
+ "xdest41=T0*(s1-s4+(qout/Tsink));\n",
+ "print'exergy destruction in process 1-2 %i kJ/kg'%xdest12;\n",
+ "print'exergy destruction in process 2-3 %i kJ/kg'%round(xdest23);\n",
+ "print'exergy destruction in process 3-4 %i kJ/kg'%xdest34;\n",
+ "print'exergy destruction in process 4-1 %i kJ/kg'%round(xdest41);\n",
+ "xdestcy=xdest12+xdest23+xdest34+xdest41;\n",
+ "print'exergy destruction %i cycle in kJ/kg'%round(xdestcy);\n",
+ "#from steam tables\n",
+ "#at 290 K and 100 kPa\n",
+ "h0=71.355;\n",
+ "s0=0.2533;\n",
+ "X4=(h4-h0)-T0*(s4-s0);\n",
+ "print'exergy of the leaving steam %i kJ/kg'%(round(X4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exergy destruction in process 1-2 0 kJ/kg\n",
+ "exergy destruction in process 2-3 1110 kJ/kg\n",
+ "exergy destruction in process 3-4 0 kJ/kg\n",
+ "exergy destruction in process 4-1 414 kJ/kg\n",
+ "exergy destruction 1524 cycle in kJ/kg\n",
+ "exergy of the leaving steam 449 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-8 ,Page No.581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m1=15;#mass flow rate in kg/s\n",
+ "P1=7000;#inlet pressure at turbine in kPa\n",
+ "P2=P1;\n",
+ "P3=P1;\n",
+ "P4=500;#throttled to pressure in kPa\n",
+ "P5=P4;\n",
+ "P6=5;#steam expanded at a pressure in kPa\n",
+ "P7=P4;\n",
+ "P8=P6;\n",
+ "P9=P1;\n",
+ "P10=P1;\n",
+ "\n",
+ "#from steam tables\n",
+ "v7=0.001005;\n",
+ "v8=0.001093;\n",
+ "h1=3411.4;\n",
+ "h2=h1;\n",
+ "h3=h1;\n",
+ "h4=h1;\n",
+ "h5=2739.3;\n",
+ "h6=2073.0;\n",
+ "h7=640.09;\n",
+ "h8=137.75;\n",
+ "h11=144.78;\n",
+ "\n",
+ "#calculations\n",
+ "wIin=v8*(P9-P8);\n",
+ "wIIin=v7*(P10-P7);\n",
+ "h9=h8+wIin;\n",
+ "h10=h7+wIIin;\n",
+ "Qmax=m1*(h1-h7);\n",
+ "print'the maximum rate %i kW'%round(Qmax);\n",
+ "Wtout=m1*(h3-h6);#turbine\n",
+ "Wpin=m1*wIin;#pump\n",
+ "Wnet=Wtout-Wpin;\n",
+ "print'the power produced %i MW'%(round(Wnet/1000));\n",
+ "Qp=0;\n",
+ "Qin=m1*(h1-h11);\n",
+ "Eu=(Wnet+Qp)/Qin;\n",
+ "print'the utilization factor is %f'%round(Eu,3);\n",
+ "m4=0.1*m1;\n",
+ "m5=0.7*m1;\n",
+ "m7=m4+m5;\n",
+ "Qout=m4*h4+m5*h5-m7*h7;\n",
+ "print'the rate of process heat supply %f MW'%round(Qout/1000,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the maximum rate 41570 kW\n",
+ "the power produced 20 MW\n",
+ "the utilization factor is 0.407000\n",
+ "the rate of process heat supply 26.200000 MW\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10-9 ,Page No.585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=5;#intial pressure in kPa\n",
+ "P2=7000;#final pressure ink Pa\n",
+ "P3=P2;\n",
+ "T3=500;#inlet temperature in K\n",
+ "P4=P1;\n",
+ "\n",
+ "#gas cycle from Ex9-6\n",
+ "#d stands for '\n",
+ "h4d=880.36;\n",
+ "T4d=853;\n",
+ "qin=790.58;\n",
+ "wnetg=210.41;\n",
+ "nth=0.266\n",
+ "h5d=451.80;\n",
+ "#steam cycle\n",
+ "h2=144.78;\n",
+ "T2=33;\n",
+ "h3=3411.4;\n",
+ "T3=500;\n",
+ "wnets=1331.4;\n",
+ "nth=0.408;\n",
+ "\n",
+ "#calculations\n",
+ "#Ein = Eout\n",
+ "#y is the ratio of ms/mg\n",
+ "y=(h4d-h5d)/(h3-h2);\n",
+ "print'the ratio of the mass flow rates of the steam and the combustion gasesis %f'%round(y,3);\n",
+ "wnet=wnetg+y*wnets\n",
+ "nth=wnet/qin;\n",
+ "print'thermal efficency is %f'%round(nth,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the ratio of the mass flow rates of the steam and the combustion gasesis 0.131000\n",
+ "thermal efficency is 0.487000\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter11.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter11.ipynb
new file mode 100755
index 00000000..460e3a17
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter11.ipynb
@@ -0,0 +1,353 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Refrigeration Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11-1 ,Page No.613"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "P1=0.14;#intial pressure in MPa\n",
+ "P2=0.8;#final pressure in MPa\n",
+ "m=0.05;#mass flow rate in kg/s\n",
+ "\n",
+ "#from refrigerant-134a tables\n",
+ "h1=239.16;\n",
+ "s1=0.94456;\n",
+ "h2=275.39;\n",
+ "h3=95.47;\n",
+ "\n",
+ "#calculation\n",
+ "s2=s1;#isentropic process \n",
+ "h4=h3;#throttling\n",
+ "QL=(h1-h4)*m;\n",
+ "Wm=m*(h2-h1);\n",
+ "Qh=m*(h2-h3);\n",
+ "COPR=QL/Wm;\n",
+ "print'the rate of heat removal from the refrigerated space %f kW'%round(QL,2);\n",
+ "print'the power input to the compressor %f kW'%round(Wm,2);\n",
+ "print'the rate of heat rejection to the environment %f kW'%round(Qh);\n",
+ "print'the COP of the refrigerator is %f'%round(COPR,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of heat removal from the refrigerated space 7.180000 kW\n",
+ "the power input to the compressor 1.810000 kW\n",
+ "the rate of heat rejection to the environment 9.000000 kW\n",
+ "the COP of the refrigerator is 3.970000\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11-2 ,Page No.615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=0.05;#mass flow rate in kg/s\n",
+ "P1=0.14;#inlet pressure in MPa\n",
+ "T1=-10;#inlet temperature in C\n",
+ "P2=0.8;#outlet pressure in MPa\n",
+ "T2=50;#outlet temperature in C\n",
+ "P3=0.72;#condensor pressure in MPa\n",
+ "T3=26;#condensor temperature in C\n",
+ "\n",
+ "#from refrigerant tables\n",
+ "h1=246.36;\n",
+ "h2=286.69;\n",
+ "h3=87.83;\n",
+ "h2S=284.21;#at isentropic conditions\n",
+ "\n",
+ "#calculations\n",
+ "h4=h3;#throttling\n",
+ "QL=m*(h1-h4);\n",
+ "Wm=m*(h2-h1);\n",
+ "nC=(h2S-h1)/(h2-h1);\n",
+ "COPR=QL/Wm;\n",
+ "print'the rate of heat removal from the refrigerated space %f kW'%round(QL,2);\n",
+ "print'the power input to the compressor %f kW'%round(Wm,2);\n",
+ "print'the isentropic efficiency of the compressor is %f'%round(nC,3);\n",
+ "print'the COP of the refrigerator is %f'%round(COPR,2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of heat removal from the refrigerated space 7.930000 kW\n",
+ "the power input to the compressor 2.020000 kW\n",
+ "the isentropic efficiency of the compressor is 0.939000\n",
+ "the COP of the refrigerator is 3.930000\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11-3 ,Page No.621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "mA=0.05;#mass flow rate in kg/s\n",
+ "P1=0.14;#inlet pressure in MPa\n",
+ "P5=0.32;#pressure at heat exchanger in MPa\n",
+ "P7=0.8;#oultet pressure in MPa\n",
+ "\n",
+ "#from tables\n",
+ "h1=239.16;\n",
+ "h2=255.93;\n",
+ "h3=55.16;\n",
+ "h5=251.88;\n",
+ "h6=270.92;\n",
+ "h7=95.47;\n",
+ "\n",
+ "#calculations\n",
+ "h4=h3;#throttling\n",
+ "h8=h7;#throttling\n",
+ "# E out = E in\n",
+ "# mA*h5 + mB*h3 = mA*h8 + mB*h2\n",
+ "mB=mA*(h5-h8)/(h2-h3);\n",
+ "QL=mB*(h1-h4);\n",
+ "# W in = Wcomp I,in + Wcomp II,in\n",
+ "Win=mA*(h6-h5)+mB*(h2-h1);\n",
+ "COPR=QL/Win;\n",
+ "print'the mass flow rate of the refrigerant through the lower cycle %f kg/s'%round(mB,4);\n",
+ "print'the rate of heat removal from the refrigerated space %f kW'%round(QL,2);\n",
+ "print'the power input to the compressor %f kW'%round(Win,2);\n",
+ "print'the coefficient of performance of this cascade refrigerator is %f'%round(COPR,2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mass flow rate of the refrigerant through the lower cycle 0.039000 kg/s\n",
+ "the rate of heat removal from the refrigerated space 7.170000 kW\n",
+ "the power input to the compressor 1.610000 kW\n",
+ "the coefficient of performance of this cascade refrigerator is 4.460000\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11-4 ,Page No.624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=0.14;#inlet pressure in MPa\n",
+ "P5=0.32;#throttled pressure in MPa\n",
+ "P7=0.8;#oultet pressure in MPa\n",
+ "\n",
+ "#from tables\n",
+ "h1=239.16;\n",
+ "h2=255.93;\n",
+ "h3=251.88;\n",
+ "h5=95.47;\n",
+ "h7=55.16;\n",
+ "\n",
+ "#from saturated liquid-vapour table\n",
+ "#at P=0.32 MPa\n",
+ "hf=55.16;\n",
+ "hfg=196.71;\n",
+ "\n",
+ "#calculations\n",
+ "h8=h7;#throttling\n",
+ "h6=h5;#throttling\n",
+ "#the quality at state 6\n",
+ "x6=(h6-hf)/hfg;\n",
+ "qL=(1-x6)*(h1-h8);\n",
+ "# W in = Wcomp I,in + Wcomp II,in\n",
+ "#enthalaoy at state 9\n",
+ "# E out = E in\n",
+ "h9=x6*h3+(1-x6)*h2;\n",
+ "# s9 = s4 i.e isentropic process\n",
+ "#at 0.8MPa and s4=0.9416 kJ/kg\n",
+ "h4=274.48;\n",
+ "Win=(1-x6)*(h2-h1)+(1)*(h4-h9);\n",
+ "COPR=qL/Win;\n",
+ "print'the fraction of the refrigerant that evaporates as it is throttled to the flash chamber is %f'%round(x6,4);\n",
+ "print'the amount of heat removed from the refrigerated space %f kJ/kg'%round(qL,1);\n",
+ "print'the compressor work per unit mass of refrigerant flowing through the condensor %f kJ/kg'%round(Win,2);\n",
+ "print'the coefficient of performance is %f'%round(COPR,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the fraction of the refrigerant that evaporates as it is throttled to the flash chamber is 0.204900\n",
+ "the amount of heat removed from the refrigerated space 146.300000 kJ/kg\n",
+ "the compressor work per unit mass of refrigerant flowing through the condensor 32.710000 kJ/kg\n",
+ "the coefficient of performance is 4.470000\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11-5 ,Page No.630"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=0.1;#mass flow rate in lbm/s\n",
+ "T1=0+460;#refigerated space at temperature in R\n",
+ "T3=80+460;#temperature of surrounding medium in R\n",
+ "\n",
+ "#from Table A\u201317E\n",
+ "# at T1\n",
+ "h1=109.90;\n",
+ "Pr1=.7913;\n",
+ "#pressure ratio at compressor is 4\n",
+ "Pr2=4*Pr1;\n",
+ "#at Pr2\n",
+ "h2=163.5;\n",
+ "T2=683;\n",
+ "#at T3\n",
+ "h3=129.06;\n",
+ "Pr3=1.3860;\n",
+ "#pressure ratio at compressor is 4\n",
+ "Pr4=Pr3/4;\n",
+ "#at Pr4\n",
+ "h4=86.7;\n",
+ "T4=363;\n",
+ "\n",
+ "#calculations\n",
+ "qL=h1-h4;\n",
+ "Wout=h3-h4;\n",
+ "Win=h2-h1;\n",
+ "COPR=qL/(Win-Wout);\n",
+ "Qrefrig=m*qL;\n",
+ "print'the minimum temperatures in the cycle %f F'%round(T4-460);\n",
+ "print'the maximum temperatures in the cycle %f F'%round(T2-460);\n",
+ "print'the coefficient of performance is %f'%round(COPR,2)\n",
+ "print'the rate of refrigeration for a mass flow rate of 0.1 lbm/s. %f Btu/s'%round(Qrefrig,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the minimum temperatures in the cycle -97.000000 F\n",
+ "the maximum temperatures in the cycle 223.000000 F\n",
+ "the coefficient of performance is 2.060000\n",
+ "the rate of refrigeration for a mass flow rate of 0.1 lbm/s. 2.320000 Btu/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11-6 ,Page No.636"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "COPR=0.1;#refrigerator COP\n",
+ "T1=20;#intial temp in C\n",
+ "T2=4;#final temp in C\n",
+ "t=30*60;#total time required in sec\n",
+ "V=0.350;#volumne of can in L\n",
+ "\n",
+ "#constants used\n",
+ "p=1;#on kg/L\n",
+ "c=4.18;#in kJ/kg-C from Table A-3\n",
+ "\n",
+ "#calculations\n",
+ "m=p*V;\n",
+ "Qcooling=m*c*(T1-T2)/t*1000;#converted in W by multiplying by 1000\n",
+ "Win=Qcooling/COPR;\n",
+ "print'the average electric power consumed by the thermoelectric refrigerator %i W'%round(Win)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the average electric power consumed by the thermoelectric refrigerator 130 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter12.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter12.ipynb
new file mode 100755
index 00000000..c181d0f6
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter12.ipynb
@@ -0,0 +1,262 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12: Thermodynamic Property Relations"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12-1 ,Page No.652"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#from Table A-17\n",
+ "#cp value approximately by replacing the differentials\n",
+ "h1=305.22;#in kJ/kg\n",
+ "T1=305;#in K\n",
+ "h2=295.17;#in kJ/kg\n",
+ "T2=295;#in K\n",
+ "\n",
+ "#calculations\n",
+ "#from the given equation we can calculate\n",
+ "cp=(h1-h2)/(T1-T2);\n",
+ "print'the cp of air at 300 K %f kJ/ kg - K'%round(cp,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the cp of air at 300 K 1.005000 kJ/ kg - K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12-2 ,Page No.654"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "dT=302-300;#differnce in final and intial temperatures of air in K\n",
+ "dv=0.87-0.86;#differnce in final and intial volumnes of air in m^3/kg\n",
+ "T=(302+300)/2;#average temp in K\n",
+ "v=(0.87+0.86)/2;#average volumne in m^3/kg\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kJ/kg-K\n",
+ "\n",
+ "#calculations\n",
+ "#using eq 12-3 by diffrentiating P= R*T/v\n",
+ "dP= R*dT/v - R*T*dv/v**2;\n",
+ "print'the change in the pressure of air %f kPa'%round(dP,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the change in the pressure of air -0.491000 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12-5 ,Page No.659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=20+273.15;#temperature of refrigerant in K\n",
+ "\n",
+ "#from Table A\u201311\n",
+ "vf=0.0008161;#in m^3/kg\n",
+ "vg=0.035969;#in m^3/kg\n",
+ "\n",
+ "#calculations\n",
+ "#using Eq 12-22\n",
+ "# hfg= T*vfg*(dP/dT)sat\n",
+ "#(dP/dT)sat b/w 24 C - 16 C \n",
+ "dPT=(646.18-504.58)/(24-16);#dP/dT ; values from Table A\u201311\n",
+ "vfg=vg-vf;\n",
+ "hfg=T*vfg*dPT;\n",
+ "print'the value of the enthalpy of vaporization of refrigerant-134a %f kJ/kg'%round(hfg,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the value of the enthalpy of vaporization of refrigerant-134a 182.400000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12-6 ,Page No.660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#given data\n",
+ "T2=-50+460.0;#temperature of refrigerant-134a on R \n",
+ "\n",
+ "#constants\n",
+ "R=0.01946;#in Btu/lbm\n",
+ "\n",
+ "#from Table A-11E\n",
+ "T1=-40+460.0;#converted into R from F\n",
+ "P1=7.432;\n",
+ "hfg=97.100;\n",
+ "\n",
+ "#calcualation\\\n",
+ "#using Equation 12\u201324\n",
+ "#ln(P2/P1)= hfg/R *(1/T1 - 1/T2)\n",
+ "P2=P1*exp(hfg/R *(1/T1 - 1/T2));\n",
+ "print'the saturation pressure of refrigerant-134a %f psia'%round(P2,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the saturation pressure of refrigerant-134a 5.560000 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12-11 ,Page No.373"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given data\n",
+ "T1=220;#intial temperature in K\n",
+ "P1=5;#intial pressure in MPa\n",
+ "T2=300;#final temperature in K\n",
+ "P2=10;#final pressure in MPa\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#on kJ/kmol- K\n",
+ "\n",
+ "#from Table A\u20131\n",
+ "Tcr=154.8;\n",
+ "Pcr=5.08;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "print('part - a');\n",
+ "#by assuming ideal-gas behavior\n",
+ "#from Table A\u201319\n",
+ "h1=6404;\n",
+ "h2=8736;\n",
+ "s2=205.213;\n",
+ "s1=196.171;\n",
+ "h21i=h2-h1;#h2 - h1 ideal\n",
+ "s21i=(s2-s1)-Ru*log(P2/P1);#s2 - s1 ideal\n",
+ "print'the enthalpy change %i kJ/kmol'%round(h21i);\n",
+ "print'the entropy change %f kJ/kmol-K'%round(s21i,2);\n",
+ "\n",
+ "#part - b\n",
+ "print('part - b');\n",
+ "#by accounting for the deviation from ideal-gas behavior\n",
+ "TR1=T1/Tcr;\n",
+ "Pr1=P1/Pcr;\n",
+ "#from the generalized charts at each state\n",
+ "Zh1=0.53;\n",
+ "Zs1=0.25;\n",
+ "TR2=T2/Tcr;\n",
+ "Pr2=P2/Pcr;\n",
+ "#from the generalized charts at each state\n",
+ "Zh2=0.48;\n",
+ "Zs2=0.20;\n",
+ "h21=h21i-Ru*Tcr*(Zh2-Zh1);\n",
+ "s21=s21i-Ru*(Zs2-Zs1);\n",
+ "print'the enthalpy change %i in kJ/kmol'%round(h21);\n",
+ "print'the entropy change %f kJ/kmol-K'%round(s21,2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "part - a\n",
+ "the enthalpy change 2332 kJ/kmol\n",
+ "the entropy change 3.280000 kJ/kmol-K\n",
+ "part - b\n",
+ "the enthalpy change 2396 in kJ/kmol\n",
+ "the entropy change 3.690000 kJ/kmol-K\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter13.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter13.ipynb
new file mode 100755
index 00000000..936d90ae
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter13.ipynb
@@ -0,0 +1,453 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Gas Mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13-1 ,Page No.683"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "mO2=3.0;#moles of oxygen\n",
+ "mN2=5.0;#moles of nitrogen\n",
+ "mCH4=12.0;#moles of methane\n",
+ "\n",
+ "#molecular masses in kg\n",
+ "MO2=32.0;\n",
+ "MN2=28.0;\n",
+ "MCH4=16.0;\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#in kJ/kg - K\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "mm=mO2+mN2+mCH4;\n",
+ "mfO2=mO2/mm;\n",
+ "mfN2=mN2/mm;\n",
+ "mfCH4=mCH4/mm;\n",
+ "print'mass fraction of oxygen is %f'%round(mfO2,2);\n",
+ "print'mass fraction of nitrogen is %f'%round(mfN2,2);\n",
+ "print'mass fraction of methane is %f'%round(mfCH4,2);\n",
+ "\n",
+ "#part - b\n",
+ "NO2=mO2/MO2;\n",
+ "NN2=mN2/MN2;\n",
+ "NCH4=mCH4/MCH4;\n",
+ "Nm=NO2+NN2+NCH4;\n",
+ "yO2=NO2/Nm;\n",
+ "yN2=NN2/Nm;\n",
+ "yCH4=NCH4/Nm;\n",
+ "print'mole fraction of oxygen is %f'%round(yO2,3);\n",
+ "print'mole fraction of nitrogen is %f'%round(yN2,3);\n",
+ "print'mole fraction of methane is %f'%round(yCH4,3);\n",
+ "\n",
+ "#part - c\n",
+ "Mm=mm/Nm;\n",
+ "print'average molecular mass %f kg/kmol'%round(Mm,1);\n",
+ "Rm=Ru/Mm;\n",
+ "print'gas constant of mixture %f kJ/kg - K'%round(Rm,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass fraction of oxygen is 0.150000\n",
+ "mass fraction of nitrogen is 0.250000\n",
+ "mass fraction of methane is 0.600000\n",
+ "mole fraction of oxygen is 0.092000\n",
+ "mole fraction of nitrogen is 0.175000\n",
+ "mole fraction of methane is 0.734000\n",
+ "average molecular mass 19.600000 kg/kmol\n",
+ "gas constant of mixture 0.425000 kJ/kg - K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13-2 ,Page No.687"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "NN2=2.0;#moles of nitrogen\n",
+ "NCO2=6.0;#moles of carbon dioxide\n",
+ "Tm=300.0;#temperature of gases in K\n",
+ "Pm=15000.0;#pressure of gases in kPa\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#in kJ/kmol - K\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "Nm=NN2+NCO2;\n",
+ "Vm=Nm*Ru*Tm/Pm;\n",
+ "print'the volume of the tank on the basis of the ideal-gas equation of state %f m^3'%round(Vm,3);\n",
+ "\n",
+ "#part - b\n",
+ "#from Table A-1\n",
+ "#for nitrogen\n",
+ "TcrN=126.2;\n",
+ "PcrN=3390;\n",
+ "#for Carbondioxide\n",
+ "TcrC=304.2;\n",
+ "PcrC=7390;\n",
+ "yN2=NN2/Nm;\n",
+ "yCO2=NCO2/Nm;\n",
+ "Tcr=yN2*TcrN+yCO2*TcrC;\n",
+ "Pcr=yN2*PcrN+yCO2*PcrC;\n",
+ "Tr=Tm/Tcr;\n",
+ "Pr=Pm/Pcr;\n",
+ "#from Fig A-15b\n",
+ "Zm=0.49;\n",
+ "Vm=Zm*Nm*Ru*Tm/Pm;\n",
+ "print'the volume of the tank on the basis Kay\u2019s rule %f m^3'%round(Vm,3);\n",
+ "\n",
+ "#part - c\n",
+ "#for nitrogen\n",
+ "TrN=Tm/TcrN;\n",
+ "PrN=Pm/PcrN;\n",
+ "#from Fig A-15b\n",
+ "Zn=1.02;\n",
+ "#for Carbondioxide\n",
+ "TrC=Tm/TcrC;\n",
+ "PcrC=Pm/PcrC;\n",
+ "#from Fig A-15b\n",
+ "Zc=0.3;\n",
+ "Zm=yN2*Zn+yCO2*Zc;\n",
+ "Vm=Zm*Nm*Ru*Tm/Pm;\n",
+ "print'the volume of the tank on the basis compressibility factors and Amagat\u2019s law %f m^3'%round(Vm,3);\n",
+ "\n",
+ "#part - d\n",
+ "VRN=(Vm/NN2)/(Ru*TcrN/PcrN);\n",
+ "VRC=(Vm/NCO2)/(Ru*TcrC/PcrC);\n",
+ "#from Fig A-15b\n",
+ "Zn=0.99;\n",
+ "Zc=0.56;\n",
+ "Zm=yN2*Zn+yCO2*Zc;\n",
+ "Vm=Zm*Nm*Ru*Tm/Pm;\n",
+ "#When the calculations are repeated we obtain 0.738 m3 after the second iteration, 0.678 m3 after the third iteration, and 0.648 m3 after the fourth iteration.\n",
+ "Vm=0.648;\n",
+ "print'compressibility factors and Dalton\u2019s law the volume of the tank on the basis %f m^3'%round(Vm,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the volume of the tank on the basis of the ideal-gas equation of state 1.330000 m^3\n",
+ "the volume of the tank on the basis Kay\u2019s rule 0.652000 m^3\n",
+ "the volume of the tank on the basis compressibility factors and Amagat\u2019s law 0.639000 m^3\n",
+ "compressibility factors and Dalton\u2019s law the volume of the tank on the basis 0.648000 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13-3 ,Page No.691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "mN=4.0;#mass of nitrogen in kg\n",
+ "T1N=20.0;#temperature of nitrogen in K\n",
+ "P1N=150.0;#pressure of nitrogen in kPa\n",
+ "mO=7.0;#mass of oxygen in kg\n",
+ "T1O=40.0;#temperature of oxygen in K\n",
+ "P1O=100.0;#pressure of oxygen in kPa\n",
+ "\n",
+ "#molecular masses in kg\n",
+ "MO=32.0;\n",
+ "MN=28.0;\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#in kJ/kg - K\n",
+ "\n",
+ "#from Table A-2a\n",
+ "CvN=0.743;\n",
+ "CvO=0.658;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "#Ein - Eout = dEsystem\n",
+ "# (m*cv*dT)N2 + (m*cv*dT)= 0;\n",
+ "Tm= (mN*CvN*T1N+ mO*CvO*T1O)/(mN*CvN+mO*CvO);\n",
+ "print'the mixture temperature %f C'%round(Tm,1);\n",
+ "\n",
+ "#part - b\n",
+ "NO=mO/MO;\n",
+ "NN=mN/MN;\n",
+ "Nm=NO+NN;\n",
+ "VO=NO*Ru*(T1O+273)/P1O;\n",
+ "VN=NN*Ru*(T1N+273)/P1N;#Exergy Destruction during Mixing of Ideal Gases\n",
+ "Vm=VO+VN;\n",
+ "Pm=Nm*Ru*(Tm+273)/Vm; \n",
+ "print'the mixture pressure after equilibrium has been established %f kPa'%round(Pm,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mixture temperature 32.200000 C\n",
+ "the mixture pressure after equilibrium has been established 114.500000 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13-4 ,Page No.692"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given data\n",
+ "NO=3.0;#moles of oxygen \n",
+ "NC=5.0;#moles of carbondioxide\n",
+ "T0=25+273.0;#temperature of gasses in K\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#in kJ/kg - K\n",
+ "\n",
+ "#calculations\n",
+ "Nm=NO+NC;\n",
+ "yO=NO/Nm;\n",
+ "yC=NC/Nm;\n",
+ "#dSm= -Ru*(NO*log(yO)+NC*log(yC))\n",
+ "Sm=-Ru*(NO*log(yO)+NC*log(yC));\n",
+ "print'the entropy change %f kJ/K'%round(Sm);\n",
+ "Xdestroyed=T0*Sm/1000;\n",
+ "print'exergy destruction associated %f MJ'%round(Xdestroyed,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the entropy change 44.000000 kJ/K\n",
+ "exergy destruction associated 13.100000 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13-5 ,Page No.694"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=220;#intial temperature in K\n",
+ "T2=160;#final temperature in K\n",
+ "Pm=10;#pressure of air in MPa\n",
+ "yN=0.79;#mole fraction of nitrogen\n",
+ "yO=0.21;#mole fractions of oxygen\n",
+ "\n",
+ "\n",
+ "#critical properties\n",
+ "#for Nitrogen\n",
+ "TcrN=126.2;\n",
+ "PcrN=3.39;\n",
+ "#for Oxygen\n",
+ "TcrO=154.8;\n",
+ "PcrO=5.08;\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#in kJ/kg - K\n",
+ "\n",
+ "#from Tables A-18 & 19\n",
+ "#at T1\n",
+ "h1N=6391;\n",
+ "h1O=6404;\n",
+ "#for T2\n",
+ "h2N=4648;\n",
+ "h2O=4657;\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "qouti=yN*(h1N-h2N)+yO*(h1O-h2O);\n",
+ "print'the heat transfer during this process using the ideal-gas approximation %i kJ/kmol'%round(qouti);\n",
+ "\n",
+ "#part - b\n",
+ "Tcrm=yN*TcrN+yO*TcrO;\n",
+ "Pcrm=yN*PcrN+yO*PcrO;\n",
+ "Tr1=T1/Tcrm;\n",
+ "Tr2=T2/Tcrm;\n",
+ "Pr=Pm/Pcrm;\n",
+ "#at these values we get\n",
+ "Zh1=1;\n",
+ "Zh2=2.6\n",
+ "qout=qouti-Ru*Tcrm*(Zh1-Zh2);\n",
+ "print'the heat transfer during this process using Kay\u2019s rule %i kJ/kmol'%round(qout);\n",
+ "\n",
+ "#part - c\n",
+ "#for nitrogen\n",
+ "TrN1=T1/TcrN;\n",
+ "TrN2=T2/TcrN;\n",
+ "PrN=Pm/PcrN;\n",
+ "#from Fig A-15b\n",
+ "Zh1n=0.9;\n",
+ "Zh2n=2.4;\n",
+ "#for Oxygen\n",
+ "TrO1=T1/TcrO;\n",
+ "TrO2=T2/TcrO;\n",
+ "PcrO=Pm/PcrO;\n",
+ "#from Fig A-15b\n",
+ "Zh1O=1.3;\n",
+ "Zh2O=4.0;\n",
+ "#from Eq 12-58\n",
+ "h12N=h1N-h2N-Ru*TcrN*(Zh1n-Zh2n);# h1 - h2 for nitrogen\n",
+ "h12O=h1O-h2O-Ru*TcrO*(Zh1O-Zh2O);# h1 - h2 for oxygen\n",
+ "qout=yN*h12N+yO*h12O;\n",
+ "print'the heat transfer during this process using Amagat\u2019s law %i kJ/kmol'%round(qout);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the heat transfer during this process using the ideal-gas approximation 1744 kJ/kmol\n",
+ "the heat transfer during this process using Kay\u2019s rule 3502 kJ/kmol\n",
+ "the heat transfer during this process using Amagat\u2019s law 3717 kJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13-6 ,Page No.705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#13.6 (d) answer not matching as float datatype is giving more accurate answer in comparison to textbook that has given approximate due to rounding off to two decimal places\n",
+ "\n",
+ "#given data\n",
+ "mfs=0.0348;#salinity mass fraction\n",
+ "mfw=1-mfs;\n",
+ "T0=288.15;#temperature of sea water in K\n",
+ "\n",
+ "#constants used\n",
+ "Mw=18;\n",
+ "Ms=58.44;\n",
+ "Rw=0.4615;\n",
+ "pm=1028;\n",
+ "Ru=8.314;\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "Mm=1/((mfs/Ms)+(mfw/Mw));\n",
+ "yw=mfw*Mm/Mw;\n",
+ "ys=1-yw;\n",
+ "print'the mole fraction of the water is %f'%round(yw,4);\n",
+ "print'the mole fraction of the saltwater is %f'%round(ys,5);\n",
+ "\n",
+ "#part - b\n",
+ "wmin=-Ru*T0*(ys*log(ys)+yw*log(yw));\n",
+ "wm=wmin/Mm;\n",
+ "print'the minimum work input required to separate 1 kg of seawater completely into pure water and pure salts %f kJ'%round(wm,2);\n",
+ "\n",
+ "#part - c\n",
+ "wmin=Rw*T0*log(1/yw);\n",
+ "print'the minimum work input required to obtain 1 kg of fresh water from the sea %f kJ'%round(wmin,2);\n",
+ "\n",
+ "#part - d\n",
+ "Pmin=pm*Rw*T0*log(1/yw);\n",
+ "print'the minimum gauge pressure that the seawater must be raised if fresh water is to be obtained by reverse osmosis using semipermeable membranes %i kPa'%round(Pmin)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mole fraction of the water is 0.989000\n",
+ "the mole fraction of the saltwater is 0.010980\n",
+ "the minimum work input required to separate 1 kg of seawater completely into pure water and pure salts 7.850000 kJ\n",
+ "the minimum work input required to obtain 1 kg of fresh water from the sea 1.470000 kJ\n",
+ "the minimum gauge pressure that the seawater must be raised if fresh water is to be obtained by reverse osmosis using semipermeable membranes 1510 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter14.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter14.ipynb
new file mode 100755
index 00000000..f218441e
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter14.ipynb
@@ -0,0 +1,393 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14: Gas\u2013Vapor Mixtures and Air-Conditioning"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-1 ,Page No.720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V=5*5*3.0;#volume of the room in m^3\n",
+ "RH=0.75;#relative humidity\n",
+ "P=100.0;#pressure of air in kPa\n",
+ "T=25.0;#temperature of air in C\n",
+ "\n",
+ "#constants used\n",
+ "Ra=0.287;#in kPa.m^3 / kg.k\n",
+ "Rv=0.4615;#in kPa.m^3 / kg.k\n",
+ "\n",
+ "#from Table A-2a and A-4\n",
+ "cp=1.005;\n",
+ "Psat=3.1698;\n",
+ "hg=2564.6;\n",
+ "\n",
+ "#calculation\n",
+ "Pv=RH*Psat;\n",
+ "Pa=P-Pv;\n",
+ "w=0.622*Pv/(P-Pv);\n",
+ "h=cp*T+w*hg;\n",
+ "ma=V*Pa/(Ra*(T+273));\n",
+ "mv=V*Pv/(Rv*(T+273));\n",
+ "print'the partial pressure of dry air %f kPa'%round(Pa,2);\n",
+ "print'the specific humidity %f kg water/kg of dry air'%round(w,4);\n",
+ "print'the enthalpy per unit mass of the dry air %f kJ'%round(h,1);\n",
+ "print'mass of air %f kg'%round(ma,2);\n",
+ "print'mass of water vapour %f kg'%round(mv,1);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the partial pressure of dry air 97.620000 kPa\n",
+ "the specific humidity 0.015100 kg water/kg of dry air\n",
+ "the enthalpy per unit mass of the dry air 64.000000 kJ\n",
+ "mass of air 85.610000 kg\n",
+ "mass of water vapour 1.300000 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-2 ,Page No.722"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=20;#temperature of air in C\n",
+ "RH=0.75;#relative humidity\n",
+ "\n",
+ "#from Table A-4\n",
+ "Psat=2.3392;\n",
+ "Pv=RH*Psat;\n",
+ "#thus at this from Eq 14-13\n",
+ "Tdp=15.4;\n",
+ "print'window temperature %f C'%Tdp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "window temperature 15.400000 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-3 ,Page No.725"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=25.0;#dry bulb temperature in K\n",
+ "T2=15.0;#wet bulb temperature in K\n",
+ "P2=101.325;#pressure of air in kPa\n",
+ "\n",
+ "#from Table A-2a & A-4\n",
+ "#at T1\n",
+ "Psat1=3.1698;\n",
+ "hg1=2546.5;\n",
+ "#at T2\n",
+ "Psat2=1.7057;\n",
+ "hfg2=2465.4;\n",
+ "hf2=62.982;\n",
+ "cp=1.005;\n",
+ "\n",
+ "#calculations\n",
+ "w2=0.622*Psat2/(P2-Psat2);\n",
+ "w1=(cp*(T2-T1)+w2*hfg2)/(hg1-hf2);\n",
+ "print'the specific humidity %f kg water/kg of dry air'%round(w1,5);\n",
+ "RH1=w1*P2/((0.622+w1)*Psat1);\n",
+ "print'the relative humidity is %f'%round(RH1,3);\n",
+ "h=cp*T1+w1*hg1;\n",
+ "print'the enthalpy of the air %f kJ/kg of dry air'%round(h,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the specific humidity 0.006530 kg water/kg of dry air\n",
+ "the relative humidity is 0.332000\n",
+ "the enthalpy of the air 41.700000 kJ/kg of dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-5 ,Page No.731"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "RH1=0.3;#outdoor relative humidity\n",
+ "P1=100.0;#pressure of air in kPa\n",
+ "V1=45.0;#volumetric steady rate in m^3/min\n",
+ "T1=10.0;#outdoor temperature in C\n",
+ "T2=22.0;#first heated temperature in C\n",
+ "RH3=0.6;#final relative humidity \n",
+ "T3=25.0;#final temperature in C\n",
+ "\n",
+ "#from Table A-2a & A-4\n",
+ "cp=1.005;\n",
+ "Ra=0.287;\n",
+ "Pg1=1.2281;\n",
+ "hg1=2519.2;\n",
+ "hg2=2541.0;\n",
+ "Pg3=3.1698;\n",
+ "\n",
+ "#calculations\n",
+ "Pv1=RH1*Pg1;\n",
+ "Pa1=P1-Pv1;\n",
+ "v1=Ra*(T1+273)/Pa1;\n",
+ "ma=V1/v1;\n",
+ "w1=0.622*Pv1/(P1-Pv1);\n",
+ "h1=cp*T1+w1*hg1;\n",
+ "h1=round(h1,1);\n",
+ "w2=w1;\n",
+ "h2=cp*T2+w2*hg2;\n",
+ "h2=round(h2)\n",
+ "Q=ma*(h2-h1);\n",
+ "# ma2*w2 + mw = ma3*w3\n",
+ "#which reduces to mw = ma * (w3 - w2)\n",
+ "w3=0.622*RH3*Pg3/(P1-(RH3*Pg3));\n",
+ "mw=ma*(w3-w2);\n",
+ "print'the rate of heat supply in the heating section %f kJ/min'%round(Q);\n",
+ "print'the mass flow rate of the steam required in the humidifying section %f kg/min'%round(mw,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of heat supply in the heating section 673.000000 kJ/min\n",
+ "the mass flow rate of the steam required in the humidifying section 0.539000 kg/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-6 ,Page No.733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V1=10;#volumertric rate in m^3/min\n",
+ "T1=30;#intial temperature in C\n",
+ "RH1=0.8;#intial relative humidity\n",
+ "T2=14;#final temperature in C\n",
+ "RH2=1;#final relative humidity\n",
+ "\n",
+ "#from Table A-4\n",
+ "hw=58.8;\n",
+ "h1=85.4;\n",
+ "h2=39.3;\n",
+ "w1=0.0216;\n",
+ "w2=0.0100;\n",
+ "v1=0.889;\n",
+ "\n",
+ "#calculations\n",
+ "#mw= ma*(w1-w2)\n",
+ "#Qout=ma*(h1-h2) - mw*hw\n",
+ "ma=V1/v1;\n",
+ "mw= ma*(w1-w2);\n",
+ "Qout=ma*(h1-h2) - mw*hw;\n",
+ "print'rates of moisture removal from the air %f kg/min'%round(mw,3);\n",
+ "print'rate of moisture removal from the air %i kJ/min'%round(Qout);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rates of moisture removal from the air 0.130000 kg/min\n",
+ "rate of moisture removal from the air 511 kJ/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-8 ,Page No.736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "V1=50;#saturated air volumertric rate in m^3/min\n",
+ "T1=14;#saturated air temperature in C\n",
+ "V2=20;#outside air volumertric rate in m^3/min\n",
+ "T2=32;#outside air temperature in C\n",
+ "RH2=60;#outside air relative humidity\n",
+ "\n",
+ "#from psychrometric chart\n",
+ "h1=39.4;\n",
+ "w1=0.010;\n",
+ "v1=0.826;\n",
+ "h2=79;\n",
+ "w2=0.0182;\n",
+ "v2=0.889;\n",
+ "\n",
+ "#calculations\n",
+ "ma1=V1/v1;\n",
+ "ma2=V2/v2;\n",
+ "ma3=ma1+ma2;\n",
+ "#from Eq 14-24\n",
+ "w3=(w2*ma2+w1*ma1)/(ma1+ma2);\n",
+ "h3=(h2*ma2+h1*ma1)/(ma1+ma2);\n",
+ "print'the specific humidity %f kg of water/kg of dry air'%round(w3,3);\n",
+ "#from psychrometric chart\n",
+ "T3=19;\n",
+ "RH3=0.89;\n",
+ "v3=0.844;\n",
+ "V3=ma3*v3;\n",
+ "print'the dry-bulb temperature %f C'%T3;\n",
+ "print'the relative humidity is %f'%RH3\n",
+ "print'the volume flow rate of the mixture %f m^3/min'%round(V3,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the specific humidity 0.012000 kg of water/kg of dry air\n",
+ "the dry-bulb temperature 19.000000 C\n",
+ "the relative humidity is 0.890000\n",
+ "the volume flow rate of the mixture 70.100000 m^3/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14-9 ,Page No.738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data \n",
+ "m=100;#mass flow rate in kg/s\n",
+ "T1=20;#entry temperature in C\n",
+ "P1=1;#entry pressure im kPa\n",
+ "RH1=60;#entry relative humidity\n",
+ "T2=30;#exit temperature in C\n",
+ "RH2=1;#exit relative humidity\n",
+ "T3=35;#entry tempearture of wet cooling tower in C \n",
+ "T4=22;#water temperature in cooling tower in C\n",
+ "\n",
+ "#from Table A-4\n",
+ "h1=42.2;\n",
+ "w1=0.0087;\n",
+ "v1=0.842;\n",
+ "h2=100;\n",
+ "w2=0.0273;\n",
+ "h3=146.64;\n",
+ "h4=92.28;\n",
+ "\n",
+ "#calculations\n",
+ "#Dry air balane = ma1 = ma2 = ma\n",
+ "#Water balance = m3 - m4 = ma*(w2 - w1)\n",
+ "#Energy balance = ma1*h1 + m3*h3 = ma2*h2 + m4*h4\n",
+ "ma= m*(h3-h4)/(h2-h1-(w2-w1)*h4);\n",
+ "V1=ma*v1;\n",
+ "mmakeup=ma*(w2-w1);\n",
+ "print'the volume flow rate of air into the cooling tower %f m^3/s'%round(V1,1);\n",
+ "print'the mass flow rate of the required makeup water %f kg/s'%round(mmakeup,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the volume flow rate of air into the cooling tower 81.600000 m^3/s\n",
+ "the mass flow rate of the required makeup water 1.800000 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter15.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter15.ipynb
new file mode 100755
index 00000000..c167fe73
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter15.ipynb
@@ -0,0 +1,686 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Chemical Reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-1 ,Page No.755"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "nO2i=20;#intial moles of air \n",
+ "nC8H18i=1;#intial moles octane\n",
+ "\n",
+ "#from Table A-1\n",
+ "Mair=29;\n",
+ "MC=12;\n",
+ "MH=2;\n",
+ "\n",
+ "#calculations\n",
+ "# Chemical Reaction\n",
+ "# C8H18 + 20(O2+3.76N2)= xCO2 + yH2O + zO2 + wN2\n",
+ "#by elemental balance of moles\n",
+ "x=8;\n",
+ "y=18/2;\n",
+ "z=20*2-2*x-y;\n",
+ "w=20*3.76;\n",
+ "print'kmoles of CO2 %i'%x;\n",
+ "print'kmoles of H2O %i'%y;\n",
+ "print'kmoles of O2 %f'%round(z,1);\n",
+ "print'kmoles of N2 %f'%round(w,1);\n",
+ "#thus equn becomes\n",
+ "# C8H18 + 20(O2+3.76N2)= 8CO2 + 9H2O + 7.5O2 +75.2N2\n",
+ "AF=nO2i*4.76*Mair/(x*MC + y*MH);\n",
+ "print'air-fuel ratio of combustion process %f kg air/kg fuel'%round(AF,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kmoles of CO2 8\n",
+ "kmoles of H2O 9\n",
+ "kmoles of O2 15.000000\n",
+ "kmoles of N2 75.200000\n",
+ "air-fuel ratio of combustion process 24.200000 kg air/kg fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-2 ,Page No.757"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P=100;#total pressure in kPa\n",
+ "\n",
+ "#from Table A-1\n",
+ "Mair=29.0;\n",
+ "MC=12.0;\n",
+ "MH=2.0;\n",
+ "\n",
+ "#calculations\n",
+ "#Chemical reaction\n",
+ "#C2H6 + 1.2at(1O2 + 3.76) =2CO2 + 3H2O + 0.2athO2 + (1.2*3.76)athN2\n",
+ "#ath is the stoichiometric coefficient for air\n",
+ "#Oxygen balance gives\n",
+ "# 1.2ath = 2 + 1.5 + 0.2ath\n",
+ "ath=(2+1.5)/(1.2-0.2);\n",
+ "AF=(1.2*ath)*4.76*Mair/(2*MC+3*MH);\n",
+ "print'air-fuel ratio of combustion process %f kg air/kg fuel'%round(AF,1);\n",
+ "#C2H6 + 4.2(O2 + 3.76N2) = 2CO2 + 3H2O + 0.7O2 + 15.79N2;\n",
+ "Nprod=2+3+0.7+15.79;\n",
+ "#for dew point water vapour condenses\n",
+ "Nv=3;\n",
+ "Pv=Nv/Nprod*P;\n",
+ "#at this Pv\n",
+ "Tdp=52.3;\n",
+ "print'the dew-point %f C'%Tdp\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air-fuel ratio of combustion process 19.300000 kg air/kg fuel\n",
+ "the dew-point 52.300000 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-3 ,Page No.758"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P=101.325;#total pressure in kPa\n",
+ "RH=0.8;#realtive humidity\n",
+ "T1=20;#tempearture of air in C\n",
+ "\n",
+ "#from Table A-4\n",
+ "Psat=2.3392;\n",
+ "\n",
+ "#calculations\n",
+ "#consedering 1 kmol of fuel\n",
+ "# 0.72CH4 + 0.09H2 + 0.14N2 + 0.02O2 + 0.03CO2 + ath(O2 + 3.76N2) = xCO2 + yH2O + zN2\n",
+ "#element balance\n",
+ "x=0.72+0.03\n",
+ "y=(0.72*4+0.09*2)/2;\n",
+ "ath=x+y/2-0.02-0.03;\n",
+ "z=0.14+3.76*ath;\n",
+ "Pv=RH*Psat;\n",
+ "# Nv,air = Pv,air/Ptotal * Ntotal\n",
+ "Nvair=Pv/P*6.97/(1-(Pv/P));\n",
+ "#0.72CH4 + 0.09H2 + 0.14N2 + 0.02O2 + 0.03CO2 + 1.465(O2 + 3.76N2) + 0.131H20 = 0.75CO2 + 1.661H2O + 5.648N2\n",
+ "Pvprod=1.661/8.059*P;\n",
+ "#at this Pvprod\n",
+ "Tdp=60.9;\n",
+ "print'the dew-point %f C'%Tdp"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the dew-point 60.900000 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-4 ,Page No.760"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Pprod=100;#total pressure in kPa\n",
+ "\n",
+ "#from Table A-1\n",
+ "Mair=29;\n",
+ "MC=12;\n",
+ "MH=2;\n",
+ "\n",
+ "#from Table A-4\n",
+ "Psat=3.1698;\n",
+ "\n",
+ "#calculations\n",
+ "#consedering 100 kmol of dry products\n",
+ "# xC8H18 + a (O2 + 3.76N2) = 10.02CO2 + 0.88C0 + 84.48N2 + bH20\n",
+ "#from mass balamces\n",
+ "a=83.48/3.76;\n",
+ "x=(0.88+10.02)/8;\n",
+ "b=18*x/2;\n",
+ "# 1.36C8H18 + 22.2 (O2 + 3.76N2) = 10.02CO2 + 0.88C0 + 84.48N2 + 12.24H20\n",
+ "# 1 mol conversion\n",
+ "# C8H18 + 16.32 (O2 + 3.76N2) = 7.37CO2 + 4.13C0 + 61.38N2 + 9H20\n",
+ "AF= 16.32*4.76*Mair/(8*MC+9*MH);\n",
+ "print'air-fuel ratio of combustion process %f kg air/kg fuel'%round(AF,2);\n",
+ "# C8H18 + ath (O2 + 3.76N2) = 8CO2 + 9H2O + 3.76athN2\n",
+ "ath=8+4.5;\n",
+ "Pth=16.32/ath*4.76/4.76*100;\n",
+ "print'percentage of theoretical air is %i'%round(Pth);\n",
+ "Nprod=7.37+0.65+4.13+61.98+9;\n",
+ "# Nv/Nprod = Pv/Pprod\n",
+ "Pv=Psat;\n",
+ "Nw= (Nprod*Pv-9*Pprod)/(Pv-Pprod);\n",
+ "print'the amount of H2O that condenses as the products %f kmol'%round(Nw,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "air-fuel ratio of combustion process 19.760000 kg air/kg fuel\n",
+ "percentage of theoretical air is 131\n",
+ "the amount of H2O that condenses as the products 6.570000 kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-5 ,Page No.764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#there is a difference in the answer due to approximation in the textbook\n",
+ "\n",
+ "#given data\n",
+ "T=25;#temperature of octane in C\n",
+ "\n",
+ "#from Table A-6\n",
+ "HCO2=-393520;\n",
+ "HH2O=-285830;\n",
+ "HC8H18=-249950;\n",
+ "\n",
+ "#calculations\n",
+ "# C8H18 + ath (O2 + 3.76N2) = 8CO2 + 9H2O + 3.76athN2\n",
+ "#N2 and O2 are stable elements, and thus their enthalpy of formation is zero\n",
+ "#hc = Hprod - Hreact\n",
+ "hc= 8*HCO2 + 9*HH2O - HC8H18;\n",
+ "print'the enthalpy of combustion of liquid octane %i kJ/kmol'%hc\n",
+ "print 'or %i kJ/kg C8H18'%round(hc/114,0)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the enthalpy of combustion of liquid octane -5470680 kJ/kmol\n",
+ "or -47989 kJ/kg C8H18\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-6 ,Page No.767"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "mfuel=0.05;#mass flow rate in kg/min\n",
+ "\n",
+ "#from Table A-1\n",
+ "Mair=29;\n",
+ "MC=12;\n",
+ "MH=2;\n",
+ "\n",
+ "#calculation\n",
+ "#stochiometric reaction\n",
+ "#C3H8 + ath(O2 + 3.76N2) = 3CO2 + 4H2O + 3.76athN2\n",
+ "#O2 balance\n",
+ "ath=3+5;\n",
+ "#50 percent excess air and some CO in the products\n",
+ "#C3H8 + 7.5(O2 + 3.76N2) = 2.7CO2 + 0.3CO + 4H2O + 2.65O2+ 28.2N2\n",
+ "AF=7.5*4.76*Mair/(3*MC+4*MH);\n",
+ "mair=AF*mfuel;\n",
+ "print'the mass flow rate of air %f kg air/min'%round(mair,2);\n",
+ "#from property tables\n",
+ "#C3H8 designated as p\n",
+ "hfp=-118910;\n",
+ "#oxygen as o\n",
+ "hfo=0;\n",
+ "ho280=8150;\n",
+ "ho298=8682;\n",
+ "ho1500=49292;\n",
+ "#nitrogen as n\n",
+ "hfn=0;\n",
+ "hn280=8141;\n",
+ "hn298=8669;\n",
+ "hn1500=47073;\n",
+ "#water as w\n",
+ "hfw=-241820;\n",
+ "hw298=9904;\n",
+ "hw1500=57999;\n",
+ "#carbondioxode as c\n",
+ "hfc=-393520;\n",
+ "hc298=9364;\n",
+ "hc1500=71078;\n",
+ "#carbon monoxide as co\n",
+ "hfco=-110530;\n",
+ "hco298=8669;\n",
+ "hco1500=47517;\n",
+ "qout=1*(hfp)+7.5*(hfo+ho280-ho298)+28.2*(hfn+hn280-hn298)-2.7*(hfc+hc1500-hc298)-0.3*(hfco+hco1500-hco298)-4*(hfw+hw1500-hw298)-2.65*(hfo+ho1500-ho298)-28.2*(hfn+hn1500-hn298);\n",
+ "#for kg of propane\n",
+ "qout=qout/44;\n",
+ "Qout=mfuel*qout/60;\n",
+ "print'the rate of heat transfer from the combustion chamber %f kW'%round(Qout,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mass flow rate of air 1.180000 kg air/min\n",
+ "the rate of heat transfer from the combustion chamber 6.890000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-7 ,Page No.769"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#the 0.175% error in last part is due to the approximation in the textbook\n",
+ "\n",
+ "#given data\n",
+ "Preact=1.0;#total pressure in kPa\n",
+ "Treact=77+460.0;#reaction temperature in R\n",
+ "Tprod=1800.0;#final temperature in R\n",
+ "\n",
+ "#constants used\n",
+ "Ru=1.986;\n",
+ "\n",
+ "#calculation\n",
+ "#CH4 + 3O2 = CO2 + 2H2O + O2\n",
+ "Nreact=4;\n",
+ "Nprod=4;\n",
+ "Pprod=Preact*Nprod/Nreact*Tprod/Treact;\n",
+ "print'the final pressure in the tank %f atm'%round(Pprod,2);\n",
+ "#from std. values of heat of formation and ideal gasses in Appendix\n",
+ "#CH4 as m\n",
+ "hfm=-32210.0;\n",
+ "#O2 as o\n",
+ "hfo=0;\n",
+ "h537o=3725.1;\n",
+ "h1800o=13485.8;\n",
+ "#water as w\n",
+ "hfw=-104040.0;\n",
+ "h537w=4528.0;\n",
+ "h1800w=15433.0\n",
+ "#carbondioxide as c\n",
+ "hfc=-169300.0;\n",
+ "h537c=4027.5;\n",
+ "h1800c=18391.5;\n",
+ "Qout=1*(hfm-Ru*Treact)+3*(hfo-Ru*Treact)-1*(hfc+h1800c-h537c-Ru*Tprod)-2*(hfw+h1800w-h537w-Ru*Tprod)-1*(hfo+h1800o-h537o-Ru*Tprod);\n",
+ "print'the heat transfer during this process %i Btu/lbmol'%round(Qout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final pressure in the tank 3.350000 atm\n",
+ "the heat transfer during this process 309269 Btu/lbmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-8 ,Page No.771"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#this invovles EES hence the below code explains a approach with approximation\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "#C8H18 + 12.5 (O2 + 3.76N2) = 8CO+ 9H2O + 47N2\n",
+ "#from std. values of heat of formation and ideal gasses in Appendix\n",
+ "#octane as oc\n",
+ "hfoc=-249950.0;\n",
+ "#oxygen as o\n",
+ "hfo=0;\n",
+ "h298o=8682.0;\n",
+ "#nitrogen as n\n",
+ "hfn=0;\n",
+ "h298n=8669.0;\n",
+ "#water as w\n",
+ "hfw=-241820.0;\n",
+ "h298w=9904.0;\n",
+ "#carbondioxide as c\n",
+ "hfc=-393520.0;\n",
+ "h298c=9364.0;\n",
+ "#x refers to 8hCO2 + 9hH20 + 47hN2\n",
+ "xac=1*(hfoc)+8*(h298c-hfc)+9*(h298w-hfw)+47*(h298n-hfn);\n",
+ "#from EES the Tprod is determined by trial and error\n",
+ "#at 2400K\n",
+ "x2400=5660828.0;\n",
+ "#at 2350K\n",
+ "x2350=5526654.0;\n",
+ "#the actual value of x is xac and T can be determined by interpolation\n",
+ "Tprod=(xac-x2350)*(2400.0-2350.0)/(x2400-x2350)+2350.0;\n",
+ "print'adiabatic flame temperature for complete combustion with 100 percent theoretical air %i K'%round(Tprod);\n",
+ "\n",
+ "#part - b\n",
+ "#C8H18 + 50 (O2 + 3.76N2) = 8CO+ 9H2O + 37.5O2 + 188N2\n",
+ "#solved similarly using EES and approximation and interpolation\n",
+ "#similarly we can solve the part - c \n",
+ "#the above concept is applied\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "adiabatic flame temperature for complete combustion with 100 percent theoretical air 2395 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-9 ,Page No.776"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#from Table A-26E\n",
+ "#Gibbs function of formation at 77\u00b0F\n",
+ "gfc=0;#for carbon\n",
+ "gfo=0;#for oxygen\n",
+ "gfco=-169680;#for carbondioxide\n",
+ "\n",
+ "#calculations\n",
+ "# C + O2 = CO2\n",
+ "Wrev=1*gfc+1*gfo-1*gfco;\n",
+ "print'the reversible work for this process %i Btu'%round(Wrev) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the reversible work for this process 169680 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-10 ,Page No.777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given values\n",
+ "T0=298;#combustion chamber temperature in K\n",
+ "\n",
+ "#contansts used \n",
+ "Ru=8.314;#in kJ/kmol K\n",
+ "\n",
+ "#calculations\n",
+ "# CH4 + 3(O2 + 3.76N2) = CO2 + 2H2O + O2 + 11.28N2\n",
+ "#from std. values of heat of formation and ideal gasses in Appendix\n",
+ "#methane as m\n",
+ "hfm=-74850;\n",
+ "#oxygen as o\n",
+ "hfo=0;\n",
+ "h298o=8682;\n",
+ "#nitrogen as n\n",
+ "hfn=0;\n",
+ "h298n=8669;\n",
+ "#water as w\n",
+ "hfw=-241820;\n",
+ "h298w=9904;\n",
+ "#carbondioxide as c\n",
+ "hfc=-393520;\n",
+ "h298c=9364;\n",
+ "#x refers to hCO2 + 2hH2O + 11.28hN2\n",
+ "xac=1*(hfm)+1*(h298c-hfc)+2*(h298w-hfw)+11.28*(h298n-hfn);\n",
+ "#from EES the Tprod is determined by trial and error\n",
+ "Tprod=1789;\n",
+ "print'the temperature of the products %i K'%round(Tprod);\n",
+ "#entropy calculations by using table A-26\n",
+ "#Si = Ni*(si - Ruln yiPm\n",
+ "#reactants\n",
+ "Sm=1*(186.16-Ru*log(1*1));\n",
+ "So=3*(205.04-Ru*log(0.21*1));\n",
+ "Sn=11.28*(191.61-Ru*log(.79*1));\n",
+ "Sreact=Sm+So+Sn;\n",
+ "#products\n",
+ "Nt=1+2+1+11.28;#total moles\n",
+ "yc=1/Nt;\n",
+ "yw=2/Nt;\n",
+ "yo=1/Nt;\n",
+ "yn=11.28/Nt;\n",
+ "Sc=1*(302.517-Ru*log(yc*1));\n",
+ "Sw=2*(258.957-Ru*log(yw*1));\n",
+ "So=1*(264.471-Ru*log(yo*1));\n",
+ "Sn=11.28*(247.977-Ru*log(yn*1));\n",
+ "Sprod=Sc+Sw+So+Sn;\n",
+ "Sgen=Sprod-Sreact;\n",
+ "print'exergy destruction %i kJ/kmol - K'%round(Sgen);\n",
+ "Xdestroyed=T0*Sgen/1000;#factor of 1000 for converting kJ to MJ\n",
+ "print'%i MJ/kmol'%round(Xdestroyed);\n",
+ "#This process involves no actual work. Therefore, the reversible work and energy destroyed are identical\n",
+ "Wrev=Xdestroyed;\n",
+ "print'the reversible work %i MJ/kmol'%round(Wrev)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the temperature of the products 1789 K\n",
+ "exergy destruction 966 kJ/kmol - K\n",
+ "288 MJ/kmol\n",
+ "the reversible work 288 MJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15-11 ,Page No.778"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given values\n",
+ "Tsurr=298;#temperature of surroundings in K\n",
+ "\n",
+ "#contansts used \n",
+ "Ru=8.314;#in kJ/kmol K\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "# CH4 + 3(O2 + 3.76N2) = CO2 + 2H2O + O2 + 11.28N2\n",
+ "#The amount of water vapor that remains in the products is determined as in Example 15\u20133\n",
+ "Nv=0.43;#moles of water vapour\n",
+ "Nw=1.57;#moles of water in liquid\n",
+ "#hf values\n",
+ "#methane as m\n",
+ "hfm=-74850;\n",
+ "#carbondioxide as c\n",
+ "hfc=-393520;\n",
+ "#water vapour as v\n",
+ "hfv=-241820;\n",
+ "#water in liquid as w\n",
+ "hfw=-285830;\n",
+ "Qout=1*hfm-1*hfc-Nv*hfv-Nw*hfw;\n",
+ "print'Qout = %i kJ/kmol'%round(Qout)\n",
+ "\n",
+ "#part - b\n",
+ "#entropy calculations by using table A-26\n",
+ "#Si = Ni*(si - Ruln yiPm\n",
+ "#reactants\n",
+ "Sm=1*(186.16-Ru*log(1*1));\n",
+ "So=3*(205.04-Ru*log(0.21*1));\n",
+ "Sn=11.28*(191.61-Ru*log(.79*1));\n",
+ "Sreact=Sm+So+Sn;\n",
+ "#products\n",
+ "Nt=Nv+1+1+11.28;#total moles\n",
+ "yw=1;\n",
+ "yc=1/Nt;\n",
+ "yv=Nv/Nt;\n",
+ "yo=1/Nt;\n",
+ "yn=11.28/Nt;\n",
+ "Sw=Nw*(69.92-Ru*log(yw*1));\n",
+ "Sc=1*(213.80-Ru*log(yc*1));\n",
+ "Sv=Nv*(188.83-Ru*log(yv*1));\n",
+ "So=1*(205.04-Ru*log(yo*1));\n",
+ "Sn=11.28*(191.61-Ru*log(yn*1));\n",
+ "Sprod=Sc+Sw+So+Sn+Sv;\n",
+ "Sgen=Sprod-Sreact+Qout/Tsurr;\n",
+ "print'Sgen = %i kJ/kmol - K'%round(Sgen);\n",
+ "Xdestroyed=Tsurr*Sgen/1000;#factor of 1000 for converting kJ to MJ\n",
+ "print'exergy destruction %i MJ/kmol'%round(Xdestroyed);\n",
+ "#This process involves no actual work. Therefore, the reversible work and energy destroyed are identical\n",
+ "Wrev=Xdestroyed;\n",
+ "print'the reversible work %i MJ/kmol'%round(Wrev)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Qout = 871406 kJ/kmol\n",
+ "Sgen = 2746 kJ/kmol - K\n",
+ "exergy destruction 818 MJ/kmol\n",
+ "the reversible work 818 MJ/kmol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter16.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter16.ipynb
new file mode 100755
index 00000000..4326dc6f
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter16.ipynb
@@ -0,0 +1,378 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 16: Chemical and Phase Equilibrium"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-1 ,Page No.798"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import exp\n",
+ "\n",
+ "#given data\n",
+ "T=298.15;#reaction temperature in K\n",
+ "\n",
+ "#from Table A-26\n",
+ "g=455510;\n",
+ "\n",
+ "#constants used\n",
+ "R=8.314;#in kJ/kmol K\n",
+ "\n",
+ "#calculations\n",
+ "# N2 = 2N\n",
+ "dG=2*g;\n",
+ "logKp=-dG/(R*T);\n",
+ "Kp=exp(logKp);\n",
+ "print('Kp = ',Kp)\n",
+ "print'in comparison to Table A-28 ln Kp value of -367.5 our result is %i'%logKp;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('Kp = ', 2.4396097259977668e-160)\n",
+ "in comparison to Table A-28 ln Kp value of -367.5 our result is -367\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-2 ,Page No.798"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P=10;#pressure in atm\n",
+ "\n",
+ "#constants\n",
+ "vH2=1;\n",
+ "vH=2;\n",
+ "\n",
+ "#calculations\n",
+ "# H2 = 0.9H2 + 0.2H\n",
+ "NH=0.2;\n",
+ "NH2=0.9;\n",
+ "Nt=NH+NH2;\n",
+ "#from Eq. 16-15\n",
+ "Kp=((NH**vH)/(NH2**vH2))*(P/Nt)**(vH-vH2);\n",
+ "#at this value of Kp from Table A-28\n",
+ "T=3535;\n",
+ "print'temperature %i K is'%T;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature 3535 K is\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-6 ,Page No.807"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#reaction\n",
+ "# H2 + 0.5O2 = H2O\n",
+ "#enthalpy datas in kJ/kmol \n",
+ "#of H2\n",
+ "hfH=-241820;\n",
+ "h2000H=82593;\n",
+ "h298H=9904;\n",
+ "#of O2\n",
+ "hfO=0;\n",
+ "h2000O=61400;\n",
+ "h298O=8468;\n",
+ "#of H2O\n",
+ "hfw=0;\n",
+ "h2000w=67881;\n",
+ "h298w=8682;\n",
+ "#Kp data from A-28\n",
+ "Kp2=869.6;\n",
+ "Kp1=18509;\n",
+ "T1=1800;\n",
+ "T2=2200;\n",
+ "\n",
+ "#constants used\n",
+ "Ru=8.314;#in kJ/kmol K\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "hR=1*(hfH+h2000H-h298H)-1*(hfO+h2000O-h298O)-0.5*(hfw+h2000w-h298w);\n",
+ "print'enthalpy of the reaction %i kJ/kmol using enthalpy data'%round(hR);\n",
+ "#part - b\n",
+ "hR=Ru*(T1*T2)/(T2-T1)*log(Kp2/Kp1);\n",
+ "print'enthalpy of the reaction %i kJ/kmol using enthalpy data'%round(hR);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy of the reaction -251663 kJ/kmol using enthalpy data\n",
+ "enthalpy of the reaction -251698 kJ/kmol using enthalpy data\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-7 ,Page No.809"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=120+273.15;#temperature of saturated water in K\n",
+ "\n",
+ "#from Table A-4\n",
+ "hf=503.81;\n",
+ "hg=2706;\n",
+ "sf=1.5279;\n",
+ "sg=7.1292;\n",
+ "\n",
+ "#calculations\n",
+ "print('liquid phase');\n",
+ "gf=hf-T*sf;\n",
+ "print'gf value %f kJ/kg'%round(gf,1);\n",
+ "print('vapour phase');\n",
+ "gg=hg-T*sg;\n",
+ "print'gg value %f kJ/kg'%round(gg,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "liquid phase\n",
+ "gf value -96.900000 kJ/kg\n",
+ "vapour phase\n",
+ "gg value -96.800000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-8 ,Page No.813"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=15;#lake temperature in C\n",
+ "P=92.0;#atmospheric pressure in kPa\n",
+ "\n",
+ "#from Table A-4\n",
+ "Pv=1.7057;\n",
+ "\n",
+ "#calculations\n",
+ "yv=Pv/P;\n",
+ "print'mole fraction of water vapor at the surface is %f'%round(yv,4);\n",
+ "yw=1-yv;\n",
+ "print'mole fraction of water in the lake is %f percent'%(round(yw)*100)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of water vapor at the surface is 0.018500\n",
+ "mole fraction of water in the lake is 100.000000 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-9 ,Page No.214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=17.0;#lake temperature in C\n",
+ "P=92.0;#atmospheric pressure in kPa\n",
+ "\n",
+ "#from Table A-4\n",
+ "Pv=1.96;\n",
+ "\n",
+ "#constants from Table 16-2\n",
+ "H=62000.0;\n",
+ "\n",
+ "#calculations\n",
+ "Pda=P-Pv;#dry air\n",
+ "yda=Pda/H/100;#in bar\n",
+ "print'mole fraction of air is %f'%(yda)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of air is 0.000015\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-10 ,Page No.814"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=358;#hydrogen gas temperature in K\n",
+ "P=300/100;#pressure of hydrogen gas in bar\n",
+ "\n",
+ "#constants used\n",
+ "M=2;\n",
+ "s=0.00901;#solubility in kmol/m^3 bar\n",
+ "p=0.027;\n",
+ "\n",
+ "#calculations\n",
+ "pH2=s*P;\n",
+ "print'molar density of H2 %f kmol/m^3'%round(pH2,3);\n",
+ "pH2=p*M;\n",
+ "print'mass density of H2 %f kg/m^3'%round(pH2,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molar density of H2 0.027000 kmol/m^3\n",
+ "mass density of H2 0.054000 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16-11 ,Page No.815"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "yw=0.30;#water mole fraction\n",
+ "ya=0.70;#ammonia mole fraction\n",
+ "T=40;#mixture temperature in C\n",
+ "\n",
+ "#saturation pressure\n",
+ "pw=7.3851;\n",
+ "pa=1554.33;\n",
+ "#calulations\n",
+ "Pw=yw*pw;\n",
+ "Pa=ya*pa;\n",
+ "Pt=Pw+Pa;\n",
+ "yw=Pw/Pt;\n",
+ "ya=Pa/Pt;\n",
+ "print'mole fraction of water vapour %f'%round(yw,4);\n",
+ "print'mole fraction of ammonia %f'%round(ya,4);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mole fraction of water vapour 0.002000\n",
+ "mole fraction of ammonia 0.998000\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter17.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter17.ipynb
new file mode 100755
index 00000000..5b1b7ade
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter17.ipynb
@@ -0,0 +1,812 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17: Compressible Flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-1 ,Page No.826"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V1=250.0;#velocity of aircraft in m/s\n",
+ "T1=255.07;#ambient air temperature in K\n",
+ "P1=54.05;#atmospheric pressure in kPa\n",
+ "h=5000.0;#altitude in m\n",
+ "\n",
+ "#from Table A-2a\n",
+ "cp=1.005;#in kJ/kg-K\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "T01=T1+V1**2/(2*cp*1000);#factor of 1000 to convert kJ to J\n",
+ "P01=P1*(T01/T1)**(k/(k-1));\n",
+ "#given pressure ratio in compressor *\n",
+ "# T02 = T01*(P02/P01)^((k-1)/k)\n",
+ "T02 = T01*(8)**((k-1)/k);\n",
+ "win=cp*(T02-T01);\n",
+ "print'the stagnation pressure at the compressor inlet %f kPa'%round(P01,2);\n",
+ "print'the required compressor work per unit mass %f kJ/kg'%round(win,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the stagnation pressure at the compressor inlet 80.840000 kPa\n",
+ "the required compressor work per unit mass 233.400000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-2 ,Page No.829"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "V=200.0;#air velocity in m/s\n",
+ "T=30+273.0;#air temperature in K\n",
+ "\n",
+ "#from Table A-2a\n",
+ "R=0.287;#in kJ/kg-K\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "c=sqrt(k*R*T*1000);#factor of 1000 to convert kJ to J\n",
+ "print'the speed of sound %i m/s'%round(c);\n",
+ "Ma=V/c;\n",
+ "print'the Mach number at the diffuser inlet is %f'%round(Ma,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the speed of sound 349 m/s\n",
+ "the Mach number at the diffuser inlet is 0.573000\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-3 ,Page No.829"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "T0=200+273.0;#intial temperature in K\n",
+ "P0=1400.0;#intial pressure in kPa\n",
+ "#stagnant temp. & pressure is same as inlet due to small inlet velocity\n",
+ "P=1200.0;#pressure corresponding to a pressure drop of 200 kPa\n",
+ "m=3.0;#mass flow rate in kg/s\n",
+ "\n",
+ "#from Table A-2a\n",
+ "cp=0.846;#in kJ/kg-K\n",
+ "R=0.1889;#in kJ/kg-K\n",
+ "k=1.289;\n",
+ "\n",
+ "#calculations\n",
+ "T=T0*(P/P0)**((k-1)/k);\n",
+ "V=sqrt(2*cp*(T0-T)*1000);#factor of 1000 to convert kJ to J\n",
+ "p=P/(R*T);\n",
+ "A=m/(p*V);\n",
+ "c=sqrt(k*R*T*1000);#factor of 1000 to convert kJ to J\n",
+ "Ma=V/c;\n",
+ "print'velocity %f m/s'%round(V,1);\n",
+ "print'density %f kg/m^3'%round(p,1);\n",
+ "print'flow area %f cm^2'%round((A*10000),1);\n",
+ "print'Mach number is %f'%round(Ma,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "velocity 164.900000 m/s\n",
+ "density 13.900000 kg/m^3\n",
+ "flow area 13.100000 cm^2\n",
+ "Mach number is 0.494000\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-4 ,Page No.836"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T0=200+273.0;#intial temperature in K\n",
+ "P0=1400.0;#intial pressure in kPa\n",
+ "\n",
+ "#from Table A-2a\n",
+ "k=1.289;\n",
+ "\n",
+ "#calculations\n",
+ "#Tc & Tr stands for critical temp and ratio respectively\n",
+ "#Pc & Pr stands for critical temp and ratio respectively\n",
+ "Tr=2/(k+1);\n",
+ "Pr=(2/(k+1))**(k/(k-1));\n",
+ "Tc=Tr*T0;\n",
+ "Pc=Pr*P0;\n",
+ "print'critical temperature %i K'%round(Tc);\n",
+ "print'critical pressure %i kPa'%round(Pc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "critical temperature 413 K\n",
+ "critical pressure 767 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-5 ,Page No.839"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "Vi=150.0;#air velocity in m/s\n",
+ "Ti=600+273.0;#air temperature in K\n",
+ "Pi=1.0;#air pressure in MPa\n",
+ "At=50.0/10000.0;#nozzle throat area in m^2\n",
+ "\n",
+ "#from Table A-2a\n",
+ "R=0.287;#in kJ/kg-K\n",
+ "cp=1.005;#in kJ/kg-K\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "Toi=Ti+Vi**2/(2*cp*1000);#factor of 1000 to convert kJ to J\n",
+ "Poi=Pi*(Toi/Ti)**(k/(k-1));\n",
+ "#flow is isentropic \n",
+ "#stagnation temp. and pressure values remain constant\n",
+ "To=Toi;\n",
+ "Po=Poi;\n",
+ "#from Table 17\u20132\n",
+ "#The critical-pressure ratio is 0.5283\n",
+ "\n",
+ "#Part a\n",
+ "Pb=0.7;\n",
+ "Pca=Pb/Po;\n",
+ "# Pca > 0.5283\n",
+ "#exit plane pressure is equal to the back pressure\n",
+ "Pt=Pb;\n",
+ "#from Table A\u201332\n",
+ "Mat=0.778;\n",
+ "#Tt/To = 0.892\n",
+ "Tt=0.892*To;\n",
+ "pt=Pt*1000/(R*Tt);#factor of 1000 to convert MPa to kPa\n",
+ "Vt=Mat*sqrt(k*R*Tt*1000);#factor of 1000 to convert kJ to J\n",
+ "ma=pt*At*Vt;\n",
+ "print'the mass flow rate through the nozzle when the back pressure is 0.7 MPa %f kg/s'%round(ma,2);\n",
+ "\n",
+ "#Part b\n",
+ "Pb=0.4;\n",
+ "Pca=Pb/Po;\n",
+ "# Pca < 0.5283\n",
+ "#sonic conditions exists at the exit\n",
+ "Ma=1;\n",
+ "mb=At*(Po*1000)*(sqrt(k*1000/(R*To)))*(2/(k+1))**((k+1)/(2*(k-1)));#factor of 1000 to convert MPa to kPa and kJ to J\n",
+ "print'the mass flow rate through the nozzle when the back pressure is 0.4 MPa %f kg/s'%round(mb,2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mass flow rate through the nozzle when the back pressure is 0.7 MPa 6.770000 kg/s\n",
+ "the mass flow rate through the nozzle when the back pressure is 0.4 MPa 7.110000 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-6 ,Page No.840"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=400;#intial temperature in K\n",
+ "P1=100;#intial pressure in kPa\n",
+ "Ma1=0.3;#intial mach no\n",
+ "A21=0.8;#A2/A1 as flow area has been reduced by 20 percent\n",
+ "\n",
+ "#assumption\n",
+ "k=1.4;\n",
+ "\n",
+ "#from Table A\u201332\n",
+ "#at Ma1=0.3\n",
+ "#s stands for * symbol\n",
+ "A1s = 2.0351;#A1/As\n",
+ "T10 = 0.9823;#T1/T0\n",
+ "P10 = 0.9305;#P1/P0\n",
+ "A2s = A21*A1s;#A2/As\n",
+ "#at this value of A2/As\n",
+ "T20=0.9701;#T2/T0\n",
+ "P20=0.8993;#P2/P0\n",
+ "Ma2=0.391;\n",
+ "\n",
+ "#calculations\n",
+ "T2=T1*T20/T10;\n",
+ "P2=P1*P20/P10;\n",
+ "print'Ma2 is %f'%round(Ma2,3);\n",
+ "print'T2 %i K is'%round(T2);\n",
+ "print'P2 %f kPa is'%round(P2,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ma2 is 0.391000\n",
+ "T2 395 K is\n",
+ "P2 96.600000 kPa is\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-7 ,Page No.844"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data \n",
+ "T0=800;#intial temperature in K\n",
+ "P0=1;#intial pressure in MPa\n",
+ "Vi=0;#negligible intial velcity\n",
+ "At=20;#throat area in cm^2\n",
+ "Mae=2;#exit Mach number\n",
+ "\n",
+ "#from Table A-2a\n",
+ "R=0.287;#in kJ/kg-K\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "# Mach no. at exit is 2 hence sonic conditions at throat\n",
+ "p0=P0*1000/(R*T0);#factor of 1000 to convert MPa to kPa\n",
+ "#from Table A-32 at Mat=1\n",
+ "#s stands for * symbol\n",
+ "Ps0 = 0.5283;#Ts/T0\n",
+ "Ts0 = 0.8333;#Ps/P0\n",
+ "ps0=0.6339;#ps/p0\n",
+ "Ps=Ps0*P0;\n",
+ "Ts=Ts0*T0;\n",
+ "ps=ps0*p0;\n",
+ "As=At;\n",
+ "Vs=sqrt(k*R*Ts*1000);#factor of 1000 to convert kJ to J\n",
+ "print('the throat conditions');\n",
+ "print'Presssure %f MPa'%round(Ps,4);\n",
+ "print'Temperature %f K'%round(Ts,1);\n",
+ "print'density %f kg/m^3'%round(ps,3);\n",
+ "print'area %f cm^2'%round(As);\n",
+ "print'velocity %f m/s'%round(Vs,1);\n",
+ "\n",
+ "#part - b\n",
+ "#from Table A-32\n",
+ "#at Mae=2\n",
+ "Te0 = 0.5556;#Te/T0\n",
+ "Pe0 = 0.1278;#Pe/P0\n",
+ "pe0= 0.2300;#pe/p0\n",
+ "Ae0= 1.6875;#Ae/Ao\n",
+ "Pe=Pe0*P0;\n",
+ "Te=Te0*T0;\n",
+ "pe=pe0*p0;\n",
+ "Ae=Ae0*At;\n",
+ "Ve=Mae*sqrt(k*R*Te*1000);#factor of 1000 to convert kJ to J\n",
+ "print('the exit plane conditions, including the exit area');\n",
+ "print'Presssure %f MPa'%round(Pe,4);\n",
+ "print'Temperature %f K'%round(Te,1);\n",
+ "print'density %f kg/m^3'%round(pe,3);\n",
+ "print'area %f cm^2'%round(Ae,2);\n",
+ "print'velocity %f m/s'%round(Ve,1);\n",
+ "#part - c\n",
+ "m=ps*As*Vs/10000;#factor of 10000 to convert cm^2 to m^2\n",
+ "print'the mass flow rate through the nozzle %f kg/s'%round(m,2);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the throat conditions\n",
+ "Presssure 0.528300 MPa\n",
+ "Temperature 666.600000 K\n",
+ "density 2.761000 kg/m^3\n",
+ "area 20.000000 cm^2\n",
+ "velocity 517.500000 m/s\n",
+ "the exit plane conditions, including the exit area\n",
+ "Presssure 0.127800 MPa\n",
+ "Temperature 444.500000 K\n",
+ "density 1.002000 kg/m^3\n",
+ "area 33.750000 cm^2\n",
+ "velocity 845.200000 m/s\n",
+ "the mass flow rate through the nozzle 2.860000 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-9 ,Page No.850"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log,sqrt\n",
+ "\n",
+ "#data from Ex - 17.7\n",
+ "m=2.86;\n",
+ "Ma1=2;\n",
+ "P01=1;\n",
+ "P1=0.1278;\n",
+ "T1=444.5;\n",
+ "p1=1.002;\n",
+ "\n",
+ "#from Table A-2a\n",
+ "R=0.287;#in kJ/kg-K\n",
+ "cp=1.005;#in kJ/kg-K\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "#from Table A-33 at Ma1=2.0\n",
+ "Ma2=0.5774;\n",
+ "P0201=0.7209;#P02/P01\n",
+ "P21=4.5;#P2/P1;\n",
+ "T21=1.6875;#T2/T1\n",
+ "p21=2.6667;#p2/p1\n",
+ "P02=P0201*P01;\n",
+ "P2=P21*P1;\n",
+ "T2=T21*T1;\n",
+ "p2=p21*p1;\n",
+ "print'the stagnation pressure %f MPa'%round(P02,3);\n",
+ "print'the static pressure %f MPa'%round(P2,3);\n",
+ "print'static temperature %f K'%round(T2);\n",
+ "print'static density %f kg/m^3'%round(p2,2);\n",
+ "\n",
+ "#part - b\n",
+ "#s21 = s2 - s1\n",
+ "s21=cp*log(T2/T1)-R*log(P2/P1);\n",
+ "print'the entropy change across the shock %fkJ/kg-K'%round(s21,4);\n",
+ "\n",
+ "#part - c\n",
+ "V2=Ma2*sqrt(k*R*T2*1000);#factor of 1000 to convert kJ to J\n",
+ "print'the exit velocity %f m/s'%round(V2);\n",
+ "\n",
+ "#part - d\n",
+ "print('flow rate is not affected by presence of shock waves amd remains 2.86 kg/sec')"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the stagnation pressure 0.721000 MPa\n",
+ "the static pressure 0.575000 MPa\n",
+ "static temperature 750.000000 K\n",
+ "static density 2.670000 kg/m^3\n",
+ "the entropy change across the shock 0.094200kJ/kg-K\n",
+ "the exit velocity 317.000000 m/s\n",
+ "flow rate is not affected by presence of shock waves amd remains 2.86 kg/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-10 ,Page No.858"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sin,pi\n",
+ "\n",
+ "#given data\n",
+ "#using protactor frpm Fig 17-36\n",
+ "u=19;#u stands for angle of the mach lines\n",
+ "\n",
+ "#calculations\n",
+ "#by Eq. 17-47\n",
+ "#i.e u= asin(1/Ma)\n",
+ "Ma=1/sin(u*pi/180);#converting to radians\n",
+ "print'The Mach number is %f'%round(Ma,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Mach number is 3.070000\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-11 ,Page No.858"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sin,pi\n",
+ "\n",
+ "#given data\n",
+ "Ma1=2;#Supersonic air mach no\n",
+ "P1=75;#Supersonic air at pressure in kPa\n",
+ "O=10*pi/180;#converting to radians & angle b/w shock wave and normal\n",
+ "\n",
+ "#constants used\n",
+ "k=1.4;\n",
+ "\n",
+ "#calcualtions\n",
+ "#with given values of Ma1 and O from Eq 17-46\n",
+ "Bweak=39.3*pi/180;#converting to radians\n",
+ "Bstrong=83.7*pi/180;#converting to radians\n",
+ "#Weak shock\n",
+ "Ma1w=Ma1*sin(Bweak);\n",
+ "#Strong shock\n",
+ "Ma1s=Ma1*sin(Bstrong);\n",
+ "#from second part Eq 17-40\n",
+ "Ma2w=0.8032;\n",
+ "Ma2s=0.5794;\n",
+ "#pressure ratio = (2*k*Ma^2 - k + 1)/(k + 1 )\n",
+ "#Weak shock\n",
+ "P2w=P1*(2*k*Ma1w**2 - k + 1)/(k + 1 );\n",
+ "print'pressure for weak shock %i kPa'%round(P2w);\n",
+ "#Strong shock\n",
+ "P2s=P1*(2*k*Ma1s**2 - k + 1)/(k + 1 );\n",
+ "print'pressure for strong shock %i kPa'%round(P2s);\n",
+ "#Weak shock\n",
+ "Ma2=Ma2w/sin(Bweak-O);\n",
+ "print'Mach number downstream for weak shock is %f'%round(Ma2,2);\n",
+ "#Strong shock\n",
+ "Ma2=Ma2s/sin(Bstrong-O);\n",
+ "print'Mach number downstream for strong shock is %f'%round(Ma2,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure for weak shock 128 kPa\n",
+ "pressure for strong shock 333 kPa\n",
+ "Mach number downstream for weak shock is 1.640000\n",
+ "Mach number downstream for strong shock is 0.604000\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 17-12 ,Page No.859"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt,pi,atan\n",
+ "\n",
+ "#given data\n",
+ "Ma1=2;#Supersonic air mach no\n",
+ "P1=230;#Supersonic air pressure in kPa\n",
+ "O=10*pi/180;#converting to radians & O stands for angle of the mach lines\n",
+ "\n",
+ "#constants used\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "#Eq. 17\u201349 for the upstream Prandtl\u2013Meyer function\n",
+ "vMa1=sqrt((k+1)/(k-1))*atan(sqrt((k-1)*(Ma1**2-1)/(k+1))*pi/180)-atan(sqrt(Ma1**2-1)*pi/180);#converting to radians\n",
+ "#Eq. 17\u201348 to calculate the downstream Prandtl\u2013Meyer function\n",
+ "vMa2=O+vMa1;\n",
+ "#using equation solver as implict nature of Eq 17-49\n",
+ "Ma2=2.385;\n",
+ "print'downstream Mach number Ma2 is %f'%round(Ma2,3);\n",
+ "#P2 = (P2/P0)/(P1/P0) * P1\n",
+ "P2= (1 + (k-1)*Ma2**2/2 )**(-k/(k-1)) / (1 + (k-1)*Ma1**2/2 )**(-k/(k-1)) * P1;\n",
+ "print'downstream pressure %i kPa'%round(P2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "downstream Mach number Ma2 is 2.385000\n",
+ "downstream pressure 126 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-15 ,Page No.868"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sqrt\n",
+ "\n",
+ "#given data\n",
+ "P1=480.0;#intial pressure in kPa\n",
+ "T1=550.0;#intial temperature in K\n",
+ "V1=80.0;#intial velocity in m/s\n",
+ "d1=15.0/100.0;#diameter in m\n",
+ "AF=40.0;#air to fuel ratio\n",
+ "HV=40000.0;#heating value in kJ/kg\n",
+ "\n",
+ "#from Table A-2a\n",
+ "R=0.287;#in kJ/kg-K\n",
+ "cp=1.005;#in kJ/kg-K\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "p1=P1/(R*T1);\n",
+ "A1=pi*d1**2/4;\n",
+ "mair=p1*A1*V1;\n",
+ "mfuel=mair/AF;\n",
+ "Q=mfuel*HV;\n",
+ "q=Q/mair;\n",
+ "T01=T1+V1**2/(2*cp);\n",
+ "c1=sqrt(k*R*T1*1000);#factor of 1000 to convert kJ to J\n",
+ "Ma1=V1/c1;\n",
+ "#exit stagnation energy equation q= Cp (T02 - T01)\n",
+ "T02=T01+q/cp;\n",
+ "#from Table A\u201334\n",
+ "#at Ma1\n",
+ "#s stands for * symbol\n",
+ "T0s=0.1291;#T0/Ts\n",
+ "Ts0=T01/T0s;\n",
+ "T2s=T02/Ts0;#T02/T*0\n",
+ "#from Table A\u201334 at this ratio\n",
+ "Ma2=0.3142;\n",
+ "#Rayleigh flow relations corresponding to the inlet and exit Mach no\n",
+ "#at Ma1\n",
+ "T1s=0.1541;#T1/Ts\n",
+ "P1s=2.3065;#P1/Ps\n",
+ "V1s=0.0668;#V1/Vs\n",
+ "#at Ma2\n",
+ "T2s=0.4389;#T2/Ts\n",
+ "P2s=2.1086;#P2/Ps\n",
+ "V2s=0.2082;#V2/Vs\n",
+ "T2=T2s/T1s*T1;\n",
+ "P2=P2s/P1s*P1;\n",
+ "V2=V2s/V1s*V1; \n",
+ "print'Mach Number at exit is %f'%round(Ma2,4);\n",
+ "print'Presssure %i MPa'%round(P2);\n",
+ "print'Temperature %i K'%round(T2);\n",
+ "print'velocity %i m/s'%round(V2);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mach Number at exit is 0.314200\n",
+ "Presssure 439 MPa\n",
+ "Temperature 1566 K\n",
+ "velocity 249 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17-16 ,Page No.870"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "P01=2000;#entry pressure in kPa\n",
+ "T1=400;#entry temperature in C\n",
+ "V1=0;#negligible velocity at entry\n",
+ "nN=0.93;#overall nozzle efficiency\n",
+ "m=2.5;#mass flow rate in kg/s\n",
+ "P2=300;#exit pressure in kPa\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part - a\n",
+ "P201=P2/P01;\n",
+ "#critical pressure ratio at this values is 0.546\n",
+ "Pt=0.546*P01;\n",
+ "#at inlet\n",
+ "h1=3248.4;\n",
+ "h01=h1;\n",
+ "s1=7.1292;\n",
+ "#at throat\n",
+ "st=s1;\n",
+ "ht=3076.8;\n",
+ "vt=0.24196;\n",
+ "Vt=sqrt(2*(h01-ht)*1000);#factor of 1000 to convert kJ to J\n",
+ "At=m*vt/Vt;\n",
+ "#at state 2s\n",
+ "s2s=s1;\n",
+ "h2s=2783.6;\n",
+ "#nN = (h01 - h2)/ (h01 - h2s)\n",
+ "h2=h01-nN*(h01-h2s);\n",
+ "#at P2 and h2\n",
+ "v2=0.67723;\n",
+ "s2=7.2019;\n",
+ "V2=sqrt(2*(h01-h2)*1000);#factor of 1000 to convert kJ to J\n",
+ "A2=m*v2/V2;\n",
+ "print'throat area %f cm^2'%round((At*10000),2);\n",
+ "print'exit area %f cm^2'%round((A2*10000),2);\n",
+ "\n",
+ "#part - b\n",
+ "# at st=7.1292\n",
+ "#pressures of 1.115 and 1.065 MPa\n",
+ "#c calculated using tables\n",
+ "c=sqrt((1115-1065)/(1/0.23776 - 1/0.24633)*1000);#factor of 1000 to convert kPa to Pa\n",
+ "Ma=Vt/c;\n",
+ "print'the Mach number at the throat is %f'%round(Ma,2);\n",
+ "# at s2=7.2019\n",
+ "#pressures of 325 and 275 kPa\n",
+ "c=sqrt((325-276)/(1/0.63596 - 1/0.72245)*1000);#factor of 1000 to convert kPa to Pa\n",
+ "Ma=V2/c;\n",
+ "print'the Mach number at the nozzle exit is %f'%round(Ma,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "throat area 10.330000 cm^2\n",
+ "exit area 18.210000 cm^2\n",
+ "the Mach number at the throat is 1.000000\n",
+ "the Mach number at the nozzle exit is 1.820000\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter2.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter2.ipynb
new file mode 100755
index 00000000..db573fc6
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter2.ipynb
@@ -0,0 +1,588 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Energy Conversion and General Energy Analysis"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 2-1 ,Page No.57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#there is a 0.00490% error as the answer in textbook is expressed in multiple of 10\n",
+ "#Constants used\n",
+ "Hu=6.73*10**10;#Energy liberated by 1 kg of uranium\n",
+ "\n",
+ "# Given values\n",
+ "p=0.75;# assuming the avg density of gasoline in kg/L\n",
+ "V=5;# consumption per day of gasoline in L\n",
+ "Hv=44000; #heat value in kJ/kg\n",
+ "mu=0.1;# mass of uranium used\n",
+ "\n",
+ "#Calculation\n",
+ "mgas=p*V;#mass of gasoline required per day\n",
+ "Egas=mgas*Hv;\n",
+ "Eu=mu*Hu;\n",
+ "d=Eu/Egas;\n",
+ "print'%i number of days the car can run with uranium' %round(d,0)\n",
+ "print'equivalent to %i years' %round(d/365,0)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "40788 number of days the car can run with uranium\n",
+ "equivalent to 112 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-2 ,Page No.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Given values\n",
+ "v=8.5;# wind speed in m/s\n",
+ "m=10;# given mass for part - b \n",
+ "mf=1154;# given flowrate for part - c\n",
+ "\n",
+ "#Calculations\n",
+ "e=(v**2)/2;\n",
+ "print'wind energy per unit mass %f J/kg' %round(e,1);\n",
+ "E=m*e;\n",
+ "print'wind energy for 10 kg mass %i J' %E;\n",
+ "E=mf*e/1000;\n",
+ "print'wind energy for mass flow rate of 1154kg/s %f kW'%round(E,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "wind energy per unit mass 36.100000 J/kg\n",
+ "wind energy for 10 kg mass 361 J\n",
+ "wind energy for mass flow rate of 1154kg/s 41.700000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-7 ,Page No.67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Given values\n",
+ "T=200;# applied torque in N\n",
+ "n=4000;# shaft rotation rate in revolutions per minute\n",
+ "\n",
+ "#Calculation\n",
+ "Wsh=(2*math.pi*n*T)/1000/60;#factor of 1000 to convert to kW and 60 to convert to sec\n",
+ "print'Power transmitted %f kW'%round(Wsh,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power transmitted 83.800000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-8 ,Page No.69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Constants used\n",
+ "g=9.81;#acceleration due to gravity in m/s^2;\n",
+ "\n",
+ "#Given values\n",
+ "m=1200;#mass of car in kg\n",
+ "V=90/3.6;#velocity ; converting km/h into m/s\n",
+ "d=30*math.pi/180;#angle of slope ; converting into radians\n",
+ "\n",
+ "#Calculation\n",
+ "Vver=V*math.sin(d);#velocity in vertical direction\n",
+ "Wg=m*g*Vver/1000;\n",
+ "print'the addtional power %i kW'%Wg"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the addtional power 147 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-9 ,Page No.69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "m=900;#mass of car in kg\n",
+ "v1=0;# intial velocity\n",
+ "v2=80/3.6;# final velocity; converting km/h into m/s\n",
+ "t=20;# time taken1\n",
+ "\n",
+ "#Calculation\n",
+ "Wa=m*(v2**2-v1**2)/2/1000;\n",
+ "Wavg=Wa/t;\n",
+ "print'the average power %f kW'%round(Wavg,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the average power 11.100000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-10 ,Page No.74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "Win=100;# work done in the process in kJ\n",
+ "Qout=500;# heat lost in kJ\n",
+ "U1=800;# internal energy of the fluid in kJ\n",
+ "\n",
+ "#Calculations\n",
+ "# Win - Qout = U2- U1 i.e change in internal energy \n",
+ "U2=U1-Qout+Win;\n",
+ "print'final internal of the system %i kJ'%U2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "final internal of the system 400 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-11 ,Page No.75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#given values\n",
+ "Win=20;# power consumption in W\n",
+ "mair=0.25;# rate of air discharge in kg/sec\n",
+ "\n",
+ "#calculation\n",
+ "v=math.sqrt(Win/2/mair)#Win = 1/2*m*v^2\n",
+ "if v >=8:\n",
+ " print('True');\n",
+ "else:\n",
+ " print('False')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "False\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-12 ,Page No.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "Win=200.0;#Power of fan in W\n",
+ "U=6.0;#Overall heat transfer coefficient in W/m^2 C\n",
+ "A=30;#Surface area in m^2\n",
+ "To=25;#Outdoor temperature in C\n",
+ "\n",
+ "#Calculations\n",
+ "Ti= (Win/U/A)+To;# Win = Qout = U*A*(Ti - To)\n",
+ "print'the indoor air temperature %f Celcius'%Ti\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the indoor air temperature 26.111111 Celcius\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-13 ,Page No.76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "Plamp=80.0;#Power of lamp in W\n",
+ "N=30;#no of lamps\n",
+ "t=12;#time period the light is in use in hours/day\n",
+ "y=250;#days in a year light is in function \n",
+ "UC=0.07;#unit cost in $\n",
+ "\n",
+ "#Calculation\n",
+ "LP=Plamp*N/1000;#Lighting power in kW\n",
+ "OpHrs=t*y;#Operating hours\n",
+ "LE=LP*OpHrs;#Lighting energy in kW\n",
+ "LC=LE*UC;#Lighting cost\n",
+ "print'the annual energy cost $%i'%LC\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the annual energy cost $504\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-15 ,Page No.82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "Ein=2.0;#Power of electric burner in kW\n",
+ "n1=0.73;#Efficiency of open burners\n",
+ "n2=0.38;#efficency of gas units\n",
+ "CinH=0.09;#Unit cost of electricity in $\n",
+ "CinB=0.55;#Unit cost of natural gas in $\n",
+ "\n",
+ "#Calculations\n",
+ "QutH= Ein * n1;\n",
+ "print'rate of energy consumption by the heater %f kW'%round(QutH,2);\n",
+ "CutH= CinH / n1;\n",
+ "print'the unit cost of utilized energy for heater $%f/kWh'%round(CutH,3);\n",
+ "QutB= QutH / n2 ;\n",
+ "print'rate of energy consumption by the burner %f kW'%round(QutB,2);\n",
+ "CutB= CinB / n2 / 29.3; # 1 therm = 29.3 kWh\n",
+ "print'the unit cost of utilized energy for burner %f kWh'%round(CutB,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of energy consumption by the heater 1.460000 kW\n",
+ "the unit cost of utilized energy for heater $0.123000/kWh\n",
+ "rate of energy consumption by the burner 3.840000 kW\n",
+ "the unit cost of utilized energy for burner 0.049000 kWh\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-16 ,Page No.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#there is a 0.204% error in the last part of the question due to rounding off the intermidiate steps in the solution\n",
+ "\n",
+ "#Constants used\n",
+ "g=9.81;#acceleration due to gravity in m/s^2;\n",
+ "\n",
+ "#Given values\n",
+ "h=50.0;#Depth of water in m\n",
+ "m=5000.0;#mass flow rate of water in kg/sec\n",
+ "Wout=1862.0;#generated electric power in kW\n",
+ "ngen=0.95;#efficiency of turbine\n",
+ "\n",
+ "#calculation\n",
+ "X=g*h/1000.0;# X stands for the differnce b/w change in mechanical energy per unit mass\n",
+ "R=m*X;#rate at which mech. energy is supplied to turbine in kW\n",
+ "nov=Wout/R;#overall efficiency i.e turbine and generator\n",
+ "print'overall efficiency is %f'%round(nov,2);\n",
+ "ntu=nov/ngen;#efficiency of turbine\n",
+ "print'efficiency of turbine is %f'%round(ntu,2);\n",
+ "Wsh=ntu*R;#shaft output work\n",
+ "print'shaft power output %i kW'%round(Wsh,0)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "overall efficiency is 0.760000\n",
+ "efficiency of turbine is 0.800000\n",
+ "shaft power output 1960 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-17 ,Page No.85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "Pstd=4520.0;\n",
+ "Phem=5160.0;#prices of std and high eff motor in USD\n",
+ "R=60*0.7457;#rated power in kW from hp\n",
+ "OpHrs=3500.0;#Operating hours\n",
+ "Lf=1.0;#Load Factor\n",
+ "nsh=0.89;#efficiency of shaft\n",
+ "nhem=0.932;#efficiency of high eff. motor\n",
+ "CU=0.08;#per unit cost in $\n",
+ "\n",
+ "#calculation\n",
+ "PS=R*Lf*(1/nsh-1/nhem);#Power savings = W electric in,standard - W electric in,efficient\n",
+ "ES=PS*OpHrs;#Energy savings = Power savings * Operating hours\n",
+ "print'Energy savings %i kWh/year'%ES;\n",
+ "CS=ES*CU;\n",
+ "print'Cost savings per year $%i'%CS;\n",
+ "EIC=Phem-Pstd;#excess intial cost\n",
+ "Y=EIC/CS;\n",
+ "print'simple payback period %f years'%round(Y,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy savings 7929 kWh/year\n",
+ "Cost savings per year $634\n",
+ "simple payback period 1.000000 years\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-18 ,Page No.91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "#NOx details\n",
+ "m1=0.0047;#emissions of gas furnaces of NOx in kg/therm\n",
+ "N1=18*10**6;#no. of therms per year \n",
+ "#CO2 details\n",
+ "m2=6.4;#emissions of gas furnaces of CO2 in kg/therm\n",
+ "N2=18*10**6;#no. of therms per year \n",
+ "\n",
+ "#Calculation\n",
+ "NOxSav=m1*N1;\n",
+ "print'NOx savings %f kg/year'%round(NOxSav,1);\n",
+ "CO2Sav=m2*N2;\n",
+ "print'CO2 savings %f kg/year'%round(CO2Sav,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NOx savings 84600.000000 kg/year\n",
+ "CO2 savings 115200000.000000 kg/year\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2-19 ,Page No.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constants used\n",
+ "e=0.95;#Emissivity\n",
+ "tc=5.67*10**-8;#thermal conductivity in W/m^2 K^4\n",
+ "\n",
+ "#Given values\n",
+ "h=6;#convection heat transfer coefficient in W/m^2 C\n",
+ "A=1.6;#cross-sectional area in m^2\n",
+ "Ts=29;#average surface temperature in C\n",
+ "Tf=20;#room temperature in C\n",
+ "\n",
+ "#Calculation\n",
+ "#convection rate\n",
+ "Q1=h*A*(Ts-Tf);\n",
+ "#radiation rate\n",
+ "Q2=e*tc*A*((Ts+273)**4-(Tf+273)**4);\n",
+ "Qt=Q1+Q2;\n",
+ "print'the total rate of heat transfer %f W'%round(Qt,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the total rate of heat transfer 168.100000 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter3.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter3.ipynb
new file mode 100755
index 00000000..9830dbfb
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter3.ipynb
@@ -0,0 +1,756 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3: Properties of Pure Substances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-1 ,Page No.128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "m=50;#mass in kg\n",
+ "T=90;#temperature in C\n",
+ "\n",
+ "#Values from Table A-4\n",
+ "P=70.183;#in kPa\n",
+ "v=0.001036;#in m^3/kg\n",
+ "\n",
+ "#Calculation\n",
+ "V=m*v;#equating dimensions\n",
+ "print'pressure is %f kPa'%round(P,3);\n",
+ "print'total volumne of tank becomes %f m^3'%round(V,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pressure is 70.183000 kPa\n",
+ "total volumne of tank becomes 0.051800 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-2 ,Page No.128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "V=2.0;#volumne of saturated water vapor in ft^3\n",
+ "P=50.0;#pressure in psia\n",
+ "\n",
+ "#Values from Table A-5E\n",
+ "T=280.99;#in F\n",
+ "v=8.5175;#in ft^3/lbm\n",
+ "\n",
+ "#caluclation\n",
+ "m=V/v;#dimension analysis\n",
+ "print'Temperature inside cylinder %f F'%round(T,2);\n",
+ "print'mass of vapour inside cylinder %f lbm'%round(m,3);\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature inside cylinder 280.990000 F\n",
+ "mass of vapour inside cylinder 0.235000 lbm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-3 ,Page No.128"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constants used\n",
+ "Hfg=2257.5;#enthalpy of vaporization in kJ/kg\n",
+ "\n",
+ "#Given values\n",
+ "m=200.0/1000;#mass converting in kg\n",
+ "P=100;#Pressure at which process takes place in kPa\n",
+ "\n",
+ "#Values from Table A-5\n",
+ "vg=1.6941;#specific vol of sat liq\n",
+ "vf=0.001043;#specific vol of vapor\n",
+ "\n",
+ "#Caluclation\n",
+ "vfg=vg-vf;\n",
+ "V=m*vfg;\n",
+ "print'the volume change %f m^3'%round(V,4);\n",
+ "E=m*Hfg;\n",
+ "print'amount of energy transferred to the water %f kJ'%round(E,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the volume change 0.338600 m^3\n",
+ "amount of energy transferred to the water 451.500000 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-4 ,Page No.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "mt=10#mass of water in kg\n",
+ "mf=8;#mass of water in liquid form in kg\n",
+ "T=90;#temperature in C\n",
+ "\n",
+ "#Values from Table A-4\n",
+ "P=70.183;#in kPa\n",
+ "vf=0.001036;#in m^3\n",
+ "vg=2.3593;#in m^3\n",
+ "\n",
+ "#Caluclation\n",
+ "mg=mt-mf;\n",
+ "V=mf*vf+mg*vg;# V= Vg + Vf\n",
+ "print'the volume of the tank %f m^3'%round(V,2);\n",
+ "print'the pressure in the tank %f kPa'%round(P,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the volume of the tank 4.730000 m^3\n",
+ "the pressure in the tank 70.183000 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-5 ,Page No.131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "m=4;#mass of refrigerant-134a in kg\n",
+ "V=80.0/1000;#volumne converting into m^3\n",
+ "P=160;#pressure in kPa\n",
+ "\n",
+ "#Values from Table A-12\n",
+ "vf=0.0007437;\n",
+ "vg=0.12348;\n",
+ "T=-15.60;\n",
+ "hf=31.21;\n",
+ "hfg=209.90;\n",
+ "\n",
+ "#Caluclations\n",
+ "v=V/m;\n",
+ "#vg>v>vf therefore it is a saturated mix\n",
+ "#hence temp will same as saturation temp\n",
+ "print'the temperature %f celcius'%round(T,2)\n",
+ "x=(v-vf)/(vg-vf);#x=vg/vfg i.e the dryness fraction\n",
+ "print'the quality is %f'%round(x,3);\n",
+ "h=hf+x*hfg;\n",
+ "print'the enthalpy of the refrigerant %f kJ/kg'%round(h,1);\n",
+ "mg=x*m;\n",
+ "Vg=mg*vg;\n",
+ "print'the volume occupied by the vapor phase %f m^3'%round(Vg,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the temperature -15.600000 celcius\n",
+ "the quality is 0.157000\n",
+ "the enthalpy of the refrigerant 64.100000 kJ/kg\n",
+ "the volume occupied by the vapor phase 0.077500 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-7 ,Page No.133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "P=0.5;#pressure in MPa\n",
+ "h=2890.0;#enthaply in kJ/kg\n",
+ "\n",
+ "#from Table A\u20136\n",
+ "#at P=0.5 MPa\n",
+ "T1=200.0;\n",
+ "h1=2855.8;\n",
+ "T2=250;\n",
+ "h2=2961.0;\n",
+ "# we need linear interpolation \n",
+ "\n",
+ "#calculatiom\n",
+ "#by interpolation we can say that\n",
+ "#h=h1+(T-T1)/(T2-T1)*(h2-h1)\n",
+ "#we have to find T\n",
+ "T=(h-h1)/(h2-h1)*(T2-T1)+T1;\n",
+ "print'temperature of water %f celcius'%round(T,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature of water 216.300000 celcius\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-8 ,Page No.134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "T=80;#temperature of compressed liquid water in C\n",
+ "P=5;#pressure in KPa\n",
+ "\n",
+ "#from Table A\u20137\n",
+ "#at compressed liq given conditions\n",
+ "u=333.82;\n",
+ "\n",
+ "#from Table A-4\n",
+ "#at saturation\n",
+ "usat=334.97;\n",
+ "\n",
+ "#calcualtion\n",
+ "e=(usat-u)/u*100;\n",
+ "print'internal energy of compressed liquid water using data from the compressed liquid table %f kJ/kg '%round(u,2);\n",
+ "print'internal energy of compressed liquid water using saturated liquid data %f kJ/kg '%round(usat,2);\n",
+ "print'the error involved %f the second case'%round(e,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "internal energy of compressed liquid water using data from the compressed liquid table 333.820000 kJ/kg \n",
+ "internal energy of compressed liquid water using saturated liquid data 334.970000 kJ/kg \n",
+ "the error involved 0.340000 the second case\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-9 ,Page No.135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#part a\n",
+ "print('Part a');\n",
+ "\n",
+ "#given values\n",
+ "P=200;#in KPa\n",
+ "x=0.6;\n",
+ "\n",
+ "#from Table A-5\n",
+ "T=120.21;\n",
+ "uf=504.50;\n",
+ "ufg=2024.6;\n",
+ "\n",
+ "#calcualtions\n",
+ "u=uf+(x*ufg);\n",
+ "print'temperature %f Celcius '%round(T,2);\n",
+ "print'internal energy %f kJ/kg'%round(u,2);\n",
+ "print('saturated liquid\u2013vapor mixture at a pressure of 200 kPa');\n",
+ "\n",
+ "#part b\n",
+ "print('Part b');\n",
+ "\n",
+ "#given values\n",
+ "T=125;#in C\n",
+ "u=1600;#in kJ/kg\n",
+ "\n",
+ "#from Table A\u20134\n",
+ "uf=524.83;\n",
+ "ug=2534.3;\n",
+ "#ug>u>ufg so its aturated liquid\u2013vapor mixture\n",
+ "P=232.23;\n",
+ "\n",
+ "#calculation\n",
+ "ufg=ug-uf;\n",
+ "x=(u-uf)/ufg;\n",
+ "print'Pressure %f kPa'%round(P,2);\n",
+ "print'x is %f'%round(x,3);\n",
+ "print('saturated liquid\u2013vapor mixture at a temp of 125 of celcius');\n",
+ "\n",
+ "#part c\n",
+ "print('Part c');\n",
+ "\n",
+ "#given values\n",
+ "P=1000;#in kPa\n",
+ "u=2950;#in kJ/kg\n",
+ "\n",
+ "#from Table A\u20136\n",
+ "uf=761.39;\n",
+ "ug=2582.8;\n",
+ "#u>ug so its superheated steam\n",
+ "T=395.2;\n",
+ "\n",
+ "#calculation\n",
+ "print'temperature %f Celcius'%round(T,1);\n",
+ "print('superheated vapor at 1MPa');\n",
+ "\n",
+ "#part d\n",
+ "print('Part d');\n",
+ "\n",
+ "#given values\n",
+ "T=75;#in C\n",
+ "P=100;#in kPa\n",
+ "\n",
+ "#from Table A\u20135\n",
+ "Tsat=151.83;\n",
+ "#T<Tsat so it is a compressed liquid\n",
+ "#the given pressure is much lower than the lowest pressure value in the compressed liquid table i.e 5 MPa\n",
+ "#assuming, the compressed liquid as saturated liquid at the given temperature\n",
+ "\n",
+ "#from Table A-4\n",
+ "u=313.99;\n",
+ "print'Internal energy %f kJ/kg'%round(u,2);\n",
+ "print('the compressed liquid condition');\n",
+ "\n",
+ "#Part e\n",
+ "print('Part e');\n",
+ "\n",
+ "#given values\n",
+ "P=850;#in kPa\n",
+ "x=0;\n",
+ "\n",
+ "#x=0 therefore it is a saturateed liquid condition\n",
+ "#from Table A-5\n",
+ "T=172.94;\n",
+ "u=731.00;\n",
+ "print'temperature %f Celcius'%round(T,2);\n",
+ "print'Internal energy %f kJ/kg'%round(u,2);\n",
+ "print('saturateed liquid condition')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Part a\n",
+ "temperature 120.210000 Celcius \n",
+ "internal energy 1719.260000 kJ/kg\n",
+ "saturated liquid\u2013vapor mixture at a pressure of 200 kPa\n",
+ "Part b\n",
+ "Pressure 232.230000 kPa\n",
+ "x is 0.535000\n",
+ "saturated liquid\u2013vapor mixture at a temp of 125 of celcius\n",
+ "Part c\n",
+ "temperature 395.200000 Celcius\n",
+ "superheated vapor at 1MPa\n",
+ "Part d\n",
+ "Internal energy 313.990000 kJ/kg\n",
+ "the compressed liquid condition\n",
+ "Part e\n",
+ "temperature 172.940000 Celcius\n",
+ "Internal energy 731.000000 kJ/kg\n",
+ "saturateed liquid condition\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-10 ,Page No.139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#constants used\n",
+ "R=0.287# in kPa m^3/kg K\n",
+ "\n",
+ "#given values\n",
+ "l=4;#dimensions of room in m\n",
+ "b=5;#dimensions of room in m\n",
+ "h=6;#dimensions of room in m\n",
+ "P=100.0;#pressure in kPa\n",
+ "T=25+273.0;#temperature in Kelvin\n",
+ "\n",
+ "#calculation\n",
+ "V=l*b*h;\n",
+ "m=P*V/R/T;\n",
+ "print'the mass of the air %f kg'%round(m,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the mass of the air 140.300000 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-11 ,Page No.142"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "P=1;#pressure in MPa\n",
+ "T=50+273;#tempearture converting into Kelvin\n",
+ "vgiv=0.021796;#specific vol. given in m^3\n",
+ "\n",
+ "#from Table A-1\n",
+ "R=0.0815;\n",
+ "Pcr=4.059;\n",
+ "Tcr=374.2;\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part A\n",
+ "v1=R*T/(P*1000);\n",
+ "print'specific volume of refrigerant-134a under the ideal-gas assumption %fm^3/kg'%round(v1,6);\n",
+ "e=(v1-vgiv)/vgiv;\n",
+ "print'an error of %f'%round(e,3);\n",
+ "\n",
+ "#Part B\n",
+ "#determine Z from the compressibility chart, we will calculate the reduced pressure and temperature\n",
+ "Pr=P/Pcr;\n",
+ "Tr=T/Tcr;\n",
+ "#from chart\n",
+ "Z=0.84;\n",
+ "v=Z*v1;\n",
+ "print'specific volume of refrigerant-134a under the generalized compressibility chart %f m^3/kg'%round(v,6);\n",
+ "e=(v-vgiv)/vgiv;\n",
+ "print'an error of %f'%round(e,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "specific volume of refrigerant-134a under the ideal-gas assumption 0.026325m^3/kg\n",
+ "an error of 0.208000\n",
+ "specific volume of refrigerant-134a under the generalized compressibility chart 0.022113 m^3/kg\n",
+ "an error of 0.015000\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-12 ,Page No.143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "v=0.51431;\n",
+ "T=600;\n",
+ "\n",
+ "#from Table A-1E\n",
+ "R=0.5956;\n",
+ "Pcr=3200;\n",
+ "Tcr=1164.8;\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#Part A\n",
+ "#from Table A-6E\n",
+ "Pa=1000.0;#in psia\n",
+ "print'from the steam tables %i psia'%Pa;\n",
+ "\n",
+ "#Part B\n",
+ "T=1060;#converted into R from F\n",
+ "Pb=R*T/v;\n",
+ "print'from the ideal-gas equation %i psia'%round(Pb,0);\n",
+ "e=(Pb-Pa)/Pa;\n",
+ "print'treating the steam as an ideal gas would result in an error of %f'%round(e,3)\n",
+ "\n",
+ "#Part C\n",
+ "#calculating the pseudo-reduced specific volume and the reduced temperature\n",
+ "Vr=v/(R*Tcr/Pcr);\n",
+ "Tr=T/Tcr;\n",
+ "#from the compressibility chart\n",
+ "Pr=0.33;\n",
+ "P=Pr*Pcr;\n",
+ "print'from the generalized compressibility chart %i psia'%P\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "from the steam tables 1000 psia\n",
+ "from the ideal-gas equation 1228 psia\n",
+ "treating the steam as an ideal gas would result in an error of 0.228000\n",
+ "from the generalized compressibility chart 1056 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-13 ,Page No.147"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Answer of part c-d are having slight difference due to approximation in molar volumne in the textbook which here is caluculated to the approximation of 7 decimal digits\n",
+ "\n",
+ "from math import exp\n",
+ "\n",
+ "#given values\n",
+ "T=175.0;#temperature in C\n",
+ "v=0.00375;#sp. volumne in m^3/kg\n",
+ "Pex=10000;#experimentaion determination\n",
+ "\n",
+ "#from Table A-1\n",
+ "R=0.2968# in kPa m^3/kg K\n",
+ "\n",
+ "#calculating\n",
+ "\n",
+ "#Part-a\n",
+ "P=R*T/v;\n",
+ "print'using the ideal-gas equation of state %i kPa'%(round(P))\n",
+ "e=(P-Pex)/Pex*100;\n",
+ "print'error is %f percent'%e;\n",
+ "\n",
+ "#Part-b\n",
+ "#van der Waals constants from Eq. 3-23\n",
+ "a=0.175;\n",
+ "b=0.00138;\n",
+ "#from van der waal eq.\n",
+ "P=R*T/(v-b)-a/v**2;\n",
+ "print'using the van der Waals equation of state is %i kPa'%(round(P));\n",
+ "e=(P-Pex)/Pex*100;\n",
+ "print'error is %f percent'%e;\n",
+ "\n",
+ "#Part-c\n",
+ "#constants in the Beattie-Bridgeman equation from Table 3\u20134\n",
+ "A=102.29;\n",
+ "B=0.05378;\n",
+ "c=4.2*10**4;\n",
+ "Ru=8.314;#in kPa m^3/kmol K\n",
+ "M=28.013;#molecular weight in kg/mol\n",
+ "vb=M*v;#molar vol.\n",
+ "P=(Ru*T)/(vb**2)*(1-((c)/(vb*T**3)))*(vb+B)-(A/vb**2);\n",
+ "print'using the Beattie-Bridgeman equationis %i kPa'%(round(P));\n",
+ "e=(P-Pex)/Pex*100;\n",
+ "print'error is %f percent'%e;\n",
+ "\n",
+ "#Part-d\n",
+ "#constants of Benedict-Webb-Rubin equation from Table 3\u20134\n",
+ "a=2.54;\n",
+ "b=0.002328;\n",
+ "c=7.379*10**4;\n",
+ "alp=1.272*10**-4;\n",
+ "Ao=106.73;\n",
+ "Bo=0.040704;\n",
+ "Co=8.164*10**5;\n",
+ "gam=0.0053;\n",
+ "P=((Ru*T)/vb)+((Bo*Ru*T)-Ao-Co/T**2)/vb**2+(b*Ru*T-a)/vb**3+(a*alp/vb**6)+(c/((vb**3)*(T**2)))*(1 + (gam/vb**2))*exp(-gam/vb**2);\n",
+ "print'using Benedict-Webb-Rubin equation %i kPa'%(round(P));\n",
+ "e=(P-Pex)/Pex*100;\n",
+ "print'error is %f percent'%e;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using the ideal-gas equation of state 13851 kPa\n",
+ "error is 38.506667 percent\n",
+ "using the van der Waals equation of state is 9471 kPa\n",
+ "error is -5.288326 percent\n",
+ "using the Beattie-Bridgeman equationis 10109 kPa\n",
+ "error is 1.092970 percent\n",
+ "using Benedict-Webb-Rubin equation 10004 kPa\n",
+ "error is 0.039256 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3-14 ,Page No.152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given value\n",
+ "T=25;#air temperature over a lake in C\n",
+ "\n",
+ "#from table 3-1\n",
+ "Psat=3.17;#in kPa\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Relative Humidity 10%\n",
+ "Pv1=0.1*Psat\n",
+ "#Relative Humidity 80%\n",
+ "Pv2=0.8*Psat\n",
+ "#Relative Humidity 100%\n",
+ "Pv3=1*Psat\n",
+ "\n",
+ "# from table 3-1 Tsat at these Pressures are\n",
+ "T1=-8.0;\n",
+ "T2=21.2;\n",
+ "T3=25.0;\n",
+ "print'with relative humidity 10, temperature is %i in C'%T1\n",
+ "print'with relative humidity 80, temperature is %i in C'%T2\n",
+ "print'with relative humidity 100, temperature is %i in C'%T3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "with relative humidity 10, temperature is -8 in C\n",
+ "with relative humidity 80, temperature is 21 in C\n",
+ "with relative humidity 100, temperature is 25 in C\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter4.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter4.ipynb
new file mode 100755
index 00000000..b9e964f0
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter4.ipynb
@@ -0,0 +1,720 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4: Energy Analysis of Closed Systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-2 ,Page No.169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given values\n",
+ "m=10;#mass in lbm\n",
+ "Po=60;#steam oressure in psia\n",
+ "T1=320;#intial temp in F\n",
+ "T2=400;#final temp in F\n",
+ "\n",
+ "#from Table A\u20136E\n",
+ "v1=7.4863;#at 60 psia and 320 F\n",
+ "v2=8.3548;#at 60 psia and 400 F\n",
+ "\n",
+ "#calculations\n",
+ "#W = P dV which on integrating gives W = m * P * (V2 - V1)\n",
+ "W=m*Po*(v2-v1)/5.404;#coverting into Btu from psia-ft^3\n",
+ "print'work done by the steam during this process %f Btu'%round(W,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work done by the steam during this process 96.400000 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-3 ,Page No.170"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#given data\n",
+ "P1=100;#pressure in kPa\n",
+ "V1=0.4;#intial vol in m^3\n",
+ "V2=0.1;#final vol in m^3\n",
+ "\n",
+ "#calculations\n",
+ "#for isothermal W = P1*V1* ln(V2/V1)\n",
+ "W=P1*V1*log(V2/V1);\n",
+ "print'the work done during this process %f kJ'%round(W,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the work done during this process -55.500000 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-4 ,Page No.171"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V1=0.05;#Volumne of gas in m^3\n",
+ "P1=200;#Pressure in kPa\n",
+ "k=150;#Spring constant in kN/m\n",
+ "A=0.25;#Cross-sectional area in m^2\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Part - a\n",
+ "V2=2*V1;\n",
+ "x2=(V2-V1)/A;#printlacement of spring\n",
+ "F=k*x2;#compression force\n",
+ "P2=P1+F/A;#additional pressure is equivalent the compression of spring\n",
+ "print'the final pressure inside the cylinder %i kPa'%P2;\n",
+ "\n",
+ "#Part - b\n",
+ "#work done is equivalent to the area of the P-V curve of Fig 4-10\n",
+ "W=(P1+P2)/2*(V2-V1);#area of trapezoid = 1/2 * sum of parallel sides * dist. b/w them\n",
+ "print'the total work done by the gas %i kJ'%W;\n",
+ "\n",
+ "#Part - c\n",
+ "x1=0;#intial compression of spring\n",
+ "Wsp=0.5*k*(x2**2-x1**2);\n",
+ "print'the fraction of this work done against the spring to compress it %i kJ'%Wsp\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final pressure inside the cylinder 320 kPa\n",
+ "the total work done by the gas 13 kJ\n",
+ "the fraction of this work done against the spring to compress it 3 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-5 ,Page No.174"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "m=0.025;#mass of saturated water vapor in kg\n",
+ "V=120;#rated voltage of heater in V\n",
+ "I=0.2;#rated current in A\n",
+ "t=300;#total time taken in sec\n",
+ "P1=300;#constant pressure in kPa\n",
+ "Qout=3.7;#heat lost in kJ\n",
+ "\n",
+ "#from Table A\u20135\n",
+ "#at P1 the conditon is sat. vap\n",
+ "h1=2724.9;\n",
+ "\n",
+ "#Calculations\n",
+ "\n",
+ "#Part - a\n",
+ "#therotical proving\n",
+ "\n",
+ "#Part - b\n",
+ "We=V*I*t/1000;#electrical work in kJ\n",
+ "#from eqn 4 -18 i.e derived in earler part\n",
+ "#it states it Ein - Eout = Esystem\n",
+ "# it applies as Win - Qout = H = m (h2 - h1)\n",
+ "h2=(We-Qout)/m+h1;\n",
+ "##from Table A\u20135\n",
+ "#at h2 we get\n",
+ "P2=300;\n",
+ "T=200;\n",
+ "print'the final temperature of the steam %i C'%T\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final temperature of the steam 200 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-6 ,Page No.176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=5.0;#mass of water in kg\n",
+ "P1=200;#pressure on one side in kPa\n",
+ "T=25;#temperature in C\n",
+ "\n",
+ "#from Table A\u20134\n",
+ "#the liq. is in compressed state at 200 kPa and 25 C\n",
+ "vf=0.001;\n",
+ "vg=43.340;\n",
+ "uf=104.83;\n",
+ "ufg=2304.3;\n",
+ "v1=vf;\n",
+ "u1=uf;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#Part - a\n",
+ "V1=m*v1;\n",
+ "Vtank=2*V1;\n",
+ "print'the volume of the tank %f m^3'%round(Vtank,2);\n",
+ "\n",
+ "#Part - b\n",
+ "V2=Vtank;\n",
+ "v2=V2/m;\n",
+ "#from Table A\u20134 \n",
+ "# at T=25 vf=0.101003 m^3/kg and vg=43.340 m^3/kg\n",
+ "# vf<v2<vg therefore it is saturated liquid\u2013vapor mixture\n",
+ "P2=3.1698;\n",
+ "print'the final pressure %f kPa'%round(P2,4);\n",
+ "\n",
+ "#Part - c\n",
+ "#Ein - Eout = Esystem\n",
+ "#Qin= dU = m(u2 - u1)\n",
+ "x2=(v2-vf)/(vg-vf);\n",
+ "u2=uf+x2*ufg;\n",
+ "Qin=m*(u2-u1);\n",
+ "print'the heat transfer for this process %f kJ'%Qin\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the volume of the tank 0.010000 m^3\n",
+ "the final pressure 3.169800 kPa\n",
+ "the heat transfer for this process 0.265846 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-7 ,Page No.183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from scipy.integrate import quad \n",
+ "from pylab import *\n",
+ "\n",
+ "#given data\n",
+ "T1=300;#intial temp of air in K\n",
+ "P=200;#pressure in kPa\n",
+ "T2=600;#final temp in K\n",
+ "M=28.97;#molecular weight in kg/kmol\n",
+ "Ru=8.314;\n",
+ "\n",
+ "#Part - a\n",
+ "#from Table A\u201317\n",
+ "u1=214.07;\n",
+ "u2=434.78;\n",
+ "du=u2-u1;#change in internal energy\n",
+ "print'change in internal energy from data from the air table %f kJ/kg'%round(du,2);\n",
+ "\n",
+ "#Part - b\n",
+ "#from Table A\u20132c\n",
+ "a=28.11;\n",
+ "b=0.1967*10**-2;\n",
+ "c=0.4802*10**-5;\n",
+ "d=-1.966*10**-9;\n",
+ "# by equation Cp(T)=a+bT+cT^2+dT^3\n",
+ "def intgrnd1(T): \n",
+ " return ((a-Ru)+b*T+c*T**2+d*T**3)\n",
+ "dU, err = quad(intgrnd1, T1, T2) \n",
+ "du=dU/M;\n",
+ "print'change in internal energy the functional form of the specific heat %f kJ/kg'%round(du,1); \n",
+ "\n",
+ "#Part - c\n",
+ "#from Table A\u20132b\n",
+ "Cavg=0.733;\n",
+ "du=Cavg*(T2-T1);\n",
+ "print'change in internal energy the functional form the average specific heat value %i kJ/kg'%round(du,0);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in internal energy from data from the air table 220.710000 kJ/kg\n",
+ "change in internal energy the functional form of the specific heat 222.500000 kJ/kg\n",
+ "change in internal energy the functional form the average specific heat value 220 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-8 ,Page No.184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=1.5;#mass in lbm\n",
+ "T1=80;#temperature in F\n",
+ "P1=50;#pressure in psia\n",
+ "W=0.02;#power rating in hp\n",
+ "t=30.0/60;#converting into hrs from min\n",
+ "\n",
+ "#from Table A\u20132Ea\n",
+ "Cv=0.753;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part a\n",
+ "Wsh=W*t*2545;#in Btu\n",
+ "#Ein - Eout = Esystem\n",
+ "#Wsh = dU = m (u2 - u1) = m * Cv * (T2 - T1)\n",
+ "T2= Wsh/(m*Cv)+T1;\n",
+ "print'the final temperature %f F'%round(T2,1);\n",
+ "\n",
+ "#part b\n",
+ "#using ideal gas eqn\n",
+ "# P1 * V1 / T1 = P2 * T2 /V2\n",
+ "P2= 50 * (T2 +460)/ (T1+460);\n",
+ "# temp should in R therefore + 460\n",
+ "print'the final pressure %f psia'%round(P2,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final temperature 102.500000 F\n",
+ "the final pressure 52.100000 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-9 ,Page No.185"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V1=0.5;#volumne of nitrogen gas in m^3\n",
+ "P=400;#pressure in kPa\n",
+ "T1=27;#temp in C\n",
+ "I=2;#rated current in A\n",
+ "t=5*60;#converting into s from min\n",
+ "V=120;#rated voltage in V\n",
+ "Qout=2800/1000;#in kJ\n",
+ "R=0.297;\n",
+ "\n",
+ "#from Table A\u20132a\n",
+ "Cp=1.039;\n",
+ " \n",
+ "#calculations\n",
+ "P1=P;\n",
+ "We=V*I*t/1000;#in kJ\n",
+ "m=P1*V1/(R*(T1+273));\n",
+ "#Ein - Eout = Esystem\n",
+ "# We,in - Qout = dH = m (h2 - h1) = m * Cp * (T2 - T1)\n",
+ "T2=(We-Qout)/(m*Cp)+T1;\n",
+ "print'the final temperature of nitrogen in %i C'%T2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final temperature of nitrogen in 57 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-10 ,Page No.187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=150;#initially air pressure in kPa\n",
+ "P2=350;#final pressure in kPa\n",
+ "T1=27+273;#temperatuere in K\n",
+ "V1=400.0/1000;#volumne in m^3\n",
+ "R=0.287;\n",
+ "\n",
+ "#from Table A\u201317\n",
+ "u1=214.07;\n",
+ "u2=1113.52;\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part a\n",
+ "V2=2*V1;\n",
+ "#using ideal gas eqn\n",
+ "# P1 * V1 / T1 = P2 * T2 /V2\n",
+ "T2=P2*V2*T1/(P1*V1);\n",
+ "print'the final temperature %i K'%T2;\n",
+ "\n",
+ "#part b\n",
+ "# Work done is Pdv\n",
+ "W=P2*(V2-V1);\n",
+ "print'the work done by the air %i kJ'%W;\n",
+ "\n",
+ "#part c\n",
+ "#Ein - Eout = Esystem\n",
+ "#Qin - Wout = dU = m(u2 - u1)\n",
+ "m= P1* V1 /(T1 * R);\n",
+ "Q= m*(u2 - u1)+ W;\n",
+ "print'the total heat transferred to the air %i kJ'%round(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final temperature 1400 K\n",
+ "the work done by the air 140 kJ\n",
+ "the total heat transferred to the air 767 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-11 ,Page No.190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=100;#twmperature of liquid water in C\n",
+ "P=15;#pressure in MPa\n",
+ "\n",
+ "#from Table A\u20137\n",
+ "#at P=15 mPa and T = 100 C\n",
+ "hg=430.39;\n",
+ "hf=419.17\n",
+ "vf=0.001;\n",
+ "Psat=101.42;#in kPa\n",
+ "\n",
+ "#calculations\n",
+ "\n",
+ "#part a\n",
+ "h=hg;\n",
+ "print'enthalpy of liquid water by using compressed liquid tables %f kJ/kg'%round(h,2);\n",
+ "\n",
+ "#part b\n",
+ "#Approximating the compressed liquid as a saturated liquid at 100\u00b0C\n",
+ "h=hf;\n",
+ "print'enthalpy of liquid water by approximating it as a saturated liquid %f kJ/kg'%round(h,2);\n",
+ "\n",
+ "#part c\n",
+ "h=hf + vf*(P*1000 - Psat );\n",
+ "print'enthalpy of liquid water by using the correction given by Eq. 4\u201338 %f kJ/kg'%round(h,2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enthalpy of liquid water by using compressed liquid tables 430.390000 kJ/kg\n",
+ "enthalpy of liquid water by approximating it as a saturated liquid 419.170000 kJ/kg\n",
+ "enthalpy of liquid water by using the correction given by Eq. 4\u201338 434.070000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-12 ,Page No.191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#suffix i for iron\n",
+ "#suffix w for water\n",
+ "#given data\n",
+ "mi=50;#mass in Kg\n",
+ "T1i=80;#temperature in C \n",
+ "Vw=0.5;#volumne in m^3\n",
+ "T1w=25;#temperature in C \n",
+ "v=0.001;#specific volume of liquid water at or about room temperature\n",
+ "\n",
+ "#from Table A\u20133\n",
+ "ci=0.45;\n",
+ "cw=4.18;\n",
+ "\n",
+ "#calculations\n",
+ "mw=Vw/v;\n",
+ "#Ein - Eout = Esystem\n",
+ "# du = 0 i.e (mcdT)iron + (mcdT)water = 0\n",
+ "# mi * ci * (T - T1i) + mw *cw * (T-T1w)\n",
+ "#on rearranging above equn\n",
+ "T= (mi*ci*T1i + mw*cw*T1w)/(mi*ci+mw*cw);\n",
+ "print'the temperature when thermal equilibrium is reached %f C'%round(T,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the temperature when thermal equilibrium is reached 25.600000 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-13 ,Page No.191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "maf=0.15;#mass of affected tissue in kg\n",
+ "caf=3.8;#specific heat of the tissue in kJ/Kg C\n",
+ "dTaf=1.8;#suffix af for affected tissue\n",
+ "mh=1.2;#suffix h for hand ; mass of hand in kg\n",
+ "\n",
+ "#calculations\n",
+ "#Ein - Eout = Esystem\n",
+ "#dUaffected tissue - KEhand = 0\n",
+ "#from above equation we can deduce that\n",
+ "Vhand= sqrt(2*maf*caf*dTaf*1000/mh);#for conversion factor mutiplying by 1000 to get m^2/s^2\n",
+ "print'the velocity of the hand just before impact %f m/s'%round(Vhand,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the velocity of the hand just before impact 41.400000 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-14 ,Page No.199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=90;#mass of man in kg\n",
+ "\n",
+ "#from Tables 4\u20131 and 4\u20132\n",
+ "Ehb=275;#hamburger\n",
+ "Ef=250;#fries\n",
+ "Ec=87;#cola\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "#part a\n",
+ "Ein=2*Ehb+Ef+Ec;\n",
+ "#The rate of energy output for a 68-kg man watching TV is to be 72 Calories/h\n",
+ "Eout=m*72.0/68;\n",
+ "t=Ein/Eout;\n",
+ "print'by watching TV %f hours'%round(t,1);\n",
+ "\n",
+ "#part b\n",
+ "#The rate of energy output for a 68-kg man watching TV is to be 860 Calories/h\n",
+ "Eout=m*860.0/68;\n",
+ "t=Ein/Eout*60#converting in min\n",
+ "t=ceil(t);\n",
+ "print'by fast swimming %f mins'%t;\n",
+ "\n",
+ "#for last question\n",
+ "print('answers be for a 45-kg man energy takes twice as long in each case');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "by watching TV 9.300000 hours\n",
+ "by fast swimming 47.000000 mins\n",
+ "answers be for a 45-kg man energy takes twice as long in each case\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4-15 ,Page No.199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "E=75;#in Cal/day\n",
+ "\n",
+ "#calculation\n",
+ "Ereduced=E*365.0;\n",
+ "#The metabolizable energy content of 1 kg of body fat is 33,100 kJ\n",
+ "Ec=33100.0;\n",
+ "mfat=Ereduced/Ec*4.1868;\n",
+ "print'weight this person will lose in one year %f kg'%round(mfat,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "weight this person will lose in one year 3.460000 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter5.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter5.ipynb
new file mode 100755
index 00000000..da9be875
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter5.ipynb
@@ -0,0 +1,614 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5: Mass and Energy Analysis of Control Volumes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-1 ,Page No.224"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#given data\n",
+ "V=10.0;#volumne of bucket in galon\n",
+ "t=50;#time taken to fill the bucket in sec\n",
+ "p=1;#density of water in kg/L\n",
+ "re=0.8/2/100;#radius of nozzle exit in m\n",
+ "\n",
+ "#calculations\n",
+ "Vd=V/t*3.7854;#factor 0f 3.7854 for gal to L\n",
+ "print'volumne flow rate through hose %f L/s'%round(Vd,3);\n",
+ "m=p*Vd;\n",
+ "print'mass flow rate through hose %f kg/s'%round(m,3);\n",
+ "Ae=math.pi*re**2;\n",
+ "Ve=Vd/Ae/1000;#factor of 1000 for L to m^3\n",
+ "print'average velocity at the nozzle %f m/s'%round(Ve,1);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "volumne flow rate through hose 0.757000 L/s\n",
+ "mass flow rate through hose 0.757000 kg/s\n",
+ "average velocity at the nozzle 15.100000 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-2 ,Page No.225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from scipy.integrate import quad \n",
+ "from pylab import *\n",
+ "\n",
+ "#given data\n",
+ "Dtank=3*12;#diameter of tank in inches\n",
+ "Djet=0.5;#diameter of water jet in inches\n",
+ "h0=2;#bottom reference in ft\n",
+ "h1=4;#height of water tank in ft\n",
+ "\n",
+ "#constants used \n",
+ "g=32.2;#in ft/s^2\n",
+ "\n",
+ "#calculations\n",
+ "#min - mout = dmCV/dt\n",
+ "#mout = p*(2*g*h*Ajet)^2\n",
+ "#mCV = p*Atank*h\n",
+ "#from these we get dt = Dtank^2/Djet^2 * (dh/(2*g*h)^2)\n",
+ "def intgrnd1(h): \n",
+ " return (Dtank**2/Djet**2*(1/sqrt(2*g*h)))\n",
+ "t, err = quad(intgrnd1, h0, h1) \n",
+ "t=(t/60);#in min\n",
+ "print'time taken to drop to 2 ft %f min'%round(t,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time taken to drop to 2 ft 12.600000 min\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-3 ,Page No.229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P=150;#operating pressure in kPa\n",
+ "Vliquid=0.6/1000.0;#amount of liquid in the cooker in m^3\n",
+ "t=40.0*60;#period of operation in sec\n",
+ "Ac=8*10**-6;#exit area of opening in m^2\n",
+ "\n",
+ "#from Table A-5\n",
+ "#from P = 150 kPa\n",
+ "h=2693.1;\n",
+ "ug=2519.2;\n",
+ "vf=0.001053;\n",
+ "vg=1.1594;\n",
+ "\n",
+ "#calculations\n",
+ "m=Vliquid/vf;\n",
+ "md=m/t;\n",
+ "print'mass flow rate %f kg/s'%md;\n",
+ "V=md*vg/(Ac);\n",
+ "print'exit velocity %f m/s'%round(V,1);\n",
+ "Eflow=h-ug;\n",
+ "Et=h;\n",
+ "print'flow energy %f kJ/kg'%round(Eflow,1);\n",
+ "print'total energy %f kJ/kg'%round(Et,1);\n",
+ "Emass=md*Et;\n",
+ "print'rate at which energy leaves the cooker %f kW'%round(Emass,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate 0.000237 kg/s\n",
+ "exit velocity 34.400000 m/s\n",
+ "flow energy 173.900000 kJ/kg\n",
+ "total energy 2693.100000 kJ/kg\n",
+ "rate at which energy leaves the cooker 0.639000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-4 ,Page No.234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=283;#temperature of air in K\n",
+ "P1=80;#entering pressure in kPa\n",
+ "V1=200;#velocity ar inlet in m/s\n",
+ "A1=0.4;#inlet area in m^2\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kPa-m^3/kg-K\n",
+ "\n",
+ "#calulations\n",
+ "v1=R*T1/P1;\n",
+ "m=V1*A1/v1;\n",
+ "print'mass flow rate of air %f kg/s'%round(m,1);\n",
+ "# Ein - Eout = dEsystem / dt\n",
+ "#from Table A-17\n",
+ "h1=283.14;\n",
+ "V2=0;\n",
+ "h2=h1-(V2^2 - V1^2)/2/1000;#factor of 1000 to convert to kJ/kg\n",
+ "#from Table A-17 at this value of h2\n",
+ "T2=303;\n",
+ "print'the temperature %i K is'%T2;\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate of air 78.800000 kg/s\n",
+ "the temperature 303 K is\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-5 ,Page No.235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=250;#inlet pressure in psia\n",
+ "T1=700;#inlet temp in F\n",
+ "A1=0.2;#inlet area in ft^2\n",
+ "qout=1.2;#heat losses in Btu/lbm\n",
+ "m=10;#mass flow rate in lbm/sec\n",
+ "P2=200;#nozzle pressure in kPa\n",
+ "V2=900;#nozzle velocity in m/s\n",
+ "\n",
+ "#from Table A-6E\n",
+ "v1=2.6883;\n",
+ "h1=1371.4;\n",
+ "\n",
+ "#calculations\n",
+ "V1=m*v1/A1;\n",
+ "print'the inlet velocit %f f/s'%round(V1,1);\n",
+ "# Ein - Eout = dEsystem / dt\n",
+ "h2=h1-qout-(V2**2 - V1**2)/2/25037;#factor of 25037 to convert to Btu/lbm\n",
+ "#at this value h2, from Tablw A-6E\n",
+ "T2=662;\n",
+ "print'exit temperature %i F'%T2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the inlet velocit 134.400000 f/s\n",
+ "exit temperature 662 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-6 ,Page No.236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=280;#intial pressure in kPa\n",
+ "P1=100;#intial temp in K\n",
+ "m=0.02;#mass flow rate in kg/s\n",
+ "qout=16;#heat losses in kJ/kg\n",
+ "P2=600;#final pressure in kPa\n",
+ "T2=400;#final temp in K\n",
+ "\n",
+ "#from Table A-17\n",
+ "h1=280.13;\n",
+ "h2=400.98;\n",
+ "\n",
+ "#calculations\n",
+ "# Ein - Eout = dEsystem / dt\n",
+ "Win=m*qout+m*(h2-h1);\n",
+ "print'the input power of compressor %f kW'%round(Win,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the input power of compressor 2.740000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-7 ,Page No.237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=2;#inlet pressure in MPa\n",
+ "T1=400;#inlet temp in K\n",
+ "V1=50.0;#inlet velocity in m/s\n",
+ "z1=10;#inlet height in m\n",
+ "P2=15;#final pressure in MPa\n",
+ "x2=0.9;#final dryness fraction\n",
+ "V2=180.0;#final velocity in m/s\n",
+ "z2=6;#final height in m\n",
+ "Wout=5*1000;#power output in kW\n",
+ "\n",
+ "#from Table A-6\n",
+ "h1=3248.4;\n",
+ "#similarly for P2\n",
+ "hf=225.94;\n",
+ "hfg=2372.3;\n",
+ "\n",
+ "#constants used \n",
+ "g=9.8;#in m/s^2\n",
+ "\n",
+ "#calcualtions\n",
+ "h2=hf+x2*hfg;\n",
+ "print'difference in enthalpies %f kJ/kg'%round((h2-h1),2);\n",
+ "print'difference in kinetic energy %f kJ/kg'%round((V2**2-V1**2)/2/1000,2);#factor of 1000 to convert to kJ/kg\n",
+ "print'difference in potential energy %f kJ/kg'%round(g*(z2-z1)/1000,2);#factor of 1000 to convert to kJ/kg\n",
+ "wout=-((h2-h1)+(V2**2-V1**2)/2/1000+g*(z2-z1)/1000);#factor of 1000 to convert to kJ/kg\n",
+ "print'work done per unit of mass %f kJ/kg'%round(wout,2);\n",
+ "m=Wout/wout;\n",
+ "print'mass flow rate %f kg/s'%round(m,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "difference in enthalpies -887.390000 kJ/kg\n",
+ "difference in kinetic energy 14.950000 kJ/kg\n",
+ "difference in potential energy -0.040000 kJ/kg\n",
+ "work done per unit of mass 872.480000 kJ/kg\n",
+ "mass flow rate 5.730000 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-8 ,Page No.239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=0.8;#entering pressure in MPa\n",
+ "P2=0.12;#throttled pressure in MPa\n",
+ "\n",
+ "#from Table A-12\n",
+ "#sat. liq at P1\n",
+ "T1=31.31;\n",
+ "h1=95.47;\n",
+ "#since process is insentropic and at P2\n",
+ "h2=h1;\n",
+ "hf=22.49;\n",
+ "hg=236.97;\n",
+ "T2=-22.32;\n",
+ "\n",
+ "#calculations\n",
+ "x2=(h2-hf)/(hg-hf);\n",
+ "print'the final state is %f'%round(x2,3);\n",
+ "dT=T2-T1;\n",
+ "print'temperature drop %f C'%round(dT,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final state is 0.340000\n",
+ "temperature drop -53.630000 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-9 ,Page No.241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=140;#inlet temp of hot water in F\n",
+ "T2=50;#inlet temp of cold water in F\n",
+ "T3=110;#steady state output temp in F\n",
+ "P=20;#operating pressure in psia\n",
+ "\n",
+ "#for a compressed liq at given temp\n",
+ "h1=107.99;\n",
+ "h2=18.07;\n",
+ "h3=78.02;\n",
+ "\n",
+ "#calculations\n",
+ "#Mass balance min = mout So, m1+m2 = m3\n",
+ "#Energy balance Ein = Eout So, m1*h1 + m2*h2 = m3*h3\n",
+ "#combining realations\n",
+ "#m1*h1 + m2*h2 = (m1+m2)*h3\n",
+ "#dividing by m2 and y=m1/m2\n",
+ "#we get, yh1 + h2 = (y+1)*h3\n",
+ "y=(h3-h2)/(h1-h3);\n",
+ "print'the ratio of mass flow rates %f'%round(y,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the ratio of mass flow rates 2.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-10 ,Page No.242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=15;#water inlet temp in C\n",
+ "P1=300;#water inlet pressure in kPa\n",
+ "T2=25;#water outlet temp in C\n",
+ "T3=70;#R-134a inlet temp in C\n",
+ "P3=1000;#R-134a inlet pressure in kPa\n",
+ "T4=35;#R-134a outlet temp in C\n",
+ "mr=6;#mass flow rate in kg/min\n",
+ "\n",
+ "#from Table A-4, A-13 and A-11\n",
+ "h1=62.982;\n",
+ "h2=104.83;\n",
+ "h3=303.85;\n",
+ "h4=100.87;\n",
+ "\n",
+ "#calculations\n",
+ "#mass balance m1=m2=mw and m3=m4=mr\n",
+ "#energy balance m1*h1 + m3*h3 = m2*h2 + m4*h4\n",
+ "#combining them mw*(h1-h2) = mr*(h4-h3)\n",
+ "mw= mr*(h4-h3)/(h1-h2);\n",
+ "print'mass flow rate of cooling water %f kg/min'%round(mw,1);\n",
+ "Qin=mw*(h2-h1);\n",
+ "print'heat transfer rate %i kJ/min'%round(Qin)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mass flow rate of cooling water 29.100000 kg/min\n",
+ "heat transfer rate 1218 kJ/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-11 ,Page No.245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=17+273;#inlet temp in K\n",
+ "P1=100;#inlet pressure in kPa\n",
+ "V1=150;#inlet volumetric rate in m^3/min\n",
+ "Win=15;#rated power in kW\n",
+ "Qout=200/1000;#heat lost in kJ/s\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kPa-m^3/kg-K\n",
+ "cp=1.005;#in kJ/kg C\n",
+ "\n",
+ "#calculations\n",
+ "v1=R*T1/P1;\n",
+ "m=V1/v1/60;#factor of 6 to convert to s\n",
+ "# Win - Qout = m*cp*(T2-T1)\n",
+ "T2= T1 + (Win - Qout)/(m*cp);\n",
+ "print'exit temperature %f C'%round((T2-273),2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exit temperature 21.970000 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5-13 ,Page No.250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V=6.0/1000;#volumne of cooker in m^3\n",
+ "Pgage=75;#operating pressure in kPa\n",
+ "Patm=100;#atmospheric pressure in kPa\n",
+ "m1=1;#mass of water in kg\n",
+ "Qind=0.5;#heat supplying rate in kJ/sec ; d stands for .\n",
+ "t=30*60;#operating time in s\n",
+ "\n",
+ "#calculation\n",
+ "Pabs=Pgage+Patm;\n",
+ "#from Table A-5, ths saturation temp \n",
+ "T=116.04;\n",
+ "print'the temperature at which cooking takes place %f C'%T;\n",
+ "#mass balance me=(m1-m2)cv\n",
+ "#energy balance Qin - mehe = (m2u2 - m1u1)cv\n",
+ "Qin=Qind*t;\n",
+ "#from Table A-5\n",
+ "he=2700.2;\n",
+ "vf=0.001;\n",
+ "vg=1.004;\n",
+ "uf=486.82;\n",
+ "ufg=2037.7;\n",
+ "v1=V/m1;\n",
+ "x1=(v1-vf)/(vg-vf);\n",
+ "u1=uf+x1*ufg;\n",
+ "U=m1*u1;\n",
+ "#Qin = (m1 - V/v2)*he + (V/v2*u2 - m1*u1)\n",
+ "#v2=vf + x2*(vg-vf)\n",
+ "#u2=uf + x2*ufg\n",
+ "#combining these equations we get\n",
+ "#solved using EES\n",
+ "x2=0.009;\n",
+ "v2=vf + x2*(vg-vf);\n",
+ "m2=V/v2;\n",
+ "print'amount of water left %f kg'%round(m2,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the temperature at which cooking takes place 116.040000 C\n",
+ "amount of water left 0.600000 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter6.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter6.ipynb
new file mode 100755
index 00000000..0cebc0e1
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter6.ipynb
@@ -0,0 +1,315 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: The Second Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-1 ,Page No.286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "QH=80.0;#rate of heat transfer in MW\n",
+ "QL=50.0;#rate of waste heat rejection in MW\n",
+ "\n",
+ "#calculations\n",
+ "Wnet=QH-QL;\n",
+ "print'net power output %i MW'%Wnet\n",
+ "nth=Wnet/QH;\n",
+ "print'the thermal efficiency is %f '%round(nth,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "net power output 30 MW\n",
+ "the thermal efficiency is 0.375000 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-2 ,Page No.286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Wnet=65;#power output in hp\n",
+ "nth=0.24;#effficiency of car\n",
+ "HV=19000;#heating value in Btu/lbm\n",
+ "\n",
+ "#calculations\n",
+ "QH=Wnet/nth*2545;#factor of 2545 to convert to Btu/h\n",
+ "m=QH/HV;\n",
+ "print'the engine must burn at fuel rate %f lbm/h'%round(m,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the engine must burn at fuel rate 36.300000 lbm/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-3 ,Page No.291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Wnet=2.0;#power input in kW\n",
+ "QL=360.0;#rate of heat rejection in kJ/min\n",
+ "\n",
+ "#calculations\n",
+ "COPR=QL/Wnet/60;#factor of 60 to convert kW to kJ/min\n",
+ "print'coefficient of performance of refrigerator is %i'%COPR;\n",
+ "QH=QL+Wnet*60;#factor of 60 to convert kW to kJ/min\n",
+ "print'heat rejection rate %i kJ/min'%QH\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "coefficient of performance of refrigerator is 3\n",
+ "heat rejection rate 480 kJ/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-4 ,Page No.291"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "COP=2.5;#COP in the given conditions of heat pump\n",
+ "QH=80000.0;#heat loss rate in kJ/hr\n",
+ "\n",
+ "#calculations\n",
+ "Wnet=QH/COP;\n",
+ "print'the power consumed %i kJ/h'%Wnet\n",
+ "QL=QH-Wnet;\n",
+ "print'the rate at which heat is absorbed %i kJ/h'%QL\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the power consumed 32000 kJ/h\n",
+ "the rate at which heat is absorbed 48000 kJ/h\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-5 ,Page No.306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "QH=500.0;#heat recieved per cycle in kJ\n",
+ "TL=30+273.0;#low temperature source in C\n",
+ "TH=652+273.0;#high temperature source in C\n",
+ "\n",
+ "#calculations\n",
+ "nth=1-TL/TH;\n",
+ "print'the thermal efficiency of carnot engine is %f'%round(nth,3);\n",
+ "QL=TL*QH/TH;\n",
+ "print'the amount of heat rejected to the sink per cycle %i kJ'%round(QL)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the thermal efficiency of carnot engine is 0.672000\n",
+ "the amount of heat rejected to the sink per cycle 164 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-6 ,Page No.310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "COP=13.5;#COP of refrigerator\n",
+ "TH=75+460.0;#room temperature in R\n",
+ "TL=35+460.0;#refrigerated temp in R\n",
+ "\n",
+ "#calculations\n",
+ "COPR=1/(TH/TL-1);\n",
+ "if COPR>=COP:\n",
+ " print('claim is true');\n",
+ "else:\n",
+ " print('claim is false')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "claim is false\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-7 ,Page No.310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "TL=-5+273.0;#in C\n",
+ "TH=21+273.0;#house temp in C\n",
+ "QH=135000.0/3600;#heat loss rate in kW\n",
+ "\n",
+ "#calculations\n",
+ "COPHP=1/(1-TL/TH);\n",
+ "Wnet=QH/COPHP;\n",
+ "print'minimum power required %f kW'%round(Wnet,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "minimum power required 3.320000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6-8 ,Page No.314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Qrefrig=40.0;#heat load on referigerator in W\n",
+ "COPR=1.3;#COP of referigerator\n",
+ "Wlight=40.0;#rated power of bulb in W\n",
+ "\n",
+ "#calculation\n",
+ "Wrefrig=Qrefrig/COPR;\n",
+ "Wt=Wrefrig+Wlight;\n",
+ "AnHr=365*24;#annual hours\n",
+ "NOH=20*30/3600.0*365;#normal operating hours\n",
+ "AOP=AnHr-NOH;#addtional operating hours\n",
+ "APC=Wt*AOP/1000;#additional power consumption; fator of 1000 to convert to kW\n",
+ "print'increase in power consumption %i kWh/yr'%round(APC);\n",
+ "print'increase in cost S%f/yr'%round((APC)*0.08,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "increase in power consumption 616 kWh/yr\n",
+ "increase in cost S49.300000/yr\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter7.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter7.ipynb
new file mode 100755
index 00000000..d5ab12d2
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter7.ipynb
@@ -0,0 +1,1049 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7: Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-1 ,Page No.335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Q=750;#heat transfered in kJ\n",
+ "Tsys=300.0;#temperature of liquid-water mixture in K\n",
+ "\n",
+ "#calculations\n",
+ "dSsys=Q/Tsys;\n",
+ "print'Entropy change in the process %f kJ/K'%round(dSsys,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy change in the process 2.500000 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-2 ,Page No.338"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Qsink=2000.0;#heat lost in kJ\n",
+ "Qsource=-Qsink;\n",
+ "Tsource=800.0;#temp of heat loss in K\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "Tsink=500.0;\n",
+ "dSsource=Qsource/Tsource;\n",
+ "dSsink=Qsink/Tsink;\n",
+ "Sgena=dSsource+dSsink;\n",
+ "print'entropy generated in part a %f kJ/K'%round(Sgena,1);\n",
+ "#part - b\n",
+ "Tsink=750;\n",
+ "dSsource=Qsource/Tsource;\n",
+ "dSsink=Qsink/Tsink;\n",
+ "Sgenb=dSsource+dSsink;\n",
+ "print'entropy generated in part b %f kJ/K'%round(Sgenb,1);\n",
+ "if Sgena>Sgenb :\n",
+ " print('part a is more irreversible');\n",
+ "elif(Sgena == Sgenb) :\n",
+ " print('heat transfer is equally irreversible');\n",
+ "else:\n",
+ " print('part b is more irreversible');\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy generated in part a 1.500000 kJ/K\n",
+ "entropy generated in part b 0.200000 kJ/K\n",
+ "part a is more irreversible\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-3 ,Page No.341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=5.0;#mass of refrigerant 134-a in kg\n",
+ "P1=140.0;#intial pressure in kPa\n",
+ "T1=20.0;#temperature in C\n",
+ "P2=100.0;#final pressure in kPa\n",
+ "\n",
+ "#from refrigerant-134a data\n",
+ "#at P1 and T1\n",
+ "s1=1.0624;\n",
+ "v1=0.16544;\n",
+ "#at P2\n",
+ "v2=v1;\n",
+ "vf=0.0007529;\n",
+ "vg=0.19254;\n",
+ "sf=0.07188;\n",
+ "sfg=0.87995;\n",
+ "\n",
+ "#calculations\n",
+ "# vf < v2 <vg\n",
+ "x2=(v2-vf)/(vg-vf);\n",
+ "s2=sf+x2*sfg;\n",
+ "dS=m*(s2-s1);\n",
+ "print'entropy change in the process %f kJ/k'%round(dS,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy change in the process -1.175000 kJ/k\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-4 ,Page No.342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=3;#mass of water in lbm\n",
+ "P1=20;#pressure in psia\n",
+ "T1=70+460;#temperature in R\n",
+ "Qin=3450;#heat added in Btu\n",
+ "\n",
+ "#from Table A-6E\n",
+ "#at P1 and T1\n",
+ "s1=0.07459;\n",
+ "h1=38.08;\n",
+ "\n",
+ "#calculations\n",
+ "#Ein - Eout = dEsystem\n",
+ "#Qin = m*(h2 - h1)\n",
+ "h2=Qin/m+h1;\n",
+ "#from Table A-6E\n",
+ "#At P2 and h2\n",
+ "s2=1.7761;\n",
+ "dS=m*(s2-s1);\n",
+ "print'entropy change %f Btu/R'%round(dS,3);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy change 5.105000 Btu/R\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-5 ,Page No.343"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=5.0;#entry pressure in MPa\n",
+ "T1=450.0;#entry temperature in C\n",
+ "P2=1.4;#pressure at exit MPa\n",
+ "\n",
+ "#calculations\n",
+ "#Ein - Eout = dEsystem/dt\n",
+ "#Ein = Eout\n",
+ "#Wout = m*(h1-h2)\n",
+ "#At P1 and T1\n",
+ "h1=3317.2;\n",
+ "s1=6.8210;\n",
+ "s2=s1;\n",
+ "#At P2 and s2\n",
+ "h2=2967.4;\n",
+ "Wout=h1-h2;\n",
+ "print'work output per unit mass %f kJ/kg'%round(Wout,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work output per unit mass 349.800000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-7 ,Page No.352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "#given values\n",
+ "P1=1;#pressure at state 1 in kPa\n",
+ "T1=110.0;#temperature at state 1 in K\n",
+ "P2=5;#pressure at state 2 in kPa\n",
+ "T2=120.0;#temperature at state 2 in K\n",
+ "\n",
+ "#from Table \n",
+ "#At P1 and T1\n",
+ "s1=4.875;\n",
+ "cp1=3.471;\n",
+ "#at P2 and T2\n",
+ "s2=5.145;\n",
+ "cp2=3.486;\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "dSa=s2-s1;\n",
+ "print'change in entropy %f kJ/kg K using tabulated properties'%round(dSa,3);\n",
+ "#part - b\n",
+ "cavg=(cp1+cp2)/2.0;\n",
+ "dSb=cavg*log(T2/T1);\n",
+ "print'change in entropy %f kJ/kg K approximating liquid methane as an incompressible substance'%round(dSb,3);\n",
+ "E=(dSb-dSa)/dSa;\n",
+ "print'Error is %f'%round(E,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "change in entropy 0.270000 kJ/kg K using tabulated properties\n",
+ "change in entropy 0.303000 kJ/kg K approximating liquid methane as an incompressible substance\n",
+ "Error is 0.121000\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-8 ,Page No.353"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Annual power savings has a 0.005% error due to approximation in textbook\n",
+ "\n",
+ "#given data\n",
+ "P1=5;#pressure at state 1 in MPa\n",
+ "V1=0.280;#volimetric flow rate in m^3/s\n",
+ "T1=115;#temperature at state 1 in K\n",
+ "P2=1;#pressure at state 2 in MPa\n",
+ "dt=8760;#time in h/yr\n",
+ "UC=0.075;#unit cost in $\n",
+ "\n",
+ "#from Table\n",
+ "#at P1 and T1\n",
+ "h1=232.3;\n",
+ "s1=4.9945;\n",
+ "p1=422.15;\n",
+ "s2=s1;\n",
+ "#at P2 and s2\n",
+ "h2=222.8;\n",
+ "\n",
+ "#calculations\n",
+ "m=p1*V1;\n",
+ "#Ein - Eout = dEsystem/dt\n",
+ "#Ein = Eout\n",
+ "#Wout = m*(h1-h2)\n",
+ "Wout = m*(h1-h2);\n",
+ "print'maximum amount of power that can be produced %i kW'%round(Wout)\n",
+ "APP=Wout*dt;#annual power production\n",
+ "APS=APP*UC;#annual power savings\n",
+ "print'Annual power savings $%i/yr'%round(APS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum amount of power that can be produced 1123 kW\n",
+ "Annual power savings $737758/yr\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-9 ,Page No.357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given data\n",
+ "P1=100.0;#inlet pressure in kPa\n",
+ "T1=290.0;#inlet temperature in K\n",
+ "P2=600.0;#outlet temperature in kPa\n",
+ "T2=330.0;#outlet temperature in K\n",
+ "\n",
+ "#from Table A-17\n",
+ "s02=1.79783;\n",
+ "s01=1.66802;\n",
+ "#Table A-2b\n",
+ "cpavg=1.006;\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kJ/kg -K\n",
+ "\n",
+ "#calculations\n",
+ "#part-a\n",
+ "s21=s02-s01-R*log(P2/P1);#stands for s2 - s1\n",
+ "print'entropy change using property values from air table %f kJ/kg-K'%round(s21,4);\n",
+ "s21=cpavg*log(T2/T1)-R*log(P2/P1);#stands for s2 - s1\n",
+ "print'entropy change using average specific heat %f kJ/kg-K'%round(s21,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy change using property values from air table -0.384400 kJ/kg-K\n",
+ "entropy change using average specific heat -0.384200 kJ/kg-K\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-10 ,Page No.360"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=95;#intial pressure in kPa\n",
+ "T1=295;#intial temperature in K\n",
+ "r=8;#ratio of V1/V2\n",
+ "\n",
+ "#calculations\n",
+ "#for closed systems V2/V1 = v2/v1\n",
+ "#At T1\n",
+ "vr1=647.9;\n",
+ "vr2=vr1/r;\n",
+ "#at vr2\n",
+ "T2=662.7;\n",
+ "print'the final temperature %f K'%T2"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final temperature 662.700000 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-11 ,Page No.361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=14.0;#intial pressure in psia\n",
+ "T1=50+460.0;#intial temperature in R\n",
+ "T2=320+460.0;#final temperature in R\n",
+ "\n",
+ "#constants used\n",
+ "k=1.667;\n",
+ "\n",
+ "#calculations\n",
+ "P2=P1*(T2/T1)**(k/(k-1));\n",
+ "print'exit pressure %f psia'%round(P2,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exit pressure 40.500000 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-12 ,Page No.364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P2=1000;#final pressure in MPa\n",
+ "P1=100;#intial pressure in MPa\n",
+ "\n",
+ "#from Table A-5\n",
+ "#At P2\n",
+ "v1=0.001043;\n",
+ "\n",
+ "#calculations\n",
+ "Wrev=v1*(P2-P1);\n",
+ "print'compressor work as saturated liquid at inlet %f kJ/kg'%round(Wrev,2)\n",
+ "#from Table A-5\n",
+ "#at P1 as sat. vapour\n",
+ "h1=2675.0;\n",
+ "s1=7.3589;\n",
+ "s2=s1\n",
+ "#from Table A-6\n",
+ "#at P2 and s2\n",
+ "h2=3194.5;\n",
+ "Wrev=h2-h1;\n",
+ "print'compressor work as saturated vapor at inlet %f kJ/kg'%round(Wrev,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "compressor work as saturated liquid at inlet 0.940000 kJ/kg\n",
+ "compressor work as saturated vapor at inlet 519.500000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-13 ,Page No.368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "#given data\n",
+ "P1=100;#intial pressure in kPa\n",
+ "T1=300;#intial temperature in K\n",
+ "P2=900;#final pressure in kPa\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kJ/kg -K\n",
+ "\n",
+ "#calculations\n",
+ "#part - a\n",
+ "k=1.4;\n",
+ "Wcomp=k*R*T1/(k-1)*((P2/P1)**((k-1)/k)-1);\n",
+ "print'compression work in case of isentropic compression %f kJ/kg'%round(Wcomp,1);\n",
+ "#part - b\n",
+ "n=1.3;\n",
+ "Wcomp=n*R*T1/(n-1)*((P2/P1)**((n-1)/n)-1);\n",
+ "print'compression work in case of polytropic compression %f kJ/kg'%round(Wcomp,1);\n",
+ "#part - c\n",
+ "Wcomp=R*T1*log(P2/P1);\n",
+ "print'compression work in case of isothermal compression %f kJ/kg'%round(Wcomp,1);\n",
+ "#part - d\n",
+ "Ps=sqrt(P1*P2);\n",
+ "Wcomp=2*n*R*T1/(n-1)*((Ps/P1)**((n-1)/n)-1);\n",
+ "print'compression work in case of two-stage compression with intercooling %f kJ/kg'%round(Wcomp,1);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "compression work in case of isentropic compression 263.200000 kJ/kg\n",
+ "compression work in case of polytropic compression 246.400000 kJ/kg\n",
+ "compression work in case of isothermal compression 189.200000 kJ/kg\n",
+ "compression work in case of two-stage compression with intercooling 215.300000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-14 ,Page No.371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=3000;#intial pressure in kPa\n",
+ "T1=400;#intial temperature in C\n",
+ "P2=50;#final pressure in kPa\n",
+ "T2=100;#final temperature in C\n",
+ "Wout=2000;#power output in kW\n",
+ "\n",
+ "#from Table A-6\n",
+ "#at P1\n",
+ "h1=3231.7;\n",
+ "s1=6.9235;\n",
+ "#at 2a\n",
+ "h2a=2682.4;\n",
+ "#from Table A-6\n",
+ "#at 2s\n",
+ "s2s=s1;\n",
+ "sf=1.0912;\n",
+ "sg=7.5937;\n",
+ "hf=340.54;\n",
+ "hfg=2304.7\n",
+ "x2s=(s2s-sf)/(sg-sf);\n",
+ "h2s=hf+x2s*hfg;\n",
+ "nT=(h1-h2a)/(h1-h2s);\n",
+ "print'isentropic efficiency is %f'%round(nT,3)\n",
+ "#Ein = Eout\n",
+ "m=Wout/(h1-h2a);\n",
+ "print'mass flow rate %f kg/s'%round(m,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "isentropic efficiency is 0.667000\n",
+ "mass flow rate 3.640000 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-15 ,Page No.374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=100;#intial pressure in kPa\n",
+ "T1=285;#intial temperature in K\n",
+ "P2=800;#final pressure in kPa\n",
+ "m=0.2;#mass flow rate in kg/s\n",
+ "nc=0.8;#isentropic efficiency\n",
+ "\n",
+ "#from Table A-17\n",
+ "#at T1\n",
+ "h1=285.14;\n",
+ "Pr1=1.1584;\n",
+ "\n",
+ "#calcualtions\n",
+ "Pr2=Pr1*(P2/P1);\n",
+ "#at Pr2\n",
+ "h2s=517.05;\n",
+ "h2a=(h2s-h1)/nc+h1;\n",
+ "#at h2a\n",
+ "T2a=569.5;\n",
+ "print'exit temperature of air %f K'%T2a;\n",
+ "#Ein = Eout\n",
+ "Wa=m*(h2a-h1);\n",
+ "print'required power input %i kW'%round(Wa)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exit temperature of air 569.500000 K\n",
+ "required power input 58 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-16 ,Page No.375"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "P1=200.0;#intial pressure in kPa\n",
+ "T1=950.0;#intial temperature in K\n",
+ "P2=80.0;#final pressure in kPa\n",
+ "nN=0.92;#isentropic efficiency\n",
+ "\n",
+ "#from Table A-2b\n",
+ "cp=1.099;\n",
+ "k=1.354;\n",
+ "\n",
+ "#calculations\n",
+ "T2s=T1*(P2/P1)**((k-1)/k);\n",
+ "#ein = eout\n",
+ "V2s=sqrt(2*cp*(T1-T2s)*1000);#factor of 1000 for conversion to m^2/s^2\n",
+ "print'maximum possible exit velocity %i m/s'%(V2s);\n",
+ "T2a=T1-nN*(T1-T2s);\n",
+ "print'exit temperature %i K'%round(T2a);\n",
+ "V2a=sqrt(nN*V2s**2);\n",
+ "print'actual exit velocity %i m/s'%(V2a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum possible exit velocity 666 m/s\n",
+ "exit temperature 764 K\n",
+ "actual exit velocity 639 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ " Example 7-17 ,Page No.382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Qin=1035.0;#rate of heat transfer in W\n",
+ "Tin=20+273.0;#inner temperature in K\n",
+ "Qout=Qin;\n",
+ "Tout=5+273.0;#outer temperature in K\n",
+ "\n",
+ "#calculations\n",
+ "# Sin - Sout + Sgen = dSsystem/dt\n",
+ "Sgen=(Qout/Tout)-(Qin/Tin);\n",
+ "print'entropy generation in the wall %f W/K'%round(Sgen,3);\n",
+ "Ts1=300.0;Ts2=273.0;#Boundary temperatures\n",
+ "Sgen=(Qout/Ts2)-(Qin/Ts1);\n",
+ "print'total entropy generation %f W/K'%round(Sgen,3);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy generation in the wall 0.191000 W/K\n",
+ "total entropy generation 0.341000 W/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-18 ,Page No.383"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=7;#intial pressure in MPa\n",
+ "T1=450;#intial temperature in K\n",
+ "P2=3;#final pressure in MPa\n",
+ "\n",
+ "#from steam tables\n",
+ "#at P1 and T1\n",
+ "h1=3288.3;\n",
+ "s1=6.6353;\n",
+ "#at P2\n",
+ "h2=h1;\n",
+ "s2=7.0046;\n",
+ "\n",
+ "#calculations\n",
+ "# Sin - Sout + Sgen = dSsystem/dt\n",
+ "Sgen=s2-s1;\n",
+ "print'the entropy generated %f kJ/kg-K'%round(Sgen,4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the entropy generated 0.369300 kJ/kg-K\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-19 ,Page No.385"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given data\n",
+ "m=50;#mass of iron block in kg\n",
+ "T1=500.0;#temperature of iron block in K\n",
+ "T2=285.0;#temperature of lake in K\n",
+ "\n",
+ "#from Table A-3\n",
+ "Cavg=0.45;\n",
+ "\n",
+ "#calculations\n",
+ "dSiron=m*Cavg*log(T2/T1);\n",
+ "print'entropy change of the iron block %f kJ/K'%round(dSiron,2);\n",
+ "# Ein - Eout = dEsystem\n",
+ "Qout=m*Cavg*(T1-T2);\n",
+ "dSlake=Qout/T2;\n",
+ "print'entropy change of the lake %f kJ/K'%round(dSlake,2);\n",
+ "# Sin - Sout + Sgen = dSsystem/dt\n",
+ "Sgen=(Qout/T2)+dSiron;\n",
+ "print'entropy change in the process %f kJ/K'%round(Sgen,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy change of the iron block -12.650000 kJ/K\n",
+ "entropy change of the lake 16.970000 kJ/K\n",
+ "entropy change in the process 4.330000 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-20 ,Page No.386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P=20;#pressure of water in psia\n",
+ "T1=50+460.0;#temperature of water in R\n",
+ "T2=240.0;#steam temperature in F\n",
+ "T3=130.0;#leaving temperauture in F\n",
+ "m1=300.0;#mass flow rate in lbm/min\n",
+ "Qout=180.0;#heat losses in Btu/min\n",
+ "\n",
+ "#from steam tables\n",
+ "#at P and T1\n",
+ "h1=18.07;\n",
+ "s1=0.03609;\n",
+ "#at P and T2\n",
+ "h2=1162.3;\n",
+ "s2=1.7406;\n",
+ "#at P and T3\n",
+ "h3=97.99;\n",
+ "s3=0.18174;\n",
+ "\n",
+ "#calculations\n",
+ "# Qout = m1*h1 + m2*h2 - (m1+m2)*h3\n",
+ "m2= (Qout-m1*h1+m1*h3)/(h2-h3);\n",
+ "m3=m1+m2;\n",
+ "# Sin - sout + Sgen = dSsystem/dt\n",
+ "Sgen=m3*s3-m1*s1-m2*s2+Qout/T1;\n",
+ "print'the rate of entropy generation %f Btu/min R'%round(Sgen,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of entropy generation 8.670000 Btu/min R\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-21 ,Page No.388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T=100+273.0;#temperature of water in K\n",
+ "Q=-600.0;#heat transferred in kJ\n",
+ "Tb=25+273.0;#temperature of surroundings in K\n",
+ "\n",
+ "#calculation\n",
+ "dSsys=Q/T;\n",
+ "print'entropy change of water %f kJ/K'%round(dSsys,2);\n",
+ "# Sin - sout + Sgen = dSsystem\n",
+ "Sgen= -Q/Tb + dSsys;\n",
+ "print'total entropy generation %f kJ/K'%round(Sgen,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "entropy change of water -1.610000 kJ/K\n",
+ "total entropy generation 0.400000 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-22 ,Page No.394"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi,sqrt\n",
+ "\n",
+ "#given data\n",
+ "T1=20+273.0;#average temperature of inlet in C\n",
+ "T2=24+273.0;#average temperature of compressed air in C\n",
+ "P1=101.0;#pressure of air inlet in kPa\n",
+ "P2=801.0;#pressure of compressed air in kPa\n",
+ "D=3.0/1000.0;#ihole diameter n m\n",
+ "Cdischarge=0.65;#discharge coefficient\n",
+ "ncomp=0.8;#compressor efficiency\n",
+ "nmotor=0.92;#motor efficiency\n",
+ "UC=0.078;#unit cost in $/kWh\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kJ/kg K\n",
+ "k=1.4;\n",
+ "n=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "Win=n*R*T1/(ncomp*(n-1))*((P2/P1)**((n-1)/n)-1);\n",
+ "A=pi*D**2/4;\n",
+ "mair=Cdischarge*(2/(k+1))**(1/(k-1))*P2*A/(R*T2)*sqrt(k*R*1000*2/(k+1)*T2);#factor of 1000 to m^2/s^2\n",
+ "PW=mair*Win;#Power wasted\n",
+ "ES=PW*4200/nmotor;#4200 is operating hours ES stands for Energy savings\n",
+ "print'Energy savings %i kWh/yr'%round(ES);\n",
+ "CS=ES*UC;\n",
+ "print'cost savings %i S/yr'%round(CS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy savings 11698 kWh/yr\n",
+ "cost savings 912 S/yr\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7-23 ,Page No.398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "P1=85.6;#pressure of air inlet in kPa\n",
+ "P2=985.6;#pressure of actual compressed air in kPa\n",
+ "P2r=885.6;#pressure of required compressed air in kPa\n",
+ "CC=12000;#current cost in $/yr\n",
+ "\n",
+ "#constants used\n",
+ "n=1.4;\n",
+ "\n",
+ "#calulation\n",
+ "freduction=1-(((P2r/P1)**((n-1)/n)-1)/((P2/P1)**((n-1)/n)-1));\n",
+ "CS=CC*freduction;\n",
+ "print'cost savings %i Dollar/yr'%(round(CS))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "cost savings 719 Dollar/yr\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter8.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter8.ipynb
new file mode 100755
index 00000000..e91e1b78
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter8.ipynb
@@ -0,0 +1,764 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Exergy: A Measure of Work Potential"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-1 ,Page No.426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import pi\n",
+ "\n",
+ "# given data\n",
+ "D=12.0;#diameter of rotor in m\n",
+ "V=10.0;#average velocity in m/s\n",
+ "\n",
+ "# density of air at 25C & 1atm\n",
+ "p=1.18;\n",
+ "\n",
+ "#calculations\n",
+ "ke=(V**2)/2/1000;#factor of 1000 for converting J into kJ\n",
+ "m=p*pi*(D**2)*V/4.0; \n",
+ "MP=m*(ke);\n",
+ "print'Maximum power %f kW'%round(MP,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum power 66.700000 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-2 ,Page No.427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "TH=2000.0;#temperature of large furnace in R\n",
+ "T0=77+460.0;#temperature of enviroment in R\n",
+ "Qin=3000.0;#heat rate in Btu/sec\n",
+ "\n",
+ "#calculation\n",
+ "nth=1-(T0/TH);\n",
+ "Wmax=nth*Qin;\n",
+ "Wmax=round(Wmax)\n",
+ "print'the rate of energy flow %i Btu/s'%round(Wmax)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of energy flow 2195 Btu/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-3 ,Page No.429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Tsink=300.0;#temperature of sink in K\n",
+ "Tsource=1200.0;#temperature of source in K\n",
+ "Qin=500.0;#heat rate in kJ/s\n",
+ "Wuout=180;#power output in W\n",
+ "\n",
+ "#calculations\n",
+ "Wrev=(1-Tsink/Tsource)*Qin;\n",
+ "print'The reversible power %i kW'%round(Wrev);\n",
+ "I=Wrev-Wuout;\n",
+ "print'the irreversiblity rate %i kW'%round(I)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reversible power 375 kW\n",
+ "the irreversiblity rate 195 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-4 ,Page No.429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from scipy.integrate import quad \n",
+ "from pylab import *\n",
+ "\n",
+ "#given data\n",
+ "m=500.0;#mass of iron block in kg\n",
+ "T1=473.0;#temperature of iron block in K\n",
+ "T0=300.0;#temperature of surrondings in K\n",
+ "\n",
+ "\n",
+ "#from Table A-3\n",
+ "cavg=0.45;\n",
+ "\n",
+ "#calculations\n",
+ "def intgrnd1(T): \n",
+ " return ((1-T0/T)*(-m*cavg))#intergrant\n",
+ "Wrev, err = quad(intgrnd1,T1,T0) ;\n",
+ "Qtotal=m*cavg*(T1-T0);\n",
+ "print'The reversible power %i kJ'%round(Wrev);\n",
+ "Wu=0;\n",
+ "I=Wrev-Wu;\n",
+ "print'the irreversiblity rate %i kJ'%round(I)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reversible power 8191 kJ\n",
+ "the irreversiblity rate 8191 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-5 ,Page No.431"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "Wrev=8191.0;#reversible work from Ex - 8.4\n",
+ "Wtotal=38925.0;#total work is equivalent to total heat lost to heat engine from Ex - 8.4\n",
+ "TL=278.0;#outdoor temperature in K\n",
+ "TH=300.0;#temperature of house in K\n",
+ "\n",
+ "#calculations\n",
+ "Wrm=Wtotal-Wrev;#work remaining\n",
+ "COPHP=1/(1-TL/TH);\n",
+ "Wd=COPHP*Wrev;#work delivered\n",
+ "PS=Wd+Wrm;\n",
+ "PS=round(PS/1000);#factor of 1000 for converting kJ into MJ\n",
+ "print'Maximum amount of heat that can be supplied %i MJ'%PS"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum amount of heat that can be supplied 142 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-6 ,Page No.434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "COP=1.0;# the efficiency that the dealer is referring to is the first law efficiency, meaning that for each unit of electric energy (work) consumed, the heater will supply the house with 1 unit of energy (heat). That is,the advertised heater has a COP of 1\n",
+ "TL=283.0;#outdoor temperature in K\n",
+ "TH=294.0;#indoor temperature in K\n",
+ "\n",
+ "#calculations\n",
+ "COPHP=1/(1-TL/TH);\n",
+ "nII=COP/COPHP;\n",
+ "print'the second law efficiency %f'%round(nII,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the second law efficiency 0.037000\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-7 ,Page No.438"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#given data\n",
+ "P1=1000.0;#pressure of compressed air in KPa\n",
+ "V=200.0;#volumne of rigid tank in m^3\n",
+ "T1=300.0;#temperature of enviroment in K\n",
+ "T0=T1;#state of air in tank\n",
+ "P0=100.0;#pressure of enviroment in KPa\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kPa m^3/kg K\n",
+ "\n",
+ "#calculations\n",
+ "m1=P1*V/(R*T1);\n",
+ "O1=R*T0*(P0/P1-1)+R*T0*log(P1/P0);# O refers to exergy\n",
+ "X1=m1*O1/1000;#factor of 1000 for converting kJ into MJ\n",
+ "print'work obtained %i MJ'%round(X1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "work obtained 281 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-8 ,Page No.439"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T0=20+273;#temperature of enviroment in K\n",
+ "P1=0.14;#intail pressure in MPa\n",
+ "T1=-10;#intail temperature in K\n",
+ "P2=0.8;#final pressure in MPa\n",
+ "T2=50;#final temperature in K\n",
+ "\n",
+ "#the properties of refrigerant\n",
+ "#at inlet\n",
+ "h1=246.36;\n",
+ "s1=0.9724;\n",
+ "#at outlet\n",
+ "h2=286.69;\n",
+ "s2=0.9802;\n",
+ "dO=h2-h1-T0*(s2-s1);# O refers to exergy\n",
+ "print'the exergy change of the refrigerant %i kJ/kg'%round(dO)\n",
+ "wmin=dO;\n",
+ "print'the minimum work input that needs to be supplied is %i kJ/kg'%wmin"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the exergy change of the refrigerant 38 kJ/kg\n",
+ "the minimum work input that needs to be supplied is 38 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-10 ,Page No.447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given values\n",
+ "Q=1035.0;#rate of heat transfer in W\n",
+ "T0=273.0;#outdoor temperature in C\n",
+ "Tin=293.0;#inner wall surface temperature in K\n",
+ "Tout=278.0;#outer wall surface temperature in K\n",
+ "T1=300.0;#indoor temperature in C\n",
+ "\n",
+ "#calculations\n",
+ "#Xin - Xout - Xdestroyed = dX/dt\n",
+ "Xdestroyed=Q*(1-T0/Tin)-Q*(1-T0/Tout);\n",
+ "Xdestroyed=round(Xdestroyed);\n",
+ "print'the rate of exergy destroyed %i W'%round(Xdestroyed);\n",
+ "#the total rate of exergy destroyed\n",
+ "Xdestroyed=Q*(1-T0/T1)-Q*(1-T0/T0);\n",
+ "print'the total of exergy destroyed %f W'%round(Xdestroyed,1);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of exergy destroyed 52 W\n",
+ "the total of exergy destroyed 93.100000 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-11 ,Page No.448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "m=0.05;#mass of steam in kg\n",
+ "P1=1000;#intial pressure in MPa\n",
+ "T1=300+273;#intial temperature in K\n",
+ "P2=200;#final pressure in MPa\n",
+ "T2=150+273;#final temperature in K\n",
+ "P0=100;#pressure of surroundings in KPa\n",
+ "T0=25+273;#temperature of surroundings in K\n",
+ "Qout=2;#heat losses in kJ\n",
+ "\n",
+ "#from Table A-6 & A-4\n",
+ "u1=2793.7;\n",
+ "v1=0.25799;\n",
+ "s1=7.1246;\n",
+ "u2=2577.1;\n",
+ "v2=0.95986;\n",
+ "s2=7.2810;\n",
+ "u0=104.83;\n",
+ "v0=0.00103;\n",
+ "s0=0.3672;\n",
+ "\n",
+ "#calculations\n",
+ "X1=m*(u1-u0-T0*(s1-s0)+P0*(v1-v0));\n",
+ "X2=m*(u2-u0-T0*(s2-s0)+P0*(v2-v0));\n",
+ "print'exergy of intial state %i kJ'%round(X1);\n",
+ "print'exergy of final state %f kJ'%round(X2,1);\n",
+ "dX=X2-X1;\n",
+ "print'exergy change in system %f kJ'%round(dX,1);\n",
+ "Wout=-Qout-m*(u2-u1);\n",
+ "Wu=Wout-P0*m*(v2-v1);\n",
+ "Xdestroyed=X1-X2-Wu;\n",
+ "print'the exergy destroyed %f kJ'%round(Xdestroyed,1);\n",
+ "nII=Wu/(X1-X2);\n",
+ "print'second law efficiency of this process is %f'%round(nII,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exergy of intial state 35 kJ\n",
+ "exergy of final state 25.400000 kJ\n",
+ "exergy change in system -9.700000 kJ\n",
+ "the exergy destroyed 4.300000 kJ\n",
+ "second law efficiency of this process is 0.551000\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-12 ,Page No.451"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from scipy.integrate import quad \n",
+ "from pylab import *\n",
+ "\n",
+ "#given data\n",
+ "m=2.0;#mass of air in lbm\n",
+ "T0=70+460.0;#intial temperature in R\n",
+ "P1=20.0;#intial pressure in psia\n",
+ "T1=70+460.0;#temperature of surroundings in R\n",
+ "T2=130+460.0;#final temperature in R\n",
+ "\n",
+ "#constants used\n",
+ "Cv=0.172;#in Btu/lbm - F\n",
+ "\n",
+ "#calculations\n",
+ "Xdestroyed=T0*m*Cv*log(T2/T1);\n",
+ "print'exergy destroyed %f Btu'%round(Xdestroyed,1);\n",
+ "def intgrnd1(T): \n",
+ " return ((1-T0/T)*m*Cv)#intergrant\n",
+ "Wrev, err = quad(intgrnd1,T1,T2) ;\n",
+ "print'the reversible work %f Btu'%round(Wrev,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exergy destroyed 19.600000 Btu\n",
+ "the reversible work 1.100000 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-13 ,Page No.453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T0=20+273.0;#temperature of surrounding in K\n",
+ "P0=100.0;#pressure of surrounding in kPa\n",
+ "Tiw=30+273.0;#temperature of water in K\n",
+ "mw=100.0;#mass of water in kg\n",
+ "Tii=350+273.0;#temperature of block in K\n",
+ "mi=5.0;#mass of block in kg\n",
+ "\n",
+ "#constants used(Table A-3)\n",
+ "cw=4.18;#specific heat of water in kJ/kg C\n",
+ "ci=0.45;#specific heat of iron in kJ/kg C\n",
+ "\n",
+ "#calculations\n",
+ "Tfk=(mi*ci*Tii+mw*cw*Tiw)/(mw*cw+mi*ci);\n",
+ "Tfc=Tfk-273;#in C\n",
+ "print'the final equilibrium temperature %f C'%round(Tfc,1);\n",
+ "X1i=mi*ci*(Tii-T0-T0*log(Tii/T0));\n",
+ "X1w=mw*cw*(Tiw-T0-T0*log(Tiw/T0));\n",
+ "X1t=X1i+X1w;#total exergy \n",
+ "print'intial exergy of combined systems %i kJ'%round(X1t);\n",
+ "X2i=mi*ci*(Tfk-T0-T0*log(Tfk/T0));\n",
+ "X2w=mw*cw*(Tfk-T0-T0*log(Tfk/T0));\n",
+ "X2t=X2i+X2w;#total exergy \n",
+ "print'intial exergy of combined systems %f kJ'%round(X2t,1);\n",
+ "Xdestroyed=X1t-X2t;\n",
+ "print'the wasted work %f kJ'%round(Xdestroyed,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the final equilibrium temperature 31.700000 C\n",
+ "intial exergy of combined systems 315 kJ\n",
+ "intial exergy of combined systems 95.800000 kJ\n",
+ "the wasted work 219.100000 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-14 ,Page No.455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "TR=1200.0;#temperature of furnace \n",
+ "T0=300;#temperature of surrounding in K\n",
+ "P0=100;#pressure of surrounding in kPa\n",
+ "Tsys=400.0;#temperature of argon in K\n",
+ "P1=350;#temperature of argon in K\n",
+ "V1=0.01;#intail volumne in m^3\n",
+ "V2=2*V1;#final volumne\n",
+ "\n",
+ "#calculations\n",
+ "W=P1*V1*log(V2/V1);\n",
+ "Wsurr=P0*(V2-V1);\n",
+ "Wu=W-Wsurr;\n",
+ "print'the useful work output %f kJ'%round(Wu,2);\n",
+ "# Qin - W = m*Cv*dT, Since dt=0\n",
+ "Q=W;\n",
+ "Sgen=Q/Tsys-Q/TR;\n",
+ "Xdestroyed=T0*Sgen;\n",
+ "print'the exergy destroyed %f kJ/K'%round(Xdestroyed,2);\n",
+ "Wrev=T0*Q/Tsys-Wsurr+(1-T0/TR)*Q;\n",
+ "print'the reversible work is done in the process %f kJ'%round(Wrev,2);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the useful work output 1.430000 kJ\n",
+ "the exergy destroyed 1.210000 kJ/K\n",
+ "the reversible work is done in the process 2.640000 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-15 ,Page No.460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculation error in textbook in part - b which changes all the following answers\n",
+ "\n",
+ "#given data\n",
+ "m=8.0;#mass flow rate in kg/s\n",
+ "T0=298.0;#temperature of surrounding in K\n",
+ "P0=100.0;#pressure of surrounding in kPa\n",
+ "P1=3000.0;#inlet pressure in kPa\n",
+ "T1=450.0;#inlet temperature in K\n",
+ "P2=200.0;#outlet pressure in kPa\n",
+ "T2=150.0;#outlet temperature in K\n",
+ "Qout=300.0;#heat rate in kW\n",
+ "\n",
+ "#from Table A-6 and A-4\n",
+ "h1=3344.9;\n",
+ "s1=7.0856;\n",
+ "h2=2769.1;\n",
+ "s2=7.2810;\n",
+ "h0=104.83;\n",
+ "s0=0.3672;\n",
+ "\n",
+ "#calculations\n",
+ "# Ein = Eout\n",
+ "Wout=m*(h1-h2)-Qout;\n",
+ "Wout=round(Wout)\n",
+ "print'the actual power output %i kW'%Wout\n",
+ "# Xin = Xout\n",
+ "Wrev=m*(h1-h2)-(T0*(s1-s2));\n",
+ "Wrev=round(Wrev);\n",
+ "print'the maximum possible work output %i kW'%Wrev;\n",
+ "nII=Wout/Wrev;\n",
+ "print'second law efficiency is %f'%round(nII,3);\n",
+ "Xdestroyed=Wrev-Wout;\n",
+ "print'the exergy destroyed %i kW'%round(Xdestroyed);\n",
+ "X1=h1-h0-T0*(s1-s0);\n",
+ "print'the exergy of the steam at inlet conditions %i kJ/kg'%round(X1);\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the actual power output 4306 kW\n",
+ "the maximum possible work output 4665 kW\n",
+ "second law efficiency is 0.923000\n",
+ "the exergy destroyed 359 kW\n",
+ "the exergy of the steam at inlet conditions 1238 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-16 ,Page No.462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T0=70+460;#temperature of surroundings in R\n",
+ "T1=50;#temperature of water in F\n",
+ "T2=240;#temperature of steam in F\n",
+ "T3=130;#outlet temperature in F\n",
+ "#as dicussed in example 7-20\n",
+ "m1=300;#mass flow rate of water in lbm/min\n",
+ "m2=22.7;#mass flow rate of steam in lbm/min\n",
+ "m3=322.7;#outlet mass flow rate in lbm/min\n",
+ "\n",
+ "#from steam tables\n",
+ "h1=18.07;\n",
+ "s1=0.03609;\n",
+ "h2=1162.3;\n",
+ "s2=1.7406;\n",
+ "h3=97.99;\n",
+ "s3=0.18174;\n",
+ "\n",
+ "#calculations\n",
+ "Wrev=m1*(h1-T0*s1)+m2*(h2-T0*s2)-m3*(h3-T0*s3);\n",
+ "Wrev=round(Wrev);\n",
+ "print'the reversible power %i Btu/min'%round(Wrev)\n",
+ "Xdestroyed=Wrev;\n",
+ "print'the rate of exergy destruction %i Btu/min'%Xdestroyed\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the reversible power 4588 Btu/min\n",
+ "the rate of exergy destruction 4588 Btu/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8-17 ,Page No.463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V=200.0;#volumne of rigid tank in m^3\n",
+ "P1=100.0;#intial surroundings in kPa\n",
+ "P2=1000.0;#final pressure in kPa\n",
+ "P0=100.0;#pressure of surroundings in kPa\n",
+ "T=300.0;#temperature of surroundings in K\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kPa m^3/kg K\n",
+ "\n",
+ "#calculations\n",
+ "#Xin - Xout = Xdestroyed = X2 - X1\n",
+ "m2=P2*V/(R*T);\n",
+ "X2=R*T*(log(P2/P0)+P0/P2-1);\n",
+ "Wrev=m2*X2/1000;\n",
+ "Wrev=round(Wrev);\n",
+ "print'Work requirement %i MJ'%Wrev\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work requirement 281 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/Chapter9.ipynb b/Thermodynamics_An_Engineering_Approach/Chapter9.ipynb
new file mode 100755
index 00000000..1008c6c0
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/Chapter9.ipynb
@@ -0,0 +1,540 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9: Gas Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-2 ,Page No.498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=17+273;#temperature of air in K\n",
+ "P1=100;#pressure of air in kPa\n",
+ "r=8.0;#compression ratio i.e v1/v2\n",
+ "qin=800;#heat transfer rate in kJ/kg\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kPa-m^3/kg-K\n",
+ "\n",
+ "#from Table A-17\n",
+ "#at T1\n",
+ "u1=206.91;\n",
+ "vr1=676.1;\n",
+ "\n",
+ "#calculations\n",
+ "#Process 1-2\n",
+ "vr2=vr1/r;\n",
+ "#at this vr2\n",
+ "T2=652.4;\n",
+ "u2=475.11;\n",
+ "P2=P1*(T2/T1)*(r);\n",
+ "#Process 2-3\n",
+ "u3=qin+u2;\n",
+ "#at this u3\n",
+ "T3=1575.1;\n",
+ "vr3=6.108;\n",
+ "P3=P2*(T3/T2)*1;#factor of 1 as v3=v2\n",
+ "print'maximum temperature in the cycle %f K'%T3;\n",
+ "print'maximum pressure %f MPa'%round((P3/1000),3);#factor of 1000 to convert into MPa\n",
+ "#Process 3-4\n",
+ "vr4=r*vr3;\n",
+ "#at this vr4 \n",
+ "T4=795.6;\n",
+ "u4=588.74;\n",
+ "#Process 4-1\n",
+ "qout=u4-u1;\n",
+ "Wnet=qin-qout;\n",
+ "print'net work output %f kJ/kg'%round(Wnet,2);\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficiency is %f'%round(nth,3);\n",
+ "v1=R*T1/P1;\n",
+ "MEP=Wnet/(v1*(1-1/r));\n",
+ "MEP=round(MEP);\n",
+ "print'mean effective pressure %i kPa'%(MEP)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum temperature in the cycle 1575.100000 K\n",
+ "maximum pressure 4.345000 MPa\n",
+ "net work output 418.170000 kJ/kg\n",
+ "thermal efficiency is 0.523000\n",
+ "mean effective pressure 574 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-3 ,Page No.501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "V1=117.0;#intial volumne in in^3\n",
+ "T1=80+460.0;#intial temperature in R\n",
+ "P1=14.7;#intial pressure in psia\n",
+ "r=18.0;#compression ratio\n",
+ "rc=2.0;#cut-off ratio\n",
+ "\n",
+ "#constants used\n",
+ "R=0.3704;#in psia ft^3/lbm R\n",
+ "cp=0.240;#in Btu/lbm R\n",
+ "cv=0.171;#in Btu/lbm R\n",
+ "\n",
+ "#from Table A-2Ea\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "V2=V1/r;\n",
+ "V3=rc*V2;\n",
+ "V4=V1;\n",
+ "#Process 1-2\n",
+ "T2=T1*(V1/V2)**(k-1);\n",
+ "P2=P1*(V1/V2)**k;\n",
+ "T2=round(T2);\n",
+ "P2=round(P2);\n",
+ "print('Process 1-2');\n",
+ "print'temperature %i R'%T2;\n",
+ "print'pressure %i psia'%P2;\n",
+ "#Process 2-3\n",
+ "P3=P2;\n",
+ "T3=T2*(V3/V2);\n",
+ "T3=round(T3);\n",
+ "P3=round(P3);\n",
+ "print('Process 2-3');\n",
+ "print'temperature %i R'%T3;\n",
+ "print'pressure %i psia'%P3;\n",
+ "#Process 3-4\n",
+ "T4=T3*(V3/V4)**(k-1);\n",
+ "P4=P3*(V3/V4)**k;\n",
+ "T4=round(T4);\n",
+ "print('Process 3-4');\n",
+ "print'temperature %i R'%T4;\n",
+ "print'pressure %f psia'%round(P4,1);\n",
+ "m=P1*V1/(R*T1)/1728;#factor of 1728 to covert to ft^3 from in^3\n",
+ "Qin=m*cp*(T3-T2);\n",
+ "Qout=m*cv*(T4-T1);\n",
+ "Wnet=Qin-Qout ;\n",
+ "print'work output %f Btu'%round(Wnet,3);\n",
+ "nth=Wnet/Qin;\n",
+ "print'thermal efficiency is %f'%round(nth,3);\n",
+ "MEP=Wnet/(V1-V2)*778.17*12;#factor of 778.17 and 12 to convert to lbf ft and in from Btu and ft respectively\n",
+ "MEP=round(MEP);\n",
+ "print'mean effective pressure %i psia'%MEP"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Process 1-2\n",
+ "temperature 1716 R\n",
+ "pressure 841 psia\n",
+ "Process 2-3\n",
+ "temperature 3432 R\n",
+ "pressure 841 psia\n",
+ "Process 3-4\n",
+ "temperature 1425 R\n",
+ "pressure 38.800000 psia\n",
+ "work output 1.296000 Btu\n",
+ "thermal efficiency is 0.633000\n",
+ "mean effective pressure 110 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-5 ,Page No.511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given data\n",
+ "T1=300;#compressor inlet temperature in K\n",
+ "r=8;#pressure ratio\n",
+ "T3=1300;#turbine inlet temperature in K\n",
+ "\n",
+ "#calcualtions\n",
+ "#Process 1-2\n",
+ "#at T1\n",
+ "h1=300.19;\n",
+ "Pr1=1.386;\n",
+ "Pr2=r*Pr1;\n",
+ "#at Pr2\n",
+ "T2=540;\n",
+ "h2=544.35;\n",
+ "print'temperature at exit of compressor %i K'%T2;\n",
+ "#Process 3-4\n",
+ "#at T3\n",
+ "h3=1395.17;\n",
+ "Pr3=330.9;\n",
+ "Pr4=Pr3/r;\n",
+ "#at Pr4\n",
+ "T4=770;\n",
+ "h4=789.37;\n",
+ "print'temperature at turbine exit %i K'%T4;\n",
+ "Win=h2-h1;\n",
+ "Wout=h3-h4;\n",
+ "rbw=Win/Wout;\n",
+ "print'back work ratio is %f'%round(rbw,3);\n",
+ "qin=h3-h2;\n",
+ "Wnet=Wout-Win;\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficeincy is %f'%round(nth,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature at exit of compressor 540 K\n",
+ "temperature at turbine exit 770 K\n",
+ "back work ratio is 0.403000\n",
+ "thermal efficeincy is 0.425000\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-6 ,Page No.513"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#from 9.5\n",
+ "Wsc=244.16;#work input of compressor in kJ/kg\n",
+ "Wst=606.60;#work output of turbine in kJ/kg\n",
+ "h1=300.19;#process 1-2 data\n",
+ "h3=1395.17;#process 3-4 data\n",
+ "\n",
+ "#given data\n",
+ "nC=0.8;#compressor effciency \n",
+ "nT=0.85;#turbine efficiency\n",
+ "\n",
+ "#calculations\n",
+ "Win=Wsc/nC;\n",
+ "Wout=nT*Wst;\n",
+ "rbw=Win/Wout;\n",
+ "print'back work ratio is %f'%round(rbw,3);\n",
+ "h2a=h1+Win;\n",
+ "qin=h3-h2a;\n",
+ "Wnet=Wout-Win;\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficeincy is %f'%round(nth,3)\n",
+ "h4a=h3-Wout;\n",
+ "#from A-17 at h4a\n",
+ "T4a=853;\n",
+ "print'turbine exit temperature %i K is'%T4a\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "back work ratio is 0.592000\n",
+ "thermal efficeincy is 0.266000\n",
+ "turbine exit temperature 853 K is\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-7 ,Page No.516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#from 9.6\n",
+ "h2a=605.39;#entalpy of air leaving the compressor in kJ/kg\n",
+ "h4a=880.36;#entalpy of air leaving the turbinein kJ/kg\n",
+ "h3=1395.97;#in kJ/kg\n",
+ "Wnet=210.41;#net woek done in kJ/kg\n",
+ "\n",
+ "#given data\n",
+ "n=0.80;#thermal efficiency\n",
+ "\n",
+ "#calculations\n",
+ "# n = (h5 - h2a) / (h4a - h2a)\n",
+ "h5=(h4a - h2a)*n+h2a;\n",
+ "qin=h3-h5;\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficeincy is %f'%round(nth,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "thermal efficeincy is 0.369000\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-8 ,Page No.519"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "T1=300;#inlet temperature of compressor in K\n",
+ "T6=1300;#inlet temperature of turbine in K\n",
+ "r=8;#overall compression ratio\n",
+ "\n",
+ "#calculations\n",
+ "#as it is case of intercooling\n",
+ "ri=sqrt(r);#ri stands for P2/P1 = P4/P3 = P6/P7 = P8/P9\n",
+ "#from A-17 at T1\n",
+ "h1=300.19;\n",
+ "Pr1=1.386;\n",
+ "Pr2=ri*Pr1;\n",
+ "#from A-17 at Pr2\n",
+ "T2=403.3;\n",
+ "h2=403.31;\n",
+ "#from A-17 at T6\n",
+ "h6=1395.97;\n",
+ "Pr6=330.9;\n",
+ "Pr7=Pr6/ri;\n",
+ "#from A-17 at Pr7\n",
+ "T7=1006.4;\n",
+ "h7=1053.33;\n",
+ "#at inlets\n",
+ "T3=T1;h3=h1;T8=T6;h8=h6;\n",
+ "#et exits\n",
+ "T4=T2;h4=h2;T9=T7;h9=h7;h5=h7;\n",
+ "Win=2*(h2-h1);\n",
+ "Wout=2*(h6-h7);\n",
+ "Wnet=Wout-Win;\n",
+ "qin=(h6-h4)+(h8-h7);\n",
+ "rbw=Win/Wout;\n",
+ "print'back work ratio is %f'%round(rbw,3);\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficeincy is %f'%round(nth,3)\n",
+ "#part - b\n",
+ "print('part - b');\n",
+ "qin=(h6-h5)+(h8-h7);\n",
+ "nth=Wnet/qin;\n",
+ "print'thermal efficeincy is %f'%round(nth,3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "back work ratio is 0.301000\n",
+ "thermal efficeincy is 0.359000\n",
+ "part - b\n",
+ "thermal efficeincy is 0.699000\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-9 ,Page No.523"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import sqrt\n",
+ "\n",
+ "#given data\n",
+ "m=100;\n",
+ "P1=5;#air pressue in psia\n",
+ "T1=-40+460;#air temperature in R\n",
+ "T4=2000+460;#turbine inlet temperature in R\n",
+ "V1=850;#aircraft velocity in ft/sec\n",
+ "rp=10;#pressure ratio\n",
+ "\n",
+ "#constants used\n",
+ "cp=0.240;#in Btu/lbm F\n",
+ "k=1.4;\n",
+ "\n",
+ "#calculations\n",
+ "#Process 1-2\n",
+ "T2=T1+V1**2/(2*cp)/25037;#factor of 25037 to covert to Btu/lbm\n",
+ "P2=P1*(T2/T1)**(k/(k-1));\n",
+ "#Process 2-3 \n",
+ "P3=rp*P2;\n",
+ "P4=P3;\n",
+ "T3=T2*(P3/P2)**((k-1)/k);\n",
+ "#Win=Wout\n",
+ "T5=T4-T3+T2;\n",
+ "P5=P4*(T5/T4)**(k/(k-1));\n",
+ "T5=round(T5);\n",
+ "print'temperature at turbine exit %i R'%T5;\n",
+ "print'pressure at turbine exit %f psia'%round(P5,1);\n",
+ "#Process 5-6\n",
+ "P6=P1;\n",
+ "T6=T5*(P6/P5)**((k-1)/k);\n",
+ "T6=round(T6);#round off\n",
+ "V6=sqrt(2*cp*(T5-T6)*25037);#factor of 25037 to covert to (ft/s)^2\n",
+ "print'the velocity of nozzle exit %i ft/s'%(round(V6));\n",
+ "Wp=m*(V6-V1)*V1/25037;#factor of 25037 to covert to Btu/lbm\n",
+ "Qin=m*cp*(T4-T3);\n",
+ "nP=Wp/Qin;\n",
+ "print'propulsive efficiency is %f percent'%round(nP*100,1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "temperature at turbine exit 2013 R\n",
+ "pressure at turbine exit 39.600000 psia\n",
+ "the velocity of nozzle exit 3285 ft/s\n",
+ "propulsive efficiency is 22.500000 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9-10 ,Page No.529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import log\n",
+ "\n",
+ "#from 9.2\n",
+ "r=8;#compression ratio i.e v1/v2\n",
+ "T0=290.0;#temperature of air in K\n",
+ "T1=290.0;#temperature in the begining of the isentropic compression process in K\n",
+ "T2=652.4;#temperature in the end of the isentropic compression process in K\n",
+ "T3=1575.1;#temperature after process 2-3 in K\n",
+ "P2=1.7997;#pressure in the end of the isentropic compression process in MPa\n",
+ "P3=4.345;#pressure after process 2-3 in MPa\n",
+ "qin=800.0;#heat transfer rate in kJ/kg\n",
+ "qout=381.83;#heat rejection in kJ/kg\n",
+ "wnet=418.17;#net work in kJ/kg\n",
+ "\n",
+ "#given data\n",
+ "Tsource=1700;#temperature of working fluid at source in K\n",
+ "\n",
+ "#constants used\n",
+ "R=0.287;#in kPa-m^3/kg-K\n",
+ "\n",
+ "#calculations\n",
+ "#s1=s2 ; s3=s4\n",
+ "s03=3.5045;\n",
+ "s02=2.4975;\n",
+ "s32=(s03-s02)-R*log(P3/P2);#s32 stands for s3-s2\n",
+ "xdest23=T0*(s32-qin/Tsource);\n",
+ "Tsink=T1;\n",
+ "xdest41=T0*(-s32+qout/Tsink);\n",
+ "xdestcycle=xdest23+xdest41;\n",
+ "print'exergy destrustion associated with Otto cycle %f kJ/kg'%round(xdestcycle,1);\n",
+ "# X4 = (u4 - u0 )- T0*(s4 - s0) + P0(v4 - v0)\n",
+ "# s4 - s0 = s4 - s1 = s32\n",
+ "# u4 - u0 = u4 - u1 = qout\n",
+ "# v4 - v0 = v4 - v1 = 0\n",
+ "#hence x4 is\n",
+ "X4=qout-T0*s32;\n",
+ "print'exergy destruction of purge stream %f kJ/kg'%round(X4,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "exergy destrustion associated with Otto cycle 245.400000 kJ/kg\n",
+ "exergy destruction of purge stream 163.200000 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/README.txt b/Thermodynamics_An_Engineering_Approach/README.txt
new file mode 100755
index 00000000..2482fb63
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Harshit Bajpai
+Course: btech
+College/Institute/Organization: Visvesvaraya National Institute Of Technology, Nagpur
+Department/Designation: Chemical Engineering
+Book Title: Thermodynamics An Engineering Approach
+Author: Michael A. Boles, Yunus A. Cengel
+Publisher: McGraw-Hill College, Boston, MA,
+Year of publication: 2006
+Isbn: 0072884959
+Edition: 5 \ No newline at end of file
diff --git a/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot.png b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot.png
new file mode 100755
index 00000000..ae3f5718
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot.png
Binary files differ
diff --git a/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot_1.png b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot_1.png
new file mode 100755
index 00000000..ae3f5718
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_10_Ex_10-1_Screenshot_1.png
Binary files differ
diff --git a/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot.png b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot.png
new file mode 100755
index 00000000..a7d400a8
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot.png
Binary files differ
diff --git a/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot_1.png b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot_1.png
new file mode 100755
index 00000000..a7d400a8
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_14_Ex_14-2_Screenshot_1.png
Binary files differ
diff --git a/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot.png b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot.png
new file mode 100755
index 00000000..16c5fdb6
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot.png
Binary files differ
diff --git a/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot_1.png b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot_1.png
new file mode 100755
index 00000000..16c5fdb6
--- /dev/null
+++ b/Thermodynamics_An_Engineering_Approach/screenshots/Chapter_8_Ex_8-4_Screenshot_1.png
Binary files differ
diff --git a/Thermodynamics_Demystified/Chapter1.ipynb b/Thermodynamics_Demystified/Chapter1.ipynb
new file mode 100755
index 00000000..68c66861
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter1.ipynb
@@ -0,0 +1,209 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2622b864e241f67942d9af83d84aabbbf519132ac138f1180d8869df35c708b4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 1 : Basic Principles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.2 : PG-9 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=10 # mass in Kg\n",
+ "V=5 # velocity in m/s\n",
+ "\n",
+ "KE=m*V**2/2 # kinetic energy in N-m \n",
+ "print \"The Kinetic Energy is \",round(KE),\" N.m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Kinetic Energy is 125.0 N.m\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.3 : PG-10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "V= 3*5*20; # Volume of air in m^3 from dimensions\n",
+ "m= 350.0; # mass in kg\n",
+ "g= 9.81; # gavitational acceleration in m/s^2\n",
+ "\n",
+ "rho=m/V;# density\n",
+ "print \" The Density is \",round(rho,3),\"kg/m^3 \\n\"\n",
+ "\n",
+ "v= 1/rho # specific volume of air\n",
+ "print \" The specific volume is\", round(v,3),\"m^3/kg \\n\"\n",
+ "\n",
+ "gama= rho*g # specific weight of air\n",
+ "print \" The specific weight is\", round(gama,2),\" N/m^3\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Density is 1.167 kg/m^3 \n",
+ "\n",
+ " The specific volume is 0.857 m^3/kg \n",
+ "\n",
+ " The specific weight is 11.45 N/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.4 : PG-13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "h=0.020 # height of mercury in m\n",
+ "gammawater=9810 # specific weight of water in N/m^3\n",
+ "Patm=0.7846*101.3 # atmospheric pressure in kPa from table B.1\n",
+ "\n",
+ "Pgauge=13.6*gammawater*h/1000 # pressure in Pascal from condition gammaHg=13.6*gammawater\n",
+ "\n",
+ "P=(Pgauge+Patm)# absolute pressure in KPa\n",
+ "#result\n",
+ "print \"The Pressure is\",round(P,2),\" kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Pressure is 82.15 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 79
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.5 : PG-13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "d=10.0/100 # diameter of cylinder in 'm'\n",
+ "P=600 # pressure in KPa\n",
+ "Patm=100 # atmospheric pressure in Kpa\n",
+ "K=4.8*1000 # spring constant in N/m \n",
+ "\n",
+ "deltax=(P-Patm)*(math.pi*1000*d**2)/(4*K) # by balancing forces on piston\n",
+ "#result\n",
+ "print \"The Compression in spring is\",round(deltax,3),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Compression in spring is 0.818 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1.6 : PG-16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "ma=2200 # mass of Automobile 'a' in kg\n",
+ "va=25 #velocity of Automobile 'a' in m/s before collision\n",
+ "va1=13.89 # velocity of Automobile 'a' after collision in m/s\n",
+ "mb=1000 # mass of Automobile 'b' in kg\n",
+ "vb=24.44 #velocity of Automobile 'b' after collision in m/s\n",
+ "\n",
+ "KE1=(ma*va**2)/2 # kinetic energy before collision\n",
+ "KE2=(ma*va1**2)/2+(mb*vb**2)/2 # kinetic energy after collision\n",
+ "U=(KE1-KE2)/1000 # internal energy from conservation of energy principle in kJ\n",
+ "#result\n",
+ "print \"The increase in kinetic energy is of\",round(U,1),\" kJ\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The increase in kinetic energy is of 176.6 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 81
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter2.ipynb b/Thermodynamics_Demystified/Chapter2.ipynb
new file mode 100755
index 00000000..d8357657
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter2.ipynb
@@ -0,0 +1,322 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:63ec806cc789e6d4e52abc481b4c69dbae196d3a1063d71df1549638fb7b9752"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Properties of Pure Substances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1, PG-28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "m=10; #mass of saturated water in kg\n",
+ "\n",
+ " # All the necessary values are taken from table C.2\n",
+ " \n",
+ "# part (a)\n",
+ " \n",
+ "P=0.001; # Pressure in MPa\n",
+ "vf=0.001; #specific volume of saturated liquid at 0.001 Mpa in Kg/m^3\n",
+ "vg=129.2; # specific volume of saturated vapour at 0.001 Mpa in Kg/m^3\n",
+ "deltaV=m*(vg-vf) # by properties of pure substance \n",
+ "# result\n",
+ "print \"The Volume change at pressure \",(P),\" MPa is\",round(deltaV),\" m^3 \\n\"\n",
+ "\n",
+ "# part (b) \n",
+ "\n",
+ "P=0.26; # Pressure in MPa\n",
+ "vf=0.0011; # specific volume of saturated liquid at 0.26 MPa( it is same from at 0.2 and 0.3 MPa upto 4 decimals)\n",
+ "vg=(P-0.2)*(0.6058-0.8857)/(0.3-0.2)+0.8857; # specific volume of saturated vapour by interpolation of Values at 0.2 MPa and 0.3 MPa\n",
+ "deltaV=m*(vg-vf) # by properties of pure substance \n",
+ "# result\n",
+ "print \"The Volume change at pressure \",(P),\" MPa is\",round(deltaV,2),\" m^3 \\n\"\n",
+ "\n",
+ "# part (c) \n",
+ "P=10; # Pressure in MPa\n",
+ "vf=0.00145; # specific volume of saturated liquid at 10 MPa\n",
+ "vg=0.01803; # specific volume of saturated vapour at 10 MPa\n",
+ "deltaV=m*(vg-vf) # by properties of pure substance \n",
+ "# result\n",
+ "print \"The Volume change at pressure \",(P),\" MPa is\",round(deltaV,4),\" m^3 \\n\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Volume change at pressure 0.001 MPa is 1292.0 m^3 \n",
+ "\n",
+ "The Volume change at pressure 0.26 MPa is 7.17 m^3 \n",
+ "\n",
+ "The Volume change at pressure 10 MPa is 0.1658 m^3 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2, PG-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=4.0 # mass of water in kg\n",
+ "V=1.0 # volume in m^3\n",
+ "T=150 # temperature of water in degree centigrade\n",
+ "\n",
+ "# TABLE C.1 is used for values in wet region\n",
+ "# Part (a)\n",
+ "P=475.8 # pressure in KPa in wet region at temperature of 150 *C\n",
+ "print \" The pressure is\",round(P,2),\" kPa \\n\"\n",
+ "\n",
+ "# Part (b)\n",
+ "#first we determine the dryness fraction\n",
+ "v=V/m # specific volume of water\n",
+ "vg=0.3928 # specific volume of saturated vapour @150 degree celsius\n",
+ "vf=0.00109 # specific volume of saturated liquid @150 degree celsius\n",
+ "x=(v-vf)/(vg-vf); # dryness fraction\n",
+ "mg=m*x; # mass of vapour\n",
+ "print \" The mass of vapour present is\",round(mg,3),\" kg \\n\"\n",
+ "\n",
+ "# Part(c) \n",
+ "Vg=mg*vg; # volume of vapour\n",
+ "print \" The volume of vapour is\",round(Vg,3),\" m^3\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The pressure is 475.8 kPa \n",
+ "\n",
+ " The mass of vapour present is 2.542 kg \n",
+ "\n",
+ " The volume of vapour is 0.998 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3, PG-29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=2 # mass of water in kg\n",
+ "P=220 # pressure in KPa\n",
+ "x=0.8 # quality of steam\n",
+ "\n",
+ "# Table C.2 is used for values\n",
+ "\n",
+ "vg=(P-200)*(0.6058-0.8857)/(300-200)+0.8857 # specific volume of saturated vapour @ given pressure by interpolating\n",
+ "vf=0.0011 # specific volume of saturated liquid @ 220 KPa\n",
+ "v=vf+x*(vg-vf)# property of pure substance\n",
+ "V=m*v # total volume\n",
+ "#result\n",
+ "print \"The Total volume of the mixture is \",round(V,3),\" m^3\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total volume of the mixture is 1.328 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4, PG-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "m=2 # mass of water in kg\n",
+ "P=2.2 # pressure in Mpa\n",
+ "T=800 # temperature in degree centigrade\n",
+ " # Table C.3 is used for values\n",
+ "v=0.2467+(P-2)*(0.1972-0.2467)/(2.5-2) # specific volue by interpolatin between 2 and 2.5 MPa\n",
+ "V=m*v # final volume\n",
+ "print \"The Final Volume is\",round(V,3),\" m^3\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Final Volume is 0.454 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5, PG-32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "V=0.6 # volume of tyre in m^3\n",
+ "Pgauge=200 # gauge pressure in KPa\n",
+ "T=20+273 # temperature converted to kelvin\n",
+ "Patm=100 # atmospheric pressure in KPa\n",
+ "R=287 # gas constant in Nm/kg.K\n",
+ "Pabs=(Pgauge+Patm)*1000 # calculating absolute pressue in Pa \n",
+ "\n",
+ "m=Pabs*V/(R*T)# mass from ideal gas equation\n",
+ "print \"The Mass of air is\",round(m,2),\" Kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Mass of air is 2.14 Kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6, PG-33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "T=500+273 # temperature of steam in kelvin\n",
+ "rho=24.0 # density in Kg/m^3\n",
+ "R=0.462 # gas constant from Table B.2\n",
+ "v=1/rho # specific volume and density relation\n",
+ "# PART (a)\n",
+ "P=rho*R*T # from Ideal gas equation\n",
+ "print \" PART (a) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (b)\n",
+ "a=1.703 # van der Waal's constant a value from Table B.7\n",
+ "b=0.00169 # van der Waal's constant b value from Table B.7\n",
+ "P=(R*T/(v-b))-(a/v**2) # Pressure from van der Waal's equation\n",
+ "print \" PART (b) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (c)\n",
+ "a=43.9 # van der Waal's constant a value from Table B.7\n",
+ "b=0.00117 # van der Waal's constant b value from Table B.7\n",
+ "\n",
+ "P=(R*T/(v-b))-(a/(v*(v+b)*math.sqrt(T))) # Redlich-Kwong equation\n",
+ "print \" PART (c) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (d)\n",
+ "Tcr=947.4 # compressibilty temperature from table B.3\n",
+ "Pcr=22100 # compressibility pressure from table B.3\n",
+ "\n",
+ "TR=T/Tcr # reduced temperature\n",
+ "PR=P/Pcr # reduced pressure\n",
+ "Z=0.93 # from compressiblility chart\n",
+ "P=Z*R*T/v # Pressure in KPa\n",
+ "print \" PART (d) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n",
+ "\n",
+ "# PART (e)\n",
+ "P=8000 # pressure from steam table @ 500*c and v= 0.0417 m^3\n",
+ "print \" PART (e) The Pressure is \",int(P),\" KPa \\n\"\n",
+ "# answer is approximated in textbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " PART (a) The Pressure is 8571 KPa \n",
+ "\n",
+ " PART (b) The Pressure is 7952 KPa \n",
+ "\n",
+ " PART (c) The Pressure is 7934 KPa \n",
+ "\n",
+ " PART (d) The Pressure is 7971 KPa \n",
+ "\n",
+ " PART (e) The Pressure is 8000 KPa \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter3.ipynb b/Thermodynamics_Demystified/Chapter3.ipynb
new file mode 100755
index 00000000..f646fae2
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter3.ipynb
@@ -0,0 +1,330 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f6a6bb505322436c23c138c1e60d951ed65e1f5f903d0d7ef3e7664203b1c411"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3:Work and Heat"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.1:PG-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialization of variables\n",
+ "m=1 # mass in kg\n",
+ "x=20.0/100.0 #quality of steam\n",
+ "P=200 #constant pressure in kPa\n",
+ "T1=100 #temperature intitial in degree centigrade\n",
+ "T2=400 #temperature final in degree centigrade\n",
+ "\n",
+ "\n",
+ "# first we find initial volume v1 and final volume v2\n",
+ "\n",
+ "# using table C.2\n",
+ "vf=0.001061 # specific volume of saturated liquid in m^3 per kg \n",
+ "vg=0.8857 # specific volume of saturated vapour in m^3 per kg \n",
+ "\n",
+ "v1=vf+x*(vg-vf);\n",
+ "\n",
+ "v2=1.549 # specific volume of steam in m^3 per kg at T2=400*C and P2=0.2MPa\n",
+ "# now calculate work\n",
+ "W=m*P*(v2-v1); # work done in constant pressure process\n",
+ "#result\n",
+ "print \"Work done is\",round(W,2),\" kJ\" # work is in kJ as pressure was in kPa"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done is 274.2 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.2:PG-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialization of variables\n",
+ "D=110.0/1000.0 # diameter of cylinder in m\n",
+ "V1=100e-6 # initial volume@ state 1 in m^3\n",
+ "T1=60.0 # initial temp @ state 1 in *C\n",
+ "T2=200.0 # final temo @ state 2 in *C\n",
+ "M=50 # weight of piston in kg\n",
+ "g=9.81 # gravitational accleration in m/sec^2\n",
+ "Patm=100000 # atmospheric pressure in Pa\n",
+ "A=math.pi*(D**2)/4 # area of piston in m^2\n",
+ "\n",
+ "# BALANCING THE FORCES To GET PRESSURE P\n",
+ "# M.g=P.A-Patm\n",
+ "P=Patm+(M*g/A) # atm pressure is added to get absolute pressure\n",
+ "\n",
+ "v1=0.001017 # specific volume at 60*C and 0.15Mpa pressure\n",
+ "m=V1/v1; # mass of water in kg\n",
+ "\n",
+ "# find volume at state 2 \n",
+ "v2=1.444 # specific volume of steam at 200*C and 0.15 MPa\n",
+ "V2=m*v2 # final volume in m^3\n",
+ "\n",
+ "W=P*(V2-V1)/1000; # work done divided by 1000 to get in kJ\n",
+ "# result\n",
+ "print \"The work done is\",round(W,1),\" kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The work done is 21.5 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.3:PG-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#initialization of variables\n",
+ "P1=200 # initial pressure in kPa\n",
+ "V1=2 # initial volume in m^3\n",
+ "P2=100 # final pressure in kPa\n",
+ "C=P1*V1 # isothermal process i.e P.V=constant\n",
+ "# find final volume \n",
+ "V2=P1*V1/P2 # final volume by P1.V1=P2.V2\n",
+ "\n",
+ "from scipy.integrate import quad\n",
+ " \n",
+ "def integrand(v,C):\n",
+ " return C/v\n",
+ "W, err =quad(integrand, V1, V2,C ) # itegrating over volume to get work\n",
+ "# result\n",
+ "print \"The Work done by gas is\",int(W),\" kJ\" # answer is approximated in textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Work done by gas is 277 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.4:PG-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "M=100 # mass in kg\n",
+ "d=3 # depth by which mass drops in m\n",
+ "V=0.002 # increased volume in m^3\n",
+ "g=9.8 # gravitational accleration in m/sec^2\n",
+ "Pgauge=100*1000 # gauge pressure in N/m\n",
+ "Patm =100*1000 # atmospheric pressure in N/m\n",
+ "P=Pgauge+Patm # to get absolute pressure\n",
+ "\n",
+ "# calculate work done by paddle wheel\n",
+ "Wpaddlewheel=(-M*g*d) # work is negative as it is done on the system\n",
+ "\n",
+ "# calculate work done on piston it \n",
+ "Wboundary=P*V # area mulitiplied by height is volume thus W=P.V \n",
+ "\n",
+ "#net work\n",
+ "\n",
+ "Wnet=Wpaddlewheel+Wboundary; # Work in joule as SI units are used\n",
+ "print \"The Net Work done is \",round(Wnet),\" J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Net Work done is -2540.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.5:PG-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "T=100 # torque of shaft in N.m\n",
+ "N=3000 # rotation speed in rpm\n",
+ "omega=(N*2*math.pi/60) # angular velocity in rad/sec\n",
+ "# calculation of power\n",
+ "Wdot=(T*omega); # power is work done per unit time\n",
+ "print \"Power transmitted is\",round(Wdot/746,1),\" hp\" # divided by 746 to convert W into hp\n",
+ "#answer is approximated in textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power transmitted is 42.1 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.6:PG-51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "D=10.0/100 # diameter of cylinder in m\n",
+ "d=50.0/1000 # compression in spring in m\n",
+ "Patm=100000 # atmospheric pressure in Pa\n",
+ "K=10.0*1000 # spring constant converted in N/m\n",
+ "w=50*9.81 # weight of piston in Newton =mass*gravitational acceleration\n",
+ "\n",
+ "# find the initial pressure in cylinder by force balance\n",
+ "A=(math.pi*D**2)/4; # area of piston\n",
+ "P1=((Patm*A)+w)/A; # balancing forces on piston P1.A=Patm.A+W\n",
+ "\n",
+ "# work done by air to raise the piston for 50mm if spring not present\n",
+ "Wgas=P1*A*d; # pressure*area= force and Work = Force* displacement\n",
+ "\n",
+ "# work done on spring to compress\n",
+ "Wspring=(K*d**2)/2; # Work in j\n",
+ "\n",
+ "# now total work done by air is sum of two works\n",
+ "Wnet=Wgas+Wspring; # Work in j\n",
+ "# result\n",
+ "print \"The net work done by air is\",round(Wnet,1),\" J\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net work done by air is 76.3 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3.7:PG-53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variable initialization\n",
+ "\n",
+ "d=2 # distance travelled by weight in m\n",
+ "m=50 # mass of weight in kg\n",
+ "g=9.8 # gravitaional acceleration in m/sec^2\n",
+ "\n",
+ "# calculation of work in non-quasiequilibrium process\n",
+ "W=m*g*d; # work in joules\n",
+ "\n",
+ "# the work done must be transferred as heat\n",
+ "Q=W;\n",
+ "\n",
+ "print \"The heat that must transfer is \",int(Q),\" Joules\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat that must transfer is 980 Joules\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter4.ipynb b/Thermodynamics_Demystified/Chapter4.ipynb
new file mode 100755
index 00000000..235bb7b4
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter4.ipynb
@@ -0,0 +1,729 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c856359b943f772597028d78558909db2e2132e84bca2ae7745f1dba60abb237"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "Chapter 4:The First Law of Thermodynamics"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.1:PG-62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialization of variables\n",
+ "K=100 # spring constant in kN/m\n",
+ "d=0.8 # dispacement of spring in m\n",
+ " # to get total work we integrate from 0 to 0.8 displacement\n",
+ "x1=0; # lower limit of integration\n",
+ "x2=0.8; # upper limit of integration\n",
+ "from scipy.integrate import quad\n",
+ "\n",
+ "# we find work\n",
+ "def integrand(x,K):\n",
+ " return K*x\n",
+ "\n",
+ "W12, err = quad(integrand, x1, x2, K) # integrating to get work\n",
+ "Q12=W12; # by first law of thermodynamics\n",
+ "print \"The Heat transfer is \",int(Q12),\" J\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Heat transfer is 32 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.2:PG-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "P= 5*746 # power of fan converted in watt\n",
+ "t=1*60*60 # time converted to seconds\n",
+ "\n",
+ "# by first law of thermodynamics Q=delU + W\n",
+ "# Q=0 hence -W=delU\n",
+ "# first we find work input\n",
+ "W=-P*t # work in J\n",
+ "delU=-W # from 1st law\n",
+ "print \"The internal energy increase is \",float(delU),\" J\"\n",
+ "# The answer is approximated in textbook\n",
+ "# our answer is precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The internal energy increase is 13428000.0 J\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.3:PG-65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "P=400 # pressure in kPa\n",
+ "T1=200 # initial temperature in degree celsius\n",
+ "V1= 2 # initial volume in m^3\n",
+ "Q=3500 # heat added in kJ\n",
+ "v1=0.5342 # specific volume of steam at 200 degree celcius and 0.4 Mpa pressure from table C.3\n",
+ "u1=2647 # specific internal energy in kJ/kg @ pressure = 0.4 MPa\n",
+ "m=V1/v1 # mass in kg\n",
+ "# we have a relation Between u2 and v2 from 1st law of thermodynamics\n",
+ "v2=1.06 # specific volume at state 2 by trial and error and interpolation\n",
+ "V2=m*v2 \n",
+ "u2=((3500-400*(V2-V1))/m)+2647 # specific internal energy for v2=1.06 by trial and error\n",
+ "\n",
+ "# on interpolation from steam table at 0.4 MPa we get temperature \n",
+ "T2=644 # temperature in degree celsius\n",
+ "print \"The temperature for u2=\",round(u2),\" kJ and v2 =\",round(v2,3),\" kg/m^3 is \\n \",int(T2),\" degree celsius\"\n",
+ "# this numerical is solved by trial and error thus refer to Appendix C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature for u2= 3372.0 kJ and v2 = 1.06 kg/m^3 is \n",
+ " 644 degree celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.4:PG-67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# initialization of variables\n",
+ "P=400 # pressure in kPa\n",
+ "T1=200 # initial tmperature in degree celsius\n",
+ "V=2 # initial volume in m^3\n",
+ "Q=3500 # heat added in kJ\n",
+ "\n",
+ "#solution\n",
+ "h1=2860 # initial enthalpy @ 200*C and 400 kPa from steam table\n",
+ "v=0.5342 # specific volume from steam table C.3 \n",
+ "m=V/v;\n",
+ "h2=(Q/m)+h1; # final enthalpy in kJ/kg from energy equation\n",
+ "\n",
+ "# NOW USING THIS ENTHLAPY AND INTERPOlATING FROM STEAM TABLE\n",
+ "\n",
+ "T2=600+(92.6/224)*100\n",
+ "\n",
+ "print \"The Final temperature is \",int(T2),\" degree Celsius\"\n",
+ "# result is obtained from interpolation on steam table\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Final temperature is 641 degree Celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.5:PG-71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=300 # initial temperature in degree celsius\n",
+ "T2=700 # final temperature in degree celsius\n",
+ "P=150 # pressure in kPa\n",
+ "m=3 # mass of steam in kg\n",
+ "\n",
+ "# solution\n",
+ "# part (a)\n",
+ "from scipy.integrate import quad\n",
+ "\n",
+ "# now we make function to integrate\n",
+ "def integrand(T):\n",
+ " return 2.07+(T-400)/1480\n",
+ "\n",
+ "I, err = quad(integrand, T1, T2) # integrating specific heat over temperature range\n",
+ "delH=m*I #integrate('2.07+(T-400)/1480','T',T1,T2) # expressing as function of temperature and integrating\n",
+ "\n",
+ "print\" The change in Enthalpy is \",int(delH),\" kJ \\n\"\n",
+ " \n",
+ "# part(b)\n",
+ "CPavg=delH/(m*(T2-T1)) # avg value of specific heat at constant pressure\n",
+ "print \" The average value of Cp is \",round(CPavg,2),\" kJ/kg.*C\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The change in Enthalpy is 2565 kJ \n",
+ "\n",
+ " The average value of Cp is 2.14 kJ/kg.*C\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.6,PG-72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "m=1 # mass of nitrogen in kg\n",
+ "T1=300 # initial temperature in Kelvin\n",
+ "T2=1200 # final temperature in Kelvin\n",
+ "M=28.0 # in kg/kmol\n",
+ "# part(a)\n",
+ "# the enthalpy change is found from gas table in App.E\n",
+ "delh=36777-8723 # from gas table\n",
+ "delH=delh/M \n",
+ "print \" The entalpy change from gas table is \",round(delH),\" kJ/kg \\n\"\n",
+ "\n",
+ "# part (b) \n",
+ "Cp=1.042 # from table B.2\n",
+ "delH=Cp*(T2-T1)\n",
+ "print \" The entalpy change by assuming constant specific heat is \",round(delH),\" kJ/kg\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The entalpy change from gas table is 1002.0 kJ/kg \n",
+ "\n",
+ " The entalpy change by assuming constant specific heat is 938.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.7:PG-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "x=0.7 # quality of steam\n",
+ "P1=200 # initial pressure in kPa\n",
+ "P2=800 # final pressure in kPa\n",
+ "V=2 # volume in m^3\n",
+ "# The values are taken from TABLE C.2\n",
+ "vf1=0.0010 # specific volume of saturated liquid at 200 kPa\n",
+ "vg1=0.8857 # specific volume of saturated gas at 200 kPa\n",
+ "uf1=504.5 # specific internal energy of saturated liquid @ state 1\n",
+ "ug1=2529.5 # speciific internal energy of saturated gas @ state 1\n",
+ "\n",
+ "v1=vf1+x*(vg1-vf1); # specific volume of vapour\n",
+ "m=V/v1\n",
+ "\n",
+ "u1=uf1+x*(ug1-uf1) # specific internal energy of vapour @ state 1\n",
+ "v2=v1 # constant volume process\n",
+ "u2=((0.6761-0.6203)*(3661-3853)/(0.6761-0.6181))+3853 # from steam table @ 800kPa by interpolating\n",
+ "Q=m*(u2-u1) # heat transfer\n",
+ "print \"The heat transfer is \",round(Q,3),\" kJ\"\n",
+ "# The answer in the textbook is approximated"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transfer is 5630.537 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.8:PG-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "V=0.02 # volume in m^3\n",
+ "P=400 # pressure in kPa\n",
+ "T1=50+273 # initial temperature in kelvin\n",
+ "T2=700+273 # final temperature in kelvin\n",
+ "Q=50 # heat added in kJ\n",
+ "R=287 # constant for air\n",
+ "Cp=1 # constant for specific heat of air\n",
+ "\n",
+ "# using the ideal gas equation\n",
+ "\n",
+ "m=P*1000*V/(R*T1) # mass of air in kg\n",
+ "W=Q-(m*Cp*(T2-T1)) # work done from first law\n",
+ "# result\n",
+ "print \"The Paddle work is \",round(W,2),\" kJ\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Paddle work is -6.09 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.9,PG-77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "V1=2 # initial volume in m^3\n",
+ "V2=0.2 # final volume in m^3\n",
+ "T1=20+273 # temperature in kelvin\n",
+ "P=200 # pressure in kPa\n",
+ "R=0.287 # constant for air\n",
+ "gama=1.4 # polytropic index for air\n",
+ "Cv=0.717 # specific heat at constant volume for air\n",
+ "\n",
+ "#solution\n",
+ "\n",
+ "#using the ideal gas equation\n",
+ "m=(P*V1)/(R*T1) # mass in kg\n",
+ "# process is adiabatic thus\n",
+ "T2=T1*((V1/V2)**(gama-1)) # final temperature\n",
+ "\n",
+ "W=-m*Cv*(T2-T1) # work from first law\n",
+ "print \"The Work is \",int(W),\" kJ\"\n",
+ "# solution is approximated in textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Work is -1510 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.10:PG-79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "P1=2000.0 # initial pressure in kPa\n",
+ "T1=600.0 # initial temperature in degree celsius\n",
+ "p2=600.0 # final pressure in kPa\n",
+ "T2=200.0 # final temperature in degree celsius\n",
+ "d1=0.06 # diameter of inlet pipe in metre\n",
+ "d2=0.120 # diameter of outlet pipe in metre\n",
+ "V1=20.0 # velocity at inlet in m/s\n",
+ "\n",
+ "# solution\n",
+ "# from superheat table C.3 values are noted\n",
+ "v1=0.1996 # specific volume of superheated steam @ 600*C and 2000 kPa\n",
+ "v2=0.3520 # specific volume of superheated steam @ 200*C and 2000 kPa\n",
+ "rho1=1/v1 # initial density\n",
+ "rho2=1/v2 # final density\n",
+ "A1=(math.pi*d1**2)/4 # inlet area\n",
+ "A2=(math.pi*d2**2)/4 # exit area\n",
+ "\n",
+ "V2=(rho1*A1*V1)/(rho2*A2) # from continuity equation\n",
+ "print \" The Exit velocity is \",round(V2,2),\" m/s \\n\"\n",
+ "\n",
+ "mdot=rho1*A1*V1 # mass flow rate\n",
+ "print\" The mass flow rate is \",round(mdot,3),\" kg/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Exit velocity is 8.82 m/s \n",
+ "\n",
+ " The mass flow rate is 0.283 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.11:PG-82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "P1=8000 # initial pressure in kPa\n",
+ "T1=300 # temperature in degree celsius\n",
+ "P2=2000 # final pressure in kPa\n",
+ "\n",
+ "# solution\n",
+ "h1=2785 # specific enthalpy of steam in kJ/kg @ 8000 kPa and 300 degree celsius from steam table\n",
+ "h2=h1 # throttling process thus enthalpy is constant\n",
+ "T2=212.4 # from steam table as we know enthalpy and pressure\n",
+ "hf2=909 # specific enthalpy of saturated liquid @ 2000 kPa and 300 degree celsius\n",
+ "hg2=2799.5 # specific enthalpy of saturated gas @ 2000 kPa and 300 degree celsius\n",
+ "x2=(h2-hf2)/(hg2-hf2) # quality of steam\n",
+ "\n",
+ "vg2=0.0992 # specific volume of saturated gas @ 2000 kPa and 212.4*c\n",
+ "vf2=0.0012 # specific volume of saturated liquid @ 2000 kPa and 212.4*c\n",
+ "v2=vf2+x2*(vg2-vf2) # from properties of pure substance\n",
+ "\n",
+ "print \"The Final Temperature and Specific volume is \",round(T2,1),\"*C and \",round(v2,3),\" m^3/kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Final Temperature and Specific volume is 212.4 *C and 0.098 m^3/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.12:PG-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "P1=4000 # inlet pressure in kPa\n",
+ "T1=500 # inlet temperature in degree celsius\n",
+ "V1=200 # inlet steam velocity in m/s\n",
+ "d1=0.05 # inlet diameter in 'm'\n",
+ "P2=80 # exit pressure in kPa\n",
+ "d2=0.250 # exit diameter in 'm'\n",
+ "\n",
+ "# solution\n",
+ "v1=0.08643 # specific volume from steam table @ 4000 kPa and 500*C\n",
+ "v2=2.087 # specific volume from steam table @ 80 kPa and 500*C\n",
+ "rho1=1/v1 # density at inlet\n",
+ "rho2=1/v2 # density at outlet\n",
+ "A1=(math.pi*d1**2)/4 # inlet area\n",
+ "A2=(math.pi*d2**2)/4\n",
+ "mdot=rho1*A1*V1 # mass flow rate\n",
+ "mdot=round(mdot,3) # rounding to 3 significant digits\n",
+ "\n",
+ "#now using table C.3\n",
+ "h1=3445 # initial specific enthalpy @ 4000 kPa and 500 *C \n",
+ "h2=2666 # final specific enthalpy @ 80 kPa and 500 *C\n",
+ "WT=-mdot*(h2-h1) # maximum power from first law\n",
+ "print \" The power output is \",round(WT),\" kJ/s \\n \"\n",
+ "\n",
+ "V2=(A1*V1*rho1)/(A2*rho2) \n",
+ "V2=round(V2) # rounding of digits\n",
+ "delKE=mdot*((V2**2)-(V1**2))/2 # the change in kinetic energy\n",
+ "print \" The change in K.E is \",round(delKE),\" J/s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The power output is 3540.0 kJ/s \n",
+ " \n",
+ " The change in K.E is -6250.0 J/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.13:PG-85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "Wdot=10 # pump power in hp\n",
+ "g=9.81 # acceleration due to gravity\n",
+ "rho=1000 # density of water in kg/m^3\n",
+ "d1=0.06 # inlet dimeter in 'm'\n",
+ "d2=0.10 # oulet diamter in 'm'\n",
+ "V1=10 # velocity of water at inlet in m/s\n",
+ "\n",
+ "#solution\n",
+ "A1=math.pi*(d1**2)/4 # area of inlet\n",
+ "A2=math.pi*(d2**2)/4 # area of outlet\n",
+ "V2=A1*V1/A2 # oulet velocity from continuity equation\n",
+ "\n",
+ "mdot=rho*A1*V1 # mass flow rate\n",
+ "delP=((((Wdot*746)/mdot)-((V2**2)-V1**2)/(2*g))*rho)/1000 # change in pressure in kPa\n",
+ "print \"The rise in pressure is \",round(delP),\" kPa\"\n",
+ "# The answer is approximated in textbook , our answer is precise \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rise in pressure is 268.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 80
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.14:PG-85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# initialization of variables\n",
+ "P1=7000.0 # inlet pressure in Pa\n",
+ "T1=420.0 # inlet temperature in degree celsius\n",
+ "V1=400.0 # inlet velocity in m/s\n",
+ "d1=0.200 # inlet diameter in 'm'\n",
+ "V2=700.0 # exit velocity in m/s\n",
+ "k=1.4 # polytopic index for air\n",
+ "Cp=1000 # specific heat at constant pressure for air in j/kg.K\n",
+ "R=287 # specific gas constant for air\n",
+ "\n",
+ "#solution\n",
+ "\n",
+ "#part (a)\n",
+ "T2=(((V1**2)-V2**2)/(2*Cp))+T1 # outlet temperature in degree celsius\n",
+ "print \" The exit temperature is \",round(T2),\" *C \\n\"\n",
+ "\n",
+ "#part (b)\n",
+ "\n",
+ "rho1=P1/(R*(T1+273)) # density at entrance\n",
+ "A1=(math.pi*d1**2)/4\n",
+ "mdot=rho1*A1*V1 # \n",
+ "print \" The mass flow rate is \",round(mdot,3),\" kg/s \\n\"\n",
+ "\n",
+ "# part (c)\n",
+ "\n",
+ "rho2=rho1*(((T2+273)/(T1+273))**(1/(k-1))) # density at exit\n",
+ "# now we find the exit diameter\n",
+ "d2=math.sqrt((rho1*V1*(d1)**2)/(rho2*V2))\n",
+ "print \" The outlet diameter is \",round(d2,3),\" m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The exit temperature is 255.0 *C \n",
+ "\n",
+ " The mass flow rate is 0.442 kg/s \n",
+ "\n",
+ " The outlet diameter is 0.212 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4.15:PG-89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "mdots=100 # mass flow rate of sodium in kg/s\n",
+ "Ts1=450 # inlet temperature of sodium in degree celsius\n",
+ "Ts2=350 # exit temperature of sodium in degree celsius\n",
+ "Cp=1.25 # specific heat of sodium in KJ/kg.*C\n",
+ "Tw1=20 # inlet temperature of water in degree celsius\n",
+ "Pw=5000 # inlet pressure of water in kPa \n",
+ "\n",
+ "# solution\n",
+ "hw1=88.65 # enthalpy from table C.4\n",
+ "hw2=2794 # enthalpy from table C.3\n",
+ "mdotw=(mdots*Cp*(Ts1-Ts2))/(hw2-hw1) # mass flow rate of water\n",
+ "print \" The mass flow rate of water is \",round(mdotw,2),\" kg/s \\n\"\n",
+ "Qdot=mdotw*(hw2-hw1) # heat transfer in kW using energy equation\n",
+ "# result\n",
+ "print \" The rate of heat transfer is \",round(Qdot),\" kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The mass flow rate of water is 4.62 kg/s \n",
+ "\n",
+ " The rate of heat transfer is 12500.0 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 90
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter5.ipynb b/Thermodynamics_Demystified/Chapter5.ipynb
new file mode 100755
index 00000000..a93ee1a4
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter5.ipynb
@@ -0,0 +1,594 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3928ce1341a76de85540172b210e9512b16c46c42e882063576b52bdb907073d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5:The Second Law of Thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.4:PG-112"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "Th=200+273.0 # higher temperture in kelvin \n",
+ "Tl=20+273.0 # lower temperture in kelvin\n",
+ "Wdot=15 # output of engine in kW\n",
+ "\n",
+ "ef=1-(Tl/Th) # carnot efficiency\n",
+ "\n",
+ "Qhdot=Wdot/ef # heat supplied by reservoir\n",
+ "print \" The heat suppled by higher temperature reservoir is\",round(Qhdot,2),\"kW \\n \"\n",
+ "# using forst law\n",
+ "Qldot=Qhdot-Wdot # heat rejected to reservoir\n",
+ "print \" The heat suppled by lower temperature reservoir is\",round(Qldot,2),\"kW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The heat suppled by higher temperature reservoir is 39.42 kW \n",
+ " \n",
+ " The heat suppled by lower temperature reservoir is 24.42 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.5:PG-113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "TL1=-5+273.0 # lower temperature in kelvin for first situation\n",
+ "TH=20+273.0 # higher temperature in kelvin\n",
+ "TL2=-25+273.0 #lower temperature in kelvin for second situation\n",
+ "\n",
+ "#solution\n",
+ "\n",
+ "COP1=TL1/(TH-TL1) # carnot refrigerator COP for first situation\n",
+ "# Let Heat be 100 kJ\n",
+ "QL=100.0 # assumption\n",
+ "W1=QL/COP1 # work done for situation 1\n",
+ "\n",
+ "# for situation 2\n",
+ "COP2=TL2/(TH-TL2) # COP carnot for second situation\n",
+ "W2=QL/COP2 # work done\n",
+ "\n",
+ "Per=(W2-W1)*100/W1 # percentage increase in work done \n",
+ "#result\n",
+ "print\" The perccentage increase in work is \",round(Per,1),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The perccentage increase in work is 94.5 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.6:PG-117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "T1=20+273 # initial temperature in kelvin\n",
+ "P=200 # pressure in kPa\n",
+ "V=2 # volume in m^3\n",
+ "R=0.287 # gas constant for air\n",
+ "W=720 # work done on air in kJ\n",
+ "Cv=0.717 # specific heat at constant volume for air\n",
+ "\n",
+ "#solution\n",
+ "m=(P*V)/(R*T1) # mass of air\n",
+ "\n",
+ "T2=T1+(W/(m*Cv))# final temperature in kelvin\n",
+ "\n",
+ "delS=m*Cv*math.log(T2/T1) # ENROPY CHANGE FOR CONSTANT VOLUME PROCESS\n",
+ "print \" The Entropy increase is\",round(delS,3),\"kJ/K \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Entropy increase is 1.851 kJ/K \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.7:PG-118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=350+273 # initial temperature in kelvin\n",
+ "P1=1200.0 # initial pressure in kPa\n",
+ "P2=140 # final pressure in kPa\n",
+ "k=1.4 # polytopic index for air\n",
+ "Cv=0.717 # specific heat at constant volume for air\n",
+ "#solution\n",
+ "T2=T1*((P2/P1)**((k-1)/k)) # reversible adiabatic process relation\n",
+ "\n",
+ "w=-Cv*(T2-T1) # work done by gases in reversible adiabatic process\n",
+ "print\" The work done by gases is\",round(w),\"kJ/kg\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work done by gases is 205.0 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.8:PG-120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "T1=20+273.0 # initial temperature in kelvin\n",
+ "P1=200.0 # pressure in kPa\n",
+ "V=2 #volume in m^3\n",
+ "R=0.287 # gas constant for air\n",
+ "W=-720 # negative as work is done on air in kJ\n",
+ "\n",
+ "#solution\n",
+ "\n",
+ "m=(P1*V)/(R*T1)# mass of air\n",
+ "\n",
+ "u1=209.1 #specific internal energy of air at 293K and 200 kPa from table E.1\n",
+ "s1=1.678 # by interpolation from table E.1\n",
+ "# change in internal energy= work done\n",
+ "u2=-(W/m)+u1 # final internal energy\n",
+ "T2=501.2# final temperature interpolated from table E.1 corresponding to value of u2\n",
+ "s2=2.222 # value of s from table E.3 by interpolating from corresponding to value of u2\n",
+ "\n",
+ "P2=P1*(T2/T1) # final pressure in kPa\n",
+ "\n",
+ "delS=m*(s2-s1-R*math.log(P2/P1))# entropy change\n",
+ "# result\n",
+ "print \" The Entropy increase is\",round(delS,3),\"kJ/K \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Entropy increase is 1.855 kJ/K \n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.9:PG-120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=350+273.0 # initial temperature in kelvin\n",
+ "P1=1200.0 # initial pressure in kPa\n",
+ "P2=140.0 # final pressure in kPa\n",
+ "k=1.4 # polytopic index for air\n",
+ "\n",
+ "#solution\n",
+ "# The values are taken from table E.1\n",
+ "Pr660=23.13# relative pressure @ 660K\n",
+ "Pr620=18.36# relative pressure @ 620K\n",
+ "Pr1=((Pr660-Pr620)*3/40)+Pr620 # relative pressure by interpolation\n",
+ "\n",
+ "Pr2=Pr1*(P2/P1) # relative pressure at state 2\n",
+ "\n",
+ "Pr340=2.149 # relative pressure @ 340K\n",
+ "Pr380=3.176 # relative pressure @ 380K\n",
+ "T2=((Pr2-Pr340)/(Pr380-Pr340))*40+340 # interpolating final temperature from table E.1\n",
+ "\n",
+ "# now interpolating u1 AND u2 from table E.1\n",
+ "u620=451.0# specific internal energy @ 620k\n",
+ "u660=481.0# specific internal energy @ 660k\n",
+ "u1=(u660-u620)*(3/40.0)+u620 # initial internal energy\n",
+ "\n",
+ "u380=271.7 #specific internal energy @ 380k\n",
+ "u340=242.8 #specific internal energy @ 340k\n",
+ "u2=((Pr2-Pr340)/(Pr380-Pr340))*(u380-u340)+u340 # final internal energy\n",
+ "\n",
+ "w=u2-u1 # work= change in internal energy\n",
+ "print \" The work done by gas is\",int(w),\"kJ/kg\"\n",
+ "# The answer is slightly different as values are approximated in textbook\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The work done by gas is -209 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.10:PG-123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=300+273.0 # initial temperature in kelvin\n",
+ "P1=600 # initial pressure in kPa\n",
+ "P2=40 # final pressure in kPa\n",
+ "\n",
+ "#solution\n",
+ "#please refer to steam table for values\n",
+ "v1=0.4344 # specific volume from steam table @ 573k and 600 kPa\n",
+ "v2=v1 # rigid container\n",
+ "u1=2801.0 # specific internal energy from steam table @ 573k and 600 kPa\n",
+ "s1=7.372 # specific entropy @ 600 kPa and 573 K\n",
+ "\n",
+ "vg2=0.4625 # specific volume of saturated vapour @ 40 kPa and 573 K\n",
+ "vf2=0.0011 # specific volume of saturated liquid @ 40 kPa and 573 K\n",
+ "sf2=1.777 # specific entropy of saturated liquid @ 40 kPa and 573 K\n",
+ "sg2=5.1197 # specific entropy of saturated vapour @ 40 kPa and 573 K\n",
+ "x=(v2-vf2)/(vg2-vf2)# quality of steam using pure substance relation\n",
+ "\n",
+ "s2=sf2+x*sg2 # overall specific enthalpy at quality 'x' \n",
+ "delS=s2-s1 # entropy change\n",
+ "print\" The entropy change is\",round(delS,3),\"kJ/kg.K \\n \"\n",
+ "\n",
+ "#heat transfer\n",
+ "uf2=604.3 #specific internal energy of saturated liquid @ 40 kPa and 573 K\n",
+ "ug2=1949.3 #specific internal energy of saturated vapour @ 40 kPa and 573 K\n",
+ "u2=uf2+x*ug2 #specific internal energy @ quality x\n",
+ "q=u2-u1 # heat transfer in kJ/kg from first law as W=0\n",
+ "print \" The heat transfer is\",int(q),\"kJ/kg\"\n",
+ "# result\n",
+ "# the answers are approximated in textbook but here they are precise thus minute difference is there"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The entropy change is -0.787 kJ/kg.K \n",
+ " \n",
+ " The heat transfer is -366 kJ/kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.11:PG-126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "v1=0.5 # assumed as air is filled in half of the tank\n",
+ "v2=1.0 # final volume when partition is removed\n",
+ "R=0.287 # gas contant for air\n",
+ "#solution\n",
+ "q=0 # heat transfer is zero\n",
+ "w=0 # work done is zero\n",
+ "# temperatue is constant as no change in internal energy by first law\n",
+ "dels=R*math.log(v2/v1)# change in entropy when temperature is constant\n",
+ "print \"The change in specific entropy is\",round(dels,3),\"kJ/kg.K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in specific entropy is 0.199 kJ/kg.K\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.12:PG-127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=400+273.0 # initial temperature in kelvin\n",
+ "P=600 # pressure in kPa\n",
+ "Tsurr=25+273.0 # surrounding temperature in K\n",
+ "m=2 # mass of steam in kg\n",
+ "\n",
+ "#solution\n",
+ "#please refer to steam table for values\n",
+ "s1=7.708 # specific entropy of steam @ 400 degree celsius and 0.6 MPa\n",
+ "s2=1.9316# specific enropy of condensed water @ 25 degree celsius and 0.6 MPa\n",
+ "delSsys=m*(s2-s1) # entropy change in system i.e of steam\n",
+ "\n",
+ "h1=3270 # specific enthalpy of steam @ 400 degree celsius and 0.6 MPa\n",
+ "h2=670.6#specific enropy of condensed water @ 25 degree celsius and 0.6 MPa\n",
+ "\n",
+ "Q=m*(h1-h2)# heat transfer at constant pressure\n",
+ "delSsurr=Q/Tsurr # entropy change in surroundings\n",
+ "\n",
+ "sigma=delSsys+delSsurr # net entropy change\n",
+ "\n",
+ "print \"The net entropy production is\",round(sigma,1),\"kJ/K\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net entropy production is 5.9 kJ/K\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.13:PG-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=600+273 # initial temperature in kelvin\n",
+ "P1=2 # initial pressure in MPa\n",
+ "P2=10 # final pressure in kPa\n",
+ "mdot=2 # mass flow rate in kg/s\n",
+ "\n",
+ "#solution\n",
+ "#please refer to steam table for values\n",
+ "h1=3690 # specific enthalpy in kJ/kg @ 2MPa and 600 degree celsius\n",
+ "s1=7.702 #specific entropy in kJ/kg.K @ 2MPa and 600 degree celsius\n",
+ "s2=s1 # Reversible adiabatic process thus entropy is constant\n",
+ "sf2=0.6491 #specific entropy of saturated liquid from steam table @ 10 kPa\n",
+ "sg2=8.151 #specific entropy of saturated vapour from steam table @ 10 kPa\n",
+ "\n",
+ "x2=(s2-sf2)/(sg2-sf2) # quality of steam at turbine exit\n",
+ "\n",
+ "h2f=191.8 #specific enthalpy of saturated liquid from steam table @ 10 kPa\n",
+ "h2g=2584.8 #specific enthalpy of saturated vapour from steam table @ 10 kPa\n",
+ "h2=h2f+x2*(h2g-h2f) # specific enthalpy @ quality 'x' \n",
+ "\n",
+ "WdotT=mdot*(h1-h2)# from work done in adiabatic process\n",
+ "# result\n",
+ "print \" The maximum power output is\",int(WdotT),\"kJ/s\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum power output is 2496 kJ/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.14:PG-130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "T1=600+273 # initial temperature in kelvin\n",
+ "P1=2 # initial pressure in MPa\n",
+ "P2=10 # final pressure in kPa\n",
+ "mdot=2 # mass flow rate in kg/s\n",
+ "EffT=0.8 # efficiency of turbine \n",
+ "WdotT=2496 # theoritical power of turbine in kW\n",
+ "\n",
+ "#solution\n",
+ "Wdota=EffT*WdotT # actual power output of turbine\n",
+ "h1=3690 # specific enthalpy @ 2MPa and 600 degree celsius\n",
+ "h2=h1-(Wdota/mdot) # final enthalpy from first law of thermodynamics\n",
+ "\n",
+ "T2=((h2-2688)/(2783-2688))*(150-100)+100 # by interpolating from steam table @ P2= 10 kPa, h2=2770 \n",
+ "s2=8.46 # final specific entropy by interpolation from steam table\n",
+ "\n",
+ "print \"The temperature by interpolation is\",round(T2),\" degree celsius \\n\"\n",
+ "print \"The final entropy by interpolation is\",round(s2,2),\"kJ/kg.K\"\n",
+ "# The temperature and entropy are found by interpolation from steam table and cannot be shown here.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature by interpolation is 102.0 degree celsius \n",
+ "\n",
+ "The final entropy by interpolation is 8.46 kJ/kg.K\n"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5.15:PG-131"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "T2=250.0 # temperature of steam in degree celsius\n",
+ "mdot2=0.5 # mass flow rate of steam in kg/s\n",
+ "T1=45 # temperature of water in degree celsius\n",
+ "mdot1=4 # mass flow rate of water in kg/s\n",
+ "P=600.0 # pressure in kPa\n",
+ "\n",
+ "\n",
+ "mdot3=mdot1+mdot2 # by mass balance\n",
+ "\n",
+ "h2=2957 # specific enthalpy in kJ/kg of steam @ 600 Kpa from steam table\n",
+ "h1=188.4 # specific enthalpy in kJ/kg of water @ 600 Kpa from steam table\n",
+ "\n",
+ "h3=(mdot1*h1+mdot2*h2)/mdot3 # specific enthalpy in kJ/kg at exit\n",
+ "\n",
+ "# by interpolation from saturated steam table\n",
+ "T3=(h3-461.3)*10/(503.7-461.3)+110 # temperature of mixture\n",
+ "\n",
+ "sf3=1.508 # entropy of saturated liquid in kJ/kg.K at 600Kpa and T3 temperature from steam table\n",
+ "s3=sf3 # by interpolating sf\n",
+ "s2=7.182 # entropy of superheated steam in kJ/kg.K @ 600Kpa from steam table\n",
+ "s1=0.639 # entropy of entering water in kJ/kg.K at T= 45 degree celsius\n",
+ "\n",
+ "sigmaprod=mdot3*s3-mdot2*s2-mdot1*s1\n",
+ "# result\n",
+ "print \"The rate of entropy production is\",round(sigmaprod,3),\"kW/K \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of entropy production is 0.639 kW/K \n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter6.ipynb b/Thermodynamics_Demystified/Chapter6.ipynb
new file mode 100755
index 00000000..4f406b7e
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter6.ipynb
@@ -0,0 +1,704 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e92a3a85838e85e036e1c07a34c6c3996a0867f06470b08d471a9b83e142be32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6:Power Vapor Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.1:PG-146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "# Please refer to the given figure in question for quantities\n",
+ "P2=2*1000 #higher pressure converted in in kPa\n",
+ "P1=10 # lower pressure in kPa\n",
+ "rho=1000 # density of water in Kg/m^3\n",
+ "h1=192 # enthalpy at state 1 in kJ/kg\n",
+ "h3=3248 # enthalpy at state 3 in kJ/kg\n",
+ "s3=7.1279# entropy at state 3 in kJ/kg.K\n",
+ "\n",
+ "#calculation of pump work\n",
+ "wp=(P2-P1)/rho # pump work given by equation 4.56 in textbook\n",
+ "h2=h1+wp # by enrgy balance b/w state 1 and 2\n",
+ "q=h3-h2 # Heat input from 2 to 3\n",
+ "\n",
+ "s4=s3 # isentropic process\n",
+ "sf=0.6491 # entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.151 # entropy of saturated vapour @10 kPa from steam table\n",
+ "x=(s4-sf)/(sg-sf)# from property of pure substance\n",
+ "hf=191.8 #enthalpy of saturated liquid @10 kPa from steam table\n",
+ "hg=2584 # enthalpy of saturated vapour @10 kPa from steam table\n",
+ "h4=hf+x*(hg-hf)# enthalpy @ state 4\n",
+ "\n",
+ "wt=h3-h4 # turbine work\n",
+ "\n",
+ "efficiency=(wt-wp)/q # efficiency of power cycle\n",
+ "print \" The Efficiency is\",round(efficiency,4),\" or\",round(efficiency*100,1),\"%\"\n",
+ "# the answer is correct within limits\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.3238 or 32.4 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.2:PG-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "# Please refer to the given figure of question 6.1 for quantities\n",
+ "effi1=0.323 #old efficiency\n",
+ "P2=4*1000 #higher pressure converted in in kPa\n",
+ "P1=10 # lower pressure in kPa\n",
+ "rho=1000 # density of water in Kg/m^3\n",
+ "h1=192 # enthalpy at state 1 in kJ/kg\n",
+ "h3=3214 # enthalpy at state 3 i.e @400 degree celsius and 4MPa in kJ/kg\n",
+ "s3=6.769# entropy at state 3 i.e @400 degree celsius and 4MPa in kJ/kg.K\n",
+ "\n",
+ "s4=s3 # insentropic process\n",
+ "sf=0.6491 # entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.151 # entropy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "x=(s4-sf)/(sg-sf)# quality of steam\n",
+ "\n",
+ "hf=192 #enthalpy of saturated liquid @10 kPa from steam table\n",
+ "hg=2584 # enthalpy of saturated vapour @10 kPa from steam table\n",
+ "h4=hf+x*(hg-hf)# enthalpy @ state 4\n",
+ "h2=h1 # isenthalpic process\n",
+ "qb=h3-h2 # heat addition\n",
+ "\n",
+ "wt=h3-h4 # turbine work\n",
+ "\n",
+ "effi2=(wt)/qb # efficiency of power cycle\n",
+ "\n",
+ "print \" The Efficiency is\",round(effi2,3),\" or\",round(effi2*100),\"% \\n\"\n",
+ "\n",
+ "perincrease=((effi2-effi1)/effi1)*100 \n",
+ "\n",
+ "print \" The % increase in Efficiency is\",round(perincrease,2),\" \\n\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.354 or 35.0 % \n",
+ "\n",
+ " The % increase in Efficiency is 9.69 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.3:PG-149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "# Please refer to fig of question 6.1 for quantities\n",
+ "effi1=0.323 #old efficiency\n",
+ "P2=2*1000 #higher pressure converted in in kPa\n",
+ "P1=10 # lower pressure in kPa\n",
+ "rho=1000 # density of water in Kg/m^3\n",
+ "T2=600# max temperature of cycle in degree celsius\n",
+ "h1=192 # enthalpy at state 1 in kJ/kg\n",
+ "h3=3690 # enthalpy at state 3 in kJ/kg, 600*C and 2MPa pressure\n",
+ "s3=7.702# entropy at state 3 in kJ/kg.K, 600*C and 2MPa pressure\n",
+ " \n",
+ "s4=s3# isentropic process\n",
+ "sf=0.6491 # entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.151 # entropy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "x=(s4-sf)/(sg-sf)# quality of steam\n",
+ "\n",
+ "hf=192 #enthalpy of saturated liquid @10 kPa from steam table\n",
+ "hg=2584 # enthalpy of saturated vapour @10 kPa from steam table\n",
+ "h4=hf+x*(hg-hf)# enthalpy @ state 4\n",
+ "\n",
+ "h2=h1 # isenthalpic process\n",
+ "qb=h3-h2 # heat addition\n",
+ "\n",
+ "wt=h3-h4 # turbine work\n",
+ "\n",
+ "effi2=(wt)/qb # efficiency of power cycle\n",
+ "print \" The Efficiency is\",round(effi2,3),\" or\",round(effi2*100),\"% \\n\"\n",
+ "perincrease=((effi2-effi1)/effi1)*100 \n",
+ "print \" The % increase in Efficiency is\",round(perincrease,2),\" \\n\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.357 or 36.0 % \n",
+ "\n",
+ " The % increase in Efficiency is 10.56 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.4:PG-150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "# Please refer to fig of question 6.1 for quantities\n",
+ "effi1=0.323 #old efficiency\n",
+ "P2=2*1000 #higher pressure converted in in kPa\n",
+ "P1=4 # condenser pressure in kPa\n",
+ "rho=1000 # density of water in Kg/m^3\n",
+ "h1=192 # enthalpy at state 1 in kJ/kg\n",
+ "h3=3248 # enthalpy at state 3 in kJ/kg\n",
+ "s3=7.1279# entropy at state 3 in kJ/kg.K\n",
+ "\n",
+ "s4=s3 # isentropic process \n",
+ "\n",
+ "sf=0.4225 # entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.4754 # entropy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "x=(s4-sf)/(sg-sf)# from property of pure substance\n",
+ "\n",
+ "hf=121 #enthalpy of saturated liquid @4 kPa from steam table\n",
+ "hg=2554 # enthalpy of saturated vapour @4 kPa from steam table\n",
+ "h4=hf+x*(hg-hf)# enthalpy @ state 4h1=h2 # isenthalpic process\n",
+ "h2=h1 # isenthalpic process\n",
+ "qb=h3-h2 # heat addition\n",
+ "\n",
+ "wt=h3-h4 # turbine work\n",
+ "\n",
+ "effi2=(wt)/qb # efficiency of power cycle\n",
+ "print \" The Efficiency is\",round(effi2,4),\" or\",round(effi2*100),\"% \\n\"\n",
+ "perincrease=((effi2-effi1)/effi1)*100 \n",
+ "print \" The % increase in Efficiency is\",round(perincrease,2),\" \\n\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.3603 or 36.0 % \n",
+ "\n",
+ " The % increase in Efficiency is 11.55 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.5:PG-152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "P2=2*1000 #higher pressure converted in in kPa\n",
+ "P1=10 # lower pressure in kPa\n",
+ "h1=192.0 # enthalpy at 10 kPa in kJ/kg\n",
+ "h3=3248.0 # enthalpy @ state 3 in kJ/kg from table C.3\n",
+ "s3=7.128 # entropy @ state 3 in kJ/kg.K from table C.3\n",
+ "s4=s3 # isentropic process\n",
+ "\n",
+ "h2=h1 #isenthalpic process\n",
+ "h4=((s4-7.038)/(7.233-7.038))*(3056-2950)+2950 #using adjacent values for \n",
+ "#interpolation from table C.3 \n",
+ "h5=3267.0 # enthalpy at 800 kPa and $00 degree celsius\n",
+ "s5=7.572 # entropy at 800 kPa and $00 degree celsius\n",
+ "\n",
+ "s6=s5 # isentropic process\n",
+ "sf=0.6491# entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.151 # entropy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "x=(s6-sf)/(sg-sf)# quality of steam\n",
+ "\n",
+ "hf=192.0 #enthalpy of saturated liquid @10 kPa from steam table\n",
+ "hg=2585.0 # enthalpy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "h6=hf+x*(hg-hf)# enthalpy @ state 6\n",
+ "\n",
+ "# we now calculate energy input\n",
+ "qb=(h5-h4)+(h3-h2)# heat interaction\n",
+ "\n",
+ "# we now calculate work output\n",
+ "wt=(h5-h6)+(h3-h4)# turbine work\n",
+ "\n",
+ "eff=(wt)/qb # efficiency of power cycle\n",
+ "print\" The Efficiency is\",round(eff,3),\" or\",round(eff*100,2),\"%\"\n",
+ "\n",
+ "# // The anwer is different in textbook as there the intermediate values are approximated while in python the calculations are precise \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.336 or 33.57 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.6:PG-155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# initialization of variables\n",
+ "\n",
+ "# Please refer to fig of question 6.1 for quantities\n",
+ "\n",
+ "effi1=0.357 #efficiency from example 6.3\n",
+ "P2=2*1000.0 #higher pressure converted in in kPa\n",
+ "P1=10.0 # lower pressure in kPa\n",
+ "rho=1000.0 # density of water in Kg/m^3\n",
+ "T2=600.0 # max temperature of cycle in degree celsius\n",
+ "h1=192.0 # enthalpy at state 1 in kJ/kg\n",
+ "h3=3690.0 # enthalpy at state 3 in kJ/kg, 600*C and 2MPa pressure\n",
+ "h4=2442.0 # enthalpy from example 6.3\n",
+ "h6=505.0 # specific enthalpy @ 200 kPa from steam table\n",
+ "h7=h6 # isenthalpic process\n",
+ "s3=7.702# entropy at state 3 in kJ/kg.K, 600*C and 2MPa pressure\n",
+ "\n",
+ "h2=h1 # isenthalpic process\n",
+ "s5=s3 # isentropic process\n",
+ "h5=(s3-7.509)*(2971-2870)/(7.709-7.509)+2870 # interpolationg from steam table 2 200 kPa using s5=s3= 7.702 kJ/kg.\n",
+ "\n",
+ "m6=1.0 # let mass of steam =1 Kg\n",
+ "m5=(h6-h2)*(m6)/(h5-h2) \n",
+ "m2=m6-m5 # conservation of mass\n",
+ "\n",
+ "wt=h3-h5+(h5-h4)*m2 # work done by turbine\n",
+ "qb=h3-h7 # heat given to bolier\n",
+ "effi2=(wt)/qb # efficiency of power cycle\n",
+ "print \" The Efficiency is\",round(effi2,4),\" or\",round(effi2*100),\"% \\n\"\n",
+ "perincrease=((effi2-effi1)/effi1)*100 \n",
+ "print \" The % increase in Efficiency is\",round(perincrease,2),\" \\n\"\n",
+ "\n",
+ "# The anwer is different in textbook as there the intermediate values are approximated while in python the calculations are precise \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.3732 or 37.0 % \n",
+ "\n",
+ " The % increase in Efficiency is 4.55 \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.7:PG-156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "P2=2*1000 #higher pressure converted in kPa\n",
+ "P1=10 # lower pressure in kPa\n",
+ "h1=192 # enthalpy at 10 kPa in kJ/kg\n",
+ "h3=3248 # enthalpy @ state 3 in kJ/kg from table C.3\n",
+ "s3=7.128 # entropy @ state 3 in kJ/kg.K from table C.3\n",
+ "\n",
+ "s4=s3 # isentropic process\n",
+ "\n",
+ "h4=((s4-7.038)/(7.233-7.038))*(3056-2950)+2950 #using adjacent values for \n",
+ "#interpolation from table C.3 \n",
+ "h5=3267 # enthalpy at 800 kPa and $00 degree celsius\n",
+ "s5=7.572 # entropy at 800 kPa and $00 degree celsius\n",
+ "\n",
+ "s6=s5 # isentropic process\n",
+ "sf=0.6491# entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.151 # entropy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "x=(s6-sf)/(sg-sf)# quality of steam\n",
+ "\n",
+ "hf=192 #enthalpy of saturated liquid @10 kPa from steam table\n",
+ "hg=2585 # enthalpy of saturated vapour @10 kPa from steam table\n",
+ "\n",
+ "h6=hf+x*(hg-hf)# enthalpy @ state 6\n",
+ "h7=721 # enthalpy of saturated liquid @800 kPa from steam table\n",
+ "h8=h7 # isenthalpic process\n",
+ "h2=h1 # isenthalpic process\n",
+ "\n",
+ "m8=1 # let mass of steam =1 Kg\n",
+ "m4=(h8-h2)*(m8)/(h4-h2)\n",
+ "m2=m8-m4 # conservation of mass\n",
+ "\n",
+ "wt=h3-h4+(h5-h6)*m2 # work done by turbine\n",
+ "qb=h3-h8+(h5-h4)*m2 # heat given to bolier\n",
+ "\n",
+ "effi=(wt)/qb # efficiency of power cycle\n",
+ "# result\n",
+ "print \" The Efficiency is\",round(effi,3),\" or\",round(effi*100,2),\"%\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.347 or 34.7 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.8:PG-159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "\n",
+ "# for rankine cycle refer to fig 6.9\n",
+ "\n",
+ "effiT=0.8 # turbine efficiency\n",
+ "P2=2*1000 # higher pressure converted in kPa\n",
+ "P1=10 # lower pressure in kPa\n",
+ "h1=192 # enthalpy at 10 kPa in kJ/kg\n",
+ "h3=3690 # enthalpy of superheated steam @ 2 MPa from steam table in kJ/kg\n",
+ "s3=7.702 #entropy of superheated steam @ 2 MPa from steam table in kJ/kg.K\n",
+ "# state 4' is repsresented by '41'\n",
+ "h2=h1 #isenthalpic process\n",
+ "s41=s3 # entropy is constant\n",
+ "sf=0.6491 # entropy of saturated liquid @10 kPa from steam table\n",
+ "sg=8.151 # entropy of saturated vapour @10 kPa from steam table\n",
+ "x=(s41-sf)/(sg-sf)# from property of pure substance\n",
+ "\n",
+ "hf=191.8 #enthalpy of saturated liquid @10 kPa from steam table\n",
+ "hg=2584 # enthalpy of saturated vapour @10 kPa from steam table\n",
+ "h41=hf+x*(hg-hf)# enthalpy @ state 41\n",
+ "\n",
+ "wa=effiT*(h3-h41)# turbine efficiency =(actual work)/(isentropic work)\n",
+ "\n",
+ "qb=h3-h2 # heat supplied\n",
+ "\n",
+ "effi=(wa)/qb # efficiency of power cycle\n",
+ "print\" The Efficiency is\",round(effi,3),\" or\",round(effi*100,1),\"%\"\n",
+ "\n",
+ "h4=h3-wa # adiabatic process\n",
+ "\n",
+ "# now using interpolation for superheated steam @ 10 kPa\n",
+ "T4=(h4-2688)*(150-100)/(2783-2688)+100\n",
+ "\n",
+ "print \"\\n The Temperature from interpolation comes out to be\",int(T4),\" degree celsius\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The Efficiency is 0.286 or 28.6 %\n",
+ "\n",
+ " The Temperature from interpolation comes out to be 101 degree celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.9:PG-162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#initialization of variables\n",
+ "\n",
+ "# refer to fig 6.10c\n",
+ "\n",
+ "mdot=0.6 # mass flow rate of refrigerant in kg/sec\n",
+ "T1=-24 # evaporator temperature in degree celsius\n",
+ "T2=39.39 # condenser temperature in degree celsius\n",
+ "h1=232.8 # enthalpy of saturated R134a vapour @ -24 degree celsius from table D.1\n",
+ "s1=0.9370 # entropy of saturated R134a vapour @ -24 degree celsius from table D.1\n",
+ "h3=105.3 # enthalpy of saturated R134a liquid @ -24 degree celsius from table D.2\n",
+ "h4=h3 # isenthalpic process\n",
+ "\n",
+ "# interpolating enthalpy from table D.3 @ 39.39 degree celsius\n",
+ "h2=(s1-0.9066)*(280.19-268.68)/(0.9428-0.9066)+268.68\n",
+ "QdotE=mdot*(h1-h4) # heat transfer rate\n",
+ "WdotC=mdot*(h2-h1)# power given to compressor\n",
+ "\n",
+ "COP=QdotE/WdotC # coefficient of performance\n",
+ "\n",
+ "Hp=(WdotC/0.746)/(QdotE/3.52) #calculating Horsepower required per Ton\n",
+ "\n",
+ "print \"The rate of refrigeration is\",round(QdotE,2),\"kJ/s \\n \"\n",
+ "print \"The coefficient of performance is\",round(COP,2),\"\\n \"\n",
+ "print \"The rating in horsepower per ton is\",round(Hp,3),\" hp\\n \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of refrigeration is 76.5 kJ/s \n",
+ " \n",
+ "The coefficient of performance is 2.8 \n",
+ " \n",
+ "The rating in horsepower per ton is 1.686 hp\n",
+ " \n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.10:PG-163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#initialization of variables\n",
+ "# refer to fig 6.10c\n",
+ "effi=0.8 # compressor efficiency\n",
+ "mdot=0.6 # mass flow rate of refrigerant in Kg/sec\n",
+ "T4=-24 # temperature of evaporator\n",
+ "T2=39.39 # temperature of condensor\n",
+ "T1=-20.0 # supeheating temperature\n",
+ "T3=40 # subcooling temperature\n",
+ "h3=106.2 # enthalpy of liquid R-134a @ 40 degree celsius from table D.1\n",
+ "h4=h3 # isenthalpic process\n",
+ "h1=236.5 # enthalpy of superheated R-134a @ 0.10 MPa and -20 degree celsius from table D.3\n",
+ "s1=0.960 #entropy of superheated R-134a @ 0.10 MPa and -20 degree celsius from table D.3 \n",
+ "\n",
+ "s2dash=s1 # isentropic process\n",
+ "\n",
+ "# using interpolation from table D.3 @ 1.0 MPa for s2dash=0.960 \n",
+ "h2dash=(s2dash-0.9428)*(291.36-280.19)/(0.9768-0.9428)+280.19\n",
+ "\n",
+ "h2=(h2dash-h1)/(effi)+h1 # by definition of compressor efficiency\n",
+ "\n",
+ "QdotE=mdot*(h1-h4)#heat transfer rate power given to compressor\n",
+ " \n",
+ "wdotc=mdot*(h2-h1)# power given to compressor\n",
+ "\n",
+ "COP=QdotE/wdotc # coefficient of performance\n",
+ "\n",
+ "print \"The rate of refrigeration is\",round(QdotE,1),\"kJ/s \\n \"\n",
+ "\n",
+ "print \"The coefficient of performance is\",round(COP,2),\"\\n \"\n",
+ "# The value of Wdotc is shown wrong in the textbook. It should be multiplied by mass flow rate\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rate of refrigeration is 78.2 kJ/s \n",
+ " \n",
+ "The coefficient of performance is 2.11 \n",
+ " \n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6.11:PG-165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# solution\n",
+ "#initialization of variables\n",
+ "# refer to fig 6.10c\n",
+ "\n",
+ "QdotC=300 #heating Load in KWh or heat rejected by condensor\n",
+ "T1=-12 # evaporator temperature in degree celsius\n",
+ "P2=800 # condensor pressure in kPa \n",
+ "h1=240 # specific enthalpy of saturated R-134a vapour @ -12 degree celsius from table D.1\n",
+ "s1=0.927 # specific entropy of saturated R-134a vapour @ -12 degree celsius from table D.1\n",
+ "s2=s1 # isentropic process\n",
+ "h3=93.4 #specific enthalpy of saturated R-134a liquid @ 800 kPa from tableD.2\n",
+ "\n",
+ "# extrapolating enthalpy from table D.2 @ 0.8 MPa for s=0.927\n",
+ "h2=273.7-(0.9374-s2)*(284.4-273.7)/(0.9711-0.9374)\n",
+ "\n",
+ "# QdotE=mdot*(h1-h4) is heat transfer rate\n",
+ "mdot=QdotC/(h2-h3)# mass flow rate\n",
+ "\n",
+ "WdotC=mdot*(h2-h1)# power given to compressor\n",
+ "\n",
+ "#part(a)\n",
+ "COP=QdotC/WdotC # coefficient of performance\n",
+ "print \"The coefficient of performance is\",round(COP,2),\"\\n \"\n",
+ "\n",
+ "#part(b)\n",
+ "Cost=WdotC*0.07 # cost of electricity\n",
+ "print \"The cost of electricity is $\",round(Cost,3),\"/hr \\n\"\n",
+ "\n",
+ "#part(c)\n",
+ "costgas=(300*3600*0.50)/100000 # cost of gas\n",
+ "print \"The cost of gas is $\",round(costgas,2),\"/hr \\nThus heat pump is better \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The coefficient of performance is 5.82 \n",
+ " \n",
+ "The cost of electricity is $ 3.607 /hr \n",
+ "\n",
+ "The cost of gas is $ 5.4 /hr \n",
+ "Thus heat pump is better \n"
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 61
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter7.ipynb b/Thermodynamics_Demystified/Chapter7.ipynb
new file mode 100755
index 00000000..0c094e5b
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter7.ipynb
@@ -0,0 +1,624 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:af523f2f43fc72634028758c968b85e1c9f7441276d72a4c6af9da09cd0eee6e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7:Power and Refrigeration Gas Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.1:PG-175"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "r=12 # compression ratio\n",
+ "k=1.4 # polytropic index for air\n",
+ "p1=200.0 # pressure at state 1 in kPa\n",
+ "p3=10000.0 # pressure at state 3 in kPa\n",
+ "\n",
+ "c=100/(r-1) # clearance in percentage\n",
+ "print \"The percent clearance is\",round(c,2),\"% \\n\"\n",
+ "v3=100.0 # let us assume v3=100 m^3 for calculations\n",
+ "p2=p1*(r**k) # polytopic process pressure relation\n",
+ "p4=p3*(1/(r**k))# polytropic process pressure relation\n",
+ "w34=v3*(r*p4-p3)/(1-k) # polytropic work done in process 3 to 4\n",
+ "v2=v3 # constant volume process\n",
+ "w12=v2*(p2-r*p1)/(1-k)\n",
+ "wcycle=w12+w34 # total work in cycle\n",
+ " # now equating the polytropic work calculated to work by MEP\n",
+ "MEP=wcycle/(r*v2-v2) # as work = pressure*change in volume\n",
+ "print \"The MEP is\",round(MEP),\" kPa\" \n",
+ "# The solution is wrong in textbook as calculation for P2 is wrong \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The percent clearance is 9.0 % \n",
+ "\n",
+ "The MEP is 503.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.2:PG-179"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "r=10.0 # compression ratio\n",
+ "k=1.4 # polytropic index for air\n",
+ "R=0.287 # specific gas constant for air\n",
+ "Cv=0.717 # specific heat at constant volume\n",
+ "Wnet=1000 # net work output in kJ/kg\n",
+ "T1=227+273.0 # low air temperaure in kelvin\n",
+ "p1=200.0 # low pressure in kPa\n",
+ "\n",
+ "effi=1-(1/r**(k-1)) # thermal efficeiency \n",
+ "print \"The maximum possible thermal efficiency is\",round(effi*100,1),\"% \\n\"\n",
+ "\n",
+ "T2=T1*(r)**(k-1) # isentropic process temperature relation\n",
+ "\n",
+ "T4=((Wnet/Cv)+T2-T1)/((r**(k-1))-1) # using expression for work\n",
+ "\n",
+ "T3=T4*(r)**(k-1)\n",
+ "\n",
+ "efficarnot=1-T1/T3\n",
+ "print \"The carnot efficiency is\",round(efficarnot*100),\"%\"\n",
+ "\n",
+ "v1=R*T1/p1 # initial volume \n",
+ "v2=v1/r # from compression ratio\n",
+ "\n",
+ "MEP=Wnet/(v1-v2) # mean effective pressure equation\n",
+ "\n",
+ "print \"The MEP is\",round(MEP),\" kPa\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum possible thermal efficiency is 60.2 % \n",
+ "\n",
+ "The carnot efficiency is 86.0 %\n",
+ "The MEP is 1549.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.3:PG-182"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "\n",
+ "r=18 # compression ratio\n",
+ "k=1.4 # polytropic index for air\n",
+ "R=0.287 # specific gas constant for air\n",
+ "Cv=0.717 # specific heat at constant volume\n",
+ "Cp=1.0 # specific heat at constant pressure\n",
+ "T1=200+273 # lower temperaure in kelvin\n",
+ "P1=200.0 # low pressure in kPa\n",
+ "T3=2000 # higher temperature of cycle in kelvin\n",
+ "\n",
+ "v1=R*T1/P1 # specific volume at state 1 in m^3\n",
+ "v2=v1/r # specific volume after compression in m^3\n",
+ "\n",
+ "T2=T1*(v1/v2)**(k-1) # temperature after compression\n",
+ "P2=P1*(v1/v2)**k # pressure after compression\n",
+ "P3=P2 # diesel cycle\n",
+ "v3=R*T3/P3 # volume at state 3\n",
+ "\n",
+ "rc=v3/v2 # cutoff ratio\n",
+ "\n",
+ "effi=1-((rc**k)-1)/(r**(k-1)*k*(rc-1))\n",
+ "\n",
+ "\n",
+ "print \"The thermal efficiency is\",round(effi*100,1),\"%\"\n",
+ "\n",
+ "v4=v1 # diesel cycle\n",
+ "T4=T3*(v3/v4)**(k-1) # adiabatic process\n",
+ "\n",
+ "qin=Cp*(T3-T2) # using first law \n",
+ "qout=Cv*(T4-T1) # heat rejected \n",
+ "\n",
+ "Wnet=qin-qout # net work\n",
+ "MEP=Wnet/(v1-v2) # expression of mean effective pressure in terms of work\n",
+ "\n",
+ "print \"The MEP is\",round(MEP),\" kPa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thermal efficiency is 66.6 %\n",
+ "The MEP is 515.0 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.4:PG-183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "r=18 # compression ratio\n",
+ "k=1.4 # polytropic index for air\n",
+ "R=0.287 # specific gas constant for air\n",
+ "T1=200+273 # lower temperaure in kelvin\n",
+ "P1=200.0 # low pressure in kPa\n",
+ "T3=2000.0 # higher temperature of cycle in kelvin \n",
+ "\n",
+ "v1=R*T1/P1 # specific volume at state 1 in m^3\n",
+ "#using table E.1\n",
+ "u1=340.0 # specific internal energy in kJ/kg\n",
+ "vr1=198.1 # in m^3/kg\n",
+ "\n",
+ "vr2=vr1*(1/r) # as r=v1/v2\n",
+ "\n",
+ "# now finding corresponding values from table E.1\n",
+ "T2=1310.0 # temperature in kelvin\n",
+ "Pr2=34.0 # pressure in kPa\n",
+ "h2=1408.0 # specific entropy in kJ/kg\n",
+ "v2=v1/18 # volume at state 2\n",
+ "P2=R*T2/v2 # pressure at state 2\n",
+ "\n",
+ "h3=2252.1 # specific enthalpy in kJ/kg from table E.1\n",
+ "vr3=2.776 \n",
+ "P3=P2 # diesel cycle\n",
+ "v3=R*T3/P3 # after compression volume\n",
+ "v4=v1 # isochoric process\n",
+ "vr4=vr3*v4/v3 # isentropic process\n",
+ "# now using Vr4 we read corresponding value from table E.1\n",
+ "T4=915 # final temperature in kelvin\n",
+ "u4=687.5 # specific internal energy at state 4\n",
+ "\n",
+ "qin=h3-h2 # using first law \n",
+ "qout=u4-u1 # heat rejected \n",
+ "\n",
+ "Wnet=qin-qout # net work\n",
+ "effi=100*Wnet/qin # thermal efficiency\n",
+ "print\" The thermal efficiency is\",round(effi,1),\"%\"\n",
+ "\n",
+ "MEP=Wnet/(v1-v2) # expression of mean effective pressure in terms of work\n",
+ "\n",
+ "print \" The MEP is\",round(MEP),\" kPa\"\n",
+ "\n",
+ "erroreffi=(66.6-effi)*100/effi # error in efficiency\n",
+ "errorMEP=(515-MEP)*100/MEP # error in MEP\n",
+ "\n",
+ "print \" The % error in efficiency is\",round(erroreffi,1),\"%\"\n",
+ "print \" The % error MEP is\",round(errorMEP,1),\"% \\n\"\n",
+ "\n",
+ "# the answers are slight different due to approximation in textbook ... here answers are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The thermal efficiency is 58.8 %\n",
+ " The MEP is 775.0 kPa\n",
+ " The % error in efficiency is 13.2 %\n",
+ " The % error MEP is -33.5 % \n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.5:PG-186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "Cp=1.0 # specific heat at constant pressure\n",
+ "k=1.4 # polytropic index for air\n",
+ "T1=25+273.0 # temperature at compressor inlet\n",
+ "T3=850+273.0 # maximum temperature in kelvin\n",
+ "\n",
+ "r=5.0 # pressure ratio=P2/P1 & P4/P3\n",
+ "\n",
+ "T2=T1*(r)**((k-1)/k) # temperature after compression\n",
+ "\n",
+ "T4=T3*(1/r)**((k-1.0)/k) # final temperature\n",
+ "\n",
+ "Wcomp=Cp*(T2-T1) # compressor work\n",
+ "Wturb=Cp*(T3-T4) # turbine work\n",
+ "\n",
+ "BWR=Wcomp/Wturb # back work ratio\n",
+ "\n",
+ "print \" The BWR is\",round(BWR*100,1),\"%\\n\" \n",
+ "\n",
+ "Effi=1-r**((1-k)/k) # thermal efficiency\n",
+ "\n",
+ "print\" The thermal efficiency is\",round(Effi*100,1),\"%\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The BWR is 42.0 %\n",
+ " The thermal efficiency is 36.9 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.6:PG-186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "Cp=1.0 # specific heat at constant pressure\n",
+ "k=1.4 # polytropic index for air\n",
+ "T1=25+273.0 # temperature at compressor inlet\n",
+ "T3=850+273.0 # maximum temperature in kelvin\n",
+ "\n",
+ "r=5.0 # pressure ratio=P2/P1 & P4/P3\n",
+ "efficomp=0.75 # efficiency of compressor\n",
+ "effiturb=0.75 # efficiency of turbine\n",
+ "\n",
+ "T2dash=T1*(r)**((k-1)/k) # temperature after compression\n",
+ "Wcomp=Cp*(T2dash-T1)/efficomp # compressor work\n",
+ "\n",
+ "T4dash=T3*(1/r)**((k-1)/k) # final temperature\n",
+ "Wturb=Cp*(T3-T4dash)*effiturb # turbine work\n",
+ "\n",
+ "BWR=100*Wcomp/Wturb # back work ratio\n",
+ "\n",
+ "print \" The BWR is\",round(BWR,1),\"%\\n\"\n",
+ "\n",
+ "T2=(Wcomp/Cp)+T1 # actual temperature of state 2\n",
+ "\n",
+ "qin=Cp*(T3-T2) # using first law \n",
+ "\n",
+ "Wnet=(Wturb-Wcomp) # net work\n",
+ "\n",
+ "effi=100*Wnet/qin # thermal efficiency\n",
+ "print\" The thermal efficiency is\",round(effi,1),\"%\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The BWR is 74.7 %\n",
+ " The thermal efficiency is 13.2 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.7:PG-191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "Cp=1.0 # specific heat at constant pressure\n",
+ "k=1.4 # polytropic index for air\n",
+ "T1=25+273.0 # temperature at compressor inlet\n",
+ "T3=850+273.0 # maximum temperature in kelvin\n",
+ "\n",
+ "r=5.0 # pressure ratio=P2/P1 & P4/P3\n",
+ "\n",
+ "T2=T1*(r)**((k-1)/k) # temperature after compression\n",
+ "\n",
+ "T4=T3*(1/r)**((k-1)/k) # final temperature\n",
+ "\n",
+ "Wcomp=Cp*(T2-T1) # compressor work\n",
+ "Wturb=Cp*(T3-T4) # turbine work\n",
+ "\n",
+ "BWR=Wcomp/Wturb # back work ratio\n",
+ "\n",
+ "print \" The BWR is\",round(BWR,2),\"\\n\"\n",
+ "\n",
+ "effi=(1-((T1/T4)*(r**((k-1)/k))))# efficiency\n",
+ "print\" The thermal efficiency is\",round(effi*100,1),\"%\"\n",
+ "# The solution in textbook is incorrect due to wrong value of T4 (temperature at state 4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The BWR is 0.42 \n",
+ "\n",
+ " The thermal efficiency is 33.4 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.8:PG-193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "#REFER TO FIG.:7.8\n",
+ "\n",
+ "Cp=1 # specific constant at constant pressure\n",
+ "k=1.4 # polytropic constant for air\n",
+ "T5=25+273.0 # temperature at state 5 in kelvin\n",
+ "T7=850+273.0 # temperature at state 4 in kelvin\n",
+ "T9=350 # exit temperature of water from bolier in kelvin\n",
+ "WdotST=100000.0 # power from steam turbine in Watt\n",
+ "r=5.0 # pressure ratio=P2/P1 & P4/P3\n",
+ "\n",
+ "h1=192.0 # specific enthalpy at 10 Kpa from steam table\n",
+ "h2=h1 # isenthalpic process\n",
+ "h3=3214.0 # specific enthalpy at 4 Mpa and 400 degree celsius from steam table\n",
+ "s3=6.769 # specific entropy at 4 Mpa and 400 degree celsius from steam table\n",
+ "\n",
+ "s4=s3 # isentropic process\n",
+ "sf=0.6491 # specific entropy of saturated liquid at 10 kPa and 45 degree celsiusfrom table C.2\n",
+ "sg=8.1510 # specific entropy of saturated liquid at 10 kPa and 45 degree celsiusfrom table C.2\n",
+ "x4=(s4-sf)/(sg-sf) # quality of steam\n",
+ "\n",
+ "hf=h1 # specific enthalpy of saturated liquid @ 10 Kpa \n",
+ "hg=2584.6\n",
+ "h4=hf+x4*(hg-hf) # specific entropy at state 4\n",
+ "\n",
+ "mdots=WdotST/(h3-h4) # steam mass flow rate from turbine output\n",
+ "\n",
+ "T6=T5*(r**((k-1)/k)) # adiabatic process relation\n",
+ "T8=T7*(1/r**((k-1)/k)) # adiabatic process relation\n",
+ "\n",
+ "# Now using energy balance in boiler\n",
+ "mdota=mdots*(h3-h2)/(Cp*(T8-T9)) # mass flow rate of water\n",
+ "\n",
+ "Wdotturb=mdota*Cp*(T7-T8) # power produced by turbine\n",
+ "\n",
+ "Wdotcomp=mdota*Cp*(T6-T5) # energy needed by compressor\n",
+ "\n",
+ "WdotGT=Wdotturb-Wdotcomp # net turbine work\n",
+ "\n",
+ "Qdotin=mdota*Cp*(T7-T6) # energy input by combustor\n",
+ "\n",
+ "effi=100*(WdotST+WdotGT)/Qdotin # combined efficiency\n",
+ "\n",
+ "print \"The thermal efficiency of the combined cycle is\",round(effi,1),\"%\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thermal efficiency of the combined cycle is 56.4 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.9:PG-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "Cp=1 # specific constant at constant pressure\n",
+ "k=1.4 # polytropic constant for air\n",
+ "r=10.0\n",
+ "T2=-10+273 # temperature at entry of compressor\n",
+ "T4=30+273 # temperature at entry of turbine\n",
+ "\n",
+ "T3=T2*(r**((k-1)/k)) # temperature at state 3 in kelvin\n",
+ "T1=T4*(1/r**((k-1)/k)) # temperature at state 1 in degree celsius\n",
+ "print \"The minimum temperature is\",round(T1-273),\"degree celsius \\n\"\n",
+ "\n",
+ "qin=Cp*(T2-T1) # heat input\n",
+ "Wcomp=Cp*(T3-T2)# compressor work\n",
+ "Wturb=Cp*(T4-T1) # turbine work\n",
+ "\n",
+ "COP=qin/(Wcomp-Wturb) # COP of refrigeration\n",
+ "print\" The COP is\",round(COP,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum temperature is -116.0 degree celsius \n",
+ "\n",
+ " The COP is 1.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.10:PG-196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#solution\n",
+ "# initialization of variables\n",
+ "\n",
+ "Cp=1.0 # specific constant at constant pressure\n",
+ "k=1.4 # polytropic constant for air\n",
+ "r=10.0\n",
+ "T3=-10+273 # temperature at entry of compressor\n",
+ "T6=-40+273 # temperature at entry of turbine\n",
+ "\n",
+ "T5=T3 # heat exchanger\n",
+ "T2=T6 # heat exchanger\n",
+ "\n",
+ "T4=T3*(r**((k-1)/k)) # temperature after compression\n",
+ "T1=T6*(1/r**((k-1)/k)) # temperature after exit from turbine\n",
+ "\n",
+ "print \"The minimum temperature is\",round(T1-273),\"degree celsius \\n\"\n",
+ "\n",
+ "qin=Cp*(T2-T1) # heat input\n",
+ "Wcomp=Cp*(T4-T3)# compressor work\n",
+ "Wturb=Cp*(T6-T1) # turbine work\n",
+ "\n",
+ "COP=qin/(Wcomp-Wturb) # COP of refrigeration\n",
+ "\n",
+ "print\" The COP is\",round(COP,3)\n",
+ "\n",
+ "# the answer is correct within given limits\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum temperature is -152.0 degree celsius \n",
+ "\n",
+ " The COP is 0.848\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter8.ipynb b/Thermodynamics_Demystified/Chapter8.ipynb
new file mode 100755
index 00000000..2ab04749
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter8.ipynb
@@ -0,0 +1,530 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cd14818c82eb9353b8e2f9e12079fb0ba7b2a061c9a528ea53dea9dfa9a116ce"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8:Psychrometrics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.1:PG-208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialization of variables\n",
+ "Ra=0.287 # specific gas constant for air\n",
+ "P=100.0 # pressure of room in kPa\n",
+ "V=150.0 # volume of room in m^3\n",
+ "T=25+273 # temperature of air in kelvin\n",
+ "phi=0.6 # relative humidity\n",
+ "Pg=3.29 # saturation vapour pressure in kPa at 25 *C from table C.1\n",
+ "Mv= 18 # molecular mass of water vapor\n",
+ "Ma=28.97 # molecular mass of air\n",
+ "\n",
+ "Pv=Pg*phi # partial pressure of water vapour\n",
+ "\n",
+ "Pa=P-Pv # partial pressure of air\n",
+ "\n",
+ "w=0.622*(Pv/Pa) # humidity ratio in Kg of water/ Kg of dry air\n",
+ "Tdp=17.4 # dew point temperature from interpolation in table C.2 corresponding to partial pressure Pv=1.98 kPa\n",
+ "\n",
+ "ma=Pa*V/(Ra*T) # mass of air\n",
+ "mv=w*ma # mass of water vapour in kg\n",
+ "\n",
+ "# now we find volume percentage\n",
+ "Nv=mv/Mv # moles of vapour\n",
+ "Na=ma/Ma # moles of air\n",
+ "\n",
+ "Vw= Nv/(Na+Nv) # fraction of volume occupied by water vapour\n",
+ "\n",
+ "print \"The humidity ratio is\",round(w,4),\"kg water/ kg of dry air \\n\"\n",
+ "print \"The dew point is\",round(Tdp,1),\"degree celsius \\n \"\n",
+ "print \"The mass of water vapour in the air is\",round(mv,3),\"kg \\n\"\n",
+ "print \"The volume percentage of the room that is water vapor is\",round(Vw*100,2),\"%\"\n",
+ "# The answers are correct within given limits \n",
+ "# The variation in answers is due to approximations made by\n",
+ "# textbook while python is precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The humidity ratio is 0.0125 kg water/ kg of dry air \n",
+ "\n",
+ "The dew point is 17.4 degree celsius \n",
+ " \n",
+ "The mass of water vapour in the air is 2.153 kg \n",
+ "\n",
+ "The volume percentage of the room that is water vapor is 1.98 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.2:PG-209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialization of variables\n",
+ "Ra=0.287 # specific gas constant for air\n",
+ "P=100.0 # pressure of room in kPa\n",
+ "w1=0.0126 # old humidity ratio of example 8.1-\n",
+ "Pg=3.29 # saturation vapour pressure in kPa at 25 *C from table C.1\n",
+ "mv=2.17 # initial mass of water vapour in example 8.1\n",
+ "T=25+273 # temperature after reheat\n",
+ "V=150.0 # volume of room in m^3 \n",
+ "Pv=1.228 # saturation vapour pressure in kPa @ 10 degree celsius from table C.1\n",
+ "Pa=P-Pv # partial pressure of air\n",
+ "w2=0.622*(Pv/Pa) # new humidity ratio in Kg of water/ Kg of dry air\n",
+ "deltaw=w1-w2 # difference in humidity ratio\n",
+ "ma=Pa*V/(Ra*T) # mass of air\n",
+ "deltamv=deltaw*ma # mass of water vapour condensed\n",
+ "X=deltamv*100/mv # percentage of water vapour condensed\n",
+ "print \"The percentage that condenses is\",round(X,2),\"% \\n\"\n",
+ "# AFTER REHEATING\n",
+ "phi=1.608*w2*Pa/Pg\n",
+ "print \"The relative humidity is\",round(phi*100,3),\"%\"\n",
+ "\n",
+ "# The answers are correct within given limits \n",
+ "# The variation in answers is due to approximations made by\n",
+ "# textbook while python is precise\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The percentage that condenses is 38.85 % \n",
+ "\n",
+ "The relative humidity is 37.332 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.3:PG-212"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialization of variables\n",
+ "T1=40 # dry bulb temperature in degree celsius\n",
+ "T2=20 # wet bulb temperature in degree celsius\n",
+ "Cp=1.0 # specific heat\n",
+ "P=100 # pressure of air stream in kPa\n",
+ "pg1=7.383 #saturation pressure @ 40 degree celsius\n",
+ "hfg2=2454 # latent heat for 20 degree celsius\n",
+ "Pg2=2.338 # saturation pressure @ 20 degree celsius\n",
+ "w2=0.622*Pg2/(P-Pg2) # specific humidity for wet bulb condition\n",
+ "hg1=2574 # specific enthalpy of saturated vapour @ 40 degree celsius\n",
+ "hf2=83.9 #spedific enthalpy of saturated liquid @ 20 degree celsius\n",
+ "w1=((w2*hfg2)+Cp*(T2-T1))/(hg1-hf2)# specific humidity for 40 degree celsius\n",
+ "print \"The humidity ratio is\",round(w1,4),\"kg water/ Kg dry air \\n\"\n",
+ "pv1=100*w1/(0.622+w1) # partial pressure of vapour\n",
+ "phi=pv1/pg1 # relative humidity\n",
+ "print \"The relative humidity is\",round(phi*100,1),\"% \\n\"\n",
+ "\n",
+ "hv=hg1 # temperature is at DBT=40 degree celsius\n",
+ "h=Cp*T1+w1*hv # specific enthalpy of air\n",
+ "print \"The specific enthalpy is\",round(h,1),\"kJ/kg dry air\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The humidity ratio is 0.0066 kg water/ Kg dry air \n",
+ "\n",
+ "The relative humidity is 14.3 % \n",
+ "\n",
+ "The specific enthalpy is 57.1 kJ/kg dry air\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.5:PG-215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "T1=40 # inlet temperature in degree celsius\n",
+ "T2=27 # outlet temperature in degree celsius\n",
+ "phi1= 10 # relative humidity at inlet\n",
+ "# as no heat transfer takes place thus isenthalpic process\n",
+ "\n",
+ "#Thus following the enthalpy line at DBT=40 and Relative humidity=10\n",
+ "\n",
+ "phi2=45 # by interpolation of constant enthalpy line\n",
+ "w1=0.0046# specific humidity @ T=40 and phi1=10\n",
+ "w2=0.010 # specific humidity at outlet\n",
+ "W=w2-w1 # amount of water added\n",
+ "Tmin=18.5 # minimum temperature at 100% relative humidity\n",
+ "\n",
+ "print \"The relative humidity is\",round(phi2,1),\"% \\n \"\n",
+ "print \"The added water is\",round(W,4),\"kg water/kg dry air \\n\"\n",
+ "print \"The lowest possible temperature is\",round(Tmin,1),\"*C \"\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The relative humidity is 45.0 % \n",
+ " \n",
+ "The added water is 0.0054 kg water/kg dry air \n",
+ "\n",
+ "The lowest possible temperature is 18.5 *C \n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.6:PG-215"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "T1=5+273.0 # outside air temperature in kelvin\n",
+ "P=100.0 # pressure in kPa\n",
+ "Ra=0.287 # specific gas constant for air\n",
+ "phi=0.7 # relative humidity outside\n",
+ "Qf=50.0/60.0 # volume flow rate in m**3/sec\n",
+ "Pg1=0.872 # saturation pressure at 278 K\n",
+ "Pv1=phi*Pg1 # partial pressure of water vapour\n",
+ "Pa1=P-Pv1 # partial pressure of air\n",
+ "\n",
+ "rhoa=Pa1/(Ra*T1) # density of dry air\n",
+ "\n",
+ "mdota=Qf*rhoa # mass flow rate of dry air\n",
+ "\n",
+ "# using psychrometric chart at T1=5*C and phi1=70% \n",
+ "h1=14 # inlet enthalpy in kJ/kg\n",
+ "h2=35 # enthalpy after heating in kJ/kg\n",
+ "\n",
+ "Qdot=mdota*(h2-h1) # heat transfer rate\n",
+ "# from psychrometric chart for T=25 *C and 35 kJ/kg enthalpy\n",
+ "phi2=19 # realtive humidity\n",
+ "\n",
+ "print \"The heat transfer rate is\",round(Qdot,1),\"kJ/s \\n\"\n",
+ "print \"The final relative humidity is\",round(phi2,4),\"% \"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transfer rate is 21.8 kJ/s \n",
+ "\n",
+ "The final relative humidity is 19.0 % \n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.7:PG-216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "#DATA TAKEN FROM PSYCHROMETRIC CHART\n",
+ "T1=5+273.0 # outside temperature in kelvin\n",
+ "h1=10# enthalpy in kJ/kg @ T=5 *C and 40 % relative humidity\n",
+ "Pg1=0.872 # saturaion pressure in kPa for 5 degree celsius DBT\n",
+ "phi1=0.4\n",
+ "h2=33 # specific enthalpy at 25 *C and 40 % relatuve humidity\n",
+ "h3=45.0 # specific enthalpy at state 3\n",
+ "P=100.0 # atmospheric pressure in kPa\n",
+ "Ra=0.287 # specific gas constant for air\n",
+ "Qf=60.0/60.0 # volume flow rate in m**3/s\n",
+ "Pv1=phi1*Pg1 # partial presure of water vapour \n",
+ "Pa1=P-Pv1 # partial pressure of air\n",
+ "w2=0.0021 # specific humidity @ 40 % relative humidity and 25*C temperature\n",
+ "w3=0.008 # final specific humidity\n",
+ "rhoa1=Pa1/(Ra*T1) # air density\n",
+ "mdota=Qf*rhoa1 # mass flow rate of dry air\n",
+ "\n",
+ "Qdot=mdota*(h2-h1) # heat transfer rate\n",
+ "\n",
+ "# as the process is isothermal thus\n",
+ "mdots=mdota*(w3-w2)# mass flow rate of steam by conservation of mass\n",
+ "print \"the rate of steam supplied is\",round(mdots,4),\"kg/s \\n\"\n",
+ "# also using energy balance\n",
+ "hs=(mdota*(h3-h2))/mdots # enthalpy of steam\n",
+ "hf=604.7 # enthalpy of saturated liquid @ 400 kPa\n",
+ "hg=2738.5 # enthalpy of saturated vapour @ 400 kPa\n",
+ "xs=(hs-hf)/(hg-hf)\n",
+ "print \"The quality of steam is\",round(xs,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the rate of steam supplied is 0.0074 kg/s \n",
+ "\n",
+ "The quality of steam is 0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.8:PG-217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "# REFER TO FIG. 8.4\n",
+ "T1=30 # outside temperature in degree celsius\n",
+ "phi1=0.9 # outside relative humidity\n",
+ "T2=23 # room temperature in degree celsius\n",
+ "phi2=0.4 # relative humidity in room\n",
+ "\n",
+ "# using psychrometric chart\n",
+ "w1=0.0245 # specific humidity @ 30 *C and relative humidity 0.9\n",
+ "h1=93 # specific enthalpy @ 30 *C and relative humidity 0.9\n",
+ "w2=w1 # during cooling humidity remains constant \n",
+ "w3=0.007 # specific humidity @ 23 *C and relative humidity 0.4\n",
+ "h4=41 # final specific enthalpy\n",
+ "h3=26 # specific enthalpy @ 23 *C and relative humidity 0.4\n",
+ "deltaw=w3-w2 # moisture removed\n",
+ "print \" the amount of moisture removed is\",round(deltaw,4),\"kg \\n\"\n",
+ "\n",
+ "qout=h3-h1 # heat removed F-G-H process\n",
+ "\n",
+ "print \" the heat removed is\",round(qout,4),\"kJ/kg \\n \"\n",
+ "\n",
+ "qin=h4-h3 # heat added to bring to desired state\n",
+ "\n",
+ "print \" the heat added is\",round(qin,4),\"kJ/kg \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the amount of moisture removed is -0.0175 kg \n",
+ "\n",
+ " the heat removed is -67.0 kJ/kg \n",
+ " \n",
+ " the heat added is 15.0 kJ/kg \n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex8.9:PG-218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "P=100 # atospheric pressure in kPa\n",
+ "R=0.287 # specific gas constant for air\n",
+ "T1=15+273 # outside temperature in kelvin\n",
+ "phi1=0.4# outside air relative humidity\n",
+ "Qf1=40 # outside air flow rate in m^3/min\n",
+ "T2=32+273 # inside temperature in kelvin\n",
+ "phi2=0.7 # inside air relative humidity\n",
+ "Qf2=20 # outside air flow rate in m^3/min\n",
+ "Ps1=1.7 # saturation pressure @ 15 degree celsius and 40% humidity\n",
+ "Ps2=4.9 # saturation pressure @ 32 degree celsius and 70% humidity\n",
+ "\n",
+ "Pv1=Ps1*phi1 # partial pressure of water vapour outside\n",
+ "\n",
+ "Pv2=Ps2*phi2 # partial pressure of water vapour inside\n",
+ "\n",
+ "Pa1=P-Pv1 #partial pressure of dry air outside\n",
+ "Pa2=P-Pv2 #partial pressure of dry air inside\n",
+ "\n",
+ "rhoa1=Pa1/(R*T1) # density of outside air\n",
+ "mdota1=Qf1*rhoa1 # mass flow rate of air outside\n",
+ "\n",
+ "rhoa2=Pa2/(R*T2) # density of inside air\n",
+ "mdota2=Qf2*rhoa2 # mass flow rate of inside air\n",
+ " # using psychrometric chart locating state 1 and 2\n",
+ "h1=37 # specific enthalpy @ DBT 15*C and 40 % humidity\n",
+ "w1=0.0073 # specific humidity @ DBT 15*C and 40 % humidity\n",
+ "h2=110 # specific enthalpy @ DBT 32*C and 70 % humidity\n",
+ "w2=0.0302 # specific humidity @ DBT 32*C and 70 % humidity\n",
+ "ratio=mdota1/mdota2 # ratio of distance between states \n",
+ "# using this ratio state 3 is located on psychrometric chart\n",
+ "T3=(mdota1*T1+mdota2*T2)/(mdota1+mdota2)-273 # final temparature in celsius\n",
+ "\n",
+ "phi3=65# final relative humidity at T3 from psychrometric chart\n",
+ "\n",
+ "print \" The relative humidity is\",round(phi3,4),\"% \\n\"\n",
+ "print \" The resultant temperature is\",round(T3),\"degree celsius\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The relative humidity is 65.0 % \n",
+ "\n",
+ " The resultant temperature is 20.0 degree celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7.10:PG-219"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "mdotw3=10000.0 # mass flow rate of water entering in cooling tower in kg/min\n",
+ "Tw1=40+273.0 # temperature of water entering cooling tower in kelvin\n",
+ "Ta1=20+273.0 # temperature of air entering cooling tower in kelvin\n",
+ "phi1=0.5# relative humidity of entering air\n",
+ "Tw2=25+273.0 # temperature of water leaving cooling tower in kelvin\n",
+ "Ta2=32+273 # temperature of air leaving cooling tower in kelvin\n",
+ "phi2=0.98 # relative humidity of leaving air\n",
+ "# from psychrometric chart\n",
+ "h1=37.0# specific enthalpy of air @ 20*C DBT and 50% humidity\n",
+ "w1=0.0073 # specific humidity of air @ 20*C DBT and 50% humidity\n",
+ "h2=110.0 # specific enthalpy of air @ 32*C DBT and 98% humidity\n",
+ "w2=0.030 # specific humidity of air @ 32*C DBT and 98% humidity\n",
+ "\n",
+ "h3=167.5 # specific enthalpy of water from steam table at 40 degree celsius\n",
+ "h4=104.9 # specific enthalpy of water from steam table at 25 degree celsius\n",
+ "\n",
+ "mdota=(mdotw3*(h4-h3))/(h1-h2+(w2-w1)*h4) # by energy balance\n",
+ "\n",
+ "\n",
+ "v1=0.84 # specific volume of air entering tower from psychrometric chart\n",
+ "\n",
+ "Qf=mdota*v1 # volume flow rate in m^3/min\n",
+ "print \"The volume flow rate of air into the cooling tower is\",round(Qf),\" m^3/min \\n\"\n",
+ "\n",
+ "mdot4=mdotw3-(w2-w1)*mdota # by mass balance\n",
+ "print \"The mass flow rate of water that leaves the cooling tower \",round(mdot4),\"kg/min\"\n",
+ "# The answers is slightly different in textbook due to approximations in calculations while in python solution is precise\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The volume flow rate of air into the cooling tower is 7446.0 m^3/min \n",
+ "\n",
+ "The mass flow rate of water that leaves the cooling tower 9799.0 kg/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/Chapter9.ipynb b/Thermodynamics_Demystified/Chapter9.ipynb
new file mode 100755
index 00000000..9448e892
--- /dev/null
+++ b/Thermodynamics_Demystified/Chapter9.ipynb
@@ -0,0 +1,630 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7e02442740cf50f0beae7f1fd9dfdf2fb7a16b9c0848a48a17d80c7a19de3f3d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:Combustion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.1:PG-229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "AFactual=20 # air fuel ratio actual\n",
+ "# The energy balance is done from equation\n",
+ "\n",
+ "# C4H10 + 6.5(O2+3.76N2)-----> 4CO2 + 5H2O + 24.44N2\n",
+ "\n",
+ "P=100 # atmospheic preesure in kPa\n",
+ "mair=6.5*(1+3.76)*29 # mass of air\n",
+ "mfuel=1*58 # mass of fuel\n",
+ "AFth=mair/mfuel # theoritical air-fuel ratio\n",
+ "Pexcessair=(AFactual-AFth)*100/AFth\n",
+ "\n",
+ "print \"The % excess air is\",round(Pexcessair,2),\"% \\n\"\n",
+ "\n",
+ "# NOW THE REACTION IS\n",
+ "# C4H10+ (1+%excessair/100)*6.5*(O2+3.76N2) -----> 4CO2 + 5H2O + 1.903O2 + 31.6N2\n",
+ "\n",
+ "PCO2=4/42.5*100 # VOLUME % OF CO2\n",
+ "\n",
+ "print \"The volume % of CO2 is\",round(PCO2,2),\"% \\n\"\n",
+ "\n",
+ "# NOW WE FIND DEW POINT\n",
+ "Nv=5 # moles of water\n",
+ "N=42.5 # moles of air\n",
+ "Pv=P*(Nv/N) # partial pressure of vapour\n",
+ "Tdp=49# dew point temperature in degree celsius from table C.2\n",
+ "\n",
+ "print \"The Dew point temperature is\",round(Tdp,2),\"degree celsius\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The % excess air is 29.28 % \n",
+ "\n",
+ "The volume % of CO2 is 9.41 % \n",
+ "\n",
+ "The Dew point temperature is 49.0 degree celsius\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.2:PG-231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "Pair=0.9 # 90% air is used for combustion\n",
+ "\n",
+ "# THE REACTION IS\n",
+ "# C4H10 + 0.9*6.5*(O2+3.76N2)----> aCO2 + 5H20 + bCO\n",
+ "# a and b are calculated by atomic balance\n",
+ "a=2.7\n",
+ "b=1.3\n",
+ "PCO=b*100/31 # volume % of CO\n",
+ "\n",
+ "print \"The volume % of CO is\",round(PCO,2),\"% \\n\"\n",
+ "\n",
+ "mair=6.5*Pair*4.76*29 # mass of air in kg\n",
+ "mfuel=1*58 # mass of fuel butane in kg\n",
+ "AF=mair/mfuel # air-fuel ratio\n",
+ "\n",
+ "print \"The air to fuel ratio is\",round(AF,2),\"kg air/ kg fuel \"\n",
+ "# THE SOLUTION IS CORRECT BUT THERE ARE SOME PRINTING MISTAKES IN TEXTBOOK\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The volume % of CO is 4.19 % \n",
+ "\n",
+ "The air to fuel ratio is 13.92 kg air/ kg fuel \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.3:PG-231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "# THE REACTION IS\n",
+ "# aC4H10 + b(O2+3.76N2)----> CO2 + 1CO + 3.5H20 + 84.6N2 + cH2O\n",
+ "# a, b and c are calculated by atomic balance\n",
+ "# on balancing the equations we get a=3 b=22.5 c=15\n",
+ "# Now equation becomes\n",
+ "#C4H10 + 7.5(O2+3.76N2)----> 3.67CO2 + 0.33CO + 1.17H20 + 28.17N2 + 5H2O\n",
+ "#MOLES OF AIR in this equation is 7.5 moles\n",
+ "mairactual=7.5 # in moles\n",
+ "#MOLES OF AIR in standard equation of Ex.9 is 6.5\n",
+ "mairtheoritical=6.5\n",
+ "Ptheoriticalair=100*(mairactual/mairtheoritical) \n",
+ "print \"The % theoritical air is\",round(Ptheoriticalair,1),\"% \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The % theoritical air is 115.4 % \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.4:PG-232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "# The reaction equation is \n",
+ "#CaHb + c(O2+3.76N2)---> 10.4CO2 + 1.2CO + 2.8O2 + 85.6N2 + dH2O\n",
+ "\n",
+ "# using atomic balancing the equations become\n",
+ "\n",
+ "# C11.6H37.9 + 21.08(O2+3.76N2)---> 11.6CO2 + 18.95H2O + 79.26N2\n",
+ "Ptheoriticalair=22.8*100/21.08 # theoritical air\n",
+ "excessair=Ptheoriticalair-100\n",
+ "\n",
+ "print\"The excess air is\",round(excessair),\"%\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The excess air is 8.0 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.5:PG-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "# The reaction equation is \n",
+ "#C3H8 + 5(O2+3.76N2)---> 3CO2 + 18.8N2 + 4H2O\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "hfCO2=-393520 # enthalpy associated with CO2\n",
+ "hfH2O=-285830 # enthalpy associated with H2O(l)\n",
+ "hfC3H8=-103850# ehthalpy associated with C3H8\n",
+ "\n",
+ "# by first law Q= Hproducts - Hreactants\n",
+ "\n",
+ "Qg=3*(hfCO2)+4*(hfH2O)-(hfC3H8) # enthalpy of combustion for gaseous propane\n",
+ "\n",
+ "print \" The enthalpy of combustion for gaseous propane is\",round(Qg),\"kJ\\n\"\n",
+ "\n",
+ "hv=15060 # enthalpy of vaporization for propane\n",
+ "\n",
+ "Ql=3*(hfCO2)+4*(hfH2O)-(hfC3H8-hv) # enthalpy of combustion for liquid propane\n",
+ "\n",
+ "print \" The enthalpy of combustion for liquid propane is\",round(Ql),\"kJ\\n\"\n",
+ "\n",
+ "#The answers are slightly different in textbook as they have approximated the result while in Python results are precise\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The enthalpy of combustion for gaseous propane is -2220030.0 kJ\n",
+ "\n",
+ " The enthalpy of combustion for liquid propane is -2204970.0 kJ\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.6:PG-235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "# The reaction equation is \n",
+ "#C3H8 + 5(O2+3.76N2)---> 3CO2 + 18.8N2 + 4H2O\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "hfCO2=-393520 # enthalpy of formation associated with CO2\n",
+ "hbarCO2=22280 #enthalpy associated with CO2 at 600K from table E.4\n",
+ "hdotbarCO2=9364#enthalpy associated with CO2 at 298K from table E.4\n",
+ "\n",
+ "hfH2O=-241820 # enthalpy of formation associated with gaseous H2O\n",
+ "hbarH2O=20402 #enthalpy associated with H20 at 600K from table E.6\n",
+ "hdotbarH2O=9904#enthalpy associated with H20 at 298K from table E.6\n",
+ "\n",
+ "hfC3H8=-103850# ehthalpy of formation associated with C3H8\n",
+ "\n",
+ "hbarN2=17563 #enthalpy associated with N2 at 600K from table E.2\n",
+ "hdotbarN2=8669#enthalpy associated with N2 at 298K from table E.2\n",
+ "# by first law Q= Hproducts - Hreactants\n",
+ "\n",
+ "Qg=3*(hfCO2+hbarCO2-hdotbarCO2)+4*(hfH2O+hbarH2O-hdotbarH2O)+18.8*(hbarN2-hdotbarN2)-(hfC3H8) # enthalpy of combustion\n",
+ "\n",
+ "print\"The heat transfer required is\",round(Qg),\"kJ\\n\"\n",
+ "\n",
+ "#The answer is WRONG textbook as they have made an error in calculating Qg \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The heat transfer required is -1796043.0 kJ\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.7:PG-236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "# initialization of variables\n",
+ "# The reaction equation is \n",
+ "\n",
+ "#C8H18 + 12.5(O2+3.76N2)---> 8CO2 + 47N2 + 9H2O\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "hfCO2=-393520 # enthalpy of formation associated with CO2\n",
+ "hbarCO2=42769 #enthalpy associated with CO2 at 1000K from table E.4\n",
+ "hdotbarCO2=9364#enthalpy associated with CO2 at 298K from table E.4\n",
+ "\n",
+ "hfH2O=-241820 # enthalpy of formation associated with gaseous H2O\n",
+ "hbarH2O=35882 #enthalpy associated with H20 at 1000K from table E.6\n",
+ "hdotbarH2O=9904#enthalpy associated with H20 at 298K from table E.6\n",
+ "hfC3H8=-103850# ehthalpy of formation associated with C3H8\n",
+ "\n",
+ "hbarN2p=(30784+29476)/2 #enthalpy associated with N2 at 1000K from table E.2 by averaging enthalpy at 1020K and 980K for product\n",
+ "hbarN2r=17563 #enthalpy associated with N2 at 600K from table E.2 for reactant\n",
+ "hdotbarN2=8669#enthalpy associated with N2 at 298K from table E.2\n",
+ "\n",
+ "hfC8H18=-249910 # enthalpy of formation associated with octane taken from internet as not provided in textbook\n",
+ "\n",
+ "hbarO2=17929 # enthalpy associated with O2 at 600K table E.3\n",
+ "hdotbarO2=8682#enthalpy associated with O2 at 298K table E.3\n",
+ "\n",
+ "# using first law and including kinetic energy change\n",
+ "# 0=Hp-Hr+Mp*(V^2)/2\n",
+ "\n",
+ "Hp=8*(hfCO2+hbarCO2-hdotbarCO2)+9*(hfH2O+hbarH2O-hdotbarH2O)+47*(hbarN2p-hdotbarN2)\n",
+ "# enthalpy of products\n",
+ "\n",
+ "Hr=(hfC8H18)+12.5*(hbarO2-hdotbarO2)+47*(hbarN2r-hdotbarN2)\n",
+ "# enthalpy of reactants\n",
+ "\n",
+ "Mp=8*44+9*18+47*28 #(mass of products by multiplying molecular mass to number of moles)\n",
+ "\n",
+ "V=math.sqrt(2*1000*(Hr-Hp)/Mp)# exit velocity using energy balance\n",
+ "\n",
+ "print \"The exit velocity is\",round(V),\"m/s\"\n",
+ "\n",
+ "#The answers are slightly different in textbook as they have approximated the values while in Python results are precise\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The exit velocity is 2116.0 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.8:PG-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "# The reaction equation with theoritical air is \n",
+ "# C8H18 + 12.5(O2+3.76N2)---> 8CO2 + 47N2 + 9H2O\n",
+ "\n",
+ "# for 400% theoritical air reaction is\n",
+ "\n",
+ "# C8H18 + 50(O2+3.76N2)---> 8CO2 + 188N2 + 9H2O + 37.5O2\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "hfCO2=-393520 # enthalpy of formation associated with CO2\n",
+ "hbarCO2=42769 #enthalpy associated with CO2 at 1000K from table E.4\n",
+ "hdotbarCO2=9364#enthalpy associated with CO2 at 298K from table E.4\n",
+ "hfH2O=-241820 # enthalpy of formation associated with gaseous H2O\n",
+ "hbarH2O=35882 #enthalpy associated with H20 at 1000K from table E.6\n",
+ "hdotbarH2O=9904#enthalpy associated with H20 at 298K from table E.6\n",
+ "hbarN2p=(30784+29476)/2 #enthalpy associated with N2 at 1000K from table E.2 by averaging enthalpy at 1020K and 980K \n",
+ "hdotbarN2=8669#enthalpy associated with N2 at 298K from table E.2\n",
+ "\n",
+ "hfC8H18=-249910 # enthalpy associated with octane taken from internet as not provided in textbook\n",
+ "hbarO2=31389 # enthalpy associated with O2 at 1000K table E.3\n",
+ "hdotbarO2=8682#enthalpy associated with O2 at 298K table E.3\n",
+ "\n",
+ "Hp=8*(hfCO2+hbarCO2-hdotbarCO2)+9*(hfH2O+hbarH2O-hdotbarH2O)+37.5*(hbarO2-hdotbarO2)+188*(hbarN2p-hdotbarN2)# enthalpy of products\n",
+ "\n",
+ "Hr=(hfC8H18)\n",
+ "# enthalpy of reactants\n",
+ "\n",
+ "Q=Hp-Hr # using first law2\n",
+ "\n",
+ "print \" The heat transfer is\",round(Q),\"kJ\"\n",
+ "\n",
+ "#The answers are slightly different in textbook as they have approximated the values while in Python results are precise\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The heat transfer is 312593.0 kJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.9:PG-237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "# The reaction equation is \n",
+ "#C3H8 + 5O2---> 8CO2 + 4H2O\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "hfCO2=-393520 # enthalpy associated with CO2\n",
+ "hfH2O=-241820 # enthalpy associated with gaseous H2O\n",
+ "hfC3H8=103850# enthalpy of formation associated with C3H8\n",
+ "hfgC3H8=15060# enthalpy of vapourization associated with C3H8\n",
+ "T=20+273 # temperature in kelvin\n",
+ "Rbar=8.314 # universal gas constant\n",
+ "Nr=6 # number of moles of reactants\n",
+ "Np=7 # number of moles of products\n",
+ "Hp=3*(hfCO2)+4*(hfH2O) # enthalpy of products\n",
+ "\n",
+ "Hr=hfC3H8+hfgC3H8 # enthalpy of reactants\n",
+ "\n",
+ "Q=(Hp-Hr-(Nr-Np)*Rbar*T)*10**(-3) # heat transfer from first law\n",
+ "\n",
+ "print \" The heat transfer is\",round(Q),\"MJ\"\n",
+ "\n",
+ "#The answers are slightly different in textbook as they have approximated the values while in Python results are precise\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The heat transfer is -2264.0 MJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.10:PG-239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "# The reaction equation for theoritical air is \n",
+ "#C3H8 + 5(O2 + 3.76N2) ---> 3CO2 + 4H2O + 18.8N2\n",
+ "\n",
+ "# for 250% theoritical air reaction becomes\n",
+ "#C3H8 + 12.5(O2 + 3.76N2) ---> 3CO2 + 4H2O + 47N2 + 7.5O2\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "\n",
+ "Np=47+7.5+4+3 # number of moles of product\n",
+ "hfCO2=-393520 # enthalpy of formation associated with CO2\n",
+ "hbarCO2=(62963+65271)/2 #enthalpy associated with CO2 at 1380 K from table E.4\n",
+ "hbarCO2dash=(58381+60666)/2 #enthalpy associated with CO2 at 1300 K by average from table E.4\n",
+ "hdotbarCO2=9364#enthalpy associated with CO2 at 298K from table E.4\n",
+ "\n",
+ "hfC3H8=-103850# ehthalpy of formation associated with C3H8\n",
+ "\n",
+ "hfH2O=-241820 # enthalpy of formation associated with gaseous H2O\n",
+ "hbarH2O=(51521+53351)/2 #enthalpy associated with H20 at 1380 K by taking average from table E.6\n",
+ "hbarH2Odash=48807 #enthalpy associated with H20 at 1300 K from table E.6\n",
+ "hdotbarH2O=9904#enthalpy associated with H20 at 298K from table E.6\n",
+ "\n",
+ "hbarN2=42920 #enthalpy associated with N2 at 1380K from table E.2 by interpolating enthalpy between 1020K and 980K \n",
+ "hbarN2dash=40170 #enthalpy associated with N2 at 1300 K from table E.2 \n",
+ "hdotbarN2=8669#enthalpy associated with N2 at 298K from table E.2\n",
+ "\n",
+ "hfO2=(44198+45648)/2 # enthalpy associated with O2 at 1380 Kby taking average from table E.3\n",
+ "hfO2dash=48807 # enthalpy associated with O2 at 1380 Kby taking average from table E.3\n",
+ "hdotbarO2=8682#enthalpy associated with O2 at 298K table E.3\n",
+ "\n",
+ "# for adiabatic flame temperature first assume products composed only of nitrogen and Q=0 as adiabatic\n",
+ "hp=(hfC3H8-3*(hfCO2)-4*(hfH2O))/Np +hdotbarN2\n",
+ "# using hp we assume temp=1380 K\n",
+ "# then energy for 1380 k is\n",
+ "H1=3*(hfCO2+hbarCO2-hdotbarCO2)+4*(hfH2O+hbarH2O-hdotbarH2O)+7.5*(hfO2-hdotbarO2)+47*(hbarN2-hdotbarN2) # energy assuming temperature to be 1380 K\n",
+ "\n",
+ "#this is very large \n",
+ "\n",
+ "# now at 1300 K adiabatic temperature\n",
+ "H2=3*(hfCO2+hbarCO2dash-hdotbarCO2)+4*(hfH2O+hbarH2Odash-hdotbarH2O)+7.5*(hfO2dash-hdotbarO2)+47*(hbarN2dash-hdotbarN2) # energy assuming temperature to be 1300 K\n",
+ " \n",
+ " # now interpolation between these two temperatures\n",
+ "Tp=1300-((hp+H2)/(H1-H2))*(1380-1300) # adiabatic temperature by interpolation\n",
+ "print \"The adiabatic flame temperature is\",round(Tp),\"K\"\n",
+ "\n",
+ "#The answers is different in textbook as they have printed the value of hfCO2 with positive sign while calculating H2\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The adiabatic flame temperature is 1311.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex9.11:PG-240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# initialization of variables\n",
+ "\n",
+ "# The reaction equation for theoritical air is \n",
+ "#C3H8 + 5(O2 + 3.76N2) ---> 3CO2 + 4H2O + 18.8N2\n",
+ "\n",
+ "# All the enthalpy of formation values are taken from Table B.5 with units in kJ/mol\n",
+ "\n",
+ "Np=18.8+4+3 # number of moles of product\n",
+ "hfCO2=-393520 # enthalpy associated with CO2\n",
+ "hbarCO2=137400 #enthalpy associated with CO2 at 2600 K from table E.4 by interpolation\n",
+ "hbarCO2dash=125152 #enthalpy associated with CO2 at 2400 K from table E.4\n",
+ "hdotbarCO2=9364#enthalpy associated with CO2 at 298K from table E.4\n",
+ "\n",
+ "hfC3H8=-103850# ehthalpy associated with C3H8\n",
+ "\n",
+ "hfH2O=-241820 # enthalpy associated with gaseous H2O\n",
+ "hbarH2O=114273 #enthalpy associated with H20 at 2600 K from table E.6\n",
+ "hbarH2Odash=103508 #enthalpy associated with H20 at 2400 K from table E.6\n",
+ "hdotbarH2O=9904#enthalpy associated with H20 at 298K from table E.6\n",
+ "\n",
+ "hbarN2=86600 #enthalpy associated with N2 at 2600 K from table E.2 by interpolation\n",
+ "hbarN2dash=79320 #enthalpy associated with N2 at 2400 K from table E.2 \n",
+ "hdotbarN2=8669#enthalpy associated with N2 at 298K from table E.2\n",
+ "\n",
+ "# for adiabatic flame temperature first assume products composed only of nitrogen and Q=0 as adiabatic\n",
+ "hp=(hfC3H8-3*(hfCO2)-4*(hfH2O))/Np +hdotbarN2 \n",
+ "\n",
+ "# using hp we assume temp=2600 K\n",
+ "# then energy for 2600 k is\n",
+ "H1=3*(hfCO2+hbarCO2-hdotbarCO2)+4*(hfH2O+hbarH2O-hdotbarH2O)+18.8*(hbarN2-hdotbarN2) # energy assuming temperature to be 2600 K\n",
+ "\n",
+ "# now at 2400 K adiabatic temperature\n",
+ "H2=3*(hfCO2+hbarCO2dash-hdotbarCO2)+4*(hfH2O+hbarH2Odash-hdotbarH2O)+18.8*(hbarN2dash-hdotbarN2) # energy assuming temperature to be 2400 K\n",
+ " \n",
+ " # now interpolation between these two temperatures\n",
+ "Tp=2400-((hp+H2)/(H1-H2))*(2600-2400) # adiabatic temperature by interpolation\n",
+ "print \"The adiabatic flame temperature is\",round(Tp),\"K\"\n",
+ "\n",
+ "#The answers are slightly different in textbook as they have approximated the values while in Python results are precise\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The adiabatic flame temperature is 2409.0 K\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_Demystified/README.txt b/Thermodynamics_Demystified/README.txt
new file mode 100755
index 00000000..2aa18a7d
--- /dev/null
+++ b/Thermodynamics_Demystified/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Aviral Yadav
+Course: btech
+College/Institute/Organization: ABES Engineering College
+Department/Designation: Mechanical Engineering
+Book Title: Thermodynamics Demystified
+Author: Merle C. Potter
+Publisher: Mcgraw-hill, Usa
+Year of publication: 2009
+Isbn: 0071605991
+Edition: 1 \ No newline at end of file
diff --git a/Thermodynamics_Demystified/screenshots/Carnotrefrigerator.png b/Thermodynamics_Demystified/screenshots/Carnotrefrigerator.png
new file mode 100755
index 00000000..464e99d0
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/Carnotrefrigerator.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/carnotrefrigerator.png b/Thermodynamics_Demystified/screenshots/carnotrefrigerator.png
new file mode 100755
index 00000000..cf918bd5
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/carnotrefrigerator.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/carnotrefrigerator_1.png b/Thermodynamics_Demystified/screenshots/carnotrefrigerator_1.png
new file mode 100755
index 00000000..cf918bd5
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/carnotrefrigerator_1.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/carnotrefrigerator_2.png b/Thermodynamics_Demystified/screenshots/carnotrefrigerator_2.png
new file mode 100755
index 00000000..cf918bd5
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/carnotrefrigerator_2.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/internalenergy.png b/Thermodynamics_Demystified/screenshots/internalenergy.png
new file mode 100755
index 00000000..04bc8fe4
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/internalenergy.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/internalenergy_1.png b/Thermodynamics_Demystified/screenshots/internalenergy_1.png
new file mode 100755
index 00000000..04bc8fe4
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/internalenergy_1.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/internalenergy_2.png b/Thermodynamics_Demystified/screenshots/internalenergy_2.png
new file mode 100755
index 00000000..04bc8fe4
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/internalenergy_2.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/internalenergy_3.png b/Thermodynamics_Demystified/screenshots/internalenergy_3.png
new file mode 100755
index 00000000..04bc8fe4
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/internalenergy_3.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/quasiequilibrium.png b/Thermodynamics_Demystified/screenshots/quasiequilibrium.png
new file mode 100755
index 00000000..464e99d0
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/quasiequilibrium.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/quasiequilibrium_1.png b/Thermodynamics_Demystified/screenshots/quasiequilibrium_1.png
new file mode 100755
index 00000000..464e99d0
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/quasiequilibrium_1.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/quasiequilibrium_2.png b/Thermodynamics_Demystified/screenshots/quasiequilibrium_2.png
new file mode 100755
index 00000000..464e99d0
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/quasiequilibrium_2.png
Binary files differ
diff --git a/Thermodynamics_Demystified/screenshots/quasiequilibrium_3.png b/Thermodynamics_Demystified/screenshots/quasiequilibrium_3.png
new file mode 100755
index 00000000..41ef1110
--- /dev/null
+++ b/Thermodynamics_Demystified/screenshots/quasiequilibrium_3.png
Binary files differ
diff --git a/Thermodynamics_for_Chemists/README.txt b/Thermodynamics_for_Chemists/README.txt
new file mode 100755
index 00000000..ef391704
--- /dev/null
+++ b/Thermodynamics_for_Chemists/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Paritosh Mehta
+Course: me
+College/Institute/Organization: GTU
+Department/Designation: VLSI
+Book Title: Thermodynamics for Chemists
+Author: S. Galsstone
+Publisher: D. Van Nostrand
+Year of publication: 1990
+Isbn: 9788176710145
+Edition: 8 \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch1.ipynb b/Thermodynamics_for_Chemists/ch1.ipynb
new file mode 100755
index 00000000..dbb8f3fa
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch1.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6bc091a7df60a18f534957b667a129c222bd914be53352e82176eb63d1e4fae8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Heat work and energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 Page No : 7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "q = 26.45 \t\t\t#coloumbs\n",
+ "e = 2.432 \t\t\t#volts\n",
+ "\n",
+ "# Calculations\n",
+ "Q1 = q*e\n",
+ "Q2 = Q1*1.0002*10**7\n",
+ "\n",
+ "# Results\n",
+ "print 'Energy expenditure in joules = %.2f int.joules'%(Q1)\n",
+ "print ' Energy expenditure in ergs = %.2e ergs'%(Q2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Energy expenditure in joules = 64.33 int.joules\n",
+ " Energy expenditure in ergs = 6.43e+08 ergs\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2 Page No : 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I = 0.565 \t\t\t#amp\n",
+ "R = 15.43 \t\t\t#ohms\n",
+ "t = 185 \t\t\t#secs\n",
+ "Tr = 0.544 \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "Q1 = I**2*R*t\n",
+ "Q2 = I**2*R*t/Tr\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat capacity = %.f int.joules deg**-1'%(Q2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat capacity = 1675 int.joules deg**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 Page No : 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "I = 0.565 \t\t\t#amp\n",
+ "R = 15.43 \t\t\t#ohms\n",
+ "t = 185 \t\t\t#secs\n",
+ "Tr = 0.544 \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "Q1 = I**2*R*t\n",
+ "Q2 = I**2*R*t/(Tr*4.183)\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat capacity = %.1f calories'%(Q2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat capacity = 400.4 calories\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 Page No : 11"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "v = 1. \t\t\t#lit\n",
+ "p = 1. \t \t\t#atm\n",
+ "h = 76. \t\t\t#cm\n",
+ "d = 13.595 \t\t\t#kg/cm**3\n",
+ "g = 980.66 \t\t\t#dunes cm**-2\n",
+ "j = 4.18 \t\t\t#joules\n",
+ "\n",
+ "# Calculations\n",
+ "W = v*p\n",
+ "W1 = h*d*g\n",
+ "W2 = W1*10**-4\n",
+ "W3 = W2/j\n",
+ "\n",
+ "# Results\n",
+ "print 'Work done in lit-atm = %.f lit-atm'%(W)\n",
+ "print ' Work done in dynes = %.2e dynes cm**-2'%(W1)\n",
+ "print ' Work done in ergs = %.2e ergs'%(W2)\n",
+ "print ' Work done in calories = %.2f calories'%(W3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work done in lit-atm = 1 lit-atm\n",
+ " Work done in dynes = 1.01e+06 dynes cm**-2\n",
+ " Work done in ergs = 1.01e+02 ergs\n",
+ " Work done in calories = 24.24 calories\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch11.ipynb b/Thermodynamics_for_Chemists/ch11.ipynb
new file mode 100755
index 00000000..cb279692
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch11.ipynb
@@ -0,0 +1,386 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:24358c055307caa3764298de0f3c55c7302f3945715dac67660be1528e9deeb6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Phase Equilibria"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1 Page No : 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 0. \t\t\t#C\n",
+ "sv = 1.0001 \t\t\t#cc g**-1\n",
+ "sv1 = 1.0907 \t\t\t#cc g**-1\n",
+ "R = 0.0242 \t \t\t#atm**-1 cc**-1 cal\n",
+ "p = 79.8 \t\t \t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "r = (273.2+T)*(sv-sv1)*R/p\n",
+ "\n",
+ "# Results\n",
+ "print 'rate of change of melting point = %.4f deg atm**-1'%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rate of change of melting point = -0.0075 deg atm**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2 Page No : 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 95.5 \t\t\t#C\n",
+ "p = 1. \t\t\t#atm\n",
+ "v = 0.0126 \t\t\t#cc g**-1\n",
+ "a = 0.0242 \t\t\t#cal cc**-1 atm**-1\n",
+ "r = 0.035 \t\t\t#K atm**-1\n",
+ "\n",
+ "# Calculations\n",
+ "dH = (273.2+T)*v*a/r\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of transition = %.1f cal g**-1'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of transition = 3.2 cal g**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No : 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 100. \t\t\t#C\n",
+ "j = 0.0242 \t\t\t#cal cc**-1 atm6-1\n",
+ "k = 539. \t\t\t#cal g**-1\n",
+ "p = 1664. \t\t\t#cc g**-1\n",
+ "\n",
+ "# Calculations\n",
+ "r = (273.2+T)*(p-1)*j/k\n",
+ "\n",
+ "# Results\n",
+ "print 'Rise in temperature per unit of pressure = %.1f deg atm**-1'%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rise in temperature per unit of pressure = 27.9 deg atm**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4 Page No : 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 100. \t\t\t#C\n",
+ "T2 = 90. \t\t\t#C\n",
+ "p = 76. \t\t\t#cm of hg\n",
+ "H = 542*18.02 \t\t\t#cal mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "p1 = p/10**((H/4.576)*((T1-T2)/((273.2+T1)*(273.2+T2))))\n",
+ "\n",
+ "# Results\n",
+ "print 'Final vapour pressure of water = %.1f cm'%(p1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final vapour pressure of water = 52.9 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No : 230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 239.05 \t\t\t#K\n",
+ "r = 0.0242 \t\t\t#cal cc6-1 atm**-1\n",
+ "Vv = 269.1 \t\t\t#cc g**-1\n",
+ "Vl = 0.7 \t\t\t#cc g**-1\n",
+ "r1 = 3.343 \t\t\t#cm of mercury deg6-1\n",
+ "p = 76. \t\t\t#cm\n",
+ "\n",
+ "# Calculations\n",
+ "tbyp = r1/p\n",
+ "dH = T*(Vv-Vl)*tbyp*r\n",
+ "\n",
+ "# Results\n",
+ "print 'heat of vapourisation of liquid chlorine = %.1f cal g**-1'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat of vapourisation of liquid chlorine = 68.3 cal g**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No : 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Ta = 441. \t\t \t#C\n",
+ "Tb = 882. \t \t\t#C\n",
+ "Tb1 = 1218. \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "Ta1 = (273+Tb1)*(Tb+273)/(273+Ta)\n",
+ "Tb = Ta1-273\n",
+ "\n",
+ "# Results\n",
+ "print 'Normal boiling point of silver = %.f K'%(Ta1)\n",
+ "print ' Normal boiling point of silver in degrees = %.f degrees'%(Tb)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Normal boiling point of silver = 2412 K\n",
+ " Normal boiling point of silver in degrees = 2139 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 Page No : 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "T = 40. \t\t\t#C\n",
+ "T1 = 80.1 \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "H = 2*(273.2+T1)\n",
+ "p = math.e**(-(H/(4.576*(273.2+T)))+4.59)/3.07\n",
+ "\n",
+ "# Results\n",
+ "print 'vapour pressure = %.1f cm'%(p)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vapour pressure = 19.6 cm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8 Page No : 237"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p = 23.76 \t\t\t#mm\n",
+ "R = 0.082 \t\t\t#atm-lit deg**-1 mol**-1\n",
+ "T = 25. \t\t\t#C\n",
+ "vl = 18 \t\t\t#ml\n",
+ "p1 = 1. \t\t\t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "dP = 0.001*vl*p*p1/(R*(273+T))\n",
+ "p2 = p+dP\n",
+ "\n",
+ "# Results\n",
+ "print 'vapour pressure = %.2f mm'%(p2)\n",
+ "\n",
+ "# Note : ANSWER GIVEN IN THE TEXTBOOK IS WRONG\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vapour pressure = 23.78 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9 Page No : 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 25. \t\t\t #C\n",
+ "R = 8.314*10**7 \t\t#ergs /mol K\n",
+ "st = 72. \t\t \t#dynes cm**-1\n",
+ "mv = 18. \t \t\t#cc mole**-1\n",
+ "r = 10.**-5 \t\t\t#cm\n",
+ "p = 23.76 \t\t\t#cm\n",
+ "\n",
+ "# Calculations\n",
+ "p1 = p*10**(2*st*mv/(r*R*2.303*(273.2+T)))\n",
+ "\n",
+ "# Results\n",
+ "print 'vapour pressure = %.2f mm'%(p1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "vapour pressure = 24.01 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch12.ipynb b/Thermodynamics_for_Chemists/ch12.ipynb
new file mode 100755
index 00000000..a5fc4f25
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch12.ipynb
@@ -0,0 +1,181 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dbef979b458f64ee0bfe42675123da99553458bca4c9fa96996153ac4fc86f65"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Fugacity and Activity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 Page No : 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p1 = 50 \t\t\t#atm\n",
+ "p2 = 100 \t\t\t#atm\n",
+ "p3 = 200 \t\t\t#atm\n",
+ "p4 = 400 \t\t\t#atm\n",
+ "p5 = 800 \t\t\t#atm\n",
+ "p6 = 1000 \t\t\t#atm\n",
+ "r1 = 0.979\n",
+ "r2 = 0.967\n",
+ "r3 = 0.971\n",
+ "r4 = 1.061\n",
+ "r5 = 1.489\n",
+ "r6 = 1.834\n",
+ "\n",
+ "# Calculations\n",
+ "f1 = r1*p1\n",
+ "f2 = r2*p2\n",
+ "f3 = r3*p3\n",
+ "f4 = r4*p4\n",
+ "f5 = r5*p5\n",
+ "f6 = r6*p6\n",
+ "\n",
+ "# Results\n",
+ "print 'fugacity of nitrogen gas = %.2f atm'%(f1)\n",
+ "print ' fugacity of nitrogen gas = %.1f atm'%(f2)\n",
+ "print ' fugacity of nitrogen gas = %.1f atm'%(f3)\n",
+ "print ' fugacity of nitrogen gas = %.1f atm'%(f4)\n",
+ "print ' fugacity of nitrogen gas = %.f atm'%(f5)\n",
+ "print ' fugacity of nitrogen gas = %.f atm'%(f6)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fugacity of nitrogen gas = 48.95 atm\n",
+ " fugacity of nitrogen gas = 96.7 atm\n",
+ " fugacity of nitrogen gas = 194.2 atm\n",
+ " fugacity of nitrogen gas = 424.4 atm\n",
+ " fugacity of nitrogen gas = 1191 atm\n",
+ " fugacity of nitrogen gas = 1834 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2 Page No : 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p1 = 50 \t\t\t#atm\n",
+ "p2 = 100 \t\t\t#atm\n",
+ "p3 = 200 \t\t\t#atm\n",
+ "p4 = 400 \t\t\t#atm\n",
+ "r1 = 0.98\n",
+ "r2 = 0.97\n",
+ "r3 = 0.98\n",
+ "r4 = 1.07\n",
+ "\n",
+ "# Calculations\n",
+ "f1 = p1*r1\n",
+ "f2 = p2*r1\n",
+ "f3 = p3*r3\n",
+ "f4 = p4*r4\n",
+ "\n",
+ "# Results\n",
+ "print 'fugacity of nitrogen gas = %.f atm'%(f1)\n",
+ "print ' fugacity of nitrogen gas = %.f atm'%(f2)\n",
+ "print ' fugacity of nitrogen gas = %.f atm'%(f3)\n",
+ "print ' fugacity of nitrogen gas = %.f atm'%(f4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fugacity of nitrogen gas = 49 atm\n",
+ " fugacity of nitrogen gas = 98 atm\n",
+ " fugacity of nitrogen gas = 196 atm\n",
+ " fugacity of nitrogen gas = 428 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No : 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p = 3.66 \t\t\t#atm\n",
+ "v = 6.01 \t\t\t#litre mole**-1\n",
+ "T = 0 \t\t\t#C\n",
+ "R = 0.082 \t\t\t#lit-atm mole**-1 K**-1\n",
+ "\n",
+ "# Calculations\n",
+ "f = p**2*v/(R*(273+T))\n",
+ "\n",
+ "# Results\n",
+ "print 'fugacity of liquid chlorine = %.2f atm'%(f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fugacity of liquid chlorine = 3.60 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch13.ipynb b/Thermodynamics_for_Chemists/ch13.ipynb
new file mode 100755
index 00000000..54f5da83
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch13.ipynb
@@ -0,0 +1,634 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:acd91289e0ae9fe9e2bc3339cdf9c4eec3f5bc3e39c8f68c1c64dee935af52c5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Free Energy and Chemical Reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1 Page No : 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "R = 4.576 \t\t\t#cal deg**-1 mole**-1\n",
+ "T = 700 \t\t\t#C\n",
+ "Kp = 0.71\n",
+ "p1 = 1.5 \t\t\t#atm\n",
+ "p2 = 5 \t\t\t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "dF = -R*(273+T)*(math.log(Kp)-math.log((p1*p2)/(10*p2)))*0.77\n",
+ "\n",
+ "# Results\n",
+ "print 'Free energy = %.f cal'%(dF-10)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Free energy = -5340 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1.1 Page no : 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variables and calculations\n",
+ "\n",
+ "# for CO2\n",
+ "Tc = 304. #K\n",
+ "Pc = 72.9 # atm\n",
+ "a = 873. # K\n",
+ "b = 500. # atm\n",
+ "\n",
+ "theta1 = a/Tc\n",
+ "pi2 = b/Pc\n",
+ "YCO2 = 1.09\n",
+ "\n",
+ "# for H2\n",
+ "Tc = 33.2 #K\n",
+ "Pc = 12.8 # atm\n",
+ "\n",
+ "theta1 = a/(Tc+8)\n",
+ "pi2 = b/(Pc+8)\n",
+ "YH2 = 1.10\n",
+ "\n",
+ "# for CO\n",
+ "Tc = 134. #K\n",
+ "Pc = 34.6 # atm\n",
+ "\n",
+ "theta1 = a/Tc\n",
+ "pi2 = b/Pc\n",
+ "YCO = 1.23\n",
+ "\n",
+ "# for H20\n",
+ "Tc = 647. #K\n",
+ "Pc = 218 # atm\n",
+ "\n",
+ "theta1 = a/Tc\n",
+ "pi2 = b/Pc\n",
+ "YHO2 = 0.77\n",
+ "\n",
+ "Jy = YCO2*YH2/(YCO*YHO2)\n",
+ "# results\n",
+ "print \"Jy = %.2f\"%Jy\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Jy = 1.27\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2 Page No : 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "k1 = 4600.\n",
+ "k2 = -8.64\n",
+ "k3 = 1.86*10**-3\n",
+ "k4 = -0.12*10**-6\n",
+ "k5 = 12.07\n",
+ "T = 600. \t\t\t#K\n",
+ "\n",
+ "# Calculations\n",
+ "Kf = math.e**(k1*(1/T)+k2*math.log10(T)+k3*T+k4*T**2+k5)\n",
+ "\n",
+ "# Results\n",
+ "print 'Kf = %.3f '%(Kf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kf = 0.041 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No : 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "k = -8810 \t\t\t#cal\n",
+ "k1 = -7.46 \t\t\t#cal K**-1\n",
+ "k2 = 3.69*10**-3 \t\t\t#cal K**-2\n",
+ "k3 = -0.47*10**-6 \t\t\t#cak K**-3\n",
+ "T = 298 \t\t\t#K\n",
+ "\n",
+ "# Calculations\n",
+ "dH = k+k1*T+k2*T**2+k3*T**3\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard heat of reaction = %.f cal'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard heat of reaction = -10718 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4 Page No : 296"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "k1 = -9130 \t\t\t#cal\n",
+ "k2 = 7.46 \t\t\t#cal K**-1\n",
+ "k3 = -3.69*10**-3 \t\t\t#K**-2\n",
+ "k4 = 0.235*10**-6 \t\t\t#K**-3\n",
+ "k5 = -12.07\n",
+ "T = 298 \t\t\t#K\n",
+ "R = 1.987 \t\t\t#cal deg**-1 mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "dF = k1+k2*T*math.log(T)+k3*T**2+k4*T**3+k5*R*T\n",
+ "\n",
+ "# Results\n",
+ "print 'Free energy = %.f cal'%(dF)\n",
+ "\n",
+ "# rounding off error is there. please check.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Free energy = -3933 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No : 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 25 \t\t\t#C\n",
+ "dF1 = 61.44 \t\t\t#kcal\n",
+ "dF = 54.65 \t\t\t#kcal\n",
+ "R = 4.576 \t\t\t#cal deg**-1 mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "Kf = 10**(-(dF1-dF)*10**3/(R*(273.2+T)))\n",
+ "\n",
+ "# Results\n",
+ "print 'Kf at this temperature = %.2e '%(Kf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Kf at this temperature = 1.06e-05 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No : 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "R = 4.576 \t\t\t#cal mole**-1 K**-1\n",
+ "T = 25. \t\t\t#C\n",
+ "p1 = 122. \t\t\t#mm\n",
+ "F1 = -5.88 \t\t\t#kcal\n",
+ "F2 = -33 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "dF = R*(273.2+T)*math.log10(p1/760)\n",
+ "F = F2+F1+(dF/1000)\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard free energy change = %.f kcal'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard free energy change = -40 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.7 Page No : 303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "r = 3.38*10**-4 \t\t\t#volt deg**-1\n",
+ "F = 23070. \t\t\t#cal volt**-1 deg**-1\n",
+ "Sagcl = 23 \t \t\t#E.U.mole**-1\n",
+ "Shg = 18.5 \t \t\t#E.U.mole**-1\n",
+ "Sag = 10.2 \t\t \t#E.U.mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "dS = F*r\n",
+ "shgcl = 2*-(dS-Sagcl-Shg+Sag)\n",
+ "\n",
+ "# Results\n",
+ "print 'dS = %.1f E.U.cal deg**-1'%(dS)\n",
+ "print ' molar entropy = %.f E.U.mole**-1'%(shgcl)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dS = 7.8 E.U.cal deg**-1\n",
+ " molar entropy = 47 E.U.mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.8 Page No : 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "s1 = 44.5 \t\t\t#cal deg**-1 mole**-1\n",
+ "s2 = 49 \t\t\t#cal deg**-1 mole**-1\n",
+ "s3 = 51.06 \t\t\t#cal deg**-1 mole**-1\n",
+ "s4 = 16.75 \t\t\t#cal deg**-1 mole**-1\n",
+ "h1 = -17.9 \t\t\t#kcal mole**-1\n",
+ "h2 = 0 \t\t\t#kcal mole**-1\n",
+ "h3 = -94 \t\t\t#kcal mole**-1\n",
+ "h4 = -68.3 \t\t\t#kcal mole**-1\n",
+ "T = 25 \t\t\t#C\n",
+ "n = 2\n",
+ "\n",
+ "# Calculations\n",
+ "dS = s3+2*s4-s1-n*s2\n",
+ "dH = h3+n*h4-h1-n*h2\n",
+ "dF = -0.001*(273.2+T)*dS+dH\n",
+ "\n",
+ "# Results\n",
+ "print 'Entropy Change = %.1f E.U'%(dS)\n",
+ "print ' Enthalpy Change = %.1f E.U'%(dH)\n",
+ "print ' Standard free energy = %.1f kcal'%(dF)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy Change = -57.9 E.U\n",
+ " Enthalpy Change = -212.7 E.U\n",
+ " Standard free energy = -195.4 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.9 Page No : 304"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "a = -15.84 \n",
+ "b = 22.84*10**-3\n",
+ "c = -80.97*10**-7 \n",
+ "T = 25. \t\t\t#C\n",
+ "H1 = -48.1 \t\t\t#kcal\n",
+ "H2 = -26.4\n",
+ "dS = 53.09\n",
+ "T1 = 327. \t\t\t#C\n",
+ "r1 = 0.58\n",
+ "r2 = 1.1\n",
+ "r3 = 1.13\n",
+ "\n",
+ "# Calculations\n",
+ "dH = round((H1-H2)*1000-a*(273.2+T)-0.5*b*(273.2+T)**2-0.33*c*(273.2+T)**3,-1)\n",
+ "dF = round((H1-H2)*1000+(273.2+T)*dS,-1)\n",
+ "I = (dF-dH+a*(273.2+T)*math.log(273.2+T)+0.5*b*(273.2+T)**2+0.166*c*(273.2+T)**3)/(273.2+T)\n",
+ "dF1 = (dH-a*(273+T1)*math.log(273+T1)-0.5*b*(273+T1)**2-0.166*c*(273+T1)**3)+I*(273+T1)\n",
+ "Kf = 10**(-dF1/(4.576*(273+T1)))\n",
+ "Jr = r1/(r2**2*r3)\n",
+ "Kp = Kf/Jr\n",
+ "\n",
+ "# Results\n",
+ "print 'heat of formation = %d cal'%(dH)\n",
+ "print ' Entropy = %.f cal'%(dF)\n",
+ "print ' Inertia = %.2f gm cm**2'%(I)\n",
+ "print ' Entropy = %.f cal'%(dF1)\n",
+ "print ' Kf = %.1e '%(Kf)\n",
+ "print ' Kp = %.1e '%(Kp)\n",
+ "\n",
+ "# rounding off error is there. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "heat of formation = -17920 cal\n",
+ " Entropy = -5870 cal\n",
+ " Inertia = -46.56 gm cm**2\n",
+ " Entropy = 11121 cal\n",
+ " Kf = 8.9e-05 \n",
+ " Kp = 2.1e-04 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.10 Page No : 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "F1 = 24.423\t\t\t#cal deg**-1\n",
+ "F2 = 21.031 \t\t\t#cal deg**-1\n",
+ "F3 = 37.172 \t\t\t#cal deg**-1\n",
+ "H1 = 2.024 \t\t\t#kcal\n",
+ "H2 = 1.035 \t\t\t#kcal\n",
+ "H3 = 2.365 \t\t\t#kcal\n",
+ "H = -57.8 \t\t\t#kcal\n",
+ "T = 25. \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "dF = F3-F1-F2\n",
+ "dH = H3-H1-H2\n",
+ "Hf = H-dH\n",
+ "F = Hf-((273.2+T)*dF*10**-3) \n",
+ "\n",
+ "# Results\n",
+ "print 'Standard free energy = %.2f kcal'%(F)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard free energy = -54.64 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.11 Page No : 311"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "T = 1000 \t\t\t #C\n",
+ "j = 1.5\n",
+ "Q = 35840 \t\t\t#cal\n",
+ "I = 743*10**-40 \t\t#g cm**2\n",
+ "w = 214 \t \t\t#cm**-2\n",
+ "Kf = 0.184\n",
+ "\n",
+ "# Results\n",
+ "print 'Equilibrium constant = %.3f '%(Kf)\n",
+ "\n",
+ "# Note :NO SOLUTION IS GIVEN TO SOLVE Kf INCOMPLETE SOLUTION IN THE TEXTBOOK\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant = 0.184 \n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.12 Page No : 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "dH = 83 \t\t\t#cal\n",
+ "R = 1.98 \t\t\t#cal mole K**-1\n",
+ "T = 25 \t\t\t#C\n",
+ "M1 = 128 \t\t\t#gms\n",
+ "M2 = 4 \t\t\t#gms\n",
+ "M3 = 2 \t\t\t#gms\n",
+ "M4 = 129 \t\t\t#gms\n",
+ "I1 = 4.31 \t\t\t#g cm**2\n",
+ "I2 = 0.920 \t\t\t#g cm**2\n",
+ "I3 = 0.459 \t\t\t#g cm**2\n",
+ "I4 = 8.55 \t\t\t# g cm**2\n",
+ "\n",
+ "# Calculations\n",
+ "K = 1+10**((-dH/(2.303*R*(298)))+1.5*math.log(M1**2*M2/(M3*M4**2))+math.log(I1**2*I2/(I3*I4**2)))\n",
+ "\n",
+ "# Results\n",
+ "print 'Equilibrium constant = %.1f '%(K)\n",
+ "\n",
+ "# note : rounding off error."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Equilibrium constant = 1.2 \n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch14.ipynb b/Thermodynamics_for_Chemists/ch14.ipynb
new file mode 100755
index 00000000..7665275b
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch14.ipynb
@@ -0,0 +1,244 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8929370eda354c28fce9b829f100333cf5fedfea917f7bb51452b097667996b2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : The Properties of Solution"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1 Page No : 322"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "M2 = 92. \t\t\t#gms\n",
+ "M1 = 78. \t\t\t#gms\n",
+ "pb = 118.2 \t\t\t#mm\n",
+ "pt = 36.7 \t\t\t#mm\n",
+ "\n",
+ "# Calculations\n",
+ "n1 = M2/(M1+M2)\n",
+ "n2 = 1-n1\n",
+ "p1 = n1*pb\n",
+ "p2 = n2*pt\n",
+ "w = p1*M1/(p2*M2)\n",
+ "\n",
+ "# Results\n",
+ "print 'partial pressure of benzene = %.f mm'%(p1)\n",
+ "print ' partial pressure of toulene = %.1f mm'%(p2)\n",
+ "print ' weight proportions = %.2f '%(w)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "partial pressure of benzene = 64 mm\n",
+ " partial pressure of toulene = 16.8 mm\n",
+ " weight proportions = 3.22 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.2 Page No : 325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "vpe = 42 \t\t\t#atm\n",
+ "p2 = 1. \t\t\t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "N2 = p2/vpe\n",
+ "\n",
+ "# Results\n",
+ "print 'Ideal solubility of ethane = %.3f mole fraction'%(N2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ideal solubility of ethane = 0.024 mole fraction\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.3 Page No : 325"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "p1 = 25.7 \t\t\t#atm\n",
+ "p2 = 11.84 \t\t\t#atm\n",
+ "T1 = 173. \t\t\t#K\n",
+ "T2 = 153. \t\t\t#K\n",
+ "T3 = 25. \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "dH = math.log10(p1/p2)*4.579*T1*T2/(T1-T2)\n",
+ "p = p1*10**((dH/4.576)*(273+T3-T1)/((273+T3)*T1))\n",
+ "s = 1./p\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of reaction = %d cal mole**-1'%(dH)\n",
+ "print ' pressure = %d atm'%(p)\n",
+ "print ' Solubility of methane = %.5f '%(s)\n",
+ "\n",
+ "# note : rounding error is there. please check. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of reaction = 2039 cal mole**-1\n",
+ " pressure = 309 atm\n",
+ " Solubility of methane = 0.00323 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.4 Page No : 329"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 20. \t\t\t#C\n",
+ "T2 = 80. \t\t\t#C\n",
+ "H1 = 4540. \t\t\t#cal mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "n = 10**(H1*(-T2+T1)/(4.576*(273+T1)*(273+T2)))\n",
+ "\n",
+ "# Results\n",
+ "print 'ideal solubility of napthalene = %.3f '%(n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ideal solubility of napthalene = 0.266 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.5 Page No : 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R = 1.987 \t\t\t#cal mole**-1 K**-1\n",
+ "T = 278.6 \t\t\t#K\n",
+ "dH = 30.2 \t\t\t#cal g**-1\n",
+ "m = 6.054 \t\t\t#gms\n",
+ "a = 0.1263 \t\t\t#degrees\n",
+ "\n",
+ "# Calculations\n",
+ "l = R*T**2/(1000*dH)\n",
+ "m1 = a/l\n",
+ "M2 = m/m1\n",
+ "\n",
+ "# Results\n",
+ "print 'molal depression consmath.tant = %.2f '%(l)\n",
+ "print ' molality = %.4f '%(m1)\n",
+ "print ' molecular weight of solute = %.f gms'%(M2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "molal depression consmath.tant = 5.11 \n",
+ " molality = 0.0247 \n",
+ " molecular weight of solute = 245 gms\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch15.ipynb b/Thermodynamics_for_Chemists/ch15.ipynb
new file mode 100755
index 00000000..80c128d0
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch15.ipynb
@@ -0,0 +1,270 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:420bfba231cfede93787915c3c2f3a006f82a824943153e719a02f61a9666037"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 : Activities and Activity coefficients"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1 Page No : 357"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p1 = 17.222 \t\t\t#mm\n",
+ "p2 = 17.535 \t\t\t#mm\n",
+ "n = 1. \t\t\t#mole\n",
+ "m = 1000 \t \t\t#gms\n",
+ "M = 18.016 \t\t \t#gms\n",
+ "\n",
+ "# Calculations\n",
+ "a = p1/p2\n",
+ "N1 = (m/M)/(n+(m/M))\n",
+ "\n",
+ "# Results\n",
+ "print 'activity = %.4f '%(a)\n",
+ "print ' activity coefficient = %.4f '%(N1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "activity = 0.9821 \n",
+ " activity coefficient = 0.9823 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2 Page No : 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "M = 0.1 \t\t\t#molal\n",
+ "Tf = 0.345 \t\t\t#C\n",
+ "k = -9.702*10**-3\n",
+ "k1 = -5.2*10**-6\n",
+ "\n",
+ "# Calculations\n",
+ "a = math.e**(k*Tf+k1*Tf**2)\n",
+ "\n",
+ "# Results\n",
+ "print 'activity = %.4f '%(a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "activity = 0.9967 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3 Page No : 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "R = 1.98*10**-4 \t\t\t#cal mole**-1 deg**-1\n",
+ "T = 20. \t\t\t#C\n",
+ "E = -0.11118 \t \t\t#volt\n",
+ "n2 = 0.00326\n",
+ "n21 = 0.0986\n",
+ "\n",
+ "# Calculations\n",
+ "r = 10**((-E/(R*(273.16+T)))-math.log10(n21)+math.log10(n2))+n21\n",
+ "a2 = r*n21\n",
+ "\n",
+ "# Results\n",
+ "print 'a2/N2 = %.3f '%(r)\n",
+ "print ' a2 = %.4f '%(a2)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2/N2 = 2.820 \n",
+ " a2 = 0.2780 \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.4 Page No : 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n1 = 0.424 \t\t\t#mole fraction\n",
+ "a2 = 3.268\n",
+ "n = 8.3\n",
+ "\n",
+ "# Calculations\n",
+ "r = a2/(n*n1)\n",
+ "\n",
+ "# Results\n",
+ "print 'a2/N2 = %.3f '%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a2/N2 = 0.929 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5 Page No : 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "e = 0.7865 \t \t\t#volt\n",
+ "emf = 0.8085 \t\t\t#emf\n",
+ "T = 500. \t\t\t#C\n",
+ "R = 1.98*10**-4 \t\t\t#cal mol6-1 deg**-1\n",
+ "n2 = 0.5937\n",
+ "\n",
+ "# Calculations\n",
+ "a2 = 10**((e-emf)/(R*(273+T)))\n",
+ "r = a2/n2\n",
+ "\n",
+ "# Results\n",
+ "print 'activity coefficient = %.2f '%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "activity coefficient = 1.21 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6 Page No : 371"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "ac = 1.211\n",
+ "n2 = 0.5937\n",
+ "\n",
+ "# Calculations\n",
+ "b = math.log10(ac)/(1-n2)**2\n",
+ "\n",
+ "# Results\n",
+ "print 'Constant = %.4f '%(b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constant = 0.5037 \n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch16.ipynb b/Thermodynamics_for_Chemists/ch16.ipynb
new file mode 100755
index 00000000..e782e478
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch16.ipynb
@@ -0,0 +1,157 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7eec017415569aca37aee9a00f020d7a26daf7fdc28863ef2749469da6c56db1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 : Solutions of Electrolytes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.1 Page No : 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "v = 1.\n",
+ "m = 0.5\n",
+ "\n",
+ "# Calculations\n",
+ "m1 = 2*m\n",
+ "m2 = 1*m\n",
+ "v1 = 2*v\n",
+ "v2 = 1*v\n",
+ "M = (m1**2*m2)**(1/(v1+v2))\n",
+ "\n",
+ "# Results\n",
+ "print 'mean ionic molality = %.1f '%(m2)\n",
+ "print ' mean ionic molality = %.3f '%(M)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean ionic molality = 0.5 \n",
+ " mean ionic molality = 0.794 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.2 Page No : 399"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 2\n",
+ "m = 0.01422\n",
+ "m1 = 0.00869\n",
+ "m2 = 0.025\n",
+ "\n",
+ "# Calculations\n",
+ "M = m2+m1\n",
+ "M1 = (M*m1)**(1./n)\n",
+ "r = m/M1\n",
+ "\n",
+ "# Results\n",
+ "print 'mean ionic molality = %.3f '%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean ionic molality = 0.831 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 16.3 Page No : 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "mu = 1\n",
+ "mb = 2\n",
+ "m = 1 \n",
+ "m1 = 2\n",
+ "\n",
+ "# Calculations\n",
+ "ym1 = 0.5*(mu*m**2+mu*m**2)\n",
+ "ym2 = 0.5*(mb*m**2+m*m1**2)\n",
+ "ym3 = 0.5*(mu*m1**2+mu*m1**2)\n",
+ "\n",
+ "# Results\n",
+ "print 'ionic strength of solution = %.f *m'%(ym1)\n",
+ "print ' ionic strength of solution = %.f *m'%(ym2)\n",
+ "print ' ionic strength of solution = %.f *m'%(ym3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ionic strength of solution = 1 *m\n",
+ " ionic strength of solution = 3 *m\n",
+ " ionic strength of solution = 4 *m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch17.ipynb b/Thermodynamics_for_Chemists/ch17.ipynb
new file mode 100755
index 00000000..202ae565
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch17.ipynb
@@ -0,0 +1,104 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:5d3d45dd2b0a1624f92837d3a7578318e5309e0f2974bf7ce73a51b4be600cda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 : The Debye Huckel Theory"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.1 Page No : 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "s = 1.771*10**-4 \t\t\t#mole litre**-1\n",
+ "s1 = 0.3252*10**-2 \t\t\t#mole litre**-1\n",
+ "\n",
+ "# Calculations\n",
+ "S = s*10**(0.509*(math.sqrt(s+s1)-math.sqrt(s)))\n",
+ "\n",
+ "# Results\n",
+ "print 'Solubility = %.2e mole litre**-1'%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Solubility = 1.87e-04 mole litre**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 17.2 Page No : 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "a = 0.1\n",
+ "\n",
+ "# Calculations\n",
+ "r = 10**(-0.509*math.sqrt(a)/(1+math.sqrt(a)))\n",
+ "\n",
+ "# Results\n",
+ "print 'mean ionic acctivity coefficient = %.3f '%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean ionic acctivity coefficient = 0.755 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch18.ipynb b/Thermodynamics_for_Chemists/ch18.ipynb
new file mode 100755
index 00000000..3079ae3a
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch18.ipynb
@@ -0,0 +1,326 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b75b58d1ed9b57bf27e69f44b206b58457285a660f3ccfef707e8c28d3e7645c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 : Partial Molar Properties"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.1 Page No : 429"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "k1 = 16.4 \t\t\t#ml mole**-1\n",
+ "k2 = 2.5 \t\t\t#ml mole**-2\n",
+ "k3 = -1.2 \t\t\t#ml mole**-3\n",
+ "m = 1 \t\t\t#molal\n",
+ "\n",
+ "# Calculations\n",
+ "Ov = k1+k2*m+k3*m**2\n",
+ "\n",
+ "# Results\n",
+ "print 'Apparent molar volume = %.1f ml mole**-1'%(Ov)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Apparent molar volume = 17.7 ml mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.2 Page No : 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 1 \t\t\t#mole\n",
+ "n1 = 400 \t\t\t#mole\n",
+ "T = 25 \t \t\t#C\n",
+ "H1 = 5410 \t\t\t#cal\n",
+ "H2 = -5020 \t\t\t#cal\n",
+ "\n",
+ "# Calculations\n",
+ "dH = -(H1+H2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat required to remove the water = %.f cal'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat required to remove the water = -390 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.3 Page No : 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n = 1 \t\t\t#mole\n",
+ "n1 = 400 \t\t\t#mole\n",
+ "T = 25 \t \t\t#C\n",
+ "H1 = 23540 \t\t\t#cal\n",
+ "H2 = -5410 \t\t\t#cal\n",
+ "\n",
+ "# Calculations\n",
+ "dH = -(H1+H2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat required to remove the water = %.f cal'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat required to remove the water = -18130 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.4 Page No : 446"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n1 = 1 \t\t\t#mole\n",
+ "n2 = 400 \t\t\t#mole\n",
+ "H1 = 5638 \t\t\t#cal\n",
+ "H2 = 23540 \t\t\t#cal\n",
+ "L = -1.54 \t\t\t#cal/mole\n",
+ "l1 = -2.16 \t\t\t#cal/mole\n",
+ "l2 = 5842 \t\t\t#cal/mole\n",
+ "\n",
+ "# Calculations\n",
+ "Q1 = n2*L+H1+H2\n",
+ "Q2 = n2*l1+2*l2\n",
+ "Q = Q2-Q1\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat change = %.f cal'%(Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat change = -17742 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.5 Page No : 447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "L2 = 6000. \t \t\t#cal\n",
+ "v = 3. \n",
+ "T = 25. \t\t\t#C\n",
+ "T1 = 0. \t \t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "R = ((L2/(v*4.576))*(T-T1)/((273+T1)*(273+T)))\n",
+ "r = 10**((L2/(v*4.576))*(T-T1)/((273+T1)*(273+T)))\n",
+ "\n",
+ "# Results\n",
+ "print 'Ratio = %.3f '%(R)\n",
+ "print ' Relative change in mean ionic coefficient = %.2f '%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio = 0.134 \n",
+ " Relative change in mean ionic coefficient = 1.36 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.6 Page No : 450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "L2 = 4120. \t\t\t#cal\n",
+ "l = -108. \t\t\t#cal mole**-1\n",
+ "L21 = -306. \t\t\t#cal mole**-1\n",
+ "n1 = 55.5 \t\t\t#moles\n",
+ "n2 = 1. \t\t\t#mole\n",
+ "\n",
+ "# Calculations\n",
+ "Q = L21+L2\n",
+ "\n",
+ "# Results\n",
+ "print 'differential heat of solution = %.f cal mole**-1'%(Q) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "differential heat of solution = 3814 cal mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 18.7 Page No : 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n1 = 2. \t\t\t#moles\n",
+ "n2 = 100. \t\t\t#moles\n",
+ "Cp1 = 17.9 \t\t\t#cal deg**-1 mole**-1\n",
+ "Cp2 = 21.78 \t\t\t#cal deg**-1 mole**-1\n",
+ "T1 = 30 \t\t\t#C\n",
+ "T2 = 25 \t\t\t#C\n",
+ "L1 = 5780. \t\t\t#cal\n",
+ "L2 = 5410. \t\t\t#cal\n",
+ "h = 5620. \t\t\t#cal mole**-1\n",
+ "n3 = 3. \t\t\t#moles\n",
+ "Cp3 = 16.55 \t\t\t#cal deg**-1 mole**-1\n",
+ "\n",
+ "# Calculations \n",
+ "Cp = n2*Cp1+n1*Cp2\n",
+ "Q = (T2-T1)*Cp\n",
+ "Q1 = (n1*L1+L2)\n",
+ "Q2 = n3*h\n",
+ "dQ = Q2-Q1\n",
+ "dH = Q+dQ\n",
+ "HC = 300*Cp1+n3*Cp3\n",
+ "t = -dH/HC\n",
+ "Tf = T2+t\n",
+ "\n",
+ "# Results\n",
+ "print 'Increase in temperature = %.2f deg'%(t) \n",
+ "print ' Final temperature = %.1f deg'%(Tf) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Increase in temperature = 1.71 deg\n",
+ " Final temperature = 26.7 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch19.ipynb b/Thermodynamics_for_Chemists/ch19.ipynb
new file mode 100755
index 00000000..d650548a
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch19.ipynb
@@ -0,0 +1,297 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2af58c41d3e9a37ed73ccccf2f28cbf6901991c8026760ee1d6bb639ca43e341"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 : EMF and the thermodynamics of ions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.1 Page No : 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h = 23070. \t\t\t#cal volt**-1 g equiv**-1\n",
+ "n = 2. \t\t\t#electrons\n",
+ "e = 1.005 \t\t\t#volts\n",
+ "T = 25. \t\t\t#C\n",
+ "e1 = 1.015 \t\t\t#volts\n",
+ "\n",
+ "# Calculations\n",
+ "dH = (-n*h*(e-((273.2+T)*(e-e1)/T)))/1000\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat change in the cell reaction = %.2f kcal'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat change in the cell reaction = -51.87 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.2 Page No : 482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "E = -0.344 \t\t\t#volt\n",
+ "E1 = -0.401 \t\t\t#volt\n",
+ "R = 0.05914 \t\t\t#volt\n",
+ "n = 4.\n",
+ "T = 25. \t \t\t#C\n",
+ "H = -7300. \t\t \t#cal\n",
+ "\n",
+ "# Calculations\n",
+ "po2 = 10**(-n*(E-E1)/R)\n",
+ "dH = -0.5*n*H+0.5*n*(273+T)\n",
+ "\n",
+ "# Results\n",
+ "print 'Pressure of Oxygen = %.1e atm'%(po2)\n",
+ "print ' Change in Enthalpy = %.f cal'%(dH+4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of Oxygen = 1.4e-04 atm\n",
+ " Change in Enthalpy = 15200 cal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.3 Page No : 489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "H = -60.15 \t\t\t#kcal\n",
+ "e = 2.924 \t\t\t#volt\n",
+ "v = 23070. \t\t\t#cc\n",
+ "T = 25. \t\t\t#C\n",
+ "Sm = 15.2 \t\t\t#E.U.mole**-1\n",
+ "Sg = 31.2 \t\t\t#E.U.mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "dS = (H*1000-(-e*v))/(273.2+T)\n",
+ "Sk = (dS+Sm)-0.5*Sg\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy of pottasium ion = %.1f E.U.g ion**-1'%(Sk)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy of pottasium ion = 24.1 E.U.g ion**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.4 Page No : 490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "dS = -4.61 \t\t\t#E.Ugm ion**-1\n",
+ "SH = 31.21 \t\t\t#E.U gm ion**-1\n",
+ "Sm = 9.95 \t\t\t#E.U gm ion**-1\n",
+ "\n",
+ "# Calculations\n",
+ "Szn = dS-SH+Sm\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy of zinc ion = %.1f E.U.g ion**-1'%(Szn)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy of zinc ion = -25.9 E.U.g ion**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.5 Page No : 491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "n = 2.\n",
+ "T = 25. \t\t\t#C\n",
+ "R = 4.576 \n",
+ "is_ = 9.57*10**-6\n",
+ "n1 = 4.\n",
+ "f = 0.509 \t\t\t#volts\n",
+ "dH = 5970. \t\t\t#cal\n",
+ "SBa = 2.3 \t\t\t#E.U. gm ion**-1\n",
+ "Sba = 31.5 \t\t\t#E.U. gm ion6-1\n",
+ "\n",
+ "# Calculations\n",
+ "r = 10**(-n1*f*math.sqrt(n1*is_))\n",
+ "dF = -n*R*(273.2+T)*math.log10(is_*r)\n",
+ "dS = (dH-dF)/(273.2+T)\n",
+ "Sso = Sba-SBa+dS\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy of sulfate ion = %.1f E.U.g ion**-1'%(Sso)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy of sulfate ion = 3.2 E.U.g ion**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 19.6 Page No : 496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "f1 = 20.66 \t\t\t#kcal\n",
+ "h1 = 21.6 \t\t\t#kcal\n",
+ "e1 = 50.34 \t\t\t#kcal\n",
+ "f2 = 0 \t\t\t#kcal\n",
+ "f3 = -56.70 \t\t\t#kcal\n",
+ "f4 = -26.25 \t\t\t#kcal\n",
+ "h2 = 0 \t \t\t#kcal\n",
+ "h3 = -68.32 \t\t\t#kcal\n",
+ "h4 = -49.5 \t\t\t#kcal\n",
+ "e2 = 49.00 \t\t\t#kcal\n",
+ "e3 = 16.75 \t\t\t#kcal\n",
+ "e4 = 35 \t\t\t#kcal\n",
+ "n1 = 2\n",
+ "n2 = 1.5\n",
+ "n3 = 1\n",
+ "T = 25 \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "dF = n1*f4-(n1*f1+f3)\n",
+ "dH = n1*h4-(n1*h1+h3)\n",
+ "dS = n1*e4-(n1*e1+e3+n2*e2)\n",
+ "dS1 = (dH-dF)*1000/(273.2+T)\n",
+ "\n",
+ "# Results\n",
+ "print 'free energy = %.2f kcal'%(dF)\n",
+ "print ' heat of formation = %.1f kcal'%(dH)\n",
+ "print ' Entropy = %.1f E.U'%(dS)\n",
+ "print ' Entropy umath.sing heat of formation and free energy = %.1f E.U'%(dS1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "free energy = -37.12 kcal\n",
+ " heat of formation = -73.9 kcal\n",
+ " Entropy = -120.9 E.U\n",
+ " Entropy umath.sing heat of formation and free energy = -123.3 E.U\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch2.ipynb b/Thermodynamics_for_Chemists/ch2.ipynb
new file mode 100755
index 00000000..103f6417
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch2.ipynb
@@ -0,0 +1,266 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7896b33251e7015813ab8cc120828b27506a0ecc4b27e995a44efccaece33084"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2 : Properties of thromodynamic systems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 Page No : 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 40 \t\t\t#C\n",
+ "R = 0.0820 \t\t\t#lit-atm deg**-1 mol**-1\n",
+ "v = 0.381 \t\t\t#lit\n",
+ "b = 0.043 \t\t\t#lit\n",
+ "a = 3.6 \n",
+ "\n",
+ "# Calculations\n",
+ "P = (R*(273+T)/(v-b))-(a/v**2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Pressure = %.1f atm'%(P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 51.1 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2 Page No : 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 0 \t \t\t#C\n",
+ "R = 0.0820 \t\t\t#lit-atm deg**-1 mol**-1\n",
+ "p = 400. \t\t\t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "V = R*(273+T)/p\n",
+ "\n",
+ "# Results\n",
+ "print 'Volume of the ideal gas = %.4f lit mol**-1'%(V)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of the ideal gas = 0.0560 lit mol**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No : 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p = 400. \t\t\t#atm\n",
+ "T = 273 \t \t\t#K\n",
+ "R = 0.0820 \t\t\t#lit-atm deg**-1 mol**-1\n",
+ "k = 1.27\n",
+ "\n",
+ "# Calculations\n",
+ "V = k*R*T/p\n",
+ "\n",
+ "# Results\n",
+ "print 'Volume of the ideal gas = %.3f lit mol**-1'%(V)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of the ideal gas = 0.071 lit mol**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 Page No : 29"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "V = 0.381 \t\t\t#lit\n",
+ "T = 313. \t\t\t#K\n",
+ "R = 0.0820 \t\t\t#lit-atm deg**-1 mol**-1\n",
+ "pc = 72.9 \t\t\t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "p = R*T/V\n",
+ "r = p/pc\n",
+ "\n",
+ "# Results\n",
+ "print 'Pressure of carbon dioxide gas = %.1f atm'%(p)\n",
+ "print ' ratio = %.3f '%(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure of carbon dioxide gas = 67.4 atm\n",
+ " ratio = 0.924 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5 Page No : 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n1 = 0.25 \t\t\t#mole\n",
+ "n2 = 0.75 \t\t\t#mole\n",
+ "l = 0.0832 \t\t\t#lit\n",
+ "T = 50 \t\t\t#C\n",
+ "p1 = 404 \t\t\t#atm\n",
+ "p2 = 390 \t\t\t#atm\n",
+ "\n",
+ "# Calculations\n",
+ "P = n1*p1+n2*p2\n",
+ "\n",
+ "# Results\n",
+ "print 'Total Pressure = %.f atm'%(P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Pressure = 394 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 Page No : 31"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "n1 = 0.25 \t\t\t#mole\n",
+ "nh = 0.75 \t\t\t#mole\n",
+ "p = 400. \t\t\t#atm\n",
+ "T = 50. \t\t\t#C\n",
+ "vn = 0.083 \t\t\t#lit\n",
+ "vh = 0.081 \t\t\t#lit\n",
+ "\n",
+ "# Calculations\n",
+ "V = n1*vn+vh*nh\n",
+ "\n",
+ "# Results\n",
+ "print 'Volume of given mixture is = %.3f lit'%(V)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of given mixture is = 0.082 lit\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch3.ipynb b/Thermodynamics_for_Chemists/ch3.ipynb
new file mode 100755
index 00000000..57313e24
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch3.ipynb
@@ -0,0 +1,110 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:13323936ef2e62d44534d1e2a20550e892e59337bee53263e64e756951d19fc1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 3 : The first law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 Page No : 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p = 1.013*10**6 \t\t\t#dynecm**2\n",
+ "T = 273.16 \t\t\t#K\n",
+ "V = 773.4 \t\t\t#cc\n",
+ "n = 0.0687 \t\t\t#cal\n",
+ "#CALCCULATIONS\n",
+ "W = p*V/T\n",
+ "k = W/n\n",
+ "\n",
+ "# Results\n",
+ "print 'Work of expansion = %.2e ergs'%(W)\n",
+ "print ' 1 cal = %.2e ergs'%(k)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of expansion = 2.87e+06 ergs\n",
+ " 1 cal = 4.17e+07 ergs\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 Page No : 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "R = 8.314*10**7 \t\t\t#J/mol K\n",
+ "T = 298.2 \t \t\t#K\n",
+ "p1 = 1. \t\t\t#atm\n",
+ "p2 = 5.\t \t\t #atm\n",
+ "\n",
+ "# Calculations\n",
+ "W = R*T*math.log(p1/p2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Work of expansion = %.2e ergs mole**-1 '%(W)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of expansion = -3.99e+10 ergs mole**-1 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch4.ipynb b/Thermodynamics_for_Chemists/ch4.ipynb
new file mode 100755
index 00000000..f2a76ad2
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch4.ipynb
@@ -0,0 +1,270 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:17fe11bebdee4f72db68fc477ded3a039f0dd502d606be55f2589ab50a034b6b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4 : Heat changes and heat capacities"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.1 Page No : 54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 400. \t\t\t#K\n",
+ "T2 = 300. \t \t\t#K\n",
+ "k1 = 6.095 \t\t \t#cal mole**-1 K**-1\n",
+ "k2 = 3.253*10**-3 \t\t\t#cal mole**-1 K**-2\n",
+ "k3 = -1.017*10**-6 \t\t\t#cal mole**-1 K**-3\n",
+ "\n",
+ "# Calculations\n",
+ "dH = k1*(T1-T2)+0.5*k2*(T1**2-T2**2)+(1./3)*k3*(T1**3-T2**3)\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat required to raise the temperature = %d cal-mole**-1'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat required to raise the temperature = 710 cal-mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 Page No : 56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p1 = 10. \t\t\t#atm\n",
+ "p2 = 1. \t\t\t#atm\n",
+ "T1 = 25. \t\t\t#C\n",
+ "n = 2/5.\n",
+ "\n",
+ "# Calculations\n",
+ "T2 = (p1/p2)**n*(273+T1)-273\n",
+ "\n",
+ "# Results\n",
+ "print 'Final temperature = %.f C'%(T2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = 476 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 Page No : 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "p1 = 20. \t\t\t#atm\n",
+ "p2 = 200. \t\t\t#atm\n",
+ "T1 = 25. \t\t\t#C\n",
+ "n = 2/7.\n",
+ "\n",
+ "# Calculations\n",
+ "T2 = (p1/p2)**n*(273+T1)-273\n",
+ "\n",
+ "# Results\n",
+ "print 'Final temperature = %.f C'%(T2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = -119 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 Page No : 58"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Cv = 5*4.18*10**7 \t\t\t#ergs deg**-1 mole**-1\n",
+ "T1 = 25. \t\t\t#C\n",
+ "P2 = 5. \t\t\t#atm\n",
+ "P1 = 1. \t\t\t#atm\n",
+ "n = 2./7\n",
+ "\n",
+ "# Calculations\n",
+ "W = Cv*(273+T1)*(1-(P2/P1)**n)\n",
+ "\n",
+ "# Results\n",
+ "print 'Work of expansion = %.2e ergs mole**-1'%(W)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work of expansion = -3.64e+10 ergs mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No : 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Ti = 25. \t\t\t#C\n",
+ "p = 200. \t\t\t#atm\n",
+ "p = 1. \t\t\t#atm\n",
+ "dT = 31 \t\t\t#C \n",
+ "\n",
+ "# Calculations\n",
+ "Tf = Ti-dT\n",
+ "\n",
+ "# Results\n",
+ "print 'Final temperature = %.f degrees'%(Tf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = -6 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6 Page No : 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "k1 = 6.45 \t\t\t#cal deg**-1 mol**-1\n",
+ "k2 = 1.41*10**-3 \t\t\t#cal deg**-2 mol**-1\n",
+ "k3 = -0.81*10**-7 \t\t\t#cal deg**-3 mol**-1\n",
+ "T = 300 \t\t \t#K\n",
+ "k4 = -0.21*1.36 \t\t\t#cal deg**-3 mol**-1 atm**-1\n",
+ "k5 = 6.87*1.5\t\t\t #cal deg**-3 mol**-1 atm**-2\n",
+ "p = 10**-3\n",
+ "\n",
+ "# Calculations\n",
+ "Cp = k1+k2*T+k3*T**2\n",
+ "dCp = k2+2*k3*T\n",
+ "dCp1 = k4*p+k5*p\n",
+ "\n",
+ "# Results\n",
+ "print 'Cp = %.2f cal deg**-1 mole**-1'%(Cp)\n",
+ "print ' Specific heat at temperature = %.2e cal deg**-2 mole**-1'%(dCp)\n",
+ "print ' Specific heat at pressure = %.2e cal deg**-2 mole**-1 atm**-1'%(dCp1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cp = 6.87 cal deg**-1 mole**-1\n",
+ " Specific heat at temperature = 1.36e-03 cal deg**-2 mole**-1\n",
+ " Specific heat at pressure = 1.00e-02 cal deg**-2 mole**-1 atm**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch5.ipynb b/Thermodynamics_for_Chemists/ch5.ipynb
new file mode 100755
index 00000000..f1f6c8f4
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch5.ipynb
@@ -0,0 +1,496 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3e8b42215365cf1bfa3ac9f200471823539f88439d8a1274c785506152bd8d0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 : Thermochemistry"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1 Page No : 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Q1 = -1227 \t \t\t#kcal\n",
+ "R = 2*10**-3 \t\t\t#kcal\n",
+ "T = 25 \t\t\t#C\n",
+ "dn = -2\n",
+ "\n",
+ "# Calculations\n",
+ "Qp = Q1+R*(273+T)*dn\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of reaction = %.1f kcal'%(Qp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of reaction = -1228.2 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 Page No : 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "H1 = -337.3 \t\t\t#kcal\n",
+ "H2 = -68.3 \t\t\t#kcal\n",
+ "H3 = -372.8 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "Ht = H1+H2-H3\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat change of reaction = %.1f kcal'%(Ht)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat change of reaction = -32.8 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No : 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "dH = -1228.2 \t\t\t#kcal\n",
+ "n1 = 10\n",
+ "n2 = 4\n",
+ "dH1 = -94.05 \t\t\t#kcal\n",
+ "dH2 = -68.32 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "x = n1*dH1+n2*dH2-dH\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of formation = %.1f kcal'%(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of formation = 14.4 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 Page No : 75"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "H1 = -29.6 \t\t\t#kcal\n",
+ "H2 = -530.6 \t\t\t#kcal\n",
+ "H3 = -94 \t\t\t#kcal\n",
+ "H4 = -68.3 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "dH1 = -(H1+H2-3*H3-4*H4)\n",
+ "dH2 = -dH1+3*H3+3*H4\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of combustion = %.f kcal'%(dH1)\n",
+ "print ' Standard heat of formation = %.1f kcal'%(dH2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of combustion = 5 kcal\n",
+ " Standard heat of formation = -491.9 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No : 79"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 25. \t\t\t#C\n",
+ "T2 = 100. \t\t\t#C\n",
+ "dH1 = -57.8 \t\t\t#kcal\n",
+ "Cp1 = 8.03 \t\t\t#cal deg**-1\n",
+ "Cp2 = 6.92 \t\t\t#cal deg**-1\n",
+ "Cp3 = 7.04 \t\t\t#cal deg**-1\n",
+ "\n",
+ "# Results\n",
+ "Cp = Cp1-(Cp2+0.5*Cp3)\n",
+ "dH2 = Cp*10**-3*(T2-T1)+dH1\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard heat of formation = %.2f kcal mole**-1'%(dH2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard heat of formation = -57.98 kcal mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No : 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = -2.776\n",
+ "b = 0.947*10**-3\n",
+ "c = 0.295*10**-6\n",
+ "T1 = 373 \t\t\t#K\n",
+ "T2 = 298 \t \t\t#K\n",
+ "dH1 = -57.8 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "dH = a*(T1-T2)+0.5*b*(T1**2-T2**2)+0.33*c*(T1**3-T2**3)\n",
+ "dH2 = dH1+(dH/1000)\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat obtained = %.f cal '%(dH)\n",
+ "print ' Smath.tanadard heat of formation = %.2f kcal mole**-1'%(dH2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat obtained = -182 cal \n",
+ " Smath.tanadard heat of formation = -57.98 kcal mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 Page No : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a1 = 6.189 \n",
+ "a2 = 3.225\n",
+ "a3 = 10.421\n",
+ "b1 = 7.787*10**-3\n",
+ "b2 = 0.707*10**-3\n",
+ "b3 = -0.3*10**-3\n",
+ "c1 = -0.728*10**-6\n",
+ "c2 = -0.04014*10**-6\n",
+ "c3 = 0.7212*10**-6\n",
+ "dH = -9.13 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "a = -(a2+a3-a1)*10**-3\n",
+ "b = -0.5*(b2+b3-b1)*10**-3\n",
+ "c = -0.33*(c2+c3-c1)*10**-3\n",
+ "\n",
+ "# Results\n",
+ "print 'a = %.2e kcal mole**-1'%(a)\n",
+ "print ' b = %.2e kcal mole**-1'%(b)\n",
+ "print ' c = %.2e kcal mole**-1'%(c)\n",
+ "print ' dH = %.2f kcal mole**-1'%(dH)\n",
+ "\n",
+ "# note : rounding off error.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a = -7.46e-03 kcal mole**-1\n",
+ " b = 3.69e-06 kcal mole**-1\n",
+ " c = -4.65e-10 kcal mole**-1\n",
+ " dH = -9.13 kcal mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No : 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "dH = 31.39 \t\t\t#kcal\n",
+ "k1 = 3.397*10**-3 \t\t\t#kcal K**-1\n",
+ "k2 = -1.68*10**-6 \t\t\t#kcal K**-2\n",
+ "k3 = -0.022*10**-9 \t\t\t#kcal K**-3\n",
+ "k4 = 1.17*10**2 \t\t\t#kcal K\n",
+ "T = 25 \t\t\t#C\n",
+ "#CALCULTIONS\n",
+ "H = dH-(k1*(273+T)+k2*(273+T)**2+k3*(273+T)**3+k4*(273+T)**-1)\n",
+ "\n",
+ "# Results\n",
+ "print 'Change in enthalpy = %.2f kcal'%(H)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in enthalpy = 30.13 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No : 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from numpy import *\n",
+ "# Variables\n",
+ "dH = 214470 \t\t\t#kcal mole**-1\n",
+ "a = 72.43 \t \t\t#calmole**-1deg**-1\n",
+ "b = 13.08*10**-3 \t\t\t#kcalmole**-1\n",
+ "c = -1.172*10**-6 \t\t\t#kcalmole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "vec =roots([c,b,a,-dH])\n",
+ "T = vec[2]\n",
+ "\n",
+ "# Results\n",
+ "print 'Temperature = %.f C'%(T+15)\n",
+ "\n",
+ "# note : rounding off error because of roots()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature = 2253 C\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.10 Page No : 88"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "c1 = 9.3 \t\t\t#cal deg**-1\n",
+ "c2 = 6.3 \t\t\t#cal deg**-1\n",
+ "n = 2.\n",
+ "dH = -57500. \t\t\t#cal\n",
+ "V = 3. \t\t \t#cc\n",
+ "v1 = 3.5 \t\t\t#cc\n",
+ "T1 = 25. \t\t\t#C\n",
+ "p1 = 1. \t\t\t #atm\n",
+ "\n",
+ "# Calculations\n",
+ "T2 = (-dH/(c1+n*c2))+298\n",
+ "p2 = p1*V*T2/(v1*(273+T1))\n",
+ "\n",
+ "# Results\n",
+ "print 'Temperature final = %.f K'%(round(T2,-1))\n",
+ "print ' pressure final = %.1f atm'%(p2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature final = 2920 K\n",
+ " pressure final = 8.4 atm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No : 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Hc = 234.4 \t\t\t#kcal\n",
+ "Hdc = 300 \t\t\t#kcal\n",
+ "Hch = 436.5 \t\t\t#kcal\n",
+ "Hco = 152 \t\t\t#kcal\n",
+ "Hsco = 70 \t\t\t#kcal\n",
+ "Hoh = 110.2 \t\t\t#kcal\n",
+ "Hoo = 885 \t\t\t#kcal\n",
+ "Hb = 38 \t\t\t#kcal\n",
+ "Hc = 28 \t\t\t#kcal\n",
+ "Ha = 206 \t\t\t#kcal\n",
+ "H1co = 2128 \t\t\t#kcal\n",
+ "H1oh = 661 \t\t\t#kcal\n",
+ "H1c = 231 \t\t\t#kcal\n",
+ "\n",
+ "# Calculations\n",
+ "dH = Hc+Hdc+Hch+Hco+Hsco+Hoh+Hoo+Ha+Hb+Hc-H1co-H1oh-H1c\n",
+ "\n",
+ "# Results\n",
+ "print 'Heat of combustion = %.f kcal'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat of combustion = -766 kcal\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch6.ipynb b/Thermodynamics_for_Chemists/ch6.ipynb
new file mode 100755
index 00000000..629d76bb
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch6.ipynb
@@ -0,0 +1,398 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:643ece1a205940084a51dab36a68239a7d1fd6078e2786fc61d4036267e5fc54"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 : Calculation of energy and heat capcity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1 Page No : 105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "m = 5.313*10**-23 \t\t\t#g\n",
+ "k = 1.38*10**-16 \n",
+ "T = 298 \t\t\t#K\n",
+ "R = 82.06 \t\t\t#ml-atm /mol K\n",
+ "h = 6.624*10**-27 \t\t\t#J /mol\n",
+ "\n",
+ "# Calculations\n",
+ "Qt = (2*math.pi*m*k*T)**1.5*R*T/h**3\n",
+ "\n",
+ "# Results\n",
+ "print 'Qt = %.2e '%(Qt)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Qt = 4.28e+30 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2 Page No : 107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "Qe = 4.029\n",
+ "Qe1 = -37.02\n",
+ "Qe2 = 4.695*10**4\n",
+ "T = 300 \t\t\t#K\n",
+ "R = 1.98 \t\t\t#cal /mol K\n",
+ "Qe3 = 4.158\n",
+ "Qe4 = -200.8\n",
+ "Qe5 = 2.546*10**5\n",
+ "T1 = 500 \t\t\t#K\n",
+ "\n",
+ "# Calculations\n",
+ "Ce = R*((Qe2/Qe)-(Qe1/Qe)**2)/T**2\n",
+ "Ce1 = R*((Qe5/Qe3)-(Qe4/Qe3)**2)/T1**2\n",
+ "\n",
+ "# Results\n",
+ "print 'electronic contribution = %.3f cal deg**-1.g.atom**-1'%(Ce)\n",
+ "print ' electronic contribution = %.3f cal deg**-1.g.atom**-1'%(Ce1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "electronic contribution = 0.255 cal deg**-1.g.atom**-1\n",
+ " electronic contribution = 0.466 cal deg**-1.g.atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No : 111"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "I = 0.459*10**-40 \t\t\t#g cm**2\n",
+ "k = 1.38*10**-16\n",
+ "T = 300 \t\t\t#K\n",
+ "h = 6.624*10**-27 \t\t\t#J/mol\n",
+ "I1 = 245*10**-40 \t\t\t# g cm**2\n",
+ "\n",
+ "# Calculations\n",
+ "Qr = I*k*T*8*math.pi**2*0.5/h**2\n",
+ "Qr1 = I1*k*T*8*math.pi**2/h**2\n",
+ "\n",
+ "# Results\n",
+ "print 'Rotational Partition = %.2f '%(Qr)\n",
+ "print ' Rotational Partition = %.f '%(Qr1)\n",
+ "\n",
+ "# note : rounding off error. please check."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rotational Partition = 1.71 \n",
+ " Rotational Partition = 1825 \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 Page No : 114"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "h = 1.439\n",
+ "T = 300. \t\t\t#K\n",
+ "w = 4405. \t\t\t#cm**-1\n",
+ "w1 = 565. \t\t\t#cm**-1\n",
+ "\n",
+ "# Calculations\n",
+ "Qv1 = (1-math.e**(-h*w/T))**-1\n",
+ "Qv2 = (1-math.e**(-h*w1/T))**-1\n",
+ "\n",
+ "# Results\n",
+ "print 'Vibrational Partition = %.3f '%(Qv1)\n",
+ "print ' Vibrational Partition = %.3f '%(Qv2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational Partition = 1.000 \n",
+ " Vibrational Partition = 1.071 \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No : 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "h = 1.439\n",
+ "T = 300 \t\t\t#K\n",
+ "w = 565 \t\t\t#cm**-1\n",
+ "R = 1.98 \t\t\t#cal /mol K\n",
+ "n = 0.56\n",
+ "\n",
+ "# Calculations\n",
+ "Qr = h*w/T\n",
+ "Cv = n*R\n",
+ "\n",
+ "# Results\n",
+ "print 'Vibrational Partition = %.2f '%(Qr)\n",
+ "print ' Cv = %.2f cal deg**-1 mole**-1'%(Cv)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vibrational Partition = 2.71 \n",
+ " Cv = 1.11 cal deg**-1 mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No : 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R = 1.986 \t\t\t#cal deg**-1 mole**-1\n",
+ "cv1 = 0.392 \t\t\t#cal deg**-1 mole**-1\n",
+ "cv2 = 0.004 \t\t\t#cal deg**-1 mole**-1\n",
+ "cv3 = 0.003 \t\t\t#cal deg**-1 mole**-1\n",
+ "cv4 = 1.265 \t\t\t#cal deg**-1 mole**-1\n",
+ "cv5 = 0.247 \t\t\t#cal deg**-1 mole**-1\n",
+ "cv6 = 0.225 \t\t\t#cal deg**-1 mole**-1\n",
+ "\n",
+ "# Calculations\n",
+ "Cv = 3*R+cv1+cv2+cv3\n",
+ "Cv1 = 3*R+cv4+cv5+cv6\n",
+ "\n",
+ "# Results\n",
+ "print 'Total heat capacity = %.2f cal deg**-1 mole**-1'%(Cv)\n",
+ "print ' Total heat capacity = %.2f cal deg**-1 mole**-1'%(Cv1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total heat capacity = 6.36 cal deg**-1 mole**-1\n",
+ " Total heat capacity = 7.69 cal deg**-1 mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7 Page No : 123"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R = 1.98 \t\t\t#cal/mol K\n",
+ "\n",
+ "# Calculations\n",
+ "Cv = 2.856*R\n",
+ "\n",
+ "# Results\n",
+ "print 'Cv = %.2f cal deg**-1 g.atom**-1'%(Cv)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cv = 5.65 cal deg**-1 g.atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 Page No : 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R = 1.98 \t\t\t#cal/mol K\n",
+ "n = 3\n",
+ "\n",
+ "# Calculations\n",
+ "Cv = n*R*0.8673\n",
+ "\n",
+ "# Results\n",
+ "print 'Cv = %.2f cal deg**-1 g.atom**-1'%(Cv)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cv = 5.15 cal deg**-1 g.atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No : 125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R = 1.98 \t\t\t#cal/mol K\n",
+ "n = 3\n",
+ "\n",
+ "# Calculations\n",
+ "Cv = n*R*0.904\n",
+ "\n",
+ "# Results\n",
+ "print 'Cv = %.2f cal deg**-1.g.atom**-1'%(Cv)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cv = 5.37 cal deg**-1.g.atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch7.ipynb b/Thermodynamics_for_Chemists/ch7.ipynb
new file mode 100755
index 00000000..42ab7899
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch7.ipynb
@@ -0,0 +1,150 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:972acff7d45b02187de1954b7975da8c6079f6322a8b7b9b83d194bbf84a5e53"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : The second law of thermodynamics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 Page No : 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T1 = 308 \t\t\t#K\n",
+ "T2 = 373. \t\t\t#K\n",
+ "T3 = 538. \t\t\t#K\n",
+ "\n",
+ "# Calculations\n",
+ "e1 = (T2-T1)/T2\n",
+ "e2 = (T3-T1)/T3\n",
+ "\n",
+ "# Results\n",
+ "print 'Efficiency = %.3f '%(e1)\n",
+ "print ' Efficiency = %.3f '%(e2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Efficiency = 0.174 \n",
+ " Efficiency = 0.428 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 Page No : 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 25 \t\t\t#C\n",
+ "T1 = 0. \t\t\t#C\n",
+ "h = 79.8 \t\t\t#cal g**-1\n",
+ "j = 4.18*10**7 \t\t\t#ergs\n",
+ "\n",
+ "# Calculations\n",
+ "Wc = (T-T1)*h/(273+T1)\n",
+ "W = (T-T1)*h*j/(273+T1)\n",
+ "\n",
+ "# Results\n",
+ "print 'Work required = %.1f cal'%(Wc)\n",
+ "print ' Work required = %.2e ergs'%(W)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Work required = 7.3 cal\n",
+ " Work required = 3.05e+08 ergs\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3 Page No : 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "R = 1.98 \t\t\t#cal\t\t\t#mol K\n",
+ "x = 0.75\n",
+ "n = 9\n",
+ "\n",
+ "# Calculations\n",
+ "dS = -R*(n*(x/n)*math.log(x/n)+(1-x)*math.log(1-x))\n",
+ "\n",
+ "# Results\n",
+ "print 'Entropy = %.2f cal deg**-1 mole**-1'%(dS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy = 4.38 cal deg**-1 mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch8.ipynb b/Thermodynamics_for_Chemists/ch8.ipynb
new file mode 100755
index 00000000..7af17926
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch8.ipynb
@@ -0,0 +1,395 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8d5a686096634f879e0f7f78f59d72e8ae896018a8aa4a7b249e0ce878bb62b8"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 : Entropy relationships and applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 Page No : 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "k1 = 6.2\n",
+ "k2 = 1.33*10**-3\n",
+ "k3 = 6.78*10**4\n",
+ "T1 = 800. \t\t\t#C\n",
+ "T2 = 300. \t\t\t#C\n",
+ "\n",
+ "# Calculations\n",
+ "dS = k1*math.log(T1/T2)+k2*(T1-T2)-0.5*k3*(T1**-2-T2**-2)\n",
+ "\n",
+ "# Results\n",
+ "print 'Entropy increase = %.2f cal deg**-1 g atom**-1'%(dS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy increase = 7.07 cal deg**-1 g atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 Page No : 159"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 77.32 \t\t\t#K\n",
+ "p = 1 \t\t\t#atm\n",
+ "Tc = 126 \t\t\t#K\n",
+ "Pc = 33.5 \t\t\t#atm\n",
+ "Mo = 32 \t\t\t#gms\n",
+ "mo = 27 \t\t\t#gms\n",
+ "R = 1.98 \t\t\t#cl/mol K\n",
+ "\n",
+ "# Calculations\n",
+ "dS = (mo)*R*Tc**3/(Mo*Pc*T**3)\n",
+ "\n",
+ "# Results\n",
+ "print 'Entropy increase = %.3f cal deg**-1'%(dS)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entropy increase = 0.216 cal deg**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 Page No : 160"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "R = 1.987 \t\t\t#cal deg**-1 mole**-1\n",
+ "T = 25 \t\t\t#C\n",
+ "Pc = 49.7 \t\t\t#atm\n",
+ "m = 128 \t\t\t#gms\n",
+ "pc = 49.7 \t\t\t#atm\n",
+ "Tc = 154.3 \t\t\t#K\n",
+ "m1 = 9 \t \t\t#gms\n",
+ "m2 = 18\n",
+ "\n",
+ "# Calculations\n",
+ "dH = (m1*R*Tc/(m*pc))*(1-m2*(Tc/(273.15+T))**2)*-1\n",
+ "\n",
+ "# Results\n",
+ "print 'Enthalpy = %.2f cal mole**-1'%(dH)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enthalpy = 1.66 cal mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No : 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "a = 1.39 \t\t\t#lit**2\n",
+ "p = 200. \t\t\t#atm\n",
+ "R = 0.082 \t\t\t#lit-atm /mol K\n",
+ "T = 298. \t\t\t#K\n",
+ "\n",
+ "# Calculations\n",
+ "dC = (1+(2*a*p/(R*T)**2))\n",
+ "\n",
+ "# Results\n",
+ "print 'Cp-Cv = %.2f *R lit-atm mole**-1 K**-1'%(dC)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cp-Cv = 1.93 *R lit-atm mole**-1 K**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5 Page No : 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "P = 200. \t\t\t#atm\n",
+ "Tc = 126. \t\t\t#k\n",
+ "T = 25. \t\t\t#C\n",
+ "Pc = 33.5 \t\t\t#atm\n",
+ "M = 27. \t\t\t#gms\n",
+ "m = 16. \t\t\t#gms\n",
+ "\n",
+ "# Calculations\n",
+ "dC = (1+(M*Tc**3*P/(m*Pc*(273.2+T)**3)))\n",
+ "\n",
+ "# Results\n",
+ "print 'Cp-Cv = %.2f *R cal mole**-1 K**-1'%(dC)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cp-Cv = 1.76 *R cal mole**-1 K**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No : 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "T = 25. \t\t\t#C\n",
+ "b = 0.785*10**-6 \t\t\t#atm**-1\n",
+ "a = 49.2*10**-6 \t\t\t#deg**-1\n",
+ "d = 8.93 \t\t \t#gm/cc\n",
+ "aw = 63.57 \t\t\t #gms\n",
+ "\n",
+ "# Calculations\n",
+ "dC = a**2*(273.2+T)*aw*0.0242/(b*d)\n",
+ "\n",
+ "# Results\n",
+ "print 'Cp-Cv = %.3f cal deg**-1g atom**-1'%(dC)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cp-Cv = 0.158 cal deg**-1g atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No : 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "p = 100 \t\t\t#atm\n",
+ "T = 25. \t\t\t#C\n",
+ "a = 1.38\n",
+ "b = 3.92*10**-2 \t\t\t#lit atm\n",
+ "R = 0.082 \t\t\t#lit-atm mole**-1 K**-1\n",
+ "Tc = 126 \t\t\t#K\n",
+ "Pc = 33.5 \t\t\t#atm\n",
+ "M = 81. \t\t\t#gms\n",
+ "m = 32. \t\t\t#gms\n",
+ "\n",
+ "# Calculations\n",
+ "dC = a*2*p/(R*(273+T)**2)\n",
+ "dC1 = M*R*Tc**3*p/(m*Pc*(273+T)**3)\n",
+ "\n",
+ "# Results\n",
+ "print 'Cp-Cp* = %.3f lit atm deg**-1 mole**-1'%(dC)\n",
+ "print ' Cp-Cp* = %.3f lit atm deg**-1 mole**-1'%(dC1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cp-Cp* = 0.038 lit atm deg**-1 mole**-1\n",
+ " Cp-Cp* = 0.047 lit atm deg**-1 mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 Page No : 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Cp = 8.21*0.0413 \t\t\t#lit-atm deg**-1 mole**-1\n",
+ "V = 8.64*28*10**-3 \t\t\t#lit\n",
+ "r = 1.199\n",
+ "\n",
+ "# Calculations\n",
+ "u = V*(r-1)/Cp\n",
+ "\n",
+ "# Results\n",
+ "print 'Joule-thomson coefficient = %.3f deg atm**-1'%(u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Joule-thomson coefficient = 0.142 deg atm**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No : 173"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Cp = 8.21*0.0413 \t\t\t#lit-atm\n",
+ "R = 0.0821 \t\t\t#lit-atm deg**-1 mole**-1\n",
+ "p = 100 \t\t\t#atm\n",
+ "T = 20. \t\t\t#C\n",
+ "a = 1.39 \n",
+ "b = 3.92*10**-2 \t\t\t#lit-atm**2 mole\n",
+ "\n",
+ "# Calculations\n",
+ "u = (1/Cp)*((2*a/(R*(273+T)))-b-(3*a*b*p/(R**2*(273+T)**2)))\n",
+ "\n",
+ "# Results\n",
+ "print 'Joule-thomson coefficient = %.3f deg atm**-1'%(u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Joule-thomson coefficient = 0.142 deg atm**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/ch9.ipynb b/Thermodynamics_for_Chemists/ch9.ipynb
new file mode 100755
index 00000000..1bfea63b
--- /dev/null
+++ b/Thermodynamics_for_Chemists/ch9.ipynb
@@ -0,0 +1,188 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:504d1c6e130519bd52ac789c89a6f8e08c6f8ebcef05a86769153cb6fef7a117"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9 : Entropy determination and Significance"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1 Page No : 191"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "w = 35.46 \t\t\t#gms\n",
+ "T = 298.2 \t\t\t#K\n",
+ "Qc = 4.03 \n",
+ "\n",
+ "# Calculations\n",
+ "S = 4.576*(1.5*math.log10(w)+2.5*math.log10(T)+math.log10(Qc)-0.5055)\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy = %.1f cal deg**-1 g atom**-1'%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy = 39.4 cal deg**-1 g atom**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2 Page No : 195"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "M = 28. \t \t \t#gms\n",
+ "T = 25. \t \t\t#C\n",
+ "I = 13.9*10**-40 \t\t\t# gcm**2\n",
+ "s = 2\n",
+ "\n",
+ "# Calculations\n",
+ "S = 4.576*(1.5*math.log10(M)+2.5*math.log10(273.2+T)-0.5055)\n",
+ "S1 = 4.576*(math.log10(I)+math.log10(273.2+T)-math.log10(s)+38.82)\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy = %.1f E.U.mole**-1'%(S)\n",
+ "print ' Standard entropy = %.1f E.U.mole**-1'%(S1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy = 35.9 E.U.mole**-1\n",
+ " Standard entropy = 9.8 E.U.mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No : 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "import math \n",
+ "T = 25. \t\t\t#C\n",
+ "I = 4.33*10**-40 \t\t\t# gcm**2\n",
+ "I1 = 2.78*10**-40 \t\t\t#g cm**2\n",
+ "s = 3\n",
+ "\n",
+ "# Calculations\n",
+ "S = 4.576*(0.5*math.log10(I1**2*I)+1.5*math.log10(273.2+T)-math.log10(s)+58.51)\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy = %.1f cal deg**-1 mole**-1'%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy = 11.5 cal deg**-1 mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page No : 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# Variables\n",
+ "Sco = 47.3 \t\t \t#cal deg**-1 \n",
+ "Sh2 = 31.21 \t\t\t#cal deg**-1\n",
+ "Sc = 1.36 \t\t \t#cal deg**-1\n",
+ "Sho = 16.75 \t\t\t#cal deg**-1\n",
+ "\n",
+ "# Calculations\n",
+ "S = Sco+Sh2-Sc-Sho\n",
+ "\n",
+ "# Results\n",
+ "print 'Standard entropy = %.2f cal deg**-1 mole**-1'%(S)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Standard entropy = 60.40 cal deg**-1 mole**-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Chemists/screenshots/ch19.png b/Thermodynamics_for_Chemists/screenshots/ch19.png
new file mode 100755
index 00000000..c5de8eda
--- /dev/null
+++ b/Thermodynamics_for_Chemists/screenshots/ch19.png
Binary files differ
diff --git a/Thermodynamics_for_Chemists/screenshots/ch2.png b/Thermodynamics_for_Chemists/screenshots/ch2.png
new file mode 100755
index 00000000..d09fa579
--- /dev/null
+++ b/Thermodynamics_for_Chemists/screenshots/ch2.png
Binary files differ
diff --git a/Thermodynamics_for_Chemists/screenshots/ch7.png b/Thermodynamics_for_Chemists/screenshots/ch7.png
new file mode 100755
index 00000000..07803964
--- /dev/null
+++ b/Thermodynamics_for_Chemists/screenshots/ch7.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/Chapter_10.ipynb b/Thermodynamics_for_Engineers/Chapter_10.ipynb
new file mode 100755
index 00000000..6a9f7f74
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_10.ipynb
@@ -0,0 +1,579 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cbda57f5092671910369ce2a43538fa17705152cf0ccb12e90ebe176631fb4e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Vapors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific volume, enthalpy and entropy of the gas\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p=3000. #psia\n",
+ "T=250. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 1, keenan and keynes,\")\n",
+ "vf=0.01700\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dvf=-18.3*math.pow(10,-5)\n",
+ "v=vf+dvf\n",
+ "print '%s' %(\"From table 1,\")\n",
+ "hf=218.48\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dhf=6.13\n",
+ "h=hf+dhf\n",
+ "sf=0.3675\n",
+ "dsf=-4.34*math.pow(10,-3)\n",
+ "s=sf+dsf\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific volume =\",v,\" cu ft/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",s,\" Btu/lb per deg R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1, keenan and keynes,\n",
+ "From table 4,\n",
+ "From table 1,\n",
+ "From table 4,\n",
+ "Specific volume = 0.01682 cu ft/lb\n",
+ "\n",
+ " Enthalpy = 224.61 Btu/lb\n",
+ "\n",
+ " Entropy = 0.3632 Btu/lb per deg R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of the gas and moisture content\n",
+ "#Initialization of variables\n",
+ "h=1100 #Btu/lb\n",
+ "P=100 #psia\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "hg=1187.2 #Btu/lb\n",
+ "hfg=888.8 #Btu/lb\n",
+ "y=-(h-hg)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state is\",P,\"psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 100.00 psia with a moisture content of 9.81 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "v1=0.2688\n",
+ "#calculations\n",
+ "v2=3.060\n",
+ "p2=200 #psia\n",
+ "t2=600 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"State of steam is\",p2, \"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "State of steam is 200 psia and 600 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "t1=439.60 #F\n",
+ "u1=1118.4 #Btu/lb\n",
+ "#calculations\n",
+ "p2=380 #psia\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state of steam is saturated at\",p2,\"psia and\",t1,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of steam is saturated at 380 psia and 439.60 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the state of steam and moisture content\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=1 #in of Hg\n",
+ "s=1.9812 \n",
+ "#calculations\n",
+ "sf=2.0387\n",
+ "sfg=1.9473\n",
+ "y=-(s-sf)/sfg*100\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state is\",p1, \"in of Hg with a moisture content of\",y, \"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 1 in of Hg with a moisture content of 2.95 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam and temperature. Also calculate the final enthalpy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1204.8 #Btu/lb\n",
+ "q=174. #Btu/lb\n",
+ "#calculations\n",
+ "h2=h1+q\n",
+ "p2=30. #psia\n",
+ "t2=720. #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final enthalpy is\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 30 psia and 720 F\n",
+ "\n",
+ " Final enthalpy is 1378.8 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final specific volume and final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=70 #psia\n",
+ "x=0.1\n",
+ "p2=198 #psia\n",
+ "#calculations\n",
+ "v1=6.206\n",
+ "v2=0.017\n",
+ "vx=v1-x*(v1-v2)\n",
+ "t2=1400 #F\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Final specific volume =\",vx,\"cu ft\")\n",
+ "print '%s %d %s %d %s' %(\"\\n Final state is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final specific volume = 5.587 cu ft\n",
+ "\n",
+ " Final state is 198 psia and 1400 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=85 #psia\n",
+ "#calculations\n",
+ "s2=1.6398 #units/lb\n",
+ "t2=350 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 85 psia and 350 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work of compression and heat removed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=20. #psia\n",
+ "p2=140. #psia\n",
+ "J=778.\n",
+ "t2=150. #F\n",
+ "t1=30. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From Table A-3,\")\n",
+ "v1=2.0884 #cu ft/lb\n",
+ "v2=0.33350 #cu ft/lb\n",
+ "h2=95.709\n",
+ "h1=81.842\n",
+ "n=math.log(p2/p1) /math.log(v1/v2)\n",
+ "W=(p2*v2-p1*v1)*144/(1-n)\n",
+ "du=h2-h1 + (p1*v1-p2*v2)*144/J\n",
+ "Q=du+W/J\n",
+ "s2=0.17718\n",
+ "s1=0.18126\n",
+ "Q2=((t2+t1)/2 +460) *(s2-s1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Work of compression =\",W,\"ft-lb\")\n",
+ "print '%s %.3f %s' %(\"\\n Heat removed per pound of refrigerant =\",Q,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Heat removed in case 2 =\",Q2,\" Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Table A-3,\n",
+ "Work of compression = -11671 ft-lb\n",
+ "\n",
+ " Heat removed per pound of refrigerant = -2.046 Btu/lb\n",
+ "\n",
+ " Heat removed in case 2 = -2.2440 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific enthalpy of exhaust steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "intt=440000 #lb/hr\n",
+ "out=255000 #lb/hr\n",
+ "p1=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=35 #psia\n",
+ "t2=290 #F\n",
+ "vel=500 #ft/s\n",
+ "hp=44000 #hp\n",
+ "ent=1362.7 #Btu/lb\n",
+ "#calculations\n",
+ "ein=ent*intt\n",
+ "eout=hp*2544 + out*1183 + 925000.\n",
+ "h2= (ein-eout)/185000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Specific enthalpy of exhaust steam =\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Specific enthalpy of exhaust steam = 1000 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the final state of steam and loss of available energy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1351.1 #Btu/lb\n",
+ "p1=600. #psia\n",
+ "t1=700. #F\n",
+ "p2=234. #psia\n",
+ "h2=1.6865\n",
+ "h1=1.5875\n",
+ "t3=101.74\n",
+ "#calculations\n",
+ "t2=660. #F\n",
+ "loss= (h2-h1)*(t3+459.69)\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\" psia and\",t2,\"F\")\n",
+ "print '%s %.1f %s' %(\"\\n Loss of available energy =\",loss,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 234 psia and 660 F\n",
+ "\n",
+ " Loss of available energy = 55.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of vapor and also the quality\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=98.87 #psia\n",
+ "p2=31.78 #psia\n",
+ "t1=80 #F\n",
+ "h2=26.365 #btu/lb\n",
+ "h1=11.554 #btu/lb\n",
+ "hfg=67.203 #btu/lb\n",
+ "#calculations\n",
+ "x=(h2-h1)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state of vapor leaving is\",p2, \"psia with a quality of\",x, \" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of vapor leaving is 31.78 psia with a quality of 22.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mean state in the line and also the moisture content\n",
+ "#Initialization of variables\n",
+ "ps=216 #psig\n",
+ "pb=29.12 #in of Hg\n",
+ "p2=0.4 #in\n",
+ "t2=244 #F\n",
+ "#calculations\n",
+ "pa=0.491*pb\n",
+ "pabs=pa + p2*0.491\n",
+ "plb=pa+ ps\n",
+ "hcal=1166.5 #Btu/lb\n",
+ "h2=1200.1 #Btu/lb\n",
+ "h3=831.9 #Btu/lb\n",
+ "y=-(hcal-h2)/h3*100\n",
+ "#results\n",
+ "print '%s %.1f %s %.2f %s' %(\"Mean state in the line is\",plb,\" psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean state in the line is 230.3 psia with a moisture content of 4.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_10_1.ipynb b/Thermodynamics_for_Engineers/Chapter_10_1.ipynb
new file mode 100755
index 00000000..6a9f7f74
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_10_1.ipynb
@@ -0,0 +1,579 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cbda57f5092671910369ce2a43538fa17705152cf0ccb12e90ebe176631fb4e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Vapors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific volume, enthalpy and entropy of the gas\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p=3000. #psia\n",
+ "T=250. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 1, keenan and keynes,\")\n",
+ "vf=0.01700\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dvf=-18.3*math.pow(10,-5)\n",
+ "v=vf+dvf\n",
+ "print '%s' %(\"From table 1,\")\n",
+ "hf=218.48\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dhf=6.13\n",
+ "h=hf+dhf\n",
+ "sf=0.3675\n",
+ "dsf=-4.34*math.pow(10,-3)\n",
+ "s=sf+dsf\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific volume =\",v,\" cu ft/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",s,\" Btu/lb per deg R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1, keenan and keynes,\n",
+ "From table 4,\n",
+ "From table 1,\n",
+ "From table 4,\n",
+ "Specific volume = 0.01682 cu ft/lb\n",
+ "\n",
+ " Enthalpy = 224.61 Btu/lb\n",
+ "\n",
+ " Entropy = 0.3632 Btu/lb per deg R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of the gas and moisture content\n",
+ "#Initialization of variables\n",
+ "h=1100 #Btu/lb\n",
+ "P=100 #psia\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "hg=1187.2 #Btu/lb\n",
+ "hfg=888.8 #Btu/lb\n",
+ "y=-(h-hg)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state is\",P,\"psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 100.00 psia with a moisture content of 9.81 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "v1=0.2688\n",
+ "#calculations\n",
+ "v2=3.060\n",
+ "p2=200 #psia\n",
+ "t2=600 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"State of steam is\",p2, \"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "State of steam is 200 psia and 600 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "t1=439.60 #F\n",
+ "u1=1118.4 #Btu/lb\n",
+ "#calculations\n",
+ "p2=380 #psia\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state of steam is saturated at\",p2,\"psia and\",t1,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of steam is saturated at 380 psia and 439.60 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the state of steam and moisture content\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=1 #in of Hg\n",
+ "s=1.9812 \n",
+ "#calculations\n",
+ "sf=2.0387\n",
+ "sfg=1.9473\n",
+ "y=-(s-sf)/sfg*100\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state is\",p1, \"in of Hg with a moisture content of\",y, \"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 1 in of Hg with a moisture content of 2.95 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam and temperature. Also calculate the final enthalpy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1204.8 #Btu/lb\n",
+ "q=174. #Btu/lb\n",
+ "#calculations\n",
+ "h2=h1+q\n",
+ "p2=30. #psia\n",
+ "t2=720. #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final enthalpy is\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 30 psia and 720 F\n",
+ "\n",
+ " Final enthalpy is 1378.8 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final specific volume and final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=70 #psia\n",
+ "x=0.1\n",
+ "p2=198 #psia\n",
+ "#calculations\n",
+ "v1=6.206\n",
+ "v2=0.017\n",
+ "vx=v1-x*(v1-v2)\n",
+ "t2=1400 #F\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Final specific volume =\",vx,\"cu ft\")\n",
+ "print '%s %d %s %d %s' %(\"\\n Final state is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final specific volume = 5.587 cu ft\n",
+ "\n",
+ " Final state is 198 psia and 1400 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=85 #psia\n",
+ "#calculations\n",
+ "s2=1.6398 #units/lb\n",
+ "t2=350 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 85 psia and 350 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work of compression and heat removed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=20. #psia\n",
+ "p2=140. #psia\n",
+ "J=778.\n",
+ "t2=150. #F\n",
+ "t1=30. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From Table A-3,\")\n",
+ "v1=2.0884 #cu ft/lb\n",
+ "v2=0.33350 #cu ft/lb\n",
+ "h2=95.709\n",
+ "h1=81.842\n",
+ "n=math.log(p2/p1) /math.log(v1/v2)\n",
+ "W=(p2*v2-p1*v1)*144/(1-n)\n",
+ "du=h2-h1 + (p1*v1-p2*v2)*144/J\n",
+ "Q=du+W/J\n",
+ "s2=0.17718\n",
+ "s1=0.18126\n",
+ "Q2=((t2+t1)/2 +460) *(s2-s1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Work of compression =\",W,\"ft-lb\")\n",
+ "print '%s %.3f %s' %(\"\\n Heat removed per pound of refrigerant =\",Q,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Heat removed in case 2 =\",Q2,\" Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Table A-3,\n",
+ "Work of compression = -11671 ft-lb\n",
+ "\n",
+ " Heat removed per pound of refrigerant = -2.046 Btu/lb\n",
+ "\n",
+ " Heat removed in case 2 = -2.2440 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific enthalpy of exhaust steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "intt=440000 #lb/hr\n",
+ "out=255000 #lb/hr\n",
+ "p1=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=35 #psia\n",
+ "t2=290 #F\n",
+ "vel=500 #ft/s\n",
+ "hp=44000 #hp\n",
+ "ent=1362.7 #Btu/lb\n",
+ "#calculations\n",
+ "ein=ent*intt\n",
+ "eout=hp*2544 + out*1183 + 925000.\n",
+ "h2= (ein-eout)/185000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Specific enthalpy of exhaust steam =\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Specific enthalpy of exhaust steam = 1000 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the final state of steam and loss of available energy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1351.1 #Btu/lb\n",
+ "p1=600. #psia\n",
+ "t1=700. #F\n",
+ "p2=234. #psia\n",
+ "h2=1.6865\n",
+ "h1=1.5875\n",
+ "t3=101.74\n",
+ "#calculations\n",
+ "t2=660. #F\n",
+ "loss= (h2-h1)*(t3+459.69)\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\" psia and\",t2,\"F\")\n",
+ "print '%s %.1f %s' %(\"\\n Loss of available energy =\",loss,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 234 psia and 660 F\n",
+ "\n",
+ " Loss of available energy = 55.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of vapor and also the quality\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=98.87 #psia\n",
+ "p2=31.78 #psia\n",
+ "t1=80 #F\n",
+ "h2=26.365 #btu/lb\n",
+ "h1=11.554 #btu/lb\n",
+ "hfg=67.203 #btu/lb\n",
+ "#calculations\n",
+ "x=(h2-h1)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state of vapor leaving is\",p2, \"psia with a quality of\",x, \" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of vapor leaving is 31.78 psia with a quality of 22.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mean state in the line and also the moisture content\n",
+ "#Initialization of variables\n",
+ "ps=216 #psig\n",
+ "pb=29.12 #in of Hg\n",
+ "p2=0.4 #in\n",
+ "t2=244 #F\n",
+ "#calculations\n",
+ "pa=0.491*pb\n",
+ "pabs=pa + p2*0.491\n",
+ "plb=pa+ ps\n",
+ "hcal=1166.5 #Btu/lb\n",
+ "h2=1200.1 #Btu/lb\n",
+ "h3=831.9 #Btu/lb\n",
+ "y=-(hcal-h2)/h3*100\n",
+ "#results\n",
+ "print '%s %.1f %s %.2f %s' %(\"Mean state in the line is\",plb,\" psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean state in the line is 230.3 psia with a moisture content of 4.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_10_2.ipynb b/Thermodynamics_for_Engineers/Chapter_10_2.ipynb
new file mode 100755
index 00000000..6a9f7f74
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_10_2.ipynb
@@ -0,0 +1,579 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cbda57f5092671910369ce2a43538fa17705152cf0ccb12e90ebe176631fb4e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Vapors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific volume, enthalpy and entropy of the gas\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p=3000. #psia\n",
+ "T=250. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 1, keenan and keynes,\")\n",
+ "vf=0.01700\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dvf=-18.3*math.pow(10,-5)\n",
+ "v=vf+dvf\n",
+ "print '%s' %(\"From table 1,\")\n",
+ "hf=218.48\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dhf=6.13\n",
+ "h=hf+dhf\n",
+ "sf=0.3675\n",
+ "dsf=-4.34*math.pow(10,-3)\n",
+ "s=sf+dsf\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific volume =\",v,\" cu ft/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",s,\" Btu/lb per deg R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1, keenan and keynes,\n",
+ "From table 4,\n",
+ "From table 1,\n",
+ "From table 4,\n",
+ "Specific volume = 0.01682 cu ft/lb\n",
+ "\n",
+ " Enthalpy = 224.61 Btu/lb\n",
+ "\n",
+ " Entropy = 0.3632 Btu/lb per deg R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of the gas and moisture content\n",
+ "#Initialization of variables\n",
+ "h=1100 #Btu/lb\n",
+ "P=100 #psia\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "hg=1187.2 #Btu/lb\n",
+ "hfg=888.8 #Btu/lb\n",
+ "y=-(h-hg)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state is\",P,\"psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 100.00 psia with a moisture content of 9.81 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "v1=0.2688\n",
+ "#calculations\n",
+ "v2=3.060\n",
+ "p2=200 #psia\n",
+ "t2=600 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"State of steam is\",p2, \"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "State of steam is 200 psia and 600 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "t1=439.60 #F\n",
+ "u1=1118.4 #Btu/lb\n",
+ "#calculations\n",
+ "p2=380 #psia\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state of steam is saturated at\",p2,\"psia and\",t1,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of steam is saturated at 380 psia and 439.60 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the state of steam and moisture content\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=1 #in of Hg\n",
+ "s=1.9812 \n",
+ "#calculations\n",
+ "sf=2.0387\n",
+ "sfg=1.9473\n",
+ "y=-(s-sf)/sfg*100\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state is\",p1, \"in of Hg with a moisture content of\",y, \"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 1 in of Hg with a moisture content of 2.95 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam and temperature. Also calculate the final enthalpy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1204.8 #Btu/lb\n",
+ "q=174. #Btu/lb\n",
+ "#calculations\n",
+ "h2=h1+q\n",
+ "p2=30. #psia\n",
+ "t2=720. #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final enthalpy is\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 30 psia and 720 F\n",
+ "\n",
+ " Final enthalpy is 1378.8 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final specific volume and final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=70 #psia\n",
+ "x=0.1\n",
+ "p2=198 #psia\n",
+ "#calculations\n",
+ "v1=6.206\n",
+ "v2=0.017\n",
+ "vx=v1-x*(v1-v2)\n",
+ "t2=1400 #F\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Final specific volume =\",vx,\"cu ft\")\n",
+ "print '%s %d %s %d %s' %(\"\\n Final state is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final specific volume = 5.587 cu ft\n",
+ "\n",
+ " Final state is 198 psia and 1400 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=85 #psia\n",
+ "#calculations\n",
+ "s2=1.6398 #units/lb\n",
+ "t2=350 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 85 psia and 350 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work of compression and heat removed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=20. #psia\n",
+ "p2=140. #psia\n",
+ "J=778.\n",
+ "t2=150. #F\n",
+ "t1=30. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From Table A-3,\")\n",
+ "v1=2.0884 #cu ft/lb\n",
+ "v2=0.33350 #cu ft/lb\n",
+ "h2=95.709\n",
+ "h1=81.842\n",
+ "n=math.log(p2/p1) /math.log(v1/v2)\n",
+ "W=(p2*v2-p1*v1)*144/(1-n)\n",
+ "du=h2-h1 + (p1*v1-p2*v2)*144/J\n",
+ "Q=du+W/J\n",
+ "s2=0.17718\n",
+ "s1=0.18126\n",
+ "Q2=((t2+t1)/2 +460) *(s2-s1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Work of compression =\",W,\"ft-lb\")\n",
+ "print '%s %.3f %s' %(\"\\n Heat removed per pound of refrigerant =\",Q,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Heat removed in case 2 =\",Q2,\" Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Table A-3,\n",
+ "Work of compression = -11671 ft-lb\n",
+ "\n",
+ " Heat removed per pound of refrigerant = -2.046 Btu/lb\n",
+ "\n",
+ " Heat removed in case 2 = -2.2440 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific enthalpy of exhaust steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "intt=440000 #lb/hr\n",
+ "out=255000 #lb/hr\n",
+ "p1=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=35 #psia\n",
+ "t2=290 #F\n",
+ "vel=500 #ft/s\n",
+ "hp=44000 #hp\n",
+ "ent=1362.7 #Btu/lb\n",
+ "#calculations\n",
+ "ein=ent*intt\n",
+ "eout=hp*2544 + out*1183 + 925000.\n",
+ "h2= (ein-eout)/185000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Specific enthalpy of exhaust steam =\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Specific enthalpy of exhaust steam = 1000 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the final state of steam and loss of available energy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1351.1 #Btu/lb\n",
+ "p1=600. #psia\n",
+ "t1=700. #F\n",
+ "p2=234. #psia\n",
+ "h2=1.6865\n",
+ "h1=1.5875\n",
+ "t3=101.74\n",
+ "#calculations\n",
+ "t2=660. #F\n",
+ "loss= (h2-h1)*(t3+459.69)\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\" psia and\",t2,\"F\")\n",
+ "print '%s %.1f %s' %(\"\\n Loss of available energy =\",loss,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 234 psia and 660 F\n",
+ "\n",
+ " Loss of available energy = 55.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of vapor and also the quality\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=98.87 #psia\n",
+ "p2=31.78 #psia\n",
+ "t1=80 #F\n",
+ "h2=26.365 #btu/lb\n",
+ "h1=11.554 #btu/lb\n",
+ "hfg=67.203 #btu/lb\n",
+ "#calculations\n",
+ "x=(h2-h1)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state of vapor leaving is\",p2, \"psia with a quality of\",x, \" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of vapor leaving is 31.78 psia with a quality of 22.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mean state in the line and also the moisture content\n",
+ "#Initialization of variables\n",
+ "ps=216 #psig\n",
+ "pb=29.12 #in of Hg\n",
+ "p2=0.4 #in\n",
+ "t2=244 #F\n",
+ "#calculations\n",
+ "pa=0.491*pb\n",
+ "pabs=pa + p2*0.491\n",
+ "plb=pa+ ps\n",
+ "hcal=1166.5 #Btu/lb\n",
+ "h2=1200.1 #Btu/lb\n",
+ "h3=831.9 #Btu/lb\n",
+ "y=-(hcal-h2)/h3*100\n",
+ "#results\n",
+ "print '%s %.1f %s %.2f %s' %(\"Mean state in the line is\",plb,\" psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean state in the line is 230.3 psia with a moisture content of 4.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_10_3.ipynb b/Thermodynamics_for_Engineers/Chapter_10_3.ipynb
new file mode 100755
index 00000000..6a9f7f74
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_10_3.ipynb
@@ -0,0 +1,579 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cbda57f5092671910369ce2a43538fa17705152cf0ccb12e90ebe176631fb4e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Vapors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific volume, enthalpy and entropy of the gas\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p=3000. #psia\n",
+ "T=250. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 1, keenan and keynes,\")\n",
+ "vf=0.01700\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dvf=-18.3*math.pow(10,-5)\n",
+ "v=vf+dvf\n",
+ "print '%s' %(\"From table 1,\")\n",
+ "hf=218.48\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dhf=6.13\n",
+ "h=hf+dhf\n",
+ "sf=0.3675\n",
+ "dsf=-4.34*math.pow(10,-3)\n",
+ "s=sf+dsf\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific volume =\",v,\" cu ft/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",s,\" Btu/lb per deg R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1, keenan and keynes,\n",
+ "From table 4,\n",
+ "From table 1,\n",
+ "From table 4,\n",
+ "Specific volume = 0.01682 cu ft/lb\n",
+ "\n",
+ " Enthalpy = 224.61 Btu/lb\n",
+ "\n",
+ " Entropy = 0.3632 Btu/lb per deg R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of the gas and moisture content\n",
+ "#Initialization of variables\n",
+ "h=1100 #Btu/lb\n",
+ "P=100 #psia\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "hg=1187.2 #Btu/lb\n",
+ "hfg=888.8 #Btu/lb\n",
+ "y=-(h-hg)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state is\",P,\"psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 100.00 psia with a moisture content of 9.81 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "v1=0.2688\n",
+ "#calculations\n",
+ "v2=3.060\n",
+ "p2=200 #psia\n",
+ "t2=600 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"State of steam is\",p2, \"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "State of steam is 200 psia and 600 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "t1=439.60 #F\n",
+ "u1=1118.4 #Btu/lb\n",
+ "#calculations\n",
+ "p2=380 #psia\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state of steam is saturated at\",p2,\"psia and\",t1,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of steam is saturated at 380 psia and 439.60 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the state of steam and moisture content\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=1 #in of Hg\n",
+ "s=1.9812 \n",
+ "#calculations\n",
+ "sf=2.0387\n",
+ "sfg=1.9473\n",
+ "y=-(s-sf)/sfg*100\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state is\",p1, \"in of Hg with a moisture content of\",y, \"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 1 in of Hg with a moisture content of 2.95 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam and temperature. Also calculate the final enthalpy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1204.8 #Btu/lb\n",
+ "q=174. #Btu/lb\n",
+ "#calculations\n",
+ "h2=h1+q\n",
+ "p2=30. #psia\n",
+ "t2=720. #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final enthalpy is\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 30 psia and 720 F\n",
+ "\n",
+ " Final enthalpy is 1378.8 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final specific volume and final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=70 #psia\n",
+ "x=0.1\n",
+ "p2=198 #psia\n",
+ "#calculations\n",
+ "v1=6.206\n",
+ "v2=0.017\n",
+ "vx=v1-x*(v1-v2)\n",
+ "t2=1400 #F\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Final specific volume =\",vx,\"cu ft\")\n",
+ "print '%s %d %s %d %s' %(\"\\n Final state is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final specific volume = 5.587 cu ft\n",
+ "\n",
+ " Final state is 198 psia and 1400 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=85 #psia\n",
+ "#calculations\n",
+ "s2=1.6398 #units/lb\n",
+ "t2=350 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 85 psia and 350 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work of compression and heat removed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=20. #psia\n",
+ "p2=140. #psia\n",
+ "J=778.\n",
+ "t2=150. #F\n",
+ "t1=30. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From Table A-3,\")\n",
+ "v1=2.0884 #cu ft/lb\n",
+ "v2=0.33350 #cu ft/lb\n",
+ "h2=95.709\n",
+ "h1=81.842\n",
+ "n=math.log(p2/p1) /math.log(v1/v2)\n",
+ "W=(p2*v2-p1*v1)*144/(1-n)\n",
+ "du=h2-h1 + (p1*v1-p2*v2)*144/J\n",
+ "Q=du+W/J\n",
+ "s2=0.17718\n",
+ "s1=0.18126\n",
+ "Q2=((t2+t1)/2 +460) *(s2-s1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Work of compression =\",W,\"ft-lb\")\n",
+ "print '%s %.3f %s' %(\"\\n Heat removed per pound of refrigerant =\",Q,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Heat removed in case 2 =\",Q2,\" Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Table A-3,\n",
+ "Work of compression = -11671 ft-lb\n",
+ "\n",
+ " Heat removed per pound of refrigerant = -2.046 Btu/lb\n",
+ "\n",
+ " Heat removed in case 2 = -2.2440 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific enthalpy of exhaust steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "intt=440000 #lb/hr\n",
+ "out=255000 #lb/hr\n",
+ "p1=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=35 #psia\n",
+ "t2=290 #F\n",
+ "vel=500 #ft/s\n",
+ "hp=44000 #hp\n",
+ "ent=1362.7 #Btu/lb\n",
+ "#calculations\n",
+ "ein=ent*intt\n",
+ "eout=hp*2544 + out*1183 + 925000.\n",
+ "h2= (ein-eout)/185000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Specific enthalpy of exhaust steam =\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Specific enthalpy of exhaust steam = 1000 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the final state of steam and loss of available energy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1351.1 #Btu/lb\n",
+ "p1=600. #psia\n",
+ "t1=700. #F\n",
+ "p2=234. #psia\n",
+ "h2=1.6865\n",
+ "h1=1.5875\n",
+ "t3=101.74\n",
+ "#calculations\n",
+ "t2=660. #F\n",
+ "loss= (h2-h1)*(t3+459.69)\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\" psia and\",t2,\"F\")\n",
+ "print '%s %.1f %s' %(\"\\n Loss of available energy =\",loss,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 234 psia and 660 F\n",
+ "\n",
+ " Loss of available energy = 55.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of vapor and also the quality\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=98.87 #psia\n",
+ "p2=31.78 #psia\n",
+ "t1=80 #F\n",
+ "h2=26.365 #btu/lb\n",
+ "h1=11.554 #btu/lb\n",
+ "hfg=67.203 #btu/lb\n",
+ "#calculations\n",
+ "x=(h2-h1)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state of vapor leaving is\",p2, \"psia with a quality of\",x, \" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of vapor leaving is 31.78 psia with a quality of 22.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mean state in the line and also the moisture content\n",
+ "#Initialization of variables\n",
+ "ps=216 #psig\n",
+ "pb=29.12 #in of Hg\n",
+ "p2=0.4 #in\n",
+ "t2=244 #F\n",
+ "#calculations\n",
+ "pa=0.491*pb\n",
+ "pabs=pa + p2*0.491\n",
+ "plb=pa+ ps\n",
+ "hcal=1166.5 #Btu/lb\n",
+ "h2=1200.1 #Btu/lb\n",
+ "h3=831.9 #Btu/lb\n",
+ "y=-(hcal-h2)/h3*100\n",
+ "#results\n",
+ "print '%s %.1f %s %.2f %s' %(\"Mean state in the line is\",plb,\" psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean state in the line is 230.3 psia with a moisture content of 4.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_10_4.ipynb b/Thermodynamics_for_Engineers/Chapter_10_4.ipynb
new file mode 100755
index 00000000..6a9f7f74
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_10_4.ipynb
@@ -0,0 +1,579 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cbda57f5092671910369ce2a43538fa17705152cf0ccb12e90ebe176631fb4e1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 - Vapors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific volume, enthalpy and entropy of the gas\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p=3000. #psia\n",
+ "T=250. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 1, keenan and keynes,\")\n",
+ "vf=0.01700\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dvf=-18.3*math.pow(10,-5)\n",
+ "v=vf+dvf\n",
+ "print '%s' %(\"From table 1,\")\n",
+ "hf=218.48\n",
+ "print '%s' %(\"From table 4,\")\n",
+ "dhf=6.13\n",
+ "h=hf+dhf\n",
+ "sf=0.3675\n",
+ "dsf=-4.34*math.pow(10,-3)\n",
+ "s=sf+dsf\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific volume =\",v,\" cu ft/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",s,\" Btu/lb per deg R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1, keenan and keynes,\n",
+ "From table 4,\n",
+ "From table 1,\n",
+ "From table 4,\n",
+ "Specific volume = 0.01682 cu ft/lb\n",
+ "\n",
+ " Enthalpy = 224.61 Btu/lb\n",
+ "\n",
+ " Entropy = 0.3632 Btu/lb per deg R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of the gas and moisture content\n",
+ "#Initialization of variables\n",
+ "h=1100 #Btu/lb\n",
+ "P=100 #psia\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "hg=1187.2 #Btu/lb\n",
+ "hfg=888.8 #Btu/lb\n",
+ "y=-(h-hg)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state is\",P,\"psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 100.00 psia with a moisture content of 9.81 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "v1=0.2688\n",
+ "#calculations\n",
+ "v2=3.060\n",
+ "p2=200 #psia\n",
+ "t2=600 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"State of steam is\",p2, \"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "State of steam is 200 psia and 600 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "t1=439.60 #F\n",
+ "u1=1118.4 #Btu/lb\n",
+ "#calculations\n",
+ "p2=380 #psia\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state of steam is saturated at\",p2,\"psia and\",t1,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of steam is saturated at 380 psia and 439.60 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 157"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the state of steam and moisture content\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=1 #in of Hg\n",
+ "s=1.9812 \n",
+ "#calculations\n",
+ "sf=2.0387\n",
+ "sfg=1.9473\n",
+ "y=-(s-sf)/sfg*100\n",
+ "#results\n",
+ "print '%s %d %s %.2f %s' %(\"The state is\",p1, \"in of Hg with a moisture content of\",y, \"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state is 1 in of Hg with a moisture content of 2.95 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam and temperature. Also calculate the final enthalpy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1204.8 #Btu/lb\n",
+ "q=174. #Btu/lb\n",
+ "#calculations\n",
+ "h2=h1+q\n",
+ "p2=30. #psia\n",
+ "t2=720. #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final enthalpy is\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 30 psia and 720 F\n",
+ "\n",
+ " Final enthalpy is 1378.8 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final specific volume and final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=70 #psia\n",
+ "x=0.1\n",
+ "p2=198 #psia\n",
+ "#calculations\n",
+ "v1=6.206\n",
+ "v2=0.017\n",
+ "vx=v1-x*(v1-v2)\n",
+ "t2=1400 #F\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Final specific volume =\",vx,\"cu ft\")\n",
+ "print '%s %d %s %d %s' %(\"\\n Final state is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final specific volume = 5.587 cu ft\n",
+ "\n",
+ " Final state is 198 psia and 1400 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final state of steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "p=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=85 #psia\n",
+ "#calculations\n",
+ "s2=1.6398 #units/lb\n",
+ "t2=350 #F\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\"psia and\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 85 psia and 350 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 162"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the work of compression and heat removed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=20. #psia\n",
+ "p2=140. #psia\n",
+ "J=778.\n",
+ "t2=150. #F\n",
+ "t1=30. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From Table A-3,\")\n",
+ "v1=2.0884 #cu ft/lb\n",
+ "v2=0.33350 #cu ft/lb\n",
+ "h2=95.709\n",
+ "h1=81.842\n",
+ "n=math.log(p2/p1) /math.log(v1/v2)\n",
+ "W=(p2*v2-p1*v1)*144/(1-n)\n",
+ "du=h2-h1 + (p1*v1-p2*v2)*144/J\n",
+ "Q=du+W/J\n",
+ "s2=0.17718\n",
+ "s1=0.18126\n",
+ "Q2=((t2+t1)/2 +460) *(s2-s1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Work of compression =\",W,\"ft-lb\")\n",
+ "print '%s %.3f %s' %(\"\\n Heat removed per pound of refrigerant =\",Q,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Heat removed in case 2 =\",Q2,\" Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Table A-3,\n",
+ "Work of compression = -11671 ft-lb\n",
+ "\n",
+ " Heat removed per pound of refrigerant = -2.046 Btu/lb\n",
+ "\n",
+ " Heat removed in case 2 = -2.2440 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific enthalpy of exhaust steam\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "intt=440000 #lb/hr\n",
+ "out=255000 #lb/hr\n",
+ "p1=400 #psia\n",
+ "t1=700 #F\n",
+ "p2=35 #psia\n",
+ "t2=290 #F\n",
+ "vel=500 #ft/s\n",
+ "hp=44000 #hp\n",
+ "ent=1362.7 #Btu/lb\n",
+ "#calculations\n",
+ "ein=ent*intt\n",
+ "eout=hp*2544 + out*1183 + 925000.\n",
+ "h2= (ein-eout)/185000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Specific enthalpy of exhaust steam =\",h2,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Specific enthalpy of exhaust steam = 1000 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the final state of steam and loss of available energy\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 1 of keenan and keynes,\")\n",
+ "h1=1351.1 #Btu/lb\n",
+ "p1=600. #psia\n",
+ "t1=700. #F\n",
+ "p2=234. #psia\n",
+ "h2=1.6865\n",
+ "h1=1.5875\n",
+ "t3=101.74\n",
+ "#calculations\n",
+ "t2=660. #F\n",
+ "loss= (h2-h1)*(t3+459.69)\n",
+ "#results\n",
+ "print '%s %d %s %d %s' %(\"Final state of steam is\",p2,\" psia and\",t2,\"F\")\n",
+ "print '%s %.1f %s' %(\"\\n Loss of available energy =\",loss,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 1 of keenan and keynes,\n",
+ "Final state of steam is 234 psia and 660 F\n",
+ "\n",
+ " Loss of available energy = 55.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the state of vapor and also the quality\n",
+ "#Initialization of variables\n",
+ "print '%s' %(\"From table 2 of keenan and keynes,\")\n",
+ "p1=98.87 #psia\n",
+ "p2=31.78 #psia\n",
+ "t1=80 #F\n",
+ "h2=26.365 #btu/lb\n",
+ "h1=11.554 #btu/lb\n",
+ "hfg=67.203 #btu/lb\n",
+ "#calculations\n",
+ "x=(h2-h1)/hfg*100\n",
+ "#results\n",
+ "print '%s %.2f %s %.2f %s' %(\"The state of vapor leaving is\",p2, \"psia with a quality of\",x, \" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 2 of keenan and keynes,\n",
+ "The state of vapor leaving is 31.78 psia with a quality of 22.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mean state in the line and also the moisture content\n",
+ "#Initialization of variables\n",
+ "ps=216 #psig\n",
+ "pb=29.12 #in of Hg\n",
+ "p2=0.4 #in\n",
+ "t2=244 #F\n",
+ "#calculations\n",
+ "pa=0.491*pb\n",
+ "pabs=pa + p2*0.491\n",
+ "plb=pa+ ps\n",
+ "hcal=1166.5 #Btu/lb\n",
+ "h2=1200.1 #Btu/lb\n",
+ "h3=831.9 #Btu/lb\n",
+ "y=-(hcal-h2)/h3*100\n",
+ "#results\n",
+ "print '%s %.1f %s %.2f %s' %(\"Mean state in the line is\",plb,\" psia with a moisture content of\",y,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean state in the line is 230.3 psia with a moisture content of 4.04 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_11.ipynb b/Thermodynamics_for_Engineers/Chapter_11.ipynb
new file mode 100755
index 00000000..3a5ea2bf
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_11.ipynb
@@ -0,0 +1,656 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:902aab6334eafa9c076aa9433328b057ddfc9db48d6910774ed6bb3aa051c994"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - Thermodynamics of Fluid flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the reynolds number\n",
+ "#Initialization of variables\n",
+ "d=2.067 #in\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "#calculations\n",
+ "rho=P*144./(R*T)\n",
+ "Re=d*v*rho*3600./(12*mu)\n",
+ "#results\n",
+ "print '%s %d' %(\"Reynolds number = \",Re)\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 57398\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in pressure and the percent change\n",
+ "#Initialization of variables\n",
+ "eps=0.00015 \n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "rho=P*144/(R*T)\n",
+ "Re=D*v*rho*3600./(mu)\n",
+ "ed=eps/D\n",
+ "print '%s' %(\"From figure 11.5\")\n",
+ "f=0.0235\n",
+ "dp=f*l*rho*v*v /(2*D*g) /144.\n",
+ "change=dp/P *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in pressure =\",dp,\"psi\")\n",
+ "print '%s %.2f %s' %(\"\\n Percentage change in pressure =\",change,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 11.5\n",
+ "Change in pressure = 0.33 psi\n",
+ "\n",
+ " Percentage change in pressure = 1.66 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initialization of variables\n",
+ "v1=60. #ft/s\n",
+ "d1=10. #in\n",
+ "d2=15. #in\n",
+ "P=15. #psia\n",
+ "R=53.35\n",
+ "T=540. #R\n",
+ "g=32.17 #ft/s^2\n",
+ "v1=60. #ft/s\n",
+ "#calculations\n",
+ "v2=v1*d1*d1 /d2/d2\n",
+ "rho=P*144/(R*T)\n",
+ "dp=rho*(v2*v2 -v1*v1)/(2*g) /144.\n",
+ "p2=P-dp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 15.02 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "J=778 #ft.lb/Btu\n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "f=0.0235\n",
+ "ds=f*v*v *l /(J*2*D*g*T)\n",
+ "#results\n",
+ "print '%s %.6f %s' %(\"Change in entropy =\",ds,\" Btu/lbm R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.001136 Btu/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure, enthalpy, entropy, temperature and density of the gas\n",
+ "#Initialization of variables\n",
+ "v=210 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "p=200. #psia\n",
+ "z=5. #ft\n",
+ "x=2.361\n",
+ "h=1210.3\n",
+ "J=778.\n",
+ "#calculations\n",
+ "P0=p + v*v /(2*g*144*x) + z/(144*x)\n",
+ "h0=h + v*v /(2*J*g) +z/J\n",
+ "S=1.5594 #units/lb\n",
+ "S0=S\n",
+ "t0=401.9 #F\n",
+ "v0=2.342 #cu ft/lb\n",
+ "rho0=1./v0\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Pressure =\",P0,\"psia\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h0,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",S0,\"units/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Temperature =\",t0,\" F\")\n",
+ "print '%s %.3f %s' %(\"\\n Density =\",rho0,\" lb/cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 202 psia\n",
+ "\n",
+ " Enthalpy = 1211.19 Btu/lb\n",
+ "\n",
+ " Entropy = 1.5594 units/lb\n",
+ "\n",
+ " Temperature = 401.9 F\n",
+ "\n",
+ " Density = 0.427 lb/cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "import math\n",
+ "p1=40. #psia\n",
+ "t1=80. #F\n",
+ "p2=30. #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200. #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "#calculations\n",
+ "rho1=144*p1/(R*(t1+460))\n",
+ "G=rho1*v1\n",
+ "h10= cp*t1 + p1*p1 /(2*g*rho1*rho1 *J)\n",
+ "t2=78 #F\n",
+ "h2=cp*t2\n",
+ "g2=h10-h2\n",
+ "rho2=math.sqrt(p1*p1 /(2*g*g2*J))\n",
+ "P2=rho2*R*(t2+460)/144. \n",
+ "ds2=cp*math.log((t2+460.)/(t1+460.)) - R/J *math.log(P2/p1)\n",
+ "t3=77 #F\n",
+ "h3=cp*t3\n",
+ "g3=h10-h3\n",
+ "rho3=math.sqrt(p1*p1 /(2*g*g3*J))\n",
+ "P3=rho3*R*(t3+460)/144. \n",
+ "ds3=cp*math.log((t3+460.)/(t1+460.)) - R/J *math.log(P3/p1)\n",
+ "t4=79 #F\n",
+ "h4=cp*t4\n",
+ "g4=h10-h4\n",
+ "rho4=math.sqrt(p1*p1 /(2*g*g4*J))\n",
+ "P4=rho4*R*(t4+460)/144. \n",
+ "ds4=cp*math.log((t4+460)/(t1+460.)) - R/J *math.log(P4/p1)\n",
+ "h5=18.62\n",
+ "t5=h5/cp\n",
+ "Gv=([h4, h2, h3])\n",
+ "Pv=([P4, P2, P3])\n",
+ "Sv=([ds4, ds2, ds3])\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title(\"Fanno line diagram , Enthalpy vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Enthalpy Btu/lb\")\n",
+ "pyplot.plot(Sv,Gv)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title(\"Fanno line diagram , Pressure vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Pressure psia\")\n",
+ "pyplot.plot(Sv,Pv)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Temperature at exit =\",t5,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Temperature at exit = 77.6 F"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['f']\n",
+ "`%matplotlib` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEZCAYAAAC99aPhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XnclXP+x/HXp1UqJRGppoYpS0VRRpZuhMgylsZYKzsz\nMjPGOlSMrWgsox8GJWNk3zKYGN2WGZIKWSoiLRKSIlnS5/fH97pzOp1z7uUs1zn3/X4+HudxX/v1\nOec+53zOd7m+l7k7IiIiNVUv7gBERKS0KZGIiEhWlEhERCQrSiQiIpIVJRIREcmKEomIiGRFiUQA\nMLPBZvZiwvxXZtaxAOcdYWb/iKY7ROe1fJ+31JnZGjP7eQ33nWdm++Q6Jqm7lEgKKPoAfxN9WX5l\nZivMbPO440rF3Zu7+7xCnCrhnPOj89a6i5tS/O+/MrMbq7hvuZmdlMNwnITXvZhEPyx+SHqdvqji\nvuv8GJLCaRB3AHWMAwe5+3NxB1LXmFk9d18TYwjZ/O+L8ks/TxyY4O4n5OPgRfA+qJVUIomZmbU0\nsyfM7FMz+8LMJprZlgnry83sMjN7KSrB/NvMNonWdYyqOE4ws4/M7DMzuyhh38Zmdr2ZLYoe15lZ\noyrGtbbqxMzuNLMxUZwrzOyVxGoVM9vGzJ4xs6VmNsvMBmY4biczez46ziSgdcK6iudTL5ofYmbv\nRNvONbNTk451npl9bGYLzezkFDHfbGZPmtnXQJmZDTCzGWa23Mzmm9nwFOceHK1bamanm1kvM3vT\nzJaZ2d+q8tpVV3TOl8zsmug98IGZ9Y/WXQHsAdyUohSzr5nNiWK7KeF4W5nZc2b2efSeuNvMWqQ5\n9wgze9DM7o1e52lm1j1ad66ZPZi0/Y1mdn2K45xvZg8kLbvBzG5IeI5zo3N8YGbHpHs5oke612qN\nmZ2W/LzNbFvgZmDXxFJMmvfBttHnapmZvWVmBycc/04zu8XMJkWxlptZh2jdGDO7Nimex83s9+ni\nrTPcXY8CPYAPgX2SlrUCDgM2AJoB9wOPJKwvB94Dto62mQxcFa3rCKwBbgUaA92Bb4Eu0frLgP8R\nvqxbA/8FLksT22DgxYT5NcDPo+k7gc+BnYH6wN2EX40ATYEFwCDCD5Mdgc+AbdOc52XgWqAh4Qty\nBXBX0vOpF80fCHSKpvcEVgI9ovn+wGJgW6BJFFNyzF8Cu0bzjYG+wPbRfDfgE+DQpHP/H9AI2Bf4\nDngkeu3aAkuAPXP1v0967b8HTiJ8iZ4OLEpYPxk4MWmfNcDjwEZAe+BTYP9o3VbAPtFr3Bp4Hrgu\nKZa9o+kR0bkPj/635wAfRNNbAF8DLaJtG0SvQY8Uz6FD9P9pFs3XBz4GekfvkeXAL6J1bYDt0rwW\nI4B/ZHgdMz3vQSS8h9O8D5oD7wMXRM9nL8J7sHPC9iuA3aP3wfUVxwR6AYsAi+ZbR89507i/W+J+\nxB5AXXoA84CvgGXR4+EU2+wIfJEwPxm4KGH+DOCpaLpj9MFqm7B+CvDraPp9oH/Cuv2AD9PENpj0\niWQc8PeEdQcA70bTRwEvJB3rVmBYinN0AH4AmiQs+2fFFwdJiSTF/o8AQ6PpscAVCeu2Yv1Ecmcl\n/4/rgb8mnXuLhPWfAwMT5h8Ezs7R/34ZcFLCa/9ewrYbRrFslvAeOCnpeGuAPgnz9wHnpzn3r4Dp\nCfPJieR/CeuMkAB2i+afAk6Opg8C3srwHF8Ejo+m9wXej6abRs/38MT/fZpjjCAk8MTX6T9Ved4k\nvYcT3rt3JszvASxO2uYeYHjC++aehHVNgdXAltH8O0C/aPp3wBM1eT/UtoeqtgrLCb+AN44eh5vZ\nhmZ2q4XG2OWEX48tzNbpufRJwvQqQsmFNOu/SVjfFvgoYd38aFlNLEkTw8+AXaJqgmVmtgw4hvCr\nM1lbYJm7r0pY9lGK7QAwswOiarSl0XEPBDaJVm9BKAlVWJi0uyetx8x2MbPJFqoRvwROSzheuueZ\n7nlXV/L/fmN3vyNh/dr/obt/E002S9o/Wcr/u5m1iaqqFkbvqX+w/vNMtPa18/ANuZCf3ifjgeOi\n6eOiY6VzD3B0NH0M4UcC7r6S8IPjdOBjC1WkXTIc576k1ym5h1ny826a4Viw7nujLUnvC8J7sOL5\nOuu+HiuBLxLW30XVX486Q4kkfucAnYHe7t6CUP2SsZ64Gj4m/NKu0CFalkvzgeeTPvjN3f23KbZd\nDGxsZhsmLPsZKb4kzawx8BAwivDLfGPgSX56XRYTqjYqtKdy9wCPAu3cvSVwC9X/DMTR8F3Vc1Zs\ndyXwI9A1ek8dT+bnufa1i9qn2vHT++QxoLuZdQUGECWHNB4ktEFsSSgF3bM2MPdJ7r4fsDkwC7gt\nw3Oo6Xs/3euUuPxjoH3SD7WfEaqsiM6d+Ho0I1Q/V7wedwOHmtkOwDaE91Odp0QSv2aEX7rLzawV\nMDzFNjX9YE0ALjaz1mbWGhhGzX5BZTr/v4DOZnacmTWMHr3MbJvkDd39I+A14NJou90J1SWpNIoe\nnwNrzOwAQtVchfuBIRYa+jcELqlCzM0IJaLvzaw34VdzdRNDytfCzMrMrLLeQDX9Py4hVN1V9djN\nCHX3K6Iv9XMr2XcnMzvMzBoAvye0s70CEJUeHyIkhSnunlzyW8vdPyO06d0JfODuswHMbDMzO9TM\nmhKqNlcSEl1lz6MqEn90LQHamVnDDMd7hVCKOS96D5YR3oP3JmxzoJntZqFjyl+Al919UfQcFxLe\nw3cBD7r7d9WMt1ZSIonf9YTG4s8JDeNPsf6XmydNJ8+ncznhTf9m9HgtWpZKpuMmr1u73t2/InzB\n/4bwq24xcBUhCaRyDLALobpgGKHqJN1xhxISxheEKpPH1m7k/jRwI6H9YA6hER9C/Xq6mM8ELjOz\nFYTEc1+qc1ci3TbtCZ0ZMplo614f8VCGWBPnbwCOjHp0rddjKsX2lwI9CQ3cEwmJINOv9ccIVU9f\nAMcCh7t74hf9eKArVfsRcg+hof+ehGX1gD8Q3h9LCe0UZ2SI56ik12lF9EMo+XlWzFcs+w/wNvCJ\nmX2aYj3u/gNwMKGd7zPgJkK7zpyE7e8h/KBbCvTgp6qsCuMJnTVUrRWp6H2Q+wObjSUUhT91927R\nsh0I1QlNCY2Px0ZfGMn79id8wdYHbnf3kXkJUmqNqPvnTKCRx3CdgJndBtzv7s8U+tzZsNAFemt3\nPz7DNu0J1VFt3P3rggUXAzMbByx09+QSbuI2ewB3u/vPChdZcctniWQcoYtmotuB89y9O6EHznpF\nbjOrT/iV0B/YDjg6+pIQWUdUHdPYzDYGRgKPx5FEANz9lFJLIpGMVUlRm8k5hO7etTqJRCp7PRoS\nqv/StfHUSXlLJO7+IqHrXqJfRMsBngWOSLFrb0K3wXlRMfRe4NB8xSkl7VRCvfj7hLr3dNUlkl6q\najUAojaNFYSqqlRtd7VRptdjW8J3WhtCjYlECj1Eyttmdqi7PwYMJHVPmy1Zv1vnLoUITkqLux8Q\ndwylzt0vzbBuJTXv7lyS3H1IhnXvUsdej6oqdGP7icCZZvYa4R/yfYpt4uheKSIiNVTQEknUHXB/\nADPrTGiMT7aI9a8PSNnl0MyUdEREasDdc3a7hoKWSMxs0+hvPeBiwiBryV4DfmFhEL1GhG6Jj6c7\nZtxDA2TzGD58eOwx1MXYFX/8D8Uf7yPX8pZIzGwC4bqILma2wMxOJPTAmg28S+hid2e0bVsz+xeA\nu68mjGHzb8K4Nvd5qJsUEZEilLeqLXc/Os2q9W7m4+4fk1DN5e5PES7MExGRIqcr22NUVlYWdwg1\nVsqxg+KPm+KvXfJ2ZXshmJmXcvwiInEwM7xUG9tFRKT2USIREZGsKJGIiEhWlEhERCQrSiQiIpIV\nJRIREcmKEomIiGSlziaS77+H73S3ZRGRrNXZRPL447DddnDffaBrGkVEaq5OX9n+3HNw7rlQvz5c\ney3suWcOgxMRKVK5vrK9TicSgDVr4N574aKLoHt3GDkSttUd4kWkFtMQKTlWrx4ccwzMmgV9+4ZS\nyWmnweLFcUcmIlIa6nwiqbDBBnDOOTB7NjRvDl27wogR8PXXcUcmIlLclEiStGoV2kumTYP33oPO\nneHWW2H16rgjExEpTnW+jaQy06aFBvnFi0P7ycEHg+WsZlFEpPDU2J6gUPcjcYennoLzzoNNNoFr\nroHevfN+WhGRvFBjewzM4MAD4fXX4YQT4LDD4KijYO7cuCMTEYmfEkk1NGgAJ50Ec+ZAt26hVPL7\n38PSpXFHJiISHyWSGmjaFC6+GN55B374Abp0Ce0nq1bFHZmISOEpkWShTRsYMwb++1+YMiUklLvu\nChc5iojUFWpsz6GXXgo9vFatCg3y++4bd0QiIutTr60ExZZIIPTweughuPBC2GqrUOW1ww5xRyUi\n8hP12ipyZnDkkfD22zBgAOy3HwweDAsXxh2ZiEh+KJHkSaNGcNZZoYfXlluGUslFF8Hy5XFHJiKS\nW0okedaiBVxxBbzxRrg6vnNnuPHGcGMtEZHaQImkQNq1g3Hj4JlnwlXy220HDzygm2qJSOnLWyIx\ns7FmtsTMZiYs621mr5rZDDObama90ux7tpnNNLO3zOzsfMUYh+7dQyK55Ra48krYddfQ20tEpFTl\ns0QyDuiftGwUcIm79wCGRfPrMLOuwMlAL2AH4CAz2yqPccaiX78wIORvfwvHHhuGXZk9O+6oRESq\nL2+JxN1fBJYlLV4MtIimWwKLUuy6DTDF3b919x+B54HD8xVnnOrVg+OPDwlk111h993hzDNhyZK4\nIxMRqbpCt5FcAIw2s/nANcCFKbZ5C9jDzFqZ2YbAAKBdAWMsuA02CCMLz5oFjRuH9pO//AVWrow7\nMhGRyhU6kdwBDHX3DsAfgLHJG7j7LGAkMAl4CpgB1IlBRzbZBK67DqZODeN4de4Mt9+um2qJSHHL\n65XtZtYRmOju3aL5Fe6+UTRtwJfu3iL9EcDMrgTmu/stKdb58OHD186XlZVRVlaWs/jj9uqrYciV\npUvDFfIHHqibaolI9ZWXl1NeXr52/tJLLy2dIVJSJJLpwB/c/Xkz2we42t3X67llZpu5+6dm1gH4\nN7CLu69IsV3RDZGSa+7wxBNw/vlhkMhrroGdd447KhEpZSUz1paZTQD6Aq2BJYReWjOBMUBjYBVw\nprvPMLO2wG3uPiDa9wVgE+AHQuKZnOYctT6RVFi9GsaOhREjoKwsXOTYqVPcUYlIKSqZRFIIdSmR\nVPj6axg9OlwdP3gw/PnP0KpV3FGJSCnRoI11XLNmMHx4GBRy5cpwD5Rrr4Vvv407MhGpq5RIStTm\nm4er4194AV58EbbZBv75T91US0QKT1VbtcQLL4QeXqtXhwb5vfeOOyIRKVZqI0mgRLIu9zAQ5IUX\nhiqvUaOga9e4oxKRYqM2EknLDH7963Ax4/77h1LJSSfBolQD0YiI5IgSSS3UuDGcfXa4qdamm4YR\nhy++GFasdyWOiEj2lEhqsZYt4eqrYcYMWLAgDLkyZgz88EPckYlIbaJEUgd06ADjx4f7oDz6KGy/\nPTz8sG6qJSK5ocb2Oujf/w49vJo3Dz28+vSJOyIRKSQ1tkvW9t8/VHedcgocdRQceSS8917cUYlI\nqVIiqaPq1w9DrMyZEwaB3HVXOOss+OyzuCMTkVKjRFLHNWkCF1wA774b7ti47bbhXvLffBN3ZCJS\nKpRIBAjdhG+4AV55BV5/PfTwGjsWfvwx7shEpNipsV1SeuUV+NOfwrUno0aFdhXdVEukdtAQKQmU\nSPLLHR57LNxUq337kFB69ow7KhHJlnptScGYwa9+BW+9BUccAQMGwPHHw0cfxR2ZiBQTJRKpVMOG\ncMYZoYdXp06hVHLeebBsWdyRiUgxUCKRKmveHC67DGbODEmkSxe47jr47ru4IxOROCmRSLW1bQu3\n3QaTJ8Nzz4Uuw/feq5tqidRVamyXrE2eHIZcqVcvDLnSt2/cEYlIJuq1lUCJpHisWQP33QcXXRRu\npjVyJGy3XdxRiUgq6rUlRalePTj6aJg1C/baC8rK4NRTYfHiuCMTkXxTIpGcatwY/vhHmD0bWrQI\npZPhw+Hrr+OOTETyRYlE8mLjjUN7ybRpMHcu/OIXcMstsHp13JGJSK6pjUQKYtq0cO3JokWh/eSQ\nQzTkikhc1NieQImktLjD00+HhFJRYtlll7ijEql71NguJcsMDjggjC48eHAYduWoo0LVl4iULiUS\nKbj69eHEE0ODfPfuoVTy+9/D55/HHZmI1IQSicSmaVP485/hnXdCI/y224b2k1Wr4o5MRKojb4nE\nzMaa2RIzm5mwrLeZvWpmM8xsqpn1SrPvhWb2tpnNNLN7zKxxvuKU+G22Gdx0E/z3v/Dqq2EMr7vu\n0k21REpFPksk44D+SctGAZe4ew9gWDS/DjPrCJwC9HT3bkB94Dd5jFOKROfO8NBDMGFC6Cq8004w\naVLcUYlIZfKWSNz9RSB5oPHFQItouiWwKMWuK4AfgA3NrAGwYZrtpJbabbdQOhk2DH73u3B3xjfe\niDsqEUmn0G0kFwCjzWw+cA1wYfIG7v4FMBqYD3wMfOnuzxY0SomdGRx+OLz9drjmZP/9Q0+vBQvi\njkxEkjWoykZm1gjYFlgDzHb372t4vjuAoe7+iJkNBMYC+yadayvg90BHYDnwgJkd6+7/THXAESNG\nrJ0uKyujrKyshqFJMWrYEH7723BnxlGjYMcdwxheF1wQhmARkcqVl5dTXl6et+NXekGimQ0AbgE+\niBb9HDjN3Z+s9OChvWNi1NaBma1w942iaSOUNlok7XMUsK+7nxzNHw/80t1/m+L4uiCxjlm4MIzd\n9cQTocfX6adDo0ZxRyVSWuK4IPGvwF7u3tfd+wJlwHU1PN/7ZlZxt4q9gTkptpkF/NLMmkTJph/w\nTg3PJ7VMu3Zwxx3w7LPhKvnttoMHHghXzYtIPKpSIpnq7r0S5g14NXFZmv0mAH2B1sASQi+tmcAY\noDGwCjjT3WeYWVvgNncfEO17HjCIUJU2HTjZ3X9IcQ6VSOq4//wn3FSrUaMw5Moee8QdkUjxK9hY\nW2Z2RDTZD/gZcH80PxCY7+5n5CqImlIiEQg31brnnlDV1aMHXH01bLNN3FGJFK9CVm0dDBwEbAB8\nSihd9AU+i5aJFIV69eC448KQK7vtFkolZ5wBn3wSd2QidYNG/5VaZ+lSuOIKGD8ezj4bzjknDMci\nIkEhq7b+lmE/d/ehuQqippRIJJMPPwz3kH/hBRgxAoYMgQZV6vAuUrsVMpEMqphMWOzRvLv7+FwF\nUVNKJFIVU6eGBvnPPguDQg4YoJtqSd1WyERyEfCUu8/I1clyTYlEqsod/vWvcFOtNm1CD6+dd447\nKpF4FLKx/QPgbDN73czGm9lRZrZxrk4sUkhmcNBB8OabcMwxYdiVo48O1V8ikp2qXEdiQA/CSL77\nEoZVeQZ42t1fzXuEmWNTiURqZOVKGD0abrgBBg2Ciy+GVq3ijkqkMAp+ZbsH0939Snffi9Al+B3C\nUO8iJalp0zC68DvvhBtpdekSqru+/TbuyERKT1VKJIMIjezJ+6mxXWqNWbPCQJCvvw6XXx6qv+rp\n/qFSSxWssT3hhDfxUyJpQhgja7q7H5mrIGpKiURy7cUXQw+v778PJZR99ok7IpHcK3giSRFAS+A+\nd98/V0HUlBKJ5IM7PPggXHhhuGvjyJHQrVvcUYnkThyj/yb7BuiUqwBEio0ZDBwY2k/694d+/eCk\nk2CR7tMpklKlicTMJiY8/gXMBh7Jf2gi8WrUCIYODWN4bbYZdO8eenetWBF3ZCLFpSptJH356er2\n1cBH7l4UNzxV1ZYU0oIFcMkl4T4ol1wS7tTYsGHcUYlUXxxVWwPcvTx6vOTuC8xsZK4CECkV7dvD\nnXeGRPL447D99vDww7qplkhVSiQz3L1H0rKZFbfPjZNKJBKnSZNCD69mzUIPrz594o5IpGoKViIx\nszPMbCbQxcxmJjzmAW/mKgCRUrXffjB9eqji+s1v4IgjYE6qm0eL1HKZBm1sAWwMXA2cz0/tJF+5\n+9LChJeZSiRSLFatCsOtXHttSCrDhoUGepFiVLASibsvd/d57v4bd/+IcJfE1pn2EamrmjQJV8bP\nmhXuebLdduHmWt98E3dkIvmXqWrrEDObZ2bTzexA4G3gJuAtMxtcqABFSknr1nD99TBlCrzxRrig\ncexY+PHHuCMTyZ9MVVtvAkcCLYByoJu7f2BmmwHPuXvXgkWZhqq2pNhNmQJ/+hN8+SWMGhUucNRN\ntSRuhbyx1dreWsm9tFL15IqDEomUAvfQXfj882HLLUMPr549445K6rJCXkdS38xamdkmgEfTFfP1\ncxWASG1nBoceCm+9FYZeGTAAjjsOPvoo7shEciNTItkImAa8ljBdMd88/6GJ1C4NGsDpp4cuwltt\nFUol554Ly5bFHZlIdqo9+m8xUdWWlLLFi2H4cHj00dDD6+ST1X4ihRH7MPLFRIlEaoOZM2HIENhk\nE7j99jAUi0g+FcMw8iKSQ926wcsvw557huquO+7Q+F1SWlQiESkib74JgwdDmzZw223Qrl3cEUlt\nVPASiZn91cy2r+6BzWysmS2JxuuqWNbbzF41sxlmNtXMeqXYr0u0vuKx3MyGVvf8IqWoe/dw7Umf\nPtCjB4wbp9KJFL+qjP57CjAYaAiMBSa4+/JKD2y2B/A1cFfFNShmVg5c5e7/NrMDgPPcfa8Mx6gH\nLAJ6p7oHikokUpu98UYonbRtC3//e7gGRSQXCl4icffb3H034ASgIzDTzO4xs7QJINrvRSC5Y+Ni\nwpXyAC0JSSKTfsDcYrmRlkgh7bBDKJ306hVKJ+PHq3QixalKbSRmVh84GBgCtAPuB3YHvnH3ozLs\n1xGYmFAi+RnwEuCEJLZrpiRhZmOB19z9/9KsV4lE6oTXX4dBg6BDB7j11lBKEampXJdIGlThhNcR\nkshzwBXu/mq0aqSZza7m+e4Ahrr7I2Y2kFBVtm+a8zaKznt+pgOOGDFi7XRZWRllZWXVDEmk+O24\nI0ydCpdfHkono0fDscfquhOpmvLycsrLy/N2/Kq0kZwI3OfuK1Osa+nuX2bYtyPrlkhWuPtG0bQB\nX7p7izT7Hgqc4e79MxxfJRKpc6ZNC20nW20Ft9wCm28ed0RSauK4jmQc0N/Mrot6cB0WJQEyJZE0\n3jezvtH03kCm+8kdDUyo5vFFar2ddoLXXoOuXUM7yj33qO1E4lWVEsnNwFaEL3UDfg184O5nVrLf\nBKAv4WZYS4BhwExgDNAYWAWc6e4zzKwtcJu7D4j2bQp8BHRy968ynEMlEqnTXnsttJ106QI33xyu\nPxGpTMGHSDGzWcB27r4mmq8HvOPu2+QqiJpSIhGB776DSy8NV8TfeCP8+tdqO5HM4qjaeh/okDDf\nIVomIkWgcWO48kqYOBFGjAhD1X/6adxRSV1SlUSyEfCumT0fXVD4DtDczCaa2eN5jU5Eqqx3b5gx\nIzTCd+8ODzwQd0RSV1Slaqssw2p39+dzGlE1qGpLJLVXXgk9u7p3hzFjYNNN445IiomGkU+gRCKS\n3qpVMGwY3H033HQTHHFE3BFJsSjkPdu/JlyBnopXXA8SJyUSkcr973/hfic9e8Lf/gatW8cdkcSt\nYI3t7t7M3ZunecSeRESkavr0CUOstG0bqroeeSTuiKS2qXLVlpltBmxQMe/u8/MVVFWpRCJSPS+9\nFEonvXuHrsKbbBJ3RBKHOO5HcoiZvQd8CDwPzAOeylUAIlI4u+8ehqffdNNQOnlc/S4lB6rSa+tN\nwnAmz7h7j2j4+OPd/cRCBJiJSiQiNffCC3DiibDrrnDDDdCqVdwRSaHEcUHiD+7+OVDPzOq7+2Rg\n51wFICLx2HPPUDrZeONQOnniibgjklJVlRLJs8BhwFWEcbM+BXZ29z75Dy8zlUhEcqO8PJRO9twT\nrr8eWraMOyLJpzhKJL8CvgH+ADxNGB7l4FwFICLxKyuDN9+EZs2gWzd48sm4I5JSogsSRWQdkyeH\n0slee8Ff/6rSSW0UR6+tI8zsPTNbYWZfRY8VuQpARIrLXnuF0knjxqF08vTTcUckxa4qbSRzgYPc\n/d3ChFR1KpGI5Nezz8LJJ0O/fuH2vi1S3s9USk0cbSSfFGMSEZH869cvlE7q1w89uyZNijsiKUaZ\nxtqqGOJtT2Bz4FHg+2iZu/vD+Q8vM5VIRApn0iQ45RTYf3+49lrYSAMllaxClkgOBg4i3I9kFbBf\nNH8Q6rUlUufst18onbiH0smzz8YdkRSLqrSR7O7uL1W2LA4qkYjE4+mn4dRTYcAAGDUKmjePOyKp\njjjaSG6s4jIRqSP694eZM+H770Pp5Lnn4o5I4tQg3Qoz2xXoA2xmZn8EKrJXc6B+AWITkSLWogXc\ncUe4eHHQIDjkEBg5MlzUKHVLphJJI35KGs2BZtFjBXBk/kMTkVJw4IGh7WTlSthhB3g+tptvS1yq\n0kbS0d3nFSac6lEbiUhxeeIJOP10OOwwuPpqaNo07ogklTjaSBqb2W1m9oyZTY4eqhEVkfUcdFBo\nO1m+PJROXngh7oikEKp6P5KbgenAj9Fid/dpeY6tUiqRiBSvxx+HM86AgQPhyithww3jjkgq5LpE\nUpVEMs3dd8rVCXNJiUSkuC1dCkOHwquvwrhx4Q6NEr84EskI4DPgYeC7iuXu/kWugqgpJRKR0vDo\no3DmmfCb38Dll6t0Erc4Esk8YL2N3L1TroKoKSUSkdLx+edw1lkwbRrceSf0if3WeHVXwRNJjQ9s\nNhYYAHzq7t2iZb2Bm4CGwGrgTHefmmLflsDtwPaEJHaiu7+SYjslEpES89BD8LvfwXHHwWWXQZMm\ncUdU9xSs15aZnZcwPTBp3ZVVOPY4oH/SslHAJe7eAxgWzadyA/Cku28LdAc0+rBILXHEEeG6k/nz\noUcPeGW9n4hSajJ1/z06YfqipHUHVHZgd38RWJa0eDFQcUeDlsCi5P3MrAWwh7uPjY6z2t2XV3Y+\nESkdm24oL77eAAAOBklEQVQK990Hf/kL/OpXcP758O23cUclNVWV60hy6QJgtJnNB64BLkyxTSfg\nMzMbZ2bTo2tY1DQnUgsNHBhKJ3PnQs+eoXeXlJ60Y23lyR3AUHd/JKouGwvsmyKmnsDv3H2qmV1P\nSEDDUh1wxIgRa6fLysooKyvLQ9giki+bbQYPPAD33x/G6xoyBEaMCLf6ldwoLy+nvLw8b8fPdGOr\nH4FvotkmhHuSVGji7pUmITPrCExMaGxf4e4bRdMGfOnuLZL22Rx4uaJXmJntDlzg7gelOL4a20Vq\nkSVLwkWMs2eHnl29esUdUe1UsMZ2d6/v7s2jR4OE6eZVSSJpvG9mfaPpvYE5Kc77CbDAzDpHi/oB\nb9fwfCJSQtq0Cb26Lr44DLfy5z/Dd99Vvp/EK5/dfycAfYHWwBJC1dRMYAzQmFDCOdPdZ5hZW+A2\ndx8Q7bsDoftvI2AuMCRVg7tKJCK11yefhAEg586F8eNDG4rkRslcR1IISiQitZs7/POf8Mc/wmmn\nwSWXQKNGcUdV+uIY/VdEJBZm4cLFN94Ij169YMaMuKOSZEokIlL0ttgCHnsMzjkH9t8/9Or6/vu4\no5IKSiQiUhLM4IQTQolk6lTYZZdQSpH4KZGISEnZcstwJ8azz4Z99w3jdf3wQ9xR1W1qbBeRkrVw\nIZxySrj+ZPx46NYt7ohKgxrbRUQi7drBk0+G0YT33huuuAJWr447qrpHJRIRqRUWLICTTw53Zbzz\nTujaNe6IipdKJCIiKbRvD08/HS5i3GsvuOoqlU4KRSUSEal15s+Hk06C5ctD6WS77eKOqLioRCIi\nUokOHWDSpJBM+vaFkSNVOsknlUhEpFabNy8klJUrQ+lkm23ijih+KpGIiFRDx47wzDMwaBDssQdc\ncw38+GPcUdUuKpGISJ3x4Ydw4olhaPpx46BLl7gjiodKJCIiNdSpE/znP3DMMbDbbjB6tEonuaAS\niYjUSXPnhtLJ6tWhdNK5c+X71BYqkYiI5MBWW8HkyXDUUdCnD1x/PaxZE3dUpUklEhGp895/H4YM\nCSMMjx0LW28dd0T5pRKJiEiObb01lJfD4YfDL38JN96o0kl1qEQiIpJgzpxQOmnQILSd/PzncUeU\neyqRiIjkUefO8MILcOih0Ls3jBmj0kllVCIREUlj9mwYPBg22CC0nXTqFHdEuaESiYhIgXTpAi+9\nBAceGEonN9+s0kkqKpGIiFTBu++G0kmzZnDHHWHolVKlEomISAy23Rb++1/Ybz/o1QtuvRX0OzZQ\niUREpJrefjuUTjbeGG6/PQxbX0pUIhERidn228PLL4c7Me60E9x2W90unahEIiKShbfeCqWT1q1D\nQmnfPu6IKqcSiYhIEenaNZROdt8devYM3YTr2u/bvJVIzGwsMAD41N27Rct6AzcBDYHVwJnuPjXF\nvvOAFcCPwA/u3jvNOVQiEZGi8eaboXSy+ebw979Du3ZxR5RaKZVIxgH9k5aNAi5x9x7AsGg+FQfK\n3L1HuiQiIlJsuneHKVPCeF09e4Zb+9aF37p5SyTu/iKwLGnxYqBFNN0SWJThEDnLliIihdKwIQwb\nBpMmhaHpDz4YPv447qjyq9BtJBcAo81sPnANcGGa7Rx41sxeM7NTChadiEiO7LgjvPoq7LxzmL7r\nrtpbOslrry0z6whMTGgjeRYY4+6PmNlA4FR33zfFflu4+2Iz2xR4BjgrKuEkb6c2EhEpejNmwKBB\n4Wr4W2+FLbaIN55ct5E0yNWBqqi3u/eLph8Ebk+1kbsvjv5+ZmaPAL2B9RIJwIgRI9ZOl5WVUVZW\nlsNwRUSy16MHvPYaXH457LADXHdduG+8FagCv7y8nPLy8rwdv9AlkunAH9z9eTPbB7ja3Xsl7bMh\nUN/dvzKzpsAk4FJ3n5Ti+CqRiEhJmTYtlE623hpuuSX08Cq0kum1ZWYTgP8BXcxsgZkNAU4FRpnZ\n68Dl0Txm1tbM/hXtujnwYrTNFOCJVElERKQU7bRTSCbbbx9KJxMmlH7bia5sFxGJydSp4bqTLl3C\nEPVt2hTmvCVTIhERkcx69Qqlky5dQunk/vvjjqhmVCIRESkCU6aE0knXruH2vpttlr9zqUQiIlIL\n7bJL6CbcqVO4Qv7hh+OOqOpUIhERKTKvvAJz5sAJJ+Tn+LkukSiRiIjUMaraEhGRoqJEIiIiWVEi\nERGRrCiRiIhIVpRIREQkK0okIiKSFSUSERHJihKJiIhkRYlERESyokQiIiJZUSIREZGsKJGIiEhW\nlEhERCQrSiQiIpIVJRIREcmKEomIiGRFiURERLKiRCIiIllRIhERkawokYiISFaUSEREJCtKJCIi\nkhUlEhERyUreEomZjTWzJWY2M2FZbzN71cxmmNlUM+uVYf/60XYT8xWjiIhkL58lknFA/6Rlo4BL\n3L0HMCyaT+ds4B3A8xNe/MrLy+MOocZKOXZQ/HFT/LVL3hKJu78ILEtavBhoEU23BBal2tfM2gEH\nArcDlq8Y41bKb8ZSjh0Uf9wUf+3SoMDnuwB4ycyuJSSxXdNsdx1wLrBRoQITEZGaKXRj+x3AUHfv\nAPwBGJu8gZkdBHzq7jOoxaUREZHawtzz1wRhZh2Bie7eLZpf4e4bRdMGfOnuLZL2uRI4HlgNbEAo\nlTzk7iekOH6tbT8REcknd8/ZD/VCV229b2Z93f15YG9gTvIG7n4RcBGAmfUF/pQqiUTbqsQiIhKz\nvCUSM5sA9AVam9kCQi+tU4ExZtYYWBXNY2ZtgdvcfUCKQ6nUISJSxPJatSUiIrVf0VzZbmb9zWyW\nmb1nZuen2ebGaP0bZtajsn2rcwFkzPGvd/FmtLyVmT1jZnPMbJKZtSyx+K8xs3ej7R82sxbrH7V4\n409Yf46ZrTGzVqUUu5mdFb3+b5nZyHzEnq/4S+Gza2btzWyymb0dvcZDE7Yv+s9uJfFX77Pr7rE/\ngPrA+0BHoCHwOrBt0jYHAk9G07sAr1S2L1AO7B9NHwBMLrb4o/k9gB7AzKR9RgHnRdPnA1eXWPz7\nAvWi6atLLf5oXXvgaeBDoFWpxA7sBTwDNIzmNy2l174UPrvA5sCO0XQzYDawTTRf9J/dNPFXfHdW\n67NbLCWS3sD77j7P3X8A7gUOTdrmEGA8gLtPAVqa2eaV7FulCyBjjh9PffHmOvtEf3+Vh9ghT/G7\n+zPuviaanQK0K6X4I38FzstL1EG+Yj8DuCo6Ju7+WYnFX+yf3Tbu/om7vx4t/xp4F9gyeR+K87Ob\nLv620Xy1PrvFkki2BBYkzC/kp39IZdu0zbDvBcBoM5sPXANcmMOYqxJbdbdJ1sbdl0TTS4A22QSZ\nQb7iT3Qi8GSNoqtcXuI3s0OBhe7+Zi6CTCNfr/0vgD3N7BUzKzeznbOONLV8xV/sn911vlgtXOrQ\ng/ClC8X/2a0s/kSVfnaLJZFUtcW/ut19K70AMkdqGn+Vezp4KGPmq2dEXuM3sz8D37v7PdWKqupy\nHr+ZbUjohj48w/65kK/XvgGwsbv/kjBKxP3VDayK8hV/yXx2zawZ8CBwdvTLft0Ni/yzmyn+qn52\niyWRLCLURVdoT8iambZpF22Tad/e7v5INP0goRiYDzWNv7Li+pKKKgAz2wL4NMs408lX/JjZYEId\n7bHZhZhRPuLfilDv/IaZfRhtP83MNss62sxx5eq1Xwg8DODuU4E1ZrZJdqGmlK/4S+Kza2YNgYeA\nu9390YRtSuKzmyH+6n1289EAVIMGowbAXMIHtxGVNxj9kp8ajNLuC0wH+kbT+wBTiy3+hPUdSd3Y\nfn40fQH5a7DLV/z9gbeB1sX6/skUf9L6fDW25+u1Pw24NJruDMwvpde+FD67hF/5dwHXpThu0X92\nK4m/Wp/dnD+xLF6QAwi9Bt4HLoyWnQaclrDNTdH6N4CemfaNlu9MqPN7HXgZ6FGk8U8APga+I9Rl\nDomWtwKeJYwAMAloWWLxvwd8BMyIHv9XSvEnHf8D8pBI8vjaNwT+AcwEpgFlpfTal8JnF9gdWBPF\nWPEe7x+tK/rPbiXxV+uzqwsSRUQkK8XSRiIiIiVKiURERLKiRCIiIllRIhERkawokYiISFaUSERE\nJCuFvkOiSFEzsx+BxLG1Jrj7qAzb9yUMIfFy3oMTKVJKJCLr+sbde1S+2Vp7AV8RLppbh5nVd/cf\ncxaZSJHSBYkiCczsK3dvnmL5POBO4GDCVeMDCVdjvwz8SBhLaShwMvAtsCPwEnA3cAvQhDCUxYnu\n/qWZlROuKO5L+EF3IuEK9FlAH3f/3MzqEa5Y/qW7L83PMxbJntpIRNbVJLorX8VjYLTcgc/cfSfg\nZuBP7j6PkCT+6u493f2laLu2wK7u/ifCWEbnuvsOhOFKhiccr0lU+jkTGOvh/g9389Mgef2A15VE\npNipaktkXasyVG09HP2dDhyesDx5iO4H3N2j25O28HDzJgg3F3ogYbsJEG7uZGYbmdlGhOHSHwNu\nIJRSxtX8qYgUhkokIlX3XfT3RzL/CPsmzfLK7mfi7r6QMAT53kAv4KnqhShSeEokItn5ClivTQXA\n3ZcDy8xs92jR8YR7kUNIKkcBROu/dPevonW3E6q47nc1YkoJUNWWyLqamNmMhPmn3P2ipG0S73g3\nEXjQzA4hNLbDunetGwTcEt1xcS4wJGGbb81sOj81tleYSKjSUrWWlAT12hKJgZlNBs5x9+kp1u0M\njHb3voWPTKT6VCIRKSJmdgFwOnBM3LGIVJVKJCIikhU1touISFaUSEREJCtKJCIikhUlEhERyYoS\niYiIZEWJREREsvL/2P9NFOaFOqMAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bd2c30>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bf3270>"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity required\n",
+ "#Initialization of variables\n",
+ "p1=40 #psia\n",
+ "t1=80. #F\n",
+ "p2=30 #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200 #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "t2=78. #F\n",
+ "#calculations\n",
+ "G=40 #lb/sq ft/sec\n",
+ "rho2=144*p2/(R*(t2+460.))\n",
+ "v2=p1/rho2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Velocity =\",v2,\"ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity = 265 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity, diameter, specific volume, density and diameter of nozzle\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "P2=([180., 160., 140., 120., 100., 80., 60., 40., 20.])\n",
+ "k=1.4\n",
+ "p1=200 #psia\n",
+ "t1=240+460. #R\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "gc=32.2\n",
+ "R=53.35\n",
+ "m=4. #lb/sec\n",
+ "#calculations\n",
+ "b = len(P2)\n",
+ "pr=numpy.zeros(b);\n",
+ "prr=numpy.zeros(b);\n",
+ "T2=numpy.zeros(b);\n",
+ "dt=numpy.zeros(b);\n",
+ "dh=numpy.zeros(b);\n",
+ "v2=numpy.zeros(b);\n",
+ "vol=numpy.zeros(b);\n",
+ "A2=numpy.zeros(b);\n",
+ "dia=numpy.zeros(b);\n",
+ "rad=numpy.zeros(b);\n",
+ "den=numpy.zeros(b);\n",
+ "for i in range (0,b):\n",
+ "\tpr[i] = p1/P2[i]\n",
+ "\tprr[i]=math.pow(pr[i],((k-1)/k))\n",
+ "\tT2[i]=t1 /prr[i]\n",
+ "\tdt[i]= t1 -T2[i]\n",
+ "\tdh[i]=dt[i]*cp\n",
+ "\tv2[i]=math.sqrt(2*gc*J*dh[i])\n",
+ "\tvol[i]=(R*T2[i]) /(P2[i]*144.)\n",
+ "\tA2[i]=m*vol[i]*144. /v2[i]\n",
+ "\tdia[i]=math.sqrt(4/ math.pi *A2[i])\n",
+ "\trad[i]=dia[i]/2.\n",
+ "\tden[i]=1. /vol[i]\n",
+ "\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title ('Velocity vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('velocity in ft/s')\n",
+ "pyplot.plot(P2,v2)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title('specific volume vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('specific volume in cu ft/lb')\n",
+ "pyplot.plot(P2,vol)\n",
+ "\n",
+ "pyplot.figure(3)\n",
+ "pyplot.title('Radius vs Pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('Radius in in')\n",
+ "plot(P2,rad)\n",
+ "#results\n",
+ "print '%s' %('Velocity in ft/s')\n",
+ "print (v2)\n",
+ "print '%s' %('Specific volume in cu ft/lb')\n",
+ "print (vol)\n",
+ "print '%s' %('Density in lb/cu ft')\n",
+ "print (den)\n",
+ "print '%s' %('Diameter of nozzle in in')\n",
+ "print (dia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Velocity in ft/s"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "[ 499.61112617 721.04131991 903.0653517 1069.14361272 1229.75524527\n",
+ " 1392.40468067 1565.24666139 1761.46433404 2014.34825773]\n",
+ "Specific volume in cu ft/lb\n",
+ "[ 1.39805384 1.52076257 1.6729549 1.86768387 2.12745999 2.4950706\n",
+ " 3.06425423 4.09358926 6.71623201]\n",
+ "Density in lb/cu ft\n",
+ "[ 0.71528003 0.65756484 0.59774475 0.53542252 0.47004409 0.40079026\n",
+ " 0.32634368 0.2442844 0.14889301]\n",
+ "Diameter of nozzle in in\n",
+ "[ 1.43255795 1.24370371 1.16559809 1.1318789 1.12638708 1.14637045\n",
+ " 1.19822204 1.30551392 1.56373036]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7b96290>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4hzkiETAuWYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d968d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d7e810>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the nozzle exit area\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=200. #psia\n",
+ "t1=480. #F\n",
+ "eff=0.95\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "mf=3.4 #lb/s\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "h1=1257.8 \n",
+ "h2=1210.5 \n",
+ "dh=eff*(h1-h2)\n",
+ "ve=math.sqrt(2*g*J*dh)\n",
+ "h3=h1-dh\n",
+ "vs=3.961\n",
+ "Ae=mf*vs/ve *144.\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Nozzle exit area =\",Ae,\"sq.in\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Nozzle exit area = 1.292 sq.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature, pressure and exit velocity in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "R=53.35\n",
+ "v=300. #ft/s\n",
+ "p=100 #psia\n",
+ "t1=200 #F\n",
+ "q=500 #Btu/s\n",
+ "gc=32.2 #ft/s^2\n",
+ "J=778\n",
+ "#calculations\n",
+ "rho1=p*144/(R*(460.+t1))\n",
+ "s=([1., -0.206, 0.00535])\n",
+ "vec=numpy.roots(s)\n",
+ "rho2=vec[0]\n",
+ "t2=(236.6 - 0.301/rho2/rho2)/0.248\n",
+ "P2=rho2*R*(t2+462) /144.\n",
+ "v2=math.sqrt(2*gc*J*(236.6-0.248*t2))\n",
+ "v22=rho1*v/rho2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final temperature =\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final pressure =\",P2,\" psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 1 =\",v2,\"ft/s\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 2 =\",v22,\" ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = 914.6 F\n",
+ "\n",
+ " Final pressure = 89.5 psia\n",
+ "\n",
+ " Exit velocity in case 1 = 699.7 ft/s\n",
+ "\n",
+ " Exit velocity in case 2 = 699.0 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_11_1.ipynb b/Thermodynamics_for_Engineers/Chapter_11_1.ipynb
new file mode 100755
index 00000000..3a5ea2bf
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_11_1.ipynb
@@ -0,0 +1,656 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:902aab6334eafa9c076aa9433328b057ddfc9db48d6910774ed6bb3aa051c994"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - Thermodynamics of Fluid flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the reynolds number\n",
+ "#Initialization of variables\n",
+ "d=2.067 #in\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "#calculations\n",
+ "rho=P*144./(R*T)\n",
+ "Re=d*v*rho*3600./(12*mu)\n",
+ "#results\n",
+ "print '%s %d' %(\"Reynolds number = \",Re)\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 57398\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in pressure and the percent change\n",
+ "#Initialization of variables\n",
+ "eps=0.00015 \n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "rho=P*144/(R*T)\n",
+ "Re=D*v*rho*3600./(mu)\n",
+ "ed=eps/D\n",
+ "print '%s' %(\"From figure 11.5\")\n",
+ "f=0.0235\n",
+ "dp=f*l*rho*v*v /(2*D*g) /144.\n",
+ "change=dp/P *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in pressure =\",dp,\"psi\")\n",
+ "print '%s %.2f %s' %(\"\\n Percentage change in pressure =\",change,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 11.5\n",
+ "Change in pressure = 0.33 psi\n",
+ "\n",
+ " Percentage change in pressure = 1.66 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initialization of variables\n",
+ "v1=60. #ft/s\n",
+ "d1=10. #in\n",
+ "d2=15. #in\n",
+ "P=15. #psia\n",
+ "R=53.35\n",
+ "T=540. #R\n",
+ "g=32.17 #ft/s^2\n",
+ "v1=60. #ft/s\n",
+ "#calculations\n",
+ "v2=v1*d1*d1 /d2/d2\n",
+ "rho=P*144/(R*T)\n",
+ "dp=rho*(v2*v2 -v1*v1)/(2*g) /144.\n",
+ "p2=P-dp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 15.02 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "J=778 #ft.lb/Btu\n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "f=0.0235\n",
+ "ds=f*v*v *l /(J*2*D*g*T)\n",
+ "#results\n",
+ "print '%s %.6f %s' %(\"Change in entropy =\",ds,\" Btu/lbm R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.001136 Btu/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure, enthalpy, entropy, temperature and density of the gas\n",
+ "#Initialization of variables\n",
+ "v=210 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "p=200. #psia\n",
+ "z=5. #ft\n",
+ "x=2.361\n",
+ "h=1210.3\n",
+ "J=778.\n",
+ "#calculations\n",
+ "P0=p + v*v /(2*g*144*x) + z/(144*x)\n",
+ "h0=h + v*v /(2*J*g) +z/J\n",
+ "S=1.5594 #units/lb\n",
+ "S0=S\n",
+ "t0=401.9 #F\n",
+ "v0=2.342 #cu ft/lb\n",
+ "rho0=1./v0\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Pressure =\",P0,\"psia\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h0,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",S0,\"units/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Temperature =\",t0,\" F\")\n",
+ "print '%s %.3f %s' %(\"\\n Density =\",rho0,\" lb/cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 202 psia\n",
+ "\n",
+ " Enthalpy = 1211.19 Btu/lb\n",
+ "\n",
+ " Entropy = 1.5594 units/lb\n",
+ "\n",
+ " Temperature = 401.9 F\n",
+ "\n",
+ " Density = 0.427 lb/cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "import math\n",
+ "p1=40. #psia\n",
+ "t1=80. #F\n",
+ "p2=30. #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200. #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "#calculations\n",
+ "rho1=144*p1/(R*(t1+460))\n",
+ "G=rho1*v1\n",
+ "h10= cp*t1 + p1*p1 /(2*g*rho1*rho1 *J)\n",
+ "t2=78 #F\n",
+ "h2=cp*t2\n",
+ "g2=h10-h2\n",
+ "rho2=math.sqrt(p1*p1 /(2*g*g2*J))\n",
+ "P2=rho2*R*(t2+460)/144. \n",
+ "ds2=cp*math.log((t2+460.)/(t1+460.)) - R/J *math.log(P2/p1)\n",
+ "t3=77 #F\n",
+ "h3=cp*t3\n",
+ "g3=h10-h3\n",
+ "rho3=math.sqrt(p1*p1 /(2*g*g3*J))\n",
+ "P3=rho3*R*(t3+460)/144. \n",
+ "ds3=cp*math.log((t3+460.)/(t1+460.)) - R/J *math.log(P3/p1)\n",
+ "t4=79 #F\n",
+ "h4=cp*t4\n",
+ "g4=h10-h4\n",
+ "rho4=math.sqrt(p1*p1 /(2*g*g4*J))\n",
+ "P4=rho4*R*(t4+460)/144. \n",
+ "ds4=cp*math.log((t4+460)/(t1+460.)) - R/J *math.log(P4/p1)\n",
+ "h5=18.62\n",
+ "t5=h5/cp\n",
+ "Gv=([h4, h2, h3])\n",
+ "Pv=([P4, P2, P3])\n",
+ "Sv=([ds4, ds2, ds3])\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title(\"Fanno line diagram , Enthalpy vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Enthalpy Btu/lb\")\n",
+ "pyplot.plot(Sv,Gv)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title(\"Fanno line diagram , Pressure vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Pressure psia\")\n",
+ "pyplot.plot(Sv,Pv)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Temperature at exit =\",t5,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Temperature at exit = 77.6 F"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['f']\n",
+ "`%matplotlib` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bd2c30>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bf3270>"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity required\n",
+ "#Initialization of variables\n",
+ "p1=40 #psia\n",
+ "t1=80. #F\n",
+ "p2=30 #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200 #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "t2=78. #F\n",
+ "#calculations\n",
+ "G=40 #lb/sq ft/sec\n",
+ "rho2=144*p2/(R*(t2+460.))\n",
+ "v2=p1/rho2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Velocity =\",v2,\"ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity = 265 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity, diameter, specific volume, density and diameter of nozzle\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "P2=([180., 160., 140., 120., 100., 80., 60., 40., 20.])\n",
+ "k=1.4\n",
+ "p1=200 #psia\n",
+ "t1=240+460. #R\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "gc=32.2\n",
+ "R=53.35\n",
+ "m=4. #lb/sec\n",
+ "#calculations\n",
+ "b = len(P2)\n",
+ "pr=numpy.zeros(b);\n",
+ "prr=numpy.zeros(b);\n",
+ "T2=numpy.zeros(b);\n",
+ "dt=numpy.zeros(b);\n",
+ "dh=numpy.zeros(b);\n",
+ "v2=numpy.zeros(b);\n",
+ "vol=numpy.zeros(b);\n",
+ "A2=numpy.zeros(b);\n",
+ "dia=numpy.zeros(b);\n",
+ "rad=numpy.zeros(b);\n",
+ "den=numpy.zeros(b);\n",
+ "for i in range (0,b):\n",
+ "\tpr[i] = p1/P2[i]\n",
+ "\tprr[i]=math.pow(pr[i],((k-1)/k))\n",
+ "\tT2[i]=t1 /prr[i]\n",
+ "\tdt[i]= t1 -T2[i]\n",
+ "\tdh[i]=dt[i]*cp\n",
+ "\tv2[i]=math.sqrt(2*gc*J*dh[i])\n",
+ "\tvol[i]=(R*T2[i]) /(P2[i]*144.)\n",
+ "\tA2[i]=m*vol[i]*144. /v2[i]\n",
+ "\tdia[i]=math.sqrt(4/ math.pi *A2[i])\n",
+ "\trad[i]=dia[i]/2.\n",
+ "\tden[i]=1. /vol[i]\n",
+ "\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title ('Velocity vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('velocity in ft/s')\n",
+ "pyplot.plot(P2,v2)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title('specific volume vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('specific volume in cu ft/lb')\n",
+ "pyplot.plot(P2,vol)\n",
+ "\n",
+ "pyplot.figure(3)\n",
+ "pyplot.title('Radius vs Pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('Radius in in')\n",
+ "plot(P2,rad)\n",
+ "#results\n",
+ "print '%s' %('Velocity in ft/s')\n",
+ "print (v2)\n",
+ "print '%s' %('Specific volume in cu ft/lb')\n",
+ "print (vol)\n",
+ "print '%s' %('Density in lb/cu ft')\n",
+ "print (den)\n",
+ "print '%s' %('Diameter of nozzle in in')\n",
+ "print (dia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Velocity in ft/s"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "[ 499.61112617 721.04131991 903.0653517 1069.14361272 1229.75524527\n",
+ " 1392.40468067 1565.24666139 1761.46433404 2014.34825773]\n",
+ "Specific volume in cu ft/lb\n",
+ "[ 1.39805384 1.52076257 1.6729549 1.86768387 2.12745999 2.4950706\n",
+ " 3.06425423 4.09358926 6.71623201]\n",
+ "Density in lb/cu ft\n",
+ "[ 0.71528003 0.65756484 0.59774475 0.53542252 0.47004409 0.40079026\n",
+ " 0.32634368 0.2442844 0.14889301]\n",
+ "Diameter of nozzle in in\n",
+ "[ 1.43255795 1.24370371 1.16559809 1.1318789 1.12638708 1.14637045\n",
+ " 1.19822204 1.30551392 1.56373036]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7b96290>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4hzkiETAuWYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d968d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d7e810>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the nozzle exit area\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=200. #psia\n",
+ "t1=480. #F\n",
+ "eff=0.95\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "mf=3.4 #lb/s\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "h1=1257.8 \n",
+ "h2=1210.5 \n",
+ "dh=eff*(h1-h2)\n",
+ "ve=math.sqrt(2*g*J*dh)\n",
+ "h3=h1-dh\n",
+ "vs=3.961\n",
+ "Ae=mf*vs/ve *144.\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Nozzle exit area =\",Ae,\"sq.in\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Nozzle exit area = 1.292 sq.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature, pressure and exit velocity in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "R=53.35\n",
+ "v=300. #ft/s\n",
+ "p=100 #psia\n",
+ "t1=200 #F\n",
+ "q=500 #Btu/s\n",
+ "gc=32.2 #ft/s^2\n",
+ "J=778\n",
+ "#calculations\n",
+ "rho1=p*144/(R*(460.+t1))\n",
+ "s=([1., -0.206, 0.00535])\n",
+ "vec=numpy.roots(s)\n",
+ "rho2=vec[0]\n",
+ "t2=(236.6 - 0.301/rho2/rho2)/0.248\n",
+ "P2=rho2*R*(t2+462) /144.\n",
+ "v2=math.sqrt(2*gc*J*(236.6-0.248*t2))\n",
+ "v22=rho1*v/rho2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final temperature =\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final pressure =\",P2,\" psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 1 =\",v2,\"ft/s\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 2 =\",v22,\" ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = 914.6 F\n",
+ "\n",
+ " Final pressure = 89.5 psia\n",
+ "\n",
+ " Exit velocity in case 1 = 699.7 ft/s\n",
+ "\n",
+ " Exit velocity in case 2 = 699.0 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_11_2.ipynb b/Thermodynamics_for_Engineers/Chapter_11_2.ipynb
new file mode 100755
index 00000000..3a5ea2bf
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_11_2.ipynb
@@ -0,0 +1,656 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:902aab6334eafa9c076aa9433328b057ddfc9db48d6910774ed6bb3aa051c994"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - Thermodynamics of Fluid flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the reynolds number\n",
+ "#Initialization of variables\n",
+ "d=2.067 #in\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "#calculations\n",
+ "rho=P*144./(R*T)\n",
+ "Re=d*v*rho*3600./(12*mu)\n",
+ "#results\n",
+ "print '%s %d' %(\"Reynolds number = \",Re)\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 57398\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in pressure and the percent change\n",
+ "#Initialization of variables\n",
+ "eps=0.00015 \n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "rho=P*144/(R*T)\n",
+ "Re=D*v*rho*3600./(mu)\n",
+ "ed=eps/D\n",
+ "print '%s' %(\"From figure 11.5\")\n",
+ "f=0.0235\n",
+ "dp=f*l*rho*v*v /(2*D*g) /144.\n",
+ "change=dp/P *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in pressure =\",dp,\"psi\")\n",
+ "print '%s %.2f %s' %(\"\\n Percentage change in pressure =\",change,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 11.5\n",
+ "Change in pressure = 0.33 psi\n",
+ "\n",
+ " Percentage change in pressure = 1.66 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initialization of variables\n",
+ "v1=60. #ft/s\n",
+ "d1=10. #in\n",
+ "d2=15. #in\n",
+ "P=15. #psia\n",
+ "R=53.35\n",
+ "T=540. #R\n",
+ "g=32.17 #ft/s^2\n",
+ "v1=60. #ft/s\n",
+ "#calculations\n",
+ "v2=v1*d1*d1 /d2/d2\n",
+ "rho=P*144/(R*T)\n",
+ "dp=rho*(v2*v2 -v1*v1)/(2*g) /144.\n",
+ "p2=P-dp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 15.02 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "J=778 #ft.lb/Btu\n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "f=0.0235\n",
+ "ds=f*v*v *l /(J*2*D*g*T)\n",
+ "#results\n",
+ "print '%s %.6f %s' %(\"Change in entropy =\",ds,\" Btu/lbm R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.001136 Btu/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure, enthalpy, entropy, temperature and density of the gas\n",
+ "#Initialization of variables\n",
+ "v=210 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "p=200. #psia\n",
+ "z=5. #ft\n",
+ "x=2.361\n",
+ "h=1210.3\n",
+ "J=778.\n",
+ "#calculations\n",
+ "P0=p + v*v /(2*g*144*x) + z/(144*x)\n",
+ "h0=h + v*v /(2*J*g) +z/J\n",
+ "S=1.5594 #units/lb\n",
+ "S0=S\n",
+ "t0=401.9 #F\n",
+ "v0=2.342 #cu ft/lb\n",
+ "rho0=1./v0\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Pressure =\",P0,\"psia\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h0,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",S0,\"units/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Temperature =\",t0,\" F\")\n",
+ "print '%s %.3f %s' %(\"\\n Density =\",rho0,\" lb/cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 202 psia\n",
+ "\n",
+ " Enthalpy = 1211.19 Btu/lb\n",
+ "\n",
+ " Entropy = 1.5594 units/lb\n",
+ "\n",
+ " Temperature = 401.9 F\n",
+ "\n",
+ " Density = 0.427 lb/cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "import math\n",
+ "p1=40. #psia\n",
+ "t1=80. #F\n",
+ "p2=30. #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200. #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "#calculations\n",
+ "rho1=144*p1/(R*(t1+460))\n",
+ "G=rho1*v1\n",
+ "h10= cp*t1 + p1*p1 /(2*g*rho1*rho1 *J)\n",
+ "t2=78 #F\n",
+ "h2=cp*t2\n",
+ "g2=h10-h2\n",
+ "rho2=math.sqrt(p1*p1 /(2*g*g2*J))\n",
+ "P2=rho2*R*(t2+460)/144. \n",
+ "ds2=cp*math.log((t2+460.)/(t1+460.)) - R/J *math.log(P2/p1)\n",
+ "t3=77 #F\n",
+ "h3=cp*t3\n",
+ "g3=h10-h3\n",
+ "rho3=math.sqrt(p1*p1 /(2*g*g3*J))\n",
+ "P3=rho3*R*(t3+460)/144. \n",
+ "ds3=cp*math.log((t3+460.)/(t1+460.)) - R/J *math.log(P3/p1)\n",
+ "t4=79 #F\n",
+ "h4=cp*t4\n",
+ "g4=h10-h4\n",
+ "rho4=math.sqrt(p1*p1 /(2*g*g4*J))\n",
+ "P4=rho4*R*(t4+460)/144. \n",
+ "ds4=cp*math.log((t4+460)/(t1+460.)) - R/J *math.log(P4/p1)\n",
+ "h5=18.62\n",
+ "t5=h5/cp\n",
+ "Gv=([h4, h2, h3])\n",
+ "Pv=([P4, P2, P3])\n",
+ "Sv=([ds4, ds2, ds3])\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title(\"Fanno line diagram , Enthalpy vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Enthalpy Btu/lb\")\n",
+ "pyplot.plot(Sv,Gv)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title(\"Fanno line diagram , Pressure vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Pressure psia\")\n",
+ "pyplot.plot(Sv,Pv)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Temperature at exit =\",t5,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Temperature at exit = 77.6 F"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['f']\n",
+ "`%matplotlib` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bd2c30>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5bf3270>"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity required\n",
+ "#Initialization of variables\n",
+ "p1=40 #psia\n",
+ "t1=80. #F\n",
+ "p2=30 #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200 #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "t2=78. #F\n",
+ "#calculations\n",
+ "G=40 #lb/sq ft/sec\n",
+ "rho2=144*p2/(R*(t2+460.))\n",
+ "v2=p1/rho2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Velocity =\",v2,\"ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity = 265 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity, diameter, specific volume, density and diameter of nozzle\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "P2=([180., 160., 140., 120., 100., 80., 60., 40., 20.])\n",
+ "k=1.4\n",
+ "p1=200 #psia\n",
+ "t1=240+460. #R\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "gc=32.2\n",
+ "R=53.35\n",
+ "m=4. #lb/sec\n",
+ "#calculations\n",
+ "b = len(P2)\n",
+ "pr=numpy.zeros(b);\n",
+ "prr=numpy.zeros(b);\n",
+ "T2=numpy.zeros(b);\n",
+ "dt=numpy.zeros(b);\n",
+ "dh=numpy.zeros(b);\n",
+ "v2=numpy.zeros(b);\n",
+ "vol=numpy.zeros(b);\n",
+ "A2=numpy.zeros(b);\n",
+ "dia=numpy.zeros(b);\n",
+ "rad=numpy.zeros(b);\n",
+ "den=numpy.zeros(b);\n",
+ "for i in range (0,b):\n",
+ "\tpr[i] = p1/P2[i]\n",
+ "\tprr[i]=math.pow(pr[i],((k-1)/k))\n",
+ "\tT2[i]=t1 /prr[i]\n",
+ "\tdt[i]= t1 -T2[i]\n",
+ "\tdh[i]=dt[i]*cp\n",
+ "\tv2[i]=math.sqrt(2*gc*J*dh[i])\n",
+ "\tvol[i]=(R*T2[i]) /(P2[i]*144.)\n",
+ "\tA2[i]=m*vol[i]*144. /v2[i]\n",
+ "\tdia[i]=math.sqrt(4/ math.pi *A2[i])\n",
+ "\trad[i]=dia[i]/2.\n",
+ "\tden[i]=1. /vol[i]\n",
+ "\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title ('Velocity vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('velocity in ft/s')\n",
+ "pyplot.plot(P2,v2)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title('specific volume vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('specific volume in cu ft/lb')\n",
+ "pyplot.plot(P2,vol)\n",
+ "\n",
+ "pyplot.figure(3)\n",
+ "pyplot.title('Radius vs Pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('Radius in in')\n",
+ "plot(P2,rad)\n",
+ "#results\n",
+ "print '%s' %('Velocity in ft/s')\n",
+ "print (v2)\n",
+ "print '%s' %('Specific volume in cu ft/lb')\n",
+ "print (vol)\n",
+ "print '%s' %('Density in lb/cu ft')\n",
+ "print (den)\n",
+ "print '%s' %('Diameter of nozzle in in')\n",
+ "print (dia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Velocity in ft/s"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "[ 499.61112617 721.04131991 903.0653517 1069.14361272 1229.75524527\n",
+ " 1392.40468067 1565.24666139 1761.46433404 2014.34825773]\n",
+ "Specific volume in cu ft/lb\n",
+ "[ 1.39805384 1.52076257 1.6729549 1.86768387 2.12745999 2.4950706\n",
+ " 3.06425423 4.09358926 6.71623201]\n",
+ "Density in lb/cu ft\n",
+ "[ 0.71528003 0.65756484 0.59774475 0.53542252 0.47004409 0.40079026\n",
+ " 0.32634368 0.2442844 0.14889301]\n",
+ "Diameter of nozzle in in\n",
+ "[ 1.43255795 1.24370371 1.16559809 1.1318789 1.12638708 1.14637045\n",
+ " 1.19822204 1.30551392 1.56373036]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7b96290>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4hzkiETAuWYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d968d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d7e810>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the nozzle exit area\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=200. #psia\n",
+ "t1=480. #F\n",
+ "eff=0.95\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "mf=3.4 #lb/s\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "h1=1257.8 \n",
+ "h2=1210.5 \n",
+ "dh=eff*(h1-h2)\n",
+ "ve=math.sqrt(2*g*J*dh)\n",
+ "h3=h1-dh\n",
+ "vs=3.961\n",
+ "Ae=mf*vs/ve *144.\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Nozzle exit area =\",Ae,\"sq.in\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Nozzle exit area = 1.292 sq.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature, pressure and exit velocity in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "R=53.35\n",
+ "v=300. #ft/s\n",
+ "p=100 #psia\n",
+ "t1=200 #F\n",
+ "q=500 #Btu/s\n",
+ "gc=32.2 #ft/s^2\n",
+ "J=778\n",
+ "#calculations\n",
+ "rho1=p*144/(R*(460.+t1))\n",
+ "s=([1., -0.206, 0.00535])\n",
+ "vec=numpy.roots(s)\n",
+ "rho2=vec[0]\n",
+ "t2=(236.6 - 0.301/rho2/rho2)/0.248\n",
+ "P2=rho2*R*(t2+462) /144.\n",
+ "v2=math.sqrt(2*gc*J*(236.6-0.248*t2))\n",
+ "v22=rho1*v/rho2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final temperature =\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final pressure =\",P2,\" psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 1 =\",v2,\"ft/s\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 2 =\",v22,\" ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = 914.6 F\n",
+ "\n",
+ " Final pressure = 89.5 psia\n",
+ "\n",
+ " Exit velocity in case 1 = 699.7 ft/s\n",
+ "\n",
+ " Exit velocity in case 2 = 699.0 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_11_3.ipynb b/Thermodynamics_for_Engineers/Chapter_11_3.ipynb
new file mode 100755
index 00000000..6b765040
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_11_3.ipynb
@@ -0,0 +1,649 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:44e64b4537965942393829519dc8a0f03d9e3358f94636d1404b1281c73e5622"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - Thermodynamics of Fluid flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the reynolds number\n",
+ "#Initialization of variables\n",
+ "d=2.067 #in\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "#calculations\n",
+ "rho=P*144./(R*T)\n",
+ "Re=d*v*rho*3600./(12*mu)\n",
+ "#results\n",
+ "print '%s %d' %(\"Reynolds number = \",Re)\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 57398\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in pressure and the percent change\n",
+ "#Initialization of variables\n",
+ "eps=0.00015 \n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "rho=P*144/(R*T)\n",
+ "Re=D*v*rho*3600./(mu)\n",
+ "ed=eps/D\n",
+ "print '%s' %(\"From figure 11.5\")\n",
+ "f=0.0235\n",
+ "dp=f*l*rho*v*v /(2*D*g) /144.\n",
+ "change=dp/P *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in pressure =\",dp,\"psi\")\n",
+ "print '%s %.2f %s' %(\"\\n Percentage change in pressure =\",change,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 11.5\n",
+ "Change in pressure = 0.33 psi\n",
+ "\n",
+ " Percentage change in pressure = 1.66 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initialization of variables\n",
+ "v1=60. #ft/s\n",
+ "d1=10. #in\n",
+ "d2=15. #in\n",
+ "P=15. #psia\n",
+ "R=53.35\n",
+ "T=540. #R\n",
+ "g=32.17 #ft/s^2\n",
+ "v1=60. #ft/s\n",
+ "#calculations\n",
+ "v2=v1*d1*d1 /d2/d2\n",
+ "rho=P*144/(R*T)\n",
+ "dp=rho*(v2*v2 -v1*v1)/(2*g) /144.\n",
+ "p2=P-dp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 15.02 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "J=778 #ft.lb/Btu\n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "f=0.0235\n",
+ "ds=f*v*v *l /(J*2*D*g*T)\n",
+ "#results\n",
+ "print '%s %.6f %s' %(\"Change in entropy =\",ds,\" Btu/lbm R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.001136 Btu/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure, enthalpy, entropy, temperature and density of the gas\n",
+ "#Initialization of variables\n",
+ "v=210 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "p=200. #psia\n",
+ "z=5. #ft\n",
+ "x=2.361\n",
+ "h=1210.3\n",
+ "J=778.\n",
+ "#calculations\n",
+ "P0=p + v*v /(2*g*144*x) + z/(144*x)\n",
+ "h0=h + v*v /(2*J*g) +z/J\n",
+ "S=1.5594 #units/lb\n",
+ "S0=S\n",
+ "t0=401.9 #F\n",
+ "v0=2.342 #cu ft/lb\n",
+ "rho0=1./v0\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Pressure =\",P0,\"psia\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h0,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",S0,\"units/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Temperature =\",t0,\" F\")\n",
+ "print '%s %.3f %s' %(\"\\n Density =\",rho0,\" lb/cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 202 psia\n",
+ "\n",
+ " Enthalpy = 1211.19 Btu/lb\n",
+ "\n",
+ " Entropy = 1.5594 units/lb\n",
+ "\n",
+ " Temperature = 401.9 F\n",
+ "\n",
+ " Density = 0.427 lb/cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature\n",
+ "#Initialization of variables\n",
+ "%pylab inline\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "import math\n",
+ "p1=40. #psia\n",
+ "t1=80. #F\n",
+ "p2=30. #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200. #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "#calculations\n",
+ "rho1=144*p1/(R*(t1+460))\n",
+ "G=rho1*v1\n",
+ "h10= cp*t1 + p1*p1 /(2*g*rho1*rho1 *J)\n",
+ "t2=78 #F\n",
+ "h2=cp*t2\n",
+ "g2=h10-h2\n",
+ "rho2=math.sqrt(p1*p1 /(2*g*g2*J))\n",
+ "P2=rho2*R*(t2+460)/144. \n",
+ "ds2=cp*math.log((t2+460.)/(t1+460.)) - R/J *math.log(P2/p1)\n",
+ "t3=77 #F\n",
+ "h3=cp*t3\n",
+ "g3=h10-h3\n",
+ "rho3=math.sqrt(p1*p1 /(2*g*g3*J))\n",
+ "P3=rho3*R*(t3+460)/144. \n",
+ "ds3=cp*math.log((t3+460.)/(t1+460.)) - R/J *math.log(P3/p1)\n",
+ "t4=79 #F\n",
+ "h4=cp*t4\n",
+ "g4=h10-h4\n",
+ "rho4=math.sqrt(p1*p1 /(2*g*g4*J))\n",
+ "P4=rho4*R*(t4+460)/144. \n",
+ "ds4=cp*math.log((t4+460)/(t1+460.)) - R/J *math.log(P4/p1)\n",
+ "h5=18.62\n",
+ "t5=h5/cp\n",
+ "Gv=([h4, h2, h3])\n",
+ "Pv=([P4, P2, P3])\n",
+ "Sv=([ds4, ds2, ds3])\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title(\"Fanno line diagram , Enthalpy vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Enthalpy Btu/lb\")\n",
+ "pyplot.plot(Sv,Gv)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title(\"Fanno line diagram , Pressure vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Pressure psia\")\n",
+ "pyplot.plot(Sv,Pv)\n",
+ "warn=False\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Temperature at exit =\",t5,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Temperature at exit = 77.6 F"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEZCAYAAAC99aPhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XnclXP+x/HXp1UqJRGppoYpS0VRRpZuhMgylsZYKzsz\nMjPGOlSMrWgsox8GJWNk3zKYGN2WGZIKWSoiLRKSIlnS5/fH97pzOp1z7uUs1zn3/X4+HudxX/v1\nOec+53zOd7m+l7k7IiIiNVUv7gBERKS0KZGIiEhWlEhERCQrSiQiIpIVJRIREcmKEomIiGRFiUQA\nMLPBZvZiwvxXZtaxAOcdYWb/iKY7ROe1fJ+31JnZGjP7eQ33nWdm++Q6Jqm7lEgKKPoAfxN9WX5l\nZivMbPO440rF3Zu7+7xCnCrhnPOj89a6i5tS/O+/MrMbq7hvuZmdlMNwnITXvZhEPyx+SHqdvqji\nvuv8GJLCaRB3AHWMAwe5+3NxB1LXmFk9d18TYwjZ/O+L8ks/TxyY4O4n5OPgRfA+qJVUIomZmbU0\nsyfM7FMz+8LMJprZlgnry83sMjN7KSrB/NvMNonWdYyqOE4ws4/M7DMzuyhh38Zmdr2ZLYoe15lZ\noyrGtbbqxMzuNLMxUZwrzOyVxGoVM9vGzJ4xs6VmNsvMBmY4biczez46ziSgdcK6iudTL5ofYmbv\nRNvONbNTk451npl9bGYLzezkFDHfbGZPmtnXQJmZDTCzGWa23Mzmm9nwFOceHK1bamanm1kvM3vT\nzJaZ2d+q8tpVV3TOl8zsmug98IGZ9Y/WXQHsAdyUohSzr5nNiWK7KeF4W5nZc2b2efSeuNvMWqQ5\n9wgze9DM7o1e52lm1j1ad66ZPZi0/Y1mdn2K45xvZg8kLbvBzG5IeI5zo3N8YGbHpHs5oke612qN\nmZ2W/LzNbFvgZmDXxFJMmvfBttHnapmZvWVmBycc/04zu8XMJkWxlptZh2jdGDO7Nimex83s9+ni\nrTPcXY8CPYAPgX2SlrUCDgM2AJoB9wOPJKwvB94Dto62mQxcFa3rCKwBbgUaA92Bb4Eu0frLgP8R\nvqxbA/8FLksT22DgxYT5NcDPo+k7gc+BnYH6wN2EX40ATYEFwCDCD5Mdgc+AbdOc52XgWqAh4Qty\nBXBX0vOpF80fCHSKpvcEVgI9ovn+wGJgW6BJFFNyzF8Cu0bzjYG+wPbRfDfgE+DQpHP/H9AI2Bf4\nDngkeu3aAkuAPXP1v0967b8HTiJ8iZ4OLEpYPxk4MWmfNcDjwEZAe+BTYP9o3VbAPtFr3Bp4Hrgu\nKZa9o+kR0bkPj/635wAfRNNbAF8DLaJtG0SvQY8Uz6FD9P9pFs3XBz4GekfvkeXAL6J1bYDt0rwW\nI4B/ZHgdMz3vQSS8h9O8D5oD7wMXRM9nL8J7sHPC9iuA3aP3wfUVxwR6AYsAi+ZbR89507i/W+J+\nxB5AXXoA84CvgGXR4+EU2+wIfJEwPxm4KGH+DOCpaLpj9MFqm7B+CvDraPp9oH/Cuv2AD9PENpj0\niWQc8PeEdQcA70bTRwEvJB3rVmBYinN0AH4AmiQs+2fFFwdJiSTF/o8AQ6PpscAVCeu2Yv1Ecmcl\n/4/rgb8mnXuLhPWfAwMT5h8Ezs7R/34ZcFLCa/9ewrYbRrFslvAeOCnpeGuAPgnz9wHnpzn3r4Dp\nCfPJieR/CeuMkAB2i+afAk6Opg8C3srwHF8Ejo+m9wXej6abRs/38MT/fZpjjCAk8MTX6T9Ved4k\nvYcT3rt3JszvASxO2uYeYHjC++aehHVNgdXAltH8O0C/aPp3wBM1eT/UtoeqtgrLCb+AN44eh5vZ\nhmZ2q4XG2OWEX48tzNbpufRJwvQqQsmFNOu/SVjfFvgoYd38aFlNLEkTw8+AXaJqgmVmtgw4hvCr\nM1lbYJm7r0pY9lGK7QAwswOiarSl0XEPBDaJVm9BKAlVWJi0uyetx8x2MbPJFqoRvwROSzheuueZ\n7nlXV/L/fmN3vyNh/dr/obt/E002S9o/Wcr/u5m1iaqqFkbvqX+w/vNMtPa18/ANuZCf3ifjgeOi\n6eOiY6VzD3B0NH0M4UcC7r6S8IPjdOBjC1WkXTIc576k1ym5h1ny826a4Viw7nujLUnvC8J7sOL5\nOuu+HiuBLxLW30XVX486Q4kkfucAnYHe7t6CUP2SsZ64Gj4m/NKu0CFalkvzgeeTPvjN3f23KbZd\nDGxsZhsmLPsZKb4kzawx8BAwivDLfGPgSX56XRYTqjYqtKdy9wCPAu3cvSVwC9X/DMTR8F3Vc1Zs\ndyXwI9A1ek8dT+bnufa1i9qn2vHT++QxoLuZdQUGECWHNB4ktEFsSSgF3bM2MPdJ7r4fsDkwC7gt\nw3Oo6Xs/3euUuPxjoH3SD7WfEaqsiM6d+Ho0I1Q/V7wedwOHmtkOwDaE91Odp0QSv2aEX7rLzawV\nMDzFNjX9YE0ALjaz1mbWGhhGzX5BZTr/v4DOZnacmTWMHr3MbJvkDd39I+A14NJou90J1SWpNIoe\nnwNrzOwAQtVchfuBIRYa+jcELqlCzM0IJaLvzaw34VdzdRNDytfCzMrMrLLeQDX9Py4hVN1V9djN\nCHX3K6Iv9XMr2XcnMzvMzBoAvye0s70CEJUeHyIkhSnunlzyW8vdPyO06d0JfODuswHMbDMzO9TM\nmhKqNlcSEl1lz6MqEn90LQHamVnDDMd7hVCKOS96D5YR3oP3JmxzoJntZqFjyl+Al919UfQcFxLe\nw3cBD7r7d9WMt1ZSIonf9YTG4s8JDeNPsf6XmydNJ8+ncznhTf9m9HgtWpZKpuMmr1u73t2/InzB\n/4bwq24xcBUhCaRyDLALobpgGKHqJN1xhxISxheEKpPH1m7k/jRwI6H9YA6hER9C/Xq6mM8ELjOz\nFYTEc1+qc1ci3TbtCZ0ZMplo614f8VCGWBPnbwCOjHp0rddjKsX2lwI9CQ3cEwmJINOv9ccIVU9f\nAMcCh7t74hf9eKArVfsRcg+hof+ehGX1gD8Q3h9LCe0UZ2SI56ik12lF9EMo+XlWzFcs+w/wNvCJ\nmX2aYj3u/gNwMKGd7zPgJkK7zpyE7e8h/KBbCvTgp6qsCuMJnTVUrRWp6H2Q+wObjSUUhT91927R\nsh0I1QlNCY2Px0ZfGMn79id8wdYHbnf3kXkJUmqNqPvnTKCRx3CdgJndBtzv7s8U+tzZsNAFemt3\nPz7DNu0J1VFt3P3rggUXAzMbByx09+QSbuI2ewB3u/vPChdZcctniWQcoYtmotuB89y9O6EHznpF\nbjOrT/iV0B/YDjg6+pIQWUdUHdPYzDYGRgKPx5FEANz9lFJLIpGMVUlRm8k5hO7etTqJRCp7PRoS\nqv/StfHUSXlLJO7+IqHrXqJfRMsBngWOSLFrb0K3wXlRMfRe4NB8xSkl7VRCvfj7hLr3dNUlkl6q\najUAojaNFYSqqlRtd7VRptdjW8J3WhtCjYlECj1Eyttmdqi7PwYMJHVPmy1Zv1vnLoUITkqLux8Q\ndwylzt0vzbBuJTXv7lyS3H1IhnXvUsdej6oqdGP7icCZZvYa4R/yfYpt4uheKSIiNVTQEknUHXB/\nADPrTGiMT7aI9a8PSNnl0MyUdEREasDdc3a7hoKWSMxs0+hvPeBiwiBryV4DfmFhEL1GhG6Jj6c7\nZtxDA2TzGD58eOwx1MXYFX/8D8Uf7yPX8pZIzGwC4bqILma2wMxOJPTAmg28S+hid2e0bVsz+xeA\nu68mjGHzb8K4Nvd5qJsUEZEilLeqLXc/Os2q9W7m4+4fk1DN5e5PES7MExGRIqcr22NUVlYWdwg1\nVsqxg+KPm+KvXfJ2ZXshmJmXcvwiInEwM7xUG9tFRKT2USIREZGsKJGIiEhWlEhERCQrSiQiIpIV\nJRIREcmKEomIiGSlziaS77+H73S3ZRGRrNXZRPL447DddnDffaBrGkVEaq5OX9n+3HNw7rlQvz5c\ney3suWcOgxMRKVK5vrK9TicSgDVr4N574aKLoHt3GDkSttUd4kWkFtMQKTlWrx4ccwzMmgV9+4ZS\nyWmnweLFcUcmIlIa6nwiqbDBBnDOOTB7NjRvDl27wogR8PXXcUcmIlLclEiStGoV2kumTYP33oPO\nneHWW2H16rgjExEpTnW+jaQy06aFBvnFi0P7ycEHg+WsZlFEpPDU2J6gUPcjcYennoLzzoNNNoFr\nroHevfN+WhGRvFBjewzM4MAD4fXX4YQT4LDD4KijYO7cuCMTEYmfEkk1NGgAJ50Ec+ZAt26hVPL7\n38PSpXFHJiISHyWSGmjaFC6+GN55B374Abp0Ce0nq1bFHZmISOEpkWShTRsYMwb++1+YMiUklLvu\nChc5iojUFWpsz6GXXgo9vFatCg3y++4bd0QiIutTr60ExZZIIPTweughuPBC2GqrUOW1ww5xRyUi\n8hP12ipyZnDkkfD22zBgAOy3HwweDAsXxh2ZiEh+KJHkSaNGcNZZoYfXlluGUslFF8Hy5XFHJiKS\nW0okedaiBVxxBbzxRrg6vnNnuPHGcGMtEZHaQImkQNq1g3Hj4JlnwlXy220HDzygm2qJSOnLWyIx\ns7FmtsTMZiYs621mr5rZDDObama90ux7tpnNNLO3zOzsfMUYh+7dQyK55Ra48krYddfQ20tEpFTl\ns0QyDuiftGwUcIm79wCGRfPrMLOuwMlAL2AH4CAz2yqPccaiX78wIORvfwvHHhuGXZk9O+6oRESq\nL2+JxN1fBJYlLV4MtIimWwKLUuy6DTDF3b919x+B54HD8xVnnOrVg+OPDwlk111h993hzDNhyZK4\nIxMRqbpCt5FcAIw2s/nANcCFKbZ5C9jDzFqZ2YbAAKBdAWMsuA02CCMLz5oFjRuH9pO//AVWrow7\nMhGRyhU6kdwBDHX3DsAfgLHJG7j7LGAkMAl4CpgB1IlBRzbZBK67DqZODeN4de4Mt9+um2qJSHHL\n65XtZtYRmOju3aL5Fe6+UTRtwJfu3iL9EcDMrgTmu/stKdb58OHD186XlZVRVlaWs/jj9uqrYciV\npUvDFfIHHqibaolI9ZWXl1NeXr52/tJLLy2dIVJSJJLpwB/c/Xkz2we42t3X67llZpu5+6dm1gH4\nN7CLu69IsV3RDZGSa+7wxBNw/vlhkMhrroGdd447KhEpZSUz1paZTQD6Aq2BJYReWjOBMUBjYBVw\nprvPMLO2wG3uPiDa9wVgE+AHQuKZnOYctT6RVFi9GsaOhREjoKwsXOTYqVPcUYlIKSqZRFIIdSmR\nVPj6axg9OlwdP3gw/PnP0KpV3FGJSCnRoI11XLNmMHx4GBRy5cpwD5Rrr4Vvv407MhGpq5RIStTm\nm4er4194AV58EbbZBv75T91US0QKT1VbtcQLL4QeXqtXhwb5vfeOOyIRKVZqI0mgRLIu9zAQ5IUX\nhiqvUaOga9e4oxKRYqM2EknLDH7963Ax4/77h1LJSSfBolQD0YiI5IgSSS3UuDGcfXa4qdamm4YR\nhy++GFasdyWOiEj2lEhqsZYt4eqrYcYMWLAgDLkyZgz88EPckYlIbaJEUgd06ADjx4f7oDz6KGy/\nPTz8sG6qJSK5ocb2Oujf/w49vJo3Dz28+vSJOyIRKSQ1tkvW9t8/VHedcgocdRQceSS8917cUYlI\nqVIiqaPq1w9DrMyZEwaB3HVXOOss+OyzuCMTkVKjRFLHNWkCF1wA774b7ti47bbhXvLffBN3ZCJS\nKpRIBAjdhG+4AV55BV5/PfTwGjsWfvwx7shEpNipsV1SeuUV+NOfwrUno0aFdhXdVEukdtAQKQmU\nSPLLHR57LNxUq337kFB69ow7KhHJlnptScGYwa9+BW+9BUccAQMGwPHHw0cfxR2ZiBQTJRKpVMOG\ncMYZoYdXp06hVHLeebBsWdyRiUgxUCKRKmveHC67DGbODEmkSxe47jr47ru4IxOROCmRSLW1bQu3\n3QaTJ8Nzz4Uuw/feq5tqidRVamyXrE2eHIZcqVcvDLnSt2/cEYlIJuq1lUCJpHisWQP33QcXXRRu\npjVyJGy3XdxRiUgq6rUlRalePTj6aJg1C/baC8rK4NRTYfHiuCMTkXxTIpGcatwY/vhHmD0bWrQI\npZPhw+Hrr+OOTETyRYlE8mLjjUN7ybRpMHcu/OIXcMstsHp13JGJSK6pjUQKYtq0cO3JokWh/eSQ\nQzTkikhc1NieQImktLjD00+HhFJRYtlll7ijEql71NguJcsMDjggjC48eHAYduWoo0LVl4iULiUS\nKbj69eHEE0ODfPfuoVTy+9/D55/HHZmI1IQSicSmaVP485/hnXdCI/y224b2k1Wr4o5MRKojb4nE\nzMaa2RIzm5mwrLeZvWpmM8xsqpn1SrPvhWb2tpnNNLN7zKxxvuKU+G22Gdx0E/z3v/Dqq2EMr7vu\n0k21REpFPksk44D+SctGAZe4ew9gWDS/DjPrCJwC9HT3bkB94Dd5jFOKROfO8NBDMGFC6Cq8004w\naVLcUYlIZfKWSNz9RSB5oPHFQItouiWwKMWuK4AfgA3NrAGwYZrtpJbabbdQOhk2DH73u3B3xjfe\niDsqEUmn0G0kFwCjzWw+cA1wYfIG7v4FMBqYD3wMfOnuzxY0SomdGRx+OLz9drjmZP/9Q0+vBQvi\njkxEkjWoykZm1gjYFlgDzHb372t4vjuAoe7+iJkNBMYC+yadayvg90BHYDnwgJkd6+7/THXAESNG\nrJ0uKyujrKyshqFJMWrYEH7723BnxlGjYMcdwxheF1wQhmARkcqVl5dTXl6et+NXekGimQ0AbgE+\niBb9HDjN3Z+s9OChvWNi1NaBma1w942iaSOUNlok7XMUsK+7nxzNHw/80t1/m+L4uiCxjlm4MIzd\n9cQTocfX6adDo0ZxRyVSWuK4IPGvwF7u3tfd+wJlwHU1PN/7ZlZxt4q9gTkptpkF/NLMmkTJph/w\nTg3PJ7VMu3Zwxx3w7LPhKvnttoMHHghXzYtIPKpSIpnq7r0S5g14NXFZmv0mAH2B1sASQi+tmcAY\noDGwCjjT3WeYWVvgNncfEO17HjCIUJU2HTjZ3X9IcQ6VSOq4//wn3FSrUaMw5Moee8QdkUjxK9hY\nW2Z2RDTZD/gZcH80PxCY7+5n5CqImlIiEQg31brnnlDV1aMHXH01bLNN3FGJFK9CVm0dDBwEbAB8\nSihd9AU+i5aJFIV69eC448KQK7vtFkolZ5wBn3wSd2QidYNG/5VaZ+lSuOIKGD8ezj4bzjknDMci\nIkEhq7b+lmE/d/ehuQqippRIJJMPPwz3kH/hBRgxAoYMgQZV6vAuUrsVMpEMqphMWOzRvLv7+FwF\nUVNKJFIVU6eGBvnPPguDQg4YoJtqSd1WyERyEfCUu8/I1clyTYlEqsod/vWvcFOtNm1CD6+dd447\nKpF4FLKx/QPgbDN73czGm9lRZrZxrk4sUkhmcNBB8OabcMwxYdiVo48O1V8ikp2qXEdiQA/CSL77\nEoZVeQZ42t1fzXuEmWNTiURqZOVKGD0abrgBBg2Ciy+GVq3ijkqkMAp+ZbsH0939Snffi9Al+B3C\nUO8iJalp0zC68DvvhBtpdekSqru+/TbuyERKT1VKJIMIjezJ+6mxXWqNWbPCQJCvvw6XXx6qv+rp\n/qFSSxWssT3hhDfxUyJpQhgja7q7H5mrIGpKiURy7cUXQw+v778PJZR99ok7IpHcK3giSRFAS+A+\nd98/V0HUlBKJ5IM7PPggXHhhuGvjyJHQrVvcUYnkThyj/yb7BuiUqwBEio0ZDBwY2k/694d+/eCk\nk2CR7tMpklKlicTMJiY8/gXMBh7Jf2gi8WrUCIYODWN4bbYZdO8eenetWBF3ZCLFpSptJH356er2\n1cBH7l4UNzxV1ZYU0oIFcMkl4T4ol1wS7tTYsGHcUYlUXxxVWwPcvTx6vOTuC8xsZK4CECkV7dvD\nnXeGRPL447D99vDww7qplkhVSiQz3L1H0rKZFbfPjZNKJBKnSZNCD69mzUIPrz594o5IpGoKViIx\nszPMbCbQxcxmJjzmAW/mKgCRUrXffjB9eqji+s1v4IgjYE6qm0eL1HKZBm1sAWwMXA2cz0/tJF+5\n+9LChJeZSiRSLFatCsOtXHttSCrDhoUGepFiVLASibsvd/d57v4bd/+IcJfE1pn2EamrmjQJV8bP\nmhXuebLdduHmWt98E3dkIvmXqWrrEDObZ2bTzexA4G3gJuAtMxtcqABFSknr1nD99TBlCrzxRrig\ncexY+PHHuCMTyZ9MVVtvAkcCLYByoJu7f2BmmwHPuXvXgkWZhqq2pNhNmQJ/+hN8+SWMGhUucNRN\ntSRuhbyx1dreWsm9tFL15IqDEomUAvfQXfj882HLLUMPr549445K6rJCXkdS38xamdkmgEfTFfP1\ncxWASG1nBoceCm+9FYZeGTAAjjsOPvoo7shEciNTItkImAa8ljBdMd88/6GJ1C4NGsDpp4cuwltt\nFUol554Ly5bFHZlIdqo9+m8xUdWWlLLFi2H4cHj00dDD6+ST1X4ihRH7MPLFRIlEaoOZM2HIENhk\nE7j99jAUi0g+FcMw8iKSQ926wcsvw557huquO+7Q+F1SWlQiESkib74JgwdDmzZw223Qrl3cEUlt\nVPASiZn91cy2r+6BzWysmS2JxuuqWNbbzF41sxlmNtXMeqXYr0u0vuKx3MyGVvf8IqWoe/dw7Umf\nPtCjB4wbp9KJFL+qjP57CjAYaAiMBSa4+/JKD2y2B/A1cFfFNShmVg5c5e7/NrMDgPPcfa8Mx6gH\nLAJ6p7oHikokUpu98UYonbRtC3//e7gGRSQXCl4icffb3H034ASgIzDTzO4xs7QJINrvRSC5Y+Ni\nwpXyAC0JSSKTfsDcYrmRlkgh7bBDKJ306hVKJ+PHq3QixalKbSRmVh84GBgCtAPuB3YHvnH3ozLs\n1xGYmFAi+RnwEuCEJLZrpiRhZmOB19z9/9KsV4lE6oTXX4dBg6BDB7j11lBKEampXJdIGlThhNcR\nkshzwBXu/mq0aqSZza7m+e4Ahrr7I2Y2kFBVtm+a8zaKznt+pgOOGDFi7XRZWRllZWXVDEmk+O24\nI0ydCpdfHkono0fDscfquhOpmvLycsrLy/N2/Kq0kZwI3OfuK1Osa+nuX2bYtyPrlkhWuPtG0bQB\nX7p7izT7Hgqc4e79MxxfJRKpc6ZNC20nW20Ft9wCm28ed0RSauK4jmQc0N/Mrot6cB0WJQEyJZE0\n3jezvtH03kCm+8kdDUyo5vFFar2ddoLXXoOuXUM7yj33qO1E4lWVEsnNwFaEL3UDfg184O5nVrLf\nBKAv4WZYS4BhwExgDNAYWAWc6e4zzKwtcJu7D4j2bQp8BHRy968ynEMlEqnTXnsttJ106QI33xyu\nPxGpTMGHSDGzWcB27r4mmq8HvOPu2+QqiJpSIhGB776DSy8NV8TfeCP8+tdqO5HM4qjaeh/okDDf\nIVomIkWgcWO48kqYOBFGjAhD1X/6adxRSV1SlUSyEfCumT0fXVD4DtDczCaa2eN5jU5Eqqx3b5gx\nIzTCd+8ODzwQd0RSV1Slaqssw2p39+dzGlE1qGpLJLVXXgk9u7p3hzFjYNNN445IiomGkU+gRCKS\n3qpVMGwY3H033HQTHHFE3BFJsSjkPdu/JlyBnopXXA8SJyUSkcr973/hfic9e8Lf/gatW8cdkcSt\nYI3t7t7M3ZunecSeRESkavr0CUOstG0bqroeeSTuiKS2qXLVlpltBmxQMe/u8/MVVFWpRCJSPS+9\nFEonvXuHrsKbbBJ3RBKHOO5HcoiZvQd8CDwPzAOeylUAIlI4u+8ehqffdNNQOnlc/S4lB6rSa+tN\nwnAmz7h7j2j4+OPd/cRCBJiJSiQiNffCC3DiibDrrnDDDdCqVdwRSaHEcUHiD+7+OVDPzOq7+2Rg\n51wFICLx2HPPUDrZeONQOnniibgjklJVlRLJs8BhwFWEcbM+BXZ29z75Dy8zlUhEcqO8PJRO9twT\nrr8eWraMOyLJpzhKJL8CvgH+ADxNGB7l4FwFICLxKyuDN9+EZs2gWzd48sm4I5JSogsSRWQdkyeH\n0slee8Ff/6rSSW0UR6+tI8zsPTNbYWZfRY8VuQpARIrLXnuF0knjxqF08vTTcUckxa4qbSRzgYPc\n/d3ChFR1KpGI5Nezz8LJJ0O/fuH2vi1S3s9USk0cbSSfFGMSEZH869cvlE7q1w89uyZNijsiKUaZ\nxtqqGOJtT2Bz4FHg+2iZu/vD+Q8vM5VIRApn0iQ45RTYf3+49lrYSAMllaxClkgOBg4i3I9kFbBf\nNH8Q6rUlUufst18onbiH0smzz8YdkRSLqrSR7O7uL1W2LA4qkYjE4+mn4dRTYcAAGDUKmjePOyKp\njjjaSG6s4jIRqSP694eZM+H770Pp5Lnn4o5I4tQg3Qoz2xXoA2xmZn8EKrJXc6B+AWITkSLWogXc\ncUe4eHHQIDjkEBg5MlzUKHVLphJJI35KGs2BZtFjBXBk/kMTkVJw4IGh7WTlSthhB3g+tptvS1yq\n0kbS0d3nFSac6lEbiUhxeeIJOP10OOwwuPpqaNo07ogklTjaSBqb2W1m9oyZTY4eqhEVkfUcdFBo\nO1m+PJROXngh7oikEKp6P5KbgenAj9Fid/dpeY6tUiqRiBSvxx+HM86AgQPhyithww3jjkgq5LpE\nUpVEMs3dd8rVCXNJiUSkuC1dCkOHwquvwrhx4Q6NEr84EskI4DPgYeC7iuXu/kWugqgpJRKR0vDo\no3DmmfCb38Dll6t0Erc4Esk8YL2N3L1TroKoKSUSkdLx+edw1lkwbRrceSf0if3WeHVXwRNJjQ9s\nNhYYAHzq7t2iZb2Bm4CGwGrgTHefmmLflsDtwPaEJHaiu7+SYjslEpES89BD8LvfwXHHwWWXQZMm\ncUdU9xSs15aZnZcwPTBp3ZVVOPY4oH/SslHAJe7eAxgWzadyA/Cku28LdAc0+rBILXHEEeG6k/nz\noUcPeGW9n4hSajJ1/z06YfqipHUHVHZgd38RWJa0eDFQcUeDlsCi5P3MrAWwh7uPjY6z2t2XV3Y+\nESkdm24oL77eAAAOBklEQVQK990Hf/kL/OpXcP758O23cUclNVWV60hy6QJgtJnNB64BLkyxTSfg\nMzMbZ2bTo2tY1DQnUgsNHBhKJ3PnQs+eoXeXlJ60Y23lyR3AUHd/JKouGwvsmyKmnsDv3H2qmV1P\nSEDDUh1wxIgRa6fLysooKyvLQ9giki+bbQYPPAD33x/G6xoyBEaMCLf6ldwoLy+nvLw8b8fPdGOr\nH4FvotkmhHuSVGji7pUmITPrCExMaGxf4e4bRdMGfOnuLZL22Rx4uaJXmJntDlzg7gelOL4a20Vq\nkSVLwkWMs2eHnl29esUdUe1UsMZ2d6/v7s2jR4OE6eZVSSJpvG9mfaPpvYE5Kc77CbDAzDpHi/oB\nb9fwfCJSQtq0Cb26Lr44DLfy5z/Dd99Vvp/EK5/dfycAfYHWwBJC1dRMYAzQmFDCOdPdZ5hZW+A2\ndx8Q7bsDoftvI2AuMCRVg7tKJCK11yefhAEg586F8eNDG4rkRslcR1IISiQitZs7/POf8Mc/wmmn\nwSWXQKNGcUdV+uIY/VdEJBZm4cLFN94Ij169YMaMuKOSZEokIlL0ttgCHnsMzjkH9t8/9Or6/vu4\no5IKSiQiUhLM4IQTQolk6lTYZZdQSpH4KZGISEnZcstwJ8azz4Z99w3jdf3wQ9xR1W1qbBeRkrVw\nIZxySrj+ZPx46NYt7ohKgxrbRUQi7drBk0+G0YT33huuuAJWr447qrpHJRIRqRUWLICTTw53Zbzz\nTujaNe6IipdKJCIiKbRvD08/HS5i3GsvuOoqlU4KRSUSEal15s+Hk06C5ctD6WS77eKOqLioRCIi\nUokOHWDSpJBM+vaFkSNVOsknlUhEpFabNy8klJUrQ+lkm23ijih+KpGIiFRDx47wzDMwaBDssQdc\ncw38+GPcUdUuKpGISJ3x4Ydw4olhaPpx46BLl7gjiodKJCIiNdSpE/znP3DMMbDbbjB6tEonuaAS\niYjUSXPnhtLJ6tWhdNK5c+X71BYqkYiI5MBWW8HkyXDUUdCnD1x/PaxZE3dUpUklEhGp895/H4YM\nCSMMjx0LW28dd0T5pRKJiEiObb01lJfD4YfDL38JN96o0kl1qEQiIpJgzpxQOmnQILSd/PzncUeU\neyqRiIjkUefO8MILcOih0Ls3jBmj0kllVCIREUlj9mwYPBg22CC0nXTqFHdEuaESiYhIgXTpAi+9\nBAceGEonN9+s0kkqKpGIiFTBu++G0kmzZnDHHWHolVKlEomISAy23Rb++1/Ybz/o1QtuvRX0OzZQ\niUREpJrefjuUTjbeGG6/PQxbX0pUIhERidn228PLL4c7Me60E9x2W90unahEIiKShbfeCqWT1q1D\nQmnfPu6IKqcSiYhIEenaNZROdt8devYM3YTr2u/bvJVIzGwsMAD41N27Rct6AzcBDYHVwJnuPjXF\nvvOAFcCPwA/u3jvNOVQiEZGi8eaboXSy+ebw979Du3ZxR5RaKZVIxgH9k5aNAi5x9x7AsGg+FQfK\n3L1HuiQiIlJsuneHKVPCeF09e4Zb+9aF37p5SyTu/iKwLGnxYqBFNN0SWJThEDnLliIihdKwIQwb\nBpMmhaHpDz4YPv447qjyq9BtJBcAo81sPnANcGGa7Rx41sxeM7NTChadiEiO7LgjvPoq7LxzmL7r\nrtpbOslrry0z6whMTGgjeRYY4+6PmNlA4FR33zfFflu4+2Iz2xR4BjgrKuEkb6c2EhEpejNmwKBB\n4Wr4W2+FLbaIN55ct5E0yNWBqqi3u/eLph8Ebk+1kbsvjv5+ZmaPAL2B9RIJwIgRI9ZOl5WVUVZW\nlsNwRUSy16MHvPYaXH457LADXHdduG+8FagCv7y8nPLy8rwdv9AlkunAH9z9eTPbB7ja3Xsl7bMh\nUN/dvzKzpsAk4FJ3n5Ti+CqRiEhJmTYtlE623hpuuSX08Cq0kum1ZWYTgP8BXcxsgZkNAU4FRpnZ\n68Dl0Txm1tbM/hXtujnwYrTNFOCJVElERKQU7bRTSCbbbx9KJxMmlH7bia5sFxGJydSp4bqTLl3C\nEPVt2hTmvCVTIhERkcx69Qqlky5dQunk/vvjjqhmVCIRESkCU6aE0knXruH2vpttlr9zqUQiIlIL\n7bJL6CbcqVO4Qv7hh+OOqOpUIhERKTKvvAJz5sAJJ+Tn+LkukSiRiIjUMaraEhGRoqJEIiIiWVEi\nERGRrCiRiIhIVpRIREQkK0okIiKSFSUSERHJihKJiIhkRYlERESyokQiIiJZUSIREZGsKJGIiEhW\nlEhERCQrSiQiIpIVJRIREcmKEomIiGRFiURERLKiRCIiIllRIhERkawokYiISFaUSEREJCtKJCIi\nkhUlEhERyUreEomZjTWzJWY2M2FZbzN71cxmmNlUM+uVYf/60XYT8xWjiIhkL58lknFA/6Rlo4BL\n3L0HMCyaT+ds4B3A8xNe/MrLy+MOocZKOXZQ/HFT/LVL3hKJu78ILEtavBhoEU23BBal2tfM2gEH\nArcDlq8Y41bKb8ZSjh0Uf9wUf+3SoMDnuwB4ycyuJSSxXdNsdx1wLrBRoQITEZGaKXRj+x3AUHfv\nAPwBGJu8gZkdBHzq7jOoxaUREZHawtzz1wRhZh2Bie7eLZpf4e4bRdMGfOnuLZL2uRI4HlgNbEAo\nlTzk7iekOH6tbT8REcknd8/ZD/VCV229b2Z93f15YG9gTvIG7n4RcBGAmfUF/pQqiUTbqsQiIhKz\nvCUSM5sA9AVam9kCQi+tU4ExZtYYWBXNY2ZtgdvcfUCKQ6nUISJSxPJatSUiIrVf0VzZbmb9zWyW\nmb1nZuen2ebGaP0bZtajsn2rcwFkzPGvd/FmtLyVmT1jZnPMbJKZtSyx+K8xs3ej7R82sxbrH7V4\n409Yf46ZrTGzVqUUu5mdFb3+b5nZyHzEnq/4S+Gza2btzWyymb0dvcZDE7Yv+s9uJfFX77Pr7rE/\ngPrA+0BHoCHwOrBt0jYHAk9G07sAr1S2L1AO7B9NHwBMLrb4o/k9gB7AzKR9RgHnRdPnA1eXWPz7\nAvWi6atLLf5oXXvgaeBDoFWpxA7sBTwDNIzmNy2l174UPrvA5sCO0XQzYDawTTRf9J/dNPFXfHdW\n67NbLCWS3sD77j7P3X8A7gUOTdrmEGA8gLtPAVqa2eaV7FulCyBjjh9PffHmOvtEf3+Vh9ghT/G7\n+zPuviaanQK0K6X4I38FzstL1EG+Yj8DuCo6Ju7+WYnFX+yf3Tbu/om7vx4t/xp4F9gyeR+K87Ob\nLv620Xy1PrvFkki2BBYkzC/kp39IZdu0zbDvBcBoM5sPXANcmMOYqxJbdbdJ1sbdl0TTS4A22QSZ\nQb7iT3Qi8GSNoqtcXuI3s0OBhe7+Zi6CTCNfr/0vgD3N7BUzKzeznbOONLV8xV/sn911vlgtXOrQ\ng/ClC8X/2a0s/kSVfnaLJZFUtcW/ut19K70AMkdqGn+Vezp4KGPmq2dEXuM3sz8D37v7PdWKqupy\nHr+ZbUjohj48w/65kK/XvgGwsbv/kjBKxP3VDayK8hV/yXx2zawZ8CBwdvTLft0Ni/yzmyn+qn52\niyWRLCLURVdoT8iambZpF22Tad/e7v5INP0goRiYDzWNv7Li+pKKKgAz2wL4NMs408lX/JjZYEId\n7bHZhZhRPuLfilDv/IaZfRhtP83MNss62sxx5eq1Xwg8DODuU4E1ZrZJdqGmlK/4S+Kza2YNgYeA\nu9390YRtSuKzmyH+6n1289EAVIMGowbAXMIHtxGVNxj9kp8ajNLuC0wH+kbT+wBTiy3+hPUdSd3Y\nfn40fQH5a7DLV/z9gbeB1sX6/skUf9L6fDW25+u1Pw24NJruDMwvpde+FD67hF/5dwHXpThu0X92\nK4m/Wp/dnD+xLF6QAwi9Bt4HLoyWnQaclrDNTdH6N4CemfaNlu9MqPN7HXgZ6FGk8U8APga+I9Rl\nDomWtwKeJYwAMAloWWLxvwd8BMyIHv9XSvEnHf8D8pBI8vjaNwT+AcwEpgFlpfTal8JnF9gdWBPF\nWPEe7x+tK/rPbiXxV+uzqwsSRUQkK8XSRiIiIiVKiURERLKiRCIiIllRIhERkawokYiISFaUSERE\nJCuFvkOiSFEzsx+BxLG1Jrj7qAzb9yUMIfFy3oMTKVJKJCLr+sbde1S+2Vp7AV8RLppbh5nVd/cf\ncxaZSJHSBYkiCczsK3dvnmL5POBO4GDCVeMDCVdjvwz8SBhLaShwMvAtsCPwEnA3cAvQhDCUxYnu\n/qWZlROuKO5L+EF3IuEK9FlAH3f/3MzqEa5Y/qW7L83PMxbJntpIRNbVJLorX8VjYLTcgc/cfSfg\nZuBP7j6PkCT+6u493f2laLu2wK7u/ifCWEbnuvsOhOFKhiccr0lU+jkTGOvh/g9389Mgef2A15VE\npNipaktkXasyVG09HP2dDhyesDx5iO4H3N2j25O28HDzJgg3F3ogYbsJEG7uZGYbmdlGhOHSHwNu\nIJRSxtX8qYgUhkokIlX3XfT3RzL/CPsmzfLK7mfi7r6QMAT53kAv4KnqhShSeEokItn5ClivTQXA\n3ZcDy8xs92jR8YR7kUNIKkcBROu/dPevonW3E6q47nc1YkoJUNWWyLqamNmMhPmn3P2ipG0S73g3\nEXjQzA4hNLbDunetGwTcEt1xcS4wJGGbb81sOj81tleYSKjSUrWWlAT12hKJgZlNBs5x9+kp1u0M\njHb3voWPTKT6VCIRKSJmdgFwOnBM3LGIVJVKJCIikhU1touISFaUSEREJCtKJCIikhUlEhERyYoS\niYiIZEWJREREsvL/2P9NFOaFOqMAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x54be390>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x55ca1b0>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity required\n",
+ "#Initialization of variables\n",
+ "p1=40 #psia\n",
+ "t1=80. #F\n",
+ "p2=30 #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200 #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "t2=78. #F\n",
+ "#calculations\n",
+ "G=40 #lb/sq ft/sec\n",
+ "rho2=144*p2/(R*(t2+460.))\n",
+ "v2=p1/rho2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Velocity =\",v2,\"ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity = 265 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity, diameter, specific volume, density and diameter of nozzle\n",
+ "#Initialization of variables\n",
+ "%pylab inline\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "P2=([180., 160., 140., 120., 100., 80., 60., 40., 20.])\n",
+ "k=1.4\n",
+ "p1=200 #psia\n",
+ "t1=240+460. #R\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "gc=32.2\n",
+ "R=53.35\n",
+ "m=4. #lb/sec\n",
+ "#calculations\n",
+ "b = len(P2)\n",
+ "pr=numpy.zeros(b);\n",
+ "prr=numpy.zeros(b);\n",
+ "T2=numpy.zeros(b);\n",
+ "dt=numpy.zeros(b);\n",
+ "dh=numpy.zeros(b);\n",
+ "v2=numpy.zeros(b);\n",
+ "vol=numpy.zeros(b);\n",
+ "A2=numpy.zeros(b);\n",
+ "dia=numpy.zeros(b);\n",
+ "rad=numpy.zeros(b);\n",
+ "den=numpy.zeros(b);\n",
+ "for i in range (0,b):\n",
+ "\tpr[i] = p1/P2[i]\n",
+ "\tprr[i]=math.pow(pr[i],((k-1)/k))\n",
+ "\tT2[i]=t1 /prr[i]\n",
+ "\tdt[i]= t1 -T2[i]\n",
+ "\tdh[i]=dt[i]*cp\n",
+ "\tv2[i]=math.sqrt(2*gc*J*dh[i])\n",
+ "\tvol[i]=(R*T2[i]) /(P2[i]*144.)\n",
+ "\tA2[i]=m*vol[i]*144. /v2[i]\n",
+ "\tdia[i]=math.sqrt(4/ math.pi *A2[i])\n",
+ "\trad[i]=dia[i]/2.\n",
+ "\tden[i]=1. /vol[i]\n",
+ "\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title ('Velocity vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('velocity in ft/s')\n",
+ "pyplot.plot(P2,v2)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title('specific volume vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('specific volume in cu ft/lb')\n",
+ "pyplot.plot(P2,vol)\n",
+ "\n",
+ "pyplot.figure(3)\n",
+ "pyplot.title('Radius vs Pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('Radius in in')\n",
+ "plot(P2,rad)\n",
+ "#results\n",
+ "print '%s' %('Velocity in ft/s')\n",
+ "print (v2)\n",
+ "print '%s' %('Specific volume in cu ft/lb')\n",
+ "print (vol)\n",
+ "print '%s' %('Density in lb/cu ft')\n",
+ "print (den)\n",
+ "print '%s' %('Diameter of nozzle in in')\n",
+ "print (dia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n",
+ "Velocity in ft/s"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "[ 499.61112617 721.04131991 903.0653517 1069.14361272 1229.75524527\n",
+ " 1392.40468067 1565.24666139 1761.46433404 2014.34825773]\n",
+ "Specific volume in cu ft/lb\n",
+ "[ 1.39805384 1.52076257 1.6729549 1.86768387 2.12745999 2.4950706\n",
+ " 3.06425423 4.09358926 6.71623201]\n",
+ "Density in lb/cu ft\n",
+ "[ 0.71528003 0.65756484 0.59774475 0.53542252 0.47004409 0.40079026\n",
+ " 0.32634368 0.2442844 0.14889301]\n",
+ "Diameter of nozzle in in\n",
+ "[ 1.43255795 1.24370371 1.16559809 1.1318789 1.12638708 1.14637045\n",
+ " 1.19822204 1.30551392 1.56373036]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7b96290>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4hzkiETAuWYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d968d0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEZCAYAAABrUHmEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm8lWW5//HPV0BSFMEwTcDUnHMEBXPIXQ7gnCdNUdCG\no9Yvj3Wy41Qq5VCYqZV5rGwwKcUp5wk7bjUHHBGUQUCRSXHIAUWQ4fr9cT87lts9rD2s/azh+369\n1ou1nvFam73Xte77fu7rUURgZmZWjNXyDsDMzCqHk4aZmRXNScPMzIrmpGFmZkVz0jAzs6I5aZiZ\nWdGcNKwqSNpY0kpJq2Wv75Q0Ku+4zKqNk4blRtJsSYslLZL0qqSrJfXujGNHxAERcXVnHKszFSS3\nRdnjJUmn5R2XWbGcNCxPARwUEWsDOwDbAT/KN6Qus072vkcAZ0sa1ngDSd27PqyPnF+SlGcMVn6c\nNKwsRMRC4F7gcw3LJJ0uaaakdyU9L+nLBetWk3SRpNclzQIOLDyepHpJ38yej5Z0dcG6xl1ZX5M0\nKzvPi5KObhyfpA2zVlHfgmU7ZefvJmkzSQ9Iejtbdm2R7/sx4Hngc5LqJM2TdKqkV4A/ZJ/bDT+H\nNySNa4hB0ickjc2WvyXpcUmfauk9FfGzqJd0nqSHgfeBTSRtJWm8pDclTZN0RDHvzapTrt9kzAAB\nSBoADAduKFg3E9gjIl6V9FVgrKTPZgnmBFKi2BFYDNxEark0iILXzdbKkdQL+CWwc0TMkLQ+8MnG\n20XEAkmPAl8BrswWHw1cHxErJJ0L3B0Re0laHdi5tfedfYvfjZQon8mWrw/0BTYCugEnA4cAXwBe\nB34N/CY793FAb2AAsDT7WXzQynsqpm7QSGB/YDqwNvAcqQU4DNgeGC/puYiYWsSxrMq4pWF5EnCz\npHeBOcAs4LyGlRFxQ0S8mj2/DpgBDMlWfxW4JCLmR8RbwAXZ8Zo7T0tWAttJWiMiFkbElGa2+xup\nO4nsA//IbBnAh8DGkvpHxIcR8Ugr53wDeBP4PXBaRNxfEMs5EbEsIpYAJwI/iogFEbEM+DFwuKRu\n2Tk/CWweyTMRsaiV99TazyKAP0fE1IhYSUrkL0XEVRGxMiImkhK0Wxs1yknD8hTAoRHRG6gDvkTB\nN3RJx0p6Jut6eQvYFuiXrf40MLfgWHPaFUDE+6QP/28BCyTdLmnLZja/Cfi8pA1I3/xXRsQ/s3Wn\nkj6QH5f0nKSvt3LqT0bEuhGxTURcVrD89Yj4sOD1xsDfC34GU4DlwKeAq4F7gGslzZc0RlL3Nr6n\nphT+XD8DDG04fxbD0aQWkdUgJw0rCxHxIKnrZQyApM8AvwO+A6wbEX1J3SQN35RfIXXhNCh83th7\nwJoFrzdodO57I2K/bPk00rf/pmJ8izTuciTpg/OagnULI+KEiOhPah1cLmnTlt5zMxp3H80BhkdE\n34LHmhHxSkQsj4ifRMTnSN1cBwHHtvKe3qeFn0UTMcwBHmh0/rUj4jvteG9WBZw0rJxcCgyRNBTo\nRfrwegNYLfvmvm3BttcBJ0vqnw0Mn97CcScCX5A0UNI6wBkNKyR9StKh2TjAMtKH6ooWjvU30ljC\nV1jVNYWkI7JxGYC3s9hXFvOmW3EFcIGkjbLzrCfpkOx5naTtsq6qRVn8K1p5T83+LAoUdmHdDmwh\naaSkHtljF0lbdcJ7swrkpGFlIyLeAK4i9fFPAX4BPAq8SkoY/yzY/PekrplngSeBG2lmkDci7gPG\nAZOAJ4DbCrZdDfhvYD5pjGFP4NsthHkrsBnwSkRMLli+M/CYpEXALcDJETG7ubfawvEbr/tlds57\ns7GfR1k1rrMBcD3wDqnbqp7UZdXse4qI8TT/s/hYDBHxHrAfcFR2vFeAnwKrt/AerIqplDdhkjSc\n9O2xG3BlRIxptL4fMJb0y98duCgi/lzMvmZm1vVKljSyJvN0YB/SN5QngBGFl+lJGg30jIgzsgQy\nnTTAFq3ta2ZmXa+U3VNDgJkRMTu7VPBa4NBG27xCus6c7N83I2J5kfuamVkXK2XS6M9HL92bly0r\n9HvSTNgFpL7p77ZhXzMz62KlTBrF9HudCUyMiA1Js1l/I2ntEsZkZmYdUMoyIvOBgQWvB5JaDIV2\nA84HiIhZkl4Ctsy2a21fJJVuFN/MrIpFRLuKUZaypfEksHlWEG110oSoWxttM4002E1WH2dL4MUi\n9wUgIsr+cc455+Qeg+N0nJUao+Ps/EdHlKylERHLJZ1Eupa+G/CHiJgq6cRs/W9J9YL+JOlZUgI7\nNSL+BdDUvqWK1czMilPSKrcRcRdwV6Nlvy14/gZwcLH7mplZvjwjvAvU1dXlHUJRHGfnqoQ4KyFG\ncJzlpKQzwktNUlRy/GZmeZBElOFAuJmZVRknDTMzK5qThpmZFc1Jw8zMiuakYWZmRXPSMDOzojlp\nmJlZ0Zw0zMysaE4aZmZWNCcNMzMrWsUnjfffzzsCM7PaUfFJ4+ab847AzKx2VHzSGDs27wjMzGpH\nxSeNxx6DV1/NOwozs9pQ8Unj0EPhmmvyjsLMrDZUfNIYNQquvjrvKMzMakPFJ426OnjtNXj++bwj\nMTOrfhWfNLp1g2OOcWvDzKwrVMXtXp97DvbfH15+GVar+DRoZlZaNX+71223hX79oL4+70jMzKpb\nVSQN8IC4mVlXqIruKYBXXoFttoH582HNNXMOzMysjNV89xTApz8NQ4bALbfkHYmZWfWqmqQB7qIy\nMyu1qumeglTxtn9/mD4d1l8/x8DMzMqYu6cyvXrBIYe4rIiZWalUVdIAd1GZmZVS1SWNL30pVb2d\nMiXvSMzMqk/VJY1u3eDoo93aMDMrhaoaCG8waRIcdBDMnu2yImZmjXkgvJHtt4e+feHBB/OOxMys\nulRl0gAPiJuZlUJVdk8BLFiQChnOnw9rrNHFgZmZlTF3TzVhww1h553h1lvzjsTMrHqUNGlIGi5p\nmqQZkk5rYv0PJD2TPSZLWi6pT7ZutqRJ2brH23N+d1GZmXWuknVPSeoGTAf2AeYDTwAjImJqM9sf\nBHwvIvbJXr8EDI6If7Vwjma7pwDeew8GDIAXXoBPfar978XMrJqUa/fUEGBmRMyOiGXAtcChLWx/\nNNC4AEi73lSDtdaCgw+Ga6/tyFHMzKxBKZNGf2Buwet52bKPkbQmMAy4sWBxAPdJelLS8e0NYuRI\nd1GZmXWW7iU8dlv6vQ4G/hkRbxcs2z0iXpG0HjBe0rSIeKjxjqNHj/7387q6Ourq6j6yfu+94Wtf\ng2nTYKut2hCRmVmVqK+vp76T7oddyjGNXYHRETE8e30GsDIixjSx7d+BcRHRZEeSpHOA9yLiF42W\ntzim0eCUU+ATn4Dzz2/HGzEzqzLlOqbxJLC5pI0lrQ4cCXzsAlhJ6wBfAG4pWLampLWz572A/YDJ\n7Q1k1CgYOxZWrmzvEczMDEqYNCJiOXAScA8whdSSmCrpREknFmz6ZeCeiPigYNn6wEOSJgITgNsj\n4t72xrLDDtC7Nzz0sc4tMzNri6qdEd7YhRemS2+vvLLEQZmZlbmOdE/VTNKYNy8VMnRZETOrdeU6\nplFWBgyAQYPgttvyjsTMrHLVTNIAlxUxM+uomumeAli0CAYOhBkzYL31ShiYmVkZc/dUkdZeGw48\nEMaNyzsSM7PKVFNJA9xFZWbWETWXNPbZB+bMgenT847EzKzy1FzS6N4dRoxIM8TNzKxtamogvMEz\nz8B//AfMmgWr1VzaNLNa54HwNtpxR+jVCx5+OO9IzMwqS00mDckD4mZm7VGT3VMAc+emFsf8+als\nuplZrXD3VDsMHJiq395+e96RmJlVjppNGuAuKjOztqrZ7imAd99NLY5Zs6Bfv04MzMysjLl7qp16\n94YDDnBZETOzYtV00gB3UZmZtUVNd08BLF8O/funW8FusUUnBWZmVsbcPdUBLitiZla8mm9pADz1\nFBxxRBoQV7tyr5lZ5XBLo4MGDUoT/FxWxMysZU4arCor4i4qM7OWuXsqM2cO7LQTLFgAPXt2yiHN\nzMqSu6c6wUYbwfbbwx135B2JmVn5ctIo4DkbZlbtFi7s2P5OGgUOPxzuvx/efDPvSMzMSuOUUzq2\nv5NGgd69YfhwuO66vCMxM+t8L7wA99zTsWM4aTQycqS7qMysOp13Hpx8cseO4aunGlm2LJUVeeQR\n2GyzTj20mVluZsyA3XaDmTOhTx9fPdVpevSAo47ynA0zqy7nnw8nnQTrrNOx47il0YQnnkj1qGbM\ncFkRM6t8s2bB0KENrQzP0+h0O++cChk++mjekZiZddz558N3vpMSRkd17/ghqk9DWZGrr059gGZm\nlerFF+HWW1PPSWdw91QzZs9OLY75811WxMwq13/+J2y4IfzkJ6uWuXuqBDbeGD73ObjzzrwjMTNr\nn9mz4eab4Xvf67xjtpo0JH1C0jGSfijpnOxxdjEHlzRc0jRJMySd1sT6H0h6JntMlrRcUp9i9u0K\nLitiZpXsggvgW9+CddftvGO22j0l6R7gbeApYEXD8oj4RSv7dQOmA/sA84EngBERMbWZ7Q8CvhcR\n+xS7bym7pwDefhs+8xl46aXO/aGbmZXa7NkweHCaBf7JT350XUe6p4oZCO8fEcPacewhwMyImA0g\n6VrgUKDJpAEcDVzTzn1Lok8fGDYslRX51re68sxmZh3z05/CiSd+PGF0VDFjGo9I2r4dx+4PzC14\nPS9b9jGS1gSGATe2dd9S882ZzKzSzJkDN9wA3/9+5x+7mKSxJ/CUpBeycYfJkiYVsV9b+o0OBv4Z\nEW+3Y9+SGj48Ne9efDHvSMzMivPTn8Lxx0O/fp1/7GK6p/Zv57HnAwMLXg8ktRiachSruqbatO/o\n0aP//byuro66urq2R9qCHj3gyCNTa+Psoob/zczyM3cujBsH06evWlZfX099fX2nHL/ZgXBJvSPi\nXUlNDgFHxL9aPLDUnTSYvTewAHicpgez1wFeBAZExAdt3LekA+ENHn8cjjkmtThcVsTMytl3vgO9\nesGFFza/TakGwq8BDgSe5uPdRQFs2tKBI2K5pJOAe4BuwB8iYqqkE7P1v802/TJwT0PCaGnf4t9W\n59plF1htNZgwAXbdNa8ozMxaNm8eXHMNTJtWunN4RniRzj0XXn0VfvObLjmdmVmb/dd/pQoWF13U\n8nYdaWk4aRTppZdgyJBUVmT11bvklGZmRVuwALbdFqZOhfXXb3lblxHpAptsAlttBXfdlXckZmYf\nN2YMfP3rrSeMjnJLow1+9zu49950/bOZWbl45ZVUK2/KFNhgg9a3L3n3VFbWY30KBs4jYk57TtiZ\nujppvPVWKmQ4ezb07dtlpzUza9F//3f695JLitu+pElD0n8B5wCv8dHaU9u154SdqauTBsDhh8N+\n+8EJJ3Tpac3MmtTQynj+efj0p4vbp9RJYxYwJCLebM8JSimPpHHLLenKhIce6tLTmpk16fvfhxUr\n4Je/LH6fUieN+4H9ImJZe05QSnkkjQ8/hP7904S/TTbp0lObmX3EwoWw9dbw3HPpRkvFKnXS+COw\nBXAH8GG2OCLi4vacsDPlkTQgzbjcYAM466wuP7WZ2b/94AewdCn8+tdt26/USWN09rRhQ5GSxo/b\nc8LOlFfSeOwxOPbYVNvFZUXMLA+vvZamAUyaBAMGtG1fT+7rYhGw5Zbprn5Dh3b56c3MOPVUeP/9\n9lWpKEnSkPTLiPiupNuaWB0RcUh7TtiZ8koakG7S/tprcNlluZzezGrY66+nL67PPgsDB7a+fWOl\nShqDI+IpSXVNrI6IeKA9J+xMeSaNF19MrQyXFTGzrnb66fDOO/C//9u+/d09lZM99oDTToODD84t\nBDOrMW+8kVoZzzwDG23UvmO49lRORo1K4xpmZl3l4ovhiCPanzA6yi2NDmgoK/Lyy9CnT25hmFmN\nePNN2GILePpp+Mxn2n+cLmtpSOomqXd7TlSN+vaFvfd2AUMz6xqXXAJf+UrHEkZHtZo0JF0jqbek\nXsBkYKqkU0sfWmVwF5WZdYV//SsNfJ95Zr5xFNPS2CYi3iXdlvUuYGNgVCmDqiQHHJAKhc2enXck\nZlbNLrkEDjssdYnnqZik0V1SD1LSuC2rQVW5AyGdrGfPNCj117/mHYmZVau33oLLL8+/lQHFJY3f\nArOBtYAHJW0MvFO6kCpPQxdVBV9TYGZl7NJL4dBDYdNN846kHVdPSRLQLSKWlyakNsWS69VTDSJg\n883hmmtgl13yjsbMqsnbb8Nmm8GECfDZz3bOMTty9VT31jaQdA6pO6rhBA2f0j9pzwmrkQQjR6bW\nhpOGmXWmX/4SDjqo8xJGRxVT5fYHrEoUawAHAVMi4hsljq1V5dLSAJg5E3bbLZUV6dEj72jMrBq8\n805KFo8+mnozOkuXlhGR1BO4NyL2as8JO1M5JQ1ISePMM9O3AjOzjjr3XJgxA/7yl849bleXEekF\n9G/Pyaqd52yYWWd591341a/gRz/KO5KPKqZ7anLBy9WATwE/iYg23iuq85VbS+PNN9PVDXPmwDrr\n5B2NmVWy88+HadNK80W01Hfu27jg5XJgYbncL7zckgakyTcHHQTf/GbekZhZpVq0KI1lPPRQqmjb\n2UrSPVVQY+rdgsdiYG1J67bnZLXAXVRm1lGXXQb77luahNFRLd2E6Y6IOFDSbJqYAR4Rm5Q4tlaV\nY0tj6VLYcMOOV6E0s9r03nuplVFfD1tvXZpz+CZMZeZb30oJ44wz8o7EzCrNmDEwcWKaLFwqpbrd\n66CWdoyIp9tzws5Urknj4Yfh+ONTIUO167/FzGpRQyvj/vthm21Kd55SzQi/mNQttQYwGJiULd8e\neBL4fHtOWAt22w2WLEldVIMH5x2NmVWKyy+HurrSJoyOanYgPCLqIuKLwAJgUEQMjojBwE7ZMmtG\nYVkRM7NivP9+upXrWWflHUnLirnkdkpEbNPasjyUa/cUpFmce+yRyop0b7XCl5nVuosuSkUJr7++\n9OcqacFCYJKkK4GxpKKFRwPPtudktWTzzWGTTeDee9ONmszMmrN4cUoa48fnHUnriikj8nVgCvBd\n4OTs+ddLGVS18JwNMyvGFVfA7rvDdtvlHUnrSnrJraThwKVAN+DKiBjTxDZ1wCVAD+CNiKjLls8m\nTShcASyLiCFN7Fu23VMAb7yRroSYOxd69259ezOrPYsXp8+Ju++GHXbomnOWtGChpC0k3SBpiqSX\nsseLRezXDbgMGA5sA4yQtHWjbfoAvwEOjohtgcMLVgdQFxE7NZUwKkG/fulKiOuuyzsSMytXv/sd\nfP7zXZcwOqqY7qk/AVeQ6k59EbgKKOaO2EOAmRExO6tVdS1waKNtjgZujIh5ABHxRqP1FT/L4dRT\n4Yc/THM2zMwKffABXHghnH123pEUr5iksUZE3EfqypodEaOBA4vYrz8wt+D1PD5eUn1zYF1J90t6\nUtKognUB3JctP76I85Wl3XdPA1wHHgivvJJ3NGZWTn7/exgyBHbcMe9IilfM1VNLsq6mmZJOIs3R\n6FXEfsUMNvQABgF7A2sCj0p6LCJmAHtExAJJ6wHjJU2LiIeKOGbZGTUKXn45Vb994AFYa628IzKz\nvC1ZkkqG3HZb3pG0TTFJ43ukD/STgXOB3sBxRew3HxhY8HogqbVRaC5p8PsD4ANJDwI7ADMiYgFA\nRLwu6e+k7q6PJY3Ro0f/+3ldXR11dXVFhNb1fvhDmD0bjjwSbrnFczfMat2VV6aKEYNaLNjUOerr\n66mvr++UY7Xndq8CvhoR41rZrjswndSKWAA8DoyIiKkF22xFGiwfBvQEJgBHArOBbhGxSFIv4F7g\nxxFxb6NzlPXVU40tWwYHH5yKGV5xhetSmdWqJUtgs83SF8g8Sg2V6n4aa0k6RdLlkv6fpNUkHQY8\nDxzT2oEjYjlwEnAPaW7HuIiYKulESSdm20wD7ibVtZoA/D4ipgAbAA9Jmpgtv71xwqhEPXqkK6km\nTEjNUjOrTX/4QxrHqMTadC1Vub2JNE/iUWA/UvfSEuDkiJjYZRG2oNJaGg3mz09FDX/2MxgxIu9o\nzKwrLV2aWhk33QS77JJPDKUqI7JZRGyfneBK4BXgM9n4g3VA//5w++2w997phk177ZV3RGbWVf74\nxzTzO6+E0VEtXXK7ouFJRKwA5jthdJ7ttks3WfnqV2Hq1Na3N7PKt3Qp/PSncM45eUfSfi0lje0l\nLWp4ANsVvH63qwKsZnvvnSb2HHAAvPpq3tGYWan9+c/pXhlDh+YdSfv5dq9l4Cc/gVtvTXM4ehUz\nA8bMKs6HH8IWW6Qehs/nfAu7ktaestI766zUXXXUUbB8ed7RmFkpXHUVbLll/gmjo9zSKBPLlqVS\nI5ttBr/5jedwmFWTZctSK+Ovf01XTubNLY0q0KMH3HADPPxwqlVlZtXjL39JXwjLIWF0lItZlJHe\nveGOO1LzdaONUskRM6tsy5bB+eenxFENnDTKzIABaQ7HvvumORx77pl3RGbWEWPHpls/77FH3pF0\nDo9plKl774Vjj01XVG25Zd7RmFl7LF8OW22VJvR94Qt5R7OKxzSq0H77pUlA++8PCxfmHY2ZtcfY\nsTBwYHkljI5yS6PMnXMO3HUX3H+/53CYVZKGVsaVV6bbPpcTtzSq2OjRsPXWcPTRsGJFq5ubWZn4\n299SnblySxgd5ZZGBfjww1RqZKut4Ne/9hwOs3K3fHkqF3LFFfClL+Udzce5pVHlVl8dbrwxDYpf\nfHHe0ZhZa669FtZfH774xbwj6Xy+5LZCrLMO3Hlnmhy00UZwxBF5R2RmTVmxAs47Dy67rDp7BZw0\nKsjAgekm9Pvtl+Zw7L573hGZWWPjxkG/fqmKdTXymEYFuuceOO44ePDBVM/GzMrDihWw7bbwq1+l\nCbrlymMaNWbYsNT8PeAAeO21vKMxswbXXw99+8I+++QdSem4pVHBzjoLxo+H//s/WHPNvKMxq20r\nV6ZbHFx8cfpiV8460tJw0qhgEambatGiVCG3W7e8IzKrTRFw7rnpYpVHHy3/AXB3T9UoKc02fecd\nOOWUvKMxq01Ll8LXvga33JK+vJV7wugoJ40Kt/rqcNNNqZvq0kvzjsastrz2Wpq8t3hxujBlwIC8\nIyo9J40q0KdPqk910UVpEqCZld6kSTBkSLq0dty42qkN53kaVWKjjdIcjmHD0hyOSr8PsVk5u+UW\n+M//TGV9jjoq72i6lgfCq8xdd8E3vpGayptvnnc0ZtUlAi68MCWLm25KLY1K5Kun7CN+9zv4+c/h\nkUdgvfXyjsasOixdCiecAM89l1oalTx+4aun7CNOOCHVpjrkEPjgg7yjMat8Cxem4oO1NODdHCeN\nKnXeebDppjBypO/DYdYRzz4LQ4emWd61NODdHHdPVbGlS9PA+KBBLqlu1h7VOuDdke4pXz1VxXr2\nhL//PVXD3XhjOPnkvCMyqwyFA9533FG5A96l4KRR5fr2TaUNdt89XZb75S/nHZFZeVuyBE48MQ14\nP/ZYbY9fNMVjGjVg443h1lvh+OPTH4GZNW3hwtqb4d1WTho1YvBg+POf4bDDYNasvKMxKz8NA977\n7usB75Z4ILzGXHFFGhR/5JF0dzEzq94B7+Z4cp+1yemnw0MPwX33wRpr5B2NWX4iYMyYdD/vSp7h\n3VZlO7lP0nBJ0yTNkHRaM9vUSXpG0nOS6tuyr7XPBRekQfHjjks3jjGrRUuWpL+B669PY321kjA6\nqmQtDUndgOnAPsB84AlgRERMLdimD/AwMCwi5knqFxFvFLNvtr9bGu20dGnqux06NJUcMaslCxem\n8b3+/eGqq2rvzpfl2tIYAsyMiNkRsQy4Fji00TZHAzdGxDyAiHijDftaB/TsCTffnCrjXnZZ3tGY\ndZ3GA961ljA6qpRJoz8wt+D1vGxZoc2BdSXdL+lJSaPasK910Lrrpqq4F1yQBgLNqt0tt6RyID/7\nGfz4x7Carx9ts1JO7ium36gHMAjYG1gTeFTSY0XuC8Do0aP//byuro66uro2BVnrNtkkzeHYf/90\nm8qDD67+21Va7Skc8K7FGd719fXU19d3yrFKOaaxKzA6IoZnr88AVkbEmIJtTgPWiIjR2esrgbtJ\nLYsW982We0yjkzzwQJoFO2BAGuPYaae8IzLrHEuWpMrPzz+fviD1d59F2Y5pPAlsLmljSasDRwK3\nNtrmFmAPSd0krQkMBaYUua91or32gsmT4StfSa2O446DuXNb38+snDXM8P7gg3SZuRNGx5UsaUTE\ncuAk4B5SIhgXEVMlnSjpxGybaaSWxSRgAvD7iJjS3L6litWSHj3g29+GF16AgQNhxx3hzDPh3Xfz\njsys7TzgXRqe3GfNmjcPfvQjuPtuOPvsVLuqR4+8ozJr3c03p9/Xyy6DI4/MO5ry4xnhVlITJ8L/\n/A/MmZPKRR9yiAfLrTwVDnj//e+wyy55R1SenDSs5CLgnntS8ujbFy66qPauQLHy5gHv4pXrQLhV\nEQmGD0+tjuOOS7NpR4yAl17KOzIzD3h3JScNa5Nu3eCb30yD5VtvDTvvDD/4Abz1Vt6RWa3ygHfX\nctKwdunVKw2OP/dcurpqyy3h0kvhww/zjsxqyc03pxneY8Z4hndX8ZiGdYrnn4dTT4Vp01KJhsMP\n92C5lY4HvDvGA+FWNv7xj9Rd9YlPpMHy3XfPOyKrNh7w7jgPhFvZ2HtveOqpNElwxIjU4pg5M++o\nrFosXAhf/GJKHB7wzoeThnW61VaDY4+F6dPTvcl33RW++114443W9zVrTsOA97BhcO21HvDOi5OG\nlcwaa8AZZ8CUKbBiRbra6sIL07dEs7YoHPAePdoD3nnymIZ1menT4bTT0lyP889P3Vf+47fmLFqU\nBrnHjk1fPDzg3Xk8EG4V5cEH02D5ypVpsNy3QLEGy5bB+PEpUdx5J3zhCzBqFBx0UGq5Wudw0rCK\ns3IlXHdd6r7abrvU7bD11nlHZXmIgCeeSIli3Dj47Gdh5Ej46lehX7+8o6tOThpWsZYuTdfaN8zt\nGD0a1l80cCDnAAAMXElEQVQ/76isK8yaBX/9a0oWkBLFMcekpGGl5UturWL17AmnnJImBa6xBmyz\nDZx3HixenHdkVgpvvgmXXw677Qaf/3y6om7s2DTedfbZThiVwC0NKyuzZqUuq0ceSclj1KhU78oq\n1wcfwO23p+TwwANwwAGpVbHvvr4/S17cPWVV59FH02D5e++lwfJ99807ImuLlStTghg7Nl31tPPO\nKVEcdhisvXbe0ZmThlWlCLjpJjj99NRt8fOfp0FzK1+TJ6dE8be/pUHskSPTpdUbbph3ZFbIScOq\n2ocfwhVXpLkdBx2UPoh23tnfWMvFvHlwzTUpWbz1VhrMPuYY2HbbvCOz5jhpWE14+2245JJ0Hf+z\nz8Imm6S7Bw4dmh7bbgvdu+cdZW1491248caUKJ55Br7ylZTM99zTEzYrgZOG1Zxly2DSJHj8cZgw\nIf07Zw7stNNHE8lGG7lEe2dZtizd8nfsWLj77lQ4cORIOPDAVNXYKoeThhnwzjtpklhDIpkwIY2L\nDB26KpHssgv06ZN3pJUjIv0cx45NkzG33DIliiOOgHXXzTs6ay8nDbMmRMDcuR9NIk8/DQMGfDSR\nbL89rL563tGWlxkzVk2869YtXfp89NGw6aZ5R2adwUnDrEjLl6eb9xR2a82alRJHYSLZdNPa69Z6\n/fVUxmPsWJg9G446KrUqBg+uvZ9FtXPSMOuARYvSjaMKE8kHH6xKIEOGpMcnP5l3pJ1v8eJ097ux\nY+Gf/1x1ddo++/iigmrmpGHWyRYsWJVAJkyAJ5+ET31q1QD7kCGw4475DwCvXJmS3jvvtO/x5puw\nxx4pUXz5y7DWWvm+H+saThpmJbZiRaqPVTg+Mn06fO5zH+3W2nzz4i85XbGiYx/477yTZsz36gXr\nrPPRR+/eH1/W1KNfP893qUVOGmY5WLw4DawXdmu9/Xa6QmvQoDQQ39IH/vvvp2/2xXy4N/dYe23X\n5rK2c9IwKxMLF6bLfidOTGMCrX3geyKc5cFJw8zMiub7aZiZWZdw0jAzs6I5aZiZWdGcNMzMrGhO\nGmZmVrSSJg1JwyVNkzRD0mlNrK+T9I6kZ7LHWQXrZkualC1/vJRxmplZcUqWNCR1Ay4DhgPbACMk\nbd3Epg9ExE7Z49yC5QHUZcuHlCrOrlBfX593CEVxnJ2rEuKshBjBcZaTUrY0hgAzI2J2RCwDrgUO\nbWK7lq4VrorampXyi+Q4O1clxFkJMYLjLCelTBr9gbkFr+dlywoFsJukZyXdKWmbRuvuk/SkpONL\nGKeZmRWplMWPi5mq/TQwMCIWS9ofuBnYIlu3e0S8Imk9YLykaRHxUKmCNTOz1pWsjIikXYHRETE8\ne30GsDIixrSwz0vA4Ij4V6Pl5wDvRcQvGi13DREzs3ZobxmRUrY0ngQ2l7QxsAA4EhhRuIGk9YHX\nIiIkDSElsX9JWhPoFhGLJPUC9gN+3PgE7X3TZmbWPiVLGhGxXNJJwD1AN+APETFV0onZ+t8ChwPf\nlrQcWAwcle2+AXCT0j0muwN/jYh7SxWrmZkVp6Kr3JqZWdeqmBnhkgZKul/S85Kek3RytnxdSeMl\nvSDpXkl9yiDWbtmkxNvKOMY+km6QNFXSFElDyzTOM7L/88mS/iapZznEKemPkhZKmlywrNm4svcx\nI5vsul/Ocf48+39/VtJNktYpxzgL1p0iaaWkdcs1Tkn/lf1Mn5M0pmB5l8fZzP/5EEmPZ59LT0ja\npd0xRkRFPEhdVjtmz9cCpgNbAxcCp2bLTwN+Vgaxfh/4K3Br9rocY7wK+Eb2vDuwTrnFCWwMvAj0\nzF6PA44rhziBPYGdgMkFy5qMizS5dSLQI3tPM4HVcoxz34bzAz8r1ziz5QOBu4GXgHXLMU7gi8B4\noEf2er0842wmxnpgWPZ8f+D+9sZYMS2NiHg1IiZmz98DppLmfRxC+gAk+/fL+USYSBoAHABcyarJ\nieUW4zrAnhHxR0jjTxHxDmUWJ/AusAxYU1J3YE3SRRW5xxnp8u+3Gi1uLq5DgWsiYllEzCb9YXZJ\nlYOm4oyI8RGxMns5ARhQjnFmLgZObbSs3OL8NvDTSJOYiYjX84yzmRhfIX0xBOgDzG9vjBWTNApl\nV2TtRPqFXz8iFmarFgLr5xRWg0uA/wFWFiwrtxg3AV6X9CdJT0v6fXaVWlnFGenS618Ac0jJ4u2I\nGE+ZxVmgubg2JE1ubdDURNe8fAO4M3teVnFKOhSYFxGTGq0qqziBzYEvSHpMUr2knbPl5RTn6cAv\nJM0Bfg6ckS1vc4wVlzQkrQXcCHw3IhYVrovU3sptZF/SQaRLiJ+hmRIoeceY6Q4MAi6PiEHA+6Rf\nqn8rhzglfRb4HqnZvCGwlqSRhduUQ5xNKSKu3GOW9EPgw4j4Wwub5RJndtn9mcA5hYtb2CXPn2d3\noG9E7Er6wnhdC9vmFecfgJMjYiPgv4E/trBtizFWVNKQ1IOUMK6OiJuzxQslbZCt/zTwWl7xAbsB\nhyhNUrwG+JKkq8ssRkjfJuZFxBPZ6xtISeTVMotzZ+CRiHgzIpYDNwGfp/zibNDc//N8Ut98gwGs\n6h7IhaSvkbpRjylYXE5xfpb0ZeHZ7O9pAPCU0tyucooT0t/TTQDZ39RKSf0orziHRMTfs+c3sKoL\nqs0xVkzSkCRStpwSEZcWrLqVNDhK9u/NjfftKhFxZkQMjIhNSHNO/i8iRpVTjJDGh4C5khpKtuwD\nPA/cRhnFCUwDdpW0Rvb/vw8whfKLs0Fz/8+3AkdJWl3SJqTujNzK/UsaTvpGfGhELClYVTZxRsTk\niFg/IjbJ/p7mAYOy7r+yiTNzM/AlgOxvavWIeIPyinOmpL2y518CXsietz3GUo/kd+IVAXuQxgkm\nAs9kj+HAusB92Q/hXqBP3rFm8e7Fqqunyi5GYAfgCeBZ0rekdco0zlNJCW0yaXC5RznESWpJLgA+\nJBXm/HpLcZG6WmaSEuGwHOP8BjADeLng7+jyMopzacPPs9H6F8muniq3OLPfyauz39GnSLd0yC3O\nZn43dyaNAU8EHgV2am+MntxnZmZFq5juKTMzy5+ThpmZFc1Jw8zMiuakYWZmRXPSMDOzojlpmJlZ\n0Zw0rOJJWpGVfJ4s6TpJa+QdU2skbSjp+hIef7CkX5bq+Fa7PE/DKp6kRRGxdvZ8LPBURFxSsL57\npDIkXRFLl53LLA9uaVi1eQjYTNJekh6SdAvwnKTVspsPPZ7dfOgESDWiJD1Y0FLZPdv2z9nrSZK+\nm21bL2lw9rxfVhMJSV+TdKukfwDjJa2Z3QhnQlZF+JDGQUrauOEmOdn+N0m6S+kGTmMab59tN1vS\nmCymCVlBRyQdkcU6UVJ9tqxOq24CNkTSI1ksDxeUjzFrs5LdI9ysq2X33DiAVaW+dwI+FxEvZ0ni\n7YgYIqkn8E9J9wL/AdwdERdk9a16ZfttGBHbZcftnR2vpcq1OwHbRcTbki4A/hER31C6e98ESfdF\nxOIWwt8B2JFU+mG6pF9FROPCcZG9h+0ljQIuBQ4GzgL2i4hXCmItNJV0/5QVkvYBLgAObyEWs2Y5\naVg1WEPSM9nzB0lln3cHHo+Il7Pl+wHbSWr4sOwNbEaqv/XHrILyzRHxrKRZwKaSfgXcQaoj1Zrx\nEfF2wbkOlvSD7HVPUiXR6S3s/4/ISv1LmkKq8NpUtdFrsn+vJd27BeBh4CpJ15FVW22kD/AXSZuR\nEk+PIt6PWZOcNKwafBAROxUuSI0G3m+03UmRbuJEo233BA4C/izp4oi4WtIOwDDgW8BXgW8Cy1nV\npfuJRodpfK7/iIgZbXgPSwuerwC6FbFPAETEtyUNAQ4klQ8f3Gi7c0lJ6TBJnyHd+tOsXTymYbXi\nHuD/ZV1YSNoiG3vYCHg9Iq4k3aJ3kKRPAt0i4iZS109DQppNqhYKLXfv3AOc3PBC0k4tbNuc5m44\ndGTBv49kx/9sRDweEecAr7Pq9q0NepOqnkKqeGrWbm5pWDVoapyh8fjDlaQun6ezsYvXgMOAOuB/\nJC0DFgHHkm53+SdJDV+qGu5qeBFwXTY+ckfB8Ruf61zgUkmTSF/MXiTdP7y5uJsaK2lu7KSvpGeB\nJcCIbNmFkjYnJZr7ImJSdu+EhmNcSOq++lGjuM3azJfcmlWI7GqtwZHunW6WC3dPmVUOf8Oz3Lml\nYWZmRXNLw8zMiuakYWZmRXPSMDOzojlpmJlZ0Zw0zMysaE4aZmZWtP8PSjIL5rukruUAAAAASUVO\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5d7e810>"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the nozzle exit area\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=200. #psia\n",
+ "t1=480. #F\n",
+ "eff=0.95\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "mf=3.4 #lb/s\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "h1=1257.8 \n",
+ "h2=1210.5 \n",
+ "dh=eff*(h1-h2)\n",
+ "ve=math.sqrt(2*g*J*dh)\n",
+ "h3=h1-dh\n",
+ "vs=3.961\n",
+ "Ae=mf*vs/ve *144.\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Nozzle exit area =\",Ae,\"sq.in\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Nozzle exit area = 1.292 sq.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature, pressure and exit velocity in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "R=53.35\n",
+ "v=300. #ft/s\n",
+ "p=100 #psia\n",
+ "t1=200 #F\n",
+ "q=500 #Btu/s\n",
+ "gc=32.2 #ft/s^2\n",
+ "J=778\n",
+ "#calculations\n",
+ "rho1=p*144/(R*(460.+t1))\n",
+ "s=([1., -0.206, 0.00535])\n",
+ "vec=numpy.roots(s)\n",
+ "rho2=vec[0]\n",
+ "t2=(236.6 - 0.301/rho2/rho2)/0.248\n",
+ "P2=rho2*R*(t2+462) /144.\n",
+ "v2=math.sqrt(2*gc*J*(236.6-0.248*t2))\n",
+ "v22=rho1*v/rho2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final temperature =\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final pressure =\",P2,\" psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 1 =\",v2,\"ft/s\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 2 =\",v22,\" ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = 914.6 F\n",
+ "\n",
+ " Final pressure = 89.5 psia\n",
+ "\n",
+ " Exit velocity in case 1 = 699.7 ft/s\n",
+ "\n",
+ " Exit velocity in case 2 = 699.0 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_11_4.ipynb b/Thermodynamics_for_Engineers/Chapter_11_4.ipynb
new file mode 100755
index 00000000..6fda31a7
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_11_4.ipynb
@@ -0,0 +1,633 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a55bd11fcef23ffab6a0dff53d8ca5516efa133a7f0a57a71eaf89b7d37c2af6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 - Thermodynamics of Fluid flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 181"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the reynolds number\n",
+ "#Initialization of variables\n",
+ "d=2.067 #in\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "#calculations\n",
+ "rho=P*144./(R*T)\n",
+ "Re=d*v*rho*3600./(12*mu)\n",
+ "#results\n",
+ "print '%s %d' %(\"Reynolds number = \",Re)\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 57398\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in pressure and the percent change\n",
+ "#Initialization of variables\n",
+ "eps=0.00015 \n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "rho=P*144/(R*T)\n",
+ "Re=D*v*rho*3600./(mu)\n",
+ "ed=eps/D\n",
+ "print '%s' %(\"From figure 11.5\")\n",
+ "f=0.0235\n",
+ "dp=f*l*rho*v*v /(2*D*g) /144.\n",
+ "change=dp/P *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Change in pressure =\",dp,\"psi\")\n",
+ "print '%s %.2f %s' %(\"\\n Percentage change in pressure =\",change,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From figure 11.5\n",
+ "Change in pressure = 0.33 psi\n",
+ "\n",
+ " Percentage change in pressure = 1.66 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 190"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initialization of variables\n",
+ "v1=60. #ft/s\n",
+ "d1=10. #in\n",
+ "d2=15. #in\n",
+ "P=15. #psia\n",
+ "R=53.35\n",
+ "T=540. #R\n",
+ "g=32.17 #ft/s^2\n",
+ "v1=60. #ft/s\n",
+ "#calculations\n",
+ "v2=v1*d1*d1 /d2/d2\n",
+ "rho=P*144/(R*T)\n",
+ "dp=rho*(v2*v2 -v1*v1)/(2*g) /144.\n",
+ "p2=P-dp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 15.02 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 192"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "J=778 #ft.lb/Btu\n",
+ "D=2.067/12. #ft\n",
+ "l=100 #ft\n",
+ "P=20 #psia\n",
+ "R=53.35 \n",
+ "T=600 #R\n",
+ "mu=0.0486 #lb /ft.hr\n",
+ "v=50 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "f=0.0235\n",
+ "ds=f*v*v *l /(J*2*D*g*T)\n",
+ "#results\n",
+ "print '%s %.6f %s' %(\"Change in entropy =\",ds,\" Btu/lbm R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.001136 Btu/lbm R\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure, enthalpy, entropy, temperature and density of the gas\n",
+ "#Initialization of variables\n",
+ "v=210 #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "p=200. #psia\n",
+ "z=5. #ft\n",
+ "x=2.361\n",
+ "h=1210.3\n",
+ "J=778.\n",
+ "#calculations\n",
+ "P0=p + v*v /(2*g*144*x) + z/(144*x)\n",
+ "h0=h + v*v /(2*J*g) +z/J\n",
+ "S=1.5594 #units/lb\n",
+ "S0=S\n",
+ "t0=401.9 #F\n",
+ "v0=2.342 #cu ft/lb\n",
+ "rho0=1./v0\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Pressure =\",P0,\"psia\")\n",
+ "print '%s %.2f %s' %(\"\\n Enthalpy =\",h0,\" Btu/lb\")\n",
+ "print '%s %.4f %s' %(\"\\n Entropy =\",S0,\"units/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Temperature =\",t0,\" F\")\n",
+ "print '%s %.3f %s' %(\"\\n Density =\",rho0,\" lb/cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure = 202 psia\n",
+ "\n",
+ " Enthalpy = 1211.19 Btu/lb\n",
+ "\n",
+ " Entropy = 1.5594 units/lb\n",
+ "\n",
+ " Temperature = 401.9 F\n",
+ "\n",
+ " Density = 0.427 lb/cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "import math\n",
+ "p1=40. #psia\n",
+ "t1=80. #F\n",
+ "p2=30. #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200. #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "#calculations\n",
+ "rho1=144*p1/(R*(t1+460))\n",
+ "G=rho1*v1\n",
+ "h10= cp*t1 + p1*p1 /(2*g*rho1*rho1 *J)\n",
+ "t2=78 #F\n",
+ "h2=cp*t2\n",
+ "g2=h10-h2\n",
+ "rho2=math.sqrt(p1*p1 /(2*g*g2*J))\n",
+ "P2=rho2*R*(t2+460)/144. \n",
+ "ds2=cp*math.log((t2+460.)/(t1+460.)) - R/J *math.log(P2/p1)\n",
+ "t3=77 #F\n",
+ "h3=cp*t3\n",
+ "g3=h10-h3\n",
+ "rho3=math.sqrt(p1*p1 /(2*g*g3*J))\n",
+ "P3=rho3*R*(t3+460)/144. \n",
+ "ds3=cp*math.log((t3+460.)/(t1+460.)) - R/J *math.log(P3/p1)\n",
+ "t4=79 #F\n",
+ "h4=cp*t4\n",
+ "g4=h10-h4\n",
+ "rho4=math.sqrt(p1*p1 /(2*g*g4*J))\n",
+ "P4=rho4*R*(t4+460)/144. \n",
+ "ds4=cp*math.log((t4+460)/(t1+460.)) - R/J *math.log(P4/p1)\n",
+ "h5=18.62\n",
+ "t5=h5/cp\n",
+ "Gv=([h4, h2, h3])\n",
+ "Pv=([P4, P2, P3])\n",
+ "Sv=([ds4, ds2, ds3])\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title(\"Fanno line diagram , Enthalpy vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Enthalpy Btu/lb\")\n",
+ "pyplot.plot(Sv,Gv)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title(\"Fanno line diagram , Pressure vs Entropy\")\n",
+ "pyplot.xlabel(\"Entropy\")\n",
+ "pyplot.ylabel(\"Pressure psia\")\n",
+ "pyplot.plot(Sv,Pv)\n",
+ "warn=False\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Temperature at exit =\",t5,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Temperature at exit = 77.6 F\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEZCAYAAAC99aPhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XnclXP+x/HXp1UqJRGppoYpS0VRRpZuhMgylsZYKzsz\nMjPGOlSMrWgsox8GJWNk3zKYGN2WGZIKWSoiLRKSIlnS5/fH97pzOp1z7uUs1zn3/X4+HudxX/v1\nOec+53zOd7m+l7k7IiIiNVUv7gBERKS0KZGIiEhWlEhERCQrSiQiIpIVJRIREcmKEomIiGRFiUQA\nMLPBZvZiwvxXZtaxAOcdYWb/iKY7ROe1fJ+31JnZGjP7eQ33nWdm++Q6Jqm7lEgKKPoAfxN9WX5l\nZivMbPO440rF3Zu7+7xCnCrhnPOj89a6i5tS/O+/MrMbq7hvuZmdlMNwnITXvZhEPyx+SHqdvqji\nvuv8GJLCaRB3AHWMAwe5+3NxB1LXmFk9d18TYwjZ/O+L8ks/TxyY4O4n5OPgRfA+qJVUIomZmbU0\nsyfM7FMz+8LMJprZlgnry83sMjN7KSrB/NvMNonWdYyqOE4ws4/M7DMzuyhh38Zmdr2ZLYoe15lZ\noyrGtbbqxMzuNLMxUZwrzOyVxGoVM9vGzJ4xs6VmNsvMBmY4biczez46ziSgdcK6iudTL5ofYmbv\nRNvONbNTk451npl9bGYLzezkFDHfbGZPmtnXQJmZDTCzGWa23Mzmm9nwFOceHK1bamanm1kvM3vT\nzJaZ2d+q8tpVV3TOl8zsmug98IGZ9Y/WXQHsAdyUohSzr5nNiWK7KeF4W5nZc2b2efSeuNvMWqQ5\n9wgze9DM7o1e52lm1j1ad66ZPZi0/Y1mdn2K45xvZg8kLbvBzG5IeI5zo3N8YGbHpHs5oke612qN\nmZ2W/LzNbFvgZmDXxFJMmvfBttHnapmZvWVmBycc/04zu8XMJkWxlptZh2jdGDO7Nimex83s9+ni\nrTPcXY8CPYAPgX2SlrUCDgM2AJoB9wOPJKwvB94Dto62mQxcFa3rCKwBbgUaA92Bb4Eu0frLgP8R\nvqxbA/8FLksT22DgxYT5NcDPo+k7gc+BnYH6wN2EX40ATYEFwCDCD5Mdgc+AbdOc52XgWqAh4Qty\nBXBX0vOpF80fCHSKpvcEVgI9ovn+wGJgW6BJFFNyzF8Cu0bzjYG+wPbRfDfgE+DQpHP/H9AI2Bf4\nDngkeu3aAkuAPXP1v0967b8HTiJ8iZ4OLEpYPxk4MWmfNcDjwEZAe+BTYP9o3VbAPtFr3Bp4Hrgu\nKZa9o+kR0bkPj/635wAfRNNbAF8DLaJtG0SvQY8Uz6FD9P9pFs3XBz4GekfvkeXAL6J1bYDt0rwW\nI4B/ZHgdMz3vQSS8h9O8D5oD7wMXRM9nL8J7sHPC9iuA3aP3wfUVxwR6AYsAi+ZbR89507i/W+J+\nxB5AXXoA84CvgGXR4+EU2+wIfJEwPxm4KGH+DOCpaLpj9MFqm7B+CvDraPp9oH/Cuv2AD9PENpj0\niWQc8PeEdQcA70bTRwEvJB3rVmBYinN0AH4AmiQs+2fFFwdJiSTF/o8AQ6PpscAVCeu2Yv1Ecmcl\n/4/rgb8mnXuLhPWfAwMT5h8Ezs7R/34ZcFLCa/9ewrYbRrFslvAeOCnpeGuAPgnz9wHnpzn3r4Dp\nCfPJieR/CeuMkAB2i+afAk6Opg8C3srwHF8Ejo+m9wXej6abRs/38MT/fZpjjCAk8MTX6T9Ved4k\nvYcT3rt3JszvASxO2uYeYHjC++aehHVNgdXAltH8O0C/aPp3wBM1eT/UtoeqtgrLCb+AN44eh5vZ\nhmZ2q4XG2OWEX48tzNbpufRJwvQqQsmFNOu/SVjfFvgoYd38aFlNLEkTw8+AXaJqgmVmtgw4hvCr\nM1lbYJm7r0pY9lGK7QAwswOiarSl0XEPBDaJVm9BKAlVWJi0uyetx8x2MbPJFqoRvwROSzheuueZ\n7nlXV/L/fmN3vyNh/dr/obt/E002S9o/Wcr/u5m1iaqqFkbvqX+w/vNMtPa18/ANuZCf3ifjgeOi\n6eOiY6VzD3B0NH0M4UcC7r6S8IPjdOBjC1WkXTIc576k1ym5h1ny826a4Viw7nujLUnvC8J7sOL5\nOuu+HiuBLxLW30XVX486Q4kkfucAnYHe7t6CUP2SsZ64Gj4m/NKu0CFalkvzgeeTPvjN3f23KbZd\nDGxsZhsmLPsZKb4kzawx8BAwivDLfGPgSX56XRYTqjYqtKdy9wCPAu3cvSVwC9X/DMTR8F3Vc1Zs\ndyXwI9A1ek8dT+bnufa1i9qn2vHT++QxoLuZdQUGECWHNB4ktEFsSSgF3bM2MPdJ7r4fsDkwC7gt\nw3Oo6Xs/3euUuPxjoH3SD7WfEaqsiM6d+Ho0I1Q/V7wedwOHmtkOwDaE91Odp0QSv2aEX7rLzawV\nMDzFNjX9YE0ALjaz1mbWGhhGzX5BZTr/v4DOZnacmTWMHr3MbJvkDd39I+A14NJou90J1SWpNIoe\nnwNrzOwAQtVchfuBIRYa+jcELqlCzM0IJaLvzaw34VdzdRNDytfCzMrMrLLeQDX9Py4hVN1V9djN\nCHX3K6Iv9XMr2XcnMzvMzBoAvye0s70CEJUeHyIkhSnunlzyW8vdPyO06d0JfODuswHMbDMzO9TM\nmhKqNlcSEl1lz6MqEn90LQHamVnDDMd7hVCKOS96D5YR3oP3JmxzoJntZqFjyl+Al919UfQcFxLe\nw3cBD7r7d9WMt1ZSIonf9YTG4s8JDeNPsf6XmydNJ8+ncznhTf9m9HgtWpZKpuMmr1u73t2/InzB\n/4bwq24xcBUhCaRyDLALobpgGKHqJN1xhxISxheEKpPH1m7k/jRwI6H9YA6hER9C/Xq6mM8ELjOz\nFYTEc1+qc1ci3TbtCZ0ZMplo614f8VCGWBPnbwCOjHp0rddjKsX2lwI9CQ3cEwmJINOv9ccIVU9f\nAMcCh7t74hf9eKArVfsRcg+hof+ehGX1gD8Q3h9LCe0UZ2SI56ik12lF9EMo+XlWzFcs+w/wNvCJ\nmX2aYj3u/gNwMKGd7zPgJkK7zpyE7e8h/KBbCvTgp6qsCuMJnTVUrRWp6H2Q+wObjSUUhT91927R\nsh0I1QlNCY2Px0ZfGMn79id8wdYHbnf3kXkJUmqNqPvnTKCRx3CdgJndBtzv7s8U+tzZsNAFemt3\nPz7DNu0J1VFt3P3rggUXAzMbByx09+QSbuI2ewB3u/vPChdZcctniWQcoYtmotuB89y9O6EHznpF\nbjOrT/iV0B/YDjg6+pIQWUdUHdPYzDYGRgKPx5FEANz9lFJLIpGMVUlRm8k5hO7etTqJRCp7PRoS\nqv/StfHUSXlLJO7+IqHrXqJfRMsBngWOSLFrb0K3wXlRMfRe4NB8xSkl7VRCvfj7hLr3dNUlkl6q\najUAojaNFYSqqlRtd7VRptdjW8J3WhtCjYlECj1Eyttmdqi7PwYMJHVPmy1Zv1vnLoUITkqLux8Q\ndwylzt0vzbBuJTXv7lyS3H1IhnXvUsdej6oqdGP7icCZZvYa4R/yfYpt4uheKSIiNVTQEknUHXB/\nADPrTGiMT7aI9a8PSNnl0MyUdEREasDdc3a7hoKWSMxs0+hvPeBiwiBryV4DfmFhEL1GhG6Jj6c7\nZtxDA2TzGD58eOwx1MXYFX/8D8Uf7yPX8pZIzGwC4bqILma2wMxOJPTAmg28S+hid2e0bVsz+xeA\nu68mjGHzb8K4Nvd5qJsUEZEilLeqLXc/Os2q9W7m4+4fk1DN5e5PES7MExGRIqcr22NUVlYWdwg1\nVsqxg+KPm+KvXfJ2ZXshmJmXcvwiInEwM7xUG9tFRKT2USIREZGsKJGIiEhWlEhERCQrSiQiIpIV\nJRIREcmKEomIiGSlziaS77+H73S3ZRGRrNXZRPL447DddnDffaBrGkVEaq5OX9n+3HNw7rlQvz5c\ney3suWcOgxMRKVK5vrK9TicSgDVr4N574aKLoHt3GDkSttUd4kWkFtMQKTlWrx4ccwzMmgV9+4ZS\nyWmnweLFcUcmIlIa6nwiqbDBBnDOOTB7NjRvDl27wogR8PXXcUcmIlLclEiStGoV2kumTYP33oPO\nneHWW2H16rgjExEpTnW+jaQy06aFBvnFi0P7ycEHg+WsZlFEpPDU2J6gUPcjcYennoLzzoNNNoFr\nroHevfN+WhGRvFBjewzM4MAD4fXX4YQT4LDD4KijYO7cuCMTEYmfEkk1NGgAJ50Ec+ZAt26hVPL7\n38PSpXFHJiISHyWSGmjaFC6+GN55B374Abp0Ce0nq1bFHZmISOEpkWShTRsYMwb++1+YMiUklLvu\nChc5iojUFWpsz6GXXgo9vFatCg3y++4bd0QiIutTr60ExZZIIPTweughuPBC2GqrUOW1ww5xRyUi\n8hP12ipyZnDkkfD22zBgAOy3HwweDAsXxh2ZiEh+KJHkSaNGcNZZoYfXlluGUslFF8Hy5XFHJiKS\nW0okedaiBVxxBbzxRrg6vnNnuPHGcGMtEZHaQImkQNq1g3Hj4JlnwlXy220HDzygm2qJSOnLWyIx\ns7FmtsTMZiYs621mr5rZDDObama90ux7tpnNNLO3zOzsfMUYh+7dQyK55Ra48krYddfQ20tEpFTl\ns0QyDuiftGwUcIm79wCGRfPrMLOuwMlAL2AH4CAz2yqPccaiX78wIORvfwvHHhuGXZk9O+6oRESq\nL2+JxN1fBJYlLV4MtIimWwKLUuy6DTDF3b919x+B54HD8xVnnOrVg+OPDwlk111h993hzDNhyZK4\nIxMRqbpCt5FcAIw2s/nANcCFKbZ5C9jDzFqZ2YbAAKBdAWMsuA02CCMLz5oFjRuH9pO//AVWrow7\nMhGRyhU6kdwBDHX3DsAfgLHJG7j7LGAkMAl4CpgB1IlBRzbZBK67DqZODeN4de4Mt9+um2qJSHHL\n65XtZtYRmOju3aL5Fe6+UTRtwJfu3iL9EcDMrgTmu/stKdb58OHD186XlZVRVlaWs/jj9uqrYciV\npUvDFfIHHqibaolI9ZWXl1NeXr52/tJLLy2dIVJSJJLpwB/c/Xkz2we42t3X67llZpu5+6dm1gH4\nN7CLu69IsV3RDZGSa+7wxBNw/vlhkMhrroGdd447KhEpZSUz1paZTQD6Aq2BJYReWjOBMUBjYBVw\nprvPMLO2wG3uPiDa9wVgE+AHQuKZnOYctT6RVFi9GsaOhREjoKwsXOTYqVPcUYlIKSqZRFIIdSmR\nVPj6axg9OlwdP3gw/PnP0KpV3FGJSCnRoI11XLNmMHx4GBRy5cpwD5Rrr4Vvv407MhGpq5RIStTm\nm4er4194AV58EbbZBv75T91US0QKT1VbtcQLL4QeXqtXhwb5vfeOOyIRKVZqI0mgRLIu9zAQ5IUX\nhiqvUaOga9e4oxKRYqM2EknLDH7963Ax4/77h1LJSSfBolQD0YiI5IgSSS3UuDGcfXa4qdamm4YR\nhy++GFasdyWOiEj2lEhqsZYt4eqrYcYMWLAgDLkyZgz88EPckYlIbaJEUgd06ADjx4f7oDz6KGy/\nPTz8sG6qJSK5ocb2Oujf/w49vJo3Dz28+vSJOyIRKSQ1tkvW9t8/VHedcgocdRQceSS8917cUYlI\nqVIiqaPq1w9DrMyZEwaB3HVXOOss+OyzuCMTkVKjRFLHNWkCF1wA774b7ti47bbhXvLffBN3ZCJS\nKpRIBAjdhG+4AV55BV5/PfTwGjsWfvwx7shEpNipsV1SeuUV+NOfwrUno0aFdhXdVEukdtAQKQmU\nSPLLHR57LNxUq337kFB69ow7KhHJlnptScGYwa9+BW+9BUccAQMGwPHHw0cfxR2ZiBQTJRKpVMOG\ncMYZoYdXp06hVHLeebBsWdyRiUgxUCKRKmveHC67DGbODEmkSxe47jr47ru4IxOROCmRSLW1bQu3\n3QaTJ8Nzz4Uuw/feq5tqidRVamyXrE2eHIZcqVcvDLnSt2/cEYlIJuq1lUCJpHisWQP33QcXXRRu\npjVyJGy3XdxRiUgq6rUlRalePTj6aJg1C/baC8rK4NRTYfHiuCMTkXxTIpGcatwY/vhHmD0bWrQI\npZPhw+Hrr+OOTETyRYlE8mLjjUN7ybRpMHcu/OIXcMstsHp13JGJSK6pjUQKYtq0cO3JokWh/eSQ\nQzTkikhc1NieQImktLjD00+HhFJRYtlll7ijEql71NguJcsMDjggjC48eHAYduWoo0LVl4iULiUS\nKbj69eHEE0ODfPfuoVTy+9/D55/HHZmI1IQSicSmaVP485/hnXdCI/y224b2k1Wr4o5MRKojb4nE\nzMaa2RIzm5mwrLeZvWpmM8xsqpn1SrPvhWb2tpnNNLN7zKxxvuKU+G22Gdx0E/z3v/Dqq2EMr7vu\n0k21REpFPksk44D+SctGAZe4ew9gWDS/DjPrCJwC9HT3bkB94Dd5jFOKROfO8NBDMGFC6Cq8004w\naVLcUYlIZfKWSNz9RSB5oPHFQItouiWwKMWuK4AfgA3NrAGwYZrtpJbabbdQOhk2DH73u3B3xjfe\niDsqEUmn0G0kFwCjzWw+cA1wYfIG7v4FMBqYD3wMfOnuzxY0SomdGRx+OLz9drjmZP/9Q0+vBQvi\njkxEkjWoykZm1gjYFlgDzHb372t4vjuAoe7+iJkNBMYC+yadayvg90BHYDnwgJkd6+7/THXAESNG\nrJ0uKyujrKyshqFJMWrYEH7723BnxlGjYMcdwxheF1wQhmARkcqVl5dTXl6et+NXekGimQ0AbgE+\niBb9HDjN3Z+s9OChvWNi1NaBma1w942iaSOUNlok7XMUsK+7nxzNHw/80t1/m+L4uiCxjlm4MIzd\n9cQTocfX6adDo0ZxRyVSWuK4IPGvwF7u3tfd+wJlwHU1PN/7ZlZxt4q9gTkptpkF/NLMmkTJph/w\nTg3PJ7VMu3Zwxx3w7LPhKvnttoMHHghXzYtIPKpSIpnq7r0S5g14NXFZmv0mAH2B1sASQi+tmcAY\noDGwCjjT3WeYWVvgNncfEO17HjCIUJU2HTjZ3X9IcQ6VSOq4//wn3FSrUaMw5Moee8QdkUjxK9hY\nW2Z2RDTZD/gZcH80PxCY7+5n5CqImlIiEQg31brnnlDV1aMHXH01bLNN3FGJFK9CVm0dDBwEbAB8\nSihd9AU+i5aJFIV69eC448KQK7vtFkolZ5wBn3wSd2QidYNG/5VaZ+lSuOIKGD8ezj4bzjknDMci\nIkEhq7b+lmE/d/ehuQqippRIJJMPPwz3kH/hBRgxAoYMgQZV6vAuUrsVMpEMqphMWOzRvLv7+FwF\nUVNKJFIVU6eGBvnPPguDQg4YoJtqSd1WyERyEfCUu8/I1clyTYlEqsod/vWvcFOtNm1CD6+dd447\nKpF4FLKx/QPgbDN73czGm9lRZrZxrk4sUkhmcNBB8OabcMwxYdiVo48O1V8ikp2qXEdiQA/CSL77\nEoZVeQZ42t1fzXuEmWNTiURqZOVKGD0abrgBBg2Ciy+GVq3ijkqkMAp+ZbsH0939Snffi9Al+B3C\nUO8iJalp0zC68DvvhBtpdekSqru+/TbuyERKT1VKJIMIjezJ+6mxXWqNWbPCQJCvvw6XXx6qv+rp\n/qFSSxWssT3hhDfxUyJpQhgja7q7H5mrIGpKiURy7cUXQw+v778PJZR99ok7IpHcK3giSRFAS+A+\nd98/V0HUlBKJ5IM7PPggXHhhuGvjyJHQrVvcUYnkThyj/yb7BuiUqwBEio0ZDBwY2k/694d+/eCk\nk2CR7tMpklKlicTMJiY8/gXMBh7Jf2gi8WrUCIYODWN4bbYZdO8eenetWBF3ZCLFpSptJH356er2\n1cBH7l4UNzxV1ZYU0oIFcMkl4T4ol1wS7tTYsGHcUYlUXxxVWwPcvTx6vOTuC8xsZK4CECkV7dvD\nnXeGRPL447D99vDww7qplkhVSiQz3L1H0rKZFbfPjZNKJBKnSZNCD69mzUIPrz594o5IpGoKViIx\nszPMbCbQxcxmJjzmAW/mKgCRUrXffjB9eqji+s1v4IgjYE6qm0eL1HKZBm1sAWwMXA2cz0/tJF+5\n+9LChJeZSiRSLFatCsOtXHttSCrDhoUGepFiVLASibsvd/d57v4bd/+IcJfE1pn2EamrmjQJV8bP\nmhXuebLdduHmWt98E3dkIvmXqWrrEDObZ2bTzexA4G3gJuAtMxtcqABFSknr1nD99TBlCrzxRrig\ncexY+PHHuCMTyZ9MVVtvAkcCLYByoJu7f2BmmwHPuXvXgkWZhqq2pNhNmQJ/+hN8+SWMGhUucNRN\ntSRuhbyx1dreWsm9tFL15IqDEomUAvfQXfj882HLLUMPr549445K6rJCXkdS38xamdkmgEfTFfP1\ncxWASG1nBoceCm+9FYZeGTAAjjsOPvoo7shEciNTItkImAa8ljBdMd88/6GJ1C4NGsDpp4cuwltt\nFUol554Ly5bFHZlIdqo9+m8xUdWWlLLFi2H4cHj00dDD6+ST1X4ihRH7MPLFRIlEaoOZM2HIENhk\nE7j99jAUi0g+FcMw8iKSQ926wcsvw557huquO+7Q+F1SWlQiESkib74JgwdDmzZw223Qrl3cEUlt\nVPASiZn91cy2r+6BzWysmS2JxuuqWNbbzF41sxlmNtXMeqXYr0u0vuKx3MyGVvf8IqWoe/dw7Umf\nPtCjB4wbp9KJFL+qjP57CjAYaAiMBSa4+/JKD2y2B/A1cFfFNShmVg5c5e7/NrMDgPPcfa8Mx6gH\nLAJ6p7oHikokUpu98UYonbRtC3//e7gGRSQXCl4icffb3H034ASgIzDTzO4xs7QJINrvRSC5Y+Ni\nwpXyAC0JSSKTfsDcYrmRlkgh7bBDKJ306hVKJ+PHq3QixalKbSRmVh84GBgCtAPuB3YHvnH3ozLs\n1xGYmFAi+RnwEuCEJLZrpiRhZmOB19z9/9KsV4lE6oTXX4dBg6BDB7j11lBKEampXJdIGlThhNcR\nkshzwBXu/mq0aqSZza7m+e4Ahrr7I2Y2kFBVtm+a8zaKznt+pgOOGDFi7XRZWRllZWXVDEmk+O24\nI0ydCpdfHkono0fDscfquhOpmvLycsrLy/N2/Kq0kZwI3OfuK1Osa+nuX2bYtyPrlkhWuPtG0bQB\nX7p7izT7Hgqc4e79MxxfJRKpc6ZNC20nW20Ft9wCm28ed0RSauK4jmQc0N/Mrot6cB0WJQEyJZE0\n3jezvtH03kCm+8kdDUyo5vFFar2ddoLXXoOuXUM7yj33qO1E4lWVEsnNwFaEL3UDfg184O5nVrLf\nBKAv4WZYS4BhwExgDNAYWAWc6e4zzKwtcJu7D4j2bQp8BHRy968ynEMlEqnTXnsttJ106QI33xyu\nPxGpTMGHSDGzWcB27r4mmq8HvOPu2+QqiJpSIhGB776DSy8NV8TfeCP8+tdqO5HM4qjaeh/okDDf\nIVomIkWgcWO48kqYOBFGjAhD1X/6adxRSV1SlUSyEfCumT0fXVD4DtDczCaa2eN5jU5Eqqx3b5gx\nIzTCd+8ODzwQd0RSV1Slaqssw2p39+dzGlE1qGpLJLVXXgk9u7p3hzFjYNNN445IiomGkU+gRCKS\n3qpVMGwY3H033HQTHHFE3BFJsSjkPdu/JlyBnopXXA8SJyUSkcr973/hfic9e8Lf/gatW8cdkcSt\nYI3t7t7M3ZunecSeRESkavr0CUOstG0bqroeeSTuiKS2qXLVlpltBmxQMe/u8/MVVFWpRCJSPS+9\nFEonvXuHrsKbbBJ3RBKHOO5HcoiZvQd8CDwPzAOeylUAIlI4u+8ehqffdNNQOnlc/S4lB6rSa+tN\nwnAmz7h7j2j4+OPd/cRCBJiJSiQiNffCC3DiibDrrnDDDdCqVdwRSaHEcUHiD+7+OVDPzOq7+2Rg\n51wFICLx2HPPUDrZeONQOnniibgjklJVlRLJs8BhwFWEcbM+BXZ29z75Dy8zlUhEcqO8PJRO9twT\nrr8eWraMOyLJpzhKJL8CvgH+ADxNGB7l4FwFICLxKyuDN9+EZs2gWzd48sm4I5JSogsSRWQdkyeH\n0slee8Ff/6rSSW0UR6+tI8zsPTNbYWZfRY8VuQpARIrLXnuF0knjxqF08vTTcUckxa4qbSRzgYPc\n/d3ChFR1KpGI5Nezz8LJJ0O/fuH2vi1S3s9USk0cbSSfFGMSEZH869cvlE7q1w89uyZNijsiKUaZ\nxtqqGOJtT2Bz4FHg+2iZu/vD+Q8vM5VIRApn0iQ45RTYf3+49lrYSAMllaxClkgOBg4i3I9kFbBf\nNH8Q6rUlUufst18onbiH0smzz8YdkRSLqrSR7O7uL1W2LA4qkYjE4+mn4dRTYcAAGDUKmjePOyKp\njjjaSG6s4jIRqSP694eZM+H770Pp5Lnn4o5I4tQg3Qoz2xXoA2xmZn8EKrJXc6B+AWITkSLWogXc\ncUe4eHHQIDjkEBg5MlzUKHVLphJJI35KGs2BZtFjBXBk/kMTkVJw4IGh7WTlSthhB3g+tptvS1yq\n0kbS0d3nFSac6lEbiUhxeeIJOP10OOwwuPpqaNo07ogklTjaSBqb2W1m9oyZTY4eqhEVkfUcdFBo\nO1m+PJROXngh7oikEKp6P5KbgenAj9Fid/dpeY6tUiqRiBSvxx+HM86AgQPhyithww3jjkgq5LpE\nUpVEMs3dd8rVCXNJiUSkuC1dCkOHwquvwrhx4Q6NEr84EskI4DPgYeC7iuXu/kWugqgpJRKR0vDo\no3DmmfCb38Dll6t0Erc4Esk8YL2N3L1TroKoKSUSkdLx+edw1lkwbRrceSf0if3WeHVXwRNJjQ9s\nNhYYAHzq7t2iZb2Bm4CGwGrgTHefmmLflsDtwPaEJHaiu7+SYjslEpES89BD8LvfwXHHwWWXQZMm\ncUdU9xSs15aZnZcwPTBp3ZVVOPY4oH/SslHAJe7eAxgWzadyA/Cku28LdAc0+rBILXHEEeG6k/nz\noUcPeGW9n4hSajJ1/z06YfqipHUHVHZgd38RWJa0eDFQcUeDlsCi5P3MrAWwh7uPjY6z2t2XV3Y+\nESkdm24oL77eAAAOBklEQVQK990Hf/kL/OpXcP758O23cUclNVWV60hy6QJgtJnNB64BLkyxTSfg\nMzMbZ2bTo2tY1DQnUgsNHBhKJ3PnQs+eoXeXlJ60Y23lyR3AUHd/JKouGwvsmyKmnsDv3H2qmV1P\nSEDDUh1wxIgRa6fLysooKyvLQ9giki+bbQYPPAD33x/G6xoyBEaMCLf6ldwoLy+nvLw8b8fPdGOr\nH4FvotkmhHuSVGji7pUmITPrCExMaGxf4e4bRdMGfOnuLZL22Rx4uaJXmJntDlzg7gelOL4a20Vq\nkSVLwkWMs2eHnl29esUdUe1UsMZ2d6/v7s2jR4OE6eZVSSJpvG9mfaPpvYE5Kc77CbDAzDpHi/oB\nb9fwfCJSQtq0Cb26Lr44DLfy5z/Dd99Vvp/EK5/dfycAfYHWwBJC1dRMYAzQmFDCOdPdZ5hZW+A2\ndx8Q7bsDoftvI2AuMCRVg7tKJCK11yefhAEg586F8eNDG4rkRslcR1IISiQitZs7/POf8Mc/wmmn\nwSWXQKNGcUdV+uIY/VdEJBZm4cLFN94Ij169YMaMuKOSZEokIlL0ttgCHnsMzjkH9t8/9Or6/vu4\no5IKSiQiUhLM4IQTQolk6lTYZZdQSpH4KZGISEnZcstwJ8azz4Z99w3jdf3wQ9xR1W1qbBeRkrVw\nIZxySrj+ZPx46NYt7ohKgxrbRUQi7drBk0+G0YT33huuuAJWr447qrpHJRIRqRUWLICTTw53Zbzz\nTujaNe6IipdKJCIiKbRvD08/HS5i3GsvuOoqlU4KRSUSEal15s+Hk06C5ctD6WS77eKOqLioRCIi\nUokOHWDSpJBM+vaFkSNVOsknlUhEpFabNy8klJUrQ+lkm23ijih+KpGIiFRDx47wzDMwaBDssQdc\ncw38+GPcUdUuKpGISJ3x4Ydw4olhaPpx46BLl7gjiodKJCIiNdSpE/znP3DMMbDbbjB6tEonuaAS\niYjUSXPnhtLJ6tWhdNK5c+X71BYqkYiI5MBWW8HkyXDUUdCnD1x/PaxZE3dUpUklEhGp895/H4YM\nCSMMjx0LW28dd0T5pRKJiEiObb01lJfD4YfDL38JN96o0kl1qEQiIpJgzpxQOmnQILSd/PzncUeU\neyqRiIjkUefO8MILcOih0Ls3jBmj0kllVCIREUlj9mwYPBg22CC0nXTqFHdEuaESiYhIgXTpAi+9\nBAceGEonN9+s0kkqKpGIiFTBu++G0kmzZnDHHWHolVKlEomISAy23Rb++1/Ybz/o1QtuvRX0OzZQ\niUREpJrefjuUTjbeGG6/PQxbX0pUIhERidn228PLL4c7Me60E9x2W90unahEIiKShbfeCqWT1q1D\nQmnfPu6IKqcSiYhIEenaNZROdt8devYM3YTr2u/bvJVIzGwsMAD41N27Rct6AzcBDYHVwJnuPjXF\nvvOAFcCPwA/u3jvNOVQiEZGi8eaboXSy+ebw979Du3ZxR5RaKZVIxgH9k5aNAi5x9x7AsGg+FQfK\n3L1HuiQiIlJsuneHKVPCeF09e4Zb+9aF37p5SyTu/iKwLGnxYqBFNN0SWJThEDnLliIihdKwIQwb\nBpMmhaHpDz4YPv447qjyq9BtJBcAo81sPnANcGGa7Rx41sxeM7NTChadiEiO7LgjvPoq7LxzmL7r\nrtpbOslrry0z6whMTGgjeRYY4+6PmNlA4FR33zfFflu4+2Iz2xR4BjgrKuEkb6c2EhEpejNmwKBB\n4Wr4W2+FLbaIN55ct5E0yNWBqqi3u/eLph8Ebk+1kbsvjv5+ZmaPAL2B9RIJwIgRI9ZOl5WVUVZW\nlsNwRUSy16MHvPYaXH457LADXHdduG+8FagCv7y8nPLy8rwdv9AlkunAH9z9eTPbB7ja3Xsl7bMh\nUN/dvzKzpsAk4FJ3n5Ti+CqRiEhJmTYtlE623hpuuSX08Cq0kum1ZWYTgP8BXcxsgZkNAU4FRpnZ\n68Dl0Txm1tbM/hXtujnwYrTNFOCJVElERKQU7bRTSCbbbx9KJxMmlH7bia5sFxGJydSp4bqTLl3C\nEPVt2hTmvCVTIhERkcx69Qqlky5dQunk/vvjjqhmVCIRESkCU6aE0knXruH2vpttlr9zqUQiIlIL\n7bJL6CbcqVO4Qv7hh+OOqOpUIhERKTKvvAJz5sAJJ+Tn+LkukSiRiIjUMaraEhGRoqJEIiIiWVEi\nERGRrCiRiIhIVpRIREQkK0okIiKSFSUSERHJihKJiIhkRYlERESyokQiIiJZUSIREZGsKJGIiEhW\nlEhERCQrSiQiIpIVJRIREcmKEomIiGRFiURERLKiRCIiIllRIhERkawokYiISFaUSEREJCtKJCIi\nkhUlEhERyUreEomZjTWzJWY2M2FZbzN71cxmmNlUM+uVYf/60XYT8xWjiIhkL58lknFA/6Rlo4BL\n3L0HMCyaT+ds4B3A8xNe/MrLy+MOocZKOXZQ/HFT/LVL3hKJu78ILEtavBhoEU23BBal2tfM2gEH\nArcDlq8Y41bKb8ZSjh0Uf9wUf+3SoMDnuwB4ycyuJSSxXdNsdx1wLrBRoQITEZGaKXRj+x3AUHfv\nAPwBGJu8gZkdBHzq7jOoxaUREZHawtzz1wRhZh2Bie7eLZpf4e4bRdMGfOnuLZL2uRI4HlgNbEAo\nlTzk7iekOH6tbT8REcknd8/ZD/VCV229b2Z93f15YG9gTvIG7n4RcBGAmfUF/pQqiUTbqsQiIhKz\nvCUSM5sA9AVam9kCQi+tU4ExZtYYWBXNY2ZtgdvcfUCKQ6nUISJSxPJatSUiIrVf0VzZbmb9zWyW\nmb1nZuen2ebGaP0bZtajsn2rcwFkzPGvd/FmtLyVmT1jZnPMbJKZtSyx+K8xs3ej7R82sxbrH7V4\n409Yf46ZrTGzVqUUu5mdFb3+b5nZyHzEnq/4S+Gza2btzWyymb0dvcZDE7Yv+s9uJfFX77Pr7rE/\ngPrA+0BHoCHwOrBt0jYHAk9G07sAr1S2L1AO7B9NHwBMLrb4o/k9gB7AzKR9RgHnRdPnA1eXWPz7\nAvWi6atLLf5oXXvgaeBDoFWpxA7sBTwDNIzmNy2l174UPrvA5sCO0XQzYDawTTRf9J/dNPFXfHdW\n67NbLCWS3sD77j7P3X8A7gUOTdrmEGA8gLtPAVqa2eaV7FulCyBjjh9PffHmOvtEf3+Vh9ghT/G7\n+zPuviaanQK0K6X4I38FzstL1EG+Yj8DuCo6Ju7+WYnFX+yf3Tbu/om7vx4t/xp4F9gyeR+K87Ob\nLv620Xy1PrvFkki2BBYkzC/kp39IZdu0zbDvBcBoM5sPXANcmMOYqxJbdbdJ1sbdl0TTS4A22QSZ\nQb7iT3Qi8GSNoqtcXuI3s0OBhe7+Zi6CTCNfr/0vgD3N7BUzKzeznbOONLV8xV/sn911vlgtXOrQ\ng/ClC8X/2a0s/kSVfnaLJZFUtcW/ut19K70AMkdqGn+Vezp4KGPmq2dEXuM3sz8D37v7PdWKqupy\nHr+ZbUjohj48w/65kK/XvgGwsbv/kjBKxP3VDayK8hV/yXx2zawZ8CBwdvTLft0Ni/yzmyn+qn52\niyWRLCLURVdoT8iambZpF22Tad/e7v5INP0goRiYDzWNv7Li+pKKKgAz2wL4NMs408lX/JjZYEId\n7bHZhZhRPuLfilDv/IaZfRhtP83MNss62sxx5eq1Xwg8DODuU4E1ZrZJdqGmlK/4S+Kza2YNgYeA\nu9390YRtSuKzmyH+6n1289EAVIMGowbAXMIHtxGVNxj9kp8ajNLuC0wH+kbT+wBTiy3+hPUdSd3Y\nfn40fQH5a7DLV/z9gbeB1sX6/skUf9L6fDW25+u1Pw24NJruDMwvpde+FD67hF/5dwHXpThu0X92\nK4m/Wp/dnD+xLF6QAwi9Bt4HLoyWnQaclrDNTdH6N4CemfaNlu9MqPN7HXgZ6FGk8U8APga+I9Rl\nDomWtwKeJYwAMAloWWLxvwd8BMyIHv9XSvEnHf8D8pBI8vjaNwT+AcwEpgFlpfTal8JnF9gdWBPF\nWPEe7x+tK/rPbiXxV+uzqwsSRUQkK8XSRiIiIiVKiURERLKiRCIiIllRIhERkawokYiISFaUSERE\nJCuFvkOiSFEzsx+BxLG1Jrj7qAzb9yUMIfFy3oMTKVJKJCLr+sbde1S+2Vp7AV8RLppbh5nVd/cf\ncxaZSJHSBYkiCczsK3dvnmL5POBO4GDCVeMDCVdjvwz8SBhLaShwMvAtsCPwEnA3cAvQhDCUxYnu\n/qWZlROuKO5L+EF3IuEK9FlAH3f/3MzqEa5Y/qW7L83PMxbJntpIRNbVJLorX8VjYLTcgc/cfSfg\nZuBP7j6PkCT+6u493f2laLu2wK7u/ifCWEbnuvsOhOFKhiccr0lU+jkTGOvh/g9389Mgef2A15VE\npNipaktkXasyVG09HP2dDhyesDx5iO4H3N2j25O28HDzJgg3F3ogYbsJEG7uZGYbmdlGhOHSHwNu\nIJRSxtX8qYgUhkokIlX3XfT3RzL/CPsmzfLK7mfi7r6QMAT53kAv4KnqhShSeEokItn5ClivTQXA\n3ZcDy8xs92jR8YR7kUNIKkcBROu/dPevonW3E6q47nc1YkoJUNWWyLqamNmMhPmn3P2ipG0S73g3\nEXjQzA4hNLbDunetGwTcEt1xcS4wJGGbb81sOj81tleYSKjSUrWWlAT12hKJgZlNBs5x9+kp1u0M\njHb3voWPTKT6VCIRKSJmdgFwOnBM3LGIVJVKJCIikhU1touISFaUSEREJCtKJCIikhUlEhERyYoS\niYiIZEWJREREsvL/2P9NFOaFOqMAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5853390>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x597d150>"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 199"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity required\n",
+ "#Initialization of variables\n",
+ "p1=40 #psia\n",
+ "t1=80. #F\n",
+ "p2=30 #psia\n",
+ "ar=0.5 #sq ft\n",
+ "v1=200 #ft/s\n",
+ "R=53.35\n",
+ "cp=0.24\n",
+ "g=32.17\n",
+ "J=778.\n",
+ "t2=78. #F\n",
+ "#calculations\n",
+ "G=40 #lb/sq ft/sec\n",
+ "rho2=144*p2/(R*(t2+460.))\n",
+ "v2=p1/rho2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Velocity =\",v2,\"ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity = 265 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity, diameter, specific volume, density and diameter of nozzle\n",
+ "#Initialization of variables\n",
+ "%matplotlib inline\n",
+ "import math\n",
+ "import numpy\n",
+ "import matplotlib\n",
+ "from matplotlib import pyplot\n",
+ "P2=([180., 160., 140., 120., 100., 80., 60., 40., 20.])\n",
+ "k=1.4\n",
+ "p1=200 #psia\n",
+ "t1=240+460. #R\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "gc=32.2\n",
+ "R=53.35\n",
+ "m=4. #lb/sec\n",
+ "#calculations\n",
+ "b = len(P2)\n",
+ "pr=numpy.zeros(b);\n",
+ "prr=numpy.zeros(b);\n",
+ "T2=numpy.zeros(b);\n",
+ "dt=numpy.zeros(b);\n",
+ "dh=numpy.zeros(b);\n",
+ "v2=numpy.zeros(b);\n",
+ "vol=numpy.zeros(b);\n",
+ "A2=numpy.zeros(b);\n",
+ "dia=numpy.zeros(b);\n",
+ "rad=numpy.zeros(b);\n",
+ "den=numpy.zeros(b);\n",
+ "for i in range (0,b):\n",
+ "\tpr[i] = p1/P2[i]\n",
+ "\tprr[i]=math.pow(pr[i],((k-1)/k))\n",
+ "\tT2[i]=t1 /prr[i]\n",
+ "\tdt[i]= t1 -T2[i]\n",
+ "\tdh[i]=dt[i]*cp\n",
+ "\tv2[i]=math.sqrt(2*gc*J*dh[i])\n",
+ "\tvol[i]=(R*T2[i]) /(P2[i]*144.)\n",
+ "\tA2[i]=m*vol[i]*144. /v2[i]\n",
+ "\tdia[i]=math.sqrt(4/ math.pi *A2[i])\n",
+ "\trad[i]=dia[i]/2.\n",
+ "\tden[i]=1. /vol[i]\n",
+ "\n",
+ "pyplot.figure(1)\n",
+ "pyplot.title ('Velocity vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('velocity in ft/s')\n",
+ "pyplot.plot(P2,v2)\n",
+ "\n",
+ "pyplot.figure(2)\n",
+ "pyplot.title('specific volume vs pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('specific volume in cu ft/lb')\n",
+ "pyplot.plot(P2,vol)\n",
+ "\n",
+ "pyplot.figure(3)\n",
+ "pyplot.title('Radius vs Pressure')\n",
+ "pyplot.xlabel('Pressure in psia')\n",
+ "pyplot.ylabel('Radius in in')\n",
+ "pyplot.plot(P2,rad)\n",
+ "#results\n",
+ "print '%s' %('Velocity in ft/s')\n",
+ "print (v2)\n",
+ "print '%s' %('Specific volume in cu ft/lb')\n",
+ "print (vol)\n",
+ "print '%s' %('Density in lb/cu ft')\n",
+ "print (den)\n",
+ "print '%s' %('Diameter of nozzle in in')\n",
+ "print (dia)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity in ft/s\n",
+ "[ 499.61112617 721.04131991 903.0653517 1069.14361272 1229.75524527\n",
+ " 1392.40468067 1565.24666139 1761.46433404 2014.34825773]\n",
+ "Specific volume in cu ft/lb\n",
+ "[ 1.39805384 1.52076257 1.6729549 1.86768387 2.12745999 2.4950706\n",
+ " 3.06425423 4.09358926 6.71623201]\n",
+ "Density in lb/cu ft\n",
+ "[ 0.71528003 0.65756484 0.59774475 0.53542252 0.47004409 0.40079026\n",
+ " 0.32634368 0.2442844 0.14889301]\n",
+ "Diameter of nozzle in in\n",
+ "[ 1.43255795 1.24370371 1.16559809 1.1318789 1.12638708 1.14637045\n",
+ " 1.19822204 1.30551392 1.56373036]\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x3207f30>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n4hzkiETAuWYAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x5cf3f10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nRK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7fba210>"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 210"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the nozzle exit area\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=200. #psia\n",
+ "t1=480. #F\n",
+ "eff=0.95\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "mf=3.4 #lb/s\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "h1=1257.8 \n",
+ "h2=1210.5 \n",
+ "dh=eff*(h1-h2)\n",
+ "ve=math.sqrt(2*g*J*dh)\n",
+ "h3=h1-dh\n",
+ "vs=3.961\n",
+ "Ae=mf*vs/ve *144.\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Nozzle exit area =\",Ae,\"sq.in\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Nozzle exit area = 1.292 sq.in\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature, pressure and exit velocity in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "from numpy import roots\n",
+ "R=53.35\n",
+ "v=300. #ft/s\n",
+ "p=100 #psia\n",
+ "t1=200 #F\n",
+ "q=500 #Btu/s\n",
+ "gc=32.2 #ft/s^2\n",
+ "J=778\n",
+ "#calculations\n",
+ "rho1=p*144/(R*(460.+t1))\n",
+ "s=([1., -0.206, 0.00535])\n",
+ "vec=numpy.roots(s)\n",
+ "rho2=vec[0]\n",
+ "t2=(236.6 - 0.301/rho2/rho2)/0.248\n",
+ "P2=rho2*R*(t2+462) /144.\n",
+ "v2=math.sqrt(2*gc*J*(236.6-0.248*t2))\n",
+ "v22=rho1*v/rho2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final temperature =\",t2,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n Final pressure =\",P2,\" psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 1 =\",v2,\"ft/s\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit velocity in case 2 =\",v22,\" ft/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final temperature = 914.6 F\n",
+ "\n",
+ " Final pressure = 89.5 psia\n",
+ "\n",
+ " Exit velocity in case 1 = 699.7 ft/s\n",
+ "\n",
+ " Exit velocity in case 2 = 699.0 ft/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_12.ipynb b/Thermodynamics_for_Engineers/Chapter_12.ipynb
new file mode 100755
index 00000000..adf56744
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_12.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa78c4fecb9e6170fff80d7d4acf98ab991ec2677f1baef191ee2d45ad66490b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the interface temperature\n",
+ "#Initialization of variables\n",
+ "km1=0.62\n",
+ "km2=0.16\n",
+ "km3=0.4\n",
+ "l1=8. #in\n",
+ "l2=4. #in\n",
+ "l3=4. #in\n",
+ "Tf=1600. #F\n",
+ "Tc=100. #F\n",
+ "#calculations\n",
+ "Rw=l1/12./km1 +l2/12./km2 +l3/12./km3\n",
+ "Rb=l1/12./km1\n",
+ "Ti=Tf-Rb/Rw *(Tf-Tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Interface temperature =\",Ti,\"F\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interface temperature = 1196.0 F\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat flow and the interface temperature\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th=350. #F\n",
+ "tc=150. #F\n",
+ "od1=4.5\n",
+ "id1=4.026\n",
+ "od2=6.5\n",
+ "id2=4.5\n",
+ "k1=32.\n",
+ "k2=0.042\n",
+ "#calculations\n",
+ "Q=2*math.pi*(th-tc)/(math.log(od1/id1) /k1 + math.log(od2/id2) /k2)\n",
+ "r1=math.log(od1/id1) /k1\n",
+ "rt=math.log(od1/id1) /k1 + math.log(od2/id2) /k2\n",
+ "ti=th-r1/rt*(th-tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat flow =\",Q,\"Btu/hr\")\n",
+ "print '%s %.2f %s' %(\"\\n Interface temperature =\",ti,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat flow = 143.5 Btu/hr\n",
+ "\n",
+ " Interface temperature = 349.92 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange in the process\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "Q=0.173*A*Fa*Fe*(math.pow((Tb/100.),4) -math.pow((Ta/100.),4))\n",
+ "Q2=416000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"In case 1, Net energy exchange =\",Q,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n In case 2, Net energy exchange =\",Q2,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Net energy exchange = 18684 Btu/hr\n",
+ "\n",
+ " In case 2, Net energy exchange = 416000 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ea=0.8\n",
+ "eb=0.7\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "ef=ea*eb\n",
+ "Q=0.173*A*Fa*Fe*ef*(math.pow((Tb/100),4) -math.pow((Ta/100),4))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Net energy exchange =\",\tQ,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net energy exchange = 10463 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "den=61.995 #lb/cu ft\n",
+ "vel=6 #ft/s\n",
+ "t1=100. #F\n",
+ "t2=160. #F\n",
+ "de=2.067 #in\n",
+ "mu=1.238\n",
+ "pr=3.3\n",
+ "#calculations\n",
+ "G=den*vel*3600.\n",
+ "tm=(t1+t2)/2\n",
+ "hc=0.023*0.377/(de/12.) *math.pow(de/12 *G/mu,0.8) *math.pow(pr,0.4)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 1335 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "d=0.5 #in\n",
+ "tm=1000. #F\n",
+ "v=5#ft/s\n",
+ "k=38.2\n",
+ "den=51.2\n",
+ "mu=0.3\n",
+ "#calculations\n",
+ "Nu=7+ 0.025*math.pow((d/12 *v*den*mu/k*3600),0.8)\n",
+ "h=Nu*k/(d/12.)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 8624 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the convective film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "do=2 #in\n",
+ "tf=120. #F\n",
+ "ti=80. #F\n",
+ "rho=0.0709\n",
+ "g=32.17\n",
+ "bet=1/560.\n",
+ "cp=0.24\n",
+ "mu=0.0461\n",
+ "k=0.0157\n",
+ "d=2. #in\n",
+ "Cd=0.45\n",
+ "#calculations\n",
+ "GrPr=math.pow(d/12.,3) *rho*rho *g*3600*3600. *bet*(tf-ti)*cp/(mu*k)\n",
+ "hc=Cd*k/math.pow(d/12.,(1./4.)) *math.pow(GrPr,(1./4.))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Convective film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Convective film coefficient = 0.242 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the outer film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "tf=220. #F\n",
+ "ti=200. #F\n",
+ "d=2. #in\n",
+ "C=103.7\n",
+ "k=0.394\n",
+ "rho=59.37\n",
+ "hfg=965.2\n",
+ "mu=0.70\n",
+ "#calculations\n",
+ "h=C*math.pow(k*k*k *rho*rho *hfg/((d/12.) *mu*(tf-ti)),(1./4.))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Outer film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Outer film coefficient = 1792 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the boiling film coefficient\n",
+ "#Initialization of variables\n",
+ "tf=225. #F\n",
+ "a=190.\n",
+ "b=0.043\n",
+ "ti=212. #F\n",
+ "#calculations\n",
+ "hc=a/(1-b*(tf-ti))\n",
+ "hcti=hc*1.25\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"For a flat copper plate, boiling film coefficient =\",hc,\" Btu/sq ft hr F\")\n",
+ "print '%s %d %s' %(\"\\n For an inclined copper plate, boiling film coefficient =\",hcti,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a flat copper plate, boiling film coefficient = 430.8 Btu/sq ft hr F\n",
+ "\n",
+ " For an inclined copper plate, boiling film coefficient = 538 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat transferred per foot length of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "U0= 1/(Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0)\n",
+ "Q=U0*L*math.pi*(t1-t4)/12.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat transferred per foot length of pipe =\",Q,\"btu/hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred per foot length of pipe = 23744 btu/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the temperature of inner and outer surfaces of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "Re=Do/(Di*hi)\n",
+ "R0=Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0\n",
+ "td=Re/R0 *(t1-t4)\n",
+ "ti=t4+td\n",
+ "Req=1./h0\n",
+ "td2=Req/R0 *(t1-t4)\n",
+ "to=t1-td2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"The temperature of the inner surface of pipe =\",ti,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n The temperature of the outer surface of pipe =\",to,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of the inner surface of pipe = 176.6 F\n",
+ "\n",
+ " The temperature of the outer surface of pipe = 194.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Logarithmic Mean temperature difference \n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=800. #F\n",
+ "th2=300. #F\n",
+ "tc1=100. #F\n",
+ "tc2=400. #F\n",
+ "#calculations\n",
+ "lmtd= ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Logarithmic Mean temperature difference =\",lmtd,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Logarithmic Mean temperature difference = 288 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the True Mean temperature difference\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=200. #F\n",
+ "th2=100. #F\n",
+ "tc1=80. #F\n",
+ "tc2=110. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From the lmtd graph,\")\n",
+ "R=(tc1-tc2)/(th2-th1)\n",
+ "P=(th2-th1)/(tc1-th1)\n",
+ "F=0.62\n",
+ "lmtd= F* ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"True Mean temperature difference =\",lmtd,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the lmtd graph,\n",
+ "True Mean temperature difference = 28.9 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_12_1.ipynb b/Thermodynamics_for_Engineers/Chapter_12_1.ipynb
new file mode 100755
index 00000000..adf56744
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_12_1.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa78c4fecb9e6170fff80d7d4acf98ab991ec2677f1baef191ee2d45ad66490b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the interface temperature\n",
+ "#Initialization of variables\n",
+ "km1=0.62\n",
+ "km2=0.16\n",
+ "km3=0.4\n",
+ "l1=8. #in\n",
+ "l2=4. #in\n",
+ "l3=4. #in\n",
+ "Tf=1600. #F\n",
+ "Tc=100. #F\n",
+ "#calculations\n",
+ "Rw=l1/12./km1 +l2/12./km2 +l3/12./km3\n",
+ "Rb=l1/12./km1\n",
+ "Ti=Tf-Rb/Rw *(Tf-Tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Interface temperature =\",Ti,\"F\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interface temperature = 1196.0 F\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat flow and the interface temperature\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th=350. #F\n",
+ "tc=150. #F\n",
+ "od1=4.5\n",
+ "id1=4.026\n",
+ "od2=6.5\n",
+ "id2=4.5\n",
+ "k1=32.\n",
+ "k2=0.042\n",
+ "#calculations\n",
+ "Q=2*math.pi*(th-tc)/(math.log(od1/id1) /k1 + math.log(od2/id2) /k2)\n",
+ "r1=math.log(od1/id1) /k1\n",
+ "rt=math.log(od1/id1) /k1 + math.log(od2/id2) /k2\n",
+ "ti=th-r1/rt*(th-tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat flow =\",Q,\"Btu/hr\")\n",
+ "print '%s %.2f %s' %(\"\\n Interface temperature =\",ti,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat flow = 143.5 Btu/hr\n",
+ "\n",
+ " Interface temperature = 349.92 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange in the process\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "Q=0.173*A*Fa*Fe*(math.pow((Tb/100.),4) -math.pow((Ta/100.),4))\n",
+ "Q2=416000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"In case 1, Net energy exchange =\",Q,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n In case 2, Net energy exchange =\",Q2,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Net energy exchange = 18684 Btu/hr\n",
+ "\n",
+ " In case 2, Net energy exchange = 416000 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ea=0.8\n",
+ "eb=0.7\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "ef=ea*eb\n",
+ "Q=0.173*A*Fa*Fe*ef*(math.pow((Tb/100),4) -math.pow((Ta/100),4))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Net energy exchange =\",\tQ,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net energy exchange = 10463 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "den=61.995 #lb/cu ft\n",
+ "vel=6 #ft/s\n",
+ "t1=100. #F\n",
+ "t2=160. #F\n",
+ "de=2.067 #in\n",
+ "mu=1.238\n",
+ "pr=3.3\n",
+ "#calculations\n",
+ "G=den*vel*3600.\n",
+ "tm=(t1+t2)/2\n",
+ "hc=0.023*0.377/(de/12.) *math.pow(de/12 *G/mu,0.8) *math.pow(pr,0.4)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 1335 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "d=0.5 #in\n",
+ "tm=1000. #F\n",
+ "v=5#ft/s\n",
+ "k=38.2\n",
+ "den=51.2\n",
+ "mu=0.3\n",
+ "#calculations\n",
+ "Nu=7+ 0.025*math.pow((d/12 *v*den*mu/k*3600),0.8)\n",
+ "h=Nu*k/(d/12.)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 8624 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the convective film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "do=2 #in\n",
+ "tf=120. #F\n",
+ "ti=80. #F\n",
+ "rho=0.0709\n",
+ "g=32.17\n",
+ "bet=1/560.\n",
+ "cp=0.24\n",
+ "mu=0.0461\n",
+ "k=0.0157\n",
+ "d=2. #in\n",
+ "Cd=0.45\n",
+ "#calculations\n",
+ "GrPr=math.pow(d/12.,3) *rho*rho *g*3600*3600. *bet*(tf-ti)*cp/(mu*k)\n",
+ "hc=Cd*k/math.pow(d/12.,(1./4.)) *math.pow(GrPr,(1./4.))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Convective film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Convective film coefficient = 0.242 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the outer film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "tf=220. #F\n",
+ "ti=200. #F\n",
+ "d=2. #in\n",
+ "C=103.7\n",
+ "k=0.394\n",
+ "rho=59.37\n",
+ "hfg=965.2\n",
+ "mu=0.70\n",
+ "#calculations\n",
+ "h=C*math.pow(k*k*k *rho*rho *hfg/((d/12.) *mu*(tf-ti)),(1./4.))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Outer film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Outer film coefficient = 1792 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the boiling film coefficient\n",
+ "#Initialization of variables\n",
+ "tf=225. #F\n",
+ "a=190.\n",
+ "b=0.043\n",
+ "ti=212. #F\n",
+ "#calculations\n",
+ "hc=a/(1-b*(tf-ti))\n",
+ "hcti=hc*1.25\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"For a flat copper plate, boiling film coefficient =\",hc,\" Btu/sq ft hr F\")\n",
+ "print '%s %d %s' %(\"\\n For an inclined copper plate, boiling film coefficient =\",hcti,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a flat copper plate, boiling film coefficient = 430.8 Btu/sq ft hr F\n",
+ "\n",
+ " For an inclined copper plate, boiling film coefficient = 538 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat transferred per foot length of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "U0= 1/(Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0)\n",
+ "Q=U0*L*math.pi*(t1-t4)/12.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat transferred per foot length of pipe =\",Q,\"btu/hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred per foot length of pipe = 23744 btu/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the temperature of inner and outer surfaces of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "Re=Do/(Di*hi)\n",
+ "R0=Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0\n",
+ "td=Re/R0 *(t1-t4)\n",
+ "ti=t4+td\n",
+ "Req=1./h0\n",
+ "td2=Req/R0 *(t1-t4)\n",
+ "to=t1-td2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"The temperature of the inner surface of pipe =\",ti,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n The temperature of the outer surface of pipe =\",to,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of the inner surface of pipe = 176.6 F\n",
+ "\n",
+ " The temperature of the outer surface of pipe = 194.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Logarithmic Mean temperature difference \n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=800. #F\n",
+ "th2=300. #F\n",
+ "tc1=100. #F\n",
+ "tc2=400. #F\n",
+ "#calculations\n",
+ "lmtd= ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Logarithmic Mean temperature difference =\",lmtd,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Logarithmic Mean temperature difference = 288 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the True Mean temperature difference\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=200. #F\n",
+ "th2=100. #F\n",
+ "tc1=80. #F\n",
+ "tc2=110. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From the lmtd graph,\")\n",
+ "R=(tc1-tc2)/(th2-th1)\n",
+ "P=(th2-th1)/(tc1-th1)\n",
+ "F=0.62\n",
+ "lmtd= F* ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"True Mean temperature difference =\",lmtd,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the lmtd graph,\n",
+ "True Mean temperature difference = 28.9 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_12_2.ipynb b/Thermodynamics_for_Engineers/Chapter_12_2.ipynb
new file mode 100755
index 00000000..adf56744
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_12_2.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa78c4fecb9e6170fff80d7d4acf98ab991ec2677f1baef191ee2d45ad66490b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the interface temperature\n",
+ "#Initialization of variables\n",
+ "km1=0.62\n",
+ "km2=0.16\n",
+ "km3=0.4\n",
+ "l1=8. #in\n",
+ "l2=4. #in\n",
+ "l3=4. #in\n",
+ "Tf=1600. #F\n",
+ "Tc=100. #F\n",
+ "#calculations\n",
+ "Rw=l1/12./km1 +l2/12./km2 +l3/12./km3\n",
+ "Rb=l1/12./km1\n",
+ "Ti=Tf-Rb/Rw *(Tf-Tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Interface temperature =\",Ti,\"F\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interface temperature = 1196.0 F\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat flow and the interface temperature\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th=350. #F\n",
+ "tc=150. #F\n",
+ "od1=4.5\n",
+ "id1=4.026\n",
+ "od2=6.5\n",
+ "id2=4.5\n",
+ "k1=32.\n",
+ "k2=0.042\n",
+ "#calculations\n",
+ "Q=2*math.pi*(th-tc)/(math.log(od1/id1) /k1 + math.log(od2/id2) /k2)\n",
+ "r1=math.log(od1/id1) /k1\n",
+ "rt=math.log(od1/id1) /k1 + math.log(od2/id2) /k2\n",
+ "ti=th-r1/rt*(th-tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat flow =\",Q,\"Btu/hr\")\n",
+ "print '%s %.2f %s' %(\"\\n Interface temperature =\",ti,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat flow = 143.5 Btu/hr\n",
+ "\n",
+ " Interface temperature = 349.92 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange in the process\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "Q=0.173*A*Fa*Fe*(math.pow((Tb/100.),4) -math.pow((Ta/100.),4))\n",
+ "Q2=416000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"In case 1, Net energy exchange =\",Q,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n In case 2, Net energy exchange =\",Q2,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Net energy exchange = 18684 Btu/hr\n",
+ "\n",
+ " In case 2, Net energy exchange = 416000 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ea=0.8\n",
+ "eb=0.7\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "ef=ea*eb\n",
+ "Q=0.173*A*Fa*Fe*ef*(math.pow((Tb/100),4) -math.pow((Ta/100),4))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Net energy exchange =\",\tQ,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net energy exchange = 10463 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "den=61.995 #lb/cu ft\n",
+ "vel=6 #ft/s\n",
+ "t1=100. #F\n",
+ "t2=160. #F\n",
+ "de=2.067 #in\n",
+ "mu=1.238\n",
+ "pr=3.3\n",
+ "#calculations\n",
+ "G=den*vel*3600.\n",
+ "tm=(t1+t2)/2\n",
+ "hc=0.023*0.377/(de/12.) *math.pow(de/12 *G/mu,0.8) *math.pow(pr,0.4)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 1335 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "d=0.5 #in\n",
+ "tm=1000. #F\n",
+ "v=5#ft/s\n",
+ "k=38.2\n",
+ "den=51.2\n",
+ "mu=0.3\n",
+ "#calculations\n",
+ "Nu=7+ 0.025*math.pow((d/12 *v*den*mu/k*3600),0.8)\n",
+ "h=Nu*k/(d/12.)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 8624 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the convective film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "do=2 #in\n",
+ "tf=120. #F\n",
+ "ti=80. #F\n",
+ "rho=0.0709\n",
+ "g=32.17\n",
+ "bet=1/560.\n",
+ "cp=0.24\n",
+ "mu=0.0461\n",
+ "k=0.0157\n",
+ "d=2. #in\n",
+ "Cd=0.45\n",
+ "#calculations\n",
+ "GrPr=math.pow(d/12.,3) *rho*rho *g*3600*3600. *bet*(tf-ti)*cp/(mu*k)\n",
+ "hc=Cd*k/math.pow(d/12.,(1./4.)) *math.pow(GrPr,(1./4.))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Convective film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Convective film coefficient = 0.242 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the outer film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "tf=220. #F\n",
+ "ti=200. #F\n",
+ "d=2. #in\n",
+ "C=103.7\n",
+ "k=0.394\n",
+ "rho=59.37\n",
+ "hfg=965.2\n",
+ "mu=0.70\n",
+ "#calculations\n",
+ "h=C*math.pow(k*k*k *rho*rho *hfg/((d/12.) *mu*(tf-ti)),(1./4.))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Outer film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Outer film coefficient = 1792 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the boiling film coefficient\n",
+ "#Initialization of variables\n",
+ "tf=225. #F\n",
+ "a=190.\n",
+ "b=0.043\n",
+ "ti=212. #F\n",
+ "#calculations\n",
+ "hc=a/(1-b*(tf-ti))\n",
+ "hcti=hc*1.25\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"For a flat copper plate, boiling film coefficient =\",hc,\" Btu/sq ft hr F\")\n",
+ "print '%s %d %s' %(\"\\n For an inclined copper plate, boiling film coefficient =\",hcti,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a flat copper plate, boiling film coefficient = 430.8 Btu/sq ft hr F\n",
+ "\n",
+ " For an inclined copper plate, boiling film coefficient = 538 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat transferred per foot length of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "U0= 1/(Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0)\n",
+ "Q=U0*L*math.pi*(t1-t4)/12.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat transferred per foot length of pipe =\",Q,\"btu/hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred per foot length of pipe = 23744 btu/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the temperature of inner and outer surfaces of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "Re=Do/(Di*hi)\n",
+ "R0=Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0\n",
+ "td=Re/R0 *(t1-t4)\n",
+ "ti=t4+td\n",
+ "Req=1./h0\n",
+ "td2=Req/R0 *(t1-t4)\n",
+ "to=t1-td2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"The temperature of the inner surface of pipe =\",ti,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n The temperature of the outer surface of pipe =\",to,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of the inner surface of pipe = 176.6 F\n",
+ "\n",
+ " The temperature of the outer surface of pipe = 194.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Logarithmic Mean temperature difference \n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=800. #F\n",
+ "th2=300. #F\n",
+ "tc1=100. #F\n",
+ "tc2=400. #F\n",
+ "#calculations\n",
+ "lmtd= ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Logarithmic Mean temperature difference =\",lmtd,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Logarithmic Mean temperature difference = 288 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the True Mean temperature difference\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=200. #F\n",
+ "th2=100. #F\n",
+ "tc1=80. #F\n",
+ "tc2=110. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From the lmtd graph,\")\n",
+ "R=(tc1-tc2)/(th2-th1)\n",
+ "P=(th2-th1)/(tc1-th1)\n",
+ "F=0.62\n",
+ "lmtd= F* ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"True Mean temperature difference =\",lmtd,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the lmtd graph,\n",
+ "True Mean temperature difference = 28.9 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_12_3.ipynb b/Thermodynamics_for_Engineers/Chapter_12_3.ipynb
new file mode 100755
index 00000000..adf56744
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_12_3.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa78c4fecb9e6170fff80d7d4acf98ab991ec2677f1baef191ee2d45ad66490b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the interface temperature\n",
+ "#Initialization of variables\n",
+ "km1=0.62\n",
+ "km2=0.16\n",
+ "km3=0.4\n",
+ "l1=8. #in\n",
+ "l2=4. #in\n",
+ "l3=4. #in\n",
+ "Tf=1600. #F\n",
+ "Tc=100. #F\n",
+ "#calculations\n",
+ "Rw=l1/12./km1 +l2/12./km2 +l3/12./km3\n",
+ "Rb=l1/12./km1\n",
+ "Ti=Tf-Rb/Rw *(Tf-Tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Interface temperature =\",Ti,\"F\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interface temperature = 1196.0 F\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat flow and the interface temperature\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th=350. #F\n",
+ "tc=150. #F\n",
+ "od1=4.5\n",
+ "id1=4.026\n",
+ "od2=6.5\n",
+ "id2=4.5\n",
+ "k1=32.\n",
+ "k2=0.042\n",
+ "#calculations\n",
+ "Q=2*math.pi*(th-tc)/(math.log(od1/id1) /k1 + math.log(od2/id2) /k2)\n",
+ "r1=math.log(od1/id1) /k1\n",
+ "rt=math.log(od1/id1) /k1 + math.log(od2/id2) /k2\n",
+ "ti=th-r1/rt*(th-tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat flow =\",Q,\"Btu/hr\")\n",
+ "print '%s %.2f %s' %(\"\\n Interface temperature =\",ti,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat flow = 143.5 Btu/hr\n",
+ "\n",
+ " Interface temperature = 349.92 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange in the process\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "Q=0.173*A*Fa*Fe*(math.pow((Tb/100.),4) -math.pow((Ta/100.),4))\n",
+ "Q2=416000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"In case 1, Net energy exchange =\",Q,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n In case 2, Net energy exchange =\",Q2,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Net energy exchange = 18684 Btu/hr\n",
+ "\n",
+ " In case 2, Net energy exchange = 416000 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ea=0.8\n",
+ "eb=0.7\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "ef=ea*eb\n",
+ "Q=0.173*A*Fa*Fe*ef*(math.pow((Tb/100),4) -math.pow((Ta/100),4))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Net energy exchange =\",\tQ,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net energy exchange = 10463 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "den=61.995 #lb/cu ft\n",
+ "vel=6 #ft/s\n",
+ "t1=100. #F\n",
+ "t2=160. #F\n",
+ "de=2.067 #in\n",
+ "mu=1.238\n",
+ "pr=3.3\n",
+ "#calculations\n",
+ "G=den*vel*3600.\n",
+ "tm=(t1+t2)/2\n",
+ "hc=0.023*0.377/(de/12.) *math.pow(de/12 *G/mu,0.8) *math.pow(pr,0.4)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 1335 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "d=0.5 #in\n",
+ "tm=1000. #F\n",
+ "v=5#ft/s\n",
+ "k=38.2\n",
+ "den=51.2\n",
+ "mu=0.3\n",
+ "#calculations\n",
+ "Nu=7+ 0.025*math.pow((d/12 *v*den*mu/k*3600),0.8)\n",
+ "h=Nu*k/(d/12.)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 8624 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the convective film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "do=2 #in\n",
+ "tf=120. #F\n",
+ "ti=80. #F\n",
+ "rho=0.0709\n",
+ "g=32.17\n",
+ "bet=1/560.\n",
+ "cp=0.24\n",
+ "mu=0.0461\n",
+ "k=0.0157\n",
+ "d=2. #in\n",
+ "Cd=0.45\n",
+ "#calculations\n",
+ "GrPr=math.pow(d/12.,3) *rho*rho *g*3600*3600. *bet*(tf-ti)*cp/(mu*k)\n",
+ "hc=Cd*k/math.pow(d/12.,(1./4.)) *math.pow(GrPr,(1./4.))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Convective film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Convective film coefficient = 0.242 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the outer film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "tf=220. #F\n",
+ "ti=200. #F\n",
+ "d=2. #in\n",
+ "C=103.7\n",
+ "k=0.394\n",
+ "rho=59.37\n",
+ "hfg=965.2\n",
+ "mu=0.70\n",
+ "#calculations\n",
+ "h=C*math.pow(k*k*k *rho*rho *hfg/((d/12.) *mu*(tf-ti)),(1./4.))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Outer film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Outer film coefficient = 1792 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the boiling film coefficient\n",
+ "#Initialization of variables\n",
+ "tf=225. #F\n",
+ "a=190.\n",
+ "b=0.043\n",
+ "ti=212. #F\n",
+ "#calculations\n",
+ "hc=a/(1-b*(tf-ti))\n",
+ "hcti=hc*1.25\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"For a flat copper plate, boiling film coefficient =\",hc,\" Btu/sq ft hr F\")\n",
+ "print '%s %d %s' %(\"\\n For an inclined copper plate, boiling film coefficient =\",hcti,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a flat copper plate, boiling film coefficient = 430.8 Btu/sq ft hr F\n",
+ "\n",
+ " For an inclined copper plate, boiling film coefficient = 538 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat transferred per foot length of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "U0= 1/(Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0)\n",
+ "Q=U0*L*math.pi*(t1-t4)/12.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat transferred per foot length of pipe =\",Q,\"btu/hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred per foot length of pipe = 23744 btu/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the temperature of inner and outer surfaces of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "Re=Do/(Di*hi)\n",
+ "R0=Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0\n",
+ "td=Re/R0 *(t1-t4)\n",
+ "ti=t4+td\n",
+ "Req=1./h0\n",
+ "td2=Req/R0 *(t1-t4)\n",
+ "to=t1-td2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"The temperature of the inner surface of pipe =\",ti,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n The temperature of the outer surface of pipe =\",to,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of the inner surface of pipe = 176.6 F\n",
+ "\n",
+ " The temperature of the outer surface of pipe = 194.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Logarithmic Mean temperature difference \n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=800. #F\n",
+ "th2=300. #F\n",
+ "tc1=100. #F\n",
+ "tc2=400. #F\n",
+ "#calculations\n",
+ "lmtd= ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Logarithmic Mean temperature difference =\",lmtd,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Logarithmic Mean temperature difference = 288 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the True Mean temperature difference\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=200. #F\n",
+ "th2=100. #F\n",
+ "tc1=80. #F\n",
+ "tc2=110. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From the lmtd graph,\")\n",
+ "R=(tc1-tc2)/(th2-th1)\n",
+ "P=(th2-th1)/(tc1-th1)\n",
+ "F=0.62\n",
+ "lmtd= F* ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"True Mean temperature difference =\",lmtd,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the lmtd graph,\n",
+ "True Mean temperature difference = 28.9 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_12_4.ipynb b/Thermodynamics_for_Engineers/Chapter_12_4.ipynb
new file mode 100755
index 00000000..adf56744
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_12_4.ipynb
@@ -0,0 +1,585 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aa78c4fecb9e6170fff80d7d4acf98ab991ec2677f1baef191ee2d45ad66490b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 - Heat Transfer"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the interface temperature\n",
+ "#Initialization of variables\n",
+ "km1=0.62\n",
+ "km2=0.16\n",
+ "km3=0.4\n",
+ "l1=8. #in\n",
+ "l2=4. #in\n",
+ "l3=4. #in\n",
+ "Tf=1600. #F\n",
+ "Tc=100. #F\n",
+ "#calculations\n",
+ "Rw=l1/12./km1 +l2/12./km2 +l3/12./km3\n",
+ "Rb=l1/12./km1\n",
+ "Ti=Tf-Rb/Rw *(Tf-Tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Interface temperature =\",Ti,\"F\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interface temperature = 1196.0 F\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat flow and the interface temperature\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th=350. #F\n",
+ "tc=150. #F\n",
+ "od1=4.5\n",
+ "id1=4.026\n",
+ "od2=6.5\n",
+ "id2=4.5\n",
+ "k1=32.\n",
+ "k2=0.042\n",
+ "#calculations\n",
+ "Q=2*math.pi*(th-tc)/(math.log(od1/id1) /k1 + math.log(od2/id2) /k2)\n",
+ "r1=math.log(od1/id1) /k1\n",
+ "rt=math.log(od1/id1) /k1 + math.log(od2/id2) /k2\n",
+ "ti=th-r1/rt*(th-tc)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat flow =\",Q,\"Btu/hr\")\n",
+ "print '%s %.2f %s' %(\"\\n Interface temperature =\",ti,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat flow = 143.5 Btu/hr\n",
+ "\n",
+ " Interface temperature = 349.92 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange in the process\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "Q=0.173*A*Fa*Fe*(math.pow((Tb/100.),4) -math.pow((Ta/100.),4))\n",
+ "Q2=416000.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"In case 1, Net energy exchange =\",Q,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n In case 2, Net energy exchange =\",Q2,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Net energy exchange = 18684 Btu/hr\n",
+ "\n",
+ " In case 2, Net energy exchange = 416000 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the net energy exchange\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ea=0.8\n",
+ "eb=0.7\n",
+ "Fa=0.045\n",
+ "l=4. #m\n",
+ "b=4. #m\n",
+ "Fe=1.\n",
+ "Ta=540.+460 #R\n",
+ "Tb=1540.+460 #R\n",
+ "#calculations\n",
+ "A=l*b\n",
+ "ef=ea*eb\n",
+ "Q=0.173*A*Fa*Fe*ef*(math.pow((Tb/100),4) -math.pow((Ta/100),4))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Net energy exchange =\",\tQ,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net energy exchange = 10463 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "den=61.995 #lb/cu ft\n",
+ "vel=6 #ft/s\n",
+ "t1=100. #F\n",
+ "t2=160. #F\n",
+ "de=2.067 #in\n",
+ "mu=1.238\n",
+ "pr=3.3\n",
+ "#calculations\n",
+ "G=den*vel*3600.\n",
+ "tm=(t1+t2)/2\n",
+ "hc=0.023*0.377/(de/12.) *math.pow(de/12 *G/mu,0.8) *math.pow(pr,0.4)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 1335 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the inside film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "d=0.5 #in\n",
+ "tm=1000. #F\n",
+ "v=5#ft/s\n",
+ "k=38.2\n",
+ "den=51.2\n",
+ "mu=0.3\n",
+ "#calculations\n",
+ "Nu=7+ 0.025*math.pow((d/12 *v*den*mu/k*3600),0.8)\n",
+ "h=Nu*k/(d/12.)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Inside film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Inside film coefficient = 8624 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the convective film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "do=2 #in\n",
+ "tf=120. #F\n",
+ "ti=80. #F\n",
+ "rho=0.0709\n",
+ "g=32.17\n",
+ "bet=1/560.\n",
+ "cp=0.24\n",
+ "mu=0.0461\n",
+ "k=0.0157\n",
+ "d=2. #in\n",
+ "Cd=0.45\n",
+ "#calculations\n",
+ "GrPr=math.pow(d/12.,3) *rho*rho *g*3600*3600. *bet*(tf-ti)*cp/(mu*k)\n",
+ "hc=Cd*k/math.pow(d/12.,(1./4.)) *math.pow(GrPr,(1./4.))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Convective film coefficient =\",hc,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Convective film coefficient = 0.242 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the outer film coefficient\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "tf=220. #F\n",
+ "ti=200. #F\n",
+ "d=2. #in\n",
+ "C=103.7\n",
+ "k=0.394\n",
+ "rho=59.37\n",
+ "hfg=965.2\n",
+ "mu=0.70\n",
+ "#calculations\n",
+ "h=C*math.pow(k*k*k *rho*rho *hfg/((d/12.) *mu*(tf-ti)),(1./4.))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Outer film coefficient =\",h,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Outer film coefficient = 1792 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the boiling film coefficient\n",
+ "#Initialization of variables\n",
+ "tf=225. #F\n",
+ "a=190.\n",
+ "b=0.043\n",
+ "ti=212. #F\n",
+ "#calculations\n",
+ "hc=a/(1-b*(tf-ti))\n",
+ "hcti=hc*1.25\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"For a flat copper plate, boiling film coefficient =\",hc,\" Btu/sq ft hr F\")\n",
+ "print '%s %d %s' %(\"\\n For an inclined copper plate, boiling film coefficient =\",hcti,\"Btu/sq ft hr F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For a flat copper plate, boiling film coefficient = 430.8 Btu/sq ft hr F\n",
+ "\n",
+ " For an inclined copper plate, boiling film coefficient = 538 Btu/sq ft hr F\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat transferred per foot length of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "U0= 1/(Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0)\n",
+ "Q=U0*L*math.pi*(t1-t4)/12.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat transferred per foot length of pipe =\",Q,\"btu/hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat transferred per foot length of pipe = 23744 btu/hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the temperature of inner and outer surfaces of pipe\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Do=2.375 #in\n",
+ "hi=1200.\n",
+ "Di=2.067 #in\n",
+ "km=29.2\n",
+ "h0=1500.\n",
+ "L=2.375 #in\n",
+ "t1=220. #F\n",
+ "t4=140. #F\n",
+ "#calculations\n",
+ "Re=Do/(Di*hi)\n",
+ "R0=Do/(Di*hi) + (Do/12. *math.log(Do/Di) /(2*km)) + 1./h0\n",
+ "td=Re/R0 *(t1-t4)\n",
+ "ti=t4+td\n",
+ "Req=1./h0\n",
+ "td2=Req/R0 *(t1-t4)\n",
+ "to=t1-td2\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"The temperature of the inner surface of pipe =\",ti,\" F\")\n",
+ "print '%s %.1f %s' %(\"\\n The temperature of the outer surface of pipe =\",to,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The temperature of the inner surface of pipe = 176.6 F\n",
+ "\n",
+ " The temperature of the outer surface of pipe = 194.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Logarithmic Mean temperature difference \n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=800. #F\n",
+ "th2=300. #F\n",
+ "tc1=100. #F\n",
+ "tc2=400. #F\n",
+ "#calculations\n",
+ "lmtd= ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Logarithmic Mean temperature difference =\",lmtd,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Logarithmic Mean temperature difference = 288 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the True Mean temperature difference\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "th1=200. #F\n",
+ "th2=100. #F\n",
+ "tc1=80. #F\n",
+ "tc2=110. #F\n",
+ "#calculations\n",
+ "print '%s' %(\"From the lmtd graph,\")\n",
+ "R=(tc1-tc2)/(th2-th1)\n",
+ "P=(th2-th1)/(tc1-th1)\n",
+ "F=0.62\n",
+ "lmtd= F* ((th1-tc2) - (th2-tc1) )/(math.log((th1-tc2)/(th2-tc1)))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"True Mean temperature difference =\",lmtd,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From the lmtd graph,\n",
+ "True Mean temperature difference = 28.9 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_13.ipynb b/Thermodynamics_for_Engineers/Chapter_13.ipynb
new file mode 100755
index 00000000..388f458f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_13.ipynb
@@ -0,0 +1,667 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:390a761bad4c193a32a4fcd413c61db0b9a1c29b46bfad9c3be94c1204cb558b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 - Nonreactive and reactive gaseous mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mass and partial volumes of of oxygen, nitrogen\n",
+ "#Initialization of variables\n",
+ "P=70. #psia\n",
+ "Pt=110. #psia\n",
+ "V=20. #cu ft\n",
+ "R0=1545. #Universal gas constant\n",
+ "T=540. #R\n",
+ "M=32. #Molecular weight of Oxygen\n",
+ "M2=28. #Molecular weight of Nitrgoen\n",
+ "#calculations\n",
+ "N=P*V*144/(R0*T)\n",
+ "mo=M*N\n",
+ "Pn=Pt-P\n",
+ "N2=Pn*V*144/(R0*T)\n",
+ "mn=N2*M2\n",
+ "Vo=N*R0*T/(144*Pt)\n",
+ "Vn=N2*R0*T/(144*Pt)\n",
+ "Vn2=V-Vo\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Mass of oxygen =\",mo,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Mass of nitrogen =\",mn,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of oxygen =\",Vo,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of nitrogen =\",Vn,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Partial volume of nitrogen =\",Vn2,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of oxygen = 7.73 lb\n",
+ "\n",
+ " Mass of nitrogen = 3.87 lb\n",
+ "\n",
+ " Partial volume of oxygen = 12.73 cu ft\n",
+ "\n",
+ " Partial volume of nitrogen = 7.27 cu ft\n",
+ "\n",
+ " In case 2, Partial volume of nitrogen = 7.27 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P=50. #psia\n",
+ "V=4. #cu ft\n",
+ "dv=3. #cu ft\n",
+ "J=778.\n",
+ "T=560. #R\n",
+ "#calculation\n",
+ "ds= 144*P*V*math.log((V+dv)/V) /(J*T)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in entropy =\",ds,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.037 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=50. #psia\n",
+ "t1=100+460. #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "v1=4. #cu ft\n",
+ "p2=100. #psia\n",
+ "v2=3. #cu ft\n",
+ "t2=200.+460 #R\n",
+ "cv1=0.157\n",
+ "cv2=0.177\n",
+ "cpm=0.219\n",
+ "J=778.\n",
+ "#calculations\n",
+ "m1=144*p1*v1/(R1*t1)\n",
+ "m2=144*p2*v2/(R2*t2)\n",
+ "tf=(m1*cv1*(t1-460) + m2*cv2*(t2-460))/(m1*cv1+m2*cv2)\n",
+ "Po2=v1/(v1+v2) *(tf+460)/t1 *p1\n",
+ "ds=cpm*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.0528 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=30 #psia\n",
+ "t1=80.+460 #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "m1=20. #lb/min\n",
+ "p2=50. #psia\n",
+ "m2=35. #lb/min\n",
+ "t2=160.+460 #R\n",
+ "cp1=0.219\n",
+ "cp2=0.248\n",
+ "J=778\n",
+ "#calculations\n",
+ "tf=(m1*cp1*(t1-460) + m2*cp2*(t2-460))/(m1*cp1+m2*cp2)\n",
+ "Po2=m1/32/(m1/32+m2/28) *p1\n",
+ "ds=cp1*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"units/min\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 1.7754 units/min\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight per mole and also the gas constant\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.15, 0.08, 0.77])\n",
+ "M=([44, 32, 28])\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "y=numpy.zeros(b)\n",
+ "yt=numpy.zeros(b)\n",
+ "mt=numpy.zeros(b)\n",
+ "per=numpy.zeros(b)\n",
+ "wt=numpy.zeros(b)\n",
+ "R=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\ty[i]=x[i]/M[i]\n",
+ "\n",
+ "yt=sum(y)\n",
+ "for i in range (0,b):\n",
+ "\tmt[i]=y[i]/yt\n",
+ "\tper[i]=mt[i]*100\n",
+ "\n",
+ "wt=1. /yt\n",
+ "R=1545. /wt\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('percent by volume')\n",
+ "print (per)\n",
+ "print '%s %.1f %s' %(\"Weight per mole =\",wt,\" lb\")\n",
+ "print '%s %.1f' %(\"\\n Gas constant =\",R)\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "percent by volume\n",
+ "[ 10.20408163 7.4829932 82.31292517]\n",
+ "Weight per mole = 29.9 lb\n",
+ "\n",
+ " Gas constant = 51.6\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air and amount of nitrogen\n",
+ "#Initialization of variables\n",
+ "x1=0.885 #mole fraction of Ch4\n",
+ "x2=0.115 #mole fraction of c2h6\n",
+ "x3=0.4/100. #mole fraction of N2\n",
+ "n1=2. #Moles of Ch4\n",
+ "n2=3.5 #Moles of c2h6\n",
+ "n3=1. #moles of ch4 in case 2\n",
+ "n4=2. #moles of c2h6 in case 2\n",
+ "#calculations\n",
+ "y1=n1*x1\n",
+ "y2=n2*x2\n",
+ "y=y1+y2\n",
+ "vec2=([y1, y2])\n",
+ "air=y/0.21\n",
+ "y3=n3*x1\n",
+ "y4=n4*x2\n",
+ "yy=y3+y4\n",
+ "vec3=([y3 ,y4])\n",
+ "air2=y/0.21 *0.79\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air =\",air,\" moles of air per mole of fuel\")\n",
+ "print '%s' %(\"Oxygen analysis\")\n",
+ "print(vec2)\n",
+ "print '%s %.2f %s' %(\"\\n Amount of nitrogen =\",air2,\" moles of nitrogen per mole of fuel\")\n",
+ "print '%s' %(\"Dry analysis\")\n",
+ "print(vec3)\n",
+ "print '%s %.3f %s' %(\"total =\",yy,\" moles\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air = 10.35 moles of air per mole of fuel\n",
+ "Oxygen analysis\n",
+ "[1.77, 0.4025]\n",
+ "\n",
+ " Amount of nitrogen = 8.17 moles of nitrogen per mole of fuel\n",
+ "Dry analysis\n",
+ "[0.885, 0.23]\n",
+ "total = 1.115 moles\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air fuel ratio\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.74, 0.06, 0.01]) #mole fraction of C, H and S respectively\n",
+ "y=([8./3., 8, 1]) #Pounds O2 per pound substance of C,H and S respectively\n",
+ "oxy=0.08 #Oxygen in coal\n",
+ "z=0.232 #mass of coal\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "pou = numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tpou[i]=x[i]*y[i]\n",
+ "\n",
+ "tot=sum(pou)\n",
+ "oxy2=tot-oxy\n",
+ "air=oxy2/z\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air fuel ratio =\",air,\"lb of air per pound of coal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air fuel ratio = 10.27 lb of air per pound of coal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate air fuel ratio and also molal analysis\n",
+ "#Initialization of variables\n",
+ "o2=12.5 #moles of O2\n",
+ "h20=9 #moles of H2O\n",
+ "x=0.21 #Mole fraction of Oxygen in air\n",
+ "M=28.97 #Molar mass of air\n",
+ "M2=56. #molar mass of C4H8\n",
+ "M1=8*12+18. #molecular mass of c8h18\n",
+ "#calculations\n",
+ "air=o2/x\n",
+ "pound=air*M\n",
+ "AR=pound/M1\n",
+ "y1=h20/M2 *100.\n",
+ "y2=o2*(79./21) /M2 *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Air fuel ratio =\",AR,\"lb of air per pound of fuel\")\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n Molal or volumetric analysis is\",y1, \"percent of CO2 and\",y2, \"percent N2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 15.13 lb of air per pound of fuel\n",
+ "\n",
+ " Molal or volumetric analysis is 16.07 percent of CO2 and 83.97 percent N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis and also volume of wet products\n",
+ "#Initialization of variables\n",
+ "x=18.5 #Moles of O2\n",
+ "c=12. #Moles of CO2\n",
+ "vap=13. #moles of H2O\n",
+ "P=15. #psia\n",
+ "R=1545. #Universal gas constant\n",
+ "#calculations\n",
+ "excess=x*0.5\n",
+ "M=12*12+2*vap\n",
+ "n2=(x+excess)*79/21.\n",
+ "nt=n2+excess+c\n",
+ "dry=([c, x/2, n2]) \n",
+ "b= len(dry)\n",
+ "for i in range(0,b):\n",
+ "\tdry[i] = dry[i] /nt *100\n",
+ "\n",
+ "wet=nt+vap\n",
+ "fue=100./(M)\n",
+ "mol=wet*fue\n",
+ "vol=mol*R*1460./(144*P)\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis in percentage\")\n",
+ "print (' CO2 O2 N2')\n",
+ "print (dry)\n",
+ "print '%s %d %s' %(\"Volume of wet products =\",vol,\"cfm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis in percentage\n",
+ " CO2 O2 N2\n",
+ "[9.55088118249005, 7.362137578169414, 83.08698123934053]\n",
+ "Volume of wet products = 85167 cfm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "from numpy.linalg import inv\n",
+ "A=numpy.array([[1, 1], [0.5, 1]])\n",
+ "B=numpy.array([[1],[ 0.9]])\n",
+ "x=0.9\n",
+ "#calculations\n",
+ "N2=x*79./21.\n",
+ "C=numpy.linalg.solve(A,B)\n",
+ "vec= ([ C[0], C[1], N2])\n",
+ "su=sum(vec)\n",
+ "b= len(vec)\n",
+ "vec2=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tvec2[i]=vec[i]/su *100.;\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('CO CO2 N2')\n",
+ "print (vec2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "CO CO2 N2\n",
+ "[ 4.56026059 18.24104235 77.19869707]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Moles of dry products per pound of coal\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "M=12.\n",
+ "#calcualtions\n",
+ "carbon=c-ref\n",
+ "car2=co2+co\n",
+ "wt=car2*M\n",
+ "amount=carbon/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Moles of dry products per pound of coal =\",amount,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of dry products per pound of coal = 0.496 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Number of moles of dry products per pound of fuel\n",
+ "#Initialization of variables\n",
+ "x1=0.128\n",
+ "x2=0.035\n",
+ "x3=0.002\n",
+ "M=12.\n",
+ "N=26.\n",
+ "#calculations\n",
+ "c=x1+x3\n",
+ "mole=12./c\n",
+ "wt=M*M+N\n",
+ "num=mole/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Number of moles of dry products per pound of fuel =\",num,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of dry products per pound of fuel = 0.543 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight of air and excess air percentage\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "o2=0.065\n",
+ "M=12\n",
+ "x=0.79\n",
+ "M=28.97\n",
+ "#calcualtions\n",
+ "n2=1-(co2+co+o2)\n",
+ "mol=n2/x\n",
+ "wt=mol*M\n",
+ "wt2=0.496\n",
+ "pou=wt2*wt\n",
+ "ta=10.27\n",
+ "EA=(pou-ta)/ta *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Weight of air per pound of fuel =\",pou,\"lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Excess air percentage =\",EA,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of air per pound of fuel = 14.81 lb\n",
+ "\n",
+ " Excess air percentage = 44.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_13_1.ipynb b/Thermodynamics_for_Engineers/Chapter_13_1.ipynb
new file mode 100755
index 00000000..388f458f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_13_1.ipynb
@@ -0,0 +1,667 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:390a761bad4c193a32a4fcd413c61db0b9a1c29b46bfad9c3be94c1204cb558b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 - Nonreactive and reactive gaseous mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mass and partial volumes of of oxygen, nitrogen\n",
+ "#Initialization of variables\n",
+ "P=70. #psia\n",
+ "Pt=110. #psia\n",
+ "V=20. #cu ft\n",
+ "R0=1545. #Universal gas constant\n",
+ "T=540. #R\n",
+ "M=32. #Molecular weight of Oxygen\n",
+ "M2=28. #Molecular weight of Nitrgoen\n",
+ "#calculations\n",
+ "N=P*V*144/(R0*T)\n",
+ "mo=M*N\n",
+ "Pn=Pt-P\n",
+ "N2=Pn*V*144/(R0*T)\n",
+ "mn=N2*M2\n",
+ "Vo=N*R0*T/(144*Pt)\n",
+ "Vn=N2*R0*T/(144*Pt)\n",
+ "Vn2=V-Vo\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Mass of oxygen =\",mo,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Mass of nitrogen =\",mn,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of oxygen =\",Vo,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of nitrogen =\",Vn,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Partial volume of nitrogen =\",Vn2,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of oxygen = 7.73 lb\n",
+ "\n",
+ " Mass of nitrogen = 3.87 lb\n",
+ "\n",
+ " Partial volume of oxygen = 12.73 cu ft\n",
+ "\n",
+ " Partial volume of nitrogen = 7.27 cu ft\n",
+ "\n",
+ " In case 2, Partial volume of nitrogen = 7.27 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P=50. #psia\n",
+ "V=4. #cu ft\n",
+ "dv=3. #cu ft\n",
+ "J=778.\n",
+ "T=560. #R\n",
+ "#calculation\n",
+ "ds= 144*P*V*math.log((V+dv)/V) /(J*T)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in entropy =\",ds,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.037 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=50. #psia\n",
+ "t1=100+460. #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "v1=4. #cu ft\n",
+ "p2=100. #psia\n",
+ "v2=3. #cu ft\n",
+ "t2=200.+460 #R\n",
+ "cv1=0.157\n",
+ "cv2=0.177\n",
+ "cpm=0.219\n",
+ "J=778.\n",
+ "#calculations\n",
+ "m1=144*p1*v1/(R1*t1)\n",
+ "m2=144*p2*v2/(R2*t2)\n",
+ "tf=(m1*cv1*(t1-460) + m2*cv2*(t2-460))/(m1*cv1+m2*cv2)\n",
+ "Po2=v1/(v1+v2) *(tf+460)/t1 *p1\n",
+ "ds=cpm*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.0528 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=30 #psia\n",
+ "t1=80.+460 #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "m1=20. #lb/min\n",
+ "p2=50. #psia\n",
+ "m2=35. #lb/min\n",
+ "t2=160.+460 #R\n",
+ "cp1=0.219\n",
+ "cp2=0.248\n",
+ "J=778\n",
+ "#calculations\n",
+ "tf=(m1*cp1*(t1-460) + m2*cp2*(t2-460))/(m1*cp1+m2*cp2)\n",
+ "Po2=m1/32/(m1/32+m2/28) *p1\n",
+ "ds=cp1*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"units/min\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 1.7754 units/min\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight per mole and also the gas constant\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.15, 0.08, 0.77])\n",
+ "M=([44, 32, 28])\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "y=numpy.zeros(b)\n",
+ "yt=numpy.zeros(b)\n",
+ "mt=numpy.zeros(b)\n",
+ "per=numpy.zeros(b)\n",
+ "wt=numpy.zeros(b)\n",
+ "R=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\ty[i]=x[i]/M[i]\n",
+ "\n",
+ "yt=sum(y)\n",
+ "for i in range (0,b):\n",
+ "\tmt[i]=y[i]/yt\n",
+ "\tper[i]=mt[i]*100\n",
+ "\n",
+ "wt=1. /yt\n",
+ "R=1545. /wt\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('percent by volume')\n",
+ "print (per)\n",
+ "print '%s %.1f %s' %(\"Weight per mole =\",wt,\" lb\")\n",
+ "print '%s %.1f' %(\"\\n Gas constant =\",R)\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "percent by volume\n",
+ "[ 10.20408163 7.4829932 82.31292517]\n",
+ "Weight per mole = 29.9 lb\n",
+ "\n",
+ " Gas constant = 51.6\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air and amount of nitrogen\n",
+ "#Initialization of variables\n",
+ "x1=0.885 #mole fraction of Ch4\n",
+ "x2=0.115 #mole fraction of c2h6\n",
+ "x3=0.4/100. #mole fraction of N2\n",
+ "n1=2. #Moles of Ch4\n",
+ "n2=3.5 #Moles of c2h6\n",
+ "n3=1. #moles of ch4 in case 2\n",
+ "n4=2. #moles of c2h6 in case 2\n",
+ "#calculations\n",
+ "y1=n1*x1\n",
+ "y2=n2*x2\n",
+ "y=y1+y2\n",
+ "vec2=([y1, y2])\n",
+ "air=y/0.21\n",
+ "y3=n3*x1\n",
+ "y4=n4*x2\n",
+ "yy=y3+y4\n",
+ "vec3=([y3 ,y4])\n",
+ "air2=y/0.21 *0.79\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air =\",air,\" moles of air per mole of fuel\")\n",
+ "print '%s' %(\"Oxygen analysis\")\n",
+ "print(vec2)\n",
+ "print '%s %.2f %s' %(\"\\n Amount of nitrogen =\",air2,\" moles of nitrogen per mole of fuel\")\n",
+ "print '%s' %(\"Dry analysis\")\n",
+ "print(vec3)\n",
+ "print '%s %.3f %s' %(\"total =\",yy,\" moles\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air = 10.35 moles of air per mole of fuel\n",
+ "Oxygen analysis\n",
+ "[1.77, 0.4025]\n",
+ "\n",
+ " Amount of nitrogen = 8.17 moles of nitrogen per mole of fuel\n",
+ "Dry analysis\n",
+ "[0.885, 0.23]\n",
+ "total = 1.115 moles\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air fuel ratio\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.74, 0.06, 0.01]) #mole fraction of C, H and S respectively\n",
+ "y=([8./3., 8, 1]) #Pounds O2 per pound substance of C,H and S respectively\n",
+ "oxy=0.08 #Oxygen in coal\n",
+ "z=0.232 #mass of coal\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "pou = numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tpou[i]=x[i]*y[i]\n",
+ "\n",
+ "tot=sum(pou)\n",
+ "oxy2=tot-oxy\n",
+ "air=oxy2/z\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air fuel ratio =\",air,\"lb of air per pound of coal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air fuel ratio = 10.27 lb of air per pound of coal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate air fuel ratio and also molal analysis\n",
+ "#Initialization of variables\n",
+ "o2=12.5 #moles of O2\n",
+ "h20=9 #moles of H2O\n",
+ "x=0.21 #Mole fraction of Oxygen in air\n",
+ "M=28.97 #Molar mass of air\n",
+ "M2=56. #molar mass of C4H8\n",
+ "M1=8*12+18. #molecular mass of c8h18\n",
+ "#calculations\n",
+ "air=o2/x\n",
+ "pound=air*M\n",
+ "AR=pound/M1\n",
+ "y1=h20/M2 *100.\n",
+ "y2=o2*(79./21) /M2 *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Air fuel ratio =\",AR,\"lb of air per pound of fuel\")\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n Molal or volumetric analysis is\",y1, \"percent of CO2 and\",y2, \"percent N2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 15.13 lb of air per pound of fuel\n",
+ "\n",
+ " Molal or volumetric analysis is 16.07 percent of CO2 and 83.97 percent N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis and also volume of wet products\n",
+ "#Initialization of variables\n",
+ "x=18.5 #Moles of O2\n",
+ "c=12. #Moles of CO2\n",
+ "vap=13. #moles of H2O\n",
+ "P=15. #psia\n",
+ "R=1545. #Universal gas constant\n",
+ "#calculations\n",
+ "excess=x*0.5\n",
+ "M=12*12+2*vap\n",
+ "n2=(x+excess)*79/21.\n",
+ "nt=n2+excess+c\n",
+ "dry=([c, x/2, n2]) \n",
+ "b= len(dry)\n",
+ "for i in range(0,b):\n",
+ "\tdry[i] = dry[i] /nt *100\n",
+ "\n",
+ "wet=nt+vap\n",
+ "fue=100./(M)\n",
+ "mol=wet*fue\n",
+ "vol=mol*R*1460./(144*P)\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis in percentage\")\n",
+ "print (' CO2 O2 N2')\n",
+ "print (dry)\n",
+ "print '%s %d %s' %(\"Volume of wet products =\",vol,\"cfm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis in percentage\n",
+ " CO2 O2 N2\n",
+ "[9.55088118249005, 7.362137578169414, 83.08698123934053]\n",
+ "Volume of wet products = 85167 cfm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "from numpy.linalg import inv\n",
+ "A=numpy.array([[1, 1], [0.5, 1]])\n",
+ "B=numpy.array([[1],[ 0.9]])\n",
+ "x=0.9\n",
+ "#calculations\n",
+ "N2=x*79./21.\n",
+ "C=numpy.linalg.solve(A,B)\n",
+ "vec= ([ C[0], C[1], N2])\n",
+ "su=sum(vec)\n",
+ "b= len(vec)\n",
+ "vec2=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tvec2[i]=vec[i]/su *100.;\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('CO CO2 N2')\n",
+ "print (vec2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "CO CO2 N2\n",
+ "[ 4.56026059 18.24104235 77.19869707]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Moles of dry products per pound of coal\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "M=12.\n",
+ "#calcualtions\n",
+ "carbon=c-ref\n",
+ "car2=co2+co\n",
+ "wt=car2*M\n",
+ "amount=carbon/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Moles of dry products per pound of coal =\",amount,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of dry products per pound of coal = 0.496 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Number of moles of dry products per pound of fuel\n",
+ "#Initialization of variables\n",
+ "x1=0.128\n",
+ "x2=0.035\n",
+ "x3=0.002\n",
+ "M=12.\n",
+ "N=26.\n",
+ "#calculations\n",
+ "c=x1+x3\n",
+ "mole=12./c\n",
+ "wt=M*M+N\n",
+ "num=mole/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Number of moles of dry products per pound of fuel =\",num,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of dry products per pound of fuel = 0.543 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight of air and excess air percentage\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "o2=0.065\n",
+ "M=12\n",
+ "x=0.79\n",
+ "M=28.97\n",
+ "#calcualtions\n",
+ "n2=1-(co2+co+o2)\n",
+ "mol=n2/x\n",
+ "wt=mol*M\n",
+ "wt2=0.496\n",
+ "pou=wt2*wt\n",
+ "ta=10.27\n",
+ "EA=(pou-ta)/ta *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Weight of air per pound of fuel =\",pou,\"lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Excess air percentage =\",EA,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of air per pound of fuel = 14.81 lb\n",
+ "\n",
+ " Excess air percentage = 44.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_13_2.ipynb b/Thermodynamics_for_Engineers/Chapter_13_2.ipynb
new file mode 100755
index 00000000..388f458f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_13_2.ipynb
@@ -0,0 +1,667 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:390a761bad4c193a32a4fcd413c61db0b9a1c29b46bfad9c3be94c1204cb558b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 - Nonreactive and reactive gaseous mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mass and partial volumes of of oxygen, nitrogen\n",
+ "#Initialization of variables\n",
+ "P=70. #psia\n",
+ "Pt=110. #psia\n",
+ "V=20. #cu ft\n",
+ "R0=1545. #Universal gas constant\n",
+ "T=540. #R\n",
+ "M=32. #Molecular weight of Oxygen\n",
+ "M2=28. #Molecular weight of Nitrgoen\n",
+ "#calculations\n",
+ "N=P*V*144/(R0*T)\n",
+ "mo=M*N\n",
+ "Pn=Pt-P\n",
+ "N2=Pn*V*144/(R0*T)\n",
+ "mn=N2*M2\n",
+ "Vo=N*R0*T/(144*Pt)\n",
+ "Vn=N2*R0*T/(144*Pt)\n",
+ "Vn2=V-Vo\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Mass of oxygen =\",mo,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Mass of nitrogen =\",mn,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of oxygen =\",Vo,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of nitrogen =\",Vn,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Partial volume of nitrogen =\",Vn2,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of oxygen = 7.73 lb\n",
+ "\n",
+ " Mass of nitrogen = 3.87 lb\n",
+ "\n",
+ " Partial volume of oxygen = 12.73 cu ft\n",
+ "\n",
+ " Partial volume of nitrogen = 7.27 cu ft\n",
+ "\n",
+ " In case 2, Partial volume of nitrogen = 7.27 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P=50. #psia\n",
+ "V=4. #cu ft\n",
+ "dv=3. #cu ft\n",
+ "J=778.\n",
+ "T=560. #R\n",
+ "#calculation\n",
+ "ds= 144*P*V*math.log((V+dv)/V) /(J*T)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in entropy =\",ds,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.037 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=50. #psia\n",
+ "t1=100+460. #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "v1=4. #cu ft\n",
+ "p2=100. #psia\n",
+ "v2=3. #cu ft\n",
+ "t2=200.+460 #R\n",
+ "cv1=0.157\n",
+ "cv2=0.177\n",
+ "cpm=0.219\n",
+ "J=778.\n",
+ "#calculations\n",
+ "m1=144*p1*v1/(R1*t1)\n",
+ "m2=144*p2*v2/(R2*t2)\n",
+ "tf=(m1*cv1*(t1-460) + m2*cv2*(t2-460))/(m1*cv1+m2*cv2)\n",
+ "Po2=v1/(v1+v2) *(tf+460)/t1 *p1\n",
+ "ds=cpm*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.0528 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=30 #psia\n",
+ "t1=80.+460 #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "m1=20. #lb/min\n",
+ "p2=50. #psia\n",
+ "m2=35. #lb/min\n",
+ "t2=160.+460 #R\n",
+ "cp1=0.219\n",
+ "cp2=0.248\n",
+ "J=778\n",
+ "#calculations\n",
+ "tf=(m1*cp1*(t1-460) + m2*cp2*(t2-460))/(m1*cp1+m2*cp2)\n",
+ "Po2=m1/32/(m1/32+m2/28) *p1\n",
+ "ds=cp1*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"units/min\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 1.7754 units/min\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight per mole and also the gas constant\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.15, 0.08, 0.77])\n",
+ "M=([44, 32, 28])\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "y=numpy.zeros(b)\n",
+ "yt=numpy.zeros(b)\n",
+ "mt=numpy.zeros(b)\n",
+ "per=numpy.zeros(b)\n",
+ "wt=numpy.zeros(b)\n",
+ "R=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\ty[i]=x[i]/M[i]\n",
+ "\n",
+ "yt=sum(y)\n",
+ "for i in range (0,b):\n",
+ "\tmt[i]=y[i]/yt\n",
+ "\tper[i]=mt[i]*100\n",
+ "\n",
+ "wt=1. /yt\n",
+ "R=1545. /wt\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('percent by volume')\n",
+ "print (per)\n",
+ "print '%s %.1f %s' %(\"Weight per mole =\",wt,\" lb\")\n",
+ "print '%s %.1f' %(\"\\n Gas constant =\",R)\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "percent by volume\n",
+ "[ 10.20408163 7.4829932 82.31292517]\n",
+ "Weight per mole = 29.9 lb\n",
+ "\n",
+ " Gas constant = 51.6\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air and amount of nitrogen\n",
+ "#Initialization of variables\n",
+ "x1=0.885 #mole fraction of Ch4\n",
+ "x2=0.115 #mole fraction of c2h6\n",
+ "x3=0.4/100. #mole fraction of N2\n",
+ "n1=2. #Moles of Ch4\n",
+ "n2=3.5 #Moles of c2h6\n",
+ "n3=1. #moles of ch4 in case 2\n",
+ "n4=2. #moles of c2h6 in case 2\n",
+ "#calculations\n",
+ "y1=n1*x1\n",
+ "y2=n2*x2\n",
+ "y=y1+y2\n",
+ "vec2=([y1, y2])\n",
+ "air=y/0.21\n",
+ "y3=n3*x1\n",
+ "y4=n4*x2\n",
+ "yy=y3+y4\n",
+ "vec3=([y3 ,y4])\n",
+ "air2=y/0.21 *0.79\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air =\",air,\" moles of air per mole of fuel\")\n",
+ "print '%s' %(\"Oxygen analysis\")\n",
+ "print(vec2)\n",
+ "print '%s %.2f %s' %(\"\\n Amount of nitrogen =\",air2,\" moles of nitrogen per mole of fuel\")\n",
+ "print '%s' %(\"Dry analysis\")\n",
+ "print(vec3)\n",
+ "print '%s %.3f %s' %(\"total =\",yy,\" moles\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air = 10.35 moles of air per mole of fuel\n",
+ "Oxygen analysis\n",
+ "[1.77, 0.4025]\n",
+ "\n",
+ " Amount of nitrogen = 8.17 moles of nitrogen per mole of fuel\n",
+ "Dry analysis\n",
+ "[0.885, 0.23]\n",
+ "total = 1.115 moles\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air fuel ratio\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.74, 0.06, 0.01]) #mole fraction of C, H and S respectively\n",
+ "y=([8./3., 8, 1]) #Pounds O2 per pound substance of C,H and S respectively\n",
+ "oxy=0.08 #Oxygen in coal\n",
+ "z=0.232 #mass of coal\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "pou = numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tpou[i]=x[i]*y[i]\n",
+ "\n",
+ "tot=sum(pou)\n",
+ "oxy2=tot-oxy\n",
+ "air=oxy2/z\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air fuel ratio =\",air,\"lb of air per pound of coal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air fuel ratio = 10.27 lb of air per pound of coal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate air fuel ratio and also molal analysis\n",
+ "#Initialization of variables\n",
+ "o2=12.5 #moles of O2\n",
+ "h20=9 #moles of H2O\n",
+ "x=0.21 #Mole fraction of Oxygen in air\n",
+ "M=28.97 #Molar mass of air\n",
+ "M2=56. #molar mass of C4H8\n",
+ "M1=8*12+18. #molecular mass of c8h18\n",
+ "#calculations\n",
+ "air=o2/x\n",
+ "pound=air*M\n",
+ "AR=pound/M1\n",
+ "y1=h20/M2 *100.\n",
+ "y2=o2*(79./21) /M2 *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Air fuel ratio =\",AR,\"lb of air per pound of fuel\")\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n Molal or volumetric analysis is\",y1, \"percent of CO2 and\",y2, \"percent N2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 15.13 lb of air per pound of fuel\n",
+ "\n",
+ " Molal or volumetric analysis is 16.07 percent of CO2 and 83.97 percent N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis and also volume of wet products\n",
+ "#Initialization of variables\n",
+ "x=18.5 #Moles of O2\n",
+ "c=12. #Moles of CO2\n",
+ "vap=13. #moles of H2O\n",
+ "P=15. #psia\n",
+ "R=1545. #Universal gas constant\n",
+ "#calculations\n",
+ "excess=x*0.5\n",
+ "M=12*12+2*vap\n",
+ "n2=(x+excess)*79/21.\n",
+ "nt=n2+excess+c\n",
+ "dry=([c, x/2, n2]) \n",
+ "b= len(dry)\n",
+ "for i in range(0,b):\n",
+ "\tdry[i] = dry[i] /nt *100\n",
+ "\n",
+ "wet=nt+vap\n",
+ "fue=100./(M)\n",
+ "mol=wet*fue\n",
+ "vol=mol*R*1460./(144*P)\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis in percentage\")\n",
+ "print (' CO2 O2 N2')\n",
+ "print (dry)\n",
+ "print '%s %d %s' %(\"Volume of wet products =\",vol,\"cfm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis in percentage\n",
+ " CO2 O2 N2\n",
+ "[9.55088118249005, 7.362137578169414, 83.08698123934053]\n",
+ "Volume of wet products = 85167 cfm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "from numpy.linalg import inv\n",
+ "A=numpy.array([[1, 1], [0.5, 1]])\n",
+ "B=numpy.array([[1],[ 0.9]])\n",
+ "x=0.9\n",
+ "#calculations\n",
+ "N2=x*79./21.\n",
+ "C=numpy.linalg.solve(A,B)\n",
+ "vec= ([ C[0], C[1], N2])\n",
+ "su=sum(vec)\n",
+ "b= len(vec)\n",
+ "vec2=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tvec2[i]=vec[i]/su *100.;\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('CO CO2 N2')\n",
+ "print (vec2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "CO CO2 N2\n",
+ "[ 4.56026059 18.24104235 77.19869707]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Moles of dry products per pound of coal\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "M=12.\n",
+ "#calcualtions\n",
+ "carbon=c-ref\n",
+ "car2=co2+co\n",
+ "wt=car2*M\n",
+ "amount=carbon/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Moles of dry products per pound of coal =\",amount,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of dry products per pound of coal = 0.496 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Number of moles of dry products per pound of fuel\n",
+ "#Initialization of variables\n",
+ "x1=0.128\n",
+ "x2=0.035\n",
+ "x3=0.002\n",
+ "M=12.\n",
+ "N=26.\n",
+ "#calculations\n",
+ "c=x1+x3\n",
+ "mole=12./c\n",
+ "wt=M*M+N\n",
+ "num=mole/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Number of moles of dry products per pound of fuel =\",num,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of dry products per pound of fuel = 0.543 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight of air and excess air percentage\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "o2=0.065\n",
+ "M=12\n",
+ "x=0.79\n",
+ "M=28.97\n",
+ "#calcualtions\n",
+ "n2=1-(co2+co+o2)\n",
+ "mol=n2/x\n",
+ "wt=mol*M\n",
+ "wt2=0.496\n",
+ "pou=wt2*wt\n",
+ "ta=10.27\n",
+ "EA=(pou-ta)/ta *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Weight of air per pound of fuel =\",pou,\"lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Excess air percentage =\",EA,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of air per pound of fuel = 14.81 lb\n",
+ "\n",
+ " Excess air percentage = 44.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_13_3.ipynb b/Thermodynamics_for_Engineers/Chapter_13_3.ipynb
new file mode 100755
index 00000000..388f458f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_13_3.ipynb
@@ -0,0 +1,667 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:390a761bad4c193a32a4fcd413c61db0b9a1c29b46bfad9c3be94c1204cb558b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 - Nonreactive and reactive gaseous mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mass and partial volumes of of oxygen, nitrogen\n",
+ "#Initialization of variables\n",
+ "P=70. #psia\n",
+ "Pt=110. #psia\n",
+ "V=20. #cu ft\n",
+ "R0=1545. #Universal gas constant\n",
+ "T=540. #R\n",
+ "M=32. #Molecular weight of Oxygen\n",
+ "M2=28. #Molecular weight of Nitrgoen\n",
+ "#calculations\n",
+ "N=P*V*144/(R0*T)\n",
+ "mo=M*N\n",
+ "Pn=Pt-P\n",
+ "N2=Pn*V*144/(R0*T)\n",
+ "mn=N2*M2\n",
+ "Vo=N*R0*T/(144*Pt)\n",
+ "Vn=N2*R0*T/(144*Pt)\n",
+ "Vn2=V-Vo\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Mass of oxygen =\",mo,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Mass of nitrogen =\",mn,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of oxygen =\",Vo,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of nitrogen =\",Vn,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Partial volume of nitrogen =\",Vn2,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of oxygen = 7.73 lb\n",
+ "\n",
+ " Mass of nitrogen = 3.87 lb\n",
+ "\n",
+ " Partial volume of oxygen = 12.73 cu ft\n",
+ "\n",
+ " Partial volume of nitrogen = 7.27 cu ft\n",
+ "\n",
+ " In case 2, Partial volume of nitrogen = 7.27 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P=50. #psia\n",
+ "V=4. #cu ft\n",
+ "dv=3. #cu ft\n",
+ "J=778.\n",
+ "T=560. #R\n",
+ "#calculation\n",
+ "ds= 144*P*V*math.log((V+dv)/V) /(J*T)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in entropy =\",ds,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.037 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=50. #psia\n",
+ "t1=100+460. #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "v1=4. #cu ft\n",
+ "p2=100. #psia\n",
+ "v2=3. #cu ft\n",
+ "t2=200.+460 #R\n",
+ "cv1=0.157\n",
+ "cv2=0.177\n",
+ "cpm=0.219\n",
+ "J=778.\n",
+ "#calculations\n",
+ "m1=144*p1*v1/(R1*t1)\n",
+ "m2=144*p2*v2/(R2*t2)\n",
+ "tf=(m1*cv1*(t1-460) + m2*cv2*(t2-460))/(m1*cv1+m2*cv2)\n",
+ "Po2=v1/(v1+v2) *(tf+460)/t1 *p1\n",
+ "ds=cpm*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.0528 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=30 #psia\n",
+ "t1=80.+460 #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "m1=20. #lb/min\n",
+ "p2=50. #psia\n",
+ "m2=35. #lb/min\n",
+ "t2=160.+460 #R\n",
+ "cp1=0.219\n",
+ "cp2=0.248\n",
+ "J=778\n",
+ "#calculations\n",
+ "tf=(m1*cp1*(t1-460) + m2*cp2*(t2-460))/(m1*cp1+m2*cp2)\n",
+ "Po2=m1/32/(m1/32+m2/28) *p1\n",
+ "ds=cp1*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"units/min\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 1.7754 units/min\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight per mole and also the gas constant\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.15, 0.08, 0.77])\n",
+ "M=([44, 32, 28])\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "y=numpy.zeros(b)\n",
+ "yt=numpy.zeros(b)\n",
+ "mt=numpy.zeros(b)\n",
+ "per=numpy.zeros(b)\n",
+ "wt=numpy.zeros(b)\n",
+ "R=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\ty[i]=x[i]/M[i]\n",
+ "\n",
+ "yt=sum(y)\n",
+ "for i in range (0,b):\n",
+ "\tmt[i]=y[i]/yt\n",
+ "\tper[i]=mt[i]*100\n",
+ "\n",
+ "wt=1. /yt\n",
+ "R=1545. /wt\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('percent by volume')\n",
+ "print (per)\n",
+ "print '%s %.1f %s' %(\"Weight per mole =\",wt,\" lb\")\n",
+ "print '%s %.1f' %(\"\\n Gas constant =\",R)\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "percent by volume\n",
+ "[ 10.20408163 7.4829932 82.31292517]\n",
+ "Weight per mole = 29.9 lb\n",
+ "\n",
+ " Gas constant = 51.6\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air and amount of nitrogen\n",
+ "#Initialization of variables\n",
+ "x1=0.885 #mole fraction of Ch4\n",
+ "x2=0.115 #mole fraction of c2h6\n",
+ "x3=0.4/100. #mole fraction of N2\n",
+ "n1=2. #Moles of Ch4\n",
+ "n2=3.5 #Moles of c2h6\n",
+ "n3=1. #moles of ch4 in case 2\n",
+ "n4=2. #moles of c2h6 in case 2\n",
+ "#calculations\n",
+ "y1=n1*x1\n",
+ "y2=n2*x2\n",
+ "y=y1+y2\n",
+ "vec2=([y1, y2])\n",
+ "air=y/0.21\n",
+ "y3=n3*x1\n",
+ "y4=n4*x2\n",
+ "yy=y3+y4\n",
+ "vec3=([y3 ,y4])\n",
+ "air2=y/0.21 *0.79\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air =\",air,\" moles of air per mole of fuel\")\n",
+ "print '%s' %(\"Oxygen analysis\")\n",
+ "print(vec2)\n",
+ "print '%s %.2f %s' %(\"\\n Amount of nitrogen =\",air2,\" moles of nitrogen per mole of fuel\")\n",
+ "print '%s' %(\"Dry analysis\")\n",
+ "print(vec3)\n",
+ "print '%s %.3f %s' %(\"total =\",yy,\" moles\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air = 10.35 moles of air per mole of fuel\n",
+ "Oxygen analysis\n",
+ "[1.77, 0.4025]\n",
+ "\n",
+ " Amount of nitrogen = 8.17 moles of nitrogen per mole of fuel\n",
+ "Dry analysis\n",
+ "[0.885, 0.23]\n",
+ "total = 1.115 moles\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air fuel ratio\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.74, 0.06, 0.01]) #mole fraction of C, H and S respectively\n",
+ "y=([8./3., 8, 1]) #Pounds O2 per pound substance of C,H and S respectively\n",
+ "oxy=0.08 #Oxygen in coal\n",
+ "z=0.232 #mass of coal\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "pou = numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tpou[i]=x[i]*y[i]\n",
+ "\n",
+ "tot=sum(pou)\n",
+ "oxy2=tot-oxy\n",
+ "air=oxy2/z\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air fuel ratio =\",air,\"lb of air per pound of coal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air fuel ratio = 10.27 lb of air per pound of coal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate air fuel ratio and also molal analysis\n",
+ "#Initialization of variables\n",
+ "o2=12.5 #moles of O2\n",
+ "h20=9 #moles of H2O\n",
+ "x=0.21 #Mole fraction of Oxygen in air\n",
+ "M=28.97 #Molar mass of air\n",
+ "M2=56. #molar mass of C4H8\n",
+ "M1=8*12+18. #molecular mass of c8h18\n",
+ "#calculations\n",
+ "air=o2/x\n",
+ "pound=air*M\n",
+ "AR=pound/M1\n",
+ "y1=h20/M2 *100.\n",
+ "y2=o2*(79./21) /M2 *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Air fuel ratio =\",AR,\"lb of air per pound of fuel\")\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n Molal or volumetric analysis is\",y1, \"percent of CO2 and\",y2, \"percent N2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 15.13 lb of air per pound of fuel\n",
+ "\n",
+ " Molal or volumetric analysis is 16.07 percent of CO2 and 83.97 percent N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis and also volume of wet products\n",
+ "#Initialization of variables\n",
+ "x=18.5 #Moles of O2\n",
+ "c=12. #Moles of CO2\n",
+ "vap=13. #moles of H2O\n",
+ "P=15. #psia\n",
+ "R=1545. #Universal gas constant\n",
+ "#calculations\n",
+ "excess=x*0.5\n",
+ "M=12*12+2*vap\n",
+ "n2=(x+excess)*79/21.\n",
+ "nt=n2+excess+c\n",
+ "dry=([c, x/2, n2]) \n",
+ "b= len(dry)\n",
+ "for i in range(0,b):\n",
+ "\tdry[i] = dry[i] /nt *100\n",
+ "\n",
+ "wet=nt+vap\n",
+ "fue=100./(M)\n",
+ "mol=wet*fue\n",
+ "vol=mol*R*1460./(144*P)\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis in percentage\")\n",
+ "print (' CO2 O2 N2')\n",
+ "print (dry)\n",
+ "print '%s %d %s' %(\"Volume of wet products =\",vol,\"cfm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis in percentage\n",
+ " CO2 O2 N2\n",
+ "[9.55088118249005, 7.362137578169414, 83.08698123934053]\n",
+ "Volume of wet products = 85167 cfm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "from numpy.linalg import inv\n",
+ "A=numpy.array([[1, 1], [0.5, 1]])\n",
+ "B=numpy.array([[1],[ 0.9]])\n",
+ "x=0.9\n",
+ "#calculations\n",
+ "N2=x*79./21.\n",
+ "C=numpy.linalg.solve(A,B)\n",
+ "vec= ([ C[0], C[1], N2])\n",
+ "su=sum(vec)\n",
+ "b= len(vec)\n",
+ "vec2=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tvec2[i]=vec[i]/su *100.;\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('CO CO2 N2')\n",
+ "print (vec2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "CO CO2 N2\n",
+ "[ 4.56026059 18.24104235 77.19869707]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Moles of dry products per pound of coal\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "M=12.\n",
+ "#calcualtions\n",
+ "carbon=c-ref\n",
+ "car2=co2+co\n",
+ "wt=car2*M\n",
+ "amount=carbon/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Moles of dry products per pound of coal =\",amount,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of dry products per pound of coal = 0.496 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Number of moles of dry products per pound of fuel\n",
+ "#Initialization of variables\n",
+ "x1=0.128\n",
+ "x2=0.035\n",
+ "x3=0.002\n",
+ "M=12.\n",
+ "N=26.\n",
+ "#calculations\n",
+ "c=x1+x3\n",
+ "mole=12./c\n",
+ "wt=M*M+N\n",
+ "num=mole/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Number of moles of dry products per pound of fuel =\",num,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of dry products per pound of fuel = 0.543 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight of air and excess air percentage\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "o2=0.065\n",
+ "M=12\n",
+ "x=0.79\n",
+ "M=28.97\n",
+ "#calcualtions\n",
+ "n2=1-(co2+co+o2)\n",
+ "mol=n2/x\n",
+ "wt=mol*M\n",
+ "wt2=0.496\n",
+ "pou=wt2*wt\n",
+ "ta=10.27\n",
+ "EA=(pou-ta)/ta *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Weight of air per pound of fuel =\",pou,\"lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Excess air percentage =\",EA,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of air per pound of fuel = 14.81 lb\n",
+ "\n",
+ " Excess air percentage = 44.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_13_4.ipynb b/Thermodynamics_for_Engineers/Chapter_13_4.ipynb
new file mode 100755
index 00000000..388f458f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_13_4.ipynb
@@ -0,0 +1,667 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:390a761bad4c193a32a4fcd413c61db0b9a1c29b46bfad9c3be94c1204cb558b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 - Nonreactive and reactive gaseous mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the mass and partial volumes of of oxygen, nitrogen\n",
+ "#Initialization of variables\n",
+ "P=70. #psia\n",
+ "Pt=110. #psia\n",
+ "V=20. #cu ft\n",
+ "R0=1545. #Universal gas constant\n",
+ "T=540. #R\n",
+ "M=32. #Molecular weight of Oxygen\n",
+ "M2=28. #Molecular weight of Nitrgoen\n",
+ "#calculations\n",
+ "N=P*V*144/(R0*T)\n",
+ "mo=M*N\n",
+ "Pn=Pt-P\n",
+ "N2=Pn*V*144/(R0*T)\n",
+ "mn=N2*M2\n",
+ "Vo=N*R0*T/(144*Pt)\n",
+ "Vn=N2*R0*T/(144*Pt)\n",
+ "Vn2=V-Vo\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Mass of oxygen =\",mo,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Mass of nitrogen =\",mn,\" lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of oxygen =\",Vo,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Partial volume of nitrogen =\",Vn,\" cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Partial volume of nitrogen =\",Vn2,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass of oxygen = 7.73 lb\n",
+ "\n",
+ " Mass of nitrogen = 3.87 lb\n",
+ "\n",
+ " Partial volume of oxygen = 12.73 cu ft\n",
+ "\n",
+ " Partial volume of nitrogen = 7.27 cu ft\n",
+ "\n",
+ " In case 2, Partial volume of nitrogen = 7.27 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "P=50. #psia\n",
+ "V=4. #cu ft\n",
+ "dv=3. #cu ft\n",
+ "J=778.\n",
+ "T=560. #R\n",
+ "#calculation\n",
+ "ds= 144*P*V*math.log((V+dv)/V) /(J*T)\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Change in entropy =\",ds,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.037 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=50. #psia\n",
+ "t1=100+460. #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "v1=4. #cu ft\n",
+ "p2=100. #psia\n",
+ "v2=3. #cu ft\n",
+ "t2=200.+460 #R\n",
+ "cv1=0.157\n",
+ "cv2=0.177\n",
+ "cpm=0.219\n",
+ "J=778.\n",
+ "#calculations\n",
+ "m1=144*p1*v1/(R1*t1)\n",
+ "m2=144*p2*v2/(R2*t2)\n",
+ "tf=(m1*cv1*(t1-460) + m2*cv2*(t2-460))/(m1*cv1+m2*cv2)\n",
+ "Po2=v1/(v1+v2) *(tf+460)/t1 *p1\n",
+ "ds=cpm*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"unit\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.0528 unit\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "p1=30 #psia\n",
+ "t1=80.+460 #R\n",
+ "R1=48.3\n",
+ "R2=55.2\n",
+ "m1=20. #lb/min\n",
+ "p2=50. #psia\n",
+ "m2=35. #lb/min\n",
+ "t2=160.+460 #R\n",
+ "cp1=0.219\n",
+ "cp2=0.248\n",
+ "J=778\n",
+ "#calculations\n",
+ "tf=(m1*cp1*(t1-460) + m2*cp2*(t2-460))/(m1*cp1+m2*cp2)\n",
+ "Po2=m1/32/(m1/32+m2/28) *p1\n",
+ "ds=cp1*math.log((tf+460)/t1) - R1/J *math.log(Po2/p1)\n",
+ "dss=ds*m1\n",
+ "#results\n",
+ "print '%s %.4f %s' %(\"Change in entropy =\",dss,\"units/min\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 1.7754 units/min\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight per mole and also the gas constant\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.15, 0.08, 0.77])\n",
+ "M=([44, 32, 28])\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "y=numpy.zeros(b)\n",
+ "yt=numpy.zeros(b)\n",
+ "mt=numpy.zeros(b)\n",
+ "per=numpy.zeros(b)\n",
+ "wt=numpy.zeros(b)\n",
+ "R=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\ty[i]=x[i]/M[i]\n",
+ "\n",
+ "yt=sum(y)\n",
+ "for i in range (0,b):\n",
+ "\tmt[i]=y[i]/yt\n",
+ "\tper[i]=mt[i]*100\n",
+ "\n",
+ "wt=1. /yt\n",
+ "R=1545. /wt\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('percent by volume')\n",
+ "print (per)\n",
+ "print '%s %.1f %s' %(\"Weight per mole =\",wt,\" lb\")\n",
+ "print '%s %.1f' %(\"\\n Gas constant =\",R)\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "percent by volume\n",
+ "[ 10.20408163 7.4829932 82.31292517]\n",
+ "Weight per mole = 29.9 lb\n",
+ "\n",
+ " Gas constant = 51.6\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air and amount of nitrogen\n",
+ "#Initialization of variables\n",
+ "x1=0.885 #mole fraction of Ch4\n",
+ "x2=0.115 #mole fraction of c2h6\n",
+ "x3=0.4/100. #mole fraction of N2\n",
+ "n1=2. #Moles of Ch4\n",
+ "n2=3.5 #Moles of c2h6\n",
+ "n3=1. #moles of ch4 in case 2\n",
+ "n4=2. #moles of c2h6 in case 2\n",
+ "#calculations\n",
+ "y1=n1*x1\n",
+ "y2=n2*x2\n",
+ "y=y1+y2\n",
+ "vec2=([y1, y2])\n",
+ "air=y/0.21\n",
+ "y3=n3*x1\n",
+ "y4=n4*x2\n",
+ "yy=y3+y4\n",
+ "vec3=([y3 ,y4])\n",
+ "air2=y/0.21 *0.79\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air =\",air,\" moles of air per mole of fuel\")\n",
+ "print '%s' %(\"Oxygen analysis\")\n",
+ "print(vec2)\n",
+ "print '%s %.2f %s' %(\"\\n Amount of nitrogen =\",air2,\" moles of nitrogen per mole of fuel\")\n",
+ "print '%s' %(\"Dry analysis\")\n",
+ "print(vec3)\n",
+ "print '%s %.3f %s' %(\"total =\",yy,\" moles\")\n",
+ "print '%s' %(\"The answer is a bit different fromm textbook due to rounding off error in textbook\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air = 10.35 moles of air per mole of fuel\n",
+ "Oxygen analysis\n",
+ "[1.77, 0.4025]\n",
+ "\n",
+ " Amount of nitrogen = 8.17 moles of nitrogen per mole of fuel\n",
+ "Dry analysis\n",
+ "[0.885, 0.23]\n",
+ "total = 1.115 moles\n",
+ "The answer is a bit different fromm textbook due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical air fuel ratio\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "x=([0.74, 0.06, 0.01]) #mole fraction of C, H and S respectively\n",
+ "y=([8./3., 8, 1]) #Pounds O2 per pound substance of C,H and S respectively\n",
+ "oxy=0.08 #Oxygen in coal\n",
+ "z=0.232 #mass of coal\n",
+ "#calculations\n",
+ "b=len(x)\n",
+ "pou = numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tpou[i]=x[i]*y[i]\n",
+ "\n",
+ "tot=sum(pou)\n",
+ "oxy2=tot-oxy\n",
+ "air=oxy2/z\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Theoretical air fuel ratio =\",air,\"lb of air per pound of coal\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical air fuel ratio = 10.27 lb of air per pound of coal\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate air fuel ratio and also molal analysis\n",
+ "#Initialization of variables\n",
+ "o2=12.5 #moles of O2\n",
+ "h20=9 #moles of H2O\n",
+ "x=0.21 #Mole fraction of Oxygen in air\n",
+ "M=28.97 #Molar mass of air\n",
+ "M2=56. #molar mass of C4H8\n",
+ "M1=8*12+18. #molecular mass of c8h18\n",
+ "#calculations\n",
+ "air=o2/x\n",
+ "pound=air*M\n",
+ "AR=pound/M1\n",
+ "y1=h20/M2 *100.\n",
+ "y2=o2*(79./21) /M2 *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Air fuel ratio =\",AR,\"lb of air per pound of fuel\")\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n Molal or volumetric analysis is\",y1, \"percent of CO2 and\",y2, \"percent N2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 15.13 lb of air per pound of fuel\n",
+ "\n",
+ " Molal or volumetric analysis is 16.07 percent of CO2 and 83.97 percent N2\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis and also volume of wet products\n",
+ "#Initialization of variables\n",
+ "x=18.5 #Moles of O2\n",
+ "c=12. #Moles of CO2\n",
+ "vap=13. #moles of H2O\n",
+ "P=15. #psia\n",
+ "R=1545. #Universal gas constant\n",
+ "#calculations\n",
+ "excess=x*0.5\n",
+ "M=12*12+2*vap\n",
+ "n2=(x+excess)*79/21.\n",
+ "nt=n2+excess+c\n",
+ "dry=([c, x/2, n2]) \n",
+ "b= len(dry)\n",
+ "for i in range(0,b):\n",
+ "\tdry[i] = dry[i] /nt *100\n",
+ "\n",
+ "wet=nt+vap\n",
+ "fue=100./(M)\n",
+ "mol=wet*fue\n",
+ "vol=mol*R*1460./(144*P)\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis in percentage\")\n",
+ "print (' CO2 O2 N2')\n",
+ "print (dry)\n",
+ "print '%s %d %s' %(\"Volume of wet products =\",vol,\"cfm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis in percentage\n",
+ " CO2 O2 N2\n",
+ "[9.55088118249005, 7.362137578169414, 83.08698123934053]\n",
+ "Volume of wet products = 85167 cfm\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volumetric analysis\n",
+ "#Initialization of variables\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "from numpy.linalg import inv\n",
+ "A=numpy.array([[1, 1], [0.5, 1]])\n",
+ "B=numpy.array([[1],[ 0.9]])\n",
+ "x=0.9\n",
+ "#calculations\n",
+ "N2=x*79./21.\n",
+ "C=numpy.linalg.solve(A,B)\n",
+ "vec= ([ C[0], C[1], N2])\n",
+ "su=sum(vec)\n",
+ "b= len(vec)\n",
+ "vec2=numpy.zeros(b)\n",
+ "for i in range (0,b):\n",
+ "\tvec2[i]=vec[i]/su *100.;\n",
+ "\n",
+ "#results\n",
+ "print '%s' %(\"Volumetric analysis\")\n",
+ "print '%s' %('CO CO2 N2')\n",
+ "print (vec2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric analysis\n",
+ "CO CO2 N2\n",
+ "[ 4.56026059 18.24104235 77.19869707]\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Moles of dry products per pound of coal\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "M=12.\n",
+ "#calcualtions\n",
+ "carbon=c-ref\n",
+ "car2=co2+co\n",
+ "wt=car2*M\n",
+ "amount=carbon/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Moles of dry products per pound of coal =\",amount,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Moles of dry products per pound of coal = 0.496 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Number of moles of dry products per pound of fuel\n",
+ "#Initialization of variables\n",
+ "x1=0.128\n",
+ "x2=0.035\n",
+ "x3=0.002\n",
+ "M=12.\n",
+ "N=26.\n",
+ "#calculations\n",
+ "c=x1+x3\n",
+ "mole=12./c\n",
+ "wt=M*M+N\n",
+ "num=mole/wt\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Number of moles of dry products per pound of fuel =\",num,\" mole\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of moles of dry products per pound of fuel = 0.543 mole\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 289"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the weight of air and excess air percentage\n",
+ "#Initialization of variables\n",
+ "c=0.74\n",
+ "ref=0.02\n",
+ "co2=0.12\n",
+ "co=0.1/100.\n",
+ "o2=0.065\n",
+ "M=12\n",
+ "x=0.79\n",
+ "M=28.97\n",
+ "#calcualtions\n",
+ "n2=1-(co2+co+o2)\n",
+ "mol=n2/x\n",
+ "wt=mol*M\n",
+ "wt2=0.496\n",
+ "pou=wt2*wt\n",
+ "ta=10.27\n",
+ "EA=(pou-ta)/ta *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Weight of air per pound of fuel =\",pou,\"lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Excess air percentage =\",EA,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight of air per pound of fuel = 14.81 lb\n",
+ "\n",
+ " Excess air percentage = 44.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_14.ipynb b/Thermodynamics_for_Engineers/Chapter_14.ipynb
new file mode 100755
index 00000000..2bdb47a9
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_14.ipynb
@@ -0,0 +1,394 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:57baf6d72b0852fbedefdd618b07a013f83f99bf6037a025a931e79491c28af0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 - Energies associated with chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the HHV and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "lhs=8.5 #moles of reactants\n",
+ "rhs=6 #moles of CO2\n",
+ "n=3. #moles of H2O\n",
+ "R=1545. #Universal gas constant\n",
+ "R2=18.016 #molar mass of water\n",
+ "J=778. #Work conversion constant\n",
+ "T=537. #R\n",
+ "T2=1050.4 #R\n",
+ "T3=991.3 #R\n",
+ "Qhp=1417041. #Btu/mol\n",
+ "#calculations\n",
+ "Qhpv=(lhs-rhs)*R*T/J\n",
+ "Qhv=Qhp-Qhpv\n",
+ "hfg=(rhs-n)*R2*T2\n",
+ "Qlp=Qhp-hfg\n",
+ "Qlpv=(lhs-rhs-n)*R/J *T\n",
+ "Qlv=Qlp-Qlpv\n",
+ "Qhlv=(rhs-n)*R2*T3\n",
+ "Qlv3=Qhv-Qhlv\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Higher heating value at constant volume =\",Qhv,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant pressure =\",Qlp,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 1,Lower heating value at constant volume =\",Qlv,\" Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 2,Lower heating value at constant volume =\",Qlv3,\"Btu/mol\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Higher heating value at constant volume = 1414374 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant pressure = 1360268 Btu/mol\n",
+ "\n",
+ " In case 1,Lower heating value at constant volume = 1360802 Btu/mol\n",
+ "\n",
+ " In case 2,Lower heating value at constant volume = 1360797 Btu/mol\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in chemical energy during complete combustion and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "no=7.5\n",
+ "n1=3.\n",
+ "n2=6.\n",
+ "Q=1360805. #Btu/mol\n",
+ "#calculations\n",
+ "Uo=337+no*85\n",
+ "Uf=n1*104+n2*118\n",
+ "delo= Q-(Uo-Uf)\n",
+ "Uo2=1656+no*402\n",
+ "Uf2=n1*490+n2*570\n",
+ "Qv=Uo2-Uf2+delo\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Change in chemical energy during complete combustion =\",delo,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant volume =\",Qv,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Change in chemical energy during complete combustion = 1360850 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant volume = 1360631 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat removed in the process\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "a=1 #moles of C6H6\n",
+ "b=7.5 #moles of O2 in reactant\n",
+ "c=1.875 #moles of excess O2\n",
+ "d=35.27 #moles of N2\n",
+ "e=3 #moles of H2O\n",
+ "flow=40. #lb/min\n",
+ "w=1360850. #Btu/mol\n",
+ "#calculations\n",
+ "U11=a*337\n",
+ "U12=(b+c)*85\n",
+ "U13=d*82\n",
+ "U14=(a+b+c+d)*1066\n",
+ "Ua1=U11+U12+U13+U14\n",
+ "U21=c*2539\n",
+ "U22=d*2416\n",
+ "U23=e*3009\n",
+ "U24=2*e*3852\n",
+ "U25=(c+d+e+2*e)*1985\n",
+ "Ua2=U21+U22+U23+U24+U25\n",
+ "Q=Ua1+w-Ua2\n",
+ "fuel=flow/(6*12+2.*e)\n",
+ "Q2=Q*fuel\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat removed =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Heat removed = 615294 Btu/min\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the furnace efficiency\n",
+ "#Initalization of variables\n",
+ "rate=10700. #lb/min\n",
+ "t2=97.90 \n",
+ "t1=33.05 \n",
+ "r1=46. #lb/min\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "Hv=1417041.\n",
+ "Qw=rate*(t2-t1)\n",
+ "Q=r1/(12*6+6) *Hv\n",
+ "eff=Qw/Q*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Furnace efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Furnace efficiency = 83.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "Lv=17730. #Btu/hr\n",
+ "H=2368089. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-Lv\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 25.88 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "mole=9.\n",
+ "H=2350359. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-mole*18.016*1050.4\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s' %(\"The answer in the textbook is a different due to rounding off error\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 27.90 percent\n",
+ "The answer in the textbook is a different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total available energy\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "hv=14000. #Btu/lb\n",
+ "ef=0.4\n",
+ "tmin=80. #F\n",
+ "tmid=300. #F\n",
+ "m=13. #lb\n",
+ "c=0.27\n",
+ "tmean=2300. #F\n",
+ "#calculations\n",
+ "heat=ef*hv\n",
+ "Qavail=heat*(tmean-tmin)/(tmean+460)\n",
+ "Q=m*c*(tmean-tmid)\n",
+ "Q2=Q- (tmin+460)*m*c*math.log((tmean+460)/(tmid+460))\n",
+ "tot=Qavail+Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Total available energy =\",tot,\" Btu/lb of fuel\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total available energy = 9079 Btu/lb of fuel\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max amount of work available\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 14-2,\")\n",
+ "G1=55750. #Btu/mol\n",
+ "co2=-169580. #Btu/mol\n",
+ "h2o=-98290. #Btu/mol\n",
+ "#calculations\n",
+ "G2=6*co2+3*h2o\n",
+ "avail=G1-G2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. amount of work =\",avail,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-2,\n",
+ "Max. amount of work = 1368100 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_14_1.ipynb b/Thermodynamics_for_Engineers/Chapter_14_1.ipynb
new file mode 100755
index 00000000..2bdb47a9
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_14_1.ipynb
@@ -0,0 +1,394 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:57baf6d72b0852fbedefdd618b07a013f83f99bf6037a025a931e79491c28af0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 - Energies associated with chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the HHV and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "lhs=8.5 #moles of reactants\n",
+ "rhs=6 #moles of CO2\n",
+ "n=3. #moles of H2O\n",
+ "R=1545. #Universal gas constant\n",
+ "R2=18.016 #molar mass of water\n",
+ "J=778. #Work conversion constant\n",
+ "T=537. #R\n",
+ "T2=1050.4 #R\n",
+ "T3=991.3 #R\n",
+ "Qhp=1417041. #Btu/mol\n",
+ "#calculations\n",
+ "Qhpv=(lhs-rhs)*R*T/J\n",
+ "Qhv=Qhp-Qhpv\n",
+ "hfg=(rhs-n)*R2*T2\n",
+ "Qlp=Qhp-hfg\n",
+ "Qlpv=(lhs-rhs-n)*R/J *T\n",
+ "Qlv=Qlp-Qlpv\n",
+ "Qhlv=(rhs-n)*R2*T3\n",
+ "Qlv3=Qhv-Qhlv\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Higher heating value at constant volume =\",Qhv,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant pressure =\",Qlp,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 1,Lower heating value at constant volume =\",Qlv,\" Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 2,Lower heating value at constant volume =\",Qlv3,\"Btu/mol\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Higher heating value at constant volume = 1414374 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant pressure = 1360268 Btu/mol\n",
+ "\n",
+ " In case 1,Lower heating value at constant volume = 1360802 Btu/mol\n",
+ "\n",
+ " In case 2,Lower heating value at constant volume = 1360797 Btu/mol\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in chemical energy during complete combustion and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "no=7.5\n",
+ "n1=3.\n",
+ "n2=6.\n",
+ "Q=1360805. #Btu/mol\n",
+ "#calculations\n",
+ "Uo=337+no*85\n",
+ "Uf=n1*104+n2*118\n",
+ "delo= Q-(Uo-Uf)\n",
+ "Uo2=1656+no*402\n",
+ "Uf2=n1*490+n2*570\n",
+ "Qv=Uo2-Uf2+delo\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Change in chemical energy during complete combustion =\",delo,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant volume =\",Qv,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Change in chemical energy during complete combustion = 1360850 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant volume = 1360631 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat removed in the process\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "a=1 #moles of C6H6\n",
+ "b=7.5 #moles of O2 in reactant\n",
+ "c=1.875 #moles of excess O2\n",
+ "d=35.27 #moles of N2\n",
+ "e=3 #moles of H2O\n",
+ "flow=40. #lb/min\n",
+ "w=1360850. #Btu/mol\n",
+ "#calculations\n",
+ "U11=a*337\n",
+ "U12=(b+c)*85\n",
+ "U13=d*82\n",
+ "U14=(a+b+c+d)*1066\n",
+ "Ua1=U11+U12+U13+U14\n",
+ "U21=c*2539\n",
+ "U22=d*2416\n",
+ "U23=e*3009\n",
+ "U24=2*e*3852\n",
+ "U25=(c+d+e+2*e)*1985\n",
+ "Ua2=U21+U22+U23+U24+U25\n",
+ "Q=Ua1+w-Ua2\n",
+ "fuel=flow/(6*12+2.*e)\n",
+ "Q2=Q*fuel\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat removed =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Heat removed = 615294 Btu/min\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the furnace efficiency\n",
+ "#Initalization of variables\n",
+ "rate=10700. #lb/min\n",
+ "t2=97.90 \n",
+ "t1=33.05 \n",
+ "r1=46. #lb/min\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "Hv=1417041.\n",
+ "Qw=rate*(t2-t1)\n",
+ "Q=r1/(12*6+6) *Hv\n",
+ "eff=Qw/Q*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Furnace efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Furnace efficiency = 83.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "Lv=17730. #Btu/hr\n",
+ "H=2368089. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-Lv\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 25.88 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "mole=9.\n",
+ "H=2350359. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-mole*18.016*1050.4\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s' %(\"The answer in the textbook is a different due to rounding off error\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 27.90 percent\n",
+ "The answer in the textbook is a different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total available energy\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "hv=14000. #Btu/lb\n",
+ "ef=0.4\n",
+ "tmin=80. #F\n",
+ "tmid=300. #F\n",
+ "m=13. #lb\n",
+ "c=0.27\n",
+ "tmean=2300. #F\n",
+ "#calculations\n",
+ "heat=ef*hv\n",
+ "Qavail=heat*(tmean-tmin)/(tmean+460)\n",
+ "Q=m*c*(tmean-tmid)\n",
+ "Q2=Q- (tmin+460)*m*c*math.log((tmean+460)/(tmid+460))\n",
+ "tot=Qavail+Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Total available energy =\",tot,\" Btu/lb of fuel\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total available energy = 9079 Btu/lb of fuel\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max amount of work available\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 14-2,\")\n",
+ "G1=55750. #Btu/mol\n",
+ "co2=-169580. #Btu/mol\n",
+ "h2o=-98290. #Btu/mol\n",
+ "#calculations\n",
+ "G2=6*co2+3*h2o\n",
+ "avail=G1-G2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. amount of work =\",avail,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-2,\n",
+ "Max. amount of work = 1368100 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_14_2.ipynb b/Thermodynamics_for_Engineers/Chapter_14_2.ipynb
new file mode 100755
index 00000000..2bdb47a9
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_14_2.ipynb
@@ -0,0 +1,394 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:57baf6d72b0852fbedefdd618b07a013f83f99bf6037a025a931e79491c28af0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 - Energies associated with chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the HHV and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "lhs=8.5 #moles of reactants\n",
+ "rhs=6 #moles of CO2\n",
+ "n=3. #moles of H2O\n",
+ "R=1545. #Universal gas constant\n",
+ "R2=18.016 #molar mass of water\n",
+ "J=778. #Work conversion constant\n",
+ "T=537. #R\n",
+ "T2=1050.4 #R\n",
+ "T3=991.3 #R\n",
+ "Qhp=1417041. #Btu/mol\n",
+ "#calculations\n",
+ "Qhpv=(lhs-rhs)*R*T/J\n",
+ "Qhv=Qhp-Qhpv\n",
+ "hfg=(rhs-n)*R2*T2\n",
+ "Qlp=Qhp-hfg\n",
+ "Qlpv=(lhs-rhs-n)*R/J *T\n",
+ "Qlv=Qlp-Qlpv\n",
+ "Qhlv=(rhs-n)*R2*T3\n",
+ "Qlv3=Qhv-Qhlv\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Higher heating value at constant volume =\",Qhv,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant pressure =\",Qlp,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 1,Lower heating value at constant volume =\",Qlv,\" Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 2,Lower heating value at constant volume =\",Qlv3,\"Btu/mol\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Higher heating value at constant volume = 1414374 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant pressure = 1360268 Btu/mol\n",
+ "\n",
+ " In case 1,Lower heating value at constant volume = 1360802 Btu/mol\n",
+ "\n",
+ " In case 2,Lower heating value at constant volume = 1360797 Btu/mol\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in chemical energy during complete combustion and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "no=7.5\n",
+ "n1=3.\n",
+ "n2=6.\n",
+ "Q=1360805. #Btu/mol\n",
+ "#calculations\n",
+ "Uo=337+no*85\n",
+ "Uf=n1*104+n2*118\n",
+ "delo= Q-(Uo-Uf)\n",
+ "Uo2=1656+no*402\n",
+ "Uf2=n1*490+n2*570\n",
+ "Qv=Uo2-Uf2+delo\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Change in chemical energy during complete combustion =\",delo,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant volume =\",Qv,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Change in chemical energy during complete combustion = 1360850 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant volume = 1360631 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat removed in the process\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "a=1 #moles of C6H6\n",
+ "b=7.5 #moles of O2 in reactant\n",
+ "c=1.875 #moles of excess O2\n",
+ "d=35.27 #moles of N2\n",
+ "e=3 #moles of H2O\n",
+ "flow=40. #lb/min\n",
+ "w=1360850. #Btu/mol\n",
+ "#calculations\n",
+ "U11=a*337\n",
+ "U12=(b+c)*85\n",
+ "U13=d*82\n",
+ "U14=(a+b+c+d)*1066\n",
+ "Ua1=U11+U12+U13+U14\n",
+ "U21=c*2539\n",
+ "U22=d*2416\n",
+ "U23=e*3009\n",
+ "U24=2*e*3852\n",
+ "U25=(c+d+e+2*e)*1985\n",
+ "Ua2=U21+U22+U23+U24+U25\n",
+ "Q=Ua1+w-Ua2\n",
+ "fuel=flow/(6*12+2.*e)\n",
+ "Q2=Q*fuel\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat removed =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Heat removed = 615294 Btu/min\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the furnace efficiency\n",
+ "#Initalization of variables\n",
+ "rate=10700. #lb/min\n",
+ "t2=97.90 \n",
+ "t1=33.05 \n",
+ "r1=46. #lb/min\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "Hv=1417041.\n",
+ "Qw=rate*(t2-t1)\n",
+ "Q=r1/(12*6+6) *Hv\n",
+ "eff=Qw/Q*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Furnace efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Furnace efficiency = 83.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "Lv=17730. #Btu/hr\n",
+ "H=2368089. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-Lv\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 25.88 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "mole=9.\n",
+ "H=2350359. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-mole*18.016*1050.4\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s' %(\"The answer in the textbook is a different due to rounding off error\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 27.90 percent\n",
+ "The answer in the textbook is a different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total available energy\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "hv=14000. #Btu/lb\n",
+ "ef=0.4\n",
+ "tmin=80. #F\n",
+ "tmid=300. #F\n",
+ "m=13. #lb\n",
+ "c=0.27\n",
+ "tmean=2300. #F\n",
+ "#calculations\n",
+ "heat=ef*hv\n",
+ "Qavail=heat*(tmean-tmin)/(tmean+460)\n",
+ "Q=m*c*(tmean-tmid)\n",
+ "Q2=Q- (tmin+460)*m*c*math.log((tmean+460)/(tmid+460))\n",
+ "tot=Qavail+Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Total available energy =\",tot,\" Btu/lb of fuel\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total available energy = 9079 Btu/lb of fuel\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max amount of work available\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 14-2,\")\n",
+ "G1=55750. #Btu/mol\n",
+ "co2=-169580. #Btu/mol\n",
+ "h2o=-98290. #Btu/mol\n",
+ "#calculations\n",
+ "G2=6*co2+3*h2o\n",
+ "avail=G1-G2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. amount of work =\",avail,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-2,\n",
+ "Max. amount of work = 1368100 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_14_3.ipynb b/Thermodynamics_for_Engineers/Chapter_14_3.ipynb
new file mode 100755
index 00000000..2bdb47a9
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_14_3.ipynb
@@ -0,0 +1,394 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:57baf6d72b0852fbedefdd618b07a013f83f99bf6037a025a931e79491c28af0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 - Energies associated with chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the HHV and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "lhs=8.5 #moles of reactants\n",
+ "rhs=6 #moles of CO2\n",
+ "n=3. #moles of H2O\n",
+ "R=1545. #Universal gas constant\n",
+ "R2=18.016 #molar mass of water\n",
+ "J=778. #Work conversion constant\n",
+ "T=537. #R\n",
+ "T2=1050.4 #R\n",
+ "T3=991.3 #R\n",
+ "Qhp=1417041. #Btu/mol\n",
+ "#calculations\n",
+ "Qhpv=(lhs-rhs)*R*T/J\n",
+ "Qhv=Qhp-Qhpv\n",
+ "hfg=(rhs-n)*R2*T2\n",
+ "Qlp=Qhp-hfg\n",
+ "Qlpv=(lhs-rhs-n)*R/J *T\n",
+ "Qlv=Qlp-Qlpv\n",
+ "Qhlv=(rhs-n)*R2*T3\n",
+ "Qlv3=Qhv-Qhlv\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Higher heating value at constant volume =\",Qhv,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant pressure =\",Qlp,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 1,Lower heating value at constant volume =\",Qlv,\" Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 2,Lower heating value at constant volume =\",Qlv3,\"Btu/mol\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Higher heating value at constant volume = 1414374 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant pressure = 1360268 Btu/mol\n",
+ "\n",
+ " In case 1,Lower heating value at constant volume = 1360802 Btu/mol\n",
+ "\n",
+ " In case 2,Lower heating value at constant volume = 1360797 Btu/mol\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in chemical energy during complete combustion and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "no=7.5\n",
+ "n1=3.\n",
+ "n2=6.\n",
+ "Q=1360805. #Btu/mol\n",
+ "#calculations\n",
+ "Uo=337+no*85\n",
+ "Uf=n1*104+n2*118\n",
+ "delo= Q-(Uo-Uf)\n",
+ "Uo2=1656+no*402\n",
+ "Uf2=n1*490+n2*570\n",
+ "Qv=Uo2-Uf2+delo\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Change in chemical energy during complete combustion =\",delo,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant volume =\",Qv,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Change in chemical energy during complete combustion = 1360850 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant volume = 1360631 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat removed in the process\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "a=1 #moles of C6H6\n",
+ "b=7.5 #moles of O2 in reactant\n",
+ "c=1.875 #moles of excess O2\n",
+ "d=35.27 #moles of N2\n",
+ "e=3 #moles of H2O\n",
+ "flow=40. #lb/min\n",
+ "w=1360850. #Btu/mol\n",
+ "#calculations\n",
+ "U11=a*337\n",
+ "U12=(b+c)*85\n",
+ "U13=d*82\n",
+ "U14=(a+b+c+d)*1066\n",
+ "Ua1=U11+U12+U13+U14\n",
+ "U21=c*2539\n",
+ "U22=d*2416\n",
+ "U23=e*3009\n",
+ "U24=2*e*3852\n",
+ "U25=(c+d+e+2*e)*1985\n",
+ "Ua2=U21+U22+U23+U24+U25\n",
+ "Q=Ua1+w-Ua2\n",
+ "fuel=flow/(6*12+2.*e)\n",
+ "Q2=Q*fuel\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat removed =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Heat removed = 615294 Btu/min\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the furnace efficiency\n",
+ "#Initalization of variables\n",
+ "rate=10700. #lb/min\n",
+ "t2=97.90 \n",
+ "t1=33.05 \n",
+ "r1=46. #lb/min\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "Hv=1417041.\n",
+ "Qw=rate*(t2-t1)\n",
+ "Q=r1/(12*6+6) *Hv\n",
+ "eff=Qw/Q*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Furnace efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Furnace efficiency = 83.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "Lv=17730. #Btu/hr\n",
+ "H=2368089. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-Lv\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 25.88 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "mole=9.\n",
+ "H=2350359. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-mole*18.016*1050.4\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s' %(\"The answer in the textbook is a different due to rounding off error\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 27.90 percent\n",
+ "The answer in the textbook is a different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total available energy\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "hv=14000. #Btu/lb\n",
+ "ef=0.4\n",
+ "tmin=80. #F\n",
+ "tmid=300. #F\n",
+ "m=13. #lb\n",
+ "c=0.27\n",
+ "tmean=2300. #F\n",
+ "#calculations\n",
+ "heat=ef*hv\n",
+ "Qavail=heat*(tmean-tmin)/(tmean+460)\n",
+ "Q=m*c*(tmean-tmid)\n",
+ "Q2=Q- (tmin+460)*m*c*math.log((tmean+460)/(tmid+460))\n",
+ "tot=Qavail+Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Total available energy =\",tot,\" Btu/lb of fuel\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total available energy = 9079 Btu/lb of fuel\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max amount of work available\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 14-2,\")\n",
+ "G1=55750. #Btu/mol\n",
+ "co2=-169580. #Btu/mol\n",
+ "h2o=-98290. #Btu/mol\n",
+ "#calculations\n",
+ "G2=6*co2+3*h2o\n",
+ "avail=G1-G2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. amount of work =\",avail,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-2,\n",
+ "Max. amount of work = 1368100 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_14_4.ipynb b/Thermodynamics_for_Engineers/Chapter_14_4.ipynb
new file mode 100755
index 00000000..2bdb47a9
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_14_4.ipynb
@@ -0,0 +1,394 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:57baf6d72b0852fbedefdd618b07a013f83f99bf6037a025a931e79491c28af0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 - Energies associated with chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the HHV and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "lhs=8.5 #moles of reactants\n",
+ "rhs=6 #moles of CO2\n",
+ "n=3. #moles of H2O\n",
+ "R=1545. #Universal gas constant\n",
+ "R2=18.016 #molar mass of water\n",
+ "J=778. #Work conversion constant\n",
+ "T=537. #R\n",
+ "T2=1050.4 #R\n",
+ "T3=991.3 #R\n",
+ "Qhp=1417041. #Btu/mol\n",
+ "#calculations\n",
+ "Qhpv=(lhs-rhs)*R*T/J\n",
+ "Qhv=Qhp-Qhpv\n",
+ "hfg=(rhs-n)*R2*T2\n",
+ "Qlp=Qhp-hfg\n",
+ "Qlpv=(lhs-rhs-n)*R/J *T\n",
+ "Qlv=Qlp-Qlpv\n",
+ "Qhlv=(rhs-n)*R2*T3\n",
+ "Qlv3=Qhv-Qhlv\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Higher heating value at constant volume =\",Qhv,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant pressure =\",Qlp,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 1,Lower heating value at constant volume =\",Qlv,\" Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n In case 2,Lower heating value at constant volume =\",Qlv3,\"Btu/mol\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Higher heating value at constant volume = 1414374 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant pressure = 1360268 Btu/mol\n",
+ "\n",
+ " In case 1,Lower heating value at constant volume = 1360802 Btu/mol\n",
+ "\n",
+ " In case 2,Lower heating value at constant volume = 1360797 Btu/mol\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 301"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the change in chemical energy during complete combustion and LHV at constant volume\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "no=7.5\n",
+ "n1=3.\n",
+ "n2=6.\n",
+ "Q=1360805. #Btu/mol\n",
+ "#calculations\n",
+ "Uo=337+no*85\n",
+ "Uf=n1*104+n2*118\n",
+ "delo= Q-(Uo-Uf)\n",
+ "Uo2=1656+no*402\n",
+ "Uf2=n1*490+n2*570\n",
+ "Qv=Uo2-Uf2+delo\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Change in chemical energy during complete combustion =\",delo,\"Btu/mol\")\n",
+ "print '%s %d %s' %(\"\\n Lower heating value at constant volume =\",Qv,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Change in chemical energy during complete combustion = 1360850 Btu/mol\n",
+ "\n",
+ " Lower heating value at constant volume = 1360631 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat removed in the process\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 5-4,\")\n",
+ "a=1 #moles of C6H6\n",
+ "b=7.5 #moles of O2 in reactant\n",
+ "c=1.875 #moles of excess O2\n",
+ "d=35.27 #moles of N2\n",
+ "e=3 #moles of H2O\n",
+ "flow=40. #lb/min\n",
+ "w=1360850. #Btu/mol\n",
+ "#calculations\n",
+ "U11=a*337\n",
+ "U12=(b+c)*85\n",
+ "U13=d*82\n",
+ "U14=(a+b+c+d)*1066\n",
+ "Ua1=U11+U12+U13+U14\n",
+ "U21=c*2539\n",
+ "U22=d*2416\n",
+ "U23=e*3009\n",
+ "U24=2*e*3852\n",
+ "U25=(c+d+e+2*e)*1985\n",
+ "Ua2=U21+U22+U23+U24+U25\n",
+ "Q=Ua1+w-Ua2\n",
+ "fuel=flow/(6*12+2.*e)\n",
+ "Q2=Q*fuel\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat removed =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answers might differ a bit from textbook due to rounding off error.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-4,\n",
+ "Heat removed = 615294 Btu/min\n",
+ "The answers might differ a bit from textbook due to rounding off error.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the furnace efficiency\n",
+ "#Initalization of variables\n",
+ "rate=10700. #lb/min\n",
+ "t2=97.90 \n",
+ "t1=33.05 \n",
+ "r1=46. #lb/min\n",
+ "#calculations\n",
+ "print '%s' %(\"From steam tables,\")\n",
+ "Hv=1417041.\n",
+ "Qw=rate*(t2-t1)\n",
+ "Q=r1/(12*6+6) *Hv\n",
+ "eff=Qw/Q*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Furnace efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables,\n",
+ "Furnace efficiency = 83.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "Lv=17730. #Btu/hr\n",
+ "H=2368089. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-Lv\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 25.88 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 306"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "rate=94. #lb/hr\n",
+ "hp=197. #hp\n",
+ "c=8.\n",
+ "h=18.\n",
+ "mole=9.\n",
+ "H=2350359. #Btu/hr\n",
+ "#calculations\n",
+ "amount=rate*c/12 +h\n",
+ "amount=0.824\n",
+ "Lvv=H-mole*18.016*1050.4\n",
+ "eff=hp*2544/(amount*Lvv) *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s' %(\"The answer in the textbook is a different due to rounding off error\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 27.90 percent\n",
+ "The answer in the textbook is a different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 307"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total available energy\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "hv=14000. #Btu/lb\n",
+ "ef=0.4\n",
+ "tmin=80. #F\n",
+ "tmid=300. #F\n",
+ "m=13. #lb\n",
+ "c=0.27\n",
+ "tmean=2300. #F\n",
+ "#calculations\n",
+ "heat=ef*hv\n",
+ "Qavail=heat*(tmean-tmin)/(tmean+460)\n",
+ "Q=m*c*(tmean-tmid)\n",
+ "Q2=Q- (tmin+460)*m*c*math.log((tmean+460)/(tmid+460))\n",
+ "tot=Qavail+Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Total available energy =\",tot,\" Btu/lb of fuel\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total available energy = 9079 Btu/lb of fuel\n",
+ "The answer is a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 308"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max amount of work available\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"From table 14-2,\")\n",
+ "G1=55750. #Btu/mol\n",
+ "co2=-169580. #Btu/mol\n",
+ "h2o=-98290. #Btu/mol\n",
+ "#calculations\n",
+ "G2=6*co2+3*h2o\n",
+ "avail=G1-G2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. amount of work =\",avail,\"Btu/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 14-2,\n",
+ "Max. amount of work = 1368100 Btu/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_15.ipynb b/Thermodynamics_for_Engineers/Chapter_15.ipynb
new file mode 100755
index 00000000..25cf3bae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_15.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d798b16416897dedbfd57aff5c233c1f7e9c52a7f0081b45c972d6ab47468c7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 - Thermodynamics of chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the amount of dissociation\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "kp=math.pow(10,(1.45))\n",
+ "#calculations\n",
+ "s=[1-kp*kp , 0, -3, 2]\n",
+ "vec=numpy.roots(s)\n",
+ "X=numpy.real(vec[2])\n",
+ "xper=X*100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Amount of dissociaton =\",xper,\"percent\")\n",
+ "print '%s %.3f %s %.3f %s %.3f %s' %(\"\\n Of each original mole of CO2, there will be\",X,\"mole of CO \",X/2.,\" mol of Oxygen and\",(1-X),\"mol of CO2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of dissociaton = 12.7 percent\n",
+ "\n",
+ " Of each original mole of CO2, there will be 0.127 mole of CO 0.063 mol of Oxygen and 0.873 mol of CO2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. temperature reached\n",
+ "#Initalization of variables\n",
+ "U=121200. #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27589. #Btu/mol\n",
+ "Uco22=57875. #Btu/mol\n",
+ "Un22=21036. #Btu/mol\n",
+ "T1=5000. #R\n",
+ "T2=5500. #R\n",
+ "#calculations\n",
+ "Ut1=Uco2+1.88*Un2\n",
+ "Ut2=Uco22 + 1.88*Un22\n",
+ "print '%s' %(\"By extrapolation,\")\n",
+ "Tx=5710 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature reached =\",Tx,\"R\")\n",
+ "print '%s' %(\"The calculation for Ut2 is wrong in textbook. Please use a calculator.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By extrapolation,\n",
+ "Max. Temperature reached = 5710 R\n",
+ "The calculation for Ut2 is wrong in textbook. Please use a calculator.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. obtainable temperature\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"By trial and error,\")\n",
+ "import math\n",
+ "X=0.201\n",
+ "X1=0.2\n",
+ "R=59.3 #universal gas constant\n",
+ "T=5000 #R\n",
+ "U=121200 #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27907. #Btu/mol\n",
+ "U3=29616. #Btu/mol\n",
+ "U4=27589. #Btu/mol\n",
+ "#calculations\n",
+ "kp1=R*(1-X1)/math.pow(X1,1.5) /math.pow(T,0.5)\n",
+ "kp2=R*(1-X)/math.pow(X,1.5) /math.pow(T,0.5)\n",
+ "q=(1-X)*Uco2 + X*Un2+ X/2 *U3 +1.88*U4 + X*U\n",
+ "print '%s' %(\"Interpolating between T=4500 R and T=5000 R, we get\")\n",
+ "T2=4907 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. obtainable temperature =\",T2,\" R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By trial and error,\n",
+ "Interpolating between T=4500 R and T=5000 R, we get\n",
+ "Max. obtainable temperature = 4907 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_15_1.ipynb b/Thermodynamics_for_Engineers/Chapter_15_1.ipynb
new file mode 100755
index 00000000..25cf3bae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_15_1.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d798b16416897dedbfd57aff5c233c1f7e9c52a7f0081b45c972d6ab47468c7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 - Thermodynamics of chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the amount of dissociation\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "kp=math.pow(10,(1.45))\n",
+ "#calculations\n",
+ "s=[1-kp*kp , 0, -3, 2]\n",
+ "vec=numpy.roots(s)\n",
+ "X=numpy.real(vec[2])\n",
+ "xper=X*100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Amount of dissociaton =\",xper,\"percent\")\n",
+ "print '%s %.3f %s %.3f %s %.3f %s' %(\"\\n Of each original mole of CO2, there will be\",X,\"mole of CO \",X/2.,\" mol of Oxygen and\",(1-X),\"mol of CO2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of dissociaton = 12.7 percent\n",
+ "\n",
+ " Of each original mole of CO2, there will be 0.127 mole of CO 0.063 mol of Oxygen and 0.873 mol of CO2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. temperature reached\n",
+ "#Initalization of variables\n",
+ "U=121200. #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27589. #Btu/mol\n",
+ "Uco22=57875. #Btu/mol\n",
+ "Un22=21036. #Btu/mol\n",
+ "T1=5000. #R\n",
+ "T2=5500. #R\n",
+ "#calculations\n",
+ "Ut1=Uco2+1.88*Un2\n",
+ "Ut2=Uco22 + 1.88*Un22\n",
+ "print '%s' %(\"By extrapolation,\")\n",
+ "Tx=5710 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature reached =\",Tx,\"R\")\n",
+ "print '%s' %(\"The calculation for Ut2 is wrong in textbook. Please use a calculator.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By extrapolation,\n",
+ "Max. Temperature reached = 5710 R\n",
+ "The calculation for Ut2 is wrong in textbook. Please use a calculator.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. obtainable temperature\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"By trial and error,\")\n",
+ "import math\n",
+ "X=0.201\n",
+ "X1=0.2\n",
+ "R=59.3 #universal gas constant\n",
+ "T=5000 #R\n",
+ "U=121200 #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27907. #Btu/mol\n",
+ "U3=29616. #Btu/mol\n",
+ "U4=27589. #Btu/mol\n",
+ "#calculations\n",
+ "kp1=R*(1-X1)/math.pow(X1,1.5) /math.pow(T,0.5)\n",
+ "kp2=R*(1-X)/math.pow(X,1.5) /math.pow(T,0.5)\n",
+ "q=(1-X)*Uco2 + X*Un2+ X/2 *U3 +1.88*U4 + X*U\n",
+ "print '%s' %(\"Interpolating between T=4500 R and T=5000 R, we get\")\n",
+ "T2=4907 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. obtainable temperature =\",T2,\" R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By trial and error,\n",
+ "Interpolating between T=4500 R and T=5000 R, we get\n",
+ "Max. obtainable temperature = 4907 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_15_2.ipynb b/Thermodynamics_for_Engineers/Chapter_15_2.ipynb
new file mode 100755
index 00000000..25cf3bae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_15_2.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d798b16416897dedbfd57aff5c233c1f7e9c52a7f0081b45c972d6ab47468c7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 - Thermodynamics of chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the amount of dissociation\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "kp=math.pow(10,(1.45))\n",
+ "#calculations\n",
+ "s=[1-kp*kp , 0, -3, 2]\n",
+ "vec=numpy.roots(s)\n",
+ "X=numpy.real(vec[2])\n",
+ "xper=X*100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Amount of dissociaton =\",xper,\"percent\")\n",
+ "print '%s %.3f %s %.3f %s %.3f %s' %(\"\\n Of each original mole of CO2, there will be\",X,\"mole of CO \",X/2.,\" mol of Oxygen and\",(1-X),\"mol of CO2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of dissociaton = 12.7 percent\n",
+ "\n",
+ " Of each original mole of CO2, there will be 0.127 mole of CO 0.063 mol of Oxygen and 0.873 mol of CO2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. temperature reached\n",
+ "#Initalization of variables\n",
+ "U=121200. #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27589. #Btu/mol\n",
+ "Uco22=57875. #Btu/mol\n",
+ "Un22=21036. #Btu/mol\n",
+ "T1=5000. #R\n",
+ "T2=5500. #R\n",
+ "#calculations\n",
+ "Ut1=Uco2+1.88*Un2\n",
+ "Ut2=Uco22 + 1.88*Un22\n",
+ "print '%s' %(\"By extrapolation,\")\n",
+ "Tx=5710 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature reached =\",Tx,\"R\")\n",
+ "print '%s' %(\"The calculation for Ut2 is wrong in textbook. Please use a calculator.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By extrapolation,\n",
+ "Max. Temperature reached = 5710 R\n",
+ "The calculation for Ut2 is wrong in textbook. Please use a calculator.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. obtainable temperature\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"By trial and error,\")\n",
+ "import math\n",
+ "X=0.201\n",
+ "X1=0.2\n",
+ "R=59.3 #universal gas constant\n",
+ "T=5000 #R\n",
+ "U=121200 #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27907. #Btu/mol\n",
+ "U3=29616. #Btu/mol\n",
+ "U4=27589. #Btu/mol\n",
+ "#calculations\n",
+ "kp1=R*(1-X1)/math.pow(X1,1.5) /math.pow(T,0.5)\n",
+ "kp2=R*(1-X)/math.pow(X,1.5) /math.pow(T,0.5)\n",
+ "q=(1-X)*Uco2 + X*Un2+ X/2 *U3 +1.88*U4 + X*U\n",
+ "print '%s' %(\"Interpolating between T=4500 R and T=5000 R, we get\")\n",
+ "T2=4907 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. obtainable temperature =\",T2,\" R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By trial and error,\n",
+ "Interpolating between T=4500 R and T=5000 R, we get\n",
+ "Max. obtainable temperature = 4907 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_15_3.ipynb b/Thermodynamics_for_Engineers/Chapter_15_3.ipynb
new file mode 100755
index 00000000..25cf3bae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_15_3.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d798b16416897dedbfd57aff5c233c1f7e9c52a7f0081b45c972d6ab47468c7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 - Thermodynamics of chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the amount of dissociation\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "kp=math.pow(10,(1.45))\n",
+ "#calculations\n",
+ "s=[1-kp*kp , 0, -3, 2]\n",
+ "vec=numpy.roots(s)\n",
+ "X=numpy.real(vec[2])\n",
+ "xper=X*100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Amount of dissociaton =\",xper,\"percent\")\n",
+ "print '%s %.3f %s %.3f %s %.3f %s' %(\"\\n Of each original mole of CO2, there will be\",X,\"mole of CO \",X/2.,\" mol of Oxygen and\",(1-X),\"mol of CO2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of dissociaton = 12.7 percent\n",
+ "\n",
+ " Of each original mole of CO2, there will be 0.127 mole of CO 0.063 mol of Oxygen and 0.873 mol of CO2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. temperature reached\n",
+ "#Initalization of variables\n",
+ "U=121200. #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27589. #Btu/mol\n",
+ "Uco22=57875. #Btu/mol\n",
+ "Un22=21036. #Btu/mol\n",
+ "T1=5000. #R\n",
+ "T2=5500. #R\n",
+ "#calculations\n",
+ "Ut1=Uco2+1.88*Un2\n",
+ "Ut2=Uco22 + 1.88*Un22\n",
+ "print '%s' %(\"By extrapolation,\")\n",
+ "Tx=5710 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature reached =\",Tx,\"R\")\n",
+ "print '%s' %(\"The calculation for Ut2 is wrong in textbook. Please use a calculator.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By extrapolation,\n",
+ "Max. Temperature reached = 5710 R\n",
+ "The calculation for Ut2 is wrong in textbook. Please use a calculator.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. obtainable temperature\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"By trial and error,\")\n",
+ "import math\n",
+ "X=0.201\n",
+ "X1=0.2\n",
+ "R=59.3 #universal gas constant\n",
+ "T=5000 #R\n",
+ "U=121200 #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27907. #Btu/mol\n",
+ "U3=29616. #Btu/mol\n",
+ "U4=27589. #Btu/mol\n",
+ "#calculations\n",
+ "kp1=R*(1-X1)/math.pow(X1,1.5) /math.pow(T,0.5)\n",
+ "kp2=R*(1-X)/math.pow(X,1.5) /math.pow(T,0.5)\n",
+ "q=(1-X)*Uco2 + X*Un2+ X/2 *U3 +1.88*U4 + X*U\n",
+ "print '%s' %(\"Interpolating between T=4500 R and T=5000 R, we get\")\n",
+ "T2=4907 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. obtainable temperature =\",T2,\" R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By trial and error,\n",
+ "Interpolating between T=4500 R and T=5000 R, we get\n",
+ "Max. obtainable temperature = 4907 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_15_4.ipynb b/Thermodynamics_for_Engineers/Chapter_15_4.ipynb
new file mode 100755
index 00000000..25cf3bae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_15_4.ipynb
@@ -0,0 +1,158 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d798b16416897dedbfd57aff5c233c1f7e9c52a7f0081b45c972d6ab47468c7c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15 - Thermodynamics of chemical reactions"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the amount of dissociation\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "kp=math.pow(10,(1.45))\n",
+ "#calculations\n",
+ "s=[1-kp*kp , 0, -3, 2]\n",
+ "vec=numpy.roots(s)\n",
+ "X=numpy.real(vec[2])\n",
+ "xper=X*100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Amount of dissociaton =\",xper,\"percent\")\n",
+ "print '%s %.3f %s %.3f %s %.3f %s' %(\"\\n Of each original mole of CO2, there will be\",X,\"mole of CO \",X/2.,\" mol of Oxygen and\",(1-X),\"mol of CO2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Amount of dissociaton = 12.7 percent\n",
+ "\n",
+ " Of each original mole of CO2, there will be 0.127 mole of CO 0.063 mol of Oxygen and 0.873 mol of CO2\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. temperature reached\n",
+ "#Initalization of variables\n",
+ "U=121200. #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27589. #Btu/mol\n",
+ "Uco22=57875. #Btu/mol\n",
+ "Un22=21036. #Btu/mol\n",
+ "T1=5000. #R\n",
+ "T2=5500. #R\n",
+ "#calculations\n",
+ "Ut1=Uco2+1.88*Un2\n",
+ "Ut2=Uco22 + 1.88*Un22\n",
+ "print '%s' %(\"By extrapolation,\")\n",
+ "Tx=5710 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature reached =\",Tx,\"R\")\n",
+ "print '%s' %(\"The calculation for Ut2 is wrong in textbook. Please use a calculator.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By extrapolation,\n",
+ "Max. Temperature reached = 5710 R\n",
+ "The calculation for Ut2 is wrong in textbook. Please use a calculator.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. obtainable temperature\n",
+ "#Initalization of variables\n",
+ "print '%s' %(\"By trial and error,\")\n",
+ "import math\n",
+ "X=0.201\n",
+ "X1=0.2\n",
+ "R=59.3 #universal gas constant\n",
+ "T=5000 #R\n",
+ "U=121200 #Btu/mol\n",
+ "Uco2=51635. #Btu/mol\n",
+ "Un2=27907. #Btu/mol\n",
+ "U3=29616. #Btu/mol\n",
+ "U4=27589. #Btu/mol\n",
+ "#calculations\n",
+ "kp1=R*(1-X1)/math.pow(X1,1.5) /math.pow(T,0.5)\n",
+ "kp2=R*(1-X)/math.pow(X,1.5) /math.pow(T,0.5)\n",
+ "q=(1-X)*Uco2 + X*Un2+ X/2 *U3 +1.88*U4 + X*U\n",
+ "print '%s' %(\"Interpolating between T=4500 R and T=5000 R, we get\")\n",
+ "T2=4907 #R\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. obtainable temperature =\",T2,\" R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By trial and error,\n",
+ "Interpolating between T=4500 R and T=5000 R, we get\n",
+ "Max. obtainable temperature = 4907 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_16.ipynb b/Thermodynamics_for_Engineers/Chapter_16.ipynb
new file mode 100755
index 00000000..efa01670
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_16.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dc464f4ef08695f8cec0668d0c21cb89b005d8581737f852d592d0e688b3aa48"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 - Gas cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. pressure, temperature and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "cr=9.\n",
+ "p1=14. #psia\n",
+ "t1=80.+460 #R\n",
+ "n=1.4\n",
+ "heat=800. #Btu\n",
+ "c=0.1715\n",
+ "R=53.35\n",
+ "J=778.\n",
+ "#calculations\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "t3=heat/c +t2\n",
+ "p3=p2*t3/t2\n",
+ "eff=(1-1/math.pow(cr,(n-1)))*100\n",
+ "t4=t3/math.pow(cr,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "cyclework=heat-Qr\n",
+ "eff2= cyclework/heat *100\n",
+ "V1=R*t1/(144*p1)\n",
+ "pd=(1-1/cr)*V1\n",
+ "mep=cyclework*J/(pd*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. temperature =\",t3,\"R\")\n",
+ "print '%s %d %s' %(\"\\n Max. pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 1,Thermal efficiency =\",eff,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 2,Thermal efficiency =\",eff2,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure mep =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. temperature = 5965 R\n",
+ "\n",
+ " Max. pressure = 1391 psia\n",
+ "\n",
+ " In method 1,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " In method 2,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " Mean effective pressure mep = 199.0 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "cr=16.\n",
+ "heat=800. #Btu\n",
+ "cp=0.24\n",
+ "c=0.1715\n",
+ "#calculations\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t3=t2 +heat/cp\n",
+ "v32=t3/t2\n",
+ "v43=cr/v32\n",
+ "t4=t3/math.pow(v43,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "etat=(heat-Qr)/heat *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t3,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p2,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 4970 R\n",
+ "\n",
+ " Max. Pressure = 679 psia\n",
+ "\n",
+ " Thermal efficiency = 56.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Mean effective pressure\n",
+ "#Initalization of variables\n",
+ "eff=0.585\n",
+ "heat=800. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "#calculations\n",
+ "W=eff*heat\n",
+ "v1=R*t1/(144*p1)\n",
+ "v2=v1/cr\n",
+ "t2=1301 #R\n",
+ "t3=t2+ heat/cp\n",
+ "v3=v2*t3/t2\n",
+ "v4=cr*v3\n",
+ "mep=W*J/(144*(v4-v2))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Mean effective pressure =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean effective pressure = 51.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure, thermal efficiency, mean effective pressure\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "eff=0.585\n",
+ "heat=500. #Btu\n",
+ "heat1=300. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "J=778.\n",
+ "c=0.1715\n",
+ "cp=0.24\n",
+ "t2=1301. #R\n",
+ "p2=308. #psia\n",
+ "#calculations\n",
+ "t3=t2+ heat/c\n",
+ "p3=p2*t3/t2\n",
+ "t4=t3+ heat1/cp\n",
+ "v43=t4/t3\n",
+ "v54=cr/v43\n",
+ "t5=t4/math.pow(v54,(n-1))\n",
+ "Qr=c*(t5-t1)\n",
+ "etat=(heat+heat1-Qr)/(heat+heat1) *100\n",
+ "mep=(heat+heat1-Qr)*J/(12.69*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t4,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure =\",mep,\" psia\")\n",
+ "print '%s' %(\"The calculations are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 5466 R\n",
+ "\n",
+ " Max. Pressure = 998 psia\n",
+ "\n",
+ " Thermal efficiency = 57.6 percent\n",
+ "\n",
+ " Mean effective pressure = 196.2 psia\n",
+ "The calculations are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_16_1.ipynb b/Thermodynamics_for_Engineers/Chapter_16_1.ipynb
new file mode 100755
index 00000000..efa01670
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_16_1.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dc464f4ef08695f8cec0668d0c21cb89b005d8581737f852d592d0e688b3aa48"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 - Gas cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. pressure, temperature and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "cr=9.\n",
+ "p1=14. #psia\n",
+ "t1=80.+460 #R\n",
+ "n=1.4\n",
+ "heat=800. #Btu\n",
+ "c=0.1715\n",
+ "R=53.35\n",
+ "J=778.\n",
+ "#calculations\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "t3=heat/c +t2\n",
+ "p3=p2*t3/t2\n",
+ "eff=(1-1/math.pow(cr,(n-1)))*100\n",
+ "t4=t3/math.pow(cr,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "cyclework=heat-Qr\n",
+ "eff2= cyclework/heat *100\n",
+ "V1=R*t1/(144*p1)\n",
+ "pd=(1-1/cr)*V1\n",
+ "mep=cyclework*J/(pd*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. temperature =\",t3,\"R\")\n",
+ "print '%s %d %s' %(\"\\n Max. pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 1,Thermal efficiency =\",eff,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 2,Thermal efficiency =\",eff2,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure mep =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. temperature = 5965 R\n",
+ "\n",
+ " Max. pressure = 1391 psia\n",
+ "\n",
+ " In method 1,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " In method 2,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " Mean effective pressure mep = 199.0 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "cr=16.\n",
+ "heat=800. #Btu\n",
+ "cp=0.24\n",
+ "c=0.1715\n",
+ "#calculations\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t3=t2 +heat/cp\n",
+ "v32=t3/t2\n",
+ "v43=cr/v32\n",
+ "t4=t3/math.pow(v43,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "etat=(heat-Qr)/heat *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t3,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p2,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 4970 R\n",
+ "\n",
+ " Max. Pressure = 679 psia\n",
+ "\n",
+ " Thermal efficiency = 56.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Mean effective pressure\n",
+ "#Initalization of variables\n",
+ "eff=0.585\n",
+ "heat=800. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "#calculations\n",
+ "W=eff*heat\n",
+ "v1=R*t1/(144*p1)\n",
+ "v2=v1/cr\n",
+ "t2=1301 #R\n",
+ "t3=t2+ heat/cp\n",
+ "v3=v2*t3/t2\n",
+ "v4=cr*v3\n",
+ "mep=W*J/(144*(v4-v2))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Mean effective pressure =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean effective pressure = 51.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure, thermal efficiency, mean effective pressure\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "eff=0.585\n",
+ "heat=500. #Btu\n",
+ "heat1=300. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "J=778.\n",
+ "c=0.1715\n",
+ "cp=0.24\n",
+ "t2=1301. #R\n",
+ "p2=308. #psia\n",
+ "#calculations\n",
+ "t3=t2+ heat/c\n",
+ "p3=p2*t3/t2\n",
+ "t4=t3+ heat1/cp\n",
+ "v43=t4/t3\n",
+ "v54=cr/v43\n",
+ "t5=t4/math.pow(v54,(n-1))\n",
+ "Qr=c*(t5-t1)\n",
+ "etat=(heat+heat1-Qr)/(heat+heat1) *100\n",
+ "mep=(heat+heat1-Qr)*J/(12.69*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t4,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure =\",mep,\" psia\")\n",
+ "print '%s' %(\"The calculations are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 5466 R\n",
+ "\n",
+ " Max. Pressure = 998 psia\n",
+ "\n",
+ " Thermal efficiency = 57.6 percent\n",
+ "\n",
+ " Mean effective pressure = 196.2 psia\n",
+ "The calculations are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_16_2.ipynb b/Thermodynamics_for_Engineers/Chapter_16_2.ipynb
new file mode 100755
index 00000000..efa01670
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_16_2.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dc464f4ef08695f8cec0668d0c21cb89b005d8581737f852d592d0e688b3aa48"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 - Gas cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. pressure, temperature and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "cr=9.\n",
+ "p1=14. #psia\n",
+ "t1=80.+460 #R\n",
+ "n=1.4\n",
+ "heat=800. #Btu\n",
+ "c=0.1715\n",
+ "R=53.35\n",
+ "J=778.\n",
+ "#calculations\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "t3=heat/c +t2\n",
+ "p3=p2*t3/t2\n",
+ "eff=(1-1/math.pow(cr,(n-1)))*100\n",
+ "t4=t3/math.pow(cr,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "cyclework=heat-Qr\n",
+ "eff2= cyclework/heat *100\n",
+ "V1=R*t1/(144*p1)\n",
+ "pd=(1-1/cr)*V1\n",
+ "mep=cyclework*J/(pd*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. temperature =\",t3,\"R\")\n",
+ "print '%s %d %s' %(\"\\n Max. pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 1,Thermal efficiency =\",eff,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 2,Thermal efficiency =\",eff2,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure mep =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. temperature = 5965 R\n",
+ "\n",
+ " Max. pressure = 1391 psia\n",
+ "\n",
+ " In method 1,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " In method 2,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " Mean effective pressure mep = 199.0 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "cr=16.\n",
+ "heat=800. #Btu\n",
+ "cp=0.24\n",
+ "c=0.1715\n",
+ "#calculations\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t3=t2 +heat/cp\n",
+ "v32=t3/t2\n",
+ "v43=cr/v32\n",
+ "t4=t3/math.pow(v43,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "etat=(heat-Qr)/heat *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t3,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p2,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 4970 R\n",
+ "\n",
+ " Max. Pressure = 679 psia\n",
+ "\n",
+ " Thermal efficiency = 56.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Mean effective pressure\n",
+ "#Initalization of variables\n",
+ "eff=0.585\n",
+ "heat=800. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "#calculations\n",
+ "W=eff*heat\n",
+ "v1=R*t1/(144*p1)\n",
+ "v2=v1/cr\n",
+ "t2=1301 #R\n",
+ "t3=t2+ heat/cp\n",
+ "v3=v2*t3/t2\n",
+ "v4=cr*v3\n",
+ "mep=W*J/(144*(v4-v2))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Mean effective pressure =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean effective pressure = 51.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure, thermal efficiency, mean effective pressure\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "eff=0.585\n",
+ "heat=500. #Btu\n",
+ "heat1=300. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "J=778.\n",
+ "c=0.1715\n",
+ "cp=0.24\n",
+ "t2=1301. #R\n",
+ "p2=308. #psia\n",
+ "#calculations\n",
+ "t3=t2+ heat/c\n",
+ "p3=p2*t3/t2\n",
+ "t4=t3+ heat1/cp\n",
+ "v43=t4/t3\n",
+ "v54=cr/v43\n",
+ "t5=t4/math.pow(v54,(n-1))\n",
+ "Qr=c*(t5-t1)\n",
+ "etat=(heat+heat1-Qr)/(heat+heat1) *100\n",
+ "mep=(heat+heat1-Qr)*J/(12.69*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t4,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure =\",mep,\" psia\")\n",
+ "print '%s' %(\"The calculations are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 5466 R\n",
+ "\n",
+ " Max. Pressure = 998 psia\n",
+ "\n",
+ " Thermal efficiency = 57.6 percent\n",
+ "\n",
+ " Mean effective pressure = 196.2 psia\n",
+ "The calculations are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_16_3.ipynb b/Thermodynamics_for_Engineers/Chapter_16_3.ipynb
new file mode 100755
index 00000000..efa01670
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_16_3.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dc464f4ef08695f8cec0668d0c21cb89b005d8581737f852d592d0e688b3aa48"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 - Gas cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. pressure, temperature and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "cr=9.\n",
+ "p1=14. #psia\n",
+ "t1=80.+460 #R\n",
+ "n=1.4\n",
+ "heat=800. #Btu\n",
+ "c=0.1715\n",
+ "R=53.35\n",
+ "J=778.\n",
+ "#calculations\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "t3=heat/c +t2\n",
+ "p3=p2*t3/t2\n",
+ "eff=(1-1/math.pow(cr,(n-1)))*100\n",
+ "t4=t3/math.pow(cr,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "cyclework=heat-Qr\n",
+ "eff2= cyclework/heat *100\n",
+ "V1=R*t1/(144*p1)\n",
+ "pd=(1-1/cr)*V1\n",
+ "mep=cyclework*J/(pd*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. temperature =\",t3,\"R\")\n",
+ "print '%s %d %s' %(\"\\n Max. pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 1,Thermal efficiency =\",eff,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 2,Thermal efficiency =\",eff2,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure mep =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. temperature = 5965 R\n",
+ "\n",
+ " Max. pressure = 1391 psia\n",
+ "\n",
+ " In method 1,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " In method 2,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " Mean effective pressure mep = 199.0 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "cr=16.\n",
+ "heat=800. #Btu\n",
+ "cp=0.24\n",
+ "c=0.1715\n",
+ "#calculations\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t3=t2 +heat/cp\n",
+ "v32=t3/t2\n",
+ "v43=cr/v32\n",
+ "t4=t3/math.pow(v43,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "etat=(heat-Qr)/heat *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t3,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p2,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 4970 R\n",
+ "\n",
+ " Max. Pressure = 679 psia\n",
+ "\n",
+ " Thermal efficiency = 56.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Mean effective pressure\n",
+ "#Initalization of variables\n",
+ "eff=0.585\n",
+ "heat=800. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "#calculations\n",
+ "W=eff*heat\n",
+ "v1=R*t1/(144*p1)\n",
+ "v2=v1/cr\n",
+ "t2=1301 #R\n",
+ "t3=t2+ heat/cp\n",
+ "v3=v2*t3/t2\n",
+ "v4=cr*v3\n",
+ "mep=W*J/(144*(v4-v2))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Mean effective pressure =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean effective pressure = 51.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure, thermal efficiency, mean effective pressure\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "eff=0.585\n",
+ "heat=500. #Btu\n",
+ "heat1=300. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "J=778.\n",
+ "c=0.1715\n",
+ "cp=0.24\n",
+ "t2=1301. #R\n",
+ "p2=308. #psia\n",
+ "#calculations\n",
+ "t3=t2+ heat/c\n",
+ "p3=p2*t3/t2\n",
+ "t4=t3+ heat1/cp\n",
+ "v43=t4/t3\n",
+ "v54=cr/v43\n",
+ "t5=t4/math.pow(v54,(n-1))\n",
+ "Qr=c*(t5-t1)\n",
+ "etat=(heat+heat1-Qr)/(heat+heat1) *100\n",
+ "mep=(heat+heat1-Qr)*J/(12.69*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t4,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure =\",mep,\" psia\")\n",
+ "print '%s' %(\"The calculations are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 5466 R\n",
+ "\n",
+ " Max. Pressure = 998 psia\n",
+ "\n",
+ " Thermal efficiency = 57.6 percent\n",
+ "\n",
+ " Mean effective pressure = 196.2 psia\n",
+ "The calculations are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_16_4.ipynb b/Thermodynamics_for_Engineers/Chapter_16_4.ipynb
new file mode 100755
index 00000000..efa01670
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_16_4.ipynb
@@ -0,0 +1,253 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dc464f4ef08695f8cec0668d0c21cb89b005d8581737f852d592d0e688b3aa48"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 16 - Gas cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 330"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max. pressure, temperature and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "cr=9.\n",
+ "p1=14. #psia\n",
+ "t1=80.+460 #R\n",
+ "n=1.4\n",
+ "heat=800. #Btu\n",
+ "c=0.1715\n",
+ "R=53.35\n",
+ "J=778.\n",
+ "#calculations\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "t3=heat/c +t2\n",
+ "p3=p2*t3/t2\n",
+ "eff=(1-1/math.pow(cr,(n-1)))*100\n",
+ "t4=t3/math.pow(cr,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "cyclework=heat-Qr\n",
+ "eff2= cyclework/heat *100\n",
+ "V1=R*t1/(144*p1)\n",
+ "pd=(1-1/cr)*V1\n",
+ "mep=cyclework*J/(pd*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. temperature =\",t3,\"R\")\n",
+ "print '%s %d %s' %(\"\\n Max. pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 1,Thermal efficiency =\",eff,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In method 2,Thermal efficiency =\",eff2,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure mep =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. temperature = 5965 R\n",
+ "\n",
+ " Max. pressure = 1391 psia\n",
+ "\n",
+ " In method 1,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " In method 2,Thermal efficiency = 58.5 percent\n",
+ "\n",
+ " Mean effective pressure mep = 199.0 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "cr=16.\n",
+ "heat=800. #Btu\n",
+ "cp=0.24\n",
+ "c=0.1715\n",
+ "#calculations\n",
+ "t2=t1*math.pow(cr,(n-1))\n",
+ "p2=p1*math.pow(cr,n)\n",
+ "t3=t2 +heat/cp\n",
+ "v32=t3/t2\n",
+ "v43=cr/v32\n",
+ "t4=t3/math.pow(v43,(n-1))\n",
+ "Qr=c*(t4-t1)\n",
+ "etat=(heat-Qr)/heat *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t3,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p2,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 4970 R\n",
+ "\n",
+ " Max. Pressure = 679 psia\n",
+ "\n",
+ " Thermal efficiency = 56.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Mean effective pressure\n",
+ "#Initalization of variables\n",
+ "eff=0.585\n",
+ "heat=800. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "cp=0.24\n",
+ "J=778.\n",
+ "#calculations\n",
+ "W=eff*heat\n",
+ "v1=R*t1/(144*p1)\n",
+ "v2=v1/cr\n",
+ "t2=1301 #R\n",
+ "t3=t2+ heat/cp\n",
+ "v3=v2*t3/t2\n",
+ "v4=cr*v3\n",
+ "mep=W*J/(144*(v4-v2))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Mean effective pressure =\",mep,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mean effective pressure = 51.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 340"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the max temperature, pressure, thermal efficiency, mean effective pressure\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "eff=0.585\n",
+ "heat=500. #Btu\n",
+ "heat1=300. #Btu\n",
+ "t1=80+460. #R\n",
+ "p1=14. #psia\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "cr=9.\n",
+ "J=778.\n",
+ "c=0.1715\n",
+ "cp=0.24\n",
+ "t2=1301. #R\n",
+ "p2=308. #psia\n",
+ "#calculations\n",
+ "t3=t2+ heat/c\n",
+ "p3=p2*t3/t2\n",
+ "t4=t3+ heat1/cp\n",
+ "v43=t4/t3\n",
+ "v54=cr/v43\n",
+ "t5=t4/math.pow(v54,(n-1))\n",
+ "Qr=c*(t5-t1)\n",
+ "etat=(heat+heat1-Qr)/(heat+heat1) *100\n",
+ "mep=(heat+heat1-Qr)*J/(12.69*144)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Max. Temperature =\",t4,\" R\")\n",
+ "print '%s %d %s' %(\"\\n Max. Pressure =\",p3,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Mean effective pressure =\",mep,\" psia\")\n",
+ "print '%s' %(\"The calculations are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max. Temperature = 5466 R\n",
+ "\n",
+ " Max. Pressure = 998 psia\n",
+ "\n",
+ " Thermal efficiency = 57.6 percent\n",
+ "\n",
+ " Mean effective pressure = 196.2 psia\n",
+ "The calculations are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_17.ipynb b/Thermodynamics_for_Engineers/Chapter_17.ipynb
new file mode 100755
index 00000000..98fc5f10
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_17.ipynb
@@ -0,0 +1,132 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b620865a516deeb75cd703005b53698c7a7013658cab02400acc0bf08c43a5d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 - Internal-combustion engines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated efficiency, brake thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "hp1=2000. #bhp\n",
+ "m=792. #lb/hr\n",
+ "ex=0.5\n",
+ "hp2=210.\n",
+ "hv=18900. #Btu/lb\n",
+ "etth=51.3\n",
+ "#calculations\n",
+ "ihp=hp1+hp2\n",
+ "ietat= ihp*2544/(m*hv) *100\n",
+ "betat=ietat*hp1/ihp\n",
+ "betat2=hp1*2544/(m*hv) *100\n",
+ "ietae=ietat/etth *100\n",
+ "betae=betat/etth *100\n",
+ "brake= ietae*hp1/ihp\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated efficiency =\",ietat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake thermal efficiency =\",betat,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake thermal efficiency =\",betat2,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Indicated thermal efficiency =\",ietae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake engine efficiency =\",betae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake engine efficiency =\",brake,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated efficiency = 37.6 percent\n",
+ "\n",
+ " Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " In case 2, Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " Indicated thermal efficiency = 73.2 percent\n",
+ "\n",
+ " Brake engine efficiency = 66.3 percent\n",
+ "\n",
+ " In case 2, Brake engine efficiency = 66.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated mep\n",
+ "#Initalization of variables\n",
+ "J=778.\n",
+ "o2=12.5\n",
+ "theo=0.95\n",
+ "N=56.5\n",
+ "R0=1545.\n",
+ "T=540. #R\n",
+ "p=14. #psia\n",
+ "LHV=2368089. #Btu/lb\n",
+ "ther=39.4\n",
+ "iep=0.78\n",
+ "ve=0.8\n",
+ "#calculations\n",
+ "Ar=o2/0.21 *theo\n",
+ "vol=N*R0*T/(144*p)\n",
+ "hv=(LHV -17730)/LHV\n",
+ "ithep=iep*ther\n",
+ "pd=ithep/100 *ve *100.5\n",
+ "mep=J*pd\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Indicated mep =\",mep,\"lb/sq ft\")\n",
+ "print '%s' %(\"The answer might differ from textbook due to rounding off error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated mep = 19223 lb/sq ft\n",
+ "The answer might differ from textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_17_1.ipynb b/Thermodynamics_for_Engineers/Chapter_17_1.ipynb
new file mode 100755
index 00000000..98fc5f10
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_17_1.ipynb
@@ -0,0 +1,132 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b620865a516deeb75cd703005b53698c7a7013658cab02400acc0bf08c43a5d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 - Internal-combustion engines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated efficiency, brake thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "hp1=2000. #bhp\n",
+ "m=792. #lb/hr\n",
+ "ex=0.5\n",
+ "hp2=210.\n",
+ "hv=18900. #Btu/lb\n",
+ "etth=51.3\n",
+ "#calculations\n",
+ "ihp=hp1+hp2\n",
+ "ietat= ihp*2544/(m*hv) *100\n",
+ "betat=ietat*hp1/ihp\n",
+ "betat2=hp1*2544/(m*hv) *100\n",
+ "ietae=ietat/etth *100\n",
+ "betae=betat/etth *100\n",
+ "brake= ietae*hp1/ihp\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated efficiency =\",ietat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake thermal efficiency =\",betat,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake thermal efficiency =\",betat2,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Indicated thermal efficiency =\",ietae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake engine efficiency =\",betae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake engine efficiency =\",brake,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated efficiency = 37.6 percent\n",
+ "\n",
+ " Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " In case 2, Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " Indicated thermal efficiency = 73.2 percent\n",
+ "\n",
+ " Brake engine efficiency = 66.3 percent\n",
+ "\n",
+ " In case 2, Brake engine efficiency = 66.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated mep\n",
+ "#Initalization of variables\n",
+ "J=778.\n",
+ "o2=12.5\n",
+ "theo=0.95\n",
+ "N=56.5\n",
+ "R0=1545.\n",
+ "T=540. #R\n",
+ "p=14. #psia\n",
+ "LHV=2368089. #Btu/lb\n",
+ "ther=39.4\n",
+ "iep=0.78\n",
+ "ve=0.8\n",
+ "#calculations\n",
+ "Ar=o2/0.21 *theo\n",
+ "vol=N*R0*T/(144*p)\n",
+ "hv=(LHV -17730)/LHV\n",
+ "ithep=iep*ther\n",
+ "pd=ithep/100 *ve *100.5\n",
+ "mep=J*pd\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Indicated mep =\",mep,\"lb/sq ft\")\n",
+ "print '%s' %(\"The answer might differ from textbook due to rounding off error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated mep = 19223 lb/sq ft\n",
+ "The answer might differ from textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_17_2.ipynb b/Thermodynamics_for_Engineers/Chapter_17_2.ipynb
new file mode 100755
index 00000000..98fc5f10
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_17_2.ipynb
@@ -0,0 +1,132 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b620865a516deeb75cd703005b53698c7a7013658cab02400acc0bf08c43a5d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 - Internal-combustion engines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated efficiency, brake thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "hp1=2000. #bhp\n",
+ "m=792. #lb/hr\n",
+ "ex=0.5\n",
+ "hp2=210.\n",
+ "hv=18900. #Btu/lb\n",
+ "etth=51.3\n",
+ "#calculations\n",
+ "ihp=hp1+hp2\n",
+ "ietat= ihp*2544/(m*hv) *100\n",
+ "betat=ietat*hp1/ihp\n",
+ "betat2=hp1*2544/(m*hv) *100\n",
+ "ietae=ietat/etth *100\n",
+ "betae=betat/etth *100\n",
+ "brake= ietae*hp1/ihp\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated efficiency =\",ietat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake thermal efficiency =\",betat,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake thermal efficiency =\",betat2,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Indicated thermal efficiency =\",ietae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake engine efficiency =\",betae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake engine efficiency =\",brake,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated efficiency = 37.6 percent\n",
+ "\n",
+ " Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " In case 2, Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " Indicated thermal efficiency = 73.2 percent\n",
+ "\n",
+ " Brake engine efficiency = 66.3 percent\n",
+ "\n",
+ " In case 2, Brake engine efficiency = 66.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated mep\n",
+ "#Initalization of variables\n",
+ "J=778.\n",
+ "o2=12.5\n",
+ "theo=0.95\n",
+ "N=56.5\n",
+ "R0=1545.\n",
+ "T=540. #R\n",
+ "p=14. #psia\n",
+ "LHV=2368089. #Btu/lb\n",
+ "ther=39.4\n",
+ "iep=0.78\n",
+ "ve=0.8\n",
+ "#calculations\n",
+ "Ar=o2/0.21 *theo\n",
+ "vol=N*R0*T/(144*p)\n",
+ "hv=(LHV -17730)/LHV\n",
+ "ithep=iep*ther\n",
+ "pd=ithep/100 *ve *100.5\n",
+ "mep=J*pd\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Indicated mep =\",mep,\"lb/sq ft\")\n",
+ "print '%s' %(\"The answer might differ from textbook due to rounding off error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated mep = 19223 lb/sq ft\n",
+ "The answer might differ from textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_17_3.ipynb b/Thermodynamics_for_Engineers/Chapter_17_3.ipynb
new file mode 100755
index 00000000..98fc5f10
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_17_3.ipynb
@@ -0,0 +1,132 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b620865a516deeb75cd703005b53698c7a7013658cab02400acc0bf08c43a5d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 - Internal-combustion engines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated efficiency, brake thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "hp1=2000. #bhp\n",
+ "m=792. #lb/hr\n",
+ "ex=0.5\n",
+ "hp2=210.\n",
+ "hv=18900. #Btu/lb\n",
+ "etth=51.3\n",
+ "#calculations\n",
+ "ihp=hp1+hp2\n",
+ "ietat= ihp*2544/(m*hv) *100\n",
+ "betat=ietat*hp1/ihp\n",
+ "betat2=hp1*2544/(m*hv) *100\n",
+ "ietae=ietat/etth *100\n",
+ "betae=betat/etth *100\n",
+ "brake= ietae*hp1/ihp\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated efficiency =\",ietat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake thermal efficiency =\",betat,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake thermal efficiency =\",betat2,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Indicated thermal efficiency =\",ietae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake engine efficiency =\",betae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake engine efficiency =\",brake,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated efficiency = 37.6 percent\n",
+ "\n",
+ " Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " In case 2, Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " Indicated thermal efficiency = 73.2 percent\n",
+ "\n",
+ " Brake engine efficiency = 66.3 percent\n",
+ "\n",
+ " In case 2, Brake engine efficiency = 66.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated mep\n",
+ "#Initalization of variables\n",
+ "J=778.\n",
+ "o2=12.5\n",
+ "theo=0.95\n",
+ "N=56.5\n",
+ "R0=1545.\n",
+ "T=540. #R\n",
+ "p=14. #psia\n",
+ "LHV=2368089. #Btu/lb\n",
+ "ther=39.4\n",
+ "iep=0.78\n",
+ "ve=0.8\n",
+ "#calculations\n",
+ "Ar=o2/0.21 *theo\n",
+ "vol=N*R0*T/(144*p)\n",
+ "hv=(LHV -17730)/LHV\n",
+ "ithep=iep*ther\n",
+ "pd=ithep/100 *ve *100.5\n",
+ "mep=J*pd\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Indicated mep =\",mep,\"lb/sq ft\")\n",
+ "print '%s' %(\"The answer might differ from textbook due to rounding off error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated mep = 19223 lb/sq ft\n",
+ "The answer might differ from textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_17_4.ipynb b/Thermodynamics_for_Engineers/Chapter_17_4.ipynb
new file mode 100755
index 00000000..98fc5f10
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_17_4.ipynb
@@ -0,0 +1,132 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b620865a516deeb75cd703005b53698c7a7013658cab02400acc0bf08c43a5d1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 17 - Internal-combustion engines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 358"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated efficiency, brake thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "hp1=2000. #bhp\n",
+ "m=792. #lb/hr\n",
+ "ex=0.5\n",
+ "hp2=210.\n",
+ "hv=18900. #Btu/lb\n",
+ "etth=51.3\n",
+ "#calculations\n",
+ "ihp=hp1+hp2\n",
+ "ietat= ihp*2544/(m*hv) *100\n",
+ "betat=ietat*hp1/ihp\n",
+ "betat2=hp1*2544/(m*hv) *100\n",
+ "ietae=ietat/etth *100\n",
+ "betae=betat/etth *100\n",
+ "brake= ietae*hp1/ihp\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated efficiency =\",ietat,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake thermal efficiency =\",betat,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake thermal efficiency =\",betat2,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Indicated thermal efficiency =\",ietae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Brake engine efficiency =\",betae,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Brake engine efficiency =\",brake,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated efficiency = 37.6 percent\n",
+ "\n",
+ " Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " In case 2, Brake thermal efficiency = 34.0 percent\n",
+ "\n",
+ " Indicated thermal efficiency = 73.2 percent\n",
+ "\n",
+ " Brake engine efficiency = 66.3 percent\n",
+ "\n",
+ " In case 2, Brake engine efficiency = 66.3 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated mep\n",
+ "#Initalization of variables\n",
+ "J=778.\n",
+ "o2=12.5\n",
+ "theo=0.95\n",
+ "N=56.5\n",
+ "R0=1545.\n",
+ "T=540. #R\n",
+ "p=14. #psia\n",
+ "LHV=2368089. #Btu/lb\n",
+ "ther=39.4\n",
+ "iep=0.78\n",
+ "ve=0.8\n",
+ "#calculations\n",
+ "Ar=o2/0.21 *theo\n",
+ "vol=N*R0*T/(144*p)\n",
+ "hv=(LHV -17730)/LHV\n",
+ "ithep=iep*ther\n",
+ "pd=ithep/100 *ve *100.5\n",
+ "mep=J*pd\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Indicated mep =\",mep,\"lb/sq ft\")\n",
+ "print '%s' %(\"The answer might differ from textbook due to rounding off error\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated mep = 19223 lb/sq ft\n",
+ "The answer might differ from textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_18.ipynb b/Thermodynamics_for_Engineers/Chapter_18.ipynb
new file mode 100755
index 00000000..0ec1053a
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_18.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f0820b11a700821a3d31d338557194301893d84e5100c7860794ac7f11c2fe67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 - Gas Compressors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical horse power\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=200. #cfm\n",
+ "p2=90. #psia\n",
+ "p1=14.5 #psia\n",
+ "n=1.36\n",
+ "#calculations\n",
+ "hpp=n/(n-1) *144.*p1*q/33000. *(-1+math.pow(p2/p1, (n-1)/n))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical horse power required =\",hpp,\" hp\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical horse power required = 29.7 hp\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the indicated hp and shaft hp\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=350. #cfm\n",
+ "eff=0.78\n",
+ "x=0.95\n",
+ "p2=120. #psia\n",
+ "p1=14.3 #psia\n",
+ "#calculations\n",
+ "cal=p1*144*q/550 *math.log(p2/p1) /100.\n",
+ "ihp= cal/eff\n",
+ "shp=ihp/x\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated hp =\",ihp,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp =\",shp,\"hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated hp = 35.7 hp\n",
+ "\n",
+ " Shaft hp = 37.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2\n",
+ "q=400. #cfm\n",
+ "p2=200. #psia\n",
+ "p1=14.2 #psia\n",
+ "ve=0.75\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "thp=-n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %d %s' %(\"\\n Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %d %s' %(\"\\n Max. Temperature =\",Tmax,\"R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 94.2 hp\n",
+ "\n",
+ " Piston displacement = 533 cfm\n",
+ "\n",
+ " Max. Temperature = 1052 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2 #psia\n",
+ "p3=200. #psia\n",
+ "q=400. #cfm\n",
+ "ve=0.78\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "p2=math.sqrt(p3*p1) #psia\n",
+ "thp=-2*n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "pd2=q*p1/p2 /ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %.1f %s' %(\"\\n For low pressure case, Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n For high pressure case, Piston displacement =\",pd2,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Max. Temperature =\",Tmax,\" R\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 78.2 hp\n",
+ "\n",
+ " For low pressure case, Piston displacement = 512.8 cfm\n",
+ "\n",
+ " For high pressure case, Piston displacement = 136.6 cfm\n",
+ "\n",
+ " Max. Temperature = 746.8 R\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical pressure at exit\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "dia=2 #ft\n",
+ "rpm=6000. #rpm\n",
+ "p=14.2 #psia\n",
+ "t=75. #F\n",
+ "g=32.17\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "v=2*math.pi*rpm/60.\n",
+ "wbym=v*v /g\n",
+ "T=t+460.\n",
+ "pr=1+ wbym*(n-1)/n /(R*T) \n",
+ "pr2=math.pow(pr,(n/(n-1)))\n",
+ "p2=pr2*p\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical pressure at exit =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical pressure at exit = 21.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity of air\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pa=14.7 #psia\n",
+ "p1=12. #psia\n",
+ "t1=560. #R\n",
+ "n=1.4 #gamma\n",
+ "J=778. #constant conversion\n",
+ "g=32.2 #ft/s^2\n",
+ "cp=0.24 #heat capacity\n",
+ "eff=0.7 #efficiency\n",
+ "m1=1.8 \n",
+ "m3=1. \n",
+ "#calculations\n",
+ "t5=t1*math.pow(pa/p1,((n-1)/n))\n",
+ "v4=math.sqrt(2*g*J*cp*(t5-t1)/eff) \n",
+ "v3=(m1+m3)/m1 *v4\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Velocity of air =\",v3,\" ft/s\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of air = 1178.8 ft/s\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v2=1180. #ft/s\n",
+ "etan=0.95\n",
+ "cp=0.24\n",
+ "n=1.4\n",
+ "p2=12.\n",
+ "#calculations\n",
+ "dh=v2*v2 /(etan*223.8*223.8)\n",
+ "dt=dh/cp\n",
+ "t2d=560. #R\n",
+ "t1=t2d+ etan*dt\n",
+ "t2=554. #R\n",
+ "pr=math.pow(t1/t2,(n/(n-1)))\n",
+ "p1=p2*pr\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure required =\",p1,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure required = 24.06 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_18_1.ipynb b/Thermodynamics_for_Engineers/Chapter_18_1.ipynb
new file mode 100755
index 00000000..0ec1053a
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_18_1.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f0820b11a700821a3d31d338557194301893d84e5100c7860794ac7f11c2fe67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 - Gas Compressors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical horse power\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=200. #cfm\n",
+ "p2=90. #psia\n",
+ "p1=14.5 #psia\n",
+ "n=1.36\n",
+ "#calculations\n",
+ "hpp=n/(n-1) *144.*p1*q/33000. *(-1+math.pow(p2/p1, (n-1)/n))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical horse power required =\",hpp,\" hp\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical horse power required = 29.7 hp\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the indicated hp and shaft hp\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=350. #cfm\n",
+ "eff=0.78\n",
+ "x=0.95\n",
+ "p2=120. #psia\n",
+ "p1=14.3 #psia\n",
+ "#calculations\n",
+ "cal=p1*144*q/550 *math.log(p2/p1) /100.\n",
+ "ihp= cal/eff\n",
+ "shp=ihp/x\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated hp =\",ihp,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp =\",shp,\"hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated hp = 35.7 hp\n",
+ "\n",
+ " Shaft hp = 37.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2\n",
+ "q=400. #cfm\n",
+ "p2=200. #psia\n",
+ "p1=14.2 #psia\n",
+ "ve=0.75\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "thp=-n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %d %s' %(\"\\n Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %d %s' %(\"\\n Max. Temperature =\",Tmax,\"R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 94.2 hp\n",
+ "\n",
+ " Piston displacement = 533 cfm\n",
+ "\n",
+ " Max. Temperature = 1052 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2 #psia\n",
+ "p3=200. #psia\n",
+ "q=400. #cfm\n",
+ "ve=0.78\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "p2=math.sqrt(p3*p1) #psia\n",
+ "thp=-2*n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "pd2=q*p1/p2 /ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %.1f %s' %(\"\\n For low pressure case, Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n For high pressure case, Piston displacement =\",pd2,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Max. Temperature =\",Tmax,\" R\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 78.2 hp\n",
+ "\n",
+ " For low pressure case, Piston displacement = 512.8 cfm\n",
+ "\n",
+ " For high pressure case, Piston displacement = 136.6 cfm\n",
+ "\n",
+ " Max. Temperature = 746.8 R\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical pressure at exit\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "dia=2 #ft\n",
+ "rpm=6000. #rpm\n",
+ "p=14.2 #psia\n",
+ "t=75. #F\n",
+ "g=32.17\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "v=2*math.pi*rpm/60.\n",
+ "wbym=v*v /g\n",
+ "T=t+460.\n",
+ "pr=1+ wbym*(n-1)/n /(R*T) \n",
+ "pr2=math.pow(pr,(n/(n-1)))\n",
+ "p2=pr2*p\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical pressure at exit =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical pressure at exit = 21.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity of air\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pa=14.7 #psia\n",
+ "p1=12. #psia\n",
+ "t1=560. #R\n",
+ "n=1.4 #gamma\n",
+ "J=778. #constant conversion\n",
+ "g=32.2 #ft/s^2\n",
+ "cp=0.24 #heat capacity\n",
+ "eff=0.7 #efficiency\n",
+ "m1=1.8 \n",
+ "m3=1. \n",
+ "#calculations\n",
+ "t5=t1*math.pow(pa/p1,((n-1)/n))\n",
+ "v4=math.sqrt(2*g*J*cp*(t5-t1)/eff) \n",
+ "v3=(m1+m3)/m1 *v4\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Velocity of air =\",v3,\" ft/s\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of air = 1178.8 ft/s\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v2=1180. #ft/s\n",
+ "etan=0.95\n",
+ "cp=0.24\n",
+ "n=1.4\n",
+ "p2=12.\n",
+ "#calculations\n",
+ "dh=v2*v2 /(etan*223.8*223.8)\n",
+ "dt=dh/cp\n",
+ "t2d=560. #R\n",
+ "t1=t2d+ etan*dt\n",
+ "t2=554. #R\n",
+ "pr=math.pow(t1/t2,(n/(n-1)))\n",
+ "p1=p2*pr\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure required =\",p1,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure required = 24.06 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_18_2.ipynb b/Thermodynamics_for_Engineers/Chapter_18_2.ipynb
new file mode 100755
index 00000000..0ec1053a
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_18_2.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f0820b11a700821a3d31d338557194301893d84e5100c7860794ac7f11c2fe67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 - Gas Compressors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical horse power\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=200. #cfm\n",
+ "p2=90. #psia\n",
+ "p1=14.5 #psia\n",
+ "n=1.36\n",
+ "#calculations\n",
+ "hpp=n/(n-1) *144.*p1*q/33000. *(-1+math.pow(p2/p1, (n-1)/n))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical horse power required =\",hpp,\" hp\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical horse power required = 29.7 hp\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the indicated hp and shaft hp\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=350. #cfm\n",
+ "eff=0.78\n",
+ "x=0.95\n",
+ "p2=120. #psia\n",
+ "p1=14.3 #psia\n",
+ "#calculations\n",
+ "cal=p1*144*q/550 *math.log(p2/p1) /100.\n",
+ "ihp= cal/eff\n",
+ "shp=ihp/x\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated hp =\",ihp,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp =\",shp,\"hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated hp = 35.7 hp\n",
+ "\n",
+ " Shaft hp = 37.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2\n",
+ "q=400. #cfm\n",
+ "p2=200. #psia\n",
+ "p1=14.2 #psia\n",
+ "ve=0.75\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "thp=-n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %d %s' %(\"\\n Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %d %s' %(\"\\n Max. Temperature =\",Tmax,\"R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 94.2 hp\n",
+ "\n",
+ " Piston displacement = 533 cfm\n",
+ "\n",
+ " Max. Temperature = 1052 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2 #psia\n",
+ "p3=200. #psia\n",
+ "q=400. #cfm\n",
+ "ve=0.78\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "p2=math.sqrt(p3*p1) #psia\n",
+ "thp=-2*n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "pd2=q*p1/p2 /ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %.1f %s' %(\"\\n For low pressure case, Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n For high pressure case, Piston displacement =\",pd2,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Max. Temperature =\",Tmax,\" R\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 78.2 hp\n",
+ "\n",
+ " For low pressure case, Piston displacement = 512.8 cfm\n",
+ "\n",
+ " For high pressure case, Piston displacement = 136.6 cfm\n",
+ "\n",
+ " Max. Temperature = 746.8 R\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical pressure at exit\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "dia=2 #ft\n",
+ "rpm=6000. #rpm\n",
+ "p=14.2 #psia\n",
+ "t=75. #F\n",
+ "g=32.17\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "v=2*math.pi*rpm/60.\n",
+ "wbym=v*v /g\n",
+ "T=t+460.\n",
+ "pr=1+ wbym*(n-1)/n /(R*T) \n",
+ "pr2=math.pow(pr,(n/(n-1)))\n",
+ "p2=pr2*p\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical pressure at exit =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical pressure at exit = 21.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity of air\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pa=14.7 #psia\n",
+ "p1=12. #psia\n",
+ "t1=560. #R\n",
+ "n=1.4 #gamma\n",
+ "J=778. #constant conversion\n",
+ "g=32.2 #ft/s^2\n",
+ "cp=0.24 #heat capacity\n",
+ "eff=0.7 #efficiency\n",
+ "m1=1.8 \n",
+ "m3=1. \n",
+ "#calculations\n",
+ "t5=t1*math.pow(pa/p1,((n-1)/n))\n",
+ "v4=math.sqrt(2*g*J*cp*(t5-t1)/eff) \n",
+ "v3=(m1+m3)/m1 *v4\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Velocity of air =\",v3,\" ft/s\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of air = 1178.8 ft/s\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v2=1180. #ft/s\n",
+ "etan=0.95\n",
+ "cp=0.24\n",
+ "n=1.4\n",
+ "p2=12.\n",
+ "#calculations\n",
+ "dh=v2*v2 /(etan*223.8*223.8)\n",
+ "dt=dh/cp\n",
+ "t2d=560. #R\n",
+ "t1=t2d+ etan*dt\n",
+ "t2=554. #R\n",
+ "pr=math.pow(t1/t2,(n/(n-1)))\n",
+ "p1=p2*pr\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure required =\",p1,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure required = 24.06 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_18_3.ipynb b/Thermodynamics_for_Engineers/Chapter_18_3.ipynb
new file mode 100755
index 00000000..0ec1053a
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_18_3.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f0820b11a700821a3d31d338557194301893d84e5100c7860794ac7f11c2fe67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 - Gas Compressors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical horse power\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=200. #cfm\n",
+ "p2=90. #psia\n",
+ "p1=14.5 #psia\n",
+ "n=1.36\n",
+ "#calculations\n",
+ "hpp=n/(n-1) *144.*p1*q/33000. *(-1+math.pow(p2/p1, (n-1)/n))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical horse power required =\",hpp,\" hp\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical horse power required = 29.7 hp\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the indicated hp and shaft hp\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=350. #cfm\n",
+ "eff=0.78\n",
+ "x=0.95\n",
+ "p2=120. #psia\n",
+ "p1=14.3 #psia\n",
+ "#calculations\n",
+ "cal=p1*144*q/550 *math.log(p2/p1) /100.\n",
+ "ihp= cal/eff\n",
+ "shp=ihp/x\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated hp =\",ihp,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp =\",shp,\"hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated hp = 35.7 hp\n",
+ "\n",
+ " Shaft hp = 37.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2\n",
+ "q=400. #cfm\n",
+ "p2=200. #psia\n",
+ "p1=14.2 #psia\n",
+ "ve=0.75\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "thp=-n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %d %s' %(\"\\n Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %d %s' %(\"\\n Max. Temperature =\",Tmax,\"R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 94.2 hp\n",
+ "\n",
+ " Piston displacement = 533 cfm\n",
+ "\n",
+ " Max. Temperature = 1052 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2 #psia\n",
+ "p3=200. #psia\n",
+ "q=400. #cfm\n",
+ "ve=0.78\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "p2=math.sqrt(p3*p1) #psia\n",
+ "thp=-2*n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "pd2=q*p1/p2 /ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %.1f %s' %(\"\\n For low pressure case, Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n For high pressure case, Piston displacement =\",pd2,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Max. Temperature =\",Tmax,\" R\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 78.2 hp\n",
+ "\n",
+ " For low pressure case, Piston displacement = 512.8 cfm\n",
+ "\n",
+ " For high pressure case, Piston displacement = 136.6 cfm\n",
+ "\n",
+ " Max. Temperature = 746.8 R\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical pressure at exit\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "dia=2 #ft\n",
+ "rpm=6000. #rpm\n",
+ "p=14.2 #psia\n",
+ "t=75. #F\n",
+ "g=32.17\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "v=2*math.pi*rpm/60.\n",
+ "wbym=v*v /g\n",
+ "T=t+460.\n",
+ "pr=1+ wbym*(n-1)/n /(R*T) \n",
+ "pr2=math.pow(pr,(n/(n-1)))\n",
+ "p2=pr2*p\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical pressure at exit =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical pressure at exit = 21.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity of air\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pa=14.7 #psia\n",
+ "p1=12. #psia\n",
+ "t1=560. #R\n",
+ "n=1.4 #gamma\n",
+ "J=778. #constant conversion\n",
+ "g=32.2 #ft/s^2\n",
+ "cp=0.24 #heat capacity\n",
+ "eff=0.7 #efficiency\n",
+ "m1=1.8 \n",
+ "m3=1. \n",
+ "#calculations\n",
+ "t5=t1*math.pow(pa/p1,((n-1)/n))\n",
+ "v4=math.sqrt(2*g*J*cp*(t5-t1)/eff) \n",
+ "v3=(m1+m3)/m1 *v4\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Velocity of air =\",v3,\" ft/s\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of air = 1178.8 ft/s\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v2=1180. #ft/s\n",
+ "etan=0.95\n",
+ "cp=0.24\n",
+ "n=1.4\n",
+ "p2=12.\n",
+ "#calculations\n",
+ "dh=v2*v2 /(etan*223.8*223.8)\n",
+ "dt=dh/cp\n",
+ "t2d=560. #R\n",
+ "t1=t2d+ etan*dt\n",
+ "t2=554. #R\n",
+ "pr=math.pow(t1/t2,(n/(n-1)))\n",
+ "p1=p2*pr\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure required =\",p1,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure required = 24.06 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_18_4.ipynb b/Thermodynamics_for_Engineers/Chapter_18_4.ipynb
new file mode 100755
index 00000000..0ec1053a
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_18_4.ipynb
@@ -0,0 +1,343 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f0820b11a700821a3d31d338557194301893d84e5100c7860794ac7f11c2fe67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 18 - Gas Compressors "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 374"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical horse power\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=200. #cfm\n",
+ "p2=90. #psia\n",
+ "p1=14.5 #psia\n",
+ "n=1.36\n",
+ "#calculations\n",
+ "hpp=n/(n-1) *144.*p1*q/33000. *(-1+math.pow(p2/p1, (n-1)/n))\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical horse power required =\",hpp,\" hp\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical horse power required = 29.7 hp\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calcualte the indicated hp and shaft hp\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "q=350. #cfm\n",
+ "eff=0.78\n",
+ "x=0.95\n",
+ "p2=120. #psia\n",
+ "p1=14.3 #psia\n",
+ "#calculations\n",
+ "cal=p1*144*q/550 *math.log(p2/p1) /100.\n",
+ "ihp= cal/eff\n",
+ "shp=ihp/x\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated hp =\",ihp,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp =\",shp,\"hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated hp = 35.7 hp\n",
+ "\n",
+ " Shaft hp = 37.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2\n",
+ "q=400. #cfm\n",
+ "p2=200. #psia\n",
+ "p1=14.2 #psia\n",
+ "ve=0.75\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "thp=-n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %d %s' %(\"\\n Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %d %s' %(\"\\n Max. Temperature =\",Tmax,\"R\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 94.2 hp\n",
+ "\n",
+ " Piston displacement = 533 cfm\n",
+ "\n",
+ " Max. Temperature = 1052 R\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 381"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical hp and piston displacement and max. temperature\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.35\n",
+ "p1=14.2 #psia\n",
+ "p3=200. #psia\n",
+ "q=400. #cfm\n",
+ "ve=0.78\n",
+ "t1=530. #R\n",
+ "#calculations\n",
+ "p2=math.sqrt(p3*p1) #psia\n",
+ "thp=-2*n/(n-1) *144 *p1*q/33000 *(1- math.pow(p2/p1,(n-1)/n))\n",
+ "pd=q/ve\n",
+ "pd2=q*p1/p2 /ve\n",
+ "Tmax=t1*math.pow(p2/p1,(n-1)/n)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical hp =\",thp,\" hp\")\n",
+ "print '%s %.1f %s' %(\"\\n For low pressure case, Piston displacement =\",pd,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n For high pressure case, Piston displacement =\",pd2,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Max. Temperature =\",Tmax,\" R\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical hp = 78.2 hp\n",
+ "\n",
+ " For low pressure case, Piston displacement = 512.8 cfm\n",
+ "\n",
+ " For high pressure case, Piston displacement = 136.6 cfm\n",
+ "\n",
+ " Max. Temperature = 746.8 R\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the theoretical pressure at exit\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "dia=2 #ft\n",
+ "rpm=6000. #rpm\n",
+ "p=14.2 #psia\n",
+ "t=75. #F\n",
+ "g=32.17\n",
+ "n=1.4\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "v=2*math.pi*rpm/60.\n",
+ "wbym=v*v /g\n",
+ "T=t+460.\n",
+ "pr=1+ wbym*(n-1)/n /(R*T) \n",
+ "pr2=math.pow(pr,(n/(n-1)))\n",
+ "p2=pr2*p\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Theoretical pressure at exit =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Theoretical pressure at exit = 21.3 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the velocity of air\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pa=14.7 #psia\n",
+ "p1=12. #psia\n",
+ "t1=560. #R\n",
+ "n=1.4 #gamma\n",
+ "J=778. #constant conversion\n",
+ "g=32.2 #ft/s^2\n",
+ "cp=0.24 #heat capacity\n",
+ "eff=0.7 #efficiency\n",
+ "m1=1.8 \n",
+ "m3=1. \n",
+ "#calculations\n",
+ "t5=t1*math.pow(pa/p1,((n-1)/n))\n",
+ "v4=math.sqrt(2*g*J*cp*(t5-t1)/eff) \n",
+ "v3=(m1+m3)/m1 *v4\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Velocity of air =\",v3,\" ft/s\")\n",
+ "print '%s' %(\"The answer given in textbook is wrong. Please verify with a calculator\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of air = 1178.8 ft/s\n",
+ "The answer given in textbook is wrong. Please verify with a calculator\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 391"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure required\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v2=1180. #ft/s\n",
+ "etan=0.95\n",
+ "cp=0.24\n",
+ "n=1.4\n",
+ "p2=12.\n",
+ "#calculations\n",
+ "dh=v2*v2 /(etan*223.8*223.8)\n",
+ "dt=dh/cp\n",
+ "t2d=560. #R\n",
+ "t1=t2d+ etan*dt\n",
+ "t2=554. #R\n",
+ "pr=math.pow(t1/t2,(n/(n-1)))\n",
+ "p1=p2*pr\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure required =\",p1,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure required = 24.06 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_19.ipynb b/Thermodynamics_for_Engineers/Chapter_19.ipynb
new file mode 100755
index 00000000..c26dff35
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_19.ipynb
@@ -0,0 +1,625 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b29f8e2efad125f0a07d8b8d8802c0ef47be5bcad75aba5a349e2e6b7da74bda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 - Gas Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency in all cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1200. #F\n",
+ "tmax2=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "t2=t1*math.pow(pr,(n-1)/n)\n",
+ "work=cp*(t2-t1)\n",
+ "t4=(tmax+460) /math.pow(pr,(n-1)/n)\n",
+ "twork=cp*(tmax+460-t4)\n",
+ "net=twork-work\n",
+ "eff=(1- 1/math.pow(pr,(n-1)/n))*100\n",
+ "Qs=cp*(tmax+460-t2)\n",
+ "ett=net/Qs *100\n",
+ "t42=(tmax2+460)/math.pow(pr,(n-1)/n)\n",
+ "twork2=cp*(tmax2+460-t42)\n",
+ "net2=twork2-work\n",
+ "Qs2=cp*(tmax2+460-t2)\n",
+ "eff3=net2/Qs2 *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",work,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Thermal efficiency =\",ett,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Turbine work =\",twork2,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Net work =\",net2,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 3, Thermal efficiency =\",eff3,\" percent,\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 75.7 Btu/lb\n",
+ "\n",
+ " Turbine work = 146.9 Btu/lb\n",
+ "\n",
+ " Net work = 71.2 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Turbine work = 173.4 Btu/lb\n",
+ "\n",
+ " In case 2, Net work = 97.7 Btu/lb\n",
+ "\n",
+ " In case 3, Thermal efficiency = 36.9 percent,\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated compressor work, internal work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "work=75.9 #Btu/lb\n",
+ "twork=173.5 #Btu/lb\n",
+ "eta=0.8\n",
+ "t2=856 #R\n",
+ "t1=540 #R\n",
+ "t4=1960 #R\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "cwork=work/eta\n",
+ "internal=twork*eta\n",
+ "net=-cwork+internal\n",
+ "t2d=(t2-t1)/eta + t1\n",
+ "Qs=cp*(t4-t2d)\n",
+ "eff=net/Qs *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated compressor work =\",cwork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal work =\",internal,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated compressor work = 94.9 Btu/lb\n",
+ "\n",
+ " Internal work = 138.8 Btu/lb\n",
+ "\n",
+ " Net work = 43.9 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 17.86 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "eff=0.97\n",
+ "c1=94.9 #Btu/lb\n",
+ "c2=138.8 #Btu/lb\n",
+ "ntee=246. #Btu/lb\n",
+ "#calculations\n",
+ "cwork=c1/eff\n",
+ "twork=c2*eff\n",
+ "net=twork-cwork\n",
+ "etat=net/ntee *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 97.8 Btu/lb\n",
+ "\n",
+ " Turbine work = 134.6 Btu/lb\n",
+ "\n",
+ " Net work = 36.8 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 15.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265. #Btu/lb\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "eff=net/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 35.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265.\n",
+ "ef=0.95\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "Qs2=Qs/ef\n",
+ "eff=net/Qs2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 33.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initalization of variables\n",
+ "pr1=1.0590\n",
+ "pr2=4.396\n",
+ "p1=14. #psia\n",
+ "#calculations\n",
+ "prr=pr2/pr1\n",
+ "p2=p1*prr\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 58.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work\n",
+ "#Initalization of variables\n",
+ "t1=540. #R\n",
+ "h1=129.06\n",
+ "pr1=1.386\n",
+ "cr=5.\n",
+ "#calculations\n",
+ "pr2=pr1*cr\n",
+ "print '%s' %(\"From air tables,\")\n",
+ "h2=204.63\n",
+ "cwork=h2-h1\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air tables,\n",
+ "Compressor work = 75.57 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the turbine work\n",
+ "#Initalization of variables\n",
+ "cr=5.\n",
+ "pr3=176.73 #psia\n",
+ "h3=14580.3 #Btu/mol\n",
+ "M=28.9\n",
+ "#calculations\n",
+ "pr4=pr3/cr\n",
+ "h4=9409.\n",
+ "twork=h3-h4\n",
+ "turb=twork/M\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Turbine work =\",turb,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turbine work = 178.9 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the air fuel ratio\n",
+ "#Initalization of variables\n",
+ "chem=19000. #Btu/lb\n",
+ "m1=204.63 #Btu/lb\n",
+ "M=28.9\n",
+ "w=14580.3\n",
+ "#calculations\n",
+ "ma=(chem-w/M)/(w/M -m1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Air fuel ratio =\",ma,\"lb air/lb fuel\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 61.7 lb air/lb fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency of the unit\n",
+ "#Initalization of variables\n",
+ "cp=0.24\n",
+ "h=138.8\n",
+ "t3=1960. #R\n",
+ "#calculations\n",
+ "t4d=t3-h/cp\n",
+ "Qs=cp*(t3-t4d)\n",
+ "work=43.9 #Btu/lb\n",
+ "etat=work/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency of the unit =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency of the unit = 31.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t2=t1*math.pow(pint/p1,((n-1)/n))\n",
+ "t4=t1*math.pow(p3/pint,((n-1)/n))\n",
+ "w=cp*(t4-t1)\n",
+ "w2=2*w\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qa=cp*(tmax+460-t2)\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eta,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 31.25 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "w2=75.9 #Btu/lb\n",
+ "Qa=265 #Btu/lb\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "t3=1558. #R\n",
+ "net=125.8 #Btu/lb\n",
+ "#calculations\n",
+ "Q=cp*(tmax+460-t3)\n",
+ "Qt=2*Q\n",
+ "eta=net/Qt*100.\n",
+ "#results \n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 65.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_19_1.ipynb b/Thermodynamics_for_Engineers/Chapter_19_1.ipynb
new file mode 100755
index 00000000..c26dff35
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_19_1.ipynb
@@ -0,0 +1,625 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b29f8e2efad125f0a07d8b8d8802c0ef47be5bcad75aba5a349e2e6b7da74bda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 - Gas Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency in all cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1200. #F\n",
+ "tmax2=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "t2=t1*math.pow(pr,(n-1)/n)\n",
+ "work=cp*(t2-t1)\n",
+ "t4=(tmax+460) /math.pow(pr,(n-1)/n)\n",
+ "twork=cp*(tmax+460-t4)\n",
+ "net=twork-work\n",
+ "eff=(1- 1/math.pow(pr,(n-1)/n))*100\n",
+ "Qs=cp*(tmax+460-t2)\n",
+ "ett=net/Qs *100\n",
+ "t42=(tmax2+460)/math.pow(pr,(n-1)/n)\n",
+ "twork2=cp*(tmax2+460-t42)\n",
+ "net2=twork2-work\n",
+ "Qs2=cp*(tmax2+460-t2)\n",
+ "eff3=net2/Qs2 *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",work,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Thermal efficiency =\",ett,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Turbine work =\",twork2,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Net work =\",net2,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 3, Thermal efficiency =\",eff3,\" percent,\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 75.7 Btu/lb\n",
+ "\n",
+ " Turbine work = 146.9 Btu/lb\n",
+ "\n",
+ " Net work = 71.2 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Turbine work = 173.4 Btu/lb\n",
+ "\n",
+ " In case 2, Net work = 97.7 Btu/lb\n",
+ "\n",
+ " In case 3, Thermal efficiency = 36.9 percent,\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated compressor work, internal work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "work=75.9 #Btu/lb\n",
+ "twork=173.5 #Btu/lb\n",
+ "eta=0.8\n",
+ "t2=856 #R\n",
+ "t1=540 #R\n",
+ "t4=1960 #R\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "cwork=work/eta\n",
+ "internal=twork*eta\n",
+ "net=-cwork+internal\n",
+ "t2d=(t2-t1)/eta + t1\n",
+ "Qs=cp*(t4-t2d)\n",
+ "eff=net/Qs *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated compressor work =\",cwork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal work =\",internal,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated compressor work = 94.9 Btu/lb\n",
+ "\n",
+ " Internal work = 138.8 Btu/lb\n",
+ "\n",
+ " Net work = 43.9 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 17.86 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "eff=0.97\n",
+ "c1=94.9 #Btu/lb\n",
+ "c2=138.8 #Btu/lb\n",
+ "ntee=246. #Btu/lb\n",
+ "#calculations\n",
+ "cwork=c1/eff\n",
+ "twork=c2*eff\n",
+ "net=twork-cwork\n",
+ "etat=net/ntee *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 97.8 Btu/lb\n",
+ "\n",
+ " Turbine work = 134.6 Btu/lb\n",
+ "\n",
+ " Net work = 36.8 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 15.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265. #Btu/lb\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "eff=net/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 35.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265.\n",
+ "ef=0.95\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "Qs2=Qs/ef\n",
+ "eff=net/Qs2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 33.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initalization of variables\n",
+ "pr1=1.0590\n",
+ "pr2=4.396\n",
+ "p1=14. #psia\n",
+ "#calculations\n",
+ "prr=pr2/pr1\n",
+ "p2=p1*prr\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 58.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work\n",
+ "#Initalization of variables\n",
+ "t1=540. #R\n",
+ "h1=129.06\n",
+ "pr1=1.386\n",
+ "cr=5.\n",
+ "#calculations\n",
+ "pr2=pr1*cr\n",
+ "print '%s' %(\"From air tables,\")\n",
+ "h2=204.63\n",
+ "cwork=h2-h1\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air tables,\n",
+ "Compressor work = 75.57 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the turbine work\n",
+ "#Initalization of variables\n",
+ "cr=5.\n",
+ "pr3=176.73 #psia\n",
+ "h3=14580.3 #Btu/mol\n",
+ "M=28.9\n",
+ "#calculations\n",
+ "pr4=pr3/cr\n",
+ "h4=9409.\n",
+ "twork=h3-h4\n",
+ "turb=twork/M\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Turbine work =\",turb,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turbine work = 178.9 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the air fuel ratio\n",
+ "#Initalization of variables\n",
+ "chem=19000. #Btu/lb\n",
+ "m1=204.63 #Btu/lb\n",
+ "M=28.9\n",
+ "w=14580.3\n",
+ "#calculations\n",
+ "ma=(chem-w/M)/(w/M -m1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Air fuel ratio =\",ma,\"lb air/lb fuel\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 61.7 lb air/lb fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency of the unit\n",
+ "#Initalization of variables\n",
+ "cp=0.24\n",
+ "h=138.8\n",
+ "t3=1960. #R\n",
+ "#calculations\n",
+ "t4d=t3-h/cp\n",
+ "Qs=cp*(t3-t4d)\n",
+ "work=43.9 #Btu/lb\n",
+ "etat=work/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency of the unit =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency of the unit = 31.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t2=t1*math.pow(pint/p1,((n-1)/n))\n",
+ "t4=t1*math.pow(p3/pint,((n-1)/n))\n",
+ "w=cp*(t4-t1)\n",
+ "w2=2*w\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qa=cp*(tmax+460-t2)\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eta,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 31.25 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "w2=75.9 #Btu/lb\n",
+ "Qa=265 #Btu/lb\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "t3=1558. #R\n",
+ "net=125.8 #Btu/lb\n",
+ "#calculations\n",
+ "Q=cp*(tmax+460-t3)\n",
+ "Qt=2*Q\n",
+ "eta=net/Qt*100.\n",
+ "#results \n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 65.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_19_2.ipynb b/Thermodynamics_for_Engineers/Chapter_19_2.ipynb
new file mode 100755
index 00000000..c26dff35
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_19_2.ipynb
@@ -0,0 +1,625 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b29f8e2efad125f0a07d8b8d8802c0ef47be5bcad75aba5a349e2e6b7da74bda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 - Gas Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency in all cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1200. #F\n",
+ "tmax2=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "t2=t1*math.pow(pr,(n-1)/n)\n",
+ "work=cp*(t2-t1)\n",
+ "t4=(tmax+460) /math.pow(pr,(n-1)/n)\n",
+ "twork=cp*(tmax+460-t4)\n",
+ "net=twork-work\n",
+ "eff=(1- 1/math.pow(pr,(n-1)/n))*100\n",
+ "Qs=cp*(tmax+460-t2)\n",
+ "ett=net/Qs *100\n",
+ "t42=(tmax2+460)/math.pow(pr,(n-1)/n)\n",
+ "twork2=cp*(tmax2+460-t42)\n",
+ "net2=twork2-work\n",
+ "Qs2=cp*(tmax2+460-t2)\n",
+ "eff3=net2/Qs2 *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",work,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Thermal efficiency =\",ett,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Turbine work =\",twork2,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Net work =\",net2,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 3, Thermal efficiency =\",eff3,\" percent,\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 75.7 Btu/lb\n",
+ "\n",
+ " Turbine work = 146.9 Btu/lb\n",
+ "\n",
+ " Net work = 71.2 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Turbine work = 173.4 Btu/lb\n",
+ "\n",
+ " In case 2, Net work = 97.7 Btu/lb\n",
+ "\n",
+ " In case 3, Thermal efficiency = 36.9 percent,\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated compressor work, internal work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "work=75.9 #Btu/lb\n",
+ "twork=173.5 #Btu/lb\n",
+ "eta=0.8\n",
+ "t2=856 #R\n",
+ "t1=540 #R\n",
+ "t4=1960 #R\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "cwork=work/eta\n",
+ "internal=twork*eta\n",
+ "net=-cwork+internal\n",
+ "t2d=(t2-t1)/eta + t1\n",
+ "Qs=cp*(t4-t2d)\n",
+ "eff=net/Qs *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated compressor work =\",cwork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal work =\",internal,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated compressor work = 94.9 Btu/lb\n",
+ "\n",
+ " Internal work = 138.8 Btu/lb\n",
+ "\n",
+ " Net work = 43.9 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 17.86 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "eff=0.97\n",
+ "c1=94.9 #Btu/lb\n",
+ "c2=138.8 #Btu/lb\n",
+ "ntee=246. #Btu/lb\n",
+ "#calculations\n",
+ "cwork=c1/eff\n",
+ "twork=c2*eff\n",
+ "net=twork-cwork\n",
+ "etat=net/ntee *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 97.8 Btu/lb\n",
+ "\n",
+ " Turbine work = 134.6 Btu/lb\n",
+ "\n",
+ " Net work = 36.8 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 15.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265. #Btu/lb\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "eff=net/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 35.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265.\n",
+ "ef=0.95\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "Qs2=Qs/ef\n",
+ "eff=net/Qs2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 33.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initalization of variables\n",
+ "pr1=1.0590\n",
+ "pr2=4.396\n",
+ "p1=14. #psia\n",
+ "#calculations\n",
+ "prr=pr2/pr1\n",
+ "p2=p1*prr\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 58.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work\n",
+ "#Initalization of variables\n",
+ "t1=540. #R\n",
+ "h1=129.06\n",
+ "pr1=1.386\n",
+ "cr=5.\n",
+ "#calculations\n",
+ "pr2=pr1*cr\n",
+ "print '%s' %(\"From air tables,\")\n",
+ "h2=204.63\n",
+ "cwork=h2-h1\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air tables,\n",
+ "Compressor work = 75.57 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the turbine work\n",
+ "#Initalization of variables\n",
+ "cr=5.\n",
+ "pr3=176.73 #psia\n",
+ "h3=14580.3 #Btu/mol\n",
+ "M=28.9\n",
+ "#calculations\n",
+ "pr4=pr3/cr\n",
+ "h4=9409.\n",
+ "twork=h3-h4\n",
+ "turb=twork/M\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Turbine work =\",turb,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turbine work = 178.9 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the air fuel ratio\n",
+ "#Initalization of variables\n",
+ "chem=19000. #Btu/lb\n",
+ "m1=204.63 #Btu/lb\n",
+ "M=28.9\n",
+ "w=14580.3\n",
+ "#calculations\n",
+ "ma=(chem-w/M)/(w/M -m1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Air fuel ratio =\",ma,\"lb air/lb fuel\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 61.7 lb air/lb fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency of the unit\n",
+ "#Initalization of variables\n",
+ "cp=0.24\n",
+ "h=138.8\n",
+ "t3=1960. #R\n",
+ "#calculations\n",
+ "t4d=t3-h/cp\n",
+ "Qs=cp*(t3-t4d)\n",
+ "work=43.9 #Btu/lb\n",
+ "etat=work/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency of the unit =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency of the unit = 31.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t2=t1*math.pow(pint/p1,((n-1)/n))\n",
+ "t4=t1*math.pow(p3/pint,((n-1)/n))\n",
+ "w=cp*(t4-t1)\n",
+ "w2=2*w\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qa=cp*(tmax+460-t2)\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eta,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 31.25 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "w2=75.9 #Btu/lb\n",
+ "Qa=265 #Btu/lb\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "t3=1558. #R\n",
+ "net=125.8 #Btu/lb\n",
+ "#calculations\n",
+ "Q=cp*(tmax+460-t3)\n",
+ "Qt=2*Q\n",
+ "eta=net/Qt*100.\n",
+ "#results \n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 65.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_19_3.ipynb b/Thermodynamics_for_Engineers/Chapter_19_3.ipynb
new file mode 100755
index 00000000..c26dff35
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_19_3.ipynb
@@ -0,0 +1,625 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b29f8e2efad125f0a07d8b8d8802c0ef47be5bcad75aba5a349e2e6b7da74bda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 - Gas Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency in all cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1200. #F\n",
+ "tmax2=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "t2=t1*math.pow(pr,(n-1)/n)\n",
+ "work=cp*(t2-t1)\n",
+ "t4=(tmax+460) /math.pow(pr,(n-1)/n)\n",
+ "twork=cp*(tmax+460-t4)\n",
+ "net=twork-work\n",
+ "eff=(1- 1/math.pow(pr,(n-1)/n))*100\n",
+ "Qs=cp*(tmax+460-t2)\n",
+ "ett=net/Qs *100\n",
+ "t42=(tmax2+460)/math.pow(pr,(n-1)/n)\n",
+ "twork2=cp*(tmax2+460-t42)\n",
+ "net2=twork2-work\n",
+ "Qs2=cp*(tmax2+460-t2)\n",
+ "eff3=net2/Qs2 *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",work,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Thermal efficiency =\",ett,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Turbine work =\",twork2,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Net work =\",net2,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 3, Thermal efficiency =\",eff3,\" percent,\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 75.7 Btu/lb\n",
+ "\n",
+ " Turbine work = 146.9 Btu/lb\n",
+ "\n",
+ " Net work = 71.2 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Turbine work = 173.4 Btu/lb\n",
+ "\n",
+ " In case 2, Net work = 97.7 Btu/lb\n",
+ "\n",
+ " In case 3, Thermal efficiency = 36.9 percent,\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated compressor work, internal work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "work=75.9 #Btu/lb\n",
+ "twork=173.5 #Btu/lb\n",
+ "eta=0.8\n",
+ "t2=856 #R\n",
+ "t1=540 #R\n",
+ "t4=1960 #R\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "cwork=work/eta\n",
+ "internal=twork*eta\n",
+ "net=-cwork+internal\n",
+ "t2d=(t2-t1)/eta + t1\n",
+ "Qs=cp*(t4-t2d)\n",
+ "eff=net/Qs *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated compressor work =\",cwork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal work =\",internal,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated compressor work = 94.9 Btu/lb\n",
+ "\n",
+ " Internal work = 138.8 Btu/lb\n",
+ "\n",
+ " Net work = 43.9 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 17.86 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "eff=0.97\n",
+ "c1=94.9 #Btu/lb\n",
+ "c2=138.8 #Btu/lb\n",
+ "ntee=246. #Btu/lb\n",
+ "#calculations\n",
+ "cwork=c1/eff\n",
+ "twork=c2*eff\n",
+ "net=twork-cwork\n",
+ "etat=net/ntee *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 97.8 Btu/lb\n",
+ "\n",
+ " Turbine work = 134.6 Btu/lb\n",
+ "\n",
+ " Net work = 36.8 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 15.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265. #Btu/lb\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "eff=net/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 35.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265.\n",
+ "ef=0.95\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "Qs2=Qs/ef\n",
+ "eff=net/Qs2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 33.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initalization of variables\n",
+ "pr1=1.0590\n",
+ "pr2=4.396\n",
+ "p1=14. #psia\n",
+ "#calculations\n",
+ "prr=pr2/pr1\n",
+ "p2=p1*prr\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 58.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work\n",
+ "#Initalization of variables\n",
+ "t1=540. #R\n",
+ "h1=129.06\n",
+ "pr1=1.386\n",
+ "cr=5.\n",
+ "#calculations\n",
+ "pr2=pr1*cr\n",
+ "print '%s' %(\"From air tables,\")\n",
+ "h2=204.63\n",
+ "cwork=h2-h1\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air tables,\n",
+ "Compressor work = 75.57 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the turbine work\n",
+ "#Initalization of variables\n",
+ "cr=5.\n",
+ "pr3=176.73 #psia\n",
+ "h3=14580.3 #Btu/mol\n",
+ "M=28.9\n",
+ "#calculations\n",
+ "pr4=pr3/cr\n",
+ "h4=9409.\n",
+ "twork=h3-h4\n",
+ "turb=twork/M\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Turbine work =\",turb,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turbine work = 178.9 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the air fuel ratio\n",
+ "#Initalization of variables\n",
+ "chem=19000. #Btu/lb\n",
+ "m1=204.63 #Btu/lb\n",
+ "M=28.9\n",
+ "w=14580.3\n",
+ "#calculations\n",
+ "ma=(chem-w/M)/(w/M -m1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Air fuel ratio =\",ma,\"lb air/lb fuel\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 61.7 lb air/lb fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency of the unit\n",
+ "#Initalization of variables\n",
+ "cp=0.24\n",
+ "h=138.8\n",
+ "t3=1960. #R\n",
+ "#calculations\n",
+ "t4d=t3-h/cp\n",
+ "Qs=cp*(t3-t4d)\n",
+ "work=43.9 #Btu/lb\n",
+ "etat=work/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency of the unit =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency of the unit = 31.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t2=t1*math.pow(pint/p1,((n-1)/n))\n",
+ "t4=t1*math.pow(p3/pint,((n-1)/n))\n",
+ "w=cp*(t4-t1)\n",
+ "w2=2*w\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qa=cp*(tmax+460-t2)\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eta,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 31.25 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "w2=75.9 #Btu/lb\n",
+ "Qa=265 #Btu/lb\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "t3=1558. #R\n",
+ "net=125.8 #Btu/lb\n",
+ "#calculations\n",
+ "Q=cp*(tmax+460-t3)\n",
+ "Qt=2*Q\n",
+ "eta=net/Qt*100.\n",
+ "#results \n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 65.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_19_4.ipynb b/Thermodynamics_for_Engineers/Chapter_19_4.ipynb
new file mode 100755
index 00000000..c26dff35
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_19_4.ipynb
@@ -0,0 +1,625 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b29f8e2efad125f0a07d8b8d8802c0ef47be5bcad75aba5a349e2e6b7da74bda"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 19 - Gas Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency in all cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1200. #F\n",
+ "tmax2=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "t2=t1*math.pow(pr,(n-1)/n)\n",
+ "work=cp*(t2-t1)\n",
+ "t4=(tmax+460) /math.pow(pr,(n-1)/n)\n",
+ "twork=cp*(tmax+460-t4)\n",
+ "net=twork-work\n",
+ "eff=(1- 1/math.pow(pr,(n-1)/n))*100\n",
+ "Qs=cp*(tmax+460-t2)\n",
+ "ett=net/Qs *100\n",
+ "t42=(tmax2+460)/math.pow(pr,(n-1)/n)\n",
+ "twork2=cp*(tmax2+460-t42)\n",
+ "net2=twork2-work\n",
+ "Qs2=cp*(tmax2+460-t2)\n",
+ "eff3=net2/Qs2 *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",work,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Thermal efficiency =\",ett,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Turbine work =\",twork2,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Net work =\",net2,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 3, Thermal efficiency =\",eff3,\" percent,\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 75.7 Btu/lb\n",
+ "\n",
+ " Turbine work = 146.9 Btu/lb\n",
+ "\n",
+ " Net work = 71.2 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 36.9 percent\n",
+ "\n",
+ " In case 2, Turbine work = 173.4 Btu/lb\n",
+ "\n",
+ " In case 2, Net work = 97.7 Btu/lb\n",
+ "\n",
+ " In case 3, Thermal efficiency = 36.9 percent,\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 400"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the indicated compressor work, internal work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "work=75.9 #Btu/lb\n",
+ "twork=173.5 #Btu/lb\n",
+ "eta=0.8\n",
+ "t2=856 #R\n",
+ "t1=540 #R\n",
+ "t4=1960 #R\n",
+ "cp=0.24\n",
+ "#calculations\n",
+ "cwork=work/eta\n",
+ "internal=twork*eta\n",
+ "net=-cwork+internal\n",
+ "t2d=(t2-t1)/eta + t1\n",
+ "Qs=cp*(t4-t2d)\n",
+ "eff=net/Qs *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Indicated compressor work =\",cwork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal work =\",internal,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.2f %s' %(\"\\n Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Indicated compressor work = 94.9 Btu/lb\n",
+ "\n",
+ " Internal work = 138.8 Btu/lb\n",
+ "\n",
+ " Net work = 43.9 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 17.86 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work, turbine work and thermal efficiency\n",
+ "#Initalization of variables\n",
+ "eff=0.97\n",
+ "c1=94.9 #Btu/lb\n",
+ "c2=138.8 #Btu/lb\n",
+ "ntee=246. #Btu/lb\n",
+ "#calculations\n",
+ "cwork=c1/eff\n",
+ "twork=c2*eff\n",
+ "net=twork-cwork\n",
+ "etat=net/ntee *100\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Turbine work =\",twork,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Net work =\",net,\" Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Thermal efficiency =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Compressor work = 97.8 Btu/lb\n",
+ "\n",
+ " Turbine work = 134.6 Btu/lb\n",
+ "\n",
+ " Net work = 36.8 Btu/lb\n",
+ "\n",
+ " Thermal efficiency = 15.0 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265. #Btu/lb\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "eff=net/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 35.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "pr=5.\n",
+ "p1=14. #psia\n",
+ "pd=3. #psi\n",
+ "pen=70. #psia\n",
+ "tin=1960. #R\n",
+ "n=1.4\n",
+ "cp=0.24\n",
+ "Qs=265.\n",
+ "ef=0.95\n",
+ "#calculations\n",
+ "p2=p1*pr\n",
+ "pe=pen-pd\n",
+ "prt=pe/p1\n",
+ "tex=tin/math.pow(prt,(n-1)/n)\n",
+ "twork=cp*(tin-tex)\n",
+ "net=twork-75.9\n",
+ "Qs2=Qs/ef\n",
+ "eff=net/Qs2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eff,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 33.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final pressure\n",
+ "#Initalization of variables\n",
+ "pr1=1.0590\n",
+ "pr2=4.396\n",
+ "p1=14. #psia\n",
+ "#calculations\n",
+ "prr=pr2/pr1\n",
+ "p2=p1*prr\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Final pressure =\",p2,\" psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Final pressure = 58.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 404"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the compressor work\n",
+ "#Initalization of variables\n",
+ "t1=540. #R\n",
+ "h1=129.06\n",
+ "pr1=1.386\n",
+ "cr=5.\n",
+ "#calculations\n",
+ "pr2=pr1*cr\n",
+ "print '%s' %(\"From air tables,\")\n",
+ "h2=204.63\n",
+ "cwork=h2-h1\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Compressor work =\",cwork,\"Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air tables,\n",
+ "Compressor work = 75.57 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the turbine work\n",
+ "#Initalization of variables\n",
+ "cr=5.\n",
+ "pr3=176.73 #psia\n",
+ "h3=14580.3 #Btu/mol\n",
+ "M=28.9\n",
+ "#calculations\n",
+ "pr4=pr3/cr\n",
+ "h4=9409.\n",
+ "twork=h3-h4\n",
+ "turb=twork/M\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Turbine work =\",turb,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Turbine work = 178.9 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the air fuel ratio\n",
+ "#Initalization of variables\n",
+ "chem=19000. #Btu/lb\n",
+ "m1=204.63 #Btu/lb\n",
+ "M=28.9\n",
+ "w=14580.3\n",
+ "#calculations\n",
+ "ma=(chem-w/M)/(w/M -m1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Air fuel ratio =\",ma,\"lb air/lb fuel\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Air fuel ratio = 61.7 lb air/lb fuel\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - Pg 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency of the unit\n",
+ "#Initalization of variables\n",
+ "cp=0.24\n",
+ "h=138.8\n",
+ "t3=1960. #R\n",
+ "#calculations\n",
+ "t4d=t3-h/cp\n",
+ "Qs=cp*(t3-t4d)\n",
+ "work=43.9 #Btu/lb\n",
+ "etat=work/Qs *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency of the unit =\",etat,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency of the unit = 31.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11 - Pg 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t2=t1*math.pow(pint/p1,((n-1)/n))\n",
+ "t4=t1*math.pow(p3/pint,((n-1)/n))\n",
+ "w=cp*(t4-t1)\n",
+ "w2=2*w\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qa=cp*(tmax+460-t2)\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eta,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 31.25 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "p1=14. #psia\n",
+ "p3=70. #psia\n",
+ "w2=75.9 #Btu/lb\n",
+ "Qa=265 #Btu/lb\n",
+ "#calculations\n",
+ "pint=p1*math.sqrt(pr)\n",
+ "t6=(tmax+460)/math.pow(p3/pint,((n-1)/n))\n",
+ "t8=(tmax+460)/math.pow(pint/p1,((n-1)/n))\n",
+ "work=cp*(tmax+460-t6)\n",
+ "w22=2*work\n",
+ "net=w22-w2\n",
+ "Qb=cp*(tmax+460-t6)\n",
+ "Qt=Qa+Qb\n",
+ "eta=net/Qt*100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\"percent\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13 - Pg 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "n=1.4\n",
+ "t1=540. #R\n",
+ "tmax=1500. #F\n",
+ "pr=5.\n",
+ "cp=0.24\n",
+ "t3=1558. #R\n",
+ "net=125.8 #Btu/lb\n",
+ "#calculations\n",
+ "Q=cp*(tmax+460-t3)\n",
+ "Qt=2*Q\n",
+ "eta=net/Qt*100.\n",
+ "#results \n",
+ "print '%s %.1f %s' %(\"Thermal efficiency =\",eta,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 65.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_20.ipynb b/Thermodynamics_for_Engineers/Chapter_20.ipynb
new file mode 100755
index 00000000..a4aa5154
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_20.ipynb
@@ -0,0 +1,323 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:48ba3152e0507fdec1fb7b61f0c70216b3a6f652a3d1e87f4355bb850157326b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 - Vapor Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "Qs=825.1 #Btu/lb\n",
+ "ds=0.9588\n",
+ "t1=101.74 #F\n",
+ "th=400.95 #F\n",
+ "#calculations\n",
+ "Qr=ds*(t1+459.69)\n",
+ "work=Qs-Qr\n",
+ "eta=work/Qs*100.\n",
+ "eta2=(th-t1)/(th+459.69) *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"In case 1, Thermal efficiency =\",eta,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Thermal efficiency =\",eta2,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Thermal efficiency = 34.76 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 34.77 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sfg=1.8456\n",
+ "sf=1.9782 \n",
+ "h2=1201.1 #Btu/lb\n",
+ "hf=1106 #Btu/lb\n",
+ "hfg=1036.3 #Btu/lb\n",
+ "v=0.01616 #m^3/kg\n",
+ "p2=250 #psia\n",
+ "p1=1#psia\n",
+ "J=778\n",
+ "#calculations\n",
+ "x3=1+ (s2-sf)/sfg\n",
+ "h3=hf-(1-x3)*hfg\n",
+ "h4=69.7\n",
+ "Wp=v*144*(p2-p1)/J\n",
+ "h1=h4+Wp\n",
+ "etat=((h2-h3)-Wp)/(h2-h1) *100.\n",
+ "eta2=(h2-h3)/(h2-h4)*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Efficieny =\",etat,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Efficieny =\",eta2,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Efficieny = 30.79 percent\n",
+ "\n",
+ " In case 2, Efficieny = 30.83 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate, enthalpy of exhaust steam, internal engine efficiency and excess heat removed\n",
+ "#Initalization of variables\n",
+ "p=40000 #kW\n",
+ "ef=0.98\n",
+ "rate=302000. #lb\n",
+ "s3=1.6001\n",
+ "h2=1490.1\n",
+ "loss=600.\n",
+ "v=400. #ft/s\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "#calculations\n",
+ "out=p/(0.746*ef)\n",
+ "srate=rate/out\n",
+ "X=-(s3-1.9782)/1.8456\n",
+ "h3=1106 - X*1036.3\n",
+ "theoturb=h2-h3\n",
+ "intturb=(out+loss)*2544/rate\n",
+ "Ie=intturb/theoturb *100\n",
+ "h3d=h2-intturb-v*v /(2*g*J)\n",
+ "hexa=h3d+ v*v /(2*g*J)\n",
+ "excess=rate*(hexa-h3)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate =\",srate,\"lb/shaft hp-hr\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal engine efficiency =\",Ie,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Enthalpy of exhaust steam =\",h3d,\" Btu/lb\")\n",
+ "print '%s %d %s' %(\"\\n Excess heat to be removed =\",excess,\"Btu/hr\")\n",
+ "print '%s' %(\"The answers are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate = 5.52 lb/shaft hp-hr\n",
+ "\n",
+ " Internal engine efficiency = 78.1 percent\n",
+ "\n",
+ " Enthalpy of exhaust steam = 1021.0 Btu/lb\n",
+ "\n",
+ " Excess heat to be removed = 39395745 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sf=1.6993\n",
+ "sfg=1.3313\n",
+ "hf=1164.1 #Btu/lb\n",
+ "hfg=945.3 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=852.3 #Btu/lb\n",
+ "#calculations\n",
+ "X3=-(s2-sf)/sfg\n",
+ "h3=hf-X3*hfg\n",
+ "h4=218.82\n",
+ "h6=h4\n",
+ "h5=69.7\n",
+ "x=(h4-h5)/(h3-h5)\n",
+ "W= h2-h3+ (1-x)*(h3-h1)\n",
+ "Qs=h2-h4\n",
+ "eff=W/Qs *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.56 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "h6=157.933 #Btu/lb\n",
+ "s2=0.11626\n",
+ "sf=0.16594\n",
+ "sfg=0.14755\n",
+ "hf=139.095 #Btu/lb\n",
+ "hfg=126.98 #Btu/lb\n",
+ "h5=12.016 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=69.7 #Btu/lb\n",
+ "w=348.8 #Btu/lb\n",
+ "m=0.0745 #lb\n",
+ "#calculations\n",
+ "x7=-(s2-sf)/sfg\n",
+ "h7=hf-x7*hfg\n",
+ "dh6=h6-h7\n",
+ "mr=(h7-h5)/(h2-h1)\n",
+ "work=w*m\n",
+ "tw=work+dh6\n",
+ "dh65=h6-h5\n",
+ "eff=tw/dh65 *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 60.02 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available portion of heat transferred\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "m=1 #lb\n",
+ "cp=0.26\n",
+ "t2=1800+460. #R\n",
+ "t1=400.95+460 #R\n",
+ "x=0.6\n",
+ "sink=100+460. #R\n",
+ "tm=2600+460. #R\n",
+ "#calculations\n",
+ "Q=m*cp*(t2-t1)\n",
+ "ds=m*cp*math.log((t2/t1))\n",
+ "tds=ds*(sink)\n",
+ "avail=Q-tds\n",
+ "hf=Q*x/(1-x)\n",
+ "av2=hf*(tm-sink)/(tm)\n",
+ "Qt=Q+hf\n",
+ "av=avail+av2\n",
+ "per=av/Qt *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Available portion of heat transferred =\",per,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available portion of heat transferred = 73.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_20_1.ipynb b/Thermodynamics_for_Engineers/Chapter_20_1.ipynb
new file mode 100755
index 00000000..a4aa5154
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_20_1.ipynb
@@ -0,0 +1,323 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:48ba3152e0507fdec1fb7b61f0c70216b3a6f652a3d1e87f4355bb850157326b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 - Vapor Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "Qs=825.1 #Btu/lb\n",
+ "ds=0.9588\n",
+ "t1=101.74 #F\n",
+ "th=400.95 #F\n",
+ "#calculations\n",
+ "Qr=ds*(t1+459.69)\n",
+ "work=Qs-Qr\n",
+ "eta=work/Qs*100.\n",
+ "eta2=(th-t1)/(th+459.69) *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"In case 1, Thermal efficiency =\",eta,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Thermal efficiency =\",eta2,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Thermal efficiency = 34.76 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 34.77 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sfg=1.8456\n",
+ "sf=1.9782 \n",
+ "h2=1201.1 #Btu/lb\n",
+ "hf=1106 #Btu/lb\n",
+ "hfg=1036.3 #Btu/lb\n",
+ "v=0.01616 #m^3/kg\n",
+ "p2=250 #psia\n",
+ "p1=1#psia\n",
+ "J=778\n",
+ "#calculations\n",
+ "x3=1+ (s2-sf)/sfg\n",
+ "h3=hf-(1-x3)*hfg\n",
+ "h4=69.7\n",
+ "Wp=v*144*(p2-p1)/J\n",
+ "h1=h4+Wp\n",
+ "etat=((h2-h3)-Wp)/(h2-h1) *100.\n",
+ "eta2=(h2-h3)/(h2-h4)*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Efficieny =\",etat,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Efficieny =\",eta2,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Efficieny = 30.79 percent\n",
+ "\n",
+ " In case 2, Efficieny = 30.83 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate, enthalpy of exhaust steam, internal engine efficiency and excess heat removed\n",
+ "#Initalization of variables\n",
+ "p=40000 #kW\n",
+ "ef=0.98\n",
+ "rate=302000. #lb\n",
+ "s3=1.6001\n",
+ "h2=1490.1\n",
+ "loss=600.\n",
+ "v=400. #ft/s\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "#calculations\n",
+ "out=p/(0.746*ef)\n",
+ "srate=rate/out\n",
+ "X=-(s3-1.9782)/1.8456\n",
+ "h3=1106 - X*1036.3\n",
+ "theoturb=h2-h3\n",
+ "intturb=(out+loss)*2544/rate\n",
+ "Ie=intturb/theoturb *100\n",
+ "h3d=h2-intturb-v*v /(2*g*J)\n",
+ "hexa=h3d+ v*v /(2*g*J)\n",
+ "excess=rate*(hexa-h3)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate =\",srate,\"lb/shaft hp-hr\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal engine efficiency =\",Ie,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Enthalpy of exhaust steam =\",h3d,\" Btu/lb\")\n",
+ "print '%s %d %s' %(\"\\n Excess heat to be removed =\",excess,\"Btu/hr\")\n",
+ "print '%s' %(\"The answers are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate = 5.52 lb/shaft hp-hr\n",
+ "\n",
+ " Internal engine efficiency = 78.1 percent\n",
+ "\n",
+ " Enthalpy of exhaust steam = 1021.0 Btu/lb\n",
+ "\n",
+ " Excess heat to be removed = 39395745 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sf=1.6993\n",
+ "sfg=1.3313\n",
+ "hf=1164.1 #Btu/lb\n",
+ "hfg=945.3 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=852.3 #Btu/lb\n",
+ "#calculations\n",
+ "X3=-(s2-sf)/sfg\n",
+ "h3=hf-X3*hfg\n",
+ "h4=218.82\n",
+ "h6=h4\n",
+ "h5=69.7\n",
+ "x=(h4-h5)/(h3-h5)\n",
+ "W= h2-h3+ (1-x)*(h3-h1)\n",
+ "Qs=h2-h4\n",
+ "eff=W/Qs *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.56 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "h6=157.933 #Btu/lb\n",
+ "s2=0.11626\n",
+ "sf=0.16594\n",
+ "sfg=0.14755\n",
+ "hf=139.095 #Btu/lb\n",
+ "hfg=126.98 #Btu/lb\n",
+ "h5=12.016 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=69.7 #Btu/lb\n",
+ "w=348.8 #Btu/lb\n",
+ "m=0.0745 #lb\n",
+ "#calculations\n",
+ "x7=-(s2-sf)/sfg\n",
+ "h7=hf-x7*hfg\n",
+ "dh6=h6-h7\n",
+ "mr=(h7-h5)/(h2-h1)\n",
+ "work=w*m\n",
+ "tw=work+dh6\n",
+ "dh65=h6-h5\n",
+ "eff=tw/dh65 *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 60.02 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available portion of heat transferred\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "m=1 #lb\n",
+ "cp=0.26\n",
+ "t2=1800+460. #R\n",
+ "t1=400.95+460 #R\n",
+ "x=0.6\n",
+ "sink=100+460. #R\n",
+ "tm=2600+460. #R\n",
+ "#calculations\n",
+ "Q=m*cp*(t2-t1)\n",
+ "ds=m*cp*math.log((t2/t1))\n",
+ "tds=ds*(sink)\n",
+ "avail=Q-tds\n",
+ "hf=Q*x/(1-x)\n",
+ "av2=hf*(tm-sink)/(tm)\n",
+ "Qt=Q+hf\n",
+ "av=avail+av2\n",
+ "per=av/Qt *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Available portion of heat transferred =\",per,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available portion of heat transferred = 73.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_20_2.ipynb b/Thermodynamics_for_Engineers/Chapter_20_2.ipynb
new file mode 100755
index 00000000..a4aa5154
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_20_2.ipynb
@@ -0,0 +1,323 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:48ba3152e0507fdec1fb7b61f0c70216b3a6f652a3d1e87f4355bb850157326b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 - Vapor Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "Qs=825.1 #Btu/lb\n",
+ "ds=0.9588\n",
+ "t1=101.74 #F\n",
+ "th=400.95 #F\n",
+ "#calculations\n",
+ "Qr=ds*(t1+459.69)\n",
+ "work=Qs-Qr\n",
+ "eta=work/Qs*100.\n",
+ "eta2=(th-t1)/(th+459.69) *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"In case 1, Thermal efficiency =\",eta,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Thermal efficiency =\",eta2,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Thermal efficiency = 34.76 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 34.77 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sfg=1.8456\n",
+ "sf=1.9782 \n",
+ "h2=1201.1 #Btu/lb\n",
+ "hf=1106 #Btu/lb\n",
+ "hfg=1036.3 #Btu/lb\n",
+ "v=0.01616 #m^3/kg\n",
+ "p2=250 #psia\n",
+ "p1=1#psia\n",
+ "J=778\n",
+ "#calculations\n",
+ "x3=1+ (s2-sf)/sfg\n",
+ "h3=hf-(1-x3)*hfg\n",
+ "h4=69.7\n",
+ "Wp=v*144*(p2-p1)/J\n",
+ "h1=h4+Wp\n",
+ "etat=((h2-h3)-Wp)/(h2-h1) *100.\n",
+ "eta2=(h2-h3)/(h2-h4)*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Efficieny =\",etat,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Efficieny =\",eta2,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Efficieny = 30.79 percent\n",
+ "\n",
+ " In case 2, Efficieny = 30.83 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate, enthalpy of exhaust steam, internal engine efficiency and excess heat removed\n",
+ "#Initalization of variables\n",
+ "p=40000 #kW\n",
+ "ef=0.98\n",
+ "rate=302000. #lb\n",
+ "s3=1.6001\n",
+ "h2=1490.1\n",
+ "loss=600.\n",
+ "v=400. #ft/s\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "#calculations\n",
+ "out=p/(0.746*ef)\n",
+ "srate=rate/out\n",
+ "X=-(s3-1.9782)/1.8456\n",
+ "h3=1106 - X*1036.3\n",
+ "theoturb=h2-h3\n",
+ "intturb=(out+loss)*2544/rate\n",
+ "Ie=intturb/theoturb *100\n",
+ "h3d=h2-intturb-v*v /(2*g*J)\n",
+ "hexa=h3d+ v*v /(2*g*J)\n",
+ "excess=rate*(hexa-h3)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate =\",srate,\"lb/shaft hp-hr\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal engine efficiency =\",Ie,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Enthalpy of exhaust steam =\",h3d,\" Btu/lb\")\n",
+ "print '%s %d %s' %(\"\\n Excess heat to be removed =\",excess,\"Btu/hr\")\n",
+ "print '%s' %(\"The answers are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate = 5.52 lb/shaft hp-hr\n",
+ "\n",
+ " Internal engine efficiency = 78.1 percent\n",
+ "\n",
+ " Enthalpy of exhaust steam = 1021.0 Btu/lb\n",
+ "\n",
+ " Excess heat to be removed = 39395745 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sf=1.6993\n",
+ "sfg=1.3313\n",
+ "hf=1164.1 #Btu/lb\n",
+ "hfg=945.3 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=852.3 #Btu/lb\n",
+ "#calculations\n",
+ "X3=-(s2-sf)/sfg\n",
+ "h3=hf-X3*hfg\n",
+ "h4=218.82\n",
+ "h6=h4\n",
+ "h5=69.7\n",
+ "x=(h4-h5)/(h3-h5)\n",
+ "W= h2-h3+ (1-x)*(h3-h1)\n",
+ "Qs=h2-h4\n",
+ "eff=W/Qs *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.56 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "h6=157.933 #Btu/lb\n",
+ "s2=0.11626\n",
+ "sf=0.16594\n",
+ "sfg=0.14755\n",
+ "hf=139.095 #Btu/lb\n",
+ "hfg=126.98 #Btu/lb\n",
+ "h5=12.016 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=69.7 #Btu/lb\n",
+ "w=348.8 #Btu/lb\n",
+ "m=0.0745 #lb\n",
+ "#calculations\n",
+ "x7=-(s2-sf)/sfg\n",
+ "h7=hf-x7*hfg\n",
+ "dh6=h6-h7\n",
+ "mr=(h7-h5)/(h2-h1)\n",
+ "work=w*m\n",
+ "tw=work+dh6\n",
+ "dh65=h6-h5\n",
+ "eff=tw/dh65 *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 60.02 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available portion of heat transferred\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "m=1 #lb\n",
+ "cp=0.26\n",
+ "t2=1800+460. #R\n",
+ "t1=400.95+460 #R\n",
+ "x=0.6\n",
+ "sink=100+460. #R\n",
+ "tm=2600+460. #R\n",
+ "#calculations\n",
+ "Q=m*cp*(t2-t1)\n",
+ "ds=m*cp*math.log((t2/t1))\n",
+ "tds=ds*(sink)\n",
+ "avail=Q-tds\n",
+ "hf=Q*x/(1-x)\n",
+ "av2=hf*(tm-sink)/(tm)\n",
+ "Qt=Q+hf\n",
+ "av=avail+av2\n",
+ "per=av/Qt *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Available portion of heat transferred =\",per,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available portion of heat transferred = 73.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_20_3.ipynb b/Thermodynamics_for_Engineers/Chapter_20_3.ipynb
new file mode 100755
index 00000000..a4aa5154
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_20_3.ipynb
@@ -0,0 +1,323 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:48ba3152e0507fdec1fb7b61f0c70216b3a6f652a3d1e87f4355bb850157326b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 - Vapor Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "Qs=825.1 #Btu/lb\n",
+ "ds=0.9588\n",
+ "t1=101.74 #F\n",
+ "th=400.95 #F\n",
+ "#calculations\n",
+ "Qr=ds*(t1+459.69)\n",
+ "work=Qs-Qr\n",
+ "eta=work/Qs*100.\n",
+ "eta2=(th-t1)/(th+459.69) *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"In case 1, Thermal efficiency =\",eta,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Thermal efficiency =\",eta2,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Thermal efficiency = 34.76 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 34.77 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sfg=1.8456\n",
+ "sf=1.9782 \n",
+ "h2=1201.1 #Btu/lb\n",
+ "hf=1106 #Btu/lb\n",
+ "hfg=1036.3 #Btu/lb\n",
+ "v=0.01616 #m^3/kg\n",
+ "p2=250 #psia\n",
+ "p1=1#psia\n",
+ "J=778\n",
+ "#calculations\n",
+ "x3=1+ (s2-sf)/sfg\n",
+ "h3=hf-(1-x3)*hfg\n",
+ "h4=69.7\n",
+ "Wp=v*144*(p2-p1)/J\n",
+ "h1=h4+Wp\n",
+ "etat=((h2-h3)-Wp)/(h2-h1) *100.\n",
+ "eta2=(h2-h3)/(h2-h4)*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Efficieny =\",etat,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Efficieny =\",eta2,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Efficieny = 30.79 percent\n",
+ "\n",
+ " In case 2, Efficieny = 30.83 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate, enthalpy of exhaust steam, internal engine efficiency and excess heat removed\n",
+ "#Initalization of variables\n",
+ "p=40000 #kW\n",
+ "ef=0.98\n",
+ "rate=302000. #lb\n",
+ "s3=1.6001\n",
+ "h2=1490.1\n",
+ "loss=600.\n",
+ "v=400. #ft/s\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "#calculations\n",
+ "out=p/(0.746*ef)\n",
+ "srate=rate/out\n",
+ "X=-(s3-1.9782)/1.8456\n",
+ "h3=1106 - X*1036.3\n",
+ "theoturb=h2-h3\n",
+ "intturb=(out+loss)*2544/rate\n",
+ "Ie=intturb/theoturb *100\n",
+ "h3d=h2-intturb-v*v /(2*g*J)\n",
+ "hexa=h3d+ v*v /(2*g*J)\n",
+ "excess=rate*(hexa-h3)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate =\",srate,\"lb/shaft hp-hr\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal engine efficiency =\",Ie,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Enthalpy of exhaust steam =\",h3d,\" Btu/lb\")\n",
+ "print '%s %d %s' %(\"\\n Excess heat to be removed =\",excess,\"Btu/hr\")\n",
+ "print '%s' %(\"The answers are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate = 5.52 lb/shaft hp-hr\n",
+ "\n",
+ " Internal engine efficiency = 78.1 percent\n",
+ "\n",
+ " Enthalpy of exhaust steam = 1021.0 Btu/lb\n",
+ "\n",
+ " Excess heat to be removed = 39395745 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sf=1.6993\n",
+ "sfg=1.3313\n",
+ "hf=1164.1 #Btu/lb\n",
+ "hfg=945.3 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=852.3 #Btu/lb\n",
+ "#calculations\n",
+ "X3=-(s2-sf)/sfg\n",
+ "h3=hf-X3*hfg\n",
+ "h4=218.82\n",
+ "h6=h4\n",
+ "h5=69.7\n",
+ "x=(h4-h5)/(h3-h5)\n",
+ "W= h2-h3+ (1-x)*(h3-h1)\n",
+ "Qs=h2-h4\n",
+ "eff=W/Qs *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.56 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "h6=157.933 #Btu/lb\n",
+ "s2=0.11626\n",
+ "sf=0.16594\n",
+ "sfg=0.14755\n",
+ "hf=139.095 #Btu/lb\n",
+ "hfg=126.98 #Btu/lb\n",
+ "h5=12.016 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=69.7 #Btu/lb\n",
+ "w=348.8 #Btu/lb\n",
+ "m=0.0745 #lb\n",
+ "#calculations\n",
+ "x7=-(s2-sf)/sfg\n",
+ "h7=hf-x7*hfg\n",
+ "dh6=h6-h7\n",
+ "mr=(h7-h5)/(h2-h1)\n",
+ "work=w*m\n",
+ "tw=work+dh6\n",
+ "dh65=h6-h5\n",
+ "eff=tw/dh65 *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 60.02 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available portion of heat transferred\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "m=1 #lb\n",
+ "cp=0.26\n",
+ "t2=1800+460. #R\n",
+ "t1=400.95+460 #R\n",
+ "x=0.6\n",
+ "sink=100+460. #R\n",
+ "tm=2600+460. #R\n",
+ "#calculations\n",
+ "Q=m*cp*(t2-t1)\n",
+ "ds=m*cp*math.log((t2/t1))\n",
+ "tds=ds*(sink)\n",
+ "avail=Q-tds\n",
+ "hf=Q*x/(1-x)\n",
+ "av2=hf*(tm-sink)/(tm)\n",
+ "Qt=Q+hf\n",
+ "av=avail+av2\n",
+ "per=av/Qt *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Available portion of heat transferred =\",per,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available portion of heat transferred = 73.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_20_4.ipynb b/Thermodynamics_for_Engineers/Chapter_20_4.ipynb
new file mode 100755
index 00000000..a4aa5154
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_20_4.ipynb
@@ -0,0 +1,323 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:48ba3152e0507fdec1fb7b61f0c70216b3a6f652a3d1e87f4355bb850157326b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 20 - Vapor Power Cycles"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "Qs=825.1 #Btu/lb\n",
+ "ds=0.9588\n",
+ "t1=101.74 #F\n",
+ "th=400.95 #F\n",
+ "#calculations\n",
+ "Qr=ds*(t1+459.69)\n",
+ "work=Qs-Qr\n",
+ "eta=work/Qs*100.\n",
+ "eta2=(th-t1)/(th+459.69) *100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"In case 1, Thermal efficiency =\",eta,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Thermal efficiency =\",eta2,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Thermal efficiency = 34.76 percent\n",
+ "\n",
+ " In case 2, Thermal efficiency = 34.77 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency in both cases\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sfg=1.8456\n",
+ "sf=1.9782 \n",
+ "h2=1201.1 #Btu/lb\n",
+ "hf=1106 #Btu/lb\n",
+ "hfg=1036.3 #Btu/lb\n",
+ "v=0.01616 #m^3/kg\n",
+ "p2=250 #psia\n",
+ "p1=1#psia\n",
+ "J=778\n",
+ "#calculations\n",
+ "x3=1+ (s2-sf)/sfg\n",
+ "h3=hf-(1-x3)*hfg\n",
+ "h4=69.7\n",
+ "Wp=v*144*(p2-p1)/J\n",
+ "h1=h4+Wp\n",
+ "etat=((h2-h3)-Wp)/(h2-h1) *100.\n",
+ "eta2=(h2-h3)/(h2-h4)*100.\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Efficieny =\",etat,\"percent\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2, Efficieny =\",eta2,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Efficieny = 30.79 percent\n",
+ "\n",
+ " In case 2, Efficieny = 30.83 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate, enthalpy of exhaust steam, internal engine efficiency and excess heat removed\n",
+ "#Initalization of variables\n",
+ "p=40000 #kW\n",
+ "ef=0.98\n",
+ "rate=302000. #lb\n",
+ "s3=1.6001\n",
+ "h2=1490.1\n",
+ "loss=600.\n",
+ "v=400. #ft/s\n",
+ "g=32.2 #ft/s^2\n",
+ "J=778.\n",
+ "#calculations\n",
+ "out=p/(0.746*ef)\n",
+ "srate=rate/out\n",
+ "X=-(s3-1.9782)/1.8456\n",
+ "h3=1106 - X*1036.3\n",
+ "theoturb=h2-h3\n",
+ "intturb=(out+loss)*2544/rate\n",
+ "Ie=intturb/theoturb *100\n",
+ "h3d=h2-intturb-v*v /(2*g*J)\n",
+ "hexa=h3d+ v*v /(2*g*J)\n",
+ "excess=rate*(hexa-h3)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate =\",srate,\"lb/shaft hp-hr\")\n",
+ "print '%s %.1f %s' %(\"\\n Internal engine efficiency =\",Ie,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Enthalpy of exhaust steam =\",h3d,\" Btu/lb\")\n",
+ "print '%s %d %s' %(\"\\n Excess heat to be removed =\",excess,\"Btu/hr\")\n",
+ "print '%s' %(\"The answers are a bit different due to rounding off error in textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate = 5.52 lb/shaft hp-hr\n",
+ "\n",
+ " Internal engine efficiency = 78.1 percent\n",
+ "\n",
+ " Enthalpy of exhaust steam = 1021.0 Btu/lb\n",
+ "\n",
+ " Excess heat to be removed = 39395745 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "s2=1.5263\n",
+ "sf=1.6993\n",
+ "sfg=1.3313\n",
+ "hf=1164.1 #Btu/lb\n",
+ "hfg=945.3 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=852.3 #Btu/lb\n",
+ "#calculations\n",
+ "X3=-(s2-sf)/sfg\n",
+ "h3=hf-X3*hfg\n",
+ "h4=218.82\n",
+ "h6=h4\n",
+ "h5=69.7\n",
+ "x=(h4-h5)/(h3-h5)\n",
+ "W= h2-h3+ (1-x)*(h3-h1)\n",
+ "Qs=h2-h4\n",
+ "eff=W/Qs *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 32.56 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 442"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the thermal efficiency\n",
+ "#Initalization of variables\n",
+ "h6=157.933 #Btu/lb\n",
+ "s2=0.11626\n",
+ "sf=0.16594\n",
+ "sfg=0.14755\n",
+ "hf=139.095 #Btu/lb\n",
+ "hfg=126.98 #Btu/lb\n",
+ "h5=12.016 #Btu/lb\n",
+ "h2=1201.1 #Btu/lb\n",
+ "h1=69.7 #Btu/lb\n",
+ "w=348.8 #Btu/lb\n",
+ "m=0.0745 #lb\n",
+ "#calculations\n",
+ "x7=-(s2-sf)/sfg\n",
+ "h7=hf-x7*hfg\n",
+ "dh6=h6-h7\n",
+ "mr=(h7-h5)/(h2-h1)\n",
+ "work=w*m\n",
+ "tw=work+dh6\n",
+ "dh65=h6-h5\n",
+ "eff=tw/dh65 *100\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Thermal efficiency =\",eff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thermal efficiency = 60.02 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available portion of heat transferred\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "m=1 #lb\n",
+ "cp=0.26\n",
+ "t2=1800+460. #R\n",
+ "t1=400.95+460 #R\n",
+ "x=0.6\n",
+ "sink=100+460. #R\n",
+ "tm=2600+460. #R\n",
+ "#calculations\n",
+ "Q=m*cp*(t2-t1)\n",
+ "ds=m*cp*math.log((t2/t1))\n",
+ "tds=ds*(sink)\n",
+ "avail=Q-tds\n",
+ "hf=Q*x/(1-x)\n",
+ "av2=hf*(tm-sink)/(tm)\n",
+ "Qt=Q+hf\n",
+ "av=avail+av2\n",
+ "per=av/Qt *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Available portion of heat transferred =\",per,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available portion of heat transferred = 73.6 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_21.ipynb b/Thermodynamics_for_Engineers/Chapter_21.ipynb
new file mode 100755
index 00000000..567cdacb
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_21.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6b7b3e2ab4fd666f452b57925a83681d6f79a5b142e4777bdab089506c8a15bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 - Steam Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the flow rate\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "p2=190. #psia\n",
+ "p1=110. #psia\n",
+ "v1=2.456 \n",
+ "k=1.3\n",
+ "J=778.\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "v2=v1*math.pow(p2/p1,(1/k))\n",
+ "dh=k/(k-1) *144/J *(p2*v1-p1*v2)\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144.*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.32 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the rate of flow\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "h1=1205.8 #Btu/lb\n",
+ "s2=1.5594\n",
+ "sf=1.5948\n",
+ "sfg=1.1117\n",
+ "hf=1188.9 #Btu/lb\n",
+ "hfg=883.2 #Btu/lb\n",
+ "vf=4.049\n",
+ "vfg=vf-0.018\n",
+ "k=1.3\n",
+ "J=778\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "x2=-(s2-sf)/sfg\n",
+ "h2=hf-x2*hfg\n",
+ "v2=vf-x2*vfg\n",
+ "dh=h1-h2\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.19 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work, angle and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "alp=14*math.pi/180. #degrees\n",
+ "vb=900. #ft/s\n",
+ "v1=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vrc=v1*math.cos(alp) - vb\n",
+ "W=(2*vrc)/g *vb\n",
+ "eta=W/(v1*v1/ (2*g)) *100.\n",
+ "bet=math.atan(v1*math.sin(alp) /vrc)*180/math.pi\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\" ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Blade angle =\",bet,\" degrees\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 69082 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 91.8 percent\n",
+ "\n",
+ " Blade angle = 23.3 degrees\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234. #ft/s\n",
+ "v2=532. #ft/s \n",
+ "kb=0.92\n",
+ "alp=20. #degrees\n",
+ "ve=900. #ft/s\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp*math.pi/180.)\n",
+ "W=(v1+vrc)*ve/g\n",
+ "eta=W/(r*r /(2*g)) *100.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\"ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 67023 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 89.1 percent\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade reheat in both cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234.\n",
+ "v2=532.\n",
+ "kb=0.92\n",
+ "alp=20*math.pi/180. #degrees\n",
+ "ve=900.\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "J=778.\n",
+ "w=67000.\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp)\n",
+ "reheat=(vr*vr - vr2*vr2 )/(2*g*J)\n",
+ "v22=math.sqrt((vrc-ve)*(vrc-ve) +(vr2*math.sin(alp))*(vr2*math.sin(alp)))\n",
+ "ein=r*r /(2*g*J)\n",
+ "eout=w/J + v22*v22 /(2*g*J)\n",
+ "re2=ein-eout\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Blade reheat =\",reheat,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Blade reheat =\",re2,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Blade reheat = 5.54 Btu/lb\n",
+ "\n",
+ " In case 2, Blade reheat = 5.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the intermediate pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4\n",
+ "s1=1.6842\n",
+ "sf=1.7319\n",
+ "sfg=1.3962\n",
+ "fac=1.05\n",
+ "x2=0.7\n",
+ "#calculations\n",
+ "x6=-(s1-sf)/sfg\n",
+ "h6=1156.3 - x6*960.1\n",
+ "dh6=h1-h6\n",
+ "drop= fac*h6/2\n",
+ "h2=h1-drop\n",
+ "first=(1-x2)*drop\n",
+ "h3=1264.1 +first\n",
+ "h4=1157 #Btu/lb\n",
+ "fac2=(drop+153)/dh6\n",
+ "print '%s' %(\"From air charts,\")\n",
+ "p2=107 #psia\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Intermediate pressure =\",p2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air charts,\n",
+ "Intermediate pressure = 107 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the shaft ouput and engine efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "reh=1.047\n",
+ "dh6=292.8\n",
+ "x2=0.7\n",
+ "flow=98000 #lb/hr\n",
+ "loss=200 #hp\n",
+ "#calculations\n",
+ "intwork=reh*dh6*x2\n",
+ "inthp=intwork*flow/2544\n",
+ "sout=inthp-loss\n",
+ "swork=sout*2544/flow\n",
+ "seff=swork/290.1 *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Shaft output =\",sout,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft engine efficiency =\",seff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shaft output = 8066 hp\n",
+ "\n",
+ " Shaft engine efficiency = 72.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature and pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4 #Btu/lb\n",
+ "h2=214.5 #Btu/lb\n",
+ "#calculations\n",
+ "hexa=h1-h2\n",
+ "print '%s' %(\"From Air tables,\")\n",
+ "pe=20 #psia\n",
+ "te=321.5 #F\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Exit Pressure =\",pe,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit temperature =\",te,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Air tables,\n",
+ "Exit Pressure = 20 psia\n",
+ "\n",
+ " Exit temperature = 321.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate required\n",
+ "#Initalization of variables\n",
+ "flow=98000. #lb/hr\n",
+ "loss=200. #hp\n",
+ "x= 0.11 #percent\n",
+ "shp=3000. #hp\n",
+ "#calculations\n",
+ "sflow = x*flow\n",
+ "sflow2= sflow + (flow-sflow)*shp/8060.\n",
+ "srate=sflow2/shp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate required =\",srate,\" lb/hp-hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate required = 14.41 lb/hp-hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_21_1.ipynb b/Thermodynamics_for_Engineers/Chapter_21_1.ipynb
new file mode 100755
index 00000000..567cdacb
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_21_1.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6b7b3e2ab4fd666f452b57925a83681d6f79a5b142e4777bdab089506c8a15bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 - Steam Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the flow rate\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "p2=190. #psia\n",
+ "p1=110. #psia\n",
+ "v1=2.456 \n",
+ "k=1.3\n",
+ "J=778.\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "v2=v1*math.pow(p2/p1,(1/k))\n",
+ "dh=k/(k-1) *144/J *(p2*v1-p1*v2)\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144.*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.32 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the rate of flow\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "h1=1205.8 #Btu/lb\n",
+ "s2=1.5594\n",
+ "sf=1.5948\n",
+ "sfg=1.1117\n",
+ "hf=1188.9 #Btu/lb\n",
+ "hfg=883.2 #Btu/lb\n",
+ "vf=4.049\n",
+ "vfg=vf-0.018\n",
+ "k=1.3\n",
+ "J=778\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "x2=-(s2-sf)/sfg\n",
+ "h2=hf-x2*hfg\n",
+ "v2=vf-x2*vfg\n",
+ "dh=h1-h2\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.19 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work, angle and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "alp=14*math.pi/180. #degrees\n",
+ "vb=900. #ft/s\n",
+ "v1=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vrc=v1*math.cos(alp) - vb\n",
+ "W=(2*vrc)/g *vb\n",
+ "eta=W/(v1*v1/ (2*g)) *100.\n",
+ "bet=math.atan(v1*math.sin(alp) /vrc)*180/math.pi\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\" ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Blade angle =\",bet,\" degrees\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 69082 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 91.8 percent\n",
+ "\n",
+ " Blade angle = 23.3 degrees\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234. #ft/s\n",
+ "v2=532. #ft/s \n",
+ "kb=0.92\n",
+ "alp=20. #degrees\n",
+ "ve=900. #ft/s\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp*math.pi/180.)\n",
+ "W=(v1+vrc)*ve/g\n",
+ "eta=W/(r*r /(2*g)) *100.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\"ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 67023 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 89.1 percent\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade reheat in both cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234.\n",
+ "v2=532.\n",
+ "kb=0.92\n",
+ "alp=20*math.pi/180. #degrees\n",
+ "ve=900.\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "J=778.\n",
+ "w=67000.\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp)\n",
+ "reheat=(vr*vr - vr2*vr2 )/(2*g*J)\n",
+ "v22=math.sqrt((vrc-ve)*(vrc-ve) +(vr2*math.sin(alp))*(vr2*math.sin(alp)))\n",
+ "ein=r*r /(2*g*J)\n",
+ "eout=w/J + v22*v22 /(2*g*J)\n",
+ "re2=ein-eout\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Blade reheat =\",reheat,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Blade reheat =\",re2,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Blade reheat = 5.54 Btu/lb\n",
+ "\n",
+ " In case 2, Blade reheat = 5.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the intermediate pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4\n",
+ "s1=1.6842\n",
+ "sf=1.7319\n",
+ "sfg=1.3962\n",
+ "fac=1.05\n",
+ "x2=0.7\n",
+ "#calculations\n",
+ "x6=-(s1-sf)/sfg\n",
+ "h6=1156.3 - x6*960.1\n",
+ "dh6=h1-h6\n",
+ "drop= fac*h6/2\n",
+ "h2=h1-drop\n",
+ "first=(1-x2)*drop\n",
+ "h3=1264.1 +first\n",
+ "h4=1157 #Btu/lb\n",
+ "fac2=(drop+153)/dh6\n",
+ "print '%s' %(\"From air charts,\")\n",
+ "p2=107 #psia\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Intermediate pressure =\",p2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air charts,\n",
+ "Intermediate pressure = 107 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the shaft ouput and engine efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "reh=1.047\n",
+ "dh6=292.8\n",
+ "x2=0.7\n",
+ "flow=98000 #lb/hr\n",
+ "loss=200 #hp\n",
+ "#calculations\n",
+ "intwork=reh*dh6*x2\n",
+ "inthp=intwork*flow/2544\n",
+ "sout=inthp-loss\n",
+ "swork=sout*2544/flow\n",
+ "seff=swork/290.1 *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Shaft output =\",sout,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft engine efficiency =\",seff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shaft output = 8066 hp\n",
+ "\n",
+ " Shaft engine efficiency = 72.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature and pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4 #Btu/lb\n",
+ "h2=214.5 #Btu/lb\n",
+ "#calculations\n",
+ "hexa=h1-h2\n",
+ "print '%s' %(\"From Air tables,\")\n",
+ "pe=20 #psia\n",
+ "te=321.5 #F\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Exit Pressure =\",pe,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit temperature =\",te,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Air tables,\n",
+ "Exit Pressure = 20 psia\n",
+ "\n",
+ " Exit temperature = 321.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate required\n",
+ "#Initalization of variables\n",
+ "flow=98000. #lb/hr\n",
+ "loss=200. #hp\n",
+ "x= 0.11 #percent\n",
+ "shp=3000. #hp\n",
+ "#calculations\n",
+ "sflow = x*flow\n",
+ "sflow2= sflow + (flow-sflow)*shp/8060.\n",
+ "srate=sflow2/shp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate required =\",srate,\" lb/hp-hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate required = 14.41 lb/hp-hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_21_2.ipynb b/Thermodynamics_for_Engineers/Chapter_21_2.ipynb
new file mode 100755
index 00000000..567cdacb
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_21_2.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6b7b3e2ab4fd666f452b57925a83681d6f79a5b142e4777bdab089506c8a15bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 - Steam Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the flow rate\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "p2=190. #psia\n",
+ "p1=110. #psia\n",
+ "v1=2.456 \n",
+ "k=1.3\n",
+ "J=778.\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "v2=v1*math.pow(p2/p1,(1/k))\n",
+ "dh=k/(k-1) *144/J *(p2*v1-p1*v2)\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144.*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.32 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the rate of flow\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "h1=1205.8 #Btu/lb\n",
+ "s2=1.5594\n",
+ "sf=1.5948\n",
+ "sfg=1.1117\n",
+ "hf=1188.9 #Btu/lb\n",
+ "hfg=883.2 #Btu/lb\n",
+ "vf=4.049\n",
+ "vfg=vf-0.018\n",
+ "k=1.3\n",
+ "J=778\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "x2=-(s2-sf)/sfg\n",
+ "h2=hf-x2*hfg\n",
+ "v2=vf-x2*vfg\n",
+ "dh=h1-h2\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.19 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work, angle and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "alp=14*math.pi/180. #degrees\n",
+ "vb=900. #ft/s\n",
+ "v1=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vrc=v1*math.cos(alp) - vb\n",
+ "W=(2*vrc)/g *vb\n",
+ "eta=W/(v1*v1/ (2*g)) *100.\n",
+ "bet=math.atan(v1*math.sin(alp) /vrc)*180/math.pi\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\" ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Blade angle =\",bet,\" degrees\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 69082 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 91.8 percent\n",
+ "\n",
+ " Blade angle = 23.3 degrees\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234. #ft/s\n",
+ "v2=532. #ft/s \n",
+ "kb=0.92\n",
+ "alp=20. #degrees\n",
+ "ve=900. #ft/s\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp*math.pi/180.)\n",
+ "W=(v1+vrc)*ve/g\n",
+ "eta=W/(r*r /(2*g)) *100.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\"ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 67023 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 89.1 percent\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade reheat in both cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234.\n",
+ "v2=532.\n",
+ "kb=0.92\n",
+ "alp=20*math.pi/180. #degrees\n",
+ "ve=900.\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "J=778.\n",
+ "w=67000.\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp)\n",
+ "reheat=(vr*vr - vr2*vr2 )/(2*g*J)\n",
+ "v22=math.sqrt((vrc-ve)*(vrc-ve) +(vr2*math.sin(alp))*(vr2*math.sin(alp)))\n",
+ "ein=r*r /(2*g*J)\n",
+ "eout=w/J + v22*v22 /(2*g*J)\n",
+ "re2=ein-eout\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Blade reheat =\",reheat,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Blade reheat =\",re2,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Blade reheat = 5.54 Btu/lb\n",
+ "\n",
+ " In case 2, Blade reheat = 5.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the intermediate pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4\n",
+ "s1=1.6842\n",
+ "sf=1.7319\n",
+ "sfg=1.3962\n",
+ "fac=1.05\n",
+ "x2=0.7\n",
+ "#calculations\n",
+ "x6=-(s1-sf)/sfg\n",
+ "h6=1156.3 - x6*960.1\n",
+ "dh6=h1-h6\n",
+ "drop= fac*h6/2\n",
+ "h2=h1-drop\n",
+ "first=(1-x2)*drop\n",
+ "h3=1264.1 +first\n",
+ "h4=1157 #Btu/lb\n",
+ "fac2=(drop+153)/dh6\n",
+ "print '%s' %(\"From air charts,\")\n",
+ "p2=107 #psia\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Intermediate pressure =\",p2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air charts,\n",
+ "Intermediate pressure = 107 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the shaft ouput and engine efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "reh=1.047\n",
+ "dh6=292.8\n",
+ "x2=0.7\n",
+ "flow=98000 #lb/hr\n",
+ "loss=200 #hp\n",
+ "#calculations\n",
+ "intwork=reh*dh6*x2\n",
+ "inthp=intwork*flow/2544\n",
+ "sout=inthp-loss\n",
+ "swork=sout*2544/flow\n",
+ "seff=swork/290.1 *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Shaft output =\",sout,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft engine efficiency =\",seff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shaft output = 8066 hp\n",
+ "\n",
+ " Shaft engine efficiency = 72.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature and pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4 #Btu/lb\n",
+ "h2=214.5 #Btu/lb\n",
+ "#calculations\n",
+ "hexa=h1-h2\n",
+ "print '%s' %(\"From Air tables,\")\n",
+ "pe=20 #psia\n",
+ "te=321.5 #F\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Exit Pressure =\",pe,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit temperature =\",te,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Air tables,\n",
+ "Exit Pressure = 20 psia\n",
+ "\n",
+ " Exit temperature = 321.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate required\n",
+ "#Initalization of variables\n",
+ "flow=98000. #lb/hr\n",
+ "loss=200. #hp\n",
+ "x= 0.11 #percent\n",
+ "shp=3000. #hp\n",
+ "#calculations\n",
+ "sflow = x*flow\n",
+ "sflow2= sflow + (flow-sflow)*shp/8060.\n",
+ "srate=sflow2/shp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate required =\",srate,\" lb/hp-hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate required = 14.41 lb/hp-hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_21_3.ipynb b/Thermodynamics_for_Engineers/Chapter_21_3.ipynb
new file mode 100755
index 00000000..567cdacb
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_21_3.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6b7b3e2ab4fd666f452b57925a83681d6f79a5b142e4777bdab089506c8a15bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 - Steam Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the flow rate\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "p2=190. #psia\n",
+ "p1=110. #psia\n",
+ "v1=2.456 \n",
+ "k=1.3\n",
+ "J=778.\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "v2=v1*math.pow(p2/p1,(1/k))\n",
+ "dh=k/(k-1) *144/J *(p2*v1-p1*v2)\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144.*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.32 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the rate of flow\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "h1=1205.8 #Btu/lb\n",
+ "s2=1.5594\n",
+ "sf=1.5948\n",
+ "sfg=1.1117\n",
+ "hf=1188.9 #Btu/lb\n",
+ "hfg=883.2 #Btu/lb\n",
+ "vf=4.049\n",
+ "vfg=vf-0.018\n",
+ "k=1.3\n",
+ "J=778\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "x2=-(s2-sf)/sfg\n",
+ "h2=hf-x2*hfg\n",
+ "v2=vf-x2*vfg\n",
+ "dh=h1-h2\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.19 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work, angle and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "alp=14*math.pi/180. #degrees\n",
+ "vb=900. #ft/s\n",
+ "v1=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vrc=v1*math.cos(alp) - vb\n",
+ "W=(2*vrc)/g *vb\n",
+ "eta=W/(v1*v1/ (2*g)) *100.\n",
+ "bet=math.atan(v1*math.sin(alp) /vrc)*180/math.pi\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\" ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Blade angle =\",bet,\" degrees\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 69082 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 91.8 percent\n",
+ "\n",
+ " Blade angle = 23.3 degrees\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234. #ft/s\n",
+ "v2=532. #ft/s \n",
+ "kb=0.92\n",
+ "alp=20. #degrees\n",
+ "ve=900. #ft/s\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp*math.pi/180.)\n",
+ "W=(v1+vrc)*ve/g\n",
+ "eta=W/(r*r /(2*g)) *100.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\"ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 67023 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 89.1 percent\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade reheat in both cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234.\n",
+ "v2=532.\n",
+ "kb=0.92\n",
+ "alp=20*math.pi/180. #degrees\n",
+ "ve=900.\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "J=778.\n",
+ "w=67000.\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp)\n",
+ "reheat=(vr*vr - vr2*vr2 )/(2*g*J)\n",
+ "v22=math.sqrt((vrc-ve)*(vrc-ve) +(vr2*math.sin(alp))*(vr2*math.sin(alp)))\n",
+ "ein=r*r /(2*g*J)\n",
+ "eout=w/J + v22*v22 /(2*g*J)\n",
+ "re2=ein-eout\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Blade reheat =\",reheat,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Blade reheat =\",re2,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Blade reheat = 5.54 Btu/lb\n",
+ "\n",
+ " In case 2, Blade reheat = 5.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the intermediate pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4\n",
+ "s1=1.6842\n",
+ "sf=1.7319\n",
+ "sfg=1.3962\n",
+ "fac=1.05\n",
+ "x2=0.7\n",
+ "#calculations\n",
+ "x6=-(s1-sf)/sfg\n",
+ "h6=1156.3 - x6*960.1\n",
+ "dh6=h1-h6\n",
+ "drop= fac*h6/2\n",
+ "h2=h1-drop\n",
+ "first=(1-x2)*drop\n",
+ "h3=1264.1 +first\n",
+ "h4=1157 #Btu/lb\n",
+ "fac2=(drop+153)/dh6\n",
+ "print '%s' %(\"From air charts,\")\n",
+ "p2=107 #psia\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Intermediate pressure =\",p2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air charts,\n",
+ "Intermediate pressure = 107 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the shaft ouput and engine efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "reh=1.047\n",
+ "dh6=292.8\n",
+ "x2=0.7\n",
+ "flow=98000 #lb/hr\n",
+ "loss=200 #hp\n",
+ "#calculations\n",
+ "intwork=reh*dh6*x2\n",
+ "inthp=intwork*flow/2544\n",
+ "sout=inthp-loss\n",
+ "swork=sout*2544/flow\n",
+ "seff=swork/290.1 *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Shaft output =\",sout,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft engine efficiency =\",seff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shaft output = 8066 hp\n",
+ "\n",
+ " Shaft engine efficiency = 72.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature and pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4 #Btu/lb\n",
+ "h2=214.5 #Btu/lb\n",
+ "#calculations\n",
+ "hexa=h1-h2\n",
+ "print '%s' %(\"From Air tables,\")\n",
+ "pe=20 #psia\n",
+ "te=321.5 #F\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Exit Pressure =\",pe,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit temperature =\",te,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Air tables,\n",
+ "Exit Pressure = 20 psia\n",
+ "\n",
+ " Exit temperature = 321.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate required\n",
+ "#Initalization of variables\n",
+ "flow=98000. #lb/hr\n",
+ "loss=200. #hp\n",
+ "x= 0.11 #percent\n",
+ "shp=3000. #hp\n",
+ "#calculations\n",
+ "sflow = x*flow\n",
+ "sflow2= sflow + (flow-sflow)*shp/8060.\n",
+ "srate=sflow2/shp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate required =\",srate,\" lb/hp-hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate required = 14.41 lb/hp-hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_21_4.ipynb b/Thermodynamics_for_Engineers/Chapter_21_4.ipynb
new file mode 100755
index 00000000..567cdacb
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_21_4.ipynb
@@ -0,0 +1,438 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6b7b3e2ab4fd666f452b57925a83681d6f79a5b142e4777bdab089506c8a15bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 21 - Steam Turbines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the flow rate\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "p2=190. #psia\n",
+ "p1=110. #psia\n",
+ "v1=2.456 \n",
+ "k=1.3\n",
+ "J=778.\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "v2=v1*math.pow(p2/p1,(1/k))\n",
+ "dh=k/(k-1) *144/J *(p2*v1-p1*v2)\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144.*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.32 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the rate of flow\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "h1=1205.8 #Btu/lb\n",
+ "s2=1.5594\n",
+ "sf=1.5948\n",
+ "sfg=1.1117\n",
+ "hf=1188.9 #Btu/lb\n",
+ "hfg=883.2 #Btu/lb\n",
+ "vf=4.049\n",
+ "vfg=vf-0.018\n",
+ "k=1.3\n",
+ "J=778\n",
+ "A2=1.2 #in^2\n",
+ "#calculations\n",
+ "x2=-(s2-sf)/sfg\n",
+ "h2=hf-x2*hfg\n",
+ "v2=vf-x2*vfg\n",
+ "dh=h1-h2\n",
+ "Vex=223.8*math.sqrt(dh)\n",
+ "m=A2*Vex/(144*v2)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Rate of flow =\",m,\"lb/sec\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 3.19 lb/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 462"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work, angle and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "alp=14*math.pi/180. #degrees\n",
+ "vb=900. #ft/s\n",
+ "v1=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vrc=v1*math.cos(alp) - vb\n",
+ "W=(2*vrc)/g *vb\n",
+ "eta=W/(v1*v1/ (2*g)) *100.\n",
+ "bet=math.atan(v1*math.sin(alp) /vrc)*180/math.pi\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\" ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s %.1f %s' %(\"\\n Blade angle =\",bet,\" degrees\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 69082 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 91.8 percent\n",
+ "\n",
+ " Blade angle = 23.3 degrees\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade work and efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234. #ft/s\n",
+ "v2=532. #ft/s \n",
+ "kb=0.92\n",
+ "alp=20. #degrees\n",
+ "ve=900. #ft/s\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp*math.pi/180.)\n",
+ "W=(v1+vrc)*ve/g\n",
+ "eta=W/(r*r /(2*g)) *100.\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Blade work =\",W,\"ft-lb/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n Efficiency =\",eta,\" percent\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Blade work = 67023 ft-lb/lb\n",
+ "\n",
+ " Efficiency = 89.1 percent\n",
+ "The answers are a bit different due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 464"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the blade reheat in both cases\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "v1=1234.\n",
+ "v2=532.\n",
+ "kb=0.92\n",
+ "alp=20*math.pi/180. #degrees\n",
+ "ve=900.\n",
+ "r=2200. #ft/s\n",
+ "g=32.17 #ft/s^2\n",
+ "J=778.\n",
+ "w=67000.\n",
+ "#calculations\n",
+ "vr=math.sqrt(v1*v1 +v2*v2)\n",
+ "vr2=vr*kb\n",
+ "vrc=vr2*math.cos(alp)\n",
+ "reheat=(vr*vr - vr2*vr2 )/(2*g*J)\n",
+ "v22=math.sqrt((vrc-ve)*(vrc-ve) +(vr2*math.sin(alp))*(vr2*math.sin(alp)))\n",
+ "ein=r*r /(2*g*J)\n",
+ "eout=w/J + v22*v22 /(2*g*J)\n",
+ "re2=ein-eout\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"\\n In case 1, Blade reheat =\",reheat,\"Btu/lb\")\n",
+ "print '%s %.1f %s' %(\"\\n In case 2, Blade reheat =\",re2,\" Btu/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " In case 1, Blade reheat = 5.54 Btu/lb\n",
+ "\n",
+ " In case 2, Blade reheat = 5.6 Btu/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the intermediate pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4\n",
+ "s1=1.6842\n",
+ "sf=1.7319\n",
+ "sfg=1.3962\n",
+ "fac=1.05\n",
+ "x2=0.7\n",
+ "#calculations\n",
+ "x6=-(s1-sf)/sfg\n",
+ "h6=1156.3 - x6*960.1\n",
+ "dh6=h1-h6\n",
+ "drop= fac*h6/2\n",
+ "h2=h1-drop\n",
+ "first=(1-x2)*drop\n",
+ "h3=1264.1 +first\n",
+ "h4=1157 #Btu/lb\n",
+ "fac2=(drop+153)/dh6\n",
+ "print '%s' %(\"From air charts,\")\n",
+ "p2=107 #psia\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Intermediate pressure =\",p2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From air charts,\n",
+ "Intermediate pressure = 107 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the shaft ouput and engine efficiency\n",
+ "#Initalization of variables\n",
+ "import math\n",
+ "reh=1.047\n",
+ "dh6=292.8\n",
+ "x2=0.7\n",
+ "flow=98000 #lb/hr\n",
+ "loss=200 #hp\n",
+ "#calculations\n",
+ "intwork=reh*dh6*x2\n",
+ "inthp=intwork*flow/2544\n",
+ "sout=inthp-loss\n",
+ "swork=sout*2544/flow\n",
+ "seff=swork/290.1 *100\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Shaft output =\",sout,\"hp\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft engine efficiency =\",seff,\"percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Shaft output = 8066 hp\n",
+ "\n",
+ " Shaft engine efficiency = 72.2 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the exit temperature and pressure\n",
+ "#Initalization of variables\n",
+ "h1=1416.4 #Btu/lb\n",
+ "h2=214.5 #Btu/lb\n",
+ "#calculations\n",
+ "hexa=h1-h2\n",
+ "print '%s' %(\"From Air tables,\")\n",
+ "pe=20 #psia\n",
+ "te=321.5 #F\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Exit Pressure =\",pe,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Exit temperature =\",te,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From Air tables,\n",
+ "Exit Pressure = 20 psia\n",
+ "\n",
+ " Exit temperature = 321.5 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - Pg 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the steam rate required\n",
+ "#Initalization of variables\n",
+ "flow=98000. #lb/hr\n",
+ "loss=200. #hp\n",
+ "x= 0.11 #percent\n",
+ "shp=3000. #hp\n",
+ "#calculations\n",
+ "sflow = x*flow\n",
+ "sflow2= sflow + (flow-sflow)*shp/8060.\n",
+ "srate=sflow2/shp\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Steam rate required =\",srate,\" lb/hp-hr\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Steam rate required = 14.41 lb/hp-hr\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_22.ipynb b/Thermodynamics_for_Engineers/Chapter_22.ipynb
new file mode 100755
index 00000000..d43c8cae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_22.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4ce5546be38472485072968c27d4c6ae7f7b124c1af2a44e7388dbd36c855f4b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 - Refrigeration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refrigerator and heat pump cp values in both cases\n",
+ "#Initalization of variables\n",
+ "t1=45+460. #R\n",
+ "th=70+460. #R\n",
+ "t2=-200+460. #R\n",
+ "th2=100+460. #R\n",
+ "#calculations\n",
+ "cp1=t1/(th-t1)\n",
+ "cp2=th/(th-t1)\n",
+ "cp3=t2/(th2-t2)\n",
+ "cp4=th2/(th2-t2)\n",
+ "#results\n",
+ "print '%s %.1f' %(\"In case 1, Refrigerator cp = \",cp1)\n",
+ "print '%s %.1f' %(\"\\n In case 1, Heat pump cp = \",cp2)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Refrigerator cp = \",cp3)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Heat pump cp = \",cp4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Refrigerator cp = 20.2\n",
+ "\n",
+ " In case 1, Heat pump cp = 21.2\n",
+ "\n",
+ " In case 2, Refrigerator cp = 0.867\n",
+ "\n",
+ " In case 2, Heat pump cp = 1.867\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the coefficient of performance in wet and dry compression\n",
+ "#Initalization of variables\n",
+ "h3=85.282 #Btu/lb\n",
+ "s2=0.16392\n",
+ "sf=0.16798\n",
+ "#calculations\n",
+ "sfg=sf-0.023954\n",
+ "x3=-(s2-sf)/sfg\n",
+ "h2=78.335 - x3*67.651\n",
+ "h4=26.365 #Btu/lb\n",
+ "h1=h4\n",
+ "ref=h2-h1\n",
+ "work=h3-h2\n",
+ "cp1=ref/work\n",
+ "h2d=78.355\n",
+ "h1d=26.365 #Btu/lb\n",
+ "h3d=87.495 #Btu/lb\n",
+ "ref2=h2d-h1d\n",
+ "work2=h3d-h2d\n",
+ "cp2=ref2/work2\n",
+ "#results\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in wet compression = \",cp1)\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in dry compression = \",cp2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Coefficient of performance in wet compression = 5.654\n",
+ "\n",
+ " Coefficient of performance in dry compression = 5.688\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage value in both cases\n",
+ "#Initalization of variables\n",
+ "h1=24.973 #Btu/lb\n",
+ "h2=81.436 #Btu/lb\n",
+ "cfm=200 #cfm\n",
+ "v2=0.77357\n",
+ "v3=3.8750\n",
+ "h4=72.913\n",
+ "#calculations\n",
+ "mass=cfm/v2\n",
+ "ref=h2-h1\n",
+ "tonnage=mass*ref/cfm\n",
+ "mass2=cfm/v3\n",
+ "ref2=h4-h1\n",
+ "tonnage2=mass2*ref2/cfm\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"In case 1,Tonnage =\",tonnage,\" tons\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2,Tonnage =\",tonnage2,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1,Tonnage = 73.0 tons\n",
+ "\n",
+ " In case 2,Tonnage = 12.37 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refirgeration, shaft hp and cop\n",
+ "#Initalization of variables\n",
+ "h2d=93.410 #Btu/lb\n",
+ "h1=80.740 #Btu/lb\n",
+ "x=0.75\n",
+ "PD=160\n",
+ "vol=0.82\n",
+ "v1=1.7213\n",
+ "w2=80.156\n",
+ "w1=27.3\n",
+ "#calculations\n",
+ "twork=h2d-h1\n",
+ "swork=twork/x\n",
+ "flow=PD*vol/v1\n",
+ "ref=flow*(w2-w1)/200.\n",
+ "shp= flow*swork/42.4\n",
+ "cop=(w2-w1)/swork\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Refrigeration =\",ref,\" tons\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp=\",shp,\" hp\")\n",
+ "print '%s %.2f' %(\"\\n Coefficient of performance = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigeration = 20.1 tons\n",
+ "\n",
+ " Shaft hp= 30.4 hp\n",
+ "\n",
+ " Coefficient of performance = 3.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cop\n",
+ "#Initalization of variables\n",
+ "mc=3000 #lb\n",
+ "hv=1080.2 #Btu/lb\n",
+ "hfe=26.06 #Btu/lb\n",
+ "hfp=10.05 #Btu/lb\n",
+ "x=0.7\n",
+ "#calculations\n",
+ "mv=(mc*hfp-mc*hfe)/(hfe-hv)\n",
+ "dh=145.4 #Btu/lb\n",
+ "chp=dh*mv/(x*42.4)\n",
+ "cop=mc*(hfe-hfp)/(chp*42.4)\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Coefficient of performace = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coefficient of performace = 5.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=80000. #Btu/lb\n",
+ "t=560. #R\n",
+ "#calculations\n",
+ "ratio=t/68.\n",
+ "power=loss/(ratio*2544.)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Power = \",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 3.82 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=2*80000. #Btu/lb\n",
+ "tb=72. #F\n",
+ "to=12. #F\n",
+ "to2=42. #F\n",
+ "tf=104.+460 #R\n",
+ "#calculations\n",
+ "ratio=tf/(tf-460.)\n",
+ "power=loss/(2544.*ratio)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Power =\",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 11.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_22_1.ipynb b/Thermodynamics_for_Engineers/Chapter_22_1.ipynb
new file mode 100755
index 00000000..d43c8cae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_22_1.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4ce5546be38472485072968c27d4c6ae7f7b124c1af2a44e7388dbd36c855f4b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 - Refrigeration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refrigerator and heat pump cp values in both cases\n",
+ "#Initalization of variables\n",
+ "t1=45+460. #R\n",
+ "th=70+460. #R\n",
+ "t2=-200+460. #R\n",
+ "th2=100+460. #R\n",
+ "#calculations\n",
+ "cp1=t1/(th-t1)\n",
+ "cp2=th/(th-t1)\n",
+ "cp3=t2/(th2-t2)\n",
+ "cp4=th2/(th2-t2)\n",
+ "#results\n",
+ "print '%s %.1f' %(\"In case 1, Refrigerator cp = \",cp1)\n",
+ "print '%s %.1f' %(\"\\n In case 1, Heat pump cp = \",cp2)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Refrigerator cp = \",cp3)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Heat pump cp = \",cp4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Refrigerator cp = 20.2\n",
+ "\n",
+ " In case 1, Heat pump cp = 21.2\n",
+ "\n",
+ " In case 2, Refrigerator cp = 0.867\n",
+ "\n",
+ " In case 2, Heat pump cp = 1.867\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the coefficient of performance in wet and dry compression\n",
+ "#Initalization of variables\n",
+ "h3=85.282 #Btu/lb\n",
+ "s2=0.16392\n",
+ "sf=0.16798\n",
+ "#calculations\n",
+ "sfg=sf-0.023954\n",
+ "x3=-(s2-sf)/sfg\n",
+ "h2=78.335 - x3*67.651\n",
+ "h4=26.365 #Btu/lb\n",
+ "h1=h4\n",
+ "ref=h2-h1\n",
+ "work=h3-h2\n",
+ "cp1=ref/work\n",
+ "h2d=78.355\n",
+ "h1d=26.365 #Btu/lb\n",
+ "h3d=87.495 #Btu/lb\n",
+ "ref2=h2d-h1d\n",
+ "work2=h3d-h2d\n",
+ "cp2=ref2/work2\n",
+ "#results\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in wet compression = \",cp1)\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in dry compression = \",cp2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Coefficient of performance in wet compression = 5.654\n",
+ "\n",
+ " Coefficient of performance in dry compression = 5.688\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage value in both cases\n",
+ "#Initalization of variables\n",
+ "h1=24.973 #Btu/lb\n",
+ "h2=81.436 #Btu/lb\n",
+ "cfm=200 #cfm\n",
+ "v2=0.77357\n",
+ "v3=3.8750\n",
+ "h4=72.913\n",
+ "#calculations\n",
+ "mass=cfm/v2\n",
+ "ref=h2-h1\n",
+ "tonnage=mass*ref/cfm\n",
+ "mass2=cfm/v3\n",
+ "ref2=h4-h1\n",
+ "tonnage2=mass2*ref2/cfm\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"In case 1,Tonnage =\",tonnage,\" tons\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2,Tonnage =\",tonnage2,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1,Tonnage = 73.0 tons\n",
+ "\n",
+ " In case 2,Tonnage = 12.37 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refirgeration, shaft hp and cop\n",
+ "#Initalization of variables\n",
+ "h2d=93.410 #Btu/lb\n",
+ "h1=80.740 #Btu/lb\n",
+ "x=0.75\n",
+ "PD=160\n",
+ "vol=0.82\n",
+ "v1=1.7213\n",
+ "w2=80.156\n",
+ "w1=27.3\n",
+ "#calculations\n",
+ "twork=h2d-h1\n",
+ "swork=twork/x\n",
+ "flow=PD*vol/v1\n",
+ "ref=flow*(w2-w1)/200.\n",
+ "shp= flow*swork/42.4\n",
+ "cop=(w2-w1)/swork\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Refrigeration =\",ref,\" tons\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp=\",shp,\" hp\")\n",
+ "print '%s %.2f' %(\"\\n Coefficient of performance = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigeration = 20.1 tons\n",
+ "\n",
+ " Shaft hp= 30.4 hp\n",
+ "\n",
+ " Coefficient of performance = 3.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cop\n",
+ "#Initalization of variables\n",
+ "mc=3000 #lb\n",
+ "hv=1080.2 #Btu/lb\n",
+ "hfe=26.06 #Btu/lb\n",
+ "hfp=10.05 #Btu/lb\n",
+ "x=0.7\n",
+ "#calculations\n",
+ "mv=(mc*hfp-mc*hfe)/(hfe-hv)\n",
+ "dh=145.4 #Btu/lb\n",
+ "chp=dh*mv/(x*42.4)\n",
+ "cop=mc*(hfe-hfp)/(chp*42.4)\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Coefficient of performace = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coefficient of performace = 5.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=80000. #Btu/lb\n",
+ "t=560. #R\n",
+ "#calculations\n",
+ "ratio=t/68.\n",
+ "power=loss/(ratio*2544.)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Power = \",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 3.82 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=2*80000. #Btu/lb\n",
+ "tb=72. #F\n",
+ "to=12. #F\n",
+ "to2=42. #F\n",
+ "tf=104.+460 #R\n",
+ "#calculations\n",
+ "ratio=tf/(tf-460.)\n",
+ "power=loss/(2544.*ratio)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Power =\",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 11.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_22_2.ipynb b/Thermodynamics_for_Engineers/Chapter_22_2.ipynb
new file mode 100755
index 00000000..d43c8cae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_22_2.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4ce5546be38472485072968c27d4c6ae7f7b124c1af2a44e7388dbd36c855f4b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 - Refrigeration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refrigerator and heat pump cp values in both cases\n",
+ "#Initalization of variables\n",
+ "t1=45+460. #R\n",
+ "th=70+460. #R\n",
+ "t2=-200+460. #R\n",
+ "th2=100+460. #R\n",
+ "#calculations\n",
+ "cp1=t1/(th-t1)\n",
+ "cp2=th/(th-t1)\n",
+ "cp3=t2/(th2-t2)\n",
+ "cp4=th2/(th2-t2)\n",
+ "#results\n",
+ "print '%s %.1f' %(\"In case 1, Refrigerator cp = \",cp1)\n",
+ "print '%s %.1f' %(\"\\n In case 1, Heat pump cp = \",cp2)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Refrigerator cp = \",cp3)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Heat pump cp = \",cp4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Refrigerator cp = 20.2\n",
+ "\n",
+ " In case 1, Heat pump cp = 21.2\n",
+ "\n",
+ " In case 2, Refrigerator cp = 0.867\n",
+ "\n",
+ " In case 2, Heat pump cp = 1.867\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the coefficient of performance in wet and dry compression\n",
+ "#Initalization of variables\n",
+ "h3=85.282 #Btu/lb\n",
+ "s2=0.16392\n",
+ "sf=0.16798\n",
+ "#calculations\n",
+ "sfg=sf-0.023954\n",
+ "x3=-(s2-sf)/sfg\n",
+ "h2=78.335 - x3*67.651\n",
+ "h4=26.365 #Btu/lb\n",
+ "h1=h4\n",
+ "ref=h2-h1\n",
+ "work=h3-h2\n",
+ "cp1=ref/work\n",
+ "h2d=78.355\n",
+ "h1d=26.365 #Btu/lb\n",
+ "h3d=87.495 #Btu/lb\n",
+ "ref2=h2d-h1d\n",
+ "work2=h3d-h2d\n",
+ "cp2=ref2/work2\n",
+ "#results\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in wet compression = \",cp1)\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in dry compression = \",cp2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Coefficient of performance in wet compression = 5.654\n",
+ "\n",
+ " Coefficient of performance in dry compression = 5.688\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage value in both cases\n",
+ "#Initalization of variables\n",
+ "h1=24.973 #Btu/lb\n",
+ "h2=81.436 #Btu/lb\n",
+ "cfm=200 #cfm\n",
+ "v2=0.77357\n",
+ "v3=3.8750\n",
+ "h4=72.913\n",
+ "#calculations\n",
+ "mass=cfm/v2\n",
+ "ref=h2-h1\n",
+ "tonnage=mass*ref/cfm\n",
+ "mass2=cfm/v3\n",
+ "ref2=h4-h1\n",
+ "tonnage2=mass2*ref2/cfm\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"In case 1,Tonnage =\",tonnage,\" tons\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2,Tonnage =\",tonnage2,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1,Tonnage = 73.0 tons\n",
+ "\n",
+ " In case 2,Tonnage = 12.37 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refirgeration, shaft hp and cop\n",
+ "#Initalization of variables\n",
+ "h2d=93.410 #Btu/lb\n",
+ "h1=80.740 #Btu/lb\n",
+ "x=0.75\n",
+ "PD=160\n",
+ "vol=0.82\n",
+ "v1=1.7213\n",
+ "w2=80.156\n",
+ "w1=27.3\n",
+ "#calculations\n",
+ "twork=h2d-h1\n",
+ "swork=twork/x\n",
+ "flow=PD*vol/v1\n",
+ "ref=flow*(w2-w1)/200.\n",
+ "shp= flow*swork/42.4\n",
+ "cop=(w2-w1)/swork\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Refrigeration =\",ref,\" tons\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp=\",shp,\" hp\")\n",
+ "print '%s %.2f' %(\"\\n Coefficient of performance = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigeration = 20.1 tons\n",
+ "\n",
+ " Shaft hp= 30.4 hp\n",
+ "\n",
+ " Coefficient of performance = 3.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cop\n",
+ "#Initalization of variables\n",
+ "mc=3000 #lb\n",
+ "hv=1080.2 #Btu/lb\n",
+ "hfe=26.06 #Btu/lb\n",
+ "hfp=10.05 #Btu/lb\n",
+ "x=0.7\n",
+ "#calculations\n",
+ "mv=(mc*hfp-mc*hfe)/(hfe-hv)\n",
+ "dh=145.4 #Btu/lb\n",
+ "chp=dh*mv/(x*42.4)\n",
+ "cop=mc*(hfe-hfp)/(chp*42.4)\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Coefficient of performace = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coefficient of performace = 5.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=80000. #Btu/lb\n",
+ "t=560. #R\n",
+ "#calculations\n",
+ "ratio=t/68.\n",
+ "power=loss/(ratio*2544.)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Power = \",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 3.82 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=2*80000. #Btu/lb\n",
+ "tb=72. #F\n",
+ "to=12. #F\n",
+ "to2=42. #F\n",
+ "tf=104.+460 #R\n",
+ "#calculations\n",
+ "ratio=tf/(tf-460.)\n",
+ "power=loss/(2544.*ratio)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Power =\",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 11.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_22_3.ipynb b/Thermodynamics_for_Engineers/Chapter_22_3.ipynb
new file mode 100755
index 00000000..d43c8cae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_22_3.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4ce5546be38472485072968c27d4c6ae7f7b124c1af2a44e7388dbd36c855f4b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 - Refrigeration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refrigerator and heat pump cp values in both cases\n",
+ "#Initalization of variables\n",
+ "t1=45+460. #R\n",
+ "th=70+460. #R\n",
+ "t2=-200+460. #R\n",
+ "th2=100+460. #R\n",
+ "#calculations\n",
+ "cp1=t1/(th-t1)\n",
+ "cp2=th/(th-t1)\n",
+ "cp3=t2/(th2-t2)\n",
+ "cp4=th2/(th2-t2)\n",
+ "#results\n",
+ "print '%s %.1f' %(\"In case 1, Refrigerator cp = \",cp1)\n",
+ "print '%s %.1f' %(\"\\n In case 1, Heat pump cp = \",cp2)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Refrigerator cp = \",cp3)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Heat pump cp = \",cp4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Refrigerator cp = 20.2\n",
+ "\n",
+ " In case 1, Heat pump cp = 21.2\n",
+ "\n",
+ " In case 2, Refrigerator cp = 0.867\n",
+ "\n",
+ " In case 2, Heat pump cp = 1.867\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the coefficient of performance in wet and dry compression\n",
+ "#Initalization of variables\n",
+ "h3=85.282 #Btu/lb\n",
+ "s2=0.16392\n",
+ "sf=0.16798\n",
+ "#calculations\n",
+ "sfg=sf-0.023954\n",
+ "x3=-(s2-sf)/sfg\n",
+ "h2=78.335 - x3*67.651\n",
+ "h4=26.365 #Btu/lb\n",
+ "h1=h4\n",
+ "ref=h2-h1\n",
+ "work=h3-h2\n",
+ "cp1=ref/work\n",
+ "h2d=78.355\n",
+ "h1d=26.365 #Btu/lb\n",
+ "h3d=87.495 #Btu/lb\n",
+ "ref2=h2d-h1d\n",
+ "work2=h3d-h2d\n",
+ "cp2=ref2/work2\n",
+ "#results\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in wet compression = \",cp1)\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in dry compression = \",cp2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Coefficient of performance in wet compression = 5.654\n",
+ "\n",
+ " Coefficient of performance in dry compression = 5.688\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage value in both cases\n",
+ "#Initalization of variables\n",
+ "h1=24.973 #Btu/lb\n",
+ "h2=81.436 #Btu/lb\n",
+ "cfm=200 #cfm\n",
+ "v2=0.77357\n",
+ "v3=3.8750\n",
+ "h4=72.913\n",
+ "#calculations\n",
+ "mass=cfm/v2\n",
+ "ref=h2-h1\n",
+ "tonnage=mass*ref/cfm\n",
+ "mass2=cfm/v3\n",
+ "ref2=h4-h1\n",
+ "tonnage2=mass2*ref2/cfm\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"In case 1,Tonnage =\",tonnage,\" tons\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2,Tonnage =\",tonnage2,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1,Tonnage = 73.0 tons\n",
+ "\n",
+ " In case 2,Tonnage = 12.37 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refirgeration, shaft hp and cop\n",
+ "#Initalization of variables\n",
+ "h2d=93.410 #Btu/lb\n",
+ "h1=80.740 #Btu/lb\n",
+ "x=0.75\n",
+ "PD=160\n",
+ "vol=0.82\n",
+ "v1=1.7213\n",
+ "w2=80.156\n",
+ "w1=27.3\n",
+ "#calculations\n",
+ "twork=h2d-h1\n",
+ "swork=twork/x\n",
+ "flow=PD*vol/v1\n",
+ "ref=flow*(w2-w1)/200.\n",
+ "shp= flow*swork/42.4\n",
+ "cop=(w2-w1)/swork\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Refrigeration =\",ref,\" tons\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp=\",shp,\" hp\")\n",
+ "print '%s %.2f' %(\"\\n Coefficient of performance = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigeration = 20.1 tons\n",
+ "\n",
+ " Shaft hp= 30.4 hp\n",
+ "\n",
+ " Coefficient of performance = 3.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cop\n",
+ "#Initalization of variables\n",
+ "mc=3000 #lb\n",
+ "hv=1080.2 #Btu/lb\n",
+ "hfe=26.06 #Btu/lb\n",
+ "hfp=10.05 #Btu/lb\n",
+ "x=0.7\n",
+ "#calculations\n",
+ "mv=(mc*hfp-mc*hfe)/(hfe-hv)\n",
+ "dh=145.4 #Btu/lb\n",
+ "chp=dh*mv/(x*42.4)\n",
+ "cop=mc*(hfe-hfp)/(chp*42.4)\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Coefficient of performace = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coefficient of performace = 5.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=80000. #Btu/lb\n",
+ "t=560. #R\n",
+ "#calculations\n",
+ "ratio=t/68.\n",
+ "power=loss/(ratio*2544.)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Power = \",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 3.82 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=2*80000. #Btu/lb\n",
+ "tb=72. #F\n",
+ "to=12. #F\n",
+ "to2=42. #F\n",
+ "tf=104.+460 #R\n",
+ "#calculations\n",
+ "ratio=tf/(tf-460.)\n",
+ "power=loss/(2544.*ratio)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Power =\",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 11.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_22_4.ipynb b/Thermodynamics_for_Engineers/Chapter_22_4.ipynb
new file mode 100755
index 00000000..d43c8cae
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_22_4.ipynb
@@ -0,0 +1,333 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:4ce5546be38472485072968c27d4c6ae7f7b124c1af2a44e7388dbd36c855f4b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 22 - Refrigeration"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refrigerator and heat pump cp values in both cases\n",
+ "#Initalization of variables\n",
+ "t1=45+460. #R\n",
+ "th=70+460. #R\n",
+ "t2=-200+460. #R\n",
+ "th2=100+460. #R\n",
+ "#calculations\n",
+ "cp1=t1/(th-t1)\n",
+ "cp2=th/(th-t1)\n",
+ "cp3=t2/(th2-t2)\n",
+ "cp4=th2/(th2-t2)\n",
+ "#results\n",
+ "print '%s %.1f' %(\"In case 1, Refrigerator cp = \",cp1)\n",
+ "print '%s %.1f' %(\"\\n In case 1, Heat pump cp = \",cp2)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Refrigerator cp = \",cp3)\n",
+ "print '%s %.3f' %(\"\\n In case 2, Heat pump cp = \",cp4)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1, Refrigerator cp = 20.2\n",
+ "\n",
+ " In case 1, Heat pump cp = 21.2\n",
+ "\n",
+ " In case 2, Refrigerator cp = 0.867\n",
+ "\n",
+ " In case 2, Heat pump cp = 1.867\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the coefficient of performance in wet and dry compression\n",
+ "#Initalization of variables\n",
+ "h3=85.282 #Btu/lb\n",
+ "s2=0.16392\n",
+ "sf=0.16798\n",
+ "#calculations\n",
+ "sfg=sf-0.023954\n",
+ "x3=-(s2-sf)/sfg\n",
+ "h2=78.335 - x3*67.651\n",
+ "h4=26.365 #Btu/lb\n",
+ "h1=h4\n",
+ "ref=h2-h1\n",
+ "work=h3-h2\n",
+ "cp1=ref/work\n",
+ "h2d=78.355\n",
+ "h1d=26.365 #Btu/lb\n",
+ "h3d=87.495 #Btu/lb\n",
+ "ref2=h2d-h1d\n",
+ "work2=h3d-h2d\n",
+ "cp2=ref2/work2\n",
+ "#results\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in wet compression = \",cp1)\n",
+ "print '%s %.3f' %(\"\\n Coefficient of performance in dry compression = \",cp2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Coefficient of performance in wet compression = 5.654\n",
+ "\n",
+ " Coefficient of performance in dry compression = 5.688\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage value in both cases\n",
+ "#Initalization of variables\n",
+ "h1=24.973 #Btu/lb\n",
+ "h2=81.436 #Btu/lb\n",
+ "cfm=200 #cfm\n",
+ "v2=0.77357\n",
+ "v3=3.8750\n",
+ "h4=72.913\n",
+ "#calculations\n",
+ "mass=cfm/v2\n",
+ "ref=h2-h1\n",
+ "tonnage=mass*ref/cfm\n",
+ "mass2=cfm/v3\n",
+ "ref2=h4-h1\n",
+ "tonnage2=mass2*ref2/cfm\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"In case 1,Tonnage =\",tonnage,\" tons\")\n",
+ "print '%s %.2f %s' %(\"\\n In case 2,Tonnage =\",tonnage2,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case 1,Tonnage = 73.0 tons\n",
+ "\n",
+ " In case 2,Tonnage = 12.37 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the refirgeration, shaft hp and cop\n",
+ "#Initalization of variables\n",
+ "h2d=93.410 #Btu/lb\n",
+ "h1=80.740 #Btu/lb\n",
+ "x=0.75\n",
+ "PD=160\n",
+ "vol=0.82\n",
+ "v1=1.7213\n",
+ "w2=80.156\n",
+ "w1=27.3\n",
+ "#calculations\n",
+ "twork=h2d-h1\n",
+ "swork=twork/x\n",
+ "flow=PD*vol/v1\n",
+ "ref=flow*(w2-w1)/200.\n",
+ "shp= flow*swork/42.4\n",
+ "cop=(w2-w1)/swork\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Refrigeration =\",ref,\" tons\")\n",
+ "print '%s %.1f %s' %(\"\\n Shaft hp=\",shp,\" hp\")\n",
+ "print '%s %.2f' %(\"\\n Coefficient of performance = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Refrigeration = 20.1 tons\n",
+ "\n",
+ " Shaft hp= 30.4 hp\n",
+ "\n",
+ " Coefficient of performance = 3.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the cop\n",
+ "#Initalization of variables\n",
+ "mc=3000 #lb\n",
+ "hv=1080.2 #Btu/lb\n",
+ "hfe=26.06 #Btu/lb\n",
+ "hfp=10.05 #Btu/lb\n",
+ "x=0.7\n",
+ "#calculations\n",
+ "mv=(mc*hfp-mc*hfe)/(hfe-hv)\n",
+ "dh=145.4 #Btu/lb\n",
+ "chp=dh*mv/(x*42.4)\n",
+ "cop=mc*(hfe-hfp)/(chp*42.4)\n",
+ "#results\n",
+ "print '%s %.2f' %(\"Coefficient of performace = \",cop)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coefficient of performace = 5.07\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=80000. #Btu/lb\n",
+ "t=560. #R\n",
+ "#calculations\n",
+ "ratio=t/68.\n",
+ "power=loss/(ratio*2544.)\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Power = \",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 3.82 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 493"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power required\n",
+ "#Initalization of variables\n",
+ "loss=2*80000. #Btu/lb\n",
+ "tb=72. #F\n",
+ "to=12. #F\n",
+ "to2=42. #F\n",
+ "tf=104.+460 #R\n",
+ "#calculations\n",
+ "ratio=tf/(tf-460.)\n",
+ "power=loss/(2544.*ratio)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Power =\",power,\" hp\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power = 11.6 hp\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_23.ipynb b/Thermodynamics_for_Engineers/Chapter_23.ipynb
new file mode 100755
index 00000000..48adb58b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_23.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ed6f0c315c457295237376ededd9c5992635644b7125968e2389e7033f5e62be"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23 - Gas Vapor mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific humidity\n",
+ "#Initalization of variables\n",
+ "pv=0.3631 #psia\n",
+ "pa=14.7 #psia\n",
+ "cp=0.24\n",
+ "tw=70 #F\n",
+ "td=80 #F\n",
+ "hv1=1096.6 #Btu/lb\n",
+ "hfb=38.06 #Btu/lb\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv)\n",
+ "sh1=(cp*tw -cp*td + sh*1054.3)/(hv1-hfb)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific humidity =\",sh1,\" lb/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific humidity = 0.01342 lb/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the relative humidity\n",
+ "#Initalization of variables\n",
+ "rel=0.9\n",
+ "p1=0.0396 #psia\n",
+ "p2=0.3631 #psia\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "RH=act/p2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Relative humidity =\",RH,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative humidity = 9.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature\n",
+ "#Initalization of variables\n",
+ "pa=14.2\n",
+ "rel=0.9\n",
+ "sh=0.012 #lb/lb\n",
+ "#calculations\n",
+ "pv=(pa*sh)/(0.622-sh)\n",
+ "sat=pv/rel\n",
+ "tf=64.34 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"From steam tables, by interpolation, Final temperature =\",tf,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables, by interpolation, Final temperature = 64.34 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat rate addition per min\n",
+ "#Initalization of variables\n",
+ "pa=14.7\n",
+ "pv=0.0356\n",
+ "pv2=0.04\n",
+ "cp=0.24\n",
+ "t1=70 #F\n",
+ "t2=15 #F\n",
+ "R=53.35\n",
+ "V=8000 #ft^3\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv2)\n",
+ "hm2=cp*t1+ sh*1092.3\n",
+ "hm1=cp*t2+sh*1068.4\n",
+ "Q=hm2-hm1\n",
+ "m=144*(pa-pv2)*V/(R*(t2+460.))\n",
+ "Q2=Q*m\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added per min =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added per min = 8821 Btu/min\n",
+ "The answer is a bit different due to rounding off error in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature\n",
+ "#Initalization of variables\n",
+ "rel=0.45\n",
+ "p1=0.4747 #psia\n",
+ "print '%s' %(\"From steam table data,\")\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "t2=54.94 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Temperature =\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table data,\n",
+ "Temperature = 54.94 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "rel=0.6\n",
+ "p1=0.6982 #psia\n",
+ "pa=14.7 #psia\n",
+ "t1=90 #F\n",
+ "t2=54.94 #F\n",
+ "cp=0.24\n",
+ "p2=0.2136 #psia\n",
+ "vol=4000 #ft\n",
+ "t3=538 #R\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "act1=rel*p1\n",
+ "sh1=0.622*act1/(pa-act1)\n",
+ "hm1=cp*t1+sh1*1100.9\n",
+ "sh2=0.622*p2/(pa-p2)\n",
+ "hm2=cp*t2+sh2*1085.8\n",
+ "con=sh1-sh2\n",
+ "enth=con*23.01\n",
+ "heat=hm1-hm2-enth\n",
+ "mass=144*(pa-p2)*vol/(R*(t3))\n",
+ "tonnage=mass*heat/200\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Tonnage =\",tonnage,\"tons \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 26.6 tons \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "p1=0.541 #psia\n",
+ "rel=0.48\n",
+ "pa=14.7 #psia\n",
+ "t1=82 #F\n",
+ "cp=0.24\n",
+ "m1=0.75 #lb\n",
+ "m2=0.25 #lb\n",
+ "hm4=23.15 #Btu/lb\n",
+ "mass=291 #lb\n",
+ "#calculations\n",
+ "p2=rel*p1\n",
+ "sh=0.622*p2/(pa-p2)\n",
+ "hm1=cp*t1 + sh*1097.5\n",
+ "hm2=m1*hm1\n",
+ "hm3=m2*41.67\n",
+ "heat=hm2+hm3-hm4\n",
+ "tonnage=heat*mass/200\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Tonnage =\",tonnage,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 16.35 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume of entering air and amount of make up water\n",
+ "#Initalization of variables\n",
+ "ce=0.8\n",
+ "t1=115 #F\n",
+ "tc=75 #F\n",
+ "td=85 #F\n",
+ "pa=14.7 #psia\n",
+ "p1=0.43 #psia\n",
+ "p2=0.9492 #psia\n",
+ "m1=159600\n",
+ "m2=31.65\n",
+ "R=53.35\n",
+ "T=545 #R\n",
+ "#calculations\n",
+ "t2=t1-ce*(t1-tc)\n",
+ "Pv=0.4298- (pa-p1)*(td-tc)/(2800- 1.3*tc) \n",
+ "sh1=0.622*Pv/(pa-Pv)\n",
+ "sh2=0.622 *p2/(pa-p2)\n",
+ "mda=m1/m2\n",
+ "V=mda*R*T/(144*(pa-Pv))\n",
+ "amount=mda*(sh2-sh1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Volume of entering air =\",V,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Amount of make up water =\",amount,\"lb/min\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of entering air = 71087 cfm\n",
+ "\n",
+ " Amount of make up water = 134.0 lb/min\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_23_1.ipynb b/Thermodynamics_for_Engineers/Chapter_23_1.ipynb
new file mode 100755
index 00000000..48adb58b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_23_1.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ed6f0c315c457295237376ededd9c5992635644b7125968e2389e7033f5e62be"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23 - Gas Vapor mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific humidity\n",
+ "#Initalization of variables\n",
+ "pv=0.3631 #psia\n",
+ "pa=14.7 #psia\n",
+ "cp=0.24\n",
+ "tw=70 #F\n",
+ "td=80 #F\n",
+ "hv1=1096.6 #Btu/lb\n",
+ "hfb=38.06 #Btu/lb\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv)\n",
+ "sh1=(cp*tw -cp*td + sh*1054.3)/(hv1-hfb)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific humidity =\",sh1,\" lb/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific humidity = 0.01342 lb/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the relative humidity\n",
+ "#Initalization of variables\n",
+ "rel=0.9\n",
+ "p1=0.0396 #psia\n",
+ "p2=0.3631 #psia\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "RH=act/p2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Relative humidity =\",RH,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative humidity = 9.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature\n",
+ "#Initalization of variables\n",
+ "pa=14.2\n",
+ "rel=0.9\n",
+ "sh=0.012 #lb/lb\n",
+ "#calculations\n",
+ "pv=(pa*sh)/(0.622-sh)\n",
+ "sat=pv/rel\n",
+ "tf=64.34 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"From steam tables, by interpolation, Final temperature =\",tf,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables, by interpolation, Final temperature = 64.34 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat rate addition per min\n",
+ "#Initalization of variables\n",
+ "pa=14.7\n",
+ "pv=0.0356\n",
+ "pv2=0.04\n",
+ "cp=0.24\n",
+ "t1=70 #F\n",
+ "t2=15 #F\n",
+ "R=53.35\n",
+ "V=8000 #ft^3\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv2)\n",
+ "hm2=cp*t1+ sh*1092.3\n",
+ "hm1=cp*t2+sh*1068.4\n",
+ "Q=hm2-hm1\n",
+ "m=144*(pa-pv2)*V/(R*(t2+460.))\n",
+ "Q2=Q*m\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added per min =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added per min = 8821 Btu/min\n",
+ "The answer is a bit different due to rounding off error in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature\n",
+ "#Initalization of variables\n",
+ "rel=0.45\n",
+ "p1=0.4747 #psia\n",
+ "print '%s' %(\"From steam table data,\")\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "t2=54.94 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Temperature =\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table data,\n",
+ "Temperature = 54.94 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "rel=0.6\n",
+ "p1=0.6982 #psia\n",
+ "pa=14.7 #psia\n",
+ "t1=90 #F\n",
+ "t2=54.94 #F\n",
+ "cp=0.24\n",
+ "p2=0.2136 #psia\n",
+ "vol=4000 #ft\n",
+ "t3=538 #R\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "act1=rel*p1\n",
+ "sh1=0.622*act1/(pa-act1)\n",
+ "hm1=cp*t1+sh1*1100.9\n",
+ "sh2=0.622*p2/(pa-p2)\n",
+ "hm2=cp*t2+sh2*1085.8\n",
+ "con=sh1-sh2\n",
+ "enth=con*23.01\n",
+ "heat=hm1-hm2-enth\n",
+ "mass=144*(pa-p2)*vol/(R*(t3))\n",
+ "tonnage=mass*heat/200\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Tonnage =\",tonnage,\"tons \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 26.6 tons \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "p1=0.541 #psia\n",
+ "rel=0.48\n",
+ "pa=14.7 #psia\n",
+ "t1=82 #F\n",
+ "cp=0.24\n",
+ "m1=0.75 #lb\n",
+ "m2=0.25 #lb\n",
+ "hm4=23.15 #Btu/lb\n",
+ "mass=291 #lb\n",
+ "#calculations\n",
+ "p2=rel*p1\n",
+ "sh=0.622*p2/(pa-p2)\n",
+ "hm1=cp*t1 + sh*1097.5\n",
+ "hm2=m1*hm1\n",
+ "hm3=m2*41.67\n",
+ "heat=hm2+hm3-hm4\n",
+ "tonnage=heat*mass/200\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Tonnage =\",tonnage,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 16.35 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume of entering air and amount of make up water\n",
+ "#Initalization of variables\n",
+ "ce=0.8\n",
+ "t1=115 #F\n",
+ "tc=75 #F\n",
+ "td=85 #F\n",
+ "pa=14.7 #psia\n",
+ "p1=0.43 #psia\n",
+ "p2=0.9492 #psia\n",
+ "m1=159600\n",
+ "m2=31.65\n",
+ "R=53.35\n",
+ "T=545 #R\n",
+ "#calculations\n",
+ "t2=t1-ce*(t1-tc)\n",
+ "Pv=0.4298- (pa-p1)*(td-tc)/(2800- 1.3*tc) \n",
+ "sh1=0.622*Pv/(pa-Pv)\n",
+ "sh2=0.622 *p2/(pa-p2)\n",
+ "mda=m1/m2\n",
+ "V=mda*R*T/(144*(pa-Pv))\n",
+ "amount=mda*(sh2-sh1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Volume of entering air =\",V,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Amount of make up water =\",amount,\"lb/min\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of entering air = 71087 cfm\n",
+ "\n",
+ " Amount of make up water = 134.0 lb/min\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_23_2.ipynb b/Thermodynamics_for_Engineers/Chapter_23_2.ipynb
new file mode 100755
index 00000000..48adb58b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_23_2.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ed6f0c315c457295237376ededd9c5992635644b7125968e2389e7033f5e62be"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23 - Gas Vapor mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific humidity\n",
+ "#Initalization of variables\n",
+ "pv=0.3631 #psia\n",
+ "pa=14.7 #psia\n",
+ "cp=0.24\n",
+ "tw=70 #F\n",
+ "td=80 #F\n",
+ "hv1=1096.6 #Btu/lb\n",
+ "hfb=38.06 #Btu/lb\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv)\n",
+ "sh1=(cp*tw -cp*td + sh*1054.3)/(hv1-hfb)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific humidity =\",sh1,\" lb/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific humidity = 0.01342 lb/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the relative humidity\n",
+ "#Initalization of variables\n",
+ "rel=0.9\n",
+ "p1=0.0396 #psia\n",
+ "p2=0.3631 #psia\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "RH=act/p2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Relative humidity =\",RH,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative humidity = 9.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature\n",
+ "#Initalization of variables\n",
+ "pa=14.2\n",
+ "rel=0.9\n",
+ "sh=0.012 #lb/lb\n",
+ "#calculations\n",
+ "pv=(pa*sh)/(0.622-sh)\n",
+ "sat=pv/rel\n",
+ "tf=64.34 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"From steam tables, by interpolation, Final temperature =\",tf,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables, by interpolation, Final temperature = 64.34 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat rate addition per min\n",
+ "#Initalization of variables\n",
+ "pa=14.7\n",
+ "pv=0.0356\n",
+ "pv2=0.04\n",
+ "cp=0.24\n",
+ "t1=70 #F\n",
+ "t2=15 #F\n",
+ "R=53.35\n",
+ "V=8000 #ft^3\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv2)\n",
+ "hm2=cp*t1+ sh*1092.3\n",
+ "hm1=cp*t2+sh*1068.4\n",
+ "Q=hm2-hm1\n",
+ "m=144*(pa-pv2)*V/(R*(t2+460.))\n",
+ "Q2=Q*m\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added per min =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added per min = 8821 Btu/min\n",
+ "The answer is a bit different due to rounding off error in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature\n",
+ "#Initalization of variables\n",
+ "rel=0.45\n",
+ "p1=0.4747 #psia\n",
+ "print '%s' %(\"From steam table data,\")\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "t2=54.94 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Temperature =\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table data,\n",
+ "Temperature = 54.94 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "rel=0.6\n",
+ "p1=0.6982 #psia\n",
+ "pa=14.7 #psia\n",
+ "t1=90 #F\n",
+ "t2=54.94 #F\n",
+ "cp=0.24\n",
+ "p2=0.2136 #psia\n",
+ "vol=4000 #ft\n",
+ "t3=538 #R\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "act1=rel*p1\n",
+ "sh1=0.622*act1/(pa-act1)\n",
+ "hm1=cp*t1+sh1*1100.9\n",
+ "sh2=0.622*p2/(pa-p2)\n",
+ "hm2=cp*t2+sh2*1085.8\n",
+ "con=sh1-sh2\n",
+ "enth=con*23.01\n",
+ "heat=hm1-hm2-enth\n",
+ "mass=144*(pa-p2)*vol/(R*(t3))\n",
+ "tonnage=mass*heat/200\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Tonnage =\",tonnage,\"tons \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 26.6 tons \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "p1=0.541 #psia\n",
+ "rel=0.48\n",
+ "pa=14.7 #psia\n",
+ "t1=82 #F\n",
+ "cp=0.24\n",
+ "m1=0.75 #lb\n",
+ "m2=0.25 #lb\n",
+ "hm4=23.15 #Btu/lb\n",
+ "mass=291 #lb\n",
+ "#calculations\n",
+ "p2=rel*p1\n",
+ "sh=0.622*p2/(pa-p2)\n",
+ "hm1=cp*t1 + sh*1097.5\n",
+ "hm2=m1*hm1\n",
+ "hm3=m2*41.67\n",
+ "heat=hm2+hm3-hm4\n",
+ "tonnage=heat*mass/200\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Tonnage =\",tonnage,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 16.35 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume of entering air and amount of make up water\n",
+ "#Initalization of variables\n",
+ "ce=0.8\n",
+ "t1=115 #F\n",
+ "tc=75 #F\n",
+ "td=85 #F\n",
+ "pa=14.7 #psia\n",
+ "p1=0.43 #psia\n",
+ "p2=0.9492 #psia\n",
+ "m1=159600\n",
+ "m2=31.65\n",
+ "R=53.35\n",
+ "T=545 #R\n",
+ "#calculations\n",
+ "t2=t1-ce*(t1-tc)\n",
+ "Pv=0.4298- (pa-p1)*(td-tc)/(2800- 1.3*tc) \n",
+ "sh1=0.622*Pv/(pa-Pv)\n",
+ "sh2=0.622 *p2/(pa-p2)\n",
+ "mda=m1/m2\n",
+ "V=mda*R*T/(144*(pa-Pv))\n",
+ "amount=mda*(sh2-sh1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Volume of entering air =\",V,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Amount of make up water =\",amount,\"lb/min\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of entering air = 71087 cfm\n",
+ "\n",
+ " Amount of make up water = 134.0 lb/min\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_23_3.ipynb b/Thermodynamics_for_Engineers/Chapter_23_3.ipynb
new file mode 100755
index 00000000..48adb58b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_23_3.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ed6f0c315c457295237376ededd9c5992635644b7125968e2389e7033f5e62be"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23 - Gas Vapor mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific humidity\n",
+ "#Initalization of variables\n",
+ "pv=0.3631 #psia\n",
+ "pa=14.7 #psia\n",
+ "cp=0.24\n",
+ "tw=70 #F\n",
+ "td=80 #F\n",
+ "hv1=1096.6 #Btu/lb\n",
+ "hfb=38.06 #Btu/lb\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv)\n",
+ "sh1=(cp*tw -cp*td + sh*1054.3)/(hv1-hfb)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific humidity =\",sh1,\" lb/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific humidity = 0.01342 lb/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the relative humidity\n",
+ "#Initalization of variables\n",
+ "rel=0.9\n",
+ "p1=0.0396 #psia\n",
+ "p2=0.3631 #psia\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "RH=act/p2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Relative humidity =\",RH,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative humidity = 9.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature\n",
+ "#Initalization of variables\n",
+ "pa=14.2\n",
+ "rel=0.9\n",
+ "sh=0.012 #lb/lb\n",
+ "#calculations\n",
+ "pv=(pa*sh)/(0.622-sh)\n",
+ "sat=pv/rel\n",
+ "tf=64.34 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"From steam tables, by interpolation, Final temperature =\",tf,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables, by interpolation, Final temperature = 64.34 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat rate addition per min\n",
+ "#Initalization of variables\n",
+ "pa=14.7\n",
+ "pv=0.0356\n",
+ "pv2=0.04\n",
+ "cp=0.24\n",
+ "t1=70 #F\n",
+ "t2=15 #F\n",
+ "R=53.35\n",
+ "V=8000 #ft^3\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv2)\n",
+ "hm2=cp*t1+ sh*1092.3\n",
+ "hm1=cp*t2+sh*1068.4\n",
+ "Q=hm2-hm1\n",
+ "m=144*(pa-pv2)*V/(R*(t2+460.))\n",
+ "Q2=Q*m\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added per min =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added per min = 8821 Btu/min\n",
+ "The answer is a bit different due to rounding off error in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature\n",
+ "#Initalization of variables\n",
+ "rel=0.45\n",
+ "p1=0.4747 #psia\n",
+ "print '%s' %(\"From steam table data,\")\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "t2=54.94 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Temperature =\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table data,\n",
+ "Temperature = 54.94 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "rel=0.6\n",
+ "p1=0.6982 #psia\n",
+ "pa=14.7 #psia\n",
+ "t1=90 #F\n",
+ "t2=54.94 #F\n",
+ "cp=0.24\n",
+ "p2=0.2136 #psia\n",
+ "vol=4000 #ft\n",
+ "t3=538 #R\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "act1=rel*p1\n",
+ "sh1=0.622*act1/(pa-act1)\n",
+ "hm1=cp*t1+sh1*1100.9\n",
+ "sh2=0.622*p2/(pa-p2)\n",
+ "hm2=cp*t2+sh2*1085.8\n",
+ "con=sh1-sh2\n",
+ "enth=con*23.01\n",
+ "heat=hm1-hm2-enth\n",
+ "mass=144*(pa-p2)*vol/(R*(t3))\n",
+ "tonnage=mass*heat/200\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Tonnage =\",tonnage,\"tons \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 26.6 tons \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "p1=0.541 #psia\n",
+ "rel=0.48\n",
+ "pa=14.7 #psia\n",
+ "t1=82 #F\n",
+ "cp=0.24\n",
+ "m1=0.75 #lb\n",
+ "m2=0.25 #lb\n",
+ "hm4=23.15 #Btu/lb\n",
+ "mass=291 #lb\n",
+ "#calculations\n",
+ "p2=rel*p1\n",
+ "sh=0.622*p2/(pa-p2)\n",
+ "hm1=cp*t1 + sh*1097.5\n",
+ "hm2=m1*hm1\n",
+ "hm3=m2*41.67\n",
+ "heat=hm2+hm3-hm4\n",
+ "tonnage=heat*mass/200\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Tonnage =\",tonnage,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 16.35 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume of entering air and amount of make up water\n",
+ "#Initalization of variables\n",
+ "ce=0.8\n",
+ "t1=115 #F\n",
+ "tc=75 #F\n",
+ "td=85 #F\n",
+ "pa=14.7 #psia\n",
+ "p1=0.43 #psia\n",
+ "p2=0.9492 #psia\n",
+ "m1=159600\n",
+ "m2=31.65\n",
+ "R=53.35\n",
+ "T=545 #R\n",
+ "#calculations\n",
+ "t2=t1-ce*(t1-tc)\n",
+ "Pv=0.4298- (pa-p1)*(td-tc)/(2800- 1.3*tc) \n",
+ "sh1=0.622*Pv/(pa-Pv)\n",
+ "sh2=0.622 *p2/(pa-p2)\n",
+ "mda=m1/m2\n",
+ "V=mda*R*T/(144*(pa-Pv))\n",
+ "amount=mda*(sh2-sh1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Volume of entering air =\",V,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Amount of make up water =\",amount,\"lb/min\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of entering air = 71087 cfm\n",
+ "\n",
+ " Amount of make up water = 134.0 lb/min\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_23_4.ipynb b/Thermodynamics_for_Engineers/Chapter_23_4.ipynb
new file mode 100755
index 00000000..48adb58b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_23_4.ipynb
@@ -0,0 +1,372 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:ed6f0c315c457295237376ededd9c5992635644b7125968e2389e7033f5e62be"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 23 - Gas Vapor mixtures"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 505"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the specific humidity\n",
+ "#Initalization of variables\n",
+ "pv=0.3631 #psia\n",
+ "pa=14.7 #psia\n",
+ "cp=0.24\n",
+ "tw=70 #F\n",
+ "td=80 #F\n",
+ "hv1=1096.6 #Btu/lb\n",
+ "hfb=38.06 #Btu/lb\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv)\n",
+ "sh1=(cp*tw -cp*td + sh*1054.3)/(hv1-hfb)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Specific humidity =\",sh1,\" lb/lb\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Specific humidity = 0.01342 lb/lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the relative humidity\n",
+ "#Initalization of variables\n",
+ "rel=0.9\n",
+ "p1=0.0396 #psia\n",
+ "p2=0.3631 #psia\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "RH=act/p2 *100.\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Relative humidity =\",RH,\" percent\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative humidity = 9.8 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the final temperature\n",
+ "#Initalization of variables\n",
+ "pa=14.2\n",
+ "rel=0.9\n",
+ "sh=0.012 #lb/lb\n",
+ "#calculations\n",
+ "pv=(pa*sh)/(0.622-sh)\n",
+ "sat=pv/rel\n",
+ "tf=64.34 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"From steam tables, by interpolation, Final temperature =\",tf,\" F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam tables, by interpolation, Final temperature = 64.34 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat rate addition per min\n",
+ "#Initalization of variables\n",
+ "pa=14.7\n",
+ "pv=0.0356\n",
+ "pv2=0.04\n",
+ "cp=0.24\n",
+ "t1=70 #F\n",
+ "t2=15 #F\n",
+ "R=53.35\n",
+ "V=8000 #ft^3\n",
+ "#calculations\n",
+ "sh=0.622*pv/(pa-pv2)\n",
+ "hm2=cp*t1+ sh*1092.3\n",
+ "hm1=cp*t2+sh*1068.4\n",
+ "Q=hm2-hm1\n",
+ "m=144*(pa-pv2)*V/(R*(t2+460.))\n",
+ "Q2=Q*m\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added per min =\",Q2,\"Btu/min\")\n",
+ "print '%s' %(\"The answer is a bit different due to rounding off error in the textbook\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added per min = 8821 Btu/min\n",
+ "The answer is a bit different due to rounding off error in the textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Temperature\n",
+ "#Initalization of variables\n",
+ "rel=0.45\n",
+ "p1=0.4747 #psia\n",
+ "print '%s' %(\"From steam table data,\")\n",
+ "#calculations\n",
+ "act=rel*p1\n",
+ "t2=54.94 #F\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Temperature =\",t2,\"F\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From steam table data,\n",
+ "Temperature = 54.94 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - Pg 511"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "rel=0.6\n",
+ "p1=0.6982 #psia\n",
+ "pa=14.7 #psia\n",
+ "t1=90 #F\n",
+ "t2=54.94 #F\n",
+ "cp=0.24\n",
+ "p2=0.2136 #psia\n",
+ "vol=4000 #ft\n",
+ "t3=538 #R\n",
+ "R=53.35\n",
+ "#calculations\n",
+ "act1=rel*p1\n",
+ "sh1=0.622*act1/(pa-act1)\n",
+ "hm1=cp*t1+sh1*1100.9\n",
+ "sh2=0.622*p2/(pa-p2)\n",
+ "hm2=cp*t2+sh2*1085.8\n",
+ "con=sh1-sh2\n",
+ "enth=con*23.01\n",
+ "heat=hm1-hm2-enth\n",
+ "mass=144*(pa-p2)*vol/(R*(t3))\n",
+ "tonnage=mass*heat/200\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Tonnage =\",tonnage,\"tons \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 26.6 tons \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - Pg 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the tonnage\n",
+ "#Initalization of variables\n",
+ "p1=0.541 #psia\n",
+ "rel=0.48\n",
+ "pa=14.7 #psia\n",
+ "t1=82 #F\n",
+ "cp=0.24\n",
+ "m1=0.75 #lb\n",
+ "m2=0.25 #lb\n",
+ "hm4=23.15 #Btu/lb\n",
+ "mass=291 #lb\n",
+ "#calculations\n",
+ "p2=rel*p1\n",
+ "sh=0.622*p2/(pa-p2)\n",
+ "hm1=cp*t1 + sh*1097.5\n",
+ "hm2=m1*hm1\n",
+ "hm3=m2*41.67\n",
+ "heat=hm2+hm3-hm4\n",
+ "tonnage=heat*mass/200\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Tonnage =\",tonnage,\" tons\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tonnage = 16.35 tons\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - Pg 516"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume of entering air and amount of make up water\n",
+ "#Initalization of variables\n",
+ "ce=0.8\n",
+ "t1=115 #F\n",
+ "tc=75 #F\n",
+ "td=85 #F\n",
+ "pa=14.7 #psia\n",
+ "p1=0.43 #psia\n",
+ "p2=0.9492 #psia\n",
+ "m1=159600\n",
+ "m2=31.65\n",
+ "R=53.35\n",
+ "T=545 #R\n",
+ "#calculations\n",
+ "t2=t1-ce*(t1-tc)\n",
+ "Pv=0.4298- (pa-p1)*(td-tc)/(2800- 1.3*tc) \n",
+ "sh1=0.622*Pv/(pa-Pv)\n",
+ "sh2=0.622 *p2/(pa-p2)\n",
+ "mda=m1/m2\n",
+ "V=mda*R*T/(144*(pa-Pv))\n",
+ "amount=mda*(sh2-sh1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Volume of entering air =\",V,\"cfm\")\n",
+ "print '%s %.1f %s' %(\"\\n Amount of make up water =\",amount,\"lb/min\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume of entering air = 71087 cfm\n",
+ "\n",
+ " Amount of make up water = 134.0 lb/min\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_5.ipynb b/Thermodynamics_for_Engineers/Chapter_5.ipynb
new file mode 100755
index 00000000..60d3de94
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_5.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86a66a56e6c068c1b5488c8e726c9aecdd48422f90b429aec4b5cc311da3bb32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - Actual Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume occupied by the gas and also the tabulated volume\n",
+ "#Initialization of variables\n",
+ "m=20. #lbm\n",
+ "P=1000. #psia\n",
+ "T=580. #R\n",
+ "R=35.12\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 5-2,\")\n",
+ "z=0.667\n",
+ "V=z*m*R*T/(P*144.)\n",
+ "vt=0.0935\n",
+ "vtt=vt*m\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Volume occupied =\",V,\"cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Tablulated value for volume =\",vtt,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-2,\n",
+ "Volume occupied = 1.887 cu ft\n",
+ "\n",
+ " Tablulated value for volume = 1.87 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure obtained and theoretical pressure\n",
+ "#Initialization of variables\n",
+ "m=90 #lbm\n",
+ "T=200+459.7 #R\n",
+ "Tc=232.7+459.7 #R\n",
+ "R0=1545.\n",
+ "M=120.9\n",
+ "V=30. #cu ft\n",
+ "#calculations\n",
+ "R=R0/M\n",
+ "print '%s' %(\"From fig 5.5\")\n",
+ "z=0.883\n",
+ "P=z*R*m*T/V/144.\n",
+ "vc=V/m\n",
+ "P2=156.1 #psia\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure obtained =\",P,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Theoretical pressure =\",P2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From fig 5.5\n",
+ "Pressure obtained = 155.08 psia\n",
+ "\n",
+ " Theoretical pressure = 156.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "T1=140+460. #R\n",
+ "T2=240 +460. #R\n",
+ "N=1.\n",
+ "#calculations\n",
+ "Q=N*(9.47*(T2-T1)-3.47*1000. *math.log(T2/T1) -1.16*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cp=9.47-3.47*1000. /Tm +1.16*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cp*(T2-T1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 688 Btu\n",
+ "\n",
+ " Heat added in case 2 = 687.7 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Rj=1.985\n",
+ "N=1\n",
+ "T1=540.+460 #R\n",
+ "T2=3540.+460 #R\n",
+ "#calculations\n",
+ "Q=N*(14.215*(T2-T1)-6.53*1000. *math.log(T2/T1) -1.41*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cv=14.215-6.53*1000. /Tm +1.41*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cv*(T2-T1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 34650.0 Btu\n",
+ "\n",
+ " Heat added in case 2 = 35485.8 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_5_1.ipynb b/Thermodynamics_for_Engineers/Chapter_5_1.ipynb
new file mode 100755
index 00000000..60d3de94
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_5_1.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86a66a56e6c068c1b5488c8e726c9aecdd48422f90b429aec4b5cc311da3bb32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - Actual Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume occupied by the gas and also the tabulated volume\n",
+ "#Initialization of variables\n",
+ "m=20. #lbm\n",
+ "P=1000. #psia\n",
+ "T=580. #R\n",
+ "R=35.12\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 5-2,\")\n",
+ "z=0.667\n",
+ "V=z*m*R*T/(P*144.)\n",
+ "vt=0.0935\n",
+ "vtt=vt*m\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Volume occupied =\",V,\"cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Tablulated value for volume =\",vtt,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-2,\n",
+ "Volume occupied = 1.887 cu ft\n",
+ "\n",
+ " Tablulated value for volume = 1.87 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure obtained and theoretical pressure\n",
+ "#Initialization of variables\n",
+ "m=90 #lbm\n",
+ "T=200+459.7 #R\n",
+ "Tc=232.7+459.7 #R\n",
+ "R0=1545.\n",
+ "M=120.9\n",
+ "V=30. #cu ft\n",
+ "#calculations\n",
+ "R=R0/M\n",
+ "print '%s' %(\"From fig 5.5\")\n",
+ "z=0.883\n",
+ "P=z*R*m*T/V/144.\n",
+ "vc=V/m\n",
+ "P2=156.1 #psia\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure obtained =\",P,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Theoretical pressure =\",P2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From fig 5.5\n",
+ "Pressure obtained = 155.08 psia\n",
+ "\n",
+ " Theoretical pressure = 156.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "T1=140+460. #R\n",
+ "T2=240 +460. #R\n",
+ "N=1.\n",
+ "#calculations\n",
+ "Q=N*(9.47*(T2-T1)-3.47*1000. *math.log(T2/T1) -1.16*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cp=9.47-3.47*1000. /Tm +1.16*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cp*(T2-T1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 688 Btu\n",
+ "\n",
+ " Heat added in case 2 = 687.7 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Rj=1.985\n",
+ "N=1\n",
+ "T1=540.+460 #R\n",
+ "T2=3540.+460 #R\n",
+ "#calculations\n",
+ "Q=N*(14.215*(T2-T1)-6.53*1000. *math.log(T2/T1) -1.41*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cv=14.215-6.53*1000. /Tm +1.41*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cv*(T2-T1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 34650.0 Btu\n",
+ "\n",
+ " Heat added in case 2 = 35485.8 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_5_2.ipynb b/Thermodynamics_for_Engineers/Chapter_5_2.ipynb
new file mode 100755
index 00000000..60d3de94
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_5_2.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86a66a56e6c068c1b5488c8e726c9aecdd48422f90b429aec4b5cc311da3bb32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - Actual Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume occupied by the gas and also the tabulated volume\n",
+ "#Initialization of variables\n",
+ "m=20. #lbm\n",
+ "P=1000. #psia\n",
+ "T=580. #R\n",
+ "R=35.12\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 5-2,\")\n",
+ "z=0.667\n",
+ "V=z*m*R*T/(P*144.)\n",
+ "vt=0.0935\n",
+ "vtt=vt*m\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Volume occupied =\",V,\"cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Tablulated value for volume =\",vtt,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-2,\n",
+ "Volume occupied = 1.887 cu ft\n",
+ "\n",
+ " Tablulated value for volume = 1.87 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure obtained and theoretical pressure\n",
+ "#Initialization of variables\n",
+ "m=90 #lbm\n",
+ "T=200+459.7 #R\n",
+ "Tc=232.7+459.7 #R\n",
+ "R0=1545.\n",
+ "M=120.9\n",
+ "V=30. #cu ft\n",
+ "#calculations\n",
+ "R=R0/M\n",
+ "print '%s' %(\"From fig 5.5\")\n",
+ "z=0.883\n",
+ "P=z*R*m*T/V/144.\n",
+ "vc=V/m\n",
+ "P2=156.1 #psia\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure obtained =\",P,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Theoretical pressure =\",P2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From fig 5.5\n",
+ "Pressure obtained = 155.08 psia\n",
+ "\n",
+ " Theoretical pressure = 156.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "T1=140+460. #R\n",
+ "T2=240 +460. #R\n",
+ "N=1.\n",
+ "#calculations\n",
+ "Q=N*(9.47*(T2-T1)-3.47*1000. *math.log(T2/T1) -1.16*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cp=9.47-3.47*1000. /Tm +1.16*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cp*(T2-T1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 688 Btu\n",
+ "\n",
+ " Heat added in case 2 = 687.7 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Rj=1.985\n",
+ "N=1\n",
+ "T1=540.+460 #R\n",
+ "T2=3540.+460 #R\n",
+ "#calculations\n",
+ "Q=N*(14.215*(T2-T1)-6.53*1000. *math.log(T2/T1) -1.41*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cv=14.215-6.53*1000. /Tm +1.41*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cv*(T2-T1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 34650.0 Btu\n",
+ "\n",
+ " Heat added in case 2 = 35485.8 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_5_3.ipynb b/Thermodynamics_for_Engineers/Chapter_5_3.ipynb
new file mode 100755
index 00000000..60d3de94
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_5_3.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86a66a56e6c068c1b5488c8e726c9aecdd48422f90b429aec4b5cc311da3bb32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - Actual Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume occupied by the gas and also the tabulated volume\n",
+ "#Initialization of variables\n",
+ "m=20. #lbm\n",
+ "P=1000. #psia\n",
+ "T=580. #R\n",
+ "R=35.12\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 5-2,\")\n",
+ "z=0.667\n",
+ "V=z*m*R*T/(P*144.)\n",
+ "vt=0.0935\n",
+ "vtt=vt*m\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Volume occupied =\",V,\"cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Tablulated value for volume =\",vtt,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-2,\n",
+ "Volume occupied = 1.887 cu ft\n",
+ "\n",
+ " Tablulated value for volume = 1.87 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure obtained and theoretical pressure\n",
+ "#Initialization of variables\n",
+ "m=90 #lbm\n",
+ "T=200+459.7 #R\n",
+ "Tc=232.7+459.7 #R\n",
+ "R0=1545.\n",
+ "M=120.9\n",
+ "V=30. #cu ft\n",
+ "#calculations\n",
+ "R=R0/M\n",
+ "print '%s' %(\"From fig 5.5\")\n",
+ "z=0.883\n",
+ "P=z*R*m*T/V/144.\n",
+ "vc=V/m\n",
+ "P2=156.1 #psia\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure obtained =\",P,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Theoretical pressure =\",P2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From fig 5.5\n",
+ "Pressure obtained = 155.08 psia\n",
+ "\n",
+ " Theoretical pressure = 156.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "T1=140+460. #R\n",
+ "T2=240 +460. #R\n",
+ "N=1.\n",
+ "#calculations\n",
+ "Q=N*(9.47*(T2-T1)-3.47*1000. *math.log(T2/T1) -1.16*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cp=9.47-3.47*1000. /Tm +1.16*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cp*(T2-T1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 688 Btu\n",
+ "\n",
+ " Heat added in case 2 = 687.7 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Rj=1.985\n",
+ "N=1\n",
+ "T1=540.+460 #R\n",
+ "T2=3540.+460 #R\n",
+ "#calculations\n",
+ "Q=N*(14.215*(T2-T1)-6.53*1000. *math.log(T2/T1) -1.41*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cv=14.215-6.53*1000. /Tm +1.41*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cv*(T2-T1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 34650.0 Btu\n",
+ "\n",
+ " Heat added in case 2 = 35485.8 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_5_4.ipynb b/Thermodynamics_for_Engineers/Chapter_5_4.ipynb
new file mode 100755
index 00000000..60d3de94
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_5_4.ipynb
@@ -0,0 +1,199 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86a66a56e6c068c1b5488c8e726c9aecdd48422f90b429aec4b5cc311da3bb32"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 5 - Actual Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the volume occupied by the gas and also the tabulated volume\n",
+ "#Initialization of variables\n",
+ "m=20. #lbm\n",
+ "P=1000. #psia\n",
+ "T=580. #R\n",
+ "R=35.12\n",
+ "#calculations\n",
+ "print '%s' %(\"From table 5-2,\")\n",
+ "z=0.667\n",
+ "V=z*m*R*T/(P*144.)\n",
+ "vt=0.0935\n",
+ "vtt=vt*m\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Volume occupied =\",V,\"cu ft\")\n",
+ "print '%s %.2f %s' %(\"\\n Tablulated value for volume =\",vtt,\" cu ft\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From table 5-2,\n",
+ "Volume occupied = 1.887 cu ft\n",
+ "\n",
+ " Tablulated value for volume = 1.87 cu ft\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 74"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the pressure obtained and theoretical pressure\n",
+ "#Initialization of variables\n",
+ "m=90 #lbm\n",
+ "T=200+459.7 #R\n",
+ "Tc=232.7+459.7 #R\n",
+ "R0=1545.\n",
+ "M=120.9\n",
+ "V=30. #cu ft\n",
+ "#calculations\n",
+ "R=R0/M\n",
+ "print '%s' %(\"From fig 5.5\")\n",
+ "z=0.883\n",
+ "P=z*R*m*T/V/144.\n",
+ "vc=V/m\n",
+ "P2=156.1 #psia\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Pressure obtained =\",P,\"psia\")\n",
+ "print '%s %.1f %s' %(\"\\n Theoretical pressure =\",P2,\"psia\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "From fig 5.5\n",
+ "Pressure obtained = 155.08 psia\n",
+ "\n",
+ " Theoretical pressure = 156.1 psia\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - Pg 84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "T1=140+460. #R\n",
+ "T2=240 +460. #R\n",
+ "N=1.\n",
+ "#calculations\n",
+ "Q=N*(9.47*(T2-T1)-3.47*1000. *math.log(T2/T1) -1.16*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cp=9.47-3.47*1000. /Tm +1.16*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cp*(T2-T1)\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 688 Btu\n",
+ "\n",
+ " Heat added in case 2 = 687.7 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - Pg 85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the heat added in both cases\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "Rj=1.985\n",
+ "N=1\n",
+ "T1=540.+460 #R\n",
+ "T2=3540.+460 #R\n",
+ "#calculations\n",
+ "Q=N*(14.215*(T2-T1)-6.53*1000. *math.log(T2/T1) -1.41*math.pow(10,6) *(1/T2-1/T1))\n",
+ "Tm=(T1+T2)/2\n",
+ "Cv=14.215-6.53*1000. /Tm +1.41*math.pow(10,6) /Tm/Tm\n",
+ "Q2=N*Cv*(T2-T1)\n",
+ "#results\n",
+ "print '%s %.1f %s' %(\"Heat added in case 1 =\",Q,\"Btu\")\n",
+ "print '%s %.1f %s' %(\"\\n Heat added in case 2 =\",Q2,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Heat added in case 1 = 34650.0 Btu\n",
+ "\n",
+ " Heat added in case 2 = 35485.8 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_7.ipynb b/Thermodynamics_for_Engineers/Chapter_7.ipynb
new file mode 100755
index 00000000..a780ec36
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_7.ipynb
@@ -0,0 +1,67 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7cd10447df19fe2f7f7381338e86fa6208bc3c3a796f2e977240b17e164ee22b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "T2=920. #R\n",
+ "T1=520. #R\n",
+ "P1=14. #psia\n",
+ "P2=84. #psia\n",
+ "J=778.\n",
+ "R=53.35\n",
+ "cv=0.1715\n",
+ "N=1\n",
+ "#calculations\n",
+ "k= math.log(T2/T1) /math.log(P2/P1)\n",
+ "n=1/(1-k)\n",
+ "cx=cv+R/(J*(1-n))\n",
+ "dS=N*cx*math.log(T2/T1)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Change in entropy =\",dS,\"unit of entropy\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.01411 unit of entropy\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_7_1.ipynb b/Thermodynamics_for_Engineers/Chapter_7_1.ipynb
new file mode 100755
index 00000000..a780ec36
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_7_1.ipynb
@@ -0,0 +1,67 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7cd10447df19fe2f7f7381338e86fa6208bc3c3a796f2e977240b17e164ee22b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "T2=920. #R\n",
+ "T1=520. #R\n",
+ "P1=14. #psia\n",
+ "P2=84. #psia\n",
+ "J=778.\n",
+ "R=53.35\n",
+ "cv=0.1715\n",
+ "N=1\n",
+ "#calculations\n",
+ "k= math.log(T2/T1) /math.log(P2/P1)\n",
+ "n=1/(1-k)\n",
+ "cx=cv+R/(J*(1-n))\n",
+ "dS=N*cx*math.log(T2/T1)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Change in entropy =\",dS,\"unit of entropy\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.01411 unit of entropy\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_7_2.ipynb b/Thermodynamics_for_Engineers/Chapter_7_2.ipynb
new file mode 100755
index 00000000..a780ec36
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_7_2.ipynb
@@ -0,0 +1,67 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7cd10447df19fe2f7f7381338e86fa6208bc3c3a796f2e977240b17e164ee22b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "T2=920. #R\n",
+ "T1=520. #R\n",
+ "P1=14. #psia\n",
+ "P2=84. #psia\n",
+ "J=778.\n",
+ "R=53.35\n",
+ "cv=0.1715\n",
+ "N=1\n",
+ "#calculations\n",
+ "k= math.log(T2/T1) /math.log(P2/P1)\n",
+ "n=1/(1-k)\n",
+ "cx=cv+R/(J*(1-n))\n",
+ "dS=N*cx*math.log(T2/T1)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Change in entropy =\",dS,\"unit of entropy\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.01411 unit of entropy\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_7_3.ipynb b/Thermodynamics_for_Engineers/Chapter_7_3.ipynb
new file mode 100755
index 00000000..a780ec36
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_7_3.ipynb
@@ -0,0 +1,67 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7cd10447df19fe2f7f7381338e86fa6208bc3c3a796f2e977240b17e164ee22b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "T2=920. #R\n",
+ "T1=520. #R\n",
+ "P1=14. #psia\n",
+ "P2=84. #psia\n",
+ "J=778.\n",
+ "R=53.35\n",
+ "cv=0.1715\n",
+ "N=1\n",
+ "#calculations\n",
+ "k= math.log(T2/T1) /math.log(P2/P1)\n",
+ "n=1/(1-k)\n",
+ "cx=cv+R/(J*(1-n))\n",
+ "dS=N*cx*math.log(T2/T1)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Change in entropy =\",dS,\"unit of entropy\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.01411 unit of entropy\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_7_4.ipynb b/Thermodynamics_for_Engineers/Chapter_7_4.ipynb
new file mode 100755
index 00000000..a780ec36
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_7_4.ipynb
@@ -0,0 +1,67 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7cd10447df19fe2f7f7381338e86fa6208bc3c3a796f2e977240b17e164ee22b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 - Entropy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the change in entropy\n",
+ "#Initialization of variables\n",
+ "T2=920. #R\n",
+ "T1=520. #R\n",
+ "P1=14. #psia\n",
+ "P2=84. #psia\n",
+ "J=778.\n",
+ "R=53.35\n",
+ "cv=0.1715\n",
+ "N=1\n",
+ "#calculations\n",
+ "k= math.log(T2/T1) /math.log(P2/P1)\n",
+ "n=1/(1-k)\n",
+ "cx=cv+R/(J*(1-n))\n",
+ "dS=N*cx*math.log(T2/T1)\n",
+ "#results\n",
+ "print '%s %.5f %s' %(\"Change in entropy =\",dS,\"unit of entropy\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Change in entropy = 0.01411 unit of entropy\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_8.ipynb b/Thermodynamics_for_Engineers/Chapter_8.ipynb
new file mode 100755
index 00000000..8dd5540f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_8.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86e00f67d619987b1a4198153e70d431ddb0592847bf75b0bc55b544e7c1f8d2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Availability of Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available energy loss\n",
+ "#Initialization of variables\n",
+ "q=1000. #Btu\n",
+ "th=1140. #F\n",
+ "tl=40. #F\n",
+ "ts=940. #F\n",
+ "#calculations\n",
+ "Q1=q*(th-tl)/(th+460)\n",
+ "Q2=q*(ts-tl)/(ts+460)\n",
+ "dif=Q1-Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Available energy loss =\",dif,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy loss = 44 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the untransferred, transferred, available, unavailable energy for both gas and water\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ma=200000. #lb\n",
+ "cpa=0.26\n",
+ "T2g=1200. #F\n",
+ "T1g=300. #F\n",
+ "T1w=200. #F\n",
+ "mw=250000. #lb\n",
+ "cpw=1.02\n",
+ "Tl=560. #R\n",
+ "cx=1.01\n",
+ "#calculations\n",
+ "T2w=T1w+ ma*cpa*(T2g-T1g)/(mw*cpw)\n",
+ "Qun=Tl*ma*cpa*math.log((T2g+460)/(T1g+460))\n",
+ "Qtr=ma*cpa*(T2g-T1g)\n",
+ "Qav=Qtr-Qun\n",
+ "Qun2=Tl*mw*cx*math.log((T2w+460)/(T1w+460))\n",
+ "Qav2=Qtr-Qun2\n",
+ "ht1=Qav-Qav2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"For gas, Untransferred energy =\",Qun,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, transferred energy =\",Qtr,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, available energy =\",Qav,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, Untransferred energy =\",Qun2,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, available energy =\",Qav2,\" Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n Loss of available energy =\",ht1,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For gas, Untransferred energy = 22750129 Btu/hr\n",
+ "\n",
+ " For gas, transferred energy = 46800000 Btu/hr\n",
+ "\n",
+ " For gas, available energy = 24049870 Btu/hr\n",
+ "\n",
+ " For water, Untransferred energy = 34693187 Btu/hr\n",
+ "\n",
+ " For water, available energy = 12106812 Btu/hr\n",
+ "\n",
+ " Loss of available energy = 11943058 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_8_1.ipynb b/Thermodynamics_for_Engineers/Chapter_8_1.ipynb
new file mode 100755
index 00000000..8dd5540f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_8_1.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86e00f67d619987b1a4198153e70d431ddb0592847bf75b0bc55b544e7c1f8d2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Availability of Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available energy loss\n",
+ "#Initialization of variables\n",
+ "q=1000. #Btu\n",
+ "th=1140. #F\n",
+ "tl=40. #F\n",
+ "ts=940. #F\n",
+ "#calculations\n",
+ "Q1=q*(th-tl)/(th+460)\n",
+ "Q2=q*(ts-tl)/(ts+460)\n",
+ "dif=Q1-Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Available energy loss =\",dif,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy loss = 44 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the untransferred, transferred, available, unavailable energy for both gas and water\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ma=200000. #lb\n",
+ "cpa=0.26\n",
+ "T2g=1200. #F\n",
+ "T1g=300. #F\n",
+ "T1w=200. #F\n",
+ "mw=250000. #lb\n",
+ "cpw=1.02\n",
+ "Tl=560. #R\n",
+ "cx=1.01\n",
+ "#calculations\n",
+ "T2w=T1w+ ma*cpa*(T2g-T1g)/(mw*cpw)\n",
+ "Qun=Tl*ma*cpa*math.log((T2g+460)/(T1g+460))\n",
+ "Qtr=ma*cpa*(T2g-T1g)\n",
+ "Qav=Qtr-Qun\n",
+ "Qun2=Tl*mw*cx*math.log((T2w+460)/(T1w+460))\n",
+ "Qav2=Qtr-Qun2\n",
+ "ht1=Qav-Qav2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"For gas, Untransferred energy =\",Qun,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, transferred energy =\",Qtr,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, available energy =\",Qav,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, Untransferred energy =\",Qun2,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, available energy =\",Qav2,\" Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n Loss of available energy =\",ht1,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For gas, Untransferred energy = 22750129 Btu/hr\n",
+ "\n",
+ " For gas, transferred energy = 46800000 Btu/hr\n",
+ "\n",
+ " For gas, available energy = 24049870 Btu/hr\n",
+ "\n",
+ " For water, Untransferred energy = 34693187 Btu/hr\n",
+ "\n",
+ " For water, available energy = 12106812 Btu/hr\n",
+ "\n",
+ " Loss of available energy = 11943058 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_8_2.ipynb b/Thermodynamics_for_Engineers/Chapter_8_2.ipynb
new file mode 100755
index 00000000..8dd5540f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_8_2.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86e00f67d619987b1a4198153e70d431ddb0592847bf75b0bc55b544e7c1f8d2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Availability of Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available energy loss\n",
+ "#Initialization of variables\n",
+ "q=1000. #Btu\n",
+ "th=1140. #F\n",
+ "tl=40. #F\n",
+ "ts=940. #F\n",
+ "#calculations\n",
+ "Q1=q*(th-tl)/(th+460)\n",
+ "Q2=q*(ts-tl)/(ts+460)\n",
+ "dif=Q1-Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Available energy loss =\",dif,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy loss = 44 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the untransferred, transferred, available, unavailable energy for both gas and water\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ma=200000. #lb\n",
+ "cpa=0.26\n",
+ "T2g=1200. #F\n",
+ "T1g=300. #F\n",
+ "T1w=200. #F\n",
+ "mw=250000. #lb\n",
+ "cpw=1.02\n",
+ "Tl=560. #R\n",
+ "cx=1.01\n",
+ "#calculations\n",
+ "T2w=T1w+ ma*cpa*(T2g-T1g)/(mw*cpw)\n",
+ "Qun=Tl*ma*cpa*math.log((T2g+460)/(T1g+460))\n",
+ "Qtr=ma*cpa*(T2g-T1g)\n",
+ "Qav=Qtr-Qun\n",
+ "Qun2=Tl*mw*cx*math.log((T2w+460)/(T1w+460))\n",
+ "Qav2=Qtr-Qun2\n",
+ "ht1=Qav-Qav2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"For gas, Untransferred energy =\",Qun,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, transferred energy =\",Qtr,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, available energy =\",Qav,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, Untransferred energy =\",Qun2,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, available energy =\",Qav2,\" Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n Loss of available energy =\",ht1,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For gas, Untransferred energy = 22750129 Btu/hr\n",
+ "\n",
+ " For gas, transferred energy = 46800000 Btu/hr\n",
+ "\n",
+ " For gas, available energy = 24049870 Btu/hr\n",
+ "\n",
+ " For water, Untransferred energy = 34693187 Btu/hr\n",
+ "\n",
+ " For water, available energy = 12106812 Btu/hr\n",
+ "\n",
+ " Loss of available energy = 11943058 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_8_3.ipynb b/Thermodynamics_for_Engineers/Chapter_8_3.ipynb
new file mode 100755
index 00000000..8dd5540f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_8_3.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86e00f67d619987b1a4198153e70d431ddb0592847bf75b0bc55b544e7c1f8d2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Availability of Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available energy loss\n",
+ "#Initialization of variables\n",
+ "q=1000. #Btu\n",
+ "th=1140. #F\n",
+ "tl=40. #F\n",
+ "ts=940. #F\n",
+ "#calculations\n",
+ "Q1=q*(th-tl)/(th+460)\n",
+ "Q2=q*(ts-tl)/(ts+460)\n",
+ "dif=Q1-Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Available energy loss =\",dif,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy loss = 44 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the untransferred, transferred, available, unavailable energy for both gas and water\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ma=200000. #lb\n",
+ "cpa=0.26\n",
+ "T2g=1200. #F\n",
+ "T1g=300. #F\n",
+ "T1w=200. #F\n",
+ "mw=250000. #lb\n",
+ "cpw=1.02\n",
+ "Tl=560. #R\n",
+ "cx=1.01\n",
+ "#calculations\n",
+ "T2w=T1w+ ma*cpa*(T2g-T1g)/(mw*cpw)\n",
+ "Qun=Tl*ma*cpa*math.log((T2g+460)/(T1g+460))\n",
+ "Qtr=ma*cpa*(T2g-T1g)\n",
+ "Qav=Qtr-Qun\n",
+ "Qun2=Tl*mw*cx*math.log((T2w+460)/(T1w+460))\n",
+ "Qav2=Qtr-Qun2\n",
+ "ht1=Qav-Qav2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"For gas, Untransferred energy =\",Qun,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, transferred energy =\",Qtr,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, available energy =\",Qav,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, Untransferred energy =\",Qun2,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, available energy =\",Qav2,\" Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n Loss of available energy =\",ht1,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For gas, Untransferred energy = 22750129 Btu/hr\n",
+ "\n",
+ " For gas, transferred energy = 46800000 Btu/hr\n",
+ "\n",
+ " For gas, available energy = 24049870 Btu/hr\n",
+ "\n",
+ " For water, Untransferred energy = 34693187 Btu/hr\n",
+ "\n",
+ " For water, available energy = 12106812 Btu/hr\n",
+ "\n",
+ " Loss of available energy = 11943058 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/Chapter_8_4.ipynb b/Thermodynamics_for_Engineers/Chapter_8_4.ipynb
new file mode 100755
index 00000000..8dd5540f
--- /dev/null
+++ b/Thermodynamics_for_Engineers/Chapter_8_4.ipynb
@@ -0,0 +1,126 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:86e00f67d619987b1a4198153e70d431ddb0592847bf75b0bc55b544e7c1f8d2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8 - Availability of Energy"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - Pg 120"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the available energy loss\n",
+ "#Initialization of variables\n",
+ "q=1000. #Btu\n",
+ "th=1140. #F\n",
+ "tl=40. #F\n",
+ "ts=940. #F\n",
+ "#calculations\n",
+ "Q1=q*(th-tl)/(th+460)\n",
+ "Q2=q*(ts-tl)/(ts+460)\n",
+ "dif=Q1-Q2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"Available energy loss =\",dif,\"Btu\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Available energy loss = 44 Btu\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - Pg 124"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the untransferred, transferred, available, unavailable energy for both gas and water\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "ma=200000. #lb\n",
+ "cpa=0.26\n",
+ "T2g=1200. #F\n",
+ "T1g=300. #F\n",
+ "T1w=200. #F\n",
+ "mw=250000. #lb\n",
+ "cpw=1.02\n",
+ "Tl=560. #R\n",
+ "cx=1.01\n",
+ "#calculations\n",
+ "T2w=T1w+ ma*cpa*(T2g-T1g)/(mw*cpw)\n",
+ "Qun=Tl*ma*cpa*math.log((T2g+460)/(T1g+460))\n",
+ "Qtr=ma*cpa*(T2g-T1g)\n",
+ "Qav=Qtr-Qun\n",
+ "Qun2=Tl*mw*cx*math.log((T2w+460)/(T1w+460))\n",
+ "Qav2=Qtr-Qun2\n",
+ "ht1=Qav-Qav2\n",
+ "#results\n",
+ "print '%s %d %s' %(\"For gas, Untransferred energy =\",Qun,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, transferred energy =\",Qtr,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For gas, available energy =\",Qav,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, Untransferred energy =\",Qun2,\"Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n For water, available energy =\",Qav2,\" Btu/hr\")\n",
+ "print '%s %d %s' %(\"\\n Loss of available energy =\",ht1,\"Btu/hr\")\n",
+ "print '%s' %('The answers are a bit different due to rounding off error in textbook')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For gas, Untransferred energy = 22750129 Btu/hr\n",
+ "\n",
+ " For gas, transferred energy = 46800000 Btu/hr\n",
+ "\n",
+ " For gas, available energy = 24049870 Btu/hr\n",
+ "\n",
+ " For water, Untransferred energy = 34693187 Btu/hr\n",
+ "\n",
+ " For water, available energy = 12106812 Btu/hr\n",
+ "\n",
+ " Loss of available energy = 11943058 Btu/hr\n",
+ "The answers are a bit different due to rounding off error in textbook\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Thermodynamics_for_Engineers/screenshots/chap10.png b/Thermodynamics_for_Engineers/screenshots/chap10.png
new file mode 100755
index 00000000..99df401b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap10.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap10_1.png b/Thermodynamics_for_Engineers/screenshots/chap10_1.png
new file mode 100755
index 00000000..99df401b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap10_1.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap10_2.png b/Thermodynamics_for_Engineers/screenshots/chap10_2.png
new file mode 100755
index 00000000..99df401b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap10_2.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap10_3.png b/Thermodynamics_for_Engineers/screenshots/chap10_3.png
new file mode 100755
index 00000000..99df401b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap10_3.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap10_4.png b/Thermodynamics_for_Engineers/screenshots/chap10_4.png
new file mode 100755
index 00000000..99df401b
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap10_4.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap11.png b/Thermodynamics_for_Engineers/screenshots/chap11.png
new file mode 100755
index 00000000..56f5c0be
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap11.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap11_1.png b/Thermodynamics_for_Engineers/screenshots/chap11_1.png
new file mode 100755
index 00000000..56f5c0be
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap11_1.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap11_2.png b/Thermodynamics_for_Engineers/screenshots/chap11_2.png
new file mode 100755
index 00000000..56f5c0be
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap11_2.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap11_3.png b/Thermodynamics_for_Engineers/screenshots/chap11_3.png
new file mode 100755
index 00000000..56f5c0be
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap11_3.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap11_4.png b/Thermodynamics_for_Engineers/screenshots/chap11_4.png
new file mode 100755
index 00000000..56f5c0be
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap11_4.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap12.png b/Thermodynamics_for_Engineers/screenshots/chap12.png
new file mode 100755
index 00000000..9da37ac3
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap12.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap12_1.png b/Thermodynamics_for_Engineers/screenshots/chap12_1.png
new file mode 100755
index 00000000..9da37ac3
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap12_1.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap12_2.png b/Thermodynamics_for_Engineers/screenshots/chap12_2.png
new file mode 100755
index 00000000..9da37ac3
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap12_2.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap12_3.png b/Thermodynamics_for_Engineers/screenshots/chap12_3.png
new file mode 100755
index 00000000..9da37ac3
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap12_3.png
Binary files differ
diff --git a/Thermodynamics_for_Engineers/screenshots/chap12_4.png b/Thermodynamics_for_Engineers/screenshots/chap12_4.png
new file mode 100755
index 00000000..9da37ac3
--- /dev/null
+++ b/Thermodynamics_for_Engineers/screenshots/chap12_4.png
Binary files differ
diff --git a/_Power_Electronics/Chapter10.ipynb b/_Power_Electronics/Chapter10.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/_Power_Electronics/Chapter10.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter10_1.ipynb b/_Power_Electronics/Chapter10_1.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/_Power_Electronics/Chapter10_1.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter10_2.ipynb b/_Power_Electronics/Chapter10_2.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/_Power_Electronics/Chapter10_2.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter10_3.ipynb b/_Power_Electronics/Chapter10_3.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/_Power_Electronics/Chapter10_3.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter10_4.ipynb b/_Power_Electronics/Chapter10_4.ipynb
new file mode 100755
index 00000000..cbc3cb90
--- /dev/null
+++ b/_Power_Electronics/Chapter10_4.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10 : Cycloconverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.2, Page No 594"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=10.0\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/math.sqrt(2))*math.sqrt((1/math.pi)*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2))\n",
+ "I_or=V_or/R \n",
+ "I_s=I_or\n",
+ "pf=(I_or**2*R)/(V_s*I_s) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p current=%.2f A\" %I_or)\n",
+ "print(\"rms value of o/p current for each convertor=%.2f A\" %(I_or/math.sqrt(2)))\n",
+ "print(\"rms value of o/p current for each thyristor=%.3f A\" %(I_or/2))\n",
+ "print(\"i/p pf=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p current=22.67 A\n",
+ "rms value of o/p current for each convertor=16.03 A\n",
+ "rms value of o/p current for each thyristor=11.333 A\n",
+ "i/p pf=0.9855\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4, Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=3\n",
+ "V_or=r*(V_ph*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=155.424 V\n",
+ "rms o/p current=62.17 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=7730.11 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_ph=V_s/2\n",
+ "V_l=V_ph*math.sqrt(3)\n",
+ "a=160.0\n",
+ "\n",
+ "#Calculations\n",
+ "r=math.cos(math.radians(180-a))\n",
+ "m=6\n",
+ "V_or=r*(V_l*(m/math.pi)*math.sin(math.pi/m)) \n",
+ "R=2\n",
+ "X_L=1.5\n",
+ "th=math.degrees(math.atan(X_L/R))\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_or/Z \n",
+ "P=I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms o/p current=%.2f A\" %I_or)\n",
+ "print(\"phase angle of o/p current=%.2f deg\" %-th)\n",
+ "print(\"o/p power=%.2f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms o/p voltage=310.85 V\n",
+ "rms o/p current=124.34 A\n",
+ "phase angle of o/p current=-36.87 deg\n",
+ "o/p power=30920.44 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7, Page No 605"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=400.0\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "m=6\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.0012\n",
+ "I=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or1=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx1=V_or1-3*w*L*I/math.pi\n",
+ "V_rms1=V_omx1/math.sqrt(2) \n",
+ "a2=30.0\n",
+ "V_or2=(V_ml*(m/math.pi)*math.sin(math.pi/m))*math.cos(math.radians(a))\n",
+ "V_omx2=V_or2-3*w*L*I/math.pi\n",
+ "V_rms2=V_omx2/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=0deg\")\n",
+ "a1=0\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)\n",
+ "print(\"for firing angle=30deg\")\n",
+ "print(\"rms value of load voltage=%.2f V\" %V_rms2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=0deg\n",
+ "rms value of load voltage=-369.12 V\n",
+ "for firing angle=30deg\n",
+ "rms value of load voltage=-369.12 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter11.ipynb b/_Power_Electronics/Chapter11.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/_Power_Electronics/Chapter11.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter11_1.ipynb b/_Power_Electronics/Chapter11_1.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/_Power_Electronics/Chapter11_1.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter11_2.ipynb b/_Power_Electronics/Chapter11_2.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/_Power_Electronics/Chapter11_2.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter11_3.ipynb b/_Power_Electronics/Chapter11_3.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/_Power_Electronics/Chapter11_3.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter11_4.ipynb b/_Power_Electronics/Chapter11_4.ipynb
new file mode 100755
index 00000000..d2317d28
--- /dev/null
+++ b/_Power_Electronics/Chapter11_4.ipynb
@@ -0,0 +1,299 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11 : Some Applications"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page No 622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=11000.0\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "I_d=300\n",
+ "R_d=1\n",
+ "g=20 #g=gamma\n",
+ "a=math.degrees(math.acos(math.cos(math.radians(g))+math.pi/(3*V_ml)*I_d*R_d)) \n",
+ "L_s=.01\n",
+ "V_d=(3/math.pi)*((V_ml*math.cos(math.radians(a)))-w*L_s*I_d) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"rectifier o/p voltage=%.1f V\" %V_d)\n",
+ "print(\"dc link voltage=%.3f V\" %(2*V_d/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=16.283 deg\n",
+ "rectifier o/p voltage=13359.3 V\n",
+ "dc link voltage=26.719 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_d=(200.0+200)*10**3\n",
+ "P=1000.0*10**6\n",
+ "\n",
+ "#Calculations\n",
+ "I_d=P/V_d\n",
+ " #each thristor conducts for 120deg for a periodicity of 360deg\n",
+ "a=0\n",
+ "V_d=200.0*10**3\n",
+ "V_ml=V_d*math.pi/(3*math.cos(math.radians(a)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms current rating of thyristor=%.2f A\" %(I_d*math.sqrt(120/360)))\n",
+ "print(\"peak reverse voltage across each thyristor=%.2f kV\" %(V_ml/2/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms current rating of thyristor=0.00 A\n",
+ "peak reverse voltage across each thyristor=104.72 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.3 Page No 627"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_m=230.0\n",
+ "V_s=230/math.sqrt(2)\n",
+ "pf=0.8\n",
+ "P=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_m=P/(V_s*pf)\n",
+ "I_Tr=I_m/math.sqrt(2)\n",
+ "I_TA=2*I_m/math.pi\n",
+ "fos=2 #factor of safety\n",
+ "PIV=V_m*math.sqrt(2)\n",
+ "I_Tr=I_m/(2)\n",
+ "I_TA=I_m/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of thyristor current=%.2f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of thyristor=%.2f V\" %PIV)\n",
+ "print(\"rms value of diode current=%.3f A\" %(fos*I_Tr))\n",
+ "print(\"avg value of diode current=%.3f A\" %(fos*I_TA))\n",
+ "print(\"voltage rating of diode=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of thyristor current=15.37 A\n",
+ "avg value of thyristor current=9.786 A\n",
+ "voltage rating of thyristor=325.27 V\n",
+ "rms value of diode current=15.372 A\n",
+ "avg value of diode current=9.786 A\n",
+ "voltage rating of diode=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page No 629"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=200.0\n",
+ "I=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "R_L=V/I \n",
+ "I_h=.005 #holding current\n",
+ "R2=V/I_h \n",
+ "t_c=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C=t_c*fos/(R_L*math.log(2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of load resistance=%.0f ohm\" %R_L)\n",
+ "print(\"value of R2=%.0f kilo-ohm\" %(R2/1000))\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of load resistance=20 ohm\n",
+ "value of R2=40 kilo-ohm\n",
+ "value of C=2.885 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.5 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "u_r=10\n",
+ "f=10000.0 #Hz\n",
+ "p=4.0*10**-8 #ohm-m\n",
+ "\n",
+ "#Calculations\n",
+ "dl=(1/(2*math.pi))*math.sqrt(p*10**7/(u_r*f)) \n",
+ "l=0.12 #length of cylinder\n",
+ "t=20.0 #no of turns\n",
+ "I=100.0\n",
+ "H=t*I/l\n",
+ "P_s=2*math.pi*H**2*math.sqrt(u_r*f*p*10**-7) \n",
+ "d=.02 #diameter\n",
+ "P_v=4*H**2*p/(d*dl) \n",
+ "\n",
+ "#Results\n",
+ "print(\"depth of heat of penetration=%.5f mm\" %(dl*1000))\n",
+ "print(\"heat generated per unit cylinder surface area=%.3f W/m**2\" %P_s)\n",
+ "print(\"heat generated per unit cylinder volume=%.0f W/m**3\" %P_v)\n",
+ " #answer of P_v varies as given in book as value of d is not taken as in formulae. "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "depth of heat of penetration=0.31831 mm\n",
+ "heat generated per unit cylinder surface area=34906.585 W/m**2\n",
+ "heat generated per unit cylinder volume=6981317 W/m**3\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=3000.0\n",
+ "\n",
+ "#Calculations\n",
+ "t_qmin=30.0*10**-6\n",
+ "f_r=f/(1-2*t_qmin*f)\n",
+ "R=0.06\n",
+ "L=20.0*10**-6\n",
+ "C=1/(L*((2*math.pi*f_r)**2+(R/(2*L))**2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"required capacitor size=%.4f F\" %(C*10**6))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "required capacitor size=94.2215 F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter12.ipynb b/_Power_Electronics/Chapter12.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/_Power_Electronics/Chapter12.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter12_1.ipynb b/_Power_Electronics/Chapter12_1.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/_Power_Electronics/Chapter12_1.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter12_2.ipynb b/_Power_Electronics/Chapter12_2.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/_Power_Electronics/Chapter12_2.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter12_3.ipynb b/_Power_Electronics/Chapter12_3.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/_Power_Electronics/Chapter12_3.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter12_4.ipynb b/_Power_Electronics/Chapter12_4.ipynb
new file mode 100755
index 00000000..f8605d69
--- /dev/null
+++ b/_Power_Electronics/Chapter12_4.ipynb
@@ -0,0 +1,1997 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 12 : Electic Drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1, Page No 658"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=15.0 #Nm\n",
+ "K_m=0.5 #V-s/rad\n",
+ "I_a=T_e/K_m\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "E_a=K_m*w_m\n",
+ "r_a=0.7\n",
+ "V_t=E_a+I_a*r_a\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(2*math.pi*V_t/V_m-1))\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "I_Tr=I_a*math.sqrt((180-a)/360) \n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "I_fdr=I_a*math.sqrt((180+a)/360) \n",
+ "print(\"rms value of freewheeling diode current=%.3f A\" %I_fdr)\n",
+ "pf=V_t*I_a/(V_s*I_Tr) \n",
+ "\n",
+ "#Results \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=65.349 deg\n",
+ "rms value of thyristor current=16.930 A\n",
+ "rms value of freewheeling diode current=24.766 A\n",
+ "input power factor=0.5652\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.2, Page No 660"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 Page No 661"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=250\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "k=0.03 #Nm/A**2\n",
+ "n_m=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r=.2 #r_a+r_s\n",
+ "V_t=V_m/math.pi*(1+math.cos(math.radians(a)))\n",
+ "I_a=V_t/(k*w_m+r) \n",
+ "print(\"motor armature current=%.2f A\" %I_a)\n",
+ "T_e=k*I_a**2 \n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n",
+ "I_sr=I_a*math.sqrt((180-a)/180)\n",
+ "pf=(V_t*I_a)/(V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor armature current=57.82 A\n",
+ "motor torque=100.285 Nm\n",
+ "input power factor=0.92\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.4, Page No 663"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(I_f*K_a) \n",
+ "print(\"rated armature current=%.2f A\" %I_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.2\n",
+ "V_t=K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "E_a=V_t\n",
+ "w_mo=E_a/(K_a*I_f)\n",
+ "N=60*w_mo/(2*math.pi)\n",
+ "reg=((N-n_m)/n_m)*100 \n",
+ "print(\"speed regulation at full load=%.2f\" %reg)\n",
+ "I_ar=I_a\n",
+ "pf=(V_t*I_a)/(V_s*I_ar) \n",
+ "print(\"input power factor of armature convertor=%.4f\" %pf)\n",
+ "I_fr=I_f\n",
+ "I_sr=math.sqrt(I_fr**2+I_ar**2)\n",
+ "VA=I_sr*V_s\n",
+ "P=V_t*I_a+V_f*I_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor of drive=%.4f\" %(P/VA))\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rated armature current=59.01 A\n",
+ "firing angle delay=57.63 deg\n",
+ "speed regulation at full load=6.52\n",
+ "input power factor of armature convertor=0.4821\n",
+ "input power factor of drive=0.5093\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_f=2*V_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos(V_t*math.pi/(2*V_m))) \n",
+ "print(\"delay angle of field converter=%.0f deg\" %a1)\n",
+ "r_f=200.0\n",
+ "I_f=V_f/r_f\n",
+ "T_e=85.0\n",
+ "K_a=0.8\n",
+ "I_a=T_e/(I_f*K_a)\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "r_a=0.1\n",
+ "I_a=50.0\n",
+ "V_t=-K_a*I_f*w_m+I_a*r_a\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(2*V_m)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay of armature converter=%.3f deg\" %a)\n",
+ "print(\"power fed back to ac supply=%.0f W\" %(-V_t*I_a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle of field converter=58 deg\n",
+ "firing angle delay of armature converter=119.260 deg\n",
+ "power fed back to ac supply=8801 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=10.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "T=5.0\n",
+ "I_a=T/K_m\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30.0\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n",
+ "a=45\n",
+ "n_m=1000\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=(V_t-K_m*w_m)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"torque developed=%.3f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=1254.22 rpm\n",
+ "torque developed=8.586 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7, Page No 666"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=220.0\n",
+ "n_m=1000.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=60.0\n",
+ "r_a=.1\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=230\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for 600rpm speed\")\n",
+ "n_m=600.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m))) \n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"for -500rpm speed\")\n",
+ "n_m=-500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "a=math.degrees(math.acos((K_m*w_m+I_a*r_a)*math.pi/(2*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_a=I_a/2\n",
+ "a=150\n",
+ "V_t=2*V_m*math.cos(math.radians(a))/math.pi\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.3f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 600rpm speed\n",
+ "firing angle=49.530 deg\n",
+ "for -500rpm speed\n",
+ "firing angle=119.19 deg\n",
+ "motor speed=-852.011 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.5\n",
+ "T_e=50.0\n",
+ "I_a=T_e/K_m\n",
+ "r_a=0.9\n",
+ "a=45.0\n",
+ "V_s=415.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "w_m=((3*V_ml*(1+math.cos(math.radians(a)))/(2*math.pi))-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=2854.42 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.9 Page No 672"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_t=600\n",
+ "n_m=1500.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=80.0\n",
+ "r_a=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "K_m=(V_t-I_a*r_a)/(w_m)\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "print(\"for firing angle=45deg and speed=1200rpm\")\n",
+ "a=45.0\n",
+ "n_m=1200.0\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(2/3) \n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(1/3)))\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_a*(1/3))\n",
+ "pf=(3/(2*math.pi)*(1+math.cos(math.radians(a)))) \n",
+ "print(\"input power factor=%.3f\" %pf)\n",
+ "\n",
+ "print(\"for firing angle=90deg and speed=700rpm\")\n",
+ "a=90\n",
+ "n_m=700\n",
+ "w_m=2*math.pi*n_m/60\n",
+ "I_a=(3*V_m*(1+math.cos(math.radians(a)))/(2*math.pi)-K_m*w_m)/r_a\n",
+ "I_sr=I_a*math.sqrt(90/180) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of source current=%.3f A\" %I_sr)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_a*math.sqrt(90.0/360)))\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_a*(1/3))\n",
+ "pf=(math.sqrt(6)/(2*math.pi)*(1+math.cos(math.radians(a))))*math.sqrt(180/(180-a)) \n",
+ "print(\"input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=45deg and speed=1200rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=0.000 A\n",
+ "\n",
+ "input power factor=0.815\n",
+ "for firing angle=90deg and speed=700rpm\n",
+ "rms value of source current=0.000 A\n",
+ "rms value of thyristor current=195.558 A\n",
+ "\n",
+ "input power factor=0.5513\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 Page No 676"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=30\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "I_a=21.0\n",
+ "r_a=.1\n",
+ "V_d=2.0\n",
+ "K_m=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"speed of motor=%.1f rpm\" %N)\n",
+ "\n",
+ "N=2000\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=210\n",
+ "V_t=K_m*w_m+I_a*r_a+V_d\n",
+ "a=math.degrees(math.acos(V_t*math.pi/(3*V_m)))\n",
+ "print(\"firing angle=%.2f deg\" %a)\n",
+ "I_sr=I_a*math.sqrt(2.0/3.0)\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"supply power factor=%.3f\" %pf)\n",
+ "\n",
+ "I_a=21\n",
+ "w_m=(V_t-I_a*r_a-V_d)/K_m\n",
+ "n=w_m*60/(2*math.pi)\n",
+ "reg=(n-N)/N*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"speed regulation(percent)=%.2f\" %reg)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "speed of motor=2767.6 rpm\n",
+ "firing angle=48.48 deg\n",
+ "supply power factor=0.633\n",
+ "speed regulation(percent)=5.64\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.11, Page No 677"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=230.0\n",
+ "V_l=V_t*math.pi/(3*math.sqrt(2))\n",
+ "V_ph=V_l/math.sqrt(3)\n",
+ "V_in=400 #per phase voltage input\n",
+ "\n",
+ "#Calculations\n",
+ "N1=1500.0\n",
+ "I_a1=20.0\n",
+ "r_a1=.6\n",
+ "E_a1=V_t-I_a1*r_a1\n",
+ "n1=1000.0\n",
+ "E_a2=E_a1/1500.0*1000.0\n",
+ "V_t1=E_a1+I_a1*r_a1\n",
+ "a1=math.degrees(math.acos(V_t1*math.pi/(3*math.sqrt(2.0)*V_l)))\n",
+ "I_a2=.5*I_a1\n",
+ "n2=-900.0\n",
+ "V_t2=n2*E_a2/N1+I_a2*r_a1\n",
+ "a2=math.degrees(math.acos(V_t2*math.pi/(3*math.sqrt(2)*V_l))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer phase turns ratio=%.3f\" %(V_in/V_ph))\n",
+ "print(\"for motor running at 1000rpm at rated torque\")\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"for motor running at -900rpm at half of rated torque\")\n",
+ "print(\"firing angle delay=%.3f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer phase turns ratio=4.068\n",
+ "for motor running at 1000rpm at rated torque\n",
+ "firing angle delay=0.00 deg\n",
+ "for motor running at -900rpm at half of rated torque\n",
+ "firing angle delay=110.674 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.12, Page No 678"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=400\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_f=3*V_ml/math.pi\n",
+ "R_f=300.0\n",
+ "I_f=V_f/R_f\n",
+ "T_e=60.0\n",
+ "k=1.1\n",
+ "\n",
+ "#Calculations\n",
+ "I_a=T_e/(k*I_f)\n",
+ "N1=1000.0\n",
+ "w_m1=2*math.pi*N1/60\n",
+ "r_a1=.3\n",
+ "V_t1=k*I_f*w_m1+I_a*r_a1\n",
+ "a1=math.degrees(math.acos(V_f*math.pi/(3*V_ml)))\n",
+ "N2=3000\n",
+ "w_m2=2*math.pi*N/60\n",
+ "a2=0\n",
+ "V_t2=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "I_f2=(V_t2-I_a*r_a)/(w_m2*k)\n",
+ "V_f2=I_f2*R_f\n",
+ "a2=math.degrees(math.acos(V_f2*math.pi/(3*V_ml)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle=%.3f deg\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=48.477 deg\n",
+ "firing angle=48.477 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.13, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ " #after calculating\n",
+ " #t=w_m/6000-math.pi/360\n",
+ "\n",
+ "N=1000.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "t=w_m/6000-math.pi/360 \n",
+ "\n",
+ "#Results\n",
+ "print(\"time reqd=%.2f s\" %t)\n",
+ " #printing mistake in the answer in book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time reqd=0.01 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.14, Page No 679"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=1.0 #supposition\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_s1=2*math.sqrt(2)/math.pi*I_a*math.sin(math.radians(a))\n",
+ "I_s3=2*math.sqrt(2)/(3*math.pi)*I_a*math.sin(math.radians(3*a))\n",
+ "I_s5=2*math.sqrt(2)/(5*math.pi)*I_a*math.sin(math.radians(5*a))\n",
+ "per3=I_s3/I_s1*100 \n",
+ "print(\"percent of 3rd harmonic current in fundamental=%.2f\" %per3)\n",
+ "per5=I_s5/I_s1*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"percent of 5th harmonic current in fundamental=%.2f\" %per5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percent of 3rd harmonic current in fundamental=0.00\n",
+ "percent of 5th harmonic current in fundamental=-20.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.15, Page No 680"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=60.0\n",
+ "I_TA=I_a/3 \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"avg thyristor current=%.0f A\" %I_TA)\n",
+ "I_Tr=I_a/math.sqrt(3) \n",
+ "print(\"rms thyristor current=%.3f A\" %I_Tr)\n",
+ "V_s=400\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_sr=I_a*math.sqrt(2.0/3)\n",
+ "a=150\n",
+ "V_t=3*V_m*math.cos(math.radians(a))/math.pi\n",
+ "pf=V_t*I_a/(math.sqrt(3)*V_s*I_sr) \n",
+ "print(\"power factor of ac source=%.3f\" %pf)\n",
+ "\n",
+ "r_a=0.5\n",
+ "K_m=2.4\n",
+ "w_m=(V_t-I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Speed of motor=%.2f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg thyristor current=20 A\n",
+ "rms thyristor current=34.641 A\n",
+ "power factor of ac source=-0.827\n",
+ "Speed of motor=-1980.76 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.16, Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=300.0\n",
+ "V_s=600.0\n",
+ "a=0.6\n",
+ "V_t=a*V_s\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations\n",
+ "print(\"input power from source=%.0f kW\" %(P/1000))\n",
+ "R_eq=V_s/(a*I_a) \n",
+ "print(\"equivalent input resistance=%.3f ohm\" %R_eq)\n",
+ "k=.004\n",
+ "R=.04+.06\n",
+ "w_m=(a*V_s-I_a*R)/(k*I_a)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ "T_e=k*I_a**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.0f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "input power from source=108 kW\n",
+ "equivalent input resistance=3.333 ohm\n",
+ "motor speed=2626.1 rpm\n",
+ "motor torque=360 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.17, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=10.0\n",
+ "T_off=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_s=230.0\n",
+ "V_t=a*V_s\n",
+ "r_a=3\n",
+ "K_m=.5\n",
+ "N=1500\n",
+ "w_m=2*math.pi*N/60\n",
+ "I_a=(V_t-K_m*w_m)/r_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor load current=%.3f A\" %I_a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor load current=4.487 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.18, Page No 686"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "w_m=0 \n",
+ "print(\"lower limit of speed control=%.0f rpm\" %w_m)\n",
+ "I_a=25.0\n",
+ "r_a=.2\n",
+ "V_s=220\n",
+ "K_m=0.08\n",
+ "\n",
+ "#Calculations\n",
+ "a=(K_m*w_m+I_a*r_a)/V_s \n",
+ "print(\"lower limit of duty cycle=%.3f\" %a)\n",
+ "a=1 \n",
+ "print(\"upper limit of duty cycle=%.0f\" %a)\n",
+ "w_m=(a*V_s-I_a*r_a)/K_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"upper limit of speed control=%.1f rpm\" %w_m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lower limit of speed control=0 rpm\n",
+ "lower limit of duty cycle=0.023\n",
+ "upper limit of duty cycle=1\n",
+ "upper limit of speed control=2687.5 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.21, Page No 691"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.6\n",
+ "V_s=400.0\n",
+ "V_t=(1-a)*V_s\n",
+ "I_a=300.0\n",
+ "P=V_t*I_a \n",
+ "\n",
+ "#Calculations \n",
+ "print(\"power returned=%.0f kW\" %(P/1000))\n",
+ "r_a=.2\n",
+ "K_m=1.2\n",
+ "R_eq=(1-a)*V_s/I_a+r_a \n",
+ "print(\"equivalent load resistance=%.4f ohm\" %R_eq)\n",
+ "w_mn=I_a*r_a/K_m\n",
+ "N=w_mn*60/(2*math.pi) \n",
+ "print(\"min braking speed=%.2f rpm\" %N)\n",
+ "w_mx=(V_s+I_a*r_a)/K_m\n",
+ "N=w_mx*60/(2*math.pi) \n",
+ "print(\"max braking speed=%.1f rpm\" %N)\n",
+ "w_m=(V_t+I_a*r_a)/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"max braking speed=%.1f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power returned=48 kW\n",
+ "equivalent load resistance=0.7333 ohm\n",
+ "min braking speed=477.46 rpm\n",
+ "max braking speed=3660.6 rpm\n",
+ "max braking speed=1750.7 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.22, Page No 699"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "N=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when speed=1455rpm\")\n",
+ "n=1455.0\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)\n",
+ "print(\"when speed=1350rpm\")\n",
+ "n=1350\n",
+ "s1=(N-n)/N\n",
+ "r=math.sqrt(1/3)*(2/3)/(math.sqrt(s1)*(1-s1)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"I_2mx/I_2r=%.3f\" %r)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when speed=1455rpm\n",
+ "I_2mx/I_2r=0.000\n",
+ "when speed=1350rpm\n",
+ "I_2mx/I_2r=0.000\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.24, Page No 705"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=400.0\n",
+ "r1=0.6\n",
+ "r2=0.4\n",
+ "s=1.0\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"at starting in normal conditions\")\n",
+ "I_n=V1/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"current=%.2f A\" %I_n)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s) \n",
+ "print(\"\\nTorque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.0f A\" %I_d)\n",
+ "pf=(r1+r2)/math.sqrt((r1+r2/s)**2+((x1+x2)/2)**2) \n",
+ "print(\"pf=%.2f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_ed=(3/w_s)*I_d**2*(r2/s) \n",
+ "print(\"Torque developed=%.3f Nm\" %T_ed)\n",
+ "print(\"at max torque conditions\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2))**2)\n",
+ "I_n=V1/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"current=%.3f A\" %I_n)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+(x1+x2)**2) \n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_n**2*(r2/s_mn) \n",
+ "print(\"Torque developed=%.2f Nm\" %T_en)\n",
+ "print(\"motor is operated with DOL starting\")\n",
+ "s_mn=r2/math.sqrt((r1)**2+((x1+x2)/2)**2)\n",
+ "I_d=V1/2/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"current=%.3f A\" %I_d)\n",
+ "pf=(r1+r2/s_mn)/math.sqrt((r1+r2/s_mn)**2+((x1+x2)/2)**2) \n",
+ "print(\"\\npf=%.3f\" %pf)\n",
+ "f1=25\n",
+ "w_s=4*math.pi*f1/4\n",
+ "T_en=(3/w_s)*I_d**2*(r2/s_mn) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"Torque developed=%.3f Nm\" %T_en)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at starting in normal conditions\n",
+ "current=119.31 A\n",
+ "pf=0.2983\n",
+ "\n",
+ "Torque developed=108.75 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=106 A\n",
+ "pf=0.53\n",
+ "Torque developed=171.673 Nm\n",
+ "at max torque conditions\n",
+ "current=79.829 A\n",
+ "pf=0.7695\n",
+ "Torque developed=396.26 Nm\n",
+ "motor is operated with DOL starting\n",
+ "current=71.199 A\n",
+ "\n",
+ "pf=0.822\n",
+ "Torque developed=330.883 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.25, Page No 709"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x1=1.0\n",
+ "X_m=50.0\n",
+ "X_e=x1*X_m/(x1+X_m)\n",
+ "V=231.0\n",
+ "V_e=V*X_m/(x1+X_m)\n",
+ "x2=1.0\n",
+ "r2=.4\n",
+ "r1=0\n",
+ "\n",
+ "#Calculations\n",
+ "s_m=r2/(x2+X_e) \n",
+ "print(\"slip at max torque=%.2f\" %s_m)\n",
+ "s_mT=r2/(x2+X_m) \n",
+ "print(\"slip at max torque=%.5f\" %s_mT)\n",
+ "f1=50.0\n",
+ "w_s=4*math.pi*f1/4\n",
+ "print(\"for constant voltage input\")\n",
+ "T_est=(3/w_s)*(V_e/math.sqrt(r2**2+(x2+X_e)**2))**2*(r2) \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*V_e**2/(2*(x2+X_e)) \n",
+ "print(\"maximum torque developed=%.2f Nm\" %T_em)\n",
+ "print(\"for constant current input\")\n",
+ "I1=28\n",
+ "T_est=(3/w_s)*(I1*X_m)**2/(r2**2+(x2+X_m)**2)*r2 \n",
+ "print(\"starting torque=%.3f Nm\" %T_est)\n",
+ "T_em=(3/w_s)*(I1*X_m)**2/(2*(x2+X_m)) \n",
+ "print(\"maximum torque developed=%.3f Nm\" %T_em)\n",
+ "s=s_mT\n",
+ "i=1\n",
+ "I_m=I1*(r2/s+i*x2)/(r2/s+i*(x2+X_m))\n",
+ "I_m=math.fabs(I_m)\n",
+ "V1=math.sqrt(3)*I_m*X_m \n",
+ "\n",
+ "#Results\n",
+ "print(\"supply voltage reqd=%.1f V\" %V1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "slip at max torque=0.20\n",
+ "slip at max torque=0.00784\n",
+ "for constant voltage input\n",
+ "starting torque=95.988 Nm\n",
+ "maximum torque developed=247.31 Nm\n",
+ "for constant current input\n",
+ "starting torque=5.756 Nm\n",
+ "maximum torque developed=366.993 Nm\n",
+ "supply voltage reqd=1236.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.27, Page No 718"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "T_e=450.0\n",
+ "N=1440.0\n",
+ "n=1000.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "n1=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_s=2*math.pi*n1/60\n",
+ "w_m=2*math.pi*n/60\n",
+ "a=.8\n",
+ "I_d=T_L*w_s/(2.339*a*V1)\n",
+ "k=0\n",
+ "R=(1-w_m/w_s)*(2.339*a*V1)/(I_d*(1-k)) \n",
+ "print(\"value of chopper resistance=%.4f ohm\" %R)\n",
+ "n=1320.0\n",
+ "T_L=T_e*(n/N)**2\n",
+ "I_d=T_L*w_s/(2.339*a*V1) \n",
+ "print(\"Inductor current=%.3f A\" %I_d)\n",
+ "w_m=2*math.pi*n/60\n",
+ "k=1-((1-w_m/w_s)*(2.339*a*V1)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.4f\" %k)\n",
+ "s=(n1-n)/n1\n",
+ "V_d=2.339*s*a*V1 \n",
+ "print(\"Rectifed o/p voltage=%.3f V\" %V_d)\n",
+ "P=V_d*I_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "Pr=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "r1=0.015\n",
+ "Ps=3*I1**2*r1\n",
+ "Po=T_L*w_m\n",
+ "Pi=Po+Ps+Pr+P\n",
+ "eff=Po/Pi*100 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Efficiency(in percent)=%.2f\" %eff)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of chopper resistance=2.0132 ohm\n",
+ "Inductor current=130.902 A\n",
+ "value of duty cycle=0.7934\n",
+ "Rectifed o/p voltage=54.449 V\n",
+ "Efficiency(in percent)=88.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.28, Page No 720"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ph=V/math.sqrt(3)\n",
+ "N_s=1000.0\n",
+ "N=800.0\n",
+ "a=.7\n",
+ "I_d=110\n",
+ "R=2.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=1-((1-N/N_s)*(2.339*a*V_ph)/(I_d*R)) \n",
+ "print(\"value of duty cycle=%.3f\" %k)\n",
+ "P=I_d**2*R*(1-k)\n",
+ "I1=a*I_d*math.sqrt(2/3)\n",
+ "r1=0.1\n",
+ "r2=0.08\n",
+ "Pr=3*I1**2*(r1+r2)\n",
+ "P_o=20000\n",
+ "P_i=P_o+Pr+P\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"Efficiency=%.2f\" %eff)\n",
+ "I11=math.sqrt(6)/math.pi*a*I_d\n",
+ "th=43\n",
+ "P_ip=math.sqrt(3)*V*I11*math.cos(math.radians(th))\n",
+ "pf=P_ip/(math.sqrt(3)*V*I11) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Input power factor=%.4f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of duty cycle=0.656\n",
+ "Efficiency=70.62\n",
+ "Input power factor=0.7314\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.29, Page No 724"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=420.0\n",
+ "V1=V/math.sqrt(3)\n",
+ "N=1000.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "N_s=1500.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "a=0.8\n",
+ "V_d=2.339*a*s*V1 \n",
+ "print(\"rectified voltage=%.2f V\" %V_d)\n",
+ "T=450.0\n",
+ "N1=1200.0\n",
+ "T_L=T*(N/N1)**2\n",
+ "f1=50\n",
+ "w_s=4*math.pi*f1/4\n",
+ "I_d=w_s*T_L/(2.339*a*V1) \n",
+ "print(\"inductor current=%.2f A\" %I_d)\n",
+ "a_T=-.4\n",
+ "a1=math.degrees(math.acos(s*a/a_T))\n",
+ "print(\"delay angle of inverter=%.2f deg\" %a1)\n",
+ "\n",
+ "P_s=V_d*I_d\n",
+ "P_o=T_L*w_m\n",
+ "R_d=0.01\n",
+ "P_i=I_d**2*R_d\n",
+ "I2=math.sqrt(2/3)*I_d\n",
+ "r2=0.02\n",
+ "r1=0.015\n",
+ "P_rol=3*I2**2*r2\n",
+ "I1=a*I2\n",
+ "P_sol=3*I1**2*r1\n",
+ "P_i=P_o+P_rol+P_sol+P_i\n",
+ "eff=P_o/P_i*100 \n",
+ "print(\"\\nefficiency=%.2f\" %eff)\n",
+ "w_m=w_s*(1+(-a_T/a)*math.cos(math.radians(a1))-w_s*R_d*T_L/(2.339*a*V1)**2)\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results \n",
+ "print(\"motor speed=%.1f rpm\" %N)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectified voltage=151.25 V\n",
+ "inductor current=108.18 A\n",
+ "delay angle of inverter=131.81 deg\n",
+ "\n",
+ "efficiency=99.64\n",
+ "motor speed=996.4 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.30, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=0.7\n",
+ "V_dt=1.5\n",
+ "V_d=3*math.sqrt(6)*s*E2/math.pi-2*V_dd\n",
+ "V1=415.0\n",
+ "a=math.degrees(math.acos((3*math.sqrt(2)*E2/math.pi)**-1*(-V_d+2*V_dt)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=70.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.31, Page No 726"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V/math.sqrt(3)\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V_dd=.7\n",
+ "V_dt=1.5\n",
+ "a=0\n",
+ "u=18 #overlap angle in case of rectifier\n",
+ "V_d=3*math.sqrt(6)*s*E2*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dd\n",
+ "V1=415\n",
+ "V_ml=math.sqrt(2)*V1\n",
+ "u=4 #overlap anglein the inverter\n",
+ " #V_dc=-(3*V_ml*(math.cos(math.radians(a))+math.cos(math.radians(a+u)))/(2*math.pi)-2*V_dt)\n",
+ " #V_dc=V_d\n",
+ " #after solving % (1+math.cos(math.radians(u)))*math.cos(math.radians(a))-math.sin(math.radians(u))*math.sin(math.radians(a))=-.6425\n",
+ "a=math.degrees(math.acos(-.6425/(math.sqrt((1+math.cos(math.radians(u)))**2+math.sin(math.radians(u))**2))))-math.degrees(math.asin(math.sin(math.radians(a))/(1+math.cos(math.radians(u)))))\n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle advance=%.2f deg\" %(180-a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle advance=71.25 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.32, Page No 727"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=700.0\n",
+ "E2=V\n",
+ "N_s=1500.0\n",
+ "N=1200.0\n",
+ "\n",
+ "#Calculations\n",
+ "s=(N_s-N)/N_s\n",
+ "V1=415.0\n",
+ "a_T=s*E2/V1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage ratio of the transformer=%.2f\" %a_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage ratio of the transformer=0.34\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.33, Page No 733"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=6.0\n",
+ "N_s=600.0\n",
+ "f1=P*N_s/120.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=f1*V/f \n",
+ "print(\"supply freq=%.0f Hz\" %V_t)\n",
+ "T=340.0\n",
+ "N=1000.0\n",
+ "T_L=T*(N_s/N)**2\n",
+ "w_s=2*math.pi*N_s/60\n",
+ "P=T_L*w_s\n",
+ "I_a=P/(math.sqrt(3)*V_t) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "Z_s=2\n",
+ "X_s=f1/f*math.fabs(Z_s)\n",
+ "V_t=V_t/math.sqrt(3)\n",
+ "Ef=math.sqrt(V_t**2+(I_a*X_s)**2)\n",
+ "print(\"excitation voltage=%.2f V\" %(math.sqrt(3)*Ef))\n",
+ "dl=math.degrees(math.atan(I_a*X_s/V_t))\n",
+ "print(\"load angle=%.2f deg\" %dl)\n",
+ "T_em=(3/w_s)*(Ef*V_t/X_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pull out torque=%.2f Nm\" %T_em)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "supply freq=240 Hz\n",
+ "armature current=18.50 A\n",
+ "excitation voltage=243.06 V\n",
+ "load angle=9.10 deg\n",
+ "pull out torque=773.69 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.34, Page No 736"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=4.0\n",
+ "f=50.0\n",
+ "w_s=4*math.pi*f/P\n",
+ "X_d=8.0\n",
+ "X_q=2.0\n",
+ "T_e=80.0\n",
+ "V=400.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=V/math.sqrt(3)\n",
+ "dl=(1/2)*math.degrees(math.asin(T_e*w_s/((3/2)*(V_t)**2*(1/X_q-1/X_d)))) \n",
+ "print(\"load angle=%.3f deg\" %dl)\n",
+ "I_d=V_t*math.cos(math.radians(dl))/X_d\n",
+ "I_q=V_t*math.sin(math.radians(dl))/X_q\n",
+ "I_a=math.sqrt(I_d**2+I_q**2) \n",
+ "print(\"armature current=%.2f A\" %I_a)\n",
+ "pf=T_e*w_s/(math.sqrt(3)*V*I_a) \n",
+ "\n",
+ "#Results\n",
+ "print(\"input power factor=%.4f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load angle=0.000 deg\n",
+ "armature current=28.87 A\n",
+ "input power factor=0.6283\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.35, Page No 737"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_e=3.0\n",
+ "K_m=1.2\n",
+ "I_a=T_e/K_m\n",
+ "r_a=2.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "E_a=(0.263*math.sqrt(2)*V-I_a*r_a)/(1-55/180)\n",
+ "w_m=E_a/K_m\n",
+ "N=w_m*60/(2*math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor speed=%.2f rpm\" %N)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor speed=640.96 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.36, Page No 738"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1360.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=163.45\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.2578 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.37, Page No 740"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=2100.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ " #after calculations V_t % calculated\n",
+ "V_t=227.66\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=1.94 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.38, Page No 742"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=840.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=75.0\n",
+ "V_t=math.sqrt(2)*V/math.pi*(1+math.cos(math.radians(a)))\n",
+ "r_a=4\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.4f Nm\" %T_e)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=10.5922 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.39, Page No 743"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=1400.0\n",
+ "\n",
+ "#Calculations\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "a1=212\n",
+ "V_t=math.sqrt(2)*V/math.pi*(math.cos(math.radians(a))-math.cos(math.radians(a1)))+E_a*(180+a-a1)/180\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=5.257 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.40, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "K_m=1.0\n",
+ "N=600.0\n",
+ "w_m=2*math.pi*N/60\n",
+ "E_a=K_m*w_m\n",
+ "V=230.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_t=2*math.sqrt(2)*V/math.pi*(math.cos(math.radians(a)))\n",
+ "r_a=3\n",
+ "I_a=(V_t-E_a)/r_a\n",
+ "T_e=K_m*I_a \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"motor torque=%.3f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "motor torque=13.568 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.41, Page No 745"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "r1=.6\n",
+ "r2=.4\n",
+ "s=0.04\n",
+ "x1=1.6\n",
+ "x2=1.6\n",
+ "Z=(r1+r2/s)+(x1+x2)\n",
+ "V=400.0\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "N=1500\n",
+ "w_s=2*math.pi*N/60\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n",
+ "N_r=N*(1-s)\n",
+ "\n",
+ "f=45\n",
+ "N_s1=120*f/4\n",
+ "w_s=2*math.pi*N_s1/60\n",
+ "s1=(N_s1-N_r)/N_s1\n",
+ "Z=(r1+r2/s1)+(x1+x2)*f/50.0\n",
+ "V=360\n",
+ "I1=V/Z \n",
+ "print(\"source current=%.3f A \" %math.degrees(math.atan(I1.imag/I1.real)))\n",
+ "print(\"and with %.1f deg phase\" %math.fabs(I1))\n",
+ "I2=V/Z\n",
+ "T_e=(3/w_s)*abs(I2)**2*r2/s1 \n",
+ "print(\"motor torque=%.2f Nm\" %T_e)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source current=0.000 A \n",
+ "and with 29.0 deg phase\n",
+ "motor torque=160.46 Nm\n",
+ "source current=-0.000 A \n",
+ "and with 142.9 deg phase\n",
+ "motor torque=-2598.45 Nm\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter13.ipynb b/_Power_Electronics/Chapter13.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/_Power_Electronics/Chapter13.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter13_1.ipynb b/_Power_Electronics/Chapter13_1.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/_Power_Electronics/Chapter13_1.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter13_2.ipynb b/_Power_Electronics/Chapter13_2.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/_Power_Electronics/Chapter13_2.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter13_3.ipynb b/_Power_Electronics/Chapter13_3.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/_Power_Electronics/Chapter13_3.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter13_4.ipynb b/_Power_Electronics/Chapter13_4.ipynb
new file mode 100755
index 00000000..62d2a926
--- /dev/null
+++ b/_Power_Electronics/Chapter13_4.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13 : Power Factor Improvement"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.1, Page No 754"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=250.0\n",
+ "R_l=5.0\n",
+ "I_l=20.0\n",
+ "V_l1=math.sqrt(V_s**2-(R_l*I_l)**2)\n",
+ "reg2=(V_s-V_l1)/V_s*100 \n",
+ "pf1=1.0\n",
+ "\n",
+ "#Calculations\n",
+ "P_l1=V_l1*I_l*pf1 #load power\n",
+ "P_r1=V_s*I_l*pf1 #max powwible system rating\n",
+ "utf1=P_l1*100/P_r1 \n",
+ "pf2=0.5\n",
+ " #(.5*V_l)**2+(.866*V_l+R_l*I_l)**2=V_s**2\n",
+ " #after solving\n",
+ "V_l2=158.35 \n",
+ "reg2=(V_s-V_l2)/V_s*100 \n",
+ "P_l2=V_l2*I_l*pf2 #load power\n",
+ "P_r2=V_s*I_l #max powwible system rating\n",
+ "utf2=P_l2*100/P_r2 \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for pf=1\")\n",
+ "print(\"load voltage=%.2f V\" %V_l1)\n",
+ "print(\"voltage regulation=%.2f\" %reg1)\n",
+ "print(\"system utilisation factor=%.3f\" %utf1)\n",
+ "print(\"energy consumed(in units)=%.1f\" %(P_l1/1000))\n",
+ "print(\"for pf=.5\")\n",
+ "print(\"load voltage=%.2f V\" %V_l2)\n",
+ "print(\"voltage regulation=%.2f\" %reg2)\n",
+ "print(\"system utilisation factor=%.3f\" %utf2)\n",
+ "print(\"energy consumed(in units)=%.2f\" %(P_l2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'reg1' is not defined",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-2-ffdbe43fd921>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"for pf=1\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"load voltage=%.2f V\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mV_l1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"voltage regulation=%.2f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mreg1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"system utilisation factor=%.3f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[0mutf1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"energy consumed(in units)=%.1f\"\u001b[0m \u001b[1;33m%\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mP_l1\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'reg1' is not defined"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for pf=1\n",
+ "load voltage=229.13 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2, Page No 756"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "I_m1=2\n",
+ "pf1=.3\n",
+ "\n",
+ "#Calculations\n",
+ "I_c1=I_m1*math.sin(math.radians(math.degrees(math.acos(pf1))))\n",
+ "C1=I_c1/(2*math.pi*f*V_s) \n",
+ "I_m2=5\n",
+ "pf2=.5\n",
+ "I_c2=I_m2*math.sin(math.radians(math.degrees(math.acos(pf2))))\n",
+ "C2=I_c2/(2*math.pi*f*V_s) \n",
+ "I_m3=10\n",
+ "pf3=.7\n",
+ "I_c3=I_m3*math.sin(math.radians(math.degrees(math.acos(pf3))))\n",
+ "C3=I_c3/(2*math.pi*f*V_s) \n",
+ "\n",
+ "#Results\n",
+ "print(\"at no load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C1*10**6))\n",
+ "print(\"at half full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C2*10**6))\n",
+ "print(\"at full load\")\n",
+ "print(\"value of capacitance=%.3f uF\" %(C3*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "at no load\n",
+ "value of capacitance=26.404 uF\n",
+ "at half full load\n",
+ "value of capacitance=59.927 uF\n",
+ "at full load\n",
+ "value of capacitance=98.834 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 Page No 764"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_c=10.0\n",
+ "f=50.0\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "C=I_c/(2*math.pi*f*V_s) \n",
+ "I_l=10\n",
+ "L=V_s/(2*math.pi*f*I_l) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of capacitance=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of inductor=%.3f mH\" %(L*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitance=138.396 uF\n",
+ "value of inductor=73.211 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.4, Page No 765"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "I_L=10.0\n",
+ "X_L=V_s/I_L\n",
+ "I_f1=6.0\n",
+ " #B=2*a-math.sin(2*a)\n",
+ "B=2*math.pi-I_f1*math.pi*X_L/V_s\n",
+ "a=0\n",
+ "i=1.0\n",
+ "for a in range(1,360):\n",
+ " b=2*a*math.pi/180-math.sin(math.radians(2*a)) \n",
+ " if math.fabs(B-b)<=0.001 : #by hit and trial\n",
+ " i=2\n",
+ " break\n",
+ "print(\"firing angle of TCR = %.1f deg\" %a)\n",
+ " #(a-.01)*180/math.pi)\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle of TCR = 359.0 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.5 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=.01\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for firing angle=90deg\")\n",
+ "a=90*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.0f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=120deg\")\n",
+ "a=120*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=150deg\")\n",
+ "a=150*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.2f mH\" %(L_eff*1000))\n",
+ "print(\"for firing angle=170deg\")\n",
+ "a=170*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ "print(\"for firing angle=175deg\")\n",
+ "a=175*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.2f H\" %L_eff)\n",
+ "print(\"for firing angle=180deg\")\n",
+ "a=180*math.pi/180\n",
+ "L_eff=math.pi*L/(2*math.pi-2*a+math.sin(2*a)) \n",
+ "print(\"effective inductance=%.3f H\" %L_eff)\n",
+ " #random value at firing angle =180 is equivalent to infinity as in answer in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=90deg\n",
+ "effective inductance=10 mH\n",
+ "for firing angle=120deg\n",
+ "effective inductance=25.575 mH\n",
+ "for firing angle=150deg\n",
+ "effective inductance=173.40 mH\n",
+ "for firing angle=170deg\n",
+ "effective inductance=4.459 H\n",
+ "for firing angle=175deg\n",
+ "effective inductance=35.51 H\n",
+ "for firing angle=180deg\n",
+ "effective inductance=-128265253940037.750 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.6 Page No 766"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Q=100.0*10**3\n",
+ "V_s=11.0*10**3\n",
+ "\n",
+ "#Calculations\n",
+ "f=50.0\n",
+ "L=V_s**2/(2*math.pi*f*Q) \n",
+ "\n",
+ "#Results\n",
+ "print(\"effective inductance=%.4f H\" %L)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "effective inductance=3.8515 H\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter14.ipynb b/_Power_Electronics/Chapter14.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/_Power_Electronics/Chapter14.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter14_1.ipynb b/_Power_Electronics/Chapter14_1.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/_Power_Electronics/Chapter14_1.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter14_2.ipynb b/_Power_Electronics/Chapter14_2.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/_Power_Electronics/Chapter14_2.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter14_3.ipynb b/_Power_Electronics/Chapter14_3.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/_Power_Electronics/Chapter14_3.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter14_4.ipynb b/_Power_Electronics/Chapter14_4.ipynb
new file mode 100755
index 00000000..a9c3a3f1
--- /dev/null
+++ b/_Power_Electronics/Chapter14_4.ipynb
@@ -0,0 +1,93 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 14 : Miscellaneous Topics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 14.1, Page No 777"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a1=0\n",
+ "a2=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"for two single phase series semiconvertors\")\n",
+ "V_0=V_m/math.pi*(2+math.cos(math.radians(a1))+math.cos(math.radians(a2))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*(4*math.pi-3*a2*math.pi/180+(3/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=(3+math.cos(math.radians(a2)))/(math.sqrt(2)*math.sqrt(5+3*math.cos(math.radians(a2)))) \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/math.pi)*(3+math.cos(math.radians(a2)))/math.sqrt(4*math.pi-3*a2*math.pi/180) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-(3/4)*a2*math.pi/180)/(5+3*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)\n",
+ "print(\"for two single phase series full convertors\")\n",
+ "a=45.0\n",
+ "V_0=2*V_m/math.pi*(1+math.cos(math.radians(a))) \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_0)\n",
+ "V_or=2*V_s*math.sqrt((1/math.pi)*(math.pi-a2*math.pi/180+(1/2)*math.sin(math.radians(2*a2)))) \n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "DF=math.cos(math.radians(a2/2)) \n",
+ "\n",
+ "\n",
+ "#Results \n",
+ "print(\"DF=%.2f\" %DF)\n",
+ "PF=math.sqrt(2/(math.pi*(math.pi-a2*math.pi/180)))*(1+math.cos(math.radians(a2))) \n",
+ "print(\"PF=%.2f\" %PF)\n",
+ "HF=math.sqrt((math.pi*(math.pi-a2*math.pi/180)/(4+4*math.cos(math.radians(a2))))-1) \n",
+ "print(\"HF=%.2f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for two single phase series semiconvertors\n",
+ "avg o/p voltage=383.82 V\n",
+ "rms value of o/p voltage=434.47 V\n",
+ "DF=0.98\n",
+ "PF=0.93\n",
+ "HF=0.62\n",
+ "for two single phase series full convertors\n",
+ "avg o/p voltage=353.50 V\n",
+ "rms value of o/p voltage=398.37 V\n",
+ "DF=0.92\n",
+ "PF=0.89\n",
+ "HF=0.29\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter2.ipynb b/_Power_Electronics/Chapter2.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/_Power_Electronics/Chapter2.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter2_1.ipynb b/_Power_Electronics/Chapter2_1.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/_Power_Electronics/Chapter2_1.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter2_2.ipynb b/_Power_Electronics/Chapter2_2.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/_Power_Electronics/Chapter2_2.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter2_3.ipynb b/_Power_Electronics/Chapter2_3.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/_Power_Electronics/Chapter2_3.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter2_4.ipynb b/_Power_Electronics/Chapter2_4.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/_Power_Electronics/Chapter2_4.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter3.ipynb b/_Power_Electronics/Chapter3.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/_Power_Electronics/Chapter3.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter3_1.ipynb b/_Power_Electronics/Chapter3_1.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/_Power_Electronics/Chapter3_1.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter3_2.ipynb b/_Power_Electronics/Chapter3_2.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/_Power_Electronics/Chapter3_2.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter3_3.ipynb b/_Power_Electronics/Chapter3_3.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/_Power_Electronics/Chapter3_3.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter3_4.ipynb b/_Power_Electronics/Chapter3_4.ipynb
new file mode 100755
index 00000000..2e53ef9d
--- /dev/null
+++ b/_Power_Electronics/Chapter3_4.ipynb
@@ -0,0 +1,1001 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 03 : Diode Circuits and Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0 #V\n",
+ "V_o=100.0 #V\n",
+ "L=100.0 #uH\n",
+ "C=30.0 #uF\n",
+ "\n",
+ "#Calculations\n",
+ "t_o=math.pi*math.sqrt(L*C)\n",
+ "print(\"conduction time of diode = %.2f us\" %t_o)\n",
+ "#in book solution is t_o=54.77 us. The ans is incorrect as %pi is not muliplied in ans. Formulae mentioned in correct.\n",
+ "I_p=(V_s-V_o)*math.sqrt(C/L)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak current through diode=%.2f A\" %I_p)\n",
+ "v_D=-V_s+V_o \n",
+ "print(\"Voltage across diode = %.2f V\" %v_D)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of diode = 172.07 us\n",
+ "Peak current through diode=164.32 A\n",
+ "Voltage across diode = -300.00 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=10 #ohm\n",
+ "L=0.001 #H\n",
+ "C=5*10**-6 #F\n",
+ "V_s=230 #V\n",
+ "xi=R/(2*L)\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t=math.pi/w_r \n",
+ "\n",
+ "#Results\n",
+ "print('Conduction time of diode=%.3f us'%(t*10**6))\n",
+ "t=0\n",
+ "di=V_s/L\n",
+ "print('Rate of change of current at t=0 is %.2f A/s' %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Conduction time of diode=237.482 us\n",
+ "Rate of change of current at t=0 is 230000.00 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.7 Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_or=100 #A\n",
+ "R=1.0 #assumption\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=I_or*2*R\n",
+ "I_o=V_m/(math.pi*R)\n",
+ "q=200 #Ah\n",
+ "t=q/I_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"time required to deliver charge=%.02f hrs\" %t)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time required to deliver charge=3.14 hrs\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.8, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "P=1000 #W\n",
+ "R=V_s**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(2)*V_s/2\n",
+ "P_h=V_or**2/R \n",
+ "print(\"Power delivered to the heater = %.2f W\" %P_h)\n",
+ "V_m=math.sqrt(2)*230\n",
+ "I_m=V_m/R\n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak value of diode current = %.2f A\" %I_m)\n",
+ "pf=V_or/V_s\n",
+ "print(\"Input power factor=%.2f\" %pf)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to the heater = 500.00 W\n",
+ "Peak value of diode current = 6.15 A\n",
+ "Input power factor=0.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.9 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "V_m=V_s*math.sqrt(2)\n",
+ "E=150 #V\n",
+ "\n",
+ "#Calculations\n",
+ "theta1=math.degrees(E/(math.sqrt(2)*V_s))\n",
+ "R=8 #ohm\n",
+ "f=50 #Hz\n",
+ "I_o=(1/(2*math.pi*R))*((2*math.sqrt(2)*V_s*math.cos(math.radians(theta1)))-E*(math.pi-2*theta1*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg value of charging current=%.2f A\" %I_o)\n",
+ "P_d=E*I_o\n",
+ "print(\"\\npower delivered to battery=%.2f W\" %P_d)\n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V_s**2+E**2)*(math.pi-2*theta1*math.pi/180)+V_s**2*math.sin(math.radians(2*theta1))-4*V_m*E*math.cos(math.radians(theta1))))\n",
+ "print(\"\\nrms value of the load current=%.2f A\" %I_or)\n",
+ "pf=(E*I_o+I_or**2*R)/(V_s*I_or)\n",
+ "print(\"\\nsupply pf=%.3f\" %pf)\n",
+ "P_dd=I_or**2*R\n",
+ "print(\"\\npower dissipated in the resistor=%.2f W\" %P_dd)\n",
+ "q=1000.00 #Wh\n",
+ "t=q/P_d \n",
+ "print(\"\\ncharging time=%.2f hr\" %t)\n",
+ "n=P_d*100/(P_d+P_dd)\n",
+ "print(\"rectifier efficiency =%.2f \" %n)\n",
+ "PIV=math.sqrt(2)*V_s+E\n",
+ "print(\"PIV of diode=%.2f V\" %PIV)\n",
+ "#solutions have small variations due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg value of charging current=4.97 A\n",
+ "\n",
+ "power delivered to battery=745.11 W\n",
+ "\n",
+ "rms value of the load current=9.29 A\n",
+ "\n",
+ "supply pf=0.672\n",
+ "\n",
+ "power dissipated in the resistor=690.74 W\n",
+ "\n",
+ "charging time=1.34 hr\n",
+ "rectifier efficiency =51.89 \n",
+ "PIV of diode=475.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.10 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "t_rr=40*10**-6 #s reverde recovery time\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*math.sqrt(2)*V_s/math.pi\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "f=50\n",
+ "V_r1=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg1=V_r1*100/V_o*10**3\n",
+ "f=2500\n",
+ "V_r2=(V_m/math.pi)*(1-math.cos(math.radians(2*math.pi*f*t_rr*180/math.pi)))\n",
+ "v_avg2=V_r2*100/V_o\n",
+ "\n",
+ "#Results\n",
+ "print(\"when f=50Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage=%.2f x 10^-3\" %v_avg1)\n",
+ "print(\"when f=2500Hz\")\n",
+ "print(\"Percentage reduction in avg o/p voltage = %.3f\" %v_avg2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when f=50Hz\n",
+ "Percentage reduction in avg o/p voltage=3.95 x 10^-3\n",
+ "when f=2500Hz\n",
+ "Percentage reduction in avg o/p voltage = 9.549\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.11, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230 #V\n",
+ "R=10.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "print(\"Avg value of o/p voltage = %.2f V\" %V_o)\n",
+ "I_o=V_o/R\n",
+ "print(\"Avg value of o/p current = %.2f A\" %I_o)\n",
+ "I_DA=I_o/2\n",
+ "print(\"Avg value of diode current=%.2f A\" %I_DA)\n",
+ "I_Dr=I_o/math.sqrt(2) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"rms value of o/p current = %.2f A\" %I_o)\n",
+ "print(\"rms value of i/p current = %.2f A\" %I_o)\n",
+ "pf=(V_o/V_s)\n",
+ "print(\"supply pf = %.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg value of o/p voltage = 207.07 V\n",
+ "Avg value of o/p current = 20.71 A\n",
+ "Avg value of diode current=10.35 A\n",
+ "rms value of diode current=14.64 A\n",
+ "rms value of o/p current = 20.71 A\n",
+ "rms value of i/p current = 20.71 A\n",
+ "supply pf = 0.90\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.12 Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "R=1000.0 #ohm\n",
+ "R_D=20.0 #ohm\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "I_om=V_m/(R+R_D) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Peak load current = %.2f A\" %I_om)\n",
+ "I_o=I_om/math.pi\n",
+ "print(\"dc load current = %.2f A\" %I_o)\n",
+ "V_D=I_o*R_D-V_m/math.pi\n",
+ "print(\"dc diode voltage = %.2f V\" %V_D)\n",
+ "V_on=V_m/math.pi\n",
+ "print(\"at no load, load voltage = %.2f V\" %V_on)\n",
+ "V_o1=I_o*R \n",
+ "print(\"at given load, load voltage = %.2f V\" %V_o1)\n",
+ "vr=(V_on-V_o1)*100/V_on \n",
+ "print(\"Voltage regulation(in percent)=%.2f\" %vr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Peak load current = 0.32 A\n",
+ "dc load current = 0.10 A\n",
+ "dc diode voltage = -101.51 V\n",
+ "at no load, load voltage = 103.54 V\n",
+ "at given load, load voltage = 101.51 V\n",
+ "Voltage regulation(in percent)=1.96\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.13 Page No 82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_L=6.8 #V\n",
+ "V_smax=20*1.2 #V\n",
+ "V_smin=20*.8 #V\n",
+ "I_Lmax=30*1.5 #mA\n",
+ "I_Lmin=30*0.5 #mA\n",
+ "I_z=1 #mA\n",
+ "\n",
+ "#Calculations\n",
+ "R_smax=(V_smax-V_L)/((I_Lmin+I_z)*10**-3)\n",
+ "print(\"max source resistance = %.2f ohm\" %R_smax)\n",
+ "R_smin=(V_smin-V_L)/((I_Lmax+I_z)*10**-3) \n",
+ "print(\"Min source resistance = %.2f ohm\" %R_smin) #in book solution, error is committed in putting the values in formulea(printing error) but solution is correct\n",
+ "R_Lmax=V_L*1000/I_Lmin\n",
+ "print(\"Max load resistance = %.2f ohm\" %R_Lmax)\n",
+ "R_Lmin=V_L*1000/I_Lmax \n",
+ "V_d=0.6 #V\n",
+ "V_r=V_L-V_d\n",
+ "\n",
+ "#Results\n",
+ "print(\"Min load resistance=%.2f ohm\" %R_Lmin)\n",
+ "print(\"Voltage rating of zener diode=%.2f V\" %V_r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max source resistance = 1075.00 ohm\n",
+ "Min source resistance = 200.00 ohm\n",
+ "Max load resistance = 453.33 ohm\n",
+ "Min load resistance=151.11 ohm\n",
+ "Voltage rating of zener diode=6.20 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.14 Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I2=200*10**-6 #A\n",
+ "V_z=20 #V\n",
+ "R_G=500.0 #hm\n",
+ "\n",
+ "#Calculations\n",
+ "R2=(V_z/I2)-R_G\n",
+ "print(\"R2=%.2f kilo-ohm\" %(R2/1000))\n",
+ "\n",
+ "V_v=25 #V\n",
+ "I1=I2\n",
+ "R1=(V_v-V_z)/I1\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1=%.0f kilo-ohm\"%(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R2=99.50 kilo-ohm\n",
+ "R1=25 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.15, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=2*230 #V\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(math.sqrt(2)*V_s)/math.pi\n",
+ "R=60 #ohm\n",
+ "P_dc=(V_o)**2/R\n",
+ "TUF=0.2865\n",
+ "VA=P_dc/TUF\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"kVA rating of the transformer = %.2f kVA\" %(VA/1000));\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "kVA rating of the transformer = 2.49 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.16, Page No 92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=0.5 #turns ratio\n",
+ "I_o=10.0\n",
+ "V=230.0\n",
+ "V_s=V/tr\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "V_o=2*V_m/math.pi\n",
+ "phi1=0\n",
+ "#displacemnt angle=0 as fundamnetal component of i/p source current in phase with source voltage\n",
+ "DF=math.cos(math.radians(phi1))\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*math.pi/math.pi)\n",
+ "CDF=I_s1/I_o\n",
+ "pf=CDF*DF\n",
+ "HF=math.sqrt((I_s/I_s1)**2-1)\n",
+ "CF=I_o/I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p voltage = %.2f V\" %V_o)\n",
+ "print(\"distortion factor = %.2f\" %DF)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"Current displacent factor=%.2f\" %CDF)\n",
+ "print(\"Harmonic factor = %.2f\" %HF)\n",
+ "print(\"Creast factor = %.2f\" %CF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p voltage = 414.15 V\n",
+ "distortion factor = 1.00\n",
+ "i/p pf=0.90\n",
+ "Current displacent factor=0.90\n",
+ "Harmonic factor = 0.48\n",
+ "Creast factor = 1.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.17, Page No 94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=230.0\n",
+ "R=10.0\n",
+ "V_s=V_o*math.pi/(2*math.sqrt(2))\n",
+ "I_o=V_o/R\n",
+ "I_m=math.sqrt(2)*V_s/R\n",
+ "I_DAV=I_m/math.pi\n",
+ "\n",
+ "#Calculations\n",
+ "#avg value of diode current\n",
+ "I_Dr=I_m/2\n",
+ "PIV=math.sqrt(2)*V_s\n",
+ "I_s=I_m/math.sqrt(2)\n",
+ "TF=V_s*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak diode current=%.2f A\" %I_m)\n",
+ "print(\"I_DAV=%.2f A\" %I_DAV)\n",
+ "print(\"I_Dr=%.2f A\" %I_Dr) #rms value of diode current\n",
+ "print(\"PIV=%.1f V\" %PIV)\n",
+ "print(\"Transformer rating = %.2f kVA\" %(TF/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak diode current=36.13 A\n",
+ "I_DAV=11.50 A\n",
+ "I_Dr=18.06 A\n",
+ "PIV=361.3 V\n",
+ "Transformer rating = 6.53 kVA\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.18, Page No 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tr=5\n",
+ "V=1100.0\n",
+ "R=10.0\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"In case of 3ph-3pulse type\")\n",
+ "V_ph=V/tr\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*math.sqrt(3)*V_mp/(2*math.pi)\n",
+ "print(\"avg o/p voltage=%.1f V\" %V_o)\n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/3) \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3))) \n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "V_or=V_mp*math.sqrt((3/(2*math.pi))*(math.pi/3+.5*math.sin(2*math.pi/3)))\n",
+ "P=(V_or**2)/R \n",
+ "print(\"\\npower delivered=%.1f W\" %P)\n",
+ "print(\"in case of 3ph-M6 type\")\n",
+ "V_ph=V_ph/2\n",
+ "V_mp=math.sqrt(2)*V_ph\n",
+ "V_o=3*V_mp/(math.pi) \n",
+ "I_mp=V_mp/R\n",
+ "I_D=(I_mp/math.pi)*math.sin(math.pi/6) \n",
+ "I_Dr=I_mp*math.sqrt((1/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6))) \n",
+ "V_or=V_mp*math.sqrt((6/(2*math.pi))*(math.pi/6+.5*math.sin(2*math.pi/6)))\n",
+ "P=(V_or**2)/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"\\navg value of diode current=%.2f A\" %I_D)\n",
+ "print(\"\\nrms value of diode current=%.2f A\" %I_Dr)\n",
+ "print(\"\\npower delivered=%.0f W\" %P)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In case of 3ph-3pulse type\n",
+ "avg o/p voltage=257.3 V\n",
+ "\n",
+ "avg value of diode current=8.577 A\n",
+ "\n",
+ "rms value of diode current=15.10 A\n",
+ "\n",
+ "power delivered=6841.3 W\n",
+ "in case of 3ph-M6 type\n",
+ "avg o/p voltage=148.55 V\n",
+ "\n",
+ "avg value of diode current=2.48 A\n",
+ "\n",
+ "rms value of diode current=6.07 A\n",
+ "\n",
+ "power delivered=2211 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.19, Page No 115"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=400\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=V_o*math.pi/3\n",
+ "V_s=V_ml/(math.sqrt(2)*math.sqrt(3))\n",
+ "I_m=V_ml/R\n",
+ "I_s=.7804*I_m\n",
+ "tr=3*V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"transformer rating=%.1f VA\" %tr)\n",
+ "I_Dr=.5518*I_m \n",
+ "print(\"\\nrms value of diode current=%.3f A\" %I_Dr)\n",
+ "I_D=I_m/math.pi \n",
+ "print(\"\\navg value of diode current=%.3f A\" %I_D)\n",
+ "print(\"\\npeak diode current=%.2f A\" %I_m)\n",
+ "PIV=V_ml \n",
+ "print(\"\\nPIV=%.2f V\" %PIV)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "transformer rating=16770.3 VA\n",
+ "\n",
+ "rms value of diode current=23.114 A\n",
+ "\n",
+ "avg value of diode current=13.333 A\n",
+ "\n",
+ "peak diode current=41.89 A\n",
+ "\n",
+ "PIV=418.88 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.20, Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_l=230\n",
+ "E=240\n",
+ "R=8\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_l\n",
+ "V_o=3*V_ml/math.pi\n",
+ "I_o=(V_o-E)/R\n",
+ "P_b=E*I_o \n",
+ "P_d=E*I_o+I_o**2*R \n",
+ "phi1=0\n",
+ "math.cos(math.radians(phi1))\n",
+ "I_s1=2*math.sqrt(3)*I_o/(math.sqrt(2)*math.pi)\n",
+ "I_s=math.sqrt(I_o**2*2*math.pi/(3*math.pi))\n",
+ "CDF=I_s1/I_s \n",
+ "pf=DF*CDF \n",
+ "HF=math.sqrt(CDF**-2-1) \n",
+ "tr=math.sqrt(3)*V_l*I_o*math.sqrt(2/3)\n",
+ "\n",
+ "#Results\n",
+ "print(\"Power delivered to battery=%.1f W\" %P_b)\n",
+ "print(\"Power delivered to load=%.2f W\" %P_d)\n",
+ "print(\"Displacement factor=%.2f\" %DF)\n",
+ "print(\"Current distortion factor=%.3f\" %CDF)\n",
+ "print(\"i/p pf=%.3f\"%pf)\n",
+ "print(\"Harmonic factor=%.2f\" %HF)\n",
+ "print(\"Tranformer rating=%.2f VA\" %tr)\n",
+ "#answers have small variations from the book due to difference in rounding off of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Power delivered to battery=2118.3 W\n",
+ "Power delivered to load=2741.48 W\n",
+ "Displacement factor=1.00\n",
+ "Current distortion factor=0.955\n",
+ "i/p pf=0.955\n",
+ "Harmonic factor=0.31\n",
+ "Tranformer rating=0.00 VA\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.21, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50 #Hz\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "R=400.0\n",
+ "RF=0.05\n",
+ "C=(1/(4*f*R))*(1+(1/(math.sqrt(2)*RF)))\n",
+ "\n",
+ "#Results\n",
+ "print(\"capacitor value=%.2f uF\" %(C/10**-6))\n",
+ "V_o=V_m*(1-1/(4*f*R*C))\n",
+ "print(\"o/p voltage with filter=%.2f V\" %V_o)\n",
+ "V_o=2*V_m/math.pi \n",
+ "print(\"o/p voltage without filter=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "capacitor value=189.28 uF\n",
+ "o/p voltage with filter=303.79 V\n",
+ "o/p voltage without filter=207.07 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.22, Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50\n",
+ "CRF=0.05\n",
+ "R=300\n",
+ "\n",
+ "#Calculations\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "print(\"L=%.2f H\" %L)\n",
+ "R=30\n",
+ "L=math.sqrt((CRF/(.4715*R))**-2-R**2)/(2*2*math.pi*f) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nL=%.2f H\" %L)\n",
+ "L=0\n",
+ "CRF=.4715*R/math.sqrt(R**2+(2*2*math.pi*f*L)**2) \n",
+ "print(\"\\nCRF=%.2f\" %CRF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L=4.48 H\n",
+ "\n",
+ "L=0.45 H\n",
+ "\n",
+ "CRF=0.47\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.23, Page No 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=50\n",
+ "L_L=10*10**-3\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "\n",
+ "#Calculations\n",
+ "C=10/(2*w*math.sqrt(R**2+(2*w*L_L)**2))\n",
+ "\n",
+ "#Results\n",
+ "print(\"C=%.2f uF\" %(C*10**6))\n",
+ "VRF=0.1\n",
+ "L=(1/(4*w**2*C))*((math.sqrt(2)/(3*VRF))+1)\n",
+ "print(\"\\nL=%.2f mH\" %(L*10**3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C=315.83 uF\n",
+ "\n",
+ "L=45.83 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter4.ipynb b/_Power_Electronics/Chapter4.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/_Power_Electronics/Chapter4.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter4_1.ipynb b/_Power_Electronics/Chapter4_1.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/_Power_Electronics/Chapter4_1.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter4_2.ipynb b/_Power_Electronics/Chapter4_2.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/_Power_Electronics/Chapter4_2.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter4_3.ipynb b/_Power_Electronics/Chapter4_3.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/_Power_Electronics/Chapter4_3.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter4_4.ipynb b/_Power_Electronics/Chapter4_4.ipynb
new file mode 100755
index 00000000..22311574
--- /dev/null
+++ b/_Power_Electronics/Chapter4_4.ipynb
@@ -0,0 +1,946 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 04 : Thyristors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "P=.5 #P=V_g*I_g\n",
+ "s=130 #s=V_g/I_g\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=math.sqrt(P/s)\n",
+ "V_g=s*I_g\n",
+ "E=15\n",
+ "R_s=(E-V_g)/I_g \n",
+ "\n",
+ "#Results\n",
+ "print(\"Gate source resistance=%.2f ohm\" %R_s)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gate source resistance=111.87 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4, Page No 149"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R_s=120 #slope of load line is -120V/A. This gives gate source resistance\n",
+ "print(\"gate source resistance=%.0f ohm\" %R_s)\n",
+ "\n",
+ "P=.4 #P=V_g*I_g\n",
+ "E_s=15\n",
+ "\n",
+ "#Calculations\n",
+ " #E_s=I_g*R_s+V_g % after solving this\n",
+ " #120*I_g**2-15*I_g+0.4=0 so\n",
+ "a=120 \n",
+ "b=-15\n",
+ "c=0.4\n",
+ "D=math.sqrt((b**2)-4*a*c)\n",
+ "I_g=(-b+D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.3f V\" %V_g)\n",
+ "I_g=(-b-D)/(2*a) \n",
+ "V_g=P/I_g\n",
+ "print(\"\\ntrigger current=%.2f mA\" %(I_g*10**3)) \n",
+ "print(\"\\nthen trigger voltage=%.2f V\" %V_g)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "gate source resistance=120 ohm\n",
+ "\n",
+ "trigger current=86.44 mA\n",
+ "\n",
+ "then trigger voltage=4.628 V\n",
+ "\n",
+ "trigger current=38.56 mA\n",
+ "\n",
+ "then trigger voltage=10.37 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#V_g=1+10*I_g\n",
+ "P_gm=5 #P_gm=V_g*I_g\n",
+ "#after solving % eqn becomes 10*I_g**2+I_g-5=0\n",
+ "a=10.0 \n",
+ "b=1.0 \n",
+ "c=-5\n",
+ "\n",
+ "#Calculations\n",
+ "I_g=(-b+math.sqrt(b**2-4*a*c))/(2*a)\n",
+ "E_s=15\n",
+ "#using E_s=R_s*I_g+V_g\n",
+ "R_s=(E_s-1)/I_g-10 \n",
+ "P_gav=.3 #W\n",
+ "T=20*10**-6\n",
+ "f=P_gav/(P_gm*T)\n",
+ "dl=f*T\n",
+ "\n",
+ "#Results\n",
+ "print(\"Reistance=%.3f ohm\" %R_s)\n",
+ "print(\"Triggering freq=%.0f kHz\" %(f/1000))\n",
+ "print(\"Tduty cycle=%.2f\" %dl)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reistance=11.248 ohm\n",
+ "Triggering freq=3 kHz\n",
+ "Tduty cycle=0.06\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.6, Page No 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=.1\n",
+ "E=200.0\n",
+ "L=0.2\n",
+ "\n",
+ "#Calculations\n",
+ "t=I*L/E \n",
+ "R=20.0\n",
+ "t1=(-L/R)*math.log(1-(R*I/E)) \n",
+ "L=2.0\n",
+ "t2=(-L/R)*math.log(1-(R*I/E)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"in case load consists of (a)L=.2H\")\n",
+ "print(\"min gate pulse width=%.0f us\" %(t*10**6))\n",
+ "print(\"(b)R=20ohm in series with L=.2H\")\n",
+ "print(\"min gate pulse width=%.3f us\" %(t1*10**6))\n",
+ "print(\"(c)R=20ohm in series with L=2H\")\n",
+ "print(\"min gate pulse width=%.2f us\" %(t2*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "in case load consists of (a)L=.2H\n",
+ "min gate pulse width=100 us\n",
+ "(b)R=20ohm in series with L=.2H\n",
+ "min gate pulse width=100.503 us\n",
+ "(c)R=20ohm in series with L=2H\n",
+ "min gate pulse width=1005.03 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Page No 163"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " I_m=1 #supposition\n",
+ " I_av=(I_m/(2*math.pi))*(1+math.cos(math.radians(th)))\n",
+ " I_rms=math.sqrt((I_m/(2*math.pi))*((180-th)*math.pi/360+.25*math.sin(math.radians(2*th))))\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when conduction angle=180\")\n",
+ "th=0\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "th=90\n",
+ "I_TAV=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=30\")\n",
+ "th=150\n",
+ "I_TAV=theta(th)\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=22.282 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=15.756 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=8.790 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.10, Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "def theta(th):\n",
+ " n=360.0/th\n",
+ " I=1.0 #supposition\n",
+ " I_av=I/n\n",
+ " I_rms=I/math.sqrt(n)\n",
+ " FF=I_rms/I_av\n",
+ " I_rms=35\n",
+ " I_TAV=I_rms/FF\n",
+ " return I_TAV\n",
+ "\n",
+ "#Calculations\n",
+ "th=180.0\n",
+ "I_TAV1=theta(th)\n",
+ "th=90.0\n",
+ "I_TAV2=theta(th)\n",
+ "th=30.0\n",
+ "I_TAV3=theta(th)\n",
+ "\n",
+ "#Results\n",
+ "print(\"when conduction angle=180\")\n",
+ "print(\"avg on current rating=%.3f A\" %I_TAV)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"avg on current rating=%.1f A\" %I_TAV2)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"avg on current rating=%.4f A\" %I_TAV3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when conduction angle=180\n",
+ "avg on current rating=8.790 A\n",
+ "when conduction angle=90\n",
+ "avg on current rating=17.5 A\n",
+ "when conduction angle=30\n",
+ "avg on current rating=10.1036 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.11 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "f=50.0 #Hz\n",
+ "\n",
+ "#Calculations\n",
+ "I_sb=3000.0\n",
+ "t=1/(4*f)\n",
+ "T=1/(2*f)\n",
+ "I=math.sqrt(I_sb**2*t/T) \n",
+ "r=(I_sb/math.sqrt(2))**2*T \n",
+ "\n",
+ "#Results\n",
+ "print(\"surge current rating=%.2f A\" %I)\n",
+ "print(\"\\nI**2*t rating=%.0f A^2.s\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "surge current rating=2121.32 A\n",
+ "\n",
+ "I**2*t rating=45000 A^2.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=300.0 #V\n",
+ "R=60.0 #ohm\n",
+ "L=2.0 #H\n",
+ "\n",
+ "#Calculations\n",
+ "t=40*10**-6 #s\n",
+ "i_T=(V_s/R)*(1-math.exp(-R*t/L))\n",
+ "i=.036 #A\n",
+ "R1=V_s/(i-i_T)\n",
+ "\n",
+ "#Results\n",
+ "print(\"maximum value of remedial parameter=%.3f kilo-ohm\" %(R1/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum value of remedial parameter=9.999 kilo-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 Page No 172"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_p=230.0*math.sqrt(2)\n",
+ "\n",
+ "#Calculations\n",
+ "R=1+((1)**-1+(10)**-1)**-1\n",
+ "A=V_p/R\n",
+ "s=1 #s\n",
+ "t_c=20*A**-2*s\n",
+ "\n",
+ "#Results\n",
+ "print(\"fault clearance time=%.4f ms\" %(t_c*10**3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fault clearance time=0.6890 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.17, Page No 176"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_s=math.sqrt(2)*230 #V\n",
+ "L=15*10**-6 #H\n",
+ "I=V_s/L #I=(di/dt)_max\n",
+ "R_s=10 #ohm\n",
+ "v=I*R_s #v=(dv/dt)_max\n",
+ "\n",
+ "#Calculations\n",
+ "f=50 #Hz\n",
+ "X_L=L*2*math.pi*f\n",
+ "R=2\n",
+ "I_max=V_s/(R+X_L) \n",
+ "FF=math.pi/math.sqrt(2)\n",
+ "I_TAV1=I_max/FF \n",
+ "FF=3.98184\n",
+ "I_TAV2=I_max/FF \n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"(di/dt)_max=%.3f A/usec\" %(I/10**6))\n",
+ "print(\"\\n(dv/dt)_max=%.2f V/usec\" %(v/10**6))\n",
+ "print(\"\\nI_rms=%.3f A\" %I_max)\n",
+ "print(\"when conduction angle=90\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV1)\n",
+ "print(\"when conduction angle=30\")\n",
+ "print(\"I_TAV=%.3f A\" %I_TAV2)\n",
+ "print(\"\\nvoltage rating=%.3f V\" %(2.75*V_s)) #rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(di/dt)_max=21.685 A/usec\n",
+ "\n",
+ "(dv/dt)_max=216.85 V/usec\n",
+ "\n",
+ "I_rms=162.252 A\n",
+ "when conduction angle=90\n",
+ "I_TAV=73.039 A\n",
+ "when conduction angle=30\n",
+ "I_TAV=40.748 A\n",
+ "\n",
+ "voltage rating=894.490 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.19, Page No 186"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "T_jm=125\n",
+ "th_jc=.15 #degC/W\n",
+ "th_cs=0.075 #degC/W\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dT=54 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "dT=58 #dT=T_s-T_a\n",
+ "P_av=120\n",
+ "th_sa=dT/P_av\n",
+ "T_a=40 #ambient temp\n",
+ "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs)\n",
+ "if (P_av-120)<1 :\n",
+ " print(\"selection of heat sink is satisfactory\")\n",
+ "\n",
+ "V_m=math.sqrt(2)*230\n",
+ "R=2\n",
+ "I_TAV=V_m/(R*math.pi)\n",
+ "P_av=90\n",
+ "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs)\n",
+ "dT=P_av*th_sa\n",
+ "print(\"for heat sink\") \n",
+ "print(\"T_s-T_a=%.2f degC\" %dT) \n",
+ "print(\"\\nP_av=%.0f W\" %P_av)\n",
+ "P=(V_m/2)**2/R\n",
+ "eff=P/(P+P_av) \n",
+ "print(\"\\nckt efficiency=%.3f pu\" %eff)\n",
+ "a=60 #delay angle\n",
+ "I_TAV=(V_m/(2*math.pi*R))*(1+math.cos(math.radians(a)))\n",
+ "print(\"\\nI_TAV=%.2f A\" %I_TAV)\n",
+ "dT=46\n",
+ "T_s=dT+T_a\n",
+ "T_c=T_s+P_av*th_cs \n",
+ "T_j=T_c+P_av*th_jc \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\ncase temp=%.2f degC\" %T_c)\n",
+ "print(\"\\njunction temp=%.2f degC\" %T_j)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for heat sink\n",
+ "T_s-T_a=-20.25 degC\n",
+ "\n",
+ "P_av=90 W\n",
+ "\n",
+ "ckt efficiency=0.993 pu\n",
+ "\n",
+ "I_TAV=38.83 A\n",
+ "\n",
+ "case temp=92.75 degC\n",
+ "\n",
+ "junction temp=106.25 degC\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.20, Page No 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_j=125.0 #degC\n",
+ "T_s=70.0 #degC\n",
+ "th_jc=.16 #degC/W\n",
+ "th_cs=.08 #degC/W\n",
+ "\n",
+ "#Calculations\n",
+ "P_av1=(T_j-T_s)/(th_jc+th_cs) \n",
+ "\n",
+ "T_s=60 #degC\n",
+ "P_av2=(T_j-T_s)/(th_jc+th_cs) \n",
+ "inc=(math.sqrt(P_av2)-math.sqrt(P_av1))*100/math.sqrt(P_av1) \n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss in thristor sink combination=%.2f W\" %P_av1)\n",
+ "print(\"Percentage inc in rating=%.2f\" %inc)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss in thristor sink combination=229.17 W\n",
+ "Percentage inc in rating=8.71\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.21, Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "R=25000.0\n",
+ "I_l1=.021 #I_l=leakage current\n",
+ "I_l2=.025\n",
+ "I_l3=.018\n",
+ "I_l4=.016\n",
+ " #V1=(I-I_l1)*R\n",
+ " #V2=(I-I_l2)*R\n",
+ " #V3=(I-I_l3)*R\n",
+ " #V4=(I-I_l4)*R\n",
+ " #V=V1+V2+V3+V4\n",
+ " \n",
+ "#Calculations\n",
+ "V=10000.0\n",
+ "I_l=I_l1+I_l2+I_l3+I_l4\n",
+ " #after solving\n",
+ "I=((V/R)+I_l)/4\n",
+ "R_c=40.0\n",
+ "V1=(I-I_l1)*R \n",
+ "\n",
+ "#Resluts\n",
+ "print(\"voltage across SCR1=%.0f V\" %V1)\n",
+ "V2=(I-I_l2)*R \n",
+ "print(\"\\nvoltage across SCR2=%.0f V\" %V2)\n",
+ "V3=(I-I_l3)*R \n",
+ "print(\"\\nvoltage across SCR3=%.0f V\" %V3)\n",
+ "V4=(I-I_l4)*R \n",
+ "print(\"\\nvoltage across SCR4=%.0f V\" %V4)\n",
+ "\n",
+ "I1=V1/R_c \n",
+ "print(\"\\ndischarge current through SCR1=%.3f A\" %I1)\n",
+ "I2=V2/R_c \n",
+ "print(\"\\ndischarge current through SCR2=%.3f A\" %I2)\n",
+ "I3=V3/R_c \n",
+ "print(\"\\ndischarge current through SCR3=%.3f A\" %I3)\n",
+ "I4=V4/R_c \n",
+ "print(\"\\ndischarge current through SCR4=%.3f A\" %I4)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "voltage across SCR1=2475 V\n",
+ "\n",
+ "voltage across SCR2=2375 V\n",
+ "\n",
+ "voltage across SCR3=2550 V\n",
+ "\n",
+ "voltage across SCR4=2600 V\n",
+ "\n",
+ "discharge current through SCR1=61.875 A\n",
+ "\n",
+ "discharge current through SCR2=59.375 A\n",
+ "\n",
+ "discharge current through SCR3=63.750 A\n",
+ "\n",
+ "discharge current through SCR4=65.000 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.22, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_r=1000 #rating of SCR\n",
+ "I_r=200 #rating of SCR\n",
+ "V_s=6000 #rating of String\n",
+ "I_s=1000 #rating of String\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"when DRF=.1\")\n",
+ "DRF=.1\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))\n",
+ "print(\"when DRF=.2\")\n",
+ "DRF=.2\n",
+ "\n",
+ "#Results\n",
+ "n_s=V_s/(V_r*(1-DRF)) \n",
+ "print(\"number of series units=%.0f\" %math.ceil(n_s))\n",
+ "n_p=I_s/(I_r*(1-DRF)) \n",
+ "print(\"\\nnumber of parrallel units=%.0f\" %math.ceil(n_p))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when DRF=.1\n",
+ "number of series units=7\n",
+ "\n",
+ "number of parrallel units=6\n",
+ "when DRF=.2\n",
+ "number of series units=8\n",
+ "\n",
+ "number of parrallel units=7\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.23, Page No 198"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V1=1.6 #on state voltage drop of SCR1\n",
+ "V2=1.2 #on state voltage drop of SCR2\n",
+ "I1=250.0 #current rating of SCR1\n",
+ "I2=350.0 #current rating of SCR2\n",
+ "\n",
+ "#Calculations\n",
+ "R1=V1/I1\n",
+ "R2=V2/I2\n",
+ "I=600.0 #current to be shared\n",
+ " #for SCR1 % I*(R1+R)/(total resistance)=k*I1 (1)\n",
+ " #for SCR2 % I*(R2+R)/(total resistance)=k*I2 (2)\n",
+ " #(1)/(2)\n",
+ "R=(R2*I2-R1*I1)/(I1-I2)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"RSequired value of resistance=%.3f ohm\" %R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "RSequired value of resistance=0.004 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.25, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=2000.0 #Hz\n",
+ "C=0.04*10**-6\n",
+ "n=.72\n",
+ "\n",
+ "#Calculations\n",
+ "R=1/(f*C*math.log(1/(1-n))) \n",
+ "V_p=18\n",
+ "V_BB=V_p/n\n",
+ "R2=10**4/(n*V_BB) \n",
+ "I=4.2*10**-3 #leakage current\n",
+ "R_BB=5000\n",
+ "R1=(V_BB/I)-R2-R_BB\n",
+ "\n",
+ "#Results\n",
+ "print(\"R=%.2f kilo-ohm\" %(R/1000))\n",
+ "print(\"\\nR2=%.2f ohm\" %R2)\n",
+ "print(\"\\nR1=%.0f ohm\" %R1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R=9.82 kilo-ohm\n",
+ "\n",
+ "R2=555.56 ohm\n",
+ "\n",
+ "R1=397 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.26, Page No 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "V_p=18.0\n",
+ "n=.72\n",
+ "V_BB=V_p/n\n",
+ "I_p=.6*10**-3\n",
+ "I_v=2.5*10**-3\n",
+ "V_v=1\n",
+ "\n",
+ "#Calculations\n",
+ "R_max=V_BB*(1-n)/I_p \n",
+ "print(\"R_max=%.2f kilo-ohm\" %(R_max/1000))\n",
+ "R_min=(V_BB-V_v)/I_v \n",
+ "print(\"\\nR_min=%.2f kilo-ohm\" %(R_min/1000))\n",
+ "\n",
+ "C=.04*10**-6\n",
+ "f_min=1/(R_max*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_min=%.3f kHz\" %(f_min/1000))\n",
+ "f_max=1/(R_min*C*math.log(1/(1-n))) \n",
+ "print(\"\\nf_max=%.2f kHz\" %(f_max/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_max=11.67 kilo-ohm\n",
+ "\n",
+ "R_min=9.60 kilo-ohm\n",
+ "\n",
+ "f_min=1.683 kHz\n",
+ "\n",
+ "f_max=2.05 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter5.ipynb b/_Power_Electronics/Chapter5.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/_Power_Electronics/Chapter5.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter5_1.ipynb b/_Power_Electronics/Chapter5_1.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/_Power_Electronics/Chapter5_1.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter5_2.ipynb b/_Power_Electronics/Chapter5_2.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/_Power_Electronics/Chapter5_2.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter5_3.ipynb b/_Power_Electronics/Chapter5_3.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/_Power_Electronics/Chapter5_3.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter5_4.ipynb b/_Power_Electronics/Chapter5_4.ipynb
new file mode 100755
index 00000000..1d261f20
--- /dev/null
+++ b/_Power_Electronics/Chapter5_4.ipynb
@@ -0,0 +1,511 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 05 : Thyristor Commutation Techniques"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.1, Page No 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=5.0*10**-3 #mH\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "V_s=200 #V\n",
+ "\n",
+ "#Calculations\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/s\n",
+ "t_o=math.pi/w_o #ms\n",
+ "\n",
+ "#Results\n",
+ "print('conduction time of thyristor = %.2f ms' %(t_o*1000))\n",
+ "print('voltage across thyristor=%.0f V' %V_s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor = 0.99 ms\n",
+ "voltage across thyristor=200 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2, Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "C=20.0*10**-6 #\u00b5F\n",
+ "L=5.0*10**-6 #\u00b5H\n",
+ "V_s=230.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "w_o=math.sqrt(1/(L*C)) #rad/sec\n",
+ "t_o=math.pi/w_o #\u00b5S\n",
+ "I_o=300 \n",
+ "a = math.degrees(math.asin(I_o/(2*V_s))) \n",
+ "V_ab = V_s*math.cos(math.radians(a)) #V \n",
+ "t_c=C*V_ab/I_o #\u00b5s\n",
+ "\n",
+ "#Calculations\n",
+ "print(\"conduction time of auxillery thyristor=%.2f us\" %(t_o*10**6))\n",
+ "print(\"voltage across main thyristor=%.2f V\" %V_ab)\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of auxillery thyristor=31.42 us\n",
+ "voltage across main thyristor=174.36 V\n",
+ "ckt turn off time=11.62 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.3 Page No 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R1=10.0 #\u2126\n",
+ "R2=100.0 #\u2126\n",
+ "C=0 # value of capacitor\n",
+ "\n",
+ "#Calculations\n",
+ "I1=V_s*(1/R1+2/R2) #A\n",
+ "I2=V_s*(2/R1+1/R2) #A\n",
+ "t_c1=40*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "C1=t_c1*fos/(R1*math.log(2))\n",
+ "C2=t_c1*fos/(R2*math.log(2))\n",
+ "if C1 > C2 :\n",
+ " C = C1*10**6\n",
+ "else :\n",
+ " C = C2*10**6\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of current through SCR1=%.2f A\" %I1); \n",
+ "print(\"Peak value of current through SCR2=%.2f A\" %I2);\n",
+ "print(\"Value of capacitor=%.2f uF\" %C);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of current through SCR1=24.00 A\n",
+ "Peak value of current through SCR2=42.00 A\n",
+ "Value of capacitor=11.54 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4, Page No 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0 #V\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "I_o=120.0 #A\n",
+ "\n",
+ "#Calculations\n",
+ "I_p=V_s*math.sqrt(C/L) #A\n",
+ "t_c=C*V_s/I_o #\u00b5s\n",
+ "w_o=math.sqrt(1/(L*C)) \n",
+ "t_c1=math.pi/(2*w_o) #\u00b5s\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through main thyristor=%.2f A\" %(I_o+I_p))\n",
+ "print(\"Current through auxillery thyristor=%.2f A\" %I_o)\n",
+ "print(\"Circuit turn off time for main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"Circuit turn off time for auxillery thyristor=%.2f us\" %(t_c1*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through main thyristor=445.27 A\n",
+ "Current through auxillery thyristor=120.00 A\n",
+ "Circuit turn off time for main thyristor=76.67 us\n",
+ "Circuit turn off time for auxillery thyristor=44.43 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "C_j=25*10**-12 #pF\n",
+ "I_c=5*10**-3 #charging current\n",
+ "V_s=200.0 #V\n",
+ "R=50.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=(C_j*V_s)/(I_c*R)\n",
+ "\n",
+ "\n",
+ "#RESULTS\n",
+ "print(\"Value of C=%.2f \u00b5F\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of C=0.02 \u00b5F\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 Page No 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "R=5.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=10.0*10**-6\n",
+ "#for turn off V_s*(1-2*exp(-t/(R*C)))=0, so after solving\n",
+ "t_c=R*C*math.log(2.0)\n",
+ "\n",
+ "#Results\n",
+ "print(\"circuit turn off time=%.2f us\" %(t_c*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circuit turn off time=34.66 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7, Page No 264 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0 #\u2126\n",
+ "L=20*10**-6 #\u00b5H\n",
+ "C=40*10**-6 #\u00b5F\n",
+ "\n",
+ "#Calculations\n",
+ "w_r=math.sqrt((1/(L*C))-(R/(2*L))**2)\n",
+ "t_1=math.pi/w_r\n",
+ "\n",
+ "#Results\n",
+ "print(\"conduction time of thyristor=%.3f us\" %(t_1*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "conduction time of thyristor=125.664 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "dv=400*10.0**-6 #dv=dv_T/dt(V/s)\n",
+ "V_s=200.0 #v\n",
+ "R=20.0 #\u2126\n",
+ "\n",
+ "#Calculations\n",
+ "C=V_s/(R*dv) \n",
+ "C_j=.025*10**-12\n",
+ "C_s=C-C_j\n",
+ "I_T=40;\n",
+ "R_s=1/((I_T/V_s)-(1/R)) \n",
+ "#value of R_s in book is wrongly calculated\n",
+ "\n",
+ "#Results\n",
+ "print(\"R_s=%.2f ohm\" %R_s)\n",
+ "print(\"C_s=%.3f uF\" %(C_s/10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R_s=6.67 ohm\n",
+ "C_s=0.025 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 Page No 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=200.0 #V\n",
+ "C=20.0*10**-6 #\u00b5H \n",
+ "L=0.2*10**-3 #\u00b5F\n",
+ "i_c=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=V_s*math.sqrt(C/L)\n",
+ "w_o=1.0/math.sqrt(L*C)\n",
+ "t_1 = (1/w_o)*math.degrees(math.asin(i_c/i))\n",
+ "t_o=math.pi/w_o\n",
+ "t_c=t_o-2*t_1 \n",
+ "\n",
+ "#Results\n",
+ "print(\"reqd time=%.2f us\" %(t_1*10**6))\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"ckt turn off time=%.5f us\" %t_1)\n",
+ "#solution in book wrong, as wrong values are selected while filling the formuleas"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "reqd time=575.37 us\n",
+ "ckt turn off time=-952.05 us\n",
+ "ckt turn off time=0.00058 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.11 Page No 268 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #\u00b5H\n",
+ "R=50.0 #\u2126\n",
+ "V_s=200.0 #V\n",
+ "t=0.01 #sec\n",
+ "Vd=0.7\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "t=8*10**-3\n",
+ "i1=i-t*Vd \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"current through L = %.2f A\" %i1)\n",
+ "i_R=0 #current in R at t=.008s\n",
+ "print(\"Current through R = %.2f A\" %i_R)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current through L = 1.57 A\n",
+ "Current through R = 0.00 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.12, Page No 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "#initialisation of variables\n",
+ "L=1.0 #H\n",
+ "R=50.0 #ohm\n",
+ "V_s=200.0 #V\n",
+ "\n",
+ "#Calculations\n",
+ "tau=L/R\n",
+ "t=0.01 #s\n",
+ "i=(V_s/R)*(1-math.exp(-t/tau))\n",
+ "C=1*10**-6 #F\n",
+ "V_c=math.sqrt(L/C)*i\n",
+ "\n",
+ "#Results\n",
+ "print(\"current in R,L=%.2f A\" %i)\n",
+ "print(\"voltage across C=%.2f kV\" %(V_c/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current in R,L=1.57 A\n",
+ "voltage across C=1.57 kV\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter6.ipynb b/_Power_Electronics/Chapter6.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/_Power_Electronics/Chapter6.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter6_1.ipynb b/_Power_Electronics/Chapter6_1.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/_Power_Electronics/Chapter6_1.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter6_2.ipynb b/_Power_Electronics/Chapter6_2.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/_Power_Electronics/Chapter6_2.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter6_3.ipynb b/_Power_Electronics/Chapter6_3.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/_Power_Electronics/Chapter6_3.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter6_4.ipynb b/_Power_Electronics/Chapter6_4.ipynb
new file mode 100755
index 00000000..dff6564b
--- /dev/null
+++ b/_Power_Electronics/Chapter6_4.ipynb
@@ -0,0 +1,1761 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 06 : Phase Controlled Rectifiers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "P=1000.0\n",
+ "R=V**2/P\n",
+ "\n",
+ "#Calculations\n",
+ "a=math.pi/4\n",
+ "V_or1=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P1=V_or1**2/R \n",
+ "a=math.pi/2\n",
+ "V_or2=(math.sqrt(2)*V/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a)+.5*math.sin(2*a))\n",
+ "P2=V_or2**2/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle delay is of 45deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P1)\n",
+ "print(\"when firing angle delay is of 90deg\")\n",
+ "print(\"power absorbed=%.2f W\" %P2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle delay is of 45deg\n",
+ "power absorbed=454.58 W\n",
+ "when firing angle delay is of 90deg\n",
+ "power absorbed=250.00 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page No 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.sin(math.radians(E/(math.sqrt(2)*V)))\n",
+ "I_o=(1/(2*math.pi*R))*(2*math.sqrt(2)*230*math.cos(math.radians(th1))-E*(math.pi-2*th1*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*(math.pi-2*th1*math.pi/180)+V**2*math.sin(math.radians(2*th1))-4*math.sqrt(2)*V*E*math.cos(math.radians(th1))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.3f W\" %P_r) \n",
+ "print(\"supply pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=3.5679 A\n",
+ "power supplied to the battery=535.18 W\n",
+ "power dissipated by the resistor=829.760 W\n",
+ "supply pf=0.583\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 Page No 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "E=150.0\n",
+ "R=8.0\n",
+ "a=35.0\n",
+ "\n",
+ "#Calculations\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "th2=180-th1\n",
+ "I_o=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(th2)))-E*((th2-a)*math.pi/180)) \n",
+ "P=E*I_o \n",
+ "I_or=math.sqrt((1/(2*math.pi*R**2))*((V**2+E**2)*((th2-a)*math.pi/180)-(V**2/2)*(math.sin(math.radians(2*th2))-math.sin(math.radians(2*a)))-2*math.sqrt(2)*V*E*(math.cos(math.radians(a))-math.cos(math.radians(th2)))))\n",
+ "P_r=I_or**2*R \n",
+ "pf=(P+P_r)/(V*I_or) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg charging curent=%.4f A\" %I_o)\n",
+ "print(\"power supplied to the battery=%.2f W\" %P)\n",
+ "print(\"power dissipated by the resistor=%.2f W\" %P_r)\n",
+ "print(\"supply pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg charging curent=4.9208 A\n",
+ "power supplied to the battery=738.12 W\n",
+ "power dissipated by the resistor=689.54 W\n",
+ "supply pf=0.6686\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page No 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=210\n",
+ "f=50.0 #Hz\n",
+ "w=2*math.pi*f\n",
+ "a=40.0 #firing angle\n",
+ "V=230.0\n",
+ "R=5.0\n",
+ "L=2*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t_c1=(360-B)*math.pi/(180*w) \n",
+ "V_o1=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o1=V_o1/R \n",
+ "E=110\n",
+ "R=5\n",
+ "L=2*10**-3\n",
+ "th1=math.degrees(math.asin(E/(math.sqrt(2)*V)))\n",
+ "t_c2=(360-B+th1)*math.pi/(180*w) \n",
+ "V_o2=(math.sqrt(2)*230/(2*math.pi))*(math.cos(math.radians(a))-math.cos(math.radians(B))) \n",
+ "I_o2=(1/(2*math.pi*R))*(math.sqrt(2)*230*(math.cos(math.radians(a))-math.cos(math.radians(B)))-E*((B-a)*math.pi/180)) \n",
+ "V_o2=R*I_o2+E \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"for R=5ohm and L=2mH\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c1*1000))\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"avg output current=%.4f A\" %I_o1)\n",
+ "print(\"for R=5ohm % L=2mH and E=110V\")\n",
+ "print(\"ckt turn off time=%.3f msec\" %(t_c2*1000))\n",
+ "print(\"avg output current=%.4f A\" %I_o2)\n",
+ "print(\"avg output voltage=%.3f V\" %V_o2) "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for R=5ohm and L=2mH\n",
+ "ckt turn off time=8.333 msec\n",
+ "avg output voltage=84.489 V\n",
+ "avg output current=16.8979 A\n",
+ "for R=5ohm % L=2mH and E=110V\n",
+ "ckt turn off time=9.431 msec\n",
+ "avg output current=6.5090 A\n",
+ "avg output voltage=142.545 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 Page No 286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "R=10.0\n",
+ "a=60.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=(math.sqrt(2)*V_s)\n",
+ "V_o=V_m/(2*math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=(V_m/(2*math.sqrt(math.pi)))*math.sqrt((math.pi-a*math.pi/180)+.5*math.sin(math.radians(2*a)))\n",
+ "I_or=V_or/R\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "TUF=P_dc/(V_s*I_or) \n",
+ "PIV=V_m \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"t/f utilisation factor=%.4f\" %TUF)\n",
+ "print(\"PIV of thyristor=%.2f V\" %PIV)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.2834\n",
+ "form factor=1.879\n",
+ "voltage ripple factor=1.5903\n",
+ "t/f utilisation factor=0.1797\n",
+ "PIV of thyristor=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6 Page No 294"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=1000.0\n",
+ "fos=2.5 #factor of safety\n",
+ "I_TAV=40.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m1=V/(2*fos)\n",
+ "P1=(2*V_m1/math.pi)*I_TAV \n",
+ "V_m2=V/(fos)\n",
+ "P2=(2*V_m2/math.pi)*I_TAV \n",
+ "\n",
+ "#Results\n",
+ "print(\"for mid pt convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P1/1000))\n",
+ "print(\"for bridge convertor\")\n",
+ "print(\"power handled=%.3f kW\" %(P2/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for mid pt convertor\n",
+ "power handled=5.093 kW\n",
+ "for bridge convertor\n",
+ "power handled=10.186 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page No 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=.4\n",
+ "I_o=10\n",
+ "I_or=I_o\n",
+ "E=120.0\n",
+ "\n",
+ "#Calculations\n",
+ "a1=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m)))\n",
+ "pf1=(E*I_o+I_or**2*R)/(V_s*I_or) \n",
+ "E=-120.0\n",
+ "a2=math.degrees(math.acos((E+I_o*R)*math.pi/(2*V_m))) \n",
+ "pf2=(-E*I_o-I_or**2*R)/(V_s*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a1)\n",
+ "print(\"pf=%.4f\" %pf1)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n",
+ "print(\"pf=%.4f\" %pf2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=53.21 deg\n",
+ "pf=0.5391\n",
+ "firing angle delay=124.07 deg\n",
+ "pf=0.5043\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 Page No 299"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "f=50.0\n",
+ "a=45.0\n",
+ "R=5.0\n",
+ "E=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=((math.sqrt(2)*V_s)/(2*math.pi))*(3+math.cos(math.radians(a)))\n",
+ "I_o=(V_o-E)/R \n",
+ "P=E*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.3f A\" %I_o)\n",
+ "print(\"power delivered to battery=%.4f kW\" %(P/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=18.382 A\n",
+ "power delivered to battery=1.8382 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10 Page No 300"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "f=50.0\n",
+ "a=50.0\n",
+ "R=6.0\n",
+ "E=60.0\n",
+ "V_o1=((math.sqrt(2)*2*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o1=(V_o1-E)/R \n",
+ "\n",
+ "#ATQ after applying the conditions\n",
+ "V_o2=((math.sqrt(2)*V_s)/(math.pi))*math.cos(math.radians(a))\n",
+ "I_o2=(V_o2-E)/R \n",
+ "\n",
+ "print(\"avg o/p current=%.3f A\" %I_o1)\n",
+ "print(\"avg o/p current after change=%.2f A\" %I_o2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p current=12.184 A\n",
+ "avg o/p current after change=1.09 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11 Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(2*V_m/math.pi)*math.cos(math.radians(a))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_m/math.sqrt(2)\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o/math.pi\n",
+ "DF=math.cos(math.radians(a))\n",
+ "CDF=.90032\n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=2*V_m*I_o*math.sin(math.radians(a))/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"form factor=%.4f\" %FF)\n",
+ "print(\"voltage ripple factor=%.4f\" %VRF)\n",
+ "print(\"pf=%.5f\" %pf)\n",
+ "print(\"HF=%.5f\" %HF)\n",
+ "print(\"active power=%.2f W\" %P_dc) \n",
+ "print(\"reactive power=%.3f Var\" %Q)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.6366\n",
+ "form factor=1.5708\n",
+ "voltage ripple factor=1.2114\n",
+ "pf=0.63662\n",
+ "HF=0.48342\n",
+ "active power=2143.96 W\n",
+ "reactive power=2143.956 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page No 310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=(V_m/math.pi)*(1+math.cos(math.radians(a)))\n",
+ "I_o=V_o/R\n",
+ "V_or=V_s*math.sqrt((1/math.pi)*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "FF=V_or/V_o \n",
+ "VRF=math.sqrt(FF**2-1) \n",
+ "I_s1=2*math.sqrt(2)*I_o*math.cos(math.radians(a/2))/math.pi\n",
+ "DF=math.cos(math.radians(a/2)) \n",
+ "CDF=2*math.sqrt(2)*math.cos(math.radians(a/2))/math.sqrt(math.pi*(math.pi-a*math.pi/180)) \n",
+ "pf=CDF*DF \n",
+ "HF=math.sqrt((1/CDF**2)-1) \n",
+ "Q=V_m*I_o*math.sin(math.radians(a))/math.pi\n",
+ "\n",
+ "#Results\n",
+ "print(\"form factor=%.3f\" %FF)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)\n",
+ "print(\"voltage ripple factor=%.3f\" %VRF) \n",
+ "print(\"DF=%.4f\" %DF)\n",
+ "print(\"CDF=%.4f\" %CDF)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"HF=%.4f\" %HF)\n",
+ "print(\"active power=%.3f W\" %P_dc)\n",
+ "print(\"reactive power=%.2f Var\" %Q)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "form factor=1.241\n",
+ "rectification efficiency=0.8059\n",
+ "voltage ripple factor=0.735\n",
+ "DF=0.9239\n",
+ "CDF=0.9605\n",
+ "pf=0.8874\n",
+ "HF=0.2899\n",
+ "active power=3123.973 W\n",
+ "reactive power=1293.99 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page No 319"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_om=3*V_ml/(2*math.pi)\n",
+ "V_o=V_om/2\n",
+ "th=30\n",
+ "a=math.degrees(math.acos((2*math.pi*math.sqrt(3)*V_o/(3*V_ml)-1)))-th \n",
+ "I_o=V_o/R \n",
+ "V_or=V_ml/(2*math.sqrt(math.pi))*math.sqrt((5*math.pi/6-a*math.pi/180)+.5*math.sin(math.radians(2*a+2*th)))\n",
+ "I_or=V_or/R \n",
+ "RE=V_o*I_o/(V_or*I_or) \n",
+ "\n",
+ "#Results\n",
+ "print(\"delay angle=%.1f deg\" %a)\n",
+ "print(\"avg load current=%.3f A\" %I_o)\n",
+ "print(\"rms load current=%.3f A\" %I_or)\n",
+ "print(\"rectification efficiency=%.4f\" %RE)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "delay angle=67.7 deg\n",
+ "avg load current=7.765 A\n",
+ "rms load current=10.477 A\n",
+ "rectification efficiency=0.5494\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15, Page No 321"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "v_T=1.4\n",
+ "a1=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=3*V_ml/(2*math.pi)*math.cos(math.radians(a1))-v_T \n",
+ "a2=60.0\n",
+ "V_o2=3*V_ml/(2*math.pi)*math.cos(math.radians(a2))-v_T \n",
+ "I_o=36\n",
+ "I_TA=I_o/3 \n",
+ "I_Tr=I_o/math.sqrt(3) \n",
+ "P=I_TA*v_T \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle = 30deg\")\n",
+ "print(\"avg output voltage=%.3f V\" %V_o1)\n",
+ "print(\"for firing angle = 60deg\")\n",
+ "print(\"avg output voltage=%.2f V\" %V_o2)\n",
+ "print(\"avg current rating=%.0f A\" %I_TA)\n",
+ "print(\"rms current rating=%.3f A\" %I_Tr)\n",
+ "print(\"PIV of SCR=%.1f V\" %V_ml)\n",
+ "print(\"power dissipated=%.1f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.17, Page No 331"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200\n",
+ "I_o=20\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o1=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a1=math.degrees(math.acos(V_o1*math.pi/(3*V_ml)))\n",
+ "th=120\n",
+ "I_s=math.sqrt((1/math.pi)*I_o**2*th*math.pi/180)\n",
+ "P=E*I_o+I_o**2*R\n",
+ "pf=P/(math.sqrt(3)*V_s*I_s) \n",
+ "V_o2=E-I_o*R\n",
+ "a2=math.degrees(math.acos(-V_o2*math.pi/(3*V_ml))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.3f deg\" %a1)\n",
+ "print(\"pf=%.3f\" %pf)\n",
+ "print(\"firing angle delay=%.2f deg\" %a2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18, Page No 332"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a1=0\n",
+ "t_c1=(4*math.pi/3-a1*math.pi/180)/w \n",
+ "a2=30\n",
+ "t_c2=(4*math.pi/3-a2*math.pi/180)/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle delay=0deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c1*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n",
+ "print(\"for firing angle delay=30deg\")\n",
+ "print(\"commutation time=%.2f ms\" %(t_c2*1000))\n",
+ "print(\"peak reverse voltage=%.2f V\" %(math.sqrt(2)*V))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle delay=0deg\n",
+ "commutation time=13.33 ms\n",
+ "peak reverse voltage=325.27 V\n",
+ "for firing angle delay=30deg\n",
+ "commutation time=11.67 ms\n",
+ "peak reverse voltage=325.27 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.19, Page No 333"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.20, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/(2*math.pi/3+math.sqrt(3)*(1+math.cos(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=102.459 V\n",
+ "for constant load current\n",
+ "V_ph=102.46 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21, Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=90.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*4*math.pi/(2*3)/((math.pi-math.pi/2)+(math.sin(math.radians(2*a)))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*2*math.pi/(math.sqrt(2)*3*(1+math.cos(math.radians(a))))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage percent V_ph=%.2f V\" %V_ph)\n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.1f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage percent V_ph=191.19 V\n",
+ "for constant load current\n",
+ "V_ph=191.2 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22 Page No 334"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=200.0\n",
+ "I_o=20.0\n",
+ "R=.5\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "V_s=230\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml)-1)) \n",
+ "a1=180-a\n",
+ "I_sr=math.sqrt((1/math.pi)*I_o**2*(a1*math.pi/180))\n",
+ "P=V_o*I_o\n",
+ "pf=P/(math.sqrt(3)*V_s*I_sr) \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle delay=%.2f deg\" %a)\n",
+ "print(\"pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=69.38 deg\n",
+ "pf=0.67\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.23, Page No 335"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=400.0\n",
+ "f=50.0\n",
+ "I_o=15.0\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TA=I_o*120.0/360.0\n",
+ "I_Tr=math.sqrt(I_o**2*120/360)\n",
+ "I_sr=math.sqrt(I_o**2*120/180)\n",
+ "V_ml=math.sqrt(2)*V_s\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "V_or=V_ml*math.sqrt((3/(2*math.pi))*(math.pi/3+math.sqrt(3/2)*math.cos(math.radians(2*a))))\n",
+ "I_or=I_o\n",
+ "P_dc=V_o*I_o\n",
+ "P_ac=V_or*I_or\n",
+ "RE=P_dc/P_ac \n",
+ "VA=3*V_s/math.sqrt(3)*I_sr\n",
+ "TUF=P_dc/VA \n",
+ "pf=P_ac/VA \n",
+ "\n",
+ "#Results\n",
+ "print(\"rectification efficiency=%.5f\" %RE)\n",
+ "print(\"TUF=%.4f\" %TUF)\n",
+ "print(\"Input pf=%.3f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rectification efficiency=0.95493\n",
+ "TUF=0.6752\n",
+ "Input pf=0.707\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24, Page No 341"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I=10.0\n",
+ "a=45.0\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "DF=math.cos(math.radians(a))\n",
+ "I_o=10\n",
+ "I_s1=4*I_o/(math.sqrt(2)*math.pi)*math.sin(math.pi/3)\n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "I_o=1 #suppose\n",
+ "CDF=I_s1/I_sr \n",
+ "THD=math.sqrt(1/CDF**2-1) \n",
+ "pf=CDF*DF \n",
+ "P=(3*math.sqrt(2)*V*math.cos(math.radians(a))/math.pi)*I\n",
+ "Q=(3*math.sqrt(2)*V*math.sin(math.radians(a))/math.pi)*I \n",
+ " \n",
+ "#Results\n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"CDF=%.3f\" %CDF)\n",
+ "print(\"THD=%.5f\" %THD)\n",
+ "print(\"PF=%.4f\" %pf)\n",
+ "print(\"active power=%.2f W\" %P) \n",
+ "print(\"reactive power=%.2f Var\" %Q)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "DF=0.707\n",
+ "CDF=0.955\n",
+ "THD=0.31084\n",
+ "PF=0.6752\n",
+ "active power=3819.72 W\n",
+ "reactive power=3819.72 Var\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.25, Page No 342"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "print(\"for firing angle=30deg\")\n",
+ "a=30.0\n",
+ "V=400.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=350\n",
+ "R=10\n",
+ "\n",
+ "#Calculations\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P1=V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P1/VA \n",
+ "a=180-60\n",
+ "V=400\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "V_o=3*V_ml*math.cos(math.radians(a))/math.pi\n",
+ "E=-350\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R\n",
+ "I_or=I_o\n",
+ "P2=-V_o*I_o \n",
+ "I_sr=I_o*math.sqrt(2.0/3.0)\n",
+ "VA=3*V/math.sqrt(3)*I_sr\n",
+ "pf=P2/VA \n",
+ "\n",
+ "print(\"power delivered to load=%.2f W\" %P1)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"for firing advance angle=60deg\")\n",
+ "print(\"power delivered to load=%.2f W\" %P2)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "power delivered to load=5511.74 W\n",
+ "pf=0.4775\n",
+ "for firing advance angle=60deg\n",
+ "power delivered to load=2158.20 W\n",
+ "pf=0.4775\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.26, Page No 347"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0\n",
+ "u=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "i=math.cos(math.radians(a))-math.cos(math.radians(a+u))\n",
+ "a=30\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=45\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "a=60\n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-i))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"for firing angle=30deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=45deg\") \n",
+ "print(\"overlap angle=%.1f deg\" %u)\n",
+ "print(\"for firing angle=60deg\") \n",
+ "print(\"overlap angle=%.2f deg\" %u)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle=30deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=45deg\n",
+ "overlap angle=2.2 deg\n",
+ "for firing angle=60deg\n",
+ "overlap angle=2.23 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.28, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "E=400.0\n",
+ "I_o=20.0\n",
+ "R=1\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=E+I_o*R\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=.004\n",
+ "V=230 #per phase voltage\n",
+ "V_ml=math.sqrt(6)*V\n",
+ "a=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o+3*w*L*I_o/math.pi))) \n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "u=math.degrees(math.acos(math.pi/(3*V_ml)*(V_o-3*w*L*I_o/math.pi)))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"overlap angle=%.2f deg\" %u)\n",
+ "#Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=34.382 deg\n",
+ "overlap angle=8.22 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.29, Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=400.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=1\n",
+ "E=230\n",
+ "I=15.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=-E+I*R\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a=math.degrees(math.acos(V_o*2*math.pi/(3*V_ml))) \n",
+ "L=0.004\n",
+ "a=math.degrees(math.acos((2*math.pi)/(3*V_ml)*(V_o+3*w*L*I/(2*math.pi)))) \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-3*f*L*I/V_ml))-a \n",
+ "\n",
+ "#Results\n",
+ "print(\"firing angle=%.3f deg\" %a)\n",
+ "print(\"firing angle delay=%.3f deg\" %a)\n",
+ "print(\"overlap angle=%.3f deg\" %u)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle=139.702 deg\n",
+ "firing angle delay=139.702 deg\n",
+ "overlap angle=1.431 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.31, Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0 #per phase\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_ml=math.sqrt(3.0)*math.sqrt(2)*V\n",
+ "w=2*math.pi*f\n",
+ "a1=60.0\n",
+ "L=0.015\n",
+ "i_cp=(math.sqrt(3)*V_ml/(w*L))*(1-math.sin(math.radians(a1))) \n",
+ "\n",
+ "#Results\n",
+ "print(\"circulating current=%.4f A\" %i_cp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "circulating current=27.7425 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.32, Page No 362"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*math.pi/(math.pi)) \n",
+ "I_o=I_s\n",
+ "pf=(V_o*I_o/(V*I_s)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits.\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=179.330 V\n",
+ "avg o/p current=17.93 A\n",
+ "avg value of thyristor current=8.967 A\n",
+ "rms value of thyristor current=12.68 A\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.33, Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "L=.0015\n",
+ "\n",
+ "#Calculations\n",
+ "V_o=2*V_m* math.cos(math.radians(a))/math.pi \n",
+ "R=10\n",
+ "I_o=V_o/R \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "V_ox=2*V_m*math.cos(math.radians(a))/math.pi-w*L*I_o/math.pi \n",
+ "u=math.degrees(math.acos(math.cos(math.radians(a))-I_o*w*L/V_m))-a \n",
+ "I=I_o\n",
+ "pf=V_o*I_o/(V*I) \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_ox)\n",
+ "print(\"angle of overlap=%.3f deg\" %u)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=176.640 V\n",
+ "angle of overlap=2.855 deg\n",
+ "pf=0.7797\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.34, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "a1=35.0 #firing angle advance\n",
+ "\n",
+ "#Calculations\n",
+ "a=180-a1\n",
+ "I_o=80.0\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "X_l=.25 #reactance=w*L\n",
+ "E=-3*V_ml*math.cos(math.radians(a))/math.pi+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi \n",
+ "\n",
+ "#Results\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "mean generator voltage=487.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.35, Page No 364"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=415.0\n",
+ "V_ml=math.sqrt(2)*V\n",
+ "R=0.2\n",
+ "I_o=80\n",
+ "r_s=0.04\n",
+ "v_T=1.5\n",
+ "\n",
+ "#Calculations\n",
+ "X_l=.25 #reactance=w*L\n",
+ "a=35\n",
+ "E=-(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "a1=35\n",
+ "a=180-a1\n",
+ "E=(-3*V_ml*math.cos(math.radians(a))/math.pi+I_o*R+2*I_o*r_s+2*v_T+3*X_l*I_o/math.pi) \n",
+ "\n",
+ "#Results\n",
+ "print(\"when firing angle=35deg\") \n",
+ "print(\"mean generator voltage=%.3f V\" %E)\n",
+ "print(\"when firing angle advance=35deg\")\n",
+ "print(\"mean generator voltage=%.3f V\" %E)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when firing angle=35deg\n",
+ "mean generator voltage=503.590 V\n",
+ "when firing angle advance=35deg\n",
+ "mean generator voltage=503.590 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.36, Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=5.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_mp=math.sqrt(2)*V\n",
+ "a=30.0\n",
+ "E=150.0\n",
+ "B=180-math.degrees(math.asin(E/V_mp))\n",
+ "I_o=(3/(2*math.pi*R))*(V_mp*(math.cos(math.radians(a+30))-math.cos(math.radians(B)))-E*((B-a-30)*math.pi/180))\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg current flowing=%.2f A\" %I_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg current flowing=19.96 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.37, Page No 366"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "V=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_m=math.sqrt(2)*V\n",
+ "V_o=V_m*(1+math.cos(math.radians(a)))/math.pi \n",
+ "E=100\n",
+ "R=10\n",
+ "I_o=(V_o-E)/R \n",
+ "I_TA=I_o*math.pi/(2*math.pi) \n",
+ "I_Tr=math.sqrt(I_o**2*math.pi/(2*math.pi)) \n",
+ "I_s=math.sqrt(I_o**2*(1-a/180)*math.pi/(math.pi))\n",
+ "I_or=I_o\n",
+ "P=E*I_o+I_or**2*R\n",
+ "pf=(P/(V*I_s)) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=(1-a/180)*math.pi/w \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\navg o/p current=%.2f A\" %I_o)\n",
+ "print(\"avg o/p voltage=%.3f V\" %V_o)\n",
+ "print(\"avg value of thyristor current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_Tr)\n",
+ "print(\"avg value of diode current=%.2f A\" %I_TA)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_Tr)\n",
+ "print(\"pf=%.4f\" %pf)\n",
+ "print(\"circuit turn off time=%.2f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "avg o/p current=9.32 A\n",
+ "avg o/p voltage=193.202 V\n",
+ "avg value of thyristor current=4.66 A\n",
+ "rms value of thyristor current=6.590 A\n",
+ "avg value of diode current=4.66 A\n",
+ "rms value of diode current=6.590 A\n",
+ "pf=0.9202\n",
+ "circuit turn off time=8.33 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.38, Page No 368"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "V_m=math.sqrt(2)*V\n",
+ "L=0.05\n",
+ "f=50.0\n",
+ "\n",
+ "#Calculations\n",
+ "w=2*math.pi*f\n",
+ "a=30\n",
+ "i_cp=2*V_m*(1-math.cos(math.radians(a)))/(w*L) \n",
+ "R=30.0\n",
+ "i_l=V_m/R\n",
+ "i1=i_cp+i_l \n",
+ "i2=i_cp \n",
+ "\n",
+ "#Results\n",
+ "print(\"peak value of circulating current=%.3f A\" %i_cp)\n",
+ "print(\"peak value of current in convertor 1=%.3f A\" %i1)\n",
+ "print(\"peak value of current in convertor 2=%.3f A\" %i2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak value of circulating current=5.548 A\n",
+ "peak value of current in convertor 1=16.391 A\n",
+ "peak value of current in convertor 2=5.548 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.39, Page No 370"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "R=5.0\n",
+ "L=0.05\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(w*L/R)) \n",
+ "phi=90+math.degrees(math.atan(w*L/R)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"for no current transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)\n",
+ "print(\"for worst transients\")\n",
+ "print(\"triggering angle=%.2f deg\" %phi)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for no current transients\n",
+ "triggering angle=162.34 deg\n",
+ "for worst transients\n",
+ "triggering angle=162.34 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter7.ipynb b/_Power_Electronics/Chapter7.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/_Power_Electronics/Chapter7.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter7_1.ipynb b/_Power_Electronics/Chapter7_1.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/_Power_Electronics/Chapter7_1.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter7_2.ipynb b/_Power_Electronics/Chapter7_2.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/_Power_Electronics/Chapter7_2.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter7_3.ipynb b/_Power_Electronics/Chapter7_3.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/_Power_Electronics/Chapter7_3.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter7_4.ipynb b/_Power_Electronics/Chapter7_4.ipynb
new file mode 100755
index 00000000..726160c8
--- /dev/null
+++ b/_Power_Electronics/Chapter7_4.ipynb
@@ -0,0 +1,1036 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 07 : Choppers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2, Page No 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.4 #duty cycle %a=T_on/T\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "V=a*(V_s-2) \n",
+ "V_or=math.sqrt(a*(V_s-2)**2) \n",
+ "P_o=V_or**2/R\n",
+ "P_i=V_s*V/R\n",
+ "n=P_o*100/P_i \n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p voltage=%.1f V\" %V)\n",
+ "print(\"rms value of o/p voltage=%.1f V\" %V_or)\n",
+ "print(\"chopper efficiency in percentage=%.2f\" %n)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "avg o/p voltage=91.2 V\n",
+ "rms value of o/p voltage=144.2 V\n",
+ "chopper efficiency in percentage=99.13\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.3, Page No 388"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_i=220.0\n",
+ "V_o=660.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=1-V_i/V_o\n",
+ "T_on=100.0 #microsecond\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=T_off/2\n",
+ "T_on=T-T_off\n",
+ "a=T_on/T\n",
+ "V_o=V_i/(1-a)\n",
+ "\n",
+ "#Results \n",
+ "print(\"pulse width of o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.0f V\" %V_o)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width of o/p voltage=25 us\n",
+ "\n",
+ "new o/p voltage=1320 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.4 Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_1=12.0\n",
+ "I_2=16.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_0=(I_1+I_2)/2\n",
+ "R=10.0\n",
+ "V_0=I_0*R\n",
+ "V_s=200.0\n",
+ "a=V_0/V_s\n",
+ "r=a/(1-a)\n",
+ "\n",
+ "#Results\n",
+ "print(\"time ratio(T_on/T_off)=%.3f\" %r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time ratio(T_on/T_off)=2.333\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.5, Page No 390"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_o=660.0\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=(V_o/V_s)/(1+(V_o/V_s))\n",
+ "T_on=120\n",
+ "T=T_on/a\n",
+ "T_off=T-T_on \n",
+ "T_off=3*T_off\n",
+ "T_on=T-T_off\n",
+ "a=T_on/(T_on+T_off)\n",
+ "V_o=V_s*(a/(1-a)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"pulse width o/p voltage=%.0f us\" %T_off)\n",
+ "print(\"\\nnew o/p voltage=%.2f V\" %V_o)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "pulse width o/p voltage=120 us\n",
+ "\n",
+ "new o/p voltage=73.33 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.11 Page No 408"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1.0\n",
+ "L=.005\n",
+ "T_a=L/R\n",
+ "T=2000*10**-6\n",
+ "E=24.0\n",
+ "V_s=220\n",
+ "T_on=600*10**-6\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+(E/V_s)*((math.exp(T/T_a))-1))\n",
+ "if a1<a :\n",
+ " print(\"load current in continuous\")\n",
+ "else:\n",
+ " print(\"load current in discont.\")\n",
+ "\n",
+ "I_o=(a*V_s-E)/R \n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a)))-E/R \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1))-E/R \n",
+ "f=1/T\n",
+ "w=2*math.pi*f\n",
+ "I1=(2*V_s/(math.sqrt(2)*math.pi)*math.sin(math.radians(180*a)))/(math.sqrt(R**2+(w*L)**2)) \n",
+ "I2=(2*V_s/(2*math.sqrt(2)*math.pi)*math.sin(math.radians(2*180*a)))/(math.sqrt(R**2+(w*L*2)**2)) \n",
+ "I3=(2*V_s/(3*math.sqrt(2)*math.pi)*math.sin(math.radians(3*180*a)))/(math.sqrt(R**2+(w*L*3)**2)) \n",
+ "I_TAV=a*(V_s-E)/R-L*(I_mx-I_mn)/(R*T) \n",
+ "P1=I_TAV*V_s\n",
+ "P2=E*I_o\n",
+ "I_or=math.sqrt(I_o**2+I1**2+I2**2+I3**2)\n",
+ "\n",
+ "#Results\n",
+ "print(\"avg o/p current=%.2f A\" %I_o)\n",
+ "print(\"max value of steady current=%.2f A\" %I_mx)\n",
+ "print(\"min value of steady current=%.2f A\" %I_mn)\n",
+ "print(\"first harmonic current=%.4f A\" %I1)\n",
+ "print(\"second harmonic current=%.4f A\" %I2)\n",
+ "print(\"third harmonic current=%.5f A\" %I3)\n",
+ "print(\"avg supply current=%.4f A\" %I_TAV)\n",
+ "print(\"i/p power=%.2f W\" %P1)\n",
+ "print(\"power absorbed by load emf=%.0f W\" %P2)\n",
+ "print(\"power loss in resistor=%.2f W\" %(P1-P2))\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current in continuous\n",
+ "avg o/p current=42.00 A\n",
+ "max value of steady current=51.46 A\n",
+ "min value of steady current=33.03 A\n",
+ "first harmonic current=5.0903 A\n",
+ "second harmonic current=1.4983 A\n",
+ "third harmonic current=0.21643 A\n",
+ "avg supply current=12.7289 A\n",
+ "i/p power=2800.35 W\n",
+ "power absorbed by load emf=1008 W\n",
+ "power loss in resistor=1792.35 W\n",
+ "rms value of load current=42.334 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.12 Page No 411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=1\n",
+ "L=.001\n",
+ "V_s=220\n",
+ "E=72.0\n",
+ "f=500.0\n",
+ "T_on=800*10**-6\n",
+ "T_a=L/R\n",
+ "T=1.0/f\n",
+ "m=E/V_s\n",
+ "a=T_on/T\n",
+ "\n",
+ "#Calculations\n",
+ "a1=(T_a/T)*math.log(1+m*(math.exp(-T/T_a)-1))\n",
+ "if a1>a :\n",
+ " print(\"load current is continuous\")\n",
+ "else:\n",
+ " print(\"load current is discontinuous\")\n",
+ "\n",
+ "t_x=T_on+L*math.log(1+((V_s-E)/272)*(1-math.exp(-T_on/T_a)))\n",
+ " #Value of t_x wrongly calculated in the book so ans of V_o and I_o varies\n",
+ "V_o=a*V_s+(1-t_x/T)*E \n",
+ "I_o=(V_o-E)/R \n",
+ "I_mx=(V_s-E)/R*(1-math.exp(-T_on/T_a)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"avg o/p voltage=%.2f V\" %V_o)\n",
+ "print(\"avg o/p current=%.2f A\" %I_o) \n",
+ "print(\"max value of load current=%.1f A\" %I_mx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "load current is discontinuous\n",
+ "avg o/p voltage=121.77 V\n",
+ "avg o/p current=49.77 A\n",
+ "max value of load current=81.5 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.13, Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.2\n",
+ "V_s=500\n",
+ "E=a*V_s\n",
+ "L=0.06\n",
+ "I=10\n",
+ "\n",
+ "#Calculations\n",
+ "T_on=(L*I)/(V_s-E)\n",
+ "f=a/T_on \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.2f Hz\" %f)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=133.33 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.14 Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=0.5\n",
+ "pu=0.1 #pu ripple\n",
+ "\n",
+ "#Calculations\n",
+ " #x=T/T_a\n",
+ " #y=exp(-a*x)\n",
+ "y=(1-pu)/(1+pu)\n",
+ " #after solving\n",
+ "x=math.log(1/y)/a\n",
+ "f=1000\n",
+ "T=1/f\n",
+ "T_a=T/x\n",
+ "R=2\n",
+ "L=R*T_a\n",
+ "Li=0.002\n",
+ "Le=L-Li \n",
+ "\n",
+ "#Results\n",
+ "print(\"external inductance=%.3f mH\" %(Le*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "external inductance=-2.000 mH\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.15 Page No 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=0.015\n",
+ "T_a=L/R\n",
+ "f=1250.0\n",
+ "T=1.0/f\n",
+ "a=0.5\n",
+ "T_on=a*T\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_mx=(V_s/R)*((1-math.exp(-T_on/T_a))/(1-math.exp(-T/T_a))) \n",
+ "I_mn=(V_s/R)*((math.exp(T_on/T_a)-1)/(math.exp(T/T_a)-1)) \n",
+ "dI=I_mx-I_mn \n",
+ "V_o=a*V_s\n",
+ "I_o=V_o/R \n",
+ "I_or=math.sqrt(I_mx**2+dI**2/3+I_mx*dI) \n",
+ "I_chr=math.sqrt(a)*I_or \n",
+ "\n",
+ "#Results\n",
+ "print(\"Max value of ripple current=%.2f A\" %dI)\n",
+ "print(\"Max value of load current=%.3f A\" %I_mx)\n",
+ "print(\"Min value of load current=%.2f A\" %I_mn)\n",
+ "print(\"Avg value of load current=%.2f A\" %I_o) \n",
+ "print(\"rms value of load current=%.2f A\" %I_or)\n",
+ "print(\"rms value of chopper current=%.2f A\" %I_chr)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Max value of ripple current=2.92 A\n",
+ "Max value of load current=12.458 A\n",
+ "Min value of load current=9.54 A\n",
+ "Avg value of load current=11.00 A\n",
+ "rms value of load current=13.94 A\n",
+ "rms value of chopper current=9.86 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.17 Page No 417"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.0016\n",
+ "C=4*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "w=1/math.sqrt(L*C)\n",
+ "t=math.pi/w \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"time for which current flows=%.2f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "time for which current flows=251.33 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.18, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t_q=20.0*10**-6\n",
+ "dt=20.0*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t_q+dt\n",
+ "I_0=60.0\n",
+ "V_s=60.0\n",
+ "C=t_c*I_0/V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of commutating capacitor=%.0f uF\" %(C*10**6))\n",
+ "\n",
+ "L1=(V_s/I_0)**2*C\n",
+ "L2=(2*t_c/math.pi)**2/C\n",
+ "if L1>L2 :\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L1*10**6))\n",
+ "else:\n",
+ " print(\"value of commutating inductor=%.0f uH\" %(L2*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating capacitor=40 uF\n",
+ "value of commutating inductor=40 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.19, Page No 424"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=100.0*10**-6\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ " #V_s*(1-2*math.exp(-t/(R*C)))=0\n",
+ "C=-t/(R*math.log(1.0/2)) \n",
+ "L=(4/9.0)*C*R**2 \n",
+ "L=(1.0/4)*C*R**2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of comutating component C=%.3f uF\" %(C*10**6))\n",
+ "print(\"max permissible current through SCR is 2.5 times load current\")\n",
+ "print(\"value of comutating component L=%.1f uH\" %(L*10**6))\n",
+ "print(\"max permissible current through SCR is 1.5 times peak diode current\")\n",
+ "print(\"value of comutating component L=%.2f uH\" %(L*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of comutating component C=14.427 uF\n",
+ "max permissible current through SCR is 2.5 times load current\n",
+ "value of comutating component L=360.7 uH\n",
+ "max permissible current through SCR is 1.5 times peak diode current\n",
+ "value of comutating component L=360.67 uH\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.20, Page No 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T_on=800.0*10**-6\n",
+ "V_s=220.0\n",
+ "I_o=80.0\n",
+ "C=50*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+2*V_s*C/I_o \n",
+ "L=20*10**-6\n",
+ "C=50*10**-6\n",
+ "i_T1=I_o+V_s*math.sqrt(C/L) \n",
+ "i_TA=I_o \n",
+ "t_c=C*V_s/I_o \n",
+ "t_c1=(math.pi/2)*math.sqrt(L*C) \n",
+ "t=150*10**-6\n",
+ "v_c=I_o*t/C-V_s \n",
+ "\n",
+ "#Results \n",
+ "print(\"effective on period=%.0f us\" %(T*10**6))\n",
+ "print(\"peak current through main thyristor=%.2f A\" %i_T1)\n",
+ "print(\"peak current through auxillery thyristor=%.0f A\" %i_TA)\n",
+ "print(\"turn off time for main thyristor=%.1f us\" %(t_c*10**6))\n",
+ "print(\"turn off time for auxillery thyristor=%.3f us\" %(t_c1*10**6))\n",
+ "print(\"total commutation interval=%.0f us\" %(2*t_c*10**6))\n",
+ "print(\"capacitor voltage=%.0f V\" %v_c)\n",
+ "print(\"time nedded to recharge the capacitor=%.0f us\" %(2*V_s*C/I_o*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for firing angle = 30deg\n",
+ "avg output voltage=232.509 V\n",
+ "for firing angle = 60deg\n",
+ "avg output voltage=133.65 V\n",
+ "avg current rating=12 A\n",
+ "rms current rating=20.785 A\n",
+ "PIV of SCR=565.7 V\n",
+ "power dissipated=16.8 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 122
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.21, Page No 427"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_o=260.0\n",
+ "V_s=220.0\n",
+ "fos=2 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_off=18*10**-6\n",
+ "t_c=2*t_off\n",
+ "C=t_c*I_o/V_s \n",
+ "L=(V_s/(0.8*I_o))**2*C \n",
+ "f=400\n",
+ "a_mn=math.pi*f*math.sqrt(L*C)\n",
+ "V_omn=V_s*(a_mn+2*f*t_c) \n",
+ "V_omx=V_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"Value of C=%.3f uF\" %(C*10**6))\n",
+ "print(\"value of L=%.3f uH\" %(L*10**6))\n",
+ "print(\"min value of o/p voltage=%.3f V\" %V_omn)\n",
+ "print(\"max value of o/p voltage=%.0f V\" %V_omx)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "firing angle delay=47.461 deg\n",
+ "pf=0.646\n",
+ "firing angle delay=127.71 deg\n"
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.22, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "x=2.0\n",
+ "t_q=30*10**-6\n",
+ "dt=30*10**-6\n",
+ "t_c=t_q+dt\n",
+ "V_s=230.0\n",
+ "I_o=200.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "x=3\n",
+ "L=V_s*t_c/(x*I_o*(math.pi-2*math.asin(1/x))) \n",
+ "C=x*I_o*t_c/(V_s*(math.pi-2*math.asin(1/x))) \n",
+ "V_cp=V_s+I_o*math.sqrt(L/C) \n",
+ "I_cp=x*I_o \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.0f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n",
+ "print(\"value of commutating inductor=%.3f uH\" %(L*10**6))\n",
+ "print(\"value of commutating capacitor=%.3f uF\" %(C*10**6))\n",
+ "print(\"peak capacitor voltage=%.2f V\" %V_cp)\n",
+ "print(\"peak commutataing current=%.0f A\" %I_cp)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=307 V\n",
+ "peak commutataing current=600 A\n",
+ "value of commutating inductor=7.321 uH\n",
+ "value of commutating capacitor=49.822 uF\n",
+ "peak capacitor voltage=306.67 V\n",
+ "peak commutataing current=600 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.23, Page No 434"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesV_s=230\n",
+ "C=50*10**-6\n",
+ "L=20*10**-6\n",
+ "I_cp=V_s*math.sqrt(C/L)\n",
+ "I_o=200\n",
+ "x=I_cp/I_o\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=(math.pi-2*math.asin(1/x))*math.sqrt(C*L) \n",
+ "th1=math.degrees(math.asin(1.0/x))\n",
+ "t=(5*math.pi/2-th1*math.pi/180)*math.sqrt(L*C)+C*V_s*(1-math.cos(math.radians(th1)))/I_o \n",
+ "t=(math.pi-th1*math.pi/180)*math.sqrt(L*C) \n",
+ "\n",
+ "#Results\n",
+ "print(\"turn off time of main thyristor=%.2f us\" %(t_c*10**6))\n",
+ "print(\"total commutation interval=%.3f us\" %(t*10**6))\n",
+ "print(\"turn off time of auxillery thyristor=%.3f us\" %(t*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "turn off time of main thyristor=62.52 us\n",
+ "total commutation interval=80.931 us\n",
+ "turn off time of auxillery thyristor=80.931 us\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.24, Page No 440"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "tc=0.006\n",
+ "R=10.0\n",
+ "L=R*tc\n",
+ "f=2000.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=1/f\n",
+ "V_o=50.0\n",
+ "V_s=100.0\n",
+ "a=V_o/V_s\n",
+ "T_on=a*T\n",
+ "T_off=T-T_on\n",
+ "dI=V_o*T_off/L\n",
+ "I_o=V_o/R\n",
+ "I2=I_o+dI/2 \n",
+ "I1=I_o-dI/2 \n",
+ "\n",
+ "#Results\n",
+ "print(\"max value of load current=%.3f A\" %I2)\n",
+ "print(\"min value of load current=%.3f A\" %I1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of load current=5.104 A\n",
+ "min value of load current=4.896 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.27, Page No 443"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_a=30.0\n",
+ "r_a=.5\n",
+ "V_s=220.0\n",
+ "\n",
+ "#Calculations\n",
+ "a=I_a*r_a/V_s \n",
+ "a=1\n",
+ "k=.1 #V/rpm\n",
+ "N=(a*V_s-I_a*r_a)/k \n",
+ "\n",
+ "#Results\n",
+ "print(\"min value of duty cycle=%.3f\" %a)\n",
+ "print(\"min Value of speed control=%.0f rpm\" %0)\n",
+ "print(\"max value of duty cycle=%.0f\" %a)\n",
+ "print(\"max value of speed control=%.0f rpm\" %N)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min value of duty cycle=1.000\n",
+ "min Value of speed control=0 rpm\n",
+ "max value of duty cycle=1\n",
+ "max value of speed control=2050 rpm\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.28, Page No 444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_t=72.0\n",
+ "I_a=200.0\n",
+ "r_a=0.045\n",
+ "N=2500.0\n",
+ "\n",
+ "#Calculations\n",
+ "k=(V_t-I_a*r_a)/N\n",
+ "E_a=k*1000\n",
+ "L=.007\n",
+ "Rm=.045\n",
+ "Rb=0.065\n",
+ "R=Rm+Rb\n",
+ "T_a=L/R\n",
+ "I_mx=230\n",
+ "I_mn=180\n",
+ "T_on=-T_a*math.log(-((V_t-E_a)/R-I_mx)/((I_mn)-(V_t-E_a)/R))\n",
+ "R=Rm\n",
+ "T_a=L/R\n",
+ "T_off=-T_a*math.log(-((-E_a)/R-I_mn)/((I_mx)-(-E_a)/R))\n",
+ "T=T_on+T_off\n",
+ "f=1/T \n",
+ "a=T_on/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"chopping freq=%.1f Hz\" %f) \n",
+ "print(\"duty cycle ratio=%.3f\" %a)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "chopping freq=40.5 Hz\n",
+ "\n",
+ "duty cycle ratio=0.588\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.29, Page No 445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variablesI_mx=425\n",
+ "I_lt=180.0 #lower limit of current pulsation\n",
+ "I_mn=I_mx-I_lt\n",
+ "T_on=0.014\n",
+ "T_off=0.011\n",
+ "\n",
+ "#Calculations\n",
+ "T=T_on+T_off\n",
+ "T_a=.0635\n",
+ "a=T_on/T\n",
+ "V=(I_mx-I_mn*math.exp(-T_on/T_a))/(1-math.exp(-T_on/T_a))\n",
+ "a=.5\n",
+ "I_mn=(I_mx-V*(1-math.exp(-T_on/T_a)))/(math.exp(-T_on/T_a))\n",
+ "T=I_mx-I_mn \n",
+ "T=T_on/a\n",
+ "f=1/T \n",
+ "\n",
+ "#Results\n",
+ "print(\"higher limit of current pulsation=%.0f A\" %T)\n",
+ "print(\"chopping freq=%.3f Hz\" %f)\n",
+ "print(\"duty cycle ratio=%.2f\" %a)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "higher limit of current pulsation=0 A\n",
+ "chopping freq=35.714 Hz\n",
+ "duty cycle ratio=0.50\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter8.ipynb b/_Power_Electronics/Chapter8.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/_Power_Electronics/Chapter8.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter8_1.ipynb b/_Power_Electronics/Chapter8_1.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/_Power_Electronics/Chapter8_1.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter8_2.ipynb b/_Power_Electronics/Chapter8_2.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/_Power_Electronics/Chapter8_2.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter8_3.ipynb b/_Power_Electronics/Chapter8_3.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/_Power_Electronics/Chapter8_3.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter8_4.ipynb b/_Power_Electronics/Chapter8_4.ipynb
new file mode 100755
index 00000000..721a9faf
--- /dev/null
+++ b/_Power_Electronics/Chapter8_4.ipynb
@@ -0,0 +1,984 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 08 : Inverters"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3, Page No 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "T=0.1*10**-3\n",
+ "f=1.0/T\n",
+ "k=15*10**-6 #k=th/w\n",
+ "\n",
+ "#Calculations\n",
+ "th=2*math.pi*f*k\n",
+ "X_l=10.0\n",
+ "R=2.0\n",
+ "X_c=R*math.tan(th)+X_l\n",
+ "C=1/(2*math.pi*f*X_c) \n",
+ "\n",
+ "#Results\n",
+ "print(\"value of C=%.3f uF\" %(C*10**6))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of C=1.248 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 Page No 466"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi)\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "P_d=I_01**2*R \n",
+ "V=V_s/2\n",
+ "I_s=math.sqrt(2)*I_01/math.pi\n",
+ "P_s=V*I_s\n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to load=%.1f W\" %P_d)\n",
+ "print(\"power delivered by both sources=%.1f W\" %(2*P_s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to load=5359.9 W\n",
+ "power delivered by both sources=5359.9 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.5, Page No 468"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=4*V_s/(math.pi*math.sqrt(2))\n",
+ "R=1.0\n",
+ "X_L=6.0\n",
+ "X_c=7.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_c)**2)\n",
+ "P=I_01**2*R \n",
+ "I_s=math.sqrt(2)*I_01*(2*math.cos(math.radians(45)))/math.pi\n",
+ "P_s=V_s*I_s \n",
+ "\n",
+ "#Results\n",
+ "print(\"power delivered to the source=%.3f kW\" %(P/1000))\n",
+ "print(\"\\npower from the source=%.3f kW\" %(P_s/1000))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power delivered to the source=21.440 kW\n",
+ "\n",
+ "power from the source=21.440 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.6 Page No 469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_01=230.0\n",
+ "R=2.0\n",
+ "I_01=V_01/R\n",
+ "I_m=I_01*math.sqrt(2)\n",
+ "I_T1=I_m/2 \n",
+ "I_D1=0 \n",
+ "X_L=8.0\n",
+ "X_C=6.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=math.degrees(math.atan((X_L-X_C)/R))\n",
+ "I_T1=I_T1*math.sqrt(2)*0.47675 \n",
+ "I_D1=.1507025*I_m/math.sqrt(2) \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"when load R=2 ohm\")\n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.0f A\" %I_D1)\n",
+ "print(\"when load R=2ohm % X_L=8ohm and X_C=6ohm\")\n",
+ "print(\"rms value of thyristor current=%.3f A\" %I_T1)\n",
+ "print(\"rms value of diode current=%.3f A\" %I_D1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "when load R=2 ohm\n",
+ "rms value of thyristor current=54.83 A\n",
+ "rms value of diode current=17 A\n",
+ "when load R=2ohm % X_L=8ohm and X_C=6ohm\n",
+ "rms value of thyristor current=54.826 A\n",
+ "rms value of diode current=17.331 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 Page No 470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=4.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.035\n",
+ "\n",
+ "#Calculations\n",
+ "C=155*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_01=I_m1/math.sqrt(2) \n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2)\n",
+ "I_0=I_m/math.sqrt(2)\n",
+ "P_0=(I_0)**2*R \n",
+ "P_01=(I_01)**2*R \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=(phi1)*math.pi/(180*w) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of fundamental load current=%.2f A\" %I_01)\n",
+ "print(\"load power=%.1f W\" %P_0)\n",
+ "print(\"fundamental load power=%.1f W\" %P_01)\n",
+ "print(\"rms value of thyristor current=%.3f A\" %(I_m/2))\n",
+ "print(\"conduction time for thyristor=%.3f ms\" %(t1*1000))\n",
+ "print(\"Conduction time for diodes=%.3f ms\" %(t1*1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of fundamental load current=20.02 A\n",
+ "load power=1632.5 W\n",
+ "fundamental load power=1602.6 W\n",
+ "rms value of thyristor current=14.285 A\n",
+ "conduction time for thyristor=3.736 ms\n",
+ "Conduction time for diodes=3.736 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8, Page No 473"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_01=2*V_s/(math.sqrt(2)*math.pi) \n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_01=V_01/R\n",
+ "P=I_01**2*R \n",
+ "V_or=math.sqrt((V_s/2)**2)\n",
+ "P=V_or**2/R \n",
+ "I_TP=V_s/(2*R)\n",
+ "I_or=I_TP\n",
+ "pf=I_01**2*R/(V_or*I_or) \n",
+ "DF=V_01/V_or \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01\n",
+ "\n",
+ "#Results\n",
+ "print(\"fundamental rms o/p voltage=%.3f V\" %V_01)\n",
+ "print(\"fundamental power to load=%.1f W\" %P)\n",
+ "print(\"total o/p power to load=%.1f W\" %P)\n",
+ "print(\"avg SCR current=%.2f A\" %(I_TP*180/360))\n",
+ "print(\"i/p pf=%.3f\" %pf) \n",
+ "print(\"distortion factor=%.1f\" %DF)\n",
+ "print(\"THD=%.3f\" %THD) \n",
+ "print(\"harmonic factor=%.4f\" %HF)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "fundamental rms o/p voltage=103.536 V\n",
+ "fundamental power to load=1322.5 W\n",
+ "total o/p power to load=1322.5 W\n",
+ "avg SCR current=5.75 A\n",
+ "i/p pf=0.811\n",
+ "distortion factor=0.9\n",
+ "THD=0.483\n",
+ "harmonic factor=0.3333\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.9 Page No 474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=60\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi) \n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi) \n",
+ "P_o=V_or**2/R \n",
+ "P_01=V_01**2/R \n",
+ "I_s=V_s/R \n",
+ "I_avg=I_s*math.pi/(2*math.pi) \n",
+ "V_03=V_01/3\n",
+ "HF=V_03/V_01 \n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.0f V\" %V_or)\n",
+ "print(\"o/p power=%.0f W\" %P_o)\n",
+ "print(\"fundamental component of rms voltage=%.2f V\" %V_01)\n",
+ "print(\"fundamental freq o/p power=%.2f W\" %P_01) \n",
+ "print(\"peak current=%.0f A\" %I_s)\n",
+ "print(\"avg current of each transistor=%.0f A\" %I_avg)\n",
+ "print(\"peak reverse blocking voltage=%.0f V\" %V_s)\n",
+ "print(\"harmonic factor=%.4f\" %HF)\n",
+ "print(\"THD=%.4f\" %THD)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=60 V\n",
+ "o/p power=1200 W\n",
+ "fundamental component of rms voltage=54.02 V\n",
+ "fundamental freq o/p power=972.68 W\n",
+ "peak current=20 A\n",
+ "avg current of each transistor=10 A\n",
+ "peak reverse blocking voltage=60 V\n",
+ "harmonic factor=0.3333\n",
+ "THD=0.4834\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.10 Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "R=6.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "C=180*10**-6\n",
+ "X_L=w*L\n",
+ "X_C=1/(w*C)\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "V_oh=math.sqrt(V_or**2-V_01**2)\n",
+ "THD=V_oh/V_01 \n",
+ "print(\"THD of voltage=%.4f\" %THD)\n",
+ "DF=V_01/V_or \n",
+ "Z1=math.sqrt(R**2+(X_L-X_C)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L-X_C)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3-X_C/3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3-X_C/3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5-X_C/5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5-X_C/5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7-X_C/7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7-X_C/7)/R))\n",
+ "I_01=19.403\n",
+ "I_m1=4*V_s/(Z1*math.pi)\n",
+ "I_m3=4*V_s/(3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "I_or=I_m/math.sqrt(2)\n",
+ "I_oh=math.sqrt((I_m**2-I_m1**2)/2)\n",
+ "THD=I_oh/I_01 \n",
+ "DF=I_01/I_or \n",
+ "P_o=I_or**2*R \n",
+ "I_avg=P_o/V_s \n",
+ "t1=(180-phi1)*math.pi/(180*w) \n",
+ "t1=1/(2*f)-t1 \n",
+ "I_p=I_m1 \n",
+ "I_t1=.46135*I_p \n",
+ "\n",
+ "#Results\n",
+ "print(\"\\nDF=%.1f\" %DF)\n",
+ "print(\"THD of current=%.4f\" %THD) \n",
+ "print(\"DF=%.3f\" %DF)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"avg value of load current=%.2f A\" %I_avg)\n",
+ "print(\"conduction time for thyristor=%.0f ms\" %(t1*1000))\n",
+ "print(\"conduction time for diodes=%.0f ms\" %(t1*1000))\n",
+ "print(\"peak transistor current=%.2f A\" %I_p)\n",
+ "print(\"rms transistor current=%.2f A\" %I_t1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "THD of voltage=0.4834\n",
+ "\n",
+ "DF=1.0\n",
+ "THD of current=0.1557\n",
+ "DF=0.988\n",
+ "load power=2313.5 W\n",
+ "avg value of load current=10.52 A\n",
+ "conduction time for thyristor=3 ms\n",
+ "conduction time for diodes=3 ms\n",
+ "peak transistor current=27.44 A\n",
+ "rms transistor current=12.66 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.11 Page No 497"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=450.0\n",
+ "R=10.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_or=math.sqrt((V_s/(3*R))**2*2/3+(2*V_s/(3*R))**2*1/3) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(3*R))**2*2*math.pi/3+(2*V_s/(3*R))**2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "I_or=math.sqrt((1/(math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "I_T1=math.sqrt((1/(2*math.pi))*((V_s/(2*R))**2*2*math.pi/3)) \n",
+ "P=3*I_or**2*R \n",
+ "\n",
+ "#Results\n",
+ "print(\"for 180deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"power delivered to load=%.1f kW\" %(P/1000))\n",
+ "print(\"rms value of load current=%.0f A\" %I_T1)\n",
+ "print(\"for 120deg mode\")\n",
+ "print(\"rms value of load current=%.3f A\" %I_or)\n",
+ "print(\"rms value of load current=%.2f A\" %I_T1)\n",
+ "print(\"power delivered to load=%.3f kW\" %(P/1000))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "for 180deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "power delivered to load=10.1 kW\n",
+ "rms value of load current=13 A\n",
+ "for 120deg mode\n",
+ "rms value of load current=18.371 A\n",
+ "rms value of load current=12.99 A\n",
+ "power delivered to load=10.125 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.12, Page No 510"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "R=10.0\n",
+ "f=50.0\n",
+ "w=2*math.pi*f\n",
+ "L=0.03\n",
+ "\n",
+ "#Calculations\n",
+ "X_L=w*L\n",
+ "V_or=math.sqrt(V_s**2*math.pi/math.pi)\n",
+ "V_01=4*V_s/(math.sqrt(2)*math.pi)\n",
+ "Z1=math.sqrt(R**2+(X_L)**2)\n",
+ "phi1=-math.degrees(math.atan((X_L)/R))\n",
+ "Z3=math.sqrt(R**2+(X_L*3)**2)\n",
+ "phi3=math.degrees(math.atan((X_L*3)/R))\n",
+ "Z5=math.sqrt(R**2+(X_L*5)**2)\n",
+ "phi5=math.degrees(math.atan((X_L*5)/R))\n",
+ "Z7=math.sqrt(R**2+(X_L*7)**2)\n",
+ "phi7=math.degrees(math.atan((X_L*7)/R))\n",
+ "I_m1=4*V_s/(math.sqrt(2)*Z1*math.pi)\n",
+ "I_m3=4*V_s/(math.sqrt(2)*3*Z3*math.pi)\n",
+ "I_m5=4*V_s/(math.sqrt(2)*5*Z5*math.pi)\n",
+ "I_m7=4*V_s/(math.sqrt(2)*7*Z7*math.pi)\n",
+ "I_m=math.sqrt(I_m1**2+I_m3**2+I_m5**2+I_m7**2)\n",
+ "P=I_m**2*R \n",
+ "I_01=I_m1*math.sin(math.radians(45))\n",
+ "I_03=I_m3*math.sin(math.radians(3*45))\n",
+ "I_05=I_m5*math.sin(math.radians(5*45))\n",
+ "I_07=I_m7*math.sin(math.radians(7*45))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "g=(180-90)/3+45/2\n",
+ "I_01=2*I_m1*math.sin(math.radians(g))*math.sin(math.radians(45/2))\n",
+ "I_03=2*I_m3*math.sin(math.radians(g*3))*math.sin(math.radians(3*45/2))\n",
+ "I_05=2*I_m5*math.sin(math.radians(g*5))*math.sin(math.radians(5*45/2))\n",
+ "I_07=2*I_m7*math.sin(math.radians(g*7))*math.sin(math.radians(7*45/2))\n",
+ "I_0=(I_01**2+I_03**2+I_05**2+I_07**2)\n",
+ "P=I_0*R \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"using square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using quasi-square wave o/p\")\n",
+ "print(\"power delivered=%.2f W\" %P)\n",
+ "print(\"using two symmitrical spaced pulses\")\n",
+ "print(\"power delivered=%.2f W\" %P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "using square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using quasi-square wave o/p\n",
+ "power delivered=845.87 W\n",
+ "using two symmitrical spaced pulses\n",
+ "power delivered=845.87 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.14, Page No 520"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=50.0\n",
+ "T=1/f\n",
+ "I=0.5\n",
+ "\n",
+ "#Calculations\n",
+ "di=I/T #di=di/dt\n",
+ "V_s=220.0\n",
+ "L=V_s/di \n",
+ "t=20*10**-6\n",
+ "fos=2 #factor of safety\n",
+ "t_c=t*fos\n",
+ "R=10\n",
+ "C=t_c/(R*math.log(2))\n",
+ "\n",
+ "#Results \n",
+ "print(\"source inductance=%.1f H\" %L)\n",
+ "print(\"commutating capacitor=%.2f uF\" %(C*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "source inductance=8.8 H\n",
+ "commutating capacitor=5.77 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.15, Page No 539"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=10.0\n",
+ "L=.01\n",
+ "C=10*10**-6\n",
+ "#Calculations\n",
+ "if (R**2)<(4*L/C) :\n",
+ " print(\"ckt will commutate on its own\")\n",
+ "else:\n",
+ " print(\"ckt will not commutate on its own\")\n",
+ "\n",
+ "xie=R/(2*L)\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "phi=math.degrees(math.atan(xie/w_r))\n",
+ "t=math.pi/w_r\n",
+ "V_s=1\n",
+ "v_L=V_s*(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180+phi))\n",
+ "v_c=V_s*(1-(w_o/w_r)*math.exp(-xie*t)*math.cos(math.radians(180-phi))) \n",
+ "di=V_s/L \n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"voltage across inductor(*V_s)=%.5f V\" %v_L) \n",
+ "print(\"voltage across capacitor(*V_s)=%.5f V\" %v_c)\n",
+ "print(\"di/dt*V_s (for t=0)=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt will commutate on its own\n",
+ "voltage across inductor(*V_s)=-0.60468 V\n",
+ "voltage across capacitor(*V_s)=1.60468 V\n",
+ "di/dt*V_s (for t=0)=100 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.16, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "L=0.006\n",
+ "C=1.2*10**-6\n",
+ "R=100.0\n",
+ "\n",
+ "#Calculations\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=0.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=40\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "R=140\n",
+ "T=math.pi/math.sqrt(1/(L*C)-(R/(2*L))**2)\n",
+ "T_off=.2*10**-3\n",
+ "f=1/(2*(T+T_off)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"o/p freq=%.2f Hz\" %f)\n",
+ "print(\"for R=40ohm\")\n",
+ "print(\"upper limit o/p freq=%.1f Hz\" %f)\n",
+ "print(\"for R=140ohm\")\n",
+ "print(\"lower limit o/p freq=%.1f Hz\" %f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "o/p freq=239.81 Hz\n",
+ "for R=40ohm\n",
+ "upper limit o/p freq=239.8 Hz\n",
+ "for R=140ohm\n",
+ "lower limit o/p freq=239.8 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.17, Page No 540"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "f=5000.0\n",
+ "w=2*math.pi*f\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "L=60*10**-6\n",
+ "xie=R/(2*L)\n",
+ "C=7.5*10**-6\n",
+ "w_o=1/math.sqrt(L*C)\n",
+ "w_r=math.sqrt(w_o**2-xie**2)\n",
+ "t_c=math.pi*(1/w-1/w_r) \n",
+ "fos=1.5\n",
+ "t_q=10*10**-6\n",
+ "f_max=1/(2*math.pi*(t_q*fos/math.pi+1/w_r)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"ckt turn off time=%.2f us\" %(t_c*10**6))\n",
+ "print(\"max possible operating freq=%.1f Hz\" %f_max)\n",
+ " #Answers have small variations from that in the book due to difference in the rounding off of digits."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ckt turn off time=21.39 us\n",
+ "max possible operating freq=5341.4 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.18, Page No 541"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "a=30.0\n",
+ "R=10.0\n",
+ "P=5000.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_s=math.sqrt(P*R*2*math.pi/(2*3)/(math.pi/3+math.sqrt(3)*math.cos(math.radians(2*a))/2))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "I_or=math.sqrt(P*R)\n",
+ "V_s=I_or*math.pi/(math.sqrt(2)*3*math.cos(math.radians(a)))\n",
+ "V_ph=V_s/math.sqrt(3) \n",
+ "\n",
+ "#Results\n",
+ "print(\"per phase voltage V_ph=%.3f V\" %V_ph) \n",
+ "print(\"for constant load current\")\n",
+ "print(\"V_ph=%.2f V\" %V_ph)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "per phase voltage V_ph=110.384 V\n",
+ "for constant load current\n",
+ "V_ph=110.38 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.19, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "t=20.0\n",
+ "fos=2.0 #factor of safety\n",
+ "\n",
+ "#Calculations\n",
+ "t_c=t*fos\n",
+ "n=1.0/3\n",
+ "R=20.0\n",
+ "C=n**2*t_c/(4*R*math.log(2)) \n",
+ "\n",
+ "#Results \n",
+ "print(\"value of capacitor=%.2f uF\" %C)\n",
+ " #printing mistake in the answer in book."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of capacitor=0.08 uF\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.20, Page No 547"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=220.0\n",
+ "V_p=math.sqrt(2)*V_s/3 \n",
+ "V_L=math.sqrt(3)*V_p \n",
+ "V_p1=math.sqrt(2)*V_s/math.pi \n",
+ "V_L1=math.sqrt(3)*V_p1 \n",
+ "V_oh=math.sqrt(V_L**2-V_L1**2)\n",
+ "\n",
+ "#Calculations\n",
+ "THD=V_oh/V_L1 \n",
+ "V_a1=2*V_s/math.pi\n",
+ "V_a5=2*V_s/(5*math.pi)\n",
+ "V_a7=2*V_s/(7*math.pi)\n",
+ "V_a11=2*V_s/(11*math.pi)\n",
+ "R=4.0\n",
+ "L=0.02\n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "Z1=math.sqrt(R**2+(w*L)**2)\n",
+ "Z5=math.sqrt(R**2+(5*w*L)**2)\n",
+ "Z7=math.sqrt(R**2+(7*w*L)**2)\n",
+ "Z11=math.sqrt(R**2+(11*w*L)**2)\n",
+ "I_a1=V_a1/Z1\n",
+ "I_a5=V_a5/Z5\n",
+ "I_a7=V_a7/Z7\n",
+ "I_a11=V_a11/Z11\n",
+ "I_or=math.sqrt((I_a1**2+I_a5**2+I_a7**2+I_a11**2)/2)\n",
+ "P=3*I_or**2*R \n",
+ "I_s=P/V_s \n",
+ "I_TA=I_s/3 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of phasor voltages=%.2f V\" %V_p)\n",
+ "print(\"rms value of line voltages=%.2f V\" %V_L)\n",
+ "print(\"fundamental component of phase voltage=%.3f V\" %V_p1)\n",
+ "print(\"fundamental component of line voltages=%.3f V\" %V_L1)\n",
+ "print(\"THD=%.7f\" %THD)\n",
+ "print(\"load power=%.1f W\" %P)\n",
+ "print(\"avg value of source current=%.3f A\" %I_s)\n",
+ "print(\"avg value of thyristor current=%.3f A\" %I_TA)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of phasor voltages=103.71 V\n",
+ "rms value of line voltages=179.63 V\n",
+ "fundamental component of phase voltage=99.035 V\n",
+ "fundamental component of line voltages=171.533 V\n",
+ "THD=0.3108419\n",
+ "load power=2127.6 W\n",
+ "avg value of source current=9.671 A\n",
+ "avg value of thyristor current=3.224 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter9.ipynb b/_Power_Electronics/Chapter9.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/_Power_Electronics/Chapter9.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter9_1.ipynb b/_Power_Electronics/Chapter9_1.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/_Power_Electronics/Chapter9_1.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter9_2.ipynb b/_Power_Electronics/Chapter9_2.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/_Power_Electronics/Chapter9_2.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter9_3.ipynb b/_Power_Electronics/Chapter9_3.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/_Power_Electronics/Chapter9_3.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/Chapter9_4.ipynb b/_Power_Electronics/Chapter9_4.ipynb
new file mode 100755
index 00000000..052c4736
--- /dev/null
+++ b/_Power_Electronics/Chapter9_4.ipynb
@@ -0,0 +1,388 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : AC Voltage Controllers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_m/2)*math.sqrt(1/math.pi*((2*math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "V_o=math.sqrt(2)*V_s/(2*math.pi)*(math.cos(math.radians(a))-1)\n",
+ "I_ON=V_o/R \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.1f W\" %P_o)\n",
+ "print(\"i/p pf=%.4f\" %pf)\n",
+ "print(\"avg i/p current=%.4f A\" %I_ON)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=224.716 V\n",
+ "load power=2524.9 W\n",
+ "i/p pf=0.9770\n",
+ "avg i/p current=-0.7581 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 560"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=45.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=(V_s)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "R=20\n",
+ "I_or=V_or/R\n",
+ "P_o=I_or**2*R \n",
+ "I_s=I_or\n",
+ "VA=V_s*I_s\n",
+ "pf=P_o/VA \n",
+ "I_TA=math.sqrt(2)*V_s/(2*math.pi*R)*(math.cos(math.radians(a))+1) \n",
+ "I_Tr=math.sqrt(2)*V_s/(2*R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.3f V\" %V_or)\n",
+ "print(\"load power=%.2f W\" %P_o)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_Tr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=219.304 V\n",
+ "load power=2404.71 W\n",
+ "i/p pf=0.95\n",
+ "avg thyristor current=4.42 A\n",
+ "rms value of thyristor current=7.75 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3 Page No 564"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "n=6.0 #on cycles\n",
+ "m=4.0 #off cycles\n",
+ "\n",
+ "#Calculations\n",
+ "k=n/(n+m)\n",
+ "V_or=V_s*math.sqrt(k) \n",
+ "pf=math.sqrt(k) \n",
+ "R=15\n",
+ "I_m=V_s*math.sqrt(2)/R\n",
+ "I_TA=k*I_m/math.pi\n",
+ "I_TR=I_m*math.sqrt(k)/2 \n",
+ " \n",
+ "#Results\n",
+ "print(\"rms value of o/ voltage=%.2f V\" %V_or)\n",
+ "print(\"i/p pf=%.2f\" %pf)\n",
+ "print(\"avg thyristor current=%.2f A\" %I_TA) \n",
+ "print(\"rms value of thyristor current=%.2f A\" %I_TR)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/ voltage=178.16 V\n",
+ "i/p pf=0.77\n",
+ "avg thyristor current=4.14 A\n",
+ "rms value of thyristor current=8.40 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4, Page No 569"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "R=3.0\n",
+ "\n",
+ "#Calculations\n",
+ "I_TAM1=2*V_m/(2*math.pi*R) \n",
+ "I_TRM2=V_m/(2*R) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "t_c=math.pi/w \n",
+ " \n",
+ "#Results\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM1)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TRM2)\n",
+ "print(\"ckt turn off time=%.0f ms\" %(t_c*1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "max value of avg thyristor current=34.512 A\n",
+ "max value of avg thyristor current=54.212 A\n",
+ "ckt turn off time=10 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 575"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "R=3.0\n",
+ "X_L=4.0\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R)) \n",
+ "V_s=230\n",
+ "Z=math.sqrt(R**2+X_L**2)\n",
+ "I_or=V_s/Z \n",
+ "P=I_or**2*R \n",
+ "I_s=I_or\n",
+ "pf=P/(V_s*I_s) \n",
+ "I_TAM=math.sqrt(2)*V_s/(math.pi*Z) \n",
+ "I_Tm=math.sqrt(2)*V_s/(2*Z) \n",
+ "f=50\n",
+ "w=2*math.pi*f\n",
+ "di=math.sqrt(2)*V_s*w/Z \n",
+ "\n",
+ "#Results\n",
+ "print(\"min firing angle=%.2f deg\" %phi)\n",
+ "print(\"\\nmax firing angle=%.0f deg\" %180)\n",
+ "print(\"i/p pf=%.1f\" %pf)\n",
+ "print(\"max value of rms load current=%.0f A\" %I_or)\n",
+ "print(\"max power=%.0f W\" %P)\n",
+ "print(\"max value of avg thyristor current=%.3f A\" %I_TAM)\n",
+ "print(\"max value of rms thyristor current=%.3f A\" %I_Tm)\n",
+ "print(\"di/dt=%.0f A/s\" %di)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "min firing angle=53.13 deg\n",
+ "\n",
+ "max firing angle=180 deg\n",
+ "i/p pf=0.6\n",
+ "max value of rms load current=46 A\n",
+ "max power=6348 W\n",
+ "max value of avg thyristor current=20.707 A\n",
+ "max value of rms thyristor current=32.527 A\n",
+ "di/dt=20437 A/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 Page No 576"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V=230.0\n",
+ "R=3.0 #ohm\n",
+ "X_L=5.0 #ohm\n",
+ "a=120.0 #firing angle delay\n",
+ "\n",
+ "#Calculations\n",
+ "phi=math.degrees(math.atan(X_L/R))\n",
+ "b=0\n",
+ "i=1\n",
+ "while (i>0) :\n",
+ " LHS=math.sin(math.radians(b-a))\n",
+ " RHS=math.sin(math.radians(a-phi))*math.exp(-(R/X_L)*(b-a)*math.pi/180)\n",
+ " if math.fabs(LHS-RHS)<= 0.01 :\n",
+ " B=b\n",
+ " i=2\n",
+ " break\n",
+ " \n",
+ " b=b+.1 \n",
+ "V_or=math.sqrt(2)*V*math.sqrt((1/(2*math.pi))*((B-a)*math.pi/180+(math.sin(math.radians(2*a))-math.sin(math.radians(2*B)))/2))\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"Extinction angle=%.1f deg\" %B) #answer in the book is wrong as formulae for RHS is wrongly employed\n",
+ "print(\"rms value of output voltage=%.2f V\" %V_or) #answer do not match due to wrong B in book\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Extinction angle=156.1 deg\n",
+ "rms value of output voltage=97.75 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8, Page No 581"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "V_s=230.0\n",
+ "V_m=math.sqrt(2)*V_s\n",
+ "a=60.0\n",
+ "R=20.0\n",
+ "\n",
+ "#Calculations\n",
+ "V_or=math.sqrt((V_m**2/(2*math.pi))*(a*math.pi/180-math.sin(math.radians(2*a))/2)+(2*V_m**2/(math.pi))*(math.pi-a*math.pi/180+math.sin(math.radians(2*a))/2)) \n",
+ "I_T1r=(V_m/R)*math.sqrt(1/math.pi*((math.pi-a*math.pi/180)+math.sin(math.radians(2*a))/2)) \n",
+ "I_T3r=(V_m/(2*R))*math.sqrt(1/math.pi*((a*math.pi/180)-math.sin(math.radians(2*a))/2)) \n",
+ "I1=math.sqrt(2)*I_T1r\n",
+ "I3=math.sqrt((math.sqrt(2)*I_T1r)**2+(math.sqrt(2)*I_T3r)**2)\n",
+ "r=V_s*(I1+I3) \n",
+ "P_o=V_or**2/R\n",
+ "pf=P_o/r \n",
+ "\n",
+ "#Results\n",
+ "print(\"rms value of o/p voltage=%.2f V\" %V_or)\n",
+ "print(\"rms value of current for upper thyristors=%.2f A\" %I_T1r)\n",
+ "print(\"rms value of current for lower thyristors=%.2f A\" %I_T3r)\n",
+ "print(\"t/f VA rating=%.2f VA\" %r)\n",
+ "print(\"i/p pf=%.2f\" %pf)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "rms value of o/p voltage=424.94 V\n",
+ "rms value of current for upper thyristors=14.59 A\n",
+ "rms value of current for lower thyristors=3.60 A\n",
+ "t/f VA rating=9631.61 VA\n",
+ "i/p pf=0.94\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/_Power_Electronics/screenshots/Chapter2.png b/_Power_Electronics/screenshots/Chapter2.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter2.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter2_1.png b/_Power_Electronics/screenshots/Chapter2_1.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter2_1.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter2_2.png b/_Power_Electronics/screenshots/Chapter2_2.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter2_2.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter2_3.png b/_Power_Electronics/screenshots/Chapter2_3.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter2_3.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter2_4.png b/_Power_Electronics/screenshots/Chapter2_4.png
new file mode 100755
index 00000000..9380fbcb
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter2_4.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter3.png b/_Power_Electronics/screenshots/Chapter3.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter3.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter3_1.png b/_Power_Electronics/screenshots/Chapter3_1.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter3_1.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter3_2.png b/_Power_Electronics/screenshots/Chapter3_2.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter3_2.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter3_3.png b/_Power_Electronics/screenshots/Chapter3_3.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter3_3.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter3_4.png b/_Power_Electronics/screenshots/Chapter3_4.png
new file mode 100755
index 00000000..cef740d3
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter3_4.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter4.png b/_Power_Electronics/screenshots/Chapter4.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter4.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter4_1.png b/_Power_Electronics/screenshots/Chapter4_1.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter4_1.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter4_2.png b/_Power_Electronics/screenshots/Chapter4_2.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter4_2.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter4_3.png b/_Power_Electronics/screenshots/Chapter4_3.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter4_3.png
Binary files differ
diff --git a/_Power_Electronics/screenshots/Chapter4_4.png b/_Power_Electronics/screenshots/Chapter4_4.png
new file mode 100755
index 00000000..a1d64cf1
--- /dev/null
+++ b/_Power_Electronics/screenshots/Chapter4_4.png
Binary files differ
diff --git a/mechanics_of_fluid/Chapter1-.ipynb b/mechanics_of_fluid/Chapter1-.ipynb
new file mode 100755
index 00000000..9483f3d7
--- /dev/null
+++ b/mechanics_of_fluid/Chapter1-.ipynb
@@ -0,0 +1,151 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b9f90dbe8cdd3ac15f14ed9a5dcea4d99b8c522db4806d23bf359fc881d94c73"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1-Fundamental concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate denisty of air and its mass\n",
+ "p=2.*10**5; ## Pa\n",
+ "T=300.; ## K\n",
+ "R=287.; ## J/(kg.K)\n",
+ "V=3.; ## m^3\n",
+ "\n",
+ "rho=p/(R*T);\n",
+ "print'%s %.2f %s'%('The density of air =',rho,'kg/m^3')\n",
+ "m=rho*V;\n",
+ "print'%s %.2f %s'%('Its mass =',m,'m^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of air = 2.32 kg/m^3\n",
+ "Its mass = 6.97 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate gas constant Co ,Co2 ,No,N2o\n",
+ "M_C=12.;\n",
+ "M_N=14.;\n",
+ "M_O=16.;\n",
+ "R=8314.; ## J/(kg.K)\n",
+ "\n",
+ "M_CO=M_C+M_O;\n",
+ "R_CO=R/M_CO;\n",
+ "\n",
+ "M_CO2=M_C+2.*M_O;\n",
+ "R_CO2=R/M_CO2;\n",
+ "\n",
+ "M_NO=M_N+M_O;\n",
+ "R_NO=R/M_NO;\n",
+ "\n",
+ "M_N2O=2.*M_N+M_O;\n",
+ "R_N2O=R/M_N2O;\n",
+ "\n",
+ "print'%s %.1f %s'%('Gas constant for CO =',R_CO,'J/(kg.K)')\n",
+ "print'%s %.1f %s'%('Gas constant for CO2 =',R_CO2,'J/(kg.K)')\n",
+ "print'%s %.1f %s'%(\"Gas constant for NO =\",R_NO,\"J/(kg.K)\")\n",
+ "print'%s %.1f %s'%(\"Gas constant for N2O =\",R_N2O,\"J/(kg.K)\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gas constant for CO = 296.9 J/(kg.K)\n",
+ "Gas constant for CO2 = 189.0 J/(kg.K)\n",
+ "Gas constant for NO = 277.1 J/(kg.K)\n",
+ "Gas constant for N2O = 189.0 J/(kg.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate reynodls number and prove the \n",
+ "d=0.004; ## m\n",
+ "rho=1000; ## kg/m^3\n",
+ "v=3; ## m/s\n",
+ "meu=10**(-3); ## khm(m.s)\n",
+ "\n",
+ "Re=rho*v*d/meu; \n",
+ "print'%s %.f %s'%(\"Reynolds number =\",Re,\"\")\n",
+ "\n",
+ "print(\"The Reynolds number is well in excess of 4000, so the flow is turbulent.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 12000 \n",
+ "The Reynolds number is well in excess of 4000, so the flow is turbulent.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter1-_1.ipynb b/mechanics_of_fluid/Chapter1-_1.ipynb
new file mode 100755
index 00000000..9483f3d7
--- /dev/null
+++ b/mechanics_of_fluid/Chapter1-_1.ipynb
@@ -0,0 +1,151 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:b9f90dbe8cdd3ac15f14ed9a5dcea4d99b8c522db4806d23bf359fc881d94c73"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1-Fundamental concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate denisty of air and its mass\n",
+ "p=2.*10**5; ## Pa\n",
+ "T=300.; ## K\n",
+ "R=287.; ## J/(kg.K)\n",
+ "V=3.; ## m^3\n",
+ "\n",
+ "rho=p/(R*T);\n",
+ "print'%s %.2f %s'%('The density of air =',rho,'kg/m^3')\n",
+ "m=rho*V;\n",
+ "print'%s %.2f %s'%('Its mass =',m,'m^3')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The density of air = 2.32 kg/m^3\n",
+ "Its mass = 6.97 m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate gas constant Co ,Co2 ,No,N2o\n",
+ "M_C=12.;\n",
+ "M_N=14.;\n",
+ "M_O=16.;\n",
+ "R=8314.; ## J/(kg.K)\n",
+ "\n",
+ "M_CO=M_C+M_O;\n",
+ "R_CO=R/M_CO;\n",
+ "\n",
+ "M_CO2=M_C+2.*M_O;\n",
+ "R_CO2=R/M_CO2;\n",
+ "\n",
+ "M_NO=M_N+M_O;\n",
+ "R_NO=R/M_NO;\n",
+ "\n",
+ "M_N2O=2.*M_N+M_O;\n",
+ "R_N2O=R/M_N2O;\n",
+ "\n",
+ "print'%s %.1f %s'%('Gas constant for CO =',R_CO,'J/(kg.K)')\n",
+ "print'%s %.1f %s'%('Gas constant for CO2 =',R_CO2,'J/(kg.K)')\n",
+ "print'%s %.1f %s'%(\"Gas constant for NO =\",R_NO,\"J/(kg.K)\")\n",
+ "print'%s %.1f %s'%(\"Gas constant for N2O =\",R_N2O,\"J/(kg.K)\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gas constant for CO = 296.9 J/(kg.K)\n",
+ "Gas constant for CO2 = 189.0 J/(kg.K)\n",
+ "Gas constant for NO = 277.1 J/(kg.K)\n",
+ "Gas constant for N2O = 189.0 J/(kg.K)\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate reynodls number and prove the \n",
+ "d=0.004; ## m\n",
+ "rho=1000; ## kg/m^3\n",
+ "v=3; ## m/s\n",
+ "meu=10**(-3); ## khm(m.s)\n",
+ "\n",
+ "Re=rho*v*d/meu; \n",
+ "print'%s %.f %s'%(\"Reynolds number =\",Re,\"\")\n",
+ "\n",
+ "print(\"The Reynolds number is well in excess of 4000, so the flow is turbulent.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 12000 \n",
+ "The Reynolds number is well in excess of 4000, so the flow is turbulent.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter10.ipynb b/mechanics_of_fluid/Chapter10.ipynb
new file mode 100755
index 00000000..9502b293
--- /dev/null
+++ b/mechanics_of_fluid/Chapter10.ipynb
@@ -0,0 +1,355 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0abcc423492072a54fb770a61520bf727ac4ace788fa5f2dbb0a6db0caff8ec2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Flow with free surfaces"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The depth of the water under the brigde and the depth of water upstream\n",
+ "Q=400.; ## m^3/s\n",
+ "b2=20.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "b1=25.; ## m\n",
+ "\n",
+ "h2=(Q/b2/math.sqrt(g))**(2./3.);\n",
+ "## Since energy is conserved\n",
+ "## h1 + u1^2/2g = h2 +u2^2/2g = h2 + h2/2 = 3h2/2\n",
+ "\n",
+ "## h1 + 1/2*g*(Q/(b1h1))^2 = 3*h2/2;\n",
+ "\n",
+ "## h1^3-5.16*h1^2+13.05 = 0;\n",
+ "\n",
+ "## By solving this cubic equation\n",
+ "\n",
+ "h1=4.52; ## m\n",
+ "\n",
+ "print'%s %.1f %s'%(\" The depth of the water under the brigde =\",h2,\"m\")\n",
+ "\n",
+ "\n",
+ "print'%s %.2f %s'%(\" the depth of water upstream =\",h1,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The depth of the water under the brigde = 3.4 m\n",
+ " the depth of water upstream = 4.52 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Rate of flow \n",
+ "w=0.04; ## thickness of block in m\n",
+ "d=0.07; ## depth of liquid in m\n",
+ "b=0.4; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "H=d-w; \n",
+ "\n",
+ "Q=1.705*b*H**(3/2.);\n",
+ "\n",
+ "u1=Q/d/b;\n",
+ "h=u1**2/(2.*g);\n",
+ "\n",
+ "H1=H+h;\n",
+ "\n",
+ "Q1=1.705*b*H1**(3/2.);\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Rate of flow =\",Q1,\" m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 0.0037 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate depth of water at the throat and the new flow rate and the Froude number at the throat and flow rate\n",
+ "h1=0.45; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "b1=0.8; ## m\n",
+ "h2=0.35; ## m\n",
+ "b2=0.3; ## m\n",
+ "print(\"the flow rate\")\n",
+ "Q=math.sqrt((h1-h2)*2*g/(-(1./(h1*b1)**2)+(1./(h2*b2)**2)));\n",
+ "print'%s %.3f %s'%(\"Flow rate =\",Q,\"m^3/s\")\n",
+ "\n",
+ "\n",
+ "print(\" the Froude number at the throat\")\n",
+ "Fr2=Q/(math.sqrt(g)*b2*h2**(3/2.));\n",
+ "print'%s %.3f %s'%(\"The Froude number at the throat =\",Fr2,\"\")\n",
+ "\n",
+ "\n",
+ "print(\"the depth of water at the throat\")\n",
+ "\n",
+ "## (h1/h2)^(3) + 1/2*(b2/b1)^2 = 3/2*(h1/h2)^2\n",
+ "\n",
+ "## The solution for the above eqn is as follows\n",
+ "## (h1/h2) = 0.5 + cos(2arcsin(b2/b1)/3)\n",
+ "\n",
+ "## h1/h2=1.467\n",
+ "\n",
+ "h2_new=h1/1.467;\n",
+ "print'%s %.3f %s'%(\"Depth of water at the throat =\",h2_new,\"m\")\n",
+ "\n",
+ "print(\"the new flow rate\")\n",
+ "w=math.sqrt(g)*b2*h2_new**(3/2.);\n",
+ "print'%s %.3f %s'%(\"New flow rate =\",Q,\"m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the flow rate\n",
+ "Flow rate = 0.154 m^3/s\n",
+ " the Froude number at the throat\n",
+ "The Froude number at the throat = 0.790 \n",
+ "the depth of water at the throat\n",
+ "Depth of water at the throat = 0.307 m\n",
+ "the new flow rate\n",
+ "New flow rate = 0.154 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate depth\n",
+ "Q=8.75; ## m^3/s\n",
+ "w=5.; ## m\n",
+ "n=0.0015; \n",
+ "s=1./5000.;\n",
+ "\n",
+ "## Q/(w*h0) = u = m^(2/3)*i^(1/2)/n = 1/0.015*(w*h0/(w+2*h0))^(2/3)*sqrt(s);\n",
+ "## Solution by trial gives h0\n",
+ "h0=1.8; ## m\n",
+ "\n",
+ "q=1.75;\n",
+ "g=9.81;\n",
+ "hc=(q**2/g)**(1/3); ## critical depth\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Depth =\",h0,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Depth = 1.8 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wave length\n",
+ "g=9.81; ## m/s^2\n",
+ "T=5.; ## s\n",
+ "h=4.; ## m\n",
+ "\n",
+ "## lambda=g*T^2/(2*%pi)*tanh(2*%pi*h/lambda1);\n",
+ "## by trial method , we get \n",
+ "lambda1=28.04;\n",
+ "\n",
+ "D=g*T**2/(2*math.pi)*math.tanh(2*math.pi*h/lambda1);\n",
+ "print'%s %.1f %s'%(\"Wavelength =\",D,\"m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength = 27.9 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EX6-pg470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate phase velocity and wave length\n",
+ "g=9.81; ## m/s^2\n",
+ "T=12; ## s\n",
+ "\n",
+ "c=g*T/(2*math.pi);\n",
+ "\n",
+ "D=c*T;\n",
+ "\n",
+ "print\"%s %.1f %s\"%(\"Phase velocity =\",c,\"m/s\")\n",
+ "\n",
+ "\n",
+ "print\"%s %.1f %s\"%(\"Wavelength =\",D,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Phase velocity = 18.7 m/s\n",
+ "Wavelength = 224.8 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Estimate the time elapsed since the waves were generated in a storm occurring 800 km out to sea and Estimate the depth at which the waves begin to be significantly influenced by the sea bed as they approach the shore\n",
+ "c=18.74; ## m/s\n",
+ "lambd=225.; ## m\n",
+ "\n",
+ "print(\"Estimate the time elapsed since the waves were generated in a storm occurring 800 km out to sea. \")\n",
+ "\n",
+ "x=800.*10**3.; ## m\n",
+ "cg=c/2.;\n",
+ "\n",
+ "t=x/cg;\n",
+ "\n",
+ "print\"%s %.1f %s\"%(\"time elapsed =\",t/3600.,\"hours\")\n",
+ "\n",
+ "\n",
+ "print(\"Estimate the depth at which the waves begin to be significantly influenced by the sea bed as they approach the shore.\")\n",
+ "\n",
+ "h1=lambd/2.;\n",
+ "\n",
+ "h2=lambd/(2.*math.pi)*math.atanh(0.99);\n",
+ "\n",
+ "print\"%s %.1f %s %.1f %s\"%(\"The answers show that h lies in the range between about\",h2,\"m , \",h1, \"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimate the time elapsed since the waves were generated in a storm occurring 800 km out to sea. \n",
+ "time elapsed = 23.7 hours\n",
+ "Estimate the depth at which the waves begin to be significantly influenced by the sea bed as they approach the shore.\n",
+ "The answers show that h lies in the range between about 94.8 m , 112.5 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter10_1.ipynb b/mechanics_of_fluid/Chapter10_1.ipynb
new file mode 100755
index 00000000..9502b293
--- /dev/null
+++ b/mechanics_of_fluid/Chapter10_1.ipynb
@@ -0,0 +1,355 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0abcc423492072a54fb770a61520bf727ac4ace788fa5f2dbb0a6db0caff8ec2"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter10-Flow with free surfaces"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The depth of the water under the brigde and the depth of water upstream\n",
+ "Q=400.; ## m^3/s\n",
+ "b2=20.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "b1=25.; ## m\n",
+ "\n",
+ "h2=(Q/b2/math.sqrt(g))**(2./3.);\n",
+ "## Since energy is conserved\n",
+ "## h1 + u1^2/2g = h2 +u2^2/2g = h2 + h2/2 = 3h2/2\n",
+ "\n",
+ "## h1 + 1/2*g*(Q/(b1h1))^2 = 3*h2/2;\n",
+ "\n",
+ "## h1^3-5.16*h1^2+13.05 = 0;\n",
+ "\n",
+ "## By solving this cubic equation\n",
+ "\n",
+ "h1=4.52; ## m\n",
+ "\n",
+ "print'%s %.1f %s'%(\" The depth of the water under the brigde =\",h2,\"m\")\n",
+ "\n",
+ "\n",
+ "print'%s %.2f %s'%(\" the depth of water upstream =\",h1,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The depth of the water under the brigde = 3.4 m\n",
+ " the depth of water upstream = 4.52 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Rate of flow \n",
+ "w=0.04; ## thickness of block in m\n",
+ "d=0.07; ## depth of liquid in m\n",
+ "b=0.4; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "H=d-w; \n",
+ "\n",
+ "Q=1.705*b*H**(3/2.);\n",
+ "\n",
+ "u1=Q/d/b;\n",
+ "h=u1**2/(2.*g);\n",
+ "\n",
+ "H1=H+h;\n",
+ "\n",
+ "Q1=1.705*b*H1**(3/2.);\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Rate of flow =\",Q1,\" m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of flow = 0.0037 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg455"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate depth of water at the throat and the new flow rate and the Froude number at the throat and flow rate\n",
+ "h1=0.45; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "b1=0.8; ## m\n",
+ "h2=0.35; ## m\n",
+ "b2=0.3; ## m\n",
+ "print(\"the flow rate\")\n",
+ "Q=math.sqrt((h1-h2)*2*g/(-(1./(h1*b1)**2)+(1./(h2*b2)**2)));\n",
+ "print'%s %.3f %s'%(\"Flow rate =\",Q,\"m^3/s\")\n",
+ "\n",
+ "\n",
+ "print(\" the Froude number at the throat\")\n",
+ "Fr2=Q/(math.sqrt(g)*b2*h2**(3/2.));\n",
+ "print'%s %.3f %s'%(\"The Froude number at the throat =\",Fr2,\"\")\n",
+ "\n",
+ "\n",
+ "print(\"the depth of water at the throat\")\n",
+ "\n",
+ "## (h1/h2)^(3) + 1/2*(b2/b1)^2 = 3/2*(h1/h2)^2\n",
+ "\n",
+ "## The solution for the above eqn is as follows\n",
+ "## (h1/h2) = 0.5 + cos(2arcsin(b2/b1)/3)\n",
+ "\n",
+ "## h1/h2=1.467\n",
+ "\n",
+ "h2_new=h1/1.467;\n",
+ "print'%s %.3f %s'%(\"Depth of water at the throat =\",h2_new,\"m\")\n",
+ "\n",
+ "print(\"the new flow rate\")\n",
+ "w=math.sqrt(g)*b2*h2_new**(3/2.);\n",
+ "print'%s %.3f %s'%(\"New flow rate =\",Q,\"m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the flow rate\n",
+ "Flow rate = 0.154 m^3/s\n",
+ " the Froude number at the throat\n",
+ "The Froude number at the throat = 0.790 \n",
+ "the depth of water at the throat\n",
+ "Depth of water at the throat = 0.307 m\n",
+ "the new flow rate\n",
+ "New flow rate = 0.154 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg460"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate depth\n",
+ "Q=8.75; ## m^3/s\n",
+ "w=5.; ## m\n",
+ "n=0.0015; \n",
+ "s=1./5000.;\n",
+ "\n",
+ "## Q/(w*h0) = u = m^(2/3)*i^(1/2)/n = 1/0.015*(w*h0/(w+2*h0))^(2/3)*sqrt(s);\n",
+ "## Solution by trial gives h0\n",
+ "h0=1.8; ## m\n",
+ "\n",
+ "q=1.75;\n",
+ "g=9.81;\n",
+ "hc=(q**2/g)**(1/3); ## critical depth\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Depth =\",h0,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Depth = 1.8 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate wave length\n",
+ "g=9.81; ## m/s^2\n",
+ "T=5.; ## s\n",
+ "h=4.; ## m\n",
+ "\n",
+ "## lambda=g*T^2/(2*%pi)*tanh(2*%pi*h/lambda1);\n",
+ "## by trial method , we get \n",
+ "lambda1=28.04;\n",
+ "\n",
+ "D=g*T**2/(2*math.pi)*math.tanh(2*math.pi*h/lambda1);\n",
+ "print'%s %.1f %s'%(\"Wavelength =\",D,\"m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Wavelength = 27.9 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "EX6-pg470"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate phase velocity and wave length\n",
+ "g=9.81; ## m/s^2\n",
+ "T=12; ## s\n",
+ "\n",
+ "c=g*T/(2*math.pi);\n",
+ "\n",
+ "D=c*T;\n",
+ "\n",
+ "print\"%s %.1f %s\"%(\"Phase velocity =\",c,\"m/s\")\n",
+ "\n",
+ "\n",
+ "print\"%s %.1f %s\"%(\"Wavelength =\",D,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Phase velocity = 18.7 m/s\n",
+ "Wavelength = 224.8 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Estimate the time elapsed since the waves were generated in a storm occurring 800 km out to sea and Estimate the depth at which the waves begin to be significantly influenced by the sea bed as they approach the shore\n",
+ "c=18.74; ## m/s\n",
+ "lambd=225.; ## m\n",
+ "\n",
+ "print(\"Estimate the time elapsed since the waves were generated in a storm occurring 800 km out to sea. \")\n",
+ "\n",
+ "x=800.*10**3.; ## m\n",
+ "cg=c/2.;\n",
+ "\n",
+ "t=x/cg;\n",
+ "\n",
+ "print\"%s %.1f %s\"%(\"time elapsed =\",t/3600.,\"hours\")\n",
+ "\n",
+ "\n",
+ "print(\"Estimate the depth at which the waves begin to be significantly influenced by the sea bed as they approach the shore.\")\n",
+ "\n",
+ "h1=lambd/2.;\n",
+ "\n",
+ "h2=lambd/(2.*math.pi)*math.atanh(0.99);\n",
+ "\n",
+ "print\"%s %.1f %s %.1f %s\"%(\"The answers show that h lies in the range between about\",h2,\"m , \",h1, \"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimate the time elapsed since the waves were generated in a storm occurring 800 km out to sea. \n",
+ "time elapsed = 23.7 hours\n",
+ "Estimate the depth at which the waves begin to be significantly influenced by the sea bed as they approach the shore.\n",
+ "The answers show that h lies in the range between about 94.8 m , 112.5 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter11.ipynb b/mechanics_of_fluid/Chapter11.ipynb
new file mode 100755
index 00000000..fd043621
--- /dev/null
+++ b/mechanics_of_fluid/Chapter11.ipynb
@@ -0,0 +1,433 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a7351edf5e2fdcb0afd4d02f998ad2152ac8acdf9928739e63efa7de906e2b49"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-Compressible Flow of Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate \"Density at plane 1 and tagnation temperature and temperautre and density\n",
+ "p1=1.5*10**5; ## N/m^2\n",
+ "R=287.; ## J/kg.K\n",
+ "T1=271.; ## K\n",
+ "\n",
+ "rho1=p1/R/T1; \n",
+ "print'%s %.1f %s'%(\"Density at plane 1 =\",rho1,\"kg/m^3\")\n",
+ "\n",
+ "\n",
+ "print(\"the stagnation temperature\")\n",
+ "\n",
+ "u1=270.; ## m/s\n",
+ "cp=1005.; ## J/Kg.K\n",
+ "\n",
+ "T0=T1+u1**2./(2.*cp);\n",
+ "print'%s %.1f %s'%(\"The stagnation temperature =\",T0,\"K\")\n",
+ "\n",
+ "\n",
+ "print(\"the temperature and density at plane 2\")\n",
+ "\n",
+ "u2=320; ## m/s\n",
+ "p2=1.2*10**5; ## N/m^2\n",
+ "\n",
+ "T2=T0-u2**2/(2*cp);\n",
+ "print'%s %.1f %s'%(\"Temperature = \",T2,\"K\")\n",
+ "\n",
+ "\n",
+ "rho2=p2/(R*T2);\n",
+ "print'%s %.2f %s'%(\"density =\",rho2,\"kg/m^3\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density at plane 1 = 1.9 kg/m^3\n",
+ "the stagnation temperature\n",
+ "The stagnation temperature = 307.3 K\n",
+ "the temperature and density at plane 2\n",
+ "Temperature = 256.3 K\n",
+ "density = 1.63 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Deflection angle and the final Mach number and the pressure ratio across the wave\n",
+ "y=1.4;\n",
+ "R=287.; ## J/kg.K\n",
+ "T1=238.; ## K\n",
+ "u1=773.; ## m/s\n",
+ "beta1=38.; ## degrees\n",
+ "cp=1005.; ## J/kg.K\n",
+ "\n",
+ "a1=math.sqrt(y*R*T1);\n",
+ "M1=u1/a1;\n",
+ "\n",
+ "beta2=math.atan(math.tan(beta1)*((2.+(y-1.)*M1**2.*(math.sin(beta1))**2.)/((y+1.)*M1**2.*(math.sin(beta1))**2.)));\n",
+ "\n",
+ "deflection_angle=beta1-beta2;\n",
+ "print'%s %.1f %s'%(\"Deflection angle =\",deflection_angle,\"degrees\")\n",
+ "\n",
+ "\n",
+ "print(\"the final Mach number\")\n",
+ "\n",
+ "u2=u1*math.cos(beta1)/math.cos(beta2);\n",
+ "\n",
+ "T2=T1+1./(2.*cp)*(u1**2.-u2**2.);\n",
+ "a2=math.sqrt(y*R*T2);\n",
+ "\n",
+ "M2=u2/a2;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Final Mach number =\",M2,\"\")\n",
+ "\n",
+ "\n",
+ "print(\" the pressure ratio across the wave.\")\n",
+ "ratio=T2/T1*(math.tan(beta1)/math.tan(beta2));\n",
+ "print'%s %.2f %s'%(\"Pressure ratio =\",ratio,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection angle = 37.5 degrees\n",
+ "the final Mach number\n",
+ "Final Mach number = 3.02 \n",
+ " the pressure ratio across the wave.\n",
+ "Pressure ratio = 0.47 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Pressure after the bend\n",
+ "M1=1.8;\n",
+ "theta1=20.73; ## degrees\n",
+ "theta2=30.73; ## degrees\n",
+ "M2=2.162;\n",
+ "p1=50; ## kPa\n",
+ "y=1.4;\n",
+ "\n",
+ "p2=p1*((1.+(y-1.)/2.*M1**2.)/(1.+(y-1.)/2.*M2**2.))**(y/(y-1.));\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Pressure after the bend =\",p2,\"kPa\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure after the bend = 28.5 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the pressures in the reservoir and at the nozzle throat and Pressure in the reservoir and Pressure at the nozzle throat and the temperature and velocity of the air at the exit \n",
+ "p=28*10**3; ## N/m^2 \n",
+ "y=1.4;\n",
+ "M1=2.4;\n",
+ "M2=1.;\n",
+ "T0=291.; ## K\n",
+ "R=287.; ## J/kg.K\n",
+ "\n",
+ "print(\"the pressures in the reservoir and at the nozzle throat\")\n",
+ "\n",
+ "p0=p*(1+(y-1)/2*M1**2)**(y/(y-1));\n",
+ "pc=p0*(1+(y-1)/2*M2**2)**(-y/(y-1));\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Pressure in the reservoir =\",p0,\"N/m^2\")\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Pressure at the nozzle throat =\",pc,\"N/m^2\")\n",
+ "\n",
+ "\n",
+ "print(\"the temperature and velocity of the air at the exit.\")\n",
+ "\n",
+ "T=T0*(1+(y-1)/2*M1**2)**(-1);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Temperature =\",T,\"K\")\n",
+ "\n",
+ "\n",
+ "a=math.sqrt(y*R*T)\n",
+ "\n",
+ "u=M1*a;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Velocity =\",u,\"m/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the pressures in the reservoir and at the nozzle throat\n",
+ "Pressure in the reservoir = 409360.53 N/m^2\n",
+ "Pressure at the nozzle throat = 216257.71 N/m^2\n",
+ "the temperature and velocity of the air at the exit.\n",
+ "Temperature = 135.2 K\n",
+ "Velocity = 559.4 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Mach number before the shock and Stagnation Pressure\n",
+ "M_He=1.8;\n",
+ "y_He=5/3;\n",
+ "y_air=1.4;\n",
+ "p2=30; ## kPa\n",
+ "\n",
+ "## (A/At)=(1+(y-1)/2*M^2)^((y+1)/(y-1))/M^2*(2/(y+1))^((y+1)/(y-1))\n",
+ "\n",
+ "## = (1+1/3*1.8^2)^(4)/1.8^(2)*(3/4)^(4) = 1.828 for helium\n",
+ "\n",
+ "## = (1+0.2*M^2)^6/M^2*1/1.2^6 for air\n",
+ "## Hence by trial \n",
+ "\n",
+ "M1=1.715;\n",
+ "print'%s %.3f %s'%(\"Mach number before the shock =\",M1,\"\")\n",
+ "\n",
+ "\n",
+ "p1=p2/((2*y_air*M1**2-(y_air-1))/(y_air+1));\n",
+ "\n",
+ "p0_1=p1*(1+(y_air-1)/2*M1**2)**(y_air/(y_air-1));\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Stagnation Pressure =\",p0_1,\"kPa\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mach number before the shock = 1.715 \n",
+ "Stagnation Pressure = 46.4 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg538"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the value of the friction factor for the pipe and friction factor and the overall length of the pipe, L, if the flow exhausts to atmosphere\n",
+ "p0=510.; ## kPa\n",
+ "pA=500.; ## kPa\n",
+ "pB=280.; ## kPa\n",
+ "d=0.02; ## m\n",
+ "l_max=12.; ## m\n",
+ "\n",
+ "print(\" the value of the friction factor for the pipe\");\n",
+ "\n",
+ "## At A, pA/p0 = 500/510 = 0.980. From the Isentropic Flow Tables (Appendix 3), M_A = 0.17.\n",
+ "\n",
+ "pC=pA*0.1556;\n",
+ "\n",
+ "## From the Fanno Tables at pc/pB = 0.278,M_B = 0.302 and (fl_maxP/A)B = 5.21. For a circular pipe P/A=4/d\n",
+ "M_B=0.302;\n",
+ "f=(21.37-5.21)/l_max/4*d;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"friction factor =\",f,\"\")\n",
+ "\n",
+ "\n",
+ "print(\" the overall length of the pipe, L, if the flow exhausts to atmosphere\")\n",
+ "\n",
+ "p=100; ## kPa\n",
+ "\n",
+ "## At exit, pc/p = 77.8/100 = 0.778. From the Fanno Tables, (fl_maxP/A) = 0.07\n",
+ "L=l_max*(21.37-0.07)/(21.37-5.21);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Overall Length =\",L,\"m\")\n",
+ "\n",
+ "print(\" the mass flow rate if the reservoir temperature is 294 K.\")\n",
+ "T0=294.; ## K\n",
+ "R=287.; ## J/kg.K\n",
+ "y=1.4;\n",
+ "M=0.302;\n",
+ "\n",
+ "m=math.pi/4.*d**2.*pB*10.**3.*M_B*(y*(1.+(y-1.)*M**2./2.)/R/T0)**(1/2.);\n",
+ "print'%s %.3f %s'%(\"mass flow rate =\",m,\"kg/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the value of the friction factor for the pipe\n",
+ "friction factor = 0.007 \n",
+ " the overall length of the pipe, L, if the flow exhausts to atmosphere\n",
+ "Overall Length = 15.8 m\n",
+ " the mass flow rate if the reservoir temperature is 294 K.\n",
+ "mass flow rate = 0.109 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg542"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Diameter of pipe and Entry and Exit Mach number and at various points\n",
+ "p1=8.*10.**5.; ## N/m**2\n",
+ "p2=5.*10.**5.; ## N/m**2\n",
+ "f=0.006;\n",
+ "l=145.; ## m\n",
+ "m=0.32; ## kg/s\n",
+ "R=287.; ## J/kg.K\n",
+ "T=288.; ## K\n",
+ "y=1.4;\n",
+ "\n",
+ "d=(4.*f*l*m**2.*R*T/(math.pi/4.)**2./(p1**2.-p2**2.))**(1/5.);\n",
+ "print'%s %.3f %s'%(\" Diameter of pipe =\",d,\"m\")\n",
+ "\n",
+ "rho=p1/R/T;\n",
+ "A=math.pi/4.*d**2.;\n",
+ "u=m/rho/A;\n",
+ "\n",
+ "a=math.sqrt(y*R*T);\n",
+ "\n",
+ "M1=u/a;\n",
+ "M2=p1/p2*M1;\n",
+ "\n",
+ "print(\" Entry and Exit Mach number =\")\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Entry Mach number =\",M1,\"\")\n",
+ "\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Exit Mach number =\",M2,\"\")\n",
+ "\n",
+ "print(\" Determine the pressure halfway along the pipe.\")\n",
+ "px=math.sqrt((p1**2.+p2**2.)/2.);\n",
+ "print'%s %.1f %s'%(\"Pressure =\",px,\"N/m**2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diameter of pipe = 0.041 m\n",
+ " Entry and Exit Mach number =\n",
+ "Entry Mach number = 0.072 \n",
+ "Exit Mach number = 0.12 \n",
+ " Determine the pressure halfway along the pipe.\n",
+ "Pressure = 667083.2 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter11_1.ipynb b/mechanics_of_fluid/Chapter11_1.ipynb
new file mode 100755
index 00000000..fd043621
--- /dev/null
+++ b/mechanics_of_fluid/Chapter11_1.ipynb
@@ -0,0 +1,433 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a7351edf5e2fdcb0afd4d02f998ad2152ac8acdf9928739e63efa7de906e2b49"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter11-Compressible Flow of Gases"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate \"Density at plane 1 and tagnation temperature and temperautre and density\n",
+ "p1=1.5*10**5; ## N/m^2\n",
+ "R=287.; ## J/kg.K\n",
+ "T1=271.; ## K\n",
+ "\n",
+ "rho1=p1/R/T1; \n",
+ "print'%s %.1f %s'%(\"Density at plane 1 =\",rho1,\"kg/m^3\")\n",
+ "\n",
+ "\n",
+ "print(\"the stagnation temperature\")\n",
+ "\n",
+ "u1=270.; ## m/s\n",
+ "cp=1005.; ## J/Kg.K\n",
+ "\n",
+ "T0=T1+u1**2./(2.*cp);\n",
+ "print'%s %.1f %s'%(\"The stagnation temperature =\",T0,\"K\")\n",
+ "\n",
+ "\n",
+ "print(\"the temperature and density at plane 2\")\n",
+ "\n",
+ "u2=320; ## m/s\n",
+ "p2=1.2*10**5; ## N/m^2\n",
+ "\n",
+ "T2=T0-u2**2/(2*cp);\n",
+ "print'%s %.1f %s'%(\"Temperature = \",T2,\"K\")\n",
+ "\n",
+ "\n",
+ "rho2=p2/(R*T2);\n",
+ "print'%s %.2f %s'%(\"density =\",rho2,\"kg/m^3\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Density at plane 1 = 1.9 kg/m^3\n",
+ "the stagnation temperature\n",
+ "The stagnation temperature = 307.3 K\n",
+ "the temperature and density at plane 2\n",
+ "Temperature = 256.3 K\n",
+ "density = 1.63 kg/m^3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg509"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Deflection angle and the final Mach number and the pressure ratio across the wave\n",
+ "y=1.4;\n",
+ "R=287.; ## J/kg.K\n",
+ "T1=238.; ## K\n",
+ "u1=773.; ## m/s\n",
+ "beta1=38.; ## degrees\n",
+ "cp=1005.; ## J/kg.K\n",
+ "\n",
+ "a1=math.sqrt(y*R*T1);\n",
+ "M1=u1/a1;\n",
+ "\n",
+ "beta2=math.atan(math.tan(beta1)*((2.+(y-1.)*M1**2.*(math.sin(beta1))**2.)/((y+1.)*M1**2.*(math.sin(beta1))**2.)));\n",
+ "\n",
+ "deflection_angle=beta1-beta2;\n",
+ "print'%s %.1f %s'%(\"Deflection angle =\",deflection_angle,\"degrees\")\n",
+ "\n",
+ "\n",
+ "print(\"the final Mach number\")\n",
+ "\n",
+ "u2=u1*math.cos(beta1)/math.cos(beta2);\n",
+ "\n",
+ "T2=T1+1./(2.*cp)*(u1**2.-u2**2.);\n",
+ "a2=math.sqrt(y*R*T2);\n",
+ "\n",
+ "M2=u2/a2;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Final Mach number =\",M2,\"\")\n",
+ "\n",
+ "\n",
+ "print(\" the pressure ratio across the wave.\")\n",
+ "ratio=T2/T1*(math.tan(beta1)/math.tan(beta2));\n",
+ "print'%s %.2f %s'%(\"Pressure ratio =\",ratio,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Deflection angle = 37.5 degrees\n",
+ "the final Mach number\n",
+ "Final Mach number = 3.02 \n",
+ " the pressure ratio across the wave.\n",
+ "Pressure ratio = 0.47 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg515"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Pressure after the bend\n",
+ "M1=1.8;\n",
+ "theta1=20.73; ## degrees\n",
+ "theta2=30.73; ## degrees\n",
+ "M2=2.162;\n",
+ "p1=50; ## kPa\n",
+ "y=1.4;\n",
+ "\n",
+ "p2=p1*((1.+(y-1.)/2.*M1**2.)/(1.+(y-1.)/2.*M2**2.))**(y/(y-1.));\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Pressure after the bend =\",p2,\"kPa\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure after the bend = 28.5 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg525"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the pressures in the reservoir and at the nozzle throat and Pressure in the reservoir and Pressure at the nozzle throat and the temperature and velocity of the air at the exit \n",
+ "p=28*10**3; ## N/m^2 \n",
+ "y=1.4;\n",
+ "M1=2.4;\n",
+ "M2=1.;\n",
+ "T0=291.; ## K\n",
+ "R=287.; ## J/kg.K\n",
+ "\n",
+ "print(\"the pressures in the reservoir and at the nozzle throat\")\n",
+ "\n",
+ "p0=p*(1+(y-1)/2*M1**2)**(y/(y-1));\n",
+ "pc=p0*(1+(y-1)/2*M2**2)**(-y/(y-1));\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Pressure in the reservoir =\",p0,\"N/m^2\")\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Pressure at the nozzle throat =\",pc,\"N/m^2\")\n",
+ "\n",
+ "\n",
+ "print(\"the temperature and velocity of the air at the exit.\")\n",
+ "\n",
+ "T=T0*(1+(y-1)/2*M1**2)**(-1);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Temperature =\",T,\"K\")\n",
+ "\n",
+ "\n",
+ "a=math.sqrt(y*R*T)\n",
+ "\n",
+ "u=M1*a;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Velocity =\",u,\"m/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the pressures in the reservoir and at the nozzle throat\n",
+ "Pressure in the reservoir = 409360.53 N/m^2\n",
+ "Pressure at the nozzle throat = 216257.71 N/m^2\n",
+ "the temperature and velocity of the air at the exit.\n",
+ "Temperature = 135.2 K\n",
+ "Velocity = 559.4 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Mach number before the shock and Stagnation Pressure\n",
+ "M_He=1.8;\n",
+ "y_He=5/3;\n",
+ "y_air=1.4;\n",
+ "p2=30; ## kPa\n",
+ "\n",
+ "## (A/At)=(1+(y-1)/2*M^2)^((y+1)/(y-1))/M^2*(2/(y+1))^((y+1)/(y-1))\n",
+ "\n",
+ "## = (1+1/3*1.8^2)^(4)/1.8^(2)*(3/4)^(4) = 1.828 for helium\n",
+ "\n",
+ "## = (1+0.2*M^2)^6/M^2*1/1.2^6 for air\n",
+ "## Hence by trial \n",
+ "\n",
+ "M1=1.715;\n",
+ "print'%s %.3f %s'%(\"Mach number before the shock =\",M1,\"\")\n",
+ "\n",
+ "\n",
+ "p1=p2/((2*y_air*M1**2-(y_air-1))/(y_air+1));\n",
+ "\n",
+ "p0_1=p1*(1+(y_air-1)/2*M1**2)**(y_air/(y_air-1));\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Stagnation Pressure =\",p0_1,\"kPa\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mach number before the shock = 1.715 \n",
+ "Stagnation Pressure = 46.4 kPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg538"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the value of the friction factor for the pipe and friction factor and the overall length of the pipe, L, if the flow exhausts to atmosphere\n",
+ "p0=510.; ## kPa\n",
+ "pA=500.; ## kPa\n",
+ "pB=280.; ## kPa\n",
+ "d=0.02; ## m\n",
+ "l_max=12.; ## m\n",
+ "\n",
+ "print(\" the value of the friction factor for the pipe\");\n",
+ "\n",
+ "## At A, pA/p0 = 500/510 = 0.980. From the Isentropic Flow Tables (Appendix 3), M_A = 0.17.\n",
+ "\n",
+ "pC=pA*0.1556;\n",
+ "\n",
+ "## From the Fanno Tables at pc/pB = 0.278,M_B = 0.302 and (fl_maxP/A)B = 5.21. For a circular pipe P/A=4/d\n",
+ "M_B=0.302;\n",
+ "f=(21.37-5.21)/l_max/4*d;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"friction factor =\",f,\"\")\n",
+ "\n",
+ "\n",
+ "print(\" the overall length of the pipe, L, if the flow exhausts to atmosphere\")\n",
+ "\n",
+ "p=100; ## kPa\n",
+ "\n",
+ "## At exit, pc/p = 77.8/100 = 0.778. From the Fanno Tables, (fl_maxP/A) = 0.07\n",
+ "L=l_max*(21.37-0.07)/(21.37-5.21);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Overall Length =\",L,\"m\")\n",
+ "\n",
+ "print(\" the mass flow rate if the reservoir temperature is 294 K.\")\n",
+ "T0=294.; ## K\n",
+ "R=287.; ## J/kg.K\n",
+ "y=1.4;\n",
+ "M=0.302;\n",
+ "\n",
+ "m=math.pi/4.*d**2.*pB*10.**3.*M_B*(y*(1.+(y-1.)*M**2./2.)/R/T0)**(1/2.);\n",
+ "print'%s %.3f %s'%(\"mass flow rate =\",m,\"kg/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " the value of the friction factor for the pipe\n",
+ "friction factor = 0.007 \n",
+ " the overall length of the pipe, L, if the flow exhausts to atmosphere\n",
+ "Overall Length = 15.8 m\n",
+ " the mass flow rate if the reservoir temperature is 294 K.\n",
+ "mass flow rate = 0.109 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg542"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Diameter of pipe and Entry and Exit Mach number and at various points\n",
+ "p1=8.*10.**5.; ## N/m**2\n",
+ "p2=5.*10.**5.; ## N/m**2\n",
+ "f=0.006;\n",
+ "l=145.; ## m\n",
+ "m=0.32; ## kg/s\n",
+ "R=287.; ## J/kg.K\n",
+ "T=288.; ## K\n",
+ "y=1.4;\n",
+ "\n",
+ "d=(4.*f*l*m**2.*R*T/(math.pi/4.)**2./(p1**2.-p2**2.))**(1/5.);\n",
+ "print'%s %.3f %s'%(\" Diameter of pipe =\",d,\"m\")\n",
+ "\n",
+ "rho=p1/R/T;\n",
+ "A=math.pi/4.*d**2.;\n",
+ "u=m/rho/A;\n",
+ "\n",
+ "a=math.sqrt(y*R*T);\n",
+ "\n",
+ "M1=u/a;\n",
+ "M2=p1/p2*M1;\n",
+ "\n",
+ "print(\" Entry and Exit Mach number =\")\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Entry Mach number =\",M1,\"\")\n",
+ "\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Exit Mach number =\",M2,\"\")\n",
+ "\n",
+ "print(\" Determine the pressure halfway along the pipe.\")\n",
+ "px=math.sqrt((p1**2.+p2**2.)/2.);\n",
+ "print'%s %.1f %s'%(\"Pressure =\",px,\"N/m**2\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Diameter of pipe = 0.041 m\n",
+ " Entry and Exit Mach number =\n",
+ "Entry Mach number = 0.072 \n",
+ "Exit Mach number = 0.12 \n",
+ " Determine the pressure halfway along the pipe.\n",
+ "Pressure = 667083.2 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter12-.ipynb b/mechanics_of_fluid/Chapter12-.ipynb
new file mode 100755
index 00000000..2905ba7e
--- /dev/null
+++ b/mechanics_of_fluid/Chapter12-.ipynb
@@ -0,0 +1,141 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1f6973f8c8d9996abb4c23a2c5352b16bfcd60086af954d2e49808504d3171d0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHapter12-Unsteady Flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg557"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Time for which flow into the tank continues after the power failure \n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "Q=0.05; ## m^3/s\n",
+ "d=0.15; ## m^2\n",
+ "h=8.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "l=90.; ## m\n",
+ "f=0.007;\n",
+ "\n",
+ "u1=Q/(math.pi/4.*d**2.);\n",
+ "\n",
+ "def function(u):\n",
+ "\tfun=(1./((h*g/l)+(2.*f/d)*u**2))\n",
+ "\treturn fun\n",
+ "\n",
+ "t=scipy.integrate.quad(function,u1,0)\n",
+ "\n",
+ "\n",
+ "print(\"Time for which flow into the tank continues after the power failure is\" )\n",
+ "print'%s %.1f %s'%(\" \",-t[0],\"s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time for which flow into the tank continues after the power failure is\n",
+ " 2.6 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg588"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Estimate the height of tank required\n",
+ "\n",
+ "print(\"Estimate the height of tank required\")\n",
+ "\n",
+ "f=0.006;\n",
+ "l=1400.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "d1=0.75; ## m\n",
+ "d2=3.; ## m\n",
+ "Q=1.2; ## m^3/s\n",
+ "a=20.; ## m\n",
+ "\n",
+ "K=4*f*l/(2*g*d1);\n",
+ "\n",
+ "## 2*K*Y = l*a/(g*A) = 8.919 s^2\n",
+ "\n",
+ "## Y=2*K*Y/2*K\n",
+ "\n",
+ "Y=8.919/(2*K);\n",
+ "## When t=0\n",
+ "\n",
+ "u0=Q/(math.pi/4*d1**2);\n",
+ "\n",
+ "y0=K*u0**2;\n",
+ "\n",
+ "C=-Y/K/math.exp(y0/Y);\n",
+ "\n",
+ "## To determine the height of the surge tank, we consider the condition y = y_max when u = 0. \n",
+ "\n",
+ "## 0 = 1/K*(y_max+Y) + C*exp(y_max/Y)\n",
+ "\n",
+ "## From the above eqn we get\n",
+ "\n",
+ "y_max=-Y;\n",
+ "\n",
+ "H=a-y_max;\n",
+ "print'%s %.1f %s'%(\"The minimum height of the surge tank =\",H,\"m\")\n",
+ "\n",
+ "\n",
+ "print(\"The actual design height should exceed the minimum required, say 23 m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimate the height of tank required\n",
+ "The minimum height of the surge tank = 22.0 m\n",
+ "The actual design height should exceed the minimum required, say 23 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter12-_1.ipynb b/mechanics_of_fluid/Chapter12-_1.ipynb
new file mode 100755
index 00000000..2905ba7e
--- /dev/null
+++ b/mechanics_of_fluid/Chapter12-_1.ipynb
@@ -0,0 +1,141 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1f6973f8c8d9996abb4c23a2c5352b16bfcd60086af954d2e49808504d3171d0"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHapter12-Unsteady Flow"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg557"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Time for which flow into the tank continues after the power failure \n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "Q=0.05; ## m^3/s\n",
+ "d=0.15; ## m^2\n",
+ "h=8.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "l=90.; ## m\n",
+ "f=0.007;\n",
+ "\n",
+ "u1=Q/(math.pi/4.*d**2.);\n",
+ "\n",
+ "def function(u):\n",
+ "\tfun=(1./((h*g/l)+(2.*f/d)*u**2))\n",
+ "\treturn fun\n",
+ "\n",
+ "t=scipy.integrate.quad(function,u1,0)\n",
+ "\n",
+ "\n",
+ "print(\"Time for which flow into the tank continues after the power failure is\" )\n",
+ "print'%s %.1f %s'%(\" \",-t[0],\"s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Time for which flow into the tank continues after the power failure is\n",
+ " 2.6 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg588"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Estimate the height of tank required\n",
+ "\n",
+ "print(\"Estimate the height of tank required\")\n",
+ "\n",
+ "f=0.006;\n",
+ "l=1400.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "d1=0.75; ## m\n",
+ "d2=3.; ## m\n",
+ "Q=1.2; ## m^3/s\n",
+ "a=20.; ## m\n",
+ "\n",
+ "K=4*f*l/(2*g*d1);\n",
+ "\n",
+ "## 2*K*Y = l*a/(g*A) = 8.919 s^2\n",
+ "\n",
+ "## Y=2*K*Y/2*K\n",
+ "\n",
+ "Y=8.919/(2*K);\n",
+ "## When t=0\n",
+ "\n",
+ "u0=Q/(math.pi/4*d1**2);\n",
+ "\n",
+ "y0=K*u0**2;\n",
+ "\n",
+ "C=-Y/K/math.exp(y0/Y);\n",
+ "\n",
+ "## To determine the height of the surge tank, we consider the condition y = y_max when u = 0. \n",
+ "\n",
+ "## 0 = 1/K*(y_max+Y) + C*exp(y_max/Y)\n",
+ "\n",
+ "## From the above eqn we get\n",
+ "\n",
+ "y_max=-Y;\n",
+ "\n",
+ "H=a-y_max;\n",
+ "print'%s %.1f %s'%(\"The minimum height of the surge tank =\",H,\"m\")\n",
+ "\n",
+ "\n",
+ "print(\"The actual design height should exceed the minimum required, say 23 m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimate the height of tank required\n",
+ "The minimum height of the surge tank = 22.0 m\n",
+ "The actual design height should exceed the minimum required, say 23 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter13.ipynb b/mechanics_of_fluid/Chapter13.ipynb
new file mode 100755
index 00000000..4bd1ca7e
--- /dev/null
+++ b/mechanics_of_fluid/Chapter13.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6ab6ca7ec50b12b4ad5664b1412855d8b1bafd30fee8faf6c1773c772ff215d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter13-Fluid Machines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg618"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Hydraulic Efficiency and Overall Efficiency and Outlet angles of the guide vanes and Rotor blade angle at inlet and oulet\n",
+ "\n",
+ "## Maximum hydraulic efficiency occurs for minimum pressure loss, that is, when\n",
+ "\n",
+ "## dp1/dQ=2.38Q-1.43=0\n",
+ "\n",
+ "Q_opt=1.43/2.38;\n",
+ "\n",
+ "p1_min=1.19*Q_opt**2-1.43*Q_opt+0.47; ## MPa\n",
+ "\n",
+ "rho=1000.; ## kg/m**3\n",
+ "g=9.81; ## m/s**2\n",
+ "w=69.1; ## rad/s\n",
+ "P=200.*10.**3.; ## W\n",
+ "Ohm_P=0.565; ## rad\n",
+ "d=0.5; ## m\n",
+ "h=0.06; ## m\n",
+ "\n",
+ "p1=p1_min*10.**6./(rho*g); ## mH2O, coversion of units\n",
+ "\n",
+ "H=(w*P**(1/2.)/(rho**(1/2.)*Ohm_P))**(4/5.)/g;\n",
+ "\n",
+ "Hydraulic_efficiency=(H-p1)/H;\n",
+ "print'%s %.3f %s'%(\"Hydraulic Efficiency =\",Hydraulic_efficiency,\"\")\n",
+ "\n",
+ "\n",
+ "Overall_efficiency=P/(Q_opt*rho*g*H);\n",
+ "print'%s %.3f %s'%(\"Overall Efficiency =\",Overall_efficiency,\"\")\n",
+ "\n",
+ "\n",
+ "H_Euler=H-p1;\n",
+ "\n",
+ "u1=w*0.25;\n",
+ "v_w1=g*H_Euler/u1;\n",
+ "A=math.pi*d*h*0.95; \n",
+ "v_r=Q_opt/A;\n",
+ "\n",
+ "alpha1=math.atan(v_r/v_w1);\n",
+ "print'%s %.3f %s'%(\"Outlet angles of the guide vanes =\",alpha1,\"degrees\")\n",
+ "\n",
+ "beta1=math.atan(v_r/(v_w1-u1));\n",
+ "print'%s %.2f %s'%(\"Rotor blade angle at inlet =\",beta1,\"degrees\")\n",
+ "\n",
+ "u2=w*0.325/2;\n",
+ "beta2=math.atan(v_r/u2);\n",
+ "print'%s %.3f %s'%(\"Rotor blade angle at outlet =\",beta2,\"degrees\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hydraulic Efficiency = 0.896 \n",
+ "Overall Efficiency = 0.855 \n",
+ "Outlet angles of the guide vanes = 0.321 degrees\n",
+ "Rotor blade angle at inlet = 1.16 degrees\n",
+ "Rotor blade angle at outlet = 0.539 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Overall efficiency and Limiting value for the height of the draft tube above\n",
+ "w=6.25;\n",
+ "D=0.75; ## m\n",
+ "gv_angle=15; ## guide vane angle in degrees\n",
+ "g=9.81; ## m/s^2\n",
+ "H=27.5; ## m\n",
+ "A1=0.2; ## m^2\n",
+ "rho=1000.; ## kg/m^3\n",
+ "p_atm=101.3*10**3.;\n",
+ "p_min=35.*10.**3.;\n",
+ "\n",
+ "u1=math.pi*w*D;\n",
+ "v1=u1*math.sin(105.)/math.sin(60.);\n",
+ "v_r1=v1*math.sin(gv_angle);\n",
+ "v_w1=v1*math.cos(gv_angle);\n",
+ "v_w2=0.;\n",
+ "\n",
+ "n_hydraulic=u1*v_w1/g/H;\n",
+ "\n",
+ "n_overall=0.97*n_hydraulic;\n",
+ "print'%s %.1f %s'%(\"Overall efficiency =\",n_overall,\"\")\n",
+ "\n",
+ "\n",
+ "Q=A1*v_r1;\n",
+ "\n",
+ "P=n_overall*Q*rho*g*H;\n",
+ "Ohm_P=w*2.*math.pi/(g*H)**(5/4)*(P/rho)**(1/2);\n",
+ "\n",
+ "## sigma > 0.119*(0.5)^(1.84) = 0.0331\n",
+ "\n",
+ "sigma=0.0331;\n",
+ "\n",
+ "##((p_atm-p_min)/(rho*g)-z0)/H > 0.0331\n",
+ "\n",
+ "z0=((p_atm-p_min)/(rho*g))-sigma*H;\n",
+ "print'%s %.2f %s'%(\"Limiting value for the height of the draft tube above =\",z0,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall efficiency = -1.9 \n",
+ "Limiting value for the height of the draft tube above = 5.85 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter13_1.ipynb b/mechanics_of_fluid/Chapter13_1.ipynb
new file mode 100755
index 00000000..4bd1ca7e
--- /dev/null
+++ b/mechanics_of_fluid/Chapter13_1.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6ab6ca7ec50b12b4ad5664b1412855d8b1bafd30fee8faf6c1773c772ff215d4"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter13-Fluid Machines"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg618"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Hydraulic Efficiency and Overall Efficiency and Outlet angles of the guide vanes and Rotor blade angle at inlet and oulet\n",
+ "\n",
+ "## Maximum hydraulic efficiency occurs for minimum pressure loss, that is, when\n",
+ "\n",
+ "## dp1/dQ=2.38Q-1.43=0\n",
+ "\n",
+ "Q_opt=1.43/2.38;\n",
+ "\n",
+ "p1_min=1.19*Q_opt**2-1.43*Q_opt+0.47; ## MPa\n",
+ "\n",
+ "rho=1000.; ## kg/m**3\n",
+ "g=9.81; ## m/s**2\n",
+ "w=69.1; ## rad/s\n",
+ "P=200.*10.**3.; ## W\n",
+ "Ohm_P=0.565; ## rad\n",
+ "d=0.5; ## m\n",
+ "h=0.06; ## m\n",
+ "\n",
+ "p1=p1_min*10.**6./(rho*g); ## mH2O, coversion of units\n",
+ "\n",
+ "H=(w*P**(1/2.)/(rho**(1/2.)*Ohm_P))**(4/5.)/g;\n",
+ "\n",
+ "Hydraulic_efficiency=(H-p1)/H;\n",
+ "print'%s %.3f %s'%(\"Hydraulic Efficiency =\",Hydraulic_efficiency,\"\")\n",
+ "\n",
+ "\n",
+ "Overall_efficiency=P/(Q_opt*rho*g*H);\n",
+ "print'%s %.3f %s'%(\"Overall Efficiency =\",Overall_efficiency,\"\")\n",
+ "\n",
+ "\n",
+ "H_Euler=H-p1;\n",
+ "\n",
+ "u1=w*0.25;\n",
+ "v_w1=g*H_Euler/u1;\n",
+ "A=math.pi*d*h*0.95; \n",
+ "v_r=Q_opt/A;\n",
+ "\n",
+ "alpha1=math.atan(v_r/v_w1);\n",
+ "print'%s %.3f %s'%(\"Outlet angles of the guide vanes =\",alpha1,\"degrees\")\n",
+ "\n",
+ "beta1=math.atan(v_r/(v_w1-u1));\n",
+ "print'%s %.2f %s'%(\"Rotor blade angle at inlet =\",beta1,\"degrees\")\n",
+ "\n",
+ "u2=w*0.325/2;\n",
+ "beta2=math.atan(v_r/u2);\n",
+ "print'%s %.3f %s'%(\"Rotor blade angle at outlet =\",beta2,\"degrees\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hydraulic Efficiency = 0.896 \n",
+ "Overall Efficiency = 0.855 \n",
+ "Outlet angles of the guide vanes = 0.321 degrees\n",
+ "Rotor blade angle at inlet = 1.16 degrees\n",
+ "Rotor blade angle at outlet = 0.539 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg622"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Overall efficiency and Limiting value for the height of the draft tube above\n",
+ "w=6.25;\n",
+ "D=0.75; ## m\n",
+ "gv_angle=15; ## guide vane angle in degrees\n",
+ "g=9.81; ## m/s^2\n",
+ "H=27.5; ## m\n",
+ "A1=0.2; ## m^2\n",
+ "rho=1000.; ## kg/m^3\n",
+ "p_atm=101.3*10**3.;\n",
+ "p_min=35.*10.**3.;\n",
+ "\n",
+ "u1=math.pi*w*D;\n",
+ "v1=u1*math.sin(105.)/math.sin(60.);\n",
+ "v_r1=v1*math.sin(gv_angle);\n",
+ "v_w1=v1*math.cos(gv_angle);\n",
+ "v_w2=0.;\n",
+ "\n",
+ "n_hydraulic=u1*v_w1/g/H;\n",
+ "\n",
+ "n_overall=0.97*n_hydraulic;\n",
+ "print'%s %.1f %s'%(\"Overall efficiency =\",n_overall,\"\")\n",
+ "\n",
+ "\n",
+ "Q=A1*v_r1;\n",
+ "\n",
+ "P=n_overall*Q*rho*g*H;\n",
+ "Ohm_P=w*2.*math.pi/(g*H)**(5/4)*(P/rho)**(1/2);\n",
+ "\n",
+ "## sigma > 0.119*(0.5)^(1.84) = 0.0331\n",
+ "\n",
+ "sigma=0.0331;\n",
+ "\n",
+ "##((p_atm-p_min)/(rho*g)-z0)/H > 0.0331\n",
+ "\n",
+ "z0=((p_atm-p_min)/(rho*g))-sigma*H;\n",
+ "print'%s %.2f %s'%(\"Limiting value for the height of the draft tube above =\",z0,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall efficiency = -1.9 \n",
+ "Limiting value for the height of the draft tube above = 5.85 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter2-.ipynb b/mechanics_of_fluid/Chapter2-.ipynb
new file mode 100755
index 00000000..7cf5ac34
--- /dev/null
+++ b/mechanics_of_fluid/Chapter2-.ipynb
@@ -0,0 +1,326 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f587ddef55b28db4a216d9527633644d2f15945b69280f84d70b5536f38a83a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2- Fluid Statics\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate hieght above sea level to which ballon will rise\n",
+ "d=1.5; ##m\n",
+ "m=1.2; ## kg\n",
+ "rate=0.0065; ## K/m\n",
+ "R=287.; ## J/(kg.K)\n",
+ "T_0=288.15; ## K\n",
+ "p_0=101*10**3; ## Pa\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "rho=m/(math.pi*d**3/6);\n",
+ "rho_0=p_0/R/T_0;\n",
+ "\n",
+ "## log(rho/rho_0)=(g/R*rate - 1)*log((T_0-rate*z)/T_0)\n",
+ "\n",
+ "z=1/rate*(T_0-T_0*math.exp(math.log(rho/rho_0)/(g/R/rate-1)));\n",
+ "print'%s %.f %s'%(\"The height above sea level to which the ballon will rise =\",z,\"m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The height above sea level to which the ballon will rise = 5708 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate total force and Distance of line of action of total force from top of cylinder\n",
+ "d=2.; ## m\n",
+ "a=1.; ## radius in m\n",
+ "rho=880.; ## density of oil in kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "rho_w=1000.; ## density of water in kg/m^3\n",
+ "\n",
+ "C_0=4*a/3/math.pi; ## centroid of the upper semicircle\n",
+ "h1=a-C_0; ## distance of the centroid from the top\n",
+ "\n",
+ "P1=rho*g*h1; ## Pressure of the oil at this point\n",
+ "F1=P1*math.pi*a**2/2; ## Force exerted by the oil on the upper half of the wall\n",
+ "\n",
+ "cp1=a**4*(math.pi/8-8/(9*math.pi)); ## (AK^2)_C\n",
+ "\n",
+ "cp2=cp1/(math.pi*a**2/2*h1); ## Centre of Pressure below the centroid\n",
+ "\n",
+ "cp0=cp2+h1; ## Centre of Pressure below the top\n",
+ "\n",
+ "P_w=(rho*g*a)+(rho_w*g*C_0);\n",
+ "F_w=P_w*math.pi*a**2/2;\n",
+ "\n",
+ "h2=C_0+rho/rho_w;\n",
+ "cp2_w=cp1/(math.pi*a**2/2*h2);\n",
+ "cp0_w=a+C_0+cp2_w; ## below the top of cylinder\n",
+ "\n",
+ "F_total=F1+F_w;\n",
+ "\n",
+ "## F1*cp0 + F_w*cp0_w = F_total*x\n",
+ "\n",
+ "x=(F1*cp0 + F_w*cp0_w)/F_total;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Total force =\",F_total,\"N\")\n",
+ "print'%s %.3f %s'%(\"Distance of line of action of total force from top of cylinder =\",x,\"m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total force = 27905.5 N\n",
+ "Distance of line of action of total force from top of cylinder = 1.260 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "rho=1000.; ## kg/m**3\n",
+ "g=9.81; ## m/s**2\n",
+ "r=4.; ## m\n",
+ "h=2.; ## m\n",
+ "l=5.; ## m\n",
+ "theta=math.pi/6.;\n",
+ "A=h*l;\n",
+ "\n",
+ "F_h=rho*g*h*A; ## Horizontal force\n",
+ "\n",
+ "C0=(2.**2./(12.*2.))+2.; ## distance of line of action below the free surface\n",
+ "\n",
+ "AB=4.-4.*math.cos(theta);\n",
+ "\n",
+ "F_v=rho*g*l*(AB*1.+math.pi*r**2.*theta/(2.*math.pi)-1./2.*h*r*math.cos(theta));\n",
+ "BC=0.237; ## m\n",
+ "\n",
+ "F_net=math.sqrt(F_h**2.+F_v**2.);\n",
+ "\n",
+ "phi=math.atan(F_v/F_h);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Net force =\",F_net,\"N\")\n",
+ "print'%s %.3f %s'%(\"Angle between net force and horizontal =\",phi,\"degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net force = 205712.4 N\n",
+ "Angle between net force and horizontal = 0.305 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#GM and states that negative or positive give explanation\n",
+ "m=10.; ## kg\n",
+ "M=80.; ## kg\n",
+ "H=1.5; ## m\n",
+ "rho=1026.; ## kg/m**3\n",
+ "g=9.81; ## m/s**2\n",
+ "d=1.; ## m\n",
+ "\n",
+ "## m*H + M*H/2 =(M+m)(OG)\n",
+ "\n",
+ "OG=(m*H + M*H/2)/(M+m);\n",
+ "\n",
+ "## For vertical equilibrium, buoyancy = weight\n",
+ "h=(M+m)/(rho*math.pi/4*d**2);\n",
+ "\n",
+ "BM=(math.pi*d**4./64.)/(math.pi*d**2.*h/4.);\n",
+ "OB=h/2.;\n",
+ "\n",
+ "GM=OB+BM-OG;\n",
+ "\n",
+ "print'%s %.4f %s'%(\"GM =\",GM,\"m\")\n",
+ "\n",
+ "print(\"Since this is negative (i.e. M is below G) buoy is unstable.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "GM = -0.2179 m\n",
+ "Since this is negative (i.e. M is below G) buoy is unstable.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Least vertical downward force and Depth of immersion\n",
+ "m=10.; ## kg\n",
+ "M=80.; ## kg\n",
+ "OG=0.8333; ## m\n",
+ "rho=1026.; ## kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "d=1.; ## m\n",
+ "W=(m+M)*g;\n",
+ "\n",
+ "## W(OG) = (W + F)(OB + BM) = rho*g*%pi/4*d^2*h1*(h1/2+d^2/(16*h1))\n",
+ "\n",
+ "h1=math.sqrt(2*(W*OG/(rho*g*math.pi/4.*d**2) - d**2/16.));\n",
+ "\n",
+ "F=rho*g*math.pi/4*d**2*h1 - W;\n",
+ "\n",
+ "print'%s %.f %s'%(\"Least vertical downward force =\",F,\"N\")\n",
+ "print'%s %.3f %s'%(\"Depth of immersion =\",h1,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Least vertical downward force = 1072 N\n",
+ "Depth of immersion = 0.247 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Volume left in the tank and Pressure at the lowest corners of the tank \n",
+ "a=5.; ## m/s^2\n",
+ "s=0.5; ## m\n",
+ "phi=math.atan(1./4.); ## degrees\n",
+ "g=9.81; ## m/s^2\n",
+ "rho=880.; ## kg/m^3\n",
+ "\n",
+ "a_x=a*math.cos(phi); ## Horizontal component of acceleration\n",
+ "a_z=a*math.sin(phi); ## Vertical component of acceleration\n",
+ "\n",
+ "theta=math.atan(a_x/(a_z+g)); ## b=tan(theta)\n",
+ "\n",
+ "d=(math.tan(phi)+math.tan(theta))/(1-math.tan(phi)*math.tan(theta));\n",
+ "\n",
+ "c=s*d;\n",
+ "\n",
+ "V=s*(s**2-s*c/2.);\n",
+ "Z=V*1000.\n",
+ "print'%s %.1f %s'%(\"Volume left in the tank =\",Z,\"L\")\n",
+ "P=rho*g*s*math.cos(phi);\n",
+ "print'%s %.f %s'%(\"Pressure at the lowest corners of the tank =\",P,\"Pa\")\n",
+ "#apporxmatilty it is correct which is 4190 is given in text book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume left in the tank = 76.5 L\n",
+ "Pressure at the lowest corners of the tank = 4188 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter2-_1.ipynb b/mechanics_of_fluid/Chapter2-_1.ipynb
new file mode 100755
index 00000000..7cf5ac34
--- /dev/null
+++ b/mechanics_of_fluid/Chapter2-_1.ipynb
@@ -0,0 +1,326 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f587ddef55b28db4a216d9527633644d2f15945b69280f84d70b5536f38a83a6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter2- Fluid Statics\n"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "##calculate hieght above sea level to which ballon will rise\n",
+ "d=1.5; ##m\n",
+ "m=1.2; ## kg\n",
+ "rate=0.0065; ## K/m\n",
+ "R=287.; ## J/(kg.K)\n",
+ "T_0=288.15; ## K\n",
+ "p_0=101*10**3; ## Pa\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "rho=m/(math.pi*d**3/6);\n",
+ "rho_0=p_0/R/T_0;\n",
+ "\n",
+ "## log(rho/rho_0)=(g/R*rate - 1)*log((T_0-rate*z)/T_0)\n",
+ "\n",
+ "z=1/rate*(T_0-T_0*math.exp(math.log(rho/rho_0)/(g/R/rate-1)));\n",
+ "print'%s %.f %s'%(\"The height above sea level to which the ballon will rise =\",z,\"m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The height above sea level to which the ballon will rise = 5708 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate total force and Distance of line of action of total force from top of cylinder\n",
+ "d=2.; ## m\n",
+ "a=1.; ## radius in m\n",
+ "rho=880.; ## density of oil in kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "rho_w=1000.; ## density of water in kg/m^3\n",
+ "\n",
+ "C_0=4*a/3/math.pi; ## centroid of the upper semicircle\n",
+ "h1=a-C_0; ## distance of the centroid from the top\n",
+ "\n",
+ "P1=rho*g*h1; ## Pressure of the oil at this point\n",
+ "F1=P1*math.pi*a**2/2; ## Force exerted by the oil on the upper half of the wall\n",
+ "\n",
+ "cp1=a**4*(math.pi/8-8/(9*math.pi)); ## (AK^2)_C\n",
+ "\n",
+ "cp2=cp1/(math.pi*a**2/2*h1); ## Centre of Pressure below the centroid\n",
+ "\n",
+ "cp0=cp2+h1; ## Centre of Pressure below the top\n",
+ "\n",
+ "P_w=(rho*g*a)+(rho_w*g*C_0);\n",
+ "F_w=P_w*math.pi*a**2/2;\n",
+ "\n",
+ "h2=C_0+rho/rho_w;\n",
+ "cp2_w=cp1/(math.pi*a**2/2*h2);\n",
+ "cp0_w=a+C_0+cp2_w; ## below the top of cylinder\n",
+ "\n",
+ "F_total=F1+F_w;\n",
+ "\n",
+ "## F1*cp0 + F_w*cp0_w = F_total*x\n",
+ "\n",
+ "x=(F1*cp0 + F_w*cp0_w)/F_total;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Total force =\",F_total,\"N\")\n",
+ "print'%s %.3f %s'%(\"Distance of line of action of total force from top of cylinder =\",x,\"m\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total force = 27905.5 N\n",
+ "Distance of line of action of total force from top of cylinder = 1.260 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg67"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "rho=1000.; ## kg/m**3\n",
+ "g=9.81; ## m/s**2\n",
+ "r=4.; ## m\n",
+ "h=2.; ## m\n",
+ "l=5.; ## m\n",
+ "theta=math.pi/6.;\n",
+ "A=h*l;\n",
+ "\n",
+ "F_h=rho*g*h*A; ## Horizontal force\n",
+ "\n",
+ "C0=(2.**2./(12.*2.))+2.; ## distance of line of action below the free surface\n",
+ "\n",
+ "AB=4.-4.*math.cos(theta);\n",
+ "\n",
+ "F_v=rho*g*l*(AB*1.+math.pi*r**2.*theta/(2.*math.pi)-1./2.*h*r*math.cos(theta));\n",
+ "BC=0.237; ## m\n",
+ "\n",
+ "F_net=math.sqrt(F_h**2.+F_v**2.);\n",
+ "\n",
+ "phi=math.atan(F_v/F_h);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Net force =\",F_net,\"N\")\n",
+ "print'%s %.3f %s'%(\"Angle between net force and horizontal =\",phi,\"degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Net force = 205712.4 N\n",
+ "Angle between net force and horizontal = 0.305 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#GM and states that negative or positive give explanation\n",
+ "m=10.; ## kg\n",
+ "M=80.; ## kg\n",
+ "H=1.5; ## m\n",
+ "rho=1026.; ## kg/m**3\n",
+ "g=9.81; ## m/s**2\n",
+ "d=1.; ## m\n",
+ "\n",
+ "## m*H + M*H/2 =(M+m)(OG)\n",
+ "\n",
+ "OG=(m*H + M*H/2)/(M+m);\n",
+ "\n",
+ "## For vertical equilibrium, buoyancy = weight\n",
+ "h=(M+m)/(rho*math.pi/4*d**2);\n",
+ "\n",
+ "BM=(math.pi*d**4./64.)/(math.pi*d**2.*h/4.);\n",
+ "OB=h/2.;\n",
+ "\n",
+ "GM=OB+BM-OG;\n",
+ "\n",
+ "print'%s %.4f %s'%(\"GM =\",GM,\"m\")\n",
+ "\n",
+ "print(\"Since this is negative (i.e. M is below G) buoy is unstable.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "GM = -0.2179 m\n",
+ "Since this is negative (i.e. M is below G) buoy is unstable.\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Least vertical downward force and Depth of immersion\n",
+ "m=10.; ## kg\n",
+ "M=80.; ## kg\n",
+ "OG=0.8333; ## m\n",
+ "rho=1026.; ## kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "d=1.; ## m\n",
+ "W=(m+M)*g;\n",
+ "\n",
+ "## W(OG) = (W + F)(OB + BM) = rho*g*%pi/4*d^2*h1*(h1/2+d^2/(16*h1))\n",
+ "\n",
+ "h1=math.sqrt(2*(W*OG/(rho*g*math.pi/4.*d**2) - d**2/16.));\n",
+ "\n",
+ "F=rho*g*math.pi/4*d**2*h1 - W;\n",
+ "\n",
+ "print'%s %.f %s'%(\"Least vertical downward force =\",F,\"N\")\n",
+ "print'%s %.3f %s'%(\"Depth of immersion =\",h1,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Least vertical downward force = 1072 N\n",
+ "Depth of immersion = 0.247 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Volume left in the tank and Pressure at the lowest corners of the tank \n",
+ "a=5.; ## m/s^2\n",
+ "s=0.5; ## m\n",
+ "phi=math.atan(1./4.); ## degrees\n",
+ "g=9.81; ## m/s^2\n",
+ "rho=880.; ## kg/m^3\n",
+ "\n",
+ "a_x=a*math.cos(phi); ## Horizontal component of acceleration\n",
+ "a_z=a*math.sin(phi); ## Vertical component of acceleration\n",
+ "\n",
+ "theta=math.atan(a_x/(a_z+g)); ## b=tan(theta)\n",
+ "\n",
+ "d=(math.tan(phi)+math.tan(theta))/(1-math.tan(phi)*math.tan(theta));\n",
+ "\n",
+ "c=s*d;\n",
+ "\n",
+ "V=s*(s**2-s*c/2.);\n",
+ "Z=V*1000.\n",
+ "print'%s %.1f %s'%(\"Volume left in the tank =\",Z,\"L\")\n",
+ "P=rho*g*s*math.cos(phi);\n",
+ "print'%s %.f %s'%(\"Pressure at the lowest corners of the tank =\",P,\"Pa\")\n",
+ "#apporxmatilty it is correct which is 4190 is given in text book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volume left in the tank = 76.5 L\n",
+ "Pressure at the lowest corners of the tank = 4188 Pa\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter3-.ipynb b/mechanics_of_fluid/Chapter3-.ipynb
new file mode 100755
index 00000000..41b83b2a
--- /dev/null
+++ b/mechanics_of_fluid/Chapter3-.ipynb
@@ -0,0 +1,268 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:333c941e92e4c238ee8e681acc0f0427a31d9cb623c5863e0f5d970ef2bcf529"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3-The Principles Governing Fluids in Motion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Overall efficiency of the pump\n",
+ "u_A=1.35; ## m/s\n",
+ "d_A=0.225; ## m\n",
+ "d_B=0.150; ## m\n",
+ "d_C=0.150; ## m\n",
+ "d=5.6; ##m\n",
+ "friction=2.5; ## kW\n",
+ "power_req=12.7; ## kW\n",
+ "\n",
+ "rho=1000.; ## kg/m^3\n",
+ "rho_m=13560.; ## kg/m^3\n",
+ "\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "pC=35000.; ## Pa\n",
+ "pA=rho_m*g*(-d_B);\n",
+ "\n",
+ "Area_A=math.pi*d_A**2/4;\n",
+ "Area_B=math.pi*d_B**2/4;\n",
+ "Area_C=math.pi*d_C**2/4;\n",
+ "\n",
+ "u_B=u_A*(Area_A/Area_B);\n",
+ "u_C=u_A*(Area_A/Area_C);\n",
+ "\n",
+ "## Energy_added_by_pump/time = (Mass/time)*((pC-pA)/rho+(u_C^2-u_A^2)/2+g*(zC-zA))\n",
+ "\n",
+ "Energy_added = Area_A*u_A*(pC-pA+rho/2.*(u_C**2-u_A**2)+rho*g*d)/1000.+friction;\n",
+ "\n",
+ "Efficiency=Energy_added/power_req*100.;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Overall efficiency of the pump =\",Efficiency,\" %\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall efficiency of the pump = 67.7 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Rate of discharge\n",
+ "d_jet = 0.0086; ## m\n",
+ "d_orifice = 0.011; ## m\n",
+ "x = 2.; ## m\n",
+ "y = 0.6; ## m\n",
+ "h = 1.75; ## m\n",
+ "g = 9.81; ## m/s^2\n",
+ "\n",
+ "A2 = math.pi/4.*d_orifice**2;\n",
+ "\n",
+ "Cc = (d_jet/d_orifice)**2.; ## Coefficient of Contraction\n",
+ "\n",
+ "Cv = x/2./math.sqrt(y*h); ## Coefficient of velocity\n",
+ "\n",
+ "Cd = Cv*Cc; ## Coefficient of Discharge\n",
+ "\n",
+ "Q = Cd*A2*math.sqrt(2.*g*h);\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Rate of discharge =\",Q,\"m^3/s \")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of discharge = 0.0003 m^3/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Flow rate\n",
+ "Cd=0.97;\n",
+ "d1=0.28; ## m\n",
+ "d2=0.14; ## m\n",
+ "\n",
+ "g=9.81; ## m/s^2\n",
+ "d=0.05; ## difference in mercury level in metre\n",
+ "rho=1000.; ## kg/m^3\n",
+ "rho_m=13600.; ## kg/m^3\n",
+ "\n",
+ "A1=math.pi/4.*d1**2.;\n",
+ "A2=math.pi/4.*d2**2.;\n",
+ "\n",
+ "p_diff=(rho_m-rho)*g*d;\n",
+ "h=p_diff/rho/g;\n",
+ "\n",
+ "Q=Cd*A1*((2.*g*h)/((A1/A2)**2-1.))**(1./2.);\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Flow rate =\",Q,\"m^3/s \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow rate = 0.0542 m^3/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Mass flow rate\n",
+ "Cd=0.62;\n",
+ "g=9.81; ## m/s^2\n",
+ "d=0.1; ## m\n",
+ "d0=0.06; ## m\n",
+ "d1=0.12; ## m\n",
+ "\n",
+ "rho=1000.; ## kg/m^3\n",
+ "rho_m=13600.; ## kg/m^3\n",
+ "rho_f=0.86*10**3; ##kg/m^3\n",
+ "\n",
+ "A0=math.pi/4.*d0**2.;\n",
+ "A1=math.pi/4.*d1**2.;\n",
+ "\n",
+ "p_diff=(rho_m-rho_f)*g*d;\n",
+ "\n",
+ "h=p_diff/rho_f/g;\n",
+ "\n",
+ "Q=Cd*A0*((2.*g*h)/(1.-(A0/A1)**2))**(1./2.);\n",
+ "\n",
+ "m=rho_f*Q;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Mass flow rate =\",m,\"kg/s \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate = 8.39 kg/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "Cd=0.61;\n",
+ "#calculate Rate of discharge\n",
+ "g=9.81; ## m/s^2\n",
+ "b=0.6; ## m\n",
+ "H=0.155; ## mQ\n",
+ "A=0.26; ## m^2\n",
+ "u1=0.254; ## m/s\n",
+ "\n",
+ "Q=2./3.*Cd*math.sqrt(2.*g*b*(H)**3/2);\n",
+ "\n",
+ "velo=Q/A;\n",
+ "\n",
+ "H1=H+u1**2/(2.*g);\n",
+ "\n",
+ "Q1=2./3.*Cd*math.sqrt(2*g*b*(H1)**3/2);\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Discharge =\",Q1,\"m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Discharge = 0.062 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter3-_1.ipynb b/mechanics_of_fluid/Chapter3-_1.ipynb
new file mode 100755
index 00000000..41b83b2a
--- /dev/null
+++ b/mechanics_of_fluid/Chapter3-_1.ipynb
@@ -0,0 +1,268 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:333c941e92e4c238ee8e681acc0f0427a31d9cb623c5863e0f5d970ef2bcf529"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter3-The Principles Governing Fluids in Motion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Overall efficiency of the pump\n",
+ "u_A=1.35; ## m/s\n",
+ "d_A=0.225; ## m\n",
+ "d_B=0.150; ## m\n",
+ "d_C=0.150; ## m\n",
+ "d=5.6; ##m\n",
+ "friction=2.5; ## kW\n",
+ "power_req=12.7; ## kW\n",
+ "\n",
+ "rho=1000.; ## kg/m^3\n",
+ "rho_m=13560.; ## kg/m^3\n",
+ "\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "pC=35000.; ## Pa\n",
+ "pA=rho_m*g*(-d_B);\n",
+ "\n",
+ "Area_A=math.pi*d_A**2/4;\n",
+ "Area_B=math.pi*d_B**2/4;\n",
+ "Area_C=math.pi*d_C**2/4;\n",
+ "\n",
+ "u_B=u_A*(Area_A/Area_B);\n",
+ "u_C=u_A*(Area_A/Area_C);\n",
+ "\n",
+ "## Energy_added_by_pump/time = (Mass/time)*((pC-pA)/rho+(u_C^2-u_A^2)/2+g*(zC-zA))\n",
+ "\n",
+ "Energy_added = Area_A*u_A*(pC-pA+rho/2.*(u_C**2-u_A**2)+rho*g*d)/1000.+friction;\n",
+ "\n",
+ "Efficiency=Energy_added/power_req*100.;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Overall efficiency of the pump =\",Efficiency,\" %\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Overall efficiency of the pump = 67.7 %\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Rate of discharge\n",
+ "d_jet = 0.0086; ## m\n",
+ "d_orifice = 0.011; ## m\n",
+ "x = 2.; ## m\n",
+ "y = 0.6; ## m\n",
+ "h = 1.75; ## m\n",
+ "g = 9.81; ## m/s^2\n",
+ "\n",
+ "A2 = math.pi/4.*d_orifice**2;\n",
+ "\n",
+ "Cc = (d_jet/d_orifice)**2.; ## Coefficient of Contraction\n",
+ "\n",
+ "Cv = x/2./math.sqrt(y*h); ## Coefficient of velocity\n",
+ "\n",
+ "Cd = Cv*Cc; ## Coefficient of Discharge\n",
+ "\n",
+ "Q = Cd*A2*math.sqrt(2.*g*h);\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Rate of discharge =\",Q,\"m^3/s \")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate of discharge = 0.0003 m^3/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Flow rate\n",
+ "Cd=0.97;\n",
+ "d1=0.28; ## m\n",
+ "d2=0.14; ## m\n",
+ "\n",
+ "g=9.81; ## m/s^2\n",
+ "d=0.05; ## difference in mercury level in metre\n",
+ "rho=1000.; ## kg/m^3\n",
+ "rho_m=13600.; ## kg/m^3\n",
+ "\n",
+ "A1=math.pi/4.*d1**2.;\n",
+ "A2=math.pi/4.*d2**2.;\n",
+ "\n",
+ "p_diff=(rho_m-rho)*g*d;\n",
+ "h=p_diff/rho/g;\n",
+ "\n",
+ "Q=Cd*A1*((2.*g*h)/((A1/A2)**2-1.))**(1./2.);\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Flow rate =\",Q,\"m^3/s \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Flow rate = 0.0542 m^3/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg125"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Mass flow rate\n",
+ "Cd=0.62;\n",
+ "g=9.81; ## m/s^2\n",
+ "d=0.1; ## m\n",
+ "d0=0.06; ## m\n",
+ "d1=0.12; ## m\n",
+ "\n",
+ "rho=1000.; ## kg/m^3\n",
+ "rho_m=13600.; ## kg/m^3\n",
+ "rho_f=0.86*10**3; ##kg/m^3\n",
+ "\n",
+ "A0=math.pi/4.*d0**2.;\n",
+ "A1=math.pi/4.*d1**2.;\n",
+ "\n",
+ "p_diff=(rho_m-rho_f)*g*d;\n",
+ "\n",
+ "h=p_diff/rho_f/g;\n",
+ "\n",
+ "Q=Cd*A0*((2.*g*h)/(1.-(A0/A1)**2))**(1./2.);\n",
+ "\n",
+ "m=rho_f*Q;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Mass flow rate =\",m,\"kg/s \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate = 8.39 kg/s \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "Cd=0.61;\n",
+ "#calculate Rate of discharge\n",
+ "g=9.81; ## m/s^2\n",
+ "b=0.6; ## m\n",
+ "H=0.155; ## mQ\n",
+ "A=0.26; ## m^2\n",
+ "u1=0.254; ## m/s\n",
+ "\n",
+ "Q=2./3.*Cd*math.sqrt(2.*g*b*(H)**3/2);\n",
+ "\n",
+ "velo=Q/A;\n",
+ "\n",
+ "H1=H+u1**2/(2.*g);\n",
+ "\n",
+ "Q1=2./3.*Cd*math.sqrt(2*g*b*(H1)**3/2);\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Discharge =\",Q1,\"m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Discharge = 0.062 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter4-.ipynb b/mechanics_of_fluid/Chapter4-.ipynb
new file mode 100755
index 00000000..be52c7b9
--- /dev/null
+++ b/mechanics_of_fluid/Chapter4-.ipynb
@@ -0,0 +1,170 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:745d131b65427d77eef09608cde1afafe8a3c0b2b5d38233f35ec5b6ceb45ab5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter4- The Momentum Equation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The Hydrodynamic force on the vane and resultant force of angle \n",
+ "rho=1000.; ## kg/m^3\n",
+ "u1=36.; ## m/s\n",
+ "u2=30.; ## m/s\n",
+ "d=0.05; ## m\n",
+ "theta=60.; ## degrees\n",
+ "\n",
+ "A=math.pi/4.*d**2.;\n",
+ "\n",
+ "Q=A*u1;\n",
+ "\n",
+ "F_x=rho*Q*(u2*(math.cos(theta/57.3)) - u1);\n",
+ "F_y=rho*Q*u2*math.sin(theta/57.3);\n",
+ "\n",
+ "F=math.sqrt(F_x**2+F_y**2);\n",
+ "phi=math.atan((F_y/F_x));\n",
+ "\n",
+ "print'%s %.1f %s'%(\"The Hydrodynamic force on the vane =\",F,\"N\")\n",
+ "\n",
+ "\n",
+ "print'%s %.1f %s'%(\"This resultant force acts at angle of\",phi*180/math.pi,\"to the x-direction\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Hydrodynamic force on the vane = 2361.2 N\n",
+ "This resultant force acts at angle of -51.1 to the x-direction\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The net horizontal force exerted by the water onthe bend and resultant force of angle\n",
+ "Q1=0.45; ## m**3/s\n",
+ "Q2=0.425; ## m**3/s\n",
+ "d1=0.6; ## m\n",
+ "d2=0.3; ## m\n",
+ "p1=1.4*10.**5.; ## Pa\n",
+ "rho=1000.; ## kg/m**3\n",
+ "theta=45/57.3; ## degrees\n",
+ "\n",
+ "A1=math.pi/4*d1**2;\n",
+ "A2=math.pi/4*d2**2;\n",
+ "\n",
+ "u1=Q1/A1;\n",
+ "u2=Q2/A2;\n",
+ "\n",
+ "p2=p1+rho/2.*(u1**2-u2**2.);\n",
+ "\n",
+ "F_x=rho*Q2*(u2*math.cos(theta)-u1)-p1*A1+p2*A2*math.cos(theta)\n",
+ "F_y=rho*Q2*(u2*math.sin(theta)-0)+p2*A2*math.sin(theta);\n",
+ "\n",
+ "F=math.sqrt(F_x**2+F_y**2);\n",
+ "phi=math.atan(F_y/F_x);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"The net horizontal force exerted by the water onthe bend =\",F,\"N\")\n",
+ "\n",
+ "\n",
+ "print'%s %.1f %s'%(\"This resultant force acts at angle of\",phi*57.3,\"to the x-direction\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net horizontal force exerted by the water onthe bend = 33263.1 N\n",
+ "This resultant force acts at angle of -13.9 to the x-direction\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The thrust on the turbine and Power generated by the turbine\n",
+ "rho=1.2; ## kg/m**3\n",
+ "d=12.; ## m\n",
+ "u1=20.; ## m/s\n",
+ "u4=8.; ## m/s\n",
+ "\n",
+ "A=math.pi/4.*d**2\n",
+ "F=rho*A*(u1+u4)/2.*(u1-u4);\n",
+ "\n",
+ "print'%s %.3f %s'%(\"The thrust on the turbine = \",F,\"N\")\n",
+ "\n",
+ "P=rho*A*(u1+u4)/2.*(u1**2/2.-u4**2/2.);\n",
+ "print'%s %.2f %s'%(\"Power generated by the turbine =\",P,\"W\")\n",
+ "#in book it is converted into kw\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thrust on the turbine = 22800.423 N\n",
+ "Power generated by the turbine = 319205.92 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter4-_1.ipynb b/mechanics_of_fluid/Chapter4-_1.ipynb
new file mode 100755
index 00000000..be52c7b9
--- /dev/null
+++ b/mechanics_of_fluid/Chapter4-_1.ipynb
@@ -0,0 +1,170 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:745d131b65427d77eef09608cde1afafe8a3c0b2b5d38233f35ec5b6ceb45ab5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter4- The Momentum Equation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The Hydrodynamic force on the vane and resultant force of angle \n",
+ "rho=1000.; ## kg/m^3\n",
+ "u1=36.; ## m/s\n",
+ "u2=30.; ## m/s\n",
+ "d=0.05; ## m\n",
+ "theta=60.; ## degrees\n",
+ "\n",
+ "A=math.pi/4.*d**2.;\n",
+ "\n",
+ "Q=A*u1;\n",
+ "\n",
+ "F_x=rho*Q*(u2*(math.cos(theta/57.3)) - u1);\n",
+ "F_y=rho*Q*u2*math.sin(theta/57.3);\n",
+ "\n",
+ "F=math.sqrt(F_x**2+F_y**2);\n",
+ "phi=math.atan((F_y/F_x));\n",
+ "\n",
+ "print'%s %.1f %s'%(\"The Hydrodynamic force on the vane =\",F,\"N\")\n",
+ "\n",
+ "\n",
+ "print'%s %.1f %s'%(\"This resultant force acts at angle of\",phi*180/math.pi,\"to the x-direction\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Hydrodynamic force on the vane = 2361.2 N\n",
+ "This resultant force acts at angle of -51.1 to the x-direction\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-143"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The net horizontal force exerted by the water onthe bend and resultant force of angle\n",
+ "Q1=0.45; ## m**3/s\n",
+ "Q2=0.425; ## m**3/s\n",
+ "d1=0.6; ## m\n",
+ "d2=0.3; ## m\n",
+ "p1=1.4*10.**5.; ## Pa\n",
+ "rho=1000.; ## kg/m**3\n",
+ "theta=45/57.3; ## degrees\n",
+ "\n",
+ "A1=math.pi/4*d1**2;\n",
+ "A2=math.pi/4*d2**2;\n",
+ "\n",
+ "u1=Q1/A1;\n",
+ "u2=Q2/A2;\n",
+ "\n",
+ "p2=p1+rho/2.*(u1**2-u2**2.);\n",
+ "\n",
+ "F_x=rho*Q2*(u2*math.cos(theta)-u1)-p1*A1+p2*A2*math.cos(theta)\n",
+ "F_y=rho*Q2*(u2*math.sin(theta)-0)+p2*A2*math.sin(theta);\n",
+ "\n",
+ "F=math.sqrt(F_x**2+F_y**2);\n",
+ "phi=math.atan(F_y/F_x);\n",
+ "\n",
+ "print'%s %.1f %s'%(\"The net horizontal force exerted by the water onthe bend =\",F,\"N\")\n",
+ "\n",
+ "\n",
+ "print'%s %.1f %s'%(\"This resultant force acts at angle of\",phi*57.3,\"to the x-direction\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The net horizontal force exerted by the water onthe bend = 33263.1 N\n",
+ "This resultant force acts at angle of -13.9 to the x-direction\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The thrust on the turbine and Power generated by the turbine\n",
+ "rho=1.2; ## kg/m**3\n",
+ "d=12.; ## m\n",
+ "u1=20.; ## m/s\n",
+ "u4=8.; ## m/s\n",
+ "\n",
+ "A=math.pi/4.*d**2\n",
+ "F=rho*A*(u1+u4)/2.*(u1-u4);\n",
+ "\n",
+ "print'%s %.3f %s'%(\"The thrust on the turbine = \",F,\"N\")\n",
+ "\n",
+ "P=rho*A*(u1+u4)/2.*(u1**2/2.-u4**2/2.);\n",
+ "print'%s %.2f %s'%(\"Power generated by the turbine =\",P,\"W\")\n",
+ "#in book it is converted into kw\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thrust on the turbine = 22800.423 N\n",
+ "Power generated by the turbine = 319205.92 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter5-.ipynb b/mechanics_of_fluid/Chapter5-.ipynb
new file mode 100755
index 00000000..bc9d154f
--- /dev/null
+++ b/mechanics_of_fluid/Chapter5-.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cc924f0db45ef8f074cc8f1d8a1ee198ea5115e6305e3da74ea78f614afb5f88"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter5- Physical Similarity and Dimensional Analysis"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The total resistance of the prototype\n",
+ "u_p=10.; ## m/s\n",
+ "scale=1/25.; ## l_m/l_p\n",
+ "L=125.; ## m\n",
+ "meu=1.235*10**(-6); ## m**2/s\n",
+ "meu_p=1.188*10**(-6); ## m**2/s\n",
+ "rho_p=1025.; ## kg/m**3\n",
+ "rho_m=1000.; ## kg/m**3\n",
+ "A=3500.; ## wetted surface in m**2\n",
+ "\n",
+ "u_m=u_p*math.sqrt(scale);\n",
+ "\n",
+ "d=L*scale;\n",
+ "Re=d*u_m/meu; ## Reynolds no.\n",
+ "C_F=0.075/(math.log10(Re)-2)**2; ## Skin friction coefficient\n",
+ "\n",
+ "res_skin=rho_m/2*u_m**2*(A*scale**2)*C_F;\n",
+ "\n",
+ "res_tot=54.2; ## N\n",
+ "\n",
+ "F_resid_m=res_tot-res_skin;\n",
+ "\n",
+ "F_resid_p=F_resid_m*rho_p/rho_m/scale**3;\n",
+ "\n",
+ "Re_p=u_p*L/meu_p;\n",
+ "\n",
+ "C_F_p=0.075/(math.log10(Re_p)-2)**2+0.0004;\n",
+ "C_F_pnew=1.45*C_F_p;\n",
+ "\n",
+ "res_friction=rho_p/2*u_p**2*A*C_F_pnew;\n",
+ "\n",
+ "Resistance=F_resid_p+res_friction;\n",
+ "print'%s %.1f %s'%(\"The total resistance of the prototype\",Resistance,\"N\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total resistance of the prototype 809273.4 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Maximum speed of the redesigned torpedo\n",
+ "\n",
+ "A=0.88; ## ratio of A2 and A1\n",
+ "C_D=0.85; ## ratio of C_D2 to C_D1\n",
+ "P=1.20; ## ratio of P2 to P1\n",
+ "V1=11.; ## m/s\n",
+ "\n",
+ "V2=V1*(P/A/C_D)**(1/3.);\n",
+ "print'%s %.2f %s'%(\"Maximum speed of the redesigned torpedo =\",V2,\"m/s\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum speed of the redesigned torpedo = 12.88 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter5-_1.ipynb b/mechanics_of_fluid/Chapter5-_1.ipynb
new file mode 100755
index 00000000..bc9d154f
--- /dev/null
+++ b/mechanics_of_fluid/Chapter5-_1.ipynb
@@ -0,0 +1,119 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cc924f0db45ef8f074cc8f1d8a1ee198ea5115e6305e3da74ea78f614afb5f88"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter5- Physical Similarity and Dimensional Analysis"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The total resistance of the prototype\n",
+ "u_p=10.; ## m/s\n",
+ "scale=1/25.; ## l_m/l_p\n",
+ "L=125.; ## m\n",
+ "meu=1.235*10**(-6); ## m**2/s\n",
+ "meu_p=1.188*10**(-6); ## m**2/s\n",
+ "rho_p=1025.; ## kg/m**3\n",
+ "rho_m=1000.; ## kg/m**3\n",
+ "A=3500.; ## wetted surface in m**2\n",
+ "\n",
+ "u_m=u_p*math.sqrt(scale);\n",
+ "\n",
+ "d=L*scale;\n",
+ "Re=d*u_m/meu; ## Reynolds no.\n",
+ "C_F=0.075/(math.log10(Re)-2)**2; ## Skin friction coefficient\n",
+ "\n",
+ "res_skin=rho_m/2*u_m**2*(A*scale**2)*C_F;\n",
+ "\n",
+ "res_tot=54.2; ## N\n",
+ "\n",
+ "F_resid_m=res_tot-res_skin;\n",
+ "\n",
+ "F_resid_p=F_resid_m*rho_p/rho_m/scale**3;\n",
+ "\n",
+ "Re_p=u_p*L/meu_p;\n",
+ "\n",
+ "C_F_p=0.075/(math.log10(Re_p)-2)**2+0.0004;\n",
+ "C_F_pnew=1.45*C_F_p;\n",
+ "\n",
+ "res_friction=rho_p/2*u_p**2*A*C_F_pnew;\n",
+ "\n",
+ "Resistance=F_resid_p+res_friction;\n",
+ "print'%s %.1f %s'%(\"The total resistance of the prototype\",Resistance,\"N\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total resistance of the prototype 809273.4 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Maximum speed of the redesigned torpedo\n",
+ "\n",
+ "A=0.88; ## ratio of A2 and A1\n",
+ "C_D=0.85; ## ratio of C_D2 to C_D1\n",
+ "P=1.20; ## ratio of P2 to P1\n",
+ "V1=11.; ## m/s\n",
+ "\n",
+ "V2=V1*(P/A/C_D)**(1/3.);\n",
+ "print'%s %.2f %s'%(\"Maximum speed of the redesigned torpedo =\",V2,\"m/s\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum speed of the redesigned torpedo = 12.88 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter6-.ipynb b/mechanics_of_fluid/Chapter6-.ipynb
new file mode 100755
index 00000000..40c8d053
--- /dev/null
+++ b/mechanics_of_fluid/Chapter6-.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1481d1999e9016b92221ce8448ff32599db545d782d2bf3365587f6b7e7a231e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6- Laminar Flow Between Solid Boundaries"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Reynolds number and Maximum velocity and Volumetric flow rate and \"Pressure gradient along the pipe\n",
+ "RD=0.83;\n",
+ "rho_w=1000.; ## density of water in kg/m^3\n",
+ "v=2.3; ## m/s\n",
+ "d=0.012; ## m\n",
+ "u=0.08; ## dynamic viscocity in kg/m/s\n",
+ "\n",
+ "rho_oil=RD*rho_w;\n",
+ "\n",
+ "Re=rho_oil*v*d/u;\n",
+ "print'%s %.1f %s'%(\"Reynolds number =\",Re,\"\")\n",
+ "\n",
+ "v_max=2*v;\n",
+ "print'%s %.1f %s'%(\"Maximum velocity =\",v_max,\"m/s^-1\")\n",
+ "\n",
+ "\n",
+ "Q=math.pi/4*d**2*v;\n",
+ "print'%s %.2f %s'%(\"Volumetric flow rate =\",Q,\"m^3/s^-1\")\n",
+ "\n",
+ "\n",
+ "p=-128.*Q*u/math.pi/d**4;\n",
+ "print'%s %.3f %s'%(\"Pressure gradient along the pipe = \",p,\"Pa/m^-1\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 286.3 \n",
+ "Maximum velocity = 4.6 m/s^-1\n",
+ "Volumetric flow rate = 0.00 m^3/s^-1\n",
+ "Pressure gradient along the pipe = -40888.889 Pa/m^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Rate at which oil must be supplied\n",
+ "c=0.001; ## m\n",
+ "p1=15*10**3; ## Pa\n",
+ "u=0.6; ## kg/m/s\n",
+ "R=6.; ## ratio of R2/R1\n",
+ "\n",
+ "Q=math.pi*c**3*p1/(6*u*math.log(R));\n",
+ "print'%s %.8f %s'%(\"Rate at which oil must be supplied =\",Q,\"m^3/s\")\n",
+ "#without round off error we cant get exact result \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate at which oil must be supplied = 0.00000731 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate \"The load the pad will support and The rate at which oil must be supplied\n",
+ "F=6*10**3; ## Pa\n",
+ "b=0.12; ## m\n",
+ "\n",
+ "f=F*b;\n",
+ "print'%s %.f %s'%(\"The load the pad will support =\",f,\"N/m\")\n",
+ "\n",
+ "\n",
+ "dp=12*10**3; ## N/m^2\n",
+ "dx=0.12; ## m\n",
+ "c=0.00018; ## m\n",
+ "u=0.5; ## kg/m/s\n",
+ "V=5.; ## m/s\n",
+ "\n",
+ "q=(dp/dx)*c**3/12./u + V*c/2.;\n",
+ "print'%s %.5f %s'%(\"The rate at which oil must be supplied =\",q,\"m^2/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The load the pad will support = 720 N/m\n",
+ "The rate at which oil must be supplied = 0.00045 m^2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate \"Velocity of the dashpot\n",
+ "d_p=0.05; ## diameter of piston in m\n",
+ "d_c=0.0504; ## diameter of cylinder in m\n",
+ "SG=0.87;\n",
+ "rho_w=1000.; ## kg/m^3\n",
+ "v=10**-4; ## m^2/s\n",
+ "dp=1.4*10**6; ## Pa\n",
+ "l=0.13; ## m\n",
+ "\n",
+ "c=(d_c-d_p)/2.; ## clearance\n",
+ "\n",
+ "u=SG*rho_w*v; ## Dynamice viscocity\n",
+ "\n",
+ "Vp=dp*c**3/(6.*u*l*(d_p/2.+c));\n",
+ "print'%s %.4f %s'%(\"Velocity of the dashpot =\",Vp,\"m/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of the dashpot = 0.0065 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#calculate Dynamic viscosity and Kinematic viscosity and Reynolds number of sphere and Reynolds number\n",
+ "\n",
+ "d=0.00475; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "rho_s=1151.; ## kg/m^3\n",
+ "rho=880.; ## kg/m^3\n",
+ "u=0.006; ## m/s\n",
+ "\n",
+ "F=math.pi/6.*d**3*g*(rho_s-rho);\n",
+ "\n",
+ "rat_d=0.25; ## ratio of d/D\n",
+ "rat_F=1.8; ## ratio of F/Fo\n",
+ "\n",
+ "dynamic=F/(1.8*3*math.pi*u*d);\n",
+ "\n",
+ "kinematic=dynamic/rho;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Dynamic viscosity = \",dynamic,\"kg/m/s\")\n",
+ "\n",
+ "\n",
+ "print'%s %.5f %s'%(\"Kinematic viscosity =\",kinematic,\"m^2/s\")\n",
+ "\n",
+ "\n",
+ "print(\"Reynolds number of sphere \")\n",
+ "\n",
+ "Re=rho*u*d/dynamic;\n",
+ "print'%s %.3f %s'%(\"Reynolds number =\",Re,\"\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Dynamic viscosity = 0.309 kg/m/s\n",
+ "Kinematic viscosity = 0.00035 m^2/s\n",
+ "Reynolds number of sphere \n",
+ "Reynolds number = 0.081 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate viscosity of the liquid \n",
+ "D=0.120; ## m\n",
+ "h=0.08; ## m\n",
+ "c=0.001; ## m\n",
+ "t=0.01875; ## m\n",
+ "rev=65.; ## revolutions per min\n",
+ "T=4*10**-3; ## N.m\n",
+ "\n",
+ "K1=math.pi*h/4./c;\n",
+ "K2=math.pi/32./t;\n",
+ "\n",
+ "u=T/(rev*2*math.pi/60.)/(K1*D**3+K2*D**4);\n",
+ "print'%s %.4f %s'%(\"viscosity of the liquid =\",u,\"pa.s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "viscosity of the liquid = 0.0054 pa.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Volumetric flow rate of oil and The load supported by the bearing\n",
+ "V=10.; ## m/s\n",
+ "h1=0.0005; ## m\n",
+ "h2=0.00025; ## m\n",
+ "L=0.1; ## m\n",
+ "b=0.1; ## m\n",
+ "RD=0.87;\n",
+ "u=2*10**-4; ## m^2/s\n",
+ "rho_w=1000.; ## kg/m^3\n",
+ "\n",
+ "H=h1/h2;\n",
+ "\n",
+ "Q=V/2*(1+H**2)/(1+H**3)*b*h1;\n",
+ "print'%s %.5f %s'%(\"Volumetric flow rate of oil =\",Q,\"m^3/s\")\n",
+ "\n",
+ "\n",
+ "F=V/2.*(1.-(1.+H**2)/(1.+H**3))*12.*RD*rho_w*u/h1**2*L**2/4.*b;\n",
+ "print'%s %.1f %s'%(\"The load supported by the bearing =\",F,\"N\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric flow rate of oil = 0.00014 m^3/s\n",
+ "The load supported by the bearing = 4640.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter6-_1.ipynb b/mechanics_of_fluid/Chapter6-_1.ipynb
new file mode 100755
index 00000000..40c8d053
--- /dev/null
+++ b/mechanics_of_fluid/Chapter6-_1.ipynb
@@ -0,0 +1,342 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1481d1999e9016b92221ce8448ff32599db545d782d2bf3365587f6b7e7a231e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter6- Laminar Flow Between Solid Boundaries"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Reynolds number and Maximum velocity and Volumetric flow rate and \"Pressure gradient along the pipe\n",
+ "RD=0.83;\n",
+ "rho_w=1000.; ## density of water in kg/m^3\n",
+ "v=2.3; ## m/s\n",
+ "d=0.012; ## m\n",
+ "u=0.08; ## dynamic viscocity in kg/m/s\n",
+ "\n",
+ "rho_oil=RD*rho_w;\n",
+ "\n",
+ "Re=rho_oil*v*d/u;\n",
+ "print'%s %.1f %s'%(\"Reynolds number =\",Re,\"\")\n",
+ "\n",
+ "v_max=2*v;\n",
+ "print'%s %.1f %s'%(\"Maximum velocity =\",v_max,\"m/s^-1\")\n",
+ "\n",
+ "\n",
+ "Q=math.pi/4*d**2*v;\n",
+ "print'%s %.2f %s'%(\"Volumetric flow rate =\",Q,\"m^3/s^-1\")\n",
+ "\n",
+ "\n",
+ "p=-128.*Q*u/math.pi/d**4;\n",
+ "print'%s %.3f %s'%(\"Pressure gradient along the pipe = \",p,\"Pa/m^-1\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reynolds number = 286.3 \n",
+ "Maximum velocity = 4.6 m/s^-1\n",
+ "Volumetric flow rate = 0.00 m^3/s^-1\n",
+ "Pressure gradient along the pipe = -40888.889 Pa/m^-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Rate at which oil must be supplied\n",
+ "c=0.001; ## m\n",
+ "p1=15*10**3; ## Pa\n",
+ "u=0.6; ## kg/m/s\n",
+ "R=6.; ## ratio of R2/R1\n",
+ "\n",
+ "Q=math.pi*c**3*p1/(6*u*math.log(R));\n",
+ "print'%s %.8f %s'%(\"Rate at which oil must be supplied =\",Q,\"m^3/s\")\n",
+ "#without round off error we cant get exact result \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate at which oil must be supplied = 0.00000731 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate \"The load the pad will support and The rate at which oil must be supplied\n",
+ "F=6*10**3; ## Pa\n",
+ "b=0.12; ## m\n",
+ "\n",
+ "f=F*b;\n",
+ "print'%s %.f %s'%(\"The load the pad will support =\",f,\"N/m\")\n",
+ "\n",
+ "\n",
+ "dp=12*10**3; ## N/m^2\n",
+ "dx=0.12; ## m\n",
+ "c=0.00018; ## m\n",
+ "u=0.5; ## kg/m/s\n",
+ "V=5.; ## m/s\n",
+ "\n",
+ "q=(dp/dx)*c**3/12./u + V*c/2.;\n",
+ "print'%s %.5f %s'%(\"The rate at which oil must be supplied =\",q,\"m^2/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The load the pad will support = 720 N/m\n",
+ "The rate at which oil must be supplied = 0.00045 m^2/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg209"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate \"Velocity of the dashpot\n",
+ "d_p=0.05; ## diameter of piston in m\n",
+ "d_c=0.0504; ## diameter of cylinder in m\n",
+ "SG=0.87;\n",
+ "rho_w=1000.; ## kg/m^3\n",
+ "v=10**-4; ## m^2/s\n",
+ "dp=1.4*10**6; ## Pa\n",
+ "l=0.13; ## m\n",
+ "\n",
+ "c=(d_c-d_p)/2.; ## clearance\n",
+ "\n",
+ "u=SG*rho_w*v; ## Dynamice viscocity\n",
+ "\n",
+ "Vp=dp*c**3/(6.*u*l*(d_p/2.+c));\n",
+ "print'%s %.4f %s'%(\"Velocity of the dashpot =\",Vp,\"m/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Velocity of the dashpot = 0.0065 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#calculate Dynamic viscosity and Kinematic viscosity and Reynolds number of sphere and Reynolds number\n",
+ "\n",
+ "d=0.00475; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "rho_s=1151.; ## kg/m^3\n",
+ "rho=880.; ## kg/m^3\n",
+ "u=0.006; ## m/s\n",
+ "\n",
+ "F=math.pi/6.*d**3*g*(rho_s-rho);\n",
+ "\n",
+ "rat_d=0.25; ## ratio of d/D\n",
+ "rat_F=1.8; ## ratio of F/Fo\n",
+ "\n",
+ "dynamic=F/(1.8*3*math.pi*u*d);\n",
+ "\n",
+ "kinematic=dynamic/rho;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Dynamic viscosity = \",dynamic,\"kg/m/s\")\n",
+ "\n",
+ "\n",
+ "print'%s %.5f %s'%(\"Kinematic viscosity =\",kinematic,\"m^2/s\")\n",
+ "\n",
+ "\n",
+ "print(\"Reynolds number of sphere \")\n",
+ "\n",
+ "Re=rho*u*d/dynamic;\n",
+ "print'%s %.3f %s'%(\"Reynolds number =\",Re,\"\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Dynamic viscosity = 0.309 kg/m/s\n",
+ "Kinematic viscosity = 0.00035 m^2/s\n",
+ "Reynolds number of sphere \n",
+ "Reynolds number = 0.081 \n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate viscosity of the liquid \n",
+ "D=0.120; ## m\n",
+ "h=0.08; ## m\n",
+ "c=0.001; ## m\n",
+ "t=0.01875; ## m\n",
+ "rev=65.; ## revolutions per min\n",
+ "T=4*10**-3; ## N.m\n",
+ "\n",
+ "K1=math.pi*h/4./c;\n",
+ "K2=math.pi/32./t;\n",
+ "\n",
+ "u=T/(rev*2*math.pi/60.)/(K1*D**3+K2*D**4);\n",
+ "print'%s %.4f %s'%(\"viscosity of the liquid =\",u,\"pa.s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "viscosity of the liquid = 0.0054 pa.s\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Volumetric flow rate of oil and The load supported by the bearing\n",
+ "V=10.; ## m/s\n",
+ "h1=0.0005; ## m\n",
+ "h2=0.00025; ## m\n",
+ "L=0.1; ## m\n",
+ "b=0.1; ## m\n",
+ "RD=0.87;\n",
+ "u=2*10**-4; ## m^2/s\n",
+ "rho_w=1000.; ## kg/m^3\n",
+ "\n",
+ "H=h1/h2;\n",
+ "\n",
+ "Q=V/2*(1+H**2)/(1+H**3)*b*h1;\n",
+ "print'%s %.5f %s'%(\"Volumetric flow rate of oil =\",Q,\"m^3/s\")\n",
+ "\n",
+ "\n",
+ "F=V/2.*(1.-(1.+H**2)/(1.+H**3))*12.*RD*rho_w*u/h1**2*L**2/4.*b;\n",
+ "print'%s %.1f %s'%(\"The load supported by the bearing =\",F,\"N\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Volumetric flow rate of oil = 0.00014 m^3/s\n",
+ "The load supported by the bearing = 4640.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter7-.ipynb b/mechanics_of_fluid/Chapter7-.ipynb
new file mode 100755
index 00000000..2d73578f
--- /dev/null
+++ b/mechanics_of_fluid/Chapter7-.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:53c88693c5ad5193ad81179b96376eeb7bad9150fdb2bbf705d611fc5268083f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Flow and Losses in Pipes and Fittings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Head lost to friction\n",
+ "Q=50*10**-3; ## m^3/s\n",
+ "d=0.15; ## m\n",
+ "l=300.; ## m\n",
+ "v=1.14*10**-6; ## m^2/s\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "## For galvanised steel\n",
+ "k=0.00015; ## m\n",
+ "t=0.001; ## ratio of k to d ; (k/d)\n",
+ "f=0.00515;\n",
+ "\n",
+ "A1=math.pi/4.*d**2;\n",
+ "\n",
+ "u=Q/A1; \n",
+ "Re=u*d/v;\n",
+ "\n",
+ "h_f=4*f*l*u**2/d/(2*g);\n",
+ "print'%s %.3f %s'%(\"Head lost to friction =\",h_f,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Head lost to friction = 16.811 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\t\t\n",
+ "#calculate rate of discharge\n",
+ "k=0.00025; ## m\n",
+ "d=0.1; ## m\n",
+ "l=120.; ## m\n",
+ "h_f=5.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "v=10**-5; ## m^2/s\n",
+ "\n",
+ "f=0.0079042;\n",
+ "\n",
+ "u=math.sqrt(h_f*d*(2.*g)/(4.*f*l));\n",
+ "Re=u*d/v;\n",
+ "\n",
+ "Q=u*math.pi/4*d**2;\n",
+ "print'%s %.4f %s'%(\"Rate =\",Q,\"m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate = 0.0126 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The size of galvanized steel pipe \n",
+ "h_f=9.; ## m\n",
+ "l=180.; ## m\n",
+ "Q=85.*10**-3; ## m^3/s\n",
+ "f=0.00475; \n",
+ "k=0.00015; ## m\n",
+ "v=1.14*10**-6; ## m^2/s\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "d=(4.*f*l*Q**2./h_f/(math.pi/4.)**2/(2.*g))**(1/5.);\n",
+ "Re=(Q/(math.pi*d**2/4))*d/v;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"The size of galvanized steel pipe =\",d,\"m \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of galvanized steel pipe = 0.187 m \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Revised estimate of the optimum pipe diameter\n",
+ "## D1=(5*b1/3/a)^(1/8)\n",
+ "## D2=(5*b1/3/a)^(1/8)\n",
+ "\n",
+ "## But b2=2.5*b1\n",
+ "## Therefore D2=(2.5)^(1/8)*D1\n",
+ "\n",
+ "D1=600.; ## mm\n",
+ "\n",
+ "D2=(2.5)**(1/8.)*D1;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Revised estimate of the optimum pipe diameter =\",D2,\"mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Revised estimate of the optimum pipe diameter = 672.8 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Pressure difference and Feed is at the centre of the main and Pressure difference \n",
+ "Q0=4.5*10**-3; ## m**3/s\n",
+ "d=0.1; ## m\n",
+ "l=4.5*10**3; ## m\n",
+ "g=9.81; ## m/s**2\n",
+ "f=0.006; \n",
+ "rho=1000.; ## kg/m**3\n",
+ "\n",
+ "u0=Q0/(math.pi/4.*d**2);\n",
+ "h_f=4.*f*u0**2*l/3./(d*2*g);\n",
+ "\n",
+ "dp=h_f*rho*g;\n",
+ "print'%s %.1f %s'%(\"Pressure difference =\",dp,\"N/m**2\")\n",
+ "\n",
+ "\n",
+ "print(\"Feed is at the centre of the main\")\n",
+ "\n",
+ "Q0_b=Q0/2.;\n",
+ "u0_b=u0/2.;\n",
+ "l_b=l/2.;\n",
+ "\n",
+ "dp_b=(u0_b/u0)**2*(l_b/l)*dp;\n",
+ "print'%s %.1f %s'%(\"Pressure difference =\",dp_b,\"N/m**2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure difference = 59090.5 N/m**2\n",
+ "Feed is at the centre of the main\n",
+ "Pressure difference = 7386.3 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The change in the level in larger tank \n",
+ "d1=3.; ## m\n",
+ "d2=2.; ## m\n",
+ "f=0.007;\n",
+ "l=75.; ## m\n",
+ "d=0.05; ## m\n",
+ "g=9.81; ## m/s**2\n",
+ "h1=1.8; ## m\n",
+ "\n",
+ "A1=math.pi/4.*d1**2;\n",
+ "A2=math.pi/4.*d2**2;\n",
+ "\n",
+ "## dh/dt=dz1/dr*(1+A1/A2)\n",
+ "## Q=-A1*dz1/dt = -4/13*A1*dh/dt\n",
+ "\n",
+ "## u=(Q/2)**2/(%pi/4*d**2)\n",
+ "## h=(4*f*l/d + 1.5)*u**2/2g = 1.438*10**5*Q**2\n",
+ "\n",
+ "## t=integrate('-1/(1+A1/A2)*A1*(1.438*10**5/h)**(1/2)','h',h1,H)\n",
+ "\n",
+ "## By integrating, we get\n",
+ "H=(h1**(1/2.)-(900./2./824.7))**2;\n",
+ "h=h1-H;\n",
+ "dz1=1./(1+A1/A2)*h;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"The change in the level in larger tank =\",dz1,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in the level in larger tank = 0.359 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter7-_1.ipynb b/mechanics_of_fluid/Chapter7-_1.ipynb
new file mode 100755
index 00000000..2d73578f
--- /dev/null
+++ b/mechanics_of_fluid/Chapter7-_1.ipynb
@@ -0,0 +1,295 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:53c88693c5ad5193ad81179b96376eeb7bad9150fdb2bbf705d611fc5268083f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter7-Flow and Losses in Pipes and Fittings"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Head lost to friction\n",
+ "Q=50*10**-3; ## m^3/s\n",
+ "d=0.15; ## m\n",
+ "l=300.; ## m\n",
+ "v=1.14*10**-6; ## m^2/s\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "## For galvanised steel\n",
+ "k=0.00015; ## m\n",
+ "t=0.001; ## ratio of k to d ; (k/d)\n",
+ "f=0.00515;\n",
+ "\n",
+ "A1=math.pi/4.*d**2;\n",
+ "\n",
+ "u=Q/A1; \n",
+ "Re=u*d/v;\n",
+ "\n",
+ "h_f=4*f*l*u**2/d/(2*g);\n",
+ "print'%s %.3f %s'%(\"Head lost to friction =\",h_f,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Head lost to friction = 16.811 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\t\t\t\n",
+ "#calculate rate of discharge\n",
+ "k=0.00025; ## m\n",
+ "d=0.1; ## m\n",
+ "l=120.; ## m\n",
+ "h_f=5.; ## m\n",
+ "g=9.81; ## m/s^2\n",
+ "v=10**-5; ## m^2/s\n",
+ "\n",
+ "f=0.0079042;\n",
+ "\n",
+ "u=math.sqrt(h_f*d*(2.*g)/(4.*f*l));\n",
+ "Re=u*d/v;\n",
+ "\n",
+ "Q=u*math.pi/4*d**2;\n",
+ "print'%s %.4f %s'%(\"Rate =\",Q,\"m^3/s\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rate = 0.0126 m^3/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The size of galvanized steel pipe \n",
+ "h_f=9.; ## m\n",
+ "l=180.; ## m\n",
+ "Q=85.*10**-3; ## m^3/s\n",
+ "f=0.00475; \n",
+ "k=0.00015; ## m\n",
+ "v=1.14*10**-6; ## m^2/s\n",
+ "g=9.81; ## m/s^2\n",
+ "\n",
+ "d=(4.*f*l*Q**2./h_f/(math.pi/4.)**2/(2.*g))**(1/5.);\n",
+ "Re=(Q/(math.pi*d**2/4))*d/v;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"The size of galvanized steel pipe =\",d,\"m \")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The size of galvanized steel pipe = 0.187 m \n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Revised estimate of the optimum pipe diameter\n",
+ "## D1=(5*b1/3/a)^(1/8)\n",
+ "## D2=(5*b1/3/a)^(1/8)\n",
+ "\n",
+ "## But b2=2.5*b1\n",
+ "## Therefore D2=(2.5)^(1/8)*D1\n",
+ "\n",
+ "D1=600.; ## mm\n",
+ "\n",
+ "D2=(2.5)**(1/8.)*D1;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Revised estimate of the optimum pipe diameter =\",D2,\"mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Revised estimate of the optimum pipe diameter = 672.8 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Pressure difference and Feed is at the centre of the main and Pressure difference \n",
+ "Q0=4.5*10**-3; ## m**3/s\n",
+ "d=0.1; ## m\n",
+ "l=4.5*10**3; ## m\n",
+ "g=9.81; ## m/s**2\n",
+ "f=0.006; \n",
+ "rho=1000.; ## kg/m**3\n",
+ "\n",
+ "u0=Q0/(math.pi/4.*d**2);\n",
+ "h_f=4.*f*u0**2*l/3./(d*2*g);\n",
+ "\n",
+ "dp=h_f*rho*g;\n",
+ "print'%s %.1f %s'%(\"Pressure difference =\",dp,\"N/m**2\")\n",
+ "\n",
+ "\n",
+ "print(\"Feed is at the centre of the main\")\n",
+ "\n",
+ "Q0_b=Q0/2.;\n",
+ "u0_b=u0/2.;\n",
+ "l_b=l/2.;\n",
+ "\n",
+ "dp_b=(u0_b/u0)**2*(l_b/l)*dp;\n",
+ "print'%s %.1f %s'%(\"Pressure difference =\",dp_b,\"N/m**2\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pressure difference = 59090.5 N/m**2\n",
+ "Feed is at the centre of the main\n",
+ "Pressure difference = 7386.3 N/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg286"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate The change in the level in larger tank \n",
+ "d1=3.; ## m\n",
+ "d2=2.; ## m\n",
+ "f=0.007;\n",
+ "l=75.; ## m\n",
+ "d=0.05; ## m\n",
+ "g=9.81; ## m/s**2\n",
+ "h1=1.8; ## m\n",
+ "\n",
+ "A1=math.pi/4.*d1**2;\n",
+ "A2=math.pi/4.*d2**2;\n",
+ "\n",
+ "## dh/dt=dz1/dr*(1+A1/A2)\n",
+ "## Q=-A1*dz1/dt = -4/13*A1*dh/dt\n",
+ "\n",
+ "## u=(Q/2)**2/(%pi/4*d**2)\n",
+ "## h=(4*f*l/d + 1.5)*u**2/2g = 1.438*10**5*Q**2\n",
+ "\n",
+ "## t=integrate('-1/(1+A1/A2)*A1*(1.438*10**5/h)**(1/2)','h',h1,H)\n",
+ "\n",
+ "## By integrating, we get\n",
+ "H=(h1**(1/2.)-(900./2./824.7))**2;\n",
+ "h=h1-H;\n",
+ "dz1=1./(1+A1/A2)*h;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"The change in the level in larger tank =\",dz1,\"m\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in the level in larger tank = 0.359 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter8-.ipynb b/mechanics_of_fluid/Chapter8-.ipynb
new file mode 100755
index 00000000..a66b62b6
--- /dev/null
+++ b/mechanics_of_fluid/Chapter8-.ipynb
@@ -0,0 +1,350 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0fec1a915dc11972a0b348fe3db6dc5cdc775b2840fa9a3ae3580b08a05d480b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Boundary Layers, Wakes and Other Shear Layers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Displacement thickness and Momentum thickness \n",
+ "delta=0.6; ## mm\n",
+ "\n",
+ "delta1=delta/3.;\n",
+ "\n",
+ "theta=2./15*delta;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Displacement thickness =\",delta1,\"mm\")\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Momentum thickness =\",theta,\"mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Displacement thickness = 0.2 mm\n",
+ "Momentum thickness = 0.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Evaluate the constants A and B\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "## To determine the values of a1 & a2 following conditions must be satisfied\n",
+ "\n",
+ "## Condition I - When n=0, u/um=0\n",
+ "## Condition II - When n=1, u/um=a1+a2=1\n",
+ "## Condition III - When n=1, d(u/um)/dn = a1+2a2=0\n",
+ "\n",
+ "## By satisfying these conditions, we have\n",
+ "## a1+a2=1;\n",
+ "## a1+2a2=0;\n",
+ "\n",
+ "A=([[1,1],[1,2]]);\n",
+ "B=([[1],[0]]);\n",
+ "X=numpy.linalg.inv(A)*B;\n",
+ "\n",
+ "a1=X[0];\n",
+ "a2=X[1];\n",
+ "\n",
+ "print(\"a1=\",a1[0])\n",
+ "\n",
+ "print(\"a2=\",a1[1])\n",
+ "\n",
+ "\n",
+ "print(\"Evaluate the constants A and B\")\n",
+ "\n",
+ "## A = integrate('(1-f(n))*f(n)','n',0,1)\n",
+ "\n",
+ "def function(n):\n",
+ "\tfun=(1-(2*n-n**2))*(2*n-n**2)\n",
+ "\treturn fun\n",
+ "\n",
+ "A=scipy.integrate.quad(function,0,1)\n",
+ "print(\"A = \",A[0],\"\")\n",
+ "\n",
+ "\n",
+ "## B = differentiation of (2*n-n^2) at n=0, we get \n",
+ "B=2;\n",
+ "\n",
+ "print(\"B =\",B,\"\")\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('a1=', 2.0)\n",
+ "('a2=', -1.0)\n",
+ "Evaluate the constants A and B\n",
+ "('A = ', 0.13333333333333333, '')\n",
+ "('B =', 2, '')\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Evaluate the constants A and B\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "## To determine the values of a1 & a2 following conditions must be satisfied\n",
+ "\n",
+ "## Condition I - When n=0, u/um=0\n",
+ "## Condition II - When n=1, u/um=a1+a2=1\n",
+ "## Condition III - When n=1, d(u/um)/dn = a1+2a2=0\n",
+ "\n",
+ "## By satisfying these conditions, we have\n",
+ "## a1+a2=1;\n",
+ "## a1+2a2=0;\n",
+ "\n",
+ "A=([[1,1],[1,2]]);\n",
+ "B=([[1],[0]]);\n",
+ "X=numpy.linalg.inv(A)*B;\n",
+ "\n",
+ "a1=X[0];\n",
+ "a2=X[1];\n",
+ "\n",
+ "print(\"a1=\",a1[0])\n",
+ "\n",
+ "print(\"a2=\",a1[1])\n",
+ "\n",
+ "\n",
+ "print(\"Evaluate the constants A and B\")\n",
+ "\n",
+ "## A = integrate('(1-f(n))*f(n)','n',0,1)\n",
+ "\n",
+ "def function(n):\n",
+ "\tfun=(1-(2*n-n**2))*(2*n-n**2)\n",
+ "\treturn fun\n",
+ "\n",
+ "A=scipy.integrate.quad(function,0,1)\n",
+ "print(\"A = \",A[0],\"\")\n",
+ "\n",
+ "\n",
+ "## B = differentiation of (2*n-n^2) at n=0, we get \n",
+ "B=2;\n",
+ "\n",
+ "print(\"B =\",B,\"\")\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('a1=', 2.0)\n",
+ "('a2=', -1.0)\n",
+ "Evaluate the constants A and B\n",
+ "('A = ', 0.13333333333333333, '')\n",
+ "('B =', 2, '')\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the velocity of the airstream and frictional drag of the plat\n",
+ "v=1.5*10**(-5); ## m^2/s\n",
+ "Re_t=5.*10**5;\n",
+ "x_t=1.2; ## m\n",
+ "rho=1.21; ## kg/m^3\n",
+ "\n",
+ "u_m=v*Re_t/x_t;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"the velocity of the airstream =\",u_m,\"m/s\")\n",
+ "\n",
+ "\n",
+ "theta=0.646*x_t/math.sqrt(Re_t);\n",
+ "\n",
+ "F=rho*u_m**2*theta;\n",
+ "\n",
+ "D_F=2.*F*x_t;\n",
+ "print'%s %.3f %s'%(\"the frictional drag of the plate, D_F =\",D_F,\"N\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the velocity of the airstream = 6.25 m/s\n",
+ "the frictional drag of the plate, D_F = 0.124 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg316"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boundary layer thickness at the rear of the train and the frictional drag acting on the train and the power required to overcome the frictional drag\n",
+ "u_m = 50.; ## m/s or 180 km/h\n",
+ "v=1.5*10**(-5); ## m^2/s\n",
+ "l=100.; ## m\n",
+ "rho=1.2; ## kg/m^3\n",
+ "b=8.3; ## m\n",
+ "\n",
+ "delta = 0.37*(v/u_m)**(1/5.)*l**(4/5.);\n",
+ "\n",
+ "print'%s %.3f %s'%(\"the boundary layer thickness at the rear of the train =\",delta,\"m\")\n",
+ "Re_l = u_m*l/v;\n",
+ "C_F=0.074*(Re_l)**(-1/5.);\n",
+ "F=0.037*rho*u_m**2*l*Re_l**(-1/5.);\n",
+ "\n",
+ "D_F = F*b;\n",
+ "\n",
+ "print'%s %.4f %s'%(\"the frictional drag acting on the train, D_F =\",D_F,\"N\")\n",
+ "\n",
+ "\n",
+ "P=D_F*u_m;\n",
+ "print'%s %.1f %s'%(\"the power required to overcome the frictional drag =\",P/1000,\"kW\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the boundary layer thickness at the rear of the train = 0.731 m\n",
+ "the frictional drag acting on the train, D_F = 1818.9691 N\n",
+ "the power required to overcome the frictional drag = 90.9 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the proportion of the plate occupied by the laminar boundary layer and the skin friction coefficient CF evaluated at the trailing edge\n",
+ "Re_t=5.*10**5;\n",
+ "Re_l=5.*10**6;\n",
+ "\n",
+ "r1=Re_t/Re_l; ## r1=x_t/l\n",
+ "r2=1-36.9*(1./Re_t)**(3/8.); ## r2=x_0/x_t\n",
+ "\n",
+ "r=r1*r2; ## r=x_0/l;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"the proportion of the plate occupied by the laminar boundary layer =\",r*100,\"%\")\n",
+ "\n",
+ "C_F = 0.074/Re_l**(1/5.)*(1-r)**(4/5.);\n",
+ "print'%s %.4f %s'%(\"the skin friction coefficient CF evaluated at the trailing edge =\",C_F,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the proportion of the plate occupied by the laminar boundary layer = 7.31 %\n",
+ "the skin friction coefficient CF evaluated at the trailing edge = 0.0032 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter8-_1.ipynb b/mechanics_of_fluid/Chapter8-_1.ipynb
new file mode 100755
index 00000000..a66b62b6
--- /dev/null
+++ b/mechanics_of_fluid/Chapter8-_1.ipynb
@@ -0,0 +1,350 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:0fec1a915dc11972a0b348fe3db6dc5cdc775b2840fa9a3ae3580b08a05d480b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter8-Boundary Layers, Wakes and Other Shear Layers"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg302"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Displacement thickness and Momentum thickness \n",
+ "delta=0.6; ## mm\n",
+ "\n",
+ "delta1=delta/3.;\n",
+ "\n",
+ "theta=2./15*delta;\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Displacement thickness =\",delta1,\"mm\")\n",
+ "\n",
+ "print'%s %.2f %s'%(\"Momentum thickness =\",theta,\"mm\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Displacement thickness = 0.2 mm\n",
+ "Momentum thickness = 0.08 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Evaluate the constants A and B\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "## To determine the values of a1 & a2 following conditions must be satisfied\n",
+ "\n",
+ "## Condition I - When n=0, u/um=0\n",
+ "## Condition II - When n=1, u/um=a1+a2=1\n",
+ "## Condition III - When n=1, d(u/um)/dn = a1+2a2=0\n",
+ "\n",
+ "## By satisfying these conditions, we have\n",
+ "## a1+a2=1;\n",
+ "## a1+2a2=0;\n",
+ "\n",
+ "A=([[1,1],[1,2]]);\n",
+ "B=([[1],[0]]);\n",
+ "X=numpy.linalg.inv(A)*B;\n",
+ "\n",
+ "a1=X[0];\n",
+ "a2=X[1];\n",
+ "\n",
+ "print(\"a1=\",a1[0])\n",
+ "\n",
+ "print(\"a2=\",a1[1])\n",
+ "\n",
+ "\n",
+ "print(\"Evaluate the constants A and B\")\n",
+ "\n",
+ "## A = integrate('(1-f(n))*f(n)','n',0,1)\n",
+ "\n",
+ "def function(n):\n",
+ "\tfun=(1-(2*n-n**2))*(2*n-n**2)\n",
+ "\treturn fun\n",
+ "\n",
+ "A=scipy.integrate.quad(function,0,1)\n",
+ "print(\"A = \",A[0],\"\")\n",
+ "\n",
+ "\n",
+ "## B = differentiation of (2*n-n^2) at n=0, we get \n",
+ "B=2;\n",
+ "\n",
+ "print(\"B =\",B,\"\")\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('a1=', 2.0)\n",
+ "('a2=', -1.0)\n",
+ "Evaluate the constants A and B\n",
+ "('A = ', 0.13333333333333333, '')\n",
+ "('B =', 2, '')\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg310"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Evaluate the constants A and B\n",
+ "import numpy\n",
+ "from numpy import linalg\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "## To determine the values of a1 & a2 following conditions must be satisfied\n",
+ "\n",
+ "## Condition I - When n=0, u/um=0\n",
+ "## Condition II - When n=1, u/um=a1+a2=1\n",
+ "## Condition III - When n=1, d(u/um)/dn = a1+2a2=0\n",
+ "\n",
+ "## By satisfying these conditions, we have\n",
+ "## a1+a2=1;\n",
+ "## a1+2a2=0;\n",
+ "\n",
+ "A=([[1,1],[1,2]]);\n",
+ "B=([[1],[0]]);\n",
+ "X=numpy.linalg.inv(A)*B;\n",
+ "\n",
+ "a1=X[0];\n",
+ "a2=X[1];\n",
+ "\n",
+ "print(\"a1=\",a1[0])\n",
+ "\n",
+ "print(\"a2=\",a1[1])\n",
+ "\n",
+ "\n",
+ "print(\"Evaluate the constants A and B\")\n",
+ "\n",
+ "## A = integrate('(1-f(n))*f(n)','n',0,1)\n",
+ "\n",
+ "def function(n):\n",
+ "\tfun=(1-(2*n-n**2))*(2*n-n**2)\n",
+ "\treturn fun\n",
+ "\n",
+ "A=scipy.integrate.quad(function,0,1)\n",
+ "print(\"A = \",A[0],\"\")\n",
+ "\n",
+ "\n",
+ "## B = differentiation of (2*n-n^2) at n=0, we get \n",
+ "B=2;\n",
+ "\n",
+ "print(\"B =\",B,\"\")\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "('a1=', 2.0)\n",
+ "('a2=', -1.0)\n",
+ "Evaluate the constants A and B\n",
+ "('A = ', 0.13333333333333333, '')\n",
+ "('B =', 2, '')\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg312"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the velocity of the airstream and frictional drag of the plat\n",
+ "v=1.5*10**(-5); ## m^2/s\n",
+ "Re_t=5.*10**5;\n",
+ "x_t=1.2; ## m\n",
+ "rho=1.21; ## kg/m^3\n",
+ "\n",
+ "u_m=v*Re_t/x_t;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"the velocity of the airstream =\",u_m,\"m/s\")\n",
+ "\n",
+ "\n",
+ "theta=0.646*x_t/math.sqrt(Re_t);\n",
+ "\n",
+ "F=rho*u_m**2*theta;\n",
+ "\n",
+ "D_F=2.*F*x_t;\n",
+ "print'%s %.3f %s'%(\"the frictional drag of the plate, D_F =\",D_F,\"N\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the velocity of the airstream = 6.25 m/s\n",
+ "the frictional drag of the plate, D_F = 0.124 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg316"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the boundary layer thickness at the rear of the train and the frictional drag acting on the train and the power required to overcome the frictional drag\n",
+ "u_m = 50.; ## m/s or 180 km/h\n",
+ "v=1.5*10**(-5); ## m^2/s\n",
+ "l=100.; ## m\n",
+ "rho=1.2; ## kg/m^3\n",
+ "b=8.3; ## m\n",
+ "\n",
+ "delta = 0.37*(v/u_m)**(1/5.)*l**(4/5.);\n",
+ "\n",
+ "print'%s %.3f %s'%(\"the boundary layer thickness at the rear of the train =\",delta,\"m\")\n",
+ "Re_l = u_m*l/v;\n",
+ "C_F=0.074*(Re_l)**(-1/5.);\n",
+ "F=0.037*rho*u_m**2*l*Re_l**(-1/5.);\n",
+ "\n",
+ "D_F = F*b;\n",
+ "\n",
+ "print'%s %.4f %s'%(\"the frictional drag acting on the train, D_F =\",D_F,\"N\")\n",
+ "\n",
+ "\n",
+ "P=D_F*u_m;\n",
+ "print'%s %.1f %s'%(\"the power required to overcome the frictional drag =\",P/1000,\"kW\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the boundary layer thickness at the rear of the train = 0.731 m\n",
+ "the frictional drag acting on the train, D_F = 1818.9691 N\n",
+ "the power required to overcome the frictional drag = 90.9 kW\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex6-pg318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the proportion of the plate occupied by the laminar boundary layer and the skin friction coefficient CF evaluated at the trailing edge\n",
+ "Re_t=5.*10**5;\n",
+ "Re_l=5.*10**6;\n",
+ "\n",
+ "r1=Re_t/Re_l; ## r1=x_t/l\n",
+ "r2=1-36.9*(1./Re_t)**(3/8.); ## r2=x_0/x_t\n",
+ "\n",
+ "r=r1*r2; ## r=x_0/l;\n",
+ "\n",
+ "print'%s %.2f %s'%(\"the proportion of the plate occupied by the laminar boundary layer =\",r*100,\"%\")\n",
+ "\n",
+ "C_F = 0.074/Re_l**(1/5.)*(1-r)**(4/5.);\n",
+ "print'%s %.4f %s'%(\"the skin friction coefficient CF evaluated at the trailing edge =\",C_F,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the proportion of the plate occupied by the laminar boundary layer = 7.31 %\n",
+ "the skin friction coefficient CF evaluated at the trailing edge = 0.0032 \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter9-.ipynb b/mechanics_of_fluid/Chapter9-.ipynb
new file mode 100755
index 00000000..d3acb158
--- /dev/null
+++ b/mechanics_of_fluid/Chapter9-.ipynb
@@ -0,0 +1,273 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3a2694f8f0eab29c82f8ee266172c1c857b71aa63b1096f76897d1574494f3bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-The Flow of an Inviscid Fluid"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Mass flow rate\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "## p_a-p_b=-1/2*rho*C^2*(1/R_A^2-1/R_B^2)\n",
+ "\n",
+ "rho_w=1000.; ## kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "h=0.0115; ## m\n",
+ "rho=1.22; ## kg/m^3\n",
+ "R_A=0.4; ## m\n",
+ "R_B=0.2; ## m\n",
+ "\n",
+ "C=math.sqrt(rho_w*g*h*2./(rho*(1./R_B**2-1./R_A**2)));\n",
+ "\n",
+ "def function(R):\n",
+ "\ty=1./R;\n",
+ "\treturn y;\n",
+ "\n",
+ "new=scipy.integrate.quad(function, R_B, R_A);\n",
+ "m=rho*C*R_B*new[0]\n",
+ "print\"%s %.4f %s\"%(\"Mass flow rate =\",m,\"kg/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate = 0.5312 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The maximum speed at which the paddles may rotate about their vertical axis\n",
+ "## p=1/2*rho*w^2*R^2 + C\n",
+ "\n",
+ "\n",
+ "## At z=0\n",
+ "rho=900.; ## kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "h=0.6; ## m\n",
+ "\n",
+ "C=rho*g*h;\n",
+ "\n",
+ "## p = -rho*K^2/(2*R^2)+D\n",
+ "## From this we get, D = 9*w^2 + C\n",
+ "\n",
+ "## At z = 0\n",
+ "## p = D - rho*K^2/2/R^2;\n",
+ "p_max=150000.; ## Pa\n",
+ "\n",
+ "## From the above equation we obtain,\n",
+ "w=135.6; ## rad/s\n",
+ "\n",
+ "print'%s %.1f %s'%(\"The maximum speed at which the paddles may rotate about their vertical axis =\",w,\"rad/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum speed at which the paddles may rotate about their vertical axis = 135.6 rad/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the strength of the line source and the distance s the line source is located behind the leading edge of the step and Horizontal component andVertical Component \n",
+ "U=40; ## m/s\n",
+ "h=0.01; ## m\n",
+ "\n",
+ "m=2*U*h;\n",
+ "print'%s %.1f %s'%(\"the strength of the line source =\",m,\"m^2/s\")\n",
+ "\n",
+ "\n",
+ "s = m/(2*math.pi*U);\n",
+ "print'%s %.2f %s'%(\" the distance s the line source is located behind the leading edge of the step =\",s*1000,\"mm\")\n",
+ "\n",
+ "\n",
+ "\n",
+ "x=0; ## m\n",
+ "y=0.005; ## m\n",
+ "\n",
+ "u=U + m/(2*math.pi)*(x/(x**2+y**2));\n",
+ "v=m/(2*math.pi)*(y/(x**2+y**2));\n",
+ "print'%s %.f %s'%(\"Horizontal component =\",u,\"m/s\")\n",
+ "\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Vertical Component =\",v,\"m/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the strength of the line source = 0.8 m^2/s\n",
+ " the distance s the line source is located behind the leading edge of the step = 3.18 mm\n",
+ "Horizontal component = 40 m/s\n",
+ "Vertical Component = 25.5 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate length\n",
+ "b=0.0375; ## m\n",
+ "t=0.0625; ## m\n",
+ "U=5.; ## m/s\n",
+ "\n",
+ "m=2*math.pi*U*t/math.atan(2*b*t/(t**2-b**2));\n",
+ "\n",
+ "L=2.*b*(1+m/(math.pi*U*b))**(1/2.);\n",
+ "\n",
+ "print'%s %.7f %s'%(\"L =\",L,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 0.1515673 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Lift coefficient and Drag coefficient and Effective angle of attack\n",
+ "l1=10.; ## m\n",
+ "r1=2.; ## m\n",
+ "C_D1=0.0588;\n",
+ "theta1=6.5; ## degrees\n",
+ "\n",
+ "AR1=l1/r1; ## Aspect ratio\n",
+ "\n",
+ "C_L=0.914;\n",
+ "\n",
+ "C_D2=C_L**2./(math.pi*AR1);\n",
+ "theta2=math.atan(C_L/(math.pi*AR1))*57.3\n",
+ "\n",
+ "C_D3=C_D1-C_D2;\n",
+ "theta3=theta1-theta2;\n",
+ "\n",
+ "AR2=8.;\n",
+ "\n",
+ "C_Di=C_L**2./(math.pi*AR2);\n",
+ "C_D=C_Di+C_D3;\n",
+ "\n",
+ "theta4=math.atan(C_L/(math.pi*AR2))*57.3;\n",
+ "theta=theta4+theta3;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Lift coefficient =\",C_L,\"\")\n",
+ "\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Drag coefficient =\",C_D,\"\")\n",
+ "\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Effective angle of attack =\",theta,\"degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Lift coefficient = 0.914 \n",
+ "Drag coefficient = 0.0389 \n",
+ "Effective angle of attack = 5.253 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/Chapter9-_1.ipynb b/mechanics_of_fluid/Chapter9-_1.ipynb
new file mode 100755
index 00000000..d3acb158
--- /dev/null
+++ b/mechanics_of_fluid/Chapter9-_1.ipynb
@@ -0,0 +1,273 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:3a2694f8f0eab29c82f8ee266172c1c857b71aa63b1096f76897d1574494f3bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter9-The Flow of an Inviscid Fluid"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Mass flow rate\n",
+ "import scipy\n",
+ "from scipy import integrate\n",
+ "## p_a-p_b=-1/2*rho*C^2*(1/R_A^2-1/R_B^2)\n",
+ "\n",
+ "rho_w=1000.; ## kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "h=0.0115; ## m\n",
+ "rho=1.22; ## kg/m^3\n",
+ "R_A=0.4; ## m\n",
+ "R_B=0.2; ## m\n",
+ "\n",
+ "C=math.sqrt(rho_w*g*h*2./(rho*(1./R_B**2-1./R_A**2)));\n",
+ "\n",
+ "def function(R):\n",
+ "\ty=1./R;\n",
+ "\treturn y;\n",
+ "\n",
+ "new=scipy.integrate.quad(function, R_B, R_A);\n",
+ "m=rho*C*R_B*new[0]\n",
+ "print\"%s %.4f %s\"%(\"Mass flow rate =\",m,\"kg/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mass flow rate = 0.5312 kg/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex3-pg382"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#The maximum speed at which the paddles may rotate about their vertical axis\n",
+ "## p=1/2*rho*w^2*R^2 + C\n",
+ "\n",
+ "\n",
+ "## At z=0\n",
+ "rho=900.; ## kg/m^3\n",
+ "g=9.81; ## m/s^2\n",
+ "h=0.6; ## m\n",
+ "\n",
+ "C=rho*g*h;\n",
+ "\n",
+ "## p = -rho*K^2/(2*R^2)+D\n",
+ "## From this we get, D = 9*w^2 + C\n",
+ "\n",
+ "## At z = 0\n",
+ "## p = D - rho*K^2/2/R^2;\n",
+ "p_max=150000.; ## Pa\n",
+ "\n",
+ "## From the above equation we obtain,\n",
+ "w=135.6; ## rad/s\n",
+ "\n",
+ "print'%s %.1f %s'%(\"The maximum speed at which the paddles may rotate about their vertical axis =\",w,\"rad/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum speed at which the paddles may rotate about their vertical axis = 135.6 rad/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex4-pg386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate the strength of the line source and the distance s the line source is located behind the leading edge of the step and Horizontal component andVertical Component \n",
+ "U=40; ## m/s\n",
+ "h=0.01; ## m\n",
+ "\n",
+ "m=2*U*h;\n",
+ "print'%s %.1f %s'%(\"the strength of the line source =\",m,\"m^2/s\")\n",
+ "\n",
+ "\n",
+ "s = m/(2*math.pi*U);\n",
+ "print'%s %.2f %s'%(\" the distance s the line source is located behind the leading edge of the step =\",s*1000,\"mm\")\n",
+ "\n",
+ "\n",
+ "\n",
+ "x=0; ## m\n",
+ "y=0.005; ## m\n",
+ "\n",
+ "u=U + m/(2*math.pi)*(x/(x**2+y**2));\n",
+ "v=m/(2*math.pi)*(y/(x**2+y**2));\n",
+ "print'%s %.f %s'%(\"Horizontal component =\",u,\"m/s\")\n",
+ "\n",
+ "\n",
+ "print'%s %.1f %s'%(\"Vertical Component =\",v,\"m/s\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the strength of the line source = 0.8 m^2/s\n",
+ " the distance s the line source is located behind the leading edge of the step = 3.18 mm\n",
+ "Horizontal component = 40 m/s\n",
+ "Vertical Component = 25.5 m/s\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex5-pg389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate length\n",
+ "b=0.0375; ## m\n",
+ "t=0.0625; ## m\n",
+ "U=5.; ## m/s\n",
+ "\n",
+ "m=2*math.pi*U*t/math.atan(2*b*t/(t**2-b**2));\n",
+ "\n",
+ "L=2.*b*(1+m/(math.pi*U*b))**(1/2.);\n",
+ "\n",
+ "print'%s %.7f %s'%(\"L =\",L,\"m\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L = 0.1515673 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex7-pg409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#calculate Lift coefficient and Drag coefficient and Effective angle of attack\n",
+ "l1=10.; ## m\n",
+ "r1=2.; ## m\n",
+ "C_D1=0.0588;\n",
+ "theta1=6.5; ## degrees\n",
+ "\n",
+ "AR1=l1/r1; ## Aspect ratio\n",
+ "\n",
+ "C_L=0.914;\n",
+ "\n",
+ "C_D2=C_L**2./(math.pi*AR1);\n",
+ "theta2=math.atan(C_L/(math.pi*AR1))*57.3\n",
+ "\n",
+ "C_D3=C_D1-C_D2;\n",
+ "theta3=theta1-theta2;\n",
+ "\n",
+ "AR2=8.;\n",
+ "\n",
+ "C_Di=C_L**2./(math.pi*AR2);\n",
+ "C_D=C_Di+C_D3;\n",
+ "\n",
+ "theta4=math.atan(C_L/(math.pi*AR2))*57.3;\n",
+ "theta=theta4+theta3;\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Lift coefficient =\",C_L,\"\")\n",
+ "\n",
+ "\n",
+ "print'%s %.4f %s'%(\"Drag coefficient =\",C_D,\"\")\n",
+ "\n",
+ "\n",
+ "print'%s %.3f %s'%(\"Effective angle of attack =\",theta,\"degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Lift coefficient = 0.914 \n",
+ "Drag coefficient = 0.0389 \n",
+ "Effective angle of attack = 5.253 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/mechanics_of_fluid/README.txt b/mechanics_of_fluid/README.txt
new file mode 100755
index 00000000..0bdbbd0a
--- /dev/null
+++ b/mechanics_of_fluid/README.txt
@@ -0,0 +1,10 @@
+Contributed By: nemi chand
+Course: btech
+College/Institute/Organization: iitbombay
+Department/Designation: chemical engineering
+Book Title: mechanics of fluid
+Author: B. S. Massey And A. J. Ward-Smith
+Publisher: Taylor & Francis Group
+Year of publication: 2009
+Isbn: 9788131512340
+Edition: 8 \ No newline at end of file
diff --git a/mechanics_of_fluid/screenshots/Chapter3_fluid.png b/mechanics_of_fluid/screenshots/Chapter3_fluid.png
new file mode 100755
index 00000000..42e64e0d
--- /dev/null
+++ b/mechanics_of_fluid/screenshots/Chapter3_fluid.png
Binary files differ
diff --git a/mechanics_of_fluid/screenshots/Chapter3_fluid_1.png b/mechanics_of_fluid/screenshots/Chapter3_fluid_1.png
new file mode 100755
index 00000000..42e64e0d
--- /dev/null
+++ b/mechanics_of_fluid/screenshots/Chapter3_fluid_1.png
Binary files differ
diff --git a/mechanics_of_fluid/screenshots/Chapter4_fluid.png b/mechanics_of_fluid/screenshots/Chapter4_fluid.png
new file mode 100755
index 00000000..e82ea1b2
--- /dev/null
+++ b/mechanics_of_fluid/screenshots/Chapter4_fluid.png
Binary files differ
diff --git a/mechanics_of_fluid/screenshots/Chapter4_fluid_1.png b/mechanics_of_fluid/screenshots/Chapter4_fluid_1.png
new file mode 100755
index 00000000..e82ea1b2
--- /dev/null
+++ b/mechanics_of_fluid/screenshots/Chapter4_fluid_1.png
Binary files differ
diff --git a/mechanics_of_fluid/screenshots/Chapter5_fluid.png b/mechanics_of_fluid/screenshots/Chapter5_fluid.png
new file mode 100755
index 00000000..63d1c1a0
--- /dev/null
+++ b/mechanics_of_fluid/screenshots/Chapter5_fluid.png
Binary files differ
diff --git a/mechanics_of_fluid/screenshots/Chapter5_fluid_1.png b/mechanics_of_fluid/screenshots/Chapter5_fluid_1.png
new file mode 100755
index 00000000..63d1c1a0
--- /dev/null
+++ b/mechanics_of_fluid/screenshots/Chapter5_fluid_1.png
Binary files differ
diff --git a/sample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance.ipynb b/sample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance.ipynb
new file mode 100755
index 00000000..4f69b243
--- /dev/null
+++ b/sample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance.ipynb
@@ -0,0 +1,2636 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e85379c4218575d4b069259557cffbbc2d0259e3ba5d0e030c11dd77aae5e38d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page Number:444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#A simple classA having a public data member x\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ "\n",
+ "#A simple classA having a public data member y \n",
+ "class B(A): #derived class\n",
+ " def __init__(self):\n",
+ " self.y=None\n",
+ " \n",
+ "b=B() #create a instance b of Derived class B\n",
+ "b.x=20\n",
+ "b.y=30\n",
+ "\n",
+ "print 'member of A:',b.x\n",
+ "print 'Member of B:',b.y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "member of A: 20\n",
+ "Member of B: 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page Number:445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A:\n",
+ " def __init__(self): #class A having x as a private data member\n",
+ " self.__x=20\n",
+ " \n",
+ " def showx(self):\n",
+ " print \"x=\",self.__x\n",
+ " \n",
+ " \n",
+ "class B(A): #Derived class\n",
+ " def __init__(self):\n",
+ " self.y=30 #class B having y as a public data member\n",
+ " \n",
+ " def show(self):\n",
+ " a=A()\n",
+ " a.showx()\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ " \n",
+ "b=B() #declaration of object\n",
+ " #class the method of derived class object by a derived class instance\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 20\n",
+ "y= 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page Number:447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#base class\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None #x is a public member\n",
+ " \n",
+ " \n",
+ "#derived class\n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.y=40 \n",
+ " A.__x=20 #since it is privately inherites base class ,x become private member of it\n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",A.__x\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ "b=B()\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 20\n",
+ "y= 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page Number:448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.__x=20 #x is a privet member of it\n",
+ " \n",
+ " def showx(self): \n",
+ " print \"x=\",self.__x\n",
+ " \n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.y=40 #y is a public member of it\n",
+ " \n",
+ " def show(self):\n",
+ " a=A()\n",
+ " a.showx() #call the base class method\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ " \n",
+ "b=B()\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 20\n",
+ "y= 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page Number:449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A:\n",
+ " def __init__(self):\n",
+ " self._x=None #x is a protected member of the base class\n",
+ " \n",
+ " \n",
+ "class B(A): #private inheritance,x become a private member of the derived class\n",
+ " def __init__(self):\n",
+ " self.y=40\n",
+ " self.__x=30\n",
+ " \n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",self.__x\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ " \n",
+ "b=B()\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 30\n",
+ "y= 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.6, Page Number:456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class ABC: #Base class\n",
+ " def __init__(self):\n",
+ " self._name=None #these 2 are protected data member\n",
+ " self._age=None\n",
+ " \n",
+ "class abc(ABC): #Derived class ,Public derivation\n",
+ " def __init__(self):\n",
+ " self.height=None\n",
+ " self.weight=None\n",
+ " \n",
+ " def getdata(self):\n",
+ " \n",
+ " self.name=raw_input(\"Enter a name: \") #take inputes to all the data members \n",
+ " self.age=raw_input(\"Enter a age: \") \n",
+ " self._height=raw_input(\"Enter a Height: \") \n",
+ " self._weight=raw_input(\"Enter a Weight: \") \n",
+ " \n",
+ " def show(self): #display the value of data members\n",
+ " print 'Name:',self.name \n",
+ " print 'Age:',self.age,\"years\"\n",
+ " print 'Height:',self._height,\"Feets\"\n",
+ " print 'Weight:',self._weight,\"kg.\"\n",
+ " \n",
+ " \n",
+ "x=abc()\n",
+ "x.getdata()\n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a name: Santosh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a age: 24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Height: 4.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Weight: 50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Santosh\n",
+ "Age: 24 years\n",
+ "Height: 4.5 Feets\n",
+ "Weight: 50 kg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.7, Page Number:458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A1: #super Base class,have 2 protected data members\n",
+ " def __init__(self):\n",
+ " self._name=None\n",
+ " self._age=None\n",
+ "\n",
+ " \n",
+ "class A2(A1): #Public derivation\n",
+ " def __init(self):\n",
+ " self._height=None\n",
+ " self._weight=None\n",
+ "\n",
+ "class A3(A2): #public Derivation\n",
+ " def __init__(self):\n",
+ " self._sex=None\n",
+ " \n",
+ " \n",
+ " def get(self): #get input \n",
+ " self._name=raw_input(\"Name: \")\n",
+ " self._age=raw_input(\"Age: \")\n",
+ " self._sex=raw_input(\"Sex: \")\n",
+ " \n",
+ " self._height=raw_input(\"Height: \")\n",
+ " self._weight=raw_input(\"Weight: \")\n",
+ " \n",
+ " def show(self): #Display values of all the data members\n",
+ " print \"Name:\",self._name\n",
+ " print \"Age:\",self._age ,\"years\"\n",
+ " print \"Sex:\",self._sex\n",
+ " print \"Height:\",self._height ,\"Feet\"\n",
+ " print \"Weight:\",self._weight ,\"Kg.\"\n",
+ " \n",
+ "\n",
+ "x=A3()\n",
+ "x.get()\n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Balaji\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age: 26\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex: M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height: 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight: 49.5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Balaji\n",
+ "Age: 26 years\n",
+ "Sex: M\n",
+ "Height: 4 Feet\n",
+ "Weight: 49.5 Kg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.8, Page Number:459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example of multiple Inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self._a=None\n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " self._b=None\n",
+ " \n",
+ " \n",
+ "class C:\n",
+ " def __init__(self):\n",
+ " self._c=None\n",
+ " \n",
+ "class D:\n",
+ " def __init__(self):\n",
+ " self._d=None\n",
+ " \n",
+ "class E(A,B,C,D): #inherites all the base classes publically\n",
+ " def __init__(self):\n",
+ " self.e=None\n",
+ " \n",
+ " def getdata(self):\n",
+ " print \"Enter the value of a,b,c &d &e:\"\n",
+ " self._a=input()\n",
+ " self._b=input()\n",
+ " self._c=input()\n",
+ " self._d=input()\n",
+ " self._e=input()\n",
+ " \n",
+ " def show(self):\n",
+ " print\"a=\",self._a,\"b=\",self._b,\"c=\",self._c,\"d=\",self._d,\"e=\",self._e\n",
+ " \n",
+ " \n",
+ "x=E() #x is the instance of the derived class\n",
+ "x.getdata() #call the methods of derived class through x \n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value of a,b,c &d &e:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "16\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a= 1 b= 2 c= 4 d= 8 e= 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.9, Page Number:461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class red: #these three base class\n",
+ " def __init__(self):\n",
+ " print \"Red\",\n",
+ " \n",
+ "class yellow:\n",
+ " def __init__(self):\n",
+ " print \"Yellow\",\n",
+ " \n",
+ "class blue:\n",
+ " def __init__(self):\n",
+ " print \"Blue\",\n",
+ " \n",
+ "class orange(red,yellow): #public multiple Derivation\n",
+ " def __init__(self):\n",
+ " red.__init__(self)\n",
+ " yellow.__init__(self)\n",
+ " print \"=Orange\",\n",
+ " \n",
+ "class green(blue,yellow): #public multiple Derivation\n",
+ " def __init__(self):\n",
+ " blue.__init__(self)\n",
+ " yellow.__init__(self)\n",
+ " print \"=Green\",\n",
+ " \n",
+ "class violet(red,blue): #public multiple Derivation\n",
+ " def __init__(self):\n",
+ " red.__init__(self)\n",
+ " blue.__init__(self)\n",
+ " print \"=Violet\",\n",
+ " \n",
+ "class reddishbrown(orange,violet): #public multiple & multilevel Derivation\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print \"=Reddishbrown\"\n",
+ " \n",
+ "class yellowishbrown(green,orange): #public multiple & multilevel Derivation\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print \"=Yellowishbrown\"\n",
+ " \n",
+ "class bluishbrown(violet,green): #public multiple & multilevel Derivation\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print \"=Bluishbrown\"\n",
+ " \n",
+ " \n",
+ " \n",
+ "r=reddishbrown() #create instances of the derived class\n",
+ "b=bluishbrown()\n",
+ "y=yellowishbrown()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Red Yellow =Orange Red Blue =Violet =Reddishbrown\n",
+ "Red Blue =Violet Blue Yellow =Green =Bluishbrown\n",
+ "Blue Yellow =Green Red Yellow =Orange =Yellowishbrown\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.10, Page Number:463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# WAP to create a derived class from multiple base classes\n",
+ "\n",
+ "class PLAYER: #these three are the base classes\n",
+ " def __init__(self):\n",
+ " self._name=None\n",
+ " self._gender=None\n",
+ " self._age\n",
+ " \n",
+ "class PHYSIQUE(PLAYER):\n",
+ " def __init__(self):\n",
+ " self._height=None\n",
+ " self._weight=None\n",
+ " \n",
+ "class LOCATION:\n",
+ " def __init__(self):\n",
+ " self._city=None\n",
+ " self._pin=None\n",
+ " \n",
+ "class GAME(PHYSIQUE,LOCATION): #Multiple derivation\n",
+ " def __init__(self):\n",
+ " self._game=None\n",
+ " def getdata(self): #Method to take inputes\n",
+ " print\"Enter the following information\\n\\n\"\n",
+ " self._name=raw_input(\"Name:\")\n",
+ " self._gender=raw_input(\"Gender:\")\n",
+ " self._age=raw_input(\"Age:\")\n",
+ " self._height=raw_input(\"Height:\")\n",
+ " self._weight=raw_input(\"Weight:\")\n",
+ " self._city=raw_input(\"City:\")\n",
+ " self._pin=raw_input(\"Pin:\")\n",
+ " self._game=raw_input(\"game:\")\n",
+ " \n",
+ " \n",
+ " \n",
+ " def show(self): #Method for displaying inputes\n",
+ " print\"Entered Information!!\"\n",
+ " print\"Name:\",self._name\n",
+ " print \"Gender:\",self._gender\n",
+ " print \"Age:\",self._age\n",
+ " print \"Height:\",self._height\n",
+ " print \"Weight:\",self._weight\n",
+ " print \"City :\",self._city\n",
+ " print \"Pincode:\",self._pin\n",
+ " print \"Game :\",self._game\n",
+ " \n",
+ " \n",
+ "G=GAME() #create an instance of the derived class\n",
+ "G.getdata() #call the public methods by the created instances\n",
+ "G.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the following information\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Mahesh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gender:M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height:4.9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight:55\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City:Nanded\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pin:431603\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "game:Cricket\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered Information!!\n",
+ "Name: Mahesh\n",
+ "Gender: M\n",
+ "Age: 25\n",
+ "Height: 4.9\n",
+ "Weight: 55\n",
+ "City : Nanded\n",
+ "Pincode: 431603\n",
+ "Game : Cricket\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.11, Page Number:467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Multipath Inheritance,concept of virtual classes\n",
+ "\n",
+ "class A1: #Super base class\n",
+ " def __init__(self):\n",
+ " self._a1=None\n",
+ " \n",
+ "class A2(A1): #base class 1,inherites Super Base class\n",
+ " def __init__(self):\n",
+ " self._a2=None\n",
+ " \n",
+ "class A3(A1): #base class 2,inherites Super Base class\n",
+ " def __init__(self):\n",
+ " self._a3=None\n",
+ " \n",
+ "class A4(A2,A3): #derived class ,public derivation of both the base classes\n",
+ " def __init__(self):\n",
+ " self.__a4=None\n",
+ " \n",
+ " def get(self):\n",
+ " print \"Enter the value of a1,a2,a3,and a4:\"\n",
+ " self._a1=input()\n",
+ " self._a2=input()\n",
+ " self._a3=input()\n",
+ " self.__a4=input()\n",
+ " \n",
+ " def put(self):\n",
+ " print \"a1=\",self._a1,\"a2=\",self._a2,\"a3=\",self._a3,\"a4=\",self.__a4\n",
+ " \n",
+ " \n",
+ " \n",
+ "a=A4() #create the instance of the derived class\n",
+ "a.get()\n",
+ "a.put()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value of a1,a2,a3,and a4:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a1= 5 a2= 8 a3= 7 a4= 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.12, Page Number:469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To show order of execution of the constructors and destructors in multiple inheritance\n",
+ "\n",
+ "#**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " print\"Zero argument Constructor of base class A\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor of class A\"\n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " print\"Zero argument Constructor of base class B\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor of class B\"\n",
+ "\n",
+ "class C(A,B):\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print\"Zero argument Constructor of base class C\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor of class C\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ "c=C() #create instance of derived class"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument Constructor of base class A\n",
+ "Zero argument Constructor of base class B\n",
+ "Zero argument Constructor of base class C\n",
+ "Destructor of class C\n",
+ "Destructor of class A\n",
+ "Destructor of class B\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.13, Page Number:471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#WAP to use constructor and destructor in all the classess\n",
+ "\n",
+ "class A1:\n",
+ " def __init__(self): #take name and age as input in super base class\n",
+ " self._name=raw_input(\"Name:\")\n",
+ " self._age=raw_input(\"Age:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Name:\",self._name\n",
+ " print\"Age\",self._age\n",
+ " \n",
+ " \n",
+ "class A2(A1): #take height and weight as input in base base class,public derivation \n",
+ " def __init__(self):\n",
+ " A1.__init__(self)\n",
+ " self._height=raw_input(\"Height:\")\n",
+ " self._weight=raw_input(\"Weight:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Height:\",self._height\n",
+ " print\"Weight:\",self._weight\n",
+ " A1.__del__(self)\n",
+ " \n",
+ " \n",
+ "class A3(A2): #take sex as input in derived class,derived from class A2\n",
+ " def __init__(self):\n",
+ " A2.__init__(self)\n",
+ " self.__sex=raw_input(\"Sex:\")\n",
+ " def __del__(self): #display all the input taken by all the base classes\n",
+ " print\"Sex:\",self.__sex\n",
+ " A2.__del__(self)\n",
+ " \n",
+ " \n",
+ "x=A3() #create instance x of the class A3\n",
+ "\n",
+ "del x #call the destructor"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Ajay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height:4.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight:40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex:M\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex: M\n",
+ "Height: 4.5\n",
+ "Weight: 40\n",
+ "Name: Ajay\n",
+ "Age 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.14, Page Number:472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To create derived class from the base class,by constructor and destructor\n",
+ "class in_t:\n",
+ " def __init__(self):\n",
+ " self._i=1\n",
+ " print\"Constructor in_t()\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor in_t()\"\n",
+ " \n",
+ "class floa_t:\n",
+ " def __init__(self):\n",
+ " self._f=1.5\n",
+ " print\"Constructor floa_t()\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor floa_t()\"\n",
+ " \n",
+ " \n",
+ "class cha_r(in_t,floa_t): #multiple derivation\n",
+ " def __init__(self):\n",
+ " self._c='A'\n",
+ " print\"Constructor cha_r()\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " \n",
+ " def show(self):\n",
+ " print\"i=\",self._i\n",
+ " print \"f=\",self._f\n",
+ " print \"c=\",self._c\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructing cha_r()\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ "a=cha_r() #create derived class instance and call the public method of the derived class\n",
+ "a.show() #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor cha_r()\n",
+ "Constructor in_t()\n",
+ "Constructor floa_t()\n",
+ "i= 1\n",
+ "f= 1.5\n",
+ "c= A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.15, Page Number:474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " self.__y=None\n",
+ " \n",
+ " def set(self,j,k):\n",
+ " self.x=j\n",
+ " self.__y=k\n",
+ " \n",
+ " def show(self):\n",
+ " print \"X=\",self.x, \"Y=\",self.__y\n",
+ " \n",
+ " \n",
+ "i=II()\n",
+ "i.set(4,5)\n",
+ "i.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 4 Y= 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.16, Page Number:475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class I:\n",
+ " def __init__(self):\n",
+ " self.x=10\n",
+ " print \"In the Base class constuctor\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " self.__y=None\n",
+ " \n",
+ "i=II()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In the Base class constuctor\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.17, Page Number:475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#base class without constructor and derived class with constructor\n",
+ "class I:\n",
+ " pass\n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " print \"In derived class constructor\"\n",
+ " \n",
+ "i=II()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In derived class constructor\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.18, Page Number:476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#both the class have constructor\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"In base class Constructor\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " print \"In derived Class constructor\"\n",
+ " \n",
+ "i=II()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In base class Constructor\n",
+ "In derived Class constructor\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.19, Page Number:477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#multiple constructor in base class and single constructor in the derived class\n",
+ "\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument base class construtor\"\n",
+ " \n",
+ " def __init__(self,k):\n",
+ " self.x=None\n",
+ " print \"One argument base class construtor\"\n",
+ " \n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self,j,k=None): #default constructor\n",
+ " I.__init__(self,k)\n",
+ " self.__y=j\n",
+ " print \"One argument derived class constructor\"\n",
+ " \n",
+ "i=II(2) #create the instance of the base class by passing initial value "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "One argument base class construtor\n",
+ "One argument derived class constructor\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.20, Page Number:478"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#base and derived class without default constructor\n",
+ "class I:\n",
+ " def __init__(self,k):\n",
+ " self.x=k\n",
+ " print \"One argument base class construtor\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self,j):\n",
+ " I.__init__(self,j)\n",
+ " self.__y=j\n",
+ " print \"One argument derived class construtor\"\n",
+ " \n",
+ "i=II(2) #create the instance of the base class by passing initial value "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "One argument base class construtor\n",
+ "One argument derived class construtor\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.21, Page Number:479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructors and multiple inheritance\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II,I): #class III inhrites class II and I\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self) \n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III() #create an instance of the base class\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.22, Page Number:480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructors in multiple inhritance with invoking constructor of the base classes\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II,I):\n",
+ " def __init__(self):\n",
+ " II.__init__(self)\n",
+ " I.__init__(self)\n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.23, Page Number:481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#multiple inheritance,invoking the base classes explicitly\n",
+ "\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II,I): #Class I is virtually inherited so its constructor called first\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " II.__init__(self)\n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.24, Page Number:482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#multilevel Inheritance,observation of the execution of the constructors\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II): #Class I is virtually inherited so its constructor called first\n",
+ " def __init__(self):\n",
+ " II.__init__(self)\n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.25, Page Number:484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#use object of one class in another class as a member\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " self.x=20\n",
+ " print \"Constructor of class I\"\n",
+ " \n",
+ "class II:\n",
+ " \n",
+ " def __init__(self):\n",
+ " self.k=30\n",
+ " y=I()\n",
+ " print \"Constructor of class II\"\n",
+ " print \"x=\",y.x #print here because it become local variable in this scope only,it not visible to def show\n",
+ " \n",
+ " \n",
+ " def show(self):\n",
+ " print \"k=\",self.k\n",
+ " \n",
+ "ii=II()\n",
+ "ii.show() #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class I\n",
+ "Constructor of class II\n",
+ "x= 20\n",
+ "k= 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.26, Page Number:484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#access a member variable of base class using object,class name, and direct\n",
+ "\n",
+ "class A1:\n",
+ " def __init__(self):\n",
+ " self.name=None\n",
+ " self.age=None\n",
+ " \n",
+ "class A2(A1):\n",
+ " def __init__(self):\n",
+ " A1.__init__(self)\n",
+ " a=A1()\n",
+ " print \"Access using name of the class:\"\n",
+ " A1.name=raw_input(\"Name:\")\n",
+ " A1.age=raw_input(\"Age:\")\n",
+ " \n",
+ " print \"Access using object of the class\"\n",
+ " a.name=raw_input(\"Name:\")\n",
+ " a.age=raw_input(\"Age:\")\n",
+ " \n",
+ " print \"Access using direct member variables:\"\n",
+ " self.name=raw_input(\"Name:\")\n",
+ " self.age=raw_input(\"Age:\")\n",
+ " self.__height=raw_input(\"Height:\")\n",
+ " self.__weight=raw_input(\"Weight:\")\n",
+ " \n",
+ " print \"Display using object of the class\" #since object of class A1 has scope in constructor method so we can access it only \n",
+ " print \"Name:\",a.name # within this method.It is not visible in destructor function.\n",
+ " print \"Age:\",a.age\n",
+ " \n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of Derived class\"\n",
+ " print \"Display using class name\"\n",
+ " print \"Name:\",A1.name\n",
+ " print \"Age:\",A1.age\n",
+ " \n",
+ " print \"Display using direct member variable\"\n",
+ " print \"Name:\",self.name\n",
+ " print \"Age\",self.age\n",
+ " print \"height:\",self.__height\n",
+ " print \"Weight:\",self.__weight\n",
+ " \n",
+ "x=A2()\n",
+ "\n",
+ "del x\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Access using name of the class:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Ajay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:21\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Access using object of the class\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Amit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Access using direct member variables:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Arun\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:19\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height:5.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight:31\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Display using object of the class\n",
+ "Name: Amit\n",
+ "Age: 20\n",
+ "Destructor of Derived class\n",
+ "Display using class name\n",
+ "Name: Ajay\n",
+ "Age: 21\n",
+ "Display using direct member variable\n",
+ "Name: Arun\n",
+ "Age 19\n",
+ "height: 5.5\n",
+ "Weight: 31\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.27, Page Number:488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#derive a class from two base classes,object of these 2 classes is the member variable of the third class\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.a1=None\n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " self.b1=None\n",
+ " \n",
+ "class AB:\n",
+ " def __init__(self):\n",
+ " a=A()\n",
+ " b=B()\n",
+ " a.a1=65 #initialize the two data members of the class A and B and Display them\n",
+ " b.b1=66\n",
+ " print \"a1=\",a.a1, \"b1=\",b.b1\n",
+ " \n",
+ " def __del__(self):\n",
+ " pass\n",
+ " \n",
+ " \n",
+ "ab=AB()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a1= 65 b1= 66\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.28, Page Number:489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#create derived class from qualifier class\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ " \n",
+ " class B:\n",
+ " def __init__(self):\n",
+ " self.y=None\n",
+ " \n",
+ " \n",
+ "class C(A,A.B): #A.B is the inner class of the class A\n",
+ " def __init__(self,j,k,l):\n",
+ " self.x=j\n",
+ " self.y=k\n",
+ " self.z=l\n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",self.x,\"y=\",self.y,\"z=\",self.z\n",
+ " \n",
+ " \n",
+ "c=C(4,7,1)\n",
+ "c.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 4 y= 7 z= 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.29, Page Number:490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialize member variable of the base class and derived class using constructor of the derived class\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self._x=None #protected members\n",
+ " self._y=None\n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.z=3\n",
+ " self.__x=1 #private members\n",
+ " self.__y=2\n",
+ " \n",
+ " print \"x=\",self.__x,\"y=\",self.__y,\"z=\",self.z\n",
+ " \n",
+ "b=B()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 1 y= 2 z= 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.30, Page Number:491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#access data members by object pointer\n",
+ "\n",
+ "from ctypes import *\n",
+ "import ctypes\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=1\n",
+ " self.y=2\n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " A.__init__(self)\n",
+ " self.z=3\n",
+ " \n",
+ "b=B()\n",
+ "\n",
+ "\n",
+ "i=c_int(b.z)\n",
+ "p=pointer(i)\n",
+ "print \"Address of z:\",addressof(p),\"Value of Z:\",p[0] #access the\n",
+ "\n",
+ "i = c_int(b.y)\n",
+ "p = pointer(i)\n",
+ "print \"Address of y:\",addressof(p),\"Value of y:\",p[0] \n",
+ "\n",
+ "i = c_int(b.x)\n",
+ "p = pointer(i)\n",
+ "print \"Address of x:\",addressof(p),\"Value of x:\",p[0] \n",
+ "\n",
+ "#**NOTE-In case of C++ the data members of the derived class and base class are stored in contigious memory locations so we can \n",
+ "#access the three variables by using a pointer of derived class and decrementing its value. But in case of Python they are NOT stored \n",
+ "#in contogious memory locations so for accessing each data member we have to create individual object pointer for each class."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address of z: 57077392 Value of Z: 3\n",
+ "Address of y: 57074448 Value of y: 2\n",
+ "Address of x: 57077648 Value of x: 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.31, Page Number:492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#overload member function in base and derived class\n",
+ "\n",
+ "class B:\n",
+ " def show(self):\n",
+ " print \"In base class function\"\n",
+ " \n",
+ "class D(B):\n",
+ " def show(self):\n",
+ " \n",
+ " print \"In Derived class\"\n",
+ " \n",
+ " \n",
+ "b=B()\n",
+ "d=D()\n",
+ "\n",
+ "b.show()\n",
+ "d.show()\n",
+ "\n",
+ "bp=[B()] #create a base class pointer variable\n",
+ "bp[0]=d #assign address of the derived class object to the base class pointer\n",
+ "bp[0].show() #call the derived class method by base class pointer\n",
+ "b.show() #calling the base class method by base class object"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In base class function\n",
+ "In Derived class\n",
+ "In Derived class\n",
+ "In base class function\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.32, Page Number:495"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constuctor and destructors in single inheritance\n",
+ "class Father:\n",
+ " def __init__(self):\n",
+ " print \"Base Class constructor.\"\n",
+ " self._name=raw_input(\"Enter Father Name:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Base class Destructor.\"\n",
+ " \n",
+ "class Child(Father):\n",
+ " def __init__(self):\n",
+ " Father.__init__(self)\n",
+ " print \"Derived class constructor.\"\n",
+ " self.__cname=raw_input(\"Enter child name:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Derived class destructor.\"\n",
+ " print \"\",self.__cname,\"\",self.__name\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ " \n",
+ " \n",
+ "C=Child()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Base Class constructor.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Father Name:Manoj\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Derived class constructor.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter child name:Sanjay\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Derived class destructor.\n",
+ " Sanjay Manoj\n",
+ "Base class Destructor.\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.33, Page Number:496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constuctor and destructors in multilevel inheritance\n",
+ "\n",
+ "class Grandfather:\n",
+ " def __init__(self):\n",
+ " print\"Constructor of class grandfather\"\n",
+ " self._gname=raw_input(\"Enter Grandfather Name:\")\n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class grandfather\"\n",
+ " \n",
+ " \n",
+ "class Father(Grandfather):\n",
+ " def __init__(self):\n",
+ " Grandfather.__init__(self)\n",
+ " print\"Constructor of class Father\"\n",
+ " self._name=raw_input(\"Enter Father Name:\")\n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class Father\"\n",
+ " Grandfather.__del__(self)\n",
+ " \n",
+ "class Child(Father):\n",
+ " def __init__(self):\n",
+ " Father.__init__(self)\n",
+ " print\"Constructor of class Child\"\n",
+ " self.__cname=raw_input(\"Enter Child Name:\")\n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class Child\"\n",
+ " print \"Grandfather:\",self._gname,\"Father:\",self._name,\"Child:\",self.__cname\n",
+ " Father.__del__(self) \n",
+ " \n",
+ " \n",
+ "C=Child()\n",
+ "\n",
+ "del C #call the destructor of the derived class\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class grandfather\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Grandfather Name:x\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class Father\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Father Name:y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class Child\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Child Name:z\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Destructor of class Child\n",
+ "Grandfather: x Father: y Child: z\n",
+ "Destructor of class Father\n",
+ "Destructor of class grandfather\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.34, Page Number:498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to explain multilevel inheritance with member function\n",
+ "class Grandfather:\n",
+ " def __init__(self):\n",
+ " self.__gname=None\n",
+ " \n",
+ " def getg(self):\n",
+ " self.__gname=raw_input(\"Enter Grandfather Name:\")\n",
+ " \n",
+ " def showg(self):\n",
+ " print \"Grandfather Name:\",self.__gname\n",
+ " \n",
+ " \n",
+ "class Father(Grandfather):\n",
+ " def __init__(self):\n",
+ " self.__name=None\n",
+ " \n",
+ " def getf(self):\n",
+ " self.__name=raw_input(\"Enter Father Name:\")\n",
+ " \n",
+ " def showf(self):\n",
+ " print \"Father Name:\",self.__name\n",
+ " \n",
+ " \n",
+ "class Child(Father):\n",
+ " def __init__(self):\n",
+ " self.__cname=None\n",
+ " \n",
+ " def getc(self):\n",
+ " self.getg()\n",
+ " self.getf()\n",
+ " self.__cname=raw_input(\"Enter Child Name:\")\n",
+ " \n",
+ " def showc(self):\n",
+ " self.showg()\n",
+ " self.showf()\n",
+ " print \"child Name:\",self.__cname\n",
+ " \n",
+ "C=Child()\n",
+ "C.getc()\n",
+ "C.showc()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Grandfather Name:XXX\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Father Name:YYY\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Child Name:ZZZ\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Grandfather Name: XXX\n",
+ "Father Name: YYY\n",
+ "child Name: ZZZ\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.35, Page Number:499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#execution of constructor and destructor in multilevel inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class A\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class A\"\n",
+ " \n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class B\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class B\"\n",
+ " \n",
+ "class C:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class C\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class C\"\n",
+ " \n",
+ " \n",
+ "class D(A,B,C):\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self) \n",
+ " print \"Constructor of class D\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class D\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ "x=D() \n",
+ " #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class A\n",
+ "Constructor of class B\n",
+ "Constructor of class C\n",
+ "Constructor of class D\n",
+ "Destructor of class D\n",
+ "Destructor of class A\n",
+ "Destructor of class B\n",
+ "Destructor of class C\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.37, Page Number:502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#execution of constructor and destructor in multilevel inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class A\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class A\"\n",
+ " \n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " A.__init__(self)\n",
+ " print \"Constructor of class B\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class B\"\n",
+ " A.__del__(self)\n",
+ " \n",
+ "class C:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class C\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class C\"\n",
+ " \n",
+ " \n",
+ "class D(B,C):\n",
+ " def __init__(self):\n",
+ " B.__init__(self)\n",
+ " C.__init__(self)\n",
+ " print \"Constructor of class D\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class D\"\n",
+ " B.__del__(self)\n",
+ " C.__del__(self)\n",
+ " \n",
+ "x=D() \n",
+ "del x\n",
+ " #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class A\n",
+ "Constructor of class B\n",
+ "Constructor of class C\n",
+ "Constructor of class D\n",
+ "Destructor of class D\n",
+ "Destructor of class B\n",
+ "Destructor of class A\n",
+ "Destructor of class C\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.37, Page Number:502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#demonstrate single inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self,j=0):\n",
+ " self._c=j\n",
+ " \n",
+ " def show(self):\n",
+ " print \"c=\",self._c\n",
+ " \n",
+ " def inc(self):\n",
+ " self._c=self._c+1\n",
+ " return self._c\n",
+ " \n",
+ "class B(A):\n",
+ " \n",
+ " def __init_(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " \n",
+ " def dec(self):\n",
+ " self._c=self._c-1\n",
+ " return self._c\n",
+ " \n",
+ " \n",
+ "a=B()\n",
+ "a.inc()\n",
+ "a.show()\n",
+ "\n",
+ "\n",
+ "a.dec()\n",
+ "a.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c= 1\n",
+ "c= 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.38, Page Number:502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#access method from private inheritance\n",
+ "class B:\n",
+ " def one(self):\n",
+ " print \"one\"\n",
+ " \n",
+ " def __two(self):\n",
+ " print \"two\"\n",
+ " \n",
+ "class D(B):\n",
+ " def __init__(self):\n",
+ " pass\n",
+ " \n",
+ "d=D()\n",
+ "d.one()\n",
+ "#d.two() #Not accesible"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "one\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.39, Page Number:503"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#create a comman constructor in the lowermost class, in the multilevel inheritance\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.y=None\n",
+ " \n",
+ "class C(B):\n",
+ " def __init__(self,j,k,l):\n",
+ " self.z=l\n",
+ " self.x=j\n",
+ " self.y=k\n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",self.x,\"Y=\",self.y,\"z=\",self.z\n",
+ " \n",
+ "c=C(4,7,1)\n",
+ "c.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 4 Y= 7 z= 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.40, Page Number:504"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Explicitly call the base constructor in multiple inheritance\n",
+ "\n",
+ "class X:\n",
+ " def __init__(self,a):\n",
+ " print a,\n",
+ " \n",
+ "class Y:\n",
+ " def __init__(self,b):\n",
+ " print b,\n",
+ " \n",
+ "class Z(X,Y):\n",
+ " def __init__(self,p,q,r):\n",
+ " X.__init__(self,p)\n",
+ " Y.__init__(self,q)\n",
+ " print r\n",
+ " \n",
+ " \n",
+ "z=Z(1,2,3)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance_(1).ipynb b/sample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance_(1).ipynb
new file mode 100755
index 00000000..4f69b243
--- /dev/null
+++ b/sample_notebooks/AJEET KUMARSINGH/Chapter_11_Inheritance_(1).ipynb
@@ -0,0 +1,2636 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e85379c4218575d4b069259557cffbbc2d0259e3ba5d0e030c11dd77aae5e38d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.1, Page Number:444"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#A simple classA having a public data member x\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ "\n",
+ "#A simple classA having a public data member y \n",
+ "class B(A): #derived class\n",
+ " def __init__(self):\n",
+ " self.y=None\n",
+ " \n",
+ "b=B() #create a instance b of Derived class B\n",
+ "b.x=20\n",
+ "b.y=30\n",
+ "\n",
+ "print 'member of A:',b.x\n",
+ "print 'Member of B:',b.y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "member of A: 20\n",
+ "Member of B: 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.2, Page Number:445"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A:\n",
+ " def __init__(self): #class A having x as a private data member\n",
+ " self.__x=20\n",
+ " \n",
+ " def showx(self):\n",
+ " print \"x=\",self.__x\n",
+ " \n",
+ " \n",
+ "class B(A): #Derived class\n",
+ " def __init__(self):\n",
+ " self.y=30 #class B having y as a public data member\n",
+ " \n",
+ " def show(self):\n",
+ " a=A()\n",
+ " a.showx()\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ " \n",
+ "b=B() #declaration of object\n",
+ " #class the method of derived class object by a derived class instance\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 20\n",
+ "y= 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.3, Page Number:447"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#base class\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None #x is a public member\n",
+ " \n",
+ " \n",
+ "#derived class\n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.y=40 \n",
+ " A.__x=20 #since it is privately inherites base class ,x become private member of it\n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",A.__x\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ "b=B()\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 20\n",
+ "y= 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.4, Page Number:448"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.__x=20 #x is a privet member of it\n",
+ " \n",
+ " def showx(self): \n",
+ " print \"x=\",self.__x\n",
+ " \n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.y=40 #y is a public member of it\n",
+ " \n",
+ " def show(self):\n",
+ " a=A()\n",
+ " a.showx() #call the base class method\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ " \n",
+ "b=B()\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 20\n",
+ "y= 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.5, Page Number:449"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A:\n",
+ " def __init__(self):\n",
+ " self._x=None #x is a protected member of the base class\n",
+ " \n",
+ " \n",
+ "class B(A): #private inheritance,x become a private member of the derived class\n",
+ " def __init__(self):\n",
+ " self.y=40\n",
+ " self.__x=30\n",
+ " \n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",self.__x\n",
+ " print \"y=\",self.y\n",
+ " \n",
+ " \n",
+ "b=B()\n",
+ "b.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 30\n",
+ "y= 40\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.6, Page Number:456"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class ABC: #Base class\n",
+ " def __init__(self):\n",
+ " self._name=None #these 2 are protected data member\n",
+ " self._age=None\n",
+ " \n",
+ "class abc(ABC): #Derived class ,Public derivation\n",
+ " def __init__(self):\n",
+ " self.height=None\n",
+ " self.weight=None\n",
+ " \n",
+ " def getdata(self):\n",
+ " \n",
+ " self.name=raw_input(\"Enter a name: \") #take inputes to all the data members \n",
+ " self.age=raw_input(\"Enter a age: \") \n",
+ " self._height=raw_input(\"Enter a Height: \") \n",
+ " self._weight=raw_input(\"Enter a Weight: \") \n",
+ " \n",
+ " def show(self): #display the value of data members\n",
+ " print 'Name:',self.name \n",
+ " print 'Age:',self.age,\"years\"\n",
+ " print 'Height:',self._height,\"Feets\"\n",
+ " print 'Weight:',self._weight,\"kg.\"\n",
+ " \n",
+ " \n",
+ "x=abc()\n",
+ "x.getdata()\n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a name: Santosh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a age: 24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Height: 4.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Weight: 50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Santosh\n",
+ "Age: 24 years\n",
+ "Height: 4.5 Feets\n",
+ "Weight: 50 kg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.7, Page Number:458"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class A1: #super Base class,have 2 protected data members\n",
+ " def __init__(self):\n",
+ " self._name=None\n",
+ " self._age=None\n",
+ "\n",
+ " \n",
+ "class A2(A1): #Public derivation\n",
+ " def __init(self):\n",
+ " self._height=None\n",
+ " self._weight=None\n",
+ "\n",
+ "class A3(A2): #public Derivation\n",
+ " def __init__(self):\n",
+ " self._sex=None\n",
+ " \n",
+ " \n",
+ " def get(self): #get input \n",
+ " self._name=raw_input(\"Name: \")\n",
+ " self._age=raw_input(\"Age: \")\n",
+ " self._sex=raw_input(\"Sex: \")\n",
+ " \n",
+ " self._height=raw_input(\"Height: \")\n",
+ " self._weight=raw_input(\"Weight: \")\n",
+ " \n",
+ " def show(self): #Display values of all the data members\n",
+ " print \"Name:\",self._name\n",
+ " print \"Age:\",self._age ,\"years\"\n",
+ " print \"Sex:\",self._sex\n",
+ " print \"Height:\",self._height ,\"Feet\"\n",
+ " print \"Weight:\",self._weight ,\"Kg.\"\n",
+ " \n",
+ "\n",
+ "x=A3()\n",
+ "x.get()\n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Balaji\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age: 26\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex: M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height: 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight: 49.5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Balaji\n",
+ "Age: 26 years\n",
+ "Sex: M\n",
+ "Height: 4 Feet\n",
+ "Weight: 49.5 Kg.\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.8, Page Number:459"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example of multiple Inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self._a=None\n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " self._b=None\n",
+ " \n",
+ " \n",
+ "class C:\n",
+ " def __init__(self):\n",
+ " self._c=None\n",
+ " \n",
+ "class D:\n",
+ " def __init__(self):\n",
+ " self._d=None\n",
+ " \n",
+ "class E(A,B,C,D): #inherites all the base classes publically\n",
+ " def __init__(self):\n",
+ " self.e=None\n",
+ " \n",
+ " def getdata(self):\n",
+ " print \"Enter the value of a,b,c &d &e:\"\n",
+ " self._a=input()\n",
+ " self._b=input()\n",
+ " self._c=input()\n",
+ " self._d=input()\n",
+ " self._e=input()\n",
+ " \n",
+ " def show(self):\n",
+ " print\"a=\",self._a,\"b=\",self._b,\"c=\",self._c,\"d=\",self._d,\"e=\",self._e\n",
+ " \n",
+ " \n",
+ "x=E() #x is the instance of the derived class\n",
+ "x.getdata() #call the methods of derived class through x \n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value of a,b,c &d &e:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "16\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a= 1 b= 2 c= 4 d= 8 e= 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.9, Page Number:461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class red: #these three base class\n",
+ " def __init__(self):\n",
+ " print \"Red\",\n",
+ " \n",
+ "class yellow:\n",
+ " def __init__(self):\n",
+ " print \"Yellow\",\n",
+ " \n",
+ "class blue:\n",
+ " def __init__(self):\n",
+ " print \"Blue\",\n",
+ " \n",
+ "class orange(red,yellow): #public multiple Derivation\n",
+ " def __init__(self):\n",
+ " red.__init__(self)\n",
+ " yellow.__init__(self)\n",
+ " print \"=Orange\",\n",
+ " \n",
+ "class green(blue,yellow): #public multiple Derivation\n",
+ " def __init__(self):\n",
+ " blue.__init__(self)\n",
+ " yellow.__init__(self)\n",
+ " print \"=Green\",\n",
+ " \n",
+ "class violet(red,blue): #public multiple Derivation\n",
+ " def __init__(self):\n",
+ " red.__init__(self)\n",
+ " blue.__init__(self)\n",
+ " print \"=Violet\",\n",
+ " \n",
+ "class reddishbrown(orange,violet): #public multiple & multilevel Derivation\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print \"=Reddishbrown\"\n",
+ " \n",
+ "class yellowishbrown(green,orange): #public multiple & multilevel Derivation\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print \"=Yellowishbrown\"\n",
+ " \n",
+ "class bluishbrown(violet,green): #public multiple & multilevel Derivation\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print \"=Bluishbrown\"\n",
+ " \n",
+ " \n",
+ " \n",
+ "r=reddishbrown() #create instances of the derived class\n",
+ "b=bluishbrown()\n",
+ "y=yellowishbrown()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Red Yellow =Orange Red Blue =Violet =Reddishbrown\n",
+ "Red Blue =Violet Blue Yellow =Green =Bluishbrown\n",
+ "Blue Yellow =Green Red Yellow =Orange =Yellowishbrown\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.10, Page Number:463"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# WAP to create a derived class from multiple base classes\n",
+ "\n",
+ "class PLAYER: #these three are the base classes\n",
+ " def __init__(self):\n",
+ " self._name=None\n",
+ " self._gender=None\n",
+ " self._age\n",
+ " \n",
+ "class PHYSIQUE(PLAYER):\n",
+ " def __init__(self):\n",
+ " self._height=None\n",
+ " self._weight=None\n",
+ " \n",
+ "class LOCATION:\n",
+ " def __init__(self):\n",
+ " self._city=None\n",
+ " self._pin=None\n",
+ " \n",
+ "class GAME(PHYSIQUE,LOCATION): #Multiple derivation\n",
+ " def __init__(self):\n",
+ " self._game=None\n",
+ " def getdata(self): #Method to take inputes\n",
+ " print\"Enter the following information\\n\\n\"\n",
+ " self._name=raw_input(\"Name:\")\n",
+ " self._gender=raw_input(\"Gender:\")\n",
+ " self._age=raw_input(\"Age:\")\n",
+ " self._height=raw_input(\"Height:\")\n",
+ " self._weight=raw_input(\"Weight:\")\n",
+ " self._city=raw_input(\"City:\")\n",
+ " self._pin=raw_input(\"Pin:\")\n",
+ " self._game=raw_input(\"game:\")\n",
+ " \n",
+ " \n",
+ " \n",
+ " def show(self): #Method for displaying inputes\n",
+ " print\"Entered Information!!\"\n",
+ " print\"Name:\",self._name\n",
+ " print \"Gender:\",self._gender\n",
+ " print \"Age:\",self._age\n",
+ " print \"Height:\",self._height\n",
+ " print \"Weight:\",self._weight\n",
+ " print \"City :\",self._city\n",
+ " print \"Pincode:\",self._pin\n",
+ " print \"Game :\",self._game\n",
+ " \n",
+ " \n",
+ "G=GAME() #create an instance of the derived class\n",
+ "G.getdata() #call the public methods by the created instances\n",
+ "G.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the following information\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Mahesh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gender:M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height:4.9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight:55\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City:Nanded\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pin:431603\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "game:Cricket\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered Information!!\n",
+ "Name: Mahesh\n",
+ "Gender: M\n",
+ "Age: 25\n",
+ "Height: 4.9\n",
+ "Weight: 55\n",
+ "City : Nanded\n",
+ "Pincode: 431603\n",
+ "Game : Cricket\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.11, Page Number:467"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Multipath Inheritance,concept of virtual classes\n",
+ "\n",
+ "class A1: #Super base class\n",
+ " def __init__(self):\n",
+ " self._a1=None\n",
+ " \n",
+ "class A2(A1): #base class 1,inherites Super Base class\n",
+ " def __init__(self):\n",
+ " self._a2=None\n",
+ " \n",
+ "class A3(A1): #base class 2,inherites Super Base class\n",
+ " def __init__(self):\n",
+ " self._a3=None\n",
+ " \n",
+ "class A4(A2,A3): #derived class ,public derivation of both the base classes\n",
+ " def __init__(self):\n",
+ " self.__a4=None\n",
+ " \n",
+ " def get(self):\n",
+ " print \"Enter the value of a1,a2,a3,and a4:\"\n",
+ " self._a1=input()\n",
+ " self._a2=input()\n",
+ " self._a3=input()\n",
+ " self.__a4=input()\n",
+ " \n",
+ " def put(self):\n",
+ " print \"a1=\",self._a1,\"a2=\",self._a2,\"a3=\",self._a3,\"a4=\",self.__a4\n",
+ " \n",
+ " \n",
+ " \n",
+ "a=A4() #create the instance of the derived class\n",
+ "a.get()\n",
+ "a.put()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the value of a1,a2,a3,and a4:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a1= 5 a2= 8 a3= 7 a4= 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.12, Page Number:469"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To show order of execution of the constructors and destructors in multiple inheritance\n",
+ "\n",
+ "#**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " print\"Zero argument Constructor of base class A\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor of class A\"\n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " print\"Zero argument Constructor of base class B\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor of class B\"\n",
+ "\n",
+ "class C(A,B):\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " print\"Zero argument Constructor of base class C\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor of class C\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ "c=C() #create instance of derived class"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument Constructor of base class A\n",
+ "Zero argument Constructor of base class B\n",
+ "Zero argument Constructor of base class C\n",
+ "Destructor of class C\n",
+ "Destructor of class A\n",
+ "Destructor of class B\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.13, Page Number:471"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#WAP to use constructor and destructor in all the classess\n",
+ "\n",
+ "class A1:\n",
+ " def __init__(self): #take name and age as input in super base class\n",
+ " self._name=raw_input(\"Name:\")\n",
+ " self._age=raw_input(\"Age:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Name:\",self._name\n",
+ " print\"Age\",self._age\n",
+ " \n",
+ " \n",
+ "class A2(A1): #take height and weight as input in base base class,public derivation \n",
+ " def __init__(self):\n",
+ " A1.__init__(self)\n",
+ " self._height=raw_input(\"Height:\")\n",
+ " self._weight=raw_input(\"Weight:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Height:\",self._height\n",
+ " print\"Weight:\",self._weight\n",
+ " A1.__del__(self)\n",
+ " \n",
+ " \n",
+ "class A3(A2): #take sex as input in derived class,derived from class A2\n",
+ " def __init__(self):\n",
+ " A2.__init__(self)\n",
+ " self.__sex=raw_input(\"Sex:\")\n",
+ " def __del__(self): #display all the input taken by all the base classes\n",
+ " print\"Sex:\",self.__sex\n",
+ " A2.__del__(self)\n",
+ " \n",
+ " \n",
+ "x=A3() #create instance x of the class A3\n",
+ "\n",
+ "del x #call the destructor"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Ajay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height:4.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight:40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex:M\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sex: M\n",
+ "Height: 4.5\n",
+ "Weight: 40\n",
+ "Name: Ajay\n",
+ "Age 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.14, Page Number:472"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#To create derived class from the base class,by constructor and destructor\n",
+ "class in_t:\n",
+ " def __init__(self):\n",
+ " self._i=1\n",
+ " print\"Constructor in_t()\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor in_t()\"\n",
+ " \n",
+ "class floa_t:\n",
+ " def __init__(self):\n",
+ " self._f=1.5\n",
+ " print\"Constructor floa_t()\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print\"Destructor floa_t()\"\n",
+ " \n",
+ " \n",
+ "class cha_r(in_t,floa_t): #multiple derivation\n",
+ " def __init__(self):\n",
+ " self._c='A'\n",
+ " print\"Constructor cha_r()\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " \n",
+ " def show(self):\n",
+ " print\"i=\",self._i\n",
+ " print \"f=\",self._f\n",
+ " print \"c=\",self._c\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructing cha_r()\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ "a=cha_r() #create derived class instance and call the public method of the derived class\n",
+ "a.show() #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor cha_r()\n",
+ "Constructor in_t()\n",
+ "Constructor floa_t()\n",
+ "i= 1\n",
+ "f= 1.5\n",
+ "c= A\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.15, Page Number:474"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " self.__y=None\n",
+ " \n",
+ " def set(self,j,k):\n",
+ " self.x=j\n",
+ " self.__y=k\n",
+ " \n",
+ " def show(self):\n",
+ " print \"X=\",self.x, \"Y=\",self.__y\n",
+ " \n",
+ " \n",
+ "i=II()\n",
+ "i.set(4,5)\n",
+ "i.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X= 4 Y= 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.16, Page Number:475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class I:\n",
+ " def __init__(self):\n",
+ " self.x=10\n",
+ " print \"In the Base class constuctor\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " self.__y=None\n",
+ " \n",
+ "i=II()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In the Base class constuctor\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.17, Page Number:475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#base class without constructor and derived class with constructor\n",
+ "class I:\n",
+ " pass\n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " print \"In derived class constructor\"\n",
+ " \n",
+ "i=II()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In derived class constructor\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.18, Page Number:476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#both the class have constructor\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"In base class Constructor\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " print \"In derived Class constructor\"\n",
+ " \n",
+ "i=II()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In base class Constructor\n",
+ "In derived Class constructor\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.19, Page Number:477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#multiple constructor in base class and single constructor in the derived class\n",
+ "\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument base class construtor\"\n",
+ " \n",
+ " def __init__(self,k):\n",
+ " self.x=None\n",
+ " print \"One argument base class construtor\"\n",
+ " \n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self,j,k=None): #default constructor\n",
+ " I.__init__(self,k)\n",
+ " self.__y=j\n",
+ " print \"One argument derived class constructor\"\n",
+ " \n",
+ "i=II(2) #create the instance of the base class by passing initial value "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "One argument base class construtor\n",
+ "One argument derived class constructor\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.20, Page Number:478"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#base and derived class without default constructor\n",
+ "class I:\n",
+ " def __init__(self,k):\n",
+ " self.x=k\n",
+ " print \"One argument base class construtor\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self,j):\n",
+ " I.__init__(self,j)\n",
+ " self.__y=j\n",
+ " print \"One argument derived class construtor\"\n",
+ " \n",
+ "i=II(2) #create the instance of the base class by passing initial value "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "One argument base class construtor\n",
+ "One argument derived class construtor\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.21, Page Number:479"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructors and multiple inheritance\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II,I): #class III inhrites class II and I\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self) \n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III() #create an instance of the base class\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.22, Page Number:480"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructors in multiple inhritance with invoking constructor of the base classes\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II,I):\n",
+ " def __init__(self):\n",
+ " II.__init__(self)\n",
+ " I.__init__(self)\n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.23, Page Number:481"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#multiple inheritance,invoking the base classes explicitly\n",
+ "\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II,I): #Class I is virtually inherited so its constructor called first\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " II.__init__(self)\n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.24, Page Number:482"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#multilevel Inheritance,observation of the execution of the constructors\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " print \"Zero argument constructor of base class I\"\n",
+ " \n",
+ "class II(I):\n",
+ " def __init__(self):\n",
+ " I.__init__(self)\n",
+ " print \"Zero argument constructor of base class II\"\n",
+ " \n",
+ "class III(II): #Class I is virtually inherited so its constructor called first\n",
+ " def __init__(self):\n",
+ " II.__init__(self)\n",
+ " print \"Zero argument constructor of base class III\"\n",
+ " \n",
+ "i=III()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Zero argument constructor of base class I\n",
+ "Zero argument constructor of base class II\n",
+ "Zero argument constructor of base class III\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.25, Page Number:484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#use object of one class in another class as a member\n",
+ "class I:\n",
+ " def __init__(self):\n",
+ " self.x=20\n",
+ " print \"Constructor of class I\"\n",
+ " \n",
+ "class II:\n",
+ " \n",
+ " def __init__(self):\n",
+ " self.k=30\n",
+ " y=I()\n",
+ " print \"Constructor of class II\"\n",
+ " print \"x=\",y.x #print here because it become local variable in this scope only,it not visible to def show\n",
+ " \n",
+ " \n",
+ " def show(self):\n",
+ " print \"k=\",self.k\n",
+ " \n",
+ "ii=II()\n",
+ "ii.show() #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class I\n",
+ "Constructor of class II\n",
+ "x= 20\n",
+ "k= 30\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.26, Page Number:484"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#access a member variable of base class using object,class name, and direct\n",
+ "\n",
+ "class A1:\n",
+ " def __init__(self):\n",
+ " self.name=None\n",
+ " self.age=None\n",
+ " \n",
+ "class A2(A1):\n",
+ " def __init__(self):\n",
+ " A1.__init__(self)\n",
+ " a=A1()\n",
+ " print \"Access using name of the class:\"\n",
+ " A1.name=raw_input(\"Name:\")\n",
+ " A1.age=raw_input(\"Age:\")\n",
+ " \n",
+ " print \"Access using object of the class\"\n",
+ " a.name=raw_input(\"Name:\")\n",
+ " a.age=raw_input(\"Age:\")\n",
+ " \n",
+ " print \"Access using direct member variables:\"\n",
+ " self.name=raw_input(\"Name:\")\n",
+ " self.age=raw_input(\"Age:\")\n",
+ " self.__height=raw_input(\"Height:\")\n",
+ " self.__weight=raw_input(\"Weight:\")\n",
+ " \n",
+ " print \"Display using object of the class\" #since object of class A1 has scope in constructor method so we can access it only \n",
+ " print \"Name:\",a.name # within this method.It is not visible in destructor function.\n",
+ " print \"Age:\",a.age\n",
+ " \n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of Derived class\"\n",
+ " print \"Display using class name\"\n",
+ " print \"Name:\",A1.name\n",
+ " print \"Age:\",A1.age\n",
+ " \n",
+ " print \"Display using direct member variable\"\n",
+ " print \"Name:\",self.name\n",
+ " print \"Age\",self.age\n",
+ " print \"height:\",self.__height\n",
+ " print \"Weight:\",self.__weight\n",
+ " \n",
+ "x=A2()\n",
+ "\n",
+ "del x\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Access using name of the class:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Ajay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:21\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Access using object of the class\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Amit\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Access using direct member variables:\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name:Arun\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Age:19\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height:5.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Weight:31\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Display using object of the class\n",
+ "Name: Amit\n",
+ "Age: 20\n",
+ "Destructor of Derived class\n",
+ "Display using class name\n",
+ "Name: Ajay\n",
+ "Age: 21\n",
+ "Display using direct member variable\n",
+ "Name: Arun\n",
+ "Age 19\n",
+ "height: 5.5\n",
+ "Weight: 31\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.27, Page Number:488"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#derive a class from two base classes,object of these 2 classes is the member variable of the third class\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.a1=None\n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " self.b1=None\n",
+ " \n",
+ "class AB:\n",
+ " def __init__(self):\n",
+ " a=A()\n",
+ " b=B()\n",
+ " a.a1=65 #initialize the two data members of the class A and B and Display them\n",
+ " b.b1=66\n",
+ " print \"a1=\",a.a1, \"b1=\",b.b1\n",
+ " \n",
+ " def __del__(self):\n",
+ " pass\n",
+ " \n",
+ " \n",
+ "ab=AB()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a1= 65 b1= 66\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.28, Page Number:489"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#create derived class from qualifier class\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ " \n",
+ " class B:\n",
+ " def __init__(self):\n",
+ " self.y=None\n",
+ " \n",
+ " \n",
+ "class C(A,A.B): #A.B is the inner class of the class A\n",
+ " def __init__(self,j,k,l):\n",
+ " self.x=j\n",
+ " self.y=k\n",
+ " self.z=l\n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",self.x,\"y=\",self.y,\"z=\",self.z\n",
+ " \n",
+ " \n",
+ "c=C(4,7,1)\n",
+ "c.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 4 y= 7 z= 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.29, Page Number:490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialize member variable of the base class and derived class using constructor of the derived class\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self._x=None #protected members\n",
+ " self._y=None\n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.z=3\n",
+ " self.__x=1 #private members\n",
+ " self.__y=2\n",
+ " \n",
+ " print \"x=\",self.__x,\"y=\",self.__y,\"z=\",self.z\n",
+ " \n",
+ "b=B()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 1 y= 2 z= 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.30, Page Number:491"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#access data members by object pointer\n",
+ "\n",
+ "from ctypes import *\n",
+ "import ctypes\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=1\n",
+ " self.y=2\n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " A.__init__(self)\n",
+ " self.z=3\n",
+ " \n",
+ "b=B()\n",
+ "\n",
+ "\n",
+ "i=c_int(b.z)\n",
+ "p=pointer(i)\n",
+ "print \"Address of z:\",addressof(p),\"Value of Z:\",p[0] #access the\n",
+ "\n",
+ "i = c_int(b.y)\n",
+ "p = pointer(i)\n",
+ "print \"Address of y:\",addressof(p),\"Value of y:\",p[0] \n",
+ "\n",
+ "i = c_int(b.x)\n",
+ "p = pointer(i)\n",
+ "print \"Address of x:\",addressof(p),\"Value of x:\",p[0] \n",
+ "\n",
+ "#**NOTE-In case of C++ the data members of the derived class and base class are stored in contigious memory locations so we can \n",
+ "#access the three variables by using a pointer of derived class and decrementing its value. But in case of Python they are NOT stored \n",
+ "#in contogious memory locations so for accessing each data member we have to create individual object pointer for each class."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address of z: 57077392 Value of Z: 3\n",
+ "Address of y: 57074448 Value of y: 2\n",
+ "Address of x: 57077648 Value of x: 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.31, Page Number:492"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#overload member function in base and derived class\n",
+ "\n",
+ "class B:\n",
+ " def show(self):\n",
+ " print \"In base class function\"\n",
+ " \n",
+ "class D(B):\n",
+ " def show(self):\n",
+ " \n",
+ " print \"In Derived class\"\n",
+ " \n",
+ " \n",
+ "b=B()\n",
+ "d=D()\n",
+ "\n",
+ "b.show()\n",
+ "d.show()\n",
+ "\n",
+ "bp=[B()] #create a base class pointer variable\n",
+ "bp[0]=d #assign address of the derived class object to the base class pointer\n",
+ "bp[0].show() #call the derived class method by base class pointer\n",
+ "b.show() #calling the base class method by base class object"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "In base class function\n",
+ "In Derived class\n",
+ "In Derived class\n",
+ "In base class function\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.32, Page Number:495"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constuctor and destructors in single inheritance\n",
+ "class Father:\n",
+ " def __init__(self):\n",
+ " print \"Base Class constructor.\"\n",
+ " self._name=raw_input(\"Enter Father Name:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Base class Destructor.\"\n",
+ " \n",
+ "class Child(Father):\n",
+ " def __init__(self):\n",
+ " Father.__init__(self)\n",
+ " print \"Derived class constructor.\"\n",
+ " self.__cname=raw_input(\"Enter child name:\")\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Derived class destructor.\"\n",
+ " print \"\",self.__cname,\"\",self.__name\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ " \n",
+ " \n",
+ "C=Child()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Base Class constructor.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Father Name:Manoj\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Derived class constructor.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter child name:Sanjay\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Derived class destructor.\n",
+ " Sanjay Manoj\n",
+ "Base class Destructor.\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.33, Page Number:496"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constuctor and destructors in multilevel inheritance\n",
+ "\n",
+ "class Grandfather:\n",
+ " def __init__(self):\n",
+ " print\"Constructor of class grandfather\"\n",
+ " self._gname=raw_input(\"Enter Grandfather Name:\")\n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class grandfather\"\n",
+ " \n",
+ " \n",
+ "class Father(Grandfather):\n",
+ " def __init__(self):\n",
+ " Grandfather.__init__(self)\n",
+ " print\"Constructor of class Father\"\n",
+ " self._name=raw_input(\"Enter Father Name:\")\n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class Father\"\n",
+ " Grandfather.__del__(self)\n",
+ " \n",
+ "class Child(Father):\n",
+ " def __init__(self):\n",
+ " Father.__init__(self)\n",
+ " print\"Constructor of class Child\"\n",
+ " self.__cname=raw_input(\"Enter Child Name:\")\n",
+ " \n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class Child\"\n",
+ " print \"Grandfather:\",self._gname,\"Father:\",self._name,\"Child:\",self.__cname\n",
+ " Father.__del__(self) \n",
+ " \n",
+ " \n",
+ "C=Child()\n",
+ "\n",
+ "del C #call the destructor of the derived class\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class grandfather\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Grandfather Name:x\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class Father\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Father Name:y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class Child\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Child Name:z\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Destructor of class Child\n",
+ "Grandfather: x Father: y Child: z\n",
+ "Destructor of class Father\n",
+ "Destructor of class grandfather\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.34, Page Number:498"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#program to explain multilevel inheritance with member function\n",
+ "class Grandfather:\n",
+ " def __init__(self):\n",
+ " self.__gname=None\n",
+ " \n",
+ " def getg(self):\n",
+ " self.__gname=raw_input(\"Enter Grandfather Name:\")\n",
+ " \n",
+ " def showg(self):\n",
+ " print \"Grandfather Name:\",self.__gname\n",
+ " \n",
+ " \n",
+ "class Father(Grandfather):\n",
+ " def __init__(self):\n",
+ " self.__name=None\n",
+ " \n",
+ " def getf(self):\n",
+ " self.__name=raw_input(\"Enter Father Name:\")\n",
+ " \n",
+ " def showf(self):\n",
+ " print \"Father Name:\",self.__name\n",
+ " \n",
+ " \n",
+ "class Child(Father):\n",
+ " def __init__(self):\n",
+ " self.__cname=None\n",
+ " \n",
+ " def getc(self):\n",
+ " self.getg()\n",
+ " self.getf()\n",
+ " self.__cname=raw_input(\"Enter Child Name:\")\n",
+ " \n",
+ " def showc(self):\n",
+ " self.showg()\n",
+ " self.showf()\n",
+ " print \"child Name:\",self.__cname\n",
+ " \n",
+ "C=Child()\n",
+ "C.getc()\n",
+ "C.showc()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Grandfather Name:XXX\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Father Name:YYY\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Child Name:ZZZ\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Grandfather Name: XXX\n",
+ "Father Name: YYY\n",
+ "child Name: ZZZ\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.35, Page Number:499"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#execution of constructor and destructor in multilevel inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class A\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class A\"\n",
+ " \n",
+ " \n",
+ "class B:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class B\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class B\"\n",
+ " \n",
+ "class C:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class C\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class C\"\n",
+ " \n",
+ " \n",
+ "class D(A,B,C):\n",
+ " def __init__(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self) \n",
+ " print \"Constructor of class D\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class D\"\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__del__(self)\n",
+ " \n",
+ "x=D() \n",
+ " #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class A\n",
+ "Constructor of class B\n",
+ "Constructor of class C\n",
+ "Constructor of class D\n",
+ "Destructor of class D\n",
+ "Destructor of class A\n",
+ "Destructor of class B\n",
+ "Destructor of class C\n"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.37, Page Number:502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#execution of constructor and destructor in multilevel inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class A\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class A\"\n",
+ " \n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " A.__init__(self)\n",
+ " print \"Constructor of class B\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class B\"\n",
+ " A.__del__(self)\n",
+ " \n",
+ "class C:\n",
+ " def __init__(self):\n",
+ " print \"Constructor of class C\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class C\"\n",
+ " \n",
+ " \n",
+ "class D(B,C):\n",
+ " def __init__(self):\n",
+ " B.__init__(self)\n",
+ " C.__init__(self)\n",
+ " print \"Constructor of class D\"\n",
+ " \n",
+ " def __del__(self):\n",
+ " print \"Destructor of class D\"\n",
+ " B.__del__(self)\n",
+ " C.__del__(self)\n",
+ " \n",
+ "x=D() \n",
+ "del x\n",
+ " #**NOTE:Python destuctor is called when program goes exit. So output may be differ than c++"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class A\n",
+ "Constructor of class B\n",
+ "Constructor of class C\n",
+ "Constructor of class D\n",
+ "Destructor of class D\n",
+ "Destructor of class B\n",
+ "Destructor of class A\n",
+ "Destructor of class C\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.37, Page Number:502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#demonstrate single inheritance\n",
+ "\n",
+ "class A:\n",
+ " def __init__(self,j=0):\n",
+ " self._c=j\n",
+ " \n",
+ " def show(self):\n",
+ " print \"c=\",self._c\n",
+ " \n",
+ " def inc(self):\n",
+ " self._c=self._c+1\n",
+ " return self._c\n",
+ " \n",
+ "class B(A):\n",
+ " \n",
+ " def __init_(self):\n",
+ " for b in self.__class__.__bases__:\n",
+ " b.__init__(self)\n",
+ " \n",
+ " def dec(self):\n",
+ " self._c=self._c-1\n",
+ " return self._c\n",
+ " \n",
+ " \n",
+ "a=B()\n",
+ "a.inc()\n",
+ "a.show()\n",
+ "\n",
+ "\n",
+ "a.dec()\n",
+ "a.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c= 1\n",
+ "c= 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.38, Page Number:502"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#access method from private inheritance\n",
+ "class B:\n",
+ " def one(self):\n",
+ " print \"one\"\n",
+ " \n",
+ " def __two(self):\n",
+ " print \"two\"\n",
+ " \n",
+ "class D(B):\n",
+ " def __init__(self):\n",
+ " pass\n",
+ " \n",
+ "d=D()\n",
+ "d.one()\n",
+ "#d.two() #Not accesible"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "one\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.39, Page Number:503"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#create a comman constructor in the lowermost class, in the multilevel inheritance\n",
+ "class A:\n",
+ " def __init__(self):\n",
+ " self.x=None\n",
+ " \n",
+ "class B(A):\n",
+ " def __init__(self):\n",
+ " self.y=None\n",
+ " \n",
+ "class C(B):\n",
+ " def __init__(self,j,k,l):\n",
+ " self.z=l\n",
+ " self.x=j\n",
+ " self.y=k\n",
+ " \n",
+ " def show(self):\n",
+ " print \"x=\",self.x,\"Y=\",self.y,\"z=\",self.z\n",
+ " \n",
+ "c=C(4,7,1)\n",
+ "c.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x= 4 Y= 7 z= 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "Example 11.40, Page Number:504"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Explicitly call the base constructor in multiple inheritance\n",
+ "\n",
+ "class X:\n",
+ " def __init__(self,a):\n",
+ " print a,\n",
+ " \n",
+ "class Y:\n",
+ " def __init__(self,b):\n",
+ " print b,\n",
+ " \n",
+ "class Z(X,Y):\n",
+ " def __init__(self,p,q,r):\n",
+ " X.__init__(self,p)\n",
+ " Y.__init__(self,q)\n",
+ " print r\n",
+ " \n",
+ " \n",
+ "z=Z(1,2,3)\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AbhishekGupta/Chapter02.ipynb b/sample_notebooks/AbhishekGupta/Chapter02.ipynb
new file mode 100755
index 00000000..e709048c
--- /dev/null
+++ b/sample_notebooks/AbhishekGupta/Chapter02.ipynb
@@ -0,0 +1,328 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dd88e5202fe8cb4f62cee212896e4620a6a485517d90fb3c0293ab4baa871eef"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter02: Structure of atoms"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:pg-12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 2.1 : radius of the first bohr\"s orbit \n",
+ " \n",
+ "#given data :\n",
+ "\n",
+ "ep=8.854*10**-12;#\n",
+ "h=6.626*10**-34;#\n",
+ "m=9.1*10**-31;#in Kg\n",
+ "e=1.602*10**-19;#\n",
+ "r1=((ep*(h**2))/((math.pi*m*(e**2))));#\n",
+ "print round(r1*10**10,2),\"is radius,r1(in angstrom) \"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.53 is radius,r1(in angstrom) \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:pg-12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Example 2.2 : radius of the second bohr\"s orbit \n",
+ " \n",
+ "#given data :\n",
+ "\n",
+ "r1_h=0.529; # radius for hydrozen atom in Angstrum\n",
+ "n1=1;# for the first bohr's orbit of electron in hydrozen atom\n",
+ "Z1=1; # for the first bohr's orbit of electron in hydrozen atom\n",
+ "k=(r1_h*Z1)/n1**2; # where k is constant\n",
+ "n2=2; # for the second bohr orbit\n",
+ "Z2=2; #for the second bohr orbit\n",
+ "r2_he=k*(n2**2/Z2);\n",
+ "print r2_he,\" is radius of the second bohr orbit,r2 in (Angstrom) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.058 is radius of the second bohr orbit,r2 in (Angstrom) \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:pg-13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Example 2.3: to prove\n",
+ " \n",
+ "Z=1;#assume\n",
+ "n1=1;#orbit 1\n",
+ "n2=2;#orbit 2\n",
+ "n3=3;#orbit 3\n",
+ "e1=((-13.6*Z)/(n1**2));#energy for the first orbit\n",
+ "e2=((-13.6*Z)/(n2**2));#energy for the second orbit\n",
+ "e3=((-13.6*Z)/(n3**2));#energy for the third orbit\n",
+ "e31=e3-e1;#energy emitted by an electron jumping from orbit nuber 3 to orbit nimber 1\n",
+ "e21=e2-e1;#energy emitted by an electron jumping from orbit nuber 2 to orbit nimber 1\n",
+ "re=e31/e21;#ratio of energy\n",
+ "print re,\" is equal to ratio of energy for an electron to jump from orbit 3 to orbit 1 and from orbit 2 to orbit 1 is 32/27 \\n hence proved\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.18518518519 is equal to ratio of energy for an electron to jump from orbit 3 to orbit 1 and from orbit 2 to orbit 1 is 32/27 \n",
+ " hence proved\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:pg-13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 2.4 : velocity\n",
+ " \n",
+ "#given data :\n",
+ "\n",
+ "h=6.626*10**-34;\n",
+ "e=1.6*10**-19;\n",
+ "epsilon_o=8.825*10**-12;\n",
+ "n=1;\n",
+ "Z=1;\n",
+ "vn=(Z*e**2)/(2*epsilon_o*n*h);\n",
+ "print vn,\" is velocity,vn in (m/s) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2188990.2342 is velocity,vn in (m/s) \n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:pg-14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 2.5 : velocity\n",
+ " \n",
+ "#given data :\n",
+ "n=1;\n",
+ "Z=1;\n",
+ "k=6.56*10**15; # k is constant\n",
+ "fn=k*(Z**2/n**3);\n",
+ "print fn,\" is orbital frequency,fn in (Hz) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6.56e+15 is orbital frequency,fn in (Hz) \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.a:pg-14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 2.6.a : the energy of the photon emitted\n",
+ " \n",
+ "#given data :\n",
+ "Z=1;#for hydrozen\n",
+ "n1=3;\n",
+ "n2=2;\n",
+ "E3=-(13.6*Z**2)/n1**2;\n",
+ "E2=-(13.6*Z**2)/n2**2;\n",
+ "del_E=E3-E2;\n",
+ "print round(del_E,2),\" is the energy of photon emitted, del_E in (eV) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1.89 is the energy of photon emitted, del_E in (eV) \n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.b:pg-14"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 2.6.b : frequency\n",
+ " \n",
+ "#given data :\n",
+ "\n",
+ "Z=1;#for hydrozen\n",
+ "n1=3;\n",
+ "n2=2;\n",
+ "m=6.626*10**-34;# mass of electron in kg\n",
+ "E3=-(13.6*Z**2)/n1**2;\n",
+ "E2=-(13.6*Z**2)/n2**2;\n",
+ "del_E=E3-E2;\n",
+ "E=del_E*1.6*10**-19;# in joules\n",
+ "v=(E/m);\n",
+ "print round(v,2),\"frequency of the photon emitted,v(Hz) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4.5611563873e+14 frequency of the photon emitted,v(Hz) \n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.6.c:pg-15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 2.6.c : wave length of the photon emitted\n",
+ " \n",
+ "#given data :\n",
+ "\n",
+ "Z=1;#for hydrozen\n",
+ "n1=3;\n",
+ "n2=2;\n",
+ "m=6.626*10**-34;# mass of electron in kg\n",
+ "C=3*10**8;\n",
+ "E3=-(13.6*Z**2)/n1**2;\n",
+ "E2=-(13.6*Z**2)/n2**2;\n",
+ "del_E=E3-E2;\n",
+ "E=del_E*1.6*10**-19;\n",
+ "v=E/m;\n",
+ "lamda=C/v;\n",
+ "print round(lamda,9),\" is wavelength of the photon emitted,(m) \"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6.58e-07 is wavelength of the photon emitted,(m) \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AjayTheetla/Chapter_1.ipynb b/sample_notebooks/AjayTheetla/Chapter_1.ipynb
new file mode 100755
index 00000000..328727e3
--- /dev/null
+++ b/sample_notebooks/AjayTheetla/Chapter_1.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:628a3355094b4b8d081efb2e248a73ea4bad0a7cd7bbbadfae2b2aceebecc70b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 - Molecular distances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Angle required\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "l=0.71 *10**-8 #cm\n",
+ "n=200. #lines/cm\n",
+ "v=0.00145 #radian\n",
+ "#calculations\n",
+ "d=1/n\n",
+ "phi2=2*l/d +v**2\n",
+ "phi=math.sqrt(phi2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %('Angle required =',phi,'radian')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle required = 2.22e-03 radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Interplanar distance\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "angle=37.25 #degrees\n",
+ "l=1.539 #A\n",
+ "n=1. #order\n",
+ "#calculations\n",
+ "d=n*l/(2*math.sin(angle/180.*math.pi))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Interplanar distance =\",d,\"A\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interplanar distance = 1.271 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the ratio of radii\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "r1=math.sqrt(3.)\n",
+ "r2=1\n",
+ "#calculations\n",
+ "ratio=r1-r2\n",
+ "#results\n",
+ "print '%s %.3f' %('Ratio of radii =',ratio)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of radii = 0.732\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Avagadro number\n",
+ "#Initialization of variables\n",
+ "d=2.64 #g/cc\n",
+ "l=4.016*10**-8 #cm\n",
+ "n=4\n",
+ "M=25.94 #g/mol\n",
+ "#calculations\n",
+ "m=d*l**3 /n\n",
+ "N0=M/m\n",
+ "#results\n",
+ "print '%s %.3e %s' %(\"Avagadro number =\",N0,\" molecule/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avagadro number = 6.068e+23 molecule/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the angle required\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "A=numpy.array([-1, -1, -1 ])\n",
+ "B=numpy.array([1, 1, -1])\n",
+ "#calculations\n",
+ "Ad=math.sqrt(1+1+1)\n",
+ "Bd=math.sqrt(1+1+1)\n",
+ "dot=numpy.dot(A,B) /(Ad*Bd) \n",
+ "theta=math.acos(dot) *180./math.pi\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Angle =\",theta,\" degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle = 109.47 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AjayTheetla/Chapter_1_1.ipynb b/sample_notebooks/AjayTheetla/Chapter_1_1.ipynb
new file mode 100755
index 00000000..328727e3
--- /dev/null
+++ b/sample_notebooks/AjayTheetla/Chapter_1_1.ipynb
@@ -0,0 +1,208 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:628a3355094b4b8d081efb2e248a73ea4bad0a7cd7bbbadfae2b2aceebecc70b"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 - Molecular distances"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Angle required\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "l=0.71 *10**-8 #cm\n",
+ "n=200. #lines/cm\n",
+ "v=0.00145 #radian\n",
+ "#calculations\n",
+ "d=1/n\n",
+ "phi2=2*l/d +v**2\n",
+ "phi=math.sqrt(phi2)\n",
+ "#results\n",
+ "print '%s %.2e %s' %('Angle required =',phi,'radian')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle required = 2.22e-03 radian\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Interplanar distance\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "angle=37.25 #degrees\n",
+ "l=1.539 #A\n",
+ "n=1. #order\n",
+ "#calculations\n",
+ "d=n*l/(2*math.sin(angle/180.*math.pi))\n",
+ "#results\n",
+ "print '%s %.3f %s' %(\"Interplanar distance =\",d,\"A\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Interplanar distance = 1.271 A\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the ratio of radii\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "r1=math.sqrt(3.)\n",
+ "r2=1\n",
+ "#calculations\n",
+ "ratio=r1-r2\n",
+ "#results\n",
+ "print '%s %.3f' %('Ratio of radii =',ratio)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ratio of radii = 0.732\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Avagadro number\n",
+ "#Initialization of variables\n",
+ "d=2.64 #g/cc\n",
+ "l=4.016*10**-8 #cm\n",
+ "n=4\n",
+ "M=25.94 #g/mol\n",
+ "#calculations\n",
+ "m=d*l**3 /n\n",
+ "N0=M/m\n",
+ "#results\n",
+ "print '%s %.3e %s' %(\"Avagadro number =\",N0,\" molecule/mol\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avagadro number = 6.068e+23 molecule/mol\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the angle required\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "import numpy\n",
+ "A=numpy.array([-1, -1, -1 ])\n",
+ "B=numpy.array([1, 1, -1])\n",
+ "#calculations\n",
+ "Ad=math.sqrt(1+1+1)\n",
+ "Bd=math.sqrt(1+1+1)\n",
+ "dot=numpy.dot(A,B) /(Ad*Bd) \n",
+ "theta=math.acos(dot) *180./math.pi\n",
+ "#results\n",
+ "print '%s %.2f %s' %(\"Angle =\",theta,\" degrees\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Angle = 109.47 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AkshayPatil/chapter1.ipynb b/sample_notebooks/AkshayPatil/chapter1.ipynb
new file mode 100755
index 00000000..8411e8ec
--- /dev/null
+++ b/sample_notebooks/AkshayPatil/chapter1.ipynb
@@ -0,0 +1,190 @@
+{
+ "metadata": {
+ "name": "chapter1.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Introduction and Basic Concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-2,Page No:19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "UnitCostOfEnergy=0.09 #Unit cost of Energy in $/kWh\n",
+ "TimeInterval=2200 # Time Interval in hours\n",
+ "EnergyperUnitTime=30 # Rated Power kW\n",
+ "\n",
+ "#Calculation\n",
+ "TotalEnergy=EnergyperUnitTime*TimeInterval # Total Energy in kWh\n",
+ " \n",
+ "#Money Saved\n",
+ "MoneySaved=TotalEnergy*UnitCostOfEnergy # Money Saved in $\n",
+ "\n",
+ "#Calculations in Joules\n",
+ "Tot=EnergyperUnitTime*TimeInterval*(3600) #Total Energy in kJ\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Energy Generated is\",round(TotalEnergy),\"kWh\"\n",
+ "print\"The Total Money Saved is\",round(MoneySaved),\"$\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Energy Generated is 66000.0 kWh\n",
+ "The Total Money Saved is 5940.0 $\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-3,Page No:20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Decleration\n",
+ "rho=850 #density of oil in kg/m^3\n",
+ "V=2 #Volume of tank in m^3\n",
+ "\n",
+ "#Calculations\n",
+ "#We intend to find m\n",
+ "m=rho*V #mass in the tank in kg\n",
+ "\n",
+ "#Result\n",
+ "print\"The mass in the tank is\", round(m),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mass in the tank is 1700.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-4,Page No:21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Decleration\n",
+ "m=1 #mass in lbm\n",
+ "g=32.174 #Gravatational Acceleration in ft/s^2\n",
+ "\n",
+ "#Calculations\n",
+ "W=(m*g)*(1/g) #weight in lbf\n",
+ "\n",
+ "#Result\n",
+ "print\"The weight in lbf is \",round(W),\"lbf\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The weight in lbf is 1.0 lbf\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1-6, Page No:30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Decleration\n",
+ "V=1.1 #Volume of water collected in gal \n",
+ "delt=45.62 # time required in s\n",
+ "gal_conv=3.785*10**-3 #Gal conversion constant\n",
+ "mi=60 #1 minute equals 60 seconds \n",
+ "\n",
+ "#Calculations\n",
+ "V_dot=(V/delt)*(gal_conv/1)*(mi/1) #Volume flow rate in m^3/min\n",
+ "\n",
+ "#Result\n",
+ "print\"The volume flow rate is \",round(V_dot,4), \"m^3/min\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The volume flow rate is 0.0055 m^3/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AkshayPatil/chapter1_1.ipynb b/sample_notebooks/AkshayPatil/chapter1_1.ipynb
new file mode 100755
index 00000000..c989cf92
--- /dev/null
+++ b/sample_notebooks/AkshayPatil/chapter1_1.ipynb
@@ -0,0 +1,190 @@
+{
+ "metadata": {
+ "name": "chapter1.ipynb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Introduction and Basic Concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1-2 Page Number 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Declaration\n",
+ "UnitCostOfEnergy=0.09 #Unit cost of Energy in $/kWh\n",
+ "TimeInterval=2200 # Time Interval in hours\n",
+ "EnergyperUnitTime=30 # Rated Power kW\n",
+ "\n",
+ "#Calculation\n",
+ "TotalEnergy=EnergyperUnitTime*TimeInterval # Total Energy in kWh\n",
+ " \n",
+ "#Money Saved\n",
+ "MoneySaved=TotalEnergy*UnitCostOfEnergy # Money Saved in $\n",
+ "\n",
+ "#Calculations in Joules\n",
+ "Tot=EnergyperUnitTime*TimeInterval*(3600) #Total Energy in kJ\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Energy Generated is\",round(TotalEnergy),\"kWh\"\n",
+ "print\"The Total Money Saved is\",round(MoneySaved),\"$\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Total Energy Generated is 66000.0 kWh\n",
+ "The Total Money Saved is 5940.0 $\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1-3, Page Number 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Decleration\n",
+ "rho=850 #density of oil in kg/m^3\n",
+ "V=2 #Volume of tank in m^3\n",
+ "\n",
+ "#Calculations\n",
+ "#We intend to find m\n",
+ "m=rho*V #mass in the tank in kg\n",
+ "\n",
+ "#Result\n",
+ "print\"The mass in the tank is\", round(m),\"kg\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The mass in the tank is 1700.0 kg\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1-4, Page Number 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Decleration\n",
+ "m=1 #mass in lbm\n",
+ "g=32.174 #Gravatational Acceleration in ft/s^2\n",
+ "\n",
+ "#Calculations\n",
+ "W=(m*g)*(1/g) #weight in lbf\n",
+ "\n",
+ "#Result\n",
+ "print\"The weight in lbf is \",round(W),\"lbf\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The weight in lbf is 1.0 lbf\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1-6, Page Number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#Variable Decleration\n",
+ "V=1.1 #Volume of water collected in gal \n",
+ "delt=45.62 # time required in s\n",
+ "gal_conv=3.785*10**-3 #Gal conversion constant\n",
+ "mi=60 #1 minute equals 60 seconds \n",
+ "\n",
+ "#Calculations\n",
+ "V_dot=(V/delt)*(gal_conv/1)*(mi/1) #Volume flow rate in m^3/min\n",
+ "\n",
+ "#Result\n",
+ "print\"The volume flow rate is \",round(V_dot,4), \"m^3/min\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The volume flow rate is 0.0055 m^3/min\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/Aman KumarJain/Chapter_6_Objects_and_Classes.ipynb b/sample_notebooks/Aman KumarJain/Chapter_6_Objects_and_Classes.ipynb
new file mode 100755
index 00000000..89a18f99
--- /dev/null
+++ b/sample_notebooks/Aman KumarJain/Chapter_6_Objects_and_Classes.ipynb
@@ -0,0 +1,934 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bd4e7931ddf89d8dc8befb681e1e57c7a9c742cd8abe8e18a494a55156d56cee"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6: Objects and Classes"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.1, Page Number: 216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class smallobj: #define a class\n",
+ " \n",
+ " def setdata(self,d): #member function to set class variable somdata\n",
+ " self.__somedata = d\n",
+ " \n",
+ " def showdata(self): #member function to display somedata \n",
+ " print 'Data is ' , self.__somedata\n",
+ "\n",
+ "\n",
+ "#define two objects of class smallobj\n",
+ "s1=smallobj()\n",
+ "s2=smallobj()\n",
+ "\n",
+ "#call member function to set data \n",
+ "s1.setdata(1066)\n",
+ "s2.setdata(1776)\n",
+ "\n",
+ "#call member function to display data \n",
+ "s1.showdata()\n",
+ "s2.showdata()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Data is 1066\n",
+ "Data is 1776\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.2, Page Number: 223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class part: #define class \n",
+ " \n",
+ " def setpart(self,mn,pn,c): #set data\n",
+ " self.__modelnumber = mn\n",
+ " self.__partnumber = pn\n",
+ " self.__cost = c\n",
+ " \n",
+ " def showpart(self): #display data \n",
+ " print 'Model' , self.__modelnumber ,\n",
+ " print ', part' , self.__partnumber , \n",
+ " print ', costs $',self.__cost\n",
+ " \n",
+ "#define object of class part \n",
+ "part1 = part()\n",
+ "\n",
+ "#call member function setpart\n",
+ "part1.setpart(6244,373,217.55)\n",
+ "\n",
+ "#call member function showpart\n",
+ "part1.showpart()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Model 6244 , part 373 , costs $ 217.55\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3, Page Number: 225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from turtle import * #importing turtles library\n",
+ "\n",
+ "class circle: #defining circle class\n",
+ " \n",
+ " def set(self,x,y,r,fc): #sets circle attribute\n",
+ " self._xCo = x\n",
+ " self._yCo = y\n",
+ " self._radius = r\n",
+ " self._fillcolor = fc\n",
+ " \n",
+ " def draw(self): #draws the circle \n",
+ " setup() #set screen\n",
+ " turtle = Turtle() #object of Turtle class\n",
+ " turtle.begin_fill() #start filling color in circle\n",
+ " turtle.color(self._fillcolor) #color\n",
+ " turtle.up()\n",
+ " turtle.goto(self._xCo,self._yCo) #set center of circle\n",
+ " turtle.circle(self._radius) #draw circle of radius self.__radius\n",
+ " turtle.end_fill() #stop filling\n",
+ " turtle.hideturtle()\n",
+ " done()\n",
+ "\n",
+ "#creating objects of class circle \n",
+ "c1 = circle()\n",
+ "c2 = circle()\n",
+ "c3 = circle()\n",
+ "\n",
+ "#sending the value to set fnction\n",
+ "c1.set(15,7,5,\"blue\")\n",
+ "c2.set(41,12,7,\"red\")\n",
+ "c3.set(65,18,4,\"green\")\n",
+ "\n",
+ "#draw circle\n",
+ "c1.draw()\n",
+ "c2.draw()\n",
+ "c3.draw()\n",
+ "\n",
+ "#In the above example the cirlcle's in the book are constructed using 'X' and 'O' but such feature is not available in Python.\n",
+ "#So i have created a simple circle filled with color"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4, Page Number: 226"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Distance: #Distance class\n",
+ " \n",
+ " def setdist(self,ft,inc): #set distance to class variables\n",
+ " self.__feet = ft\n",
+ " self.__inches = inc\n",
+ " \n",
+ " def getdist(self): #get distance from user\n",
+ " self.__feet = input('Enter feet:')\n",
+ " self.__inches = input('Enter inches:')\n",
+ " \n",
+ " def showdist(self): #display distance\n",
+ " print self.__feet , '\\' -' , self.__inches , '\\\"'\n",
+ "\n",
+ "#define two distance\n",
+ "dist1 = Distance()\n",
+ "dist2 = Distance()\n",
+ "\n",
+ "dist1.setdist(11,6.25) #set dist1\n",
+ "dist2.getdist() #set dist2 from user\n",
+ "\n",
+ "#show distances\n",
+ "print \"dist1 = \",\n",
+ "dist1.showdist()\n",
+ "print 'dist2 = ',\n",
+ "dist2.showdist()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter feet:17\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter inches:5.75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dist1 = 11 ' - 6.25 \"\n",
+ "dist2 = 17 ' - 5.75 \"\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5, Page Number: 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Counter:\n",
+ " \n",
+ " def __init__(self): #constructor\n",
+ " self.__count = 0\n",
+ " \n",
+ " def inc_count(self): #increment count\n",
+ " self.__count = self.__count + 1\n",
+ " \n",
+ " def get_count(self): #return count\n",
+ " return self.__count\n",
+ "\n",
+ "#define and initialize class objects\n",
+ "c1=Counter()\n",
+ "c2=Counter()\n",
+ "\n",
+ "#display count for each object\n",
+ "print 'c1 =',c1.get_count()\n",
+ "print 'c2 =',c2.get_count()\n",
+ "\n",
+ "\n",
+ "c1.inc_count() #increment c1\n",
+ "c2.inc_count() #increment c2\n",
+ "c2.inc_count() #increment c2\n",
+ "\n",
+ "#display count again for each object\n",
+ "print 'c1 =',c1.get_count()\n",
+ "print 'c2 =',c2.get_count()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c1 = 0\n",
+ "c2 = 0\n",
+ "c1 = 1\n",
+ "c2 = 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.6, Page Number: 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from turtle import * #importing turtles library\n",
+ "\n",
+ "class circle: #defining circle class\n",
+ " \n",
+ " def __init__(self,x,y,r,fc): #constructor for set circle attribute\n",
+ " self._xCo = x\n",
+ " self._yCo = y\n",
+ " self._radius = r\n",
+ " self._fillcolor = fc\n",
+ " \n",
+ " def draw(self): #draws the circle\n",
+ " setup()\n",
+ " turtle = Turtle()\n",
+ " turtle.begin_fill()\n",
+ " turtle.color(self._fillcolor)\n",
+ " turtle.up()\n",
+ " turtle.goto(self._xCo,self._yCo)\n",
+ " turtle.down()\n",
+ " turtle.circle(self._radius)\n",
+ " turtle.end_fill()\n",
+ " turtle.hideturtle()\n",
+ " done()\n",
+ "\n",
+ "#creating objects of class circle \n",
+ "c1 = circle(15,7,5,\"blue\") \n",
+ "c2 = circle(41,12,7,\"red\")\n",
+ "c3 = circle(65,18,4,\"green\")\n",
+ "\n",
+ "#draw circle\n",
+ "c1.draw()\n",
+ "c2.draw()\n",
+ "c3.draw()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.7, Page Number: 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Distance: #Distance class\n",
+ " \n",
+ " def __init__(self,ft=0,inc=0): #constructor \n",
+ " self.__feet = ft\n",
+ " self.__inches = inc\n",
+ " \n",
+ " def getdist(self): #get length from user\n",
+ " self.__feet = input('Enter feet:')\n",
+ " self.__inches = input('Enter inches:')\n",
+ " \n",
+ " def showdist(self): #display distance\n",
+ " print self.__feet , '\\' -' , self.__inches , '\\\"'\n",
+ " \n",
+ " def add_dist(self,d2,d3): #add length d2 and d3\n",
+ " self.__inches = d2.__inches + d3.__inches #add inches\n",
+ " self.__feet = 0\n",
+ " if self.__inches >= 12.0: #if total exceeds 12.0\n",
+ " self.__inches = self.__inches - 12.0 #then decrease inches by 12.0\n",
+ " self.__feet = self.__feet + 1 #and increase feet by 1\n",
+ " self.__feet = self.__feet + d2.__feet + d3.__feet #add the feet\n",
+ "\n",
+ "#define two length\n",
+ "dist1 = Distance()\n",
+ "dist3 = Distance()\n",
+ "\n",
+ "#define and initialize dist2\n",
+ "dist2 = Distance(11,6.25)\n",
+ "\n",
+ "#get dist1 from user\n",
+ "dist1.getdist()\n",
+ "\n",
+ "#dist3 = dist1 + dist2\n",
+ "dist3.add_dist(dist1,dist2)\n",
+ "\n",
+ "#display all lengths\n",
+ "print 'dist1 = ',\n",
+ "dist1.showdist()\n",
+ "print 'dist2 = ',\n",
+ "dist2.showdist()\n",
+ "print 'dist3 = ',\n",
+ "dist3.showdist()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter feet:17\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter inches:5.75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dist1 = 17 ' - 5.75 \"\n",
+ "dist2 = 11 ' - 6.25 \"\n",
+ "dist3 = 29 ' - 0.0 \"\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8, Page Number: 238"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Distance: #Distance class\n",
+ " \n",
+ " def __init__(self,ft=0,inc=0): #overloaded constructor that takes no arguments or two args or one object(copy constructor)\n",
+ " if isinstance(ft,int):\n",
+ " self.__feet = ft\n",
+ " self.__inches = inc\n",
+ " else:\n",
+ " self.__feet = ft.__feet\n",
+ " self.__inches = ft.__inches\n",
+ " \n",
+ " def getdist(self): #get length from user\n",
+ " self.__feet = input('Enter feet:')\n",
+ " self.__inches = input('Enter inches:')\n",
+ " \n",
+ " def showdist(self): #display distance\n",
+ " print self.__feet , '\\' -' , self.__inches , '\\\"'\n",
+ "\n",
+ "#two argument constructor\n",
+ "dist1 = Distance(11,6.25)\n",
+ "\n",
+ "#one argument(object) constructor explicitly pass\n",
+ "dist2 = Distance(dist1)\n",
+ "\n",
+ "#also one argument(object) constructor implicitly pass\n",
+ "dist3 = dist1\n",
+ "\n",
+ "#display all lengths\n",
+ "print 'dist1 = ',\n",
+ "dist1.showdist()\n",
+ "print 'dist2 = ',\n",
+ "dist2.showdist()\n",
+ "print 'dist3 = ',\n",
+ "dist3.showdist()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dist1 = 11 ' - 6.25 \"\n",
+ "dist2 = 11 ' - 6.25 \"\n",
+ "dist3 = 11 ' - 6.25 \"\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9, Page Number: 240"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Distance: #Distance class\n",
+ " \n",
+ " def __init__(self,ft=0,inc=0): #constructor \n",
+ " self.__feet = ft\n",
+ " self.__inches = inc\n",
+ " \n",
+ " def getdist(self): #get length from user\n",
+ " self.__feet = input('Enter feet:')\n",
+ " self.__inches = input('Enter inches:')\n",
+ " \n",
+ " def showdist(self): #display distance\n",
+ " print self.__feet , '\\' -' , self.__inches , '\\\"'\n",
+ " \n",
+ " def add_dist(self,d2): #add this length to d2 and return object\n",
+ " temp = Distance() #temporary object\n",
+ " temp.__inches = self.__inches + d2.__inches\n",
+ " if temp.__inches >= 12.0:\n",
+ " temp.__inches = temp.__inches - 12.0\n",
+ " temp.__feet = 1\n",
+ " temp.__feet = temp.__feet + self.__feet + d2.__feet\n",
+ " return temp #return sum as object\n",
+ "\n",
+ "#define two length\n",
+ "dist1 = Distance()\n",
+ "dist3 = Distance()\n",
+ "\n",
+ "#define and initialize dist2\n",
+ "dist2 = Distance(11,6.25)\n",
+ "\n",
+ "#get dist1 from user\n",
+ "dist1.getdist()\n",
+ "\n",
+ "#dist3 = dist1 + dist2\n",
+ "dist3 = dist1.add_dist(dist2)\n",
+ "\n",
+ "#display all lengths\n",
+ "print 'dist1 = ',\n",
+ "dist1.showdist()\n",
+ "print 'dist2 = ',\n",
+ "dist2.showdist()\n",
+ "print 'dist3 = ',\n",
+ "dist3.showdist()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter feet:17\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter inches:5.75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dist1 = 17 ' - 5.75 \"\n",
+ "dist2 = 11 ' - 6.25 \"\n",
+ "dist3 = 29 ' - 0.0 \"\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.10, Page Number: 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "Suit = [\"clubs\",\"diamonds\",\"hearts\",\"spades\"] \n",
+ "\n",
+ "(clubs,diamonds,hearts,spades) = (0,1,2,3) #Atteching the names with number \n",
+ "\n",
+ "\n",
+ "#from 2 to 10 are integers without names\n",
+ "jack = 11 \n",
+ "queen = 12 \n",
+ "king = 13\n",
+ "ace = 14\n",
+ "\n",
+ "\n",
+ "class card: \n",
+ " \n",
+ " def __init__(self,n=None,s=None): #constructor\n",
+ " self.__number = n #2 to 10, jack, queen, king, ace\n",
+ " self.__suit = s #clubs, diamonds, hearts, spades\n",
+ " \n",
+ " def display(self): #display the cards\n",
+ " \n",
+ " if self.__number >= 2 and self.__number<=10:\n",
+ " print self.__number , 'of',\n",
+ " \n",
+ " else:\n",
+ " if self.__number == jack:\n",
+ " print 'jack of',\n",
+ " elif self.__number == queen:\n",
+ " print 'queen of',\n",
+ " elif self.__number == king:\n",
+ " print 'king of',\n",
+ " else:\n",
+ " print 'ace of',\n",
+ " \n",
+ " if self.__suit == clubs:\n",
+ " print 'clubs'\n",
+ " elif self.__suit == diamonds:\n",
+ " print 'diamonds'\n",
+ " elif self.__suit == hearts:\n",
+ " print 'hearts'\n",
+ " else:\n",
+ " print 'spades'\n",
+ " \n",
+ " def isEqual(self,c2): #return 1 if cards equal\n",
+ " \n",
+ " if self.__number == c2.__number and self.__suit == c2.__suit:\n",
+ " return 1\n",
+ " else:\n",
+ " return 0\n",
+ "\n",
+ "\n",
+ "#define various cards\n",
+ "temp = card()\n",
+ "chosen = card()\n",
+ "prize = card()\n",
+ "\n",
+ "\n",
+ "#define and initialize card1\n",
+ "card1 = card(7,clubs)\n",
+ "print 'card 1 is the',\n",
+ "card1.display() #display card1\n",
+ "\n",
+ "#define and initialize card2\n",
+ "card2 = card(jack,hearts)\n",
+ "print 'card 2 is the',\n",
+ "card2.display() #display card2\n",
+ "\n",
+ "#define and initialize card3\n",
+ "card3 = card(ace,spades)\n",
+ "print 'card 3 is the',\n",
+ "card3.display() #display card3\n",
+ "\n",
+ "\n",
+ "#prize is the card to guess\n",
+ "prize = card3\n",
+ "\n",
+ "\n",
+ "#swapping cards\n",
+ "print 'I\\'m swapping card 1 and card 3'\n",
+ "temp = card3\n",
+ "card3 = card1\n",
+ "card1 = temp\n",
+ "\n",
+ "print 'I\\'m swapping card 2 and card 3'\n",
+ "temp = card2\n",
+ "card3 = card2\n",
+ "card2 = temp\n",
+ "\n",
+ "print 'I\\'m swapping card 1 and card 2'\n",
+ "temp = card2\n",
+ "card2 = card1\n",
+ "card1 = temp\n",
+ "\n",
+ "print 'Now, where (1,2, or 3) is the',\n",
+ "prize.display() #display prize\n",
+ "print '?'\n",
+ "\n",
+ "position = input() #get user's guess of position\n",
+ "\n",
+ "\n",
+ "#set chosen to user's choice \n",
+ "if position == 1:\n",
+ " chosen = card1\n",
+ "elif position == 2:\n",
+ " chosen = card2\n",
+ "else:\n",
+ " chosen = card3\n",
+ "\n",
+ "#is chosen card the prize?\n",
+ "\n",
+ "x=chosen.isEqual(prize)\n",
+ "\n",
+ "if x==1:\n",
+ " print 'That\\'s right! You win!'\n",
+ "else:\n",
+ " print 'Sorry. You lose.'\n",
+ "\n",
+ "print 'You choose the',\n",
+ "\n",
+ "#display chosen card\n",
+ "chosen.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "card 1 is the 7 of clubs\n",
+ "card 2 is the jack of hearts\n",
+ "card 3 is the ace of spades\n",
+ "I'm swapping card 1 and card 3\n",
+ "I'm swapping card 2 and card 3\n",
+ "I'm swapping card 1 and card 2\n",
+ "Now, where (1,2, or 3) is the ace of spades\n",
+ "?\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "That's right! You win!\n",
+ "You choose the ace of spades\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.11, Page Number: 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class foo: \n",
+ " \n",
+ " __count = 0 #only one data item for all objects\n",
+ " \n",
+ " def __init__(self):\n",
+ " foo.__count = foo.__count + 1 #increment count when object created\n",
+ " \n",
+ " def getcount(self): #returns count\n",
+ " return foo.__count\n",
+ "\n",
+ "#create three objecs\n",
+ "f1 = foo()\n",
+ "f2 = foo()\n",
+ "f3 = foo()\n",
+ "\n",
+ "#Each object displays the same count value\n",
+ "print 'count is', f1.getcount()\n",
+ "print 'count is', f2.getcount()\n",
+ "print 'count is', f3.getcount()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "count is 3\n",
+ "count is 3\n",
+ "count is 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.12, Page Number: 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Distance: #Distance class\n",
+ " \n",
+ " def __init__(self,ft=0,inc=0.0): #constructor \n",
+ " self.__feet = ft\n",
+ " self.__inches = inc\n",
+ " \n",
+ " def getdist(self): #get length from user\n",
+ " self.__feet = input('Enter feet:')\n",
+ " self.__inches = input('Enter inches:')\n",
+ " \n",
+ " def showdist(self): #display distance\n",
+ " print self.__feet , '\\' -' , self.__inches , '\\\"'\n",
+ "\n",
+ "#There's no const keyword \n",
+ " \n",
+ " def add_dist(self,d2): #add this length to d2 and return object\n",
+ " \n",
+ " temp = Distance()\n",
+ " temp.__inches = self.__inches + d2.__inches\n",
+ " \n",
+ " if temp.__inches >= 12.0:\n",
+ " temp.__inches = temp.__inches - 12.0\n",
+ " temp.__feet = 1\n",
+ " \n",
+ " temp.__feet = temp.__feet + self.__feet + d2.__feet\n",
+ " \n",
+ " return temp #return sum as object\n",
+ " \n",
+ "dist1 = Distance()\n",
+ "dist3 = Distance()\n",
+ "dist2 = Distance(11,6.25)\n",
+ "\n",
+ "dist1.getdist()\n",
+ "\n",
+ "dist3 = dist1.add_dist(dist2)\n",
+ "\n",
+ "print 'dist1 = ',\n",
+ "dist1.showdist()\n",
+ "print 'dist2 = ',\n",
+ "dist2.showdist()\n",
+ "print 'dist3 = ',\n",
+ "dist3.showdist()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter feet:17\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter inches:5.75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "dist1 = 17 ' - 5.75 \"\n",
+ "dist2 = 11 ' - 6.25 \"\n",
+ "dist3 = 29 ' - 0.0 \"\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.13, Page Number: 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Distance:\n",
+ " \n",
+ " def __init__(self,ft,inc):\n",
+ " self.__feet = ft\n",
+ " self.__inches = inc\n",
+ " \n",
+ " def getdist(self):\n",
+ " self.__feet = input('Enter feet:')\n",
+ " self.__inches = input('Enter inches:')\n",
+ " \n",
+ " def showdist(self):\n",
+ " print self.__feet , '\\' -' , self.__inches , '\\\"'\n",
+ "\n",
+ "football = Distance(300,0)\n",
+ "\n",
+ "print 'football = ',\n",
+ "football.showdist()\n",
+ "\n",
+ "#There's no const keyword in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "football = 300 ' - 0 \"\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ApurvaBhushan/Chapter_3.ipynb b/sample_notebooks/ApurvaBhushan/Chapter_3.ipynb
new file mode 100755
index 00000000..777522bb
--- /dev/null
+++ b/sample_notebooks/ApurvaBhushan/Chapter_3.ipynb
@@ -0,0 +1,195 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 3: Elements of the Theory of Plasticity"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Example 3.1, True Stress and True Strain, Page No. 76"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "Engineering Stress at maximum load = 99852.1 psi\n",
+ "True Fracture Stress = 112785 psi\n",
+ "True Strain at fracture = 0.344939\n",
+ "Engineering strain at fracture = 0.411903\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi\n",
+ "from math import log\n",
+ "from math import exp\n",
+ "\n",
+ "#variable declaration\n",
+ "D_i=0.505;\n",
+ "L=2;\n",
+ "P_max=20000;\n",
+ "P_f=16000;\n",
+ "D_f=0.425;\n",
+ "\n",
+ "#calculation\n",
+ "E_St= P_max*4/(pi*D_i**2);\n",
+ "T_fr_St= P_f*4/(pi*D_f**2);\n",
+ "e_f=log(D_i**2/D_f**2);\n",
+ "e=exp(e_f)-1;\n",
+ "\n",
+ "#result\n",
+ "print('\\nEngineering Stress at maximum load = %g psi\\nTrue Fracture Stress = %g psi\\nTrue Strain at fracture = %g\\nEngineering strain at fracture = %g')%(E_St,T_fr_St,e_f,e);\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Example 3.2, Yielding Criteria for Ductile Metals, Page No. 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "\n",
+ "\n",
+ "from math import sqrt\n",
+ "\n",
+ "#variable declaration\n",
+ "sigma00=500;\n",
+ "sigma_z=-50;\n",
+ "sigma_y=100;\n",
+ "sigma_x=200;\n",
+ "T_xy=30;\n",
+ "T_yz=0;\n",
+ "T_xz=0;\n",
+ "\n",
+ "#calculation\n",
+ "sigma0=sqrt((sigma_x-sigma_y)**2+(sigma_y-sigma_z)**2+(sigma_z-sigma_x)**2+6*(T_xy**2+T_yz**2+T_xz**2))/sqrt(2);\n",
+ "s=sigma00/sigma0;\n",
+ "\n",
+ "#result\n",
+ "print('\\nSince the calculated value of sigma0 = %g MPa, which is less than the yield strength of the aluminium alloy\\nThus safety factor is = %g')%(sigma0,s);\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Example 3.3, Tresca Criterion, Page No. 81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "\n",
+ "\n",
+ "#variable declaration\n",
+ "sigma00=500;\n",
+ "sigma_z=-50;\n",
+ "sigma_y=100;\n",
+ "sigma_x=200;\n",
+ "T_xy=30;\n",
+ "T_yz=0;\n",
+ "T_xz=0;\n",
+ "\n",
+ "#calculation\n",
+ "sigma0=sigma_x-sigma_z;\n",
+ "s=sigma00/sigma0;\n",
+ "\n",
+ "#result\n",
+ "print('\\nSince the calculated value of sigma0 = %g MPa, which is less than the yield strength of the aluminium alloy\\nThus safety factor is = %g')%(sigma0,s);\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "Example 3.4, Levy-Mises Equation, Page No. 91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "Plastic Strain = 0.199532\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt\n",
+ "\n",
+ "#variable declaration\n",
+ "r_t=20;\n",
+ "p=1000;\n",
+ "\n",
+ "#calculation\n",
+ "sigma1=p*r_t;\n",
+ "sigma1=sigma1/1000; #conversion to ksi\n",
+ "sigma=sqrt(3)*sigma1/2;\n",
+ "e=(sigma/25)**(1/0.25);\n",
+ "e1=sqrt(3)*e/2;\n",
+ "\n",
+ "#result\n",
+ "print('\\nPlastic Strain = %g')%(e1);\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/sample_notebooks/ArchanaDharmasagar Kalidas/chapter3.ipynb b/sample_notebooks/ArchanaDharmasagar Kalidas/chapter3.ipynb
new file mode 100755
index 00000000..0ace7f2d
--- /dev/null
+++ b/sample_notebooks/ArchanaDharmasagar Kalidas/chapter3.ipynb
@@ -0,0 +1,560 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c2cfd770b64ff6a5a34b3865d707320d0a14506274eb94013c7282c3c39c74ee"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "3 : Mechanics of rigid body"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1, Page number A 3.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "t = 20 # tow is given in N-m\n",
+ "k = 0.5 # radius of gyration is given in meters\n",
+ "m = 10 # mass is given in Kgs\n",
+ "# alpha = ? alpha is angular acceleration\n",
+ "#alpha = tow / (((gyration)**2) * mass)\n",
+ "\n",
+ "#calculation\n",
+ "alpha = t / ((k**2) * m)\n",
+ "\n",
+ "#result\n",
+ "print \"the angular acceleration is\", alpha ,\"rad /(sec**2)\"\n",
+ "print \"answer given in the book is wrong\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the angular acceleration is 8.0 rad /(sec**2)\n",
+ "answer given in the book is wrong\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 2, Page number A 3.32"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "pi = 22/7\n",
+ "m = 6 * 10**24 # mass is given in kgs\n",
+ "r = 6.4 * 10**6 # radius is given in meters \n",
+ "r1 = 1.5 * 10**11 # orbital radius in meters\n",
+ "t = 24*60*60 # number of seconds in a day\n",
+ "T = 365*24*60*60 # number of seconds in a year\n",
+ "\n",
+ "I = (2/5) * m * r**2 # inertia in kg-m**2\n",
+ "I1 = m * r1**2 # inertia in kg-m**2\n",
+ "omega = (2* pi) / t # angular velocity in rad / sec\n",
+ "omega1 = (2* pi) / T\n",
+ "\n",
+ "#calculation\n",
+ "L = I * omega # spin angular momentum (Kg -m**2) / sec\n",
+ "L1 = I1 * omega1 # Orbital angular momentum ((Kg -m**2) / sec)\n",
+ "\n",
+ "#Result\n",
+ "print \"the spin angular momentum is \", round(L/10**33,3), \"*10**33 Kg m**2 / sec\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"the spin angular momentum is \", round(L1/10**40,2), \"*10**40 Kg m**2 / sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the spin angular momentum is 7.152 *10**33 Kg m**2 / sec\n",
+ "answer varies due to rounding off errors\n",
+ "the spin angular momentum is 2.69 *10**40 Kg m**2 / sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 4, Page number A 3.33"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "m = 0.1 # mass is converted into kgs from grams\n",
+ "d = 0.01 # diameter is given in meters\n",
+ "r = d/2 # radius is half of diameter\n",
+ "v = 0.05 # velocity is given in m / s\n",
+ "\n",
+ "I = (2/5) * m *r**2 # inertia is given in Kg - m**2\n",
+ "omega = v/r # angular velocity is given in rad/sec\n",
+ "\n",
+ "#calculation\n",
+ "KE = (1/2)* I * omega**2 # kinetic energy is given in joules\n",
+ "\n",
+ "#Result\n",
+ "print \"the kinetic energy of the sphere is\", round(KE*10**5), \"*10**-5 j\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the kinetic energy of the sphere is 5.0 *10**-5 j\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 5, Page number A 3.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "d = .02 # diameter is converted to meters from centimeters\n",
+ "r = d/2 # radius is half of diameter\n",
+ "I = 2 * 10**(-6) # inertia is given in kg - mtr**2\n",
+ "v = .05 # velocity is converted into mtrs/sec from cms / sec\n",
+ "omega = v/r # omega is angular velocity in rad / sec\n",
+ "\n",
+ "#calculation\n",
+ "KE = (1/2) * I * omega**2 # kinetic energy is calculated in joules\n",
+ "\n",
+ "#Result \n",
+ "print \"the kinetic energy calculated is\" ,KE*10**6, \"*10**-6 j\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the kinetic energy calculated is 25.0 *10**-6 j\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 6, Page number A 3.34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "m = 100 # mass is given in Kgs\n",
+ "r = 1 # radius is given in meters\n",
+ "n = 120 # number of rotations is equall to 120 rotations per minute\n",
+ "pi = 3.14\n",
+ "t = 60 # time t is given in seconds as the rotations are given according to minute\n",
+ "\n",
+ "#calculation\n",
+ "I = (1/2) * m * r**2 # inertia is calculated in Kg - mtr**2\n",
+ "omega = (2*pi*n)/t # omega is angular velocity\n",
+ "\n",
+ "KE = (1/2) * I * omega**2 # kinetic energy is calculated in joules\n",
+ "\n",
+ "#Result\n",
+ "print \"the kinetic energy is \", round(KE), \"j\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the kinetic energy is 3944.0 j\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 8, Page number A 3.35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "f = 40 # frequency is given in revolutions per sec\n",
+ "b = 0.1 # base is given in cetimeters which is converted into meters\n",
+ "# inertia (I) is given as (3/10)* m * r**2\n",
+ "\n",
+ "# omega = (m*g*r)/L\n",
+ "\n",
+ "#Calculation\n",
+ "omega = (10*9.8*20*10**(-2))/(4*25*10**(-4) * 6.28 * 40) # angular velocity is cal in rad /sec\n",
+ "\n",
+ "#reuslt\n",
+ "print \"the angular velocity\", round(omega,4), \"rad/sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the angular velocity 7.8025 rad/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 9, Page number A 3.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "m = 1.5 # mass is given in Kgs\n",
+ "k = 0.3 # radius of gyration is given in mtrs\n",
+ "n = 240 # number of revolutions per miute\n",
+ "t = 60 # time is taken in seconds as the revolutioni is given per minute\n",
+ "L = 0.1 # pivoted point length is given in meters\n",
+ "g = 9.8 # gravitational constant is 9.8 mtrs/sec**2\n",
+ "\n",
+ "#calculation\n",
+ "omega = (2*pi*n) / t # omega is calculated in rad /sec\n",
+ "\n",
+ "omegap = (g * L) / (k**2 *omega)\n",
+ "\n",
+ "#result\n",
+ "print \"the precessional speed of the wheel is\", round(omegap,2), \"red / sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the precessional speed of the wheel is 0.43 red / sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 10, Page number A 3.36"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "m = 1 # mass is given in kgs\n",
+ "r = 0.1 # radius is given in meters\n",
+ "omega = 20 * 3.14 # omega(angular velocity) is given in rad/ sec\n",
+ "I = (1/2)*m*r**2 # inertia is calcuated in kg - m**2\n",
+ "\n",
+ "#calculation\n",
+ "\n",
+ "L= I* omega #L agular momentum is calculated in m**2 / sec\n",
+ "KE = (1/2) * I * (omega**2) # kineticc energy is calculated in joules\n",
+ "\n",
+ "#result\n",
+ "print \"the angular momentum is\", L, \"m**2 / sec\"\n",
+ "print \"the kinetic energy is\", KE, \"j\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the angular momentum is 0.314 m**2 / sec\n",
+ "the kinetic energy is 9.8596 j\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 12, Page number A 3.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "m = 0.2 # mass is given in kgs\n",
+ "r = 0.5 # radius is given in meters\n",
+ "a = 0.2 # rate of change of velocity is acceleration which ig given in mtr / sec**2\n",
+ "\n",
+ "# calculation\n",
+ "\n",
+ "# tow is rate of change of angular momentum\n",
+ "# L = m* v * r\n",
+ "# by differentiating L we have to differentiate v that is velocity which gives us acceleration a \n",
+ "\n",
+ "t = m * r * a # tow is calculated in N/m\n",
+ "\n",
+ "#Result\n",
+ "print \"the torque acting is\",t , \"N - m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the torque acting is 0.02 N - m\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 13, Page number A 3.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "m = 2 # mass is given in kgs\n",
+ "r = 0.5 # radius is given in meters\n",
+ "v = 24*1000/(60*60) # velocity is given in Km / hr which is cinverted into mtrs / sec\n",
+ "t = 0.1 # time is given in sec\n",
+ "omega = v/r # angular velocity is calc in rad/sec\n",
+ "theta = 1 # angular change\n",
+ "\n",
+ "# calculation\n",
+ "L = m * r**2 * omega # angular momentum Kg -m**2/sec\n",
+ "#t = d/dt(L)\n",
+ "t= L * theta/t # torque in N -m\n",
+ "\n",
+ "#result\n",
+ "print \"the angular momentum\",round(L,3),\"in KG - m**2/sec\"\n",
+ "print \"the torque required is\",round(t,2),\"N - m\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the angular momentum 6.667 in KG - m**2/sec\n",
+ "the torque required is 66.67 N - m\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 14, Page number A 3.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "KE = 80 # kinetic energy is calculated in joules\n",
+ "I = 8 * 10 **(-7) # inertia is given in kg-m**2\n",
+ "\n",
+ "# calculation\n",
+ "L = (2* I * KE)**(0.5) # the angular momentum is given in Kg -m**2/sec\n",
+ "\n",
+ "# result\n",
+ "print \"the angular momentum is\", round(L*10**2,2) , \"*10**-2 Kg - m**2/sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the angular momentum is 1.13 *10**-2 Kg - m**2/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 15, Page number A 3.39\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#import modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#given data\n",
+ "n = 30 # numb of revolution is given in rev / sec\n",
+ "t = 1 # time t is in seconds\n",
+ "theta = 30 # angle theta is 30 degrees\n",
+ "m = 0.5 # mass is given in Kgs \n",
+ "I = 5 * 10**-4 # rotational inertia is given in Kg -m**2\n",
+ "l = 0.04 # length pivoted from the center of mass is given in cms which is converted into meters\n",
+ "pi= 3.14\n",
+ "g = 9.8 # gravitational const is given in m/sec**2\n",
+ "\n",
+ "#calculation\n",
+ "omega = (2*pi*n)/t # angular velocity is calculated in rad/ sec\n",
+ "omegap = (m*g*l)/(I* omega) # angular velocity of precession is calculated in rad/ sec\n",
+ "\n",
+ "#Result\n",
+ "print \"the angular velocity of precession is\",round(omegap,2),\"rad/sec\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the angular velocity of precession is 2.08 rad/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AvinashReddy/Chapter6.ipynb b/sample_notebooks/AvinashReddy/Chapter6.ipynb
new file mode 100755
index 00000000..50287885
--- /dev/null
+++ b/sample_notebooks/AvinashReddy/Chapter6.ipynb
@@ -0,0 +1,424 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bd93f1663667ee07f8c4bdf99d82cf6a60f9abb18ce0de8906898bec0afa103e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 - Optical Sources"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3.1 :Pg 6.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "x=0.07\n",
+ "\n",
+ "# calculations\n",
+ "Eg=1.424+1.266*x+0.266*math.pow(x,2)\n",
+ "lamda=1.24/Eg # computing wavelength\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.3f %s' %(\"\\nWavlength is \",lamda,\"micrometer \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Wavlength is 0.819 micrometer \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3.2 : Pg 6.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=1.7 #refractive index\n",
+ "L=5*pow(10,-2) #distance between mirror\n",
+ "c=3*pow(10,8) #speed of light\n",
+ "lamda=0.45*pow(10,-6) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "k=2*n*L/lamda #computing number of modes\n",
+ "delf=c/(2*n*L) #computing mode separation\n",
+ "delf=delf*pow(10,-9)\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.2e %s %.2f %s'%(\"\\nNumber of modes are \",k,\"\\nFrequency separation is \",delf,\" GHz.\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number of modes are 3.78e+05 \n",
+ "Frequency separation is 1.76 GHz.\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21.1 : Pg 6.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=50.0 #radiative recombination lifetime\n",
+ "tnr=85.0 #non-radiative recombination lifetime\n",
+ "h=6.624*pow(10,-34) #plank's constant\n",
+ "c=3*pow(10,8) #speed of light\n",
+ "q=1.6*pow(10,-19) #charge of electron\n",
+ "i=35*pow(10,-3) #current\n",
+ "lamda=0.85*pow(10,-6) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "t=tr*tnr/(tr+tnr) #computing total recombination time\n",
+ "eta=t/tr #computing internal quantum efficiency\n",
+ "Pint=eta*h*c*i/(q*lamda) #computing internally generated power\n",
+ "Pint=Pint*pow(10,3)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print '%s %.2f %s %.3f %s %.1f %s' %(\"\\nTotal recombinaiton time is \",t,\" ns.\\nInternal quantum efficiency is \",eta,\".\\nInternally generated power is \",Pint,\" mW.\")\n",
+ "\n",
+ "#answer in the book for Internal quantum efficiency is 0.629, deviation of 0.001.\n",
+ "#answer in the book for Internally generated power is 32.16 mW, deviation of 0.04 mW.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total recombinaiton time is 31.48 ns.\n",
+ "Internal quantum efficiency is 0.630 .\n",
+ "Internally generated power is 32.2 mW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21.2 : Pg 6.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=30.0 #radiative recombination lifetime\n",
+ "tnr=100.0 #non-radiative recombination lifetime\n",
+ "h=6.624*pow(10,-34) #plank's constant\n",
+ "c=3*pow(10,8) #speed of light\n",
+ "q=1.6*pow(10,-19) #charge of electron\n",
+ "i=40*pow(10,-3) #current\n",
+ "lamda=1310*pow(10,-9) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "t=tr*tnr/(tr+tnr) #computing total recombination time\n",
+ "eta=t/tr #computing internal quantum efficiency\n",
+ "Pint=eta*h*c*i/(q*lamda) #computing internally generated power\n",
+ "Pint=Pint*pow(10,3)\n",
+ "\n",
+ "print '%s %.2f %s %.3f %s %.2f %s' %(\"\\nTotal recombinaiton time is \",t,\" ns.\\nInternal quantum efficiency is \",eta,\".\\nInternally generated power is \",Pint,\" mW.\")\n",
+ "\n",
+ "#answer in the book for Total recombinaiton time is 23.07 ns, deviation of 0.01ns.\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total recombinaiton time is 23.08 ns.\n",
+ "Internal quantum efficiency is 0.769 .\n",
+ "Internally generated power is 29.17 mW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21.3 : Pg 6.60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Example 6.21.3 page 6.60\n",
+ "\n",
+ "import math\n",
+ "# Variable initialisation\n",
+ "\n",
+ "tr=50.0 #radiative recombination lifetime\n",
+ "tnr=110.0 #non-radiative recombination lifetime\n",
+ "h=6.624*pow(10,-34) #plank's constant\n",
+ "c=3*pow(10,8) #speed of light\n",
+ "q=1.6*pow(10,-19) #charge of electron\n",
+ "i=40*pow(10,-3) #current\n",
+ "lamda=0.87*pow(10,-6) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "t=tr*tnr/(tr+tnr) #computing total recombination time\n",
+ "eta=t/tr #computing internal quantum efficiency\n",
+ "Pint=eta*h*c*i/(q*lamda) #computing internally generated power\n",
+ "Pint=Pint*pow(10,3)\n",
+ "\n",
+ "print '%s %.2f %s %.4f %s %.2f %s' %(\"\\nTotal recombinaiton time is \",t,\"ns.\\nInternal quantum efficiency is \",eta,\".\\nInternally generated power is \",Pint,\"mW.\")\n",
+ "\n",
+ "#answers in the book with slight deviaitons\n",
+ "#Total recombinaiton time is 34.37 ns, deviation of 0.01ns.\n",
+ "#Internal quantum efficiency is 0.6874, deviaiton of 0.0001.\n",
+ "#Internally generated power is 39.24 mW, deviation of 0.02mW.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total recombinaiton time is 34.38 ns.\n",
+ "Internal quantum efficiency is 0.6875 .\n",
+ "Internally generated power is 39.26 mW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22.1 : Pg 6.68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "f1=10*pow(10,6) #frequency\n",
+ "f2=100*pow(10,6)\n",
+ "t=4*pow(10,-9)\n",
+ "Pdc=280*pow(10,-6) #optincal output power\n",
+ "\n",
+ "# Calculations\n",
+ "w1=2*math.pi*f1 #computing omega\n",
+ "Pout1=Pdc*pow(10,6)/(math.sqrt(1+pow((w1*t),2))) #computing output power\n",
+ "\n",
+ "w2=2*math.pi*f2 #computing omega\n",
+ "Pout2=Pdc*pow(10,6)/(math.sqrt(1+pow((w2*t),2))) #computing output power\n",
+ "\n",
+ "print '%s %.2f %s %.2f %s' %(\"Ouput power at 10 MHz is \",Pout1,\"microwatt.\\nOuput power at 100 MHz is \",Pout2,\"microwatt.\\nConclusion when device is drive at higher frequency the optical power reduces.\\nNOTE - calculation error. In the book square term in the denominator is not taken.\")\n",
+ "BWopt = math.sqrt(3)/(2*math.pi*t)\n",
+ "BWelec = BWopt/math.sqrt(2)\n",
+ "BWopt=BWopt*pow(10,-6)\n",
+ "BWelec=BWelec*pow(10,-6)\n",
+ "\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n3 dB optical power is \",BWopt,\" MHz.\\n3 dB electrical power is \",BWelec,\" MHz.\")\n",
+ "\n",
+ "\n",
+ "#calculation error. In the book square term in the denominater is not taken.\n",
+ "#answers in the book - \n",
+ "#Ouput power at 10 MHz is 228.7 microwatt.(incorrect)\n",
+ "#Ouput power at 100 MHz is 175 microwatt.(incorrect)\n",
+ "#3 dB optical power is 68.8 MHz, deviation of 0.12\n",
+ "#3 dB electrical power is 48.79 MHz, deviation of 0.06 \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ouput power at 10 MHz is 271.55 microwatt.\n",
+ "Ouput power at 100 MHz is 103.52 microwatt.\n",
+ "Conclusion when device is drive at higher frequency the optical power reduces.\n",
+ "NOTE - calculation error. In the book square term in the denominator is not taken.\n",
+ "\n",
+ "3 dB optical power is 68.92 MHz.\n",
+ "3 dB electrical power is 48.73 MHz.\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22.2 : Pg 6.69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=3.5 #refractive index\n",
+ "n=1 #refractive index of air\n",
+ "F=0.69 #transmission factor\n",
+ "\n",
+ "# Calculations\n",
+ "eta = 100*pow((n1*pow((n1+1),2)),-1) #computing eta\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.1f %s' %(\"\\neta external is \",eta,\" percent i.e. small fraction of intrnally generated opticalpower is emitted from the device.\")\n",
+ "print \"\\n\\n OR we can also arrive at solution,\\n\" \n",
+ "\n",
+ "r= 100*F*pow(n,2)/(4*pow(n1,2)) #computing ratio of Popt/Pint\n",
+ "\n",
+ "print '%s %.1f %s' %(\"\\n Popt/Pint is \",r,\"percent\")\n",
+ "\n",
+ "print \"\\nNOTE - printing mistake at final answer.\\nThey have printed 40 percent it should be 1.4 percent\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "eta external is 1.4 percent i.e. small fraction of intrnally generated opticalpower is emitted from the device.\n",
+ "\n",
+ "\n",
+ " OR we can also arrive at solution,\n",
+ "\n",
+ "\n",
+ " Popt/Pint is 1.4 percent\n",
+ "\n",
+ "NOTE - printing mistake at final answer.\n",
+ "They have printed 40 percent it should be 1.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22.3 : Pg 6.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "beta0=1.85*pow(10,7)\n",
+ "T=293 #temperature\n",
+ "k=1.38*pow(10,-23) #Boltzman constant\n",
+ "Ea=0.9*1.6*pow(10,-19)\n",
+ "theta=0.65 #threshold\n",
+ "\n",
+ "# Calculations\n",
+ "betar=beta0*pow(math.e,(-Ea/(k*T)))\n",
+ "t=-math.log(theta)/betar\n",
+ "\n",
+ "# Result\n",
+ "print '%s %.2e %s %.1e %s' %(\"\\nDegradation rate is \",betar,\" per hour.\\nOperating lifetime is \",t,\" hour.\")\n",
+ "\n",
+ "#answer in the book for Degradation rate is 6.4e-09 per hour, deviation of 0.08e-9\n",
+ "#answer in the book for Operating lifetime is 6.7e+07 hour, deviaiton of 0.1e1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Degradation rate is 6.32e-09 per hour.\n",
+ "Operating lifetime is 6.8e+07 hour.\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/AvinashReddy/Chapter6_1.ipynb b/sample_notebooks/AvinashReddy/Chapter6_1.ipynb
new file mode 100755
index 00000000..cb976487
--- /dev/null
+++ b/sample_notebooks/AvinashReddy/Chapter6_1.ipynb
@@ -0,0 +1,424 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:a9319dae2c5d735f752461f1c0fd8a354f31bcf1559eeff72f9ee135bfdbd607"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6 - Optical Sources"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3.1 :Pg 6.7"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# variable initialisation\n",
+ "x=0.07\n",
+ "\n",
+ "# calculations\n",
+ "Eg=1.424+1.266*x+0.266*math.pow(x,2)\n",
+ "lamda=1.24/Eg # computing wavelength\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.3f %s' %(\"\\nWavlength is \",lamda,\"micrometer \")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Wavlength is 0.819 micrometer \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3.2 : Pg 6.12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n=1.7 #refractive index\n",
+ "L=5*math.pow(10,-2) #distance between mirror\n",
+ "c=3*math.pow(10,8) #speed of light\n",
+ "lamda=0.45*math.pow(10,-6) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "k=2*n*L/lamda #computing number of modes\n",
+ "delf=c/(2*n*L) #computing mode separation\n",
+ "delf=delf*math.pow(10,-9)\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.2e %s %.2f %s' %(\"\\nNumber of modes are \",k,\"\\nFrequency separation is \",delf,\" GHz.\")\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number of modes are 3.78e+05 \n",
+ "Frequency separation is 1.76 GHz.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21.1 : Pg 6.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=50.0 #radiative recombination lifetime\n",
+ "tnr=85.0 #non-radiative recombination lifetime\n",
+ "h=6.624*math.pow(10,-34) #plank's constant\n",
+ "c=3*math.pow(10,8) #speed of light\n",
+ "q=1.6*math.pow(10,-19) #charge of electron\n",
+ "i=35*math.pow(10,-3) #current\n",
+ "lamda=0.85*math.pow(10,-6) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "t=tr*tnr/(tr+tnr) #computing total recombination time\n",
+ "eta=t/tr #computing internal quantum efficiency\n",
+ "Pint=eta*h*c*i/(q*lamda) #computing internally generated power\n",
+ "Pint=Pint*math.pow(10,3)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print '%s %.2f %s %.3f %s %.1f %s' %(\"\\nTotal recombinaiton time is \",t,\" ns.\\nInternal quantum efficiency is \",eta,\".\\nInternally generated power is \",Pint,\" mW.\")\n",
+ "\n",
+ "#answer in the book for Internal quantum efficiency is 0.629, deviation of 0.001.\n",
+ "#answer in the book for Internally generated power is 32.16 mW, deviation of 0.04 mW.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total recombinaiton time is 31.48 ns.\n",
+ "Internal quantum efficiency is 0.630 .\n",
+ "Internally generated power is 32.2 mW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21.2 : Pg 6.59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "tr=30.0 #radiative recombination lifetime\n",
+ "tnr=100.0 #non-radiative recombination lifetime\n",
+ "h=6.624*math.pow(10,-34) #plank's constant\n",
+ "c=3*math.pow(10,8) #speed of light\n",
+ "q=1.6*math.pow(10,-19) #charge of electron\n",
+ "i=40*math.pow(10,-3) #current\n",
+ "lamda=1310*math.pow(10,-9) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "t=tr*tnr/(tr+tnr) #computing total recombination time\n",
+ "eta=t/tr #computing internal quantum efficiency\n",
+ "Pint=eta*h*c*i/(q*lamda) #computing internally generated power\n",
+ "Pint=Pint*math.pow(10,3)\n",
+ "\n",
+ "print '%s %.2f %s %.3f %s %.2f %s' %(\"\\nTotal recombinaiton time is \",t,\" ns.\\nInternal quantum efficiency is \",eta,\".\\nInternally generated power is \",Pint,\" mW.\")\n",
+ "\n",
+ "#answer in the book for Total recombinaiton time is 23.07 ns, deviation of 0.01ns.\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total recombinaiton time is 23.08 ns.\n",
+ "Internal quantum efficiency is 0.769 .\n",
+ "Internally generated power is 29.17 mW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.21.3 : Pg 6.60"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Example 6.21.3 page 6.60\n",
+ "\n",
+ "import math\n",
+ "# Variable initialisation\n",
+ "\n",
+ "tr=50.0 #radiative recombination lifetime\n",
+ "tnr=110.0 #non-radiative recombination lifetime\n",
+ "h=6.624*math.pow(10,-34) #plank's constant\n",
+ "c=3*math.pow(10,8) #speed of light\n",
+ "q=1.6*math.pow(10,-19) #charge of electron\n",
+ "i=40*math.pow(10,-3) #current\n",
+ "lamda=0.87*math.pow(10,-6) #wavelength\n",
+ "\n",
+ "# Calculations\n",
+ "t=tr*tnr/(tr+tnr) #computing total recombination time\n",
+ "eta=t/tr #computing internal quantum efficiency\n",
+ "Pint=eta*h*c*i/(q*lamda) #computing internally generated power\n",
+ "Pint=Pint*math.pow(10,3)\n",
+ "\n",
+ "print '%s %.2f %s %.4f %s %.2f %s' %(\"\\nTotal recombinaiton time is \",t,\"ns.\\nInternal quantum efficiency is \",eta,\".\\nInternally generated power is \",Pint,\"mW.\")\n",
+ "\n",
+ "#answers in the book with slight deviaitons\n",
+ "#Total recombinaiton time is 34.37 ns, deviation of 0.01ns.\n",
+ "#Internal quantum efficiency is 0.6874, deviaiton of 0.0001.\n",
+ "#Internally generated power is 39.24 mW, deviation of 0.02mW.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total recombinaiton time is 34.38 ns.\n",
+ "Internal quantum efficiency is 0.6875 .\n",
+ "Internally generated power is 39.26 mW.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22.1 : Pg 6.68"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "f1=10*math.pow(10,6) #frequency\n",
+ "f2=100*math.pow(10,6)\n",
+ "t=4*math.pow(10,-9)\n",
+ "Pdc=280*math.pow(10,-6) #optincal output power\n",
+ "\n",
+ "# Calculations\n",
+ "w1=2*math.pi*f1 #computing omega\n",
+ "Pout1=Pdc*math.pow(10,6)/(math.sqrt(1+math.pow((w1*t),2))) #computing output power\n",
+ "\n",
+ "w2=2*math.pi*f2 #computing omega\n",
+ "Pout2=Pdc*math.pow(10,6)/(math.sqrt(1+math.pow((w2*t),2))) #computing output power\n",
+ "\n",
+ "print '%s %.2f %s %.2f %s' %(\"Ouput power at 10 MHz is \",Pout1,\"microwatt.\\nOuput power at 100 MHz is \",Pout2,\"microwatt.\\nConclusion when device is drive at higher frequency the optical power reduces.\\nNOTE - calculation error. In the book square term in the denominator is not taken.\")\n",
+ "BWopt = math.sqrt(3)/(2*math.pi*t)\n",
+ "BWelec = BWopt/math.sqrt(2)\n",
+ "BWopt=BWopt*math.pow(10,-6)\n",
+ "BWelec=BWelec*math.pow(10,-6)\n",
+ "\n",
+ "print '%s %.2f %s %.2f %s' %(\"\\n3 dB optical power is \",BWopt,\" MHz.\\n3 dB electrical power is \",BWelec,\" MHz.\")\n",
+ "\n",
+ "\n",
+ "#calculation error. In the book square term in the denominater is not taken.\n",
+ "#answers in the book - \n",
+ "#Ouput power at 10 MHz is 228.7 microwatt.(incorrect)\n",
+ "#Ouput power at 100 MHz is 175 microwatt.(incorrect)\n",
+ "#3 dB optical power is 68.8 MHz, deviation of 0.12\n",
+ "#3 dB electrical power is 48.79 MHz, deviation of 0.06 \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ouput power at 10 MHz is 271.55 microwatt.\n",
+ "Ouput power at 100 MHz is 103.52 microwatt.\n",
+ "Conclusion when device is drive at higher frequency the optical power reduces.\n",
+ "NOTE - calculation error. In the book square term in the denominator is not taken.\n",
+ "\n",
+ "3 dB optical power is 68.92 MHz.\n",
+ "3 dB electrical power is 48.73 MHz.\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22.2 : Pg 6.69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "n1=3.5 #refractive index\n",
+ "n=1 #refractive index of air\n",
+ "F=0.69 #transmission factor\n",
+ "\n",
+ "# Calculations\n",
+ "eta = 100*math.pow((n1*math.pow((n1+1),2)),-1) #computing eta\n",
+ "\n",
+ "# Results\n",
+ "print '%s %.1f %s' %(\"\\neta external is \",eta,\" percent i.e. small fraction of intrnally generated opticalpower is emitted from the device.\")\n",
+ "print \"\\n\\n OR we can also arrive at solution,\\n\" \n",
+ "\n",
+ "r= 100*F*math.pow(n,2)/(4*math.pow(n1,2)) #computing ratio of Popt/Pint\n",
+ "\n",
+ "print '%s %.1f %s' %(\"\\n Popt/Pint is \",r,\"percent\")\n",
+ "\n",
+ "print \"\\nNOTE - printing mistake at final answer.\\nThey have printed 40 percent it should be 1.4 percent\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "eta external is 1.4 percent i.e. small fraction of intrnally generated opticalpower is emitted from the device.\n",
+ "\n",
+ "\n",
+ " OR we can also arrive at solution,\n",
+ "\n",
+ "\n",
+ " Popt/Pint is 1.4 percent\n",
+ "\n",
+ "NOTE - printing mistake at final answer.\n",
+ "They have printed 40 percent it should be 1.4 percent\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.22.3 : Pg 6.73"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable initialisation\n",
+ "beta0=1.85*math.pow(10,7)\n",
+ "T=293 #temperature\n",
+ "k=1.38*math.pow(10,-23) #Boltzman constant\n",
+ "Ea=0.9*1.6*math.pow(10,-19)\n",
+ "theta=0.65 #threshold\n",
+ "\n",
+ "# Calculations\n",
+ "betar=beta0*math.pow(math.e,(-Ea/(k*T)))\n",
+ "t=-math.log(theta)/betar\n",
+ "\n",
+ "# Result\n",
+ "print '%s %.2e %s %.1e %s' %(\"\\nDegradation rate is \",betar,\" per hour.\\nOperating lifetime is \",t,\" hour.\")\n",
+ "\n",
+ "#answer in the book for Degradation rate is 6.4e-09 per hour, deviation of 0.08e-9\n",
+ "#answer in the book for Operating lifetime is 6.7e+07 hour, deviaiton of 0.1e1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Degradation rate is 6.32e-09 per hour.\n",
+ "Operating lifetime is 6.8e+07 hour.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/Ershad AhamedChemmalasseri/chapter1.ipynb b/sample_notebooks/Ershad AhamedChemmalasseri/chapter1.ipynb
new file mode 100755
index 00000000..251df967
--- /dev/null
+++ b/sample_notebooks/Ershad AhamedChemmalasseri/chapter1.ipynb
@@ -0,0 +1,556 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:65f02fae284344ccd8037c2004c0386b9cc4ee681cfc1240a77e3be2fe2aff5e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1: Introductory Concepts"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.1, Page number 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Express absolute viscosity of fluids in SI units and calculate the kinematic viscosity\n",
+ "\n",
+ "# Import required modules\n",
+ "\n",
+ "import numpy as np\n",
+ "from prettytable import PrettyTable\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "mu = np.array([1,0.018,100]) # Absolute viscosities in centipoise\n",
+ "mu_poise = np.array([1,0.018,100])/100 # Absolute viscosities in poise\n",
+ "rho = np.array([1.0,0.0012,0.930]) # Densities in gm/cm^3\n",
+ "mu_SI = mu/1000 # Absolute viscosities in SI units\n",
+ "rho_SI = rho*1000 # Densities in SI units\n",
+ "nu = mu_poise/rho # Kinematic viscosities in Stokes\n",
+ "nu_SI = mu_SI/rho_SI # Kinematic viscosities in SI units\n",
+ "\n",
+ "# Tabulate results\n",
+ "\n",
+ "table = PrettyTable([\"Property\", \"Water\", \"Air\", \"Lube Oil\"])\n",
+ "table.add_row(['Absolute Viscosity mu',' ',' ',' '])\n",
+ "table.add_row([\"centipoise cP\",mu[0],mu[1],mu[2]])\n",
+ "table.add_row([\"SI units (Ns/m^2)\",mu_SI[0],mu_SI[1],mu_SI[2]])\n",
+ "table.add_row([' ',' ',' ',' '])\n",
+ "table.add_row(['Mass Density rho',' ',' ',' '])\n",
+ "table.add_row([\"g/cm^3\",rho[0],rho[1],rho[2]])\n",
+ "table.add_row([\"SI units (kg/m^3)\",rho_SI[0],rho_SI[1],rho_SI[2]])\n",
+ "table.add_row([' ',' ',' ',' '])\n",
+ "table.add_row(['Kinematic Viscosity nu',' ',' ',' '])\n",
+ "table.add_row([\"St\",nu[0],nu[1],round(nu[2],2)])\n",
+ "table.add_row([\"SI units (m^2/s)\",nu_SI[0],nu_SI[1],\"{:.2e}\".format(nu_SI[2])])\n",
+ "print table"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "+------------------------+--------+---------+----------+\n",
+ "| Property | Water | Air | Lube Oil |\n",
+ "+------------------------+--------+---------+----------+\n",
+ "| Absolute Viscosity mu | | | |\n",
+ "| centipoise cP | 1.0 | 0.018 | 100.0 |\n",
+ "| SI units (Ns/m^2) | 0.001 | 1.8e-05 | 0.1 |\n",
+ "| | | | |\n",
+ "| Mass Density rho | | | |\n",
+ "| g/cm^3 | 1.0 | 0.0012 | 0.93 |\n",
+ "| SI units (kg/m^3) | 1000.0 | 1.2 | 930.0 |\n",
+ "| | | | |\n",
+ "| Kinematic Viscosity nu | | | |\n",
+ "| St | 0.01 | 0.15 | 1.08 |\n",
+ "| SI units (m^2/s) | 1e-06 | 1.5e-05 | 1.08e-04 |\n",
+ "+------------------------+--------+---------+----------+\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.2, Page number 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculate the force and power required to maintain the velocity\n",
+ "\n",
+ "# Given\n",
+ "A = 0.1 # Area of the flat plate (m^2)\n",
+ "U = 0.3 # Velocity of the flat plate (m/s)\n",
+ "mu = 0.001 # viscosity of the fluid separating the plates (m)\n",
+ "du = U - 0 # relative velocity between the plates\n",
+ "dy = 0.0001 # relative distance between the plates\n",
+ "\n",
+ "tau = mu*du/dy # Shear stress (N/m^2)\n",
+ "F = tau * A # Shear force (N)\n",
+ "Power = F * U # Power required (W)\n",
+ "print(\"The force required to maintain the velocity is %.2f N.\" %F)\n",
+ "print(\"The power required is %.2f W.\" %Power)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force required to maintain the velocity is 0.30 N.\n",
+ "The power required is 0.09 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Page number 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine the torque and power\n",
+ "\n",
+ "# Import required modules\n",
+ "\n",
+ "import math \n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "l = 0.10 # length of the shaft (m)\n",
+ "d = 0.05 # diameter of the shaft (m)\n",
+ "D = 0.051 # diameter of the concentric bearing (m)\n",
+ "N = 500 # Rotational speed of the shaft (rpm)\n",
+ "mu = 0.1 # Viscosity of the lubricating oil (Ns/m^2)\n",
+ "theta = sympy.Symbol('theta')\n",
+ "\n",
+ "u = round(math.pi*d*N/60,2) # Peripheral speed of the shaft (m/s)\n",
+ "du = u - 0 \n",
+ "dy = (D-d)/2\n",
+ "tau = round(mu*du/dy,0) # Shear stress (N/m^2)\n",
+ "T = sympy.integrate(tau*d/2*d/2*l,(theta,0,2*math.pi)) # Torque required to turn the shaft (Nm)\n",
+ "omega = u/(d/2) # Angular speed of the shaft\n",
+ "Power = round(T,3)*omega # Power required to turn the shaft (W)\n",
+ "\n",
+ "print(\"The power required to turn the shaft is %1.3f W.\" %Power)\n",
+ "# Wrong rounding-off of Torque T in textbook. Hence, the difference in value of power. Textbook answer Power = 5.387 W"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power required to turn the shaft is 5.397 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page number 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# The power dissipated in the bearing\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "R = 0.1/2 # Radius of the bearing (m)\n",
+ "mu = 0.08 # Viscosity of oil film (Ns/m^2)\n",
+ "dy = 0.0015 # separation distance (m)\n",
+ "N = 100 # Rotational speed of the bearing (rpm)\n",
+ "r = sympy.Symbol('r')\n",
+ "theta = sympy.Symbol('theta')\n",
+ "\n",
+ "omega = round(2*math.pi*100/60,2) # Angular velocity of the bearing (rad/s)\n",
+ "u = r*omega # Linear velocity of the bearing (m/s)\n",
+ "du = u - 0 # Relative velocity \n",
+ "tau = mu * du/dy # Shear stress (N/m^2)\n",
+ "T = sympy.integrate(tau*r*r,(theta,0,2*math.pi),(r,0,R)) # Total torque on the shaft (Nm)\n",
+ "Power = round(T,5)*omega # Power dissipated (W)\n",
+ "print(\"The power dissipated by the bearing is %.4f W.\" %Power)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power dissipated by the bearing is 0.0574 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page number 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine shear stress for r/R ratios and calculate drag force per meter length of the pipe\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "import math\n",
+ "from tabulate import tabulate\n",
+ "\n",
+ "# Given\n",
+ "r = sympy.Symbol('r') # Radial distance for the point\n",
+ "R = sympy.Symbol('R') # Radial distance for the wall\n",
+ "U = 10 # Centreline velocity (m/s)\n",
+ "mu = 0.002 # Viscosity (Ns/m^2)\n",
+ "r_R = [0.0,0.2,0.5,0.8,1.0] # r/R ratios\n",
+ "u = U*(1-(r/R)**2) # Expression for velocity in a pipe-flow\n",
+ "y = R-r # Distance from the wall\n",
+ "\n",
+ "du = sympy.diff(u,r) # Derivative of 'u' expression\n",
+ "dy = sympy.diff(y,r) \n",
+ "tau = mu*du/dy # Newton's law of viscosity (N/m^2)\n",
+ "F = 2*math.pi*R*tau # Drag force (N)\n",
+ "\n",
+ "# Substitution of r/R ratios\n",
+ "table = []\n",
+ "for i, r_R in enumerate(r_R): \n",
+ " table.append([r_R,round(tau.subs([(R,1.0/2.0),(r,r_R*1.0/2.0)]),4),\n",
+ " round(F.subs([(R,1.0/2.0),(r,r_R*1.0/2.0)]),4)])\n",
+ "print tabulate(table, headers=['r/R', 'Shear stress, tau (N/m^2)', 'Drag force, F (N)'],tablefmt='grid',numalign=\"center\")\n",
+ "# The Drag force printed in the textbook for the r/R = 0.8 is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "+-------+-----------------------------+---------------------+\n",
+ "| r/R | Shear stress, tau (N/m^2) | Drag force, F (N) |\n",
+ "+=======+=============================+=====================+\n",
+ "| 0 | 0 | 0 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 0.2 | 0.016 | 0.0503 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 0.5 | 0.04 | 0.1257 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 0.8 | 0.064 | 0.2011 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 1 | 0.08 | 0.2513 |\n",
+ "+-------+-----------------------------+---------------------+\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page number 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine average thickness of the film\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "n = 800 # Normal reaction by the ice on the skater (N)\n",
+ "f = 0.02 # Coefficient of friction between the skates and the ice \n",
+ "u = 54*1000/3600 # Speed of the skater (m/s)\n",
+ "A = 10e-4 # Skating area (m^2)\n",
+ "mu = 0.001 # Viscosity of water (Ns/m^2)\n",
+ "h = sympy.Symbol('h') # average thickness of the film\n",
+ "\n",
+ "F = f*n # Frictional reaction (N)\n",
+ "du_dy = (u-0)/h # Velocity gradient\n",
+ "tau = mu*du_dy # Shear stress (N/m^2)\n",
+ "print('The average thickness of the film is %.3e m.'\n",
+ " %sympy.solve(sympy.Eq(tau*A,F),h)[0]) # Solve for h by equating drag force to frictional reaction"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average thickness of the film is 9.375e-07 m.\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine necessary increase of pressure\n",
+ "\n",
+ "# Given\n",
+ "K = 2.07e6 # Bulk modulus of water (kN/m^2)\n",
+ "gamma = 1.4 # Specific heat ratio\n",
+ "p = 101.324 # Atmospheric pressure (kN/m^2)\n",
+ "vol_red = 0.01 # Volume reduction \n",
+ "\n",
+ "# (a) At same temperature\n",
+ "dp = vol_red * K # increase in pressure (kN/m^2)\n",
+ "print('The increase in pressure required for water is %d kN/m^2.' %dp)\n",
+ "# (b) isentropic compression of air\n",
+ "K = gamma * p # Bulk modulus of air (kN/m^2)\n",
+ "dp = vol_red * K # increase in pressure (kN/m^2)\n",
+ "print('The increase in pressure required for air is %.2f kN/m^2.' %dp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The increase in pressure required for water is 20700 kN/m^2.\n",
+ "The increase in pressure required for air is 1.42 kN/m^2.\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Height of capillary rise\n",
+ "\n",
+ "# Import required modules\n",
+ "import math\n",
+ "\n",
+ "# Given\n",
+ "sigma = 0.0736 # Surface tension between water and glass (N/m)\n",
+ "theta = 0 # Angle of contact\n",
+ "d = 2e-3 # Diameter of the glass tube (m)\n",
+ "g = 9.81 # Acceleration due to gravity (m/s^2)\n",
+ "rho = 1000 # Density of water (kg/m^3)\n",
+ "\n",
+ "h = 4*sigma*math.cos(theta)/(rho*g*d) # height of capillary rise (m)\n",
+ "print('The water in the glass tube rises through a height of %0.3f m'%h)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The water in the glass tube rises through a height of 0.015 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Gauge pressure and absolute pressure within a droplet and a jet\n",
+ "\n",
+ "# Given\n",
+ "d_droplet = 0.004 # Diamter of the droplet (m)\n",
+ "d_jet = 0.004 # Diameter of the jet (m)\n",
+ "sigma = 0.073 # Viscosity of water (Ns/m^2)\n",
+ "P_atm = 101300 # Atmospheric pressure (N/m^2)\n",
+ "\n",
+ "# (a) For the droplet\n",
+ "P_gauge = 4*sigma/d_droplet # Gauge pressure for droplet (N/m^2)\n",
+ "P_abs = P_atm + P_gauge # Absolute pressure (N/m^2)\n",
+ "print('The gauge pressure and absolute pressure within a droplet is %d N/m^2 and %.3f kN/m^2 respectively.' %(P_gauge,P_abs/1000))\n",
+ "\n",
+ "# (a) For the jet\n",
+ "P_gauge = 2*sigma/d_jet # Gauge pressure for jet (N/m^2)\n",
+ "P_abs = P_atm + P_gauge # Absolute pressure (N/m^2)\n",
+ "print('The gauge pressure and absolute pressure within a jet is %.1f N/m^2 and %.2f kN/m^2 respectively.' %(P_gauge,P_abs/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The gauge pressure and absolute pressure within a droplet is 73 N/m^2 and 101.373 kN/m^2 respectively.\n",
+ "The gauge pressure and absolute pressure within a jet is 36.5 N/m^2 and 101.34 kN/m^2 respectively.\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9, Page number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Difference in level of the miniscii\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "d_1 = 1.0e-3 # Diameter of capillary (m)\n",
+ "d_2 = 1.5e-3 # Diameter of another capillary (m)\n",
+ "sigma = 0.0075 # Surface tension of water (Ns/m^2)\n",
+ "g = 9.81 # Acceleration due to gravity (m/s^2)\n",
+ "rho = 1000 # Density of water (kg/m^3)\n",
+ "h = sympy.Symbol('h') # Difference in level of the miniscii (m)\n",
+ "\n",
+ "h = sympy.solve(sympy.Eq(math.pi*d_2*sigma-math.pi*d_1*sigma,math.pi*d_2**2*h*rho*g/4),h)[0]*1000 # Solve for h\n",
+ "print('The difference in level of the miniscii is %.2f mm' %h)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The difference in level of the miniscii is 0.68 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10, Page number 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Shear stress calculation and estimate the viscosity\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "U_max = 0.2 # Maximum velocity (m/s)\n",
+ "h = 0.01 # film thickness (m)\n",
+ "mu = 0.5 # Viscosity of the non-Newtonian fluid (Ns/m^2)\n",
+ "y = sympy.Symbol('y') \n",
+ "u = sympy.Symbol('u') \n",
+ "u = U_max * (2*(y/h)-(y/h)**3/3) # Expression for velocity\n",
+ "\n",
+ "# (a) Shear stress calculation\n",
+ "du_dy = sympy.diff(u,y) # Velocity gradient\n",
+ "tau = mu*(round(du_dy.subs(y,h)))**1.3 # Shear stress of the non-Newtonian fluid (N/m^2)\n",
+ "print('The shear stress at the solid surface is %.2f N/m^2.' %tau)\n",
+ "\n",
+ "# (b) Estimation of the viscosity of the Newtonian fluid\n",
+ "mu = sympy.Symbol('mu')\n",
+ "mu = sympy.solve(sympy.Eq(round(tau,2),mu*round(du_dy.subs(y,h))))[0] # Solve for mu for the same shear stress using Newton's law of viscosity\n",
+ "print('The viscosity of a Newtonian fluid to induce the same shear stress is %.2f Ns/m^2.' %mu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The shear stress at the solid surface is 24.56 N/m^2.\n",
+ "The viscosity of a Newtonian fluid to induce the same shear stress is 1.23 Ns/m^2.\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/Ershad AhamedChemmalasseri/chapter1_1.ipynb b/sample_notebooks/Ershad AhamedChemmalasseri/chapter1_1.ipynb
new file mode 100755
index 00000000..251df967
--- /dev/null
+++ b/sample_notebooks/Ershad AhamedChemmalasseri/chapter1_1.ipynb
@@ -0,0 +1,556 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:65f02fae284344ccd8037c2004c0386b9cc4ee681cfc1240a77e3be2fe2aff5e"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1: Introductory Concepts"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.1, Page number 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Express absolute viscosity of fluids in SI units and calculate the kinematic viscosity\n",
+ "\n",
+ "# Import required modules\n",
+ "\n",
+ "import numpy as np\n",
+ "from prettytable import PrettyTable\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "mu = np.array([1,0.018,100]) # Absolute viscosities in centipoise\n",
+ "mu_poise = np.array([1,0.018,100])/100 # Absolute viscosities in poise\n",
+ "rho = np.array([1.0,0.0012,0.930]) # Densities in gm/cm^3\n",
+ "mu_SI = mu/1000 # Absolute viscosities in SI units\n",
+ "rho_SI = rho*1000 # Densities in SI units\n",
+ "nu = mu_poise/rho # Kinematic viscosities in Stokes\n",
+ "nu_SI = mu_SI/rho_SI # Kinematic viscosities in SI units\n",
+ "\n",
+ "# Tabulate results\n",
+ "\n",
+ "table = PrettyTable([\"Property\", \"Water\", \"Air\", \"Lube Oil\"])\n",
+ "table.add_row(['Absolute Viscosity mu',' ',' ',' '])\n",
+ "table.add_row([\"centipoise cP\",mu[0],mu[1],mu[2]])\n",
+ "table.add_row([\"SI units (Ns/m^2)\",mu_SI[0],mu_SI[1],mu_SI[2]])\n",
+ "table.add_row([' ',' ',' ',' '])\n",
+ "table.add_row(['Mass Density rho',' ',' ',' '])\n",
+ "table.add_row([\"g/cm^3\",rho[0],rho[1],rho[2]])\n",
+ "table.add_row([\"SI units (kg/m^3)\",rho_SI[0],rho_SI[1],rho_SI[2]])\n",
+ "table.add_row([' ',' ',' ',' '])\n",
+ "table.add_row(['Kinematic Viscosity nu',' ',' ',' '])\n",
+ "table.add_row([\"St\",nu[0],nu[1],round(nu[2],2)])\n",
+ "table.add_row([\"SI units (m^2/s)\",nu_SI[0],nu_SI[1],\"{:.2e}\".format(nu_SI[2])])\n",
+ "print table"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "+------------------------+--------+---------+----------+\n",
+ "| Property | Water | Air | Lube Oil |\n",
+ "+------------------------+--------+---------+----------+\n",
+ "| Absolute Viscosity mu | | | |\n",
+ "| centipoise cP | 1.0 | 0.018 | 100.0 |\n",
+ "| SI units (Ns/m^2) | 0.001 | 1.8e-05 | 0.1 |\n",
+ "| | | | |\n",
+ "| Mass Density rho | | | |\n",
+ "| g/cm^3 | 1.0 | 0.0012 | 0.93 |\n",
+ "| SI units (kg/m^3) | 1000.0 | 1.2 | 930.0 |\n",
+ "| | | | |\n",
+ "| Kinematic Viscosity nu | | | |\n",
+ "| St | 0.01 | 0.15 | 1.08 |\n",
+ "| SI units (m^2/s) | 1e-06 | 1.5e-05 | 1.08e-04 |\n",
+ "+------------------------+--------+---------+----------+\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.2, Page number 23"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Calculate the force and power required to maintain the velocity\n",
+ "\n",
+ "# Given\n",
+ "A = 0.1 # Area of the flat plate (m^2)\n",
+ "U = 0.3 # Velocity of the flat plate (m/s)\n",
+ "mu = 0.001 # viscosity of the fluid separating the plates (m)\n",
+ "du = U - 0 # relative velocity between the plates\n",
+ "dy = 0.0001 # relative distance between the plates\n",
+ "\n",
+ "tau = mu*du/dy # Shear stress (N/m^2)\n",
+ "F = tau * A # Shear force (N)\n",
+ "Power = F * U # Power required (W)\n",
+ "print(\"The force required to maintain the velocity is %.2f N.\" %F)\n",
+ "print(\"The power required is %.2f W.\" %Power)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force required to maintain the velocity is 0.30 N.\n",
+ "The power required is 0.09 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3, Page number 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine the torque and power\n",
+ "\n",
+ "# Import required modules\n",
+ "\n",
+ "import math \n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "l = 0.10 # length of the shaft (m)\n",
+ "d = 0.05 # diameter of the shaft (m)\n",
+ "D = 0.051 # diameter of the concentric bearing (m)\n",
+ "N = 500 # Rotational speed of the shaft (rpm)\n",
+ "mu = 0.1 # Viscosity of the lubricating oil (Ns/m^2)\n",
+ "theta = sympy.Symbol('theta')\n",
+ "\n",
+ "u = round(math.pi*d*N/60,2) # Peripheral speed of the shaft (m/s)\n",
+ "du = u - 0 \n",
+ "dy = (D-d)/2\n",
+ "tau = round(mu*du/dy,0) # Shear stress (N/m^2)\n",
+ "T = sympy.integrate(tau*d/2*d/2*l,(theta,0,2*math.pi)) # Torque required to turn the shaft (Nm)\n",
+ "omega = u/(d/2) # Angular speed of the shaft\n",
+ "Power = round(T,3)*omega # Power required to turn the shaft (W)\n",
+ "\n",
+ "print(\"The power required to turn the shaft is %1.3f W.\" %Power)\n",
+ "# Wrong rounding-off of Torque T in textbook. Hence, the difference in value of power. Textbook answer Power = 5.387 W"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power required to turn the shaft is 5.397 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4, Page number 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# The power dissipated in the bearing\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "R = 0.1/2 # Radius of the bearing (m)\n",
+ "mu = 0.08 # Viscosity of oil film (Ns/m^2)\n",
+ "dy = 0.0015 # separation distance (m)\n",
+ "N = 100 # Rotational speed of the bearing (rpm)\n",
+ "r = sympy.Symbol('r')\n",
+ "theta = sympy.Symbol('theta')\n",
+ "\n",
+ "omega = round(2*math.pi*100/60,2) # Angular velocity of the bearing (rad/s)\n",
+ "u = r*omega # Linear velocity of the bearing (m/s)\n",
+ "du = u - 0 # Relative velocity \n",
+ "tau = mu * du/dy # Shear stress (N/m^2)\n",
+ "T = sympy.integrate(tau*r*r,(theta,0,2*math.pi),(r,0,R)) # Total torque on the shaft (Nm)\n",
+ "Power = round(T,5)*omega # Power dissipated (W)\n",
+ "print(\"The power dissipated by the bearing is %.4f W.\" %Power)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The power dissipated by the bearing is 0.0574 W.\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5, Page number 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine shear stress for r/R ratios and calculate drag force per meter length of the pipe\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "import math\n",
+ "from tabulate import tabulate\n",
+ "\n",
+ "# Given\n",
+ "r = sympy.Symbol('r') # Radial distance for the point\n",
+ "R = sympy.Symbol('R') # Radial distance for the wall\n",
+ "U = 10 # Centreline velocity (m/s)\n",
+ "mu = 0.002 # Viscosity (Ns/m^2)\n",
+ "r_R = [0.0,0.2,0.5,0.8,1.0] # r/R ratios\n",
+ "u = U*(1-(r/R)**2) # Expression for velocity in a pipe-flow\n",
+ "y = R-r # Distance from the wall\n",
+ "\n",
+ "du = sympy.diff(u,r) # Derivative of 'u' expression\n",
+ "dy = sympy.diff(y,r) \n",
+ "tau = mu*du/dy # Newton's law of viscosity (N/m^2)\n",
+ "F = 2*math.pi*R*tau # Drag force (N)\n",
+ "\n",
+ "# Substitution of r/R ratios\n",
+ "table = []\n",
+ "for i, r_R in enumerate(r_R): \n",
+ " table.append([r_R,round(tau.subs([(R,1.0/2.0),(r,r_R*1.0/2.0)]),4),\n",
+ " round(F.subs([(R,1.0/2.0),(r,r_R*1.0/2.0)]),4)])\n",
+ "print tabulate(table, headers=['r/R', 'Shear stress, tau (N/m^2)', 'Drag force, F (N)'],tablefmt='grid',numalign=\"center\")\n",
+ "# The Drag force printed in the textbook for the r/R = 0.8 is wrong"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "+-------+-----------------------------+---------------------+\n",
+ "| r/R | Shear stress, tau (N/m^2) | Drag force, F (N) |\n",
+ "+=======+=============================+=====================+\n",
+ "| 0 | 0 | 0 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 0.2 | 0.016 | 0.0503 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 0.5 | 0.04 | 0.1257 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 0.8 | 0.064 | 0.2011 |\n",
+ "+-------+-----------------------------+---------------------+\n",
+ "| 1 | 0.08 | 0.2513 |\n",
+ "+-------+-----------------------------+---------------------+\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6, Page number 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine average thickness of the film\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "n = 800 # Normal reaction by the ice on the skater (N)\n",
+ "f = 0.02 # Coefficient of friction between the skates and the ice \n",
+ "u = 54*1000/3600 # Speed of the skater (m/s)\n",
+ "A = 10e-4 # Skating area (m^2)\n",
+ "mu = 0.001 # Viscosity of water (Ns/m^2)\n",
+ "h = sympy.Symbol('h') # average thickness of the film\n",
+ "\n",
+ "F = f*n # Frictional reaction (N)\n",
+ "du_dy = (u-0)/h # Velocity gradient\n",
+ "tau = mu*du_dy # Shear stress (N/m^2)\n",
+ "print('The average thickness of the film is %.3e m.'\n",
+ " %sympy.solve(sympy.Eq(tau*A,F),h)[0]) # Solve for h by equating drag force to frictional reaction"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average thickness of the film is 9.375e-07 m.\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Determine necessary increase of pressure\n",
+ "\n",
+ "# Given\n",
+ "K = 2.07e6 # Bulk modulus of water (kN/m^2)\n",
+ "gamma = 1.4 # Specific heat ratio\n",
+ "p = 101.324 # Atmospheric pressure (kN/m^2)\n",
+ "vol_red = 0.01 # Volume reduction \n",
+ "\n",
+ "# (a) At same temperature\n",
+ "dp = vol_red * K # increase in pressure (kN/m^2)\n",
+ "print('The increase in pressure required for water is %d kN/m^2.' %dp)\n",
+ "# (b) isentropic compression of air\n",
+ "K = gamma * p # Bulk modulus of air (kN/m^2)\n",
+ "dp = vol_red * K # increase in pressure (kN/m^2)\n",
+ "print('The increase in pressure required for air is %.2f kN/m^2.' %dp)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The increase in pressure required for water is 20700 kN/m^2.\n",
+ "The increase in pressure required for air is 1.42 kN/m^2.\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Height of capillary rise\n",
+ "\n",
+ "# Import required modules\n",
+ "import math\n",
+ "\n",
+ "# Given\n",
+ "sigma = 0.0736 # Surface tension between water and glass (N/m)\n",
+ "theta = 0 # Angle of contact\n",
+ "d = 2e-3 # Diameter of the glass tube (m)\n",
+ "g = 9.81 # Acceleration due to gravity (m/s^2)\n",
+ "rho = 1000 # Density of water (kg/m^3)\n",
+ "\n",
+ "h = 4*sigma*math.cos(theta)/(rho*g*d) # height of capillary rise (m)\n",
+ "print('The water in the glass tube rises through a height of %0.3f m'%h)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The water in the glass tube rises through a height of 0.015 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Gauge pressure and absolute pressure within a droplet and a jet\n",
+ "\n",
+ "# Given\n",
+ "d_droplet = 0.004 # Diamter of the droplet (m)\n",
+ "d_jet = 0.004 # Diameter of the jet (m)\n",
+ "sigma = 0.073 # Viscosity of water (Ns/m^2)\n",
+ "P_atm = 101300 # Atmospheric pressure (N/m^2)\n",
+ "\n",
+ "# (a) For the droplet\n",
+ "P_gauge = 4*sigma/d_droplet # Gauge pressure for droplet (N/m^2)\n",
+ "P_abs = P_atm + P_gauge # Absolute pressure (N/m^2)\n",
+ "print('The gauge pressure and absolute pressure within a droplet is %d N/m^2 and %.3f kN/m^2 respectively.' %(P_gauge,P_abs/1000))\n",
+ "\n",
+ "# (a) For the jet\n",
+ "P_gauge = 2*sigma/d_jet # Gauge pressure for jet (N/m^2)\n",
+ "P_abs = P_atm + P_gauge # Absolute pressure (N/m^2)\n",
+ "print('The gauge pressure and absolute pressure within a jet is %.1f N/m^2 and %.2f kN/m^2 respectively.' %(P_gauge,P_abs/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The gauge pressure and absolute pressure within a droplet is 73 N/m^2 and 101.373 kN/m^2 respectively.\n",
+ "The gauge pressure and absolute pressure within a jet is 36.5 N/m^2 and 101.34 kN/m^2 respectively.\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9, Page number 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Difference in level of the miniscii\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "d_1 = 1.0e-3 # Diameter of capillary (m)\n",
+ "d_2 = 1.5e-3 # Diameter of another capillary (m)\n",
+ "sigma = 0.0075 # Surface tension of water (Ns/m^2)\n",
+ "g = 9.81 # Acceleration due to gravity (m/s^2)\n",
+ "rho = 1000 # Density of water (kg/m^3)\n",
+ "h = sympy.Symbol('h') # Difference in level of the miniscii (m)\n",
+ "\n",
+ "h = sympy.solve(sympy.Eq(math.pi*d_2*sigma-math.pi*d_1*sigma,math.pi*d_2**2*h*rho*g/4),h)[0]*1000 # Solve for h\n",
+ "print('The difference in level of the miniscii is %.2f mm' %h)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The difference in level of the miniscii is 0.68 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.10, Page number 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Shear stress calculation and estimate the viscosity\n",
+ "\n",
+ "# Import required modules\n",
+ "import sympy\n",
+ "\n",
+ "# Given\n",
+ "U_max = 0.2 # Maximum velocity (m/s)\n",
+ "h = 0.01 # film thickness (m)\n",
+ "mu = 0.5 # Viscosity of the non-Newtonian fluid (Ns/m^2)\n",
+ "y = sympy.Symbol('y') \n",
+ "u = sympy.Symbol('u') \n",
+ "u = U_max * (2*(y/h)-(y/h)**3/3) # Expression for velocity\n",
+ "\n",
+ "# (a) Shear stress calculation\n",
+ "du_dy = sympy.diff(u,y) # Velocity gradient\n",
+ "tau = mu*(round(du_dy.subs(y,h)))**1.3 # Shear stress of the non-Newtonian fluid (N/m^2)\n",
+ "print('The shear stress at the solid surface is %.2f N/m^2.' %tau)\n",
+ "\n",
+ "# (b) Estimation of the viscosity of the Newtonian fluid\n",
+ "mu = sympy.Symbol('mu')\n",
+ "mu = sympy.solve(sympy.Eq(round(tau,2),mu*round(du_dy.subs(y,h))))[0] # Solve for mu for the same shear stress using Newton's law of viscosity\n",
+ "print('The viscosity of a Newtonian fluid to induce the same shear stress is %.2f Ns/m^2.' %mu)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The shear stress at the solid surface is 24.56 N/m^2.\n",
+ "The viscosity of a Newtonian fluid to induce the same shear stress is 1.23 Ns/m^2.\n"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ManikandanD/Chapter1.ipynb b/sample_notebooks/ManikandanD/Chapter1.ipynb
new file mode 100755
index 00000000..56736e6b
--- /dev/null
+++ b/sample_notebooks/ManikandanD/Chapter1.ipynb
@@ -0,0 +1,248 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c711f301926e36cf02f99393ea24acbb9b052c829159da80a195eb0ad85a92da"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Bonding in Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 , Page no:15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r=2; #in angstrom(distance)\n",
+ "e=1.6E-19; # in C (charge of electron)\n",
+ "E_o= 8.85E-12;# absolute premittivity\n",
+ "\n",
+ "#calculate\n",
+ "r=2*1*10**-10; # since r is in angstrom\n",
+ "V=-e**2/(4*3.14*E_o*r); # calculate potential\n",
+ "V1=V/e; # changing to eV\n",
+ "\n",
+ "#result\n",
+ "print \"\\nThe potential energy is V = \",V,\"J\";\n",
+ "print \"In electron-Volt V = \",round(V,3),\"eV\"; \n",
+ "print \"Note: the answer in the book is wrong due to calculation mistake\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The potential energy is V = -1.15153477995e-18 J\n",
+ "In electron-Volt V = -0.0 eV\n",
+ "Note: the answer in the book is wrong due to calculation mistake\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 , Page no:15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "#given\n",
+ "r0=0.236; #in nanometer(interionic distance)\n",
+ "e=1.6E-19; # in C (charge of electron)\n",
+ "E_o= 8.85E-12;# absolute premittivity\n",
+ "N=8; # Born constant\n",
+ "IE=5.14;# in eV (ionisation energy of sodium)\n",
+ "EA=3.65;# in eV (electron affinity of Chlorine)\n",
+ "pi=3.14; # value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r0=r0*1E-9; # since r is in nanometer\n",
+ "PE=(e**2/(4*pi*E_o*r0))*(1-1/N); # calculate potential energy\n",
+ "PE=PE/e; #changing unit from J to eV\n",
+ "NE=IE-EA;# calculation of Net energy\n",
+ "BE=PE-NE;# calculation of Bond Energy\n",
+ "\n",
+ "#result\n",
+ "print\"The potential energy is PE= \",round(PE,2),\"eV\";\n",
+ "print\"The net energy is NE= \",round(NE,2),\"eV\";\n",
+ "print\"The bond energy is BE= \",round(BE,2),\"eV\";\n",
+ "# Note: (1)-In order to make the answer prcatically feasible and avoid the unusual answer, I have used r_0=0.236 nm instead of 236 nm. because using this value will give very much irrelevant answer.\n",
+ "# Note: (2) There is slight variation in the answer due to round off."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The potential energy is PE= 5.34 eV\n",
+ "The net energy is NE= 1.49 eV\n",
+ "The bond energy is BE= 3.85 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 , Page no:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r_0=.41; #in mm(lattice constant)\n",
+ "e=1.6E-19; #in C (charge of electron)\n",
+ "E_o= 8.85E-12; #absolute premittivity\n",
+ "n=0.5; #repulsive exponent value\n",
+ "alpha=1.76; #Madelung constant\n",
+ "pi=3.14; # value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r=.41*1E-3; #since r is in mm\n",
+ "Beta=72*pi*E_o*r**4/(alpha*e**2*(n-1)); #calculation compressibility\n",
+ "\n",
+ "#result\n",
+ "print\"The compressibility is Beta=\",round(Beta);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The compressibility is Beta= -2.50967916144e+15\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 , Page no:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r_0=3.56; #in Angstrom\n",
+ "e=1.6E-19; #in C (charge of electron)\n",
+ "IE=3.89; #in eV (ionisation energy of Cs)\n",
+ "EA=-3.61; #in eV (electron affinity of Cl)\n",
+ "n=10.5; #Born constant\n",
+ "E_o= 8.85E-12; #absolute premittivity\n",
+ "alpha=1.763; #Madelung constant\n",
+ "pi=3.14; #value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r_0=r_0*1E-10; #since r is in nanometer\n",
+ "U=-alpha*(e**2/(4*pi*E_o*r_0))*(1-1/n); #calculate potential energy\n",
+ "U=U/e; #changing unit from J to eV\n",
+ "ACE=U+EA+IE; #calculation of atomic cohesive energy\n",
+ "\n",
+ "#result\n",
+ "print\"The ionic cohesive energy is \",round(U),\"eV\";\n",
+ "print\"The atomic cohesive energy is\",round(ACE),\"eV\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ionic cohesive energy is -6.0 eV\n",
+ "The atomic cohesive energy is -6.0 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 , Page no:17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r_0=2.81; #in Angstrom\n",
+ "e=1.6E-19; #in C (charge of electron)\n",
+ "n=9; #Born constant\n",
+ "E_o= 8.85E-12; #absolute premittivity\n",
+ "alpha=1.748; #Madelung constant\n",
+ "pi=3.14; #value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r_0=r_0*1E-10; #since r is in nanometer\n",
+ "V=-alpha*(e**2/(4*pi*E_o*r_0))*(1-1/n); #calculate potential energy\n",
+ "V=V/e; #changing unit from J to eV\n",
+ "V_1=V/2; #Since only half of the energy contribute per ion to the cohecive energy therfore\n",
+ "\n",
+ "#result\n",
+ "print\"The potential energy is V=\",round(V,2),\"eV\";\n",
+ "print\"The energy contributing per ions to the cohesive energy is \",round(V_1,2),\"eV\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The potential energy is V= -7.96 eV\n",
+ "The energy contributing per ions to the cohesive energy is -3.98 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ManikandanD/chapter_1_.ipynb b/sample_notebooks/ManikandanD/chapter_1_.ipynb
new file mode 100755
index 00000000..e79571af
--- /dev/null
+++ b/sample_notebooks/ManikandanD/chapter_1_.ipynb
@@ -0,0 +1,256 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:d769dfed1de81f32faa9bbbfcfead0c5e629ef3b47c5b247ff782d0972a27a01"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1:Bonding in Solids"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 , Page no:15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r=2; #in angstrom(distance)\n",
+ "e=1.6E-19; # in C (charge of electron)\n",
+ "E_o= 8.85E-12;# absolute premittivity\n",
+ "\n",
+ "#calculate\n",
+ "r=2*1*10**-10; # since r is in angstrom\n",
+ "V=-e**2/(4*3.14*E_o*r); # calculate potential\n",
+ "V1=V/e; # changing to eV\n",
+ "\n",
+ "#result\n",
+ "print \"\\nThe potential energy is V = \",V,\"J\";\n",
+ "print \"In electron-Volt V = \",round(V,3),\"eV\"; \n",
+ "print \"Note: the answer in the book is wrong due to calculation mistake\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The potential energy is V = -1.15153477995e-18 J\n",
+ "In electron-Volt V = -0.0 eV\n",
+ "Note: the answer in the book is wrong due to calculation mistake\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 , Page no:15"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "from __future__ import division\n",
+ "#given\n",
+ "r0=0.236; #in nanometer(interionic distance)\n",
+ "e=1.6E-19; # in C (charge of electron)\n",
+ "E_o= 8.85E-12;# absolute premittivity\n",
+ "N=8; # Born constant\n",
+ "IE=5.14;# in eV (ionisation energy of sodium)\n",
+ "EA=3.65;# in eV (electron affinity of Chlorine)\n",
+ "pi=3.14; # value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r0=r0*1E-9; # since r is in nanometer\n",
+ "PE=(e**2/(4*pi*E_o*r0))*(1-1/N); # calculate potential energy\n",
+ "PE=PE/e; #changing unit from J to eV\n",
+ "NE=IE-EA;# calculation of Net energy\n",
+ "BE=PE-NE;# calculation of Bond Energy\n",
+ "\n",
+ "#result\n",
+ "print\"The potential energy is PE= \",round(PE,2),\"eV\";\n",
+ "print\"The net energy is NE= \",round(NE,2),\"eV\";\n",
+ "print\"The bond energy is BE= \",round(BE,2),\"eV\";\n",
+ "# Note: (1)-In order to make the answer prcatically feasible and avoid the unusual answer, I have used r_0=0.236 nm instead of 236 nm. because using this value will give very much irrelevant answer.\n",
+ "# Note: (2) There is slight variation in the answer due to round off."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The potential energy is PE= 5.34 eV\n",
+ "The net energy is NE= 1.49 eV\n",
+ "The bond energy is BE= 3.85 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.5 , Page no:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r_0=.41; #in mm(lattice constant)\n",
+ "e=1.6E-19; #in C (charge of electron)\n",
+ "E_o= 8.85E-12; #absolute premittivity\n",
+ "n=0.5; #repulsive exponent value\n",
+ "alpha=1.76; #Madelung constant\n",
+ "pi=3.14; # value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r=.41*1E-3; #since r is in mm\n",
+ "Beta=72*pi*E_o*r**4/(alpha*e**2*(n-1)); #calculation compressibility\n",
+ "\n",
+ "#result\n",
+ "print\"The compressibility is\tBeta=\",round(Beta);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The compressibility is\tBeta= -2.50967916144e+15\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 , Page no:16"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r_0=3.56; #in Angstrom\n",
+ "e=1.6E-19; #in C (charge of electron)\n",
+ "IE=3.89; #in eV (ionisation energy of Cs)\n",
+ "EA=-3.61; #in eV (electron affinity of Cl)\n",
+ "n=10.5; #Born constant\n",
+ "E_o= 8.85E-12; #absolute premittivity\n",
+ "alpha=1.763; #Madelung constant\n",
+ "pi=3.14; #value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r_0=r_0*1E-10; #since r is in nanometer\n",
+ "U=-alpha*(e**2/(4*pi*E_o*r_0))*(1-1/n); #calculate potential energy\n",
+ "U=U/e; #changing unit from J to eV\n",
+ "ACE=U+EA+IE; #calculation of atomic cohesive energy\n",
+ "\n",
+ "#result\n",
+ "print\"The ionic cohesive energy is \",round(U),\"eV\";\n",
+ "print\"The atomic cohesive energy is\",round(ACE),\"eV\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ionic cohesive energy is -6.0 eV\n",
+ "The atomic cohesive energy is -6.0 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 , Page no:17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "r_0=2.81; #in Angstrom\n",
+ "e=1.6E-19; #in C (charge of electron)\n",
+ "n=9; #Born constant\n",
+ "E_o= 8.85E-12; #absolute premittivity\n",
+ "alpha=1.748; #Madelung constant\n",
+ "pi=3.14; #value of pi used in the solution\n",
+ "\n",
+ "#calculate\n",
+ "r_0=r_0*1E-10; #since r is in nanometer\n",
+ "V=-alpha*(e**2/(4*pi*E_o*r_0))*(1-1/n); #calculate potential energy\n",
+ "V=V/e; #changing unit from J to eV\n",
+ "V_1=V/2; #Since only half of the energy contribute per ion to the cohecive energy therfore\n",
+ "\n",
+ "#result\n",
+ "print\"The potential energy is V=\",round(V,2),\"eV\";\n",
+ "print\"The energy contributing per ions to the cohesive energy is \",round(V_1,2),\"eV\";"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The potential energy is V= -7.96 eV\n",
+ "The energy contributing per ions to the cohesive energy is -3.98 eV\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/MayankSahu/Chapter1_.ipynb b/sample_notebooks/MayankSahu/Chapter1_.ipynb
new file mode 100755
index 00000000..530c71c7
--- /dev/null
+++ b/sample_notebooks/MayankSahu/Chapter1_.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "#Chapter1 : Concepts of electric current and Laws", "cell_type": "markdown", "metadata": {}}, {"source": "## Example1.1, Page number 4", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "#variable declaration\nL =12 #meter\nA=0.01*10**-4 #m**2\nR=0.2 #ohm\n\n#calculation\np=R*A/L #specific resistance\n\n#result\nprint \"specific resistance = \" , p, \"ohm-metre\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "specific resistance = 1.66666666667e-08 ohm-metre\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.2, Page number 5", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "\n#variable declaration\na0=0.0043 \nt1=27 #degree celsius\nt2=40\nR1=1.5 #ohm\n\n#calculation\nR2=R1*(1+a0*t2)/(1+a0*t1) #ohm\n\n#result\nprint \"The resistance of armature winding at 40 degree celcius =\" , round(R2,3) ,\"ohm\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "The resistance of armature winding at 40 degree celcius = 1.575 ohm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.3, Page number 13", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "#variable decdlaration\nR1=5 #ohm \nR2=10\nR3=15\nV=120 #volt\n\n#calculation\nR=R1+R2+R3 #ohm\nI=V/R # ampere\nV1=I*R1 #volt\nV2=I*R2\nV3=I*R3\n\n#result\nprint \"Resistance = \" , R , \"ohm\"\nprint \"cureent = \" , I , \"amperes\"\nprint \"Voltage V1 = \" , V1 , \"volts\"\nprint \"Voltage V2 = \" , V2 , \"volts\"\nprint \"Voltage V3 = \" , V3 , \"volts\"\n\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Resistance = 30 ohm\ncureent = 4 amperes\nVoltage V1 = 20 volts\nVoltage V2 = 40 volts\nVoltage V3 = 60 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.4, Page number 14", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "#varaiable declaration\nRab =(2.0*4.0)/(2+4) #ohms\nRbc =(6.0*8.0)/(6+8)\n\n#calculation\nRac = Rab+Rbc #ohms\n\n#result\nprint \"resistance across AC = \" , round(Rac,2) , \"ohms\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "resistance across AC = 4.76 ohms\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.5, Page number 14", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "#variable declaration\nRab=4 #ohm\nRbc=(12.0*8.0)/(12+8)\nRcd=(3.0*6.0)/(3+6)\n\n#calculation\nRad=Rab+Rbc+Rcd #ohm\n\n#result\nprint \"resistance across AC = \" , Rad, \"ohms\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "resistance across AC = 10.8 ohms\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.6, Page number 15", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "#variable declaration\nR1=8 #ohms\nR=6\n#calculations\nR2 = 48/2 # R = R1*R2/(R1+R2)\n\n#result\nprint \" Resistance R2 = \" , R2, \"ohms\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Resistance R2 = 24 ohms\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.7, Page number 15", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "#variable declaration\nI=12.0 #ampere\nR1=6.0 #ohms\nR2=8.0\n\n#calculations\nI1=I*R2/(R1+R2) #amperes\nI2=I*R1/(R1+R2)\n\n#result\nprint \"I1= \" , round(I1,3) , \"amperes\" \nprint \"I2= \" , round(I2,2) , \"amperes\" \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "I1= 6.857 amperes\nI2= 5.14 amperes\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.9, Page number 17", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "#variable declaration\nR1=0.02 #ohms\nR2=0.03\nI = 10 #amperes\n\n#Calculations\nI1=(I*R2)/(R1+R2)\nI2=(I*R1)/(R1+R2)\n\n#result\nprint \" I1= \" , I1 , \"amperes \"\nprint \" I2= \" , I2 , \"amperes \" \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " I1= 6.0 amperes \n I2= 4.0 amperes \n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.10, Page number 18", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "#variable declaration\nV=200.0 #volts\nI=25.0 #amperes\nP1=1500.0 #watts\n\n#calculations \nR1=(V*V)/P1 #ohms\nR=V/I #total resistance\nR2=R*R1/(R1-R) #ohms\n\n#result\nprint \"R1 = \" ,round(R1,2) , \"ohms\" \nprint \"R2 = \" , round(R2,2) , \"ohms\" \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "R1 = 26.67 ohms\nR2 = 11.43 ohms\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.11, Page number 19", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "#variable declaration\nV=100.0 #volts \nP=1500.0 #watts\n\n#calculations\nR=(V**2/P)/2 #ohms\nRa=R\nRb=R\nRc=R\nR1=((Ra*Rc)/(Ra+Rc))+Rb\nI=V/R1 #amperes\nI1=(I*Ra)/(Ra+Rc)\nI2=(I*Ra)/(Ra+Rc)\nPb=I*I*Ra #watts\nPa=I1*I1*Rb\nPc=I2*I2*Rc\n\n#result\nprint \"power dissipated in coil Pa = \" , round(Pa,2) , \"watts\"\nprint \"power dissipated in coil Pb = \" , round(Pb,2), \"watts\"\nprint \"power dissipated in coil Pc = \" , round(Pc,2) , \"watts\"\n\n#Round off error in book \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power dissipated in coil Pa = 333.33 watts\npower dissipated in coil Pb = 1333.33 watts\npower dissipated in coil Pc = 333.33 watts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.12, Page number 20", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "#variable declaration\nL=3600 #six lamp 1000 watt each for six days\nH=3000 # heater\nM=735.5 # single phase motor\nF=2400 #four fans 75W\nC=0.9 #cost of energy\n\n#Calculations\nT=L+H+M+F #total energy consumed in watt \nTE=T*30/1000\nB=TE*C #Bill amount in Rs\n\n#result\nprint \"Bill amount = Rs \" , round(B) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Bill amount = Rs 263.0\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.18, Page number 34", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "#variable declaration\nRry=4.0 #ohm\nRyb=1.0\nRbr=5.0\n\n#calculation\nRr=(Rbr*Rry)/(Rry+Rbr+Ryb)\nRy=(Rry*Ryb)/(Rry+Rbr+Ryb)\nRb=(Rbr*Ryb)/(Rry+Rbr+Ryb)\n\n#result\nprint \"Rr = \" , Rr , \"ohms\"\nprint \"Ry = \" , Ry , \"ohms\"\nprint \"Rb= \" , Rb , \"ohms\"\n\n#Value of Rr in book is printed wrong \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Rr = 2.0 ohms\nRy = 0.4 ohms\nRb= 0.5 ohms\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "## Example1.19, Page number 34", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "#variable declaration\nRr=2.0 #ohms\nRy=0.67\nRb=1.0\n\n#calculations\nRry=(Rr*Ry)+(Ry*Rb)+(Rb*Rr)/Rb\nRyb=((Rr*Ry)+(Ry*Rb)+(Rb*Rr))/Rr\nRbr=((Rr*Ry)+(Ry*Rb)+(Rb*Rr))/Ry\n\n#result\nprint \"Rry = \" , round(Rry) , \"ohms\"\nprint \"Ryb = \" , round(Ryb) , \"ohms\"\nprint \"Rbr = \" , round(Rbr) , \"ohms\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Rry = 4.0 ohms\nRyb = 2.0 ohms\nRbr = 6.0 ohms\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/sample_notebooks/MayankSahu/Chapter5_.ipynb b/sample_notebooks/MayankSahu/Chapter5_.ipynb
new file mode 100755
index 00000000..7738b9ee
--- /dev/null
+++ b/sample_notebooks/MayankSahu/Chapter5_.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "#Chapter5 : Electrical Machines", "cell_type": "markdown", "metadata": {}}, {"source": "##Example 5.1 , Page number 178", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "#determine the induced emf in the armature\n\n#varaible declaration\nP=4 #poles\nA=2 #wave wound\nn=50 #number of slots\nSc=24 #slots/conductor\nN=600 #speed of armature \nF=10e-3 #webers\n\n#calculations\nZ=Sc*n #total conductor\nE=F*Z*N*P/(60*A) #emf induced\n\nprint \" emf induced E = \" , E , \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced E = 240.0 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.2 , Page number 178", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "#determine the induced emf in the armature\n\n#variable declaration\nP=4 #poles\nA=4 #wave wound\nn=50 #number of slots\nSc=24 #slots/conductor\nN=600 #rpm \nF=10e-3 #webers\n\n#calculations\nZ=Sc*n;#total conductor\nE=F*Z*N*P/(60*A) #emf induced\n\n#result\nprint \"e.m.f induced E = \" , E, \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "e.m.f induced E = 120.0 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.3 , Page number 179", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "#determine the speed\n\n#variable declaration\nP=6 #poles\nA1=2 #wave wound\nZ=780 #armature conductors\nF=12*10**-3 #webers \nE=400 #volt\nA2=6 #wave wound\n#calculation\nN=(E*60*A1)/(F*Z*P) #rpm\nN2=(E*60*A2)/(F*Z*P) #rpm\n\n#result\nprint \" Speed of the armature = \" , round(N,2) , \"rpm\"\nprint \" Speed when lap is wound = \" , round(N2,1) , \"rpm\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Speed of the armature = 854.7 rpm\n Speed when lap is wound = 2564.1 rpm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.4 , Page number 182", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "#determine the emf induced\n\n#variable declaration\nR=0.5 #ohm\nRs=100.0 \nV=250.0 #volts\nP=10000.0 #watts\n\n#calculation\nI=P/V #ampere\nIs=V/Rs \nIa=I+Is \nEg=V+(R*Ia) #volts\n\n#result\nprint \" emf induced Eg = \" , Eg , \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced Eg = 271.25 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.5 , Page number 183", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "#calculate the emf induced in the armature\n\n#variable declaration\nIl=200 #amperes\nVl=500 #volts\nRa=0.03 #ohm\nRs=0.015\nR=150\nBCD=2 #one volt per brush\n\n#calculation\nI=Vl/R #ampere\nIa=Il+I \nEg=Vl+(Ia*Ra)+(Ia*Rs)+BCD #volts\n\n#result\nprint \" emf induced Eg = \" , round(Eg,2) , \"volts\"\n\n#round off error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced Eg = 511.13 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.6 , Page number 184", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "#calculate the emf induced in the armature\n\n#variable declaration\nI1=200 #ampere\nVl=500 #volts\nRa=0.03 #ohm\nRs=0.015\nIs=200 #ampere\nR=150 #ohm\n\n#calculation\nBCD=2 #one volt per brush\nI=(Vl+(Is*Rs))/R #ampere\nIa = I1 + I\nEg=Vl+(Ia*Ra)+(Ia*Rs)+BCD #volts\n\n#result\nprint \" emf induced Eg = \" , round(Eg,2) ,\"volts\"\n\n#Error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced Eg = 511.15 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.7 , Page number 196", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "#calculate the back emf induced on full load\n\n#variable declaration\nRa=0.5 #armature resistance\nRs=250 #shunt resistance\nVl=250 #line volt\nIl=40 #ampere\n\n#calculation\nIs=Vl/Rs #amperes\nIa=Il-Is\nEb=Vl-(Ia*Ra) #volts\n\n#result\nprint \"emf induced Eb = \", Eb, \"volts\" \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "emf induced Eb = 230.5 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.8 , Page number 196", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "#find the power developed in circiut\n\n#variable declaration\nPl=20e3 #watts\nVl=200.0 #volts \nRa=0.05 #ohms\nR=150.0\n\n#calculation\nI=Vl/R #ampere\nIl=Pl/Vl\nIa=Il+I\nEg=Vl+(Ia*Ra) #volts\nP=Eg*Ia #watts\n\n#result\nprint \"power developed = \" , round(P,2) , \"watt\"\n\n#round off error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power developed = 20780.09 watt\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.9 , Page number 197", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "#calculate the speed of the machine when running\n\n#variable declaration\nN1=1000 #speed of generator\nE1=205.06 #emf generator\nE2=195.06 #emf of motor\n\n#calculation\nN2=(E2*N1)/E1 #speed of generator\n\n#result\nprint\"speed of motor = \" , round(N2,2) ,\"rpm\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "speed of motor = 951.23 rpm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.10 , Page number 198", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "#dtermine its speed when its take crnt 25 amps\n\n#variable declaration\nVl=250.0 #volts\nRa=0.05 #ohm\nR=0.02 #ohm\nIa=30.0 #ampere\nI1=30.0\nN1=400.0\nI2=25.0\n\n#calculation\nE1=Vl-(Ia*Ra)-(Ia*R) #volts\nN2=(N1*E1*I1)/(E1*I2) #rpm\n\n#result\nprint \"speed of motor = \" , round(N2,2) ,\"rpm\"\n\n#round off error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "speed of motor = 480.0 rpm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.11 , Page number 199", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "#find the torque whn its take scurnt 60amprs\n\n#variable declaration\nVl=200 #volts\nIl=60 #amperes\nR=50 #ohm\nf=0.03 # flux \nZ=700 #armature conductors\nP=4 #pole\nA=2\n\n#calculation\nI=Vl/R # amperes\nIa=Il-I #amperes\nT=(0.159*f*Z*Ia*P)/A\n\n#result\nprint \" Torque = \" , round(T,2) , \"N-m\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Torque = 373.97 N-m\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.12 , Page number 214", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "#calcute the num of prim turns and prim $sec current\n\n#variable declaration\nKVA = 50.0\nE1 = 6000.0 #volts\nE2 = 250.0 #volts\nN2 = 52.0 #number of turns\n\n#calculation\nN1=N2*E1/E2\nI2=KVA*1000/E2 #ampere\nI1=KVA*1000/E1 #ampere\n\n#result\nprint \" primary number of turns = \" , N1 , \"turns\"\nprint \" secondary current = \" , I2, \"amperes\"\nprint \" primary current = \" , round(I1,2), \"amperes\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " primary number of turns = 1248.0 turns\n secondary current = 200.0 amperes\n primary current = 8.33 amperes\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.13 , Page number 215", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "#determine the emf induced in the secondry max value of flux density\n\n#calculation\nf=50 #Hz\nN1=350 #turns\nN2=800 #turns\nE1=400 #volts\nA=75e-4 #m**2\n\n#calculation\nE2=(N2*E1)/N1 #volts\nBm=E1/(4.44*f*A*N1) #Wb/m**2\n\n#result\nprint \" flux density = \" , round(Bm,3) , \"wb/m**2\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " flux density = 0.686 wb/m**2\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.14 , Page number 215", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "import math\n\n#find the magnetic nd iron loss component of current\n\n#variable declaration\nE1=440 #volts\nE2=200 #volts\nI=0.2 #amperea\ncoso=0.18 #p.f.\n\n#calculation\nsino= math.sqrt(1-coso**2) \nIw=I*coso #ampere\nIu=I*sino #ampere\n\n#result\nprint \" Magnetising compenet of current = \" , round(Iw,3), \"amperes\"\nprint \" iron loss compenet of current = \" , round(Iu,4), \"amperes\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Magnetising compenet of current = 0.036 amperes\n iron loss compenet of current = 0.1967 amperes\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.15 , Page number 216", "cell_type": "markdown", "metadata": {}}, {"execution_count": 15, "cell_type": "code", "source": "#calculate the efficiency at loads\n\n#variable declaration\nKVA=20\nIl=350 #iron loss\nCl=400 #copper loss\nx=1 # fraction of load\npf=0.8 # at full load\npf1=0.4 #at half load\nx1=0.5 #fraction of load\n\n#calculation\nop=KVA*1000*x*pf\nop1=KVA*1000*x1*pf1\nTl=Il+(Cl*x*x)\nTl1=Il+(Cl*x1*x1)\nip=op+Tl\nip1=op1+Tl1\nn=op/ip*100\nn1=op1/ip1*100\n\n#result\nprint \"efficiency at half load = \" , round(n,2) \nprint \"efficiency at full load = \" , round(n1,2) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "efficiency at half load = 95.52\nefficiency at full load = 89.89\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.16 , Page number 221", "cell_type": "markdown", "metadata": {}}, {"execution_count": 16, "cell_type": "code", "source": "#calculate the synchronous speed ,slip,frequncy induced emf\n\n#variable declaration\nf=50.0 #Hz\np=4 #poles \nN=1460.0 #rpm\n\n#calculation\nNs=120*f/p #rpm\ns=(Ns-N)/Ns #slip\nf1=(s*f) #Hz\n\n#result\nprint \"synchronous speed Ns = \" , Ns , \"rpm\"\nprint \"slip s = \" , round(s,3)\nprint \" Frequency of rotor induced emf f = \" , round(f1,2) , \"Hz\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "synchronous speed Ns = 1500.0 rpm\nslip s = 0.027\n Frequency of rotor induced emf f = 1.33 Hz\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.17 , Page number 222", "cell_type": "markdown", "metadata": {}}, {"execution_count": 17, "cell_type": "code", "source": "#determine the value of slip nd speed of motor\n\n#variable declaration\nP=6 #pole\nf=50 #Hz\nf1=1.5\n\n#calculation\nNs=120*f/P\ns=f1/f\nN=Ns*(1-s)\n\n#result\nprint \" speed of motor = \", N, \" RPM\"\nprint \" slip = \" , round(s,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " speed of motor = 970.0 RPM\n slip = 0.03\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.18 , Page number 222", "cell_type": "markdown", "metadata": {}}, {"execution_count": 18, "cell_type": "code", "source": "#calculate the numbers of poles ,slip at full load,frequncy rotor,speed of motor\n\n#variable declaration\nNs=1000.0 #rpm\nN=960\nf=50 #Hz\n\n#calculation\nP=120*f/Ns #synchronous speed\ns=(Ns-N)/Ns #slip \nf1=s*f #Hz\nN=Ns*(1-0.08) #speed of motor at 8% slip\n\n#result\nprint \" number of poles p = \" , P\nprint \" slip s = \" , round(s,2)\nprint \" Frequency of rotor emf f = \" , f , \"Hz\"\nprint \" Speed of motor at 8% slip N = \" , N , \"RPM\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " number of poles p = 6.0\n slip s = 0.04\n Frequency of rotor emf f = 50 Hz\n Speed of motor at 8% slip N = 920.0 RPM\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.19 , Page number 231", "cell_type": "markdown", "metadata": {}}, {"execution_count": 19, "cell_type": "code", "source": "#calculate the induced emf per phase\n\n#variable declaration\nf=50 #Hz\nP=16 #poles\nN=160 #rpm\nS=6 #slip\nF=0.025 #flux\n\n#calculation\nn=N*S #conductors\nZ=n/3 \ne=2.22*F*f*Z #rms value\n\n#result\nprint \"Induced emf per phase e = \" , e , \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Induced emf per phase e = 888.0 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/sample_notebooks/MayankSahu/Chapter5__1.ipynb b/sample_notebooks/MayankSahu/Chapter5__1.ipynb
new file mode 100755
index 00000000..7738b9ee
--- /dev/null
+++ b/sample_notebooks/MayankSahu/Chapter5__1.ipynb
@@ -0,0 +1 @@
+{"nbformat_minor": 0, "cells": [{"source": "#Chapter5 : Electrical Machines", "cell_type": "markdown", "metadata": {}}, {"source": "##Example 5.1 , Page number 178", "cell_type": "markdown", "metadata": {}}, {"execution_count": 1, "cell_type": "code", "source": "#determine the induced emf in the armature\n\n#varaible declaration\nP=4 #poles\nA=2 #wave wound\nn=50 #number of slots\nSc=24 #slots/conductor\nN=600 #speed of armature \nF=10e-3 #webers\n\n#calculations\nZ=Sc*n #total conductor\nE=F*Z*N*P/(60*A) #emf induced\n\nprint \" emf induced E = \" , E , \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced E = 240.0 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.2 , Page number 178", "cell_type": "markdown", "metadata": {}}, {"execution_count": 2, "cell_type": "code", "source": "#determine the induced emf in the armature\n\n#variable declaration\nP=4 #poles\nA=4 #wave wound\nn=50 #number of slots\nSc=24 #slots/conductor\nN=600 #rpm \nF=10e-3 #webers\n\n#calculations\nZ=Sc*n;#total conductor\nE=F*Z*N*P/(60*A) #emf induced\n\n#result\nprint \"e.m.f induced E = \" , E, \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "e.m.f induced E = 120.0 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.3 , Page number 179", "cell_type": "markdown", "metadata": {}}, {"execution_count": 3, "cell_type": "code", "source": "#determine the speed\n\n#variable declaration\nP=6 #poles\nA1=2 #wave wound\nZ=780 #armature conductors\nF=12*10**-3 #webers \nE=400 #volt\nA2=6 #wave wound\n#calculation\nN=(E*60*A1)/(F*Z*P) #rpm\nN2=(E*60*A2)/(F*Z*P) #rpm\n\n#result\nprint \" Speed of the armature = \" , round(N,2) , \"rpm\"\nprint \" Speed when lap is wound = \" , round(N2,1) , \"rpm\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Speed of the armature = 854.7 rpm\n Speed when lap is wound = 2564.1 rpm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.4 , Page number 182", "cell_type": "markdown", "metadata": {}}, {"execution_count": 4, "cell_type": "code", "source": "#determine the emf induced\n\n#variable declaration\nR=0.5 #ohm\nRs=100.0 \nV=250.0 #volts\nP=10000.0 #watts\n\n#calculation\nI=P/V #ampere\nIs=V/Rs \nIa=I+Is \nEg=V+(R*Ia) #volts\n\n#result\nprint \" emf induced Eg = \" , Eg , \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced Eg = 271.25 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.5 , Page number 183", "cell_type": "markdown", "metadata": {}}, {"execution_count": 5, "cell_type": "code", "source": "#calculate the emf induced in the armature\n\n#variable declaration\nIl=200 #amperes\nVl=500 #volts\nRa=0.03 #ohm\nRs=0.015\nR=150\nBCD=2 #one volt per brush\n\n#calculation\nI=Vl/R #ampere\nIa=Il+I \nEg=Vl+(Ia*Ra)+(Ia*Rs)+BCD #volts\n\n#result\nprint \" emf induced Eg = \" , round(Eg,2) , \"volts\"\n\n#round off error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced Eg = 511.13 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.6 , Page number 184", "cell_type": "markdown", "metadata": {}}, {"execution_count": 6, "cell_type": "code", "source": "#calculate the emf induced in the armature\n\n#variable declaration\nI1=200 #ampere\nVl=500 #volts\nRa=0.03 #ohm\nRs=0.015\nIs=200 #ampere\nR=150 #ohm\n\n#calculation\nBCD=2 #one volt per brush\nI=(Vl+(Is*Rs))/R #ampere\nIa = I1 + I\nEg=Vl+(Ia*Ra)+(Ia*Rs)+BCD #volts\n\n#result\nprint \" emf induced Eg = \" , round(Eg,2) ,\"volts\"\n\n#Error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " emf induced Eg = 511.15 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.7 , Page number 196", "cell_type": "markdown", "metadata": {}}, {"execution_count": 7, "cell_type": "code", "source": "#calculate the back emf induced on full load\n\n#variable declaration\nRa=0.5 #armature resistance\nRs=250 #shunt resistance\nVl=250 #line volt\nIl=40 #ampere\n\n#calculation\nIs=Vl/Rs #amperes\nIa=Il-Is\nEb=Vl-(Ia*Ra) #volts\n\n#result\nprint \"emf induced Eb = \", Eb, \"volts\" \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "emf induced Eb = 230.5 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.8 , Page number 196", "cell_type": "markdown", "metadata": {}}, {"execution_count": 8, "cell_type": "code", "source": "#find the power developed in circiut\n\n#variable declaration\nPl=20e3 #watts\nVl=200.0 #volts \nRa=0.05 #ohms\nR=150.0\n\n#calculation\nI=Vl/R #ampere\nIl=Pl/Vl\nIa=Il+I\nEg=Vl+(Ia*Ra) #volts\nP=Eg*Ia #watts\n\n#result\nprint \"power developed = \" , round(P,2) , \"watt\"\n\n#round off error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "power developed = 20780.09 watt\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.9 , Page number 197", "cell_type": "markdown", "metadata": {}}, {"execution_count": 9, "cell_type": "code", "source": "#calculate the speed of the machine when running\n\n#variable declaration\nN1=1000 #speed of generator\nE1=205.06 #emf generator\nE2=195.06 #emf of motor\n\n#calculation\nN2=(E2*N1)/E1 #speed of generator\n\n#result\nprint\"speed of motor = \" , round(N2,2) ,\"rpm\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "speed of motor = 951.23 rpm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.10 , Page number 198", "cell_type": "markdown", "metadata": {}}, {"execution_count": 10, "cell_type": "code", "source": "#dtermine its speed when its take crnt 25 amps\n\n#variable declaration\nVl=250.0 #volts\nRa=0.05 #ohm\nR=0.02 #ohm\nIa=30.0 #ampere\nI1=30.0\nN1=400.0\nI2=25.0\n\n#calculation\nE1=Vl-(Ia*Ra)-(Ia*R) #volts\nN2=(N1*E1*I1)/(E1*I2) #rpm\n\n#result\nprint \"speed of motor = \" , round(N2,2) ,\"rpm\"\n\n#round off error in book\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "speed of motor = 480.0 rpm\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.11 , Page number 199", "cell_type": "markdown", "metadata": {}}, {"execution_count": 11, "cell_type": "code", "source": "#find the torque whn its take scurnt 60amprs\n\n#variable declaration\nVl=200 #volts\nIl=60 #amperes\nR=50 #ohm\nf=0.03 # flux \nZ=700 #armature conductors\nP=4 #pole\nA=2\n\n#calculation\nI=Vl/R # amperes\nIa=Il-I #amperes\nT=(0.159*f*Z*Ia*P)/A\n\n#result\nprint \" Torque = \" , round(T,2) , \"N-m\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Torque = 373.97 N-m\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.12 , Page number 214", "cell_type": "markdown", "metadata": {}}, {"execution_count": 12, "cell_type": "code", "source": "#calcute the num of prim turns and prim $sec current\n\n#variable declaration\nKVA = 50.0\nE1 = 6000.0 #volts\nE2 = 250.0 #volts\nN2 = 52.0 #number of turns\n\n#calculation\nN1=N2*E1/E2\nI2=KVA*1000/E2 #ampere\nI1=KVA*1000/E1 #ampere\n\n#result\nprint \" primary number of turns = \" , N1 , \"turns\"\nprint \" secondary current = \" , I2, \"amperes\"\nprint \" primary current = \" , round(I1,2), \"amperes\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " primary number of turns = 1248.0 turns\n secondary current = 200.0 amperes\n primary current = 8.33 amperes\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.13 , Page number 215", "cell_type": "markdown", "metadata": {}}, {"execution_count": 13, "cell_type": "code", "source": "#determine the emf induced in the secondry max value of flux density\n\n#calculation\nf=50 #Hz\nN1=350 #turns\nN2=800 #turns\nE1=400 #volts\nA=75e-4 #m**2\n\n#calculation\nE2=(N2*E1)/N1 #volts\nBm=E1/(4.44*f*A*N1) #Wb/m**2\n\n#result\nprint \" flux density = \" , round(Bm,3) , \"wb/m**2\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " flux density = 0.686 wb/m**2\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.14 , Page number 215", "cell_type": "markdown", "metadata": {}}, {"execution_count": 14, "cell_type": "code", "source": "import math\n\n#find the magnetic nd iron loss component of current\n\n#variable declaration\nE1=440 #volts\nE2=200 #volts\nI=0.2 #amperea\ncoso=0.18 #p.f.\n\n#calculation\nsino= math.sqrt(1-coso**2) \nIw=I*coso #ampere\nIu=I*sino #ampere\n\n#result\nprint \" Magnetising compenet of current = \" , round(Iw,3), \"amperes\"\nprint \" iron loss compenet of current = \" , round(Iu,4), \"amperes\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " Magnetising compenet of current = 0.036 amperes\n iron loss compenet of current = 0.1967 amperes\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.15 , Page number 216", "cell_type": "markdown", "metadata": {}}, {"execution_count": 15, "cell_type": "code", "source": "#calculate the efficiency at loads\n\n#variable declaration\nKVA=20\nIl=350 #iron loss\nCl=400 #copper loss\nx=1 # fraction of load\npf=0.8 # at full load\npf1=0.4 #at half load\nx1=0.5 #fraction of load\n\n#calculation\nop=KVA*1000*x*pf\nop1=KVA*1000*x1*pf1\nTl=Il+(Cl*x*x)\nTl1=Il+(Cl*x1*x1)\nip=op+Tl\nip1=op1+Tl1\nn=op/ip*100\nn1=op1/ip1*100\n\n#result\nprint \"efficiency at half load = \" , round(n,2) \nprint \"efficiency at full load = \" , round(n1,2) \n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "efficiency at half load = 95.52\nefficiency at full load = 89.89\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.16 , Page number 221", "cell_type": "markdown", "metadata": {}}, {"execution_count": 16, "cell_type": "code", "source": "#calculate the synchronous speed ,slip,frequncy induced emf\n\n#variable declaration\nf=50.0 #Hz\np=4 #poles \nN=1460.0 #rpm\n\n#calculation\nNs=120*f/p #rpm\ns=(Ns-N)/Ns #slip\nf1=(s*f) #Hz\n\n#result\nprint \"synchronous speed Ns = \" , Ns , \"rpm\"\nprint \"slip s = \" , round(s,3)\nprint \" Frequency of rotor induced emf f = \" , round(f1,2) , \"Hz\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "synchronous speed Ns = 1500.0 rpm\nslip s = 0.027\n Frequency of rotor induced emf f = 1.33 Hz\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.17 , Page number 222", "cell_type": "markdown", "metadata": {}}, {"execution_count": 17, "cell_type": "code", "source": "#determine the value of slip nd speed of motor\n\n#variable declaration\nP=6 #pole\nf=50 #Hz\nf1=1.5\n\n#calculation\nNs=120*f/P\ns=f1/f\nN=Ns*(1-s)\n\n#result\nprint \" speed of motor = \", N, \" RPM\"\nprint \" slip = \" , round(s,3)\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " speed of motor = 970.0 RPM\n slip = 0.03\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.18 , Page number 222", "cell_type": "markdown", "metadata": {}}, {"execution_count": 18, "cell_type": "code", "source": "#calculate the numbers of poles ,slip at full load,frequncy rotor,speed of motor\n\n#variable declaration\nNs=1000.0 #rpm\nN=960\nf=50 #Hz\n\n#calculation\nP=120*f/Ns #synchronous speed\ns=(Ns-N)/Ns #slip \nf1=s*f #Hz\nN=Ns*(1-0.08) #speed of motor at 8% slip\n\n#result\nprint \" number of poles p = \" , P\nprint \" slip s = \" , round(s,2)\nprint \" Frequency of rotor emf f = \" , f , \"Hz\"\nprint \" Speed of motor at 8% slip N = \" , N , \"RPM\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": " number of poles p = 6.0\n slip s = 0.04\n Frequency of rotor emf f = 50 Hz\n Speed of motor at 8% slip N = 920.0 RPM\n"}], "metadata": {"collapsed": false, "trusted": true}}, {"source": "##Example 5.19 , Page number 231", "cell_type": "markdown", "metadata": {}}, {"execution_count": 19, "cell_type": "code", "source": "#calculate the induced emf per phase\n\n#variable declaration\nf=50 #Hz\nP=16 #poles\nN=160 #rpm\nS=6 #slip\nF=0.025 #flux\n\n#calculation\nn=N*S #conductors\nZ=n/3 \ne=2.22*F*f*Z #rms value\n\n#result\nprint \"Induced emf per phase e = \" , e , \"volts\"\n", "outputs": [{"output_type": "stream", "name": "stdout", "text": "Induced emf per phase e = 888.0 volts\n"}], "metadata": {"collapsed": false, "trusted": true}}], "nbformat": 4, "metadata": {"kernelspec": {"display_name": "Python 2", "name": "python2", "language": "python"}, "language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "version": "2.7.8", "name": "python", "file_extension": ".py", "pygments_lexer": "ipython2", "codemirror_mode": {"version": 2, "name": "ipython"}}}} \ No newline at end of file
diff --git a/sample_notebooks/MohdAsif/Chapter2,_Measurement_Errors.ipynb b/sample_notebooks/MohdAsif/Chapter2,_Measurement_Errors.ipynb
new file mode 100755
index 00000000..f8ad79f0
--- /dev/null
+++ b/sample_notebooks/MohdAsif/Chapter2,_Measurement_Errors.ipynb
@@ -0,0 +1,257 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:7b602763fd5a9c056abb62703a3bc42ae0cb4a39b3c349f78c056ebe58b1c643"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Precision of the 5th measurement\n",
+ "#Given data : Measurements taken(Unit less)\n",
+ "X1=98;\n",
+ "X2=101;\n",
+ "X3=102;\n",
+ "X4=97;\n",
+ "X5=101;\n",
+ "X6=100;\n",
+ "X7=103;\n",
+ "X8=98;\n",
+ "X9=106;\n",
+ "X10=99.0;\n",
+ "#Calculation\n",
+ "Xn_bar=(X1+X2+X3+X4+X5+X6+X7+X8+X9+X10)/10;\n",
+ "Xn=101 # value of 5th measurement\n",
+ "P=(1-abs((Xn-Xn_bar)/Xn_bar))*100 #Precision\n",
+ "print \"Precision of the 5th measurement,P(%) = \",round(P,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Precision of the 5th measurement,P(%) = 99.502\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_2_a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Absolute error\n",
+ "#given data :\n",
+ "Ae=80.0 # in V\n",
+ "Am=79 # in V\n",
+ "e=Ae-Am #absolute error\n",
+ "print \"Absolute error,e(V) = \",e"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Absolute error,e(V) = 1.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_2_b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Finding error\n",
+ "#given data :\n",
+ "Ae=80.0 # in V\n",
+ "Am=79 # in V\n",
+ "e=Ae-Am #error\n",
+ "ep=(e/Ae)*100 #relative percent error\n",
+ "print \"Relative Percent Error(%) = \",ep"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Relative Percent Error(%) = 1.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# maximum error\n",
+ "#given data :\n",
+ "V1=100 # in volts\n",
+ "V2=200 # in volts\n",
+ "V=V2-V1 # Voltage difference\n",
+ "A=.25 # Accuracy may be \u00b1 in %\n",
+ "max_error=(A/100)*V # in Volts\n",
+ "print \"maximum error(V) = \u00b1\",max_error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "maximum error(V) = \u00b1 0.25\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#sensitivity and deflection error\n",
+ "# given data :\n",
+ "C=4.0 # change in output in mm\n",
+ "M=8.0 # magnitude of input in ohm\n",
+ "S=C/M # sensitivity\n",
+ "print \"sensitivity,S(mm/ohm) = \",S\n",
+ "D=M/C # Deflection\n",
+ "print \"Deflection factor,D(ohm/m) = \",D"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "sensitivity,S(mm/ohm) = 0.5\n",
+ "Deflection factor,D(ohm/m) = 2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_5 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Resolution\n",
+ "# given data :\n",
+ "V=200.0 # full scale reading in volts\n",
+ "N=100.0 # number of divisions \n",
+ "Scale_div=V/N # Volts\n",
+ "R=(1/10.0)*Scale_div # Resolution in Volts\n",
+ "print \"Resolution, R(V) = \",round(R,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resolution, R(V) = 0.2\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example 2_3_6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Resolution\n",
+ "#given data :\n",
+ "V=9.999 # full scale read out in volt\n",
+ "c=range(0,9999) # range from 0 to 9999\n",
+ "R=(1/max(c))*V*10.0**3\n",
+ "print \"Resolution, R(mV)\", R"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Resolution, R(mV) 0.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/MohdAsif/Chapter4.ipynb b/sample_notebooks/MohdAsif/Chapter4.ipynb
new file mode 100755
index 00000000..ac4db12d
--- /dev/null
+++ b/sample_notebooks/MohdAsif/Chapter4.ipynb
@@ -0,0 +1,216 @@
+{
+ "metadata": {
+ "Asif": "",
+ "signature": "sha256:721a6a2445404e28ea958d05a879e1927a64948a8c3a5aa0f2d75d58bb60d3b3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.2.1\n",
+ "#given data :\n",
+ "E_rms=230; #Voltage rms value in V\n",
+ "Ep=2**(1/2)*E_rms; #peak amplitude\n",
+ "#Result\n",
+ "print\"peak amplitude,Ep(V) = \",Ep"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "peak amplitude,Ep(V) = 230\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.12.1\n",
+ "#given data :\n",
+ "Rm=500; #in ohm\n",
+ "E_rms=50; # in V\n",
+ "E_dc=(2**(1/2)*E_rms)/(math.pi/2) # in V\n",
+ "Im=1*10^-3; #in A\n",
+ "R=E_dc/Im; #in ohm\n",
+ "Rs=(Rm-R)*10**(-3);#in ohm\n",
+ "#result\n",
+ "print\"the resistance,Rs(kohm) = \",round(Rs,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the resistance,Rs(kohm) = 0.5035\n"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.14.1\n",
+ "ff1=1 #form factor\n",
+ "r=1.11 #sine wave form factor\n",
+ "error=((r-ff1)/ff1)*100 #percentage error\n",
+ "#result\n",
+ "print\"percentage error is\",error"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "percentage error is 11.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.19.1\n",
+ "#given data :\n",
+ "gm=0.005 #iConductance in mho\n",
+ "V1=1.5 #Voltage in V\n",
+ "rd=200*10**3 #resistance in Ohm\n",
+ "Rd=15*10**3 #resistance in Ohm\n",
+ "Rm=75 #resistance in Ohm\n",
+ "I=(gm*V1*((Rd*rd)/(rd+Rd)))/((2*((Rd*rd)/(rd+Rd)))+Rm)*10**3 #Current in mA\n",
+ "#result\n",
+ "print\"current,I(mA) = \",I"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "current,I(mA) = 3.73994853651\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.19.3\n",
+ "v1=100 # in volts\n",
+ "v2=30 #in volts\n",
+ "v3=103 # in volts\n",
+ "v4=1 #in volts\n",
+ "x=9 #assume input resistance in Mohm\n",
+ "r4=(v4/v3)*x*10**3 #in kohms\n",
+ "r3=(((v4/v1)*x*10**6)-(r4*10**3))*10**(-3) #in kohms\n",
+ "r2=(((v4/v2)*x*10**6)-((r4+r3)*10**3))*10**(-3) # in kohms\n",
+ "r1=9*10**6-((r2+r3+r4)*10**3) #in ohms\n",
+ "r1=r1*10**(-6) # Mohm\n",
+ "print\"resistance (R4) in kohm is\",r4\n",
+ "print\"resistance (R3) in kohm is\",r3\n",
+ "print\"resistance (R2) in kohm is\",r2\n",
+ "print\"resistance (R1) in Mohm is\",r1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance (R4) in kohm is 0\n",
+ "resistance (R3) in kohm is 0.0\n",
+ "resistance (R2) in kohm is 0.0\n",
+ "resistance (R1) in Mohm is 9.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.19.4\n",
+ "#given data :\n",
+ "rd=150*10**3 #in ohm\n",
+ "Rm=50 # in ohm\n",
+ "Rs=1000*10**3 #in ohm\n",
+ "gm=0.0052 #in mho\n",
+ "rd1=rd/((gm*rd)+1)\n",
+ "V0=gm*((rd1*Rs)/(rd1+Rs))\n",
+ "R0=(2*Rs*rd1)/(Rs+rd1)\n",
+ "I=V0/(R0+Rm)*10**3 #Current in mA\n",
+ "print\"curent,I(mA) = \",round(I,4)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "curent,I(mA) = 2.3005\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 4.19.5\n",
+ "#given data :\n",
+ "V1=1 #in V\n",
+ "I=1.5*10**-3 #in A\n",
+ "rd=200*10^3 # in ohm\n",
+ "Rm=50 # in ohm\n",
+ "Rs=600*10**3 # in ohm\n",
+ "gm=0.005 #in mho\n",
+ "rd1=rd/((gm*rd)+1)\n",
+ "V0=gm*((rd1*Rs)/(rd1+Rs))*V1\n",
+ "R0=(2*Rs*rd1)/(Rs+rd1)\n",
+ "R_cal=(V0/I)-Rm-R0;\n",
+ "print\"resistance ,R_cal(ohm) = \",round(R_cal,4)\n",
+ "# answer is wrong in the textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "resistance ,R_cal(ohm) = 192.3838\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI.ipynb b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI.ipynb
new file mode 100755
index 00000000..e025dd86
--- /dev/null
+++ b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:02197244985b7dfa2823dacf9fac72c0a7536b50c383ffa1801ccf3066222ec3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7.1, PAGE NO.-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "I_m = 15 #Current in Ampere\n",
+ "P_rad = 6 #Power radiated in kW\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "# By formula\n",
+ "I_rms = I_m/math.sqrt(2) #I_rms is r.m.s. current\n",
+ "\n",
+ "R_rad = P_rad/(I_rms**2) #R_rad is radiation resistance\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The radiation resistance of Antenna is\",round(R_rad*1000,2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radiation resistance of Antenna is 53.33 kW\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.1,PAGE NO.-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt \n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = Lm/25 # Length of dipole for Hertian dipole\n",
+ "H_phi = 5 # Magnetic field strength in uA/m\n",
+ "theta = pi/2\n",
+ "r = 2 # Distance in Km\n",
+ "dL_1 = Lm/2 # Length of dipole for Half wave dipole \n",
+ "R_rad = 73 # Radiation resistance for half wave dipole in ohm\n",
+ "R_rad1 = 36.5 # Radiation resistance for quarter wave monopole in ohm\n",
+ "dL_2 = Lm/4 # Length of dipole for quarter wave monopole \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# By formula : H_phi = I_m*dL*sin(theta)/2*Lm*r\n",
+ "I_m = (H_phi*2*Lm*r)/(dL*sin(theta))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*(I_rms**2)\n",
+ "I_m1 = (H_phi*2*pi*r*sin(theta))/(cos(pi/2*cos(theta)))\n",
+ "I_rms1 = I_m1/sqrt(2)\n",
+ "P_rad1 = (I_rms1**2)*R_rad\n",
+ "P_rad2 = (I_rms1**2)*R_rad1\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print \" The power radiated by hertzian dipole is \",round(P_rad*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by half wave dipole is \",round(P_rad1*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by Quarter wave monopole is \",round(P_rad2*10**-3,2),\"mW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.2,PAGE NO.-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt\n",
+ "\n",
+ "\n",
+ "\n",
+ "#variable declaration \n",
+ "\n",
+ "\n",
+ "E_theta = 10*(10**(-6)) #Electric field strength in V/m\n",
+ "theta = pi/2 #observation angle\n",
+ "r = 500*(10**3) #distance in metrs\n",
+ "f = 50*(10**6) #frequency in Hertz\n",
+ "c = 3*(10**8) #speed of light in m/sec\n",
+ "R_rad = 73 #for half wave dipole Radiation resistance in ohms\n",
+ "\n",
+ "\n",
+ "# calculation\n",
+ "lamda = c/f\n",
+ "L = lamda/2 #L is the length of half wave dipole\n",
+ "# formula : E=((60*I_m)/r)*((cos(pi/2*cos(theta)))*sin(theta))\n",
+ "I_m = (E_theta*r*sin(theta))/(60*cos(pi/2*cos(theta)))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_avg = (R_rad*(I_m**2))/2\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"Length of Dipole is\" ,round(L,2),\"metres\"\n",
+ "print \"Current fed to Antenna\",round(I_rms*1000,2),\"mA\"\n",
+ "print \"Average Power\",round(P_avg*1000,2),\"mW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.3,PAGE NO.-44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 100 #effective hieght in m\n",
+ "f = 60*(10**3) #frequency in Hertz\n",
+ "r = 100*(10**3) #Distance in m\n",
+ "c = 3*(10**8) #Speed of light in m/sec\n",
+ "P_rad = 100*(10**3) #radiated power\n",
+ "\n",
+ "# calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "I_rms = sqrt(P_rad/R_rad)\n",
+ "E_rms = (120*pi*l_eff*(I_rms**2))/(lamda*r)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print \"Strength of Electric field\",round(E_rms,2),\"V/m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.4,PAGE NO.-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 113.3 #Effective length in metres\n",
+ "lamda = 18.8 #Wavelength in metres\n",
+ "I_rms = 725 #Base current in Ampere\n",
+ "r = 175 #Distance in metre\n",
+ "Eta_o = 120*pi\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E = (120*pi*l_eff*I_rms)/(lamda*r)\n",
+ "H = E/Eta_o\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "P_rad = (I_rms**2)*(R_rad)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The electric field at a distance r is \",round(E*0.001,2),\"mV/m\"\n",
+ "print \"The H field is\",round(H,2),\"uA/m\"\n",
+ "print \"The power radiated by Antenna is \",round(P_rad*(10**(-9)),2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.5,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "lamda = 10*(10**(-2)) # In cm\n",
+ "r = 200*(10**(-2)) # In cm\n",
+ "theta = 90 # In Degrees\n",
+ "phi = 0 # In Degrees\n",
+ "IdL = 3*(10**(-4)) # current distribution in Am\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E_theta = (60*pi*IdL*sin(theta))/(lamda*r)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The magnitude of component E_theta is \",round(E_theta,2),\"V/m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.6,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = lamda/12\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 80*(pi**2)*((dL/lamda)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole antenna is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.7,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "I_m = 100 # uniform current in ampere\n",
+ "Lm = Symbol('Lm') #Taking Lm as lamda\n",
+ "dL = Lm/16\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*((I_m/sqrt(2))**2)\n",
+ "R_rad = 80*(pi**2)*((dL/Lm)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.8,PAGE NO.-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variable declaration\n",
+ "\n",
+ "f = 30*(10**6) #Frequency in Hz\n",
+ "c = 3*(10**8) #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Length of Half wave dipole is \",round((lamda/2),2),\"m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.10,PAGE NO.-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin,sqrt \n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = 0.01*Lm # Length of dipole \n",
+ "theta = 45\n",
+ "P_rad = 1 # Power radiated in kW\n",
+ "phi = 90\n",
+ "r = 1 # Distance in Km\n",
+ "Eta_o=120*pi\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 20*(pi**2)*((dL/Lm)**2)\n",
+ "I_m = sqrt(2*P_rad*R_rad)\n",
+ "\n",
+ "# formula : P = (Eta_o/2)*(((Omega*I_m*dL*sin(theta))/(4*pi*r*v))**2)\n",
+ "P = (Eta_o/2)*(((I_m*dL*sin(theta))/(4*pi*(r**2)))**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Power density is \",P,\"Watt/m^2\"\n",
+ "\n",
+ "# Note : The Solving in the book is wrong they put 0.1 instead of 0.1*lamda \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.11,PAGE NO.-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi \n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = 75 #Length of dipole in m\n",
+ "f = 800 # Frequency in kHz\n",
+ "I_rms = 10 #rms Current in Amp\n",
+ "c = 3*(10**8) #Speed of light in m/s \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "P_rad = 80*(pi**2)*((dL/lamda)**2)*(I_rms**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Total Power radiated by Antenna is \",round(P_rad*1000,2),\"kW\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_1.ipynb b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_1.ipynb
new file mode 100755
index 00000000..e025dd86
--- /dev/null
+++ b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_1.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:02197244985b7dfa2823dacf9fac72c0a7536b50c383ffa1801ccf3066222ec3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7.1, PAGE NO.-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "I_m = 15 #Current in Ampere\n",
+ "P_rad = 6 #Power radiated in kW\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "# By formula\n",
+ "I_rms = I_m/math.sqrt(2) #I_rms is r.m.s. current\n",
+ "\n",
+ "R_rad = P_rad/(I_rms**2) #R_rad is radiation resistance\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The radiation resistance of Antenna is\",round(R_rad*1000,2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radiation resistance of Antenna is 53.33 kW\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.1,PAGE NO.-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt \n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = Lm/25 # Length of dipole for Hertian dipole\n",
+ "H_phi = 5 # Magnetic field strength in uA/m\n",
+ "theta = pi/2\n",
+ "r = 2 # Distance in Km\n",
+ "dL_1 = Lm/2 # Length of dipole for Half wave dipole \n",
+ "R_rad = 73 # Radiation resistance for half wave dipole in ohm\n",
+ "R_rad1 = 36.5 # Radiation resistance for quarter wave monopole in ohm\n",
+ "dL_2 = Lm/4 # Length of dipole for quarter wave monopole \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# By formula : H_phi = I_m*dL*sin(theta)/2*Lm*r\n",
+ "I_m = (H_phi*2*Lm*r)/(dL*sin(theta))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*(I_rms**2)\n",
+ "I_m1 = (H_phi*2*pi*r*sin(theta))/(cos(pi/2*cos(theta)))\n",
+ "I_rms1 = I_m1/sqrt(2)\n",
+ "P_rad1 = (I_rms1**2)*R_rad\n",
+ "P_rad2 = (I_rms1**2)*R_rad1\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print \" The power radiated by hertzian dipole is \",round(P_rad*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by half wave dipole is \",round(P_rad1*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by Quarter wave monopole is \",round(P_rad2*10**-3,2),\"mW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.2,PAGE NO.-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt\n",
+ "\n",
+ "\n",
+ "\n",
+ "#variable declaration \n",
+ "\n",
+ "\n",
+ "E_theta = 10*(10**(-6)) #Electric field strength in V/m\n",
+ "theta = pi/2 #observation angle\n",
+ "r = 500*(10**3) #distance in metrs\n",
+ "f = 50*(10**6) #frequency in Hertz\n",
+ "c = 3*(10**8) #speed of light in m/sec\n",
+ "R_rad = 73 #for half wave dipole Radiation resistance in ohms\n",
+ "\n",
+ "\n",
+ "# calculation\n",
+ "lamda = c/f\n",
+ "L = lamda/2 #L is the length of half wave dipole\n",
+ "# formula : E=((60*I_m)/r)*((cos(pi/2*cos(theta)))*sin(theta))\n",
+ "I_m = (E_theta*r*sin(theta))/(60*cos(pi/2*cos(theta)))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_avg = (R_rad*(I_m**2))/2\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"Length of Dipole is\" ,round(L,2),\"metres\"\n",
+ "print \"Current fed to Antenna\",round(I_rms*1000,2),\"mA\"\n",
+ "print \"Average Power\",round(P_avg*1000,2),\"mW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.3,PAGE NO.-44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 100 #effective hieght in m\n",
+ "f = 60*(10**3) #frequency in Hertz\n",
+ "r = 100*(10**3) #Distance in m\n",
+ "c = 3*(10**8) #Speed of light in m/sec\n",
+ "P_rad = 100*(10**3) #radiated power\n",
+ "\n",
+ "# calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "I_rms = sqrt(P_rad/R_rad)\n",
+ "E_rms = (120*pi*l_eff*(I_rms**2))/(lamda*r)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print \"Strength of Electric field\",round(E_rms,2),\"V/m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.4,PAGE NO.-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 113.3 #Effective length in metres\n",
+ "lamda = 18.8 #Wavelength in metres\n",
+ "I_rms = 725 #Base current in Ampere\n",
+ "r = 175 #Distance in metre\n",
+ "Eta_o = 120*pi\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E = (120*pi*l_eff*I_rms)/(lamda*r)\n",
+ "H = E/Eta_o\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "P_rad = (I_rms**2)*(R_rad)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The electric field at a distance r is \",round(E*0.001,2),\"mV/m\"\n",
+ "print \"The H field is\",round(H,2),\"uA/m\"\n",
+ "print \"The power radiated by Antenna is \",round(P_rad*(10**(-9)),2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.5,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "lamda = 10*(10**(-2)) # In cm\n",
+ "r = 200*(10**(-2)) # In cm\n",
+ "theta = 90 # In Degrees\n",
+ "phi = 0 # In Degrees\n",
+ "IdL = 3*(10**(-4)) # current distribution in Am\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E_theta = (60*pi*IdL*sin(theta))/(lamda*r)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The magnitude of component E_theta is \",round(E_theta,2),\"V/m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.6,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = lamda/12\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 80*(pi**2)*((dL/lamda)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole antenna is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.7,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "I_m = 100 # uniform current in ampere\n",
+ "Lm = Symbol('Lm') #Taking Lm as lamda\n",
+ "dL = Lm/16\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*((I_m/sqrt(2))**2)\n",
+ "R_rad = 80*(pi**2)*((dL/Lm)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.8,PAGE NO.-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variable declaration\n",
+ "\n",
+ "f = 30*(10**6) #Frequency in Hz\n",
+ "c = 3*(10**8) #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Length of Half wave dipole is \",round((lamda/2),2),\"m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.10,PAGE NO.-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin,sqrt \n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = 0.01*Lm # Length of dipole \n",
+ "theta = 45\n",
+ "P_rad = 1 # Power radiated in kW\n",
+ "phi = 90\n",
+ "r = 1 # Distance in Km\n",
+ "Eta_o=120*pi\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 20*(pi**2)*((dL/Lm)**2)\n",
+ "I_m = sqrt(2*P_rad*R_rad)\n",
+ "\n",
+ "# formula : P = (Eta_o/2)*(((Omega*I_m*dL*sin(theta))/(4*pi*r*v))**2)\n",
+ "P = (Eta_o/2)*(((I_m*dL*sin(theta))/(4*pi*(r**2)))**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Power density is \",P,\"Watt/m^2\"\n",
+ "\n",
+ "# Note : The Solving in the book is wrong they put 0.1 instead of 0.1*lamda \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.11,PAGE NO.-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi \n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = 75 #Length of dipole in m\n",
+ "f = 800 # Frequency in kHz\n",
+ "I_rms = 10 #rms Current in Amp\n",
+ "c = 3*(10**8) #Speed of light in m/s \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "P_rad = 80*(pi**2)*((dL/lamda)**2)*(I_rms**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Total Power radiated by Antenna is \",round(P_rad*1000,2),\"kW\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_2.ipynb b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_2.ipynb
new file mode 100755
index 00000000..e025dd86
--- /dev/null
+++ b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_2.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:02197244985b7dfa2823dacf9fac72c0a7536b50c383ffa1801ccf3066222ec3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7.1, PAGE NO.-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "I_m = 15 #Current in Ampere\n",
+ "P_rad = 6 #Power radiated in kW\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "# By formula\n",
+ "I_rms = I_m/math.sqrt(2) #I_rms is r.m.s. current\n",
+ "\n",
+ "R_rad = P_rad/(I_rms**2) #R_rad is radiation resistance\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The radiation resistance of Antenna is\",round(R_rad*1000,2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radiation resistance of Antenna is 53.33 kW\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.1,PAGE NO.-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt \n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = Lm/25 # Length of dipole for Hertian dipole\n",
+ "H_phi = 5 # Magnetic field strength in uA/m\n",
+ "theta = pi/2\n",
+ "r = 2 # Distance in Km\n",
+ "dL_1 = Lm/2 # Length of dipole for Half wave dipole \n",
+ "R_rad = 73 # Radiation resistance for half wave dipole in ohm\n",
+ "R_rad1 = 36.5 # Radiation resistance for quarter wave monopole in ohm\n",
+ "dL_2 = Lm/4 # Length of dipole for quarter wave monopole \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# By formula : H_phi = I_m*dL*sin(theta)/2*Lm*r\n",
+ "I_m = (H_phi*2*Lm*r)/(dL*sin(theta))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*(I_rms**2)\n",
+ "I_m1 = (H_phi*2*pi*r*sin(theta))/(cos(pi/2*cos(theta)))\n",
+ "I_rms1 = I_m1/sqrt(2)\n",
+ "P_rad1 = (I_rms1**2)*R_rad\n",
+ "P_rad2 = (I_rms1**2)*R_rad1\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print \" The power radiated by hertzian dipole is \",round(P_rad*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by half wave dipole is \",round(P_rad1*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by Quarter wave monopole is \",round(P_rad2*10**-3,2),\"mW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.2,PAGE NO.-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt\n",
+ "\n",
+ "\n",
+ "\n",
+ "#variable declaration \n",
+ "\n",
+ "\n",
+ "E_theta = 10*(10**(-6)) #Electric field strength in V/m\n",
+ "theta = pi/2 #observation angle\n",
+ "r = 500*(10**3) #distance in metrs\n",
+ "f = 50*(10**6) #frequency in Hertz\n",
+ "c = 3*(10**8) #speed of light in m/sec\n",
+ "R_rad = 73 #for half wave dipole Radiation resistance in ohms\n",
+ "\n",
+ "\n",
+ "# calculation\n",
+ "lamda = c/f\n",
+ "L = lamda/2 #L is the length of half wave dipole\n",
+ "# formula : E=((60*I_m)/r)*((cos(pi/2*cos(theta)))*sin(theta))\n",
+ "I_m = (E_theta*r*sin(theta))/(60*cos(pi/2*cos(theta)))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_avg = (R_rad*(I_m**2))/2\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"Length of Dipole is\" ,round(L,2),\"metres\"\n",
+ "print \"Current fed to Antenna\",round(I_rms*1000,2),\"mA\"\n",
+ "print \"Average Power\",round(P_avg*1000,2),\"mW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.3,PAGE NO.-44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 100 #effective hieght in m\n",
+ "f = 60*(10**3) #frequency in Hertz\n",
+ "r = 100*(10**3) #Distance in m\n",
+ "c = 3*(10**8) #Speed of light in m/sec\n",
+ "P_rad = 100*(10**3) #radiated power\n",
+ "\n",
+ "# calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "I_rms = sqrt(P_rad/R_rad)\n",
+ "E_rms = (120*pi*l_eff*(I_rms**2))/(lamda*r)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print \"Strength of Electric field\",round(E_rms,2),\"V/m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.4,PAGE NO.-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 113.3 #Effective length in metres\n",
+ "lamda = 18.8 #Wavelength in metres\n",
+ "I_rms = 725 #Base current in Ampere\n",
+ "r = 175 #Distance in metre\n",
+ "Eta_o = 120*pi\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E = (120*pi*l_eff*I_rms)/(lamda*r)\n",
+ "H = E/Eta_o\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "P_rad = (I_rms**2)*(R_rad)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The electric field at a distance r is \",round(E*0.001,2),\"mV/m\"\n",
+ "print \"The H field is\",round(H,2),\"uA/m\"\n",
+ "print \"The power radiated by Antenna is \",round(P_rad*(10**(-9)),2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.5,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "lamda = 10*(10**(-2)) # In cm\n",
+ "r = 200*(10**(-2)) # In cm\n",
+ "theta = 90 # In Degrees\n",
+ "phi = 0 # In Degrees\n",
+ "IdL = 3*(10**(-4)) # current distribution in Am\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E_theta = (60*pi*IdL*sin(theta))/(lamda*r)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The magnitude of component E_theta is \",round(E_theta,2),\"V/m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.6,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = lamda/12\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 80*(pi**2)*((dL/lamda)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole antenna is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.7,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "I_m = 100 # uniform current in ampere\n",
+ "Lm = Symbol('Lm') #Taking Lm as lamda\n",
+ "dL = Lm/16\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*((I_m/sqrt(2))**2)\n",
+ "R_rad = 80*(pi**2)*((dL/Lm)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.8,PAGE NO.-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variable declaration\n",
+ "\n",
+ "f = 30*(10**6) #Frequency in Hz\n",
+ "c = 3*(10**8) #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Length of Half wave dipole is \",round((lamda/2),2),\"m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.10,PAGE NO.-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin,sqrt \n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = 0.01*Lm # Length of dipole \n",
+ "theta = 45\n",
+ "P_rad = 1 # Power radiated in kW\n",
+ "phi = 90\n",
+ "r = 1 # Distance in Km\n",
+ "Eta_o=120*pi\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 20*(pi**2)*((dL/Lm)**2)\n",
+ "I_m = sqrt(2*P_rad*R_rad)\n",
+ "\n",
+ "# formula : P = (Eta_o/2)*(((Omega*I_m*dL*sin(theta))/(4*pi*r*v))**2)\n",
+ "P = (Eta_o/2)*(((I_m*dL*sin(theta))/(4*pi*(r**2)))**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Power density is \",P,\"Watt/m^2\"\n",
+ "\n",
+ "# Note : The Solving in the book is wrong they put 0.1 instead of 0.1*lamda \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.11,PAGE NO.-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi \n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = 75 #Length of dipole in m\n",
+ "f = 800 # Frequency in kHz\n",
+ "I_rms = 10 #rms Current in Amp\n",
+ "c = 3*(10**8) #Speed of light in m/s \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "P_rad = 80*(pi**2)*((dL/lamda)**2)*(I_rms**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Total Power radiated by Antenna is \",round(P_rad*1000,2),\"kW\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_3.ipynb b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_3.ipynb
new file mode 100755
index 00000000..e025dd86
--- /dev/null
+++ b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_3.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:02197244985b7dfa2823dacf9fac72c0a7536b50c383ffa1801ccf3066222ec3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7.1, PAGE NO.-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "I_m = 15 #Current in Ampere\n",
+ "P_rad = 6 #Power radiated in kW\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "# By formula\n",
+ "I_rms = I_m/math.sqrt(2) #I_rms is r.m.s. current\n",
+ "\n",
+ "R_rad = P_rad/(I_rms**2) #R_rad is radiation resistance\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The radiation resistance of Antenna is\",round(R_rad*1000,2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radiation resistance of Antenna is 53.33 kW\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.1,PAGE NO.-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt \n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = Lm/25 # Length of dipole for Hertian dipole\n",
+ "H_phi = 5 # Magnetic field strength in uA/m\n",
+ "theta = pi/2\n",
+ "r = 2 # Distance in Km\n",
+ "dL_1 = Lm/2 # Length of dipole for Half wave dipole \n",
+ "R_rad = 73 # Radiation resistance for half wave dipole in ohm\n",
+ "R_rad1 = 36.5 # Radiation resistance for quarter wave monopole in ohm\n",
+ "dL_2 = Lm/4 # Length of dipole for quarter wave monopole \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# By formula : H_phi = I_m*dL*sin(theta)/2*Lm*r\n",
+ "I_m = (H_phi*2*Lm*r)/(dL*sin(theta))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*(I_rms**2)\n",
+ "I_m1 = (H_phi*2*pi*r*sin(theta))/(cos(pi/2*cos(theta)))\n",
+ "I_rms1 = I_m1/sqrt(2)\n",
+ "P_rad1 = (I_rms1**2)*R_rad\n",
+ "P_rad2 = (I_rms1**2)*R_rad1\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print \" The power radiated by hertzian dipole is \",round(P_rad*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by half wave dipole is \",round(P_rad1*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by Quarter wave monopole is \",round(P_rad2*10**-3,2),\"mW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.2,PAGE NO.-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt\n",
+ "\n",
+ "\n",
+ "\n",
+ "#variable declaration \n",
+ "\n",
+ "\n",
+ "E_theta = 10*(10**(-6)) #Electric field strength in V/m\n",
+ "theta = pi/2 #observation angle\n",
+ "r = 500*(10**3) #distance in metrs\n",
+ "f = 50*(10**6) #frequency in Hertz\n",
+ "c = 3*(10**8) #speed of light in m/sec\n",
+ "R_rad = 73 #for half wave dipole Radiation resistance in ohms\n",
+ "\n",
+ "\n",
+ "# calculation\n",
+ "lamda = c/f\n",
+ "L = lamda/2 #L is the length of half wave dipole\n",
+ "# formula : E=((60*I_m)/r)*((cos(pi/2*cos(theta)))*sin(theta))\n",
+ "I_m = (E_theta*r*sin(theta))/(60*cos(pi/2*cos(theta)))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_avg = (R_rad*(I_m**2))/2\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"Length of Dipole is\" ,round(L,2),\"metres\"\n",
+ "print \"Current fed to Antenna\",round(I_rms*1000,2),\"mA\"\n",
+ "print \"Average Power\",round(P_avg*1000,2),\"mW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.3,PAGE NO.-44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 100 #effective hieght in m\n",
+ "f = 60*(10**3) #frequency in Hertz\n",
+ "r = 100*(10**3) #Distance in m\n",
+ "c = 3*(10**8) #Speed of light in m/sec\n",
+ "P_rad = 100*(10**3) #radiated power\n",
+ "\n",
+ "# calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "I_rms = sqrt(P_rad/R_rad)\n",
+ "E_rms = (120*pi*l_eff*(I_rms**2))/(lamda*r)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print \"Strength of Electric field\",round(E_rms,2),\"V/m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.4,PAGE NO.-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 113.3 #Effective length in metres\n",
+ "lamda = 18.8 #Wavelength in metres\n",
+ "I_rms = 725 #Base current in Ampere\n",
+ "r = 175 #Distance in metre\n",
+ "Eta_o = 120*pi\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E = (120*pi*l_eff*I_rms)/(lamda*r)\n",
+ "H = E/Eta_o\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "P_rad = (I_rms**2)*(R_rad)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The electric field at a distance r is \",round(E*0.001,2),\"mV/m\"\n",
+ "print \"The H field is\",round(H,2),\"uA/m\"\n",
+ "print \"The power radiated by Antenna is \",round(P_rad*(10**(-9)),2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.5,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "lamda = 10*(10**(-2)) # In cm\n",
+ "r = 200*(10**(-2)) # In cm\n",
+ "theta = 90 # In Degrees\n",
+ "phi = 0 # In Degrees\n",
+ "IdL = 3*(10**(-4)) # current distribution in Am\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E_theta = (60*pi*IdL*sin(theta))/(lamda*r)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The magnitude of component E_theta is \",round(E_theta,2),\"V/m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.6,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = lamda/12\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 80*(pi**2)*((dL/lamda)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole antenna is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.7,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "I_m = 100 # uniform current in ampere\n",
+ "Lm = Symbol('Lm') #Taking Lm as lamda\n",
+ "dL = Lm/16\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*((I_m/sqrt(2))**2)\n",
+ "R_rad = 80*(pi**2)*((dL/Lm)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.8,PAGE NO.-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variable declaration\n",
+ "\n",
+ "f = 30*(10**6) #Frequency in Hz\n",
+ "c = 3*(10**8) #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Length of Half wave dipole is \",round((lamda/2),2),\"m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.10,PAGE NO.-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin,sqrt \n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = 0.01*Lm # Length of dipole \n",
+ "theta = 45\n",
+ "P_rad = 1 # Power radiated in kW\n",
+ "phi = 90\n",
+ "r = 1 # Distance in Km\n",
+ "Eta_o=120*pi\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 20*(pi**2)*((dL/Lm)**2)\n",
+ "I_m = sqrt(2*P_rad*R_rad)\n",
+ "\n",
+ "# formula : P = (Eta_o/2)*(((Omega*I_m*dL*sin(theta))/(4*pi*r*v))**2)\n",
+ "P = (Eta_o/2)*(((I_m*dL*sin(theta))/(4*pi*(r**2)))**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Power density is \",P,\"Watt/m^2\"\n",
+ "\n",
+ "# Note : The Solving in the book is wrong they put 0.1 instead of 0.1*lamda \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.11,PAGE NO.-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi \n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = 75 #Length of dipole in m\n",
+ "f = 800 # Frequency in kHz\n",
+ "I_rms = 10 #rms Current in Amp\n",
+ "c = 3*(10**8) #Speed of light in m/s \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "P_rad = 80*(pi**2)*((dL/lamda)**2)*(I_rms**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Total Power radiated by Antenna is \",round(P_rad*1000,2),\"kW\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_4.ipynb b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_4.ipynb
new file mode 100755
index 00000000..e025dd86
--- /dev/null
+++ b/sample_notebooks/NIKHILESH DAMLE/ANTENNAS_AND_WAVE_PROPAGATION_BY_U.A_BAKSHI,_A.V_BAKSHI,_K.A_BAKSHI_4.ipynb
@@ -0,0 +1,462 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:02197244985b7dfa2823dacf9fac72c0a7536b50c383ffa1801ccf3066222ec3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Radiation"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7.1, PAGE NO.-30"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "# Variable declaration\n",
+ "\n",
+ "I_m = 15 #Current in Ampere\n",
+ "P_rad = 6 #Power radiated in kW\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "# By formula\n",
+ "I_rms = I_m/math.sqrt(2) #I_rms is r.m.s. current\n",
+ "\n",
+ "R_rad = P_rad/(I_rms**2) #R_rad is radiation resistance\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The radiation resistance of Antenna is\",round(R_rad*1000,2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The radiation resistance of Antenna is 53.33 kW\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.1,PAGE NO.-42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt \n",
+ "from sympy import Symbol\n",
+ "\n",
+ "# Variable Declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = Lm/25 # Length of dipole for Hertian dipole\n",
+ "H_phi = 5 # Magnetic field strength in uA/m\n",
+ "theta = pi/2\n",
+ "r = 2 # Distance in Km\n",
+ "dL_1 = Lm/2 # Length of dipole for Half wave dipole \n",
+ "R_rad = 73 # Radiation resistance for half wave dipole in ohm\n",
+ "R_rad1 = 36.5 # Radiation resistance for quarter wave monopole in ohm\n",
+ "dL_2 = Lm/4 # Length of dipole for quarter wave monopole \n",
+ "\n",
+ "# Calculation\n",
+ "\n",
+ "# By formula : H_phi = I_m*dL*sin(theta)/2*Lm*r\n",
+ "I_m = (H_phi*2*Lm*r)/(dL*sin(theta))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*(I_rms**2)\n",
+ "I_m1 = (H_phi*2*pi*r*sin(theta))/(cos(pi/2*cos(theta)))\n",
+ "I_rms1 = I_m1/sqrt(2)\n",
+ "P_rad1 = (I_rms1**2)*R_rad\n",
+ "P_rad2 = (I_rms1**2)*R_rad1\n",
+ "\n",
+ "# Result\n",
+ "\n",
+ "print \" The power radiated by hertzian dipole is \",round(P_rad*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by half wave dipole is \",round(P_rad1*10**-3,2),\"mW\"\n",
+ "print \" The power radiated by Quarter wave monopole is \",round(P_rad2*10**-3,2),\"mW\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.2,PAGE NO.-43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import sin,cos,pi,sqrt\n",
+ "\n",
+ "\n",
+ "\n",
+ "#variable declaration \n",
+ "\n",
+ "\n",
+ "E_theta = 10*(10**(-6)) #Electric field strength in V/m\n",
+ "theta = pi/2 #observation angle\n",
+ "r = 500*(10**3) #distance in metrs\n",
+ "f = 50*(10**6) #frequency in Hertz\n",
+ "c = 3*(10**8) #speed of light in m/sec\n",
+ "R_rad = 73 #for half wave dipole Radiation resistance in ohms\n",
+ "\n",
+ "\n",
+ "# calculation\n",
+ "lamda = c/f\n",
+ "L = lamda/2 #L is the length of half wave dipole\n",
+ "# formula : E=((60*I_m)/r)*((cos(pi/2*cos(theta)))*sin(theta))\n",
+ "I_m = (E_theta*r*sin(theta))/(60*cos(pi/2*cos(theta)))\n",
+ "I_rms = I_m/sqrt(2)\n",
+ "P_avg = (R_rad*(I_m**2))/2\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"Length of Dipole is\" ,round(L,2),\"metres\"\n",
+ "print \"Current fed to Antenna\",round(I_rms*1000,2),\"mA\"\n",
+ "print \"Average Power\",round(P_avg*1000,2),\"mW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.3,PAGE NO.-44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 100 #effective hieght in m\n",
+ "f = 60*(10**3) #frequency in Hertz\n",
+ "r = 100*(10**3) #Distance in m\n",
+ "c = 3*(10**8) #Speed of light in m/sec\n",
+ "P_rad = 100*(10**3) #radiated power\n",
+ "\n",
+ "# calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "I_rms = sqrt(P_rad/R_rad)\n",
+ "E_rms = (120*pi*l_eff*(I_rms**2))/(lamda*r)\n",
+ "\n",
+ "# Results\n",
+ "\n",
+ "print \"Strength of Electric field\",round(E_rms,2),\"V/m\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.4,PAGE NO.-45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "l_eff = 113.3 #Effective length in metres\n",
+ "lamda = 18.8 #Wavelength in metres\n",
+ "I_rms = 725 #Base current in Ampere\n",
+ "r = 175 #Distance in metre\n",
+ "Eta_o = 120*pi\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E = (120*pi*l_eff*I_rms)/(lamda*r)\n",
+ "H = E/Eta_o\n",
+ "R_rad = 160*(pi**2)*((l_eff/lamda)**2)\n",
+ "P_rad = (I_rms**2)*(R_rad)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The electric field at a distance r is \",round(E*0.001,2),\"mV/m\"\n",
+ "print \"The H field is\",round(H,2),\"uA/m\"\n",
+ "print \"The power radiated by Antenna is \",round(P_rad*(10**(-9)),2),\"kW\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.5,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "lamda = 10*(10**(-2)) # In cm\n",
+ "r = 200*(10**(-2)) # In cm\n",
+ "theta = 90 # In Degrees\n",
+ "phi = 0 # In Degrees\n",
+ "IdL = 3*(10**(-4)) # current distribution in Am\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "E_theta = (60*pi*IdL*sin(theta))/(lamda*r)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The magnitude of component E_theta is \",round(E_theta,2),\"V/m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.6,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi\n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = lamda/12\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 80*(pi**2)*((dL/lamda)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole antenna is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.7,PAGE NO.-46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sqrt\n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "I_m = 100 # uniform current in ampere\n",
+ "Lm = Symbol('Lm') #Taking Lm as lamda\n",
+ "dL = Lm/16\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "P_rad = 80*(pi**2)*((dL/Lm)**2)*((I_m/sqrt(2))**2)\n",
+ "R_rad = 80*(pi**2)*((dL/Lm)**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Radiation resistance of dipole is \",round(R_rad,2),\"ohm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.8,PAGE NO.-47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# variable declaration\n",
+ "\n",
+ "f = 30*(10**6) #Frequency in Hz\n",
+ "c = 3*(10**8) #speed of light in m/s\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Length of Half wave dipole is \",round((lamda/2),2),\"m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.10,PAGE NO.-48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi,sin,sqrt \n",
+ "from sympy import Symbol\n",
+ "# variable declaration\n",
+ "\n",
+ "Lm = Symbol('Lm') # Taking lamda as Lm\n",
+ "dL = 0.01*Lm # Length of dipole \n",
+ "theta = 45\n",
+ "P_rad = 1 # Power radiated in kW\n",
+ "phi = 90\n",
+ "r = 1 # Distance in Km\n",
+ "Eta_o=120*pi\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "R_rad = 20*(pi**2)*((dL/Lm)**2)\n",
+ "I_m = sqrt(2*P_rad*R_rad)\n",
+ "\n",
+ "# formula : P = (Eta_o/2)*(((Omega*I_m*dL*sin(theta))/(4*pi*r*v))**2)\n",
+ "P = (Eta_o/2)*(((I_m*dL*sin(theta))/(4*pi*(r**2)))**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Power density is \",P,\"Watt/m^2\"\n",
+ "\n",
+ "# Note : The Solving in the book is wrong they put 0.1 instead of 0.1*lamda \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.9.11,PAGE NO.-49"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from __future__ import division\n",
+ "from math import pi \n",
+ "\n",
+ "# variable declaration\n",
+ "\n",
+ "dL = 75 #Length of dipole in m\n",
+ "f = 800 # Frequency in kHz\n",
+ "I_rms = 10 #rms Current in Amp\n",
+ "c = 3*(10**8) #Speed of light in m/s \n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "lamda = c/f\n",
+ "P_rad = 80*(pi**2)*((dL/lamda)**2)*(I_rms**2)\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "print \"The Total Power radiated by Antenna is \",round(P_rad*1000,2),\"kW\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NirenNegandhi/ch2.ipynb b/sample_notebooks/NirenNegandhi/ch2.ipynb
new file mode 100755
index 00000000..78fcb8ea
--- /dev/null
+++ b/sample_notebooks/NirenNegandhi/ch2.ipynb
@@ -0,0 +1,507 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:8949f832de7d3f263ae07355a00ea5a20f907aff9cf98c80b9a9488be44e93f7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2: Special Theory of Relativity"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page 34"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "ly = 9.46e+015; # Distance travelled by light in an year, m\n",
+ "c = 3e+008; # Speed of light, m/s\n",
+ "L = 4.30*ly; # Distance of Alpha Centauri from earth, m\n",
+ "T0 = 16*365.25*24*60*60; # Proper time in system K_prime, s\n",
+ "\n",
+ "#Calculations\n",
+ "# As time measured on earth, T = 2*L/v = T0_prime/sqrt(1-(v/c)^2), solving for v\n",
+ "v = sqrt(4*L**2/(T0**2+4*L**2/c**2)); # Speed of the aircraft, m/s\n",
+ "gama = 1/sqrt(1-(v/c)**2); # Relativistic factor\n",
+ "T = gama*T0/(365.25*24*60*60); # Time interval as measured on Earth, y\n",
+ "\n",
+ "#Results\n",
+ "print \"The speed of the aircraft = %4.2e m/s\" %v\n",
+ "print \"The time interval as measured on earth = %4.1f y\"%T\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The speed of the aircraft = 1.42e+08 m/s\n",
+ "The time interval as measured on earth = 18.2 y\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3, Page 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "L0 = 4.30; # Distance of Alpha Centauri from earth, ly\n",
+ "c = 3e+008; # Speed of light, m/s\n",
+ "T = 8; # Proper time in system K_prime, y\n",
+ "\n",
+ "#Calculations\n",
+ "# As v/c = L0*sqrt(1-(v/c)^2)/(c*T) or bita = L0*sqrt(1-bita^2)/(c*T), solving for bita\n",
+ "bita = sqrt(L0**2/(T**2 + L0**2)); # Boost parameter\n",
+ "v = L0*sqrt(1-bita**2)/T; # Speed of the aircraft, c units\n",
+ "\n",
+ "#Results\n",
+ "print \"The boost parameter = %5.3f\"%bita\n",
+ "print \"The speed of the aircraft = %5.3fc units\"%v"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The boost parameter = 0.473\n",
+ "The speed of the aircraft = 0.473c units\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page 40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "c = 1; # For simplicity assume speed of light to be unity, m/s\n",
+ "bita = 0.600; # Boost parameter\n",
+ "gama = 1/sqrt(1-bita**2); # Relativistic factor\n",
+ "u_x_prime = 0; # Speed of the protons in spaceship frame along x-axis, m/s\n",
+ "u_y_prime = 0.99*c; # Speed of the protons in spaceship frame along y-axis, m/s\n",
+ "u_z_prime = 0; # Speed of the protons in spaceship frame along z-axis, m/s\n",
+ "v = 0.60*c; # Speed of the spaceship w.r.t. space station, m/s\n",
+ "\n",
+ "#Calculations\n",
+ "u_x = (u_x_prime + v)/(1 + v/c**2*u_x_prime); # Speed of protons in space station frame along x-axis, m/s\n",
+ "u_y = u_y_prime/(gama*(1 + v/c**2*u_x_prime)); # Speed of protons in space station frame along y-axis, m/s\n",
+ "u_z = u_z_prime/(gama*(1 + v/c**2*u_x_prime)); # Speed of protons in space station frame along y-axis, m/s\n",
+ "u = sqrt(u_x**2 + u_y**2 + u_z**2); # The speed of the protons measured by an observer in the space station, m/s\n",
+ "\n",
+ "#Result\n",
+ "print \"The speed of the protons measured by an observer in the space station = %5.3fc units\"%u"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The speed of the protons measured by an observer in the space station = 0.994c units\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.5, Page 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "c = 2.998e+008; # Speed of light in free space, m/s\n",
+ "v = 7712; # Speed of the space shuttle, m/s\n",
+ "bita = v/c; # Boost parameter\n",
+ "T_loss = 295.02; # Total measured loss in time, ps/sec\n",
+ "Add_T_loss = 35.0; # Additional time loss for moving clock from general relativity prediction, ps/s\n",
+ "\n",
+ "#Calculations\n",
+ "# From time dilation relation, T0_prime = T*sqrt(1 - bita^2), solving for (T - T0_prime)/T\n",
+ "Calc_T_loss = bita**2/2*1e+012; # Expected time lost per sec by the moving clock, ps/sec\n",
+ "Measured_T_loss = T_loss + Add_T_loss; # Total measured loss in time per sec as per special relativity, ps/s\n",
+ "percent_T_loss = (Calc_T_loss - Measured_T_loss)/Calc_T_loss*100; # Percentage deviation of measured and the calculated time loss per sec\n",
+ "T = 6.05e+05; # Total time of the seven-day mission, s\n",
+ "delta_T = Calc_T_loss*1e-012*T; # The total time difference between the moving and stationary clocks during the entire shuttle flight, s\n",
+ "\n",
+ "#Results\n",
+ "print \"The expected time lost per second for the moving clock = %6.2f ps\"%Calc_T_loss\n",
+ "print \"The percentage deviation of measured and the calculated time loss per sec for moving clock = %3.1f percent\"%percent_T_loss #answer differs due to rounding errors\n",
+ "print \"The total time difference between the moving and stationary clocks during the entire shuttle flight = %3.1f ms\"%(delta_T/1e-003)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The expected time lost per second for the moving clock = 330.86 ps\n",
+ "The percentage deviation of measured and the calculated time loss per sec for moving clock = 0.3 percent\n",
+ "The total time difference between the moving and stationary clocks during the entire shuttle flight = 0.2 ms\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.8, Page 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "f0 = 1; # For simplicity assume frequency of the signals sent by Frank, Hz\n",
+ "# Outbound trip\n",
+ "bita = -0.8; # Boost parameter for receding frames\n",
+ "\n",
+ "#Calculations&Results\n",
+ "f = sqrt(1+bita)/sqrt(1-bita)*f0; # The frequency of the signals received by Mary in outbound trip, Hz\n",
+ "print \"The frequency of the signals received by Mary in outbound trip = f0/%d\", ceil(f*9)\n",
+ "# Return trip\n",
+ "bita = +0.8; # Boost parameter for approaching frames\n",
+ "f = sqrt(1+bita)/sqrt(1-bita)*f0; # The frequency of the signals received by Mary in return trip, Hz\n",
+ "print \"The frequency of the signals received by Mary in return trip = %df0\"%f"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The frequency of the signals received by Mary in outbound trip = f0/%d 3.0\n",
+ "The frequency of the signals received by Mary in return trip = 3f0\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11, Page 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "q = 1.6e-019; # Charge on an electron, C\n",
+ "V = 25e+003; # Accelerating potential, volt\n",
+ "K = q*V; # Kinetic energy of electrons, J\n",
+ "m = 9.11e-031; # Rest mass of an electron, kg\n",
+ "c = 3.00e+08; # Speed of light, m/s\n",
+ "\n",
+ "#Calculations\n",
+ "# From relativistic kinetic energy formula, K = (gama - 1)*m*C^2, solving for gama\n",
+ "gama = 1 + K/(m*c**2); # Relativistic factor\n",
+ "bita = sqrt((gama**2-1)/gama**2); # Boost parameter\n",
+ "u = bita*c; # Speed of the electrons, m/s\n",
+ "# From non-relativistic expression, K = 1/2*m*u^2, solving for u\n",
+ "u_classical = sqrt(2*K/m); # Non-relativistic speed of the electrons, m/s\n",
+ "u_error = (u_classical - u)/u_classical*100; # Percentage error in speed of electrons, m/s\n",
+ "\n",
+ "#Results\n",
+ "print \"The relativistic speed of the accelerated electrons = %4.2e m/s\"%u\n",
+ "print \"The classical speed is about %d percent greater than the relativistic speed\"%ceil(u_error)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The relativistic speed of the accelerated electrons = 9.04e+07 m/s\n",
+ "The classical speed is about 4 percent greater than the relativistic speed\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.13, Page 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "c = 1; # For simplicity assume peed of light to be unity, m/s\n",
+ "K = 2.00; # Kinetic energy of protons, GeV\n",
+ "E0 = 0.938; # Rest mass of a proton, GeV\n",
+ "E = K + E0; # Total energy of the proton, GeV\n",
+ "\n",
+ "#Calculations\n",
+ "# From relativistic mass energy relation, E^2 = (p*c)^2+E0^2, solving for p\n",
+ "p = sqrt(E**2 - E0**2)/c; # Momentum of the protons, GeV/c\n",
+ "# As E = gama*E0, solving for gama\n",
+ "gama = E/E0; # Relativistic factor\n",
+ "bita = sqrt((gama**2-1)/gama**2); # Boost parameter\n",
+ "v = bita*3.00e+08; # Speed of 2 GeV proton, m/s\n",
+ "\n",
+ "#Results\n",
+ "print \"The energy of each initial proton = %5.3f GeV\"%E\n",
+ "print \"The momentum of each initial proton = %4.2f GeV/c\"%p\n",
+ "print \"The speed of each initial proton = %3.1e m/s\"%v\n",
+ "print \"The relativistic factor, gama = %4.2f\"%gama\n",
+ "print \"The boost parameter, beta = %5.3f\"%bita"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The energy of each initial proton = 2.938 GeV\n",
+ "The momentum of each initial proton = 2.78 GeV/c\n",
+ "The speed of each initial proton = 2.8e+08 m/s\n",
+ "The relativistic factor, gama = 3.13\n",
+ "The boost parameter, beta = 0.948\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.15, Page 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "E_d = 1875.6; # Rest mass energy of the deuterium, MeV\n",
+ "E_pi = 139.6; # Rest mass energy of the pion, MeV\n",
+ "E_p = 938.3; # Rest mass energy of the proton, MeV\n",
+ "\n",
+ "#Calculation\n",
+ "K = 1./2*(E_d + E_pi - 2*E_p); # Minimum kinetic energy of the protons, MeV \n",
+ "\n",
+ "#Result\n",
+ "print \"The minimum kinetic energy of the protons = %2d MeV\"%K"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum kinetic energy of the protons = 69 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.16, Page 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "u = 931.5; # Energy equivalent of 1 amu, MeV\n",
+ "c = 1; # Speed of light in vacuum, m/s\n",
+ "\n",
+ "#Calculations\n",
+ "m_e = 0.000549*u; # Rest mass of an electron, MeV/c^2\n",
+ "m_p = 1.007276*u; # Rest mass of a proton, MeV/c^2\n",
+ "m_n = 1.008665*u; # Rest mass of a neutron, MeV/c^2\n",
+ "m_He = 4.002603*u; # Rest mass of a helium, MeV/c^2\n",
+ "M_He = m_He - 2*m_e; # Mass of He nucleus, MeV/c^2\n",
+ "E_B_He = (2*m_p + 2*m_n - M_He)*c**2; # Binding energy of the He nucleus, MeV\n",
+ "\n",
+ "#Result\n",
+ "print \"The binding energy of the He nucleus = %4.1f MeV\"%E_B_He"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binding energy of the He nucleus = 28.3 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.17, Page 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "u = 931.5; # Energy equivalent of 1 amu, MeV/u\n",
+ "c = 1; # For simplicity assume speed of light in vacuum to be unity, m/s\n",
+ "E_B = 4.24; # The dissociationenergy of the NaCl molecule, MeV\n",
+ "\n",
+ "#Calculations\n",
+ "M = 58.44*u; # Energy corresponding to molecular mass of NaCl, MeV\n",
+ "f_r = E_B/M; # The fractional mass increase of the Na and Cl atoms\n",
+ "\n",
+ "#Result\n",
+ "print \"The fractional mass increase of the Na and Cl atoms when they are not bound together in NaCl = %4.1e\"%(f_r/1e+006)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The fractional mass increase of the Na and Cl atoms when they are not bound together in NaCl = 7.8e-11\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.18, Page 72"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from math import *\n",
+ "\n",
+ "#Variable declaration\n",
+ "c = 1; # For simplicity assume speed of light in vacuum to be unity, m/s\n",
+ "E0_n = 940; # Rest energy of a neutron, MeV\n",
+ "E0_pi = 140; # Rest energy of a pion, MeV\n",
+ "p_n = 4702; # Momentum of the neutron, MeV/c\n",
+ "p_pi = 169; # Momentum of the pion, MeV/c\n",
+ "\n",
+ "#Calculations\n",
+ "E_n = sqrt((p_n*c)**2+E0_n**2); # Total energy of the neutron, MeV\n",
+ "E_pi = sqrt((p_pi*c)**2+E0_pi**2); # Total energy of the pion, MeV\n",
+ "E = E_n + E_pi; # Total energy of the reaction, MeV\n",
+ "p_sigma = p_n + p_pi; # Momentum of the sigma particle, MeV/c\n",
+ "E0_sigma = sqrt(E**2 - (p_sigma*c)**2); # Rest mass energy of the sigma particle, MeV\n",
+ "m_sigma = E0_sigma/c**2; # Rest mass of sigma particle, MeV/c^2;\n",
+ "K = E - E0_sigma; # Kinetic energy of sigma particle, MeV\n",
+ "\n",
+ "#Results\n",
+ "print \"The rest mass of sigma particle = %4d MeV/c^2\"%ceil(m_sigma)\n",
+ "print \"The kinetic energy of sigma particle = %4d MeV\"%ceil(K)\n",
+ "\n",
+ "#Answers differ due to rounding errors"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The rest mass of sigma particle = 1192 MeV/c^2\n",
+ "The kinetic energy of sigma particle = 3824 MeV\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types.ipynb b/sample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types.ipynb
new file mode 100755
index 00000000..1083b19a
--- /dev/null
+++ b/sample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types.ipynb
@@ -0,0 +1,809 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dbbd8ed92141bcc804ff2fbeacf8bb85f122dc6e196e1d830291a4a449a3a439"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Data Abstraction through Classes and User-Defined Data Types "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.1, page no: 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Super:\n",
+ " def __init__(self):\n",
+ " self.__IntegerData=None #private member\n",
+ " #public functions\n",
+ " def SetData(self,i):\n",
+ " self.__IntegerData=i #refer to IntegerData\n",
+ " def ShowData(self):\n",
+ " print \"Data is \",self.__IntegerData,' '\n",
+ "\n",
+ "ob1=Super()\n",
+ "ob2=Super()\n",
+ "ob1.SetData(1000)\n",
+ "ob2.SetData(2000)\n",
+ "ob1.ShowData()\n",
+ "ob2.ShowData()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Data is 1000 \n",
+ "Data is 2000 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.2, page no:211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class X:\n",
+ " def __init__(self):\n",
+ " self.a=None #private members\n",
+ " self.b=None #private members\n",
+ " \n",
+ "#no structure type present in python \n",
+ "x = X()\n",
+ "\n",
+ "x.a=0\n",
+ "x.b=1\n",
+ "print \"x.a=\",x.a,\",x.b=\",x.b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x.a= 0 ,x.b= 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.3, page no:214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " \n",
+ " def SetValue(self,a,b): #public functions\n",
+ " self.__num=a \n",
+ " self.__denom=b \n",
+ " def GetValue(self,a,b):\n",
+ " a=self.__num\n",
+ " b=self.__denom\n",
+ " \n",
+ "f=Fraction()\n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"enter the numerator and denominator: \", ' ',n,d\n",
+ "\n",
+ "f.SetValue(n,d) #call function SetValue\n",
+ "print \"Numerator value set: \", ' ',n\n",
+ "print \"Denominator value set: \", ' ',d\n",
+ "f.GetValue(n,d) #call function GetData\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enter the numerator and denominator: 3 4\n",
+ "Numerator value set: 3\n",
+ "Denominator value set: 4\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.4, page no:216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class SimpleClass:\n",
+ " def __init__(self):\n",
+ " self.__i=None #private member\n",
+ " \n",
+ " def __init__(self):\n",
+ " self.__i=500 #constructor\n",
+ " \n",
+ " def SetData(self,d):\n",
+ " self.__i=d\n",
+ " \n",
+ " def GetData(self):\n",
+ " return self.__i\n",
+ " \n",
+ "#Initializing\n",
+ "s1=SimpleClass()\n",
+ "s2=SimpleClass()\n",
+ "print \"s1 has data: \",s1.GetData()\n",
+ "print \"s2 has data: \",s2.GetData()\n",
+ "s1.SetData(1000) #function call\n",
+ "s2.SetData(2000)\n",
+ "print \"s1 has data: \",s1.GetData(),' '\n",
+ "print \"s2 has data: \", s2.GetData(),' '\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s1 has data: 500\n",
+ "s2 has data: 500\n",
+ "s1 has data: 1000 \n",
+ "s2 has data: 2000 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.5, page no:217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class SimpleClass:\n",
+ " __IntegerData=None\n",
+ " def __init__(self,data=None):\n",
+ " if data==None:\n",
+ " self.__IntegerData=500 #default constructor\n",
+ " else:\n",
+ " self.__IntegerData=data #parameterised constructor\n",
+ " \n",
+ " def SetData(self,d):\n",
+ " self.__IntegerData=d\n",
+ " \n",
+ " def GetData(self):\n",
+ " return self.__IntegerData\n",
+ " \n",
+ "#Initializing\n",
+ "s1=SimpleClass()\n",
+ "s2=SimpleClass()\n",
+ "s3=SimpleClass(400)\n",
+ "s4=SimpleClass(600)\n",
+ "print \"s1 has data: \",s1.GetData(),' '\n",
+ "print \"s2 has data: \",s2.GetData(),' '\n",
+ "print \"s3 has data: \",s3.GetData(),' '\n",
+ "print \"s4 has data: \",s4.GetData(),' '\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s1 has data: 500 \n",
+ "s2 has data: 500 \n",
+ "s3 has data: 400 \n",
+ "s4 has data: 600 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.6, page no:218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction: \n",
+ " def_init_num=None #private members\n",
+ " def_init_denom=None #private members\n",
+ " def __init__(self,a=0,b=1):\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " print \"Numerator set inside constructor\",' ',n\n",
+ " print \"Denominator set inside constructor\",' ',d\n",
+ " \n",
+ " def SetValue(self,a,b):\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " def GetValue(self,a,b):\n",
+ " a= self.__num\n",
+ " b= self.__denom\n",
+ " return a,b\n",
+ " \n",
+ " def __del__(self): #destructor\n",
+ " pass\n",
+ " \n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"Please enter value of numerator and denominator: \",' ',n,d\n",
+ "f=Fraction(n,d)\n",
+ "f.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter value of numerator and denominator: 3 4\n",
+ "Numerator set inside constructor 3\n",
+ "Denominator set inside constructor 4\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.7, page no:221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " \n",
+ " def __init__(self,a=0,b=1): #constructor\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " print \"Numerator set inside constructor: \",self.__num\n",
+ " print \"Denominator set inside constructor: \",self.__denom \n",
+ " \n",
+ " def GetValue(self,a,b):\n",
+ " return self.__num,self.__denom\n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"Please enter the value of the numerator and denominator: \",n,d\n",
+ "f=Fraction(n,d)\n",
+ "n,d=f.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d\n",
+ "n=input(\"Please enter the value of numerator only: \")\n",
+ "f1=Fraction(n)\n",
+ "n,d=f1.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d\n",
+ "print 'ok..now I will create a fraction-no input please'\n",
+ "f2=Fraction()\n",
+ "n,d=f2.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter the value of the numerator and denominator: 3 4\n",
+ "Numerator set inside constructor: 3\n",
+ "Denominator set inside constructor: 4\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter the value of numerator only: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numerator set inside constructor: 3\n",
+ "Denominator set inside constructor: 1\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 1\n",
+ "ok..now I will create a fraction-no input please\n",
+ "Numerator set inside constructor: 0\n",
+ "Denominator set inside constructor: 1\n",
+ "Numerator value retrieved: 0\n",
+ "Denominator value retrieved: 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.8, page no:223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " def_init_num=None #private members\n",
+ " def_init_denom=None #private members\n",
+ " \n",
+ " def __init__(self,anotherFraction=None): \n",
+ " if anotherFraction==None: #normal constructor\n",
+ " self.__num=anotherFraction\n",
+ " self.__denom=anotherFraction\n",
+ " else: #copy constructor\n",
+ " self.__num=anotherFraction.self.__num\n",
+ " self.__denom=anotherFraction.self.__denom\n",
+ " \n",
+ " \n",
+ " #public functions\n",
+ " def SetValue(self,a,b):\n",
+ " self.__num=a\n",
+ " self.__denom=b#refer to IntegerData\n",
+ " def GetValue(self,a,b):\n",
+ " a=self.__num\n",
+ " b=self.__denom\n",
+ " return a,b\n",
+ " \n",
+ "f=Fraction()\n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"enter the numerator and denominator: \", ' ',n,d\n",
+ "\n",
+ "f.SetValue(n,d) #call function SetValue\n",
+ "print \"Numerator value set: \", ' ',n\n",
+ "print \"Denominator value set: \", ' ',d\n",
+ "f.GetValue(n,d) #call function GetData\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d\n",
+ "print \"Now a second clone copy is being created: \",''\n",
+ "f1=f\n",
+ "f1.GetValue(n,d)\n",
+ "print \"Clone's numerator value retrieved: \", ' ',n\n",
+ "print \"Clone's denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enter the numerator and denominator: 5 6\n",
+ "Numerator value set: 5\n",
+ "Denominator value set: 6\n",
+ "Numerator value retrieved: 5\n",
+ "Denominator value retrieved: 6\n",
+ "Now a second clone copy is being created: \n",
+ "Clone's numerator value retrieved: 5\n",
+ "Clone's denominator value retrieved: 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.9, page no:229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def MyNewHandler():\n",
+ " print \"Sorry operator new failed to allocate memory\"\n",
+ " exit(0)\n",
+ " \n",
+ "def _set_new_handler(s):\n",
+ " s()\n",
+ "#In python there is no in-built _set_new_handler function, so i made this function and passed MyNewHandler function as a parameters\n",
+ "_set_new_handler(MyNewHandler)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry operator new failed to allocate memory\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.10, page no:230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from ctypes import * \n",
+ "class Fraction: \n",
+ " def __init__(self,a=0,b=1): \n",
+ " if isinstance(a,int): \n",
+ " c = c_int(a) \n",
+ " d = c_int(b) \n",
+ " self.__num = pointer(c) \n",
+ " self.__denom = pointer(d) \n",
+ " print 'constructor sets numerator = ', self.__num[0] , ', denominator = ', self.__denom[0] \n",
+ " else:\n",
+ " c=c_int(a.__num[0])\n",
+ " d = c_int(a.__denom[0])\n",
+ " self.__num = pointer(c) \n",
+ " self.__denom = pointer(d)\n",
+ " print 'copy constructor sets numerator = ', self.__num[0] , ', denominator = ', self.__denom[0] \n",
+ " \n",
+ " def __del__(self): \n",
+ " print 'destructor deallocates numerator = ', self.__num[0] , ', denominator = ', self.__denom[0] \n",
+ " \n",
+ "n = input(\"Please enter values of numerator: \") \n",
+ "d = input(\"Please enter values of denominator: \") \n",
+ "f = Fraction(n,d) \n",
+ "print 'Please enter another set of ' \n",
+ "n = input(\"numerator: \") \n",
+ "d = input(\"denominator: \") \n",
+ "print 'Creating fraction *pf : ' \n",
+ "pf = Fraction(n,d) \n",
+ "print 'Now a clone copy (f2) created from *pf: ' \n",
+ "f2 = Fraction(pf)\n",
+ "print 'Now another clone copy (*pf2) created from f:' \n",
+ "pf2 = Fraction(f) \n",
+ "print '*pf2 is being destroyed:' \n",
+ "del pf2\n",
+ "print '*pf is being destroyed:' \n",
+ "del pf \n",
+ "print 'now objects f2 and f automatically destroyed : '"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter values of numerator: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter values of denominator: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "constructor sets numerator = 3 , denominator = 4\n",
+ "Please enter another set of \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "numerator: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "denominator: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Creating fraction *pf : \n",
+ "constructor sets numerator = 5 , denominator = 6\n",
+ "Now a clone copy (f2) created from *pf: \n",
+ "copy constructor sets numerator = 5 , denominator = 6\n",
+ "Now another clone copy (*pf2) created from f:\n",
+ "copy constructor sets numerator = 3 , denominator = 4\n",
+ "*pf2 is being destroyed:\n",
+ "*pf is being destroyed:\n",
+ "now objects f2 and f automatically destroyed : \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.11, page no:234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def Memfail(self,s):\n",
+ " print \"Sorry Unable to allocate memory\"\n",
+ " sys.exit(0)\n",
+ "\n",
+ "MAX_SIZE = 60 + 1\n",
+ "\n",
+ "MAX_SIZE=[[0 for col in range(MAX_SIZE)]for row in range(MAX_SIZE)]\n",
+ "nChar=0\n",
+ "chArr=\"Hello\"\n",
+ "\n",
+ "print \"Please input a string( 60 characters max.): \",chArr\n",
+ "\n",
+ "nChar=len(chArr)+1\n",
+ "szStr=chArr\n",
+ "print \"required memory space for\",nChar,\n",
+ "print \"characters\"\n",
+ "chArr=szStr #string copy\n",
+ "szStr=chArr\n",
+ "print \"String copied in allocated space: \",szStr\n",
+ "print \"Memory space dellocated\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please input a string( 60 characters max.): Hello\n",
+ "required memory space for 6 characters\n",
+ "String copied in allocated space: Hello\n",
+ "Memory space dellocated\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.12, page no:236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " \n",
+ " def __init__(self,a=0,b=1): #constructor\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " \n",
+ " def __del__(self): #destructor\n",
+ " pass\n",
+ " \n",
+ " def GetValue(self,a,b):\n",
+ " a=self.__num\n",
+ " b=self.__denom\n",
+ " return self.__num,self.__denom\n",
+ "n=4\n",
+ "d=5\n",
+ "f=Fraction(4,5)\n",
+ "n,d=f.GetValue(n,d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.13, page no:239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class X:\n",
+ " __sa=20 #initialising static member\n",
+ " a = None\n",
+ " def __init__(self):\n",
+ " self.a=None #public member\n",
+ " def f(self,b):\n",
+ " a=30\n",
+ " print \"Global a= \",b\n",
+ " print \"Local a= \",a\n",
+ " print \"Nonstatic member a= \",self.a\n",
+ " print \"static member sa= \",self.__sa\n",
+ "\n",
+ "a=10\n",
+ "\n",
+ "aXobj=X()\n",
+ "aXobj.a=40\n",
+ "aXobj.f(a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Global a= 10\n",
+ "Local a= 30\n",
+ "Nonstatic member a= 40\n",
+ "static member sa= 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types_1.ipynb b/sample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types_1.ipynb
new file mode 100755
index 00000000..1083b19a
--- /dev/null
+++ b/sample_notebooks/NitamoniDas/chapter_8_Data_Abstraction_through_Classes_and_User-Defined_Data_Types_1.ipynb
@@ -0,0 +1,809 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:dbbd8ed92141bcc804ff2fbeacf8bb85f122dc6e196e1d830291a4a449a3a439"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8: Data Abstraction through Classes and User-Defined Data Types "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.1, page no: 208"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Super:\n",
+ " def __init__(self):\n",
+ " self.__IntegerData=None #private member\n",
+ " #public functions\n",
+ " def SetData(self,i):\n",
+ " self.__IntegerData=i #refer to IntegerData\n",
+ " def ShowData(self):\n",
+ " print \"Data is \",self.__IntegerData,' '\n",
+ "\n",
+ "ob1=Super()\n",
+ "ob2=Super()\n",
+ "ob1.SetData(1000)\n",
+ "ob2.SetData(2000)\n",
+ "ob1.ShowData()\n",
+ "ob2.ShowData()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Data is 1000 \n",
+ "Data is 2000 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.2, page no:211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class X:\n",
+ " def __init__(self):\n",
+ " self.a=None #private members\n",
+ " self.b=None #private members\n",
+ " \n",
+ "#no structure type present in python \n",
+ "x = X()\n",
+ "\n",
+ "x.a=0\n",
+ "x.b=1\n",
+ "print \"x.a=\",x.a,\",x.b=\",x.b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x.a= 0 ,x.b= 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.3, page no:214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " \n",
+ " def SetValue(self,a,b): #public functions\n",
+ " self.__num=a \n",
+ " self.__denom=b \n",
+ " def GetValue(self,a,b):\n",
+ " a=self.__num\n",
+ " b=self.__denom\n",
+ " \n",
+ "f=Fraction()\n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"enter the numerator and denominator: \", ' ',n,d\n",
+ "\n",
+ "f.SetValue(n,d) #call function SetValue\n",
+ "print \"Numerator value set: \", ' ',n\n",
+ "print \"Denominator value set: \", ' ',d\n",
+ "f.GetValue(n,d) #call function GetData\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enter the numerator and denominator: 3 4\n",
+ "Numerator value set: 3\n",
+ "Denominator value set: 4\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.4, page no:216"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class SimpleClass:\n",
+ " def __init__(self):\n",
+ " self.__i=None #private member\n",
+ " \n",
+ " def __init__(self):\n",
+ " self.__i=500 #constructor\n",
+ " \n",
+ " def SetData(self,d):\n",
+ " self.__i=d\n",
+ " \n",
+ " def GetData(self):\n",
+ " return self.__i\n",
+ " \n",
+ "#Initializing\n",
+ "s1=SimpleClass()\n",
+ "s2=SimpleClass()\n",
+ "print \"s1 has data: \",s1.GetData()\n",
+ "print \"s2 has data: \",s2.GetData()\n",
+ "s1.SetData(1000) #function call\n",
+ "s2.SetData(2000)\n",
+ "print \"s1 has data: \",s1.GetData(),' '\n",
+ "print \"s2 has data: \", s2.GetData(),' '\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s1 has data: 500\n",
+ "s2 has data: 500\n",
+ "s1 has data: 1000 \n",
+ "s2 has data: 2000 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.5, page no:217"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class SimpleClass:\n",
+ " __IntegerData=None\n",
+ " def __init__(self,data=None):\n",
+ " if data==None:\n",
+ " self.__IntegerData=500 #default constructor\n",
+ " else:\n",
+ " self.__IntegerData=data #parameterised constructor\n",
+ " \n",
+ " def SetData(self,d):\n",
+ " self.__IntegerData=d\n",
+ " \n",
+ " def GetData(self):\n",
+ " return self.__IntegerData\n",
+ " \n",
+ "#Initializing\n",
+ "s1=SimpleClass()\n",
+ "s2=SimpleClass()\n",
+ "s3=SimpleClass(400)\n",
+ "s4=SimpleClass(600)\n",
+ "print \"s1 has data: \",s1.GetData(),' '\n",
+ "print \"s2 has data: \",s2.GetData(),' '\n",
+ "print \"s3 has data: \",s3.GetData(),' '\n",
+ "print \"s4 has data: \",s4.GetData(),' '\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "s1 has data: 500 \n",
+ "s2 has data: 500 \n",
+ "s3 has data: 400 \n",
+ "s4 has data: 600 \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.6, page no:218"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction: \n",
+ " def_init_num=None #private members\n",
+ " def_init_denom=None #private members\n",
+ " def __init__(self,a=0,b=1):\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " print \"Numerator set inside constructor\",' ',n\n",
+ " print \"Denominator set inside constructor\",' ',d\n",
+ " \n",
+ " def SetValue(self,a,b):\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " def GetValue(self,a,b):\n",
+ " a= self.__num\n",
+ " b= self.__denom\n",
+ " return a,b\n",
+ " \n",
+ " def __del__(self): #destructor\n",
+ " pass\n",
+ " \n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"Please enter value of numerator and denominator: \",' ',n,d\n",
+ "f=Fraction(n,d)\n",
+ "f.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter value of numerator and denominator: 3 4\n",
+ "Numerator set inside constructor 3\n",
+ "Denominator set inside constructor 4\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.7, page no:221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " \n",
+ " def __init__(self,a=0,b=1): #constructor\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " print \"Numerator set inside constructor: \",self.__num\n",
+ " print \"Denominator set inside constructor: \",self.__denom \n",
+ " \n",
+ " def GetValue(self,a,b):\n",
+ " return self.__num,self.__denom\n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"Please enter the value of the numerator and denominator: \",n,d\n",
+ "f=Fraction(n,d)\n",
+ "n,d=f.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d\n",
+ "n=input(\"Please enter the value of numerator only: \")\n",
+ "f1=Fraction(n)\n",
+ "n,d=f1.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d\n",
+ "print 'ok..now I will create a fraction-no input please'\n",
+ "f2=Fraction()\n",
+ "n,d=f2.GetValue(n,d)\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter the value of the numerator and denominator: 3 4\n",
+ "Numerator set inside constructor: 3\n",
+ "Denominator set inside constructor: 4\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter the value of numerator only: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numerator set inside constructor: 3\n",
+ "Denominator set inside constructor: 1\n",
+ "Numerator value retrieved: 3\n",
+ "Denominator value retrieved: 1\n",
+ "ok..now I will create a fraction-no input please\n",
+ "Numerator set inside constructor: 0\n",
+ "Denominator set inside constructor: 1\n",
+ "Numerator value retrieved: 0\n",
+ "Denominator value retrieved: 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.8, page no:223"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " def_init_num=None #private members\n",
+ " def_init_denom=None #private members\n",
+ " \n",
+ " def __init__(self,anotherFraction=None): \n",
+ " if anotherFraction==None: #normal constructor\n",
+ " self.__num=anotherFraction\n",
+ " self.__denom=anotherFraction\n",
+ " else: #copy constructor\n",
+ " self.__num=anotherFraction.self.__num\n",
+ " self.__denom=anotherFraction.self.__denom\n",
+ " \n",
+ " \n",
+ " #public functions\n",
+ " def SetValue(self,a,b):\n",
+ " self.__num=a\n",
+ " self.__denom=b#refer to IntegerData\n",
+ " def GetValue(self,a,b):\n",
+ " a=self.__num\n",
+ " b=self.__denom\n",
+ " return a,b\n",
+ " \n",
+ "f=Fraction()\n",
+ "n=input(\"Enter n: \") #user input\n",
+ "d=input(\"Enter d: \") #user input\n",
+ "print \"enter the numerator and denominator: \", ' ',n,d\n",
+ "\n",
+ "f.SetValue(n,d) #call function SetValue\n",
+ "print \"Numerator value set: \", ' ',n\n",
+ "print \"Denominator value set: \", ' ',d\n",
+ "f.GetValue(n,d) #call function GetData\n",
+ "print \"Numerator value retrieved: \", ' ',n\n",
+ "print \"Denominator value retrieved: \", ' ',d\n",
+ "print \"Now a second clone copy is being created: \",''\n",
+ "f1=f\n",
+ "f1.GetValue(n,d)\n",
+ "print \"Clone's numerator value retrieved: \", ' ',n\n",
+ "print \"Clone's denominator value retrieved: \", ' ',d"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter n: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter d: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "enter the numerator and denominator: 5 6\n",
+ "Numerator value set: 5\n",
+ "Denominator value set: 6\n",
+ "Numerator value retrieved: 5\n",
+ "Denominator value retrieved: 6\n",
+ "Now a second clone copy is being created: \n",
+ "Clone's numerator value retrieved: 5\n",
+ "Clone's denominator value retrieved: 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.9, page no:229"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def MyNewHandler():\n",
+ " print \"Sorry operator new failed to allocate memory\"\n",
+ " exit(0)\n",
+ " \n",
+ "def _set_new_handler(s):\n",
+ " s()\n",
+ "#In python there is no in-built _set_new_handler function, so i made this function and passed MyNewHandler function as a parameters\n",
+ "_set_new_handler(MyNewHandler)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorry operator new failed to allocate memory\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.10, page no:230"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "from ctypes import * \n",
+ "class Fraction: \n",
+ " def __init__(self,a=0,b=1): \n",
+ " if isinstance(a,int): \n",
+ " c = c_int(a) \n",
+ " d = c_int(b) \n",
+ " self.__num = pointer(c) \n",
+ " self.__denom = pointer(d) \n",
+ " print 'constructor sets numerator = ', self.__num[0] , ', denominator = ', self.__denom[0] \n",
+ " else:\n",
+ " c=c_int(a.__num[0])\n",
+ " d = c_int(a.__denom[0])\n",
+ " self.__num = pointer(c) \n",
+ " self.__denom = pointer(d)\n",
+ " print 'copy constructor sets numerator = ', self.__num[0] , ', denominator = ', self.__denom[0] \n",
+ " \n",
+ " def __del__(self): \n",
+ " print 'destructor deallocates numerator = ', self.__num[0] , ', denominator = ', self.__denom[0] \n",
+ " \n",
+ "n = input(\"Please enter values of numerator: \") \n",
+ "d = input(\"Please enter values of denominator: \") \n",
+ "f = Fraction(n,d) \n",
+ "print 'Please enter another set of ' \n",
+ "n = input(\"numerator: \") \n",
+ "d = input(\"denominator: \") \n",
+ "print 'Creating fraction *pf : ' \n",
+ "pf = Fraction(n,d) \n",
+ "print 'Now a clone copy (f2) created from *pf: ' \n",
+ "f2 = Fraction(pf)\n",
+ "print 'Now another clone copy (*pf2) created from f:' \n",
+ "pf2 = Fraction(f) \n",
+ "print '*pf2 is being destroyed:' \n",
+ "del pf2\n",
+ "print '*pf is being destroyed:' \n",
+ "del pf \n",
+ "print 'now objects f2 and f automatically destroyed : '"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter values of numerator: 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please enter values of denominator: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "constructor sets numerator = 3 , denominator = 4\n",
+ "Please enter another set of \n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "numerator: 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "denominator: 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Creating fraction *pf : \n",
+ "constructor sets numerator = 5 , denominator = 6\n",
+ "Now a clone copy (f2) created from *pf: \n",
+ "copy constructor sets numerator = 5 , denominator = 6\n",
+ "Now another clone copy (*pf2) created from f:\n",
+ "copy constructor sets numerator = 3 , denominator = 4\n",
+ "*pf2 is being destroyed:\n",
+ "*pf is being destroyed:\n",
+ "now objects f2 and f automatically destroyed : \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.11, page no:234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def Memfail(self,s):\n",
+ " print \"Sorry Unable to allocate memory\"\n",
+ " sys.exit(0)\n",
+ "\n",
+ "MAX_SIZE = 60 + 1\n",
+ "\n",
+ "MAX_SIZE=[[0 for col in range(MAX_SIZE)]for row in range(MAX_SIZE)]\n",
+ "nChar=0\n",
+ "chArr=\"Hello\"\n",
+ "\n",
+ "print \"Please input a string( 60 characters max.): \",chArr\n",
+ "\n",
+ "nChar=len(chArr)+1\n",
+ "szStr=chArr\n",
+ "print \"required memory space for\",nChar,\n",
+ "print \"characters\"\n",
+ "chArr=szStr #string copy\n",
+ "szStr=chArr\n",
+ "print \"String copied in allocated space: \",szStr\n",
+ "print \"Memory space dellocated\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Please input a string( 60 characters max.): Hello\n",
+ "required memory space for 6 characters\n",
+ "String copied in allocated space: Hello\n",
+ "Memory space dellocated\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.12, page no:236"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Fraction:\n",
+ " \n",
+ " def __init__(self,a=0,b=1): #constructor\n",
+ " self.__num=a\n",
+ " self.__denom=b\n",
+ " \n",
+ " def __del__(self): #destructor\n",
+ " pass\n",
+ " \n",
+ " def GetValue(self,a,b):\n",
+ " a=self.__num\n",
+ " b=self.__denom\n",
+ " return self.__num,self.__denom\n",
+ "n=4\n",
+ "d=5\n",
+ "f=Fraction(4,5)\n",
+ "n,d=f.GetValue(n,d)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Program Source Code 8.13, page no:239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class X:\n",
+ " __sa=20 #initialising static member\n",
+ " a = None\n",
+ " def __init__(self):\n",
+ " self.a=None #public member\n",
+ " def f(self,b):\n",
+ " a=30\n",
+ " print \"Global a= \",b\n",
+ " print \"Local a= \",a\n",
+ " print \"Nonstatic member a= \",self.a\n",
+ " print \"static member sa= \",self.__sa\n",
+ "\n",
+ "a=10\n",
+ "\n",
+ "aXobj=X()\n",
+ "aXobj.a=40\n",
+ "aXobj.f(a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Global a= 10\n",
+ "Local a= 30\n",
+ "Nonstatic member a= 40\n",
+ "static member sa= 20\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/SINDHUARROJU/Chapter1.ipynb b/sample_notebooks/SINDHUARROJU/Chapter1.ipynb
new file mode 100755
index 00000000..aec285c1
--- /dev/null
+++ b/sample_notebooks/SINDHUARROJU/Chapter1.ipynb
@@ -0,0 +1,463 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:305dcc155810a92329b40a851ec0d721020f53211b825d9c1f3b0e3bb9312285"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Acoustics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.1, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "p=50; #sound waves with output power(W)\n",
+ "r=4; #Distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "I=p/(4*math.pi*r**2) #Intensity(W/m**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"Intensity of sound at a distance of 4m from the source is\",round(I,2),\"W/m**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Intensity of sound at a distance of 4m from the source is 0.25 W/m**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.2, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Io=10**-12; #Initial intensity of sound(W/m**2)\n",
+ "d=50; #number of decibels given by 10log(Io/I1)\n",
+ "P=70; #Output power(W)\n",
+ "\n",
+ "#Calculation\n",
+ "I1=(10**5)*Io; #Intensity(W/m**2)\n",
+ "r=math.sqrt(P/(4*math.pi*I1)); #distance(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"The distance at which sound reduces to a level of 50dB is\",round(r/10**3,2),\"*10**3 m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The distance at which sound reduces to a level of 50dB is 7.46 *10**3 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.3, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "v=8000; #volume of the hall(m**3)\n",
+ "T=1.5; #Reverberation time(sec)\n",
+ "\n",
+ "#Calculation\n",
+ "A=(0.161*v)/T; #Total absorption time(m**2 sabine)\n",
+ "\n",
+ "#Result\n",
+ "print \"The total reverberation in the hall is\",round(A,2),\"m**2 sabine\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total reverberation in the hall is 858.67 m**2 sabine\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.4, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=25; #length of the hall(m)\n",
+ "b=20; #breadth of the hall(m)\n",
+ "h=10; #height of the hall(m)\n",
+ "T=4; #Reverberation time(s)\n",
+ "\n",
+ "#Calculation\n",
+ "V=l*b*h; #Volume of the hall(m**3)\n",
+ "A=(0.161*V)/T; #Total absorption time(m**2 sabine)\n",
+ "a=A/(2*((l*b)+(b*h)+(l*h))); #a is absorption co-efficient\n",
+ "\n",
+ "#Result\n",
+ "print \"The average absorption co-efficients of surfaces is\",round(a,3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average absorption co-efficients of surfaces is 0.106\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.5, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Y=77*(10**10); #Youngs modulus for quartz(dyne/cm**2)\n",
+ "rho=2.6; #density of quartz(g/cm**3)\n",
+ "t=0.4; #thickness(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "f=((1/(2*t))*math.sqrt(Y/rho))*10**-3; #frequency(kHz)\n",
+ "\n",
+ "#Result\n",
+ "print \"The frequency of ultrasonic waves produced is\",int(f),\"kHz\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The frequency of ultrasonic waves produced is 680 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.6, Page number 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Y=81*10**10; #Young's modulus for barium titanate(dynes/cm**2)\n",
+ "rho=5.51; #density of barium titanate(g/cm**3)\n",
+ "f=900; #frequency of ultrasonic waves(kHZ)\n",
+ "\n",
+ "#Calculation\n",
+ "t=((1/(2*f))*math.sqrt(Y/rho))*10**-2; #thickness of crystal(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The thickness of the crystal to produce ultrasonic waves is\",round(t,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The thickness of the crystal to produce ultrasonic waves is 2.13 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.7, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=3; #distance(m)\n",
+ "I=0.86; #Intensity of sound source(W/m**2)\n",
+ "\n",
+ "#Calculation\n",
+ "P=4*math.pi*r**2*I; #Power of the sound source(W)\n",
+ "\n",
+ "#Result\n",
+ "print \"The output power of the sound source is\",round(P,2),\"W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output power of the sound source is 97.26 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.8, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=60; #Number of decibels given by 10*log(I/I0)\n",
+ "I0=10**-12; #Initial intensity of sound(W/m**2)\n",
+ "I=10**-6; #since 10log(I/I0)=60\n",
+ "r=200; #distance(m)\n",
+ "\n",
+ "#Calculation\n",
+ "P=4*math.pi*r**2*I; #output power of the sound source(W)\n",
+ "\n",
+ "#Result\n",
+ "print \"The output power of the sound source is\",round(P,1),\"W\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output power of the sound source is 0.5 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.9, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "V=9250; #volume of the hall(m**3)\n",
+ "A=900; #Total absorption(m**2 sabine)\n",
+ "\n",
+ "#Calculation\n",
+ "T=(0.161*V)/A; #Reverberation time(s)\n",
+ "\n",
+ "#Result\n",
+ "print \"The reverberation time in a hall is\",round(T,2),\"s\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reverberation time in a hall is 1.65 s\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.10, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "f1=400; #Initial frequency(kHZ)\n",
+ "f2=500; #New frequency(kHZ)\n",
+ "t1=3; #initial thickness of the crystal(mm)\n",
+ "\n",
+ "#Calculation\n",
+ "t2=(f1*t1)/f2; #required thickness(mm)\n",
+ "\n",
+ "#Result\n",
+ "print \"The required thickness of the crystal is\",t2,\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required thickness of the crystal is 2.4 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example number 1.11, Page number 13"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "t1=2; #Initial thickness(mm)\n",
+ "t2=2.8; #New thickness(mm)\n",
+ "\n",
+ "#Calculation\n",
+ "F=t1/t2; #ratio of new to old frequencies\n",
+ "\n",
+ "#Result\n",
+ "print \"The ratio of new to old frequencies is\",round(F,3),"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of new to old frequencies is 0.714\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/SantoshPawar/Chapter9.ipynb b/sample_notebooks/SantoshPawar/Chapter9.ipynb
new file mode 100755
index 00000000..1ffaf482
--- /dev/null
+++ b/sample_notebooks/SantoshPawar/Chapter9.ipynb
@@ -0,0 +1,569 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 09 : Transistor Biasing and Thermal Stabilization"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.1, Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Vcc=22.5 #in V\n",
+ "Rc=5.6 #in K\n",
+ "Re=1.0 #in K\n",
+ "R2=10.0 #in K\n",
+ "R1=90.0 #in K\n",
+ "B=55.0 #beta\n",
+ "\n",
+ "#Calculations\n",
+ "V=(R2*Vcc)/(R2+R1) #Thevenin Equivallent Voltage\n",
+ "Rb=(R2*R1)/(R2+R1) #Thevenin Equivallent Resistance\n",
+ "\n",
+ "#For base current large compared to reverse saturation current ie Ib>>Ico it follows that Ic=B*Ib\n",
+ "#Applying KVL to the base circuit\n",
+ "#0.65-2.25+Ic+10*Ib=0\n",
+ "#We have -1.60+Ic+(10/55)*Ic=0\n",
+ "\n",
+ "Ic=1.60/(65.0/55);\n",
+ "Ib=Ic/55.0\n",
+ "\n",
+ "#Applying KVL to the collector circuit yields\n",
+ "#-22.5+6.6*Ic+Ib+Vce\n",
+ "\n",
+ "Vce = 22.5-(6.6*1.36)-0.025\n",
+ "\n",
+ "#Results\n",
+ "print(\"The equivallent Vbb = %.2f Volts \" %V)\n",
+ "print(\"The equivallent Rb is = %.2f ohm \" %Rb)\n",
+ "print(\"As B=55 we have Ic=55*Ib \")\n",
+ "print(\" Ic= %.2f milli amp \" %Ic)\n",
+ "print(\"Ib= %.2f micro amp \" %Ib)\n",
+ "print(\"Vce= %.2f Volts \" %Vce)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The equivallent Vbb = 2.25 Volts \n",
+ "The equivallent Rb is = 9.00 ohm \n",
+ "As B=55 we have Ic=55*Ib \n",
+ " Ic= 1.35 milli amp \n",
+ "Ib= 0.02 micro amp \n",
+ "Vce= 13.50 Volts \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.2, Page No 61"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Rc=4.0 #in K\n",
+ "Vcc=20.0 #in V\n",
+ "Vce=10.0 #in V\n",
+ "Ic=2.0 #in mA\n",
+ "#Ic varies from 1.75 to 2.25 and B(beta) varies from 36 to 90\n",
+ "Re = (Vcc-Vce)/Ic - Rc\n",
+ "#S=delta Ic/delta B\n",
+ "Ic2=2.25 #in mA\n",
+ "Ic1=1.75 #in mA\n",
+ "B2=90.0\n",
+ "B1=36.0\n",
+ "\n",
+ "#Calculations\n",
+ "S=(Ic2-Ic1)/(B2-B1)\n",
+ "S2=(S*36*(1+90))/1.75\n",
+ "#S2=(1+B)*(1+(Rb/Re))/(1+B+(Rb/Re))\n",
+ "Rb=(S2-1)*(1+B2)*Re/(1+B2-S2);\n",
+ "Vbe=0.65 #in V\n",
+ "V = Vbe + ((Rb+Re*(1+B1))*Ic1/B1);\n",
+ "R1=Rb*Vcc/V\n",
+ "R2=R1*V/(Vcc-V)\n",
+ "\n",
+ "#Results\n",
+ "print(\"S2 = %.2f K \" %S2)\n",
+ "print(\"Re = is %.2f B2=90 \" %Re)\n",
+ "print(\"Rb= %.2f K \" %Rb)\n",
+ "print(\"V = %.2f Volts \" %V)\n",
+ "print(\"R1= %.2f K \" %R1)\n",
+ "print(\"R2= %.2f K \" %R2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "S2 = 17.33 K \n",
+ "Re = is 1.00 B2=90 \n",
+ "Rb= 20.18 K \n",
+ "V = 3.43 Volts \n",
+ "R1= 117.67 K \n",
+ "R2= 24.35 K \n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3a Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "Re=4.7 #in K\n",
+ "Rb=7.75 #in K\n",
+ "B1=55.0 #/beta at 25degree C\n",
+ "Ic1=1.5 #in mA\n",
+ "Ico1=1.0\n",
+ "Vbe1=0.6 #in V\n",
+ "\n",
+ "#Part a\n",
+ "\n",
+ "Ico2=33000.0 #in nA\n",
+ "Vbe2=0.225 #in V\n",
+ "\n",
+ "#Calculations\n",
+ "M1=1/(1+(Rb/(Re*B1))) #Stability Factor\n",
+ "B2=100.0 #at 175degree C\n",
+ "M2=1/(1+(Rb/(Re*B2))) #Stability Factor\n",
+ "\n",
+ "print(\"Stabitity Factor at 25deree C= %.2f \" %M1)\n",
+ "print(\"Stabitity Factor at 175deree C= %.2f \" %M2)\n",
+ "\n",
+ "if M2>M1 :\n",
+ " M1=1.0\n",
+ " M2=1.0\n",
+ "\n",
+ "\n",
+ "#Let k = (delta Ic)/(Ic1)\n",
+ "k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));\n",
+ "deltaIc=k*Ic1\n",
+ "print(\"Change in Collector Current at 175degree C is = %.2f mA\" %deltaIc)\n",
+ "\n",
+ "\n",
+ "#Given Data at -65degree C\n",
+ "Ico2=1.95*(10**-3)\n",
+ "B2=25.0\n",
+ "Vbe2=0.78\n",
+ "\n",
+ "M2=1/(1+(Rb/(Re*B2))) #Stability Factor\n",
+ "print(\"Stabitity Factor at -65deree C= %.2f \" %M2)\n",
+ " \n",
+ "#Let k = (delta Ic)/(Ic1)\n",
+ "k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1))\n",
+ "deltaIc=k*Ic1\n",
+ "\n",
+ "#Results\n",
+ "print(\"Change in Collector Current at -65degree C is = %.2f mA\" %deltaIc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stabitity Factor at 25deree C= 0.97 \n",
+ "Stabitity Factor at 175deree C= 0.98 \n",
+ "Change in Collector Current at 175degree C is = 0.11 mA\n",
+ "Stabitity Factor at -65deree C= 0.94 \n",
+ "Change in Collector Current at -65degree C is = -0.12 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.3b, Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "Re=4.7 #in K\n",
+ "Rb=7.75 #in K\n",
+ "B1=55.0 #/beta at 25degree C\n",
+ "Ic1=1.5 #in mA\n",
+ "Ico1=1.0\n",
+ "Vbe1=0.6 #in V\n",
+ "\n",
+ "\n",
+ "#Part a\n",
+ "\n",
+ "Ico2=33000.0 #in nA\n",
+ "Vbe2=0.225 #in V\n",
+ "\n",
+ "#Calculations\n",
+ "M1=1/(1+(Rb/(Re*B1))) #Stability Factor\n",
+ "#Given Data at -65degree C\n",
+ "Ico2=1.95*(10**-3)\n",
+ "B2=25.0 #at -65degree C\n",
+ "Vbe2=0.78\n",
+ "M2=1/(1+(Rb/(Re*B2))) #Stability Factor\n",
+ "\n",
+ "#Let k = (delta Ic)/(Ic1)\n",
+ "k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));\n",
+ "deltaIc=k*Ic1\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Given Data\n",
+ "Ico2=32.0 #in nA\n",
+ "Vbe2=0.10 #in V\n",
+ "M1=1/(1+(Rb/(Re*B1))) #Stability Factor\n",
+ "print(\"Stabitity Factor at 25deree C= %.2f \" %M1)\n",
+ "B2=90.0 #at 175degree C\n",
+ "M2=1/(1+(Rb/(Re*B2))) #Stability Factor\n",
+ "print(\"Stabitity Factor at 75deree C= %.2f \" %M2)\n",
+ "\n",
+ "if M2>M1 :\n",
+ " M1=1.0\n",
+ " M2=1.0\n",
+ "\n",
+ "#Let k = (delta Ic)/(Ic1)\n",
+ "k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));\n",
+ "deltaIc=k*Ic1\n",
+ "print(\"Change in Collector Current at 75degree C is = %.2f mA\" %deltaIc)\n",
+ "\n",
+ "#Given Data at -65degree C\n",
+ "Ico2=1.95*(10**-3)\n",
+ "B2=20.0\n",
+ "Vbe2=0.38\n",
+ "\n",
+ "M2=1/(1+(Rb/(Re*B2))) #Stability Factor\n",
+ "print(\"Stabitity Factor at -65deree C= %.2f \" %M2)\n",
+ " \n",
+ " \n",
+ "#Let k = (delta Ic)/(Ic1)\n",
+ "k=(1+(Rb/Re))*(M1*(Ico2-Ico1)*(10**-9)/Ic1*(10**-3))-(M1*(Vbe2-Vbe1)/(Ic1*Re))+(1+(Rb/Re))*(M2*(B2-B1)/(B2*B1));\n",
+ "deltaIc=k*Ic1\n",
+ "print(\"Change in Collector Current at -65degree C is = %.2f mA\" %deltaIc)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Stabitity Factor at 25deree C= 0.97 \n",
+ "Stabitity Factor at 75deree C= 0.98 \n",
+ "Change in Collector Current at 75degree C is = 0.13 mA\n",
+ "Stabitity Factor at -65deree C= 0.92 \n",
+ "Change in Collector Current at -65degree C is = -0.07 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 Page No 71"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "\n",
+ "B1=150.0 #beta\n",
+ "Ico1=50.0 #in nA\n",
+ "\n",
+ "#Given Data at 65degree C\n",
+ "B2=1200.0 #beta\n",
+ "Ico2=3.0 #in micro A\n",
+ "\n",
+ "Vbe=0.65 #in mV\n",
+ "Vcc=20.0 #in V\n",
+ "M=1.0 \n",
+ "#Assumption: Each factor Ico,B, and Vbe cuses the same percentge change(5%)\n",
+ "\n",
+ "#Let Rb/Re=k\n",
+ "#(1+k)*((1200-150)/(1200*150))=0.05\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "k=((0.05)*((1200*150)/(1200-150)))-1\n",
+ "print(\"Rb/Re = %.2f \" %k)\n",
+ "#Let us check our assumption\n",
+ "\n",
+ "if M>(1.0/(1+(k/B1))) :\n",
+ " M=1.0\n",
+ "\n",
+ "#(1+(Rb/Re))*((Ico2-Ico1)/Ic1)=0.05 Since Ico2>>Ico1, we consider only Ico2\n",
+ "\n",
+ "Ic1=((1+k)*Ico2)/(0.05*1000)\n",
+ "print(\"Ic1= %.2f mA \" %Ic1)\n",
+ "\n",
+ "#Vbe changes 2.5mV/degree\n",
+ "DVbe=2.5*40\n",
+ "#Total increment\n",
+ "dVbe=2*DVbe*(10**-3)\n",
+ "\n",
+ "#Let l=(Ic1*Re)\n",
+ "l=dVbe/0.05\n",
+ "\n",
+ "Re=l/Ic1\n",
+ "print(\"Re= %.2f \" %Re)\n",
+ "Rb=k*Re\n",
+ "print(\"Rb= %.2f \" %Rb)\n",
+ "\n",
+ "B=(B1+B2)/2 #beta\n",
+ "V=((Ic1/B)*Rb)+(Vbe)+(((Ic1/B)+Ic1)*Re)\n",
+ "print(\"V= %.2f Volts\" %V)\n",
+ "R1=(Rb*Vcc)/V\n",
+ "R2=(R1*V)/(Vcc-V)\n",
+ "\n",
+ "#Results\n",
+ "print(\"R1= %.2f ohm\" %R1)\n",
+ "print(\"R2= %.2f ohm\" %R2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Rb/Re = 7.55 \n",
+ "Ic1= 0.51 mA \n",
+ "Re= 7.80 \n",
+ "Rb= 58.87 \n",
+ "V= 4.70 Volts\n",
+ "R1= 250.47 ohm\n",
+ "R2= 76.96 ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page No 78"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "\n",
+ "Vcc=30.0 #in V\n",
+ "Rc=2.0 #in K\n",
+ "Re=4.7 #in K\n",
+ "Ic=1.5 #in mA\n",
+ "\n",
+ "#We know that dPc/dIc = Vcc - (2*Ic*(Rc+Re))\n",
+ "#Let D=dPc/dIc\n",
+ "\n",
+ "D = Vcc - (2*Ic*(Re+Rc))\n",
+ "\n",
+ "print('Ic increases by 0.131mA over a temprature range of 35 to 75 degree C')\n",
+ "print('theta<(A=(dPc/dIc)*(dIc/dTc))')\n",
+ "A=D*((0.131*(10^-3))/(75-25))\n",
+ "\n",
+ "#Results\n",
+ "print(\"theta< %.2f degreeC/W \" %(1.0/A))\n",
+ "print('The upper bound on theta is so high that transistor would not violate it and therefore circuit will be safe from thermal runaway')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ic increases by 0.131mA over a temprature range of 35 to 75 degree C\n",
+ "theta<(A=(dPc/dIc)*(dIc/dTc))\n",
+ "theta< -4.28 degreeC/W \n",
+ "The upper bound on theta is so high that transistor would not violate it and therefore circuit will be safe from thermal runaway\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6a, Page No 79 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=100.0 #beta\n",
+ "Ico=-5.0 #in mA\n",
+ "Ic=-1.0 #in mA\n",
+ "Vcc=40.0 \n",
+ "Re=5.0 #in ohm\n",
+ "Rc=10.0 #in ohm\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "#Ic= BIb + (1+B)*Ico\n",
+ "#Ic=B(Ib+Ico)\n",
+ "Ib=-(Ic/B)+Ico\n",
+ "\n",
+ "print(\"Ib= %.2f mA \" %Ib)\n",
+ "#Neglecting Vbe\n",
+ "Rb=(5-Vcc)/(Ib*0.001)\n",
+ "print(\"Rb= %.2f ohm \" %Rb)\n",
+ "\n",
+ "Vce=Vcc-15\n",
+ "if Vce>(Vcc/2) :\n",
+ " S=(1+B)*(1+(Rb/Re))/(1+B+(Rb/Re))\n",
+ " print(\"Stability Factor is= %.2f \" %S)\n",
+ "\n",
+ "A=-(Vcc+(2*Ic*(Re+Rc)))*(S)*(0.007*Ico*0.01)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"theta< %.2f degreeC/W \" %(1.0/A))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ib= -4.99 mA \n",
+ "Rb= 7014.03 ohm \n",
+ "Stability Factor is= 94.28 \n",
+ "theta< 3.03 degreeC/W \n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6b Page No 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "\n",
+ "#initialisation of variables\n",
+ "B=100.0 #beta\n",
+ "Ico=-5.0 #in mA\n",
+ "Ic=-1.0 #in mA\n",
+ "Vcc=40.0 \n",
+ "Re=5.0 #in ohm\n",
+ "Rc=10.0 #in ohm\n",
+ "\n",
+ "#Calculations\n",
+ "#Ic= BIb + (1+B)*Ico\n",
+ "#Ic=B(Ib+Ico)\n",
+ "Ib=-(Ic/B)+Ico\n",
+ "\n",
+ "#Neglecting Vbe\n",
+ "Rb=(5-Vcc)/(Ib*0.001)\n",
+ "\n",
+ "Vce=Vcc-15\n",
+ "if Vce>(Vcc/2) :\n",
+ " S=(1+B)*(1+(Rb/Re))/(1+B+(Rb/Re))\n",
+ " print(\"Stability Factor is= %.2f \" %S)\n",
+ "\n",
+ "A=-(Vcc+(2*Ic*(Re+Rc)))*(S)*(0.007*Ico*0.01)\n",
+ "\n",
+ "\n",
+ "#Results\n",
+ "print(\"theta< %.2f degreeC/W \" %(1.0/A))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ib= -4.99 mA \n",
+ "Rb= 7014.03 ohm \n",
+ "Stability Factor is= 94.28 \n",
+ "theta< 3.03 degreeC/W \n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/Sashankkonete/Chapter1.ipynb b/sample_notebooks/Sashankkonete/Chapter1.ipynb
new file mode 100755
index 00000000..75a00457
--- /dev/null
+++ b/sample_notebooks/Sashankkonete/Chapter1.ipynb
@@ -0,0 +1,458 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:edfd4792836df6190ed0a8d87ba87b2a1115c66d7d1cb21a33ed50c25e8f72b5"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 - Electric drives"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1 - pg 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Total annual cost in both cases\n",
+ "#Initialization of variables\n",
+ "C_g=60000.;#in Rs\n",
+ "C_id=18750*10;#in Rs\n",
+ "E_c=75000;#in kWh\n",
+ "E_a=60000;#in kWh\n",
+ "#Calculations\n",
+ "D=0.12*C_g;#in Rs\n",
+ "C_e=4*E_c;#in Rs\n",
+ "C_t=D+C_e;#in Rs\n",
+ "AD=0.15*C_id;#in Rs\n",
+ "C_ea=4*E_a;#in Rs\n",
+ "C_total=AD+C_ea;#in Rs\n",
+ "#Results\n",
+ "print 'Total annual cost in case of group drive (in Rs)=',C_t\n",
+ "print 'Total annual cost in case of individual drive (in Rs)=',C_total"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total annual cost in case of group drive (in Rs)= 307200.0\n",
+ "Total annual cost in case of individual drive (in Rs)= 268125.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2 - pg 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the stable operating point\n",
+ "import math\n",
+ "#Initialization of variables\n",
+ "a=1;\n",
+ "b=1;\n",
+ "c=-30;\n",
+ "#Calculations\n",
+ "w_m=(-b+math.sqrt((b**2)-4*a*c))/(2*a);#speed of the drive\n",
+ "t_l=0.5*(w_m**2);#motoring torqe \n",
+ "#Results\n",
+ "print 'stable operating point=',w_m,t_l"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "stable operating point= 5.0 12.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3 - pg 18"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the power developed by the motor\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "J_m=0.4;#motor inertia(in Kg-m2)\n",
+ "J_l=10.;#load inertia(in Kg-m2)\n",
+ "a=0.1;#Teeth ratio of gear\n",
+ "i=1./a;\n",
+ "N=1400.;\n",
+ "pi=22./7.;\n",
+ "n=0.90;#efficency of motor\n",
+ "T_l=50.;#Torque(N-m)\n",
+ "#Calculations\n",
+ "J=J_m+J_l/(i**2);#Total moment of inertia referred to the motor shaft\n",
+ "T_L=T_l/(i*n);#total equivalent torque referref to motor shaft\n",
+ "P=T_L*2*pi*N/60.;#power developed by motor\n",
+ "#Results\n",
+ "print 'power developed by motor(in Watt)=',math.ceil(P)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "power developed by motor(in Watt)= 815.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4 - pg 19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the total torque and power developed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "J_m=0.4;#motor inertia(in Kg-m2)\n",
+ "J_l=10;#load inertia(in Kg-m2)\n",
+ "a=0.1;#Teeth ratio of gear\n",
+ "N=1500.;\n",
+ "n_t=0.88;\n",
+ "m=600.;#weight\n",
+ "g=9.81;\n",
+ "#Calculations\n",
+ "f_r=m*g;#force\n",
+ "w_m=2*math.pi*N/60.;#motor speed\n",
+ "w=2.;#uniform speed of weight lifting\n",
+ "n=0.9;#efficency of motor\n",
+ "T_l=50;#Torque(N-m)\n",
+ "J=J_m+(a**2)*J_l+m*((w/w_m)**2);#Total moment of inertia referred to the motor shaft\n",
+ "T_L=(a*T_l/n)+f_r*w/(n_t*w_m) ;#total equivalent torque referred to motor shaft\n",
+ "p=T_L*w_m;#power developed by motor(in Watt)\n",
+ "P=p/1000.;#power developed by motor(in kWatt)\n",
+ "#Results\n",
+ "print 'Total torque referred to motor shaft(in kg-m2)=',round(J,2)\n",
+ "print 'Total equivalent Torque referred to motor shaft(in N-m)=',round(T_L,2)\n",
+ "print 'power developed by motor(in kWatt)=',round(P,2)\n",
+ "print 'The answers are a bit different from textbook due to rounding off error'"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total torque referred to motor shaft(in kg-m2)= 0.6\n",
+ "Total equivalent Torque referred to motor shaft(in N-m)= 90.72\n",
+ "power developed by motor(in kWatt)= 14.25\n",
+ "The answers are a bit different from textbook due to rounding off error\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5 - pg 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Motor Speed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "from math import ceil\n",
+ "V=220.;#in volts\n",
+ "V_1=200.;#in volts\n",
+ "N=1000.;#in rpm\n",
+ "I=100.;#in amperes\n",
+ "R_a=0.1;#in ohms\n",
+ "#Calculations\n",
+ "E_b=V-I*R_a;#in volts\n",
+ "I_1=I;#in amperes\n",
+ "E_b1=V_1-I_1*R_a;#in volts\n",
+ "N_1=N*E_b1/E_b;\n",
+ "#Results\n",
+ "print 'Motor Speed (in rpm)=',ceil(N_1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Motor Speed (in rpm)= 905.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6 - pg 50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the full load Speed and Torque\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "from math import ceil\n",
+ "V=230;#in volts\n",
+ "R_sh=230;#in ohms\n",
+ "R_a=0.5;#in ohms\n",
+ "I_sh=V/R_sh;#in amperes\n",
+ "#Calculations\n",
+ "I_lo=3;#in amperes\n",
+ "I_ao=I_lo-I_sh;#in amperes\n",
+ "E_bo=V-I_ao*R_a;#in volts\n",
+ "N_o=1000;#in rpm\n",
+ "I_lf=23;#in amperes\n",
+ "I_af=I_lf-I_sh;#in amperes\n",
+ "E_bf=V-I_af*R_a;#in volts\n",
+ "Phy_ratio=0.98;\n",
+ "N_f=N_o*(E_bf/E_bo)/Phy_ratio;\n",
+ "T_f=9.55*E_bf*I_af/N_f;\n",
+ "#Results\n",
+ "print 'Full Load Speed (in rpm)=',ceil(N_f)\n",
+ "print 'Full load Torque (in Newton-meter)=',round(T_f,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full Load Speed (in rpm)= 976.0\n",
+ "Full load Torque (in Newton-meter)= 47.15\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7 - pg 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Armature voltage drop at full load\n",
+ "#Initialization of variables\n",
+ "V=440.;#in volts\n",
+ "N_o=2000.;#in rpm\n",
+ "E_bo=440.;#in volts\n",
+ "N_f=1000.;#in rpm\n",
+ "N_h=1050.;#in rpm\n",
+ "#Calculations\n",
+ "E_bf=E_bo*N_f/N_o#in volts\n",
+ "E_b=E_bo*N_h/N_o;#in volts\n",
+ "v=(E_b-E_bf)*2;\n",
+ "#Results\n",
+ "print 'Armature voltage drop at full load (in volts)=',v"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Armature voltage drop at full load (in volts)= 22.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8 - pg 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Speed\n",
+ "#Initialization of variables\n",
+ "V=230.;#in volts\n",
+ "N1=750.;#in rpm\n",
+ "R=10.;#in ohms\n",
+ "I_a=30.;#in amperes\n",
+ "#Calculations\n",
+ "N2=N1*((V+I_a*R)/V)**-1;\n",
+ "#Results\n",
+ "print'Speed (in rpm)=',int(N2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed (in rpm)= 325\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9 - pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Speed in both cases\n",
+ "import math\n",
+ "from math import ceil\n",
+ "#Initialization of variables\n",
+ "V=200.;#in volts\n",
+ "I_1=20.#in amperes\n",
+ "R_a=0.5;#in ohms\n",
+ "#Calculations\n",
+ "E_b1=V-I_1*R_a;#in volts\n",
+ "N1=700;#in rpm\n",
+ "I_2=math.sqrt(1.44)*I_1;#in amperes\n",
+ "E_b2=V-I_2*R_a;#in volts\n",
+ "N2=N1*(E_b2/E_b1)*(I_1/I_2);\n",
+ "I_3=10;#in amperes\n",
+ "E_b3=V-I_3*R_a;#in volts\n",
+ "N3=N1*(E_b3/E_b1)*(I_1/I_3);\n",
+ "#Results\n",
+ "print '(a) Speed (in rpm)=',round(N2,1)\n",
+ "print '(b) Speed (in rpm)=',ceil(N3)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(a) Speed (in rpm)= 577.2\n",
+ "(b) Speed (in rpm)= 1437.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10 - pg 52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#calculate the Torque and Speed\n",
+ "#Initialization of variables\n",
+ "import math\n",
+ "from math import ceil\n",
+ "V=230.;#in volts\n",
+ "I_1=90.;#in amperes\n",
+ "R_a=0.08;#in ohms\n",
+ "R_se=0.05;#in ohms\n",
+ "E_2=180.;#in volts\n",
+ "N2=700.;#in rpm\n",
+ "R=1.5;#in ohms\n",
+ "#Calculations\n",
+ "R_m=R_a+R_se;#in ohms\n",
+ "E_b1=V-I_1*(R_m+R);#in volts\n",
+ "N1=N2*(E_b1/E_2);\n",
+ "T=9.55*E_b1*I_1/N1;\n",
+ "#Results\n",
+ "print 'Speed (in rpm)=',ceil(N1)\n",
+ "print 'Torque (in Newton-meter)=',round(T,0)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Speed (in rpm)= 324.0\n",
+ "Torque (in Newton-meter)= 221.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/SauravSuman/Chapter_1.ipynb b/sample_notebooks/SauravSuman/Chapter_1.ipynb
new file mode 100755
index 00000000..190fe03a
--- /dev/null
+++ b/sample_notebooks/SauravSuman/Chapter_1.ipynb
@@ -0,0 +1,162 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#Chapter 1: Preliminaries"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 1.1, Rounding off Numbers, Page no. 2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "81.9773 becomes 81.98\n",
+ "\n",
+ "\n",
+ "48.365 becomes 48.37\n",
+ "\n",
+ "\n",
+ "21.385 becomes 21.39\n",
+ "\n",
+ "\n",
+ "12.865 becomes 12.87\n",
+ "\n",
+ "\n",
+ "27.553 becomes 27.55\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "#variable declaration\n",
+ "a=[81.9773,48.365,21.385,12.865,27.553]\n",
+ "\n",
+ "#calculation and result\n",
+ "for i in xrange (0,5):\n",
+ " print '\\n%s becomes %.2f\\n' %(a[i],a[i])\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 1.2, Relative Maximum Error, Page no. 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "Maximum Error = 0.030\n",
+ "\n",
+ "Relative maximum error = 0.006\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ " \n",
+ "#variable declaration\n",
+ "h=0.001;\n",
+ "x=1;y=1;z=1;dx=0.001;dy=0.001;dz=0.001;\n",
+ "def f(x,y,z):\n",
+ " return (5*x*y**2)/z**3\n",
+ "\n",
+ "#calculation\n",
+ "du=abs(f(x+h,y,z)-f(x,y,z))*dx+abs(f(x,y+h,z)-f(x,y,z))*dy+abs(f(x,y,z+h)-f(x,y,z))*dz;\n",
+ "du=du/h;\n",
+ "Er=du/f(x,y,z)\n",
+ "\n",
+ "#result\n",
+ "print '\\nMaximum Error = %.3f\\n\\nRelative maximum error = %.3f' %(du,Er)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 1.3, Absolute Error, Page no. 6"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "Maximum Absolute Error of a+b+c+d = 600.050200\n",
+ "\n",
+ "\n",
+ "Maximum Absolute Error of c^3 = -172.000000\n"
+ ]
+ }
+ ],
+ "source": [
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=10;b=0.0356;c=15300;d=62000;\n",
+ "ea=0.05;eb=0.0002;ec=100;ed=500;\n",
+ "\n",
+ "#Calculation\n",
+ "e=ea+eb+ec+ed;\n",
+ "E=(c+2*ec)^3-(c+ec)^3\n",
+ "\n",
+ "#result\n",
+ "print '\\nMaximum Absolute Error of a+b+c+d = %f\\n' %e\n",
+ "print '\\nMaximum Absolute Error of c^3 = %f' %E\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/sample_notebooks/ShriniwasSabban/Chapter2.ipynb b/sample_notebooks/ShriniwasSabban/Chapter2.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/sample_notebooks/ShriniwasSabban/Chapter2.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ShriniwasSabban/Chapter2_1.ipynb b/sample_notebooks/ShriniwasSabban/Chapter2_1.ipynb
new file mode 100755
index 00000000..1872c9f4
--- /dev/null
+++ b/sample_notebooks/ShriniwasSabban/Chapter2_1.ipynb
@@ -0,0 +1,233 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 02 : Power Semiconductor Diodes and Transistors"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1, Page No 21"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "B=40.0\n",
+ "R_c=10 #ohm\n",
+ "V_cc=130.0 #V\n",
+ "V_B=10.0 #V\n",
+ "V_CES=1.0 #V\n",
+ "V_BES=1.5 #V\n",
+ "\n",
+ "#Calculations\n",
+ "I_CS=(V_cc-V_CES)/R_c #A\n",
+ "I_BS=I_CS/B #A\n",
+ "R_B1=(V_B-V_BES)/I_BS\n",
+ "P_T1=V_BES*I_BS+V_CES*I_CS\n",
+ "ODF=5\n",
+ "I_B=ODF*I_BS\n",
+ "R_B2=(V_B-V_BES)/I_B\n",
+ "P_T2=V_BES*I_B+V_CES*I_CS\n",
+ "B_f=I_CS/I_B\n",
+ "\n",
+ "#Results\n",
+ "print(\"value of R_B in saturated state= %.2f ohm\" %R_B1)\n",
+ "print(\"Power loss in transistor=%.2f W\" %P_T1)\n",
+ "print(\"Value of R_B for an overdrive factor 5 = %.2f ohm\" %R_B2)\n",
+ "print(\"Power loss in transistor = %.2f W\" %P_T2)\n",
+ "print(\"Forced current gain=%.0f\" %B_f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "value of R_B in saturated state= 26.36 ohm\n",
+ "Power loss in transistor=13.38 W\n",
+ "Value of R_B for an overdrive factor 5 = 5.27 ohm\n",
+ "Power loss in transistor = 15.32 W\n",
+ "Forced current gain=8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.2, Page No 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220.0 #V\n",
+ "P_dt=I_CEO*V_CC #instant. power loss during delay time\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "P_d=f*I_CEO*V_CC*t_d #avg power loss during delay time\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "\n",
+ "#Calculations\n",
+ "P_r=f*I_CS*t_r*(V_CC/2-(V_CC-V_CES)/3) #avg power loss during rise time\n",
+ "t_m=V_CC*t_r/(2*(V_CC-V_CES))\n",
+ "P_rm=I_CS*V_CC**2/(4*(V_CC-V_CES)) #instant. power loss during rise time\n",
+ "\n",
+ "#Results\n",
+ "P_on=P_d+P_r \n",
+ "print(\"Avg power loss during turn on = %.2f W\" %P_on)\n",
+ "P_nt=I_CS*V_CES \n",
+ "print(\"Instantaneous power loss during turn on = %.0f W\" %P_nt)\n",
+ "t_n=50*10**-6\n",
+ "P_n=f*I_CS*V_CES*t_n\n",
+ "print(\"Avg power loss during conduction period = %.0f W\" %P_n)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Avg power loss during turn on = 14.93 W\n",
+ "Instantaneous power loss during turn on = 160 W\n",
+ "Avg power loss during conduction period = 40 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.3 Page No 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "\n",
+ "#initialisation of variables\n",
+ "I_CEO=2*10**-3 #A\n",
+ "V_CC=220 #V\n",
+ "t_d=.4*10**-6 #s\n",
+ "f=5000\n",
+ "V_CES=2 #V\n",
+ "t_r=1*10**-6 #s\n",
+ "I_CS=80 #A\n",
+ "t_n=50*10**-6 #s\n",
+ "t_0=40*10**-6 #s\n",
+ "t_f=3*10**-6 #s\n",
+ "\n",
+ "#Calculations\n",
+ "P_st=I_CS*V_CES # instant. power loss during t_s\n",
+ "P_s=f*I_CS*V_CES*t_f #avg power loss during t_s\n",
+ "P_f=f*t_f*(I_CS/6)*(V_CC-V_CES) #avg power loss during fall time\n",
+ "P_fm=(I_CS/4)*(V_CC-V_CES) #peak instant power dissipation\n",
+ "P_off=P_s+P_f\n",
+ "\n",
+ "#Results\n",
+ "print(\"Total avg power loss during turn off = %.2f W\" %P_off)\n",
+ "P_0t=I_CEO*V_CC\n",
+ "print(\"Instantaneous power loss during t_0 = %.2f W\" %P_0t)\n",
+ "P_0=f*I_CEO*V_CC*t_0 #avg power loss during t_s\n",
+ "P_on=14.9339 #W from previous eg\n",
+ "P_n=40 #W from previous eg\n",
+ "P_T=P_on+P_n+P_off+P_0 \n",
+ "print(\"Total power loss = %.2f W\" %P_T)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total avg power loss during turn off = 44.91 W\n",
+ "Instantaneous power loss during t_0 = 0.44 W\n",
+ "Total power loss = 99.93 W\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4, Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#initialisation of variables\n",
+ "I_CS=100.0 \n",
+ "V_CC=200.0 \n",
+ "t_on=40*10**-6\n",
+ "\n",
+ "#Calculations\n",
+ "P_on=(I_CS/50)*10**6*t_on*(V_CC*t_on/2-(V_CC*10**6*t_on**2/(40*3))) #energy during turn on\n",
+ "t_off=60*10**-6\n",
+ "P_off=(I_CS*t_off/2-(I_CS/60)*10**6*(t_off**2)/3)*((V_CC/75)*10**6*t_off) #energy during turn off\n",
+ "P_t=P_on+P_off #total energy\n",
+ "P_avg=300.0\n",
+ "f=P_avg/P_t\n",
+ "\n",
+ "#Results\n",
+ "print(\"Allowable switching frequency = %.2f Hz\" %f)\n",
+ "#in book ans is: f=1123.6 Hz. The difference in results due to difference in rounding of of digits"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Allowable switching frequency = 1125.00 Hz\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ShubhamRungta/Chapter2.ipynb b/sample_notebooks/ShubhamRungta/Chapter2.ipynb
new file mode 100755
index 00000000..b9dc8563
--- /dev/null
+++ b/sample_notebooks/ShubhamRungta/Chapter2.ipynb
@@ -0,0 +1,228 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cba451428c3d9c574800bbc1429b7e9efcd18af4b82f735faf4ac85b4ea52c65"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter02:The 741 IC OP-AMP"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.1:Pg-80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 2.1\n",
+ "\n",
+ "# data from fig of Ex2.1\n",
+ "VCC=5.0;#V\n",
+ "IS=10**-14.0;#A\n",
+ "RS=39*1000.0;#ohm\n",
+ "VBE12=0.7;#V(Assumed)\n",
+ "VBE11=0.7;#V(Assumed)\n",
+ "VEE=-5;#V\n",
+ "IREF=(VCC-VBE12-VBE11-VEE)/RS*10**6;#micro A\n",
+ "print \"Estimated input reference current , IREF(micro A)\",round(IREF,2)\n",
+ "VT=25*10**-3;#V(Thermal Voltage)\n",
+ "VBE=VT*log(IREF*10**-6/IS);#V\n",
+ "IREF=(VCC-VBE-VBE-VEE)/RS*10**6;#micro A\n",
+ "print \"More precise value of reference current , IREF(micro A)\",round(IREF,2)\n",
+ "#Replacing Vcc by 15 V in the original design\n",
+ "VCC2=15.0;#V\n",
+ "VEE2=-15.0;#V\n",
+ "IREF=(VCC2-VBE-VBE-VEE2)/RS*10**6;#micro A\n",
+ "VBE=VT*log(IREF*10**-6/IS);#V\n",
+ "R5=(VCC-VBE-VBE-VEE)/(IREF*10**-6);#ohm\n",
+ "R5=round(R5/1000);#kohm\n",
+ "print \"Value of R5(kohm) : \",R5"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Estimated input reference current , IREF(micro A) 220.51\n",
+ "More precise value of reference current , IREF(micro A) 225.88\n",
+ "Value of R5(kohm) : 12.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.2:Pg-81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 2.2\n",
+ "import math\n",
+ "# data from fig of Ex2.2\n",
+ "IC10=20*10**-6;#A\n",
+ "IREF=0.5*10**-3;#A\n",
+ "IS=10**-14;#A\n",
+ "VT=25*10**-3;#V(Thermal Voltage)\n",
+ "R4=VT/IC10*math.log(IREF/IC10);#ohm\n",
+ "print \"For Widlar current source design, the value of R4(kohm) : \",round(R4/1000,2)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For Widlar current source design, the value of R4(kohm) : 4.02\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.3:Pg-82"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 2.3\n",
+ "\n",
+ "import math\n",
+ "# given data\n",
+ "Gm1=10.0;#mA/V\n",
+ "Gm1=Gm1/1000;#A/V\n",
+ "Cc=50.0;#pF\n",
+ "Cc=Cc*10**-12;#F\n",
+ "Rt=10**8;#ohm(Shunting resistance with Cc)\n",
+ " # solution\n",
+ "Ao=Gm1*Rt;#unitless\n",
+ "fp=1/(2*math.pi*Rt*Cc);#Hz\n",
+ "ft=Gm1/(2*math.pi*Cc)/10**6;#MHz\n",
+ "print \"Frequency at which gain is maximum, fp in Hz\",round(fp,1)\n",
+ "print \"Unit gain frequency, ft(MHz)\",round(ft,1)\n",
+ "#Bode plot can not be plotted with the given data in the question by using python functions. \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Frequency at which gain is maximum, fp in Hz 31.8\n",
+ "Unit gain frequency, ft(MHz) 31.8\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.4:Pg-83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 2.4\n",
+ "\n",
+ "import math\n",
+ "# given data\n",
+ "SR=10.0/10**-6;#V/s\n",
+ "Vout=10.0;#V(magnitude of output voltage)\n",
+ "fm=SR/(2*math.pi*Vout)/1000;#kHz\n",
+ "print \"Full power bandwidth(kHz)\",round(fm,1)\n",
+ "VT=25.0/1000;#V(Thermal voltage)\n",
+ "ft=SR/(2*math.pi*4*VT)/10.0**6;#MHz\n",
+ "print \"Unity gain bandwidth(MHz)\",round(ft,1)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Full power bandwidth(kHz) 159.2\n",
+ "Unity gain bandwidth(MHz) 15.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2.5:Pg-84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Ex 2.5\n",
+ "\n",
+ "VCC=5;#V\n",
+ "VEE=-5;#V\n",
+ "VBE=0.6;#V\n",
+ "VCE23=0.6;#V\n",
+ "VCE_sat=0.2;#V\n",
+ "Vo_max=VCC-VCE_sat-VBE;#V\n",
+ "Vo_min=VEE+VCE_sat+VBE+VCE23;#V\n",
+ "print \"Maximum output voltage(V)\",round(Vo_max,2)\n",
+ "print \"Minimum output voltage(V)\",round(Vo_min,2)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum output voltage(V) 4.2\n",
+ "Minimum output voltage(V) -3.6\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up.ipynb b/sample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up.ipynb
new file mode 100755
index 00000000..d3bdda01
--- /dev/null
+++ b/sample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up.ipynb
@@ -0,0 +1,1779 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:64b755d597a2016634dadbbc81a598a60446119cc89f4f94fd9140b5bc077b77"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Object Initialization and clean up"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- bag.cpp, Page-392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX_ITEMS=25\n",
+ "def show(self):\n",
+ " for i in range(self.ItemCount):\n",
+ " print self._Bag__contents[i],\n",
+ "class Bag:\n",
+ " __contents=[int]*MAX_ITEMS\n",
+ " __ItemCount=int\n",
+ " def SetEmpty(self):\n",
+ " self.ItemCount=0\n",
+ " def put(self,item):\n",
+ " self._Bag__contents[self.ItemCount]=item\n",
+ " self.ItemCount+=1\n",
+ " show=show\n",
+ "bag=Bag() #object of class Bag\n",
+ "bag.SetEmpty() #initialize the object\n",
+ "while 1:\n",
+ " item=int(raw_input(\"\\nEnter Item Number to be put into the bag <0-no item>: \"))\n",
+ " if item==0:\n",
+ " break\n",
+ " bag.put(item)\n",
+ " print \"Items in bag:\",\n",
+ " bag.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Items in bag: 1"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2 4"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- newbag.cpp, Page-395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX_ITEMS=25 #size of array contents\n",
+ "def show(self):\n",
+ " for i in range(self.ItemCount):\n",
+ " print self._Bag__contents[i],\n",
+ "class Bag:\n",
+ " __contents=[int]*MAX_ITEMS #int 1D array\n",
+ " __ItemCount=int\n",
+ " def __init__(self): #Constructor\n",
+ " self.ItemCount=0\n",
+ " def put(self,item): #member function defined inside the class\n",
+ " self._Bag__contents[self.ItemCount]=item\n",
+ " self.ItemCount+=1\n",
+ " show=show #member function defined outside the class\n",
+ "bag=Bag() #object of class Bag\n",
+ "while 1:\n",
+ " item=int(raw_input(\"\\nEnter Item Number to be put into the bag <0-no item>: \"))\n",
+ " if item==0:\n",
+ " break\n",
+ " bag.put(item)\n",
+ " print \"Items in bag:\",\n",
+ " bag.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Items in bag: 1"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2 4"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-test1.cpp, Page-396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self):\n",
+ " print \"Constructor of class test called\"\n",
+ "class Test:\n",
+ " __init__=__init__ #Constructor\n",
+ "G=Test()\n",
+ "def func():\n",
+ " L=Test()\n",
+ " print \"Here's function func()\"\n",
+ "X=Test()\n",
+ "print \"main() function\"\n",
+ "func()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class test called\n",
+ "Constructor of class test called\n",
+ "main() function\n",
+ "Constructor of class test called\n",
+ "Here's function func()\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- giftbag.cpp, Page- 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX_ITEMS=25\n",
+ "def show(self):\n",
+ " if self.ItemCount:\n",
+ " for i in range(self.ItemCount):\n",
+ " print self._Bag__contents[i],\n",
+ " else:\n",
+ " print \"Nil\"\n",
+ "class Bag:\n",
+ " __contents=[int]*MAX_ITEMS\n",
+ " __ItemCount=int\n",
+ " def __init__(self, item=None): #parameterized constructor: Python does not support overloading of functions\n",
+ " if isinstance(item, int):\n",
+ " self._Bag__contents[0]=item\n",
+ " self.ItemCount=1\n",
+ " else:\n",
+ " self.ItemCount=0\n",
+ " def put(self,item):\n",
+ " self._Bag__contents[self.ItemCount]=item\n",
+ " self.ItemCount+=1\n",
+ " show=show\n",
+ "bag1=Bag()\n",
+ "bag2=Bag(4) #object created using the parameterized constructor\n",
+ "print \"Gifted bag1 initially has:\",\n",
+ "bag1.show()\n",
+ "print \"Gifted bag2 initially has:\",\n",
+ "bag2.show()\n",
+ "while 1:\n",
+ " item=int(raw_input(\"\\nEnter Item Number to be put into the bag <0-no item>: \"))\n",
+ " if item==0:\n",
+ " break\n",
+ " bag2.put(item)\n",
+ " print \"Items in bag2:\",\n",
+ " bag2.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gifted bag1 initially has: Nil\n",
+ "Gifted bag2 initially has: 4"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag2: 4 1"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag2: 4 1 2"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag2: 4 1 2 3"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-test.cpp, Page-400 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self):\n",
+ " print \"Constructor of class Test called\"\n",
+ "def __del__(self):\n",
+ " print \"Destructor of class Test called\"\n",
+ "class Test:\n",
+ " __init__=__init__ #Constructor\n",
+ " __del__=__del__ #Destructor\n",
+ "x=Test()\n",
+ "print \"Terminating main\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class Test called\n",
+ "Destructor of class Test called\n",
+ "Terminating main\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-count.cpp, Page-401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "nobjects=0\n",
+ "nobj_alive=0\n",
+ "class MyClass:\n",
+ " def __init__(self):\n",
+ " global nobjects #using the global nobjects\n",
+ " global nobj_alive #using the global nobj_alive\n",
+ " nobjects+=1\n",
+ " nobj_alive+=1\n",
+ " def __del__(self):\n",
+ " global nobj_alive #using the global nobjects\n",
+ " nobj_alive-=1\n",
+ " def show(self):\n",
+ " global nobjects\n",
+ " global nobj_alive\n",
+ " print \"Total number of objects created: \", nobjects\n",
+ " print \"Number of objects currently alive: \", nobj_alive\n",
+ "obj1=MyClass()\n",
+ "obj1.show()\n",
+ "def func():\n",
+ " obj1=MyClass()\n",
+ " obj2=MyClass()\n",
+ " obj2.show()\n",
+ " del obj1\n",
+ " del obj2\n",
+ "func()\n",
+ "obj1.show()\n",
+ "obj2=MyClass()\n",
+ "obj3=MyClass()\n",
+ "obj2.show()\n",
+ "del obj1\n",
+ "del obj2\n",
+ "del obj3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total number of objects created: 1\n",
+ "Number of objects currently alive: 1\n",
+ "Total number of objects created: 3\n",
+ "Number of objects currently alive: 3\n",
+ "Total number of objects created: 3\n",
+ "Number of objects currently alive: 1\n",
+ "Total number of objects created: 5\n",
+ "Number of objects currently alive: 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example-account.cpp, Page- 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def MoneyTransfer(self, acc , amount):\n",
+ " self._AccClass__balance=self._AccClass__balance-amount\n",
+ " acc._AccClass__balance=acc._AccClass__balance + amount\n",
+ "class AccClass:\n",
+ " __accno=int\n",
+ " __balance=float\n",
+ " def __init__(self, an=None, bal=0.0):\n",
+ " if isinstance(an, int):\n",
+ " self.accno=an\n",
+ " self.__balance=bal\n",
+ " else:\n",
+ " self.accno=raw_input(\"Enter account number for acc1 object: \")\n",
+ " self.__balance=float(raw_input(\"Enter the balance: \"))\n",
+ " def display(self):\n",
+ " print \"Acoount number is: \", self.accno\n",
+ " print \"Balance is: \", self.__balance\n",
+ " MoneyTransfer=MoneyTransfer\n",
+ "acc1=AccClass()\n",
+ "acc2=AccClass(10)\n",
+ "acc3=AccClass(20, 750.5)\n",
+ "print \"Acoount information...\"\n",
+ "acc1.display()\n",
+ "acc2.display()\n",
+ "acc3.display()\n",
+ "trans_money=float(raw_input(\"How much money is to be transferred from acc3 to acc1: \"))\n",
+ "acc3.MoneyTransfer(acc1, trans_money)\n",
+ "print \"Updated information about accounts...\"\n",
+ "acc1.display()\n",
+ "acc2.display()\n",
+ "acc3.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter account number for acc1 object: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the balance: 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Acoount information...\n",
+ "Acoount number is: 1\n",
+ "Balance is: 100.0\n",
+ "Acoount number is: 10\n",
+ "Balance is: 0.0\n",
+ "Acoount number is: 20\n",
+ "Balance is: 750.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How much money is to be transferred from acc3 to acc1: 200\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Updated information about accounts...\n",
+ "Acoount number is: 1\n",
+ "Balance is: 300.0\n",
+ "Acoount number is: 10\n",
+ "Balance is: 0.0\n",
+ "Acoount number is: 20\n",
+ "Balance is: 550.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-test2.cpp. Page- 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self, NameIn=None):\n",
+ " if isinstance(NameIn, str):\n",
+ " self.name=NameIn\n",
+ " print \"Test Object \", NameIn, \" created\"\n",
+ " else:\n",
+ " self.name=\"unnamed\"\n",
+ " print \"Test object 'unnamed' created\"\n",
+ "def __del__(self):\n",
+ " print \"Test Object \", self.name, \" destroyed\"\n",
+ " del self.name\n",
+ "class Test:\n",
+ " __name=[str]\n",
+ " __init__=__init__\n",
+ " __del__=__del__\n",
+ "g=Test(\"global\")\n",
+ "def func():\n",
+ " l=Test(\"func\")\n",
+ " print \"here's function func()\"\n",
+ "x=Test(\"main\")\n",
+ "func()\n",
+ "print \"main() function - termination\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Test Object global created\n",
+ "Test Object global destroyed\n",
+ "Test Object main created\n",
+ "Test Object main destroyed\n",
+ "Test Object func created\n",
+ "here's function func()\n",
+ "Test Object func destroyed\n",
+ "main() function - termination\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-complex1.cpp, Page- 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "def add (self, c2):\n",
+ " temp=Complex()\n",
+ " temp._Complex__real=self._Complex__real+c2._Complex__real\n",
+ " temp._Complex__imag=self._Complex__imag+c2._Complex__imag\n",
+ " return temp\n",
+ "class Complex:\n",
+ " __real=float\n",
+ " __imag=float\n",
+ " def __init__(self, real_in=None, imag_in=0.0):\n",
+ " if isinstance(real_in, float):\n",
+ " self.__real=real_in\n",
+ " self.__imag=imag_in\n",
+ " else:\n",
+ " self.__real=self.__imag=0.0\n",
+ " def show(self, msg):\n",
+ " print msg, \n",
+ " print self.__real,\n",
+ " if self.__imag<0:\n",
+ " print \"-i\",\n",
+ " else:\n",
+ " print \"+i\",\n",
+ " print math.fabs(self.__imag) #print absolute value\n",
+ " add=add\n",
+ "c1=Complex(1.5,2.0)\n",
+ "c2=Complex(2.2)\n",
+ "c3=Complex()\n",
+ "c1.show(\"c1=\")\n",
+ "c2.show(\"c2=\")\n",
+ "c3=c1.add(c2)\n",
+ "c3.show(\"c3=c1.add(c2):\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c1= 1.5 +i 2.0\n",
+ "c2= 2.2 +i 0.0\n",
+ "c3=c1.add(c2): 3.7 +i 2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- noname.cpp, Page- 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class nameless:\n",
+ " __a=int\n",
+ " def __init__(self):\n",
+ " print \"Constructor\"\n",
+ " def __del__(self):\n",
+ " print \"Destructor\"\n",
+ "nameless() #nameless object created\n",
+ "n1=nameless()\n",
+ "n2=nameless()\n",
+ "print \"Program terminates\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor\n",
+ "Destructor\n",
+ "Constructor\n",
+ "Destructor\n",
+ "Constructor\n",
+ "Destructor\n",
+ "Program terminates\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-name.cpp, Page-411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def show(self, msg):\n",
+ " print msg\n",
+ " print \"First Name: \", self._name__first\n",
+ " if self._name__middle[0]:\n",
+ " print \"Middle Name: \", self._name__middle\n",
+ " if self._name__last[0]:\n",
+ " print \"Last Name: \", self._name__last\n",
+ "class name:\n",
+ " __first=[None]*15\n",
+ " __middle=[None]*15\n",
+ " __last=[None]*15\n",
+ " def __init__(self, FirstName=None, MiddleName=None, LastName=None):\n",
+ " if isinstance(LastName, str):\n",
+ " self.__last=LastName\n",
+ " self.__middle=MiddleName\n",
+ " self.__first=FirstName\n",
+ " elif isinstance(MiddleName, str):\n",
+ " self.__middle=MiddleName\n",
+ " self.__first=FirstName\n",
+ " elif isinstance(FirstName, str):\n",
+ " self.__first=FirstName\n",
+ " else:\n",
+ " self.__last='\\0' #initialized to NULL\n",
+ " self.__middle='\\0'\n",
+ " self.__first='\\0'\n",
+ " show=show\n",
+ "n1=name()\n",
+ "n2=name()\n",
+ "n3=name()\n",
+ "n1=name(\"Rajkumar\")\n",
+ "n2=name(\"Savithri\", \"S\")\n",
+ "n3=name(\"Veugopal\", \"K\", \"R\")\n",
+ "n1.show(\"First prson details...\")\n",
+ "n2.show(\"Second prson details...\")\n",
+ "n3.show(\"Third prson details...\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First prson details...\n",
+ "First Name: Rajkumar\n",
+ "Second prson details...\n",
+ "First Name: Savithri\n",
+ "Middle Name: S\n",
+ "Third prson details...\n",
+ "First Name: Veugopal\n",
+ "Middle Name: K\n",
+ "Last Name: R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-vector1.cpp, Page-413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def read(self):\n",
+ " for i in range(self._vector__sz):\n",
+ " print \"Enter vector [\", i, \"]? \",\n",
+ " self._vector__v[i]=int(raw_input())\n",
+ "def show_sum(self):\n",
+ " Sum=0\n",
+ " for i in range(self._vector__sz):\n",
+ " Sum+=self._vector__v[i]\n",
+ " print \"Vector sum= \", Sum\n",
+ "class vector:\n",
+ " __v=[int] #array of type integer\n",
+ " __sz=int\n",
+ " def __init__(self, size):\n",
+ " self.__sz= size\n",
+ " self.__v=[int]*size #dynamically allocating size to integer array\n",
+ " def __del__(self):\n",
+ " del self.__v\n",
+ " read=read\n",
+ " show_sum=show_sum\n",
+ "count = int\n",
+ "count=int(raw_input(\"How many elements are there in the vector: \"))\n",
+ "v1= vector(count)\n",
+ "v1.read()\n",
+ "v1.show_sum()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many elements are there in the vector: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter vector [ 0 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 1 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 2 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 3 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 4 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Vector sum= 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-vector2.cpp, Page-415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def show(self):\n",
+ " for i in range(self._vector__size):\n",
+ " print self.elem(i), \", \",\n",
+ "class vector:\n",
+ " __v=[int]\n",
+ " __size=int\n",
+ " def __init__(self, vector_size):\n",
+ " if isinstance(vector_size, int):\n",
+ " self.__size= vector_size\n",
+ " self.__v=[int]*vector_size\n",
+ " else:\n",
+ " print \"Copy construcor invoked\"\n",
+ " self.__size=vector_size.__size\n",
+ " self.__v=[int]*vector_size.__size\n",
+ " for i in range(vector_size.__size):\n",
+ " self.__v[i]=vector_size.__v[i]\n",
+ " def elem(self,i):\n",
+ " if i>=self.__size:\n",
+ " print \"Error: Out of Range\"\n",
+ " return -1\n",
+ " return self.__v[i]\n",
+ " def __del__(self):\n",
+ " del self.__v\n",
+ " show=show\n",
+ "v1=vector(5)\n",
+ "v2=vector(5)\n",
+ "for i in range(5):\n",
+ " if v2.elem(i)!=-1:\n",
+ " v2._vector__v[i]=i+1\n",
+ "v1=v2\n",
+ "v3=vector(v2)\n",
+ "print \"Vector v1: \",\n",
+ "v1.show()\n",
+ "print \"\\nvector v2: \",\n",
+ "v2.show()\n",
+ "print \"\\nvector v3: \",\n",
+ "v3.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Copy construcor invoked\n",
+ "Vector v1: 1 , 2 , 3 , 4 , 5 , \n",
+ "vector v2: 1 , 2 , 3 , 4 , 5 , \n",
+ "vector v3: 1 , 2 , 3 , 4 , 5 , \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-matrix.cpp, Page-418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "TRUE=1\n",
+ "FALSE=0\n",
+ "def __del__(self):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " del self._matrix__p[i]\n",
+ " del self._matrix__p\n",
+ "def add(self, a, b):\n",
+ " self._matrix__MaxRow=a._matrix__MaxRow\n",
+ " self._matrix__MaxCol=a._matrix__MaxCol\n",
+ " if (a._matrix__MaxRow!=b._matrix__MaxRow)|(a._matrix__MaxCol!=b._matrix__MaxCol):\n",
+ " print \"Error: invalid matrix order for addition\"\n",
+ " return\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]=a._matrix__p[i][j]+b._matrix__p[i][j]\n",
+ "def sub(self, a, b):\n",
+ " self._matrix__MaxRow=a._matrix__MaxRow\n",
+ " self._matrix__MaxCol=a._matrix__MaxCol\n",
+ " if (a._matrix__MaxRow!=b._matrix__MaxRow)|(a._matrix__MaxCol!=b._matrix__MaxCol):\n",
+ " print \"Error: invalid matrix order for subtraction\"\n",
+ " return\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]=a._matrix__p[i][j]-b._matrix__p[i][j]\n",
+ "def mul(self, a, b):\n",
+ " self._matrix__MaxRow=a._matrix__MaxRow\n",
+ " self._matrix__MaxCol=a._matrix__MaxCol\n",
+ " if (a._matrix__MaxCol!=b._matrix__MaxRow):\n",
+ " print \"Error: invalid matrix order for multiplication\"\n",
+ " return\n",
+ " for i in range(a._matrix__MaxRow):\n",
+ " for j in range(b._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]=0\n",
+ " for k in range(a._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]+=a._matrix__p[i][j]*b._matrix__p[i][j]\n",
+ "def eql(self, b):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " if self._matrix__p[i][i]!=b._matrix__p[i][j]:\n",
+ " return 0\n",
+ " return 1\n",
+ "def read(self):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " print \"Matrix[\", i, \",\",j,\"] =? \",\n",
+ " self._matrix__p[i][j]=int(raw_input())\n",
+ "def show(self):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " print self._matrix__p[i][j], \" \",\n",
+ " print \"\"\n",
+ "class matrix:\n",
+ " __MaxRow=int\n",
+ " __MaxCol=int\n",
+ " __p=[int]\n",
+ " def __init__(self, row=0, col=0):\n",
+ " self.__MaxRow=row\n",
+ " self.__MaxCol=col\n",
+ " if row>0:\n",
+ " self.__p=[[int]*self.__MaxCol]*self.__MaxRow\n",
+ " __del__=__del__\n",
+ " read=read\n",
+ " show=show\n",
+ " add=add\n",
+ " sub=sub\n",
+ " mul=mul\n",
+ " eql=eql\n",
+ "print \"Enter Matrix A details...\"\n",
+ "m=int(raw_input(\"How many rows? \"))\n",
+ "n=int(raw_input(\"How many columns? \"))\n",
+ "a=matrix(m,n)\n",
+ "a.read()\n",
+ "print \"Enter Matrix B details...\"\n",
+ "p=int(raw_input(\"How many rows? \"))\n",
+ "q=int(raw_input(\"How many columns? \"))\n",
+ "b=matrix(p,q)\n",
+ "b.read()\n",
+ "print \"Matrix A is...\"\n",
+ "a.show()\n",
+ "print \"Matrix B is...\"\n",
+ "b.show()\n",
+ "c=matrix(m,n)\n",
+ "c.add(a,b)\n",
+ "print \"C=A+B...\"\n",
+ "c.show()\n",
+ "d=matrix(m,n)\n",
+ "d.sub(a,b)\n",
+ "print \"D=A-B...\"\n",
+ "d.show()\n",
+ "e=matrix(m,q)\n",
+ "e.mul(a,b)\n",
+ "print \"E=A*B...\"\n",
+ "e.show()\n",
+ "print \"(Is matrix A equal to matrix B)? \",\n",
+ "if(a.eql(b)):\n",
+ " print \"Yes\"\n",
+ "else:\n",
+ " print \"No\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Matrix A details...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows? 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many columns? 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Matrix[ 0 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter Matrix B details...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows? 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many columns? 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Matrix[ 0 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix A is...\n",
+ "2 2 2 \n",
+ "2 2 2 \n",
+ "2 2 2 \n",
+ "Matrix B is...\n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "C=A+B...\n",
+ "3 3 3 \n",
+ "3 3 3 \n",
+ "3 3 3 \n",
+ "D=A-B...\n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "E=A*B...\n",
+ "6 6 6 \n",
+ "6 6 6 \n",
+ "6 6 6 \n",
+ "(Is matrix A equal to matrix B)? No\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-person.cpp, Page-423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self, NameIn, AddressIn, PhoneIn):\n",
+ " self._Person__name=NameIn\n",
+ " self._Person__address=AddressIn\n",
+ " self._Person__phone=PhoneIn\n",
+ "#inline\n",
+ "def __del__(self):\n",
+ " del self._Person__name\n",
+ " del self._Person__address\n",
+ " del self._Person__phone\n",
+ "def getname(self):\n",
+ " return self._Person__name\n",
+ "def getaddress(self):\n",
+ " return self._Person__address\n",
+ "def getphone(self):\n",
+ " return self._Person__phone\n",
+ "def changename(self, NameIn):\n",
+ " if(self._Person__name):\n",
+ " del self._Person__name\n",
+ " self._Person__name=NameIn\n",
+ "class Person:\n",
+ " __name=[str]\n",
+ " __address=[str]\n",
+ " __phone=[str]\n",
+ " __init__=__init__\n",
+ " __del__=__del__\n",
+ " getname=getname\n",
+ " getaddress=getaddress\n",
+ " getphone=getphone\n",
+ " changename=changename\n",
+ "def printperson(p):\n",
+ " if(p.getname()):\n",
+ " print \"Name: \", p.getname()\n",
+ " if(p.getaddress()):\n",
+ " print \"Address: \", p.getaddress()\n",
+ " if(p.getphone()):\n",
+ " print \"Phone: \", p.getphone()\n",
+ "me=Person(\"Rajkumar\", \"E-mail: raj@cdabc.erne.in\", \"91-080-5584271\")\n",
+ "printperson(me)\n",
+ "you=Person(\"XYZ\", \"-not sure-\", \"-not sure-\")\n",
+ "print \"You XYZ by default...\"\n",
+ "printperson(you)\n",
+ "you.changename(\"ABC\")\n",
+ "print \"You changed XYZ to ABC...\"\n",
+ "printperson(you)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Rajkumar\n",
+ "Address: E-mail: raj@cdabc.erne.in\n",
+ "Phone: 91-080-5584271\n",
+ "You XYZ by default...\n",
+ "Name: XYZ\n",
+ "Address: -not sure-\n",
+ "Phone: -not sure-\n",
+ "You changed XYZ to ABC...\n",
+ "Name: ABC\n",
+ "Address: -not sure-\n",
+ "Phone: -not sure-\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-graph.cpp, Page-425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self):\n",
+ " if(self._Graphics__nobjects[0]==False):\n",
+ " self._Graphics__setgraphicsmode()\n",
+ " self._Graphics__nobjects[0]+=1\n",
+ "def __del__(self):\n",
+ " self._Graphics__nobjects[0]-=1\n",
+ " if(self._Graphics__nobjects[0]==False):\n",
+ " self._Graphics__settextmode()\n",
+ "class Graphics:\n",
+ " __nobjects=[0]\n",
+ " def __setgraphicsmode(self):\n",
+ " pass\n",
+ " def __settextmode(self):\n",
+ " pass\n",
+ " __init__=__init__\n",
+ " __del__=__del__\n",
+ " def getcount(self):\n",
+ " return self.__nobjects[0]\n",
+ "def my_func():\n",
+ " obj=Graphics()\n",
+ " print \"No. of Graphics' objects while in my_func=\", obj.getcount()\n",
+ "obj1=Graphics()\n",
+ "print \"No. of Graphics' objects before in my_func=\", obj1.getcount()\n",
+ "my_func()\n",
+ "print \"No. of Graphics' objects after in my_func=\", obj1.getcount()\n",
+ "obj2=Graphics()\n",
+ "obj3=Graphics()\n",
+ "obj4=Graphics()\n",
+ "print \"Value of static member nobjects after all 3 more objects...\"\n",
+ "print \"In obj1= \", obj1.getcount()\n",
+ "print \"In obj2= \", obj2.getcount()\n",
+ "print \"In obj3= \", obj3.getcount()\n",
+ "print \"In obj4= \", obj4.getcount()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of Graphics' objects before in my_func= 1\n",
+ "No. of Graphics' objects while in my_func= 2\n",
+ "No. of Graphics' objects after in my_func= 1\n",
+ "Value of static member nobjects after all 3 more objects...\n",
+ "In obj1= 4\n",
+ "In obj2= 4\n",
+ "In obj3= 4\n",
+ "In obj4= 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Page-428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def distance(self, a, b):\n",
+ " self.x=a.x-b.x\n",
+ " self.y=a.y-b.y\n",
+ "def display(self):\n",
+ " print \"x= \",self.x\n",
+ " print \"y= \", self.y\n",
+ "class point:\n",
+ " __x=int\n",
+ " __y=int\n",
+ " def __init__(self, a=None, b=None):\n",
+ " if isinstance(a, int):\n",
+ " self.x=a\n",
+ " self.y=b\n",
+ " else:\n",
+ " self.x=self.y=0\n",
+ " def __del__(self):\n",
+ " pass\n",
+ " distance=distance\n",
+ " display=display\n",
+ "p1=point(40,18)\n",
+ "p2=point(12,9)\n",
+ "p3=point()\n",
+ "p3.distance(p1,p2)\n",
+ "print \"Coordinates of P1: \"\n",
+ "p1.display()\n",
+ "print \"Coordinates of P2: \"\n",
+ "p2.display()\n",
+ "print \"distance between P1 and P2: \"\n",
+ "p3.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coordinates of P1: \n",
+ "x= 40\n",
+ "y= 18\n",
+ "Coordinates of P2: \n",
+ "x= 12\n",
+ "y= 9\n",
+ "distance between P1 and P2: \n",
+ "x= 28\n",
+ "y= 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Page-430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def display(self):\n",
+ " print \"a =\", self.a,\n",
+ " print \"b =\", self.b\n",
+ "class data:\n",
+ " __a=int\n",
+ " __b=float\n",
+ " def __init__(self, x=None, y=None):\n",
+ " if isinstance(x, int):\n",
+ " self.a=x\n",
+ " self.b=y\n",
+ " elif isinstance(x, data):\n",
+ " self.a=x.a\n",
+ " self.b=x.b\n",
+ " else:\n",
+ " self.a=0\n",
+ " self.b=0\n",
+ " display=display\n",
+ "d1=data()\n",
+ "d2=data(12,9.9)\n",
+ "d3=data(d2)\n",
+ "print \"For default constructor: \"\n",
+ "d1.display()\n",
+ "print\"For parameterized constructor: \"\n",
+ "d2.display()\n",
+ "print \"For Copy Constructor: \"\n",
+ "d3.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For default constructor: \n",
+ "a = 0 b = 0\n",
+ "For parameterized constructor: \n",
+ "a = 12 b = 9.9\n",
+ "For Copy Constructor: \n",
+ "a = 12 b = 9.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up_1.ipynb b/sample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up_1.ipynb
new file mode 100755
index 00000000..d3bdda01
--- /dev/null
+++ b/sample_notebooks/SrutiGoyal/Chapter_11-_Object_Initialization_and_Clean-Up_1.ipynb
@@ -0,0 +1,1779 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:64b755d597a2016634dadbbc81a598a60446119cc89f4f94fd9140b5bc077b77"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Object Initialization and clean up"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- bag.cpp, Page-392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX_ITEMS=25\n",
+ "def show(self):\n",
+ " for i in range(self.ItemCount):\n",
+ " print self._Bag__contents[i],\n",
+ "class Bag:\n",
+ " __contents=[int]*MAX_ITEMS\n",
+ " __ItemCount=int\n",
+ " def SetEmpty(self):\n",
+ " self.ItemCount=0\n",
+ " def put(self,item):\n",
+ " self._Bag__contents[self.ItemCount]=item\n",
+ " self.ItemCount+=1\n",
+ " show=show\n",
+ "bag=Bag() #object of class Bag\n",
+ "bag.SetEmpty() #initialize the object\n",
+ "while 1:\n",
+ " item=int(raw_input(\"\\nEnter Item Number to be put into the bag <0-no item>: \"))\n",
+ " if item==0:\n",
+ " break\n",
+ " bag.put(item)\n",
+ " print \"Items in bag:\",\n",
+ " bag.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Items in bag: 1"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2 4"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- newbag.cpp, Page-395"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX_ITEMS=25 #size of array contents\n",
+ "def show(self):\n",
+ " for i in range(self.ItemCount):\n",
+ " print self._Bag__contents[i],\n",
+ "class Bag:\n",
+ " __contents=[int]*MAX_ITEMS #int 1D array\n",
+ " __ItemCount=int\n",
+ " def __init__(self): #Constructor\n",
+ " self.ItemCount=0\n",
+ " def put(self,item): #member function defined inside the class\n",
+ " self._Bag__contents[self.ItemCount]=item\n",
+ " self.ItemCount+=1\n",
+ " show=show #member function defined outside the class\n",
+ "bag=Bag() #object of class Bag\n",
+ "while 1:\n",
+ " item=int(raw_input(\"\\nEnter Item Number to be put into the bag <0-no item>: \"))\n",
+ " if item==0:\n",
+ " break\n",
+ " bag.put(item)\n",
+ " print \"Items in bag:\",\n",
+ " bag.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Items in bag: 1"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag: 1 3 2 4"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-test1.cpp, Page-396"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self):\n",
+ " print \"Constructor of class test called\"\n",
+ "class Test:\n",
+ " __init__=__init__ #Constructor\n",
+ "G=Test()\n",
+ "def func():\n",
+ " L=Test()\n",
+ " print \"Here's function func()\"\n",
+ "X=Test()\n",
+ "print \"main() function\"\n",
+ "func()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class test called\n",
+ "Constructor of class test called\n",
+ "main() function\n",
+ "Constructor of class test called\n",
+ "Here's function func()\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- giftbag.cpp, Page- 398"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "MAX_ITEMS=25\n",
+ "def show(self):\n",
+ " if self.ItemCount:\n",
+ " for i in range(self.ItemCount):\n",
+ " print self._Bag__contents[i],\n",
+ " else:\n",
+ " print \"Nil\"\n",
+ "class Bag:\n",
+ " __contents=[int]*MAX_ITEMS\n",
+ " __ItemCount=int\n",
+ " def __init__(self, item=None): #parameterized constructor: Python does not support overloading of functions\n",
+ " if isinstance(item, int):\n",
+ " self._Bag__contents[0]=item\n",
+ " self.ItemCount=1\n",
+ " else:\n",
+ " self.ItemCount=0\n",
+ " def put(self,item):\n",
+ " self._Bag__contents[self.ItemCount]=item\n",
+ " self.ItemCount+=1\n",
+ " show=show\n",
+ "bag1=Bag()\n",
+ "bag2=Bag(4) #object created using the parameterized constructor\n",
+ "print \"Gifted bag1 initially has:\",\n",
+ "bag1.show()\n",
+ "print \"Gifted bag2 initially has:\",\n",
+ "bag2.show()\n",
+ "while 1:\n",
+ " item=int(raw_input(\"\\nEnter Item Number to be put into the bag <0-no item>: \"))\n",
+ " if item==0:\n",
+ " break\n",
+ " bag2.put(item)\n",
+ " print \"Items in bag2:\",\n",
+ " bag2.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Gifted bag1 initially has: Nil\n",
+ "Gifted bag2 initially has: 4"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag2: 4 1"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag2: 4 1 2"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Items in bag2: 4 1 2 3"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Item Number to be put into the bag <0-no item>: 0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-test.cpp, Page-400 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self):\n",
+ " print \"Constructor of class Test called\"\n",
+ "def __del__(self):\n",
+ " print \"Destructor of class Test called\"\n",
+ "class Test:\n",
+ " __init__=__init__ #Constructor\n",
+ " __del__=__del__ #Destructor\n",
+ "x=Test()\n",
+ "print \"Terminating main\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor of class Test called\n",
+ "Destructor of class Test called\n",
+ "Terminating main\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-count.cpp, Page-401"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "nobjects=0\n",
+ "nobj_alive=0\n",
+ "class MyClass:\n",
+ " def __init__(self):\n",
+ " global nobjects #using the global nobjects\n",
+ " global nobj_alive #using the global nobj_alive\n",
+ " nobjects+=1\n",
+ " nobj_alive+=1\n",
+ " def __del__(self):\n",
+ " global nobj_alive #using the global nobjects\n",
+ " nobj_alive-=1\n",
+ " def show(self):\n",
+ " global nobjects\n",
+ " global nobj_alive\n",
+ " print \"Total number of objects created: \", nobjects\n",
+ " print \"Number of objects currently alive: \", nobj_alive\n",
+ "obj1=MyClass()\n",
+ "obj1.show()\n",
+ "def func():\n",
+ " obj1=MyClass()\n",
+ " obj2=MyClass()\n",
+ " obj2.show()\n",
+ " del obj1\n",
+ " del obj2\n",
+ "func()\n",
+ "obj1.show()\n",
+ "obj2=MyClass()\n",
+ "obj3=MyClass()\n",
+ "obj2.show()\n",
+ "del obj1\n",
+ "del obj2\n",
+ "del obj3"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total number of objects created: 1\n",
+ "Number of objects currently alive: 1\n",
+ "Total number of objects created: 3\n",
+ "Number of objects currently alive: 3\n",
+ "Total number of objects created: 3\n",
+ "Number of objects currently alive: 1\n",
+ "Total number of objects created: 5\n",
+ "Number of objects currently alive: 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Example-account.cpp, Page- 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def MoneyTransfer(self, acc , amount):\n",
+ " self._AccClass__balance=self._AccClass__balance-amount\n",
+ " acc._AccClass__balance=acc._AccClass__balance + amount\n",
+ "class AccClass:\n",
+ " __accno=int\n",
+ " __balance=float\n",
+ " def __init__(self, an=None, bal=0.0):\n",
+ " if isinstance(an, int):\n",
+ " self.accno=an\n",
+ " self.__balance=bal\n",
+ " else:\n",
+ " self.accno=raw_input(\"Enter account number for acc1 object: \")\n",
+ " self.__balance=float(raw_input(\"Enter the balance: \"))\n",
+ " def display(self):\n",
+ " print \"Acoount number is: \", self.accno\n",
+ " print \"Balance is: \", self.__balance\n",
+ " MoneyTransfer=MoneyTransfer\n",
+ "acc1=AccClass()\n",
+ "acc2=AccClass(10)\n",
+ "acc3=AccClass(20, 750.5)\n",
+ "print \"Acoount information...\"\n",
+ "acc1.display()\n",
+ "acc2.display()\n",
+ "acc3.display()\n",
+ "trans_money=float(raw_input(\"How much money is to be transferred from acc3 to acc1: \"))\n",
+ "acc3.MoneyTransfer(acc1, trans_money)\n",
+ "print \"Updated information about accounts...\"\n",
+ "acc1.display()\n",
+ "acc2.display()\n",
+ "acc3.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter account number for acc1 object: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the balance: 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Acoount information...\n",
+ "Acoount number is: 1\n",
+ "Balance is: 100.0\n",
+ "Acoount number is: 10\n",
+ "Balance is: 0.0\n",
+ "Acoount number is: 20\n",
+ "Balance is: 750.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How much money is to be transferred from acc3 to acc1: 200\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Updated information about accounts...\n",
+ "Acoount number is: 1\n",
+ "Balance is: 300.0\n",
+ "Acoount number is: 10\n",
+ "Balance is: 0.0\n",
+ "Acoount number is: 20\n",
+ "Balance is: 550.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-test2.cpp. Page- 405"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self, NameIn=None):\n",
+ " if isinstance(NameIn, str):\n",
+ " self.name=NameIn\n",
+ " print \"Test Object \", NameIn, \" created\"\n",
+ " else:\n",
+ " self.name=\"unnamed\"\n",
+ " print \"Test object 'unnamed' created\"\n",
+ "def __del__(self):\n",
+ " print \"Test Object \", self.name, \" destroyed\"\n",
+ " del self.name\n",
+ "class Test:\n",
+ " __name=[str]\n",
+ " __init__=__init__\n",
+ " __del__=__del__\n",
+ "g=Test(\"global\")\n",
+ "def func():\n",
+ " l=Test(\"func\")\n",
+ " print \"here's function func()\"\n",
+ "x=Test(\"main\")\n",
+ "func()\n",
+ "print \"main() function - termination\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Test Object global created\n",
+ "Test Object global destroyed\n",
+ "Test Object main created\n",
+ "Test Object main destroyed\n",
+ "Test Object func created\n",
+ "here's function func()\n",
+ "Test Object func destroyed\n",
+ "main() function - termination\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-complex1.cpp, Page- 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "def add (self, c2):\n",
+ " temp=Complex()\n",
+ " temp._Complex__real=self._Complex__real+c2._Complex__real\n",
+ " temp._Complex__imag=self._Complex__imag+c2._Complex__imag\n",
+ " return temp\n",
+ "class Complex:\n",
+ " __real=float\n",
+ " __imag=float\n",
+ " def __init__(self, real_in=None, imag_in=0.0):\n",
+ " if isinstance(real_in, float):\n",
+ " self.__real=real_in\n",
+ " self.__imag=imag_in\n",
+ " else:\n",
+ " self.__real=self.__imag=0.0\n",
+ " def show(self, msg):\n",
+ " print msg, \n",
+ " print self.__real,\n",
+ " if self.__imag<0:\n",
+ " print \"-i\",\n",
+ " else:\n",
+ " print \"+i\",\n",
+ " print math.fabs(self.__imag) #print absolute value\n",
+ " add=add\n",
+ "c1=Complex(1.5,2.0)\n",
+ "c2=Complex(2.2)\n",
+ "c3=Complex()\n",
+ "c1.show(\"c1=\")\n",
+ "c2.show(\"c2=\")\n",
+ "c3=c1.add(c2)\n",
+ "c3.show(\"c3=c1.add(c2):\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "c1= 1.5 +i 2.0\n",
+ "c2= 2.2 +i 0.0\n",
+ "c3=c1.add(c2): 3.7 +i 2.0\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example- noname.cpp, Page- 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class nameless:\n",
+ " __a=int\n",
+ " def __init__(self):\n",
+ " print \"Constructor\"\n",
+ " def __del__(self):\n",
+ " print \"Destructor\"\n",
+ "nameless() #nameless object created\n",
+ "n1=nameless()\n",
+ "n2=nameless()\n",
+ "print \"Program terminates\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor\n",
+ "Destructor\n",
+ "Constructor\n",
+ "Destructor\n",
+ "Constructor\n",
+ "Destructor\n",
+ "Program terminates\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-name.cpp, Page-411"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def show(self, msg):\n",
+ " print msg\n",
+ " print \"First Name: \", self._name__first\n",
+ " if self._name__middle[0]:\n",
+ " print \"Middle Name: \", self._name__middle\n",
+ " if self._name__last[0]:\n",
+ " print \"Last Name: \", self._name__last\n",
+ "class name:\n",
+ " __first=[None]*15\n",
+ " __middle=[None]*15\n",
+ " __last=[None]*15\n",
+ " def __init__(self, FirstName=None, MiddleName=None, LastName=None):\n",
+ " if isinstance(LastName, str):\n",
+ " self.__last=LastName\n",
+ " self.__middle=MiddleName\n",
+ " self.__first=FirstName\n",
+ " elif isinstance(MiddleName, str):\n",
+ " self.__middle=MiddleName\n",
+ " self.__first=FirstName\n",
+ " elif isinstance(FirstName, str):\n",
+ " self.__first=FirstName\n",
+ " else:\n",
+ " self.__last='\\0' #initialized to NULL\n",
+ " self.__middle='\\0'\n",
+ " self.__first='\\0'\n",
+ " show=show\n",
+ "n1=name()\n",
+ "n2=name()\n",
+ "n3=name()\n",
+ "n1=name(\"Rajkumar\")\n",
+ "n2=name(\"Savithri\", \"S\")\n",
+ "n3=name(\"Veugopal\", \"K\", \"R\")\n",
+ "n1.show(\"First prson details...\")\n",
+ "n2.show(\"Second prson details...\")\n",
+ "n3.show(\"Third prson details...\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First prson details...\n",
+ "First Name: Rajkumar\n",
+ "Second prson details...\n",
+ "First Name: Savithri\n",
+ "Middle Name: S\n",
+ "Third prson details...\n",
+ "First Name: Veugopal\n",
+ "Middle Name: K\n",
+ "Last Name: R\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-vector1.cpp, Page-413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def read(self):\n",
+ " for i in range(self._vector__sz):\n",
+ " print \"Enter vector [\", i, \"]? \",\n",
+ " self._vector__v[i]=int(raw_input())\n",
+ "def show_sum(self):\n",
+ " Sum=0\n",
+ " for i in range(self._vector__sz):\n",
+ " Sum+=self._vector__v[i]\n",
+ " print \"Vector sum= \", Sum\n",
+ "class vector:\n",
+ " __v=[int] #array of type integer\n",
+ " __sz=int\n",
+ " def __init__(self, size):\n",
+ " self.__sz= size\n",
+ " self.__v=[int]*size #dynamically allocating size to integer array\n",
+ " def __del__(self):\n",
+ " del self.__v\n",
+ " read=read\n",
+ " show_sum=show_sum\n",
+ "count = int\n",
+ "count=int(raw_input(\"How many elements are there in the vector: \"))\n",
+ "v1= vector(count)\n",
+ "v1.read()\n",
+ "v1.show_sum()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many elements are there in the vector: 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter vector [ 0 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 1 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 2 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 3 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter vector [ 4 ]? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Vector sum= 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-vector2.cpp, Page-415"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def show(self):\n",
+ " for i in range(self._vector__size):\n",
+ " print self.elem(i), \", \",\n",
+ "class vector:\n",
+ " __v=[int]\n",
+ " __size=int\n",
+ " def __init__(self, vector_size):\n",
+ " if isinstance(vector_size, int):\n",
+ " self.__size= vector_size\n",
+ " self.__v=[int]*vector_size\n",
+ " else:\n",
+ " print \"Copy construcor invoked\"\n",
+ " self.__size=vector_size.__size\n",
+ " self.__v=[int]*vector_size.__size\n",
+ " for i in range(vector_size.__size):\n",
+ " self.__v[i]=vector_size.__v[i]\n",
+ " def elem(self,i):\n",
+ " if i>=self.__size:\n",
+ " print \"Error: Out of Range\"\n",
+ " return -1\n",
+ " return self.__v[i]\n",
+ " def __del__(self):\n",
+ " del self.__v\n",
+ " show=show\n",
+ "v1=vector(5)\n",
+ "v2=vector(5)\n",
+ "for i in range(5):\n",
+ " if v2.elem(i)!=-1:\n",
+ " v2._vector__v[i]=i+1\n",
+ "v1=v2\n",
+ "v3=vector(v2)\n",
+ "print \"Vector v1: \",\n",
+ "v1.show()\n",
+ "print \"\\nvector v2: \",\n",
+ "v2.show()\n",
+ "print \"\\nvector v3: \",\n",
+ "v3.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Copy construcor invoked\n",
+ "Vector v1: 1 , 2 , 3 , 4 , 5 , \n",
+ "vector v2: 1 , 2 , 3 , 4 , 5 , \n",
+ "vector v3: 1 , 2 , 3 , 4 , 5 , \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-matrix.cpp, Page-418"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "TRUE=1\n",
+ "FALSE=0\n",
+ "def __del__(self):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " del self._matrix__p[i]\n",
+ " del self._matrix__p\n",
+ "def add(self, a, b):\n",
+ " self._matrix__MaxRow=a._matrix__MaxRow\n",
+ " self._matrix__MaxCol=a._matrix__MaxCol\n",
+ " if (a._matrix__MaxRow!=b._matrix__MaxRow)|(a._matrix__MaxCol!=b._matrix__MaxCol):\n",
+ " print \"Error: invalid matrix order for addition\"\n",
+ " return\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]=a._matrix__p[i][j]+b._matrix__p[i][j]\n",
+ "def sub(self, a, b):\n",
+ " self._matrix__MaxRow=a._matrix__MaxRow\n",
+ " self._matrix__MaxCol=a._matrix__MaxCol\n",
+ " if (a._matrix__MaxRow!=b._matrix__MaxRow)|(a._matrix__MaxCol!=b._matrix__MaxCol):\n",
+ " print \"Error: invalid matrix order for subtraction\"\n",
+ " return\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]=a._matrix__p[i][j]-b._matrix__p[i][j]\n",
+ "def mul(self, a, b):\n",
+ " self._matrix__MaxRow=a._matrix__MaxRow\n",
+ " self._matrix__MaxCol=a._matrix__MaxCol\n",
+ " if (a._matrix__MaxCol!=b._matrix__MaxRow):\n",
+ " print \"Error: invalid matrix order for multiplication\"\n",
+ " return\n",
+ " for i in range(a._matrix__MaxRow):\n",
+ " for j in range(b._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]=0\n",
+ " for k in range(a._matrix__MaxCol):\n",
+ " self._matrix__p[i][j]+=a._matrix__p[i][j]*b._matrix__p[i][j]\n",
+ "def eql(self, b):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " if self._matrix__p[i][i]!=b._matrix__p[i][j]:\n",
+ " return 0\n",
+ " return 1\n",
+ "def read(self):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " print \"Matrix[\", i, \",\",j,\"] =? \",\n",
+ " self._matrix__p[i][j]=int(raw_input())\n",
+ "def show(self):\n",
+ " for i in range(self._matrix__MaxRow):\n",
+ " for j in range(self._matrix__MaxCol):\n",
+ " print self._matrix__p[i][j], \" \",\n",
+ " print \"\"\n",
+ "class matrix:\n",
+ " __MaxRow=int\n",
+ " __MaxCol=int\n",
+ " __p=[int]\n",
+ " def __init__(self, row=0, col=0):\n",
+ " self.__MaxRow=row\n",
+ " self.__MaxCol=col\n",
+ " if row>0:\n",
+ " self.__p=[[int]*self.__MaxCol]*self.__MaxRow\n",
+ " __del__=__del__\n",
+ " read=read\n",
+ " show=show\n",
+ " add=add\n",
+ " sub=sub\n",
+ " mul=mul\n",
+ " eql=eql\n",
+ "print \"Enter Matrix A details...\"\n",
+ "m=int(raw_input(\"How many rows? \"))\n",
+ "n=int(raw_input(\"How many columns? \"))\n",
+ "a=matrix(m,n)\n",
+ "a.read()\n",
+ "print \"Enter Matrix B details...\"\n",
+ "p=int(raw_input(\"How many rows? \"))\n",
+ "q=int(raw_input(\"How many columns? \"))\n",
+ "b=matrix(p,q)\n",
+ "b.read()\n",
+ "print \"Matrix A is...\"\n",
+ "a.show()\n",
+ "print \"Matrix B is...\"\n",
+ "b.show()\n",
+ "c=matrix(m,n)\n",
+ "c.add(a,b)\n",
+ "print \"C=A+B...\"\n",
+ "c.show()\n",
+ "d=matrix(m,n)\n",
+ "d.sub(a,b)\n",
+ "print \"D=A-B...\"\n",
+ "d.show()\n",
+ "e=matrix(m,q)\n",
+ "e.mul(a,b)\n",
+ "print \"E=A*B...\"\n",
+ "e.show()\n",
+ "print \"(Is matrix A equal to matrix B)? \",\n",
+ "if(a.eql(b)):\n",
+ " print \"Yes\"\n",
+ "else:\n",
+ " print \"No\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Matrix A details...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows? 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many columns? 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Matrix[ 0 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Enter Matrix B details...\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many rows? 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many columns? 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Matrix[ 0 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 0 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 1 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 0 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 1 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix[ 2 , 2 ] =? "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Matrix A is...\n",
+ "2 2 2 \n",
+ "2 2 2 \n",
+ "2 2 2 \n",
+ "Matrix B is...\n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "C=A+B...\n",
+ "3 3 3 \n",
+ "3 3 3 \n",
+ "3 3 3 \n",
+ "D=A-B...\n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "1 1 1 \n",
+ "E=A*B...\n",
+ "6 6 6 \n",
+ "6 6 6 \n",
+ "6 6 6 \n",
+ "(Is matrix A equal to matrix B)? No\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-person.cpp, Page-423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self, NameIn, AddressIn, PhoneIn):\n",
+ " self._Person__name=NameIn\n",
+ " self._Person__address=AddressIn\n",
+ " self._Person__phone=PhoneIn\n",
+ "#inline\n",
+ "def __del__(self):\n",
+ " del self._Person__name\n",
+ " del self._Person__address\n",
+ " del self._Person__phone\n",
+ "def getname(self):\n",
+ " return self._Person__name\n",
+ "def getaddress(self):\n",
+ " return self._Person__address\n",
+ "def getphone(self):\n",
+ " return self._Person__phone\n",
+ "def changename(self, NameIn):\n",
+ " if(self._Person__name):\n",
+ " del self._Person__name\n",
+ " self._Person__name=NameIn\n",
+ "class Person:\n",
+ " __name=[str]\n",
+ " __address=[str]\n",
+ " __phone=[str]\n",
+ " __init__=__init__\n",
+ " __del__=__del__\n",
+ " getname=getname\n",
+ " getaddress=getaddress\n",
+ " getphone=getphone\n",
+ " changename=changename\n",
+ "def printperson(p):\n",
+ " if(p.getname()):\n",
+ " print \"Name: \", p.getname()\n",
+ " if(p.getaddress()):\n",
+ " print \"Address: \", p.getaddress()\n",
+ " if(p.getphone()):\n",
+ " print \"Phone: \", p.getphone()\n",
+ "me=Person(\"Rajkumar\", \"E-mail: raj@cdabc.erne.in\", \"91-080-5584271\")\n",
+ "printperson(me)\n",
+ "you=Person(\"XYZ\", \"-not sure-\", \"-not sure-\")\n",
+ "print \"You XYZ by default...\"\n",
+ "printperson(you)\n",
+ "you.changename(\"ABC\")\n",
+ "print \"You changed XYZ to ABC...\"\n",
+ "printperson(you)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name: Rajkumar\n",
+ "Address: E-mail: raj@cdabc.erne.in\n",
+ "Phone: 91-080-5584271\n",
+ "You XYZ by default...\n",
+ "Name: XYZ\n",
+ "Address: -not sure-\n",
+ "Phone: -not sure-\n",
+ "You changed XYZ to ABC...\n",
+ "Name: ABC\n",
+ "Address: -not sure-\n",
+ "Phone: -not sure-\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example-graph.cpp, Page-425"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def __init__(self):\n",
+ " if(self._Graphics__nobjects[0]==False):\n",
+ " self._Graphics__setgraphicsmode()\n",
+ " self._Graphics__nobjects[0]+=1\n",
+ "def __del__(self):\n",
+ " self._Graphics__nobjects[0]-=1\n",
+ " if(self._Graphics__nobjects[0]==False):\n",
+ " self._Graphics__settextmode()\n",
+ "class Graphics:\n",
+ " __nobjects=[0]\n",
+ " def __setgraphicsmode(self):\n",
+ " pass\n",
+ " def __settextmode(self):\n",
+ " pass\n",
+ " __init__=__init__\n",
+ " __del__=__del__\n",
+ " def getcount(self):\n",
+ " return self.__nobjects[0]\n",
+ "def my_func():\n",
+ " obj=Graphics()\n",
+ " print \"No. of Graphics' objects while in my_func=\", obj.getcount()\n",
+ "obj1=Graphics()\n",
+ "print \"No. of Graphics' objects before in my_func=\", obj1.getcount()\n",
+ "my_func()\n",
+ "print \"No. of Graphics' objects after in my_func=\", obj1.getcount()\n",
+ "obj2=Graphics()\n",
+ "obj3=Graphics()\n",
+ "obj4=Graphics()\n",
+ "print \"Value of static member nobjects after all 3 more objects...\"\n",
+ "print \"In obj1= \", obj1.getcount()\n",
+ "print \"In obj2= \", obj2.getcount()\n",
+ "print \"In obj3= \", obj3.getcount()\n",
+ "print \"In obj4= \", obj4.getcount()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "No. of Graphics' objects before in my_func= 1\n",
+ "No. of Graphics' objects while in my_func= 2\n",
+ "No. of Graphics' objects after in my_func= 1\n",
+ "Value of static member nobjects after all 3 more objects...\n",
+ "In obj1= 4\n",
+ "In obj2= 4\n",
+ "In obj3= 4\n",
+ "In obj4= 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Page-428"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def distance(self, a, b):\n",
+ " self.x=a.x-b.x\n",
+ " self.y=a.y-b.y\n",
+ "def display(self):\n",
+ " print \"x= \",self.x\n",
+ " print \"y= \", self.y\n",
+ "class point:\n",
+ " __x=int\n",
+ " __y=int\n",
+ " def __init__(self, a=None, b=None):\n",
+ " if isinstance(a, int):\n",
+ " self.x=a\n",
+ " self.y=b\n",
+ " else:\n",
+ " self.x=self.y=0\n",
+ " def __del__(self):\n",
+ " pass\n",
+ " distance=distance\n",
+ " display=display\n",
+ "p1=point(40,18)\n",
+ "p2=point(12,9)\n",
+ "p3=point()\n",
+ "p3.distance(p1,p2)\n",
+ "print \"Coordinates of P1: \"\n",
+ "p1.display()\n",
+ "print \"Coordinates of P2: \"\n",
+ "p2.display()\n",
+ "print \"distance between P1 and P2: \"\n",
+ "p3.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Coordinates of P1: \n",
+ "x= 40\n",
+ "y= 18\n",
+ "Coordinates of P2: \n",
+ "x= 12\n",
+ "y= 9\n",
+ "distance between P1 and P2: \n",
+ "x= 28\n",
+ "y= 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example Page-430"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "def display(self):\n",
+ " print \"a =\", self.a,\n",
+ " print \"b =\", self.b\n",
+ "class data:\n",
+ " __a=int\n",
+ " __b=float\n",
+ " def __init__(self, x=None, y=None):\n",
+ " if isinstance(x, int):\n",
+ " self.a=x\n",
+ " self.b=y\n",
+ " elif isinstance(x, data):\n",
+ " self.a=x.a\n",
+ " self.b=x.b\n",
+ " else:\n",
+ " self.a=0\n",
+ " self.b=0\n",
+ " display=display\n",
+ "d1=data()\n",
+ "d2=data(12,9.9)\n",
+ "d3=data(d2)\n",
+ "print \"For default constructor: \"\n",
+ "d1.display()\n",
+ "print\"For parameterized constructor: \"\n",
+ "d2.display()\n",
+ "print \"For Copy Constructor: \"\n",
+ "d3.display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "For default constructor: \n",
+ "a = 0 b = 0\n",
+ "For parameterized constructor: \n",
+ "a = 12 b = 9.9\n",
+ "For Copy Constructor: \n",
+ "a = 12 b = 9.9\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/Tarun KumarDas/Chapter9.ipynb b/sample_notebooks/Tarun KumarDas/Chapter9.ipynb
new file mode 100755
index 00000000..320477a8
--- /dev/null
+++ b/sample_notebooks/Tarun KumarDas/Chapter9.ipynb
@@ -0,0 +1,227 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:023bb2358c5a7a6740b1b9a08290e11f954e790555a353817bbe84615e4679e6"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "CHAPTER 9: VALVE DIAGRAMS AND VALVE GEARS"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 Page 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "from math import pi,sqrt,acos,asin,atan,cos,sin,tan\n",
+ "p=20#in\n",
+ "l=100#in\n",
+ "r=120#r.p.m\n",
+ "v=3.5#in\n",
+ "l2=1#in\n",
+ "l3=1/8#in\n",
+ "v1=1.44#omega in/sec\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V=p*(1.06/1.166)#omega in./sec\n",
+ "R=(V/v1)#omega in/sec\n",
+ "\n",
+ "#RESULTS\n",
+ "print\"The ratio of velocity of the piston to the velocity is\",round(R,3),\"Omega in/sec\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The ratio of velocity of the piston to the velocity is 12.626 Omega in/sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.7 Page 151"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "from math import pi,sqrt,acos,asin,atan,cos,sin,tan\n",
+ "v=0.6#in\n",
+ "m=1.0#in\n",
+ "t=0.75#in\n",
+ "p=4#in\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "D=t/m#in\n",
+ "A=(p*m/D)#in\n",
+ "\n",
+ "#RESULTS\n",
+ "print\"the travel and laps of the value is\",round(A,3),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the travel and laps of the value is 5.333 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.10 Page 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "from math import pi,sqrt,acos,asin,atan,cos,sin,tan\n",
+ "l=1.5#in\n",
+ "p=4.0#in\n",
+ "v=0.98#in\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "T=(l*p/v)#in\n",
+ "\n",
+ "#RESULTS\n",
+ "print\"the particulars of a value and it eccentric is\",round(T,3),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the particulars of a value and it eccentric is 6.122 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.12 Page 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "from math import pi,sqrt,acos,asin,atan,cos,sin,tan\n",
+ "p=1/10#in\n",
+ "v1=3/4#in\n",
+ "v2=3/5#in\n",
+ "m=1*1/2#in\n",
+ "l=4#cranks\n",
+ "a1=1.25#in\n",
+ "a2=0.7#in\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "C=a1/a2#in\n",
+ "A=l*a1/a2#in\n",
+ "S=(A/2-a1)#in\n",
+ "\n",
+ "#RESULTS\n",
+ "print\"the travel of the value is\",round(S,3),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the travel of the value is 2.321 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.17 Page 161"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#initialisation of variable\n",
+ "from math import pi,sqrt,acos,asin,atan,cos,sin,tan\n",
+ "v=3*1/2#in\n",
+ "a=30#degree\n",
+ "l=0.8#in\n",
+ "v1=0.2#in\n",
+ "L=0.13#in\n",
+ "m=1.075#in\n",
+ "d=0.58#in\n",
+ "p=1.875#in\n",
+ "\n",
+ "#CALCULATIONS\n",
+ "V=(p-d)#in\n",
+ "P=V+1.25#in\n",
+ "\n",
+ "#RESULTS\n",
+ "print\"the main value and the maximum opening to steam is\",round(P,3),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the main value and the maximum opening to steam is 2.545 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/VikasPrasad/chapter1.ipynb b/sample_notebooks/VikasPrasad/chapter1.ipynb
new file mode 100755
index 00000000..9e1549a9
--- /dev/null
+++ b/sample_notebooks/VikasPrasad/chapter1.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Overview of Data Structures and Algorithms"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "1, 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Thermostat:\n",
+ "\t\"\"\"A simple thermostat class\"\"\"\n",
+ "\t#since private instance variables don't exist in Python, hence using a convention: name prefixed with an underscore,\n",
+ " #to treat them as non-public part\n",
+ "\t_currentTemp = 0.0\n",
+ "\t_desiredTemp = 0.0\n",
+ "\n",
+ "\tdef furnace_on(self):\n",
+ "\t\t#method body goes here\n",
+ "\t\tpass\n",
+ "\n",
+ "\tdef furnace_off(self):\n",
+ "\t\t#method bisy goes here\n",
+ "\t\tpass\n",
+ "#end class Thermostat"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "2, 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#demonstrates basic OOP syntax\n",
+ "\n",
+ "class BankAccount:\n",
+ "\t\"\"\"A simple bank account class\"\"\"\n",
+ "\t#since private instance variables don't exist in Python, hence using a convention: name prefixed with an underscore,\n",
+ " #to treat them as non-public part\n",
+ "\t_balance = 0.0\t#account balance\n",
+ "\n",
+ "\tdef __init__(self, openingBalance):\t#special method to cerate objects with instances customized to a specific initial state\n",
+ "\t\tself._balance = openingBalance\n",
+ "\n",
+ "\tdef deposit(self, amount):\t#makes deposit\n",
+ "\t\tself._balance = self._balance + amount\n",
+ "\n",
+ "\tdef withdraw(self, amount):\t#makes withdrawl\n",
+ "\t\tself._balance = self._balance - amount\n",
+ "\n",
+ "\tdef display(self):\t#displays balance\n",
+ "\t\tprint 'Balance=', self._balance\n",
+ "#end class BankAccount\n",
+ "\n",
+ "ba1 = BankAccount(100.00)\t#create account\n",
+ "\n",
+ "print 'Before transactions, ',\n",
+ "ba1.display()\t#display balance\n",
+ "\n",
+ "ba1.deposit(74.35)\t#make deposit\n",
+ "ba1.withdraw(20.00)\t#make withdrawl\n",
+ "\n",
+ "print 'After transactions, ',\n",
+ "ba1.display()\t#display balance\n",
+ "#end"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before transactions, Balance= 100.0\n",
+ "After transactions, Balance= 154.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "3, 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#creating string objects\n",
+ "str1 = ''\n",
+ "str2 = 'George'\n",
+ "\n",
+ "#verifying results\n",
+ "print str1\n",
+ "print str2\n",
+ "\n",
+ "#naming string object\n",
+ "str3 = 'amanuensis'\n",
+ "\n",
+ "#verifying results\n",
+ "print str3\n",
+ "\n",
+ "#accessing specific characters from string using [] operator\n",
+ "ch1 = str2[3]\n",
+ "\n",
+ "#verifying results\n",
+ "print ch1\n",
+ "\n",
+ "#finding and printing number of characters in a string\n",
+ "print len(str1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "George\n",
+ "amanuensis\n",
+ "r\n",
+ "0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/VikasPrasad/chapter1_1.ipynb b/sample_notebooks/VikasPrasad/chapter1_1.ipynb
new file mode 100755
index 00000000..9e1549a9
--- /dev/null
+++ b/sample_notebooks/VikasPrasad/chapter1_1.ipynb
@@ -0,0 +1,166 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "1: Overview of Data Structures and Algorithms"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "1, 20"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "class Thermostat:\n",
+ "\t\"\"\"A simple thermostat class\"\"\"\n",
+ "\t#since private instance variables don't exist in Python, hence using a convention: name prefixed with an underscore,\n",
+ " #to treat them as non-public part\n",
+ "\t_currentTemp = 0.0\n",
+ "\t_desiredTemp = 0.0\n",
+ "\n",
+ "\tdef furnace_on(self):\n",
+ "\t\t#method body goes here\n",
+ "\t\tpass\n",
+ "\n",
+ "\tdef furnace_off(self):\n",
+ "\t\t#method bisy goes here\n",
+ "\t\tpass\n",
+ "#end class Thermostat"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "2, 22"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#demonstrates basic OOP syntax\n",
+ "\n",
+ "class BankAccount:\n",
+ "\t\"\"\"A simple bank account class\"\"\"\n",
+ "\t#since private instance variables don't exist in Python, hence using a convention: name prefixed with an underscore,\n",
+ " #to treat them as non-public part\n",
+ "\t_balance = 0.0\t#account balance\n",
+ "\n",
+ "\tdef __init__(self, openingBalance):\t#special method to cerate objects with instances customized to a specific initial state\n",
+ "\t\tself._balance = openingBalance\n",
+ "\n",
+ "\tdef deposit(self, amount):\t#makes deposit\n",
+ "\t\tself._balance = self._balance + amount\n",
+ "\n",
+ "\tdef withdraw(self, amount):\t#makes withdrawl\n",
+ "\t\tself._balance = self._balance - amount\n",
+ "\n",
+ "\tdef display(self):\t#displays balance\n",
+ "\t\tprint 'Balance=', self._balance\n",
+ "#end class BankAccount\n",
+ "\n",
+ "ba1 = BankAccount(100.00)\t#create account\n",
+ "\n",
+ "print 'Before transactions, ',\n",
+ "ba1.display()\t#display balance\n",
+ "\n",
+ "ba1.deposit(74.35)\t#make deposit\n",
+ "ba1.withdraw(20.00)\t#make withdrawl\n",
+ "\n",
+ "print 'After transactions, ',\n",
+ "ba1.display()\t#display balance\n",
+ "#end"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before transactions, Balance= 100.0\n",
+ "After transactions, Balance= 154.35\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "3, 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#creating string objects\n",
+ "str1 = ''\n",
+ "str2 = 'George'\n",
+ "\n",
+ "#verifying results\n",
+ "print str1\n",
+ "print str2\n",
+ "\n",
+ "#naming string object\n",
+ "str3 = 'amanuensis'\n",
+ "\n",
+ "#verifying results\n",
+ "print str3\n",
+ "\n",
+ "#accessing specific characters from string using [] operator\n",
+ "ch1 = str2[3]\n",
+ "\n",
+ "#verifying results\n",
+ "print ch1\n",
+ "\n",
+ "#finding and printing number of characters in a string\n",
+ "print len(str1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "George\n",
+ "amanuensis\n",
+ "r\n",
+ "0\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/YogeshPatil/Chapter_11.ipynb b/sample_notebooks/YogeshPatil/Chapter_11.ipynb
new file mode 100755
index 00000000..f749209f
--- /dev/null
+++ b/sample_notebooks/YogeshPatil/Chapter_11.ipynb
@@ -0,0 +1,494 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11: Voltage Regulators"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.1, Page No. 414"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# op-amp series voltage regulator design\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vin_min = 18-3 # min input voltage specification\n",
+ "Vin_max = 18+3 # max input voltage specification\n",
+ "Vout = 9 # output voltage specification\n",
+ "Iout_min = 10*10**-3 # min output current specification\n",
+ "Iout_max = 50*10**-3 # max output current specification\n",
+ "Vz = 5.6 # zener breakdown voltage\n",
+ "Pzmax = 0.5 # Maximum power dissipation in zener\n",
+ "\n",
+ "#Calculations\n",
+ "R1 = 10*10**3 # assumed\n",
+ "R2 = R1/((Vout/Vz)-1)\n",
+ "R3 = (Vin_min-Vz)/Iout_max\n",
+ "Iz = (Vin_max-Vz)/R3\n",
+ "Pd = Iz*Vz\n",
+ "beta = 30 # assumed\n",
+ "Ib = Iout_max/(beta+1)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Element values for designed circuit are as follows:\\nR1 = %d k-ohm\\nR2 = %.2f k-ohm\"%(R1/1000,R2/1000))\n",
+ "print(\"R3 = %.3f k-ohm\\nIB = %.2f mA\"%(R3/1000,Ib*1000))\n",
+ "#Answer for R3 is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Element values for designed circuit are as follows:\n",
+ "R1 = 10 k-ohm\n",
+ "R2 = 16.47 k-ohm\n",
+ "R3 = 0.188 k-ohm\n",
+ "IB = 1.61 mA\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.2, Page No. 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Regulator using IC 723\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vout = 5 # Required output voltage\n",
+ "Iout = 100*10**-3 # Required output current\n",
+ "Vin_min = 15-(0.2*15) # Min input voltage\n",
+ "Vin_max = 15+(0.2*15) # Max input voltage\n",
+ "Isc = 150*10**-3 # Short circuit current requirement\n",
+ "Vsense = 0.7 # short circuit voltage\n",
+ "Vref = 7.15 # reference votage for IC 723\n",
+ "Id = 1*10**-3 # potential divider current\n",
+ "\n",
+ "\n",
+ "#Calculation\n",
+ "Rsc = Vsense/Isc\n",
+ "R1 = (Vref-Vout)/Id\n",
+ "R1std = 2.2*10**3 \n",
+ "R2 = R1std/((Vref/Vout)-1)\n",
+ "R2std = 5.1*10**3 \n",
+ "R3 = R1std*R2std/(R1std+R2std)\n",
+ "R3std = 1.5*10**3 \n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = %.3f k-ohm\\t We use %.1f k-ohm as standard resistor.\"%(R1/1000,R1std/1000))\n",
+ "print(\"R2 = %.3f k-ohm\\t We use %.1f k-ohm as standard resistor.\"%(R2/1000,R2std/1000))\n",
+ "print(\"R3 = %.3f k-ohm\\t We use %.1f k-ohm as standard resistor.\"%(math.floor((R3/1000)*1000)/1000,R3std/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 2.150 k-ohm\t We use 2.2 k-ohm as standard resistor.\n",
+ "R2 = 5.116 k-ohm\t We use 5.1 k-ohm as standard resistor.\n",
+ "R3 = 1.536 k-ohm\t We use 1.5 k-ohm as standard resistor.\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.3, Page No. 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Ic 723 based positive voltage regulator\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vout = 12.0 # output voltage\n",
+ "Il = 500*10**-3 # load current\n",
+ "Isc = 600*10**-3 # short circuit current\n",
+ "Vref = 7.0 # IC 723 reference voltage \n",
+ "Vsense = 0.6 # voltage at short circuit\n",
+ "\n",
+ "#Calculation\n",
+ "R1 = 4.7*10**3 # assumed\n",
+ "R2 = Vref*R1/(Vout-Vref)\n",
+ "R2std = 6.8*10**3 \n",
+ "Rsc = Vsense/Isc\n",
+ "R3 = R2std*R1/(R2std+R1)\n",
+ "Psc = Isc**2*Rsc*1000\n",
+ "I = Vout/(R1+R2std)\n",
+ "I= math.floor(I*10**6)/10**6\n",
+ "P1 = I**2*R1*1000\n",
+ "P2 = I**2*R2std*1000\n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = %.1f k-ohm\\nR2 = %.2f k-ohm = %.1f k-ohm(standard value)\\nRsc = %.1f ohm\"%(R1/1000,R2/1000,R2std/1000,Rsc))\n",
+ "print(\"\\nPower wattage:\\nPsc = %.0f mW\\nP1 = %.3f mW\\nP2 = %.3f mW\"%(Psc,math.floor(P1*1000)/1000,P2))\n",
+ "print(\"Hence, both R1 and R2 may be selected safely of 1/16th watt power rating.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 4.7 k-ohm\n",
+ "R2 = 6.58 k-ohm = 6.8 k-ohm(standard value)\n",
+ "Rsc = 1.0 ohm\n",
+ "\n",
+ "Power wattage:\n",
+ "Psc = 360 mW\n",
+ "P1 = 5.112 mW\n",
+ "P2 = 7.397 mW\n",
+ "Hence, both R1 and R2 may be selected safely of 1/16th watt power rating.\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.4, Page No. 426"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Regulator design using IC 723(refer to fig. 11.26)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vout = 6 # output voltage\n",
+ "Il = 1 # load current\n",
+ "Isc = 0.250 # short circuit \n",
+ "Vref = 7 # reference voltage\n",
+ "Vbe = 0.7 # base-emitter junction voltage\n",
+ "\n",
+ "#Calculations\n",
+ "R1 = 2.7*10**3 # assumed\n",
+ "R2 = Vout*R1/(Vref-Vout)\n",
+ "kRsc = Vbe/Isc\n",
+ "k =1-(((Il-Isc)*kRsc)/Vout)\n",
+ "R4 = 10*10**3 # assumed \n",
+ "R3 = (1-k)*R4\n",
+ "Rsc = kRsc/k\n",
+ "R = (R1*R2)/(R1+R2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"R1 = %.1f k-ohm\\nR2 = %.1f k-ohm\\nR3 = %.1f k-ohm\\nR4 = %.1f k-ohm\\nR = %.2f k-ohm\"%(R1/1000,R2/1000,R3/1000,R4/1000,R/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R1 = 2.7 k-ohm\n",
+ "R2 = 16.2 k-ohm\n",
+ "R3 = 3.5 k-ohm\n",
+ "R4 = 10.0 k-ohm\n",
+ "R = 2.31 k-ohm\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.5, Page No.432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Current source design using IC7812\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "RL = 25.0 # load resistance\n",
+ "P = 10.0 # power \n",
+ "I = 0.5 # current required\n",
+ "V = 12.0 # rated voltage\n",
+ "\n",
+ "#Calculations\n",
+ "R = V/I\n",
+ "Vout = V+(I*RL)\n",
+ "Vin = Vout+2\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %d ohm\\nVout = %.1f V\\nVin = %.1f V\"%(R,Vout,Vin))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 24 ohm\n",
+ "Vout = 24.5 V\n",
+ "Vin = 26.5 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.6, Page NO. 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# min and max voltage of regulator(refer fig.11.34)\n",
+ "\n",
+ "import math\n",
+ "#variable declaration\n",
+ "Iq = 10*10**-3 # quiescent current\n",
+ "Vreg = 15.0 # regulated output voltage\n",
+ "R2 = 0 # min value of potentiometer\n",
+ "R1 = 40.0 # R1 resistor\n",
+ "\n",
+ "#Calculations\n",
+ "Vout = (1+(R2/R1))*Vreg+(Iq*R2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vout = %d V\"%Vout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vout = 15 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.7, Page No. 432"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# current source using 7805\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Il = 0.2 # required load current\n",
+ "RL = 22.0 # load resistance\n",
+ "P = 10.0 # required power\n",
+ "Iq = 4.2*10**-3 # quiescent current\n",
+ "Vr = 5 # regulated output voltage\n",
+ "\n",
+ "#Calculation\n",
+ "R = Vr/(Il-Iq)\n",
+ "Vout = Vr+Il*RL\n",
+ "Vin = Vout+2\n",
+ "\n",
+ "#Result\n",
+ "print(\"R = %f ohm\\nVout = %.1f V\\nVin = %.1f V\"%(R,Vout,Vin))\n",
+ "# Answer for R is wrong in the book"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "R = 25.536261 ohm\n",
+ "Vout = 9.4 V\n",
+ "Vin = 11.4 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.8, Page No.435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Regulated outpuut voltage(refer fig. 11.38)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 220.0 # resistance R1\n",
+ "R2 = 1500.0 # Resistance R2\n",
+ "Iadj = 100*10**-6 # adj. current\n",
+ "\n",
+ "\n",
+ "#Calculartions\n",
+ "Vout = (1.25*(1+(R2/R1)))+(Iadj*R2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Vout = %.2f V\"%Vout)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Vout = 9.92 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.9, Page No. 435"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Output voltage range\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 820.0 # resistance R1\n",
+ "R2min = 0 # min potentiometer resistance\n",
+ "R2max = 10*10**3 # max potentiometer resistance\n",
+ "Iadj = 100*10**-6 # adj. current\n",
+ "\n",
+ "#calculations\n",
+ "Vmin = 1.25*(1+(R2min/R1))+(Iadj*R2min)\n",
+ "Vmax = 1.25*(1+(R2max/R1))+(Iadj*R2max)\n",
+ "\n",
+ "#Result\n",
+ "print(\"The output can be varied in the range %.2f V to %.2f V\"%(Vmin,Vmax))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The output can be varied in the range 1.25 V to 17.49 V\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 11.10, Page No. 436"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Maximum load current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vbe = 1.0 # base emitter junction voltage\n",
+ "beta = 15.0 # current gain\n",
+ "R1 = 7.0 # resistance R1\n",
+ "Iout = 1.0 # max output current from IC \n",
+ "#Calculations\n",
+ "Il = ((1+beta)*Iout) - beta*(Vbe/R1)\n",
+ "Il = math.floor(Il*100)/100\n",
+ "#Result\n",
+ "print(\"IC which can supply maximum 1A can supply maximum load of %.2f A, with the help of the current boosting arrangements\"%Il)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "IC which can supply maximum 1A can supply maximum load of 13.85 A, with the help of the current boosting arrangements\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/YogeshPatil/Chapter_2.ipynb b/sample_notebooks/YogeshPatil/Chapter_2.ipynb
new file mode 100755
index 00000000..2eef0dcc
--- /dev/null
+++ b/sample_notebooks/YogeshPatil/Chapter_2.ipynb
@@ -0,0 +1,229 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.2 : Operational Amplifier Fundamentals"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Input bias and input offset current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ib1 = 18*10**-6 # base current of transistor 1\n",
+ "Ib2 = 22*10**-6 # base current of transistor 2\n",
+ "\n",
+ "#Calculations\n",
+ "#(i)\n",
+ "Ib = (Ib1+Ib2)/2\n",
+ "#(ii)\n",
+ "Iios = abs(Ib1-Ib2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) Input bias current = %d micro-A\\n(ii) Input offset current = %.0f micro-A\"%(Ib*10**6,Iios*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Input bias current = 20 micro-A\n",
+ "(ii) Input offset current = 4 micro-A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum frequency of operation\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vin = 3.0 # input voltage\n",
+ "sr = 0.5*10**6 # slew rate in V/Sec\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = Vin/2\n",
+ "fm = sr/(2*math.pi*Vm)\n",
+ "fm = fm /1000 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum frequency of operation is %.3f kHz\"%(math.floor(fm*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum frequency of operation is 53.051 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Slew rate \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Icq = 15*10**-6 # Maximum op-amp current \n",
+ "C = 35*10**-12 # equivalent capacitance\n",
+ "V = 12.0 # input voltage \n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "S = S/10**6\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.4f V/micro-sec\"%(math.floor(S*10**4)/10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.4285 V/micro-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Slew rate and maximum possible frequency of input\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Icq = 10*10**-6 # maximum op-amp current\n",
+ "C = 33*10**-12 # equivalent capacitance\n",
+ "V = 12 # peak value of input voltage\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "fm = S/(2*math.pi*V)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.3f V/micro-sec\\nfm = %.3f kHz\"%(S/10**6,fm/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.303 V/micro-sec\n",
+ "fm = 4.019 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Common mode rejection ratio(refere to fig 2.24)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 1000.0 # resistance 1\n",
+ "R2_1_E = 90000.0 # resistance R2(1-E)\n",
+ "R2 = 100000.0 # resistance R2\n",
+ "\n",
+ "#Calculations\n",
+ "Aid = R2/R1\n",
+ "E = 1-(R2_1_E/R2)\n",
+ "Acm = R2*E/(R1+R2)\n",
+ "CMRR = Aid/Acm\n",
+ "CMRR = 20*math.log10(CMRR)\n",
+ "\n",
+ "#Result\n",
+ "print(\"CMRR = %d dB\"%CMRR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CMRR = 60 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/YogeshPatil/Chapter_2_1.ipynb b/sample_notebooks/YogeshPatil/Chapter_2_1.ipynb
new file mode 100755
index 00000000..2eef0dcc
--- /dev/null
+++ b/sample_notebooks/YogeshPatil/Chapter_2_1.ipynb
@@ -0,0 +1,229 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.2 : Operational Amplifier Fundamentals"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Input bias and input offset current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ib1 = 18*10**-6 # base current of transistor 1\n",
+ "Ib2 = 22*10**-6 # base current of transistor 2\n",
+ "\n",
+ "#Calculations\n",
+ "#(i)\n",
+ "Ib = (Ib1+Ib2)/2\n",
+ "#(ii)\n",
+ "Iios = abs(Ib1-Ib2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) Input bias current = %d micro-A\\n(ii) Input offset current = %.0f micro-A\"%(Ib*10**6,Iios*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Input bias current = 20 micro-A\n",
+ "(ii) Input offset current = 4 micro-A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum frequency of operation\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vin = 3.0 # input voltage\n",
+ "sr = 0.5*10**6 # slew rate in V/Sec\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = Vin/2\n",
+ "fm = sr/(2*math.pi*Vm)\n",
+ "fm = fm /1000 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum frequency of operation is %.3f kHz\"%(math.floor(fm*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum frequency of operation is 53.051 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Slew rate \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Icq = 15*10**-6 # Maximum op-amp current \n",
+ "C = 35*10**-12 # equivalent capacitance\n",
+ "V = 12.0 # input voltage \n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "S = S/10**6\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.4f V/micro-sec\"%(math.floor(S*10**4)/10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.4285 V/micro-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Slew rate and maximum possible frequency of input\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Icq = 10*10**-6 # maximum op-amp current\n",
+ "C = 33*10**-12 # equivalent capacitance\n",
+ "V = 12 # peak value of input voltage\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "fm = S/(2*math.pi*V)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.3f V/micro-sec\\nfm = %.3f kHz\"%(S/10**6,fm/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.303 V/micro-sec\n",
+ "fm = 4.019 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Common mode rejection ratio(refere to fig 2.24)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 1000.0 # resistance 1\n",
+ "R2_1_E = 90000.0 # resistance R2(1-E)\n",
+ "R2 = 100000.0 # resistance R2\n",
+ "\n",
+ "#Calculations\n",
+ "Aid = R2/R1\n",
+ "E = 1-(R2_1_E/R2)\n",
+ "Acm = R2*E/(R1+R2)\n",
+ "CMRR = Aid/Acm\n",
+ "CMRR = 20*math.log10(CMRR)\n",
+ "\n",
+ "#Result\n",
+ "print(\"CMRR = %d dB\"%CMRR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CMRR = 60 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/YogeshPatil/Chapter_2_2.ipynb b/sample_notebooks/YogeshPatil/Chapter_2_2.ipynb
new file mode 100755
index 00000000..2eef0dcc
--- /dev/null
+++ b/sample_notebooks/YogeshPatil/Chapter_2_2.ipynb
@@ -0,0 +1,229 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.2 : Operational Amplifier Fundamentals"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Input bias and input offset current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ib1 = 18*10**-6 # base current of transistor 1\n",
+ "Ib2 = 22*10**-6 # base current of transistor 2\n",
+ "\n",
+ "#Calculations\n",
+ "#(i)\n",
+ "Ib = (Ib1+Ib2)/2\n",
+ "#(ii)\n",
+ "Iios = abs(Ib1-Ib2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) Input bias current = %d micro-A\\n(ii) Input offset current = %.0f micro-A\"%(Ib*10**6,Iios*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Input bias current = 20 micro-A\n",
+ "(ii) Input offset current = 4 micro-A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum frequency of operation\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vin = 3.0 # input voltage\n",
+ "sr = 0.5*10**6 # slew rate in V/Sec\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = Vin/2\n",
+ "fm = sr/(2*math.pi*Vm)\n",
+ "fm = fm /1000 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum frequency of operation is %.3f kHz\"%(math.floor(fm*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum frequency of operation is 53.051 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Slew rate \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Icq = 15*10**-6 # Maximum op-amp current \n",
+ "C = 35*10**-12 # equivalent capacitance\n",
+ "V = 12.0 # input voltage \n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "S = S/10**6\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.4f V/micro-sec\"%(math.floor(S*10**4)/10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.4285 V/micro-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Slew rate and maximum possible frequency of input\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Icq = 10*10**-6 # maximum op-amp current\n",
+ "C = 33*10**-12 # equivalent capacitance\n",
+ "V = 12 # peak value of input voltage\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "fm = S/(2*math.pi*V)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.3f V/micro-sec\\nfm = %.3f kHz\"%(S/10**6,fm/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.303 V/micro-sec\n",
+ "fm = 4.019 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Common mode rejection ratio(refere to fig 2.24)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 1000.0 # resistance 1\n",
+ "R2_1_E = 90000.0 # resistance R2(1-E)\n",
+ "R2 = 100000.0 # resistance R2\n",
+ "\n",
+ "#Calculations\n",
+ "Aid = R2/R1\n",
+ "E = 1-(R2_1_E/R2)\n",
+ "Acm = R2*E/(R1+R2)\n",
+ "CMRR = Aid/Acm\n",
+ "CMRR = 20*math.log10(CMRR)\n",
+ "\n",
+ "#Result\n",
+ "print(\"CMRR = %d dB\"%CMRR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CMRR = 60 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/YogeshPatil/Chapter_2_3.ipynb b/sample_notebooks/YogeshPatil/Chapter_2_3.ipynb
new file mode 100755
index 00000000..2eef0dcc
--- /dev/null
+++ b/sample_notebooks/YogeshPatil/Chapter_2_3.ipynb
@@ -0,0 +1,229 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter No.2 : Operational Amplifier Fundamentals"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.1, Page No. 59"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Input bias and input offset current\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Ib1 = 18*10**-6 # base current of transistor 1\n",
+ "Ib2 = 22*10**-6 # base current of transistor 2\n",
+ "\n",
+ "#Calculations\n",
+ "#(i)\n",
+ "Ib = (Ib1+Ib2)/2\n",
+ "#(ii)\n",
+ "Iios = abs(Ib1-Ib2)\n",
+ "\n",
+ "#Result\n",
+ "print(\"(i) Input bias current = %d micro-A\\n(ii) Input offset current = %.0f micro-A\"%(Ib*10**6,Iios*10**6))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(i) Input bias current = 20 micro-A\n",
+ "(ii) Input offset current = 4 micro-A\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.2, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Maximum frequency of operation\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Vin = 3.0 # input voltage\n",
+ "sr = 0.5*10**6 # slew rate in V/Sec\n",
+ "\n",
+ "#Calculations\n",
+ "Vm = Vin/2\n",
+ "fm = sr/(2*math.pi*Vm)\n",
+ "fm = fm /1000 \n",
+ "\n",
+ "#Result\n",
+ "print(\"Maximum frequency of operation is %.3f kHz\"%(math.floor(fm*1000)/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Maximum frequency of operation is 53.051 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.3, Page No. 65"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Slew rate \n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "Icq = 15*10**-6 # Maximum op-amp current \n",
+ "C = 35*10**-12 # equivalent capacitance\n",
+ "V = 12.0 # input voltage \n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "S = S/10**6\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.4f V/micro-sec\"%(math.floor(S*10**4)/10**4))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.4285 V/micro-sec\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.4, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Slew rate and maximum possible frequency of input\n",
+ "\n",
+ "import math\n",
+ "# Variable declaration\n",
+ "Icq = 10*10**-6 # maximum op-amp current\n",
+ "C = 33*10**-12 # equivalent capacitance\n",
+ "V = 12 # peak value of input voltage\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "S = Icq/C\n",
+ "fm = S/(2*math.pi*V)\n",
+ "\n",
+ "#Result\n",
+ "print(\"Slew rate = %.3f V/micro-sec\\nfm = %.3f kHz\"%(S/10**6,fm/1000))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Slew rate = 0.303 V/micro-sec\n",
+ "fm = 4.019 kHz\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 2.5, Page No. 66"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# Common mode rejection ratio(refere to fig 2.24)\n",
+ "\n",
+ "import math\n",
+ "#Variable declaration\n",
+ "R1 = 1000.0 # resistance 1\n",
+ "R2_1_E = 90000.0 # resistance R2(1-E)\n",
+ "R2 = 100000.0 # resistance R2\n",
+ "\n",
+ "#Calculations\n",
+ "Aid = R2/R1\n",
+ "E = 1-(R2_1_E/R2)\n",
+ "Acm = R2*E/(R1+R2)\n",
+ "CMRR = Aid/Acm\n",
+ "CMRR = 20*math.log10(CMRR)\n",
+ "\n",
+ "#Result\n",
+ "print(\"CMRR = %d dB\"%CMRR)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CMRR = 60 dB\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ajinkyakhair/Untitled3.ipynb b/sample_notebooks/ajinkyakhair/Untitled3.ipynb
new file mode 100755
index 00000000..c9360e01
--- /dev/null
+++ b/sample_notebooks/ajinkyakhair/Untitled3.ipynb
@@ -0,0 +1,105 @@
+{
+ "metadata": {
+ "celltoolbar": "Raw Cell Format",
+ "name": "",
+ "signature": "sha256:1b9250434a66c555344f74813ca967ce998b1c86d33424d56ca71d7c748c63ce"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Interference"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 1-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#Given Data:\n",
+ "i=30 #angle of incidence\n",
+ "u=1.43 #Refractive index of a soap film\n",
+ "lamda=6*10**-7 #wavelength of light\n",
+ "n=1 #For minimum thickness\n",
+ "\n",
+ "#Calculations:\n",
+ "#u=sin i/sin r #Snell's law .So,\n",
+ "r=math.degrees(math.asin(math.sin(i)/u)) #angle of reflection\n",
+ "\n",
+ "#Now, condition of minima in transmitted system is\n",
+ "#2ut*cos(r)=(2n-1)lam/2\n",
+ "t=lamda/(2*2*u*math.cos(r)) #minimum thickness of film\n",
+ "print\"Minimum thickness of film is \",t,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum thickness of film is 1.09096619878e-07 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page number 1-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Given Data:\n",
+ "\n",
+ "lamda = 5893*10**-10 #Wavelength of light\n",
+ "theta = 1 #assuming value of theta\n",
+ "\n",
+ "#We know, B=lam/(2*u*theta). Here u=1\n",
+ "B = lamda/(2*theta) #fringe spacing\n",
+ "n=20 #interference fringes\n",
+ "\n",
+ "#Calculations:\n",
+ "#t=n*B*tan(theta)\n",
+ "t = 20*B*theta #Thickness of wire\n",
+ "print\"Thickness of wire is =\",t,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of wire is = 5.893e-06 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/ajinkyakhair/Untitled3_1.ipynb b/sample_notebooks/ajinkyakhair/Untitled3_1.ipynb
new file mode 100755
index 00000000..c9360e01
--- /dev/null
+++ b/sample_notebooks/ajinkyakhair/Untitled3_1.ipynb
@@ -0,0 +1,105 @@
+{
+ "metadata": {
+ "celltoolbar": "Raw Cell Format",
+ "name": "",
+ "signature": "sha256:1b9250434a66c555344f74813ca967ce998b1c86d33424d56ca71d7c748c63ce"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1: Interference"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7, Page number 1-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math \n",
+ "#Given Data:\n",
+ "i=30 #angle of incidence\n",
+ "u=1.43 #Refractive index of a soap film\n",
+ "lamda=6*10**-7 #wavelength of light\n",
+ "n=1 #For minimum thickness\n",
+ "\n",
+ "#Calculations:\n",
+ "#u=sin i/sin r #Snell's law .So,\n",
+ "r=math.degrees(math.asin(math.sin(i)/u)) #angle of reflection\n",
+ "\n",
+ "#Now, condition of minima in transmitted system is\n",
+ "#2ut*cos(r)=(2n-1)lam/2\n",
+ "t=lamda/(2*2*u*math.cos(r)) #minimum thickness of film\n",
+ "print\"Minimum thickness of film is \",t,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Minimum thickness of film is 1.09096619878e-07 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8, Page number 1-19"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import math\n",
+ "#Given Data:\n",
+ "\n",
+ "lamda = 5893*10**-10 #Wavelength of light\n",
+ "theta = 1 #assuming value of theta\n",
+ "\n",
+ "#We know, B=lam/(2*u*theta). Here u=1\n",
+ "B = lamda/(2*theta) #fringe spacing\n",
+ "n=20 #interference fringes\n",
+ "\n",
+ "#Calculations:\n",
+ "#t=n*B*tan(theta)\n",
+ "t = 20*B*theta #Thickness of wire\n",
+ "print\"Thickness of wire is =\",t,\"m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Thickness of wire is = 5.893e-06 m\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/harishsahu/Chapter1.ipynb b/sample_notebooks/harishsahu/Chapter1.ipynb
new file mode 100755
index 00000000..40f0220e
--- /dev/null
+++ b/sample_notebooks/harishsahu/Chapter1.ipynb
@@ -0,0 +1,134 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e3cd5ced27f4cedce3cbdbb3b5b1f422b536f401e599f719b4c9b39198a059c3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1-Mohrs circle"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Mohr's circle\n",
+ "#calculate center of the circle and maxi principal stress and pricipal stress and maxi shearing stresss\n",
+ "import numpy\n",
+ "from numpy.linalg import inv\n",
+ "import math\n",
+ "sigma=((40+80)/2.)\n",
+ "print'%s %.2f %s'%(\"center of the circle in MPa = \",sigma,\"\")\n",
+ "\n",
+ "##solution a\n",
+ "x=((80-40)**2.);\n",
+ "y=30**2.;\n",
+ "sigma1=60.+math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"maxi pricipal stress in MPa = \",sigma1,\"\");## print'%s %.2f %s'%laying result\n",
+ "sigma2=60.-math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"mini pricipal stress in MPa = \",sigma2,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta1=((math.atan((30./20.))/2)*57.3)\n",
+ "print'%s %.2f %s'%(\"pricipal stresses in degree\",theta1,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta2=(((math.atan(30/20.))+180.)/2.)*57.3\n",
+ "print'%s %.2f %s'%(\"pricipal stresses in degree\",theta2,\"\");## print'%s %.2f %s'%laying result\n",
+ "\n",
+ "##solution b\n",
+ "tau=math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"maxi shearing stress in MPa = \",tau,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta3=theta1+45.\n",
+ "print'%s %.2f %s'%(\"stress in MPa = \",theta3,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta4=theta2+45\n",
+ "print'%s %.2f %s'%(\"stress in MPa = \",theta4,\"\");## print'%s %.2f %s'%laying result\n",
+ "\n",
+ "##final solution in matrix form\n",
+ "p=([[80 ,30], [30 ,40]])\n",
+ "print(p) \n",
+ "q=([[sigma1, 0 ],[0 ,sigma2]])\n",
+ "print(q)\n",
+ "r=([[sigma ,-tau], [-tau ,sigma]])\n",
+ "print(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "center of the circle in MPa = 60.00 \n",
+ "maxi pricipal stress in MPa = 96.06 \n",
+ "mini pricipal stress in MPa = 23.94 \n",
+ "pricipal stresses in degree 28.16 \n",
+ "pricipal stresses in degree 5185.16 \n",
+ "maxi shearing stress in MPa = 36.06 \n",
+ "stress in MPa = 73.16 \n",
+ "stress in MPa = 5230.16 \n",
+ "[[80, 30], [30, 40]]\n",
+ "[[96.05551275463989, 0], [0, 23.944487245360108]]\n",
+ "[[60.0, -36.05551275463989], [-36.05551275463989, 60.0]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Mohr's circle\n",
+ "#calculate radius of the circle in and orientation of the stress\n",
+ "import math\n",
+ "radius=((14+28)/2.)\n",
+ "print'%s %.2f %s'%(\"radius of the circle in degree = \",radius,\"\")\n",
+ "sigma1=(7+radius *math.cos(60/57.3))\n",
+ "print'%s %.2f %s'%(\" the circle in MPa = \",sigma1,\"\")\n",
+ "sigma2=(7-radius *math.cos(60/57.3))\n",
+ "print'%s %.2f %s'%(\" the circle in MPa = \",sigma2,\"\")\n",
+ "tau1=radius*math.sin(60./57.3)\n",
+ "print'%s %.2f %s'%(\" orientation of the stresses in MPa = \",tau1,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of the circle in degree = 21.00 \n",
+ " the circle in MPa = 17.50 \n",
+ " the circle in MPa = -3.50 \n",
+ " orientation of the stresses in MPa = 18.19 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/harishsahu/Chapter1_1.ipynb b/sample_notebooks/harishsahu/Chapter1_1.ipynb
new file mode 100755
index 00000000..40f0220e
--- /dev/null
+++ b/sample_notebooks/harishsahu/Chapter1_1.ipynb
@@ -0,0 +1,134 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:e3cd5ced27f4cedce3cbdbb3b5b1f422b536f401e599f719b4c9b39198a059c3"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1-Mohrs circle"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Mohr's circle\n",
+ "#calculate center of the circle and maxi principal stress and pricipal stress and maxi shearing stresss\n",
+ "import numpy\n",
+ "from numpy.linalg import inv\n",
+ "import math\n",
+ "sigma=((40+80)/2.)\n",
+ "print'%s %.2f %s'%(\"center of the circle in MPa = \",sigma,\"\")\n",
+ "\n",
+ "##solution a\n",
+ "x=((80-40)**2.);\n",
+ "y=30**2.;\n",
+ "sigma1=60.+math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"maxi pricipal stress in MPa = \",sigma1,\"\");## print'%s %.2f %s'%laying result\n",
+ "sigma2=60.-math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"mini pricipal stress in MPa = \",sigma2,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta1=((math.atan((30./20.))/2)*57.3)\n",
+ "print'%s %.2f %s'%(\"pricipal stresses in degree\",theta1,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta2=(((math.atan(30/20.))+180.)/2.)*57.3\n",
+ "print'%s %.2f %s'%(\"pricipal stresses in degree\",theta2,\"\");## print'%s %.2f %s'%laying result\n",
+ "\n",
+ "##solution b\n",
+ "tau=math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"maxi shearing stress in MPa = \",tau,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta3=theta1+45.\n",
+ "print'%s %.2f %s'%(\"stress in MPa = \",theta3,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta4=theta2+45\n",
+ "print'%s %.2f %s'%(\"stress in MPa = \",theta4,\"\");## print'%s %.2f %s'%laying result\n",
+ "\n",
+ "##final solution in matrix form\n",
+ "p=([[80 ,30], [30 ,40]])\n",
+ "print(p) \n",
+ "q=([[sigma1, 0 ],[0 ,sigma2]])\n",
+ "print(q)\n",
+ "r=([[sigma ,-tau], [-tau ,sigma]])\n",
+ "print(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "center of the circle in MPa = 60.00 \n",
+ "maxi pricipal stress in MPa = 96.06 \n",
+ "mini pricipal stress in MPa = 23.94 \n",
+ "pricipal stresses in degree 28.16 \n",
+ "pricipal stresses in degree 5185.16 \n",
+ "maxi shearing stress in MPa = 36.06 \n",
+ "stress in MPa = 73.16 \n",
+ "stress in MPa = 5230.16 \n",
+ "[[80, 30], [30, 40]]\n",
+ "[[96.05551275463989, 0], [0, 23.944487245360108]]\n",
+ "[[60.0, -36.05551275463989], [-36.05551275463989, 60.0]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Mohr's circle\n",
+ "#calculate radius of the circle in and orientation of the stress\n",
+ "import math\n",
+ "radius=((14+28)/2.)\n",
+ "print'%s %.2f %s'%(\"radius of the circle in degree = \",radius,\"\")\n",
+ "sigma1=(7+radius *math.cos(60/57.3))\n",
+ "print'%s %.2f %s'%(\" the circle in MPa = \",sigma1,\"\")\n",
+ "sigma2=(7-radius *math.cos(60/57.3))\n",
+ "print'%s %.2f %s'%(\" the circle in MPa = \",sigma2,\"\")\n",
+ "tau1=radius*math.sin(60./57.3)\n",
+ "print'%s %.2f %s'%(\" orientation of the stresses in MPa = \",tau1,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of the circle in degree = 21.00 \n",
+ " the circle in MPa = 17.50 \n",
+ " the circle in MPa = -3.50 \n",
+ " orientation of the stresses in MPa = 18.19 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/sample_notebooks/harishsahu/Chapter1_2.ipynb b/sample_notebooks/harishsahu/Chapter1_2.ipynb
new file mode 100755
index 00000000..ba50b05f
--- /dev/null
+++ b/sample_notebooks/harishsahu/Chapter1_2.ipynb
@@ -0,0 +1,134 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:c5f8065703fbeb58a71f73144f936d51092395de25fe2bd4b3e4c9b6e159ad53"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter1-Mohrs circle"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex1-pg12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Mohr's circle\n",
+ "#calculate center of the circle and maxi principal stress and pricipal stress and maxi shearing stresss\n",
+ "import numpy\n",
+ "from numpy.linalg import inv\n",
+ "import math\n",
+ "sigma=((40+80)/2.)\n",
+ "print'%s %.2f %s'%(\"center of the circle in MPa = \",sigma,\"\")\n",
+ "\n",
+ "##solution a\n",
+ "x=((80-40)**2.);\n",
+ "y=30**2.;\n",
+ "sigma1=60.+math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"maxi pricipal stress in MPa = \",sigma1,\"\");## print'%s %.2f %s'%laying result\n",
+ "sigma2=60.-math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"mini pricipal stress in MPa = \",sigma2,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta1=((math.atan((30./20.))/2)*57.3)\n",
+ "print'%s %.2f %s'%(\"pricipal stresses in degree\",theta1,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta2=(((math.atan(30/20.))+180.)/2.)*57.3\n",
+ "print'%s %.2f %s'%(\"pricipal stresses in degree\",theta2,\"\");## print'%s %.2f %s'%laying result\n",
+ "\n",
+ "##solution b\n",
+ "tau=math.sqrt((.25*x)+y)\n",
+ "print'%s %.2f %s'%(\"maxi shearing stress in MPa = \",tau,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta3=theta1+45.\n",
+ "print'%s %.2f %s'%(\"stress in MPa = \",theta3,\"\");## print'%s %.2f %s'%laying result\n",
+ "theta4=theta2+45\n",
+ "print'%s %.2f %s'%(\"stress in MPa = \",theta4,\"\");## print'%s %.2f %s'%laying result\n",
+ "\n",
+ "##final solution in matrix form\n",
+ "p=([[80 ,30], [30 ,40]])\n",
+ "print(p) \n",
+ "q=([[sigma1, 0 ],[0 ,sigma2]])\n",
+ "print(q)\n",
+ "r=([[sigma ,-tau], [-tau ,sigma]])\n",
+ "print(r)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "center of the circle in MPa = 60.00 \n",
+ "maxi pricipal stress in MPa = 96.06 \n",
+ "mini pricipal stress in MPa = 23.94 \n",
+ "pricipal stresses in degree 28.16 \n",
+ "pricipal stresses in degree 5185.16 \n",
+ "maxi shearing stress in MPa = 36.06 \n",
+ "stress in MPa = 73.16 \n",
+ "stress in MPa = 5230.16 \n",
+ "[[80, 30], [30, 40]]\n",
+ "[[96.05551275463989, 0], [0, 23.944487245360108]]\n",
+ "[[60.0, -36.05551275463989], [-36.05551275463989, 60.0]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Ex2-pg17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "##Mohr's circle\n",
+ "#calculate radius of the circle in and orientation of the stress\n",
+ "import math\n",
+ "radius=((14+28)/2.)\n",
+ "print'%s %.2f %s'%(\"radius of the circle in degree = \",radius,\"\")\n",
+ "sigma1=(7+radius *math.cos(60/57.3))\n",
+ "print'%s %.2f %s'%(\" the circle in MPa = \",sigma1,\"\")\n",
+ "sigma2=(7-radius *math.cos(60/57.3))\n",
+ "print'%s %.2f %s'%(\" the circle in MPa = \",sigma2,\"\")\n",
+ "tau1=radius*math.sin(60./57.3)\n",
+ "print'%s %.2f %s'%(\" orientation of the stresses in MPa = \",tau1,\"\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "radius of the circle in degree = 21.00 \n",
+ " the circle in MPa = 17.50 \n",
+ " the circle in MPa = -3.50 \n",
+ " orientation of the stresses in MPa = 18.19 \n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file